<?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>185048</bug_id>
          
          <creation_ts>2018-04-26 14:21:27 -0700</creation_ts>
          <short_desc>StringBuilder is fallible</short_desc>
          <delta_ts>2018-08-02 00:09:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="JF Bastien">jfbastien</reporter>
          <assigned_to name="JF Bastien">jfbastien</assigned_to>
          <cc>achristensen</cc>
    
    <cc>andersca</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fujii</cc>
    
    <cc>jfbastien</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1418236</commentid>
    <comment_count>0</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-04-26 14:21:27 -0700</bug_when>
    <thetext>StringBuilder can fail when allocating memory. StringBuilder is mostly used with user input, which often means that just crashing isn&apos;t the right outcome. Our fuzzers often encounter such things for JavaScriptCore, and so far we&apos;ve applied point solutions. No more!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418244</commentid>
    <comment_count>1</comment_count>
      <attachid>338914</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-04-26 14:31:13 -0700</bug_when>
    <thetext>Created attachment 338914
patch

From the WTF ChangeLog:

StringBuilder is fallible

StringBuilder can fail when allocating memory. StringBuilder is mostly used with user input, which often means that just crashing isn&apos;t the right outcome. Our fuzzers often encounter such things for JavaScriptCore, and so far we&apos;ve applied point solutions. No more! This patch makes StringBuilder fallible and enforces this in two ways:

  * Each step of building a string can be checked for failure because they now return a &quot;Fallible&lt;T&gt;&quot;. This can be ignored at every step!
  * The final step of StringBuilder, getting the string out, returns a &quot;Fallible&lt;String&gt;&quot; which is marked with WARN_UNUSED_RETURN. Failure is communicated if any of the building steps failed.

Doing this two-step approach means that code can continue operating as it did before (append a bunch and then get a string) and only needs to care about the string potentially not being available. This is enforced by the type system: Fallible&lt;T&gt; is std::expected&lt;T, StringBuilder::Failure&gt;.

The following intermediate functions can now be observed to fail (or ignored):

  * append
  * appendUninitialized
  * appendUninitializedSlow
  * appendQuotedJSONString used to return false on failure, it now returns Fallible&lt;&gt;
  * resize
  * allocateBuffer
  * allocateBufferUpConvert
  * reallocateBuffer
  * reserveCapacity
  * shrinkToFit
  * operator[]
  * characters8
  * characters16

Failure in these methods comes in two forms: out of memory, and would overflow. When an operation would overflow it leaves the StringBuilder in its previous state, allowing users to resume work, keep the string as it existed before failure. When we just fail allocating it means we expected to succeed, so clearing the StringBuilder is the right thing to do.

Supporting failure in StringBuilder required adding &quot;try&quot; variants of some methods in StringImpl.

This patch updates all WebKit code which uses StringBuilder. It leaves all intermediate function usage alone (code still appends back-to-back, blissfully unaware of failure), and only checks for failure when retrieving the string. The pattern used is usually:

  if (auto string = builder.toString())
    foo(*string); // Use string as before...
  else
    CRASH();

This makes failure extremely explicit. There&apos;s no true behavior change: what would have crashed when appending now crashes when retrieving the string. Pulling CRASH() out will give slightly better crash signatures, and it makes the code very obvious about failure. I purposefully don&apos;t &quot;fix&quot; any failure because these should be done in a targeted manner with repro tests whenever possible. I&apos;m very wary of introducing bugs!

When someone inevitably blames code back to this commit (because hey the code is pretty ugly, and you might be surprised at seeing CRASH() in your beautiful code) there are a few things which they can do:

  1. Change the else clause to handle failure rather than crash. In JavaScriptCore that&apos;s usually throwOutOfMemoryError.
  2. Change the code to directly use Fallible&apos;s .value() member, and let *that* crash instead. This makes the crash non-obvious in the code, which might be what you want.
  3. Change the code to detect failure at the earliest step of string building (likely the append calls), and do something sensible there.

In no circumstance should code just dereference a Fallible without knowing that its state holds a valid string. This code is undefined behavior according to the std::expected specification (whether our implementation should do something else is out of scope for this patch):

  foo(*builder.toString()); // UB when allocation fails.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418249</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-04-26 14:34:24 -0700</bug_when>
    <thetext>Attachment 338914 did not pass style-queue:


ERROR: Source/WTF/wtf/text/StringBuilder.h:70:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/text/StringBuilder.h:78:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/text/StringBuilder.h:92:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/text/StringBuilder.h:99:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/text/StringBuilder.h:126:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/text/StringBuilder.h:129:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/text/StringBuilder.h:141:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/text/StringBuilder.h:149:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/text/StringBuilder.h:154:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/text/StringBuilder.h:167:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/text/StringBuilder.h:193:  Omit int when using unsigned  [runtime/unsigned] [1]
ERROR: Source/WTF/wtf/text/StringBuilder.h:206:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/JavaScriptCore/API/tests/PingPongStackOverflowTest.cpp:69:  Use nullptr instead of NULL.  [readability/null] [5]
ERROR: Source/WTF/wtf/DateMath.cpp:1190:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/JavaScriptCore/dfg/DFGStrengthReductionPhase.cpp:364:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGStrengthReductionPhase.cpp:395:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGStrengthReductionPhase.cpp:892:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebCore/inspector/agents/InspectorApplicationCacheAgent.cpp:175:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WTF/ChangeLog:15:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
ERROR: Source/WTF/ChangeLog:18:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
ERROR: Source/WTF/ChangeLog:32:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
ERROR: Source/WTF/ChangeLog:33:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
ERROR: Source/WTF/ChangeLog:34:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
ERROR: Source/WTF/ChangeLog:35:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
ERROR: Source/WTF/ChangeLog:36:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
ERROR: Source/WTF/ChangeLog:37:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
ERROR: Source/WTF/ChangeLog:38:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
ERROR: Source/WTF/ChangeLog:39:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
ERROR: Source/WTF/ChangeLog:40:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
ERROR: Source/WTF/ChangeLog:41:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
ERROR: Source/WTF/ChangeLog:42:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
ERROR: Source/WTF/ChangeLog:43:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
ERROR: Source/WTF/ChangeLog:44:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
ERROR: Source/WTF/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Source/WTF/wtf/text/StringBuilderJSON.cpp:123:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/JavaScriptCore/testRegExp.cpp:332:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/JavaScriptCore/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Tools/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Source/WebCore/html/HTMLAnchorElement.cpp:404:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/API/tests/ExecutionTimeLimitTest.cpp:480:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WebCore/editing/MarkupAccumulator.cpp:495:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
ERROR: Source/WebCore/html/DOMTokenList.cpp:282:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
ERROR: Source/WebCore/page/CaptionUserPreferencesMediaAF.cpp:704:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:83:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:102:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:112:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:110:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:132:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:150:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:173:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:197:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:217:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:248:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:256:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:313:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:352:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:358:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:382:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:392:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:391:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:406:  Omit int when using unsigned  [runtime/unsigned] [1]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:469:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WebCore/html/track/WebVTTTokenizer.cpp:217:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebCore/html/track/WebVTTTokenizer.cpp:228:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebCore/html/track/WebVTTTokenizer.cpp:229:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/mac/PasteboardMac.mm:291:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WebCore/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Source/WebCore/xml/XMLErrors.cpp:152:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebCore/html/track/BufferedLineReader.cpp:95:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 69 in 287 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>1418316</commentid>
    <comment_count>3</comment_count>
      <attachid>338937</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-04-26 16:25:28 -0700</bug_when>
    <thetext>Created attachment 338937
patch

Fix build failures on non-Mac bots, and some style things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418320</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-04-26 16:30:07 -0700</bug_when>
    <thetext>Attachment 338937 did not pass style-queue:


ERROR: Source/WTF/wtf/text/StringBuilder.h:193:  Omit int when using unsigned  [runtime/unsigned] [1]
ERROR: Source/WTF/wtf/text/StringBuilder.h:206:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Source/JavaScriptCore/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Tools/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Source/JavaScriptCore/API/tests/ExecutionTimeLimitTest.cpp:480:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:110:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:390:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:405:  Omit int when using unsigned  [runtime/unsigned] [1]
ERROR: Source/WebCore/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
Total errors found: 10 in 290 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>1418321</commentid>
    <comment_count>5</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-04-26 16:32:59 -0700</bug_when>
    <thetext>I&apos;m going to ignore the remaining style nits:

&gt; ERROR: Source/WTF/wtf/text/StringBuilder.h:193:  Omit int when using
&gt; unsigned  [runtime/unsigned] [1]
&gt; ERROR: Source/WTF/wtf/text/StringBuilder.cpp:405:  Omit int when using
&gt; unsigned  [runtime/unsigned] [1]

Pre-existing code. I don&apos;t really see why we&apos;d change it.

&gt; ERROR: Source/WTF/wtf/text/StringBuilder.h:206:  An else statement can be
&gt; removed when the prior &quot;if&quot; concludes with a return, break, continue or goto
&gt; statement.  [readability/control_flow] [4]
&gt; ERROR: Source/WTF/wtf/text/StringBuilder.cpp:110:  An else statement can be
&gt; removed when the prior &quot;if&quot; concludes with a return, break, continue or goto
&gt; statement.  [readability/control_flow] [4]
&gt; ERROR: Source/WTF/wtf/text/StringBuilder.cpp:390:  An else statement can be
&gt; removed when the prior &quot;if&quot; concludes with a return, break, continue or goto
&gt; statement.  [readability/control_flow] [4]

Not in these cases.

&gt; ERROR: Source/WTF/ChangeLog:10:  Please consider whether the use of
&gt; security-sensitive phrasing could help someone exploit WebKit: fuzzer 
&gt; [changelog/unwantedsecurityterms] [3]

Considered and ignored.

&gt; ERROR: Source/JavaScriptCore/API/tests/ExecutionTimeLimitTest.cpp:480:  More
&gt; than one command on the same line  [whitespace/newline] [4]

Pre-existing code, and it&apos;s a lambda.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418543</commentid>
    <comment_count>6</comment_count>
      <attachid>339004</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-04-27 10:46:41 -0700</bug_when>
    <thetext>Created attachment 339004
patch

Fix a few more non-Mac build issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418546</commentid>
    <comment_count>7</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-04-27 10:50:45 -0700</bug_when>
    <thetext>Attachment 339004 did not pass style-queue:


ERROR: Source/WTF/wtf/text/StringBuilder.h:193:  Omit int when using unsigned  [runtime/unsigned] [1]
ERROR: Source/WTF/wtf/text/StringBuilder.h:206:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp:448:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WTF/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Source/JavaScriptCore/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Tools/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Source/JavaScriptCore/API/tests/ExecutionTimeLimitTest.cpp:480:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:110:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:390:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:405:  Omit int when using unsigned  [runtime/unsigned] [1]
ERROR: Source/WebCore/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
Total errors found: 11 in 295 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>1418574</commentid>
    <comment_count>8</comment_count>
      <attachid>339010</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-04-27 11:44:44 -0700</bug_when>
    <thetext>Created attachment 339010
patch

More build fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418575</commentid>
    <comment_count>9</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-04-27 11:48:35 -0700</bug_when>
    <thetext>Attachment 339010 did not pass style-queue:


ERROR: Source/WTF/wtf/text/StringBuilder.h:193:  Omit int when using unsigned  [runtime/unsigned] [1]
ERROR: Source/WTF/wtf/text/StringBuilder.h:206:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp:448:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WTF/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Source/JavaScriptCore/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Tools/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Source/JavaScriptCore/API/tests/ExecutionTimeLimitTest.cpp:480:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:110:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:390:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:405:  Omit int when using unsigned  [runtime/unsigned] [1]
ERROR: Source/WebCore/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
Total errors found: 11 in 297 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>1418591</commentid>
    <comment_count>10</comment_count>
      <attachid>339010</attachid>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-04-27 13:06:15 -0700</bug_when>
    <thetext>Comment on attachment 339010
patch

Attachment 339010 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/7482931

New failing tests:
css3/filters/backdrop/add-remove-add-backdrop-filter.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418592</commentid>
    <comment_count>11</comment_count>
      <attachid>339016</attachid>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-04-27 13:06:17 -0700</bug_when>
    <thetext>Created attachment 339016
Archive of layout-test-results from ews107 for mac-sierra-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews107  Port: mac-sierra-wk2  Platform: Mac OS X 10.12.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418606</commentid>
    <comment_count>12</comment_count>
      <attachid>339022</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-04-27 13:59:23 -0700</bug_when>
    <thetext>Created attachment 339022
patch

More build fixes... I wish the other platforms just continued compiling until they had more failures...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418608</commentid>
    <comment_count>13</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-04-27 14:02:53 -0700</bug_when>
    <thetext>Attachment 339022 did not pass style-queue:


ERROR: Source/WTF/wtf/text/StringBuilder.h:193:  Omit int when using unsigned  [runtime/unsigned] [1]
ERROR: Source/WTF/wtf/text/StringBuilder.h:206:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp:448:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WTF/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Source/JavaScriptCore/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Tools/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Source/JavaScriptCore/API/tests/ExecutionTimeLimitTest.cpp:480:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:110:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:390:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:405:  Omit int when using unsigned  [runtime/unsigned] [1]
ERROR: Source/WebCore/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
Total errors found: 11 in 300 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>1418620</commentid>
    <comment_count>14</comment_count>
      <attachid>339026</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-04-27 14:17:19 -0700</bug_when>
    <thetext>Created attachment 339026
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418621</commentid>
    <comment_count>15</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-04-27 14:21:28 -0700</bug_when>
    <thetext>Attachment 339026 did not pass style-queue:


ERROR: Source/WTF/wtf/text/StringBuilder.h:193:  Omit int when using unsigned  [runtime/unsigned] [1]
ERROR: Source/WTF/wtf/text/StringBuilder.h:206:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp:448:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WTF/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Source/JavaScriptCore/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Tools/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Source/JavaScriptCore/API/tests/ExecutionTimeLimitTest.cpp:480:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:110:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:390:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:405:  Omit int when using unsigned  [runtime/unsigned] [1]
ERROR: Source/WebCore/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
Total errors found: 11 in 302 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>1419125</commentid>
    <comment_count>16</comment_count>
      <attachid>339151</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-04-30 15:03:12 -0700</bug_when>
    <thetext>Created attachment 339151
patch

Fix a few more build failures on Linux and Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419127</commentid>
    <comment_count>17</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-04-30 15:07:11 -0700</bug_when>
    <thetext>Attachment 339151 did not pass style-queue:


ERROR: Source/WTF/wtf/text/StringBuilder.h:193:  Omit int when using unsigned  [runtime/unsigned] [1]
ERROR: Source/WTF/wtf/text/StringBuilder.h:206:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp:448:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WTF/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Source/JavaScriptCore/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Tools/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Source/JavaScriptCore/API/tests/ExecutionTimeLimitTest.cpp:480:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:110:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:390:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:405:  Omit int when using unsigned  [runtime/unsigned] [1]
ERROR: Source/WebCore/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
Total errors found: 11 in 305 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>1419417</commentid>
    <comment_count>18</comment_count>
      <attachid>339222</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-05-01 13:54:43 -0700</bug_when>
    <thetext>Created attachment 339222
patch

Handle more failures, and rebase.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419419</commentid>
    <comment_count>19</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-05-01 13:56:48 -0700</bug_when>
    <thetext>Attachment 339222 did not pass style-queue:


ERROR: Source/WTF/wtf/text/StringBuilder.h:193:  Omit int when using unsigned  [runtime/unsigned] [1]
ERROR: Source/WTF/wtf/text/StringBuilder.h:206:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp:448:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WTF/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Source/JavaScriptCore/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Tools/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Source/JavaScriptCore/API/tests/ExecutionTimeLimitTest.cpp:480:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:110:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:390:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:405:  Omit int when using unsigned  [runtime/unsigned] [1]
ERROR: Source/WebCore/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
Total errors found: 11 in 305 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>1419433</commentid>
    <comment_count>20</comment_count>
      <attachid>339227</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-05-01 15:02:48 -0700</bug_when>
    <thetext>Created attachment 339227
patch

More Linux fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419435</commentid>
    <comment_count>21</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-05-01 15:06:38 -0700</bug_when>
    <thetext>Attachment 339227 did not pass style-queue:


ERROR: Source/WTF/wtf/text/StringBuilder.h:193:  Omit int when using unsigned  [runtime/unsigned] [1]
ERROR: Source/WTF/wtf/text/StringBuilder.h:206:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp:448:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WTF/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Source/JavaScriptCore/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Tools/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Source/JavaScriptCore/API/tests/ExecutionTimeLimitTest.cpp:480:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:110:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:390:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:405:  Omit int when using unsigned  [runtime/unsigned] [1]
ERROR: Source/WebCore/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
Total errors found: 11 in 307 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>1419445</commentid>
    <comment_count>22</comment_count>
      <attachid>339231</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-05-01 15:35:43 -0700</bug_when>
    <thetext>Created attachment 339231
patch

More Linux build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419446</commentid>
    <comment_count>23</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-05-01 15:38:36 -0700</bug_when>
    <thetext>Attachment 339231 did not pass style-queue:


ERROR: Source/WTF/wtf/text/StringBuilder.h:193:  Omit int when using unsigned  [runtime/unsigned] [1]
ERROR: Source/WTF/wtf/text/StringBuilder.h:206:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp:448:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WTF/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Source/JavaScriptCore/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Tools/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Source/JavaScriptCore/API/tests/ExecutionTimeLimitTest.cpp:480:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:110:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:390:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:405:  Omit int when using unsigned  [runtime/unsigned] [1]
ERROR: Source/WebCore/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
Total errors found: 11 in 309 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>1419455</commentid>
    <comment_count>24</comment_count>
      <attachid>339235</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-05-01 16:01:48 -0700</bug_when>
    <thetext>Created attachment 339235
patch

More Linux.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419457</commentid>
    <comment_count>25</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-05-01 16:05:28 -0700</bug_when>
    <thetext>Attachment 339235 did not pass style-queue:


ERROR: Source/WTF/wtf/text/StringBuilder.h:193:  Omit int when using unsigned  [runtime/unsigned] [1]
ERROR: Source/WTF/wtf/text/StringBuilder.h:206:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp:448:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WTF/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Source/JavaScriptCore/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Tools/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
ERROR: Source/JavaScriptCore/API/tests/ExecutionTimeLimitTest.cpp:480:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:110:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:390:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WTF/wtf/text/StringBuilder.cpp:405:  Omit int when using unsigned  [runtime/unsigned] [1]
ERROR: Source/WebCore/ChangeLog:10:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer  [changelog/unwantedsecurityterms] [3]
Total errors found: 11 in 312 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>1419513</commentid>
    <comment_count>26</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2018-05-01 19:19:47 -0700</bug_when>
    <thetext>I am not a huge fan of littering the CRASH() macro all over, and requiring every user of toString() to remember to add it if they can&apos;t handle the failure case. As an alternative, what do you think about this?

Add two toString() overloads (note, code below is totally untested).

1. Can&apos;t handle overflow case:
template&lt;typename SuccessFunctor&gt;
void StringBuilder::toString(const SuccessFunctor&amp; successFunctor)
{
    if (auto string = internalToString())
        successFunctor(*string);
    else
        CRASH();
}

2. Can handle overflow:
template&lt;typename SuccessFunctor, typename FailureFunctor&gt;
void StringBuilder::toString(const SuccessFunctor&amp; successFunctor, const FailureFunctor&amp; failureFunctor)
{
    auto string = internalToString()
    if (string)
        successFunctor(*string);
    else
        failureFunctor(string.error());
}

Then, at call sites, users would do something like:

stringBuilder.toString([] (String result) {
    // use result.
});

or, in the case they could handle the overflow,

stringBuilder.toString([] (String result) {
    // use result.
}, [] (StringBuilder::Failure failureKind) {
    // handle failure.
});


What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419537</commentid>
    <comment_count>27</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-05-01 20:47:44 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #26)
&gt; I am not a huge fan of littering the CRASH() macro all over, and requiring
&gt; every user of toString() to remember to add it if they can&apos;t handle the
&gt; failure case. As an alternative, what do you think about this?

Users have to extract the result from the std::expected. They don&apos;t have to remember to crash, because that might not be what they want. The only reason I structured the code this way is to keep it at &quot;feature&quot; parity (used to crash, still does), but surface the crash locations so that we can then progressively figure out what should be done for each location (and so that any crash reports sent our way are unambiguous about why the crash occurred).

&gt; Add two toString() overloads (note, code below is totally untested).
&gt; 
&gt; 1. Can&apos;t handle overflow case:
&gt; template&lt;typename SuccessFunctor&gt;
&gt; void StringBuilder::toString(const SuccessFunctor&amp; successFunctor)
&gt; {
&gt;     if (auto string = internalToString())
&gt;         successFunctor(*string);
&gt;     else
&gt;         CRASH();
&gt; }

With what I have now, that&apos;s the same as:

  StringBuilder builder;
  // ... build build build ...
  String string = builder.toString().value();

I think that&apos;s better, when you know you want to crash on failure. I don&apos;t want this change to outright do this though, because without vetting that crashing is the right thing for each of these locations I&apos;d just be sweeping the crash under the rug. The goal should be, in most cases, to do something else than crash (and if crashing is right then use .value()).


&gt; 2. Can handle overflow:
&gt; template&lt;typename SuccessFunctor, typename FailureFunctor&gt;
&gt; void StringBuilder::toString(const SuccessFunctor&amp; successFunctor, const
&gt; FailureFunctor&amp; failureFunctor)
&gt; {
&gt;     auto string = internalToString()
&gt;     if (string)
&gt;         successFunctor(*string);
&gt;     else
&gt;         failureFunctor(string.error());
&gt; }
&gt; 
&gt; Then, at call sites, users would do something like:
&gt; 
&gt; stringBuilder.toString([] (String result) {
&gt;     // use result.
&gt; });
&gt; 
&gt; or, in the case they could handle the overflow,
&gt; 
&gt; stringBuilder.toString([] (String result) {
&gt;     // use result.
&gt; }, [] (StringBuilder::Failure failureKind) {
&gt;     // handle failure.
&gt; });

It kind of seems like you want std::expected to offer a fully monadic interface, hehehe. It doesn&apos;t right now, but in the future we might see something like:

  https://vittorioromeo.info/index/blog/adts_over_exceptions.html



Anyhow, I like surfacing the crashes location with the current pattern. We could instead just sweep all of them under the rug by having this patch do .value() everywhere. I think it&apos;s a bad idea, but you seem to think otherwise?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1434823</commentid>
    <comment_count>28</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-06-20 09:41:14 -0700</bug_when>
    <thetext>Doesn&apos;t look like this will happen. FWIW the C++ committee decided to go in this direction when it comes to bad_alloc (terminate instead of throw, add try_* variants of allocating STL functions).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338914</attachid>
            <date>2018-04-26 14:31:13 -0700</date>
            <delta_ts>2018-04-26 16:25:28 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Teach-StringBuilder-that-it-is-fallible.patch</filename>
            <type>text/plain</type>
            <size>453056</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSAxNGJhMTViNTBjNmZmMWFkYTFlZjcyZjBjYWNlOWM3OGM1Y2U5NGQ1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBXZWQsIDI1IEFwciAyMDE4IDIxOjUwOjI0IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gVGVhY2gg
U3RyaW5nQnVpbGRlciB0aGF0IGl0IGlzIGZhbGxpYmxlCgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcCAgICAgICAgIHwgICA0ICstCiAuLi4vQVBJL3Rlc3Rz
L0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwICAgICAgICAgICB8IDMxMCArKysrKysrLS0tLS0t
CiAuLi4vQVBJL3Rlc3RzL1BpbmdQb25nU3RhY2tPdmVyZmxvd1Rlc3QuY3BwICAgICAgICB8ICAg
OSArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
fCAgOTUgKysrKwogLi4uL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCAgICAgICAg
ICAgICAgfCAgMjMgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBTbmFwc2hvdEJ1
aWxkZXIuY3BwIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNv
bGVNZXNzYWdlLmNwcCB8ICAxMyArLQogLi4uL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0
aWVzLmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9JbnRlcnByZXRlci5jcHAgIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcCB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAgICAgICAgICAgICAgICAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwICAgICAgIHwgICA5ICstCiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcCAgICB8ICAxNSArLQogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwICAgfCAgIDQgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwICAgIHwgICA0ICstCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcCB8ICAgNCAr
LQogLi4uL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgfCAg
MjQgKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAg
IHwgICA2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcCAg
ICAgICB8ICAxOCArLQogLi4uL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwICAg
ICAgICAgICAgfCAgMjEgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmpl
Y3QuY3BwICAgICAgIHwgIDE2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRl
cmFsUGFyc2VyLmNwcCAgICB8ICAxMCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3B0aW9ucy5jcHAgICAgICAgICAgfCAgMTAgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAgIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcCB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAgICAgICAgfCAgIDQgKy0KIC4uLi9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcCAgIHwgICA0ICstCiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwICB8ICAgNCArLQogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmNwcCAgICAgfCAgIDYgKy0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVTZXQuY3BwICAgICAgICAgIHwgIDIzICst
CiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAgICAgICAgICAgICAgICB8ICAy
MiArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcCAg
fCAgIDkgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcCAgICAg
ICAgIHwgICA3ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmggICAg
ICAgICAgICB8ICAzMCArLQogU291cmNlL1dURi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAxNDMgKysrKysrCiBTb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcCAg
ICAgICAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3Bw
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XVEYvd3RmL0pTT05WYWx1
ZXMuY3BwICAgICAgICAgICAgICAgICAgICAgIHwgIDExICstCiBTb3VyY2UvV1RGL3d0Zi9Mb2dn
ZXIuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMSArLQogU291cmNlL1dURi93dGYv
TWVkaWFUaW1lLmNwcCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XVEYv
d3RmL1VVSUQuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuY3BwICAgICAgICAgICAgICB8IDI0MCArKysrKyst
LS0tCiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaCAgICAgICAgICAgICAgICB8
IDI2MSArKysrKysrLS0tLQogU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVySlNPTi5j
cHAgICAgICAgICAgfCAgMjUgKy0KIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAg
ICAgICAgICAgICAgICAgIHwgIDM0ICstCiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwu
aCAgICAgICAgICAgICAgICAgICB8ICAxOCArLQogU291cmNlL1dURi93dGYvdGV4dC9UZXh0U3Ry
ZWFtLmNwcCAgICAgICAgICAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNTEwICsrKysrKysrKysrKysrKysrKysrKwog
Li4uL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudENvbnRhY3RDb2NvYS5tbSAgfCAgIDUg
Ky0KIC4uLi9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcCAgIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNw
cCB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5j
cHAgICAgfCAgMTUgKy0KIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBh
dGguY3BwICAgIHwgICA0ICstCiAuLi4vTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0luZGV4VmFs
dWVTdG9yZS5jcHAgICB8ICAgNCArLQogLi4uL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxp
dGVJREJDdXJzb3IuY3BwICAgfCAgIDggKy0KIC4uLi9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCRGF0YWJhc2VJbmZvLmNwcCAgIHwgICA0ICstCiAuLi4vaW5kZXhlZGRiL3NoYXJlZC9JREJP
YmplY3RTdG9yZUluZm8uY3BwICAgICAgICB8ICAgNCArLQogLi4uL21lZGlhc2Vzc2lvbi9XZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCAgICAgICAgfCAgIDggKy0KIC4uLi9Nb2R1bGVzL21lZGlh
c3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgIHwgICA4ICstCiAuLi4vTW9kdWxlcy9w
bHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAgICB8ICAgNCArLQogLi4uL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcCAgICAgICAgfCAgIDQgKy0KIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwICAgIHwgICA4ICstCiAu
Li4vd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcCAgICB8ICAgOCAr
LQogLi4uL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwICAgICAgfCAg
MjMgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCAgICAg
IHwgIDE4ICstCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
Y3BwICB8ICAxMCArLQogLi4uL21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bSAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVy
dFN0cmluZ3MuY3BwIHwgICA0ICstCiAuLi4vV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2Vw
dGlvbkhhbmRsaW5nLmNwcCB8ICAxNiArLQogLi4uL2NvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVk
VVJMRmlsdGVycy5jcHAgICAgICAgfCAgIDQgKy0KIC4uLi9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb24uY3BwIHwgICA3ICstCiAuLi4vY29udGVudGV4dGVuc2lvbnMv
Q29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcCB8ICAgNSArLQogLi4uL0NvbnRlbnRFeHRlbnNp
b25TdHlsZVNoZWV0LmNwcCAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3Jl
L2NvbnRlbnRleHRlbnNpb25zL1Rlcm0uaCAgICAgICAgICAgIHwgICA4ICstCiAuLi4vV2ViQ29y
ZS9jc3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmNwcCB8ICAgNCArLQogU291cmNl
L1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmNwcCAgICAgICAgICAgICAgfCAgMjAgKy0KIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmNwcCAgICAgICAgIHwgICA4ICst
CiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCB8ICAg
NCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcCAgICAgICAgICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcCAgICAg
ICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3VzdG9tSWRlbnRWYWx1ZS5jcHAg
ICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUu
Y3BwICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUu
Y3BwICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VT
cmNWYWx1ZS5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRG
ZWF0dXJlVmFsdWUuY3BwICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250U3R5bGVSYW5nZVZhbHVlLmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udFN0eWxlVmFsdWUuY3BwICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRWYWx1ZS5jcHAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUuY3BwICAgICAgIHwgICA0ICstCiBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHAgICAgICAgICAgICB8ICAgNCArLQogU291
cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwICAgICAgICAgICAgfCAgMTIgKy0K
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNwcCAgICAgIHwgICA0
ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAgICB8
ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwICAgICAgICAg
ICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmNwcCAgICAgICAg
ICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVSdWxlLmNwcCAg
ICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lc1J1bGUu
Y3BwICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMaW5lQm94Q29u
dGFpblZhbHVlLmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWFya3Vw
LmNwcCAgICAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU01l
ZGlhUnVsZS5jcHAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NOYW1lc3BhY2VSdWxlLmNwcCAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFnZVJ1bGUuY3BwICAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcCAgICAgICAgICAgfCAgMTIgKy0KIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3BwICAgICAgIHwgICA0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwICAgICAgICAgICAgICAgICB8ICAxNyArLQog
U291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAgICAgICAgICAgICAgfCAgIDQg
Ky0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTaGFkb3dWYWx1ZS5jcHAgICAgICAgICAgICAgIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmNwcCAgICAgICAgICAgICAg
ICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwICAgICAgICAg
ICAgICAgfCAgIDkgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdXBwb3J0c1J1bGUuY3BwICAg
ICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVGltaW5nRnVuY3Rpb25W
YWx1ZS5jcHAgICAgICB8ICAxNiArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5j
cHAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYXJpYWJs
ZURhdGEuY3BwICAgICAgICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NT
TmFtZXNwYWNlLmNwcCAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0RP
TU1hdHJpeFJlYWRPbmx5LmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nz
cy9EZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9jc3MvRm9udEZhY2UuY3BwICAgICAgICAgICAgICAgICAgICB8ICAxMiArLQogU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhTGlzdC5jcHAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcCAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBT
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwICAgICAgICB8ICAgNSAr
LQogU291cmNlL1dlYkNvcmUvY3NzL1JlY3QuaCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwICAgICAgICAgICAg
IHwgIDMwICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmNwcCAgICAgICAg
ICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5j
cHAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNw
cCAgICAgICAgICAgIHwgIDExICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNl
clRva2VuLmNwcCAgICAgICB8ICA4NyArKy0tCiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlclRva2VuUmFuZ2UuY3BwICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAgICAgfCAgMjcgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTVG9rZW5pemVyLmNwcCAgICAgICAgIHwgIDM4ICstCiBTb3VyY2UvV2ViQ29yZS9k
b20vRGF0YXNldERPTVN0cmluZ01hcC5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcCAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIyICstCiBTb3Vy
Y2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQog
U291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDkg
Ky0KIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcCAgICAgICAgICAg
ICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDkgKy0KIFNvdXJjZS9XZWJDb3JlL2RvbS9UZXh0Tm9kZVRyYXZlcnNhbC5jcHAg
ICAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21t
YW5kLmNwcCAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNw
cCAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSFRNTElu
dGVyY2hhbmdlLmNwcCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01h
cmt1cEFjY3VtdWxhdG9yLmNwcCAgICAgICB8ICAxNiArLQogU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UZXh0SXRlcmF0b3IuY3BwICAgICAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwICAgICAgICB8ICAgNSArLQogU291cmNlL1dl
YkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tICAgICAgfCAgIDggKy0KIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbSAgICAgIHwgICA1ICstCiBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAgICAgICAgICAgICAgICAgICB8ICAyNyAr
LQogU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcCAgICAgICAgfCAg
MjQgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcCAgICAgICAgICAgICAg
IHwgIDEwICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcCAgICAgICAg
ICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcCAgICAg
ICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3Bw
ICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVt
ZW50LmNwcCAgICAgICAgICB8ICAxMiArLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5jcHAgICAgICAgICAgfCAgMjEgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZv
bnRFbGVtZW50LmNwcCAgICAgICAgICAgIHwgICA3ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbWFnZUVsZW1lbnQuY3BwICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcCAgICAgICAgICAgfCAgIDkgKy0KIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCB8ICAxMiArLQogU291cmNl
L1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcCAgICAgICAgICAgICAgfCAgIDUgKy0KIFNv
dXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAgICAgICAgIHwgICA0ICst
CiBTb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRnJhZ21lbnRVUklQYXJzZXIuY3BwICAgICB8ICAg
OCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3BwICAgICAgICAgICAgICAgICAg
fCAgMTQgKy0KIC4uLi9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwICAg
ICAgIHwgICA0ICstCiAuLi4vaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFz
ZS5jcHAgICB8ICAgNyArLQogLi4uL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTb3Vy
Y2VUcmFja2VyLmNwcCAgIHwgICA3ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
VG9rZW5pemVyLmNwcCAgICAgICB8ICAxMiArLQogU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFRyZWVCdWlsZGVyLmNwcCAgICAgfCAgMjcgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0J1ZmZlcmVkTGluZVJlYWRlci5jcHAgICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9UcmFja0Jhc2UuY3BwICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcCAgICAgICAgICAgICAgIHwgICA2ICstCiBTb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAgICAgICAgICB8ICAgNSArLQogU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3BwICAgICAgfCAgNjAgKyst
CiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgICB8ICAx
NyArLQogLi4uL2FnZW50cy9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwICAgICAg
fCAgMTIgKy0KIC4uLi9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAg
ICAgIHwgICA3ICstCiAuLi4vV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkNvbnNvbGVBZ2Vu
dC5jcHAgICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNz
Q29udHJvbC5jcHAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzLmNwcCAgIHwgICA0ICstCiAuLi4vbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVTdG9yYWdlLmNwcCAgICB8ICAyNSArLQogLi4uL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUv
Y2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAgfCAgMjUgKy0KIC4uLi9XZWJDb3JlL2xvYWRlci9hcmNo
aXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHAgIHwgICA4ICstCiAuLi4vV2ViQ29yZS9wYWdlL0Nh
cHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcCB8ICA2NCArKy0KIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWUuY3BwICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwICAgICAgICAgICAgIHwgICA3ICst
CiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5jcHAgICB8ICAg
NCArLQogU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuY3BwICAgICAgICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmNwcCAg
ICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xp
Y3kuY3BwICB8ICAgOSArLQogLi4uL3BhZ2Uvc2Nyb2xsaW5nL0F4aXNTY3JvbGxTbmFwT2Zmc2V0
cy5jcHAgICAgICAgfCAgIDggKy0KIC4uLi9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGlu
YXRvci5jcHAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EZWNpbWFs
LmNwcCAgICAgICAgICAgICAgICB8ICAxMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmls
ZVN5c3RlbS5jcHAgICAgICAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BPREludGVydmFsLmggICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QT0RSZWRCbGFja1RyZWUuaCAgICAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vVVJMLmNwcCAgICAgICAgICAgICAgICAgICAgfCAgMTggKy0KIC4uLi9XZWJDb3Jl
L3BsYXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5jcHAgIHwgICA1ICstCiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcCAgICB8ICAgNCArLQogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwICAgICAgICAgfCAgIDggKy0K
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwIHwgICA0
ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAgICB8
ICAgNCArLQogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRUYWdnZWRTZXR0aW5ncy5jcHAgICAg
ICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuY3BwIHwgICA0ICstCiAuLi4vYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVB
VkYuY3BwICAgICB8ICAxMyArLQogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9s
bGVyLmNwcCAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL1RpbGVHcmlkLmNwcCAgIHwgICA0ICstCiAuLi4vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3Jt
Q0FMYXllcldpbi5jcHAgICAgICAgICB8ICAgNCArLQogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL2N2
L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcCAgfCAgMTAgKy0KIC4uLi9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0M0RPcGVuR0xDb21tb24uY3BwICAgICAgIHwgIDExICstCiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbSAgICAgfCAgIDYgKy0KIC4uLi9XZWJD
b3JlL3BsYXRmb3JtL21vY2svU2Nyb2xsQW5pbWF0b3JNb2NrLmNwcCAgIHwgIDE1ICstCiAuLi4v
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tCb3guY3BwICB8ICAgOSArLQog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAgICAgfCAgIDQg
Ky0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJveHlTZXJ2ZXIuY3BwICAgIHwg
ICA0ICstCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVKYXJNYWMubW0g
ICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lY
LmNwcCAgfCAgIDQgKy0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRGVjb2RlRXNjYXBlU2Vx
dWVuY2VzLmggIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BsYXRmb3Jt
TG9jYWxlLmNwcCAgICB8ICAxMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdt
ZW50ZWRTdHJpbmcuY3BwICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
VGV4dENvZGVjSUNVLmNwcCAgICAgIHwgIDEzICstCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L1RleHRDb2RlY1VzZXJEZWZpbmVkLmNwcCB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGx1Z2lu
cy9ET01NaW1lVHlwZS5jcHAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCB8ICAgNSArLQogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwICAgICAgfCAgIDkgKy0KIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcCAgICAgICAgICAgIHwgIDIzICstCiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAgICAgICB8ICAgOCAr
LQogLi4uL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmNwcCAgICAgICAgfCAg
IDUgKy0KIC4uLi9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNYXRoTUwuY3Bw
IHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5jcHAgICAg
ICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuY3Bw
ICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU3RyaW5nQnVpbGRl
ci5jcHAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGll
cy5jcHAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlz
dFZhbHVlcy5jcHAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJp
bmdMaXN0VmFsdWVzLmNwcCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RyYW5zZm9ybVZhbHVlLmNwcCAgICAgICAgICAgfCAgMjAgKy0KIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmggIHwgICA4ICstCiBTb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgICAgICAgICAgICAgICB8ICA2NCArLS0KIFNvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcCAgIHwgIDEwICstCiBT
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAgICAgICB8ICAgNCAr
LQogU291cmNlL1dlYkNvcmUveG1sL1hNTEVycm9ycy5jcHAgICAgICAgICAgICAgICAgICAgfCAg
IDcgKy0KIFNvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgICAgICAgICAgICAg
IHwgIDE1ICstCiBTb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaCAgICAgICAgICAg
ICAgICB8ICAgNyArLQogU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRnVuY3Rpb25zLmNwcCAgICAg
ICAgICAgICAgfCAgMjEgKy0KIFNvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNs
dC5jcHAgICAgICAgIHwgIDE0ICstCiAuLi4veG1sL3BhcnNlci9DaGFyYWN0ZXJSZWZlcmVuY2VQ
YXJzZXJJbmxpbmVzLmggICB8ICAgNSArLQogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgNDkgKysKIC4uLi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9D
YWNoZVN0b3JhZ2VFbmdpbmUuY3BwICAgIHwgICA0ICstCiAuLi4vV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAgICB8ICAxOCArLQogLi4uL05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZUtleS5jcHAgICAgICAgfCAgIDQgKy0KIC4uLi9jYXB0dXJlL05l
dHdvcmtDYXB0dXJlTWFuYWdlci5jcHAgICAgICAgICAgICAgIHwgICA2ICstCiAuLi4vU2hhcmVk
L0RhdGFiYXNlcy9JbmRleGVkREIvSURCVXRpbGl0aWVzLmNwcCAgICB8ICAgNCArLQogU291cmNl
L1dlYktpdC9TaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5jcHAgICAgICAgfCAgIDQgKy0KIC4u
Li9OZXRzY2FwZS91bml4L05ldHNjYXBlUGx1Z2luTW9kdWxlVW5peC5jcHAgICAgIHwgICA0ICst
CiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcCAgICAgICAgICB8ICAg
NyArLQogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJTY3JpcHQuY3BwICAgICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVc2VyU3R5bGVTaGVldC5j
cHAgIHwgICA0ICstCiAuLi4vVUlQcm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5j
cHAgICAgICB8ICAgNiArLQogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRM
aXN0LmNwcCAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcCAgICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwICAgICAgICB8ICAgNSArLQogLi4uL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuY3BwICAgfCAgMjAgKy0KIC4uLi9XZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzVGVsZW1ldHJ5LmNwcCAgICAgICAgIHwgIDMzICstCiAuLi4vUGx1Z2lucy9OZXRzY2Fw
ZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAgICAgICB8ICAgNCArLQogU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICB8ICAxMiArCiAuLi4v
bWFjL1dlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tICAgICAgICAgICB8ICAgNSArLQog
VG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNzgg
KysrKwogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAgICAg
fCAgOTIgKystLQogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAg
ICAgICAgfCAgODAgKystLQogLi4uL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3Bw
ICAgICAgICAgICAgfCAgODYgKystLQogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0ZpbGVNb25pdG9yLmNwcCAgfCAgMzcgKy0KIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9Mb2dnaW5nLmNwcCAgICAgIHwgIDMwICstCiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvVGV4dENvZGVjLmNwcCAgICB8ICAgNCArLQogVG9vbHMvVGVzdFdlYktpdEFQSS9X
VEZTdHJpbmdVdGlsaXRpZXMuaCAgICAgICAgICAgfCAgIDQgKy0KIC4uLi9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwICAgICAgICAgIHwgMTk2ICsrKysrKy0tCiAuLi4vV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCB8ICAxOCArLQogVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgICAgICAgICAgfCAgMTUgKy0K
IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwICAgICAgICAgIHwgICA5
ICstCiAyODcgZmlsZXMgY2hhbmdlZCwgMzUxOSBpbnNlcnRpb25zKCspLCAxMjE3IGRlbGV0aW9u
cygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVm
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcAppbmRleCAw
MjVlYmE0Li41ZWRmNjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q29udGV4dFJlZi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRS
ZWYuY3BwCkBAIC0zMTQsNyArMzE0LDkgQEAgSlNTdHJpbmdSZWYgSlNDb250ZXh0Q3JlYXRlQmFj
a3RyYWNlKEpTQ29udGV4dFJlZiBjdHgsIHVuc2lnbmVkIG1heFN0YWNrU2l6ZSkKICAgICBCYWNr
dHJhY2VGdW5jdG9yIGZ1bmN0b3IoYnVpbGRlciwgbWF4U3RhY2tTaXplKTsKICAgICBmcmFtZS0+
aXRlcmF0ZShmdW5jdG9yKTsKIAotICAgIHJldHVybiBPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKGJ1
aWxkZXIudG9TdHJpbmcoKSkubGVha1JlZigpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUoKnN0
cmluZykubGVha1JlZigpOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgSlNHbG9iYWxDb250ZXh0
R2V0UmVtb3RlSW5zcGVjdGlvbkVuYWJsZWQoSlNHbG9iYWxDb250ZXh0UmVmIGN0eCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0
VGVzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0V4ZWN1dGlvblRpbWVM
aW1pdFRlc3QuY3BwCmluZGV4IDYzN2IzMDQuLjE2NTI4MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNw
cApAQCAtMTk0LDIyICsxOTQsMjUgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAg
ICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmROdW1iZXIodGltZUFmdGVyV2F0Y2hkb2dTaG91
bGRIYXZlRmlyZWQuc2Vjb25kcygpKTsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiKSBicmVhazsgfSB9IGZvbygpOyIpOwogCi0gICAgICAgICAgICBKU1N0cmluZ1Jl
ZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzY3JpcHRCdWlsZGVyLnRv
U3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBleGNlcHRpb24gPSBudWxscHRy
OwotICAgICAgICAgICAgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsK
LSAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgp
OwotICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIs
IG51bGxwdHIsIDEsICZleGNlcHRpb24pOwotICAgICAgICAgICAgYXV0byBlbmRUaW1lID0gQ1BV
VGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwotCi0gICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0g
c3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiBzaG91bGRU
ZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKLSAgICAgICAgICAgICAgICBwcmludGYoIlBBU1M6
ICVzIHNjcmlwdCB0aW1lZCBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsK
LSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGlmICgoZW5kVGltZSAtIHN0YXJ0
VGltZSkgPj0gdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpCi0gICAgICAgICAgICAg
ICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0
ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFRl
cm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZB
SUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIiwgdGllck9w
dGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKLSAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmco
KSkgeworICAgICAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAg
ZXhjZXB0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBzaG91bGRUZXJtaW5hdGVDYWxs
YmFja1dhc0NhbGxlZCA9IGZhbHNlOworICAgICAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1lID0g
Q1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAgICAgICAgICAgIEpTRXZhbHVhdGVT
Y3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsK
KyAgICAgICAgICAgICAgICBhdXRvIGVuZFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFk
KCk7CisKKyAgICAgICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVB
ZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dh
c0NhbGxlZCkKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiAlcyBzY3JpcHQgdGlt
ZWQgb3V0IGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAg
ICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgoZW5kVGltZSAtIHN0YXJ0VGltZSkg
Pj0gdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpCisgICAgICAgICAgICAgICAgICAg
ICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCBkaWQgbm90IHRpbWUgb3V0IGFzIGV4cGVjdGVk
LlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAgIGlmICghc2hvdWxk
VGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCisgICAgICAgICAgICAgICAgICAgICAgICBwcmlu
dGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIiwg
dGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgQ1JB
U0goKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKCFleGNlcHRpb24pIHsKICAgICAg
ICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIFRlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24g
d2FzIG5vdCB0aHJvd24uXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKQEAgLTIzNywyMiArMjQwLDI1
IEBAIGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICAgICAgICAgIHNjcmlwdEJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiICAgIHJldHVybiByZWN1cnNlKGkgKyAxKTsgfSIpOwogICAgICAg
ICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCJyZWN1cnNlKDApOyIpOwogCi0gICAg
ICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZyhzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBl
eGNlcHRpb24gPSBudWxscHRyOwotICAgICAgICAgICAgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tX
YXNDYWxsZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6
Zm9yQ3VycmVudFRocmVhZCgpOwotICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0
LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOwotICAgICAgICAgICAg
YXV0byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwotCi0gICAgICAgICAg
ICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2
ZUZpcmVkKSAmJiBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKLSAgICAgICAgICAg
ICAgICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCB3aXRoIGluZmluaXRlIHRhaWwgY2FsbHMgdGlt
ZWQgb3V0IGFzIGV4cGVjdGVkIC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAg
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1l
QWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRm
KCJGQUlMOiAlcyBzY3JpcHQgd2l0aCBpbmZpbml0ZSB0YWlsIGNhbGxzIGRpZCBub3QgdGltZSBv
dXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBp
ZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQotICAgICAgICAgICAgICAgICAg
ICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB3aXRoIGluZmluaXRlIHRhaWwgY2FsbHMnIHRpbWVv
dXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAg
ICAgICAgICAgICBmYWlsZWQgPSB0cnVlOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAg
ICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3Ry
aW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICBleGNlcHRpb24gPSBudWxscHRy
OworICAgICAgICAgICAgICAgIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkID0gZmFs
c2U7CisgICAgICAgICAgICAgICAgYXV0byBzdGFydFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50
VGhyZWFkKCk7CisgICAgICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3Jp
cHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOworICAgICAgICAgICAgICAgIGF1
dG8gZW5kVGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKworICAgICAgICAgICAg
ICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRI
YXZlRmlyZWQpICYmIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQorICAgICAgICAg
ICAgICAgICAgICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCB3aXRoIGluZmluaXRlIHRhaWwgY2Fs
bHMgdGltZWQgb3V0IGFzIGV4cGVjdGVkIC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAg
ICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoKGVuZFRpbWUgLSBzdGFy
dFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKQorICAgICAgICAgICAg
ICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgd2l0aCBpbmZpbml0ZSB0YWlsIGNh
bGxzIGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxl
ZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHdpdGgg
aW5maW5pdGUgdGFpbCBjYWxscycgdGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIs
IHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIENS
QVNIKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmICghZXhjZXB0aW9uKSB7CiAgICAg
ICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9u
IHdhcyBub3QgdGhyb3duLlxuIiwgdGllck9wdGlvbnMudGllcik7CkBAIC0yNzMsMjEgKzI3OSwy
NCBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgICAgICAgICBzY3JpcHRCdWls
ZGVyLmFwcGVuZE51bWJlcih0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZC5zZWNvbmRz
KCkpOwogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpIGJyZWFrOyB9
IH0gY2F0Y2goZSkgeyB9IH0gZm9vKCk7Iik7CiAKLSAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNj
cmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHNjcmlwdEJ1aWxkZXIudG9TdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7Ci0g
ICAgICAgICAgICBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOworICAg
ICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpKSB7Cisg
ICAgICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICBleGNlcHRp
b24gPSBudWxscHRyOworICAgICAgICAgICAgICAgIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2Fz
Q2FsbGVkID0gZmFsc2U7CiAKLSAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6
Zm9yQ3VycmVudFRocmVhZCgpOwotICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0
LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOwotICAgICAgICAgICAg
YXV0byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAgICAgICAg
ICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAg
ICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxs
cHRyLCAxLCAmZXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICBhdXRvIGVuZFRpbWUgPSBDUFVU
aW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICgo
KGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVk
KSB8fCAhc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpIHsKLSAgICAgICAgICAgICAg
ICBpZiAoISgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhh
dmVGaXJlZCkpCi0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IGRp
ZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAg
ICAgICAgICAgICBpZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQotICAgICAg
ICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdh
cyBub3QgY2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAgZmFp
bGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoKChlbmRUaW1l
IC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgfHwgIXNo
b3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKSB7CisgICAgICAgICAgICAgICAgICAgIGlm
ICghKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZp
cmVkKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IGRp
ZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKCFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgY2Fs
bGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAg
ICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgCiAgICAgICAgICAg
ICBpZiAoZXhjZXB0aW9uKQogICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgVGVybWlu
YXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbiB3YXMgbm90IGNhdGNoYWJsZSBhcyBleHBlY3RlZC5cbiIs
IHRpZXJPcHRpb25zLnRpZXIpOwpAQCAtMzA5LDI0ICszMTgsMjcgQEAgaW50IHRlc3RFeGVjdXRp
b25UaW1lTGltaXQoKQogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCJm
dW5jdGlvbiBmb28oKSB7IHZhciBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOyB3aGlsZSAo
dHJ1ZSkgeyBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKyk7IGlmIChjdXJyZW50Q1BVVGlt
ZSgpIC0gc3RhcnRUaW1lID4gIik7CiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZE51
bWJlcih0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZC5zZWNvbmRzKCkpOwogICAgICAg
ICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpIGJyZWFrOyB9IH0gZm9vKCk7Iik7
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsKLSAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgICAgICBzaG91
bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOwogCi0gICAgICAgICAgICBhdXRv
IHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLSAgICAgICAgICAgIEpT
RXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhj
ZXB0aW9uKTsKLSAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRU
aHJlYWQoKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHNjcmlwdEJ1aWxkZXIudG9T
dHJpbmcoKSkgeworICAgICAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAg
ICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBzaG91bGRUZXJtaW5h
dGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOworCisgICAgICAgICAgICAgICAgYXV0byBzdGFy
dFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CisgICAgICAgICAgICAgICAgSlNF
dmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNl
cHRpb24pOworICAgICAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRpbWU6OmZvckN1cnJl
bnRUaHJlYWQoKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0
YXJ0VGltZSkgPCB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgJiYgIXNob3VsZFRl
cm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQotICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzog
JXMgc2NyaXB0IHRpbWVkIG91dCBhcyBleHBlY3RlZCB3aGVuIG5vIGNhbGxiYWNrIGlzIHNwZWNp
ZmllZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgaWYgKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1No
b3VsZEhhdmVGaXJlZCkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3Jp
cHQgZGlkIG5vdCB0aW1lIG91dCBhcyBleHBlY3RlZCB3aGVuIG5vIGNhbGxiYWNrIGlzIHNwZWNp
ZmllZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgY2FsbGVkIHN0YWxlIGNhbGxi
YWNrIGZ1bmN0aW9uLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAgZmFp
bGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoKChlbmRUaW1l
IC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiAhc2hv
dWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCisgICAgICAgICAgICAgICAgICAgIHByaW50
ZigiUEFTUzogJXMgc2NyaXB0IHRpbWVkIG91dCBhcyBleHBlY3RlZCB3aGVuIG5vIGNhbGxiYWNr
IGlzIHNwZWNpZmllZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgIGVs
c2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRp
bWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKQorICAgICAgICAgICAgICAgICAgICAgICAg
cHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgZGlkIG5vdCB0aW1lIG91dCBhcyBleHBlY3RlZCB3aGVu
IG5vIGNhbGxiYWNrIGlzIHNwZWNpZmllZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6
ICVzIHNjcmlwdCBjYWxsZWQgc3RhbGUgY2FsbGJhY2sgZnVuY3Rpb24uXG4iLCB0aWVyT3B0aW9u
cy50aWVyKTsKKyAgICAgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAg
ICAgICAgICAgCiAgICAgICAgICAgICBpZiAoIWV4Y2VwdGlvbikgewogICAgICAgICAgICAgICAg
IHByaW50ZigiRkFJTDogJXMgVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbiB3YXMgbm90IHRo
cm93bi5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwpAQCAtMzQ3LDIzICszNTksMjYgQEAgaW50IHRl
c3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRO
dW1iZXIodGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQuc2Vjb25kcygpKTsKICAgICAg
ICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSBicmVhazsgfSB9IGZvbygpOyIp
OwogCi0gICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZyhzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAg
ICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOwotICAgICAgICAgICAgY2FuY2VsVGVybWluYXRl
Q2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgICAgIEpTU3RyaW5nUmVm
IHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZy0+dXRmOCgpLmRh
dGEoKSk7CisgICAgICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAg
ICAgICBjYW5jZWxUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOwogCi0gICAgICAg
ICAgICBhdXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLSAgICAg
ICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRy
LCAxLCAmZXhjZXB0aW9uKTsKLSAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRpbWU6OmZv
ckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQVVRp
bWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0
KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7CisgICAg
ICAgICAgICAgICAgYXV0byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwog
ICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0
aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgJiYgY2FuY2VsVGVybWluYXRlQ2FsbGJh
Y2tXYXNDYWxsZWQgJiYgIWV4Y2VwdGlvbikKLSAgICAgICAgICAgICAgICBwcmludGYoIlBBU1M6
ICVzIHNjcmlwdCB0aW1lb3V0IHdhcyBjYW5jZWxsZWQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0
aW9ucy50aWVyKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGlmICgoKGVu
ZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpIHx8
IGV4Y2VwdGlvbikKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQg
dGltZW91dCB3YXMgbm90IGNhbmNlbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAg
ICAgICAgICAgIGlmICghY2FuY2VsVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCi0gICAgICAg
ICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgY2FsbGJhY2sgd2Fz
IG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBmYWls
ZWQgPSB0cnVlOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgoKGVuZFRpbWUg
LSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiBjYW5j
ZWxUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCAmJiAhZXhjZXB0aW9uKQorICAgICAgICAgICAg
ICAgICAgICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCB0aW1lb3V0IHdhcyBjYW5jZWxsZWQgYXMg
ZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICBlbHNlIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCB0aW1lQWZ0
ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgfHwgZXhjZXB0aW9uKQorICAgICAgICAgICAgICAg
ICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgdGltZW91dCB3YXMgbm90IGNhbmNlbGxl
ZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoIWNhbmNl
bFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJp
bnRmKCJGQUlMOiAlcyBzY3JpcHQgdGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIs
IHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIENS
QVNIKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChleGNlcHRpb24pIHsKICAgICAg
ICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIFVuZXhwZWN0ZWQgVGVybWluYXRlZEV4ZWN1dGlv
bkV4Y2VwdGlvbiB0aHJvd24uXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKQEAgLTM4NCwzMyArMzk5
LDM2IEBAIGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICAgICAgICAgIHNjcmlwdEJ1
aWxkZXIuYXBwZW5kTnVtYmVyKG1heEJ1c3lMb29wVGltZS5zZWNvbmRzKCkpOyAvLyBpbiBzZWNv
bmRzLgogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpIGJyZWFrOyB9
IH0gZm9vKCk7Iik7CiAKLSAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsKLSAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgICAgICBleHRl
bmRUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA9IDA7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBKU1N0cmlu
Z1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmctPnV0Zjgo
KS5kYXRhKCkpOworICAgICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7CisgICAgICAg
ICAgICAgICAgZXh0ZW5kVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQgPSAwOwogCi0gICAgICAgICAg
ICBhdXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLSAgICAgICAg
ICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAx
LCAmZXhjZXB0aW9uKTsKLSAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRpbWU6OmZvckN1
cnJlbnRUaHJlYWQoKTsKLSAgICAgICAgICAgIGF1dG8gZGVsdGFUaW1lID0gZW5kVGltZSAtIHN0
YXJ0VGltZTsKKyAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1
cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQs
IHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7CisgICAgICAgICAgICAg
ICAgYXV0byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAgICAg
ICAgICAgIGF1dG8gZGVsdGFUaW1lID0gZW5kVGltZSAtIHN0YXJ0VGltZTsKICAgICAgICAgICAg
IAotICAgICAgICAgICAgaWYgKChkZWx0YVRpbWUgPj0gdGltZUJlZm9yZUV4dGVuZGVkRGVhZGxp
bmUpICYmIChkZWx0YVRpbWUgPCB0aW1lQWZ0ZXJFeHRlbmRlZERlYWRsaW5lKSAmJiAoZXh0ZW5k
VGVybWluYXRlQ2FsbGJhY2tDYWxsZWQgPT0gMikgJiYgZXhjZXB0aW9uKQotICAgICAgICAgICAg
ICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IHRpbWVvdXQgd2FzIGV4dGVuZGVkIGFzIGV4cGVj
dGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgICAgICBpZiAoZGVsdGFUaW1lIDwgdGltZUJlZm9yZUV4dGVuZGVkRGVhZGxpbmUpCi0gICAg
ICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgd2FzIG5vdCBl
eHRlbmRlZCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAg
ICAgIGVsc2UgaWYgKGRlbHRhVGltZSA+PSB0aW1lQWZ0ZXJFeHRlbmRlZERlYWRsaW5lKQotICAg
ICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCBkaWQgbm90IHRpbWVvdXQu
XG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICBpZiAoKGRlbHRhVGltZSA+
PSB0aW1lQmVmb3JlRXh0ZW5kZWREZWFkbGluZSkgJiYgKGRlbHRhVGltZSA8IHRpbWVBZnRlckV4
dGVuZGVkRGVhZGxpbmUpICYmIChleHRlbmRUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA9PSAyKSAm
JiBleGNlcHRpb24pCisgICAgICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0
IHRpbWVvdXQgd2FzIGV4dGVuZGVkIGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7
CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChkZWx0YVRp
bWUgPCB0aW1lQmVmb3JlRXh0ZW5kZWREZWFkbGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgd2FzIG5vdCBleHRlbmRlZCBhcyBleHBl
Y3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBlbHNlIGlm
IChkZWx0YVRpbWUgPj0gdGltZUFmdGVyRXh0ZW5kZWREZWFkbGluZSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IGRpZCBub3QgdGltZW91dC5cbiIsIHRp
ZXJPcHRpb25zLnRpZXIpOwogICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmIChl
eHRlbmRUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA8IDEpCi0gICAgICAgICAgICAgICAgICAgIHBy
aW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4i
LCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBpZiAoZXh0ZW5kVGVybWluYXRl
Q2FsbGJhY2tDYWxsZWQgPCAyKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVz
IHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkIGFmdGVyIHRpbWVvdXQgZXh0
ZW5zaW9uLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAgIGlmIChl
eHRlbmRUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA8IDEpCisgICAgICAgICAgICAgICAgICAgICAg
ICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVk
LlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAgIGlmIChleHRlbmRU
ZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA8IDIpCisgICAgICAgICAgICAgICAgICAgICAgICBwcmlu
dGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkIGFmdGVy
IHRpbWVvdXQgZXh0ZW5zaW9uLlxuIiwgdGllck9wdGlvbnMudGllcik7CiAgICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICAgICAgaWYgKCFleGNlcHRpb24pCi0gICAgICAgICAgICAgICAgICAg
IHByaW50ZigiRkFJTDogJXMgVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbiB3YXMgbm90IHRo
cm93biBkdXJpbmcgdGltZW91dCBleHRlbnNpb24gdGVzdC5cbiIsIHRpZXJPcHRpb25zLnRpZXIp
OworICAgICAgICAgICAgICAgICAgICBpZiAoIWV4Y2VwdGlvbikKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHByaW50ZigiRkFJTDogJXMgVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbiB3YXMg
bm90IHRocm93biBkdXJpbmcgdGltZW91dCBleHRlbnNpb24gdGVzdC5cbiIsIHRpZXJPcHRpb25z
LnRpZXIpOwogICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7
Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0go
KTsKICAgICAgICAgfQogCiAjaWYgSEFWRShNQUNIX0VYQ0VQVElPTlMpCkBAIC00MjUsNTYgKzQ0
Myw2MiBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgICAgICAgICBzY3JpcHRC
dWlsZGVyLmFwcGVuZE51bWJlcih0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZC5zZWNv
bmRzKCkpOwogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpIGJyZWFr
OyB9IH0gZm9vKCk7Iik7CiAKLSAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKLSAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgICAgICBk
aXNwYXRjaFRlcm1pbmF0ZUNhbGxiYWNrQ2FsbGVkID0gZmFsc2U7Ci0KLSAgICAgICAgICAgIC8v
IFdlIGhhdmUgdG8gZG8gdGhpcyBzaW5jZSBibG9ja3MgY2FuIG9ubHkgY2FwdHVyZSB0aGluZ3Mg
YXMgY29uc3QuCi0gICAgICAgICAgICBKU0dsb2JhbENvbnRleHRSZWYmIGNvbnRleHRSZWYgPSBj
b250ZXh0OwotICAgICAgICAgICAgSlNTdHJpbmdSZWYmIHNjcmlwdFJlZiA9IHNjcmlwdDsKLSAg
ICAgICAgICAgIEpTVmFsdWVSZWYmIGV4Y2VwdGlvblJlZiA9IGV4Y2VwdGlvbjsKLQotICAgICAg
ICAgICAgTG9jayBzeW5jTG9jazsKLSAgICAgICAgICAgIExvY2smIHN5bmNMb2NrUmVmID0gc3lu
Y0xvY2s7Ci0gICAgICAgICAgICBDb25kaXRpb24gc3luY2hyb25pemU7Ci0gICAgICAgICAgICBD
b25kaXRpb24mIHN5bmNocm9uaXplUmVmID0gc3luY2hyb25pemU7Ci0gICAgICAgICAgICBib29s
IGRpZFN5bmNocm9uaXplID0gZmFsc2U7Ci0gICAgICAgICAgICBib29sJiBkaWRTeW5jaHJvbml6
ZVJlZiA9IGRpZFN5bmNocm9uaXplOwotCi0gICAgICAgICAgICBTZWNvbmRzIHN0YXJ0VGltZTsK
LSAgICAgICAgICAgIFNlY29uZHMgZW5kVGltZTsKLQotICAgICAgICAgICAgU2Vjb25kcyYgc3Rh
cnRUaW1lUmVmID0gc3RhcnRUaW1lOwotICAgICAgICAgICAgU2Vjb25kcyYgZW5kVGltZVJlZiA9
IGVuZFRpbWU7Ci0KLSAgICAgICAgICAgIGRpc3BhdGNoX2dyb3VwX3QgZ3JvdXAgPSBkaXNwYXRj
aF9ncm91cF9jcmVhdGUoKTsKLSAgICAgICAgICAgIGRpc3BhdGNoX2dyb3VwX2FzeW5jKGdyb3Vw
LCBkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKDAsIDApLCBeewotICAgICAgICAgICAgICAgIHN0
YXJ0VGltZVJlZiA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLSAgICAgICAgICAgICAg
ICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHRSZWYsIHNjcmlwdFJlZiwgbnVsbHB0ciwgbnVsbHB0
ciwgMSwgJmV4Y2VwdGlvblJlZik7Ci0gICAgICAgICAgICAgICAgZW5kVGltZVJlZiA9IENQVVRp
bWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLSAgICAgICAgICAgICAgICBhdXRvIGxvY2tlciA9IFdU
Rjo6aG9sZExvY2soc3luY0xvY2tSZWYpOwotICAgICAgICAgICAgICAgIGRpZFN5bmNocm9uaXpl
UmVmID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZVJlZi5ub3RpZnlBbGwoKTsK
LSAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKHN5
bmNMb2NrKTsKLSAgICAgICAgICAgIHN5bmNocm9uaXplLndhaXQoc3luY0xvY2ssIFsmXSB7IHJl
dHVybiBkaWRTeW5jaHJvbml6ZTsgfSk7Ci0KLSAgICAgICAgICAgIGlmICgoKGVuZFRpbWUgLSBz
dGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpICYmIGRpc3BhdGNo
VGVybWluYXRlQ2FsbGJhY2tDYWxsZWQpCi0gICAgICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiAl
cyBzY3JpcHQgb24gZGlzcGF0Y2ggcXVldWUgdGltZWQgb3V0IGFzIGV4cGVjdGVkLlxuIiwgdGll
ck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAo
KGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVk
KQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCBvbiBkaXNwYXRj
aCBxdWV1ZSBkaWQgbm90IHRpbWUgb3V0IGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGll
cik7Ci0gICAgICAgICAgICAgICAgaWYgKCFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxl
ZCkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgb24gZGlzcGF0
Y2ggcXVldWUgdGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25z
LnRpZXIpOwotICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7Ci0gICAgICAgICAgICB9Cisg
ICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkpIHsK
KyAgICAgICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZyhzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgICAgIGV4Y2Vw
dGlvbiA9IG51bGxwdHI7CisgICAgICAgICAgICAgICAgZGlzcGF0Y2hUZXJtaW5hdGVDYWxsYmFj
a0NhbGxlZCA9IGZhbHNlOworCisgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byBkbyB0aGlz
IHNpbmNlIGJsb2NrcyBjYW4gb25seSBjYXB0dXJlIHRoaW5ncyBhcyBjb25zdC4KKyAgICAgICAg
ICAgICAgICBKU0dsb2JhbENvbnRleHRSZWYmIGNvbnRleHRSZWYgPSBjb250ZXh0OworICAgICAg
ICAgICAgICAgIEpTU3RyaW5nUmVmJiBzY3JpcHRSZWYgPSBzY3JpcHQ7CisgICAgICAgICAgICAg
ICAgSlNWYWx1ZVJlZiYgZXhjZXB0aW9uUmVmID0gZXhjZXB0aW9uOworCisgICAgICAgICAgICAg
ICAgTG9jayBzeW5jTG9jazsKKyAgICAgICAgICAgICAgICBMb2NrJiBzeW5jTG9ja1JlZiA9IHN5
bmNMb2NrOworICAgICAgICAgICAgICAgIENvbmRpdGlvbiBzeW5jaHJvbml6ZTsKKyAgICAgICAg
ICAgICAgICBDb25kaXRpb24mIHN5bmNocm9uaXplUmVmID0gc3luY2hyb25pemU7CisgICAgICAg
ICAgICAgICAgYm9vbCBkaWRTeW5jaHJvbml6ZSA9IGZhbHNlOworICAgICAgICAgICAgICAgIGJv
b2wmIGRpZFN5bmNocm9uaXplUmVmID0gZGlkU3luY2hyb25pemU7CisKKyAgICAgICAgICAgICAg
ICBTZWNvbmRzIHN0YXJ0VGltZTsKKyAgICAgICAgICAgICAgICBTZWNvbmRzIGVuZFRpbWU7CisK
KyAgICAgICAgICAgICAgICBTZWNvbmRzJiBzdGFydFRpbWVSZWYgPSBzdGFydFRpbWU7CisgICAg
ICAgICAgICAgICAgU2Vjb25kcyYgZW5kVGltZVJlZiA9IGVuZFRpbWU7CisKKyAgICAgICAgICAg
ICAgICBkaXNwYXRjaF9ncm91cF90IGdyb3VwID0gZGlzcGF0Y2hfZ3JvdXBfY3JlYXRlKCk7Cisg
ICAgICAgICAgICAgICAgZGlzcGF0Y2hfZ3JvdXBfYXN5bmMoZ3JvdXAsIGRpc3BhdGNoX2dldF9n
bG9iYWxfcXVldWUoMCwgMCksIF57CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZVJlZiA9
IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAgICAgICAgSlNFdmFs
dWF0ZVNjcmlwdChjb250ZXh0UmVmLCBzY3JpcHRSZWYsIG51bGxwdHIsIG51bGxwdHIsIDEsICZl
eGNlcHRpb25SZWYpOworICAgICAgICAgICAgICAgICAgICBlbmRUaW1lUmVmID0gQ1BVVGltZTo6
Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAgICAgICAgICAgICAgICBhdXRvIGxvY2tlciA9IFdU
Rjo6aG9sZExvY2soc3luY0xvY2tSZWYpOworICAgICAgICAgICAgICAgICAgICBkaWRTeW5jaHJv
bml6ZVJlZiA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIHN5bmNocm9uaXplUmVmLm5vdGlm
eUFsbCgpOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgYXV0byBsb2Nr
ZXIgPSBob2xkTG9jayhzeW5jTG9jayk7CisgICAgICAgICAgICAgICAgc3luY2hyb25pemUud2Fp
dChzeW5jTG9jaywgWyZdIHsgcmV0dXJuIGRpZFN5bmNocm9uaXplOyB9KTsKKworICAgICAgICAg
ICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91
bGRIYXZlRmlyZWQpICYmIGRpc3BhdGNoVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQpCisgICAgICAg
ICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IG9uIGRpc3BhdGNoIHF1ZXVlIHRp
bWVkIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAg
ICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoKGVuZFRpbWUgLSBzdGFydFRpbWUp
ID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKQorICAgICAgICAgICAgICAgICAg
ICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgb24gZGlzcGF0Y2ggcXVldWUgZGlkIG5vdCB0
aW1lIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAg
ICAgICAgICBpZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQorICAgICAgICAg
ICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgb24gZGlzcGF0Y2ggcXVldWUg
dGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwor
ICAgICAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KICNl
bmRpZgogCiAgICAgICAgIEpTR2xvYmFsQ29udGV4dFJlbGVhc2UoY29udGV4dCk7CiAKLSAgICAg
ICAgT3B0aW9uczo6c2V0T3B0aW9ucyhzYXZlZE9wdGlvbnNCdWlsZGVyLnRvU3RyaW5nKCkuYXNj
aWkoKS5kYXRhKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzYXZlZE9wdGlvbnNCdWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBPcHRpb25zOjpzZXRPcHRpb25zKHN0cmluZy0+
YXNjaWkoKS5kYXRhKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAg
IH0KICAgICAKICAgICByZXR1cm4gZmFpbGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS90ZXN0cy9QaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvUGluZ1BvbmdTdGFja092ZXJmbG93VGVzdC5jcHAKaW5k
ZXggMDQyYmViZi4uYWNjNDA5ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS90ZXN0cy9QaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL3Rlc3RzL1BpbmdQb25nU3RhY2tPdmVyZmxvd1Rlc3QuY3BwCkBAIC02NCw5
ICs2NCwxMiBAQCBzdGF0aWMgYm9vbCBQaW5nUG9uZ1N0YWNrT3ZlcmZsb3dPYmplY3RfaGFzSW5z
dGFuY2UoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZQogICAgICAgICB9CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKTsiKTsKIAotICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQg
PSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhidWlsZGVyLnRvU3RyaW5nKCkudXRmOCgp
LmRhdGEoKSk7Ci0gICAgICAgIHJlc3VsdCA9IEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2Ny
aXB0LCBOVUxMLCBOVUxMLCAxLCBleGNlcHRpb24pOwotICAgICAgICBKU1N0cmluZ1JlbGVhc2Uo
c2NyaXB0KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKSB7
CisgICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZyhzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgcmVzdWx0ID0gSlNF
dmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIE5VTEwsIE5VTEwsIDEsIGV4Y2VwdGlvbik7
CisgICAgICAgICAgICBKU1N0cmluZ1JlbGVhc2Uoc2NyaXB0KTsKKyAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIC0tbmF0aXZlUmVjdXJzaW9uQ291bnQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2NWE1MmMxLi5hN2NhZmM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5OCBAQAorMjAxOC0wNC0yNiAgSkYgQmFzdGllbiAg
PGpmYmFzdGllbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3RyaW5nQnVpbGRlciBpcyBmYWxsaWJs
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MDQ4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RyaW5n
QnVpbGRlciBjYW4gZmFpbCB3aGVuIGFsbG9jYXRpbmcgbWVtb3J5LiBTdHJpbmdCdWlsZGVyIGlz
CisgICAgICAgIG1vc3RseSB1c2VkIHdpdGggdXNlciBpbnB1dCwgd2hpY2ggb2Z0ZW4gbWVhbnMg
dGhhdCBqdXN0IGNyYXNoaW5nCisgICAgICAgIGlzbid0IHRoZSByaWdodCBvdXRjb21lLiBPdXIg
ZnV6emVycyBvZnRlbiBlbmNvdW50ZXIgc3VjaCB0aGluZ3MKKyAgICAgICAgZm9yIEphdmFTY3Jp
cHRDb3JlLCBhbmQgc28gZmFyIHdlJ3ZlIGFwcGxpZWQgcG9pbnQgc29sdXRpb25zLiBObworICAg
ICAgICBtb3JlIQorCisgICAgICAgICogQVBJL0pTQ29udGV4dFJlZi5jcHA6CisgICAgICAgIChK
U0NvbnRleHRDcmVhdGVCYWNrdHJhY2UpOgorICAgICAgICAqIEFQSS90ZXN0cy9FeGVjdXRpb25U
aW1lTGltaXRUZXN0LmNwcDoKKyAgICAgICAgKHRlc3RFeGVjdXRpb25UaW1lTGltaXQpOgorICAg
ICAgICAqIEFQSS90ZXN0cy9QaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcDoKKyAgICAgICAg
KFBpbmdQb25nU3RhY2tPdmVyZmxvd09iamVjdF9oYXNJbnN0YW5jZSk6CisgICAgICAgICogZGZn
L0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlN0cmVu
Z3RoUmVkdWN0aW9uUGhhc2U6OmhhbmRsZU5vZGUpOgorICAgICAgICAqIGhlYXAvSGVhcFNuYXBz
aG90QnVpbGRlci5jcHA6CisgICAgICAgIChKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXI6Ompzb24p
OgorICAgICAgICAqIGluc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHA6CisgICAgICAgIChJbnNw
ZWN0b3I6OkNvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZSk6CisgICAgICAgICogaW5zcGVj
dG9yL0NvbnRlbnRTZWFyY2hVdGlsaXRpZXMuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpDb250
ZW50U2VhcmNoVXRpbGl0aWVzOjpjcmVhdGVTZWFyY2hSZWdleFNvdXJjZSk6CisgICAgICAgICog
aW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6
c3RhY2tUcmFjZUFzU3RyaW5nKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9TdGFja1Zpc2l0b3Iu
Y3BwOgorICAgICAgICAoSlNDOjpTdGFja1Zpc2l0b3I6OkZyYW1lOjp0b1N0cmluZyBjb25zdCk6
CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKHJlc29sdmVQYXRoKToKKyAgICAgICAgKGZ1
bmN0aW9uSlNDU3RhY2spOgorICAgICAgICAqIHJ1bnRpbWUvQ29uZmlnRmlsZS5jcHA6CisgICAg
ICAgIChKU0M6OkNvbmZpZ0ZpbGU6OnBhcnNlKToKKyAgICAgICAgKiBydW50aW1lL0NvbnNvbGVD
bGllbnQuY3BwOgorICAgICAgICAoSlNDOjpDb25zb2xlQ2xpZW50OjpwcmludENvbnNvbGVNZXNz
YWdlKToKKyAgICAgICAgKEpTQzo6Q29uc29sZUNsaWVudDo6cHJpbnRDb25zb2xlTWVzc2FnZVdp
dGhBcmd1bWVudHMpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwOgorICAg
ICAgICAoSlNDOjpmb3JtYXREYXRlVGltZSk6CisgICAgICAgICogcnVudGltZS9FcnJvckluc3Rh
bmNlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6c2FuaXRpemVkVG9TdHJpbmcp
OgorICAgICAgICAqIHJ1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHA6CisgICAgICAgIChKU0M6
Om5vdEFGdW5jdGlvblNvdXJjZUFwcGVuZGVyKToKKyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9u
Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RGdW5jdGlvblNraXBwaW5n
RXZhbEVuYWJsZWRDaGVjayk6CisgICAgICAgICogcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQu
Y3BwOgorICAgICAgICAoSlNDOjpJbnRsRGF0ZVRpbWVGb3JtYXQ6OmluaXRpYWxpemVEYXRlVGlt
ZUZvcm1hdCk6CisgICAgICAgICogcnVudGltZS9JbnRsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpT
Qzo6cHJpdmF0ZVVzZUxhbmdUYWcpOgorICAgICAgICAoSlNDOjpjYW5vbmljYWxMYW5nVGFnKToK
KyAgICAgICAgKEpTQzo6cmVtb3ZlVW5pY29kZUxvY2FsZUV4dGVuc2lvbik6CisgICAgICAgICog
cnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChKU0M6OmVuY29k
ZSk6CisgICAgICAgIChKU0M6OmRlY29kZSk6CisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNFc2Nh
cGUpOgorICAgICAgICAoSlNDOjpnbG9iYWxGdW5jVW5lc2NhcGUpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNPTk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ2lmaWVyOjpzdHJpbmdpZnkp
OgorICAgICAgICAoSlNDOjpTdHJpbmdpZmllcjo6SG9sZGVyOjphcHBlbmROZXh0UHJvcGVydHkp
OgorICAgICAgICAqIHJ1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHA6CisgICAgICAgIChKU0M6Okxp
dGVyYWxQYXJzZXI8Q2hhclR5cGU+OjpMZXhlcjo6bGV4U3RyaW5nU2xvdyk6CisgICAgICAgICog
cnVudGltZS9PcHRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6ZHVtcE9wdGlvbnNJ
Zk5lZWRlZCk6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OmR1bXBBbGxPcHRpb25zKToKKyAgICAg
ICAgKiBydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OnJlZ0V4cFBy
b3RvR2V0dGVyU291cmNlSW50ZXJuYWwpOgorICAgICAgICAqIHJ1bnRpbWUvU2FtcGxpbmdQcm9m
aWxlci5jcHA6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6OnN0YWNrVHJhY2VzQXNK
U09OKToKKyAgICAgICAgKiBydW50aW1lL1N0YWNrRnJhbWUuY3BwOgorICAgICAgICAoSlNDOjpT
dGFja0ZyYW1lOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OnN0cmluZ0Zyb21Db2RlUG9pbnQpOgorICAgICAg
ICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6c3Vic3RpdHV0
ZUJhY2tyZWZlcmVuY2VzU2xvdyk6CisgICAgICAgICogcnVudGltZS9UeXBlUHJvZmlsZXIuY3Bw
OgorICAgICAgICAoSlNDOjpUeXBlUHJvZmlsZXI6OnR5cGVJbmZvcm1hdGlvbkZvckV4cHJlc3Np
b25BdE9mZnNldCk6CisgICAgICAgICogcnVudGltZS9UeXBlU2V0LmNwcDoKKyAgICAgICAgKEpT
Qzo6VHlwZVNldDo6ZHVtcFR5cGVzIGNvbnN0KToKKyAgICAgICAgKEpTQzo6VHlwZVNldDo6dG9K
U09OU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlU2hhcGU6OnByb3BlcnR5
SGFzaCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVNoYXBlOjpzdHJpbmdSZXByZXNlbnRhdGlv
bik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVNoYXBlOjp0b0pTT05TdHJpbmcgY29uc3QpOgor
ICAgICAgICAqIHRlc3RSZWdFeHAuY3BwOgorICAgICAgICAocGFyc2VSZWdFeHBMaW5lKToKKyAg
ICAgICAgKHBhcnNlVGVzdExpbmUpOgorICAgICAgICAqIHRvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVz
LmNwcDoKKyAgICAgICAgKEpTQzo6cGFyc2VDbGF1c2UpOgorICAgICAgICAqIHdhc20vV2FzbUJC
UVBsYW4uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpCQlFQbGFuOjpwcmVwYXJlKToKKyAgICAg
ICAgKiB5YXJyL1lhcnJQYXJzZXIuaDoKKyAgICAgICAgKEpTQzo6WWFycjo6UGFyc2VyOjp0cnlD
b25zdW1lR3JvdXBOYW1lKToKKyAgICAgICAgKEpTQzo6WWFycjo6UGFyc2VyOjp0cnlDb25zdW1l
VW5pY29kZVByb3BlcnR5RXhwcmVzc2lvbik6CisKIDIwMTgtMDQtMjUgIFJvYmluIE1vcmlzc2V0
ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KIAogICAgICAgICBJbiBGVExMb3dlckRGR1RvQjMuY3Bw
Ojpjb21waWxlQ3JlYXRlUmVzdCwgYWx3YXlzIHVzZSBhIGNvbnRpZ3VvdXMgYXJyYXkgYXMgdGhl
IGluZGV4aW5nIHR5cGUgd2hlbiB1bmRlciBpc1dhdGNoaW5nSGF2aW5nQUJhZFRpbWVXYXRjaHBv
aW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVk
dWN0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJlbmd0aFJl
ZHVjdGlvblBoYXNlLmNwcAppbmRleCA1YzFiZTY4Li41YTAyZGU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAK
QEAgLTM2MSw4ICszNjEsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7CiAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQobGVmdFN0cmluZyk7
CiAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQocmlnaHRTdHJpbmcpOwotICAgICAgICAg
ICAgICAgIG1fbm9kZS0+Y29udmVydFRvTGF6eUpTQ29uc3RhbnQoCi0gICAgICAgICAgICAgICAg
ICAgIG1fZ3JhcGgsIExhenlKU1ZhbHVlOjpuZXdTdHJpbmcobV9ncmFwaCwgYnVpbGRlci50b1N0
cmluZygpKSk7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICAgICAgICAgICAgICBtX25vZGUtPmNvbnZlcnRUb0xhenlKU0NvbnN0
YW50KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9ncmFwaCwgTGF6eUpTVmFsdWU6Om5ld1N0
cmluZyhtX2dyYXBoLCAqc3RyaW5nKSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKQEAgLTM4OSw4ICszOTIsMTEgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgIGlmICghIWV4dHJhU3RyaW5nKQogICAgICAgICAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKGV4dHJhU3RyaW5nKTsKIAotICAgICAgICAgICAgbV9ub2RlLT5jb252ZXJ0
VG9MYXp5SlNDb25zdGFudCgKLSAgICAgICAgICAgICAgICBtX2dyYXBoLCBMYXp5SlNWYWx1ZTo6
bmV3U3RyaW5nKG1fZ3JhcGgsIGJ1aWxkZXIudG9TdHJpbmcoKSkpOworICAgICAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIG1fbm9k
ZS0+Y29udmVydFRvTGF6eUpTQ29uc3RhbnQoCisgICAgICAgICAgICAgICAgICAgIG1fZ3JhcGgs
IExhenlKU1ZhbHVlOjpuZXdTdHJpbmcobV9ncmFwaCwgKnN0cmluZykpOworICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0
cnVlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTg4Miw5ICs4ODgsMTIgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIGlmIChsYXN0SW5k
ZXggPCBzdHJpbmcubGVuZ3RoKCkpCiAgICAgICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KHN0cmluZywgbGFzdEluZGV4LCBzdHJpbmcubGVuZ3RoKCkgLSBsYXN0SW5kZXgpOwotICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgICAgIG1fbm9kZS0+Y29udmVydFRvTGF6eUpTQ29uc3Rh
bnQoCi0gICAgICAgICAgICAgICAgICAgIG1fZ3JhcGgsIExhenlKU1ZhbHVlOjpuZXdTdHJpbmco
bV9ncmFwaCwgYnVpbGRlci50b1N0cmluZygpKSk7CisKKyAgICAgICAgICAgICAgICBpZiAoYXV0
byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICAgIG1fbm9k
ZS0+Y29udmVydFRvTGF6eUpTQ29uc3RhbnQoCisgICAgICAgICAgICAgICAgICAgICAgICBtX2dy
YXBoLCBMYXp5SlNWYWx1ZTo6bmV3U3RyaW5nKG1fZ3JhcGgsICpzdHJpbmcpKTsKKyAgICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICB9
CiAKICAgICAgICAgICAgIG1fbm9kZS0+b3JpZ2luID0gb3JpZ2luOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFNuYXBzaG90QnVpbGRlci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3RCdWlsZGVyLmNwcAppbmRleCA2NWY2MzNm
Li5lMWFhZDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU25h
cHNob3RCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU25h
cHNob3RCdWlsZGVyLmNwcApAQCAtMzg3LDcgKzM4Nyw5IEBAIFN0cmluZyBIZWFwU25hcHNob3RC
dWlsZGVyOjpqc29uKHN0ZDo6ZnVuY3Rpb248Ym9vbCAoY29uc3QgSGVhcFNuYXBzaG90Tm9kZSYp
PiBhCiAgICAganNvbi5hcHBlbmQoJ10nKTsKIAogICAgIGpzb24uYXBwZW5kKCd9Jyk7Ci0gICAg
cmV0dXJuIGpzb24udG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBqc29uLnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9Db25zb2xlTWVzc2FnZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0Nv
bnNvbGVNZXNzYWdlLmNwcAppbmRleCA1Y2ZiMDRkLi43MWU0ZmM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcApAQCAtMTE1LDcg
KzExNSwxMCBAQCBDb25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBz
b3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZQogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgSlNPTkxvZ1ZhbHVlOjpUeXBlOjpKU09OOgogICAgICAgICAgICAgaWYgKGJ1
aWxkZXIubGVuZ3RoKCkpIHsKLSAgICAgICAgICAgICAgICBtX2pzb25Mb2dWYWx1ZXMuYXBwZW5k
KHsgSlNPTkxvZ1ZhbHVlOjpUeXBlOjpTdHJpbmcsIEpTT046OlZhbHVlOjpjcmVhdGUoYnVpbGRl
ci50b1N0cmluZygpKS0+dG9KU09OU3RyaW5nKCkgfSk7CisgICAgICAgICAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgICAgICBtX2pz
b25Mb2dWYWx1ZXMuYXBwZW5kKHsgSlNPTkxvZ1ZhbHVlOjpUeXBlOjpTdHJpbmcsIEpTT046OlZh
bHVlOjpjcmVhdGUoKnN0cmluZyktPnRvSlNPTlN0cmluZygpIH0pOworICAgICAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgICAgICBidWls
ZGVyLnJlc2l6ZSgwKTsKICAgICAgICAgICAgIH0KIApAQCAtMTI0LDggKzEyNywxMiBAQCBDb25z
b2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VU
eXBlIHR5cGUsIE1lc3NhZ2VMZQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKGJ1aWxkZXIu
bGVuZ3RoKCkpCi0gICAgICAgIG1fanNvbkxvZ1ZhbHVlcy5hcHBlbmQoeyBKU09OTG9nVmFsdWU6
OlR5cGU6OlN0cmluZywgSlNPTjo6VmFsdWU6OmNyZWF0ZShidWlsZGVyLnRvU3RyaW5nKCkpLT50
b0pTT05TdHJpbmcoKSB9KTsKKyAgICBpZiAoYnVpbGRlci5sZW5ndGgoKSkgeworICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBtX2pzb25M
b2dWYWx1ZXMuYXBwZW5kKHsgSlNPTkxvZ1ZhbHVlOjpUeXBlOjpTdHJpbmcsIEpTT046OlZhbHVl
OjpjcmVhdGUoKnN0cmluZyktPnRvSlNPTlN0cmluZygpIH0pOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBDUkFTSCgpOworICAgIH0KIAogICAgIGlmIChtX2pzb25Mb2dWYWx1ZXMuc2l6ZSgp
KQogICAgICAgICBtX21lc3NhZ2UgPSBtX2pzb25Mb2dWYWx1ZXNbMF0udmFsdWU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlsaXRp
ZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRp
bGl0aWVzLmNwcAppbmRleCBhYWE4MWUyLi5iMGMxOTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlsaXRpZXMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxpdGllcy5jcHAK
QEAgLTU1LDcgKzU1LDkgQEAgc3RhdGljIFN0cmluZyBjcmVhdGVTZWFyY2hSZWdleFNvdXJjZShj
b25zdCBTdHJpbmcmIHRleHQpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2hhcmFjdGVyKTsKICAg
ICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgc2l6ZV90IHNpemV0RXh0cmFjdG9yKGNvbnN0IHNpemVf
dCogdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
SW50ZXJwcmV0ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVy
cHJldGVyLmNwcAppbmRleCA0ZjcyNzA5Li5lZDE3NDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKQEAgLTU3Nyw3ICs1NzcsOSBA
QCBKU1N0cmluZyogSW50ZXJwcmV0ZXI6OnN0YWNrVHJhY2VBc1N0cmluZyhWTSYgdm0sIGNvbnN0
IFZlY3RvcjxTdGFja0ZyYW1lPiYgc3RhYwogICAgICAgICBpZiAoaSAhPSBzdGFja1RyYWNlLnNp
emUoKSAtIDEpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKICAgICB9Ci0gICAg
cmV0dXJuIGpzU3RyaW5nKCZ2bSwgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBqc1N0cmluZygmdm0s
ICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIEFMV0FZU19JTkxJTkUgc3RhdGljIEhhbmRs
ZXJJbmZvKiBmaW5kRXhjZXB0aW9uSGFuZGxlcihTdGFja1Zpc2l0b3ImIHZpc2l0b3IsIENvZGVC
bG9jayogY29kZUJsb2NrLCBSZXF1aXJlZEhhbmRsZXIgcmVxdWlyZWRIYW5kbGVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcAppbmRl
eCAxZDFmZjczLi43MGNkMTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcApAQCAtMzQ3LDcgKzM0Nyw5IEBAIFN0cmluZyBTdGFj
a1Zpc2l0b3I6OkZyYW1lOjp0b1N0cmluZygpIGNvbnN0CiAgICAgICAgICAgICB0cmFjZUJ1aWxk
LmFwcGVuZE51bWJlcihjb2x1bW4pOwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiB0cmFj
ZUJ1aWxkLnRvU3RyaW5nKCkuaW1wbCgpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHRyYWNlQnVp
bGQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0cmluZy0+aW1wbCgpOworICAgIENSQVNI
KCk7CiB9CiAKIGludHB0cl90IFN0YWNrVmlzaXRvcjo6RnJhbWU6OnNvdXJjZUlEKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAKaW5kZXggNGE3M2U4Ny4uM2ZhNDY2NCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAK
QEAgLTc2NSw3ICs3NjUsOSBAQCBzdGF0aWMgU3RyaW5nIHJlc29sdmVQYXRoKGNvbnN0IERpcmVj
dG9yeU5hbWUmIGRpcmVjdG9yeU5hbWUsIGNvbnN0IE1vZHVsZU5hbWUmCiAgICAgICAgIGlmIChp
ICsgMSAhPSBkaXJlY3RvcnlQaWVjZXMuc2l6ZSgpKQogICAgICAgICAgICAgYnVpbGRlci5hcHBl
bmQocGF0aFNlcGFyYXRvcigpKTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgYWJzb2x1dGVQ
YXRoKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUpCkBAIC0xMTI1LDggKzExMjcsMTEgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkpTQ1N0YWNrKEV4ZWNTdGF0ZSogZXhlYykK
IAogICAgIEZ1bmN0aW9uSlNDU3RhY2tGdW5jdG9yIGZ1bmN0b3IodHJhY2UpOwogICAgIGV4ZWMt
Pml0ZXJhdGUoZnVuY3Rvcik7Ci0gICAgZnByaW50ZihzdGRlcnIsICIlcyIsIHRyYWNlLnRvU3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0cmFjZS50b1N0cmluZygpKSB7CisgICAg
ICAgIGZwcmludGYoc3RkZXJyLCAiJXMiLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIH0KKyAgICBDUkFT
SCgpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uR0NBbmRTd2Vl
cChFeGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db25maWdGaWxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmZp
Z0ZpbGUuY3BwCmluZGV4IGJiODc2NjYuLmY3ZWNkYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwCkBAIC00NjUsOSArNDY1LDEyIEBAIHZvaWQgQ29u
ZmlnRmlsZTo6cGFyc2UoKQogICAgICAgICAgICAgV1RGOjpzZXREYXRhRmlsZShsb2dQYXRobmFt
ZSk7CiAKICAgICAgICAgaWYgKCFqc2NPcHRpb25zQnVpbGRlci5pc0VtcHR5KCkpIHsKLSAgICAg
ICAgICAgIGNvbnN0IGNoYXIqIG9wdGlvbnNTdHIgPSBqc2NPcHRpb25zQnVpbGRlci50b1N0cmlu
ZygpLnV0ZjgoKS5kYXRhKCk7Ci0gICAgICAgICAgICBPcHRpb25zOjplbmFibGVSZXN0cmljdGVk
T3B0aW9ucyh0cnVlKTsKLSAgICAgICAgICAgIE9wdGlvbnM6OnNldE9wdGlvbnMob3B0aW9uc1N0
cik7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBqc2NPcHRpb25zQnVpbGRlci50b1N0
cmluZygpKSB7CisgICAgICAgICAgICAgICAgY29uc3QgY2hhciogb3B0aW9uc1N0ciA9IHN0cmlu
Zy0+dXRmOCgpLmRhdGEoKTsKKyAgICAgICAgICAgICAgICBPcHRpb25zOjplbmFibGVSZXN0cmlj
dGVkT3B0aW9ucyh0cnVlKTsKKyAgICAgICAgICAgICAgICBPcHRpb25zOjpzZXRPcHRpb25zKG9w
dGlvbnNTdHIpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsK
ICAgICAgICAgfQogICAgIH0gZWxzZQogICAgICAgICBXVEY6OmRhdGFMb2dGKCJFcnJvciBpbiBK
U0MgQ29uZmlnIGZpbGUgb24gb3IgbmVhciBsaW5lICV1LCBwYXJzaW5nICclcydcbiIsIHNjYW5u
ZXIubGluZU51bWJlcigpLCBzY2FubmVyLmN1cnJlbnRCdWZmZXIoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVDbGllbnQuY3BwCmluZGV4IDI5MTdkNzY4Li5i
ODY2NDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xl
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xp
ZW50LmNwcApAQCAtMTQ0LDcgKzE0NCwxMCBAQCB2b2lkIENvbnNvbGVDbGllbnQ6OnByaW50Q29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsCiAgICAg
YnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICBidWlsZGVyLmFwcGVuZChtZXNzYWdlKTsKIAotICAg
IFdURkxvZ0Fsd2F5cygiJXMiLCBidWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBXVEZMb2dB
bHdheXMoIiVzIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICBlbHNlCisgICAgICAgIENS
QVNIKCk7CiB9CiAKIHZvaWQgQ29uc29sZUNsaWVudDo6cHJpbnRDb25zb2xlTWVzc2FnZVdpdGhB
cmd1bWVudHMoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VM
ZXZlbCBsZXZlbCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYg
YXJndW1lbnRzKQpAQCAtMTcwLDcgKzE3MywxMCBAQCB2b2lkIENvbnNvbGVDbGllbnQ6OnByaW50
Q29uc29sZU1lc3NhZ2VXaXRoQXJndW1lbnRzKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYQog
ICAgICAgICBzY29wZS5jbGVhckV4Y2VwdGlvbigpOwogICAgIH0KIAotICAgIFdURkxvZ0Fsd2F5
cygiJXMiLCBidWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBXVEZMb2dBbHdheXMoIiVzIiwg
c3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAg
ICBpZiAoaXNUcmFjZU1lc3NhZ2UpIHsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBj
YWxsU3RhY2stPnNpemUoKTsgKytpKSB7CkBAIC0xODcsNyArMTkzLDEwIEBAIHZvaWQgQ29uc29s
ZUNsaWVudDo6cHJpbnRDb25zb2xlTWVzc2FnZVdpdGhBcmd1bWVudHMoTWVzc2FnZVNvdXJjZSBz
b3VyY2UsIE1lc3NhCiAgICAgICAgICAgICBhcHBlbmRVUkxBbmRQb3NpdGlvbihjYWxsRnJhbWVC
dWlsZGVyLCBjYWxsRnJhbWUuc291cmNlVVJMKCksIGNhbGxGcmFtZS5saW5lTnVtYmVyKCksIGNh
bGxGcmFtZS5jb2x1bW5OdW1iZXIoKSk7CiAgICAgICAgICAgICBjYWxsRnJhbWVCdWlsZGVyLmFw
cGVuZCgnKScpOwogCi0gICAgICAgICAgICBXVEZMb2dBbHdheXMoIiVzIiwgY2FsbEZyYW1lQnVp
bGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gY2FsbEZyYW1lQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIFdURkxv
Z0Fsd2F5cygiJXMiLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29udmVyc2lvbi5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29udmVyc2lvbi5jcHAKaW5kZXggOGE4N2Nj
Ni4uNDIzYmUyNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0
ZUNvbnZlcnNpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVD
b252ZXJzaW9uLmNwcApAQCAtMTIzLDcgKzEyMyw5IEBAIFN0cmluZyBmb3JtYXREYXRlVGltZShj
b25zdCBHcmVnb3JpYW5EYXRlVGltZSYgdCwgRGF0ZVRpbWVGb3JtYXQgZm9ybWF0LCBib29sIGFz
CiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpLmltcGwo
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiBzdHJpbmctPmltcGwoKTsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBK
U0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFu
Y2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAK
aW5kZXggYzE3MjQyOC4uNzhkMjk5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKQEAgLTE5OSw3ICsxOTksOSBAQCBTdHJpbmcgRXJyb3JJ
bnN0YW5jZTo6c2FuaXRpemVkVG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogICAgIGJ1aWxkZXIu
YXBwZW5kKG5hbWVTdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiOiAiKTsKICAg
ICBidWlsZGVyLmFwcGVuZChtZXNzYWdlU3RyaW5nKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBFcnJvckluc3RhbmNl
OjptYXRlcmlhbGl6ZUVycm9ySW5mb0lmTmVlZGVkKFZNJiB2bSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKaW5kZXggNjk5MTQ0Yi4u
NmUwMWI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0
aW9uSGVscGVycy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0
aW9uSGVscGVycy5jcHAKQEAgLTIxMSw3ICsyMTEsOSBAQCBzdGF0aWMgU3RyaW5nIG5vdEFGdW5j
dGlvblNvdXJjZUFwcGVuZGVyKGNvbnN0IFN0cmluZyYgb3JpZ2luYWxNZXNzYWdlLCBjb25zdCBT
dAogICAgIH0KICAgICBidWlsZGVyLmFwcGVuZCgnKScpOwogCi0gICAgcmV0dXJuIGJ1aWxkZXIu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJpbmcg
aW52YWxpZFBhcmFtZXRlckluU291cmNlQXBwZW5kZXIoY29uc3QgU3RyaW5nJiBvcmlnaW5hbE1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVGV4dCwgUnVudGltZVR5cGUgdHlwZSwgRXJyb3JJ
bnN0YW5jZTo6U291cmNlVGV4dFdoZXJlRXJyb3JPY2N1cnJlZCBvY2N1cnJlbmNlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNw
cAppbmRleCAwMzFmZTMyLi5kYmE1Zjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcApAQCAtMTQzLDE0ICsxNDMsMTcg
QEAgSlNPYmplY3QqIGNvbnN0cnVjdEZ1bmN0aW9uU2tpcHBpbmdFdmFsRW5hYmxlZENoZWNrKAog
ICAgICAgICB7CiAgICAgICAgICAgICAvLyBUaGUgc3BlYyBtYW5kYXRlcyB0aGF0IHRoZSBwYXJh
bWV0ZXJzIHBhcnNlIGFzIGEgdmFsaWQgcGFyYW1ldGVyIGxpc3QKICAgICAgICAgICAgIC8vIGlu
ZGVwZW5kZW50IG9mIHRoZSBmdW5jdGlvbiBib2R5LgotICAgICAgICAgICAgU3RyaW5nIHByb2dy
YW0gPSBtYWtlU3RyaW5nKCIoIiwgcHJlZml4LCAiKCIsIHBhcmFtZXRlckJ1aWxkZXIudG9TdHJp
bmcoKSwgIil7XG5cbn0pIik7Ci0gICAgICAgICAgICBTb3VyY2VDb2RlIHNvdXJjZSA9IG1ha2VT
b3VyY2UocHJvZ3JhbSwgc291cmNlT3JpZ2luLCBzb3VyY2VVUkwsIHBvc2l0aW9uKTsKLSAgICAg
ICAgICAgIEpTVmFsdWUgZXhjZXB0aW9uOwotICAgICAgICAgICAgY2hlY2tTeW50YXgoZXhlYywg
c291cmNlLCAmZXhjZXB0aW9uKTsKLSAgICAgICAgICAgIGlmIChleGNlcHRpb24pIHsKLSAgICAg
ICAgICAgICAgICBzY29wZS50aHJvd0V4Y2VwdGlvbihleGVjLCBleGNlcHRpb24pOwotICAgICAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gcGFyYW1ldGVyQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAg
ICAgICAgU3RyaW5nIHByb2dyYW0gPSBtYWtlU3RyaW5nKCIoIiwgcHJlZml4LCAiKCIsICpzdHJp
bmcsICIpe1xuXG59KSIpOworICAgICAgICAgICAgICAgIFNvdXJjZUNvZGUgc291cmNlID0gbWFr
ZVNvdXJjZShwcm9ncmFtLCBzb3VyY2VPcmlnaW4sIHNvdXJjZVVSTCwgcG9zaXRpb24pOworICAg
ICAgICAgICAgICAgIEpTVmFsdWUgZXhjZXB0aW9uOworICAgICAgICAgICAgICAgIGNoZWNrU3lu
dGF4KGV4ZWMsIHNvdXJjZSwgJmV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgaWYgKGV4Y2Vw
dGlvbikgeworICAgICAgICAgICAgICAgICAgICBzY29wZS50aHJvd0V4Y2VwdGlvbihleGVjLCBl
eGNlcHRpb24pOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwog
ICAgICAgICB9CiAKICAgICAgICAgYnVpbGRlci5hcHBlbmQocGFyYW1ldGVyQnVpbGRlcik7CkBA
IC0xNjEsNyArMTY0LDEwIEBAIEpTT2JqZWN0KiBjb25zdHJ1Y3RGdW5jdGlvblNraXBwaW5nRXZh
bEVuYWJsZWRDaGVjaygKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0
cik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGJvZHkpOwogICAgICAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIlxufX0iKTsKLSAgICAgICAgcHJvZ3JhbSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsK
KyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAg
ICAgcHJvZ3JhbSA9ICpzdHJpbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7
CiAgICAgfQogCiAgICAgU291cmNlQ29kZSBzb3VyY2UgPSBtYWtlU291cmNlKHByb2dyYW0sIHNv
dXJjZU9yaWdpbiwgc291cmNlVVJMLCBwb3NpdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcAppbmRleCBjOTIwYWNmLi4y
YzJmMDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0
ZVRpbWVGb3JtYXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxE
YXRlVGltZUZvcm1hdC5jcHAKQEAgLTY0Niw3ICs2NDYsMTEgQEAgdm9pZCBJbnRsRGF0ZVRpbWVG
b3JtYXQ6OmluaXRpYWxpemVEYXRlVGltZUZvcm1hdChFeGVjU3RhdGUmIGV4ZWMsIEpTVmFsdWUg
bG9jYWwKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFN0cmluZyBza2VsZXRvbiA9IHNr
ZWxldG9uQnVpbGRlci50b1N0cmluZygpOworICAgIFN0cmluZyBza2VsZXRvbjsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBza2VsZXRvbkJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgc2tlbGV0
b24gPSAqc3RyaW5nOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICBTdHJpbmdWaWV3
IHNrZWxldG9uVmlldyhza2VsZXRvbik7CiAgICAgVmVjdG9yPFVDaGFyLCAzMj4gcGF0dGVybkJ1
ZmZlcigzMik7CiAgICAgc3RhdHVzID0gVV9aRVJPX0VSUk9SOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcAppbmRleCAzZjU0MzQwLi5iOTY1ZGY5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcApAQCAtMjQ3LDcg
KzI0Nyw5IEBAIHN0YXRpYyBTdHJpbmcgcHJpdmF0ZVVzZUxhbmdUYWcoY29uc3QgVmVjdG9yPFN0
cmluZz4mIHBhcnRzLCBzaXplX3Qgc3RhcnRJbmRleCkKICAgICBpZiAoY3VycmVudEluZGV4IDwg
bnVtUGFydHMpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIHJldHVybiBwcml2YXRl
dXNlLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcHJpdmF0ZXVzZS50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMg
U3RyaW5nIGNhbm9uaWNhbExhbmdUYWcoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcnRzKQpAQCAt
MzgwLDcgKzM4MiwxMCBAQCBzdGF0aWMgU3RyaW5nIGNhbm9uaWNhbExhbmdUYWcoY29uc3QgVmVj
dG9yPFN0cmluZz4mIHBhcnRzKQogICAgICAgICBpZiAoIW51bUV4dFBhcnRzKQogICAgICAgICAg
ICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgICAgIGV4dGVuc2lvbnMuYXBwZW5kKGV4dGVuc2lv
bi50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZXh0ZW5zaW9uLnRvU3Ry
aW5nKCkpCisgICAgICAgICAgICBleHRlbnNpb25zLmFwcGVuZCgqc3RyaW5nKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICAvLyBBZGQgZXh0ZW5zaW9u
cyB0byBjYW5vbmljYWwgc29ydGVkIGJ5IHNpbmdsZXRvbi4KQEAgLTQwOCw3ICs0MTMsOSBAQCBz
dGF0aWMgU3RyaW5nIGNhbm9uaWNhbExhbmdUYWcoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcnRz
KQogCiAgICAgLy8gRklYTUU6IFJlcGxhY2Ugc3VidGFncyB3aXRoIHRoZWlyIHByZWZlcnJlZCB2
YWx1ZXMuCiAKLSAgICByZXR1cm4gY2Fub25pY2FsLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gY2Fub25pY2FsLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgZ3JhbmRmYXRoZXJlZExhbmdUYWcoY29u
c3QgU3RyaW5nJiBsb2NhbGUpCkBAIC02MTMsNyArNjIwLDEwIEBAIFN0cmluZyByZW1vdmVVbmlj
b2RlTG9jYWxlRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbG9jYWxlKQogICAgICAgICAgICAgYnVp
bGRlci5hcHBlbmQocGFydHNbcF0pOwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiBidWls
ZGVyLnRvU3RyaW5nKCk7CisKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBN
YXRjaGVyUmVzdWx0IGxvb2t1cE1hdGNoZXIoRXhlY1N0YXRlJiBzdGF0ZSwgY29uc3QgSGFzaFNl
dDxTdHJpbmc+JiBhdmFpbGFibGVMb2NhbGVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcmVxdWVz
dGVkTG9jYWxlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcAppbmRleCA3MzEzNjczLi4xOWI1MmFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0
aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3RGdW5jdGlvbnMuY3BwCkBAIC0xNTEsNyArMTUxLDkgQEAgc3RhdGljIEpTVmFsdWUgZW5jb2Rl
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQml0bWFwPDI1Nj4mIGRvTm90RXNjYXBlLCBjb25zdCBD
aGEKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBqc1N0cmluZyhleGVjLCBidWlsZGVy
LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9
CiAKIHN0YXRpYyBKU1ZhbHVlIGVuY29kZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEJpdG1hcDwy
NTY+JiBkb05vdEVzY2FwZSkKQEAgLTIzMCw3ICsyMzIsMTAgQEAgc3RhdGljIEpTVmFsdWUgZGVj
b2RlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQ2hhclR5cGUqIGNoYXJhY3RlcnMsIGludCBsZW5n
dGgsIGMKICAgICAgICAgYnVpbGRlci5hcHBlbmQoYyk7CiAgICAgfQogICAgIHNjb3BlLnJlbGVh
c2UoKTsKLSAgICByZXR1cm4ganNTdHJpbmcoJnZtLCBidWlsZGVyLnRvU3RyaW5nKCkpOworCisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
anNTdHJpbmcoJnZtLCAqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgSlNWYWx1
ZSBkZWNvZGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBCaXRtYXA8MjU2PiYgZG9Ob3RVbmVzY2Fw
ZSwgYm9vbCBzdHJpY3QpCkBAIC02MDMsNyArNjA4LDkgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBnbG9iYWxGdW5jRXNjYXBlKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgICAg
ICAgICAgYXBwZW5kQnl0ZUFzSGV4KHN0YXRpY19jYXN0PExDaGFyPih1KSwgYnVpbGRlcik7CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIGpzU3Ry
aW5nKGV4ZWMsIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5n
KGV4ZWMsICpzdHJpbmcpOworICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogCiAgICAg
ICAgIGNvbnN0IFVDaGFyKiBjID0gdmlldy5jaGFyYWN0ZXJzMTYoKTsKQEAgLTYyMiw3ICs2Mjks
OSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNFc2NhcGUoRXhlY1N0
YXRlKiBleGVjKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgcmV0dXJuIGpz
U3RyaW5nKGV4ZWMsIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiBqc1N0cmluZyhleGVj
LCAqc3RyaW5nKTsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9KSk7CiB9CiAKQEAgLTY3OCw3ICs2
ODcsOSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNVbmVzY2FwZShF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICByZXR1
cm4ganNTdHJpbmcoZXhlYywgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5n
KGV4ZWMsICpzdHJpbmcpOworICAgICAgICBDUkFTSCgpOwogICAgIH0pKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAppbmRleCBiM2E3ODA4Li5k
N2MwNmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNw
cApAQCAtMjc4LDcgKzI3OCw5IEBAIEpTVmFsdWUgU3RyaW5naWZpZXI6OnN0cmluZ2lmeShKU1Zh
bHVlIHZhbHVlKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAogICAgIHNjb3BlLnJl
bGVhc2UoKTsKLSAgICByZXR1cm4ganNTdHJpbmcobV9leGVjLCByZXN1bHQudG9TdHJpbmcoKSk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biBqc1N0cmluZyhtX2V4ZWMsICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIEFMV0FZU19J
TkxJTkUgSlNWYWx1ZSBTdHJpbmdpZmllcjo6dG9KU09OKEpTVmFsdWUgdmFsdWUsIGNvbnN0IFBy
b3BlcnR5TmFtZUZvckZ1bmN0aW9uQ2FsbCYgcHJvcGVydHlOYW1lKQpAQCAtNTA0LDggKzUwNiwx
MiBAQCBib29sIFN0cmluZ2lmaWVyOjpIb2xkZXI6OmFwcGVuZE5leHRQcm9wZXJ0eShTdHJpbmdp
ZmllciYgc3RyaW5naWZpZXIsIFN0cmluZ0J1aQogICAgIC8vIExhc3QgdGltZSB0aHJvdWdoLCBm
aW5pc2ggdXAgYW5kIHJldHVybiBmYWxzZS4KICAgICBpZiAobV9pbmRleCA9PSBtX3NpemUpIHsK
ICAgICAgICAgc3RyaW5naWZpZXIudW5pbmRlbnQoKTsKLSAgICAgICAgaWYgKG1fc2l6ZSAmJiBi
dWlsZGVyW2J1aWxkZXIubGVuZ3RoKCkgLSAxXSAhPSAneycpCi0gICAgICAgICAgICBzdHJpbmdp
Zmllci5zdGFydE5ld0xpbmUoYnVpbGRlcik7CisgICAgICAgIGlmIChtX3NpemUpIHsKKyAgICAg
ICAgICAgIGlmIChidWlsZGVyLmZhaWxlZCgpKQorICAgICAgICAgICAgICAgIENSQVNIKCk7Cisg
ICAgICAgICAgICBpZiAoKmJ1aWxkZXJbYnVpbGRlci5sZW5ndGgoKSAtIDFdICE9ICd7JykKKyAg
ICAgICAgICAgICAgICBzdHJpbmdpZmllci5zdGFydE5ld0xpbmUoYnVpbGRlcik7CisgICAgICAg
IH0KICAgICAgICAgYnVpbGRlci5hcHBlbmQobV9pc0FycmF5ID8gJ10nIDogJ30nKTsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTU0OCw3ICs1NTQsOSBAQCBib29sIFN0cmluZ2lm
aWVyOjpIb2xkZXI6OmFwcGVuZE5leHRQcm9wZXJ0eShTdHJpbmdpZmllciYgc3RyaW5naWZpZXIs
IFN0cmluZ0J1aQogICAgICAgICByb2xsQmFja1BvaW50ID0gYnVpbGRlci5sZW5ndGgoKTsKIAog
ICAgICAgICAvLyBBcHBlbmQgdGhlIHNlcGFyYXRvciBzdHJpbmcuCi0gICAgICAgIGlmIChidWls
ZGVyW3JvbGxCYWNrUG9pbnQgLSAxXSAhPSAneycpCisgICAgICAgIGlmIChidWlsZGVyLmZhaWxl
ZCgpKQorICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgaWYgKCpidWlsZGVyW3JvbGxCYWNr
UG9pbnQgLSAxXSAhPSAneycpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnLCcpOwogICAg
ICAgICBzdHJpbmdpZmllci5zdGFydE5ld0xpbmUoYnVpbGRlcik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAKaW5kZXggZjAwZmUwNy4uYjg2
ODY4YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTGl0ZXJhbFBh
cnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTGl0ZXJhbFBhcnNl
ci5jcHAKQEAgLTQ2NiwxMCArNDY2LDE2IEBAIHNsb3dQYXRoQmVnaW46CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgaWYgKG1fYnVpbGRlci5pczhCaXQoKSkgewogICAgICAgICAgICAgdG9rZW4uc3Ry
aW5nSXM4Qml0ID0gMTsKLSAgICAgICAgICAgIHRva2VuLnN0cmluZ1Rva2VuOCA9IG1fYnVpbGRl
ci5jaGFyYWN0ZXJzOCgpOworICAgICAgICAgICAgaWYgKGF1dG8gY2hhcnMgPSBtX2J1aWxkZXIu
Y2hhcmFjdGVyczgoKSkKKyAgICAgICAgICAgICAgICB0b2tlbi5zdHJpbmdUb2tlbjggPSAqY2hh
cnM7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAg
fSBlbHNlIHsKICAgICAgICAgICAgIHRva2VuLnN0cmluZ0lzOEJpdCA9IDA7Ci0gICAgICAgICAg
ICB0b2tlbi5zdHJpbmdUb2tlbjE2ID0gbV9idWlsZGVyLmNoYXJhY3RlcnMxNigpOworICAgICAg
ICAgICAgaWYgKGF1dG8gY2hhcnMgPSBtX2J1aWxkZXIuY2hhcmFjdGVyczE2KCkpCisgICAgICAg
ICAgICAgICAgdG9rZW4uc3RyaW5nVG9rZW4xNiA9ICpjaGFyczsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAgICAgICAgIHRva2VuLnN0cmlu
Z0xlbmd0aCA9IG1fYnVpbGRlci5sZW5ndGgoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnMuY3BwCmluZGV4IDNjODYxMjMuLjkyN2NkMDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCkBAIC01OTUsNyArNTk1LDEwIEBAIHZv
aWQgT3B0aW9uczo6ZHVtcE9wdGlvbnNJZk5lZWRlZCgpCiAKICAgICAgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOwogICAgICAgICBkdW1wQWxsT3B0aW9ucyhidWlsZGVyLCBsZXZlbCwgdGl0bGUs
IG51bGxwdHIsICIgICAiLCAiXG4iLCBEdW1wRGVmYXVsdHMpOwotICAgICAgICBkYXRhTG9nKGJ1
aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgICAgIGRhdGFMb2coKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogfQogCkBAIC04MDQsNyArODA3LDEwIEBAIHZvaWQg
T3B0aW9uczo6ZHVtcEFsbE9wdGlvbnMoRklMRSogc3RyZWFtLCBEdW1wTGV2ZWwgbGV2ZWwsIGNv
bnN0IGNoYXIqIHRpdGxlKQogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBkdW1w
QWxsT3B0aW9ucyhidWlsZGVyLCBsZXZlbCwgdGl0bGUsIG51bGxwdHIsICIgICAiLCAiXG4iLCBE
dW1wRGVmYXVsdHMpOwotICAgIGZwcmludGYoc3RyZWFtLCAiJXMiLCBidWlsZGVyLnRvU3RyaW5n
KCkudXRmOCgpLmRhdGEoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICBmcHJpbnRmKHN0cmVhbSwgIiVzIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgp
KTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgT3B0aW9uczo6ZHVtcE9w
dGlvbihTdHJpbmdCdWlsZGVyJiBidWlsZGVyLCBEdW1wTGV2ZWwgbGV2ZWwsIE9wdGlvbnM6OklE
IGlkLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJv
dG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlw
ZS5jcHAKaW5kZXggZDMyMWUyZC4uMzZmYzZhYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCkBAIC00NjYsNyArNDY2LDkgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIHJlZ0V4cFByb3RvR2V0dGVyU291cmNlSW50ZXJuYWwoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBTdHIKICAgICAgICAgICAgIHByZXZpb3VzQ2hhcmFjdGVyV2FzQmFj
a3NsYXNoID0gY2ggPT0gJ1xcJzsKICAgICB9CiAKLSAgICByZXR1cm4ganNTdHJpbmcoZXhlYywg
cmVzdWx0LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4ganNTdHJpbmcoZXhlYywgKnN0cmluZyk7CisgICAgQ1JBU0go
KTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlclNv
dXJjZShFeGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCmluZGV4IDU5MmFmNDEuLmYwOGM0ZmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCkBA
IC05MDQsNyArOTA0LDkgQEAgU3RyaW5nIFNhbXBsaW5nUHJvZmlsZXI6OnN0YWNrVHJhY2VzQXNK
U09OKCkKIAogICAgIGNsZWFyRGF0YShsb2NrZXIpOwogCi0gICAgcmV0dXJuIGpzb24udG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBqc29uLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgU2FtcGxpbmdQcm9maWxlcjo6
cmVnaXN0ZXJGb3JSZXBvcnRBdEV4aXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdGFja0ZyYW1lLmNwcAppbmRleCA5ZjJkNjBkLi40OGEyMmIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0ZyYW1lLmNwcApAQCAtMTM5LDcgKzEzOSw5IEBAIFN0
cmluZyBTdGFja0ZyYW1lOjp0b1N0cmluZyhWTSYgdm0pIGNvbnN0CiAgICAgICAgICAgICB0cmFj
ZUJ1aWxkLmFwcGVuZE51bWJlcihjb2x1bW4pOwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVy
biB0cmFjZUJ1aWxkLnRvU3RyaW5nKCkuaW1wbCgpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHRy
YWNlQnVpbGQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0cmluZy0+aW1wbCgpOworICAg
IENSQVNIKCk7CiB9CiAKIHZvaWQgU3RhY2tGcmFtZTo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRv
ciYgdmlzaXRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmlu
Z0NvbnN0cnVjdG9yLmNwcAppbmRleCAxMGFiYzc2Li42NDVhM2JkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCkBAIC0xMjUs
NyArMTI1LDkgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nRnJv
bUNvZGVQb2ludChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgfQogCiAgICAgc2NvcGUucmVsZWFzZSgp
OwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcoZXhlYywgYnVpbGRlci50b1N0
cmluZygpKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKGV4ZWMsICpzdHJpbmcpKTsKKyAg
ICBDUkFTSCgpOwogfQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
dHJ1Y3RXaXRoU3RyaW5nQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKaW5kZXggYTBkMzYw
MS4uNThjY2Q1NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aW5nUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdQcm90b3R5cGUuY3BwCkBAIC0yODAsNyArMjgwLDkgQEAgc3RhdGljIE5FVkVSX0lOTElORSBT
dHJpbmcgc3Vic3RpdHV0ZUJhY2tyZWZlcmVuY2VzU2xvdyhTdHJpbmdWaWV3IHJlcGxhY2VtZW50
LAogICAgIGlmIChyZXBsYWNlbWVudC5sZW5ndGgoKSAtIG9mZnNldCkKICAgICAgICAgc3Vic3Rp
dHV0ZWRSZXBsYWNlbWVudC5hcHBlbmQocmVwbGFjZW1lbnQuc3Vic3RyaW5nKG9mZnNldCkpOwog
Ci0gICAgcmV0dXJuIHN1YnN0aXR1dGVkUmVwbGFjZW1lbnQudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBzdWJzdGl0dXRlZFJlcGxhY2VtZW50LnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGlubGluZSBTdHJpbmcgc3Vic3Rp
dHV0ZUJhY2tyZWZlcmVuY2VzSW5saW5lKGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnQsIFN0cmlu
Z1ZpZXcgc291cmNlLCBjb25zdCBpbnQqIG92ZWN0b3IsIFJlZ0V4cCogcmVnKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQcm9maWxlci5jcHAKaW5kZXggMGY4NWVmOC4u
N2FlOTc0NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVBy
b2ZpbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlUHJvZmls
ZXIuY3BwCkBAIC0xMDQsOCArMTA0LDEwIEBAIFN0cmluZyBUeXBlUHJvZmlsZXI6OnR5cGVJbmZv
cm1hdGlvbkZvckV4cHJlc3Npb25BdE9mZnNldChUeXBlUHJvZmlsZXJTZWFyY2hEZXNjCiAgICAg
ICAgIGpzb24uYXBwZW5kTGl0ZXJhbCgiZmFsc2UiKTsKIAogICAgIGpzb24uYXBwZW5kKCd9Jyk7
Ci0gICAgCi0gICAgcmV0dXJuIGpzb24udG9TdHJpbmcoKTsKKworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGpzb24udG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogVHlwZUxvY2F0aW9uKiBUeXBlUHJvZmlsZXI6OmZpbmRMb2NhdGlvbih1bnNpZ25l
ZCBkaXZvdCwgaW50cHRyX3Qgc291cmNlSUQsIFR5cGVQcm9maWxlclNlYXJjaERlc2NyaXB0b3Ig
ZGVzY3JpcHRvciwgVk0mIHZtKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVHlwZVNldC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlU2V0
LmNwcAppbmRleCA3YTQxMmU2Li5jM2EwNWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9UeXBlU2V0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9UeXBlU2V0LmNwcApAQCAtMTMxLDcgKzEzMSw5IEBAIFN0cmluZyBUeXBlU2V0OjpkdW1w
VHlwZXMoKSBjb25zdAogICAgICAgICBzZWVuLmFwcGVuZChsZWFzdENvbW1vbkFuY2VzdG9yKCkp
OwogICAgIH0KIAotICAgIHJldHVybiBzZWVuLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gc2Vlbi50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBib29sIFR5cGVTZXQ6OmRvZXNUeXBlQ29uZm9ybVRvKFJ1bnRpbWVUeXBlTWFz
ayB0ZXN0KSBjb25zdApAQCAtMzE3LDcgKzMxOSw5IEBAIFN0cmluZyBUeXBlU2V0Ojp0b0pTT05T
dHJpbmcoKSBjb25zdAogICAgIGpzb24uYXBwZW5kKCddJyk7CiAKICAgICBqc29uLmFwcGVuZCgn
fScpOwotICAgIHJldHVybiBqc29uLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
anNvbi50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiBTdHJ1Y3R1cmVTaGFwZTo6U3RydWN0dXJlU2hhcGUoKQpAQCAtMzYyLDggKzM2NiwxMSBA
QCBTdHJpbmcgU3RydWN0dXJlU2hhcGU6OnByb3BlcnR5SGFzaCgpCiAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKG1fcHJvdG8tPnByb3BlcnR5SGFzaCgpKTsKICAgICB9CiAKLSAgICBtX3Byb3BlcnR5
SGFzaCA9IHN0ZDo6bWFrZV91bmlxdWU8U3RyaW5nPihidWlsZGVyLnRvU3RyaW5nKCkpOwotICAg
IHJldHVybiAqbV9wcm9wZXJ0eUhhc2g7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpKSB7CisgICAgICAgIG1fcHJvcGVydHlIYXNoID0gc3RkOjptYWtlX3VuaXF1ZTxT
dHJpbmc+KCpzdHJpbmcpOworICAgICAgICByZXR1cm4gKm1fcHJvcGVydHlIYXNoOworICAgIH0K
KyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgU3RydWN0dXJlU2hhcGU6OmxlYXN0Q29tbW9uQW5j
ZXN0b3IoY29uc3QgVmVjdG9yPFJlZjxTdHJ1Y3R1cmVTaGFwZT4+JiBzaGFwZXMpCkBAIC00Mjcs
NyArNDM0LDkgQEAgU3RyaW5nIFN0cnVjdHVyZVNoYXBlOjpzdHJpbmdSZXByZXNlbnRhdGlvbigp
CiAKICAgICByZXByZXNlbnRhdGlvbi5hcHBlbmQoJ30nKTsKIAotICAgIHJldHVybiByZXByZXNl
bnRhdGlvbi50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlcHJlc2VudGF0aW9u
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IFN0cmluZyBTdHJ1Y3R1cmVTaGFwZTo6dG9KU09OU3RyaW5nKCkgY29uc3QKQEAgLTQ5NCw3ICs1
MDMsOSBAQCBTdHJpbmcgU3RydWN0dXJlU2hhcGU6OnRvSlNPTlN0cmluZygpIGNvbnN0CiAKICAg
ICBqc29uLmFwcGVuZCgnfScpOwogCi0gICAgcmV0dXJuIGpzb24udG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBqc29uLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpT
dHJ1Y3R1cmVEZXNjcmlwdGlvbj4gU3RydWN0dXJlU2hhcGU6Omluc3BlY3RvclJlcHJlc2VudGF0
aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcAppbmRleCBlNmNkZDUwLi5iZDUy
YjJlOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RSZWdFeHAuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcApAQCAtMzI5LDEyICszMjks
MTUgQEAgc3RhdGljIFJlZ0V4cCogcGFyc2VSZWdFeHBMaW5lKFZNJiB2bSwgY2hhciogbGluZSwg
aW50IGxpbmVMZW5ndGgsIGNvbnN0IGNoYXIqKgogCiAgICAgKytpOwogCi0gICAgUmVnRXhwKiBy
ID0gUmVnRXhwOjpjcmVhdGUodm0sIHBhdHRlcm4udG9TdHJpbmcoKSwgcmVnRXhwRmxhZ3MobGlu
ZSArIGkpKTsKLSAgICBpZiAoIXItPmlzVmFsaWQoKSkgewotICAgICAgICAqcmVnZXhwRXJyb3Ig
PSByLT5lcnJvck1lc3NhZ2UoKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAg
IHJldHVybiByOworICAgIGlmIChhdXRvIHN0cmluZyA9IHBhdHRlcm4udG9TdHJpbmcoKSkgewor
ICAgICAgICBSZWdFeHAqIHIgPSBSZWdFeHA6OmNyZWF0ZSh2bSwgKnN0cmluZywgcmVnRXhwRmxh
Z3MobGluZSArIGkpKTsKKyAgICAgICAgaWYgKCFyLT5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAg
ICpyZWdleHBFcnJvciA9IHItPmVycm9yTWVzc2FnZSgpOworICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHI7CisgICAgfSBlbHNlCisgICAgICAg
IENSQVNIKCk7CiB9CiAKIHN0YXRpYyBSZWdFeHBUZXN0KiBwYXJzZVRlc3RMaW5lKGNoYXIqIGxp
bmUsIGludCBsaW5lTGVuZ3RoKQpAQCAtMzc3LDggKzM4MCwxMSBAQCBzdGF0aWMgUmVnRXhwVGVz
dCogcGFyc2VUZXN0TGluZShjaGFyKiBsaW5lLCBpbnQgbGluZUxlbmd0aCkKICAgICBpbnQgc3Rh
cnQsIGVuZDsKICAgICAKICAgICBSZWdFeHBUZXN0KiByZXN1bHQgPSBuZXcgUmVnRXhwVGVzdCgp
OwotICAgIAotICAgIHJlc3VsdC0+c3ViamVjdCA9IHN1YmplY3RTdHJpbmcudG9TdHJpbmcoKTsK
KworICAgIGlmIChhdXRvIHN0cmluZyA9IHN1YmplY3RTdHJpbmcudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmVzdWx0LT5zdWJqZWN0ID0gKnN0cmluZzsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7
CiAgICAgcmVzdWx0LT5vZmZzZXQgPSBvZmZzZXQ7CiAgICAgcmVzdWx0LT5yZXN1bHQgPSBtYXRj
aFJlc3VsdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0
aW9uT3ZlcnJpZGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9GdW5jdGlvbk92
ZXJyaWRlcy5jcHAKaW5kZXggZTgzYjZlZS4uNGFjMjdjNSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuY3BwCkBAIC0yMTgsMTMgKzIxOCwx
OCBAQCBzdGF0aWMgU3RyaW5nIHBhcnNlQ2xhdXNlKGNvbnN0IGNoYXIqIGtleXdvcmQsIHNpemVf
dCBrZXl3b3JkTGVuZ3RoLCBGSUxFKiBmaWxlLAogICAgICAgICAgICAgICAgIEZBSUxfV0lUSF9F
UlJPUihTWU5UQVhfRVJST1IsICgiVW5leHBlY3RlZCBjaGFyYWN0ZXJzIGFmdGVyICciLCBrZXl3
b3JkLCAiJyBjbGF1c2UgZW5kIGRlbGltaXRlciAnIiwgZGVsaW1pdGVyLCAiJzpcbiIsIGxpbmUs
ICJcbiIpKTsKIAogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQobGluZSwgcCAtIGxpbmUgKyAx
KTsKLSAgICAgICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKGxpbmUpOwogCiAgICAgfSB3aGlsZSAoKGxpbmUgPSBmZ2V0cyhidWZmZXIs
IGJ1ZmZlclNpemUsIGZpbGUpKSk7CiAKLSAgICBGQUlMX1dJVEhfRVJST1IoU1lOVEFYX0VSUk9S
LCAoIiciLCBrZXl3b3JkLCAiJyBjbGF1c2UgZW5kIGRlbGltaXRlciAnIiwgZGVsaW1pdGVyLCAi
JyBub3QgZm91bmQ6XG4iLCBidWlsZGVyLnRvU3RyaW5nKCksICJcbiIsICJBcmUgeW91IG1pc3Np
bmcgYSAnfScgYmVmb3JlIHRoZSBkZWxpbWl0ZXI/XG4iKSk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBGQUlMX1dJVEhfRVJST1IoU1lOVEFYX0VS
Uk9SLCAoIiciLCBrZXl3b3JkLCAiJyBjbGF1c2UgZW5kIGRlbGltaXRlciAnIiwgZGVsaW1pdGVy
LCAiJyBub3QgZm91bmQ6XG4iLCAqc3RyaW5nLCAiXG4iLCAiQXJlIHlvdSBtaXNzaW5nIGEgJ30n
IGJlZm9yZSB0aGUgZGVsaW1pdGVyP1xuIikpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsK
IH0KIAogdm9pZCBGdW5jdGlvbk92ZXJyaWRlczo6cGFyc2VPdmVycmlkZXNJbkZpbGUoY29uc3Qg
Y2hhciogZmlsZU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtQkJRUGxhbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbi5j
cHAKaW5kZXggYTc4MjBjOS4uZmEwMDM0MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUJCUVBsYW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21CQlFQbGFuLmNwcApAQCAtMTUwLDggKzE1MCwxMSBAQCB2b2lkIEJCUVBsYW46OnByZXBh
cmUoKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJGYWlsZWQgYWxsb2NhdGlu
ZyBlbm91Z2ggc3BhY2UgZm9yICIpOwogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIo
c2l6ZSk7CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCh3aGF0KTsKLSAgICAgICAgICAgIGZh
aWwoaG9sZExvY2sobV9sb2NrKSwgYnVpbGRlci50b1N0cmluZygpKTsKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKSkgeworICAgICAgICAgICAgICAgIGZhaWwoaG9sZExvY2sobV9sb2NrKSwgV1RGTW92ZSgq
c3RyaW5nKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhcnNlci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhcnNlci5oCmluZGV4IGYxNmYxMWYu
LjhiNzU4ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXJz
ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmgKQEAgLTEw
MzEsOCArMTAzMSwxMSBAQCBwcml2YXRlOgogCiAgICAgICAgICAgICB3aGlsZSAoIWF0RW5kT2ZQ
YXR0ZXJuKCkpIHsKICAgICAgICAgICAgICAgICBjaCA9IHRyeUNvbnN1bWVJZGVudGlmaWVyQ2hh
cmFjdGVyKCk7Ci0gICAgICAgICAgICAgICAgaWYgKGNoID09ICc+JykKLSAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPihpZGVudGlmaWVyQnVpbGRlci50b1N0
cmluZygpKTsKKyAgICAgICAgICAgICAgICBpZiAoY2ggPT0gJz4nKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGlkZW50aWZpZXJCdWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxTdHJpbmc+KCpzdHJp
bmcpOworICAgICAgICAgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgICAgIGlmICghaXNJZGVudGlmaWVyUGFydChjaCkpCiAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwpAQCAtMTA3MCwyMyArMTA3MywzMiBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGlmIChmb3VuZEVxdWFscykgewotICAgICAgICAg
ICAgICAgICAgICBhdXRvIHJlc3VsdCA9IHVuaWNvZGVNYXRjaFByb3BlcnR5VmFsdWUodW5pY29k
ZVByb3BlcnR5TmFtZSwgZXhwcmVzc2lvbkJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAg
ICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGV4cHJlc3Npb25CdWlsZGVyLnRvU3RyaW5nKCkp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gdW5pY29kZU1hdGNoUHJv
cGVydHlWYWx1ZSh1bmljb2RlUHJvcGVydHlOYW1lLCAqc3RyaW5nKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICghcmVzdWx0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZXJy
b3JDb2RlID0gRXJyb3JDb2RlOjpJbnZhbGlkVW5pY29kZVByb3BlcnR5RXhwcmVzc2lvbjsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBleHByZXNzaW9uQnVpbGRlci50b1N0cmlu
ZygpKSB7CisgICAgICAgICAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gdW5pY29kZU1hdGNoUHJv
cGVydHkoKnN0cmluZyk7CiAgICAgICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KQogICAgICAg
ICAgICAgICAgICAgICAgICAgbV9lcnJvckNvZGUgPSBFcnJvckNvZGU6OkludmFsaWRVbmljb2Rl
UHJvcGVydHlFeHByZXNzaW9uOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owog
ICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gdW5pY29k
ZU1hdGNoUHJvcGVydHkoZXhwcmVzc2lvbkJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgICAgICAg
ICAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAgICAgICAgICAgICAgIG1fZXJyb3JDb2RlID0gRXJy
b3JDb2RlOjpJbnZhbGlkVW5pY29kZVByb3BlcnR5RXhwcmVzc2lvbjsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICB9
CiAKICAgICAgICAgICAgIGNvbnN1bWUoKTsKICAgICAgICAgICAgIGlmIChjaCA9PSAnPScpIHsK
ICAgICAgICAgICAgICAgICBpZiAoIWZvdW5kRXF1YWxzKSB7CiAgICAgICAgICAgICAgICAgICAg
IGZvdW5kRXF1YWxzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgdW5pY29kZVByb3BlcnR5
TmFtZSA9IGV4cHJlc3Npb25CdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IGV4cHJlc3Npb25CdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICB1bmljb2RlUHJvcGVydHlOYW1lID0gKnN0cmluZzsKKyAgICAgICAg
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAg
ICAgICAgICAgICAgICAgZXhwcmVzc2lvbkJ1aWxkZXIuY2xlYXIoKTsKICAgICAgICAgICAgICAg
ICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICAgZXJyb3JzKys7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDFkMmQyMGQuLmZi
ZjA4YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQ2IEBACisyMDE4LTA0LTI2ICBKRiBCYXN0aWVuICA8amZi
YXN0aWVuQGFwcGxlLmNvbT4KKworICAgICAgICBTdHJpbmdCdWlsZGVyIGlzIGZhbGxpYmxlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUwNDgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdHJpbmdCdWls
ZGVyIGNhbiBmYWlsIHdoZW4gYWxsb2NhdGluZyBtZW1vcnkuIFN0cmluZ0J1aWxkZXIgaXMKKyAg
ICAgICAgbW9zdGx5IHVzZWQgd2l0aCB1c2VyIGlucHV0LCB3aGljaCBvZnRlbiBtZWFucyB0aGF0
IGp1c3QgY3Jhc2hpbmcKKyAgICAgICAgaXNuJ3QgdGhlIHJpZ2h0IG91dGNvbWUuIE91ciBmdXp6
ZXJzIG9mdGVuIGVuY291bnRlciBzdWNoIHRoaW5ncworICAgICAgICBmb3IgSmF2YVNjcmlwdENv
cmUsIGFuZCBzbyBmYXIgd2UndmUgYXBwbGllZCBwb2ludCBzb2x1dGlvbnMuIE5vCisgICAgICAg
IG1vcmUhIFRoaXMgcGF0Y2ggbWFrZXMgU3RyaW5nQnVpbGRlciBmYWxsaWJsZSBhbmQgZW5mb3Jj
ZXMgdGhpcyBpbgorICAgICAgICB0d28gd2F5czoKKworICAgICAgICAgICogRWFjaCBzdGVwIG9m
IGJ1aWxkaW5nIGEgc3RyaW5nIGNhbiBiZSBjaGVja2VkIGZvciBmYWlsdXJlCisgICAgICAgICAg
ICBiZWNhdXNlIHRoZXkgbm93IHJldHVybiBhICJGYWxsaWJsZTxUPiIuIFRoaXMgY2FuIGJlIGln
bm9yZWQgYXQKKyAgICAgICAgICAgIGV2ZXJ5IHN0ZXAhCisgICAgICAgICAgKiBUaGUgZmluYWwg
c3RlcCBvZiBTdHJpbmdCdWlsZGVyLCBnZXR0aW5nIHRoZSBzdHJpbmcgb3V0LAorICAgICAgICAg
ICAgcmV0dXJucyBhICJGYWxsaWJsZTxTdHJpbmc+IiB3aGljaCBpcyBtYXJrZWQgd2l0aAorICAg
ICAgICAgICAgV0FSTl9VTlVTRURfUkVUVVJOLiBGYWlsdXJlIGlzIGNvbW11bmljYXRlZCBpZiBh
bnkgb2YgdGhlIGJ1aWxkaW5nCisgICAgICAgICAgICBzdGVwcyBmYWlsZWQuCisKKyAgICAgICAg
RG9pbmcgdGhpcyB0d28tc3RlcCBhcHByb2FjaCBtZWFucyB0aGF0IGNvZGUgY2FuIGNvbnRpbnVl
CisgICAgICAgIG9wZXJhdGluZyBhcyBpdCBkaWQgYmVmb3JlIChhcHBlbmQgYSBidW5jaCBhbmQg
dGhlbiBnZXQgYSBzdHJpbmcpCisgICAgICAgIGFuZCBvbmx5IG5lZWRzIHRvIGNhcmUgYWJvdXQg
dGhlIHN0cmluZyBwb3RlbnRpYWxseSBub3QgYmVpbmcKKyAgICAgICAgYXZhaWxhYmxlLiBUaGlz
IGlzIGVuZm9yY2VkIGJ5IHRoZSB0eXBlIHN5c3RlbTogRmFsbGlibGU8VD4gaXMKKyAgICAgICAg
c3RkOjpleHBlY3RlZDxULCBTdHJpbmdCdWlsZGVyOjpGYWlsdXJlPi4KKworICAgICAgICBUaGUg
Zm9sbG93aW5nIGludGVybWVkaWF0ZSBmdW5jdGlvbnMgY2FuIG5vdyBiZSBvYnNlcnZlZCB0byBm
YWlsCisgICAgICAgIChvciBpZ25vcmVkKToKKworICAgICAgICAgICogYXBwZW5kCisgICAgICAg
ICAgKiBhcHBlbmRVbmluaXRpYWxpemVkCisgICAgICAgICAgKiBhcHBlbmRVbmluaXRpYWxpemVk
U2xvdworICAgICAgICAgICogYXBwZW5kUXVvdGVkSlNPTlN0cmluZyB1c2VkIHRvIHJldHVybiBm
YWxzZSBvbiBmYWlsdXJlLCBpdCBub3cgcmV0dXJucyBGYWxsaWJsZTw+CisgICAgICAgICAgKiBy
ZXNpemUKKyAgICAgICAgICAqIGFsbG9jYXRlQnVmZmVyCisgICAgICAgICAgKiBhbGxvY2F0ZUJ1
ZmZlclVwQ29udmVydAorICAgICAgICAgICogcmVhbGxvY2F0ZUJ1ZmZlcgorICAgICAgICAgICog
cmVzZXJ2ZUNhcGFjaXR5CisgICAgICAgICAgKiBzaHJpbmtUb0ZpdAorICAgICAgICAgICogb3Bl
cmF0b3JbXQorICAgICAgICAgICogY2hhcmFjdGVyczgKKyAgICAgICAgICAqIGNoYXJhY3RlcnMx
NgorCisgICAgICAgIEZhaWx1cmUgaW4gdGhlc2UgbWV0aG9kcyBjb21lcyBpbiB0d28gZm9ybXM6
IG91dCBvZiBtZW1vcnksIGFuZAorICAgICAgICB3b3VsZCBvdmVyZmxvdy4gV2hlbiBhbiBvcGVy
YXRpb24gd291bGQgb3ZlcmZsb3cgaXQgbGVhdmVzIHRoZQorICAgICAgICBTdHJpbmdCdWlsZGVy
IGluIGl0cyBwcmV2aW91cyBzdGF0ZSwgYWxsb3dpbmcgdXNlcnMgdG8gcmVzdW1lCisgICAgICAg
IHdvcmssIGtlZXAgdGhlIHN0cmluZyBhcyBpdCBleGlzdGVkIGJlZm9yZSBmYWlsdXJlLiBXaGVu
IHdlIGp1c3QKKyAgICAgICAgZmFpbCBhbGxvY2F0aW5nIGl0IG1lYW5zIHdlIGV4cGVjdGVkIHRv
IHN1Y2NlZWQsIHNvIGNsZWFyaW5nIHRoZQorICAgICAgICBTdHJpbmdCdWlsZGVyIGlzIHRoZSBy
aWdodCB0aGluZyB0byBkby4KKworICAgICAgICBTdXBwb3J0aW5nIGZhaWx1cmUgaW4gU3RyaW5n
QnVpbGRlciByZXF1aXJlZCBhZGRpbmcgInRyeSIgdmFyaWFudHMKKyAgICAgICAgb2Ygc29tZSBt
ZXRob2RzIGluIFN0cmluZ0ltcGwuCisKKyAgICAgICAgVGhpcyBwYXRjaCB1cGRhdGVzIGFsbCBX
ZWJLaXQgY29kZSB3aGljaCB1c2VzIFN0cmluZ0J1aWxkZXIuIEl0CisgICAgICAgIGxlYXZlcyBh
bGwgaW50ZXJtZWRpYXRlIGZ1bmN0aW9uIHVzYWdlIGFsb25lIChjb2RlIHN0aWxsIGFwcGVuZHMK
KyAgICAgICAgYmFjay10by1iYWNrLCBibGlzc2Z1bGx5IHVuYXdhcmUgb2YgZmFpbHVyZSksIGFu
ZCBvbmx5IGNoZWNrcyBmb3IKKyAgICAgICAgZmFpbHVyZSB3aGVuIHJldHJpZXZpbmcgdGhlIHN0
cmluZy4gVGhlIHBhdHRlcm4gdXNlZCBpcyB1c3VhbGx5OgorCisgICAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgZm9vKCpzdHJpbmcpOyAv
LyBVc2Ugc3RyaW5nIGFzIGJlZm9yZS4uLgorICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENS
QVNIKCk7CisKKyAgICAgICAgVGhpcyBtYWtlcyBmYWlsdXJlIGV4dHJlbWVseSBleHBsaWNpdC4g
VGhlcmUncyBubyB0cnVlIGJlaGF2aW9yCisgICAgICAgIGNoYW5nZTogd2hhdCB3b3VsZCBoYXZl
IGNyYXNoZWQgd2hlbiBhcHBlbmRpbmcgbm93IGNyYXNoZXMgd2hlbgorICAgICAgICByZXRyaWV2
aW5nIHRoZSBzdHJpbmcuIFB1bGxpbmcgQ1JBU0goKSBvdXQgd2lsbCBnaXZlIHNsaWdodGx5Cisg
ICAgICAgIGJldHRlciBjcmFzaCBzaWduYXR1cmVzLCBhbmQgaXQgbWFrZXMgdGhlIGNvZGUgdmVy
eSBvYnZpb3VzIGFib3V0CisgICAgICAgIGZhaWx1cmUuIEkgcHVycG9zZWZ1bGx5IGRvbid0ICJm
aXgiIGFueSBmYWlsdXJlIGJlY2F1c2UgdGhlc2UKKyAgICAgICAgc2hvdWxkIGJlIGRvbmUgaW4g
YSB0YXJnZXRlZCBtYW5uZXIgd2l0aCByZXBybyB0ZXN0cyB3aGVuZXZlcgorICAgICAgICBwb3Nz
aWJsZS4gSSdtIHZlcnkgd2FyeSBvZiBpbnRyb2R1Y2luZyBidWdzIQorCisgICAgICAgIFdoZW4g
c29tZW9uZSBpbmV2aXRhYmx5IGJsYW1lcyBjb2RlIGJhY2sgdG8gdGhpcyBjb21taXQgKGJlY2F1
c2UKKyAgICAgICAgaGV5IHRoZSBjb2RlIGlzIHByZXR0eSB1Z2x5LCBhbmQgeW91IG1pZ2h0IGJl
IHN1cnByaXNlZCBhdCBzZWVpbmcKKyAgICAgICAgQ1JBU0goKSBpbiB5b3VyIGJlYXV0aWZ1bCBj
b2RlKSB0aGVyZSBhcmUgYSBmZXcgdGhpbmdzIHdoaWNoIHRoZXkKKyAgICAgICAgY2FuIGRvOgor
CisgICAgICAgICAgMS4gQ2hhbmdlIHRoZSBlbHNlIGNsYXVzZSB0byBoYW5kbGUgZmFpbHVyZSBy
YXRoZXIgdGhhbiBjcmFzaC4gSW4gSmF2YVNjcmlwdENvcmUgdGhhdCdzIHVzdWFsbHkgdGhyb3dP
dXRPZk1lbW9yeUVycm9yLgorICAgICAgICAgIDIuIENoYW5nZSB0aGUgY29kZSB0byBkaXJlY3Rs
eSB1c2UgRmFsbGlibGUncyAudmFsdWUoKSBtZW1iZXIsIGFuZCBsZXQgKnRoYXQqIGNyYXNoIGlu
c3RlYWQuIFRoaXMgbWFrZXMgdGhlIGNyYXNoIG5vbi1vYnZpb3VzIGluIHRoZSBjb2RlLCB3aGlj
aCBtaWdodCBiZSB3aGF0IHlvdSB3YW50LgorICAgICAgICAgIDMuIENoYW5nZSB0aGUgY29kZSB0
byBkZXRlY3QgZmFpbHVyZSBhdCB0aGUgZWFybGllc3Qgc3RlcCBvZiBzdHJpbmcgYnVpbGRpbmcg
KGxpa2VseSB0aGUgYXBwZW5kIGNhbGxzKSwgYW5kIGRvIHNvbWV0aGluZyBzZW5zaWJsZSB0aGVy
ZS4KKworICAgICAgICBJbiBubyBjaXJjdW1zdGFuY2Ugc2hvdWxkIGNvZGUganVzdCBkZXJlZmVy
ZW5jZSBhIEZhbGxpYmxlIHdpdGhvdXQKKyAgICAgICAga25vd2luZyB0aGF0IGl0cyBzdGF0ZSBo
b2xkcyBhIHZhbGlkIHN0cmluZy4gVGhpcyBjb2RlIGlzCisgICAgICAgIHVuZGVmaW5lZCBiZWhh
dmlvciBhY2NvcmRpbmcgdG8gdGhlIHN0ZDo6ZXhwZWN0ZWQgc3BlY2lmaWNhdGlvbgorICAgICAg
ICAod2hldGhlciBvdXIgaW1wbGVtZW50YXRpb24gc2hvdWxkIGRvIHNvbWV0aGluZyBlbHNlIGlz
IG91dCBvZgorICAgICAgICBzY29wZSBmb3IgdGhpcyBwYXRjaCk6CisKKyAgICAgICAgICBmb28o
KmJ1aWxkZXIudG9TdHJpbmcoKSk7IC8vIFVCIHdoZW4gYWxsb2NhdGlvbiBmYWlscy4KKworICAg
ICAgICAqIHd0Zi9Bc3NlcnRpb25zLmNwcDoKKyAgICAgICAgKiB3dGYvRGF0ZU1hdGguY3BwOgor
ICAgICAgICAoV1RGOjptYWtlUkZDMjgyMkRhdGVTdHJpbmcpOgorICAgICAgICAqIHd0Zi9KU09O
VmFsdWVzLmNwcDoKKyAgICAgICAgKFdURjo6SlNPTkltcGw6OlZhbHVlOjp0b0pTT05TdHJpbmcg
Y29uc3QpOgorICAgICAgICAqIHd0Zi9Mb2dnZXIuaDoKKyAgICAgICAgKFdURjo6TG9nQXJndW1l
bnQ6OnRvU3RyaW5nKToKKyAgICAgICAgKFdURjo6TG9nQXJndW1lbnQ8TG9nZ2VyOjpMb2dTaXRl
SWRlbnRpZmllcj46OnRvU3RyaW5nKToKKyAgICAgICAgKiB3dGYvTWVkaWFUaW1lLmNwcDoKKyAg
ICAgICAgKFdURjo6TWVkaWFUaW1lOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgICogd3RmL1VV
SUQuY3BwOgorICAgICAgICAoV1RGOjpjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKToKKyAgICAg
ICAgKiB3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdURjo6U3RyaW5nQnVp
bGRlcjo6d291bGRPdmVyZmxvdyk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6Om91dE9m
TWVtb3J5KToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6cmVzaXplKToKKyAgICAgICAg
KFdURjo6U3RyaW5nQnVpbGRlcjo6YWxsb2NhdGVCdWZmZXIpOgorICAgICAgICAoV1RGOjpTdHJp
bmdCdWlsZGVyOjphbGxvY2F0ZUJ1ZmZlclVwQ29udmVydCk6CisgICAgICAgIChXVEY6OlN0cmlu
Z0J1aWxkZXI6OnJlYWxsb2NhdGVCdWZmZXI8TENoYXI+KToKKyAgICAgICAgKFdURjo6U3RyaW5n
QnVpbGRlcjo6cmVhbGxvY2F0ZUJ1ZmZlcjxVQ2hhcj4pOgorICAgICAgICAoV1RGOjpTdHJpbmdC
dWlsZGVyOjpyZXNlcnZlQ2FwYWNpdHkpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjph
cHBlbmQpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIpOgorICAg
ICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjphcHBlbmRFQ01BU2NyaXB0TnVtYmVyKToKKyAgICAg
ICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6YXBwZW5kRml4ZWRXaWR0aE51bWJlcik6CisgICAgICAg
IChXVEY6OlN0cmluZ0J1aWxkZXI6OnNocmlua1RvRml0KToKKyAgICAgICAgKiB3dGYvdGV4dC9T
dHJpbmdCdWlsZGVyLmg6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OlN0cmluZ0J1aWxk
ZXIpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjphcHBlbmQpOgorICAgICAgICAoV1RG
OjpTdHJpbmdCdWlsZGVyOjphcHBlbmRMaXRlcmFsKToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVp
bGRlcjo6dG9TdHJpbmcpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjp0b1N0cmluZ1By
ZXNlcnZlQ2FwYWNpdHkgY29uc3QpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjp0b0F0
b21pY1N0cmluZyBjb25zdCk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OmlzOEJpdCBj
b25zdCk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OmZhaWxlZCBjb25zdCk6CisgICAg
ICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6Om9wZXJhdG9yW10gY29uc3QpOgorICAgICAgICAoV1RG
OjpTdHJpbmdCdWlsZGVyOjogY29uc3QpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpj
bGVhcik6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OnN3YXApOgorICAgICAgICAoV1RG
OjplcXVhbCk6CisgICAgICAgIChXVEY6OkludGVnZXJUb1N0cmluZ0NvbnZlcnNpb25UcmFpdDxT
dHJpbmdCdWlsZGVyPjo6Zmx1c2gpOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXJK
U09OLmNwcDoKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6YXBwZW5kUXVvdGVkSlNPTlN0
cmluZyk6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nSW1wbC5jcHA6CisgICAgICAgIChXVEY6
OlN0cmluZ0ltcGw6OnJlYWxsb2NhdGVJbnRlcm5hbCk6CisgICAgICAgIChXVEY6OlN0cmluZ0lt
cGw6OnJlYWxsb2NhdGUpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjp0cnlSZWFsbG9jYXRl
KToKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmg6CisgICAgICAgIChXVEY6OlN0cmlu
Z0ltcGw6OnRyeUNyZWF0ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKToKKyAgICAgICAgKFdURjo6U3Ry
aW5nSW1wbDo6Y3JlYXRlU3Vic3RyaW5nU2hhcmluZ0ltcGwpOgorICAgICAgICAqIHd0Zi90ZXh0
L1RleHRTdHJlYW0uY3BwOgorICAgICAgICAoV1RGOjpUZXh0U3RyZWFtOjpyZWxlYXNlKToKKwog
MjAxOC0wNC0yNSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgR2Fy
ZGVuaW5nOiBTcGVjdWxhdGl2ZSBidWlsZCBmaXggZm9yIFdpbmRvd3MgMzItYml0IHRvIGNvbXBl
bnNhdGUgZm9yIE1TVkMncyBsYWNrIG9mIHNtYXJ0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL0Fzc2VydGlvbnMuY3BwIGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKaW5kZXgg
ZTE1YTA5Mi4uZDdjODMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5j
cHAKKysrIGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKQEAgLTM0Miw5ICszNDIsMTEg
QEAgdm9pZCBXVEZMb2dnaW5nQWNjdW11bGF0b3I6OnJlc2V0QWNjdW11bGF0ZWRMb2dzKCkKIFN0
cmluZyBXVEZMb2dnaW5nQWNjdW11bGF0b3I6OmdldEFuZFJlc2V0QWNjdW11bGF0ZWRMb2dzKCkK
IHsKICAgICBMb2NrZXI8TG9jaz4gbG9ja2VyKGFjY3VtdWxhdG9yTG9jayk7Ci0gICAgU3RyaW5n
IHJlc3VsdCA9IGxvZ2dpbmdBY2N1bXVsYXRvci50b1N0cmluZygpOwotICAgIGxvZ2dpbmdBY2N1
bXVsYXRvci5jbGVhcigpOwotICAgIHJldHVybiByZXN1bHQ7CisgICAgaWYgKGF1dG8gcmVzdWx0
ID0gbG9nZ2luZ0FjY3VtdWxhdG9yLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgbG9nZ2luZ0FjY3Vt
dWxhdG9yLmNsZWFyKCk7CisgICAgICAgIHJldHVybiAqcmVzdWx0OworICAgIH0KKyAgICBDUkFT
SCgpOwogfQogCiBzdGF0aWMgV1RGTG9nZ2luZ0FjY3VtdWxhdG9yJiBsb2dnaW5nQWNjdW11bGF0
b3IoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291cmNlL1dU
Ri93dGYvRGF0ZU1hdGguY3BwCmluZGV4IDZkYjkyZWIuLmQyNzRlNDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5j
cHAKQEAgLTExODcsNyArMTE4NywxMCBAQCBTdHJpbmcgbWFrZVJGQzI4MjJEYXRlU3RyaW5nKHVu
c2lnbmVkIGRheU9mV2VlaywgdW5zaWduZWQgZGF5LCB1bnNpZ25lZCBtb250aCwgdQogICAgIGFw
cGVuZFR3b0RpZ2l0TnVtYmVyKHN0cmluZ0J1aWxkZXIsIGFic29sdXRlVVRDT2Zmc2V0IC8gNjAp
OwogICAgIGFwcGVuZFR3b0RpZ2l0TnVtYmVyKHN0cmluZ0J1aWxkZXIsIGFic29sdXRlVVRDT2Zm
c2V0ICUgNjApOwogCi0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmNwcCBiL1NvdXJj
ZS9XVEYvd3RmL0pTT05WYWx1ZXMuY3BwCmluZGV4IGJkZTQ0YWIuLjA4YzYyMjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0pT
T05WYWx1ZXMuY3BwCkBAIC0zMjcsOCArMzI3LDExIEBAIGJvb2wgZGVjb2RlU3RyaW5nKGNvbnN0
IFVDaGFyKiBzdGFydCwgY29uc3QgVUNoYXIqIGVuZCwgU3RyaW5nJiBvdXRwdXQpCiAgICAgaWYg
KCFkZWNvZGVTdHJpbmcoc3RhcnQsIGVuZCwgYnVmZmVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgb3V0cHV0ID0gYnVmZmVyLnRvU3RyaW5nKCk7Ci0gICAgcmV0dXJuIHRydWU7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVmZmVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgb3V0cHV0
ID0gKnN0cmluZzsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxz
ZTsKIH0KIAogUmVmUHRyPEpTT046OlZhbHVlPiBidWlsZFZhbHVlKGNvbnN0IFVDaGFyKiBzdGFy
dCwgY29uc3QgVUNoYXIqIGVuZCwgY29uc3QgVUNoYXIqKiB2YWx1ZVRva2VuRW5kLCBpbnQgZGVw
dGgpCkBAIC01NTMsNyArNTU2LDkgQEAgU3RyaW5nIFZhbHVlOjp0b0pTT05TdHJpbmcoKSBjb25z
dAogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogICAgIHJlc3VsdC5yZXNlcnZlQ2FwYWNpdHko
NTEyKTsKICAgICB3cml0ZUpTT04ocmVzdWx0KTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgVmFsdWU6OmFzQm9vbGVhbihi
b29sJiBvdXRwdXQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaCBi
L1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCmluZGV4IDZiMDFiNTguLjQ4YjhkODIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5o
CkBAIC00Niw3ICs0NiwxMiBAQCBzdHJ1Y3QgTG9nQXJndW1lbnQgewogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFUgPSBUPiBzdGF0aWMgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19zYW1l
PFUsIGRvdWJsZT46OnZhbHVlLCBTdHJpbmc+Ojp0eXBlIHRvU3RyaW5nKGRvdWJsZSBhcmd1bWVu
dCkgeyByZXR1cm4gU3RyaW5nOjpudW1iZXIoYXJndW1lbnQpOyB9CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVSA9IFQ+IHN0YXRpYyB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxzdGQ6OmlzX3NhbWU8
dHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPFU+Ojp0eXBlLCBBdG9taWNTdHJpbmc+Ojp2
YWx1ZSwgU3RyaW5nPjo6dHlwZSB0b1N0cmluZyhBdG9taWNTdHJpbmcgYXJndW1lbnQpIHsgcmV0
dXJuIGFyZ3VtZW50LnN0cmluZygpOyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVSA9IFQ+IHN0
YXRpYyB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxzdGQ6OmlzX3NhbWU8dHlwZW5hbWUgc3RkOjpy
ZW1vdmVfcmVmZXJlbmNlPFU+Ojp0eXBlLCBTdHJpbmc+Ojp2YWx1ZSwgU3RyaW5nPjo6dHlwZSB0
b1N0cmluZyhTdHJpbmcgYXJndW1lbnQpIHsgcmV0dXJuIGFyZ3VtZW50OyB9Ci0gICAgdGVtcGxh
dGU8dHlwZW5hbWUgVSA9IFQ+IHN0YXRpYyB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxzdGQ6Omlz
X3NhbWU8dHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPFU+Ojp0eXBlLCBTdHJpbmdCdWls
ZGVyKj46OnZhbHVlLCBTdHJpbmc+Ojp0eXBlIHRvU3RyaW5nKFN0cmluZ0J1aWxkZXIqIGFyZ3Vt
ZW50KSB7IHJldHVybiBhcmd1bWVudC0+dG9TdHJpbmcoKTsgfQorICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFUgPSBUPiBzdGF0aWMgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19zYW1lPHR5
cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxVPjo6dHlwZSwgU3RyaW5nQnVpbGRlcio+Ojp2
YWx1ZSwgU3RyaW5nPjo6dHlwZSB0b1N0cmluZyhTdHJpbmdCdWlsZGVyKiBhcmd1bWVudCkKKyAg
ICB7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGFyZ3VtZW50LT50b1N0cmluZygpKQorICAg
ICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CisgICAgfQogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFUgPSBUPiBzdGF0aWMgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3Rk
Ojppc19zYW1lPFUsIGNvbnN0IGNoYXIqPjo6dmFsdWUsIFN0cmluZz46OnR5cGUgdG9TdHJpbmco
Y29uc3QgY2hhciogYXJndW1lbnQpIHsgcmV0dXJuIFN0cmluZyhhcmd1bWVudCk7IH0KICAgICB0
ZW1wbGF0ZTxzaXplX3QgbGVuZ3RoPiBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IGNoYXIg
KCZhcmd1bWVudClbbGVuZ3RoXSkgeyByZXR1cm4gU3RyaW5nKGFyZ3VtZW50KTsgfQogfTsKQEAg
LTI3NCw3ICsyNzksOSBAQCBzdHJ1Y3QgTG9nQXJndW1lbnQ8TG9nZ2VyOjpMb2dTaXRlSWRlbnRp
Zmllcj4gewogICAgICAgICBidWlsZGVyLmFwcGVuZCgnKCcpOwogICAgICAgICBhcHBlbmRVbnNp
Z25lZDY0QXNIZXgodmFsdWUub2JqZWN0UHRyLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5h
cHBlbmRMaXRlcmFsKCIpICIpOwotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwor
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZWRpYVRpbWUuY3BwIGIvU291cmNlL1dURi93dGYvTWVkaWFU
aW1lLmNwcAppbmRleCAwMzA1MGI1Li4xZjc3YjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9NZWRpYVRpbWUuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL01lZGlhVGltZS5jcHAKQEAgLTU3
NCw3ICs1NzQsOSBAQCBTdHJpbmcgTWVkaWFUaW1lOjp0b1N0cmluZygpIGNvbnN0CiAgICAgfQog
ICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRvRG91YmxlKCkpOwogICAgIGJ1aWxkZXIuYXBwZW5k
KCd9Jyk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAKIFN0cmluZyBNZWRpYVRpbWU6OnRvSlNPTlN0cmluZygpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9VVUlELmNwcCBiL1NvdXJjZS9XVEYvd3RmL1VVSUQuY3Bw
CmluZGV4IGZiNWZlNWIuLmI1OThmMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1VVSUQu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1VVSUQuY3BwCkBAIC01Niw3ICs1Niw5IEBAIFN0cmlu
ZyBjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkKICAgICBidWlsZGVyLmFwcGVuZCgnLScpOwog
ICAgIGFwcGVuZFVuc2lnbmVkQXNIZXhGaXhlZFNpemUocmFuZG9tRGF0YVsyXSAmIDB4MDAwMGZm
ZmYsIGJ1aWxkZXIsIDQsIExvd2VyY2FzZSk7CiAgICAgYXBwZW5kVW5zaWduZWRBc0hleEZpeGVk
U2l6ZShyYW5kb21EYXRhWzNdLCBidWlsZGVyLCA4LCBMb3dlcmNhc2UpOwotICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRl
ci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuY3BwCmluZGV4IDg1YjBj
MjEuLmY4NTg2MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRl
ci5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmNwcApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTMsIDIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC02MiwyNiArNjIs
NDQgQEAgdm9pZCBTdHJpbmdCdWlsZGVyOjpyZWlmeVN0cmluZygpIGNvbnN0CiAgICAgICAgIG1f
c3RyaW5nID0gU3RyaW5nSW1wbDo6Y3JlYXRlU3Vic3RyaW5nU2hhcmluZ0ltcGwoKm1fYnVmZmVy
LCAwLCBtX2xlbmd0aCk7CiB9CiAKLXZvaWQgU3RyaW5nQnVpbGRlcjo6cmVzaXplKHVuc2lnbmVk
IG5ld1NpemUpCitVbmV4cGVjdGVkPFN0cmluZ0J1aWxkZXI6OkZhaWx1cmU+IFN0cmluZ0J1aWxk
ZXI6OndvdWxkT3ZlcmZsb3coKQoreworICAgIG1fZmFpbGVkID0gdHJ1ZTsKKyAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQoRmFpbHVyZTo6V291bGRPdmVyZmxvdyk7Cit9CisKK1VuZXhwZWN0ZWQ8
U3RyaW5nQnVpbGRlcjo6RmFpbHVyZT4gU3RyaW5nQnVpbGRlcjo6b3V0T2ZNZW1vcnkoKQorewor
ICAgIGNsZWFyKCk7CisgICAgbV9mYWlsZWQgPSB0cnVlOworICAgIHJldHVybiBtYWtlVW5leHBl
Y3RlZChGYWlsdXJlOjpPdXRPZk1lbW9yeSk7Cit9CisKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxl
PD4gU3RyaW5nQnVpbGRlcjo6cmVzaXplKHVuc2lnbmVkIG5ld1NpemUpCiB7CiAgICAgLy8gQ2hl
Y2sgbmV3U2l6ZSA8IG1fbGVuZ3RoLCBoZW5jZSBtX2xlbmd0aCA+IDAuCiAgICAgQVNTRVJUKG5l
d1NpemUgPD0gbV9sZW5ndGgpOwogICAgIGlmIChuZXdTaXplID09IG1fbGVuZ3RoKQotICAgICAg
ICByZXR1cm47CisgICAgICAgIHJldHVybiB7fTsKICAgICBBU1NFUlQobV9sZW5ndGgpOwogCiAg
ICAgLy8gSWYgdGhlcmUgaXMgYSBidWZmZXIsIHdlIG9ubHkgbmVlZCB0byBkdXBsaWNhdGUgaXQg
aWYgaXQgaGFzIG1vcmUgdGhhbiBvbmUgcmVmLgogICAgIGlmIChtX2J1ZmZlcikgewogICAgICAg
ICBtX3N0cmluZyA9IFN0cmluZygpOyAvLyBDbGVhciB0aGUgc3RyaW5nIHRvIHJlbW92ZSB0aGUg
cmVmZXJlbmNlIHRvIG1fYnVmZmVyIGlmIGFueSBiZWZvcmUgY2hlY2tpbmcgdGhlIHJlZmVyZW5j
ZSBjb3VudCBvZiBtX2J1ZmZlci4KICAgICAgICAgaWYgKCFtX2J1ZmZlci0+aGFzT25lUmVmKCkp
IHsKLSAgICAgICAgICAgIGlmIChtX2J1ZmZlci0+aXM4Qml0KCkpCi0gICAgICAgICAgICAgICAg
YWxsb2NhdGVCdWZmZXIobV9idWZmZXItPmNoYXJhY3RlcnM4KCksIG1fYnVmZmVyLT5sZW5ndGgo
KSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgYWxsb2NhdGVCdWZmZXIobV9i
dWZmZXItPmNoYXJhY3RlcnMxNigpLCBtX2J1ZmZlci0+bGVuZ3RoKCkpOworICAgICAgICAgICAg
aWYgKG1fYnVmZmVyLT5pczhCaXQoKSkgeworICAgICAgICAgICAgICAgIGF1dG8gYWxsb2NhdGVk
ID0gYWxsb2NhdGVCdWZmZXIobV9idWZmZXItPmNoYXJhY3RlcnM4KCksIG1fYnVmZmVyLT5sZW5n
dGgoKSk7CisgICAgICAgICAgICAgICAgaWYgKCFhbGxvY2F0ZWQpCisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBhbGxvY2F0ZWQ7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgIGF1dG8gYWxsb2NhdGVkID0gYWxsb2NhdGVCdWZmZXIobV9idWZmZXItPmNoYXJhY3RlcnMx
NigpLCBtX2J1ZmZlci0+bGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIGlmICghYWxsb2NhdGVk
KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWxsb2NhdGVkOworICAgICAgICAgICAgfQog
ICAgICAgICB9CiAgICAgICAgIG1fbGVuZ3RoID0gbmV3U2l6ZTsKICAgICAgICAgQVNTRVJUKG1f
YnVmZmVyLT5sZW5ndGgoKSA+PSBtX2xlbmd0aCk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAg
cmV0dXJuIHt9OwogICAgIH0KIAogICAgIC8vIFNpbmNlIG1fbGVuZ3RoICYmICFtX2J1ZmZlciwg
dGhlIHN0cmluZyBtdXN0IGJlIHZhbGlkIGluIG1fc3RyaW5nLCBhbmQgbV9zdHJpbmcubGVuZ3Ro
KCkgPiAwLgpAQCAtODksNDcgKzEwNyw2MCBAQCB2b2lkIFN0cmluZ0J1aWxkZXI6OnJlc2l6ZSh1
bnNpZ25lZCBuZXdTaXplKQogICAgIEFTU0VSVChtX2xlbmd0aCA9PSBtX3N0cmluZy5sZW5ndGgo
KSk7CiAgICAgQVNTRVJUKG5ld1NpemUgPCBtX3N0cmluZy5sZW5ndGgoKSk7CiAgICAgbV9sZW5n
dGggPSBuZXdTaXplOwotICAgIG1fc3RyaW5nID0gU3RyaW5nSW1wbDo6Y3JlYXRlU3Vic3RyaW5n
U2hhcmluZ0ltcGwoKm1fc3RyaW5nLmltcGwoKSwgMCwgbmV3U2l6ZSk7CisgICAgaWYgKGF1dG8g
Y3JlYXRlZCA9IFN0cmluZ0ltcGw6OnRyeUNyZWF0ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKCptX3N0
cmluZy5pbXBsKCksIDAsIG5ld1NpemUpKSB7CisgICAgICAgIG1fc3RyaW5nID0gKmNyZWF0ZWQ7
CisgICAgICAgIHJldHVybiB7fTsKKyAgICB9IGVsc2UKKyAgICAgICAgcmV0dXJuIG91dE9mTWVt
b3J5KCk7CiB9CiAKIC8vIEFsbG9jYXRlIGEgbmV3IDggYml0IGJ1ZmZlciwgY29weWluZyBpbiBj
dXJyZW50Q2hhcmFjdGVycyAodGhlc2UgbWF5IGNvbWUgZnJvbSBlaXRoZXIgbV9zdHJpbmcKIC8v
IG9yIG1fYnVmZmVyLCBuZWl0aGVyIHdpbGwgYmUgcmVhc3NpZ25lZCB1bnRpbCB0aGUgY29weSBo
YXMgY29tcGxldGVkKS4KLXZvaWQgU3RyaW5nQnVpbGRlcjo6YWxsb2NhdGVCdWZmZXIoY29uc3Qg
TENoYXIqIGN1cnJlbnRDaGFyYWN0ZXJzLCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKK1N0cmlu
Z0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6YWxsb2NhdGVCdWZmZXIoY29uc3Qg
TENoYXIqIGN1cnJlbnRDaGFyYWN0ZXJzLCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKIHsKICAg
ICBBU1NFUlQobV9pczhCaXQpOwogICAgIC8vIENvcHkgdGhlIGV4aXN0aW5nIGRhdGEgaW50byBh
IG5ldyBidWZmZXIsIHNldCByZXN1bHQgdG8gcG9pbnQgdG8gdGhlIGVuZCBvZiB0aGUgZXhpc3Rp
bmcgZGF0YS4KLSAgICBhdXRvIGJ1ZmZlciA9IFN0cmluZ0ltcGw6OmNyZWF0ZVVuaW5pdGlhbGl6
ZWQocmVxdWlyZWRMZW5ndGgsIG1fYnVmZmVyQ2hhcmFjdGVyczgpOworICAgIGF1dG8gYnVmZmVy
ID0gU3RyaW5nSW1wbDo6dHJ5Q3JlYXRlVW5pbml0aWFsaXplZChyZXF1aXJlZExlbmd0aCwgbV9i
dWZmZXJDaGFyYWN0ZXJzOCk7CisgICAgaWYgKCFidWZmZXIpCisgICAgICAgIHJldHVybiBvdXRP
Zk1lbW9yeSgpOwogICAgIG1lbWNweShtX2J1ZmZlckNoYXJhY3RlcnM4LCBjdXJyZW50Q2hhcmFj
dGVycywgc3RhdGljX2Nhc3Q8c2l6ZV90PihtX2xlbmd0aCkgKiBzaXplb2YoTENoYXIpKTsgLy8g
VGhpcyBjYW4ndCBvdmVyZmxvdy4KICAgICAKICAgICAvLyBVcGRhdGUgdGhlIGJ1aWxkZXIgc3Rh
dGUuCiAgICAgbV9idWZmZXIgPSBXVEZNb3ZlKGJ1ZmZlcik7CiAgICAgbV9zdHJpbmcgPSBTdHJp
bmcoKTsKICAgICBBU1NFUlQobV9idWZmZXItPmxlbmd0aCgpID09IHJlcXVpcmVkTGVuZ3RoKTsK
KyAgICByZXR1cm4ge307CiB9CiAKIC8vIEFsbG9jYXRlIGEgbmV3IDE2IGJpdCBidWZmZXIsIGNv
cHlpbmcgaW4gY3VycmVudENoYXJhY3RlcnMgKHRoZXNlIG1heSBjb21lIGZyb20gZWl0aGVyIG1f
c3RyaW5nCiAvLyBvciBtX2J1ZmZlciwgIG5laXRoZXIgd2lsbCBiZSByZWFzc2lnbmVkIHVudGls
IHRoZSBjb3B5IGhhcyBjb21wbGV0ZWQpLgotdm9pZCBTdHJpbmdCdWlsZGVyOjphbGxvY2F0ZUJ1
ZmZlcihjb25zdCBVQ2hhciogY3VycmVudENoYXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVu
Z3RoKQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphbGxvY2F0ZUJ1
ZmZlcihjb25zdCBVQ2hhciogY3VycmVudENoYXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVu
Z3RoKQogewogICAgIEFTU0VSVCghbV9pczhCaXQpOwogICAgIC8vIENvcHkgdGhlIGV4aXN0aW5n
IGRhdGEgaW50byBhIG5ldyBidWZmZXIsIHNldCByZXN1bHQgdG8gcG9pbnQgdG8gdGhlIGVuZCBv
ZiB0aGUgZXhpc3RpbmcgZGF0YS4KLSAgICBhdXRvIGJ1ZmZlciA9IFN0cmluZ0ltcGw6OmNyZWF0
ZVVuaW5pdGlhbGl6ZWQocmVxdWlyZWRMZW5ndGgsIG1fYnVmZmVyQ2hhcmFjdGVyczE2KTsKKyAg
ICBhdXRvIGJ1ZmZlciA9IFN0cmluZ0ltcGw6OnRyeUNyZWF0ZVVuaW5pdGlhbGl6ZWQocmVxdWly
ZWRMZW5ndGgsIG1fYnVmZmVyQ2hhcmFjdGVyczE2KTsKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAg
ICAgcmV0dXJuIG91dE9mTWVtb3J5KCk7CiAgICAgbWVtY3B5KG1fYnVmZmVyQ2hhcmFjdGVyczE2
LCBjdXJyZW50Q2hhcmFjdGVycywgc3RhdGljX2Nhc3Q8c2l6ZV90PihtX2xlbmd0aCkgKiBzaXpl
b2YoVUNoYXIpKTsgLy8gVGhpcyBjYW4ndCBvdmVyZmxvdy4KICAgICAKICAgICAvLyBVcGRhdGUg
dGhlIGJ1aWxkZXIgc3RhdGUuCiAgICAgbV9idWZmZXIgPSBXVEZNb3ZlKGJ1ZmZlcik7CiAgICAg
bV9zdHJpbmcgPSBTdHJpbmcoKTsKICAgICBBU1NFUlQobV9idWZmZXItPmxlbmd0aCgpID09IHJl
cXVpcmVkTGVuZ3RoKTsKKyAgICByZXR1cm4ge307CiB9CiAKIC8vIEFsbG9jYXRlIGEgbmV3IDE2
IGJpdCBidWZmZXIsIGNvcHlpbmcgaW4gY3VycmVudENoYXJhY3RlcnMgKHdoaWNoIGlzIDggYml0
IGFuZCBtYXkgY29tZQogLy8gZnJvbSBlaXRoZXIgbV9zdHJpbmcgb3IgbV9idWZmZXIsIG5laXRo
ZXIgd2lsbCBiZSByZWFzc2lnbmVkIHVudGlsIHRoZSBjb3B5IGhhcyBjb21wbGV0ZWQpLgotdm9p
ZCBTdHJpbmdCdWlsZGVyOjphbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChjb25zdCBMQ2hhciogY3Vy
cmVudENoYXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQorU3RyaW5nQnVpbGRlcjo6
RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChjb25zdCBM
Q2hhciogY3VycmVudENoYXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQogewogICAg
IEFTU0VSVChtX2lzOEJpdCk7CiAgICAgQVNTRVJUKHJlcXVpcmVkTGVuZ3RoID49IG1fbGVuZ3Ro
KTsKICAgICAvLyBDb3B5IHRoZSBleGlzdGluZyBkYXRhIGludG8gYSBuZXcgYnVmZmVyLCBzZXQg
cmVzdWx0IHRvIHBvaW50IHRvIHRoZSBlbmQgb2YgdGhlIGV4aXN0aW5nIGRhdGEuCi0gICAgYXV0
byBidWZmZXIgPSBTdHJpbmdJbXBsOjpjcmVhdGVVbmluaXRpYWxpemVkKHJlcXVpcmVkTGVuZ3Ro
LCBtX2J1ZmZlckNoYXJhY3RlcnMxNik7CisgICAgYXV0byBidWZmZXIgPSBTdHJpbmdJbXBsOjp0
cnlDcmVhdGVVbmluaXRpYWxpemVkKHJlcXVpcmVkTGVuZ3RoLCBtX2J1ZmZlckNoYXJhY3RlcnMx
Nik7CisgICAgaWYgKCFidWZmZXIpCisgICAgICAgIHJldHVybiBvdXRPZk1lbW9yeSgpOworCiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fbGVuZ3RoOyArK2kpCiAgICAgICAgIG1fYnVm
ZmVyQ2hhcmFjdGVyczE2W2ldID0gY3VycmVudENoYXJhY3RlcnNbaV07CiAgICAgCkBAIC0xMzks
MTAgKzE3MCwxMSBAQCB2b2lkIFN0cmluZ0J1aWxkZXI6OmFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0
KGNvbnN0IExDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaQogICAgIG1fYnVmZmVyID0gV1RG
TW92ZShidWZmZXIpOwogICAgIG1fc3RyaW5nID0gU3RyaW5nKCk7CiAgICAgQVNTRVJUKG1fYnVm
ZmVyLT5sZW5ndGgoKSA9PSByZXF1aXJlZExlbmd0aCk7CisgICAgcmV0dXJuIHt9OwogfQogCiB0
ZW1wbGF0ZSA8Pgotdm9pZCBTdHJpbmdCdWlsZGVyOjpyZWFsbG9jYXRlQnVmZmVyPExDaGFyPih1
bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5n
QnVpbGRlcjo6cmVhbGxvY2F0ZUJ1ZmZlcjxMQ2hhcj4odW5zaWduZWQgcmVxdWlyZWRMZW5ndGgp
CiB7CiAgICAgLy8gSWYgdGhlIGJ1ZmZlciBoYXMgb25seSBvbmUgcmVmIChieSB0aGlzIFN0cmlu
Z0J1aWxkZXIpLCByZWFsbG9jYXRlIGl0LAogICAgIC8vIG90aGVyd2lzZSBmYWxsIGJhY2sgdG8g
ImFsbG9jYXRlIGFuZCBjb3B5IiBtZXRob2QuCkBAIC0xNTEsNjUgKzE4Myw5MCBAQCB2b2lkIFN0
cmluZ0J1aWxkZXI6OnJlYWxsb2NhdGVCdWZmZXI8TENoYXI+KHVuc2lnbmVkIHJlcXVpcmVkTGVu
Z3RoKQogICAgIEFTU0VSVChtX2lzOEJpdCk7CiAgICAgQVNTRVJUKG1fYnVmZmVyLT5pczhCaXQo
KSk7CiAgICAgCi0gICAgaWYgKG1fYnVmZmVyLT5oYXNPbmVSZWYoKSkKLSAgICAgICAgbV9idWZm
ZXIgPSBTdHJpbmdJbXBsOjpyZWFsbG9jYXRlKG1fYnVmZmVyLnJlbGVhc2VOb25OdWxsKCksIHJl
cXVpcmVkTGVuZ3RoLCBtX2J1ZmZlckNoYXJhY3RlcnM4KTsKLSAgICBlbHNlCi0gICAgICAgIGFs
bG9jYXRlQnVmZmVyKG1fYnVmZmVyLT5jaGFyYWN0ZXJzOCgpLCByZXF1aXJlZExlbmd0aCk7Cisg
ICAgaWYgKG1fYnVmZmVyLT5oYXNPbmVSZWYoKSkgeworICAgICAgICBhdXRvIHJlYWxsb2NhdGVk
ID0gU3RyaW5nSW1wbDo6dHJ5UmVhbGxvY2F0ZShtX2J1ZmZlci5yZWxlYXNlTm9uTnVsbCgpLCBy
ZXF1aXJlZExlbmd0aCwgbV9idWZmZXJDaGFyYWN0ZXJzOCk7CisgICAgICAgIGlmICghcmVhbGxv
Y2F0ZWQpCisgICAgICAgICAgICByZXR1cm4gb3V0T2ZNZW1vcnkoKTsKKyAgICAgICAgbV9idWZm
ZXIgPSByZWFsbG9jYXRlZC5nZXQoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBhdXRvIGFsbG9j
YXRlZCA9IGFsbG9jYXRlQnVmZmVyKG1fYnVmZmVyLT5jaGFyYWN0ZXJzOCgpLCByZXF1aXJlZExl
bmd0aCk7CisgICAgICAgIGlmICghYWxsb2NhdGVkKQorICAgICAgICAgICAgcmV0dXJuIGFsbG9j
YXRlZDsKKyAgICB9CiAgICAgQVNTRVJUKG1fYnVmZmVyLT5sZW5ndGgoKSA9PSByZXF1aXJlZExl
bmd0aCk7CisgICAgcmV0dXJuIHt9OwogfQogCiB0ZW1wbGF0ZSA8Pgotdm9pZCBTdHJpbmdCdWls
ZGVyOjpyZWFsbG9jYXRlQnVmZmVyPFVDaGFyPih1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKK1N0
cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6cmVhbGxvY2F0ZUJ1ZmZlcjxV
Q2hhcj4odW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCiB7CiAgICAgLy8gSWYgdGhlIGJ1ZmZlciBo
YXMgb25seSBvbmUgcmVmIChieSB0aGlzIFN0cmluZ0J1aWxkZXIpLCByZWFsbG9jYXRlIGl0LAog
ICAgIC8vIG90aGVyd2lzZSBmYWxsIGJhY2sgdG8gImFsbG9jYXRlIGFuZCBjb3B5IiBtZXRob2Qu
CiAgICAgbV9zdHJpbmcgPSBTdHJpbmcoKTsKICAgICAKLSAgICBpZiAobV9idWZmZXItPmlzOEJp
dCgpKQotICAgICAgICBhbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChtX2J1ZmZlci0+Y2hhcmFjdGVy
czgoKSwgcmVxdWlyZWRMZW5ndGgpOworICAgIGlmIChtX2J1ZmZlci0+aXM4Qml0KCkpIHsKKyAg
ICAgICAgYXV0byBhbGxvY2F0ZWQgPSBhbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChtX2J1ZmZlci0+
Y2hhcmFjdGVyczgoKSwgcmVxdWlyZWRMZW5ndGgpOworICAgICAgICBpZiAoIWFsbG9jYXRlZCkK
KyAgICAgICAgICAgIHJldHVybiBhbGxvY2F0ZWQ7CisgICAgfQogICAgIGVsc2UgaWYgKG1fYnVm
ZmVyLT5oYXNPbmVSZWYoKSkKICAgICAgICAgbV9idWZmZXIgPSBTdHJpbmdJbXBsOjpyZWFsbG9j
YXRlKG1fYnVmZmVyLnJlbGVhc2VOb25OdWxsKCksIHJlcXVpcmVkTGVuZ3RoLCBtX2J1ZmZlckNo
YXJhY3RlcnMxNik7CiAgICAgZWxzZQogICAgICAgICBhbGxvY2F0ZUJ1ZmZlcihtX2J1ZmZlci0+
Y2hhcmFjdGVyczE2KCksIHJlcXVpcmVkTGVuZ3RoKTsKICAgICBBU1NFUlQobV9idWZmZXItPmxl
bmd0aCgpID09IHJlcXVpcmVkTGVuZ3RoKTsKKyAgICByZXR1cm4ge307CiB9CiAKLXZvaWQgU3Ry
aW5nQnVpbGRlcjo6cmVzZXJ2ZUNhcGFjaXR5KHVuc2lnbmVkIG5ld0NhcGFjaXR5KQorU3RyaW5n
QnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjpyZXNlcnZlQ2FwYWNpdHkodW5zaWdu
ZWQgbmV3Q2FwYWNpdHkpCiB7CiAgICAgaWYgKG1fYnVmZmVyKSB7CiAgICAgICAgIC8vIElmIHRo
ZXJlIGlzIGFscmVhZHkgYSBidWZmZXIsIHRoZW4gZ3JvdyBpZiBuZWNlc3NhcnkuCiAgICAgICAg
IGlmIChuZXdDYXBhY2l0eSA+IG1fYnVmZmVyLT5sZW5ndGgoKSkgewotICAgICAgICAgICAgaWYg
KG1fYnVmZmVyLT5pczhCaXQoKSkKLSAgICAgICAgICAgICAgICByZWFsbG9jYXRlQnVmZmVyPExD
aGFyPihuZXdDYXBhY2l0eSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmVh
bGxvY2F0ZUJ1ZmZlcjxVQ2hhcj4obmV3Q2FwYWNpdHkpOworICAgICAgICAgICAgaWYgKG1fYnVm
ZmVyLT5pczhCaXQoKSkgeworICAgICAgICAgICAgICAgIGF1dG8gcmVhbGxvY2F0ZWQgPSByZWFs
bG9jYXRlQnVmZmVyPExDaGFyPihuZXdDYXBhY2l0eSk7CisgICAgICAgICAgICAgICAgaWYgKCFy
ZWFsbG9jYXRlZCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlYWxsb2NhdGVkOworICAg
ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBhdXRvIHJlYWxsb2NhdGVkID0gcmVh
bGxvY2F0ZUJ1ZmZlcjxVQ2hhcj4obmV3Q2FwYWNpdHkpOworICAgICAgICAgICAgICAgIGlmICgh
cmVhbGxvY2F0ZWQpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWFsbG9jYXRlZDsKKyAg
ICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIEdyb3cgdGhl
IHN0cmluZywgaWYgbmVjZXNzYXJ5LgogICAgICAgICBpZiAobmV3Q2FwYWNpdHkgPiBtX2xlbmd0
aCkgewogICAgICAgICAgICAgaWYgKCFtX2xlbmd0aCkgewogICAgICAgICAgICAgICAgIExDaGFy
KiBudWxsUGxhY2Vob2xkZXIgPSAwOwotICAgICAgICAgICAgICAgIGFsbG9jYXRlQnVmZmVyKG51
bGxQbGFjZWhvbGRlciwgbmV3Q2FwYWNpdHkpOwotICAgICAgICAgICAgfSBlbHNlIGlmIChtX3N0
cmluZy5pczhCaXQoKSkKLSAgICAgICAgICAgICAgICBhbGxvY2F0ZUJ1ZmZlcihtX3N0cmluZy5j
aGFyYWN0ZXJzOCgpLCBuZXdDYXBhY2l0eSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAgICAgYWxsb2NhdGVCdWZmZXIobV9zdHJpbmcuY2hhcmFjdGVyczE2KCksIG5ld0NhcGFjaXR5
KTsKKyAgICAgICAgICAgICAgICBhdXRvIGFsbG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVyKG51bGxQ
bGFjZWhvbGRlciwgbmV3Q2FwYWNpdHkpOworICAgICAgICAgICAgICAgIGlmICghYWxsb2NhdGVk
KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWxsb2NhdGVkOworICAgICAgICAgICAgfSBl
bHNlIGlmIChtX3N0cmluZy5pczhCaXQoKSkgeworICAgICAgICAgICAgICAgIGF1dG8gYWxsb2Nh
dGVkID0gYWxsb2NhdGVCdWZmZXIobV9zdHJpbmcuY2hhcmFjdGVyczgoKSwgbmV3Q2FwYWNpdHkp
OworICAgICAgICAgICAgICAgIGlmICghYWxsb2NhdGVkKQorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYWxsb2NhdGVkOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAg
ICAgICAgICAgICAgYXV0byBhbGxvY2F0ZWQgPSBhbGxvY2F0ZUJ1ZmZlcihtX3N0cmluZy5jaGFy
YWN0ZXJzMTYoKSwgbmV3Q2FwYWNpdHkpOworICAgICAgICAgICAgICAgIGlmICghYWxsb2NhdGVk
KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWxsb2NhdGVkOworICAgICAgICAgICAgfQog
ICAgICAgICB9CiAgICAgfQogICAgIEFTU0VSVCghbmV3Q2FwYWNpdHkgfHwgbV9idWZmZXItPmxl
bmd0aCgpID49IG5ld0NhcGFjaXR5KTsKKyAgICByZXR1cm4ge307CiB9CiAKIC8vIE1ha2UgJ2xl
bmd0aCcgYWRkaXRpb25hbCBjYXBhY2l0eSBiZSBhdmFpbGFibGUgaW4gbV9idWZmZXIsIHVwZGF0
ZSBtX3N0cmluZyAmIG1fbGVuZ3RoLAogLy8gcmV0dXJuIGEgcG9pbnRlciB0byB0aGUgbmV3bHkg
YWxsb2NhdGVkIHN0b3JhZ2UuCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci1BTFdBWVNf
SU5MSU5FIENoYXJUeXBlKiBTdHJpbmdCdWlsZGVyOjphcHBlbmRVbmluaXRpYWxpemVkKHVuc2ln
bmVkIGxlbmd0aCkKK0FMV0FZU19JTkxJTkUgU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8Q2hhclR5
cGUqPiBTdHJpbmdCdWlsZGVyOjphcHBlbmRVbmluaXRpYWxpemVkKHVuc2lnbmVkIGxlbmd0aCkK
IHsKICAgICBBU1NFUlQobGVuZ3RoKTsKIAogICAgIC8vIENhbGN1bGF0ZSB0aGUgbmV3IHNpemUg
b2YgdGhlIGJ1aWxkZXIgYWZ0ZXIgYXBwZW5kaW5nLgogICAgIHVuc2lnbmVkIHJlcXVpcmVkTGVu
Z3RoID0gbGVuZ3RoICsgbV9sZW5ndGg7CiAgICAgaWYgKHJlcXVpcmVkTGVuZ3RoIDwgbGVuZ3Ro
KQotICAgICAgICBDUkFTSCgpOworICAgICAgICByZXR1cm4gd291bGRPdmVyZmxvdygpOwogCiAg
ICAgaWYgKChtX2J1ZmZlcikgJiYgKHJlcXVpcmVkTGVuZ3RoIDw9IG1fYnVmZmVyLT5sZW5ndGgo
KSkpIHsKICAgICAgICAgLy8gSWYgdGhlIGJ1ZmZlciBpcyB2YWxpZCBpdCBtdXN0IGJlIGF0IGxl
YXN0IGFzIGxvbmcgYXMgdGhlIGN1cnJlbnQgYnVpbGRlciBjb250ZW50cyEKQEAgLTIyNiw3ICsy
ODMsNyBAQCBBTFdBWVNfSU5MSU5FIENoYXJUeXBlKiBTdHJpbmdCdWlsZGVyOjphcHBlbmRVbmlu
aXRpYWxpemVkKHVuc2lnbmVkIGxlbmd0aCkKIC8vIE1ha2UgJ2xlbmd0aCcgYWRkaXRpb25hbCBj
YXBhY2l0eSBiZSBhdmFpbGFibGUgaW4gbV9idWZmZXIsIHVwZGF0ZSBtX3N0cmluZyAmIG1fbGVu
Z3RoLAogLy8gcmV0dXJuIGEgcG9pbnRlciB0byB0aGUgbmV3bHkgYWxsb2NhdGVkIHN0b3JhZ2Uu
CiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci1DaGFyVHlwZSogU3RyaW5nQnVpbGRlcjo6
YXBwZW5kVW5pbml0aWFsaXplZFNsb3codW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCitTdHJpbmdC
dWlsZGVyOjpGYWxsaWJsZTxDaGFyVHlwZSo+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZFVuaW5pdGlh
bGl6ZWRTbG93KHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQogewogICAgIEFTU0VSVChyZXF1aXJl
ZExlbmd0aCk7CiAKQEAgLTIzNCwxMCArMjkxLDE0IEBAIENoYXJUeXBlKiBTdHJpbmdCdWlsZGVy
OjphcHBlbmRVbmluaXRpYWxpemVkU2xvdyh1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKICAgICAg
ICAgLy8gSWYgdGhlIGJ1ZmZlciBpcyB2YWxpZCBpdCBtdXN0IGJlIGF0IGxlYXN0IGFzIGxvbmcg
YXMgdGhlIGN1cnJlbnQgYnVpbGRlciBjb250ZW50cyEKICAgICAgICAgQVNTRVJUKG1fYnVmZmVy
LT5sZW5ndGgoKSA+PSBtX2xlbmd0aCk7CiAgICAgICAgIAotICAgICAgICByZWFsbG9jYXRlQnVm
ZmVyPENoYXJUeXBlPihleHBhbmRlZENhcGFjaXR5KGNhcGFjaXR5KCksIHJlcXVpcmVkTGVuZ3Ro
KSk7CisgICAgICAgIGF1dG8gcmVhbGxvY2F0ZWQgPSByZWFsbG9jYXRlQnVmZmVyPENoYXJUeXBl
PihleHBhbmRlZENhcGFjaXR5KGNhcGFjaXR5KCksIHJlcXVpcmVkTGVuZ3RoKSk7CisgICAgICAg
IGlmICghcmVhbGxvY2F0ZWQpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQocmVh
bGxvY2F0ZWQuZXJyb3IoKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgQVNTRVJUKG1fc3RyaW5n
Lmxlbmd0aCgpID09IG1fbGVuZ3RoKTsKLSAgICAgICAgYWxsb2NhdGVCdWZmZXIobV9sZW5ndGgg
PyBtX3N0cmluZy5jaGFyYWN0ZXJzPENoYXJUeXBlPigpIDogMCwgZXhwYW5kZWRDYXBhY2l0eShj
YXBhY2l0eSgpLCByZXF1aXJlZExlbmd0aCkpOworICAgICAgICBhdXRvIGFsbG9jYXRlZCA9IGFs
bG9jYXRlQnVmZmVyKG1fbGVuZ3RoID8gbV9zdHJpbmcuY2hhcmFjdGVyczxDaGFyVHlwZT4oKSA6
IDAsIGV4cGFuZGVkQ2FwYWNpdHkoY2FwYWNpdHkoKSwgcmVxdWlyZWRMZW5ndGgpKTsKKyAgICAg
ICAgaWYgKCFhbGxvY2F0ZWQpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoYWxs
b2NhdGVkLmVycm9yKCkpOwogICAgIH0KICAgICAKICAgICBDaGFyVHlwZSogcmVzdWx0ID0gZ2V0
QnVmZmVyQ2hhcmFjdGVyczxDaGFyVHlwZT4oKSArIG1fbGVuZ3RoOwpAQCAtMjQ2LDEwICszMDcs
MTAgQEAgQ2hhclR5cGUqIFN0cmluZ0J1aWxkZXI6OmFwcGVuZFVuaW5pdGlhbGl6ZWRTbG93KHVu
c2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQgU3Ry
aW5nQnVpbGRlcjo6YXBwZW5kKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5n
dGgpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZChjb25z
dCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQogewogICAgIGlmICghbGVuZ3Ro
KQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB7fTsKIAogICAgIEFTU0VSVChjaGFy
YWN0ZXJzKTsKIApAQCAtMjU3LDQwICszMTgsNTEgQEAgdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBl
bmQoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKICAgICAgICAgaWYg
KGxlbmd0aCA9PSAxICYmICEoKmNoYXJhY3RlcnMgJiB+MHhmZikpIHsKICAgICAgICAgICAgIC8v
IEFwcGVuZCBhcyA4IGJpdCBjaGFyYWN0ZXIKICAgICAgICAgICAgIExDaGFyIGxDaGFyID0gc3Rh
dGljX2Nhc3Q8TENoYXI+KCpjaGFyYWN0ZXJzKTsKLSAgICAgICAgICAgIGFwcGVuZCgmbENoYXIs
IDEpOwotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIGFwcGVuZCgmbENo
YXIsIDEpOwogICAgICAgICB9CiAKICAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBuZXcgc2l6ZSBv
ZiB0aGUgYnVpbGRlciBhZnRlciBhcHBlbmRpbmcuCiAgICAgICAgIHVuc2lnbmVkIHJlcXVpcmVk
TGVuZ3RoID0gbGVuZ3RoICsgbV9sZW5ndGg7CiAgICAgICAgIGlmIChyZXF1aXJlZExlbmd0aCA8
IGxlbmd0aCkKLSAgICAgICAgICAgIENSQVNIKCk7CisgICAgICAgICAgICByZXR1cm4gd291bGRP
dmVyZmxvdygpOwogICAgICAgICAKICAgICAgICAgaWYgKG1fYnVmZmVyKSB7CiAgICAgICAgICAg
ICAvLyBJZiB0aGUgYnVmZmVyIGlzIHZhbGlkIGl0IG11c3QgYmUgYXQgbGVhc3QgYXMgbG9uZyBh
cyB0aGUgY3VycmVudCBidWlsZGVyIGNvbnRlbnRzIQogICAgICAgICAgICAgQVNTRVJUKG1fYnVm
ZmVyLT5sZW5ndGgoKSA+PSBtX2xlbmd0aCk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGFs
bG9jYXRlQnVmZmVyVXBDb252ZXJ0KG1fYnVmZmVyLT5jaGFyYWN0ZXJzOCgpLCBleHBhbmRlZENh
cGFjaXR5KGNhcGFjaXR5KCksIHJlcXVpcmVkTGVuZ3RoKSk7CisgICAgICAgICAgICBhdXRvIGFs
bG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KG1fYnVmZmVyLT5jaGFyYWN0ZXJzOCgp
LCBleHBhbmRlZENhcGFjaXR5KGNhcGFjaXR5KCksIHJlcXVpcmVkTGVuZ3RoKSk7CisgICAgICAg
ICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gYWxsb2NhdGVkOwog
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgQVNTRVJUKG1fc3RyaW5nLmxlbmd0aCgpID09
IG1fbGVuZ3RoKTsKLSAgICAgICAgICAgIGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KG1fc3RyaW5n
LmlzTnVsbCgpID8gMCA6IG1fc3RyaW5nLmNoYXJhY3RlcnM4KCksIGV4cGFuZGVkQ2FwYWNpdHko
Y2FwYWNpdHkoKSwgcmVxdWlyZWRMZW5ndGgpKTsKKyAgICAgICAgICAgIGF1dG8gYWxsb2NhdGVk
ID0gYWxsb2NhdGVCdWZmZXJVcENvbnZlcnQobV9zdHJpbmcuaXNOdWxsKCkgPyAwIDogbV9zdHJp
bmcuY2hhcmFjdGVyczgoKSwgZXhwYW5kZWRDYXBhY2l0eShjYXBhY2l0eSgpLCByZXF1aXJlZExl
bmd0aCkpOworICAgICAgICAgICAgaWYgKCFhbGxvY2F0ZWQpCisgICAgICAgICAgICAgICAgcmV0
dXJuIGFsbG9jYXRlZDsKICAgICAgICAgfQogCiAgICAgICAgIG1lbWNweShtX2J1ZmZlckNoYXJh
Y3RlcnMxNiArIG1fbGVuZ3RoLCBjaGFyYWN0ZXJzLCBzdGF0aWNfY2FzdDxzaXplX3Q+KGxlbmd0
aCkgKiBzaXplb2YoVUNoYXIpKTsKICAgICAgICAgbV9sZW5ndGggPSByZXF1aXJlZExlbmd0aDsK
LSAgICB9IGVsc2UKLSAgICAgICAgbWVtY3B5KGFwcGVuZFVuaW5pdGlhbGl6ZWQ8VUNoYXI+KGxl
bmd0aCksIGNoYXJhY3RlcnMsIHN0YXRpY19jYXN0PHNpemVfdD4obGVuZ3RoKSAqIHNpemVvZihV
Q2hhcikpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChhdXRvIGFwcGVuZGVkID0gYXBwZW5k
VW5pbml0aWFsaXplZDxVQ2hhcj4obGVuZ3RoKSkKKyAgICAgICAgICAgIG1lbWNweSgqYXBwZW5k
ZWQsIGNoYXJhY3RlcnMsIHN0YXRpY19jYXN0PHNpemVfdD4obGVuZ3RoKSAqIHNpemVvZihVQ2hh
cikpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoYXBw
ZW5kZWQuZXJyb3IoKSk7CisgICAgfQogICAgIEFTU0VSVChtX2J1ZmZlci0+bGVuZ3RoKCkgPj0g
bV9sZW5ndGgpOworICAgIHJldHVybiB7fTsKIH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBl
bmQoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKK1N0cmluZ0J1aWxk
ZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6YXBwZW5kKGNvbnN0IExDaGFyKiBjaGFyYWN0
ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgaWYgKCFsZW5ndGgpCi0gICAgICAgIHJldHVy
bjsKKyAgICAgICAgcmV0dXJuIHt9OwogICAgIEFTU0VSVChjaGFyYWN0ZXJzKTsKIAogICAgIGlm
IChtX2lzOEJpdCkgewotICAgICAgICBMQ2hhciogZGVzdCA9IGFwcGVuZFVuaW5pdGlhbGl6ZWQ8
TENoYXI+KGxlbmd0aCk7CisgICAgICAgIGF1dG8gYXBwZW5kZWQgPSBhcHBlbmRVbmluaXRpYWxp
emVkPExDaGFyPihsZW5ndGgpOworICAgICAgICBpZiAoIWFwcGVuZGVkKQorICAgICAgICAgICAg
cmV0dXJuIG1ha2VVbmV4cGVjdGVkKGFwcGVuZGVkLmVycm9yKCkpOworICAgICAgICBMQ2hhciog
ZGVzdCA9ICphcHBlbmRlZDsKICAgICAgICAgaWYgKGxlbmd0aCA+IDgpCiAgICAgICAgICAgICBt
ZW1jcHkoZGVzdCwgY2hhcmFjdGVycywgc3RhdGljX2Nhc3Q8c2l6ZV90PihsZW5ndGgpICogc2l6
ZW9mKExDaGFyKSk7CiAgICAgICAgIGVsc2UgewpAQCAtMjk5LDczICszNzEsNzkgQEAgdm9pZCBT
dHJpbmdCdWlsZGVyOjphcHBlbmQoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxl
bmd0aCkKICAgICAgICAgICAgICAgICAqKGRlc3QrKykgPSAqKGNoYXJhY3RlcnMrKyk7CiAgICAg
ICAgIH0KICAgICB9IGVsc2UgewotICAgICAgICBVQ2hhciogZGVzdCA9IGFwcGVuZFVuaW5pdGlh
bGl6ZWQ8VUNoYXI+KGxlbmd0aCk7CisgICAgICAgIGF1dG8gYXBwZW5kZWQgPSBhcHBlbmRVbmlu
aXRpYWxpemVkPFVDaGFyPihsZW5ndGgpOworICAgICAgICBpZiAoIWFwcGVuZGVkKQorICAgICAg
ICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKGFwcGVuZGVkLmVycm9yKCkpOworICAgICAgICBV
Q2hhciogZGVzdCA9ICphcHBlbmRlZDsKICAgICAgICAgY29uc3QgTENoYXIqIGVuZCA9IGNoYXJh
Y3RlcnMgKyBsZW5ndGg7CiAgICAgICAgIHdoaWxlIChjaGFyYWN0ZXJzIDwgZW5kKQogICAgICAg
ICAgICAgKihkZXN0KyspID0gKihjaGFyYWN0ZXJzKyspOwogICAgIH0KKyAgICByZXR1cm4ge307
CiB9CiAKICNpZiBVU0UoQ0YpCiAKLXZvaWQgU3RyaW5nQnVpbGRlcjo6YXBwZW5kKENGU3RyaW5n
UmVmIHN0cmluZykKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6YXBw
ZW5kKENGU3RyaW5nUmVmIHN0cmluZykKIHsKICAgICAvLyBGYXN0IHBhdGg6IGF2b2lkIGNvbnN0
cnVjdGluZyBhIHRlbXBvcmFyeSBTdHJpbmcgd2hlbiBwb3NzaWJsZS4KICAgICBpZiAoYXV0byog
Y2hhcmFjdGVycyA9IENGU3RyaW5nR2V0Q1N0cmluZ1B0cihzdHJpbmcsIGtDRlN0cmluZ0VuY29k
aW5nSVNPTGF0aW4xKSkgewotICAgICAgICBhcHBlbmQocmVpbnRlcnByZXRfY2FzdDxjb25zdCBM
Q2hhcio+KGNoYXJhY3RlcnMpLCBDRlN0cmluZ0dldExlbmd0aChzdHJpbmcpKTsKLSAgICAgICAg
cmV0dXJuOworICAgICAgICBpZiAoYXV0byBhcHBlbmRlZCA9IGFwcGVuZChyZWludGVycHJldF9j
YXN0PGNvbnN0IExDaGFyKj4oY2hhcmFjdGVycyksIENGU3RyaW5nR2V0TGVuZ3RoKHN0cmluZykp
KQorICAgICAgICAgICAgcmV0dXJuIHt9OworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1
cm4gYXBwZW5kZWQ7CiAgICAgfQotICAgIGFwcGVuZChTdHJpbmcoc3RyaW5nKSk7CisgICAgcmV0
dXJuIGFwcGVuZChTdHJpbmcoc3RyaW5nKSk7CiB9CiAKICNlbmRpZgogCi12b2lkIFN0cmluZ0J1
aWxkZXI6OmFwcGVuZE51bWJlcihpbnQgbnVtYmVyKQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8
PiBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIoaW50IG51bWJlcikKIHsKLSAgICBudW1iZXJU
b1N0cmluZ1NpZ25lZDxTdHJpbmdCdWlsZGVyPihudW1iZXIsIHRoaXMpOworICAgIHJldHVybiBu
dW1iZXJUb1N0cmluZ1NpZ25lZDxTdHJpbmdCdWlsZGVyPihudW1iZXIsIHRoaXMpOwogfQogCi12
b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcih1bnNpZ25lZCBpbnQgbnVtYmVyKQorU3Ry
aW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIodW5zaWdu
ZWQgaW50IG51bWJlcikKIHsKLSAgICBudW1iZXJUb1N0cmluZ1Vuc2lnbmVkPFN0cmluZ0J1aWxk
ZXI+KG51bWJlciwgdGhpcyk7CisgICAgcmV0dXJuIG51bWJlclRvU3RyaW5nVW5zaWduZWQ8U3Ry
aW5nQnVpbGRlcj4obnVtYmVyLCB0aGlzKTsKIH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBl
bmROdW1iZXIobG9uZyBudW1iZXIpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1
aWxkZXI6OmFwcGVuZE51bWJlcihsb25nIG51bWJlcikKIHsKLSAgICBudW1iZXJUb1N0cmluZ1Np
Z25lZDxTdHJpbmdCdWlsZGVyPihudW1iZXIsIHRoaXMpOworICAgIHJldHVybiBudW1iZXJUb1N0
cmluZ1NpZ25lZDxTdHJpbmdCdWlsZGVyPihudW1iZXIsIHRoaXMpOwogfQogCi12b2lkIFN0cmlu
Z0J1aWxkZXI6OmFwcGVuZE51bWJlcih1bnNpZ25lZCBsb25nIG51bWJlcikKK1N0cmluZ0J1aWxk
ZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKHVuc2lnbmVkIGxvbmcg
bnVtYmVyKQogewotICAgIG51bWJlclRvU3RyaW5nVW5zaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVt
YmVyLCB0aGlzKTsKKyAgICByZXR1cm4gbnVtYmVyVG9TdHJpbmdVbnNpZ25lZDxTdHJpbmdCdWls
ZGVyPihudW1iZXIsIHRoaXMpOwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJl
cihsb25nIGxvbmcgbnVtYmVyKQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWls
ZGVyOjphcHBlbmROdW1iZXIobG9uZyBsb25nIG51bWJlcikKIHsKLSAgICBudW1iZXJUb1N0cmlu
Z1NpZ25lZDxTdHJpbmdCdWlsZGVyPihudW1iZXIsIHRoaXMpOworICAgIHJldHVybiBudW1iZXJU
b1N0cmluZ1NpZ25lZDxTdHJpbmdCdWlsZGVyPihudW1iZXIsIHRoaXMpOwogfQogCi12b2lkIFN0
cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcih1bnNpZ25lZCBsb25nIGxvbmcgbnVtYmVyKQorU3Ry
aW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIodW5zaWdu
ZWQgbG9uZyBsb25nIG51bWJlcikKIHsKLSAgICBudW1iZXJUb1N0cmluZ1Vuc2lnbmVkPFN0cmlu
Z0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CisgICAgcmV0dXJuIG51bWJlclRvU3RyaW5nVW5zaWdu
ZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0aGlzKTsKIH0KIAotdm9pZCBTdHJpbmdCdWlsZGVy
OjphcHBlbmROdW1iZXIoZG91YmxlIG51bWJlciwgdW5zaWduZWQgcHJlY2lzaW9uLCBUcmFpbGlu
Z1plcm9zVHJ1bmNhdGluZ1BvbGljeSB0cmFpbGluZ1plcm9zVHJ1bmNhdGluZ1BvbGljeSkKK1N0
cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKGRvdWJs
ZSBudW1iZXIsIHVuc2lnbmVkIHByZWNpc2lvbiwgVHJhaWxpbmdaZXJvc1RydW5jYXRpbmdQb2xp
Y3kgdHJhaWxpbmdaZXJvc1RydW5jYXRpbmdQb2xpY3kpCiB7CiAgICAgTnVtYmVyVG9TdHJpbmdC
dWZmZXIgYnVmZmVyOwotICAgIGFwcGVuZChudW1iZXJUb0ZpeGVkUHJlY2lzaW9uU3RyaW5nKG51
bWJlciwgcHJlY2lzaW9uLCBidWZmZXIsIHRyYWlsaW5nWmVyb3NUcnVuY2F0aW5nUG9saWN5ID09
IFRydW5jYXRlVHJhaWxpbmdaZXJvcykpOworICAgIHJldHVybiBhcHBlbmQobnVtYmVyVG9GaXhl
ZFByZWNpc2lvblN0cmluZyhudW1iZXIsIHByZWNpc2lvbiwgYnVmZmVyLCB0cmFpbGluZ1plcm9z
VHJ1bmNhdGluZ1BvbGljeSA9PSBUcnVuY2F0ZVRyYWlsaW5nWmVyb3MpKTsKIH0KIAotdm9pZCBT
dHJpbmdCdWlsZGVyOjphcHBlbmRFQ01BU2NyaXB0TnVtYmVyKGRvdWJsZSBudW1iZXIpCitTdHJp
bmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZEVDTUFTY3JpcHROdW1i
ZXIoZG91YmxlIG51bWJlcikKIHsKICAgICBOdW1iZXJUb1N0cmluZ0J1ZmZlciBidWZmZXI7Ci0g
ICAgYXBwZW5kKG51bWJlclRvU3RyaW5nKG51bWJlciwgYnVmZmVyKSk7CisgICAgcmV0dXJuIGFw
cGVuZChudW1iZXJUb1N0cmluZyhudW1iZXIsIGJ1ZmZlcikpOwogfQogCi12b2lkIFN0cmluZ0J1
aWxkZXI6OmFwcGVuZEZpeGVkV2lkdGhOdW1iZXIoZG91YmxlIG51bWJlciwgdW5zaWduZWQgZGVj
aW1hbFBsYWNlcykKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6YXBw
ZW5kRml4ZWRXaWR0aE51bWJlcihkb3VibGUgbnVtYmVyLCB1bnNpZ25lZCBkZWNpbWFsUGxhY2Vz
KQogewogICAgIE51bWJlclRvU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKLSAgICBhcHBlbmQobnVtYmVy
VG9GaXhlZFdpZHRoU3RyaW5nKG51bWJlciwgZGVjaW1hbFBsYWNlcywgYnVmZmVyKSk7CisgICAg
cmV0dXJuIGFwcGVuZChudW1iZXJUb0ZpeGVkV2lkdGhTdHJpbmcobnVtYmVyLCBkZWNpbWFsUGxh
Y2VzLCBidWZmZXIpKTsKIH0KIAogYm9vbCBTdHJpbmdCdWlsZGVyOjpjYW5TaHJpbmsoKSBjb25z
dApAQCAtMzc0LDE1ICs0NTIsMjEgQEAgYm9vbCBTdHJpbmdCdWlsZGVyOjpjYW5TaHJpbmsoKSBj
b25zdAogICAgIHJldHVybiBtX2J1ZmZlciAmJiBtX2J1ZmZlci0+bGVuZ3RoKCkgPiAobV9sZW5n
dGggKyAobV9sZW5ndGggPj4gMikpOwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OnNocmlua1Rv
Rml0KCkKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6c2hyaW5rVG9G
aXQoKQogewogICAgIGlmIChjYW5TaHJpbmsoKSkgewotICAgICAgICBpZiAobV9pczhCaXQpCi0g
ICAgICAgICAgICByZWFsbG9jYXRlQnVmZmVyPExDaGFyPihtX2xlbmd0aCk7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIHJlYWxsb2NhdGVCdWZmZXI8VUNoYXI+KG1fbGVuZ3RoKTsKKyAgICAg
ICAgaWYgKG1faXM4Qml0KSB7CisgICAgICAgICAgICBhdXRvIHJlYWxsb2NhdGVkID0gcmVhbGxv
Y2F0ZUJ1ZmZlcjxMQ2hhcj4obV9sZW5ndGgpOworICAgICAgICAgICAgaWYgKCFyZWFsbG9jYXRl
ZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVhbGxvY2F0ZWQ7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICBhdXRvIHJlYWxsb2NhdGVkID0gcmVhbGxvY2F0ZUJ1ZmZlcjxVQ2hhcj4o
bV9sZW5ndGgpOworICAgICAgICAgICAgaWYgKCFyZWFsbG9jYXRlZCkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gcmVhbGxvY2F0ZWQ7CisgICAgICAgIH0KICAgICAgICAgbV9zdHJpbmcgPSBXVEZN
b3ZlKG1fYnVmZmVyKTsKICAgICB9CisgICAgcmV0dXJuIHt9OwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlci5oIGIv
U291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmgKaW5kZXggOGU0YzcyMC4uNDc3YTNh
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmgKKysrIGIv
U291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAsIDIwMTItMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTI3LDYgKzI3LDcgQEAK
ICNpZm5kZWYgU3RyaW5nQnVpbGRlcl9oCiAjZGVmaW5lIFN0cmluZ0J1aWxkZXJfaAogCisjaW5j
bHVkZSA8d3RmL0V4cGVjdGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KQEAgLTQwLDI4ICs0MSwzMyBAQCBjbGFzcyBTdHJp
bmdCdWlsZGVyIHsKIAogcHVibGljOgogICAgIFN0cmluZ0J1aWxkZXIoKQotICAgICAgICA6IG1f
bGVuZ3RoKDApCi0gICAgICAgICwgbV9pczhCaXQodHJ1ZSkKLSAgICAgICAgLCBtX2J1ZmZlckNo
YXJhY3RlcnM4KG51bGxwdHIpCisgICAgICAgIDogbV9idWZmZXJDaGFyYWN0ZXJzOChudWxscHRy
KQogICAgIHsKICAgICB9CiAgICAgU3RyaW5nQnVpbGRlcihTdHJpbmdCdWlsZGVyJiYpID0gZGVm
YXVsdDsKICAgICBTdHJpbmdCdWlsZGVyJiBvcGVyYXRvcj0oU3RyaW5nQnVpbGRlciYmKSA9IGRl
ZmF1bHQ7CiAKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmQoY29uc3QgVUNoYXIq
LCB1bnNpZ25lZCk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kKGNvbnN0IExD
aGFyKiwgdW5zaWduZWQpOworICAgIGVudW0gY2xhc3MgRmFpbHVyZSB7CisgICAgICAgIFdvdWxk
T3ZlcmZsb3csCisgICAgICAgIE91dE9mTWVtb3J5LAorICAgICAgICBVbmhhbmRsZWRGYWlsdXJl
LAorICAgIH07CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRXhwZWN0ID0gdm9pZD4gdXNpbmcgRmFs
bGlibGUgPSBFeHBlY3RlZDxFeHBlY3QsIFN0cmluZ0J1aWxkZXI6OkZhaWx1cmU+OworCisgICAg
V1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5kKGNvbnN0IFVDaGFyKiwgdW5zaWdu
ZWQpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IGFwcGVuZChjb25zdCBMQ2hh
ciosIHVuc2lnbmVkKTsKIAotICAgIEFMV0FZU19JTkxJTkUgdm9pZCBhcHBlbmQoY29uc3QgY2hh
ciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKSB7IGFwcGVuZChyZWludGVycHJldF9jYXN0
PGNvbnN0IExDaGFyKj4oY2hhcmFjdGVycyksIGxlbmd0aCk7IH0KKyAgICBBTFdBWVNfSU5MSU5F
IEZhbGxpYmxlPD4gYXBwZW5kKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0
aCkgeyByZXR1cm4gYXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihjaGFyYWN0
ZXJzKSwgbGVuZ3RoKTsgfQogCi0gICAgdm9pZCBhcHBlbmQoY29uc3QgQXRvbWljU3RyaW5nJiBh
dG9taWNTdHJpbmcpCisgICAgRmFsbGlibGU8PiBhcHBlbmQoY29uc3QgQXRvbWljU3RyaW5nJiBh
dG9taWNTdHJpbmcpCiAgICAgewotICAgICAgICBhcHBlbmQoYXRvbWljU3RyaW5nLnN0cmluZygp
KTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZChhdG9taWNTdHJpbmcuc3RyaW5nKCkpOwogICAgIH0K
IAotICAgIHZvaWQgYXBwZW5kKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIEZhbGxpYmxlPD4g
YXBwZW5kKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgIHsKICAgICAgICAgaWYgKCFzdHJpbmcu
bGVuZ3RoKCkpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4ge307CiAK
ICAgICAgICAgLy8gSWYgd2UncmUgYXBwZW5kaW5nIHRvIGFuIGVtcHR5IHN0cmluZywgYW5kIHRo
ZXJlIGlzIG5vdCBhIGJ1ZmZlciAocmVzZXJ2ZUNhcGFjaXR5IGhhcyBub3QgYmVlbiBjYWxsZWQp
CiAgICAgICAgIC8vIHRoZW4ganVzdCByZXRhaW4gdGhlIHN0cmluZy4KQEAgLTY5LDE1MSArNzUs
MTY0IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fc3RyaW5nID0gc3RyaW5nOwogICAgICAgICAg
ICAgbV9sZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7CiAgICAgICAgICAgICBtX2lzOEJpdCA9IG1f
c3RyaW5nLmlzOEJpdCgpOwotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJu
IHt9OwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHN0cmluZy5pczhCaXQoKSkKLSAgICAgICAg
ICAgIGFwcGVuZChzdHJpbmcuY2hhcmFjdGVyczgoKSwgc3RyaW5nLmxlbmd0aCgpKTsKKyAgICAg
ICAgICAgIHJldHVybiBhcHBlbmQoc3RyaW5nLmNoYXJhY3RlcnM4KCksIHN0cmluZy5sZW5ndGgo
KSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGFwcGVuZChzdHJpbmcuY2hhcmFjdGVyczE2
KCksIHN0cmluZy5sZW5ndGgoKSk7CisgICAgICAgICAgICByZXR1cm4gYXBwZW5kKHN0cmluZy5j
aGFyYWN0ZXJzMTYoKSwgc3RyaW5nLmxlbmd0aCgpKTsKICAgICB9CiAKLSAgICB2b2lkIGFwcGVu
ZChjb25zdCBTdHJpbmdCdWlsZGVyJiBvdGhlcikKKyAgICBGYWxsaWJsZTw+IGFwcGVuZChjb25z
dCBTdHJpbmdCdWlsZGVyJiBvdGhlcikKICAgICB7CisgICAgICAgIGlmIChvdGhlci5mYWlsZWQo
KSkKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGYWlsdXJlOjpVbmhhbmRsZWRG
YWlsdXJlKTsgICAgICAgICAgICAKICAgICAgICAgaWYgKCFvdGhlci5tX2xlbmd0aCkKLSAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHJldHVybiB7fTsKIAogICAgICAgICAvLyBJZiB3
ZSdyZSBhcHBlbmRpbmcgdG8gYW4gZW1wdHkgc3RyaW5nLCBhbmQgdGhlcmUgaXMgbm90IGEgYnVm
ZmVyIChyZXNlcnZlQ2FwYWNpdHkgaGFzIG5vdCBiZWVuIGNhbGxlZCkKICAgICAgICAgLy8gdGhl
biBqdXN0IHJldGFpbiB0aGUgc3RyaW5nLgogICAgICAgICBpZiAoIW1fbGVuZ3RoICYmICFtX2J1
ZmZlciAmJiAhb3RoZXIubV9zdHJpbmcuaXNOdWxsKCkpIHsKICAgICAgICAgICAgIG1fc3RyaW5n
ID0gb3RoZXIubV9zdHJpbmc7CiAgICAgICAgICAgICBtX2xlbmd0aCA9IG90aGVyLm1fbGVuZ3Ro
OwotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIHt9OwogICAgICAgICB9
CiAKICAgICAgICAgaWYgKG90aGVyLmlzOEJpdCgpKQotICAgICAgICAgICAgYXBwZW5kKG90aGVy
LmNoYXJhY3RlcnM4KCksIG90aGVyLm1fbGVuZ3RoKTsKKyAgICAgICAgICAgIHJldHVybiBhcHBl
bmQoKm90aGVyLmNoYXJhY3RlcnM4KCksIG90aGVyLm1fbGVuZ3RoKTsKICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgYXBwZW5kKG90aGVyLmNoYXJhY3RlcnMxNigpLCBvdGhlci5tX2xlbmd0aCk7
CisgICAgICAgICAgICByZXR1cm4gYXBwZW5kKCpvdGhlci5jaGFyYWN0ZXJzMTYoKSwgb3RoZXIu
bV9sZW5ndGgpOwogICAgIH0KIAotICAgIHZvaWQgYXBwZW5kKFN0cmluZ1ZpZXcgc3RyaW5nVmll
dykKKyAgICBGYWxsaWJsZTw+IGFwcGVuZChTdHJpbmdWaWV3IHN0cmluZ1ZpZXcpCiAgICAgewog
ICAgICAgICBpZiAoc3RyaW5nVmlldy5pczhCaXQoKSkKLSAgICAgICAgICAgIGFwcGVuZChzdHJp
bmdWaWV3LmNoYXJhY3RlcnM4KCksIHN0cmluZ1ZpZXcubGVuZ3RoKCkpOworICAgICAgICAgICAg
cmV0dXJuIGFwcGVuZChzdHJpbmdWaWV3LmNoYXJhY3RlcnM4KCksIHN0cmluZ1ZpZXcubGVuZ3Ro
KCkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBhcHBlbmQoc3RyaW5nVmlldy5jaGFyYWN0
ZXJzMTYoKSwgc3RyaW5nVmlldy5sZW5ndGgoKSk7CisgICAgICAgICAgICByZXR1cm4gYXBwZW5k
KHN0cmluZ1ZpZXcuY2hhcmFjdGVyczE2KCksIHN0cmluZ1ZpZXcubGVuZ3RoKCkpOwogICAgIH0K
IAogI2lmIFVTRShDRikKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmQoQ0ZTdHJp
bmdSZWYpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IGFwcGVuZChDRlN0cmlu
Z1JlZik7CiAjZW5kaWYKICNpZiBVU0UoQ0YpICYmIGRlZmluZWQoX19PQkpDX18pCi0gICAgdm9p
ZCBhcHBlbmQoTlNTdHJpbmcgKnN0cmluZykgeyBhcHBlbmQoKF9fYnJpZGdlIENGU3RyaW5nUmVm
KXN0cmluZyk7IH0KKyAgICBGYWxsaWJsZTw+IGFwcGVuZChOU1N0cmluZyAqc3RyaW5nKSB7IHJl
dHVybiBhcHBlbmQoKF9fYnJpZGdlIENGU3RyaW5nUmVmKXN0cmluZyk7IH0KICNlbmRpZgogICAg
IAotICAgIHZvaWQgYXBwZW5kKGNvbnN0IFN0cmluZyYgc3RyaW5nLCB1bnNpZ25lZCBvZmZzZXQs
IHVuc2lnbmVkIGxlbmd0aCkKKyAgICBGYWxsaWJsZTw+IGFwcGVuZChjb25zdCBTdHJpbmcmIHN0
cmluZywgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgewogICAgICAgICBp
ZiAoIXN0cmluZy5sZW5ndGgoKSkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHJl
dHVybiB7fTsKIAogICAgICAgICBpZiAoKG9mZnNldCArIGxlbmd0aCkgPiBzdHJpbmcubGVuZ3Ro
KCkpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4ge307CiAKICAgICAg
ICAgaWYgKHN0cmluZy5pczhCaXQoKSkKLSAgICAgICAgICAgIGFwcGVuZChzdHJpbmcuY2hhcmFj
dGVyczgoKSArIG9mZnNldCwgbGVuZ3RoKTsKKyAgICAgICAgICAgIHJldHVybiBhcHBlbmQoc3Ry
aW5nLmNoYXJhY3RlcnM4KCkgKyBvZmZzZXQsIGxlbmd0aCk7CiAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIGFwcGVuZChzdHJpbmcuY2hhcmFjdGVyczE2KCkgKyBvZmZzZXQsIGxlbmd0aCk7Cisg
ICAgICAgICAgICByZXR1cm4gYXBwZW5kKHN0cmluZy5jaGFyYWN0ZXJzMTYoKSArIG9mZnNldCwg
bGVuZ3RoKTsKICAgICB9CiAKLSAgICB2b2lkIGFwcGVuZChjb25zdCBjaGFyKiBjaGFyYWN0ZXJz
KQorICAgIEZhbGxpYmxlPD4gYXBwZW5kKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpCiAgICAgewog
ICAgICAgICBpZiAoY2hhcmFjdGVycykKLSAgICAgICAgICAgIGFwcGVuZChjaGFyYWN0ZXJzLCBz
dHJsZW4oY2hhcmFjdGVycykpOworICAgICAgICAgICAgcmV0dXJuIGFwcGVuZChjaGFyYWN0ZXJz
LCBzdHJsZW4oY2hhcmFjdGVycykpOworICAgICAgICByZXR1cm4ge307CiAgICAgfQogCi0gICAg
dm9pZCBhcHBlbmQoVUNoYXIgYykKKyAgICBGYWxsaWJsZTw+IGFwcGVuZChVQ2hhciBjKQogICAg
IHsKICAgICAgICAgaWYgKG1fYnVmZmVyICYmIG1fbGVuZ3RoIDwgbV9idWZmZXItPmxlbmd0aCgp
ICYmIG1fc3RyaW5nLmlzTnVsbCgpKSB7CiAgICAgICAgICAgICBpZiAoIW1faXM4Qml0KSB7CiAg
ICAgICAgICAgICAgICAgbV9idWZmZXJDaGFyYWN0ZXJzMTZbbV9sZW5ndGgrK10gPSBjOwotICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICByZXR1cm4ge307CiAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgIGlmICghKGMgJiB+MHhmZikpIHsKICAgICAgICAgICAgICAg
ICBtX2J1ZmZlckNoYXJhY3RlcnM4W21fbGVuZ3RoKytdID0gc3RhdGljX2Nhc3Q8TENoYXI+KGMp
OwotICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICByZXR1cm4ge307CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgYXBwZW5kKCZjLCAxKTsKKyAgICAgICAg
cmV0dXJuIGFwcGVuZCgmYywgMSk7CiAgICAgfQogCi0gICAgdm9pZCBhcHBlbmQoTENoYXIgYykK
KyAgICBGYWxsaWJsZTw+IGFwcGVuZChMQ2hhciBjKQogICAgIHsKICAgICAgICAgaWYgKG1fYnVm
ZmVyICYmIG1fbGVuZ3RoIDwgbV9idWZmZXItPmxlbmd0aCgpICYmIG1fc3RyaW5nLmlzTnVsbCgp
KSB7CiAgICAgICAgICAgICBpZiAobV9pczhCaXQpCiAgICAgICAgICAgICAgICAgbV9idWZmZXJD
aGFyYWN0ZXJzOFttX2xlbmd0aCsrXSA9IGM7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAg
ICAgICAgbV9idWZmZXJDaGFyYWN0ZXJzMTZbbV9sZW5ndGgrK10gPSBjOwotICAgICAgICB9IGVs
c2UKLSAgICAgICAgICAgIGFwcGVuZCgmYywgMSk7CisgICAgICAgICAgICByZXR1cm4ge307Cisg
ICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGFwcGVuZCgmYywgMSk7CiAgICAgfQogCi0gICAgdm9p
ZCBhcHBlbmQoY2hhciBjKQorICAgIEZhbGxpYmxlPD4gYXBwZW5kKGNoYXIgYykKICAgICB7Ci0g
ICAgICAgIGFwcGVuZChzdGF0aWNfY2FzdDxMQ2hhcj4oYykpOworICAgICAgICByZXR1cm4gYXBw
ZW5kKHN0YXRpY19jYXN0PExDaGFyPihjKSk7CiAgICAgfQogCi0gICAgdm9pZCBhcHBlbmQoVUNo
YXIzMiBjKQorICAgIEZhbGxpYmxlPD4gYXBwZW5kKFVDaGFyMzIgYykKICAgICB7Ci0gICAgICAg
IGlmIChVX0lTX0JNUChjKSkgewotICAgICAgICAgICAgYXBwZW5kKHN0YXRpY19jYXN0PFVDaGFy
PihjKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgYXBwZW5kKFUx
Nl9MRUFEKGMpKTsKLSAgICAgICAgYXBwZW5kKFUxNl9UUkFJTChjKSk7CisgICAgICAgIGlmIChV
X0lTX0JNUChjKSkKKyAgICAgICAgICAgIHJldHVybiBhcHBlbmQoc3RhdGljX2Nhc3Q8VUNoYXI+
KGMpKTsKKyAgICAgICAgYXV0byBhcHBlbmRlZCA9IGFwcGVuZChVMTZfTEVBRChjKSk7CisgICAg
ICAgIGlmICghYXBwZW5kZWQpCisgICAgICAgICAgICByZXR1cm4gYXBwZW5kZWQ7CisgICAgICAg
IHJldHVybiBhcHBlbmQoVTE2X1RSQUlMKGMpKTsKICAgICB9CiAKLSAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgYm9vbCBhcHBlbmRRdW90ZWRKU09OU3RyaW5nKGNvbnN0IFN0cmluZyYpOworICAgIFdU
Rl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IGFwcGVuZFF1b3RlZEpTT05TdHJpbmcoY29uc3Qg
U3RyaW5nJik7CiAKICAgICB0ZW1wbGF0ZTx1bnNpZ25lZCBjaGFyYWN0ZXJDb3VudD4KLSAgICBB
TFdBWVNfSU5MSU5FIHZvaWQgYXBwZW5kTGl0ZXJhbChjb25zdCBjaGFyICgmY2hhcmFjdGVycylb
Y2hhcmFjdGVyQ291bnRdKSB7IGFwcGVuZChjaGFyYWN0ZXJzLCBjaGFyYWN0ZXJDb3VudCAtIDEp
OyB9Ci0KLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmROdW1iZXIoaW50KTsKLSAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmROdW1iZXIodW5zaWduZWQgaW50KTsKLSAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmROdW1iZXIobG9uZyk7Ci0gICAgV1RGX0VY
UE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kTnVtYmVyKHVuc2lnbmVkIGxvbmcpOwotICAgIFdURl9F
WFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZE51bWJlcihsb25nIGxvbmcpOwotICAgIFdURl9FWFBP
UlRfUFJJVkFURSB2b2lkIGFwcGVuZE51bWJlcih1bnNpZ25lZCBsb25nIGxvbmcpOwotICAgIFdU
Rl9FWFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZE51bWJlcihkb3VibGUsIHVuc2lnbmVkIHByZWNp
c2lvbiA9IDYsIFRyYWlsaW5nWmVyb3NUcnVuY2F0aW5nUG9saWN5ID0gVHJ1bmNhdGVUcmFpbGlu
Z1plcm9zKTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmRFQ01BU2NyaXB0TnVt
YmVyKGRvdWJsZSk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kRml4ZWRXaWR0
aE51bWJlcihkb3VibGUsIHVuc2lnbmVkIGRlY2ltYWxQbGFjZXMpOwotCi0gICAgU3RyaW5nIHRv
U3RyaW5nKCkKKyAgICBBTFdBWVNfSU5MSU5FIEZhbGxpYmxlPD4gYXBwZW5kTGl0ZXJhbChjb25z
dCBjaGFyICgmY2hhcmFjdGVycylbY2hhcmFjdGVyQ291bnRdKSB7IHJldHVybiBhcHBlbmQoY2hh
cmFjdGVycywgY2hhcmFjdGVyQ291bnQgLSAxKTsgfQorCisgICAgV1RGX0VYUE9SVF9QUklWQVRF
IEZhbGxpYmxlPD4gYXBwZW5kTnVtYmVyKGludCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZh
bGxpYmxlPD4gYXBwZW5kTnVtYmVyKHVuc2lnbmVkIGludCk7CisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIEZhbGxpYmxlPD4gYXBwZW5kTnVtYmVyKGxvbmcpOworICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBGYWxsaWJsZTw+IGFwcGVuZE51bWJlcih1bnNpZ25lZCBsb25nKTsKKyAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmROdW1iZXIobG9uZyBsb25nKTsKKyAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmROdW1iZXIodW5zaWduZWQgbG9uZyBsb25nKTsK
KyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmROdW1iZXIoZG91YmxlLCB1
bnNpZ25lZCBwcmVjaXNpb24gPSA2LCBUcmFpbGluZ1plcm9zVHJ1bmNhdGluZ1BvbGljeSA9IFRy
dW5jYXRlVHJhaWxpbmdaZXJvcyk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4g
YXBwZW5kRUNNQVNjcmlwdE51bWJlcihkb3VibGUpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBG
YWxsaWJsZTw+IGFwcGVuZEZpeGVkV2lkdGhOdW1iZXIoZG91YmxlLCB1bnNpZ25lZCBkZWNpbWFs
UGxhY2VzKTsKKworICAgIFdBUk5fVU5VU0VEX1JFVFVSTiBGYWxsaWJsZTxTdHJpbmc+IHRvU3Ry
aW5nKCkKICAgICB7Ci0gICAgICAgIHNocmlua1RvRml0KCk7Ci0gICAgICAgIGlmIChtX3N0cmlu
Zy5pc051bGwoKSkKLSAgICAgICAgICAgIHJlaWZ5U3RyaW5nKCk7Ci0gICAgICAgIHJldHVybiBt
X3N0cmluZzsKKyAgICAgICAgaWYgKG1fZmFpbGVkKQorICAgICAgICAgICAgcmV0dXJuIG1ha2VV
bmV4cGVjdGVkKEZhaWx1cmU6OlVuaGFuZGxlZEZhaWx1cmUpOworICAgICAgICBpZiAoYXV0byBz
aHJhbmsgPSBzaHJpbmtUb0ZpdCgpKSB7CisgICAgICAgICAgICBpZiAobV9zdHJpbmcuaXNOdWxs
KCkpCisgICAgICAgICAgICAgICAgcmVpZnlTdHJpbmcoKTsKKyAgICAgICAgICAgIHJldHVybiBt
X3N0cmluZzsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQoc2hyYW5rLmVycm9yKCkpOwogICAgIH0KIAotICAgIGNvbnN0IFN0cmluZyYgdG9TdHJpbmdQ
cmVzZXJ2ZUNhcGFjaXR5KCkgY29uc3QKKyAgICBXQVJOX1VOVVNFRF9SRVRVUk4gRmFsbGlibGU8
U3RyaW5nPiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBjb25zdAogICAgIHsKKyAgICAgICAg
aWYgKG1fZmFpbGVkKQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZhaWx1cmU6
OlVuaGFuZGxlZEZhaWx1cmUpOwogICAgICAgICBpZiAobV9zdHJpbmcuaXNOdWxsKCkpCiAgICAg
ICAgICAgICByZWlmeVN0cmluZygpOwogICAgICAgICByZXR1cm4gbV9zdHJpbmc7CiAgICAgfQog
Ci0gICAgQXRvbWljU3RyaW5nIHRvQXRvbWljU3RyaW5nKCkgY29uc3QKKyAgICBXQVJOX1VOVVNF
RF9SRVRVUk4gRmFsbGlibGU8QXRvbWljU3RyaW5nPiB0b0F0b21pY1N0cmluZygpIGNvbnN0CiAg
ICAgeworICAgICAgICBpZiAobV9mYWlsZWQpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhw
ZWN0ZWQoRmFpbHVyZTo6VW5oYW5kbGVkRmFpbHVyZSk7CisKICAgICAgICAgaWYgKCFtX2xlbmd0
aCkKICAgICAgICAgICAgIHJldHVybiBlbXB0eUF0b20oKTsKIAogICAgICAgICAvLyBJZiB0aGUg
YnVmZmVyIGlzIHN1ZmZpY2llbnRseSBvdmVyLWFsbG9jYXRlZCwgbWFrZSBhIG5ldyBBdG9taWNT
dHJpbmcgZnJvbSBhIGNvcHkgc28gaXRzIGJ1ZmZlciBpcyBub3Qgc28gbGFyZ2UuCiAgICAgICAg
IGlmIChjYW5TaHJpbmsoKSkgewogICAgICAgICAgICAgaWYgKGlzOEJpdCgpKQotICAgICAgICAg
ICAgICAgIHJldHVybiBBdG9taWNTdHJpbmcoY2hhcmFjdGVyczgoKSwgbGVuZ3RoKCkpOwotICAg
ICAgICAgICAgcmV0dXJuIEF0b21pY1N0cmluZyhjaGFyYWN0ZXJzMTYoKSwgbGVuZ3RoKCkpOyAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgIHJldHVybiBBdG9taWNTdHJpbmcoKmNoYXJhY3Rl
cnM4KCksIGxlbmd0aCgpKTsKKyAgICAgICAgICAgIHJldHVybiBBdG9taWNTdHJpbmcoKmNoYXJh
Y3RlcnMxNigpLCBsZW5ndGgoKSk7ICAgICAgICAgICAgCiAgICAgICAgIH0KIAogICAgICAgICBp
ZiAoIW1fc3RyaW5nLmlzTnVsbCgpKQpAQCAtMjMwLDI5ICsyNDksMzcgQEAgcHVibGljOgogCiAg
ICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gIW1fbGVuZ3RoOyB9CiAKLSAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgdm9pZCByZXNlcnZlQ2FwYWNpdHkodW5zaWduZWQgbmV3Q2FwYWNpdHkp
OworICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IHJlc2VydmVDYXBhY2l0eSh1bnNp
Z25lZCBuZXdDYXBhY2l0eSk7CiAKICAgICB1bnNpZ25lZCBjYXBhY2l0eSgpIGNvbnN0CiAgICAg
ewogICAgICAgICByZXR1cm4gbV9idWZmZXIgPyBtX2J1ZmZlci0+bGVuZ3RoKCkgOiBtX2xlbmd0
aDsKICAgICB9CiAKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCByZXNpemUodW5zaWduZWQg
bmV3U2l6ZSk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gcmVzaXplKHVuc2ln
bmVkIG5ld1NpemUpOwogCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgY2FuU2hyaW5rKCkg
Y29uc3Q7CiAKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzaHJpbmtUb0ZpdCgpOworICAg
IFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IHNocmlua1RvRml0KCk7CiAKLSAgICBVQ2hh
ciBvcGVyYXRvcltdKHVuc2lnbmVkIGkpIGNvbnN0CisgICAgYm9vbCBpczhCaXQoKSBjb25zdCB7
IHJldHVybiBtX2lzOEJpdDsgfQorCisgICAgYm9vbCBmYWlsZWQoKSBjb25zdCB7IHJldHVybiBt
X2ZhaWxlZDsgfQorCisgICAgRmFsbGlibGU8VUNoYXI+IG9wZXJhdG9yW10odW5zaWduZWQgaSkg
Y29uc3QKICAgICB7CisgICAgICAgIGlmIChtX2ZhaWxlZCkKKyAgICAgICAgICAgIHJldHVybiBt
YWtlVW5leHBlY3RlZChGYWlsdXJlOjpVbmhhbmRsZWRGYWlsdXJlKTsKICAgICAgICAgQVNTRVJU
X1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaSA8IG1fbGVuZ3RoKTsKICAgICAgICAgaWYgKG1f
aXM4Qml0KQotICAgICAgICAgICAgcmV0dXJuIGNoYXJhY3RlcnM4KClbaV07Ci0gICAgICAgIHJl
dHVybiBjaGFyYWN0ZXJzMTYoKVtpXTsKKyAgICAgICAgICAgIHJldHVybiAoKmNoYXJhY3RlcnM4
KCkpW2ldOworICAgICAgICByZXR1cm4gKCpjaGFyYWN0ZXJzMTYoKSlbaV07CiAgICAgfQogCi0g
ICAgY29uc3QgTENoYXIqIGNoYXJhY3RlcnM4KCkgY29uc3QKKyAgICBGYWxsaWJsZTxjb25zdCBM
Q2hhcio+IGNoYXJhY3RlcnM4KCkgY29uc3QKICAgICB7CisgICAgICAgIGlmIChtX2ZhaWxlZCkK
KyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGYWlsdXJlOjpVbmhhbmRsZWRGYWls
dXJlKTsKICAgICAgICAgQVNTRVJUKG1faXM4Qml0KTsKICAgICAgICAgaWYgKCFtX2xlbmd0aCkK
ICAgICAgICAgICAgIHJldHVybiAwOwpAQCAtMjYyLDggKzI4OSwxMCBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKTsKICAgICB9CiAKLSAgICBjb25zdCBV
Q2hhciogY2hhcmFjdGVyczE2KCkgY29uc3QKKyAgICBGYWxsaWJsZTxjb25zdCBVQ2hhcio+IGNo
YXJhY3RlcnMxNigpIGNvbnN0CiAgICAgeworICAgICAgICBpZiAobV9mYWlsZWQpCisgICAgICAg
ICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmFpbHVyZTo6VW5oYW5kbGVkRmFpbHVyZSk7CiAg
ICAgICAgIEFTU0VSVCghbV9pczhCaXQpOwogICAgICAgICBpZiAoIW1fbGVuZ3RoKQogICAgICAg
ICAgICAgcmV0dXJuIDA7CkBAIC0yNzIsMTYgKzMwMSwxNSBAQCBwdWJsaWM6CiAgICAgICAgIEFT
U0VSVChtX2J1ZmZlcik7CiAgICAgICAgIHJldHVybiBtX2J1ZmZlci0+Y2hhcmFjdGVyczE2KCk7
CiAgICAgfQotICAgIAotICAgIGJvb2wgaXM4Qml0KCkgY29uc3QgeyByZXR1cm4gbV9pczhCaXQ7
IH0KIAogICAgIHZvaWQgY2xlYXIoKQogICAgIHsKICAgICAgICAgbV9sZW5ndGggPSAwOwogICAg
ICAgICBtX3N0cmluZyA9IFN0cmluZygpOwogICAgICAgICBtX2J1ZmZlciA9IG51bGxwdHI7Ci0g
ICAgICAgIG1fYnVmZmVyQ2hhcmFjdGVyczggPSAwOwogICAgICAgICBtX2lzOEJpdCA9IHRydWU7
CisgICAgICAgIG1fZmFpbGVkID0gZmFsc2U7CisgICAgICAgIG1fYnVmZmVyQ2hhcmFjdGVyczgg
PSAwOwogICAgIH0KIAogICAgIHZvaWQgc3dhcChTdHJpbmdCdWlsZGVyJiBzdHJpbmdCdWlsZGVy
KQpAQCAtMjkwLDI4ICszMTgsMzIgQEAgcHVibGljOgogICAgICAgICBtX3N0cmluZy5zd2FwKHN0
cmluZ0J1aWxkZXIubV9zdHJpbmcpOwogICAgICAgICBtX2J1ZmZlci5zd2FwKHN0cmluZ0J1aWxk
ZXIubV9idWZmZXIpOwogICAgICAgICBzdGQ6OnN3YXAobV9pczhCaXQsIHN0cmluZ0J1aWxkZXIu
bV9pczhCaXQpOworICAgICAgICBzdGQ6OnN3YXAobV9mYWlsZWQsIHN0cmluZ0J1aWxkZXIubV9m
YWlsZWQpOwogICAgICAgICBzdGQ6OnN3YXAobV9idWZmZXJDaGFyYWN0ZXJzOCwgc3RyaW5nQnVp
bGRlci5tX2J1ZmZlckNoYXJhY3RlcnM4KTsKICAgICAgICAgQVNTRVJUKCFtX2J1ZmZlciB8fCBt
X2J1ZmZlci0+bGVuZ3RoKCkgPj0gbV9sZW5ndGgpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICB2
b2lkIGFsbG9jYXRlQnVmZmVyKGNvbnN0IExDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWdu
ZWQgcmVxdWlyZWRMZW5ndGgpOwotICAgIHZvaWQgYWxsb2NhdGVCdWZmZXIoY29uc3QgVUNoYXIq
IGN1cnJlbnRDaGFyYWN0ZXJzLCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCk7Ci0gICAgdm9pZCBh
bGxvY2F0ZUJ1ZmZlclVwQ29udmVydChjb25zdCBMQ2hhciogY3VycmVudENoYXJhY3RlcnMsIHVu
c2lnbmVkIHJlcXVpcmVkTGVuZ3RoKTsKKyAgICBGYWxsaWJsZTw+IGFsbG9jYXRlQnVmZmVyKGNv
bnN0IExDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpOwor
ICAgIEZhbGxpYmxlPD4gYWxsb2NhdGVCdWZmZXIoY29uc3QgVUNoYXIqIGN1cnJlbnRDaGFyYWN0
ZXJzLCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCk7CisgICAgRmFsbGlibGU8PiBhbGxvY2F0ZUJ1
ZmZlclVwQ29udmVydChjb25zdCBMQ2hhciogY3VycmVudENoYXJhY3RlcnMsIHVuc2lnbmVkIHJl
cXVpcmVkTGVuZ3RoKTsKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci0gICAgdm9p
ZCByZWFsbG9jYXRlQnVmZmVyKHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKTsKKyAgICBGYWxsaWJs
ZTw+IHJlYWxsb2NhdGVCdWZmZXIodW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpOwogICAgIHRlbXBs
YXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KLSAgICBBTFdBWVNfSU5MSU5FIENoYXJUeXBlKiBhcHBl
bmRVbmluaXRpYWxpemVkKHVuc2lnbmVkIGxlbmd0aCk7CisgICAgQUxXQVlTX0lOTElORSBGYWxs
aWJsZTxDaGFyVHlwZSo+IGFwcGVuZFVuaW5pdGlhbGl6ZWQodW5zaWduZWQgbGVuZ3RoKTsKICAg
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci0gICAgQ2hhclR5cGUqIGFwcGVuZFVuaW5p
dGlhbGl6ZWRTbG93KHVuc2lnbmVkIGxlbmd0aCk7CisgICAgRmFsbGlibGU8Q2hhclR5cGUqPiBh
cHBlbmRVbmluaXRpYWxpemVkU2xvdyh1bnNpZ25lZCBsZW5ndGgpOwogICAgIHRlbXBsYXRlIDx0
eXBlbmFtZSBDaGFyVHlwZT4KLSAgICBBTFdBWVNfSU5MSU5FIENoYXJUeXBlICogZ2V0QnVmZmVy
Q2hhcmFjdGVycygpOworICAgIEFMV0FZU19JTkxJTkUgQ2hhclR5cGUqIGdldEJ1ZmZlckNoYXJh
Y3RlcnMoKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCByZWlmeVN0cmluZygpIGNvbnN0
OworICAgIFdBUk5fVU5VU0VEX1JFVFVSTiBVbmV4cGVjdGVkPEZhaWx1cmU+IHdvdWxkT3ZlcmZs
b3coKTsKKyAgICBXQVJOX1VOVVNFRF9SRVRVUk4gVW5leHBlY3RlZDxGYWlsdXJlPiBvdXRPZk1l
bW9yeSgpOwogCi0gICAgdW5zaWduZWQgbV9sZW5ndGg7CisgICAgdW5zaWduZWQgbV9sZW5ndGgg
eyAwIH07CiAgICAgbXV0YWJsZSBTdHJpbmcgbV9zdHJpbmc7CiAgICAgUmVmUHRyPFN0cmluZ0lt
cGw+IG1fYnVmZmVyOwotICAgIGJvb2wgbV9pczhCaXQ7CisgICAgYm9vbCBtX2lzOEJpdCB7IHRy
dWUgfTsKKyAgICBib29sIG1fZmFpbGVkIHsgZmFsc2UgfTsKICAgICB1bmlvbiB7CiAgICAgICAg
IExDaGFyKiBtX2J1ZmZlckNoYXJhY3RlcnM4OwogICAgICAgICBVQ2hhciogbV9idWZmZXJDaGFy
YWN0ZXJzMTY7CkBAIC0zMzMsMjAgKzM2NSw0OCBAQCBBTFdBWVNfSU5MSU5FIFVDaGFyKiBTdHJp
bmdCdWlsZGVyOjpnZXRCdWZmZXJDaGFyYWN0ZXJzPFVDaGFyPigpCiB9ICAgIAogCiB0ZW1wbGF0
ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci1ib29sIGVxdWFsKGNvbnN0IFN0cmluZ0J1aWxkZXImIHMs
IGNvbnN0IENoYXJUeXBlKiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkKK2lubGluZSBib29sIGVx
dWFsKGNvbnN0IFN0cmluZ0J1aWxkZXImIHMsIGNvbnN0IENoYXJUeXBlKiBidWZmZXIsIHVuc2ln
bmVkIGxlbmd0aCkKIHsKKyAgICBpZiAocy5mYWlsZWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCiAgICAgaWYgKHMubGVuZ3RoKCkgIT0gbGVuZ3RoKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBpZiAocy5pczhCaXQoKSkKLSAgICAgICAgcmV0dXJuIGVxdWFsKHMuY2hhcmFjdGVy
czgoKSwgYnVmZmVyLCBsZW5ndGgpOworICAgICAgICByZXR1cm4gZXF1YWwoKnMuY2hhcmFjdGVy
czgoKSwgYnVmZmVyLCBsZW5ndGgpOwogCi0gICAgcmV0dXJuIGVxdWFsKHMuY2hhcmFjdGVyczE2
KCksIGJ1ZmZlciwgbGVuZ3RoKTsKKyAgICByZXR1cm4gZXF1YWwoKnMuY2hhcmFjdGVyczE2KCks
IGJ1ZmZlciwgbGVuZ3RoKTsKK30KKworaW5saW5lIGJvb2wgZXF1YWwoY29uc3QgU3RyaW5nQnVp
bGRlciYgYSwgY29uc3QgU3RyaW5nQnVpbGRlciYgYikKK3sKKyAgICBpZiAoYS5mYWlsZWQoKSB8
fCBiLmZhaWxlZCgpKQorICAgICAgICByZXR1cm4gYS5mYWlsZWQoKSA9PSBiLmZhaWxlZCgpOwor
CisgICAgaWYgKGEubGVuZ3RoKCkgIT0gYi5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgaWYgKCFhLmxlbmd0aCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlm
IChhLmlzOEJpdCgpKSB7CisgICAgICAgIGlmIChiLmlzOEJpdCgpKQorICAgICAgICAgICAgcmV0
dXJuIGVxdWFsKCphLmNoYXJhY3RlcnM4KCksICpiLmNoYXJhY3RlcnM4KCksIGEubGVuZ3RoKCkp
OworICAgICAgICByZXR1cm4gZXF1YWwoKmEuY2hhcmFjdGVyczgoKSwgKmIuY2hhcmFjdGVyczE2
KCksIGEubGVuZ3RoKCkpOworICAgIH0KKworICAgIGlmIChiLmlzOEJpdCgpKQorICAgICAgICBy
ZXR1cm4gZXF1YWwoKmEuY2hhcmFjdGVyczE2KCksICpiLmNoYXJhY3RlcnM4KCksIGEubGVuZ3Ro
KCkpOworICAgIHJldHVybiBlcXVhbCgqYS5jaGFyYWN0ZXJzMTYoKSwgKmIuY2hhcmFjdGVyczE2
KCksIGEubGVuZ3RoKCkpOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgU3RyaW5nVHlwZT4KLWJv
b2wgZXF1YWwoY29uc3QgU3RyaW5nQnVpbGRlciYgYSwgY29uc3QgU3RyaW5nVHlwZSYgYikKK2lu
bGluZSBib29sIGVxdWFsKGNvbnN0IFN0cmluZ0J1aWxkZXImIGEsIGNvbnN0IFN0cmluZ1R5cGUm
IGIpCiB7CisgICAgaWYgKGEuZmFpbGVkKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAg
IGlmIChhLmxlbmd0aCgpICE9IGIubGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApA
QCAtMzU1LDEzICs0MTUsMTMgQEAgYm9vbCBlcXVhbChjb25zdCBTdHJpbmdCdWlsZGVyJiBhLCBj
b25zdCBTdHJpbmdUeXBlJiBiKQogCiAgICAgaWYgKGEuaXM4Qml0KCkpIHsKICAgICAgICAgaWYg
KGIuaXM4Qml0KCkpCi0gICAgICAgICAgICByZXR1cm4gZXF1YWwoYS5jaGFyYWN0ZXJzOCgpLCBi
LmNoYXJhY3RlcnM4KCksIGEubGVuZ3RoKCkpOwotICAgICAgICByZXR1cm4gZXF1YWwoYS5jaGFy
YWN0ZXJzOCgpLCBiLmNoYXJhY3RlcnMxNigpLCBhLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIHJl
dHVybiBlcXVhbCgqYS5jaGFyYWN0ZXJzOCgpLCBiLmNoYXJhY3RlcnM4KCksIGEubGVuZ3RoKCkp
OworICAgICAgICByZXR1cm4gZXF1YWwoKmEuY2hhcmFjdGVyczgoKSwgYi5jaGFyYWN0ZXJzMTYo
KSwgYS5sZW5ndGgoKSk7CiAgICAgfQogCiAgICAgaWYgKGIuaXM4Qml0KCkpCi0gICAgICAgIHJl
dHVybiBlcXVhbChhLmNoYXJhY3RlcnMxNigpLCBiLmNoYXJhY3RlcnM4KCksIGEubGVuZ3RoKCkp
OwotICAgIHJldHVybiBlcXVhbChhLmNoYXJhY3RlcnMxNigpLCBiLmNoYXJhY3RlcnMxNigpLCBh
Lmxlbmd0aCgpKTsKKyAgICAgICAgcmV0dXJuIGVxdWFsKCphLmNoYXJhY3RlcnMxNigpLCBiLmNo
YXJhY3RlcnM4KCksIGEubGVuZ3RoKCkpOworICAgIHJldHVybiBlcXVhbCgqYS5jaGFyYWN0ZXJz
MTYoKSwgYi5jaGFyYWN0ZXJzMTYoKSwgYS5sZW5ndGgoKSk7CiB9CiAKIGlubGluZSBib29sIG9w
ZXJhdG9yPT0oY29uc3QgU3RyaW5nQnVpbGRlciYgYSwgY29uc3QgU3RyaW5nQnVpbGRlciYgYikg
eyByZXR1cm4gZXF1YWwoYSwgYik7IH0KQEAgLTM3Miw5ICs0MzIsMTIgQEAgaW5saW5lIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0cmluZ0J1aWxkZXImIGIpIHsgcmV0
dXJuIGVxdWFsKGIKIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgU3RyaW5nJiBhLCBjb25z
dCBTdHJpbmdCdWlsZGVyJiBiKSB7IHJldHVybiAhZXF1YWwoYiwgYSk7IH0KIAogdGVtcGxhdGU8
PiBzdHJ1Y3QgSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvblRyYWl0PFN0cmluZ0J1aWxkZXI+IHsK
LSAgICB1c2luZyBSZXR1cm5UeXBlID0gdm9pZDsKKyAgICB1c2luZyBSZXR1cm5UeXBlID0gU3Ry
aW5nQnVpbGRlcjo6RmFsbGlibGU8PjsKICAgICB1c2luZyBBZGRpdGlvbmFsQXJndW1lbnRUeXBl
ID0gU3RyaW5nQnVpbGRlcjsKLSAgICBzdGF0aWMgdm9pZCBmbHVzaChMQ2hhciogY2hhcmFjdGVy
cywgdW5zaWduZWQgbGVuZ3RoLCBTdHJpbmdCdWlsZGVyKiBzdHJpbmdCdWlsZGVyKSB7IHN0cmlu
Z0J1aWxkZXItPmFwcGVuZChjaGFyYWN0ZXJzLCBsZW5ndGgpOyB9CisgICAgc3RhdGljIFJldHVy
blR5cGUgZmx1c2goTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgU3RyaW5nQnVp
bGRlciogc3RyaW5nQnVpbGRlcikKKyAgICB7CisgICAgICAgIHJldHVybiBzdHJpbmdCdWlsZGVy
LT5hcHBlbmQoY2hhcmFjdGVycywgbGVuZ3RoKTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlckpTT04u
Y3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVySlNPTi5jcHAKaW5kZXggMjI2
Mjk1ZS4uYTU4MzAxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWls
ZGVySlNPTi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVySlNPTi5j
cHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEzLCAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0y
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAx
MiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDE3
IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTcgTW96aWxsYSBGb3VuZGF0aW9uLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgpAQCAtNzQsNyArNzQsNyBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyB2b2lkIGFw
cGVuZFF1b3RlZEpTT05TdHJpbmdJbnRlcm5hbChPdXRwdXRDaGFyYWN0ZXJUeXBlKiYgbwogICAg
IH0KIH0KIAotYm9vbCBTdHJpbmdCdWlsZGVyOjphcHBlbmRRdW90ZWRKU09OU3RyaW5nKGNvbnN0
IFN0cmluZyYgc3RyaW5nKQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVy
OjphcHBlbmRRdW90ZWRKU09OU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewogICAgIC8v
IE1ha2Ugc3VyZSB3ZSBoYXZlIGVub3VnaCBidWZmZXIgc3BhY2UgdG8gYXBwZW5kIHRoaXMgc3Ry
aW5nIHdpdGhvdXQgaGF2aW5nCiAgICAgLy8gdG8gd29ycnkgYWJvdXQgcmVhbGxvY2F0aW5nIGlu
IHRoZSBtaWRkbGUuCkBAIC04NSwyMCArODUsMjEgQEAgYm9vbCBTdHJpbmdCdWlsZGVyOjphcHBl
bmRRdW90ZWRKU09OU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgIG1heGltdW1DYXBh
Y2l0eVJlcXVpcmVkICs9IDIgKyBzdHJpbmdMZW5ndGggKiA2OwogICAgIHVuc2lnbmVkIGFsbG9j
YXRpb25TaXplOwogICAgIGlmIChDaGVja2VkU3RhdGU6OkRpZE92ZXJmbG93ID09IG1heGltdW1D
YXBhY2l0eVJlcXVpcmVkLnNhZmVHZXQoYWxsb2NhdGlvblNpemUpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIHJldHVybiB3b3VsZE92ZXJmbG93KCk7CiAgICAgLy8gVGhpcyBtYXgo
KSBpcyBoZXJlIHRvIGFsbG93IHVzIHRvIGFsbG9jYXRlIHNpemVzIGJldHdlZW4gdGhlIHJhbmdl
IFsyXjMxLCAyXjMyIC0gMl0gYmVjYXVzZSByb3VuZFVwVG9Qb3dlck9mVHdvKDE8PDMxICsgc29t
ZSBpbnQgc21hbGxlciB0aGFuIDE8PDMxKSA9PSAwLgogICAgIC8vIEZJWE1FOiByb3VuZFVwVG9Q
b3dlck9mVHdvIHNob3VsZCB0YWtlIENoZWNrZWQ8dW5zaWduZWQ+IGFuZCBhYm9ydCBpZiBpdCBm
YWlscyB0byByb3VuZCB1cC4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTc2MDg2CiAgICAgYWxsb2NhdGlvblNpemUgPSBzdGQ6Om1heChhbGxvY2F0aW9u
U2l6ZSwgcm91bmRVcFRvUG93ZXJPZlR3byhhbGxvY2F0aW9uU2l6ZSkpOwogCi0gICAgLy8gQWxs
b2NhdGluZyB0aGlzIG11Y2ggd2lsbCBkZWZpbml0ZWx5IGZhaWwuCi0gICAgaWYgKGFsbG9jYXRp
b25TaXplID49IDB4ODAwMDAwMDApCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChp
czhCaXQoKSAmJiAhc3RyaW5nLmlzOEJpdCgpKQotICAgICAgICBhbGxvY2F0ZUJ1ZmZlclVwQ29u
dmVydChtX2J1ZmZlckNoYXJhY3RlcnM4LCBhbGxvY2F0aW9uU2l6ZSk7Ci0gICAgZWxzZQotICAg
ICAgICByZXNlcnZlQ2FwYWNpdHkoYWxsb2NhdGlvblNpemUpOworICAgIGlmIChpczhCaXQoKSAm
JiAhc3RyaW5nLmlzOEJpdCgpKSB7CisgICAgICAgIGF1dG8gYWxsb2NhdGVkID0gYWxsb2NhdGVC
dWZmZXJVcENvbnZlcnQobV9idWZmZXJDaGFyYWN0ZXJzOCwgYWxsb2NhdGlvblNpemUpOworICAg
ICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAgIHJldHVybiBhbGxvY2F0ZWQ7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgYXV0byByZXNlcnZlZCA9IHJlc2VydmVDYXBhY2l0eShhbGxvY2F0
aW9uU2l6ZSk7CisgICAgICAgIGlmICghcmVzZXJ2ZWQpCisgICAgICAgICAgICByZXR1cm4gcmVz
ZXJ2ZWQ7CisgICAgfQogICAgIEFTU0VSVChtX2J1ZmZlci0+bGVuZ3RoKCkgPj0gYWxsb2NhdGlv
blNpemUpOwogCiAgICAgaWYgKGlzOEJpdCgpKSB7CkBAIC0xMTksNyArMTIwLDcgQEAgYm9vbCBT
dHJpbmdCdWlsZGVyOjphcHBlbmRRdW90ZWRKU09OU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5n
KQogICAgICAgICBtX2xlbmd0aCA9IG91dHB1dCAtIG1fYnVmZmVyQ2hhcmFjdGVyczE2OwogICAg
IH0KICAgICBBU1NFUlQobV9idWZmZXItPmxlbmd0aCgpID49IG1fbGVuZ3RoKTsKLSAgICByZXR1
cm4gdHJ1ZTsKKyAgICByZXR1cm4ge307CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvU3RyaW5nSW1wbC5jcHAKaW5kZXggNzc0ODc2Yi4uZWVkMDlhYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L1N0cmluZ0ltcGwuY3BwCkBAIC0yMDYsMjIgKzIwNiwyNCBAQCBSZWY8U3RyaW5nSW1wbD4g
U3RyaW5nSW1wbDo6Y3JlYXRlVW5pbml0aWFsaXplZCh1bnNpZ25lZCBsZW5ndGgsIFVDaGFyKiYg
ZGF0YSkKICAgICByZXR1cm4gY3JlYXRlVW5pbml0aWFsaXplZEludGVybmFsKGxlbmd0aCwgZGF0
YSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IGlubGluZSBSZWY8U3Ry
aW5nSW1wbD4gU3RyaW5nSW1wbDo6cmVhbGxvY2F0ZUludGVybmFsKFJlZjxTdHJpbmdJbXBsPiYm
IG9yaWdpbmFsU3RyaW5nLCB1bnNpZ25lZCBsZW5ndGgsIENoYXJhY3RlclR5cGUqJiBkYXRhKQor
dGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gaW5saW5lIFJlZlB0cjxTdHJpbmdJbXBs
PiBTdHJpbmdJbXBsOjpyZWFsbG9jYXRlSW50ZXJuYWwoUmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2lu
YWxTdHJpbmcsIHVuc2lnbmVkIGxlbmd0aCwgQ2hhcmFjdGVyVHlwZSomIGRhdGEpCiB7CiAgICAg
QVNTRVJUKG9yaWdpbmFsU3RyaW5nLT5oYXNPbmVSZWYoKSk7CiAgICAgQVNTRVJUKG9yaWdpbmFs
U3RyaW5nLT5idWZmZXJPd25lcnNoaXAoKSA9PSBCdWZmZXJJbnRlcm5hbCk7CiAKICAgICBpZiAo
IWxlbmd0aCkgewogICAgICAgICBkYXRhID0gMDsKLSAgICAgICAgcmV0dXJuICplbXB0eSgpOwor
ICAgICAgICByZXR1cm4gZW1wdHkoKTsKICAgICB9CiAKICAgICAvLyBTYW1lIGFzIGNyZWF0ZVVu
aW5pdGlhbGl6ZWQoKSBleGNlcHQgaGVyZSB3ZSB1c2Ugc3RyaW5nUmVhbGxvYy4KLSAgICBpZiAo
bGVuZ3RoID4gKChzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkgLSBzaXplb2Yo
U3RyaW5nSW1wbCkpIC8gc2l6ZW9mKENoYXJhY3RlclR5cGUpKSkKLSAgICAgICAgQ1JBU0goKTsK
KyAgICBpZiAoVU5MSUtFTFkobGVuZ3RoID4gKChzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVk
Pjo6bWF4KCkgLSBzaXplb2YoU3RyaW5nSW1wbCkpIC8gc2l6ZW9mKENoYXJhY3RlclR5cGUpKSkp
CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgb3JpZ2luYWxTdHJpbmctPn5TdHJpbmdJ
bXBsKCk7CiAgICAgYXV0byogc3RyaW5nID0gc3RhdGljX2Nhc3Q8U3RyaW5nSW1wbCo+KHN0cmlu
Z1JlYWxsb2MoJm9yaWdpbmFsU3RyaW5nLmxlYWtSZWYoKSwgYWxsb2NhdGlvblNpemU8Q2hhcmFj
dGVyVHlwZT4obGVuZ3RoKSkpOworICAgIGlmIChVTkxJS0VMWSghc3RyaW5nKSkKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKICAgICBkYXRhID0gc3RyaW5nLT50YWlsUG9pbnRlcjxDaGFyYWN0
ZXJUeXBlPigpOwogICAgIHJldHVybiBjb25zdHJ1Y3RJbnRlcm5hbDxDaGFyYWN0ZXJUeXBlPigq
c3RyaW5nLCBsZW5ndGgpOwpAQCAtMjMwLDEzICsyMzIsMzMgQEAgdGVtcGxhdGU8dHlwZW5hbWUg
Q2hhcmFjdGVyVHlwZT4gaW5saW5lIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpyZWFsbG9j
YXRlSW4KIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpyZWFsbG9jYXRlKFJlZjxTdHJpbmdJ
bXBsPiYmIG9yaWdpbmFsU3RyaW5nLCB1bnNpZ25lZCBsZW5ndGgsIExDaGFyKiYgZGF0YSkKIHsK
ICAgICBBU1NFUlQob3JpZ2luYWxTdHJpbmctPmlzOEJpdCgpKTsKLSAgICByZXR1cm4gcmVhbGxv
Y2F0ZUludGVybmFsKFdURk1vdmUob3JpZ2luYWxTdHJpbmcpLCBsZW5ndGgsIGRhdGEpOworICAg
IGlmIChhdXRvIHJlYWxsb2NhdGVkID0gcmVhbGxvY2F0ZUludGVybmFsKFdURk1vdmUob3JpZ2lu
YWxTdHJpbmcpLCBsZW5ndGgsIGRhdGEpKQorICAgICAgICByZXR1cm4gKnJlYWxsb2NhdGVkOwor
ICAgIENSQVNIKCk7CiB9CiAKIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpyZWFsbG9jYXRl
KFJlZjxTdHJpbmdJbXBsPiYmIG9yaWdpbmFsU3RyaW5nLCB1bnNpZ25lZCBsZW5ndGgsIFVDaGFy
KiYgZGF0YSkKIHsKICAgICBBU1NFUlQoIW9yaWdpbmFsU3RyaW5nLT5pczhCaXQoKSk7Ci0gICAg
cmV0dXJuIHJlYWxsb2NhdGVJbnRlcm5hbChXVEZNb3ZlKG9yaWdpbmFsU3RyaW5nKSwgbGVuZ3Ro
LCBkYXRhKTsKKyAgICBpZiAoYXV0byByZWFsbG9jYXRlZCA9IHJlYWxsb2NhdGVJbnRlcm5hbChX
VEZNb3ZlKG9yaWdpbmFsU3RyaW5nKSwgbGVuZ3RoLCBkYXRhKSkKKyAgICAgICAgcmV0dXJuICpy
ZWFsbG9jYXRlZDsKKyAgICBDUkFTSCgpOworfQorCitSZWZQdHI8U3RyaW5nSW1wbD4gU3RyaW5n
SW1wbDo6dHJ5UmVhbGxvY2F0ZShSZWY8U3RyaW5nSW1wbD4mJiBvcmlnaW5hbFN0cmluZywgdW5z
aWduZWQgbGVuZ3RoLCBMQ2hhciomIGRhdGEpCit7CisgICAgQVNTRVJUKG9yaWdpbmFsU3RyaW5n
LT5pczhCaXQoKSk7CisgICAgaWYgKGF1dG8gcmVhbGxvY2F0ZWQgPSByZWFsbG9jYXRlSW50ZXJu
YWwoV1RGTW92ZShvcmlnaW5hbFN0cmluZyksIGxlbmd0aCwgZGF0YSkpCisgICAgICAgIHJldHVy
biByZWFsbG9jYXRlZC5nZXQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPFN0
cmluZ0ltcGw+IFN0cmluZ0ltcGw6OnRyeVJlYWxsb2NhdGUoUmVmPFN0cmluZ0ltcGw+JiYgb3Jp
Z2luYWxTdHJpbmcsIHVuc2lnbmVkIGxlbmd0aCwgVUNoYXIqJiBkYXRhKQoreworICAgIEFTU0VS
VCghb3JpZ2luYWxTdHJpbmctPmlzOEJpdCgpKTsKKyAgICBpZiAoYXV0byByZWFsbG9jYXRlZCA9
IHJlYWxsb2NhdGVJbnRlcm5hbChXVEZNb3ZlKG9yaWdpbmFsU3RyaW5nKSwgbGVuZ3RoLCBkYXRh
KSkKKyAgICAgICAgcmV0dXJuIHJlYWxsb2NhdGVkLmdldCgpOworICAgIHJldHVybiBudWxscHRy
OwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBpbmxpbmUgUmVmPFN0cmlu
Z0ltcGw+IFN0cmluZ0ltcGw6OmNyZWF0ZUludGVybmFsKGNvbnN0IENoYXJhY3RlclR5cGUqIGNo
YXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvU3RyaW5nSW1wbC5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmgKaW5kZXgg
NjE2ZGEyNS4uOGRmOWUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJ
bXBsLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmgKQEAgLTIyOSw2ICsy
MjksNyBAQCBwdWJsaWM6CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8U3RyaW5n
SW1wbD4gY3JlYXRlKGNvbnN0IExDaGFyKik7CiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgUmVm
PFN0cmluZ0ltcGw+IGNyZWF0ZShjb25zdCBjaGFyKiBzdHJpbmcpIHsgcmV0dXJuIGNyZWF0ZShy
ZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oc3RyaW5nKSk7IH0KIAorICAgIHN0YXRpYyBS
ZWZQdHI8U3RyaW5nSW1wbD4gdHJ5Q3JlYXRlU3Vic3RyaW5nU2hhcmluZ0ltcGwoU3RyaW5nSW1w
bCYsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKICAgICBzdGF0aWMgUmVmPFN0
cmluZ0ltcGw+IGNyZWF0ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKFN0cmluZ0ltcGwmLCB1bnNpZ25l
ZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7CiAKICAgICB0ZW1wbGF0ZTx1bnNpZ25lZCBjaGFy
YWN0ZXJDb3VudD4gc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGVGcm9tTGl0ZXJhbChjb25z
dCBjaGFyICgmKVtjaGFyYWN0ZXJDb3VudF0pOwpAQCAtMjQ4LDYgKzI0OSw4IEBAIHB1YmxpYzoK
ICAgICAvLyB0aGUgb3JpZ2luYWxTdHJpbmcgY2FuJ3QgYmUgdXNlZCBhZnRlciB0aGlzIGZ1bmN0
aW9uLgogICAgIHN0YXRpYyBSZWY8U3RyaW5nSW1wbD4gcmVhbGxvY2F0ZShSZWY8U3RyaW5nSW1w
bD4mJiBvcmlnaW5hbFN0cmluZywgdW5zaWduZWQgbGVuZ3RoLCBMQ2hhciomIGRhdGEpOwogICAg
IHN0YXRpYyBSZWY8U3RyaW5nSW1wbD4gcmVhbGxvY2F0ZShSZWY8U3RyaW5nSW1wbD4mJiBvcmln
aW5hbFN0cmluZywgdW5zaWduZWQgbGVuZ3RoLCBVQ2hhciomIGRhdGEpOworICAgIHN0YXRpYyBS
ZWZQdHI8U3RyaW5nSW1wbD4gdHJ5UmVhbGxvY2F0ZShSZWY8U3RyaW5nSW1wbD4mJiBvcmlnaW5h
bFN0cmluZywgdW5zaWduZWQgbGVuZ3RoLCBMQ2hhciomIGRhdGEpOworICAgIHN0YXRpYyBSZWZQ
dHI8U3RyaW5nSW1wbD4gdHJ5UmVhbGxvY2F0ZShSZWY8U3RyaW5nSW1wbD4mJiBvcmlnaW5hbFN0
cmluZywgdW5zaWduZWQgbGVuZ3RoLCBVQ2hhciomIGRhdGEpOwogCiAgICAgc3RhdGljIHVuc2ln
bmVkIGZsYWdzT2Zmc2V0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFN0cmluZ0ltcGwsIG1f
aGFzaEFuZEZsYWdzKTsgfQogICAgIHN0YXRpYyB1bnNpZ25lZCBmbGFnSXM4Qml0KCkgeyByZXR1
cm4gc19oYXNoRmxhZzhCaXRCdWZmZXI7IH0KQEAgLTUwMyw3ICs1MDYsNyBAQCBwcml2YXRlOgog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHN0YXRpYyBSZWY8U3RyaW5nSW1w
bD4gY29uc3RydWN0SW50ZXJuYWwoU3RyaW5nSW1wbCYsIHVuc2lnbmVkKTsKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0ZVVu
aW5pdGlhbGl6ZWRJbnRlcm5hbCh1bnNpZ25lZCwgQ2hhcmFjdGVyVHlwZSomKTsKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0
ZVVuaW5pdGlhbGl6ZWRJbnRlcm5hbE5vbkVtcHR5KHVuc2lnbmVkLCBDaGFyYWN0ZXJUeXBlKiYp
OwotICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHN0YXRpYyBSZWY8U3RyaW5n
SW1wbD4gcmVhbGxvY2F0ZUludGVybmFsKFJlZjxTdHJpbmdJbXBsPiYmLCB1bnNpZ25lZCwgQ2hh
cmFjdGVyVHlwZSomKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBzdGF0
aWMgUmVmUHRyPFN0cmluZ0ltcGw+IHJlYWxsb2NhdGVJbnRlcm5hbChSZWY8U3RyaW5nSW1wbD4m
JiwgdW5zaWduZWQsIENoYXJhY3RlclR5cGUqJik7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hh
cmFjdGVyVHlwZT4gc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGVJbnRlcm5hbChjb25zdCBD
aGFyYWN0ZXJUeXBlKiwgdW5zaWduZWQpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBORVZFUl9J
TkxJTkUgdW5zaWduZWQgaGFzaFNsb3dDYXNlKCkgY29uc3Q7CiAKQEAgLTkxNCwyMiArOTE3LDMx
IEBAIHRlbXBsYXRlPHNpemVfdCBpbmxpbmVDYXBhY2l0eT4gaW5saW5lIFJlZjxTdHJpbmdJbXBs
PiBTdHJpbmdJbXBsOjpjcmVhdGU4Qml0SWZQCiAgICAgcmV0dXJuIGNyZWF0ZThCaXRJZlBvc3Np
YmxlKHZlY3Rvci5kYXRhKCksIHZlY3Rvci5zaXplKCkpOwogfQogCi1BTFdBWVNfSU5MSU5FIFJl
ZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdGVTdWJzdHJpbmdTaGFyaW5nSW1wbChTdHJp
bmdJbXBsJiByZXAsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQorQUxXQVlTX0lO
TElORSBSZWZQdHI8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6dHJ5Q3JlYXRlU3Vic3RyaW5nU2hh
cmluZ0ltcGwoU3RyaW5nSW1wbCYgcmVwLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0
aCkKIHsKICAgICBBU1NFUlQobGVuZ3RoIDw9IHJlcC5sZW5ndGgoKSk7CiAKICAgICBpZiAoIWxl
bmd0aCkKLSAgICAgICAgcmV0dXJuICplbXB0eSgpOworICAgICAgICByZXR1cm4gZW1wdHkoKTsK
IAogICAgIGF1dG8qIG93bmVyUmVwID0gKChyZXAuYnVmZmVyT3duZXJzaGlwKCkgPT0gQnVmZmVy
U3Vic3RyaW5nKSA/IHJlcC5zdWJzdHJpbmdCdWZmZXIoKSA6ICZyZXApOwogCiAgICAgLy8gV2Ug
YWxsb2NhdGUgYSBidWZmZXIgdGhhdCBjb250YWlucyBib3RoIHRoZSBTdHJpbmdJbXBsIHN0cnVj
dCBhcyB3ZWxsIGFzIHRoZSBwb2ludGVyIHRvIHRoZSBvd25lciBzdHJpbmcuCiAgICAgYXV0byog
c3RyaW5nSW1wbCA9IHN0YXRpY19jYXN0PFN0cmluZ0ltcGwqPihzdHJpbmdNYWxsb2MoYWxsb2Nh
dGlvblNpemU8U3RyaW5nSW1wbCo+KDEpKSk7CisgICAgaWYgKCFzdHJpbmdJbXBsKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAocmVwLmlzOEJpdCgpKQogICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyAoTm90TnVsbCwgc3RyaW5nSW1wbCkgU3RyaW5nSW1wbChyZXAubV9kYXRh
OCArIG9mZnNldCwgbGVuZ3RoLCAqb3duZXJSZXApKTsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyAoTm90TnVsbCwgc3RyaW5nSW1wbCkgU3RyaW5nSW1wbChyZXAubV9kYXRhMTYgKyBvZmZzZXQs
IGxlbmd0aCwgKm93bmVyUmVwKSk7CiB9CiAKK0FMV0FZU19JTkxJTkUgUmVmPFN0cmluZ0ltcGw+
IFN0cmluZ0ltcGw6OmNyZWF0ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKFN0cmluZ0ltcGwmIHJlcCwg
dW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgaWYgKGF1dG8gY3JlYXRl
ZCA9IHRyeUNyZWF0ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKHJlcCwgb2Zmc2V0LCBsZW5ndGgpKQor
ICAgICAgICByZXR1cm4gKmNyZWF0ZWQ7CisgICAgQ1JBU0goKTsKK30KKwogdGVtcGxhdGU8dW5z
aWduZWQgY2hhcmFjdGVyQ291bnQ+IEFMV0FZU19JTkxJTkUgUmVmPFN0cmluZ0ltcGw+IFN0cmlu
Z0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKGNvbnN0IGNoYXIgKCZjaGFyYWN0ZXJzKVtjaGFyYWN0
ZXJDb3VudF0pCiB7CiAgICAgQ09NUElMRV9BU1NFUlQoY2hhcmFjdGVyQ291bnQgPiAxLCBTdHJp
bmdJbXBsRnJvbUxpdGVyYWxOb3RFbXB0eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L1RleHRTdHJlYW0uY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0U3RyZWFtLmNwcApp
bmRleCBhYWY2MTk0Li5kM2I1MzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1Rl
eHRTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dFN0cmVhbS5jcHAKQEAg
LTEzMiw5ICsxMzIsMTEgQEAgVGV4dFN0cmVhbSYgVGV4dFN0cmVhbTo6b3BlcmF0b3I8PChjb25z
dCBGb3JtYXROdW1iZXJSZXNwZWN0aW5nSW50ZWdlcnMmIG51bWJlclQKIAogU3RyaW5nIFRleHRT
dHJlYW06OnJlbGVhc2UoKQogewotICAgIFN0cmluZyByZXN1bHQgPSBtX3RleHQudG9TdHJpbmco
KTsKLSAgICBtX3RleHQuY2xlYXIoKTsKLSAgICByZXR1cm4gcmVzdWx0OworICAgIGlmIChhdXRv
IHJlc3VsdCA9IG1fdGV4dC50b1N0cmluZygpKSB7CisgICAgICAgIG1fdGV4dC5jbGVhcigpOwor
ICAgICAgICByZXR1cm4gKnJlc3VsdDsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBU
ZXh0U3RyZWFtOjpzdGFydEdyb3VwKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1MWQ4YWQwLi41MTNhMDJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEzIEBACisyMDE4LTA0LTI2ICBKRiBCYXN0aWVuICA8amZi
YXN0aWVuQGFwcGxlLmNvbT4KKworICAgICAgICBTdHJpbmdCdWlsZGVyIGlzIGZhbGxpYmxlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUwNDgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdHJpbmdCdWls
ZGVyIGNhbiBmYWlsIHdoZW4gYWxsb2NhdGluZyBtZW1vcnkuIFN0cmluZ0J1aWxkZXIgaXMKKyAg
ICAgICAgbW9zdGx5IHVzZWQgd2l0aCB1c2VyIGlucHV0LCB3aGljaCBvZnRlbiBtZWFucyB0aGF0
IGp1c3QgY3Jhc2hpbmcKKyAgICAgICAgaXNuJ3QgdGhlIHJpZ2h0IG91dGNvbWUuIE91ciBmdXp6
ZXJzIG9mdGVuIGVuY291bnRlciBzdWNoIHRoaW5ncworICAgICAgICBmb3IgSmF2YVNjcmlwdENv
cmUsIGFuZCBzbyBmYXIgd2UndmUgYXBwbGllZCBwb2ludCBzb2x1dGlvbnMuIE5vCisgICAgICAg
IG1vcmUhCisKKworICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudENvbnRh
Y3RDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnQpOgorICAgICAgICAqIE1vZHVs
ZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlc29s
dmVSZWxhdGl2ZVZpcnR1YWxQYXRoKToKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dl
b2xvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxvZ0Vycm9yKToKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQktl
eURhdGE6OmxvZ2dpbmdTdHJpbmcgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQktleVBhdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6bG9nZ2luZ1N0cmluZyk6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0luZGV4VmFsdWVTdG9yZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OkluZGV4VmFsdWVTdG9yZTo6bG9nZ2luZ1N0cmluZyBj
b25zdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1cnNv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OmJ1aWxkSW5kZXhTdGF0ZW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpidWlsZE9iamVjdFN0b3JlU3RhdGVtZW50
KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VJbmZvLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlSW5mbzo6bG9nZ2luZ1N0cmluZyBjb25z
dCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9iamVjdFN0b3JlSW5m
by5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUluZm86OmxvZ2dpbmdTdHJp
bmcgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lv
bk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWVkaWFQcm9kdWNlclN0YXRlU3RyaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OnRvU3RyaW5nKToK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpmaWx0ZXJJQ0VDYW5kaWRhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UGVlckNvbm5lY3Rpb25CYWNrZW5kOjpmaWx0ZXJTRFAgY29uc3QpOgorICAgICAgICAqIE1v
ZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6WW91VHViZVBsdWdpblJlcGxhY2VtZW50Ojp5b3VUdWJlVVJMRnJvbUFic29sdXRlVVJM
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpnZW5lcmF0ZURhdGFiYXNlRmlsZU5hbWUpOgorICAgICAgICAqIE1v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZW5jb2Rl
UHJvdG9jb2xTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6am9pblN0cmluZ3MpOgorICAgICAg
ICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OmNyZWF0ZUhl
YWRlclZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEV4dGVuc2lvbkRp
c3BhdGNoZXI6OmFjY2VwdGVkRXh0ZW5zaW9ucyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93
ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXNv
dXJjZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6aG9zdE5hbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViU29ja2V0SGFuZHNoYWtlOjpjbGllbnRMb2NhdGlvbiBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudEhhbmRzaGFrZU1lc3NhZ2UgY29uc3Qp
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6c2hvdWxkQWRkU3BhY2VCZWZvcmVBcHBlbmRpbmdOZXh0RWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dGV4dFVuZGVy
RWxlbWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dDo6YWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uRm9yQ2hpbGRyZW4gY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmFjY2Vzc2liaWxpdHlEZXNjcmlwdGlv
bkZvckVsZW1lbnRzIGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c3Ry
aW5nRm9yUmFuZ2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVj
dDo6c3RyaW5nRm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2UpOgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tOgorICAgICAgICAoLVtX
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciB2YWx1ZURlc2NyaXB0aW9uRm9yTWV0ZXJdKToK
KyAgICAgICAgKGZvcm1hdEZvckRlYnVnZ2VyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RP
TUNvbnZlcnRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN0cmluZ1RvVVNWU3RyaW5n
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnRocm93QXJndW1lbnRNdXN0QmVFbnVtRXJyb3IpOgorICAgICAgICAo
V2ViQ29yZTo6dGhyb3dBcmd1bWVudE11c3RCZUZ1bmN0aW9uRXJyb3IpOgorICAgICAgICAoV2Vi
Q29yZTo6dGhyb3dBcmd1bWVudFR5cGVFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjp0aHJvd1Jl
cXVpcmVkTWVtYmVyVHlwZUVycm9yKToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db21i
aW5lZFVSTEZpbHRlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6
OnByZWZpeFRyZWVWZXJ0ZXhUb1N0cmluZyk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMv
Q29udGVudEV4dGVuc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9u
czo6Q29udGVudEV4dGVuc2lvbjo6Y29tcGlsZUdsb2JhbERpc3BsYXlOb25lU3R5bGVTaGVldCk6
CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpyZXNvbHZlUGVuZGluZ0Rp
c3BsYXlOb25lQWN0aW9ucyk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4
dGVuc2lvblN0eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lv
bnM6OkNvbnRlbnRFeHRlbnNpb25TdHlsZVNoZWV0OjphZGREaXNwbGF5Tm9uZVNlbGVjdG9yKToK
KyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9UZXJtLmg6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZW50RXh0ZW5zaW9uczo6VGVybTo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAqIGNzcy9D
U1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
QW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAg
ICAgKiBjc3MvQ1NTQmFzaWNTaGFwZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRDaXJj
bGVTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRFbGxpcHNlU3RyaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OmJ1aWxkUGF0aFN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpidWlsZFBv
bHlnb25TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRJbnNldFN0cmluZyk6CisgICAg
ICAgICogY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YnVp
bGRDc3NUZXh0KToKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Y3NzVGV4
dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAg
ICAgKiBjc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1ND
dXJzb3JJbWFnZVZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NT
Q3VzdG9tSWRlbnRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDdXN0b21JZGVudFZh
bHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTRmlsdGVySW1hZ2VW
YWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGaWx0ZXJJbWFnZVZhbHVlOjpjdXN0b21D
U1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VSdWxlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlUnVsZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICog
Y3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZh
Y2VTcmNWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0ZvbnRG
ZWF0dXJlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZlYXR1cmVWYWx1ZTo6
Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0ZvbnRTdHlsZVJhbmdlVmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udFN0eWxlUmFuZ2VWYWx1ZTo6Y3VzdG9t
Q1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0ZvbnRTdHlsZVZhbHVlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRTdHlsZVZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToK
KyAgICAgICAgKiBjc3MvQ1NTRm9udFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Zv
bnRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0ZvbnRWYXJp
YXRpb25WYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250VmFyaWF0aW9uVmFsdWU6
OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NGdW5jdGlvblZhbHVlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Z1bmN0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQgY29u
c3QpOgorICAgICAgICAqIGNzcy9DU1NHcmFkaWVudFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU0xpbmVhckdyYWRpZW50VmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUmFkaWFsR3JhZGllbnRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NDb25pY0dyYWRpZW50VmFsdWU6OmN1c3RvbUNTU1RleHQg
Y29uc3QpOgorICAgICAgICAqIGNzcy9DU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0dyaWRBdXRvUmVwZWF0VmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3Qp
OgorICAgICAgICAqIGNzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3Qp
OgorICAgICAgICAqIGNzcy9DU1NJbWFnZVNldFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU0ltYWdlU2V0VmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9D
U1NJbXBvcnRSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltcG9ydFJ1bGU6OmNzc1Rl
eHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NLZXlmcmFtZVJ1bGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVSdWxlS2V5ZnJhbWU6OmtleVRleHQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGVSdWxlS2V5ZnJhbWU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9D
U1NLZXlmcmFtZXNSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0tleWZyYW1lc1J1bGU6
OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NMaW5lQm94Q29udGFpblZhbHVlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0xpbmVCb3hDb250YWluVmFsdWU6OmN1c3RvbUNTU1Rl
eHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NNYXJrdXAuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6c2VyaWFsaXplU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OnNlcmlhbGl6ZUFzU3RyaW5n
T3JDdXN0b21JZGVudCk6CisgICAgICAgICogY3NzL0NTU01lZGlhUnVsZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NNZWRpYVJ1bGU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9D
U1NOYW1lc3BhY2VSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU05hbWVzcGFjZVJ1bGU6
OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NQYWdlUnVsZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQYWdlUnVsZTo6c2VsZWN0b3JUZXh0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1BhZ2VSdWxlOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTUHJp
bWl0aXZlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmZv
cm1hdE51bWJlckZvckN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NQcm9w
ZXJ0eVNvdXJjZURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlTb3VyY2VE
YXRhOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpzZWxlY3RvclRleHQgY29uc3QpOgorICAgICAg
ICAqIGNzcy9DU1NTZWxlY3Rvckxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0
b3JMaXN0OjpzZWxlY3RvcnNUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTU2hhZG93VmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2hhZG93VmFsdWU6OmN1c3RvbUNTU1RleHQg
Y29uc3QpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTU3R5bGVSdWxlOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVT
aGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNoZWV0OjphZGRSdWxlKToKKyAg
ICAgICAgKiBjc3MvQ1NTU3VwcG9ydHNSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N1
cHBvcnRzUnVsZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU1RpbWluZ0Z1bmN0
aW9uVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3ViaWNCZXppZXJUaW1pbmdGdW5j
dGlvblZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0
ZXBzVGltaW5nRnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NGcmFtZXNUaW1pbmdGdW5jdGlvblZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NwcmluZ1RpbWluZ0Z1bmN0aW9uVmFsdWU6OmN1c3Rv
bUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUxpc3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTVmFsdWVMaXN0OjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAg
KiBjc3MvQ1NTVmFyaWFibGVEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhcmlhYmxl
RGF0YTo6Y29uc3VtZUFuZFVwZGF0ZVRva2Vucyk6CisgICAgICAgICogY3NzL0RPTUNTU05hbWVz
cGFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01DU1NOYW1lc3BhY2U6OmVzY2FwZSk6Cisg
ICAgICAgICogY3NzL0RPTU1hdHJpeFJlYWRPbmx5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TU1hdHJpeFJlYWRPbmx5Ojp0b1N0cmluZyBjb25zdCk6CisgICAgICAgICogY3NzL0RlcHJlY2F0
ZWRDU1NPTVZhbHVlTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01W
YWx1ZUxpc3Q6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9Gb250RmFjZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGb250RmFjZTo6c3R5bGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udEZhY2U6OndlaWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGb250RmFjZTo6
c3RyZXRjaCBjb25zdCk6CisgICAgICAgICogY3NzL01lZGlhTGlzdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVF1ZXJ5U2V0OjptZWRpYVRleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9N
ZWRpYVF1ZXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnk6OnNlcmlhbGl6ZSBj
b25zdCk6CisgICAgICAgICogY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUXVlcnlFeHByZXNzaW9uOjpzZXJpYWxpemUgY29uc3QpOgorICAgICAg
ICAqIGNzcy9SZWN0Lmg6CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydGllcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OmZvbnRWYWx1ZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OmdldDRWYWx1ZXMgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzOjpnZXRMYXllcmVkU2hvcnRoYW5kVmFsdWUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzOjpnZXRTaG9ydGhhbmRWYWx1ZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OmJvcmRlclByb3BlcnR5
VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzOjphc1RleHQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzOjpQcm9wZXJ0eVJlZmVy
ZW5jZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL1dlYktpdENTU01hdHJpeC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NNYXRyaXg6OnRvU3RyaW5nIGNvbnN0KToKKyAg
ICAgICAgKiBjc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYktpdENTU1ZpZXdwb3J0UnVsZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL3Bh
cnNlci9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUZv
bnRGYWNlRGVzY3JpcHRvcik6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJUb2tlbjo6c2VyaWFsaXplIGNvbnN0KToK
KyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuUmFuZ2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUGFyc2VyVG9rZW5SYW5nZTo6c2VyaWFsaXplIGNvbnN0KToKKyAgICAgICAg
KiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNv
bmNhdGVuYXRlRmFtaWx5TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZUdyaWRUZW1wbGF0
ZUFyZWFzQ29sdW1uTmFtZXMpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTVG9rZW5pemVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Rva2VuaXplcjo6Y29uc3VtZVN0cmluZ1Rva2VuVW50
aWwpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9rZW5pemVyOjpjb25zdW1lVXJsVG9rZW4pOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTVG9rZW5pemVyOjpjb25zdW1lTmFtZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NUb2tlbml6ZXI6OmNvbnN1bWVFc2NhcGUpOgorICAgICAgICAqIGRvbS9EYXRh
c2V0RE9NU3RyaW5nTWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRBdHRyaWJ1dGVO
YW1lVG9Qcm9wZXJ0eU5hbWUpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkVsZW1lbnQ6OmZvcm1hdEZvckRlYnVnZ2VyIGNvbnN0KToKKyAgICAgICAgKiBk
b20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjp0ZXh0Q29udGVudCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzaG93Tm9kZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjp0cmF2ZXJzZVRyZWVBbmRNYXJrKToKKyAgICAgICAgKiBkb20vUG9zaXRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OmZvcm1hdEZvckRlYnVnZ2VyIGNvbnN0KToKKyAg
ICAgICAgKiBkb20vUmFuZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnRvU3RyaW5n
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpmb3JtYXRGb3JEZWJ1Z2dlciBjb25z
dCk6CisgICAgICAgICogZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjp0aHJvdHRsaW5nUmVhc29uc1RvU3RyaW5nKToKKyAgICAgICAgKiBkb20v
U2VjdXJpdHlDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5Q29udGV4dDo6
cGFyc2VTYW5kYm94UG9saWN5KToKKyAgICAgICAgKiBkb20vVGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0Ojp3aG9sZVRleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dDo6
Zm9ybWF0Rm9yRGVidWdnZXIgY29uc3QpOgorICAgICAgICAqIGRvbS9UZXh0Tm9kZVRyYXZlcnNh
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Tm9kZVRyYXZlcnNhbDo6Y29udGVudHNBc1N0
cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Tm9kZVRyYXZlcnNhbDo6Y2hpbGRUZXh0Q29u
dGVudCk6CisgICAgICAgICogZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6YWRkQmxvY2tTdHlsZSk6CisgICAgICAgICog
ZWRpdGluZy9FZGl0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN0cmluZ1dpdGhSZWJhbGFu
Y2VkV2hpdGVzcGFjZSk6CisgICAgICAgICogZWRpdGluZy9IVE1MSW50ZXJjaGFuZ2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y29udmVydEhUTUxUZXh0VG9JbnRlcmNoYW5nZUZvcm1hdCk6Cisg
ICAgICAgICogZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNYXJrdXBBY2N1bXVsYXRvcjo6c2VyaWFsaXplTm9kZXMpOgorICAgICAgICAoV2ViQ29yZTo6
TWFya3VwQWNjdW11bGF0b3I6OmdlbmVyYXRlVW5pcXVlUHJlZml4KToKKyAgICAgICAgKiBlZGl0
aW5nL1RleHRJdGVyYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwbGFpblRleHQpOgorICAg
ICAgICAqIGVkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBp
bmdDb21tYW5kOjppbnB1dEV2ZW50RGF0YVRyYW5zZmVyIGNvbnN0KToKKyAgICAgICAgKiBlZGl0
aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VmlzaWJsZVNlbGVj
dGlvbjo6Zm9ybWF0Rm9yRGVidWdnZXIgY29uc3QpOgorICAgICAgICAqIGVkaXRpbmcvY29jb2Ev
RGF0YURldGVjdGlvbi5tbToKKyAgICAgICAgKFdlYkNvcmU6OmRhdGFEZXRlY3RvclN0cmluZ0Zv
clBhdGgpOgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbToKKyAgICAg
ICAgKEhUTUxDb252ZXJ0ZXI6Ol9wcm9jZXNzVGV4dCk6CisgICAgICAgICogZWRpdGluZy9tYXJr
dXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OndyYXBX
aXRoTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6d3Jh
cFdpdGhTdHlsZU5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkTWFya3VwQWNjdW11bGF0
b3I6OnRha2VSZXN1bHRzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlZE1hcmt1cEFjY3VtdWxh
dG9yOjphcHBlbmRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnNhbml0aXplZE1hcmt1cEZvckZy
YWdtZW50SW5Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjp1cmxUb01hcmt1cCk6CisgICAg
ICAgICogZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZp
bGVSZWFkZXJMb2FkZXI6OmNvbnZlcnRUb0RhdGFVUkwpOgorICAgICAgICAqIGh0bWwvRE9NVG9r
ZW5MaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRva2VuTGlzdDo6dXBkYXRlQXNzb2Np
YXRlZEF0dHJpYnV0ZUZyb21Ub2tlbnMpOgorICAgICAgICAqIGh0bWwvRW1haWxJbnB1dFR5cGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RW1haWxJbnB1dFR5cGU6OnNhbml0aXplVmFsdWUgY29u
c3QpOgorICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxlSW5wdXRUeXBlOjpkZWZhdWx0VG9vbFRpcCBjb25zdCk6CisgICAgICAgICogaHRtbC9G
b3JtQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmb3JtU2lnbmF0dXJlKToKKyAg
ICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxBbmNob3JFbGVtZW50OjpoYW5kbGVDbGljayk6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRl
Q29udGV4dDJkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJ
bWFnZUJ1ZmZlciBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MRm9udEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6cGFyc2VGb250U2l6ZSk6CisgICAgICAgICogaHRtbC9IVE1MSW1h
Z2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OmNvbXBs
ZXRlVVJMc0luQXR0cmlidXRlVmFsdWUgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjphY3Rpb25OYW1lKToKKyAgICAgICAgKiBo
dG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPcHRpb25F
bGVtZW50Ojpjb2xsZWN0T3B0aW9uSW5uZXJUZXh0IGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hU
TUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50OjpzdHJpcHBlZFBsYWNlaG9sZGVyIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OmlubmVyVGV4dFZhbHVlRnJvbSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudDo6dmFsdWVXaXRoSGFyZExpbmVCcmVha3MgY29uc3QpOgorICAg
ICAgICAqIGh0bWwvTWVkaWFEb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURv
Y3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSk6CisgICAgICAgICogaHRtbC9N
ZWRpYUVsZW1lbnRTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlc3RyaWN0aW9uTmFt
ZSk6CisgICAgICAgICogaHRtbC9NZWRpYUZyYWdtZW50VVJJUGFyc2VyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNvbGxlY3REaWdpdHMpOgorICAgICAgICAoV2ViQ29yZTo6Y29sbGVjdEZyYWN0
aW9uKToKKyAgICAgICAgKiBodG1sL1R5cGVBaGVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpU
eXBlQWhlYWQ6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEOjpmb250IGNvbnN0KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyREJhc2U6OmdldEltYWdlRGF0YSBjb25zdCk6CisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRN
TFNvdXJjZVRyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNvdXJjZVRyYWNrZXI6
OnNvdXJjZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRva2VuaXplci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpwcm9jZXNzRW50aXR5KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUb2tlbml6ZXI6OnByb2Nlc3NUb2tlbik6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MVG9rZW5pemVyOjpidWZmZXJlZENoYXJhY3RlcnMgY29uc3QpOgorICAgICAgICAqIGh0bWwv
cGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1
aWxkZXI6OmRlZmF1bHRGb3JJblRhYmxlVGV4dCk6CisgICAgICAgICogaHRtbC9wYXJzZXIvWFNT
QXVkaXRvckRlbGVnYXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkQ29uc29sZUVycm9y
KToKKyAgICAgICAgKiBodG1sL3RyYWNrL0J1ZmZlcmVkTGluZVJlYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpCdWZmZXJlZExpbmVSZWFkZXI6Om5leHRMaW5lKToKKyAgICAgICAgKiBodG1s
L3RyYWNrL1RyYWNrQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmFja0Jhc2U6OnNldExh
bmd1YWdlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1ZUVEN1ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpWVFRDdWU6OmRldGVybWluZVRleHREaXJlY3Rpb24pOgorICAgICAgICAqIGh0bWwvdHJh
Y2svV2ViVlRUUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlZUVFBhcnNlcjo6Y3Jl
YXRlTmV3Q3VlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1dlYlZUVFRva2VuaXplci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJWVFRUb2tlbml6ZXI6Om5leHRUb2tlbik6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yU3R5bGU6OnNob3J0aGFuZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yQXBwbGlj
YXRpb25DYWNoZVJlc291cmNlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ck5ldHdvcmtBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xl
QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29uc29sZUFnZW50OjpkaWRGYWlsTG9h
ZGluZyk6CisgICAgICAgICogbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVBY2Nlc3NDb250cm9sUHJlZmxpZ2h0UmVxdWVzdCk6Cisg
ICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAq
IGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6c3RvcmUpOgorICAgICAgICAqIGxvYWRl
ci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGVn
YWN5V2ViQXJjaGl2ZTo6Y3JlYXRlRnJvbVNlbGVjdGlvbik6CisgICAgICAgICogbG9hZGVyL2Fy
Y2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdlbmVyYXRl
UmFuZG9tQm91bmRhcnkpOgorICAgICAgICAoV2ViQ29yZTo6cmVwbGFjZU5vblByaW50YWJsZUNo
YXJhY3RlcnMpOgorICAgICAgICAqIHBhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6Ondp
bmRvd1JvdW5kZWRDb3JuZXJSYWRpdXNDU1MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fw
dGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNvbG9yUHJvcGVydHlDU1MgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zVGV4
dEVkZ2VDU1MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNl
c01lZGlhQUY6OmNhcHRpb25zRGVmYXVsdEZvbnRDU1MgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zU3R5bGVTaGVldE92ZXJy
aWRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OnRyYWNrRGlzcGxheU5hbWUpOgorICAgICAg
ICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUmVnRXhwRm9yTGFi
ZWxzKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZVRyZWU6OnVuaXF1ZUNoaWxkTmFtZSBjb25zdCk6CisgICAgICAgICogcGFnZS9GcmFtZVZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpsb2dNb2NrU2Nyb2xsQW5pbWF0
b3JNZXNzYWdlIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1BhZ2VTZXJpYWxpemVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVyOjpzZXJpYWxpemVDU1NTdHlsZVNoZWV0KToK
KyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQ6OnN5bmNocm9ub3VzU2Nyb2xsaW5nUmVh
c29uc0FzU3RyaW5nKToKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luRGF0YS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE6OmRhdGFiYXNlSWRlbnRpZmllciBj
b25zdCk6CisgICAgICAgICogcGFnZS9XaGVlbEV2ZW50VGVzdFRyaWdnZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6ZHVtcFN0YXRlKToKKyAgICAgICAgKiBwYWdlL2NzcC9Db250ZW50U2VjdXJp
dHlQb2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29uc29sZU1lc3NhZ2VGb3JWaW9sYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd1J1bm5p
bmdPckRpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L0F4aXNTY3JvbGxTbmFwT2Zmc2V0cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzbmFwT2Zmc2V0
c1RvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OnNuYXBPZmZzZXRSYW5nZXNUb1N0cmluZyk6
CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnN5bmNocm9ub3VzU2Nyb2xsaW5n
UmVhc29uc0FzVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vRGVjaW1hbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEZWNpbWFsOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0v
RmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtOjplbmNvZGVGb3JG
aWxlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtOjpkZWNvZGVGcm9tRmlsZW5h
bWUpOgorICAgICAgICAqIHBsYXRmb3JtL1BPREludGVydmFsLmg6CisgICAgICAgICogcGxhdGZv
cm0vUE9EUmVkQmxhY2tUcmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpQT0RSZWRCbGFja1RyZWU6
OmR1bXBGcm9tTm9kZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vVVJMLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlVSTDo6c2V0SG9zdCk6CisgICAgICAgIChXZWJDb3JlOjpVUkw6OnNldEhv
c3RBbmRQb3J0KToKKyAgICAgICAgKFdlYkNvcmU6OnBlcmNlbnRFbmNvZGVDaGFyYWN0ZXJzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VGltaW5nRnVuY3Rpb246OmNyZWF0ZUZyb21DU1NUZXh0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZp
bGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudHMpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0NvbG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yOjpzZXJpYWxpemVk
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yOjpjc3NUZXh0IGNvbnN0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkV4dGVuZGVkQ29sb3I6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRDYXNjYWRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5vcm1hbGl6ZVNwYWNl
c0ludGVybmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250VGFnZ2VkU2V0dGlu
Z3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0xheWVyOjphbmltYXRpb25OYW1lRm9yVHJhbnNpdGlvbik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZUF0dHJp
YnV0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJv
Y2Vzc05hdGl2ZVNhbXBsZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVDb250cm9sbGVyOjpjcmVhdGVU
aWxlTGF5ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25Qb2xpY3lBc1N0cmluZyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5jcHA6CisgICAgICAg
IChQbGF0Zm9ybUNBTGF5ZXJXaW46OmxheWVyVHJlZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpWaWRlb1RleHR1cmVDb3BpZXJDVjo6aW5pdGlhbGl6ZUNvbnRleHRPYmplY3Rz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RP
cGVuR0xDb21tb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2VuZXJhdGVIYXNoZWROYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRVbm1hbmdsZWRJbmZvTG9n
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OmpvaW5QYXRobmFtZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TdHJpbmdVdGls
aXRpZXMubW06CisgICAgICAgIChXZWJDb3JlOjp3aWxkY2FyZFJlZ2V4UGF0dGVyblN0cmluZyk6
CisgICAgICAgICogcGxhdGZvcm0vbW9jay9TY3JvbGxBbmltYXRvck1vY2suY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNb2NrOjptb3VzZUVudGVyZWRTY3JvbGxiYXIgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNb2NrOjptb3VzZUV4aXRlZFNj
cm9sbGJhciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1vY2s6Om1v
dXNlSXNEb3duSW5TY3JvbGxiYXIgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svbWVk
aWFzb3VyY2UvTW9ja0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrQm94OjpwZWVrVHlw
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrVHJhY2tCb3g6Ok1vY2tUcmFja0JveCk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL1Byb3h5U2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvU3RyaW5nKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVKYXJNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpjb29raWVzRm9yU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0vcG9zaXgvRmlsZVN5
c3RlbVBPU0lYLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW06OnBhdGhCeUFwcGVu
ZGluZ0NvbXBvbmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvRGVjb2RlRXNjYXBlU2Vx
dWVuY2VzLmg6CisgICAgICAgIChXZWJDb3JlOjpVbmljb2RlMTZCaXRFc2NhcGVTZXF1ZW5jZTo6
ZGVjb2RlUnVuKToKKyAgICAgICAgKFdlYkNvcmU6OmRlY29kZUVzY2FwZVNlcXVlbmNlcyk6Cisg
ICAgICAgICogcGxhdGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpMb2NhbGU6OmNvbnZlcnRUb0xvY2FsaXplZE51bWJlcik6CisgICAgICAgIChXZWJDb3Jl
OjpMb2NhbGU6OmNvbnZlcnRGcm9tTG9jYWxpemVkTnVtYmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkxvY2FsZTo6Zm9ybWF0RGF0ZVRpbWUpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvU2VnbWVu
dGVkU3RyaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlZ21lbnRlZFN0cmluZzo6dG9TdHJp
bmcgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRDb2RlY0lDVTo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS90ZXh0L1RleHRDb2RlY1VzZXJEZWZpbmVkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRD
b2RlY1VzZXJEZWZpbmVkOjpkZWNvZGUpOgorICAgICAgICAqIHBsdWdpbnMvRE9NTWltZVR5cGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NTWltZVR5cGU6OnN1ZmZpeGVzIGNvbnN0KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6Om5hbWUgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjps
b2dMYXllckluZm8pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Omxpc3RNYXJrZXJUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxpc3RNYXJrZXI6OnBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjYXBpdGFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6Om1h
eFdvcmRGcmFnbWVudFdpZHRoKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpxdW90ZUFuZEVzY2FwZU5vblByaW50YWJsZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6bm9kZVBvc2l0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvbWF0
aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXRo
TUxGZW5jZWQ6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRp
bmcvUmVuZGVyVHJlZUJ1aWxkZXJNYXRoTUwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VHJlZUJ1aWxkZXI6Ok1hdGhNTDo6YXR0YWNoKToKKyAgICAgICAgKiBzdmcvU1ZHTGVuZ3RoTGlz
dFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGhMaXN0VmFsdWVzOjp2YWx1
ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nIGNv
bnN0KToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFN0cmluZ0J1aWxkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUGF0aFN0cmluZ0J1aWxkZXI6OnJlc3VsdCk6CisgICAgICAgICogc3ZnL1NW
R1BhdGhVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRTdHJpbmdGcm9tUGF0
aCk6CisgICAgICAgICogc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdQb2ludExpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAq
IHN2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0cmlu
Z0xpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdUcmFu
c2Zvcm1MaXN0VmFsdWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybUxpc3RW
YWx1ZXM6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zvcm1W
YWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1WYWx1ZTo6dmFsdWVBc1N0
cmluZyBjb25zdCk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UG9pbnQ+Ojp0b1N0
cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+Ojp0
b1N0cmluZyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjpkdW1wTWFya2VyUmVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6SW50
ZXJuYWxzOjpwYXJzZXJNZXRhRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Omdl
dEN1cnJlbnRDdXJzb3JJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6bWVkaWFT
ZXNzaW9uUmVzdHJpY3Rpb25zIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6
cGFnZU1lZGlhU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzY3JvbGxTbmFw
T2Zmc2V0cyk6CisgICAgICAgICogdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja1BhZ2VPdmVybGF5Q2xpZW50OjpkcmF3UmVjdCk6CisgICAg
ICAgIChXZWJDb3JlOjpNb2NrUGFnZU92ZXJsYXlDbGllbnQ6Om1vdXNlRXZlbnQpOgorICAgICAg
ICAqIHdvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlclNjcmlwdExvYWRlcjo6c2NyaXB0KToKKyAgICAgICAgKiB4bWwvWE1MRXJyb3JzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlhNTEVycm9yczo6aW5zZXJ0RXJyb3JNZXNzYWdlQmxvY2spOgor
ICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxI
dHRwUmVxdWVzdDo6Z2V0QWxsUmVzcG9uc2VIZWFkZXJzIGNvbnN0KToKKyAgICAgICAgKiB4bWwv
WE1MSHR0cFJlcXVlc3QuaDoKKyAgICAgICAgKiB4bWwvWFBhdGhGdW5jdGlvbnMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6WFBhdGg6OmF0b21pY1N1YnN0cmluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpYUGF0aDo6RnVuSWQ6OmV2YWx1YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRo
OjpGdW5Db25jYXQ6OmV2YWx1YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoOjpG
dW5UcmFuc2xhdGU6OmV2YWx1YXRlIGNvbnN0KToKKyAgICAgICAgKiB4bWwvWFNMVFByb2Nlc3Nv
ckxpYnhzbHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2F2ZVJlc3VsdFRvU3RyaW5nKToKKyAg
ICAgICAgKiB4bWwvcGFyc2VyL0NoYXJhY3RlclJlZmVyZW5jZVBhcnNlcklubGluZXMuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OnVuY29uc3VtZUNoYXJhY3RlcnMpOgorCiAyMDE4LTA0LTI1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgTmV0d29ya0xvYWRD
aGVja2VyIGZvciBhbGwgc3VicmVzb3VyY2UgbG9hZHMgZXhjZXB0IGZldGNoL1hIUgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50Q29udGFj
dENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50
Q29udGFjdENvY29hLm1tCmluZGV4IDNiZTYyMTAuLjA5Nzg0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudENvbnRhY3RDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRDb250YWN0
Q29jb2EubW0KQEAgLTE1NCw3ICsxNTQsMTAgQEAgc3RhdGljIFJldGFpblB0cjxQS0NvbnRhY3Q+
IGNvbnZlcnQodW5zaWduZWQgdmVyc2lvbiwgY29uc3QgQXBwbGVQYXlQYXltZW50Q29udGEKICAg
ICAgICAgfQogCiAgICAgICAgIC8vIEZJWE1FOiBTdHJpbmdCdWlsZGVyIHNob3VsZCBoYXZhIGEg
dG9OU1N0cmluZygpIGZ1bmN0aW9uIHRvIGF2b2lkIHRoZSBleHRyYSBTdHJpbmcgYWxsb2NhdGlv
bi4KLSAgICAgICAgW2FkZHJlc3Mgc2V0U3RyZWV0OmJ1aWxkZXIudG9TdHJpbmcoKV07CisgICAg
ICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIFth
ZGRyZXNzIHNldFN0cmVldDoqc3RyaW5nXTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JB
U0goKTsKIAogICAgICAgICBpZiAoIWNvbnRhY3Quc3ViTG9jYWxpdHkuaXNFbXB0eSgpKQogICAg
ICAgICAgICAgc2V0U3ViTG9jYWxpdHkoYWRkcmVzcy5nZXQoKSwgY29udGFjdC5zdWJMb2NhbGl0
eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9NRmls
ZVN5c3RlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9NRmlsZVN5
c3RlbS5jcHAKaW5kZXggOGU1MDY2ZC4uOWIzNjBhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcApAQCAtMjE2LDcgKzIxNiw5
IEBAIHN0YXRpYyBTdHJpbmcgcmVzb2x2ZVJlbGF0aXZlVmlydHVhbFBhdGgoU3RyaW5nVmlldyBi
YXNlVmlydHVhbFBhdGgsIFN0cmluZ1ZpZXcKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJy8nKTsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoc2VnbWVudCk7CiAgICAgfQotICAgIHJldHVybiBidWls
ZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiAvLyBodHRwczov
L3dpY2cuZ2l0aHViLmlvL2VudHJpZXMtYXBpLyNldmFsdWF0ZS1hLXBhdGgKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKaW5kZXggZGNi
ZjcwMy4uNmNhYWM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9HZW9sb2NhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9HZW9sb2NhdGlvbi5jcHAKQEAgLTM0MCw3ICszNDAsMTAgQEAgc3RhdGljIHZvaWQgbG9n
RXJyb3IoY29uc3QgU3RyaW5nJiB0YXJnZXQsIGNvbnN0IGJvb2wgaXNTZWN1cmUsIGNvbnN0IGJv
b2wgaXNNaXgKICAgICAKICAgICBtZXNzYWdlLmFwcGVuZCh0YXJnZXQpOwogICAgIG1lc3NhZ2Uu
YXBwZW5kKCIuXG4iKTsKLSAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UudG9TdHJpbmcoKSk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWVzc2FnZS50b1N0cmluZygpKQorICAgICAgICBkb2N1
bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VM
ZXZlbDo6RXJyb3IsICpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAog
Ly8gRklYTUU6IHJlbW92ZSB0aGlzIGZ1bmN0aW9uIHdoZW4gcmRhcjovL3Byb2JsZW0vMzIxMzc4
MjEgaXMgZml4ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJLZXlEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktl
eURhdGEuY3BwCmluZGV4IDJlOTM2NDUuLjcyMTI5NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwCkBAIC0zMzIsNyArMzMyLDEwIEBAIFN0
cmluZyBJREJLZXlEYXRhOjpsb2dnaW5nU3RyaW5nKCkgY29uc3QKICAgICAgICAgICAgICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgIik7CiAgICAgICAgIH0KICAgICAgICAgYnVpbGRlci5h
cHBlbmRMaXRlcmFsKCIgfSIpOwotICAgICAgICByZXN1bHQgPSBidWlsZGVyLnRvU3RyaW5nKCk7
CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
ICAgIHJlc3VsdCA9ICpzdHJpbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEtleVR5cGU6OkJpbmFyeTogewpAQCAt
MzQyLDcgKzM0NSwxMCBAQCBTdHJpbmcgSURCS2V5RGF0YTo6bG9nZ2luZ1N0cmluZygpIGNvbnN0
CiAgICAgICAgIGF1dG8qIGRhdGEgPSBXVEY6OmdldDxUaHJlYWRTYWZlRGF0YUJ1ZmZlcj4obV92
YWx1ZSkuZGF0YSgpOwogICAgICAgICBpZiAoIWRhdGEpIHsKICAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCIobnVsbCkiKTsKLSAgICAgICAgICAgIHJlc3VsdCA9IGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgICAgICByZXN1bHQgPSAqc3RyaW5nOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCkBAIC0z
NTMsNyArMzU5LDEwIEBAIFN0cmluZyBJREJLZXlEYXRhOjpsb2dnaW5nU3RyaW5nKCkgY29uc3QK
ICAgICAgICAgaWYgKGRhdGEtPnNpemUoKSA+IDgpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZCgiLi4uIik7CiAKLSAgICAgICAgcmVzdWx0ID0gYnVpbGRlci50b1N0cmluZygpOworICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXN1
bHQgPSAqc3RyaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAg
ICBicmVhazsKICAgICB9CiAgICAgY2FzZSBLZXlUeXBlOjpTdHJpbmc6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlQYXRoLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBhdGguY3BwCmluZGV4IDc2ZWJlYjMuLjhi
OWZiMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktl
eVBhdGguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBh
dGguY3BwCkBAIC0yNDEsNyArMjQxLDkgQEAgU3RyaW5nIGxvZ2dpbmdTdHJpbmcoY29uc3QgSURC
S2V5UGF0aCYgcGF0aCkKICAgICAgICAgYnVpbGRlci5hcHBlbmQoc3RyaW5ncy5sYXN0KCkpOwog
ICAgICAgICBidWlsZGVyLmFwcGVuZCgiID4iKTsKIAotICAgICAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9KTsK
IAogICAgIHJldHVybiBXVEY6OnZpc2l0KHZpc2l0b3IsIHBhdGgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0luZGV4VmFsdWVTdG9yZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSW5kZXhWYWx1ZVN0b3Jl
LmNwcAppbmRleCA2OTgzYzlkLi44MGQ2YjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSW5kZXhWYWx1ZVN0b3JlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSW5kZXhWYWx1ZVN0b3JlLmNwcApAQCAt
NDA5LDcgKzQwOSw5IEBAIFN0cmluZyBJbmRleFZhbHVlU3RvcmU6OmxvZ2dpbmdTdHJpbmcoKSBj
b25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX3JlY29yZHMuZ2V0KGtleSktPmdl
dENvdW50KCkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiBlbnRyaWVzIik7CiAg
ICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9TUUxpdGVJREJDdXJzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1cnNvci5jcHAKaW5kZXggZjIwZGI4Ny4uYTRj
MzBmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L1NRTGl0ZUlEQkN1cnNvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL1NRTGl0ZUlEQkN1cnNvci5jcHAKQEAgLTE0MSw3ICsxNDEsOSBAQCBzdGF0aWMg
U3RyaW5nIGJ1aWxkSW5kZXhTdGF0ZW1lbnQoY29uc3QgSURCS2V5UmFuZ2VEYXRhJiBrZXlSYW5n
ZSwgSW5kZXhlZERCOjpDdQogCiAgICAgYnVpbGRlci5hcHBlbmQoJzsnKTsKIAotICAgIHJldHVy
biBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0
aWMgU3RyaW5nIGJ1aWxkT2JqZWN0U3RvcmVTdGF0ZW1lbnQoY29uc3QgSURCS2V5UmFuZ2VEYXRh
JiBrZXlSYW5nZSwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24gY3Vyc29yRGlyZWN0aW9uKQpA
QCAtMTY5LDcgKzE3MSw5IEBAIHN0YXRpYyBTdHJpbmcgYnVpbGRPYmplY3RTdG9yZVN0YXRlbWVu
dChjb25zdCBJREJLZXlSYW5nZURhdGEmIGtleVJhbmdlLCBJbmRleGVkCiAKICAgICBidWlsZGVy
LmFwcGVuZCgnOycpOwogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgU1FMaXRlSURCQ3Vyc29yOjplc3RhYmxpc2hTdGF0
ZW1lbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0lEQkRhdGFiYXNlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zaGFyZWQvSURCRGF0YWJhc2VJbmZvLmNwcAppbmRleCBlNWRmMTVjLi43NjkzNGQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJh
c2VJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCRGF0YWJhc2VJbmZvLmNwcApAQCAtMTY5LDcgKzE2OSw5IEBAIFN0cmluZyBJREJEYXRhYmFz
ZUluZm86OmxvZ2dpbmdTdHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4n
KTsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCT2JqZWN0U3RvcmVJbmZvLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8uY3BwCmluZGV4
IGIwMDc1ZmUuLjhkOGZhZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8uY3BwCkBAIC0xNDgs
NyArMTQ4LDkgQEAgU3RyaW5nIElEQk9iamVjdFN0b3JlSW5mbzo6bG9nZ2luZ1N0cmluZyhpbnQg
aW5kZW50KSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKICAgICB9CiAKLSAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogU3RyaW5nIElEQk9iamVjdFN0b3JlSW5mbzo6Y29uZGVuc2VkTG9nZ2luZ1N0cmluZygpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNz
aW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCmluZGV4IDQyMDlmZmEuLjk2ZmViYzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vz
c2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCkBAIC04OSw3ICs4OSw5IEBAIHN0YXRpYyBTdHJp
bmcgbWVkaWFQcm9kdWNlclN0YXRlU3RyaW5nKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBmbGFncykKICAgICBlbHNlCiAgICAgICAgIHN0cmluZy5yZXNpemUoc3RyaW5nLmxlbmd0aCgp
IC0gMik7CiAKLSAgICByZXR1cm4gc3RyaW5nLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3Ry
ID0gc3RyaW5nLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyOworICAgIENSQVNIKCk7
CiB9CiAjZW5kaWYKIApAQCAtMzgxLDcgKzM4Myw5IEBAIFN0cmluZyBXZWJNZWRpYVNlc3Npb25N
YW5hZ2VyOjp0b1N0cmluZyhDb25maWd1cmF0aW9uVGFza3MgdGFza3MpCiAgICAgZWxzZQogICAg
ICAgICBzdHJpbmcucmVzaXplKHN0cmluZy5sZW5ndGgoKSAtIDIpOwogICAgIAotICAgIHJldHVy
biBzdHJpbmcudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHIgPSBzdHJpbmcudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHI7CisgICAgQ1JBU0goKTsKIH0KICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9u
QmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25u
ZWN0aW9uQmFja2VuZC5jcHAKaW5kZXggZGM1MWJiNS4uZGJlY2Q1ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25C
YWNrZW5kLmNwcApAQCAtNDAzLDcgKzQwMyw5IEBAIHN0YXRpYyBTdHJpbmcgZmlsdGVySUNFQ2Fu
ZGlkYXRlKFN0cmluZyYmIHNkcCkKICAgICAgICAgICAgIGZpbHRlcmVkU0RQLmFwcGVuZCgnICcp
OwogICAgICAgICBmaWx0ZXJlZFNEUC5hcHBlbmQoaXRlbSk7CiAgICAgfSk7Ci0gICAgcmV0dXJu
IGZpbHRlcmVkU0RQLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gZmlsdGVyZWRT
RFAudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogU3RyaW5nIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6ZmlsdGVyU0RQKFN0cmluZyYmIHNkcCkg
Y29uc3QKQEAgLTQyMSw3ICs0MjMsOSBAQCBTdHJpbmcgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpm
aWx0ZXJTRFAoU3RyaW5nJiYgc2RwKSBjb25zdAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICBmaWx0ZXJlZFNEUC5hcHBlbmQoJ1xuJyk7CiAgICAgfSk7Ci0gICAgcmV0dXJuIGZpbHRlcmVk
U0RQLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gZmlsdGVyZWRTRFAudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBQ
ZWVyQ29ubmVjdGlvbkJhY2tlbmQ6Om5ld0lDRUNhbmRpZGF0ZShTdHJpbmcmJiBzZHAsIFN0cmlu
ZyYmIG1pZCwgdW5zaWduZWQgc2hvcnQgc2RwTUxpbmVJbmRleCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5j
cHAKaW5kZXggYzkxNzFkYy4uNDI3ZjRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAKQEAgLTMz
Myw3ICszMzMsOSBAQCBTdHJpbmcgWW91VHViZVBsdWdpblJlcGxhY2VtZW50Ojp5b3VUdWJlVVJM
RnJvbUFic29sdXRlVVJMKGNvbnN0IFVSTCYgc3JjVVJMLCBjbwogICAgICAgICBmaW5hbFVSTC5h
cHBlbmQoJz8nKTsKICAgICAgICAgZmluYWxVUkwuYXBwZW5kKHF1ZXJ5KTsKICAgICB9Ci0gICAg
cmV0dXJuIGZpbmFsVVJMLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gZmluYWxV
UkwudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
ICAgICAKIGJvb2wgWW91VHViZVBsdWdpblJlcGxhY2VtZW50OjpzdXBwb3J0c1VSTChjb25zdCBV
UkwmIHVybCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VUcmFja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VUcmFja2VyLmNwcAppbmRleCA4ZmRhNjJhLi45OGYzMDhkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3Bw
CkBAIC0zMjAsNyArMzIwLDkgQEAgc3RhdGljIFN0cmluZyBnZW5lcmF0ZURhdGFiYXNlRmlsZU5h
bWUoKQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmco
KSk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIuZGIiKTsKIAotICAgIHJldHVy
biBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5n
QnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogCiBTdHJpbmcgRGF0YWJhc2VUcmFja2VyOjpmdWxsUGF0aEZvckRhdGFiYXNlTm9Mb2Nr
KGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJv
b2wgY3JlYXRlSWZOb3RFeGlzdHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuY3BwCmluZGV4IDAyNDc3YjkuLmVhYjI1MzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCkBAIC0xMDUsNyArMTA1
LDkgQEAgc3RhdGljIFN0cmluZyBlbmNvZGVQcm90b2NvbFN0cmluZyhjb25zdCBTdHJpbmcmIHBy
b3RvY29sKQogICAgICAgICBlbHNlCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChwcm90b2Nv
bFtpXSk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIGpvaW5TdHJpbmdzKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBzdHJpbmdzLCBjb25zdCBjaGFyKiBzZXBhcmF0b3IpCkBAIC0xMTYsNyArMTE4
LDkgQEAgc3RhdGljIFN0cmluZyBqb2luU3RyaW5ncyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3Ry
aW5ncywgY29uc3QgY2hhciogc2VwYXJhdG9yKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQo
c2VwYXJhdG9yKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoc3RyaW5nc1tpXSk7CiAgICAgfQot
ICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiBzdGF0aWMgdW5zaWduZWQgc2F0dXJhdGVBZGQodW5zaWduZWQgYSwgdW5zaWduZWQgYikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRF
eHRlbnNpb25EaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcAppbmRleCBmY2M5ZGMzLi42YzQwYzQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwCkBAIC02OCw3ICs2OCw5IEBA
IGNvbnN0IFN0cmluZyBXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyOjpjcmVhdGVIZWFkZXJW
YWx1ZSgpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKICAgICAg
ICAgYnVpbGRlci5hcHBlbmQobV9wcm9jZXNzb3JzW2ldLT5oYW5kc2hha2VTdHJpbmcoKSk7CiAg
ICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiB2b2lkIFdlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OmFwcGVuZEFjY2Vw
dGVkRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uVG9rZW4sIEhhc2hNYXA8U3RyaW5n
LCBTdHJpbmc+JiBleHRlbnNpb25QYXJhbWV0ZXJzKQpAQCAtMTM5LDcgKzE0MSw5IEBAIFN0cmlu
ZyBXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyOjphY2NlcHRlZEV4dGVuc2lvbnMoKSBjb25z
dAogewogICAgIGlmIChtX2FjY2VwdGVkRXh0ZW5zaW9uc0J1aWxkZXIuaXNFbXB0eSgpKQogICAg
ICAgICByZXR1cm4gU3RyaW5nKCk7Ci0gICAgcmV0dXJuIG1fYWNjZXB0ZWRFeHRlbnNpb25zQnVp
bGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBt
X2FjY2VwdGVkRXh0ZW5zaW9uc0J1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpCisg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBXZWJTb2Nr
ZXRFeHRlbnNpb25EaXNwYXRjaGVyOjpmYWlsdXJlUmVhc29uKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5j
cHAKaW5kZXggNTQ1NWNkMS4uMDgzYTkwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAKQEAgLTcyLDEwICs3
MiwxMyBAQCBzdGF0aWMgU3RyaW5nIHJlc291cmNlTmFtZShjb25zdCBVUkwmIHVybCkKICAgICAg
ICAgbmFtZS5hcHBlbmQoJz8nKTsKICAgICAgICAgbmFtZS5hcHBlbmQodXJsLnF1ZXJ5KCkpOwog
ICAgIH0KLSAgICBTdHJpbmcgcmVzdWx0ID0gbmFtZS50b1N0cmluZygpOwotICAgIEFTU0VSVCgh
cmVzdWx0LmlzRW1wdHkoKSk7Ci0gICAgQVNTRVJUKCFyZXN1bHQuY29udGFpbnMoJyAnKSk7Ci0g
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBuYW1lLnRvU3RyaW5nKCkp
IHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9ICpzdHJpbmc7CisgICAgICAgIEFTU0VSVCghcmVz
dWx0LmlzRW1wdHkoKSk7CisgICAgICAgIEFTU0VSVCghcmVzdWx0LmNvbnRhaW5zKCcgJykpOwor
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMg
U3RyaW5nIGhvc3ROYW1lKGNvbnN0IFVSTCYgdXJsLCBib29sIHNlY3VyZSkKQEAgLTg3LDcgKzkw
LDkgQEAgc3RhdGljIFN0cmluZyBob3N0TmFtZShjb25zdCBVUkwmIHVybCwgYm9vbCBzZWN1cmUp
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCc6Jyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVt
YmVyKHVybC5wb3J0KCkudmFsdWUoKSk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgY29uc3Qgc2l6ZV90
IG1heElucHV0U2FtcGxlU2l6ZSA9IDEyODsKQEAgLTE3Niw3ICsxODEsOSBAQCBTdHJpbmcgV2Vi
U29ja2V0SGFuZHNoYWtlOjpjbGllbnRMb2NhdGlvbigpIGNvbnN0CiAgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCI6Ly8iKTsKICAgICBidWlsZGVyLmFwcGVuZChob3N0TmFtZShtX3VybCwgbV9z
ZWN1cmUpKTsKICAgICBidWlsZGVyLmFwcGVuZChyZXNvdXJjZU5hbWUobV91cmwpKTsKLSAgICBy
ZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAog
Q1N0cmluZyBXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudEhhbmRzaGFrZU1lc3NhZ2UoKSBjb25z
dApAQCAtMjI2LDcgKzIzMyw5IEBAIENTdHJpbmcgV2ViU29ja2V0SGFuZHNoYWtlOjpjbGllbnRI
YW5kc2hha2VNZXNzYWdlKCkgY29uc3QKIAogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXHJc
biIpOwogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gc3RyaW5nLT51
dGY4KCk7CisgICAgQ1JBU0goKTsKIH0KIAogUmVzb3VyY2VSZXF1ZXN0IFdlYlNvY2tldEhhbmRz
aGFrZTo6Y2xpZW50SGFuZHNoYWtlUmVxdWVzdCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4
IGRiODU3NWUuLmM0YTI1MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCkBAIC0xNzEzLDExICsxNzEzLDEz
IEBAIHN0YXRpYyBib29sIHNob3VsZFVzZUFjY2Vzc2liaWxpdHlPYmplY3RJbm5lclRleHQoQWNj
ZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBY2NlCiAKIHN0YXRpYyBib29sIHNob3VsZEFkZFNwYWNl
QmVmb3JlQXBwZW5kaW5nTmV4dEVsZW1lbnQoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgY29uc3Qg
U3RyaW5nJiBjaGlsZFRleHQpCiB7CisgICAgaWYgKGJ1aWxkZXIuZmFpbGVkKCkpCisgICAgICAg
IENSQVNIKCk7CisKICAgICBpZiAoIWJ1aWxkZXIubGVuZ3RoKCkgfHwgIWNoaWxkVGV4dC5sZW5n
dGgoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBh
ZGQgYW4gYWRkaXRpb25hbCBzcGFjZSBiZWZvcmUgb3IgYWZ0ZXIgYSBsaW5lIGJyZWFrLgotICAg
IHJldHVybiAhKGlzSFRNTExpbmVCcmVhayhjaGlsZFRleHRbMF0pIHx8IGlzSFRNTExpbmVCcmVh
ayhidWlsZGVyW2J1aWxkZXIubGVuZ3RoKCkgLSAxXSkpOworICAgIHJldHVybiAhKGlzSFRNTExp
bmVCcmVhayhjaGlsZFRleHRbMF0pIHx8IGlzSFRNTExpbmVCcmVhaygqYnVpbGRlcltidWlsZGVy
Lmxlbmd0aCgpIC0gMV0pKTsKIH0KICAgICAKIHN0YXRpYyB2b2lkIGFwcGVuZE5hbWVUb1N0cmlu
Z0J1aWxkZXIoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAt
MTc2OSw3ICsxNzcxLDkgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp0ZXh0VW5k
ZXJFbGVtZW50KEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVtZW50TW8KICAgICAgICAgICAgIGFw
cGVuZE5hbWVUb1N0cmluZ0J1aWxkZXIoYnVpbGRlciwgY2hpbGRUZXh0KTsKICAgICB9CiAKLSAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpLnN0cmlwV2hpdGVTcGFjZSgpLnNpbXBsaWZ5V2hp
dGVTcGFjZShpc0hUTUxTcGFjZUJ1dE5vdExpbmVCcmVhayk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gc3RyaW5nLT5zdHJpcFdoaXRl
U3BhY2UoKS5zaW1wbGlmeVdoaXRlU3BhY2UoaXNIVE1MU3BhY2VCdXROb3RMaW5lQnJlYWspOwor
ICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dGl0bGUo
KSBjb25zdApAQCAtMTk4NSw3ICsxOTg5LDkgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0OjphY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25Gb3JDaGlsZHJlbigpIGNvbnN0CiAgICAgICAg
IH0KICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjphY2Nlc3Np
YmlsaXR5RGVzY3JpcHRpb25Gb3JFbGVtZW50cyhWZWN0b3I8RWxlbWVudCo+ICZlbGVtZW50cykg
Y29uc3QKQEAgLTE5OTQsNyArMjAwMCw5IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dDo6YWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uRm9yRWxlbWVudHMoVmVjdG9yPEVsZW1lCiAgICAg
dW5zaWduZWQgc2l6ZSA9IGVsZW1lbnRzLnNpemUoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgc2l6ZTsgKytpKQogICAgICAgICBhcHBlbmROYW1lVG9TdHJpbmdCdWlsZGVyKGJ1aWxk
ZXIsIGFjY2Vzc2libGVOYW1lRm9yTm9kZShlbGVtZW50c1tpXSwgbm9kZSgpKSk7Ci0gICAgcmV0
dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0
cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YXJpYURlc2NyaWJlZEJ5QXR0cmlidXRlKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuY3BwCmluZGV4IDE5MjgxNzIuLjdjOGQ5OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtMTM4OCw4
ICsxMzg4LDEwIEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdHJpbmdGb3JSYW5nZShS
ZWZQdHI8UmFuZ2U+IHJhbmdlKSBjb25zdAogICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyKTsKICAgICAgICAgfQogICAgIH0KLSAgICAKLSAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworCisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3RyaW5nRm9yVmlzaWJsZVBvc2l0aW9u
UmFuZ2UoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2UmIHZpc2libGVQb3NpdGlvblJhbmdlKQpA
QCAtMTQxNSw3ICsxNDE3LDkgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN0cmluZ0Zv
clZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3NpdGlvblIKICAgICAgICAgfQog
ICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBD
UkFTSCgpOwogfQogCiBpbnQgQWNjZXNzaWJpbGl0eU9iamVjdDo6bGVuZ3RoRm9yVmlzaWJsZVBv
c2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2UmIHZpc2libGVQb3NpdGlvblJh
bmdlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCBh
MTAyZDM2Li45MzJkMTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bQpAQCAtMjQwOSw3ICsyNDA5LDkgQEAgLSAoTlNTdHJpbmcgKil2YWx1ZURlc2NyaXB0aW9uRm9y
TWV0ZXIKICAgICAgICAgaWYgKGJ1aWxkZXIubGVuZ3RoKCkpCiAgICAgICAgICAgICBidWlsZGVy
LmFwcGVuZExpdGVyYWwoIiwgIik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGdhdWdlUmVnaW9u
VmFsdWUpOwotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAo
YXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAjZW5kaWYKICAgICByZXR1cm4gdmFsdWVE
ZXNjcmlwdGlvbjsKQEAgLTM4NzMsOCArMzg3NSwxMSBAQCBzdGF0aWMgdm9pZCBmb3JtYXRGb3JE
ZWJ1Z2dlcihjb25zdCBWaXNpYmxlUG9zaXRpb25SYW5nZSYgcmFuZ2UsIGNoYXIqIGJ1ZmZlciwg
dQogICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCIgdG8gIik7CiAgICAgcmFuZ2UuZW5kLmZvcm1h
dEZvckRlYnVnZ2VyKGZvcm1hdCwgRm9ybWF0QnVmZmVyU2l6ZSk7CiAgICAgcmVzdWx0LmFwcGVu
ZChmb3JtYXQpOwotICAgIAotICAgIHN0cmxjcHkoYnVmZmVyLCByZXN1bHQudG9TdHJpbmcoKS51
dGY4KCkuZGF0YSgpLCBsZW5ndGgpOworCisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRv
U3RyaW5nKCkpCisgICAgICAgIHN0cmxjcHkoYnVmZmVyLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCks
IGxlbmd0aCk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFN0cmluZ3MuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0U3RyaW5ncy5jcHAKaW5k
ZXggN2QyZGUxOC4uMWUwNGExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01Db252ZXJ0U3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01Db252ZXJ0U3RyaW5ncy5jcHAKQEAgLTkxLDcgKzkxLDkgQEAgc3RhdGljIGlubGlu
ZSBTdHJpbmcgc3RyaW5nVG9VU1ZTdHJpbmcoU3RyaW5nJiYgc3RyaW5nKQogICAgICAgICBlbHNl
CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGNvZGVQb2ludCk7CiAgICAgfQotICAgIHJldHVy
biByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5n
IGlkZW50aWZpZXJUb1VTVlN0cmluZyhFeGVjU3RhdGUmLCBjb25zdCBJZGVudGlmaWVyJiBpZGVu
dGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNl
cHRpb25IYW5kbGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2Vw
dGlvbkhhbmRsaW5nLmNwcAppbmRleCA4OTVhMzAwLi4wN2ZiNzM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcApAQCAt
MjExLDcgKzIxMSw5IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgdGhyb3dBcmd1bWVudE11c3RCZUVu
dW1FcnJvcihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6VGhyCiAgICAgYXBwZW5kQXJndW1l
bnRNdXN0QmUoYnVpbGRlciwgYXJndW1lbnRJbmRleCwgYXJndW1lbnROYW1lLCBmdW5jdGlvbklu
dGVyZmFjZU5hbWUsIGZ1bmN0aW9uTmFtZSk7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJv
bmUgb2Y6ICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKGV4cGVjdGVkVmFsdWVzKTsKLSAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcigmc3RhdGUsIHNjb3BlLCBidWlsZGVyLnRvU3RyaW5nKCkpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoJnN0YXRlLCBzY29wZSwgKnN0cmluZyk7CisgICAgQ1JBU0goKTsK
IH0KIAogSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd0FyZ3VtZW50TXVzdEJlRnVuY3Rpb25FcnJv
cihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6VGhyb3dTY29wZSYgc2NvcGUsIHVuc2lnbmVk
IGFyZ3VtZW50SW5kZXgsIGNvbnN0IGNoYXIqIGFyZ3VtZW50TmFtZSwgY29uc3QgY2hhciogaW50
ZXJmYWNlTmFtZSwgY29uc3QgY2hhciogZnVuY3Rpb25OYW1lKQpAQCAtMjE5LDcgKzIyMSw5IEBA
IEpTQzo6RW5jb2RlZEpTVmFsdWUgdGhyb3dBcmd1bWVudE11c3RCZUZ1bmN0aW9uRXJyb3IoSlND
OjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAg
IGFwcGVuZEFyZ3VtZW50TXVzdEJlKGJ1aWxkZXIsIGFyZ3VtZW50SW5kZXgsIGFyZ3VtZW50TmFt
ZSwgaW50ZXJmYWNlTmFtZSwgZnVuY3Rpb25OYW1lKTsKICAgICBidWlsZGVyLmFwcGVuZExpdGVy
YWwoImEgZnVuY3Rpb24iKTsKLSAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcigmc3RhdGUsIHNj
b3BlLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoJnN0YXRlLCBzY29w
ZSwgKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJv
d0FyZ3VtZW50VHlwZUVycm9yKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpUaHJvd1Njb3Bl
JiBzY29wZSwgdW5zaWduZWQgYXJndW1lbnRJbmRleCwgY29uc3QgY2hhciogYXJndW1lbnROYW1l
LCBjb25zdCBjaGFyKiBmdW5jdGlvbkludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9u
TmFtZSwgY29uc3QgY2hhciogZXhwZWN0ZWRUeXBlKQpAQCAtMjI4LDcgKzIzMiw5IEBAIEpTQzo6
RW5jb2RlZEpTVmFsdWUgdGhyb3dBcmd1bWVudFR5cGVFcnJvcihKU0M6OkV4ZWNTdGF0ZSYgc3Rh
dGUsIEpTQzo6VGhyb3dTY29wCiAgICAgYXBwZW5kQXJndW1lbnRNdXN0QmUoYnVpbGRlciwgYXJn
dW1lbnRJbmRleCwgYXJndW1lbnROYW1lLCBmdW5jdGlvbkludGVyZmFjZU5hbWUsIGZ1bmN0aW9u
TmFtZSk7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJhbiBpbnN0YW5jZSBvZiAiKTsKICAg
ICBidWlsZGVyLmFwcGVuZChleHBlY3RlZFR5cGUpOwotICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKCZzdGF0ZSwgc2NvcGUsIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cigmc3RhdGUsIHNjb3BlLCAqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIHRocm93
QXR0cmlidXRlVHlwZUVycm9yKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpUaHJvd1Njb3Bl
JiBzY29wZSwgY29uc3QgY2hhciogaW50ZXJmYWNlTmFtZSwgY29uc3QgY2hhciogYXR0cmlidXRl
TmFtZSwgY29uc3QgY2hhciogZXhwZWN0ZWRUeXBlKQpAQCAtMjQ1LDcgKzI1MSw5IEBAIEpTQzo6
RW5jb2RlZEpTVmFsdWUgdGhyb3dSZXF1aXJlZE1lbWJlclR5cGVFcnJvcihKU0M6OkV4ZWNTdGF0
ZSYgc3RhdGUsIEpTQzo6VGhyCiAgICAgYnVpbGRlci5hcHBlbmQobWVtYmVyTmFtZSk7CiAgICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYW4gaW5zdGFu
Y2Ugb2YgIik7CiAgICAgYnVpbGRlci5hcHBlbmQoZXhwZWN0ZWRUeXBlKTsKLSAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcigmc3RhdGUsIHNjb3BlLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoJnN0YXRlLCBzY29wZSwgKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0K
IAogSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd0NvbnN0cnVjdG9yU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dFVuYXZhaWxhYmxlRXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OlRocm93U2Nv
cGUmIHNjb3BlLCBjb25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29tYmluZWRVUkxGaWx0ZXJzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5jcHAKaW5kZXgg
NzU1OGIyMi4uMjlkZTUwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVu
c2lvbnMvQ29tYmluZWRVUkxGaWx0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50
ZXh0ZW5zaW9ucy9Db21iaW5lZFVSTEZpbHRlcnMuY3BwCkBAIC0xMDcsNyArMTA3LDkgQEAgc3Rh
dGljIFN0cmluZyBwcmVmaXhUcmVlVmVydGV4VG9TdHJpbmcoY29uc3QgUHJlZml4VHJlZVZlcnRl
eCYgdmVydGV4LCBjb25zdCBIYXMKICAgICAgICAgfQogICAgIH0KICAgICBidWlsZGVyLmFwcGVu
ZCgnXG4nKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogc3RhdGljIHZvaWQgcmVjdXJzaXZlUHJpbnQoY29uc3QgUHJlZml4VHJl
ZVZlcnRleCYgdmVydGV4LCBjb25zdCBIYXNoTWFwPGNvbnN0IFByZWZpeFRyZWVWZXJ0ZXgqLCBB
Y3Rpb25MaXN0PiYgYWN0aW9ucywgdW5zaWduZWQgZGVwdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb24uY3BwCmluZGV4IDYxMGUx
YjguLjhlNTBmZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25z
L0NvbnRlbnRFeHRlbnNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb24uY3BwCkBAIC0xMTAsOCArMTEwLDExIEBAIHZvaWQgQ29udGVu
dEV4dGVuc2lvbjo6Y29tcGlsZUdsb2JhbERpc3BsYXlOb25lU3R5bGVTaGVldCgpCiAKICAgICBt
X2dsb2JhbERpc3BsYXlOb25lU3R5bGVTaGVldCA9IFN0eWxlU2hlZXRDb250ZW50czo6Y3JlYXRl
KCk7CiAgICAgbV9nbG9iYWxEaXNwbGF5Tm9uZVN0eWxlU2hlZXQtPnNldElzVXNlclN0eWxlU2hl
ZXQodHJ1ZSk7Ci0gICAgaWYgKCFtX2dsb2JhbERpc3BsYXlOb25lU3R5bGVTaGVldC0+cGFyc2VT
dHJpbmcoY3NzLnRvU3RyaW5nKCkpKQotICAgICAgICBtX2dsb2JhbERpc3BsYXlOb25lU3R5bGVT
aGVldCA9IG51bGxwdHI7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gY3NzLnRvU3RyaW5nKCkpIHsK
KyAgICAgICAgaWYgKCFtX2dsb2JhbERpc3BsYXlOb25lU3R5bGVTaGVldC0+cGFyc2VTdHJpbmco
KnN0cmluZykpCisgICAgICAgICAgICBtX2dsb2JhbERpc3BsYXlOb25lU3R5bGVTaGVldCA9IG51
bGxwdHI7CisgICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAgICAvLyBUaGVzZSBhY3Rp
b25zIGRvbid0IG5lZWQgdG8gYmUgYXBwbGllZCBpbmRpdmlkdWFsbHkgYW55IG1vcmUuIFRoZXkg
d2lsbCBhbGwgYmUgYXBwbGllZCB0byBldmVyeSBwYWdlIGFzIGEgcHJlY29tcGlsZWQgc3R5bGUg
c2hlZXQuCiAgICAgbV91bml2ZXJzYWxBY3Rpb25zV2l0aG91dENvbmRpdGlvbnMucmVtb3ZlQWxs
TWF0Y2hpbmcoaW5HbG9iYWxEaXNwbGF5Tm9uZVN0eWxlU2hlZXQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21w
aWxlci5jcHAKaW5kZXggNWUwMzVhNi4uNWMzN2VmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIu
Y3BwCkBAIC04MCw3ICs4MCwxMCBAQCBzdGF0aWMgdm9pZCByZXNvbHZlUGVuZGluZ0Rpc3BsYXlO
b25lQWN0aW9ucyhWZWN0b3I8U2VyaWFsaXplZEFjdGlvbkJ5dGU+JiBhY3RpbwogICAgIGZvciAo
YXV0byYgcGVuZGluZ0Rpc3BsYXlOb25lQWN0aW9ucyA6IG1hcC52YWx1ZXMoKSkgewogICAgICAg
ICB1aW50MzJfdCBhY3Rpb25Mb2NhdGlvbiA9IGFjdGlvbnMuc2l6ZSgpOwogICAgICAgICBhY3Rp
b25zLmFwcGVuZChzdGF0aWNfY2FzdDxTZXJpYWxpemVkQWN0aW9uQnl0ZT4oQWN0aW9uVHlwZTo6
Q1NTRGlzcGxheU5vbmVTZWxlY3RvcikpOwotICAgICAgICBzZXJpYWxpemVTdHJpbmcoYWN0aW9u
cywgcGVuZGluZ0Rpc3BsYXlOb25lQWN0aW9ucy5jb21iaW5lZFNlbGVjdG9ycy50b1N0cmluZygp
KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcGVuZGluZ0Rpc3BsYXlOb25lQWN0aW9ucy5j
b21iaW5lZFNlbGVjdG9ycy50b1N0cmluZygpKQorICAgICAgICAgICAgc2VyaWFsaXplU3RyaW5n
KGFjdGlvbnMsICpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwog
ICAgICAgICBmb3IgKHVpbnQzMl90IGNsaWVudExvY2F0aW9uIDogcGVuZGluZ0Rpc3BsYXlOb25l
QWN0aW9ucy5jbGllbnRMb2NhdGlvbnMpCiAgICAgICAgICAgICBhY3Rpb25Mb2NhdGlvbnNbY2xp
ZW50TG9jYXRpb25dID0gYWN0aW9uTG9jYXRpb247CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblN0eWxlU2hlZXQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblN0eWxl
U2hlZXQuY3BwCmluZGV4IGUyNGEzNjYuLmRlM2U4NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25TdHlsZVNoZWV0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uU3R5bGVT
aGVldC5jcHAKQEAgLTYwLDcgKzYwLDEwIEBAIGJvb2wgQ29udGVudEV4dGVuc2lvblN0eWxlU2hl
ZXQ6OmFkZERpc3BsYXlOb25lU2VsZWN0b3IoY29uc3QgU3RyaW5nJiBzZWxlY3RvciwKICAgICBj
c3MuYXBwZW5kKCd7Jyk7CiAgICAgY3NzLmFwcGVuZChDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQ6
OmRpc3BsYXlOb25lQ1NTUnVsZSgpKTsKICAgICBjc3MuYXBwZW5kKCd9Jyk7Ci0gICAgbV9zdHls
ZVNoZWV0LT5jb250ZW50cygpLnBhcnNlU3RyaW5nKGNzcy50b1N0cmluZygpKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBjc3MudG9TdHJpbmcoKSkKKyAgICAgICAgbV9zdHlsZVNoZWV0LT5jb250
ZW50cygpLnBhcnNlU3RyaW5nKCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVu
dGV4dGVuc2lvbnMvVGVybS5oIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVGVy
bS5oCmluZGV4IDBkNTE4MzMuLjZmMzE5NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nv
bnRlbnRleHRlbnNpb25zL1Rlcm0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5z
aW9ucy9UZXJtLmgKQEAgLTI0Niw3ICsyNDYsOSBAQCBpbmxpbmUgU3RyaW5nIFRlcm06OnRvU3Ry
aW5nKCkgY29uc3QKICAgICAgICAgfQogICAgICAgICBidWlsZGVyLmFwcGVuZCgnXScpOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZChxdWFudGlmaWVyVG9TdHJpbmcobV9xdWFudGlmaWVyKSk7Ci0g
ICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
ICAgICBDUkFTSCgpOwogICAgIH0KICAgICBjYXNlIFRlcm1UeXBlOjpHcm91cDogewogICAgICAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CkBAIC0yNTUsNyArMjU3LDkgQEAgaW5saW5lIFN0cmlu
ZyBUZXJtOjp0b1N0cmluZygpIGNvbnN0CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCh0ZXJt
LnRvU3RyaW5nKCkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnKScpOwogICAgICAgICBidWls
ZGVyLmFwcGVuZChxdWFudGlmaWVyVG9TdHJpbmcobV9xdWFudGlmaWVyKSk7Ci0gICAgICAgIHJl
dHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFT
SCgpOwogICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
QW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NB
bmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuY3BwCmluZGV4IGExYTU5N2IuLjJmMjVjOWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFs
dWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xs
VmFsdWUuY3BwCkBAIC00Myw3ICs0Myw5IEBAIFN0cmluZyBDU1NBbmltYXRpb25UcmlnZ2VyU2Ny
b2xsVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKG1f
ZW5kVmFsdWUtPmNzc1RleHQoKSk7CiAgICAgfQogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKLSAg
ICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IGJvb2wgQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlOjplcXVhbHMoY29uc3QgQ1NTQW5p
bWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlJiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
QmFzaWNTaGFwZXMuY3BwCmluZGV4IDI0ZjIzMzQuLjE5MmEwNGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0Jhc2ljU2hhcGVzLmNwcApAQCAtMTA3LDcgKzEwNyw5IEBAIHN0YXRpYyBTdHJpbmcgYnVp
bGRDaXJjbGVTdHJpbmcoY29uc3QgU3RyaW5nJiByYWRpdXMsIGNvbnN0IFN0cmluZyYgY2VudGVy
WCwgY29uCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2VudGVyWSk7CiAgICAgfQogICAgIHJlc3Vs
dC5hcHBlbmRMaXRlcmFsKCIpIik7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQ1NTQmFzaWNTaGFwZUNpcmNsZTo6Y3Nz
VGV4dCgpIGNvbnN0CkBAIC0xNjQsNyArMTY2LDkgQEAgc3RhdGljIFN0cmluZyBidWlsZEVsbGlw
c2VTdHJpbmcoY29uc3QgU3RyaW5nJiByYWRpdXNYLCBjb25zdCBTdHJpbmcmIHJhZGl1c1ksIGMK
ICAgICAgICAgcmVzdWx0LmFwcGVuZChjZW50ZXJZKTsKICAgICB9CiAgICAgcmVzdWx0LmFwcGVu
ZExpdGVyYWwoIikiKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBDU1NCYXNpY1NoYXBlRWxsaXBzZTo6Y3NzVGV4dCgp
IGNvbnN0CkBAIC0yMjQsNyArMjI4LDkgQEAgc3RhdGljIFN0cmluZyBidWlsZFBhdGhTdHJpbmco
Y29uc3QgV2luZFJ1bGUmIHdpbmRSdWxlLCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnMKICAgICAg
ICAgcmVzdWx0LmFwcGVuZChib3gpOwogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIENTU0Jhc2ljU2hhcGVQ
YXRoOjpjc3NUZXh0KCkgY29uc3QKQEAgLTI4MCw3ICsyODYsOSBAQCBzdGF0aWMgU3RyaW5nIGJ1
aWxkUG9seWdvblN0cmluZyhjb25zdCBXaW5kUnVsZSYgd2luZFJ1bGUsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JgogCiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwogCi0gICAgcmV0dXJuIHJlc3VsdC50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQ1NTQmFzaWNT
aGFwZVBvbHlnb246OmNzc1RleHQoKSBjb25zdApAQCAtMzc3LDcgKzM4NSw5IEBAIHN0YXRpYyBT
dHJpbmcgYnVpbGRJbnNldFN0cmluZyhjb25zdCBTdHJpbmcmIHRvcCwgY29uc3QgU3RyaW5nJiBy
aWdodCwgY29uc3QgU3RyCiAgICAgICAgIH0KICAgICB9CiAgICAgcmVzdWx0LmFwcGVuZCgnKScp
OwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBy
ZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogc3RhdGljIGlubGluZSB2b2lkIHVwZGF0ZUNvcm5lclJhZGl1c1dpZHRoQW5kSGVpZ2h0
KENTU1ByaW1pdGl2ZVZhbHVlKiBjb3JuZXIsIFN0cmluZyYgd2lkdGgsIFN0cmluZyYgaGVpZ2h0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwCmluZGV4IGI3NTgz
MDEuLmI5MWMwZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlv
blZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5j
cHAKQEAgLTE2Miw3ICsxNjIsOSBAQCBzdGF0aWMgU3RyaW5nIGJ1aWxkQ3NzVGV4dChjb25zdCBT
dHJpbmcmIGV4cHJlc3Npb24pCiAgICAgcmVzdWx0LmFwcGVuZChleHByZXNzaW9uKTsKICAgICBp
ZiAoZXhwcmVzc2lvbkhhc1NpbmdsZVRlcm0pCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyknKTsK
LSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVz
dWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIFN0cmluZyBDU1NDYWxjVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdApAQCAtNTYzLDcg
KzU2NSw5IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICAgICAgcmVzdWx0LmFwcGVuZCgnKScp
OwogCi0gICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBTdHJpbmcgY3VzdG9tQ1NTVGV4dCgpIGNv
bnN0IGZpbmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uY3BwCmluZGV4IGVlYWU0MjYuLjFhNDRkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0xNjkzLDcgKzE2
OTMsOSBAQCBTdHJpbmcgQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpjc3NUZXh0KCkgY29u
c3QKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnOycpOwogICAgIH0KIAotICAgIHJldHVybiByZXN1
bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogRXhjZXB0aW9uT3I8
dm9pZD4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpzZXRDc3NUZXh0KGNvbnN0IFN0cmlu
ZyYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcAppbmRleCA5ZWI2ZjBm
Li5hZjkxYzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFs
dWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHAKQEAg
LTEwMiw3ICsxMDIsOSBAQCBTdHJpbmcgQ1NTQ3Jvc3NmYWRlVmFsdWU6OmN1c3RvbUNTU1RleHQo
KSBjb25zdAogICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCIsICIpOwogICAgIHJlc3VsdC5hcHBl
bmQobV9wZXJjZW50YWdlVmFsdWUtPmNzc1RleHQoKSk7CiAgICAgcmVzdWx0LmFwcGVuZCgnKScp
OwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBy
ZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogRmxvYXRTaXplIENTU0Nyb3NzZmFkZVZhbHVlOjpmaXhlZFNpemUoY29uc3QgUmVuZGVy
RWxlbWVudCYgcmVuZGVyZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vy
c29ySW1hZ2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1
ZS5jcHAKaW5kZXggMWI2ZDdmMi4uMGVlZWUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
dXJzb3JJbWFnZVZhbHVlLmNwcApAQCAtNjEsNyArNjEsOSBAQCBTdHJpbmcgQ1NTQ3Vyc29ySW1h
Z2VWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAn
KTsKICAgICAgICAgcmVzdWx0LmFwcGVuZE51bWJlcihtX2hvdFNwb3QueSgpKTsKICAgICB9Ci0g
ICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3Vs
dC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiBTVkdDdXJzb3JFbGVtZW50KiBDU1NDdXJzb3JJbWFnZVZhbHVlOjp1cGRhdGVDdXJzb3JFbGVt
ZW50KGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDdXN0b21JZGVudFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXN0
b21JZGVudFZhbHVlLmNwcAppbmRleCAyNmQ2ZTNiLi5mNWVlYjc0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ3VzdG9tSWRlbnRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0N1c3RvbUlkZW50VmFsdWUuY3BwCkBAIC01Niw3ICs1Niw5IEBAIFN0cmluZyBD
U1NDdXN0b21JZGVudFZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgcmV0dXJu
IGdldFByb3BlcnR5TmFtZUF0b21pY1N0cmluZyhtX3Byb3BlcnR5SWQpOwogICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjsKICAgICBzZXJpYWxpemVJZGVudGlmaWVyKG1fc3RyaW5nLCBidWlsZGVy
KTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Zp
bHRlckltYWdlVmFsdWUuY3BwCmluZGV4IGVhYWI3MDMuLjIzMGUwNzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHAKQEAgLTUzLDcgKzUzLDkgQEAgU3RyaW5n
IENTU0ZpbHRlckltYWdlVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIHJlc3VsdC5h
cHBlbmRMaXRlcmFsKCIsICIpOwogICAgIHJlc3VsdC5hcHBlbmQobV9maWx0ZXJWYWx1ZS0+Y3Nz
VGV4dCgpKTsKICAgICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBGbG9hdFNpemUgQ1NTRmlsdGVy
SW1hZ2VWYWx1ZTo6Zml4ZWRTaXplKGNvbnN0IFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VSdWxlLmNwcAppbmRleCAwZGRhMWIyLi44NTk0NmY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VSdWxlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VSdWxlLmNwcApAQCAtNTcsNyArNTcsOSBAQCBT
dHJpbmcgQ1NTRm9udEZhY2VSdWxlOjpjc3NUZXh0KCkgY29uc3QKICAgICBpZiAoIWRlc2NzLmlz
RW1wdHkoKSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICcpOwogICAgIHJlc3VsdC5hcHBlbmQo
J30nKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIHZvaWQgQ1NTRm9udEZhY2VSdWxlOjpyZWF0dGFjaChTdHlsZVJ1bGVCYXNlJiBy
dWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCmluZGV4IDgx
ZDhhNzUuLjJmMzQ2MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFj
ZVNyY1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1
ZS5jcHAKQEAgLTgxLDcgKzgxLDkgQEAgU3RyaW5nIENTU0ZvbnRGYWNlU3JjVmFsdWU6OmN1c3Rv
bUNTU1RleHQoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKG1fZm9ybWF0KTsKICAgICAg
ICAgcmVzdWx0LmFwcGVuZCgnKScpOwogICAgIH0KLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTRm9udEZhY2VTcmNWYWx1
ZTo6dHJhdmVyc2VTdWJyZXNvdXJjZXMoY29uc3QgV1RGOjpGdW5jdGlvbjxib29sIChjb25zdCBD
YWNoZWRSZXNvdXJjZSYpPiYgaGFuZGxlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250RmVhdHVyZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250RmVhdHVyZVZhbHVlLmNwcAppbmRleCA3ZmYwN2YzLi40NzQ2MjJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZlYXR1cmVWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRGZWF0dXJlVmFsdWUuY3BwCkBAIC01MCw3ICs1MCw5IEBAIFN0cmlu
ZyBDU1NGb250RmVhdHVyZVZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoJyAnKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV92YWx1ZSk7
CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBD
UkFTSCgpOwogfQogCiBib29sIENTU0ZvbnRGZWF0dXJlVmFsdWU6OmVxdWFscyhjb25zdCBDU1NG
b250RmVhdHVyZVZhbHVlJiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGb250U3R5bGVSYW5nZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250U3R5bGVSYW5nZVZhbHVlLmNwcAppbmRleCAwY2RjZGJmLi5lYTY2NmI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFN0eWxlUmFuZ2VWYWx1ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTdHlsZVJhbmdlVmFsdWUuY3BwCkBAIC0zOSw3ICszOSw5
IEBAIFN0cmluZyBDU1NGb250U3R5bGVSYW5nZVZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QK
ICAgICBidWlsZGVyLmFwcGVuZChmb250U3R5bGVWYWx1ZS0+Y3NzVGV4dCgpKTsKICAgICBidWls
ZGVyLmFwcGVuZCgnICcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG9ibGlxdWVWYWx1ZXMtPmNzc1Rl
eHQoKSk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAKIGJvb2wgQ1NTRm9udFN0eWxlUmFuZ2VWYWx1ZTo6ZXF1YWxzKGNvbnN0IENT
U0ZvbnRTdHlsZVJhbmdlVmFsdWUmIG90aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRTdHlsZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250U3R5bGVWYWx1ZS5jcHAKaW5kZXggMjg1MGUyMy4uOGM0ZTg1NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTdHlsZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRm9udFN0eWxlVmFsdWUuY3BwCkBAIC0zOSw3ICszOSw5IEBAIFN0cmluZyBDU1NG
b250U3R5bGVWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgYnVpbGRlci5hcHBlbmQo
Zm9udFN0eWxlVmFsdWUtPmNzc1RleHQoKSk7CiAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAg
ICBidWlsZGVyLmFwcGVuZChvYmxpcXVlVmFsdWUtPmNzc1RleHQoKSk7Ci0gICAgcmV0dXJuIGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NT
Rm9udFN0eWxlVmFsdWU6OmVxdWFscyhjb25zdCBDU1NGb250U3R5bGVWYWx1ZSYgb3RoZXIpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFZhbHVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250VmFsdWUuY3BwCmluZGV4IDc2NmMxMTMuLjFjZjc4YWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250VmFsdWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250VmFsdWUuY3BwCkBAIC02NSw3ICs2NSw5IEBAIFN0cmlu
ZyBDU1NGb250VmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBw
ZW5kKGZhbWlseS0+Y3NzVGV4dCgpKTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTRm9udFZhbHVlOjpl
cXVhbHMoY29uc3QgQ1NTRm9udFZhbHVlJiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHAKaW5kZXggYTIwODI2MS4uY2Q1YjMyZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHAKQEAgLTQ4LDcg
KzQ4LDkgQEAgU3RyaW5nIENTU0ZvbnRWYXJpYXRpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNv
bnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGMpOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiJyAiKTsKICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX3ZhbHVlKTsKLSAgICByZXR1cm4g
YnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBD
U1NGb250VmFyaWF0aW9uVmFsdWU6OmVxdWFscyhjb25zdCBDU1NGb250VmFyaWF0aW9uVmFsdWUm
IG90aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Z1bmN0aW9u
VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Z1bmN0aW9uVmFsdWUuY3BwCmluZGV4
IDc1ZWYwYzEuLmJiZGRmZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGdW5j
dGlvblZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRnVuY3Rpb25WYWx1ZS5j
cHAKQEAgLTM3LDcgKzM3LDkgQEAgU3RyaW5nIENTU0Z1bmN0aW9uVmFsdWU6OmN1c3RvbUNTU1Rl
eHQoKSBjb25zdAogICAgIHJlc3VsdC5hcHBlbmQoJygnKTsKICAgICByZXN1bHQuYXBwZW5kKENT
U1ZhbHVlTGlzdDo6Y3VzdG9tQ1NTVGV4dCgpKTsKICAgICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0g
ICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3Vs
dC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAKaW5kZXggZWVmMjk1Yi4u
MDgzMzdmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcApAQCAtNjg0
LDcgKzY4NCw5IEBAIFN0cmluZyBDU1NMaW5lYXJHcmFkaWVudFZhbHVlOjpjdXN0b21DU1NUZXh0
KCkgY29uc3QKICAgICB9CiAKICAgICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIHJl
c3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiAvLyBDb21wdXRl
IHRoZSBlbmRwb2ludHMgc28gdGhhdCBhIGdyYWRpZW50IG9mIHRoZSBnaXZlbiBhbmdsZSBjb3Zl
cnMgYSBib3ggb2YgdGhlIGdpdmVuIHNpemUuCkBAIC0xMDAyLDcgKzEwMDQsOSBAQCBTdHJpbmcg
Q1NTUmFkaWFsR3JhZGllbnRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgfQogCiAg
ICAgcmVzdWx0LmFwcGVuZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogZmxvYXQgQ1NTUmFkaWFsR3JhZGllbnRWYWx1ZTo6
cmVzb2x2ZVJhZGl1cyhDU1NQcmltaXRpdmVWYWx1ZSYgcmFkaXVzLCBjb25zdCBDU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhJiBjb252ZXJzaW9uRGF0YSwgZmxvYXQqIHdpZHRoT3JIZWlnaHQpCkBA
IC0xMzMwLDcgKzEzMzQsOSBAQCBTdHJpbmcgQ1NTQ29uaWNHcmFkaWVudFZhbHVlOjpjdXN0b21D
U1NUZXh0KCkgY29uc3QKICAgICB9CiAgICAgCiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwotICAg
IHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAog
UmVmPEdyYWRpZW50PiBDU1NDb25pY0dyYWRpZW50VmFsdWU6OmNyZWF0ZUdyYWRpZW50KFJlbmRl
ckVsZW1lbnQmLCBjb25zdCBGbG9hdFNpemUmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0dyaWRBdXRvUmVwZWF0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dy
aWRBdXRvUmVwZWF0VmFsdWUuY3BwCmluZGV4IGQ1YmM0NDkuLmZkNzkwZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTR3JpZEF1dG9SZXBlYXRWYWx1ZS5jcHAKQEAgLTQzLDcgKzQzLDkg
QEAgU3RyaW5nIENTU0dyaWRBdXRvUmVwZWF0VmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAog
ICAgIHJlc3VsdC5hcHBlbmQoIiwgIik7CiAgICAgcmVzdWx0LmFwcGVuZChDU1NWYWx1ZUxpc3Q6
OmN1c3RvbUNTU1RleHQoKSk7CiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwotICAgIHJldHVybiBy
ZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1w
bGF0ZUFyZWFzVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFy
ZWFzVmFsdWUuY3BwCmluZGV4IGUwYjc4NjUuLjhiYzNmZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAKQEAgLTgwLDcgKzgwLDkgQEAg
U3RyaW5nIENTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAog
ICAgICAgICBpZiAocm93ICE9IG1fcm93Q291bnQgLSAxKQogICAgICAgICAgICAgYnVpbGRlci5h
cHBlbmQoJyAnKTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZTo6
ZXF1YWxzKGNvbnN0IENTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUmIG90aGVyKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCmluZGV4IGE5N2RjMjEuLmUzNzUwYTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKQEAgLTE0Niw3ICsxNDYs
OSBAQCBTdHJpbmcgQ1NTSW1hZ2VTZXRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAg
fQogCiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDU1NJbWFnZVNldFZhbHVlOjp0
cmF2ZXJzZVN1YnJlc291cmNlcyhjb25zdCBXVEY6OkZ1bmN0aW9uPGJvb2wgKGNvbnN0IENhY2hl
ZFJlc291cmNlJik+JiBoYW5kbGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ltcG9ydFJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUu
Y3BwCmluZGV4IDRjNjY2MTMuLmY5YWFlZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NJbXBvcnRSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVs
ZS5jcHAKQEAgLTcyLDcgKzcyLDkgQEAgU3RyaW5nIENTU0ltcG9ydFJ1bGU6OmNzc1RleHQoKSBj
b25zdAogICAgIH0KICAgICByZXN1bHQuYXBwZW5kKCc7Jyk7CiAgICAgCi0gICAgcmV0dXJuIHJl
c3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBDU1NTdHlsZVNo
ZWV0KiBDU1NJbXBvcnRSdWxlOjpzdHlsZVNoZWV0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZVJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0tleWZyYW1lUnVsZS5jcHAKaW5kZXggODFlOTk1OC4uZGNhM2Y3MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0tleWZyYW1lUnVsZS5jcHAKQEAgLTY3LDcgKzY3LDkgQEAgU3RyaW5nIFN0eWxlUnVs
ZUtleWZyYW1lOjprZXlUZXh0KCkgY29uc3QKICAgICAgICAga2V5VGV4dC5hcHBlbmQoJyUnKTsK
ICAgICB9CiAKLSAgICByZXR1cm4ga2V5VGV4dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGtleVRleHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KICAgICAKIGJvb2wgU3R5bGVSdWxlS2V5ZnJhbWU6OnNldEtleVRleHQoY29u
c3QgU3RyaW5nJiBrZXlUZXh0KQpAQCAtOTAsNyArOTIsOSBAQCBTdHJpbmcgU3R5bGVSdWxlS2V5
ZnJhbWU6OmNzc1RleHQoKSBjb25zdAogICAgIGlmICghZGVjbHMuaXNFbXB0eSgpKQogICAgICAg
ICByZXN1bHQuYXBwZW5kKCcgJyk7CiAgICAgcmVzdWx0LmFwcGVuZCgnfScpOwotICAgIHJldHVy
biByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogQ1NTS2V5
ZnJhbWVSdWxlOjpDU1NLZXlmcmFtZVJ1bGUoU3R5bGVSdWxlS2V5ZnJhbWUmIGtleWZyYW1lLCBD
U1NLZXlmcmFtZXNSdWxlKiBwYXJlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTS2V5ZnJhbWVzUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVzUnVs
ZS5jcHAKaW5kZXggOWYwMDBkOS4uNzdiMTgyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0tleWZyYW1lc1J1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlm
cmFtZXNSdWxlLmNwcApAQCAtMTk4LDcgKzE5OCw5IEBAIFN0cmluZyBDU1NLZXlmcmFtZXNSdWxl
Ojpjc3NUZXh0KCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnXG4nKTsKICAgICB9CiAg
ICAgcmVzdWx0LmFwcGVuZCgnfScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdW5zaWduZWQgQ1NTS2V5ZnJhbWVzUnVsZTo6bGVu
Z3RoKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMaW5lQm94Q29u
dGFpblZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMaW5lQm94Q29udGFpblZhbHVl
LmNwcAppbmRleCAxOWZkZjhiLi4zZGViM2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTTGluZUJveENvbnRhaW5WYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0xpbmVCb3hDb250YWluVmFsdWUuY3BwCkBAIC03Myw3ICs3Myw5IEBAIFN0cmluZyBDU1NMaW5l
Qm94Q29udGFpblZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgdGV4dC5hcHBl
bmRMaXRlcmFsKCJpbml0aWFsLWxldHRlciIpOwogICAgIH0KIAotICAgIHJldHVybiB0ZXh0LnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdGV4dC50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTTWFya3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNYXJr
dXAuY3BwCmluZGV4IDgxZmU4ODguLjYwOWM3MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NNYXJrdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNYXJrdXAuY3Bw
CkBAIC0xODYsNyArMTg2LDkgQEAgU3RyaW5nIHNlcmlhbGl6ZVN0cmluZyhjb25zdCBTdHJpbmcm
IHN0cmluZykKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgc2VyaWFsaXplU3Ry
aW5nKHN0cmluZywgYnVpbGRlcik7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBzZXJpYWxpemVVUkwoY29uc3QgU3Ry
aW5nJiBzdHJpbmcpCkBAIC0yMDQsNyArMjA2LDkgQEAgU3RyaW5nIHNlcmlhbGl6ZUFzU3RyaW5n
T3JDdXN0b21JZGVudChjb25zdCBTdHJpbmcmIHN0cmluZykKICAgICBpZiAoaXNDU1NUb2tlbml6
ZXJJZGVudGlmaWVyKHN0cmluZykpIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwog
ICAgICAgICBzZXJpYWxpemVJZGVudGlmaWVyKHN0cmluZywgYnVpbGRlcik7Ci0gICAgICAgIHJl
dHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFT
SCgpOwogICAgIH0KICAgICByZXR1cm4gc2VyaWFsaXplU3RyaW5nKHN0cmluZyk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NNZWRpYVJ1bGUuY3BwCmluZGV4IGIwOTRlZGQuLjE3NGY1YTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NNZWRpYVJ1bGUuY3BwCkBAIC01Nyw3ICs1Nyw5IEBAIFN0cmluZyBDU1NNZWRp
YVJ1bGU6OmNzc1RleHQoKSBjb25zdAogICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCJ7IFxuIik7
CiAgICAgYXBwZW5kQ3NzVGV4dEZvckl0ZW1zKHJlc3VsdCk7CiAgICAgcmVzdWx0LmFwcGVuZCgn
fScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogTWVkaWFMaXN0KiBDU1NNZWRpYVJ1bGU6Om1lZGlhKCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NOYW1lc3BhY2VSdWxlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NOYW1lc3BhY2VSdWxlLmNwcAppbmRleCAzZDNlYzZmLi43MDY4OTcxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTmFtZXNwYWNlUnVsZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU05hbWVzcGFjZVJ1bGUuY3BwCkBAIC02MCw3ICs2MCw5IEBAIFN0
cmluZyBDU1NOYW1lc3BhY2VSdWxlOjpjc3NUZXh0KCkgY29uc3QKICAgICByZXN1bHQuYXBwZW5k
KCJ1cmwoIik7CiAgICAgcmVzdWx0LmFwcGVuZChzZXJpYWxpemVTdHJpbmcobmFtZXNwYWNlVVJJ
KCkpKTsKICAgICByZXN1bHQuYXBwZW5kKCIpOyIpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBDU1NOYW1lc3BhY2VSdWxl
OjpyZWF0dGFjaChTdHlsZVJ1bGVCYXNlJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYWdlUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFnZVJ1bGUuY3BwCmlu
ZGV4IDQ3Y2Y0NTYuLmU2OWRhNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YWdlUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhZ2VSdWxlLmNwcApAQCAt
NjQsNyArNjQsOSBAQCBTdHJpbmcgQ1NTUGFnZVJ1bGU6OnNlbGVjdG9yVGV4dCgpIGNvbnN0CiAg
ICAgICAgICAgICB0ZXh0LmFwcGVuZChwYWdlU3BlY2lmaWNhdGlvbik7CiAgICAgICAgIH0KICAg
ICB9Ci0gICAgcmV0dXJuIHRleHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0
ZXh0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIHZvaWQgQ1NTUGFnZVJ1bGU6OnNldFNlbGVjdG9yVGV4dChjb25zdCBTdHJpbmcmIHNlbGVj
dG9yVGV4dCkKQEAgLTkwLDcgKzkyLDkgQEAgU3RyaW5nIENTU1BhZ2VSdWxlOjpjc3NUZXh0KCkg
Y29uc3QKICAgICBpZiAoIWRlY2xzLmlzRW1wdHkoKSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgn
ICcpOwogICAgIHJlc3VsdC5hcHBlbmQoJ30nKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgQ1NTUGFnZVJ1bGU6OnJlYXR0
YWNoKFN0eWxlUnVsZUJhc2UmIHJ1bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUHJpbWl0aXZlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZh
bHVlLmNwcAppbmRleCBhNzYxMjc2Li44M2UxNmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
cmltaXRpdmVWYWx1ZS5jcHAKQEAgLTEwNDUsNyArMTA0NSw5IEBAIEFMV0FZU19JTkxJTkUgU3Ry
aW5nIENTU1ByaW1pdGl2ZVZhbHVlOjpmb3JtYXROdW1iZXJGb3JDdXN0b21DU1NUZXh0KCkgY29u
c3QKICAgICAgICAgcmVzdWx0LmFwcGVuZChTdHJpbmcobV92YWx1ZS5zdHJpbmcpKTsKICAgICAg
ICAgcmVzdWx0LmFwcGVuZCgnKScpOwogCi0gICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmco
KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgY2FzZSBD
U1NfQ09VTlRFUl9OQU1FOgogICAgICAgICByZXR1cm4gImNvdW50ZXIoIiArIFN0cmluZyhtX3Zh
bHVlLnN0cmluZykgKyAnKSc7CkBAIC0xMDY5LDcgKzEwNzEsOSBAQCBBTFdBWVNfSU5MSU5FIFN0
cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6Zm9ybWF0TnVtYmVyRm9yQ3VzdG9tQ1NTVGV4dCgpIGNv
bnN0CiAgICAgICAgIH0KICAgICAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwogCi0gICAgICAgIHJl
dHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0go
KTsKICAgICB9CiAgICAgY2FzZSBDU1NfUkVDVDoKICAgICAgICAgcmV0dXJuIHJlY3RWYWx1ZSgp
LT5jc3NUZXh0KCk7CkBAIC0xMTEyLDcgKzExMTYsOSBAQCBBTFdBWVNfSU5MSU5FIFN0cmluZyBD
U1NQcmltaXRpdmVWYWx1ZTo6Zm9ybWF0TnVtYmVyRm9yQ3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcpJyk7CiAgICAgICAgIH0K
LSAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
ICAgICBDUkFTSCgpOwogICAgIH0KICNlbmRpZgogICAgIGNhc2UgQ1NTX0NBTEM6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3BwCmluZGV4IDc1Yjc5OTAuLmZk
MmU4MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eVNvdXJjZURh
dGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3Bw
CkBAIC05Niw3ICs5Niw5IEBAIFN0cmluZyBDU1NQcm9wZXJ0eVNvdXJjZURhdGE6OnRvU3RyaW5n
KCkgY29uc3QKICAgICBpZiAoaW1wb3J0YW50KQogICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJh
bCgiICFpbXBvcnRhbnQiKTsKICAgICByZXN1bHQuYXBwZW5kKCc7Jyk7Ci0gICAgcmV0dXJuIHJl
c3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB1bnNpZ25lZCBD
U1NQcm9wZXJ0eVNvdXJjZURhdGE6Omhhc2goKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rv
ci5jcHAKaW5kZXggMWZlNDJjZC4uNTZiZmMyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3Iu
Y3BwCkBAIC03MjYsMjYgKzcyNiwzMSBAQCBTdHJpbmcgQ1NTU2VsZWN0b3I6OnNlbGVjdG9yVGV4
dChjb25zdCBTdHJpbmcmIHJpZ2h0U2lkZSkgY29uc3QKICAgICAgICAgY3MgPSBjcy0+dGFnSGlz
dG9yeSgpOwogICAgIH0KIAorICAgIFN0cmluZyBzdHJpbmc7CisgICAgaWYgKGF1dG8gcyA9IHN0
ci50b1N0cmluZygpKQorICAgICAgICBzdHJpbmcgPSAqczsKKyAgICBlbHNlCisgICAgICAgIENS
QVNIKCk7CiAgICAgaWYgKGNvbnN0IENTU1NlbGVjdG9yKiB0YWdIaXN0b3J5ID0gY3MtPnRhZ0hp
c3RvcnkoKSkgewogICAgICAgICBzd2l0Y2ggKGNzLT5yZWxhdGlvbigpKSB7CiAgICAgICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OkRlc2NlbmRhbnRTcGFjZToKLSAgICAgICAgICAgIHJldHVybiB0YWdI
aXN0b3J5LT5zZWxlY3RvclRleHQoIiAiICsgc3RyLnRvU3RyaW5nKCkgKyByaWdodFNpZGUpOwor
ICAgICAgICAgICAgcmV0dXJuIHRhZ0hpc3RvcnktPnNlbGVjdG9yVGV4dCgiICIgKyBzdHJpbmcg
KyByaWdodFNpZGUpOwogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpDaGlsZDoKLSAgICAgICAg
ICAgIHJldHVybiB0YWdIaXN0b3J5LT5zZWxlY3RvclRleHQoIiA+ICIgKyBzdHIudG9TdHJpbmco
KSArIHJpZ2h0U2lkZSk7CisgICAgICAgICAgICByZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0b3JU
ZXh0KCIgPiAiICsgc3RyaW5nICsgcmlnaHRTaWRlKTsKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6RGlyZWN0QWRqYWNlbnQ6Ci0gICAgICAgICAgICByZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0
b3JUZXh0KCIgKyAiICsgc3RyLnRvU3RyaW5nKCkgKyByaWdodFNpZGUpOworICAgICAgICAgICAg
cmV0dXJuIHRhZ0hpc3RvcnktPnNlbGVjdG9yVGV4dCgiICsgIiArIHN0cmluZyArIHJpZ2h0U2lk
ZSk7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkluZGlyZWN0QWRqYWNlbnQ6Ci0gICAgICAg
ICAgICByZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0b3JUZXh0KCIgfiAiICsgc3RyLnRvU3RyaW5n
KCkgKyByaWdodFNpZGUpOworICAgICAgICAgICAgcmV0dXJuIHRhZ0hpc3RvcnktPnNlbGVjdG9y
VGV4dCgiIH4gIiArIHN0cmluZyArIHJpZ2h0U2lkZSk7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlN1YnNlbGVjdG9yOgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAjaWYg
QVNTRVJUX0RJU0FCTEVECiAgICAgICAgICAgICBGQUxMVEhST1VHSDsKICNlbmRpZgogICAgICAg
ICBjYXNlIENTU1NlbGVjdG9yOjpTaGFkb3dEZXNjZW5kYW50OgotICAgICAgICAgICAgcmV0dXJu
IHRhZ0hpc3RvcnktPnNlbGVjdG9yVGV4dChzdHIudG9TdHJpbmcoKSArIHJpZ2h0U2lkZSk7Cisg
ICAgICAgICAgICByZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0b3JUZXh0KHN0cmluZyArIHJpZ2h0
U2lkZSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIHN0ci50b1N0cmluZygpICsgcmln
aHRTaWRlOworICAgIHJldHVybiBzdHJpbmcgKyByaWdodFNpZGU7CiB9CiAKIHZvaWQgQ1NTU2Vs
ZWN0b3I6OnNldEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB2YWx1ZSwgYm9vbCBpc0Nh
c2VJbnNlbnNpdGl2ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rv
ckxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAKaW5kZXgg
NTdlZmE2Ny4uYWUzMzAwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVj
dG9yTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAK
QEAgLTEzOCw3ICsxMzgsOSBAQCBTdHJpbmcgQ1NTU2VsZWN0b3JMaXN0OjpzZWxlY3RvcnNUZXh0
KCkgY29uc3QKIHsKICAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKICAgICBidWlsZFNlbGVjdG9y
c1RleHQocmVzdWx0KTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgQ1NTU2VsZWN0b3JMaXN0OjpidWlsZFNlbGVjdG9yc1Rl
eHQoU3RyaW5nQnVpbGRlciYgc3RyaW5nQnVpbGRlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTaGFkb3dWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U2hhZG93VmFsdWUuY3BwCmluZGV4IDk0OTQ3ZDcuLmUyOWM4NWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTaGFkb3dWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1NoYWRvd1ZhbHVlLmNwcApAQCAtNjksNyArNjksOSBAQCBTdHJpbmcgQ1NTU2hhZG93VmFs
dWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAgICB0ZXh0LmFwcGVuZChzdHlsZS0+Y3Nz
VGV4dCgpKTsKICAgICB9CiAKLSAgICByZXR1cm4gdGV4dC50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IHRleHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDU1NTaGFkb3dWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU1No
YWRvd1ZhbHVlJiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAKaW5k
ZXggYmI4ZDIxYy4uNTgwOGZkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0
eWxlUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAKQEAg
LTEyMCw3ICsxMjAsOSBAQCBTdHJpbmcgQ1NTU3R5bGVSdWxlOjpjc3NUZXh0KCkgY29uc3QKICAg
ICBpZiAoIWRlY2xzLmlzRW1wdHkoKSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICcpOwogICAg
IHJlc3VsdC5hcHBlbmQoJ30nKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgQ1NTU3R5bGVSdWxlOjpyZWF0dGFjaChTdHls
ZVJ1bGVCYXNlJiBydWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxl
U2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCmluZGV4IDFl
Y2M1YmEuLjg2OTg0ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNo
ZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAKQEAgLTMx
Niw5ICszMTYsMTIgQEAgRXhjZXB0aW9uT3I8aW50PiBDU1NTdHlsZVNoZWV0OjphZGRSdWxlKGNv
bnN0IFN0cmluZyYgc2VsZWN0b3IsIGNvbnN0IFN0cmluZyYgc3QKICAgICBpZiAoIXN0eWxlLmlz
RW1wdHkoKSkKICAgICAgICAgdGV4dC5hcHBlbmQoJyAnKTsKICAgICB0ZXh0LmFwcGVuZCgnfScp
OwotICAgIGF1dG8gaW5zZXJ0UnVsZVJlc3VsdCA9IGluc2VydFJ1bGUodGV4dC50b1N0cmluZygp
LCBpbmRleC52YWx1ZV9vcihsZW5ndGgoKSkpOwotICAgIGlmIChpbnNlcnRSdWxlUmVzdWx0Lmhh
c0V4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4gaW5zZXJ0UnVsZVJlc3VsdC5yZWxlYXNlRXhj
ZXB0aW9uKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdGV4dC50b1N0cmluZygpKSB7CisgICAg
ICAgIGF1dG8gaW5zZXJ0UnVsZVJlc3VsdCA9IGluc2VydFJ1bGUoKnN0cmluZywgaW5kZXgudmFs
dWVfb3IobGVuZ3RoKCkpKTsKKyAgICAgICAgaWYgKGluc2VydFJ1bGVSZXN1bHQuaGFzRXhjZXB0
aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gaW5zZXJ0UnVsZVJlc3VsdC5yZWxlYXNlRXhjZXB0
aW9uKCk7CisgICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgCiAgICAgLy8gQXMgcGVy
IE1pY3Jvc29mdCBkb2N1bWVudGF0aW9uLCBhbHdheXMgcmV0dXJuIC0xLgogICAgIHJldHVybiAt
MTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdXBwb3J0c1J1bGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1N1cHBvcnRzUnVsZS5jcHAKaW5kZXggZTEzZTEzYi4uZmNi
ZTMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1cHBvcnRzUnVsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1cHBvcnRzUnVsZS5jcHAKQEAgLTUwLDcgKzUw
LDkgQEAgU3RyaW5nIENTU1N1cHBvcnRzUnVsZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgYXBwZW5k
Q3NzVGV4dEZvckl0ZW1zKHJlc3VsdCk7CiAgICAgcmVzdWx0LmFwcGVuZCgnfScpOwogCi0gICAg
cmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBT
dHJpbmcgQ1NTU3VwcG9ydHNSdWxlOjpjb25kaXRpb25UZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUaW1pbmdGdW5jdGlvblZhbHVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NUaW1pbmdGdW5jdGlvblZhbHVlLmNwcAppbmRleCA5MGVmNmNkLi4wOTI4
ODJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVGltaW5nRnVuY3Rpb25WYWx1
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuY3Bw
CkBAIC00Miw3ICs0Miw5IEBAIFN0cmluZyBDU1NDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uVmFs
dWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAi
KTsKICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX3kyKTsKICAgICBidWlsZGVyLmFwcGVuZCgn
KScpOyAgICAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogYm9vbCBDU1NDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uVmFsdWU6OmVx
dWFscyhjb25zdCBDU1NDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uVmFsdWUmIG90aGVyKSBjb25z
dApAQCAtNTksNyArNjEsOSBAQCBTdHJpbmcgQ1NTU3RlcHNUaW1pbmdGdW5jdGlvblZhbHVlOjpj
dXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsIHN0
YXJ0KSIpOwogICAgIGVsc2UKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsIGVuZCki
KTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogYm9vbCBDU1NTdGVwc1RpbWluZ0Z1bmN0aW9uVmFsdWU6OmVxdWFscyhjb25zdCBD
U1NTdGVwc1RpbWluZ0Z1bmN0aW9uVmFsdWUmIG90aGVyKSBjb25zdApAQCAtNzMsNyArNzcsOSBA
QCBTdHJpbmcgQ1NTRnJhbWVzVGltaW5nRnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNv
bnN0CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJmcmFtZXMoIik7CiAgICAgYnVpbGRlci5h
cHBlbmROdW1iZXIobV9mcmFtZXMpOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSIpOwot
ICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiBib29sIENTU0ZyYW1lc1RpbWluZ0Z1bmN0aW9uVmFsdWU6OmVxdWFscyhjb25zdCBDU1NG
cmFtZXNUaW1pbmdGdW5jdGlvblZhbHVlJiBvdGhlcikgY29uc3QKQEAgLTkzLDcgKzk5LDkgQEAg
U3RyaW5nIENTU1NwcmluZ1RpbWluZ0Z1bmN0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25z
dAogICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV9p
bml0aWFsVmVsb2NpdHkpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NT
U3ByaW5nVGltaW5nRnVuY3Rpb25WYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU1NwcmluZ1RpbWluZ0Z1
bmN0aW9uVmFsdWUmIG90aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ZhbHVlTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0LmNwcApp
bmRleCBiNmUwYzJjNS4uMzA5MGUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAK
QEAgLTEwNyw3ICsxMDcsOSBAQCBTdHJpbmcgQ1NTVmFsdWVMaXN0OjpjdXN0b21DU1NUZXh0KCkg
Y29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZCh2YWx1ZS5nZXQoKS5jc3NUZXh0KCkpOwogICAg
IH0KIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogYm9vbCBDU1NWYWx1ZUxpc3Q6OmVxdWFscyhjb25zdCBDU1NWYWx1ZUxpc3QmIG90
aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhcmlhYmxlRGF0
YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFyaWFibGVEYXRhLmNwcAppbmRleCA5OGM5
ZDA5Li4zMTE4ZGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFyaWFibGVE
YXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFyaWFibGVEYXRhLmNwcApAQCAt
NjgsNyArNjgsMTAgQEAgdm9pZCBDU1NWYXJpYWJsZURhdGE6OmNvbnN1bWVBbmRVcGRhdGVUb2tl
bnMoY29uc3QgQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiAgICAgICAgIGlmICh0b2tlbi5o
YXNTdHJpbmdCYWNraW5nKCkpCiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b2tl
bi52YWx1ZSgpKTsKICAgICB9Ci0gICAgbV9iYWNraW5nU3RyaW5nID0gc3RyaW5nQnVpbGRlci50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgbV9iYWNraW5nU3RyaW5nID0gKnN0cmluZzsKKyAgICBlbHNlCisgICAgICAg
IENSQVNIKCk7CiAgICAgaWYgKG1fYmFja2luZ1N0cmluZy5pczhCaXQoKSkKICAgICAgICAgdXBk
YXRlVG9rZW5zPExDaGFyPihyYW5nZSk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NT
TmFtZXNwYWNlLmNwcAppbmRleCA5MTM1MjM3Li5jZTE1ZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
RE9NQ1NTTmFtZXNwYWNlLmNwcApAQCAtODQsNyArODQsOSBAQCBTdHJpbmcgRE9NQ1NTTmFtZXNw
YWNlOjplc2NhcGUoY29uc3QgU3RyaW5nJiBpZGVudCkKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1
aWxkZXI7CiAgICAgc2VyaWFsaXplSWRlbnRpZmllcihpZGVudCwgYnVpbGRlcik7Ci0gICAgcmV0
dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXhSZWFkT25seS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvRE9NTWF0cml4UmVhZE9ubHkuY3BwCmluZGV4IGY3NGI0NjUuLjc4
ODIyOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXhSZWFkT25seS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeFJlYWRPbmx5LmNwcApAQCAtNDUw
LDcgKzQ1MCw5IEBAIEV4Y2VwdGlvbk9yPFN0cmluZz4gRE9NTWF0cml4UmVhZE9ubHk6OnRvU3Ry
aW5nKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nOjpudW1iZXJUb1N0cmlu
Z0VDTUFTY3JpcHQobV9tYXRyaXgubTQ0KCkpKTsKICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmQo
JyknKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIFdURk1vdmUoKnN0cmluZyk7
CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNwcAppbmRleCBlNDk2ODg0Li41
ZTk4ZTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFs
dWVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWVM
aXN0LmNwcApAQCAtNTQsNyArNTQsOSBAQCBTdHJpbmcgRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0
Ojpjc3NUZXh0KCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZCh2YWx1ZS5nZXQoKS5jc3NU
ZXh0KCkpOwogICAgIH0KICAgICAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9Gb250RmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwCmluZGV4IDU4
MWY1ZTguLmMyNTg2YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmNwcApAQCAtMzI4LDcgKzMyOCw5
IEBAIFN0cmluZyBGb250RmFjZTo6c3R5bGUoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVu
ZCgnICcpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChtYXhpbXVtTm9uS2V5d29yZC0+b2JsaXF1
ZVZhbHVlLT5jc3NUZXh0KCkpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIEZvbnRGYWNlOjp3ZWlnaHQo
KSBjb25zdApAQCAtMzQ5LDcgKzM1MSw5IEBAIFN0cmluZyBGb250RmFjZTo6d2VpZ2h0KCkgY29u
c3QKICAgICBidWlsZGVyLmFwcGVuZChtaW5pbXVtTm9uS2V5d29yZC0+Y3NzVGV4dCgpKTsKICAg
ICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG1heGltdW1Ob25LZXl3
b3JkLT5jc3NUZXh0KCkpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgRm9udEZhY2U6OnN0cmV0Y2goKSBjb25zdApA
QCAtMzcwLDcgKzM3NCw5IEBAIFN0cmluZyBGb250RmFjZTo6c3RyZXRjaCgpIGNvbnN0CiAgICAg
YnVpbGRlci5hcHBlbmQobWluaW11bU5vbktleXdvcmQtPmNzc1RleHQoKSk7CiAgICAgYnVpbGRl
ci5hcHBlbmQoJyAnKTsKICAgICBidWlsZGVyLmFwcGVuZChtYXhpbXVtTm9uS2V5d29yZC0+Y3Nz
VGV4dCgpKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogU3RyaW5nIEZvbnRGYWNlOjp1bmljb2RlUmFuZ2UoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvTWVkaWFMaXN0LmNwcAppbmRleCA0NTc1MGFmLi40MjY5NDA0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
TWVkaWFMaXN0LmNwcApAQCAtMTUxLDcgKzE1MSw5IEBAIFN0cmluZyBNZWRpYVF1ZXJ5U2V0Ojpt
ZWRpYVRleHQoKSBjb25zdAogICAgICAgICB0ZXh0LmFwcGVuZChxdWVyeS5jc3NUZXh0KCkpOwog
ICAgICAgICBuZWVkQ29tbWEgPSB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gdGV4dC50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHRleHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBNZWRpYVF1ZXJ5U2V0OjpzaHJp
bmtUb0ZpdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5jcHAKaW5kZXggOWQwYmFkZi4uNDA3MGQ3
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcApAQCAtNjYsNyArNjYsOSBAQCBTdHJpbmcg
TWVkaWFRdWVyeTo6c2VyaWFsaXplKCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZChleHBy
ZXNzaW9uLnNlcmlhbGl6ZSgpKTsKICAgICAgICAgbmVlZHNBbmQgPSB0cnVlOwogICAgIH0KLSAg
ICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IE1lZGlhUXVlcnk6Ok1lZGlhUXVlcnkoUmVzdHJpY3RvciByZXN0cmljdG9yLCBjb25zdCBTdHJp
bmcmIG1lZGlhVHlwZSwgVmVjdG9yPE1lZGlhUXVlcnlFeHByZXNzaW9uPiYmIGV4cHJlc3Npb25z
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAKaW5kZXggMmQ4
ZTVmMC4uZTBhMjJmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlF
eHByZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cHJlc3Np
b24uY3BwCkBAIC0yNDQsNyArMjQ0LDEwIEBAIFN0cmluZyBNZWRpYVF1ZXJ5RXhwcmVzc2lvbjo6
c2VyaWFsaXplKCkgY29uc3QKICAgICB9CiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwogCi0gICAg
bV9zZXJpYWxpemF0aW9uQ2FjaGUgPSByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgbV9zZXJpYWxpemF0aW9uQ2FjaGUg
PSAqc3RyaW5nOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICByZXR1cm4gbV9zZXJp
YWxpemF0aW9uQ2FjaGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SZWN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUmVjdC5oCmluZGV4IGVjMWFhZTguLmRmYWUxNzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1JlY3QuaApAQCAtMTAzLDcgKzEwMyw5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQudG9TdHJp
bmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAg
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCmluZGV4IDNjOGNlNDMuLmJmZjE3MmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCkBAIC0zNDMsNyArMzQzLDkg
QEAgU3RyaW5nIFN0eWxlUHJvcGVydGllczo6Zm9udFZhbHVlKCkgY29uc3QKICAgICByZXN1bHQu
YXBwZW5kKGZvbnRGYW1pbHlQcm9wZXJ0eS52YWx1ZSgpLT5jc3NUZXh0KCkpOwogICAgIGlmIChp
c0luaXRpYWxPckluaGVyaXQoY29tbW9uVmFsdWUpKQogICAgICAgICByZXR1cm4gY29tbW9uVmFs
dWU7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogCiBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpnZXQ0VmFsdWVzKGNvbnN0IFN0eWxlUHJv
cGVydHlTaG9ydGhhbmQmIHNob3J0aGFuZCkgY29uc3QKQEAgLTM5Nyw3ICszOTksOSBAQCBTdHJp
bmcgU3R5bGVQcm9wZXJ0aWVzOjpnZXQ0VmFsdWVzKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhh
bmQmIHNob3J0aGFuZCkgY29ucwogICAgICAgICByZXN1bHQuYXBwZW5kKCcgJyk7CiAgICAgICAg
IHJlc3VsdC5hcHBlbmQobGVmdC52YWx1ZSgpLT5jc3NUZXh0KCkpOwogICAgIH0KLSAgICByZXR1
cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmlu
ZyBTdHlsZVByb3BlcnRpZXM6OmdldExheWVyZWRTaG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVBy
b3BlcnR5U2hvcnRoYW5kJiBzaG9ydGhhbmQpIGNvbnN0CkBAIC01NDMsNyArNTQ3LDkgQEAgU3Ry
aW5nIFN0eWxlUHJvcGVydGllczo6Z2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlKGNvbnN0IFN0eWxl
UHJvcGVydHlTaG9ydGhhbmQmIHMKIAogICAgIGlmIChyZXN1bHQuaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpnZXRTaG9ydGhh
bmRWYWx1ZShjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBzaG9ydGhhbmQpIGNvbnN0CkBA
IC01NzIsNyArNTc4LDkgQEAgU3RyaW5nIFN0eWxlUHJvcGVydGllczo6Z2V0U2hvcnRoYW5kVmFs
dWUoY29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYgc2hvcnRoYW4KICAgICAgICAgcmV0dXJu
IGNvbW1vblZhbHVlOwogICAgIGlmIChyZXN1bHQuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4g
U3RyaW5nKCk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBD
UkFTSCgpOwogfQogCiAvLyBvbmx5IHJldHVybnMgYSBub24tbnVsbCB2YWx1ZSBpZiBhbGwgcHJv
cGVydGllcyBoYXZlIHRoZSBzYW1lLCBub24tbnVsbCB2YWx1ZQpAQCAtNjM0LDcgKzY0MiwxMSBA
QCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpib3JkZXJQcm9wZXJ0eVZhbHVlKENvbW1vblZhbHVl
TW9kZSB2YWx1ZU1vZGUpIGNvbnN0CiAgICAgfQogICAgIGlmIChpc0luaXRpYWxPckluaGVyaXQo
Y29tbW9uVmFsdWUpKQogICAgICAgICByZXR1cm4gY29tbW9uVmFsdWU7Ci0gICAgcmV0dXJuIHJl
c3VsdC5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6IHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChy
ZXN1bHQuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIFJlZlB0cjxDU1NWYWx1ZT4gU3R5bGVQcm9wZXJ0aWVzOjpnZXRQcm9w
ZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkgY29uc3QKQEAgLTExNDYsNyAr
MTE1OCw5IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmFzVGV4dCgpIGNvbnN0CiAgICAgfQog
CiAgICAgQVNTRVJUKCFudW1EZWNscyBeICFyZXN1bHQuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4g
cmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgU3R5
bGVQcm9wZXJ0aWVzOjpoYXNDU1NPTVdyYXBwZXIoKSBjb25zdApAQCAtMTQwMyw3ICsxNDE3LDkg
QEAgU3RyaW5nIFN0eWxlUHJvcGVydGllczo6UHJvcGVydHlSZWZlcmVuY2U6OmNzc1RleHQoKSBj
b25zdAogICAgIGlmIChpc0ltcG9ydGFudCgpKQogICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJh
bCgiICFpbXBvcnRhbnQiKTsKICAgICByZXN1bHQuYXBwZW5kKCc7Jyk7Ci0gICAgcmV0dXJuIHJl
c3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogICAgIAogUmVmPERl
ZmVycmVkU3R5bGVQcm9wZXJ0aWVzPiBEZWZlcnJlZFN0eWxlUHJvcGVydGllczo6Y3JlYXRlKGNv
bnN0IENTU1BhcnNlclRva2VuUmFuZ2UmIHRva2VuUmFuZ2UsIENTU0RlZmVycmVkUGFyc2VyJiBw
YXJzZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwCmluZGV4IDdiZGU2NGQu
LjFmNzhkMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXgu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwCkBAIC0yNDks
NyArMjQ5LDkgQEAgRXhjZXB0aW9uT3I8U3RyaW5nPiBXZWJLaXRDU1NNYXRyaXg6OnRvU3RyaW5n
KCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nOjpudW1iZXJUb1N0cmluZ0VD
TUFTY3JpcHQobV9tYXRyaXgubTQ0KCkpKTsKICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmQoJykn
KTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIFdURk1vdmUoKnN0cmluZyk7Cisg
ICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcAppbmRleCBjYmQxNzJmLi5kZTZlYzk1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcApAQCAtNzIs
NyArNzIsOSBAQCBTdHJpbmcgV2ViS2l0Q1NTVmlld3BvcnRSdWxlOjpjc3NUZXh0KCkgY29uc3QK
IAogICAgIHJlc3VsdC5hcHBlbmQoJ30nKTsKIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBXZWJLaXRDU1NWaWV3cG9ydFJ1
bGU6OnJlYXR0YWNoKFN0eWxlUnVsZUJhc2UmIHJ1bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1BhcnNlci5jcHAKaW5kZXggOTU0YWIwOC4uZWNiZmFiZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyLmNwcApAQCAtMjk5LDEwICsyOTksMTMgQEAgUmVmUHRyPENTU1Zh
bHVlPiBDU1NQYXJzZXI6OnBhcnNlRm9udEZhY2VEZXNjcmlwdG9yKENTU1Byb3BlcnR5SUQgcHJv
cGVydHlJRCwgY28KICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiA6ICIpOwogICAgIGJ1aWxk
ZXIuYXBwZW5kKHByb3BlcnR5VmFsdWUpOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiOyB9
Iik7Ci0gICAgUmVmUHRyPFN0eWxlUnVsZUJhc2U+IHJ1bGUgPSBwYXJzZVJ1bGUoY29udGV4dCwg
bnVsbHB0ciwgYnVpbGRlci50b1N0cmluZygpKTsKLSAgICBpZiAoIXJ1bGUgfHwgIXJ1bGUtPmlz
Rm9udEZhY2VSdWxlKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBkb3du
Y2FzdDxTdHlsZVJ1bGVGb250RmFjZT4oKnJ1bGUuZ2V0KCkpLnByb3BlcnRpZXMoKS5nZXRQcm9w
ZXJ0eUNTU1ZhbHVlKHByb3BlcnR5SUQpOworICAgIGlmIChhdXRvIHN0cmluZyAgPSBidWlsZGVy
LnRvU3RyaW5nKCkpIHsKKyAgICAgICAgUmVmUHRyPFN0eWxlUnVsZUJhc2U+IHJ1bGUgPSBwYXJz
ZVJ1bGUoY29udGV4dCwgbnVsbHB0ciwgKnN0cmluZyk7CisgICAgICAgIGlmICghcnVsZSB8fCAh
cnVsZS0+aXNGb250RmFjZVJ1bGUoKSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAg
ICAgICByZXR1cm4gZG93bmNhc3Q8U3R5bGVSdWxlRm9udEZhY2U+KCpydWxlLmdldCgpKS5wcm9w
ZXJ0aWVzKCkuZ2V0UHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0eUlEKTsKKyAgICB9CisgICAgQ1JB
U0goKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
YXJzZXJUb2tlbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2Vu
LmNwcAppbmRleCA3YjhlNjAzLi41ZDEwMTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1BhcnNlclRva2VuLmNwcApAQCAtMzkyLDcgKzM5Miw4IEBAIHZvaWQgQ1NTUGFyc2Vy
VG9rZW46OnNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiBidWlsZGVyKSBjb25zdAogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEZ1bmN0aW9uVG9rZW46CiAgICAgICAgIHNlcmlhbGl6ZUlkZW50aWZp
ZXIodmFsdWUoKS50b1N0cmluZygpLCBidWlsZGVyKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIu
YXBwZW5kKCcoJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcoJyk7CisgICAgICAgIHJldHVy
bjsKICAgICBjYXNlIEF0S2V5d29yZFRva2VuOgogICAgICAgICBidWlsZGVyLmFwcGVuZCgnQCcp
OwogICAgICAgICBzZXJpYWxpemVJZGVudGlmaWVyKHZhbHVlKCkudG9TdHJpbmcoKSwgYnVpbGRl
cik7CkBAIC00MDQsNjkgKzQwNSw5NyBAQCB2b2lkIENTU1BhcnNlclRva2VuOjpzZXJpYWxpemUo
U3RyaW5nQnVpbGRlciYgYnVpbGRlcikgY29uc3QKICAgICBjYXNlIFVybFRva2VuOgogICAgICAg
ICBidWlsZGVyLmFwcGVuZCgidXJsKCIpOwogICAgICAgICBzZXJpYWxpemVJZGVudGlmaWVyKHZh
bHVlKCkudG9TdHJpbmcoKSwgYnVpbGRlcik7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVu
ZCgnKScpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnKScpOworICAgICAgICByZXR1cm47CiAg
ICAgY2FzZSBEZWxpbWl0ZXJUb2tlbjoKLSAgICAgICAgaWYgKGRlbGltaXRlcigpID09ICdcXCcp
Ci0gICAgICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoIlxcXG4iKTsKLSAgICAgICAgcmV0
dXJuIGJ1aWxkZXIuYXBwZW5kKGRlbGltaXRlcigpKTsKKyAgICAgICAgaWYgKGRlbGltaXRlcigp
ID09ICdcXCcpIHsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJcXFxuIik7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgYnVpbGRlci5hcHBlbmQoZGVsaW1pdGVy
KCkpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBOdW1iZXJUb2tlbjoKICAgICAgICAgLy8g
VGhlc2Ugd29uJ3QgcHJvcGVybHkgcHJlc2VydmUgdGhlIE51bWVyaWNWYWx1ZVR5cGUgZmxhZwog
ICAgICAgICBpZiAobV9udW1lcmljU2lnbiA9PSBQbHVzU2lnbikKICAgICAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCcrJyk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZE51bWJlcihudW1l
cmljVmFsdWUoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG51bWVyaWNWYWx1ZSgp
KTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgUGVyY2VudGFnZVRva2VuOgogICAgICAgICBi
dWlsZGVyLmFwcGVuZE51bWJlcihudW1lcmljVmFsdWUoKSk7Ci0gICAgICAgIHJldHVybiBidWls
ZGVyLmFwcGVuZCgnJScpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnJScpOworICAgICAgICBy
ZXR1cm47CiAgICAgY2FzZSBEaW1lbnNpb25Ub2tlbjoKICAgICAgICAgLy8gVGhpcyB3aWxsIGlu
Y29ycmVjdGx5IHNlcmlhbGl6ZSBlLmcuIDRlM2UyIGFzIDQwMDBlMgogICAgICAgICBidWlsZGVy
LmFwcGVuZE51bWJlcihudW1lcmljVmFsdWUoKSk7CiAgICAgICAgIHNlcmlhbGl6ZUlkZW50aWZp
ZXIodmFsdWUoKS50b1N0cmluZygpLCBidWlsZGVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBVbmljb2RlUmFuZ2VUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKFN0cmlu
Zzo6Zm9ybWF0KCJVKyVYLSVYIiwgdW5pY29kZVJhbmdlU3RhcnQoKSwgdW5pY29kZVJhbmdlRW5k
KCkpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nOjpmb3JtYXQoIlUrJVgtJVgiLCB1
bmljb2RlUmFuZ2VTdGFydCgpLCB1bmljb2RlUmFuZ2VFbmQoKSkpOworICAgICAgICByZXR1cm47
CiAgICAgY2FzZSBTdHJpbmdUb2tlbjoKLSAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVN0cmluZyh2
YWx1ZSgpLnRvU3RyaW5nKCksIGJ1aWxkZXIpOworICAgICAgICBzZXJpYWxpemVTdHJpbmcodmFs
dWUoKS50b1N0cmluZygpLCBidWlsZGVyKTsKKyAgICAgICAgcmV0dXJuOwogCiAgICAgY2FzZSBJ
bmNsdWRlTWF0Y2hUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCJ+PSIpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZCgifj0iKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2Ug
RGFzaE1hdGNoVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgifD0iKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQoInw9Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFBy
ZWZpeE1hdGNoVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgiXj0iKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQoIl49Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFN1
ZmZpeE1hdGNoVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgiJD0iKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQoIiQ9Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFN1
YnN0cmluZ01hdGNoVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgiKj0iKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmQoIio9Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNl
IENvbHVtblRva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoInx8Iik7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCJ8fCIpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBDRE9U
b2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCI8IS0tIik7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCI8IS0tIik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIENEQ1Rva2Vu
OgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoIi0tPiIpOworICAgICAgICBidWlsZGVy
LmFwcGVuZCgiLS0+Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEJhZFN0cmluZ1Rva2Vu
OgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoIidcbiIpOworICAgICAgICBidWlsZGVy
LmFwcGVuZCgiJ1xuIik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEJhZFVybFRva2VuOgot
ICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoInVybCgoKSIpOworICAgICAgICBidWlsZGVy
LmFwcGVuZCgidXJsKCgpIik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFdoaXRlc3BhY2VU
b2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCcgJyk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIENvbG9uVG9rZW46Ci0g
ICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgnOicpOworICAgICAgICBidWlsZGVyLmFwcGVu
ZCgnOicpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBTZW1pY29sb25Ub2tlbjoKLSAgICAg
ICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCc7Jyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCc7
Jyk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIENvbW1hVG9rZW46Ci0gICAgICAgIHJldHVy
biBidWlsZGVyLmFwcGVuZCgnLCcpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnLCcpOworICAg
ICAgICByZXR1cm47CiAgICAgY2FzZSBMZWZ0UGFyZW50aGVzaXNUb2tlbjoKLSAgICAgICAgcmV0
dXJuIGJ1aWxkZXIuYXBwZW5kKCcoJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcoJyk7Cisg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIFJpZ2h0UGFyZW50aGVzaXNUb2tlbjoKLSAgICAgICAg
cmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCcpJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7
CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIExlZnRCcmFja2V0VG9rZW46Ci0gICAgICAgIHJl
dHVybiBidWlsZGVyLmFwcGVuZCgnWycpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnWycpOwor
ICAgICAgICByZXR1cm47CiAgICAgY2FzZSBSaWdodEJyYWNrZXRUb2tlbjoKLSAgICAgICAgcmV0
dXJuIGJ1aWxkZXIuYXBwZW5kKCddJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCddJyk7Cisg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIExlZnRCcmFjZVRva2VuOgotICAgICAgICByZXR1cm4g
YnVpbGRlci5hcHBlbmQoJ3snKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJ3snKTsKKyAgICAg
ICAgcmV0dXJuOwogICAgIGNhc2UgUmlnaHRCcmFjZVRva2VuOgotICAgICAgICByZXR1cm4gYnVp
bGRlci5hcHBlbmQoJ30nKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJ30nKTsKKyAgICAgICAg
cmV0dXJuOwogCiAgICAgY2FzZSBFT0ZUb2tlbjoKICAgICBjYXNlIENvbW1lbnRUb2tlbjoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW5SYW5nZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuUmFuZ2UuY3BwCmlu
ZGV4IGNiOWM1ODAuLmVmZTVhMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUGFyc2VyVG9rZW5SYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQYXJzZXJUb2tlblJhbmdlLmNwcApAQCAtMTEzLDcgKzExMyw5IEBAIFN0cmluZyBDU1NQ
YXJzZXJUb2tlblJhbmdlOjpzZXJpYWxpemUoKSBjb25zdAogICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKICAgICBmb3IgKGNvbnN0IENTU1BhcnNlclRva2VuKiBpdCA9IG1fZmlyc3Q7IGl0IDwg
bV9sYXN0OyArK2l0KQogICAgICAgICBpdC0+c2VyaWFsaXplKGJ1aWxkZXIpOwotICAgIHJldHVy
biBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1Byb3BlcnR5UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJv
cGVydHlQYXJzZXIuY3BwCmluZGV4IGJjZWNlNzAuLjMwOTA3NWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCkBAIC0xMDE2LDcgKzEwMTYs
OSBAQCBzdGF0aWMgU3RyaW5nIGNvbmNhdGVuYXRlRmFtaWx5TmFtZShDU1NQYXJzZXJUb2tlblJh
bmdlJiByYW5nZSkKICAgICB9CiAgICAgaWYgKCFhZGRlZFNwYWNlICYmIGlzQ1NTV2lkZUtleXdv
cmQoZmlyc3RUb2tlbi5pZCgpKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwotICAgIHJldHVy
biBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0
aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lRmFtaWx5TmFtZShDU1NQYXJzZXJUb2tlblJhbmdl
JiByYW5nZSkKQEAgLTMyNjQsNyArMzI2NiwxMCBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gcGFy
c2VHcmlkVGVtcGxhdGVBcmVhc0NvbHVtbk5hbWVzKGNvbnN0IFN0cmluZyYgZ3JpZFJvd05hbQog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aCgpOyArK2kpIHsKICAgICAg
ICAgaWYgKGlzQ1NTU3BhY2UodGV4dFtpXSkpIHsKICAgICAgICAgICAgIGlmICghYXJlYU5hbWUu
aXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgY29sdW1uTmFtZXMuYXBwZW5kKGFyZWFOYW1l
LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGFyZWFOYW1l
LnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbHVtbk5hbWVzLmFwcGVuZCgqc3Ry
aW5nKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7
CiAgICAgICAgICAgICAgICAgYXJlYU5hbWUuY2xlYXIoKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGNvbnRpbnVlOwpAQCAtMzI3MywxNCArMzI3OCwyMCBAQCBzdGF0aWMgVmVjdG9yPFN0
cmluZz4gcGFyc2VHcmlkVGVtcGxhdGVBcmVhc0NvbHVtbk5hbWVzKGNvbnN0IFN0cmluZyYgZ3Jp
ZFJvd05hbQogICAgICAgICAgICAgaWYgKGFyZWFOYW1lID09ICIuIikKICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgICAgIGlmICghYXJlYU5hbWUuaXNFbXB0eSgpKSB7Ci0gICAg
ICAgICAgICAgICAgY29sdW1uTmFtZXMuYXBwZW5kKGFyZWFOYW1lLnRvU3RyaW5nKCkpOworICAg
ICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGFyZWFOYW1lLnRvU3RyaW5nKCkpCisgICAg
ICAgICAgICAgICAgICAgIGNvbHVtbk5hbWVzLmFwcGVuZCgqc3RyaW5nKTsKKyAgICAgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAgICAg
YXJlYU5hbWUuY2xlYXIoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgIGlmICghaXNOYW1lQ29kZVBvaW50KHRleHRbaV0pKQogICAgICAgICAgICAgICAgIHJl
dHVybiBWZWN0b3I8U3RyaW5nPigpOwogICAgICAgICAgICAgaWYgKGFyZWFOYW1lID09ICIuIikg
ewotICAgICAgICAgICAgICAgIGNvbHVtbk5hbWVzLmFwcGVuZChhcmVhTmFtZS50b1N0cmluZygp
KTsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBhcmVhTmFtZS50b1N0cmluZygp
KQorICAgICAgICAgICAgICAgICAgICBjb2x1bW5OYW1lcy5hcHBlbmQoKnN0cmluZyk7CisgICAg
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAg
ICAgICAgIGFyZWFOYW1lLmNsZWFyKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTMy
ODgsOCArMzI5OSwxMiBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gcGFyc2VHcmlkVGVtcGxhdGVB
cmVhc0NvbHVtbk5hbWVzKGNvbnN0IFN0cmluZyYgZ3JpZFJvd05hbQogICAgICAgICBhcmVhTmFt
ZS5hcHBlbmQodGV4dFtpXSk7CiAgICAgfQogCi0gICAgaWYgKCFhcmVhTmFtZS5pc0VtcHR5KCkp
Ci0gICAgICAgIGNvbHVtbk5hbWVzLmFwcGVuZChhcmVhTmFtZS50b1N0cmluZygpKTsKKyAgICBp
ZiAoIWFyZWFOYW1lLmlzRW1wdHkoKSkgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBhcmVh
TmFtZS50b1N0cmluZygpKQorICAgICAgICAgICAgY29sdW1uTmFtZXMuYXBwZW5kKCpzdHJpbmcp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOworICAgIH0KIAogICAgIHJldHVy
biBjb2x1bW5OYW1lczsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTVG9rZW5pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTVG9rZW5pemVy
LmNwcAppbmRleCAxZjFhMjNlLi4zYjg0ZTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1Rva2VuaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NUb2tlbml6ZXIuY3BwCkBAIC02MDUsOCArNjA1LDExIEBAIENTU1BhcnNlclRva2VuIENT
U1Rva2VuaXplcjo6Y29uc3VtZVN0cmluZ1Rva2VuVW50aWwoVUNoYXIgZW5kaW5nQ29kZVBvaW50
KQogICAgIFN0cmluZ0J1aWxkZXIgb3V0cHV0OwogICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAg
IFVDaGFyIGNjID0gY29uc3VtZSgpOwotICAgICAgICBpZiAoY2MgPT0gZW5kaW5nQ29kZVBvaW50
IHx8IGNjID09IGtFbmRPZkZpbGVNYXJrZXIpCi0gICAgICAgICAgICByZXR1cm4gQ1NTUGFyc2Vy
VG9rZW4oU3RyaW5nVG9rZW4sIHJlZ2lzdGVyU3RyaW5nKG91dHB1dC50b1N0cmluZygpKSk7Cisg
ICAgICAgIGlmIChjYyA9PSBlbmRpbmdDb2RlUG9pbnQgfHwgY2MgPT0ga0VuZE9mRmlsZU1hcmtl
cikgeworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gb3V0cHV0LnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIENTU1BhcnNlclRva2VuKFN0cmluZ1Rva2VuLCByZWdpc3Rl
clN0cmluZygqc3RyaW5nKSk7CisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CiAgICAg
ICAgIGlmIChpc05ld0xpbmUoY2MpKSB7CiAgICAgICAgICAgICByZWNvbnN1bWUoY2MpOwogICAg
ICAgICAgICAgcmV0dXJuIENTU1BhcnNlclRva2VuKEJhZFN0cmluZ1Rva2VuKTsKQEAgLTY4MCwx
MyArNjgzLDE5IEBAIENTU1BhcnNlclRva2VuIENTU1Rva2VuaXplcjo6Y29uc3VtZVVybFRva2Vu
KCkKICAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAg
ICBVQ2hhciBjYyA9IGNvbnN1bWUoKTsKLSAgICAgICAgaWYgKGNjID09ICcpJyB8fCBjYyA9PSBr
RW5kT2ZGaWxlTWFya2VyKQotICAgICAgICAgICAgcmV0dXJuIENTU1BhcnNlclRva2VuKFVybFRv
a2VuLCByZWdpc3RlclN0cmluZyhyZXN1bHQudG9TdHJpbmcoKSkpOworICAgICAgICBpZiAoY2Mg
PT0gJyknIHx8IGNjID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHJldHVybiBDU1NQ
YXJzZXJUb2tlbihVcmxUb2tlbiwgcmVnaXN0ZXJTdHJpbmcoKnN0cmluZykpOworICAgICAgICAg
ICAgQ1JBU0goKTsKKyAgICAgICAgfQogCiAgICAgICAgIGlmIChpc0hUTUxTcGFjZShjYykpIHsK
ICAgICAgICAgICAgIG1faW5wdXQuYWR2YW5jZVVudGlsTm9uV2hpdGVzcGFjZSgpOwotICAgICAg
ICAgICAgaWYgKGNvbnN1bWVJZk5leHQoJyknKSB8fCBtX2lucHV0Lm5leHRJbnB1dENoYXIoKSA9
PSBrRW5kT2ZGaWxlTWFya2VyKQotICAgICAgICAgICAgICAgIHJldHVybiBDU1NQYXJzZXJUb2tl
bihVcmxUb2tlbiwgcmVnaXN0ZXJTdHJpbmcocmVzdWx0LnRvU3RyaW5nKCkpKTsKKyAgICAgICAg
ICAgIGlmIChjb25zdW1lSWZOZXh0KCcpJykgfHwgbV9pbnB1dC5uZXh0SW5wdXRDaGFyKCkgPT0g
a0VuZE9mRmlsZU1hcmtlcikgeworICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJl
c3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUGFyc2VyVG9r
ZW4oVXJsVG9rZW4sIHJlZ2lzdGVyU3RyaW5nKCpzdHJpbmcpKTsKKyAgICAgICAgICAgICAgICBD
UkFTSCgpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApA
QCAtNzkxLDcgKzgwMCw5IEBAIFN0cmluZ1ZpZXcgQ1NTVG9rZW5pemVyOjpjb25zdW1lTmFtZSgp
CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogICAgICAgICByZWNvbnN1bWUoY2Mp
OwotICAgICAgICByZXR1cm4gcmVnaXN0ZXJTdHJpbmcocmVzdWx0LnRvU3RyaW5nKCkpOworICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJl
dHVybiByZWdpc3RlclN0cmluZygqc3RyaW5nKTsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9
CiAKQEAgLTgxMSwxMSArODIyLDE0IEBAIFVDaGFyMzIgQ1NTVG9rZW5pemVyOjpjb25zdW1lRXNj
YXBlKCkKICAgICAgICAgfTsKICAgICAgICAgY29uc3VtZVNpbmdsZVdoaXRlc3BhY2VJZk5leHQo
KTsKICAgICAgICAgYm9vbCBvayA9IGZhbHNlOwotICAgICAgICBVQ2hhcjMyIGNvZGVQb2ludCA9
IGhleENoYXJzLnRvU3RyaW5nKCkudG9VSW50U3RyaWN0KCZvaywgMTYpOwotICAgICAgICBBU1NF
UlQob2spOwotICAgICAgICBpZiAoIWNvZGVQb2ludCB8fCAoMHhEODAwIDw9IGNvZGVQb2ludCAm
JiBjb2RlUG9pbnQgPD0gMHhERkZGKSB8fCBjb2RlUG9pbnQgPiAweDEwRkZGRikKLSAgICAgICAg
ICAgIHJldHVybiByZXBsYWNlbWVudENoYXJhY3RlcjsKLSAgICAgICAgcmV0dXJuIGNvZGVQb2lu
dDsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gaGV4Q2hhcnMudG9TdHJpbmcoKSkgeworICAg
ICAgICAgICAgVUNoYXIzMiBjb2RlUG9pbnQgPSBzdHJpbmctPnRvVUludFN0cmljdCgmb2ssIDE2
KTsKKyAgICAgICAgICAgIEFTU0VSVChvayk7CisgICAgICAgICAgICBpZiAoIWNvZGVQb2ludCB8
fCAoMHhEODAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhERkZGKSB8fCBjb2RlUG9p
bnQgPiAweDEwRkZGRikKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVwbGFjZW1lbnRDaGFyYWN0
ZXI7CisgICAgICAgICAgICByZXR1cm4gY29kZVBvaW50OworICAgICAgICB9CisgICAgICAgIENS
QVNIKCk7CiAgICAgfQogCiAgICAgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0cmluZ01hcC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGF0YXNldERPTVN0cmluZ01hcC5jcHAKaW5kZXggZjJkODQyMC4uZDU2Njdi
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcApAQCAtNjUs
NyArNjUsOSBAQCBzdGF0aWMgU3RyaW5nIGNvbnZlcnRBdHRyaWJ1dGVOYW1lVG9Qcm9wZXJ0eU5h
bWUoY29uc3QgU3RyaW5nJiBuYW1lKQogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIHN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIHN0YXRpYyBib29sIHByb3BlcnR5TmFtZU1hdGNoZXNBdHRyaWJ1dGVOYW1lKGNvbnN0IFN0
cmluZyYgcHJvcGVydHlOYW1lLCBjb25zdCBTdHJpbmcmIGF0dHJpYnV0ZU5hbWUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKaW5kZXggMGEyMzI2My4uODgxNDU0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cApAQCAtMjE5Nyw3ICsyMTk3LDEwIEBAIHZvaWQgRWxlbWVudDo6Zm9ybWF0Rm9yRGVidWdnZXIo
Y2hhciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBl
bmQocyk7CiAgICAgfQogCi0gICAgc3RybmNweShidWZmZXIsIHJlc3VsdC50b1N0cmluZygpLnV0
ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50
b1N0cmluZygpKQorICAgICAgICBzdHJuY3B5KGJ1ZmZlciwgc3RyaW5nLT51dGY4KCkuZGF0YSgp
LCBsZW5ndGggLSAxKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwCmluZGV4IDRiMWU4NzIuLjhmY2JkN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAg
LTE1MTksNyArMTUxOSw5IEBAIFN0cmluZyBOb2RlOjp0ZXh0Q29udGVudChib29sIGNvbnZlcnRC
UnNUb05ld2xpbmVzKSBjb25zdAogICAgIFN0cmluZ0J1aWxkZXIgY29udGVudDsKICAgICBib29s
IGlzTnVsbFN0cmluZyA9IHRydWU7CiAgICAgYXBwZW5kVGV4dENvbnRlbnQodGhpcywgY29udmVy
dEJSc1RvTmV3bGluZXMsIGlzTnVsbFN0cmluZywgY29udGVudCk7Ci0gICAgcmV0dXJuIGlzTnVs
bFN0cmluZyA/IFN0cmluZygpIDogY29udGVudC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGNvbnRlbnQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIGlzTnVsbFN0cmluZyA/
IFN0cmluZygpIDogKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBFeGNlcHRpb25Pcjx2b2lk
PiBOb2RlOjpzZXRUZXh0Q29udGVudChjb25zdCBTdHJpbmcmIHRleHQpCkBAIC0xNzMwLDcgKzE3
MzIsMTAgQEAgdm9pZCBOb2RlOjpzaG93Tm9kZShjb25zdCBjaGFyKiBwcmVmaXgpIGNvbnN0CiAg
ICAgICAgIFN0cmluZ0J1aWxkZXIgYXR0cnM7CiAgICAgICAgIGFwcGVuZEF0dHJpYnV0ZURlc2Mo
dGhpcywgYXR0cnMsIGNsYXNzQXR0ciwgIiBDTEFTUz0iKTsKICAgICAgICAgYXBwZW5kQXR0cmli
dXRlRGVzYyh0aGlzLCBhdHRycywgc3R5bGVBdHRyLCAiIFNUWUxFPSIpOwotICAgICAgICBmcHJp
bnRmKHN0ZGVyciwgIiVzJXNcdCVwIChyZW5kZXJlciAlcCkgJXMlcyVzXG4iLCBwcmVmaXgsIG5v
ZGVOYW1lKCkudXRmOCgpLmRhdGEoKSwgdGhpcywgcmVuZGVyZXIoKSwgYXR0cnMudG9TdHJpbmco
KS51dGY4KCkuZGF0YSgpLCBuZWVkc1N0eWxlUmVjYWxjKCkgPyAiIChuZWVkcyBzdHlsZSByZWNh
bGMpIiA6ICIiLCBjaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSA/ICIgKGNoaWxkIG5lZWRzIHN0eWxl
IHJlY2FsYykiIDogIiIpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBhdHRycy50b1N0cmlu
ZygpKQorICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlcyVzXHQlcCAocmVuZGVyZXIgJXAp
ICVzJXMlc1xuIiwgcHJlZml4LCBub2RlTmFtZSgpLnV0ZjgoKS5kYXRhKCksIHRoaXMsIHJlbmRl
cmVyKCksIHN0cmluZy0+dXRmOCgpLmRhdGEoKSwgbmVlZHNTdHlsZVJlY2FsYygpID8gIiAobmVl
ZHMgc3R5bGUgcmVjYWxjKSIgOiAiIiwgY2hpbGROZWVkc1N0eWxlUmVjYWxjKCkgPyAiIChjaGls
ZCBuZWVkcyBzdHlsZSByZWNhbGMpIiA6ICIiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
Q1JBU0goKTsKICAgICB9CiB9CiAKQEAgLTE4MDIsMTIgKzE4MDcsMTkgQEAgc3RhdGljIHZvaWQg
dHJhdmVyc2VUcmVlQW5kTWFyayhjb25zdCBTdHJpbmcmIGJhc2VJbmRlbnQsIGNvbnN0IE5vZGUq
IHJvb3ROb2RlLAogICAgICAgICBpbmRlbnQuYXBwZW5kKGJhc2VJbmRlbnQpOwogICAgICAgICBm
b3IgKGNvbnN0IE5vZGUqIHRtcE5vZGUgPSBub2RlOyB0bXBOb2RlICYmIHRtcE5vZGUgIT0gcm9v
dE5vZGU7IHRtcE5vZGUgPSB0bXBOb2RlLT5wYXJlbnRPclNoYWRvd0hvc3ROb2RlKCkpCiAgICAg
ICAgICAgICBpbmRlbnQuYXBwZW5kKCdcdCcpOwotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVz
IiwgaW5kZW50LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IGluZGVudC50b1N0cmluZygpKQorICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIl
cyIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENS
QVNIKCk7CiAgICAgICAgIG5vZGUtPnNob3dOb2RlKCk7CiAgICAgICAgIGluZGVudC5hcHBlbmQo
J1x0Jyk7CiAgICAgICAgIGlmICghbm9kZS0+aXNTaGFkb3dSb290KCkpIHsKLSAgICAgICAgICAg
IGlmIChTaGFkb3dSb290KiBzaGFkb3dSb290ID0gbm9kZS0+c2hhZG93Um9vdCgpKQotICAgICAg
ICAgICAgICAgIHRyYXZlcnNlVHJlZUFuZE1hcmsoaW5kZW50LnRvU3RyaW5nKCksIHNoYWRvd1Jv
b3QsIG1hcmtlZE5vZGUxLCBtYXJrZWRMYWJlbDEsIG1hcmtlZE5vZGUyLCBtYXJrZWRMYWJlbDIp
OworICAgICAgICAgICAgaWYgKFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QgPSBub2RlLT5zaGFkb3dS
b290KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBpbmRlbnQudG9TdHJp
bmcoKSkKKyAgICAgICAgICAgICAgICAgICAgdHJhdmVyc2VUcmVlQW5kTWFyaygqc3RyaW5nLCBz
aGFkb3dSb290LCBtYXJrZWROb2RlMSwgbWFya2VkTGFiZWwxLCBtYXJrZWROb2RlMiwgbWFya2Vk
TGFiZWwyKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIENSQVNI
KCk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9u
LmNwcAppbmRleCA4OWE1MDZmLi5hNTIwMTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKQEAg
LTE0MTksNyArMTQxOSwxMCBAQCB2b2lkIFBvc2l0aW9uOjpmb3JtYXRGb3JEZWJ1Z2dlcihjaGFy
KiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZChz
KTsKICAgICB9CiAKLSAgICBzdHJuY3B5KGJ1ZmZlciwgcmVzdWx0LnRvU3RyaW5nKCkudXRmOCgp
LmRhdGEoKSwgbGVuZ3RoIC0gMSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3Ry
aW5nKCkpCisgICAgICAgIHN0cm5jcHkoYnVmZmVyLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCksIGxl
bmd0aCAtIDEpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBQb3NpdGlv
bjo6c2hvd0FuY2hvclR5cGVBbmRPZmZzZXQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1JhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKaW5kZXgg
YTU3YTVlMi4uMTU5ODcwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCkBAIC05NDksNyArOTQ5LDkgQEAg
U3RyaW5nIFJhbmdlOjp0b1N0cmluZygpIGNvbnN0CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBy
ZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAog
U3RyaW5nIFJhbmdlOjp0b0hUTUwoKSBjb25zdApAQCAtMTUzNSw3ICsxNTM3LDEwIEBAIHZvaWQg
UmFuZ2U6OmZvcm1hdEZvckRlYnVnZ2VyKGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgbGVuZ3RoKSBj
b25zdAogICAgIGVuZENvbnRhaW5lcigpLmZvcm1hdEZvckRlYnVnZ2VyKHMsIEZvcm1hdEJ1ZmZl
clNpemUpOwogICAgIHJlc3VsdC5hcHBlbmQocyk7CiAKLSAgICBzdHJuY3B5KGJ1ZmZlciwgcmVz
dWx0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0gMSk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHN0cm5jcHkoYnVmZmVyLCBzdHJp
bmctPnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0go
KTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0ZWRB
bmltYXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1h
dGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IGM0ZDg1ZDguLmE1MDM5MGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0xMTIs
NyArMTEyLDkgQEAgc3RhdGljIFN0cmluZyB0aHJvdHRsaW5nUmVhc29uc1RvU3RyaW5nKE9wdGlv
blNldDxTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI6OlQKICAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCd8Jyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHRocm90dGxpbmdSZWFzb25Ub1N0
cmluZyhyZWFzb24pKTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJp
dHlDb250ZXh0LmNwcAppbmRleCA0ZjhmMWE4Li4xNDgyMjFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2VjdXJpdHlDb250ZXh0LmNwcApAQCAtMTUyLDcgKzE1MiwxMCBAQCBTYW5kYm94RmxhZ3MgU2Vj
dXJpdHlDb250ZXh0OjpwYXJzZVNhbmRib3hQb2xpY3koY29uc3QgU3RyaW5nJiBwb2xpY3ksIFN0
cmluZyYgaQogICAgICAgICAgICAgdG9rZW5FcnJvcnMuYXBwZW5kTGl0ZXJhbCgiIGFyZSBpbnZh
bGlkIHNhbmRib3ggZmxhZ3MuIik7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHRva2VuRXJy
b3JzLmFwcGVuZExpdGVyYWwoIiBpcyBhbiBpbnZhbGlkIHNhbmRib3ggZmxhZy4iKTsKLSAgICAg
ICAgaW52YWxpZFRva2Vuc0Vycm9yTWVzc2FnZSA9IHRva2VuRXJyb3JzLnRvU3RyaW5nKCk7Cisg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHRva2VuRXJyb3JzLnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICBpbnZhbGlkVG9rZW5zRXJyb3JNZXNzYWdlID0gKnN0cmluZzsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICByZXR1cm4gZmxhZ3M7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4
dC5jcHAKaW5kZXggNzMxNWQxNi4uYjMyN2Y1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcApAQCAtMTEzLDcg
KzExMyw5IEBAIFN0cmluZyBUZXh0Ojp3aG9sZVRleHQoKSBjb25zdAogICAgIFN0cmluZ0J1aWxk
ZXIgcmVzdWx0OwogICAgIGZvciAoY29uc3QgVGV4dCogdGV4dCA9IHN0YXJ0VGV4dDsgdGV4dCAh
PSBvbmVQYXN0RW5kVGV4dDsgdGV4dCA9IFRleHROb2RlVHJhdmVyc2FsOjpuZXh0U2libGluZygq
dGV4dCkpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQodGV4dC0+ZGF0YSgpKTsKLSAgICByZXR1cm4g
cmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFJlZlB0cjxU
ZXh0PiBUZXh0OjpyZXBsYWNlV2hvbGVUZXh0KGNvbnN0IFN0cmluZyYgbmV3VGV4dCkKQEAgLTI0
MCw3ICsyNDIsMTAgQEAgdm9pZCBUZXh0Ojpmb3JtYXRGb3JEZWJ1Z2dlcihjaGFyKiBidWZmZXIs
IHVuc2lnbmVkIGxlbmd0aCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnIicpOwogICAg
IH0KIAotICAgIHN0cm5jcHkoYnVmZmVyLCByZXN1bHQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgp
LCBsZW5ndGggLSAxKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkK
KyAgICAgICAgc3RybmNweShidWZmZXIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0g
MSk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIGJ1ZmZlcltsZW5ndGggLSAxXSA9
ICdcMCc7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0Tm9k
ZVRyYXZlcnNhbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dE5vZGVUcmF2ZXJzYWwuY3Bw
CmluZGV4IGI3OGNhNzkuLjZkNDE4ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9U
ZXh0Tm9kZVRyYXZlcnNhbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHROb2RlVHJh
dmVyc2FsLmNwcApAQCAtNDIsNyArNDIsOSBAQCBTdHJpbmcgY29udGVudHNBc1N0cmluZyhjb25z
dCBDb250YWluZXJOb2RlJiByb290KQogewogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogICAg
IGFwcGVuZENvbnRlbnRzKHJvb3QsIHJlc3VsdCk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgY29udGVudHNBc1N0cmlu
Zyhjb25zdCBOb2RlJiByb290KQpAQCAtNTksNyArNjEsOSBAQCBTdHJpbmcgY2hpbGRUZXh0Q29u
dGVudChjb25zdCBDb250YWluZXJOb2RlJiByb290KQogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0
OwogICAgIGZvciAoVGV4dCogdGV4dCA9IFRleHROb2RlVHJhdmVyc2FsOjpmaXJzdENoaWxkKHJv
b3QpOyB0ZXh0OyB0ZXh0ID0gVGV4dE5vZGVUcmF2ZXJzYWw6Om5leHRTaWJsaW5nKCp0ZXh0KSkK
ICAgICAgICAgcmVzdWx0LmFwcGVuZCh0ZXh0LT5kYXRhKCkpOwotICAgIHJldHVybiByZXN1bHQu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAppbmRleCA2OWQ4YWYyLi5hZTE2ZjJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcApAQCAt
MTM4Miw3ICsxMzgyLDEwIEBAIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmFkZEJsb2NrU3R5bGUo
Y29uc3QgU3R5bGVDaGFuZ2UmIHN0eWxlQ2hhbmdlLCBIVE1MRWxlbWVuCiAgICAgICAgICAgICBj
c3NUZXh0LmFwcGVuZCgnICcpOwogICAgICAgICBjc3NUZXh0LmFwcGVuZChkZWNsLT5hc1RleHQo
KSk7CiAgICAgfQotICAgIHNldE5vZGVBdHRyaWJ1dGUoYmxvY2ssIHN0eWxlQXR0ciwgY3NzVGV4
dC50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBjc3NUZXh0LnRvU3RyaW5nKCkp
CisgICAgICAgIHNldE5vZGVBdHRyaWJ1dGUoYmxvY2ssIHN0eWxlQXR0ciwgKnN0cmluZyk7Cisg
ICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjph
ZGRJbmxpbmVTdHlsZUlmTmVlZGVkKEVkaXRpbmdTdHlsZSogc3R5bGUsIE5vZGUmIHN0YXJ0LCBO
b2RlJiBlbmQsIEVBZGRTdHlsZWRFbGVtZW50IGFkZFN0eWxlZEVsZW1lbnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0aW5nLmNwcAppbmRleCBlNzliNjQ2Li4zMGMxNjgwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdGluZy5jcHAKQEAgLTQyOSw3ICs0MjksOSBAQCBTdHJpbmcgc3RyaW5nV2l0aFJlYmFs
YW5jZWRXaGl0ZXNwYWNlKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBib29sIHN0YXJ0SXNTdGFydE9m
UAogCiAgICAgcmViYWxhbmNlZFN0cmluZy5yZXNlcnZlQ2FwYWNpdHkobGVuZ3RoKTsKICAgICBy
ZWJhbGFuY2VkU3RyaW5nLmFwcGVuZChzdHJpbmcsIHJlYmFsYW5jZWRTdHJpbmcubGVuZ3RoKCks
IGxlbmd0aCAtIHJlYmFsYW5jZWRTdHJpbmcubGVuZ3RoKCkpOwotICAgIHJldHVybiByZWJhbGFu
Y2VkU3RyaW5nLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmViYWxhbmNlZFN0
cmluZy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiBib29sIGlzVGFibGVTdHJ1Y3R1cmVOb2RlKGNvbnN0IE5vZGUqIG5vZGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0hUTUxJbnRlcmNoYW5nZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0hUTUxJbnRlcmNoYW5nZS5jcHAKaW5kZXggYjIyMzQzYi4uY2Y4NTIz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9IVE1MSW50ZXJjaGFuZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSFRNTEludGVyY2hhbmdlLmNwcApAQCAtOTUs
NyArOTUsOSBAQCBTdHJpbmcgY29udmVydEhUTUxUZXh0VG9JbnRlcmNoYW5nZUZvcm1hdChjb25z
dCBTdHJpbmcmIGluLCBjb25zdCBUZXh0KiBub2RlKQogICAgICAgICBpICs9IGNvbnN1bWVkOwog
ICAgIH0KIAotICAgIHJldHVybiBzLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
cy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3Vw
QWNjdW11bGF0b3IuY3BwCmluZGV4IDkwNjk2N2YuLmIzM2E1NTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCkBAIC0xMzAsNyArMTMwLDkgQEAgTWFy
a3VwQWNjdW11bGF0b3I6On5NYXJrdXBBY2N1bXVsYXRvcigpID0gZGVmYXVsdDsKIFN0cmluZyBN
YXJrdXBBY2N1bXVsYXRvcjo6c2VyaWFsaXplTm9kZXMoTm9kZSYgdGFyZ2V0Tm9kZSwgRUNoaWxk
cmVuT25seSBjaGlsZHJlbk9ubHksIFZlY3RvcjxRdWFsaWZpZWROYW1lPiogdGFnTmFtZXNUb1Nr
aXApCiB7CiAgICAgc2VyaWFsaXplTm9kZXNXaXRoTmFtZXNwYWNlcyh0YXJnZXROb2RlLCBjaGls
ZHJlbk9ubHksIDAsIHRhZ05hbWVzVG9Ta2lwKTsKLSAgICByZXR1cm4gbV9tYXJrdXAudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtX21hcmt1cC50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIE1hcmt1cEFjY3VtdWxh
dG9yOjpzZXJpYWxpemVOb2Rlc1dpdGhOYW1lc3BhY2VzKE5vZGUmIHRhcmdldE5vZGUsIEVDaGls
ZHJlbk9ubHkgY2hpbGRyZW5Pbmx5LCBjb25zdCBOYW1lc3BhY2VzKiBuYW1lc3BhY2VzLCBWZWN0
b3I8UXVhbGlmaWVkTmFtZT4qIHRhZ05hbWVzVG9Ta2lwKQpAQCAtNDgzLDExICs0ODUsMTUgQEAg
dm9pZCBNYXJrdXBBY2N1bXVsYXRvcjo6Z2VuZXJhdGVVbmlxdWVQcmVmaXgoUXVhbGlmaWVkTmFt
ZSYgcHJlZml4ZWROYW1lLCBjb25zdAogICAgICAgICBidWlsZGVyLmNsZWFyKCk7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiTlMiKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1i
ZXIoKyttX3ByZWZpeExldmVsKTsKLSAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lID0g
YnVpbGRlci50b0F0b21pY1N0cmluZygpOwotICAgICAgICBpZiAoIW5hbWVzcGFjZXMuZ2V0KG5h
bWUuaW1wbCgpKSkgewotICAgICAgICAgICAgcHJlZml4ZWROYW1lLnNldFByZWZpeChuYW1lKTsK
LSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b0F0b21pY1N0cmluZygpKSB7CisgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUg
PSAqc3RyaW5nOworICAgICAgICAgICAgaWYgKCFuYW1lc3BhY2VzLmdldChuYW1lLmltcGwoKSkp
IHsKKyAgICAgICAgICAgICAgICBwcmVmaXhlZE5hbWUuc2V0UHJlZml4KG5hbWUpOworICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQorICAgICAgICBlbHNl
CisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0gd2hpbGUgKHRydWUpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKaW5kZXggNjU3NGYxZS4uZjU0MzFlZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcApAQCAtMjY2NywxMiArMjY2Nywx
NSBAQCBTdHJpbmcgcGxhaW5UZXh0KGNvbnN0IFJhbmdlKiByLCBUZXh0SXRlcmF0b3JCZWhhdmlv
ciBkZWZhdWx0QmVoYXZpb3IsIGJvb2wgaXNEaQogICAgIGlmICghYnVmZmVyTGVuZ3RoKQogICAg
ICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIAotICAgIFN0cmluZyByZXN1bHQgPSBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKSB7
CisgICAgICAgIFN0cmluZyByZXN1bHQgPSAqc3RyaW5nOwogCi0gICAgaWYgKGlzRGlzcGxheVN0
cmluZykKLSAgICAgICAgci0+b3duZXJEb2N1bWVudCgpLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5
RW5jb2RpbmcocmVzdWx0KTsKKyAgICAgICAgaWYgKGlzRGlzcGxheVN0cmluZykKKyAgICAgICAg
ICAgIHItPm93bmVyRG9jdW1lbnQoKS5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKHJl
c3VsdCk7CiAKLSAgICByZXR1cm4gcmVzdWx0OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
IH0KKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgcGxhaW5UZXh0UmVwbGFjaW5nTm9CcmVha1Nw
YWNlKGNvbnN0IFJhbmdlKiByYW5nZSwgVGV4dEl0ZXJhdG9yQmVoYXZpb3IgZGVmYXVsdEJlaGF2
aW9yLCBib29sIGlzRGlzcGxheVN0cmluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0Nv
bW1hbmQuY3BwCmluZGV4IGZkNzkwNjYuLmJlZTYzZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdDb21tYW5kLmNwcApAQCAtNDI1LDcgKzQyNSw5IEBAIFJlZlB0cjxEYXRhVHJhbnNm
ZXI+IFR5cGluZ0NvbW1hbmQ6OmlucHV0RXZlbnREYXRhVHJhbnNmZXIoKSBjb25zdAogCiAgICAg
U3RyaW5nQnVpbGRlciBodG1sVGV4dDsKICAgICBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kQ2hh
cmFjdGVyc1JlcGxhY2luZ0VudGl0aWVzKGh0bWxUZXh0LCBtX2N1cnJlbnRUZXh0VG9JbnNlcnQs
IDAsIG1fY3VycmVudFRleHRUb0luc2VydC5sZW5ndGgoKSwgRW50aXR5TWFza0luSFRNTFBDREFU
QSk7Ci0gICAgcmV0dXJuIERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9ySW5wdXRFdmVudChtX2N1cnJl
bnRUZXh0VG9JbnNlcnQsIGh0bWxUZXh0LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGh0bWxUZXh0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNy
ZWF0ZUZvcklucHV0RXZlbnQobV9jdXJyZW50VGV4dFRvSW5zZXJ0LCAqc3RyaW5nKTsKKyAgICBD
UkFTSCgpOwogfQogCiB2b2lkIFR5cGluZ0NvbW1hbmQ6OmRpZEFwcGx5Q29tbWFuZCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcAppbmRleCAxODY1MGFiLi43
M2FjY2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAK
QEAgLTcwNyw3ICs3MDcsMTAgQEAgdm9pZCBWaXNpYmxlU2VsZWN0aW9uOjpmb3JtYXRGb3JEZWJ1
Z2dlcihjaGFyKiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3QKICAgICAgICAgcmVzdWx0
LmFwcGVuZChzKTsKICAgICB9CiAKLSAgICBzdHJuY3B5KGJ1ZmZlciwgcmVzdWx0LnRvU3RyaW5n
KCkudXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0gMSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVz
dWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHN0cm5jcHkoYnVmZmVyLCBzdHJpbmctPnV0ZjgoKS5k
YXRhKCksIGxlbmd0aCAtIDEpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9p
ZCBWaXNpYmxlU2VsZWN0aW9uOjpzaG93VHJlZUZvclRoaXMoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tCmluZGV4IGY0NDU2MTYuLmU5ODY0
NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlv
bi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0K
QEAgLTMxOSw3ICszMTksOSBAQCBzdGF0aWMgU3RyaW5nIGRhdGFEZXRlY3RvclN0cmluZ0ZvclBh
dGgoTlNJbmRleFBhdGggKnBhdGgpCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVy
KCh1bnNpZ25lZCBsb25nKVtwYXRoIGluZGV4QXRQb3NpdGlvbjowXSk7CiAgICAgICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kKCcvJyk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVy
KCh1bnNpZ25lZCBsb25nKVtwYXRoIGluZGV4QXRQb3NpdGlvbjoxXSk7Ci0gICAgICAgIHJldHVy
biBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
ICAgICBDUkFTSCgpOwogICAgIH0KICAgICBkZWZhdWx0OiB7CiAgICAgICAgIFN0cmluZ0J1aWxk
ZXIgc3RyaW5nQnVpbGRlcjsKQEAgLTMyOSw3ICszMzEsOSBAQCBzdGF0aWMgU3RyaW5nIGRhdGFE
ZXRlY3RvclN0cmluZ0ZvclBhdGgoTlNJbmRleFBhdGggKnBhdGgpCiAgICAgICAgICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZE51bWJlcigodW5zaWduZWQgbG9uZylbcGF0aCBpbmRleEF0UG9zaXRp
b246aV0pOwogICAgICAgICB9CiAKLSAgICAgICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQog
ICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENv
bnZlcnRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5t
bQppbmRleCA2YjEzOTdlLi41ZDMyOTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9j
b2NvYS9IVE1MQ29udmVydGVyLm1tCkBAIC0yMjU0LDcgKzIyNTQsMTAgQEAgdm9pZCBIVE1MQ29u
dmVydGVyOjpfcHJvY2Vzc1RleHQoQ2hhcmFjdGVyRGF0YSYgY2hhcmFjdGVyRGF0YSkKICAgICAg
ICAgfQogICAgICAgICBpZiAod2FzU3BhY2UpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgn
ICcpOwotICAgICAgICBvdXRwdXRTdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIG91dHB1
dFN0cmluZyA9ICpzdHJpbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAg
ICAgfQogCiAgICAgaWYgKG91dHB1dFN0cmluZy5sZW5ndGgoKSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9t
YXJrdXAuY3BwCmluZGV4IDU1NTFlZWMuLmQ1Njg4MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvbWFya3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1
cC5jcHAKQEAgLTI5MCw3ICsyOTAsMTAgQEAgdm9pZCBTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6
d3JhcFdpdGhOb2RlKE5vZGUmIG5vZGUsIGJvb2wgY29udmVydEJsb2Nrc1RvSW5saW4KICAgICAg
ICAgYXBwZW5kRWxlbWVudChtYXJrdXAsIGRvd25jYXN0PEVsZW1lbnQ+KG5vZGUpLCBjb252ZXJ0
QmxvY2tzVG9JbmxpbmVzICYmIGlzQmxvY2soJm5vZGUpLCByYW5nZUZ1bGx5U2VsZWN0c05vZGUp
OwogICAgIGVsc2UKICAgICAgICAgYXBwZW5kU3RhcnRNYXJrdXAobWFya3VwLCBub2RlLCBudWxs
cHRyKTsKLSAgICBtX3JldmVyc2VkUHJlY2VkaW5nTWFya3VwLmFwcGVuZChtYXJrdXAudG9TdHJp
bmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWFya3VwLnRvU3RyaW5nKCkpCisgICAgICAg
IG1fcmV2ZXJzZWRQcmVjZWRpbmdNYXJrdXAuYXBwZW5kKCpzdHJpbmcpOworICAgIGVsc2UKKyAg
ICAgICAgQ1JBU0goKTsKICAgICBhcHBlbmRFbmRUYWcobm9kZSk7CiAgICAgaWYgKG1fbm9kZXMp
CiAgICAgICAgIG1fbm9kZXMtPmFwcGVuZCgmbm9kZSk7CkBAIC0zMDAsNyArMzAzLDEwIEBAIHZv
aWQgU3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OndyYXBXaXRoU3R5bGVOb2RlKFN0eWxlUHJvcGVy
dGllcyogc3R5bGUsIERvY3VtZW50CiB7CiAgICAgU3RyaW5nQnVpbGRlciBvcGVuVGFnOwogICAg
IGFwcGVuZFN0eWxlTm9kZU9wZW5UYWcob3BlblRhZywgc3R5bGUsIGRvY3VtZW50LCBpc0Jsb2Nr
KTsKLSAgICBtX3JldmVyc2VkUHJlY2VkaW5nTWFya3VwLmFwcGVuZChvcGVuVGFnLnRvU3RyaW5n
KCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG9wZW5UYWcudG9TdHJpbmcoKSkKKyAgICAgICAg
bV9yZXZlcnNlZFByZWNlZGluZ01hcmt1cC5hcHBlbmQoKnN0cmluZyk7CisgICAgZWxzZQorICAg
ICAgICBDUkFTSCgpOwogICAgIGFwcGVuZFN0cmluZyhzdHlsZU5vZGVDbG9zZVRhZyhpc0Jsb2Nr
KSk7CiB9CiAKQEAgLTMzNCw3ICszNDAsOSBAQCBTdHJpbmcgU3R5bGVkTWFya3VwQWNjdW11bGF0
b3I6OnRha2VSZXN1bHRzKCkKICAgICBjb25jYXRlbmF0ZU1hcmt1cChyZXN1bHQpOwogCiAgICAg
Ly8gV2UgcmVtb3ZlICdcMCcgY2hhcmFjdGVycyBiZWNhdXNlIHRoZXkgYXJlIG5vdCB2aXNpYmx5
IHJlbmRlcmVkIHRvIHRoZSB1c2VyLgotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKS5yZXBs
YWNlV2l0aExpdGVyYWwoJ1wwJywgIiIpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gc3RyaW5nLT5yZXBsYWNlV2l0aExpdGVyYWwoJ1ww
JywgIiIpOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgU3R5bGVkTWFya3VwQWNjdW11bGF0b3I6
OmFwcGVuZFRleHQoU3RyaW5nQnVpbGRlciYgb3V0LCBjb25zdCBUZXh0JiB0ZXh0KQpAQCAtMzU5
LDcgKzM2NywxMCBAQCB2b2lkIFN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRUZXh0KFN0
cmluZ0J1aWxkZXImIG91dCwgY29uc3QgVGV4dCYgdGV4dCkKICAgICAgICAgU3RyaW5nIGNvbnRl
bnQgPSB1c2VSZW5kZXJlZFRleHQgPyByZW5kZXJlZFRleHQodGV4dCwgbV9yYW5nZSkgOiBzdHJp
bmdWYWx1ZUZvclJhbmdlKHRleHQsIG1fcmFuZ2UpOwogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1
ZmZlcjsKICAgICAgICAgYXBwZW5kQ2hhcmFjdGVyc1JlcGxhY2luZ0VudGl0aWVzKGJ1ZmZlciwg
Y29udGVudCwgMCwgY29udGVudC5sZW5ndGgoKSwgRW50aXR5TWFza0luUENEQVRBKTsKLSAgICAg
ICAgb3V0LmFwcGVuZChjb252ZXJ0SFRNTFRleHRUb0ludGVyY2hhbmdlRm9ybWF0KGJ1ZmZlci50
b1N0cmluZygpLCAmdGV4dCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWZmZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgICAgIG91dC5hcHBlbmQoY29udmVydEhUTUxUZXh0VG9JbnRlcmNo
YW5nZUZvcm1hdCgqc3RyaW5nLCAmdGV4dCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBD
UkFTSCgpOwogICAgIH0KIAogICAgIGlmICh3cmFwcGluZ1NwYW4pCkBAIC04NzMsNyArODg0LDkg
QEAgU3RyaW5nIHNhbml0aXplZE1hcmt1cEZvckZyYWdtZW50SW5Eb2N1bWVudChSZWY8RG9jdW1l
bnRGcmFnbWVudD4mJiBmcmFnbWVudCwgRG8KICAgICAgICAgICAgICJ4bWxucz1cImh0dHA6Ly93
d3cudzMub3JnL1RSL1JFQy1odG1sNDBcIj4iKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQocmVz
dWx0KTsKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8L2h0bWw+Iik7Ci0gICAgICAg
IHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBD
UkFTSCgpOwogICAgIH0KIAogICAgIHJldHVybiByZXN1bHQ7CkBAIC0xMDkyLDcgKzExMDUsOSBA
QCBTdHJpbmcgdXJsVG9NYXJrdXAoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUp
CiAgICAgbWFya3VwLmFwcGVuZExpdGVyYWwoIlwiPiIpOwogICAgIE1hcmt1cEFjY3VtdWxhdG9y
OjphcHBlbmRDaGFyYWN0ZXJzUmVwbGFjaW5nRW50aXRpZXMobWFya3VwLCB0aXRsZSwgMCwgdGl0
bGUubGVuZ3RoKCksIEVudGl0eU1hc2tJblBDREFUQSk7CiAgICAgbWFya3VwLmFwcGVuZExpdGVy
YWwoIjwvYT4iKTsKLSAgICByZXR1cm4gbWFya3VwLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gbWFya3VwLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIEV4Y2VwdGlvbk9yPFJlZjxEb2N1bWVudEZyYWdtZW50Pj4gY3JlYXRl
RnJhZ21lbnRGb3JJbm5lck91dGVySFRNTChFbGVtZW50JiBjb250ZXh0RWxlbWVudCwgY29uc3Qg
U3RyaW5nJiBtYXJrdXAsIFBhcnNlckNvbnRlbnRQb2xpY3kgcGFyc2VyQ29udGVudFBvbGljeSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwCmluZGV4IDlhMjIz
NGYuLjI4MzQ1YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRl
ckxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVy
LmNwcApAQCAtMzM3LDIwICszMzcsMjAgQEAgdm9pZCBGaWxlUmVhZGVyTG9hZGVyOjpjb252ZXJ0
VG9EYXRhVVJMKCkKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJkYXRhOiIpOwogCi0gICAgaWYgKCFtX2J5dGVzTG9hZGVkKSB7Ci0gICAgICAg
IG1fc3RyaW5nUmVzdWx0ID0gYnVpbGRlci50b1N0cmluZygpOwotICAgICAgICByZXR1cm47Cisg
ICAgaWYgKG1fYnl0ZXNMb2FkZWQpIHsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQobV9kYXRhVHlw
ZSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiO2Jhc2U2NCwiKTsKKworICAgICAg
ICBWZWN0b3I8Y2hhcj4gb3V0OworICAgICAgICBiYXNlNjRFbmNvZGUobV9yYXdEYXRhLT5kYXRh
KCksIG1fYnl0ZXNMb2FkZWQsIG91dCk7CisgICAgICAgIG91dC5hcHBlbmQoJ1wwJyk7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKG91dC5kYXRhKCkpOwogICAgIH0KIAotICAgIGJ1aWxkZXIuYXBw
ZW5kKG1fZGF0YVR5cGUpOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiO2Jhc2U2NCwiKTsK
LQotICAgIFZlY3RvcjxjaGFyPiBvdXQ7Ci0gICAgYmFzZTY0RW5jb2RlKG1fcmF3RGF0YS0+ZGF0
YSgpLCBtX2J5dGVzTG9hZGVkLCBvdXQpOwotICAgIG91dC5hcHBlbmQoJ1wwJyk7Ci0gICAgYnVp
bGRlci5hcHBlbmQob3V0LmRhdGEoKSk7Ci0KLSAgICBtX3N0cmluZ1Jlc3VsdCA9IGJ1aWxkZXIu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgIG1fc3RyaW5nUmVzdWx0ID0gKnN0cmluZzsKKyAgICBlbHNlCisgICAgICAgIENSQVNI
KCk7CiB9CiAKIGJvb2wgRmlsZVJlYWRlckxvYWRlcjo6aXNDb21wbGV0ZWQoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCmluZGV4IGM5NWY5NjkuLjdkY2QwZTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKQEAgLTI3MywxMCArMjczLDE0IEBAIHZvaWQg
RE9NVG9rZW5MaXN0Ojp1cGRhdGVBc3NvY2lhdGVkQXR0cmlidXRlRnJvbVRva2VucygpCiAgICAg
ICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCh0b2tl
bik7CiAgICAgfQotICAgIEF0b21pY1N0cmluZyBzZXJpYWxpemVkVmFsdWUgPSBidWlsZGVyLnRv
QXRvbWljU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0
cmluZygpKSB7CisgICAgICAgIEF0b21pY1N0cmluZyBzZXJpYWxpemVkVmFsdWUgPSAqc3RyaW5n
OwogCi0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaW5BdHRyaWJ1dGVVcGRhdGUobV9pblVwZGF0ZUFz
c29jaWF0ZWRBdHRyaWJ1dGVGcm9tVG9rZW5zLCB0cnVlKTsKLSAgICBtX2VsZW1lbnQuc2V0QXR0
cmlidXRlKG1fYXR0cmlidXRlTmFtZSwgc2VyaWFsaXplZFZhbHVlKTsKKyAgICAgICAgU2V0Rm9y
U2NvcGU8Ym9vbD4gaW5BdHRyaWJ1dGVVcGRhdGUobV9pblVwZGF0ZUFzc29jaWF0ZWRBdHRyaWJ1
dGVGcm9tVG9rZW5zLCB0cnVlKTsKKyAgICAgICAgbV9lbGVtZW50LnNldEF0dHJpYnV0ZShtX2F0
dHJpYnV0ZU5hbWUsIHNlcmlhbGl6ZWRWYWx1ZSk7CisgICAgfQorICAgIGVsc2UKKyAgICAgICAg
Q1JBU0goKTsKIH0KIAogVmVjdG9yPEF0b21pY1N0cmluZz4mIERPTVRva2VuTGlzdDo6dG9rZW5z
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAKaW5kZXggYjkzZTEyYi4uNTgz
NmM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAKQEAgLTEwNCw3ICsx
MDQsOSBAQCBTdHJpbmcgRW1haWxJbnB1dFR5cGU6OnNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5n
JiBwcm9wb3NlZFZhbHVlKSBjb25zdAogICAgICAgICAgICAgc3RyaXBwZWRWYWx1ZS5hcHBlbmQo
JywnKTsKICAgICAgICAgc3RyaXBwZWRWYWx1ZS5hcHBlbmQoc3RyaXBMZWFkaW5nQW5kVHJhaWxp
bmdIVE1MU3BhY2VzKGFkZHJlc3Nlc1tpXSkpOwogICAgIH0KLSAgICByZXR1cm4gc3RyaXBwZWRW
YWx1ZS50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmlwcGVkVmFsdWUudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxl
SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKaW5k
ZXggM2U1NWEwNS4uZmRjNDljNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxl
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3Bw
CkBAIC00NjcsNyArNDY3LDkgQEAgU3RyaW5nIEZpbGVJbnB1dFR5cGU6OmRlZmF1bHRUb29sVGlw
KCkgY29uc3QKICAgICAgICAgaWYgKGkgIT0gbGlzdFNpemUgLSAxKQogICAgICAgICAgICAgbmFt
ZXMuYXBwZW5kKCdcbicpOwogICAgIH0KLSAgICByZXR1cm4gbmFtZXMudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBuYW1lcy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRm9ybUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxl
ci5jcHAKaW5kZXggMGY1Yjc3NS4uMWEyOWE0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9Gb3JtQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29u
dHJvbGxlci5jcHAKQEAgLTMxMiw3ICszMTIsOSBAQCBzdGF0aWMgaW5saW5lIFN0cmluZyBmb3Jt
U2lnbmF0dXJlKGNvbnN0IEhUTUxGb3JtRWxlbWVudCYgZm9ybSkKICAgICAgICAgYnVpbGRlci5h
cHBlbmQoYWN0aW9uVVJMLnN0cmluZygpKTsKIAogICAgIHJlY29yZEZvcm1TdHJ1Y3R1cmUoZm9y
bSwgYnVpbGRlcik7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKIEF0b21pY1N0cmluZyBGb3JtS2V5R2VuZXJhdG9yOjpmb3JtS2V5
KGNvbnN0IEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUmIGNvbnRyb2wpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCmluZGV4IDcxNTIzMTcuLjE5NTQyYTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCkBAIC00MDAsMTAg
KzQwMCwxNCBAQCB2b2lkIEhUTUxBbmNob3JFbGVtZW50OjpoYW5kbGVDbGljayhFdmVudCYgZXZl
bnQpCiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgU3RyaW5nQnVpbGRl
ciB1cmw7Ci0gICAgdXJsLmFwcGVuZChzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMo
YXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihocmVmQXR0cikpKTsKLSAgICBhcHBlbmRT
ZXJ2ZXJNYXBNb3VzZVBvc2l0aW9uKHVybCwgZXZlbnQpOwotICAgIFVSTCBjb21wbGV0ZWRVUkwg
PSBkb2N1bWVudCgpLmNvbXBsZXRlVVJMKHVybC50b1N0cmluZygpKTsKKyAgICBVUkwgY29tcGxl
dGVkVVJMID0gZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChbJl0gKCkgeworICAgICAgICAgICAgU3Ry
aW5nQnVpbGRlciB1cmw7CisgICAgICAgICAgICB1cmwuYXBwZW5kKHN0cmlwTGVhZGluZ0FuZFRy
YWlsaW5nSFRNTFNwYWNlcyhhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGhyZWZBdHRy
KSkpOworICAgICAgICAgICAgYXBwZW5kU2VydmVyTWFwTW91c2VQb3NpdGlvbih1cmwsIGV2ZW50
KTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHVybC50b1N0cmluZygpKQorICAgICAg
ICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAg
fSgpKTsKIAogICAgIFN0cmluZyBkb3dubG9hZEF0dHJpYnV0ZTsKICNpZiBFTkFCTEUoRE9XTkxP
QURfQVRUUklCVVRFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApp
bmRleCA2NjRlZGYwLi5iNjdiNGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNF
bGVtZW50LmNwcApAQCAtMzM2LDggKzMzNiwxMSBAQCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQq
IEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0MmQoY29uc3QgU3RyaW5nJiB0eXBlKQog
ICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIlRvdGFsIGNhbnZhcyBtZW1vcnkg
dXNlIGV4Y2VlZHMgdGhlIG1heGltdW0gbGltaXQgKCIpOwogICAgICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZE51bWJlcihtYXhBY3RpdmVQaXhlbE1lbW9yeSgpIC8gMTAyNCAvIDEwMjQpOwogICAg
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiBNQikuIik7Ci0gICAgICAgIGRvY3Vt
ZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6
V2FybmluZywgc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKLSAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkg
eworICAgICAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNl
OjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAqc3RyaW5nKTsKKyAgICAgICAgICAgIHJldHVy
biBudWxscHRyOworICAgICAgICB9CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgbV9j
b250ZXh0ID0gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjcmVhdGUoKnRoaXMsIGRvY3VtZW50
KCkuaW5RdWlya3NNb2RlKCksIHVzZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSk7CkBAIC04
ODksOCArODkyLDExIEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUltYWdlQnVmZmVy
KCkgY29uc3QKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJDYW52YXMgYXJl
YSBleGNlZWRzIHRoZSBtYXhpbXVtIGxpbWl0ICh3aWR0aCAqIGhlaWdodCA+ICIpOwogICAgICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcihtYXhDYW52YXNBcmVhKTsKICAgICAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpLiIpOwotICAgICAgICBkb2N1bWVudCgpLmFkZENv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIHN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICBkb2N1
bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6
Oldhcm5pbmcsICpzdHJpbmcpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAg
ICAgIENSQVNIKCk7CiAgICAgfQogICAgIAogICAgIC8vIE1ha2Ugc3VyZSB3ZSBkb24ndCB1c2Ug
bW9yZSBwaXhlbCBtZW1vcnkgdGhhbiB0aGUgc3lzdGVtIGNhbiBzdXBwb3J0LgpAQCAtOTAwLDgg
KzkwNiwxMSBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcigpIGNv
bnN0CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiVG90YWwgY2FudmFzIG1l
bW9yeSB1c2UgZXhjZWVkcyB0aGUgbWF4aW11bSBsaW1pdCAoIik7CiAgICAgICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kTnVtYmVyKG1heEFjdGl2ZVBpeGVsTWVtb3J5KCkgLyAxMDI0IC8gMTAyNCk7
CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIE1CKS4iKTsKLSAgICAgICAg
ZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxl
dmVsOjpXYXJuaW5nLCBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOwotICAgICAgICByZXR1cm47
CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkgewor
ICAgICAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpK
UywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAqc3RyaW5nKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIGlmICghd2lkdGgoKSB8
fCAhaGVpZ2h0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb250RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5jcHAKaW5kZXgg
OGQ2YzM0Ny4uYzM1YTY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9u
dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVtZW50LmNw
cApAQCAtMTExLDEwICsxMTEsMTMgQEAgc3RhdGljIGJvb2wgcGFyc2VGb250U2l6ZShjb25zdCBD
aGFyYWN0ZXJUeXBlKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIGludCYKICAgICAvLyBT
dGVwIDgKICAgICBpbnQgdmFsdWU7CiAKKyAgICBpZiAoZGlnaXRzLmZhaWxlZCgpKQorICAgICAg
ICBDUkFTSCgpOworCiAgICAgaWYgKGRpZ2l0cy5pczhCaXQoKSkKLSAgICAgICAgdmFsdWUgPSBj
aGFyYWN0ZXJzVG9JbnRTdHJpY3QoZGlnaXRzLmNoYXJhY3RlcnM4KCksIGRpZ2l0cy5sZW5ndGgo
KSk7CisgICAgICAgIHZhbHVlID0gY2hhcmFjdGVyc1RvSW50U3RyaWN0KCpkaWdpdHMuY2hhcmFj
dGVyczgoKSwgZGlnaXRzLmxlbmd0aCgpKTsKICAgICBlbHNlCi0gICAgICAgIHZhbHVlID0gY2hh
cmFjdGVyc1RvSW50U3RyaWN0KGRpZ2l0cy5jaGFyYWN0ZXJzMTYoKSwgZGlnaXRzLmxlbmd0aCgp
KTsKKyAgICAgICAgdmFsdWUgPSBjaGFyYWN0ZXJzVG9JbnRTdHJpY3QoKmRpZ2l0cy5jaGFyYWN0
ZXJzMTYoKSwgZGlnaXRzLmxlbmd0aCgpKTsKIAogICAgIC8vIFN0ZXAgOQogICAgIGlmIChtb2Rl
ID09IFJlbGF0aXZlUGx1cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElt
YWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3Bw
CmluZGV4IDRmNjU5N2MuLmEyZTFjMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VF
bGVtZW50LmNwcApAQCAtNDc0LDcgKzQ3NCw5IEBAIFN0cmluZyBIVE1MSW1hZ2VFbGVtZW50Ojpj
b21wbGV0ZVVSTHNJbkF0dHJpYnV0ZVZhbHVlKGNvbnN0IFVSTCYgYmFzZSwgY29uc3QgQXR0CiAg
ICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgndycpOwogICAgICAgICAgICAgfQogICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgcmV0dXJuIEhUTUxFbGVtZW50Ojpjb21wbGV0
ZVVSTHNJbkF0dHJpYnV0ZVZhbHVlKGJhc2UsIGF0dHJpYnV0ZSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBkZTFjMmU4Li4zNmZiY2E1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTIzMiw5ICsyMzIsMTIgQEAg
c3RhdGljIFN0cmluZyBhY3Rpb25OYW1lKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6RGVsYXllZEFj
dGlvblR5cGUgYWN0aW9uKQogCiAjdW5kZWYgQUNUSU9OCiAKLSAgICBTdHJpbmcgbmFtZSA9IGFj
dGlvbkJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBBU1NFUlQoIW5hbWUuaXNFbXB0eSgpKTsKLSAg
ICByZXR1cm4gbmFtZTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBhY3Rpb25CdWlsZGVyLnRvU3Ry
aW5nKCkpIHsKKyAgICAgICAgU3RyaW5nIG5hbWUgPSAqc3RyaW5nOworICAgICAgICBBU1NFUlQo
IW5hbWUuaXNFbXB0eSgpKTsKKyAgICAgICAgcmV0dXJuIG5hbWU7CisgICAgfQorICAgIENSQVNI
KCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0
aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNw
cAppbmRleCA5ZjZkYWQyLi5mYTk4YWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxPcHRpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRp
b25FbGVtZW50LmNwcApAQCAtMzQ5LDcgKzM0OSw5IEBAIFN0cmluZyBIVE1MT3B0aW9uRWxlbWVu
dDo6Y29sbGVjdE9wdGlvbklubmVyVGV4dCgpIGNvbnN0CiAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgIG5vZGUgPSBOb2RlVHJhdmVyc2FsOjpuZXh0KCpub2RlLCB0aGlzKTsKICAgICB9Ci0gICAg
cmV0dXJuIHRleHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0ZXh0LnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQuY3BwCmluZGV4IGVkMTQ4NTcuLmQwZmI0YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC0xNDMsNyArMTQz
LDkgQEAgU3RyaW5nIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzdHJpcHBlZFBsYWNlaG9s
ZGVyKCkgY29uc3QKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBzdHJpcHBlZC5hcHBl
bmQoY2hhcmFjdGVyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN0cmlwcGVkLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaXBwZWQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIGJvb2wgaXNOb3RMaW5lQnJlYWso
VUNoYXIgY2gpIHsgcmV0dXJuIGNoICE9IG5ld2xpbmVDaGFyYWN0ZXIgJiYgY2ggIT0gY2Fycmlh
Z2VSZXR1cm47IH0KQEAgLTU1Miw3ICs1NTQsOSBAQCBzdGF0aWMgU3RyaW5nIGlubmVyVGV4dFZh
bHVlRnJvbShUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQmIGlubmVyVGV4dCkKICAgICAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoZG93bmNhc3Q8VGV4dD4oKm5vZGUpLmRhdGEoKSk7CiAgICAgfQog
ICAgIHN0cmlwVHJhaWxpbmdOZXdsaW5lKHJlc3VsdCk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIEhUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50OjpzZXRJbm5lclRleHRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQpAQCAt
NzM2LDcgKzc0MCw5IEBAIFN0cmluZyBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6dmFsdWVX
aXRoSGFyZExpbmVCcmVha3MoKSBjb25zdAogICAgICAgICAgICAgZ2V0TmV4dFNvZnRCcmVhayhs
aW5lLCBicmVha05vZGUsIGJyZWFrT2Zmc2V0KTsKICAgICB9CiAgICAgc3RyaXBUcmFpbGluZ05l
d2xpbmUocmVzdWx0KTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50KiBlbmNsb3NpbmdU
ZXh0Rm9ybUNvbnRyb2woY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
TWVkaWFEb2N1bWVudC5jcHAKaW5kZXggMTE5MzQwZi4uNjk3NzEyMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL01lZGlhRG9jdW1lbnQuY3BwCkBAIC0xMjEsNyArMTIxLDEwIEBAIHZvaWQgTWVkaWFEb2N1
bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQogI2lmIFBMQVRGT1JNKElPUykK
ICAgICAgICAgZWxlbWVudFN0eWxlLmFwcGVuZExpdGVyYWwoIndpZHRoOiAxMDAlOyBoZWlnaHQ6
IGF1dG87Iik7CiAjZW5kaWYKLSAgICAgICAgdmlkZW9FbGVtZW50LT5zZXRBdHRyaWJ1dGUoc3R5
bGVBdHRyLCBlbGVtZW50U3R5bGUudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGVsZW1lbnRTdHlsZS50b1N0cmluZygpKQorICAgICAgICAgICAgdmlkZW9FbGVtZW50LT5z
ZXRBdHRyaWJ1dGUoc3R5bGVBdHRyLCAqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBib2R5LT5hcHBlbmRDaGlsZCh2aWRlb0VsZW1lbnQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKaW5kZXggNWNk
NzkwNS4uNmY0ZTBmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1l
bnRTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Np
b24uY3BwCkBAIC04Niw3ICs4Niw5IEBAIHN0YXRpYyBTdHJpbmcgcmVzdHJpY3Rpb25OYW1lKE1l
ZGlhRWxlbWVudFNlc3Npb246OkJlaGF2aW9yUmVzdHJpY3Rpb25zIHJlc3RyaWN0CiAgICAgQ0FT
RShJbnZpc2libGVBdXRvcGxheU5vdFBlcm1pdHRlZCk7CiAgICAgQ0FTRShPdmVycmlkZVVzZXJH
ZXN0dXJlUmVxdWlyZW1lbnRGb3JNYWluQ29udGVudCk7CiAKLSAgICByZXR1cm4gcmVzdHJpY3Rp
b25CdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdHJpY3Rpb25C
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUZyYWdt
ZW50VVJJUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFGcmFnbWVudFVSSVBh
cnNlci5jcHAKaW5kZXggZTdhNTE2ZS4uMzA1YjY2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9NZWRpYUZyYWdtZW50VVJJUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL01lZGlhRnJhZ21lbnRVUklQYXJzZXIuY3BwCkBAIC01Miw3ICs1Miw5IEBAIHN0YXRpYyBT
dHJpbmcgY29sbGVjdERpZ2l0cyhjb25zdCBMQ2hhciogaW5wdXQsIHVuc2lnbmVkIGxlbmd0aCwg
dW5zaWduZWQmIHBvc2l0CiAgICAgLy8gRElHSVQgOyBhbnkgcG9zaXRpdmUgbnVtYmVyCiAgICAg
d2hpbGUgKHBvc2l0aW9uIDwgbGVuZ3RoICYmIGlzQVNDSUlEaWdpdChpbnB1dFtwb3NpdGlvbl0p
KQogICAgICAgICBkaWdpdHMuYXBwZW5kKGlucHV0W3Bvc2l0aW9uKytdKTsKLSAgICByZXR1cm4g
ZGlnaXRzLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gZGlnaXRzLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBT
dHJpbmcgY29sbGVjdEZyYWN0aW9uKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgbGVuZ3Ro
LCB1bnNpZ25lZCYgcG9zaXRpb24pCkBAIC02Nyw3ICs2OSw5IEBAIHN0YXRpYyBTdHJpbmcgY29s
bGVjdEZyYWN0aW9uKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25l
ZCYgcG9zCiAgICAgZGlnaXRzLmFwcGVuZChpbnB1dFtwb3NpdGlvbisrXSk7CiAgICAgd2hpbGUg
KHBvc2l0aW9uIDwgbGVuZ3RoICYmIGlzQVNDSUlEaWdpdChpbnB1dFtwb3NpdGlvbl0pKQogICAg
ICAgICBkaWdpdHMuYXBwZW5kKGlucHV0W3Bvc2l0aW9uKytdKTsKLSAgICByZXR1cm4gZGlnaXRz
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gZGlnaXRzLnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIE1lZGlhRnJhZ21lbnRV
UklQYXJzZXI6Ok1lZGlhRnJhZ21lbnRVUklQYXJzZXIoY29uc3QgVVJMJiB1cmwpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1R5cGVBaGVhZC5jcHAKaW5kZXggNzY0ZTUwMi4uM2VlYzQ4NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VHlwZUFoZWFkLmNwcApAQCAtODAsNyArODAsMTAgQEAgaW50IFR5cGVBaGVhZDo6aGFuZGxlRXZl
bnQoS2V5Ym9hcmRFdmVudCogZXZlbnQsIE1hdGNoTW9kZUZsYWdzIG1hdGNoTW9kZSkKICAgICAg
ICAgcHJlZml4ID0gU3RyaW5nKCZjLCAxKTsKICAgICAgICAgbV9yZXBlYXRpbmdDaGFyID0gYzsK
ICAgICB9IGVsc2UgaWYgKG1hdGNoTW9kZSAmIE1hdGNoUHJlZml4KSB7Ci0gICAgICAgIHByZWZp
eCA9IG1fYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IG1fYnVm
ZmVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBwcmVmaXggPSAqc3RyaW5nOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICBpZiAobV9idWZmZXIubGVuZ3RoKCkg
PiAxKSB7CiAgICAgICAgICAgICBtX3JlcGVhdGluZ0NoYXIgPSAwOwogICAgICAgICAgICAgc2Vh
cmNoU3RhcnRPZmZzZXQgPSAwOwpAQCAtMTA0LDkgKzEwNywxMiBAQCBpbnQgVHlwZUFoZWFkOjpo
YW5kbGVFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCwgTWF0Y2hNb2RlRmxhZ3MgbWF0Y2hNb2Rl
KQogCiAgICAgaWYgKG1hdGNoTW9kZSAmIE1hdGNoSW5kZXgpIHsKICAgICAgICAgYm9vbCBvayA9
IGZhbHNlOwotICAgICAgICBpbnQgaW5kZXggPSBtX2J1ZmZlci50b1N0cmluZygpLnRvSW50KCZv
ayk7Ci0gICAgICAgIGlmIChpbmRleCA+IDAgJiYgaW5kZXggPD0gb3B0aW9uQ291bnQpCi0gICAg
ICAgICAgICByZXR1cm4gaW5kZXggLSAxOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBtX2J1
ZmZlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICBpbnQgaW5kZXggPSBzdHJpbmctPnRvSW50
KCZvayk7CisgICAgICAgICAgICBpZiAoaW5kZXggPiAwICYmIGluZGV4IDw9IG9wdGlvbkNvdW50
KQorICAgICAgICAgICAgICAgIHJldHVybiBpbmRleCAtIDE7CisgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgcmV0dXJuIC0xOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAK
aW5kZXggYzI3YWYyMy4uZDk0ZmNlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCkBAIC0xMTcsNyArMTE3LDkg
QEAgU3RyaW5nIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Zm9udCgpIGNvbnN0CiAgICAgICAg
IHNlcmlhbGl6ZWRGb250LmFwcGVuZChmYW1pbHkpOwogICAgIH0KIAotICAgIHJldHVybiBzZXJp
YWxpemVkRm9udC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHNlcmlhbGl6ZWRG
b250LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRGb250KGNvbnN0IFN0cmluZyYg
bmV3Rm9udCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyREJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKaW5kZXggNzY4YzBmYy4uN2E4OGNkNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEQmFzZS5jcHAKQEAgLTIxNzIsOCArMjE3MiwxMSBAQCBFeGNlcHRpb25PcjxS
ZWZQdHI8SW1hZ2VEYXRhPj4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6Z2V0SW1hZ2VE
YXRhKEltYWdlQgogICAgICAgICBjb25zb2xlTWVzc2FnZS5hcHBlbmRMaXRlcmFsKCIgeCAiKTsK
ICAgICAgICAgY29uc29sZU1lc3NhZ2UuYXBwZW5kTnVtYmVyKGltYWdlRGF0YVJlY3QuaGVpZ2h0
KCkpOwogCi0gICAgICAgIGNhbnZhc0Jhc2UoKS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFk
ZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlJlbmRlcmluZywgTWVzc2FnZUxldmVsOjpF
cnJvciwgY29uc29sZU1lc3NhZ2UudG9TdHJpbmcoKSk7Ci0gICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBjb25z
b2xlTWVzc2FnZS50b1N0cmluZygpKSB7CisgICAgICAgICAgICBjYW52YXNCYXNlKCkuc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpSZW5k
ZXJpbmcsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICpzdHJpbmcpOworICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisgICAgICAgIH0KKyAgICAgICAgQ1JB
U0goKTsKICAgICB9CiAKICAgICByZXR1cm4gSW1hZ2VEYXRhOjpjcmVhdGUoaW1hZ2VEYXRhUmVj
dC5zaXplKCksIGJ5dGVBcnJheS5yZWxlYXNlTm9uTnVsbCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5k
ZXggNzg3NWRhOC4uY2Q1ZWUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTE2Miw3ICsxNjIsOSBA
QCBuYW1lc3BhY2UgewogCiAgICAgICAgIFN0cmluZyByZXN1bHQoKQogICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gbV9idWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBpZiAoYXV0
byBzdHJpbmcgPSBtX2J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU291cmNlVHJhY2tl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU291cmNlVHJhY2tlci5jcHAK
aW5kZXggMjJkYmE5MC4uODBiMWU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTFNvdXJjZVRyYWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxTb3VyY2VUcmFja2VyLmNwcApAQCAtODMsOCArODMsMTEgQEAgU3RyaW5nIEhUTUxT
b3VyY2VUcmFja2VyOjpzb3VyY2UoY29uc3QgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgbV9j
dXJyZW50U291cmNlLmFkdmFuY2UoKTsKICAgICB9CiAKLSAgICBtX2NhY2hlZFNvdXJjZUZvclRv
a2VuID0gc291cmNlLnRvU3RyaW5nKCk7Ci0gICAgcmV0dXJuIG1fY2FjaGVkU291cmNlRm9yVG9r
ZW47CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc291cmNlLnRvU3RyaW5nKCkpIHsKKyAgICAgICAg
bV9jYWNoZWRTb3VyY2VGb3JUb2tlbiA9ICpzdHJpbmc7CisgICAgICAgIHJldHVybiBtX2NhY2hl
ZFNvdXJjZUZvclRva2VuOworICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgSFRNTFNv
dXJjZVRyYWNrZXI6OnNvdXJjZShjb25zdCBIVE1MVG9rZW4mIHRva2VuLCB1bnNpZ25lZCBhdHRy
aWJ1dGVTdGFydCwgdW5zaWduZWQgYXR0cmlidXRlRW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRva2VuaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MVG9rZW5pemVyLmNwcAppbmRleCA4YWMyZjg1Li4zNjRlYzBlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmNwcApAQCAtMTQxLDggKzE0
MSwxMCBAQCBpbmxpbmUgYm9vbCBIVE1MVG9rZW5pemVyOjpwcm9jZXNzRW50aXR5KFNlZ21lbnRl
ZFN0cmluZyYgc291cmNlKQogICAgICAgICBBU1NFUlQoZGVjb2RlZEVudGl0eS5pc0VtcHR5KCkp
OwogICAgICAgICBidWZmZXJBU0NJSUNoYXJhY3RlcignJicpOwogICAgIH0gZWxzZSB7CisgICAg
ICAgIGlmIChkZWNvZGVkRW50aXR5LmZhaWxlZCgpKQorICAgICAgICAgICAgQ1JBU0goKTsKICAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlY29kZWRFbnRpdHkubGVuZ3RoKCk7ICsr
aSkKLSAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcihkZWNvZGVkRW50aXR5W2ldKTsKKyAgICAg
ICAgICAgIGJ1ZmZlckNoYXJhY3RlcigqZGVjb2RlZEVudGl0eVtpXSk7CiAgICAgfQogICAgIHJl
dHVybiB0cnVlOwogfQpAQCAtODYzLDggKzg2NSwxMCBAQCBib29sIEhUTUxUb2tlbml6ZXI6OnBy
b2Nlc3NUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKICAgICAgICAgICAgIEFTU0VSVChk
ZWNvZGVkRW50aXR5LmlzRW1wdHkoKSk7CiAgICAgICAgICAgICBtX3Rva2VuLmFwcGVuZFRvQXR0
cmlidXRlVmFsdWUoJyYnKTsKICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChkZWNv
ZGVkRW50aXR5LmZhaWxlZCgpKQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZGVjb2RlZEVudGl0eS5sZW5ndGgoKTsgKytpKQot
ICAgICAgICAgICAgICAgIG1fdG9rZW4uYXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZShkZWNvZGVkRW50
aXR5W2ldKTsKKyAgICAgICAgICAgICAgICBtX3Rva2VuLmFwcGVuZFRvQXR0cmlidXRlVmFsdWUo
KmRlY29kZWRFbnRpdHlbaV0pOwogICAgICAgICB9CiAgICAgICAgIC8vIFdlJ3JlIHN1cHBvc2Vk
IHRvIHN3aXRjaCBiYWNrIHRvIHRoZSBhdHRyaWJ1dGUgdmFsdWUgc3RhdGUgdGhhdAogICAgICAg
ICAvLyB3ZSB3ZXJlIGluIHdoZW4gd2Ugd2VyZSBzd2l0Y2hlZCBpbnRvIHRoaXMgc3RhdGUuIFJh
dGhlciB0aGFuCkBAIC0xNDAzLDcgKzE0MDcsOSBAQCBTdHJpbmcgSFRNTFRva2VuaXplcjo6YnVm
ZmVyZWRDaGFyYWN0ZXJzKCkgY29uc3QKICAgICBjaGFyYWN0ZXJzLmFwcGVuZCgnPCcpOwogICAg
IGNoYXJhY3RlcnMuYXBwZW5kKCcvJyk7CiAgICAgY2hhcmFjdGVycy5hcHBlbmQobV90ZW1wb3Jh
cnlCdWZmZXIuZGF0YSgpLCBtX3RlbXBvcmFyeUJ1ZmZlci5zaXplKCkpOwotICAgIHJldHVybiBj
aGFyYWN0ZXJzLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gY2hhcmFjdGVycy50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2
b2lkIEhUTUxUb2tlbml6ZXI6OnVwZGF0ZVN0YXRlRm9yKGNvbnN0IEF0b21pY1N0cmluZyYgdGFn
TmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVp
bGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3Bw
CmluZGV4IGIxMGE0YzQuLjg5OWQ0YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFRyZWVCdWlsZGVyLmNwcApAQCAtMjU2OSwxOSArMjU2OSwyMiBAQCB2b2lkIEhUTUxU
cmVlQnVpbGRlcjo6ZGVmYXVsdEZvckFmdGVySGVhZCgpCiAKIHZvaWQgSFRNTFRyZWVCdWlsZGVy
OjpkZWZhdWx0Rm9ySW5UYWJsZVRleHQoKQogewotICAgIFN0cmluZyBjaGFyYWN0ZXJzID0gbV9w
ZW5kaW5nVGFibGVDaGFyYWN0ZXJzLnRvU3RyaW5nKCk7Ci0gICAgbV9wZW5kaW5nVGFibGVDaGFy
YWN0ZXJzLmNsZWFyKCk7Ci0gICAgaWYgKCFpc0FsbFdoaXRlc3BhY2UoY2hhcmFjdGVycykpIHsK
LSAgICAgICAgLy8gRklYTUU6IHBhcnNlIGVycm9yCi0gICAgICAgIEhUTUxDb25zdHJ1Y3Rpb25T
aXRlOjpSZWRpcmVjdFRvRm9zdGVyUGFyZW50R3VhcmQgcmVkaXJlY3RlcihtX3RyZWUpOwotICAg
ICAgICBtX3RyZWUucmVjb25zdHJ1Y3RUaGVBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKLSAg
ICAgICAgbV90cmVlLmluc2VydFRleHROb2RlKGNoYXJhY3RlcnMsIE5vdEFsbFdoaXRlc3BhY2Up
OwotICAgICAgICBtX2ZyYW1lc2V0T2sgPSBmYWxzZTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBt
X3BlbmRpbmdUYWJsZUNoYXJhY3RlcnMudG9TdHJpbmcoKSkgeworICAgICAgICBTdHJpbmcgY2hh
cmFjdGVycyA9ICpzdHJpbmc7CisgICAgICAgIG1fcGVuZGluZ1RhYmxlQ2hhcmFjdGVycy5jbGVh
cigpOworICAgICAgICBpZiAoIWlzQWxsV2hpdGVzcGFjZShjaGFyYWN0ZXJzKSkgeworICAgICAg
ICAgICAgLy8gRklYTUU6IHBhcnNlIGVycm9yCisgICAgICAgICAgICBIVE1MQ29uc3RydWN0aW9u
U2l0ZTo6UmVkaXJlY3RUb0Zvc3RlclBhcmVudEd1YXJkIHJlZGlyZWN0ZXIobV90cmVlKTsKKyAg
ICAgICAgICAgIG1fdHJlZS5yZWNvbnN0cnVjdFRoZUFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygp
OworICAgICAgICAgICAgbV90cmVlLmluc2VydFRleHROb2RlKGNoYXJhY3RlcnMsIE5vdEFsbFdo
aXRlc3BhY2UpOworICAgICAgICAgICAgbV9mcmFtZXNldE9rID0gZmFsc2U7CisgICAgICAgICAg
ICBtX2luc2VydGlvbk1vZGUgPSBtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBtX3RyZWUuaW5zZXJ0VGV4dE5vZGUoY2hhcmFj
dGVycyk7CiAgICAgICAgIG1faW5zZXJ0aW9uTW9kZSA9IG1fb3JpZ2luYWxJbnNlcnRpb25Nb2Rl
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIG1fdHJlZS5pbnNlcnRUZXh0Tm9kZShjaGFy
YWN0ZXJzKTsKLSAgICBtX2luc2VydGlvbk1vZGUgPSBtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZTsK
KyAgICB9IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBIVE1MVHJlZUJ1aWxkZXI6
OnByb2Nlc3NTdGFydFRhZ0ZvckluSGVhZChBdG9taWNIVE1MVG9rZW4mJiB0b2tlbikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwCmluZGV4
IDgwYjQyMTMuLjdkNGM4OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
WFNTQXVkaXRvckRlbGVnYXRlLmNwcApAQCAtNjYsNyArNjYsOSBAQCBzdGF0aWMgaW5saW5lIFN0
cmluZyBidWlsZENvbnNvbGVFcnJvcihjb25zdCBYU1NJbmZvJiB4c3NJbmZvKQogICAgIGVsc2UK
ICAgICAgICAgbWVzc2FnZS5hcHBlbmRMaXRlcmFsKCIgVGhlIGF1ZGl0b3Igd2FzIGVuYWJsZWQg
YmVjYXVzZSB0aGUgc2VydmVyIGRpZCBub3Qgc2VuZCBhbiAnWC1YU1MtUHJvdGVjdGlvbicgaGVh
ZGVyLiIpOwogCi0gICAgcmV0dXJuIG1lc3NhZ2UudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBtZXNzYWdlLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIFJlZjxGb3JtRGF0YT4gWFNTQXVkaXRvckRlbGVnYXRlOjpnZW5lcmF0
ZVZpb2xhdGlvblJlcG9ydChjb25zdCBYU1NJbmZvJiB4c3NJbmZvKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9CdWZmZXJlZExpbmVSZWFkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9CdWZmZXJlZExpbmVSZWFkZXIuY3BwCmluZGV4IDhmMjM2MjUuLmIy
NDk5ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQnVmZmVyZWRMaW5l
UmVhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0J1ZmZlcmVkTGluZVJl
YWRlci5jcHAKQEAgLTkyLDkgKzkyLDExIEBAIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBCdWZmZXJl
ZExpbmVSZWFkZXI6Om5leHRMaW5lKCkKICAgICB9CiAKICAgICBpZiAoc2hvdWxkUmV0dXJuTGlu
ZSkgewotICAgICAgICBhdXRvIGxpbmUgPSBtX2xpbmVCdWZmZXIudG9TdHJpbmcoKTsKLSAgICAg
ICAgbV9saW5lQnVmZmVyLmNsZWFyKCk7Ci0gICAgICAgIHJldHVybiBXVEZNb3ZlKGxpbmUpOwor
ICAgICAgICBpZiAoYXV0byBsaW5lID0gbV9saW5lQnVmZmVyLnRvU3RyaW5nKCkpIHsKKyAgICAg
ICAgICAgIG1fbGluZUJ1ZmZlci5jbGVhcigpOworICAgICAgICAgICAgcmV0dXJuIFdURk1vdmUo
KmxpbmUpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAg
ICAgQVNTRVJUKG1fYnVmZmVyLmlzRW1wdHkoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Ry
YWNrQmFzZS5jcHAKaW5kZXggMzMzYTJmOC4uMjk0MTZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVHJhY2tCYXNlLmNwcApAQCAtMTUzLDcgKzE1MywxMCBAQCB2b2lkIFRyYWNrQmFzZTo6
c2V0TGFuZ3VhZ2UoY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKICAgICAgICAgICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiVGhlIGxhbmd1YWdlICciKTsKICAgICAgICAgICAg
IHN0cmluZ0J1aWxkZXIuYXBwZW5kKGxhbmd1YWdlKTsKICAgICAgICAgICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiJyBpcyBub3QgYSB2YWxpZCBCQ1AgNDcgbGFuZ3VhZ2UgdGFnLiIp
OwotICAgICAgICAgICAgbWVzc2FnZSA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgICAgICAgICBtZXNzYWdlID0gKnN0cmluZzsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAgICAgICAgIGlmIChhdXRvIGVsZW1lbnQgPSB0
aGlzLT5lbGVtZW50KCkpCiAgICAgICAgICAgICBlbGVtZW50LT5kb2N1bWVudCgpLmFkZENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlJlbmRlcmluZywgTWVzc2FnZUxldmVsOjpXYXJuaW5n
LCBtZXNzYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3Vl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAppbmRleCA3OGY4YWRm
Li4zYmJjMjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwCkBAIC02MjksNyAr
NjI5LDExIEBAIHZvaWQgVlRUQ3VlOjpkZXRlcm1pbmVUZXh0RGlyZWN0aW9uKCkKICAgICAgICAg
cGFyYWdyYXBoQnVpbGRlci5hcHBlbmQobm9kZS0+bm9kZVZhbHVlKCkpOwogICAgIH0KIAotICAg
IFN0cmluZyBwYXJhZ3JhcGggPSBwYXJhZ3JhcGhCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgU3Ry
aW5nIHBhcmFncmFwaCA9IFsmXSAoKSB7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHBhcmFn
cmFwaEJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
ICAgICBDUkFTSCgpOworICAgIH0oKTsKICAgICBpZiAoIXBhcmFncmFwaC5sZW5ndGgoKSkKICAg
ICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dl
YlZUVFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5j
cHAKaW5kZXggNTE4ZWQ4Yi4uODBkMDJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9XZWJWVFRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
V2ViVlRUUGFyc2VyLmNwcApAQCAtNDA0LDcgKzQwNCwxMCBAQCB2b2lkIFdlYlZUVFBhcnNlcjo6
Y3JlYXRlTmV3Q3VlKCkKICAgICBSZWZQdHI8V2ViVlRUQ3VlRGF0YT4gY3VlID0gV2ViVlRUQ3Vl
RGF0YTo6Y3JlYXRlKCk7CiAgICAgY3VlLT5zZXRTdGFydFRpbWUobV9jdXJyZW50U3RhcnRUaW1l
KTsKICAgICBjdWUtPnNldEVuZFRpbWUobV9jdXJyZW50RW5kVGltZSk7Ci0gICAgY3VlLT5zZXRD
b250ZW50KG1fY3VycmVudENvbnRlbnQudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gbV9jdXJyZW50Q29udGVudC50b1N0cmluZygpKQorICAgICAgICBjdWUtPnNldENvbnRlbnQo
KnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIGN1ZS0+c2V0SWQobV9j
dXJyZW50SWQpOwogICAgIGN1ZS0+c2V0U2V0dGluZ3MobV9jdXJyZW50U2V0dGluZ3MpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFRva2VuaXplci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFRva2VuaXplci5jcHAKaW5kZXggMDI0
YzA0YS4uOTYzNzBmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJW
VFRUb2tlbml6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9r
ZW5pemVyLmNwcApAQCAtMTA4LDExICsxMDgsMTUgQEAgRGF0YVN0YXRlOgogICAgICAgICBlbHNl
IHsKICAgICAgICAgICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gYWR2YW5jZSBpbnB1dCBvciBwZXJm
b3JtIGEgc3RhdGUgdHJhbnNpdGlvbiAtIGp1c3QgcmV0dXJuIGEgKG5ldykgdG9rZW4uCiAgICAg
ICAgICAgICAvLyAoT24gdGhlIG5leHQgY2FsbCB0byBuZXh0VG9rZW4gd2Ugd2lsbCBzZWUgJzwn
IGFnYWluLCBidXQgdGFrZSB0aGUgb3RoZXIgYnJhbmNoIGluIHRoaXMgaWYgaW5zdGVhZC4pCi0g
ICAgICAgICAgICByZXR1cm4gZW1pdFRva2VuKHRva2VuLCBXZWJWVFRUb2tlbjo6U3RyaW5nVG9r
ZW4ocmVzdWx0LnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJl
c3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHJldHVybiBlbWl0VG9rZW4odG9rZW4s
IFdlYlZUVFRva2VuOjpTdHJpbmdUb2tlbigqc3RyaW5nKSk7CisgICAgICAgICAgICBDUkFTSCgp
OwogICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtl
cikKLSAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdl
YlZUVFRva2VuOjpTdHJpbmdUb2tlbihyZXN1bHQudG9TdHJpbmcoKSkpOwotICAgIGVsc2Ugewor
ICAgIH0gZWxzZSBpZiAoY2hhcmFjdGVyID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4g
YWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OlN0cmluZ1Rv
a2VuKCpzdHJpbmcpKTsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9IGVsc2UgewogICAgICAgICBy
ZXN1bHQuYXBwZW5kKGNoYXJhY3Rlcik7CiAgICAgICAgIFdFQlZUVF9BRFZBTkNFX1RPKERhdGFT
dGF0ZSk7CiAgICAgfQpAQCAtMTQyLDEwICsxNDYsMTQgQEAgRXNjYXBlU3RhdGU6CiAgICAgICAg
IFdFQlZUVF9BRFZBTkNFX1RPKEVzY2FwZVN0YXRlKTsKICAgICB9IGVsc2UgaWYgKGNoYXJhY3Rl
ciA9PSAnPCcpIHsKICAgICAgICAgcmVzdWx0LmFwcGVuZChidWZmZXIpOwotICAgICAgICByZXR1
cm4gZW1pdFRva2VuKHRva2VuLCBXZWJWVFRUb2tlbjo6U3RyaW5nVG9rZW4ocmVzdWx0LnRvU3Ry
aW5nKCkpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICByZXR1cm4gZW1pdFRva2VuKHRva2VuLCBXZWJWVFRUb2tlbjo6U3RyaW5nVG9r
ZW4oKnN0cmluZykpOworICAgICAgICBDUkFTSCgpOwogICAgIH0gZWxzZSBpZiAoY2hhcmFjdGVy
ID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKICAgICAgICAgcmVzdWx0LmFwcGVuZChidWZmZXIpOwot
ICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRU
VG9rZW46OlN0cmluZ1Rva2VuKHJlc3VsdC50b1N0cmluZygpKSk7CisgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuIGFkdmFuY2VB
bmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpTdHJpbmdUb2tlbigqc3Ry
aW5nKSk7CisgICAgICAgIENSQVNIKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgcmVzdWx0LmFw
cGVuZChidWZmZXIpOwogICAgICAgICBidWZmZXIuY2xlYXIoKTsKQEAgLTE3Miw3ICsxODAsOSBA
QCBUYWdTdGF0ZToKICAgICAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oVGltZXN0YW1wVGFnU3RhdGUp
OwogICAgIH0gZWxzZSBpZiAoY2hhcmFjdGVyID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0ga0VuZE9m
RmlsZU1hcmtlcikgewogICAgICAgICBBU1NFUlQocmVzdWx0LmlzRW1wdHkoKSk7Ci0gICAgICAg
IHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6
U3RhcnRUYWcocmVzdWx0LnRvU3RyaW5nKCkpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
cmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tl
bihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OlN0YXJ0VGFnKCpzdHJpbmcpKTsKKyAgICAg
ICAgQ1JBU0goKTsKICAgICB9IGVsc2UgewogICAgICAgICByZXN1bHQuYXBwZW5kKGNoYXJhY3Rl
cik7CiAgICAgICAgIFdFQlZUVF9BRFZBTkNFX1RPKFN0YXJ0VGFnU3RhdGUpOwpAQCAtMTgzLDkg
KzE5MywxMSBAQCBTdGFydFRhZ1N0YXRlOgogICAgICAgICBXRUJWVFRfQURWQU5DRV9UTyhTdGFy
dFRhZ0Fubm90YXRpb25TdGF0ZSk7CiAgICAgZWxzZSBpZiAoY2hhcmFjdGVyID09ICcuJykKICAg
ICAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oU3RhcnRUYWdDbGFzc1N0YXRlKTsKLSAgICBlbHNlIGlm
IChjaGFyYWN0ZXIgPT0gJz4nIHx8IGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKQotICAg
ICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9r
ZW46OlN0YXJ0VGFnKHJlc3VsdC50b1N0cmluZygpKSk7Ci0gICAgZWxzZSB7CisgICAgZWxzZSBp
ZiAoY2hhcmFjdGVyID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikgewor
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAg
IHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6
U3RhcnRUYWcoKnN0cmluZykpOworICAgICAgICBDUkFTSCgpOworICAgIH0gZWxzZSB7CiAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoY2hhcmFjdGVyKTsKICAgICAgICAgV0VCVlRUX0FEVkFOQ0VfVE8o
U3RhcnRUYWdTdGF0ZSk7CiAgICAgfQpAQCAtMjAyLDI3ICsyMTQsNDEgQEAgU3RhcnRUYWdDbGFz
c1N0YXRlOgogICAgIH0gZWxzZSBpZiAoY2hhcmFjdGVyID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0g
a0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICBhZGROZXdDbGFzcyhjbGFzc2VzLCBidWZmZXIp
OwogICAgICAgICBidWZmZXIuY2xlYXIoKTsKLSAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0
VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpTdGFydFRhZyhyZXN1bHQudG9TdHJp
bmcoKSwgY2xhc3Nlcy50b0F0b21pY1N0cmluZygpKSk7CisgICAgICAgIGlmIChhdXRvIHJlc3Vs
dFN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgaWYgKGF1dG8gY2xhc3Nl
c1N0cmluZyA9IGNsYXNzZXMudG9BdG9taWNTdHJpbmcoKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OlN0YXJ0
VGFnKCpyZXN1bHRTdHJpbmcsICpjbGFzc2VzU3RyaW5nKSk7CisgICAgICAgIENSQVNIKCk7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgYnVmZmVyLmFwcGVuZChjaGFyYWN0ZXIpOwogICAgICAgICBX
RUJWVFRfQURWQU5DRV9UTyhTdGFydFRhZ0NsYXNzU3RhdGUpOwogICAgIH0KIAogU3RhcnRUYWdB
bm5vdGF0aW9uU3RhdGU6Ci0gICAgaWYgKGNoYXJhY3RlciA9PSAnPicgfHwgY2hhcmFjdGVyID09
IGtFbmRPZkZpbGVNYXJrZXIpCi0gICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1f
aW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6U3RhcnRUYWcocmVzdWx0LnRvU3RyaW5nKCksIGNs
YXNzZXMudG9BdG9taWNTdHJpbmcoKSwgYnVmZmVyLnRvQXRvbWljU3RyaW5nKCkpKTsKKyAgICBp
ZiAoY2hhcmFjdGVyID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikgewor
ICAgICAgICBpZiAoYXV0byByZXN1bHRTdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAg
ICAgICAgIGlmIChhdXRvIGNsYXNzZXNTdHJpbmcgPSBjbGFzc2VzLnRvQXRvbWljU3RyaW5nKCkp
CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gYnVmZmVyU3RyaW5nID0gYnVmZmVyLnRvQXRvbWlj
U3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2Vu
KG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6U3RhcnRUYWcoKnJlc3VsdFN0cmluZywgKmNs
YXNzZXNTdHJpbmcsICpidWZmZXJTdHJpbmcpKTsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9CiAg
ICAgYnVmZmVyLmFwcGVuZChjaGFyYWN0ZXIpOwogICAgIFdFQlZUVF9BRFZBTkNFX1RPKFN0YXJ0
VGFnQW5ub3RhdGlvblN0YXRlKTsKIAogRW5kVGFnU3RhdGU6Ci0gICAgaWYgKGNoYXJhY3RlciA9
PSAnPicgfHwgY2hhcmFjdGVyID09IGtFbmRPZkZpbGVNYXJrZXIpCi0gICAgICAgIHJldHVybiBh
ZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6RW5kVGFnKHJl
c3VsdC50b1N0cmluZygpKSk7CisgICAgaWYgKGNoYXJhY3RlciA9PSAnPicgfHwgY2hhcmFjdGVy
ID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lu
cHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OkVuZFRhZygqc3RyaW5nKSk7CisgICAgICAgIENSQVNI
KCk7CisgICAgfQogICAgIHJlc3VsdC5hcHBlbmQoY2hhcmFjdGVyKTsKICAgICBXRUJWVFRfQURW
QU5DRV9UTyhFbmRUYWdTdGF0ZSk7CiAKIFRpbWVzdGFtcFRhZ1N0YXRlOgotICAgIGlmIChjaGFy
YWN0ZXIgPT0gJz4nIHx8IGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKQotICAgICAgICBy
ZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OlRp
bWVzdGFtcFRhZyhyZXN1bHQudG9TdHJpbmcoKSkpOworICAgIGlmIChjaGFyYWN0ZXIgPT0gJz4n
IHx8IGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRF
bWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpUaW1lc3RhbXBUYWcoKnN0cmlu
ZykpOworICAgICAgICBDUkFTSCgpOworICAgIH0KICAgICByZXN1bHQuYXBwZW5kKGNoYXJhY3Rl
cik7CiAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oVGltZXN0YW1wVGFnU3RhdGUpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCmluZGV4IDlk
OTg1ODEuLjY1MWQyZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yU3R5bGVTaGVldC5jcHAKQEAgLTc3MSw3ICs3NzEsOSBAQCBTdHJpbmcgSW5zcGVjdG9yU3R5
bGU6OnNob3J0aGFuZFZhbHVlKGNvbnN0IFN0cmluZyYgc2hvcnRoYW5kUHJvcGVydHkpIGNvbnN0
CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgICAgICBidWlsZGVyLmFwcGVu
ZChpbmRpdmlkdWFsVmFsdWUpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIEluc3BlY3RvclN0eWxlOjpz
aG9ydGhhbmRQcmlvcml0eShjb25zdCBTdHJpbmcmIHNob3J0aGFuZFByb3BlcnR5KSBjb25zdApA
QCAtOTQzLDEzICs5NDUsMjAgQEAgRXhjZXB0aW9uT3I8Q1NTU3R5bGVSdWxlKj4gSW5zcGVjdG9y
U3R5bGVTaGVldDo6YWRkUnVsZShjb25zdCBTdHJpbmcmIHNlbGVjdG9yKQogICAgIHN0eWxlU2hl
ZXRUZXh0LmFwcGVuZExpdGVyYWwoIiB7fSIpOwogCiAgICAgLy8gVXNpbmcgc2V0VGV4dCgpIGFz
IHRoaXMgb3BlcmF0aW9uIGNoYW5nZXMgdGhlIHN0eWxlc2hlZXQgcnVsZSBzZXQuCi0gICAgc2V0
VGV4dChzdHlsZVNoZWV0VGV4dC50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBz
dHlsZVNoZWV0VGV4dC50b1N0cmluZygpKQorICAgICAgICBzZXRUZXh0KCpzdHJpbmcpOworICAg
IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIC8vIEluc3BlY3RvciBTdHlsZSBTaGVldHMg
YXJlIGFsd2F5cyB0cmVhdGVkIGFzIHRob3VnaCB0aGVpciBwYXJzZWQgZGF0YSBpcyByZWFkeS4K
ICAgICBpZiAobV9vcmlnaW4gPT0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpTdHlsZVNoZWV0
T3JpZ2luOjpJbnNwZWN0b3IpCiAgICAgICAgIGZpcmVTdHlsZVNoZWV0Q2hhbmdlZCgpOwotICAg
IGVsc2UKLSAgICAgICAgcmVwYXJzZVN0eWxlU2hlZXQoc3R5bGVTaGVldFRleHQudG9TdHJpbmco
KSk7CisgICAgZWxzZSB7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0eWxlU2hlZXRUZXh0
LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXBhcnNlU3R5bGVTaGVldCgqc3RyaW5nKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKKyAgICB9CiAKICAgICBBU1NFUlQobV9w
YWdlU3R5bGVTaGVldC0+bGVuZ3RoKCkpOwogICAgIHVuc2lnbmVkIGxhc3RSdWxlSW5kZXggPSBt
X3BhZ2VTdHlsZVNoZWV0LT5sZW5ndGgoKSAtIDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVB
Z2VudC5jcHAKaW5kZXggMTlhZjRlOS4uMDUyNDJiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRpb25D
YWNoZUFnZW50LmNwcApAQCAtMTcyLDExICsxNzIsMTMgQEAgUmVmPEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkFwcGxpY2F0aW9uQ2FjaGU6OkFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZT4gSW5zcGVjdG9y
QXAKICAgICBpZiAocmVzb3VyY2VJbmZvLmlzRXhwbGljaXQpCiAgICAgICAgIHR5cGVzLmFwcGVu
ZExpdGVyYWwoIkV4cGxpY2l0ICIpOwogCi0gICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkFwcGxpY2F0aW9uQ2FjaGU6OkFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6Y3JlYXRlKCkKLSAg
ICAgICAgLnNldFVybChyZXNvdXJjZUluZm8ucmVzb3VyY2Uuc3RyaW5nKCkpCi0gICAgICAgIC5z
ZXRTaXplKHN0YXRpY19jYXN0PGludD4ocmVzb3VyY2VJbmZvLnNpemUpKQotICAgICAgICAuc2V0
VHlwZSh0eXBlcy50b1N0cmluZygpKQotICAgICAgICAucmVsZWFzZSgpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHR5cGVzLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBcHBsaWNhdGlvbkNhY2hlOjpBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OmNyZWF0
ZSgpCisgICAgICAgICAgICAuc2V0VXJsKHJlc291cmNlSW5mby5yZXNvdXJjZS5zdHJpbmcoKSkK
KyAgICAgICAgICAgIC5zZXRTaXplKHN0YXRpY19jYXN0PGludD4ocmVzb3VyY2VJbmZvLnNpemUp
KQorICAgICAgICAgICAgLnNldFR5cGUoKnN0cmluZykKKyAgICAgICAgICAgIC5yZWxlYXNlKCk7
CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQu
Y3BwCmluZGV4IDQ2ZTRhZmUuLmFmMTcwNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKQEAgLTEzNCw4
ICsxMzQsMTEgQEAgcHVibGljOgogICAgICAgICBpZiAobV9kZWNvZGVyKQogICAgICAgICAgICAg
bV9yZXNwb25zZVRleHQuYXBwZW5kKG1fZGVjb2Rlci0+Zmx1c2goKSk7CiAKLSAgICAgICAgbV9j
YWxsYmFjay0+c2VuZFN1Y2Nlc3MobV9yZXNwb25zZVRleHQudG9TdHJpbmcoKSwgbV9taW1lVHlw
ZSwgbV9zdGF0dXNDb2RlKTsKLSAgICAgICAgZGlzcG9zZSgpOworICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBtX3Jlc3BvbnNlVGV4dC50b1N0cmluZygpKSB7CisgICAgICAgICAgICBtX2NhbGxi
YWNrLT5zZW5kU3VjY2Vzcygqc3RyaW5nLCBtX21pbWVUeXBlLCBtX3N0YXR1c0NvZGUpOworICAg
ICAgICAgICAgZGlzcG9zZSgpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7
CiAgICAgfQogCiAgICAgdm9pZCBkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKSBv
dmVycmlkZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJD
b25zb2xlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJDb25z
b2xlQWdlbnQuY3BwCmluZGV4IGRjOTY0ODYuLjYzODM4YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkNvbnNvbGVBZ2VudC5jcHAKQEAgLTE2OSw3ICsx
NjksMTAgQEAgdm9pZCBXZWJDb25zb2xlQWdlbnQ6OmRpZEZhaWxMb2FkaW5nKHVuc2lnbmVkIGxv
bmcgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFJlc28KICAgICAgICAgbWVzc2FnZS5hcHBlbmQo
ZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKSk7CiAgICAgfQogCi0gICAgYWRkTWVzc2FnZVRv
Q29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNzYWdlPihNZXNzYWdlU291cmNlOjpO
ZXR3b3JrLCBNZXNzYWdlVHlwZTo6TG9nLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBtZXNzYWdlLnRv
U3RyaW5nKCksIGVycm9yLmZhaWxpbmdVUkwoKSwgMCwgMCwgbnVsbHB0ciwgcmVxdWVzdElkZW50
aWZpZXIpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtZXNzYWdlLnRvU3RyaW5nKCkpCisgICAg
ICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25zb2xlTWVzc2FnZT4o
TWVzc2FnZVNvdXJjZTo6TmV0d29yaywgTWVzc2FnZVR5cGU6OkxvZywgTWVzc2FnZUxldmVsOjpF
cnJvciwgKnN0cmluZywgZXJyb3IuZmFpbGluZ1VSTCgpLCAwLCAwLCBudWxscHRyLCByZXF1ZXN0
SWRlbnRpZmllcikpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3Jp
Z2luQWNjZXNzQ29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5B
Y2Nlc3NDb250cm9sLmNwcAppbmRleCA2ODgwNGYyLi5mODhhNDVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcApAQCAtMTEyLDgg
KzExMiwxMiBAQCBSZXNvdXJjZVJlcXVlc3QgY3JlYXRlQWNjZXNzQ29udHJvbFByZWZsaWdodFJl
cXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZQogCiAgICAgICAgICAgICBoZWFkZXJC
dWZmZXIuYXBwZW5kKGhlYWRlckZpZWxkKTsKICAgICAgICAgfQotICAgICAgICBpZiAoIWhlYWRl
ckJ1ZmZlci5pc0VtcHR5KCkpCi0gICAgICAgICAgICBwcmVmbGlnaHRSZXF1ZXN0LnNldEhUVFBI
ZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6QWNjZXNzQ29udHJvbFJlcXVlc3RIZWFkZXJzLCBo
ZWFkZXJCdWZmZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmICghaGVhZGVyQnVmZmVyLmlzRW1w
dHkoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gaGVhZGVyQnVmZmVyLnRvU3Ry
aW5nKCkpCisgICAgICAgICAgICAgICAgcHJlZmxpZ2h0UmVxdWVzdC5zZXRIVFRQSGVhZGVyRmll
bGQoSFRUUEhlYWRlck5hbWU6OkFjY2Vzc0NvbnRyb2xSZXF1ZXN0SGVhZGVycywgKnN0cmluZyk7
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgfQog
ICAgIH0KIAogICAgIHJldHVybiBwcmVmbGlnaHRSZXF1ZXN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuY3BwCmluZGV4IDRkZjI1ZGEuLjk4NmZl
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy5jcHAKQEAgLTI2OCw3ICsyNjgsOSBAQCBTdHJpbmcgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6
dG9TdHJpbmcoKSBjb25zdAogCiAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7CiAKLSAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBw
Y2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcAppbmRleCBmZjI5Mzg5Li40ZjIy
ZDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZVN0b3JhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAKQEAgLTg0MSwxNyArODQxLDIwIEBAIGJvb2wgQXBw
bGljYXRpb25DYWNoZVN0b3JhZ2U6OnN0b3JlKEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZSogcmVz
b3VyY2UsIHVuc2lnbmVkCiAKICAgICAvLyBUaGVuLCBpbnNlcnQgdGhlIHJlc291cmNlCiAgICAg
Ci0gICAgLy8gU2VyaWFsaXplIHRoZSBoZWFkZXJzCi0gICAgU3RyaW5nQnVpbGRlciBzdHJpbmdC
dWlsZGVyOwotICAgIAotICAgIGZvciAoY29uc3QgYXV0byYgaGVhZGVyIDogcmVzb3VyY2UtPnJl
c3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkcygpKSB7Ci0gICAgICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kKGhlYWRlci5rZXkpOwotICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnOicpOwotICAg
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChoZWFkZXIudmFsdWUpOwotICAgICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICB9Ci0gICAgCi0gICAgU3RyaW5nIGhlYWRlcnMgPSBz
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgU3RyaW5nIGhlYWRlcnMgPSBbJl0gKCkgewor
ICAgICAgICAvLyBTZXJpYWxpemUgdGhlIGhlYWRlcnMKKyAgICAgICAgU3RyaW5nQnVpbGRlciBz
dHJpbmdCdWlsZGVyOworICAgIAorICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGhlYWRlciA6IHJl
c291cmNlLT5yZXNwb25zZSgpLmh0dHBIZWFkZXJGaWVsZHMoKSkgeworICAgICAgICAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmQoaGVhZGVyLmtleSk7CisgICAgICAgICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZCgnOicpOworICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoaGVhZGVyLnZh
bHVlKTsKKyAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOworICAgICAgICB9
CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOworICAgIH0oKTsKICAg
ICAKICAgICBTUUxpdGVTdGF0ZW1lbnQgcmVzb3VyY2VTdGF0ZW1lbnQobV9kYXRhYmFzZSwgIklO
U0VSVCBJTlRPIENhY2hlUmVzb3VyY2VzICh1cmwsIHN0YXR1c0NvZGUsIHJlc3BvbnNlVVJMLCBo
ZWFkZXJzLCBkYXRhLCBtaW1lVHlwZSwgdGV4dEVuY29kaW5nTmFtZSkgVkFMVUVTICg/LCA/LCA/
LCA/LCA/LCA/LCA/KSIpOwogICAgIGlmIChyZXNvdXJjZVN0YXRlbWVudC5wcmVwYXJlKCkgIT0g
U1FMSVRFX09LKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2Yv
TGVnYWN5V2ViQXJjaGl2ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9M
ZWdhY3lXZWJBcmNoaXZlLmNwcAppbmRleCAxMmEzMGNjLi5jZmU3Mzg2M2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3Bw
CkBAIC01NTcsMjEgKzU1NywyNCBAQCBSZWZQdHI8TGVnYWN5V2ViQXJjaGl2ZT4gTGVnYWN5V2Vi
QXJjaGl2ZTo6Y3JlYXRlRnJvbVNlbGVjdGlvbihGcmFtZSogZnJhbWUpCiAgICAgaWYgKGF1dG8g
c2VsZWN0aW9uUmFuZ2UgPSBmcmFtZS0+c2VsZWN0aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKSkK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoY3JlYXRlTWFya3VwKCpzZWxlY3Rpb25SYW5nZSwgJm5v
ZGVMaXN0LCBBbm5vdGF0ZUZvckludGVyY2hhbmdlKSk7CiAKLSAgICBhdXRvIGFyY2hpdmUgPSBj
cmVhdGUoYnVpbGRlci50b1N0cmluZygpLCAqZnJhbWUsIG5vZGVMaXN0LCBudWxscHRyKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgYXV0byBh
cmNoaXZlID0gY3JlYXRlKCpzdHJpbmcsICpmcmFtZSwgbm9kZUxpc3QsIG51bGxwdHIpOwogICAg
IAotICAgIGlmICghZG9jdW1lbnQtPmlzRnJhbWVTZXQoKSkKLSAgICAgICAgcmV0dXJuIGFyY2hp
dmU7CisgICAgICAgIGlmICghZG9jdW1lbnQtPmlzRnJhbWVTZXQoKSkKKyAgICAgICAgICAgIHJl
dHVybiBhcmNoaXZlOwogICAgICAgICAKLSAgICAvLyBXcmFwIHRoZSBmcmFtZXNldCBkb2N1bWVu
dCBpbiBhbiBpZnJhbWUgc28gaXQgY2FuIGJlIHBhc3RlZCBpbnRvCi0gICAgLy8gYW5vdGhlciBk
b2N1bWVudCAod2hpY2ggd2lsbCBoYXZlIGEgYm9keSBvciBmcmFtZXNldCBvZiBpdHMgb3duKS4g
Ci0gICAgU3RyaW5nIGlmcmFtZU1hcmt1cCA9ICI8aWZyYW1lIGZyYW1lYm9yZGVyPVwibm9cIiBt
YXJnaW53aWR0aD1cIjBcIiBtYXJnaW5oZWlnaHQ9XCIwXCIgd2lkdGg9XCI5OCUlXCIgaGVpZ2h0
PVwiOTglJVwiIHNyYz1cIiIgKyBmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVz
cG9uc2UoKS51cmwoKS5zdHJpbmcoKSArICJcIj48L2lmcmFtZT4iOwotICAgIGF1dG8gaWZyYW1l
UmVzb3VyY2UgPSBBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZSh1dGY4QnVmZmVyKGlmcmFtZU1hcmt1
cCksIGJsYW5rVVJMKCksICJ0ZXh0L2h0bWwiLCAiVVRGLTgiLCBTdHJpbmcoKSk7CisgICAgICAg
IC8vIFdyYXAgdGhlIGZyYW1lc2V0IGRvY3VtZW50IGluIGFuIGlmcmFtZSBzbyBpdCBjYW4gYmUg
cGFzdGVkIGludG8KKyAgICAgICAgLy8gYW5vdGhlciBkb2N1bWVudCAod2hpY2ggd2lsbCBoYXZl
IGEgYm9keSBvciBmcmFtZXNldCBvZiBpdHMgb3duKS4gCisgICAgICAgIFN0cmluZyBpZnJhbWVN
YXJrdXAgPSAiPGlmcmFtZSBmcmFtZWJvcmRlcj1cIm5vXCIgbWFyZ2lud2lkdGg9XCIwXCIgbWFy
Z2luaGVpZ2h0PVwiMFwiIHdpZHRoPVwiOTglJVwiIGhlaWdodD1cIjk4JSVcIiBzcmM9XCIiICsg
ZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnJlc3BvbnNlKCkudXJsKCkuc3RyaW5n
KCkgKyAiXCI+PC9pZnJhbWU+IjsKKyAgICAgICAgYXV0byBpZnJhbWVSZXNvdXJjZSA9IEFyY2hp
dmVSZXNvdXJjZTo6Y3JlYXRlKHV0ZjhCdWZmZXIoaWZyYW1lTWFya3VwKSwgYmxhbmtVUkwoKSwg
InRleHQvaHRtbCIsICJVVEYtOCIsIFN0cmluZygpKTsKIAotICAgIFZlY3RvcjxSZWY8TGVnYWN5
V2ViQXJjaGl2ZT4+IHN1YmZyYW1lQXJjaGl2ZXM7Ci0gICAgc3ViZnJhbWVBcmNoaXZlcy5yZXNl
cnZlSW5pdGlhbENhcGFjaXR5KDEpOwotICAgIHN1YmZyYW1lQXJjaGl2ZXMudW5jaGVja2VkQXBw
ZW5kKGFyY2hpdmUucmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgIFZlY3RvcjxSZWY8TGVnYWN5
V2ViQXJjaGl2ZT4+IHN1YmZyYW1lQXJjaGl2ZXM7CisgICAgICAgIHN1YmZyYW1lQXJjaGl2ZXMu
cmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSgxKTsKKyAgICAgICAgc3ViZnJhbWVBcmNoaXZlcy51bmNo
ZWNrZWRBcHBlbmQoYXJjaGl2ZS5yZWxlYXNlTm9uTnVsbCgpKTsKIAotICAgIHJldHVybiBjcmVh
dGUoaWZyYW1lUmVzb3VyY2UucmVsZWFzZU5vbk51bGwoKSwgeyB9LCBXVEZNb3ZlKHN1YmZyYW1l
QXJjaGl2ZXMpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZShpZnJhbWVSZXNvdXJjZS5yZWxlYXNl
Tm9uTnVsbCgpLCB7IH0sIFdURk1vdmUoc3ViZnJhbWVBcmNoaXZlcykpOworICAgIH0KKyAgICBD
UkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2
ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUv
bWh0bWwvTUhUTUxBcmNoaXZlLmNwcAppbmRleCA3MDVjNmRjLi5mZDU3ZjE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHAK
QEAgLTc2LDcgKzc2LDkgQEAgc3RhdGljIFN0cmluZyBnZW5lcmF0ZVJhbmRvbUJvdW5kYXJ5KCkK
ICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQobG93ZXJOaWJibGVUb0FTQ0lJSGV4RGlnaXQo
cmFuZG9tVmFsdWVzW2ldKSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHVwcGVyTmli
YmxlVG9BU0NJSUhleERpZ2l0KHJhbmRvbVZhbHVlc1tpXSkpOwogICAgIH0KLSAgICByZXR1cm4g
c3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogc3RhdGljIFN0cmluZyByZXBsYWNlTm9uUHJpbnRhYmxlQ2hhcmFjdGVycyhjb25zdCBT
dHJpbmcmIHRleHQpCkBAIC04OCw3ICs5MCw5IEBAIHN0YXRpYyBTdHJpbmcgcmVwbGFjZU5vblBy
aW50YWJsZUNoYXJhY3RlcnMoY29uc3QgU3RyaW5nJiB0ZXh0KQogICAgICAgICBlbHNlCiAgICAg
ICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnPycpOwogICAgIH0KLSAgICByZXR1cm4gc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogTUhUTUxBcmNoaXZlOjpNSFRNTEFyY2hpdmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAppbmRleCBjMTM5MDc2Li4z
Y2Y2NjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVy
ZW5jZXNNZWRpYUFGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJl
ZmVyZW5jZXNNZWRpYUFGLmNwcApAQCAtMzQ3LDE0ICszNDcsMTggQEAgU3RyaW5nIENhcHRpb25V
c2VyUHJlZmVyZW5jZXNNZWRpYUFGOjp3aW5kb3dSb3VuZGVkQ29ybmVyUmFkaXVzQ1NTKCkgY29u
c3QKIAogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBhcHBlbmRDU1MoYnVpbGRlciwg
Q1NTUHJvcGVydHlCb3JkZXJSYWRpdXMsIFN0cmluZzo6Zm9ybWF0KCIlLjAyZnB4IiwgcmFkaXVz
KSwgYmVoYXZpb3IgPT0ga01BQ2FwdGlvbkFwcGVhcmFuY2VCZWhhdmlvclVzZVZhbHVlKTsKLSAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjb2xvclByb3BlcnR5Q1NT
KENTU1Byb3BlcnR5SUQgaWQsIGNvbnN0IENvbG9yJiBjb2xvciwgYm9vbCBpbXBvcnRhbnQpIGNv
bnN0CiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGFwcGVuZENTUyhidWlsZGVy
LCBpZCwgY29sb3Iuc2VyaWFsaXplZCgpLCBpbXBvcnRhbnQpOwotICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENhcHRpb25V
c2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uU3Ryb2tlV2lkdGhGb3JGb250KGZsb2F0IGZv
bnRTaXplLCBjb25zdCBTdHJpbmcmIGxhbmd1YWdlLCBmbG9hdCYgc3Ryb2tlV2lkdGgsIGJvb2wm
IGltcG9ydGFudCkgY29uc3QKQEAgLTQwNiw3ICs0MTAsOSBAQCBTdHJpbmcgQ2FwdGlvblVzZXJQ
cmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zVGV4dEVkZ2VDU1MoKSBjb25zdAogICAgICAgICBh
cHBlbmRDU1MoYnVpbGRlciwgQ1NTUHJvcGVydHlTdHJva2VMaW5lY2FwLCBnZXRWYWx1ZU5hbWUo
Q1NTVmFsdWVSb3VuZCksIGltcG9ydGFudCk7CiAgICAgfQogICAgIAotICAgIHJldHVybiBidWls
ZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zRGVmYXVsdEZvbnRDU1MoKSBjb25z
dApAQCAtNDQ4LDcgKzQ1NCw5IEBAIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFB
Rjo6Y2FwdGlvbnNEZWZhdWx0Rm9udENTUygpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiICFpbXBvcnRhbnQiKTsKICAgICBidWlsZGVyLmFwcGVuZCgnOycpOwogICAgIAot
ICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiBmbG9hdCBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y2FwdGlvbkZvbnRTaXpl
U2NhbGVBbmRJbXBvcnRhbmNlKGJvb2wmIGltcG9ydGFudCkgY29uc3QKQEAgLTU5NSw5ICs2MDMs
MTEgQEAgU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc1N0eWxl
U2hlZXRPdmVycmlkZSgpIGNvbnN0CiAgICAgfQogI2VuZGlmIC8vIEhBVkUoTUVESUFfQUNDRVNT
SUJJTElUWV9GUkFNRVdPUkspCiAKLSAgICBMT0coTWVkaWEsICJDYXB0aW9uVXNlclByZWZlcmVu
Y2VzTWVkaWFBRjo6Y2FwdGlvbnNTdHlsZVNoZWV0T3ZlcnJpZGVTZXR0aW5nIHN0eWxlIHRvOlxu
JXMiLCBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkp
OwotCi0gICAgcmV0dXJuIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQudG9TdHJpbmco
KSkgeworICAgICAgICBMT0coTWVkaWEsICJDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6
Y2FwdGlvbnNTdHlsZVNoZWV0T3ZlcnJpZGVTZXR0aW5nIHN0eWxlIHRvOlxuJXMiLCBzdHJpbmct
PnV0ZjgoKS5kYXRhKCkpOworICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICB9CisgICAgQ1JB
U0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBsYW5ndWFnZUlkZW50aWZpZXIoY29uc3QgU3RyaW5n
JiBsYW5ndWFnZUNvZGUpCkBAIC02NjQsMTAgKzY3NCwxMyBAQCBzdGF0aWMgU3RyaW5nIHRyYWNr
RGlzcGxheU5hbWUoQXVkaW9UcmFjayogdHJhY2spCiAgICAgaWYgKGRpc3BsYXlOYW1lLmlzRW1w
dHkoKSkKICAgICAgICAgZGlzcGxheU5hbWUuYXBwZW5kKGF1ZGlvVHJhY2tOb0xhYmVsVGV4dCgp
KTsKIAotICAgIGlmICh0cmFjay0+a2luZCgpICE9IEF1ZGlvVHJhY2s6OmRlc2NyaXB0aW9uS2V5
d29yZCgpKQotICAgICAgICByZXR1cm4gZGlzcGxheU5hbWUudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBkaXNwbGF5TmFtZS50b1N0cmluZygpKSB7CisgICAgICAgIGlmICh0cmFj
ay0+a2luZCgpICE9IEF1ZGlvVHJhY2s6OmRlc2NyaXB0aW9uS2V5d29yZCgpKQorICAgICAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CiAKLSAgICByZXR1cm4gYXVkaW9EZXNjcmlwdGlvblRyYWNrU3Vm
Zml4VGV4dChkaXNwbGF5TmFtZS50b1N0cmluZygpKTsKKyAgICAgICAgcmV0dXJuIGF1ZGlvRGVz
Y3JpcHRpb25UcmFja1N1ZmZpeFRleHQoKnN0cmluZyk7CisgICAgfQorICAgIENSQVNIKCk7CiB9
CiAKIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6ZGlzcGxheU5hbWVGb3JU
cmFjayhBdWRpb1RyYWNrKiB0cmFjaykgY29uc3QKQEAgLTY4OCwyNiArNzAxLDI5IEBAIHN0YXRp
YyBTdHJpbmcgdHJhY2tEaXNwbGF5TmFtZShUZXh0VHJhY2sqIHRyYWNrKQogICAgIGlmIChkaXNw
bGF5TmFtZUJ1aWxkZXIuaXNFbXB0eSgpKQogICAgICAgICBkaXNwbGF5TmFtZUJ1aWxkZXIuYXBw
ZW5kKHRleHRUcmFja05vTGFiZWxUZXh0KCkpOwogCi0gICAgU3RyaW5nIGRpc3BsYXlOYW1lID0g
ZGlzcGxheU5hbWVCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gZGlz
cGxheU5hbWVCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgU3RyaW5nIGRpc3BsYXlOYW1l
ID0gKnN0cmluZzsKIAotICAgIGlmICh0cmFjay0+aXNDbG9zZWRDYXB0aW9ucygpKSB7Ci0gICAg
ICAgIGRpc3BsYXlOYW1lID0gY2xvc2VkQ2FwdGlvblRyYWNrTWVudUl0ZW1UZXh0KGRpc3BsYXlO
YW1lKTsKLSAgICAgICAgaWYgKHRyYWNrLT5pc0Vhc3lUb1JlYWQoKSkKLSAgICAgICAgICAgIGRp
c3BsYXlOYW1lID0gZWFzeVJlYWRlclRyYWNrTWVudUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsKKyAg
ICAgICAgaWYgKHRyYWNrLT5pc0Nsb3NlZENhcHRpb25zKCkpIHsKKyAgICAgICAgICAgIGRpc3Bs
YXlOYW1lID0gY2xvc2VkQ2FwdGlvblRyYWNrTWVudUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsKKyAg
ICAgICAgICAgIGlmICh0cmFjay0+aXNFYXN5VG9SZWFkKCkpCisgICAgICAgICAgICAgICAgZGlz
cGxheU5hbWUgPSBlYXN5UmVhZGVyVHJhY2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOwogCi0g
ICAgICAgIHJldHVybiBkaXNwbGF5TmFtZTsKLSAgICB9CisgICAgICAgICAgICByZXR1cm4gZGlz
cGxheU5hbWU7CisgICAgICAgIH0KIAotICAgIGlmICh0cmFjay0+aXNTREgoKSkKLSAgICAgICAg
ZGlzcGxheU5hbWUgPSBzZGhUcmFja01lbnVJdGVtVGV4dChkaXNwbGF5TmFtZSk7CisgICAgICAg
IGlmICh0cmFjay0+aXNTREgoKSkKKyAgICAgICAgICAgIGRpc3BsYXlOYW1lID0gc2RoVHJhY2tN
ZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOwogCi0gICAgaWYgKHRyYWNrLT5jb250YWluc09ubHlG
b3JjZWRTdWJ0aXRsZXMoKSkKLSAgICAgICAgZGlzcGxheU5hbWUgPSBmb3JjZWRUcmFja01lbnVJ
dGVtVGV4dChkaXNwbGF5TmFtZSk7CisgICAgICAgIGlmICh0cmFjay0+Y29udGFpbnNPbmx5Rm9y
Y2VkU3VidGl0bGVzKCkpCisgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IGZvcmNlZFRyYWNrTWVu
dUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsKIAotICAgIGlmICh0cmFjay0+aXNFYXN5VG9SZWFkKCkp
Ci0gICAgICAgIGRpc3BsYXlOYW1lID0gZWFzeVJlYWRlclRyYWNrTWVudUl0ZW1UZXh0KGRpc3Bs
YXlOYW1lKTsKKyAgICAgICAgaWYgKHRyYWNrLT5pc0Vhc3lUb1JlYWQoKSkKKyAgICAgICAgICAg
IGRpc3BsYXlOYW1lID0gZWFzeVJlYWRlclRyYWNrTWVudUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsK
IAotICAgIHJldHVybiBkaXNwbGF5TmFtZTsKKyAgICAgICAgcmV0dXJuIGRpc3BsYXlOYW1lOwor
ICAgIH0gZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQ2FwdGlvblVzZXJQcmVm
ZXJlbmNlc01lZGlhQUY6OmRpc3BsYXlOYW1lRm9yVHJhY2soVGV4dFRyYWNrKiB0cmFjaykgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggYTg0MjY1YS4uM2U0MjQ2ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZS5jcHAKQEAgLTM2OSw3ICszNjksOSBAQCBzdGF0aWMgSlNDOjpZYXJyOjpSZWd1bGFyRXhw
cmVzc2lvbiBjcmVhdGVSZWdFeHBGb3JMYWJlbHMoY29uc3QgVmVjdG9yPFN0cmluZz4mCiAgICAg
ICAgICAgICBwYXR0ZXJuLmFwcGVuZExpdGVyYWwoIlxcYiIpOwogICAgIH0KICAgICBwYXR0ZXJu
LmFwcGVuZCgnKScpOwotICAgIHJldHVybiBKU0M6OllhcnI6OlJlZ3VsYXJFeHByZXNzaW9uKHBh
dHRlcm4udG9TdHJpbmcoKSwgSlNDOjpZYXJyOjpUZXh0Q2FzZUluc2Vuc2l0aXZlKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBwYXR0ZXJuLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBKU0M6
OllhcnI6OlJlZ3VsYXJFeHByZXNzaW9uKCpzdHJpbmcsIEpTQzo6WWFycjo6VGV4dENhc2VJbnNl
bnNpdGl2ZSk7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIEZyYW1lOjpzZWFyY2hGb3JMYWJl
bHNBYm92ZUNlbGwoY29uc3QgSlNDOjpZYXJyOjpSZWd1bGFyRXhwcmVzc2lvbiYgcmVnRXhwLCBI
VE1MVGFibGVDZWxsRWxlbWVudCogY2VsbCwgc2l6ZV90KiByZXN1bHREaXN0YW5jZUZyb21TdGFy
dE9mQ2VsbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcAppbmRleCAyNmNjYzdhLi40ZGNlZjA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwCkBAIC0xNTAsNyArMTUwLDkgQEAgQXRvbWlj
U3RyaW5nIEZyYW1lVHJlZTo6dW5pcXVlQ2hpbGROYW1lKGNvbnN0IEF0b21pY1N0cmluZyYgcmVx
dWVzdGVkTmFtZSkgY29uc3QKICAgICBuYW1lLmFwcGVuZE51bWJlcihjaGlsZENvdW50KCkpOwog
ICAgIG5hbWUuYXBwZW5kTGl0ZXJhbCgiLS0+LS0+Iik7CiAKLSAgICByZXR1cm4gbmFtZS50b0F0
b21pY1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG5hbWUudG9BdG9taWNTdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIGJv
b2wgaW5TY29wZShGcmFtZSYgZnJhbWUsIFRyZWVTY29wZSYgc2NvcGUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKaW5kZXggZmYzYjhhYS4uMmEzNjBmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcApAQCAtMTQ1Miw3ICsxNDUyLDEwIEBAIHZvaWQgRnJhbWVWaWV3Ojpsb2dNb2NrU2Ny
b2xsQW5pbWF0b3JNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgY29uc3QKICAgICAgICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKCJNYWluIik7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFs
KCJGcmFtZVZpZXc6ICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG1lc3NhZ2UpOwotICAgIGRvY3Vt
ZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpPdGhlciwgTWVzc2FnZUxldmVs
OjpEZWJ1ZywgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNz
YWdlU291cmNlOjpPdGhlciwgTWVzc2FnZUxldmVsOjpEZWJ1ZywgKnN0cmluZyk7CisgICAgZWxz
ZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEZyYW1lVmlldzo6c2V0Q2Fubm90QmxpdFRv
V2luZG93KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKaW5kZXggNWY2NDIy
NC4uOWFhOWYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXpl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKQEAgLTI2
Myw4ICsyNjMsMTEgQEAgdm9pZCBQYWdlU2VyaWFsaXplcjo6c2VyaWFsaXplQ1NTU3R5bGVTaGVl
dChDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0LCBjb25zdCBVUkwKICAgICAgICAgLy8gRklYTUU6
IFdlIHNob3VsZCBjaGVjayB3aGV0aGVyIGEgY2hhcnNldCBoYXMgYmVlbiBzcGVjaWZpZWQgYW5k
IGlmIG5vbmUgd2FzIGZvdW5kIGFkZCBvbmUuCiAgICAgICAgIFRleHRFbmNvZGluZyB0ZXh0RW5j
b2Rpbmcoc3R5bGVTaGVldC0+Y29udGVudHMoKS5jaGFyc2V0KCkpOwogICAgICAgICBBU1NFUlQo
dGV4dEVuY29kaW5nLmlzVmFsaWQoKSk7Ci0gICAgICAgIG1fcmVzb3VyY2VzLmFwcGVuZCh7IHVy
bCwgQVNDSUlMaXRlcmFsIHsgInRleHQvY3NzIiB9LCBTaGFyZWRCdWZmZXI6OmNyZWF0ZSh0ZXh0
RW5jb2RpbmcuZW5jb2RlKGNzc1RleHQudG9TdHJpbmcoKSwgVW5lbmNvZGFibGVIYW5kbGluZzo6
RW50aXRpZXMpKSB9KTsKLSAgICAgICAgbV9yZXNvdXJjZVVSTHMuYWRkKHVybCk7CisgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IGNzc1RleHQudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgbV9y
ZXNvdXJjZXMuYXBwZW5kKHsgdXJsLCBBU0NJSUxpdGVyYWwgeyAidGV4dC9jc3MiIH0sIFNoYXJl
ZEJ1ZmZlcjo6Y3JlYXRlKHRleHRFbmNvZGluZy5lbmNvZGUoKnN0cmluZywgVW5lbmNvZGFibGVI
YW5kbGluZzo6RW50aXRpZXMpKSB9KTsKKyAgICAgICAgICAgIG1fcmVzb3VyY2VVUkxzLmFkZCh1
cmwpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5jcHAKaW5k
ZXggOWQ0NGQ5NC4uM2I0NGZmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZUxvZ2dpbmdDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2VMb2dnaW5nQ2xpZW50LmNwcApAQCAtNTAsNyArNTAsOSBAQCBTdHJpbmcgUGVyZm9ybWFu
Y2VMb2dnaW5nQ2xpZW50OjpzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNBc1N0cmluZyhTeW5j
aHJvbm91cwogICAgICAgICByZWFzb25zLmFwcGVuZExpdGVyYWwoImltYWdlIGRvY3VtZW50LCIp
OwogCiAgICAgLy8gU3RyaXAgdGhlIHRyYWlsaW5nIGNvbW1hLgotICAgIHJldHVybiByZWFzb25z
LnRvU3RyaW5nKCkubGVmdChyZWFzb25zLmxlbmd0aCgpIC0gMSk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gcmVhc29ucy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gc3RyaW5nLT5sZWZ0KHJl
YXNvbnMubGVuZ3RoKCkgLSAxKTsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luRGF0
YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luRGF0YS5jcHAKaW5kZXgg
MmFhYzhlZS4uZTNhYzhkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0
eU9yaWdpbkRhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW5E
YXRhLmNwcApAQCAtODQsNyArODQsOSBAQCBTdHJpbmcgU2VjdXJpdHlPcmlnaW5EYXRhOjpkYXRh
YmFzZUlkZW50aWZpZXIoKSBjb25zdAogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHNlcGFyYXRv
ckNoYXJhY3Rlcik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIocG9ydC52YWx1ZV9v
cigwKSk7CiAgICAgCi0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0ZDo6b3B0aW9uYWw8U2VjdXJpdHlPcmln
aW5EYXRhPiBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21EYXRhYmFzZUlkZW50aWZpZXIoY29uc3Qg
U3RyaW5nJiBkYXRhYmFzZUlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1doZWVsRXZlbnRUZXN0VHJpZ2dlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVs
RXZlbnRUZXN0VHJpZ2dlci5jcHAKaW5kZXggZWQ1NDljZi4uZmM1MDI1MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdFRyaWdnZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmNwcApAQCAtMTAwLDcgKzEwMCwx
MCBAQCBzdGF0aWMgdm9pZCBkdW1wU3RhdGUoV1RGOjpIYXNoTWFwPFdoZWVsRXZlbnRUZXN0VHJp
Z2dlcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaQogICAgICAgICAgICAgICAgIHJlYXNvbnMuYXBw
ZW5kKCIsICIpOwogICAgICAgICAgICAgcmVhc29ucy5hcHBlbmQoU3RyaW5nOjpudW1iZXIocmVh
c29uKSk7CiAgICAgICAgIH0KLSAgICAgICAgTE9HKFdoZWVsRXZlbnRUZXN0VHJpZ2dlcnMsICIg
ICAgIFJlYXNvbnM6ICVzIiwgcmVhc29ucy50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSByZWFzb25zLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBM
T0coV2hlZWxFdmVudFRlc3RUcmlnZ2VycywgIiAgICAgUmVhc29uczogJXMiLCBzdHJpbmctPnV0
ZjgoKS5kYXRhKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0K
IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNl
Y3VyaXR5UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0
eVBvbGljeS5jcHAKaW5kZXggZmMyZmQxMi4uM2M5MTg3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCkBAIC04NSw3ICs4NSw5IEBA
IHN0YXRpYyBTdHJpbmcgY29uc29sZU1lc3NhZ2VGb3JWaW9sYXRpb24oY29uc3QgY2hhciogZWZm
ZWN0aXZlVmlvbGF0ZWREaXJlY3RpdmUsCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoZWZmZWN0aXZl
VmlvbGF0ZWREaXJlY3RpdmUpOwogICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiIGRpcmVj
dGl2ZSBvZiB0aGUgQ29udGVudCBTZWN1cml0eSBQb2xpY3kuIik7CiAgICAgfQotICAgIHJldHVy
biByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogQ29udGVu
dFNlY3VyaXR5UG9saWN5OjpDb250ZW50U2VjdXJpdHlQb2xpY3koU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKQEAgLTEzNyw3ICsxMzksMTAgQEAgYm9vbCBD
b250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93UnVubmluZ09yRGlzcGxheWluZ0luc2VjdXJlQ29u
dGVudChjb25zdCBVUkwmIHUKICAgICAgICAgY29uc29sZU1lc3NhZ2UuYXBwZW5kKHVybC5zdHJp
bmdDZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSk7CiAgICAgICAgIGNvbnNvbGVNZXNzYWdlLmFw
cGVuZExpdGVyYWwoIiBiZWNhdXNlICIpOwogICAgICAgICBjb25zb2xlTWVzc2FnZS5hcHBlbmQo
IidibG9jay1hbGwtbWl4ZWQtY29udGVudCcgYXBwZWFycyBpbiB0aGUgQ29udGVudCBTZWN1cml0
eSBQb2xpY3kuIik7Ci0gICAgICAgIHJlcG9ydFZpb2xhdGlvbihDb250ZW50U2VjdXJpdHlQb2xp
Y3lEaXJlY3RpdmVOYW1lczo6YmxvY2tBbGxNaXhlZENvbnRlbnQsIENvbnRlbnRTZWN1cml0eVBv
bGljeURpcmVjdGl2ZU5hbWVzOjpibG9ja0FsbE1peGVkQ29udGVudCwgKnBvbGljeSwgdXJsLCBj
b25zb2xlTWVzc2FnZS50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gY29u
c29sZU1lc3NhZ2UudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJlcG9ydFZpb2xhdGlvbihDb250
ZW50U2VjdXJpdHlQb2xpY3lEaXJlY3RpdmVOYW1lczo6YmxvY2tBbGxNaXhlZENvbnRlbnQsIENv
bnRlbnRTZWN1cml0eVBvbGljeURpcmVjdGl2ZU5hbWVzOjpibG9ja0FsbE1peGVkQ29udGVudCwg
KnBvbGljeSwgdXJsLCAqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0go
KTsKIAogICAgICAgICBpZiAoIWlzUmVwb3J0T25seSkKICAgICAgICAgICAgIGFsbG93ID0gZmFs
c2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9BeGlzU2Nyb2xs
U25hcE9mZnNldHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXhpc1Njcm9s
bFNuYXBPZmZzZXRzLmNwcAppbmRleCAwMjA3NTM4Li5kOGQzZjI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9BeGlzU2Nyb2xsU25hcE9mZnNldHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0F4aXNTY3JvbGxTbmFwT2Zmc2V0cy5jcHAK
QEAgLTgxLDcgKzgxLDkgQEAgc3RhdGljIFN0cmluZyBzbmFwT2Zmc2V0c1RvU3RyaW5nKGNvbnN0
IFZlY3RvcjxMYXlvdXRVbml0PiYgc25hcE9mZnNldHMpCiAgICAgICAgIHMuYXBwZW5kKFN0cmlu
Zzo6Zm9ybWF0KCIlLjFmICIsIG9mZnNldC50b0Zsb2F0KCkpKTsKIAogICAgIHMuYXBwZW5kKCJd
Iik7Ci0gICAgcmV0dXJuIHMudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzLnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0
YXRpYyBTdHJpbmcgc25hcE9mZnNldFJhbmdlc1RvU3RyaW5nKGNvbnN0IFZlY3RvcjxTY3JvbGxP
ZmZzZXRSYW5nZTxMYXlvdXRVbml0Pj4mIHJhbmdlcykKQEAgLTkxLDcgKzkzLDkgQEAgc3RhdGlj
IFN0cmluZyBzbmFwT2Zmc2V0UmFuZ2VzVG9TdHJpbmcoY29uc3QgVmVjdG9yPFNjcm9sbE9mZnNl
dFJhbmdlPExheW91dFVuaXQKICAgICBmb3IgKGF1dG8gcmFuZ2UgOiByYW5nZXMpCiAgICAgICAg
IHMuYXBwZW5kKFN0cmluZzo6Zm9ybWF0KCIoJS4xZiwgJS4xZikgIiwgcmFuZ2Uuc3RhcnQudG9G
bG9hdCgpLCByYW5nZS5lbmQudG9GbG9hdCgpKSk7CiAgICAgcy5hcHBlbmQoIl0iKTsKLSAgICBy
ZXR1cm4gcy50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHMudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmlu
ZyBzbmFwUG9ydE9yQXJlYVRvU3RyaW5nKGNvbnN0IExheW91dFJlY3QmIHJlY3QpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5j
cHAKaW5kZXggZjUwMjIxYS4uM2MxYzZlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMzg5LDcgKzM4OSw5
IEBAIFN0cmluZyBTY3JvbGxpbmdDb29yZGluYXRvcjo6c3luY2hyb25vdXNTY3JvbGxpbmdSZWFz
b25zQXNUZXh0KFN5bmNocm9ub3VzU2Nyb2xsCiAKICAgICBpZiAoc3RyaW5nQnVpbGRlci5sZW5n
dGgoKSkKICAgICAgICAgc3RyaW5nQnVpbGRlci5yZXNpemUoc3RyaW5nQnVpbGRlci5sZW5ndGgo
KSAtIDIpOwotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnN5
bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uc0FzVGV4dCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9EZWNpbWFsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0RlY2ltYWwuY3BwCmluZGV4IDNkNTI1Y2YuLjFhMTkyYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0RlY2ltYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0RlY2ltYWwuY3BwCkBAIC05OTQsNyArOTk0LDkgQEAgU3RyaW5nIERlY2ltYWw6OnRvU3RyaW5n
KCkgY29uc3QKICAgICBpZiAob3JpZ2luYWxFeHBvbmVudCA8PSAwICYmIGFkanVzdGVkRXhwb25l
bnQgPj0gLTYpIHsKICAgICAgICAgaWYgKCFvcmlnaW5hbEV4cG9uZW50KSB7CiAgICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZChkaWdpdHMpOwotICAgICAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9T
dHJpbmcoKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgICAgIENSQVNIKCk7
CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoYWRqdXN0ZWRFeHBvbmVudCA+PSAwKSB7CkBAIC0x
MDAzLDcgKzEwMDUsOSBAQCBTdHJpbmcgRGVjaW1hbDo6dG9TdHJpbmcoKSBjb25zdAogICAgICAg
ICAgICAgICAgIGlmIChpID09IGFkanVzdGVkRXhwb25lbnQpCiAgICAgICAgICAgICAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCcuJyk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4g
YnVpbGRlci50b1N0cmluZygpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICAg
ICAgQ1JBU0goKTsKICAgICAgICAgfQogCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
MC4iKTsKQEAgLTEwMjcsNyArMTAzMSw5IEBAIFN0cmluZyBEZWNpbWFsOjp0b1N0cmluZygpIGNv
bnN0CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihhZGp1c3RlZEV4cG9uZW50KTsK
ICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KIAogRGVjaW1hbCBEZWNpbWFsOjp6ZXJvKFNpZ24gc2lnbikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAKaW5kZXggMmZkYjI2MC4uZTY3ZDY3
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAKQEAgLTEzMCw3ICsxMzAs
OSBAQCBTdHJpbmcgZW5jb2RlRm9yRmlsZU5hbWUoY29uc3QgU3RyaW5nJiBpbnB1dFN0cmluZykK
ICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2hhcmFjdGVyKTsKICAgICB9CiAKLSAgICByZXR1
cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmlu
ZyBkZWNvZGVGcm9tRmlsZW5hbWUoY29uc3QgU3RyaW5nJiBpbnB1dFN0cmluZykKQEAgLTE4MSw3
ICsxODMsOSBAQCBTdHJpbmcgZGVjb2RlRnJvbUZpbGVuYW1lKGNvbnN0IFN0cmluZyYgaW5wdXRT
dHJpbmcpCiAgICAgICAgIGkgKz0gNTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBsYXN0Q29tcG9uZW50
T2ZQYXRoSWdub3JpbmdUcmFpbGluZ1NsYXNoKGNvbnN0IFN0cmluZyYgcGF0aCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPREludGVydmFsLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QT0RJbnRlcnZhbC5oCmluZGV4IDA0OGRhOTguLjY0NjM2MmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPREludGVydmFsLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUE9ESW50ZXJ2YWwuaApAQCAtMTQ1LDcgKzE0NSw5IEBAIHB1YmxpYzoK
ICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsIG1heEhpZ2g9Iik7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKFZhbHVlVG9TdHJpbmc8VD46OnN0cmluZyhtYXhIaWdoKCkpKTsKICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoJ10nKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPRFJlZEJsYWNrVHJlZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmgKaW5kZXggMTMxZjMxYS4u
NDk2MGVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUE9EUmVkQmxhY2tU
cmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmgKQEAg
LTc0NCw3ICs3NDQsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFZh
bHVlVG9TdHJpbmc8VD46OnN0cmluZyhub2RlLT5kYXRhKCkpKTsKICAgICAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKChub2RlLT5jb2xvcigpID09IEJsYWNrKSA/ICIgKGJsYWNrKSIgOiAiIChyZWQp
Iik7CiAgICAgICAgIH0KLSAgICAgICAgTE9HX0VSUk9SKCIlcyIsIGJ1aWxkZXIudG9TdHJpbmco
KS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgICAgIExPR19FUlJPUigiJXMiLCBzdHJpbmctPmFzY2lpKCkuZGF0
YSgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgaWYgKG5v
ZGUpIHsKICAgICAgICAgICAgIGR1bXBGcm9tTm9kZShub2RlLT5sZWZ0KCksIGluZGVudGF0aW9u
ICsgMik7CiAgICAgICAgICAgICBkdW1wRnJvbU5vZGUobm9kZS0+cmlnaHQoKSwgaW5kZW50YXRp
b24gKyAyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwCmluZGV4IDE1OWU3ZmEuLjNkYjgyZDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVVJMLmNwcApAQCAtNDU1LDggKzQ1NSwxMSBAQCB2b2lkIFVSTDo6c2V0
SG9zdChjb25zdCBTdHJpbmcmIHMpCiAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nVmlldyhlbmNv
ZGVkSG9zdE5hbWUuZGF0YSgpLCBlbmNvZGVkSG9zdE5hbWUuc2l6ZSgpKSk7CiAgICAgYnVpbGRl
ci5hcHBlbmQobV9zdHJpbmcuc3Vic3RyaW5nKG1faG9zdEVuZCkpOwogCi0gICAgVVJMUGFyc2Vy
IHBhcnNlcihidWlsZGVyLnRvU3RyaW5nKCkpOwotICAgICp0aGlzID0gcGFyc2VyLnJlc3VsdCgp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICBV
UkxQYXJzZXIgcGFyc2VyKCpzdHJpbmcpOworICAgICAgICAqdGhpcyA9IHBhcnNlci5yZXN1bHQo
KTsKKyAgICB9IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBVUkw6OnJlbW92ZVBv
cnQoKQpAQCAtNTE3LDggKzUyMCwxMSBAQCB2b2lkIFVSTDo6c2V0SG9zdEFuZFBvcnQoY29uc3Qg
U3RyaW5nJiBob3N0QW5kUG9ydCkKICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmQobV9zdHJpbmcu
c3Vic3RyaW5nKG1fcG9ydEVuZCkpOwogCi0gICAgVVJMUGFyc2VyIHBhcnNlcihidWlsZGVyLnRv
U3RyaW5nKCkpOwotICAgICp0aGlzID0gcGFyc2VyLnJlc3VsdCgpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICBVUkxQYXJzZXIgcGFyc2VyKCpz
dHJpbmcpOworICAgICAgICAqdGhpcyA9IHBhcnNlci5yZXN1bHQoKTsKKyAgICB9IGVsc2UKKyAg
ICAgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBwZXJjZW50RW5jb2RlQ2hhcmFjdGVy
cyhjb25zdCBTdHJpbmcmIGlucHV0LCBib29sKCpzaG91bGRFbmNvZGUpKFVDaGFyKSkKQEAgLTUz
Nyw3ICs1NDMsOSBAQCBzdGF0aWMgU3RyaW5nIHBlcmNlbnRFbmNvZGVDaGFyYWN0ZXJzKGNvbnN0
IFN0cmluZyYgaW5wdXQsIGJvb2woKnNob3VsZEVuY29kZSkoVQogICAgICAgICAgICAgfSBlbHNl
CiAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoYyk7CiAgICAgICAgIH0KLSAgICAgICAg
cmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENS
QVNIKCk7CiAgICAgfTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaW5wdXQubGVuZ3Ro
KCk7ICsraSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9u
L1RpbWluZ0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9U
aW1pbmdGdW5jdGlvbi5jcHAKaW5kZXggOGM5NzJkNi4uZWRiZmVkNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uY3BwCkBAIC0x
MjksNyArMTI5LDEwIEBAIEV4Y2VwdGlvbk9yPFJlZlB0cjxUaW1pbmdGdW5jdGlvbj4+IFRpbWlu
Z0Z1bmN0aW9uOjpjcmVhdGVGcm9tQ1NTVGV4dChjb25zdCBTdHJpCiAgICAgY3NzU3RyaW5nLmFw
cGVuZExpdGVyYWwoIjogIik7CiAgICAgY3NzU3RyaW5nLmFwcGVuZChjc3NUZXh0KTsKICAgICBh
dXRvIHN0eWxlUHJvcGVydGllcyA9IE11dGFibGVTdHlsZVByb3BlcnRpZXM6OmNyZWF0ZSgpOwot
ICAgIHN0eWxlUHJvcGVydGllcy0+cGFyc2VEZWNsYXJhdGlvbihjc3NTdHJpbmcudG9TdHJpbmco
KSwgQ1NTUGFyc2VyQ29udGV4dChIVE1MU3RhbmRhcmRNb2RlKSk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gY3NzU3RyaW5nLnRvU3RyaW5nKCkpCisgICAgICAgIHN0eWxlUHJvcGVydGllcy0+cGFy
c2VEZWNsYXJhdGlvbigqc3RyaW5nLCBDU1NQYXJzZXJDb250ZXh0KEhUTUxTdGFuZGFyZE1vZGUp
KTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAgICBpZiAoYXV0byBjc3NWYWx1ZSA9
IHN0eWxlUHJvcGVydGllcy0+Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eUFuaW1hdGlv
blRpbWluZ0Z1bmN0aW9uKSkgewogICAgICAgICBpZiAoYXV0byB0aW1pbmdGdW5jdGlvbiA9IGNy
ZWF0ZUZyb21DU1NWYWx1ZSgqY3NzVmFsdWUuZ2V0KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcAppbmRleCBmOTQwODE1Li4yYjMwYjJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcApA
QCAtMjE4LDcgKzIxOCw5IEBAIFN0cmluZyBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnRzKFN0cmlu
Z1ZpZXcgcGF0aCwgY29uc3QgVmVjdG9yPFN0cmluZ1ZpZXc+JiBjb21wCiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKEdfRElSX1NFUEFSQVRPUl9TKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoY29t
cG9uZW50KTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgbWFrZUFsbERpcmVjdG9yaWVzKGNvbnN0IFN0cmlu
ZyYgcGF0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nv
bG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcAppbmRl
eCA1ZGQxNTBmLi5lZTFiZTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db2xvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29sb3IuY3BwCkBAIC0zNDgsNyArMzQ4LDkgQEAgU3RyaW5nIENvbG9yOjpzZXJpYWxpemVkKCkg
Y29uc3QKICAgICAgICAgYXBwZW5kQnl0ZUFzSGV4KHJlZCgpLCBidWlsZGVyLCBMb3dlcmNhc2Up
OwogICAgICAgICBhcHBlbmRCeXRlQXNIZXgoZ3JlZW4oKSwgYnVpbGRlciwgTG93ZXJjYXNlKTsK
ICAgICAgICAgYXBwZW5kQnl0ZUFzSGV4KGJsdWUoKSwgYnVpbGRlciwgTG93ZXJjYXNlKTsKLSAg
ICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
ICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIGNzc1RleHQoKTsKQEAgLTM4NCw3ICsz
ODYsOSBAQCBTdHJpbmcgQ29sb3I6OmNzc1RleHQoKSBjb25zdAogICAgIH0KICAgICAgICAgCiAg
ICAgYnVpbGRlci5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIENvbG9yOjpuYW1lRm9yUmVuZGVy
VHJlZUFzVGV4dCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9FeHRlbmRlZENvbG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0V4dGVuZGVkQ29sb3IuY3BwCmluZGV4IDUwZTNjNWMuLjQ0OGRmZDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwCkBAIC03
Miw3ICs3Miw5IEBAIFN0cmluZyBFeHRlbmRlZENvbG9yOjpjc3NUZXh0KCkgY29uc3QKICAgICB9
CiAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAKaW5kZXggODQ3ODYxZi4uNTU0ODI5
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2Nh
ZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRl
LmNwcApAQCAtNTQ5LDcgKzU0OSw5IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIG5vcm1hbGl6ZVNw
YWNlc0ludGVybmFsKGNvbnN0IENoYXJhY3RlclR5cGUqIGNoYXJhY3RlcnMsIHVuCiAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQogICAgICAgICBub3JtYWxpemVkLmFw
cGVuZChGb250Q2FzY2FkZTo6bm9ybWFsaXplU3BhY2VzKGNoYXJhY3RlcnNbaV0pKTsKIAotICAg
IHJldHVybiBub3JtYWxpemVkLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbm9y
bWFsaXplZC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogCiBTdHJpbmcgRm9udENhc2NhZGU6Om5vcm1hbGl6ZVNwYWNlcyhjb25zdCBMQ2hhciog
Y2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRUYWdnZWRTZXR0aW5ncy5jcHAKaW5kZXggNjFiMmViZS4u
NWM0NjcyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dFRhZ2dlZFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250VGFnZ2VkU2V0dGluZ3MuY3BwCkBAIC03Miw3ICs3MiwxMCBAQCBUZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBGb250VmFyaWF0aW9uU2V0dGluZ3MmIGl0
ZW0pCiAgICAgICAgIHMuYXBwZW5kKHZhcmlhdGlvbi50YWcoKVsxXSk7CiAgICAgICAgIHMuYXBw
ZW5kKHZhcmlhdGlvbi50YWcoKVsyXSk7CiAgICAgICAgIHMuYXBwZW5kKHZhcmlhdGlvbi50YWco
KVszXSk7Ci0gICAgICAgIHRzLmR1bXBQcm9wZXJ0eShzLnRvU3RyaW5nKCksIGl0ZW0uYXQoaSku
dmFsdWUoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHMudG9TdHJpbmcoKSkKKyAgICAg
ICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgqc3RyaW5nLCBpdGVtLmF0KGkpLnZhbHVlKCkpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICByZXR1cm4gdHM7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xh
eWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
Y3BwCmluZGV4IDY5ODE4MGUuLjE1Y2U4OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCkBAIC00NDEsNyArNDQxLDkgQEAgU3Ry
aW5nIEdyYXBoaWNzTGF5ZXI6OmFuaW1hdGlvbk5hbWVGb3JUcmFuc2l0aW9uKEFuaW1hdGVkUHJv
cGVydHlJRCBwcm9wZXJ0eSkKICAgICBpZC5hcHBlbmRMaXRlcmFsKCItfHRyYW5zaXRpb24iKTsK
ICAgICBpZC5hcHBlbmROdW1iZXIoc3RhdGljX2Nhc3Q8aW50Pihwcm9wZXJ0eSkpOwogICAgIGlk
LmFwcGVuZCgnLScpOwotICAgIHJldHVybiBpZC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGlkLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIHZvaWQgR3JhcGhpY3NMYXllcjo6c3VzcGVuZEFuaW1hdGlvbnMoTW9ub3Rvbmlj
VGltZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmNw
cAppbmRleCA2ZjJiMzg3Li45NTNjNDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFu
ZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCkBAIC0zMDAsOCArMzAwLDEyIEBAIHZvaWQgSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZUF0dHJpYnV0ZXMoQ0ZBdHRyaWJ1dGVkU3Ry
aW5nUmVmIGF0dHJpCiAgICAgICAgIGNvbnRlbnQuYXBwZW5kKHRhZ0VuZCk7CiAgICAgfQogCi0g
ICAgaWYgKGNvbnRlbnQubGVuZ3RoKCkpCi0gICAgICAgIGN1ZURhdGEuc2V0Q29udGVudChjb250
ZW50LnRvU3RyaW5nKCkpOworICAgIGlmIChjb250ZW50Lmxlbmd0aCgpKSB7CisgICAgICAgIGlm
IChhdXRvIHN0cmluZyA9IGNvbnRlbnQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGN1ZURhdGEu
c2V0Q29udGVudCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsK
KyAgICB9CiB9CiAKIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZShD
RkFycmF5UmVmIGF0dHJpYnV0ZWRTdHJpbmdzLCBDRkFycmF5UmVmIG5hdGl2ZVNhbXBsZXMsIGNv
bnN0IE1lZGlhVGltZSYgdGltZSkKQEAgLTUzMCw3ICs1MzQsMTAgQEAgdm9pZCBJbmJhbmRUZXh0
VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzTmF0aXZlU2FtcGxlcyhDRkFycmF5UmVmIG5hdGl2ZVNh
bXBsZXMsIGMKICAgICAgICAgICAgIGhlYWRlci5hcHBlbmQoIlxuXG4iKTsKIAogICAgICAgICAg
ICAgREVCVUdfTE9HKExPR0lERU5USUZJRVIsICJWVFQgaGVhZGVyICIsICZoZWFkZXIpOwotICAg
ICAgICAgICAgY2xpZW50KCktPnBhcnNlV2ViVlRURmlsZUhlYWRlcihoZWFkZXIudG9TdHJpbmco
KSk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBoZWFkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgICAgICBjbGllbnQoKS0+cGFyc2VXZWJWVFRGaWxlSGVhZGVyKFdURk1vdmUoKnN0
cmluZykpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAg
ICAgICAgICBtX2hhdmVSZXBvcnRlZFZUVEhlYWRlciA9IHRydWU7CiAgICAgICAgIH0gd2hpbGUg
KDApOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9U
aWxlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9U
aWxlQ29udHJvbGxlci5jcHAKaW5kZXggZWMzYWU0Zi4uYTM3ZDg0NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcApA
QCAtNzM1LDcgKzczNSwxMCBAQCBSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBUaWxlQ29udHJvbGxl
cjo6Y3JlYXRlVGlsZUxheWVyKGNvbnN0IEludFJlY3QmIHRpbGVSZWN0LAogICAgIG5hbWVCdWls
ZGVyLmFwcGVuZE51bWJlcih0aWxlUmVjdC5sb2NhdGlvbigpLngoKSk7CiAgICAgbmFtZUJ1aWxk
ZXIuYXBwZW5kKCcsJyk7CiAgICAgbmFtZUJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRpbGVSZWN0Lmxv
Y2F0aW9uKCkueSgpKTsKLSAgICBsYXllci0+c2V0TmFtZShuYW1lQnVpbGRlci50b1N0cmluZygp
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBuYW1lQnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICBsYXllci0+c2V0TmFtZSgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAK
ICAgICBmbG9hdCB0ZW1wb3JhcnlTY2FsZUZhY3RvciA9IG93bmluZ0dyYXBoaWNzTGF5ZXIoKS0+
cGxhdGZvcm1DQUxheWVyQ29udGVudHNTY2FsZU11bHRpcGxpZXJGb3JOZXdUaWxlcyhtX3RpbGVD
YWNoZUxheWVyKTsKICAgICBtX2hhc1RpbGVzV2l0aFRlbXBvcmFyeVNjYWxlRmFjdG9yIHw9IHRl
bXBvcmFyeVNjYWxlRmFjdG9yICE9IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9UaWxlR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9UaWxlR3JpZC5jcHAKaW5kZXggNTkxOWY5Ny4uZTg2NjU5NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUdyaWQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNwcApAQCAtNTks
NyArNTksOSBAQCBzdGF0aWMgU3RyaW5nIHZhbGlkYXRpb25Qb2xpY3lBc1N0cmluZyhUaWxlR3Jp
ZDo6VGlsZVZhbGlkYXRpb25Qb2xpY3kgdmFsaWRhdGlvbgogICAgIH0KICAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwoIl0iKTsKIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5j
cHAKaW5kZXggYzAwMGI0My4uZmE2NDBmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5jcHAK
QEAgLTkzNCw3ICs5MzQsOSBAQCBTdHJpbmcgUGxhdGZvcm1DQUxheWVyV2luOjpsYXllclRyZWVB
c1N0cmluZygpIGNvbnN0CiAgICAgLy8gUHJpbnQgbGF5ZXIgdHJlZSBmcm9tIHRoZSByb290CiAg
ICAgcHJpbnRMYXllcihidWlsZGVyLCB0aGlzLCAwKTsKIAotICAgIHJldHVybiBidWlsZGVyLnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBSZWY8UGxhdGZvcm1DQUxh
eWVyPiBQbGF0Zm9ybUNBTGF5ZXJXaW46OmNyZWF0ZUNvbXBhdGlibGVMYXllcihQbGF0Zm9ybUNB
TGF5ZXI6OkxheWVyVHlwZSBsYXllclR5cGUsIFBsYXRmb3JtQ0FMYXllckNsaWVudCogY2xpZW50
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3Yv
VmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwCmluZGV4IGRmZmNkY2IuLjQ3ZjMyMzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVy
ZUNvcGllckNWLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9W
aWRlb1RleHR1cmVDb3BpZXJDVi5jcHAKQEAgLTUxMiw3ICs1MTIsMTAgQEAgYm9vbCBWaWRlb1Rl
eHR1cmVDb3BpZXJDVjo6aW5pdGlhbGl6ZUNvbnRleHRPYmplY3RzKCkKICAgICB2ZXJ0ZXhTaGFk
ZXJTb3VyY2UuYXBwZW5kTGl0ZXJhbCgifVxuIik7CiAKICAgICBQbGF0Zm9ybTNET2JqZWN0IHZl
cnRleFNoYWRlciA9IG1fY29udGV4dC0+Y3JlYXRlU2hhZGVyKEdyYXBoaWNzQ29udGV4dDNEOjpW
RVJURVhfU0hBREVSKTsKLSAgICBtX2NvbnRleHQtPnNoYWRlclNvdXJjZSh2ZXJ0ZXhTaGFkZXIs
IHZlcnRleFNoYWRlclNvdXJjZS50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB2
ZXJ0ZXhTaGFkZXJTb3VyY2UudG9TdHJpbmcoKSkKKyAgICAgICAgbV9jb250ZXh0LT5zaGFkZXJT
b3VyY2UodmVydGV4U2hhZGVyLCAqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7
CiAgICAgbV9jb250ZXh0LT5jb21waWxlU2hhZGVyRGlyZWN0KHZlcnRleFNoYWRlcik7CiAKICAg
ICBHQzNEaW50IHZhbHVlID0gMDsKQEAgLTU1Myw3ICs1NTYsMTAgQEAgYm9vbCBWaWRlb1RleHR1
cmVDb3BpZXJDVjo6aW5pdGlhbGl6ZUNvbnRleHRPYmplY3RzKCkKICAgICBmcmFnbWVudFNoYWRl
clNvdXJjZS5hcHBlbmRMaXRlcmFsKCJ9XG4iKTsKIAogICAgIFBsYXRmb3JtM0RPYmplY3QgZnJh
Z21lbnRTaGFkZXIgPSBtX2NvbnRleHQtPmNyZWF0ZVNoYWRlcihHcmFwaGljc0NvbnRleHQzRDo6
RlJBR01FTlRfU0hBREVSKTsKLSAgICBtX2NvbnRleHQtPnNoYWRlclNvdXJjZShmcmFnbWVudFNo
YWRlciwgZnJhZ21lbnRTaGFkZXJTb3VyY2UudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gZnJhZ21lbnRTaGFkZXJTb3VyY2UudG9TdHJpbmcoKSkKKyAgICAgICAgbV9jb250ZXh0
LT5zaGFkZXJTb3VyY2UoZnJhZ21lbnRTaGFkZXIsICpzdHJpbmcpOworICAgIGVsc2UKKyAgICAg
ICAgQ1JBU0goKTsKICAgICBtX2NvbnRleHQtPmNvbXBpbGVTaGFkZXJEaXJlY3QoZnJhZ21lbnRT
aGFkZXIpOwogCiAgICAgbV9jb250ZXh0LT5nZXRTaGFkZXJpdihmcmFnbWVudFNoYWRlciwgR3Jh
cGhpY3NDb250ZXh0M0Q6OkNPTVBJTEVfU1RBVFVTLCAmdmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3Bl
bkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9H
cmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKaW5kZXggNWJkZDY2My4uMDI1ZWNjYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBo
aWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCkBAIC05
NTMsNyArOTUzLDkgQEAgc3RhdGljIFN0cmluZyBnZW5lcmF0ZUhhc2hlZE5hbWUoY29uc3QgU3Ry
aW5nJiBuYW1lKQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIndlYmdsXyIpOwogICAgIGFwcGVuZFVuc2lnbmVkNjRBc0hleChudW1iZXIsIGJ1
aWxkZXIsIExvd2VyY2FzZSk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBHcmFwaGljc0Nv
bnRleHQzRDo6bWFwcGVkU3ltYm9sSW5TaGFkZXJTb3VyY2VNYXAoUGxhdGZvcm0zRE9iamVjdCBz
aGFkZXIsIEFOR0xFU2hhZGVyU3ltYm9sVHlwZSBzeW1ib2xUeXBlLCBjb25zdCBTdHJpbmcmIG5h
bWUpCkBAIC0xNjg1LDggKzE2ODcsMTEgQEAgU3RyaW5nIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRV
bm1hbmdsZWRJbmZvTG9nKFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyc1syXSwgR0MzRHMKIAogICAg
IHByb2Nlc3NlZExvZy5hcHBlbmQobG9nLnN1YnN0cmluZyhzdGFydEZyb20sIGxvZy5sZW5ndGgo
KSAtIHN0YXJ0RnJvbSkpOwogCi0gICAgTE9HKFdlYkdMLCAiVW5tYW5nbGVkIFNoYWRlckluZm9M
b2c6XG4lcyIsIHByb2Nlc3NlZExvZy50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIHJl
dHVybiBwcm9jZXNzZWRMb2cudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBwcm9j
ZXNzZWRMb2cudG9TdHJpbmcoKSkgeworICAgICAgICBMT0coV2ViR0wsICJVbm1hbmdsZWQgU2hh
ZGVySW5mb0xvZzpcbiVzIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBHcmFwaGljc0NvbnRl
eHQzRDo6Z2V0UHJvZ3JhbUluZm9Mb2coUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQppbmRleCAzNjU4ZGQxLi5j
NmEyNDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2Fy
ZE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5t
bQpAQCAtMjg4LDcgKzI4OCwxMCBAQCBzdGF0aWMgU3RyaW5nIGpvaW5QYXRobmFtZXMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHBhdGhuYW1lcykKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdc
bicpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChwYXRoKTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsK
IH0KIAogdm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRQbGFpblRleHQmIHRleHQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbQppbmRleCA3
Y2QxYmQ4Li45ZjM4ZmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
U3RyaW5nVXRpbGl0aWVzLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJp
bmdVdGlsaXRpZXMubW0KQEAgLTUwLDggKzUwLDEwIEBAIHN0YXRpYyBTdHJpbmcgd2lsZGNhcmRS
ZWdleFBhdHRlcm5TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kKGNoYXJhY3Rlcik7CiAgICAgfQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5k
KCckJyk7Ci0gICAgICAgIAotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAgICAgCiBib29sIHN0cmluZ01hdGNo
ZXNXaWxkY2FyZFN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZywgY29uc3QgU3RyaW5nJiB3aWxk
Y2FyZFN0cmluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Ny
b2xsQW5pbWF0b3JNb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Nyb2xs
QW5pbWF0b3JNb2NrLmNwcAppbmRleCAzY2MwZmU5Li4zMWJkM2Q4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1Njcm9sbEFuaW1hdG9yTW9jay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3JvbGxBbmltYXRvck1vY2suY3BwCkBAIC0xMDEs
NyArMTAxLDEwIEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNb2NrOjptb3VzZUVudGVyZWRTY3JvbGxi
YXIoU2Nyb2xsYmFyKiBzY3JvbGxiYXIpIGNvbnN0CiAgICAgZWxzZQogICAgICAgICBtZXNzYWdl
LmFwcGVuZExpdGVyYWwoIlVua25vd24iKTsKICAgICBtZXNzYWdlLmFwcGVuZExpdGVyYWwoIlNj
cm9sbGJhciIpOwotICAgIG1fbG9nZ2VyKG1lc3NhZ2UudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gbWVzc2FnZS50b1N0cmluZygpKQorICAgICAgICBtX2xvZ2dlcigqc3RyaW5n
KTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgU2Nyb2xsQW5pbWF0b3I6Om1vdXNl
RW50ZXJlZFNjcm9sbGJhcihzY3JvbGxiYXIpOwogfQogCkBAIC0xMTYsNyArMTE5LDEwIEBAIHZv
aWQgU2Nyb2xsQW5pbWF0b3JNb2NrOjptb3VzZUV4aXRlZFNjcm9sbGJhcihTY3JvbGxiYXIqIHNj
cm9sbGJhcikgY29uc3QKICAgICBlbHNlCiAgICAgICAgIG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgi
VW5rbm93biIpOwogICAgIG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiU2Nyb2xsYmFyIik7Ci0gICAg
bV9sb2dnZXIobWVzc2FnZS50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtZXNz
YWdlLnRvU3RyaW5nKCkpCisgICAgICAgIG1fbG9nZ2VyKCpzdHJpbmcpOworICAgIGVsc2UKKyAg
ICAgICAgQ1JBU0goKTsKICAgICBTY3JvbGxBbmltYXRvcjo6bW91c2VFeGl0ZWRTY3JvbGxiYXIo
c2Nyb2xsYmFyKTsKIH0KIApAQCAtMTM2LDcgKzE0MiwxMCBAQCB2b2lkIFNjcm9sbEFuaW1hdG9y
TW9jazo6bW91c2VJc0Rvd25JblNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhciwgYm9vbCBp
c1ByZQogICAgIGVsc2UKICAgICAgICAgbWVzc2FnZS5hcHBlbmRMaXRlcmFsKCJVbmtub3duIik7
CiAgICAgbWVzc2FnZS5hcHBlbmRMaXRlcmFsKCJTY3JvbGxiYXIiKTsKLSAgICBtX2xvZ2dlciht
ZXNzYWdlLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1lc3NhZ2UudG9TdHJp
bmcoKSkKKyAgICAgICAgbV9sb2dnZXIoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFT
SCgpOwogICAgIFNjcm9sbEFuaW1hdG9yOjptb3VzZUlzRG93bkluU2Nyb2xsYmFyKHNjcm9sbGJh
ciwgaXNQcmVzc2VkKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9tZWRpYXNvdXJjZS9Nb2NrQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svbWVkaWFzb3VyY2UvTW9ja0JveC5jcHAKaW5kZXggZDRhYTIwNS4uZmI2NWE5ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrQm94LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tCb3gu
Y3BwCkBAIC01Miw3ICs1Miw5IEBAIFN0cmluZyBNb2NrQm94OjpwZWVrVHlwZShBcnJheUJ1ZmZl
ciogZGF0YSkKICAgICBSZWZQdHI8SW50OEFycmF5PiBhcnJheSA9IEpTQzo6SW50OEFycmF5Ojpj
cmVhdGUoZGF0YSwgMCwgNCk7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyArK2kpCiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKGFycmF5LT5pdGVtKGkpKTsKLSAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc2l6ZV90IE1vY2tCb3g6
OnBlZWtMZW5ndGgoQXJyYXlCdWZmZXIqIGRhdGEpCkBAIC03Myw3ICs3NSwxMCBAQCBNb2NrVHJh
Y2tCb3g6Ok1vY2tUcmFja0JveChBcnJheUJ1ZmZlciogZGF0YSkKICAgICBSZWZQdHI8SW50OEFy
cmF5PiBhcnJheSA9IEpTQzo6SW50OEFycmF5OjpjcmVhdGUoZGF0YSwgMTIsIDQpOwogICAgIGZv
ciAoaW50IGkgPSAwOyBpIDwgNDsgKytpKQogICAgICAgICBidWlsZGVyLmFwcGVuZChhcnJheS0+
aXRlbShpKSk7Ci0gICAgbV9jb2RlYyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIG1fY29kZWMgPSAqc3RyaW5n
OworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIG1fa2luZCA9IHN0YXRpY19jYXN0
PFRyYWNrS2luZD4odmlldy0+Z2V0PHVpbnQ4X3Q+KDE2LCB0cnVlKSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwCmluZGV4IGM4ZjQ1ZTUu
LjhkMzBkODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRU
UFBhcnNlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBh
cnNlcnMuY3BwCkBAIC0zMjgsNyArMzI4LDkgQEAgU3RyaW5nIGV4dHJhY3RNSU1FVHlwZUZyb21N
ZWRpYVR5cGUoY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUpCiAKICAgICBpZiAobWltZVR5cGUubGVu
Z3RoKCkgPT0gbGVuZ3RoKQogICAgICAgICByZXR1cm4gbWVkaWFUeXBlOwotICAgIHJldHVybiBt
aW1lVHlwZS50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1pbWVUeXBlLnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmlu
ZyBleHRyYWN0Q2hhcnNldEZyb21NZWRpYVR5cGUoY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3h5U2VydmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJveHlTZXJ2ZXIuY3BwCmluZGV4
IGM2ZDY3YzIuLjBjNjlmNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUHJveHlTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUHJveHlTZXJ2ZXIuY3BwCkBAIC02OCw3ICs2OCw5IEBAIFN0cmluZyB0b1N0cmluZyhjb25z
dCBWZWN0b3I8UHJveHlTZXJ2ZXI+JiBwcm94eVNlcnZlcnMpCiAgICAgICAgIGFwcGVuZFByb3h5
U2VydmVyU3RyaW5nKHN0cmluZ0J1aWxkZXIsIHByb3h5U2VydmVyc1tpXSk7CiAgICAgfQogCi0g
ICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvQ29va2llSmFyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9tYWMvQ29va2llSmFyTWFjLm1tCmluZGV4IGMyNjQwYmQuLjAwMDVkZmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZUphck1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVKYXJNYWMubW0KQEAg
LTI2MSw3ICsyNjEsMTAgQEAgc3RhdGljIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZXNG
b3JTZXNzaW9uKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2UKICAgICAgICAgY29va2ll
c0J1aWxkZXIuYXBwZW5kKCc9Jyk7CiAgICAgICAgIGNvb2tpZXNCdWlsZGVyLmFwcGVuZChbY29v
a2llIHZhbHVlXSk7CiAgICAgfQotICAgIHJldHVybiB7IGNvb2tpZXNCdWlsZGVyLnRvU3RyaW5n
KCksIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMgfTsKKworICAgIGlmIChhdXRvIHN0cmluZyA9IGNv
b2tpZXNCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiB7ICpzdHJpbmcsIGRpZEFj
Y2Vzc1NlY3VyZUNvb2tpZXMgfTsKKyAgICBDUkFTSCgpOwogCiAgICAgRU5EX0JMT0NLX09CSkNf
RVhDRVBUSU9OUzsKICAgICByZXR1cm4geyBTdHJpbmcoKSwgZmFsc2UgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCmluZGV4IDRkYTdj
ZjYuLjM4OWQyZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L0Zp
bGVTeXN0ZW1QT1NJWC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcG9zaXgvRmls
ZVN5c3RlbVBPU0lYLmNwcApAQCAtMzEwLDcgKzMxMCw5IEBAIFN0cmluZyBwYXRoQnlBcHBlbmRp
bmdDb21wb25lbnRzKFN0cmluZ1ZpZXcgcGF0aCwgY29uc3QgVmVjdG9yPFN0cmluZ1ZpZXc+JiBj
b21wCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcvJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KGNvbXBvbmVudCk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIG1ha2VBbGxEaXJlY3Rvcmllcyhjb25zdCBT
dHJpbmcmIHBhdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Rl
Y29kZUVzY2FwZVNlcXVlbmNlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EZWNv
ZGVFc2NhcGVTZXF1ZW5jZXMuaAppbmRleCAxNGNmNDE1Li43MmEwYTVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RlY29kZUVzY2FwZVNlcXVlbmNlcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmgKQEAg
LTY0LDcgKzY0LDkgQEAgc3RydWN0IFVuaWNvZGUxNkJpdEVzY2FwZVNlcXVlbmNlIHsKICAgICAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKGNvZGVVbml0KTsKICAgICAgICAgICAgIHJ1biA9IHJ1bi5z
dWJzdHJpbmcoc2VxdWVuY2VTaXplKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9
CiB9OwogCkBAIC0xNTEsNyArMTUzLDkgQEAgU3RyaW5nIGRlY29kZUVzY2FwZVNlcXVlbmNlcyhT
dHJpbmdWaWV3IHN0cmluZywgY29uc3QgVGV4dEVuY29kaW5nJiBlbmNvZGluZykKICAgICAgICAg
ZGVjb2RlZFBvc2l0aW9uID0gZW5jb2RlZFJ1bkVuZDsKICAgICB9CiAgICAgcmVzdWx0LmFwcGVu
ZChzdHJpbmcuc3Vic3RyaW5nKGRlY29kZWRQb3NpdGlvbiwgbGVuZ3RoIC0gZGVjb2RlZFBvc2l0
aW9uKSk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBpbmxpbmUgVmVjdG9yPHVpbnQ4X3Q+IGRlY29kZVVSTEVzY2FwZVNlcXVlbmNl
c0FzRGF0YShTdHJpbmdWaWV3IHN0cmluZywgY29uc3QgVGV4dEVuY29kaW5nJiBlbmNvZGluZykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvUGxhdGZvcm1Mb2NhbGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5jcHAKaW5k
ZXggMDg3NDMyNS4uZGMwODA4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9QbGF0Zm9ybUxvY2FsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9QbGF0Zm9ybUxvY2FsZS5jcHAKQEAgLTIzOCw3ICsyMzgsOSBAQCBTdHJpbmcgTG9jYWxlOjpj
b252ZXJ0VG9Mb2NhbGl6ZWROdW1iZXIoY29uc3QgU3RyaW5nJiBpbnB1dCkKIAogICAgIGJ1aWxk
ZXIuYXBwZW5kKGlzTmVnYXRpdmUgPyBtX25lZ2F0aXZlU3VmZml4IDogbV9wb3NpdGl2ZVN1ZmZp
eCk7CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogc3RhdGljIGJvb2wgbWF0Y2hlcyhjb25zdCBTdHJpbmcmIHRleHQsIHVuc2ln
bmVkIHBvc2l0aW9uLCBjb25zdCBTdHJpbmcmIHBhcnQpCkBAIC0zMjEsNyArMzIzLDkgQEAgU3Ry
aW5nIExvY2FsZTo6Y29udmVydEZyb21Mb2NhbGl6ZWROdW1iZXIoY29uc3QgU3RyaW5nJiBsb2Nh
bGl6ZWQpCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHN0YXRpY19j
YXN0PFVDaGFyPignMCcgKyBzeW1ib2xJbmRleCkpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogI2lmIEVOQUJMRShE
QVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQpAQCAtMzYwLDcgKzM2NCw5IEBAIFN0cmluZyBMb2Nh
bGU6OmZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlLCBGb3JtYXRUeXBl
IGZvcm1hdFR5cGUpCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVh
azsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwCmluZGV4IGZmMzFiMmEuLjQ4
Y2JhMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVk
U3RyaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1NlZ21lbnRlZFN0
cmluZy5jcHAKQEAgLTE1OSw3ICsxNTksOSBAQCBTdHJpbmcgU2VnbWVudGVkU3RyaW5nOjp0b1N0
cmluZygpIGNvbnN0CiAgICAgbV9jdXJyZW50U3Vic3RyaW5nLmFwcGVuZFRvKHJlc3VsdCk7CiAg
ICAgZm9yIChhdXRvJiBzdWJzdHJpbmcgOiBtX290aGVyU3Vic3RyaW5ncykKICAgICAgICAgc3Vi
c3RyaW5nLmFwcGVuZFRvKHJlc3VsdCk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIFNlZ21lbnRlZFN0cmluZzo6YWR2YW5j
ZVdpdGhvdXRVcGRhdGluZ0xpbmVOdW1iZXIxNigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L1RleHRDb2RlY0lDVS5jcHAKaW5kZXggZDJlMmFlNy4uNzYyMmNiMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNJQ1UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcApAQCAtMzE4LDEzICsz
MTgsMTQgQEAgU3RyaW5nIFRleHRDb2RlY0lDVTo6ZGVjb2RlKGNvbnN0IGNoYXIqIGJ5dGVzLCBz
aXplX3QgbGVuZ3RoLCBib29sIGZsdXNoLCBib29sIHMKICAgICAgICAgc2F3RXJyb3IgPSB0cnVl
OwogICAgIH0KIAotICAgIFN0cmluZyByZXN1bHRTdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byByZXN1bHRTdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkgeworICAgICAg
ICAvLyBTaW1wbGlmaWVkIENoaW5lc2UgcGFnZXMgdXNlIHRoZSBjb2RlIEEzQTAgdG8gbWVhbiAi
ZnVsbC13aWR0aCBzcGFjZSIsIGJ1dCBJQ1UgZGVjb2RlcyBpdCBhcyBVK0U1RTUuCisgICAgICAg
IGlmICghc3RyY21wKG1fZW5jb2RpbmdOYW1lLCAiR0JLIikgfHwgZXF1YWxMZXR0ZXJzSWdub3Jp
bmdBU0NJSUNhc2UobV9lbmNvZGluZ05hbWUsICJnYjE4MDMwIikpCisgICAgICAgICAgICByZXN1
bHRTdHJpbmctPnJlcGxhY2UoMHhFNUU1LCBpZGVvZ3JhcGhpY1NwYWNlKTsKIAotICAgIC8vIFNp
bXBsaWZpZWQgQ2hpbmVzZSBwYWdlcyB1c2UgdGhlIGNvZGUgQTNBMCB0byBtZWFuICJmdWxsLXdp
ZHRoIHNwYWNlIiwgYnV0IElDVSBkZWNvZGVzIGl0IGFzIFUrRTVFNS4KLSAgICBpZiAoIXN0cmNt
cChtX2VuY29kaW5nTmFtZSwgIkdCSyIpIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNl
KG1fZW5jb2RpbmdOYW1lLCAiZ2IxODAzMCIpKQotICAgICAgICByZXN1bHRTdHJpbmcucmVwbGFj
ZSgweEU1RTUsIGlkZW9ncmFwaGljU3BhY2UpOwotCi0gICAgcmV0dXJuIHJlc3VsdFN0cmluZzsK
KyAgICAgICAgcmV0dXJuICpyZXN1bHRTdHJpbmc7CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAK
IC8vIFdlIG5lZWQgdG8gYXBwbHkgdGhlc2UgZmFsbGJhY2tzIG91cnNlbHZlcyBhcyB0aGV5IGFy
ZSBub3QgY3VycmVudGx5IHN1cHBvcnRlZCBieSBJQ1UgYW5kCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VzZXJEZWZpbmVkLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjVXNlckRlZmluZWQuY3BwCmluZGV4IDI5NmM0
NjkuLmNiNzBlNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4
dENvZGVjVXNlckRlZmluZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
VGV4dENvZGVjVXNlckRlZmluZWQuY3BwCkBAIC01Myw3ICs1Myw5IEBAIFN0cmluZyBUZXh0Q29k
ZWNVc2VyRGVmaW5lZDo6ZGVjb2RlKGNvbnN0IGNoYXIqIGJ5dGVzLCBzaXplX3QgbGVuZ3RoLCBi
b29sLCBib29sCiAgICAgICAgIHNpZ25lZCBjaGFyIGMgPSBieXRlc1tpXTsKICAgICAgICAgcmVz
dWx0LmFwcGVuZChzdGF0aWNfY2FzdDxVQ2hhcj4oYyAmIDB4RjdGRikpOwogICAgIH0KLSAgICBy
ZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0
YXRpYyBWZWN0b3I8dWludDhfdD4gZW5jb2RlQ29tcGxleFVzZXJEZWZpbmVkKFN0cmluZ1ZpZXcg
c3RyaW5nLCBVbmVuY29kYWJsZUhhbmRsaW5nIGhhbmRsaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5z
L0RPTU1pbWVUeXBlLmNwcAppbmRleCAxYjJkNzUyLi4yZmU1ODYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bHVnaW5zL0RPTU1pbWVUeXBlLmNwcApAQCAtNTcsNyArNTcsOSBAQCBTdHJpbmcgRE9NTWltZVR5
cGU6OnN1ZmZpeGVzKCkgY29uc3QKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcsJyk7CiAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKGV4dGVuc2lvbnNbaV0pOwogICAgIH0KLSAgICByZXR1cm4g
YnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5n
IERPTU1pbWVUeXBlOjpkZXNjcmlwdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcAppbmRleCBmYTBlNTdhLi5iYTljZDYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTQyOCw3ICs0MjgsOSBAQCBTdHJpbmcgUmVu
ZGVyTGF5ZXI6Om5hbWUoKSBjb25zdAogICAgIGlmIChpc1JlZmxlY3Rpb24oKSkKICAgICAgICAg
bmFtZS5hcHBlbmRMaXRlcmFsKCIgKHJlZmxlY3Rpb24pIik7CiAKLSAgICByZXR1cm4gbmFtZS50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG5hbWUudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogUmVuZGVyTGF5ZXJDb21wb3Np
dG9yJiBSZW5kZXJMYXllcjo6Y29tcG9zaXRvcigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDFjNDA0N2QuLjU3
MzMwZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwCkBAIC04NjMsNyArODYzLDEwIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpsb2dMYXllckluZm8oY29uc3QgUmVuZGVyTGF5ZXImIGxheWVyLCBpbnQgZGVwdGgpCiAK
ICAgICBsb2dTdHJpbmcuYXBwZW5kKGxheWVyLm5hbWUoKSk7CiAKLSAgICBMT0coQ29tcG9zaXRp
bmcsICIlcyIsIGxvZ1N0cmluZy50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGxvZ1N0cmluZy50b1N0cmluZygpKQorICAgICAgICBMT0coQ29tcG9zaXRp
bmcsICIlcyIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgZWxzZQorICAgICAgICBDUkFT
SCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0TWFya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
TWFya2VyLmNwcAppbmRleCA5MDRmOTk0Li41N2IwMDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCkBAIC0xMTE3LDcgKzExMTcsOSBAQCBTdHJp
bmcgbGlzdE1hcmtlclRleHQoRUxpc3RTdHlsZVR5cGUgdHlwZSwgaW50IHZhbHVlKQogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFJlbmRlckxpc3RNYXJrZXI6OlJlbmRlckxpc3RN
YXJrZXIoUmVuZGVyTGlzdEl0ZW0mIGxpc3RJdGVtLCBSZW5kZXJTdHlsZSYmIHN0eWxlKQpAQCAt
MTM2Myw3ICsxMzY1LDEwIEBAIHZvaWQgUmVuZGVyTGlzdE1hcmtlcjo6cGFpbnQoUGFpbnRJbmZv
JiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNlCiAgICAgICAgICAgICAg
ICAgYnVmZmVyLmFwcGVuZChzdWZmaXgpOwogICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQo
c3BhY2UpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgdG9EcmF3ID0gYnVmZmVyLnRvU3Ry
aW5nKCk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWZmZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgICAgICAgICB0b0RyYXcgPSAqc3RyaW5nOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBpZiAo
c3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCiAgICAgICAgICAgICAgICAgdG9EcmF3
ID0gbV90ZXh0ICsgU3RyaW5nKCZzdWZmaXgsIDEpICsgU3RyaW5nKCZzcGFjZSwgMSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKaW5kZXggOGZhNTFlMi4uMTA1MjBmYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcApAQCAtMTgxLDcgKzE4MSw5
IEBAIFN0cmluZyBjYXBpdGFsaXplKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBVQ2hhciBwcmV2aW91
c0NoYXJhY3RlcikKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc3RyaW5nSW1wbFtpIC0gMV0p
OwogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogaW5saW5lIFJlbmRlclRleHQ6OlJlbmRlclRleHQoTm9kZSYgbm9kZSwg
Y29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtNzU2LDE2ICs3NTgsMTkgQEAgc3RhdGljIGZsb2F0IG1h
eFdvcmRGcmFnbWVudFdpZHRoKFJlbmRlclRleHQmIHJlbmRlcmVyLCBjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUKICAgICAgICAgZnJhZ21lbnRXaXRoSHlwaGVuLmFwcGVuZCh3b3JkLnN1YnN0cmlu
ZyhzdWZmaXhTdGFydCwgZnJhZ21lbnRMZW5ndGgpKTsKICAgICAgICAgZnJhZ21lbnRXaXRoSHlw
aGVuLmFwcGVuZChzdHlsZS5oeXBoZW5TdHJpbmcoKSk7CiAKLSAgICAgICAgVGV4dFJ1biBydW4g
PSBSZW5kZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1bihmcmFnbWVudFdpdGhIeXBoZW4udG9TdHJp
bmcoKSwgc3R5bGUpOwotICAgICAgICBydW4uc2V0Q2hhcmFjdGVyU2NhbkZvckNvZGVQYXRoKCFy
ZW5kZXJlci5jYW5Vc2VTaW1wbGVGb250Q29kZVBhdGgoKSk7Ci0gICAgICAgIGZsb2F0IGZyYWdt
ZW50V2lkdGggPSBmb250LndpZHRoKHJ1biwgJmZhbGxiYWNrRm9udHMsICZnbHlwaE92ZXJmbG93
KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZnJhZ21lbnRXaXRoSHlwaGVuLnRvU3RyaW5n
KCkpIHsKKyAgICAgICAgICAgIFRleHRSdW4gcnVuID0gUmVuZGVyQmxvY2s6OmNvbnN0cnVjdFRl
eHRSdW4oKnN0cmluZywgc3R5bGUpOworICAgICAgICAgICAgcnVuLnNldENoYXJhY3RlclNjYW5G
b3JDb2RlUGF0aCghcmVuZGVyZXIuY2FuVXNlU2ltcGxlRm9udENvZGVQYXRoKCkpOworICAgICAg
ICAgICAgZmxvYXQgZnJhZ21lbnRXaWR0aCA9IGZvbnQud2lkdGgocnVuLCAmZmFsbGJhY2tGb250
cywgJmdseXBoT3ZlcmZsb3cpOwogCi0gICAgICAgIC8vIE5hcnJvdyBwcmVmaXhlcyBhcmUgaWdu
b3JlZC4gU2VlIHRyeUh5cGhlbmF0aW5nIGluIFJlbmRlckJsb2NrTGluZUxheW91dC5jcHAuCi0g
ICAgICAgIGlmIChmcmFnbWVudFdpZHRoIDw9IG1pbmltdW1GcmFnbWVudFdpZHRoVG9Db25zaWRl
cikKLSAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgLy8gTmFycm93IHByZWZpeGVz
IGFyZSBpZ25vcmVkLiBTZWUgdHJ5SHlwaGVuYXRpbmcgaW4gUmVuZGVyQmxvY2tMaW5lTGF5b3V0
LmNwcC4KKyAgICAgICAgICAgIGlmIChmcmFnbWVudFdpZHRoIDw9IG1pbmltdW1GcmFnbWVudFdp
ZHRoVG9Db25zaWRlcikKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBzdWZm
aXhTdGFydCArPSBmcmFnbWVudExlbmd0aDsKLSAgICAgICAgbWF4RnJhZ21lbnRXaWR0aCA9IHN0
ZDo6bWF4KG1heEZyYWdtZW50V2lkdGgsIGZyYWdtZW50V2lkdGgpOworICAgICAgICAgICAgc3Vm
Zml4U3RhcnQgKz0gZnJhZ21lbnRMZW5ndGg7CisgICAgICAgICAgICBtYXhGcmFnbWVudFdpZHRo
ID0gc3RkOjptYXgobWF4RnJhZ21lbnRXaWR0aCwgZnJhZ21lbnRXaWR0aCk7CisgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICByZXR1cm4gbWF4RnJhZ21l
bnRXaWR0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVl
QXNUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNw
cAppbmRleCA1NWNkYjRiLi44NWM3OGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRyZWVBc1RleHQuY3BwCkBAIC0xNzAsNyArMTcwLDkgQEAgU3RyaW5nIHF1b3RlQW5k
RXNjYXBlTm9uUHJpbnRhYmxlcyhTdHJpbmdWaWV3IHMpCiAgICAgICAgIH0KICAgICB9CiAgICAg
cmVzdWx0LmFwcGVuZCgnIicpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBSZW5kZXJUcmVlQXNUZXh0Ojp3cml0ZVJlbmRl
ck9iamVjdChUZXh0U3RyZWFtJiB0cywgY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBSZW5kZXJBc1Rl
eHRCZWhhdmlvciBiZWhhdmlvcikKQEAgLTgwNyw3ICs4MDksOSBAQCBzdGF0aWMgU3RyaW5nIG5v
ZGVQb3NpdGlvbihOb2RlKiBub2RlKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwo
ImRvY3VtZW50Iik7CiAgICAgfQogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgdm9pZCB3cml0ZVNlbGVjdGlvbihUZXh0
U3RyZWFtJiB0cywgY29uc3QgUmVuZGVyQm94JiByZW5kZXJlcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmNwcAppbmRleCA4
OWJiMDQwLi44Yzc4NGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0
aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuY3BwCkBAIC03MSw3ICs3MSwxMCBAQCB2b2lkIFJl
bmRlck1hdGhNTEZlbmNlZDo6dXBkYXRlRnJvbUVsZW1lbnQoKQogICAgICAgICAgICAgaWYgKCFp
c1NwYWNlT3JOZXdsaW5lKHNlcGFyYXRvcnNbaV0pKQogICAgICAgICAgICAgICAgIGNoYXJhY3Rl
cnMuYXBwZW5kKHNlcGFyYXRvcnNbaV0pOwogICAgICAgICB9Ci0gICAgICAgIG1fc2VwYXJhdG9y
cyA9ICFjaGFyYWN0ZXJzLmxlbmd0aCgpID8gMCA6IGNoYXJhY3RlcnMudG9TdHJpbmcoKS5pbXBs
KCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGNoYXJhY3RlcnMudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgIG1fc2VwYXJhdG9ycyA9ICFjaGFyYWN0ZXJzLmxlbmd0aCgpID8gMCA6IHN0cmlu
Zy0+aW1wbCgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIC8vIFRoZSBzZXBhcmF0b3IgZGVmYXVsdHMgdG8gYSBzaW5nbGUgY29tbWEu
CiAgICAgICAgIG1fc2VwYXJhdG9ycyA9IFN0cmluZ0ltcGw6OmNyZWF0ZSgiLCIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVy
TWF0aE1MLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVl
QnVpbGRlck1hdGhNTC5jcHAKaW5kZXggNWNiNDc4Yi4uMjBkMjUxNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTWF0aE1MLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxk
ZXJNYXRoTUwuY3BwCkBAIC05MCw3ICs5MCwxMCBAQCB2b2lkIFJlbmRlclRyZWVCdWlsZGVyOjpN
YXRoTUw6OmF0dGFjaChSZW5kZXJNYXRoTUxGZW5jZWQmIHBhcmVudCwgUmVuZGVyUHRyPFJlbgog
CiAgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7CiAgICAgICAgICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZChzZXBhcmF0b3IpOwotICAgICAgICAgICAgc2VwYXJhdG9yUmVu
ZGVyZXIgPSBjcmVhdGVNYXRoTUxPcGVyYXRvcihwYXJlbnQsIHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKSwgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpJbmZpeCwgTWF0aE1MT3BlcmF0b3JEaWN0
aW9uYXJ5OjpTZXBhcmF0b3IpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5n
QnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHNlcGFyYXRvclJlbmRlcmVyID0g
Y3JlYXRlTWF0aE1MT3BlcmF0b3IocGFyZW50LCAqc3RyaW5nLCBNYXRoTUxPcGVyYXRvckRpY3Rp
b25hcnk6OkluZml4LCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OlNlcGFyYXRvcik7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3BwCmluZGV4IGJhMjA2
NDguLjIwZWEzZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0
VmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5j
cHAKQEAgLTYzLDcgKzYzLDkgQEAgU3RyaW5nIFNWR0xlbmd0aExpc3RWYWx1ZXM6OnZhbHVlQXNT
dHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZChhdChpKS52YWx1ZUFzU3RyaW5n
KCkpOwogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TnVtYmVyTGlzdFZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdFZh
bHVlcy5jcHAKaW5kZXggNmRmZDk5My4uODc1YmU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdOdW1iZXJMaXN0VmFsdWVzLmNwcApAQCAtNTUsNyArNTUsOSBAQCBTdHJpbmcgU1ZHTnVtYmVy
TGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
TnVtYmVyKGF0KGkpKTsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdGhTdHJpbmdCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoU3RyaW5nQnVpbGRlci5jcHAKaW5kZXggMTA1MzkxYy4uOWM1NzdlYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTdHJpbmdCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0aFN0cmluZ0J1aWxkZXIuY3BwCkBAIC0zNyw3ICszNyw5IEBAIFN0
cmluZyBTVkdQYXRoU3RyaW5nQnVpbGRlcjo6cmVzdWx0KCkKIAogICAgIC8vIFJlbW92ZSB0cmFp
bGluZyBzcGFjZS4KICAgICBtX3N0cmluZ0J1aWxkZXIucmVzaXplKHNpemUgLSAxKTsKLSAgICBy
ZXR1cm4gbV9zdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
bV9zdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIHZvaWQgU1ZHUGF0aFN0cmluZ0J1aWxkZXI6OmluY3JlbWVudFBhdGhT
ZWdtZW50Q291bnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGls
aXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwCmluZGV4
IGNmOWYwMTQuLmNjNTQzMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRo
VXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5j
cHAKQEAgLTEwMSw3ICsxMDEsOSBAQCBTdHJpbmcgYnVpbGRTdHJpbmdGcm9tUGF0aChjb25zdCBQ
YXRoJiBwYXRoKQogICAgICAgICB9KTsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBidWlsZFNWR1BhdGhC
eXRlU3RyZWFtRnJvbVNWR1BhdGhTZWdMaXN0VmFsdWVzKGNvbnN0IFNWR1BhdGhTZWdMaXN0VmFs
dWVzJiBsaXN0LCBTVkdQYXRoQnl0ZVN0cmVhbSYgcmVzdWx0LCBQYXRoUGFyc2luZ01vZGUgcGFy
c2luZ01vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFs
dWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1ZXMuY3BwCmluZGV4
IGQ4MWU2YTIuLmQ4YmRlZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2lu
dExpc3RWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1
ZXMuY3BwCkBAIC00MSw3ICs0MSw5IEBAIFN0cmluZyBTVkdQb2ludExpc3RWYWx1ZXM6OnZhbHVl
QXNTdHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihwb2ludC55KCkp
OwogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3Ry
aW5nTGlzdFZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdFZhbHVl
cy5jcHAKaW5kZXggM2ZmODk4YS4uOGM2MWYxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
dHJpbmdMaXN0VmFsdWVzLmNwcApAQCAtNzMsNyArNzMsOSBAQCBTdHJpbmcgU1ZHU3RyaW5nTGlz
dFZhbHVlczo6dmFsdWVBc1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGF0
KGkpKTsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RyYW5zZm9ybUxpc3RWYWx1ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9y
bUxpc3RWYWx1ZXMuY3BwCmluZGV4IDI1YjNjMzEuLjZiNDJkM2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAKQEAgLTY4LDcgKzY4LDkgQEAgU3Ry
aW5nIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogICAgICAg
ICBidWlsZGVyLmFwcGVuZChhdChpKS52YWx1ZUFzU3RyaW5nKCkpOwogICAgIH0KIAotICAgIHJl
dHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2
b2lkIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM6OnBhcnNlKGNvbnN0IFN0cmluZyYgdHJhbnNmb3Jt
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5jcHAKaW5kZXggNjNkNDVhNS4u
ZWExNDYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtVmFsdWUuY3BwCkBAIC0x
NzksNyArMTc5LDkgQEAgU3RyaW5nIFNWR1RyYW5zZm9ybVZhbHVlOjp2YWx1ZUFzU3RyaW5nKCkg
Y29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICAgICAgYnVpbGRlci5hcHBl
bmROdW1iZXIobV9tYXRyaXguZigpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKLSAg
ICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
ICAgIENSQVNIKCk7CiAgICAgfQogICAgIGNhc2UgU1ZHX1RSQU5TRk9STV9UUkFOU0xBVEU6IHsK
ICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwpAQCAtMTg4LDcgKzE5MCw5IEBAIFN0cmlu
ZyBTVkdUcmFuc2Zvcm1WYWx1ZTo6dmFsdWVBc1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCcgJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fbWF0cml4LmYo
KSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Ci0gICAgICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0K
ICAgICBjYXNlIFNWR19UUkFOU0ZPUk1fU0NBTEU6IHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOwpAQCAtMTk3LDcgKzIwMSw5IEBAIFN0cmluZyBTVkdUcmFuc2Zvcm1WYWx1ZTo6dmFs
dWVBc1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fbWF0cml4LnlTY2FsZSgpKTsKICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoJyknKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIGNhc2UgU1ZHX1RSQU5T
Rk9STV9ST1RBVEU6IHsKICAgICAgICAgZG91YmxlIGFuZ2xlSW5SYWQgPSBkZWcycmFkKG1fYW5n
bGUpOwpAQCAtMjE1LDcgKzIyMSw5IEBAIFN0cmluZyBTVkdUcmFuc2Zvcm1WYWx1ZTo6dmFsdWVB
c1N0cmluZygpIGNvbnN0CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihjeSk7CiAg
ICAgICAgIH0KICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKLSAgICAgICAgcmV0dXJuIGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAg
ICAgfQogICAgIGNhc2UgU1ZHX1RSQU5TRk9STV9TS0VXWDoKICAgICBjYXNlIFNWR19UUkFOU0ZP
Uk1fU0tFV1k6IHsKQEAgLTIyMyw3ICsyMzEsOSBAQCBTdHJpbmcgU1ZHVHJhbnNmb3JtVmFsdWU6
OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZChwcmVmaXgpOwog
ICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX2FuZ2xlKTsKICAgICAgICAgYnVpbGRlci5h
cHBlbmQoJyknKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmgKaW5kZXggYTIzMjdl
Ni4uODAwYWJkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
UHJvcGVydHlUcmFpdHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQ
cm9wZXJ0eVRyYWl0cy5oCkBAIC0xNDMsNyArMTQzLDkgQEAgc3RydWN0IFNWR1Byb3BlcnR5VHJh
aXRzPEZsb2F0UG9pbnQ+IHsKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS54KCkp
OwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgICAgICBidWlsZGVyLmFwcGVuZE51
bWJlcih0eXBlLnkoKSk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
ICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KIH07CiAKQEAgLTE3NCw3ICsx
NzYsOSBAQCBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0PiB7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUud2lkdGgoKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCcgJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUuaGVpZ2h0KCkpOwotICAg
ICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAg
ICAgQ1JBU0goKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
aW5kZXggODFhNDAwOS4uMGMyNDA0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cApAQCAtMTU0MCw3ICsxNTQwLDkgQEAgRXhjZXB0aW9uT3I8U3RyaW5nPiBJbnRlcm5hbHM6OmR1
bXBNYXJrZXJSZWN0cyhjb25zdCBTdHJpbmcmIG1hcmtlclR5cGVTdHJpbmcpCiAgICAgICAgIHJl
Y3RTdHJpbmcuYXBwZW5kTnVtYmVyKHJlY3QuaGVpZ2h0KCkpOwogICAgICAgICByZWN0U3RyaW5n
LmFwcGVuZExpdGVyYWwoIikgIik7CiAgICAgfQotICAgIHJldHVybiByZWN0U3RyaW5nLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVjdFN0cmluZy50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gV1RGTW92ZSgqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIElu
dGVybmFsczo6YWRkVGV4dE1hdGNoTWFya2VyKGNvbnN0IFJhbmdlJiByYW5nZSwgYm9vbCBpc0Fj
dGl2ZSkKQEAgLTIwNzksNyArMjA4MSw5IEBAIFN0cmluZyBJbnRlcm5hbHM6OnBhcnNlck1ldGFE
YXRhKEpTQzo6SlNWYWx1ZSBjb2RlKQogICAgIHJlc3VsdC5hcHBlbmROdW1iZXIoZW5kQ29sdW1u
KTsKICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiIH0iKTsKIAotICAgIHJldHVybiByZXN1bHQu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbnRlcm5hbHM6
OnVwZGF0ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQoKQpAQCAtMzA3MSw3ICszMDc1LDkgQEAgRXhj
ZXB0aW9uT3I8U3RyaW5nPiBJbnRlcm5hbHM6OmdldEN1cnJlbnRDdXJzb3JJbmZvKCkKICAgICAg
ICAgcmVzdWx0LmFwcGVuZChudW1iZXJUb0ZpeGVkUHJlY2lzaW9uU3RyaW5nKGN1cnNvci5pbWFn
ZVNjYWxlRmFjdG9yKCksIDgsIGJ1ZmZlciwgdHJ1ZSkpOwogICAgIH0KICNlbmRpZgotICAgIHJl
dHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIFdURk1vdmUoKnN0cmluZyk7CisgICAgQ1JBU0goKTsK
ICNlbHNlCiAgICAgcmV0dXJuIFN0cmluZyB7ICJGQUlMOiBDdXJzb3IgZGV0YWlscyBub3QgYXZh
aWxhYmxlIG9uIHRoaXMgcGxhdGZvcm0uIiB9OwogI2VuZGlmCkBAIC0zNTE0LDcgKzM1MjAsOSBA
QCBFeGNlcHRpb25PcjxTdHJpbmc+IEludGVybmFsczo6bWVkaWFTZXNzaW9uUmVzdHJpY3Rpb25z
KGNvbnN0IFN0cmluZyYgbWVkaWFUeXBlUwogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJywn
KTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoImludGVycnVwdGVkcGxheWJhY2tub3RwZXJtaXR0
ZWQiKTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBXVEZNb3ZlKCpz
dHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW50ZXJuYWxzOjpzZXRNZWRpYUVsZW1l
bnRSZXN0cmljdGlvbnMoSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCwgU3RyaW5nVmlldyByZXN0
cmljdGlvbnNTdHJpbmcpCkBAIC0zNzU1LDQ4ICszNzYzLDUwIEBAIFN0cmluZyBJbnRlcm5hbHM6
OnBhZ2VNZWRpYVN0YXRlKCkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAKICAgICBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUgPSBkb2N1bWVudC0+
cGFnZSgpLT5tZWRpYVN0YXRlKCk7Ci0gICAgU3RyaW5nQnVpbGRlciBzdHJpbmc7CisgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOwogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OklzUGxh
eWluZ0F1ZGlvKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdBdWRpbywiKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQoIklzUGxheWluZ0F1ZGlvLCIpOwogICAgIGlmIChzdGF0ZSAm
IE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ1ZpZGVvKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJJ
c1BsYXlpbmdWaWRlbywiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIklzUGxheWluZ1ZpZGVv
LCIpOwogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ1RvRXh0ZXJuYWxE
ZXZpY2UpCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2Us
Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlLCIp
OwogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRN
b25pdG9yaW5nKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJSZXF1aXJlc1BsYXliYWNrVGFyZ2V0
TW9uaXRvcmluZywiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIlJlcXVpcmVzUGxheWJhY2tU
YXJnZXRNb25pdG9yaW5nLCIpOwogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OkV4dGVy
bmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIkV4dGVy
bmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUsIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJF
eHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlLCIpOwogICAgIGlmIChzdGF0ZSAmIE1lZGlh
UHJvZHVjZXI6OkRpZFBsYXlUb0VuZCkKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiRGlkUGxheVRv
RW5kLCIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiRGlkUGxheVRvRW5kLCIpOwogICAgIGlm
IChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OklzU291cmNlRWxlbWVudFBsYXlpbmcpCi0gICAgICAg
IHN0cmluZy5hcHBlbmQoIklzU291cmNlRWxlbWVudFBsYXlpbmcsIik7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCJJc1NvdXJjZUVsZW1lbnRQbGF5aW5nLCIpOwogCiAgICAgaWYgKHN0YXRlICYg
TWVkaWFQcm9kdWNlcjo6SXNOZXh0VHJhY2tDb250cm9sRW5hYmxlZCkKLSAgICAgICAgc3RyaW5n
LmFwcGVuZCgiSXNOZXh0VHJhY2tDb250cm9sRW5hYmxlZCwiKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQoIklzTmV4dFRyYWNrQ29udHJvbEVuYWJsZWQsIik7CiAgICAgaWYgKHN0YXRlICYgTWVk
aWFQcm9kdWNlcjo6SXNQcmV2aW91c1RyYWNrQ29udHJvbEVuYWJsZWQpCi0gICAgICAgIHN0cmlu
Zy5hcHBlbmQoIklzUHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVkLCIpOworICAgICAgICBidWls
ZGVyLmFwcGVuZCgiSXNQcmV2aW91c1RyYWNrQ29udHJvbEVuYWJsZWQsIik7CiAKICAgICBpZiAo
c3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3Rl
bmVyKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0
eUxpc3RlbmVyLCIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiSGFzUGxheWJhY2tUYXJnZXRB
dmFpbGFiaWxpdHlMaXN0ZW5lciwiKTsKICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpI
YXNBdWRpb09yVmlkZW8pCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc0F1ZGlvT3JWaWRlbywi
KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIkhhc0F1ZGlvT3JWaWRlbywiKTsKICAgICBpZiAo
c3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCi0gICAg
ICAgIHN0cmluZy5hcHBlbmQoIkhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwiKTsKKyAgICAg
ICAgYnVpbGRlci5hcHBlbmQoIkhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwiKTsKICAgICBp
ZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCi0g
ICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSwiKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQoIkhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSwiKTsKICAg
ICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSkK
LSAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UsIik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSwiKTsKICAg
ICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkK
LSAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UsIik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSwiKTsKICAg
ICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVs
ZW1lbnQpCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlh
RWxlbWVudCwiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIkhhc1VzZXJJbnRlcmFjdGVkV2l0
aE1lZGlhRWxlbWVudCwiKTsKIAotICAgIGlmIChzdHJpbmcuaXNFbXB0eSgpKQotICAgICAgICBz
dHJpbmcuYXBwZW5kKCJJc05vdFBsYXlpbmciKTsKKyAgICBpZiAoYnVpbGRlci5pc0VtcHR5KCkp
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJJc05vdFBsYXlpbmciKTsKICAgICBlbHNlCi0gICAg
ICAgIHN0cmluZy5yZXNpemUoc3RyaW5nLmxlbmd0aCgpIC0gMSk7CisgICAgICAgIGJ1aWxkZXIu
cmVzaXplKGJ1aWxkZXIubGVuZ3RoKCkgLSAxKTsKIAotICAgIHJldHVybiBzdHJpbmcudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW50ZXJuYWxzOjpzZXRQ
YWdlRGVmZXJzTG9hZGluZyhib29sIGRlZmVyc0xvYWRpbmcpCkBAIC0zOTE4LDcgKzM5MjgsOSBA
QCBFeGNlcHRpb25PcjxTdHJpbmc+IEludGVybmFsczo6c2Nyb2xsU25hcE9mZnNldHMoRWxlbWVu
dCYgZWxlbWVudCkKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuIFdURk1vdmUoKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAKaW5kZXgg
ZTVhNmNmZS4uZjRhM2NlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2Nr
UGFnZU92ZXJsYXlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1Bh
Z2VPdmVybGF5Q2xpZW50LmNwcApAQCAtOTgsNyArOTgsMTAgQEAgdm9pZCBNb2NrUGFnZU92ZXJs
YXlDbGllbnQ6OmRyYXdSZWN0KFBhZ2VPdmVybGF5JiBvdmVybGF5LCBHcmFwaGljc0NvbnRleHQm
IGNvbnQKICAgICBtZXNzYWdlLmFwcGVuZExpdGVyYWwoIiwgIik7CiAgICAgbWVzc2FnZS5hcHBl
bmROdW1iZXIoZGlydHlSZWN0LmhlaWdodCgpKTsKICAgICBtZXNzYWdlLmFwcGVuZExpdGVyYWwo
IikiKTsKLSAgICBvdmVybGF5LnBhZ2UoKS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKS0+YWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6RGVidWcsIG1l
c3NhZ2UudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWVzc2FnZS50b1N0cmlu
ZygpKQorICAgICAgICBvdmVybGF5LnBhZ2UoKS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKS0+YWRk
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6RGVidWcs
ICpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIEdyYXBoaWNzQ29u
dGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKIApAQCAtMTIzLDcgKzEyNiwxMCBA
QCBib29sIE1vY2tQYWdlT3ZlcmxheUNsaWVudDo6bW91c2VFdmVudChQYWdlT3ZlcmxheSYgb3Zl
cmxheSwgY29uc3QgUGxhdGZvcm1Nb3VzZQogICAgIG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiLCAi
KTsKICAgICBtZXNzYWdlLmFwcGVuZE51bWJlcihldmVudC5wb3NpdGlvbigpLnkoKSk7CiAgICAg
bWVzc2FnZS5hcHBlbmRMaXRlcmFsKCIpIik7Ci0gICAgb3ZlcmxheS5wYWdlKCktPm1haW5GcmFt
ZSgpLmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBN
ZXNzYWdlTGV2ZWw6OkRlYnVnLCBtZXNzYWdlLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IG1lc3NhZ2UudG9TdHJpbmcoKSkKKyAgICAgICAgb3ZlcmxheS5wYWdlKCktPm1haW5G
cmFtZSgpLmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVy
LCBNZXNzYWdlTGV2ZWw6OkRlYnVnLCAqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNI
KCk7CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclNjcmlwdExvYWRlci5jcHAKaW5kZXggNWIzNDBmZi4uNDRlNGUyNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcApAQCAtMjAyLDcgKzIwMiw5
IEBAIHZvaWQgV29ya2VyU2NyaXB0TG9hZGVyOjpub3RpZnlFcnJvcigpCiAKIFN0cmluZyBXb3Jr
ZXJTY3JpcHRMb2FkZXI6OnNjcmlwdCgpCiB7Ci0gICAgcmV0dXJuIG1fc2NyaXB0LnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbV9zY3JpcHQudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBXb3JrZXJTY3JpcHRMb2Fk
ZXI6Om5vdGlmeUZpbmlzaGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxF
cnJvcnMuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEVycm9ycy5jcHAKaW5kZXggYjE0MzJk
MS4uYzllZTgwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEVycm9ycy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEVycm9ycy5jcHAKQEAgLTE0OCw4ICsxNDgsMTEg
QEAgdm9pZCBYTUxFcnJvcnM6Omluc2VydEVycm9yTWVzc2FnZUJsb2NrKCkKICAgICAgICAgZG9j
dW1lbnRFbGVtZW50ID0gV1RGTW92ZShib2R5KTsKICAgICB9CiAKLSAgICBTdHJpbmcgZXJyb3JN
ZXNzYWdlcyA9IG1fZXJyb3JNZXNzYWdlcy50b1N0cmluZygpOwotICAgIGF1dG8gcmVwb3J0RWxl
bWVudCA9IGNyZWF0ZVhIVE1MUGFyc2VyRXJyb3JIZWFkZXIobV9kb2N1bWVudCwgZXJyb3JNZXNz
YWdlcyk7CisgICAgYXV0byByZXBvcnRFbGVtZW50ID0gY3JlYXRlWEhUTUxQYXJzZXJFcnJvckhl
YWRlcihtX2RvY3VtZW50LCBbJl0gKCkgeworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
bV9lcnJvck1lc3NhZ2VzLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9KCkpOwogCiAjaWYgRU5BQkxFKFhT
TFQpCiAgICAgaWYgKG1fZG9jdW1lbnQudHJhbnNmb3JtU291cmNlRG9jdW1lbnQoKSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggMTllNWFlNC4uNzZiOWZkNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0xOTUsNyArMTk1LDEwIEBAIEV4
Y2VwdGlvbk9yPERvY3VtZW50Kj4gWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlWE1MKCkKICAgICAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQgPSBYTUxEb2N1
bWVudDo6Y3JlYXRlKDAsIG1fdXJsKTsKICAgICAgICAgICAgIC8vIEZJWE1FOiBTZXQgTGFzdC1N
b2RpZmllZC4KLSAgICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudC0+c2V0Q29udGVudChtX3Jl
c3BvbnNlQnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSk7CisgICAgICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBtX3Jlc3BvbnNlQnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNp
dHkoKSkKKyAgICAgICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQtPnNldENvbnRlbnQoKnN0
cmluZyk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAg
ICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudC0+c2V0Q29udGV4dERvY3VtZW50KGRvd25jYXN0PERv
Y3VtZW50Pigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSk7CiAgICAgICAgICAgICBtX3Jlc3Bv
bnNlRG9jdW1lbnQtPnNldFNlY3VyaXR5T3JpZ2luUG9saWN5KHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+c2VjdXJpdHlPcmlnaW5Qb2xpY3koKSk7CiAgICAgICAgICAgICBtX3Jlc3BvbnNlRG9j
dW1lbnQtPm92ZXJyaWRlTUlNRVR5cGUobWltZVR5cGUpOwpAQCAtODE3LDE0ICs4MjAsMjAgQEAg
U3RyaW5nIFhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25zZUhlYWRlcnMoKSBjb25zdAogICAg
ICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCI6ICIpOwogICAgICAgICAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmQoaGVhZGVyLnZhbHVlKTsKICAgICAgICAgICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXHJcbiIpOwotICAgICAgICAgICAgaGVhZGVycy51bmNoZWNr
ZWRBcHBlbmQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICBoZWFk
ZXJzLnVuY2hlY2tlZEFwcGVuZCgqc3RyaW5nKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAgICAgICAgIHN0ZDo6c29ydChoZWFkZXJzLmJl
Z2luKCksIGhlYWRlcnMuZW5kKCksIFdURjo6Y29kZVBvaW50Q29tcGFyZUxlc3NUaGFuKTsKIAog
ICAgICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7CiAgICAgICAgIGZvciAoYXV0byYg
aGVhZGVyIDogaGVhZGVycykKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGhlYWRl
cik7Ci0gICAgICAgIG1fYWxsUmVzcG9uc2VIZWFkZXJzID0gc3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgICAgICBtX2FsbFJlc3BvbnNlSGVhZGVycyA9ICpzdHJpbmc7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIG1fYWxsUmVzcG9u
c2VIZWFkZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAppbmRleCAxZWVjMTU4Li41
M2I0Zjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaApAQCAtODcsNyArODcsMTIg
QEAgcHVibGljOgogICAgIFN0cmluZyBnZXRBbGxSZXNwb25zZUhlYWRlcnMoKSBjb25zdDsKICAg
ICBTdHJpbmcgZ2V0UmVzcG9uc2VIZWFkZXIoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdDsKICAg
ICBFeGNlcHRpb25PcjxPd25lZFN0cmluZz4gcmVzcG9uc2VUZXh0KCk7Ci0gICAgU3RyaW5nIHJl
c3BvbnNlVGV4dElnbm9yaW5nUmVzcG9uc2VUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25z
ZUJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7IH0KKyAgICBTdHJpbmcgcmVzcG9u
c2VUZXh0SWdub3JpbmdSZXNwb25zZVR5cGUoKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gbV9yZXNwb25zZUJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkp
CisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9CiAg
ICAgU3RyaW5nIHJlc3BvbnNlTUlNRVR5cGUoKSBjb25zdDsKIAogICAgIERvY3VtZW50KiBvcHRp
b25hbFJlc3BvbnNlWE1MKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZURvY3VtZW50LmdldCgp
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhGdW5jdGlvbnMuY3BwIGIv
U291cmNlL1dlYkNvcmUveG1sL1hQYXRoRnVuY3Rpb25zLmNwcAppbmRleCA3MzUzNGE0Li5mN2Rj
YTlhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRnVuY3Rpb25zLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhGdW5jdGlvbnMuY3BwCkBAIC0zMDgsOSArMzA4
LDExIEBAIHN0YXRpYyBBdG9taWNTdHJpbmcgYXRvbWljU3Vic3RyaW5nKFN0cmluZ0J1aWxkZXIm
IGJ1aWxkZXIsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpCiB7CiAgICAgQVNTRVJUKHN0YXJ0IDw9IGJ1
aWxkZXIubGVuZ3RoKCkpOwogICAgIEFTU0VSVChsZW5ndGggPD0gYnVpbGRlci5sZW5ndGgoKSAt
IHN0YXJ0KTsKKyAgICBpZiAoYnVpbGRlci5mYWlsZWQoKSkKKyAgICAgICAgQ1JBU0goKTsKICAg
ICBpZiAoYnVpbGRlci5pczhCaXQoKSkKLSAgICAgICAgcmV0dXJuIEF0b21pY1N0cmluZyhidWls
ZGVyLmNoYXJhY3RlcnM4KCkgKyBzdGFydCwgbGVuZ3RoKTsKLSAgICByZXR1cm4gQXRvbWljU3Ry
aW5nKGJ1aWxkZXIuY2hhcmFjdGVyczE2KCkgKyBzdGFydCwgbGVuZ3RoKTsKKyAgICAgICAgcmV0
dXJuIEF0b21pY1N0cmluZygqYnVpbGRlci5jaGFyYWN0ZXJzOCgpICsgc3RhcnQsIGxlbmd0aCk7
CisgICAgcmV0dXJuIEF0b21pY1N0cmluZygqYnVpbGRlci5jaGFyYWN0ZXJzMTYoKSArIHN0YXJ0
LCBsZW5ndGgpOwogfQogCiBWYWx1ZSBGdW5JZDo6ZXZhbHVhdGUoKSBjb25zdApAQCAtMzM0LDE0
ICszMzYsMTcgQEAgVmFsdWUgRnVuSWQ6OmV2YWx1YXRlKCkgY29uc3QKICAgICB1bnNpZ25lZCBz
dGFydFBvcyA9IDA7CiAgICAgdW5zaWduZWQgbGVuZ3RoID0gaWRMaXN0Lmxlbmd0aCgpOwogICAg
IHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIHdoaWxlIChzdGFydFBvcyA8IGxlbmd0aCAmJiBpc1do
aXRlc3BhY2UoaWRMaXN0W3N0YXJ0UG9zXSkpCisgICAgICAgIGlmIChpZExpc3QuZmFpbGVkKCkp
CisgICAgICAgICAgICBDUkFTSCgpOworCisgICAgICAgIHdoaWxlIChzdGFydFBvcyA8IGxlbmd0
aCAmJiBpc1doaXRlc3BhY2UoKmlkTGlzdFtzdGFydFBvc10pKQogICAgICAgICAgICAgKytzdGFy
dFBvczsKICAgICAgICAgCiAgICAgICAgIGlmIChzdGFydFBvcyA9PSBsZW5ndGgpCiAgICAgICAg
ICAgICBicmVhazsKIAogICAgICAgICBzaXplX3QgZW5kUG9zID0gc3RhcnRQb3M7Ci0gICAgICAg
IHdoaWxlIChlbmRQb3MgPCBsZW5ndGggJiYgIWlzV2hpdGVzcGFjZShpZExpc3RbZW5kUG9zXSkp
CisgICAgICAgIHdoaWxlIChlbmRQb3MgPCBsZW5ndGggJiYgIWlzV2hpdGVzcGFjZSgqaWRMaXN0
W2VuZFBvc10pKQogICAgICAgICAgICAgKytlbmRQb3M7CiAKICAgICAgICAgLy8gSWYgdGhlcmUg
YXJlIHNldmVyYWwgbm9kZXMgd2l0aCB0aGUgc2FtZSBpZCwgaWQoKSBzaG91bGQgcmV0dXJuIHRo
ZSBmaXJzdCBvbmUuCkBAIC00MzcsNyArNDQyLDkgQEAgVmFsdWUgRnVuQ29uY2F0OjpldmFsdWF0
ZSgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoc3RyKTsKICAgICB9CiAKLSAgICByZXR1
cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFZhbHVl
IEZ1blN0YXJ0c1dpdGg6OmV2YWx1YXRlKCkgY29uc3QKQEAgLTU1Niw3ICs1NjMsOSBAQCBWYWx1
ZSBGdW5UcmFuc2xhdGU6OmV2YWx1YXRlKCkgY29uc3QKICAgICAgICAgICAgIHJlc3VsdC5hcHBl
bmQoczNbaTJdKTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIFZhbHVlIEZ1bkJvb2xlYW46OmV2YWx1YXRlKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwCmluZGV4IDY2
YWQxNWYuLjhlNWUwNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vz
c29yTGlieHNsdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4
c2x0LmNwcApAQCAtMTk3LDEyICsxOTcsMTggQEAgc3RhdGljIGJvb2wgc2F2ZVJlc3VsdFRvU3Ry
aW5nKHhtbERvY1B0ciByZXN1bHREb2MsIHhzbHRTdHlsZXNoZWV0UHRyIHNoZWV0LCBTdHIKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gV29ya2Fyb3VuZCBmb3IgPGh0dHA6Ly9idWd6
aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NTY2OD46IGxpYnhzbHQgYXBwZW5kcyBh
biBleHRyYSBsaW5lIGZlZWQgdG8gdGhlIHJlc3VsdC4KLSAgICBpZiAocmVzdWx0QnVpbGRlci5s
ZW5ndGgoKSA+IDAgJiYgcmVzdWx0QnVpbGRlcltyZXN1bHRCdWlsZGVyLmxlbmd0aCgpIC0gMV0g
PT0gJ1xuJykKKyAgICBpZiAocmVzdWx0QnVpbGRlci5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAg
aWYgKHJlc3VsdEJ1aWxkZXIuZmFpbGVkKCkpCisgICAgICAgICAgICBDUkFTSCgpOworICAgICAg
ICBpZiAoKnJlc3VsdEJ1aWxkZXJbcmVzdWx0QnVpbGRlci5sZW5ndGgoKSAtIDFdID09ICdcbicp
CiAgICAgICAgIHJlc3VsdEJ1aWxkZXIucmVzaXplKHJlc3VsdEJ1aWxkZXIubGVuZ3RoKCkgLSAx
KTsKKyAgICB9CiAKLSAgICByZXN1bHRTdHJpbmcgPSByZXN1bHRCdWlsZGVyLnRvU3RyaW5nKCk7
Ci0KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHRCdWlsZGVy
LnRvU3RyaW5nKCkpIHsKKyAgICAgICAgcmVzdWx0U3RyaW5nID0gKnN0cmluZzsKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBjb25zdCBjaGFy
KiogeHNsdFBhcmFtQXJyYXlGcm9tUGFyYW1ldGVyTWFwKFhTTFRQcm9jZXNzb3I6OlBhcmFtZXRl
ck1hcCYgcGFyYW1ldGVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIv
Q2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VySW5saW5lcy5oIGIvU291cmNlL1dlYkNvcmUveG1sL3Bh
cnNlci9DaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVzLmgKaW5kZXggNzY4NjI2OC4uNjcy
YmFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9DaGFyYWN0ZXJSZWZl
cmVuY2VQYXJzZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9DaGFy
YWN0ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVzLmgKQEAgLTMyLDcgKzMyLDEwIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogaW5saW5lIHZvaWQgdW5jb25zdW1lQ2hhcmFjdGVycyhTZWdtZW50ZWRT
dHJpbmcmIHNvdXJjZSwgU3RyaW5nQnVpbGRlciYgY29uc3VtZWRDaGFyYWN0ZXJzKQogewotICAg
IHNvdXJjZS5wdXNoQmFjayhjb25zdW1lZENoYXJhY3RlcnMudG9TdHJpbmcoKSk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gY29uc3VtZWRDaGFyYWN0ZXJzLnRvU3RyaW5nKCkpCisgICAgICAgIHNv
dXJjZS5wdXNoQmFjayhXVEZNb3ZlKCpzdHJpbmcpKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNI
KCk7CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBQYXJzZXJGdW5jdGlvbnM+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDhhMWRkMTcuLjg4Yjk2YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTgtMDQtMjYg
IEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgorCisgICAgICAgIFN0cmluZ0J1aWxk
ZXIgaXMgZmFsbGlibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4NTA0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRlYWNoIFN0cmluZ0J1aWxkZXIgdGhhdCBpdCBpcyBmYWxsaWJsZQorCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpFbmdpbmU6OnJlcHJlc2VudGF0aW9uKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrQ2FjaGU6OkNhY2hlOjpkdW1wQ29udGVudHNUb0ZpbGUpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUtleS5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDYWNoZTo6S2V5OjpoYXNoQXNTdHJpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0NhcHR1cmU6Ok1hbmFnZXI6Omhhc2hUb1BhdGgpOgorICAgICAgICAqIFNoYXJlZC9E
YXRhYmFzZXMvSW5kZXhlZERCL0lEQlV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OnVu
aXF1ZURhdGFiYXNlSWRlbnRpZmllcik6CisgICAgICAgICogU2hhcmVkL0dhbWVwYWQvR2FtZXBh
ZERhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpHYW1lcGFkRGF0YTo6bG9nZ2luZ1N0cmluZyBj
b25zdCk6CisgICAgICAgICogU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvdW5peC9OZXRzY2FwZVBs
dWdpbk1vZHVsZVVuaXguY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbk1vZHVs
ZTo6YnVpbGRNSU1FRGVzY3JpcHRpb24pOgorICAgICAgICAqIFNoYXJlZC9XZWJNZW1vcnlTYW1w
bGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVtb3J5U2FtcGxlcjo6YXBwZW5kQ3VycmVu
dE1lbW9yeVVzYWdlVG9GaWxlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVzZXJTY3Jp
cHQuY3BwOgorICAgICAgICAoQVBJOjpVc2VyU2NyaXB0OjpnZW5lcmF0ZVVuaXF1ZVVSTCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVc2VyU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChB
UEk6OlVzZXJTdHlsZVNoZWV0OjpnZW5lcmF0ZVVuaXF1ZVVSTCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlZp
ZXdHZXN0dXJlQ29udHJvbGxlcjo6U25hcHNob3RSZW1vdmFsVHJhY2tlcjo6ZXZlbnRzRGVzY3Jp
cHRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJCYWNrRm9yd2FyZExpc3Q6OmxvZ2dpbmdTdHJpbmcpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6
OmdldExhdW5jaE9wdGlvbnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OnJlbW92ZURhdGFSZWNvcmRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjp1cGRhdGVDb29raWVQYXJ0aXRpb25pbmcpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6c3VibWl0VG9wTGlzdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Y2FwaXRhbGl6ZVJGQzgyMkhlYWRlckZpZWxkTmFtZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpidWlsZEhUVFBIZWFk
ZXJzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGcmFtZTo6Y29udGVudHNBc1N0cmluZyBjb25zdCk6CisKIDIwMTgtMDQt
MjUgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgZGxvcGVuIHRo
ZSBidW5kbGUncyBleGVjdXRhYmxlIGJlZm9yZSBjYWxsaW5nIC1bTlNCdW5kbGUgbG9hZF0gc2lu
Y2UgdGhhdCB3aWxsIGFsc28gZG8gYSBidW5jaCBvZiBvdGhlciB0aGluZ3Mgd2UgZG9uJ3QgbmVl
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0
b3JhZ2VFbmdpbmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNo
ZVN0b3JhZ2VFbmdpbmUuY3BwCmluZGV4IDQ1YzQ3YTEuLjhkNzk1ODMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2lu
ZS5jcHAKQEAgLTUyNCw3ICs1MjQsOSBAQCBTdHJpbmcgRW5naW5lOjpyZXByZXNlbnRhdGlvbigp
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJ9Iik7CiAgICAgfQogICAgIGJ1aWxkZXIuYXBwZW5k
KCJdfSIpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBD
UkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBDYWNoZVN0b3JhZ2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAppbmRleCA3M2Ey
NWY0Li4wY2E3Zjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGUuY3BwCkBAIC01NzAsMTAgKzU3MCwxMyBAQCB2b2lkIENhY2hlOjpk
dW1wQ29udGVudHNUb0ZpbGUoKQogICAgICAgICAgICAgZXBpbG9ndWUuYXBwZW5kTnVtYmVyKHRv
dGFscy5jb3VudCA/IHRvdGFscy53b3J0aCAvIHRvdGFscy5jb3VudCA6IDApOwogICAgICAgICAg
ICAgZXBpbG9ndWUuYXBwZW5kTGl0ZXJhbCgiXG4iKTsKICAgICAgICAgICAgIGVwaWxvZ3VlLmFw
cGVuZExpdGVyYWwoIn1cbn1cbiIpOwotICAgICAgICAgICAgYXV0byB3cml0ZURhdGEgPSBlcGls
b2d1ZS50b1N0cmluZygpLnV0ZjgoKTsKLSAgICAgICAgICAgIHdyaXRlVG9GaWxlKGZkLCB3cml0
ZURhdGEuZGF0YSgpLCB3cml0ZURhdGEubGVuZ3RoKCkpOwotICAgICAgICAgICAgY2xvc2VGaWxl
KGZkKTsKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IGVwaWxvZ3VlLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBhdXRvIHdyaXRlRGF0YSA9
IHN0cmluZy0+dXRmOCgpOworICAgICAgICAgICAgICAgIHdyaXRlVG9GaWxlKGZkLCB3cml0ZURh
dGEuZGF0YSgpLCB3cml0ZURhdGEubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIGNsb3NlRmls
ZShmZCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgICAgICBhdXRvIGVudHJ5ID0gRW50cnk6OmRlY29k
ZVN0b3JhZ2VSZWNvcmQoKnJlY29yZCk7CiAgICAgICAgIGlmICghZW50cnkpCkBAIC01ODUsOCAr
NTg4LDExIEBAIHZvaWQgQ2FjaGU6OmR1bXBDb250ZW50c1RvRmlsZSgpCiAgICAgICAgIFN0cmlu
Z0J1aWxkZXIganNvbjsKICAgICAgICAgZW50cnktPmFzSlNPTihqc29uLCBpbmZvKTsKICAgICAg
ICAganNvbi5hcHBlbmRMaXRlcmFsKCIsXG4iKTsKLSAgICAgICAgYXV0byB3cml0ZURhdGEgPSBq
c29uLnRvU3RyaW5nKCkudXRmOCgpOwotICAgICAgICB3cml0ZVRvRmlsZShmZCwgd3JpdGVEYXRh
LmRhdGEoKSwgd3JpdGVEYXRhLmxlbmd0aCgpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
anNvbi50b1N0cmluZygpKSB7CisgICAgICAgICAgICBhdXRvIHdyaXRlRGF0YSA9IHN0cmluZy0+
dXRmOCgpOworICAgICAgICAgICAgd3JpdGVUb0ZpbGUoZmQsIHdyaXRlRGF0YS5kYXRhKCksIHdy
aXRlRGF0YS5sZW5ndGgoKSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsK
ICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGVLZXkuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGVLZXkuY3BwCmluZGV4IDhmYTgxZDEuLjBiNDIyZWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlS2V5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUtl
eS5jcHAKQEAgLTEzNCw3ICsxMzQsOSBAQCBTdHJpbmcgS2V5OjpoYXNoQXNTdHJpbmcoY29uc3Qg
SGFzaFR5cGUmIGhhc2gpCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHVwcGVyTmliYmxlVG9BU0NJ
SUhleERpZ2l0KGJ5dGUpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQobG93ZXJOaWJibGVUb0FT
Q0lJSGV4RGlnaXQoYnl0ZSkpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJU
eXBlPiBib29sIGhleERpZ2l0c1RvSGFzaChDaGFyVHlwZSogY2hhcmFjdGVycywgS2V5OjpIYXNo
VHlwZSYgaGFzaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fw
dHVyZS9OZXR3b3JrQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggNTYxM2JlOC4uMzQ3
M2U1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05l
dHdvcmtDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTQxNSw5ICs0MTUsOSBAQCBT
dHJpbmcgTWFuYWdlcjo6aGFzaFRvUGF0aChjb25zdCBTdHJpbmcmIGhhc2gpCiAKICAgICBhdXRv
IHBhdGggPSBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9yZWNvcmRSZXBsYXlDYWNoZUxvY2F0
aW9uLCBrRGlyTmFtZVJlc291cmNlcyk7CiAgICAgcGF0aCA9IHBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudChwYXRoLCBoYXNoSGVhZCk7Ci0gICAgcGF0aCA9IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVu
dChwYXRoLCBmaWxlTmFtZS50b1N0cmluZygpKTsKLQotICAgIHJldHVybiBwYXRoOworICAgIGlm
IChhdXRvIHN0cmluZyA9IGZpbGVOYW1lLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnQocGF0aCwgKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAog
U3RyaW5nIE1hbmFnZXI6OnVybElkZW50aWZ5aW5nQ29tbW9uRG9tYWluKGNvbnN0IFdlYkNvcmU6
OlVSTCYgdXJsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRGF0YWJhc2VzL0lu
ZGV4ZWREQi9JREJVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRGF0YWJhc2Vz
L0luZGV4ZWREQi9JREJVdGlsaXRpZXMuY3BwCmluZGV4IDllYzc2ZmYuLjdjMWMyNGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIvSURCVXRpbGl0
aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCL0lE
QlV0aWxpdGllcy5jcHAKQEAgLTUyLDcgKzUyLDkgQEAgU3RyaW5nIHVuaXF1ZURhdGFiYXNlSWRl
bnRpZmllcihjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgV2ViQ29yZTo6U2VjdXIK
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXycpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5k
KGRhdGFiYXNlTmFtZSk7CiAKLSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9HYW1lcGFkL0dhbWVwYWREYXRhLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dhbWVwYWQvR2FtZXBhZERhdGEuY3BwCmluZGV4IDkw
NWQ4MjcuLjFmYmQ3ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dhbWVwYWQv
R2FtZXBhZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dhbWVwYWQvR2FtZXBh
ZERhdGEuY3BwCkBAIC0xMTEsNyArMTExLDkgQEAgU3RyaW5nIEdhbWVwYWREYXRhOjpsb2dnaW5n
U3RyaW5nKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV9idXR0b25WYWx1
ZXNbaV0pOwogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvdW5peC9OZXRzY2FwZVBsdWdpbk1vZHVsZVVuaXguY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS91bml4L05ldHNjYXBlUGx1
Z2luTW9kdWxlVW5peC5jcHAKaW5kZXggZjllYjA2ZS4uOTcyZGNiNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS91bml4L05ldHNjYXBlUGx1Z2luTW9k
dWxlVW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS91
bml4L05ldHNjYXBlUGx1Z2luTW9kdWxlVW5peC5jcHAKQEAgLTEyMCw3ICsxMjAsOSBAQCBTdHJp
bmcgTmV0c2NhcGVQbHVnaW5Nb2R1bGU6OmJ1aWxkTUlNRURlc2NyaXB0aW9uKGNvbnN0IFZlY3Rv
cjxNaW1lQ2xhc3NJbmZvPiYgbQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJzsnKTsKICAg
ICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogYm9vbCBOZXRzY2FwZVBsdWdpbk1vZHVsZTo6Z2V0UGx1Z2luSW5mb0Zvckxv
YWRlZFBsdWdpbihSYXdQbHVnaW5NZXRhRGF0YSYgbWV0YURhdGEpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwCmluZGV4IDkyNzcxODkuLjY3NThhYjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwCkBAIC0xODEsOCArMTgxLDExIEBA
IHZvaWQgV2ViTWVtb3J5U2FtcGxlcjo6YXBwZW5kQ3VycmVudE1lbW9yeVVzYWdlVG9GaWxlKEZp
bGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhCiAgICAgfQogICAgIHN0YXRTdHJpbmcuYXBwZW5kKCdc
bicpOwogCi0gICAgQ1N0cmluZyB1dGY4U3RyaW5nID0gc3RhdFN0cmluZy50b1N0cmluZygpLnV0
ZjgoKTsKLSAgICBGaWxlU3lzdGVtOjp3cml0ZVRvRmlsZShtX3NhbXBsZUxvZ0ZpbGUsIHV0ZjhT
dHJpbmcuZGF0YSgpLCB1dGY4U3RyaW5nLmxlbmd0aCgpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBzdGF0U3RyaW5nLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgQ1N0cmluZyB1dGY4U3RyaW5nID0g
c3RyaW5nLT51dGY4KCk7CisgICAgICAgIEZpbGVTeXN0ZW06OndyaXRlVG9GaWxlKG1fc2FtcGxl
TG9nRmlsZSwgdXRmOFN0cmluZy5kYXRhKCksIHV0ZjhTdHJpbmcubGVuZ3RoKCkpOworICAgIH0g
ZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJVXNlclNjcmlwdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJVXNlclNjcmlwdC5jcHAKaW5kZXggNzU4NGU2My4uYTkzOWI1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJTY3JpcHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVc2VyU2NyaXB0LmNwcApAQCAtMzcsNyArMzcs
OSBAQCBXZWJDb3JlOjpVUkwgVXNlclNjcmlwdDo6Z2VuZXJhdGVVbmlxdWVVUkwoKQogICAgIFN0
cmluZ0J1aWxkZXIgdXJsU3RyaW5nQnVpbGRlcjsKICAgICB1cmxTdHJpbmdCdWlsZGVyLmFwcGVu
ZExpdGVyYWwoInVzZXItc2NyaXB0OiIpOwogICAgIHVybFN0cmluZ0J1aWxkZXIuYXBwZW5kTnVt
YmVyKCsraWRlbnRpZmllcik7Ci0gICAgcmV0dXJuIHsgeyB9LCB1cmxTdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCkgfTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB1cmxTdHJpbmdCdWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiB7IHsgfSwgKnN0cmluZyB9OworICAgIENSQVNIKCk7CiB9
CiAKIFVzZXJTY3JpcHQ6OlVzZXJTY3JpcHQoV2ViQ29yZTo6VXNlclNjcmlwdCB1c2VyU2NyaXB0
LCBBUEk6OlVzZXJDb250ZW50V29ybGQmIHdvcmxkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElVc2VyU3R5bGVTaGVldC5jcHAKaW5kZXggMWQ1OTViYi4uNjNhYzBmNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJTdHlsZVNoZWV0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVXNlclN0eWxlU2hlZXQu
Y3BwCkBAIC0zNyw3ICszNyw5IEBAIFdlYkNvcmU6OlVSTCBVc2VyU3R5bGVTaGVldDo6Z2VuZXJh
dGVVbmlxdWVVUkwoKQogICAgIFN0cmluZ0J1aWxkZXIgdXJsU3RyaW5nQnVpbGRlcjsKICAgICB1
cmxTdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoInVzZXItc3R5bGUtc2hlZXQ6Iik7CiAgICAg
dXJsU3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIoKytpZGVudGlmaWVyKTsKLSAgICByZXR1cm4g
eyB7IH0sIHVybFN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSB9OworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHVybFN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHsgeyB9LCAq
c3RyaW5nIH07CisgICAgQ1JBU0goKTsKIH0KIAogVXNlclN0eWxlU2hlZXQ6OlVzZXJTdHlsZVNo
ZWV0KFdlYkNvcmU6OlVzZXJTdHlsZVNoZWV0IHVzZXJTdHlsZVNoZWV0LCBBUEk6OlVzZXJDb250
ZW50V29ybGQmIHdvcmxkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKaW5kZXggOGMyMWMyNC4uOTE2ZGQ0NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNv
bnRyb2xsZXIuY3BwCkBAIC0yMzIsOCArMjMyLDEwIEBAIFN0cmluZyBWaWV3R2VzdHVyZUNvbnRy
b2xsZXI6OlNuYXBzaG90UmVtb3ZhbFRyYWNrZXI6OmV2ZW50c0Rlc2NyaXB0aW9uKEV2ZW50cyBl
CiAKICAgICBpZiAoZXZlbnQgJiBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlNuYXBzaG90UmVtb3Zh
bFRyYWNrZXI6OlNjcm9sbFBvc2l0aW9uUmVzdG9yYXRpb24pCiAgICAgICAgIGRlc2NyaXB0aW9u
LmFwcGVuZCgiU2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbiAiKTsKLSAgICAKLSAgICByZXR1cm4g
ZGVzY3JpcHRpb24udG9TdHJpbmcoKTsKKworICAgIGlmIChhdXRvIHN0cmluZyA9IGRlc2NyaXB0
aW9uLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRM
aXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAK
aW5kZXggNjAwNmEwMi4uMTI4ZjU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJCYWNrRm9yd2FyZExpc3QuY3BwCkBAIC00OTMsNyArNDkzLDkgQEAgY29uc3QgY2hhciogV2Vi
QmFja0ZvcndhcmRMaXN0Ojpsb2dnaW5nU3RyaW5nKCkKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
bV9lbnRyaWVzW2ldLT5sb2dnaW5nU3RyaW5nKCkpOwogICAgIH0KIAotICAgIHJldHVybiBkZWJ1
Z1N0cmluZygiXG4iLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIGRlYnVnU3RyaW5nKCJcbiIsICpz
dHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAjZW5kaWYgLy8gIUxPR19ESVNBQkxFRAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggN2MwMDBhYi4uZTAz
ZTBmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAt
NzEwLDcgKzcxMCwxMCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpkaWRSZWNlaXZlSW52YWxpZE1l
c3NhZ2UoY29uc3QgSVBDOjpTdHJpbmdSZWZlcmVuY2UmIG1lc3NhZwogICAgIG1lc3NhZ2VOYW1l
U3RyaW5nQnVpbGRlci5hcHBlbmQoJy4nKTsKICAgICBtZXNzYWdlTmFtZVN0cmluZ0J1aWxkZXIu
YXBwZW5kKG1lc3NhZ2VOYW1lLmRhdGEoKSwgbWVzc2FnZU5hbWUuc2l6ZSgpKTsKIAotICAgIHNf
aW52YWxpZE1lc3NhZ2VDYWxsYmFjayh0b0FQSShBUEk6OlN0cmluZzo6Y3JlYXRlKG1lc3NhZ2VO
YW1lU3RyaW5nQnVpbGRlci50b1N0cmluZygpKS5wdHIoKSkpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IG1lc3NhZ2VOYW1lU3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBzX2ludmFs
aWRNZXNzYWdlQ2FsbGJhY2sodG9BUEkoQVBJOjpTdHJpbmc6OmNyZWF0ZSgqc3RyaW5nKS5wdHIo
KSkpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9v
bDo6cHJvY2Vzc0RpZENhY2hlUGFnZShXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA0MTU2ZDgzLi5lZjA5
ZGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAg
LTE3MCw3ICsxNzAsMTAgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMo
UHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHQKICAgICAgICAgICAgICAg
ICBsYW5ndWFnZVN0cmluZy5hcHBlbmQoJywnKTsKICAgICAgICAgICAgIGxhbmd1YWdlU3RyaW5n
LmFwcGVuZChvdmVycmlkZUxhbmd1YWdlc1tpXSk7CiAgICAgICAgIH0KLSAgICAgICAgbGF1bmNo
T3B0aW9ucy5leHRyYUluaXRpYWxpemF0aW9uRGF0YS5hZGQoQVNDSUlMaXRlcmFsKCJPdmVycmlk
ZUxhbmd1YWdlcyIpLCBsYW5ndWFnZVN0cmluZy50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gbGFuZ3VhZ2VTdHJpbmcudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGxhdW5j
aE9wdGlvbnMuZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuYWRkKEFTQ0lJTGl0ZXJhbCgiT3ZlcnJp
ZGVMYW5ndWFnZXMiKSwgKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNI
KCk7CiAgICAgfQogCiAgICAgbGF1bmNoT3B0aW9ucy5ub25WYWxpZEluamVjdGVkQ29kZUFsbG93
ZWQgPSBzaG91bGRBbGxvd05vblZhbGlkSW5qZWN0ZWRDb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNw
cAppbmRleCA3ZmE4OTEwLi41ZDliNzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTIyNyw3
ICsyMjcsMTAgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlbW92ZURh
dGFSZWNvcmRzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4KICAgICAgICAgICAgIGFwcGVuZFdp
dGhEZWxpbWl0ZXIoZG9tYWluc1RvUmVtb3ZlRGF0YVJlY29yZHNGb3JCdWlsZGVyLCBkb21haW4s
IGlzRmlyc3RJdGVtKTsKICAgICAgICAgICAgIGlzRmlyc3RJdGVtID0gZmFsc2U7CiAgICAgICAg
IH0KLSAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWcs
ICJBYm91dCB0byByZW1vdmUgZGF0YSByZWNvcmRzIGZvciAle3B1YmxpY31zLiIsIGRvbWFpbnNU
b1JlbW92ZURhdGFSZWNvcmRzRm9yQnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwor
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBkb21haW5zVG9SZW1vdmVEYXRhUmVjb3Jkc0ZvckJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RlYnVnLCAiQWJvdXQgdG8gcmVtb3ZlIGRhdGEgcmVjb3JkcyBmb3IgJXtw
dWJsaWN9cy4iLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBDUkFTSCgpOwogICAgIH0KICNlbmRpZgogCkBAIC0xMDQ0LDcgKzEwNDcsMTAgQEAgdm9p
ZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnVwZGF0ZUNvb2tpZVBhcnRpdGlvbmlu
ZyhDb21wbGV0aW9uSGFuZGxlcjwKICAgICAgICAgICAgICAgICBhcHBlbmRXaXRoRGVsaW1pdGVy
KGRvbWFpbnNUb1BhcnRpdGlvbkJ1aWxkZXIsIGRvbWFpbiwgaXNGaXJzdERvbWFpbik7CiAgICAg
ICAgICAgICAgICAgaXNGaXJzdERvbWFpbiA9IGZhbHNlOwogICAgICAgICAgICAgfQotICAgICAg
ICAgICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWcsICJBYm91
dCB0byBwYXJ0aXRpb24gY29va2llcyBpbiB0aGlyZC1wYXJ0eSBjb250ZXh0cyBmb3IgJXtwdWJs
aWN9cy4iLCBkb21haW5zVG9QYXJ0aXRpb25CdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBkb21haW5zVG9QYXJ0aXRpb25CdWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGVidWcsICJBYm91dCB0byBwYXJ0aXRpb24gY29va2llcyBpbiB0aGly
ZC1wYXJ0eSBjb250ZXh0cyBmb3IgJXtwdWJsaWN9cy4iLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCkp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0K
IAogICAgICAgICBpZiAoIWRvbWFpbnNUb0Jsb2NrLmlzRW1wdHkoKSkgewpAQCAtMTA1NCw3ICsx
MDYwLDEwIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjp1cGRhdGVDb29r
aWVQYXJ0aXRpb25pbmcoQ29tcGxldGlvbkhhbmRsZXI8CiAgICAgICAgICAgICAgICAgYXBwZW5k
V2l0aERlbGltaXRlcihkb21haW5zVG9CbG9ja0J1aWxkZXIsIGRvbWFpbiwgaXNGaXJzdERvbWFp
bik7CiAgICAgICAgICAgICAgICAgaXNGaXJzdERvbWFpbiA9IGZhbHNlOwogICAgICAgICAgICAg
fQotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVi
dWcsICJBYm91dCB0byBibG9jayBjb29raWVzIGluIHRoaXJkLXBhcnR5IGNvbnRleHRzIGZvciAl
e3B1YmxpY31zLiIsIGRvbWFpbnNUb0Jsb2NrQnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZG9tYWluc1RvQmxvY2tCdWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGVidWcsICJBYm91dCB0byBibG9jayBjb29raWVzIGluIHRoaXJkLXBhcnR5
IGNvbnRleHRzIGZvciAle3B1YmxpY31zLiIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogCiAgICAg
ICAgIGlmICghZG9tYWluc1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrLmlzRW1wdHkoKSkgewpA
QCAtMTA2NCw3ICsxMDczLDEwIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
Ojp1cGRhdGVDb29raWVQYXJ0aXRpb25pbmcoQ29tcGxldGlvbkhhbmRsZXI8CiAgICAgICAgICAg
ICAgICAgYXBwZW5kV2l0aERlbGltaXRlcihkb21haW5zVG9OZWl0aGVyUGFydGl0aW9uTm9yQmxv
Y2tCdWlsZGVyLCBkb21haW4sIGlzRmlyc3REb21haW4pOwogICAgICAgICAgICAgICAgIGlzRmly
c3REb21haW4gPSBmYWxzZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFJFTEVBU0VfTE9H
X0lORk8oUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnLCAiQWJvdXQgdG8gbmVpdGhlciBwYXJ0
aXRpb24gbm9yIGJsb2NrIGNvb2tpZXMgaW4gdGhpcmQtcGFydHkgY29udGV4dHMgZm9yICV7cHVi
bGljfXMuIiwgZG9tYWluc1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrQnVpbGRlci50b1N0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZG9tYWlu
c1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAg
ICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnLCAiQWJv
dXQgdG8gbmVpdGhlciBwYXJ0aXRpb24gbm9yIGJsb2NrIGNvb2tpZXMgaW4gdGhpcmQtcGFydHkg
Y29udGV4dHMgZm9yICV7cHVibGljfXMuIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAgICAgfQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzVGVsZW1ldHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnkuY3BwCmluZGV4IGJiNzQ0MGMuLjUyMGFiNzc4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzVGVsZW1ldHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5LmNwcApAQCAtMTc5LDIyICsxNzksMjMgQEAgc3Rh
dGljIHZvaWQgc3VibWl0VG9wTGlzdCh1bnNpZ25lZCBudW1iZXJPZlJlc291cmNlc0Zyb21UaGVU
b3AsIGNvbnN0IFZlY3RvcjxQcmUKICAgICBTdHJpbmdCdWlsZGVyIHByZWFtYmxlQnVpbGRlcjsK
ICAgICBwcmVhbWJsZUJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgidG9wIik7CiAgICAgcHJlYW1ibGVC
dWlsZGVyLmFwcGVuZE51bWJlcihudW1iZXJPZlJlc291cmNlc0Zyb21UaGVUb3ApOwotICAgIFN0
cmluZyBkZXNjcmlwdGlvblByZWFtYmxlID0gcHJlYW1ibGVCdWlsZGVyLnRvU3RyaW5nKCk7Ci0g
ICAgCi0gICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdu
b3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgpLCBk
ZXNjcmlwdGlvblByZWFtYmxlICsgIlByZXZhbGVudFJlc291cmNlc1dpdGhVc2VySW50ZXJhY3Rp
b24iLAotICAgICAgICB0b3BQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uLCBz
aWduaWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOwotICAg
IHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9n
Z2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgZGVzY3JpcHRp
b25QcmVhbWJsZSArICJTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5zIiwKLSAgICAgICAgdG9w
U3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lucywgc2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9nZ2Vk
VmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKLSAgICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0
aXN0aWNzVGVsZW1ldHJ5S2V5KCksIGRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiU3VicmVzb3VyY2VV
bmRlclRvcEZyYW1lT3JpZ2lucyIsCi0gICAgICAgIHRvcFN1YnJlc291cmNlVW5kZXJUb3BGcmFt
ZU9yaWdpbnMsIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2FtcGxl
OjpObyk7Ci0gICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERp
YWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgp
LCBkZXNjcmlwdGlvblByZWFtYmxlICsgIlN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8iLAot
ICAgICAgICB0b3BTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvLCBzaWduaWZpY2FudEZpZ3Vy
ZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOwotICAgIHdlYlBhZ2VQcm94eS5s
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291
cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgZGVzY3JpcHRpb25QcmVhbWJsZSArICJO
dW1iZXJPZlRpbWVzRGF0YVJlY29yZHNSZW1vdmVkIiwKLSAgICAgICAgdG9wTnVtYmVyT2ZUaW1l
c0RhdGFSZWNvcmRzUmVtb3ZlZCwgc2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9nZ2VkVmFsdWVzLCBT
aG91bGRTYW1wbGU6Ok5vKTsKLSAgICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3RpY01lc3NhZ2VX
aXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVs
ZW1ldHJ5S2V5KCksIGRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiTnVtYmVyT2ZUaW1lc0FjY2Vzc2Vk
QXNGaXJzdFBhcnR5RHVlVG9Vc2VySW50ZXJhY3Rpb24iLAotICAgICAgICB0b3BOdW1iZXJPZlRp
bWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1VzZXJJbnRlcmFjdGlvbiwgc2lnbmlmaWNhbnRG
aWd1cmVzRm9yTG9nZ2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKLSAgICB3ZWJQYWdlUHJv
eHkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCksIGRlc2NyaXB0aW9uUHJlYW1ibGUg
KyAiTnVtYmVyT2ZUaW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9TdG9yYWdlQWNjZXNzQVBJ
IiwKLSAgICAgICAgdG9wTnVtYmVyT2ZUaW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9TdG9y
YWdlQWNjZXNzQVBJLCBzaWduaWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNh
bXBsZTo6Tm8pOworICAgIGlmIChhdXRvIGRlc2NyaXB0aW9uUHJlYW1ibGUgPSBwcmVhbWJsZUJ1
aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3RpY01l
c3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0aXN0
aWNzVGVsZW1ldHJ5S2V5KCksICpkZXNjcmlwdGlvblByZWFtYmxlICsgIlByZXZhbGVudFJlc291
cmNlc1dpdGhVc2VySW50ZXJhY3Rpb24iLAorICAgICAgICAgICAgdG9wUHJldmFsZW50UmVzb3Vy
Y2VzV2l0aFVzZXJJbnRlcmFjdGlvbiwgc2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9nZ2VkVmFsdWVz
LCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICAgICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNN
ZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlz
dGljc1RlbGVtZXRyeUtleSgpLCAqZGVzY3JpcHRpb25QcmVhbWJsZSArICJTdWJmcmFtZVVuZGVy
VG9wRnJhbWVPcmlnaW5zIiwKKyAgICAgICAgICAgIHRvcFN1YmZyYW1lVW5kZXJUb3BGcmFtZU9y
aWdpbnMsIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2FtcGxlOjpO
byk7CisgICAgICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShE
aWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXko
KSwgKmRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2lu
cyIsCisgICAgICAgICAgICB0b3BTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW5zLCBzaWdu
aWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOworICAgICAg
ICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xv
Z2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCksICpkZXNjcmlw
dGlvblByZWFtYmxlICsgIlN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8iLAorICAgICAgICAg
ICAgdG9wU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbywgc2lnbmlmaWNhbnRGaWd1cmVzRm9y
TG9nZ2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICAgICAgd2ViUGFnZVByb3h5Lmxv
Z0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgpLCAqZGVzY3JpcHRpb25QcmVhbWJsZSArICJO
dW1iZXJPZlRpbWVzRGF0YVJlY29yZHNSZW1vdmVkIiwKKyAgICAgICAgICAgIHRvcE51bWJlck9m
VGltZXNEYXRhUmVjb3Jkc1JlbW92ZWQsIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVl
cywgU2hvdWxkU2FtcGxlOjpObyk7CisgICAgICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGlj
TWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRp
c3RpY3NUZWxlbWV0cnlLZXkoKSwgKmRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiTnVtYmVyT2ZUaW1l
c0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9Vc2VySW50ZXJhY3Rpb24iLAorICAgICAgICAgICAg
dG9wTnVtYmVyT2ZUaW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9Vc2VySW50ZXJhY3Rpb24s
IHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2FtcGxlOjpObyk7Cisg
ICAgICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9z
dGljTG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgKmRl
c2NyaXB0aW9uUHJlYW1ibGUgKyAiTnVtYmVyT2ZUaW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVl
VG9TdG9yYWdlQWNjZXNzQVBJIiwKKyAgICAgICAgICAgIHRvcE51bWJlck9mVGltZXNBY2Nlc3Nl
ZEFzRmlyc3RQYXJ0eUR1ZVRvU3RvcmFnZUFjY2Vzc0FQSSwgc2lnbmlmaWNhbnRGaWd1cmVzRm9y
TG9nZ2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICB9IGVsc2UKKyAgICAgICAgQ1JB
U0goKTsKIH0KICAgICAKIHN0YXRpYyB2b2lkIHN1Ym1pdFRvcExpc3RzKGNvbnN0IFZlY3RvcjxQ
cmV2YWxlbnRSZXNvdXJjZVRlbGVtZXRyeT4mIHNvcnRlZFByZXZhbGVudFJlc291cmNlcywgY29u
c3QgVmVjdG9yPFByZXZhbGVudFJlc291cmNlVGVsZW1ldHJ5PiYgc29ydGVkUHJldmFsZW50UmVz
b3VyY2VzV2l0aG91dFVzZXJJbnRlcmFjdGlvbiwgV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9O
ZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAKaW5kZXggMGJjY2ZhZi4uYWRhNWY0
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
TmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcApAQCAtMTM4LDcgKzEzOCw5
IEBAIHN0YXRpYyBTdHJpbmcgY2FwaXRhbGl6ZVJGQzgyMkhlYWRlckZpZWxkTmFtZShjb25zdCBT
dHJpbmcmIG5hbWUpCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGNhcGl0YWxpemVDaGFyYWN0
ZXIgPSBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgSFRUUEhlYWRlck1hcCBwYXJzZVJGQzgyMkhl
YWRlckZpZWxkcyhjb25zdCBjaGFyKiBieXRlcywgdW5zaWduZWQgbGVuZ3RoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCBhN2ZjYWNl
Li43OTlhZDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5WaWV3LmNwcApAQCAtMjEyLDcgKzIxMiw5IEBAIHN0YXRpYyBTdHJpbmcgYnVpbGRIVFRQSGVh
ZGVycyhjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgbG9uZyBsb25nJiBleHBlCiAg
ICAgaWYgKCFjb250ZW50RW5jb2RpbmcuaXNOdWxsKCkgJiYgY29udGVudEVuY29kaW5nICE9ICJp
ZGVudGl0eSIpCiAgICAgICAgIGV4cGVjdGVkQ29udGVudExlbmd0aCA9IC0xOwogCi0gICAgcmV0
dXJuIGhlYWRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGhlYWRlci50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0
aWMgdWludDMyX3QgbGFzdE1vZGlmaWVkRGF0ZU1TKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
RnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3Bw
CmluZGV4IDE2YWJlNTUuLjQ4OWM4Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJGcmFtZS5jcHAKQEAgLTM1MSw3ICszNTEsOSBAQCBTdHJpbmcgV2ViRnJhbWU6
OmNvbnRlbnRzQXNTdHJpbmcoKSBjb25zdAogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQod2Vi
RnJhbWUtPmNvbnRlbnRzQXNTdHJpbmcoKSk7CiAgICAgICAgIH0KICAgICAgICAgLy8gRklYTUU6
IEl0IG1heSBtYWtlIHNlbnNlIHRvIHVzZSB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBoZXJl
LgotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2Nv
cmVGcmFtZS0+ZG9jdW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCAwN2Q0
OGNkLi5kNDEzMTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTgtMDQtMjYgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgorCisgICAg
ICAgIFN0cmluZ0J1aWxkZXIgaXMgZmFsbGlibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTA0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlYWNoIFN0cmluZ0J1aWxkZXIgdGhhdCBpdCBpcyBmYWxs
aWJsZQorCisgICAgICAgICogV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubW06CisgICAg
ICAgIChyZWdFeHBGb3JMYWJlbHMpOgorCiAyMDE4LTA0LTI1ICBKaWV3ZW4gVGFuICA8amlld2Vu
X3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGFjY2VzcyB0byBrZXljaGFpbiBmcm9t
IHRoZSBXZWJDb250ZW50IHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubW0KaW5kZXggMTkxODM2My4uMmIy
N2E1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1M
UmVwcmVzZW50YXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJIVE1MUmVwcmVzZW50YXRpb24ubW0KQEAgLTM5NCw3ICszOTQsMTAgQEAgc3RhdGljIFJlZ3Vs
YXJFeHByZXNzaW9uKiByZWdFeHBGb3JMYWJlbHMoTlNBcnJheSAqbGFiZWxzKQogICAgICAgICAg
ICAgICAgIHBhdHRlcm4uYXBwZW5kTGl0ZXJhbCgiXFxiIik7CiAgICAgICAgIH0KICAgICAgICAg
cGF0dGVybi5hcHBlbmQoJyknKTsKLSAgICAgICAgcmVzdWx0ID0gbmV3IFJlZ3VsYXJFeHByZXNz
aW9uKHBhdHRlcm4udG9TdHJpbmcoKSwgSlNDOjpZYXJyOjpUZXh0Q2FzZUluc2Vuc2l0aXZlKTsK
KyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcGF0dGVybi50b1N0cmluZygpKQorICAgICAgICAg
ICAgcmVzdWx0ID0gbmV3IFJlZ3VsYXJFeHByZXNzaW9uKCpzdHJpbmcsIEpTQzo6WWFycjo6VGV4
dENhc2VJbnNlbnNpdGl2ZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAg
ICAgfQogCiAgICAgLy8gYWRkIHJlZ2V4cCB0byB0aGUgY2FjaGUsIG1ha2luZyBzdXJlIGl0IGlz
IGF0IHRoZSBmcm9udCBmb3IgTFJVIG9yZGVyaW5nCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjU3NjFhYS4uNDIwOTViMCAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisy
MDE4LTA0LTI2ICBKRiBCYXN0aWVuICA8amZiYXN0aWVuQGFwcGxlLmNvbT4KKworICAgICAgICBT
dHJpbmdCdWlsZGVyIGlzIGZhbGxpYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODUwNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTdHJpbmdCdWlsZGVyIGNhbiBmYWlsIHdoZW4gYWxsb2NhdGluZyBt
ZW1vcnkuIFN0cmluZ0J1aWxkZXIgaXMKKyAgICAgICAgbW9zdGx5IHVzZWQgd2l0aCB1c2VyIGlu
cHV0LCB3aGljaCBvZnRlbiBtZWFucyB0aGF0IGp1c3QgY3Jhc2hpbmcKKyAgICAgICAgaXNuJ3Qg
dGhlIHJpZ2h0IG91dGNvbWUuIE91ciBmdXp6ZXJzIG9mdGVuIGVuY291bnRlciBzdWNoIHRoaW5n
cworICAgICAgICBmb3IgSmF2YVNjcmlwdENvcmUsIGFuZCBzbyBmYXIgd2UndmUgYXBwbGllZCBw
b2ludCBzb2x1dGlvbnMuIE5vCisgICAgICAgIG1vcmUhCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OmV4cGVjdEJ1aWxkZXJDb250ZW50KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmV4cGVjdEVt
cHR5KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRl
bnNpb25zLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcDoKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OmNyZWF0ZUNvbW1hbmQpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTG9nZ2luZy5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpMb2dnaW5nVGVzdDo6b3V0cHV0KToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpMb2dPYnNl
cnZlcjo6bG9nKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVGV4dENv
ZGVjLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OnRlc3REZWNvZGUpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvV1RGU3RyaW5nVXRpbGl0aWVzLmg6CisgICAgICAgICh1dGYxNlN0cmlu
Zyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2UuY3BwOgorICAgICAgICAoV1RSOjpkdW1wUGF0aCk6CisgICAgICAgIChXVFI6OnJh
bmdlVG9TdHIpOgorICAgICAgICAoV1RSOjpzdHlsZURlY1RvU3RyKToKKyAgICAgICAgKFdUUjo6
c2VjdXJpdHlPcmlnaW5Ub1N0cik6CisgICAgICAgIChXVFI6OmZyYW1lVG9TdHIpOgorICAgICAg
ICAoV1RSOjpkdW1wTG9hZEV2ZW50KToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdl
OjpkdW1wKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlVGl0
bGVGb3JGcmFtZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFBlcmZv
cm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQ
YWdlOjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXVFI6OkluamVj
dGVkQnVuZGxlUGFnZTo6d2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUpOgorICAgICAgICAoV1RSOjpJ
bmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVSZXNwb25zZUZvclJlc291cmNlKToKKyAgICAg
ICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRGaW5pc2hMb2FkRm9yUmVzb3VyY2UpOgor
ICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZhaWxMb2FkRm9yUmVzb3VyY2Up
OgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZENhY2hlUmVzcG9uc2Up
OgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24pOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRlY2lkZVBv
bGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxs
QWRkTWVzc2FnZVRvQ29uc29sZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6
d2lsbFNldFN0YXR1c2JhclRleHQpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6
OndpbGxSdW5KYXZhU2NyaXB0QWxlcnQpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBh
Z2U6OndpbGxSdW5KYXZhU2NyaXB0Q29uZmlybSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVu
ZGxlUGFnZTo6d2lsbFJ1bkphdmFTY3JpcHRQcm9tcHQpOgorICAgICAgICAoV1RSOjpJbmplY3Rl
ZEJ1bmRsZVBhZ2U6OmRpZFJlYWNoQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKToKKyAgICAg
ICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRFeGNlZWREYXRhYmFzZVF1b3RhKToKKyAg
ICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRCZWdpbkVkaXRpbmcpOgorICAg
ICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEVuZEVkaXRpbmcpOgorICAgICAg
ICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEluc2VydE5vZGUpOgorICAgICAgICAo
V1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEluc2VydFRleHQpOgorICAgICAgICAoV1RS
OjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZERlbGV0ZVJhbmdlKToKKyAgICAgICAgKFdUUjo6
SW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKToKKyAgICAgICAg
KFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRBcHBseVN0eWxlKToKKyAgICAgICAgKFdU
Ujo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRCZWdpbkVkaXRpbmcpOgorICAgICAgICAoV1RSOjpJ
bmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEVuZEVkaXRpbmcpOgorICAgICAgICAoV1RSOjpJbmplY3Rl
ZEJ1bmRsZVBhZ2U6OmRpZENoYW5nZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFn
ZTo6ZGlkQ2hhbmdlU2VsZWN0aW9uKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzdGF0
aXN0aWNzRGlkUnVuVGVsZW1ldHJ5Q2FsbGJhY2spOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVy
OjpjYWxsRGlkUmVjZWl2ZUFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzQ2FsbGJhY2spOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpU
ZXN0Q29udHJvbGxlcjo6ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUpOgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRSZWNlaXZlU2VydmVyUmVk
aXJlY3RUb1VSTCk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZEZh
aWwpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAg
ICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZHVtcFJlc3VsdHMpOgorCiAyMDE4LTA0LTI1ICBK
b25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9O
IChyMjMwOTk4KTogQm90IHdhdGNoZXIncyBkYXNoYm9hcmQgZG9lc24ndCBkaXNwbGF5IG51bWJl
ciBvZiBBUEkgdGVzdCBmYWlsdXJlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9TdHJpbmdCdWlsZGVyLmNwcAppbmRleCA2YjhlMDVjLi43ODY3NTAwIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcApAQCAtMSw2ICsxLDYg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zOSwxNiArMzks
MTYgQEAgc3RhdGljIHZvaWQgZXhwZWN0QnVpbGRlckNvbnRlbnQoY29uc3QgU3RyaW5nJiBleHBl
Y3RlZCwgY29uc3QgU3RyaW5nQnVpbGRlciYgYnUKICAgICAvLyBOb3QgdXNpbmcgYnVpbGRlci50
b1N0cmluZygpIG9yIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgYmVjYXVzZSB0
aGV5IGFsbAogICAgIC8vIGNoYW5nZSBpbnRlcm5hbCBzdGF0ZSBvZiBidWlsZGVyLgogICAgIGlm
IChidWlsZGVyLmlzOEJpdCgpKQotICAgICAgICBFWFBFQ1RfRVEoZXhwZWN0ZWQsIFN0cmluZyhi
dWlsZGVyLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIubGVuZ3RoKCkpKTsKKyAgICAgICAgRVhQRUNU
X0VRKGV4cGVjdGVkLCBTdHJpbmcoYnVpbGRlci5jaGFyYWN0ZXJzOCgpLnZhbHVlKCksIGJ1aWxk
ZXIubGVuZ3RoKCkpKTsKICAgICBlbHNlCi0gICAgICAgIEVYUEVDVF9FUShleHBlY3RlZCwgU3Ry
aW5nKGJ1aWxkZXIuY2hhcmFjdGVyczE2KCksIGJ1aWxkZXIubGVuZ3RoKCkpKTsKKyAgICAgICAg
RVhQRUNUX0VRKGV4cGVjdGVkLCBTdHJpbmcoYnVpbGRlci5jaGFyYWN0ZXJzMTYoKS52YWx1ZSgp
LCBidWlsZGVyLmxlbmd0aCgpKSk7CiB9CiAKIHZvaWQgZXhwZWN0RW1wdHkoY29uc3QgU3RyaW5n
QnVpbGRlciYgYnVpbGRlcikKIHsKICAgICBFWFBFQ1RfRVEoMFUsIGJ1aWxkZXIubGVuZ3RoKCkp
OwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuaXNFbXB0eSgpKTsKLSAgICBFWFBFQ1RfRVEoMCwg
YnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKKyAgICBFWFBFQ1RfRVEoMCwgYnVpbGRlci5jaGFyYWN0
ZXJzOCgpLnZhbHVlKCkpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBEZWZhdWx0Q29u
c3RydWN0b3IpCkBAIC03MSwyNCArNzEsMjQgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQXBw
ZW5kKQogICAgIGJ1aWxkZXIuYXBwZW5kKCcjJyk7CiAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1aWxkZXIpOwogCi0gICAgYnVpbGRlci50b1N0cmluZygp
OyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCisgICAgYnVpbGRlci50b1N0cmluZygpLnZh
bHVlKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBTdHJpbmdCdWlsZGVyIGJ1
aWxkZXIxOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIiLCAwKTsKICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7Ci0gICAgYnVpbGRlcjEuYXBwZW5k
KGJ1aWxkZXIuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5sZW5ndGgoKSk7CisgICAgYnVpbGRlcjEu
YXBwZW5kKGJ1aWxkZXIuY2hhcmFjdGVyczgoKS52YWx1ZSgpLCBidWlsZGVyLmxlbmd0aCgpKTsK
ICAgICBidWlsZGVyMS5hcHBlbmQoIlhZWiIpOwotICAgIGJ1aWxkZXIuYXBwZW5kKGJ1aWxkZXIx
LmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIxLmxlbmd0aCgpKTsKKyAgICBidWlsZGVyLmFwcGVuZChi
dWlsZGVyMS5jaGFyYWN0ZXJzOCgpLnZhbHVlKCksIGJ1aWxkZXIxLmxlbmd0aCgpKTsKICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcj
WFlaIiwgYnVpbGRlcik7CiAKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXIyOwogICAgIGJ1aWxk
ZXIyLnJlc2VydmVDYXBhY2l0eSgxMDApOwogICAgIGJ1aWxkZXIyLmFwcGVuZCgieHl6Iik7Ci0g
ICAgY29uc3QgTENoYXIqIGNoYXJhY3RlcnMgPSBidWlsZGVyMi5jaGFyYWN0ZXJzOCgpOworICAg
IGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzID0gYnVpbGRlcjIuY2hhcmFjdGVyczgoKS52YWx1ZSgp
OwogICAgIGJ1aWxkZXIyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwotICAgIEFTU0VSVF9FUShjaGFy
YWN0ZXJzLCBidWlsZGVyMi5jaGFyYWN0ZXJzOCgpKTsKLSAgICBidWlsZGVyMi50b1N0cmluZ1By
ZXNlcnZlQ2FwYWNpdHkoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZyB3aXRoIGJ1ZmZlciBw
cmVzZXJ2ZWQuCisgICAgQVNTRVJUX0VRKGNoYXJhY3RlcnMsIGJ1aWxkZXIyLmNoYXJhY3RlcnM4
KCkudmFsdWUoKSk7CisgICAgYnVpbGRlcjIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkudmFs
dWUoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZyB3aXRoIGJ1ZmZlciBwcmVzZXJ2ZWQuCiAg
ICAgYnVpbGRlcjIuYXBwZW5kKCJhYmNkIik7Ci0gICAgQVNTRVJUX0VRKGNoYXJhY3RlcnMsIGJ1
aWxkZXIyLmNoYXJhY3RlcnM4KCkpOworICAgIEFTU0VSVF9FUShjaGFyYWN0ZXJzLCBidWlsZGVy
Mi5jaGFyYWN0ZXJzOCgpLnZhbHVlKCkpOwogCiAgICAgLy8gVGVzdCBhcHBlbmRpbmcgVUNoYXIz
MiBjaGFyYWN0ZXJzIHRvIFN0cmluZ0J1aWxkZXIuCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
Rm9yVUNoYXIzMkFwcGVuZDsKQEAgLTEwNSw5ICsxMDUsOSBAQCBURVNUKFN0cmluZ0J1aWxkZXJU
ZXN0LCBUb1N0cmluZykKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRl
ci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKLSAgICBTdHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpOworICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkudmFsdWUoKTsK
ICAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7Ci0gICAgQVNTRVJU
X0VRKHN0cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmcoKS5pbXBsKCkpOworICAgIEFTU0VS
VF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nKCkudmFsdWUoKS5pbXBsKCkpOwog
CiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhl
IG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpLgogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpOwpAQCAtMTE1LDIwICsxMTUsMjAgQEAgVEVTVChTdHJp
bmdCdWlsZGVyVGVzdCwgVG9TdHJpbmcpCiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVp
bGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkg
aW4gY2FzZSB0aGUgY2FwYWNpdHkgaXMgbm90IGNoYW5nZWQuCiAgICAgYnVpbGRlci5yZXNlcnZl
Q2FwYWNpdHkoMjAwKTsKLSAgICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpLnZhbHVlKCk7CiAgICAgQVNTRVJUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CiAgICAgYnVp
bGRlci5hcHBlbmQoIkFCQyIpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhl
IG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpIHNob3VsZCBub3QgYWZmZWN0IHRoZSBjb250
ZW50IG9mIHRoZSBTdHJpbmdCdWlsZGVyLgotICAgIFN0cmluZyBzdHJpbmcxID0gYnVpbGRlci50
b1N0cmluZygpOworICAgIFN0cmluZyBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZygpLnZhbHVl
KCk7CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6QUJDIiksIHN0cmluZzEpOwogICAgIHN0cmluZzEuYXBwZW5kKCJERUYiKTsKLSAgICBB
U1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMi
KSwgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZygpLnZhbHVl
KCkpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdC
dWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmco
KS4KLSAgICBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZygpOworICAgIHN0cmluZzEgPSBidWls
ZGVyLnRvU3RyaW5nKCkudmFsdWUoKTsKICAgICBidWlsZGVyLnJlc2l6ZSgxMCk7CiAgICAgYnVp
bGRlci5hcHBlbmQoIiMjIyIpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKQEAgLTEzOSwxMSArMTM5LDEx
IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKICAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODki
KTsKICAgICB1bnNpZ25lZCBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKLSAgICBTdHJp
bmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKKyAgICBTdHJp
bmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS52YWx1ZSgpOwog
ICAgIEFTU0VSVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKICAgICBBU1NFUlRf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7Ci0gICAgQVNTRVJUX0VRKHN0cmluZy5p
bXBsKCksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuaW1wbCgpKTsKLSAgICBB
U1NFUlRfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7Cisg
ICAgQVNTRVJUX0VRKHN0cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFj
aXR5KCkudmFsdWUoKS5pbXBsKCkpOworICAgIEFTU0VSVF9FUShzdHJpbmcuY2hhcmFjdGVyczgo
KSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpLnZhbHVlKCkpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhl
IFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0
b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXoiKTsKQEAgLTE1MiwyOCArMTUyLDI4IEBAIFRFU1QoU3RyaW5nQnVp
bGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKICAgICAvLyBDaGFuZ2luZyB0aGUg
U3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRv
U3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIGluIGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFu
Z2VkLgogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDIwMCk7CiAgICAgY2FwYWNpdHkgPSBi
dWlsZGVyLmNhcGFjaXR5KCk7Ci0gICAgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZl
Q2FwYWNpdHkoKTsKKyAgICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0
eSgpLnZhbHVlKCk7CiAgICAgQVNTRVJUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkp
OwotICAgIEFTU0VSVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJz
OCgpKTsKKyAgICBBU1NFUlRfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFj
dGVyczgoKS52YWx1ZSgpKTsKICAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVuZCgiQUJD
Iik7CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6IiksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVzdWx0
IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIHNob3VsZCBub3QgYWZmZWN0IHRoZSBjb250
ZW50IG9mIHRoZSBTdHJpbmdCdWlsZGVyLgogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0
eSgpOwotICAgIFN0cmluZyBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNp
dHkoKTsKKyAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFj
aXR5KCkudmFsdWUoKTsKICAgICBBU1NFUlRfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHko
KSk7Ci0gICAgQVNTRVJUX0VRKHN0cmluZzEuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0
ZXJzOCgpKTsKKyAgICBBU1NFUlRfRVEoc3RyaW5nMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNo
YXJhY3RlcnM4KCkudmFsdWUoKSk7CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOwogICAgIHN0cmluZzEuYXBw
ZW5kKCJERUYiKTsKLSAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSk7
CisgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6QUJDIiksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkudmFsdWUoKSk7CiAg
ICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
QUJDREVGIiksIHN0cmluZzEpOwogCiAgICAgLy8gUmVzaXppbmcgdGhlIFN0cmluZ0J1aWxkZXIg
c2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZl
Q2FwYWNpdHkoKS4KICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKLSAgICBzdHJp
bmcxID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKKyAgICBzdHJpbmcxID0g
YnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS52YWx1ZSgpOwogICAgIEFTU0VSVF9F
UShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKLSAgICBBU1NFUlRfRVEoc3RyaW5nLmNo
YXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CisgICAgQVNTRVJUX0VRKHN0cmlu
Zy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkudmFsdWUoKSk7CiAgICAgYnVp
bGRlci5yZXNpemUoMTApOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIjIyMiKTsKICAgICBBU1NFUlRf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3Ry
aW5nMSk7CkBAIC0xOTEsMTEgKzE5MSwxMSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBBcnJh
eSkKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjAx
MjM0NTY3ODkiKTsKLSAgICBFWFBFQ1RfRVEoJzAnLCBzdGF0aWNfY2FzdDxjaGFyPihidWlsZGVy
WzBdKSk7Ci0gICAgRVhQRUNUX0VRKCc5Jywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRlcls5XSkp
OwotICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgot
ICAgIEVYUEVDVF9FUSgnMCcsIHN0YXRpY19jYXN0PGNoYXI+KGJ1aWxkZXJbMF0pKTsKLSAgICBF
WFBFQ1RfRVEoJzknLCBzdGF0aWNfY2FzdDxjaGFyPihidWlsZGVyWzldKSk7CisgICAgRVhQRUNU
X0VRKCcwJywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRlclswXS52YWx1ZSgpKSk7CisgICAgRVhQ
RUNUX0VRKCc5Jywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRlcls5XS52YWx1ZSgpKSk7CisgICAg
YnVpbGRlci50b1N0cmluZygpLnZhbHVlKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4K
KyAgICBFWFBFQ1RfRVEoJzAnLCBzdGF0aWNfY2FzdDxjaGFyPihidWlsZGVyWzBdLnZhbHVlKCkp
KTsKKyAgICBFWFBFQ1RfRVEoJzknLCBzdGF0aWNfY2FzdDxjaGFyPihidWlsZGVyWzldLnZhbHVl
KCkpKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgUmVzaXplKQpAQCAtMjA5LDcgKzIw
OSw3IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFJlc2l6ZSkKICAgICBFWFBFQ1RfRVEoOFUs
IGJ1aWxkZXIubGVuZ3RoKCkpOwogICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2NyIs
IGJ1aWxkZXIpOwogCi0gICAgYnVpbGRlci50b1N0cmluZygpOworICAgIGJ1aWxkZXIudG9TdHJp
bmcoKS52YWx1ZSgpOwogICAgIGJ1aWxkZXIucmVzaXplKDcpOwogICAgIEVYUEVDVF9FUSg3VSwg
YnVpbGRlci5sZW5ndGgoKSk7CiAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTYiLCBi
dWlsZGVyKTsKQEAgLTI0MCwxMyArMjQwLDEzIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEVx
dWFsKQogICAgIEFTU0VSVF9UUlVFKGJ1aWxkZXIyICE9IGJ1aWxkZXIxKTsKICAgICBBU1NFUlRf
VFJVRShTdHJpbmcoIjEyMyIpICE9IGJ1aWxkZXIyKTsKICAgICBBU1NFUlRfVFJVRShidWlsZGVy
MiAhPSBTdHJpbmcoIjEyMyIpKTsKLSAgICBidWlsZGVyMi50b1N0cmluZygpOyAvLyBUZXN0IGFm
dGVyIHJlaWZ5U3RyaW5nKCkuCisgICAgYnVpbGRlcjIudG9TdHJpbmcoKS52YWx1ZSgpOyAvLyBU
ZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAgICAgQVNTRVJUX1RSVUUoYnVpbGRlcjEgIT0gYnVp
bGRlcjIpOwogCiAgICAgYnVpbGRlcjIucmVzaXplKDMpOwogICAgIEFTU0VSVF9UUlVFKGJ1aWxk
ZXIxID09IGJ1aWxkZXIyKTsKIAotICAgIGJ1aWxkZXIxLnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0
ZXIgcmVpZnlTdHJpbmcoKS4KKyAgICBidWlsZGVyMS50b1N0cmluZygpLnZhbHVlKCk7IC8vIFRl
c3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBBU1NFUlRfVFJVRShidWlsZGVyMSA9PSBidWls
ZGVyMik7CiB9CiAKQEAgLTI2NSwxNCArMjY1LDE0IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3Qs
IFRvQXRvbWljU3RyaW5nKQogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWls
ZGVyLmFwcGVuZCgiMTIzIik7Ci0gICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxk
ZXIudG9BdG9taWNTdHJpbmcoKTsKKyAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVp
bGRlci50b0F0b21pY1N0cmluZygpLnZhbHVlKCk7CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMTIz
IiksIGF0b21pY1N0cmluZyk7CiAKICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyNTYpOwog
ICAgIEFTU0VSVF9UUlVFKGJ1aWxkZXIuY2FuU2hyaW5rKCkpOwogICAgIGZvciAoaW50IGkgPSBi
dWlsZGVyLmxlbmd0aCgpOyBpIDwgMTI4OyBpKyspCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCd4
Jyk7Ci0gICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZzEgPSBidWlsZGVyLnRvQXRvbWljU3Ry
aW5nKCk7CisgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZzEgPSBidWlsZGVyLnRvQXRvbWlj
U3RyaW5nKCkudmFsdWUoKTsKICAgICBBU1NFUlRfRVEoMTI4dSwgYXRvbWljU3RyaW5nMS5sZW5n
dGgoKSk7CiAgICAgQVNTRVJUX0VRKCd4JywgYXRvbWljU3RyaW5nMVsxMjddKTsKIApAQCAtMjgy
LDggKzI4Miw4IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvQXRvbWljU3RyaW5nKQogICAg
IEFTU0VSVF9FUSgxMjh1LCBhdG9taWNTdHJpbmcxLmxlbmd0aCgpKTsKIAogICAgIEFTU0VSVF9G
QUxTRShidWlsZGVyLmNhblNocmluaygpKTsKLSAgICBTdHJpbmcgc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpOwotICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcyID0gYnVpbGRlci50b0F0
b21pY1N0cmluZygpOworICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkudmFs
dWUoKTsKKyAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nMiA9IGJ1aWxkZXIudG9BdG9taWNT
dHJpbmcoKS52YWx1ZSgpOwogICAgIC8vIFRoZXkgc2hvdWxkIHNoYXJlIHRoZSBzYW1lIFN0cmlu
Z0ltcGwuCiAgICAgQVNTRVJUX0VRKGF0b21pY1N0cmluZzIuaW1wbCgpLCBzdHJpbmcuaW1wbCgp
KTsKIH0KQEAgLTI5Miw0NSArMjkyLDQ1IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvQXRv
bWljU3RyaW5nT25FbXB0eSkKIHsKICAgICB7IC8vIERlZmF1bHQgY29uc3RydWN0ZWQuCiAgICAg
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0
cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKTsKKyAgICAgICAgQXRvbWljU3RyaW5nIGF0
b21pY1N0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKS52YWx1ZSgpOwogICAgICAgICBB
U1NFUlRfRVEoZW1wdHlBdG9tKCksIGF0b21pY1N0cmluZyk7CiAgICAgfQogICAgIHsgLy8gV2l0
aCBjYXBhY2l0eS4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWls
ZGVyLnJlc2VydmVDYXBhY2l0eSg2NCk7Ci0gICAgICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJp
bmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7CisgICAgICAgIEF0b21pY1N0cmluZyBhdG9t
aWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCkudmFsdWUoKTsKICAgICAgICAgQVNT
RVJUX0VRKGVtcHR5QXRvbSgpLCBhdG9taWNTdHJpbmcpOwogICAgIH0KICAgICB7IC8vIEF0b21p
Y1N0cmluZyBjb25zdHJ1Y3RlZCBmcm9tIGEgbnVsbCBzdHJpbmcuCiAgICAgICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCkpOwotICAgICAg
ICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpOwor
ICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmlu
ZygpLnZhbHVlKCk7CiAgICAgICAgIEFTU0VSVF9FUShlbXB0eUF0b20oKSwgYXRvbWljU3RyaW5n
KTsKICAgICB9CiAgICAgeyAvLyBBdG9taWNTdHJpbmcgY29uc3RydWN0ZWQgZnJvbSBhbiBlbXB0
eSBzdHJpbmcuCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoZW1wdHlTdHJpbmcoKSk7Ci0gICAgICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJp
bmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7CisgICAgICAgIEF0b21pY1N0cmluZyBhdG9t
aWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCkudmFsdWUoKTsKICAgICAgICAgQVNT
RVJUX0VRKGVtcHR5QXRvbSgpLCBhdG9taWNTdHJpbmcpOwogICAgIH0KICAgICB7IC8vIEF0b21p
Y1N0cmluZyBjb25zdHJ1Y3RlZCBmcm9tIGFuIGVtcHR5IFN0cmluZ0J1aWxkZXIuCiAgICAgICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgU3RyaW5nQnVpbGRlciBlbXB0eUJ1aWxk
ZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGVtcHR5QnVpbGRlcik7Ci0gICAgICAgIEF0b21p
Y1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7CisgICAgICAg
IEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCkudmFs
dWUoKTsKICAgICAgICAgQVNTRVJUX0VRKGVtcHR5QXRvbSgpLCBhdG9taWNTdHJpbmcpOwogICAg
IH0KICAgICB7IC8vIEF0b21pY1N0cmluZyBjb25zdHJ1Y3RlZCBmcm9tIGFuIGVtcHR5IGNoYXIq
IHN0cmluZy4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVy
LmFwcGVuZCgiIiwgMCk7Ci0gICAgICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWls
ZGVyLnRvQXRvbWljU3RyaW5nKCk7CisgICAgICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcg
PSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCkudmFsdWUoKTsKICAgICAgICAgQVNTRVJUX0VRKGVt
cHR5QXRvbSgpLCBhdG9taWNTdHJpbmcpOwogICAgIH0KICAgICB7IC8vIENsZWFyZWQgU3RyaW5n
QnVpbGRlci4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVy
LmFwcGVuZExpdGVyYWwoIldlYktpdCIpOwogICAgICAgICBidWlsZGVyLmNsZWFyKCk7Ci0gICAg
ICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7
CisgICAgICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3Ry
aW5nKCkudmFsdWUoKTsKICAgICAgICAgQVNTRVJUX0VRKGVtcHR5QXRvbSgpLCBhdG9taWNTdHJp
bmcpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1N0cmluZ1ZpZXcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmll
dy5jcHAKaW5kZXggZmMyOGIwMC4uOGIyODMwOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKQEAgLTE2NCw2NSArMTY0LDY1IEBAIFRFU1QoV1RGLCBT
dHJpbmdWaWV3SXRlcmF0b3JzKQogCiAgICAgU3RyaW5nQnVpbGRlciBiOwogICAgIGJ1aWxkKGIs
IHsweEQ4MDAsIDB4REQ1NX0pOyAvLyBTdXJyb2dhdGVzIGZvciB1bmljb2RlIGNvZGUgcG9pbnQg
VSsxMDE1NQotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3
KGIudG9TdHJpbmcoKSkuY29kZVBvaW50cygpLCB7MHgxMDE1NX0pKTsKLSAgICBFWFBFQ1RfVFJV
RShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVVbml0
cygpLCB7MHhEODAwLCAweERENTV9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVy
YXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJp
bmdWaWV3KGIudG9TdHJpbmcoKSl9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVy
YXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVQb2ludHMoKSwgezB4
MTAxNTV9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1Zp
ZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVVbml0cygpLCB7MHhEODAwLCAweERENTV9KSk7
CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0
cmluZygpLnZhbHVlKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi50b1N0cmlu
ZygpLnZhbHVlKCkpfSkpOwogCiAgICAgYnVpbGQoYiwgezB4RDgwMH0pOyAvLyBMZWFkaW5nIHN1
cnJvZ2F0ZSBvbmx5Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmlu
Z1ZpZXcoYi50b1N0cmluZygpKS5jb2RlUG9pbnRzKCksIHsweEQ4MDB9KSk7Ci0gICAgRVhQRUNU
X1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2Rl
VW5pdHMoKSwgezB4RDgwMH0pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlv
bnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1Zp
ZXcoYi50b1N0cmluZygpKX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlv
bnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVBvaW50cygpLCB7MHhEODAw
fSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIu
dG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlVW5pdHMoKSwgezB4RDgwMH0pKTsKKyAgICBFWFBFQ1Rf
VFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUo
KSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSl9
KSk7CiAKICAgICBidWlsZChiLCB7MHhEODAwLCAweEQ4MDF9KTsgLy8gVHdvIGxlYWRpbmcgc3Vy
cm9nYXRlcwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3
KGIudG9TdHJpbmcoKSkuY29kZVBvaW50cygpLCB7MHhEODAwLCAweEQ4MDF9KSk7Ci0gICAgRVhQ
RUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5j
b2RlVW5pdHMoKSwgezB4RDgwMCwgMHhEODAxfSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVM
b29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuZ3JhcGhlbWVDbHVzdGVycygp
LCB7U3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLCAxKSwgU3RyaW5nVmlldyhiLmNoYXJhY3Rl
cnMxNigpICsgMSwgMSl9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25z
KFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVQb2ludHMoKSwgezB4RDgwMCwg
MHhEODAxfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdW
aWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlVW5pdHMoKSwgezB4RDgwMCwgMHhEODAxfSkp
OworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9T
dHJpbmcoKS52YWx1ZSgpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIuY2hhcmFj
dGVyczE2KCkudmFsdWUoKSwgMSksIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKS52YWx1ZSgp
ICsgMSwgMSl9KSk7CiAKICAgICBidWlsZChiLCB7MHhERDU1fSk7IC8vIFRyYWlsaW5nIHN1cnJv
Z2F0ZSBvbmx5Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1Zp
ZXcoYi50b1N0cmluZygpKS5jb2RlUG9pbnRzKCksIHsweERENTV9KSk7Ci0gICAgRVhQRUNUX1RS
VUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlVW5p
dHMoKSwgezB4REQ1NX0pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMo
U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXco
Yi50b1N0cmluZygpKX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMo
U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVBvaW50cygpLCB7MHhERDU1fSkp
OworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9T
dHJpbmcoKS52YWx1ZSgpKS5jb2RlVW5pdHMoKSwgezB4REQ1NX0pKTsKKyAgICBFWFBFQ1RfVFJV
RShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSku
Z3JhcGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSl9KSk7
CiAKICAgICBidWlsZChiLCB7MHhEODAwLCAnaCd9KTsgLy8gTGVhZGluZyBzdXJyb2dhdGUgZm9s
bG93ZWQgYnkgbm9uLXN1cnJvZ2F0ZQotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0
aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVBvaW50cygpLCB7MHhEODAwLCAnaCd9
KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50
b1N0cmluZygpKS5jb2RlVW5pdHMoKSwgezB4RDgwMCwgJ2gnfSkpOwotICAgIEVYUEVDVF9UUlVF
KGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuZ3JhcGhlbWVD
bHVzdGVycygpLCB7U3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLCAxKSwgU3RyaW5nVmlldyhi
LmNoYXJhY3RlcnMxNigpICsgMSwgMSl9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJ
dGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVQb2ludHMoKSwg
ezB4RDgwMCwgJ2gnfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhT
dHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlVW5pdHMoKSwgezB4RDgwMCwgJ2gn
fSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIu
dG9TdHJpbmcoKS52YWx1ZSgpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIuY2hh
cmFjdGVyczE2KCkudmFsdWUoKSwgMSksIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKS52YWx1
ZSgpICsgMSwgMSl9KSk7CiAKICAgICBidWlsZChiLCB7MHgwMzA2fSk7IC8vICJDT01CSU5JTkcg
QlJFVkUiCi0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXco
Yi50b1N0cmluZygpKS5jb2RlUG9pbnRzKCksIHsweDAzMDZ9KSk7Ci0gICAgRVhQRUNUX1RSVUUo
Y29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlVW5pdHMo
KSwgezB4MDMwNn0pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3Ry
aW5nVmlldyhiLnRvU3RyaW5nKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi50
b1N0cmluZygpKX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3Ry
aW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVBvaW50cygpLCB7MHgwMzA2fSkpOwor
ICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJp
bmcoKS52YWx1ZSgpKS5jb2RlVW5pdHMoKSwgezB4MDMwNn0pKTsKKyAgICBFWFBFQ1RfVFJVRShj
b21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuZ3Jh
cGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSl9KSk7CiAK
ICAgICBidWlsZChiLCB7MHgwMzA2LCAweEQ4MDAsIDB4REQ1NSwgJ2gnLCAnZScsICdsJywgJ28n
fSk7IC8vIE1peCBvZiBzaW5nbGUgY29kZSB1bml0IGFuZCBtdWx0aSBjb2RlIHVuaXQgY29kZSBw
b2ludHMKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhi
LnRvU3RyaW5nKCkpLmNvZGVQb2ludHMoKSwgezB4MDMwNiwgMHgxMDE1NSwgJ2gnLCAnZScsICds
JywgJ28nfSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdW
aWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRzKCksIHsweDAzMDYsIDB4RDgwMCwgMHhERDU1LCAn
aCcsICdlJywgJ2wnLCAnbyd9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRp
b25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHsKLSAgICAg
ICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLCAxKSwKLSAgICAgICAgU3RyaW5nVmlldyhi
LmNoYXJhY3RlcnMxNigpICsgMSwgMiksCi0gICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJz
MTYoKSArIDMsIDEpLAotICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkgKyA0LCAx
KSwKLSAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpICsgNSwgMSksCi0gICAgICAg
IFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSArIDYsIDEpfSkpOworICAgIEVYUEVDVF9UUlVF
KGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5j
b2RlUG9pbnRzKCksIHsweDAzMDYsIDB4MTAxNTUsICdoJywgJ2UnLCAnbCcsICdvJ30pKTsKKyAg
ICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5n
KCkudmFsdWUoKSkuY29kZVVuaXRzKCksIHsweDAzMDYsIDB4RDgwMCwgMHhERDU1LCAnaCcsICdl
JywgJ2wnLCAnbyd9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0
cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwgeworICAg
ICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSwgMSksCisgICAgICAgIFN0
cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKS52YWx1ZSgpICsgMSwgMiksCisgICAgICAgIFN0cmlu
Z1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKS52YWx1ZSgpICsgMywgMSksCisgICAgICAgIFN0cmluZ1Zp
ZXcoYi5jaGFyYWN0ZXJzMTYoKS52YWx1ZSgpICsgNCwgMSksCisgICAgICAgIFN0cmluZ1ZpZXco
Yi5jaGFyYWN0ZXJzMTYoKS52YWx1ZSgpICsgNSwgMSksCisgICAgICAgIFN0cmluZ1ZpZXcoYi5j
aGFyYWN0ZXJzMTYoKS52YWx1ZSgpICsgNiwgMSl9KSk7CiAKICAgICBidWlsZChiLCB7J2UnLCAw
eDAzMDF9KTsgLy8gIkNPTUJJTklORyBBQ1VURSIKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9v
cEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVQb2ludHMoKSwgeydlJywg
MHgwMzAxfSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdW
aWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRzKCksIHsnZScsIDB4MDMwMX0pKTsKLSAgICBFWFBF
Q1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmdy
YXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi50b1N0cmluZygpKX0pKTsKKyAgICBFWFBF
Q1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFs
dWUoKSkuY29kZVBvaW50cygpLCB7J2UnLCAweDAzMDF9KSk7CisgICAgRVhQRUNUX1RSVUUoY29t
cGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVV
bml0cygpLCB7J2UnLCAweDAzMDF9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVy
YXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmdyYXBoZW1lQ2x1c3RlcnMo
KSwge1N0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpfSkpOwogCiAgICAgYnVpbGQoYiwg
eydlJywgMHgwMzAxLCAweDAzMDYsICdhJ30pOyAvLyAiQ09NQklOSU5HIEFDVVRFIiAiQ09NQklO
SU5HIEJSRVZFIgotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdW
aWV3KGIudG9TdHJpbmcoKSkuY29kZVBvaW50cygpLCB7J2UnLCAweDAzMDEsIDB4MDMwNiwgJ2En
fSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIu
dG9TdHJpbmcoKSkuY29kZVVuaXRzKCksIHsnZScsIDB4MDMwMSwgMHgwMzA2LCAnYSd9KSk7Ci0g
ICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmlu
ZygpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHsKLSAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3Rl
cnMxNigpLCAzKSwKLSAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpICsgMywgMSks
CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0
cmluZygpLnZhbHVlKCkpLmNvZGVQb2ludHMoKSwgeydlJywgMHgwMzAxLCAweDAzMDYsICdhJ30p
KTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRv
U3RyaW5nKCkudmFsdWUoKSkuY29kZVVuaXRzKCksIHsnZScsIDB4MDMwMSwgMHgwMzA2LCAnYSd9
KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50
b1N0cmluZygpLnZhbHVlKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwgeworICAgICAgICBTdHJpbmdW
aWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSwgMyksCisgICAgICAgIFN0cmluZ1ZpZXcoYi5j
aGFyYWN0ZXJzMTYoKS52YWx1ZSgpICsgMywgMSksCiAgICAgICAgIH0pKTsKIAogICAgIGJ1aWxk
KGIsIHsweDExMTIsIDB4MTE2ZiwgMHgxMWI2LCAweDExMDcsIDB4MTE2MSwgMHgxMUI4fSk7IC8v
IEtvcmVhbiBjb21iaW5pbmcgSmFtbwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0
aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVBvaW50cygpLCB7MHgxMTEyLCAweDEx
NmYsIDB4MTFiNiwgMHgxMTA3LCAweDExNjEsIDB4MTFCOH0pKTsKLSAgICBFWFBFQ1RfVFJVRShj
b21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVVbml0cygp
LCB7MHgxMTEyLCAweDExNmYsIDB4MTFiNiwgMHgxMTA3LCAweDExNjEsIDB4MTFCOH0pKTsKLSAg
ICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5n
KCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwgewotICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVy
czE2KCksIDMpLAotICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkgKyAzLCAzKX0p
KTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRv
U3RyaW5nKCkudmFsdWUoKSkuY29kZVBvaW50cygpLCB7MHgxMTEyLCAweDExNmYsIDB4MTFiNiwg
MHgxMTA3LCAweDExNjEsIDB4MTFCOH0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0
ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVVuaXRzKCksIHsw
eDExMTIsIDB4MTE2ZiwgMHgxMWI2LCAweDExMDcsIDB4MTE2MSwgMHgxMUI4fSkpOworICAgIEVY
UEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52
YWx1ZSgpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHsKKyAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJh
Y3RlcnMxNigpLnZhbHVlKCksIDMpLAorICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2
KCkudmFsdWUoKSArIDMsIDMpfSkpOwogfQogCiBzdGF0aWMgVmVjdG9yPFN0cmluZz4gdmVjdG9y
RnJvbVNwbGl0UmVzdWx0KGNvbnN0IFN0cmluZ1ZpZXc6OlNwbGl0UmVzdWx0JiBzdWJzdHJpbmdz
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRF
eHRlbnNpb25zLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50
RXh0ZW5zaW9ucy5jcHAKaW5kZXggZGNjZTQ2OC4uMDM4Mzg2NCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCkBA
IC0xMjA5LDE1ICsxMjA5LDE4IEBAIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgV2lkZU5G
QSkKICAgICAgICAgfQogICAgIH0KICAgICBydWxlTGlzdC5hcHBlbmQoJ10nKTsKLSAgICAKLSAg
ICBhdXRvIGJhY2tlbmQgPSBtYWtlQmFja2VuZChydWxlTGlzdC50b1N0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOwogCi0gICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgi
aHR0cDovL3dlYmtpdC5vcmcvQUFBIiksIHsgQ29udGVudEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6
OkNTU0Rpc3BsYXlOb25lU2VsZWN0b3IgfSk7Ci0gICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFp
bkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvWUFBIiksIHsgQ29udGVudEV4dGVu
c2lvbnM6OkFjdGlvblR5cGU6OkNTU0Rpc3BsYXlOb25lU2VsZWN0b3IgfSk7Ci0gICAgdGVzdFJl
cXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvWkFB
IiksIHsgfSwgMCk7Ci0gICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVz
dCgiaHR0cDovL3dlYmtpdC5vcmcvTEFBL0FBQSIpLCB7IH0sIDApOwotICAgIHRlc3RSZXF1ZXN0
KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL0xBQS9NQUEi
KSwgeyBDb250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6Q1NTRGlzcGxheU5vbmVTZWxlY3Rv
ciB9LCAwKTsKLSAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJo
dHRwOi8vd2Via2l0Lm9yZy8iKSwgeyB9KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBydWxlTGlz
dC50b1N0cmluZygpKSB7CisgICAgICAgIGF1dG8gYmFja2VuZCA9IG1ha2VCYWNrZW5kKHN0cmlu
Zy0+dXRmOCgpLmRhdGEoKSk7CisKKyAgICAgICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRv
Y3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvQUFBIiksIHsgQ29udGVudEV4dGVuc2lv
bnM6OkFjdGlvblR5cGU6OkNTU0Rpc3BsYXlOb25lU2VsZWN0b3IgfSk7CisgICAgICAgIHRlc3RS
ZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL1lB
QSIpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpDU1NEaXNwbGF5Tm9uZVNlbGVj
dG9yIH0pOworICAgICAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0
KCJodHRwOi8vd2Via2l0Lm9yZy9aQUEiKSwgeyB9LCAwKTsKKyAgICAgICAgdGVzdFJlcXVlc3Qo
YmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvTEFBL0FBQSIp
LCB7IH0sIDApOworICAgICAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1
ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy9MQUEvTUFBIiksIHsgQ29udGVudEV4dGVuc2lvbnM6OkFj
dGlvblR5cGU6OkNTU0Rpc3BsYXlOb25lU2VsZWN0b3IgfSwgMCk7CisgICAgICAgIHRlc3RSZXF1
ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnLyIpLCB7
IH0pOworICAgIH0gZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogICAgIAogI2lmZGVmIE5ERUJV
RwpAQCAtMTI0Nyw3ICsxMjUwLDEwIEBAIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgTGFy
Z2VKdW1wcykKICAgICAgICAgICAgICAgICAgICAgcGF0dGVybi5hcHBlbmQoYzIpOwogICAgICAg
ICAgICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZChjMyk7CiAgICAgICAgICAgICAgICAgICAgIHBh
dHRlcm4uYXBwZW5kKGM0KTsKLSAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKENvbnRlbnRF
eHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPaywgcGFyc2VyLmFkZFBh
dHRlcm4ocGF0dGVybi50b1N0cmluZygpLCB0cnVlLCBwYXR0ZXJuSWQrKykpOworICAgICAgICAg
ICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBwYXR0ZXJuLnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBh
cnNlcjo6UGFyc2VTdGF0dXM6Ok9rLCBwYXJzZXIuYWRkUGF0dGVybigqc3RyaW5nLCB0cnVlLCBw
YXR0ZXJuSWQrKykpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAg
ICAgfQpAQCAtMTMwOCwxNyArMTMxNCwyMCBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3Qs
IExhcmdlSnVtcHMpCiAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZCgneCcp
OwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgYXV0byBtYXRjaGVzID0gaW50ZXJwcmV0ZXIuaW50ZXJwcmV0
KHBhdHRlcm4udG9TdHJpbmcoKS51dGY4KCksIDApOwotICAgICAgICAgICAgICAgICAgICBzd2l0
Y2ggKChjMSArIGMyICsgYzMgKyBjNCkgJSA0KSB7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2Ug
MDoKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhcmVDb250ZW50cyhtYXRjaGVzLCB7IH0p
OwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIGNh
c2UgMToKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgotICAgICAgICAgICAgICAgICAgICBj
YXNlIDM6Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb21wYXJlQ29udGVudHMobWF0Y2hlcywg
e3BhdHRlcm5JZH0pOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcGF0dGVy
bi50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIG1hdGNoZXMgPSBp
bnRlcnByZXRlci5pbnRlcnByZXQoc3RyaW5nLT51dGY4KCksIDApOworICAgICAgICAgICAgICAg
ICAgICAgICAgc3dpdGNoICgoYzEgKyBjMiArIGMzICsgYzQpICUgNCkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhcmVD
b250ZW50cyhtYXRjaGVzLCB7IH0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICAg
ICAgY2FzZSAyOgorICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbXBhcmVDb250ZW50cyhtYXRjaGVzLCB7cGF0dGVybklkfSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAg
Q1JBU0goKTsKICAgICAgICAgICAgICAgICAgICAgcGF0dGVybklkKys7CiAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgfQpAQCAtMTM0OCwxMyArMTM1NywxOSBAQCBURVNUX0YoQ29udGVu
dEV4dGVuc2lvblRlc3QsIERlZXBORkEpCiAgICAgU3RyaW5nQnVpbGRlciBsb3RzT2ZBczsKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQogICAgICAgICBsb3RzT2ZBcy5h
cHBlbmQoJ0EnKTsKLSAgICBFWFBFQ1RfRVEoQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBh
cnNlcjo6UGFyc2VTdGF0dXM6Ok9rLCBwYXJzZXIuYWRkUGF0dGVybihsb3RzT2ZBcy50b1N0cmlu
ZygpLnV0ZjgoKS5kYXRhKCksIGZhbHNlLCAwKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbG90
c09mQXMudG9TdHJpbmcoKSkKKyAgICAgICAgRVhQRUNUX0VRKENvbnRlbnRFeHRlbnNpb25zOjpV
UkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPaywgcGFyc2VyLmFkZFBhdHRlcm4oc3RyaW5n
LT51dGY4KCkuZGF0YSgpLCBmYWxzZSwgMCkpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsK
ICAgICAKICAgICAvLyBGSVhNRTogWWFyciBvdWdodCB0byBiZSBhYmxlIHRvIGhhbmRsZSAyTUIg
cmVndWxhciBleHByZXNzaW9ucy4KICAgICBTdHJpbmdCdWlsZGVyIHRvb01hbnlBczsKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZSAqIDIwOyArK2kpCiAgICAgICAgIHRvb01hbnlB
cy5hcHBlbmQoJ0EnKTsKLSAgICBFWFBFQ1RfRVEoQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRl
clBhcnNlcjo6UGFyc2VTdGF0dXM6OllhcnJFcnJvciwgcGFyc2VyLmFkZFBhdHRlcm4odG9vTWFu
eUFzLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgZmFsc2UsIDApKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSB0b29NYW55QXMudG9TdHJpbmcoKSkKKyAgICAgICAgRVhQRUNUX0VRKENvbnRlbnRF
eHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpZYXJyRXJyb3IsIHBhcnNl
ci5hZGRQYXR0ZXJuKHN0cmluZy0+dXRmOCgpLmRhdGEoKSwgZmFsc2UsIDApKTsKKyAgICBlbHNl
CisgICAgICAgIENSQVNIKCk7CiAgICAgCiAgICAgU3RyaW5nQnVpbGRlciBuZXN0ZWRHcm91cHM7
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkKQEAgLTE0OTAsMTcgKzE1
MDUsMjIgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBJbnZhbGlkSlNPTikKICAgICBj
aGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJub3RpZnlcIixcIm5v
dGlmaWNhdGlvblwiOltdfSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCIuKlwifX1dIiwg
Q29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWROb3Rp
ZmljYXRpb24pOwogICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVc
IjpcIm5vdGlmeVwiLFwibm90aWZpY2F0aW9uXCI6XCJoZXJlJ3MgbXkgbm90aWZpY2F0aW9uXCJ9
LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIi4qXCJ9fV0iLCB7IH0pOwogICAgIGNoZWNr
Q29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcIm5vdGlmeVwiLFwibm90aWZp
Y2F0aW9uXCI6XCJcXHUxMjM0XCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIi4qXCJ9
fV0iLCB7IH0pOwotICAgIAotICAgIFN0cmluZ0J1aWxkZXIgcnVsZXM7Ci0gICAgcnVsZXMuYXBw
ZW5kKCJbIik7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDQ5OTk5OyArK2kpCi0gICAg
ICAgIHJ1bGVzLmFwcGVuZCgie1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmln
Z2VyXCI6e1widXJsLWZpbHRlclwiOlwiYVwifX0sIik7Ci0gICAgU3RyaW5nIHJ1bGVzNTAwMDAg
PSBydWxlcy50b1N0cmluZygpOwotICAgIFN0cmluZyBydWxlczUwMDAxID0gcnVsZXMudG9TdHJp
bmcoKTsKLSAgICBydWxlczUwMDAwLmFwcGVuZCgie1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxv
Y2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiYVwifX1dIik7Ci0gICAgcnVsZXM1
MDAwMS5hcHBlbmQoIntcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwi
OntcInVybC1maWx0ZXJcIjpcImFcIn19LHtcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9
LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcImFcIn19XSIpOwotICAgIGNoZWNrQ29tcGls
ZXJFcnJvcihydWxlczUwMDAwLnV0ZjgoKS5kYXRhKCksIHsgfSk7Ci0gICAgY2hlY2tDb21waWxl
ckVycm9yKHJ1bGVzNTAwMDEudXRmOCgpLmRhdGEoKSwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRl
bnRFeHRlbnNpb25FcnJvcjo6SlNPTlRvb01hbnlSdWxlcyk7CisKKyAgICB7CisgICAgICAgIFN0
cmluZ0J1aWxkZXIgcnVsZXM7CisgICAgICAgIHJ1bGVzLmFwcGVuZCgiWyIpOworICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgNDk5OTk7ICsraSkKKyAgICAgICAgICAgIHJ1bGVzLmFw
cGVuZCgie1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJs
LWZpbHRlclwiOlwiYVwifX0sIik7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJ1bGVzLnRv
U3RyaW5nKCkpIHsKKyAgICAgICAgICAgIFN0cmluZyBydWxlczUwMDAwID0gKnN0cmluZzsKKyAg
ICAgICAgICAgIFN0cmluZyBydWxlczUwMDAxID0gKnN0cmluZzsKKyAgICAgICAgICAgIHJ1bGVz
NTAwMDAuYXBwZW5kKCJ7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJc
Ijp7XCJ1cmwtZmlsdGVyXCI6XCJhXCJ9fV0iKTsKKyAgICAgICAgICAgIHJ1bGVzNTAwMDEuYXBw
ZW5kKCJ7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwt
ZmlsdGVyXCI6XCJhXCJ9fSx7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdn
ZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJhXCJ9fV0iKTsKKyAgICAgICAgICAgIGNoZWNrQ29tcGls
ZXJFcnJvcihydWxlczUwMDAwLnV0ZjgoKS5kYXRhKCksIHsgfSk7CisgICAgICAgICAgICBjaGVj
a0NvbXBpbGVyRXJyb3IocnVsZXM1MDAwMS51dGY4KCkuZGF0YSgpLCBDb250ZW50RXh0ZW5zaW9u
czo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OVG9vTWFueVJ1bGVzKTsKKyAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICBDUkFTSCgpOworICAgIH0KICAgICAKICAgICBjaGVja0NvbXBpbGVy
RXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1
cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJpZi1kb21haW5cIjp7fX19XSIsIENvbnRlbnRF
eHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQ29uZGl0aW9uTGlz
dCk7CiAgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxv
Y2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwiaWYtZG9t
YWluXCI6WzVdfX1dIiwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6
SlNPTkludmFsaWRDb25kaXRpb25MaXN0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCmluZGV4IDVmMWRjOGIuLmU5NGVmYzQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcApA
QCAtMTA3LDcgKzEwNyw5IEBAIHN0YXRpYyBTdHJpbmcgY3JlYXRlQ29tbWFuZChjb25zdCBTdHJp
bmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgcGF5bG9hZCkKICAgICBjb21tYW5kLmFwcGVuZExpdGVy
YWwoIlwiID4gIik7CiAgICAgY29tbWFuZC5hcHBlbmQocGF0aCk7CiAKLSAgICByZXR1cm4gY29t
bWFuZC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGNvbW1hbmQudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0
cmluZyByZWFkQ29udGVudHNPZkZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKQpAQCAtMjY3LDEwICsy
NjksMTMgQEAgVEVTVF9GKEZpbGVNb25pdG9yVGVzdCwgRGV0ZWN0RGVsZXRpb24pCiAgICAgICAg
IGNvbW1hbmQuYXBwZW5kTGl0ZXJhbCgicm0gLWYgIik7CiAgICAgICAgIGNvbW1hbmQuYXBwZW5k
KHRlbXBGaWxlUGF0aCgpKTsKIAotICAgICAgICBhdXRvIHJjID0gc3lzdGVtKGNvbW1hbmQudG9T
dHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgQVNTRVJUX05FKHJjLCAtMSk7Ci0gICAg
ICAgIGlmIChyYyA9PSAtMSkKLSAgICAgICAgICAgIGRpZEZpbmlzaCA9IHRydWU7CisgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IGNvbW1hbmQudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgYXV0
byByYyA9IHN5c3RlbShzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgQVNTRVJU
X05FKHJjLCAtMSk7CisgICAgICAgICAgICBpZiAocmMgPT0gLTEpCisgICAgICAgICAgICAgICAg
ZGlkRmluaXNoID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwog
ICAgIH0pOwogCiAgICAgVXRpbDo6cnVuKCZkaWRGaW5pc2gpOwpAQCAtMzI0LDEwICszMjksMTMg
QEAgVEVTVF9GKEZpbGVNb25pdG9yVGVzdCwgRGV0ZWN0Q2hhbmdlQW5kVGhlbkRlbGV0ZSkKICAg
ICAgICAgY29tbWFuZC5hcHBlbmRMaXRlcmFsKCJybSAtZiAiKTsKICAgICAgICAgY29tbWFuZC5h
cHBlbmQodGVtcEZpbGVQYXRoKCkpOwogCi0gICAgICAgIGF1dG8gcmMgPSBzeXN0ZW0oY29tbWFu
ZC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBBU1NFUlRfTkUocmMsIC0xKTsK
LSAgICAgICAgaWYgKHJjID09IC0xKQotICAgICAgICAgICAgZGlkRmluaXNoID0gdHJ1ZTsKKyAg
ICAgICAgaWYgKGF1dG8gc3RyaW5nID0gY29tbWFuZC50b1N0cmluZygpKSB7CisgICAgICAgICAg
ICBhdXRvIHJjID0gc3lzdGVtKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBB
U1NFUlRfTkUocmMsIC0xKTsKKyAgICAgICAgICAgIGlmIChyYyA9PSAtMSkKKyAgICAgICAgICAg
ICAgICBkaWRGaW5pc2ggPSB0cnVlOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIENSQVNI
KCk7CiAgICAgfSk7CiAKICAgICBVdGlsOjpydW4oJmRpZEZpbmlzaCk7CkBAIC0zNjMsMTAgKzM3
MSwxMyBAQCBURVNUX0YoRmlsZU1vbml0b3JUZXN0LCBEZXRlY3REZWxldGVCdXROb3RTdWJzZXF1
ZW50Q2hhbmdlKQogICAgICAgICBjb21tYW5kLmFwcGVuZExpdGVyYWwoInJtIC1mICIpOwogICAg
ICAgICBjb21tYW5kLmFwcGVuZCh0ZW1wRmlsZVBhdGgoKSk7CiAKLSAgICAgICAgYXV0byByYyA9
IHN5c3RlbShjb21tYW5kLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIEFTU0VS
VF9ORShyYywgLTEpOwotICAgICAgICBpZiAocmMgPT0gLTEpCi0gICAgICAgICAgICBkaWRGaW5p
c2ggPSB0cnVlOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBjb21tYW5kLnRvU3RyaW5nKCkp
IHsKKyAgICAgICAgICAgIGF1dG8gcmMgPSBzeXN0ZW0oc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsK
KyAgICAgICAgICAgIEFTU0VSVF9ORShyYywgLTEpOworICAgICAgICAgICAgaWYgKHJjID09IC0x
KQorICAgICAgICAgICAgICAgIGRpZEZpbmlzaCA9IHRydWU7CisgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgQ1JBU0goKTsKICAgICB9KTsKIAogICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Mb2dnaW5nLmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Mb2dnaW5nLmNwcAppbmRleCAx
ZTRjMzQyLi43ZGVkYWQyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvTG9nZ2luZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0xvZ2dpbmcuY3BwCkBAIC05NSw3ICs5NSw5IEBAIHB1YmxpYzoKICAgICAgICAgd2hpbGUgKChs
aW5lID0gZmdldHMoYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgbV9zdGRlcnIpKSkKICAgICAgICAg
ICAgIHJlc3VsdC5hcHBlbmQobGluZSk7CiAKLSAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmlu
ZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIGNv
bnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9sb2dnZXIuZ2V0KCk7
IH0KQEAgLTM0MCwxNSArMzQyLDE4IEBAIFRFU1RfRihMb2dnaW5nVGVzdCwgTG9nZ2VySGVscGVy
KQogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiTG9nZ2luZ1Rlc3Q6OlRlc3RCb2R5KCIpOwog
ICAgIGFwcGVuZFVuc2lnbmVkNjRBc0hleChyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4obG9n
SWRlbnRpZmllcigpKSwgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpIik7
Ci0gICAgU3RyaW5nIHNpZ25hdHVyZSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgU3RyaW5nIHNpZ25hdHVy
ZSA9ICpzdHJpbmc7CiAKLSAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwotICAgIEVYUEVD
VF9UUlVFKHRoaXMtPm91dHB1dCgpLmNvbnRhaW5zKHNpZ25hdHVyZSwgZmFsc2UpKTsKKyAgICAg
ICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKyAgICAgICAgRVhQRUNUX1RSVUUodGhpcy0+
b3V0cHV0KCkuY29udGFpbnMoc2lnbmF0dXJlLCBmYWxzZSkpOwogCi0gICAgQUxXQVlTX0xPRyhM
T0dJREVOVElGSUVSLCAiV2VsY29tZSBiYWNrIiwgIiBteSBmcmllbmRzIiwgIiB0byB0aGUgc2hv
dyIsICIgdGhhdCBuZXZlciBlbmRzIik7Ci0gICAgU3RyaW5nIHJlc3VsdCA9IHRoaXMtPm91dHB1
dCgpOwotICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5jb250YWlucyhzaWduYXR1cmUsIGZhbHNlKSk7
Ci0gICAgRVhQRUNUX1RSVUUocmVzdWx0LmNvbnRhaW5zKCJ0byB0aGUgc2hvdyB0aGF0IG5ldmVy
IiwgZmFsc2UpKTsKKyAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAiV2VsY29tZSBi
YWNrIiwgIiBteSBmcmllbmRzIiwgIiB0byB0aGUgc2hvdyIsICIgdGhhdCBuZXZlciBlbmRzIik7
CisgICAgICAgIFN0cmluZyByZXN1bHQgPSB0aGlzLT5vdXRwdXQoKTsKKyAgICAgICAgRVhQRUNU
X1RSVUUocmVzdWx0LmNvbnRhaW5zKHNpZ25hdHVyZSwgZmFsc2UpKTsKKyAgICAgICAgRVhQRUNU
X1RSVUUocmVzdWx0LmNvbnRhaW5zKCJ0byB0aGUgc2hvdyB0aGF0IG5ldmVyIiwgZmFsc2UpKTsK
KyAgICB9IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIFdURlNldExvZ0NoYW5uZWxMZXZl
bCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbFdhcm5pbmcpOwogCkBAIC0zNzEsMTAgKzM3Niwx
MSBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgbG9nKCkKICAgICB7Ci0gICAgICAgIFN0cmluZyBs
b2cgPSBtX2xvZ0J1ZmZlci50b1N0cmluZygpOwotICAgICAgICBtX2xvZ0J1ZmZlci5jbGVhcigp
OwotCi0gICAgICAgIHJldHVybiBsb2c7CisgICAgICAgIGlmIChhdXRvIGxvZyA9IG1fbG9nQnVm
ZmVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIG1fbG9nQnVmZmVyLmNsZWFyKCk7CisgICAg
ICAgICAgICByZXR1cm4gbG9nOworICAgICAgICB9CisgICAgICAgIENSQVNIKCk7CiAgICAgfQog
CiAgICAgV1RGTG9nQ2hhbm5lbCBjaGFubmVsKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0Q2hhbm5l
bDsgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1RleHRD
b2RlYy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVGV4dENvZGVjLmNw
cAppbmRleCBmZDA1MDUwLi45ZTU1NTMwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvVGV4dENvZGVjLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvVGV4dENvZGVjLmNwcApAQCAtOTgsNyArOTgsOSBAQCBzdGF0aWMgY29uc3Qg
Y2hhciogdGVzdERlY29kZShjb25zdCBjaGFyKiBlbmNvZGluZ05hbWUsIHN0ZDo6aW5pdGlhbGl6
ZXJfbGlzdDxjbwogICAgICAgICBpZiAoc2F3RXJyb3IpCiAgICAgICAgICAgICByZXN1bHRCdWls
ZGVyLmFwcGVuZExpdGVyYWwoIiBFUlJPUiIpOwogICAgIH0KLSAgICByZXR1cm4gZXNjYXBlTm9u
QVNDSUlQcmludGFibGVDaGFyYWN0ZXJzKHJlc3VsdEJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0QnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gZXNjYXBlTm9uQVNDSUlQcmludGFibGVDaGFyYWN0ZXJzKCpzdHJpbmcpOworICAgIENSQVNI
KCk7CiB9CiAKIFRFU1QoVGV4dENvZGVjLCBVVEY4KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9XVEZTdHJpbmdVdGlsaXRpZXMuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvV1RGU3Ry
aW5nVXRpbGl0aWVzLmgKaW5kZXggZWNiYTljNC4uZjVkNDFlZCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9XVEZTdHJpbmdVdGlsaXRpZXMuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1dURlN0cmluZ1V0aWxpdGllcy5oCkBAIC01MSw1ICs1MSw3IEBAIHN0YXRpYyBTdHJpbmcg
dXRmMTZTdHJpbmcoY29uc3QgY2hhcjE2X3QgKCZ1cmwpW2xlbmd0aF0pCiAgICAgYnVpbGRlci5y
ZXNlcnZlQ2FwYWNpdHkobGVuZ3RoIC0gMSk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBs
ZW5ndGggLSAxOyArK2kpCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHN0YXRpY19jYXN0PFVDaGFy
Pih1cmxbaV0pKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAppbmRleCAwNTU1NDE4Li41MGIx
MjE0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCkBAIC0xMDYsNyArMTA2LDkgQEAgc3RhdGlj
IFdURjo6U3RyaW5nIGR1bXBQYXRoKEpTR2xvYmFsQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVj
dFJlZiBub2RlVmFsdWUpCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGR1bXBQYXRoKGNv
bnRleHQsIChKU09iamVjdFJlZilwYXJlbnROb2RlKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIHN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIHN0YXRpYyBXVEY6OlN0cmluZyBkdW1wUGF0aChXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tC
dW5kbGVTY3JpcHRXb3JsZFJlZiB3b3JsZCwgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIG5vZGUpCkBA
IC0xNTYsNyArMTU4LDkgQEAgc3RhdGljIFdURjo6U3RyaW5nIHJhbmdlVG9TdHIoV0tCdW5kbGVQ
YWdlUmVmIHBhZ2UsIFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgd29ybGQKICAgICBzdHJpbmdCdWls
ZGVyLmFwcGVuZE51bWJlcihlbmRPZmZzZXQpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiIG9mICIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGR1bXBQYXRoKGNvbnRleHQs
IGVuZE5vZGVPYmplY3QpKTsKLSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFdLUmV0YWluUHRyPFdL
U3RyaW5nUmVmPiBOYXZpZ2F0aW9uVHlwZVRvU3RyaW5nKFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSB0
eXBlKQpAQCAtMTg1LDcgKzE4OSw5IEBAIHN0YXRpYyBXVEY6OlN0cmluZyBzdHlsZURlY1RvU3Ry
KFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvblJlZiBzdHlsZSkKICAgICAvLyB0aGUgZWRpdGlu
ZyBjbGllbnQgaWYgdGhlIHN0eWxpbmcgb3BlcmF0aW9uIHNvdXJjZSBpcyBDb21tYW5kRnJvbURP
TSBvciBDb21tYW5kRnJvbURPTVdpdGhVc2VySW50ZXJmYWNlLgogICAgIFN0cmluZ0J1aWxkZXIg
c3RyaW5nQnVpbGRlcjsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIjxET01DU1NT
dHlsZURlY2xhcmF0aW9uIEFERFJFU1M+Iik7Ci0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBXVEY6
OlN0cmluZyBzZWN1cml0eU9yaWdpblRvU3RyKFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luKQpA
QCAtMTk5LDcgKzIwNSw5IEBAIHN0YXRpYyBXVEY6OlN0cmluZyBzZWN1cml0eU9yaWdpblRvU3Ry
KFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luKQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVt
YmVyKFdLU2VjdXJpdHlPcmlnaW5HZXRQb3J0KG9yaWdpbikpOwogICAgIHN0cmluZ0J1aWxkZXIu
YXBwZW5kKCd9Jyk7CiAKLSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFdURjo6U3RyaW5nIGZyYW1l
VG9TdHIoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSkKQEAgLTIyMyw3ICsyMzEsOSBAQCBzdGF0aWMg
V1RGOjpTdHJpbmcgZnJhbWVUb1N0cihXS0J1bmRsZUZyYW1lUmVmIGZyYW1lKQogICAgICAgICAg
ICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJmcmFtZSAoYW5vbnltb3VzKSIpOwogICAg
IH0KICAgICAKLSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIGlubGluZSBib29sIGlzTG9jYWxGaWxl
U2NoZW1lKFdLU3RyaW5nUmVmIHNjaGVtZSkKQEAgLTQ3Niw3ICs0ODYsMTAgQEAgc3RhdGljIHZv
aWQgZHVtcExvYWRFdmVudChXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCBjaGFyKiBldmVu
dE5hbWUpCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgLSAiKTsKICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZChldmVudE5hbWUpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdc
bicpOwotICAgIEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5vdXRwdXRUZXh0KHN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkub3V0cHV0VGV4
dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBpbmxp
bmUgdm9pZCBkdW1wUmVxdWVzdERlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KFdLVVJM
UmVxdWVzdFJlZiByZXF1ZXN0LCBTdHJpbmdCdWlsZGVyJiBzdHJpbmdCdWlsZGVyKQpAQCAtOTQw
LDcgKzk1MywxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZHVtcCgpCiAgICAgICAgICAg
ICBpbmplY3RlZEJ1bmRsZS5zZXRSZXBhaW50UmVjdHMoYWRvcHRXSyhXS0J1bmRsZVBhZ2VDb3B5
VHJhY2tlZFJlcGFpbnRSZWN0cyhtX3BhZ2UpKS5nZXQoKSk7CiAgICAgfQogCi0gICAgaW5qZWN0
ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRC
dW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAg
ICAgaW5qZWN0ZWRCdW5kbGUuZG9uZSgpOwogfQogCkBAIC05ODgsNyArMTAwNCwxMCBAQCB2b2lk
IEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV0tTdHJpbmdSZWYg
dGl0bGUsIFdLQnVuZGxlRnJhbQogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwo
IidcbiIpOwogICAgIH0KIAotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVp
bGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7Cisg
ICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6
ZGlkQ2xlYXJXaW5kb3dGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS0J1bmRsZVNj
cmlwdFdvcmxkUmVmIHdvcmxkKQpAQCAtMTA0Myw3ICsxMDYyLDEwIEBAIHZvaWQgSW5qZWN0ZWRC
dW5kbGVQYWdlOjp3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV0tCdW5kbGVQYWdl
UmVmLCBXS0J1CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgLSB3aWxsUGVyZm9y
bUNsaWVudFJlZGlyZWN0VG9VUkw6ICIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHBhdGhT
dWl0YWJsZUZvclRlc3RSZXN1bHQodXJsKSk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRl
cmFsKCIgXG4iKTsKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIu
dG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVs
c2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFNh
bWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1Nh
bWVEb2N1bWVudE5hdmlnYXRpb25UeXBlIHR5cGUpCkBAIC0xMDc3LDcgKzEwOTksMTAgQEAgdm9p
ZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKFdLQnVu
ZGxlRnJhbWVSZWYgZnJhbWUpCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
IC0gaGFzICIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcihwZW5kaW5nRnJh
bWVVbmxvYWRFdmVudHMpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiBv
bnVubG9hZCBoYW5kbGVyKHMpXG4iKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4
dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBz
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRw
dXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAg
IH0KIH0KIApAQCAtMTE1MCw3ICsxMTc1LDEwIEBAIFdLVVJMUmVxdWVzdFJlZiBJbmplY3RlZEJ1
bmRsZVBhZ2U6OndpbGxTZW5kUmVxdWVzdEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlCiAg
ICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIHJlZGlyZWN0UmVzcG9uc2UgIik7
CiAgICAgICAgIGR1bXBSZXNwb25zZURlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KHJl
c3BvbnNlLCBzdHJpbmdCdWlsZGVyLCBpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3Vs
ZER1bXBBbGxIVFRQUmVkaXJlY3RlZFJlc3BvbnNlSGVhZGVycygpKTsKICAgICAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQo
c3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0
VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9
CiAKICAgICBpZiAoaW5qZWN0ZWRCdW5kbGUuaXNUZXN0UnVubmluZygpICYmIGluamVjdGVkQnVu
ZGxlLnRlc3RSdW5uZXIoKS0+d2lsbFNlbmRSZXF1ZXN0UmV0dXJuc051bGwoKSkKQEAgLTExODYs
NyArMTIxNCwxMCBAQCBXS1VSTFJlcXVlc3RSZWYgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsU2Vu
ZFJlcXVlc3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZQogICAgICAgICAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmRMaXRlcmFsKCJCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgIik7
CiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyh1cmxTdHJpbmcp
KTsKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICAgICAg
aW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAg
ICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgICAgICB9CiAgICAgfQpAQCAtMTIxNSw3ICsxMjQ2LDEwIEBAIHZvaWQgSW5q
ZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlUmVzcG9uc2VGb3JSZXNvdXJjZShXS0J1bmRsZVBh
Z2VSZWYgcGFnZSwgV0tCCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIC0g
ZGlkUmVjZWl2ZVJlc3BvbnNlICIpOwogICAgICAgICBkdW1wUmVzcG9uc2VEZXNjcmlwdGlvblN1
aXRhYmxlRm9yVGVzdFJlc3VsdChyZXNwb25zZSwgc3RyaW5nQnVpbGRlcik7CiAgICAgICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRU
ZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91
dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAg
ICAgfQogCiAKQEAgLTEyMzksNyArMTI3MywxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6
ZGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQgog
CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7CiAKLSAgICBpbmplY3RlZEJ1bmRsZS5v
dXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRw
dXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJ
bmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoRm9yUmVzb3VyY2UoV0tC
dW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCB1aW50NjRfdCwgdWludDY0X3QpCkBAIC0x
MjU4LDcgKzEyOTUsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZpbmlzaExvYWRG
b3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWUKICAgICBTdHJpbmdCdWls
ZGVyIHN0cmluZ0J1aWxkZXI7CiAgICAgZHVtcFJlc291cmNlVVJMKGlkZW50aWZpZXIsIHN0cmlu
Z0J1aWxkZXIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIC0gZGlkRmluaXNo
TG9hZGluZ1xuIik7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBl
bHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRG
YWlsTG9hZEZvclJlc291cmNlKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgdWlu
dDY0X3QgaWRlbnRpZmllciwgV0tFcnJvclJlZiBlcnJvcikKQEAgLTEyNzYsNyArMTMxNiwxMCBA
QCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmFpbExvYWRGb3JSZXNvdXJjZShXS0J1bmRs
ZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZQogCiAgICAgZHVtcEVycm9yRGVzY3JpcHRpb25TdWl0
YWJsZUZvclRlc3RSZXN1bHQoZXJyb3IsIHN0cmluZ0J1aWxkZXIpOwogICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kKCdcbicpOwotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVp
bGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7Cisg
ICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiBib29sIEluamVjdGVkQnVuZGxlUGFnZTo6
c2hvdWxkQ2FjaGVSZXNwb25zZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIHVp
bnQ2NF90IGlkZW50aWZpZXIpCkBAIC0xMjkxLDcgKzEzMzQsMTAgQEAgYm9vbCBJbmplY3RlZEJ1
bmRsZVBhZ2U6OnNob3VsZENhY2hlUmVzcG9uc2UoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZy
YW1lUmVmLAogICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsKICAgICBzdHJpbmdCdWls
ZGVyLmFwcGVuZE51bWJlcihpZGVudGlmaWVyKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExp
dGVyYWwoIiAtIHdpbGxDYWNoZVJlc3BvbnNlOiBjYWxsZWRcbiIpOwotICAgIGluamVjdGVkQnVu
ZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxl
Lm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAg
Ly8gVGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgdGhlIGNhY2hlIHRoZSByZXNwb25zZS4KICAgICBy
ZXR1cm4gdHJ1ZTsKQEAgLTEzMzUsNyArMTM4MSwxMCBAQCBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rp
b24gSW5qZWN0ZWRCdW5kbGVQYWdlOjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdL
QgogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiBzaG91bGQgb3BlbiBVUkxz
IGV4dGVybmFsbHkgLSAiKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoV0tCdW5kbGVO
YXZpZ2F0aW9uQWN0aW9uR2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMcyhuYXZpZ2F0aW9uQWN0aW9u
KSA/ICJ5ZXMiIDogIm5vIik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwot
ICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmco
KSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgaWYgKCFpbmplY3RlZEJ1
bmRsZS50ZXN0UnVubmVyKCktPmlzUG9saWN5RGVsZWdhdGVFbmFibGVkKCkpCkBAIC0xMzYzLDcg
KzE0MTIsMTAgQEAgV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uIEluamVjdGVkQnVuZGxlUGFnZTo6
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS0IKICAgICB9CiAKICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmlu
Z0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcp
OworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIGluamVjdGVkQnVuZGxlLnRlc3RS
dW5uZXIoKS0+bm90aWZ5RG9uZSgpOwogCkBAIC0xMzg0LDcgKzE0MzYsMTAgQEAgV0tCdW5kbGVQ
YWdlUG9saWN5QWN0aW9uIEluamVjdGVkQnVuZGxlUGFnZTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2UoV0tCdW5kbGVQYWcKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJQb2xp
Y3kgZGVsZWdhdGU6IHJlc291cmNlIGlzIGFuIGF0dGFjaG1lbnQsIHN1Z2dlc3RlZCBmaWxlIG5h
bWUgXCciKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQodG9XVEZTdHJpbmcoZmlsZW5h
bWUpKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcJ1xuIik7Ci0gICAg
ICAgIEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIu
dG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgICAgIEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5vdXRwdXRU
ZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0K
IAogICAgIGlmIChpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCkgJiYgaW5qZWN0ZWRCdW5kbGUu
dGVzdFJ1bm5lcigpLT5zaG91bGREZWNpZGVSZXNwb25zZVBvbGljeUFmdGVyRGVsYXkoKSkKQEAg
LTE0ODEsMTAgKzE1MzYsMTMgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxBZGRNZXNz
YWdlVG9Db25zb2xlKFdLU3RyaW5nUmVmIG1lc3NhZ2UsIHVpbnQzMl90IGwKICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZChtZXNzYWdlU3RyaW5nKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgn
XG4nKTsKIAotICAgIGlmIChpbmplY3RlZEJ1bmRsZS5kdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIo
KSkKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUuZHVtcFRvU3RkRXJyKHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKSk7Ci0gICAgZWxzZQotICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVp
bGRlci50b1N0cmluZygpKSB7CisgICAgICAgIGlmIChpbmplY3RlZEJ1bmRsZS5kdW1wSlNDb25z
b2xlTG9nSW5TdGRFcnIoKSkKKyAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLmR1bXBUb1N0ZEVy
cigqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0
cHV0VGV4dCgqc3RyaW5nKTsKKyAgICB9IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9p
ZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxTZXRTdGF0dXNiYXJUZXh0KFdLU3RyaW5nUmVmIHN0
YXR1c2JhclRleHQpCkBAIC0xNTAwLDcgKzE1NTgsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBh
Z2U6OndpbGxTZXRTdGF0dXNiYXJUZXh0KFdLU3RyaW5nUmVmIHN0YXR1c2JhclRleHQpCiAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJVSSBERUxFR0FURSBTVEFUVVMgQ0FMTEJBQ0s6
IHNldFN0YXR1c1RleHQ6Iik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQodG9XVEZTdHJpbmco
c3RhdHVzYmFyVGV4dCkpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIGlu
amVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGluamVj
dGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgp
OwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFJ1bkphdmFTY3JpcHRBbGVydChX
S1N0cmluZ1JlZiBtZXNzYWdlLCBXS0J1bmRsZUZyYW1lUmVmKQpAQCAtMTUxMyw3ICsxNTc0LDEw
IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUnVuSmF2YVNjcmlwdEFsZXJ0KFdLU3Ry
aW5nUmVmIG1lc3NhZ2UsIFdLQnVuZGxlRnJhCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRl
cmFsKCJBTEVSVDogIik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQodG9XVEZTdHJpbmcobWVz
c2FnZSkpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIGluamVjdGVkQnVu
ZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxl
Lm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2
b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFJ1bkphdmFTY3JpcHRDb25maXJtKFdLU3RyaW5n
UmVmIG1lc3NhZ2UsIFdLQnVuZGxlRnJhbWVSZWYpCkBAIC0xNTI2LDcgKzE1OTAsMTAgQEAgdm9p
ZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxSdW5KYXZhU2NyaXB0Q29uZmlybShXS1N0cmluZ1Jl
ZiBtZXNzYWdlLCBXS0J1bmRsZUYKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIkNP
TkZJUk06ICIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5nKG1lc3NhZ2Up
KTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBpbmplY3RlZEJ1bmRsZS5v
dXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRw
dXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJ
bmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxSdW5KYXZhU2NyaXB0UHJvbXB0KFdLU3RyaW5nUmVmIG1l
c3NhZ2UsIFdLU3RyaW5nUmVmIGRlZmF1bHRWYWx1ZSwgV0tCdW5kbGVGcmFtZVJlZikKQEAgLTE1
MzcsNyArMTYwNCwxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFJ1bkphdmFTY3Jp
cHRQcm9tcHQoV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tTdHJpbmdSZQogICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiLCBkZWZhdWx0IHRleHQ6ICIpOwogICAgIHN0cmluZ0J1aWxkZXIu
YXBwZW5kKHRvV1RGU3RyaW5nKGRlZmF1bHRWYWx1ZSkpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kKCdcbicpOwotICAgIEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5vdXRwdXRUZXh0KHN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkub3V0
cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQg
SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWFjaEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShX
S1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgaW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVkKQpAQCAt
MTU1Niw3ICsxNjI2LDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWFjaEFwcGxp
Y2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXS1NlY3VyaXR5T3JpZ2luUmVmCiAgICAgICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIHRvdGFsU3BhY2VOZWVkZWQ6fiIpOwogICAgICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcih0cnVuY2F0ZWRTcGFjZU5lZWRlZCk7CiAgICAgICAg
IHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRw
dXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGluamVjdGVkQnVuZGxl
Lm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7
CiAgICAgfQogCiAgICAgaWYgKGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkRGlz
YWxsb3dJbmNyZWFzZUZvckFwcGxpY2F0aW9uQ2FjaGVRdW90YSgpKQpAQCAtMTU3Niw3ICsxNjQ5
LDEwIEBAIHVpbnQ2NF90IEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRXhjZWVkRGF0YWJhc2VRdW90
YShXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmRMaXRlcmFsKCIgZGF0YWJhc2U6Iik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHRv
V1RGU3RyaW5nKGRhdGFiYXNlTmFtZSkpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgn
XG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIHVpbnQ2NF90
IGRlZmF1bHRRdW90YSA9IDUgKiAxMDI0ICogMTAyNDsKQEAgLTE1OTUsNyArMTY3MSwxMCBAQCB1
aW50NjRfdCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEV4Y2VlZERhdGFiYXNlUXVvdGEoV0tTZWN1
cml0eU9yaWdpblJlZiBvcmlnaW4sCiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExp
dGVyYWwoIlVJIERFTEVHQVRFIERBVEFCQVNFIENBTExCQUNLOiBpbmNyZWFzZWQgcXVvdGEgdG8g
Iik7CiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcihuZXdRdW90YSk7CiAg
ICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgICAgIGluamVj
dGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAg
ICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
ICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0
dXJuIG5ld1F1b3RhOwpAQCAtMTY2OSw3ICsxNzQ4LDEwIEBAIGJvb2wgSW5qZWN0ZWRCdW5kbGVQ
YWdlOjpzaG91bGRCZWdpbkVkaXRpbmcoV0tCdW5kbGVSYW5nZUhhbmRsZVJlZiByYW5nZSkKICAg
ICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJFRElUSU5HIERFTEVHQVRFOiBzaG91
bGRCZWdpbkVkaXRpbmdJbkRPTVJhbmdlOiIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
ZChyYW5nZVRvU3RyKG1fcGFnZSwgbV93b3JsZC5nZXQoKSwgcmFuZ2UpKTsKICAgICAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRl
eHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
c3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0
cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAg
ICB9CiAgICAgcmV0dXJuIGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkQWxsb3dF
ZGl0aW5nKCk7CiB9CkBAIC0xNjg1LDcgKzE3NjcsMTAgQEAgYm9vbCBJbmplY3RlZEJ1bmRsZVBh
Z2U6OnNob3VsZEVuZEVkaXRpbmcoV0tCdW5kbGVSYW5nZUhhbmRsZVJlZiByYW5nZSkKICAgICAg
ICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJFRElUSU5HIERFTEVHQVRFOiBzaG91bGRF
bmRFZGl0aW5nSW5ET01SYW5nZToiKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQocmFu
Z2VUb1N0cihtX3BhZ2UsIG1fd29ybGQuZ2V0KCksIHJhbmdlKSk7CiAgICAgICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmlu
Z0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRl
eHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQog
ICAgIHJldHVybiBpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZEFsbG93RWRpdGlu
ZygpOwogfQpAQCAtMTcxMSw3ICsxNzk2LDEwIEBAIGJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpz
aG91bGRJbnNlcnROb2RlKFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBub2RlLCBXS0J1bmRsZVJhCiAg
ICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIGdpdmVuQWN0aW9uOiIpOwogICAg
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChpbnNlcnRhY3Rpb25zdHJpbmdbYWN0aW9uXSk7CiAg
ICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBpbmplY3RlZEJ1bmRs
ZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGluamVjdGVk
QnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENS
QVNIKCk7CiAgICAgfQogICAgIHJldHVybiBpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNo
b3VsZEFsbG93RWRpdGluZygpOwogfQpAQCAtMTczNyw3ICsxODI1LDEwIEBAIGJvb2wgSW5qZWN0
ZWRCdW5kbGVQYWdlOjpzaG91bGRJbnNlcnRUZXh0KFdLU3RyaW5nUmVmIHRleHQsIFdLQnVuZGxl
UmFuZ2VIYW5kbGVSCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIGdpdmVu
QWN0aW9uOiIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChpbnNlcnRhY3Rpb25zdHJp
bmdbYWN0aW9uXSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAg
ICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7Cisg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIHJldHVybiBpbmplY3RlZEJ1bmRsZS50
ZXN0UnVubmVyKCktPnNob3VsZEFsbG93RWRpdGluZygpOwogfQpAQCAtMTc1Myw3ICsxODQ0LDEw
IEBAIGJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGREZWxldGVSYW5nZShXS0J1bmRsZVJh
bmdlSGFuZGxlUmVmIHJhbmdlKQogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwo
IkVESVRJTkcgREVMRUdBVEU6IHNob3VsZERlbGV0ZURPTVJhbmdlOiIpOwogICAgICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZChyYW5nZVRvU3RyKG1fcGFnZSwgbV93b3JsZC5nZXQoKSwgcmFuZ2Up
KTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGluamVjdGVk
QnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgaW5q
ZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgQ1JBU0goKTsKICAgICB9CiAgICAgcmV0dXJuIGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIo
KS0+c2hvdWxkQWxsb3dFZGl0aW5nKCk7CiB9CkBAIC0xNzg0LDcgKzE4NzgsMTAgQEAgYm9vbCBJ
bmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UoV0tCdW5kbGVSYW5n
ZUhhbmRsZVJlZiBmcm9tUmEKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIg
c3RpbGxTZWxlY3Rpbmc6Iik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGJvb2xzdHJp
bmdbc3RpbGxTZWxlY3RpbmddKTsgCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicp
OwotICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIHJldHVybiBpbmplY3Rl
ZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZEFsbG93RWRpdGluZygpOwogfQpAQCAtMTgwMiw3
ICsxODk5LDEwIEBAIGJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRBcHBseVN0eWxlKFdL
QnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvblJlZiBzdHlsZSwKICAgICAgICAgc3RyaW5nQnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCIgdG9FbGVtZW50c0luRE9NUmFuZ2U6Iik7CiAgICAgICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kKHJhbmdlVG9TdHIobV9wYWdlLCBtX3dvcmxkLmdldCgpLCByYW5nZSkp
OwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRC
dW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAo
YXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmpl
Y3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBDUkFTSCgpOwogICAgIH0KICAgICByZXR1cm4gaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigp
LT5zaG91bGRBbGxvd0VkaXRpbmcoKTsKIH0KQEAgLTE4MTksNyArMTkxOSwxMCBAQCB2b2lkIElu
amVjdGVkQnVuZGxlUGFnZTo6ZGlkQmVnaW5FZGl0aW5nKFdLU3RyaW5nUmVmIG5vdGlmaWNhdGlv
bk5hbWUpCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJFRElUSU5HIERFTEVHQVRF
OiB3ZWJWaWV3RGlkQmVnaW5FZGl0aW5nOiIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHRv
V1RGU3RyaW5nKG5vdGlmaWNhdGlvbk5hbWUpKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgn
XG4nKTsKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAg
ICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEVuZEVkaXRp
bmcoV0tTdHJpbmdSZWYgbm90aWZpY2F0aW9uTmFtZSkKQEAgLTE4MzQsNyArMTkzNywxMCBAQCB2
b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRW5kRWRpdGluZyhXS1N0cmluZ1JlZiBub3RpZmlj
YXRpb25OYW1lKQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRURJVElORyBERUxF
R0FURTogd2ViVmlld0RpZEVuZEVkaXRpbmc6Iik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQo
dG9XVEZTdHJpbmcobm90aWZpY2F0aW9uTmFtZSkpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5k
KCdcbicpOwotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0
cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQor
ICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2hhbmdl
KFdLU3RyaW5nUmVmIG5vdGlmaWNhdGlvbk5hbWUpCkBAIC0xODQ5LDcgKzE5NTUsMTAgQEAgdm9p
ZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZENoYW5nZShXS1N0cmluZ1JlZiBub3RpZmljYXRpb25O
YW1lKQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRURJVElORyBERUxFR0FURTog
d2ViVmlld0RpZENoYW5nZToiKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmlu
Zyhub3RpZmljYXRpb25OYW1lKSk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0g
ICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
aW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENS
QVNIKCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRDaGFuZ2VTZWxlY3Rpb24o
V0tTdHJpbmdSZWYgbm90aWZpY2F0aW9uTmFtZSkKQEAgLTE4NjQsNyArMTk3MywxMCBAQCB2b2lk
IEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2hhbmdlU2VsZWN0aW9uKFdLU3RyaW5nUmVmIG5vdGlm
aWNhdGlvbk5hbWUpCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJFRElUSU5HIERF
TEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOiIpOwogICAgIHN0cmluZ0J1aWxkZXIu
YXBwZW5kKHRvV1RGU3RyaW5nKG5vdGlmaWNhdGlvbk5hbWUpKTsKICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZCgnXG4nKTsKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAg
IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwCmluZGV4IGU2MmViOTMuLjkyNjg4NDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMTY3OCwxMCArMTY3
OCwxMyBAQCB2b2lkIFRlc3RSdW5uZXI6OnN0YXRpc3RpY3NEaWRSdW5UZWxlbWV0cnlDYWxsYmFj
ayh1bnNpZ25lZCB0b3RhbFByZXZhbGVudFJlc291cgogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiLCBcInRvcDNTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5zXCIgOiAiKTsKICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcih0b3AzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3Jp
Z2lucyk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgfSIpOworCisgICAgaWYg
KGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIEpTVmFs
dWVSZWYgcmVzdWx0ID0gSlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmluZyhjb250ZXh0LCBKU1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmctPnV0ZjgoKS5kYXRhKCkpKTsKICAgICAKLSAg
ICBKU1ZhbHVlUmVmIHJlc3VsdCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmcoY29udGV4dCwg
SlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyaW5nQnVpbGRlci50b1N0cmluZygpLnV0
ZjgoKS5kYXRhKCkpKTsKLSAgICAKLSAgICBjYWxsVGVzdFJ1bm5lckNhbGxiYWNrKFN0YXRpc3Rp
Y3NEaWRSdW5UZWxlbWV0cnlDYWxsYmFja0lELCAxLCAmcmVzdWx0KTsKKyAgICAgICAgY2FsbFRl
c3RSdW5uZXJDYWxsYmFjayhTdGF0aXN0aWNzRGlkUnVuVGVsZW1ldHJ5Q2FsbGJhY2tJRCwgMSwg
JnJlc3VsdCk7CisgICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgVGVzdFJ1
bm5lcjo6c3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCkKQEAgLTE4OTEsMTAgKzE4OTQsMTMgQEAg
dm9pZCBUZXN0UnVubmVyOjpjYWxsRGlkUmVjZWl2ZUFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzQ2Fs
bGJhY2soVmVjdG9yPFN0cmluZz4mIGQKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRl
cmFsKCJcIiIpOwogICAgIH0KICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIl0iKTsK
LSAgICAKLSAgICBKU1ZhbHVlUmVmIHJlc3VsdCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmco
Y29udGV4dCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyaW5nQnVpbGRlci50b1N0
cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKIAotICAgIGNhbGxUZXN0UnVubmVyQ2FsbGJhY2soQWxs
U3RvcmFnZUFjY2Vzc0VudHJpZXNDYWxsYmFja0lELCAxLCAmcmVzdWx0KTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgSlNWYWx1ZVJl
ZiByZXN1bHQgPSBKU1ZhbHVlTWFrZUZyb21KU09OU3RyaW5nKGNvbnRleHQsIEpTU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZy0+dXRmOCgpLmRhdGEoKSkpOworCisgICAgICAgIGNh
bGxUZXN0UnVubmVyQ2FsbGJhY2soQWxsU3RvcmFnZUFjY2Vzc0VudHJpZXNDYWxsYmFja0lELCAx
LCAmcmVzdWx0KTsKKyAgICB9IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogI2lmIFBMQVRG
T1JNKE1BQykKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXgg
NjhjNDljOC4uZjNiYTdmZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAKQEAgLTE4ODEsNyArMTg4MSwxMCBAQCBXS1N0cmluZ1JlZiBUZXN0Q29udHJvbGxlcjo6
ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUoV0tDb250ZXh0UmVmLAogICAg
ICAgICBidWlsZGVyLmFwcGVuZCgiRG93bmxvYWRpbmcgVVJMIHdpdGggc3VnZ2VzdGVkIGZpbGVu
YW1lIFwiIik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHN1Z2dlc3RlZEZpbGVuYW1lKTsKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoIlwiXG4iKTsKLSAgICAgICAgbV9jdXJyZW50SW52b2NhdGlv
bi0+b3V0cHV0VGV4dChidWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBtX2N1cnJlbnRJbnZvY2F0aW9u
LT5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgp
OwogICAgIH0KIAogICAgIGNvbnN0IGNoYXIqIGR1bXBSZW5kZXJUcmVlVGVtcCA9IGxpYnJhcnlQ
YXRoRm9yVGVzdGluZygpOwpAQCAtMTkxMSw3ICsxOTE0LDEwIEBAIHZvaWQgVGVzdENvbnRyb2xs
ZXI6OmRvd25sb2FkRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0VG9VUkwoV0tDb250ZXh0UmVmLCBX
S0Rvd25sCiAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB1cmxTdHJpbmdXSyA9IGFk
b3B0V0soV0tVUkxDb3B5U3RyaW5nKHVybCkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCh0b1NU
RCh1cmxTdHJpbmdXSykuY19zdHIoKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
XCIuXG4iKTsKLSAgICAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+b3V0cHV0VGV4dChidWlsZGVy
LnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KCpzdHJpbmcp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIH0KIApAQCAtMTkz
NCw3ICsxOTQwLDEwIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlkRmFpbChXS0Nv
bnRleHRSZWYsIFdLRG93bmxvYWRSZWYsIFdLRXJyb3JSZWYgZXJyCiAgICAgICAgIGVycm9yQnVp
bGRlci5hcHBlbmQodG9XVEZTdHJpbmcoZXJyb3JEZXNjcmlwdGlvbikpOwogICAgICAgICBlcnJv
ckJ1aWxkZXIuYXBwZW5kKCJcbiIpOwogCi0gICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPm91
dHB1dFRleHQoZXJyb3JCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBlcnJvckJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIG1fY3VycmVudEludm9j
YXRpb24tPm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENS
QVNIKCk7CiAgICAgfQogICAgIG1fY3VycmVudEludm9jYXRpb24tPm5vdGlmeURvd25sb2FkRG9u
ZSgpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlv
bi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCBj
ZDVkYjBhLi5lZTJmNTUyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJ
bnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9u
LmNwcApAQCAtMjQ4LDkgKzI0OCwxMiBAQCB2b2lkIFRlc3RJbnZvY2F0aW9uOjpmb3JjZVJlcGFp
bnREb25lQ2FsbGJhY2soV0tFcnJvclJlZiBlcnJvciwgdm9pZCogY29udGV4dCkKIAogdm9pZCBU
ZXN0SW52b2NhdGlvbjo6ZHVtcFJlc3VsdHMoKQogewotICAgIGlmIChtX3RleHRPdXRwdXQubGVu
Z3RoKCkgfHwgIW1fYXVkaW9SZXN1bHQpCi0gICAgICAgIGR1bXAobV90ZXh0T3V0cHV0LnRvU3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgZWxzZQorICAgIGlmIChtX3RleHRPdXRwdXQubGVu
Z3RoKCkgfHwgIW1fYXVkaW9SZXN1bHQpIHsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gbV90
ZXh0T3V0cHV0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICBkdW1wKHN0cmluZy0+dXRmOCgpLmRh
dGEoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CisgICAgfSBlbHNlCiAg
ICAgICAgIGR1bXBBdWRpbyhtX2F1ZGlvUmVzdWx0LmdldCgpKTsKIAogICAgIGlmIChtX2R1bXBQ
aXhlbHMpIHsKLS0gCjIuOS4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338937</attachid>
            <date>2018-04-26 16:25:28 -0700</date>
            <delta_ts>2018-04-27 10:46:41 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Teach-StringBuilder-that-it-is-fallible.patch</filename>
            <type>text/plain</type>
            <size>455171</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSA0MTljZDEzN2NkODU3YmI5ZTM2NDgwYzliOWE5Y2NkNGJhOWEyZjQ3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBXZWQsIDI1IEFwciAyMDE4IDIxOjUwOjI0IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gVGVhY2gg
U3RyaW5nQnVpbGRlciB0aGF0IGl0IGlzIGZhbGxpYmxlCgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcCAgICAgICAgIHwgICA0ICstCiAuLi4vQVBJL3Rlc3Rz
L0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwICAgICAgICAgICB8IDMxMCArKysrKysrLS0tLS0t
CiAuLi4vQVBJL3Rlc3RzL1BpbmdQb25nU3RhY2tPdmVyZmxvd1Rlc3QuY3BwICAgICAgICB8ICAg
OSArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
fCAgOTUgKysrKwogLi4uL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCAgICAgICAg
ICAgICAgfCAgMjMgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBTbmFwc2hvdEJ1
aWxkZXIuY3BwIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNv
bGVNZXNzYWdlLmNwcCB8ICAxMyArLQogLi4uL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0
aWVzLmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9JbnRlcnByZXRlci5jcHAgIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcCB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAgICAgICAgICAgICAgICAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwICAgICAgIHwgICA5ICstCiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcCAgICB8ICAxNSArLQogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwICAgfCAgIDQgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwICAgIHwgICA0ICstCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcCB8ICAgNCAr
LQogLi4uL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgfCAg
MjQgKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAg
IHwgICA2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcCAg
ICAgICB8ICAxOCArLQogLi4uL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwICAg
ICAgICAgICAgfCAgMjEgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmpl
Y3QuY3BwICAgICAgIHwgIDE2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRl
cmFsUGFyc2VyLmNwcCAgICB8ICAxMCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3B0aW9ucy5jcHAgICAgICAgICAgfCAgMTAgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAgIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcCB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAgICAgICAgfCAgIDQgKy0KIC4uLi9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcCAgIHwgICA0ICstCiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwICB8ICAgNCArLQogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmNwcCAgICAgfCAgIDYgKy0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVTZXQuY3BwICAgICAgICAgIHwgIDIzICst
CiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAgICAgICAgICAgICAgICB8ICAy
MCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcCAg
fCAgIDkgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcCAgICAg
ICAgIHwgICA3ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmggICAg
ICAgICAgICB8ICAzMCArLQogU291cmNlL1dURi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAxNDMgKysrKysrCiBTb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcCAg
ICAgICAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3Bw
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XVEYvd3RmL0pTT05WYWx1
ZXMuY3BwICAgICAgICAgICAgICAgICAgICAgIHwgIDExICstCiBTb3VyY2UvV1RGL3d0Zi9Mb2dn
ZXIuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMSArLQogU291cmNlL1dURi93dGYv
TWVkaWFUaW1lLmNwcCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XVEYv
d3RmL1VVSUQuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuY3BwICAgICAgICAgICAgICB8IDIzOSArKysrKyst
LS0tCiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaCAgICAgICAgICAgICAgICB8
IDI2MSArKysrKysrLS0tLQogU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVySlNPTi5j
cHAgICAgICAgICAgfCAgMjUgKy0KIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAg
ICAgICAgICAgICAgICAgIHwgIDM0ICstCiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwu
aCAgICAgICAgICAgICAgICAgICB8ICAxOCArLQogU291cmNlL1dURi93dGYvdGV4dC9UZXh0U3Ry
ZWFtLmNwcCAgICAgICAgICAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNTEwICsrKysrKysrKysrKysrKysrKysrKwog
Li4uL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudENvbnRhY3RDb2NvYS5tbSAgfCAgIDUg
Ky0KIC4uLi9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcCAgIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNw
cCB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5j
cHAgICAgfCAgMTUgKy0KIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBh
dGguY3BwICAgIHwgICA0ICstCiAuLi4vTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0luZGV4VmFs
dWVTdG9yZS5jcHAgICB8ICAgNCArLQogLi4uL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxp
dGVJREJDdXJzb3IuY3BwICAgfCAgIDggKy0KIC4uLi9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCRGF0YWJhc2VJbmZvLmNwcCAgIHwgICA0ICstCiAuLi4vaW5kZXhlZGRiL3NoYXJlZC9JREJP
YmplY3RTdG9yZUluZm8uY3BwICAgICAgICB8ICAgNCArLQogLi4uL21lZGlhc2Vzc2lvbi9XZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCAgICAgICAgfCAgIDggKy0KIC4uLi9Nb2R1bGVzL21lZGlh
c3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgIHwgICA4ICstCiAuLi4vTW9kdWxlcy9w
bHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAgICB8ICAgNCArLQogLi4uL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcCAgICAgICAgfCAgIDQgKy0KIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwICAgIHwgICA4ICstCiAu
Li4vd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcCAgICB8ICAgOCAr
LQogLi4uL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwICAgICAgfCAg
MjMgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCAgICAg
IHwgIDE4ICstCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
Y3BwICB8ICAxMCArLQogLi4uL21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bSAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVy
dFN0cmluZ3MuY3BwIHwgICA0ICstCiAuLi4vV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2Vw
dGlvbkhhbmRsaW5nLmNwcCB8ICAxNiArLQogLi4uL2NvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVk
VVJMRmlsdGVycy5jcHAgICAgICAgfCAgIDQgKy0KIC4uLi9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb24uY3BwIHwgICA3ICstCiAuLi4vY29udGVudGV4dGVuc2lvbnMv
Q29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcCB8ICAgNSArLQogLi4uL0NvbnRlbnRFeHRlbnNp
b25TdHlsZVNoZWV0LmNwcCAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3Jl
L2NvbnRlbnRleHRlbnNpb25zL1Rlcm0uaCAgICAgICAgICAgIHwgICA4ICstCiAuLi4vV2ViQ29y
ZS9jc3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmNwcCB8ICAgNCArLQogU291cmNl
L1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmNwcCAgICAgICAgICAgICAgfCAgMjAgKy0KIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmNwcCAgICAgICAgIHwgICA4ICst
CiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCB8ICAg
NCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcCAgICAgICAgICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcCAgICAg
ICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3VzdG9tSWRlbnRWYWx1ZS5jcHAg
ICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUu
Y3BwICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUu
Y3BwICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VT
cmNWYWx1ZS5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRG
ZWF0dXJlVmFsdWUuY3BwICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250U3R5bGVSYW5nZVZhbHVlLmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udFN0eWxlVmFsdWUuY3BwICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRWYWx1ZS5jcHAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUuY3BwICAgICAgIHwgICA0ICstCiBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHAgICAgICAgICAgICB8ICAgNCArLQogU291
cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwICAgICAgICAgICAgfCAgMTIgKy0K
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNwcCAgICAgIHwgICA0
ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAgICB8
ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwICAgICAgICAg
ICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmNwcCAgICAgICAg
ICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVSdWxlLmNwcCAg
ICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lc1J1bGUu
Y3BwICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMaW5lQm94Q29u
dGFpblZhbHVlLmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWFya3Vw
LmNwcCAgICAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU01l
ZGlhUnVsZS5jcHAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NOYW1lc3BhY2VSdWxlLmNwcCAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFnZVJ1bGUuY3BwICAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcCAgICAgICAgICAgfCAgMTIgKy0KIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3BwICAgICAgIHwgICA0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwICAgICAgICAgICAgICAgICB8ICAxNyArLQog
U291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAgICAgICAgICAgICAgfCAgIDQg
Ky0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTaGFkb3dWYWx1ZS5jcHAgICAgICAgICAgICAgIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmNwcCAgICAgICAgICAgICAg
ICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwICAgICAgICAg
ICAgICAgfCAgIDkgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdXBwb3J0c1J1bGUuY3BwICAg
ICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVGltaW5nRnVuY3Rpb25W
YWx1ZS5jcHAgICAgICB8ICAxNiArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5j
cHAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYXJpYWJs
ZURhdGEuY3BwICAgICAgICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NT
TmFtZXNwYWNlLmNwcCAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0RP
TU1hdHJpeFJlYWRPbmx5LmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nz
cy9EZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9jc3MvRm9udEZhY2UuY3BwICAgICAgICAgICAgICAgICAgICB8ICAxMiArLQogU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhTGlzdC5jcHAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcCAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBT
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwICAgICAgICB8ICAgNSAr
LQogU291cmNlL1dlYkNvcmUvY3NzL1JlY3QuaCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwICAgICAgICAgICAg
IHwgIDMwICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmNwcCAgICAgICAg
ICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5j
cHAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNw
cCAgICAgICAgICAgIHwgIDExICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNl
clRva2VuLmNwcCAgICAgICB8ICA4NyArKy0tCiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlclRva2VuUmFuZ2UuY3BwICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAgICAgfCAgMjcgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTVG9rZW5pemVyLmNwcCAgICAgICAgIHwgIDM4ICstCiBTb3VyY2UvV2ViQ29yZS9k
b20vRGF0YXNldERPTVN0cmluZ01hcC5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcCAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIyICstCiBTb3Vy
Y2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQog
U291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDkg
Ky0KIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcCAgICAgICAgICAg
ICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDkgKy0KIFNvdXJjZS9XZWJDb3JlL2RvbS9UZXh0Tm9kZVRyYXZlcnNhbC5jcHAg
ICAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21t
YW5kLmNwcCAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNw
cCAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSFRNTElu
dGVyY2hhbmdlLmNwcCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01h
cmt1cEFjY3VtdWxhdG9yLmNwcCAgICAgICB8ICAxNyArLQogU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UZXh0SXRlcmF0b3IuY3BwICAgICAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwICAgICAgICB8ICAgNSArLQogU291cmNlL1dl
YkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tICAgICAgfCAgIDggKy0KIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbSAgICAgIHwgICA1ICstCiBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0gICAgICAgICAgICB8ICAgNSAr
LQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwICAgICAgICAgICAgICAgICAgfCAg
MjcgKy0KIFNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAgICAgICAg
IHwgIDI0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAgICAgICAgICAg
ICAgICB8ICAgOSArLQogU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAgICAg
ICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAg
ICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVy
LmNwcCAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9y
RWxlbWVudC5jcHAgICAgICAgICAgfCAgMTIgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuY3BwICAgICAgICAgIHwgIDIxICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb250RWxlbWVudC5jcHAgICAgICAgICAgICB8ICAgNyArLQogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW1hZ2VFbGVtZW50LmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgICAgICAgICAgIHwgICA5ICstCiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcCAgICAgICAgICB8ICAgNCArLQogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgfCAgMTIgKy0KIFNv
dXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAgICAgICAgICAgICAgIHwgICA1ICst
CiBTb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwICAgICAgICB8ICAg
NCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUZyYWdtZW50VVJJUGFyc2VyLmNwcCAgICAg
fCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcCAgICAgICAgICAgICAg
ICAgIHwgIDE0ICstCiAuLi4vaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNw
cCAgICAgICB8ICAgNCArLQogLi4uL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REJhc2UuY3BwICAgfCAgIDcgKy0KIC4uLi9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlLmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
U291cmNlVHJhY2tlci5jcHAgICB8ICAgNyArLQogU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFRva2VuaXplci5jcHAgICAgICAgfCAgMTIgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxUcmVlQnVpbGRlci5jcHAgICAgIHwgIDI3ICstCiBTb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9CdWZmZXJlZExpbmVSZWFkZXIuY3BwICAgfCAgIDggKy0KIFNvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcCAgICAgICAgICAgIHwgICA1ICstCiBTb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAgICAgICAgICAgICAgICB8ICAgNiArLQogU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwICAgICAgICAgfCAgIDUgKy0K
IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmNwcCAgICAgIHwgIDYz
ICsrLQogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwICAg
fCAgMTcgKy0KIC4uLi9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCAg
ICAgIHwgIDEzICstCiAuLi4vaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQu
Y3BwICAgICB8ICAgNyArLQogLi4uL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xl
QWdlbnQuY3BwICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFj
Y2Vzc0NvbnRyb2wuY3BwIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljcy5jcHAgICB8ICAgNCArLQogLi4uL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZS5jcHAgICAgfCAgMjUgKy0KIC4uLi9XZWJDb3JlL2xvYWRlci9hcmNo
aXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwIHwgIDI1ICstCiAuLi4vV2ViQ29yZS9sb2FkZXIv
YXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwICB8ICAgOCArLQogLi4uL1dlYkNvcmUvcGFn
ZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAgfCAgNjQgKystCiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcCAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCAgICAgICAgICAgICAgICAgIHwgICA1ICst
CiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcCAgICAgICAgICAgICB8ICAg
NyArLQogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuY3BwICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcCAgICAg
ICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0VHJpZ2dlci5j
cHAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5
UG9saWN5LmNwcCAgfCAgIDkgKy0KIC4uLi9wYWdlL3Njcm9sbGluZy9BeGlzU2Nyb2xsU25hcE9m
ZnNldHMuY3BwICAgICAgIHwgICA4ICstCiAuLi4vcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuY3BwICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVj
aW1hbC5jcHAgICAgICAgICAgICAgICAgfCAgMTIgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0ZpbGVTeXN0ZW0uY3BwICAgICAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QT0RJbnRlcnZhbC5oICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmggICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1VSTC5jcHAgICAgICAgICAgICAgICAgICAgIHwgIDE4ICstCiAuLi4vV2Vi
Q29yZS9wbGF0Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uY3BwICB8ICAgNSArLQogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAgICAgfCAgIDQgKy0K
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcCAgICAgICAgIHwgICA4
ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmNwcCB8
ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3Bw
ICAgfCAgIDQgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9Gb250VGFnZ2VkU2V0dGluZ3MuY3Bw
ICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyLmNwcCB8ICAgNCArLQogLi4uL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2
YXRlQVZGLmNwcCAgICAgfCAgMTMgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29u
dHJvbGxlci5jcHAgICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9UaWxlR3JpZC5jcHAgICB8ICAgNCArLQogLi4uL2dyYXBoaWNzL2NhL3dpbi9QbGF0
Zm9ybUNBTGF5ZXJXaW4uY3BwICAgICAgICAgfCAgIDQgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGlj
cy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAgIHwgIDEwICstCiAuLi4vb3BlbmdsL0dyYXBo
aWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcCAgICAgICB8ICAxMSArLQogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0gICAgICAgfCAgIDQgKy0KIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0gICAgIHwgICA2ICstCiAuLi4v
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1Njcm9sbEFuaW1hdG9yTW9jay5jcHAgICB8ICAxNSArLQog
Li4uL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrQm94LmNwcCAgfCAgIDkg
Ky0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwICAgIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3h5U2VydmVyLmNwcCAg
ICB8ICAgNCArLQogLi4uL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQ29va2llSmFyTWFj
Lm1tICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1Q
T1NJWC5jcHAgIHwgICA0ICstCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RlY29kZUVzY2Fw
ZVNlcXVlbmNlcy5oICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0
Zm9ybUxvY2FsZS5jcHAgICAgfCAgMTIgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
U2VnbWVudGVkU3RyaW5nLmNwcCAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L1RleHRDb2RlY0lDVS5jcHAgICAgICB8ICAxMyArLQogLi4uL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9UZXh0Q29kZWNVc2VyRGVmaW5lZC5jcHAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3Bs
dWdpbnMvRE9NTWltZVR5cGUuY3BwICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgfCAgIDUgKy0KIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcCAgICAgIHwgICA5ICstCiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAgICAgICAgICAgICB8ICAyMyAr
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwICAgICAgfCAg
IDggKy0KIC4uLi9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5jcHAgICAgICAg
IHwgICA1ICstCiAuLi4vcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTWF0aE1M
LmNwcCB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3Bw
ICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVz
LmNwcCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFN0cmluZ0J1
aWxkZXIuY3BwICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGls
aXRpZXMuY3BwICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2lu
dExpc3RWYWx1ZXMuY3BwICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U3RyaW5nTGlzdFZhbHVlcy5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5jcHAgICAgICAgICAgIHwgIDIwICstCiBTb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oICB8ICAgOCArLQogU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwICAgICAgICAgICAgICAgfCAgNjQgKy0tCiBT
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAgICB8ICAxMCAr
LQogU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwICAgICAgfCAg
IDQgKy0KIFNvdXJjZS9XZWJDb3JlL3htbC9YTUxFcnJvcnMuY3BwICAgICAgICAgICAgICAgICAg
IHwgICA3ICstCiBTb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwICAgICAgICAg
ICAgICB8ICAxNSArLQogU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmggICAgICAg
ICAgICAgICAgfCAgIDcgKy0KIFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEZ1bmN0aW9ucy5jcHAg
ICAgICAgICAgICAgIHwgIDIxICstCiBTb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvckxp
YnhzbHQuY3BwICAgICAgICB8ICAxNCArLQogLi4uL3htbC9wYXJzZXIvQ2hhcmFjdGVyUmVmZXJl
bmNlUGFyc2VySW5saW5lcy5oICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbkhv
c3QuY3BwICAgICAgICAgICAgICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0OSArKwogLi4uL05ldHdvcmtQcm9jZXNz
L2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAgICAgfCAgIDQgKy0KIC4uLi9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcCAgIHwgIDE4ICstCiAuLi4vTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlS2V5LmNwcCAgICAgICB8ICAgNCArLQogLi4uL2Nh
cHR1cmUvTmV0d29ya0NhcHR1cmVNYW5hZ2VyLmNwcCAgICAgICAgICAgICAgfCAgIDYgKy0KIC4u
Li9TaGFyZWQvRGF0YWJhc2VzL0luZGV4ZWREQi9JREJVdGlsaXRpZXMuY3BwICAgIHwgICA0ICst
CiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9HYW1lcGFkL0dhbWVwYWREYXRhLmNwcCAgICAgICB8ICAg
NCArLQogLi4uL05ldHNjYXBlL3VuaXgvTmV0c2NhcGVQbHVnaW5Nb2R1bGVVbml4LmNwcCAgICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwICAgICAg
ICAgIHwgICA3ICstCiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVXNlclNjcmlwdC5j
cHAgICAgICB8ICAgNCArLQogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJTdHls
ZVNoZWV0LmNwcCAgfCAgIDQgKy0KIC4uLi9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250
cm9sbGVyLmNwcCAgICAgIHwgICA2ICstCiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJCYWNr
Rm9yd2FyZExpc3QuY3BwICAgICB8ICAgNCArLQogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAgICAgICAgIHwgICA1ICstCiAuLi4vVUlQcm9jZXNzL1dlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgICB8ICAyMCArLQogLi4uL1dlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NUZWxlbWV0cnkuY3BwICAgICAgICAgfCAgMzMgKy0KIC4uLi9QbHVnaW5z
L05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCAgICB8ICAgNCArLQogU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwICAgICAgfCAgIDQgKy0K
IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgIHwgIDEy
ICsKIC4uLi9tYWMvV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubW0gICAgICAgICAgIHwg
ICA1ICstCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICA3OCArKysrCiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZFRh
c2suY3BwICB8ICAgNCArLQogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVp
bGRlci5jcHAgICAgfCAgOTIgKystLQogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3Ry
aW5nVmlldy5jcHAgICAgICAgfCAgODAgKystLQogLi4uL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4
dGVuc2lvbnMuY3BwICAgICAgICAgICAgfCAgODYgKystLQogVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcCAgfCAgMzcgKy0KIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9Mb2dnaW5nLmNwcCAgICAgIHwgIDMwICstCiBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvVGV4dENvZGVjLmNwcCAgICB8ICAgNCArLQogVG9vbHMvVGVz
dFdlYktpdEFQSS9XVEZTdHJpbmdVdGlsaXRpZXMuaCAgICAgICAgICAgfCAgIDQgKy0KIC4uLi9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwICAgICAgICAgIHwgMTk2ICsrKysr
Ky0tCiAuLi4vV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCB8
ICAxOCArLQogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgICAgICAg
ICAgfCAgMTUgKy0KIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwICAg
ICAgICAgIHwgICA5ICstCiAyOTAgZmlsZXMgY2hhbmdlZCwgMzUyOSBpbnNlcnRpb25zKCspLCAx
MjIwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNDb250ZXh0UmVmLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVm
LmNwcAppbmRleCAwMjVlYmE0Li41ZWRmNjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0NvbnRleHRSZWYuY3BwCkBAIC0zMTQsNyArMzE0LDkgQEAgSlNTdHJpbmdSZWYgSlNDb250
ZXh0Q3JlYXRlQmFja3RyYWNlKEpTQ29udGV4dFJlZiBjdHgsIHVuc2lnbmVkIG1heFN0YWNrU2l6
ZSkKICAgICBCYWNrdHJhY2VGdW5jdG9yIGZ1bmN0b3IoYnVpbGRlciwgbWF4U3RhY2tTaXplKTsK
ICAgICBmcmFtZS0+aXRlcmF0ZShmdW5jdG9yKTsKIAotICAgIHJldHVybiBPcGFxdWVKU1N0cmlu
Zzo6Y3JlYXRlKGJ1aWxkZXIudG9TdHJpbmcoKSkubGVha1JlZigpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIE9wYXF1ZUpTU3RyaW5n
OjpjcmVhdGUoKnN0cmluZykubGVha1JlZigpOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgSlNH
bG9iYWxDb250ZXh0R2V0UmVtb3RlSW5zcGVjdGlvbkVuYWJsZWQoSlNHbG9iYWxDb250ZXh0UmVm
IGN0eCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvRXhlY3V0
aW9uVGltZUxpbWl0VGVzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0V4
ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwCmluZGV4IDYzN2IzMDQuLjE2NTI4MzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0VGVz
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9FeGVjdXRpb25UaW1l
TGltaXRUZXN0LmNwcApAQCAtMTk0LDIyICsxOTQsMjUgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1l
TGltaXQoKQogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmROdW1iZXIodGltZUFmdGVy
V2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQuc2Vjb25kcygpKTsKICAgICAgICAgICAgIHNjcmlwdEJ1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSBicmVhazsgfSB9IGZvbygpOyIpOwogCi0gICAgICAgICAg
ICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzY3Jp
cHRCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBleGNlcHRp
b24gPSBudWxscHRyOwotICAgICAgICAgICAgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxs
ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6Zm9yQ3Vy
cmVudFRocmVhZCgpOwotICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3Jp
cHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOwotICAgICAgICAgICAgYXV0byBl
bmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwotCi0gICAgICAgICAgICBpZiAo
KChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVk
KSAmJiBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKLSAgICAgICAgICAgICAgICBw
cmludGYoIlBBU1M6ICVzIHNjcmlwdCB0aW1lZCBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0
aW9ucy50aWVyKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGlmICgoZW5k
VGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpCi0g
ICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IGRpZCBub3QgdGltZSBv
dXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBp
ZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQotICAgICAgICAgICAgICAgICAg
ICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVk
LlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsK
LSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHNjcmlwdEJ1aWxk
ZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpT
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAg
ICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBzaG91bGRU
ZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOworICAgICAgICAgICAgICAgIGF1dG8g
c3RhcnRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAgICAgICAgICAg
IEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAm
ZXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICBhdXRvIGVuZFRpbWUgPSBDUFVUaW1lOjpmb3JD
dXJyZW50VGhyZWFkKCk7CisKKyAgICAgICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRU
aW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiBzaG91bGRUZXJtaW5h
dGVDYWxsYmFja1dhc0NhbGxlZCkKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiAl
cyBzY3JpcHQgdGltZWQgb3V0IGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Cisg
ICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgoZW5kVGltZSAt
IHN0YXJ0VGltZSkgPj0gdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpCisgICAgICAg
ICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCBkaWQgbm90IHRpbWUgb3V0
IGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAg
IGlmICghc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCisgICAgICAgICAgICAgICAg
ICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3Qg
Y2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAgIGZhaWxl
ZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKCFleGNlcHRp
b24pIHsKICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIFRlcm1pbmF0ZWRFeGVjdXRp
b25FeGNlcHRpb24gd2FzIG5vdCB0aHJvd24uXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKQEAgLTIz
NywyMiArMjQwLDI1IEBAIGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICAgICAgICAg
IHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgIHJldHVybiByZWN1cnNlKGkgKyAxKTsg
fSIpOwogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCJyZWN1cnNlKDAp
OyIpOwogCi0gICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZyhzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0g
ICAgICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOwotICAgICAgICAgICAgc2hvdWxkVGVybWlu
YXRlQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1l
ID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwotICAgICAgICAgICAgSlNFdmFsdWF0ZVNj
cmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOwot
ICAgICAgICAgICAgYXV0byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwot
Ci0gICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNo
ZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkK
LSAgICAgICAgICAgICAgICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCB3aXRoIGluZmluaXRlIHRh
aWwgY2FsbHMgdGltZWQgb3V0IGFzIGV4cGVjdGVkIC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwot
ICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKChlbmRUaW1lIC0gc3RhcnRU
aW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkKLSAgICAgICAgICAgICAg
ICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgd2l0aCBpbmZpbml0ZSB0YWlsIGNhbGxzIGRp
ZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAg
ICAgICAgICAgICBpZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQotICAgICAg
ICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB3aXRoIGluZmluaXRlIHRhaWwg
Y2FsbHMnIHRpbWVvdXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50
aWVyKTsKLSAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOwotICAgICAgICAgICAgfQorICAg
ICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpKSB7Cisg
ICAgICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICBleGNlcHRp
b24gPSBudWxscHRyOworICAgICAgICAgICAgICAgIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2Fz
Q2FsbGVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgYXV0byBzdGFydFRpbWUgPSBDUFVUaW1l
Ojpmb3JDdXJyZW50VGhyZWFkKCk7CisgICAgICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChj
b250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOworICAgICAg
ICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKwor
ICAgICAgICAgICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0
Y2hkb2dTaG91bGRIYXZlRmlyZWQpICYmIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVk
KQorICAgICAgICAgICAgICAgICAgICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCB3aXRoIGluZmlu
aXRlIHRhaWwgY2FsbHMgdGltZWQgb3V0IGFzIGV4cGVjdGVkIC5cbiIsIHRpZXJPcHRpb25zLnRp
ZXIpOworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoKGVu
ZFRpbWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKQor
ICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgd2l0aCBpbmZp
bml0ZSB0YWlsIGNhbGxzIGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0
aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFzaG91bGRUZXJtaW5hdGVDYWxs
YmFja1dhc0NhbGxlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMg
c2NyaXB0IHdpdGggaW5maW5pdGUgdGFpbCBjYWxscycgdGltZW91dCBjYWxsYmFjayB3YXMgbm90
IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBmYWls
ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmICghZXhjZXB0
aW9uKSB7CiAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBUZXJtaW5hdGVkRXhlY3V0
aW9uRXhjZXB0aW9uIHdhcyBub3QgdGhyb3duLlxuIiwgdGllck9wdGlvbnMudGllcik7CkBAIC0y
NzMsMjEgKzI3OSwyNCBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgICAgICAg
ICBzY3JpcHRCdWlsZGVyLmFwcGVuZE51bWJlcih0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVG
aXJlZC5zZWNvbmRzKCkpOwogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFs
KCIpIGJyZWFrOyB9IH0gY2F0Y2goZSkgeyB9IH0gZm9vKCk7Iik7CiAKLSAgICAgICAgICAgIEpT
U3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHNjcmlwdEJ1
aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGV4Y2VwdGlvbiA9
IG51bGxwdHI7Ci0gICAgICAgICAgICBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9
IGZhbHNlOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc2NyaXB0QnVpbGRlci50b1N0
cmluZygpKSB7CisgICAgICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAg
ICAgICBleGNlcHRpb24gPSBudWxscHRyOworICAgICAgICAgICAgICAgIHNob3VsZFRlcm1pbmF0
ZUNhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CiAKLSAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1l
ID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwotICAgICAgICAgICAgSlNFdmFsdWF0ZVNj
cmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOwot
ICAgICAgICAgICAgYXV0byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwor
ICAgICAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVh
ZCgpOworICAgICAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBu
dWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICBhdXRvIGVu
ZFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CiAgICAgICAgICAgICAKLSAgICAg
ICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hv
dWxkSGF2ZUZpcmVkKSB8fCAhc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpIHsKLSAg
ICAgICAgICAgICAgICBpZiAoISgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCB0aW1lQWZ0ZXJXYXRj
aGRvZ1Nob3VsZEhhdmVGaXJlZCkpCi0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDog
JXMgc2NyaXB0IGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50
aWVyKTsKLSAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2Fs
bGVkKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0
IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAg
ICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBp
ZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVG
aXJlZCkgfHwgIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKSB7CisgICAgICAgICAg
ICAgICAgICAgIGlmICghKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9n
U2hvdWxkSGF2ZUZpcmVkKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDog
JXMgc2NyaXB0IGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50
aWVyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dh
c0NhbGxlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0
IHRpbWVvdXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsK
KyAgICAgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAg
CiAgICAgICAgICAgICBpZiAoZXhjZXB0aW9uKQogICAgICAgICAgICAgICAgIHByaW50ZigiUEFT
UzogJXMgVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbiB3YXMgbm90IGNhdGNoYWJsZSBhcyBl
eHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwpAQCAtMzA5LDI0ICszMTgsMjcgQEAgaW50
IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJmdW5jdGlvbiBmb28oKSB7IHZhciBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGlt
ZSgpOyB3aGlsZSAodHJ1ZSkgeyBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKyk7IGlmIChj
dXJyZW50Q1BVVGltZSgpIC0gc3RhcnRUaW1lID4gIik7CiAgICAgICAgICAgICBzY3JpcHRCdWls
ZGVyLmFwcGVuZE51bWJlcih0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZC5zZWNvbmRz
KCkpOwogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpIGJyZWFrOyB9
IH0gZm9vKCk7Iik7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlw
dCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHNjcmlwdEJ1aWxkZXIudG9TdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7Ci0gICAg
ICAgICAgICBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOwogCi0gICAg
ICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLSAg
ICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxs
cHRyLCAxLCAmZXhjZXB0aW9uKTsKLSAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRpbWU6
OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHNjcmlw
dEJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlw
dCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7
CisgICAgICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBz
aG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOworCisgICAgICAgICAgICAg
ICAgYXV0byBzdGFydFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CisgICAgICAg
ICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxw
dHIsIDEsICZleGNlcHRpb24pOworICAgICAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRp
bWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKCgo
ZW5kVGltZSAtIHN0YXJ0VGltZSkgPCB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkg
JiYgIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQotICAgICAgICAgICAgICAgIHBy
aW50ZigiUEFTUzogJXMgc2NyaXB0IHRpbWVkIG91dCBhcyBleHBlY3RlZCB3aGVuIG5vIGNhbGxi
YWNrIGlzIHNwZWNpZmllZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgaWYgKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0
ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJG
QUlMOiAlcyBzY3JpcHQgZGlkIG5vdCB0aW1lIG91dCBhcyBleHBlY3RlZCB3aGVuIG5vIGNhbGxi
YWNrIGlzIHNwZWNpZmllZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgY2FsbGVk
IHN0YWxlIGNhbGxiYWNrIGZ1bmN0aW9uLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAg
ICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBp
ZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZp
cmVkKSAmJiAhc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCisgICAgICAgICAgICAg
ICAgICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IHRpbWVkIG91dCBhcyBleHBlY3RlZCB3aGVu
IG5vIGNhbGxiYWNrIGlzIHNwZWNpZmllZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAg
ICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoKGVuZFRpbWUgLSBzdGFy
dFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKQorICAgICAgICAgICAg
ICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgZGlkIG5vdCB0aW1lIG91dCBhcyBl
eHBlY3RlZCB3aGVuIG5vIGNhbGxiYWNrIGlzIHNwZWNpZmllZC5cbiIsIHRpZXJPcHRpb25zLnRp
ZXIpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBw
cmludGYoIkZBSUw6ICVzIHNjcmlwdCBjYWxsZWQgc3RhbGUgY2FsbGJhY2sgZnVuY3Rpb24uXG4i
LCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBD
UkFTSCgpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoIWV4Y2VwdGlvbikgewogICAg
ICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlv
biB3YXMgbm90IHRocm93bi5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwpAQCAtMzQ3LDIzICszNTks
MjYgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgICAgICAgICAgc2NyaXB0QnVp
bGRlci5hcHBlbmROdW1iZXIodGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQuc2Vjb25k
cygpKTsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSBicmVhazsg
fSB9IGZvbygpOyIpOwogCi0gICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRh
dGEoKSk7Ci0gICAgICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOwotICAgICAgICAgICAgY2Fu
Y2VsVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgICAg
IEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmlu
Zy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsK
KyAgICAgICAgICAgICAgICBjYW5jZWxUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNl
OwogCi0gICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJl
YWQoKTsKLSAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxs
cHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKLSAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9
IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0
VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAgICBKU0V2
YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2Vw
dGlvbik7CisgICAgICAgICAgICAgICAgYXV0byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVu
dFRocmVhZCgpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3Rh
cnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgJiYgY2FuY2VsVGVy
bWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgJiYgIWV4Y2VwdGlvbikKLSAgICAgICAgICAgICAgICBw
cmludGYoIlBBU1M6ICVzIHNjcmlwdCB0aW1lb3V0IHdhcyBjYW5jZWxsZWQgYXMgZXhwZWN0ZWQu
XG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAg
ICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRI
YXZlRmlyZWQpIHx8IGV4Y2VwdGlvbikKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlM
OiAlcyBzY3JpcHQgdGltZW91dCB3YXMgbm90IGNhbmNlbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRp
ZXIpOwotICAgICAgICAgICAgICAgIGlmICghY2FuY2VsVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxs
ZWQpCi0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQg
Y2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAg
ICAgICAgICBmYWlsZWQgPSB0cnVlOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlm
ICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZp
cmVkKSAmJiBjYW5jZWxUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCAmJiAhZXhjZXB0aW9uKQor
ICAgICAgICAgICAgICAgICAgICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCB0aW1lb3V0IHdhcyBj
YW5jZWxsZWQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAg
ICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGlt
ZSkgPCB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgfHwgZXhjZXB0aW9uKQorICAg
ICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgdGltZW91dCB3YXMg
bm90IGNhbmNlbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAg
ICBpZiAoIWNhbmNlbFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQorICAgICAgICAgICAgICAg
ICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgdGltZW91dCBjYWxsYmFjayB3YXMgbm90
IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBmYWls
ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChleGNlcHRp
b24pIHsKICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIFVuZXhwZWN0ZWQgVGVybWlu
YXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbiB0aHJvd24uXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKQEAg
LTM4NCwzMyArMzk5LDM2IEBAIGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICAgICAg
ICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1heEJ1c3lMb29wVGltZS5zZWNvbmRzKCkp
OyAvLyBpbiBzZWNvbmRzLgogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFs
KCIpIGJyZWFrOyB9IH0gZm9vKCk7Iik7CiAKLSAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlw
dCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHNjcmlwdEJ1aWxkZXIudG9TdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7Ci0gICAg
ICAgICAgICBleHRlbmRUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA9IDA7CisgICAgICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAg
ICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhz
dHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxw
dHI7CisgICAgICAgICAgICAgICAgZXh0ZW5kVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQgPSAwOwog
Ci0gICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQo
KTsKLSAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRy
LCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKLSAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQ
VVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLSAgICAgICAgICAgIGF1dG8gZGVsdGFUaW1lID0g
ZW5kVGltZSAtIHN0YXJ0VGltZTsKKyAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQ
VVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAgICBKU0V2YWx1YXRlU2Ny
aXB0KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7Cisg
ICAgICAgICAgICAgICAgYXV0byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgp
OworICAgICAgICAgICAgICAgIGF1dG8gZGVsdGFUaW1lID0gZW5kVGltZSAtIHN0YXJ0VGltZTsK
ICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKChkZWx0YVRpbWUgPj0gdGltZUJlZm9yZUV4
dGVuZGVkRGVhZGxpbmUpICYmIChkZWx0YVRpbWUgPCB0aW1lQWZ0ZXJFeHRlbmRlZERlYWRsaW5l
KSAmJiAoZXh0ZW5kVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQgPT0gMikgJiYgZXhjZXB0aW9uKQot
ICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IHRpbWVvdXQgd2FzIGV4dGVu
ZGVkIGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICBlbHNl
IHsKLSAgICAgICAgICAgICAgICBpZiAoZGVsdGFUaW1lIDwgdGltZUJlZm9yZUV4dGVuZGVkRGVh
ZGxpbmUpCi0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVv
dXQgd2FzIG5vdCBleHRlbmRlZCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwot
ICAgICAgICAgICAgICAgIGVsc2UgaWYgKGRlbHRhVGltZSA+PSB0aW1lQWZ0ZXJFeHRlbmRlZERl
YWRsaW5lKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCBkaWQg
bm90IHRpbWVvdXQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICBpZiAo
KGRlbHRhVGltZSA+PSB0aW1lQmVmb3JlRXh0ZW5kZWREZWFkbGluZSkgJiYgKGRlbHRhVGltZSA8
IHRpbWVBZnRlckV4dGVuZGVkRGVhZGxpbmUpICYmIChleHRlbmRUZXJtaW5hdGVDYWxsYmFja0Nh
bGxlZCA9PSAyKSAmJiBleGNlcHRpb24pCisgICAgICAgICAgICAgICAgICAgIHByaW50ZigiUEFT
UzogJXMgc2NyaXB0IHRpbWVvdXQgd2FzIGV4dGVuZGVkIGFzIGV4cGVjdGVkLlxuIiwgdGllck9w
dGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAg
IGlmIChkZWx0YVRpbWUgPCB0aW1lQmVmb3JlRXh0ZW5kZWREZWFkbGluZSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgd2FzIG5vdCBleHRl
bmRlZCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAg
ICAgICBlbHNlIGlmIChkZWx0YVRpbWUgPj0gdGltZUFmdGVyRXh0ZW5kZWREZWFkbGluZSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IGRpZCBub3QgdGlt
ZW91dC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwogICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgIGlmIChleHRlbmRUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA8IDEpCi0gICAgICAgICAg
ICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgY2FsbGJhY2sgd2FzIG5v
dCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBpZiAoZXh0
ZW5kVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQgPCAyKQotICAgICAgICAgICAgICAgICAgICBwcmlu
dGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkIGFmdGVy
IHRpbWVvdXQgZXh0ZW5zaW9uLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAg
ICAgICAgIGlmIChleHRlbmRUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA8IDEpCisgICAgICAgICAg
ICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdh
cyBub3QgY2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAg
IGlmIChleHRlbmRUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA8IDIpCisgICAgICAgICAgICAgICAg
ICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3Qg
Y2FsbGVkIGFmdGVyIHRpbWVvdXQgZXh0ZW5zaW9uLlxuIiwgdGllck9wdGlvbnMudGllcik7CiAg
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKCFleGNlcHRpb24pCi0gICAgICAg
ICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlv
biB3YXMgbm90IHRocm93biBkdXJpbmcgdGltZW91dCBleHRlbnNpb24gdGVzdC5cbiIsIHRpZXJP
cHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoIWV4Y2VwdGlvbikKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgVGVybWluYXRlZEV4ZWN1dGlvbkV4
Y2VwdGlvbiB3YXMgbm90IHRocm93biBkdXJpbmcgdGltZW91dCBleHRlbnNpb24gdGVzdC5cbiIs
IHRpZXJPcHRpb25zLnRpZXIpOwogICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGZh
aWxlZCA9IHRydWU7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGZhaWxlZCA9
IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogCiAjaWYgSEFWRShNQUNIX0VYQ0VQVElPTlMpCkBA
IC00MjUsNTYgKzQ0Myw2MiBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgICAg
ICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZE51bWJlcih0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhh
dmVGaXJlZC5zZWNvbmRzKCkpOwogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRl
cmFsKCIpIGJyZWFrOyB9IH0gZm9vKCk7Iik7CiAKLSAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNj
cmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHNjcmlwdEJ1aWxkZXIudG9TdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7Ci0g
ICAgICAgICAgICBkaXNwYXRjaFRlcm1pbmF0ZUNhbGxiYWNrQ2FsbGVkID0gZmFsc2U7Ci0KLSAg
ICAgICAgICAgIC8vIFdlIGhhdmUgdG8gZG8gdGhpcyBzaW5jZSBibG9ja3MgY2FuIG9ubHkgY2Fw
dHVyZSB0aGluZ3MgYXMgY29uc3QuCi0gICAgICAgICAgICBKU0dsb2JhbENvbnRleHRSZWYmIGNv
bnRleHRSZWYgPSBjb250ZXh0OwotICAgICAgICAgICAgSlNTdHJpbmdSZWYmIHNjcmlwdFJlZiA9
IHNjcmlwdDsKLSAgICAgICAgICAgIEpTVmFsdWVSZWYmIGV4Y2VwdGlvblJlZiA9IGV4Y2VwdGlv
bjsKLQotICAgICAgICAgICAgTG9jayBzeW5jTG9jazsKLSAgICAgICAgICAgIExvY2smIHN5bmNM
b2NrUmVmID0gc3luY0xvY2s7Ci0gICAgICAgICAgICBDb25kaXRpb24gc3luY2hyb25pemU7Ci0g
ICAgICAgICAgICBDb25kaXRpb24mIHN5bmNocm9uaXplUmVmID0gc3luY2hyb25pemU7Ci0gICAg
ICAgICAgICBib29sIGRpZFN5bmNocm9uaXplID0gZmFsc2U7Ci0gICAgICAgICAgICBib29sJiBk
aWRTeW5jaHJvbml6ZVJlZiA9IGRpZFN5bmNocm9uaXplOwotCi0gICAgICAgICAgICBTZWNvbmRz
IHN0YXJ0VGltZTsKLSAgICAgICAgICAgIFNlY29uZHMgZW5kVGltZTsKLQotICAgICAgICAgICAg
U2Vjb25kcyYgc3RhcnRUaW1lUmVmID0gc3RhcnRUaW1lOwotICAgICAgICAgICAgU2Vjb25kcyYg
ZW5kVGltZVJlZiA9IGVuZFRpbWU7Ci0KLSAgICAgICAgICAgIGRpc3BhdGNoX2dyb3VwX3QgZ3Jv
dXAgPSBkaXNwYXRjaF9ncm91cF9jcmVhdGUoKTsKLSAgICAgICAgICAgIGRpc3BhdGNoX2dyb3Vw
X2FzeW5jKGdyb3VwLCBkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKDAsIDApLCBeewotICAgICAg
ICAgICAgICAgIHN0YXJ0VGltZVJlZiA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLSAg
ICAgICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHRSZWYsIHNjcmlwdFJlZiwgbnVs
bHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvblJlZik7Ci0gICAgICAgICAgICAgICAgZW5kVGlt
ZVJlZiA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLSAgICAgICAgICAgICAgICBhdXRv
IGxvY2tlciA9IFdURjo6aG9sZExvY2soc3luY0xvY2tSZWYpOwotICAgICAgICAgICAgICAgIGRp
ZFN5bmNocm9uaXplUmVmID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZVJlZi5u
b3RpZnlBbGwoKTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICBhdXRvIGxvY2tlciA9
IGhvbGRMb2NrKHN5bmNMb2NrKTsKLSAgICAgICAgICAgIHN5bmNocm9uaXplLndhaXQoc3luY0xv
Y2ssIFsmXSB7IHJldHVybiBkaWRTeW5jaHJvbml6ZTsgfSk7Ci0KLSAgICAgICAgICAgIGlmICgo
KGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQp
ICYmIGRpc3BhdGNoVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQpCi0gICAgICAgICAgICAgICAgcHJp
bnRmKCJQQVNTOiAlcyBzY3JpcHQgb24gZGlzcGF0Y2ggcXVldWUgdGltZWQgb3V0IGFzIGV4cGVj
dGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgICAgICBpZiAoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hv
dWxkSGF2ZUZpcmVkKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlw
dCBvbiBkaXNwYXRjaCBxdWV1ZSBkaWQgbm90IHRpbWUgb3V0IGFzIGV4cGVjdGVkLlxuIiwgdGll
ck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAgaWYgKCFzaG91bGRUZXJtaW5hdGVDYWxs
YmFja1dhc0NhbGxlZCkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3Jp
cHQgb24gZGlzcGF0Y2ggcXVldWUgdGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIs
IHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7Ci0gICAg
ICAgICAgICB9CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzY3JpcHRCdWlsZGVyLnRv
U3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAg
ICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7CisgICAgICAgICAgICAgICAgZGlzcGF0Y2hUZXJt
aW5hdGVDYWxsYmFja0NhbGxlZCA9IGZhbHNlOworCisgICAgICAgICAgICAgICAgLy8gV2UgaGF2
ZSB0byBkbyB0aGlzIHNpbmNlIGJsb2NrcyBjYW4gb25seSBjYXB0dXJlIHRoaW5ncyBhcyBjb25z
dC4KKyAgICAgICAgICAgICAgICBKU0dsb2JhbENvbnRleHRSZWYmIGNvbnRleHRSZWYgPSBjb250
ZXh0OworICAgICAgICAgICAgICAgIEpTU3RyaW5nUmVmJiBzY3JpcHRSZWYgPSBzY3JpcHQ7Cisg
ICAgICAgICAgICAgICAgSlNWYWx1ZVJlZiYgZXhjZXB0aW9uUmVmID0gZXhjZXB0aW9uOworCisg
ICAgICAgICAgICAgICAgTG9jayBzeW5jTG9jazsKKyAgICAgICAgICAgICAgICBMb2NrJiBzeW5j
TG9ja1JlZiA9IHN5bmNMb2NrOworICAgICAgICAgICAgICAgIENvbmRpdGlvbiBzeW5jaHJvbml6
ZTsKKyAgICAgICAgICAgICAgICBDb25kaXRpb24mIHN5bmNocm9uaXplUmVmID0gc3luY2hyb25p
emU7CisgICAgICAgICAgICAgICAgYm9vbCBkaWRTeW5jaHJvbml6ZSA9IGZhbHNlOworICAgICAg
ICAgICAgICAgIGJvb2wmIGRpZFN5bmNocm9uaXplUmVmID0gZGlkU3luY2hyb25pemU7CisKKyAg
ICAgICAgICAgICAgICBTZWNvbmRzIHN0YXJ0VGltZTsKKyAgICAgICAgICAgICAgICBTZWNvbmRz
IGVuZFRpbWU7CisKKyAgICAgICAgICAgICAgICBTZWNvbmRzJiBzdGFydFRpbWVSZWYgPSBzdGFy
dFRpbWU7CisgICAgICAgICAgICAgICAgU2Vjb25kcyYgZW5kVGltZVJlZiA9IGVuZFRpbWU7CisK
KyAgICAgICAgICAgICAgICBkaXNwYXRjaF9ncm91cF90IGdyb3VwID0gZGlzcGF0Y2hfZ3JvdXBf
Y3JlYXRlKCk7CisgICAgICAgICAgICAgICAgZGlzcGF0Y2hfZ3JvdXBfYXN5bmMoZ3JvdXAsIGRp
c3BhdGNoX2dldF9nbG9iYWxfcXVldWUoMCwgMCksIF57CisgICAgICAgICAgICAgICAgICAgIHN0
YXJ0VGltZVJlZiA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAg
ICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0UmVmLCBzY3JpcHRSZWYsIG51bGxwdHIsIG51
bGxwdHIsIDEsICZleGNlcHRpb25SZWYpOworICAgICAgICAgICAgICAgICAgICBlbmRUaW1lUmVm
ID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAgICAgICAgICAgICAgICBhdXRv
IGxvY2tlciA9IFdURjo6aG9sZExvY2soc3luY0xvY2tSZWYpOworICAgICAgICAgICAgICAgICAg
ICBkaWRTeW5jaHJvbml6ZVJlZiA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIHN5bmNocm9u
aXplUmVmLm5vdGlmeUFsbCgpOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhzeW5jTG9jayk7CisgICAgICAgICAgICAgICAgc3lu
Y2hyb25pemUud2FpdChzeW5jTG9jaywgWyZdIHsgcmV0dXJuIGRpZFN5bmNocm9uaXplOyB9KTsK
KworICAgICAgICAgICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVy
V2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpICYmIGRpc3BhdGNoVGVybWluYXRlQ2FsbGJhY2tDYWxs
ZWQpCisgICAgICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IG9uIGRpc3Bh
dGNoIHF1ZXVlIHRpbWVkIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwor
ICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoKGVuZFRpbWUg
LSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKQorICAgICAg
ICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgb24gZGlzcGF0Y2ggcXVl
dWUgZGlkIG5vdCB0aW1lIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwor
ICAgICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVk
KQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgb24gZGlz
cGF0Y2ggcXVldWUgdGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJPcHRp
b25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAg
ICAgICAgIH0KICNlbmRpZgogCiAgICAgICAgIEpTR2xvYmFsQ29udGV4dFJlbGVhc2UoY29udGV4
dCk7CiAKLSAgICAgICAgT3B0aW9uczo6c2V0T3B0aW9ucyhzYXZlZE9wdGlvbnNCdWlsZGVyLnRv
U3RyaW5nKCkuYXNjaWkoKS5kYXRhKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzYXZl
ZE9wdGlvbnNCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBPcHRpb25zOjpzZXRPcHRp
b25zKHN0cmluZy0+YXNjaWkoKS5kYXRhKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBD
UkFTSCgpOwogICAgIH0KICAgICAKICAgICByZXR1cm4gZmFpbGVkOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9QaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvUGluZ1BvbmdTdGFja092ZXJmbG93
VGVzdC5jcHAKaW5kZXggMDQyYmViZi4uMTEyMzA5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS90ZXN0cy9QaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL1BpbmdQb25nU3RhY2tPdmVyZmxvd1Rlc3Qu
Y3BwCkBAIC02NCw5ICs2NCwxMiBAQCBzdGF0aWMgYm9vbCBQaW5nUG9uZ1N0YWNrT3ZlcmZsb3dP
YmplY3RfaGFzSW5zdGFuY2UoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZQogICAgICAgICB9
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKTsiKTsKIAotICAgICAgICBKU1N0cmlu
Z1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhidWlsZGVyLnRvU3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIHJlc3VsdCA9IEpTRXZhbHVhdGVTY3JpcHQo
Y29udGV4dCwgc2NyaXB0LCBOVUxMLCBOVUxMLCAxLCBleGNlcHRpb24pOwotICAgICAgICBKU1N0
cmluZ1JlbGVhc2Uoc2NyaXB0KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpKSB7CisgICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAg
cmVzdWx0ID0gSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxw
dHIsIDEsIGV4Y2VwdGlvbik7CisgICAgICAgICAgICBKU1N0cmluZ1JlbGVhc2Uoc2NyaXB0KTsK
KyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIC0tbmF0
aXZlUmVjdXJzaW9uQ291bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2NWE1MmMxLi5h
N2NhZmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5OCBAQAorMjAxOC0w
NC0yNiAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3RyaW5n
QnVpbGRlciBpcyBmYWxsaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTg1MDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU3RyaW5nQnVpbGRlciBjYW4gZmFpbCB3aGVuIGFsbG9jYXRpbmcgbWVtb3J5
LiBTdHJpbmdCdWlsZGVyIGlzCisgICAgICAgIG1vc3RseSB1c2VkIHdpdGggdXNlciBpbnB1dCwg
d2hpY2ggb2Z0ZW4gbWVhbnMgdGhhdCBqdXN0IGNyYXNoaW5nCisgICAgICAgIGlzbid0IHRoZSBy
aWdodCBvdXRjb21lLiBPdXIgZnV6emVycyBvZnRlbiBlbmNvdW50ZXIgc3VjaCB0aGluZ3MKKyAg
ICAgICAgZm9yIEphdmFTY3JpcHRDb3JlLCBhbmQgc28gZmFyIHdlJ3ZlIGFwcGxpZWQgcG9pbnQg
c29sdXRpb25zLiBObworICAgICAgICBtb3JlIQorCisgICAgICAgICogQVBJL0pTQ29udGV4dFJl
Zi5jcHA6CisgICAgICAgIChKU0NvbnRleHRDcmVhdGVCYWNrdHJhY2UpOgorICAgICAgICAqIEFQ
SS90ZXN0cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcDoKKyAgICAgICAgKHRlc3RFeGVjdXRp
b25UaW1lTGltaXQpOgorICAgICAgICAqIEFQSS90ZXN0cy9QaW5nUG9uZ1N0YWNrT3ZlcmZsb3dU
ZXN0LmNwcDoKKyAgICAgICAgKFBpbmdQb25nU3RhY2tPdmVyZmxvd09iamVjdF9oYXNJbnN0YW5j
ZSk6CisgICAgICAgICogZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OlN0cmVuZ3RoUmVkdWN0aW9uUGhhc2U6OmhhbmRsZU5vZGUpOgorICAgICAg
ICAqIGhlYXAvSGVhcFNuYXBzaG90QnVpbGRlci5jcHA6CisgICAgICAgIChKU0M6OkhlYXBTbmFw
c2hvdEJ1aWxkZXI6Ompzb24pOgorICAgICAgICAqIGluc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5j
cHA6CisgICAgICAgIChJbnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZSk6
CisgICAgICAgICogaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlsaXRpZXMuY3BwOgorICAgICAg
ICAoSW5zcGVjdG9yOjpDb250ZW50U2VhcmNoVXRpbGl0aWVzOjpjcmVhdGVTZWFyY2hSZWdleFNv
dXJjZSk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAo
SlNDOjpJbnRlcnByZXRlcjo6c3RhY2tUcmFjZUFzU3RyaW5nKToKKyAgICAgICAgKiBpbnRlcnBy
ZXRlci9TdGFja1Zpc2l0b3IuY3BwOgorICAgICAgICAoSlNDOjpTdGFja1Zpc2l0b3I6OkZyYW1l
Ojp0b1N0cmluZyBjb25zdCk6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKHJlc29sdmVQ
YXRoKToKKyAgICAgICAgKGZ1bmN0aW9uSlNDU3RhY2spOgorICAgICAgICAqIHJ1bnRpbWUvQ29u
ZmlnRmlsZS5jcHA6CisgICAgICAgIChKU0M6OkNvbmZpZ0ZpbGU6OnBhcnNlKToKKyAgICAgICAg
KiBydW50aW1lL0NvbnNvbGVDbGllbnQuY3BwOgorICAgICAgICAoSlNDOjpDb25zb2xlQ2xpZW50
OjpwcmludENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKEpTQzo6Q29uc29sZUNsaWVudDo6cHJp
bnRDb25zb2xlTWVzc2FnZVdpdGhBcmd1bWVudHMpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUNv
bnZlcnNpb24uY3BwOgorICAgICAgICAoSlNDOjpmb3JtYXREYXRlVGltZSk6CisgICAgICAgICog
cnVudGltZS9FcnJvckluc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6
c2FuaXRpemVkVG9TdHJpbmcpOgorICAgICAgICAqIHJ1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5j
cHA6CisgICAgICAgIChKU0M6Om5vdEFGdW5jdGlvblNvdXJjZUFwcGVuZGVyKToKKyAgICAgICAg
KiBydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1
Y3RGdW5jdGlvblNraXBwaW5nRXZhbEVuYWJsZWRDaGVjayk6CisgICAgICAgICogcnVudGltZS9J
bnRsRGF0ZVRpbWVGb3JtYXQuY3BwOgorICAgICAgICAoSlNDOjpJbnRsRGF0ZVRpbWVGb3JtYXQ6
OmluaXRpYWxpemVEYXRlVGltZUZvcm1hdCk6CisgICAgICAgICogcnVudGltZS9JbnRsT2JqZWN0
LmNwcDoKKyAgICAgICAgKEpTQzo6cHJpdmF0ZVVzZUxhbmdUYWcpOgorICAgICAgICAoSlNDOjpj
YW5vbmljYWxMYW5nVGFnKToKKyAgICAgICAgKEpTQzo6cmVtb3ZlVW5pY29kZUxvY2FsZUV4dGVu
c2lvbik6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHA6Cisg
ICAgICAgIChKU0M6OmVuY29kZSk6CisgICAgICAgIChKU0M6OmRlY29kZSk6CisgICAgICAgIChK
U0M6Omdsb2JhbEZ1bmNFc2NhcGUpOgorICAgICAgICAoSlNDOjpnbG9iYWxGdW5jVW5lc2NhcGUp
OgorICAgICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlN0cmlu
Z2lmaWVyOjpzdHJpbmdpZnkpOgorICAgICAgICAoSlNDOjpTdHJpbmdpZmllcjo6SG9sZGVyOjph
cHBlbmROZXh0UHJvcGVydHkpOgorICAgICAgICAqIHJ1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHA6
CisgICAgICAgIChKU0M6OkxpdGVyYWxQYXJzZXI8Q2hhclR5cGU+OjpMZXhlcjo6bGV4U3RyaW5n
U2xvdyk6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6T3B0
aW9uczo6ZHVtcE9wdGlvbnNJZk5lZWRlZCk6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OmR1bXBB
bGxPcHRpb25zKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHA6CisgICAg
ICAgIChKU0M6OnJlZ0V4cFByb3RvR2V0dGVyU291cmNlSW50ZXJuYWwpOgorICAgICAgICAqIHJ1
bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHA6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmls
ZXI6OnN0YWNrVHJhY2VzQXNKU09OKToKKyAgICAgICAgKiBydW50aW1lL1N0YWNrRnJhbWUuY3Bw
OgorICAgICAgICAoSlNDOjpTdGFja0ZyYW1lOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgICog
cnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OnN0cmluZ0Zyb21D
b2RlUG9pbnQpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcDoKKyAgICAg
ICAgKEpTQzo6c3Vic3RpdHV0ZUJhY2tyZWZlcmVuY2VzU2xvdyk6CisgICAgICAgICogcnVudGlt
ZS9UeXBlUHJvZmlsZXIuY3BwOgorICAgICAgICAoSlNDOjpUeXBlUHJvZmlsZXI6OnR5cGVJbmZv
cm1hdGlvbkZvckV4cHJlc3Npb25BdE9mZnNldCk6CisgICAgICAgICogcnVudGltZS9UeXBlU2V0
LmNwcDoKKyAgICAgICAgKEpTQzo6VHlwZVNldDo6ZHVtcFR5cGVzIGNvbnN0KToKKyAgICAgICAg
KEpTQzo6VHlwZVNldDo6dG9KU09OU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U3RydWN0
dXJlU2hhcGU6OnByb3BlcnR5SGFzaCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVNoYXBlOjpz
dHJpbmdSZXByZXNlbnRhdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVNoYXBlOjp0b0pT
T05TdHJpbmcgY29uc3QpOgorICAgICAgICAqIHRlc3RSZWdFeHAuY3BwOgorICAgICAgICAocGFy
c2VSZWdFeHBMaW5lKToKKyAgICAgICAgKHBhcnNlVGVzdExpbmUpOgorICAgICAgICAqIHRvb2xz
L0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6cGFyc2VDbGF1c2UpOgorICAg
ICAgICAqIHdhc20vV2FzbUJCUVBsYW4uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpCQlFQbGFu
OjpwcmVwYXJlKToKKyAgICAgICAgKiB5YXJyL1lhcnJQYXJzZXIuaDoKKyAgICAgICAgKEpTQzo6
WWFycjo6UGFyc2VyOjp0cnlDb25zdW1lR3JvdXBOYW1lKToKKyAgICAgICAgKEpTQzo6WWFycjo6
UGFyc2VyOjp0cnlDb25zdW1lVW5pY29kZVByb3BlcnR5RXhwcmVzc2lvbik6CisKIDIwMTgtMDQt
MjUgIFJvYmluIE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KIAogICAgICAgICBJbiBG
VExMb3dlckRGR1RvQjMuY3BwOjpjb21waWxlQ3JlYXRlUmVzdCwgYWx3YXlzIHVzZSBhIGNvbnRp
Z3VvdXMgYXJyYXkgYXMgdGhlIGluZGV4aW5nIHR5cGUgd2hlbiB1bmRlciBpc1dhdGNoaW5nSGF2
aW5nQUJhZFRpbWVXYXRjaHBvaW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcAppbmRleCA1YzFiZTY4Li5mNzBjNzE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0
aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhS
ZWR1Y3Rpb25QaGFzZS5jcHAKQEAgLTM2MSw4ICszNjEsMTEgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgICAgICAgICAgYnVpbGRlci5h
cHBlbmQobGVmdFN0cmluZyk7CiAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQocmlnaHRT
dHJpbmcpOwotICAgICAgICAgICAgICAgIG1fbm9kZS0+Y29udmVydFRvTGF6eUpTQ29uc3RhbnQo
Ci0gICAgICAgICAgICAgICAgICAgIG1fZ3JhcGgsIExhenlKU1ZhbHVlOjpuZXdTdHJpbmcobV9n
cmFwaCwgYnVpbGRlci50b1N0cmluZygpKSk7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgIG1fbm9kZS0+
Y29udmVydFRvTGF6eUpTQ29uc3RhbnQoCisgICAgICAgICAgICAgICAgICAgICAgICBtX2dyYXBo
LCBMYXp5SlNWYWx1ZTo6bmV3U3RyaW5nKG1fZ3JhcGgsICpzdHJpbmcpKTsKKyAgICAgICAgICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgICAg
ICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBA
IC0zODksOCArMzkyLDExIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBpZiAoISFleHRyYVN0cmlu
ZykKICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChleHRyYVN0cmluZyk7CiAKLSAgICAg
ICAgICAgIG1fbm9kZS0+Y29udmVydFRvTGF6eUpTQ29uc3RhbnQoCi0gICAgICAgICAgICAgICAg
bV9ncmFwaCwgTGF6eUpTVmFsdWU6Om5ld1N0cmluZyhtX2dyYXBoLCBidWlsZGVyLnRvU3RyaW5n
KCkpKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkg
eworICAgICAgICAgICAgICAgIG1fbm9kZS0+Y29udmVydFRvTGF6eUpTQ29uc3RhbnQoCisgICAg
ICAgICAgICAgICAgICAgIG1fZ3JhcGgsIExhenlKU1ZhbHVlOjpuZXdTdHJpbmcobV9ncmFwaCwg
KnN0cmluZykpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsK
ICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQpAQCAtODgyLDkgKzg4OCwxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgZWxzZSB7CiAg
ICAgICAgICAgICAgICAgaWYgKGxhc3RJbmRleCA8IHN0cmluZy5sZW5ndGgoKSkKICAgICAgICAg
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoc3RyaW5nLCBsYXN0SW5kZXgsIHN0cmluZy5sZW5n
dGgoKSAtIGxhc3RJbmRleCk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgbV9u
b2RlLT5jb252ZXJ0VG9MYXp5SlNDb25zdGFudCgKLSAgICAgICAgICAgICAgICAgICAgbV9ncmFw
aCwgTGF6eUpTVmFsdWU6Om5ld1N0cmluZyhtX2dyYXBoLCBidWlsZGVyLnRvU3RyaW5nKCkpKTsK
KworICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkg
eworICAgICAgICAgICAgICAgICAgICBtX25vZGUtPmNvbnZlcnRUb0xhenlKU0NvbnN0YW50KAor
ICAgICAgICAgICAgICAgICAgICAgICAgbV9ncmFwaCwgTGF6eUpTVmFsdWU6Om5ld1N0cmluZyht
X2dyYXBoLCAqc3RyaW5nKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAg
ICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIG1fbm9kZS0+b3Jp
Z2luID0gb3JpZ2luOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cFNuYXBzaG90QnVpbGRlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU25h
cHNob3RCdWlsZGVyLmNwcAppbmRleCA2NWY2MzNmLi5lMWFhZDFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3RCdWlsZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3RCdWlsZGVyLmNwcApAQCAtMzg3LDcg
KzM4Nyw5IEBAIFN0cmluZyBIZWFwU25hcHNob3RCdWlsZGVyOjpqc29uKHN0ZDo6ZnVuY3Rpb248
Ym9vbCAoY29uc3QgSGVhcFNuYXBzaG90Tm9kZSYpPiBhCiAgICAganNvbi5hcHBlbmQoJ10nKTsK
IAogICAgIGpzb24uYXBwZW5kKCd9Jyk7Ci0gICAgcmV0dXJuIGpzb24udG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBqc29uLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcAppbmRleCA1Y2Zi
MDRkLi43MWU0ZmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0NvbnNvbGVNZXNzYWdlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0NvbnNvbGVNZXNzYWdlLmNwcApAQCAtMTE1LDcgKzExNSwxMCBAQCBDb25zb2xlTWVzc2FnZTo6
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1l
c3NhZ2VMZQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgSlNPTkxvZ1ZhbHVlOjpU
eXBlOjpKU09OOgogICAgICAgICAgICAgaWYgKGJ1aWxkZXIubGVuZ3RoKCkpIHsKLSAgICAgICAg
ICAgICAgICBtX2pzb25Mb2dWYWx1ZXMuYXBwZW5kKHsgSlNPTkxvZ1ZhbHVlOjpUeXBlOjpTdHJp
bmcsIEpTT046OlZhbHVlOjpjcmVhdGUoYnVpbGRlci50b1N0cmluZygpKS0+dG9KU09OU3RyaW5n
KCkgfSk7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICAgICAgICAgICAgICBtX2pzb25Mb2dWYWx1ZXMuYXBwZW5kKHsgSlNPTkxv
Z1ZhbHVlOjpUeXBlOjpTdHJpbmcsIEpTT046OlZhbHVlOjpjcmVhdGUoKnN0cmluZyktPnRvSlNP
TlN0cmluZygpIH0pOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
Q1JBU0goKTsKICAgICAgICAgICAgICAgICBidWlsZGVyLnJlc2l6ZSgwKTsKICAgICAgICAgICAg
IH0KIApAQCAtMTI0LDggKzEyNywxMiBAQCBDb25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZQogICAgICAg
ICB9CiAgICAgfQogCi0gICAgaWYgKGJ1aWxkZXIubGVuZ3RoKCkpCi0gICAgICAgIG1fanNvbkxv
Z1ZhbHVlcy5hcHBlbmQoeyBKU09OTG9nVmFsdWU6OlR5cGU6OlN0cmluZywgSlNPTjo6VmFsdWU6
OmNyZWF0ZShidWlsZGVyLnRvU3RyaW5nKCkpLT50b0pTT05TdHJpbmcoKSB9KTsKKyAgICBpZiAo
YnVpbGRlci5sZW5ndGgoKSkgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgICAgICBtX2pzb25Mb2dWYWx1ZXMuYXBwZW5kKHsgSlNPTkxvZ1Zh
bHVlOjpUeXBlOjpTdHJpbmcsIEpTT046OlZhbHVlOjpjcmVhdGUoKnN0cmluZyktPnRvSlNPTlN0
cmluZygpIH0pOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOworICAgIH0KIAog
ICAgIGlmIChtX2pzb25Mb2dWYWx1ZXMuc2l6ZSgpKQogICAgICAgICBtX21lc3NhZ2UgPSBtX2pz
b25Mb2dWYWx1ZXNbMF0udmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0aWVzLmNwcAppbmRleCBhYWE4MWUyLi5i
MGMxOTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnRl
bnRTZWFyY2hVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvQ29udGVudFNlYXJjaFV0aWxpdGllcy5jcHAKQEAgLTU1LDcgKzU1LDkgQEAgc3RhdGljIFN0
cmluZyBjcmVhdGVTZWFyY2hSZWdleFNvdXJjZShjb25zdCBTdHJpbmcmIHRleHQpCiAgICAgICAg
IHJlc3VsdC5hcHBlbmQoY2hhcmFjdGVyKTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgc2l6
ZV90IHNpemV0RXh0cmFjdG9yKGNvbnN0IHNpemVfdCogdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAppbmRleCA0ZjcyNzA5Li5l
ZDE3NDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50
ZXJwcmV0ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRl
cnByZXRlci5jcHAKQEAgLTU3Nyw3ICs1NzcsOSBAQCBKU1N0cmluZyogSW50ZXJwcmV0ZXI6OnN0
YWNrVHJhY2VBc1N0cmluZyhWTSYgdm0sIGNvbnN0IFZlY3RvcjxTdGFja0ZyYW1lPiYgc3RhYwog
ICAgICAgICBpZiAoaSAhPSBzdGFja1RyYWNlLnNpemUoKSAtIDEpCiAgICAgICAgICAgICBidWls
ZGVyLmFwcGVuZCgnXG4nKTsKICAgICB9Ci0gICAgcmV0dXJuIGpzU3RyaW5nKCZ2bSwgYnVpbGRl
ci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiBqc1N0cmluZygmdm0sICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9
CiAKIEFMV0FZU19JTkxJTkUgc3RhdGljIEhhbmRsZXJJbmZvKiBmaW5kRXhjZXB0aW9uSGFuZGxl
cihTdGFja1Zpc2l0b3ImIHZpc2l0b3IsIENvZGVCbG9jayogY29kZUJsb2NrLCBSZXF1aXJlZEhh
bmRsZXIgcmVxdWlyZWRIYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcAppbmRleCAxZDFmZjczLi43MGNkMTE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcApA
QCAtMzQ3LDcgKzM0Nyw5IEBAIFN0cmluZyBTdGFja1Zpc2l0b3I6OkZyYW1lOjp0b1N0cmluZygp
IGNvbnN0CiAgICAgICAgICAgICB0cmFjZUJ1aWxkLmFwcGVuZE51bWJlcihjb2x1bW4pOwogICAg
ICAgICB9CiAgICAgfQotICAgIHJldHVybiB0cmFjZUJ1aWxkLnRvU3RyaW5nKCkuaW1wbCgpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHRyYWNlQnVpbGQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuIHN0cmluZy0+aW1wbCgpOworICAgIENSQVNIKCk7CiB9CiAKIGludHB0cl90IFN0YWNrVmlz
aXRvcjo6RnJhbWU6OnNvdXJjZUlEKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggNGE3M2U4Ny4u
M2ZhNDY2NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTc2NSw3ICs3NjUsOSBAQCBzdGF0aWMg
U3RyaW5nIHJlc29sdmVQYXRoKGNvbnN0IERpcmVjdG9yeU5hbWUmIGRpcmVjdG9yeU5hbWUsIGNv
bnN0IE1vZHVsZU5hbWUmCiAgICAgICAgIGlmIChpICsgMSAhPSBkaXJlY3RvcnlQaWVjZXMuc2l6
ZSgpKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQocGF0aFNlcGFyYXRvcigpKTsKICAgICB9
Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIHN0YXRpYyBTdHJpbmcgYWJzb2x1dGVQYXRoKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUp
CkBAIC0xMTI1LDggKzExMjcsMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbkpTQ1N0YWNrKEV4ZWNTdGF0ZSogZXhlYykKIAogICAgIEZ1bmN0aW9uSlNDU3RhY2tGdW5j
dG9yIGZ1bmN0b3IodHJhY2UpOwogICAgIGV4ZWMtPml0ZXJhdGUoZnVuY3Rvcik7Ci0gICAgZnBy
aW50ZihzdGRlcnIsICIlcyIsIHRyYWNlLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSB0cmFjZS50b1N0cmluZygpKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMiLCBz
dHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOworICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uR0NBbmRTd2VlcChFeGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25maWdGaWxlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwCmluZGV4IGJiODc2NjYuLmY3
ZWNkYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmZpZ0Zp
bGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3Bw
CkBAIC00NjUsOSArNDY1LDEyIEBAIHZvaWQgQ29uZmlnRmlsZTo6cGFyc2UoKQogICAgICAgICAg
ICAgV1RGOjpzZXREYXRhRmlsZShsb2dQYXRobmFtZSk7CiAKICAgICAgICAgaWYgKCFqc2NPcHRp
b25zQnVpbGRlci5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGNvbnN0IGNoYXIqIG9wdGlvbnNT
dHIgPSBqc2NPcHRpb25zQnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCk7Ci0gICAgICAg
ICAgICBPcHRpb25zOjplbmFibGVSZXN0cmljdGVkT3B0aW9ucyh0cnVlKTsKLSAgICAgICAgICAg
IE9wdGlvbnM6OnNldE9wdGlvbnMob3B0aW9uc1N0cik7CisgICAgICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBqc2NPcHRpb25zQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAg
Y29uc3QgY2hhciogb3B0aW9uc1N0ciA9IHN0cmluZy0+dXRmOCgpLmRhdGEoKTsKKyAgICAgICAg
ICAgICAgICBPcHRpb25zOjplbmFibGVSZXN0cmljdGVkT3B0aW9ucyh0cnVlKTsKKyAgICAgICAg
ICAgICAgICBPcHRpb25zOjpzZXRPcHRpb25zKG9wdGlvbnNTdHIpOworICAgICAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgIH0gZWxzZQogICAg
ICAgICBXVEY6OmRhdGFMb2dGKCJFcnJvciBpbiBKU0MgQ29uZmlnIGZpbGUgb24gb3IgbmVhciBs
aW5lICV1LCBwYXJzaW5nICclcydcbiIsIHNjYW5uZXIubGluZU51bWJlcigpLCBzY2FubmVyLmN1
cnJlbnRCdWZmZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db25zb2xlQ2xpZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNv
bGVDbGllbnQuY3BwCmluZGV4IDI5MTdkNzY4Li5iODY2NDNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcApAQCAtMTQ0LDcgKzE0NCwxMCBA
QCB2b2lkIENvbnNvbGVDbGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBz
b3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsCiAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICBi
dWlsZGVyLmFwcGVuZChtZXNzYWdlKTsKIAotICAgIFdURkxvZ0Fsd2F5cygiJXMiLCBidWlsZGVy
LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICBXVEZMb2dBbHdheXMoIiVzIiwgc3RyaW5nLT51dGY4KCku
ZGF0YSgpKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgQ29uc29sZUNs
aWVudDo6cHJpbnRDb25zb2xlTWVzc2FnZVdpdGhBcmd1bWVudHMoTWVzc2FnZVNvdXJjZSBzb3Vy
Y2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgSlNDOjpFeGVjU3RhdGUq
IGV4ZWMsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQpAQCAtMTcwLDcgKzE3Mywx
MCBAQCB2b2lkIENvbnNvbGVDbGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2VXaXRoQXJndW1lbnRz
KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYQogICAgICAgICBzY29wZS5jbGVhckV4Y2VwdGlv
bigpOwogICAgIH0KIAotICAgIFdURkxvZ0Fsd2F5cygiJXMiLCBidWlsZGVyLnRvU3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICBXVEZMb2dBbHdheXMoIiVzIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAg
ICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAgICBpZiAoaXNUcmFjZU1lc3NhZ2UpIHsKICAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjYWxsU3RhY2stPnNpemUoKTsgKytpKSB7CkBA
IC0xODcsNyArMTkzLDEwIEBAIHZvaWQgQ29uc29sZUNsaWVudDo6cHJpbnRDb25zb2xlTWVzc2Fn
ZVdpdGhBcmd1bWVudHMoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhCiAgICAgICAgICAgICBh
cHBlbmRVUkxBbmRQb3NpdGlvbihjYWxsRnJhbWVCdWlsZGVyLCBjYWxsRnJhbWUuc291cmNlVVJM
KCksIGNhbGxGcmFtZS5saW5lTnVtYmVyKCksIGNhbGxGcmFtZS5jb2x1bW5OdW1iZXIoKSk7CiAg
ICAgICAgICAgICBjYWxsRnJhbWVCdWlsZGVyLmFwcGVuZCgnKScpOwogCi0gICAgICAgICAgICBX
VEZMb2dBbHdheXMoIiVzIiwgY2FsbEZyYW1lQnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gY2FsbEZyYW1lQnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiJXMiLCBzdHJpbmctPnV0Zjgo
KS5kYXRhKCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAg
ICAgICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EYXRlQ29udmVyc2lvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlQ29udmVyc2lvbi5jcHAKaW5kZXggOGE4N2NjNi4uNDIzYmUyNCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb252ZXJzaW9uLmNwcApAQCAtMTIzLDcgKzEy
Myw5IEBAIFN0cmluZyBmb3JtYXREYXRlVGltZShjb25zdCBHcmVnb3JpYW5EYXRlVGltZSYgdCwg
RGF0ZVRpbWVGb3JtYXQgZm9ybWF0LCBib29sIGFzCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBy
ZXR1cm4gYnVpbGRlci50b1N0cmluZygpLmltcGwoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBzdHJpbmctPmltcGwoKTsKKyAgICBD
UkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKaW5kZXggYzE3MjQyOC4uNzhkMjk5NyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKQEAg
LTE5OSw3ICsxOTksOSBAQCBTdHJpbmcgRXJyb3JJbnN0YW5jZTo6c2FuaXRpemVkVG9TdHJpbmco
RXhlY1N0YXRlKiBleGVjKQogICAgIGJ1aWxkZXIuYXBwZW5kKG5hbWVTdHJpbmcpOwogICAgIGJ1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiOiAiKTsKICAgICBidWlsZGVyLmFwcGVuZChtZXNzYWdlU3Ry
aW5nKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogYm9vbCBFcnJvckluc3RhbmNlOjptYXRlcmlhbGl6ZUVycm9ySW5mb0lmTmVl
ZGVkKFZNJiB2bSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4
Y2VwdGlvbkhlbHBlcnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0
aW9uSGVscGVycy5jcHAKaW5kZXggNjk5MTQ0Yi4uNmUwMWI5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKQEAgLTIxMSw3ICsy
MTEsOSBAQCBzdGF0aWMgU3RyaW5nIG5vdEFGdW5jdGlvblNvdXJjZUFwcGVuZGVyKGNvbnN0IFN0
cmluZyYgb3JpZ2luYWxNZXNzYWdlLCBjb25zdCBTdAogICAgIH0KICAgICBidWlsZGVyLmFwcGVu
ZCgnKScpOwogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgaW52YWxpZFBhcmFtZXRlckluU291cmNlQXBw
ZW5kZXIoY29uc3QgU3RyaW5nJiBvcmlnaW5hbE1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNl
VGV4dCwgUnVudGltZVR5cGUgdHlwZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlVGV4dFdoZXJlRXJy
b3JPY2N1cnJlZCBvY2N1cnJlbmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAppbmRleCAwMzFmZTMyLi5kYmE1Zjg2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVj
dG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0
cnVjdG9yLmNwcApAQCAtMTQzLDE0ICsxNDMsMTcgQEAgSlNPYmplY3QqIGNvbnN0cnVjdEZ1bmN0
aW9uU2tpcHBpbmdFdmFsRW5hYmxlZENoZWNrKAogICAgICAgICB7CiAgICAgICAgICAgICAvLyBU
aGUgc3BlYyBtYW5kYXRlcyB0aGF0IHRoZSBwYXJhbWV0ZXJzIHBhcnNlIGFzIGEgdmFsaWQgcGFy
YW1ldGVyIGxpc3QKICAgICAgICAgICAgIC8vIGluZGVwZW5kZW50IG9mIHRoZSBmdW5jdGlvbiBi
b2R5LgotICAgICAgICAgICAgU3RyaW5nIHByb2dyYW0gPSBtYWtlU3RyaW5nKCIoIiwgcHJlZml4
LCAiKCIsIHBhcmFtZXRlckJ1aWxkZXIudG9TdHJpbmcoKSwgIil7XG5cbn0pIik7Ci0gICAgICAg
ICAgICBTb3VyY2VDb2RlIHNvdXJjZSA9IG1ha2VTb3VyY2UocHJvZ3JhbSwgc291cmNlT3JpZ2lu
LCBzb3VyY2VVUkwsIHBvc2l0aW9uKTsKLSAgICAgICAgICAgIEpTVmFsdWUgZXhjZXB0aW9uOwot
ICAgICAgICAgICAgY2hlY2tTeW50YXgoZXhlYywgc291cmNlLCAmZXhjZXB0aW9uKTsKLSAgICAg
ICAgICAgIGlmIChleGNlcHRpb24pIHsKLSAgICAgICAgICAgICAgICBzY29wZS50aHJvd0V4Y2Vw
dGlvbihleGVjLCBleGNlcHRpb24pOwotICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwot
ICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcGFyYW1ldGVyQnVp
bGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHByb2dyYW0gPSBtYWtl
U3RyaW5nKCIoIiwgcHJlZml4LCAiKCIsICpzdHJpbmcsICIpe1xuXG59KSIpOworICAgICAgICAg
ICAgICAgIFNvdXJjZUNvZGUgc291cmNlID0gbWFrZVNvdXJjZShwcm9ncmFtLCBzb3VyY2VPcmln
aW4sIHNvdXJjZVVSTCwgcG9zaXRpb24pOworICAgICAgICAgICAgICAgIEpTVmFsdWUgZXhjZXB0
aW9uOworICAgICAgICAgICAgICAgIGNoZWNrU3ludGF4KGV4ZWMsIHNvdXJjZSwgJmV4Y2VwdGlv
bik7CisgICAgICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbikgeworICAgICAgICAgICAgICAgICAg
ICBzY29wZS50aHJvd0V4Y2VwdGlvbihleGVjLCBleGNlcHRpb24pOworICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAKICAgICAgICAgYnVpbGRl
ci5hcHBlbmQocGFyYW1ldGVyQnVpbGRlcik7CkBAIC0xNjEsNyArMTY0LDEwIEBAIEpTT2JqZWN0
KiBjb25zdHJ1Y3RGdW5jdGlvblNraXBwaW5nRXZhbEVuYWJsZWRDaGVjaygKICAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KGJvZHkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxufX0iKTsKLSAgICAgICAg
cHJvZ3JhbSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
YnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcHJvZ3JhbSA9ICpzdHJpbmc7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgU291cmNlQ29kZSBz
b3VyY2UgPSBtYWtlU291cmNlKHByb2dyYW0sIHNvdXJjZU9yaWdpbiwgc291cmNlVVJMLCBwb3Np
dGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0
ZVRpbWVGb3JtYXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVU
aW1lRm9ybWF0LmNwcAppbmRleCBjOTIwYWNmLi4yYzJmMDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAKQEAgLTY0Niw3
ICs2NDYsMTEgQEAgdm9pZCBJbnRsRGF0ZVRpbWVGb3JtYXQ6OmluaXRpYWxpemVEYXRlVGltZUZv
cm1hdChFeGVjU3RhdGUmIGV4ZWMsIEpTVmFsdWUgbG9jYWwKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIFN0cmluZyBza2VsZXRvbiA9IHNrZWxldG9uQnVpbGRlci50b1N0cmluZygpOwor
ICAgIFN0cmluZyBza2VsZXRvbjsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBza2VsZXRvbkJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgc2tlbGV0b24gPSAqc3RyaW5nOworICAgIGVsc2UKKyAg
ICAgICAgQ1JBU0goKTsKICAgICBTdHJpbmdWaWV3IHNrZWxldG9uVmlldyhza2VsZXRvbik7CiAg
ICAgVmVjdG9yPFVDaGFyLCAzMj4gcGF0dGVybkJ1ZmZlcigzMik7CiAgICAgc3RhdHVzID0gVV9a
RVJPX0VSUk9SOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNw
cAppbmRleCAzZjU0MzQwLi5iOTY1ZGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsT2JqZWN0LmNwcApAQCAtMjQ3LDcgKzI0Nyw5IEBAIHN0YXRpYyBTdHJpbmcgcHJp
dmF0ZVVzZUxhbmdUYWcoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcnRzLCBzaXplX3Qgc3RhcnRJ
bmRleCkKICAgICBpZiAoY3VycmVudEluZGV4IDwgbnVtUGFydHMpCiAgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKIAotICAgIHJldHVybiBwcml2YXRldXNlLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gcHJpdmF0ZXVzZS50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIGNhbm9uaWNhbExhbmdUYWcoY29u
c3QgVmVjdG9yPFN0cmluZz4mIHBhcnRzKQpAQCAtMzgwLDcgKzM4MiwxMCBAQCBzdGF0aWMgU3Ry
aW5nIGNhbm9uaWNhbExhbmdUYWcoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcnRzKQogICAgICAg
ICBpZiAoIW51bUV4dFBhcnRzKQogICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAg
ICAgIGV4dGVuc2lvbnMuYXBwZW5kKGV4dGVuc2lvbi50b1N0cmluZygpKTsKKyAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gZXh0ZW5zaW9uLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBleHRlbnNp
b25zLmFwcGVuZCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsK
ICAgICB9CiAKICAgICAvLyBBZGQgZXh0ZW5zaW9ucyB0byBjYW5vbmljYWwgc29ydGVkIGJ5IHNp
bmdsZXRvbi4KQEAgLTQwOCw3ICs0MTMsOSBAQCBzdGF0aWMgU3RyaW5nIGNhbm9uaWNhbExhbmdU
YWcoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcnRzKQogCiAgICAgLy8gRklYTUU6IFJlcGxhY2Ug
c3VidGFncyB3aXRoIHRoZWlyIHByZWZlcnJlZCB2YWx1ZXMuCiAKLSAgICByZXR1cm4gY2Fub25p
Y2FsLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gY2Fub25pY2FsLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBT
dHJpbmcgZ3JhbmRmYXRoZXJlZExhbmdUYWcoY29uc3QgU3RyaW5nJiBsb2NhbGUpCkBAIC02MTMs
NyArNjIwLDEwIEBAIFN0cmluZyByZW1vdmVVbmljb2RlTG9jYWxlRXh0ZW5zaW9uKGNvbnN0IFN0
cmluZyYgbG9jYWxlKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQocGFydHNbcF0pOwogICAg
ICAgICB9CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBNYXRjaGVyUmVzdWx0IGxvb2t1cE1hdGNoZXIo
RXhlY1N0YXRlJiBzdGF0ZSwgY29uc3QgSGFzaFNldDxTdHJpbmc+JiBhdmFpbGFibGVMb2NhbGVz
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcmVxdWVzdGVkTG9jYWxlcykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNw
cAppbmRleCA3MzEzNjczLi4xOWI1MmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCkBAIC0xNTEsNyAr
MTUxLDkgQEAgc3RhdGljIEpTVmFsdWUgZW5jb2RlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQml0
bWFwPDI1Nj4mIGRvTm90RXNjYXBlLCBjb25zdCBDaGEKICAgICAgICAgfQogICAgIH0KIAotICAg
IHJldHVybiBqc1N0cmluZyhleGVjLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGV4
ZWMsICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBKU1ZhbHVlIGVuY29kZShF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEJpdG1hcDwyNTY+JiBkb05vdEVzY2FwZSkKQEAgLTIzMCw3
ICsyMzIsMTAgQEAgc3RhdGljIEpTVmFsdWUgZGVjb2RlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
Q2hhclR5cGUqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgsIGMKICAgICAgICAgYnVpbGRlci5hcHBl
bmQoYyk7CiAgICAgfQogICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICByZXR1cm4ganNTdHJpbmco
JnZtLCBidWlsZGVyLnRvU3RyaW5nKCkpOworCisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4ganNTdHJpbmcoJnZtLCAqc3RyaW5nKTsKKyAg
ICBDUkFTSCgpOwogfQogCiBzdGF0aWMgSlNWYWx1ZSBkZWNvZGUoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBCaXRtYXA8MjU2PiYgZG9Ob3RVbmVzY2FwZSwgYm9vbCBzdHJpY3QpCkBAIC02MDMsNyAr
NjA4LDkgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jRXNjYXBlKEV4
ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgICAgICAgICAgYXBwZW5kQnl0ZUFzSGV4KHN0YXRp
Y19jYXN0PExDaGFyPih1KSwgYnVpbGRlcik7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsIGJ1aWxkZXIudG9TdHJpbmco
KSk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsICpzdHJpbmcpOworICAgICAgICAg
ICAgQ1JBU0goKTsKICAgICAgICAgfQogCiAgICAgICAgIGNvbnN0IFVDaGFyKiBjID0gdmlldy5j
aGFyYWN0ZXJzMTYoKTsKQEAgLTYyMiw3ICs2MjksOSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGdsb2JhbEZ1bmNFc2NhcGUoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAKLSAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsIGJ1aWxkZXIudG9TdHJp
bmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgIHJldHVybiBqc1N0cmluZyhleGVjLCAqc3RyaW5nKTsKKyAgICAgICAgQ1JBU0go
KTsKICAgICB9KSk7CiB9CiAKQEAgLTY3OCw3ICs2ODcsOSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGdsb2JhbEZ1bmNVbmVzY2FwZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KIAotICAgICAgICByZXR1cm4ganNTdHJpbmcoZXhlYywgYnVpbGRlci50
b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsICpzdHJpbmcpOworICAgICAgICBD
UkFTSCgpOwogICAgIH0pKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09OT2JqZWN0LmNwcAppbmRleCBiM2E3ODA4Li5kN2MwNmRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcApAQCAtMjc4LDcgKzI3OCw5IEBAIEpTVmFs
dWUgU3RyaW5naWZpZXI6OnN0cmluZ2lmeShKU1ZhbHVlIHZhbHVlKQogICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKIAogICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICByZXR1cm4ganNTdHJp
bmcobV9leGVjLCByZXN1bHQudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVz
dWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBqc1N0cmluZyhtX2V4ZWMsICpzdHJpbmcp
OworICAgIENSQVNIKCk7CiB9CiAKIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBTdHJpbmdpZmllcjo6
dG9KU09OKEpTVmFsdWUgdmFsdWUsIGNvbnN0IFByb3BlcnR5TmFtZUZvckZ1bmN0aW9uQ2FsbCYg
cHJvcGVydHlOYW1lKQpAQCAtNTA0LDggKzUwNiwxMiBAQCBib29sIFN0cmluZ2lmaWVyOjpIb2xk
ZXI6OmFwcGVuZE5leHRQcm9wZXJ0eShTdHJpbmdpZmllciYgc3RyaW5naWZpZXIsIFN0cmluZ0J1
aQogICAgIC8vIExhc3QgdGltZSB0aHJvdWdoLCBmaW5pc2ggdXAgYW5kIHJldHVybiBmYWxzZS4K
ICAgICBpZiAobV9pbmRleCA9PSBtX3NpemUpIHsKICAgICAgICAgc3RyaW5naWZpZXIudW5pbmRl
bnQoKTsKLSAgICAgICAgaWYgKG1fc2l6ZSAmJiBidWlsZGVyW2J1aWxkZXIubGVuZ3RoKCkgLSAx
XSAhPSAneycpCi0gICAgICAgICAgICBzdHJpbmdpZmllci5zdGFydE5ld0xpbmUoYnVpbGRlcik7
CisgICAgICAgIGlmIChtX3NpemUpIHsKKyAgICAgICAgICAgIGlmIChidWlsZGVyLmZhaWxlZCgp
KQorICAgICAgICAgICAgICAgIENSQVNIKCk7CisgICAgICAgICAgICBpZiAoKmJ1aWxkZXJbYnVp
bGRlci5sZW5ndGgoKSAtIDFdICE9ICd7JykKKyAgICAgICAgICAgICAgICBzdHJpbmdpZmllci5z
dGFydE5ld0xpbmUoYnVpbGRlcik7CisgICAgICAgIH0KICAgICAgICAgYnVpbGRlci5hcHBlbmQo
bV9pc0FycmF5ID8gJ10nIDogJ30nKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAg
LTU0OCw3ICs1NTQsOSBAQCBib29sIFN0cmluZ2lmaWVyOjpIb2xkZXI6OmFwcGVuZE5leHRQcm9w
ZXJ0eShTdHJpbmdpZmllciYgc3RyaW5naWZpZXIsIFN0cmluZ0J1aQogICAgICAgICByb2xsQmFj
a1BvaW50ID0gYnVpbGRlci5sZW5ndGgoKTsKIAogICAgICAgICAvLyBBcHBlbmQgdGhlIHNlcGFy
YXRvciBzdHJpbmcuCi0gICAgICAgIGlmIChidWlsZGVyW3JvbGxCYWNrUG9pbnQgLSAxXSAhPSAn
eycpCisgICAgICAgIGlmIChidWlsZGVyLmZhaWxlZCgpKQorICAgICAgICAgICAgQ1JBU0goKTsK
KyAgICAgICAgaWYgKCpidWlsZGVyW3JvbGxCYWNrUG9pbnQgLSAxXSAhPSAneycpCiAgICAgICAg
ICAgICBidWlsZGVyLmFwcGVuZCgnLCcpOwogICAgICAgICBzdHJpbmdpZmllci5zdGFydE5ld0xp
bmUoYnVpbGRlcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0xpdGVyYWxQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTGl0ZXJh
bFBhcnNlci5jcHAKaW5kZXggZjAwZmUwNy4uYjg2ODY4YSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAKQEAgLTQ2NiwxMCArNDY2LDE2IEBA
IHNsb3dQYXRoQmVnaW46CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKG1fYnVpbGRlci5pczhC
aXQoKSkgewogICAgICAgICAgICAgdG9rZW4uc3RyaW5nSXM4Qml0ID0gMTsKLSAgICAgICAgICAg
IHRva2VuLnN0cmluZ1Rva2VuOCA9IG1fYnVpbGRlci5jaGFyYWN0ZXJzOCgpOworICAgICAgICAg
ICAgaWYgKGF1dG8gY2hhcnMgPSBtX2J1aWxkZXIuY2hhcmFjdGVyczgoKSkKKyAgICAgICAgICAg
ICAgICB0b2tlbi5zdHJpbmdUb2tlbjggPSAqY2hhcnM7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHRva2Vu
LnN0cmluZ0lzOEJpdCA9IDA7Ci0gICAgICAgICAgICB0b2tlbi5zdHJpbmdUb2tlbjE2ID0gbV9i
dWlsZGVyLmNoYXJhY3RlcnMxNigpOworICAgICAgICAgICAgaWYgKGF1dG8gY2hhcnMgPSBtX2J1
aWxkZXIuY2hhcmFjdGVyczE2KCkpCisgICAgICAgICAgICAgICAgdG9rZW4uc3RyaW5nVG9rZW4x
NiA9ICpjaGFyczsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwog
ICAgICAgICB9CiAgICAgICAgIHRva2VuLnN0cmluZ0xlbmd0aCA9IG1fYnVpbGRlci5sZW5ndGgo
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRp
b25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCmluZGV4
IDNjODYxMjMuLjkyN2NkMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09wdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlv
bnMuY3BwCkBAIC01OTUsNyArNTk1LDEwIEBAIHZvaWQgT3B0aW9uczo6ZHVtcE9wdGlvbnNJZk5l
ZWRlZCgpCiAKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBkdW1wQWxs
T3B0aW9ucyhidWlsZGVyLCBsZXZlbCwgdGl0bGUsIG51bGxwdHIsICIgICAiLCAiXG4iLCBEdW1w
RGVmYXVsdHMpOwotICAgICAgICBkYXRhTG9nKGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGRhdGFM
b2coKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQog
fQogCkBAIC04MDQsNyArODA3LDEwIEBAIHZvaWQgT3B0aW9uczo6ZHVtcEFsbE9wdGlvbnMoRklM
RSogc3RyZWFtLCBEdW1wTGV2ZWwgbGV2ZWwsIGNvbnN0IGNoYXIqIHRpdGxlKQogewogICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBkdW1wQWxsT3B0aW9ucyhidWlsZGVyLCBsZXZlbCwg
dGl0bGUsIG51bGxwdHIsICIgICAiLCAiXG4iLCBEdW1wRGVmYXVsdHMpOwotICAgIGZwcmludGYo
c3RyZWFtLCAiJXMiLCBidWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBmcHJpbnRmKHN0cmVh
bSwgIiVzIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNI
KCk7CiB9CiAKIHZvaWQgT3B0aW9uczo6ZHVtcE9wdGlvbihTdHJpbmdCdWlsZGVyJiBidWlsZGVy
LCBEdW1wTGV2ZWwgbGV2ZWwsIE9wdGlvbnM6OklEIGlkLApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKaW5kZXggZDMyMWUyZC4uMzZmYzZh
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90
eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5
cGUuY3BwCkBAIC00NjYsNyArNDY2LDkgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIHJlZ0V4cFBy
b3RvR2V0dGVyU291cmNlSW50ZXJuYWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHIKICAgICAg
ICAgICAgIHByZXZpb3VzQ2hhcmFjdGVyV2FzQmFja3NsYXNoID0gY2ggPT0gJ1xcJzsKICAgICB9
CiAKLSAgICByZXR1cm4ganNTdHJpbmcoZXhlYywgcmVzdWx0LnRvU3RyaW5nKCkpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4ganNTdHJp
bmcoZXhlYywgKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlclNvdXJjZShFeGVjU3RhdGUqIGV4ZWMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCmlu
ZGV4IDU5MmFmNDEuLmYwOGM0ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCkBAIC05MDQsNyArOTA0LDkgQEAgU3RyaW5nIFNh
bXBsaW5nUHJvZmlsZXI6OnN0YWNrVHJhY2VzQXNKU09OKCkKIAogICAgIGNsZWFyRGF0YShsb2Nr
ZXIpOwogCi0gICAgcmV0dXJuIGpzb24udG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBqc29uLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIHZvaWQgU2FtcGxpbmdQcm9maWxlcjo6cmVnaXN0ZXJGb3JSZXBvcnRBdEV4aXQoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0ZyYW1lLmNwcAppbmRleCA5ZjJk
NjBkLi40OGEyMmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dGFja0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0Zy
YW1lLmNwcApAQCAtMTM5LDcgKzEzOSw5IEBAIFN0cmluZyBTdGFja0ZyYW1lOjp0b1N0cmluZyhW
TSYgdm0pIGNvbnN0CiAgICAgICAgICAgICB0cmFjZUJ1aWxkLmFwcGVuZE51bWJlcihjb2x1bW4p
OwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiB0cmFjZUJ1aWxkLnRvU3RyaW5nKCkuaW1w
bCgpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHRyYWNlQnVpbGQudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuIHN0cmluZy0+aW1wbCgpOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgU3RhY2tG
cmFtZTo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAppbmRleCAxMGFi
Yzc2Li42NDVhM2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nQ29uc3RydWN0b3IuY3BwCkBAIC0xMjUsNyArMTI1LDkgQEAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nRnJvbUNvZGVQb2ludChFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgfQogCiAgICAgc2NvcGUucmVsZWFzZSgpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNTdHJpbmcoZXhlYywgYnVpbGRlci50b1N0cmluZygpKSk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzU3RyaW5nKGV4ZWMsICpzdHJpbmcpKTsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoU3RyaW5nQ29uc3RydWN0b3Io
RXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RyaW5nUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ1Byb3RvdHlwZS5jcHAKaW5kZXggYTBkMzYwMS4uNThjY2Q1NyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCkBAIC0yODAsNyAr
MjgwLDkgQEAgc3RhdGljIE5FVkVSX0lOTElORSBTdHJpbmcgc3Vic3RpdHV0ZUJhY2tyZWZlcmVu
Y2VzU2xvdyhTdHJpbmdWaWV3IHJlcGxhY2VtZW50LAogICAgIGlmIChyZXBsYWNlbWVudC5sZW5n
dGgoKSAtIG9mZnNldCkKICAgICAgICAgc3Vic3RpdHV0ZWRSZXBsYWNlbWVudC5hcHBlbmQocmVw
bGFjZW1lbnQuc3Vic3RyaW5nKG9mZnNldCkpOwogCi0gICAgcmV0dXJuIHN1YnN0aXR1dGVkUmVw
bGFjZW1lbnQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdWJzdGl0dXRlZFJl
cGxhY2VtZW50LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIGlubGluZSBTdHJpbmcgc3Vic3RpdHV0ZUJhY2tyZWZlcmVuY2VzSW5saW5lKGNv
bnN0IFN0cmluZyYgcmVwbGFjZW1lbnQsIFN0cmluZ1ZpZXcgc291cmNlLCBjb25zdCBpbnQqIG92
ZWN0b3IsIFJlZ0V4cCogcmVnKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVHlwZVByb2ZpbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5
cGVQcm9maWxlci5jcHAKaW5kZXggMGY4NWVmOC4uN2FlOTc0NSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9UeXBlUHJvZmlsZXIuY3BwCkBAIC0xMDQsOCArMTA0LDEwIEBA
IFN0cmluZyBUeXBlUHJvZmlsZXI6OnR5cGVJbmZvcm1hdGlvbkZvckV4cHJlc3Npb25BdE9mZnNl
dChUeXBlUHJvZmlsZXJTZWFyY2hEZXNjCiAgICAgICAgIGpzb24uYXBwZW5kTGl0ZXJhbCgiZmFs
c2UiKTsKIAogICAgIGpzb24uYXBwZW5kKCd9Jyk7Ci0gICAgCi0gICAgcmV0dXJuIGpzb24udG9T
dHJpbmcoKTsKKworICAgIGlmIChhdXRvIHN0cmluZyA9IGpzb24udG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogVHlwZUxvY2F0aW9uKiBUeXBl
UHJvZmlsZXI6OmZpbmRMb2NhdGlvbih1bnNpZ25lZCBkaXZvdCwgaW50cHRyX3Qgc291cmNlSUQs
IFR5cGVQcm9maWxlclNlYXJjaERlc2NyaXB0b3IgZGVzY3JpcHRvciwgVk0mIHZtKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVNldC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlU2V0LmNwcAppbmRleCA3YTQxMmU2Li5jM2EwNWM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlU2V0LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlU2V0LmNwcApAQCAtMTMxLDcg
KzEzMSw5IEBAIFN0cmluZyBUeXBlU2V0OjpkdW1wVHlwZXMoKSBjb25zdAogICAgICAgICBzZWVu
LmFwcGVuZChsZWFzdENvbW1vbkFuY2VzdG9yKCkpOwogICAgIH0KIAotICAgIHJldHVybiBzZWVu
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc2Vlbi50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIFR5cGVTZXQ6OmRv
ZXNUeXBlQ29uZm9ybVRvKFJ1bnRpbWVUeXBlTWFzayB0ZXN0KSBjb25zdApAQCAtMzE3LDcgKzMx
OSw5IEBAIFN0cmluZyBUeXBlU2V0Ojp0b0pTT05TdHJpbmcoKSBjb25zdAogICAgIGpzb24uYXBw
ZW5kKCddJyk7CiAKICAgICBqc29uLmFwcGVuZCgnfScpOwotICAgIHJldHVybiBqc29uLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0ganNvbi50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJ1Y3R1cmVTaGFwZTo6U3RydWN0
dXJlU2hhcGUoKQpAQCAtMzYyLDggKzM2NiwxMSBAQCBTdHJpbmcgU3RydWN0dXJlU2hhcGU6OnBy
b3BlcnR5SGFzaCgpCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG1fcHJvdG8tPnByb3BlcnR5SGFz
aCgpKTsKICAgICB9CiAKLSAgICBtX3Byb3BlcnR5SGFzaCA9IHN0ZDo6bWFrZV91bmlxdWU8U3Ry
aW5nPihidWlsZGVyLnRvU3RyaW5nKCkpOwotICAgIHJldHVybiAqbV9wcm9wZXJ0eUhhc2g7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIG1fcHJv
cGVydHlIYXNoID0gc3RkOjptYWtlX3VuaXF1ZTxTdHJpbmc+KCpzdHJpbmcpOworICAgICAgICBy
ZXR1cm4gKm1fcHJvcGVydHlIYXNoOworICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcg
U3RydWN0dXJlU2hhcGU6OmxlYXN0Q29tbW9uQW5jZXN0b3IoY29uc3QgVmVjdG9yPFJlZjxTdHJ1
Y3R1cmVTaGFwZT4+JiBzaGFwZXMpCkBAIC00MjcsNyArNDM0LDkgQEAgU3RyaW5nIFN0cnVjdHVy
ZVNoYXBlOjpzdHJpbmdSZXByZXNlbnRhdGlvbigpCiAKICAgICByZXByZXNlbnRhdGlvbi5hcHBl
bmQoJ30nKTsKIAotICAgIHJldHVybiByZXByZXNlbnRhdGlvbi50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IHJlcHJlc2VudGF0aW9uLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBTdHJ1Y3R1cmVTaGFwZTo6dG9K
U09OU3RyaW5nKCkgY29uc3QKQEAgLTQ5NCw3ICs1MDMsOSBAQCBTdHJpbmcgU3RydWN0dXJlU2hh
cGU6OnRvSlNPTlN0cmluZygpIGNvbnN0CiAKICAgICBqc29uLmFwcGVuZCgnfScpOwogCi0gICAg
cmV0dXJuIGpzb24udG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBqc29uLnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFJlZjxJ
bnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpTdHJ1Y3R1cmVEZXNjcmlwdGlvbj4gU3RydWN0
dXJlU2hhcGU6Omluc3BlY3RvclJlcHJlc2VudGF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
UmVnRXhwLmNwcAppbmRleCBlNmNkZDUwLi5jNGQ4ZGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RSZWdFeHAuY3BwCkBAIC0zMjksMTIgKzMyOSwxNSBAQCBzdGF0aWMgUmVnRXhwKiBwYXJzZVJl
Z0V4cExpbmUoVk0mIHZtLCBjaGFyKiBsaW5lLCBpbnQgbGluZUxlbmd0aCwgY29uc3QgY2hhcioq
CiAKICAgICArK2k7CiAKLSAgICBSZWdFeHAqIHIgPSBSZWdFeHA6OmNyZWF0ZSh2bSwgcGF0dGVy
bi50b1N0cmluZygpLCByZWdFeHBGbGFncyhsaW5lICsgaSkpOwotICAgIGlmICghci0+aXNWYWxp
ZCgpKSB7Ci0gICAgICAgICpyZWdleHBFcnJvciA9IHItPmVycm9yTWVzc2FnZSgpOwotICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBwYXR0ZXJuLnRvU3RyaW5n
KCkpIHsKKyAgICAgICAgUmVnRXhwKiByID0gUmVnRXhwOjpjcmVhdGUodm0sICpzdHJpbmcsIHJl
Z0V4cEZsYWdzKGxpbmUgKyBpKSk7CisgICAgICAgIGlmICghci0+aXNWYWxpZCgpKSB7CisgICAg
ICAgICAgICAqcmVnZXhwRXJyb3IgPSByLT5lcnJvck1lc3NhZ2UoKTsKKyAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgICAgICB9CisgICAgICAgIHJldHVybiByOwogICAgIH0KLSAgICBy
ZXR1cm4gcjsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgUmVnRXhwVGVzdCogcGFyc2VUZXN0
TGluZShjaGFyKiBsaW5lLCBpbnQgbGluZUxlbmd0aCkKQEAgLTM3Nyw4ICszODAsMTEgQEAgc3Rh
dGljIFJlZ0V4cFRlc3QqIHBhcnNlVGVzdExpbmUoY2hhciogbGluZSwgaW50IGxpbmVMZW5ndGgp
CiAgICAgaW50IHN0YXJ0LCBlbmQ7CiAgICAgCiAgICAgUmVnRXhwVGVzdCogcmVzdWx0ID0gbmV3
IFJlZ0V4cFRlc3QoKTsKLSAgICAKLSAgICByZXN1bHQtPnN1YmplY3QgPSBzdWJqZWN0U3RyaW5n
LnRvU3RyaW5nKCk7CisKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdWJqZWN0U3RyaW5nLnRvU3Ry
aW5nKCkpCisgICAgICAgIHJlc3VsdC0+c3ViamVjdCA9ICpzdHJpbmc7CisgICAgZWxzZQorICAg
ICAgICBDUkFTSCgpOwogICAgIHJlc3VsdC0+b2Zmc2V0ID0gb2Zmc2V0OwogICAgIHJlc3VsdC0+
cmVzdWx0ID0gbWF0Y2hSZXN1bHQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90b29scy9GdW5jdGlvbk92ZXJyaWRlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9v
bHMvRnVuY3Rpb25PdmVycmlkZXMuY3BwCmluZGV4IGU4M2I2ZWUuLjRhYzI3YzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9GdW5jdGlvbk92ZXJyaWRlcy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcApAQCAt
MjE4LDEzICsyMTgsMTggQEAgc3RhdGljIFN0cmluZyBwYXJzZUNsYXVzZShjb25zdCBjaGFyKiBr
ZXl3b3JkLCBzaXplX3Qga2V5d29yZExlbmd0aCwgRklMRSogZmlsZSwKICAgICAgICAgICAgICAg
ICBGQUlMX1dJVEhfRVJST1IoU1lOVEFYX0VSUk9SLCAoIlVuZXhwZWN0ZWQgY2hhcmFjdGVycyBh
ZnRlciAnIiwga2V5d29yZCwgIicgY2xhdXNlIGVuZCBkZWxpbWl0ZXIgJyIsIGRlbGltaXRlciwg
Iic6XG4iLCBsaW5lLCAiXG4iKSk7CiAKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGxpbmUs
IHAgLSBsaW5lICsgMSk7Ci0gICAgICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwor
ICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAg
fQogICAgICAgICBidWlsZGVyLmFwcGVuZChsaW5lKTsKIAogICAgIH0gd2hpbGUgKChsaW5lID0g
ZmdldHMoYnVmZmVyLCBidWZmZXJTaXplLCBmaWxlKSkpOwogCi0gICAgRkFJTF9XSVRIX0VSUk9S
KFNZTlRBWF9FUlJPUiwgKCInIiwga2V5d29yZCwgIicgY2xhdXNlIGVuZCBkZWxpbWl0ZXIgJyIs
IGRlbGltaXRlciwgIicgbm90IGZvdW5kOlxuIiwgYnVpbGRlci50b1N0cmluZygpLCAiXG4iLCAi
QXJlIHlvdSBtaXNzaW5nIGEgJ30nIGJlZm9yZSB0aGUgZGVsaW1pdGVyP1xuIikpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgRkFJTF9XSVRIX0VS
Uk9SKFNZTlRBWF9FUlJPUiwgKCInIiwga2V5d29yZCwgIicgY2xhdXNlIGVuZCBkZWxpbWl0ZXIg
JyIsIGRlbGltaXRlciwgIicgbm90IGZvdW5kOlxuIiwgKnN0cmluZywgIlxuIiwgIkFyZSB5b3Ug
bWlzc2luZyBhICd9JyBiZWZvcmUgdGhlIGRlbGltaXRlcj9cbiIpKTsKKyAgICBlbHNlCisgICAg
ICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgRnVuY3Rpb25PdmVycmlkZXM6OnBhcnNlT3ZlcnJpZGVz
SW5GaWxlKGNvbnN0IGNoYXIqIGZpbGVOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUJCUVBsYW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUJCUVBsYW4uY3BwCmluZGV4IGE3ODIwYzkuLmZhMDAzNDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbi5jcHAKQEAgLTE1MCw4ICsxNTAsMTEgQEAgdm9pZCBC
QlFQbGFuOjpwcmVwYXJlKCkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRmFp
bGVkIGFsbG9jYXRpbmcgZW5vdWdoIHNwYWNlIGZvciAiKTsKICAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kTnVtYmVyKHNpemUpOwogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQod2hhdCk7Ci0g
ICAgICAgICAgICBmYWlsKGhvbGRMb2NrKG1fbG9jayksIGJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0g
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBmYWlsKGhvbGRMb2NrKG1fbG9j
ayksIFdURk1vdmUoKnN0cmluZykpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJy
L1lhcnJQYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXJzZXIuaApp
bmRleCBmMTZmMTFmLi44Yjc1OGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
eWFyci9ZYXJyUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBh
cnNlci5oCkBAIC0xMDMxLDggKzEwMzEsMTEgQEAgcHJpdmF0ZToKIAogICAgICAgICAgICAgd2hp
bGUgKCFhdEVuZE9mUGF0dGVybigpKSB7CiAgICAgICAgICAgICAgICAgY2ggPSB0cnlDb25zdW1l
SWRlbnRpZmllckNoYXJhY3RlcigpOwotICAgICAgICAgICAgICAgIGlmIChjaCA9PSAnPicpCi0g
ICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFN0cmluZz4oaWRlbnRpZmll
ckJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgaWYgKGNoID09ICc+Jykgewor
ICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBpZGVudGlmaWVyQnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8
U3RyaW5nPigqc3RyaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAg
ICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBpZiAoIWlzSWRlbnRpZmllclBhcnQoY2gpKQog
ICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTEwNzAsMjMgKzEwNzMsMzIgQEAgcHJpdmF0
ZToKICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBpZiAoZm91bmRFcXVhbHMp
IHsKLSAgICAgICAgICAgICAgICAgICAgYXV0byByZXN1bHQgPSB1bmljb2RlTWF0Y2hQcm9wZXJ0
eVZhbHVlKHVuaWNvZGVQcm9wZXJ0eU5hbWUsIGV4cHJlc3Npb25CdWlsZGVyLnRvU3RyaW5nKCkp
OworICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBleHByZXNzaW9uQnVpbGRl
ci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IHVu
aWNvZGVNYXRjaFByb3BlcnR5VmFsdWUodW5pY29kZVByb3BlcnR5TmFtZSwgKnN0cmluZyk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX2Vycm9yQ29kZSA9IEVycm9yQ29kZTo6SW52YWxpZFVuaWNvZGVQcm9wZXJ0eUV4
cHJlc3Npb247CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7CisgICAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZXhwcmVzc2lvbkJ1
aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IHVu
aWNvZGVNYXRjaFByb3BlcnR5KCpzdHJpbmcpOwogICAgICAgICAgICAgICAgICAgICBpZiAoIXJl
c3VsdCkKICAgICAgICAgICAgICAgICAgICAgICAgIG1fZXJyb3JDb2RlID0gRXJyb3JDb2RlOjpJ
bnZhbGlkVW5pY29kZVByb3BlcnR5RXhwcmVzc2lvbjsKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBhdXRvIHJl
c3VsdCA9IHVuaWNvZGVNYXRjaFByb3BlcnR5KGV4cHJlc3Npb25CdWlsZGVyLnRvU3RyaW5nKCkp
OwotICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgICAgICAgICBtX2Vy
cm9yQ29kZSA9IEVycm9yQ29kZTo6SW52YWxpZFVuaWNvZGVQcm9wZXJ0eUV4cHJlc3Npb247Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwog
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBjb25zdW1lKCk7CiAgICAgICAgICAgICBpZiAo
Y2ggPT0gJz0nKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFmb3VuZEVxdWFscykgewogICAgICAg
ICAgICAgICAgICAgICBmb3VuZEVxdWFscyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIHVu
aWNvZGVQcm9wZXJ0eU5hbWUgPSBleHByZXNzaW9uQnVpbGRlci50b1N0cmluZygpOworICAgICAg
ICAgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBleHByZXNzaW9uQnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICAgICAgICAgICAgICAgICAgdW5pY29kZVByb3BlcnR5TmFtZSA9ICpzdHJp
bmc7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIENS
QVNIKCk7CiAgICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb25CdWlsZGVyLmNsZWFyKCk7CiAg
ICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgICAgIGVycm9ycysrOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRl
eCAxZDJkMjBkLi42MjBhNWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0NiBAQAorMjAxOC0wNC0yNiAgSkYg
QmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3RyaW5nQnVpbGRlciBp
cyBmYWxsaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTg1MDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgU3RyaW5nQnVpbGRlciBjYW4gZmFpbCB3aGVuIGFsbG9jYXRpbmcgbWVtb3J5LiBTdHJpbmdC
dWlsZGVyIGlzCisgICAgICAgIG1vc3RseSB1c2VkIHdpdGggdXNlciBpbnB1dCwgd2hpY2ggb2Z0
ZW4gbWVhbnMgdGhhdCBqdXN0IGNyYXNoaW5nCisgICAgICAgIGlzbid0IHRoZSByaWdodCBvdXRj
b21lLiBPdXIgZnV6emVycyBvZnRlbiBlbmNvdW50ZXIgc3VjaCB0aGluZ3MKKyAgICAgICAgZm9y
IEphdmFTY3JpcHRDb3JlLCBhbmQgc28gZmFyIHdlJ3ZlIGFwcGxpZWQgcG9pbnQgc29sdXRpb25z
LiBObworICAgICAgICBtb3JlISBUaGlzIHBhdGNoIG1ha2VzIFN0cmluZ0J1aWxkZXIgZmFsbGli
bGUgYW5kIGVuZm9yY2VzIHRoaXMgaW4KKyAgICAgICAgdHdvIHdheXM6CisKKyAgICAgICAgICAt
IEVhY2ggc3RlcCBvZiBidWlsZGluZyBhIHN0cmluZyBjYW4gYmUgY2hlY2tlZCBmb3IgZmFpbHVy
ZQorICAgICAgICAgICAgYmVjYXVzZSB0aGV5IG5vdyByZXR1cm4gYSAiRmFsbGlibGU8VD4iLiBU
aGlzIGNhbiBiZSBpZ25vcmVkIGF0CisgICAgICAgICAgICBldmVyeSBzdGVwIQorICAgICAgICAg
IC0gVGhlIGZpbmFsIHN0ZXAgb2YgU3RyaW5nQnVpbGRlciwgZ2V0dGluZyB0aGUgc3RyaW5nIG91
dCwKKyAgICAgICAgICAgIHJldHVybnMgYSAiRmFsbGlibGU8U3RyaW5nPiIgd2hpY2ggaXMgbWFy
a2VkIHdpdGgKKyAgICAgICAgICAgIFdBUk5fVU5VU0VEX1JFVFVSTi4gRmFpbHVyZSBpcyBjb21t
dW5pY2F0ZWQgaWYgYW55IG9mIHRoZSBidWlsZGluZworICAgICAgICAgICAgc3RlcHMgZmFpbGVk
LgorCisgICAgICAgIERvaW5nIHRoaXMgdHdvLXN0ZXAgYXBwcm9hY2ggbWVhbnMgdGhhdCBjb2Rl
IGNhbiBjb250aW51ZQorICAgICAgICBvcGVyYXRpbmcgYXMgaXQgZGlkIGJlZm9yZSAoYXBwZW5k
IGEgYnVuY2ggYW5kIHRoZW4gZ2V0IGEgc3RyaW5nKQorICAgICAgICBhbmQgb25seSBuZWVkcyB0
byBjYXJlIGFib3V0IHRoZSBzdHJpbmcgcG90ZW50aWFsbHkgbm90IGJlaW5nCisgICAgICAgIGF2
YWlsYWJsZS4gVGhpcyBpcyBlbmZvcmNlZCBieSB0aGUgdHlwZSBzeXN0ZW06IEZhbGxpYmxlPFQ+
IGlzCisgICAgICAgIHN0ZDo6ZXhwZWN0ZWQ8VCwgU3RyaW5nQnVpbGRlcjo6RmFpbHVyZT4uCisK
KyAgICAgICAgVGhlIGZvbGxvd2luZyBpbnRlcm1lZGlhdGUgZnVuY3Rpb25zIGNhbiBub3cgYmUg
b2JzZXJ2ZWQgdG8gZmFpbAorICAgICAgICAob3IgaWdub3JlZCk6CisKKyAgICAgICAgICAtIGFw
cGVuZAorICAgICAgICAgIC0gYXBwZW5kVW5pbml0aWFsaXplZAorICAgICAgICAgIC0gYXBwZW5k
VW5pbml0aWFsaXplZFNsb3cKKyAgICAgICAgICAtIGFwcGVuZFF1b3RlZEpTT05TdHJpbmcgdXNl
ZCB0byByZXR1cm4gZmFsc2Ugb24gZmFpbHVyZSwgaXQgbm93IHJldHVybnMgRmFsbGlibGU8Pgor
ICAgICAgICAgIC0gcmVzaXplCisgICAgICAgICAgLSBhbGxvY2F0ZUJ1ZmZlcgorICAgICAgICAg
IC0gYWxsb2NhdGVCdWZmZXJVcENvbnZlcnQKKyAgICAgICAgICAtIHJlYWxsb2NhdGVCdWZmZXIK
KyAgICAgICAgICAtIHJlc2VydmVDYXBhY2l0eQorICAgICAgICAgIC0gc2hyaW5rVG9GaXQKKyAg
ICAgICAgICAtIG9wZXJhdG9yW10KKyAgICAgICAgICAtIGNoYXJhY3RlcnM4CisgICAgICAgICAg
LSBjaGFyYWN0ZXJzMTYKKworICAgICAgICBGYWlsdXJlIGluIHRoZXNlIG1ldGhvZHMgY29tZXMg
aW4gdHdvIGZvcm1zOiBvdXQgb2YgbWVtb3J5LCBhbmQKKyAgICAgICAgd291bGQgb3ZlcmZsb3cu
IFdoZW4gYW4gb3BlcmF0aW9uIHdvdWxkIG92ZXJmbG93IGl0IGxlYXZlcyB0aGUKKyAgICAgICAg
U3RyaW5nQnVpbGRlciBpbiBpdHMgcHJldmlvdXMgc3RhdGUsIGFsbG93aW5nIHVzZXJzIHRvIHJl
c3VtZQorICAgICAgICB3b3JrLCBrZWVwIHRoZSBzdHJpbmcgYXMgaXQgZXhpc3RlZCBiZWZvcmUg
ZmFpbHVyZS4gV2hlbiB3ZSBqdXN0CisgICAgICAgIGZhaWwgYWxsb2NhdGluZyBpdCBtZWFucyB3
ZSBleHBlY3RlZCB0byBzdWNjZWVkLCBzbyBjbGVhcmluZyB0aGUKKyAgICAgICAgU3RyaW5nQnVp
bGRlciBpcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8uCisKKyAgICAgICAgU3VwcG9ydGluZyBmYWls
dXJlIGluIFN0cmluZ0J1aWxkZXIgcmVxdWlyZWQgYWRkaW5nICJ0cnkiIHZhcmlhbnRzCisgICAg
ICAgIG9mIHNvbWUgbWV0aG9kcyBpbiBTdHJpbmdJbXBsLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
dXBkYXRlcyBhbGwgV2ViS2l0IGNvZGUgd2hpY2ggdXNlcyBTdHJpbmdCdWlsZGVyLiBJdAorICAg
ICAgICBsZWF2ZXMgYWxsIGludGVybWVkaWF0ZSBmdW5jdGlvbiB1c2FnZSBhbG9uZSAoY29kZSBz
dGlsbCBhcHBlbmRzCisgICAgICAgIGJhY2stdG8tYmFjaywgYmxpc3NmdWxseSB1bmF3YXJlIG9m
IGZhaWx1cmUpLCBhbmQgb25seSBjaGVja3MgZm9yCisgICAgICAgIGZhaWx1cmUgd2hlbiByZXRy
aWV2aW5nIHRoZSBzdHJpbmcuIFRoZSBwYXR0ZXJuIHVzZWQgaXMgdXN1YWxseToKKworICAgICAg
ICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGZv
bygqc3RyaW5nKTsgLy8gVXNlIHN0cmluZyBhcyBiZWZvcmUuLi4KKyAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICBDUkFTSCgpOworCisgICAgICAgIFRoaXMgbWFrZXMgZmFpbHVyZSBleHRyZW1l
bHkgZXhwbGljaXQuIFRoZXJlJ3Mgbm8gdHJ1ZSBiZWhhdmlvcgorICAgICAgICBjaGFuZ2U6IHdo
YXQgd291bGQgaGF2ZSBjcmFzaGVkIHdoZW4gYXBwZW5kaW5nIG5vdyBjcmFzaGVzIHdoZW4KKyAg
ICAgICAgcmV0cmlldmluZyB0aGUgc3RyaW5nLiBQdWxsaW5nIENSQVNIKCkgb3V0IHdpbGwgZ2l2
ZSBzbGlnaHRseQorICAgICAgICBiZXR0ZXIgY3Jhc2ggc2lnbmF0dXJlcywgYW5kIGl0IG1ha2Vz
IHRoZSBjb2RlIHZlcnkgb2J2aW91cyBhYm91dAorICAgICAgICBmYWlsdXJlLiBJIHB1cnBvc2Vm
dWxseSBkb24ndCAiZml4IiBhbnkgZmFpbHVyZSBiZWNhdXNlIHRoZXNlCisgICAgICAgIHNob3Vs
ZCBiZSBkb25lIGluIGEgdGFyZ2V0ZWQgbWFubmVyIHdpdGggcmVwcm8gdGVzdHMgd2hlbmV2ZXIK
KyAgICAgICAgcG9zc2libGUuIEknbSB2ZXJ5IHdhcnkgb2YgaW50cm9kdWNpbmcgYnVncyEKKwor
ICAgICAgICBXaGVuIHNvbWVvbmUgaW5ldml0YWJseSBibGFtZXMgY29kZSBiYWNrIHRvIHRoaXMg
Y29tbWl0IChiZWNhdXNlCisgICAgICAgIGhleSB0aGUgY29kZSBpcyBwcmV0dHkgdWdseSwgYW5k
IHlvdSBtaWdodCBiZSBzdXJwcmlzZWQgYXQgc2VlaW5nCisgICAgICAgIENSQVNIKCkgaW4geW91
ciBiZWF1dGlmdWwgY29kZSkgdGhlcmUgYXJlIGEgZmV3IHRoaW5ncyB3aGljaCB0aGV5CisgICAg
ICAgIGNhbiBkbzoKKworICAgICAgICAgIDEuIENoYW5nZSB0aGUgZWxzZSBjbGF1c2UgdG8gaGFu
ZGxlIGZhaWx1cmUgcmF0aGVyIHRoYW4gY3Jhc2guIEluIEphdmFTY3JpcHRDb3JlIHRoYXQncyB1
c3VhbGx5IHRocm93T3V0T2ZNZW1vcnlFcnJvci4KKyAgICAgICAgICAyLiBDaGFuZ2UgdGhlIGNv
ZGUgdG8gZGlyZWN0bHkgdXNlIEZhbGxpYmxlJ3MgLnZhbHVlKCkgbWVtYmVyLCBhbmQgbGV0ICp0
aGF0KiBjcmFzaCBpbnN0ZWFkLiBUaGlzIG1ha2VzIHRoZSBjcmFzaCBub24tb2J2aW91cyBpbiB0
aGUgY29kZSwgd2hpY2ggbWlnaHQgYmUgd2hhdCB5b3Ugd2FudC4KKyAgICAgICAgICAzLiBDaGFu
Z2UgdGhlIGNvZGUgdG8gZGV0ZWN0IGZhaWx1cmUgYXQgdGhlIGVhcmxpZXN0IHN0ZXAgb2Ygc3Ry
aW5nIGJ1aWxkaW5nIChsaWtlbHkgdGhlIGFwcGVuZCBjYWxscyksIGFuZCBkbyBzb21ldGhpbmcg
c2Vuc2libGUgdGhlcmUuCisKKyAgICAgICAgSW4gbm8gY2lyY3Vtc3RhbmNlIHNob3VsZCBjb2Rl
IGp1c3QgZGVyZWZlcmVuY2UgYSBGYWxsaWJsZSB3aXRob3V0CisgICAgICAgIGtub3dpbmcgdGhh
dCBpdHMgc3RhdGUgaG9sZHMgYSB2YWxpZCBzdHJpbmcuIFRoaXMgY29kZSBpcworICAgICAgICB1
bmRlZmluZWQgYmVoYXZpb3IgYWNjb3JkaW5nIHRvIHRoZSBzdGQ6OmV4cGVjdGVkIHNwZWNpZmlj
YXRpb24KKyAgICAgICAgKHdoZXRoZXIgb3VyIGltcGxlbWVudGF0aW9uIHNob3VsZCBkbyBzb21l
dGhpbmcgZWxzZSBpcyBvdXQgb2YKKyAgICAgICAgc2NvcGUgZm9yIHRoaXMgcGF0Y2gpOgorCisg
ICAgICAgICAgZm9vKCpidWlsZGVyLnRvU3RyaW5nKCkpOyAvLyBVQiB3aGVuIGFsbG9jYXRpb24g
ZmFpbHMuCisKKyAgICAgICAgKiB3dGYvQXNzZXJ0aW9ucy5jcHA6CisgICAgICAgICogd3RmL0Rh
dGVNYXRoLmNwcDoKKyAgICAgICAgKFdURjo6bWFrZVJGQzI4MjJEYXRlU3RyaW5nKToKKyAgICAg
ICAgKiB3dGYvSlNPTlZhbHVlcy5jcHA6CisgICAgICAgIChXVEY6OkpTT05JbXBsOjpWYWx1ZTo6
dG9KU09OU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiB3dGYvTG9nZ2VyLmg6CisgICAgICAgIChX
VEY6OkxvZ0FyZ3VtZW50Ojp0b1N0cmluZyk6CisgICAgICAgIChXVEY6OkxvZ0FyZ3VtZW50PExv
Z2dlcjo6TG9nU2l0ZUlkZW50aWZpZXI+Ojp0b1N0cmluZyk6CisgICAgICAgICogd3RmL01lZGlh
VGltZS5jcHA6CisgICAgICAgIChXVEY6Ok1lZGlhVGltZTo6dG9TdHJpbmcgY29uc3QpOgorICAg
ICAgICAqIHd0Zi9VVUlELmNwcDoKKyAgICAgICAgKFdURjo6Y3JlYXRlQ2Fub25pY2FsVVVJRFN0
cmluZyk6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nQnVpbGRlci5jcHA6CisgICAgICAgIChX
VEY6OlN0cmluZ0J1aWxkZXI6OndvdWxkT3ZlcmZsb3cpOgorICAgICAgICAoV1RGOjpTdHJpbmdC
dWlsZGVyOjpvdXRPZk1lbW9yeSk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OnJlc2l6
ZSk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OmFsbG9jYXRlQnVmZmVyKToKKyAgICAg
ICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6YWxsb2NhdGVCdWZmZXJVcENvbnZlcnQpOgorICAgICAg
ICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpyZWFsbG9jYXRlQnVmZmVyPExDaGFyPik6CisgICAgICAg
IChXVEY6OlN0cmluZ0J1aWxkZXI6OnJlYWxsb2NhdGVCdWZmZXI8VUNoYXI+KToKKyAgICAgICAg
KFdURjo6U3RyaW5nQnVpbGRlcjo6cmVzZXJ2ZUNhcGFjaXR5KToKKyAgICAgICAgKFdURjo6U3Ry
aW5nQnVpbGRlcjo6YXBwZW5kKToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6YXBwZW5k
TnVtYmVyKToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6YXBwZW5kRUNNQVNjcmlwdE51
bWJlcik6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OmFwcGVuZEZpeGVkV2lkdGhOdW1i
ZXIpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpzaHJpbmtUb0ZpdCk6CisgICAgICAg
ICogd3RmL3RleHQvU3RyaW5nQnVpbGRlci5oOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVy
OjpTdHJpbmdCdWlsZGVyKToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6YXBwZW5kKToK
KyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6YXBwZW5kTGl0ZXJhbCk6CisgICAgICAgIChX
VEY6OlN0cmluZ0J1aWxkZXI6OnRvU3RyaW5nKToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRl
cjo6dG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5IGNvbnN0KToKKyAgICAgICAgKFdURjo6U3RyaW5n
QnVpbGRlcjo6dG9BdG9taWNTdHJpbmcgY29uc3QpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWls
ZGVyOjppczhCaXQgY29uc3QpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpmYWlsZWQg
Y29uc3QpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpvcGVyYXRvcltdIGNvbnN0KToK
KyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6IGNvbnN0KToKKyAgICAgICAgKFdURjo6U3Ry
aW5nQnVpbGRlcjo6Y2xlYXIpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpzd2FwKToK
KyAgICAgICAgKFdURjo6ZXF1YWwpOgorICAgICAgICAoV1RGOjpJbnRlZ2VyVG9TdHJpbmdDb252
ZXJzaW9uVHJhaXQ8U3RyaW5nQnVpbGRlcj46OmZsdXNoKToKKyAgICAgICAgKiB3dGYvdGV4dC9T
dHJpbmdCdWlsZGVySlNPTi5jcHA6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OmFwcGVu
ZFF1b3RlZEpTT05TdHJpbmcpOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwOgor
ICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjpyZWFsbG9jYXRlSW50ZXJuYWwpOgorICAgICAgICAo
V1RGOjpTdHJpbmdJbXBsOjpyZWFsbG9jYXRlKToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6
dHJ5UmVhbGxvY2F0ZSk6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nSW1wbC5oOgorICAgICAg
ICAoV1RGOjpTdHJpbmdJbXBsOjp0cnlDcmVhdGVTdWJzdHJpbmdTaGFyaW5nSW1wbCk6CisgICAg
ICAgIChXVEY6OlN0cmluZ0ltcGw6OmNyZWF0ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKToKKyAgICAg
ICAgKiB3dGYvdGV4dC9UZXh0U3RyZWFtLmNwcDoKKyAgICAgICAgKFdURjo6VGV4dFN0cmVhbTo6
cmVsZWFzZSk6CisKIDIwMTgtMDQtMjUgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgog
CiAgICAgICAgIEdhcmRlbmluZzogU3BlY3VsYXRpdmUgYnVpbGQgZml4IGZvciBXaW5kb3dzIDMy
LWJpdCB0byBjb21wZW5zYXRlIGZvciBNU1ZDJ3MgbGFjayBvZiBzbWFydHMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlv
bnMuY3BwCmluZGV4IGUxNWEwOTIuLmQ3YzgzMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L0Fzc2VydGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwCkBAIC0z
NDIsOSArMzQyLDExIEBAIHZvaWQgV1RGTG9nZ2luZ0FjY3VtdWxhdG9yOjpyZXNldEFjY3VtdWxh
dGVkTG9ncygpCiBTdHJpbmcgV1RGTG9nZ2luZ0FjY3VtdWxhdG9yOjpnZXRBbmRSZXNldEFjY3Vt
dWxhdGVkTG9ncygpCiB7CiAgICAgTG9ja2VyPExvY2s+IGxvY2tlcihhY2N1bXVsYXRvckxvY2sp
OwotICAgIFN0cmluZyByZXN1bHQgPSBsb2dnaW5nQWNjdW11bGF0b3IudG9TdHJpbmcoKTsKLSAg
ICBsb2dnaW5nQWNjdW11bGF0b3IuY2xlYXIoKTsKLSAgICByZXR1cm4gcmVzdWx0OworICAgIGlm
IChhdXRvIHJlc3VsdCA9IGxvZ2dpbmdBY2N1bXVsYXRvci50b1N0cmluZygpKSB7CisgICAgICAg
IGxvZ2dpbmdBY2N1bXVsYXRvci5jbGVhcigpOworICAgICAgICByZXR1cm4gKnJlc3VsdDsKKyAg
ICB9CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFdURkxvZ2dpbmdBY2N1bXVsYXRvciYgbG9n
Z2luZ0FjY3VtdWxhdG9yKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAppbmRleCA2ZGI5MmViLi5hODQyNWYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5jcHAKKysrIGIvU291cmNlL1dURi93
dGYvRGF0ZU1hdGguY3BwCkBAIC0xMTg3LDcgKzExODcsOSBAQCBTdHJpbmcgbWFrZVJGQzI4MjJE
YXRlU3RyaW5nKHVuc2lnbmVkIGRheU9mV2VlaywgdW5zaWduZWQgZGF5LCB1bnNpZ25lZCBtb250
aCwgdQogICAgIGFwcGVuZFR3b0RpZ2l0TnVtYmVyKHN0cmluZ0J1aWxkZXIsIGFic29sdXRlVVRD
T2Zmc2V0IC8gNjApOwogICAgIGFwcGVuZFR3b0RpZ2l0TnVtYmVyKHN0cmluZ0J1aWxkZXIsIGFi
c29sdXRlVVRDT2Zmc2V0ICUgNjApOwogCi0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi9KU09OVmFsdWVzLmNwcAppbmRleCBiZGU0NGFiLi4wOGM2MjI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9KU09O
VmFsdWVzLmNwcApAQCAtMzI3LDggKzMyNywxMSBAQCBib29sIGRlY29kZVN0cmluZyhjb25zdCBV
Q2hhciogc3RhcnQsIGNvbnN0IFVDaGFyKiBlbmQsIFN0cmluZyYgb3V0cHV0KQogICAgIGlmICgh
ZGVjb2RlU3RyaW5nKHN0YXJ0LCBlbmQsIGJ1ZmZlcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIG91dHB1dCA9IGJ1ZmZlci50b1N0cmluZygpOwotICAgIHJldHVybiB0cnVlOworICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1ZmZlci50b1N0cmluZygpKSB7CisgICAgICAgIG91dHB1dCA9
ICpzdHJpbmc7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7
CiB9CiAKIFJlZlB0cjxKU09OOjpWYWx1ZT4gYnVpbGRWYWx1ZShjb25zdCBVQ2hhciogc3RhcnQs
IGNvbnN0IFVDaGFyKiBlbmQsIGNvbnN0IFVDaGFyKiogdmFsdWVUb2tlbkVuZCwgaW50IGRlcHRo
KQpAQCAtNTUzLDcgKzU1Niw5IEBAIFN0cmluZyBWYWx1ZTo6dG9KU09OU3RyaW5nKCkgY29uc3QK
ICAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKICAgICByZXN1bHQucmVzZXJ2ZUNhcGFjaXR5KDUx
Mik7CiAgICAgd3JpdGVKU09OKHJlc3VsdCk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIFZhbHVlOjphc0Jvb2xlYW4oYm9v
bCYgb3V0cHV0KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTG9nZ2VyLmggYi9T
b3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaAppbmRleCA2YjAxYjU4Li40OGI4ZDgyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaApA
QCAtNDYsNyArNDYsMTIgQEAgc3RydWN0IExvZ0FyZ3VtZW50IHsKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBVID0gVD4gc3RhdGljIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfc2FtZTxV
LCBkb3VibGU+Ojp2YWx1ZSwgU3RyaW5nPjo6dHlwZSB0b1N0cmluZyhkb3VibGUgYXJndW1lbnQp
IHsgcmV0dXJuIFN0cmluZzo6bnVtYmVyKGFyZ3VtZW50KTsgfQogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFUgPSBUPiBzdGF0aWMgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19zYW1lPHR5
cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxVPjo6dHlwZSwgQXRvbWljU3RyaW5nPjo6dmFs
dWUsIFN0cmluZz46OnR5cGUgdG9TdHJpbmcoQXRvbWljU3RyaW5nIGFyZ3VtZW50KSB7IHJldHVy
biBhcmd1bWVudC5zdHJpbmcoKTsgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFUgPSBUPiBzdGF0
aWMgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19zYW1lPHR5cGVuYW1lIHN0ZDo6cmVt
b3ZlX3JlZmVyZW5jZTxVPjo6dHlwZSwgU3RyaW5nPjo6dmFsdWUsIFN0cmluZz46OnR5cGUgdG9T
dHJpbmcoU3RyaW5nIGFyZ3VtZW50KSB7IHJldHVybiBhcmd1bWVudDsgfQotICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFUgPSBUPiBzdGF0aWMgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19z
YW1lPHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxVPjo6dHlwZSwgU3RyaW5nQnVpbGRl
cio+Ojp2YWx1ZSwgU3RyaW5nPjo6dHlwZSB0b1N0cmluZyhTdHJpbmdCdWlsZGVyKiBhcmd1bWVu
dCkgeyByZXR1cm4gYXJndW1lbnQtPnRvU3RyaW5nKCk7IH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBVID0gVD4gc3RhdGljIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfc2FtZTx0eXBl
bmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8VT46OnR5cGUsIFN0cmluZ0J1aWxkZXIqPjo6dmFs
dWUsIFN0cmluZz46OnR5cGUgdG9TdHJpbmcoU3RyaW5nQnVpbGRlciogYXJndW1lbnQpCisgICAg
eworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBhcmd1bWVudC0+dG9TdHJpbmcoKSkKKyAgICAg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOworICAgIH0KICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBVID0gVD4gc3RhdGljIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6
aXNfc2FtZTxVLCBjb25zdCBjaGFyKj46OnZhbHVlLCBTdHJpbmc+Ojp0eXBlIHRvU3RyaW5nKGNv
bnN0IGNoYXIqIGFyZ3VtZW50KSB7IHJldHVybiBTdHJpbmcoYXJndW1lbnQpOyB9CiAgICAgdGVt
cGxhdGU8c2l6ZV90IGxlbmd0aD4gc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBjaGFyICgm
YXJndW1lbnQpW2xlbmd0aF0pIHsgcmV0dXJuIFN0cmluZyhhcmd1bWVudCk7IH0KIH07CkBAIC0y
NzQsNyArMjc5LDkgQEAgc3RydWN0IExvZ0FyZ3VtZW50PExvZ2dlcjo6TG9nU2l0ZUlkZW50aWZp
ZXI+IHsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJygnKTsKICAgICAgICAgYXBwZW5kVW5zaWdu
ZWQ2NEFzSGV4KHZhbHVlLm9iamVjdFB0ciwgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiKSAiKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAg
ICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvTWVkaWFUaW1lLmNwcCBiL1NvdXJjZS9XVEYvd3RmL01lZGlhVGlt
ZS5jcHAKaW5kZXggMDMwNTBiNS4uMWY3N2I0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
TWVkaWFUaW1lLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZWRpYVRpbWUuY3BwCkBAIC01NzQs
NyArNTc0LDkgQEAgU3RyaW5nIE1lZGlhVGltZTo6dG9TdHJpbmcoKSBjb25zdAogICAgIH0KICAg
ICBidWlsZGVyLmFwcGVuZE51bWJlcih0b0RvdWJsZSgpKTsKICAgICBidWlsZGVyLmFwcGVuZCgn
fScpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBTdHJpbmcgTWVkaWFUaW1lOjp0b0pTT05TdHJpbmcoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvVVVJRC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9VVUlELmNwcApp
bmRleCBmYjVmZTViLi5iNTk4ZjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9VVUlELmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VVUlELmNwcApAQCAtNTYsNyArNTYsOSBAQCBTdHJpbmcg
Y3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpCiAgICAgYnVpbGRlci5hcHBlbmQoJy0nKTsKICAg
ICBhcHBlbmRVbnNpZ25lZEFzSGV4Rml4ZWRTaXplKHJhbmRvbURhdGFbMl0gJiAweDAwMDBmZmZm
LCBidWlsZGVyLCA0LCBMb3dlcmNhc2UpOwogICAgIGFwcGVuZFVuc2lnbmVkQXNIZXhGaXhlZFNp
emUocmFuZG9tRGF0YVszXSwgYnVpbGRlciwgOCwgTG93ZXJjYXNlKTsKLSAgICByZXR1cm4gYnVp
bGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIu
Y3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmNwcAppbmRleCA4NWIwYzIx
Li4yNTg0YzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlci5jcHAKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEzLCAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtNjIsMjYgKzYyLDQ0
IEBAIHZvaWQgU3RyaW5nQnVpbGRlcjo6cmVpZnlTdHJpbmcoKSBjb25zdAogICAgICAgICBtX3N0
cmluZyA9IFN0cmluZ0ltcGw6OmNyZWF0ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKCptX2J1ZmZlciwg
MCwgbV9sZW5ndGgpOwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OnJlc2l6ZSh1bnNpZ25lZCBu
ZXdTaXplKQorVW5leHBlY3RlZDxTdHJpbmdCdWlsZGVyOjpGYWlsdXJlPiBTdHJpbmdCdWlsZGVy
Ojp3b3VsZE92ZXJmbG93KCkKK3sKKyAgICBtX2ZhaWxlZCA9IHRydWU7CisgICAgcmV0dXJuIG1h
a2VVbmV4cGVjdGVkKEZhaWx1cmU6OldvdWxkT3ZlcmZsb3cpOworfQorCitVbmV4cGVjdGVkPFN0
cmluZ0J1aWxkZXI6OkZhaWx1cmU+IFN0cmluZ0J1aWxkZXI6Om91dE9mTWVtb3J5KCkKK3sKKyAg
ICBjbGVhcigpOworICAgIG1fZmFpbGVkID0gdHJ1ZTsKKyAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQoRmFpbHVyZTo6T3V0T2ZNZW1vcnkpOworfQorCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+
IFN0cmluZ0J1aWxkZXI6OnJlc2l6ZSh1bnNpZ25lZCBuZXdTaXplKQogewogICAgIC8vIENoZWNr
IG5ld1NpemUgPCBtX2xlbmd0aCwgaGVuY2UgbV9sZW5ndGggPiAwLgogICAgIEFTU0VSVChuZXdT
aXplIDw9IG1fbGVuZ3RoKTsKICAgICBpZiAobmV3U2l6ZSA9PSBtX2xlbmd0aCkKLSAgICAgICAg
cmV0dXJuOworICAgICAgICByZXR1cm4geyB9OwogICAgIEFTU0VSVChtX2xlbmd0aCk7CiAKICAg
ICAvLyBJZiB0aGVyZSBpcyBhIGJ1ZmZlciwgd2Ugb25seSBuZWVkIHRvIGR1cGxpY2F0ZSBpdCBp
ZiBpdCBoYXMgbW9yZSB0aGFuIG9uZSByZWYuCiAgICAgaWYgKG1fYnVmZmVyKSB7CiAgICAgICAg
IG1fc3RyaW5nID0gU3RyaW5nKCk7IC8vIENsZWFyIHRoZSBzdHJpbmcgdG8gcmVtb3ZlIHRoZSBy
ZWZlcmVuY2UgdG8gbV9idWZmZXIgaWYgYW55IGJlZm9yZSBjaGVja2luZyB0aGUgcmVmZXJlbmNl
IGNvdW50IG9mIG1fYnVmZmVyLgogICAgICAgICBpZiAoIW1fYnVmZmVyLT5oYXNPbmVSZWYoKSkg
ewotICAgICAgICAgICAgaWYgKG1fYnVmZmVyLT5pczhCaXQoKSkKLSAgICAgICAgICAgICAgICBh
bGxvY2F0ZUJ1ZmZlcihtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKSwgbV9idWZmZXItPmxlbmd0aCgp
KTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBhbGxvY2F0ZUJ1ZmZlcihtX2J1
ZmZlci0+Y2hhcmFjdGVyczE2KCksIG1fYnVmZmVyLT5sZW5ndGgoKSk7CisgICAgICAgICAgICBp
ZiAobV9idWZmZXItPmlzOEJpdCgpKSB7CisgICAgICAgICAgICAgICAgYXV0byBhbGxvY2F0ZWQg
PSBhbGxvY2F0ZUJ1ZmZlcihtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKSwgbV9idWZmZXItPmxlbmd0
aCgpKTsKKyAgICAgICAgICAgICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGFsbG9jYXRlZDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg
ICAgYXV0byBhbGxvY2F0ZWQgPSBhbGxvY2F0ZUJ1ZmZlcihtX2J1ZmZlci0+Y2hhcmFjdGVyczE2
KCksIG1fYnVmZmVyLT5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgaWYgKCFhbGxvY2F0ZWQp
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBhbGxvY2F0ZWQ7CisgICAgICAgICAgICB9CiAg
ICAgICAgIH0KICAgICAgICAgbV9sZW5ndGggPSBuZXdTaXplOwogICAgICAgICBBU1NFUlQobV9i
dWZmZXItPmxlbmd0aCgpID49IG1fbGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICBy
ZXR1cm4geyB9OwogICAgIH0KIAogICAgIC8vIFNpbmNlIG1fbGVuZ3RoICYmICFtX2J1ZmZlciwg
dGhlIHN0cmluZyBtdXN0IGJlIHZhbGlkIGluIG1fc3RyaW5nLCBhbmQgbV9zdHJpbmcubGVuZ3Ro
KCkgPiAwLgpAQCAtODksNDcgKzEwNyw2MCBAQCB2b2lkIFN0cmluZ0J1aWxkZXI6OnJlc2l6ZSh1
bnNpZ25lZCBuZXdTaXplKQogICAgIEFTU0VSVChtX2xlbmd0aCA9PSBtX3N0cmluZy5sZW5ndGgo
KSk7CiAgICAgQVNTRVJUKG5ld1NpemUgPCBtX3N0cmluZy5sZW5ndGgoKSk7CiAgICAgbV9sZW5n
dGggPSBuZXdTaXplOwotICAgIG1fc3RyaW5nID0gU3RyaW5nSW1wbDo6Y3JlYXRlU3Vic3RyaW5n
U2hhcmluZ0ltcGwoKm1fc3RyaW5nLmltcGwoKSwgMCwgbmV3U2l6ZSk7CisgICAgaWYgKGF1dG8g
Y3JlYXRlZCA9IFN0cmluZ0ltcGw6OnRyeUNyZWF0ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKCptX3N0
cmluZy5pbXBsKCksIDAsIG5ld1NpemUpKSB7CisgICAgICAgIG1fc3RyaW5nID0gKmNyZWF0ZWQ7
CisgICAgICAgIHJldHVybiB7IH07CisgICAgfSBlbHNlCisgICAgICAgIHJldHVybiBvdXRPZk1l
bW9yeSgpOwogfQogCiAvLyBBbGxvY2F0ZSBhIG5ldyA4IGJpdCBidWZmZXIsIGNvcHlpbmcgaW4g
Y3VycmVudENoYXJhY3RlcnMgKHRoZXNlIG1heSBjb21lIGZyb20gZWl0aGVyIG1fc3RyaW5nCiAv
LyBvciBtX2J1ZmZlciwgbmVpdGhlciB3aWxsIGJlIHJlYXNzaWduZWQgdW50aWwgdGhlIGNvcHkg
aGFzIGNvbXBsZXRlZCkuCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFsbG9jYXRlQnVmZmVyKGNvbnN0
IExDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCitTdHJp
bmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFsbG9jYXRlQnVmZmVyKGNvbnN0
IExDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCiB7CiAg
ICAgQVNTRVJUKG1faXM4Qml0KTsKICAgICAvLyBDb3B5IHRoZSBleGlzdGluZyBkYXRhIGludG8g
YSBuZXcgYnVmZmVyLCBzZXQgcmVzdWx0IHRvIHBvaW50IHRvIHRoZSBlbmQgb2YgdGhlIGV4aXN0
aW5nIGRhdGEuCi0gICAgYXV0byBidWZmZXIgPSBTdHJpbmdJbXBsOjpjcmVhdGVVbmluaXRpYWxp
emVkKHJlcXVpcmVkTGVuZ3RoLCBtX2J1ZmZlckNoYXJhY3RlcnM4KTsKKyAgICBhdXRvIGJ1ZmZl
ciA9IFN0cmluZ0ltcGw6OnRyeUNyZWF0ZVVuaW5pdGlhbGl6ZWQocmVxdWlyZWRMZW5ndGgsIG1f
YnVmZmVyQ2hhcmFjdGVyczgpOworICAgIGlmICghYnVmZmVyKQorICAgICAgICByZXR1cm4gb3V0
T2ZNZW1vcnkoKTsKICAgICBtZW1jcHkobV9idWZmZXJDaGFyYWN0ZXJzOCwgY3VycmVudENoYXJh
Y3RlcnMsIHN0YXRpY19jYXN0PHNpemVfdD4obV9sZW5ndGgpICogc2l6ZW9mKExDaGFyKSk7IC8v
IFRoaXMgY2FuJ3Qgb3ZlcmZsb3cuCiAgICAgCiAgICAgLy8gVXBkYXRlIHRoZSBidWlsZGVyIHN0
YXRlLgogICAgIG1fYnVmZmVyID0gV1RGTW92ZShidWZmZXIpOwogICAgIG1fc3RyaW5nID0gU3Ry
aW5nKCk7CiAgICAgQVNTRVJUKG1fYnVmZmVyLT5sZW5ndGgoKSA9PSByZXF1aXJlZExlbmd0aCk7
CisgICAgcmV0dXJuIHsgfTsKIH0KIAogLy8gQWxsb2NhdGUgYSBuZXcgMTYgYml0IGJ1ZmZlciwg
Y29weWluZyBpbiBjdXJyZW50Q2hhcmFjdGVycyAodGhlc2UgbWF5IGNvbWUgZnJvbSBlaXRoZXIg
bV9zdHJpbmcKIC8vIG9yIG1fYnVmZmVyLCAgbmVpdGhlciB3aWxsIGJlIHJlYXNzaWduZWQgdW50
aWwgdGhlIGNvcHkgaGFzIGNvbXBsZXRlZCkuCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFsbG9jYXRl
QnVmZmVyKGNvbnN0IFVDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVxdWlyZWRM
ZW5ndGgpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFsbG9jYXRl
QnVmZmVyKGNvbnN0IFVDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVxdWlyZWRM
ZW5ndGgpCiB7CiAgICAgQVNTRVJUKCFtX2lzOEJpdCk7CiAgICAgLy8gQ29weSB0aGUgZXhpc3Rp
bmcgZGF0YSBpbnRvIGEgbmV3IGJ1ZmZlciwgc2V0IHJlc3VsdCB0byBwb2ludCB0byB0aGUgZW5k
IG9mIHRoZSBleGlzdGluZyBkYXRhLgotICAgIGF1dG8gYnVmZmVyID0gU3RyaW5nSW1wbDo6Y3Jl
YXRlVW5pbml0aWFsaXplZChyZXF1aXJlZExlbmd0aCwgbV9idWZmZXJDaGFyYWN0ZXJzMTYpOwor
ICAgIGF1dG8gYnVmZmVyID0gU3RyaW5nSW1wbDo6dHJ5Q3JlYXRlVW5pbml0aWFsaXplZChyZXF1
aXJlZExlbmd0aCwgbV9idWZmZXJDaGFyYWN0ZXJzMTYpOworICAgIGlmICghYnVmZmVyKQorICAg
ICAgICByZXR1cm4gb3V0T2ZNZW1vcnkoKTsKICAgICBtZW1jcHkobV9idWZmZXJDaGFyYWN0ZXJz
MTYsIGN1cnJlbnRDaGFyYWN0ZXJzLCBzdGF0aWNfY2FzdDxzaXplX3Q+KG1fbGVuZ3RoKSAqIHNp
emVvZihVQ2hhcikpOyAvLyBUaGlzIGNhbid0IG92ZXJmbG93LgogICAgIAogICAgIC8vIFVwZGF0
ZSB0aGUgYnVpbGRlciBzdGF0ZS4KICAgICBtX2J1ZmZlciA9IFdURk1vdmUoYnVmZmVyKTsKICAg
ICBtX3N0cmluZyA9IFN0cmluZygpOwogICAgIEFTU0VSVChtX2J1ZmZlci0+bGVuZ3RoKCkgPT0g
cmVxdWlyZWRMZW5ndGgpOworICAgIHJldHVybiB7IH07CiB9CiAKIC8vIEFsbG9jYXRlIGEgbmV3
IDE2IGJpdCBidWZmZXIsIGNvcHlpbmcgaW4gY3VycmVudENoYXJhY3RlcnMgKHdoaWNoIGlzIDgg
Yml0IGFuZCBtYXkgY29tZQogLy8gZnJvbSBlaXRoZXIgbV9zdHJpbmcgb3IgbV9idWZmZXIsIG5l
aXRoZXIgd2lsbCBiZSByZWFzc2lnbmVkIHVudGlsIHRoZSBjb3B5IGhhcyBjb21wbGV0ZWQpLgot
dm9pZCBTdHJpbmdCdWlsZGVyOjphbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChjb25zdCBMQ2hhciog
Y3VycmVudENoYXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQorU3RyaW5nQnVpbGRl
cjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChjb25z
dCBMQ2hhciogY3VycmVudENoYXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQogewog
ICAgIEFTU0VSVChtX2lzOEJpdCk7CiAgICAgQVNTRVJUKHJlcXVpcmVkTGVuZ3RoID49IG1fbGVu
Z3RoKTsKICAgICAvLyBDb3B5IHRoZSBleGlzdGluZyBkYXRhIGludG8gYSBuZXcgYnVmZmVyLCBz
ZXQgcmVzdWx0IHRvIHBvaW50IHRvIHRoZSBlbmQgb2YgdGhlIGV4aXN0aW5nIGRhdGEuCi0gICAg
YXV0byBidWZmZXIgPSBTdHJpbmdJbXBsOjpjcmVhdGVVbmluaXRpYWxpemVkKHJlcXVpcmVkTGVu
Z3RoLCBtX2J1ZmZlckNoYXJhY3RlcnMxNik7CisgICAgYXV0byBidWZmZXIgPSBTdHJpbmdJbXBs
Ojp0cnlDcmVhdGVVbmluaXRpYWxpemVkKHJlcXVpcmVkTGVuZ3RoLCBtX2J1ZmZlckNoYXJhY3Rl
cnMxNik7CisgICAgaWYgKCFidWZmZXIpCisgICAgICAgIHJldHVybiBvdXRPZk1lbW9yeSgpOwor
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fbGVuZ3RoOyArK2kpCiAgICAgICAgIG1f
YnVmZmVyQ2hhcmFjdGVyczE2W2ldID0gY3VycmVudENoYXJhY3RlcnNbaV07CiAgICAgCkBAIC0x
MzksMTAgKzE3MCwxMSBAQCB2b2lkIFN0cmluZ0J1aWxkZXI6OmFsbG9jYXRlQnVmZmVyVXBDb252
ZXJ0KGNvbnN0IExDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaQogICAgIG1fYnVmZmVyID0g
V1RGTW92ZShidWZmZXIpOwogICAgIG1fc3RyaW5nID0gU3RyaW5nKCk7CiAgICAgQVNTRVJUKG1f
YnVmZmVyLT5sZW5ndGgoKSA9PSByZXF1aXJlZExlbmd0aCk7CisgICAgcmV0dXJuIHsgfTsKIH0K
IAogdGVtcGxhdGUgPD4KLXZvaWQgU3RyaW5nQnVpbGRlcjo6cmVhbGxvY2F0ZUJ1ZmZlcjxMQ2hh
cj4odW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0
cmluZ0J1aWxkZXI6OnJlYWxsb2NhdGVCdWZmZXI8TENoYXI+KHVuc2lnbmVkIHJlcXVpcmVkTGVu
Z3RoKQogewogICAgIC8vIElmIHRoZSBidWZmZXIgaGFzIG9ubHkgb25lIHJlZiAoYnkgdGhpcyBT
dHJpbmdCdWlsZGVyKSwgcmVhbGxvY2F0ZSBpdCwKICAgICAvLyBvdGhlcndpc2UgZmFsbCBiYWNr
IHRvICJhbGxvY2F0ZSBhbmQgY29weSIgbWV0aG9kLgpAQCAtMTUxLDY1ICsxODMsODkgQEAgdm9p
ZCBTdHJpbmdCdWlsZGVyOjpyZWFsbG9jYXRlQnVmZmVyPExDaGFyPih1bnNpZ25lZCByZXF1aXJl
ZExlbmd0aCkKICAgICBBU1NFUlQobV9pczhCaXQpOwogICAgIEFTU0VSVChtX2J1ZmZlci0+aXM4
Qml0KCkpOwogICAgIAotICAgIGlmIChtX2J1ZmZlci0+aGFzT25lUmVmKCkpCi0gICAgICAgIG1f
YnVmZmVyID0gU3RyaW5nSW1wbDo6cmVhbGxvY2F0ZShtX2J1ZmZlci5yZWxlYXNlTm9uTnVsbCgp
LCByZXF1aXJlZExlbmd0aCwgbV9idWZmZXJDaGFyYWN0ZXJzOCk7Ci0gICAgZWxzZQotICAgICAg
ICBhbGxvY2F0ZUJ1ZmZlcihtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKSwgcmVxdWlyZWRMZW5ndGgp
OworICAgIGlmIChtX2J1ZmZlci0+aGFzT25lUmVmKCkpIHsKKyAgICAgICAgYXV0byByZWFsbG9j
YXRlZCA9IFN0cmluZ0ltcGw6OnRyeVJlYWxsb2NhdGUobV9idWZmZXIucmVsZWFzZU5vbk51bGwo
KSwgcmVxdWlyZWRMZW5ndGgsIG1fYnVmZmVyQ2hhcmFjdGVyczgpOworICAgICAgICBpZiAoIXJl
YWxsb2NhdGVkKQorICAgICAgICAgICAgcmV0dXJuIG91dE9mTWVtb3J5KCk7CisgICAgICAgIG1f
YnVmZmVyID0gcmVhbGxvY2F0ZWQuZ2V0KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byBh
bGxvY2F0ZWQgPSBhbGxvY2F0ZUJ1ZmZlcihtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKSwgcmVxdWly
ZWRMZW5ndGgpOworICAgICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAgIHJldHVybiBh
bGxvY2F0ZWQ7CisgICAgfQogICAgIEFTU0VSVChtX2J1ZmZlci0+bGVuZ3RoKCkgPT0gcmVxdWly
ZWRMZW5ndGgpOworICAgIHJldHVybiB7IH07CiB9CiAKIHRlbXBsYXRlIDw+Ci12b2lkIFN0cmlu
Z0J1aWxkZXI6OnJlYWxsb2NhdGVCdWZmZXI8VUNoYXI+KHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3Ro
KQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjpyZWFsbG9jYXRlQnVm
ZmVyPFVDaGFyPih1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKIHsKICAgICAvLyBJZiB0aGUgYnVm
ZmVyIGhhcyBvbmx5IG9uZSByZWYgKGJ5IHRoaXMgU3RyaW5nQnVpbGRlciksIHJlYWxsb2NhdGUg
aXQsCiAgICAgLy8gb3RoZXJ3aXNlIGZhbGwgYmFjayB0byAiYWxsb2NhdGUgYW5kIGNvcHkiIG1l
dGhvZC4KICAgICBtX3N0cmluZyA9IFN0cmluZygpOwogICAgIAotICAgIGlmIChtX2J1ZmZlci0+
aXM4Qml0KCkpCi0gICAgICAgIGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KG1fYnVmZmVyLT5jaGFy
YWN0ZXJzOCgpLCByZXF1aXJlZExlbmd0aCk7CisgICAgaWYgKG1fYnVmZmVyLT5pczhCaXQoKSkg
eworICAgICAgICBhdXRvIGFsbG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KG1fYnVm
ZmVyLT5jaGFyYWN0ZXJzOCgpLCByZXF1aXJlZExlbmd0aCk7CisgICAgICAgIGlmICghYWxsb2Nh
dGVkKQorICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRlZDsKKyAgICB9CiAgICAgZWxzZSBpZiAo
bV9idWZmZXItPmhhc09uZVJlZigpKQogICAgICAgICBtX2J1ZmZlciA9IFN0cmluZ0ltcGw6OnJl
YWxsb2NhdGUobV9idWZmZXIucmVsZWFzZU5vbk51bGwoKSwgcmVxdWlyZWRMZW5ndGgsIG1fYnVm
ZmVyQ2hhcmFjdGVyczE2KTsKICAgICBlbHNlCiAgICAgICAgIGFsbG9jYXRlQnVmZmVyKG1fYnVm
ZmVyLT5jaGFyYWN0ZXJzMTYoKSwgcmVxdWlyZWRMZW5ndGgpOwogICAgIEFTU0VSVChtX2J1ZmZl
ci0+bGVuZ3RoKCkgPT0gcmVxdWlyZWRMZW5ndGgpOworICAgIHJldHVybiB7IH07CiB9CiAKLXZv
aWQgU3RyaW5nQnVpbGRlcjo6cmVzZXJ2ZUNhcGFjaXR5KHVuc2lnbmVkIG5ld0NhcGFjaXR5KQor
U3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjpyZXNlcnZlQ2FwYWNpdHko
dW5zaWduZWQgbmV3Q2FwYWNpdHkpCiB7CiAgICAgaWYgKG1fYnVmZmVyKSB7CiAgICAgICAgIC8v
IElmIHRoZXJlIGlzIGFscmVhZHkgYSBidWZmZXIsIHRoZW4gZ3JvdyBpZiBuZWNlc3NhcnkuCiAg
ICAgICAgIGlmIChuZXdDYXBhY2l0eSA+IG1fYnVmZmVyLT5sZW5ndGgoKSkgewotICAgICAgICAg
ICAgaWYgKG1fYnVmZmVyLT5pczhCaXQoKSkKLSAgICAgICAgICAgICAgICByZWFsbG9jYXRlQnVm
ZmVyPExDaGFyPihuZXdDYXBhY2l0eSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgcmVhbGxvY2F0ZUJ1ZmZlcjxVQ2hhcj4obmV3Q2FwYWNpdHkpOworICAgICAgICAgICAgaWYg
KG1fYnVmZmVyLT5pczhCaXQoKSkgeworICAgICAgICAgICAgICAgIGF1dG8gcmVhbGxvY2F0ZWQg
PSByZWFsbG9jYXRlQnVmZmVyPExDaGFyPihuZXdDYXBhY2l0eSk7CisgICAgICAgICAgICAgICAg
aWYgKCFyZWFsbG9jYXRlZCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlYWxsb2NhdGVk
OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBhdXRvIHJlYWxsb2NhdGVk
ID0gcmVhbGxvY2F0ZUJ1ZmZlcjxVQ2hhcj4obmV3Q2FwYWNpdHkpOworICAgICAgICAgICAgICAg
IGlmICghcmVhbGxvY2F0ZWQpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWFsbG9jYXRl
ZDsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIEdy
b3cgdGhlIHN0cmluZywgaWYgbmVjZXNzYXJ5LgogICAgICAgICBpZiAobmV3Q2FwYWNpdHkgPiBt
X2xlbmd0aCkgewogICAgICAgICAgICAgaWYgKCFtX2xlbmd0aCkgewogICAgICAgICAgICAgICAg
IExDaGFyKiBudWxsUGxhY2Vob2xkZXIgPSAwOwotICAgICAgICAgICAgICAgIGFsbG9jYXRlQnVm
ZmVyKG51bGxQbGFjZWhvbGRlciwgbmV3Q2FwYWNpdHkpOwotICAgICAgICAgICAgfSBlbHNlIGlm
IChtX3N0cmluZy5pczhCaXQoKSkKLSAgICAgICAgICAgICAgICBhbGxvY2F0ZUJ1ZmZlcihtX3N0
cmluZy5jaGFyYWN0ZXJzOCgpLCBuZXdDYXBhY2l0eSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgYWxsb2NhdGVCdWZmZXIobV9zdHJpbmcuY2hhcmFjdGVyczE2KCksIG5ld0Nh
cGFjaXR5KTsKKyAgICAgICAgICAgICAgICBhdXRvIGFsbG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVy
KG51bGxQbGFjZWhvbGRlciwgbmV3Q2FwYWNpdHkpOworICAgICAgICAgICAgICAgIGlmICghYWxs
b2NhdGVkKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWxsb2NhdGVkOworICAgICAgICAg
ICAgfSBlbHNlIGlmIChtX3N0cmluZy5pczhCaXQoKSkgeworICAgICAgICAgICAgICAgIGF1dG8g
YWxsb2NhdGVkID0gYWxsb2NhdGVCdWZmZXIobV9zdHJpbmcuY2hhcmFjdGVyczgoKSwgbmV3Q2Fw
YWNpdHkpOworICAgICAgICAgICAgICAgIGlmICghYWxsb2NhdGVkKQorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYWxsb2NhdGVkOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICBhdXRvIGFsbG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVyKG1fc3RyaW5nLmNoYXJhY3RlcnMx
NigpLCBuZXdDYXBhY2l0eSk7CisgICAgICAgICAgICAgICAgaWYgKCFhbGxvY2F0ZWQpCisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBhbGxvY2F0ZWQ7CisgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICB9CiAgICAgQVNTRVJUKCFuZXdDYXBhY2l0eSB8fCBtX2J1ZmZlci0+bGVuZ3RoKCkg
Pj0gbmV3Q2FwYWNpdHkpOworICAgIHJldHVybiB7IH07CiB9CiAKIC8vIE1ha2UgJ2xlbmd0aCcg
YWRkaXRpb25hbCBjYXBhY2l0eSBiZSBhdmFpbGFibGUgaW4gbV9idWZmZXIsIHVwZGF0ZSBtX3N0
cmluZyAmIG1fbGVuZ3RoLAogLy8gcmV0dXJuIGEgcG9pbnRlciB0byB0aGUgbmV3bHkgYWxsb2Nh
dGVkIHN0b3JhZ2UuCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci1BTFdBWVNfSU5MSU5F
IENoYXJUeXBlKiBTdHJpbmdCdWlsZGVyOjphcHBlbmRVbmluaXRpYWxpemVkKHVuc2lnbmVkIGxl
bmd0aCkKK0FMV0FZU19JTkxJTkUgU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8Q2hhclR5cGUqPiBT
dHJpbmdCdWlsZGVyOjphcHBlbmRVbmluaXRpYWxpemVkKHVuc2lnbmVkIGxlbmd0aCkKIHsKICAg
ICBBU1NFUlQobGVuZ3RoKTsKIAogICAgIC8vIENhbGN1bGF0ZSB0aGUgbmV3IHNpemUgb2YgdGhl
IGJ1aWxkZXIgYWZ0ZXIgYXBwZW5kaW5nLgogICAgIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoID0g
bGVuZ3RoICsgbV9sZW5ndGg7CiAgICAgaWYgKHJlcXVpcmVkTGVuZ3RoIDwgbGVuZ3RoKQotICAg
ICAgICBDUkFTSCgpOworICAgICAgICByZXR1cm4gd291bGRPdmVyZmxvdygpOwogCiAgICAgaWYg
KChtX2J1ZmZlcikgJiYgKHJlcXVpcmVkTGVuZ3RoIDw9IG1fYnVmZmVyLT5sZW5ndGgoKSkpIHsK
ICAgICAgICAgLy8gSWYgdGhlIGJ1ZmZlciBpcyB2YWxpZCBpdCBtdXN0IGJlIGF0IGxlYXN0IGFz
IGxvbmcgYXMgdGhlIGN1cnJlbnQgYnVpbGRlciBjb250ZW50cyEKQEAgLTIyNiw3ICsyODIsNyBA
QCBBTFdBWVNfSU5MSU5FIENoYXJUeXBlKiBTdHJpbmdCdWlsZGVyOjphcHBlbmRVbmluaXRpYWxp
emVkKHVuc2lnbmVkIGxlbmd0aCkKIC8vIE1ha2UgJ2xlbmd0aCcgYWRkaXRpb25hbCBjYXBhY2l0
eSBiZSBhdmFpbGFibGUgaW4gbV9idWZmZXIsIHVwZGF0ZSBtX3N0cmluZyAmIG1fbGVuZ3RoLAog
Ly8gcmV0dXJuIGEgcG9pbnRlciB0byB0aGUgbmV3bHkgYWxsb2NhdGVkIHN0b3JhZ2UuCiB0ZW1w
bGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci1DaGFyVHlwZSogU3RyaW5nQnVpbGRlcjo6YXBwZW5k
VW5pbml0aWFsaXplZFNsb3codW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCitTdHJpbmdCdWlsZGVy
OjpGYWxsaWJsZTxDaGFyVHlwZSo+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZFVuaW5pdGlhbGl6ZWRT
bG93KHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQogewogICAgIEFTU0VSVChyZXF1aXJlZExlbmd0
aCk7CiAKQEAgLTIzNCwxMCArMjkwLDE0IEBAIENoYXJUeXBlKiBTdHJpbmdCdWlsZGVyOjphcHBl
bmRVbmluaXRpYWxpemVkU2xvdyh1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKICAgICAgICAgLy8g
SWYgdGhlIGJ1ZmZlciBpcyB2YWxpZCBpdCBtdXN0IGJlIGF0IGxlYXN0IGFzIGxvbmcgYXMgdGhl
IGN1cnJlbnQgYnVpbGRlciBjb250ZW50cyEKICAgICAgICAgQVNTRVJUKG1fYnVmZmVyLT5sZW5n
dGgoKSA+PSBtX2xlbmd0aCk7CiAgICAgICAgIAotICAgICAgICByZWFsbG9jYXRlQnVmZmVyPENo
YXJUeXBlPihleHBhbmRlZENhcGFjaXR5KGNhcGFjaXR5KCksIHJlcXVpcmVkTGVuZ3RoKSk7Cisg
ICAgICAgIGF1dG8gcmVhbGxvY2F0ZWQgPSByZWFsbG9jYXRlQnVmZmVyPENoYXJUeXBlPihleHBh
bmRlZENhcGFjaXR5KGNhcGFjaXR5KCksIHJlcXVpcmVkTGVuZ3RoKSk7CisgICAgICAgIGlmICgh
cmVhbGxvY2F0ZWQpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQocmVhbGxvY2F0
ZWQuZXJyb3IoKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgQVNTRVJUKG1fc3RyaW5nLmxlbmd0
aCgpID09IG1fbGVuZ3RoKTsKLSAgICAgICAgYWxsb2NhdGVCdWZmZXIobV9sZW5ndGggPyBtX3N0
cmluZy5jaGFyYWN0ZXJzPENoYXJUeXBlPigpIDogMCwgZXhwYW5kZWRDYXBhY2l0eShjYXBhY2l0
eSgpLCByZXF1aXJlZExlbmd0aCkpOworICAgICAgICBhdXRvIGFsbG9jYXRlZCA9IGFsbG9jYXRl
QnVmZmVyKG1fbGVuZ3RoID8gbV9zdHJpbmcuY2hhcmFjdGVyczxDaGFyVHlwZT4oKSA6IDAsIGV4
cGFuZGVkQ2FwYWNpdHkoY2FwYWNpdHkoKSwgcmVxdWlyZWRMZW5ndGgpKTsKKyAgICAgICAgaWYg
KCFhbGxvY2F0ZWQpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoYWxsb2NhdGVk
LmVycm9yKCkpOwogICAgIH0KICAgICAKICAgICBDaGFyVHlwZSogcmVzdWx0ID0gZ2V0QnVmZmVy
Q2hhcmFjdGVyczxDaGFyVHlwZT4oKSArIG1fbGVuZ3RoOwpAQCAtMjQ2LDEwICszMDYsMTAgQEAg
Q2hhclR5cGUqIFN0cmluZ0J1aWxkZXI6OmFwcGVuZFVuaW5pdGlhbGl6ZWRTbG93KHVuc2lnbmVk
IHJlcXVpcmVkTGVuZ3RoKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQgU3RyaW5nQnVp
bGRlcjo6YXBwZW5kKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCitT
dHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZChjb25zdCBVQ2hh
ciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQogewogICAgIGlmICghbGVuZ3RoKQotICAg
ICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB7IH07CiAKICAgICBBU1NFUlQoY2hhcmFjdGVy
cyk7CiAKQEAgLTI1Nyw0MCArMzE3LDUxIEBAIHZvaWQgU3RyaW5nQnVpbGRlcjo6YXBwZW5kKGNv
bnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgICAgIGlmIChsZW5n
dGggPT0gMSAmJiAhKCpjaGFyYWN0ZXJzICYgfjB4ZmYpKSB7CiAgICAgICAgICAgICAvLyBBcHBl
bmQgYXMgOCBiaXQgY2hhcmFjdGVyCiAgICAgICAgICAgICBMQ2hhciBsQ2hhciA9IHN0YXRpY19j
YXN0PExDaGFyPigqY2hhcmFjdGVycyk7Ci0gICAgICAgICAgICBhcHBlbmQoJmxDaGFyLCAxKTsK
LSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHJldHVybiBhcHBlbmQoJmxDaGFyLCAx
KTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgbmV3IHNpemUgb2YgdGhl
IGJ1aWxkZXIgYWZ0ZXIgYXBwZW5kaW5nLgogICAgICAgICB1bnNpZ25lZCByZXF1aXJlZExlbmd0
aCA9IGxlbmd0aCArIG1fbGVuZ3RoOwogICAgICAgICBpZiAocmVxdWlyZWRMZW5ndGggPCBsZW5n
dGgpCi0gICAgICAgICAgICBDUkFTSCgpOworICAgICAgICAgICAgcmV0dXJuIHdvdWxkT3ZlcmZs
b3coKTsKICAgICAgICAgCiAgICAgICAgIGlmIChtX2J1ZmZlcikgewogICAgICAgICAgICAgLy8g
SWYgdGhlIGJ1ZmZlciBpcyB2YWxpZCBpdCBtdXN0IGJlIGF0IGxlYXN0IGFzIGxvbmcgYXMgdGhl
IGN1cnJlbnQgYnVpbGRlciBjb250ZW50cyEKICAgICAgICAgICAgIEFTU0VSVChtX2J1ZmZlci0+
bGVuZ3RoKCkgPj0gbV9sZW5ndGgpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBhbGxvY2F0
ZUJ1ZmZlclVwQ29udmVydChtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKSwgZXhwYW5kZWRDYXBhY2l0
eShjYXBhY2l0eSgpLCByZXF1aXJlZExlbmd0aCkpOworICAgICAgICAgICAgYXV0byBhbGxvY2F0
ZWQgPSBhbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKSwgZXhw
YW5kZWRDYXBhY2l0eShjYXBhY2l0eSgpLCByZXF1aXJlZExlbmd0aCkpOworICAgICAgICAgICAg
aWYgKCFhbGxvY2F0ZWQpCisgICAgICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRlZDsKICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgIEFTU0VSVChtX3N0cmluZy5sZW5ndGgoKSA9PSBtX2xl
bmd0aCk7Ci0gICAgICAgICAgICBhbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChtX3N0cmluZy5pc051
bGwoKSA/IDAgOiBtX3N0cmluZy5jaGFyYWN0ZXJzOCgpLCBleHBhbmRlZENhcGFjaXR5KGNhcGFj
aXR5KCksIHJlcXVpcmVkTGVuZ3RoKSk7CisgICAgICAgICAgICBhdXRvIGFsbG9jYXRlZCA9IGFs
bG9jYXRlQnVmZmVyVXBDb252ZXJ0KG1fc3RyaW5nLmlzTnVsbCgpID8gMCA6IG1fc3RyaW5nLmNo
YXJhY3RlcnM4KCksIGV4cGFuZGVkQ2FwYWNpdHkoY2FwYWNpdHkoKSwgcmVxdWlyZWRMZW5ndGgp
KTsKKyAgICAgICAgICAgIGlmICghYWxsb2NhdGVkKQorICAgICAgICAgICAgICAgIHJldHVybiBh
bGxvY2F0ZWQ7CiAgICAgICAgIH0KIAogICAgICAgICBtZW1jcHkobV9idWZmZXJDaGFyYWN0ZXJz
MTYgKyBtX2xlbmd0aCwgY2hhcmFjdGVycywgc3RhdGljX2Nhc3Q8c2l6ZV90PihsZW5ndGgpICog
c2l6ZW9mKFVDaGFyKSk7CiAgICAgICAgIG1fbGVuZ3RoID0gcmVxdWlyZWRMZW5ndGg7Ci0gICAg
fSBlbHNlCi0gICAgICAgIG1lbWNweShhcHBlbmRVbmluaXRpYWxpemVkPFVDaGFyPihsZW5ndGgp
LCBjaGFyYWN0ZXJzLCBzdGF0aWNfY2FzdDxzaXplX3Q+KGxlbmd0aCkgKiBzaXplb2YoVUNoYXIp
KTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoYXV0byBhcHBlbmRlZCA9IGFwcGVuZFVuaW5p
dGlhbGl6ZWQ8VUNoYXI+KGxlbmd0aCkpCisgICAgICAgICAgICBtZW1jcHkoKmFwcGVuZGVkLCBj
aGFyYWN0ZXJzLCBzdGF0aWNfY2FzdDxzaXplX3Q+KGxlbmd0aCkgKiBzaXplb2YoVUNoYXIpKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKGFwcGVuZGVk
LmVycm9yKCkpOworICAgIH0KICAgICBBU1NFUlQobV9idWZmZXItPmxlbmd0aCgpID49IG1fbGVu
Z3RoKTsKKyAgICByZXR1cm4geyB9OwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVuZChj
b25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQorU3RyaW5nQnVpbGRlcjo6
RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmQoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMs
IHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBpZiAoIWxlbmd0aCkKLSAgICAgICAgcmV0dXJuOwor
ICAgICAgICByZXR1cm4geyB9OwogICAgIEFTU0VSVChjaGFyYWN0ZXJzKTsKIAogICAgIGlmICht
X2lzOEJpdCkgewotICAgICAgICBMQ2hhciogZGVzdCA9IGFwcGVuZFVuaW5pdGlhbGl6ZWQ8TENo
YXI+KGxlbmd0aCk7CisgICAgICAgIGF1dG8gYXBwZW5kZWQgPSBhcHBlbmRVbmluaXRpYWxpemVk
PExDaGFyPihsZW5ndGgpOworICAgICAgICBpZiAoIWFwcGVuZGVkKQorICAgICAgICAgICAgcmV0
dXJuIG1ha2VVbmV4cGVjdGVkKGFwcGVuZGVkLmVycm9yKCkpOworICAgICAgICBMQ2hhciogZGVz
dCA9ICphcHBlbmRlZDsKICAgICAgICAgaWYgKGxlbmd0aCA+IDgpCiAgICAgICAgICAgICBtZW1j
cHkoZGVzdCwgY2hhcmFjdGVycywgc3RhdGljX2Nhc3Q8c2l6ZV90PihsZW5ndGgpICogc2l6ZW9m
KExDaGFyKSk7CiAgICAgICAgIGVsc2UgewpAQCAtMjk5LDczICszNzAsNzkgQEAgdm9pZCBTdHJp
bmdCdWlsZGVyOjphcHBlbmQoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0
aCkKICAgICAgICAgICAgICAgICAqKGRlc3QrKykgPSAqKGNoYXJhY3RlcnMrKyk7CiAgICAgICAg
IH0KICAgICB9IGVsc2UgewotICAgICAgICBVQ2hhciogZGVzdCA9IGFwcGVuZFVuaW5pdGlhbGl6
ZWQ8VUNoYXI+KGxlbmd0aCk7CisgICAgICAgIGF1dG8gYXBwZW5kZWQgPSBhcHBlbmRVbmluaXRp
YWxpemVkPFVDaGFyPihsZW5ndGgpOworICAgICAgICBpZiAoIWFwcGVuZGVkKQorICAgICAgICAg
ICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKGFwcGVuZGVkLmVycm9yKCkpOworICAgICAgICBVQ2hh
ciogZGVzdCA9ICphcHBlbmRlZDsKICAgICAgICAgY29uc3QgTENoYXIqIGVuZCA9IGNoYXJhY3Rl
cnMgKyBsZW5ndGg7CiAgICAgICAgIHdoaWxlIChjaGFyYWN0ZXJzIDwgZW5kKQogICAgICAgICAg
ICAgKihkZXN0KyspID0gKihjaGFyYWN0ZXJzKyspOwogICAgIH0KKyAgICByZXR1cm4geyB9Owog
fQogCiAjaWYgVVNFKENGKQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVuZChDRlN0cmluZ1Jl
ZiBzdHJpbmcpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFwcGVu
ZChDRlN0cmluZ1JlZiBzdHJpbmcpCiB7CiAgICAgLy8gRmFzdCBwYXRoOiBhdm9pZCBjb25zdHJ1
Y3RpbmcgYSB0ZW1wb3JhcnkgU3RyaW5nIHdoZW4gcG9zc2libGUuCiAgICAgaWYgKGF1dG8qIGNo
YXJhY3RlcnMgPSBDRlN0cmluZ0dldENTdHJpbmdQdHIoc3RyaW5nLCBrQ0ZTdHJpbmdFbmNvZGlu
Z0lTT0xhdGluMSkpIHsKLSAgICAgICAgYXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENo
YXIqPihjaGFyYWN0ZXJzKSwgQ0ZTdHJpbmdHZXRMZW5ndGgoc3RyaW5nKSk7Ci0gICAgICAgIHJl
dHVybjsKKyAgICAgICAgaWYgKGF1dG8gYXBwZW5kZWQgPSBhcHBlbmQocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBMQ2hhcio+KGNoYXJhY3RlcnMpLCBDRlN0cmluZ0dldExlbmd0aChzdHJpbmcpKSkK
KyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVy
biBhcHBlbmRlZDsKICAgICB9Ci0gICAgYXBwZW5kKFN0cmluZyhzdHJpbmcpKTsKKyAgICByZXR1
cm4gYXBwZW5kKFN0cmluZyhzdHJpbmcpKTsKIH0KIAogI2VuZGlmCiAKLXZvaWQgU3RyaW5nQnVp
bGRlcjo6YXBwZW5kTnVtYmVyKGludCBudW1iZXIpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+
IFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcihpbnQgbnVtYmVyKQogewotICAgIG51bWJlclRv
U3RyaW5nU2lnbmVkPFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CisgICAgcmV0dXJuIG51
bWJlclRvU3RyaW5nU2lnbmVkPFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CiB9CiAKLXZv
aWQgU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKHVuc2lnbmVkIGludCBudW1iZXIpCitTdHJp
bmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcih1bnNpZ25l
ZCBpbnQgbnVtYmVyKQogewotICAgIG51bWJlclRvU3RyaW5nVW5zaWduZWQ8U3RyaW5nQnVpbGRl
cj4obnVtYmVyLCB0aGlzKTsKKyAgICByZXR1cm4gbnVtYmVyVG9TdHJpbmdVbnNpZ25lZDxTdHJp
bmdCdWlsZGVyPihudW1iZXIsIHRoaXMpOwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVu
ZE51bWJlcihsb25nIG51bWJlcikKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVp
bGRlcjo6YXBwZW5kTnVtYmVyKGxvbmcgbnVtYmVyKQogewotICAgIG51bWJlclRvU3RyaW5nU2ln
bmVkPFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CisgICAgcmV0dXJuIG51bWJlclRvU3Ry
aW5nU2lnbmVkPFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CiB9CiAKLXZvaWQgU3RyaW5n
QnVpbGRlcjo6YXBwZW5kTnVtYmVyKHVuc2lnbmVkIGxvbmcgbnVtYmVyKQorU3RyaW5nQnVpbGRl
cjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIodW5zaWduZWQgbG9uZyBu
dW1iZXIpCiB7Ci0gICAgbnVtYmVyVG9TdHJpbmdVbnNpZ25lZDxTdHJpbmdCdWlsZGVyPihudW1i
ZXIsIHRoaXMpOworICAgIHJldHVybiBudW1iZXJUb1N0cmluZ1Vuc2lnbmVkPFN0cmluZ0J1aWxk
ZXI+KG51bWJlciwgdGhpcyk7CiB9CiAKLXZvaWQgU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVy
KGxvbmcgbG9uZyBudW1iZXIpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxk
ZXI6OmFwcGVuZE51bWJlcihsb25nIGxvbmcgbnVtYmVyKQogewotICAgIG51bWJlclRvU3RyaW5n
U2lnbmVkPFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CisgICAgcmV0dXJuIG51bWJlclRv
U3RyaW5nU2lnbmVkPFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CiB9CiAKLXZvaWQgU3Ry
aW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKHVuc2lnbmVkIGxvbmcgbG9uZyBudW1iZXIpCitTdHJp
bmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcih1bnNpZ25l
ZCBsb25nIGxvbmcgbnVtYmVyKQogewotICAgIG51bWJlclRvU3RyaW5nVW5zaWduZWQ8U3RyaW5n
QnVpbGRlcj4obnVtYmVyLCB0aGlzKTsKKyAgICByZXR1cm4gbnVtYmVyVG9TdHJpbmdVbnNpZ25l
ZDxTdHJpbmdCdWlsZGVyPihudW1iZXIsIHRoaXMpOwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6
OmFwcGVuZE51bWJlcihkb3VibGUgbnVtYmVyLCB1bnNpZ25lZCBwcmVjaXNpb24sIFRyYWlsaW5n
WmVyb3NUcnVuY2F0aW5nUG9saWN5IHRyYWlsaW5nWmVyb3NUcnVuY2F0aW5nUG9saWN5KQorU3Ry
aW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIoZG91Ymxl
IG51bWJlciwgdW5zaWduZWQgcHJlY2lzaW9uLCBUcmFpbGluZ1plcm9zVHJ1bmNhdGluZ1BvbGlj
eSB0cmFpbGluZ1plcm9zVHJ1bmNhdGluZ1BvbGljeSkKIHsKICAgICBOdW1iZXJUb1N0cmluZ0J1
ZmZlciBidWZmZXI7Ci0gICAgYXBwZW5kKG51bWJlclRvRml4ZWRQcmVjaXNpb25TdHJpbmcobnVt
YmVyLCBwcmVjaXNpb24sIGJ1ZmZlciwgdHJhaWxpbmdaZXJvc1RydW5jYXRpbmdQb2xpY3kgPT0g
VHJ1bmNhdGVUcmFpbGluZ1plcm9zKSk7CisgICAgcmV0dXJuIGFwcGVuZChudW1iZXJUb0ZpeGVk
UHJlY2lzaW9uU3RyaW5nKG51bWJlciwgcHJlY2lzaW9uLCBidWZmZXIsIHRyYWlsaW5nWmVyb3NU
cnVuY2F0aW5nUG9saWN5ID09IFRydW5jYXRlVHJhaWxpbmdaZXJvcykpOwogfQogCi12b2lkIFN0
cmluZ0J1aWxkZXI6OmFwcGVuZEVDTUFTY3JpcHROdW1iZXIoZG91YmxlIG51bWJlcikKK1N0cmlu
Z0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6YXBwZW5kRUNNQVNjcmlwdE51bWJl
cihkb3VibGUgbnVtYmVyKQogewogICAgIE51bWJlclRvU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKLSAg
ICBhcHBlbmQobnVtYmVyVG9TdHJpbmcobnVtYmVyLCBidWZmZXIpKTsKKyAgICByZXR1cm4gYXBw
ZW5kKG51bWJlclRvU3RyaW5nKG51bWJlciwgYnVmZmVyKSk7CiB9CiAKLXZvaWQgU3RyaW5nQnVp
bGRlcjo6YXBwZW5kRml4ZWRXaWR0aE51bWJlcihkb3VibGUgbnVtYmVyLCB1bnNpZ25lZCBkZWNp
bWFsUGxhY2VzKQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBl
bmRGaXhlZFdpZHRoTnVtYmVyKGRvdWJsZSBudW1iZXIsIHVuc2lnbmVkIGRlY2ltYWxQbGFjZXMp
CiB7CiAgICAgTnVtYmVyVG9TdHJpbmdCdWZmZXIgYnVmZmVyOwotICAgIGFwcGVuZChudW1iZXJU
b0ZpeGVkV2lkdGhTdHJpbmcobnVtYmVyLCBkZWNpbWFsUGxhY2VzLCBidWZmZXIpKTsKKyAgICBy
ZXR1cm4gYXBwZW5kKG51bWJlclRvRml4ZWRXaWR0aFN0cmluZyhudW1iZXIsIGRlY2ltYWxQbGFj
ZXMsIGJ1ZmZlcikpOwogfQogCiBib29sIFN0cmluZ0J1aWxkZXI6OmNhblNocmluaygpIGNvbnN0
CkBAIC0zNzQsMTUgKzQ1MSwyMSBAQCBib29sIFN0cmluZ0J1aWxkZXI6OmNhblNocmluaygpIGNv
bnN0CiAgICAgcmV0dXJuIG1fYnVmZmVyICYmIG1fYnVmZmVyLT5sZW5ndGgoKSA+IChtX2xlbmd0
aCArIChtX2xlbmd0aCA+PiAyKSk7CiB9CiAKLXZvaWQgU3RyaW5nQnVpbGRlcjo6c2hyaW5rVG9G
aXQoKQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjpzaHJpbmtUb0Zp
dCgpCiB7CiAgICAgaWYgKGNhblNocmluaygpKSB7Ci0gICAgICAgIGlmIChtX2lzOEJpdCkKLSAg
ICAgICAgICAgIHJlYWxsb2NhdGVCdWZmZXI8TENoYXI+KG1fbGVuZ3RoKTsKLSAgICAgICAgZWxz
ZQotICAgICAgICAgICAgcmVhbGxvY2F0ZUJ1ZmZlcjxVQ2hhcj4obV9sZW5ndGgpOworICAgICAg
ICBpZiAobV9pczhCaXQpIHsKKyAgICAgICAgICAgIGF1dG8gcmVhbGxvY2F0ZWQgPSByZWFsbG9j
YXRlQnVmZmVyPExDaGFyPihtX2xlbmd0aCk7CisgICAgICAgICAgICBpZiAoIXJlYWxsb2NhdGVk
KQorICAgICAgICAgICAgICAgIHJldHVybiByZWFsbG9jYXRlZDsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIGF1dG8gcmVhbGxvY2F0ZWQgPSByZWFsbG9jYXRlQnVmZmVyPFVDaGFyPiht
X2xlbmd0aCk7CisgICAgICAgICAgICBpZiAoIXJlYWxsb2NhdGVkKQorICAgICAgICAgICAgICAg
IHJldHVybiByZWFsbG9jYXRlZDsKKyAgICAgICAgfQogICAgICAgICBtX3N0cmluZyA9IFdURk1v
dmUobV9idWZmZXIpOwogICAgIH0KKyAgICByZXR1cm4geyB9OwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlci5oIGIv
U291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmgKaW5kZXggOGU0YzcyMC4uMmMwZGRj
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmgKKysrIGIv
U291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAsIDIwMTItMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTI3LDYgKzI3LDcgQEAK
ICNpZm5kZWYgU3RyaW5nQnVpbGRlcl9oCiAjZGVmaW5lIFN0cmluZ0J1aWxkZXJfaAogCisjaW5j
bHVkZSA8d3RmL0V4cGVjdGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KQEAgLTQwLDI4ICs0MSwzMyBAQCBjbGFzcyBTdHJp
bmdCdWlsZGVyIHsKIAogcHVibGljOgogICAgIFN0cmluZ0J1aWxkZXIoKQotICAgICAgICA6IG1f
bGVuZ3RoKDApCi0gICAgICAgICwgbV9pczhCaXQodHJ1ZSkKLSAgICAgICAgLCBtX2J1ZmZlckNo
YXJhY3RlcnM4KG51bGxwdHIpCisgICAgICAgIDogbV9idWZmZXJDaGFyYWN0ZXJzOChudWxscHRy
KQogICAgIHsKICAgICB9CiAgICAgU3RyaW5nQnVpbGRlcihTdHJpbmdCdWlsZGVyJiYpID0gZGVm
YXVsdDsKICAgICBTdHJpbmdCdWlsZGVyJiBvcGVyYXRvcj0oU3RyaW5nQnVpbGRlciYmKSA9IGRl
ZmF1bHQ7CiAKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmQoY29uc3QgVUNoYXIq
LCB1bnNpZ25lZCk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kKGNvbnN0IExD
aGFyKiwgdW5zaWduZWQpOworICAgIGVudW0gY2xhc3MgRmFpbHVyZSB7CisgICAgICAgIFdvdWxk
T3ZlcmZsb3csCisgICAgICAgIE91dE9mTWVtb3J5LAorICAgICAgICBVbmhhbmRsZWRGYWlsdXJl
LAorICAgIH07CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRXhwZWN0ID0gdm9pZD4gdXNpbmcgRmFs
bGlibGUgPSBFeHBlY3RlZDxFeHBlY3QsIFN0cmluZ0J1aWxkZXI6OkZhaWx1cmU+OworCisgICAg
V1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5kKGNvbnN0IFVDaGFyKiwgdW5zaWdu
ZWQpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IGFwcGVuZChjb25zdCBMQ2hh
ciosIHVuc2lnbmVkKTsKIAotICAgIEFMV0FZU19JTkxJTkUgdm9pZCBhcHBlbmQoY29uc3QgY2hh
ciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKSB7IGFwcGVuZChyZWludGVycHJldF9jYXN0
PGNvbnN0IExDaGFyKj4oY2hhcmFjdGVycyksIGxlbmd0aCk7IH0KKyAgICBBTFdBWVNfSU5MSU5F
IEZhbGxpYmxlPD4gYXBwZW5kKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0
aCkgeyByZXR1cm4gYXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihjaGFyYWN0
ZXJzKSwgbGVuZ3RoKTsgfQogCi0gICAgdm9pZCBhcHBlbmQoY29uc3QgQXRvbWljU3RyaW5nJiBh
dG9taWNTdHJpbmcpCisgICAgRmFsbGlibGU8PiBhcHBlbmQoY29uc3QgQXRvbWljU3RyaW5nJiBh
dG9taWNTdHJpbmcpCiAgICAgewotICAgICAgICBhcHBlbmQoYXRvbWljU3RyaW5nLnN0cmluZygp
KTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZChhdG9taWNTdHJpbmcuc3RyaW5nKCkpOwogICAgIH0K
IAotICAgIHZvaWQgYXBwZW5kKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIEZhbGxpYmxlPD4g
YXBwZW5kKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgIHsKICAgICAgICAgaWYgKCFzdHJpbmcu
bGVuZ3RoKCkpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4geyB9Owog
CiAgICAgICAgIC8vIElmIHdlJ3JlIGFwcGVuZGluZyB0byBhbiBlbXB0eSBzdHJpbmcsIGFuZCB0
aGVyZSBpcyBub3QgYSBidWZmZXIgKHJlc2VydmVDYXBhY2l0eSBoYXMgbm90IGJlZW4gY2FsbGVk
KQogICAgICAgICAvLyB0aGVuIGp1c3QgcmV0YWluIHRoZSBzdHJpbmcuCkBAIC02OSwxNTEgKzc1
LDE2NCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX3N0cmluZyA9IHN0cmluZzsKICAgICAgICAg
ICAgIG1fbGVuZ3RoID0gc3RyaW5nLmxlbmd0aCgpOwogICAgICAgICAgICAgbV9pczhCaXQgPSBt
X3N0cmluZy5pczhCaXQoKTsKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHJldHVy
biB7IH07CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoc3RyaW5nLmlzOEJpdCgpKQotICAgICAg
ICAgICAgYXBwZW5kKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBzdHJpbmcubGVuZ3RoKCkpOworICAg
ICAgICAgICAgcmV0dXJuIGFwcGVuZChzdHJpbmcuY2hhcmFjdGVyczgoKSwgc3RyaW5nLmxlbmd0
aCgpKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgYXBwZW5kKHN0cmluZy5jaGFyYWN0ZXJz
MTYoKSwgc3RyaW5nLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIHJldHVybiBhcHBlbmQoc3RyaW5n
LmNoYXJhY3RlcnMxNigpLCBzdHJpbmcubGVuZ3RoKCkpOwogICAgIH0KIAotICAgIHZvaWQgYXBw
ZW5kKGNvbnN0IFN0cmluZ0J1aWxkZXImIG90aGVyKQorICAgIEZhbGxpYmxlPD4gYXBwZW5kKGNv
bnN0IFN0cmluZ0J1aWxkZXImIG90aGVyKQogICAgIHsKKyAgICAgICAgaWYgKG90aGVyLmZhaWxl
ZCgpKQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZhaWx1cmU6OlVuaGFuZGxl
ZEZhaWx1cmUpOyAgICAgICAgICAgIAogICAgICAgICBpZiAoIW90aGVyLm1fbGVuZ3RoKQotICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgICAgICAvLyBJ
ZiB3ZSdyZSBhcHBlbmRpbmcgdG8gYW4gZW1wdHkgc3RyaW5nLCBhbmQgdGhlcmUgaXMgbm90IGEg
YnVmZmVyIChyZXNlcnZlQ2FwYWNpdHkgaGFzIG5vdCBiZWVuIGNhbGxlZCkKICAgICAgICAgLy8g
dGhlbiBqdXN0IHJldGFpbiB0aGUgc3RyaW5nLgogICAgICAgICBpZiAoIW1fbGVuZ3RoICYmICFt
X2J1ZmZlciAmJiAhb3RoZXIubV9zdHJpbmcuaXNOdWxsKCkpIHsKICAgICAgICAgICAgIG1fc3Ry
aW5nID0gb3RoZXIubV9zdHJpbmc7CiAgICAgICAgICAgICBtX2xlbmd0aCA9IG90aGVyLm1fbGVu
Z3RoOwotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAg
ICAgfQogCiAgICAgICAgIGlmIChvdGhlci5pczhCaXQoKSkKLSAgICAgICAgICAgIGFwcGVuZChv
dGhlci5jaGFyYWN0ZXJzOCgpLCBvdGhlci5tX2xlbmd0aCk7CisgICAgICAgICAgICByZXR1cm4g
YXBwZW5kKCpvdGhlci5jaGFyYWN0ZXJzOCgpLCBvdGhlci5tX2xlbmd0aCk7CiAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgIGFwcGVuZChvdGhlci5jaGFyYWN0ZXJzMTYoKSwgb3RoZXIubV9sZW5n
dGgpOworICAgICAgICAgICAgcmV0dXJuIGFwcGVuZCgqb3RoZXIuY2hhcmFjdGVyczE2KCksIG90
aGVyLm1fbGVuZ3RoKTsKICAgICB9CiAKLSAgICB2b2lkIGFwcGVuZChTdHJpbmdWaWV3IHN0cmlu
Z1ZpZXcpCisgICAgRmFsbGlibGU8PiBhcHBlbmQoU3RyaW5nVmlldyBzdHJpbmdWaWV3KQogICAg
IHsKICAgICAgICAgaWYgKHN0cmluZ1ZpZXcuaXM4Qml0KCkpCi0gICAgICAgICAgICBhcHBlbmQo
c3RyaW5nVmlldy5jaGFyYWN0ZXJzOCgpLCBzdHJpbmdWaWV3Lmxlbmd0aCgpKTsKKyAgICAgICAg
ICAgIHJldHVybiBhcHBlbmQoc3RyaW5nVmlldy5jaGFyYWN0ZXJzOCgpLCBzdHJpbmdWaWV3Lmxl
bmd0aCgpKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgYXBwZW5kKHN0cmluZ1ZpZXcuY2hh
cmFjdGVyczE2KCksIHN0cmluZ1ZpZXcubGVuZ3RoKCkpOworICAgICAgICAgICAgcmV0dXJuIGFw
cGVuZChzdHJpbmdWaWV3LmNoYXJhY3RlcnMxNigpLCBzdHJpbmdWaWV3Lmxlbmd0aCgpKTsKICAg
ICB9CiAKICNpZiBVU0UoQ0YpCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kKENG
U3RyaW5nUmVmKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmQoQ0ZT
dHJpbmdSZWYpOwogI2VuZGlmCiAjaWYgVVNFKENGKSAmJiBkZWZpbmVkKF9fT0JKQ19fKQotICAg
IHZvaWQgYXBwZW5kKE5TU3RyaW5nICpzdHJpbmcpIHsgYXBwZW5kKChfX2JyaWRnZSBDRlN0cmlu
Z1JlZilzdHJpbmcpOyB9CisgICAgRmFsbGlibGU8PiBhcHBlbmQoTlNTdHJpbmcgKnN0cmluZykg
eyByZXR1cm4gYXBwZW5kKChfX2JyaWRnZSBDRlN0cmluZ1JlZilzdHJpbmcpOyB9CiAjZW5kaWYK
ICAgICAKLSAgICB2b2lkIGFwcGVuZChjb25zdCBTdHJpbmcmIHN0cmluZywgdW5zaWduZWQgb2Zm
c2V0LCB1bnNpZ25lZCBsZW5ndGgpCisgICAgRmFsbGlibGU8PiBhcHBlbmQoY29uc3QgU3RyaW5n
JiBzdHJpbmcsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQogICAgIHsKICAgICAg
ICAgaWYgKCFzdHJpbmcubGVuZ3RoKCkpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICByZXR1cm4geyB9OwogCiAgICAgICAgIGlmICgob2Zmc2V0ICsgbGVuZ3RoKSA+IHN0cmluZy5s
ZW5ndGgoKSkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHJldHVybiB7IH07CiAK
ICAgICAgICAgaWYgKHN0cmluZy5pczhCaXQoKSkKLSAgICAgICAgICAgIGFwcGVuZChzdHJpbmcu
Y2hhcmFjdGVyczgoKSArIG9mZnNldCwgbGVuZ3RoKTsKKyAgICAgICAgICAgIHJldHVybiBhcHBl
bmQoc3RyaW5nLmNoYXJhY3RlcnM4KCkgKyBvZmZzZXQsIGxlbmd0aCk7CiAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgIGFwcGVuZChzdHJpbmcuY2hhcmFjdGVyczE2KCkgKyBvZmZzZXQsIGxlbmd0
aCk7CisgICAgICAgICAgICByZXR1cm4gYXBwZW5kKHN0cmluZy5jaGFyYWN0ZXJzMTYoKSArIG9m
ZnNldCwgbGVuZ3RoKTsKICAgICB9CiAKLSAgICB2b2lkIGFwcGVuZChjb25zdCBjaGFyKiBjaGFy
YWN0ZXJzKQorICAgIEZhbGxpYmxlPD4gYXBwZW5kKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpCiAg
ICAgewogICAgICAgICBpZiAoY2hhcmFjdGVycykKLSAgICAgICAgICAgIGFwcGVuZChjaGFyYWN0
ZXJzLCBzdHJsZW4oY2hhcmFjdGVycykpOworICAgICAgICAgICAgcmV0dXJuIGFwcGVuZChjaGFy
YWN0ZXJzLCBzdHJsZW4oY2hhcmFjdGVycykpOworICAgICAgICByZXR1cm4geyB9OwogICAgIH0K
IAotICAgIHZvaWQgYXBwZW5kKFVDaGFyIGMpCisgICAgRmFsbGlibGU8PiBhcHBlbmQoVUNoYXIg
YykKICAgICB7CiAgICAgICAgIGlmIChtX2J1ZmZlciAmJiBtX2xlbmd0aCA8IG1fYnVmZmVyLT5s
ZW5ndGgoKSAmJiBtX3N0cmluZy5pc051bGwoKSkgewogICAgICAgICAgICAgaWYgKCFtX2lzOEJp
dCkgewogICAgICAgICAgICAgICAgIG1fYnVmZmVyQ2hhcmFjdGVyczE2W21fbGVuZ3RoKytdID0g
YzsKLSAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsK
ICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKCEoYyAmIH4weGZmKSkgewogICAgICAg
ICAgICAgICAgIG1fYnVmZmVyQ2hhcmFjdGVyczhbbV9sZW5ndGgrK10gPSBzdGF0aWNfY2FzdDxM
Q2hhcj4oYyk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIHJldHVy
biB7IH07CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgYXBwZW5kKCZjLCAxKTsK
KyAgICAgICAgcmV0dXJuIGFwcGVuZCgmYywgMSk7CiAgICAgfQogCi0gICAgdm9pZCBhcHBlbmQo
TENoYXIgYykKKyAgICBGYWxsaWJsZTw+IGFwcGVuZChMQ2hhciBjKQogICAgIHsKICAgICAgICAg
aWYgKG1fYnVmZmVyICYmIG1fbGVuZ3RoIDwgbV9idWZmZXItPmxlbmd0aCgpICYmIG1fc3RyaW5n
LmlzTnVsbCgpKSB7CiAgICAgICAgICAgICBpZiAobV9pczhCaXQpCiAgICAgICAgICAgICAgICAg
bV9idWZmZXJDaGFyYWN0ZXJzOFttX2xlbmd0aCsrXSA9IGM7CiAgICAgICAgICAgICBlbHNlCiAg
ICAgICAgICAgICAgICAgbV9idWZmZXJDaGFyYWN0ZXJzMTZbbV9sZW5ndGgrK10gPSBjOwotICAg
ICAgICB9IGVsc2UKLSAgICAgICAgICAgIGFwcGVuZCgmYywgMSk7CisgICAgICAgICAgICByZXR1
cm4geyB9OworICAgICAgICB9CisgICAgICAgIHJldHVybiBhcHBlbmQoJmMsIDEpOwogICAgIH0K
IAotICAgIHZvaWQgYXBwZW5kKGNoYXIgYykKKyAgICBGYWxsaWJsZTw+IGFwcGVuZChjaGFyIGMp
CiAgICAgewotICAgICAgICBhcHBlbmQoc3RhdGljX2Nhc3Q8TENoYXI+KGMpKTsKKyAgICAgICAg
cmV0dXJuIGFwcGVuZChzdGF0aWNfY2FzdDxMQ2hhcj4oYykpOwogICAgIH0KIAotICAgIHZvaWQg
YXBwZW5kKFVDaGFyMzIgYykKKyAgICBGYWxsaWJsZTw+IGFwcGVuZChVQ2hhcjMyIGMpCiAgICAg
ewotICAgICAgICBpZiAoVV9JU19CTVAoYykpIHsKLSAgICAgICAgICAgIGFwcGVuZChzdGF0aWNf
Y2FzdDxVQ2hhcj4oYykpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAg
IGFwcGVuZChVMTZfTEVBRChjKSk7Ci0gICAgICAgIGFwcGVuZChVMTZfVFJBSUwoYykpOworICAg
ICAgICBpZiAoVV9JU19CTVAoYykpCisgICAgICAgICAgICByZXR1cm4gYXBwZW5kKHN0YXRpY19j
YXN0PFVDaGFyPihjKSk7CisgICAgICAgIGF1dG8gYXBwZW5kZWQgPSBhcHBlbmQoVTE2X0xFQUQo
YykpOworICAgICAgICBpZiAoIWFwcGVuZGVkKQorICAgICAgICAgICAgcmV0dXJuIGFwcGVuZGVk
OworICAgICAgICByZXR1cm4gYXBwZW5kKFUxNl9UUkFJTChjKSk7CiAgICAgfQogCi0gICAgV1RG
X0VYUE9SVF9QUklWQVRFIGJvb2wgYXBwZW5kUXVvdGVkSlNPTlN0cmluZyhjb25zdCBTdHJpbmcm
KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmRRdW90ZWRKU09OU3Ry
aW5nKGNvbnN0IFN0cmluZyYpOwogCiAgICAgdGVtcGxhdGU8dW5zaWduZWQgY2hhcmFjdGVyQ291
bnQ+Ci0gICAgQUxXQVlTX0lOTElORSB2b2lkIGFwcGVuZExpdGVyYWwoY29uc3QgY2hhciAoJmNo
YXJhY3RlcnMpW2NoYXJhY3RlckNvdW50XSkgeyBhcHBlbmQoY2hhcmFjdGVycywgY2hhcmFjdGVy
Q291bnQgLSAxKTsgfQotCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kTnVtYmVy
KGludCk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kTnVtYmVyKHVuc2lnbmVk
IGludCk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kTnVtYmVyKGxvbmcpOwot
ICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZE51bWJlcih1bnNpZ25lZCBsb25nKTsK
LSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmROdW1iZXIobG9uZyBsb25nKTsKLSAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmROdW1iZXIodW5zaWduZWQgbG9uZyBsb25n
KTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmROdW1iZXIoZG91YmxlLCB1bnNp
Z25lZCBwcmVjaXNpb24gPSA2LCBUcmFpbGluZ1plcm9zVHJ1bmNhdGluZ1BvbGljeSA9IFRydW5j
YXRlVHJhaWxpbmdaZXJvcyk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kRUNN
QVNjcmlwdE51bWJlcihkb3VibGUpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGFwcGVu
ZEZpeGVkV2lkdGhOdW1iZXIoZG91YmxlLCB1bnNpZ25lZCBkZWNpbWFsUGxhY2VzKTsKLQotICAg
IFN0cmluZyB0b1N0cmluZygpCisgICAgQUxXQVlTX0lOTElORSBGYWxsaWJsZTw+IGFwcGVuZExp
dGVyYWwoY29uc3QgY2hhciAoJmNoYXJhY3RlcnMpW2NoYXJhY3RlckNvdW50XSkgeyByZXR1cm4g
YXBwZW5kKGNoYXJhY3RlcnMsIGNoYXJhY3RlckNvdW50IC0gMSk7IH0KKworICAgIFdURl9FWFBP
UlRfUFJJVkFURSBGYWxsaWJsZTw+IGFwcGVuZE51bWJlcihpbnQpOworICAgIFdURl9FWFBPUlRf
UFJJVkFURSBGYWxsaWJsZTw+IGFwcGVuZE51bWJlcih1bnNpZ25lZCBpbnQpOworICAgIFdURl9F
WFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IGFwcGVuZE51bWJlcihsb25nKTsKKyAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmROdW1iZXIodW5zaWduZWQgbG9uZyk7CisgICAg
V1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5kTnVtYmVyKGxvbmcgbG9uZyk7Cisg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5kTnVtYmVyKHVuc2lnbmVkIGxv
bmcgbG9uZyk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5kTnVtYmVy
KGRvdWJsZSwgdW5zaWduZWQgcHJlY2lzaW9uID0gNiwgVHJhaWxpbmdaZXJvc1RydW5jYXRpbmdQ
b2xpY3kgPSBUcnVuY2F0ZVRyYWlsaW5nWmVyb3MpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBG
YWxsaWJsZTw+IGFwcGVuZEVDTUFTY3JpcHROdW1iZXIoZG91YmxlKTsKKyAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmRGaXhlZFdpZHRoTnVtYmVyKGRvdWJsZSwgdW5zaWdu
ZWQgZGVjaW1hbFBsYWNlcyk7CisKKyAgICBXQVJOX1VOVVNFRF9SRVRVUk4gRmFsbGlibGU8U3Ry
aW5nPiB0b1N0cmluZygpCiAgICAgewotICAgICAgICBzaHJpbmtUb0ZpdCgpOwotICAgICAgICBp
ZiAobV9zdHJpbmcuaXNOdWxsKCkpCi0gICAgICAgICAgICByZWlmeVN0cmluZygpOwotICAgICAg
ICByZXR1cm4gbV9zdHJpbmc7CisgICAgICAgIGlmIChtX2ZhaWxlZCkKKyAgICAgICAgICAgIHJl
dHVybiBtYWtlVW5leHBlY3RlZChGYWlsdXJlOjpVbmhhbmRsZWRGYWlsdXJlKTsKKyAgICAgICAg
aWYgKGF1dG8gc2hyYW5rID0gc2hyaW5rVG9GaXQoKSkgeworICAgICAgICAgICAgaWYgKG1fc3Ry
aW5nLmlzTnVsbCgpKQorICAgICAgICAgICAgICAgIHJlaWZ5U3RyaW5nKCk7CisgICAgICAgICAg
ICByZXR1cm4gbV9zdHJpbmc7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgcmV0dXJuIG1h
a2VVbmV4cGVjdGVkKHNocmFuay5lcnJvcigpKTsKICAgICB9CiAKLSAgICBjb25zdCBTdHJpbmcm
IHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIGNvbnN0CisgICAgV0FSTl9VTlVTRURfUkVUVVJO
IEZhbGxpYmxlPFN0cmluZz4gdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgY29uc3QKICAgICB7
CisgICAgICAgIGlmIChtX2ZhaWxlZCkKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3Rl
ZChGYWlsdXJlOjpVbmhhbmRsZWRGYWlsdXJlKTsKICAgICAgICAgaWYgKG1fc3RyaW5nLmlzTnVs
bCgpKQogICAgICAgICAgICAgcmVpZnlTdHJpbmcoKTsKICAgICAgICAgcmV0dXJuIG1fc3RyaW5n
OwogICAgIH0KIAotICAgIEF0b21pY1N0cmluZyB0b0F0b21pY1N0cmluZygpIGNvbnN0CisgICAg
V0FSTl9VTlVTRURfUkVUVVJOIEZhbGxpYmxlPEF0b21pY1N0cmluZz4gdG9BdG9taWNTdHJpbmco
KSBjb25zdAogICAgIHsKKyAgICAgICAgaWYgKG1fZmFpbGVkKQorICAgICAgICAgICAgcmV0dXJu
IG1ha2VVbmV4cGVjdGVkKEZhaWx1cmU6OlVuaGFuZGxlZEZhaWx1cmUpOworCiAgICAgICAgIGlm
ICghbV9sZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4gZW1wdHlBdG9tKCk7CiAKICAgICAgICAg
Ly8gSWYgdGhlIGJ1ZmZlciBpcyBzdWZmaWNpZW50bHkgb3Zlci1hbGxvY2F0ZWQsIG1ha2UgYSBu
ZXcgQXRvbWljU3RyaW5nIGZyb20gYSBjb3B5IHNvIGl0cyBidWZmZXIgaXMgbm90IHNvIGxhcmdl
LgogICAgICAgICBpZiAoY2FuU2hyaW5rKCkpIHsKICAgICAgICAgICAgIGlmIChpczhCaXQoKSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gQXRvbWljU3RyaW5nKGNoYXJhY3RlcnM4KCksIGxlbmd0
aCgpKTsKLSAgICAgICAgICAgIHJldHVybiBBdG9taWNTdHJpbmcoY2hhcmFjdGVyczE2KCksIGxl
bmd0aCgpKTsgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICByZXR1cm4gQXRvbWljU3RyaW5n
KCpjaGFyYWN0ZXJzOCgpLCBsZW5ndGgoKSk7CisgICAgICAgICAgICByZXR1cm4gQXRvbWljU3Ry
aW5nKCpjaGFyYWN0ZXJzMTYoKSwgbGVuZ3RoKCkpOyAgICAgICAgICAgIAogICAgICAgICB9CiAK
ICAgICAgICAgaWYgKCFtX3N0cmluZy5pc051bGwoKSkKQEAgLTIzMCwyOSArMjQ5LDM3IEBAIHB1
YmxpYzoKIAogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFtX2xlbmd0aDsgfQog
Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVzZXJ2ZUNhcGFjaXR5KHVuc2lnbmVkIG5l
d0NhcGFjaXR5KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiByZXNlcnZlQ2Fw
YWNpdHkodW5zaWduZWQgbmV3Q2FwYWNpdHkpOwogCiAgICAgdW5zaWduZWQgY2FwYWNpdHkoKSBj
b25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fYnVmZmVyID8gbV9idWZmZXItPmxlbmd0aCgp
IDogbV9sZW5ndGg7CiAgICAgfQogCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVzaXpl
KHVuc2lnbmVkIG5ld1NpemUpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IHJl
c2l6ZSh1bnNpZ25lZCBuZXdTaXplKTsKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGNh
blNocmluaygpIGNvbnN0OwogCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc2hyaW5rVG9G
aXQoKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiBzaHJpbmtUb0ZpdCgpOwog
Ci0gICAgVUNoYXIgb3BlcmF0b3JbXSh1bnNpZ25lZCBpKSBjb25zdAorICAgIGJvb2wgaXM4Qml0
KCkgY29uc3QgeyByZXR1cm4gbV9pczhCaXQ7IH0KKworICAgIGJvb2wgZmFpbGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9mYWlsZWQ7IH0KKworICAgIEZhbGxpYmxlPFVDaGFyPiBvcGVyYXRvcltdKHVu
c2lnbmVkIGkpIGNvbnN0CiAgICAgeworICAgICAgICBpZiAobV9mYWlsZWQpCisgICAgICAgICAg
ICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmFpbHVyZTo6VW5oYW5kbGVkRmFpbHVyZSk7CiAgICAg
ICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGkgPCBtX2xlbmd0aCk7CiAgICAg
ICAgIGlmIChtX2lzOEJpdCkKLSAgICAgICAgICAgIHJldHVybiBjaGFyYWN0ZXJzOCgpW2ldOwot
ICAgICAgICByZXR1cm4gY2hhcmFjdGVyczE2KClbaV07CisgICAgICAgICAgICByZXR1cm4gKCpj
aGFyYWN0ZXJzOCgpKVtpXTsKKyAgICAgICAgcmV0dXJuICgqY2hhcmFjdGVyczE2KCkpW2ldOwog
ICAgIH0KIAotICAgIGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzOCgpIGNvbnN0CisgICAgRmFsbGli
bGU8Y29uc3QgTENoYXIqPiBjaGFyYWN0ZXJzOCgpIGNvbnN0CiAgICAgeworICAgICAgICBpZiAo
bV9mYWlsZWQpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmFpbHVyZTo6VW5o
YW5kbGVkRmFpbHVyZSk7CiAgICAgICAgIEFTU0VSVChtX2lzOEJpdCk7CiAgICAgICAgIGlmICgh
bV9sZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4gMDsKQEAgLTI2Miw4ICsyODksMTAgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gbV9idWZmZXItPmNoYXJhY3RlcnM4KCk7CiAgICAgfQogCi0g
ICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMxNigpIGNvbnN0CisgICAgRmFsbGlibGU8Y29uc3Qg
VUNoYXIqPiBjaGFyYWN0ZXJzMTYoKSBjb25zdAogICAgIHsKKyAgICAgICAgaWYgKG1fZmFpbGVk
KQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZhaWx1cmU6OlVuaGFuZGxlZEZh
aWx1cmUpOwogICAgICAgICBBU1NFUlQoIW1faXM4Qml0KTsKICAgICAgICAgaWYgKCFtX2xlbmd0
aCkKICAgICAgICAgICAgIHJldHVybiAwOwpAQCAtMjcyLDE2ICszMDEsMTUgQEAgcHVibGljOgog
ICAgICAgICBBU1NFUlQobV9idWZmZXIpOwogICAgICAgICByZXR1cm4gbV9idWZmZXItPmNoYXJh
Y3RlcnMxNigpOwogICAgIH0KLSAgICAKLSAgICBib29sIGlzOEJpdCgpIGNvbnN0IHsgcmV0dXJu
IG1faXM4Qml0OyB9CiAKICAgICB2b2lkIGNsZWFyKCkKICAgICB7CiAgICAgICAgIG1fbGVuZ3Ro
ID0gMDsKICAgICAgICAgbV9zdHJpbmcgPSBTdHJpbmcoKTsKICAgICAgICAgbV9idWZmZXIgPSBu
dWxscHRyOwotICAgICAgICBtX2J1ZmZlckNoYXJhY3RlcnM4ID0gMDsKICAgICAgICAgbV9pczhC
aXQgPSB0cnVlOworICAgICAgICBtX2ZhaWxlZCA9IGZhbHNlOworICAgICAgICBtX2J1ZmZlckNo
YXJhY3RlcnM4ID0gMDsKICAgICB9CiAKICAgICB2b2lkIHN3YXAoU3RyaW5nQnVpbGRlciYgc3Ry
aW5nQnVpbGRlcikKQEAgLTI5MCwyOCArMzE4LDMyIEBAIHB1YmxpYzoKICAgICAgICAgbV9zdHJp
bmcuc3dhcChzdHJpbmdCdWlsZGVyLm1fc3RyaW5nKTsKICAgICAgICAgbV9idWZmZXIuc3dhcChz
dHJpbmdCdWlsZGVyLm1fYnVmZmVyKTsKICAgICAgICAgc3RkOjpzd2FwKG1faXM4Qml0LCBzdHJp
bmdCdWlsZGVyLm1faXM4Qml0KTsKKyAgICAgICAgc3RkOjpzd2FwKG1fZmFpbGVkLCBzdHJpbmdC
dWlsZGVyLm1fZmFpbGVkKTsKICAgICAgICAgc3RkOjpzd2FwKG1fYnVmZmVyQ2hhcmFjdGVyczgs
IHN0cmluZ0J1aWxkZXIubV9idWZmZXJDaGFyYWN0ZXJzOCk7CiAgICAgICAgIEFTU0VSVCghbV9i
dWZmZXIgfHwgbV9idWZmZXItPmxlbmd0aCgpID49IG1fbGVuZ3RoKTsKICAgICB9CiAKIHByaXZh
dGU6Ci0gICAgdm9pZCBhbGxvY2F0ZUJ1ZmZlcihjb25zdCBMQ2hhciogY3VycmVudENoYXJhY3Rl
cnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKTsKLSAgICB2b2lkIGFsbG9jYXRlQnVmZmVyKGNv
bnN0IFVDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpOwot
ICAgIHZvaWQgYWxsb2NhdGVCdWZmZXJVcENvbnZlcnQoY29uc3QgTENoYXIqIGN1cnJlbnRDaGFy
YWN0ZXJzLCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCk7CisgICAgRmFsbGlibGU8PiBhbGxvY2F0
ZUJ1ZmZlcihjb25zdCBMQ2hhciogY3VycmVudENoYXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVk
TGVuZ3RoKTsKKyAgICBGYWxsaWJsZTw+IGFsbG9jYXRlQnVmZmVyKGNvbnN0IFVDaGFyKiBjdXJy
ZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpOworICAgIEZhbGxpYmxlPD4g
YWxsb2NhdGVCdWZmZXJVcENvbnZlcnQoY29uc3QgTENoYXIqIGN1cnJlbnRDaGFyYWN0ZXJzLCB1
bnNpZ25lZCByZXF1aXJlZExlbmd0aCk7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBl
PgotICAgIHZvaWQgcmVhbGxvY2F0ZUJ1ZmZlcih1bnNpZ25lZCByZXF1aXJlZExlbmd0aCk7Cisg
ICAgRmFsbGlibGU8PiByZWFsbG9jYXRlQnVmZmVyKHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKTsK
ICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci0gICAgQUxXQVlTX0lOTElORSBDaGFy
VHlwZSogYXBwZW5kVW5pbml0aWFsaXplZCh1bnNpZ25lZCBsZW5ndGgpOworICAgIEFMV0FZU19J
TkxJTkUgRmFsbGlibGU8Q2hhclR5cGUqPiBhcHBlbmRVbmluaXRpYWxpemVkKHVuc2lnbmVkIGxl
bmd0aCk7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgotICAgIENoYXJUeXBlKiBh
cHBlbmRVbmluaXRpYWxpemVkU2xvdyh1bnNpZ25lZCBsZW5ndGgpOworICAgIEZhbGxpYmxlPENo
YXJUeXBlKj4gYXBwZW5kVW5pbml0aWFsaXplZFNsb3codW5zaWduZWQgbGVuZ3RoKTsKICAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci0gICAgQUxXQVlTX0lOTElORSBDaGFyVHlwZSAq
IGdldEJ1ZmZlckNoYXJhY3RlcnMoKTsKKyAgICBBTFdBWVNfSU5MSU5FIENoYXJUeXBlKiBnZXRC
dWZmZXJDaGFyYWN0ZXJzKCk7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVpZnlTdHJp
bmcoKSBjb25zdDsKKyAgICBXQVJOX1VOVVNFRF9SRVRVUk4gVW5leHBlY3RlZDxGYWlsdXJlPiB3
b3VsZE92ZXJmbG93KCk7CisgICAgV0FSTl9VTlVTRURfUkVUVVJOIFVuZXhwZWN0ZWQ8RmFpbHVy
ZT4gb3V0T2ZNZW1vcnkoKTsKIAotICAgIHVuc2lnbmVkIG1fbGVuZ3RoOworICAgIHVuc2lnbmVk
IG1fbGVuZ3RoIHsgMCB9OwogICAgIG11dGFibGUgU3RyaW5nIG1fc3RyaW5nOwogICAgIFJlZlB0
cjxTdHJpbmdJbXBsPiBtX2J1ZmZlcjsKLSAgICBib29sIG1faXM4Qml0OworICAgIGJvb2wgbV9p
czhCaXQgeyB0cnVlIH07CisgICAgYm9vbCBtX2ZhaWxlZCB7IGZhbHNlIH07CiAgICAgdW5pb24g
ewogICAgICAgICBMQ2hhciogbV9idWZmZXJDaGFyYWN0ZXJzODsKICAgICAgICAgVUNoYXIqIG1f
YnVmZmVyQ2hhcmFjdGVyczE2OwpAQCAtMzMzLDIwICszNjUsNDggQEAgQUxXQVlTX0lOTElORSBV
Q2hhciogU3RyaW5nQnVpbGRlcjo6Z2V0QnVmZmVyQ2hhcmFjdGVyczxVQ2hhcj4oKQogfSAgICAK
IAogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgotYm9vbCBlcXVhbChjb25zdCBTdHJpbmdC
dWlsZGVyJiBzLCBjb25zdCBDaGFyVHlwZSogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpCitpbmxp
bmUgYm9vbCBlcXVhbChjb25zdCBTdHJpbmdCdWlsZGVyJiBzLCBjb25zdCBDaGFyVHlwZSogYnVm
ZmVyLCB1bnNpZ25lZCBsZW5ndGgpCiB7CisgICAgaWYgKHMuZmFpbGVkKCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKwogICAgIGlmIChzLmxlbmd0aCgpICE9IGxlbmd0aCkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgaWYgKHMuaXM4Qml0KCkpCi0gICAgICAgIHJldHVybiBlcXVhbChz
LmNoYXJhY3RlcnM4KCksIGJ1ZmZlciwgbGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIGVxdWFsKCpz
LmNoYXJhY3RlcnM4KCksIGJ1ZmZlciwgbGVuZ3RoKTsKIAotICAgIHJldHVybiBlcXVhbChzLmNo
YXJhY3RlcnMxNigpLCBidWZmZXIsIGxlbmd0aCk7CisgICAgcmV0dXJuIGVxdWFsKCpzLmNoYXJh
Y3RlcnMxNigpLCBidWZmZXIsIGxlbmd0aCk7Cit9CisKK2lubGluZSBib29sIGVxdWFsKGNvbnN0
IFN0cmluZ0J1aWxkZXImIGEsIGNvbnN0IFN0cmluZ0J1aWxkZXImIGIpCit7CisgICAgaWYgKGEu
ZmFpbGVkKCkgfHwgYi5mYWlsZWQoKSkKKyAgICAgICAgcmV0dXJuIGEuZmFpbGVkKCkgPT0gYi5m
YWlsZWQoKTsKKworICAgIGlmIChhLmxlbmd0aCgpICE9IGIubGVuZ3RoKCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIGlmICghYS5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7
CisKKyAgICBpZiAoYS5pczhCaXQoKSkgeworICAgICAgICBpZiAoYi5pczhCaXQoKSkKKyAgICAg
ICAgICAgIHJldHVybiBlcXVhbCgqYS5jaGFyYWN0ZXJzOCgpLCAqYi5jaGFyYWN0ZXJzOCgpLCBh
Lmxlbmd0aCgpKTsKKyAgICAgICAgcmV0dXJuIGVxdWFsKCphLmNoYXJhY3RlcnM4KCksICpiLmNo
YXJhY3RlcnMxNigpLCBhLmxlbmd0aCgpKTsKKyAgICB9CisKKyAgICBpZiAoYi5pczhCaXQoKSkK
KyAgICAgICAgcmV0dXJuIGVxdWFsKCphLmNoYXJhY3RlcnMxNigpLCAqYi5jaGFyYWN0ZXJzOCgp
LCBhLmxlbmd0aCgpKTsKKyAgICByZXR1cm4gZXF1YWwoKmEuY2hhcmFjdGVyczE2KCksICpiLmNo
YXJhY3RlcnMxNigpLCBhLmxlbmd0aCgpKTsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFN0cmlu
Z1R5cGU+Ci1ib29sIGVxdWFsKGNvbnN0IFN0cmluZ0J1aWxkZXImIGEsIGNvbnN0IFN0cmluZ1R5
cGUmIGIpCitpbmxpbmUgYm9vbCBlcXVhbChjb25zdCBTdHJpbmdCdWlsZGVyJiBhLCBjb25zdCBT
dHJpbmdUeXBlJiBiKQogeworICAgIGlmIChhLmZhaWxlZCgpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKICAgICBpZiAoYS5sZW5ndGgoKSAhPSBiLmxlbmd0aCgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKQEAgLTM1NSwxMyArNDE1LDEzIEBAIGJvb2wgZXF1YWwoY29uc3QgU3RyaW5nQnVp
bGRlciYgYSwgY29uc3QgU3RyaW5nVHlwZSYgYikKIAogICAgIGlmIChhLmlzOEJpdCgpKSB7CiAg
ICAgICAgIGlmIChiLmlzOEJpdCgpKQotICAgICAgICAgICAgcmV0dXJuIGVxdWFsKGEuY2hhcmFj
dGVyczgoKSwgYi5jaGFyYWN0ZXJzOCgpLCBhLmxlbmd0aCgpKTsKLSAgICAgICAgcmV0dXJuIGVx
dWFsKGEuY2hhcmFjdGVyczgoKSwgYi5jaGFyYWN0ZXJzMTYoKSwgYS5sZW5ndGgoKSk7CisgICAg
ICAgICAgICByZXR1cm4gZXF1YWwoKmEuY2hhcmFjdGVyczgoKSwgYi5jaGFyYWN0ZXJzOCgpLCBh
Lmxlbmd0aCgpKTsKKyAgICAgICAgcmV0dXJuIGVxdWFsKCphLmNoYXJhY3RlcnM4KCksIGIuY2hh
cmFjdGVyczE2KCksIGEubGVuZ3RoKCkpOwogICAgIH0KIAogICAgIGlmIChiLmlzOEJpdCgpKQot
ICAgICAgICByZXR1cm4gZXF1YWwoYS5jaGFyYWN0ZXJzMTYoKSwgYi5jaGFyYWN0ZXJzOCgpLCBh
Lmxlbmd0aCgpKTsKLSAgICByZXR1cm4gZXF1YWwoYS5jaGFyYWN0ZXJzMTYoKSwgYi5jaGFyYWN0
ZXJzMTYoKSwgYS5sZW5ndGgoKSk7CisgICAgICAgIHJldHVybiBlcXVhbCgqYS5jaGFyYWN0ZXJz
MTYoKSwgYi5jaGFyYWN0ZXJzOCgpLCBhLmxlbmd0aCgpKTsKKyAgICByZXR1cm4gZXF1YWwoKmEu
Y2hhcmFjdGVyczE2KCksIGIuY2hhcmFjdGVyczE2KCksIGEubGVuZ3RoKCkpOwogfQogCiBpbmxp
bmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFN0cmluZ0J1aWxkZXImIGEsIGNvbnN0IFN0cmluZ0J1
aWxkZXImIGIpIHsgcmV0dXJuIGVxdWFsKGEsIGIpOyB9CkBAIC0zNzIsOSArNDMyLDEyIEBAIGlu
bGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgU3RyaW5nJiBhLCBjb25zdCBTdHJpbmdCdWlsZGVy
JiBiKSB7IHJldHVybiBlcXVhbChiCiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFN0cmlu
ZyYgYSwgY29uc3QgU3RyaW5nQnVpbGRlciYgYikgeyByZXR1cm4gIWVxdWFsKGIsIGEpOyB9CiAK
IHRlbXBsYXRlPD4gc3RydWN0IEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb25UcmFpdDxTdHJpbmdC
dWlsZGVyPiB7Ci0gICAgdXNpbmcgUmV0dXJuVHlwZSA9IHZvaWQ7CisgICAgdXNpbmcgUmV0dXJu
VHlwZSA9IFN0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD47CiAgICAgdXNpbmcgQWRkaXRpb25hbEFy
Z3VtZW50VHlwZSA9IFN0cmluZ0J1aWxkZXI7Ci0gICAgc3RhdGljIHZvaWQgZmx1c2goTENoYXIq
IGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgU3RyaW5nQnVpbGRlciogc3RyaW5nQnVpbGRl
cikgeyBzdHJpbmdCdWlsZGVyLT5hcHBlbmQoY2hhcmFjdGVycywgbGVuZ3RoKTsgfQorICAgIHN0
YXRpYyBSZXR1cm5UeXBlIGZsdXNoKExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgs
IFN0cmluZ0J1aWxkZXIqIHN0cmluZ0J1aWxkZXIpCisgICAgeworICAgICAgICByZXR1cm4gc3Ry
aW5nQnVpbGRlci0+YXBwZW5kKGNoYXJhY3RlcnMsIGxlbmd0aCk7CisgICAgfQogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1
aWxkZXJKU09OLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlckpTT04uY3Bw
CmluZGV4IDIyNjI5NWUuLjcwZGJiODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nQnVpbGRlckpTT04uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVp
bGRlckpTT04uY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwg
MjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdo
dCAoQykgMjAxNyBZdXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+LiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDE3IE1vemlsbGEgRm91bmRhdGlvbi4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTc0LDcgKzc0LDcgQEAgQUxXQVlTX0lOTElORSBzdGF0
aWMgdm9pZCBhcHBlbmRRdW90ZWRKU09OU3RyaW5nSW50ZXJuYWwoT3V0cHV0Q2hhcmFjdGVyVHlw
ZSomIG8KICAgICB9CiB9CiAKLWJvb2wgU3RyaW5nQnVpbGRlcjo6YXBwZW5kUXVvdGVkSlNPTlN0
cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3Ry
aW5nQnVpbGRlcjo6YXBwZW5kUXVvdGVkSlNPTlN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykK
IHsKICAgICAvLyBNYWtlIHN1cmUgd2UgaGF2ZSBlbm91Z2ggYnVmZmVyIHNwYWNlIHRvIGFwcGVu
ZCB0aGlzIHN0cmluZyB3aXRob3V0IGhhdmluZwogICAgIC8vIHRvIHdvcnJ5IGFib3V0IHJlYWxs
b2NhdGluZyBpbiB0aGUgbWlkZGxlLgpAQCAtODUsMjAgKzg1LDIxIEBAIGJvb2wgU3RyaW5nQnVp
bGRlcjo6YXBwZW5kUXVvdGVkSlNPTlN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKICAgICBt
YXhpbXVtQ2FwYWNpdHlSZXF1aXJlZCArPSAyICsgc3RyaW5nTGVuZ3RoICogNjsKICAgICB1bnNp
Z25lZCBhbGxvY2F0aW9uU2l6ZTsKICAgICBpZiAoQ2hlY2tlZFN0YXRlOjpEaWRPdmVyZmxvdyA9
PSBtYXhpbXVtQ2FwYWNpdHlSZXF1aXJlZC5zYWZlR2V0KGFsbG9jYXRpb25TaXplKSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gd291bGRPdmVyZmxvdygpOwogICAgIC8v
IFRoaXMgbWF4KCkgaXMgaGVyZSB0byBhbGxvdyB1cyB0byBhbGxvY2F0ZSBzaXplcyBiZXR3ZWVu
IHRoZSByYW5nZSBbMl4zMSwgMl4zMiAtIDJdIGJlY2F1c2Ugcm91bmRVcFRvUG93ZXJPZlR3bygx
PDwzMSArIHNvbWUgaW50IHNtYWxsZXIgdGhhbiAxPDwzMSkgPT0gMC4KICAgICAvLyBGSVhNRTog
cm91bmRVcFRvUG93ZXJPZlR3byBzaG91bGQgdGFrZSBDaGVja2VkPHVuc2lnbmVkPiBhbmQgYWJv
cnQgaWYgaXQgZmFpbHMgdG8gcm91bmQgdXAuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3NjA4NgogICAgIGFsbG9jYXRpb25TaXplID0gc3RkOjptYXgo
YWxsb2NhdGlvblNpemUsIHJvdW5kVXBUb1Bvd2VyT2ZUd28oYWxsb2NhdGlvblNpemUpKTsKIAot
ICAgIC8vIEFsbG9jYXRpbmcgdGhpcyBtdWNoIHdpbGwgZGVmaW5pdGVseSBmYWlsLgotICAgIGlm
IChhbGxvY2F0aW9uU2l6ZSA+PSAweDgwMDAwMDAwKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICBpZiAoaXM4Qml0KCkgJiYgIXN0cmluZy5pczhCaXQoKSkKLSAgICAgICAgYWxsb2NhdGVC
dWZmZXJVcENvbnZlcnQobV9idWZmZXJDaGFyYWN0ZXJzOCwgYWxsb2NhdGlvblNpemUpOwotICAg
IGVsc2UKLSAgICAgICAgcmVzZXJ2ZUNhcGFjaXR5KGFsbG9jYXRpb25TaXplKTsKKyAgICBpZiAo
aXM4Qml0KCkgJiYgIXN0cmluZy5pczhCaXQoKSkgeworICAgICAgICBhdXRvIGFsbG9jYXRlZCA9
IGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KG1fYnVmZmVyQ2hhcmFjdGVyczgsIGFsbG9jYXRpb25T
aXplKTsKKyAgICAgICAgaWYgKCFhbGxvY2F0ZWQpCisgICAgICAgICAgICByZXR1cm4gYWxsb2Nh
dGVkOworICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8gcmVzZXJ2ZWQgPSByZXNlcnZlQ2FwYWNp
dHkoYWxsb2NhdGlvblNpemUpOworICAgICAgICBpZiAoIXJlc2VydmVkKQorICAgICAgICAgICAg
cmV0dXJuIHJlc2VydmVkOworICAgIH0KICAgICBBU1NFUlQobV9idWZmZXItPmxlbmd0aCgpID49
IGFsbG9jYXRpb25TaXplKTsKIAogICAgIGlmIChpczhCaXQoKSkgewpAQCAtMTE5LDcgKzEyMCw3
IEBAIGJvb2wgU3RyaW5nQnVpbGRlcjo6YXBwZW5kUXVvdGVkSlNPTlN0cmluZyhjb25zdCBTdHJp
bmcmIHN0cmluZykKICAgICAgICAgbV9sZW5ndGggPSBvdXRwdXQgLSBtX2J1ZmZlckNoYXJhY3Rl
cnMxNjsKICAgICB9CiAgICAgQVNTRVJUKG1fYnVmZmVyLT5sZW5ndGgoKSA+PSBtX2xlbmd0aCk7
Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHsgfTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwIGIvU291
cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcAppbmRleCA3NzQ4NzZiLi5lZWQwOWFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAKQEAgLTIwNiwyMiArMjA2LDI0IEBAIFJlZjxT
dHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdGVVbmluaXRpYWxpemVkKHVuc2lnbmVkIGxlbmd0
aCwgVUNoYXIqJiBkYXRhKQogICAgIHJldHVybiBjcmVhdGVVbmluaXRpYWxpemVkSW50ZXJuYWwo
bGVuZ3RoLCBkYXRhKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gaW5s
aW5lIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpyZWFsbG9jYXRlSW50ZXJuYWwoUmVmPFN0
cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2lnbmVkIGxlbmd0aCwgQ2hhcmFjdGVyVHlw
ZSomIGRhdGEpCit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBpbmxpbmUgUmVmUHRy
PFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OnJlYWxsb2NhdGVJbnRlcm5hbChSZWY8U3RyaW5nSW1w
bD4mJiBvcmlnaW5hbFN0cmluZywgdW5zaWduZWQgbGVuZ3RoLCBDaGFyYWN0ZXJUeXBlKiYgZGF0
YSkKIHsKICAgICBBU1NFUlQob3JpZ2luYWxTdHJpbmctPmhhc09uZVJlZigpKTsKICAgICBBU1NF
UlQob3JpZ2luYWxTdHJpbmctPmJ1ZmZlck93bmVyc2hpcCgpID09IEJ1ZmZlckludGVybmFsKTsK
IAogICAgIGlmICghbGVuZ3RoKSB7CiAgICAgICAgIGRhdGEgPSAwOwotICAgICAgICByZXR1cm4g
KmVtcHR5KCk7CisgICAgICAgIHJldHVybiBlbXB0eSgpOwogICAgIH0KIAogICAgIC8vIFNhbWUg
YXMgY3JlYXRlVW5pbml0aWFsaXplZCgpIGV4Y2VwdCBoZXJlIHdlIHVzZSBzdHJpbmdSZWFsbG9j
LgotICAgIGlmIChsZW5ndGggPiAoKHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgo
KSAtIHNpemVvZihTdHJpbmdJbXBsKSkgLyBzaXplb2YoQ2hhcmFjdGVyVHlwZSkpKQotICAgICAg
ICBDUkFTSCgpOworICAgIGlmIChVTkxJS0VMWShsZW5ndGggPiAoKHN0ZDo6bnVtZXJpY19saW1p
dHM8dW5zaWduZWQ+OjptYXgoKSAtIHNpemVvZihTdHJpbmdJbXBsKSkgLyBzaXplb2YoQ2hhcmFj
dGVyVHlwZSkpKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBvcmlnaW5hbFN0cmlu
Zy0+flN0cmluZ0ltcGwoKTsKICAgICBhdXRvKiBzdHJpbmcgPSBzdGF0aWNfY2FzdDxTdHJpbmdJ
bXBsKj4oc3RyaW5nUmVhbGxvYygmb3JpZ2luYWxTdHJpbmcubGVha1JlZigpLCBhbGxvY2F0aW9u
U2l6ZTxDaGFyYWN0ZXJUeXBlPihsZW5ndGgpKSk7CisgICAgaWYgKFVOTElLRUxZKCFzdHJpbmcp
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGRhdGEgPSBzdHJpbmctPnRhaWxQb2lu
dGVyPENoYXJhY3RlclR5cGU+KCk7CiAgICAgcmV0dXJuIGNvbnN0cnVjdEludGVybmFsPENoYXJh
Y3RlclR5cGU+KCpzdHJpbmcsIGxlbmd0aCk7CkBAIC0yMzAsMTMgKzIzMiwzMyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBpbmxpbmUgUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0lt
cGw6OnJlYWxsb2NhdGVJbgogUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OnJlYWxsb2NhdGUo
UmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2lnbmVkIGxlbmd0aCwgTENoYXIq
JiBkYXRhKQogewogICAgIEFTU0VSVChvcmlnaW5hbFN0cmluZy0+aXM4Qml0KCkpOwotICAgIHJl
dHVybiByZWFsbG9jYXRlSW50ZXJuYWwoV1RGTW92ZShvcmlnaW5hbFN0cmluZyksIGxlbmd0aCwg
ZGF0YSk7CisgICAgaWYgKGF1dG8gcmVhbGxvY2F0ZWQgPSByZWFsbG9jYXRlSW50ZXJuYWwoV1RG
TW92ZShvcmlnaW5hbFN0cmluZyksIGxlbmd0aCwgZGF0YSkpCisgICAgICAgIHJldHVybiAqcmVh
bGxvY2F0ZWQ7CisgICAgQ1JBU0goKTsKIH0KIAogUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6
OnJlYWxsb2NhdGUoUmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2lnbmVkIGxl
bmd0aCwgVUNoYXIqJiBkYXRhKQogewogICAgIEFTU0VSVCghb3JpZ2luYWxTdHJpbmctPmlzOEJp
dCgpKTsKLSAgICByZXR1cm4gcmVhbGxvY2F0ZUludGVybmFsKFdURk1vdmUob3JpZ2luYWxTdHJp
bmcpLCBsZW5ndGgsIGRhdGEpOworICAgIGlmIChhdXRvIHJlYWxsb2NhdGVkID0gcmVhbGxvY2F0
ZUludGVybmFsKFdURk1vdmUob3JpZ2luYWxTdHJpbmcpLCBsZW5ndGgsIGRhdGEpKQorICAgICAg
ICByZXR1cm4gKnJlYWxsb2NhdGVkOworICAgIENSQVNIKCk7Cit9CisKK1JlZlB0cjxTdHJpbmdJ
bXBsPiBTdHJpbmdJbXBsOjp0cnlSZWFsbG9jYXRlKFJlZjxTdHJpbmdJbXBsPiYmIG9yaWdpbmFs
U3RyaW5nLCB1bnNpZ25lZCBsZW5ndGgsIExDaGFyKiYgZGF0YSkKK3sKKyAgICBBU1NFUlQob3Jp
Z2luYWxTdHJpbmctPmlzOEJpdCgpKTsKKyAgICBpZiAoYXV0byByZWFsbG9jYXRlZCA9IHJlYWxs
b2NhdGVJbnRlcm5hbChXVEZNb3ZlKG9yaWdpbmFsU3RyaW5nKSwgbGVuZ3RoLCBkYXRhKSkKKyAg
ICAgICAgcmV0dXJuIHJlYWxsb2NhdGVkLmdldCgpOworICAgIHJldHVybiBudWxscHRyOworfQor
CitSZWZQdHI8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6dHJ5UmVhbGxvY2F0ZShSZWY8U3RyaW5n
SW1wbD4mJiBvcmlnaW5hbFN0cmluZywgdW5zaWduZWQgbGVuZ3RoLCBVQ2hhciomIGRhdGEpCit7
CisgICAgQVNTRVJUKCFvcmlnaW5hbFN0cmluZy0+aXM4Qml0KCkpOworICAgIGlmIChhdXRvIHJl
YWxsb2NhdGVkID0gcmVhbGxvY2F0ZUludGVybmFsKFdURk1vdmUob3JpZ2luYWxTdHJpbmcpLCBs
ZW5ndGgsIGRhdGEpKQorICAgICAgICByZXR1cm4gcmVhbGxvY2F0ZWQuZ2V0KCk7CisgICAgcmV0
dXJuIG51bGxwdHI7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IGlubGlu
ZSBSZWY8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6Y3JlYXRlSW50ZXJuYWwoY29uc3QgQ2hhcmFj
dGVyVHlwZSogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0lt
cGwuaAppbmRleCA2MTZkYTI1Li44ZGY5ZTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L1N0cmluZ0ltcGwuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaApA
QCAtMjI5LDYgKzIyOSw3IEBAIHB1YmxpYzoKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGlj
IFJlZjxTdHJpbmdJbXBsPiBjcmVhdGUoY29uc3QgTENoYXIqKTsKICAgICBBTFdBWVNfSU5MSU5F
IHN0YXRpYyBSZWY8U3RyaW5nSW1wbD4gY3JlYXRlKGNvbnN0IGNoYXIqIHN0cmluZykgeyByZXR1
cm4gY3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihzdHJpbmcpKTsgfQogCisg
ICAgc3RhdGljIFJlZlB0cjxTdHJpbmdJbXBsPiB0cnlDcmVhdGVTdWJzdHJpbmdTaGFyaW5nSW1w
bChTdHJpbmdJbXBsJiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpOwogICAgIHN0
YXRpYyBSZWY8U3RyaW5nSW1wbD4gY3JlYXRlU3Vic3RyaW5nU2hhcmluZ0ltcGwoU3RyaW5nSW1w
bCYsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKIAogICAgIHRlbXBsYXRlPHVu
c2lnbmVkIGNoYXJhY3RlckNvdW50PiBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0ZUZyb21M
aXRlcmFsKGNvbnN0IGNoYXIgKCYpW2NoYXJhY3RlckNvdW50XSk7CkBAIC0yNDgsNiArMjQ5LDgg
QEAgcHVibGljOgogICAgIC8vIHRoZSBvcmlnaW5hbFN0cmluZyBjYW4ndCBiZSB1c2VkIGFmdGVy
IHRoaXMgZnVuY3Rpb24uCiAgICAgc3RhdGljIFJlZjxTdHJpbmdJbXBsPiByZWFsbG9jYXRlKFJl
ZjxTdHJpbmdJbXBsPiYmIG9yaWdpbmFsU3RyaW5nLCB1bnNpZ25lZCBsZW5ndGgsIExDaGFyKiYg
ZGF0YSk7CiAgICAgc3RhdGljIFJlZjxTdHJpbmdJbXBsPiByZWFsbG9jYXRlKFJlZjxTdHJpbmdJ
bXBsPiYmIG9yaWdpbmFsU3RyaW5nLCB1bnNpZ25lZCBsZW5ndGgsIFVDaGFyKiYgZGF0YSk7Cisg
ICAgc3RhdGljIFJlZlB0cjxTdHJpbmdJbXBsPiB0cnlSZWFsbG9jYXRlKFJlZjxTdHJpbmdJbXBs
PiYmIG9yaWdpbmFsU3RyaW5nLCB1bnNpZ25lZCBsZW5ndGgsIExDaGFyKiYgZGF0YSk7CisgICAg
c3RhdGljIFJlZlB0cjxTdHJpbmdJbXBsPiB0cnlSZWFsbG9jYXRlKFJlZjxTdHJpbmdJbXBsPiYm
IG9yaWdpbmFsU3RyaW5nLCB1bnNpZ25lZCBsZW5ndGgsIFVDaGFyKiYgZGF0YSk7CiAKICAgICBz
dGF0aWMgdW5zaWduZWQgZmxhZ3NPZmZzZXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoU3Ry
aW5nSW1wbCwgbV9oYXNoQW5kRmxhZ3MpOyB9CiAgICAgc3RhdGljIHVuc2lnbmVkIGZsYWdJczhC
aXQoKSB7IHJldHVybiBzX2hhc2hGbGFnOEJpdEJ1ZmZlcjsgfQpAQCAtNTAzLDcgKzUwNiw3IEBA
IHByaXZhdGU6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gc3RhdGljIFJl
ZjxTdHJpbmdJbXBsPiBjb25zdHJ1Y3RJbnRlcm5hbChTdHJpbmdJbXBsJiwgdW5zaWduZWQpOwog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHN0YXRpYyBSZWY8U3RyaW5nSW1w
bD4gY3JlYXRlVW5pbml0aWFsaXplZEludGVybmFsKHVuc2lnbmVkLCBDaGFyYWN0ZXJUeXBlKiYp
OwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHN0YXRpYyBSZWY8U3RyaW5n
SW1wbD4gY3JlYXRlVW5pbml0aWFsaXplZEludGVybmFsTm9uRW1wdHkodW5zaWduZWQsIENoYXJh
Y3RlclR5cGUqJik7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gc3RhdGlj
IFJlZjxTdHJpbmdJbXBsPiByZWFsbG9jYXRlSW50ZXJuYWwoUmVmPFN0cmluZ0ltcGw+JiYsIHVu
c2lnbmVkLCBDaGFyYWN0ZXJUeXBlKiYpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3Rl
clR5cGU+IHN0YXRpYyBSZWZQdHI8U3RyaW5nSW1wbD4gcmVhbGxvY2F0ZUludGVybmFsKFJlZjxT
dHJpbmdJbXBsPiYmLCB1bnNpZ25lZCwgQ2hhcmFjdGVyVHlwZSomKTsKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0ZUludGVy
bmFsKGNvbnN0IENoYXJhY3RlclR5cGUqLCB1bnNpZ25lZCk7CiAgICAgV1RGX0VYUE9SVF9QUklW
QVRFIE5FVkVSX0lOTElORSB1bnNpZ25lZCBoYXNoU2xvd0Nhc2UoKSBjb25zdDsKIApAQCAtOTE0
LDIyICs5MTcsMzEgQEAgdGVtcGxhdGU8c2l6ZV90IGlubGluZUNhcGFjaXR5PiBpbmxpbmUgUmVm
PFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OmNyZWF0ZThCaXRJZlAKICAgICByZXR1cm4gY3JlYXRl
OEJpdElmUG9zc2libGUodmVjdG9yLmRhdGEoKSwgdmVjdG9yLnNpemUoKSk7CiB9CiAKLUFMV0FZ
U19JTkxJTkUgUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OmNyZWF0ZVN1YnN0cmluZ1NoYXJp
bmdJbXBsKFN0cmluZ0ltcGwmIHJlcCwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgp
CitBTFdBWVNfSU5MSU5FIFJlZlB0cjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjp0cnlDcmVhdGVT
dWJzdHJpbmdTaGFyaW5nSW1wbChTdHJpbmdJbXBsJiByZXAsIHVuc2lnbmVkIG9mZnNldCwgdW5z
aWduZWQgbGVuZ3RoKQogewogICAgIEFTU0VSVChsZW5ndGggPD0gcmVwLmxlbmd0aCgpKTsKIAog
ICAgIGlmICghbGVuZ3RoKQotICAgICAgICByZXR1cm4gKmVtcHR5KCk7CisgICAgICAgIHJldHVy
biBlbXB0eSgpOwogCiAgICAgYXV0byogb3duZXJSZXAgPSAoKHJlcC5idWZmZXJPd25lcnNoaXAo
KSA9PSBCdWZmZXJTdWJzdHJpbmcpID8gcmVwLnN1YnN0cmluZ0J1ZmZlcigpIDogJnJlcCk7CiAK
ICAgICAvLyBXZSBhbGxvY2F0ZSBhIGJ1ZmZlciB0aGF0IGNvbnRhaW5zIGJvdGggdGhlIFN0cmlu
Z0ltcGwgc3RydWN0IGFzIHdlbGwgYXMgdGhlIHBvaW50ZXIgdG8gdGhlIG93bmVyIHN0cmluZy4K
ICAgICBhdXRvKiBzdHJpbmdJbXBsID0gc3RhdGljX2Nhc3Q8U3RyaW5nSW1wbCo+KHN0cmluZ01h
bGxvYyhhbGxvY2F0aW9uU2l6ZTxTdHJpbmdJbXBsKj4oMSkpKTsKKyAgICBpZiAoIXN0cmluZ0lt
cGwpCisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGlmIChyZXAuaXM4Qml0KCkpCiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IChOb3ROdWxsLCBzdHJpbmdJbXBsKSBTdHJpbmdJbXBs
KHJlcC5tX2RhdGE4ICsgb2Zmc2V0LCBsZW5ndGgsICpvd25lclJlcCkpOwogICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IChOb3ROdWxsLCBzdHJpbmdJbXBsKSBTdHJpbmdJbXBsKHJlcC5tX2RhdGEx
NiArIG9mZnNldCwgbGVuZ3RoLCAqb3duZXJSZXApKTsKIH0KIAorQUxXQVlTX0lOTElORSBSZWY8
U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6Y3JlYXRlU3Vic3RyaW5nU2hhcmluZ0ltcGwoU3RyaW5n
SW1wbCYgcmVwLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICBpZiAo
YXV0byBjcmVhdGVkID0gdHJ5Q3JlYXRlU3Vic3RyaW5nU2hhcmluZ0ltcGwocmVwLCBvZmZzZXQs
IGxlbmd0aCkpCisgICAgICAgIHJldHVybiAqY3JlYXRlZDsKKyAgICBDUkFTSCgpOworfQorCiB0
ZW1wbGF0ZTx1bnNpZ25lZCBjaGFyYWN0ZXJDb3VudD4gQUxXQVlTX0lOTElORSBSZWY8U3RyaW5n
SW1wbD4gU3RyaW5nSW1wbDo6Y3JlYXRlRnJvbUxpdGVyYWwoY29uc3QgY2hhciAoJmNoYXJhY3Rl
cnMpW2NoYXJhY3RlckNvdW50XSkKIHsKICAgICBDT01QSUxFX0FTU0VSVChjaGFyYWN0ZXJDb3Vu
dCA+IDEsIFN0cmluZ0ltcGxGcm9tTGl0ZXJhbE5vdEVtcHR5KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvVGV4dFN0cmVhbS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRT
dHJlYW0uY3BwCmluZGV4IGFhZjYxOTQuLmQzYjUzMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvVGV4dFN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0U3Ry
ZWFtLmNwcApAQCAtMTMyLDkgKzEzMiwxMSBAQCBUZXh0U3RyZWFtJiBUZXh0U3RyZWFtOjpvcGVy
YXRvcjw8KGNvbnN0IEZvcm1hdE51bWJlclJlc3BlY3RpbmdJbnRlZ2VycyYgbnVtYmVyVAogCiBT
dHJpbmcgVGV4dFN0cmVhbTo6cmVsZWFzZSgpCiB7Ci0gICAgU3RyaW5nIHJlc3VsdCA9IG1fdGV4
dC50b1N0cmluZygpOwotICAgIG1fdGV4dC5jbGVhcigpOwotICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgaWYgKGF1dG8gcmVzdWx0ID0gbV90ZXh0LnRvU3RyaW5nKCkpIHsKKyAgICAgICAgbV90ZXh0
LmNsZWFyKCk7CisgICAgICAgIHJldHVybiAqcmVzdWx0OworICAgIH0KKyAgICBDUkFTSCgpOwog
fQogCiB2b2lkIFRleHRTdHJlYW06OnN0YXJ0R3JvdXAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDUxZDhhZDAu
LjUxM2EwMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MTMgQEAKKzIwMTgtMDQtMjYgIEpGIEJh
c3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgorCisgICAgICAgIFN0cmluZ0J1aWxkZXIgaXMg
ZmFsbGlibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4NTA0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFN0cmluZ0J1aWxkZXIgY2FuIGZhaWwgd2hlbiBhbGxvY2F0aW5nIG1lbW9yeS4gU3RyaW5nQnVp
bGRlciBpcworICAgICAgICBtb3N0bHkgdXNlZCB3aXRoIHVzZXIgaW5wdXQsIHdoaWNoIG9mdGVu
IG1lYW5zIHRoYXQganVzdCBjcmFzaGluZworICAgICAgICBpc24ndCB0aGUgcmlnaHQgb3V0Y29t
ZS4gT3VyIGZ1enplcnMgb2Z0ZW4gZW5jb3VudGVyIHN1Y2ggdGhpbmdzCisgICAgICAgIGZvciBK
YXZhU2NyaXB0Q29yZSwgYW5kIHNvIGZhciB3ZSd2ZSBhcHBsaWVkIHBvaW50IHNvbHV0aW9ucy4g
Tm8KKyAgICAgICAgbW9yZSEKKworCisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9Q
YXltZW50Q29udGFjdENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydCk6CisgICAg
ICAgICogTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6cmVzb2x2ZVJlbGF0aXZlVmlydHVhbFBhdGgpOgorICAgICAgICAqIE1vZHVsZXMvZ2Vv
bG9jYXRpb24vR2VvbG9jYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6bG9nRXJyb3IpOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SURCS2V5RGF0YTo6bG9nZ2luZ1N0cmluZyBjb25zdCk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCS2V5UGF0aC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsb2dnaW5nU3Ry
aW5nKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSW5kZXhWYWx1ZVN0b3Jl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SW5kZXhWYWx1ZVN0b3JlOjpsb2dn
aW5nU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FM
aXRlSURCQ3Vyc29yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6YnVpbGRJbmRl
eFN0YXRlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OmJ1aWxkT2JqZWN0U3Rv
cmVTdGF0ZW1lbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJEYXRh
YmFzZUluZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VJbmZvOjpsb2dnaW5n
U3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCT2Jq
ZWN0U3RvcmVJbmZvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlSW5mbzo6
bG9nZ2luZ1N0cmluZyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vV2Vi
TWVkaWFTZXNzaW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjptZWRpYVByb2R1Y2Vy
U3RhdGVTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6
dG9TdHJpbmcpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25C
YWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbHRlcklDRUNhbmRpZGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmZpbHRlclNEUCBjb25zdCk6Cisg
ICAgICAgICogTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQ6OnlvdVR1YmVVUkxGcm9t
QWJzb2x1dGVVUkwpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFj
a2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdlbmVyYXRlRGF0YWJhc2VGaWxlTmFtZSk6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjplbmNvZGVQcm90b2NvbFN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpqb2luU3RyaW5n
cyk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3Bh
dGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hl
cjo6Y3JlYXRlSGVhZGVyVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
RXh0ZW5zaW9uRGlzcGF0Y2hlcjo6YWNjZXB0ZWRFeHRlbnNpb25zIGNvbnN0KToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnJlc291cmNlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpob3N0TmFtZSk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudExvY2F0aW9uIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZW50SGFuZHNoYWtlTWVz
c2FnZSBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzaG91bGRBZGRTcGFjZUJlZm9yZUFwcGVuZGlu
Z05leHRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
Ojp0ZXh0VW5kZXJFbGVtZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0OjphY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25Gb3JDaGlsZHJlbiBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWNjZXNzaWJpbGl0
eURlc2NyaXB0aW9uRm9yRWxlbWVudHMgY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
T2JqZWN0OjpzdHJpbmdGb3JSYW5nZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5T2JqZWN0OjpzdHJpbmdGb3JWaXNpYmxlUG9zaXRpb25SYW5nZSk6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06Cisg
ICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIHZhbHVlRGVzY3JpcHRpb25G
b3JNZXRlcl0pOgorICAgICAgICAoZm9ybWF0Rm9yRGVidWdnZXIpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRE9NQ29udmVydFN0cmluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RyaW5n
VG9VU1ZTdHJpbmcpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxp
bmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dGhyb3dBcmd1bWVudE11c3RCZUVudW1FcnJvcik6
CisgICAgICAgIChXZWJDb3JlOjp0aHJvd0FyZ3VtZW50TXVzdEJlRnVuY3Rpb25FcnJvcik6Cisg
ICAgICAgIChXZWJDb3JlOjp0aHJvd0FyZ3VtZW50VHlwZUVycm9yKToKKyAgICAgICAgKFdlYkNv
cmU6OnRocm93UmVxdWlyZWRNZW1iZXJUeXBlRXJyb3IpOgorICAgICAgICAqIGNvbnRlbnRleHRl
bnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
RXh0ZW5zaW9uczo6cHJlZml4VHJlZVZlcnRleFRvU3RyaW5nKToKKyAgICAgICAgKiBjb250ZW50
ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uOjpjb21waWxlR2xvYmFsRGlzcGxheU5vbmVT
dHlsZVNoZWV0KToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9u
Q29tcGlsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OnJlc29s
dmVQZW5kaW5nRGlzcGxheU5vbmVBY3Rpb25zKToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9u
cy9Db250ZW50RXh0ZW5zaW9uU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvblN0eWxlU2hlZXQ6OmFkZERpc3BsYXlOb25l
U2VsZWN0b3IpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL1Rlcm0uaDoKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpUZXJtOjp0b1N0cmluZyBjb25zdCk6CisgICAg
ICAgICogY3NzL0NTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWU6OmN1c3RvbUNTU1RleHQgY29u
c3QpOgorICAgICAgICAqIGNzcy9DU1NCYXNpY1NoYXBlcy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpidWlsZENpcmNsZVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpidWlsZEVsbGlwc2VTdHJp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRQYXRoU3RyaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OmJ1aWxkUG9seWdvblN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpidWlsZEluc2V0U3Ry
aW5nKToKKyAgICAgICAgKiBjc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpidWlsZENzc1RleHQpOgorICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6OmN1c3RvbUNTU1RleHQgY29u
c3QpOgorICAgICAgICAqIGNzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU0N1cnNvckltYWdlVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAg
ICAqIGNzcy9DU1NDdXN0b21JZGVudFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0N1
c3RvbUlkZW50VmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NG
aWx0ZXJJbWFnZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZpbHRlckltYWdlVmFs
dWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZVJ1bGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VSdWxlOjpjc3NUZXh0IGNvbnN0KToK
KyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NGb250RmFjZVNyY1ZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBj
c3MvQ1NTRm9udEZlYXR1cmVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmVh
dHVyZVZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTRm9udFN0
eWxlUmFuZ2VWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250U3R5bGVSYW5nZVZh
bHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTRm9udFN0eWxlVmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udFN0eWxlVmFsdWU6OmN1c3RvbUNTU1Rl
eHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NGb250VmFsdWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTRm9udFZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3Mv
Q1NTRm9udFZhcmlhdGlvblZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRWYXJp
YXRpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0Z1bmN0
aW9uVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRnVuY3Rpb25WYWx1ZTo6Y3VzdG9t
Q1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTTGluZWFyR3JhZGllbnRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NSYWRpYWxHcmFkaWVudFZhbHVlOjpjdXN0b21DU1NU
ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbmljR3JhZGllbnRWYWx1ZTo6Y3Vz
dG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0dyaWRBdXRvUmVwZWF0VmFsdWUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTR3JpZEF1dG9SZXBlYXRWYWx1ZTo6Y3VzdG9tQ1NT
VGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZTo6Y3VzdG9tQ1NT
VGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTSW1hZ2VTZXRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAg
ICAgICogY3NzL0NTU0ltcG9ydFJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1wb3J0
UnVsZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0tleWZyYW1lUnVsZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVLZXlmcmFtZTo6a2V5VGV4dCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVLZXlmcmFtZTo6Y3NzVGV4dCBjb25zdCk6CisgICAg
ICAgICogY3NzL0NTU0tleWZyYW1lc1J1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTS2V5
ZnJhbWVzUnVsZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0xpbmVCb3hDb250
YWluVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTGluZUJveENvbnRhaW5WYWx1ZTo6
Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU01hcmt1cC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpzZXJpYWxpemVTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6c2VyaWFs
aXplQXNTdHJpbmdPckN1c3RvbUlkZW50KToKKyAgICAgICAgKiBjc3MvQ1NTTWVkaWFSdWxlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU01lZGlhUnVsZTo6Y3NzVGV4dCBjb25zdCk6CisgICAg
ICAgICogY3NzL0NTU05hbWVzcGFjZVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTmFt
ZXNwYWNlUnVsZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU1BhZ2VSdWxlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhZ2VSdWxlOjpzZWxlY3RvclRleHQgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUGFnZVJ1bGU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAq
IGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRp
dmVWYWx1ZTo6Zm9ybWF0TnVtYmVyRm9yQ3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICog
Y3NzL0NTU1Byb3BlcnR5U291cmNlRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9w
ZXJ0eVNvdXJjZURhdGE6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnNlbGVjdG9yVGV4dCBjb25z
dCk6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NTZWxlY3Rvckxpc3Q6OnNlbGVjdG9yc1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9D
U1NTaGFkb3dWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTaGFkb3dWYWx1ZTo6Y3Vz
dG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU1N0eWxlUnVsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NTdHlsZVJ1bGU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIGNz
cy9DU1NTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2hlZXQ6OmFk
ZFJ1bGUpOgorICAgICAgICAqIGNzcy9DU1NTdXBwb3J0c1J1bGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTU3VwcG9ydHNSdWxlOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NT
VGltaW5nRnVuY3Rpb25WYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDdWJpY0Jlemll
clRpbWluZ0Z1bmN0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTU3RlcHNUaW1pbmdGdW5jdGlvblZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0ZyYW1lc1RpbWluZ0Z1bmN0aW9uVmFsdWU6OmN1c3RvbUNT
U1RleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3ByaW5nVGltaW5nRnVuY3Rpb25W
YWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU1ZhbHVlTGlzdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZUxpc3Q6OmN1c3RvbUNTU1RleHQgY29uc3Qp
OgorICAgICAgICAqIGNzcy9DU1NWYXJpYWJsZURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTVmFyaWFibGVEYXRhOjpjb25zdW1lQW5kVXBkYXRlVG9rZW5zKToKKyAgICAgICAgKiBjc3Mv
RE9NQ1NTTmFtZXNwYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNTU05hbWVzcGFjZTo6
ZXNjYXBlKToKKyAgICAgICAgKiBjc3MvRE9NTWF0cml4UmVhZE9ubHkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RE9NTWF0cml4UmVhZE9ubHk6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBj
c3MvRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJl
Y2F0ZWRDU1NPTVZhbHVlTGlzdDo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0ZvbnRG
YWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGYWNlOjpzdHlsZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpGb250RmFjZTo6d2VpZ2h0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRGYWNlOjpzdHJldGNoIGNvbnN0KToKKyAgICAgICAgKiBjc3MvTWVkaWFMaXN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlTZXQ6Om1lZGlhVGV4dCBjb25zdCk6CisgICAg
ICAgICogY3NzL01lZGlhUXVlcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeTo6
c2VyaWFsaXplIGNvbnN0KToKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUV4cHJlc3Npb246OnNlcmlhbGl6ZSBjb25z
dCk6CisgICAgICAgICogY3NzL1JlY3QuaDoKKyAgICAgICAgKiBjc3MvU3R5bGVQcm9wZXJ0aWVz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6Zm9udFZhbHVlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6Z2V0NFZhbHVlcyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OmdldExheWVyZWRTaG9ydGhhbmRW
YWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OmdldFNob3J0
aGFuZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6Ym9y
ZGVyUHJvcGVydHlWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRp
ZXM6OmFzVGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OlBy
b3BlcnR5UmVmZXJlbmNlOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvV2ViS2l0Q1NT
TWF0cml4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdENTU01hdHJpeDo6dG9TdHJpbmcg
Y29uc3QpOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NWaWV3cG9ydFJ1bGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViS2l0Q1NTVmlld3BvcnRSdWxlOjpjc3NUZXh0IGNvbnN0KToKKyAgICAg
ICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJz
ZXI6OnBhcnNlRm9udEZhY2VEZXNjcmlwdG9yKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Bh
cnNlclRva2VuLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlclRva2VuOjpzZXJpYWxp
emUgY29uc3QpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW5SYW5nZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJUb2tlblJhbmdlOjpzZXJpYWxpemUgY29uc3Qp
OgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y29uY2F0ZW5hdGVGYW1pbHlOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNl
R3JpZFRlbXBsYXRlQXJlYXNDb2x1bW5OYW1lcyk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NU
b2tlbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9rZW5pemVyOjpjb25zdW1lU3Ry
aW5nVG9rZW5VbnRpbCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb2tlbml6ZXI6OmNvbnN1bWVV
cmxUb2tlbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb2tlbml6ZXI6OmNvbnN1bWVOYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1Rva2VuaXplcjo6Y29uc3VtZUVzY2FwZSk6CisgICAgICAg
ICogZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVy
dEF0dHJpYnV0ZU5hbWVUb1Byb3BlcnR5TmFtZSk6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Zm9ybWF0Rm9yRGVidWdnZXIgY29uc3QpOgor
ICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnRleHRDb250
ZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnNob3dOb2RlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OnRyYXZlcnNlVHJlZUFuZE1hcmspOgorICAgICAgICAqIGRvbS9Qb3Np
dGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6Zm9ybWF0Rm9yRGVidWdnZXIg
Y29uc3QpOgorICAgICAgICAqIGRvbS9SYW5nZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSYW5n
ZTo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OmZvcm1hdEZvckRl
YnVnZ2VyIGNvbnN0KToKKyAgICAgICAgKiBkb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRocm90dGxpbmdSZWFzb25zVG9TdHJpbmcpOgorICAg
ICAgICAqIGRvbS9TZWN1cml0eUNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJp
dHlDb250ZXh0OjpwYXJzZVNhbmRib3hQb2xpY3kpOgorICAgICAgICAqIGRvbS9UZXh0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRleHQ6Ondob2xlVGV4dCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0Ojpmb3JtYXRGb3JEZWJ1Z2dlciBjb25zdCk6CisgICAgICAgICogZG9tL1RleHRO
b2RlVHJhdmVyc2FsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHROb2RlVHJhdmVyc2FsOjpj
b250ZW50c0FzU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHROb2RlVHJhdmVyc2FsOjpj
aGlsZFRleHRDb250ZW50KToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjphZGRCbG9ja1N0eWxlKToK
KyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RyaW5n
V2l0aFJlYmFsYW5jZWRXaGl0ZXNwYWNlKToKKyAgICAgICAgKiBlZGl0aW5nL0hUTUxJbnRlcmNo
YW5nZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0SFRNTFRleHRUb0ludGVyY2hhbmdl
Rm9ybWF0KToKKyAgICAgICAgKiBlZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1hcmt1cEFjY3VtdWxhdG9yOjpzZXJpYWxpemVOb2Rlcyk6CisgICAgICAg
IChXZWJDb3JlOjpNYXJrdXBBY2N1bXVsYXRvcjo6Z2VuZXJhdGVVbmlxdWVQcmVmaXgpOgorICAg
ICAgICAqIGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBsYWlu
VGV4dCk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlR5cGluZ0NvbW1hbmQ6OmlucHV0RXZlbnREYXRhVHJhbnNmZXIgY29uc3QpOgorICAg
ICAgICAqIGVkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpW
aXNpYmxlU2VsZWN0aW9uOjpmb3JtYXRGb3JEZWJ1Z2dlciBjb25zdCk6CisgICAgICAgICogZWRp
dGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tOgorICAgICAgICAoV2ViQ29yZTo6ZGF0YURldGVj
dG9yU3RyaW5nRm9yUGF0aCk6CisgICAgICAgICogZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVy
Lm1tOgorICAgICAgICAoSFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NUZXh0KToKKyAgICAgICAgKiBl
ZGl0aW5nL21hcmt1cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRNYXJrdXBBY2N1bXVs
YXRvcjo6d3JhcFdpdGhOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlZE1hcmt1cEFjY3Vt
dWxhdG9yOjp3cmFwV2l0aFN0eWxlTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRNYXJr
dXBBY2N1bXVsYXRvcjo6dGFrZVJlc3VsdHMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkTWFy
a3VwQWNjdW11bGF0b3I6OmFwcGVuZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6c2FuaXRpemVk
TWFya3VwRm9yRnJhZ21lbnRJbkRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnVybFRvTWFy
a3VwKToKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RmlsZVJlYWRlckxvYWRlcjo6Y29udmVydFRvRGF0YVVSTCk6CisgICAgICAgICog
aHRtbC9ET01Ub2tlbkxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NVG9rZW5MaXN0Ojp1
cGRhdGVBc3NvY2lhdGVkQXR0cmlidXRlRnJvbVRva2Vucyk6CisgICAgICAgICogaHRtbC9FbWFp
bElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbWFpbElucHV0VHlwZTo6c2FuaXRp
emVWYWx1ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OmRlZmF1bHRUb29sVGlwIGNvbnN0KToKKyAgICAg
ICAgKiBodG1sL0Zvcm1Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZvcm1TaWdu
YXR1cmUpOgorICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OmhhbmRsZUNsaWNrKToKKyAgICAgICAgKiBodG1s
L0hUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVt
ZW50OjpjcmVhdGVDb250ZXh0MmQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1l
bnQ6OmNyZWF0ZUltYWdlQnVmZmVyIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxGb250RWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZUZvbnRTaXplKToKKyAgICAgICAgKiBo
dG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEltYWdlRWxl
bWVudDo6Y29tcGxldGVVUkxzSW5BdHRyaWJ1dGVWYWx1ZSBjb25zdCk6CisgICAgICAgICogaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFjdGlvbk5hbWUpOgor
ICAgICAgICAqIGh0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE9wdGlvbkVsZW1lbnQ6OmNvbGxlY3RPcHRpb25Jbm5lclRleHQgY29uc3QpOgorICAgICAg
ICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnN0cmlwcGVkUGxhY2Vob2xkZXIgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6aW5uZXJUZXh0VmFsdWVGcm9tKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojp2YWx1ZVdpdGhIYXJkTGluZUJyZWFrcyBj
b25zdCk6CisgICAgICAgICogaHRtbC9NZWRpYURvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKToKKyAgICAg
ICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVz
dHJpY3Rpb25OYW1lKToKKyAgICAgICAgKiBodG1sL01lZGlhRnJhZ21lbnRVUklQYXJzZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y29sbGVjdERpZ2l0cyk6CisgICAgICAgIChXZWJDb3JlOjpj
b2xsZWN0RnJhY3Rpb24pOgorICAgICAgICAqIGh0bWwvVHlwZUFoZWFkLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlR5cGVBaGVhZDo6aGFuZGxlRXZlbnQpOgorICAgICAgICAqIGh0bWwvY2FudmFz
L0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQ6OmZvbnQgY29uc3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6Z2V0SW1hZ2VEYXRhIGNvbnN0KToKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAgKiBodG1s
L3BhcnNlci9IVE1MU291cmNlVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU291
cmNlVHJhY2tlcjo6c291cmNlKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVG9rZW5pemVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbml6ZXI6OnByb2Nlc3NFbnRpdHkpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXplcjo6cHJvY2Vzc1Rva2VuKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxUb2tlbml6ZXI6OmJ1ZmZlcmVkQ2hhcmFjdGVycyBjb25zdCk6CisgICAg
ICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxUcmVlQnVpbGRlcjo6ZGVmYXVsdEZvckluVGFibGVUZXh0KToKKyAgICAgICAgKiBodG1s
L3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRD
b25zb2xlRXJyb3IpOgorICAgICAgICAqIGh0bWwvdHJhY2svQnVmZmVyZWRMaW5lUmVhZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkJ1ZmZlcmVkTGluZVJlYWRlcjo6bmV4dExpbmUpOgorICAg
ICAgICAqIGh0bWwvdHJhY2svVHJhY2tCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyYWNr
QmFzZTo6c2V0TGFuZ3VhZ2UpOgorICAgICAgICAqIGh0bWwvdHJhY2svVlRUQ3VlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlZUVEN1ZTo6ZGV0ZXJtaW5lVGV4dERpcmVjdGlvbik6CisgICAgICAg
ICogaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViVlRU
UGFyc2VyOjpjcmVhdGVOZXdDdWUpOgorICAgICAgICAqIGh0bWwvdHJhY2svV2ViVlRUVG9rZW5p
emVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlZUVFRva2VuaXplcjo6bmV4dFRva2VuKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JTdHlsZTo6c2hvcnRoYW5kVmFsdWUgY29uc3QpOgorICAgICAgICAq
IGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6YnVpbGRPYmpl
Y3RGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRz
L1dlYkNvbnNvbGVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb25zb2xlQWdlbnQ6
OmRpZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKiBsb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250
cm9sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUFjY2Vzc0NvbnRyb2xQcmVmbGlnaHRS
ZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjp0b1N0cmluZyBjb25zdCk6
CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpzdG9yZSk6CisgICAg
ICAgICogbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMZWdhY3lXZWJBcmNoaXZlOjpjcmVhdGVGcm9tU2VsZWN0aW9uKToKKyAgICAgICAg
KiBsb2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Z2VuZXJhdGVSYW5kb21Cb3VuZGFyeSk6CisgICAgICAgIChXZWJDb3JlOjpyZXBsYWNlTm9u
UHJpbnRhYmxlQ2hhcmFjdGVycyk6CisgICAgICAgICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVu
Y2VzTWVkaWFBRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2Vz
TWVkaWFBRjo6d2luZG93Um91bmRlZENvcm5lclJhZGl1c0NTUyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y29sb3JQcm9wZXJ0eUNTUyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6
Y2FwdGlvbnNUZXh0RWRnZUNTUyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNl
clByZWZlcmVuY2VzTWVkaWFBRjo6Y2FwdGlvbnNEZWZhdWx0Rm9udENTUyBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y2FwdGlvbnNTdHls
ZVNoZWV0T3ZlcnJpZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6dHJhY2tEaXNwbGF5TmFt
ZSk6CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVS
ZWdFeHBGb3JMYWJlbHMpOgorICAgICAgICAqIHBhZ2UvRnJhbWVUcmVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lVHJlZTo6dW5pcXVlQ2hpbGROYW1lIGNvbnN0KToKKyAgICAgICAgKiBw
YWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmxvZ01vY2tT
Y3JvbGxBbmltYXRvck1lc3NhZ2UgY29uc3QpOgorICAgICAgICAqIHBhZ2UvUGFnZVNlcmlhbGl6
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZUNTU1N0
eWxlU2hlZXQpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudDo6c3luY2hyb25vdXNT
Y3JvbGxpbmdSZWFzb25zQXNTdHJpbmcpOgorICAgICAgICAqIHBhZ2UvU2VjdXJpdHlPcmlnaW5E
YXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YTo6ZGF0YWJhc2VJ
ZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1doZWVsRXZlbnRUZXN0VHJpZ2dlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpkdW1wU3RhdGUpOgorICAgICAgICAqIHBhZ2UvY3NwL0Nv
bnRlbnRTZWN1cml0eVBvbGljeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb25zb2xlTWVzc2Fn
ZUZvclZpb2xhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6
OmFsbG93UnVubmluZ09yRGlzcGxheWluZ0luc2VjdXJlQ29udGVudCk6CisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvQXhpc1Njcm9sbFNuYXBPZmZzZXRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnNuYXBPZmZzZXRzVG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6c25hcE9mZnNldFJhbmdl
c1RvU3RyaW5nKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6c3luY2hyb25v
dXNTY3JvbGxpbmdSZWFzb25zQXNUZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9EZWNpbWFsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRlY2ltYWw6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW06
OmVuY29kZUZvckZpbGVOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW06OmRlY29k
ZUZyb21GaWxlbmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vUE9ESW50ZXJ2YWwuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9QT0RSZWRCbGFja1RyZWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBPRFJl
ZEJsYWNrVHJlZTo6ZHVtcEZyb21Ob2RlIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9VUkwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VVJMOjpzZXRIb3N0KToKKyAgICAgICAgKFdlYkNvcmU6
OlVSTDo6c2V0SG9zdEFuZFBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6cGVyY2VudEVuY29kZUNo
YXJhY3RlcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1pbmdGdW5jdGlvbjo6Y3JlYXRlRnJvbUNTU1RleHQp
OgorICAgICAgICAqIHBsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50cyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3I6
OnNlcmlhbGl6ZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3I6OmNzc1RleHQgY29u
c3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RXh0ZW5kZWRDb2xvcjo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bm9y
bWFsaXplU3BhY2VzSW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRU
YWdnZWRTZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXI6OmFuaW1hdGlvbk5hbWVGb3JUcmFuc2l0aW9uKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFW
Ri5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9j
ZXNzQ3VlQXR0cmlidXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2
YXRlQVZGOjpwcm9jZXNzTmF0aXZlU2FtcGxlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGlsZUNvbnRyb2xs
ZXI6OmNyZWF0ZVRpbGVMYXllcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGls
ZUdyaWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvblBvbGljeUFzU3RyaW5nKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmNw
cDoKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllcldpbjo6bGF5ZXJUcmVlQXNTdHJpbmcgY29uc3Qp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNvcGllckNWOjppbml0aWFsaXplQ29u
dGV4dE9iamVjdHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZW5lcmF0ZUhh
c2hlZE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldFVubWFu
Z2xlZEluZm9Mb2cpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6am9pblBhdGhuYW1lcyk6CisgICAgICAgICogcGxhdGZvcm0vbWFj
L1N0cmluZ1V0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYkNvcmU6OndpbGRjYXJkUmVnZXhQYXR0
ZXJuU3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL1Njcm9sbEFuaW1hdG9yTW9jay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1vY2s6Om1vdXNlRW50ZXJlZFNj
cm9sbGJhciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1vY2s6Om1v
dXNlRXhpdGVkU2Nyb2xsYmFyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1h
dG9yTW9jazo6bW91c2VJc0Rvd25JblNjcm9sbGJhciBjb25zdCk6CisgICAgICAgICogcGxhdGZv
cm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tC
b3g6OnBlZWtUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tUcmFja0JveDo6TW9ja1RyYWNr
Qm94KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUpOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvUHJveHlTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9TdHJp
bmcpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZUphck1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvb2tpZXNGb3JTZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9w
b3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbTo6
cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9EZWNv
ZGVFc2NhcGVTZXF1ZW5jZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlVuaWNvZGUxNkJpdEVzY2Fw
ZVNlcXVlbmNlOjpkZWNvZGVSdW4pOgorICAgICAgICAoV2ViQ29yZTo6ZGVjb2RlRXNjYXBlU2Vx
dWVuY2VzKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkxvY2FsZTo6Y29udmVydFRvTG9jYWxpemVkTnVtYmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxvY2FsZTo6Y29udmVydEZyb21Mb2NhbGl6ZWROdW1iZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6TG9jYWxlOjpmb3JtYXREYXRlVGltZSk6CisgICAgICAgICogcGxhdGZvcm0v
dGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VnbWVudGVkU3Ry
aW5nOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNJ
Q1UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvZGVjSUNVOjpkZWNvZGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL3RleHQvVGV4dENvZGVjVXNlckRlZmluZWQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dENvZGVjVXNlckRlZmluZWQ6OmRlY29kZSk6CisgICAgICAgICogcGx1Z2lucy9E
T01NaW1lVHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01NaW1lVHlwZTo6c3VmZml4ZXMg
Y29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6bmFtZSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNv
bXBvc2l0b3I6OmxvZ0xheWVySW5mbyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RN
YXJrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bGlzdE1hcmtlclRleHQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGlzdE1hcmtlcjo6cGFpbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhcGl0YWxpemUpOgorICAgICAgICAo
V2ViQ29yZTo6bWF4V29yZEZyYWdtZW50V2lkdGgpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJUcmVlQXNUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnF1b3RlQW5kRXNjYXBlTm9uUHJp
bnRhYmxlcyk6CisgICAgICAgIChXZWJDb3JlOjpub2RlUG9zaXRpb24pOgorICAgICAgICAqIHJl
bmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck1hdGhNTEZlbmNlZDo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAqIHJlbmRl
cmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlck1hdGhNTC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUcmVlQnVpbGRlcjo6TWF0aE1MOjphdHRhY2gpOgorICAgICAgICAqIHN2Zy9T
VkdMZW5ndGhMaXN0VmFsdWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aExpc3RW
YWx1ZXM6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdOdW1iZXJMaXN0
VmFsdWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR051bWJlckxpc3RWYWx1ZXM6OnZhbHVl
QXNTdHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU3RyaW5nQnVpbGRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU3RyaW5nQnVpbGRlcjo6cmVzdWx0KToKKyAgICAg
ICAgKiBzdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpidWlsZFN0
cmluZ0Zyb21QYXRoKToKKyAgICAgICAgKiBzdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1BvaW50TGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZyBjb25zdCk6
CisgICAgICAgICogc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHU3RyaW5nTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgICog
c3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJh
bnNmb3JtTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgICogc3ZnL1NW
R1RyYW5zZm9ybVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybVZhbHVl
Ojp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9w
ZXJ0eVRyYWl0cy5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRQ
b2ludD46OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPEZs
b2F0UmVjdD46OnRvU3RyaW5nKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmR1bXBNYXJrZXJSZWN0cyk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbHM6OnBhcnNlck1ldGFEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsczo6Z2V0Q3VycmVudEN1cnNvckluZm8pOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJu
YWxzOjptZWRpYVNlc3Npb25SZXN0cmljdGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
SW50ZXJuYWxzOjpwYWdlTWVkaWFTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6
OnNjcm9sbFNuYXBPZmZzZXRzKToKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNs
aWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUGFnZU92ZXJsYXlDbGllbnQ6OmRyYXdS
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tQYWdlT3ZlcmxheUNsaWVudDo6bW91c2VFdmVu
dCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyU2NyaXB0TG9hZGVyOjpzY3JpcHQpOgorICAgICAgICAqIHhtbC9YTUxF
cnJvcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MRXJyb3JzOjppbnNlcnRFcnJvck1lc3Nh
Z2VCbG9jayk6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25zZUhlYWRlcnMgY29uc3QpOgorICAg
ICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5oOgorICAgICAgICAqIHhtbC9YUGF0aEZ1bmN0aW9u
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6YXRvbWljU3Vic3RyaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OlhQYXRoOjpGdW5JZDo6ZXZhbHVhdGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6WFBhdGg6OkZ1bkNvbmNhdDo6ZXZhbHVhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6WFBhdGg6OkZ1blRyYW5zbGF0ZTo6ZXZhbHVhdGUgY29uc3QpOgorICAgICAgICAqIHhtbC9Y
U0xUUHJvY2Vzc29yTGlieHNsdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzYXZlUmVzdWx0VG9T
dHJpbmcpOgorICAgICAgICAqIHhtbC9wYXJzZXIvQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VySW5s
aW5lcy5oOgorICAgICAgICAoV2ViQ29yZTo6dW5jb25zdW1lQ2hhcmFjdGVycyk6CisKIDIwMTgt
MDQtMjUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBO
ZXR3b3JrTG9hZENoZWNrZXIgZm9yIGFsbCBzdWJyZXNvdXJjZSBsb2FkcyBleGNlcHQgZmV0Y2gv
WEhSCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L2NvY29hL1Bh
eW1lbnRDb250YWN0Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L2Nv
Y29hL1BheW1lbnRDb250YWN0Q29jb2EubW0KaW5kZXggM2JlNjIxMC4uMDk3ODRmMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50Q29udGFj
dENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5
bWVudENvbnRhY3RDb2NvYS5tbQpAQCAtMTU0LDcgKzE1NCwxMCBAQCBzdGF0aWMgUmV0YWluUHRy
PFBLQ29udGFjdD4gY29udmVydCh1bnNpZ25lZCB2ZXJzaW9uLCBjb25zdCBBcHBsZVBheVBheW1l
bnRDb250YQogICAgICAgICB9CiAKICAgICAgICAgLy8gRklYTUU6IFN0cmluZ0J1aWxkZXIgc2hv
dWxkIGhhdmEgYSB0b05TU3RyaW5nKCkgZnVuY3Rpb24gdG8gYXZvaWQgdGhlIGV4dHJhIFN0cmlu
ZyBhbGxvY2F0aW9uLgotICAgICAgICBbYWRkcmVzcyBzZXRTdHJlZXQ6YnVpbGRlci50b1N0cmlu
ZygpXTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICAgICAgW2FkZHJlc3Mgc2V0U3RyZWV0OipzdHJpbmddOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBDUkFTSCgpOwogCiAgICAgICAgIGlmICghY29udGFjdC5zdWJMb2NhbGl0eS5pc0Vt
cHR5KCkpCiAgICAgICAgICAgICBzZXRTdWJMb2NhbGl0eShhZGRyZXNzLmdldCgpLCBjb250YWN0
LnN1YkxvY2FsaXR5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmll
c2FwaS9ET01GaWxlU3lzdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2Fw
aS9ET01GaWxlU3lzdGVtLmNwcAppbmRleCA4ZTUwNjZkLi45YjM2MGFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwCkBAIC0y
MTYsNyArMjE2LDkgQEAgc3RhdGljIFN0cmluZyByZXNvbHZlUmVsYXRpdmVWaXJ0dWFsUGF0aChT
dHJpbmdWaWV3IGJhc2VWaXJ0dWFsUGF0aCwgU3RyaW5nVmlldwogICAgICAgICBidWlsZGVyLmFw
cGVuZCgnLycpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChzZWdtZW50KTsKICAgICB9Ci0gICAg
cmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IC8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vZW50cmllcy1hcGkvI2V2YWx1YXRlLWEtcGF0aApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNw
cAppbmRleCBkY2JmNzAzLi42Y2FhYzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcApAQCAtMzQwLDcgKzM0MCwxMCBAQCBzdGF0
aWMgdm9pZCBsb2dFcnJvcihjb25zdCBTdHJpbmcmIHRhcmdldCwgY29uc3QgYm9vbCBpc1NlY3Vy
ZSwgY29uc3QgYm9vbCBpc01peAogICAgIAogICAgIG1lc3NhZ2UuYXBwZW5kKHRhcmdldCk7CiAg
ICAgbWVzc2FnZS5hcHBlbmQoIi5cbiIpOwotICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2Fn
ZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgbWVzc2FnZS50
b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtZXNzYWdlLnRvU3RyaW5nKCkpCisg
ICAgICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0
eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFT
SCgpOwogfQogCiAvLyBGSVhNRTogcmVtb3ZlIHRoaXMgZnVuY3Rpb24gd2hlbiByZGFyOi8vcHJv
YmxlbS8zMjEzNzgyMSBpcyBmaXhlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCS2V5RGF0YS5jcHAKaW5kZXggMmU5MzY0NS4uNzIxMjk3NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5jcHAKQEAgLTMzMiw3ICsz
MzIsMTAgQEAgU3RyaW5nIElEQktleURhdGE6OmxvZ2dpbmdTdHJpbmcoKSBjb25zdAogICAgICAg
ICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKICAgICAgICAgfQogICAgICAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiB9Iik7Ci0gICAgICAgIHJlc3VsdCA9IGJ1aWxkZXIu
dG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICAgICAgcmVzdWx0ID0gKnN0cmluZzsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgQ1JBU0goKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgS2V5VHlwZTo6Qmlu
YXJ5OiB7CkBAIC0zNDIsNyArMzQ1LDEwIEBAIFN0cmluZyBJREJLZXlEYXRhOjpsb2dnaW5nU3Ry
aW5nKCkgY29uc3QKICAgICAgICAgYXV0byogZGF0YSA9IFdURjo6Z2V0PFRocmVhZFNhZmVEYXRh
QnVmZmVyPihtX3ZhbHVlKS5kYXRhKCk7CiAgICAgICAgIGlmICghZGF0YSkgewogICAgICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoIihudWxsKSIpOwotICAgICAgICAgICAgcmVzdWx0ID0gYnVpbGRl
ci50b1N0cmluZygpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICAgICAgICAgIHJlc3VsdCA9ICpzdHJpbmc7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAKQEAgLTM1Myw3ICszNTksMTAgQEAgU3RyaW5nIElEQktleURhdGE6OmxvZ2dpbmdTdHJp
bmcoKSBjb25zdAogICAgICAgICBpZiAoZGF0YS0+c2l6ZSgpID4gOCkKICAgICAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCIuLi4iKTsKIAotICAgICAgICByZXN1bHQgPSBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgICAgIHJlc3VsdCA9ICpzdHJpbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNI
KCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEtleVR5cGU6OlN0cmluZzoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBhdGguY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UGF0aC5jcHAKaW5kZXgg
NzZlYmViMy4uOGI5ZmIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCS2V5UGF0aC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCS2V5UGF0aC5jcHAKQEAgLTI0MSw3ICsyNDEsOSBAQCBTdHJpbmcgbG9nZ2luZ1N0cmlu
Zyhjb25zdCBJREJLZXlQYXRoJiBwYXRoKQogICAgICAgICBidWlsZGVyLmFwcGVuZChzdHJpbmdz
Lmxhc3QoKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIgPiIpOwogCi0gICAgICAgIHJldHVy
biBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgp
OwogICAgIH0pOwogCiAgICAgcmV0dXJuIFdURjo6dmlzaXQodmlzaXRvciwgcGF0aCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSW5kZXhWYWx1
ZVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRl
eFZhbHVlU3RvcmUuY3BwCmluZGV4IDY5ODNjOWQuLjgwZDZiM2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRleFZhbHVlU3RvcmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRleFZhbHVlU3Rv
cmUuY3BwCkBAIC00MDksNyArNDA5LDkgQEAgU3RyaW5nIEluZGV4VmFsdWVTdG9yZTo6bG9nZ2lu
Z1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fcmVjb3Jkcy5n
ZXQoa2V5KS0+Z2V0Q291bnQoKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIGVu
dHJpZXMiKTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1cnNvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQ3Vyc29yLmNwcAppbmRleCBm
MjBkYjg3Li5hNGMzMGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQ3Vyc29yLmNwcApAQCAtMTQxLDcgKzE0MSw5
IEBAIHN0YXRpYyBTdHJpbmcgYnVpbGRJbmRleFN0YXRlbWVudChjb25zdCBJREJLZXlSYW5nZURh
dGEmIGtleVJhbmdlLCBJbmRleGVkREI6OkN1CiAKICAgICBidWlsZGVyLmFwcGVuZCgnOycpOwog
Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIHN0YXRpYyBTdHJpbmcgYnVpbGRPYmplY3RTdG9yZVN0YXRlbWVudChjb25zdCBJREJL
ZXlSYW5nZURhdGEmIGtleVJhbmdlLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbiBjdXJzb3JE
aXJlY3Rpb24pCkBAIC0xNjksNyArMTcxLDkgQEAgc3RhdGljIFN0cmluZyBidWlsZE9iamVjdFN0
b3JlU3RhdGVtZW50KGNvbnN0IElEQktleVJhbmdlRGF0YSYga2V5UmFuZ2UsIEluZGV4ZWQKIAog
ICAgIGJ1aWxkZXIuYXBwZW5kKCc7Jyk7CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBTUUxpdGVJREJDdXJzb3I6OmVz
dGFibGlzaFN0YXRlbWVudCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJEYXRhYmFzZUluZm8uY3BwCmluZGV4IGU1ZGYxNWMuLjc2
OTM0ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JREJEYXRhYmFzZUluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JREJEYXRhYmFzZUluZm8uY3BwCkBAIC0xNjksNyArMTY5LDkgQEAgU3RyaW5n
IElEQkRhdGFiYXNlSW5mbzo6bG9nZ2luZ1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCdcbicpOwogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8uY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9iamVjdFN0b3JlSW5m
by5jcHAKaW5kZXggYjAwNzVmZS4uOGQ4ZmFkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9iamVjdFN0b3JlSW5mby5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9iamVjdFN0b3JlSW5mby5j
cHAKQEAgLTE0OCw3ICsxNDgsOSBAQCBTdHJpbmcgSURCT2JqZWN0U3RvcmVJbmZvOjpsb2dnaW5n
U3RyaW5nKGludCBpbmRlbnQpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwog
ICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBD
UkFTSCgpOwogfQogCiBTdHJpbmcgSURCT2JqZWN0U3RvcmVJbmZvOjpjb25kZW5zZWRMb2dnaW5n
U3RyaW5nKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKaW5kZXggNDIwOWZmYS4u
OTZmZWJjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24v
V2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKQEAgLTg5LDcgKzg5LDkgQEAg
c3RhdGljIFN0cmluZyBtZWRpYVByb2R1Y2VyU3RhdGVTdHJpbmcoTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZUZsYWdzIGZsYWdzKQogICAgIGVsc2UKICAgICAgICAgc3RyaW5nLnJlc2l6ZShzdHJp
bmcubGVuZ3RoKCkgLSAyKTsKIAotICAgIHJldHVybiBzdHJpbmcudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHIgPSBzdHJpbmcudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHI7Cisg
ICAgQ1JBU0goKTsKIH0KICNlbmRpZgogCkBAIC0zODEsNyArMzgzLDkgQEAgU3RyaW5nIFdlYk1l
ZGlhU2Vzc2lvbk1hbmFnZXI6OnRvU3RyaW5nKENvbmZpZ3VyYXRpb25UYXNrcyB0YXNrcykKICAg
ICBlbHNlCiAgICAgICAgIHN0cmluZy5yZXNpemUoc3RyaW5nLmxlbmd0aCgpIC0gMik7CiAgICAg
Ci0gICAgcmV0dXJuIHN0cmluZy50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0ciA9IHN0cmlu
Zy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cjsKKyAgICBDUkFTSCgpOwogfQogI2Vu
ZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVl
ckNvbm5lY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAppbmRleCBkYzUxYmI1Li5kYmVjZDVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9u
QmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVy
Q29ubmVjdGlvbkJhY2tlbmQuY3BwCkBAIC00MDMsNyArNDAzLDkgQEAgc3RhdGljIFN0cmluZyBm
aWx0ZXJJQ0VDYW5kaWRhdGUoU3RyaW5nJiYgc2RwKQogICAgICAgICAgICAgZmlsdGVyZWRTRFAu
YXBwZW5kKCcgJyk7CiAgICAgICAgIGZpbHRlcmVkU0RQLmFwcGVuZChpdGVtKTsKICAgICB9KTsK
LSAgICByZXR1cm4gZmlsdGVyZWRTRFAudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBmaWx0ZXJlZFNEUC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBD
UkFTSCgpOwogfQogCiBTdHJpbmcgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpmaWx0ZXJTRFAoU3Ry
aW5nJiYgc2RwKSBjb25zdApAQCAtNDIxLDcgKzQyMyw5IEBAIFN0cmluZyBQZWVyQ29ubmVjdGlv
bkJhY2tlbmQ6OmZpbHRlclNEUChTdHJpbmcmJiBzZHApIGNvbnN0CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIGZpbHRlcmVkU0RQLmFwcGVuZCgnXG4nKTsKICAgICB9KTsKLSAgICByZXR1
cm4gZmlsdGVyZWRTRFAudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBmaWx0ZXJl
ZFNEUC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiB2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6bmV3SUNFQ2FuZGlkYXRlKFN0cmluZyYm
IHNkcCwgU3RyaW5nJiYgbWlkLCB1bnNpZ25lZCBzaG9ydCBzZHBNTGluZUluZGV4KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJl
cGxhY2VtZW50LmNwcAppbmRleCBjOTE3MWRjLi40MjdmNGZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50
LmNwcApAQCAtMzMzLDcgKzMzMyw5IEBAIFN0cmluZyBZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQ6
OnlvdVR1YmVVUkxGcm9tQWJzb2x1dGVVUkwoY29uc3QgVVJMJiBzcmNVUkwsIGNvCiAgICAgICAg
IGZpbmFsVVJMLmFwcGVuZCgnPycpOwogICAgICAgICBmaW5hbFVSTC5hcHBlbmQocXVlcnkpOwog
ICAgIH0KLSAgICByZXR1cm4gZmluYWxVUkwudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBmaW5hbFVSTC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBD
UkFTSCgpOwogfQogICAgIAogYm9vbCBZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQ6OnN1cHBvcnRz
VVJMKGNvbnN0IFVSTCYgdXJsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCmluZGV4IDhmZGE2MmEuLjk4ZjMwOGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFj
a2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
VHJhY2tlci5jcHAKQEAgLTMyMCw3ICszMjAsOSBAQCBzdGF0aWMgU3RyaW5nIGdlbmVyYXRlRGF0
YWJhc2VGaWxlTmFtZSgpCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoY3JlYXRlQ2Fub25pY2Fs
VVVJRFN0cmluZygpKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIi5kYiIpOwog
Ci0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBEYXRhYmFzZVRyYWNrZXI6OmZ1bGxQYXRoRm9yRGF0
YWJhc2VOb0xvY2soY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4sIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5vdEV4aXN0cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKaW5kZXggMDI0NzdiOS4uZWFiMjUzMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKQEAg
LTEwNSw3ICsxMDUsOSBAQCBzdGF0aWMgU3RyaW5nIGVuY29kZVByb3RvY29sU3RyaW5nKGNvbnN0
IFN0cmluZyYgcHJvdG9jb2wpCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKHByb3RvY29sW2ldKTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgam9pblN0cmluZ3Mo
Y29uc3QgVmVjdG9yPFN0cmluZz4mIHN0cmluZ3MsIGNvbnN0IGNoYXIqIHNlcGFyYXRvcikKQEAg
LTExNiw3ICsxMTgsOSBAQCBzdGF0aWMgU3RyaW5nIGpvaW5TdHJpbmdzKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBzdHJpbmdzLCBjb25zdCBjaGFyKiBzZXBhcmF0b3IpCiAgICAgICAgICAgICBidWls
ZGVyLmFwcGVuZChzZXBhcmF0b3IpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChzdHJpbmdzW2ld
KTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBzYXR1cmF0ZUFkZCh1bnNpZ25lZCBhLCB1
bnNpZ25lZCBiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwCmluZGV4IGZjYzlk
YzMuLjZjNDBjNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHAKQEAgLTY4
LDcgKzY4LDkgQEAgY29uc3QgU3RyaW5nIFdlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OmNy
ZWF0ZUhlYWRlclZhbHVlKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIs
ICIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChtX3Byb2Nlc3NvcnNbaV0tPmhhbmRzaGFrZVN0
cmluZygpKTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlcjo6
YXBwZW5kQWNjZXB0ZWRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb25Ub2tlbiwgSGFz
aE1hcDxTdHJpbmcsIFN0cmluZz4mIGV4dGVuc2lvblBhcmFtZXRlcnMpCkBAIC0xMzksNyArMTQx
LDkgQEAgU3RyaW5nIFdlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OmFjY2VwdGVkRXh0ZW5z
aW9ucygpIGNvbnN0CiB7CiAgICAgaWYgKG1fYWNjZXB0ZWRFeHRlbnNpb25zQnVpbGRlci5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICByZXR1cm4gbV9hY2NlcHRlZEV4
dGVuc2lvbnNCdWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IG1fYWNjZXB0ZWRFeHRlbnNpb25zQnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2Fw
YWNpdHkoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3Ry
aW5nIFdlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OmZhaWx1cmVSZWFzb24oKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhh
bmRzaGFrZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
SGFuZHNoYWtlLmNwcAppbmRleCA1NDU1Y2QxLi4wODNhOTA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcApA
QCAtNzIsMTAgKzcyLDEzIEBAIHN0YXRpYyBTdHJpbmcgcmVzb3VyY2VOYW1lKGNvbnN0IFVSTCYg
dXJsKQogICAgICAgICBuYW1lLmFwcGVuZCgnPycpOwogICAgICAgICBuYW1lLmFwcGVuZCh1cmwu
cXVlcnkoKSk7CiAgICAgfQotICAgIFN0cmluZyByZXN1bHQgPSBuYW1lLnRvU3RyaW5nKCk7Ci0g
ICAgQVNTRVJUKCFyZXN1bHQuaXNFbXB0eSgpKTsKLSAgICBBU1NFUlQoIXJlc3VsdC5jb250YWlu
cygnICcpKTsKLSAgICByZXR1cm4gcmVzdWx0OworICAgIGlmIChhdXRvIHN0cmluZyA9IG5hbWUu
dG9TdHJpbmcoKSkgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gKnN0cmluZzsKKyAgICAgICAg
QVNTRVJUKCFyZXN1bHQuaXNFbXB0eSgpKTsKKyAgICAgICAgQVNTRVJUKCFyZXN1bHQuY29udGFp
bnMoJyAnKSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIENSQVNIKCk7CiB9
CiAKIHN0YXRpYyBTdHJpbmcgaG9zdE5hbWUoY29uc3QgVVJMJiB1cmwsIGJvb2wgc2VjdXJlKQpA
QCAtODcsNyArOTAsOSBAQCBzdGF0aWMgU3RyaW5nIGhvc3ROYW1lKGNvbnN0IFVSTCYgdXJsLCBi
b29sIHNlY3VyZSkKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJzonKTsKICAgICAgICAgYnVpbGRl
ci5hcHBlbmROdW1iZXIodXJsLnBvcnQoKS52YWx1ZSgpKTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBj
b25zdCBzaXplX3QgbWF4SW5wdXRTYW1wbGVTaXplID0gMTI4OwpAQCAtMTc2LDcgKzE4MSw5IEBA
IFN0cmluZyBXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudExvY2F0aW9uKCkgY29uc3QKICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIjovLyIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKGhvc3ROYW1l
KG1fdXJsLCBtX3NlY3VyZSkpOwogICAgIGJ1aWxkZXIuYXBwZW5kKHJlc291cmNlTmFtZShtX3Vy
bCkpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBDU3RyaW5nIFdlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZW50SGFuZHNoYWtlTWVz
c2FnZSgpIGNvbnN0CkBAIC0yMjYsNyArMjMzLDkgQEAgQ1N0cmluZyBXZWJTb2NrZXRIYW5kc2hh
a2U6OmNsaWVudEhhbmRzaGFrZU1lc3NhZ2UoKSBjb25zdAogCiAgICAgYnVpbGRlci5hcHBlbmRM
aXRlcmFsKCJcclxuIik7CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpLnV0ZjgoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biBzdHJpbmctPnV0ZjgoKTsKKyAgICBDUkFTSCgpOwogfQogCiBSZXNvdXJjZVJlcXVlc3QgV2Vi
U29ja2V0SGFuZHNoYWtlOjpjbGllbnRIYW5kc2hha2VSZXF1ZXN0KCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dC5jcHAKaW5kZXggZGI4NTc1ZS4uYzRhMjUyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTE3MTMs
MTEgKzE3MTMsMTMgQEAgc3RhdGljIGJvb2wgc2hvdWxkVXNlQWNjZXNzaWJpbGl0eU9iamVjdElu
bmVyVGV4dChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFjY2UKIAogc3RhdGljIGJvb2wgc2hv
dWxkQWRkU3BhY2VCZWZvcmVBcHBlbmRpbmdOZXh0RWxlbWVudChTdHJpbmdCdWlsZGVyJiBidWls
ZGVyLCBjb25zdCBTdHJpbmcmIGNoaWxkVGV4dCkKIHsKKyAgICBpZiAoYnVpbGRlci5mYWlsZWQo
KSkKKyAgICAgICAgQ1JBU0goKTsKKwogICAgIGlmICghYnVpbGRlci5sZW5ndGgoKSB8fCAhY2hp
bGRUZXh0Lmxlbmd0aCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0KICAgICAvLyBXZSBkb24n
dCBuZWVkIHRvIGFkZCBhbiBhZGRpdGlvbmFsIHNwYWNlIGJlZm9yZSBvciBhZnRlciBhIGxpbmUg
YnJlYWsuCi0gICAgcmV0dXJuICEoaXNIVE1MTGluZUJyZWFrKGNoaWxkVGV4dFswXSkgfHwgaXNI
VE1MTGluZUJyZWFrKGJ1aWxkZXJbYnVpbGRlci5sZW5ndGgoKSAtIDFdKSk7CisgICAgcmV0dXJu
ICEoaXNIVE1MTGluZUJyZWFrKGNoaWxkVGV4dFswXSkgfHwgaXNIVE1MTGluZUJyZWFrKCpidWls
ZGVyW2J1aWxkZXIubGVuZ3RoKCkgLSAxXSkpOwogfQogICAgIAogc3RhdGljIHZvaWQgYXBwZW5k
TmFtZVRvU3RyaW5nQnVpbGRlcihTdHJpbmdCdWlsZGVyJiBidWlsZGVyLCBjb25zdCBTdHJpbmcm
IHRleHQpCkBAIC0xNzY5LDcgKzE3NzEsOSBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3Q6OnRleHRVbmRlckVsZW1lbnQoQWNjZXNzaWJpbGl0eVRleHRVbmRlckVsZW1lbnRNbwogICAg
ICAgICAgICAgYXBwZW5kTmFtZVRvU3RyaW5nQnVpbGRlcihidWlsZGVyLCBjaGlsZFRleHQpOwog
ICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCkuc3RyaXBXaGl0ZVNwYWNlKCku
c2ltcGxpZnlXaGl0ZVNwYWNlKGlzSFRNTFNwYWNlQnV0Tm90TGluZUJyZWFrKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBzdHJpbmct
PnN0cmlwV2hpdGVTcGFjZSgpLnNpbXBsaWZ5V2hpdGVTcGFjZShpc0hUTUxTcGFjZUJ1dE5vdExp
bmVCcmVhayk7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIEFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0Ojp0aXRsZSgpIGNvbnN0CkBAIC0xOTg1LDcgKzE5ODksOSBAQCBTdHJpbmcgQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OmFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbkZvckNoaWxkcmVuKCkgY29u
c3QKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3Q6OmFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbkZvckVsZW1lbnRzKFZlY3RvcjxFbGVtZW50Kj4g
JmVsZW1lbnRzKSBjb25zdApAQCAtMTk5NCw3ICsyMDAwLDkgQEAgU3RyaW5nIEFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0OjphY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25Gb3JFbGVtZW50cyhWZWN0b3I8
RWxlbWUKICAgICB1bnNpZ25lZCBzaXplID0gZWxlbWVudHMuc2l6ZSgpOwogICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpCiAgICAgICAgIGFwcGVuZE5hbWVUb1N0cmluZ0J1
aWxkZXIoYnVpbGRlciwgYWNjZXNzaWJsZU5hbWVGb3JOb2RlKGVsZW1lbnRzW2ldLCBub2RlKCkp
KTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogU3RyaW5nIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjphcmlhRGVzY3JpYmVkQnlB
dHRyaWJ1dGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggMTkyODE3Mi4uN2M4ZDk4YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
CkBAIC0xMzg4LDggKzEzODgsMTAgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN0cmlu
Z0ZvclJhbmdlKFJlZlB0cjxSYW5nZT4gcmFuZ2UpIGNvbnN0CiAgICAgICAgICAgICAgICAgYnVp
bGRlci5hcHBlbmQob2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXIpOwogICAgICAgICB9CiAgICAg
fQotICAgIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdHJpbmdGb3JWaXNp
YmxlUG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zaXRpb25SYW5nZSYgdmlzaWJsZVBvc2l0
aW9uUmFuZ2UpCkBAIC0xNDE1LDcgKzE0MTcsOSBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVj
dDo6c3RyaW5nRm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBvc2l0aW9uUgog
ICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIGludCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpsZW5ndGhG
b3JWaXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zaXRpb25SYW5nZSYgdmlzaWJs
ZVBvc2l0aW9uUmFuZ2UpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFj
Lm1tCmluZGV4IGExMDJkMzYuLjkzMmQxMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyTWFjLm1tCkBAIC0yNDA5LDcgKzI0MDksOSBAQCAtIChOU1N0cmluZyAqKXZhbHVlRGVz
Y3JpcHRpb25Gb3JNZXRlcgogICAgICAgICBpZiAoYnVpbGRlci5sZW5ndGgoKSkKICAgICAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
Z2F1Z2VSZWdpb25WYWx1ZSk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KICNlbmRpZgogICAgIHJl
dHVybiB2YWx1ZURlc2NyaXB0aW9uOwpAQCAtMzg3Myw4ICszODc1LDExIEBAIHN0YXRpYyB2b2lk
IGZvcm1hdEZvckRlYnVnZ2VyKGNvbnN0IFZpc2libGVQb3NpdGlvblJhbmdlJiByYW5nZSwgY2hh
ciogYnVmZmVyLCB1CiAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIiB0byAiKTsKICAgICByYW5n
ZS5lbmQuZm9ybWF0Rm9yRGVidWdnZXIoZm9ybWF0LCBGb3JtYXRCdWZmZXJTaXplKTsKICAgICBy
ZXN1bHQuYXBwZW5kKGZvcm1hdCk7Ci0gICAgCi0gICAgc3RybGNweShidWZmZXIsIHJlc3VsdC50
b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGxlbmd0aCk7CisKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgc3RybGNweShidWZmZXIsIHN0cmluZy0+dXRm
OCgpLmRhdGEoKSwgbGVuZ3RoKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0
U3RyaW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRTdHJp
bmdzLmNwcAppbmRleCA3ZDJkZTE4Li4xZTA0YTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRTdHJpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRTdHJpbmdzLmNwcApAQCAtOTEsNyArOTEsOSBAQCBz
dGF0aWMgaW5saW5lIFN0cmluZyBzdHJpbmdUb1VTVlN0cmluZyhTdHJpbmcmJiBzdHJpbmcpCiAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY29kZVBvaW50KTsKICAgICB9
Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJl
c3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiBTdHJpbmcgaWRlbnRpZmllclRvVVNWU3RyaW5nKEV4ZWNTdGF0ZSYsIGNvbnN0IElkZW50
aWZpZXImIGlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuY3BwCmluZGV4IDg5NWEzMDAuLjA3ZmI3MzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxp
bmcuY3BwCkBAIC0yMTEsNyArMjExLDkgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd0FyZ3Vt
ZW50TXVzdEJlRW51bUVycm9yKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpUaHIKICAgICBh
cHBlbmRBcmd1bWVudE11c3RCZShidWlsZGVyLCBhcmd1bWVudEluZGV4LCBhcmd1bWVudE5hbWUs
IGZ1bmN0aW9uSW50ZXJmYWNlTmFtZSwgZnVuY3Rpb25OYW1lKTsKICAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIm9uZSBvZjogIik7CiAgICAgYnVpbGRlci5hcHBlbmQoZXhwZWN0ZWRWYWx1ZXMp
OwotICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUsIGJ1aWxkZXIudG9T
dHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcigmc3RhdGUsIHNjb3BlLCAqc3RyaW5nKTsKKyAg
ICBDUkFTSCgpOwogfQogCiBKU0M6OkVuY29kZWRKU1ZhbHVlIHRocm93QXJndW1lbnRNdXN0QmVG
dW5jdGlvbkVycm9yKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpUaHJvd1Njb3BlJiBzY29w
ZSwgdW5zaWduZWQgYXJndW1lbnRJbmRleCwgY29uc3QgY2hhciogYXJndW1lbnROYW1lLCBjb25z
dCBjaGFyKiBpbnRlcmZhY2VOYW1lLCBjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUpCkBAIC0yMTks
NyArMjIxLDkgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd0FyZ3VtZW50TXVzdEJlRnVuY3Rp
b25FcnJvcihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzoKICAgICBTdHJpbmdCdWlsZGVyIGJ1
aWxkZXI7CiAgICAgYXBwZW5kQXJndW1lbnRNdXN0QmUoYnVpbGRlciwgYXJndW1lbnRJbmRleCwg
YXJndW1lbnROYW1lLCBpbnRlcmZhY2VOYW1lLCBmdW5jdGlvbk5hbWUpOwogICAgIGJ1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiYSBmdW5jdGlvbiIpOwotICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KCZzdGF0ZSwgc2NvcGUsIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcigm
c3RhdGUsIHNjb3BlLCAqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiBKU0M6OkVuY29kZWRK
U1ZhbHVlIHRocm93QXJndW1lbnRUeXBlRXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6
OlRocm93U2NvcGUmIHNjb3BlLCB1bnNpZ25lZCBhcmd1bWVudEluZGV4LCBjb25zdCBjaGFyKiBh
cmd1bWVudE5hbWUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uSW50ZXJmYWNlTmFtZSwgY29uc3QgY2hh
ciogZnVuY3Rpb25OYW1lLCBjb25zdCBjaGFyKiBleHBlY3RlZFR5cGUpCkBAIC0yMjgsNyArMjMy
LDkgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd0FyZ3VtZW50VHlwZUVycm9yKEpTQzo6RXhl
Y1N0YXRlJiBzdGF0ZSwgSlNDOjpUaHJvd1Njb3AKICAgICBhcHBlbmRBcmd1bWVudE11c3RCZShi
dWlsZGVyLCBhcmd1bWVudEluZGV4LCBhcmd1bWVudE5hbWUsIGZ1bmN0aW9uSW50ZXJmYWNlTmFt
ZSwgZnVuY3Rpb25OYW1lKTsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoImFuIGluc3RhbmNl
IG9mICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKGV4cGVjdGVkVHlwZSk7Ci0gICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoJnN0YXRlLCBzY29wZSwgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUsICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAK
IHZvaWQgdGhyb3dBdHRyaWJ1dGVUeXBlRXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6
OlRocm93U2NvcGUmIHNjb3BlLCBjb25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lLCBjb25zdCBjaGFy
KiBhdHRyaWJ1dGVOYW1lLCBjb25zdCBjaGFyKiBleHBlY3RlZFR5cGUpCkBAIC0yNDUsNyArMjUx
LDkgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd1JlcXVpcmVkTWVtYmVyVHlwZUVycm9yKEpT
Qzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpUaHIKICAgICBidWlsZGVyLmFwcGVuZChtZW1iZXJO
YW1lKTsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiBpcyByZXF1aXJlZCBhbmQgbXVzdCBi
ZSBhbiBpbnN0YW5jZSBvZiAiKTsKICAgICBidWlsZGVyLmFwcGVuZChleHBlY3RlZFR5cGUpOwot
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUsIGJ1aWxkZXIudG9TdHJp
bmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcigmc3RhdGUsIHNjb3BlLCAqc3RyaW5nKTsKKyAgICBD
UkFTSCgpOwogfQogCiBKU0M6OkVuY29kZWRKU1ZhbHVlIHRocm93Q29uc3RydWN0b3JTY3JpcHRF
eGVjdXRpb25Db250ZXh0VW5hdmFpbGFibGVFcnJvcihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpT
Qzo6VGhyb3dTY29wZSYgc2NvcGUsIGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db21iaW5lZFVSTEZpbHRlcnMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29tYmluZWRVUkxGaWx0ZXJz
LmNwcAppbmRleCA3NTU4YjIyLi4yOWRlNTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
b250ZW50ZXh0ZW5zaW9ucy9Db21iaW5lZFVSTEZpbHRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5jcHAKQEAgLTEwNyw3ICsx
MDcsOSBAQCBzdGF0aWMgU3RyaW5nIHByZWZpeFRyZWVWZXJ0ZXhUb1N0cmluZyhjb25zdCBQcmVm
aXhUcmVlVmVydGV4JiB2ZXJ0ZXgsIGNvbnN0IEhhcwogICAgICAgICB9CiAgICAgfQogICAgIGJ1
aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgdm9pZCByZWN1cnNpdmVQcmludChjb25z
dCBQcmVmaXhUcmVlVmVydGV4JiB2ZXJ0ZXgsIGNvbnN0IEhhc2hNYXA8Y29uc3QgUHJlZml4VHJl
ZVZlcnRleCosIEFjdGlvbkxpc3Q+JiBhY3Rpb25zLCB1bnNpZ25lZCBkZXB0aCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbi5jcHAK
aW5kZXggNjEwZTFiOC4uOGU1MGZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVu
dGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbi5jcHAKQEAgLTExMCw4ICsxMTAsMTEgQEAg
dm9pZCBDb250ZW50RXh0ZW5zaW9uOjpjb21waWxlR2xvYmFsRGlzcGxheU5vbmVTdHlsZVNoZWV0
KCkKIAogICAgIG1fZ2xvYmFsRGlzcGxheU5vbmVTdHlsZVNoZWV0ID0gU3R5bGVTaGVldENvbnRl
bnRzOjpjcmVhdGUoKTsKICAgICBtX2dsb2JhbERpc3BsYXlOb25lU3R5bGVTaGVldC0+c2V0SXNV
c2VyU3R5bGVTaGVldCh0cnVlKTsKLSAgICBpZiAoIW1fZ2xvYmFsRGlzcGxheU5vbmVTdHlsZVNo
ZWV0LT5wYXJzZVN0cmluZyhjc3MudG9TdHJpbmcoKSkpCi0gICAgICAgIG1fZ2xvYmFsRGlzcGxh
eU5vbmVTdHlsZVNoZWV0ID0gbnVsbHB0cjsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBjc3MudG9T
dHJpbmcoKSkgeworICAgICAgICBpZiAoIW1fZ2xvYmFsRGlzcGxheU5vbmVTdHlsZVNoZWV0LT5w
YXJzZVN0cmluZygqc3RyaW5nKSkKKyAgICAgICAgICAgIG1fZ2xvYmFsRGlzcGxheU5vbmVTdHls
ZVNoZWV0ID0gbnVsbHB0cjsKKyAgICB9IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIC8v
IFRoZXNlIGFjdGlvbnMgZG9uJ3QgbmVlZCB0byBiZSBhcHBsaWVkIGluZGl2aWR1YWxseSBhbnkg
bW9yZS4gVGhleSB3aWxsIGFsbCBiZSBhcHBsaWVkIHRvIGV2ZXJ5IHBhZ2UgYXMgYSBwcmVjb21w
aWxlZCBzdHlsZSBzaGVldC4KICAgICBtX3VuaXZlcnNhbEFjdGlvbnNXaXRob3V0Q29uZGl0aW9u
cy5yZW1vdmVBbGxNYXRjaGluZyhpbkdsb2JhbERpc3BsYXlOb25lU3R5bGVTaGVldCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9u
Q29tcGlsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4
dGVuc2lvbkNvbXBpbGVyLmNwcAppbmRleCA1ZTAzNWE2Li41YzM3ZWZiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNp
b25Db21waWxlci5jcHAKQEAgLTgwLDcgKzgwLDEwIEBAIHN0YXRpYyB2b2lkIHJlc29sdmVQZW5k
aW5nRGlzcGxheU5vbmVBY3Rpb25zKFZlY3RvcjxTZXJpYWxpemVkQWN0aW9uQnl0ZT4mIGFjdGlv
CiAgICAgZm9yIChhdXRvJiBwZW5kaW5nRGlzcGxheU5vbmVBY3Rpb25zIDogbWFwLnZhbHVlcygp
KSB7CiAgICAgICAgIHVpbnQzMl90IGFjdGlvbkxvY2F0aW9uID0gYWN0aW9ucy5zaXplKCk7CiAg
ICAgICAgIGFjdGlvbnMuYXBwZW5kKHN0YXRpY19jYXN0PFNlcmlhbGl6ZWRBY3Rpb25CeXRlPihB
Y3Rpb25UeXBlOjpDU1NEaXNwbGF5Tm9uZVNlbGVjdG9yKSk7Ci0gICAgICAgIHNlcmlhbGl6ZVN0
cmluZyhhY3Rpb25zLCBwZW5kaW5nRGlzcGxheU5vbmVBY3Rpb25zLmNvbWJpbmVkU2VsZWN0b3Jz
LnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBwZW5kaW5nRGlzcGxheU5v
bmVBY3Rpb25zLmNvbWJpbmVkU2VsZWN0b3JzLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBzZXJp
YWxpemVTdHJpbmcoYWN0aW9ucywgKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IENSQVNIKCk7CiAgICAgICAgIGZvciAodWludDMyX3QgY2xpZW50TG9jYXRpb24gOiBwZW5kaW5n
RGlzcGxheU5vbmVBY3Rpb25zLmNsaWVudExvY2F0aW9ucykKICAgICAgICAgICAgIGFjdGlvbkxv
Y2F0aW9uc1tjbGllbnRMb2NhdGlvbl0gPSBhY3Rpb25Mb2NhdGlvbjsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uU3R5
bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0
ZW5zaW9uU3R5bGVTaGVldC5jcHAKaW5kZXggZTI0YTM2Ni4uZGUzZTg1OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblN0eWxlU2hl
ZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRl
bnNpb25TdHlsZVNoZWV0LmNwcApAQCAtNjAsNyArNjAsMTAgQEAgYm9vbCBDb250ZW50RXh0ZW5z
aW9uU3R5bGVTaGVldDo6YWRkRGlzcGxheU5vbmVTZWxlY3Rvcihjb25zdCBTdHJpbmcmIHNlbGVj
dG9yLAogICAgIGNzcy5hcHBlbmQoJ3snKTsKICAgICBjc3MuYXBwZW5kKENvbnRlbnRFeHRlbnNp
b25zQmFja2VuZDo6ZGlzcGxheU5vbmVDU1NSdWxlKCkpOwogICAgIGNzcy5hcHBlbmQoJ30nKTsK
LSAgICBtX3N0eWxlU2hlZXQtPmNvbnRlbnRzKCkucGFyc2VTdHJpbmcoY3NzLnRvU3RyaW5nKCkp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGNzcy50b1N0cmluZygpKQorICAgICAgICBtX3N0eWxl
U2hlZXQtPmNvbnRlbnRzKCkucGFyc2VTdHJpbmcoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAg
ICBDUkFTSCgpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jb250ZW50ZXh0ZW5zaW9ucy9UZXJtLmggYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9UZXJtLmgKaW5kZXggMGQ1MTgzMy4uNmYzMTk0ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVGVybS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nv
bnRlbnRleHRlbnNpb25zL1Rlcm0uaApAQCAtMjQ2LDcgKzI0Niw5IEBAIGlubGluZSBTdHJpbmcg
VGVybTo6dG9TdHJpbmcoKSBjb25zdAogICAgICAgICB9CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCddJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHF1YW50aWZpZXJUb1N0cmluZyhtX3F1YW50
aWZpZXIpKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIGNhc2UgVGVybVR5cGU6Okdyb3Vw
OiB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKQEAgLTI1NSw3ICsyNTcsOSBAQCBp
bmxpbmUgU3RyaW5nIFRlcm06OnRvU3RyaW5nKCkgY29uc3QKICAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKHRlcm0udG9TdHJpbmcoKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7CiAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKHF1YW50aWZpZXJUb1N0cmluZyhtX3F1YW50aWZpZXIpKTsK
LSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5jcHAKaW5kZXggYTFhNTk3Yi4u
MmYyNWM5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0FuaW1hdGlvblRyaWdn
ZXJTY3JvbGxWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0FuaW1hdGlvblRy
aWdnZXJTY3JvbGxWYWx1ZS5jcHAKQEAgLTQzLDcgKzQzLDkgQEAgU3RyaW5nIENTU0FuaW1hdGlv
blRyaWdnZXJTY3JvbGxWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIHJlc3Vs
dC5hcHBlbmQobV9lbmRWYWx1ZS0+Y3NzVGV4dCgpKTsKICAgICB9CiAgICAgcmVzdWx0LmFwcGVu
ZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogYm9vbCBDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWU6OmVxdWFscyhj
b25zdCBDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUmIG90aGVyKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5jcHAKaW5kZXggMjRmMjMzNC4uMTkyYTA0ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQmFzaWNTaGFwZXMuY3BwCkBAIC0xMDcsNyArMTA3LDkgQEAgc3RhdGlj
IFN0cmluZyBidWlsZENpcmNsZVN0cmluZyhjb25zdCBTdHJpbmcmIHJhZGl1cywgY29uc3QgU3Ry
aW5nJiBjZW50ZXJYLCBjb24KICAgICAgICAgcmVzdWx0LmFwcGVuZChjZW50ZXJZKTsKICAgICB9
CiAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIikiKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBDU1NCYXNpY1NoYXBl
Q2lyY2xlOjpjc3NUZXh0KCkgY29uc3QKQEAgLTE2NCw3ICsxNjYsOSBAQCBzdGF0aWMgU3RyaW5n
IGJ1aWxkRWxsaXBzZVN0cmluZyhjb25zdCBTdHJpbmcmIHJhZGl1c1gsIGNvbnN0IFN0cmluZyYg
cmFkaXVzWSwgYwogICAgICAgICByZXN1bHQuYXBwZW5kKGNlbnRlclkpOwogICAgIH0KICAgICBy
ZXN1bHQuYXBwZW5kTGl0ZXJhbCgiKSIpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIENTU0Jhc2ljU2hhcGVFbGxpcHNl
Ojpjc3NUZXh0KCkgY29uc3QKQEAgLTIyNCw3ICsyMjgsOSBAQCBzdGF0aWMgU3RyaW5nIGJ1aWxk
UGF0aFN0cmluZyhjb25zdCBXaW5kUnVsZSYgd2luZFJ1bGUsIGNvbnN0IFN0cmluZyYgcGF0aCwg
Y29ucwogICAgICAgICByZXN1bHQuYXBwZW5kKGJveCk7CiAgICAgfQogCi0gICAgcmV0dXJuIHJl
c3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQ1NT
QmFzaWNTaGFwZVBhdGg6OmNzc1RleHQoKSBjb25zdApAQCAtMjgwLDcgKzI4Niw5IEBAIHN0YXRp
YyBTdHJpbmcgYnVpbGRQb2x5Z29uU3RyaW5nKGNvbnN0IFdpbmRSdWxlJiB3aW5kUnVsZSwgY29u
c3QgVmVjdG9yPFN0cmluZz4mCiAKICAgICByZXN1bHQuYXBwZW5kKCcpJyk7CiAKLSAgICByZXR1
cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmlu
ZyBDU1NCYXNpY1NoYXBlUG9seWdvbjo6Y3NzVGV4dCgpIGNvbnN0CkBAIC0zNzcsNyArMzg1LDkg
QEAgc3RhdGljIFN0cmluZyBidWlsZEluc2V0U3RyaW5nKGNvbnN0IFN0cmluZyYgdG9wLCBjb25z
dCBTdHJpbmcmIHJpZ2h0LCBjb25zdCBTdHIKICAgICAgICAgfQogICAgIH0KICAgICByZXN1bHQu
YXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgdXBkYXRlQ29ybmVyUmFkaXVzV2lk
dGhBbmRIZWlnaHQoQ1NTUHJpbWl0aXZlVmFsdWUqIGNvcm5lciwgU3RyaW5nJiB3aWR0aCwgU3Ry
aW5nJiBoZWlnaHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FsY3VsYXRp
b25WYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5jcHAK
aW5kZXggYjc1ODMwMS4uYjkxYzBmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NhbGN1bGF0aW9uVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxh
dGlvblZhbHVlLmNwcApAQCAtMTYyLDcgKzE2Miw5IEBAIHN0YXRpYyBTdHJpbmcgYnVpbGRDc3NU
ZXh0KGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbikKICAgICByZXN1bHQuYXBwZW5kKGV4cHJlc3Np
b24pOwogICAgIGlmIChleHByZXNzaW9uSGFzU2luZ2xlVGVybSkKICAgICAgICAgcmVzdWx0LmFw
cGVuZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogU3RyaW5nIENTU0NhbGNWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0
CkBAIC01NjMsNyArNTY1LDkgQEAgcHJpdmF0ZToKICAgICAgICAgfQogICAgICAgICByZXN1bHQu
YXBwZW5kKCcpJyk7CiAKLSAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIFN0cmluZyBjdXN0b21D
U1NUZXh0KCkgY29uc3QgZmluYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggZWVhZTQyNi4uMWE0NGQ5NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAg
LTE2OTMsNyArMTY5Myw5IEBAIFN0cmluZyBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmNz
c1RleHQoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKCc7Jyk7CiAgICAgfQogCi0gICAg
cmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBF
eGNlcHRpb25Pcjx2b2lkPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OnNldENzc1RleHQo
Y29uc3QgU3RyaW5nJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2Zh
ZGVWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCmlu
ZGV4IDllYjZmMGYuLmFmOTFjMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
cm9zc2ZhZGVWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZh
bHVlLmNwcApAQCAtMTAyLDcgKzEwMiw5IEBAIFN0cmluZyBDU1NDcm9zc2ZhZGVWYWx1ZTo6Y3Vz
dG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIiwgIik7CiAgICAg
cmVzdWx0LmFwcGVuZChtX3BlcmNlbnRhZ2VWYWx1ZS0+Y3NzVGV4dCgpKTsKICAgICByZXN1bHQu
YXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBGbG9hdFNpemUgQ1NTQ3Jvc3NmYWRlVmFsdWU6OmZpeGVkU2l6ZShj
b25zdCBSZW5kZXJFbGVtZW50JiByZW5kZXJlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJz
b3JJbWFnZVZhbHVlLmNwcAppbmRleCAxYjZkN2YyLi4wZWVlZTA4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwCkBAIC02MSw3ICs2MSw5IEBAIFN0cmluZyBD
U1NDdXJzb3JJbWFnZVZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgcmVzdWx0
LmFwcGVuZCgnICcpOwogICAgICAgICByZXN1bHQuYXBwZW5kTnVtYmVyKG1faG90U3BvdC55KCkp
OwogICAgIH0KLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAKIFNWR0N1cnNvckVsZW1lbnQqIENTU0N1cnNvckltYWdlVmFsdWU6OnVwZGF0
ZUN1cnNvckVsZW1lbnQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0N1c3RvbUlkZW50VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0N1c3RvbUlkZW50VmFsdWUuY3BwCmluZGV4IDI2ZDZlM2IuLmY1ZWViNzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXN0b21JZGVudFZhbHVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3VzdG9tSWRlbnRWYWx1ZS5jcHAKQEAgLTU2LDcgKzU2LDkg
QEAgU3RyaW5nIENTU0N1c3RvbUlkZW50VmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAg
ICAgICByZXR1cm4gZ2V0UHJvcGVydHlOYW1lQXRvbWljU3RyaW5nKG1fcHJvcGVydHlJZCk7CiAg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIHNlcmlhbGl6ZUlkZW50aWZpZXIobV9zdHJp
bmcsIGJ1aWxkZXIpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHAKaW5kZXggZWFhYjcwMy4uMjMwZTA3MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcApAQCAtNTMsNyArNTMs
OSBAQCBTdHJpbmcgQ1NTRmlsdGVySW1hZ2VWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAg
ICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIiwgIik7CiAgICAgcmVzdWx0LmFwcGVuZChtX2ZpbHRl
clZhbHVlLT5jc3NUZXh0KCkpOwogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4g
cmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIEZsb2F0U2l6
ZSBDU1NGaWx0ZXJJbWFnZVZhbHVlOjpmaXhlZFNpemUoY29uc3QgUmVuZGVyRWxlbWVudCogcmVu
ZGVyZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VSdWxlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUuY3BwCmluZGV4IDBkZGExYjIu
Ljg1OTQ2ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUuY3BwCkBAIC01Nyw3
ICs1Nyw5IEBAIFN0cmluZyBDU1NGb250RmFjZVJ1bGU6OmNzc1RleHQoKSBjb25zdAogICAgIGlm
ICghZGVzY3MuaXNFbXB0eSgpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCcgJyk7CiAgICAgcmVz
dWx0LmFwcGVuZCgnfScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBDU1NGb250RmFjZVJ1bGU6OnJlYXR0YWNoKFN0eWxl
UnVsZUJhc2UmIHJ1bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZh
Y2VTcmNWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5j
cHAKaW5kZXggODFkOGE3NS4uMmYzNDYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250
RmFjZVNyY1ZhbHVlLmNwcApAQCAtODEsNyArODEsOSBAQCBTdHJpbmcgQ1NTRm9udEZhY2VTcmNW
YWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQobV9mb3Jt
YXQpOwogICAgICAgICByZXN1bHQuYXBwZW5kKCcpJyk7CiAgICAgfQotICAgIHJldHVybiByZXN1
bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDU1NGb250
RmFjZVNyY1ZhbHVlOjp0cmF2ZXJzZVN1YnJlc291cmNlcyhjb25zdCBXVEY6OkZ1bmN0aW9uPGJv
b2wgKGNvbnN0IENhY2hlZFJlc291cmNlJik+JiBoYW5kbGVyKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGZWF0dXJlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ZvbnRGZWF0dXJlVmFsdWUuY3BwCmluZGV4IDdmZjA3ZjMuLjQ3NDYyMmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmVhdHVyZVZhbHVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZlYXR1cmVWYWx1ZS5jcHAKQEAgLTUwLDcgKzUw
LDkgQEAgU3RyaW5nIENTU0ZvbnRGZWF0dXJlVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAog
ICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJl
cihtX3ZhbHVlKTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTRm9udEZlYXR1cmVWYWx1ZTo6ZXF1YWxz
KGNvbnN0IENTU0ZvbnRGZWF0dXJlVmFsdWUmIG90aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTdHlsZVJhbmdlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ZvbnRTdHlsZVJhbmdlVmFsdWUuY3BwCmluZGV4IDBjZGNkYmYuLmVhNjY2YjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U3R5bGVSYW5nZVZhbHVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFN0eWxlUmFuZ2VWYWx1ZS5jcHAKQEAg
LTM5LDcgKzM5LDkgQEAgU3RyaW5nIENTU0ZvbnRTdHlsZVJhbmdlVmFsdWU6OmN1c3RvbUNTU1Rl
eHQoKSBjb25zdAogICAgIGJ1aWxkZXIuYXBwZW5kKGZvbnRTdHlsZVZhbHVlLT5jc3NUZXh0KCkp
OwogICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgYnVpbGRlci5hcHBlbmQob2JsaXF1ZVZh
bHVlcy0+Y3NzVGV4dCgpKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDU1NGb250U3R5bGVSYW5nZVZhbHVlOjplcXVh
bHMoY29uc3QgQ1NTRm9udFN0eWxlUmFuZ2VWYWx1ZSYgb3RoZXIpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFN0eWxlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ZvbnRTdHlsZVZhbHVlLmNwcAppbmRleCAyODUwZTIzLi44YzRlODU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFN0eWxlVmFsdWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U3R5bGVWYWx1ZS5jcHAKQEAgLTM5LDcgKzM5LDkgQEAg
U3RyaW5nIENTU0ZvbnRTdHlsZVZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICBidWls
ZGVyLmFwcGVuZChmb250U3R5bGVWYWx1ZS0+Y3NzVGV4dCgpKTsKICAgICBidWlsZGVyLmFwcGVu
ZCgnICcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG9ibGlxdWVWYWx1ZS0+Y3NzVGV4dCgpKTsKLSAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogYm9vbCBDU1NGb250U3R5bGVWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0ZvbnRTdHlsZVZhbHVl
JiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250VmFs
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYWx1ZS5jcHAKaW5kZXggNzY2YzEx
My4uMWNmNzhhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYWx1ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYWx1ZS5jcHAKQEAgLTY1LDcgKzY1
LDkgQEAgU3RyaW5nIENTU0ZvbnRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAg
IHJlc3VsdC5hcHBlbmQoZmFtaWx5LT5jc3NUZXh0KCkpOwogICAgIH0KIAotICAgIHJldHVybiBy
ZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDU1NG
b250VmFsdWU6OmVxdWFscyhjb25zdCBDU1NGb250VmFsdWUmIG90aGVyKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTRm9udFZhcmlhdGlvblZhbHVlLmNwcAppbmRleCBhMjA4MjYxLi5j
ZDViMzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFZhcmlhdGlvblZh
bHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFZhcmlhdGlvblZhbHVlLmNw
cApAQCAtNDgsNyArNDgsOSBAQCBTdHJpbmcgQ1NTRm9udFZhcmlhdGlvblZhbHVlOjpjdXN0b21D
U1NUZXh0KCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoYyk7CiAgICAgYnVpbGRlci5h
cHBlbmRMaXRlcmFsKCInICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fdmFsdWUpOwot
ICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiBib29sIENTU0ZvbnRWYXJpYXRpb25WYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0ZvbnRWYXJp
YXRpb25WYWx1ZSYgb3RoZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRnVuY3Rpb25WYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRnVuY3Rpb25WYWx1
ZS5jcHAKaW5kZXggNzVlZjBjMS4uYmJkZGZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0Z1bmN0aW9uVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGdW5j
dGlvblZhbHVlLmNwcApAQCAtMzcsNyArMzcsOSBAQCBTdHJpbmcgQ1NTRnVuY3Rpb25WYWx1ZTo6
Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgcmVzdWx0LmFwcGVuZCgnKCcpOwogICAgIHJlc3Vs
dC5hcHBlbmQoQ1NTVmFsdWVMaXN0OjpjdXN0b21DU1NUZXh0KCkpOwogICAgIHJlc3VsdC5hcHBl
bmQoJyknKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVu
dFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAppbmRl
eCBlZWYyOTViLi4wODMzN2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3Jh
ZGllbnRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUu
Y3BwCkBAIC02ODQsNyArNjg0LDkgQEAgU3RyaW5nIENTU0xpbmVhckdyYWRpZW50VmFsdWU6OmN1
c3RvbUNTU1RleHQoKSBjb25zdAogICAgIH0KIAogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKLSAg
ICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IC8vIENvbXB1dGUgdGhlIGVuZHBvaW50cyBzbyB0aGF0IGEgZ3JhZGllbnQgb2YgdGhlIGdpdmVu
IGFuZ2xlIGNvdmVycyBhIGJveCBvZiB0aGUgZ2l2ZW4gc2l6ZS4KQEAgLTEwMDIsNyArMTAwNCw5
IEBAIFN0cmluZyBDU1NSYWRpYWxHcmFkaWVudFZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QK
ICAgICB9CiAKICAgICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBmbG9hdCBDU1NSYWRpYWxHcmFk
aWVudFZhbHVlOjpyZXNvbHZlUmFkaXVzKENTU1ByaW1pdGl2ZVZhbHVlJiByYWRpdXMsIGNvbnN0
IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmIGNvbnZlcnNpb25EYXRhLCBmbG9hdCogd2lkdGhP
ckhlaWdodCkKQEAgLTEzMzAsNyArMTMzNCw5IEBAIFN0cmluZyBDU1NDb25pY0dyYWRpZW50VmFs
dWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIH0KICAgICAKICAgICByZXN1bHQuYXBwZW5k
KCcpJyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBSZWY8R3JhZGllbnQ+IENTU0NvbmljR3JhZGllbnRWYWx1ZTo6Y3JlYXRlR3Jh
ZGllbnQoUmVuZGVyRWxlbWVudCYsIGNvbnN0IEZsb2F0U2l6ZSYpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTR3JpZEF1dG9SZXBlYXRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTR3JpZEF1dG9SZXBlYXRWYWx1ZS5jcHAKaW5kZXggZDViYzQ0OS4uZmQ3OTBkYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRBdXRvUmVwZWF0VmFsdWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNwcApAQCAt
NDMsNyArNDMsOSBAQCBTdHJpbmcgQ1NTR3JpZEF1dG9SZXBlYXRWYWx1ZTo6Y3VzdG9tQ1NTVGV4
dCgpIGNvbnN0CiAgICAgcmVzdWx0LmFwcGVuZCgiLCAiKTsKICAgICByZXN1bHQuYXBwZW5kKENT
U1ZhbHVlTGlzdDo6Y3VzdG9tQ1NTVGV4dCgpKTsKICAgICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0g
ICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3Vs
dC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3Jp
ZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAKaW5kZXggZTBiNzg2NS4uOGJjM2ZmYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcApAQCAtODAs
NyArODAsOSBAQCBTdHJpbmcgQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZTo6Y3VzdG9tQ1NTVGV4
dCgpIGNvbnN0CiAgICAgICAgIGlmIChyb3cgIT0gbV9yb3dDb3VudCAtIDEpCiAgICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDU1NHcmlkVGVtcGxhdGVB
cmVhc1ZhbHVlOjplcXVhbHMoY29uc3QgQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZSYgb3RoZXIp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKaW5kZXggYTk3ZGMy
MS4uZTM3NTBhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFs
dWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcApAQCAt
MTQ2LDcgKzE0Niw5IEBAIFN0cmluZyBDU1NJbWFnZVNldFZhbHVlOjpjdXN0b21DU1NUZXh0KCkg
Y29uc3QKICAgICB9CiAKICAgICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIHJlc3Vs
dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU0ltYWdl
U2V0VmFsdWU6OnRyYXZlcnNlU3VicmVzb3VyY2VzKGNvbnN0IFdURjo6RnVuY3Rpb248Ym9vbCAo
Y29uc3QgQ2FjaGVkUmVzb3VyY2UmKT4mIGhhbmRsZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
SW1wb3J0UnVsZS5jcHAKaW5kZXggNGM2NjYxMy4uZjlhYWVlYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NJbXBvcnRSdWxlLmNwcApAQCAtNzIsNyArNzIsOSBAQCBTdHJpbmcgQ1NTSW1wb3J0UnVsZTo6
Y3NzVGV4dCgpIGNvbnN0CiAgICAgfQogICAgIHJlc3VsdC5hcHBlbmQoJzsnKTsKICAgICAKLSAg
ICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IENTU1N0eWxlU2hlZXQqIENTU0ltcG9ydFJ1bGU6OnN0eWxlU2hlZXQoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lUnVsZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTS2V5ZnJhbWVSdWxlLmNwcAppbmRleCA4MWU5OTU4Li5kY2EzZjczIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVSdWxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVSdWxlLmNwcApAQCAtNjcsNyArNjcsOSBAQCBTdHJp
bmcgU3R5bGVSdWxlS2V5ZnJhbWU6OmtleVRleHQoKSBjb25zdAogICAgICAgICBrZXlUZXh0LmFw
cGVuZCgnJScpOwogICAgIH0KIAotICAgIHJldHVybiBrZXlUZXh0LnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0ga2V5VGV4dC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogICAgIAogYm9vbCBTdHlsZVJ1bGVLZXlmcmFtZTo6c2V0
S2V5VGV4dChjb25zdCBTdHJpbmcmIGtleVRleHQpCkBAIC05MCw3ICs5Miw5IEBAIFN0cmluZyBT
dHlsZVJ1bGVLZXlmcmFtZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgaWYgKCFkZWNscy5pc0VtcHR5
KCkpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAnKTsKICAgICByZXN1bHQuYXBwZW5kKCd9Jyk7
Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJl
c3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiBDU1NLZXlmcmFtZVJ1bGU6OkNTU0tleWZyYW1lUnVsZShTdHlsZVJ1bGVLZXlmcmFtZSYg
a2V5ZnJhbWUsIENTU0tleWZyYW1lc1J1bGUqIHBhcmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZXNSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NL
ZXlmcmFtZXNSdWxlLmNwcAppbmRleCA5ZjAwMGQ5Li43N2IxODI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVzUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0tleWZyYW1lc1J1bGUuY3BwCkBAIC0xOTgsNyArMTk4LDkgQEAgU3RyaW5nIENTU0tl
eWZyYW1lc1J1bGU6OmNzc1RleHQoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKCdcbicp
OwogICAgIH0KICAgICByZXN1bHQuYXBwZW5kKCd9Jyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB1bnNpZ25lZCBDU1NLZXlmcmFt
ZXNSdWxlOjpsZW5ndGgoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0xpbmVCb3hDb250YWluVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xpbmVCb3hD
b250YWluVmFsdWUuY3BwCmluZGV4IDE5ZmRmOGIuLjNkZWIzYmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NMaW5lQm94Q29udGFpblZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTTGluZUJveENvbnRhaW5WYWx1ZS5jcHAKQEAgLTczLDcgKzczLDkgQEAgU3Ry
aW5nIENTU0xpbmVCb3hDb250YWluVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAg
ICB0ZXh0LmFwcGVuZExpdGVyYWwoImluaXRpYWwtbGV0dGVyIik7CiAgICAgfQogCi0gICAgcmV0
dXJuIHRleHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0ZXh0LnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNYXJrdXAuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU01hcmt1cC5jcHAKaW5kZXggODFmZTg4OC4uNjA5YzcxMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU01hcmt1cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U01hcmt1cC5jcHAKQEAgLTE4Niw3ICsxODYsOSBAQCBTdHJpbmcgc2VyaWFsaXplU3RyaW5nKGNv
bnN0IFN0cmluZyYgc3RyaW5nKQogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBz
ZXJpYWxpemVTdHJpbmcoc3RyaW5nLCBidWlsZGVyKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIHNlcmlhbGl6ZVVS
TChjb25zdCBTdHJpbmcmIHN0cmluZykKQEAgLTIwNCw3ICsyMDYsOSBAQCBTdHJpbmcgc2VyaWFs
aXplQXNTdHJpbmdPckN1c3RvbUlkZW50KGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgIGlmIChp
c0NTU1Rva2VuaXplcklkZW50aWZpZXIoc3RyaW5nKSkgewogICAgICAgICBTdHJpbmdCdWlsZGVy
IGJ1aWxkZXI7CiAgICAgICAgIHNlcmlhbGl6ZUlkZW50aWZpZXIoc3RyaW5nLCBidWlsZGVyKTsK
LSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIHJldHVybiBzZXJpYWxpemVTdHJpbmcoc3RyaW5n
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5jcHAKaW5kZXggYjA5NGVkZC4uMTc0ZjVh
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5jcHAKQEAgLTU3LDcgKzU3LDkgQEAgU3Ry
aW5nIENTU01lZGlhUnVsZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgcmVzdWx0LmFwcGVuZExpdGVy
YWwoInsgXG4iKTsKICAgICBhcHBlbmRDc3NUZXh0Rm9ySXRlbXMocmVzdWx0KTsKICAgICByZXN1
bHQuYXBwZW5kKCd9Jyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBNZWRpYUxpc3QqIENTU01lZGlhUnVsZTo6bWVkaWEoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU05hbWVzcGFjZVJ1bGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU05hbWVzcGFjZVJ1bGUuY3BwCmluZGV4IDNkM2VjNmYuLjcw
Njg5NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NOYW1lc3BhY2VSdWxlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTmFtZXNwYWNlUnVsZS5jcHAKQEAgLTYwLDcg
KzYwLDkgQEAgU3RyaW5nIENTU05hbWVzcGFjZVJ1bGU6OmNzc1RleHQoKSBjb25zdAogICAgIHJl
c3VsdC5hcHBlbmQoInVybCgiKTsKICAgICByZXN1bHQuYXBwZW5kKHNlcmlhbGl6ZVN0cmluZyhu
YW1lc3BhY2VVUkkoKSkpOwogICAgIHJlc3VsdC5hcHBlbmQoIik7Iik7Ci0gICAgcmV0dXJuIHJl
c3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIENTU05h
bWVzcGFjZVJ1bGU6OnJlYXR0YWNoKFN0eWxlUnVsZUJhc2UmKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhZ2VSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYWdl
UnVsZS5jcHAKaW5kZXggNDdjZjQ1Ni4uZTY5ZGE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhZ2VSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFnZVJ1
bGUuY3BwCkBAIC02NCw3ICs2NCw5IEBAIFN0cmluZyBDU1NQYWdlUnVsZTo6c2VsZWN0b3JUZXh0
KCkgY29uc3QKICAgICAgICAgICAgIHRleHQuYXBwZW5kKHBhZ2VTcGVjaWZpY2F0aW9uKTsKICAg
ICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gdGV4dC50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHRleHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogdm9pZCBDU1NQYWdlUnVsZTo6c2V0U2VsZWN0b3JUZXh0KGNvbnN0IFN0
cmluZyYgc2VsZWN0b3JUZXh0KQpAQCAtOTAsNyArOTIsOSBAQCBTdHJpbmcgQ1NTUGFnZVJ1bGU6
OmNzc1RleHQoKSBjb25zdAogICAgIGlmICghZGVjbHMuaXNFbXB0eSgpKQogICAgICAgICByZXN1
bHQuYXBwZW5kKCcgJyk7CiAgICAgcmVzdWx0LmFwcGVuZCgnfScpOwotICAgIHJldHVybiByZXN1
bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBDU1NQYWdl
UnVsZTo6cmVhdHRhY2goU3R5bGVSdWxlQmFzZSYgcnVsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWUuY3BwCmluZGV4IGE3NjEyNzYuLjgzZTE2ZTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcApAQCAtMTA0NSw3ICsxMDQ1LDkgQEAgQUxXQVlT
X0lOTElORSBTdHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6OmZvcm1hdE51bWJlckZvckN1c3RvbUNT
U1RleHQoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKFN0cmluZyhtX3ZhbHVlLnN0cmlu
ZykpOwogICAgICAgICByZXN1bHQuYXBwZW5kKCcpJyk7CiAKLSAgICAgICAgcmV0dXJuIHJlc3Vs
dC50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmco
KSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0K
ICAgICBjYXNlIENTU19DT1VOVEVSX05BTUU6CiAgICAgICAgIHJldHVybiAiY291bnRlcigiICsg
U3RyaW5nKG1fdmFsdWUuc3RyaW5nKSArICcpJzsKQEAgLTEwNjksNyArMTA3MSw5IEBAIEFMV0FZ
U19JTkxJTkUgU3RyaW5nIENTU1ByaW1pdGl2ZVZhbHVlOjpmb3JtYXROdW1iZXJGb3JDdXN0b21D
U1NUZXh0KCkgY29uc3QKICAgICAgICAgfQogICAgICAgICByZXN1bHQuYXBwZW5kKCcpJyk7CiAK
LSAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
ICAgICBDUkFTSCgpOwogICAgIH0KICAgICBjYXNlIENTU19SRUNUOgogICAgICAgICByZXR1cm4g
cmVjdFZhbHVlKCktPmNzc1RleHQoKTsKQEAgLTExMTIsNyArMTExNiw5IEBAIEFMV0FZU19JTkxJ
TkUgU3RyaW5nIENTU1ByaW1pdGl2ZVZhbHVlOjpmb3JtYXROdW1iZXJGb3JDdXN0b21DU1NUZXh0
KCkgY29uc3QKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyknKTsK
ICAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgICAgIGlm
IChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogI2VuZGlmCiAgICAgY2FzZSBDU1NfQ0FM
QzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5U291cmNlRGF0YS5jcHAKaW5kZXgg
NzViNzk5MC4uZmQyZTgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3Bl
cnR5U291cmNlRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5U291
cmNlRGF0YS5jcHAKQEAgLTk2LDcgKzk2LDkgQEAgU3RyaW5nIENTU1Byb3BlcnR5U291cmNlRGF0
YTo6dG9TdHJpbmcoKSBjb25zdAogICAgIGlmIChpbXBvcnRhbnQpCiAgICAgICAgIHJlc3VsdC5h
cHBlbmRMaXRlcmFsKCIgIWltcG9ydGFudCIpOwogICAgIHJlc3VsdC5hcHBlbmQoJzsnKTsKLSAg
ICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IHVuc2lnbmVkIENTU1Byb3BlcnR5U291cmNlRGF0YTo6aGFzaCgpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1NlbGVjdG9yLmNwcAppbmRleCAxZmU0MmNkLi41NmJmYzJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTZWxlY3Rvci5jcHAKQEAgLTcyNiwyNiArNzI2LDMxIEBAIFN0cmluZyBDU1NTZWxlY3Rvcjo6
c2VsZWN0b3JUZXh0KGNvbnN0IFN0cmluZyYgcmlnaHRTaWRlKSBjb25zdAogICAgICAgICBjcyA9
IGNzLT50YWdIaXN0b3J5KCk7CiAgICAgfQogCisgICAgU3RyaW5nIHN0cmluZzsKKyAgICBpZiAo
YXV0byBzID0gc3RyLnRvU3RyaW5nKCkpCisgICAgICAgIHN0cmluZyA9ICpzOworICAgIGVsc2UK
KyAgICAgICAgQ1JBU0goKTsKICAgICBpZiAoY29uc3QgQ1NTU2VsZWN0b3IqIHRhZ0hpc3Rvcnkg
PSBjcy0+dGFnSGlzdG9yeSgpKSB7CiAgICAgICAgIHN3aXRjaCAoY3MtPnJlbGF0aW9uKCkpIHsK
ICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6RGVzY2VuZGFudFNwYWNlOgotICAgICAgICAgICAg
cmV0dXJuIHRhZ0hpc3RvcnktPnNlbGVjdG9yVGV4dCgiICIgKyBzdHIudG9TdHJpbmcoKSArIHJp
Z2h0U2lkZSk7CisgICAgICAgICAgICByZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0b3JUZXh0KCIg
IiArIHN0cmluZyArIHJpZ2h0U2lkZSk7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkNoaWxk
OgotICAgICAgICAgICAgcmV0dXJuIHRhZ0hpc3RvcnktPnNlbGVjdG9yVGV4dCgiID4gIiArIHN0
ci50b1N0cmluZygpICsgcmlnaHRTaWRlKTsKKyAgICAgICAgICAgIHJldHVybiB0YWdIaXN0b3J5
LT5zZWxlY3RvclRleHQoIiA+ICIgKyBzdHJpbmcgKyByaWdodFNpZGUpOwogICAgICAgICBjYXNl
IENTU1NlbGVjdG9yOjpEaXJlY3RBZGphY2VudDoKLSAgICAgICAgICAgIHJldHVybiB0YWdIaXN0
b3J5LT5zZWxlY3RvclRleHQoIiArICIgKyBzdHIudG9TdHJpbmcoKSArIHJpZ2h0U2lkZSk7Cisg
ICAgICAgICAgICByZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0b3JUZXh0KCIgKyAiICsgc3RyaW5n
ICsgcmlnaHRTaWRlKTsKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6SW5kaXJlY3RBZGphY2Vu
dDoKLSAgICAgICAgICAgIHJldHVybiB0YWdIaXN0b3J5LT5zZWxlY3RvclRleHQoIiB+ICIgKyBz
dHIudG9TdHJpbmcoKSArIHJpZ2h0U2lkZSk7CisgICAgICAgICAgICByZXR1cm4gdGFnSGlzdG9y
eS0+c2VsZWN0b3JUZXh0KCIgfiAiICsgc3RyaW5nICsgcmlnaHRTaWRlKTsKICAgICAgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6U3Vic2VsZWN0b3I6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICNpZiBBU1NFUlRfRElTQUJMRUQKICAgICAgICAgICAgIEZBTExUSFJPVUdIOwogI2Vu
ZGlmCiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRhbnQ6Ci0gICAgICAg
ICAgICByZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0b3JUZXh0KHN0ci50b1N0cmluZygpICsgcmln
aHRTaWRlKTsKKyAgICAgICAgICAgIHJldHVybiB0YWdIaXN0b3J5LT5zZWxlY3RvclRleHQoc3Ry
aW5nICsgcmlnaHRTaWRlKTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gc3RyLnRvU3Ry
aW5nKCkgKyByaWdodFNpZGU7CisgICAgcmV0dXJuIHN0cmluZyArIHJpZ2h0U2lkZTsKIH0KIAog
dm9pZCBDU1NTZWxlY3Rvcjo6c2V0QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHZhbHVl
LCBib29sIGlzQ2FzZUluc2Vuc2l0aXZlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1NlbGVjdG9yTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0
LmNwcAppbmRleCA1N2VmYTY3Li5hZTMzMDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU2VsZWN0b3JMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0
b3JMaXN0LmNwcApAQCAtMTM4LDcgKzEzOCw5IEBAIFN0cmluZyBDU1NTZWxlY3Rvckxpc3Q6OnNl
bGVjdG9yc1RleHQoKSBjb25zdAogewogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogICAgIGJ1
aWxkU2VsZWN0b3JzVGV4dChyZXN1bHQpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBDU1NTZWxlY3Rvckxpc3Q6OmJ1aWxk
U2VsZWN0b3JzVGV4dChTdHJpbmdCdWlsZGVyJiBzdHJpbmdCdWlsZGVyKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NoYWRvd1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTaGFkb3dWYWx1ZS5jcHAKaW5kZXggOTQ5NDdkNy4uZTI5Yzg1ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NoYWRvd1ZhbHVlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU2hhZG93VmFsdWUuY3BwCkBAIC02OSw3ICs2OSw5IEBAIFN0cmluZyBD
U1NTaGFkb3dWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIHRleHQuYXBwZW5k
KHN0eWxlLT5jc3NUZXh0KCkpOwogICAgIH0KIAotICAgIHJldHVybiB0ZXh0LnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdGV4dC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU1NoYWRvd1ZhbHVlOjplcXVhbHMo
Y29uc3QgQ1NTU2hhZG93VmFsdWUmIG90aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVS
dWxlLmNwcAppbmRleCBiYjhkMjFjLi41ODA4ZmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVS
dWxlLmNwcApAQCAtMTIwLDcgKzEyMCw5IEBAIFN0cmluZyBDU1NTdHlsZVJ1bGU6OmNzc1RleHQo
KSBjb25zdAogICAgIGlmICghZGVjbHMuaXNFbXB0eSgpKQogICAgICAgICByZXN1bHQuYXBwZW5k
KCcgJyk7CiAgICAgcmVzdWx0LmFwcGVuZCgnfScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBDU1NTdHlsZVJ1bGU6OnJl
YXR0YWNoKFN0eWxlUnVsZUJhc2UmIHJ1bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5j
cHAKaW5kZXggMWVjYzViYS4uODY5ODRmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0
LmNwcApAQCAtMzE2LDkgKzMxNiwxMiBAQCBFeGNlcHRpb25PcjxpbnQ+IENTU1N0eWxlU2hlZXQ6
OmFkZFJ1bGUoY29uc3QgU3RyaW5nJiBzZWxlY3RvciwgY29uc3QgU3RyaW5nJiBzdAogICAgIGlm
ICghc3R5bGUuaXNFbXB0eSgpKQogICAgICAgICB0ZXh0LmFwcGVuZCgnICcpOwogICAgIHRleHQu
YXBwZW5kKCd9Jyk7Ci0gICAgYXV0byBpbnNlcnRSdWxlUmVzdWx0ID0gaW5zZXJ0UnVsZSh0ZXh0
LnRvU3RyaW5nKCksIGluZGV4LnZhbHVlX29yKGxlbmd0aCgpKSk7Ci0gICAgaWYgKGluc2VydFJ1
bGVSZXN1bHQuaGFzRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBpbnNlcnRSdWxlUmVzdWx0
LnJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0ZXh0LnRvU3RyaW5n
KCkpIHsKKyAgICAgICAgYXV0byBpbnNlcnRSdWxlUmVzdWx0ID0gaW5zZXJ0UnVsZSgqc3RyaW5n
LCBpbmRleC52YWx1ZV9vcihsZW5ndGgoKSkpOworICAgICAgICBpZiAoaW5zZXJ0UnVsZVJlc3Vs
dC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBpbnNlcnRSdWxlUmVzdWx0LnJl
bGVhc2VFeGNlcHRpb24oKTsKKyAgICB9IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICAKICAg
ICAvLyBBcyBwZXIgTWljcm9zb2Z0IGRvY3VtZW50YXRpb24sIGFsd2F5cyByZXR1cm4gLTEuCiAg
ICAgcmV0dXJuIC0xOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1cHBvcnRz
UnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3VwcG9ydHNSdWxlLmNwcAppbmRleCBl
MTNlMTNiLi5mY2JlMzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3VwcG9y
dHNSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3VwcG9ydHNSdWxlLmNwcApA
QCAtNTAsNyArNTAsOSBAQCBTdHJpbmcgQ1NTU3VwcG9ydHNSdWxlOjpjc3NUZXh0KCkgY29uc3QK
ICAgICBhcHBlbmRDc3NUZXh0Rm9ySXRlbXMocmVzdWx0KTsKICAgICByZXN1bHQuYXBwZW5kKCd9
Jyk7CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIFN0cmluZyBDU1NTdXBwb3J0c1J1bGU6OmNvbmRpdGlvblRleHQoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuY3BwCmluZGV4IDkw
ZWY2Y2QuLjA5Mjg4MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUaW1pbmdG
dW5jdGlvblZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVGltaW5nRnVuY3Rp
b25WYWx1ZS5jcHAKQEAgLTQyLDcgKzQyLDkgQEAgU3RyaW5nIENTU0N1YmljQmV6aWVyVGltaW5n
RnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgYnVpbGRlci5hcHBlbmRM
aXRlcmFsKCIsICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1feTIpOwogICAgIGJ1aWxk
ZXIuYXBwZW5kKCcpJyk7ICAgIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU0N1YmljQmV6aWVyVGltaW5nRnVuY3Rp
b25WYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0N1YmljQmV6aWVyVGltaW5nRnVuY3Rpb25WYWx1ZSYg
b3RoZXIpIGNvbnN0CkBAIC01OSw3ICs2MSw5IEBAIFN0cmluZyBDU1NTdGVwc1RpbWluZ0Z1bmN0
aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZExp
dGVyYWwoIiwgc3RhcnQpIik7CiAgICAgZWxzZQogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVy
YWwoIiwgZW5kKSIpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU1N0ZXBzVGltaW5nRnVuY3Rpb25WYWx1ZTo6ZXF1
YWxzKGNvbnN0IENTU1N0ZXBzVGltaW5nRnVuY3Rpb25WYWx1ZSYgb3RoZXIpIGNvbnN0CkBAIC03
Myw3ICs3Nyw5IEBAIFN0cmluZyBDU1NGcmFtZXNUaW1pbmdGdW5jdGlvblZhbHVlOjpjdXN0b21D
U1NUZXh0KCkgY29uc3QKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoImZyYW1lcygiKTsKICAg
ICBidWlsZGVyLmFwcGVuZE51bWJlcihtX2ZyYW1lcyk7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKCIpIik7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTRnJhbWVzVGltaW5nRnVuY3Rpb25WYWx1ZTo6ZXF1YWxz
KGNvbnN0IENTU0ZyYW1lc1RpbWluZ0Z1bmN0aW9uVmFsdWUmIG90aGVyKSBjb25zdApAQCAtOTMs
NyArOTksOSBAQCBTdHJpbmcgQ1NTU3ByaW5nVGltaW5nRnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NT
VGV4dCgpIGNvbnN0CiAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICBidWlsZGVyLmFwcGVu
ZE51bWJlcihtX2luaXRpYWxWZWxvY2l0eSk7CiAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKLSAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogYm9vbCBDU1NTcHJpbmdUaW1pbmdGdW5jdGlvblZhbHVlOjplcXVhbHMoY29uc3QgQ1NTU3By
aW5nVGltaW5nRnVuY3Rpb25WYWx1ZSYgb3RoZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1
ZUxpc3QuY3BwCmluZGV4IGI2ZTBjMmM1Li4zMDkwZTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVmFsdWVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFs
dWVMaXN0LmNwcApAQCAtMTA3LDcgKzEwNyw5IEBAIFN0cmluZyBDU1NWYWx1ZUxpc3Q6OmN1c3Rv
bUNTU1RleHQoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKHZhbHVlLmdldCgpLmNzc1Rl
eHQoKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU1ZhbHVlTGlzdDo6ZXF1YWxzKGNvbnN0IENTU1Zh
bHVlTGlzdCYgb3RoZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VmFyaWFibGVEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYXJpYWJsZURhdGEuY3Bw
CmluZGV4IDk4YzlkMDkuLjMxMThkZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NWYXJpYWJsZURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYXJpYWJsZURh
dGEuY3BwCkBAIC02OCw3ICs2OCwxMCBAQCB2b2lkIENTU1ZhcmlhYmxlRGF0YTo6Y29uc3VtZUFu
ZFVwZGF0ZVRva2Vucyhjb25zdCBDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKICAgICAgICAg
aWYgKHRva2VuLmhhc1N0cmluZ0JhY2tpbmcoKSkKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIu
YXBwZW5kKHRva2VuLnZhbHVlKCkpOwogICAgIH0KLSAgICBtX2JhY2tpbmdTdHJpbmcgPSBzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICBtX2JhY2tpbmdTdHJpbmcgPSAqc3RyaW5nOworICAgIGVs
c2UKKyAgICAgICAgQ1JBU0goKTsKICAgICBpZiAobV9iYWNraW5nU3RyaW5nLmlzOEJpdCgpKQog
ICAgICAgICB1cGRhdGVUb2tlbnM8TENoYXI+KHJhbmdlKTsKICAgICBlbHNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9ET01DU1NOYW1lc3BhY2UuY3BwCmluZGV4IDkxMzUyMzcuLmNlMTVkNmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuY3BwCkBAIC04NCw3ICs4NCw5IEBAIFN0cmluZyBE
T01DU1NOYW1lc3BhY2U6OmVzY2FwZShjb25zdCBTdHJpbmcmIGlkZW50KQogewogICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKICAgICBzZXJpYWxpemVJZGVudGlmaWVyKGlkZW50LCBidWlsZGVy
KTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeFJlYWRP
bmx5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXhSZWFkT25seS5jcHAKaW5kZXgg
Zjc0YjQ2NS4uNzg4MjI4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJp
eFJlYWRPbmx5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NTWF0cml4UmVhZE9ubHku
Y3BwCkBAIC00NTAsNyArNDUwLDkgQEAgRXhjZXB0aW9uT3I8U3RyaW5nPiBET01NYXRyaXhSZWFk
T25seTo6dG9TdHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmc6Om51
bWJlclRvU3RyaW5nRUNNQVNjcmlwdChtX21hdHJpeC5tNDQoKSkpOwogICAgIH0KICAgICBidWls
ZGVyLmFwcGVuZCgnKScpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gV1RGTW92
ZSgqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwCmluZGV4
IGU0OTY4ODQuLjVlOThlMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNh
dGVkQ1NTT01WYWx1ZUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVk
Q1NTT01WYWx1ZUxpc3QuY3BwCkBAIC01NCw3ICs1NCw5IEBAIFN0cmluZyBEZXByZWNhdGVkQ1NT
T01WYWx1ZUxpc3Q6OmNzc1RleHQoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKHZhbHVl
LmdldCgpLmNzc1RleHQoKSk7CiAgICAgfQogICAgIAotICAgIHJldHVybiByZXN1bHQudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5j
cHAKaW5kZXggNTgxZjVlOC4uYzI1ODZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0ZvbnRGYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwCkBAIC0z
MjgsNyArMzI4LDkgQEAgU3RyaW5nIEZvbnRGYWNlOjpzdHlsZSgpIGNvbnN0CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG1heGltdW1Ob25LZXl3
b3JkLT5vYmxpcXVlVmFsdWUtPmNzc1RleHQoKSk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgRm9udEZh
Y2U6OndlaWdodCgpIGNvbnN0CkBAIC0zNDksNyArMzUxLDkgQEAgU3RyaW5nIEZvbnRGYWNlOjp3
ZWlnaHQoKSBjb25zdAogICAgIGJ1aWxkZXIuYXBwZW5kKG1pbmltdW1Ob25LZXl3b3JkLT5jc3NU
ZXh0KCkpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgYnVpbGRlci5hcHBlbmQobWF4
aW11bU5vbktleXdvcmQtPmNzc1RleHQoKSk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBGb250RmFjZTo6c3RyZXRj
aCgpIGNvbnN0CkBAIC0zNzAsNyArMzc0LDkgQEAgU3RyaW5nIEZvbnRGYWNlOjpzdHJldGNoKCkg
Y29uc3QKICAgICBidWlsZGVyLmFwcGVuZChtaW5pbXVtTm9uS2V5d29yZC0+Y3NzVGV4dCgpKTsK
ICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG1heGltdW1Ob25L
ZXl3b3JkLT5jc3NUZXh0KCkpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgRm9udEZhY2U6OnVuaWNvZGVSYW5nZSgp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwCmluZGV4IDQ1NzUwYWYuLjQyNjk0MDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwCkBAIC0xNTEsNyArMTUxLDkgQEAgU3RyaW5nIE1lZGlh
UXVlcnlTZXQ6Om1lZGlhVGV4dCgpIGNvbnN0CiAgICAgICAgIHRleHQuYXBwZW5kKHF1ZXJ5LmNz
c1RleHQoKSk7CiAgICAgICAgIG5lZWRDb21tYSA9IHRydWU7CiAgICAgfQotICAgIHJldHVybiB0
ZXh0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdGV4dC50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIE1lZGlhUXVl
cnlTZXQ6OnNocmlua1RvRml0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRp
YVF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcAppbmRleCA5ZDBi
YWRmLi40MDcwZDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwCkBAIC02Niw3ICs2Niw5
IEBAIFN0cmluZyBNZWRpYVF1ZXJ5OjpzZXJpYWxpemUoKSBjb25zdAogICAgICAgICByZXN1bHQu
YXBwZW5kKGV4cHJlc3Npb24uc2VyaWFsaXplKCkpOwogICAgICAgICBuZWVkc0FuZCA9IHRydWU7
CiAgICAgfQotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogTWVkaWFRdWVyeTo6TWVkaWFRdWVyeShSZXN0cmljdG9yIHJlc3RyaWN0b3Is
IGNvbnN0IFN0cmluZyYgbWVkaWFUeXBlLCBWZWN0b3I8TWVkaWFRdWVyeUV4cHJlc3Npb24+JiYg
ZXhwcmVzc2lvbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4
cHJlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNw
cAppbmRleCAyZDhlNWYwLi5lMGEyMmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1
ZXJ5RXhwcmVzc2lvbi5jcHAKQEAgLTI0NCw3ICsyNDQsMTAgQEAgU3RyaW5nIE1lZGlhUXVlcnlF
eHByZXNzaW9uOjpzZXJpYWxpemUoKSBjb25zdAogICAgIH0KICAgICByZXN1bHQuYXBwZW5kKCcp
Jyk7CiAKLSAgICBtX3NlcmlhbGl6YXRpb25DYWNoZSA9IHJlc3VsdC50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBtX3NlcmlhbGl6
YXRpb25DYWNoZSA9ICpzdHJpbmc7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIHJl
dHVybiBtX3NlcmlhbGl6YXRpb25DYWNoZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL1JlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SZWN0LmgKaW5kZXggZWMxYWFlOC4u
ZGZhZTE3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1JlY3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvUmVjdC5oCkBAIC0xMDMsNyArMTAzLDkgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJl
c3VsdC50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJp
bmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAg
IH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKaW5kZXggM2M4Y2U0
My4uYmZmMTcyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGll
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKQEAgLTM0
Myw3ICszNDMsOSBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpmb250VmFsdWUoKSBjb25zdAog
ICAgIHJlc3VsdC5hcHBlbmQoZm9udEZhbWlseVByb3BlcnR5LnZhbHVlKCktPmNzc1RleHQoKSk7
CiAgICAgaWYgKGlzSW5pdGlhbE9ySW5oZXJpdChjb21tb25WYWx1ZSkpCiAgICAgICAgIHJldHVy
biBjb21tb25WYWx1ZTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldDRWYWx1ZXMoY29u
c3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYgc2hvcnRoYW5kKSBjb25zdApAQCAtMzk3LDcgKzM5
OSw5IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldDRWYWx1ZXMoY29uc3QgU3R5bGVQcm9w
ZXJ0eVNob3J0aGFuZCYgc2hvcnRoYW5kKSBjb25zCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAn
KTsKICAgICAgICAgcmVzdWx0LmFwcGVuZChsZWZ0LnZhbHVlKCktPmNzc1RleHQoKSk7CiAgICAg
fQotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBy
ZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogU3RyaW5nIFN0eWxlUHJvcGVydGllczo6Z2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlKGNv
bnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHNob3J0aGFuZCkgY29uc3QKQEAgLTU0Myw3ICs1
NDcsOSBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpnZXRMYXllcmVkU2hvcnRoYW5kVmFsdWUo
Y29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYgcwogCiAgICAgaWYgKHJlc3VsdC5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6
OmdldFNob3J0aGFuZFZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHNob3J0aGFu
ZCkgY29uc3QKQEAgLTU3Miw3ICs1NzgsOSBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpnZXRT
aG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBzaG9ydGhhbgogICAg
ICAgICByZXR1cm4gY29tbW9uVmFsdWU7CiAgICAgaWYgKHJlc3VsdC5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIC8vIG9ubHkgcmV0dXJucyBhIG5vbi1udWxsIHZhbHVl
IGlmIGFsbCBwcm9wZXJ0aWVzIGhhdmUgdGhlIHNhbWUsIG5vbi1udWxsIHZhbHVlCkBAIC02MzQs
NyArNjQyLDExIEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmJvcmRlclByb3BlcnR5VmFsdWUo
Q29tbW9uVmFsdWVNb2RlIHZhbHVlTW9kZSkgY29uc3QKICAgICB9CiAgICAgaWYgKGlzSW5pdGlh
bE9ySW5oZXJpdChjb21tb25WYWx1ZSkpCiAgICAgICAgIHJldHVybiBjb21tb25WYWx1ZTsKLSAg
ICByZXR1cm4gcmVzdWx0LmlzRW1wdHkoKSA/IFN0cmluZygpIDogcmVzdWx0LnRvU3RyaW5nKCk7
CisgICAgaWYgKHJlc3VsdC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogUmVmUHRyPENTU1ZhbHVlPiBTdHlsZVByb3BlcnRp
ZXM6OmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKSBjb25zdApA
QCAtMTE0Niw3ICsxMTU4LDkgQEAgU3RyaW5nIFN0eWxlUHJvcGVydGllczo6YXNUZXh0KCkgY29u
c3QKICAgICB9CiAKICAgICBBU1NFUlQoIW51bURlY2xzIF4gIXJlc3VsdC5pc0VtcHR5KCkpOwot
ICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1
bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogYm9vbCBTdHlsZVByb3BlcnRpZXM6Omhhc0NTU09NV3JhcHBlcigpIGNvbnN0CkBAIC0xNDAz
LDcgKzE0MTcsOSBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpQcm9wZXJ0eVJlZmVyZW5jZTo6
Y3NzVGV4dCgpIGNvbnN0CiAgICAgaWYgKGlzSW1wb3J0YW50KCkpCiAgICAgICAgIHJlc3VsdC5h
cHBlbmRMaXRlcmFsKCIgIWltcG9ydGFudCIpOwogICAgIHJlc3VsdC5hcHBlbmQoJzsnKTsKLSAg
ICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAg
ICAgCiBSZWY8RGVmZXJyZWRTdHlsZVByb3BlcnRpZXM+IERlZmVycmVkU3R5bGVQcm9wZXJ0aWVz
OjpjcmVhdGUoY29uc3QgQ1NTUGFyc2VyVG9rZW5SYW5nZSYgdG9rZW5SYW5nZSwgQ1NTRGVmZXJy
ZWRQYXJzZXImIHBhcnNlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRD
U1NNYXRyaXguY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5jcHAKaW5k
ZXggN2JkZTY0ZC4uMWY3OGQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktp
dENTU01hdHJpeC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5j
cHAKQEAgLTI0OSw3ICsyNDksOSBAQCBFeGNlcHRpb25PcjxTdHJpbmc+IFdlYktpdENTU01hdHJp
eDo6dG9TdHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmc6Om51bWJl
clRvU3RyaW5nRUNNQVNjcmlwdChtX21hdHJpeC5tNDQoKSkpOwogICAgIH0KICAgICBidWlsZGVy
LmFwcGVuZCgnKScpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gV1RGTW92ZSgq
c3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NWaWV3cG9ydFJ1bGUuY3BwCmluZGV4IGNiZDE3MmYu
LmRlNmVjOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NWaWV3cG9y
dFJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NWaWV3cG9ydFJ1bGUu
Y3BwCkBAIC03Miw3ICs3Miw5IEBAIFN0cmluZyBXZWJLaXRDU1NWaWV3cG9ydFJ1bGU6OmNzc1Rl
eHQoKSBjb25zdAogCiAgICAgcmVzdWx0LmFwcGVuZCgnfScpOwogCi0gICAgcmV0dXJuIHJlc3Vs
dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIFdlYktpdENT
U1ZpZXdwb3J0UnVsZTo6cmVhdHRhY2goU3R5bGVSdWxlQmFzZSYgcnVsZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcAppbmRleCA5NTRhYjA4Li5lY2JmYWJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwCkBAIC0yOTksMTAgKzI5OSwxMyBAQCBS
ZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VGb250RmFjZURlc2NyaXB0b3IoQ1NTUHJv
cGVydHlJRCBwcm9wZXJ0eUlELCBjbwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIDogIik7
CiAgICAgYnVpbGRlci5hcHBlbmQocHJvcGVydHlWYWx1ZSk7CiAgICAgYnVpbGRlci5hcHBlbmRM
aXRlcmFsKCI7IH0iKTsKLSAgICBSZWZQdHI8U3R5bGVSdWxlQmFzZT4gcnVsZSA9IHBhcnNlUnVs
ZShjb250ZXh0LCBudWxscHRyLCBidWlsZGVyLnRvU3RyaW5nKCkpOwotICAgIGlmICghcnVsZSB8
fCAhcnVsZS0+aXNGb250RmFjZVJ1bGUoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAg
cmV0dXJuIGRvd25jYXN0PFN0eWxlUnVsZUZvbnRGYWNlPigqcnVsZS5nZXQoKSkucHJvcGVydGll
cygpLmdldFByb3BlcnR5Q1NTVmFsdWUocHJvcGVydHlJRCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ICA9IGJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICBSZWZQdHI8U3R5bGVSdWxlQmFzZT4g
cnVsZSA9IHBhcnNlUnVsZShjb250ZXh0LCBudWxscHRyLCAqc3RyaW5nKTsKKyAgICAgICAgaWYg
KCFydWxlIHx8ICFydWxlLT5pc0ZvbnRGYWNlUnVsZSgpKQorICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgICAgIHJldHVybiBkb3duY2FzdDxTdHlsZVJ1bGVGb250RmFjZT4oKnJ1bGUu
Z2V0KCkpLnByb3BlcnRpZXMoKS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHByb3BlcnR5SUQpOworICAg
IH0KKyAgICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1BhcnNlclRva2VuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UGFyc2VyVG9rZW4uY3BwCmluZGV4IDdiOGU2MDMuLjVkMTAxNmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4uY3BwCkBAIC0zOTIsNyArMzkyLDggQEAgdm9p
ZCBDU1NQYXJzZXJUb2tlbjo6c2VyaWFsaXplKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIpIGNvbnN0
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRnVuY3Rpb25Ub2tlbjoKICAgICAgICAgc2VyaWFs
aXplSWRlbnRpZmllcih2YWx1ZSgpLnRvU3RyaW5nKCksIGJ1aWxkZXIpOwotICAgICAgICByZXR1
cm4gYnVpbGRlci5hcHBlbmQoJygnKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJygnKTsKKyAg
ICAgICAgcmV0dXJuOwogICAgIGNhc2UgQXRLZXl3b3JkVG9rZW46CiAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCdAJyk7CiAgICAgICAgIHNlcmlhbGl6ZUlkZW50aWZpZXIodmFsdWUoKS50b1N0cmlu
ZygpLCBidWlsZGVyKTsKQEAgLTQwNCw2OSArNDA1LDk3IEBAIHZvaWQgQ1NTUGFyc2VyVG9rZW46
OnNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiBidWlsZGVyKSBjb25zdAogICAgIGNhc2UgVXJsVG9r
ZW46CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJ1cmwoIik7CiAgICAgICAgIHNlcmlhbGl6ZUlk
ZW50aWZpZXIodmFsdWUoKS50b1N0cmluZygpLCBidWlsZGVyKTsKLSAgICAgICAgcmV0dXJuIGJ1
aWxkZXIuYXBwZW5kKCcpJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7CisgICAgICAg
IHJldHVybjsKICAgICBjYXNlIERlbGltaXRlclRva2VuOgotICAgICAgICBpZiAoZGVsaW1pdGVy
KCkgPT0gJ1xcJykKLSAgICAgICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgiXFxcbiIpOwot
ICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoZGVsaW1pdGVyKCkpOworICAgICAgICBpZiAo
ZGVsaW1pdGVyKCkgPT0gJ1xcJykgeworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIlxcXG4i
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBidWlsZGVyLmFwcGVu
ZChkZWxpbWl0ZXIoKSk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIE51bWJlclRva2VuOgog
ICAgICAgICAvLyBUaGVzZSB3b24ndCBwcm9wZXJseSBwcmVzZXJ2ZSB0aGUgTnVtZXJpY1ZhbHVl
VHlwZSBmbGFnCiAgICAgICAgIGlmIChtX251bWVyaWNTaWduID09IFBsdXNTaWduKQogICAgICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoJysnKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5k
TnVtYmVyKG51bWVyaWNWYWx1ZSgpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobnVt
ZXJpY1ZhbHVlKCkpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBQZXJjZW50YWdlVG9rZW46
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG51bWVyaWNWYWx1ZSgpKTsKLSAgICAgICAg
cmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCclJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCclJyk7
CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIERpbWVuc2lvblRva2VuOgogICAgICAgICAvLyBU
aGlzIHdpbGwgaW5jb3JyZWN0bHkgc2VyaWFsaXplIGUuZy4gNGUzZTIgYXMgNDAwMGUyCiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG51bWVyaWNWYWx1ZSgpKTsKICAgICAgICAgc2VyaWFs
aXplSWRlbnRpZmllcih2YWx1ZSgpLnRvU3RyaW5nKCksIGJ1aWxkZXIpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFVuaWNvZGVSYW5nZVRva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5h
cHBlbmQoU3RyaW5nOjpmb3JtYXQoIlUrJVgtJVgiLCB1bmljb2RlUmFuZ2VTdGFydCgpLCB1bmlj
b2RlUmFuZ2VFbmQoKSkpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmc6OmZvcm1hdCgi
VSslWC0lWCIsIHVuaWNvZGVSYW5nZVN0YXJ0KCksIHVuaWNvZGVSYW5nZUVuZCgpKSk7CisgICAg
ICAgIHJldHVybjsKICAgICBjYXNlIFN0cmluZ1Rva2VuOgotICAgICAgICByZXR1cm4gc2VyaWFs
aXplU3RyaW5nKHZhbHVlKCkudG9TdHJpbmcoKSwgYnVpbGRlcik7CisgICAgICAgIHNlcmlhbGl6
ZVN0cmluZyh2YWx1ZSgpLnRvU3RyaW5nKCksIGJ1aWxkZXIpOworICAgICAgICByZXR1cm47CiAK
ICAgICBjYXNlIEluY2x1ZGVNYXRjaFRva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBl
bmQoIn49Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJ+PSIpOworICAgICAgICByZXR1cm47
CiAgICAgY2FzZSBEYXNoTWF0Y2hUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5k
KCJ8PSIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgifD0iKTsKKyAgICAgICAgcmV0dXJuOwog
ICAgIGNhc2UgUHJlZml4TWF0Y2hUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5k
KCJePSIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiXj0iKTsKKyAgICAgICAgcmV0dXJuOwog
ICAgIGNhc2UgU3VmZml4TWF0Y2hUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5k
KCIkPSIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiJD0iKTsKKyAgICAgICAgcmV0dXJuOwog
ICAgIGNhc2UgU3Vic3RyaW5nTWF0Y2hUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBw
ZW5kKCIqPSIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiKj0iKTsKKyAgICAgICAgcmV0dXJu
OwogICAgIGNhc2UgQ29sdW1uVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgi
fHwiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoInx8Iik7CisgICAgICAgIHJldHVybjsKICAg
ICBjYXNlIENET1Rva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoIjwhLS0iKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmQoIjwhLS0iKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgQ0RDVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgiLS0+Iik7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCItLT4iKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQmFk
U3RyaW5nVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgiJ1xuIik7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCInXG4iKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQmFk
VXJsVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgidXJsKCgpIik7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCJ1cmwoKCkiKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2Ug
V2hpdGVzcGFjZVRva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJyAnKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQ29s
b25Ub2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCc6Jyk7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCc6Jyk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFNlbWljb2xvblRv
a2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJzsnKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQoJzsnKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQ29tbWFUb2tlbjoKLSAg
ICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCcsJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCcsJyk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIExlZnRQYXJlbnRoZXNpc1Rva2VuOgot
ICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJygnKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQoJygnKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgUmlnaHRQYXJlbnRoZXNpc1Rva2Vu
OgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJyknKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQoJyknKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgTGVmdEJyYWNrZXRUb2tlbjoK
LSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCdbJyk7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCdbJyk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFJpZ2h0QnJhY2tldFRva2VuOgot
ICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJ10nKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQoJ10nKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgTGVmdEJyYWNlVG9rZW46Ci0gICAg
ICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgneycpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgn
eycpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBSaWdodEJyYWNlVG9rZW46Ci0gICAgICAg
IHJldHVybiBidWlsZGVyLmFwcGVuZCgnfScpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnfScp
OworICAgICAgICByZXR1cm47CiAKICAgICBjYXNlIEVPRlRva2VuOgogICAgIGNhc2UgQ29tbWVu
dFRva2VuOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJU
b2tlblJhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW5S
YW5nZS5jcHAKaW5kZXggY2I5YzU4MC4uZWZlNWEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlblJhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuUmFuZ2UuY3BwCkBAIC0xMTMsNyArMTEzLDkgQEAg
U3RyaW5nIENTU1BhcnNlclRva2VuUmFuZ2U6OnNlcmlhbGl6ZSgpIGNvbnN0CiAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOwogICAgIGZvciAoY29uc3QgQ1NTUGFyc2VyVG9rZW4qIGl0ID0gbV9m
aXJzdDsgaXQgPCBtX2xhc3Q7ICsraXQpCiAgICAgICAgIGl0LT5zZXJpYWxpemUoYnVpbGRlcik7
Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXggYmNlY2U3MC4uMzA5MDc1ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKQEAgLTEw
MTYsNyArMTAxNiw5IEBAIHN0YXRpYyBTdHJpbmcgY29uY2F0ZW5hdGVGYW1pbHlOYW1lKENTU1Bh
cnNlclRva2VuUmFuZ2UmIHJhbmdlKQogICAgIH0KICAgICBpZiAoIWFkZGVkU3BhY2UgJiYgaXND
U1NXaWRlS2V5d29yZChmaXJzdFRva2VuLmlkKCkpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7
Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVGYW1pbHlOYW1lKENTU1BhcnNl
clRva2VuUmFuZ2UmIHJhbmdlKQpAQCAtMzI2NCw3ICszMjY2LDEwIEBAIHN0YXRpYyBWZWN0b3I8
U3RyaW5nPiBwYXJzZUdyaWRUZW1wbGF0ZUFyZWFzQ29sdW1uTmFtZXMoY29uc3QgU3RyaW5nJiBn
cmlkUm93TmFtCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRleHQubGVuZ3RoKCk7ICsr
aSkgewogICAgICAgICBpZiAoaXNDU1NTcGFjZSh0ZXh0W2ldKSkgewogICAgICAgICAgICAgaWYg
KCFhcmVhTmFtZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBjb2x1bW5OYW1lcy5hcHBl
bmQoYXJlYU5hbWUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYXJlYU5hbWUudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgY29sdW1uTmFtZXMu
YXBwZW5kKCpzdHJpbmcpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgQ1JBU0goKTsKICAgICAgICAgICAgICAgICBhcmVhTmFtZS5jbGVhcigpOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgY29udGludWU7CkBAIC0zMjczLDE0ICszMjc4LDIwIEBAIHN0YXRp
YyBWZWN0b3I8U3RyaW5nPiBwYXJzZUdyaWRUZW1wbGF0ZUFyZWFzQ29sdW1uTmFtZXMoY29uc3Qg
U3RyaW5nJiBncmlkUm93TmFtCiAgICAgICAgICAgICBpZiAoYXJlYU5hbWUgPT0gIi4iKQogICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgaWYgKCFhcmVhTmFtZS5pc0VtcHR5
KCkpIHsKLSAgICAgICAgICAgICAgICBjb2x1bW5OYW1lcy5hcHBlbmQoYXJlYU5hbWUudG9TdHJp
bmcoKSk7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYXJlYU5hbWUudG9TdHJp
bmcoKSkKKyAgICAgICAgICAgICAgICAgICAgY29sdW1uTmFtZXMuYXBwZW5kKCpzdHJpbmcpOwor
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAg
ICAgICAgICAgICBhcmVhTmFtZS5jbGVhcigpOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgaWYgKCFpc05hbWVDb2RlUG9pbnQodGV4dFtpXSkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIFZlY3RvcjxTdHJpbmc+KCk7CiAgICAgICAgICAgICBpZiAoYXJlYU5h
bWUgPT0gIi4iKSB7Ci0gICAgICAgICAgICAgICAgY29sdW1uTmFtZXMuYXBwZW5kKGFyZWFOYW1l
LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGFyZWFOYW1l
LnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbHVtbk5hbWVzLmFwcGVuZCgqc3Ry
aW5nKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7
CiAgICAgICAgICAgICAgICAgYXJlYU5hbWUuY2xlYXIoKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQpAQCAtMzI4OCw4ICszMjk5LDEyIEBAIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiBwYXJzZUdy
aWRUZW1wbGF0ZUFyZWFzQ29sdW1uTmFtZXMoY29uc3QgU3RyaW5nJiBncmlkUm93TmFtCiAgICAg
ICAgIGFyZWFOYW1lLmFwcGVuZCh0ZXh0W2ldKTsKICAgICB9CiAKLSAgICBpZiAoIWFyZWFOYW1l
LmlzRW1wdHkoKSkKLSAgICAgICAgY29sdW1uTmFtZXMuYXBwZW5kKGFyZWFOYW1lLnRvU3RyaW5n
KCkpOworICAgIGlmICghYXJlYU5hbWUuaXNFbXB0eSgpKSB7CisgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IGFyZWFOYW1lLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBjb2x1bW5OYW1lcy5hcHBl
bmQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CisgICAgfQog
CiAgICAgcmV0dXJuIGNvbHVtbk5hbWVzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NUb2tlbml6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NUb2tlbml6ZXIuY3BwCmluZGV4IDFmMWEyM2UuLjNiODRlMjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTVG9rZW5pemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1Rva2VuaXplci5jcHAKQEAgLTYwNSw4ICs2MDUsMTEgQEAgQ1NTUGFy
c2VyVG9rZW4gQ1NTVG9rZW5pemVyOjpjb25zdW1lU3RyaW5nVG9rZW5VbnRpbChVQ2hhciBlbmRp
bmdDb2RlUG9pbnQpCiAgICAgU3RyaW5nQnVpbGRlciBvdXRwdXQ7CiAgICAgd2hpbGUgKHRydWUp
IHsKICAgICAgICAgVUNoYXIgY2MgPSBjb25zdW1lKCk7Ci0gICAgICAgIGlmIChjYyA9PSBlbmRp
bmdDb2RlUG9pbnQgfHwgY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikKLSAgICAgICAgICAgIHJldHVy
biBDU1NQYXJzZXJUb2tlbihTdHJpbmdUb2tlbiwgcmVnaXN0ZXJTdHJpbmcob3V0cHV0LnRvU3Ry
aW5nKCkpKTsKKyAgICAgICAgaWYgKGNjID09IGVuZGluZ0NvZGVQb2ludCB8fCBjYyA9PSBrRW5k
T2ZGaWxlTWFya2VyKSB7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBvdXRwdXQudG9T
dHJpbmcoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUGFyc2VyVG9rZW4oU3RyaW5nVG9r
ZW4sIHJlZ2lzdGVyU3RyaW5nKCpzdHJpbmcpKTsKKyAgICAgICAgICAgIENSQVNIKCk7CisgICAg
ICAgIH0KICAgICAgICAgaWYgKGlzTmV3TGluZShjYykpIHsKICAgICAgICAgICAgIHJlY29uc3Vt
ZShjYyk7CiAgICAgICAgICAgICByZXR1cm4gQ1NTUGFyc2VyVG9rZW4oQmFkU3RyaW5nVG9rZW4p
OwpAQCAtNjgwLDEzICs2ODMsMTkgQEAgQ1NTUGFyc2VyVG9rZW4gQ1NTVG9rZW5pemVyOjpjb25z
dW1lVXJsVG9rZW4oKQogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogICAgIHdoaWxlICh0cnVl
KSB7CiAgICAgICAgIFVDaGFyIGNjID0gY29uc3VtZSgpOwotICAgICAgICBpZiAoY2MgPT0gJykn
IHx8IGNjID09IGtFbmRPZkZpbGVNYXJrZXIpCi0gICAgICAgICAgICByZXR1cm4gQ1NTUGFyc2Vy
VG9rZW4oVXJsVG9rZW4sIHJlZ2lzdGVyU3RyaW5nKHJlc3VsdC50b1N0cmluZygpKSk7CisgICAg
ICAgIGlmIChjYyA9PSAnKScgfHwgY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgeworICAgICAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIENTU1BhcnNlclRva2VuKFVybFRva2VuLCByZWdpc3RlclN0cmluZygqc3RyaW5nKSk7
CisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CiAKICAgICAgICAgaWYgKGlzSFRNTFNw
YWNlKGNjKSkgewogICAgICAgICAgICAgbV9pbnB1dC5hZHZhbmNlVW50aWxOb25XaGl0ZXNwYWNl
KCk7Ci0gICAgICAgICAgICBpZiAoY29uc3VtZUlmTmV4dCgnKScpIHx8IG1faW5wdXQubmV4dElu
cHV0Q2hhcigpID09IGtFbmRPZkZpbGVNYXJrZXIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIENT
U1BhcnNlclRva2VuKFVybFRva2VuLCByZWdpc3RlclN0cmluZyhyZXN1bHQudG9TdHJpbmcoKSkp
OworICAgICAgICAgICAgaWYgKGNvbnN1bWVJZk5leHQoJyknKSB8fCBtX2lucHV0Lm5leHRJbnB1
dENoYXIoKSA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBD
U1NQYXJzZXJUb2tlbihVcmxUb2tlbiwgcmVnaXN0ZXJTdHJpbmcoKnN0cmluZykpOworICAgICAg
ICAgICAgICAgIENSQVNIKCk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogCkBAIC03OTEsNyArODAwLDkgQEAgU3RyaW5nVmlldyBDU1NUb2tlbml6ZXI6OmNv
bnN1bWVOYW1lKCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAgICAgICAgIHJl
Y29uc3VtZShjYyk7Ci0gICAgICAgIHJldHVybiByZWdpc3RlclN0cmluZyhyZXN1bHQudG9TdHJp
bmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAg
ICAgICAgICAgcmV0dXJuIHJlZ2lzdGVyU3RyaW5nKCpzdHJpbmcpOworICAgICAgICBDUkFTSCgp
OwogICAgIH0KIH0KIApAQCAtODExLDExICs4MjIsMTQgQEAgVUNoYXIzMiBDU1NUb2tlbml6ZXI6
OmNvbnN1bWVFc2NhcGUoKQogICAgICAgICB9OwogICAgICAgICBjb25zdW1lU2luZ2xlV2hpdGVz
cGFjZUlmTmV4dCgpOwogICAgICAgICBib29sIG9rID0gZmFsc2U7Ci0gICAgICAgIFVDaGFyMzIg
Y29kZVBvaW50ID0gaGV4Q2hhcnMudG9TdHJpbmcoKS50b1VJbnRTdHJpY3QoJm9rLCAxNik7Ci0g
ICAgICAgIEFTU0VSVChvayk7Ci0gICAgICAgIGlmICghY29kZVBvaW50IHx8ICgweEQ4MDAgPD0g
Y29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweERGRkYpIHx8IGNvZGVQb2ludCA+IDB4MTBGRkZG
KQotICAgICAgICAgICAgcmV0dXJuIHJlcGxhY2VtZW50Q2hhcmFjdGVyOwotICAgICAgICByZXR1
cm4gY29kZVBvaW50OworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBoZXhDaGFycy50b1N0cmlu
ZygpKSB7CisgICAgICAgICAgICBVQ2hhcjMyIGNvZGVQb2ludCA9IHN0cmluZy0+dG9VSW50U3Ry
aWN0KCZvaywgMTYpOworICAgICAgICAgICAgQVNTRVJUKG9rKTsKKyAgICAgICAgICAgIGlmICgh
Y29kZVBvaW50IHx8ICgweEQ4MDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweERGRkYp
IHx8IGNvZGVQb2ludCA+IDB4MTBGRkZGKQorICAgICAgICAgICAgICAgIHJldHVybiByZXBsYWNl
bWVudENoYXJhY3RlcjsKKyAgICAgICAgICAgIHJldHVybiBjb2RlUG9pbnQ7CisgICAgICAgIH0K
KyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcAppbmRleCBmMmQ4
NDIwLi5kNTY2N2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0
cmluZ01hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAu
Y3BwCkBAIC02NSw3ICs2NSw5IEBAIHN0YXRpYyBTdHJpbmcgY29udmVydEF0dHJpYnV0ZU5hbWVU
b1Byb3BlcnR5TmFtZShjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgICAgIH0KICAgICB9CiAKLSAg
ICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogc3RhdGljIGJvb2wgcHJvcGVydHlOYW1lTWF0Y2hlc0F0dHJpYnV0ZU5h
bWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFN0cmluZyYgYXR0cmlidXRlTmFt
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAwYTIzMjYzLi44ODE0NTQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCkBAIC0yMTk3LDcgKzIxOTcsMTAgQEAgdm9pZCBFbGVtZW50Ojpmb3JtYXRG
b3JEZWJ1Z2dlcihjaGFyKiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3QKICAgICAgICAg
cmVzdWx0LmFwcGVuZChzKTsKICAgICB9CiAKLSAgICBzdHJuY3B5KGJ1ZmZlciwgcmVzdWx0LnRv
U3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0gMSk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHN0cm5jcHkoYnVmZmVyLCBzdHJpbmctPnV0
ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0K
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggNGIxZTg3Mi4uOGZjYmQ3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmNwcApAQCAtMTUxOSw3ICsxNTE5LDkgQEAgU3RyaW5nIE5vZGU6OnRleHRDb250ZW50KGJv
b2wgY29udmVydEJSc1RvTmV3bGluZXMpIGNvbnN0CiAgICAgU3RyaW5nQnVpbGRlciBjb250ZW50
OwogICAgIGJvb2wgaXNOdWxsU3RyaW5nID0gdHJ1ZTsKICAgICBhcHBlbmRUZXh0Q29udGVudCh0
aGlzLCBjb252ZXJ0QlJzVG9OZXdsaW5lcywgaXNOdWxsU3RyaW5nLCBjb250ZW50KTsKLSAgICBy
ZXR1cm4gaXNOdWxsU3RyaW5nID8gU3RyaW5nKCkgOiBjb250ZW50LnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gY29udGVudC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gaXNO
dWxsU3RyaW5nID8gU3RyaW5nKCkgOiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIEV4Y2Vw
dGlvbk9yPHZvaWQ+IE5vZGU6OnNldFRleHRDb250ZW50KGNvbnN0IFN0cmluZyYgdGV4dCkKQEAg
LTE3MzAsNyArMTczMiwxMCBAQCB2b2lkIE5vZGU6OnNob3dOb2RlKGNvbnN0IGNoYXIqIHByZWZp
eCkgY29uc3QKICAgICAgICAgU3RyaW5nQnVpbGRlciBhdHRyczsKICAgICAgICAgYXBwZW5kQXR0
cmlidXRlRGVzYyh0aGlzLCBhdHRycywgY2xhc3NBdHRyLCAiIENMQVNTPSIpOwogICAgICAgICBh
cHBlbmRBdHRyaWJ1dGVEZXNjKHRoaXMsIGF0dHJzLCBzdHlsZUF0dHIsICIgU1RZTEU9Iik7Ci0g
ICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMlc1x0JXAgKHJlbmRlcmVyICVwKSAlcyVzJXNcbiIs
IHByZWZpeCwgbm9kZU5hbWUoKS51dGY4KCkuZGF0YSgpLCB0aGlzLCByZW5kZXJlcigpLCBhdHRy
cy50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIG5lZWRzU3R5bGVSZWNhbGMoKSA/ICIgKG5lZWRz
IHN0eWxlIHJlY2FsYykiIDogIiIsIGNoaWxkTmVlZHNTdHlsZVJlY2FsYygpID8gIiAoY2hpbGQg
bmVlZHMgc3R5bGUgcmVjYWxjKSIgOiAiIik7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGF0
dHJzLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzJXNcdCVwIChy
ZW5kZXJlciAlcCkgJXMlcyVzXG4iLCBwcmVmaXgsIG5vZGVOYW1lKCkudXRmOCgpLmRhdGEoKSwg
dGhpcywgcmVuZGVyZXIoKSwgc3RyaW5nLT51dGY4KCkuZGF0YSgpLCBuZWVkc1N0eWxlUmVjYWxj
KCkgPyAiIChuZWVkcyBzdHlsZSByZWNhbGMpIiA6ICIiLCBjaGlsZE5lZWRzU3R5bGVSZWNhbGMo
KSA/ICIgKGNoaWxkIG5lZWRzIHN0eWxlIHJlY2FsYykiIDogIiIpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIH0KIApAQCAtMTgwMiwxMiArMTgwNywxOSBAQCBz
dGF0aWMgdm9pZCB0cmF2ZXJzZVRyZWVBbmRNYXJrKGNvbnN0IFN0cmluZyYgYmFzZUluZGVudCwg
Y29uc3QgTm9kZSogcm9vdE5vZGUsCiAgICAgICAgIGluZGVudC5hcHBlbmQoYmFzZUluZGVudCk7
CiAgICAgICAgIGZvciAoY29uc3QgTm9kZSogdG1wTm9kZSA9IG5vZGU7IHRtcE5vZGUgJiYgdG1w
Tm9kZSAhPSByb290Tm9kZTsgdG1wTm9kZSA9IHRtcE5vZGUtPnBhcmVudE9yU2hhZG93SG9zdE5v
ZGUoKSkKICAgICAgICAgICAgIGluZGVudC5hcHBlbmQoJ1x0Jyk7Ci0gICAgICAgIGZwcmludGYo
c3RkZXJyLCAiJXMiLCBpbmRlbnQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gaW5kZW50LnRvU3RyaW5nKCkpCisgICAgICAgICAgICBmcHJpbnRm
KHN0ZGVyciwgIiVzIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgbm9kZS0+c2hvd05vZGUoKTsKICAgICAgICAgaW5k
ZW50LmFwcGVuZCgnXHQnKTsKICAgICAgICAgaWYgKCFub2RlLT5pc1NoYWRvd1Jvb3QoKSkgewot
ICAgICAgICAgICAgaWYgKFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QgPSBub2RlLT5zaGFkb3dSb290
KCkpCi0gICAgICAgICAgICAgICAgdHJhdmVyc2VUcmVlQW5kTWFyayhpbmRlbnQudG9TdHJpbmco
KSwgc2hhZG93Um9vdCwgbWFya2VkTm9kZTEsIG1hcmtlZExhYmVsMSwgbWFya2VkTm9kZTIsIG1h
cmtlZExhYmVsMik7CisgICAgICAgICAgICBpZiAoU2hhZG93Um9vdCogc2hhZG93Um9vdCA9IG5v
ZGUtPnNoYWRvd1Jvb3QoKSkgeworICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGlu
ZGVudC50b1N0cmluZygpKQorICAgICAgICAgICAgICAgICAgICB0cmF2ZXJzZVRyZWVBbmRNYXJr
KCpzdHJpbmcsIHNoYWRvd1Jvb3QsIG1hcmtlZE5vZGUxLCBtYXJrZWRMYWJlbDEsIG1hcmtlZE5v
ZGUyLCBtYXJrZWRMYWJlbDIpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICAgICAgQ1JBU0goKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vUG9zaXRpb24uY3BwCmluZGV4IDg5YTUwNmYuLmE1MjAxNmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0
aW9uLmNwcApAQCAtMTQxOSw3ICsxNDE5LDEwIEBAIHZvaWQgUG9zaXRpb246OmZvcm1hdEZvckRl
YnVnZ2VyKGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgbGVuZ3RoKSBjb25zdAogICAgICAgICByZXN1
bHQuYXBwZW5kKHMpOwogICAgIH0KIAotICAgIHN0cm5jcHkoYnVmZmVyLCByZXN1bHQudG9TdHJp
bmcoKS51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBy
ZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgc3RybmNweShidWZmZXIsIHN0cmluZy0+dXRmOCgp
LmRhdGEoKSwgbGVuZ3RoIC0gMSk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2
b2lkIFBvc2l0aW9uOjpzaG93QW5jaG9yVHlwZUFuZE9mZnNldCgpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Jhbmdl
LmNwcAppbmRleCBhNTdhNWUyLi4xNTk4NzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vUmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKQEAgLTk0OSw3
ICs5NDksOSBAQCBTdHJpbmcgUmFuZ2U6OnRvU3RyaW5nKCkgY29uc3QKICAgICAgICAgfQogICAg
IH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBTdHJpbmcgUmFuZ2U6OnRvSFRNTCgpIGNvbnN0CkBAIC0xNTM1LDcgKzE1Mzcs
MTAgQEAgdm9pZCBSYW5nZTo6Zm9ybWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1bnNpZ25l
ZCBsZW5ndGgpIGNvbnN0CiAgICAgZW5kQ29udGFpbmVyKCkuZm9ybWF0Rm9yRGVidWdnZXIocywg
Rm9ybWF0QnVmZmVyU2l6ZSk7CiAgICAgcmVzdWx0LmFwcGVuZChzKTsKIAotICAgIHN0cm5jcHko
YnVmZmVyLCByZXN1bHQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgc3RybmNweShi
dWZmZXIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0gMSk7CisgICAgZWxzZQorICAg
ICAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKaW5kZXggYzRkODVkOC4uYTUwMzkwYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5j
cHAKQEAgLTExMiw3ICsxMTIsOSBAQCBzdGF0aWMgU3RyaW5nIHRocm90dGxpbmdSZWFzb25zVG9T
dHJpbmcoT3B0aW9uU2V0PFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6VAogICAgICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoJ3wnKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQodGhyb3R0bGlu
Z1JlYXNvblRvU3RyaW5nKHJlYXNvbikpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TZWN1cml0eUNvbnRleHQuY3BwCmluZGV4IDRmOGYxYTguLjE0ODIyMWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRleHQuY3BwCkBAIC0xNTIsNyArMTUyLDEwIEBAIFNhbmRi
b3hGbGFncyBTZWN1cml0eUNvbnRleHQ6OnBhcnNlU2FuZGJveFBvbGljeShjb25zdCBTdHJpbmcm
IHBvbGljeSwgU3RyaW5nJiBpCiAgICAgICAgICAgICB0b2tlbkVycm9ycy5hcHBlbmRMaXRlcmFs
KCIgYXJlIGludmFsaWQgc2FuZGJveCBmbGFncy4iKTsKICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgdG9rZW5FcnJvcnMuYXBwZW5kTGl0ZXJhbCgiIGlzIGFuIGludmFsaWQgc2FuZGJveCBmbGFn
LiIpOwotICAgICAgICBpbnZhbGlkVG9rZW5zRXJyb3JNZXNzYWdlID0gdG9rZW5FcnJvcnMudG9T
dHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gdG9rZW5FcnJvcnMudG9TdHJpbmco
KSkKKyAgICAgICAgICAgIGludmFsaWRUb2tlbnNFcnJvck1lc3NhZ2UgPSAqc3RyaW5nOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIHJldHVybiBmbGFn
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9UZXh0LmNwcAppbmRleCA3MzE1ZDE2Li5iMzI3ZjU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3Bw
CkBAIC0xMTMsNyArMTEzLDkgQEAgU3RyaW5nIFRleHQ6Ondob2xlVGV4dCgpIGNvbnN0CiAgICAg
U3RyaW5nQnVpbGRlciByZXN1bHQ7CiAgICAgZm9yIChjb25zdCBUZXh0KiB0ZXh0ID0gc3RhcnRU
ZXh0OyB0ZXh0ICE9IG9uZVBhc3RFbmRUZXh0OyB0ZXh0ID0gVGV4dE5vZGVUcmF2ZXJzYWw6Om5l
eHRTaWJsaW5nKCp0ZXh0KSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCh0ZXh0LT5kYXRhKCkpOwot
ICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1
bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogUmVmUHRyPFRleHQ+IFRleHQ6OnJlcGxhY2VXaG9sZVRleHQoY29uc3QgU3RyaW5nJiBuZXdU
ZXh0KQpAQCAtMjQwLDcgKzI0MiwxMCBAQCB2b2lkIFRleHQ6OmZvcm1hdEZvckRlYnVnZ2VyKGNo
YXIqIGJ1ZmZlciwgdW5zaWduZWQgbGVuZ3RoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5k
KCciJyk7CiAgICAgfQogCi0gICAgc3RybmNweShidWZmZXIsIHJlc3VsdC50b1N0cmluZygpLnV0
ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50
b1N0cmluZygpKQorICAgICAgICBzdHJuY3B5KGJ1ZmZlciwgc3RyaW5nLT51dGY4KCkuZGF0YSgp
LCBsZW5ndGggLSAxKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgYnVmZmVyW2xl
bmd0aCAtIDFdID0gJ1wwJzsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1RleHROb2RlVHJhdmVyc2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0Tm9kZVRy
YXZlcnNhbC5jcHAKaW5kZXggYjc4Y2E3OS4uNmQ0MThkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1RleHROb2RlVHJhdmVyc2FsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VGV4dE5vZGVUcmF2ZXJzYWwuY3BwCkBAIC00Miw3ICs0Miw5IEBAIFN0cmluZyBjb250ZW50c0Fz
U3RyaW5nKGNvbnN0IENvbnRhaW5lck5vZGUmIHJvb3QpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBy
ZXN1bHQ7CiAgICAgYXBwZW5kQ29udGVudHMocm9vdCwgcmVzdWx0KTsKLSAgICByZXR1cm4gcmVz
dWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBjb250
ZW50c0FzU3RyaW5nKGNvbnN0IE5vZGUmIHJvb3QpCkBAIC01OSw3ICs2MSw5IEBAIFN0cmluZyBj
aGlsZFRleHRDb250ZW50KGNvbnN0IENvbnRhaW5lck5vZGUmIHJvb3QpCiAgICAgU3RyaW5nQnVp
bGRlciByZXN1bHQ7CiAgICAgZm9yIChUZXh0KiB0ZXh0ID0gVGV4dE5vZGVUcmF2ZXJzYWw6OmZp
cnN0Q2hpbGQocm9vdCk7IHRleHQ7IHRleHQgPSBUZXh0Tm9kZVRyYXZlcnNhbDo6bmV4dFNpYmxp
bmcoKnRleHQpKQogICAgICAgICByZXN1bHQuYXBwZW5kKHRleHQtPmRhdGEoKSk7Ci0gICAgcmV0
dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCmluZGV4IDY5ZDhh
ZjIuLmFlMTZmMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHls
ZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1h
bmQuY3BwCkBAIC0xMzgyLDcgKzEzODIsMTAgQEAgdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6YWRk
QmxvY2tTdHlsZShjb25zdCBTdHlsZUNoYW5nZSYgc3R5bGVDaGFuZ2UsIEhUTUxFbGVtZW4KICAg
ICAgICAgICAgIGNzc1RleHQuYXBwZW5kKCcgJyk7CiAgICAgICAgIGNzc1RleHQuYXBwZW5kKGRl
Y2wtPmFzVGV4dCgpKTsKICAgICB9Ci0gICAgc2V0Tm9kZUF0dHJpYnV0ZShibG9jaywgc3R5bGVB
dHRyLCBjc3NUZXh0LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGNzc1RleHQu
dG9TdHJpbmcoKSkKKyAgICAgICAgc2V0Tm9kZUF0dHJpYnV0ZShibG9jaywgc3R5bGVBdHRyLCAq
c3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgQXBwbHlTdHls
ZUNvbW1hbmQ6OmFkZElubGluZVN0eWxlSWZOZWVkZWQoRWRpdGluZ1N0eWxlKiBzdHlsZSwgTm9k
ZSYgc3RhcnQsIE5vZGUmIGVuZCwgRUFkZFN0eWxlZEVsZW1lbnQgYWRkU3R5bGVkRWxlbWVudCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcuY3BwCmluZGV4IGU3OWI2NDYuLjMwYzE2ODAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0aW5nLmNwcApAQCAtNDI5LDcgKzQyOSw5IEBAIFN0cmluZyBzdHJp
bmdXaXRoUmViYWxhbmNlZFdoaXRlc3BhY2UoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGJvb2wgc3Rh
cnRJc1N0YXJ0T2ZQCiAKICAgICByZWJhbGFuY2VkU3RyaW5nLnJlc2VydmVDYXBhY2l0eShsZW5n
dGgpOwogICAgIHJlYmFsYW5jZWRTdHJpbmcuYXBwZW5kKHN0cmluZywgcmViYWxhbmNlZFN0cmlu
Zy5sZW5ndGgoKSwgbGVuZ3RoIC0gcmViYWxhbmNlZFN0cmluZy5sZW5ndGgoKSk7Ci0gICAgcmV0
dXJuIHJlYmFsYW5jZWRTdHJpbmcudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBy
ZWJhbGFuY2VkU3RyaW5nLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIGJvb2wgaXNUYWJsZVN0cnVjdHVyZU5vZGUoY29uc3QgTm9kZSogbm9k
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSFRNTEludGVyY2hhbmdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSFRNTEludGVyY2hhbmdlLmNwcAppbmRleCBiMjIz
NDNiLi5jZjg1MjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0hUTUxJbnRl
cmNoYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9IVE1MSW50ZXJjaGFuZ2Uu
Y3BwCkBAIC05NSw3ICs5NSw5IEBAIFN0cmluZyBjb252ZXJ0SFRNTFRleHRUb0ludGVyY2hhbmdl
Rm9ybWF0KGNvbnN0IFN0cmluZyYgaW4sIGNvbnN0IFRleHQqIG5vZGUpCiAgICAgICAgIGkgKz0g
Y29uc3VtZWQ7CiAgICAgfQogCi0gICAgcmV0dXJuIHMudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBzLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKaW5kZXggOTA2OTY3Zi4uNjdlNzZjMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKQEAgLTEzMCw3ICsx
MzAsOSBAQCBNYXJrdXBBY2N1bXVsYXRvcjo6fk1hcmt1cEFjY3VtdWxhdG9yKCkgPSBkZWZhdWx0
OwogU3RyaW5nIE1hcmt1cEFjY3VtdWxhdG9yOjpzZXJpYWxpemVOb2RlcyhOb2RlJiB0YXJnZXRO
b2RlLCBFQ2hpbGRyZW5Pbmx5IGNoaWxkcmVuT25seSwgVmVjdG9yPFF1YWxpZmllZE5hbWU+KiB0
YWdOYW1lc1RvU2tpcCkKIHsKICAgICBzZXJpYWxpemVOb2Rlc1dpdGhOYW1lc3BhY2VzKHRhcmdl
dE5vZGUsIGNoaWxkcmVuT25seSwgMCwgdGFnTmFtZXNUb1NraXApOwotICAgIHJldHVybiBtX21h
cmt1cC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1fbWFya3VwLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgTWFy
a3VwQWNjdW11bGF0b3I6OnNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMoTm9kZSYgdGFyZ2V0
Tm9kZSwgRUNoaWxkcmVuT25seSBjaGlsZHJlbk9ubHksIGNvbnN0IE5hbWVzcGFjZXMqIG5hbWVz
cGFjZXMsIFZlY3RvcjxRdWFsaWZpZWROYW1lPiogdGFnTmFtZXNUb1NraXApCkBAIC00ODMsMTEg
KzQ4NSwxNCBAQCB2b2lkIE1hcmt1cEFjY3VtdWxhdG9yOjpnZW5lcmF0ZVVuaXF1ZVByZWZpeChR
dWFsaWZpZWROYW1lJiBwcmVmaXhlZE5hbWUsIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuY2xlYXIo
KTsKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJOUyIpOwogICAgICAgICBidWlsZGVy
LmFwcGVuZE51bWJlcigrK21fcHJlZml4TGV2ZWwpOwotICAgICAgICBjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWUgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7Ci0gICAgICAgIGlmICghbmFtZXNw
YWNlcy5nZXQobmFtZS5pbXBsKCkpKSB7Ci0gICAgICAgICAgICBwcmVmaXhlZE5hbWUuc2V0UHJl
Zml4KG5hbWUpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CisgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKSkgeworICAgICAgICAgICAgY29u
c3QgQXRvbWljU3RyaW5nJiBuYW1lID0gKnN0cmluZzsKKyAgICAgICAgICAgIGlmICghbmFtZXNw
YWNlcy5nZXQobmFtZS5pbXBsKCkpKSB7CisgICAgICAgICAgICAgICAgcHJlZml4ZWROYW1lLnNl
dFByZWZpeChuYW1lKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9IHdoaWxlICh0cnVlKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCmluZGV4IDY1NzRmMWUu
LmY1NDMxZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKQEAgLTI2
NjcsMTIgKzI2NjcsMTUgQEAgU3RyaW5nIHBsYWluVGV4dChjb25zdCBSYW5nZSogciwgVGV4dEl0
ZXJhdG9yQmVoYXZpb3IgZGVmYXVsdEJlaGF2aW9yLCBib29sIGlzRGkKICAgICBpZiAoIWJ1ZmZl
ckxlbmd0aCkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAKLSAgICBTdHJpbmcgcmVz
dWx0ID0gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gKnN0cmluZzsKIAotICAgIGlm
IChpc0Rpc3BsYXlTdHJpbmcpCi0gICAgICAgIHItPm93bmVyRG9jdW1lbnQoKS5kaXNwbGF5U3Ry
aW5nTW9kaWZpZWRCeUVuY29kaW5nKHJlc3VsdCk7CisgICAgICAgIGlmIChpc0Rpc3BsYXlTdHJp
bmcpCisgICAgICAgICAgICByLT5vd25lckRvY3VtZW50KCkuZGlzcGxheVN0cmluZ01vZGlmaWVk
QnlFbmNvZGluZyhyZXN1bHQpOwogCi0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIHBsYWluVGV4dFJlcGxh
Y2luZ05vQnJlYWtTcGFjZShjb25zdCBSYW5nZSogcmFuZ2UsIFRleHRJdGVyYXRvckJlaGF2aW9y
IGRlZmF1bHRCZWhhdmlvciwgYm9vbCBpc0Rpc3BsYXlTdHJpbmcpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UeXBpbmdDb21tYW5kLmNwcAppbmRleCBmZDc5MDY2Li5iZWU2M2RkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKQEAgLTQyNSw3ICs0MjUsOSBAQCBSZWZQ
dHI8RGF0YVRyYW5zZmVyPiBUeXBpbmdDb21tYW5kOjppbnB1dEV2ZW50RGF0YVRyYW5zZmVyKCkg
Y29uc3QKIAogICAgIFN0cmluZ0J1aWxkZXIgaHRtbFRleHQ7CiAgICAgTWFya3VwQWNjdW11bGF0
b3I6OmFwcGVuZENoYXJhY3RlcnNSZXBsYWNpbmdFbnRpdGllcyhodG1sVGV4dCwgbV9jdXJyZW50
VGV4dFRvSW5zZXJ0LCAwLCBtX2N1cnJlbnRUZXh0VG9JbnNlcnQubGVuZ3RoKCksIEVudGl0eU1h
c2tJbkhUTUxQQ0RBVEEpOwotICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvcklucHV0
RXZlbnQobV9jdXJyZW50VGV4dFRvSW5zZXJ0LCBodG1sVGV4dC50b1N0cmluZygpKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBodG1sVGV4dC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gRGF0
YVRyYW5zZmVyOjpjcmVhdGVGb3JJbnB1dEV2ZW50KG1fY3VycmVudFRleHRUb0luc2VydCwgKnN0
cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBUeXBpbmdDb21tYW5kOjpkaWRBcHBseUNv
bW1hbmQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKaW5k
ZXggMTg2NTBhYi4uNzNhY2NjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9W
aXNpYmxlU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVT
ZWxlY3Rpb24uY3BwCkBAIC03MDcsNyArNzA3LDEwIEBAIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6
Zm9ybWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0CiAg
ICAgICAgIHJlc3VsdC5hcHBlbmQocyk7CiAgICAgfQogCi0gICAgc3RybmNweShidWZmZXIsIHJl
c3VsdC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBzdHJuY3B5KGJ1ZmZlciwgc3Ry
aW5nLT51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNI
KCk7CiB9CiAKIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6c2hvd1RyZWVGb3JUaGlzKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5t
bSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQppbmRleCBm
NDQ1NjE2Li5lOTg2NDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29h
L0RhdGFEZXRlY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRh
RGV0ZWN0aW9uLm1tCkBAIC0zMTksNyArMzE5LDkgQEAgc3RhdGljIFN0cmluZyBkYXRhRGV0ZWN0
b3JTdHJpbmdGb3JQYXRoKE5TSW5kZXhQYXRoICpwYXRoKQogICAgICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZE51bWJlcigodW5zaWduZWQgbG9uZylbcGF0aCBpbmRleEF0UG9zaXRpb246MF0pOwog
ICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnLycpOwogICAgICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZE51bWJlcigodW5zaWduZWQgbG9uZylbcGF0aCBpbmRleEF0UG9zaXRpb246MV0pOwot
ICAgICAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0
byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgZGVmYXVsdDogewogICAgICAg
ICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7CkBAIC0zMjksNyArMzMxLDkgQEAgc3RhdGlj
IFN0cmluZyBkYXRhRGV0ZWN0b3JTdHJpbmdGb3JQYXRoKE5TSW5kZXhQYXRoICpwYXRoKQogICAg
ICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIoKHVuc2lnbmVkIGxvbmcpW3BhdGgg
aW5kZXhBdFBvc2l0aW9uOmldKTsKICAgICAgICAgfQogCi0gICAgICAgIHJldHVybiBzdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFT
SCgpOwogICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L2NvY29hL0hUTUxDb252ZXJ0ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hU
TUxDb252ZXJ0ZXIubW0KaW5kZXggNmIxMzk3ZS4uNWQzMjkzOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbQpAQCAtMjI1NCw3ICsyMjU0LDEwIEBA
IHZvaWQgSFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NUZXh0KENoYXJhY3RlckRhdGEmIGNoYXJhY3Rl
ckRhdGEpCiAgICAgICAgIH0KICAgICAgICAgaWYgKHdhc1NwYWNlKQogICAgICAgICAgICAgYnVp
bGRlci5hcHBlbmQoJyAnKTsKLSAgICAgICAgb3V0cHV0U3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgICAgICBvdXRwdXRTdHJpbmcgPSAqc3RyaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBDUkFTSCgpOwogICAgIH0KIAogICAgIGlmIChvdXRwdXRTdHJpbmcubGVuZ3RoKCkpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbQppbmRleCA1NjIxMzU1Li4yZmU1NDYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tCkBAIC0yODQsNyArMjg0
LDEwIEBAIHZvaWQgRWRpdG9yOjpzZXREaWN0YXRpb25QaHJhc2VzQXNDaGlsZE9mRWxlbWVudChj
b25zdCBWZWN0b3I8VmVjdG9yPFN0cmluZz4+JiBkCiAgICAgZm9yIChhdXRvJiBpbnRlcnByZXRh
dGlvbnMgOiBkaWN0YXRpb25QaHJhc2VzKQogICAgICAgICBkaWN0YXRpb25QaHJhc2VzQnVpbGRl
ci5hcHBlbmQoaW50ZXJwcmV0YXRpb25zWzBdKTsKIAotICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQo
Y3JlYXRlRnJhZ21lbnRGcm9tVGV4dCgqY29udGV4dCwgZGljdGF0aW9uUGhyYXNlc0J1aWxkZXIu
dG9TdHJpbmcoKSkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGRpY3RhdGlvblBocmFzZXNCdWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRnJhZ21l
bnRGcm9tVGV4dCgqY29udGV4dCwgKnN0cmluZykpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0go
KTsKIAogICAgIC8vIFdlIG5lZWQgYSBsYXlvdXQgaW4gb3JkZXIgdG8gYWRkIG1hcmtlcnMgYmVs
b3cuCiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3Vw
LmNwcAppbmRleCA1NTUxZWVjLi5kNTY4ODEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL21hcmt1cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3Bw
CkBAIC0yOTAsNyArMjkwLDEwIEBAIHZvaWQgU3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OndyYXBX
aXRoTm9kZShOb2RlJiBub2RlLCBib29sIGNvbnZlcnRCbG9ja3NUb0lubGluCiAgICAgICAgIGFw
cGVuZEVsZW1lbnQobWFya3VwLCBkb3duY2FzdDxFbGVtZW50Pihub2RlKSwgY29udmVydEJsb2Nr
c1RvSW5saW5lcyAmJiBpc0Jsb2NrKCZub2RlKSwgcmFuZ2VGdWxseVNlbGVjdHNOb2RlKTsKICAg
ICBlbHNlCiAgICAgICAgIGFwcGVuZFN0YXJ0TWFya3VwKG1hcmt1cCwgbm9kZSwgbnVsbHB0cik7
Ci0gICAgbV9yZXZlcnNlZFByZWNlZGluZ01hcmt1cC5hcHBlbmQobWFya3VwLnRvU3RyaW5nKCkp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IG1hcmt1cC50b1N0cmluZygpKQorICAgICAgICBtX3Jl
dmVyc2VkUHJlY2VkaW5nTWFya3VwLmFwcGVuZCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAg
IENSQVNIKCk7CiAgICAgYXBwZW5kRW5kVGFnKG5vZGUpOwogICAgIGlmIChtX25vZGVzKQogICAg
ICAgICBtX25vZGVzLT5hcHBlbmQoJm5vZGUpOwpAQCAtMzAwLDcgKzMwMywxMCBAQCB2b2lkIFN0
eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjp3cmFwV2l0aFN0eWxlTm9kZShTdHlsZVByb3BlcnRpZXMq
IHN0eWxlLCBEb2N1bWVudAogewogICAgIFN0cmluZ0J1aWxkZXIgb3BlblRhZzsKICAgICBhcHBl
bmRTdHlsZU5vZGVPcGVuVGFnKG9wZW5UYWcsIHN0eWxlLCBkb2N1bWVudCwgaXNCbG9jayk7Ci0g
ICAgbV9yZXZlcnNlZFByZWNlZGluZ01hcmt1cC5hcHBlbmQob3BlblRhZy50b1N0cmluZygpKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBvcGVuVGFnLnRvU3RyaW5nKCkpCisgICAgICAgIG1fcmV2
ZXJzZWRQcmVjZWRpbmdNYXJrdXAuYXBwZW5kKCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAg
Q1JBU0goKTsKICAgICBhcHBlbmRTdHJpbmcoc3R5bGVOb2RlQ2xvc2VUYWcoaXNCbG9jaykpOwog
fQogCkBAIC0zMzQsNyArMzQwLDkgQEAgU3RyaW5nIFN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjp0
YWtlUmVzdWx0cygpCiAgICAgY29uY2F0ZW5hdGVNYXJrdXAocmVzdWx0KTsKIAogICAgIC8vIFdl
IHJlbW92ZSAnXDAnIGNoYXJhY3RlcnMgYmVjYXVzZSB0aGV5IGFyZSBub3QgdmlzaWJseSByZW5k
ZXJlZCB0byB0aGUgdXNlci4KLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCkucmVwbGFjZVdp
dGhMaXRlcmFsKCdcMCcsICIiKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuIHN0cmluZy0+cmVwbGFjZVdpdGhMaXRlcmFsKCdcMCcsICIi
KTsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIFN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjphcHBl
bmRUZXh0KFN0cmluZ0J1aWxkZXImIG91dCwgY29uc3QgVGV4dCYgdGV4dCkKQEAgLTM1OSw3ICsz
NjcsMTAgQEAgdm9pZCBTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kVGV4dChTdHJpbmdC
dWlsZGVyJiBvdXQsIGNvbnN0IFRleHQmIHRleHQpCiAgICAgICAgIFN0cmluZyBjb250ZW50ID0g
dXNlUmVuZGVyZWRUZXh0ID8gcmVuZGVyZWRUZXh0KHRleHQsIG1fcmFuZ2UpIDogc3RyaW5nVmFs
dWVGb3JSYW5nZSh0ZXh0LCBtX3JhbmdlKTsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWZmZXI7
CiAgICAgICAgIGFwcGVuZENoYXJhY3RlcnNSZXBsYWNpbmdFbnRpdGllcyhidWZmZXIsIGNvbnRl
bnQsIDAsIGNvbnRlbnQubGVuZ3RoKCksIEVudGl0eU1hc2tJblBDREFUQSk7Ci0gICAgICAgIG91
dC5hcHBlbmQoY29udmVydEhUTUxUZXh0VG9JbnRlcmNoYW5nZUZvcm1hdChidWZmZXIudG9TdHJp
bmcoKSwgJnRleHQpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVmZmVyLnRvU3RyaW5n
KCkpCisgICAgICAgICAgICBvdXQuYXBwZW5kKGNvbnZlcnRIVE1MVGV4dFRvSW50ZXJjaGFuZ2VG
b3JtYXQoKnN0cmluZywgJnRleHQpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0go
KTsKICAgICB9CiAKICAgICBpZiAod3JhcHBpbmdTcGFuKQpAQCAtODczLDcgKzg4NCw5IEBAIFN0
cmluZyBzYW5pdGl6ZWRNYXJrdXBGb3JGcmFnbWVudEluRG9jdW1lbnQoUmVmPERvY3VtZW50RnJh
Z21lbnQ+JiYgZnJhZ21lbnQsIERvCiAgICAgICAgICAgICAieG1sbnM9XCJodHRwOi8vd3d3Lncz
Lm9yZy9UUi9SRUMtaHRtbDQwXCI+Iik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHJlc3VsdCk7
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPC9odG1sPiIpOwotICAgICAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0go
KTsKICAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMTA5Miw3ICsxMTA1LDkgQEAgU3Ry
aW5nIHVybFRvTWFya3VwKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKQogICAg
IG1hcmt1cC5hcHBlbmRMaXRlcmFsKCJcIj4iKTsKICAgICBNYXJrdXBBY2N1bXVsYXRvcjo6YXBw
ZW5kQ2hhcmFjdGVyc1JlcGxhY2luZ0VudGl0aWVzKG1hcmt1cCwgdGl0bGUsIDAsIHRpdGxlLmxl
bmd0aCgpLCBFbnRpdHlNYXNrSW5QQ0RBVEEpOwogICAgIG1hcmt1cC5hcHBlbmRMaXRlcmFsKCI8
L2E+Iik7Ci0gICAgcmV0dXJuIG1hcmt1cC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IG1hcmt1cC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBFeGNlcHRpb25PcjxSZWY8RG9jdW1lbnRGcmFnbWVudD4+IGNyZWF0ZUZyYWdt
ZW50Rm9ySW5uZXJPdXRlckhUTUwoRWxlbWVudCYgY29udGV4dEVsZW1lbnQsIGNvbnN0IFN0cmlu
ZyYgbWFya3VwLCBQYXJzZXJDb250ZW50UG9saWN5IHBhcnNlckNvbnRlbnRQb2xpY3kpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcAppbmRleCA5YTIyMzRmLi4y
ODM0NWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAK
QEAgLTMzNywyMCArMzM3LDIwIEBAIHZvaWQgRmlsZVJlYWRlckxvYWRlcjo6Y29udmVydFRvRGF0
YVVSTCgpCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiZGF0YToiKTsKIAotICAgIGlmICghbV9ieXRlc0xvYWRlZCkgewotICAgICAgICBtX3N0
cmluZ1Jlc3VsdCA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICAgICAgcmV0dXJuOworICAgIGlm
IChtX2J5dGVzTG9hZGVkKSB7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG1fZGF0YVR5cGUpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjtiYXNlNjQsIik7CisKKyAgICAgICAgVmVj
dG9yPGNoYXI+IG91dDsKKyAgICAgICAgYmFzZTY0RW5jb2RlKG1fcmF3RGF0YS0+ZGF0YSgpLCBt
X2J5dGVzTG9hZGVkLCBvdXQpOworICAgICAgICBvdXQuYXBwZW5kKCdcMCcpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZChvdXQuZGF0YSgpKTsKICAgICB9CiAKLSAgICBidWlsZGVyLmFwcGVuZCht
X2RhdGFUeXBlKTsKLSAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjtiYXNlNjQsIik7Ci0KLSAg
ICBWZWN0b3I8Y2hhcj4gb3V0OwotICAgIGJhc2U2NEVuY29kZShtX3Jhd0RhdGEtPmRhdGEoKSwg
bV9ieXRlc0xvYWRlZCwgb3V0KTsKLSAgICBvdXQuYXBwZW5kKCdcMCcpOwotICAgIGJ1aWxkZXIu
YXBwZW5kKG91dC5kYXRhKCkpOwotCi0gICAgbV9zdHJpbmdSZXN1bHQgPSBidWlsZGVyLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICBtX3N0cmluZ1Jlc3VsdCA9ICpzdHJpbmc7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwog
fQogCiBib29sIEZpbGVSZWFkZXJMb2FkZXI6OmlzQ29tcGxldGVkKCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRE9NVG9rZW5MaXN0LmNwcAppbmRleCBjOTVmOTY5Li5kYjQyOTY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCkBAIC0yNzMsMTAgKzI3MywxMyBAQCB2b2lkIERPTVRv
a2VuTGlzdDo6dXBkYXRlQXNzb2NpYXRlZEF0dHJpYnV0ZUZyb21Ub2tlbnMoKQogICAgICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQodG9rZW4pOwog
ICAgIH0KLSAgICBBdG9taWNTdHJpbmcgc2VyaWFsaXplZFZhbHVlID0gYnVpbGRlci50b0F0b21p
Y1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmco
KSkgeworICAgICAgICBBdG9taWNTdHJpbmcgc2VyaWFsaXplZFZhbHVlID0gKnN0cmluZzsKIAot
ICAgIFNldEZvclNjb3BlPGJvb2w+IGluQXR0cmlidXRlVXBkYXRlKG1faW5VcGRhdGVBc3NvY2lh
dGVkQXR0cmlidXRlRnJvbVRva2VucywgdHJ1ZSk7Ci0gICAgbV9lbGVtZW50LnNldEF0dHJpYnV0
ZShtX2F0dHJpYnV0ZU5hbWUsIHNlcmlhbGl6ZWRWYWx1ZSk7CisgICAgICAgIFNldEZvclNjb3Bl
PGJvb2w+IGluQXR0cmlidXRlVXBkYXRlKG1faW5VcGRhdGVBc3NvY2lhdGVkQXR0cmlidXRlRnJv
bVRva2VucywgdHJ1ZSk7CisgICAgICAgIG1fZWxlbWVudC5zZXRBdHRyaWJ1dGUobV9hdHRyaWJ1
dGVOYW1lLCBzZXJpYWxpemVkVmFsdWUpOworICAgIH0gZWxzZQorICAgICAgICBDUkFTSCgpOwog
fQogCiBWZWN0b3I8QXRvbWljU3RyaW5nPiYgRE9NVG9rZW5MaXN0Ojp0b2tlbnMoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcAppbmRleCBiOTNlMTJiLi41ODM2YzdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcApAQCAtMTA0LDcgKzEwNCw5IEBAIFN0
cmluZyBFbWFpbElucHV0VHlwZTo6c2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmIHByb3Bvc2Vk
VmFsdWUpIGNvbnN0CiAgICAgICAgICAgICBzdHJpcHBlZFZhbHVlLmFwcGVuZCgnLCcpOwogICAg
ICAgICBzdHJpcHBlZFZhbHVlLmFwcGVuZChzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFj
ZXMoYWRkcmVzc2VzW2ldKSk7CiAgICAgfQotICAgIHJldHVybiBzdHJpcHBlZFZhbHVlLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaXBwZWRWYWx1ZS50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAppbmRleCAzZTU1YTA1
Li5mZGM0OWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTQ2Nyw3
ICs0NjcsOSBAQCBTdHJpbmcgRmlsZUlucHV0VHlwZTo6ZGVmYXVsdFRvb2xUaXAoKSBjb25zdAog
ICAgICAgICBpZiAoaSAhPSBsaXN0U2l6ZSAtIDEpCiAgICAgICAgICAgICBuYW1lcy5hcHBlbmQo
J1xuJyk7CiAgICAgfQotICAgIHJldHVybiBuYW1lcy50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IG5hbWVzLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmNwcAppbmRl
eCAwZjViNzc1Li4xYTI5YTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1D
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmNw
cApAQCAtMzEyLDcgKzMxMiw5IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIGZvcm1TaWduYXR1cmUo
Y29uc3QgSFRNTEZvcm1FbGVtZW50JiBmb3JtKQogICAgICAgICBidWlsZGVyLmFwcGVuZChhY3Rp
b25VUkwuc3RyaW5nKCkpOwogCiAgICAgcmVjb3JkRm9ybVN0cnVjdHVyZShmb3JtLCBidWlsZGVy
KTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogQXRvbWljU3RyaW5nIEZvcm1LZXlHZW5lcmF0b3I6OmZvcm1LZXkoY29uc3QgSFRN
TEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSYgY29udHJvbCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKaW5kZXggNzE1MjMxNy4uYTcwMjZmMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTQwMCwxMCArNDAwLDE0IEBA
IHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OmhhbmRsZUNsaWNrKEV2ZW50JiBldmVudCkKICAgICBp
ZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47CiAKLSAgICBTdHJpbmdCdWlsZGVyIHVybDsKLSAg
ICB1cmwuYXBwZW5kKHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhhdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKGhyZWZBdHRyKSkpOwotICAgIGFwcGVuZFNlcnZlck1hcE1v
dXNlUG9zaXRpb24odXJsLCBldmVudCk7Ci0gICAgVVJMIGNvbXBsZXRlZFVSTCA9IGRvY3VtZW50
KCkuY29tcGxldGVVUkwodXJsLnRvU3RyaW5nKCkpOworICAgIFVSTCBjb21wbGV0ZWRVUkwgPSBk
b2N1bWVudCgpLmNvbXBsZXRlVVJMKFsmXSAoKSB7CisgICAgICAgIFN0cmluZ0J1aWxkZXIgdXJs
OworICAgICAgICB1cmwuYXBwZW5kKHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhh
dHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGhyZWZBdHRyKSkpOworICAgICAgICBhcHBl
bmRTZXJ2ZXJNYXBNb3VzZVBvc2l0aW9uKHVybCwgZXZlbnQpOworICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSB1cmwudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
ICAgICBDUkFTSCgpOworICAgIH0oKSk7CiAKICAgICBTdHJpbmcgZG93bmxvYWRBdHRyaWJ1dGU7
CiAjaWYgRU5BQkxFKERPV05MT0FEX0FUVFJJQlVURSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5jcHAKaW5kZXggNjY0ZWRmMC4uYjY3YjRjMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTMzNiw4ICszMzYsMTEgQEAgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEKiBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dDJkKGNv
bnN0IFN0cmluZyYgdHlwZSkKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJU
b3RhbCBjYW52YXMgbWVtb3J5IHVzZSBleGNlZWRzIHRoZSBtYXhpbXVtIGxpbWl0ICgiKTsKICAg
ICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIobWF4QWN0aXZlUGl4ZWxNZW1vcnkoKSAv
IDEwMjQgLyAxMDI0KTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgTUIp
LiIpOwotICAgICAgICBkb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6
OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7Ci0g
ICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29sZU1l
c3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgKnN0cmluZyk7
CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorICAgICAgICBDUkFTSCgp
OwogICAgIH0KIAogICAgIG1fY29udGV4dCA9IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y3Jl
YXRlKCp0aGlzLCBkb2N1bWVudCgpLmluUXVpcmtzTW9kZSgpLCB1c2VzRGFzaGJvYXJkQ29tcGF0
aWJpbGl0eU1vZGUpOwpAQCAtODg5LDggKzg5MiwxMSBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50
OjpjcmVhdGVJbWFnZUJ1ZmZlcigpIGNvbnN0CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiQ2FudmFzIGFyZWEgZXhjZWVkcyB0aGUgbWF4aW11bSBsaW1pdCAod2lkdGggKiBo
ZWlnaHQgPiAiKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIobWF4Q2FudmFz
QXJlYSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKS4iKTsKLSAgICAg
ICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2Fn
ZUxldmVsOjpXYXJuaW5nLCBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOwotICAgICAgICByZXR1
cm47CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkg
eworICAgICAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNl
OjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAqc3RyaW5nKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICAKICAgICAvLyBNYWtl
IHN1cmUgd2UgZG9uJ3QgdXNlIG1vcmUgcGl4ZWwgbWVtb3J5IHRoYW4gdGhlIHN5c3RlbSBjYW4g
c3VwcG9ydC4KQEAgLTkwMCw4ICs5MDYsMTEgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3Jl
YXRlSW1hZ2VCdWZmZXIoKSBjb25zdAogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVy
YWwoIlRvdGFsIGNhbnZhcyBtZW1vcnkgdXNlIGV4Y2VlZHMgdGhlIG1heGltdW0gbGltaXQgKCIp
OwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcihtYXhBY3RpdmVQaXhlbE1lbW9y
eSgpIC8gMTAyNCAvIDEwMjQpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwo
IiBNQikuIik7Ci0gICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgc3RyaW5nQnVpbGRlci50b1N0cmluZygp
KTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWls
ZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgKnN0cmluZyk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAK
ICAgICBpZiAoIXdpZHRoKCkgfHwgIWhlaWdodCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9u
dEVsZW1lbnQuY3BwCmluZGV4IDhkNmMzNDcuLmMzNWE2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGb250RWxlbWVudC5jcHAKQEAgLTExMSwxMCArMTExLDEzIEBAIHN0YXRpYyBib29sIHBh
cnNlRm9udFNpemUoY29uc3QgQ2hhcmFjdGVyVHlwZSogY2hhcmFjdGVycywgdW5zaWduZWQgbGVu
Z3RoLCBpbnQmCiAgICAgLy8gU3RlcCA4CiAgICAgaW50IHZhbHVlOwogCisgICAgaWYgKGRpZ2l0
cy5mYWlsZWQoKSkKKyAgICAgICAgQ1JBU0goKTsKKwogICAgIGlmIChkaWdpdHMuaXM4Qml0KCkp
Ci0gICAgICAgIHZhbHVlID0gY2hhcmFjdGVyc1RvSW50U3RyaWN0KGRpZ2l0cy5jaGFyYWN0ZXJz
OCgpLCBkaWdpdHMubGVuZ3RoKCkpOworICAgICAgICB2YWx1ZSA9IGNoYXJhY3RlcnNUb0ludFN0
cmljdCgqZGlnaXRzLmNoYXJhY3RlcnM4KCksIGRpZ2l0cy5sZW5ndGgoKSk7CiAgICAgZWxzZQot
ICAgICAgICB2YWx1ZSA9IGNoYXJhY3RlcnNUb0ludFN0cmljdChkaWdpdHMuY2hhcmFjdGVyczE2
KCksIGRpZ2l0cy5sZW5ndGgoKSk7CisgICAgICAgIHZhbHVlID0gY2hhcmFjdGVyc1RvSW50U3Ry
aWN0KCpkaWdpdHMuY2hhcmFjdGVyczE2KCksIGRpZ2l0cy5sZW5ndGgoKSk7CiAKICAgICAvLyBT
dGVwIDkKICAgICBpZiAobW9kZSA9PSBSZWxhdGl2ZVBsdXMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW1hZ2VFbGVtZW50LmNwcAppbmRleCA0ZjY1OTdjLi5hMmUxYzE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKQEAgLTQ3NCw3ICs0NzQsOSBAQCBTdHJpbmcg
SFRNTEltYWdlRWxlbWVudDo6Y29tcGxldGVVUkxzSW5BdHRyaWJ1dGVWYWx1ZShjb25zdCBVUkwm
IGJhc2UsIGNvbnN0IEF0dAogICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3cnKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7
CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIHJldHVybiBI
VE1MRWxlbWVudDo6Y29tcGxldGVVUkxzSW5BdHRyaWJ1dGVWYWx1ZShiYXNlLCBhdHRyaWJ1dGUp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggZGUxYzJl
OC4uMzZmYmNhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBA
IC0yMzIsOSArMjMyLDEyIEBAIHN0YXRpYyBTdHJpbmcgYWN0aW9uTmFtZShIVE1MTWVkaWFFbGVt
ZW50RW51bXM6OkRlbGF5ZWRBY3Rpb25UeXBlIGFjdGlvbikKIAogI3VuZGVmIEFDVElPTgogCi0g
ICAgU3RyaW5nIG5hbWUgPSBhY3Rpb25CdWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgQVNTRVJUKCFu
YW1lLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIG5hbWU7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
YWN0aW9uQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIFN0cmluZyBuYW1lID0gKnN0cmlu
ZzsKKyAgICAgICAgQVNTRVJUKCFuYW1lLmlzRW1wdHkoKSk7CisgICAgICAgIHJldHVybiBuYW1l
OworICAgIH0KKyAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT3B0aW9uRWxlbWVudC5jcHAKaW5kZXggOWY2ZGFkMi4uZmE5OGFhOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKQEAgLTM0OSw3ICszNDksOSBAQCBTdHJp
bmcgSFRNTE9wdGlvbkVsZW1lbnQ6OmNvbGxlY3RPcHRpb25Jbm5lclRleHQoKSBjb25zdAogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICBub2RlID0gTm9kZVRyYXZlcnNhbDo6bmV4dCgqbm9kZSwg
dGhpcyk7CiAgICAgfQotICAgIHJldHVybiB0ZXh0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gdGV4dC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBD
UkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCBlZDE0ODU3Li5kMGZiNGI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmNwcApAQCAtMTQzLDcgKzE0Myw5IEBAIFN0cmluZyBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dDo6c3RyaXBwZWRQbGFjZWhvbGRlcigpIGNvbnN0CiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgc3RyaXBwZWQuYXBwZW5kKGNoYXJhY3Rlcik7CiAgICAgfQotICAgIHJldHVybiBzdHJp
cHBlZC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmlwcGVkLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBi
b29sIGlzTm90TGluZUJyZWFrKFVDaGFyIGNoKSB7IHJldHVybiBjaCAhPSBuZXdsaW5lQ2hhcmFj
dGVyICYmIGNoICE9IGNhcnJpYWdlUmV0dXJuOyB9CkBAIC01NTIsNyArNTU0LDkgQEAgc3RhdGlj
IFN0cmluZyBpbm5lclRleHRWYWx1ZUZyb20oVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50JiBp
bm5lclRleHQpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGRvd25jYXN0PFRleHQ+KCpub2Rl
KS5kYXRhKCkpOwogICAgIH0KICAgICBzdHJpcFRyYWlsaW5nTmV3bGluZShyZXN1bHQpOwotICAg
IHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAog
dm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0VmFsdWUoY29uc3Qg
U3RyaW5nJiB2YWx1ZSkKQEAgLTczNiw3ICs3NDAsOSBAQCBTdHJpbmcgSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQ6OnZhbHVlV2l0aEhhcmRMaW5lQnJlYWtzKCkgY29uc3QKICAgICAgICAgICAg
IGdldE5leHRTb2Z0QnJlYWsobGluZSwgYnJlYWtOb2RlLCBicmVha09mZnNldCk7CiAgICAgfQog
ICAgIHN0cmlwVHJhaWxpbmdOZXdsaW5lKHJlc3VsdCk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBIVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudCogZW5jbG9zaW5nVGV4dEZvcm1Db250cm9sKGNvbnN0IFBvc2l0aW9uJiBwb3NpdGlv
bikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCmluZGV4IDExOTM0MGYuLjY5Nzcx
MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcApAQCAtMTIxLDcgKzEyMSwx
MCBAQCB2b2lkIE1lZGlhRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkK
ICNpZiBQTEFURk9STShJT1MpCiAgICAgICAgIGVsZW1lbnRTdHlsZS5hcHBlbmRMaXRlcmFsKCJ3
aWR0aDogMTAwJTsgaGVpZ2h0OiBhdXRvOyIpOwogI2VuZGlmCi0gICAgICAgIHZpZGVvRWxlbWVu
dC0+c2V0QXR0cmlidXRlKHN0eWxlQXR0ciwgZWxlbWVudFN0eWxlLnRvU3RyaW5nKCkpOworICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSBlbGVtZW50U3R5bGUudG9TdHJpbmcoKSkKKyAgICAgICAg
ICAgIHZpZGVvRWxlbWVudC0+c2V0QXR0cmlidXRlKHN0eWxlQXR0ciwgKnN0cmluZyk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgYm9keS0+YXBwZW5k
Q2hpbGQodmlkZW9FbGVtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVk
aWFFbGVtZW50U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNl
c3Npb24uY3BwCmluZGV4IDVjZDc5MDUuLjZmNGUwZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcApAQCAtODYsNyArODYsOSBAQCBzdGF0aWMgU3RyaW5n
IHJlc3RyaWN0aW9uTmFtZShNZWRpYUVsZW1lbnRTZXNzaW9uOjpCZWhhdmlvclJlc3RyaWN0aW9u
cyByZXN0cmljdAogICAgIENBU0UoSW52aXNpYmxlQXV0b3BsYXlOb3RQZXJtaXR0ZWQpOwogICAg
IENBU0UoT3ZlcnJpZGVVc2VyR2VzdHVyZVJlcXVpcmVtZW50Rm9yTWFpbkNvbnRlbnQpOwogCi0g
ICAgcmV0dXJuIHJlc3RyaWN0aW9uQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IHJlc3RyaWN0aW9uQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTWVkaWFGcmFnbWVudFVSSVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L01lZGlhRnJhZ21lbnRVUklQYXJzZXIuY3BwCmluZGV4IGU3YTUxNmUuLjMwNWI2NjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFGcmFnbWVudFVSSVBhcnNlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUZyYWdtZW50VVJJUGFyc2VyLmNwcApAQCAtNTIs
NyArNTIsOSBAQCBzdGF0aWMgU3RyaW5nIGNvbGxlY3REaWdpdHMoY29uc3QgTENoYXIqIGlucHV0
LCB1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbmVkJiBwb3NpdAogICAgIC8vIERJR0lUIDsgYW55IHBv
c2l0aXZlIG51bWJlcgogICAgIHdoaWxlIChwb3NpdGlvbiA8IGxlbmd0aCAmJiBpc0FTQ0lJRGln
aXQoaW5wdXRbcG9zaXRpb25dKSkKICAgICAgICAgZGlnaXRzLmFwcGVuZChpbnB1dFtwb3NpdGlv
bisrXSk7Ci0gICAgcmV0dXJuIGRpZ2l0cy50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGRpZ2l0cy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIGNvbGxlY3RGcmFjdGlvbihjb25zdCBMQ2hhciogaW5w
dXQsIHVuc2lnbmVkIGxlbmd0aCwgdW5zaWduZWQmIHBvc2l0aW9uKQpAQCAtNjcsNyArNjksOSBA
QCBzdGF0aWMgU3RyaW5nIGNvbGxlY3RGcmFjdGlvbihjb25zdCBMQ2hhciogaW5wdXQsIHVuc2ln
bmVkIGxlbmd0aCwgdW5zaWduZWQmIHBvcwogICAgIGRpZ2l0cy5hcHBlbmQoaW5wdXRbcG9zaXRp
b24rK10pOwogICAgIHdoaWxlIChwb3NpdGlvbiA8IGxlbmd0aCAmJiBpc0FTQ0lJRGlnaXQoaW5w
dXRbcG9zaXRpb25dKSkKICAgICAgICAgZGlnaXRzLmFwcGVuZChpbnB1dFtwb3NpdGlvbisrXSk7
Ci0gICAgcmV0dXJuIGRpZ2l0cy50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGRp
Z2l0cy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiBNZWRpYUZyYWdtZW50VVJJUGFyc2VyOjpNZWRpYUZyYWdtZW50VVJJUGFyc2VyKGNvbnN0
IFVSTCYgdXJsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3BwCmluZGV4IDc2NGU1MDIuLjNlZWM0
ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAKQEAgLTgwLDcgKzgwLDEwIEBAIGludCBU
eXBlQWhlYWQ6OmhhbmRsZUV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50LCBNYXRjaE1vZGVGbGFn
cyBtYXRjaE1vZGUpCiAgICAgICAgIHByZWZpeCA9IFN0cmluZygmYywgMSk7CiAgICAgICAgIG1f
cmVwZWF0aW5nQ2hhciA9IGM7CiAgICAgfSBlbHNlIGlmIChtYXRjaE1vZGUgJiBNYXRjaFByZWZp
eCkgewotICAgICAgICBwcmVmaXggPSBtX2J1ZmZlci50b1N0cmluZygpOworICAgICAgICBpZiAo
YXV0byBzdHJpbmcgPSBtX2J1ZmZlci50b1N0cmluZygpKQorICAgICAgICAgICAgcHJlZml4ID0g
KnN0cmluZzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgaWYg
KG1fYnVmZmVyLmxlbmd0aCgpID4gMSkgewogICAgICAgICAgICAgbV9yZXBlYXRpbmdDaGFyID0g
MDsKICAgICAgICAgICAgIHNlYXJjaFN0YXJ0T2Zmc2V0ID0gMDsKQEAgLTEwNCw5ICsxMDcsMTIg
QEAgaW50IFR5cGVBaGVhZDo6aGFuZGxlRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQsIE1hdGNo
TW9kZUZsYWdzIG1hdGNoTW9kZSkKIAogICAgIGlmIChtYXRjaE1vZGUgJiBNYXRjaEluZGV4KSB7
CiAgICAgICAgIGJvb2wgb2sgPSBmYWxzZTsKLSAgICAgICAgaW50IGluZGV4ID0gbV9idWZmZXIu
dG9TdHJpbmcoKS50b0ludCgmb2spOwotICAgICAgICBpZiAoaW5kZXggPiAwICYmIGluZGV4IDw9
IG9wdGlvbkNvdW50KQotICAgICAgICAgICAgcmV0dXJuIGluZGV4IC0gMTsKKyAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gbV9idWZmZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgaW50IGlu
ZGV4ID0gc3RyaW5nLT50b0ludCgmb2spOworICAgICAgICAgICAgaWYgKGluZGV4ID4gMCAmJiBp
bmRleCA8PSBvcHRpb25Db3VudCkKKyAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXggLSAxOwor
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIHJldHVybiAt
MTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuY3BwCmluZGV4IGMyN2FmMjMuLmQ5NGZjZTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNw
cApAQCAtMTE3LDcgKzExNyw5IEBAIFN0cmluZyBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmZv
bnQoKSBjb25zdAogICAgICAgICBzZXJpYWxpemVkRm9udC5hcHBlbmQoZmFtaWx5KTsKICAgICB9
CiAKLSAgICByZXR1cm4gc2VyaWFsaXplZEZvbnQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBzZXJpYWxpemVkRm9udC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0
Rm9udChjb25zdCBTdHJpbmcmIG5ld0ZvbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCmluZGV4IDc2
OGMwZmMuLjdhODhjZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCkBAIC0yMTcyLDggKzIxNzIs
MTEgQEAgRXhjZXB0aW9uT3I8UmVmUHRyPEltYWdlRGF0YT4+IENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyREJhc2U6OmdldEltYWdlRGF0YShJbWFnZUIKICAgICAgICAgY29uc29sZU1lc3NhZ2UuYXBw
ZW5kTGl0ZXJhbCgiIHggIik7CiAgICAgICAgIGNvbnNvbGVNZXNzYWdlLmFwcGVuZE51bWJlcihp
bWFnZURhdGFSZWN0LmhlaWdodCgpKTsKIAotICAgICAgICBjYW52YXNCYXNlKCkuc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpSZW5kZXJp
bmcsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIGNvbnNvbGVNZXNzYWdlLnRvU3RyaW5nKCkpOwotICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKyAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gY29uc29sZU1lc3NhZ2UudG9TdHJpbmcoKSkgeworICAgICAgICAgICAg
Y2FudmFzQmFzZSgpLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+YWRkQ29uc29sZU1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZTo6UmVuZGVyaW5nLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAqc3RyaW5nKTsK
KyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworICAg
ICAgICB9CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIEltYWdlRGF0YTo6
Y3JlYXRlKGltYWdlRGF0YVJlY3Quc2l6ZSgpLCBieXRlQXJyYXkucmVsZWFzZU5vbk51bGwoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UuY3BwCmluZGV4IDc4NzVkYTguLmNkNWVlMWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3Bw
CkBAIC0xNjIsNyArMTYyLDkgQEAgbmFtZXNwYWNlIHsKIAogICAgICAgICBTdHJpbmcgcmVzdWx0
KCkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG1fYnVpbGRlci50b1N0cmluZygpOwor
ICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gbV9idWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAg
ICB9CiAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFNvdXJjZVRyYWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFNvdXJjZVRyYWNrZXIuY3BwCmluZGV4IDIyZGJhOTAuLjgwYjFlNTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTb3VyY2VUcmFja2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU291cmNlVHJhY2tlci5jcHAKQEAgLTgzLDggKzgz
LDExIEBAIFN0cmluZyBIVE1MU291cmNlVHJhY2tlcjo6c291cmNlKGNvbnN0IEhUTUxUb2tlbiYg
dG9rZW4pCiAgICAgICAgIG1fY3VycmVudFNvdXJjZS5hZHZhbmNlKCk7CiAgICAgfQogCi0gICAg
bV9jYWNoZWRTb3VyY2VGb3JUb2tlbiA9IHNvdXJjZS50b1N0cmluZygpOwotICAgIHJldHVybiBt
X2NhY2hlZFNvdXJjZUZvclRva2VuOworICAgIGlmIChhdXRvIHN0cmluZyA9IHNvdXJjZS50b1N0
cmluZygpKSB7CisgICAgICAgIG1fY2FjaGVkU291cmNlRm9yVG9rZW4gPSAqc3RyaW5nOworICAg
ICAgICByZXR1cm4gbV9jYWNoZWRTb3VyY2VGb3JUb2tlbjsKKyAgICB9CisgICAgQ1JBU0goKTsK
IH0KIAogU3RyaW5nIEhUTUxTb3VyY2VUcmFja2VyOjpzb3VyY2UoY29uc3QgSFRNTFRva2VuJiB0
b2tlbiwgdW5zaWduZWQgYXR0cmlidXRlU3RhcnQsIHVuc2lnbmVkIGF0dHJpYnV0ZUVuZCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRva2VuaXplci5jcHAKaW5kZXggOGFjMmY4
NS4uMzY0ZWMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRv
a2VuaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRva2VuaXpl
ci5jcHAKQEAgLTE0MSw4ICsxNDEsMTAgQEAgaW5saW5lIGJvb2wgSFRNTFRva2VuaXplcjo6cHJv
Y2Vzc0VudGl0eShTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKICAgICAgICAgQVNTRVJUKGRlY29k
ZWRFbnRpdHkuaXNFbXB0eSgpKTsKICAgICAgICAgYnVmZmVyQVNDSUlDaGFyYWN0ZXIoJyYnKTsK
ICAgICB9IGVsc2UgeworICAgICAgICBpZiAoZGVjb2RlZEVudGl0eS5mYWlsZWQoKSkKKyAgICAg
ICAgICAgIENSQVNIKCk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkZWNvZGVk
RW50aXR5Lmxlbmd0aCgpOyArK2kpCi0gICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoZGVjb2Rl
ZEVudGl0eVtpXSk7CisgICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoKmRlY29kZWRFbnRpdHlb
aV0pOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTg2Myw4ICs4NjUsMTAgQEAgYm9v
bCBIVE1MVG9rZW5pemVyOjpwcm9jZXNzVG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UpCiAg
ICAgICAgICAgICBBU1NFUlQoZGVjb2RlZEVudGl0eS5pc0VtcHR5KCkpOwogICAgICAgICAgICAg
bV90b2tlbi5hcHBlbmRUb0F0dHJpYnV0ZVZhbHVlKCcmJyk7CiAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICBpZiAoZGVjb2RlZEVudGl0eS5mYWlsZWQoKSkKKyAgICAgICAgICAgICAgICBD
UkFTSCgpOwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlY29kZWRFbnRp
dHkubGVuZ3RoKCk7ICsraSkKLSAgICAgICAgICAgICAgICBtX3Rva2VuLmFwcGVuZFRvQXR0cmli
dXRlVmFsdWUoZGVjb2RlZEVudGl0eVtpXSk7CisgICAgICAgICAgICAgICAgbV90b2tlbi5hcHBl
bmRUb0F0dHJpYnV0ZVZhbHVlKCpkZWNvZGVkRW50aXR5W2ldKTsKICAgICAgICAgfQogICAgICAg
ICAvLyBXZSdyZSBzdXBwb3NlZCB0byBzd2l0Y2ggYmFjayB0byB0aGUgYXR0cmlidXRlIHZhbHVl
IHN0YXRlIHRoYXQKICAgICAgICAgLy8gd2Ugd2VyZSBpbiB3aGVuIHdlIHdlcmUgc3dpdGNoZWQg
aW50byB0aGlzIHN0YXRlLiBSYXRoZXIgdGhhbgpAQCAtMTQwMyw3ICsxNDA3LDkgQEAgU3RyaW5n
IEhUTUxUb2tlbml6ZXI6OmJ1ZmZlcmVkQ2hhcmFjdGVycygpIGNvbnN0CiAgICAgY2hhcmFjdGVy
cy5hcHBlbmQoJzwnKTsKICAgICBjaGFyYWN0ZXJzLmFwcGVuZCgnLycpOwogICAgIGNoYXJhY3Rl
cnMuYXBwZW5kKG1fdGVtcG9yYXJ5QnVmZmVyLmRhdGEoKSwgbV90ZW1wb3JhcnlCdWZmZXIuc2l6
ZSgpKTsKLSAgICByZXR1cm4gY2hhcmFjdGVycy50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGNoYXJhY3RlcnMudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KIAogdm9pZCBIVE1MVG9rZW5pemVyOjp1cGRhdGVTdGF0ZUZvcihjb25z
dCBBdG9taWNTdHJpbmcmIHRhZ05hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFRyZWVCdWlsZGVyLmNwcAppbmRleCBiMTBhNGM0Li44OTlkNGJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKQEAgLTI1NjksMTkgKzI1
NjksMjIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OmRlZmF1bHRGb3JBZnRlckhlYWQoKQogCiB2
b2lkIEhUTUxUcmVlQnVpbGRlcjo6ZGVmYXVsdEZvckluVGFibGVUZXh0KCkKIHsKLSAgICBTdHJp
bmcgY2hhcmFjdGVycyA9IG1fcGVuZGluZ1RhYmxlQ2hhcmFjdGVycy50b1N0cmluZygpOwotICAg
IG1fcGVuZGluZ1RhYmxlQ2hhcmFjdGVycy5jbGVhcigpOwotICAgIGlmICghaXNBbGxXaGl0ZXNw
YWNlKGNoYXJhY3RlcnMpKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBwYXJzZSBlcnJvcgotICAgICAg
ICBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6UmVkaXJlY3RUb0Zvc3RlclBhcmVudEd1YXJkIHJlZGly
ZWN0ZXIobV90cmVlKTsKLSAgICAgICAgbV90cmVlLnJlY29uc3RydWN0VGhlQWN0aXZlRm9ybWF0
dGluZ0VsZW1lbnRzKCk7Ci0gICAgICAgIG1fdHJlZS5pbnNlcnRUZXh0Tm9kZShjaGFyYWN0ZXJz
LCBOb3RBbGxXaGl0ZXNwYWNlKTsKLSAgICAgICAgbV9mcmFtZXNldE9rID0gZmFsc2U7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gbV9wZW5kaW5nVGFibGVDaGFyYWN0ZXJzLnRvU3RyaW5nKCkpIHsK
KyAgICAgICAgU3RyaW5nIGNoYXJhY3RlcnMgPSAqc3RyaW5nOworICAgICAgICBtX3BlbmRpbmdU
YWJsZUNoYXJhY3RlcnMuY2xlYXIoKTsKKyAgICAgICAgaWYgKCFpc0FsbFdoaXRlc3BhY2UoY2hh
cmFjdGVycykpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBwYXJzZSBlcnJvcgorICAgICAgICAg
ICAgSFRNTENvbnN0cnVjdGlvblNpdGU6OlJlZGlyZWN0VG9Gb3N0ZXJQYXJlbnRHdWFyZCByZWRp
cmVjdGVyKG1fdHJlZSk7CisgICAgICAgICAgICBtX3RyZWUucmVjb25zdHJ1Y3RUaGVBY3RpdmVG
b3JtYXR0aW5nRWxlbWVudHMoKTsKKyAgICAgICAgICAgIG1fdHJlZS5pbnNlcnRUZXh0Tm9kZShj
aGFyYWN0ZXJzLCBOb3RBbGxXaGl0ZXNwYWNlKTsKKyAgICAgICAgICAgIG1fZnJhbWVzZXRPayA9
IGZhbHNlOworICAgICAgICAgICAgbV9pbnNlcnRpb25Nb2RlID0gbV9vcmlnaW5hbEluc2VydGlv
bk1vZGU7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV90cmVlLmlu
c2VydFRleHROb2RlKGNoYXJhY3RlcnMpOwogICAgICAgICBtX2luc2VydGlvbk1vZGUgPSBtX29y
aWdpbmFsSW5zZXJ0aW9uTW9kZTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBtX3RyZWUu
aW5zZXJ0VGV4dE5vZGUoY2hhcmFjdGVycyk7Ci0gICAgbV9pbnNlcnRpb25Nb2RlID0gbV9vcmln
aW5hbEluc2VydGlvbk1vZGU7CisgICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIGJv
b2wgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkhlYWQoQXRvbWljSFRNTFRv
a2VuJiYgdG9rZW4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NB
dWRpdG9yRGVsZWdhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRv
ckRlbGVnYXRlLmNwcAppbmRleCA4MGI0MjEzLi43ZDRjODliIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAKQEAgLTY2LDcgKzY2LDkg
QEAgc3RhdGljIGlubGluZSBTdHJpbmcgYnVpbGRDb25zb2xlRXJyb3IoY29uc3QgWFNTSW5mbyYg
eHNzSW5mbykKICAgICBlbHNlCiAgICAgICAgIG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiIFRoZSBh
dWRpdG9yIHdhcyBlbmFibGVkIGJlY2F1c2UgdGhlIHNlcnZlciBkaWQgbm90IHNlbmQgYW4gJ1gt
WFNTLVByb3RlY3Rpb24nIGhlYWRlci4iKTsKIAotICAgIHJldHVybiBtZXNzYWdlLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWVzc2FnZS50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBSZWY8Rm9ybURhdGE+IFhTU0F1ZGl0
b3JEZWxlZ2F0ZTo6Z2VuZXJhdGVWaW9sYXRpb25SZXBvcnQoY29uc3QgWFNTSW5mbyYgeHNzSW5m
bykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQnVmZmVyZWRMaW5lUmVh
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQnVmZmVyZWRMaW5lUmVhZGVyLmNw
cAppbmRleCA4ZjIzNjI1Li5mMjkwOGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0J1ZmZlcmVkTGluZVJlYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9CdWZmZXJlZExpbmVSZWFkZXIuY3BwCkBAIC05Miw5ICs5MiwxMSBAQCBzdGQ6Om9wdGlv
bmFsPFN0cmluZz4gQnVmZmVyZWRMaW5lUmVhZGVyOjpuZXh0TGluZSgpCiAgICAgfQogCiAgICAg
aWYgKHNob3VsZFJldHVybkxpbmUpIHsKLSAgICAgICAgYXV0byBsaW5lID0gbV9saW5lQnVmZmVy
LnRvU3RyaW5nKCk7Ci0gICAgICAgIG1fbGluZUJ1ZmZlci5jbGVhcigpOwotICAgICAgICByZXR1
cm4gV1RGTW92ZShsaW5lKTsKKyAgICAgICAgaWYgKGF1dG8gbGluZSA9IG1fbGluZUJ1ZmZlci50
b1N0cmluZygpKSB7CisgICAgICAgICAgICBtX2xpbmVCdWZmZXIuY2xlYXIoKTsKKyAgICAgICAg
ICAgIHJldHVybiBXVEZNb3ZlKCpsaW5lKTsKKyAgICAgICAgfQorICAgICAgICBDUkFTSCgpOwog
ICAgIH0KIAogICAgIEFTU0VSVChtX2J1ZmZlci5pc0VtcHR5KCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UcmFja0Jhc2UuY3BwCmluZGV4IDMzM2EyZjguLjI5NDE2YTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAKQEAgLTE1Myw3ICsxNTMsMTAgQEAgdm9pZCBU
cmFja0Jhc2U6OnNldExhbmd1YWdlKGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UpCiAgICAg
ICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIlRoZSBsYW5ndWFnZSAnIik7CiAg
ICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChsYW5ndWFnZSk7CiAgICAgICAgICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIicgaXMgbm90IGEgdmFsaWQgQkNQIDQ3IGxhbmd1
YWdlIHRhZy4iKTsKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICpzdHJpbmc7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgICAgICBpZiAoYXV0byBl
bGVtZW50ID0gdGhpcy0+ZWxlbWVudCgpKQogICAgICAgICAgICAgZWxlbWVudC0+ZG9jdW1lbnQo
KS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpSZW5kZXJpbmcsIE1lc3NhZ2VMZXZl
bDo6V2FybmluZywgbWVzc2FnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1ZUVEN1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAKaW5k
ZXggNzhmOGFkZi4uM2JiYzI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9WVFRDdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcApA
QCAtNjI5LDcgKzYyOSwxMSBAQCB2b2lkIFZUVEN1ZTo6ZGV0ZXJtaW5lVGV4dERpcmVjdGlvbigp
CiAgICAgICAgIHBhcmFncmFwaEJ1aWxkZXIuYXBwZW5kKG5vZGUtPm5vZGVWYWx1ZSgpKTsKICAg
ICB9CiAKLSAgICBTdHJpbmcgcGFyYWdyYXBoID0gcGFyYWdyYXBoQnVpbGRlci50b1N0cmluZygp
OworICAgIFN0cmluZyBwYXJhZ3JhcGggPSBbJl0gKCkgeworICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBwYXJhZ3JhcGhCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9KCk7CiAgICAgaWYgKCFwYXJhZ3JhcGgubGVu
Z3RoKCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9XZWJWVFRQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJW
VFRQYXJzZXIuY3BwCmluZGV4IDUxOGVkOGIuLjgwZDAyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAKQEAgLTQwNCw3ICs0MDQsMTAgQEAgdm9pZCBXZWJW
VFRQYXJzZXI6OmNyZWF0ZU5ld0N1ZSgpCiAgICAgUmVmUHRyPFdlYlZUVEN1ZURhdGE+IGN1ZSA9
IFdlYlZUVEN1ZURhdGE6OmNyZWF0ZSgpOwogICAgIGN1ZS0+c2V0U3RhcnRUaW1lKG1fY3VycmVu
dFN0YXJ0VGltZSk7CiAgICAgY3VlLT5zZXRFbmRUaW1lKG1fY3VycmVudEVuZFRpbWUpOwotICAg
IGN1ZS0+c2V0Q29udGVudChtX2N1cnJlbnRDb250ZW50LnRvU3RyaW5nKCkpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IG1fY3VycmVudENvbnRlbnQudG9TdHJpbmcoKSkKKyAgICAgICAgY3VlLT5z
ZXRDb250ZW50KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICBjdWUt
PnNldElkKG1fY3VycmVudElkKTsKICAgICBjdWUtPnNldFNldHRpbmdzKG1fY3VycmVudFNldHRp
bmdzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tl
bml6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3Bw
CmluZGV4IDAyNGMwNGEuLmZlM2RkYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svV2ViVlRUVG9rZW5pemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1dlYlZUVFRva2VuaXplci5jcHAKQEAgLTEwOCwxMSArMTA4LDE1IEBAIERhdGFTdGF0ZToKICAg
ICAgICAgZWxzZSB7CiAgICAgICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRvIGFkdmFuY2UgaW5w
dXQgb3IgcGVyZm9ybSBhIHN0YXRlIHRyYW5zaXRpb24gLSBqdXN0IHJldHVybiBhIChuZXcpIHRv
a2VuLgogICAgICAgICAgICAgLy8gKE9uIHRoZSBuZXh0IGNhbGwgdG8gbmV4dFRva2VuIHdlIHdp
bGwgc2VlICc8JyBhZ2FpbiwgYnV0IHRha2UgdGhlIG90aGVyIGJyYW5jaCBpbiB0aGlzIGlmIGlu
c3RlYWQuKQotICAgICAgICAgICAgcmV0dXJuIGVtaXRUb2tlbih0b2tlbiwgV2ViVlRUVG9rZW46
OlN0cmluZ1Rva2VuKHJlc3VsdC50b1N0cmluZygpKSk7CisgICAgICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZW1pdFRv
a2VuKHRva2VuLCBXZWJWVFRUb2tlbjo6U3RyaW5nVG9rZW4oKnN0cmluZykpOworICAgICAgICAg
ICAgQ1JBU0goKTsKICAgICAgICAgfQotICAgIH0gZWxzZSBpZiAoY2hhcmFjdGVyID09IGtFbmRP
ZkZpbGVNYXJrZXIpCi0gICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQs
IHRva2VuLCBXZWJWVFRUb2tlbjo6U3RyaW5nVG9rZW4ocmVzdWx0LnRvU3RyaW5nKCkpKTsKLSAg
ICBlbHNlIHsKKyAgICB9IGVsc2UgaWYgKGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7
CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAg
ICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2Vu
OjpTdHJpbmdUb2tlbigqc3RyaW5nKSk7CisgICAgICAgIENSQVNIKCk7CisgICAgfSBlbHNlIHsK
ICAgICAgICAgcmVzdWx0LmFwcGVuZChjaGFyYWN0ZXIpOwogICAgICAgICBXRUJWVFRfQURWQU5D
RV9UTyhEYXRhU3RhdGUpOwogICAgIH0KQEAgLTE0MiwxMCArMTQ2LDE0IEBAIEVzY2FwZVN0YXRl
OgogICAgICAgICBXRUJWVFRfQURWQU5DRV9UTyhFc2NhcGVTdGF0ZSk7CiAgICAgfSBlbHNlIGlm
IChjaGFyYWN0ZXIgPT0gJzwnKSB7CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoYnVmZmVyKTsKLSAg
ICAgICAgcmV0dXJuIGVtaXRUb2tlbih0b2tlbiwgV2ViVlRUVG9rZW46OlN0cmluZ1Rva2VuKHJl
c3VsdC50b1N0cmluZygpKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0
cmluZygpKQorICAgICAgICAgICAgcmV0dXJuIGVtaXRUb2tlbih0b2tlbiwgV2ViVlRUVG9rZW46
OlN0cmluZ1Rva2VuKCpzdHJpbmcpKTsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9IGVsc2UgaWYg
KGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgIHJlc3VsdC5hcHBlbmQo
YnVmZmVyKTsKLSAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9r
ZW4sIFdlYlZUVFRva2VuOjpTdHJpbmdUb2tlbihyZXN1bHQudG9TdHJpbmcoKSkpOworICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVy
biBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6U3RyaW5n
VG9rZW4oKnN0cmluZykpOworICAgICAgICBDUkFTSCgpOwogICAgIH0gZWxzZSB7CiAgICAgICAg
IHJlc3VsdC5hcHBlbmQoYnVmZmVyKTsKICAgICAgICAgYnVmZmVyLmNsZWFyKCk7CkBAIC0xNzIs
NyArMTgwLDkgQEAgVGFnU3RhdGU6CiAgICAgICAgIFdFQlZUVF9BRFZBTkNFX1RPKFRpbWVzdGFt
cFRhZ1N0YXRlKTsKICAgICB9IGVsc2UgaWYgKGNoYXJhY3RlciA9PSAnPicgfHwgY2hhcmFjdGVy
ID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKICAgICAgICAgQVNTRVJUKHJlc3VsdC5pc0VtcHR5KCkp
OwotICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2Vi
VlRUVG9rZW46OlN0YXJ0VGFnKHJlc3VsdC50b1N0cmluZygpKSk7CisgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuIGFkdmFuY2VB
bmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpTdGFydFRhZygqc3RyaW5n
KSk7CisgICAgICAgIENSQVNIKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgcmVzdWx0LmFwcGVu
ZChjaGFyYWN0ZXIpOwogICAgICAgICBXRUJWVFRfQURWQU5DRV9UTyhTdGFydFRhZ1N0YXRlKTsK
QEAgLTE4Myw5ICsxOTMsMTEgQEAgU3RhcnRUYWdTdGF0ZToKICAgICAgICAgV0VCVlRUX0FEVkFO
Q0VfVE8oU3RhcnRUYWdBbm5vdGF0aW9uU3RhdGUpOwogICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9
PSAnLicpCiAgICAgICAgIFdFQlZUVF9BRFZBTkNFX1RPKFN0YXJ0VGFnQ2xhc3NTdGF0ZSk7Ci0g
ICAgZWxzZSBpZiAoY2hhcmFjdGVyID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1h
cmtlcikKLSAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4s
IFdlYlZUVFRva2VuOjpTdGFydFRhZyhyZXN1bHQudG9TdHJpbmcoKSkpOwotICAgIGVsc2Ugewor
ICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSAnPicgfHwgY2hhcmFjdGVyID09IGtFbmRPZkZpbGVN
YXJrZXIpIHsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2Vi
VlRUVG9rZW46OlN0YXJ0VGFnKCpzdHJpbmcpKTsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9IGVs
c2UgewogICAgICAgICByZXN1bHQuYXBwZW5kKGNoYXJhY3Rlcik7CiAgICAgICAgIFdFQlZUVF9B
RFZBTkNFX1RPKFN0YXJ0VGFnU3RhdGUpOwogICAgIH0KQEAgLTIwMiwyNyArMjE0LDQ0IEBAIFN0
YXJ0VGFnQ2xhc3NTdGF0ZToKICAgICB9IGVsc2UgaWYgKGNoYXJhY3RlciA9PSAnPicgfHwgY2hh
cmFjdGVyID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKICAgICAgICAgYWRkTmV3Q2xhc3MoY2xhc3Nl
cywgYnVmZmVyKTsKICAgICAgICAgYnVmZmVyLmNsZWFyKCk7Ci0gICAgICAgIHJldHVybiBhZHZh
bmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6U3RhcnRUYWcocmVz
dWx0LnRvU3RyaW5nKCksIGNsYXNzZXMudG9BdG9taWNTdHJpbmcoKSkpOworICAgICAgICBpZiAo
YXV0byByZXN1bHRTdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgaWYg
KGF1dG8gY2xhc3Nlc1N0cmluZyA9IGNsYXNzZXMudG9BdG9taWNTdHJpbmcoKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRU
VG9rZW46OlN0YXJ0VGFnKCpyZXN1bHRTdHJpbmcsICpjbGFzc2VzU3RyaW5nKSk7CisgICAgICAg
IH0KKyAgICAgICAgQ1JBU0goKTsKICAgICB9IGVsc2UgewogICAgICAgICBidWZmZXIuYXBwZW5k
KGNoYXJhY3Rlcik7CiAgICAgICAgIFdFQlZUVF9BRFZBTkNFX1RPKFN0YXJ0VGFnQ2xhc3NTdGF0
ZSk7CiAgICAgfQogCiBTdGFydFRhZ0Fubm90YXRpb25TdGF0ZToKLSAgICBpZiAoY2hhcmFjdGVy
ID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikKLSAgICAgICAgcmV0dXJu
IGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpTdGFydFRh
ZyhyZXN1bHQudG9TdHJpbmcoKSwgY2xhc3Nlcy50b0F0b21pY1N0cmluZygpLCBidWZmZXIudG9B
dG9taWNTdHJpbmcoKSkpOworICAgIGlmIChjaGFyYWN0ZXIgPT0gJz4nIHx8IGNoYXJhY3RlciA9
PSBrRW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgIGlmIChhdXRvIHJlc3VsdFN0cmluZyA9IHJl
c3VsdC50b1N0cmluZygpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBjbGFzc2VzU3RyaW5nID0g
Y2xhc3Nlcy50b0F0b21pY1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gYnVm
ZmVyU3RyaW5nID0gYnVmZmVyLnRvQXRvbWljU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICAg
IHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6
U3RhcnRUYWcoKnJlc3VsdFN0cmluZywgKmNsYXNzZXNTdHJpbmcsICpidWZmZXJTdHJpbmcpKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBDUkFTSCgpOworICAgIH0KICAgICBi
dWZmZXIuYXBwZW5kKGNoYXJhY3Rlcik7CiAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oU3RhcnRUYWdB
bm5vdGF0aW9uU3RhdGUpOwogCiBFbmRUYWdTdGF0ZToKLSAgICBpZiAoY2hhcmFjdGVyID09ICc+
JyB8fCBjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikKLSAgICAgICAgcmV0dXJuIGFkdmFu
Y2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpFbmRUYWcocmVzdWx0
LnRvU3RyaW5nKCkpKTsKKyAgICBpZiAoY2hhcmFjdGVyID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0g
a0VuZE9mRmlsZU1hcmtlcikgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9T
dHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQs
IHRva2VuLCBXZWJWVFRUb2tlbjo6RW5kVGFnKCpzdHJpbmcpKTsKKyAgICAgICAgQ1JBU0goKTsK
KyAgICB9CiAgICAgcmVzdWx0LmFwcGVuZChjaGFyYWN0ZXIpOwogICAgIFdFQlZUVF9BRFZBTkNF
X1RPKEVuZFRhZ1N0YXRlKTsKIAogVGltZXN0YW1wVGFnU3RhdGU6Ci0gICAgaWYgKGNoYXJhY3Rl
ciA9PSAnPicgfHwgY2hhcmFjdGVyID09IGtFbmRPZkZpbGVNYXJrZXIpCi0gICAgICAgIHJldHVy
biBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6VGltZXN0
YW1wVGFnKHJlc3VsdC50b1N0cmluZygpKSk7CisgICAgaWYgKGNoYXJhY3RlciA9PSAnPicgfHwg
Y2hhcmFjdGVyID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5n
ID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRU
b2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OlRpbWVzdGFtcFRhZygqc3RyaW5nKSk7
CisgICAgICAgIENSQVNIKCk7CisgICAgfQogICAgIHJlc3VsdC5hcHBlbmQoY2hhcmFjdGVyKTsK
ICAgICBXRUJWVFRfQURWQU5DRV9UTyhUaW1lc3RhbXBUYWdTdGF0ZSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKaW5kZXggOWQ5ODU4
MS4uNjUxZDJlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clN0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JT
dHlsZVNoZWV0LmNwcApAQCAtNzcxLDcgKzc3MSw5IEBAIFN0cmluZyBJbnNwZWN0b3JTdHlsZTo6
c2hvcnRoYW5kVmFsdWUoY29uc3QgU3RyaW5nJiBzaG9ydGhhbmRQcm9wZXJ0eSkgY29uc3QKICAg
ICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGlu
ZGl2aWR1YWxWYWx1ZSk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgSW5zcGVjdG9yU3R5bGU6OnNob3J0
aGFuZFByaW9yaXR5KGNvbnN0IFN0cmluZyYgc2hvcnRoYW5kUHJvcGVydHkpIGNvbnN0CkBAIC05
NDMsMTMgKzk0NSwyMCBAQCBFeGNlcHRpb25PcjxDU1NTdHlsZVJ1bGUqPiBJbnNwZWN0b3JTdHls
ZVNoZWV0OjphZGRSdWxlKGNvbnN0IFN0cmluZyYgc2VsZWN0b3IpCiAgICAgc3R5bGVTaGVldFRl
eHQuYXBwZW5kTGl0ZXJhbCgiIHt9Iik7CiAKICAgICAvLyBVc2luZyBzZXRUZXh0KCkgYXMgdGhp
cyBvcGVyYXRpb24gY2hhbmdlcyB0aGUgc3R5bGVzaGVldCBydWxlIHNldC4KLSAgICBzZXRUZXh0
KHN0eWxlU2hlZXRUZXh0LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0eWxl
U2hlZXRUZXh0LnRvU3RyaW5nKCkpCisgICAgICAgIHNldFRleHQoKnN0cmluZyk7CisgICAgZWxz
ZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgLy8gSW5zcGVjdG9yIFN0eWxlIFNoZWV0cyBhcmUg
YWx3YXlzIHRyZWF0ZWQgYXMgdGhvdWdoIHRoZWlyIHBhcnNlZCBkYXRhIGlzIHJlYWR5LgogICAg
IGlmIChtX29yaWdpbiA9PSBJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OlN0eWxlU2hlZXRPcmln
aW46Okluc3BlY3RvcikKICAgICAgICAgZmlyZVN0eWxlU2hlZXRDaGFuZ2VkKCk7Ci0gICAgZWxz
ZQotICAgICAgICByZXBhcnNlU3R5bGVTaGVldChzdHlsZVNoZWV0VGV4dC50b1N0cmluZygpKTsK
KyAgICBlbHNlIHsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3R5bGVTaGVldFRleHQudG9T
dHJpbmcoKSkKKyAgICAgICAgICAgIHJlcGFyc2VTdHlsZVNoZWV0KCpzdHJpbmcpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOworICAgIH0KIAogICAgIEFTU0VSVChtX3BhZ2VT
dHlsZVNoZWV0LT5sZW5ndGgoKSk7CiAgICAgdW5zaWduZWQgbGFzdFJ1bGVJbmRleCA9IG1fcGFn
ZVN0eWxlU2hlZXQtPmxlbmd0aCgpIC0gMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50
LmNwcAppbmRleCAxOWFmNGU5Li5iZjliNGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hl
QWdlbnQuY3BwCkBAIC0xNzIsMTEgKzE3MiwxNCBAQCBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6
QXBwbGljYXRpb25DYWNoZTo6QXBwbGljYXRpb25DYWNoZVJlc291cmNlPiBJbnNwZWN0b3JBcAog
ICAgIGlmIChyZXNvdXJjZUluZm8uaXNFeHBsaWNpdCkKICAgICAgICAgdHlwZXMuYXBwZW5kTGl0
ZXJhbCgiRXhwbGljaXQgIik7CiAKLSAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXBw
bGljYXRpb25DYWNoZTo6QXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpjcmVhdGUoKQotICAgICAg
ICAuc2V0VXJsKHJlc291cmNlSW5mby5yZXNvdXJjZS5zdHJpbmcoKSkKLSAgICAgICAgLnNldFNp
emUoc3RhdGljX2Nhc3Q8aW50PihyZXNvdXJjZUluZm8uc2l6ZSkpCi0gICAgICAgIC5zZXRUeXBl
KHR5cGVzLnRvU3RyaW5nKCkpCi0gICAgICAgIC5yZWxlYXNlKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gdHlwZXMudG9TdHJpbmcoKSkgeworICAgICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXBwbGljYXRpb25DYWNoZTo6QXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpjcmVhdGUo
KQorICAgICAgICAgICAgLnNldFVybChyZXNvdXJjZUluZm8ucmVzb3VyY2Uuc3RyaW5nKCkpCisg
ICAgICAgICAgICAuc2V0U2l6ZShzdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlSW5mby5zaXplKSkK
KyAgICAgICAgICAgIC5zZXRUeXBlKCpzdHJpbmcpCisgICAgICAgICAgICAucmVsZWFzZSgpOwor
ICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtB
Z2VudC5jcHAKaW5kZXggNDZlNGFmZS4uYWYxNzA0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcApAQCAt
MTM0LDggKzEzNCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChtX2RlY29kZXIpCiAgICAgICAg
ICAgICBtX3Jlc3BvbnNlVGV4dC5hcHBlbmQobV9kZWNvZGVyLT5mbHVzaCgpKTsKIAotICAgICAg
ICBtX2NhbGxiYWNrLT5zZW5kU3VjY2VzcyhtX3Jlc3BvbnNlVGV4dC50b1N0cmluZygpLCBtX21p
bWVUeXBlLCBtX3N0YXR1c0NvZGUpOwotICAgICAgICBkaXNwb3NlKCk7CisgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IG1fcmVzcG9uc2VUZXh0LnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIG1f
Y2FsbGJhY2stPnNlbmRTdWNjZXNzKCpzdHJpbmcsIG1fbWltZVR5cGUsIG1fc3RhdHVzQ29kZSk7
CisgICAgICAgICAgICBkaXNwb3NlKCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgQ1JB
U0goKTsKICAgICB9CiAKICAgICB2b2lkIGRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJy
b3IpIG92ZXJyaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L1dlYkNvbnNvbGVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dl
YkNvbnNvbGVBZ2VudC5jcHAKaW5kZXggZGM5NjQ4Ni4uNjM4MzhhZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xlQWdlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50LmNwcApAQCAtMTY5
LDcgKzE2OSwxMCBAQCB2b2lkIFdlYkNvbnNvbGVBZ2VudDo6ZGlkRmFpbExvYWRpbmcodW5zaWdu
ZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgUmVzbwogICAgICAgICBtZXNzYWdlLmFw
cGVuZChlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpKTsKICAgICB9CiAKLSAgICBhZGRNZXNz
YWdlVG9Db25zb2xlKHN0ZDo6bWFrZV91bmlxdWU8Q29uc29sZU1lc3NhZ2U+KE1lc3NhZ2VTb3Vy
Y2U6Ok5ldHdvcmssIE1lc3NhZ2VUeXBlOjpMb2csIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3Nh
Z2UudG9TdHJpbmcoKSwgZXJyb3IuZmFpbGluZ1VSTCgpLCAwLCAwLCBudWxscHRyLCByZXF1ZXN0
SWRlbnRpZmllcikpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1lc3NhZ2UudG9TdHJpbmcoKSkK
KyAgICAgICAgYWRkTWVzc2FnZVRvQ29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNz
YWdlPihNZXNzYWdlU291cmNlOjpOZXR3b3JrLCBNZXNzYWdlVHlwZTo6TG9nLCBNZXNzYWdlTGV2
ZWw6OkVycm9yLCAqc3RyaW5nLCBlcnJvci5mYWlsaW5nVVJMKCksIDAsIDAsIG51bGxwdHIsIHJl
cXVlc3RJZGVudGlmaWVyKSk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jv
c3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09y
aWdpbkFjY2Vzc0NvbnRyb2wuY3BwCmluZGV4IDY4ODA0ZjIuLmY4OGE0NWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCkBAIC0x
MTIsOCArMTEyLDEyIEBAIFJlc291cmNlUmVxdWVzdCBjcmVhdGVBY2Nlc3NDb250cm9sUHJlZmxp
Z2h0UmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlCiAKICAgICAgICAgICAgIGhl
YWRlckJ1ZmZlci5hcHBlbmQoaGVhZGVyRmllbGQpOwogICAgICAgICB9Ci0gICAgICAgIGlmICgh
aGVhZGVyQnVmZmVyLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHByZWZsaWdodFJlcXVlc3Quc2V0
SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpBY2Nlc3NDb250cm9sUmVxdWVzdEhlYWRl
cnMsIGhlYWRlckJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKCFoZWFkZXJCdWZmZXIu
aXNFbXB0eSgpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBoZWFkZXJCdWZmZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICBwcmVmbGlnaHRSZXF1ZXN0LnNldEhUVFBIZWFk
ZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6QWNjZXNzQ29udHJvbFJlcXVlc3RIZWFkZXJzLCAqc3Ry
aW5nKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOworICAgICAg
ICB9CiAgICAgfQogCiAgICAgcmV0dXJuIHByZWZsaWdodFJlcXVlc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5jcHAKaW5kZXggNGRmMjVkYS4u
OTg2ZmU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzLmNwcApAQCAtMjY4LDcgKzI2OCw5IEBAIFN0cmluZyBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzOjp0b1N0cmluZygpIGNvbnN0CiAKICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKIAotICAg
IHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCmluZGV4IGZmMjkzODku
LjRmMjJkNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBs
aWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNh
Y2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcApAQCAtODQxLDE3ICs4NDEsMjAgQEAgYm9v
bCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6c3RvcmUoQXBwbGljYXRpb25DYWNoZVJlc291cmNl
KiByZXNvdXJjZSwgdW5zaWduZWQKIAogICAgIC8vIFRoZW4sIGluc2VydCB0aGUgcmVzb3VyY2UK
ICAgICAKLSAgICAvLyBTZXJpYWxpemUgdGhlIGhlYWRlcnMKLSAgICBTdHJpbmdCdWlsZGVyIHN0
cmluZ0J1aWxkZXI7Ci0gICAgCi0gICAgZm9yIChjb25zdCBhdXRvJiBoZWFkZXIgOiByZXNvdXJj
ZS0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGRzKCkpIHsKLSAgICAgICAgc3RyaW5nQnVpbGRl
ci5hcHBlbmQoaGVhZGVyLmtleSk7Ci0gICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCc6Jyk7
Ci0gICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGhlYWRlci52YWx1ZSk7Ci0gICAgICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIH0KLSAgICAKLSAgICBTdHJpbmcgaGVhZGVy
cyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBTdHJpbmcgaGVhZGVycyA9IFsmXSAo
KSB7CisgICAgICAgIC8vIFNlcmlhbGl6ZSB0aGUgaGVhZGVycworICAgICAgICBTdHJpbmdCdWls
ZGVyIHN0cmluZ0J1aWxkZXI7CisgICAgCisgICAgICAgIGZvciAoY29uc3QgYXV0byYgaGVhZGVy
IDogcmVzb3VyY2UtPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkcygpKSB7CisgICAgICAgICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZChoZWFkZXIua2V5KTsKKyAgICAgICAgICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kKCc6Jyk7CisgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChoZWFk
ZXIudmFsdWUpOworICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7CisgICAg
ICAgIH0KKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CisgICAgfSgp
OwogICAgIAogICAgIFNRTGl0ZVN0YXRlbWVudCByZXNvdXJjZVN0YXRlbWVudChtX2RhdGFiYXNl
LCAiSU5TRVJUIElOVE8gQ2FjaGVSZXNvdXJjZXMgKHVybCwgc3RhdHVzQ29kZSwgcmVzcG9uc2VV
UkwsIGhlYWRlcnMsIGRhdGEsIG1pbWVUeXBlLCB0ZXh0RW5jb2RpbmdOYW1lKSBWQUxVRVMgKD8s
ID8sID8sID8sID8sID8sID8pIik7CiAgICAgaWYgKHJlc291cmNlU3RhdGVtZW50LnByZXBhcmUo
KSAhPSBTUUxJVEVfT0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2
ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZl
L2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwCmluZGV4IDEyYTMwY2MuLmNmZTczODYzZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2
ZS5jcHAKQEAgLTU1NywyMSArNTU3LDI0IEBAIFJlZlB0cjxMZWdhY3lXZWJBcmNoaXZlPiBMZWdh
Y3lXZWJBcmNoaXZlOjpjcmVhdGVGcm9tU2VsZWN0aW9uKEZyYW1lKiBmcmFtZSkKICAgICBpZiAo
YXV0byBzZWxlY3Rpb25SYW5nZSA9IGZyYW1lLT5zZWxlY3Rpb24oKS50b05vcm1hbGl6ZWRSYW5n
ZSgpKQogICAgICAgICBidWlsZGVyLmFwcGVuZChjcmVhdGVNYXJrdXAoKnNlbGVjdGlvblJhbmdl
LCAmbm9kZUxpc3QsIEFubm90YXRlRm9ySW50ZXJjaGFuZ2UpKTsKIAotICAgIGF1dG8gYXJjaGl2
ZSA9IGNyZWF0ZShidWlsZGVyLnRvU3RyaW5nKCksICpmcmFtZSwgbm9kZUxpc3QsIG51bGxwdHIp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICBh
dXRvIGFyY2hpdmUgPSBjcmVhdGUoKnN0cmluZywgKmZyYW1lLCBub2RlTGlzdCwgbnVsbHB0cik7
CiAgICAgCi0gICAgaWYgKCFkb2N1bWVudC0+aXNGcmFtZVNldCgpKQotICAgICAgICByZXR1cm4g
YXJjaGl2ZTsKKyAgICAgICAgaWYgKCFkb2N1bWVudC0+aXNGcmFtZVNldCgpKQorICAgICAgICAg
ICAgcmV0dXJuIGFyY2hpdmU7CiAgICAgICAgIAotICAgIC8vIFdyYXAgdGhlIGZyYW1lc2V0IGRv
Y3VtZW50IGluIGFuIGlmcmFtZSBzbyBpdCBjYW4gYmUgcGFzdGVkIGludG8KLSAgICAvLyBhbm90
aGVyIGRvY3VtZW50ICh3aGljaCB3aWxsIGhhdmUgYSBib2R5IG9yIGZyYW1lc2V0IG9mIGl0cyBv
d24pLiAKLSAgICBTdHJpbmcgaWZyYW1lTWFya3VwID0gIjxpZnJhbWUgZnJhbWVib3JkZXI9XCJu
b1wiIG1hcmdpbndpZHRoPVwiMFwiIG1hcmdpbmhlaWdodD1cIjBcIiB3aWR0aD1cIjk4JSVcIiBo
ZWlnaHQ9XCI5OCUlXCIgc3JjPVwiIiArIGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigp
LT5yZXNwb25zZSgpLnVybCgpLnN0cmluZygpICsgIlwiPjwvaWZyYW1lPiI7Ci0gICAgYXV0byBp
ZnJhbWVSZXNvdXJjZSA9IEFyY2hpdmVSZXNvdXJjZTo6Y3JlYXRlKHV0ZjhCdWZmZXIoaWZyYW1l
TWFya3VwKSwgYmxhbmtVUkwoKSwgInRleHQvaHRtbCIsICJVVEYtOCIsIFN0cmluZygpKTsKKyAg
ICAgICAgLy8gV3JhcCB0aGUgZnJhbWVzZXQgZG9jdW1lbnQgaW4gYW4gaWZyYW1lIHNvIGl0IGNh
biBiZSBwYXN0ZWQgaW50bworICAgICAgICAvLyBhbm90aGVyIGRvY3VtZW50ICh3aGljaCB3aWxs
IGhhdmUgYSBib2R5IG9yIGZyYW1lc2V0IG9mIGl0cyBvd24pLiAKKyAgICAgICAgU3RyaW5nIGlm
cmFtZU1hcmt1cCA9ICI8aWZyYW1lIGZyYW1lYm9yZGVyPVwibm9cIiBtYXJnaW53aWR0aD1cIjBc
IiBtYXJnaW5oZWlnaHQ9XCIwXCIgd2lkdGg9XCI5OCUlXCIgaGVpZ2h0PVwiOTglJVwiIHNyYz1c
IiIgKyBmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2UoKS51cmwoKS5z
dHJpbmcoKSArICJcIj48L2lmcmFtZT4iOworICAgICAgICBhdXRvIGlmcmFtZVJlc291cmNlID0g
QXJjaGl2ZVJlc291cmNlOjpjcmVhdGUodXRmOEJ1ZmZlcihpZnJhbWVNYXJrdXApLCBibGFua1VS
TCgpLCAidGV4dC9odG1sIiwgIlVURi04IiwgU3RyaW5nKCkpOwogCi0gICAgVmVjdG9yPFJlZjxM
ZWdhY3lXZWJBcmNoaXZlPj4gc3ViZnJhbWVBcmNoaXZlczsKLSAgICBzdWJmcmFtZUFyY2hpdmVz
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoMSk7Ci0gICAgc3ViZnJhbWVBcmNoaXZlcy51bmNoZWNr
ZWRBcHBlbmQoYXJjaGl2ZS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgVmVjdG9yPFJlZjxM
ZWdhY3lXZWJBcmNoaXZlPj4gc3ViZnJhbWVBcmNoaXZlczsKKyAgICAgICAgc3ViZnJhbWVBcmNo
aXZlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KDEpOworICAgICAgICBzdWJmcmFtZUFyY2hpdmVz
LnVuY2hlY2tlZEFwcGVuZChhcmNoaXZlLnJlbGVhc2VOb25OdWxsKCkpOwogCi0gICAgcmV0dXJu
IGNyZWF0ZShpZnJhbWVSZXNvdXJjZS5yZWxlYXNlTm9uTnVsbCgpLCB7IH0sIFdURk1vdmUoc3Vi
ZnJhbWVBcmNoaXZlcykpOworICAgICAgICByZXR1cm4gY3JlYXRlKGlmcmFtZVJlc291cmNlLnJl
bGVhc2VOb25OdWxsKCksIHsgfSwgV1RGTW92ZShzdWJmcmFtZUFyY2hpdmVzKSk7CisgICAgfQor
ICAgIENSQVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9h
cmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJj
aGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwCmluZGV4IDcwNWM2ZGMuLmZkNTdmMTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZl
LmNwcApAQCAtNzYsNyArNzYsOSBAQCBzdGF0aWMgU3RyaW5nIGdlbmVyYXRlUmFuZG9tQm91bmRh
cnkoKQogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChsb3dlck5pYmJsZVRvQVNDSUlIZXhE
aWdpdChyYW5kb21WYWx1ZXNbaV0pKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQodXBw
ZXJOaWJibGVUb0FTQ0lJSGV4RGlnaXQocmFuZG9tVmFsdWVzW2ldKSk7CiAgICAgfQotICAgIHJl
dHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIHJlcGxhY2VOb25QcmludGFibGVDaGFyYWN0ZXJzKGNv
bnN0IFN0cmluZyYgdGV4dCkKQEAgLTg4LDcgKzkwLDkgQEAgc3RhdGljIFN0cmluZyByZXBsYWNl
Tm9uUHJpbnRhYmxlQ2hhcmFjdGVycyhjb25zdCBTdHJpbmcmIHRleHQpCiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCc/Jyk7CiAgICAgfQotICAgIHJldHVy
biBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5n
QnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogCiBNSFRNTEFyY2hpdmU6Ok1IVE1MQXJjaGl2ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwCmluZGV4IGMxMzkw
NzYuLmQ4M2UyNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQ
cmVmZXJlbmNlc01lZGlhQUYuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVz
ZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwCkBAIC0zNDcsMTQgKzM0NywxOCBAQCBTdHJpbmcgQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OndpbmRvd1JvdW5kZWRDb3JuZXJSYWRpdXNDU1Mo
KSBjb25zdAogCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGFwcGVuZENTUyhidWls
ZGVyLCBDU1NQcm9wZXJ0eUJvcmRlclJhZGl1cywgU3RyaW5nOjpmb3JtYXQoIiUuMDJmcHgiLCBy
YWRpdXMpLCBiZWhhdmlvciA9PSBrTUFDYXB0aW9uQXBwZWFyYW5jZUJlaGF2aW9yVXNlVmFsdWUp
OwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
YnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogCiBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNvbG9yUHJvcGVy
dHlDU1MoQ1NTUHJvcGVydHlJRCBpZCwgY29uc3QgQ29sb3ImIGNvbG9yLCBib29sIGltcG9ydGFu
dCkgY29uc3QKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYXBwZW5kQ1NTKGJ1
aWxkZXIsIGlkLCBjb2xvci5zZXJpYWxpemVkKCksIGltcG9ydGFudCk7Ci0gICAgcmV0dXJuIGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25TdHJva2VXaWR0aEZvckZvbnQoZmxv
YXQgZm9udFNpemUsIGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGZsb2F0JiBzdHJva2VXaWR0aCwg
Ym9vbCYgaW1wb3J0YW50KSBjb25zdApAQCAtNDA2LDcgKzQxMCw5IEBAIFN0cmluZyBDYXB0aW9u
VXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y2FwdGlvbnNUZXh0RWRnZUNTUygpIGNvbnN0CiAgICAg
ICAgIGFwcGVuZENTUyhidWlsZGVyLCBDU1NQcm9wZXJ0eVN0cm9rZUxpbmVjYXAsIGdldFZhbHVl
TmFtZShDU1NWYWx1ZVJvdW5kKSwgaW1wb3J0YW50KTsKICAgICB9CiAgICAgCi0gICAgcmV0dXJu
IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmlu
ZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y2FwdGlvbnNEZWZhdWx0Rm9udENTUygp
IGNvbnN0CkBAIC00NDgsNyArNDU0LDkgQEAgU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNN
ZWRpYUFGOjpjYXB0aW9uc0RlZmF1bHRGb250Q1NTKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5h
cHBlbmRMaXRlcmFsKCIgIWltcG9ydGFudCIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCc7Jyk7CiAg
ICAgCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIGZsb2F0IENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uRm9u
dFNpemVTY2FsZUFuZEltcG9ydGFuY2UoYm9vbCYgaW1wb3J0YW50KSBjb25zdApAQCAtNTk1LDkg
KzYwMywxMSBAQCBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25z
U3R5bGVTaGVldE92ZXJyaWRlKCkgY29uc3QKICAgICB9CiAjZW5kaWYgLy8gSEFWRShNRURJQV9B
Q0NFU1NJQklMSVRZX0ZSQU1FV09SSykKIAotICAgIExPRyhNZWRpYSwgIkNhcHRpb25Vc2VyUHJl
ZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc1N0eWxlU2hlZXRPdmVycmlkZVNldHRpbmcgc3R5bGUg
dG86XG4lcyIsIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LnRvU3RyaW5nKCkudXRmOCgpLmRh
dGEoKSk7Ci0KLSAgICByZXR1cm4gY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC50b1N0
cmluZygpKSB7CisgICAgICAgIExPRyhNZWRpYSwgIkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRp
YUFGOjpjYXB0aW9uc1N0eWxlU2hlZXRPdmVycmlkZVNldHRpbmcgc3R5bGUgdG86XG4lcyIsIHN0
cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIH0KKyAg
ICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIGxhbmd1YWdlSWRlbnRpZmllcihjb25zdCBT
dHJpbmcmIGxhbmd1YWdlQ29kZSkKQEAgLTY2NCwxMCArNjc0LDEzIEBAIHN0YXRpYyBTdHJpbmcg
dHJhY2tEaXNwbGF5TmFtZShBdWRpb1RyYWNrKiB0cmFjaykKICAgICBpZiAoZGlzcGxheU5hbWUu
aXNFbXB0eSgpKQogICAgICAgICBkaXNwbGF5TmFtZS5hcHBlbmQoYXVkaW9UcmFja05vTGFiZWxU
ZXh0KCkpOwogCi0gICAgaWYgKHRyYWNrLT5raW5kKCkgIT0gQXVkaW9UcmFjazo6ZGVzY3JpcHRp
b25LZXl3b3JkKCkpCi0gICAgICAgIHJldHVybiBkaXNwbGF5TmFtZS50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IGRpc3BsYXlOYW1lLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgaWYg
KHRyYWNrLT5raW5kKCkgIT0gQXVkaW9UcmFjazo6ZGVzY3JpcHRpb25LZXl3b3JkKCkpCisgICAg
ICAgICAgICByZXR1cm4gKnN0cmluZzsKIAotICAgIHJldHVybiBhdWRpb0Rlc2NyaXB0aW9uVHJh
Y2tTdWZmaXhUZXh0KGRpc3BsYXlOYW1lLnRvU3RyaW5nKCkpOworICAgICAgICByZXR1cm4gYXVk
aW9EZXNjcmlwdGlvblRyYWNrU3VmZml4VGV4dCgqc3RyaW5nKTsKKyAgICB9CisgICAgQ1JBU0go
KTsKIH0KIAogU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpkaXNwbGF5TmFt
ZUZvclRyYWNrKEF1ZGlvVHJhY2sqIHRyYWNrKSBjb25zdApAQCAtNjg4LDI2ICs3MDEsMjkgQEAg
c3RhdGljIFN0cmluZyB0cmFja0Rpc3BsYXlOYW1lKFRleHRUcmFjayogdHJhY2spCiAgICAgaWYg
KGRpc3BsYXlOYW1lQnVpbGRlci5pc0VtcHR5KCkpCiAgICAgICAgIGRpc3BsYXlOYW1lQnVpbGRl
ci5hcHBlbmQodGV4dFRyYWNrTm9MYWJlbFRleHQoKSk7CiAKLSAgICBTdHJpbmcgZGlzcGxheU5h
bWUgPSBkaXNwbGF5TmFtZUJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBkaXNwbGF5TmFtZUJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICBTdHJpbmcgZGlzcGxh
eU5hbWUgPSAqc3RyaW5nOwogCi0gICAgaWYgKHRyYWNrLT5pc0Nsb3NlZENhcHRpb25zKCkpIHsK
LSAgICAgICAgZGlzcGxheU5hbWUgPSBjbG9zZWRDYXB0aW9uVHJhY2tNZW51SXRlbVRleHQoZGlz
cGxheU5hbWUpOwotICAgICAgICBpZiAodHJhY2stPmlzRWFzeVRvUmVhZCgpKQotICAgICAgICAg
ICAgZGlzcGxheU5hbWUgPSBlYXN5UmVhZGVyVHJhY2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUp
OworICAgICAgICBpZiAodHJhY2stPmlzQ2xvc2VkQ2FwdGlvbnMoKSkgeworICAgICAgICAgICAg
ZGlzcGxheU5hbWUgPSBjbG9zZWRDYXB0aW9uVHJhY2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUp
OworICAgICAgICAgICAgaWYgKHRyYWNrLT5pc0Vhc3lUb1JlYWQoKSkKKyAgICAgICAgICAgICAg
ICBkaXNwbGF5TmFtZSA9IGVhc3lSZWFkZXJUcmFja01lbnVJdGVtVGV4dChkaXNwbGF5TmFtZSk7
CiAKLSAgICAgICAgcmV0dXJuIGRpc3BsYXlOYW1lOwotICAgIH0KKyAgICAgICAgICAgIHJldHVy
biBkaXNwbGF5TmFtZTsKKyAgICAgICAgfQogCi0gICAgaWYgKHRyYWNrLT5pc1NESCgpKQotICAg
ICAgICBkaXNwbGF5TmFtZSA9IHNkaFRyYWNrTWVudUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsKKyAg
ICAgICAgaWYgKHRyYWNrLT5pc1NESCgpKQorICAgICAgICAgICAgZGlzcGxheU5hbWUgPSBzZGhU
cmFja01lbnVJdGVtVGV4dChkaXNwbGF5TmFtZSk7CiAKLSAgICBpZiAodHJhY2stPmNvbnRhaW5z
T25seUZvcmNlZFN1YnRpdGxlcygpKQotICAgICAgICBkaXNwbGF5TmFtZSA9IGZvcmNlZFRyYWNr
TWVudUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsKKyAgICAgICAgaWYgKHRyYWNrLT5jb250YWluc09u
bHlGb3JjZWRTdWJ0aXRsZXMoKSkKKyAgICAgICAgICAgIGRpc3BsYXlOYW1lID0gZm9yY2VkVHJh
Y2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOwogCi0gICAgaWYgKHRyYWNrLT5pc0Vhc3lUb1Jl
YWQoKSkKLSAgICAgICAgZGlzcGxheU5hbWUgPSBlYXN5UmVhZGVyVHJhY2tNZW51SXRlbVRleHQo
ZGlzcGxheU5hbWUpOworICAgICAgICBpZiAodHJhY2stPmlzRWFzeVRvUmVhZCgpKQorICAgICAg
ICAgICAgZGlzcGxheU5hbWUgPSBlYXN5UmVhZGVyVHJhY2tNZW51SXRlbVRleHQoZGlzcGxheU5h
bWUpOwogCi0gICAgcmV0dXJuIGRpc3BsYXlOYW1lOworICAgICAgICByZXR1cm4gZGlzcGxheU5h
bWU7CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVu
Y2VzTWVkaWFBRjo6ZGlzcGxheU5hbWVGb3JUcmFjayhUZXh0VHJhY2sqIHRyYWNrKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBhODQyNjVhLi4zZTQyNDZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
LmNwcApAQCAtMzY5LDcgKzM2OSw5IEBAIHN0YXRpYyBKU0M6OllhcnI6OlJlZ3VsYXJFeHByZXNz
aW9uIGNyZWF0ZVJlZ0V4cEZvckxhYmVscyhjb25zdCBWZWN0b3I8U3RyaW5nPiYKICAgICAgICAg
ICAgIHBhdHRlcm4uYXBwZW5kTGl0ZXJhbCgiXFxiIik7CiAgICAgfQogICAgIHBhdHRlcm4uYXBw
ZW5kKCcpJyk7Ci0gICAgcmV0dXJuIEpTQzo6WWFycjo6UmVndWxhckV4cHJlc3Npb24ocGF0dGVy
bi50b1N0cmluZygpLCBKU0M6OllhcnI6OlRleHRDYXNlSW5zZW5zaXRpdmUpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IHBhdHRlcm4udG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIEpTQzo6WWFy
cjo6UmVndWxhckV4cHJlc3Npb24oKnN0cmluZywgSlNDOjpZYXJyOjpUZXh0Q2FzZUluc2Vuc2l0
aXZlKTsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgRnJhbWU6OnNlYXJjaEZvckxhYmVsc0Fi
b3ZlQ2VsbChjb25zdCBKU0M6OllhcnI6OlJlZ3VsYXJFeHByZXNzaW9uJiByZWdFeHAsIEhUTUxU
YWJsZUNlbGxFbGVtZW50KiBjZWxsLCBzaXplX3QqIHJlc3VsdERpc3RhbmNlRnJvbVN0YXJ0T2ZD
ZWxsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwCmluZGV4IDI2Y2NjN2EuLjRkY2VmMDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKQEAgLTE1MCw3ICsxNTAsOSBAQCBBdG9taWNTdHJp
bmcgRnJhbWVUcmVlOjp1bmlxdWVDaGlsZE5hbWUoY29uc3QgQXRvbWljU3RyaW5nJiByZXF1ZXN0
ZWROYW1lKSBjb25zdAogICAgIG5hbWUuYXBwZW5kTnVtYmVyKGNoaWxkQ291bnQoKSk7CiAgICAg
bmFtZS5hcHBlbmRMaXRlcmFsKCItLT4tLT4iKTsKIAotICAgIHJldHVybiBuYW1lLnRvQXRvbWlj
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbmFtZS50b0F0b21pY1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgYm9vbCBp
blNjb3BlKEZyYW1lJiBmcmFtZSwgVHJlZVNjb3BlJiBzY29wZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcAppbmRleCBmZjNiOGFhLi4yYTM2MGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwCkBAIC0xNDUyLDcgKzE0NTIsMTAgQEAgdm9pZCBGcmFtZVZpZXc6OmxvZ01vY2tTY3JvbGxB
bmltYXRvck1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSBjb25zdAogICAgICAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIk1haW4iKTsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIkZy
YW1lVmlldzogIik7CiAgICAgYnVpbGRlci5hcHBlbmQobWVzc2FnZSk7Ci0gICAgZG9jdW1lbnQt
PmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdlTGV2ZWw6OkRl
YnVnLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VT
b3VyY2U6Ok90aGVyLCBNZXNzYWdlTGV2ZWw6OkRlYnVnLCAqc3RyaW5nKTsKKyAgICBlbHNlCisg
ICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgRnJhbWVWaWV3OjpzZXRDYW5ub3RCbGl0VG9XaW5k
b3coKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcAppbmRleCA1ZjY0MjI0Li45
YWE5ZjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcApAQCAtMjYzLDgg
KzI2MywxMSBAQCB2b2lkIFBhZ2VTZXJpYWxpemVyOjpzZXJpYWxpemVDU1NTdHlsZVNoZWV0KENT
U1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQsIGNvbnN0IFVSTAogICAgICAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIGNoZWNrIHdoZXRoZXIgYSBjaGFyc2V0IGhhcyBiZWVuIHNwZWNpZmllZCBhbmQgaWYg
bm9uZSB3YXMgZm91bmQgYWRkIG9uZS4KICAgICAgICAgVGV4dEVuY29kaW5nIHRleHRFbmNvZGlu
ZyhzdHlsZVNoZWV0LT5jb250ZW50cygpLmNoYXJzZXQoKSk7CiAgICAgICAgIEFTU0VSVCh0ZXh0
RW5jb2RpbmcuaXNWYWxpZCgpKTsKLSAgICAgICAgbV9yZXNvdXJjZXMuYXBwZW5kKHsgdXJsLCBB
U0NJSUxpdGVyYWwgeyAidGV4dC9jc3MiIH0sIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHRleHRFbmNv
ZGluZy5lbmNvZGUoY3NzVGV4dC50b1N0cmluZygpLCBVbmVuY29kYWJsZUhhbmRsaW5nOjpFbnRp
dGllcykpIH0pOwotICAgICAgICBtX3Jlc291cmNlVVJMcy5hZGQodXJsKTsKKyAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gY3NzVGV4dC50b1N0cmluZygpKSB7CisgICAgICAgICAgICBtX3Jlc291
cmNlcy5hcHBlbmQoeyB1cmwsIEFTQ0lJTGl0ZXJhbCB7ICJ0ZXh0L2NzcyIgfSwgU2hhcmVkQnVm
ZmVyOjpjcmVhdGUodGV4dEVuY29kaW5nLmVuY29kZSgqc3RyaW5nLCBVbmVuY29kYWJsZUhhbmRs
aW5nOjpFbnRpdGllcykpIH0pOworICAgICAgICAgICAgbV9yZXNvdXJjZVVSTHMuYWRkKHVybCk7
CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50LmNwcAppbmRleCA5
ZDQ0ZDk0Li4zYjQ0ZmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1h
bmNlTG9nZ2luZ0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZUxvZ2dpbmdDbGllbnQuY3BwCkBAIC01MCw3ICs1MCw5IEBAIFN0cmluZyBQZXJmb3JtYW5jZUxv
Z2dpbmdDbGllbnQ6OnN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uc0FzU3RyaW5nKFN5bmNocm9u
b3VzCiAgICAgICAgIHJlYXNvbnMuYXBwZW5kTGl0ZXJhbCgiaW1hZ2UgZG9jdW1lbnQsIik7CiAK
ICAgICAvLyBTdHJpcCB0aGUgdHJhaWxpbmcgY29tbWEuCi0gICAgcmV0dXJuIHJlYXNvbnMudG9T
dHJpbmcoKS5sZWZ0KHJlYXNvbnMubGVuZ3RoKCkgLSAxKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSByZWFzb25zLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBzdHJpbmctPmxlZnQocmVhc29u
cy5sZW5ndGgoKSAtIDEpOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcAppbmRleCAyYWFj
OGVlLi5lM2FjOGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3Jp
Z2luRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEu
Y3BwCkBAIC04NCw3ICs4NCw5IEBAIFN0cmluZyBTZWN1cml0eU9yaWdpbkRhdGE6OmRhdGFiYXNl
SWRlbnRpZmllcigpIGNvbnN0CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoc2VwYXJhdG9yQ2hh
cmFjdGVyKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcihwb3J0LnZhbHVlX29yKDAp
KTsKICAgICAKLSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RkOjpvcHRpb25hbDxTZWN1cml0eU9yaWdpbkRh
dGE+IFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbURhdGFiYXNlSWRlbnRpZmllcihjb25zdCBTdHJp
bmcmIGRhdGFiYXNlSWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
V2hlZWxFdmVudFRlc3RUcmlnZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVu
dFRlc3RUcmlnZ2VyLmNwcAppbmRleCBlZDU0OWNmLi5mYzUwMjUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0VHJpZ2dlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdFRyaWdnZXIuY3BwCkBAIC0xMDAsNyArMTAwLDEwIEBA
IHN0YXRpYyB2b2lkIGR1bXBTdGF0ZShXVEY6Okhhc2hNYXA8V2hlZWxFdmVudFRlc3RUcmlnZ2Vy
OjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpCiAgICAgICAgICAgICAgICAgcmVhc29ucy5hcHBlbmQo
IiwgIik7CiAgICAgICAgICAgICByZWFzb25zLmFwcGVuZChTdHJpbmc6Om51bWJlcihyZWFzb24p
KTsKICAgICAgICAgfQotICAgICAgICBMT0coV2hlZWxFdmVudFRlc3RUcmlnZ2VycywgIiAgICAg
UmVhc29uczogJXMiLCByZWFzb25zLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IHJlYXNvbnMudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIExPRyhX
aGVlbEV2ZW50VGVzdFRyaWdnZXJzLCAiICAgICBSZWFzb25zOiAlcyIsIHN0cmluZy0+dXRmOCgp
LmRhdGEoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogfQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJp
dHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9s
aWN5LmNwcAppbmRleCBmYzJmZDEyLi4zYzkxODcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTg1LDcgKzg1LDkgQEAgc3Rh
dGljIFN0cmluZyBjb25zb2xlTWVzc2FnZUZvclZpb2xhdGlvbihjb25zdCBjaGFyKiBlZmZlY3Rp
dmVWaW9sYXRlZERpcmVjdGl2ZSwKICAgICAgICAgcmVzdWx0LmFwcGVuZChlZmZlY3RpdmVWaW9s
YXRlZERpcmVjdGl2ZSk7CiAgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCIgZGlyZWN0aXZl
IG9mIHRoZSBDb250ZW50IFNlY3VyaXR5IFBvbGljeS4iKTsKICAgICB9Ci0gICAgcmV0dXJuIHJl
c3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBDb250ZW50U2Vj
dXJpdHlQb2xpY3k6OkNvbnRlbnRTZWN1cml0eVBvbGljeShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQpAQCAtMTM3LDcgKzEzOSwxMCBAQCBib29sIENvbnRl
bnRTZWN1cml0eVBvbGljeTo6YWxsb3dSdW5uaW5nT3JEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50
KGNvbnN0IFVSTCYgdQogICAgICAgICBjb25zb2xlTWVzc2FnZS5hcHBlbmQodXJsLnN0cmluZ0Nl
bnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpKTsKICAgICAgICAgY29uc29sZU1lc3NhZ2UuYXBwZW5k
TGl0ZXJhbCgiIGJlY2F1c2UgIik7CiAgICAgICAgIGNvbnNvbGVNZXNzYWdlLmFwcGVuZCgiJ2Js
b2NrLWFsbC1taXhlZC1jb250ZW50JyBhcHBlYXJzIGluIHRoZSBDb250ZW50IFNlY3VyaXR5IFBv
bGljeS4iKTsKLSAgICAgICAgcmVwb3J0VmlvbGF0aW9uKENvbnRlbnRTZWN1cml0eVBvbGljeURp
cmVjdGl2ZU5hbWVzOjpibG9ja0FsbE1peGVkQ29udGVudCwgQ29udGVudFNlY3VyaXR5UG9saWN5
RGlyZWN0aXZlTmFtZXM6OmJsb2NrQWxsTWl4ZWRDb250ZW50LCAqcG9saWN5LCB1cmwsIGNvbnNv
bGVNZXNzYWdlLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBjb25zb2xl
TWVzc2FnZS50b1N0cmluZygpKQorICAgICAgICAgICAgcmVwb3J0VmlvbGF0aW9uKENvbnRlbnRT
ZWN1cml0eVBvbGljeURpcmVjdGl2ZU5hbWVzOjpibG9ja0FsbE1peGVkQ29udGVudCwgQ29udGVu
dFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXM6OmJsb2NrQWxsTWl4ZWRDb250ZW50LCAqcG9s
aWN5LCB1cmwsICpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwog
CiAgICAgICAgIGlmICghaXNSZXBvcnRPbmx5KQogICAgICAgICAgICAgYWxsb3cgPSBmYWxzZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0F4aXNTY3JvbGxTbmFw
T2Zmc2V0cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9BeGlzU2Nyb2xsU25h
cE9mZnNldHMuY3BwCmluZGV4IDAyMDc1MzguLmQ4ZDNmMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0F4aXNTY3JvbGxTbmFwT2Zmc2V0cy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXhpc1Njcm9sbFNuYXBPZmZzZXRzLmNwcApAQCAt
ODEsNyArODEsOSBAQCBzdGF0aWMgU3RyaW5nIHNuYXBPZmZzZXRzVG9TdHJpbmcoY29uc3QgVmVj
dG9yPExheW91dFVuaXQ+JiBzbmFwT2Zmc2V0cykKICAgICAgICAgcy5hcHBlbmQoU3RyaW5nOjpm
b3JtYXQoIiUuMWYgIiwgb2Zmc2V0LnRvRmxvYXQoKSkpOwogCiAgICAgcy5hcHBlbmQoIl0iKTsK
LSAgICByZXR1cm4gcy50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHMudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGlj
IFN0cmluZyBzbmFwT2Zmc2V0UmFuZ2VzVG9TdHJpbmcoY29uc3QgVmVjdG9yPFNjcm9sbE9mZnNl
dFJhbmdlPExheW91dFVuaXQ+PiYgcmFuZ2VzKQpAQCAtOTEsNyArOTMsOSBAQCBzdGF0aWMgU3Ry
aW5nIHNuYXBPZmZzZXRSYW5nZXNUb1N0cmluZyhjb25zdCBWZWN0b3I8U2Nyb2xsT2Zmc2V0UmFu
Z2U8TGF5b3V0VW5pdAogICAgIGZvciAoYXV0byByYW5nZSA6IHJhbmdlcykKICAgICAgICAgcy5h
cHBlbmQoU3RyaW5nOjpmb3JtYXQoIiglLjFmLCAlLjFmKSAiLCByYW5nZS5zdGFydC50b0Zsb2F0
KCksIHJhbmdlLmVuZC50b0Zsb2F0KCkpKTsKICAgICBzLmFwcGVuZCgiXSIpOwotICAgIHJldHVy
biBzLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcy50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIHNu
YXBQb3J0T3JBcmVhVG9TdHJpbmcoY29uc3QgTGF5b3V0UmVjdCYgcmVjdCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApp
bmRleCBmNTAyMjFhLi4zYzFjNmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0zODksNyArMzg5LDkgQEAg
U3RyaW5nIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNB
c1RleHQoU3luY2hyb25vdXNTY3JvbGwKIAogICAgIGlmIChzdHJpbmdCdWlsZGVyLmxlbmd0aCgp
KQogICAgICAgICBzdHJpbmdCdWlsZGVyLnJlc2l6ZShzdHJpbmdCdWlsZGVyLmxlbmd0aCgpIC0g
Mik7Ci0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBTY3JvbGxpbmdDb29yZGluYXRvcjo6c3luY2hy
b25vdXNTY3JvbGxpbmdSZWFzb25zQXNUZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0RlY2ltYWwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVj
aW1hbC5jcHAKaW5kZXggM2Q1MjVjZi4uMWExOTJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRGVjaW1hbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVj
aW1hbC5jcHAKQEAgLTk5NCw3ICs5OTQsOSBAQCBTdHJpbmcgRGVjaW1hbDo6dG9TdHJpbmcoKSBj
b25zdAogICAgIGlmIChvcmlnaW5hbEV4cG9uZW50IDw9IDAgJiYgYWRqdXN0ZWRFeHBvbmVudCA+
PSAtNikgewogICAgICAgICBpZiAoIW9yaWdpbmFsRXhwb25lbnQpIHsKICAgICAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKGRpZ2l0cyk7Ci0gICAgICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmlu
ZygpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICAgICAgQ1JBU0goKTsKICAg
ICAgICAgfQogCiAgICAgICAgIGlmIChhZGp1c3RlZEV4cG9uZW50ID49IDApIHsKQEAgLTEwMDMs
NyArMTAwNSw5IEBAIFN0cmluZyBEZWNpbWFsOjp0b1N0cmluZygpIGNvbnN0CiAgICAgICAgICAg
ICAgICAgaWYgKGkgPT0gYWRqdXN0ZWRFeHBvbmVudCkKICAgICAgICAgICAgICAgICAgICAgYnVp
bGRlci5hcHBlbmQoJy4nKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBidWls
ZGVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgICAgICBD
UkFTSCgpOwogICAgICAgICB9CiAKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIwLiIp
OwpAQCAtMTAyNyw3ICsxMDMxLDkgQEAgU3RyaW5nIERlY2ltYWw6OnRvU3RyaW5nKCkgY29uc3QK
ICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGFkanVzdGVkRXhwb25lbnQpOwogICAg
ICAgICB9CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBEZWNpbWFsIERlY2ltYWw6Onplcm8oU2lnbiBzaWduKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcAppbmRleCAyZmRiMjYwLi5lNjdkNjc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcApAQCAtMTMwLDcgKzEzMCw5IEBA
IFN0cmluZyBlbmNvZGVGb3JGaWxlTmFtZShjb25zdCBTdHJpbmcmIGlucHV0U3RyaW5nKQogICAg
ICAgICAgICAgcmVzdWx0LmFwcGVuZChjaGFyYWN0ZXIpOwogICAgIH0KIAotICAgIHJldHVybiBy
ZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIGRl
Y29kZUZyb21GaWxlbmFtZShjb25zdCBTdHJpbmcmIGlucHV0U3RyaW5nKQpAQCAtMTgxLDcgKzE4
Myw5IEBAIFN0cmluZyBkZWNvZGVGcm9tRmlsZW5hbWUoY29uc3QgU3RyaW5nJiBpbnB1dFN0cmlu
ZykKICAgICAgICAgaSArPSA1OwogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIGxhc3RDb21wb25lbnRPZlBh
dGhJZ25vcmluZ1RyYWlsaW5nU2xhc2goY29uc3QgU3RyaW5nJiBwYXRoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUE9ESW50ZXJ2YWwuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BPREludGVydmFsLmgKaW5kZXggMDQ4ZGE5OC4uNjQ2MzYyZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUE9ESW50ZXJ2YWwuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QT0RJbnRlcnZhbC5oCkBAIC0xNDUsNyArMTQ1LDkgQEAgcHVibGljOgogICAg
ICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgbWF4SGlnaD0iKTsKICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoVmFsdWVUb1N0cmluZzxUPjo6c3RyaW5nKG1heEhpZ2goKSkpOwogICAgICAgICBi
dWlsZGVyLmFwcGVuZCgnXScpOwotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwor
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RSZWRCbGFja1RyZWUuaAppbmRleCAxMzFmMzFhLi40OTYw
ZWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RSZWRCbGFja1RyZWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RSZWRCbGFja1RyZWUuaApAQCAtNzQ0
LDcgKzc0NCwxMCBAQCBwcml2YXRlOgogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoVmFsdWVU
b1N0cmluZzxUPjo6c3RyaW5nKG5vZGUtPmRhdGEoKSkpOwogICAgICAgICAgICAgYnVpbGRlci5h
cHBlbmQoKG5vZGUtPmNvbG9yKCkgPT0gQmxhY2spID8gIiAoYmxhY2spIiA6ICIgKHJlZCkiKTsK
ICAgICAgICAgfQotICAgICAgICBMT0dfRVJST1IoIiVzIiwgYnVpbGRlci50b1N0cmluZygpLmFz
Y2lpKCkuZGF0YSgpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICAgICAgTE9HX0VSUk9SKCIlcyIsIHN0cmluZy0+YXNjaWkoKS5kYXRhKCkp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICBpZiAobm9kZSkg
ewogICAgICAgICAgICAgZHVtcEZyb21Ob2RlKG5vZGUtPmxlZnQoKSwgaW5kZW50YXRpb24gKyAy
KTsKICAgICAgICAgICAgIGR1bXBGcm9tTm9kZShub2RlLT5yaWdodCgpLCBpbmRlbnRhdGlvbiAr
IDIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAKaW5kZXggMTU5ZTdmYS4uM2RiODJkNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9VUkwuY3BwCkBAIC00NTUsOCArNDU1LDExIEBAIHZvaWQgVVJMOjpzZXRIb3N0
KGNvbnN0IFN0cmluZyYgcykKICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmdWaWV3KGVuY29kZWRI
b3N0TmFtZS5kYXRhKCksIGVuY29kZWRIb3N0TmFtZS5zaXplKCkpKTsKICAgICBidWlsZGVyLmFw
cGVuZChtX3N0cmluZy5zdWJzdHJpbmcobV9ob3N0RW5kKSk7CiAKLSAgICBVUkxQYXJzZXIgcGFy
c2VyKGJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgKnRoaXMgPSBwYXJzZXIucmVzdWx0KCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIFVSTFBh
cnNlciBwYXJzZXIoKnN0cmluZyk7CisgICAgICAgICp0aGlzID0gcGFyc2VyLnJlc3VsdCgpOwor
ICAgIH0gZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIFVSTDo6cmVtb3ZlUG9ydCgp
CkBAIC01MTcsOCArNTIwLDExIEBAIHZvaWQgVVJMOjpzZXRIb3N0QW5kUG9ydChjb25zdCBTdHJp
bmcmIGhvc3RBbmRQb3J0KQogICAgIH0KICAgICBidWlsZGVyLmFwcGVuZChtX3N0cmluZy5zdWJz
dHJpbmcobV9wb3J0RW5kKSk7CiAKLSAgICBVUkxQYXJzZXIgcGFyc2VyKGJ1aWxkZXIudG9TdHJp
bmcoKSk7Ci0gICAgKnRoaXMgPSBwYXJzZXIucmVzdWx0KCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIFVSTFBhcnNlciBwYXJzZXIoKnN0cmlu
Zyk7CisgICAgICAgICp0aGlzID0gcGFyc2VyLnJlc3VsdCgpOworICAgIH0gZWxzZQorICAgICAg
ICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIHBlcmNlbnRFbmNvZGVDaGFyYWN0ZXJzKGNv
bnN0IFN0cmluZyYgaW5wdXQsIGJvb2woKnNob3VsZEVuY29kZSkoVUNoYXIpKQpAQCAtNTM3LDcg
KzU0Myw5IEBAIHN0YXRpYyBTdHJpbmcgcGVyY2VudEVuY29kZUNoYXJhY3RlcnMoY29uc3QgU3Ry
aW5nJiBpbnB1dCwgYm9vbCgqc2hvdWxkRW5jb2RlKShVCiAgICAgICAgICAgICB9IGVsc2UKICAg
ICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChjKTsKICAgICAgICAgfQotICAgICAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0go
KTsKICAgICB9OwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpbnB1dC5sZW5ndGgoKTsg
KytpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vVGlt
aW5nRnVuY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWlu
Z0Z1bmN0aW9uLmNwcAppbmRleCA4Yzk3MmQ2Li5lZGJmZWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5jcHAKQEAgLTEyOSw3
ICsxMjksMTAgQEAgRXhjZXB0aW9uT3I8UmVmUHRyPFRpbWluZ0Z1bmN0aW9uPj4gVGltaW5nRnVu
Y3Rpb246OmNyZWF0ZUZyb21DU1NUZXh0KGNvbnN0IFN0cmkKICAgICBjc3NTdHJpbmcuYXBwZW5k
TGl0ZXJhbCgiOiAiKTsKICAgICBjc3NTdHJpbmcuYXBwZW5kKGNzc1RleHQpOwogICAgIGF1dG8g
c3R5bGVQcm9wZXJ0aWVzID0gTXV0YWJsZVN0eWxlUHJvcGVydGllczo6Y3JlYXRlKCk7Ci0gICAg
c3R5bGVQcm9wZXJ0aWVzLT5wYXJzZURlY2xhcmF0aW9uKGNzc1N0cmluZy50b1N0cmluZygpLCBD
U1NQYXJzZXJDb250ZXh0KEhUTUxTdGFuZGFyZE1vZGUpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBjc3NTdHJpbmcudG9TdHJpbmcoKSkKKyAgICAgICAgc3R5bGVQcm9wZXJ0aWVzLT5wYXJzZURl
Y2xhcmF0aW9uKCpzdHJpbmcsIENTU1BhcnNlckNvbnRleHQoSFRNTFN0YW5kYXJkTW9kZSkpOwor
ICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIGlmIChhdXRvIGNzc1ZhbHVlID0gc3R5
bGVQcm9wZXJ0aWVzLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5QW5pbWF0aW9uVGlt
aW5nRnVuY3Rpb24pKSB7CiAgICAgICAgIGlmIChhdXRvIHRpbWluZ0Z1bmN0aW9uID0gY3JlYXRl
RnJvbUNTU1ZhbHVlKCpjc3NWYWx1ZS5nZXQoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwCmluZGV4IGY5NDA4MTUuLjJiMzBiMmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwCkBAIC0y
MTgsNyArMjE4LDkgQEAgU3RyaW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudHMoU3RyaW5nVmll
dyBwYXRoLCBjb25zdCBWZWN0b3I8U3RyaW5nVmlldz4mIGNvbXAKICAgICAgICAgYnVpbGRlci5h
cHBlbmQoR19ESVJfU0VQQVJBVE9SX1MpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChjb21wb25l
bnQpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KIAogYm9vbCBtYWtlQWxsRGlyZWN0b3JpZXMoY29uc3QgU3RyaW5nJiBw
YXRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCmluZGV4IDVk
ZDE1MGYuLmVlMWJlNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0NvbG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xv
ci5jcHAKQEAgLTM0OCw3ICszNDgsOSBAQCBTdHJpbmcgQ29sb3I6OnNlcmlhbGl6ZWQoKSBjb25z
dAogICAgICAgICBhcHBlbmRCeXRlQXNIZXgocmVkKCksIGJ1aWxkZXIsIExvd2VyY2FzZSk7CiAg
ICAgICAgIGFwcGVuZEJ5dGVBc0hleChncmVlbigpLCBidWlsZGVyLCBMb3dlcmNhc2UpOwogICAg
ICAgICBhcHBlbmRCeXRlQXNIZXgoYmx1ZSgpLCBidWlsZGVyLCBMb3dlcmNhc2UpOwotICAgICAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAg
Q1JBU0goKTsKICAgICB9CiAKICAgICByZXR1cm4gY3NzVGV4dCgpOwpAQCAtMzg0LDcgKzM4Niw5
IEBAIFN0cmluZyBDb2xvcjo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgfQogICAgICAgICAKICAgICBi
dWlsZGVyLmFwcGVuZCgnKScpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQ29sb3I6Om5hbWVGb3JSZW5kZXJUcmVl
QXNUZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0V4dGVuZGVkQ29sb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RXh0ZW5kZWRDb2xvci5jcHAKaW5kZXggNTBlM2M1Yy4uNDQ4ZGZkMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5jcHAKQEAgLTcyLDcg
KzcyLDkgQEAgU3RyaW5nIEV4dGVuZGVkQ29sb3I6OmNzc1RleHQoKSBjb25zdAogICAgIH0KICAg
ICBidWlsZGVyLmFwcGVuZCgnKScpOwogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcAppbmRleCA4NDc4NjFmLi41NTQ4MjkzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3Bw
CkBAIC01NDksNyArNTQ5LDkgQEAgc3RhdGljIGlubGluZSBTdHJpbmcgbm9ybWFsaXplU3BhY2Vz
SW50ZXJuYWwoY29uc3QgQ2hhcmFjdGVyVHlwZSogY2hhcmFjdGVycywgdW4KICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCiAgICAgICAgIG5vcm1hbGl6ZWQuYXBwZW5k
KEZvbnRDYXNjYWRlOjpub3JtYWxpemVTcGFjZXMoY2hhcmFjdGVyc1tpXSkpOwogCi0gICAgcmV0
dXJuIG5vcm1hbGl6ZWQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBub3JtYWxp
emVkLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIFN0cmluZyBGb250Q2FzY2FkZTo6bm9ybWFsaXplU3BhY2VzKGNvbnN0IExDaGFyKiBjaGFy
YWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250VGFnZ2VkU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNldHRpbmdzLmNwcAppbmRleCA2MWIyZWJlLi41YzQ2
NzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250VGFn
Z2VkU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRUYWdnZWRTZXR0aW5ncy5jcHAKQEAgLTcyLDcgKzcyLDEwIEBAIFRleHRTdHJlYW0mIG9wZXJh
dG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IEZvbnRWYXJpYXRpb25TZXR0aW5ncyYgaXRlbSkK
ICAgICAgICAgcy5hcHBlbmQodmFyaWF0aW9uLnRhZygpWzFdKTsKICAgICAgICAgcy5hcHBlbmQo
dmFyaWF0aW9uLnRhZygpWzJdKTsKICAgICAgICAgcy5hcHBlbmQodmFyaWF0aW9uLnRhZygpWzNd
KTsKLSAgICAgICAgdHMuZHVtcFByb3BlcnR5KHMudG9TdHJpbmcoKSwgaXRlbS5hdChpKS52YWx1
ZSgpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcy50b1N0cmluZygpKQorICAgICAgICAg
ICAgdHMuZHVtcFByb3BlcnR5KCpzdHJpbmcsIGl0ZW0uYXQoaSkudmFsdWUoKSk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIHJldHVybiB0czsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAK
aW5kZXggNjk4MTgwZS4uMTVjZTg5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKQEAgLTQ0MSw3ICs0NDEsOSBAQCBTdHJpbmcg
R3JhcGhpY3NMYXllcjo6YW5pbWF0aW9uTmFtZUZvclRyYW5zaXRpb24oQW5pbWF0ZWRQcm9wZXJ0
eUlEIHByb3BlcnR5KQogICAgIGlkLmFwcGVuZExpdGVyYWwoIi18dHJhbnNpdGlvbiIpOwogICAg
IGlkLmFwcGVuZE51bWJlcihzdGF0aWNfY2FzdDxpbnQ+KHByb3BlcnR5KSk7CiAgICAgaWQuYXBw
ZW5kKCctJyk7Ci0gICAgcmV0dXJuIGlkLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gaWQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogdm9pZCBHcmFwaGljc0xheWVyOjpzdXNwZW5kQW5pbWF0aW9ucyhNb25vdG9uaWNUaW1l
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCmlu
ZGV4IDZmMmIzODcuLjk1M2M0OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUFWRi5jcHAKQEAgLTMwMCw4ICszMDAsMTIgQEAgdm9pZCBJbmJhbmRUZXh0
VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQ3VlQXR0cmlidXRlcyhDRkF0dHJpYnV0ZWRTdHJpbmdS
ZWYgYXR0cmkKICAgICAgICAgY29udGVudC5hcHBlbmQodGFnRW5kKTsKICAgICB9CiAKLSAgICBp
ZiAoY29udGVudC5sZW5ndGgoKSkKLSAgICAgICAgY3VlRGF0YS5zZXRDb250ZW50KGNvbnRlbnQu
dG9TdHJpbmcoKSk7CisgICAgaWYgKGNvbnRlbnQubGVuZ3RoKCkpIHsKKyAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gY29udGVudC50b1N0cmluZygpKQorICAgICAgICAgICAgY3VlRGF0YS5zZXRD
b250ZW50KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOworICAg
IH0KIH0KIAogdm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQ3VlKENGQXJy
YXlSZWYgYXR0cmlidXRlZFN0cmluZ3MsIENGQXJyYXlSZWYgbmF0aXZlU2FtcGxlcywgY29uc3Qg
TWVkaWFUaW1lJiB0aW1lKQpAQCAtNTMwLDcgKzUzNCwxMCBAQCB2b2lkIEluYmFuZFRleHRUcmFj
a1ByaXZhdGVBVkY6OnByb2Nlc3NOYXRpdmVTYW1wbGVzKENGQXJyYXlSZWYgbmF0aXZlU2FtcGxl
cywgYwogICAgICAgICAgICAgaGVhZGVyLmFwcGVuZCgiXG5cbiIpOwogCiAgICAgICAgICAgICBE
RUJVR19MT0coTE9HSURFTlRJRklFUiwgIlZUVCBoZWFkZXIgIiwgJmhlYWRlcik7Ci0gICAgICAg
ICAgICBjbGllbnQoKS0+cGFyc2VXZWJWVFRGaWxlSGVhZGVyKGhlYWRlci50b1N0cmluZygpKTsK
KyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGhlYWRlci50b1N0cmluZygpKQorICAgICAg
ICAgICAgICAgIGNsaWVudCgpLT5wYXJzZVdlYlZUVEZpbGVIZWFkZXIoV1RGTW92ZSgqc3RyaW5n
KSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAg
ICAgIG1faGF2ZVJlcG9ydGVkVlRUSGVhZGVyID0gdHJ1ZTsKICAgICAgICAgfSB3aGlsZSAoMCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVD
b250cm9sbGVyLmNwcAppbmRleCBlYzNhZTRmLi5hMzdkODQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwCkBAIC03
MzUsNyArNzM1LDEwIEBAIFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IFRpbGVDb250cm9sbGVyOjpj
cmVhdGVUaWxlTGF5ZXIoY29uc3QgSW50UmVjdCYgdGlsZVJlY3QsCiAgICAgbmFtZUJ1aWxkZXIu
YXBwZW5kTnVtYmVyKHRpbGVSZWN0LmxvY2F0aW9uKCkueCgpKTsKICAgICBuYW1lQnVpbGRlci5h
cHBlbmQoJywnKTsKICAgICBuYW1lQnVpbGRlci5hcHBlbmROdW1iZXIodGlsZVJlY3QubG9jYXRp
b24oKS55KCkpOwotICAgIGxheWVyLT5zZXROYW1lKG5hbWVCdWlsZGVyLnRvU3RyaW5nKCkpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IG5hbWVCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGxh
eWVyLT5zZXROYW1lKCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAg
IGZsb2F0IHRlbXBvcmFyeVNjYWxlRmFjdG9yID0gb3duaW5nR3JhcGhpY3NMYXllcigpLT5wbGF0
Zm9ybUNBTGF5ZXJDb250ZW50c1NjYWxlTXVsdGlwbGllckZvck5ld1RpbGVzKG1fdGlsZUNhY2hl
TGF5ZXIpOwogICAgIG1faGFzVGlsZXNXaXRoVGVtcG9yYXJ5U2NhbGVGYWN0b3IgfD0gdGVtcG9y
YXJ5U2NhbGVGYWN0b3IgIT0gMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL1RpbGVHcmlkLmNwcAppbmRleCA1OTE5Zjk3Li5lODY2NTk3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlR3JpZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUdyaWQuY3BwCkBAIC01OSw3ICs1
OSw5IEBAIHN0YXRpYyBTdHJpbmcgdmFsaWRhdGlvblBvbGljeUFzU3RyaW5nKFRpbGVHcmlkOjpU
aWxlVmFsaWRhdGlvblBvbGljeSB2YWxpZGF0aW9uCiAgICAgfQogICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiXSIpOwogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmNwcApp
bmRleCBjMDAwYjQzLi5mYTY0MGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmNwcApAQCAt
OTM0LDcgKzkzNCw5IEBAIFN0cmluZyBQbGF0Zm9ybUNBTGF5ZXJXaW46OmxheWVyVHJlZUFzU3Ry
aW5nKCkgY29uc3QKICAgICAvLyBQcmludCBsYXllciB0cmVlIGZyb20gdGhlIHJvb3QKICAgICBw
cmludExheWVyKGJ1aWxkZXIsIHRoaXMsIDApOwogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFJlZjxQbGF0Zm9ybUNBTGF5ZXI+
IFBsYXRmb3JtQ0FMYXllcldpbjo6Y3JlYXRlQ29tcGF0aWJsZUxheWVyKFBsYXRmb3JtQ0FMYXll
cjo6TGF5ZXJUeXBlIGxheWVyVHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBjbGllbnQpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRl
b1RleHR1cmVDb3BpZXJDVi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAKaW5kZXggZGZmY2RjYi4uNDdmMzIzMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29w
aWVyQ1YuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVv
VGV4dHVyZUNvcGllckNWLmNwcApAQCAtNTEyLDcgKzUxMiwxMCBAQCBib29sIFZpZGVvVGV4dHVy
ZUNvcGllckNWOjppbml0aWFsaXplQ29udGV4dE9iamVjdHMoKQogICAgIHZlcnRleFNoYWRlclNv
dXJjZS5hcHBlbmRMaXRlcmFsKCJ9XG4iKTsKIAogICAgIFBsYXRmb3JtM0RPYmplY3QgdmVydGV4
U2hhZGVyID0gbV9jb250ZXh0LT5jcmVhdGVTaGFkZXIoR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRF
WF9TSEFERVIpOwotICAgIG1fY29udGV4dC0+c2hhZGVyU291cmNlKHZlcnRleFNoYWRlciwgdmVy
dGV4U2hhZGVyU291cmNlLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHZlcnRl
eFNoYWRlclNvdXJjZS50b1N0cmluZygpKQorICAgICAgICBtX2NvbnRleHQtPnNoYWRlclNvdXJj
ZSh2ZXJ0ZXhTaGFkZXIsICpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAg
ICBtX2NvbnRleHQtPmNvbXBpbGVTaGFkZXJEaXJlY3QodmVydGV4U2hhZGVyKTsKIAogICAgIEdD
M0RpbnQgdmFsdWUgPSAwOwpAQCAtNTUzLDcgKzU1NiwxMCBAQCBib29sIFZpZGVvVGV4dHVyZUNv
cGllckNWOjppbml0aWFsaXplQ29udGV4dE9iamVjdHMoKQogICAgIGZyYWdtZW50U2hhZGVyU291
cmNlLmFwcGVuZExpdGVyYWwoIn1cbiIpOwogCiAgICAgUGxhdGZvcm0zRE9iamVjdCBmcmFnbWVu
dFNoYWRlciA9IG1fY29udGV4dC0+Y3JlYXRlU2hhZGVyKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFH
TUVOVF9TSEFERVIpOwotICAgIG1fY29udGV4dC0+c2hhZGVyU291cmNlKGZyYWdtZW50U2hhZGVy
LCBmcmFnbWVudFNoYWRlclNvdXJjZS50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBmcmFnbWVudFNoYWRlclNvdXJjZS50b1N0cmluZygpKQorICAgICAgICBtX2NvbnRleHQtPnNo
YWRlclNvdXJjZShmcmFnbWVudFNoYWRlciwgKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBD
UkFTSCgpOwogICAgIG1fY29udGV4dC0+Y29tcGlsZVNoYWRlckRpcmVjdChmcmFnbWVudFNoYWRl
cik7CiAKICAgICBtX2NvbnRleHQtPmdldFNoYWRlcml2KGZyYWdtZW50U2hhZGVyLCBHcmFwaGlj
c0NvbnRleHQzRDo6Q09NUElMRV9TVEFUVVMsICZ2YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xD
b21tb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBo
aWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAppbmRleCA1YmRkNjYzLi4wMjVlY2NiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0M0RPcGVuR0xDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKQEAgLTk1Myw3
ICs5NTMsOSBAQCBzdGF0aWMgU3RyaW5nIGdlbmVyYXRlSGFzaGVkTmFtZShjb25zdCBTdHJpbmcm
IG5hbWUpCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgid2ViZ2xfIik7CiAgICAgYXBwZW5kVW5zaWduZWQ2NEFzSGV4KG51bWJlciwgYnVpbGRl
ciwgTG93ZXJjYXNlKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogc3RkOjpvcHRpb25hbDxTdHJpbmc+IEdyYXBoaWNzQ29udGV4
dDNEOjptYXBwZWRTeW1ib2xJblNoYWRlclNvdXJjZU1hcChQbGF0Zm9ybTNET2JqZWN0IHNoYWRl
ciwgQU5HTEVTaGFkZXJTeW1ib2xUeXBlIHN5bWJvbFR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSkK
QEAgLTE2ODUsOCArMTY4NywxMSBAQCBTdHJpbmcgR3JhcGhpY3NDb250ZXh0M0Q6OmdldFVubWFu
Z2xlZEluZm9Mb2coUGxhdGZvcm0zRE9iamVjdCBzaGFkZXJzWzJdLCBHQzNEcwogCiAgICAgcHJv
Y2Vzc2VkTG9nLmFwcGVuZChsb2cuc3Vic3RyaW5nKHN0YXJ0RnJvbSwgbG9nLmxlbmd0aCgpIC0g
c3RhcnRGcm9tKSk7CiAKLSAgICBMT0coV2ViR0wsICJVbm1hbmdsZWQgU2hhZGVySW5mb0xvZzpc
biVzIiwgcHJvY2Vzc2VkTG9nLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgcmV0dXJu
IHByb2Nlc3NlZExvZy50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHByb2Nlc3Nl
ZExvZy50b1N0cmluZygpKSB7CisgICAgICAgIExPRyhXZWJHTCwgIlVubWFuZ2xlZCBTaGFkZXJJ
bmZvTG9nOlxuJXMiLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIEdyYXBoaWNzQ29udGV4dDNE
OjpnZXRQcm9ncmFtSW5mb0xvZyhQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCmluZGV4IDM2NThkZDEuLmExMmNi
MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCkBA
IC0yODgsNyArMjg4LDkgQEAgc3RhdGljIFN0cmluZyBqb2luUGF0aG5hbWVzKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBwYXRobmFtZXMpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQocGF0aCk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIFBhc3RlYm9h
cmQ6OnJlYWQoUGFzdGVib2FyZFBsYWluVGV4dCYgdGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tCmluZGV4IDdjZDFiZDguLjlmMzhmYjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbQpAQCAt
NTAsOCArNTAsMTAgQEAgc3RhdGljIFN0cmluZyB3aWxkY2FyZFJlZ2V4UGF0dGVyblN0cmluZyhj
b25zdCBTdHJpbmcmIHN0cmluZykKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoY2hhcmFj
dGVyKTsKICAgICB9CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJyQnKTsKLSAgICAgICAgCi0g
ICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KICAgICAKIGJvb2wgc3RyaW5nTWF0Y2hlc1dpbGRjYXJkU3RyaW5nKGNv
bnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBTdHJpbmcmIHdpbGRjYXJkU3RyaW5nKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3JvbGxBbmltYXRvck1vY2suY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3JvbGxBbmltYXRvck1vY2suY3BwCmlu
ZGV4IDNjYzBmZTkuLjMxYmQzZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svU2Nyb2xsQW5pbWF0b3JNb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL1Njcm9sbEFuaW1hdG9yTW9jay5jcHAKQEAgLTEwMSw3ICsxMDEsMTAgQEAgdm9pZCBT
Y3JvbGxBbmltYXRvck1vY2s6Om1vdXNlRW50ZXJlZFNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9s
bGJhcikgY29uc3QKICAgICBlbHNlCiAgICAgICAgIG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiVW5r
bm93biIpOwogICAgIG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiU2Nyb2xsYmFyIik7Ci0gICAgbV9s
b2dnZXIobWVzc2FnZS50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtZXNzYWdl
LnRvU3RyaW5nKCkpCisgICAgICAgIG1fbG9nZ2VyKCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAg
ICAgQ1JBU0goKTsKICAgICBTY3JvbGxBbmltYXRvcjo6bW91c2VFbnRlcmVkU2Nyb2xsYmFyKHNj
cm9sbGJhcik7CiB9CiAKQEAgLTExNiw3ICsxMTksMTAgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1v
Y2s6Om1vdXNlRXhpdGVkU2Nyb2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyKSBjb25zdAogICAg
IGVsc2UKICAgICAgICAgbWVzc2FnZS5hcHBlbmRMaXRlcmFsKCJVbmtub3duIik7CiAgICAgbWVz
c2FnZS5hcHBlbmRMaXRlcmFsKCJTY3JvbGxiYXIiKTsKLSAgICBtX2xvZ2dlcihtZXNzYWdlLnRv
U3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1lc3NhZ2UudG9TdHJpbmcoKSkKKyAg
ICAgICAgbV9sb2dnZXIoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAg
IFNjcm9sbEFuaW1hdG9yOjptb3VzZUV4aXRlZFNjcm9sbGJhcihzY3JvbGxiYXIpOwogfQogCkBA
IC0xMzYsNyArMTQyLDEwIEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNb2NrOjptb3VzZUlzRG93bklu
U2Nyb2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyLCBib29sIGlzUHJlCiAgICAgZWxzZQogICAg
ICAgICBtZXNzYWdlLmFwcGVuZExpdGVyYWwoIlVua25vd24iKTsKICAgICBtZXNzYWdlLmFwcGVu
ZExpdGVyYWwoIlNjcm9sbGJhciIpOwotICAgIG1fbG9nZ2VyKG1lc3NhZ2UudG9TdHJpbmcoKSk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWVzc2FnZS50b1N0cmluZygpKQorICAgICAgICBtX2xv
Z2dlcigqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgU2Nyb2xsQW5p
bWF0b3I6Om1vdXNlSXNEb3duSW5TY3JvbGxiYXIoc2Nyb2xsYmFyLCBpc1ByZXNzZWQpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01v
Y2tCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2Nr
Qm94LmNwcAppbmRleCBkNGFhMjA1Li5mYjY1YTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja0JveC5jcHAKQEAgLTUyLDcgKzUyLDkg
QEAgU3RyaW5nIE1vY2tCb3g6OnBlZWtUeXBlKEFycmF5QnVmZmVyKiBkYXRhKQogICAgIFJlZlB0
cjxJbnQ4QXJyYXk+IGFycmF5ID0gSlNDOjpJbnQ4QXJyYXk6OmNyZWF0ZShkYXRhLCAwLCA0KTsK
ICAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7ICsraSkKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
YXJyYXktPml0ZW0oaSkpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBzaXplX3QgTW9ja0JveDo6cGVla0xlbmd0aChBcnJheUJ1
ZmZlciogZGF0YSkKQEAgLTczLDcgKzc1LDEwIEBAIE1vY2tUcmFja0JveDo6TW9ja1RyYWNrQm94
KEFycmF5QnVmZmVyKiBkYXRhKQogICAgIFJlZlB0cjxJbnQ4QXJyYXk+IGFycmF5ID0gSlNDOjpJ
bnQ4QXJyYXk6OmNyZWF0ZShkYXRhLCAxMiwgNCk7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0
OyArK2kpCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGFycmF5LT5pdGVtKGkpKTsKLSAgICBtX2Nv
ZGVjID0gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgbV9jb2RlYyA9ICpzdHJpbmc7CisgICAgZWxzZQorICAgICAg
ICBDUkFTSCgpOwogCiAgICAgbV9raW5kID0gc3RhdGljX2Nhc3Q8VHJhY2tLaW5kPih2aWV3LT5n
ZXQ8dWludDhfdD4oMTYsIHRydWUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9IVFRQUGFyc2Vycy5jcHAKaW5kZXggYzhmNDVlNS4uOGQzMGQ4NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAKQEAgLTMyOCw3
ICszMjgsOSBAQCBTdHJpbmcgZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb25zdCBTdHJp
bmcmIG1lZGlhVHlwZSkKIAogICAgIGlmIChtaW1lVHlwZS5sZW5ndGgoKSA9PSBsZW5ndGgpCiAg
ICAgICAgIHJldHVybiBtZWRpYVR5cGU7Ci0gICAgcmV0dXJuIG1pbWVUeXBlLnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWltZVR5cGUudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIGV4dHJhY3RDaGFyc2V0RnJv
bU1lZGlhVHlwZShjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJveHlTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5jcHAKaW5kZXggYzZkNjdjMi4uMGM2OWY0ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5jcHAK
QEAgLTY4LDcgKzY4LDkgQEAgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFZlY3RvcjxQcm94eVNlcnZl
cj4mIHByb3h5U2VydmVycykKICAgICAgICAgYXBwZW5kUHJveHlTZXJ2ZXJTdHJpbmcoc3RyaW5n
QnVpbGRlciwgcHJveHlTZXJ2ZXJzW2ldKTsKICAgICB9CiAKLSAgICByZXR1cm4gc3RyaW5nQnVp
bGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVKYXJN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVKYXJNYWMu
bW0KaW5kZXggYzI2NDBiZC4uMDAwNWRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9tYWMvQ29va2llSmFyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZUphck1hYy5tbQpAQCAtMjYxLDcgKzI2MSwxMCBAQCBz
dGF0aWMgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvclNlc3Npb24oY29uc3QgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uJiBzZQogICAgICAgICBjb29raWVzQnVpbGRlci5hcHBlbmQoJz0n
KTsKICAgICAgICAgY29va2llc0J1aWxkZXIuYXBwZW5kKFtjb29raWUgdmFsdWVdKTsKICAgICB9
Ci0gICAgcmV0dXJuIHsgY29va2llc0J1aWxkZXIudG9TdHJpbmcoKSwgZGlkQWNjZXNzU2VjdXJl
Q29va2llcyB9OworCisgICAgaWYgKGF1dG8gc3RyaW5nID0gY29va2llc0J1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuIHsgKnN0cmluZywgZGlkQWNjZXNzU2VjdXJlQ29va2llcyB9
OworICAgIENSQVNIKCk7CiAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAgIHJl
dHVybiB7IFN0cmluZygpLCBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKaW5kZXggNGRhN2NmNi4uMzg5ZDJkYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCkBA
IC0zMTAsNyArMzEwLDkgQEAgU3RyaW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudHMoU3RyaW5n
VmlldyBwYXRoLCBjb25zdCBWZWN0b3I8U3RyaW5nVmlldz4mIGNvbXAKICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoJy8nKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoY29tcG9uZW50KTsKICAgICB9
Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIGJvb2wgbWFrZUFsbERpcmVjdG9yaWVzKGNvbnN0IFN0cmluZyYgcGF0aCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2Vz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RlY29kZUVzY2FwZVNlcXVlbmNlcy5o
CmluZGV4IDE0Y2Y0MTUuLjcyYTBhNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9EZWNvZGVFc2NhcGVTZXF1ZW5jZXMuaApAQCAtNjQsNyArNjQsOSBAQCBzdHJ1
Y3QgVW5pY29kZTE2Qml0RXNjYXBlU2VxdWVuY2UgewogICAgICAgICAgICAgYnVpbGRlci5hcHBl
bmQoY29kZVVuaXQpOwogICAgICAgICAgICAgcnVuID0gcnVuLnN1YnN0cmluZyhzZXF1ZW5jZVNp
emUpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
ICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KIH07CiAKQEAgLTE1MSw3ICsx
NTMsOSBAQCBTdHJpbmcgZGVjb2RlRXNjYXBlU2VxdWVuY2VzKFN0cmluZ1ZpZXcgc3RyaW5nLCBj
b25zdCBUZXh0RW5jb2RpbmcmIGVuY29kaW5nKQogICAgICAgICBkZWNvZGVkUG9zaXRpb24gPSBl
bmNvZGVkUnVuRW5kOwogICAgIH0KICAgICByZXN1bHQuYXBwZW5kKHN0cmluZy5zdWJzdHJpbmco
ZGVjb2RlZFBvc2l0aW9uLCBsZW5ndGggLSBkZWNvZGVkUG9zaXRpb24pKTsKLSAgICByZXR1cm4g
cmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGlubGluZSBW
ZWN0b3I8dWludDhfdD4gZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzQXNEYXRhKFN0cmluZ1ZpZXcg
c3RyaW5nLCBjb25zdCBUZXh0RW5jb2RpbmcmIGVuY29kaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxlLmNwcAppbmRleCAwODc0MzI1Li5kYzA4MDhj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxlLmNw
cApAQCAtMjM4LDcgKzIzOCw5IEBAIFN0cmluZyBMb2NhbGU6OmNvbnZlcnRUb0xvY2FsaXplZE51
bWJlcihjb25zdCBTdHJpbmcmIGlucHV0KQogCiAgICAgYnVpbGRlci5hcHBlbmQoaXNOZWdhdGl2
ZSA/IG1fbmVnYXRpdmVTdWZmaXggOiBtX3Bvc2l0aXZlU3VmZml4KTsKIAotICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMg
Ym9vbCBtYXRjaGVzKGNvbnN0IFN0cmluZyYgdGV4dCwgdW5zaWduZWQgcG9zaXRpb24sIGNvbnN0
IFN0cmluZyYgcGFydCkKQEAgLTMyMSw3ICszMjMsOSBAQCBTdHJpbmcgTG9jYWxlOjpjb252ZXJ0
RnJvbUxvY2FsaXplZE51bWJlcihjb25zdCBTdHJpbmcmIGxvY2FsaXplZCkKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoc3RhdGljX2Nhc3Q8VUNoYXI+KCcwJyArIHN5
bWJvbEluZGV4KSk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiAjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRf
VFlQRVMpCkBAIC0zNjAsNyArMzY0LDkgQEAgU3RyaW5nIExvY2FsZTo6Zm9ybWF0RGF0ZVRpbWUo
Y29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUsIEZvcm1hdFR5cGUgZm9ybWF0VHlwZSkKICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KICNlbmRp
ZiAvLyAhUExBVEZPUk0oSU9TKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L1NlZ21lbnRlZFN0cmluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L1NlZ21lbnRlZFN0cmluZy5jcHAKaW5kZXggZmYzMWIyYS4uNDhjYmEwZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNwcApAQCAtMTU5LDcg
KzE1OSw5IEBAIFN0cmluZyBTZWdtZW50ZWRTdHJpbmc6OnRvU3RyaW5nKCkgY29uc3QKICAgICBt
X2N1cnJlbnRTdWJzdHJpbmcuYXBwZW5kVG8ocmVzdWx0KTsKICAgICBmb3IgKGF1dG8mIHN1YnN0
cmluZyA6IG1fb3RoZXJTdWJzdHJpbmdzKQogICAgICAgICBzdWJzdHJpbmcuYXBwZW5kVG8ocmVz
dWx0KTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIHZvaWQgU2VnbWVudGVkU3RyaW5nOjphZHZhbmNlV2l0aG91dFVwZGF0aW5nTGlu
ZU51bWJlcjE2KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4
dENvZGVjSUNVLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNV
LmNwcAppbmRleCBkMmUyYWU3Li43NjIyY2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9UZXh0Q29kZWNJQ1UuY3BwCkBAIC0zMTgsMTMgKzMxOCwxNCBAQCBTdHJpbmcgVGV4
dENvZGVjSUNVOjpkZWNvZGUoY29uc3QgY2hhciogYnl0ZXMsIHNpemVfdCBsZW5ndGgsIGJvb2wg
Zmx1c2gsIGJvb2wgcwogICAgICAgICBzYXdFcnJvciA9IHRydWU7CiAgICAgfQogCi0gICAgU3Ry
aW5nIHJlc3VsdFN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHJlc3Vs
dFN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKSB7CisgICAgICAgIC8vIFNpbXBsaWZpZWQgQ2hp
bmVzZSBwYWdlcyB1c2UgdGhlIGNvZGUgQTNBMCB0byBtZWFuICJmdWxsLXdpZHRoIHNwYWNlIiwg
YnV0IElDVSBkZWNvZGVzIGl0IGFzIFUrRTVFNS4KKyAgICAgICAgaWYgKCFzdHJjbXAobV9lbmNv
ZGluZ05hbWUsICJHQksiKSB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShtX2VuY29k
aW5nTmFtZSwgImdiMTgwMzAiKSkKKyAgICAgICAgICAgIHJlc3VsdFN0cmluZy0+cmVwbGFjZSgw
eEU1RTUsIGlkZW9ncmFwaGljU3BhY2UpOwogCi0gICAgLy8gU2ltcGxpZmllZCBDaGluZXNlIHBh
Z2VzIHVzZSB0aGUgY29kZSBBM0EwIHRvIG1lYW4gImZ1bGwtd2lkdGggc3BhY2UiLCBidXQgSUNV
IGRlY29kZXMgaXQgYXMgVStFNUU1LgotICAgIGlmICghc3RyY21wKG1fZW5jb2RpbmdOYW1lLCAi
R0JLIikgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobV9lbmNvZGluZ05hbWUsICJn
YjE4MDMwIikpCi0gICAgICAgIHJlc3VsdFN0cmluZy5yZXBsYWNlKDB4RTVFNSwgaWRlb2dyYXBo
aWNTcGFjZSk7Ci0KLSAgICByZXR1cm4gcmVzdWx0U3RyaW5nOworICAgICAgICByZXR1cm4gKnJl
c3VsdFN0cmluZzsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogLy8gV2UgbmVlZCB0byBhcHBs
eSB0aGVzZSBmYWxsYmFja3Mgb3Vyc2VsdmVzIGFzIHRoZXkgYXJlIG5vdCBjdXJyZW50bHkgc3Vw
cG9ydGVkIGJ5IElDVSBhbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvVGV4dENvZGVjVXNlckRlZmluZWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9UZXh0Q29kZWNVc2VyRGVmaW5lZC5jcHAKaW5kZXggMjk2YzQ2OS4uY2I3MGU0OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVc2VyRGVmaW5lZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVc2VyRGVmaW5l
ZC5jcHAKQEAgLTUzLDcgKzUzLDkgQEAgU3RyaW5nIFRleHRDb2RlY1VzZXJEZWZpbmVkOjpkZWNv
ZGUoY29uc3QgY2hhciogYnl0ZXMsIHNpemVfdCBsZW5ndGgsIGJvb2wsIGJvb2wKICAgICAgICAg
c2lnbmVkIGNoYXIgYyA9IGJ5dGVzW2ldOwogICAgICAgICByZXN1bHQuYXBwZW5kKHN0YXRpY19j
YXN0PFVDaGFyPihjICYgMHhGN0ZGKSk7CiAgICAgfQotICAgIHJldHVybiByZXN1bHQudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFZlY3Rvcjx1aW50OF90
PiBlbmNvZGVDb21wbGV4VXNlckRlZmluZWQoU3RyaW5nVmlldyBzdHJpbmcsIFVuZW5jb2RhYmxl
SGFuZGxpbmcgaGFuZGxpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RP
TU1pbWVUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5cGUuY3BwCmlu
ZGV4IDFiMmQ3NTIuLjJmZTU4NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMv
RE9NTWltZVR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5cGUu
Y3BwCkBAIC01Nyw3ICs1Nyw5IEBAIFN0cmluZyBET01NaW1lVHlwZTo6c3VmZml4ZXMoKSBjb25z
dAogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJywnKTsKICAgICAgICAgYnVpbGRlci5hcHBl
bmQoZXh0ZW5zaW9uc1tpXSk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgRE9NTWltZVR5cGU6OmRlc2Ny
aXB0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmlu
ZGV4IGZhMGU1N2EuLmJhOWNkNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcApAQCAtNDI4LDcgKzQyOCw5IEBAIFN0cmluZyBSZW5kZXJMYXllcjo6bmFtZSgpIGNv
bnN0CiAgICAgaWYgKGlzUmVmbGVjdGlvbigpKQogICAgICAgICBuYW1lLmFwcGVuZExpdGVyYWwo
IiAocmVmbGVjdGlvbikiKTsKIAotICAgIHJldHVybiBuYW1lLnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gbmFtZS50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBSZW5kZXJMYXllckNvbXBvc2l0b3ImIFJlbmRlckxheWVyOjpj
b21wb3NpdG9yKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggMWM0MDQ3ZC4uNTczMzBlOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTg2
Myw3ICs4NjMsMTAgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmxvZ0xheWVySW5mbyhj
b25zdCBSZW5kZXJMYXllciYgbGF5ZXIsIGludCBkZXB0aCkKIAogICAgIGxvZ1N0cmluZy5hcHBl
bmQobGF5ZXIubmFtZSgpKTsKIAotICAgIExPRyhDb21wb3NpdGluZywgIiVzIiwgbG9nU3RyaW5n
LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbG9nU3Ry
aW5nLnRvU3RyaW5nKCkpCisgICAgICAgIExPRyhDb21wb3NpdGluZywgIiVzIiwgc3RyaW5nLT51
dGY4KCkuZGF0YSgpKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCmluZGV4IDkw
NGY5OTQuLjU3YjAwMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaXN0TWFya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlz
dE1hcmtlci5jcHAKQEAgLTExMTcsNyArMTExNyw5IEBAIFN0cmluZyBsaXN0TWFya2VyVGV4dChF
TGlzdFN0eWxlVHlwZSB0eXBlLCBpbnQgdmFsdWUpCiAgICAgICAgICAgICBicmVhazsKICAgICB9
CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogUmVuZGVyTGlzdE1hcmtlcjo6UmVuZGVyTGlzdE1hcmtlcihSZW5kZXJMaXN0SXRl
bSYgbGlzdEl0ZW0sIFJlbmRlclN0eWxlJiYgc3R5bGUpCkBAIC0xMzYzLDcgKzEzNjUsMTAgQEAg
dm9pZCBSZW5kZXJMaXN0TWFya2VyOjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3Qg
TGF5b3V0UG9pbnQmIHBhaW50T2Zmc2UKICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHN1
ZmZpeCk7CiAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChzcGFjZSk7CiAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICB0b0RyYXcgPSBidWZmZXIudG9TdHJpbmcoKTsKKyAgICAgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1ZmZlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHRv
RHJhdyA9ICpzdHJpbmc7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0go
KTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmIChzdHlsZSgpLmlzTGVmdFRvUmln
aHREaXJlY3Rpb24oKSkKICAgICAgICAgICAgICAgICB0b0RyYXcgPSBtX3RleHQgKyBTdHJpbmco
JnN1ZmZpeCwgMSkgKyBTdHJpbmcoJnNwYWNlLCAxKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0LmNwcAppbmRleCA4ZmE1MWUyLi4xMDUyMGZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHQuY3BwCkBAIC0xODEsNyArMTgxLDkgQEAgU3RyaW5nIGNhcGl0YWxp
emUoY29uc3QgU3RyaW5nJiBzdHJpbmcsIFVDaGFyIHByZXZpb3VzQ2hhcmFjdGVyKQogICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZChzdHJpbmdJbXBsW2kgLSAxXSk7CiAgICAgfQogCi0gICAgcmV0
dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBpbmxp
bmUgUmVuZGVyVGV4dDo6UmVuZGVyVGV4dChOb2RlJiBub2RlLCBjb25zdCBTdHJpbmcmIHRleHQp
CkBAIC03NTYsMTYgKzc1OCwxOSBAQCBzdGF0aWMgZmxvYXQgbWF4V29yZEZyYWdtZW50V2lkdGgo
UmVuZGVyVGV4dCYgcmVuZGVyZXIsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZQogICAgICAgICBm
cmFnbWVudFdpdGhIeXBoZW4uYXBwZW5kKHdvcmQuc3Vic3RyaW5nKHN1ZmZpeFN0YXJ0LCBmcmFn
bWVudExlbmd0aCkpOwogICAgICAgICBmcmFnbWVudFdpdGhIeXBoZW4uYXBwZW5kKHN0eWxlLmh5
cGhlblN0cmluZygpKTsKIAotICAgICAgICBUZXh0UnVuIHJ1biA9IFJlbmRlckJsb2NrOjpjb25z
dHJ1Y3RUZXh0UnVuKGZyYWdtZW50V2l0aEh5cGhlbi50b1N0cmluZygpLCBzdHlsZSk7Ci0gICAg
ICAgIHJ1bi5zZXRDaGFyYWN0ZXJTY2FuRm9yQ29kZVBhdGgoIXJlbmRlcmVyLmNhblVzZVNpbXBs
ZUZvbnRDb2RlUGF0aCgpKTsKLSAgICAgICAgZmxvYXQgZnJhZ21lbnRXaWR0aCA9IGZvbnQud2lk
dGgocnVuLCAmZmFsbGJhY2tGb250cywgJmdseXBoT3ZlcmZsb3cpOworICAgICAgICBpZiAoYXV0
byBzdHJpbmcgPSBmcmFnbWVudFdpdGhIeXBoZW4udG9TdHJpbmcoKSkgeworICAgICAgICAgICAg
VGV4dFJ1biBydW4gPSBSZW5kZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1bigqc3RyaW5nLCBzdHls
ZSk7CisgICAgICAgICAgICBydW4uc2V0Q2hhcmFjdGVyU2NhbkZvckNvZGVQYXRoKCFyZW5kZXJl
ci5jYW5Vc2VTaW1wbGVGb250Q29kZVBhdGgoKSk7CisgICAgICAgICAgICBmbG9hdCBmcmFnbWVu
dFdpZHRoID0gZm9udC53aWR0aChydW4sICZmYWxsYmFja0ZvbnRzLCAmZ2x5cGhPdmVyZmxvdyk7
CiAKLSAgICAgICAgLy8gTmFycm93IHByZWZpeGVzIGFyZSBpZ25vcmVkLiBTZWUgdHJ5SHlwaGVu
YXRpbmcgaW4gUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcC4KLSAgICAgICAgaWYgKGZyYWdtZW50
V2lkdGggPD0gbWluaW11bUZyYWdtZW50V2lkdGhUb0NvbnNpZGVyKQotICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgICAgICAvLyBOYXJyb3cgcHJlZml4ZXMgYXJlIGlnbm9yZWQuIFNlZSB0
cnlIeXBoZW5hdGluZyBpbiBSZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwLgorICAgICAgICAgICAg
aWYgKGZyYWdtZW50V2lkdGggPD0gbWluaW11bUZyYWdtZW50V2lkdGhUb0NvbnNpZGVyKQorICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIHN1ZmZpeFN0YXJ0ICs9IGZyYWdtZW50
TGVuZ3RoOwotICAgICAgICBtYXhGcmFnbWVudFdpZHRoID0gc3RkOjptYXgobWF4RnJhZ21lbnRX
aWR0aCwgZnJhZ21lbnRXaWR0aCk7CisgICAgICAgICAgICBzdWZmaXhTdGFydCArPSBmcmFnbWVu
dExlbmd0aDsKKyAgICAgICAgICAgIG1heEZyYWdtZW50V2lkdGggPSBzdGQ6Om1heChtYXhGcmFn
bWVudFdpZHRoLCBmcmFnbWVudFdpZHRoKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBD
UkFTSCgpOwogICAgIH0KIAogICAgIHJldHVybiBtYXhGcmFnbWVudFdpZHRoOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCmluZGV4IDU1Y2RiNGIuLjg1
Yzc4ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNU
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5j
cHAKQEAgLTE3MCw3ICsxNzAsOSBAQCBTdHJpbmcgcXVvdGVBbmRFc2NhcGVOb25QcmludGFibGVz
KFN0cmluZ1ZpZXcgcykKICAgICAgICAgfQogICAgIH0KICAgICByZXN1bHQuYXBwZW5kKCciJyk7
Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJl
c3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiB2b2lkIFJlbmRlclRyZWVBc1RleHQ6OndyaXRlUmVuZGVyT2JqZWN0KFRleHRTdHJlYW0m
IHRzLCBjb25zdCBSZW5kZXJPYmplY3QmIG8sIFJlbmRlckFzVGV4dEJlaGF2aW9yIGJlaGF2aW9y
KQpAQCAtODA3LDcgKzgwOSw5IEBAIHN0YXRpYyBTdHJpbmcgbm9kZVBvc2l0aW9uKE5vZGUqIG5v
ZGUpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiZG9jdW1lbnQiKTsKICAgICB9
CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
cmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIHN0YXRpYyB2b2lkIHdyaXRlU2VsZWN0aW9uKFRleHRTdHJlYW0mIHRzLCBjb25zdCBS
ZW5kZXJCb3gmIHJlbmRlcmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuY3BwCmluZGV4IDg5YmIwNDAuLjhjNzg0ZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVu
Y2VkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhN
TEZlbmNlZC5jcHAKQEAgLTcxLDcgKzcxLDEwIEBAIHZvaWQgUmVuZGVyTWF0aE1MRmVuY2VkOjp1
cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgICAgICAgICBpZiAoIWlzU3BhY2VPck5ld2xpbmUoc2Vw
YXJhdG9yc1tpXSkpCiAgICAgICAgICAgICAgICAgY2hhcmFjdGVycy5hcHBlbmQoc2VwYXJhdG9y
c1tpXSk7CiAgICAgICAgIH0KLSAgICAgICAgbV9zZXBhcmF0b3JzID0gIWNoYXJhY3RlcnMubGVu
Z3RoKCkgPyAwIDogY2hhcmFjdGVycy50b1N0cmluZygpLmltcGwoKTsKKyAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gY2hhcmFjdGVycy50b1N0cmluZygpKQorICAgICAgICAgICAgbV9zZXBhcmF0
b3JzID0gIWNoYXJhY3RlcnMubGVuZ3RoKCkgPyAwIDogc3RyaW5nLT5pbXBsKCk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gVGhl
IHNlcGFyYXRvciBkZWZhdWx0cyB0byBhIHNpbmdsZSBjb21tYS4KICAgICAgICAgbV9zZXBhcmF0
b3JzID0gU3RyaW5nSW1wbDo6Y3JlYXRlKCIsIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNYXRoTUwuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTWF0aE1MLmNwcApp
bmRleCA1Y2I0NzhiLi4yMGQyNTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNYXRoTUwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlck1hdGhNTC5jcHAKQEAgLTkw
LDcgKzkwLDEwIEBAIHZvaWQgUmVuZGVyVHJlZUJ1aWxkZXI6Ok1hdGhNTDo6YXR0YWNoKFJlbmRl
ck1hdGhNTEZlbmNlZCYgcGFyZW50LCBSZW5kZXJQdHI8UmVuCiAKICAgICAgICAgICAgIFN0cmlu
Z0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5k
KHNlcGFyYXRvcik7Ci0gICAgICAgICAgICBzZXBhcmF0b3JSZW5kZXJlciA9IGNyZWF0ZU1hdGhN
TE9wZXJhdG9yKHBhcmVudCwgc3RyaW5nQnVpbGRlci50b1N0cmluZygpLCBNYXRoTUxPcGVyYXRv
ckRpY3Rpb25hcnk6OkluZml4LCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OlNlcGFyYXRvcik7
CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgICAgICAgICAgc2VwYXJhdG9yUmVuZGVyZXIgPSBjcmVhdGVNYXRoTUxPcGVyYXRv
cihwYXJlbnQsICpzdHJpbmcsIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6SW5maXgsIE1hdGhN
TE9wZXJhdG9yRGljdGlvbmFyeTo6U2VwYXJhdG9yKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5jcHAKaW5kZXggYmEyMDY0OC4uMjBlYTNlMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmNwcApAQCAtNjMsNyArNjMsOSBA
QCBTdHJpbmcgU1ZHTGVuZ3RoTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZygpIGNvbnN0CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKGF0KGkpLnZhbHVlQXNTdHJpbmcoKSk7CiAgICAgfQogCi0gICAg
cmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmNwcAppbmRleCA2ZGZk
OTkzLi44NzViZTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlz
dFZhbHVlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMu
Y3BwCkBAIC01NSw3ICs1NSw5IEBAIFN0cmluZyBTVkdOdW1iZXJMaXN0VmFsdWVzOjp2YWx1ZUFz
U3RyaW5nKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoYXQoaSkpOwogICAg
IH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFN0cmlu
Z0J1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTdHJpbmdCdWlsZGVyLmNw
cAppbmRleCAxMDUzOTFjLi45YzU3N2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0aFN0cmluZ0J1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRo
U3RyaW5nQnVpbGRlci5jcHAKQEAgLTM3LDcgKzM3LDkgQEAgU3RyaW5nIFNWR1BhdGhTdHJpbmdC
dWlsZGVyOjpyZXN1bHQoKQogCiAgICAgLy8gUmVtb3ZlIHRyYWlsaW5nIHNwYWNlLgogICAgIG1f
c3RyaW5nQnVpbGRlci5yZXNpemUoc2l6ZSAtIDEpOwotICAgIHJldHVybiBtX3N0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtX3N0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9p
ZCBTVkdQYXRoU3RyaW5nQnVpbGRlcjo6aW5jcmVtZW50UGF0aFNlZ21lbnRDb3VudCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAKaW5kZXggY2Y5ZjAxNC4uY2M1NDMwNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcApAQCAtMTAxLDcgKzEwMSw5
IEBAIFN0cmluZyBidWlsZFN0cmluZ0Zyb21QYXRoKGNvbnN0IFBhdGgmIHBhdGgpCiAgICAgICAg
IH0pOwogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBib29sIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0
aFNlZ0xpc3RWYWx1ZXMoY29uc3QgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmIGxpc3QsIFNWR1BhdGhC
eXRlU3RyZWFtJiByZXN1bHQsIFBhdGhQYXJzaW5nTW9kZSBwYXJzaW5nTW9kZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1ZXMuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHAKaW5kZXggZDgxZTZhMi4uZDhiZGVlNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHAKQEAgLTQxLDcgKzQx
LDkgQEAgU3RyaW5nIFNWR1BvaW50TGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZygpIGNvbnN0CiAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHBvaW50LnkoKSk7CiAgICAgfQogCi0gICAgcmV0
dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmNwcAppbmRleCAzZmY4OThh
Li44YzYxZjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdFZh
bHVlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuY3Bw
CkBAIC03Myw3ICs3Myw5IEBAIFN0cmluZyBTVkdTdHJpbmdMaXN0VmFsdWVzOjp2YWx1ZUFzU3Ry
aW5nKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoYXQoaSkpOwogICAgIH0KIAotICAg
IHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVl
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAKaW5k
ZXggMjViM2MzMS4uNmI0MmQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Ry
YW5zZm9ybUxpc3RWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zv
cm1MaXN0VmFsdWVzLmNwcApAQCAtNjgsNyArNjgsOSBAQCBTdHJpbmcgU1ZHVHJhbnNmb3JtTGlz
dFZhbHVlczo6dmFsdWVBc1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGF0
KGkpLnZhbHVlQXNTdHJpbmcoKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgU1ZHVHJhbnNmb3JtTGlz
dFZhbHVlczo6cGFyc2UoY29uc3QgU3RyaW5nJiB0cmFuc2Zvcm0pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RyYW5zZm9ybVZhbHVlLmNwcAppbmRleCA2M2Q0NWE1Li5lYTE0NjNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5jcHAKQEAgLTE3OSw3ICsxNzksOSBAQCBTdHJp
bmcgU1ZHVHJhbnNmb3JtVmFsdWU6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogICAgICAgICBidWls
ZGVyLmFwcGVuZCgnICcpOwogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX21hdHJpeC5m
KCkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnKScpOwotICAgICAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9
CiAgICAgY2FzZSBTVkdfVFJBTlNGT1JNX1RSQU5TTEFURTogewogICAgICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7CkBAIC0xODgsNyArMTkwLDkgQEAgU3RyaW5nIFNWR1RyYW5zZm9ybVZhbHVl
Ojp2YWx1ZUFzU3RyaW5nKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAg
ICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV9tYXRyaXguZigpKTsKICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoJyknKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIGNhc2UgU1ZHX1RSQU5T
Rk9STV9TQ0FMRTogewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CkBAIC0xOTcsNyAr
MjAxLDkgQEAgU3RyaW5nIFNWR1RyYW5zZm9ybVZhbHVlOjp2YWx1ZUFzU3RyaW5nKCkgY29uc3QK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1i
ZXIobV9tYXRyaXgueVNjYWxlKCkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnKScpOwotICAg
ICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAg
ICAgQ1JBU0goKTsKICAgICB9CiAgICAgY2FzZSBTVkdfVFJBTlNGT1JNX1JPVEFURTogewogICAg
ICAgICBkb3VibGUgYW5nbGVJblJhZCA9IGRlZzJyYWQobV9hbmdsZSk7CkBAIC0yMTUsNyArMjIx
LDkgQEAgU3RyaW5nIFNWR1RyYW5zZm9ybVZhbHVlOjp2YWx1ZUFzU3RyaW5nKCkgY29uc3QKICAg
ICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGN5KTsKICAgICAgICAgfQogICAgICAgICBi
dWlsZGVyLmFwcGVuZCgnKScpOwotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwor
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgY2FzZSBTVkdf
VFJBTlNGT1JNX1NLRVdYOgogICAgIGNhc2UgU1ZHX1RSQU5TRk9STV9TS0VXWTogewpAQCAtMjIz
LDcgKzIzMSw5IEBAIFN0cmluZyBTVkdUcmFuc2Zvcm1WYWx1ZTo6dmFsdWVBc1N0cmluZygpIGNv
bnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHByZWZpeCk7CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kTnVtYmVyKG1fYW5nbGUpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnKScpOwotICAgICAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAg
Q1JBU0goKTsKICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaAppbmRleCBhMjMyN2U2Li44MDBhYmQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmgKQEAg
LTE0Myw3ICsxNDMsOSBAQCBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRQb2ludD4gewog
ICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLngoKSk7CiAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCcgJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUueSgpKTsKLSAg
ICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
ICAgIENSQVNIKCk7CiAgICAgfQogfTsKIApAQCAtMTc0LDcgKzE3Niw5IEBAIHN0cnVjdCBTVkdQ
cm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+IHsKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIo
dHlwZS53aWR0aCgpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICAgICAgYnVp
bGRlci5hcHBlbmROdW1iZXIodHlwZS5oZWlnaHQoKSk7Ci0gICAgICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0K
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA4MWE0MDA5Li4wYzI0
MDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xNTQwLDcgKzE1NDAs
OSBAQCBFeGNlcHRpb25PcjxTdHJpbmc+IEludGVybmFsczo6ZHVtcE1hcmtlclJlY3RzKGNvbnN0
IFN0cmluZyYgbWFya2VyVHlwZVN0cmluZykKICAgICAgICAgcmVjdFN0cmluZy5hcHBlbmROdW1i
ZXIocmVjdC5oZWlnaHQoKSk7CiAgICAgICAgIHJlY3RTdHJpbmcuYXBwZW5kTGl0ZXJhbCgiKSAi
KTsKICAgICB9Ci0gICAgcmV0dXJuIHJlY3RTdHJpbmcudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSByZWN0U3RyaW5nLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBXVEZNb3Zl
KCpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW50ZXJuYWxzOjphZGRUZXh0TWF0
Y2hNYXJrZXIoY29uc3QgUmFuZ2UmIHJhbmdlLCBib29sIGlzQWN0aXZlKQpAQCAtMjA3OSw3ICsy
MDgxLDkgQEAgU3RyaW5nIEludGVybmFsczo6cGFyc2VyTWV0YURhdGEoSlNDOjpKU1ZhbHVlIGNv
ZGUpCiAgICAgcmVzdWx0LmFwcGVuZE51bWJlcihlbmRDb2x1bW4pOwogICAgIHJlc3VsdC5hcHBl
bmRMaXRlcmFsKCIgfSIpOwogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIEludGVybmFsczo6dXBkYXRlRWRpdG9yVUlOb3dJ
ZlNjaGVkdWxlZCgpCkBAIC0zMDcxLDcgKzMwNzUsOSBAQCBFeGNlcHRpb25PcjxTdHJpbmc+IElu
dGVybmFsczo6Z2V0Q3VycmVudEN1cnNvckluZm8oKQogICAgICAgICByZXN1bHQuYXBwZW5kKG51
bWJlclRvRml4ZWRQcmVjaXNpb25TdHJpbmcoY3Vyc29yLmltYWdlU2NhbGVGYWN0b3IoKSwgOCwg
YnVmZmVyLCB0cnVlKSk7CiAgICAgfQogI2VuZGlmCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gV1RGTW92ZSgqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogI2Vsc2UKICAgICByZXR1cm4g
U3RyaW5nIHsgIkZBSUw6IEN1cnNvciBkZXRhaWxzIG5vdCBhdmFpbGFibGUgb24gdGhpcyBwbGF0
Zm9ybS4iIH07CiAjZW5kaWYKQEAgLTM1MTQsNyArMzUyMCw5IEBAIEV4Y2VwdGlvbk9yPFN0cmlu
Zz4gSW50ZXJuYWxzOjptZWRpYVNlc3Npb25SZXN0cmljdGlvbnMoY29uc3QgU3RyaW5nJiBtZWRp
YVR5cGVTCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnLCcpOwogICAgICAgICBidWlsZGVy
LmFwcGVuZCgiaW50ZXJydXB0ZWRwbGF5YmFja25vdHBlcm1pdHRlZCIpOwogICAgIH0KLSAgICBy
ZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIFdURk1vdmUoKnN0cmluZyk7CisgICAgQ1JBU0go
KTsKIH0KIAogdm9pZCBJbnRlcm5hbHM6OnNldE1lZGlhRWxlbWVudFJlc3RyaWN0aW9ucyhIVE1M
TWVkaWFFbGVtZW50JiBlbGVtZW50LCBTdHJpbmdWaWV3IHJlc3RyaWN0aW9uc1N0cmluZykKQEAg
LTM3NTUsNDggKzM3NjMsNTAgQEAgU3RyaW5nIEludGVybmFsczo6cGFnZU1lZGlhU3RhdGUoKQog
ICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIAogICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSA9IGRvY3VtZW50LT5wYWdlKCktPm1lZGlhU3RhdGUo
KTsKLSAgICBTdHJpbmdCdWlsZGVyIHN0cmluZzsKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7
CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5nQXVkaW8pCi0gICAgICAg
IHN0cmluZy5hcHBlbmQoIklzUGxheWluZ0F1ZGlvLCIpOworICAgICAgICBidWlsZGVyLmFwcGVu
ZCgiSXNQbGF5aW5nQXVkaW8sIik7CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SXNQ
bGF5aW5nVmlkZW8pCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIklzUGxheWluZ1ZpZGVvLCIpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZCgiSXNQbGF5aW5nVmlkZW8sIik7CiAgICAgaWYgKHN0YXRl
ICYgTWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSkKLSAgICAgICAgc3Ry
aW5nLmFwcGVuZCgiSXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSwiKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQoIklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UsIik7CiAgICAgaWYgKHN0YXRlICYg
TWVkaWFQcm9kdWNlcjo6UmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcpCi0gICAgICAg
IHN0cmluZy5hcHBlbmQoIlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nLCIpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZCgiUmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcsIik7
CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNh
bmRpZGF0ZSkKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiRXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNh
bmRpZGF0ZSwiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIkV4dGVybmFsRGV2aWNlQXV0b1Bs
YXlDYW5kaWRhdGUsIik7CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6RGlkUGxheVRv
RW5kKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJEaWRQbGF5VG9FbmQsIik7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCJEaWRQbGF5VG9FbmQsIik7CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9k
dWNlcjo6SXNTb3VyY2VFbGVtZW50UGxheWluZykKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNT
b3VyY2VFbGVtZW50UGxheWluZywiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIklzU291cmNl
RWxlbWVudFBsYXlpbmcsIik7CiAKICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpJc05l
eHRUcmFja0NvbnRyb2xFbmFibGVkKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc05leHRUcmFj
a0NvbnRyb2xFbmFibGVkLCIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiSXNOZXh0VHJhY2tD
b250cm9sRW5hYmxlZCwiKTsKICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpJc1ByZXZp
b3VzVHJhY2tDb250cm9sRW5hYmxlZCkKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNQcmV2aW91
c1RyYWNrQ29udHJvbEVuYWJsZWQsIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJJc1ByZXZp
b3VzVHJhY2tDb250cm9sRW5hYmxlZCwiKTsKIAogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVj
ZXI6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpCi0gICAgICAgIHN0cmlu
Zy5hcHBlbmQoIkhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIsIik7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCJIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVy
LCIpOwogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6Okhhc0F1ZGlvT3JWaWRlbykKLSAg
ICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzQXVkaW9PclZpZGVvLCIpOworICAgICAgICBidWlsZGVy
LmFwcGVuZCgiSGFzQXVkaW9PclZpZGVvLCIpOwogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVj
ZXI6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgi
SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlLCIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgi
SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlLCIpOwogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJv
ZHVjZXI6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSkKLSAgICAgICAgc3RyaW5nLmFwcGVu
ZCgiSGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlLCIpOworICAgICAgICBidWlsZGVyLmFwcGVu
ZCgiSGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlLCIpOwogICAgIGlmIChzdGF0ZSAmIE1lZGlh
UHJvZHVjZXI6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQotICAgICAgICBzdHJpbmcuYXBw
ZW5kKCJIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSwiKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQoIkhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlLCIpOwogICAgIGlmIChzdGF0ZSAmIE1lZGlh
UHJvZHVjZXI6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlKQotICAgICAgICBzdHJpbmcuYXBw
ZW5kKCJIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSwiKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQoIkhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlLCIpOwogICAgIGlmIChzdGF0ZSAmIE1lZGlh
UHJvZHVjZXI6Okhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCkKLSAgICAgICAgc3Ry
aW5nLmFwcGVuZCgiSGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50LCIpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZCgiSGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50LCIpOwog
Ci0gICAgaWYgKHN0cmluZy5pc0VtcHR5KCkpCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIklzTm90
UGxheWluZyIpOworICAgIGlmIChidWlsZGVyLmlzRW1wdHkoKSkKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQoIklzTm90UGxheWluZyIpOwogICAgIGVsc2UKLSAgICAgICAgc3RyaW5nLnJlc2l6ZShz
dHJpbmcubGVuZ3RoKCkgLSAxKTsKKyAgICAgICAgYnVpbGRlci5yZXNpemUoYnVpbGRlci5sZW5n
dGgoKSAtIDEpOwogCi0gICAgcmV0dXJuIHN0cmluZy50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbnRlcm5hbHM6OnNldFBhZ2VEZWZlcnNMb2FkaW5nKGJv
b2wgZGVmZXJzTG9hZGluZykKQEAgLTM5MTgsNyArMzkyOCw5IEBAIEV4Y2VwdGlvbk9yPFN0cmlu
Zz4gSW50ZXJuYWxzOjpzY3JvbGxTbmFwT2Zmc2V0cyhFbGVtZW50JiBlbGVtZW50KQogICAgICAg
ICB9CiAgICAgfQogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gV1RGTW92ZSgqc3Ry
aW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcAppbmRleCBlNWE2Y2ZlLi5mNGEzY2U3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3Bw
CkBAIC05OCw3ICs5OCwxMCBAQCB2b2lkIE1vY2tQYWdlT3ZlcmxheUNsaWVudDo6ZHJhd1JlY3Qo
UGFnZU92ZXJsYXkmIG92ZXJsYXksIEdyYXBoaWNzQ29udGV4dCYgY29udAogICAgIG1lc3NhZ2Uu
YXBwZW5kTGl0ZXJhbCgiLCAiKTsKICAgICBtZXNzYWdlLmFwcGVuZE51bWJlcihkaXJ0eVJlY3Qu
aGVpZ2h0KCkpOwogICAgIG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiKSIpOwotICAgIG92ZXJsYXku
cGFnZSgpLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlOjpPdGhlciwgTWVzc2FnZUxldmVsOjpEZWJ1ZywgbWVzc2FnZS50b1N0cmluZygpKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBtZXNzYWdlLnRvU3RyaW5nKCkpCisgICAgICAgIG92ZXJs
YXkucGFnZSgpLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNz
YWdlU291cmNlOjpPdGhlciwgTWVzc2FnZUxldmVsOjpEZWJ1ZywgKnN0cmluZyk7CisgICAgZWxz
ZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0
ZVNhdmVyKGNvbnRleHQpOwogCkBAIC0xMjMsNyArMTI2LDEwIEBAIGJvb2wgTW9ja1BhZ2VPdmVy
bGF5Q2xpZW50Ojptb3VzZUV2ZW50KFBhZ2VPdmVybGF5JiBvdmVybGF5LCBjb25zdCBQbGF0Zm9y
bU1vdXNlCiAgICAgbWVzc2FnZS5hcHBlbmRMaXRlcmFsKCIsICIpOwogICAgIG1lc3NhZ2UuYXBw
ZW5kTnVtYmVyKGV2ZW50LnBvc2l0aW9uKCkueSgpKTsKICAgICBtZXNzYWdlLmFwcGVuZExpdGVy
YWwoIikiKTsKLSAgICBvdmVybGF5LnBhZ2UoKS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKS0+YWRk
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6RGVidWcs
IG1lc3NhZ2UudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWVzc2FnZS50b1N0
cmluZygpKQorICAgICAgICBvdmVybGF5LnBhZ2UoKS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKS0+
YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6RGVi
dWcsICpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIHJldHVybiBm
YWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNw
cAppbmRleCA1YjM0MGZmLi40NGU0ZTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJTY3JpcHRMb2FkZXIuY3BwCkBAIC0yMDIsNyArMjAyLDkgQEAgdm9pZCBXb3JrZXJTY3Jp
cHRMb2FkZXI6Om5vdGlmeUVycm9yKCkKIAogU3RyaW5nIFdvcmtlclNjcmlwdExvYWRlcjo6c2Ny
aXB0KCkKIHsKLSAgICByZXR1cm4gbV9zY3JpcHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBtX3NjcmlwdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiB2b2lkIFdvcmtlclNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEVycm9ycy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS94bWwvWE1MRXJyb3JzLmNwcAppbmRleCBiMTQzMmQxLi4xNTMxOWY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MRXJyb3JzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS94bWwvWE1MRXJyb3JzLmNwcApAQCAtMTQ4LDggKzE0OCwxMSBAQCB2b2lkIFhNTEVycm9yczo6
aW5zZXJ0RXJyb3JNZXNzYWdlQmxvY2soKQogICAgICAgICBkb2N1bWVudEVsZW1lbnQgPSBXVEZN
b3ZlKGJvZHkpOwogICAgIH0KIAotICAgIFN0cmluZyBlcnJvck1lc3NhZ2VzID0gbV9lcnJvck1l
c3NhZ2VzLnRvU3RyaW5nKCk7Ci0gICAgYXV0byByZXBvcnRFbGVtZW50ID0gY3JlYXRlWEhUTUxQ
YXJzZXJFcnJvckhlYWRlcihtX2RvY3VtZW50LCBlcnJvck1lc3NhZ2VzKTsKKyAgICBhdXRvIHJl
cG9ydEVsZW1lbnQgPSBjcmVhdGVYSFRNTFBhcnNlckVycm9ySGVhZGVyKG1fZG9jdW1lbnQsIFsm
XSAoKSB7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IG1fZXJyb3JNZXNzYWdlcy50b1N0cmlu
ZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CisgICAg
fSgpKTsKIAogI2lmIEVOQUJMRShYU0xUKQogICAgIGlmIChtX2RvY3VtZW50LnRyYW5zZm9ybVNv
dXJjZURvY3VtZW50KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4
IDE5ZTVhZTQuLjc2YjlmZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApA
QCAtMTk1LDcgKzE5NSwxMCBAQCBFeGNlcHRpb25PcjxEb2N1bWVudCo+IFhNTEh0dHBSZXF1ZXN0
OjpyZXNwb25zZVhNTCgpCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbV9yZXNw
b25zZURvY3VtZW50ID0gWE1MRG9jdW1lbnQ6OmNyZWF0ZSgwLCBtX3VybCk7CiAgICAgICAgICAg
ICAvLyBGSVhNRTogU2V0IExhc3QtTW9kaWZpZWQuCi0gICAgICAgICAgICBtX3Jlc3BvbnNlRG9j
dW1lbnQtPnNldENvbnRlbnQobV9yZXNwb25zZUJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFj
aXR5KCkpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gbV9yZXNwb25zZUJ1aWxkZXIu
dG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpCisgICAgICAgICAgICAgICAgbV9yZXNwb25zZURv
Y3VtZW50LT5zZXRDb250ZW50KCpzdHJpbmcpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQtPnNldENvbnRl
eHREb2N1bWVudChkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkp
OwogICAgICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50LT5zZXRTZWN1cml0eU9yaWdpblBvbGlj
eShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luUG9saWN5KCkpOwogICAg
ICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50LT5vdmVycmlkZU1JTUVUeXBlKG1pbWVUeXBlKTsK
QEAgLTgxNywxNCArODIwLDIwIEBAIFN0cmluZyBYTUxIdHRwUmVxdWVzdDo6Z2V0QWxsUmVzcG9u
c2VIZWFkZXJzKCkgY29uc3QKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiOiAiKTsKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGhlYWRlci52YWx1ZSk7
CiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIlxyXG4iKTsKLSAgICAg
ICAgICAgIGhlYWRlcnMudW5jaGVja2VkQXBwZW5kKHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7
CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgICAgICAgICAgaGVhZGVycy51bmNoZWNrZWRBcHBlbmQoKnN0cmluZyk7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgICAg
ICBzdGQ6OnNvcnQoaGVhZGVycy5iZWdpbigpLCBoZWFkZXJzLmVuZCgpLCBXVEY6OmNvZGVQb2lu
dENvbXBhcmVMZXNzVGhhbik7CiAKICAgICAgICAgU3RyaW5nQnVpbGRlciBzdHJpbmdCdWlsZGVy
OwogICAgICAgICBmb3IgKGF1dG8mIGhlYWRlciA6IGhlYWRlcnMpCiAgICAgICAgICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZChoZWFkZXIpOwotICAgICAgICBtX2FsbFJlc3BvbnNlSGVhZGVycyA9
IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgbV9hbGxSZXNwb25zZUhlYWRlcnMg
PSAqc3RyaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAog
ICAgIHJldHVybiBtX2FsbFJlc3BvbnNlSGVhZGVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmgKaW5kZXggMWVlYzE1OC4uNTNiNGY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
eG1sL1hNTEh0dHBSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmgKQEAgLTg3LDcgKzg3LDEyIEBAIHB1YmxpYzoKICAgICBTdHJpbmcgZ2V0QWxsUmVzcG9u
c2VIZWFkZXJzKCkgY29uc3Q7CiAgICAgU3RyaW5nIGdldFJlc3BvbnNlSGVhZGVyKGNvbnN0IFN0
cmluZyYgbmFtZSkgY29uc3Q7CiAgICAgRXhjZXB0aW9uT3I8T3duZWRTdHJpbmc+IHJlc3BvbnNl
VGV4dCgpOwotICAgIFN0cmluZyByZXNwb25zZVRleHRJZ25vcmluZ1Jlc3BvbnNlVHlwZSgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VCdWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgp
OyB9CisgICAgU3RyaW5nIHJlc3BvbnNlVGV4dElnbm9yaW5nUmVzcG9uc2VUeXBlKCkgY29uc3QK
KyAgICB7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IG1fcmVzcG9uc2VCdWlsZGVyLnRvU3Ry
aW5nUHJlc2VydmVDYXBhY2l0eSgpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
ICAgIENSQVNIKCk7CisgICAgfQogICAgIFN0cmluZyByZXNwb25zZU1JTUVUeXBlKCkgY29uc3Q7
CiAKICAgICBEb2N1bWVudCogb3B0aW9uYWxSZXNwb25zZVhNTCgpIGNvbnN0IHsgcmV0dXJuIG1f
cmVzcG9uc2VEb2N1bWVudC5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1s
L1hQYXRoRnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEZ1bmN0aW9ucy5j
cHAKaW5kZXggNzM1MzRhNC4uZjdkY2E5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9YUGF0aEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRnVuY3Rp
b25zLmNwcApAQCAtMzA4LDkgKzMwOCwxMSBAQCBzdGF0aWMgQXRvbWljU3RyaW5nIGF0b21pY1N1
YnN0cmluZyhTdHJpbmdCdWlsZGVyJiBidWlsZGVyLCB1bnNpZ25lZCBzdGFydCwgdW5zaQogewog
ICAgIEFTU0VSVChzdGFydCA8PSBidWlsZGVyLmxlbmd0aCgpKTsKICAgICBBU1NFUlQobGVuZ3Ro
IDw9IGJ1aWxkZXIubGVuZ3RoKCkgLSBzdGFydCk7CisgICAgaWYgKGJ1aWxkZXIuZmFpbGVkKCkp
CisgICAgICAgIENSQVNIKCk7CiAgICAgaWYgKGJ1aWxkZXIuaXM4Qml0KCkpCi0gICAgICAgIHJl
dHVybiBBdG9taWNTdHJpbmcoYnVpbGRlci5jaGFyYWN0ZXJzOCgpICsgc3RhcnQsIGxlbmd0aCk7
Ci0gICAgcmV0dXJuIEF0b21pY1N0cmluZyhidWlsZGVyLmNoYXJhY3RlcnMxNigpICsgc3RhcnQs
IGxlbmd0aCk7CisgICAgICAgIHJldHVybiBBdG9taWNTdHJpbmcoKmJ1aWxkZXIuY2hhcmFjdGVy
czgoKSArIHN0YXJ0LCBsZW5ndGgpOworICAgIHJldHVybiBBdG9taWNTdHJpbmcoKmJ1aWxkZXIu
Y2hhcmFjdGVyczE2KCkgKyBzdGFydCwgbGVuZ3RoKTsKIH0KIAogVmFsdWUgRnVuSWQ6OmV2YWx1
YXRlKCkgY29uc3QKQEAgLTMzNCwxNCArMzM2LDE3IEBAIFZhbHVlIEZ1bklkOjpldmFsdWF0ZSgp
IGNvbnN0CiAgICAgdW5zaWduZWQgc3RhcnRQb3MgPSAwOwogICAgIHVuc2lnbmVkIGxlbmd0aCA9
IGlkTGlzdC5sZW5ndGgoKTsKICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICB3aGlsZSAoc3Rh
cnRQb3MgPCBsZW5ndGggJiYgaXNXaGl0ZXNwYWNlKGlkTGlzdFtzdGFydFBvc10pKQorICAgICAg
ICBpZiAoaWRMaXN0LmZhaWxlZCgpKQorICAgICAgICAgICAgQ1JBU0goKTsKKworICAgICAgICB3
aGlsZSAoc3RhcnRQb3MgPCBsZW5ndGggJiYgaXNXaGl0ZXNwYWNlKCppZExpc3Rbc3RhcnRQb3Nd
KSkKICAgICAgICAgICAgICsrc3RhcnRQb3M7CiAgICAgICAgIAogICAgICAgICBpZiAoc3RhcnRQ
b3MgPT0gbGVuZ3RoKQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgc2l6ZV90IGVuZFBv
cyA9IHN0YXJ0UG9zOwotICAgICAgICB3aGlsZSAoZW5kUG9zIDwgbGVuZ3RoICYmICFpc1doaXRl
c3BhY2UoaWRMaXN0W2VuZFBvc10pKQorICAgICAgICB3aGlsZSAoZW5kUG9zIDwgbGVuZ3RoICYm
ICFpc1doaXRlc3BhY2UoKmlkTGlzdFtlbmRQb3NdKSkKICAgICAgICAgICAgICsrZW5kUG9zOwog
CiAgICAgICAgIC8vIElmIHRoZXJlIGFyZSBzZXZlcmFsIG5vZGVzIHdpdGggdGhlIHNhbWUgaWQs
IGlkKCkgc2hvdWxkIHJldHVybiB0aGUgZmlyc3Qgb25lLgpAQCAtNDM3LDcgKzQ0Miw5IEBAIFZh
bHVlIEZ1bkNvbmNhdDo6ZXZhbHVhdGUoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKHN0
cik7CiAgICAgfQogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBWYWx1ZSBGdW5TdGFydHNXaXRoOjpldmFsdWF0ZSgpIGNvbnN0CkBA
IC01NTYsNyArNTYzLDkgQEAgVmFsdWUgRnVuVHJhbnNsYXRlOjpldmFsdWF0ZSgpIGNvbnN0CiAg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKHMzW2kyXSk7CiAgICAgfQogCi0gICAgcmV0dXJuIHJl
c3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBWYWx1ZSBGdW5C
b29sZWFuOjpldmFsdWF0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwv
WFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNz
b3JMaWJ4c2x0LmNwcAppbmRleCA2NmFkMTVmLi44ZTVlMDVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAKQEAgLTE5NywxMiArMTk3LDE4IEBAIHN0YXRp
YyBib29sIHNhdmVSZXN1bHRUb1N0cmluZyh4bWxEb2NQdHIgcmVzdWx0RG9jLCB4c2x0U3R5bGVz
aGVldFB0ciBzaGVldCwgU3RyCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIFdvcmth
cm91bmQgZm9yIDxodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD00OTU2
Njg+OiBsaWJ4c2x0IGFwcGVuZHMgYW4gZXh0cmEgbGluZSBmZWVkIHRvIHRoZSByZXN1bHQuCi0g
ICAgaWYgKHJlc3VsdEJ1aWxkZXIubGVuZ3RoKCkgPiAwICYmIHJlc3VsdEJ1aWxkZXJbcmVzdWx0
QnVpbGRlci5sZW5ndGgoKSAtIDFdID09ICdcbicpCisgICAgaWYgKHJlc3VsdEJ1aWxkZXIubGVu
Z3RoKCkgPiAwKSB7CisgICAgICAgIGlmIChyZXN1bHRCdWlsZGVyLmZhaWxlZCgpKQorICAgICAg
ICAgICAgQ1JBU0goKTsKKyAgICAgICAgaWYgKCpyZXN1bHRCdWlsZGVyW3Jlc3VsdEJ1aWxkZXIu
bGVuZ3RoKCkgLSAxXSA9PSAnXG4nKQogICAgICAgICByZXN1bHRCdWlsZGVyLnJlc2l6ZShyZXN1
bHRCdWlsZGVyLmxlbmd0aCgpIC0gMSk7CisgICAgfQogCi0gICAgcmVzdWx0U3RyaW5nID0gcmVz
dWx0QnVpbGRlci50b1N0cmluZygpOwotCi0gICAgcmV0dXJuIHRydWU7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gcmVzdWx0QnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIHJlc3VsdFN0cmlu
ZyA9ICpzdHJpbmc7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBDUkFTSCgpOwog
fQogCiBzdGF0aWMgY29uc3QgY2hhcioqIHhzbHRQYXJhbUFycmF5RnJvbVBhcmFtZXRlck1hcChY
U0xUUHJvY2Vzc29yOjpQYXJhbWV0ZXJNYXAmIHBhcmFtZXRlcnMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS94bWwvcGFyc2VyL0NoYXJhY3RlclJlZmVyZW5jZVBhcnNlcklubGluZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VySW5saW5l
cy5oCmluZGV4IDc2ODYyNjguLjY3MmJhZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9wYXJzZXIvQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VySW5saW5lcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9wYXJzZXIvQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VySW5saW5lcy5oCkBAIC0z
Miw3ICszMiwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGlubGluZSB2b2lkIHVuY29uc3Vt
ZUNoYXJhY3RlcnMoU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIFN0cmluZ0J1aWxkZXImIGNvbnN1
bWVkQ2hhcmFjdGVycykKIHsKLSAgICBzb3VyY2UucHVzaEJhY2soY29uc3VtZWRDaGFyYWN0ZXJz
LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGNvbnN1bWVkQ2hhcmFjdGVycy50
b1N0cmluZygpKQorICAgICAgICBzb3VyY2UucHVzaEJhY2soV1RGTW92ZSgqc3RyaW5nKSk7Cisg
ICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgUGFyc2Vy
RnVuY3Rpb25zPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uSG9zdC5jcHAg
Yi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb25Ib3N0LmNwcAppbmRleCBmMTY0OTI5Li5iMWNjY2Iz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb25Ib3N0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViRHJpdmVyL1Nlc3Npb25Ib3N0LmNwcApAQCAtNTUsNyArNTUsMTAgQEAgbG9uZyBTZXNz
aW9uSG9zdDo6c2VuZENvbW1hbmRUb0JhY2tlbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kLCBSZWZQ
dHI8SlNPTjo6T2JqZWMKICAgICAgICAgbWVzc2FnZUJ1aWxkZXIuYXBwZW5kKHBhcmFtZXRlcnMt
PnRvSlNPTlN0cmluZygpKTsKICAgICB9CiAgICAgbWVzc2FnZUJ1aWxkZXIuYXBwZW5kKCd9Jyk7
Ci0gICAgc2VuZE1lc3NhZ2VUb0JhY2tlbmQoc2VxdWVuY2VJRCwgbWVzc2FnZUJ1aWxkZXIudG9T
dHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWVzc2FnZUJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgc2VuZE1lc3NhZ2VUb0JhY2tlbmQoc2VxdWVuY2VJRCwgKnN0cmluZyk7Cisg
ICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgcmV0dXJuIHNlcXVlbmNlSUQ7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDhhMWRkMTcuLjg4Yjk2YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIw
MTgtMDQtMjYgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgorCisgICAgICAgIFN0
cmluZ0J1aWxkZXIgaXMgZmFsbGlibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4NTA0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRlYWNoIFN0cmluZ0J1aWxkZXIgdGhhdCBpdCBpcyBmYWxsaWJsZQor
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpFbmdpbmU6OnJlcHJlc2VudGF0aW9uKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkNhY2hlOjpkdW1wQ29udGVudHNUb0ZpbGUpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUtleS5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6S2V5OjpoYXNoQXNTdHJpbmcpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0NhcHR1cmU6Ok1hbmFnZXI6Omhhc2hUb1BhdGgpOgorICAgICAgICAq
IFNoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCL0lEQlV0aWxpdGllcy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OnVuaXF1ZURhdGFiYXNlSWRlbnRpZmllcik6CisgICAgICAgICogU2hhcmVkL0dhbWVw
YWQvR2FtZXBhZERhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpHYW1lcGFkRGF0YTo6bG9nZ2lu
Z1N0cmluZyBjb25zdCk6CisgICAgICAgICogU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvdW5peC9O
ZXRzY2FwZVBsdWdpbk1vZHVsZVVuaXguY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBs
dWdpbk1vZHVsZTo6YnVpbGRNSU1FRGVzY3JpcHRpb24pOgorICAgICAgICAqIFNoYXJlZC9XZWJN
ZW1vcnlTYW1wbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVtb3J5U2FtcGxlcjo6YXBw
ZW5kQ3VycmVudE1lbW9yeVVzYWdlVG9GaWxlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQ
SVVzZXJTY3JpcHQuY3BwOgorICAgICAgICAoQVBJOjpVc2VyU2NyaXB0OjpnZW5lcmF0ZVVuaXF1
ZVVSTCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVc2VyU3R5bGVTaGVldC5jcHA6Cisg
ICAgICAgIChBUEk6OlVzZXJTdHlsZVNoZWV0OjpnZW5lcmF0ZVVuaXF1ZVVSTCk6CisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6U25hcHNob3RSZW1vdmFsVHJhY2tlcjo6ZXZl
bnRzRGVzY3JpcHRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3Qu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJCYWNrRm9yd2FyZExpc3Q6OmxvZ2dpbmdTdHJpbmcp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NQb29sOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlbW92ZURhdGFSZWNvcmRzKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjp1cGRhdGVDb29raWVQYXJ0aXRpb25p
bmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1l
dHJ5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6c3VibWl0VG9wTGlzdCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6Y2FwaXRhbGl6ZVJGQzgyMkhlYWRlckZpZWxkTmFtZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpidWls
ZEhUVFBIZWFkZXJzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6Y29udGVudHNBc1N0cmluZyBjb25zdCk6CisK
IDIwMTgtMDQtMjUgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAg
ZGxvcGVuIHRoZSBidW5kbGUncyBleGVjdXRhYmxlIGJlZm9yZSBjYWxsaW5nIC1bTlNCdW5kbGUg
bG9hZF0gc2luY2UgdGhhdCB3aWxsIGFsc28gZG8gYSBidW5jaCBvZiBvdGhlciB0aGluZ3Mgd2Ug
ZG9uJ3QgbmVlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwCmluZGV4IDQ1YzQ3YTEuLjhkNzk1ODMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5n
aW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3Rv
cmFnZUVuZ2luZS5jcHAKQEAgLTUyNCw3ICs1MjQsOSBAQCBTdHJpbmcgRW5naW5lOjpyZXByZXNl
bnRhdGlvbigpCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJ9Iik7CiAgICAgfQogICAgIGJ1aWxk
ZXIuYXBwZW5kKCJdfSIpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBDYWNoZVN0b3JhZ2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcApp
bmRleCA3M2EyNWY0Li4wY2E3Zjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCkBAIC01NzAsMTAgKzU3MCwxMyBAQCB2b2lk
IENhY2hlOjpkdW1wQ29udGVudHNUb0ZpbGUoKQogICAgICAgICAgICAgZXBpbG9ndWUuYXBwZW5k
TnVtYmVyKHRvdGFscy5jb3VudCA/IHRvdGFscy53b3J0aCAvIHRvdGFscy5jb3VudCA6IDApOwog
ICAgICAgICAgICAgZXBpbG9ndWUuYXBwZW5kTGl0ZXJhbCgiXG4iKTsKICAgICAgICAgICAgIGVw
aWxvZ3VlLmFwcGVuZExpdGVyYWwoIn1cbn1cbiIpOwotICAgICAgICAgICAgYXV0byB3cml0ZURh
dGEgPSBlcGlsb2d1ZS50b1N0cmluZygpLnV0ZjgoKTsKLSAgICAgICAgICAgIHdyaXRlVG9GaWxl
KGZkLCB3cml0ZURhdGEuZGF0YSgpLCB3cml0ZURhdGEubGVuZ3RoKCkpOwotICAgICAgICAgICAg
Y2xvc2VGaWxlKGZkKTsKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IGVwaWxvZ3VlLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBhdXRvIHdy
aXRlRGF0YSA9IHN0cmluZy0+dXRmOCgpOworICAgICAgICAgICAgICAgIHdyaXRlVG9GaWxlKGZk
LCB3cml0ZURhdGEuZGF0YSgpLCB3cml0ZURhdGEubGVuZ3RoKCkpOworICAgICAgICAgICAgICAg
IGNsb3NlRmlsZShmZCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgICAgICBhdXRvIGVudHJ5ID0gRW50
cnk6OmRlY29kZVN0b3JhZ2VSZWNvcmQoKnJlY29yZCk7CiAgICAgICAgIGlmICghZW50cnkpCkBA
IC01ODUsOCArNTg4LDExIEBAIHZvaWQgQ2FjaGU6OmR1bXBDb250ZW50c1RvRmlsZSgpCiAgICAg
ICAgIFN0cmluZ0J1aWxkZXIganNvbjsKICAgICAgICAgZW50cnktPmFzSlNPTihqc29uLCBpbmZv
KTsKICAgICAgICAganNvbi5hcHBlbmRMaXRlcmFsKCIsXG4iKTsKLSAgICAgICAgYXV0byB3cml0
ZURhdGEgPSBqc29uLnRvU3RyaW5nKCkudXRmOCgpOwotICAgICAgICB3cml0ZVRvRmlsZShmZCwg
d3JpdGVEYXRhLmRhdGEoKSwgd3JpdGVEYXRhLmxlbmd0aCgpKTsKKyAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0ganNvbi50b1N0cmluZygpKSB7CisgICAgICAgICAgICBhdXRvIHdyaXRlRGF0YSA9
IHN0cmluZy0+dXRmOCgpOworICAgICAgICAgICAgd3JpdGVUb0ZpbGUoZmQsIHdyaXRlRGF0YS5k
YXRhKCksIHdyaXRlRGF0YS5sZW5ndGgoKSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
Q1JBU0goKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVLZXkuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVLZXkuY3BwCmluZGV4IDhmYTgxZDEuLjBiNDIyZWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlS2V5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZUtleS5jcHAKQEAgLTEzNCw3ICsxMzQsOSBAQCBTdHJpbmcgS2V5OjpoYXNoQXNTdHJp
bmcoY29uc3QgSGFzaFR5cGUmIGhhc2gpCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHVwcGVyTmli
YmxlVG9BU0NJSUhleERpZ2l0KGJ5dGUpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQobG93ZXJO
aWJibGVUb0FTQ0lJSGV4RGlnaXQoYnl0ZSkpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdGVtcGxhdGUgPHR5cGVu
YW1lIENoYXJUeXBlPiBib29sIGhleERpZ2l0c1RvSGFzaChDaGFyVHlwZSogY2hhcmFjdGVycywg
S2V5OjpIYXNoVHlwZSYgaGFzaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggNTYx
M2JlOC4uMzQ3M2U1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YXB0dXJlL05ldHdvcmtDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTQxNSw5ICs0
MTUsOSBAQCBTdHJpbmcgTWFuYWdlcjo6aGFzaFRvUGF0aChjb25zdCBTdHJpbmcmIGhhc2gpCiAK
ICAgICBhdXRvIHBhdGggPSBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9yZWNvcmRSZXBsYXlD
YWNoZUxvY2F0aW9uLCBrRGlyTmFtZVJlc291cmNlcyk7CiAgICAgcGF0aCA9IHBhdGhCeUFwcGVu
ZGluZ0NvbXBvbmVudChwYXRoLCBoYXNoSGVhZCk7Ci0gICAgcGF0aCA9IHBhdGhCeUFwcGVuZGlu
Z0NvbXBvbmVudChwYXRoLCBmaWxlTmFtZS50b1N0cmluZygpKTsKLQotICAgIHJldHVybiBwYXRo
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGZpbGVOYW1lLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQocGF0aCwgKnN0cmluZyk7CisgICAgQ1JBU0go
KTsKIH0KIAogU3RyaW5nIE1hbmFnZXI6OnVybElkZW50aWZ5aW5nQ29tbW9uRG9tYWluKGNvbnN0
IFdlYkNvcmU6OlVSTCYgdXJsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRGF0
YWJhc2VzL0luZGV4ZWREQi9JREJVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
RGF0YWJhc2VzL0luZGV4ZWREQi9JREJVdGlsaXRpZXMuY3BwCmluZGV4IDllYzc2ZmYuLjdjMWMy
NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIv
SURCVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9EYXRhYmFzZXMvSW5k
ZXhlZERCL0lEQlV0aWxpdGllcy5jcHAKQEAgLTUyLDcgKzUyLDkgQEAgU3RyaW5nIHVuaXF1ZURh
dGFiYXNlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgV2ViQ29y
ZTo6U2VjdXIKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXycpOwogICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kKGRhdGFiYXNlTmFtZSk7CiAKLSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9HYW1lcGFkL0dhbWVw
YWREYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dhbWVwYWQvR2FtZXBhZERhdGEuY3Bw
CmluZGV4IDkwNWQ4MjcuLjFmYmQ3ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0dhbWVwYWQvR2FtZXBhZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dhbWVw
YWQvR2FtZXBhZERhdGEuY3BwCkBAIC0xMTEsNyArMTExLDkgQEAgU3RyaW5nIEdhbWVwYWREYXRh
Ojpsb2dnaW5nU3RyaW5nKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV9i
dXR0b25WYWx1ZXNbaV0pOwogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvdW5peC9OZXRzY2FwZVBsdWdpbk1vZHVs
ZVVuaXguY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS91bml4L05l
dHNjYXBlUGx1Z2luTW9kdWxlVW5peC5jcHAKaW5kZXggZjllYjA2ZS4uOTcyZGNiNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS91bml4L05ldHNjYXBl
UGx1Z2luTW9kdWxlVW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy9O
ZXRzY2FwZS91bml4L05ldHNjYXBlUGx1Z2luTW9kdWxlVW5peC5jcHAKQEAgLTEyMCw3ICsxMjAs
OSBAQCBTdHJpbmcgTmV0c2NhcGVQbHVnaW5Nb2R1bGU6OmJ1aWxkTUlNRURlc2NyaXB0aW9uKGNv
bnN0IFZlY3RvcjxNaW1lQ2xhc3NJbmZvPiYgbQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQo
JzsnKTsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBOZXRzY2FwZVBsdWdpbk1vZHVsZTo6Z2V0UGx1Z2lu
SW5mb0ZvckxvYWRlZFBsdWdpbihSYXdQbHVnaW5NZXRhRGF0YSYgbWV0YURhdGEpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwCmluZGV4IDkyNzcxODkuLjY3NThhYjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwCkBAIC0xODEsOCAr
MTgxLDExIEBAIHZvaWQgV2ViTWVtb3J5U2FtcGxlcjo6YXBwZW5kQ3VycmVudE1lbW9yeVVzYWdl
VG9GaWxlKEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhCiAgICAgfQogICAgIHN0YXRTdHJpbmcu
YXBwZW5kKCdcbicpOwogCi0gICAgQ1N0cmluZyB1dGY4U3RyaW5nID0gc3RhdFN0cmluZy50b1N0
cmluZygpLnV0ZjgoKTsKLSAgICBGaWxlU3lzdGVtOjp3cml0ZVRvRmlsZShtX3NhbXBsZUxvZ0Zp
bGUsIHV0ZjhTdHJpbmcuZGF0YSgpLCB1dGY4U3RyaW5nLmxlbmd0aCgpKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBzdGF0U3RyaW5nLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgQ1N0cmluZyB1dGY4
U3RyaW5nID0gc3RyaW5nLT51dGY4KCk7CisgICAgICAgIEZpbGVTeXN0ZW06OndyaXRlVG9GaWxl
KG1fc2FtcGxlTG9nRmlsZSwgdXRmOFN0cmluZy5kYXRhKCksIHV0ZjhTdHJpbmcubGVuZ3RoKCkp
OworICAgIH0gZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVXNlclNjcmlwdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJVXNlclNjcmlwdC5jcHAKaW5kZXggNzU4NGU2My4uYTkzOWI1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJTY3JpcHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVc2VyU2NyaXB0LmNwcApAQCAt
MzcsNyArMzcsOSBAQCBXZWJDb3JlOjpVUkwgVXNlclNjcmlwdDo6Z2VuZXJhdGVVbmlxdWVVUkwo
KQogICAgIFN0cmluZ0J1aWxkZXIgdXJsU3RyaW5nQnVpbGRlcjsKICAgICB1cmxTdHJpbmdCdWls
ZGVyLmFwcGVuZExpdGVyYWwoInVzZXItc2NyaXB0OiIpOwogICAgIHVybFN0cmluZ0J1aWxkZXIu
YXBwZW5kTnVtYmVyKCsraWRlbnRpZmllcik7Ci0gICAgcmV0dXJuIHsgeyB9LCB1cmxTdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCkgfTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB1cmxTdHJpbmdCdWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiB7IHsgfSwgKnN0cmluZyB9OworICAgIENS
QVNIKCk7CiB9CiAKIFVzZXJTY3JpcHQ6OlVzZXJTY3JpcHQoV2ViQ29yZTo6VXNlclNjcmlwdCB1
c2VyU2NyaXB0LCBBUEk6OlVzZXJDb250ZW50V29ybGQmIHdvcmxkKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVc2VyU3R5bGVTaGVldC5jcHAKaW5kZXggMWQ1OTViYi4u
NjNhYzBmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJT
dHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVXNlclN0
eWxlU2hlZXQuY3BwCkBAIC0zNyw3ICszNyw5IEBAIFdlYkNvcmU6OlVSTCBVc2VyU3R5bGVTaGVl
dDo6Z2VuZXJhdGVVbmlxdWVVUkwoKQogICAgIFN0cmluZ0J1aWxkZXIgdXJsU3RyaW5nQnVpbGRl
cjsKICAgICB1cmxTdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoInVzZXItc3R5bGUtc2hlZXQ6
Iik7CiAgICAgdXJsU3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIoKytpZGVudGlmaWVyKTsKLSAg
ICByZXR1cm4geyB7IH0sIHVybFN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSB9OworICAgIGlmIChh
dXRvIHN0cmluZyA9IHVybFN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
IHsgeyB9LCAqc3RyaW5nIH07CisgICAgQ1JBU0goKTsKIH0KIAogVXNlclN0eWxlU2hlZXQ6OlVz
ZXJTdHlsZVNoZWV0KFdlYkNvcmU6OlVzZXJTdHlsZVNoZWV0IHVzZXJTdHlsZVNoZWV0LCBBUEk6
OlVzZXJDb250ZW50V29ybGQmIHdvcmxkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKaW5kZXggOGMyMWMyNC4uOTE2
ZGQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1
cmVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWV3
R2VzdHVyZUNvbnRyb2xsZXIuY3BwCkBAIC0yMzIsOCArMjMyLDEwIEBAIFN0cmluZyBWaWV3R2Vz
dHVyZUNvbnRyb2xsZXI6OlNuYXBzaG90UmVtb3ZhbFRyYWNrZXI6OmV2ZW50c0Rlc2NyaXB0aW9u
KEV2ZW50cyBlCiAKICAgICBpZiAoZXZlbnQgJiBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlNuYXBz
aG90UmVtb3ZhbFRyYWNrZXI6OlNjcm9sbFBvc2l0aW9uUmVzdG9yYXRpb24pCiAgICAgICAgIGRl
c2NyaXB0aW9uLmFwcGVuZCgiU2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbiAiKTsKLSAgICAKLSAg
ICByZXR1cm4gZGVzY3JpcHRpb24udG9TdHJpbmcoKTsKKworICAgIGlmIChhdXRvIHN0cmluZyA9
IGRlc2NyaXB0aW9uLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQmFj
a0ZvcndhcmRMaXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJk
TGlzdC5jcHAKaW5kZXggNjAwNmEwMi4uMTI4ZjU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwCkBAIC00OTMsNyArNDkzLDkgQEAgY29uc3Qg
Y2hhciogV2ViQmFja0ZvcndhcmRMaXN0Ojpsb2dnaW5nU3RyaW5nKCkKICAgICAgICAgYnVpbGRl
ci5hcHBlbmQobV9lbnRyaWVzW2ldLT5sb2dnaW5nU3RyaW5nKCkpOwogICAgIH0KIAotICAgIHJl
dHVybiBkZWJ1Z1N0cmluZygiXG4iLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIGRlYnVnU3RyaW5n
KCJcbiIsICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAjZW5kaWYgLy8gIUxPR19ESVNBQkxF
RAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggN2Mw
MDBhYi4uZTAzZTBmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcApAQCAtNzEwLDcgKzcxMCwxMCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpkaWRSZWNlaXZl
SW52YWxpZE1lc3NhZ2UoY29uc3QgSVBDOjpTdHJpbmdSZWZlcmVuY2UmIG1lc3NhZwogICAgIG1l
c3NhZ2VOYW1lU3RyaW5nQnVpbGRlci5hcHBlbmQoJy4nKTsKICAgICBtZXNzYWdlTmFtZVN0cmlu
Z0J1aWxkZXIuYXBwZW5kKG1lc3NhZ2VOYW1lLmRhdGEoKSwgbWVzc2FnZU5hbWUuc2l6ZSgpKTsK
IAotICAgIHNfaW52YWxpZE1lc3NhZ2VDYWxsYmFjayh0b0FQSShBUEk6OlN0cmluZzo6Y3JlYXRl
KG1lc3NhZ2VOYW1lU3RyaW5nQnVpbGRlci50b1N0cmluZygpKS5wdHIoKSkpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IG1lc3NhZ2VOYW1lU3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICBzX2ludmFsaWRNZXNzYWdlQ2FsbGJhY2sodG9BUEkoQVBJOjpTdHJpbmc6OmNyZWF0ZSgqc3Ry
aW5nKS5wdHIoKSkpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBXZWJQ
cm9jZXNzUG9vbDo6cHJvY2Vzc0RpZENhY2hlUGFnZShXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA0MTU2
ZDgzLi5lZjA5ZGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKQEAgLTE3MCw3ICsxNzAsMTAgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldExhdW5j
aE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHQKICAgICAg
ICAgICAgICAgICBsYW5ndWFnZVN0cmluZy5hcHBlbmQoJywnKTsKICAgICAgICAgICAgIGxhbmd1
YWdlU3RyaW5nLmFwcGVuZChvdmVycmlkZUxhbmd1YWdlc1tpXSk7CiAgICAgICAgIH0KLSAgICAg
ICAgbGF1bmNoT3B0aW9ucy5leHRyYUluaXRpYWxpemF0aW9uRGF0YS5hZGQoQVNDSUlMaXRlcmFs
KCJPdmVycmlkZUxhbmd1YWdlcyIpLCBsYW5ndWFnZVN0cmluZy50b1N0cmluZygpKTsKKyAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gbGFuZ3VhZ2VTdHJpbmcudG9TdHJpbmcoKSkKKyAgICAgICAg
ICAgIGxhdW5jaE9wdGlvbnMuZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuYWRkKEFTQ0lJTGl0ZXJh
bCgiT3ZlcnJpZGVMYW5ndWFnZXMiKSwgKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgbGF1bmNoT3B0aW9ucy5ub25WYWxpZEluamVjdGVk
Q29kZUFsbG93ZWQgPSBzaG91bGRBbGxvd05vblZhbGlkSW5qZWN0ZWRDb2RlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlLmNwcAppbmRleCA3ZmE4OTEwLi41ZDliNzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAK
QEAgLTIyNyw3ICsyMjcsMTAgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OnJlbW92ZURhdGFSZWNvcmRzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4KICAgICAgICAgICAg
IGFwcGVuZFdpdGhEZWxpbWl0ZXIoZG9tYWluc1RvUmVtb3ZlRGF0YVJlY29yZHNGb3JCdWlsZGVy
LCBkb21haW4sIGlzRmlyc3RJdGVtKTsKICAgICAgICAgICAgIGlzRmlyc3RJdGVtID0gZmFsc2U7
CiAgICAgICAgIH0KLSAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGVidWcsICJBYm91dCB0byByZW1vdmUgZGF0YSByZWNvcmRzIGZvciAle3B1YmxpY31zLiIs
IGRvbWFpbnNUb1JlbW92ZURhdGFSZWNvcmRzRm9yQnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBkb21haW5zVG9SZW1vdmVEYXRhUmVj
b3Jkc0ZvckJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8o
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnLCAiQWJvdXQgdG8gcmVtb3ZlIGRhdGEgcmVjb3Jk
cyBmb3IgJXtwdWJsaWN9cy4iLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KICNlbmRpZgogCkBAIC0xMDQ0LDcgKzEwNDcs
MTAgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnVwZGF0ZUNvb2tpZVBh
cnRpdGlvbmluZyhDb21wbGV0aW9uSGFuZGxlcjwKICAgICAgICAgICAgICAgICBhcHBlbmRXaXRo
RGVsaW1pdGVyKGRvbWFpbnNUb1BhcnRpdGlvbkJ1aWxkZXIsIGRvbWFpbiwgaXNGaXJzdERvbWFp
bik7CiAgICAgICAgICAgICAgICAgaXNGaXJzdERvbWFpbiA9IGZhbHNlOwogICAgICAgICAgICAg
fQotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVi
dWcsICJBYm91dCB0byBwYXJ0aXRpb24gY29va2llcyBpbiB0aGlyZC1wYXJ0eSBjb250ZXh0cyBm
b3IgJXtwdWJsaWN9cy4iLCBkb21haW5zVG9QYXJ0aXRpb25CdWlsZGVyLnRvU3RyaW5nKCkudXRm
OCgpLmRhdGEoKSk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBkb21haW5zVG9QYXJ0
aXRpb25CdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5G
TyhSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWcsICJBYm91dCB0byBwYXJ0aXRpb24gY29va2ll
cyBpbiB0aGlyZC1wYXJ0eSBjb250ZXh0cyBmb3IgJXtwdWJsaWN9cy4iLCBzdHJpbmctPnV0Zjgo
KS5kYXRhKCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAg
ICAgICAgIH0KIAogICAgICAgICBpZiAoIWRvbWFpbnNUb0Jsb2NrLmlzRW1wdHkoKSkgewpAQCAt
MTA1NCw3ICsxMDYwLDEwIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjp1
cGRhdGVDb29raWVQYXJ0aXRpb25pbmcoQ29tcGxldGlvbkhhbmRsZXI8CiAgICAgICAgICAgICAg
ICAgYXBwZW5kV2l0aERlbGltaXRlcihkb21haW5zVG9CbG9ja0J1aWxkZXIsIGRvbWFpbiwgaXNG
aXJzdERvbWFpbik7CiAgICAgICAgICAgICAgICAgaXNGaXJzdERvbWFpbiA9IGZhbHNlOwogICAg
ICAgICAgICAgfQotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGVidWcsICJBYm91dCB0byBibG9jayBjb29raWVzIGluIHRoaXJkLXBhcnR5IGNvbnRl
eHRzIGZvciAle3B1YmxpY31zLiIsIGRvbWFpbnNUb0Jsb2NrQnVpbGRlci50b1N0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZG9tYWluc1RvQmxv
Y2tCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWcsICJBYm91dCB0byBibG9jayBjb29raWVzIGluIHRo
aXJkLXBhcnR5IGNvbnRleHRzIGZvciAle3B1YmxpY31zLiIsIHN0cmluZy0+dXRmOCgpLmRhdGEo
KSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAg
fQogCiAgICAgICAgIGlmICghZG9tYWluc1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrLmlzRW1w
dHkoKSkgewpAQCAtMTA2NCw3ICsxMDczLDEwIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjp1cGRhdGVDb29raWVQYXJ0aXRpb25pbmcoQ29tcGxldGlvbkhhbmRsZXI8CiAg
ICAgICAgICAgICAgICAgYXBwZW5kV2l0aERlbGltaXRlcihkb21haW5zVG9OZWl0aGVyUGFydGl0
aW9uTm9yQmxvY2tCdWlsZGVyLCBkb21haW4sIGlzRmlyc3REb21haW4pOwogICAgICAgICAgICAg
ICAgIGlzRmlyc3REb21haW4gPSBmYWxzZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0lORk8oUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnLCAiQWJvdXQgdG8gbmVp
dGhlciBwYXJ0aXRpb24gbm9yIGJsb2NrIGNvb2tpZXMgaW4gdGhpcmQtcGFydHkgY29udGV4dHMg
Zm9yICV7cHVibGljfXMuIiwgZG9tYWluc1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrQnVpbGRl
ci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5n
ID0gZG9tYWluc1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrQnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rl
YnVnLCAiQWJvdXQgdG8gbmVpdGhlciBwYXJ0aXRpb24gbm9yIGJsb2NrIGNvb2tpZXMgaW4gdGhp
cmQtcGFydHkgY29udGV4dHMgZm9yICV7cHVibGljfXMuIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgp
KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9
CiAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnkuY3BwCmluZGV4IGJiNzQ0MGMu
LjUyMGFiNzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5LmNwcApAQCAtMTc5LDIyICsxNzks
MjMgQEAgc3RhdGljIHZvaWQgc3VibWl0VG9wTGlzdCh1bnNpZ25lZCBudW1iZXJPZlJlc291cmNl
c0Zyb21UaGVUb3AsIGNvbnN0IFZlY3RvcjxQcmUKICAgICBTdHJpbmdCdWlsZGVyIHByZWFtYmxl
QnVpbGRlcjsKICAgICBwcmVhbWJsZUJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgidG9wIik7CiAgICAg
cHJlYW1ibGVCdWlsZGVyLmFwcGVuZE51bWJlcihudW1iZXJPZlJlc291cmNlc0Zyb21UaGVUb3Ap
OwotICAgIFN0cmluZyBkZXNjcmlwdGlvblByZWFtYmxlID0gcHJlYW1ibGVCdWlsZGVyLnRvU3Ry
aW5nKCk7Ci0gICAgCi0gICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZh
bHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRy
eUtleSgpLCBkZXNjcmlwdGlvblByZWFtYmxlICsgIlByZXZhbGVudFJlc291cmNlc1dpdGhVc2Vy
SW50ZXJhY3Rpb24iLAotICAgICAgICB0b3BQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVy
YWN0aW9uLCBzaWduaWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6
Tm8pOwotICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFn
bm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwg
ZGVzY3JpcHRpb25QcmVhbWJsZSArICJTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5zIiwKLSAg
ICAgICAgdG9wU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lucywgc2lnbmlmaWNhbnRGaWd1cmVz
Rm9yTG9nZ2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKLSAgICB3ZWJQYWdlUHJveHkubG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCksIGRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiU3Vi
cmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2lucyIsCi0gICAgICAgIHRvcFN1YnJlc291cmNlVW5k
ZXJUb3BGcmFtZU9yaWdpbnMsIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hv
dWxkU2FtcGxlOjpObyk7Ci0gICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0
aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVt
ZXRyeUtleSgpLCBkZXNjcmlwdGlvblByZWFtYmxlICsgIlN1YnJlc291cmNlVW5pcXVlUmVkaXJl
Y3RzVG8iLAotICAgICAgICB0b3BTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvLCBzaWduaWZp
Y2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOwotICAgIHdlYlBh
Z2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tl
eXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgZGVzY3JpcHRpb25QcmVh
bWJsZSArICJOdW1iZXJPZlRpbWVzRGF0YVJlY29yZHNSZW1vdmVkIiwKLSAgICAgICAgdG9wTnVt
YmVyT2ZUaW1lc0RhdGFSZWNvcmRzUmVtb3ZlZCwgc2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9nZ2Vk
VmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKLSAgICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0
aXN0aWNzVGVsZW1ldHJ5S2V5KCksIGRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiTnVtYmVyT2ZUaW1l
c0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9Vc2VySW50ZXJhY3Rpb24iLAotICAgICAgICB0b3BO
dW1iZXJPZlRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1VzZXJJbnRlcmFjdGlvbiwgc2ln
bmlmaWNhbnRGaWd1cmVzRm9yTG9nZ2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKLSAgICB3
ZWJQYWdlUHJveHkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCksIGRlc2NyaXB0aW9u
UHJlYW1ibGUgKyAiTnVtYmVyT2ZUaW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9TdG9yYWdl
QWNjZXNzQVBJIiwKLSAgICAgICAgdG9wTnVtYmVyT2ZUaW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5
RHVlVG9TdG9yYWdlQWNjZXNzQVBJLCBzaWduaWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMs
IFNob3VsZFNhbXBsZTo6Tm8pOworICAgIGlmIChhdXRvIGRlc2NyaXB0aW9uUHJlYW1ibGUgPSBw
cmVhbWJsZUJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICB3ZWJQYWdlUHJveHkubG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxv
YWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCksICpkZXNjcmlwdGlvblByZWFtYmxlICsgIlByZXZh
bGVudFJlc291cmNlc1dpdGhVc2VySW50ZXJhY3Rpb24iLAorICAgICAgICAgICAgdG9wUHJldmFs
ZW50UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbiwgc2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9n
Z2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICAgICAgd2ViUGFnZVByb3h5LmxvZ0Rp
YWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VM
b2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgpLCAqZGVzY3JpcHRpb25QcmVhbWJsZSArICJTdWJm
cmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5zIiwKKyAgICAgICAgICAgIHRvcFN1YmZyYW1lVW5kZXJU
b3BGcmFtZU9yaWdpbnMsIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxk
U2FtcGxlOjpObyk7CisgICAgICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdp
dGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxl
bWV0cnlLZXkoKSwgKmRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiU3VicmVzb3VyY2VVbmRlclRvcEZy
YW1lT3JpZ2lucyIsCisgICAgICAgICAgICB0b3BTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmln
aW5zLCBzaWduaWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8p
OworICAgICAgICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlh
Z25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCks
ICpkZXNjcmlwdGlvblByZWFtYmxlICsgIlN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8iLAor
ICAgICAgICAgICAgdG9wU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbywgc2lnbmlmaWNhbnRG
aWd1cmVzRm9yTG9nZ2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICAgICAgd2ViUGFn
ZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5
czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgpLCAqZGVzY3JpcHRpb25QcmVh
bWJsZSArICJOdW1iZXJPZlRpbWVzRGF0YVJlY29yZHNSZW1vdmVkIiwKKyAgICAgICAgICAgIHRv
cE51bWJlck9mVGltZXNEYXRhUmVjb3Jkc1JlbW92ZWQsIHNpZ25pZmljYW50RmlndXJlc0Zvckxv
Z2dlZFZhbHVlcywgU2hvdWxkU2FtcGxlOjpObyk7CisgICAgICAgIHdlYlBhZ2VQcm94eS5sb2dE
aWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNl
TG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgKmRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiTnVt
YmVyT2ZUaW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9Vc2VySW50ZXJhY3Rpb24iLAorICAg
ICAgICAgICAgdG9wTnVtYmVyT2ZUaW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9Vc2VySW50
ZXJhY3Rpb24sIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2FtcGxl
OjpObyk7CisgICAgICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1
ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlL
ZXkoKSwgKmRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiTnVtYmVyT2ZUaW1lc0FjY2Vzc2VkQXNGaXJz
dFBhcnR5RHVlVG9TdG9yYWdlQWNjZXNzQVBJIiwKKyAgICAgICAgICAgIHRvcE51bWJlck9mVGlt
ZXNBY2Nlc3NlZEFzRmlyc3RQYXJ0eUR1ZVRvU3RvcmFnZUFjY2Vzc0FQSSwgc2lnbmlmaWNhbnRG
aWd1cmVzRm9yTG9nZ2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICB9IGVsc2UKKyAg
ICAgICAgQ1JBU0goKTsKIH0KICAgICAKIHN0YXRpYyB2b2lkIHN1Ym1pdFRvcExpc3RzKGNvbnN0
IFZlY3RvcjxQcmV2YWxlbnRSZXNvdXJjZVRlbGVtZXRyeT4mIHNvcnRlZFByZXZhbGVudFJlc291
cmNlcywgY29uc3QgVmVjdG9yPFByZXZhbGVudFJlc291cmNlVGVsZW1ldHJ5PiYgc29ydGVkUHJl
dmFsZW50UmVzb3VyY2VzV2l0aG91dFVzZXJJbnRlcmFjdGlvbiwgV2ViUGFnZVByb3h5JiB3ZWJQ
YWdlUHJveHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAKaW5kZXggMGJjY2Zh
Zi4uYWRhNWY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcApAQCAtMTM4
LDcgKzEzOCw5IEBAIHN0YXRpYyBTdHJpbmcgY2FwaXRhbGl6ZVJGQzgyMkhlYWRlckZpZWxkTmFt
ZShjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGNhcGl0YWxp
emVDaGFyYWN0ZXIgPSBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgSFRUUEhlYWRlck1hcCBwYXJz
ZVJGQzgyMkhlYWRlckZpZWxkcyhjb25zdCBjaGFyKiBieXRlcywgdW5zaWduZWQgbGVuZ3RoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRl
eCBhN2ZjYWNlLi43OTlhZDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtMjEyLDcgKzIxMiw5IEBAIHN0YXRpYyBTdHJpbmcgYnVp
bGRIVFRQSGVhZGVycyhjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgbG9uZyBsb25n
JiBleHBlCiAgICAgaWYgKCFjb250ZW50RW5jb2RpbmcuaXNOdWxsKCkgJiYgY29udGVudEVuY29k
aW5nICE9ICJpZGVudGl0eSIpCiAgICAgICAgIGV4cGVjdGVkQ29udGVudExlbmd0aCA9IC0xOwog
Ci0gICAgcmV0dXJuIGhlYWRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGhl
YWRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiBzdGF0aWMgdWludDMyX3QgbGFzdE1vZGlmaWVkRGF0ZU1TKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
RnJhbWUuY3BwCmluZGV4IDE2YWJlNTUuLjQ4OWM4Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKQEAgLTM1MSw3ICszNTEsOSBAQCBTdHJpbmcg
V2ViRnJhbWU6OmNvbnRlbnRzQXNTdHJpbmcoKSBjb25zdAogICAgICAgICAgICAgYnVpbGRlci5h
cHBlbmQod2ViRnJhbWUtPmNvbnRlbnRzQXNTdHJpbmcoKSk7CiAgICAgICAgIH0KICAgICAgICAg
Ly8gRklYTUU6IEl0IG1heSBtYWtlIHNlbnNlIHRvIHVzZSB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNp
dHkoKSBoZXJlLgotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBEb2N1bWVudCogZG9jdW1l
bnQgPSBtX2NvcmVGcmFtZS0+ZG9jdW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpp
bmRleCAwN2Q0OGNkLi5kNDEzMTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTgtMDQtMjYgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29t
PgorCisgICAgICAgIFN0cmluZ0J1aWxkZXIgaXMgZmFsbGlibGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTA0OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlYWNoIFN0cmluZ0J1aWxkZXIgdGhhdCBp
dCBpcyBmYWxsaWJsZQorCisgICAgICAgICogV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24u
bW06CisgICAgICAgIChyZWdFeHBGb3JMYWJlbHMpOgorCiAyMDE4LTA0LTI1ICBKaWV3ZW4gVGFu
ICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGFjY2VzcyB0byBrZXlj
aGFpbiBmcm9tIHRoZSBXZWJDb250ZW50IHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubW0KaW5kZXggMTkx
ODM2My4uMmIyN2E1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubW0KQEAgLTM5NCw3ICszOTQsMTAgQEAgc3Rh
dGljIFJlZ3VsYXJFeHByZXNzaW9uKiByZWdFeHBGb3JMYWJlbHMoTlNBcnJheSAqbGFiZWxzKQog
ICAgICAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kTGl0ZXJhbCgiXFxiIik7CiAgICAgICAgIH0K
ICAgICAgICAgcGF0dGVybi5hcHBlbmQoJyknKTsKLSAgICAgICAgcmVzdWx0ID0gbmV3IFJlZ3Vs
YXJFeHByZXNzaW9uKHBhdHRlcm4udG9TdHJpbmcoKSwgSlNDOjpZYXJyOjpUZXh0Q2FzZUluc2Vu
c2l0aXZlKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcGF0dGVybi50b1N0cmluZygpKQor
ICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFJlZ3VsYXJFeHByZXNzaW9uKCpzdHJpbmcsIEpTQzo6
WWFycjo6VGV4dENhc2VJbnNlbnNpdGl2ZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENS
QVNIKCk7CiAgICAgfQogCiAgICAgLy8gYWRkIHJlZ2V4cCB0byB0aGUgY2FjaGUsIG1ha2luZyBz
dXJlIGl0IGlzIGF0IHRoZSBmcm9udCBmb3IgTFJVIG9yZGVyaW5nCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjU3NjFhYS4uNDIwOTViMCAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDgxIEBACisyMDE4LTA0LTI2ICBKRiBCYXN0aWVuICA8amZiYXN0aWVuQGFwcGxlLmNvbT4KKwor
ICAgICAgICBTdHJpbmdCdWlsZGVyIGlzIGZhbGxpYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUwNDgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdHJpbmdCdWlsZGVyIGNhbiBmYWlsIHdoZW4gYWxs
b2NhdGluZyBtZW1vcnkuIFN0cmluZ0J1aWxkZXIgaXMKKyAgICAgICAgbW9zdGx5IHVzZWQgd2l0
aCB1c2VyIGlucHV0LCB3aGljaCBvZnRlbiBtZWFucyB0aGF0IGp1c3QgY3Jhc2hpbmcKKyAgICAg
ICAgaXNuJ3QgdGhlIHJpZ2h0IG91dGNvbWUuIE91ciBmdXp6ZXJzIG9mdGVuIGVuY291bnRlciBz
dWNoIHRoaW5ncworICAgICAgICBmb3IgSmF2YVNjcmlwdENvcmUsIGFuZCBzbyBmYXIgd2UndmUg
YXBwbGllZCBwb2ludCBzb2x1dGlvbnMuIE5vCisgICAgICAgIG1vcmUhCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OmV4cGVjdEJ1aWxkZXJDb250ZW50KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OmV4cGVjdEVtcHR5KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Nv
bnRlbnRFeHRlbnNpb25zLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OmNyZWF0ZUNvbW1hbmQpOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTG9n
Z2luZy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpMb2dnaW5nVGVzdDo6b3V0cHV0KToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpMb2dPYnNlcnZlcjo6bG9nKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvVGV4dENvZGVjLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OnRlc3REZWNvZGUpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvV1RGU3RyaW5nVXRpbGl0aWVzLmg6CisgICAgICAgICh1
dGYxNlN0cmluZyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2UuY3BwOgorICAgICAgICAoV1RSOjpkdW1wUGF0aCk6CisgICAgICAg
IChXVFI6OnJhbmdlVG9TdHIpOgorICAgICAgICAoV1RSOjpzdHlsZURlY1RvU3RyKToKKyAgICAg
ICAgKFdUUjo6c2VjdXJpdHlPcmlnaW5Ub1N0cik6CisgICAgICAgIChXVFI6OmZyYW1lVG9TdHIp
OgorICAgICAgICAoV1RSOjpkdW1wTG9hZEV2ZW50KToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRC
dW5kbGVQYWdlOjpkdW1wKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRS
ZWNlaXZlVGl0bGVGb3JGcmFtZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6
d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKToKKyAgICAgICAgKFdUUjo6SW5qZWN0
ZWRCdW5kbGVQYWdlOjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSk6CisgICAgICAgIChX
VFI6OkluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUpOgorICAgICAg
ICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVSZXNwb25zZUZvclJlc291cmNl
KToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRGaW5pc2hMb2FkRm9yUmVz
b3VyY2UpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZhaWxMb2FkRm9y
UmVzb3VyY2UpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZENhY2hl
UmVzcG9uc2UpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6
OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQ
YWdlOjp3aWxsQWRkTWVzc2FnZVRvQ29uc29sZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVu
ZGxlUGFnZTo6d2lsbFNldFN0YXR1c2JhclRleHQpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1
bmRsZVBhZ2U6OndpbGxSdW5KYXZhU2NyaXB0QWxlcnQpOgorICAgICAgICAoV1RSOjpJbmplY3Rl
ZEJ1bmRsZVBhZ2U6OndpbGxSdW5KYXZhU2NyaXB0Q29uZmlybSk6CisgICAgICAgIChXVFI6Oklu
amVjdGVkQnVuZGxlUGFnZTo6d2lsbFJ1bkphdmFTY3JpcHRQcm9tcHQpOgorICAgICAgICAoV1RS
OjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlYWNoQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3Rh
KToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRFeGNlZWREYXRhYmFzZVF1
b3RhKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRCZWdpbkVkaXRp
bmcpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEVuZEVkaXRpbmcp
OgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEluc2VydE5vZGUpOgor
ICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEluc2VydFRleHQpOgorICAg
ICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZERlbGV0ZVJhbmdlKToKKyAgICAg
ICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKToK
KyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRBcHBseVN0eWxlKToKKyAg
ICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRCZWdpbkVkaXRpbmcpOgorICAgICAg
ICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEVuZEVkaXRpbmcpOgorICAgICAgICAoV1RS
OjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZENoYW5nZSk6CisgICAgICAgIChXVFI6OkluamVjdGVk
QnVuZGxlUGFnZTo6ZGlkQ2hhbmdlU2VsZWN0aW9uKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVu
bmVyOjpzdGF0aXN0aWNzRGlkUnVuVGVsZW1ldHJ5Q2FsbGJhY2spOgorICAgICAgICAoV1RSOjpU
ZXN0UnVubmVyOjpjYWxsRGlkUmVjZWl2ZUFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzQ2FsbGJhY2sp
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmls
ZW5hbWUpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRSZWNlaXZl
U2VydmVyUmVkaXJlY3RUb1VSTCk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkb3du
bG9hZERpZEZhaWwpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24u
Y3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZHVtcFJlc3VsdHMpOgorCiAyMDE4
LTA0LTI1ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBS
RUdSRVNTSU9OIChyMjMwOTk4KTogQm90IHdhdGNoZXIncyBkYXNoYm9hcmQgZG9lc24ndCBkaXNw
bGF5IG51bWJlciBvZiBBUEkgdGVzdCBmYWlsdXJlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRUYXNrLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkVGFzay5jcHAKaW5kZXggNTJjMGJjZC4uZjYxZmEzMiAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRUYXNr
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZFRhc2su
Y3BwCkBAIC04OCw3ICs4OCw5IEBAIHN0cnVjdCBMaWZldGltZUxvZ2dlciB7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCItIik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZzo6bnVtYmVy
KG1vdmVHZW5lcmF0aW9uKSk7CiAKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsK
KyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgY29uc3Qg
Y2hhciYgbmFtZSB7ICoiPGRlZmF1bHQ+IiB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAppbmRleCA2YjhlMDVjLi43ODY3NTAwIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcApAQCAtMSw2
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zOSwx
NiArMzksMTYgQEAgc3RhdGljIHZvaWQgZXhwZWN0QnVpbGRlckNvbnRlbnQoY29uc3QgU3RyaW5n
JiBleHBlY3RlZCwgY29uc3QgU3RyaW5nQnVpbGRlciYgYnUKICAgICAvLyBOb3QgdXNpbmcgYnVp
bGRlci50b1N0cmluZygpIG9yIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgYmVj
YXVzZSB0aGV5IGFsbAogICAgIC8vIGNoYW5nZSBpbnRlcm5hbCBzdGF0ZSBvZiBidWlsZGVyLgog
ICAgIGlmIChidWlsZGVyLmlzOEJpdCgpKQotICAgICAgICBFWFBFQ1RfRVEoZXhwZWN0ZWQsIFN0
cmluZyhidWlsZGVyLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIubGVuZ3RoKCkpKTsKKyAgICAgICAg
RVhQRUNUX0VRKGV4cGVjdGVkLCBTdHJpbmcoYnVpbGRlci5jaGFyYWN0ZXJzOCgpLnZhbHVlKCks
IGJ1aWxkZXIubGVuZ3RoKCkpKTsKICAgICBlbHNlCi0gICAgICAgIEVYUEVDVF9FUShleHBlY3Rl
ZCwgU3RyaW5nKGJ1aWxkZXIuY2hhcmFjdGVyczE2KCksIGJ1aWxkZXIubGVuZ3RoKCkpKTsKKyAg
ICAgICAgRVhQRUNUX0VRKGV4cGVjdGVkLCBTdHJpbmcoYnVpbGRlci5jaGFyYWN0ZXJzMTYoKS52
YWx1ZSgpLCBidWlsZGVyLmxlbmd0aCgpKSk7CiB9CiAKIHZvaWQgZXhwZWN0RW1wdHkoY29uc3Qg
U3RyaW5nQnVpbGRlciYgYnVpbGRlcikKIHsKICAgICBFWFBFQ1RfRVEoMFUsIGJ1aWxkZXIubGVu
Z3RoKCkpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuaXNFbXB0eSgpKTsKLSAgICBFWFBFQ1Rf
RVEoMCwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKKyAgICBFWFBFQ1RfRVEoMCwgYnVpbGRlci5j
aGFyYWN0ZXJzOCgpLnZhbHVlKCkpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBEZWZh
dWx0Q29uc3RydWN0b3IpCkBAIC03MSwyNCArNzEsMjQgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVz
dCwgQXBwZW5kKQogICAgIGJ1aWxkZXIuYXBwZW5kKCcjJyk7CiAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1aWxkZXIpOwogCi0gICAgYnVpbGRlci50b1N0
cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCisgICAgYnVpbGRlci50b1N0cmlu
ZygpLnZhbHVlKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXIxOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIiLCAwKTsKICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7Ci0gICAgYnVpbGRlcjEu
YXBwZW5kKGJ1aWxkZXIuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5sZW5ndGgoKSk7CisgICAgYnVp
bGRlcjEuYXBwZW5kKGJ1aWxkZXIuY2hhcmFjdGVyczgoKS52YWx1ZSgpLCBidWlsZGVyLmxlbmd0
aCgpKTsKICAgICBidWlsZGVyMS5hcHBlbmQoIlhZWiIpOwotICAgIGJ1aWxkZXIuYXBwZW5kKGJ1
aWxkZXIxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIxLmxlbmd0aCgpKTsKKyAgICBidWlsZGVyLmFw
cGVuZChidWlsZGVyMS5jaGFyYWN0ZXJzOCgpLnZhbHVlKCksIGJ1aWxkZXIxLmxlbmd0aCgpKTsK
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFi
Y2RlZmcjWFlaIiwgYnVpbGRlcik7CiAKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXIyOwogICAg
IGJ1aWxkZXIyLnJlc2VydmVDYXBhY2l0eSgxMDApOwogICAgIGJ1aWxkZXIyLmFwcGVuZCgieHl6
Iik7Ci0gICAgY29uc3QgTENoYXIqIGNoYXJhY3RlcnMgPSBidWlsZGVyMi5jaGFyYWN0ZXJzOCgp
OworICAgIGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzID0gYnVpbGRlcjIuY2hhcmFjdGVyczgoKS52
YWx1ZSgpOwogICAgIGJ1aWxkZXIyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwotICAgIEFTU0VSVF9F
UShjaGFyYWN0ZXJzLCBidWlsZGVyMi5jaGFyYWN0ZXJzOCgpKTsKLSAgICBidWlsZGVyMi50b1N0
cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZyB3aXRoIGJ1
ZmZlciBwcmVzZXJ2ZWQuCisgICAgQVNTRVJUX0VRKGNoYXJhY3RlcnMsIGJ1aWxkZXIyLmNoYXJh
Y3RlcnM4KCkudmFsdWUoKSk7CisgICAgYnVpbGRlcjIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5
KCkudmFsdWUoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZyB3aXRoIGJ1ZmZlciBwcmVzZXJ2
ZWQuCiAgICAgYnVpbGRlcjIuYXBwZW5kKCJhYmNkIik7Ci0gICAgQVNTRVJUX0VRKGNoYXJhY3Rl
cnMsIGJ1aWxkZXIyLmNoYXJhY3RlcnM4KCkpOworICAgIEFTU0VSVF9FUShjaGFyYWN0ZXJzLCBi
dWlsZGVyMi5jaGFyYWN0ZXJzOCgpLnZhbHVlKCkpOwogCiAgICAgLy8gVGVzdCBhcHBlbmRpbmcg
VUNoYXIzMiBjaGFyYWN0ZXJzIHRvIFN0cmluZ0J1aWxkZXIuCiAgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyRm9yVUNoYXIzMkFwcGVuZDsKQEAgLTEwNSw5ICsxMDUsOSBAQCBURVNUKFN0cmluZ0J1
aWxkZXJUZXN0LCBUb1N0cmluZykKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAg
YnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKLSAgICBTdHJpbmcgc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpOworICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkudmFs
dWUoKTsKICAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7Ci0gICAg
QVNTRVJUX0VRKHN0cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmcoKS5pbXBsKCkpOworICAg
IEFTU0VSVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nKCkudmFsdWUoKS5pbXBs
KCkpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZl
Y3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpLgogICAgIGJ1aWxkZXIuYXBwZW5k
KCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpOwpAQCAtMTE1LDIwICsxMTUsMjAgQEAgVEVT
VChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmcpCiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3Ry
aW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3Ry
aW5nKCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkgaXMgbm90IGNoYW5nZWQuCiAgICAgYnVpbGRlci5y
ZXNlcnZlQ2FwYWNpdHkoMjAwKTsKLSAgICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpLnZhbHVlKCk7CiAgICAgQVNTRVJUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CiAg
ICAgYnVpbGRlci5hcHBlbmQoIkFCQyIpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3
ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdp
bmcgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpIHNob3VsZCBub3QgYWZmZWN0IHRo
ZSBjb250ZW50IG9mIHRoZSBTdHJpbmdCdWlsZGVyLgotICAgIFN0cmluZyBzdHJpbmcxID0gYnVp
bGRlci50b1N0cmluZygpOworICAgIFN0cmluZyBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZygp
LnZhbHVlKCk7CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOwogICAgIHN0cmluZzEuYXBwZW5kKCJERUYiKTsK
LSAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZygp
LnZhbHVlKCkpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRoZSBT
dHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9T
dHJpbmcoKS4KLSAgICBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZygpOworICAgIHN0cmluZzEg
PSBidWlsZGVyLnRvU3RyaW5nKCkudmFsdWUoKTsKICAgICBidWlsZGVyLnJlc2l6ZSgxMCk7CiAg
ICAgYnVpbGRlci5hcHBlbmQoIiMjIyIpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3
ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKQEAgLTEzOSwxMSAr
MTM5LDExIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0
eSkKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0
NTY3ODkiKTsKICAgICB1bnNpZ25lZCBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKLSAg
ICBTdHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKKyAg
ICBTdHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS52YWx1
ZSgpOwogICAgIEFTU0VSVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKICAgICBB
U1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7Ci0gICAgQVNTRVJUX0VRKHN0
cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuaW1wbCgpKTsK
LSAgICBBU1NFUlRfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgo
KSk7CisgICAgQVNTRVJUX0VRKHN0cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2
ZUNhcGFjaXR5KCkudmFsdWUoKS5pbXBsKCkpOworICAgIEFTU0VSVF9FUShzdHJpbmcuY2hhcmFj
dGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpLnZhbHVlKCkpOwogCiAgICAgLy8gQ2hhbmdp
bmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3Vs
dCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKTsKQEAgLTE1MiwyOCArMTUyLDI4IEBAIFRFU1QoU3Ry
aW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKICAgICAvLyBDaGFuZ2lu
ZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0
IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIGluIGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5v
dCBjaGFuZ2VkLgogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDIwMCk7CiAgICAgY2FwYWNp
dHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7Ci0gICAgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZ1By
ZXNlcnZlQ2FwYWNpdHkoKTsKKyAgICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVD
YXBhY2l0eSgpLnZhbHVlKCk7CiAgICAgQVNTRVJUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFj
aXR5KCkpOwotICAgIEFTU0VSVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFy
YWN0ZXJzOCgpKTsKKyAgICBBU1NFUlRfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIu
Y2hhcmFjdGVyczgoKS52YWx1ZSgpKTsKICAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVu
ZCgiQUJDIik7CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwg
cmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIHNob3VsZCBub3QgYWZmZWN0IHRo
ZSBjb250ZW50IG9mIHRoZSBTdHJpbmdCdWlsZGVyLgogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5j
YXBhY2l0eSgpOwotICAgIFN0cmluZyBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZl
Q2FwYWNpdHkoKTsKKyAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2
ZUNhcGFjaXR5KCkudmFsdWUoKTsKICAgICBBU1NFUlRfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2Fw
YWNpdHkoKSk7Ci0gICAgQVNTRVJUX0VRKHN0cmluZzEuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5j
aGFyYWN0ZXJzOCgpKTsKKyAgICBBU1NFUlRfRVEoc3RyaW5nMS5jaGFyYWN0ZXJzOCgpLCBidWls
ZGVyLmNoYXJhY3RlcnM4KCkudmFsdWUoKSk7CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOwogICAgIHN0cmlu
ZzEuYXBwZW5kKCJERUYiKTsKLSAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNp
dHkoKSk7CisgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6QUJDIiksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkudmFsdWUo
KSk7CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOwogCiAgICAgLy8gUmVzaXppbmcgdGhlIFN0cmluZ0J1
aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1By
ZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKLSAg
ICBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKKyAgICBzdHJp
bmcxID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS52YWx1ZSgpOwogICAgIEFT
U0VSVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKLSAgICBBU1NFUlRfRVEoc3Ry
aW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CisgICAgQVNTRVJUX0VR
KHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkudmFsdWUoKSk7CiAg
ICAgYnVpbGRlci5yZXNpemUoMTApOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIjIyMiKTsKICAgICBB
U1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMi
KSwgc3RyaW5nMSk7CkBAIC0xOTEsMTEgKzE5MSwxMSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0
LCBBcnJheSkKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBl
bmQoIjAxMjM0NTY3ODkiKTsKLSAgICBFWFBFQ1RfRVEoJzAnLCBzdGF0aWNfY2FzdDxjaGFyPihi
dWlsZGVyWzBdKSk7Ci0gICAgRVhQRUNUX0VRKCc5Jywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRl
cls5XSkpOwotICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmlu
ZygpLgotICAgIEVYUEVDVF9FUSgnMCcsIHN0YXRpY19jYXN0PGNoYXI+KGJ1aWxkZXJbMF0pKTsK
LSAgICBFWFBFQ1RfRVEoJzknLCBzdGF0aWNfY2FzdDxjaGFyPihidWlsZGVyWzldKSk7CisgICAg
RVhQRUNUX0VRKCcwJywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRlclswXS52YWx1ZSgpKSk7Cisg
ICAgRVhQRUNUX0VRKCc5Jywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRlcls5XS52YWx1ZSgpKSk7
CisgICAgYnVpbGRlci50b1N0cmluZygpLnZhbHVlKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJp
bmcoKS4KKyAgICBFWFBFQ1RfRVEoJzAnLCBzdGF0aWNfY2FzdDxjaGFyPihidWlsZGVyWzBdLnZh
bHVlKCkpKTsKKyAgICBFWFBFQ1RfRVEoJzknLCBzdGF0aWNfY2FzdDxjaGFyPihidWlsZGVyWzld
LnZhbHVlKCkpKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgUmVzaXplKQpAQCAtMjA5
LDcgKzIwOSw3IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFJlc2l6ZSkKICAgICBFWFBFQ1Rf
RVEoOFUsIGJ1aWxkZXIubGVuZ3RoKCkpOwogICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2NyIsIGJ1aWxkZXIpOwogCi0gICAgYnVpbGRlci50b1N0cmluZygpOworICAgIGJ1aWxkZXIu
dG9TdHJpbmcoKS52YWx1ZSgpOwogICAgIGJ1aWxkZXIucmVzaXplKDcpOwogICAgIEVYUEVDVF9F
USg3VSwgYnVpbGRlci5sZW5ndGgoKSk7CiAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTYiLCBidWlsZGVyKTsKQEAgLTI0MCwxMyArMjQwLDEzIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRl
c3QsIEVxdWFsKQogICAgIEFTU0VSVF9UUlVFKGJ1aWxkZXIyICE9IGJ1aWxkZXIxKTsKICAgICBB
U1NFUlRfVFJVRShTdHJpbmcoIjEyMyIpICE9IGJ1aWxkZXIyKTsKICAgICBBU1NFUlRfVFJVRShi
dWlsZGVyMiAhPSBTdHJpbmcoIjEyMyIpKTsKLSAgICBidWlsZGVyMi50b1N0cmluZygpOyAvLyBU
ZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCisgICAgYnVpbGRlcjIudG9TdHJpbmcoKS52YWx1ZSgp
OyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAgICAgQVNTRVJUX1RSVUUoYnVpbGRlcjEg
IT0gYnVpbGRlcjIpOwogCiAgICAgYnVpbGRlcjIucmVzaXplKDMpOwogICAgIEFTU0VSVF9UUlVF
KGJ1aWxkZXIxID09IGJ1aWxkZXIyKTsKIAotICAgIGJ1aWxkZXIxLnRvU3RyaW5nKCk7IC8vIFRl
c3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KKyAgICBidWlsZGVyMS50b1N0cmluZygpLnZhbHVlKCk7
IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBBU1NFUlRfVFJVRShidWlsZGVyMSA9
PSBidWlsZGVyMik7CiB9CiAKQEAgLTI2NSwxNCArMjY1LDE0IEBAIFRFU1QoU3RyaW5nQnVpbGRl
clRlc3QsIFRvQXRvbWljU3RyaW5nKQogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAg
ICBidWlsZGVyLmFwcGVuZCgiMTIzIik7Ci0gICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9
IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKTsKKyAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5n
ID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpLnZhbHVlKCk7CiAgICAgQVNTRVJUX0VRKFN0cmlu
ZygiMTIzIiksIGF0b21pY1N0cmluZyk7CiAKICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgy
NTYpOwogICAgIEFTU0VSVF9UUlVFKGJ1aWxkZXIuY2FuU2hyaW5rKCkpOwogICAgIGZvciAoaW50
IGkgPSBidWlsZGVyLmxlbmd0aCgpOyBpIDwgMTI4OyBpKyspCiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCd4Jyk7Ci0gICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZzEgPSBidWlsZGVyLnRvQXRv
bWljU3RyaW5nKCk7CisgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZzEgPSBidWlsZGVyLnRv
QXRvbWljU3RyaW5nKCkudmFsdWUoKTsKICAgICBBU1NFUlRfRVEoMTI4dSwgYXRvbWljU3RyaW5n
MS5sZW5ndGgoKSk7CiAgICAgQVNTRVJUX0VRKCd4JywgYXRvbWljU3RyaW5nMVsxMjddKTsKIApA
QCAtMjgyLDggKzI4Miw4IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvQXRvbWljU3RyaW5n
KQogICAgIEFTU0VSVF9FUSgxMjh1LCBhdG9taWNTdHJpbmcxLmxlbmd0aCgpKTsKIAogICAgIEFT
U0VSVF9GQUxTRShidWlsZGVyLmNhblNocmluaygpKTsKLSAgICBTdHJpbmcgc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZygpOwotICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcyID0gYnVpbGRl
ci50b0F0b21pY1N0cmluZygpOworICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkudmFsdWUoKTsKKyAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nMiA9IGJ1aWxkZXIudG9B
dG9taWNTdHJpbmcoKS52YWx1ZSgpOwogICAgIC8vIFRoZXkgc2hvdWxkIHNoYXJlIHRoZSBzYW1l
IFN0cmluZ0ltcGwuCiAgICAgQVNTRVJUX0VRKGF0b21pY1N0cmluZzIuaW1wbCgpLCBzdHJpbmcu
aW1wbCgpKTsKIH0KQEAgLTI5Miw0NSArMjkyLDQ1IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3Qs
IFRvQXRvbWljU3RyaW5nT25FbXB0eSkKIHsKICAgICB7IC8vIERlZmF1bHQgY29uc3RydWN0ZWQu
CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgQXRvbWljU3RyaW5nIGF0
b21pY1N0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKTsKKyAgICAgICAgQXRvbWljU3Ry
aW5nIGF0b21pY1N0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKS52YWx1ZSgpOwogICAg
ICAgICBBU1NFUlRfRVEoZW1wdHlBdG9tKCksIGF0b21pY1N0cmluZyk7CiAgICAgfQogICAgIHsg
Ly8gV2l0aCBjYXBhY2l0eS4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAg
ICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSg2NCk7Ci0gICAgICAgIEF0b21pY1N0cmluZyBhdG9t
aWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7CisgICAgICAgIEF0b21pY1N0cmlu
ZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCkudmFsdWUoKTsKICAgICAg
ICAgQVNTRVJUX0VRKGVtcHR5QXRvbSgpLCBhdG9taWNTdHJpbmcpOwogICAgIH0KICAgICB7IC8v
IEF0b21pY1N0cmluZyBjb25zdHJ1Y3RlZCBmcm9tIGEgbnVsbCBzdHJpbmcuCiAgICAgICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCkpOwot
ICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmlu
ZygpOworICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21p
Y1N0cmluZygpLnZhbHVlKCk7CiAgICAgICAgIEFTU0VSVF9FUShlbXB0eUF0b20oKSwgYXRvbWlj
U3RyaW5nKTsKICAgICB9CiAgICAgeyAvLyBBdG9taWNTdHJpbmcgY29uc3RydWN0ZWQgZnJvbSBh
biBlbXB0eSBzdHJpbmcuCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoZW1wdHlTdHJpbmcoKSk7Ci0gICAgICAgIEF0b21pY1N0cmluZyBhdG9t
aWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7CisgICAgICAgIEF0b21pY1N0cmlu
ZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCkudmFsdWUoKTsKICAgICAg
ICAgQVNTRVJUX0VRKGVtcHR5QXRvbSgpLCBhdG9taWNTdHJpbmcpOwogICAgIH0KICAgICB7IC8v
IEF0b21pY1N0cmluZyBjb25zdHJ1Y3RlZCBmcm9tIGFuIGVtcHR5IFN0cmluZ0J1aWxkZXIuCiAg
ICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgU3RyaW5nQnVpbGRlciBlbXB0
eUJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGVtcHR5QnVpbGRlcik7Ci0gICAgICAg
IEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7Cisg
ICAgICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5n
KCkudmFsdWUoKTsKICAgICAgICAgQVNTRVJUX0VRKGVtcHR5QXRvbSgpLCBhdG9taWNTdHJpbmcp
OwogICAgIH0KICAgICB7IC8vIEF0b21pY1N0cmluZyBjb25zdHJ1Y3RlZCBmcm9tIGFuIGVtcHR5
IGNoYXIqIHN0cmluZy4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBi
dWlsZGVyLmFwcGVuZCgiIiwgMCk7Ci0gICAgICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcg
PSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7CisgICAgICAgIEF0b21pY1N0cmluZyBhdG9taWNT
dHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCkudmFsdWUoKTsKICAgICAgICAgQVNTRVJU
X0VRKGVtcHR5QXRvbSgpLCBhdG9taWNTdHJpbmcpOwogICAgIH0KICAgICB7IC8vIENsZWFyZWQg
U3RyaW5nQnVpbGRlci4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIldlYktpdCIpOwogICAgICAgICBidWlsZGVyLmNsZWFyKCk7
Ci0gICAgICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3Ry
aW5nKCk7CisgICAgICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRv
bWljU3RyaW5nKCkudmFsdWUoKTsKICAgICAgICAgQVNTRVJUX0VRKGVtcHR5QXRvbSgpLCBhdG9t
aWNTdHJpbmcpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N0cmluZ1ZpZXcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3Ry
aW5nVmlldy5jcHAKaW5kZXggZmMyOGIwMC4uOGIyODMwOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKQEAgLTE2NCw2NSArMTY0LDY1IEBAIFRFU1Qo
V1RGLCBTdHJpbmdWaWV3SXRlcmF0b3JzKQogCiAgICAgU3RyaW5nQnVpbGRlciBiOwogICAgIGJ1
aWxkKGIsIHsweEQ4MDAsIDB4REQ1NX0pOyAvLyBTdXJyb2dhdGVzIGZvciB1bmljb2RlIGNvZGUg
cG9pbnQgVSsxMDE1NQotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJp
bmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVBvaW50cygpLCB7MHgxMDE1NX0pKTsKLSAgICBFWFBF
Q1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNv
ZGVVbml0cygpLCB7MHhEODAwLCAweERENTV9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxv
b3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5ncmFwaGVtZUNsdXN0ZXJzKCks
IHtTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSl9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxv
b3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVQb2ludHMo
KSwgezB4MTAxNTV9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0
cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVVbml0cygpLCB7MHhEODAwLCAweERE
NTV9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXco
Yi50b1N0cmluZygpLnZhbHVlKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi50
b1N0cmluZygpLnZhbHVlKCkpfSkpOwogCiAgICAgYnVpbGQoYiwgezB4RDgwMH0pOyAvLyBMZWFk
aW5nIHN1cnJvZ2F0ZSBvbmx5Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25z
KFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlUG9pbnRzKCksIHsweEQ4MDB9KSk7Ci0gICAg
RVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygp
KS5jb2RlVW5pdHMoKSwgezB4RDgwMH0pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0
ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0
cmluZ1ZpZXcoYi50b1N0cmluZygpKX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0
ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVBvaW50cygpLCB7
MHhEODAwfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdW
aWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlVW5pdHMoKSwgezB4RDgwMH0pKTsKKyAgICBF
WFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCku
dmFsdWUoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFs
dWUoKSl9KSk7CiAKICAgICBidWlsZChiLCB7MHhEODAwLCAweEQ4MDF9KTsgLy8gVHdvIGxlYWRp
bmcgc3Vycm9nYXRlcwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJp
bmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVBvaW50cygpLCB7MHhEODAwLCAweEQ4MDF9KSk7Ci0g
ICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmlu
ZygpKS5jb2RlVW5pdHMoKSwgezB4RDgwMCwgMHhEODAxfSkpOwotICAgIEVYUEVDVF9UUlVFKGNv
bXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuZ3JhcGhlbWVDbHVz
dGVycygpLCB7U3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLCAxKSwgU3RyaW5nVmlldyhiLmNo
YXJhY3RlcnMxNigpICsgMSwgMSl9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVy
YXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVQb2ludHMoKSwgezB4
RDgwMCwgMHhEODAxfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhT
dHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlVW5pdHMoKSwgezB4RDgwMCwgMHhE
ODAxfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3
KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIu
Y2hhcmFjdGVyczE2KCkudmFsdWUoKSwgMSksIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKS52
YWx1ZSgpICsgMSwgMSl9KSk7CiAKICAgICBidWlsZChiLCB7MHhERDU1fSk7IC8vIFRyYWlsaW5n
IHN1cnJvZ2F0ZSBvbmx5Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0
cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlUG9pbnRzKCksIHsweERENTV9KSk7Ci0gICAgRVhQ
RUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5j
b2RlVW5pdHMoKSwgezB4REQ1NX0pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJh
dGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmlu
Z1ZpZXcoYi50b1N0cmluZygpKX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJh
dGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVBvaW50cygpLCB7MHhE
RDU1fSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3
KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlVW5pdHMoKSwgezB4REQ1NX0pKTsKKyAgICBFWFBF
Q1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFs
dWUoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUo
KSl9KSk7CiAKICAgICBidWlsZChiLCB7MHhEODAwLCAnaCd9KTsgLy8gTGVhZGluZyBzdXJyb2dh
dGUgZm9sbG93ZWQgYnkgbm9uLXN1cnJvZ2F0ZQotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29w
SXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVBvaW50cygpLCB7MHhEODAw
LCAnaCd9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1Zp
ZXcoYi50b1N0cmluZygpKS5jb2RlVW5pdHMoKSwgezB4RDgwMCwgJ2gnfSkpOwotICAgIEVYUEVD
VF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuZ3Jh
cGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLCAxKSwgU3RyaW5n
VmlldyhiLmNoYXJhY3RlcnMxNigpICsgMSwgMSl9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFy
ZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVQb2lu
dHMoKSwgezB4RDgwMCwgJ2gnfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0
aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlVW5pdHMoKSwgezB4RDgw
MCwgJ2gnfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdW
aWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3
KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSwgMSksIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYo
KS52YWx1ZSgpICsgMSwgMSl9KSk7CiAKICAgICBidWlsZChiLCB7MHgwMzA2fSk7IC8vICJDT01C
SU5JTkcgQlJFVkUiCi0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmlu
Z1ZpZXcoYi50b1N0cmluZygpKS5jb2RlUG9pbnRzKCksIHsweDAzMDZ9KSk7Ci0gICAgRVhQRUNU
X1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2Rl
VW5pdHMoKSwgezB4MDMwNn0pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlv
bnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1Zp
ZXcoYi50b1N0cmluZygpKX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlv
bnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVBvaW50cygpLCB7MHgwMzA2
fSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIu
dG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlVW5pdHMoKSwgezB4MDMwNn0pKTsKKyAgICBFWFBFQ1Rf
VFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUo
KSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSl9
KSk7CiAKICAgICBidWlsZChiLCB7MHgwMzA2LCAweEQ4MDAsIDB4REQ1NSwgJ2gnLCAnZScsICds
JywgJ28nfSk7IC8vIE1peCBvZiBzaW5nbGUgY29kZSB1bml0IGFuZCBtdWx0aSBjb2RlIHVuaXQg
Y29kZSBwb2ludHMKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5n
VmlldyhiLnRvU3RyaW5nKCkpLmNvZGVQb2ludHMoKSwgezB4MDMwNiwgMHgxMDE1NSwgJ2gnLCAn
ZScsICdsJywgJ28nfSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhT
dHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRzKCksIHsweDAzMDYsIDB4RDgwMCwgMHhE
RDU1LCAnaCcsICdlJywgJ2wnLCAnbyd9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJ
dGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHsK
LSAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLCAxKSwKLSAgICAgICAgU3RyaW5n
VmlldyhiLmNoYXJhY3RlcnMxNigpICsgMSwgMiksCi0gICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFy
YWN0ZXJzMTYoKSArIDMsIDEpLAotICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkg
KyA0LCAxKSwKLSAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpICsgNSwgMSksCi0g
ICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSArIDYsIDEpfSkpOworICAgIEVYUEVD
VF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1
ZSgpKS5jb2RlUG9pbnRzKCksIHsweDAzMDYsIDB4MTAxNTUsICdoJywgJ2UnLCAnbCcsICdvJ30p
KTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRv
U3RyaW5nKCkudmFsdWUoKSkuY29kZVVuaXRzKCksIHsweDAzMDYsIDB4RDgwMCwgMHhERDU1LCAn
aCcsICdlJywgJ2wnLCAnbyd9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRp
b25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwg
eworICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSwgMSksCisgICAg
ICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKS52YWx1ZSgpICsgMSwgMiksCisgICAgICAg
IFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKS52YWx1ZSgpICsgMywgMSksCisgICAgICAgIFN0
cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKS52YWx1ZSgpICsgNCwgMSksCisgICAgICAgIFN0cmlu
Z1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKS52YWx1ZSgpICsgNSwgMSksCisgICAgICAgIFN0cmluZ1Zp
ZXcoYi5jaGFyYWN0ZXJzMTYoKS52YWx1ZSgpICsgNiwgMSl9KSk7CiAKICAgICBidWlsZChiLCB7
J2UnLCAweDAzMDF9KTsgLy8gIkNPTUJJTklORyBBQ1VURSIKLSAgICBFWFBFQ1RfVFJVRShjb21w
YXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVQb2ludHMoKSwg
eydlJywgMHgwMzAxfSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhT
dHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRzKCksIHsnZScsIDB4MDMwMX0pKTsKLSAg
ICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5n
KCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi50b1N0cmluZygpKX0pKTsKKyAg
ICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5n
KCkudmFsdWUoKSkuY29kZVBvaW50cygpLCB7J2UnLCAweDAzMDF9KSk7CisgICAgRVhQRUNUX1RS
VUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkp
LmNvZGVVbml0cygpLCB7J2UnLCAweDAzMDF9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxv
b3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmdyYXBoZW1lQ2x1
c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpfSkpOwogCiAgICAgYnVp
bGQoYiwgeydlJywgMHgwMzAxLCAweDAzMDYsICdhJ30pOyAvLyAiQ09NQklOSU5HIEFDVVRFIiAi
Q09NQklOSU5HIEJSRVZFIgotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhT
dHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVBvaW50cygpLCB7J2UnLCAweDAzMDEsIDB4MDMw
NiwgJ2EnfSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdW
aWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRzKCksIHsnZScsIDB4MDMwMSwgMHgwMzA2LCAnYSd9
KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50
b1N0cmluZygpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHsKLSAgICAgICAgU3RyaW5nVmlldyhiLmNo
YXJhY3RlcnMxNigpLCAzKSwKLSAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpICsg
MywgMSksCisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXco
Yi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVQb2ludHMoKSwgeydlJywgMHgwMzAxLCAweDAzMDYs
ICdhJ30pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmll
dyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVVuaXRzKCksIHsnZScsIDB4MDMwMSwgMHgwMzA2
LCAnYSd9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1Zp
ZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwgeworICAgICAgICBT
dHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSwgMyksCisgICAgICAgIFN0cmluZ1Zp
ZXcoYi5jaGFyYWN0ZXJzMTYoKS52YWx1ZSgpICsgMywgMSksCiAgICAgICAgIH0pKTsKIAogICAg
IGJ1aWxkKGIsIHsweDExMTIsIDB4MTE2ZiwgMHgxMWI2LCAweDExMDcsIDB4MTE2MSwgMHgxMUI4
fSk7IC8vIEtvcmVhbiBjb21iaW5pbmcgSmFtbwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29w
SXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVBvaW50cygpLCB7MHgxMTEy
LCAweDExNmYsIDB4MTFiNiwgMHgxMTA3LCAweDExNjEsIDB4MTFCOH0pKTsKLSAgICBFWFBFQ1Rf
VFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVV
bml0cygpLCB7MHgxMTEyLCAweDExNmYsIDB4MTFiNiwgMHgxMTA3LCAweDExNjEsIDB4MTFCOH0p
KTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRv
U3RyaW5nKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwgewotICAgICAgICBTdHJpbmdWaWV3KGIuY2hh
cmFjdGVyczE2KCksIDMpLAotICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkgKyAz
LCAzKX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmll
dyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVBvaW50cygpLCB7MHgxMTEyLCAweDExNmYsIDB4
MTFiNiwgMHgxMTA3LCAweDExNjEsIDB4MTFCOH0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJl
TG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVVuaXRz
KCksIHsweDExMTIsIDB4MTE2ZiwgMHgxMWI2LCAweDExMDcsIDB4MTE2MSwgMHgxMUI4fSkpOwor
ICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJp
bmcoKS52YWx1ZSgpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHsKKyAgICAgICAgU3RyaW5nVmlldyhi
LmNoYXJhY3RlcnMxNigpLnZhbHVlKCksIDMpLAorICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFj
dGVyczE2KCkudmFsdWUoKSArIDMsIDMpfSkpOwogfQogCiBzdGF0aWMgVmVjdG9yPFN0cmluZz4g
dmVjdG9yRnJvbVNwbGl0UmVzdWx0KGNvbnN0IFN0cmluZ1ZpZXc6OlNwbGl0UmVzdWx0JiBzdWJz
dHJpbmdzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Nv
bnRlbnRFeHRlbnNpb25zLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9D
b250ZW50RXh0ZW5zaW9ucy5jcHAKaW5kZXggZGNjZTQ2OC4uMDM4Mzg2NCAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMu
Y3BwCkBAIC0xMjA5LDE1ICsxMjA5LDE4IEBAIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwg
V2lkZU5GQSkKICAgICAgICAgfQogICAgIH0KICAgICBydWxlTGlzdC5hcHBlbmQoJ10nKTsKLSAg
ICAKLSAgICBhdXRvIGJhY2tlbmQgPSBtYWtlQmFja2VuZChydWxlTGlzdC50b1N0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwogCi0gICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVx
dWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvQUFBIiksIHsgQ29udGVudEV4dGVuc2lvbnM6OkFjdGlv
blR5cGU6OkNTU0Rpc3BsYXlOb25lU2VsZWN0b3IgfSk7Ci0gICAgdGVzdFJlcXVlc3QoYmFja2Vu
ZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvWUFBIiksIHsgQ29udGVu
dEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6OkNTU0Rpc3BsYXlOb25lU2VsZWN0b3IgfSk7Ci0gICAg
dGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5v
cmcvWkFBIiksIHsgfSwgMCk7Ci0gICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50
UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvTEFBL0FBQSIpLCB7IH0sIDApOwotICAgIHRlc3RS
ZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL0xB
QS9NQUEiKSwgeyBDb250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6Q1NTRGlzcGxheU5vbmVT
ZWxlY3RvciB9LCAwKTsKLSAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1
ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy8iKSwgeyB9KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBy
dWxlTGlzdC50b1N0cmluZygpKSB7CisgICAgICAgIGF1dG8gYmFja2VuZCA9IG1ha2VCYWNrZW5k
KHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisKKyAgICAgICAgdGVzdFJlcXVlc3QoYmFja2VuZCwg
bWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvQUFBIiksIHsgQ29udGVudEV4
dGVuc2lvbnM6OkFjdGlvblR5cGU6OkNTU0Rpc3BsYXlOb25lU2VsZWN0b3IgfSk7CisgICAgICAg
IHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQu
b3JnL1lBQSIpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpDU1NEaXNwbGF5Tm9u
ZVNlbGVjdG9yIH0pOworICAgICAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRS
ZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy9aQUEiKSwgeyB9LCAwKTsKKyAgICAgICAgdGVzdFJl
cXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvTEFB
L0FBQSIpLCB7IH0sIDApOworICAgICAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1l
bnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy9MQUEvTUFBIiksIHsgQ29udGVudEV4dGVuc2lv
bnM6OkFjdGlvblR5cGU6OkNTU0Rpc3BsYXlOb25lU2VsZWN0b3IgfSwgMCk7CisgICAgICAgIHRl
c3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3Jn
LyIpLCB7IH0pOworICAgIH0gZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogICAgIAogI2lmZGVm
IE5ERUJVRwpAQCAtMTI0Nyw3ICsxMjUwLDEwIEBAIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVz
dCwgTGFyZ2VKdW1wcykKICAgICAgICAgICAgICAgICAgICAgcGF0dGVybi5hcHBlbmQoYzIpOwog
ICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZChjMyk7CiAgICAgICAgICAgICAgICAg
ICAgIHBhdHRlcm4uYXBwZW5kKGM0KTsKLSAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKENv
bnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPaywgcGFyc2Vy
LmFkZFBhdHRlcm4ocGF0dGVybi50b1N0cmluZygpLCB0cnVlLCBwYXR0ZXJuSWQrKykpOworICAg
ICAgICAgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBwYXR0ZXJuLnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoQ29udGVudEV4dGVuc2lvbnM6OlVSTEZp
bHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rLCBwYXJzZXIuYWRkUGF0dGVybigqc3RyaW5nLCB0
cnVlLCBwYXR0ZXJuSWQrKykpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0K
ICAgICAgICAgfQpAQCAtMTMwOCwxNyArMTMxNCwyMCBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lv
blRlc3QsIExhcmdlSnVtcHMpCiAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLmFwcGVu
ZCgneCcpOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgICAgYXV0byBtYXRjaGVzID0gaW50ZXJwcmV0ZXIuaW50
ZXJwcmV0KHBhdHRlcm4udG9TdHJpbmcoKS51dGY4KCksIDApOwotICAgICAgICAgICAgICAgICAg
ICBzd2l0Y2ggKChjMSArIGMyICsgYzMgKyBjNCkgJSA0KSB7Ci0gICAgICAgICAgICAgICAgICAg
IGNhc2UgMDoKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhcmVDb250ZW50cyhtYXRjaGVz
LCB7IH0pOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAg
ICAgIGNhc2UgMToKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgotICAgICAgICAgICAgICAg
ICAgICBjYXNlIDM6Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb21wYXJlQ29udGVudHMobWF0
Y2hlcywge3BhdHRlcm5JZH0pOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
cGF0dGVybi50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIG1hdGNo
ZXMgPSBpbnRlcnByZXRlci5pbnRlcnByZXQoc3RyaW5nLT51dGY4KCksIDApOworICAgICAgICAg
ICAgICAgICAgICAgICAgc3dpdGNoICgoYzEgKyBjMiArIGMzICsgYzQpICUgNCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bXBhcmVDb250ZW50cyhtYXRjaGVzLCB7IH0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAg
ICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzOgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbXBhcmVDb250ZW50cyhtYXRjaGVzLCB7cGF0dGVybklk
fSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAg
ICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgICAgICAgICAgcGF0dGVybklkKys7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtMTM0OCwxMyArMTM1NywxOSBAQCBURVNUX0Yo
Q29udGVudEV4dGVuc2lvblRlc3QsIERlZXBORkEpCiAgICAgU3RyaW5nQnVpbGRlciBsb3RzT2ZB
czsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQogICAgICAgICBsb3Rz
T2ZBcy5hcHBlbmQoJ0EnKTsKLSAgICBFWFBFQ1RfRVEoQ29udGVudEV4dGVuc2lvbnM6OlVSTEZp
bHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rLCBwYXJzZXIuYWRkUGF0dGVybihsb3RzT2ZBcy50
b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGZhbHNlLCAwKSk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gbG90c09mQXMudG9TdHJpbmcoKSkKKyAgICAgICAgRVhQRUNUX0VRKENvbnRlbnRFeHRlbnNp
b25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPaywgcGFyc2VyLmFkZFBhdHRlcm4o
c3RyaW5nLT51dGY4KCkuZGF0YSgpLCBmYWxzZSwgMCkpOworICAgIGVsc2UKKyAgICAgICAgQ1JB
U0goKTsKICAgICAKICAgICAvLyBGSVhNRTogWWFyciBvdWdodCB0byBiZSBhYmxlIHRvIGhhbmRs
ZSAyTUIgcmVndWxhciBleHByZXNzaW9ucy4KICAgICBTdHJpbmdCdWlsZGVyIHRvb01hbnlBczsK
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZSAqIDIwOyArK2kpCiAgICAgICAgIHRv
b01hbnlBcy5hcHBlbmQoJ0EnKTsKLSAgICBFWFBFQ1RfRVEoQ29udGVudEV4dGVuc2lvbnM6OlVS
TEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6OllhcnJFcnJvciwgcGFyc2VyLmFkZFBhdHRlcm4o
dG9vTWFueUFzLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgZmFsc2UsIDApKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSB0b29NYW55QXMudG9TdHJpbmcoKSkKKyAgICAgICAgRVhQRUNUX0VRKENv
bnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpZYXJyRXJyb3Is
IHBhcnNlci5hZGRQYXR0ZXJuKHN0cmluZy0+dXRmOCgpLmRhdGEoKSwgZmFsc2UsIDApKTsKKyAg
ICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgCiAgICAgU3RyaW5nQnVpbGRlciBuZXN0ZWRH
cm91cHM7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkKQEAgLTE0OTAs
MTcgKzE1MDUsMjIgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBJbnZhbGlkSlNPTikK
ICAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJub3RpZnlc
IixcIm5vdGlmaWNhdGlvblwiOltdfSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCIuKlwi
fX1dIiwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFs
aWROb3RpZmljYXRpb24pOwogICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntc
InR5cGVcIjpcIm5vdGlmeVwiLFwibm90aWZpY2F0aW9uXCI6XCJoZXJlJ3MgbXkgbm90aWZpY2F0
aW9uXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIi4qXCJ9fV0iLCB7IH0pOwogICAg
IGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcIm5vdGlmeVwiLFwi
bm90aWZpY2F0aW9uXCI6XCJcXHUxMjM0XCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpc
Ii4qXCJ9fV0iLCB7IH0pOwotICAgIAotICAgIFN0cmluZ0J1aWxkZXIgcnVsZXM7Ci0gICAgcnVs
ZXMuYXBwZW5kKCJbIik7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDQ5OTk5OyArK2kp
Ci0gICAgICAgIHJ1bGVzLmFwcGVuZCgie1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0s
XCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiYVwifX0sIik7Ci0gICAgU3RyaW5nIHJ1bGVz
NTAwMDAgPSBydWxlcy50b1N0cmluZygpOwotICAgIFN0cmluZyBydWxlczUwMDAxID0gcnVsZXMu
dG9TdHJpbmcoKTsKLSAgICBydWxlczUwMDAwLmFwcGVuZCgie1wiYWN0aW9uXCI6e1widHlwZVwi
OlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiYVwifX1dIik7Ci0gICAg
cnVsZXM1MDAwMS5hcHBlbmQoIntcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJp
Z2dlclwiOntcInVybC1maWx0ZXJcIjpcImFcIn19LHtcImFjdGlvblwiOntcInR5cGVcIjpcImJs
b2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcImFcIn19XSIpOwotICAgIGNoZWNr
Q29tcGlsZXJFcnJvcihydWxlczUwMDAwLnV0ZjgoKS5kYXRhKCksIHsgfSk7Ci0gICAgY2hlY2tD
b21waWxlckVycm9yKHJ1bGVzNTAwMDEudXRmOCgpLmRhdGEoKSwgQ29udGVudEV4dGVuc2lvbnM6
OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlRvb01hbnlSdWxlcyk7CisKKyAgICB7CisgICAg
ICAgIFN0cmluZ0J1aWxkZXIgcnVsZXM7CisgICAgICAgIHJ1bGVzLmFwcGVuZCgiWyIpOworICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgNDk5OTk7ICsraSkKKyAgICAgICAgICAgIHJ1
bGVzLmFwcGVuZCgie1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6
e1widXJsLWZpbHRlclwiOlwiYVwifX0sIik7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJ1
bGVzLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIFN0cmluZyBydWxlczUwMDAwID0gKnN0cmlu
ZzsKKyAgICAgICAgICAgIFN0cmluZyBydWxlczUwMDAxID0gKnN0cmluZzsKKyAgICAgICAgICAg
IHJ1bGVzNTAwMDAuYXBwZW5kKCJ7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRy
aWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJhXCJ9fV0iKTsKKyAgICAgICAgICAgIHJ1bGVzNTAw
MDEuYXBwZW5kKCJ7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7
XCJ1cmwtZmlsdGVyXCI6XCJhXCJ9fSx7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxc
InRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJhXCJ9fV0iKTsKKyAgICAgICAgICAgIGNoZWNr
Q29tcGlsZXJFcnJvcihydWxlczUwMDAwLnV0ZjgoKS5kYXRhKCksIHsgfSk7CisgICAgICAgICAg
ICBjaGVja0NvbXBpbGVyRXJyb3IocnVsZXM1MDAwMS51dGY4KCkuZGF0YSgpLCBDb250ZW50RXh0
ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OVG9vTWFueVJ1bGVzKTsKKyAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOworICAgIH0KICAgICAKICAgICBjaGVja0Nv
bXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJc
Ijp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJpZi1kb21haW5cIjp7fX19XSIsIENv
bnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQ29uZGl0
aW9uTGlzdCk7CiAgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwi
OlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwi
aWYtZG9tYWluXCI6WzVdfX1dIiwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25F
cnJvcjo6SlNPTkludmFsaWRDb25kaXRpb25MaXN0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCmluZGV4IDVmMWRjOGIuLmU5NGVmYzQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRv
ci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9y
LmNwcApAQCAtMTA3LDcgKzEwNyw5IEBAIHN0YXRpYyBTdHJpbmcgY3JlYXRlQ29tbWFuZChjb25z
dCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgcGF5bG9hZCkKICAgICBjb21tYW5kLmFwcGVu
ZExpdGVyYWwoIlwiID4gIik7CiAgICAgY29tbWFuZC5hcHBlbmQocGF0aCk7CiAKLSAgICByZXR1
cm4gY29tbWFuZC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGNvbW1hbmQudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3Rh
dGljIFN0cmluZyByZWFkQ29udGVudHNPZkZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKQpAQCAtMjY3
LDEwICsyNjksMTMgQEAgVEVTVF9GKEZpbGVNb25pdG9yVGVzdCwgRGV0ZWN0RGVsZXRpb24pCiAg
ICAgICAgIGNvbW1hbmQuYXBwZW5kTGl0ZXJhbCgicm0gLWYgIik7CiAgICAgICAgIGNvbW1hbmQu
YXBwZW5kKHRlbXBGaWxlUGF0aCgpKTsKIAotICAgICAgICBhdXRvIHJjID0gc3lzdGVtKGNvbW1h
bmQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgQVNTRVJUX05FKHJjLCAtMSk7
Ci0gICAgICAgIGlmIChyYyA9PSAtMSkKLSAgICAgICAgICAgIGRpZEZpbmlzaCA9IHRydWU7Cisg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGNvbW1hbmQudG9TdHJpbmcoKSkgeworICAgICAgICAg
ICAgYXV0byByYyA9IHN5c3RlbShzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAg
QVNTRVJUX05FKHJjLCAtMSk7CisgICAgICAgICAgICBpZiAocmMgPT0gLTEpCisgICAgICAgICAg
ICAgICAgZGlkRmluaXNoID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBDUkFT
SCgpOwogICAgIH0pOwogCiAgICAgVXRpbDo6cnVuKCZkaWRGaW5pc2gpOwpAQCAtMzI0LDEwICsz
MjksMTMgQEAgVEVTVF9GKEZpbGVNb25pdG9yVGVzdCwgRGV0ZWN0Q2hhbmdlQW5kVGhlbkRlbGV0
ZSkKICAgICAgICAgY29tbWFuZC5hcHBlbmRMaXRlcmFsKCJybSAtZiAiKTsKICAgICAgICAgY29t
bWFuZC5hcHBlbmQodGVtcEZpbGVQYXRoKCkpOwogCi0gICAgICAgIGF1dG8gcmMgPSBzeXN0ZW0o
Y29tbWFuZC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBBU1NFUlRfTkUocmMs
IC0xKTsKLSAgICAgICAgaWYgKHJjID09IC0xKQotICAgICAgICAgICAgZGlkRmluaXNoID0gdHJ1
ZTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gY29tbWFuZC50b1N0cmluZygpKSB7CisgICAg
ICAgICAgICBhdXRvIHJjID0gc3lzdGVtKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAg
ICAgICBBU1NFUlRfTkUocmMsIC0xKTsKKyAgICAgICAgICAgIGlmIChyYyA9PSAtMSkKKyAgICAg
ICAgICAgICAgICBkaWRGaW5pc2ggPSB0cnVlOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IENSQVNIKCk7CiAgICAgfSk7CiAKICAgICBVdGlsOjpydW4oJmRpZEZpbmlzaCk7CkBAIC0zNjMs
MTAgKzM3MSwxMyBAQCBURVNUX0YoRmlsZU1vbml0b3JUZXN0LCBEZXRlY3REZWxldGVCdXROb3RT
dWJzZXF1ZW50Q2hhbmdlKQogICAgICAgICBjb21tYW5kLmFwcGVuZExpdGVyYWwoInJtIC1mICIp
OwogICAgICAgICBjb21tYW5kLmFwcGVuZCh0ZW1wRmlsZVBhdGgoKSk7CiAKLSAgICAgICAgYXV0
byByYyA9IHN5c3RlbShjb21tYW5kLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAg
IEFTU0VSVF9ORShyYywgLTEpOwotICAgICAgICBpZiAocmMgPT0gLTEpCi0gICAgICAgICAgICBk
aWRGaW5pc2ggPSB0cnVlOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBjb21tYW5kLnRvU3Ry
aW5nKCkpIHsKKyAgICAgICAgICAgIGF1dG8gcmMgPSBzeXN0ZW0oc3RyaW5nLT51dGY4KCkuZGF0
YSgpKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShyYywgLTEpOworICAgICAgICAgICAgaWYgKHJj
ID09IC0xKQorICAgICAgICAgICAgICAgIGRpZEZpbmlzaCA9IHRydWU7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9KTsKIAogICAgIFV0aWw6OnJ1bigmZGlkRmlu
aXNoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Mb2dn
aW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Mb2dnaW5nLmNwcApp
bmRleCAxZTRjMzQyLi43ZGVkYWQyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvTG9nZ2luZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0xvZ2dpbmcuY3BwCkBAIC05NSw3ICs5NSw5IEBAIHB1YmxpYzoKICAgICAgICAgd2hp
bGUgKChsaW5lID0gZmdldHMoYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgbV9zdGRlcnIpKSkKICAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmQobGluZSk7CiAKLSAgICAgICAgcmV0dXJuIHJlc3VsdC50
b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkK
KyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KIAog
ICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9sb2dnZXIu
Z2V0KCk7IH0KQEAgLTM0MCwxNSArMzQyLDE4IEBAIFRFU1RfRihMb2dnaW5nVGVzdCwgTG9nZ2Vy
SGVscGVyKQogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiTG9nZ2luZ1Rlc3Q6OlRlc3RCb2R5
KCIpOwogICAgIGFwcGVuZFVuc2lnbmVkNjRBc0hleChyZWludGVycHJldF9jYXN0PHVpbnRwdHJf
dD4obG9nSWRlbnRpZmllcigpKSwgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFs
KCIpIik7Ci0gICAgU3RyaW5nIHNpZ25hdHVyZSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgU3RyaW5nIHNp
Z25hdHVyZSA9ICpzdHJpbmc7CiAKLSAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwotICAg
IEVYUEVDVF9UUlVFKHRoaXMtPm91dHB1dCgpLmNvbnRhaW5zKHNpZ25hdHVyZSwgZmFsc2UpKTsK
KyAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKyAgICAgICAgRVhQRUNUX1RSVUUo
dGhpcy0+b3V0cHV0KCkuY29udGFpbnMoc2lnbmF0dXJlLCBmYWxzZSkpOwogCi0gICAgQUxXQVlT
X0xPRyhMT0dJREVOVElGSUVSLCAiV2VsY29tZSBiYWNrIiwgIiBteSBmcmllbmRzIiwgIiB0byB0
aGUgc2hvdyIsICIgdGhhdCBuZXZlciBlbmRzIik7Ci0gICAgU3RyaW5nIHJlc3VsdCA9IHRoaXMt
Pm91dHB1dCgpOwotICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5jb250YWlucyhzaWduYXR1cmUsIGZh
bHNlKSk7Ci0gICAgRVhQRUNUX1RSVUUocmVzdWx0LmNvbnRhaW5zKCJ0byB0aGUgc2hvdyB0aGF0
IG5ldmVyIiwgZmFsc2UpKTsKKyAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAiV2Vs
Y29tZSBiYWNrIiwgIiBteSBmcmllbmRzIiwgIiB0byB0aGUgc2hvdyIsICIgdGhhdCBuZXZlciBl
bmRzIik7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSB0aGlzLT5vdXRwdXQoKTsKKyAgICAgICAg
RVhQRUNUX1RSVUUocmVzdWx0LmNvbnRhaW5zKHNpZ25hdHVyZSwgZmFsc2UpKTsKKyAgICAgICAg
RVhQRUNUX1RSVUUocmVzdWx0LmNvbnRhaW5zKCJ0byB0aGUgc2hvdyB0aGF0IG5ldmVyIiwgZmFs
c2UpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIFdURlNldExvZ0NoYW5u
ZWxMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbFdhcm5pbmcpOwogCkBAIC0zNzEsMTAg
KzM3NiwxMSBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgbG9nKCkKICAgICB7Ci0gICAgICAgIFN0
cmluZyBsb2cgPSBtX2xvZ0J1ZmZlci50b1N0cmluZygpOwotICAgICAgICBtX2xvZ0J1ZmZlci5j
bGVhcigpOwotCi0gICAgICAgIHJldHVybiBsb2c7CisgICAgICAgIGlmIChhdXRvIGxvZyA9IG1f
bG9nQnVmZmVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIG1fbG9nQnVmZmVyLmNsZWFyKCk7
CisgICAgICAgICAgICByZXR1cm4gbG9nOworICAgICAgICB9CisgICAgICAgIENSQVNIKCk7CiAg
ICAgfQogCiAgICAgV1RGTG9nQ2hhbm5lbCBjaGFubmVsKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0
Q2hhbm5lbDsgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L1RleHRDb2RlYy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVGV4dENv
ZGVjLmNwcAppbmRleCBmZDA1MDUwLi45ZTU1NTMwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvVGV4dENvZGVjLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvVGV4dENvZGVjLmNwcApAQCAtOTgsNyArOTgsOSBAQCBzdGF0aWMg
Y29uc3QgY2hhciogdGVzdERlY29kZShjb25zdCBjaGFyKiBlbmNvZGluZ05hbWUsIHN0ZDo6aW5p
dGlhbGl6ZXJfbGlzdDxjbwogICAgICAgICBpZiAoc2F3RXJyb3IpCiAgICAgICAgICAgICByZXN1
bHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiBFUlJPUiIpOwogICAgIH0KLSAgICByZXR1cm4gZXNj
YXBlTm9uQVNDSUlQcmludGFibGVDaGFyYWN0ZXJzKHJlc3VsdEJ1aWxkZXIudG9TdHJpbmcoKSk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0QnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gZXNjYXBlTm9uQVNDSUlQcmludGFibGVDaGFyYWN0ZXJzKCpzdHJpbmcpOworICAg
IENSQVNIKCk7CiB9CiAKIFRFU1QoVGV4dENvZGVjLCBVVEY4KQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9XVEZTdHJpbmdVdGlsaXRpZXMuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
V1RGU3RyaW5nVXRpbGl0aWVzLmgKaW5kZXggZWNiYTljNC4uZjVkNDFlZCAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9XVEZTdHJpbmdVdGlsaXRpZXMuaAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1dURlN0cmluZ1V0aWxpdGllcy5oCkBAIC01MSw1ICs1MSw3IEBAIHN0YXRpYyBT
dHJpbmcgdXRmMTZTdHJpbmcoY29uc3QgY2hhcjE2X3QgKCZ1cmwpW2xlbmd0aF0pCiAgICAgYnVp
bGRlci5yZXNlcnZlQ2FwYWNpdHkobGVuZ3RoIC0gMSk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBsZW5ndGggLSAxOyArK2kpCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHN0YXRpY19jYXN0
PFVDaGFyPih1cmxbaV0pKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAppbmRleCAwNTU1NDE4
Li41MGIxMjE0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCkBAIC0xMDYsNyArMTA2LDkgQEAg
c3RhdGljIFdURjo6U3RyaW5nIGR1bXBQYXRoKEpTR2xvYmFsQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiBub2RlVmFsdWUpCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGR1bXBQ
YXRoKGNvbnRleHQsIChKU09iamVjdFJlZilwYXJlbnROb2RlKSk7CiAgICAgfQogCi0gICAgcmV0
dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIHN0YXRpYyBXVEY6OlN0cmluZyBkdW1wUGF0aChXS0J1bmRsZVBhZ2VSZWYgcGFn
ZSwgV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiB3b3JsZCwgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIG5v
ZGUpCkBAIC0xNTYsNyArMTU4LDkgQEAgc3RhdGljIFdURjo6U3RyaW5nIHJhbmdlVG9TdHIoV0tC
dW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgd29ybGQKICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZE51bWJlcihlbmRPZmZzZXQpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiIG9mICIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGR1bXBQYXRoKGNv
bnRleHQsIGVuZE5vZGVPYmplY3QpKTsKLSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFdLUmV0YWlu
UHRyPFdLU3RyaW5nUmVmPiBOYXZpZ2F0aW9uVHlwZVRvU3RyaW5nKFdLRnJhbWVOYXZpZ2F0aW9u
VHlwZSB0eXBlKQpAQCAtMTg1LDcgKzE4OSw5IEBAIHN0YXRpYyBXVEY6OlN0cmluZyBzdHlsZURl
Y1RvU3RyKFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvblJlZiBzdHlsZSkKICAgICAvLyB0aGUg
ZWRpdGluZyBjbGllbnQgaWYgdGhlIHN0eWxpbmcgb3BlcmF0aW9uIHNvdXJjZSBpcyBDb21tYW5k
RnJvbURPTSBvciBDb21tYW5kRnJvbURPTVdpdGhVc2VySW50ZXJmYWNlLgogICAgIFN0cmluZ0J1
aWxkZXIgc3RyaW5nQnVpbGRlcjsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIjxE
T01DU1NTdHlsZURlY2xhcmF0aW9uIEFERFJFU1M+Iik7Ci0gICAgcmV0dXJuIHN0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRp
YyBXVEY6OlN0cmluZyBzZWN1cml0eU9yaWdpblRvU3RyKFdLU2VjdXJpdHlPcmlnaW5SZWYgb3Jp
Z2luKQpAQCAtMTk5LDcgKzIwNSw5IEBAIHN0YXRpYyBXVEY6OlN0cmluZyBzZWN1cml0eU9yaWdp
blRvU3RyKFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luKQogICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kTnVtYmVyKFdLU2VjdXJpdHlPcmlnaW5HZXRQb3J0KG9yaWdpbikpOwogICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kKCd9Jyk7CiAKLSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFdURjo6U3RyaW5n
IGZyYW1lVG9TdHIoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSkKQEAgLTIyMyw3ICsyMzEsOSBAQCBz
dGF0aWMgV1RGOjpTdHJpbmcgZnJhbWVUb1N0cihXS0J1bmRsZUZyYW1lUmVmIGZyYW1lKQogICAg
ICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJmcmFtZSAoYW5vbnltb3VzKSIp
OwogICAgIH0KICAgICAKLSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIGlubGluZSBib29sIGlzTG9j
YWxGaWxlU2NoZW1lKFdLU3RyaW5nUmVmIHNjaGVtZSkKQEAgLTQ3Niw3ICs0ODYsMTAgQEAgc3Rh
dGljIHZvaWQgZHVtcExvYWRFdmVudChXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCBjaGFy
KiBldmVudE5hbWUpCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgLSAiKTsKICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZChldmVudE5hbWUpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kKCdcbicpOwotICAgIEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5vdXRwdXRUZXh0KHN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkub3V0
cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHN0YXRp
YyBpbmxpbmUgdm9pZCBkdW1wUmVxdWVzdERlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0
KFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0LCBTdHJpbmdCdWlsZGVyJiBzdHJpbmdCdWlsZGVyKQpA
QCAtOTQwLDcgKzk1MywxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZHVtcCgpCiAgICAg
ICAgICAgICBpbmplY3RlZEJ1bmRsZS5zZXRSZXBhaW50UmVjdHMoYWRvcHRXSyhXS0J1bmRsZVBh
Z2VDb3B5VHJhY2tlZFJlcGFpbnRSZWN0cyhtX3BhZ2UpKS5nZXQoKSk7CiAgICAgfQogCi0gICAg
aW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5q
ZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNI
KCk7CiAgICAgaW5qZWN0ZWRCdW5kbGUuZG9uZSgpOwogfQogCkBAIC05ODgsNyArMTAwNCwxMCBA
QCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV0tTdHJp
bmdSZWYgdGl0bGUsIFdLQnVuZGxlRnJhbQogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExp
dGVyYWwoIidcbiIpOwogICAgIH0KIAotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmlu
Zyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxl
UGFnZTo6ZGlkQ2xlYXJXaW5kb3dGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS0J1
bmRsZVNjcmlwdFdvcmxkUmVmIHdvcmxkKQpAQCAtMTA0Myw3ICsxMDYyLDEwIEBAIHZvaWQgSW5q
ZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV0tCdW5k
bGVQYWdlUmVmLCBXS0J1CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgLSB3aWxs
UGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkw6ICIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5k
KHBhdGhTdWl0YWJsZUZvclRlc3RSZXN1bHQodXJsKSk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmRMaXRlcmFsKCIgXG4iKTsKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOwor
ICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6
OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmIGZyYW1l
LCBXS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlIHR5cGUpCkBAIC0xMDc3LDcgKzEwOTksMTAg
QEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1l
KFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUpCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiIC0gaGFzICIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcihwZW5k
aW5nRnJhbWVVbmxvYWRFdmVudHMpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVy
YWwoIiBvbnVubG9hZCBoYW5kbGVyKHMpXG4iKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0
cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRs
ZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgp
OwogICAgIH0KIH0KIApAQCAtMTE1MCw3ICsxMTc1LDEwIEBAIFdLVVJMUmVxdWVzdFJlZiBJbmpl
Y3RlZEJ1bmRsZVBhZ2U6OndpbGxTZW5kUmVxdWVzdEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBw
YWdlCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIHJlZGlyZWN0UmVzcG9u
c2UgIik7CiAgICAgICAgIGR1bXBSZXNwb25zZURlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVz
dWx0KHJlc3BvbnNlLCBzdHJpbmdCdWlsZGVyLCBpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCkt
PnNob3VsZER1bXBBbGxIVFRQUmVkaXJlY3RlZFJlc3BvbnNlSGVhZGVycygpKTsKICAgICAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1
dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5n
ID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUu
b3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsK
ICAgICB9CiAKICAgICBpZiAoaW5qZWN0ZWRCdW5kbGUuaXNUZXN0UnVubmluZygpICYmIGluamVj
dGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+d2lsbFNlbmRSZXF1ZXN0UmV0dXJuc051bGwoKSkKQEAg
LTExODYsNyArMTIxNCwxMCBAQCBXS1VSTFJlcXVlc3RSZWYgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3
aWxsU2VuZFJlcXVlc3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZQogICAgICAgICAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBV
UkwgIik7CiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyh1cmxT
dHJpbmcpKTsKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAg
ICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkp
OworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgICAgICB9CiAgICAgfQpAQCAtMTIxNSw3ICsxMjQ2LDEwIEBAIHZv
aWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlUmVzcG9uc2VGb3JSZXNvdXJjZShXS0J1
bmRsZVBhZ2VSZWYgcGFnZSwgV0tCCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiIC0gZGlkUmVjZWl2ZVJlc3BvbnNlICIpOwogICAgICAgICBkdW1wUmVzcG9uc2VEZXNjcmlw
dGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChyZXNwb25zZSwgc3RyaW5nQnVpbGRlcik7CiAgICAg
ICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBpbmplY3RlZEJ1bmRsZS5v
dXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGluamVjdGVkQnVu
ZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNI
KCk7CiAgICAgfQogCiAKQEAgLTEyMzksNyArMTI3MywxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxl
UGFnZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2Us
IFdLQgogCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7CiAKLSAgICBpbmplY3RlZEJ1
bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRs
ZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAog
dm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoRm9yUmVzb3Vy
Y2UoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCB1aW50NjRfdCwgdWludDY0X3Qp
CkBAIC0xMjU4LDcgKzEyOTUsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZpbmlz
aExvYWRGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWUKICAgICBTdHJp
bmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7CiAgICAgZHVtcFJlc291cmNlVVJMKGlkZW50aWZpZXIs
IHN0cmluZ0J1aWxkZXIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIC0gZGlk
RmluaXNoTG9hZGluZ1xuIik7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsK
KyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdl
OjpkaWRGYWlsTG9hZEZvclJlc291cmNlKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJl
ZiwgdWludDY0X3QgaWRlbnRpZmllciwgV0tFcnJvclJlZiBlcnJvcikKQEAgLTEyNzYsNyArMTMx
NiwxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmFpbExvYWRGb3JSZXNvdXJjZShX
S0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZQogCiAgICAgZHVtcEVycm9yRGVzY3JpcHRp
b25TdWl0YWJsZUZvclRlc3RSZXN1bHQoZXJyb3IsIHN0cmluZ0J1aWxkZXIpOwogICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmlu
Zyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiBib29sIEluamVjdGVkQnVuZGxl
UGFnZTo6c2hvdWxkQ2FjaGVSZXNwb25zZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVS
ZWYsIHVpbnQ2NF90IGlkZW50aWZpZXIpCkBAIC0xMjkxLDcgKzEzMzQsMTAgQEAgYm9vbCBJbmpl
Y3RlZEJ1bmRsZVBhZ2U6OnNob3VsZENhY2hlUmVzcG9uc2UoV0tCdW5kbGVQYWdlUmVmLCBXS0J1
bmRsZUZyYW1lUmVmLAogICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsKICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZE51bWJlcihpZGVudGlmaWVyKTsKICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZExpdGVyYWwoIiAtIHdpbGxDYWNoZVJlc3BvbnNlOiBjYWxsZWRcbiIpOwotICAgIGluamVj
dGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGluamVjdGVk
QnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwog
CiAgICAgLy8gVGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgdGhlIGNhY2hlIHRoZSByZXNwb25zZS4K
ICAgICByZXR1cm4gdHJ1ZTsKQEAgLTEzMzUsNyArMTM4MSwxMCBAQCBXS0J1bmRsZVBhZ2VQb2xp
Y3lBY3Rpb24gSW5qZWN0ZWRCdW5kbGVQYWdlOjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKFdLQgogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiBzaG91bGQgb3Bl
biBVUkxzIGV4dGVybmFsbHkgLSAiKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoV0tC
dW5kbGVOYXZpZ2F0aW9uQWN0aW9uR2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMcyhuYXZpZ2F0aW9u
QWN0aW9uKSA/ICJ5ZXMiIDogIm5vIik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdc
bicpOwotICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgaWYgKCFpbmpl
Y3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPmlzUG9saWN5RGVsZWdhdGVFbmFibGVkKCkpCkBAIC0x
MzYzLDcgKzE0MTIsMTAgQEAgV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uIEluamVjdGVkQnVuZGxl
UGFnZTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS0IKICAgICB9CiAKICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0
KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5n
QnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpz
dHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIGluamVjdGVkQnVuZGxl
LnRlc3RSdW5uZXIoKS0+bm90aWZ5RG9uZSgpOwogCkBAIC0xMzg0LDcgKzE0MzYsMTAgQEAgV0tC
dW5kbGVQYWdlUG9saWN5QWN0aW9uIEluamVjdGVkQnVuZGxlUGFnZTo6ZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2UoV0tCdW5kbGVQYWcKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFs
KCJQb2xpY3kgZGVsZWdhdGU6IHJlc291cmNlIGlzIGFuIGF0dGFjaG1lbnQsIHN1Z2dlc3RlZCBm
aWxlIG5hbWUgXCciKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQodG9XVEZTdHJpbmco
ZmlsZW5hbWUpKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcJ1xuIik7
Ci0gICAgICAgIEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5vdXRwdXRUZXh0KHN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5v
dXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwog
ICAgIH0KIAogICAgIGlmIChpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCkgJiYgaW5qZWN0ZWRC
dW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGREZWNpZGVSZXNwb25zZVBvbGljeUFmdGVyRGVsYXko
KSkKQEAgLTE0ODEsMTAgKzE1MzYsMTMgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxB
ZGRNZXNzYWdlVG9Db25zb2xlKFdLU3RyaW5nUmVmIG1lc3NhZ2UsIHVpbnQzMl90IGwKICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZChtZXNzYWdlU3RyaW5nKTsKICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZCgnXG4nKTsKIAotICAgIGlmIChpbmplY3RlZEJ1bmRsZS5kdW1wSlNDb25zb2xlTG9nSW5T
dGRFcnIoKSkKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUuZHVtcFRvU3RkRXJyKHN0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKSk7Ci0gICAgZWxzZQotICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRU
ZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIGlmIChpbmplY3RlZEJ1bmRsZS5kdW1w
SlNDb25zb2xlTG9nSW5TdGRFcnIoKSkKKyAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLmR1bXBU
b1N0ZEVycigqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5k
bGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICB9IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0K
IAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxTZXRTdGF0dXNiYXJUZXh0KFdLU3RyaW5n
UmVmIHN0YXR1c2JhclRleHQpCkBAIC0xNTAwLDcgKzE1NTgsMTAgQEAgdm9pZCBJbmplY3RlZEJ1
bmRsZVBhZ2U6OndpbGxTZXRTdGF0dXNiYXJUZXh0KFdLU3RyaW5nUmVmIHN0YXR1c2JhclRleHQp
CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJVSSBERUxFR0FURSBTVEFUVVMgQ0FM
TEJBQ0s6IHNldFN0YXR1c1RleHQ6Iik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQodG9XVEZT
dHJpbmcoc3RhdHVzYmFyVGV4dCkpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwot
ICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBD
UkFTSCgpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFJ1bkphdmFTY3JpcHRB
bGVydChXS1N0cmluZ1JlZiBtZXNzYWdlLCBXS0J1bmRsZUZyYW1lUmVmKQpAQCAtMTUxMyw3ICsx
NTc0LDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUnVuSmF2YVNjcmlwdEFsZXJ0
KFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLQnVuZGxlRnJhCiAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJBTEVSVDogIik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQodG9XVEZTdHJp
bmcobWVzc2FnZSkpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIGluamVj
dGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGluamVjdGVk
QnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwog
fQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFJ1bkphdmFTY3JpcHRDb25maXJtKFdL
U3RyaW5nUmVmIG1lc3NhZ2UsIFdLQnVuZGxlRnJhbWVSZWYpCkBAIC0xNTI2LDcgKzE1OTAsMTAg
QEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxSdW5KYXZhU2NyaXB0Q29uZmlybShXS1N0
cmluZ1JlZiBtZXNzYWdlLCBXS0J1bmRsZUYKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVy
YWwoIkNPTkZJUk06ICIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5nKG1l
c3NhZ2UpKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBpbmplY3RlZEJ1
bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRs
ZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAog
dm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxSdW5KYXZhU2NyaXB0UHJvbXB0KFdLU3RyaW5n
UmVmIG1lc3NhZ2UsIFdLU3RyaW5nUmVmIGRlZmF1bHRWYWx1ZSwgV0tCdW5kbGVGcmFtZVJlZikK
QEAgLTE1MzcsNyArMTYwNCwxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFJ1bkph
dmFTY3JpcHRQcm9tcHQoV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tTdHJpbmdSZQogICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCBkZWZhdWx0IHRleHQ6ICIpOwogICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5nKGRlZmF1bHRWYWx1ZSkpOwogICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kKCdcbicpOwotICAgIEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5vdXRwdXRU
ZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9u
KCkub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAK
IHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWFjaEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5R
dW90YShXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgaW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVk
KQpAQCAtMTU1Niw3ICsxNjI2LDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWFj
aEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXS1NlY3VyaXR5T3JpZ2luUmVmCiAgICAgICAg
IHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIHRvdGFsU3BhY2VOZWVkZWQ6fiIpOwogICAg
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcih0cnVuY2F0ZWRTcGFjZU5lZWRlZCk7CiAg
ICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBpbmplY3RlZEJ1bmRs
ZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGluamVjdGVk
QnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENS
QVNIKCk7CiAgICAgfQogCiAgICAgaWYgKGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hv
dWxkRGlzYWxsb3dJbmNyZWFzZUZvckFwcGxpY2F0aW9uQ2FjaGVRdW90YSgpKQpAQCAtMTU3Niw3
ICsxNjQ5LDEwIEBAIHVpbnQ2NF90IEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRXhjZWVkRGF0YWJh
c2VRdW90YShXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwKICAgICAgICAgc3RyaW5nQnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCIgZGF0YWJhc2U6Iik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kKHRvV1RGU3RyaW5nKGRhdGFiYXNlTmFtZSkpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWls
ZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJp
bmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIHVp
bnQ2NF90IGRlZmF1bHRRdW90YSA9IDUgKiAxMDI0ICogMTAyNDsKQEAgLTE1OTUsNyArMTY3MSwx
MCBAQCB1aW50NjRfdCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEV4Y2VlZERhdGFiYXNlUXVvdGEo
V0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sCiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZExpdGVyYWwoIlVJIERFTEVHQVRFIERBVEFCQVNFIENBTExCQUNLOiBpbmNyZWFzZWQgcXVv
dGEgdG8gIik7CiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcihuZXdRdW90
YSk7CiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgICAg
IGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAg
ICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KICAgICB9CiAg
ICAgcmV0dXJuIG5ld1F1b3RhOwpAQCAtMTY2OSw3ICsxNzQ4LDEwIEBAIGJvb2wgSW5qZWN0ZWRC
dW5kbGVQYWdlOjpzaG91bGRCZWdpbkVkaXRpbmcoV0tCdW5kbGVSYW5nZUhhbmRsZVJlZiByYW5n
ZSkKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJFRElUSU5HIERFTEVHQVRF
OiBzaG91bGRCZWdpbkVkaXRpbmdJbkRPTVJhbmdlOiIpOwogICAgICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZChyYW5nZVRvU3RyKG1fcGFnZSwgbV93b3JsZC5nZXQoKSwgcmFuZ2UpKTsKICAgICAg
ICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91
dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5k
bGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0go
KTsKICAgICB9CiAgICAgcmV0dXJuIGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxk
QWxsb3dFZGl0aW5nKCk7CiB9CkBAIC0xNjg1LDcgKzE3NjcsMTAgQEAgYm9vbCBJbmplY3RlZEJ1
bmRsZVBhZ2U6OnNob3VsZEVuZEVkaXRpbmcoV0tCdW5kbGVSYW5nZUhhbmRsZVJlZiByYW5nZSkK
ICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJFRElUSU5HIERFTEVHQVRFOiBz
aG91bGRFbmRFZGl0aW5nSW5ET01SYW5nZToiKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmQocmFuZ2VUb1N0cihtX3BhZ2UsIG1fd29ybGQuZ2V0KCksIHJhbmdlKSk7CiAgICAgICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRU
ZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91
dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAg
ICAgfQogICAgIHJldHVybiBpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZEFsbG93
RWRpdGluZygpOwogfQpAQCAtMTcxMSw3ICsxNzk2LDEwIEBAIGJvb2wgSW5qZWN0ZWRCdW5kbGVQ
YWdlOjpzaG91bGRJbnNlcnROb2RlKFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBub2RlLCBXS0J1bmRs
ZVJhCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIGdpdmVuQWN0aW9uOiIp
OwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChpbnNlcnRhY3Rpb25zdHJpbmdbYWN0aW9u
XSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBpbmplY3Rl
ZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlm
IChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGlu
amVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIENSQVNIKCk7CiAgICAgfQogICAgIHJldHVybiBpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVy
KCktPnNob3VsZEFsbG93RWRpdGluZygpOwogfQpAQCAtMTczNyw3ICsxODI1LDEwIEBAIGJvb2wg
SW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRJbnNlcnRUZXh0KFdLU3RyaW5nUmVmIHRleHQsIFdL
QnVuZGxlUmFuZ2VIYW5kbGVSCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
IGdpdmVuQWN0aW9uOiIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChpbnNlcnRhY3Rp
b25zdHJpbmdbYWN0aW9uXSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwot
ICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmco
KSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIHJldHVybiBpbmplY3RlZEJ1
bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZEFsbG93RWRpdGluZygpOwogfQpAQCAtMTc1Myw3ICsx
ODQ0LDEwIEBAIGJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGREZWxldGVSYW5nZShXS0J1
bmRsZVJhbmdlSGFuZGxlUmVmIHJhbmdlKQogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExp
dGVyYWwoIkVESVRJTkcgREVMRUdBVEU6IHNob3VsZERlbGV0ZURPTVJhbmdlOiIpOwogICAgICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZChyYW5nZVRvU3RyKG1fcGFnZSwgbV93b3JsZC5nZXQoKSwg
cmFuZ2UpKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGlu
amVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAg
ICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgcmV0dXJuIGluamVjdGVkQnVuZGxlLnRlc3RS
dW5uZXIoKS0+c2hvdWxkQWxsb3dFZGl0aW5nKCk7CiB9CkBAIC0xNzg0LDcgKzE4NzgsMTAgQEAg
Ym9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UoV0tCdW5k
bGVSYW5nZUhhbmRsZVJlZiBmcm9tUmEKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRl
cmFsKCIgc3RpbGxTZWxlY3Rpbmc6Iik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGJv
b2xzdHJpbmdbc3RpbGxTZWxlY3RpbmddKTsgCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5k
KCdcbicpOwotICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIu
dG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIHJldHVybiBp
bmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZEFsbG93RWRpdGluZygpOwogfQpAQCAt
MTgwMiw3ICsxODk5LDEwIEBAIGJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRBcHBseVN0
eWxlKFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvblJlZiBzdHlsZSwKICAgICAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgdG9FbGVtZW50c0luRE9NUmFuZ2U6Iik7CiAgICAgICAg
IHN0cmluZ0J1aWxkZXIuYXBwZW5kKHJhbmdlVG9TdHIobV9wYWdlLCBtX3dvcmxkLmdldCgpLCBy
YW5nZSkpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaW5q
ZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAg
ICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICByZXR1cm4gaW5qZWN0ZWRCdW5kbGUudGVzdFJ1
bm5lcigpLT5zaG91bGRBbGxvd0VkaXRpbmcoKTsKIH0KQEAgLTE4MTksNyArMTkxOSwxMCBAQCB2
b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQmVnaW5FZGl0aW5nKFdLU3RyaW5nUmVmIG5vdGlm
aWNhdGlvbk5hbWUpCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJFRElUSU5HIERF
TEVHQVRFOiB3ZWJWaWV3RGlkQmVnaW5FZGl0aW5nOiIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kKHRvV1RGU3RyaW5nKG5vdGlmaWNhdGlvbk5hbWUpKTsKICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZCgnXG4nKTsKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIu
dG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVs
c2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEVu
ZEVkaXRpbmcoV0tTdHJpbmdSZWYgbm90aWZpY2F0aW9uTmFtZSkKQEAgLTE4MzQsNyArMTkzNywx
MCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRW5kRWRpdGluZyhXS1N0cmluZ1JlZiBu
b3RpZmljYXRpb25OYW1lKQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRURJVElO
RyBERUxFR0FURTogd2ViVmlld0RpZEVuZEVkaXRpbmc6Iik7CiAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmQodG9XVEZTdHJpbmcobm90aWZpY2F0aW9uTmFtZSkpOwogICAgIHN0cmluZ0J1aWxkZXIu
YXBwZW5kKCdcbicpOwotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRl
ci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAg
ZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlk
Q2hhbmdlKFdLU3RyaW5nUmVmIG5vdGlmaWNhdGlvbk5hbWUpCkBAIC0xODQ5LDcgKzE5NTUsMTAg
QEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZENoYW5nZShXS1N0cmluZ1JlZiBub3RpZmlj
YXRpb25OYW1lKQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRURJVElORyBERUxF
R0FURTogd2ViVmlld0RpZENoYW5nZToiKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dU
RlN0cmluZyhub3RpZmljYXRpb25OYW1lKSk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xu
Jyk7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAg
ICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRDaGFuZ2VTZWxl
Y3Rpb24oV0tTdHJpbmdSZWYgbm90aWZpY2F0aW9uTmFtZSkKQEAgLTE4NjQsNyArMTk3MywxMCBA
QCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2hhbmdlU2VsZWN0aW9uKFdLU3RyaW5nUmVm
IG5vdGlmaWNhdGlvbk5hbWUpCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJFRElU
SU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOiIpOwogICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5nKG5vdGlmaWNhdGlvbk5hbWUpKTsKICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmlu
Z0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcp
OworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogI2lmIEVOQUJMRShGVUxMU0NSRUVO
X0FQSSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuY3BwCmluZGV4IGU2MmViOTMuLjkyNjg4NDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMTY3OCwx
MCArMTY3OCwxMyBAQCB2b2lkIFRlc3RSdW5uZXI6OnN0YXRpc3RpY3NEaWRSdW5UZWxlbWV0cnlD
YWxsYmFjayh1bnNpZ25lZCB0b3RhbFByZXZhbGVudFJlc291cgogICAgIHN0cmluZ0J1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiLCBcInRvcDNTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5zXCIgOiAi
KTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcih0b3AzU3ViZnJhbWVVbmRlclRvcEZy
YW1lT3JpZ2lucyk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgfSIpOworCisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAg
IEpTVmFsdWVSZWYgcmVzdWx0ID0gSlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmluZyhjb250ZXh0LCBK
U1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmctPnV0ZjgoKS5kYXRhKCkpKTsKICAg
ICAKLSAgICBKU1ZhbHVlUmVmIHJlc3VsdCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmcoY29u
dGV4dCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpKTsKLSAgICAKLSAgICBjYWxsVGVzdFJ1bm5lckNhbGxiYWNrKFN0
YXRpc3RpY3NEaWRSdW5UZWxlbWV0cnlDYWxsYmFja0lELCAxLCAmcmVzdWx0KTsKKyAgICAgICAg
Y2FsbFRlc3RSdW5uZXJDYWxsYmFjayhTdGF0aXN0aWNzRGlkUnVuVGVsZW1ldHJ5Q2FsbGJhY2tJ
RCwgMSwgJnJlc3VsdCk7CisgICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQg
VGVzdFJ1bm5lcjo6c3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCkKQEAgLTE4OTEsMTAgKzE4OTQs
MTMgQEAgdm9pZCBUZXN0UnVubmVyOjpjYWxsRGlkUmVjZWl2ZUFsbFN0b3JhZ2VBY2Nlc3NFbnRy
aWVzQ2FsbGJhY2soVmVjdG9yPFN0cmluZz4mIGQKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJcIiIpOwogICAgIH0KICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwo
Il0iKTsKLSAgICAKLSAgICBKU1ZhbHVlUmVmIHJlc3VsdCA9IEpTVmFsdWVNYWtlRnJvbUpTT05T
dHJpbmcoY29udGV4dCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyaW5nQnVpbGRl
ci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKIAotICAgIGNhbGxUZXN0UnVubmVyQ2FsbGJh
Y2soQWxsU3RvcmFnZUFjY2Vzc0VudHJpZXNDYWxsYmFja0lELCAxLCAmcmVzdWx0KTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgSlNW
YWx1ZVJlZiByZXN1bHQgPSBKU1ZhbHVlTWFrZUZyb21KU09OU3RyaW5nKGNvbnRleHQsIEpTU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZy0+dXRmOCgpLmRhdGEoKSkpOworCisgICAg
ICAgIGNhbGxUZXN0UnVubmVyQ2FsbGJhY2soQWxsU3RvcmFnZUFjY2Vzc0VudHJpZXNDYWxsYmFj
a0lELCAxLCAmcmVzdWx0KTsKKyAgICB9IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogI2lm
IFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAK
aW5kZXggNjhjNDljOC4uZjNiYTdmZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKQEAgLTE4ODEsNyArMTg4MSwxMCBAQCBXS1N0cmluZ1JlZiBUZXN0Q29udHJv
bGxlcjo6ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUoV0tDb250ZXh0UmVm
LAogICAgICAgICBidWlsZGVyLmFwcGVuZCgiRG93bmxvYWRpbmcgVVJMIHdpdGggc3VnZ2VzdGVk
IGZpbGVuYW1lIFwiIik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHN1Z2dlc3RlZEZpbGVuYW1l
KTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoIlwiXG4iKTsKLSAgICAgICAgbV9jdXJyZW50SW52
b2NhdGlvbi0+b3V0cHV0VGV4dChidWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0
byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBtX2N1cnJlbnRJbnZv
Y2F0aW9uLT5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBD
UkFTSCgpOwogICAgIH0KIAogICAgIGNvbnN0IGNoYXIqIGR1bXBSZW5kZXJUcmVlVGVtcCA9IGxp
YnJhcnlQYXRoRm9yVGVzdGluZygpOwpAQCAtMTkxMSw3ICsxOTE0LDEwIEBAIHZvaWQgVGVzdENv
bnRyb2xsZXI6OmRvd25sb2FkRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0VG9VUkwoV0tDb250ZXh0
UmVmLCBXS0Rvd25sCiAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB1cmxTdHJpbmdX
SyA9IGFkb3B0V0soV0tVUkxDb3B5U3RyaW5nKHVybCkpOwogICAgICAgICBidWlsZGVyLmFwcGVu
ZCh0b1NURCh1cmxTdHJpbmdXSykuY19zdHIoKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiXCIuXG4iKTsKLSAgICAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+b3V0cHV0VGV4dChi
dWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KCpz
dHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIH0KIApA
QCAtMTkzNCw3ICsxOTQwLDEwIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlkRmFp
bChXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYsIFdLRXJyb3JSZWYgZXJyCiAgICAgICAgIGVy
cm9yQnVpbGRlci5hcHBlbmQodG9XVEZTdHJpbmcoZXJyb3JEZXNjcmlwdGlvbikpOwogICAgICAg
ICBlcnJvckJ1aWxkZXIuYXBwZW5kKCJcbiIpOwogCi0gICAgICAgIG1fY3VycmVudEludm9jYXRp
b24tPm91dHB1dFRleHQoZXJyb3JCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0
byBzdHJpbmcgPSBlcnJvckJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIG1fY3VycmVu
dEludm9jYXRpb24tPm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIENSQVNIKCk7CiAgICAgfQogICAgIG1fY3VycmVudEludm9jYXRpb24tPm5vdGlmeURvd25s
b2FkRG9uZSgpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApp
bmRleCBjZDVkYjBhLi5lZTJmNTUyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcApAQCAtMjQ4LDkgKzI0OCwxMiBAQCB2b2lkIFRlc3RJbnZvY2F0aW9uOjpmb3Jj
ZVJlcGFpbnREb25lQ2FsbGJhY2soV0tFcnJvclJlZiBlcnJvciwgdm9pZCogY29udGV4dCkKIAog
dm9pZCBUZXN0SW52b2NhdGlvbjo6ZHVtcFJlc3VsdHMoKQogewotICAgIGlmIChtX3RleHRPdXRw
dXQubGVuZ3RoKCkgfHwgIW1fYXVkaW9SZXN1bHQpCi0gICAgICAgIGR1bXAobV90ZXh0T3V0cHV0
LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgZWxzZQorICAgIGlmIChtX3RleHRPdXRw
dXQubGVuZ3RoKCkgfHwgIW1fYXVkaW9SZXN1bHQpIHsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5n
ID0gbV90ZXh0T3V0cHV0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICBkdW1wKHN0cmluZy0+dXRm
OCgpLmRhdGEoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CisgICAgfSBl
bHNlCiAgICAgICAgIGR1bXBBdWRpbyhtX2F1ZGlvUmVzdWx0LmdldCgpKTsKIAogICAgIGlmICht
X2R1bXBQaXhlbHMpIHsKLS0gCjIuOS4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339004</attachid>
            <date>2018-04-27 10:46:41 -0700</date>
            <delta_ts>2018-04-27 11:44:44 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Teach-StringBuilder-that-it-is-fallible.patch</filename>
            <type>text/plain</type>
            <size>460894</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSAwZWMxNjg4YWY2NTI1MzFkZTk4ODZhZmNmMmQxMTViNTJlZjU5OTBhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBXZWQsIDI1IEFwciAyMDE4IDIxOjUwOjI0IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gVGVhY2gg
U3RyaW5nQnVpbGRlciB0aGF0IGl0IGlzIGZhbGxpYmxlCgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcCAgICAgICAgIHwgICA0ICstCiAuLi4vQVBJL3Rlc3Rz
L0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwICAgICAgICAgICB8IDMxMCArKysrKysrLS0tLS0t
CiAuLi4vQVBJL3Rlc3RzL1BpbmdQb25nU3RhY2tPdmVyZmxvd1Rlc3QuY3BwICAgICAgICB8ICAg
OSArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
fCAgOTUgKysrKwogLi4uL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCAgICAgICAg
ICAgICAgfCAgMjMgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBTbmFwc2hvdEJ1
aWxkZXIuY3BwIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNv
bGVNZXNzYWdlLmNwcCB8ICAxMyArLQogLi4uL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0
aWVzLmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9JbnRlcnByZXRlci5jcHAgIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcCB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAgICAgICAgICAgICAgICAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwICAgICAgIHwgICA5ICstCiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcCAgICB8ICAxNSArLQogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwICAgfCAgIDQgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwICAgIHwgICA0ICstCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcCB8ICAgNCAr
LQogLi4uL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgfCAg
MjQgKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAg
IHwgICA2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcCAg
ICAgICB8ICAxOCArLQogLi4uL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwICAg
ICAgICAgICAgfCAgMjEgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmpl
Y3QuY3BwICAgICAgIHwgIDE2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRl
cmFsUGFyc2VyLmNwcCAgICB8ICAxMCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3B0aW9ucy5jcHAgICAgICAgICAgfCAgMTAgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAgIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcCB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAgICAgICAgfCAgIDQgKy0KIC4uLi9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcCAgIHwgICA0ICstCiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwICB8ICAgNCArLQogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmNwcCAgICAgfCAgIDYgKy0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVTZXQuY3BwICAgICAgICAgIHwgIDIzICst
CiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAgICAgICAgICAgICAgICB8ICAy
MCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcCAg
fCAgIDkgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcCAgICAg
ICAgIHwgICA3ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmggICAg
ICAgICAgICB8ICAzMCArLQogU291cmNlL1dURi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAxNDMgKysrKysrCiBTb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcCAg
ICAgICAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3Bw
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XVEYvd3RmL0pTT05WYWx1
ZXMuY3BwICAgICAgICAgICAgICAgICAgICAgIHwgIDExICstCiBTb3VyY2UvV1RGL3d0Zi9Mb2dn
ZXIuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMSArLQogU291cmNlL1dURi93dGYv
TWVkaWFUaW1lLmNwcCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XVEYv
d3RmL1VVSUQuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuY3BwICAgICAgICAgICAgICB8IDIzOSArKysrKyst
LS0tCiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaCAgICAgICAgICAgICAgICB8
IDI2MSArKysrKysrLS0tLQogU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVySlNPTi5j
cHAgICAgICAgICAgfCAgMjUgKy0KIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAg
ICAgICAgICAgICAgICAgIHwgIDM0ICstCiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwu
aCAgICAgICAgICAgICAgICAgICB8ICAxOCArLQogU291cmNlL1dURi93dGYvdGV4dC9UZXh0U3Ry
ZWFtLmNwcCAgICAgICAgICAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNTEwICsrKysrKysrKysrKysrKysrKysrKwog
Li4uL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudENvbnRhY3RDb2NvYS5tbSAgfCAgIDUg
Ky0KIC4uLi9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcCAgIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNw
cCB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5j
cHAgICAgfCAgMTUgKy0KIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBh
dGguY3BwICAgIHwgICA0ICstCiAuLi4vTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0luZGV4VmFs
dWVTdG9yZS5jcHAgICB8ICAgNCArLQogLi4uL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxp
dGVJREJDdXJzb3IuY3BwICAgfCAgIDggKy0KIC4uLi9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCRGF0YWJhc2VJbmZvLmNwcCAgIHwgICA0ICstCiAuLi4vaW5kZXhlZGRiL3NoYXJlZC9JREJP
YmplY3RTdG9yZUluZm8uY3BwICAgICAgICB8ICAgNCArLQogLi4uL21lZGlhc2Vzc2lvbi9XZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCAgICAgICAgfCAgIDggKy0KIC4uLi9Nb2R1bGVzL21lZGlh
c3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgIHwgICA4ICstCiAuLi4vTW9kdWxlcy9w
bHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAgICB8ICAgNCArLQogLi4uL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcCAgICAgICAgfCAgIDQgKy0KIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwICAgIHwgICA4ICstCiAu
Li4vd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcCAgICB8ICAgOCAr
LQogLi4uL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwICAgICAgfCAg
MjMgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCAgICAg
IHwgIDE4ICstCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
Y3BwICB8ICAxMCArLQogLi4uL21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bSAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVy
dFN0cmluZ3MuY3BwIHwgICA0ICstCiAuLi4vV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2Vw
dGlvbkhhbmRsaW5nLmNwcCB8ICAxNiArLQogLi4uL2NvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVk
VVJMRmlsdGVycy5jcHAgICAgICAgfCAgIDQgKy0KIC4uLi9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb24uY3BwIHwgICA3ICstCiAuLi4vY29udGVudGV4dGVuc2lvbnMv
Q29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcCB8ICAgNSArLQogLi4uL0NvbnRlbnRFeHRlbnNp
b25TdHlsZVNoZWV0LmNwcCAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3Jl
L2NvbnRlbnRleHRlbnNpb25zL1Rlcm0uaCAgICAgICAgICAgIHwgICA4ICstCiAuLi4vV2ViQ29y
ZS9jc3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmNwcCB8ICAgNCArLQogU291cmNl
L1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmNwcCAgICAgICAgICAgICAgfCAgMjAgKy0KIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmNwcCAgICAgICAgIHwgICA4ICst
CiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCB8ICAg
NCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcCAgICAgICAgICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcCAgICAg
ICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3VzdG9tSWRlbnRWYWx1ZS5jcHAg
ICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUu
Y3BwICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUu
Y3BwICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VT
cmNWYWx1ZS5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRG
ZWF0dXJlVmFsdWUuY3BwICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250U3R5bGVSYW5nZVZhbHVlLmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udFN0eWxlVmFsdWUuY3BwICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRWYWx1ZS5jcHAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUuY3BwICAgICAgIHwgICA0ICstCiBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHAgICAgICAgICAgICB8ICAgNCArLQogU291
cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwICAgICAgICAgICAgfCAgMTIgKy0K
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNwcCAgICAgIHwgICA0
ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAgICB8
ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwICAgICAgICAg
ICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmNwcCAgICAgICAg
ICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVSdWxlLmNwcCAg
ICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lc1J1bGUu
Y3BwICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMaW5lQm94Q29u
dGFpblZhbHVlLmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWFya3Vw
LmNwcCAgICAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU01l
ZGlhUnVsZS5jcHAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NOYW1lc3BhY2VSdWxlLmNwcCAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFnZVJ1bGUuY3BwICAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcCAgICAgICAgICAgfCAgMTIgKy0KIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3BwICAgICAgIHwgICA0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwICAgICAgICAgICAgICAgICB8ICAxNyArLQog
U291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAgICAgICAgICAgICAgfCAgIDQg
Ky0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTaGFkb3dWYWx1ZS5jcHAgICAgICAgICAgICAgIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmNwcCAgICAgICAgICAgICAg
ICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwICAgICAgICAg
ICAgICAgfCAgIDkgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdXBwb3J0c1J1bGUuY3BwICAg
ICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVGltaW5nRnVuY3Rpb25W
YWx1ZS5jcHAgICAgICB8ICAxNiArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5j
cHAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYXJpYWJs
ZURhdGEuY3BwICAgICAgICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NT
TmFtZXNwYWNlLmNwcCAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0RP
TU1hdHJpeFJlYWRPbmx5LmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nz
cy9EZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9jc3MvRm9udEZhY2UuY3BwICAgICAgICAgICAgICAgICAgICB8ICAxMiArLQogU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhTGlzdC5jcHAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcCAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBT
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwICAgICAgICB8ICAgNSAr
LQogU291cmNlL1dlYkNvcmUvY3NzL1JlY3QuaCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwICAgICAgICAgICAg
IHwgIDMwICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmNwcCAgICAgICAg
ICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5j
cHAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNw
cCAgICAgICAgICAgIHwgIDExICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNl
clRva2VuLmNwcCAgICAgICB8ICA4NyArKy0tCiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlclRva2VuUmFuZ2UuY3BwICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAgICAgfCAgMjcgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTVG9rZW5pemVyLmNwcCAgICAgICAgIHwgIDM4ICstCiBTb3VyY2UvV2ViQ29yZS9k
b20vRGF0YXNldERPTVN0cmluZ01hcC5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcCAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIyICstCiBTb3Vy
Y2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQog
U291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDkg
Ky0KIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcCAgICAgICAgICAg
ICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDkgKy0KIFNvdXJjZS9XZWJDb3JlL2RvbS9UZXh0Tm9kZVRyYXZlcnNhbC5jcHAg
ICAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21t
YW5kLmNwcCAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNw
cCAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSFRNTElu
dGVyY2hhbmdlLmNwcCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01h
cmt1cEFjY3VtdWxhdG9yLmNwcCAgICAgICB8ICAxNyArLQogU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UZXh0SXRlcmF0b3IuY3BwICAgICAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwICAgICAgICB8ICAgNSArLQogU291cmNlL1dl
YkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tICAgICAgfCAgIDggKy0KIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbSAgICAgIHwgICA1ICstCiBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0gICAgICAgICAgICB8ICAgNSAr
LQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwICAgICAgICAgICAgICAgICAgfCAg
MjcgKy0KIFNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAgICAgICAg
IHwgIDI0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAgICAgICAgICAg
ICAgICB8ICAgOSArLQogU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAgICAg
ICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAg
ICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVy
LmNwcCAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9y
RWxlbWVudC5jcHAgICAgICAgICAgfCAgMTIgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuY3BwICAgICAgICAgIHwgIDIxICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb250RWxlbWVudC5jcHAgICAgICAgICAgICB8ICAgNyArLQogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW1hZ2VFbGVtZW50LmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgICAgICAgICAgIHwgICA5ICstCiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcCAgICAgICAgICB8ICAgNCArLQogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgfCAgMTIgKy0KIFNv
dXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAgICAgICAgICAgICAgIHwgICA1ICst
CiBTb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwICAgICAgICB8ICAg
NCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUZyYWdtZW50VVJJUGFyc2VyLmNwcCAgICAg
fCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcCAgICAgICAgICAgICAg
ICAgIHwgIDE0ICstCiAuLi4vaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNw
cCAgICAgICB8ICAgNCArLQogLi4uL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REJhc2UuY3BwICAgfCAgIDcgKy0KIC4uLi9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlLmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
U291cmNlVHJhY2tlci5jcHAgICB8ICAgNyArLQogU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFRva2VuaXplci5jcHAgICAgICAgfCAgMTIgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxUcmVlQnVpbGRlci5jcHAgICAgIHwgIDI3ICstCiBTb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9CdWZmZXJlZExpbmVSZWFkZXIuY3BwICAgfCAgIDggKy0KIFNvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcCAgICAgICAgICAgIHwgICA1ICstCiBTb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAgICAgICAgICAgICAgICB8ICAgNiArLQogU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwICAgICAgICAgfCAgIDUgKy0K
IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmNwcCAgICAgIHwgIDYz
ICsrLQogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwICAg
fCAgMTcgKy0KIC4uLi9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCAg
ICAgIHwgIDEzICstCiAuLi4vaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQu
Y3BwICAgICB8ICAgNyArLQogLi4uL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xl
QWdlbnQuY3BwICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFj
Y2Vzc0NvbnRyb2wuY3BwIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljcy5jcHAgICB8ICAgNCArLQogLi4uL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZS5jcHAgICAgfCAgMjUgKy0KIC4uLi9XZWJDb3JlL2xvYWRlci9hcmNo
aXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwIHwgIDI1ICstCiAuLi4vV2ViQ29yZS9sb2FkZXIv
YXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwICB8ICAgOCArLQogLi4uL1dlYkNvcmUvcGFn
ZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAgfCAgNjQgKystCiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcCAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCAgICAgICAgICAgICAgICAgIHwgICA1ICst
CiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcCAgICAgICAgICAgICB8ICAg
NyArLQogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuY3BwICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcCAgICAg
ICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0VHJpZ2dlci5j
cHAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5
UG9saWN5LmNwcCAgfCAgIDkgKy0KIC4uLi9wYWdlL3Njcm9sbGluZy9BeGlzU2Nyb2xsU25hcE9m
ZnNldHMuY3BwICAgICAgIHwgICA4ICstCiAuLi4vcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuY3BwICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVj
aW1hbC5jcHAgICAgICAgICAgICAgICAgfCAgMTIgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0ZpbGVTeXN0ZW0uY3BwICAgICAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QT0RJbnRlcnZhbC5oICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmggICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1VSTC5jcHAgICAgICAgICAgICAgICAgICAgIHwgIDE4ICstCiAuLi4vV2Vi
Q29yZS9wbGF0Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uY3BwICB8ICAgNSArLQogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAgICAgfCAgIDQgKy0K
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcCAgICAgICAgIHwgICA4
ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmNwcCB8
ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3Bw
ICAgfCAgIDQgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9Gb250VGFnZ2VkU2V0dGluZ3MuY3Bw
ICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyLmNwcCB8ICAgNCArLQogLi4uL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2
YXRlQVZGLmNwcCAgICAgfCAgMTMgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29u
dHJvbGxlci5jcHAgICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9UaWxlR3JpZC5jcHAgICB8ICAgNCArLQogLi4uL2dyYXBoaWNzL2NhL3dpbi9QbGF0
Zm9ybUNBTGF5ZXJXaW4uY3BwICAgICAgICAgfCAgIDQgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGlj
cy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAgIHwgIDEwICstCiAuLi4vb3BlbmdsL0dyYXBo
aWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcCAgICAgICB8ICAxMSArLQogLi4uL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAgfCAgMTUgKy0KIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tICAgICAgIHwgICA0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tICAgICB8ICAgNiArLQog
Li4uL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3JvbGxBbmltYXRvck1vY2suY3BwICAgfCAgMTUg
Ky0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja0JveC5jcHAgIHwg
ICA5ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcCAg
ICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5j
cHAgICAgfCAgIDQgKy0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZUph
ck1hYy5tbSAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9GaWxlU3lz
dGVtUE9TSVguY3BwICB8ICAgNCArLQogLi4uL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EZWNvZGVF
c2NhcGVTZXF1ZW5jZXMuaCAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
UGxhdGZvcm1Mb2NhbGUuY3BwICAgIHwgIDEyICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L1NlZ21lbnRlZFN0cmluZy5jcHAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9UZXh0Q29kZWNJQ1UuY3BwICAgICAgfCAgMTMgKy0KIC4uLi9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvVGV4dENvZGVjVXNlckRlZmluZWQuY3BwIHwgICA0ICstCiAuLi4vV2ViQ29yZS9w
bGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcCB8ICAgNSArLQogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL1VzZXJBZ2VudFdpbi5jcHAgICAgICAgfCAgIDQgKy0KIFNvdXJj
ZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5cGUuY3BwICAgICAgICAgICAgIHwgICA0ICstCiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwICAgICAgICAgICB8ICAgNCAr
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgfCAg
IDUgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcCAgICAg
IHwgICA5ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAgICAgICAg
ICAgICB8ICAyMyArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1t
ICAgICAgICAgfCAgMTAgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdp
bi5jcHAgICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJl
ZUFzVGV4dC5jcHAgICAgICB8ICAgOCArLQogLi4uL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MRmVuY2VkLmNwcCAgICAgICAgfCAgIDUgKy0KIC4uLi9yZW5kZXJpbmcvdXBkYXRpbmcvUmVu
ZGVyVHJlZUJ1aWxkZXJNYXRoTUwuY3BwIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TGVuZ3RoTGlzdFZhbHVlcy5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR051bWJlckxpc3RWYWx1ZXMuY3BwICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoU3RyaW5nQnVpbGRlci5jcHAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAgICAgICAgICAgICB8ICAgNCArLQogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHAgICAgICAgICAgfCAgIDQgKy0KIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmNwcCAgICAgICAgIHwgICA0ICst
CiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAgICAgICB8ICAg
NCArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmNwcCAgICAgICAgICAg
fCAgMjAgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRz
LmggIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgICAgICAg
ICAgICAgICB8ICA2NCArLS0KIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5
Q2xpZW50LmNwcCAgIHwgIDEwICstCiBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlw
dExvYWRlci5jcHAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUveG1sL1hNTEVycm9ycy5j
cHAgICAgICAgICAgICAgICAgICAgfCAgIDcgKy0KIFNvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdC5jcHAgICAgICAgICAgICAgIHwgIDE1ICstCiBTb3VyY2UvV2ViQ29yZS94bWwvWE1M
SHR0cFJlcXVlc3QuaCAgICAgICAgICAgICAgICB8ICAgNyArLQogU291cmNlL1dlYkNvcmUveG1s
L1hQYXRoRnVuY3Rpb25zLmNwcCAgICAgICAgICAgICAgfCAgMjEgKy0KIFNvdXJjZS9XZWJDb3Jl
L3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAgICAgICAgIHwgIDE0ICstCiAuLi4veG1sL3Bh
cnNlci9DaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVzLmggICB8ICAgNSArLQogU291cmNl
L1dlYkRyaXZlci9TZXNzaW9uSG9zdC5jcHAgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIFNv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQ5ICsr
CiAuLi4vTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcCAgICB8ICAg
NCArLQogLi4uL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwICAg
fCAgMTggKy0KIC4uLi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVLZXkuY3BwICAg
ICAgIHwgICA0ICstCiAuLi4vY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZU1hbmFnZXIuY3BwICAgICAg
ICAgICAgICB8ICAgNiArLQogLi4uL1NoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCL0lEQlV0aWxp
dGllcy5jcHAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0dhbWVwYWQvR2FtZXBh
ZERhdGEuY3BwICAgICAgIHwgICA0ICstCiAuLi4vTmV0c2NhcGUvdW5peC9OZXRzY2FwZVBsdWdp
bk1vZHVsZVVuaXguY3BwICAgICB8ICAgNCArLQogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTWVt
b3J5U2FtcGxlci5jcHAgICAgICAgICAgfCAgIDcgKy0KIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElVc2VyU2NyaXB0LmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJVXNlclN0eWxlU2hlZXQuY3BwICB8ICAgNCArLQogLi4uL1VJUHJvY2Vzcy9D
b2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3BwICAgICAgfCAgIDYgKy0KIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAgICAgIHwgICA0ICstCiBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgICAgICAgICB8ICAgNSArLQogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCAgICAgICAgfCAgIDUgKy0K
IC4uLi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcCAgIHwgIDIw
ICstCiAuLi4vV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeS5jcHAgICAgICAgICB8
ICAzMyArLQogLi4uL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwICAg
ICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcu
Y3BwICAgIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFt
ZS5jcHAgICAgICB8ICAgNCArLQogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICAgfCAgMTIgKwogLi4uL21hYy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRh
dGlvbi5tbSAgICAgICAgICAgfCAgIDUgKy0KIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgIDc4ICsrKysKIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0Nyb3NzVGhyZWFkVGFzay5jcHAgIHwgICA0ICstCiBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcCAgICB8ICA5MiArKy0tCiBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcCAgICAgICB8ICA4MCArKy0tCiAuLi4vVGVz
dHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAgICAgICAgICAgICB8ICA4NiArKy0tCiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwICB8ICAzNyAr
LQogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0xvZ2dpbmcuY3BwICAgICAgfCAg
MzAgKy0KIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9UZXh0Q29kZWMuY3BwICAg
IHwgICA0ICstCiBUb29scy9UZXN0V2ViS2l0QVBJL1dURlN0cmluZ1V0aWxpdGllcy5oICAgICAg
ICAgICB8ICAgNCArLQogLi4uL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAg
ICAgICAgICAgfCAxOTYgKysrKysrLS0KIC4uLi9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwIHwgIDE4ICstCiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcCAgICAgICAgICB8ICAxNSArLQogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5jcHAgICAgICAgICAgfCAgIDkgKy0KIDI5NSBmaWxlcyBjaGFuZ2VkLCAz
NTYwIGluc2VydGlvbnMoKyksIDEyMjggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCmluZGV4IDAyNWViYTQuLjVlZGY2ODEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAKQEAgLTMxNCw3ICszMTQsOSBA
QCBKU1N0cmluZ1JlZiBKU0NvbnRleHRDcmVhdGVCYWNrdHJhY2UoSlNDb250ZXh0UmVmIGN0eCwg
dW5zaWduZWQgbWF4U3RhY2tTaXplKQogICAgIEJhY2t0cmFjZUZ1bmN0b3IgZnVuY3RvcihidWls
ZGVyLCBtYXhTdGFja1NpemUpOwogICAgIGZyYW1lLT5pdGVyYXRlKGZ1bmN0b3IpOwogCi0gICAg
cmV0dXJuIE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUoYnVpbGRlci50b1N0cmluZygpKS5sZWFrUmVm
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gT3BhcXVlSlNTdHJpbmc6OmNyZWF0ZSgqc3RyaW5nKS5sZWFrUmVmKCk7CisgICAgQ1JB
U0goKTsKIH0KIAogYm9vbCBKU0dsb2JhbENvbnRleHRHZXRSZW1vdGVJbnNwZWN0aW9uRW5hYmxl
ZChKU0dsb2JhbENvbnRleHRSZWYgY3R4KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS90ZXN0cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAKaW5kZXggNjM3YjMw
NC4uMTY1MjgzOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9F
eGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L3Rlc3RzL0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwCkBAIC0xOTQsMjIgKzE5NCwyNSBAQCBp
bnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFw
cGVuZE51bWJlcih0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZC5zZWNvbmRzKCkpOwog
ICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpIGJyZWFrOyB9IH0gZm9v
KCk7Iik7CiAKLSAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsK
LSAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgICAgICBzaG91bGRUZXJt
aW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOwotICAgICAgICAgICAgYXV0byBzdGFydFRp
bWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7Ci0gICAgICAgICAgICBKU0V2YWx1YXRl
U2NyaXB0KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7
Ci0gICAgICAgICAgICBhdXRvIGVuZFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7
Ci0KLSAgICAgICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0
Y2hkb2dTaG91bGRIYXZlRmlyZWQpICYmIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVk
KQotICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IHRpbWVkIG91dCBhcyBl
eHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRv
Z1Nob3VsZEhhdmVGaXJlZCkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBz
Y3JpcHQgZGlkIG5vdCB0aW1lIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIp
OwotICAgICAgICAgICAgICAgIGlmICghc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQp
Ci0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgY2Fs
bGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAg
ICAgICBmYWlsZWQgPSB0cnVlOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgSlNT
dHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyaW5nLT51
dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOworICAg
ICAgICAgICAgICAgIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7Cisg
ICAgICAgICAgICAgICAgYXV0byBzdGFydFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFk
KCk7CisgICAgICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51
bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOworICAgICAgICAgICAgICAgIGF1dG8gZW5k
VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKworICAgICAgICAgICAgICAgIGlm
ICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmly
ZWQpICYmIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQorICAgICAgICAgICAgICAg
ICAgICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCB0aW1lZCBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0
aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3Vs
ZEhhdmVGaXJlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2Ny
aXB0IGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxl
ZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVv
dXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAg
ICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgCiAgICAg
ICAgICAgICBpZiAoIWV4Y2VwdGlvbikgewogICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDog
JXMgVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbiB3YXMgbm90IHRocm93bi5cbiIsIHRpZXJP
cHRpb25zLnRpZXIpOwpAQCAtMjM3LDIyICsyNDAsMjUgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1l
TGltaXQoKQogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgICAgcmV0
dXJuIHJlY3Vyc2UoaSArIDEpOyB9Iik7CiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVu
ZExpdGVyYWwoInJlY3Vyc2UoMCk7Iik7CiAKLSAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlw
dCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHNjcmlwdEJ1aWxkZXIudG9TdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7Ci0gICAg
ICAgICAgICBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOwotICAgICAg
ICAgICAgYXV0byBzdGFydFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7Ci0gICAg
ICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0
ciwgMSwgJmV4Y2VwdGlvbik7Ci0gICAgICAgICAgICBhdXRvIGVuZFRpbWUgPSBDUFVUaW1lOjpm
b3JDdXJyZW50VGhyZWFkKCk7Ci0KLSAgICAgICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRp
bWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpICYmIHNob3VsZFRlcm1pbmF0
ZUNhbGxiYWNrV2FzQ2FsbGVkKQotICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgc2Ny
aXB0IHdpdGggaW5maW5pdGUgdGFpbCBjYWxscyB0aW1lZCBvdXQgYXMgZXhwZWN0ZWQgLlxuIiwg
dGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBp
ZiAoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZp
cmVkKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB3aXRoIGlu
ZmluaXRlIHRhaWwgY2FsbHMgZGlkIG5vdCB0aW1lIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJP
cHRpb25zLnRpZXIpOwotICAgICAgICAgICAgICAgIGlmICghc2hvdWxkVGVybWluYXRlQ2FsbGJh
Y2tXYXNDYWxsZWQpCi0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0
IHdpdGggaW5maW5pdGUgdGFpbCBjYWxscycgdGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxl
ZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7
Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzY3JpcHRCdWls
ZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBK
U1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAg
ICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7CisgICAgICAgICAgICAgICAgc2hvdWxk
VGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBhdXRv
IHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAg
ICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwg
JmV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgYXV0byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9y
Q3VycmVudFRocmVhZCgpOworCisgICAgICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0
VGltZSkgPCB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgJiYgc2hvdWxkVGVybWlu
YXRlQ2FsbGJhY2tXYXNDYWxsZWQpCisgICAgICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzog
JXMgc2NyaXB0IHdpdGggaW5maW5pdGUgdGFpbCBjYWxscyB0aW1lZCBvdXQgYXMgZXhwZWN0ZWQg
LlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAg
ICAgICAgICAgICAgIGlmICgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFmdGVyV2F0Y2hk
b2dTaG91bGRIYXZlRmlyZWQpCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6
ICVzIHNjcmlwdCB3aXRoIGluZmluaXRlIHRhaWwgY2FsbHMgZGlkIG5vdCB0aW1lIG91dCBhcyBl
eHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAo
IXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQorICAgICAgICAgICAgICAgICAgICAg
ICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgd2l0aCBpbmZpbml0ZSB0YWlsIGNhbGxzJyB0aW1l
b3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAg
ICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgaWYgKCFleGNlcHRpb24pIHsKICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6
ICVzIFRlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24gd2FzIG5vdCB0aHJvd24uXG4iLCB0aWVy
T3B0aW9ucy50aWVyKTsKQEAgLTI3MywyMSArMjc5LDI0IEBAIGludCB0ZXN0RXhlY3V0aW9uVGlt
ZUxpbWl0KCkKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRpbWVBZnRl
cldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkLnNlY29uZHMoKSk7CiAgICAgICAgICAgICBzY3JpcHRC
dWlsZGVyLmFwcGVuZExpdGVyYWwoIikgYnJlYWs7IH0gfSBjYXRjaChlKSB7IH0gfSBmb28oKTsi
KTsKIAotICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoc2NyaXB0QnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAg
ICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKLSAgICAgICAgICAgIHNob3VsZFRlcm1pbmF0
ZUNhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBKU1N0cmluZ1Jl
ZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmctPnV0ZjgoKS5k
YXRhKCkpOworICAgICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7CisgICAgICAgICAg
ICAgICAgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKIAotICAgICAg
ICAgICAgYXV0byBzdGFydFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7Ci0gICAg
ICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0
ciwgMSwgJmV4Y2VwdGlvbik7Ci0gICAgICAgICAgICBhdXRvIGVuZFRpbWUgPSBDUFVUaW1lOjpm
b3JDdXJyZW50VGhyZWFkKCk7CisgICAgICAgICAgICAgICAgYXV0byBzdGFydFRpbWUgPSBDUFVU
aW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CisgICAgICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlw
dChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOworICAg
ICAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsK
ICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0g
dGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpIHx8ICFzaG91bGRUZXJtaW5hdGVDYWxs
YmFja1dhc0NhbGxlZCkgewotICAgICAgICAgICAgICAgIGlmICghKChlbmRUaW1lIC0gc3RhcnRU
aW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSkKLSAgICAgICAgICAgICAg
ICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgZGlkIG5vdCB0aW1lIG91dCBhcyBleHBlY3Rl
ZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgICAgIGlmICghc2hvdWxkVGVy
bWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCi0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJ
TDogJXMgc2NyaXB0IHRpbWVvdXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0
aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOwotICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRl
cldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSB8fCAhc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXND
YWxsZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCEoKGVuZFRpbWUgLSBzdGFydFRpbWUp
IDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgZGlkIG5vdCB0aW1lIG91dCBhcyBleHBlY3Rl
ZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoIXNob3Vs
ZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJp
bnRmKCJGQUlMOiAlcyBzY3JpcHQgdGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIs
IHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIENS
QVNIKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChleGNlcHRpb24pCiAgICAgICAg
ICAgICAgICAgcHJpbnRmKCJQQVNTOiAlcyBUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uIHdh
cyBub3QgY2F0Y2hhYmxlIGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CkBAIC0z
MDksMjQgKzMxOCwyNyBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgICAgICAg
ICBzY3JpcHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoImZ1bmN0aW9uIGZvbygpIHsgdmFyIHN0YXJ0
VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7IHdoaWxlICh0cnVlKSB7IGZvciAodmFyIGkgPSAwOyBp
IDwgMTAwMDsgaSsrKTsgaWYgKGN1cnJlbnRDUFVUaW1lKCkgLSBzdGFydFRpbWUgPiAiKTsKICAg
ICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRpbWVBZnRlcldhdGNoZG9nU2hv
dWxkSGF2ZUZpcmVkLnNlY29uZHMoKSk7CiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVu
ZExpdGVyYWwoIikgYnJlYWs7IH0gfSBmb28oKTsiKTsKLSAgICAgICAgICAgIAotICAgICAgICAg
ICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc2Ny
aXB0QnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgZXhjZXB0
aW9uID0gbnVsbHB0cjsKLSAgICAgICAgICAgIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2Fs
bGVkID0gZmFsc2U7CiAKLSAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6Zm9y
Q3VycmVudFRocmVhZCgpOwotICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBz
Y3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOwotICAgICAgICAgICAgYXV0
byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAg
ICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3Ry
aW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICBleGNlcHRpb24gPSBudWxscHRy
OworICAgICAgICAgICAgICAgIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkID0gZmFs
c2U7CisKKyAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJl
bnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNj
cmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAg
YXV0byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwogICAgICAgICAgICAg
Ci0gICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNo
ZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiAhc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQp
Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiAlcyBzY3JpcHQgdGltZWQgb3V0IGFzIGV4
cGVjdGVkIHdoZW4gbm8gY2FsbGJhY2sgaXMgc3BlY2lmaWVkLlxuIiwgdGllck9wdGlvbnMudGll
cik7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoKGVuZFRpbWUgLSBz
dGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKQotICAgICAgICAg
ICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCBkaWQgbm90IHRpbWUgb3V0IGFzIGV4
cGVjdGVkIHdoZW4gbm8gY2FsbGJhY2sgaXMgc3BlY2lmaWVkLlxuIiwgdGllck9wdGlvbnMudGll
cik7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZB
SUw6ICVzIHNjcmlwdCBjYWxsZWQgc3RhbGUgY2FsbGJhY2sgZnVuY3Rpb24uXG4iLCB0aWVyT3B0
aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOwotICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVy
V2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpICYmICFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0Nh
bGxlZCkKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiAlcyBzY3JpcHQgdGltZWQg
b3V0IGFzIGV4cGVjdGVkIHdoZW4gbm8gY2FsbGJhY2sgaXMgc3BlY2lmaWVkLlxuIiwgdGllck9w
dGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAg
IGlmICgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZl
RmlyZWQpCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCBk
aWQgbm90IHRpbWUgb3V0IGFzIGV4cGVjdGVkIHdoZW4gbm8gY2FsbGJhY2sgaXMgc3BlY2lmaWVk
LlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IGNhbGxlZCBzdGFsZSBj
YWxsYmFjayBmdW5jdGlvbi5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAg
ICAgICBmYWlsZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlm
ICghZXhjZXB0aW9uKSB7CiAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBUZXJtaW5h
dGVkRXhlY3V0aW9uRXhjZXB0aW9uIHdhcyBub3QgdGhyb3duLlxuIiwgdGllck9wdGlvbnMudGll
cik7CkBAIC0zNDcsMjMgKzM1OSwyNiBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAg
ICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZE51bWJlcih0aW1lQWZ0ZXJXYXRjaGRvZ1No
b3VsZEhhdmVGaXJlZC5zZWNvbmRzKCkpOwogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBl
bmRMaXRlcmFsKCIpIGJyZWFrOyB9IH0gZm9vKCk7Iik7CiAKLSAgICAgICAgICAgIEpTU3RyaW5n
UmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHNjcmlwdEJ1aWxkZXIu
dG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxw
dHI7Ci0gICAgICAgICAgICBjYW5jZWxUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNl
OworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygp
KSB7CisgICAgICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICBl
eGNlcHRpb24gPSBudWxscHRyOworICAgICAgICAgICAgICAgIGNhbmNlbFRlcm1pbmF0ZUNhbGxi
YWNrV2FzQ2FsbGVkID0gZmFsc2U7CiAKLSAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BV
VGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwotICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChj
b250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOwotICAgICAg
ICAgICAgYXV0byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAg
ICAgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwor
ICAgICAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRy
LCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICBhdXRvIGVuZFRpbWUg
PSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAg
IGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2
ZUZpcmVkKSAmJiBjYW5jZWxUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCAmJiAhZXhjZXB0aW9u
KQotICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IHRpbWVvdXQgd2FzIGNh
bmNlbGxlZCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAg
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCB0aW1l
QWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgfHwgZXhjZXB0aW9uKQotICAgICAgICAgICAg
ICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IHdhcyBub3QgY2FuY2VsbGVk
LlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAgaWYgKCFjYW5jZWxUZXJt
aW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlM
OiAlcyBzY3JpcHQgdGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJPcHRp
b25zLnRpZXIpOwotICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7Ci0gICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFmdGVy
V2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpICYmIGNhbmNlbFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2Fs
bGVkICYmICFleGNlcHRpb24pCisgICAgICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMg
c2NyaXB0IHRpbWVvdXQgd2FzIGNhbmNlbGxlZCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25z
LnRpZXIpOworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAo
KChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVk
KSB8fCBleGNlcHRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVz
IHNjcmlwdCB0aW1lb3V0IHdhcyBub3QgY2FuY2VsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7
CisgICAgICAgICAgICAgICAgICAgIGlmICghY2FuY2VsVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxs
ZWQpCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1l
b3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAg
ICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgaWYgKGV4Y2VwdGlvbikgewogICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDog
JXMgVW5leHBlY3RlZCBUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uIHRocm93bi5cbiIsIHRp
ZXJPcHRpb25zLnRpZXIpOwpAQCAtMzg0LDMzICszOTksMzYgQEAgaW50IHRlc3RFeGVjdXRpb25U
aW1lTGltaXQoKQogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmROdW1iZXIobWF4QnVz
eUxvb3BUaW1lLnNlY29uZHMoKSk7IC8vIGluIHNlY29uZHMuCiAgICAgICAgICAgICBzY3JpcHRC
dWlsZGVyLmFwcGVuZExpdGVyYWwoIikgYnJlYWs7IH0gfSBmb28oKTsiKTsKIAotICAgICAgICAg
ICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc2Ny
aXB0QnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgZXhjZXB0
aW9uID0gbnVsbHB0cjsKLSAgICAgICAgICAgIGV4dGVuZFRlcm1pbmF0ZUNhbGxiYWNrQ2FsbGVk
ID0gMDsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHNjcmlwdEJ1aWxkZXIudG9TdHJp
bmcoKSkgeworICAgICAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICAg
ICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBleHRlbmRUZXJtaW5hdGVD
YWxsYmFja0NhbGxlZCA9IDA7CiAKLSAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BVVGlt
ZTo6Zm9yQ3VycmVudFRocmVhZCgpOwotICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250
ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOwotICAgICAgICAg
ICAgYXV0byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwotICAgICAgICAg
ICAgYXV0byBkZWx0YVRpbWUgPSBlbmRUaW1lIC0gc3RhcnRUaW1lOworICAgICAgICAgICAgICAg
IGF1dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAgICAg
ICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRy
LCAxLCAmZXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICBhdXRvIGVuZFRpbWUgPSBDUFVUaW1l
Ojpmb3JDdXJyZW50VGhyZWFkKCk7CisgICAgICAgICAgICAgICAgYXV0byBkZWx0YVRpbWUgPSBl
bmRUaW1lIC0gc3RhcnRUaW1lOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoKGRlbHRh
VGltZSA+PSB0aW1lQmVmb3JlRXh0ZW5kZWREZWFkbGluZSkgJiYgKGRlbHRhVGltZSA8IHRpbWVB
ZnRlckV4dGVuZGVkRGVhZGxpbmUpICYmIChleHRlbmRUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA9
PSAyKSAmJiBleGNlcHRpb24pCi0gICAgICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiAlcyBzY3Jp
cHQgdGltZW91dCB3YXMgZXh0ZW5kZWQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVy
KTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGlmIChkZWx0YVRpbWUgPCB0
aW1lQmVmb3JlRXh0ZW5kZWREZWFkbGluZSkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJG
QUlMOiAlcyBzY3JpcHQgdGltZW91dCB3YXMgbm90IGV4dGVuZGVkIGFzIGV4cGVjdGVkLlxuIiwg
dGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAoZGVsdGFUaW1lID49
IHRpbWVBZnRlckV4dGVuZGVkRGVhZGxpbmUpCi0gICAgICAgICAgICAgICAgICAgIHByaW50Zigi
RkFJTDogJXMgc2NyaXB0IGRpZCBub3QgdGltZW91dC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwor
ICAgICAgICAgICAgICAgIGlmICgoZGVsdGFUaW1lID49IHRpbWVCZWZvcmVFeHRlbmRlZERlYWRs
aW5lKSAmJiAoZGVsdGFUaW1lIDwgdGltZUFmdGVyRXh0ZW5kZWREZWFkbGluZSkgJiYgKGV4dGVu
ZFRlcm1pbmF0ZUNhbGxiYWNrQ2FsbGVkID09IDIpICYmIGV4Y2VwdGlvbikKKyAgICAgICAgICAg
ICAgICAgICAgcHJpbnRmKCJQQVNTOiAlcyBzY3JpcHQgdGltZW91dCB3YXMgZXh0ZW5kZWQgYXMg
ZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICBlbHNlIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKGRlbHRhVGltZSA8IHRpbWVCZWZvcmVFeHRlbmRlZERl
YWRsaW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQg
dGltZW91dCB3YXMgbm90IGV4dGVuZGVkIGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGll
cik7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGRlbHRhVGltZSA+PSB0aW1lQWZ0ZXJF
eHRlbmRlZERlYWRsaW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAl
cyBzY3JpcHQgZGlkIG5vdCB0aW1lb3V0LlxuIiwgdGllck9wdGlvbnMudGllcik7CiAgICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKGV4dGVuZFRlcm1pbmF0ZUNhbGxiYWNrQ2Fs
bGVkIDwgMSkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgdGlt
ZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAg
ICAgICAgICAgICAgIGlmIChleHRlbmRUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA8IDIpCi0gICAg
ICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgY2FsbGJhY2sg
d2FzIG5vdCBjYWxsZWQgYWZ0ZXIgdGltZW91dCBleHRlbnNpb24uXG4iLCB0aWVyT3B0aW9ucy50
aWVyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGV4dGVuZFRlcm1pbmF0ZUNhbGxiYWNrQ2Fs
bGVkIDwgMSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0
IHRpbWVvdXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKGV4dGVuZFRlcm1pbmF0ZUNhbGxiYWNrQ2FsbGVkIDwg
MikKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVv
dXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQgYWZ0ZXIgdGltZW91dCBleHRlbnNpb24uXG4iLCB0
aWVyT3B0aW9ucy50aWVyKTsKICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAo
IWV4Y2VwdGlvbikKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBUZXJtaW5h
dGVkRXhlY3V0aW9uRXhjZXB0aW9uIHdhcyBub3QgdGhyb3duIGR1cmluZyB0aW1lb3V0IGV4dGVu
c2lvbiB0ZXN0LlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAgIGlm
ICghZXhjZXB0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBU
ZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uIHdhcyBub3QgdGhyb3duIGR1cmluZyB0aW1lb3V0
IGV4dGVuc2lvbiB0ZXN0LlxuIiwgdGllck9wdGlvbnMudGllcik7CiAgICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAKICNpZiBIQVZF
KE1BQ0hfRVhDRVBUSU9OUykKQEAgLTQyNSw1NiArNDQzLDYyIEBAIGludCB0ZXN0RXhlY3V0aW9u
VGltZUxpbWl0KCkKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRpbWVB
ZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkLnNlY29uZHMoKSk7CiAgICAgICAgICAgICBzY3Jp
cHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoIikgYnJlYWs7IH0gfSBmb28oKTsiKTsKIAotICAgICAg
ICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
c2NyaXB0QnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgZXhj
ZXB0aW9uID0gbnVsbHB0cjsKLSAgICAgICAgICAgIGRpc3BhdGNoVGVybWluYXRlQ2FsbGJhY2tD
YWxsZWQgPSBmYWxzZTsKLQotICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byBkbyB0aGlzIHNpbmNl
IGJsb2NrcyBjYW4gb25seSBjYXB0dXJlIHRoaW5ncyBhcyBjb25zdC4KLSAgICAgICAgICAgIEpT
R2xvYmFsQ29udGV4dFJlZiYgY29udGV4dFJlZiA9IGNvbnRleHQ7Ci0gICAgICAgICAgICBKU1N0
cmluZ1JlZiYgc2NyaXB0UmVmID0gc2NyaXB0OwotICAgICAgICAgICAgSlNWYWx1ZVJlZiYgZXhj
ZXB0aW9uUmVmID0gZXhjZXB0aW9uOwotCi0gICAgICAgICAgICBMb2NrIHN5bmNMb2NrOwotICAg
ICAgICAgICAgTG9jayYgc3luY0xvY2tSZWYgPSBzeW5jTG9jazsKLSAgICAgICAgICAgIENvbmRp
dGlvbiBzeW5jaHJvbml6ZTsKLSAgICAgICAgICAgIENvbmRpdGlvbiYgc3luY2hyb25pemVSZWYg
PSBzeW5jaHJvbml6ZTsKLSAgICAgICAgICAgIGJvb2wgZGlkU3luY2hyb25pemUgPSBmYWxzZTsK
LSAgICAgICAgICAgIGJvb2wmIGRpZFN5bmNocm9uaXplUmVmID0gZGlkU3luY2hyb25pemU7Ci0K
LSAgICAgICAgICAgIFNlY29uZHMgc3RhcnRUaW1lOwotICAgICAgICAgICAgU2Vjb25kcyBlbmRU
aW1lOwotCi0gICAgICAgICAgICBTZWNvbmRzJiBzdGFydFRpbWVSZWYgPSBzdGFydFRpbWU7Ci0g
ICAgICAgICAgICBTZWNvbmRzJiBlbmRUaW1lUmVmID0gZW5kVGltZTsKLQotICAgICAgICAgICAg
ZGlzcGF0Y2hfZ3JvdXBfdCBncm91cCA9IGRpc3BhdGNoX2dyb3VwX2NyZWF0ZSgpOwotICAgICAg
ICAgICAgZGlzcGF0Y2hfZ3JvdXBfYXN5bmMoZ3JvdXAsIGRpc3BhdGNoX2dldF9nbG9iYWxfcXVl
dWUoMCwgMCksIF57Ci0gICAgICAgICAgICAgICAgc3RhcnRUaW1lUmVmID0gQ1BVVGltZTo6Zm9y
Q3VycmVudFRocmVhZCgpOwotICAgICAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4
dFJlZiwgc2NyaXB0UmVmLCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uUmVmKTsKLSAg
ICAgICAgICAgICAgICBlbmRUaW1lUmVmID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwot
ICAgICAgICAgICAgICAgIGF1dG8gbG9ja2VyID0gV1RGOjpob2xkTG9jayhzeW5jTG9ja1JlZik7
Ci0gICAgICAgICAgICAgICAgZGlkU3luY2hyb25pemVSZWYgPSB0cnVlOwotICAgICAgICAgICAg
ICAgIHN5bmNocm9uaXplUmVmLm5vdGlmeUFsbCgpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAg
ICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soc3luY0xvY2spOwotICAgICAgICAgICAgc3lu
Y2hyb25pemUud2FpdChzeW5jTG9jaywgWyZdIHsgcmV0dXJuIGRpZFN5bmNocm9uaXplOyB9KTsK
LQotICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCB0aW1lQWZ0ZXJXYXRj
aGRvZ1Nob3VsZEhhdmVGaXJlZCkgJiYgZGlzcGF0Y2hUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCkK
LSAgICAgICAgICAgICAgICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCBvbiBkaXNwYXRjaCBxdWV1
ZSB0aW1lZCBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAg
ICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGlmICgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0g
dGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpCi0gICAgICAgICAgICAgICAgICAgIHBy
aW50ZigiRkFJTDogJXMgc2NyaXB0IG9uIGRpc3BhdGNoIHF1ZXVlIGRpZCBub3QgdGltZSBvdXQg
YXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBpZiAo
IXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQotICAgICAgICAgICAgICAgICAgICBw
cmludGYoIkZBSUw6ICVzIHNjcmlwdCBvbiBkaXNwYXRjaCBxdWV1ZSB0aW1lb3V0IGNhbGxiYWNr
IHdhcyBub3QgY2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAg
ZmFpbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgICAgIEpTU3RyaW5n
UmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZy0+dXRmOCgp
LmRhdGEoKSk7CisgICAgICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKKyAgICAgICAg
ICAgICAgICBkaXNwYXRjaFRlcm1pbmF0ZUNhbGxiYWNrQ2FsbGVkID0gZmFsc2U7CisKKyAgICAg
ICAgICAgICAgICAvLyBXZSBoYXZlIHRvIGRvIHRoaXMgc2luY2UgYmxvY2tzIGNhbiBvbmx5IGNh
cHR1cmUgdGhpbmdzIGFzIGNvbnN0LgorICAgICAgICAgICAgICAgIEpTR2xvYmFsQ29udGV4dFJl
ZiYgY29udGV4dFJlZiA9IGNvbnRleHQ7CisgICAgICAgICAgICAgICAgSlNTdHJpbmdSZWYmIHNj
cmlwdFJlZiA9IHNjcmlwdDsKKyAgICAgICAgICAgICAgICBKU1ZhbHVlUmVmJiBleGNlcHRpb25S
ZWYgPSBleGNlcHRpb247CisKKyAgICAgICAgICAgICAgICBMb2NrIHN5bmNMb2NrOworICAgICAg
ICAgICAgICAgIExvY2smIHN5bmNMb2NrUmVmID0gc3luY0xvY2s7CisgICAgICAgICAgICAgICAg
Q29uZGl0aW9uIHN5bmNocm9uaXplOworICAgICAgICAgICAgICAgIENvbmRpdGlvbiYgc3luY2hy
b25pemVSZWYgPSBzeW5jaHJvbml6ZTsKKyAgICAgICAgICAgICAgICBib29sIGRpZFN5bmNocm9u
aXplID0gZmFsc2U7CisgICAgICAgICAgICAgICAgYm9vbCYgZGlkU3luY2hyb25pemVSZWYgPSBk
aWRTeW5jaHJvbml6ZTsKKworICAgICAgICAgICAgICAgIFNlY29uZHMgc3RhcnRUaW1lOworICAg
ICAgICAgICAgICAgIFNlY29uZHMgZW5kVGltZTsKKworICAgICAgICAgICAgICAgIFNlY29uZHMm
IHN0YXJ0VGltZVJlZiA9IHN0YXJ0VGltZTsKKyAgICAgICAgICAgICAgICBTZWNvbmRzJiBlbmRU
aW1lUmVmID0gZW5kVGltZTsKKworICAgICAgICAgICAgICAgIGRpc3BhdGNoX2dyb3VwX3QgZ3Jv
dXAgPSBkaXNwYXRjaF9ncm91cF9jcmVhdGUoKTsKKyAgICAgICAgICAgICAgICBkaXNwYXRjaF9n
cm91cF9hc3luYyhncm91cCwgZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1ZSgwLCAwKSwgXnsKKyAg
ICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lUmVmID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVh
ZCgpOworICAgICAgICAgICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHRSZWYsIHNj
cmlwdFJlZiwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvblJlZik7CisgICAgICAgICAg
ICAgICAgICAgIGVuZFRpbWVSZWYgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CisgICAg
ICAgICAgICAgICAgICAgIGF1dG8gbG9ja2VyID0gV1RGOjpob2xkTG9jayhzeW5jTG9ja1JlZik7
CisgICAgICAgICAgICAgICAgICAgIGRpZFN5bmNocm9uaXplUmVmID0gdHJ1ZTsKKyAgICAgICAg
ICAgICAgICAgICAgc3luY2hyb25pemVSZWYubm90aWZ5QWxsKCk7CisgICAgICAgICAgICAgICAg
fSk7CisKKyAgICAgICAgICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKHN5bmNMb2NrKTsK
KyAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZS53YWl0KHN5bmNMb2NrLCBbJl0geyByZXR1cm4g
ZGlkU3luY2hyb25pemU7IH0pOworCisgICAgICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0
YXJ0VGltZSkgPCB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgJiYgZGlzcGF0Y2hU
ZXJtaW5hdGVDYWxsYmFja0NhbGxlZCkKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJQQVNT
OiAlcyBzY3JpcHQgb24gZGlzcGF0Y2ggcXVldWUgdGltZWQgb3V0IGFzIGV4cGVjdGVkLlxuIiwg
dGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmICgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFmdGVyV2F0Y2hkb2dTaG91
bGRIYXZlRmlyZWQpCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNj
cmlwdCBvbiBkaXNwYXRjaCBxdWV1ZSBkaWQgbm90IHRpbWUgb3V0IGFzIGV4cGVjdGVkLlxuIiwg
dGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAgIGlmICghc2hvdWxkVGVybWlu
YXRlQ2FsbGJhY2tXYXNDYWxsZWQpCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZB
SUw6ICVzIHNjcmlwdCBvbiBkaXNwYXRjaCBxdWV1ZSB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3Qg
Y2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAgIGZhaWxl
ZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogI2VuZGlmCiAKICAgICAgICAgSlNHbG9iYWxD
b250ZXh0UmVsZWFzZShjb250ZXh0KTsKIAotICAgICAgICBPcHRpb25zOjpzZXRPcHRpb25zKHNh
dmVkT3B0aW9uc0J1aWxkZXIudG9TdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgIGlm
IChhdXRvIHN0cmluZyA9IHNhdmVkT3B0aW9uc0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
ICAgIE9wdGlvbnM6OnNldE9wdGlvbnMoc3RyaW5nLT5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIAogICAgIHJldHVybiBmYWls
ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL1BpbmdQb25n
U3RhY2tPdmVyZmxvd1Rlc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9Q
aW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcAppbmRleCAwNDJiZWJmLi4xMTIzMDliIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL1BpbmdQb25nU3RhY2tPdmVy
Zmxvd1Rlc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvUGluZ1Bv
bmdTdGFja092ZXJmbG93VGVzdC5jcHAKQEAgLTY0LDkgKzY0LDEyIEBAIHN0YXRpYyBib29sIFBp
bmdQb25nU3RhY2tPdmVyZmxvd09iamVjdF9oYXNJbnN0YW5jZShKU0NvbnRleHRSZWYgY29udGV4
dCwgSlNPYmplCiAgICAgICAgIH0KICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpOyIp
OwogCi0gICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgcmVzdWx0
ID0gSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIE5VTEwsIE5VTEwsIDEsIGV4Y2Vw
dGlvbik7Ci0gICAgICAgIEpTU3RyaW5nUmVsZWFzZShzY3JpcHQpOworICAgICAgICBpZiAoYXV0
byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIEpTU3RyaW5nUmVm
IHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZy0+dXRmOCgpLmRh
dGEoKSk7CisgICAgICAgICAgICByZXN1bHQgPSBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNj
cmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgZXhjZXB0aW9uKTsKKyAgICAgICAgICAgIEpTU3Ry
aW5nUmVsZWFzZShzY3JpcHQpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7
CiAgICAgfQogCiAgICAgLS1uYXRpdmVSZWN1cnNpb25Db3VudDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCmluZGV4IDY1YTUyYzEuLmE3Y2FmYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDk4IEBACisyMDE4LTA0LTI2ICBKRiBCYXN0aWVuICA8amZiYXN0aWVuQGFwcGxlLmNv
bT4KKworICAgICAgICBTdHJpbmdCdWlsZGVyIGlzIGZhbGxpYmxlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUwNDgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdHJpbmdCdWlsZGVyIGNhbiBmYWlsIHdo
ZW4gYWxsb2NhdGluZyBtZW1vcnkuIFN0cmluZ0J1aWxkZXIgaXMKKyAgICAgICAgbW9zdGx5IHVz
ZWQgd2l0aCB1c2VyIGlucHV0LCB3aGljaCBvZnRlbiBtZWFucyB0aGF0IGp1c3QgY3Jhc2hpbmcK
KyAgICAgICAgaXNuJ3QgdGhlIHJpZ2h0IG91dGNvbWUuIE91ciBmdXp6ZXJzIG9mdGVuIGVuY291
bnRlciBzdWNoIHRoaW5ncworICAgICAgICBmb3IgSmF2YVNjcmlwdENvcmUsIGFuZCBzbyBmYXIg
d2UndmUgYXBwbGllZCBwb2ludCBzb2x1dGlvbnMuIE5vCisgICAgICAgIG1vcmUhCisKKyAgICAg
ICAgKiBBUEkvSlNDb250ZXh0UmVmLmNwcDoKKyAgICAgICAgKEpTQ29udGV4dENyZWF0ZUJhY2t0
cmFjZSk6CisgICAgICAgICogQVBJL3Rlc3RzL0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwOgor
ICAgICAgICAodGVzdEV4ZWN1dGlvblRpbWVMaW1pdCk6CisgICAgICAgICogQVBJL3Rlc3RzL1Bp
bmdQb25nU3RhY2tPdmVyZmxvd1Rlc3QuY3BwOgorICAgICAgICAoUGluZ1BvbmdTdGFja092ZXJm
bG93T2JqZWN0X2hhc0luc3RhbmNlKToKKyAgICAgICAgKiBkZmcvREZHU3RyZW5ndGhSZWR1Y3Rp
b25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3RyZW5ndGhSZWR1Y3Rpb25QaGFzZTo6
aGFuZGxlTm9kZSk6CisgICAgICAgICogaGVhcC9IZWFwU25hcHNob3RCdWlsZGVyLmNwcDoKKyAg
ICAgICAgKEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlcjo6anNvbik6CisgICAgICAgICogaW5zcGVj
dG9yL0NvbnNvbGVNZXNzYWdlLmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6Q29uc29sZU1lc3Nh
Z2U6OkNvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0
aWxpdGllcy5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OkNvbnRlbnRTZWFyY2hVdGlsaXRpZXM6
OmNyZWF0ZVNlYXJjaFJlZ2V4U291cmNlKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9JbnRlcnBy
ZXRlci5jcHA6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpzdGFja1RyYWNlQXNTdHJpbmcp
OgorICAgICAgICAqIGludGVycHJldGVyL1N0YWNrVmlzaXRvci5jcHA6CisgICAgICAgIChKU0M6
OlN0YWNrVmlzaXRvcjo6RnJhbWU6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBqc2MuY3Bw
OgorICAgICAgICAocmVzb2x2ZVBhdGgpOgorICAgICAgICAoZnVuY3Rpb25KU0NTdGFjayk6Cisg
ICAgICAgICogcnVudGltZS9Db25maWdGaWxlLmNwcDoKKyAgICAgICAgKEpTQzo6Q29uZmlnRmls
ZTo6cGFyc2UpOgorICAgICAgICAqIHJ1bnRpbWUvQ29uc29sZUNsaWVudC5jcHA6CisgICAgICAg
IChKU0M6OkNvbnNvbGVDbGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2UpOgorICAgICAgICAoSlND
OjpDb25zb2xlQ2xpZW50OjpwcmludENvbnNvbGVNZXNzYWdlV2l0aEFyZ3VtZW50cyk6CisgICAg
ICAgICogcnVudGltZS9EYXRlQ29udmVyc2lvbi5jcHA6CisgICAgICAgIChKU0M6OmZvcm1hdERh
dGVUaW1lKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwOgorICAgICAgICAo
SlNDOjpFcnJvckluc3RhbmNlOjpzYW5pdGl6ZWRUb1N0cmluZyk6CisgICAgICAgICogcnVudGlt
ZS9FeGNlcHRpb25IZWxwZXJzLmNwcDoKKyAgICAgICAgKEpTQzo6bm90QUZ1bmN0aW9uU291cmNl
QXBwZW5kZXIpOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OmNvbnN0cnVjdEZ1bmN0aW9uU2tpcHBpbmdFdmFsRW5hYmxlZENoZWNrKToK
KyAgICAgICAgKiBydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHA6CisgICAgICAgIChKU0M6
OkludGxEYXRlVGltZUZvcm1hdDo6aW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0KToKKyAgICAgICAg
KiBydW50aW1lL0ludGxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpwcml2YXRlVXNlTGFuZ1Rh
Zyk6CisgICAgICAgIChKU0M6OmNhbm9uaWNhbExhbmdUYWcpOgorICAgICAgICAoSlNDOjpyZW1v
dmVVbmljb2RlTG9jYWxlRXh0ZW5zaW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0RnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6ZW5jb2RlKToKKyAgICAgICAgKEpTQzo6
ZGVjb2RlKToKKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY0VzY2FwZSk6CisgICAgICAgIChKU0M6
Omdsb2JhbEZ1bmNVbmVzY2FwZSk6CisgICAgICAgICogcnVudGltZS9KU09OT2JqZWN0LmNwcDoK
KyAgICAgICAgKEpTQzo6U3RyaW5naWZpZXI6OnN0cmluZ2lmeSk6CisgICAgICAgIChKU0M6OlN0
cmluZ2lmaWVyOjpIb2xkZXI6OmFwcGVuZE5leHRQcm9wZXJ0eSk6CisgICAgICAgICogcnVudGlt
ZS9MaXRlcmFsUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6TGl0ZXJhbFBhcnNlcjxDaGFyVHlw
ZT46OkxleGVyOjpsZXhTdHJpbmdTbG93KToKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuY3Bw
OgorICAgICAgICAoSlNDOjpPcHRpb25zOjpkdW1wT3B0aW9uc0lmTmVlZGVkKToKKyAgICAgICAg
KEpTQzo6T3B0aW9uczo6ZHVtcEFsbE9wdGlvbnMpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhw
UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9HZXR0ZXJTb3VyY2VJbnRl
cm5hbCk6CisgICAgICAgICogcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcDoKKyAgICAgICAg
KEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6c3RhY2tUcmFjZXNBc0pTT04pOgorICAgICAgICAqIHJ1
bnRpbWUvU3RhY2tGcmFtZS5jcHA6CisgICAgICAgIChKU0M6OlN0YWNrRnJhbWU6OnRvU3RyaW5n
IGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcDoKKyAgICAg
ICAgKEpTQzo6c3RyaW5nRnJvbUNvZGVQb2ludCk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdQ
cm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpzdWJzdGl0dXRlQmFja3JlZmVyZW5jZXNTbG93
KToKKyAgICAgICAgKiBydW50aW1lL1R5cGVQcm9maWxlci5jcHA6CisgICAgICAgIChKU0M6OlR5
cGVQcm9maWxlcjo6dHlwZUluZm9ybWF0aW9uRm9yRXhwcmVzc2lvbkF0T2Zmc2V0KToKKyAgICAg
ICAgKiBydW50aW1lL1R5cGVTZXQuY3BwOgorICAgICAgICAoSlNDOjpUeXBlU2V0OjpkdW1wVHlw
ZXMgY29uc3QpOgorICAgICAgICAoSlNDOjpUeXBlU2V0Ojp0b0pTT05TdHJpbmcgY29uc3QpOgor
ICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVTaGFwZTo6cHJvcGVydHlIYXNoKToKKyAgICAgICAgKEpT
Qzo6U3RydWN0dXJlU2hhcGU6OnN0cmluZ1JlcHJlc2VudGF0aW9uKToKKyAgICAgICAgKEpTQzo6
U3RydWN0dXJlU2hhcGU6OnRvSlNPTlN0cmluZyBjb25zdCk6CisgICAgICAgICogdGVzdFJlZ0V4
cC5jcHA6CisgICAgICAgIChwYXJzZVJlZ0V4cExpbmUpOgorICAgICAgICAocGFyc2VUZXN0TGlu
ZSk6CisgICAgICAgICogdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuY3BwOgorICAgICAgICAoSlND
OjpwYXJzZUNsYXVzZSk6CisgICAgICAgICogd2FzbS9XYXNtQkJRUGxhbi5jcHA6CisgICAgICAg
IChKU0M6Oldhc206OkJCUVBsYW46OnByZXBhcmUpOgorICAgICAgICAqIHlhcnIvWWFyclBhcnNl
ci5oOgorICAgICAgICAoSlNDOjpZYXJyOjpQYXJzZXI6OnRyeUNvbnN1bWVHcm91cE5hbWUpOgor
ICAgICAgICAoSlNDOjpZYXJyOjpQYXJzZXI6OnRyeUNvbnN1bWVVbmljb2RlUHJvcGVydHlFeHBy
ZXNzaW9uKToKKwogMjAxOC0wNC0yNSAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBwbGUu
Y29tPgogCiAgICAgICAgIEluIEZUTExvd2VyREZHVG9CMy5jcHA6OmNvbXBpbGVDcmVhdGVSZXN0
LCBhbHdheXMgdXNlIGEgY29udGlndW91cyBhcnJheSBhcyB0aGUgaW5kZXhpbmcgdHlwZSB3aGVu
IHVuZGVyIGlzV2F0Y2hpbmdIYXZpbmdBQmFkVGltZVdhdGNocG9pbnQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwCmlu
ZGV4IDVjMWJlNjguLmY3MGM3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcApAQCAtMzYxLDggKzM2MSwxMSBA
QCBwcml2YXRlOgogICAgICAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAg
ICAgICAgICAgICBidWlsZGVyLmFwcGVuZChsZWZ0U3RyaW5nKTsKICAgICAgICAgICAgICAgICBi
dWlsZGVyLmFwcGVuZChyaWdodFN0cmluZyk7Ci0gICAgICAgICAgICAgICAgbV9ub2RlLT5jb252
ZXJ0VG9MYXp5SlNDb25zdGFudCgKLSAgICAgICAgICAgICAgICAgICAgbV9ncmFwaCwgTGF6eUpT
VmFsdWU6Om5ld1N0cmluZyhtX2dyYXBoLCBidWlsZGVyLnRvU3RyaW5nKCkpKTsKKyAgICAgICAg
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgbV9ub2RlLT5jb252ZXJ0VG9MYXp5SlNDb25zdGFudCgKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG1fZ3JhcGgsIExhenlKU1ZhbHVlOjpuZXdTdHJpbmcobV9ncmFwaCwgKnN0
cmluZykpOworICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBDUkFT
SCgpOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBicmVhazsKQEAgLTM4OSw4ICszOTIsMTEgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgIGlmICghIWV4dHJhU3RyaW5nKQogICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGV4
dHJhU3RyaW5nKTsKIAotICAgICAgICAgICAgbV9ub2RlLT5jb252ZXJ0VG9MYXp5SlNDb25zdGFu
dCgKLSAgICAgICAgICAgICAgICBtX2dyYXBoLCBMYXp5SlNWYWx1ZTo6bmV3U3RyaW5nKG1fZ3Jh
cGgsIGJ1aWxkZXIudG9TdHJpbmcoKSkpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
YnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgbV9ub2RlLT5jb252ZXJ0VG9M
YXp5SlNDb25zdGFudCgKKyAgICAgICAgICAgICAgICAgICAgbV9ncmFwaCwgTGF6eUpTVmFsdWU6
Om5ld1N0cmluZyhtX2dyYXBoLCAqc3RyaW5nKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAg
ICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC04ODIsOSArODg4LDEyIEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICBpZiAobGFzdEluZGV4IDwgc3RyaW5n
Lmxlbmd0aCgpKQogICAgICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChzdHJpbmcsIGxh
c3RJbmRleCwgc3RyaW5nLmxlbmd0aCgpIC0gbGFzdEluZGV4KTsKLSAgICAgICAgICAgICAgICAK
LSAgICAgICAgICAgICAgICBtX25vZGUtPmNvbnZlcnRUb0xhenlKU0NvbnN0YW50KAotICAgICAg
ICAgICAgICAgICAgICBtX2dyYXBoLCBMYXp5SlNWYWx1ZTo6bmV3U3RyaW5nKG1fZ3JhcGgsIGJ1
aWxkZXIudG9TdHJpbmcoKSkpOworCisgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
YnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgIG1fbm9kZS0+Y29udmVy
dFRvTGF6eUpTQ29uc3RhbnQoCisgICAgICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLCBMYXp5
SlNWYWx1ZTo6bmV3U3RyaW5nKG1fZ3JhcGgsICpzdHJpbmcpKTsKKyAgICAgICAgICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIH0KIAogICAg
ICAgICAgICAgbV9ub2RlLT5vcmlnaW4gPSBvcmlnaW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3RCdWlsZGVyLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0hlYXBTbmFwc2hvdEJ1aWxkZXIuY3BwCmluZGV4IDY1ZjYzM2YuLmUxYWFk
MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBTbmFwc2hvdEJ1
aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBTbmFwc2hvdEJ1
aWxkZXIuY3BwCkBAIC0zODcsNyArMzg3LDkgQEAgU3RyaW5nIEhlYXBTbmFwc2hvdEJ1aWxkZXI6
Ompzb24oc3RkOjpmdW5jdGlvbjxib29sIChjb25zdCBIZWFwU25hcHNob3ROb2RlJik+IGEKICAg
ICBqc29uLmFwcGVuZCgnXScpOwogCiAgICAganNvbi5hcHBlbmQoJ30nKTsKLSAgICByZXR1cm4g
anNvbi50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGpzb24udG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNv
bGVNZXNzYWdlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1l
c3NhZ2UuY3BwCmluZGV4IDVjZmIwNGQuLjcxZTRmYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCkBAIC0xMTUsNyArMTE1LDEw
IEBAIENvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwg
TWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxlCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBKU09OTG9nVmFsdWU6OlR5cGU6OkpTT046CiAgICAgICAgICAgICBpZiAoYnVpbGRlci5s
ZW5ndGgoKSkgewotICAgICAgICAgICAgICAgIG1fanNvbkxvZ1ZhbHVlcy5hcHBlbmQoeyBKU09O
TG9nVmFsdWU6OlR5cGU6OlN0cmluZywgSlNPTjo6VmFsdWU6OmNyZWF0ZShidWlsZGVyLnRvU3Ry
aW5nKCkpLT50b0pTT05TdHJpbmcoKSB9KTsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICAgIG1fanNvbkxvZ1Zh
bHVlcy5hcHBlbmQoeyBKU09OTG9nVmFsdWU6OlR5cGU6OlN0cmluZywgSlNPTjo6VmFsdWU6OmNy
ZWF0ZSgqc3RyaW5nKS0+dG9KU09OU3RyaW5nKCkgfSk7CisgICAgICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgICAgIGJ1aWxkZXIucmVz
aXplKDApOwogICAgICAgICAgICAgfQogCkBAIC0xMjQsOCArMTI3LDEyIEBAIENvbnNvbGVNZXNz
YWdlOjpDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlw
ZSwgTWVzc2FnZUxlCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoYnVpbGRlci5sZW5ndGgo
KSkKLSAgICAgICAgbV9qc29uTG9nVmFsdWVzLmFwcGVuZCh7IEpTT05Mb2dWYWx1ZTo6VHlwZTo6
U3RyaW5nLCBKU09OOjpWYWx1ZTo6Y3JlYXRlKGJ1aWxkZXIudG9TdHJpbmcoKSktPnRvSlNPTlN0
cmluZygpIH0pOworICAgIGlmIChidWlsZGVyLmxlbmd0aCgpKSB7CisgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIG1fanNvbkxvZ1ZhbHVl
cy5hcHBlbmQoeyBKU09OTG9nVmFsdWU6OlR5cGU6OlN0cmluZywgSlNPTjo6VmFsdWU6OmNyZWF0
ZSgqc3RyaW5nKS0+dG9KU09OU3RyaW5nKCkgfSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IENSQVNIKCk7CisgICAgfQogCiAgICAgaWYgKG1fanNvbkxvZ1ZhbHVlcy5zaXplKCkpCiAgICAg
ICAgIG1fbWVzc2FnZSA9IG1fanNvbkxvZ1ZhbHVlc1swXS52YWx1ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxpdGllcy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlsaXRpZXMu
Y3BwCmluZGV4IGFhYTgxZTIuLmIwYzE5NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0aWVzLmNwcApAQCAtNTUs
NyArNTUsOSBAQCBzdGF0aWMgU3RyaW5nIGNyZWF0ZVNlYXJjaFJlZ2V4U291cmNlKGNvbnN0IFN0
cmluZyYgdGV4dCkKICAgICAgICAgcmVzdWx0LmFwcGVuZChjaGFyYWN0ZXIpOwogICAgIH0KIAot
ICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1
bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogc3RhdGljIGlubGluZSBzaXplX3Qgc2l6ZXRFeHRyYWN0b3IoY29uc3Qgc2l6ZV90KiB2YWx1
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnBy
ZXRlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIu
Y3BwCmluZGV4IDRmNzI3MDkuLmVkMTc0OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcApAQCAtNTc3LDcgKzU3Nyw5IEBAIEpTU3Ry
aW5nKiBJbnRlcnByZXRlcjo6c3RhY2tUcmFjZUFzU3RyaW5nKFZNJiB2bSwgY29uc3QgVmVjdG9y
PFN0YWNrRnJhbWU+JiBzdGFjCiAgICAgICAgIGlmIChpICE9IHN0YWNrVHJhY2Uuc2l6ZSgpIC0g
MSkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwogICAgIH0KLSAgICByZXR1cm4g
anNTdHJpbmcoJnZtLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIGpzU3RyaW5nKCZ2bSwgKnN0cmlu
Zyk7CisgICAgQ1JBU0goKTsKIH0KIAogQUxXQVlTX0lOTElORSBzdGF0aWMgSGFuZGxlckluZm8q
IGZpbmRFeGNlcHRpb25IYW5kbGVyKFN0YWNrVmlzaXRvciYgdmlzaXRvciwgQ29kZUJsb2NrKiBj
b2RlQmxvY2ssIFJlcXVpcmVkSGFuZGxlciByZXF1aXJlZEhhbmRsZXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0b3IuY3BwCmluZGV4IDFkMWZm
NzMuLjcwY2QxMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9TdGFja1Zpc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9TdGFja1Zpc2l0b3IuY3BwCkBAIC0zNDcsNyArMzQ3LDkgQEAgU3RyaW5nIFN0YWNrVmlzaXRv
cjo6RnJhbWU6OnRvU3RyaW5nKCkgY29uc3QKICAgICAgICAgICAgIHRyYWNlQnVpbGQuYXBwZW5k
TnVtYmVyKGNvbHVtbik7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIHRyYWNlQnVpbGQu
dG9TdHJpbmcoKS5pbXBsKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdHJhY2VCdWlsZC50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gc3RyaW5nLT5pbXBsKCk7CisgICAgQ1JBU0goKTsKIH0K
IAogaW50cHRyX3QgU3RhY2tWaXNpdG9yOjpGcmFtZTo6c291cmNlSUQoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNj
LmNwcAppbmRleCA0YTczZTg3Li4zZmE0NjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtNzY1
LDcgKzc2NSw5IEBAIHN0YXRpYyBTdHJpbmcgcmVzb2x2ZVBhdGgoY29uc3QgRGlyZWN0b3J5TmFt
ZSYgZGlyZWN0b3J5TmFtZSwgY29uc3QgTW9kdWxlTmFtZSYKICAgICAgICAgaWYgKGkgKyAxICE9
IGRpcmVjdG9yeVBpZWNlcy5zaXplKCkpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChwYXRo
U2VwYXJhdG9yKCkpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBhYnNvbHV0ZVBhdGgoY29u
c3QgU3RyaW5nJiBmaWxlTmFtZSkKQEAgLTExMjUsOCArMTEyNywxMSBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSlNDU3RhY2soRXhlY1N0YXRlKiBleGVjKQogCiAgICAg
RnVuY3Rpb25KU0NTdGFja0Z1bmN0b3IgZnVuY3Rvcih0cmFjZSk7CiAgICAgZXhlYy0+aXRlcmF0
ZShmdW5jdG9yKTsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIiVzIiwgdHJhY2UudG9TdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IHRyYWNlLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgZnBy
aW50ZihzdGRlcnIsICIlcyIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfQorICAgIENSQVNIKCk7CiB9
CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25HQ0FuZFN3ZWVwKEV4ZWNT
dGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bmZpZ0ZpbGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uZmlnRmlsZS5j
cHAKaW5kZXggYmI4NzY2Ni4uZjdlY2RhYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29uZmlnRmlsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29uZmlnRmlsZS5jcHAKQEAgLTQ2NSw5ICs0NjUsMTIgQEAgdm9pZCBDb25maWdGaWxl
OjpwYXJzZSgpCiAgICAgICAgICAgICBXVEY6OnNldERhdGFGaWxlKGxvZ1BhdGhuYW1lKTsKIAog
ICAgICAgICBpZiAoIWpzY09wdGlvbnNCdWlsZGVyLmlzRW1wdHkoKSkgewotICAgICAgICAgICAg
Y29uc3QgY2hhciogb3B0aW9uc1N0ciA9IGpzY09wdGlvbnNCdWlsZGVyLnRvU3RyaW5nKCkudXRm
OCgpLmRhdGEoKTsKLSAgICAgICAgICAgIE9wdGlvbnM6OmVuYWJsZVJlc3RyaWN0ZWRPcHRpb25z
KHRydWUpOwotICAgICAgICAgICAgT3B0aW9uczo6c2V0T3B0aW9ucyhvcHRpb25zU3RyKTsKKyAg
ICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGpzY09wdGlvbnNCdWlsZGVyLnRvU3RyaW5nKCkp
IHsKKyAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBvcHRpb25zU3RyID0gc3RyaW5nLT51dGY4
KCkuZGF0YSgpOworICAgICAgICAgICAgICAgIE9wdGlvbnM6OmVuYWJsZVJlc3RyaWN0ZWRPcHRp
b25zKHRydWUpOworICAgICAgICAgICAgICAgIE9wdGlvbnM6OnNldE9wdGlvbnMob3B0aW9uc1N0
cik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAg
ICB9CiAgICAgfSBlbHNlCiAgICAgICAgIFdURjo6ZGF0YUxvZ0YoIkVycm9yIGluIEpTQyBDb25m
aWcgZmlsZSBvbiBvciBuZWFyIGxpbmUgJXUsIHBhcnNpbmcgJyVzJ1xuIiwgc2Nhbm5lci5saW5l
TnVtYmVyKCksIHNjYW5uZXIuY3VycmVudEJ1ZmZlcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVDbGllbnQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5jcHAKaW5kZXggMjkxN2Q3NjguLmI4NjY0M2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVDbGllbnQuY3Bw
CkBAIC0xNDQsNyArMTQ0LDEwIEBAIHZvaWQgQ29uc29sZUNsaWVudDo6cHJpbnRDb25zb2xlTWVz
c2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwKICAgICBidWlsZGVy
LmFwcGVuZCgnICcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG1lc3NhZ2UpOwogCi0gICAgV1RGTG9n
QWx3YXlzKCIlcyIsIGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIFdURkxvZ0Fsd2F5cygi
JXMiLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsK
IH0KIAogdm9pZCBDb25zb2xlQ2xpZW50OjpwcmludENvbnNvbGVNZXNzYWdlV2l0aEFyZ3VtZW50
cyhNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxl
dmVsLCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVu
dHMpCkBAIC0xNzAsNyArMTczLDEwIEBAIHZvaWQgQ29uc29sZUNsaWVudDo6cHJpbnRDb25zb2xl
TWVzc2FnZVdpdGhBcmd1bWVudHMoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhCiAgICAgICAg
IHNjb3BlLmNsZWFyRXhjZXB0aW9uKCk7CiAgICAgfQogCi0gICAgV1RGTG9nQWx3YXlzKCIlcyIs
IGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIFdURkxvZ0Fsd2F5cygiJXMiLCBzdHJpbmct
PnV0ZjgoKS5kYXRhKCkpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIGlmIChp
c1RyYWNlTWVzc2FnZSkgewogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNhbGxTdGFj
ay0+c2l6ZSgpOyArK2kpIHsKQEAgLTE4Nyw3ICsxOTMsMTAgQEAgdm9pZCBDb25zb2xlQ2xpZW50
OjpwcmludENvbnNvbGVNZXNzYWdlV2l0aEFyZ3VtZW50cyhNZXNzYWdlU291cmNlIHNvdXJjZSwg
TWVzc2EKICAgICAgICAgICAgIGFwcGVuZFVSTEFuZFBvc2l0aW9uKGNhbGxGcmFtZUJ1aWxkZXIs
IGNhbGxGcmFtZS5zb3VyY2VVUkwoKSwgY2FsbEZyYW1lLmxpbmVOdW1iZXIoKSwgY2FsbEZyYW1l
LmNvbHVtbk51bWJlcigpKTsKICAgICAgICAgICAgIGNhbGxGcmFtZUJ1aWxkZXIuYXBwZW5kKCcp
Jyk7CiAKLSAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiJXMiLCBjYWxsRnJhbWVCdWlsZGVyLnRv
U3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBj
YWxsRnJhbWVCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgV1RGTG9nQWx3YXlz
KCIlcyIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb252ZXJzaW9uLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb252ZXJzaW9uLmNwcAppbmRleCA4YTg3Y2M2Li40MjNi
ZTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29udmVy
c2lvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnZlcnNp
b24uY3BwCkBAIC0xMjMsNyArMTIzLDkgQEAgU3RyaW5nIGZvcm1hdERhdGVUaW1lKGNvbnN0IEdy
ZWdvcmlhbkRhdGVUaW1lJiB0LCBEYXRlVGltZUZvcm1hdCBmb3JtYXQsIGJvb2wgYXMKICAgICAg
ICAgfQogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCkuaW1wbCgpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0
cmluZy0+aW1wbCgpOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcAppbmRleCBj
MTcyNDI4Li43OGQyOTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvckluc3RhbmNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
cnJvckluc3RhbmNlLmNwcApAQCAtMTk5LDcgKzE5OSw5IEBAIFN0cmluZyBFcnJvckluc3RhbmNl
OjpzYW5pdGl6ZWRUb1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgYnVpbGRlci5hcHBlbmQo
bmFtZVN0cmluZyk7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI6ICIpOwogICAgIGJ1aWxk
ZXIuYXBwZW5kKG1lc3NhZ2VTdHJpbmcpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIEVycm9ySW5zdGFuY2U6Om1hdGVy
aWFsaXplRXJyb3JJbmZvSWZOZWVkZWQoVk0mIHZtKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcAppbmRleCA2OTkxNDRiLi42ZTAxYjlk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxw
ZXJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxw
ZXJzLmNwcApAQCAtMjExLDcgKzIxMSw5IEBAIHN0YXRpYyBTdHJpbmcgbm90QUZ1bmN0aW9uU291
cmNlQXBwZW5kZXIoY29uc3QgU3RyaW5nJiBvcmlnaW5hbE1lc3NhZ2UsIGNvbnN0IFN0CiAgICAg
fQogICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBpbnZhbGlk
UGFyYW1ldGVySW5Tb3VyY2VBcHBlbmRlcihjb25zdCBTdHJpbmcmIG9yaWdpbmFsTWVzc2FnZSwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VUZXh0LCBSdW50aW1lVHlwZSB0eXBlLCBFcnJvckluc3RhbmNl
OjpTb3VyY2VUZXh0V2hlcmVFcnJvck9jY3VycmVkIG9jY3VycmVuY2UpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCmluZGV4
IDAzMWZlMzIuLmRiYTVmODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCkBAIC0xNDMsMTQgKzE0MywxNyBAQCBKU09i
amVjdCogY29uc3RydWN0RnVuY3Rpb25Ta2lwcGluZ0V2YWxFbmFibGVkQ2hlY2soCiAgICAgICAg
IHsKICAgICAgICAgICAgIC8vIFRoZSBzcGVjIG1hbmRhdGVzIHRoYXQgdGhlIHBhcmFtZXRlcnMg
cGFyc2UgYXMgYSB2YWxpZCBwYXJhbWV0ZXIgbGlzdAogICAgICAgICAgICAgLy8gaW5kZXBlbmRl
bnQgb2YgdGhlIGZ1bmN0aW9uIGJvZHkuCi0gICAgICAgICAgICBTdHJpbmcgcHJvZ3JhbSA9IG1h
a2VTdHJpbmcoIigiLCBwcmVmaXgsICIoIiwgcGFyYW1ldGVyQnVpbGRlci50b1N0cmluZygpLCAi
KXtcblxufSkiKTsKLSAgICAgICAgICAgIFNvdXJjZUNvZGUgc291cmNlID0gbWFrZVNvdXJjZShw
cm9ncmFtLCBzb3VyY2VPcmlnaW4sIHNvdXJjZVVSTCwgcG9zaXRpb24pOwotICAgICAgICAgICAg
SlNWYWx1ZSBleGNlcHRpb247Ci0gICAgICAgICAgICBjaGVja1N5bnRheChleGVjLCBzb3VyY2Us
ICZleGNlcHRpb24pOwotICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbikgewotICAgICAgICAgICAg
ICAgIHNjb3BlLnRocm93RXhjZXB0aW9uKGV4ZWMsIGV4Y2VwdGlvbik7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBwYXJhbWV0ZXJCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBT
dHJpbmcgcHJvZ3JhbSA9IG1ha2VTdHJpbmcoIigiLCBwcmVmaXgsICIoIiwgKnN0cmluZywgIil7
XG5cbn0pIik7CisgICAgICAgICAgICAgICAgU291cmNlQ29kZSBzb3VyY2UgPSBtYWtlU291cmNl
KHByb2dyYW0sIHNvdXJjZU9yaWdpbiwgc291cmNlVVJMLCBwb3NpdGlvbik7CisgICAgICAgICAg
ICAgICAgSlNWYWx1ZSBleGNlcHRpb247CisgICAgICAgICAgICAgICAgY2hlY2tTeW50YXgoZXhl
Yywgc291cmNlLCAmZXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICBpZiAoZXhjZXB0aW9uKSB7
CisgICAgICAgICAgICAgICAgICAgIHNjb3BlLnRocm93RXhjZXB0aW9uKGV4ZWMsIGV4Y2VwdGlv
bik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAg
IH0KIAogICAgICAgICBidWlsZGVyLmFwcGVuZChwYXJhbWV0ZXJCdWlsZGVyKTsKQEAgLTE2MSw3
ICsxNjQsMTAgQEAgSlNPYmplY3QqIGNvbnN0cnVjdEZ1bmN0aW9uU2tpcHBpbmdFdmFsRW5hYmxl
ZENoZWNrKAogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoYm9keSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiXG59fSIpOwotICAgICAgICBwcm9ncmFtID0gYnVpbGRlci50b1N0cmluZygpOworICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBwcm9n
cmFtID0gKnN0cmluZzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9
CiAKICAgICBTb3VyY2VDb2RlIHNvdXJjZSA9IG1ha2VTb3VyY2UocHJvZ3JhbSwgc291cmNlT3Jp
Z2luLCBzb3VyY2VVUkwsIHBvc2l0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCmluZGV4IGM5MjBhY2YuLjJjMmYwNDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZv
cm1hdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1l
Rm9ybWF0LmNwcApAQCAtNjQ2LDcgKzY0NiwxMSBAQCB2b2lkIEludGxEYXRlVGltZUZvcm1hdDo6
aW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0KEV4ZWNTdGF0ZSYgZXhlYywgSlNWYWx1ZSBsb2NhbAog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU3RyaW5nIHNrZWxldG9uID0gc2tlbGV0b25C
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgU3RyaW5nIHNrZWxldG9uOworICAgIGlmIChhdXRvIHN0
cmluZyA9IHNrZWxldG9uQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBza2VsZXRvbiA9ICpz
dHJpbmc7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIFN0cmluZ1ZpZXcgc2tlbGV0
b25WaWV3KHNrZWxldG9uKTsKICAgICBWZWN0b3I8VUNoYXIsIDMyPiBwYXR0ZXJuQnVmZmVyKDMy
KTsKICAgICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxPYmplY3QuY3BwCmluZGV4IDNmNTQzNDAuLmI5NjVkZjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCkBAIC0yNDcsNyArMjQ3LDkg
QEAgc3RhdGljIFN0cmluZyBwcml2YXRlVXNlTGFuZ1RhZyhjb25zdCBWZWN0b3I8U3RyaW5nPiYg
cGFydHMsIHNpemVfdCBzdGFydEluZGV4KQogICAgIGlmIChjdXJyZW50SW5kZXggPCBudW1QYXJ0
cykKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgcmV0dXJuIHByaXZhdGV1c2UudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBwcml2YXRldXNlLnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJpbmcg
Y2Fub25pY2FsTGFuZ1RhZyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFydHMpCkBAIC0zODAsNyAr
MzgyLDEwIEBAIHN0YXRpYyBTdHJpbmcgY2Fub25pY2FsTGFuZ1RhZyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgcGFydHMpCiAgICAgICAgIGlmICghbnVtRXh0UGFydHMpCiAgICAgICAgICAgICByZXR1
cm4gU3RyaW5nKCk7CiAKLSAgICAgICAgZXh0ZW5zaW9ucy5hcHBlbmQoZXh0ZW5zaW9uLnRvU3Ry
aW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBleHRlbnNpb24udG9TdHJpbmcoKSkK
KyAgICAgICAgICAgIGV4dGVuc2lvbnMuYXBwZW5kKCpzdHJpbmcpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIC8vIEFkZCBleHRlbnNpb25zIHRvIGNh
bm9uaWNhbCBzb3J0ZWQgYnkgc2luZ2xldG9uLgpAQCAtNDA4LDcgKzQxMyw5IEBAIHN0YXRpYyBT
dHJpbmcgY2Fub25pY2FsTGFuZ1RhZyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFydHMpCiAKICAg
ICAvLyBGSVhNRTogUmVwbGFjZSBzdWJ0YWdzIHdpdGggdGhlaXIgcHJlZmVycmVkIHZhbHVlcy4K
IAotICAgIHJldHVybiBjYW5vbmljYWwudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBjYW5vbmljYWwudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBncmFuZGZhdGhlcmVkTGFuZ1RhZyhjb25zdCBTdHJp
bmcmIGxvY2FsZSkKQEAgLTYxMyw3ICs2MjAsMTAgQEAgU3RyaW5nIHJlbW92ZVVuaWNvZGVMb2Nh
bGVFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBsb2NhbGUpCiAgICAgICAgICAgICBidWlsZGVyLmFw
cGVuZChwYXJ0c1twXSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9T
dHJpbmcoKTsKKworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIE1hdGNoZXJS
ZXN1bHQgbG9va3VwTWF0Y2hlcihFeGVjU3RhdGUmIHN0YXRlLCBjb25zdCBIYXNoU2V0PFN0cmlu
Zz4mIGF2YWlsYWJsZUxvY2FsZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiByZXF1ZXN0ZWRMb2Nh
bGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3RGdW5jdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3RGdW5jdGlvbnMuY3BwCmluZGV4IDczMTM2NzMuLjE5YjUyYWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0
aW9ucy5jcHAKQEAgLTE1MSw3ICsxNTEsOSBAQCBzdGF0aWMgSlNWYWx1ZSBlbmNvZGUoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBCaXRtYXA8MjU2PiYgZG9Ob3RFc2NhcGUsIGNvbnN0IENoYQogICAg
ICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsIGJ1aWxkZXIudG9TdHJp
bmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4ganNTdHJpbmcoZXhlYywgKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogc3Rh
dGljIEpTVmFsdWUgZW5jb2RlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQml0bWFwPDI1Nj4mIGRv
Tm90RXNjYXBlKQpAQCAtMjMwLDcgKzIzMiwxMCBAQCBzdGF0aWMgSlNWYWx1ZSBkZWNvZGUoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBDaGFyVHlwZSogY2hhcmFjdGVycywgaW50IGxlbmd0aCwgYwog
ICAgICAgICBidWlsZGVyLmFwcGVuZChjKTsKICAgICB9CiAgICAgc2NvcGUucmVsZWFzZSgpOwot
ICAgIHJldHVybiBqc1N0cmluZygmdm0sIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBqc1N0cmlu
Zygmdm0sICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBKU1ZhbHVlIGRlY29k
ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEJpdG1hcDwyNTY+JiBkb05vdFVuZXNjYXBlLCBib29s
IHN0cmljdCkKQEAgLTYwMyw3ICs2MDgsOSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGdsb2JhbEZ1bmNFc2NhcGUoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgICAgICAgICBh
cHBlbmRCeXRlQXNIZXgoc3RhdGljX2Nhc3Q8TENoYXI+KHUpLCBidWlsZGVyKTsKICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4ganNTdHJpbmcoZXhl
YywgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4ganNTdHJpbmcoZXhlYywg
KnN0cmluZyk7CisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAKICAgICAgICAgY29u
c3QgVUNoYXIqIGMgPSB2aWV3LmNoYXJhY3RlcnMxNigpOwpAQCAtNjIyLDcgKzYyOSw5IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0VzY2FwZShFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICByZXR1cm4ganNTdHJpbmco
ZXhlYywgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsICpzdHJp
bmcpOworICAgICAgICBDUkFTSCgpOwogICAgIH0pKTsKIH0KIApAQCAtNjc4LDcgKzY4Nyw5IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1VuZXNjYXBlKEV4ZWNTdGF0
ZSogZXhlYykKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIHJldHVybiBqc1N0
cmluZyhleGVjLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4ganNTdHJpbmcoZXhlYywg
KnN0cmluZyk7CisgICAgICAgIENSQVNIKCk7CiAgICAgfSkpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCmluZGV4IGIzYTc4MDguLmQ3YzA2ZGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCkBAIC0y
NzgsNyArMjc4LDkgQEAgSlNWYWx1ZSBTdHJpbmdpZmllcjo6c3RyaW5naWZ5KEpTVmFsdWUgdmFs
dWUpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCiAgICAgc2NvcGUucmVsZWFzZSgp
OwotICAgIHJldHVybiBqc1N0cmluZyhtX2V4ZWMsIHJlc3VsdC50b1N0cmluZygpKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIGpzU3Ry
aW5nKG1fZXhlYywgKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogQUxXQVlTX0lOTElORSBK
U1ZhbHVlIFN0cmluZ2lmaWVyOjp0b0pTT04oSlNWYWx1ZSB2YWx1ZSwgY29uc3QgUHJvcGVydHlO
YW1lRm9yRnVuY3Rpb25DYWxsJiBwcm9wZXJ0eU5hbWUpCkBAIC01MDQsOCArNTA2LDEyIEBAIGJv
b2wgU3RyaW5naWZpZXI6OkhvbGRlcjo6YXBwZW5kTmV4dFByb3BlcnR5KFN0cmluZ2lmaWVyJiBz
dHJpbmdpZmllciwgU3RyaW5nQnVpCiAgICAgLy8gTGFzdCB0aW1lIHRocm91Z2gsIGZpbmlzaCB1
cCBhbmQgcmV0dXJuIGZhbHNlLgogICAgIGlmIChtX2luZGV4ID09IG1fc2l6ZSkgewogICAgICAg
ICBzdHJpbmdpZmllci51bmluZGVudCgpOwotICAgICAgICBpZiAobV9zaXplICYmIGJ1aWxkZXJb
YnVpbGRlci5sZW5ndGgoKSAtIDFdICE9ICd7JykKLSAgICAgICAgICAgIHN0cmluZ2lmaWVyLnN0
YXJ0TmV3TGluZShidWlsZGVyKTsKKyAgICAgICAgaWYgKG1fc2l6ZSkgeworICAgICAgICAgICAg
aWYgKGJ1aWxkZXIuZmFpbGVkKCkpCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAg
ICAgIGlmICgqYnVpbGRlcltidWlsZGVyLmxlbmd0aCgpIC0gMV0gIT0gJ3snKQorICAgICAgICAg
ICAgICAgIHN0cmluZ2lmaWVyLnN0YXJ0TmV3TGluZShidWlsZGVyKTsKKyAgICAgICAgfQogICAg
ICAgICBidWlsZGVyLmFwcGVuZChtX2lzQXJyYXkgPyAnXScgOiAnfScpOwogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQpAQCAtNTQ4LDcgKzU1NCw5IEBAIGJvb2wgU3RyaW5naWZpZXI6Okhv
bGRlcjo6YXBwZW5kTmV4dFByb3BlcnR5KFN0cmluZ2lmaWVyJiBzdHJpbmdpZmllciwgU3RyaW5n
QnVpCiAgICAgICAgIHJvbGxCYWNrUG9pbnQgPSBidWlsZGVyLmxlbmd0aCgpOwogCiAgICAgICAg
IC8vIEFwcGVuZCB0aGUgc2VwYXJhdG9yIHN0cmluZy4KLSAgICAgICAgaWYgKGJ1aWxkZXJbcm9s
bEJhY2tQb2ludCAtIDFdICE9ICd7JykKKyAgICAgICAgaWYgKGJ1aWxkZXIuZmFpbGVkKCkpCisg
ICAgICAgICAgICBDUkFTSCgpOworICAgICAgICBpZiAoKmJ1aWxkZXJbcm9sbEJhY2tQb2ludCAt
IDFdICE9ICd7JykKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcsJyk7CiAgICAgICAgIHN0
cmluZ2lmaWVyLnN0YXJ0TmV3TGluZShidWlsZGVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2VyLmNwcAppbmRleCBmMDBmZTA3Li5iODY4NjhhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2VyLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2VyLmNwcApA
QCAtNDY2LDEwICs0NjYsMTYgQEAgc2xvd1BhdGhCZWdpbjoKICAgICB9IGVsc2UgewogICAgICAg
ICBpZiAobV9idWlsZGVyLmlzOEJpdCgpKSB7CiAgICAgICAgICAgICB0b2tlbi5zdHJpbmdJczhC
aXQgPSAxOwotICAgICAgICAgICAgdG9rZW4uc3RyaW5nVG9rZW44ID0gbV9idWlsZGVyLmNoYXJh
Y3RlcnM4KCk7CisgICAgICAgICAgICBpZiAoYXV0byBjaGFycyA9IG1fYnVpbGRlci5jaGFyYWN0
ZXJzOCgpKQorICAgICAgICAgICAgICAgIHRva2VuLnN0cmluZ1Rva2VuOCA9ICpjaGFyczsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgdG9rZW4uc3RyaW5nSXM4Qml0ID0gMDsKLSAgICAgICAgICAgIHRva2Vu
LnN0cmluZ1Rva2VuMTYgPSBtX2J1aWxkZXIuY2hhcmFjdGVyczE2KCk7CisgICAgICAgICAgICBp
ZiAoYXV0byBjaGFycyA9IG1fYnVpbGRlci5jaGFyYWN0ZXJzMTYoKSkKKyAgICAgICAgICAgICAg
ICB0b2tlbi5zdHJpbmdUb2tlbjE2ID0gKmNoYXJzOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KICAgICAgICAgdG9rZW4uc3RyaW5nTGVuZ3Ro
ID0gbV9idWlsZGVyLmxlbmd0aCgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3B0aW9ucy5jcHAKaW5kZXggM2M4NjEyMy4uOTI3Y2QwOCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKQEAgLTU5NSw3ICs1OTUsMTAgQEAgdm9pZCBPcHRp
b25zOjpkdW1wT3B0aW9uc0lmTmVlZGVkKCkKIAogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7CiAgICAgICAgIGR1bXBBbGxPcHRpb25zKGJ1aWxkZXIsIGxldmVsLCB0aXRsZSwgbnVsbHB0
ciwgIiAgICIsICJcbiIsIER1bXBEZWZhdWx0cyk7Ci0gICAgICAgIGRhdGFMb2coYnVpbGRlci50
b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICAgICAgZGF0YUxvZygqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgQ1JBU0goKTsKICAgICB9CiB9CiAKQEAgLTgwNCw3ICs4MDcsMTAgQEAgdm9pZCBPcHRpb25z
OjpkdW1wQWxsT3B0aW9ucyhGSUxFKiBzdHJlYW0sIER1bXBMZXZlbCBsZXZlbCwgY29uc3QgY2hh
ciogdGl0bGUpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGR1bXBBbGxPcHRp
b25zKGJ1aWxkZXIsIGxldmVsLCB0aXRsZSwgbnVsbHB0ciwgIiAgICIsICJcbiIsIER1bXBEZWZh
dWx0cyk7Ci0gICAgZnByaW50ZihzdHJlYW0sICIlcyIsIGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4
KCkuZGF0YSgpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgIGZwcmludGYoc3RyZWFtLCAiJXMiLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAg
IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBPcHRpb25zOjpkdW1wT3B0aW9uKFN0
cmluZ0J1aWxkZXImIGJ1aWxkZXIsIER1bXBMZXZlbCBsZXZlbCwgT3B0aW9uczo6SUQgaWQsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcApp
bmRleCBkMzIxZTJkLi4zNmZjNmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKQEAgLTQ2Niw3ICs0NjYsOSBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUgcmVnRXhwUHJvdG9HZXR0ZXJTb3VyY2VJbnRlcm5hbChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IFN0cgogICAgICAgICAgICAgcHJldmlvdXNDaGFyYWN0ZXJXYXNCYWNrc2xhc2gg
PSBjaCA9PSAnXFwnOwogICAgIH0KIAotICAgIHJldHVybiBqc1N0cmluZyhleGVjLCByZXN1bHQu
dG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiBqc1N0cmluZyhleGVjLCAqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQog
CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyU291cmNlKEV4
ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1NhbXBsaW5nUHJvZmlsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2Ft
cGxpbmdQcm9maWxlci5jcHAKaW5kZXggNTkyYWY0MS4uZjA4YzRmZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKQEAgLTkwNCw3
ICs5MDQsOSBAQCBTdHJpbmcgU2FtcGxpbmdQcm9maWxlcjo6c3RhY2tUcmFjZXNBc0pTT04oKQog
CiAgICAgY2xlYXJEYXRhKGxvY2tlcik7CiAKLSAgICByZXR1cm4ganNvbi50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IGpzb24udG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBTYW1wbGluZ1Byb2ZpbGVyOjpyZWdpc3Rl
ckZvclJlcG9ydEF0RXhpdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdGFja0ZyYW1lLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNr
RnJhbWUuY3BwCmluZGV4IDlmMmQ2MGQuLjQ4YTIyYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuY3BwCkBAIC0xMzksNyArMTM5LDkgQEAgU3RyaW5nIFN0
YWNrRnJhbWU6OnRvU3RyaW5nKFZNJiB2bSkgY29uc3QKICAgICAgICAgICAgIHRyYWNlQnVpbGQu
YXBwZW5kTnVtYmVyKGNvbHVtbik7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIHRyYWNl
QnVpbGQudG9TdHJpbmcoKS5pbXBsKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdHJhY2VCdWls
ZC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gc3RyaW5nLT5pbXBsKCk7CisgICAgQ1JBU0go
KTsKIH0KIAogdm9pZCBTdGFja0ZyYW1lOjp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNp
dG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3Ry
dWN0b3IuY3BwCmluZGV4IDEwYWJjNzYuLjY0NWEzYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKQEAgLTEyNSw3ICsxMjUs
OSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdGcm9tQ29kZVBv
aW50KEV4ZWNTdGF0ZSogZXhlYykKICAgICB9CiAKICAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyhleGVjLCBidWlsZGVyLnRvU3RyaW5nKCkp
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcoZXhlYywgKnN0cmluZykpOworICAgIENSQVNI
KCk7CiB9CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdp
dGhTdHJpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAppbmRleCBhMGQzNjAxLi41OGNj
ZDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90
b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3Rv
dHlwZS5jcHAKQEAgLTI4MCw3ICsyODAsOSBAQCBzdGF0aWMgTkVWRVJfSU5MSU5FIFN0cmluZyBz
dWJzdGl0dXRlQmFja3JlZmVyZW5jZXNTbG93KFN0cmluZ1ZpZXcgcmVwbGFjZW1lbnQsCiAgICAg
aWYgKHJlcGxhY2VtZW50Lmxlbmd0aCgpIC0gb2Zmc2V0KQogICAgICAgICBzdWJzdGl0dXRlZFJl
cGxhY2VtZW50LmFwcGVuZChyZXBsYWNlbWVudC5zdWJzdHJpbmcob2Zmc2V0KSk7CiAKLSAgICBy
ZXR1cm4gc3Vic3RpdHV0ZWRSZXBsYWNlbWVudC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IHN1YnN0aXR1dGVkUmVwbGFjZW1lbnQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogaW5saW5lIFN0cmluZyBzdWJzdGl0dXRlQmFj
a3JlZmVyZW5jZXNJbmxpbmUoY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudCwgU3RyaW5nVmlldyBz
b3VyY2UsIGNvbnN0IGludCogb3ZlY3RvciwgUmVnRXhwKiByZWcpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlUHJvZmlsZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmNwcAppbmRleCAwZjg1ZWY4Li43YWU5NzQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlUHJvZmlsZXIu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQcm9maWxlci5jcHAK
QEAgLTEwNCw4ICsxMDQsMTAgQEAgU3RyaW5nIFR5cGVQcm9maWxlcjo6dHlwZUluZm9ybWF0aW9u
Rm9yRXhwcmVzc2lvbkF0T2Zmc2V0KFR5cGVQcm9maWxlclNlYXJjaERlc2MKICAgICAgICAganNv
bi5hcHBlbmRMaXRlcmFsKCJmYWxzZSIpOwogCiAgICAganNvbi5hcHBlbmQoJ30nKTsKLSAgICAK
LSAgICByZXR1cm4ganNvbi50b1N0cmluZygpOworCisgICAgaWYgKGF1dG8gc3RyaW5nID0ganNv
bi50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiBUeXBlTG9jYXRpb24qIFR5cGVQcm9maWxlcjo6ZmluZExvY2F0aW9uKHVuc2lnbmVkIGRpdm90
LCBpbnRwdHJfdCBzb3VyY2VJRCwgVHlwZVByb2ZpbGVyU2VhcmNoRGVzY3JpcHRvciBkZXNjcmlw
dG9yLCBWTSYgdm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9U
eXBlU2V0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVTZXQuY3BwCmlu
ZGV4IDdhNDEyZTYuLmMzYTA1YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1R5cGVTZXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5
cGVTZXQuY3BwCkBAIC0xMzEsNyArMTMxLDkgQEAgU3RyaW5nIFR5cGVTZXQ6OmR1bXBUeXBlcygp
IGNvbnN0CiAgICAgICAgIHNlZW4uYXBwZW5kKGxlYXN0Q29tbW9uQW5jZXN0b3IoKSk7CiAgICAg
fQogCi0gICAgcmV0dXJuIHNlZW4udG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBz
ZWVuLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIGJvb2wgVHlwZVNldDo6ZG9lc1R5cGVDb25mb3JtVG8oUnVudGltZVR5cGVNYXNrIHRlc3Qp
IGNvbnN0CkBAIC0zMTcsNyArMzE5LDkgQEAgU3RyaW5nIFR5cGVTZXQ6OnRvSlNPTlN0cmluZygp
IGNvbnN0CiAgICAganNvbi5hcHBlbmQoJ10nKTsKIAogICAgIGpzb24uYXBwZW5kKCd9Jyk7Ci0g
ICAgcmV0dXJuIGpzb24udG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBqc29uLnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0
cnVjdHVyZVNoYXBlOjpTdHJ1Y3R1cmVTaGFwZSgpCkBAIC0zNjIsOCArMzY2LDExIEBAIFN0cmlu
ZyBTdHJ1Y3R1cmVTaGFwZTo6cHJvcGVydHlIYXNoKCkKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
bV9wcm90by0+cHJvcGVydHlIYXNoKCkpOwogICAgIH0KIAotICAgIG1fcHJvcGVydHlIYXNoID0g
c3RkOjptYWtlX3VuaXF1ZTxTdHJpbmc+KGJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgcmV0dXJu
ICptX3Byb3BlcnR5SGFzaDsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpIHsKKyAgICAgICAgbV9wcm9wZXJ0eUhhc2ggPSBzdGQ6Om1ha2VfdW5pcXVlPFN0cmluZz4o
KnN0cmluZyk7CisgICAgICAgIHJldHVybiAqbV9wcm9wZXJ0eUhhc2g7CisgICAgfQorICAgIENS
QVNIKCk7CiB9CiAKIFN0cmluZyBTdHJ1Y3R1cmVTaGFwZTo6bGVhc3RDb21tb25BbmNlc3Rvcihj
b25zdCBWZWN0b3I8UmVmPFN0cnVjdHVyZVNoYXBlPj4mIHNoYXBlcykKQEAgLTQyNyw3ICs0MzQs
OSBAQCBTdHJpbmcgU3RydWN0dXJlU2hhcGU6OnN0cmluZ1JlcHJlc2VudGF0aW9uKCkKIAogICAg
IHJlcHJlc2VudGF0aW9uLmFwcGVuZCgnfScpOwogCi0gICAgcmV0dXJuIHJlcHJlc2VudGF0aW9u
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVwcmVzZW50YXRpb24udG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5n
IFN0cnVjdHVyZVNoYXBlOjp0b0pTT05TdHJpbmcoKSBjb25zdApAQCAtNDk0LDcgKzUwMyw5IEBA
IFN0cmluZyBTdHJ1Y3R1cmVTaGFwZTo6dG9KU09OU3RyaW5nKCkgY29uc3QKIAogICAgIGpzb24u
YXBwZW5kKCd9Jyk7CiAKLSAgICByZXR1cm4ganNvbi50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IGpzb24udG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlJ1bnRpbWU6OlN0cnVjdHVy
ZURlc2NyaXB0aW9uPiBTdHJ1Y3R1cmVTaGFwZTo6aW5zcGVjdG9yUmVwcmVzZW50YXRpb24oKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RSZWdFeHAuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RSZWdFeHAuY3BwCmluZGV4IGU2Y2RkNTAuLmM0ZDhkZWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAKQEAgLTMyOSwxMiArMzI5LDE1IEBAIHN0
YXRpYyBSZWdFeHAqIHBhcnNlUmVnRXhwTGluZShWTSYgdm0sIGNoYXIqIGxpbmUsIGludCBsaW5l
TGVuZ3RoLCBjb25zdCBjaGFyKioKIAogICAgICsraTsKIAotICAgIFJlZ0V4cCogciA9IFJlZ0V4
cDo6Y3JlYXRlKHZtLCBwYXR0ZXJuLnRvU3RyaW5nKCksIHJlZ0V4cEZsYWdzKGxpbmUgKyBpKSk7
Ci0gICAgaWYgKCFyLT5pc1ZhbGlkKCkpIHsKLSAgICAgICAgKnJlZ2V4cEVycm9yID0gci0+ZXJy
b3JNZXNzYWdlKCk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHBhdHRlcm4udG9TdHJpbmcoKSkgeworICAgICAgICBSZWdFeHAqIHIgPSBSZWdFeHA6OmNy
ZWF0ZSh2bSwgKnN0cmluZywgcmVnRXhwRmxhZ3MobGluZSArIGkpKTsKKyAgICAgICAgaWYgKCFy
LT5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgICpyZWdleHBFcnJvciA9IHItPmVycm9yTWVzc2Fn
ZSgpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIHI7CiAgICAgfQotICAgIHJldHVybiByOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBS
ZWdFeHBUZXN0KiBwYXJzZVRlc3RMaW5lKGNoYXIqIGxpbmUsIGludCBsaW5lTGVuZ3RoKQpAQCAt
Mzc3LDggKzM4MCwxMSBAQCBzdGF0aWMgUmVnRXhwVGVzdCogcGFyc2VUZXN0TGluZShjaGFyKiBs
aW5lLCBpbnQgbGluZUxlbmd0aCkKICAgICBpbnQgc3RhcnQsIGVuZDsKICAgICAKICAgICBSZWdF
eHBUZXN0KiByZXN1bHQgPSBuZXcgUmVnRXhwVGVzdCgpOwotICAgIAotICAgIHJlc3VsdC0+c3Vi
amVjdCA9IHN1YmplY3RTdHJpbmcudG9TdHJpbmcoKTsKKworICAgIGlmIChhdXRvIHN0cmluZyA9
IHN1YmplY3RTdHJpbmcudG9TdHJpbmcoKSkKKyAgICAgICAgcmVzdWx0LT5zdWJqZWN0ID0gKnN0
cmluZzsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgcmVzdWx0LT5vZmZzZXQgPSBv
ZmZzZXQ7CiAgICAgcmVzdWx0LT5yZXN1bHQgPSBtYXRjaFJlc3VsdDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90b29scy9GdW5jdGlvbk92ZXJyaWRlcy5jcHAKaW5kZXggZTgzYjZl
ZS4uNGFjMjdjNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0
aW9uT3ZlcnJpZGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rp
b25PdmVycmlkZXMuY3BwCkBAIC0yMTgsMTMgKzIxOCwxOCBAQCBzdGF0aWMgU3RyaW5nIHBhcnNl
Q2xhdXNlKGNvbnN0IGNoYXIqIGtleXdvcmQsIHNpemVfdCBrZXl3b3JkTGVuZ3RoLCBGSUxFKiBm
aWxlLAogICAgICAgICAgICAgICAgIEZBSUxfV0lUSF9FUlJPUihTWU5UQVhfRVJST1IsICgiVW5l
eHBlY3RlZCBjaGFyYWN0ZXJzIGFmdGVyICciLCBrZXl3b3JkLCAiJyBjbGF1c2UgZW5kIGRlbGlt
aXRlciAnIiwgZGVsaW1pdGVyLCAiJzpcbiIsIGxpbmUsICJcbiIpKTsKIAogICAgICAgICAgICAg
YnVpbGRlci5hcHBlbmQobGluZSwgcCAtIGxpbmUgKyAxKTsKLSAgICAgICAgICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgICAg
ICBDUkFTSCgpOwogICAgICAgICB9CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGxpbmUpOwogCiAg
ICAgfSB3aGlsZSAoKGxpbmUgPSBmZ2V0cyhidWZmZXIsIGJ1ZmZlclNpemUsIGZpbGUpKSk7CiAK
LSAgICBGQUlMX1dJVEhfRVJST1IoU1lOVEFYX0VSUk9SLCAoIiciLCBrZXl3b3JkLCAiJyBjbGF1
c2UgZW5kIGRlbGltaXRlciAnIiwgZGVsaW1pdGVyLCAiJyBub3QgZm91bmQ6XG4iLCBidWlsZGVy
LnRvU3RyaW5nKCksICJcbiIsICJBcmUgeW91IG1pc3NpbmcgYSAnfScgYmVmb3JlIHRoZSBkZWxp
bWl0ZXI/XG4iKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICBGQUlMX1dJVEhfRVJST1IoU1lOVEFYX0VSUk9SLCAoIiciLCBrZXl3b3JkLCAiJyBj
bGF1c2UgZW5kIGRlbGltaXRlciAnIiwgZGVsaW1pdGVyLCAiJyBub3QgZm91bmQ6XG4iLCAqc3Ry
aW5nLCAiXG4iLCAiQXJlIHlvdSBtaXNzaW5nIGEgJ30nIGJlZm9yZSB0aGUgZGVsaW1pdGVyP1xu
IikpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBGdW5jdGlvbk92ZXJy
aWRlczo6cGFyc2VPdmVycmlkZXNJbkZpbGUoY29uc3QgY2hhciogZmlsZU5hbWUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbi5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbi5jcHAKaW5kZXggYTc4MjBjOS4uZmEwMDM0
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW4uY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcApAQCAtMTUw
LDggKzE1MCwxMSBAQCB2b2lkIEJCUVBsYW46OnByZXBhcmUoKQogICAgICAgICAgICAgYnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCJGYWlsZWQgYWxsb2NhdGluZyBlbm91Z2ggc3BhY2UgZm9yICIpOwog
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoc2l6ZSk7CiAgICAgICAgICAgICBidWls
ZGVyLmFwcGVuZCh3aGF0KTsKLSAgICAgICAgICAgIGZhaWwoaG9sZExvY2sobV9sb2NrKSwgYnVp
bGRlci50b1N0cmluZygpKTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgICAg
IGZhaWwoaG9sZExvY2sobV9sb2NrKSwgV1RGTW92ZSgqc3RyaW5nKSk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQ1JBU0goKTsKICAg
ICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhcnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3lhcnIvWWFyclBhcnNlci5oCmluZGV4IGYxNmYxMWYuLjhiNzU4ZWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXJzZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmgKQEAgLTEwMzEsOCArMTAzMSwxMSBAQCBwcml2YXRl
OgogCiAgICAgICAgICAgICB3aGlsZSAoIWF0RW5kT2ZQYXR0ZXJuKCkpIHsKICAgICAgICAgICAg
ICAgICBjaCA9IHRyeUNvbnN1bWVJZGVudGlmaWVyQ2hhcmFjdGVyKCk7Ci0gICAgICAgICAgICAg
ICAgaWYgKGNoID09ICc+JykKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9u
YWw8U3RyaW5nPihpZGVudGlmaWVyQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAg
ICBpZiAoY2ggPT0gJz4nKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IGlkZW50aWZpZXJCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpvcHRpb25hbDxTdHJpbmc+KCpzdHJpbmcpOworICAgICAgICAgICAgICAgICAg
ICBDUkFTSCgpOworICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGlmICghaXNJ
ZGVudGlmaWVyUGFydChjaCkpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTA3MCwy
MyArMTA3MywzMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAg
ICAgIGlmIChmb3VuZEVxdWFscykgewotICAgICAgICAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9
IHVuaWNvZGVNYXRjaFByb3BlcnR5VmFsdWUodW5pY29kZVByb3BlcnR5TmFtZSwgZXhwcmVzc2lv
bkJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGV4cHJlc3Npb25CdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGF1dG8gcmVzdWx0ID0gdW5pY29kZU1hdGNoUHJvcGVydHlWYWx1ZSh1bmljb2RlUHJvcGVy
dHlOYW1lLCAqc3RyaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZXJyb3JDb2RlID0gRXJyb3JDb2RlOjpJbnZh
bGlkVW5pY29kZVByb3BlcnR5RXhwcmVzc2lvbjsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
Q1JBU0goKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBleHByZXNzaW9uQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAg
ICAgIGF1dG8gcmVzdWx0ID0gdW5pY29kZU1hdGNoUHJvcGVydHkoKnN0cmluZyk7CiAgICAgICAg
ICAgICAgICAgICAgIGlmICghcmVzdWx0KQogICAgICAgICAgICAgICAgICAgICAgICAgbV9lcnJv
ckNvZGUgPSBFcnJvckNvZGU6OkludmFsaWRVbmljb2RlUHJvcGVydHlFeHByZXNzaW9uOwogICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gdW5pY29kZU1hdGNoUHJvcGVydHkoZXhwcmVzc2lv
bkJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpCi0gICAg
ICAgICAgICAgICAgICAgIG1fZXJyb3JDb2RlID0gRXJyb3JDb2RlOjpJbnZhbGlkVW5pY29kZVBy
b3BlcnR5RXhwcmVzc2lvbjsKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
ICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGNvbnN1bWUo
KTsKICAgICAgICAgICAgIGlmIChjaCA9PSAnPScpIHsKICAgICAgICAgICAgICAgICBpZiAoIWZv
dW5kRXF1YWxzKSB7CiAgICAgICAgICAgICAgICAgICAgIGZvdW5kRXF1YWxzID0gdHJ1ZTsKLSAg
ICAgICAgICAgICAgICAgICAgdW5pY29kZVByb3BlcnR5TmFtZSA9IGV4cHJlc3Npb25CdWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGV4cHJl
c3Npb25CdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICAgICAgICB1bmljb2Rl
UHJvcGVydHlOYW1lID0gKnN0cmluZzsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lv
bkJ1aWxkZXIuY2xlYXIoKTsKICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAg
ICAgICAgZXJyb3JzKys7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDFkMmQyMGQuLjYyMGE1ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQ2
IEBACisyMDE4LTA0LTI2ICBKRiBCYXN0aWVuICA8amZiYXN0aWVuQGFwcGxlLmNvbT4KKworICAg
ICAgICBTdHJpbmdCdWlsZGVyIGlzIGZhbGxpYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUwNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBTdHJpbmdCdWlsZGVyIGNhbiBmYWlsIHdoZW4gYWxsb2Nh
dGluZyBtZW1vcnkuIFN0cmluZ0J1aWxkZXIgaXMKKyAgICAgICAgbW9zdGx5IHVzZWQgd2l0aCB1
c2VyIGlucHV0LCB3aGljaCBvZnRlbiBtZWFucyB0aGF0IGp1c3QgY3Jhc2hpbmcKKyAgICAgICAg
aXNuJ3QgdGhlIHJpZ2h0IG91dGNvbWUuIE91ciBmdXp6ZXJzIG9mdGVuIGVuY291bnRlciBzdWNo
IHRoaW5ncworICAgICAgICBmb3IgSmF2YVNjcmlwdENvcmUsIGFuZCBzbyBmYXIgd2UndmUgYXBw
bGllZCBwb2ludCBzb2x1dGlvbnMuIE5vCisgICAgICAgIG1vcmUhIFRoaXMgcGF0Y2ggbWFrZXMg
U3RyaW5nQnVpbGRlciBmYWxsaWJsZSBhbmQgZW5mb3JjZXMgdGhpcyBpbgorICAgICAgICB0d28g
d2F5czoKKworICAgICAgICAgIC0gRWFjaCBzdGVwIG9mIGJ1aWxkaW5nIGEgc3RyaW5nIGNhbiBi
ZSBjaGVja2VkIGZvciBmYWlsdXJlCisgICAgICAgICAgICBiZWNhdXNlIHRoZXkgbm93IHJldHVy
biBhICJGYWxsaWJsZTxUPiIuIFRoaXMgY2FuIGJlIGlnbm9yZWQgYXQKKyAgICAgICAgICAgIGV2
ZXJ5IHN0ZXAhCisgICAgICAgICAgLSBUaGUgZmluYWwgc3RlcCBvZiBTdHJpbmdCdWlsZGVyLCBn
ZXR0aW5nIHRoZSBzdHJpbmcgb3V0LAorICAgICAgICAgICAgcmV0dXJucyBhICJGYWxsaWJsZTxT
dHJpbmc+IiB3aGljaCBpcyBtYXJrZWQgd2l0aAorICAgICAgICAgICAgV0FSTl9VTlVTRURfUkVU
VVJOLiBGYWlsdXJlIGlzIGNvbW11bmljYXRlZCBpZiBhbnkgb2YgdGhlIGJ1aWxkaW5nCisgICAg
ICAgICAgICBzdGVwcyBmYWlsZWQuCisKKyAgICAgICAgRG9pbmcgdGhpcyB0d28tc3RlcCBhcHBy
b2FjaCBtZWFucyB0aGF0IGNvZGUgY2FuIGNvbnRpbnVlCisgICAgICAgIG9wZXJhdGluZyBhcyBp
dCBkaWQgYmVmb3JlIChhcHBlbmQgYSBidW5jaCBhbmQgdGhlbiBnZXQgYSBzdHJpbmcpCisgICAg
ICAgIGFuZCBvbmx5IG5lZWRzIHRvIGNhcmUgYWJvdXQgdGhlIHN0cmluZyBwb3RlbnRpYWxseSBu
b3QgYmVpbmcKKyAgICAgICAgYXZhaWxhYmxlLiBUaGlzIGlzIGVuZm9yY2VkIGJ5IHRoZSB0eXBl
IHN5c3RlbTogRmFsbGlibGU8VD4gaXMKKyAgICAgICAgc3RkOjpleHBlY3RlZDxULCBTdHJpbmdC
dWlsZGVyOjpGYWlsdXJlPi4KKworICAgICAgICBUaGUgZm9sbG93aW5nIGludGVybWVkaWF0ZSBm
dW5jdGlvbnMgY2FuIG5vdyBiZSBvYnNlcnZlZCB0byBmYWlsCisgICAgICAgIChvciBpZ25vcmVk
KToKKworICAgICAgICAgIC0gYXBwZW5kCisgICAgICAgICAgLSBhcHBlbmRVbmluaXRpYWxpemVk
CisgICAgICAgICAgLSBhcHBlbmRVbmluaXRpYWxpemVkU2xvdworICAgICAgICAgIC0gYXBwZW5k
UXVvdGVkSlNPTlN0cmluZyB1c2VkIHRvIHJldHVybiBmYWxzZSBvbiBmYWlsdXJlLCBpdCBub3cg
cmV0dXJucyBGYWxsaWJsZTw+CisgICAgICAgICAgLSByZXNpemUKKyAgICAgICAgICAtIGFsbG9j
YXRlQnVmZmVyCisgICAgICAgICAgLSBhbGxvY2F0ZUJ1ZmZlclVwQ29udmVydAorICAgICAgICAg
IC0gcmVhbGxvY2F0ZUJ1ZmZlcgorICAgICAgICAgIC0gcmVzZXJ2ZUNhcGFjaXR5CisgICAgICAg
ICAgLSBzaHJpbmtUb0ZpdAorICAgICAgICAgIC0gb3BlcmF0b3JbXQorICAgICAgICAgIC0gY2hh
cmFjdGVyczgKKyAgICAgICAgICAtIGNoYXJhY3RlcnMxNgorCisgICAgICAgIEZhaWx1cmUgaW4g
dGhlc2UgbWV0aG9kcyBjb21lcyBpbiB0d28gZm9ybXM6IG91dCBvZiBtZW1vcnksIGFuZAorICAg
ICAgICB3b3VsZCBvdmVyZmxvdy4gV2hlbiBhbiBvcGVyYXRpb24gd291bGQgb3ZlcmZsb3cgaXQg
bGVhdmVzIHRoZQorICAgICAgICBTdHJpbmdCdWlsZGVyIGluIGl0cyBwcmV2aW91cyBzdGF0ZSwg
YWxsb3dpbmcgdXNlcnMgdG8gcmVzdW1lCisgICAgICAgIHdvcmssIGtlZXAgdGhlIHN0cmluZyBh
cyBpdCBleGlzdGVkIGJlZm9yZSBmYWlsdXJlLiBXaGVuIHdlIGp1c3QKKyAgICAgICAgZmFpbCBh
bGxvY2F0aW5nIGl0IG1lYW5zIHdlIGV4cGVjdGVkIHRvIHN1Y2NlZWQsIHNvIGNsZWFyaW5nIHRo
ZQorICAgICAgICBTdHJpbmdCdWlsZGVyIGlzIHRoZSByaWdodCB0aGluZyB0byBkby4KKworICAg
ICAgICBTdXBwb3J0aW5nIGZhaWx1cmUgaW4gU3RyaW5nQnVpbGRlciByZXF1aXJlZCBhZGRpbmcg
InRyeSIgdmFyaWFudHMKKyAgICAgICAgb2Ygc29tZSBtZXRob2RzIGluIFN0cmluZ0ltcGwuCisK
KyAgICAgICAgVGhpcyBwYXRjaCB1cGRhdGVzIGFsbCBXZWJLaXQgY29kZSB3aGljaCB1c2VzIFN0
cmluZ0J1aWxkZXIuIEl0CisgICAgICAgIGxlYXZlcyBhbGwgaW50ZXJtZWRpYXRlIGZ1bmN0aW9u
IHVzYWdlIGFsb25lIChjb2RlIHN0aWxsIGFwcGVuZHMKKyAgICAgICAgYmFjay10by1iYWNrLCBi
bGlzc2Z1bGx5IHVuYXdhcmUgb2YgZmFpbHVyZSksIGFuZCBvbmx5IGNoZWNrcyBmb3IKKyAgICAg
ICAgZmFpbHVyZSB3aGVuIHJldHJpZXZpbmcgdGhlIHN0cmluZy4gVGhlIHBhdHRlcm4gdXNlZCBp
cyB1c3VhbGx5OgorCisgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICAgICAgZm9vKCpzdHJpbmcpOyAvLyBVc2Ugc3RyaW5nIGFzIGJlZm9yZS4u
LgorICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CisKKyAgICAgICAgVGhpcyBt
YWtlcyBmYWlsdXJlIGV4dHJlbWVseSBleHBsaWNpdC4gVGhlcmUncyBubyB0cnVlIGJlaGF2aW9y
CisgICAgICAgIGNoYW5nZTogd2hhdCB3b3VsZCBoYXZlIGNyYXNoZWQgd2hlbiBhcHBlbmRpbmcg
bm93IGNyYXNoZXMgd2hlbgorICAgICAgICByZXRyaWV2aW5nIHRoZSBzdHJpbmcuIFB1bGxpbmcg
Q1JBU0goKSBvdXQgd2lsbCBnaXZlIHNsaWdodGx5CisgICAgICAgIGJldHRlciBjcmFzaCBzaWdu
YXR1cmVzLCBhbmQgaXQgbWFrZXMgdGhlIGNvZGUgdmVyeSBvYnZpb3VzIGFib3V0CisgICAgICAg
IGZhaWx1cmUuIEkgcHVycG9zZWZ1bGx5IGRvbid0ICJmaXgiIGFueSBmYWlsdXJlIGJlY2F1c2Ug
dGhlc2UKKyAgICAgICAgc2hvdWxkIGJlIGRvbmUgaW4gYSB0YXJnZXRlZCBtYW5uZXIgd2l0aCBy
ZXBybyB0ZXN0cyB3aGVuZXZlcgorICAgICAgICBwb3NzaWJsZS4gSSdtIHZlcnkgd2FyeSBvZiBp
bnRyb2R1Y2luZyBidWdzIQorCisgICAgICAgIFdoZW4gc29tZW9uZSBpbmV2aXRhYmx5IGJsYW1l
cyBjb2RlIGJhY2sgdG8gdGhpcyBjb21taXQgKGJlY2F1c2UKKyAgICAgICAgaGV5IHRoZSBjb2Rl
IGlzIHByZXR0eSB1Z2x5LCBhbmQgeW91IG1pZ2h0IGJlIHN1cnByaXNlZCBhdCBzZWVpbmcKKyAg
ICAgICAgQ1JBU0goKSBpbiB5b3VyIGJlYXV0aWZ1bCBjb2RlKSB0aGVyZSBhcmUgYSBmZXcgdGhp
bmdzIHdoaWNoIHRoZXkKKyAgICAgICAgY2FuIGRvOgorCisgICAgICAgICAgMS4gQ2hhbmdlIHRo
ZSBlbHNlIGNsYXVzZSB0byBoYW5kbGUgZmFpbHVyZSByYXRoZXIgdGhhbiBjcmFzaC4gSW4gSmF2
YVNjcmlwdENvcmUgdGhhdCdzIHVzdWFsbHkgdGhyb3dPdXRPZk1lbW9yeUVycm9yLgorICAgICAg
ICAgIDIuIENoYW5nZSB0aGUgY29kZSB0byBkaXJlY3RseSB1c2UgRmFsbGlibGUncyAudmFsdWUo
KSBtZW1iZXIsIGFuZCBsZXQgKnRoYXQqIGNyYXNoIGluc3RlYWQuIFRoaXMgbWFrZXMgdGhlIGNy
YXNoIG5vbi1vYnZpb3VzIGluIHRoZSBjb2RlLCB3aGljaCBtaWdodCBiZSB3aGF0IHlvdSB3YW50
LgorICAgICAgICAgIDMuIENoYW5nZSB0aGUgY29kZSB0byBkZXRlY3QgZmFpbHVyZSBhdCB0aGUg
ZWFybGllc3Qgc3RlcCBvZiBzdHJpbmcgYnVpbGRpbmcgKGxpa2VseSB0aGUgYXBwZW5kIGNhbGxz
KSwgYW5kIGRvIHNvbWV0aGluZyBzZW5zaWJsZSB0aGVyZS4KKworICAgICAgICBJbiBubyBjaXJj
dW1zdGFuY2Ugc2hvdWxkIGNvZGUganVzdCBkZXJlZmVyZW5jZSBhIEZhbGxpYmxlIHdpdGhvdXQK
KyAgICAgICAga25vd2luZyB0aGF0IGl0cyBzdGF0ZSBob2xkcyBhIHZhbGlkIHN0cmluZy4gVGhp
cyBjb2RlIGlzCisgICAgICAgIHVuZGVmaW5lZCBiZWhhdmlvciBhY2NvcmRpbmcgdG8gdGhlIHN0
ZDo6ZXhwZWN0ZWQgc3BlY2lmaWNhdGlvbgorICAgICAgICAod2hldGhlciBvdXIgaW1wbGVtZW50
YXRpb24gc2hvdWxkIGRvIHNvbWV0aGluZyBlbHNlIGlzIG91dCBvZgorICAgICAgICBzY29wZSBm
b3IgdGhpcyBwYXRjaCk6CisKKyAgICAgICAgICBmb28oKmJ1aWxkZXIudG9TdHJpbmcoKSk7IC8v
IFVCIHdoZW4gYWxsb2NhdGlvbiBmYWlscy4KKworICAgICAgICAqIHd0Zi9Bc3NlcnRpb25zLmNw
cDoKKyAgICAgICAgKiB3dGYvRGF0ZU1hdGguY3BwOgorICAgICAgICAoV1RGOjptYWtlUkZDMjgy
MkRhdGVTdHJpbmcpOgorICAgICAgICAqIHd0Zi9KU09OVmFsdWVzLmNwcDoKKyAgICAgICAgKFdU
Rjo6SlNPTkltcGw6OlZhbHVlOjp0b0pTT05TdHJpbmcgY29uc3QpOgorICAgICAgICAqIHd0Zi9M
b2dnZXIuaDoKKyAgICAgICAgKFdURjo6TG9nQXJndW1lbnQ6OnRvU3RyaW5nKToKKyAgICAgICAg
KFdURjo6TG9nQXJndW1lbnQ8TG9nZ2VyOjpMb2dTaXRlSWRlbnRpZmllcj46OnRvU3RyaW5nKToK
KyAgICAgICAgKiB3dGYvTWVkaWFUaW1lLmNwcDoKKyAgICAgICAgKFdURjo6TWVkaWFUaW1lOjp0
b1N0cmluZyBjb25zdCk6CisgICAgICAgICogd3RmL1VVSUQuY3BwOgorICAgICAgICAoV1RGOjpj
cmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKToKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmNwcDoKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6d291bGRPdmVyZmxvdyk6Cisg
ICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6Om91dE9mTWVtb3J5KToKKyAgICAgICAgKFdURjo6
U3RyaW5nQnVpbGRlcjo6cmVzaXplKToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6YWxs
b2NhdGVCdWZmZXIpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjphbGxvY2F0ZUJ1ZmZl
clVwQ29udmVydCk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OnJlYWxsb2NhdGVCdWZm
ZXI8TENoYXI+KToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6cmVhbGxvY2F0ZUJ1ZmZl
cjxVQ2hhcj4pOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpyZXNlcnZlQ2FwYWNpdHkp
OgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjphcHBlbmQpOgorICAgICAgICAoV1RGOjpT
dHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVy
OjphcHBlbmRFQ01BU2NyaXB0TnVtYmVyKToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6
YXBwZW5kRml4ZWRXaWR0aE51bWJlcik6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OnNo
cmlua1RvRml0KToKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg6CisgICAgICAg
IChXVEY6OlN0cmluZ0J1aWxkZXI6OlN0cmluZ0J1aWxkZXIpOgorICAgICAgICAoV1RGOjpTdHJp
bmdCdWlsZGVyOjphcHBlbmQpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjphcHBlbmRM
aXRlcmFsKToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6dG9TdHJpbmcpOgorICAgICAg
ICAoV1RGOjpTdHJpbmdCdWlsZGVyOjp0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkgY29uc3QpOgor
ICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjp0b0F0b21pY1N0cmluZyBjb25zdCk6CisgICAg
ICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OmlzOEJpdCBjb25zdCk6CisgICAgICAgIChXVEY6OlN0
cmluZ0J1aWxkZXI6OmZhaWxlZCBjb25zdCk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6
Om9wZXJhdG9yW10gY29uc3QpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjogY29uc3Qp
OgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpjbGVhcik6CisgICAgICAgIChXVEY6OlN0
cmluZ0J1aWxkZXI6OnN3YXApOgorICAgICAgICAoV1RGOjplcXVhbCk6CisgICAgICAgIChXVEY6
OkludGVnZXJUb1N0cmluZ0NvbnZlcnNpb25UcmFpdDxTdHJpbmdCdWlsZGVyPjo6Zmx1c2gpOgor
ICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXJKU09OLmNwcDoKKyAgICAgICAgKFdURjo6
U3RyaW5nQnVpbGRlcjo6YXBwZW5kUXVvdGVkSlNPTlN0cmluZyk6CisgICAgICAgICogd3RmL3Rl
eHQvU3RyaW5nSW1wbC5jcHA6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OnJlYWxsb2NhdGVJ
bnRlcm5hbCk6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OnJlYWxsb2NhdGUpOgorICAgICAg
ICAoV1RGOjpTdHJpbmdJbXBsOjp0cnlSZWFsbG9jYXRlKToKKyAgICAgICAgKiB3dGYvdGV4dC9T
dHJpbmdJbXBsLmg6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OnRyeUNyZWF0ZVN1YnN0cmlu
Z1NoYXJpbmdJbXBsKToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6Y3JlYXRlU3Vic3RyaW5n
U2hhcmluZ0ltcGwpOgorICAgICAgICAqIHd0Zi90ZXh0L1RleHRTdHJlYW0uY3BwOgorICAgICAg
ICAoV1RGOjpUZXh0U3RyZWFtOjpyZWxlYXNlKToKKwogMjAxOC0wNC0yNSAgTWFyayBMYW0gIDxt
YXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgR2FyZGVuaW5nOiBTcGVjdWxhdGl2ZSBidWls
ZCBmaXggZm9yIFdpbmRvd3MgMzItYml0IHRvIGNvbXBlbnNhdGUgZm9yIE1TVkMncyBsYWNrIG9m
IHNtYXJ0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwIGIvU291
cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKaW5kZXggZTE1YTA5Mi4uZDdjODMxOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKKysrIGIvU291cmNlL1dURi93dGYv
QXNzZXJ0aW9ucy5jcHAKQEAgLTM0Miw5ICszNDIsMTEgQEAgdm9pZCBXVEZMb2dnaW5nQWNjdW11
bGF0b3I6OnJlc2V0QWNjdW11bGF0ZWRMb2dzKCkKIFN0cmluZyBXVEZMb2dnaW5nQWNjdW11bGF0
b3I6OmdldEFuZFJlc2V0QWNjdW11bGF0ZWRMb2dzKCkKIHsKICAgICBMb2NrZXI8TG9jaz4gbG9j
a2VyKGFjY3VtdWxhdG9yTG9jayk7Ci0gICAgU3RyaW5nIHJlc3VsdCA9IGxvZ2dpbmdBY2N1bXVs
YXRvci50b1N0cmluZygpOwotICAgIGxvZ2dpbmdBY2N1bXVsYXRvci5jbGVhcigpOwotICAgIHJl
dHVybiByZXN1bHQ7CisgICAgaWYgKGF1dG8gcmVzdWx0ID0gbG9nZ2luZ0FjY3VtdWxhdG9yLnRv
U3RyaW5nKCkpIHsKKyAgICAgICAgbG9nZ2luZ0FjY3VtdWxhdG9yLmNsZWFyKCk7CisgICAgICAg
IHJldHVybiAqcmVzdWx0OworICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgV1RGTG9n
Z2luZ0FjY3VtdWxhdG9yJiBsb2dnaW5nQWNjdW11bGF0b3IoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwCmluZGV4
IDZkYjkyZWIuLmE4NDI1ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5jcHAKQEAgLTExODcsNyArMTE4Nyw5IEBA
IFN0cmluZyBtYWtlUkZDMjgyMkRhdGVTdHJpbmcodW5zaWduZWQgZGF5T2ZXZWVrLCB1bnNpZ25l
ZCBkYXksIHVuc2lnbmVkIG1vbnRoLCB1CiAgICAgYXBwZW5kVHdvRGlnaXROdW1iZXIoc3RyaW5n
QnVpbGRlciwgYWJzb2x1dGVVVENPZmZzZXQgLyA2MCk7CiAgICAgYXBwZW5kVHdvRGlnaXROdW1i
ZXIoc3RyaW5nQnVpbGRlciwgYWJzb2x1dGVVVENPZmZzZXQgJSA2MCk7CiAKLSAgICByZXR1cm4g
c3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9KU09O
VmFsdWVzLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuY3BwCmluZGV4IGJkZTQ0YWIu
LjA4YzYyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuY3BwCisrKyBi
L1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuY3BwCkBAIC0zMjcsOCArMzI3LDExIEBAIGJvb2wg
ZGVjb2RlU3RyaW5nKGNvbnN0IFVDaGFyKiBzdGFydCwgY29uc3QgVUNoYXIqIGVuZCwgU3RyaW5n
JiBvdXRwdXQpCiAgICAgaWYgKCFkZWNvZGVTdHJpbmcoc3RhcnQsIGVuZCwgYnVmZmVyKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgb3V0cHV0ID0gYnVmZmVyLnRvU3RyaW5nKCk7Ci0g
ICAgcmV0dXJuIHRydWU7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVmZmVyLnRvU3RyaW5nKCkp
IHsKKyAgICAgICAgb3V0cHV0ID0gKnN0cmluZzsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
fQorICAgIHJldHVybiBmYWxzZTsKIH0KIAogUmVmUHRyPEpTT046OlZhbHVlPiBidWlsZFZhbHVl
KGNvbnN0IFVDaGFyKiBzdGFydCwgY29uc3QgVUNoYXIqIGVuZCwgY29uc3QgVUNoYXIqKiB2YWx1
ZVRva2VuRW5kLCBpbnQgZGVwdGgpCkBAIC01NTMsNyArNTU2LDkgQEAgU3RyaW5nIFZhbHVlOjp0
b0pTT05TdHJpbmcoKSBjb25zdAogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogICAgIHJlc3Vs
dC5yZXNlcnZlQ2FwYWNpdHkoNTEyKTsKICAgICB3cml0ZUpTT04ocmVzdWx0KTsKLSAgICByZXR1
cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wg
VmFsdWU6OmFzQm9vbGVhbihib29sJiBvdXRwdXQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9Mb2dnZXIuaCBiL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCmluZGV4IDZiMDFiNTgu
LjQ4YjhkODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL0xvZ2dlci5oCkBAIC00Niw3ICs0NiwxMiBAQCBzdHJ1Y3QgTG9nQXJndW1lbnQg
ewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFUgPSBUPiBzdGF0aWMgdHlwZW5hbWUgc3RkOjplbmFi
bGVfaWY8c3RkOjppc19zYW1lPFUsIGRvdWJsZT46OnZhbHVlLCBTdHJpbmc+Ojp0eXBlIHRvU3Ry
aW5nKGRvdWJsZSBhcmd1bWVudCkgeyByZXR1cm4gU3RyaW5nOjpudW1iZXIoYXJndW1lbnQpOyB9
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVSA9IFQ+IHN0YXRpYyB0eXBlbmFtZSBzdGQ6OmVuYWJs
ZV9pZjxzdGQ6OmlzX3NhbWU8dHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPFU+Ojp0eXBl
LCBBdG9taWNTdHJpbmc+Ojp2YWx1ZSwgU3RyaW5nPjo6dHlwZSB0b1N0cmluZyhBdG9taWNTdHJp
bmcgYXJndW1lbnQpIHsgcmV0dXJuIGFyZ3VtZW50LnN0cmluZygpOyB9CiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVSA9IFQ+IHN0YXRpYyB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxzdGQ6OmlzX3Nh
bWU8dHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPFU+Ojp0eXBlLCBTdHJpbmc+Ojp2YWx1
ZSwgU3RyaW5nPjo6dHlwZSB0b1N0cmluZyhTdHJpbmcgYXJndW1lbnQpIHsgcmV0dXJuIGFyZ3Vt
ZW50OyB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVSA9IFQ+IHN0YXRpYyB0eXBlbmFtZSBzdGQ6
OmVuYWJsZV9pZjxzdGQ6OmlzX3NhbWU8dHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPFU+
Ojp0eXBlLCBTdHJpbmdCdWlsZGVyKj46OnZhbHVlLCBTdHJpbmc+Ojp0eXBlIHRvU3RyaW5nKFN0
cmluZ0J1aWxkZXIqIGFyZ3VtZW50KSB7IHJldHVybiBhcmd1bWVudC0+dG9TdHJpbmcoKTsgfQor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFUgPSBUPiBzdGF0aWMgdHlwZW5hbWUgc3RkOjplbmFibGVf
aWY8c3RkOjppc19zYW1lPHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxVPjo6dHlwZSwg
U3RyaW5nQnVpbGRlcio+Ojp2YWx1ZSwgU3RyaW5nPjo6dHlwZSB0b1N0cmluZyhTdHJpbmdCdWls
ZGVyKiBhcmd1bWVudCkKKyAgICB7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGFyZ3VtZW50
LT50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNI
KCk7CisgICAgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFUgPSBUPiBzdGF0aWMgdHlwZW5hbWUg
c3RkOjplbmFibGVfaWY8c3RkOjppc19zYW1lPFUsIGNvbnN0IGNoYXIqPjo6dmFsdWUsIFN0cmlu
Zz46OnR5cGUgdG9TdHJpbmcoY29uc3QgY2hhciogYXJndW1lbnQpIHsgcmV0dXJuIFN0cmluZyhh
cmd1bWVudCk7IH0KICAgICB0ZW1wbGF0ZTxzaXplX3QgbGVuZ3RoPiBzdGF0aWMgU3RyaW5nIHRv
U3RyaW5nKGNvbnN0IGNoYXIgKCZhcmd1bWVudClbbGVuZ3RoXSkgeyByZXR1cm4gU3RyaW5nKGFy
Z3VtZW50KTsgfQogfTsKQEAgLTI3NCw3ICsyNzksOSBAQCBzdHJ1Y3QgTG9nQXJndW1lbnQ8TG9n
Z2VyOjpMb2dTaXRlSWRlbnRpZmllcj4gewogICAgICAgICBidWlsZGVyLmFwcGVuZCgnKCcpOwog
ICAgICAgICBhcHBlbmRVbnNpZ25lZDY0QXNIZXgodmFsdWUub2JqZWN0UHRyLCBidWlsZGVyKTsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpICIpOwotICAgICAgICByZXR1cm4gYnVp
bGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAg
ICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZWRpYVRpbWUuY3BwIGIvU291
cmNlL1dURi93dGYvTWVkaWFUaW1lLmNwcAppbmRleCAwMzA1MGI1Li4xZjc3YjQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9NZWRpYVRpbWUuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL01l
ZGlhVGltZS5jcHAKQEAgLTU3NCw3ICs1NzQsOSBAQCBTdHJpbmcgTWVkaWFUaW1lOjp0b1N0cmlu
ZygpIGNvbnN0CiAgICAgfQogICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRvRG91YmxlKCkpOwog
ICAgIGJ1aWxkZXIuYXBwZW5kKCd9Jyk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBNZWRpYVRpbWU6OnRvSlNPTlN0
cmluZygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9VVUlELmNwcCBiL1NvdXJj
ZS9XVEYvd3RmL1VVSUQuY3BwCmluZGV4IGZiNWZlNWIuLmI1OThmMDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1VVSUQuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1VVSUQuY3BwCkBAIC01
Niw3ICs1Niw5IEBAIFN0cmluZyBjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkKICAgICBidWls
ZGVyLmFwcGVuZCgnLScpOwogICAgIGFwcGVuZFVuc2lnbmVkQXNIZXhGaXhlZFNpemUocmFuZG9t
RGF0YVsyXSAmIDB4MDAwMGZmZmYsIGJ1aWxkZXIsIDQsIExvd2VyY2FzZSk7CiAgICAgYXBwZW5k
VW5zaWduZWRBc0hleEZpeGVkU2l6ZShyYW5kb21EYXRhWzNdLCBidWlsZGVyLCA4LCBMb3dlcmNh
c2UpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxk
ZXIuY3BwCmluZGV4IDg1YjBjMjEuLjI1ODRjNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdC
dWlsZGVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIw
MTMsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEwLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CkBAIC02MiwyNiArNjIsNDQgQEAgdm9pZCBTdHJpbmdCdWlsZGVyOjpyZWlmeVN0cmluZygp
IGNvbnN0CiAgICAgICAgIG1fc3RyaW5nID0gU3RyaW5nSW1wbDo6Y3JlYXRlU3Vic3RyaW5nU2hh
cmluZ0ltcGwoKm1fYnVmZmVyLCAwLCBtX2xlbmd0aCk7CiB9CiAKLXZvaWQgU3RyaW5nQnVpbGRl
cjo6cmVzaXplKHVuc2lnbmVkIG5ld1NpemUpCitVbmV4cGVjdGVkPFN0cmluZ0J1aWxkZXI6OkZh
aWx1cmU+IFN0cmluZ0J1aWxkZXI6OndvdWxkT3ZlcmZsb3coKQoreworICAgIG1fZmFpbGVkID0g
dHJ1ZTsKKyAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmFpbHVyZTo6V291bGRPdmVyZmxvdyk7
Cit9CisKK1VuZXhwZWN0ZWQ8U3RyaW5nQnVpbGRlcjo6RmFpbHVyZT4gU3RyaW5nQnVpbGRlcjo6
b3V0T2ZNZW1vcnkoKQoreworICAgIGNsZWFyKCk7CisgICAgbV9mYWlsZWQgPSB0cnVlOworICAg
IHJldHVybiBtYWtlVW5leHBlY3RlZChGYWlsdXJlOjpPdXRPZk1lbW9yeSk7Cit9CisKK1N0cmlu
Z0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6cmVzaXplKHVuc2lnbmVkIG5ld1Np
emUpCiB7CiAgICAgLy8gQ2hlY2sgbmV3U2l6ZSA8IG1fbGVuZ3RoLCBoZW5jZSBtX2xlbmd0aCA+
IDAuCiAgICAgQVNTRVJUKG5ld1NpemUgPD0gbV9sZW5ndGgpOwogICAgIGlmIChuZXdTaXplID09
IG1fbGVuZ3RoKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB7IH07CiAgICAgQVNT
RVJUKG1fbGVuZ3RoKTsKIAogICAgIC8vIElmIHRoZXJlIGlzIGEgYnVmZmVyLCB3ZSBvbmx5IG5l
ZWQgdG8gZHVwbGljYXRlIGl0IGlmIGl0IGhhcyBtb3JlIHRoYW4gb25lIHJlZi4KICAgICBpZiAo
bV9idWZmZXIpIHsKICAgICAgICAgbV9zdHJpbmcgPSBTdHJpbmcoKTsgLy8gQ2xlYXIgdGhlIHN0
cmluZyB0byByZW1vdmUgdGhlIHJlZmVyZW5jZSB0byBtX2J1ZmZlciBpZiBhbnkgYmVmb3JlIGNo
ZWNraW5nIHRoZSByZWZlcmVuY2UgY291bnQgb2YgbV9idWZmZXIuCiAgICAgICAgIGlmICghbV9i
dWZmZXItPmhhc09uZVJlZigpKSB7Ci0gICAgICAgICAgICBpZiAobV9idWZmZXItPmlzOEJpdCgp
KQotICAgICAgICAgICAgICAgIGFsbG9jYXRlQnVmZmVyKG1fYnVmZmVyLT5jaGFyYWN0ZXJzOCgp
LCBtX2J1ZmZlci0+bGVuZ3RoKCkpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
IGFsbG9jYXRlQnVmZmVyKG1fYnVmZmVyLT5jaGFyYWN0ZXJzMTYoKSwgbV9idWZmZXItPmxlbmd0
aCgpKTsKKyAgICAgICAgICAgIGlmIChtX2J1ZmZlci0+aXM4Qml0KCkpIHsKKyAgICAgICAgICAg
ICAgICBhdXRvIGFsbG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVyKG1fYnVmZmVyLT5jaGFyYWN0ZXJz
OCgpLCBtX2J1ZmZlci0+bGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIGlmICghYWxsb2NhdGVk
KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWxsb2NhdGVkOworICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICBhdXRvIGFsbG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVyKG1f
YnVmZmVyLT5jaGFyYWN0ZXJzMTYoKSwgbV9idWZmZXItPmxlbmd0aCgpKTsKKyAgICAgICAgICAg
ICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRl
ZDsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBtX2xlbmd0aCA9IG5ld1NpemU7
CiAgICAgICAgIEFTU0VSVChtX2J1ZmZlci0+bGVuZ3RoKCkgPj0gbV9sZW5ndGgpOwotICAgICAg
ICByZXR1cm47CisgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCiAgICAgLy8gU2luY2UgbV9s
ZW5ndGggJiYgIW1fYnVmZmVyLCB0aGUgc3RyaW5nIG11c3QgYmUgdmFsaWQgaW4gbV9zdHJpbmcs
IGFuZCBtX3N0cmluZy5sZW5ndGgoKSA+IDAuCkBAIC04OSw0NyArMTA3LDYwIEBAIHZvaWQgU3Ry
aW5nQnVpbGRlcjo6cmVzaXplKHVuc2lnbmVkIG5ld1NpemUpCiAgICAgQVNTRVJUKG1fbGVuZ3Ro
ID09IG1fc3RyaW5nLmxlbmd0aCgpKTsKICAgICBBU1NFUlQobmV3U2l6ZSA8IG1fc3RyaW5nLmxl
bmd0aCgpKTsKICAgICBtX2xlbmd0aCA9IG5ld1NpemU7Ci0gICAgbV9zdHJpbmcgPSBTdHJpbmdJ
bXBsOjpjcmVhdGVTdWJzdHJpbmdTaGFyaW5nSW1wbCgqbV9zdHJpbmcuaW1wbCgpLCAwLCBuZXdT
aXplKTsKKyAgICBpZiAoYXV0byBjcmVhdGVkID0gU3RyaW5nSW1wbDo6dHJ5Q3JlYXRlU3Vic3Ry
aW5nU2hhcmluZ0ltcGwoKm1fc3RyaW5nLmltcGwoKSwgMCwgbmV3U2l6ZSkpIHsKKyAgICAgICAg
bV9zdHJpbmcgPSAqY3JlYXRlZDsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9IGVsc2UKKyAg
ICAgICAgcmV0dXJuIG91dE9mTWVtb3J5KCk7CiB9CiAKIC8vIEFsbG9jYXRlIGEgbmV3IDggYml0
IGJ1ZmZlciwgY29weWluZyBpbiBjdXJyZW50Q2hhcmFjdGVycyAodGhlc2UgbWF5IGNvbWUgZnJv
bSBlaXRoZXIgbV9zdHJpbmcKIC8vIG9yIG1fYnVmZmVyLCBuZWl0aGVyIHdpbGwgYmUgcmVhc3Np
Z25lZCB1bnRpbCB0aGUgY29weSBoYXMgY29tcGxldGVkKS4KLXZvaWQgU3RyaW5nQnVpbGRlcjo6
YWxsb2NhdGVCdWZmZXIoY29uc3QgTENoYXIqIGN1cnJlbnRDaGFyYWN0ZXJzLCB1bnNpZ25lZCBy
ZXF1aXJlZExlbmd0aCkKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6
YWxsb2NhdGVCdWZmZXIoY29uc3QgTENoYXIqIGN1cnJlbnRDaGFyYWN0ZXJzLCB1bnNpZ25lZCBy
ZXF1aXJlZExlbmd0aCkKIHsKICAgICBBU1NFUlQobV9pczhCaXQpOwogICAgIC8vIENvcHkgdGhl
IGV4aXN0aW5nIGRhdGEgaW50byBhIG5ldyBidWZmZXIsIHNldCByZXN1bHQgdG8gcG9pbnQgdG8g
dGhlIGVuZCBvZiB0aGUgZXhpc3RpbmcgZGF0YS4KLSAgICBhdXRvIGJ1ZmZlciA9IFN0cmluZ0lt
cGw6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQocmVxdWlyZWRMZW5ndGgsIG1fYnVmZmVyQ2hhcmFjdGVy
czgpOworICAgIGF1dG8gYnVmZmVyID0gU3RyaW5nSW1wbDo6dHJ5Q3JlYXRlVW5pbml0aWFsaXpl
ZChyZXF1aXJlZExlbmd0aCwgbV9idWZmZXJDaGFyYWN0ZXJzOCk7CisgICAgaWYgKCFidWZmZXIp
CisgICAgICAgIHJldHVybiBvdXRPZk1lbW9yeSgpOwogICAgIG1lbWNweShtX2J1ZmZlckNoYXJh
Y3RlcnM4LCBjdXJyZW50Q2hhcmFjdGVycywgc3RhdGljX2Nhc3Q8c2l6ZV90PihtX2xlbmd0aCkg
KiBzaXplb2YoTENoYXIpKTsgLy8gVGhpcyBjYW4ndCBvdmVyZmxvdy4KICAgICAKICAgICAvLyBV
cGRhdGUgdGhlIGJ1aWxkZXIgc3RhdGUuCiAgICAgbV9idWZmZXIgPSBXVEZNb3ZlKGJ1ZmZlcik7
CiAgICAgbV9zdHJpbmcgPSBTdHJpbmcoKTsKICAgICBBU1NFUlQobV9idWZmZXItPmxlbmd0aCgp
ID09IHJlcXVpcmVkTGVuZ3RoKTsKKyAgICByZXR1cm4geyB9OwogfQogCiAvLyBBbGxvY2F0ZSBh
IG5ldyAxNiBiaXQgYnVmZmVyLCBjb3B5aW5nIGluIGN1cnJlbnRDaGFyYWN0ZXJzICh0aGVzZSBt
YXkgY29tZSBmcm9tIGVpdGhlciBtX3N0cmluZwogLy8gb3IgbV9idWZmZXIsICBuZWl0aGVyIHdp
bGwgYmUgcmVhc3NpZ25lZCB1bnRpbCB0aGUgY29weSBoYXMgY29tcGxldGVkKS4KLXZvaWQgU3Ry
aW5nQnVpbGRlcjo6YWxsb2NhdGVCdWZmZXIoY29uc3QgVUNoYXIqIGN1cnJlbnRDaGFyYWN0ZXJz
LCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3Ry
aW5nQnVpbGRlcjo6YWxsb2NhdGVCdWZmZXIoY29uc3QgVUNoYXIqIGN1cnJlbnRDaGFyYWN0ZXJz
LCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKIHsKICAgICBBU1NFUlQoIW1faXM4Qml0KTsKICAg
ICAvLyBDb3B5IHRoZSBleGlzdGluZyBkYXRhIGludG8gYSBuZXcgYnVmZmVyLCBzZXQgcmVzdWx0
IHRvIHBvaW50IHRvIHRoZSBlbmQgb2YgdGhlIGV4aXN0aW5nIGRhdGEuCi0gICAgYXV0byBidWZm
ZXIgPSBTdHJpbmdJbXBsOjpjcmVhdGVVbmluaXRpYWxpemVkKHJlcXVpcmVkTGVuZ3RoLCBtX2J1
ZmZlckNoYXJhY3RlcnMxNik7CisgICAgYXV0byBidWZmZXIgPSBTdHJpbmdJbXBsOjp0cnlDcmVh
dGVVbmluaXRpYWxpemVkKHJlcXVpcmVkTGVuZ3RoLCBtX2J1ZmZlckNoYXJhY3RlcnMxNik7Cisg
ICAgaWYgKCFidWZmZXIpCisgICAgICAgIHJldHVybiBvdXRPZk1lbW9yeSgpOwogICAgIG1lbWNw
eShtX2J1ZmZlckNoYXJhY3RlcnMxNiwgY3VycmVudENoYXJhY3RlcnMsIHN0YXRpY19jYXN0PHNp
emVfdD4obV9sZW5ndGgpICogc2l6ZW9mKFVDaGFyKSk7IC8vIFRoaXMgY2FuJ3Qgb3ZlcmZsb3cu
CiAgICAgCiAgICAgLy8gVXBkYXRlIHRoZSBidWlsZGVyIHN0YXRlLgogICAgIG1fYnVmZmVyID0g
V1RGTW92ZShidWZmZXIpOwogICAgIG1fc3RyaW5nID0gU3RyaW5nKCk7CiAgICAgQVNTRVJUKG1f
YnVmZmVyLT5sZW5ndGgoKSA9PSByZXF1aXJlZExlbmd0aCk7CisgICAgcmV0dXJuIHsgfTsKIH0K
IAogLy8gQWxsb2NhdGUgYSBuZXcgMTYgYml0IGJ1ZmZlciwgY29weWluZyBpbiBjdXJyZW50Q2hh
cmFjdGVycyAod2hpY2ggaXMgOCBiaXQgYW5kIG1heSBjb21lCiAvLyBmcm9tIGVpdGhlciBtX3N0
cmluZyBvciBtX2J1ZmZlciwgbmVpdGhlciB3aWxsIGJlIHJlYXNzaWduZWQgdW50aWwgdGhlIGNv
cHkgaGFzIGNvbXBsZXRlZCkuCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFsbG9jYXRlQnVmZmVyVXBD
b252ZXJ0KGNvbnN0IExDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVxdWlyZWRM
ZW5ndGgpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFsbG9jYXRl
QnVmZmVyVXBDb252ZXJ0KGNvbnN0IExDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQg
cmVxdWlyZWRMZW5ndGgpCiB7CiAgICAgQVNTRVJUKG1faXM4Qml0KTsKICAgICBBU1NFUlQocmVx
dWlyZWRMZW5ndGggPj0gbV9sZW5ndGgpOwogICAgIC8vIENvcHkgdGhlIGV4aXN0aW5nIGRhdGEg
aW50byBhIG5ldyBidWZmZXIsIHNldCByZXN1bHQgdG8gcG9pbnQgdG8gdGhlIGVuZCBvZiB0aGUg
ZXhpc3RpbmcgZGF0YS4KLSAgICBhdXRvIGJ1ZmZlciA9IFN0cmluZ0ltcGw6OmNyZWF0ZVVuaW5p
dGlhbGl6ZWQocmVxdWlyZWRMZW5ndGgsIG1fYnVmZmVyQ2hhcmFjdGVyczE2KTsKKyAgICBhdXRv
IGJ1ZmZlciA9IFN0cmluZ0ltcGw6OnRyeUNyZWF0ZVVuaW5pdGlhbGl6ZWQocmVxdWlyZWRMZW5n
dGgsIG1fYnVmZmVyQ2hhcmFjdGVyczE2KTsKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAgcmV0
dXJuIG91dE9mTWVtb3J5KCk7CisKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9sZW5n
dGg7ICsraSkKICAgICAgICAgbV9idWZmZXJDaGFyYWN0ZXJzMTZbaV0gPSBjdXJyZW50Q2hhcmFj
dGVyc1tpXTsKICAgICAKQEAgLTEzOSwxMCArMTcwLDExIEBAIHZvaWQgU3RyaW5nQnVpbGRlcjo6
YWxsb2NhdGVCdWZmZXJVcENvbnZlcnQoY29uc3QgTENoYXIqIGN1cnJlbnRDaGFyYWN0ZXJzLCB1
bnNpCiAgICAgbV9idWZmZXIgPSBXVEZNb3ZlKGJ1ZmZlcik7CiAgICAgbV9zdHJpbmcgPSBTdHJp
bmcoKTsKICAgICBBU1NFUlQobV9idWZmZXItPmxlbmd0aCgpID09IHJlcXVpcmVkTGVuZ3RoKTsK
KyAgICByZXR1cm4geyB9OwogfQogCiB0ZW1wbGF0ZSA8Pgotdm9pZCBTdHJpbmdCdWlsZGVyOjpy
ZWFsbG9jYXRlQnVmZmVyPExDaGFyPih1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKK1N0cmluZ0J1
aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6cmVhbGxvY2F0ZUJ1ZmZlcjxMQ2hhcj4o
dW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCiB7CiAgICAgLy8gSWYgdGhlIGJ1ZmZlciBoYXMgb25s
eSBvbmUgcmVmIChieSB0aGlzIFN0cmluZ0J1aWxkZXIpLCByZWFsbG9jYXRlIGl0LAogICAgIC8v
IG90aGVyd2lzZSBmYWxsIGJhY2sgdG8gImFsbG9jYXRlIGFuZCBjb3B5IiBtZXRob2QuCkBAIC0x
NTEsNjUgKzE4Myw4OSBAQCB2b2lkIFN0cmluZ0J1aWxkZXI6OnJlYWxsb2NhdGVCdWZmZXI8TENo
YXI+KHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQogICAgIEFTU0VSVChtX2lzOEJpdCk7CiAgICAg
QVNTRVJUKG1fYnVmZmVyLT5pczhCaXQoKSk7CiAgICAgCi0gICAgaWYgKG1fYnVmZmVyLT5oYXNP
bmVSZWYoKSkKLSAgICAgICAgbV9idWZmZXIgPSBTdHJpbmdJbXBsOjpyZWFsbG9jYXRlKG1fYnVm
ZmVyLnJlbGVhc2VOb25OdWxsKCksIHJlcXVpcmVkTGVuZ3RoLCBtX2J1ZmZlckNoYXJhY3RlcnM4
KTsKLSAgICBlbHNlCi0gICAgICAgIGFsbG9jYXRlQnVmZmVyKG1fYnVmZmVyLT5jaGFyYWN0ZXJz
OCgpLCByZXF1aXJlZExlbmd0aCk7CisgICAgaWYgKG1fYnVmZmVyLT5oYXNPbmVSZWYoKSkgewor
ICAgICAgICBhdXRvIHJlYWxsb2NhdGVkID0gU3RyaW5nSW1wbDo6dHJ5UmVhbGxvY2F0ZShtX2J1
ZmZlci5yZWxlYXNlTm9uTnVsbCgpLCByZXF1aXJlZExlbmd0aCwgbV9idWZmZXJDaGFyYWN0ZXJz
OCk7CisgICAgICAgIGlmICghcmVhbGxvY2F0ZWQpCisgICAgICAgICAgICByZXR1cm4gb3V0T2ZN
ZW1vcnkoKTsKKyAgICAgICAgbV9idWZmZXIgPSByZWFsbG9jYXRlZC5nZXQoKTsKKyAgICB9IGVs
c2UgeworICAgICAgICBhdXRvIGFsbG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVyKG1fYnVmZmVyLT5j
aGFyYWN0ZXJzOCgpLCByZXF1aXJlZExlbmd0aCk7CisgICAgICAgIGlmICghYWxsb2NhdGVkKQor
ICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRlZDsKKyAgICB9CiAgICAgQVNTRVJUKG1fYnVmZmVy
LT5sZW5ndGgoKSA9PSByZXF1aXJlZExlbmd0aCk7CisgICAgcmV0dXJuIHsgfTsKIH0KIAogdGVt
cGxhdGUgPD4KLXZvaWQgU3RyaW5nQnVpbGRlcjo6cmVhbGxvY2F0ZUJ1ZmZlcjxVQ2hhcj4odW5z
aWduZWQgcmVxdWlyZWRMZW5ndGgpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1
aWxkZXI6OnJlYWxsb2NhdGVCdWZmZXI8VUNoYXI+KHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQog
ewogICAgIC8vIElmIHRoZSBidWZmZXIgaGFzIG9ubHkgb25lIHJlZiAoYnkgdGhpcyBTdHJpbmdC
dWlsZGVyKSwgcmVhbGxvY2F0ZSBpdCwKICAgICAvLyBvdGhlcndpc2UgZmFsbCBiYWNrIHRvICJh
bGxvY2F0ZSBhbmQgY29weSIgbWV0aG9kLgogICAgIG1fc3RyaW5nID0gU3RyaW5nKCk7CiAgICAg
Ci0gICAgaWYgKG1fYnVmZmVyLT5pczhCaXQoKSkKLSAgICAgICAgYWxsb2NhdGVCdWZmZXJVcENv
bnZlcnQobV9idWZmZXItPmNoYXJhY3RlcnM4KCksIHJlcXVpcmVkTGVuZ3RoKTsKKyAgICBpZiAo
bV9idWZmZXItPmlzOEJpdCgpKSB7CisgICAgICAgIGF1dG8gYWxsb2NhdGVkID0gYWxsb2NhdGVC
dWZmZXJVcENvbnZlcnQobV9idWZmZXItPmNoYXJhY3RlcnM4KCksIHJlcXVpcmVkTGVuZ3RoKTsK
KyAgICAgICAgaWYgKCFhbGxvY2F0ZWQpCisgICAgICAgICAgICByZXR1cm4gYWxsb2NhdGVkOwor
ICAgIH0KICAgICBlbHNlIGlmIChtX2J1ZmZlci0+aGFzT25lUmVmKCkpCiAgICAgICAgIG1fYnVm
ZmVyID0gU3RyaW5nSW1wbDo6cmVhbGxvY2F0ZShtX2J1ZmZlci5yZWxlYXNlTm9uTnVsbCgpLCBy
ZXF1aXJlZExlbmd0aCwgbV9idWZmZXJDaGFyYWN0ZXJzMTYpOwogICAgIGVsc2UKICAgICAgICAg
YWxsb2NhdGVCdWZmZXIobV9idWZmZXItPmNoYXJhY3RlcnMxNigpLCByZXF1aXJlZExlbmd0aCk7
CiAgICAgQVNTRVJUKG1fYnVmZmVyLT5sZW5ndGgoKSA9PSByZXF1aXJlZExlbmd0aCk7CisgICAg
cmV0dXJuIHsgfTsKIH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjpyZXNlcnZlQ2FwYWNpdHkodW5z
aWduZWQgbmV3Q2FwYWNpdHkpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxk
ZXI6OnJlc2VydmVDYXBhY2l0eSh1bnNpZ25lZCBuZXdDYXBhY2l0eSkKIHsKICAgICBpZiAobV9i
dWZmZXIpIHsKICAgICAgICAgLy8gSWYgdGhlcmUgaXMgYWxyZWFkeSBhIGJ1ZmZlciwgdGhlbiBn
cm93IGlmIG5lY2Vzc2FyeS4KICAgICAgICAgaWYgKG5ld0NhcGFjaXR5ID4gbV9idWZmZXItPmxl
bmd0aCgpKSB7Ci0gICAgICAgICAgICBpZiAobV9idWZmZXItPmlzOEJpdCgpKQotICAgICAgICAg
ICAgICAgIHJlYWxsb2NhdGVCdWZmZXI8TENoYXI+KG5ld0NhcGFjaXR5KTsKLSAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICByZWFsbG9jYXRlQnVmZmVyPFVDaGFyPihuZXdDYXBhY2l0
eSk7CisgICAgICAgICAgICBpZiAobV9idWZmZXItPmlzOEJpdCgpKSB7CisgICAgICAgICAgICAg
ICAgYXV0byByZWFsbG9jYXRlZCA9IHJlYWxsb2NhdGVCdWZmZXI8TENoYXI+KG5ld0NhcGFjaXR5
KTsKKyAgICAgICAgICAgICAgICBpZiAoIXJlYWxsb2NhdGVkKQorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gcmVhbGxvY2F0ZWQ7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgIGF1dG8gcmVhbGxvY2F0ZWQgPSByZWFsbG9jYXRlQnVmZmVyPFVDaGFyPihuZXdDYXBhY2l0
eSk7CisgICAgICAgICAgICAgICAgaWYgKCFyZWFsbG9jYXRlZCkKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHJlYWxsb2NhdGVkOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfSBl
bHNlIHsKICAgICAgICAgLy8gR3JvdyB0aGUgc3RyaW5nLCBpZiBuZWNlc3NhcnkuCiAgICAgICAg
IGlmIChuZXdDYXBhY2l0eSA+IG1fbGVuZ3RoKSB7CiAgICAgICAgICAgICBpZiAoIW1fbGVuZ3Ro
KSB7CiAgICAgICAgICAgICAgICAgTENoYXIqIG51bGxQbGFjZWhvbGRlciA9IDA7Ci0gICAgICAg
ICAgICAgICAgYWxsb2NhdGVCdWZmZXIobnVsbFBsYWNlaG9sZGVyLCBuZXdDYXBhY2l0eSk7Ci0g
ICAgICAgICAgICB9IGVsc2UgaWYgKG1fc3RyaW5nLmlzOEJpdCgpKQotICAgICAgICAgICAgICAg
IGFsbG9jYXRlQnVmZmVyKG1fc3RyaW5nLmNoYXJhY3RlcnM4KCksIG5ld0NhcGFjaXR5KTsKLSAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBhbGxvY2F0ZUJ1ZmZlcihtX3N0cmluZy5j
aGFyYWN0ZXJzMTYoKSwgbmV3Q2FwYWNpdHkpOworICAgICAgICAgICAgICAgIGF1dG8gYWxsb2Nh
dGVkID0gYWxsb2NhdGVCdWZmZXIobnVsbFBsYWNlaG9sZGVyLCBuZXdDYXBhY2l0eSk7CisgICAg
ICAgICAgICAgICAgaWYgKCFhbGxvY2F0ZWQpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBh
bGxvY2F0ZWQ7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG1fc3RyaW5nLmlzOEJpdCgpKSB7Cisg
ICAgICAgICAgICAgICAgYXV0byBhbGxvY2F0ZWQgPSBhbGxvY2F0ZUJ1ZmZlcihtX3N0cmluZy5j
aGFyYWN0ZXJzOCgpLCBuZXdDYXBhY2l0eSk7CisgICAgICAgICAgICAgICAgaWYgKCFhbGxvY2F0
ZWQpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBhbGxvY2F0ZWQ7CisgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICAgIGF1dG8gYWxsb2NhdGVkID0gYWxsb2NhdGVCdWZmZXIo
bV9zdHJpbmcuY2hhcmFjdGVyczE2KCksIG5ld0NhcGFjaXR5KTsKKyAgICAgICAgICAgICAgICBp
ZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRlZDsKKyAg
ICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KICAgICBBU1NFUlQoIW5ld0NhcGFjaXR5IHx8
IG1fYnVmZmVyLT5sZW5ndGgoKSA+PSBuZXdDYXBhY2l0eSk7CisgICAgcmV0dXJuIHsgfTsKIH0K
IAogLy8gTWFrZSAnbGVuZ3RoJyBhZGRpdGlvbmFsIGNhcGFjaXR5IGJlIGF2YWlsYWJsZSBpbiBt
X2J1ZmZlciwgdXBkYXRlIG1fc3RyaW5nICYgbV9sZW5ndGgsCiAvLyByZXR1cm4gYSBwb2ludGVy
IHRvIHRoZSBuZXdseSBhbGxvY2F0ZWQgc3RvcmFnZS4KIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFy
VHlwZT4KLUFMV0FZU19JTkxJTkUgQ2hhclR5cGUqIFN0cmluZ0J1aWxkZXI6OmFwcGVuZFVuaW5p
dGlhbGl6ZWQodW5zaWduZWQgbGVuZ3RoKQorQUxXQVlTX0lOTElORSBTdHJpbmdCdWlsZGVyOjpG
YWxsaWJsZTxDaGFyVHlwZSo+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZFVuaW5pdGlhbGl6ZWQodW5z
aWduZWQgbGVuZ3RoKQogewogICAgIEFTU0VSVChsZW5ndGgpOwogCiAgICAgLy8gQ2FsY3VsYXRl
IHRoZSBuZXcgc2l6ZSBvZiB0aGUgYnVpbGRlciBhZnRlciBhcHBlbmRpbmcuCiAgICAgdW5zaWdu
ZWQgcmVxdWlyZWRMZW5ndGggPSBsZW5ndGggKyBtX2xlbmd0aDsKICAgICBpZiAocmVxdWlyZWRM
ZW5ndGggPCBsZW5ndGgpCi0gICAgICAgIENSQVNIKCk7CisgICAgICAgIHJldHVybiB3b3VsZE92
ZXJmbG93KCk7CiAKICAgICBpZiAoKG1fYnVmZmVyKSAmJiAocmVxdWlyZWRMZW5ndGggPD0gbV9i
dWZmZXItPmxlbmd0aCgpKSkgewogICAgICAgICAvLyBJZiB0aGUgYnVmZmVyIGlzIHZhbGlkIGl0
IG11c3QgYmUgYXQgbGVhc3QgYXMgbG9uZyBhcyB0aGUgY3VycmVudCBidWlsZGVyIGNvbnRlbnRz
IQpAQCAtMjI2LDcgKzI4Miw3IEBAIEFMV0FZU19JTkxJTkUgQ2hhclR5cGUqIFN0cmluZ0J1aWxk
ZXI6OmFwcGVuZFVuaW5pdGlhbGl6ZWQodW5zaWduZWQgbGVuZ3RoKQogLy8gTWFrZSAnbGVuZ3Ro
JyBhZGRpdGlvbmFsIGNhcGFjaXR5IGJlIGF2YWlsYWJsZSBpbiBtX2J1ZmZlciwgdXBkYXRlIG1f
c3RyaW5nICYgbV9sZW5ndGgsCiAvLyByZXR1cm4gYSBwb2ludGVyIHRvIHRoZSBuZXdseSBhbGxv
Y2F0ZWQgc3RvcmFnZS4KIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KLUNoYXJUeXBlKiBT
dHJpbmdCdWlsZGVyOjphcHBlbmRVbmluaXRpYWxpemVkU2xvdyh1bnNpZ25lZCByZXF1aXJlZExl
bmd0aCkKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPENoYXJUeXBlKj4gU3RyaW5nQnVpbGRlcjo6
YXBwZW5kVW5pbml0aWFsaXplZFNsb3codW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCiB7CiAgICAg
QVNTRVJUKHJlcXVpcmVkTGVuZ3RoKTsKIApAQCAtMjM0LDEwICsyOTAsMTQgQEAgQ2hhclR5cGUq
IFN0cmluZ0J1aWxkZXI6OmFwcGVuZFVuaW5pdGlhbGl6ZWRTbG93KHVuc2lnbmVkIHJlcXVpcmVk
TGVuZ3RoKQogICAgICAgICAvLyBJZiB0aGUgYnVmZmVyIGlzIHZhbGlkIGl0IG11c3QgYmUgYXQg
bGVhc3QgYXMgbG9uZyBhcyB0aGUgY3VycmVudCBidWlsZGVyIGNvbnRlbnRzIQogICAgICAgICBB
U1NFUlQobV9idWZmZXItPmxlbmd0aCgpID49IG1fbGVuZ3RoKTsKICAgICAgICAgCi0gICAgICAg
IHJlYWxsb2NhdGVCdWZmZXI8Q2hhclR5cGU+KGV4cGFuZGVkQ2FwYWNpdHkoY2FwYWNpdHkoKSwg
cmVxdWlyZWRMZW5ndGgpKTsKKyAgICAgICAgYXV0byByZWFsbG9jYXRlZCA9IHJlYWxsb2NhdGVC
dWZmZXI8Q2hhclR5cGU+KGV4cGFuZGVkQ2FwYWNpdHkoY2FwYWNpdHkoKSwgcmVxdWlyZWRMZW5n
dGgpKTsKKyAgICAgICAgaWYgKCFyZWFsbG9jYXRlZCkKKyAgICAgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZChyZWFsbG9jYXRlZC5lcnJvcigpKTsKICAgICB9IGVsc2UgewogICAgICAgICBB
U1NFUlQobV9zdHJpbmcubGVuZ3RoKCkgPT0gbV9sZW5ndGgpOwotICAgICAgICBhbGxvY2F0ZUJ1
ZmZlcihtX2xlbmd0aCA/IG1fc3RyaW5nLmNoYXJhY3RlcnM8Q2hhclR5cGU+KCkgOiAwLCBleHBh
bmRlZENhcGFjaXR5KGNhcGFjaXR5KCksIHJlcXVpcmVkTGVuZ3RoKSk7CisgICAgICAgIGF1dG8g
YWxsb2NhdGVkID0gYWxsb2NhdGVCdWZmZXIobV9sZW5ndGggPyBtX3N0cmluZy5jaGFyYWN0ZXJz
PENoYXJUeXBlPigpIDogMCwgZXhwYW5kZWRDYXBhY2l0eShjYXBhY2l0eSgpLCByZXF1aXJlZExl
bmd0aCkpOworICAgICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZChhbGxvY2F0ZWQuZXJyb3IoKSk7CiAgICAgfQogICAgIAogICAgIENoYXJUeXBl
KiByZXN1bHQgPSBnZXRCdWZmZXJDaGFyYWN0ZXJzPENoYXJUeXBlPigpICsgbV9sZW5ndGg7CkBA
IC0yNDYsMTAgKzMwNiwxMCBAQCBDaGFyVHlwZSogU3RyaW5nQnVpbGRlcjo6YXBwZW5kVW5pbml0
aWFsaXplZFNsb3codW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmQoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMs
IHVuc2lnbmVkIGxlbmd0aCkKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRl
cjo6YXBwZW5kKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAg
ICAgaWYgKCFsZW5ndGgpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHsgfTsKIAog
ICAgIEFTU0VSVChjaGFyYWN0ZXJzKTsKIApAQCAtMjU3LDQwICszMTcsNTEgQEAgdm9pZCBTdHJp
bmdCdWlsZGVyOjphcHBlbmQoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0
aCkKICAgICAgICAgaWYgKGxlbmd0aCA9PSAxICYmICEoKmNoYXJhY3RlcnMgJiB+MHhmZikpIHsK
ICAgICAgICAgICAgIC8vIEFwcGVuZCBhcyA4IGJpdCBjaGFyYWN0ZXIKICAgICAgICAgICAgIExD
aGFyIGxDaGFyID0gc3RhdGljX2Nhc3Q8TENoYXI+KCpjaGFyYWN0ZXJzKTsKLSAgICAgICAgICAg
IGFwcGVuZCgmbENoYXIsIDEpOwotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgcmV0
dXJuIGFwcGVuZCgmbENoYXIsIDEpOwogICAgICAgICB9CiAKICAgICAgICAgLy8gQ2FsY3VsYXRl
IHRoZSBuZXcgc2l6ZSBvZiB0aGUgYnVpbGRlciBhZnRlciBhcHBlbmRpbmcuCiAgICAgICAgIHVu
c2lnbmVkIHJlcXVpcmVkTGVuZ3RoID0gbGVuZ3RoICsgbV9sZW5ndGg7CiAgICAgICAgIGlmIChy
ZXF1aXJlZExlbmd0aCA8IGxlbmd0aCkKLSAgICAgICAgICAgIENSQVNIKCk7CisgICAgICAgICAg
ICByZXR1cm4gd291bGRPdmVyZmxvdygpOwogICAgICAgICAKICAgICAgICAgaWYgKG1fYnVmZmVy
KSB7CiAgICAgICAgICAgICAvLyBJZiB0aGUgYnVmZmVyIGlzIHZhbGlkIGl0IG11c3QgYmUgYXQg
bGVhc3QgYXMgbG9uZyBhcyB0aGUgY3VycmVudCBidWlsZGVyIGNvbnRlbnRzIQogICAgICAgICAg
ICAgQVNTRVJUKG1fYnVmZmVyLT5sZW5ndGgoKSA+PSBtX2xlbmd0aCk7CiAgICAgICAgICAgICAK
LSAgICAgICAgICAgIGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KG1fYnVmZmVyLT5jaGFyYWN0ZXJz
OCgpLCBleHBhbmRlZENhcGFjaXR5KGNhcGFjaXR5KCksIHJlcXVpcmVkTGVuZ3RoKSk7CisgICAg
ICAgICAgICBhdXRvIGFsbG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KG1fYnVmZmVy
LT5jaGFyYWN0ZXJzOCgpLCBleHBhbmRlZENhcGFjaXR5KGNhcGFjaXR5KCksIHJlcXVpcmVkTGVu
Z3RoKSk7CisgICAgICAgICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAgICAgICByZXR1
cm4gYWxsb2NhdGVkOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgQVNTRVJUKG1fc3Ry
aW5nLmxlbmd0aCgpID09IG1fbGVuZ3RoKTsKLSAgICAgICAgICAgIGFsbG9jYXRlQnVmZmVyVXBD
b252ZXJ0KG1fc3RyaW5nLmlzTnVsbCgpID8gMCA6IG1fc3RyaW5nLmNoYXJhY3RlcnM4KCksIGV4
cGFuZGVkQ2FwYWNpdHkoY2FwYWNpdHkoKSwgcmVxdWlyZWRMZW5ndGgpKTsKKyAgICAgICAgICAg
IGF1dG8gYWxsb2NhdGVkID0gYWxsb2NhdGVCdWZmZXJVcENvbnZlcnQobV9zdHJpbmcuaXNOdWxs
KCkgPyAwIDogbV9zdHJpbmcuY2hhcmFjdGVyczgoKSwgZXhwYW5kZWRDYXBhY2l0eShjYXBhY2l0
eSgpLCByZXF1aXJlZExlbmd0aCkpOworICAgICAgICAgICAgaWYgKCFhbGxvY2F0ZWQpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRlZDsKICAgICAgICAgfQogCiAgICAgICAgIG1lbWNw
eShtX2J1ZmZlckNoYXJhY3RlcnMxNiArIG1fbGVuZ3RoLCBjaGFyYWN0ZXJzLCBzdGF0aWNfY2Fz
dDxzaXplX3Q+KGxlbmd0aCkgKiBzaXplb2YoVUNoYXIpKTsKICAgICAgICAgbV9sZW5ndGggPSBy
ZXF1aXJlZExlbmd0aDsKLSAgICB9IGVsc2UKLSAgICAgICAgbWVtY3B5KGFwcGVuZFVuaW5pdGlh
bGl6ZWQ8VUNoYXI+KGxlbmd0aCksIGNoYXJhY3RlcnMsIHN0YXRpY19jYXN0PHNpemVfdD4obGVu
Z3RoKSAqIHNpemVvZihVQ2hhcikpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChhdXRvIGFw
cGVuZGVkID0gYXBwZW5kVW5pbml0aWFsaXplZDxVQ2hhcj4obGVuZ3RoKSkKKyAgICAgICAgICAg
IG1lbWNweSgqYXBwZW5kZWQsIGNoYXJhY3RlcnMsIHN0YXRpY19jYXN0PHNpemVfdD4obGVuZ3Ro
KSAqIHNpemVvZihVQ2hhcikpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQoYXBwZW5kZWQuZXJyb3IoKSk7CisgICAgfQogICAgIEFTU0VSVChtX2J1ZmZl
ci0+bGVuZ3RoKCkgPj0gbV9sZW5ndGgpOworICAgIHJldHVybiB7IH07CiB9CiAKLXZvaWQgU3Ry
aW5nQnVpbGRlcjo6YXBwZW5kKGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5n
dGgpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZChjb25z
dCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQogewogICAgIGlmICghbGVuZ3Ro
KQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB7IH07CiAgICAgQVNTRVJUKGNoYXJh
Y3RlcnMpOwogCiAgICAgaWYgKG1faXM4Qml0KSB7Ci0gICAgICAgIExDaGFyKiBkZXN0ID0gYXBw
ZW5kVW5pbml0aWFsaXplZDxMQ2hhcj4obGVuZ3RoKTsKKyAgICAgICAgYXV0byBhcHBlbmRlZCA9
IGFwcGVuZFVuaW5pdGlhbGl6ZWQ8TENoYXI+KGxlbmd0aCk7CisgICAgICAgIGlmICghYXBwZW5k
ZWQpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoYXBwZW5kZWQuZXJyb3IoKSk7
CisgICAgICAgIExDaGFyKiBkZXN0ID0gKmFwcGVuZGVkOwogICAgICAgICBpZiAobGVuZ3RoID4g
OCkKICAgICAgICAgICAgIG1lbWNweShkZXN0LCBjaGFyYWN0ZXJzLCBzdGF0aWNfY2FzdDxzaXpl
X3Q+KGxlbmd0aCkgKiBzaXplb2YoTENoYXIpKTsKICAgICAgICAgZWxzZSB7CkBAIC0yOTksNzMg
KzM3MCw3OSBAQCB2b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVuZChjb25zdCBMQ2hhciogY2hhcmFj
dGVycywgdW5zaWduZWQgbGVuZ3RoKQogICAgICAgICAgICAgICAgICooZGVzdCsrKSA9ICooY2hh
cmFjdGVycysrKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICAgIFVDaGFyKiBkZXN0
ID0gYXBwZW5kVW5pbml0aWFsaXplZDxVQ2hhcj4obGVuZ3RoKTsKKyAgICAgICAgYXV0byBhcHBl
bmRlZCA9IGFwcGVuZFVuaW5pdGlhbGl6ZWQ8VUNoYXI+KGxlbmd0aCk7CisgICAgICAgIGlmICgh
YXBwZW5kZWQpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoYXBwZW5kZWQuZXJy
b3IoKSk7CisgICAgICAgIFVDaGFyKiBkZXN0ID0gKmFwcGVuZGVkOwogICAgICAgICBjb25zdCBM
Q2hhciogZW5kID0gY2hhcmFjdGVycyArIGxlbmd0aDsKICAgICAgICAgd2hpbGUgKGNoYXJhY3Rl
cnMgPCBlbmQpCiAgICAgICAgICAgICAqKGRlc3QrKykgPSAqKGNoYXJhY3RlcnMrKyk7CiAgICAg
fQorICAgIHJldHVybiB7IH07CiB9CiAKICNpZiBVU0UoQ0YpCiAKLXZvaWQgU3RyaW5nQnVpbGRl
cjo6YXBwZW5kKENGU3RyaW5nUmVmIHN0cmluZykKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4g
U3RyaW5nQnVpbGRlcjo6YXBwZW5kKENGU3RyaW5nUmVmIHN0cmluZykKIHsKICAgICAvLyBGYXN0
IHBhdGg6IGF2b2lkIGNvbnN0cnVjdGluZyBhIHRlbXBvcmFyeSBTdHJpbmcgd2hlbiBwb3NzaWJs
ZS4KICAgICBpZiAoYXV0byogY2hhcmFjdGVycyA9IENGU3RyaW5nR2V0Q1N0cmluZ1B0cihzdHJp
bmcsIGtDRlN0cmluZ0VuY29kaW5nSVNPTGF0aW4xKSkgewotICAgICAgICBhcHBlbmQocmVpbnRl
cnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KGNoYXJhY3RlcnMpLCBDRlN0cmluZ0dldExlbmd0aChz
dHJpbmcpKTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoYXV0byBhcHBlbmRlZCA9IGFw
cGVuZChyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oY2hhcmFjdGVycyksIENGU3RyaW5n
R2V0TGVuZ3RoKHN0cmluZykpKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgcmV0dXJuIGFwcGVuZGVkOwogICAgIH0KLSAgICBhcHBlbmQoU3RyaW5n
KHN0cmluZykpOworICAgIHJldHVybiBhcHBlbmQoU3RyaW5nKHN0cmluZykpOwogfQogCiAjZW5k
aWYKIAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIoaW50IG51bWJlcikKK1N0cmlu
Z0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKGludCBudW1i
ZXIpCiB7Ci0gICAgbnVtYmVyVG9TdHJpbmdTaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0
aGlzKTsKKyAgICByZXR1cm4gbnVtYmVyVG9TdHJpbmdTaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVt
YmVyLCB0aGlzKTsKIH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIodW5zaWdu
ZWQgaW50IG51bWJlcikKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6
YXBwZW5kTnVtYmVyKHVuc2lnbmVkIGludCBudW1iZXIpCiB7Ci0gICAgbnVtYmVyVG9TdHJpbmdV
bnNpZ25lZDxTdHJpbmdCdWlsZGVyPihudW1iZXIsIHRoaXMpOworICAgIHJldHVybiBudW1iZXJU
b1N0cmluZ1Vuc2lnbmVkPFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CiB9CiAKLXZvaWQg
U3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKGxvbmcgbnVtYmVyKQorU3RyaW5nQnVpbGRlcjo6
RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIobG9uZyBudW1iZXIpCiB7Ci0g
ICAgbnVtYmVyVG9TdHJpbmdTaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0aGlzKTsKKyAg
ICByZXR1cm4gbnVtYmVyVG9TdHJpbmdTaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0aGlz
KTsKIH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIodW5zaWduZWQgbG9uZyBu
dW1iZXIpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51
bWJlcih1bnNpZ25lZCBsb25nIG51bWJlcikKIHsKLSAgICBudW1iZXJUb1N0cmluZ1Vuc2lnbmVk
PFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CisgICAgcmV0dXJuIG51bWJlclRvU3RyaW5n
VW5zaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0aGlzKTsKIH0KIAotdm9pZCBTdHJpbmdC
dWlsZGVyOjphcHBlbmROdW1iZXIobG9uZyBsb25nIG51bWJlcikKK1N0cmluZ0J1aWxkZXI6OkZh
bGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKGxvbmcgbG9uZyBudW1iZXIpCiB7
Ci0gICAgbnVtYmVyVG9TdHJpbmdTaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0aGlzKTsK
KyAgICByZXR1cm4gbnVtYmVyVG9TdHJpbmdTaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0
aGlzKTsKIH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIodW5zaWduZWQgbG9u
ZyBsb25nIG51bWJlcikKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6
YXBwZW5kTnVtYmVyKHVuc2lnbmVkIGxvbmcgbG9uZyBudW1iZXIpCiB7Ci0gICAgbnVtYmVyVG9T
dHJpbmdVbnNpZ25lZDxTdHJpbmdCdWlsZGVyPihudW1iZXIsIHRoaXMpOworICAgIHJldHVybiBu
dW1iZXJUb1N0cmluZ1Vuc2lnbmVkPFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CiB9CiAK
LXZvaWQgU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKGRvdWJsZSBudW1iZXIsIHVuc2lnbmVk
IHByZWNpc2lvbiwgVHJhaWxpbmdaZXJvc1RydW5jYXRpbmdQb2xpY3kgdHJhaWxpbmdaZXJvc1Ry
dW5jYXRpbmdQb2xpY3kpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6
OmFwcGVuZE51bWJlcihkb3VibGUgbnVtYmVyLCB1bnNpZ25lZCBwcmVjaXNpb24sIFRyYWlsaW5n
WmVyb3NUcnVuY2F0aW5nUG9saWN5IHRyYWlsaW5nWmVyb3NUcnVuY2F0aW5nUG9saWN5KQogewog
ICAgIE51bWJlclRvU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKLSAgICBhcHBlbmQobnVtYmVyVG9GaXhl
ZFByZWNpc2lvblN0cmluZyhudW1iZXIsIHByZWNpc2lvbiwgYnVmZmVyLCB0cmFpbGluZ1plcm9z
VHJ1bmNhdGluZ1BvbGljeSA9PSBUcnVuY2F0ZVRyYWlsaW5nWmVyb3MpKTsKKyAgICByZXR1cm4g
YXBwZW5kKG51bWJlclRvRml4ZWRQcmVjaXNpb25TdHJpbmcobnVtYmVyLCBwcmVjaXNpb24sIGJ1
ZmZlciwgdHJhaWxpbmdaZXJvc1RydW5jYXRpbmdQb2xpY3kgPT0gVHJ1bmNhdGVUcmFpbGluZ1pl
cm9zKSk7CiB9CiAKLXZvaWQgU3RyaW5nQnVpbGRlcjo6YXBwZW5kRUNNQVNjcmlwdE51bWJlcihk
b3VibGUgbnVtYmVyKQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjph
cHBlbmRFQ01BU2NyaXB0TnVtYmVyKGRvdWJsZSBudW1iZXIpCiB7CiAgICAgTnVtYmVyVG9TdHJp
bmdCdWZmZXIgYnVmZmVyOwotICAgIGFwcGVuZChudW1iZXJUb1N0cmluZyhudW1iZXIsIGJ1ZmZl
cikpOworICAgIHJldHVybiBhcHBlbmQobnVtYmVyVG9TdHJpbmcobnVtYmVyLCBidWZmZXIpKTsK
IH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmRGaXhlZFdpZHRoTnVtYmVyKGRvdWJsZSBu
dW1iZXIsIHVuc2lnbmVkIGRlY2ltYWxQbGFjZXMpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+
IFN0cmluZ0J1aWxkZXI6OmFwcGVuZEZpeGVkV2lkdGhOdW1iZXIoZG91YmxlIG51bWJlciwgdW5z
aWduZWQgZGVjaW1hbFBsYWNlcykKIHsKICAgICBOdW1iZXJUb1N0cmluZ0J1ZmZlciBidWZmZXI7
Ci0gICAgYXBwZW5kKG51bWJlclRvRml4ZWRXaWR0aFN0cmluZyhudW1iZXIsIGRlY2ltYWxQbGFj
ZXMsIGJ1ZmZlcikpOworICAgIHJldHVybiBhcHBlbmQobnVtYmVyVG9GaXhlZFdpZHRoU3RyaW5n
KG51bWJlciwgZGVjaW1hbFBsYWNlcywgYnVmZmVyKSk7CiB9CiAKIGJvb2wgU3RyaW5nQnVpbGRl
cjo6Y2FuU2hyaW5rKCkgY29uc3QKQEAgLTM3NCwxNSArNDUxLDIxIEBAIGJvb2wgU3RyaW5nQnVp
bGRlcjo6Y2FuU2hyaW5rKCkgY29uc3QKICAgICByZXR1cm4gbV9idWZmZXIgJiYgbV9idWZmZXIt
Pmxlbmd0aCgpID4gKG1fbGVuZ3RoICsgKG1fbGVuZ3RoID4+IDIpKTsKIH0KIAotdm9pZCBTdHJp
bmdCdWlsZGVyOjpzaHJpbmtUb0ZpdCgpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmlu
Z0J1aWxkZXI6OnNocmlua1RvRml0KCkKIHsKICAgICBpZiAoY2FuU2hyaW5rKCkpIHsKLSAgICAg
ICAgaWYgKG1faXM4Qml0KQotICAgICAgICAgICAgcmVhbGxvY2F0ZUJ1ZmZlcjxMQ2hhcj4obV9s
ZW5ndGgpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZWFsbG9jYXRlQnVmZmVyPFVDaGFy
PihtX2xlbmd0aCk7CisgICAgICAgIGlmIChtX2lzOEJpdCkgeworICAgICAgICAgICAgYXV0byBy
ZWFsbG9jYXRlZCA9IHJlYWxsb2NhdGVCdWZmZXI8TENoYXI+KG1fbGVuZ3RoKTsKKyAgICAgICAg
ICAgIGlmICghcmVhbGxvY2F0ZWQpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlYWxsb2NhdGVk
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYXV0byByZWFsbG9jYXRlZCA9IHJlYWxs
b2NhdGVCdWZmZXI8VUNoYXI+KG1fbGVuZ3RoKTsKKyAgICAgICAgICAgIGlmICghcmVhbGxvY2F0
ZWQpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlYWxsb2NhdGVkOworICAgICAgICB9CiAgICAg
ICAgIG1fc3RyaW5nID0gV1RGTW92ZShtX2J1ZmZlcik7CiAgICAgfQorICAgIHJldHVybiB7IH07
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4
dC9TdHJpbmdCdWlsZGVyLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaApp
bmRleCA4ZTRjNzIwLi4yYzBkZGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0
cmluZ0J1aWxkZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCwgMjAxMi0yMDEz
LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwOS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAo
QykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dApAQCAtMjcsNiArMjcsNyBAQAogI2lmbmRlZiBTdHJpbmdCdWlsZGVyX2gKICNkZWZpbmUgU3Ry
aW5nQnVpbGRlcl9oCiAKKyNpbmNsdWRlIDx3dGYvRXhwZWN0ZWQuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9BdG9taWNTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9JbnRlZ2VyVG9TdHJpbmdD
b252ZXJzaW9uLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgpAQCAtNDAsMjgg
KzQxLDMzIEBAIGNsYXNzIFN0cmluZ0J1aWxkZXIgewogCiBwdWJsaWM6CiAgICAgU3RyaW5nQnVp
bGRlcigpCi0gICAgICAgIDogbV9sZW5ndGgoMCkKLSAgICAgICAgLCBtX2lzOEJpdCh0cnVlKQot
ICAgICAgICAsIG1fYnVmZmVyQ2hhcmFjdGVyczgobnVsbHB0cikKKyAgICAgICAgOiBtX2J1ZmZl
ckNoYXJhY3RlcnM4KG51bGxwdHIpCiAgICAgewogICAgIH0KICAgICBTdHJpbmdCdWlsZGVyKFN0
cmluZ0J1aWxkZXImJikgPSBkZWZhdWx0OwogICAgIFN0cmluZ0J1aWxkZXImIG9wZXJhdG9yPShT
dHJpbmdCdWlsZGVyJiYpID0gZGVmYXVsdDsKIAotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lk
IGFwcGVuZChjb25zdCBVQ2hhciosIHVuc2lnbmVkKTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUg
dm9pZCBhcHBlbmQoY29uc3QgTENoYXIqLCB1bnNpZ25lZCk7CisgICAgZW51bSBjbGFzcyBGYWls
dXJlIHsKKyAgICAgICAgV291bGRPdmVyZmxvdywKKyAgICAgICAgT3V0T2ZNZW1vcnksCisgICAg
ICAgIFVuaGFuZGxlZEZhaWx1cmUsCisgICAgfTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFeHBl
Y3QgPSB2b2lkPiB1c2luZyBGYWxsaWJsZSA9IEV4cGVjdGVkPEV4cGVjdCwgU3RyaW5nQnVpbGRl
cjo6RmFpbHVyZT47CisKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmQo
Y29uc3QgVUNoYXIqLCB1bnNpZ25lZCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxl
PD4gYXBwZW5kKGNvbnN0IExDaGFyKiwgdW5zaWduZWQpOwogCi0gICAgQUxXQVlTX0lOTElORSB2
b2lkIGFwcGVuZChjb25zdCBjaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpIHsgYXBw
ZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihjaGFyYWN0ZXJzKSwgbGVuZ3RoKTsg
fQorICAgIEFMV0FZU19JTkxJTkUgRmFsbGlibGU8PiBhcHBlbmQoY29uc3QgY2hhciogY2hhcmFj
dGVycywgdW5zaWduZWQgbGVuZ3RoKSB7IHJldHVybiBhcHBlbmQocmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KGNoYXJhY3RlcnMpLCBsZW5ndGgpOyB9CiAKLSAgICB2b2lkIGFwcGVuZChj
b25zdCBBdG9taWNTdHJpbmcmIGF0b21pY1N0cmluZykKKyAgICBGYWxsaWJsZTw+IGFwcGVuZChj
b25zdCBBdG9taWNTdHJpbmcmIGF0b21pY1N0cmluZykKICAgICB7Ci0gICAgICAgIGFwcGVuZChh
dG9taWNTdHJpbmcuc3RyaW5nKCkpOworICAgICAgICByZXR1cm4gYXBwZW5kKGF0b21pY1N0cmlu
Zy5zdHJpbmcoKSk7CiAgICAgfQogCi0gICAgdm9pZCBhcHBlbmQoY29uc3QgU3RyaW5nJiBzdHJp
bmcpCisgICAgRmFsbGlibGU8PiBhcHBlbmQoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgewog
ICAgICAgICBpZiAoIXN0cmluZy5sZW5ndGgoKSkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIHJldHVybiB7IH07CiAKICAgICAgICAgLy8gSWYgd2UncmUgYXBwZW5kaW5nIHRvIGFu
IGVtcHR5IHN0cmluZywgYW5kIHRoZXJlIGlzIG5vdCBhIGJ1ZmZlciAocmVzZXJ2ZUNhcGFjaXR5
IGhhcyBub3QgYmVlbiBjYWxsZWQpCiAgICAgICAgIC8vIHRoZW4ganVzdCByZXRhaW4gdGhlIHN0
cmluZy4KQEAgLTY5LDE1MSArNzUsMTY0IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fc3RyaW5n
ID0gc3RyaW5nOwogICAgICAgICAgICAgbV9sZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7CiAgICAg
ICAgICAgICBtX2lzOEJpdCA9IG1fc3RyaW5nLmlzOEJpdCgpOwotICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChzdHJp
bmcuaXM4Qml0KCkpCi0gICAgICAgICAgICBhcHBlbmQoc3RyaW5nLmNoYXJhY3RlcnM4KCksIHN0
cmluZy5sZW5ndGgoKSk7CisgICAgICAgICAgICByZXR1cm4gYXBwZW5kKHN0cmluZy5jaGFyYWN0
ZXJzOCgpLCBzdHJpbmcubGVuZ3RoKCkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBhcHBl
bmQoc3RyaW5nLmNoYXJhY3RlcnMxNigpLCBzdHJpbmcubGVuZ3RoKCkpOworICAgICAgICAgICAg
cmV0dXJuIGFwcGVuZChzdHJpbmcuY2hhcmFjdGVyczE2KCksIHN0cmluZy5sZW5ndGgoKSk7CiAg
ICAgfQogCi0gICAgdm9pZCBhcHBlbmQoY29uc3QgU3RyaW5nQnVpbGRlciYgb3RoZXIpCisgICAg
RmFsbGlibGU8PiBhcHBlbmQoY29uc3QgU3RyaW5nQnVpbGRlciYgb3RoZXIpCiAgICAgeworICAg
ICAgICBpZiAob3RoZXIuZmFpbGVkKCkpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQoRmFpbHVyZTo6VW5oYW5kbGVkRmFpbHVyZSk7ICAgICAgICAgICAgCiAgICAgICAgIGlmICgh
b3RoZXIubV9sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4g
eyB9OwogCiAgICAgICAgIC8vIElmIHdlJ3JlIGFwcGVuZGluZyB0byBhbiBlbXB0eSBzdHJpbmcs
IGFuZCB0aGVyZSBpcyBub3QgYSBidWZmZXIgKHJlc2VydmVDYXBhY2l0eSBoYXMgbm90IGJlZW4g
Y2FsbGVkKQogICAgICAgICAvLyB0aGVuIGp1c3QgcmV0YWluIHRoZSBzdHJpbmcuCiAgICAgICAg
IGlmICghbV9sZW5ndGggJiYgIW1fYnVmZmVyICYmICFvdGhlci5tX3N0cmluZy5pc051bGwoKSkg
ewogICAgICAgICAgICAgbV9zdHJpbmcgPSBvdGhlci5tX3N0cmluZzsKICAgICAgICAgICAgIG1f
bGVuZ3RoID0gb3RoZXIubV9sZW5ndGg7Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICByZXR1cm4geyB9OwogICAgICAgICB9CiAKICAgICAgICAgaWYgKG90aGVyLmlzOEJpdCgpKQot
ICAgICAgICAgICAgYXBwZW5kKG90aGVyLmNoYXJhY3RlcnM4KCksIG90aGVyLm1fbGVuZ3RoKTsK
KyAgICAgICAgICAgIHJldHVybiBhcHBlbmQoKm90aGVyLmNoYXJhY3RlcnM4KCksIG90aGVyLm1f
bGVuZ3RoKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgYXBwZW5kKG90aGVyLmNoYXJhY3Rl
cnMxNigpLCBvdGhlci5tX2xlbmd0aCk7CisgICAgICAgICAgICByZXR1cm4gYXBwZW5kKCpvdGhl
ci5jaGFyYWN0ZXJzMTYoKSwgb3RoZXIubV9sZW5ndGgpOwogICAgIH0KIAotICAgIHZvaWQgYXBw
ZW5kKFN0cmluZ1ZpZXcgc3RyaW5nVmlldykKKyAgICBGYWxsaWJsZTw+IGFwcGVuZChTdHJpbmdW
aWV3IHN0cmluZ1ZpZXcpCiAgICAgewogICAgICAgICBpZiAoc3RyaW5nVmlldy5pczhCaXQoKSkK
LSAgICAgICAgICAgIGFwcGVuZChzdHJpbmdWaWV3LmNoYXJhY3RlcnM4KCksIHN0cmluZ1ZpZXcu
bGVuZ3RoKCkpOworICAgICAgICAgICAgcmV0dXJuIGFwcGVuZChzdHJpbmdWaWV3LmNoYXJhY3Rl
cnM4KCksIHN0cmluZ1ZpZXcubGVuZ3RoKCkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBh
cHBlbmQoc3RyaW5nVmlldy5jaGFyYWN0ZXJzMTYoKSwgc3RyaW5nVmlldy5sZW5ndGgoKSk7Cisg
ICAgICAgICAgICByZXR1cm4gYXBwZW5kKHN0cmluZ1ZpZXcuY2hhcmFjdGVyczE2KCksIHN0cmlu
Z1ZpZXcubGVuZ3RoKCkpOwogICAgIH0KIAogI2lmIFVTRShDRikKLSAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgdm9pZCBhcHBlbmQoQ0ZTdHJpbmdSZWYpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBG
YWxsaWJsZTw+IGFwcGVuZChDRlN0cmluZ1JlZik7CiAjZW5kaWYKICNpZiBVU0UoQ0YpICYmIGRl
ZmluZWQoX19PQkpDX18pCi0gICAgdm9pZCBhcHBlbmQoTlNTdHJpbmcgKnN0cmluZykgeyBhcHBl
bmQoKF9fYnJpZGdlIENGU3RyaW5nUmVmKXN0cmluZyk7IH0KKyAgICBGYWxsaWJsZTw+IGFwcGVu
ZChOU1N0cmluZyAqc3RyaW5nKSB7IHJldHVybiBhcHBlbmQoKF9fYnJpZGdlIENGU3RyaW5nUmVm
KXN0cmluZyk7IH0KICNlbmRpZgogICAgIAotICAgIHZvaWQgYXBwZW5kKGNvbnN0IFN0cmluZyYg
c3RyaW5nLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKKyAgICBGYWxsaWJsZTw+
IGFwcGVuZChjb25zdCBTdHJpbmcmIHN0cmluZywgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBs
ZW5ndGgpCiAgICAgewogICAgICAgICBpZiAoIXN0cmluZy5sZW5ndGgoKSkKLSAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIHJldHVybiB7IH07CiAKICAgICAgICAgaWYgKChvZmZzZXQg
KyBsZW5ndGgpID4gc3RyaW5nLmxlbmd0aCgpKQotICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgcmV0dXJuIHsgfTsKIAogICAgICAgICBpZiAoc3RyaW5nLmlzOEJpdCgpKQotICAgICAg
ICAgICAgYXBwZW5kKHN0cmluZy5jaGFyYWN0ZXJzOCgpICsgb2Zmc2V0LCBsZW5ndGgpOworICAg
ICAgICAgICAgcmV0dXJuIGFwcGVuZChzdHJpbmcuY2hhcmFjdGVyczgoKSArIG9mZnNldCwgbGVu
Z3RoKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgYXBwZW5kKHN0cmluZy5jaGFyYWN0ZXJz
MTYoKSArIG9mZnNldCwgbGVuZ3RoKTsKKyAgICAgICAgICAgIHJldHVybiBhcHBlbmQoc3RyaW5n
LmNoYXJhY3RlcnMxNigpICsgb2Zmc2V0LCBsZW5ndGgpOwogICAgIH0KIAotICAgIHZvaWQgYXBw
ZW5kKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpCisgICAgRmFsbGlibGU8PiBhcHBlbmQoY29uc3Qg
Y2hhciogY2hhcmFjdGVycykKICAgICB7CiAgICAgICAgIGlmIChjaGFyYWN0ZXJzKQotICAgICAg
ICAgICAgYXBwZW5kKGNoYXJhY3RlcnMsIHN0cmxlbihjaGFyYWN0ZXJzKSk7CisgICAgICAgICAg
ICByZXR1cm4gYXBwZW5kKGNoYXJhY3RlcnMsIHN0cmxlbihjaGFyYWN0ZXJzKSk7CisgICAgICAg
IHJldHVybiB7IH07CiAgICAgfQogCi0gICAgdm9pZCBhcHBlbmQoVUNoYXIgYykKKyAgICBGYWxs
aWJsZTw+IGFwcGVuZChVQ2hhciBjKQogICAgIHsKICAgICAgICAgaWYgKG1fYnVmZmVyICYmIG1f
bGVuZ3RoIDwgbV9idWZmZXItPmxlbmd0aCgpICYmIG1fc3RyaW5nLmlzTnVsbCgpKSB7CiAgICAg
ICAgICAgICBpZiAoIW1faXM4Qml0KSB7CiAgICAgICAgICAgICAgICAgbV9idWZmZXJDaGFyYWN0
ZXJzMTZbbV9sZW5ndGgrK10gPSBjOwotICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgICAgICByZXR1cm4geyB9OwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoIShj
ICYgfjB4ZmYpKSB7CiAgICAgICAgICAgICAgICAgbV9idWZmZXJDaGFyYWN0ZXJzOFttX2xlbmd0
aCsrXSA9IHN0YXRpY19jYXN0PExDaGFyPihjKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAg
ICAgICBhcHBlbmQoJmMsIDEpOworICAgICAgICByZXR1cm4gYXBwZW5kKCZjLCAxKTsKICAgICB9
CiAKLSAgICB2b2lkIGFwcGVuZChMQ2hhciBjKQorICAgIEZhbGxpYmxlPD4gYXBwZW5kKExDaGFy
IGMpCiAgICAgewogICAgICAgICBpZiAobV9idWZmZXIgJiYgbV9sZW5ndGggPCBtX2J1ZmZlci0+
bGVuZ3RoKCkgJiYgbV9zdHJpbmcuaXNOdWxsKCkpIHsKICAgICAgICAgICAgIGlmIChtX2lzOEJp
dCkKICAgICAgICAgICAgICAgICBtX2J1ZmZlckNoYXJhY3RlcnM4W21fbGVuZ3RoKytdID0gYzsK
ICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBtX2J1ZmZlckNoYXJhY3RlcnMxNltt
X2xlbmd0aCsrXSA9IGM7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgYXBwZW5kKCZjLCAx
KTsKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGFw
cGVuZCgmYywgMSk7CiAgICAgfQogCi0gICAgdm9pZCBhcHBlbmQoY2hhciBjKQorICAgIEZhbGxp
YmxlPD4gYXBwZW5kKGNoYXIgYykKICAgICB7Ci0gICAgICAgIGFwcGVuZChzdGF0aWNfY2FzdDxM
Q2hhcj4oYykpOworICAgICAgICByZXR1cm4gYXBwZW5kKHN0YXRpY19jYXN0PExDaGFyPihjKSk7
CiAgICAgfQogCi0gICAgdm9pZCBhcHBlbmQoVUNoYXIzMiBjKQorICAgIEZhbGxpYmxlPD4gYXBw
ZW5kKFVDaGFyMzIgYykKICAgICB7Ci0gICAgICAgIGlmIChVX0lTX0JNUChjKSkgewotICAgICAg
ICAgICAgYXBwZW5kKHN0YXRpY19jYXN0PFVDaGFyPihjKSk7Ci0gICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIH0KLSAgICAgICAgYXBwZW5kKFUxNl9MRUFEKGMpKTsKLSAgICAgICAgYXBwZW5k
KFUxNl9UUkFJTChjKSk7CisgICAgICAgIGlmIChVX0lTX0JNUChjKSkKKyAgICAgICAgICAgIHJl
dHVybiBhcHBlbmQoc3RhdGljX2Nhc3Q8VUNoYXI+KGMpKTsKKyAgICAgICAgYXV0byBhcHBlbmRl
ZCA9IGFwcGVuZChVMTZfTEVBRChjKSk7CisgICAgICAgIGlmICghYXBwZW5kZWQpCisgICAgICAg
ICAgICByZXR1cm4gYXBwZW5kZWQ7CisgICAgICAgIHJldHVybiBhcHBlbmQoVTE2X1RSQUlMKGMp
KTsKICAgICB9CiAKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBhcHBlbmRRdW90ZWRKU09O
U3RyaW5nKGNvbnN0IFN0cmluZyYpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+
IGFwcGVuZFF1b3RlZEpTT05TdHJpbmcoY29uc3QgU3RyaW5nJik7CiAKICAgICB0ZW1wbGF0ZTx1
bnNpZ25lZCBjaGFyYWN0ZXJDb3VudD4KLSAgICBBTFdBWVNfSU5MSU5FIHZvaWQgYXBwZW5kTGl0
ZXJhbChjb25zdCBjaGFyICgmY2hhcmFjdGVycylbY2hhcmFjdGVyQ291bnRdKSB7IGFwcGVuZChj
aGFyYWN0ZXJzLCBjaGFyYWN0ZXJDb3VudCAtIDEpOyB9Ci0KLSAgICBXVEZfRVhQT1JUX1BSSVZB
VEUgdm9pZCBhcHBlbmROdW1iZXIoaW50KTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBh
cHBlbmROdW1iZXIodW5zaWduZWQgaW50KTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBh
cHBlbmROdW1iZXIobG9uZyk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kTnVt
YmVyKHVuc2lnbmVkIGxvbmcpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZE51
bWJlcihsb25nIGxvbmcpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZE51bWJl
cih1bnNpZ25lZCBsb25nIGxvbmcpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGFwcGVu
ZE51bWJlcihkb3VibGUsIHVuc2lnbmVkIHByZWNpc2lvbiA9IDYsIFRyYWlsaW5nWmVyb3NUcnVu
Y2F0aW5nUG9saWN5ID0gVHJ1bmNhdGVUcmFpbGluZ1plcm9zKTsKLSAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgdm9pZCBhcHBlbmRFQ01BU2NyaXB0TnVtYmVyKGRvdWJsZSk7Ci0gICAgV1RGX0VYUE9S
VF9QUklWQVRFIHZvaWQgYXBwZW5kRml4ZWRXaWR0aE51bWJlcihkb3VibGUsIHVuc2lnbmVkIGRl
Y2ltYWxQbGFjZXMpOwotCi0gICAgU3RyaW5nIHRvU3RyaW5nKCkKKyAgICBBTFdBWVNfSU5MSU5F
IEZhbGxpYmxlPD4gYXBwZW5kTGl0ZXJhbChjb25zdCBjaGFyICgmY2hhcmFjdGVycylbY2hhcmFj
dGVyQ291bnRdKSB7IHJldHVybiBhcHBlbmQoY2hhcmFjdGVycywgY2hhcmFjdGVyQ291bnQgLSAx
KTsgfQorCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5kTnVtYmVyKGlu
dCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5kTnVtYmVyKHVuc2ln
bmVkIGludCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5kTnVtYmVy
KGxvbmcpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IGFwcGVuZE51bWJlcih1
bnNpZ25lZCBsb25nKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmRO
dW1iZXIobG9uZyBsb25nKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiBhcHBl
bmROdW1iZXIodW5zaWduZWQgbG9uZyBsb25nKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFs
bGlibGU8PiBhcHBlbmROdW1iZXIoZG91YmxlLCB1bnNpZ25lZCBwcmVjaXNpb24gPSA2LCBUcmFp
bGluZ1plcm9zVHJ1bmNhdGluZ1BvbGljeSA9IFRydW5jYXRlVHJhaWxpbmdaZXJvcyk7CisgICAg
V1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5kRUNNQVNjcmlwdE51bWJlcihkb3Vi
bGUpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IGFwcGVuZEZpeGVkV2lkdGhO
dW1iZXIoZG91YmxlLCB1bnNpZ25lZCBkZWNpbWFsUGxhY2VzKTsKKworICAgIFdBUk5fVU5VU0VE
X1JFVFVSTiBGYWxsaWJsZTxTdHJpbmc+IHRvU3RyaW5nKCkKICAgICB7Ci0gICAgICAgIHNocmlu
a1RvRml0KCk7Ci0gICAgICAgIGlmIChtX3N0cmluZy5pc051bGwoKSkKLSAgICAgICAgICAgIHJl
aWZ5U3RyaW5nKCk7Ci0gICAgICAgIHJldHVybiBtX3N0cmluZzsKKyAgICAgICAgaWYgKG1fZmFp
bGVkKQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZhaWx1cmU6OlVuaGFuZGxl
ZEZhaWx1cmUpOworICAgICAgICBpZiAoYXV0byBzaHJhbmsgPSBzaHJpbmtUb0ZpdCgpKSB7Cisg
ICAgICAgICAgICBpZiAobV9zdHJpbmcuaXNOdWxsKCkpCisgICAgICAgICAgICAgICAgcmVpZnlT
dHJpbmcoKTsKKyAgICAgICAgICAgIHJldHVybiBtX3N0cmluZzsKKyAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoc2hyYW5rLmVycm9yKCkpOwogICAgIH0K
IAotICAgIGNvbnN0IFN0cmluZyYgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgY29uc3QKKyAg
ICBXQVJOX1VOVVNFRF9SRVRVUk4gRmFsbGlibGU8U3RyaW5nPiB0b1N0cmluZ1ByZXNlcnZlQ2Fw
YWNpdHkoKSBjb25zdAogICAgIHsKKyAgICAgICAgaWYgKG1fZmFpbGVkKQorICAgICAgICAgICAg
cmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZhaWx1cmU6OlVuaGFuZGxlZEZhaWx1cmUpOwogICAgICAg
ICBpZiAobV9zdHJpbmcuaXNOdWxsKCkpCiAgICAgICAgICAgICByZWlmeVN0cmluZygpOwogICAg
ICAgICByZXR1cm4gbV9zdHJpbmc7CiAgICAgfQogCi0gICAgQXRvbWljU3RyaW5nIHRvQXRvbWlj
U3RyaW5nKCkgY29uc3QKKyAgICBXQVJOX1VOVVNFRF9SRVRVUk4gRmFsbGlibGU8QXRvbWljU3Ry
aW5nPiB0b0F0b21pY1N0cmluZygpIGNvbnN0CiAgICAgeworICAgICAgICBpZiAobV9mYWlsZWQp
CisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmFpbHVyZTo6VW5oYW5kbGVkRmFp
bHVyZSk7CisKICAgICAgICAgaWYgKCFtX2xlbmd0aCkKICAgICAgICAgICAgIHJldHVybiBlbXB0
eUF0b20oKTsKIAogICAgICAgICAvLyBJZiB0aGUgYnVmZmVyIGlzIHN1ZmZpY2llbnRseSBvdmVy
LWFsbG9jYXRlZCwgbWFrZSBhIG5ldyBBdG9taWNTdHJpbmcgZnJvbSBhIGNvcHkgc28gaXRzIGJ1
ZmZlciBpcyBub3Qgc28gbGFyZ2UuCiAgICAgICAgIGlmIChjYW5TaHJpbmsoKSkgewogICAgICAg
ICAgICAgaWYgKGlzOEJpdCgpKQotICAgICAgICAgICAgICAgIHJldHVybiBBdG9taWNTdHJpbmco
Y2hhcmFjdGVyczgoKSwgbGVuZ3RoKCkpOwotICAgICAgICAgICAgcmV0dXJuIEF0b21pY1N0cmlu
ZyhjaGFyYWN0ZXJzMTYoKSwgbGVuZ3RoKCkpOyAgICAgICAgICAgIAorICAgICAgICAgICAgICAg
IHJldHVybiBBdG9taWNTdHJpbmcoKmNoYXJhY3RlcnM4KCksIGxlbmd0aCgpKTsKKyAgICAgICAg
ICAgIHJldHVybiBBdG9taWNTdHJpbmcoKmNoYXJhY3RlcnMxNigpLCBsZW5ndGgoKSk7ICAgICAg
ICAgICAgCiAgICAgICAgIH0KIAogICAgICAgICBpZiAoIW1fc3RyaW5nLmlzTnVsbCgpKQpAQCAt
MjMwLDI5ICsyNDksMzcgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyBy
ZXR1cm4gIW1fbGVuZ3RoOyB9CiAKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCByZXNlcnZl
Q2FwYWNpdHkodW5zaWduZWQgbmV3Q2FwYWNpdHkpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBG
YWxsaWJsZTw+IHJlc2VydmVDYXBhY2l0eSh1bnNpZ25lZCBuZXdDYXBhY2l0eSk7CiAKICAgICB1
bnNpZ25lZCBjYXBhY2l0eSgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9idWZmZXIg
PyBtX2J1ZmZlci0+bGVuZ3RoKCkgOiBtX2xlbmd0aDsKICAgICB9CiAKLSAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgdm9pZCByZXNpemUodW5zaWduZWQgbmV3U2l6ZSk7CisgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIEZhbGxpYmxlPD4gcmVzaXplKHVuc2lnbmVkIG5ld1NpemUpOwogCiAgICAgV1RGX0VY
UE9SVF9QUklWQVRFIGJvb2wgY2FuU2hyaW5rKCkgY29uc3Q7CiAKLSAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgdm9pZCBzaHJpbmtUb0ZpdCgpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJs
ZTw+IHNocmlua1RvRml0KCk7CiAKLSAgICBVQ2hhciBvcGVyYXRvcltdKHVuc2lnbmVkIGkpIGNv
bnN0CisgICAgYm9vbCBpczhCaXQoKSBjb25zdCB7IHJldHVybiBtX2lzOEJpdDsgfQorCisgICAg
Ym9vbCBmYWlsZWQoKSBjb25zdCB7IHJldHVybiBtX2ZhaWxlZDsgfQorCisgICAgRmFsbGlibGU8
VUNoYXI+IG9wZXJhdG9yW10odW5zaWduZWQgaSkgY29uc3QKICAgICB7CisgICAgICAgIGlmICht
X2ZhaWxlZCkKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGYWlsdXJlOjpVbmhh
bmRsZWRGYWlsdXJlKTsKICAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04o
aSA8IG1fbGVuZ3RoKTsKICAgICAgICAgaWYgKG1faXM4Qml0KQotICAgICAgICAgICAgcmV0dXJu
IGNoYXJhY3RlcnM4KClbaV07Ci0gICAgICAgIHJldHVybiBjaGFyYWN0ZXJzMTYoKVtpXTsKKyAg
ICAgICAgICAgIHJldHVybiAoKmNoYXJhY3RlcnM4KCkpW2ldOworICAgICAgICByZXR1cm4gKCpj
aGFyYWN0ZXJzMTYoKSlbaV07CiAgICAgfQogCi0gICAgY29uc3QgTENoYXIqIGNoYXJhY3RlcnM4
KCkgY29uc3QKKyAgICBGYWxsaWJsZTxjb25zdCBMQ2hhcio+IGNoYXJhY3RlcnM4KCkgY29uc3QK
ICAgICB7CisgICAgICAgIGlmIChtX2ZhaWxlZCkKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5l
eHBlY3RlZChGYWlsdXJlOjpVbmhhbmRsZWRGYWlsdXJlKTsKICAgICAgICAgQVNTRVJUKG1faXM4
Qml0KTsKICAgICAgICAgaWYgKCFtX2xlbmd0aCkKICAgICAgICAgICAgIHJldHVybiAwOwpAQCAt
MjYyLDggKzI4OSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX2J1ZmZlci0+Y2hhcmFj
dGVyczgoKTsKICAgICB9CiAKLSAgICBjb25zdCBVQ2hhciogY2hhcmFjdGVyczE2KCkgY29uc3QK
KyAgICBGYWxsaWJsZTxjb25zdCBVQ2hhcio+IGNoYXJhY3RlcnMxNigpIGNvbnN0CiAgICAgewor
ICAgICAgICBpZiAobV9mYWlsZWQpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQo
RmFpbHVyZTo6VW5oYW5kbGVkRmFpbHVyZSk7CiAgICAgICAgIEFTU0VSVCghbV9pczhCaXQpOwog
ICAgICAgICBpZiAoIW1fbGVuZ3RoKQogICAgICAgICAgICAgcmV0dXJuIDA7CkBAIC0yNzIsMTYg
KzMwMSwxNSBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChtX2J1ZmZlcik7CiAgICAgICAgIHJl
dHVybiBtX2J1ZmZlci0+Y2hhcmFjdGVyczE2KCk7CiAgICAgfQotICAgIAotICAgIGJvb2wgaXM4
Qml0KCkgY29uc3QgeyByZXR1cm4gbV9pczhCaXQ7IH0KIAogICAgIHZvaWQgY2xlYXIoKQogICAg
IHsKICAgICAgICAgbV9sZW5ndGggPSAwOwogICAgICAgICBtX3N0cmluZyA9IFN0cmluZygpOwog
ICAgICAgICBtX2J1ZmZlciA9IG51bGxwdHI7Ci0gICAgICAgIG1fYnVmZmVyQ2hhcmFjdGVyczgg
PSAwOwogICAgICAgICBtX2lzOEJpdCA9IHRydWU7CisgICAgICAgIG1fZmFpbGVkID0gZmFsc2U7
CisgICAgICAgIG1fYnVmZmVyQ2hhcmFjdGVyczggPSAwOwogICAgIH0KIAogICAgIHZvaWQgc3dh
cChTdHJpbmdCdWlsZGVyJiBzdHJpbmdCdWlsZGVyKQpAQCAtMjkwLDI4ICszMTgsMzIgQEAgcHVi
bGljOgogICAgICAgICBtX3N0cmluZy5zd2FwKHN0cmluZ0J1aWxkZXIubV9zdHJpbmcpOwogICAg
ICAgICBtX2J1ZmZlci5zd2FwKHN0cmluZ0J1aWxkZXIubV9idWZmZXIpOwogICAgICAgICBzdGQ6
OnN3YXAobV9pczhCaXQsIHN0cmluZ0J1aWxkZXIubV9pczhCaXQpOworICAgICAgICBzdGQ6OnN3
YXAobV9mYWlsZWQsIHN0cmluZ0J1aWxkZXIubV9mYWlsZWQpOwogICAgICAgICBzdGQ6OnN3YXAo
bV9idWZmZXJDaGFyYWN0ZXJzOCwgc3RyaW5nQnVpbGRlci5tX2J1ZmZlckNoYXJhY3RlcnM4KTsK
ICAgICAgICAgQVNTRVJUKCFtX2J1ZmZlciB8fCBtX2J1ZmZlci0+bGVuZ3RoKCkgPj0gbV9sZW5n
dGgpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICB2b2lkIGFsbG9jYXRlQnVmZmVyKGNvbnN0IExD
aGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpOwotICAgIHZv
aWQgYWxsb2NhdGVCdWZmZXIoY29uc3QgVUNoYXIqIGN1cnJlbnRDaGFyYWN0ZXJzLCB1bnNpZ25l
ZCByZXF1aXJlZExlbmd0aCk7Ci0gICAgdm9pZCBhbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChjb25z
dCBMQ2hhciogY3VycmVudENoYXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKTsKKyAg
ICBGYWxsaWJsZTw+IGFsbG9jYXRlQnVmZmVyKGNvbnN0IExDaGFyKiBjdXJyZW50Q2hhcmFjdGVy
cywgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpOworICAgIEZhbGxpYmxlPD4gYWxsb2NhdGVCdWZm
ZXIoY29uc3QgVUNoYXIqIGN1cnJlbnRDaGFyYWN0ZXJzLCB1bnNpZ25lZCByZXF1aXJlZExlbmd0
aCk7CisgICAgRmFsbGlibGU8PiBhbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChjb25zdCBMQ2hhciog
Y3VycmVudENoYXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKTsKICAgICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci0gICAgdm9pZCByZWFsbG9jYXRlQnVmZmVyKHVuc2lnbmVk
IHJlcXVpcmVkTGVuZ3RoKTsKKyAgICBGYWxsaWJsZTw+IHJlYWxsb2NhdGVCdWZmZXIodW5zaWdu
ZWQgcmVxdWlyZWRMZW5ndGgpOwogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KLSAg
ICBBTFdBWVNfSU5MSU5FIENoYXJUeXBlKiBhcHBlbmRVbmluaXRpYWxpemVkKHVuc2lnbmVkIGxl
bmd0aCk7CisgICAgQUxXQVlTX0lOTElORSBGYWxsaWJsZTxDaGFyVHlwZSo+IGFwcGVuZFVuaW5p
dGlhbGl6ZWQodW5zaWduZWQgbGVuZ3RoKTsKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5
cGU+Ci0gICAgQ2hhclR5cGUqIGFwcGVuZFVuaW5pdGlhbGl6ZWRTbG93KHVuc2lnbmVkIGxlbmd0
aCk7CisgICAgRmFsbGlibGU8Q2hhclR5cGUqPiBhcHBlbmRVbmluaXRpYWxpemVkU2xvdyh1bnNp
Z25lZCBsZW5ndGgpOwogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KLSAgICBBTFdB
WVNfSU5MSU5FIENoYXJUeXBlICogZ2V0QnVmZmVyQ2hhcmFjdGVycygpOworICAgIEFMV0FZU19J
TkxJTkUgQ2hhclR5cGUqIGdldEJ1ZmZlckNoYXJhY3RlcnMoKTsKICAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgdm9pZCByZWlmeVN0cmluZygpIGNvbnN0OworICAgIFdBUk5fVU5VU0VEX1JFVFVSTiBV
bmV4cGVjdGVkPEZhaWx1cmU+IHdvdWxkT3ZlcmZsb3coKTsKKyAgICBXQVJOX1VOVVNFRF9SRVRV
Uk4gVW5leHBlY3RlZDxGYWlsdXJlPiBvdXRPZk1lbW9yeSgpOwogCi0gICAgdW5zaWduZWQgbV9s
ZW5ndGg7CisgICAgdW5zaWduZWQgbV9sZW5ndGggeyAwIH07CiAgICAgbXV0YWJsZSBTdHJpbmcg
bV9zdHJpbmc7CiAgICAgUmVmUHRyPFN0cmluZ0ltcGw+IG1fYnVmZmVyOwotICAgIGJvb2wgbV9p
czhCaXQ7CisgICAgYm9vbCBtX2lzOEJpdCB7IHRydWUgfTsKKyAgICBib29sIG1fZmFpbGVkIHsg
ZmFsc2UgfTsKICAgICB1bmlvbiB7CiAgICAgICAgIExDaGFyKiBtX2J1ZmZlckNoYXJhY3RlcnM4
OwogICAgICAgICBVQ2hhciogbV9idWZmZXJDaGFyYWN0ZXJzMTY7CkBAIC0zMzMsMjAgKzM2NSw0
OCBAQCBBTFdBWVNfSU5MSU5FIFVDaGFyKiBTdHJpbmdCdWlsZGVyOjpnZXRCdWZmZXJDaGFyYWN0
ZXJzPFVDaGFyPigpCiB9ICAgIAogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci1ib29s
IGVxdWFsKGNvbnN0IFN0cmluZ0J1aWxkZXImIHMsIGNvbnN0IENoYXJUeXBlKiBidWZmZXIsIHVu
c2lnbmVkIGxlbmd0aCkKK2lubGluZSBib29sIGVxdWFsKGNvbnN0IFN0cmluZ0J1aWxkZXImIHMs
IGNvbnN0IENoYXJUeXBlKiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkKIHsKKyAgICBpZiAocy5m
YWlsZWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKHMubGVuZ3RoKCkgIT0g
bGVuZ3RoKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAocy5pczhCaXQoKSkKLSAg
ICAgICAgcmV0dXJuIGVxdWFsKHMuY2hhcmFjdGVyczgoKSwgYnVmZmVyLCBsZW5ndGgpOworICAg
ICAgICByZXR1cm4gZXF1YWwoKnMuY2hhcmFjdGVyczgoKSwgYnVmZmVyLCBsZW5ndGgpOwogCi0g
ICAgcmV0dXJuIGVxdWFsKHMuY2hhcmFjdGVyczE2KCksIGJ1ZmZlciwgbGVuZ3RoKTsKKyAgICBy
ZXR1cm4gZXF1YWwoKnMuY2hhcmFjdGVyczE2KCksIGJ1ZmZlciwgbGVuZ3RoKTsKK30KKworaW5s
aW5lIGJvb2wgZXF1YWwoY29uc3QgU3RyaW5nQnVpbGRlciYgYSwgY29uc3QgU3RyaW5nQnVpbGRl
ciYgYikKK3sKKyAgICBpZiAoYS5mYWlsZWQoKSB8fCBiLmZhaWxlZCgpKQorICAgICAgICByZXR1
cm4gYS5mYWlsZWQoKSA9PSBiLmZhaWxlZCgpOworCisgICAgaWYgKGEubGVuZ3RoKCkgIT0gYi5s
ZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFhLmxlbmd0aCgpKQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChhLmlzOEJpdCgpKSB7CisgICAgICAgIGlm
IChiLmlzOEJpdCgpKQorICAgICAgICAgICAgcmV0dXJuIGVxdWFsKCphLmNoYXJhY3RlcnM4KCks
ICpiLmNoYXJhY3RlcnM4KCksIGEubGVuZ3RoKCkpOworICAgICAgICByZXR1cm4gZXF1YWwoKmEu
Y2hhcmFjdGVyczgoKSwgKmIuY2hhcmFjdGVyczE2KCksIGEubGVuZ3RoKCkpOworICAgIH0KKwor
ICAgIGlmIChiLmlzOEJpdCgpKQorICAgICAgICByZXR1cm4gZXF1YWwoKmEuY2hhcmFjdGVyczE2
KCksICpiLmNoYXJhY3RlcnM4KCksIGEubGVuZ3RoKCkpOworICAgIHJldHVybiBlcXVhbCgqYS5j
aGFyYWN0ZXJzMTYoKSwgKmIuY2hhcmFjdGVyczE2KCksIGEubGVuZ3RoKCkpOwogfQogCiB0ZW1w
bGF0ZSA8dHlwZW5hbWUgU3RyaW5nVHlwZT4KLWJvb2wgZXF1YWwoY29uc3QgU3RyaW5nQnVpbGRl
ciYgYSwgY29uc3QgU3RyaW5nVHlwZSYgYikKK2lubGluZSBib29sIGVxdWFsKGNvbnN0IFN0cmlu
Z0J1aWxkZXImIGEsIGNvbnN0IFN0cmluZ1R5cGUmIGIpCiB7CisgICAgaWYgKGEuZmFpbGVkKCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGlmIChhLmxlbmd0aCgpICE9IGIubGVuZ3Ro
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMzU1LDEzICs0MTUsMTMgQEAgYm9vbCBl
cXVhbChjb25zdCBTdHJpbmdCdWlsZGVyJiBhLCBjb25zdCBTdHJpbmdUeXBlJiBiKQogCiAgICAg
aWYgKGEuaXM4Qml0KCkpIHsKICAgICAgICAgaWYgKGIuaXM4Qml0KCkpCi0gICAgICAgICAgICBy
ZXR1cm4gZXF1YWwoYS5jaGFyYWN0ZXJzOCgpLCBiLmNoYXJhY3RlcnM4KCksIGEubGVuZ3RoKCkp
OwotICAgICAgICByZXR1cm4gZXF1YWwoYS5jaGFyYWN0ZXJzOCgpLCBiLmNoYXJhY3RlcnMxNigp
LCBhLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIHJldHVybiBlcXVhbCgqYS5jaGFyYWN0ZXJzOCgp
LCBiLmNoYXJhY3RlcnM4KCksIGEubGVuZ3RoKCkpOworICAgICAgICByZXR1cm4gZXF1YWwoKmEu
Y2hhcmFjdGVyczgoKSwgYi5jaGFyYWN0ZXJzMTYoKSwgYS5sZW5ndGgoKSk7CiAgICAgfQogCiAg
ICAgaWYgKGIuaXM4Qml0KCkpCi0gICAgICAgIHJldHVybiBlcXVhbChhLmNoYXJhY3RlcnMxNigp
LCBiLmNoYXJhY3RlcnM4KCksIGEubGVuZ3RoKCkpOwotICAgIHJldHVybiBlcXVhbChhLmNoYXJh
Y3RlcnMxNigpLCBiLmNoYXJhY3RlcnMxNigpLCBhLmxlbmd0aCgpKTsKKyAgICAgICAgcmV0dXJu
IGVxdWFsKCphLmNoYXJhY3RlcnMxNigpLCBiLmNoYXJhY3RlcnM4KCksIGEubGVuZ3RoKCkpOwor
ICAgIHJldHVybiBlcXVhbCgqYS5jaGFyYWN0ZXJzMTYoKSwgYi5jaGFyYWN0ZXJzMTYoKSwgYS5s
ZW5ndGgoKSk7CiB9CiAKIGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgU3RyaW5nQnVpbGRl
ciYgYSwgY29uc3QgU3RyaW5nQnVpbGRlciYgYikgeyByZXR1cm4gZXF1YWwoYSwgYik7IH0KQEAg
LTM3Miw5ICs0MzIsMTIgQEAgaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTdHJpbmcmIGEs
IGNvbnN0IFN0cmluZ0J1aWxkZXImIGIpIHsgcmV0dXJuIGVxdWFsKGIKIGlubGluZSBib29sIG9w
ZXJhdG9yIT0oY29uc3QgU3RyaW5nJiBhLCBjb25zdCBTdHJpbmdCdWlsZGVyJiBiKSB7IHJldHVy
biAhZXF1YWwoYiwgYSk7IH0KIAogdGVtcGxhdGU8PiBzdHJ1Y3QgSW50ZWdlclRvU3RyaW5nQ29u
dmVyc2lvblRyYWl0PFN0cmluZ0J1aWxkZXI+IHsKLSAgICB1c2luZyBSZXR1cm5UeXBlID0gdm9p
ZDsKKyAgICB1c2luZyBSZXR1cm5UeXBlID0gU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PjsKICAg
ICB1c2luZyBBZGRpdGlvbmFsQXJndW1lbnRUeXBlID0gU3RyaW5nQnVpbGRlcjsKLSAgICBzdGF0
aWMgdm9pZCBmbHVzaChMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBTdHJpbmdC
dWlsZGVyKiBzdHJpbmdCdWlsZGVyKSB7IHN0cmluZ0J1aWxkZXItPmFwcGVuZChjaGFyYWN0ZXJz
LCBsZW5ndGgpOyB9CisgICAgc3RhdGljIFJldHVyblR5cGUgZmx1c2goTENoYXIqIGNoYXJhY3Rl
cnMsIHVuc2lnbmVkIGxlbmd0aCwgU3RyaW5nQnVpbGRlciogc3RyaW5nQnVpbGRlcikKKyAgICB7
CisgICAgICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLT5hcHBlbmQoY2hhcmFjdGVycywgbGVuZ3Ro
KTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlckpTT04uY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9T
dHJpbmdCdWlsZGVySlNPTi5jcHAKaW5kZXggMjI2Mjk1ZS4uNzBkYmI4NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVySlNPTi5jcHAKKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9TdHJpbmdCdWlsZGVySlNPTi5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDEwLCAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDE3IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVh
QGdtYWlsLmNvbT4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
TW96aWxsYSBGb3VuZGF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtNzQsNyArNzQsNyBA
QCBBTFdBWVNfSU5MSU5FIHN0YXRpYyB2b2lkIGFwcGVuZFF1b3RlZEpTT05TdHJpbmdJbnRlcm5h
bChPdXRwdXRDaGFyYWN0ZXJUeXBlKiYgbwogICAgIH0KIH0KIAotYm9vbCBTdHJpbmdCdWlsZGVy
OjphcHBlbmRRdW90ZWRKU09OU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorU3RyaW5nQnVp
bGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmRRdW90ZWRKU09OU3RyaW5nKGNv
bnN0IFN0cmluZyYgc3RyaW5nKQogewogICAgIC8vIE1ha2Ugc3VyZSB3ZSBoYXZlIGVub3VnaCBi
dWZmZXIgc3BhY2UgdG8gYXBwZW5kIHRoaXMgc3RyaW5nIHdpdGhvdXQgaGF2aW5nCiAgICAgLy8g
dG8gd29ycnkgYWJvdXQgcmVhbGxvY2F0aW5nIGluIHRoZSBtaWRkbGUuCkBAIC04NSwyMCArODUs
MjEgQEAgYm9vbCBTdHJpbmdCdWlsZGVyOjphcHBlbmRRdW90ZWRKU09OU3RyaW5nKGNvbnN0IFN0
cmluZyYgc3RyaW5nKQogICAgIG1heGltdW1DYXBhY2l0eVJlcXVpcmVkICs9IDIgKyBzdHJpbmdM
ZW5ndGggKiA2OwogICAgIHVuc2lnbmVkIGFsbG9jYXRpb25TaXplOwogICAgIGlmIChDaGVja2Vk
U3RhdGU6OkRpZE92ZXJmbG93ID09IG1heGltdW1DYXBhY2l0eVJlcXVpcmVkLnNhZmVHZXQoYWxs
b2NhdGlvblNpemUpKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB3b3Vs
ZE92ZXJmbG93KCk7CiAgICAgLy8gVGhpcyBtYXgoKSBpcyBoZXJlIHRvIGFsbG93IHVzIHRvIGFs
bG9jYXRlIHNpemVzIGJldHdlZW4gdGhlIHJhbmdlIFsyXjMxLCAyXjMyIC0gMl0gYmVjYXVzZSBy
b3VuZFVwVG9Qb3dlck9mVHdvKDE8PDMxICsgc29tZSBpbnQgc21hbGxlciB0aGFuIDE8PDMxKSA9
PSAwLgogICAgIC8vIEZJWE1FOiByb3VuZFVwVG9Qb3dlck9mVHdvIHNob3VsZCB0YWtlIENoZWNr
ZWQ8dW5zaWduZWQ+IGFuZCBhYm9ydCBpZiBpdCBmYWlscyB0byByb3VuZCB1cC4KICAgICAvLyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDg2CiAgICAgYWxsb2Nh
dGlvblNpemUgPSBzdGQ6Om1heChhbGxvY2F0aW9uU2l6ZSwgcm91bmRVcFRvUG93ZXJPZlR3byhh
bGxvY2F0aW9uU2l6ZSkpOwogCi0gICAgLy8gQWxsb2NhdGluZyB0aGlzIG11Y2ggd2lsbCBkZWZp
bml0ZWx5IGZhaWwuCi0gICAgaWYgKGFsbG9jYXRpb25TaXplID49IDB4ODAwMDAwMDApCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChpczhCaXQoKSAmJiAhc3RyaW5nLmlzOEJpdCgp
KQotICAgICAgICBhbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChtX2J1ZmZlckNoYXJhY3RlcnM4LCBh
bGxvY2F0aW9uU2l6ZSk7Ci0gICAgZWxzZQotICAgICAgICByZXNlcnZlQ2FwYWNpdHkoYWxsb2Nh
dGlvblNpemUpOworICAgIGlmIChpczhCaXQoKSAmJiAhc3RyaW5nLmlzOEJpdCgpKSB7CisgICAg
ICAgIGF1dG8gYWxsb2NhdGVkID0gYWxsb2NhdGVCdWZmZXJVcENvbnZlcnQobV9idWZmZXJDaGFy
YWN0ZXJzOCwgYWxsb2NhdGlvblNpemUpOworICAgICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAg
ICAgICAgIHJldHVybiBhbGxvY2F0ZWQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byByZXNl
cnZlZCA9IHJlc2VydmVDYXBhY2l0eShhbGxvY2F0aW9uU2l6ZSk7CisgICAgICAgIGlmICghcmVz
ZXJ2ZWQpCisgICAgICAgICAgICByZXR1cm4gcmVzZXJ2ZWQ7CisgICAgfQogICAgIEFTU0VSVCht
X2J1ZmZlci0+bGVuZ3RoKCkgPj0gYWxsb2NhdGlvblNpemUpOwogCiAgICAgaWYgKGlzOEJpdCgp
KSB7CkBAIC0xMTksNyArMTIwLDcgQEAgYm9vbCBTdHJpbmdCdWlsZGVyOjphcHBlbmRRdW90ZWRK
U09OU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgICAgICBtX2xlbmd0aCA9IG91dHB1
dCAtIG1fYnVmZmVyQ2hhcmFjdGVyczE2OwogICAgIH0KICAgICBBU1NFUlQobV9idWZmZXItPmxl
bmd0aCgpID49IG1fbGVuZ3RoKTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4geyB9Owog
fQogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nSW1wbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCmluZGV4
IDc3NDg3NmIuLmVlZDA5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5n
SW1wbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcApAQCAtMjA2
LDIyICsyMDYsMjQgQEAgUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OmNyZWF0ZVVuaW5pdGlh
bGl6ZWQodW5zaWduZWQgbGVuZ3RoLCBVQ2hhciomIGRhdGEpCiAgICAgcmV0dXJuIGNyZWF0ZVVu
aW5pdGlhbGl6ZWRJbnRlcm5hbChsZW5ndGgsIGRhdGEpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFt
ZSBDaGFyYWN0ZXJUeXBlPiBpbmxpbmUgUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OnJlYWxs
b2NhdGVJbnRlcm5hbChSZWY8U3RyaW5nSW1wbD4mJiBvcmlnaW5hbFN0cmluZywgdW5zaWduZWQg
bGVuZ3RoLCBDaGFyYWN0ZXJUeXBlKiYgZGF0YSkKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3Rl
clR5cGU+IGlubGluZSBSZWZQdHI8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6cmVhbGxvY2F0ZUlu
dGVybmFsKFJlZjxTdHJpbmdJbXBsPiYmIG9yaWdpbmFsU3RyaW5nLCB1bnNpZ25lZCBsZW5ndGgs
IENoYXJhY3RlclR5cGUqJiBkYXRhKQogewogICAgIEFTU0VSVChvcmlnaW5hbFN0cmluZy0+aGFz
T25lUmVmKCkpOwogICAgIEFTU0VSVChvcmlnaW5hbFN0cmluZy0+YnVmZmVyT3duZXJzaGlwKCkg
PT0gQnVmZmVySW50ZXJuYWwpOwogCiAgICAgaWYgKCFsZW5ndGgpIHsKICAgICAgICAgZGF0YSA9
IDA7Ci0gICAgICAgIHJldHVybiAqZW1wdHkoKTsKKyAgICAgICAgcmV0dXJuIGVtcHR5KCk7CiAg
ICAgfQogCiAgICAgLy8gU2FtZSBhcyBjcmVhdGVVbmluaXRpYWxpemVkKCkgZXhjZXB0IGhlcmUg
d2UgdXNlIHN0cmluZ1JlYWxsb2MuCi0gICAgaWYgKGxlbmd0aCA+ICgoc3RkOjpudW1lcmljX2xp
bWl0czx1bnNpZ25lZD46Om1heCgpIC0gc2l6ZW9mKFN0cmluZ0ltcGwpKSAvIHNpemVvZihDaGFy
YWN0ZXJUeXBlKSkpCi0gICAgICAgIENSQVNIKCk7CisgICAgaWYgKFVOTElLRUxZKGxlbmd0aCA+
ICgoc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpIC0gc2l6ZW9mKFN0cmluZ0lt
cGwpKSAvIHNpemVvZihDaGFyYWN0ZXJUeXBlKSkpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAogICAgIG9yaWdpbmFsU3RyaW5nLT5+U3RyaW5nSW1wbCgpOwogICAgIGF1dG8qIHN0cmluZyA9
IHN0YXRpY19jYXN0PFN0cmluZ0ltcGwqPihzdHJpbmdSZWFsbG9jKCZvcmlnaW5hbFN0cmluZy5s
ZWFrUmVmKCksIGFsbG9jYXRpb25TaXplPENoYXJhY3RlclR5cGU+KGxlbmd0aCkpKTsKKyAgICBp
ZiAoVU5MSUtFTFkoIXN0cmluZykpCisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgZGF0
YSA9IHN0cmluZy0+dGFpbFBvaW50ZXI8Q2hhcmFjdGVyVHlwZT4oKTsKICAgICByZXR1cm4gY29u
c3RydWN0SW50ZXJuYWw8Q2hhcmFjdGVyVHlwZT4oKnN0cmluZywgbGVuZ3RoKTsKQEAgLTIzMCwx
MyArMjMyLDMzIEBAIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IGlubGluZSBSZWY8
U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6cmVhbGxvY2F0ZUluCiBSZWY8U3RyaW5nSW1wbD4gU3Ry
aW5nSW1wbDo6cmVhbGxvY2F0ZShSZWY8U3RyaW5nSW1wbD4mJiBvcmlnaW5hbFN0cmluZywgdW5z
aWduZWQgbGVuZ3RoLCBMQ2hhciomIGRhdGEpCiB7CiAgICAgQVNTRVJUKG9yaWdpbmFsU3RyaW5n
LT5pczhCaXQoKSk7Ci0gICAgcmV0dXJuIHJlYWxsb2NhdGVJbnRlcm5hbChXVEZNb3ZlKG9yaWdp
bmFsU3RyaW5nKSwgbGVuZ3RoLCBkYXRhKTsKKyAgICBpZiAoYXV0byByZWFsbG9jYXRlZCA9IHJl
YWxsb2NhdGVJbnRlcm5hbChXVEZNb3ZlKG9yaWdpbmFsU3RyaW5nKSwgbGVuZ3RoLCBkYXRhKSkK
KyAgICAgICAgcmV0dXJuICpyZWFsbG9jYXRlZDsKKyAgICBDUkFTSCgpOwogfQogCiBSZWY8U3Ry
aW5nSW1wbD4gU3RyaW5nSW1wbDo6cmVhbGxvY2F0ZShSZWY8U3RyaW5nSW1wbD4mJiBvcmlnaW5h
bFN0cmluZywgdW5zaWduZWQgbGVuZ3RoLCBVQ2hhciomIGRhdGEpCiB7CiAgICAgQVNTRVJUKCFv
cmlnaW5hbFN0cmluZy0+aXM4Qml0KCkpOwotICAgIHJldHVybiByZWFsbG9jYXRlSW50ZXJuYWwo
V1RGTW92ZShvcmlnaW5hbFN0cmluZyksIGxlbmd0aCwgZGF0YSk7CisgICAgaWYgKGF1dG8gcmVh
bGxvY2F0ZWQgPSByZWFsbG9jYXRlSW50ZXJuYWwoV1RGTW92ZShvcmlnaW5hbFN0cmluZyksIGxl
bmd0aCwgZGF0YSkpCisgICAgICAgIHJldHVybiAqcmVhbGxvY2F0ZWQ7CisgICAgQ1JBU0goKTsK
K30KKworUmVmUHRyPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OnRyeVJlYWxsb2NhdGUoUmVmPFN0
cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2lnbmVkIGxlbmd0aCwgTENoYXIqJiBkYXRh
KQoreworICAgIEFTU0VSVChvcmlnaW5hbFN0cmluZy0+aXM4Qml0KCkpOworICAgIGlmIChhdXRv
IHJlYWxsb2NhdGVkID0gcmVhbGxvY2F0ZUludGVybmFsKFdURk1vdmUob3JpZ2luYWxTdHJpbmcp
LCBsZW5ndGgsIGRhdGEpKQorICAgICAgICByZXR1cm4gcmVhbGxvY2F0ZWQuZ2V0KCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjp0cnlS
ZWFsbG9jYXRlKFJlZjxTdHJpbmdJbXBsPiYmIG9yaWdpbmFsU3RyaW5nLCB1bnNpZ25lZCBsZW5n
dGgsIFVDaGFyKiYgZGF0YSkKK3sKKyAgICBBU1NFUlQoIW9yaWdpbmFsU3RyaW5nLT5pczhCaXQo
KSk7CisgICAgaWYgKGF1dG8gcmVhbGxvY2F0ZWQgPSByZWFsbG9jYXRlSW50ZXJuYWwoV1RGTW92
ZShvcmlnaW5hbFN0cmluZyksIGxlbmd0aCwgZGF0YSkpCisgICAgICAgIHJldHVybiByZWFsbG9j
YXRlZC5nZXQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUg
Q2hhcmFjdGVyVHlwZT4gaW5saW5lIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdGVJ
bnRlcm5hbChjb25zdCBDaGFyYWN0ZXJUeXBlKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaCBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCmluZGV4IDYxNmRhMjUuLjhkZjllMzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvU3RyaW5nSW1wbC5oCkBAIC0yMjksNiArMjI5LDcgQEAgcHVibGljOgogICAgIFdURl9F
WFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0ZShjb25zdCBMQ2hhciop
OwogICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGUoY29uc3Qg
Y2hhciogc3RyaW5nKSB7IHJldHVybiBjcmVhdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hh
cio+KHN0cmluZykpOyB9CiAKKyAgICBzdGF0aWMgUmVmUHRyPFN0cmluZ0ltcGw+IHRyeUNyZWF0
ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKFN0cmluZ0ltcGwmLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2ln
bmVkIGxlbmd0aCk7CiAgICAgc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGVTdWJzdHJpbmdT
aGFyaW5nSW1wbChTdHJpbmdJbXBsJiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgp
OwogCiAgICAgdGVtcGxhdGU8dW5zaWduZWQgY2hhcmFjdGVyQ291bnQ+IHN0YXRpYyBSZWY8U3Ry
aW5nSW1wbD4gY3JlYXRlRnJvbUxpdGVyYWwoY29uc3QgY2hhciAoJilbY2hhcmFjdGVyQ291bnRd
KTsKQEAgLTI0OCw2ICsyNDksOCBAQCBwdWJsaWM6CiAgICAgLy8gdGhlIG9yaWdpbmFsU3RyaW5n
IGNhbid0IGJlIHVzZWQgYWZ0ZXIgdGhpcyBmdW5jdGlvbi4KICAgICBzdGF0aWMgUmVmPFN0cmlu
Z0ltcGw+IHJlYWxsb2NhdGUoUmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2ln
bmVkIGxlbmd0aCwgTENoYXIqJiBkYXRhKTsKICAgICBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IHJl
YWxsb2NhdGUoUmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2lnbmVkIGxlbmd0
aCwgVUNoYXIqJiBkYXRhKTsKKyAgICBzdGF0aWMgUmVmUHRyPFN0cmluZ0ltcGw+IHRyeVJlYWxs
b2NhdGUoUmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2lnbmVkIGxlbmd0aCwg
TENoYXIqJiBkYXRhKTsKKyAgICBzdGF0aWMgUmVmUHRyPFN0cmluZ0ltcGw+IHRyeVJlYWxsb2Nh
dGUoUmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2lnbmVkIGxlbmd0aCwgVUNo
YXIqJiBkYXRhKTsKIAogICAgIHN0YXRpYyB1bnNpZ25lZCBmbGFnc09mZnNldCgpIHsgcmV0dXJu
IE9CSkVDVF9PRkZTRVRPRihTdHJpbmdJbXBsLCBtX2hhc2hBbmRGbGFncyk7IH0KICAgICBzdGF0
aWMgdW5zaWduZWQgZmxhZ0lzOEJpdCgpIHsgcmV0dXJuIHNfaGFzaEZsYWc4Qml0QnVmZmVyOyB9
CkBAIC01MDMsNyArNTA2LDcgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFy
YWN0ZXJUeXBlPiBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNvbnN0cnVjdEludGVybmFsKFN0cmlu
Z0ltcGwmLCB1bnNpZ25lZCk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4g
c3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGVVbmluaXRpYWxpemVkSW50ZXJuYWwodW5zaWdu
ZWQsIENoYXJhY3RlclR5cGUqJik7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlw
ZT4gc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGVVbmluaXRpYWxpemVkSW50ZXJuYWxOb25F
bXB0eSh1bnNpZ25lZCwgQ2hhcmFjdGVyVHlwZSomKTsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBD
aGFyYWN0ZXJUeXBlPiBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IHJlYWxsb2NhdGVJbnRlcm5hbChS
ZWY8U3RyaW5nSW1wbD4mJiwgdW5zaWduZWQsIENoYXJhY3RlclR5cGUqJik7CisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gc3RhdGljIFJlZlB0cjxTdHJpbmdJbXBsPiByZWFs
bG9jYXRlSW50ZXJuYWwoUmVmPFN0cmluZ0ltcGw+JiYsIHVuc2lnbmVkLCBDaGFyYWN0ZXJUeXBl
KiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHN0YXRpYyBSZWY8U3Ry
aW5nSW1wbD4gY3JlYXRlSW50ZXJuYWwoY29uc3QgQ2hhcmFjdGVyVHlwZSosIHVuc2lnbmVkKTsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgTkVWRVJfSU5MSU5FIHVuc2lnbmVkIGhhc2hTbG93Q2Fz
ZSgpIGNvbnN0OwogCkBAIC05MTQsMjIgKzkxNywzMSBAQCB0ZW1wbGF0ZTxzaXplX3QgaW5saW5l
Q2FwYWNpdHk+IGlubGluZSBSZWY8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6Y3JlYXRlOEJpdElm
UAogICAgIHJldHVybiBjcmVhdGU4Qml0SWZQb3NzaWJsZSh2ZWN0b3IuZGF0YSgpLCB2ZWN0b3Iu
c2l6ZSgpKTsKIH0KIAotQUxXQVlTX0lOTElORSBSZWY8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6
Y3JlYXRlU3Vic3RyaW5nU2hhcmluZ0ltcGwoU3RyaW5nSW1wbCYgcmVwLCB1bnNpZ25lZCBvZmZz
ZXQsIHVuc2lnbmVkIGxlbmd0aCkKK0FMV0FZU19JTkxJTkUgUmVmUHRyPFN0cmluZ0ltcGw+IFN0
cmluZ0ltcGw6OnRyeUNyZWF0ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKFN0cmluZ0ltcGwmIHJlcCwg
dW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgQVNTRVJUKGxlbmd0aCA8
PSByZXAubGVuZ3RoKCkpOwogCiAgICAgaWYgKCFsZW5ndGgpCi0gICAgICAgIHJldHVybiAqZW1w
dHkoKTsKKyAgICAgICAgcmV0dXJuIGVtcHR5KCk7CiAKICAgICBhdXRvKiBvd25lclJlcCA9ICgo
cmVwLmJ1ZmZlck93bmVyc2hpcCgpID09IEJ1ZmZlclN1YnN0cmluZykgPyByZXAuc3Vic3RyaW5n
QnVmZmVyKCkgOiAmcmVwKTsKIAogICAgIC8vIFdlIGFsbG9jYXRlIGEgYnVmZmVyIHRoYXQgY29u
dGFpbnMgYm90aCB0aGUgU3RyaW5nSW1wbCBzdHJ1Y3QgYXMgd2VsbCBhcyB0aGUgcG9pbnRlciB0
byB0aGUgb3duZXIgc3RyaW5nLgogICAgIGF1dG8qIHN0cmluZ0ltcGwgPSBzdGF0aWNfY2FzdDxT
dHJpbmdJbXBsKj4oc3RyaW5nTWFsbG9jKGFsbG9jYXRpb25TaXplPFN0cmluZ0ltcGwqPigxKSkp
OworICAgIGlmICghc3RyaW5nSW1wbCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYg
KHJlcC5pczhCaXQoKSkKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgKE5vdE51bGwsIHN0
cmluZ0ltcGwpIFN0cmluZ0ltcGwocmVwLm1fZGF0YTggKyBvZmZzZXQsIGxlbmd0aCwgKm93bmVy
UmVwKSk7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgKE5vdE51bGwsIHN0cmluZ0ltcGwpIFN0
cmluZ0ltcGwocmVwLm1fZGF0YTE2ICsgb2Zmc2V0LCBsZW5ndGgsICpvd25lclJlcCkpOwogfQog
CitBTFdBWVNfSU5MSU5FIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdGVTdWJzdHJp
bmdTaGFyaW5nSW1wbChTdHJpbmdJbXBsJiByZXAsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQg
bGVuZ3RoKQoreworICAgIGlmIChhdXRvIGNyZWF0ZWQgPSB0cnlDcmVhdGVTdWJzdHJpbmdTaGFy
aW5nSW1wbChyZXAsIG9mZnNldCwgbGVuZ3RoKSkKKyAgICAgICAgcmV0dXJuICpjcmVhdGVkOwor
ICAgIENSQVNIKCk7Cit9CisKIHRlbXBsYXRlPHVuc2lnbmVkIGNoYXJhY3RlckNvdW50PiBBTFdB
WVNfSU5MSU5FIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJhbChj
b25zdCBjaGFyICgmY2hhcmFjdGVycylbY2hhcmFjdGVyQ291bnRdKQogewogICAgIENPTVBJTEVf
QVNTRVJUKGNoYXJhY3RlckNvdW50ID4gMSwgU3RyaW5nSW1wbEZyb21MaXRlcmFsTm90RW1wdHkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0U3RyZWFtLmNwcCBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvVGV4dFN0cmVhbS5jcHAKaW5kZXggYWFmNjE5NC4uZDNiNTMxOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0U3RyZWFtLmNwcAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1RleHRTdHJlYW0uY3BwCkBAIC0xMzIsOSArMTMyLDExIEBAIFRleHRTdHJl
YW0mIFRleHRTdHJlYW06Om9wZXJhdG9yPDwoY29uc3QgRm9ybWF0TnVtYmVyUmVzcGVjdGluZ0lu
dGVnZXJzJiBudW1iZXJUCiAKIFN0cmluZyBUZXh0U3RyZWFtOjpyZWxlYXNlKCkKIHsKLSAgICBT
dHJpbmcgcmVzdWx0ID0gbV90ZXh0LnRvU3RyaW5nKCk7Ci0gICAgbV90ZXh0LmNsZWFyKCk7Ci0g
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICBpZiAoYXV0byByZXN1bHQgPSBtX3RleHQudG9TdHJpbmco
KSkgeworICAgICAgICBtX3RleHQuY2xlYXIoKTsKKyAgICAgICAgcmV0dXJuICpyZXN1bHQ7Cisg
ICAgfQorICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgVGV4dFN0cmVhbTo6c3RhcnRHcm91cCgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggNTFkOGFkMC4uNTEzYTAyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxMyBA
QAorMjAxOC0wNC0yNiAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgU3RyaW5nQnVpbGRlciBpcyBmYWxsaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3RyaW5nQnVpbGRlciBjYW4gZmFpbCB3aGVuIGFsbG9jYXRp
bmcgbWVtb3J5LiBTdHJpbmdCdWlsZGVyIGlzCisgICAgICAgIG1vc3RseSB1c2VkIHdpdGggdXNl
ciBpbnB1dCwgd2hpY2ggb2Z0ZW4gbWVhbnMgdGhhdCBqdXN0IGNyYXNoaW5nCisgICAgICAgIGlz
bid0IHRoZSByaWdodCBvdXRjb21lLiBPdXIgZnV6emVycyBvZnRlbiBlbmNvdW50ZXIgc3VjaCB0
aGluZ3MKKyAgICAgICAgZm9yIEphdmFTY3JpcHRDb3JlLCBhbmQgc28gZmFyIHdlJ3ZlIGFwcGxp
ZWQgcG9pbnQgc29sdXRpb25zLiBObworICAgICAgICBtb3JlIQorCisKKyAgICAgICAgKiBNb2R1
bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRDb250YWN0Q29jb2EubW06CisgICAgICAgIChXZWJD
b3JlOjpjb252ZXJ0KToKKyAgICAgICAgKiBNb2R1bGVzL2VudHJpZXNhcGkvRE9NRmlsZVN5c3Rl
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXNvbHZlUmVsYXRpdmVWaXJ0dWFsUGF0aCk6Cisg
ICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpsb2dFcnJvcik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0
YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlEYXRhOjpsb2dnaW5nU3RyaW5nIGNvbnN0
KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlQYXRoLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmxvZ2dpbmdTdHJpbmcpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JbmRleFZhbHVlU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJ
bmRleFZhbHVlU3RvcmU6OmxvZ2dpbmdTdHJpbmcgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJDdXJzb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SURCU2VydmVyOjpidWlsZEluZGV4U3RhdGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNl
cnZlcjo6YnVpbGRPYmplY3RTdG9yZVN0YXRlbWVudCk6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJE
YXRhYmFzZUluZm86OmxvZ2dpbmdTdHJpbmcgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SURCT2JqZWN0U3RvcmVJbmZvOjpsb2dnaW5nU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Om1lZGlhUHJvZHVjZXJTdGF0ZVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyOjp0b1N0cmluZyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmlsdGVy
SUNFQ2FuZGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25uZWN0aW9uQmFja2VuZDo6
ZmlsdGVyU0RQIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdp
blJlcGxhY2VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OllvdVR1YmVQbHVnaW5SZXBsYWNl
bWVudDo6eW91VHViZVVSTEZyb21BYnNvbHV0ZVVSTCk6CisgICAgICAgICogTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2VuZXJhdGVE
YXRhYmFzZUZpbGVOYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmVuY29kZVByb3RvY29sU3RyaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OmpvaW5TdHJpbmdzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2Nr
ZXRFeHRlbnNpb25EaXNwYXRjaGVyOjpjcmVhdGVIZWFkZXJWYWx1ZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyOjphY2NlcHRlZEV4dGVuc2lv
bnMgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hh
a2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVzb3VyY2VOYW1lKToKKyAgICAgICAgKFdlYkNv
cmU6Omhvc3ROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEhhbmRzaGFrZTo6Y2xp
ZW50TG9jYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNoYWtl
OjpjbGllbnRIYW5kc2hha2VNZXNzYWdlIGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZEFk
ZFNwYWNlQmVmb3JlQXBwZW5kaW5nTmV4dEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRleHRVbmRlckVsZW1lbnQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmFjY2Vzc2liaWxpdHlEZXNjcmlwdGlv
bkZvckNoaWxkcmVuIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0OjphY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25Gb3JFbGVtZW50cyBjb25zdCk6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN0cmluZ0ZvclJhbmdlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN0cmluZ0ZvclZpc2libGVQb3NpdGlv
blJhbmdlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYy5tbToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXIgdmFsdWVEZXNjcmlwdGlvbkZvck1ldGVyXSk6CisgICAgICAgIChmb3JtYXRGb3JEZWJ1Z2dl
cik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01Db252ZXJ0U3RyaW5ncy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpzdHJpbmdUb1VTVlN0cmluZyk6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNET01FeGNlcHRpb25IYW5kbGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0aHJvd0FyZ3Vt
ZW50TXVzdEJlRW51bUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OnRocm93QXJndW1lbnRNdXN0
QmVGdW5jdGlvbkVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OnRocm93QXJndW1lbnRUeXBlRXJy
b3IpOgorICAgICAgICAoV2ViQ29yZTo6dGhyb3dSZXF1aXJlZE1lbWJlclR5cGVFcnJvcik6Cisg
ICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29tYmluZWRVUkxGaWx0ZXJzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpwcmVmaXhUcmVlVmVydGV4VG9TdHJpbmcp
OgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb246OmNvbXBp
bGVHbG9iYWxEaXNwbGF5Tm9uZVN0eWxlU2hlZXQpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50RXh0ZW5zaW9uczo6cmVzb2x2ZVBlbmRpbmdEaXNwbGF5Tm9uZUFjdGlvbnMpOgorICAgICAg
ICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25TdHlsZVNoZWV0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uU3R5bGVT
aGVldDo6YWRkRGlzcGxheU5vbmVTZWxlY3Rvcik6CisgICAgICAgICogY29udGVudGV4dGVuc2lv
bnMvVGVybS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlRlcm06OnRv
U3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZh
bHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1
ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0Jhc2ljU2hhcGVzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkQ2lyY2xlU3RyaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OmJ1aWxkRWxsaXBzZVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpidWlsZFBhdGhTdHJp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRQb2x5Z29uU3RyaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OmJ1aWxkSW5zZXRTdHJpbmcpOgorICAgICAgICAqIGNzcy9DU1NDYWxjdWxhdGlvblZh
bHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkQ3NzVGV4dCk6CisgICAgICAgICogY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9D
U1NDcm9zc2ZhZGVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDcm9zc2ZhZGVWYWx1
ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0N1cnNvckltYWdlVmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Vyc29ySW1hZ2VWYWx1ZTo6Y3VzdG9tQ1NT
VGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0N1c3RvbUlkZW50VmFsdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTQ3VzdG9tSWRlbnRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6
CisgICAgICAgICogY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTRmlsdGVySW1hZ2VWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICog
Y3NzL0NTU0ZvbnRGYWNlUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZVJ1
bGU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU3JjVmFsdWU6OmN1c3RvbUNTU1RleHQg
Y29uc3QpOgorICAgICAgICAqIGNzcy9DU1NGb250RmVhdHVyZVZhbHVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU0ZvbnRGZWF0dXJlVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAg
ICAgICAqIGNzcy9DU1NGb250U3R5bGVSYW5nZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU0ZvbnRTdHlsZVJhbmdlVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAq
IGNzcy9DU1NGb250U3R5bGVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250U3R5
bGVWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0ZvbnRWYWx1
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250VmFsdWU6OmN1c3RvbUNTU1RleHQgY29u
c3QpOgorICAgICAgICAqIGNzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTRm9udFZhcmlhdGlvblZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAg
ICAgICAgKiBjc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NG
dW5jdGlvblZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTR3Jh
ZGllbnRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NMaW5lYXJHcmFkaWVudFZhbHVl
OjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1JhZGlhbEdyYWRp
ZW50VmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29u
aWNHcmFkaWVudFZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NT
R3JpZEF1dG9SZXBlYXRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NHcmlkQXV0b1Jl
cGVhdFZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTR3JpZFRl
bXBsYXRlQXJlYXNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NHcmlkVGVtcGxhdGVB
cmVhc1ZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VT
ZXRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVNldFZhbHVlOjpjdXN0b21D
U1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTSW1wb3J0UnVsZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NJbXBvcnRSdWxlOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3Mv
Q1NTS2V5ZnJhbWVSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUtleWZyYW1l
OjprZXlUZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUtleWZyYW1lOjpj
c3NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTS2V5ZnJhbWVzUnVsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NLZXlmcmFtZXNSdWxlOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAg
KiBjc3MvQ1NTTGluZUJveENvbnRhaW5WYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NM
aW5lQm94Q29udGFpblZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3Mv
Q1NTTWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNlcmlhbGl6ZVN0cmluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpzZXJpYWxpemVBc1N0cmluZ09yQ3VzdG9tSWRlbnQpOgorICAgICAgICAq
IGNzcy9DU1NNZWRpYVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTWVkaWFSdWxlOjpj
c3NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTTmFtZXNwYWNlUnVsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NOYW1lc3BhY2VSdWxlOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAg
KiBjc3MvQ1NTUGFnZVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFnZVJ1bGU6OnNl
bGVjdG9yVGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYWdlUnVsZTo6Y3NzVGV4
dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpmb3JtYXROdW1iZXJGb3JDdXN0b21DU1NUZXh0
IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5U291cmNlRGF0YTo6dG9TdHJpbmcgY29uc3QpOgorICAg
ICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rv
cjo6c2VsZWN0b3JUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3JMaXN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yTGlzdDo6c2VsZWN0b3JzVGV4dCBjb25z
dCk6CisgICAgICAgICogY3NzL0NTU1NoYWRvd1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1NoYWRvd1ZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NT
U3R5bGVSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlUnVsZTo6Y3NzVGV4dCBj
b25zdCk6CisgICAgICAgICogY3NzL0NTU1N0eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTU3R5bGVTaGVldDo6YWRkUnVsZSk6CisgICAgICAgICogY3NzL0NTU1N1cHBvcnRzUnVs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdXBwb3J0c1J1bGU6OmNzc1RleHQgY29uc3Qp
OgorICAgICAgICAqIGNzcy9DU1NUaW1pbmdGdW5jdGlvblZhbHVlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU0N1YmljQmV6aWVyVGltaW5nRnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdGVwc1RpbWluZ0Z1bmN0aW9uVmFsdWU6OmN1
c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRnJhbWVzVGltaW5nRnVu
Y3Rpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NT
cHJpbmdUaW1pbmdGdW5jdGlvblZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAg
KiBjc3MvQ1NTVmFsdWVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlTGlzdDo6
Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU1ZhcmlhYmxlRGF0YS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NWYXJpYWJsZURhdGE6OmNvbnN1bWVBbmRVcGRhdGVUb2tl
bnMpOgorICAgICAgICAqIGNzcy9ET01DU1NOYW1lc3BhY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NQ1NTTmFtZXNwYWNlOjplc2NhcGUpOgorICAgICAgICAqIGNzcy9ET01NYXRyaXhSZWFk
T25seS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01NYXRyaXhSZWFkT25seTo6dG9TdHJpbmcg
Y29uc3QpOgorICAgICAgICAqIGNzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFsdWVMaXN0Ojpjc3NUZXh0IGNvbnN0KToK
KyAgICAgICAgKiBjc3MvRm9udEZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZhY2U6
OnN0eWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGYWNlOjp3ZWlnaHQgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZhY2U6OnN0cmV0Y2ggY29uc3QpOgorICAgICAgICAq
IGNzcy9NZWRpYUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeVNldDo6bWVk
aWFUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVF1ZXJ5OjpzZXJpYWxpemUgY29uc3QpOgorICAgICAgICAqIGNzcy9NZWRp
YVF1ZXJ5RXhwcmVzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5RXhwcmVz
c2lvbjo6c2VyaWFsaXplIGNvbnN0KToKKyAgICAgICAgKiBjc3MvUmVjdC5oOgorICAgICAgICAq
IGNzcy9TdHlsZVByb3BlcnRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0
aWVzOjpmb250VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVz
OjpnZXQ0VmFsdWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6
Z2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
UHJvcGVydGllczo6Z2V0U2hvcnRoYW5kVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGVQcm9wZXJ0aWVzOjpib3JkZXJQcm9wZXJ0eVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlUHJvcGVydGllczo6YXNUZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlUHJvcGVydGllczo6UHJvcGVydHlSZWZlcmVuY2U6OmNzc1RleHQgY29uc3QpOgorICAg
ICAgICAqIGNzcy9XZWJLaXRDU1NNYXRyaXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0
Q1NTTWF0cml4Ojp0b1N0cmluZyBjb25zdCk6CisgICAgICAgICogY3NzL1dlYktpdENTU1ZpZXdw
b3J0UnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NWaWV3cG9ydFJ1bGU6OmNz
c1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VGb250RmFjZURlc2NyaXB0b3IpOgorICAgICAg
ICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyVG9rZW46OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQ
YXJzZXJUb2tlblJhbmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlclRva2VuUmFu
Z2U6OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBh
cnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb25jYXRlbmF0ZUZhbWlseU5hbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6cGFyc2VHcmlkVGVtcGxhdGVBcmVhc0NvbHVtbk5hbWVzKToKKyAgICAg
ICAgKiBjc3MvcGFyc2VyL0NTU1Rva2VuaXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NU
b2tlbml6ZXI6OmNvbnN1bWVTdHJpbmdUb2tlblVudGlsKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1Rva2VuaXplcjo6Y29uc3VtZVVybFRva2VuKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Rva2Vu
aXplcjo6Y29uc3VtZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9rZW5pemVyOjpjb25z
dW1lRXNjYXBlKToKKyAgICAgICAgKiBkb20vRGF0YXNldERPTVN0cmluZ01hcC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpjb252ZXJ0QXR0cmlidXRlTmFtZVRvUHJvcGVydHlOYW1lKToKKyAgICAg
ICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpmb3JtYXRG
b3JEZWJ1Z2dlciBjb25zdCk6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Tm9kZTo6dGV4dENvbnRlbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6
c2hvd05vZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6dHJhdmVyc2VUcmVlQW5kTWFyayk6
CisgICAgICAgICogZG9tL1Bvc2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9u
Ojpmb3JtYXRGb3JEZWJ1Z2dlciBjb25zdCk6CisgICAgICAgICogZG9tL1JhbmdlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJhbmdlOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZTo6Zm9ybWF0Rm9yRGVidWdnZXIgY29uc3QpOgorICAgICAgICAqIGRvbS9TY3JpcHRl
ZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dGhyb3R0bGluZ1Jl
YXNvbnNUb1N0cmluZyk6CisgICAgICAgICogZG9tL1NlY3VyaXR5Q29udGV4dC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTZWN1cml0eUNvbnRleHQ6OnBhcnNlU2FuZGJveFBvbGljeSk6CisgICAg
ICAgICogZG9tL1RleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dDo6d2hvbGVUZXh0IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHQ6OmZvcm1hdEZvckRlYnVnZ2VyIGNvbnN0KToK
KyAgICAgICAgKiBkb20vVGV4dE5vZGVUcmF2ZXJzYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dE5vZGVUcmF2ZXJzYWw6OmNvbnRlbnRzQXNTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dE5vZGVUcmF2ZXJzYWw6OmNoaWxkVGV4dENvbnRlbnQpOgorICAgICAgICAqIGVkaXRpbmcv
QXBwbHlTdHlsZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlTdHlsZUNvbW1h
bmQ6OmFkZEJsb2NrU3R5bGUpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdGluZy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpzdHJpbmdXaXRoUmViYWxhbmNlZFdoaXRlc3BhY2UpOgorICAgICAgICAq
IGVkaXRpbmcvSFRNTEludGVyY2hhbmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRI
VE1MVGV4dFRvSW50ZXJjaGFuZ2VGb3JtYXQpOgorICAgICAgICAqIGVkaXRpbmcvTWFya3VwQWNj
dW11bGF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWFya3VwQWNjdW11bGF0b3I6OnNlcmlh
bGl6ZU5vZGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1hcmt1cEFjY3VtdWxhdG9yOjpnZW5lcmF0
ZVVuaXF1ZVByZWZpeCk6CisgICAgICAgICogZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6cGxhaW5UZXh0KToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1h
bmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6aW5wdXRFdmVudERhdGFU
cmFuc2ZlciBjb25zdCk6CisgICAgICAgICogZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlZpc2libGVTZWxlY3Rpb246OmZvcm1hdEZvckRlYnVnZ2VyIGNv
bnN0KToKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW06CisgICAgICAg
IChXZWJDb3JlOjpkYXRhRGV0ZWN0b3JTdHJpbmdGb3JQYXRoKToKKyAgICAgICAgKiBlZGl0aW5n
L2NvY29hL0hUTUxDb252ZXJ0ZXIubW06CisgICAgICAgIChIVE1MQ29udmVydGVyOjpfcHJvY2Vz
c1RleHQpOgorICAgICAgICAqIGVkaXRpbmcvbWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjp3cmFwV2l0aE5vZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OndyYXBXaXRoU3R5bGVOb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjp0YWtlUmVzdWx0cyk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kVGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpzYW5pdGl6ZWRNYXJrdXBGb3JGcmFnbWVudEluRG9jdW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6dXJsVG9NYXJrdXApOgorICAgICAgICAqIGZpbGVhcGkvRmlsZVJlYWRlckxv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlUmVhZGVyTG9hZGVyOjpjb252ZXJ0VG9E
YXRhVVJMKToKKyAgICAgICAgKiBodG1sL0RPTVRva2VuTGlzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpET01Ub2tlbkxpc3Q6OnVwZGF0ZUFzc29jaWF0ZWRBdHRyaWJ1dGVGcm9tVG9rZW5zKToK
KyAgICAgICAgKiBodG1sL0VtYWlsSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVt
YWlsSW5wdXRUeXBlOjpzYW5pdGl6ZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0ZpbGVJ
bnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6ZGVmYXVsdFRv
b2xUaXAgY29uc3QpOgorICAgICAgICAqIGh0bWwvRm9ybUNvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Zm9ybVNpZ25hdHVyZSk6CisgICAgICAgICogaHRtbC9IVE1MQW5jaG9yRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6aGFuZGxlQ2xp
Y2spOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUNvbnRleHQyZCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIgY29uc3QpOgorICAgICAg
ICAqIGh0bWwvSFRNTEZvbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlRm9u
dFNpemUpOgorICAgICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50Ojpjb21wbGV0ZVVSTHNJbkF0dHJpYnV0ZVZhbHVlIGNv
bnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6YWN0aW9uTmFtZSk6CisgICAgICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6Y29sbGVjdE9wdGlvbklubmVy
VGV4dCBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c3RyaXBw
ZWRQbGFjZWhvbGRlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjppbm5lclRleHRWYWx1ZUZy
b20pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnZhbHVl
V2l0aEhhcmRMaW5lQnJlYWtzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL01lZGlhRG9jdW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFEb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1l
bnRTdHJ1Y3R1cmUpOgorICAgICAgICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpyZXN0cmljdGlvbk5hbWUpOgorICAgICAgICAqIGh0bWwvTWVkaWFG
cmFnbWVudFVSSVBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb2xsZWN0RGlnaXRzKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbGxlY3RGcmFjdGlvbik6CisgICAgICAgICogaHRtbC9UeXBl
QWhlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwZUFoZWFkOjpoYW5kbGVFdmVudCk6Cisg
ICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Zm9udCBjb25zdCk6CisgICAg
ICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpnZXRJbWFnZURhdGEg
Y29uc3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Uu
Y3BwOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxTb3VyY2VUcmFja2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxTb3VyY2VUcmFja2VyOjpzb3VyY2UpOgorICAgICAgICAqIGh0bWwv
cGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXpl
cjo6cHJvY2Vzc0VudGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpwcm9j
ZXNzVG9rZW4pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXplcjo6YnVmZmVyZWRDaGFy
YWN0ZXJzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpkZWZhdWx0Rm9ySW5UYWJsZVRl
eHQpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpidWlsZENvbnNvbGVFcnJvcik6CisgICAgICAgICogaHRtbC90cmFjay9C
dWZmZXJlZExpbmVSZWFkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QnVmZmVyZWRMaW5lUmVh
ZGVyOjpuZXh0TGluZSk6CisgICAgICAgICogaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VHJhY2tCYXNlOjpzZXRMYW5ndWFnZSk6CisgICAgICAgICogaHRtbC90
cmFjay9WVFRDdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VlRUQ3VlOjpkZXRlcm1pbmVUZXh0
RGlyZWN0aW9uKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJWVFRQYXJzZXI6OmNyZWF0ZU5ld0N1ZSk6CisgICAgICAgICogaHRt
bC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViVlRUVG9r
ZW5pemVyOjpuZXh0VG9rZW4pOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNo
ZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjpzaG9ydGhhbmRWYWx1
ZSBjb25zdCk6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBcHBsaWNhdGlv
bkNhY2hlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQXBwbGljYXRpb25D
YWNoZUFnZW50OjpidWlsZE9iamVjdEZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZSk6CisgICAg
ICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwOgorICAgICAg
ICAqIGluc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldlYkNvbnNvbGVBZ2VudDo6ZGlkRmFpbExvYWRpbmcpOgorICAgICAgICAqIGxvYWRlci9D
cm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQWNj
ZXNzQ29udHJvbFByZWZsaWdodFJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3M6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZVN0b3JhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0
b3JhZ2U6OnN0b3JlKToKKyAgICAgICAgKiBsb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNo
aXZlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0ZUZyb21T
ZWxlY3Rpb24pOgorICAgICAgICAqIGxvYWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpnZW5lcmF0ZVJhbmRvbUJvdW5kYXJ5KToKKyAgICAgICAg
KFdlYkNvcmU6OnJlcGxhY2VOb25QcmludGFibGVDaGFyYWN0ZXJzKToKKyAgICAgICAgKiBwYWdl
L0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNh
cHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjp3aW5kb3dSb3VuZGVkQ29ybmVyUmFkaXVzQ1NT
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFG
Ojpjb2xvclByb3BlcnR5Q1NTIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2Vy
UHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc1RleHRFZGdlQ1NTIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc0RlZmF1bHRG
b250Q1NTIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNN
ZWRpYUFGOjpjYXB0aW9uc1N0eWxlU2hlZXRPdmVycmlkZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjp0cmFja0Rpc3BsYXlOYW1lKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZVJlZ0V4cEZvckxhYmVscyk6CisgICAgICAgICogcGFnZS9GcmFt
ZVRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVUcmVlOjp1bmlxdWVDaGlsZE5hbWUg
Y29uc3QpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lVmlldzo6bG9nTW9ja1Njcm9sbEFuaW1hdG9yTWVzc2FnZSBjb25zdCk6CisgICAgICAg
ICogcGFnZS9QYWdlU2VyaWFsaXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlU2VyaWFs
aXplcjo6c2VyaWFsaXplQ1NTU3R5bGVTaGVldCk6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5j
ZUxvZ2dpbmdDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VMb2dnaW5n
Q2xpZW50OjpzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNBc1N0cmluZyk6CisgICAgICAgICog
cGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhOjpkYXRhYmFzZUlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIHBhZ2UvV2hl
ZWxFdmVudFRlc3RUcmlnZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmR1bXBTdGF0ZSk6Cisg
ICAgICAgICogcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnNvbGVNZXNzYWdlRm9yVmlvbGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dSdW5uaW5nT3JEaXNwbGF5aW5nSW5zZWN1cmVDb250
ZW50KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9BeGlzU2Nyb2xsU25hcE9mZnNldHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6c25hcE9mZnNldHNUb1N0cmluZyk6CisgICAgICAgIChXZWJD
b3JlOjpzbmFwT2Zmc2V0UmFuZ2VzVG9TdHJpbmcpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nv
b3JkaW5hdG9yOjpzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNBc1RleHQpOgorICAgICAgICAq
IHBsYXRmb3JtL0RlY2ltYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVjaW1hbDo6dG9TdHJp
bmcgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RmlsZVN5c3RlbTo6ZW5jb2RlRm9yRmlsZU5hbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbTo6ZGVjb2RlRnJvbUZpbGVuYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Q
T0RJbnRlcnZhbC5oOgorICAgICAgICAqIHBsYXRmb3JtL1BPRFJlZEJsYWNrVHJlZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6UE9EUmVkQmxhY2tUcmVlOjpkdW1wRnJvbU5vZGUgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL1VSTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVUkw6OnNldEhvc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6VVJMOjpzZXRIb3N0QW5kUG9ydCk6CisgICAgICAgIChXZWJD
b3JlOjpwZXJjZW50RW5jb2RlQ2hhcmFjdGVycyk6CisgICAgICAgICogcGxhdGZvcm0vYW5pbWF0
aW9uL1RpbWluZ0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWluZ0Z1bmN0aW9u
OjpjcmVhdGVGcm9tQ1NTVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVt
R2xpYi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdD
b21wb25lbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDb2xvcjo6c2VyaWFsaXplZCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb2xvcjo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRXh0
ZW5kZWRDb2xvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbmRlZENvbG9yOjpjc3NUZXh0
IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpub3JtYWxpemVTcGFjZXNJbnRlcm5hbCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6YW5pbWF0aW9uTmFtZUZvclRy
YW5zaXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJh
bmRUZXh0VHJhY2tQcml2YXRlQVZGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRU
cmFja1ByaXZhdGVBVkY6OnByb2Nlc3NDdWVBdHRyaWJ1dGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OkluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NOYXRpdmVTYW1wbGVzKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUaWxlQ29udHJvbGxlcjo6Y3JlYXRlVGlsZUxheWVyKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jYS9UaWxlR3JpZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0
aW9uUG9saWN5QXNTdHJpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9Q
bGF0Zm9ybUNBTGF5ZXJXaW4uY3BwOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyV2luOjpsYXll
clRyZWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlk
ZW9UZXh0dXJlQ29waWVyQ1YuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UZXh0dXJlQ29w
aWVyQ1Y6OmluaXRpYWxpemVDb250ZXh0T2JqZWN0cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmdlbmVyYXRlSGFzaGVkTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRDo6Z2V0VW5tYW5nbGVkSW5mb0xvZyk6CisgICAgICAgICogcGxhdGZvcm0vbWFj
L1Bhc3RlYm9hcmRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpqb2luUGF0aG5hbWVzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6d2lsZGNhcmRSZWdleFBhdHRlcm5TdHJpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2sv
U2Nyb2xsQW5pbWF0b3JNb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9y
TW9jazo6bW91c2VFbnRlcmVkU2Nyb2xsYmFyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbEFuaW1hdG9yTW9jazo6bW91c2VFeGl0ZWRTY3JvbGxiYXIgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNb2NrOjptb3VzZUlzRG93bkluU2Nyb2xsYmFyIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja0JveDo6cGVla1R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TW9j
a1RyYWNrQm94OjpNb2NrVHJhY2tCb3gpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvSFRU
UFBhcnNlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlh
VHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjp0b1N0cmluZyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMv
Q29va2llSmFyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29va2llc0ZvclNlc3Npb24pOgor
ICAgICAgICAqIHBsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnRzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS90ZXh0L0RlY29kZUVzY2FwZVNlcXVlbmNlcy5oOgorICAgICAgICAoV2ViQ29y
ZTo6VW5pY29kZTE2Qml0RXNjYXBlU2VxdWVuY2U6OmRlY29kZVJ1bik6CisgICAgICAgIChXZWJD
b3JlOjpkZWNvZGVFc2NhcGVTZXF1ZW5jZXMpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvUGxh
dGZvcm1Mb2NhbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlOjpjb252ZXJ0VG9Mb2Nh
bGl6ZWROdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlOjpjb252ZXJ0RnJvbUxvY2Fs
aXplZE51bWJlcik6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbGU6OmZvcm1hdERhdGVUaW1lKToK
KyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmluZy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q29kZWNJ
Q1U6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVc2VyRGVmaW5l
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q29kZWNVc2VyRGVmaW5lZDo6ZGVjb2RlKToK
KyAgICAgICAgKiBwbHVnaW5zL0RPTU1pbWVUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TU1pbWVUeXBlOjpzdWZmaXhlcyBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpuYW1lIGNvbnN0KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6bG9nTGF5ZXJJbmZvKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsaXN0TWFy
a2VyVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0TWFya2VyOjpwYWludCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2Fw
aXRhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjptYXhXb3JkRnJhZ21lbnRXaWR0aCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
cXVvdGVBbmRFc2NhcGVOb25QcmludGFibGVzKToKKyAgICAgICAgKFdlYkNvcmU6Om5vZGVQb3Np
dGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWF0aE1MRmVuY2VkOjp1cGRhdGVGcm9tRWxlbWVu
dCk6CisgICAgICAgICogcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTWF0aE1M
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVCdWlsZGVyOjpNYXRoTUw6OmF0dGFj
aCk6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTGVuZ3RoTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAg
ICogc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTnVt
YmVyTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR1Bh
dGhTdHJpbmdCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTdHJpbmdCdWls
ZGVyOjpyZXN1bHQpOgorICAgICAgICAqIHN2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmJ1aWxkU3RyaW5nRnJvbVBhdGgpOgorICAgICAgICAqIHN2Zy9TVkdQb2lu
dExpc3RWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9pbnRMaXN0VmFsdWVzOjp2
YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHU3RyaW5nTGlzdFZhbHVlcy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHJpbmdMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5n
IGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nIGNvbnN0
KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHVHJhbnNmb3JtVmFsdWU6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2
Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
cm9wZXJ0eVRyYWl0czxGbG9hdFBvaW50Pjo6dG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0Pjo6dG9TdHJpbmcpOgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZHVtcE1hcmtl
clJlY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cGFyc2VyTWV0YURhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpnZXRDdXJyZW50Q3Vyc29ySW5mbyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om1lZGlhU2Vzc2lvblJlc3RyaWN0aW9ucyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnBhZ2VNZWRpYVN0YXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsczo6c2Nyb2xsU25hcE9mZnNldHMpOgorICAgICAgICAqIHRlc3Rp
bmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tQYWdl
T3ZlcmxheUNsaWVudDo6ZHJhd1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1BhZ2VPdmVy
bGF5Q2xpZW50Ojptb3VzZUV2ZW50KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclNjcmlwdExv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRMb2FkZXI6OnNjcmlwdCk6
CisgICAgICAgICogeG1sL1hNTEVycm9ycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxFcnJv
cnM6Omluc2VydEVycm9yTWVzc2FnZUJsb2NrKToKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVl
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmdldEFsbFJlc3BvbnNl
SGVhZGVycyBjb25zdCk6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0Lmg6CisgICAgICAg
ICogeG1sL1hQYXRoRnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoOjphdG9t
aWNTdWJzdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OkZ1bklkOjpldmFsdWF0ZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6RnVuQ29uY2F0OjpldmFsdWF0ZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6RnVuVHJhbnNsYXRlOjpldmFsdWF0ZSBjb25z
dCk6CisgICAgICAgICogeG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnNhdmVSZXN1bHRUb1N0cmluZyk6CisgICAgICAgICogeG1sL3BhcnNlci9DaGFyYWN0
ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVzLmg6CisgICAgICAgIChXZWJDb3JlOjp1bmNvbnN1bWVD
aGFyYWN0ZXJzKToKKwogMjAxOC0wNC0yNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgVXNlIE5ldHdvcmtMb2FkQ2hlY2tlciBmb3IgYWxsIHN1YnJlc291cmNl
IGxvYWRzIGV4Y2VwdCBmZXRjaC9YSFIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudENvbnRhY3RDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudENvbnRhY3RDb2NvYS5tbQppbmRleCAzYmU2
MjEwLi4wOTc4NGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L2NvY29hL1BheW1lbnRDb250YWN0Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9hcHBsZXBheS9jb2NvYS9QYXltZW50Q29udGFjdENvY29hLm1tCkBAIC0xNTQsNyArMTU0LDEw
IEBAIHN0YXRpYyBSZXRhaW5QdHI8UEtDb250YWN0PiBjb252ZXJ0KHVuc2lnbmVkIHZlcnNpb24s
IGNvbnN0IEFwcGxlUGF5UGF5bWVudENvbnRhCiAgICAgICAgIH0KIAogICAgICAgICAvLyBGSVhN
RTogU3RyaW5nQnVpbGRlciBzaG91bGQgaGF2YSBhIHRvTlNTdHJpbmcoKSBmdW5jdGlvbiB0byBh
dm9pZCB0aGUgZXh0cmEgU3RyaW5nIGFsbG9jYXRpb24uCi0gICAgICAgIFthZGRyZXNzIHNldFN0
cmVldDpidWlsZGVyLnRvU3RyaW5nKCldOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBbYWRkcmVzcyBzZXRTdHJlZXQ6KnN0cmluZ107
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAKICAgICAgICAgaWYgKCFjb250
YWN0LnN1YkxvY2FsaXR5LmlzRW1wdHkoKSkKICAgICAgICAgICAgIHNldFN1YkxvY2FsaXR5KGFk
ZHJlc3MuZ2V0KCksIGNvbnRhY3Quc3ViTG9jYWxpdHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwCmluZGV4IDhlNTA2NmQuLjli
MzYwYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01G
aWxlU3lzdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9N
RmlsZVN5c3RlbS5jcHAKQEAgLTIxNiw3ICsyMTYsOSBAQCBzdGF0aWMgU3RyaW5nIHJlc29sdmVS
ZWxhdGl2ZVZpcnR1YWxQYXRoKFN0cmluZ1ZpZXcgYmFzZVZpcnR1YWxQYXRoLCBTdHJpbmdWaWV3
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcvJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHNl
Z21lbnQpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9lbnRyaWVzLWFw
aS8jZXZhbHVhdGUtYS1wYXRoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvbG9jYXRpb24uY3BwCmluZGV4IGRjYmY3MDMuLjZjYWFjNWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCkBAIC0z
NDAsNyArMzQwLDEwIEBAIHN0YXRpYyB2b2lkIGxvZ0Vycm9yKGNvbnN0IFN0cmluZyYgdGFyZ2V0
LCBjb25zdCBib29sIGlzU2VjdXJlLCBjb25zdCBib29sIGlzTWl4CiAgICAgCiAgICAgbWVzc2Fn
ZS5hcHBlbmQodGFyZ2V0KTsKICAgICBtZXNzYWdlLmFwcGVuZCgiLlxuIik7Ci0gICAgZG9jdW1l
bnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2
ZWw6OkVycm9yLCBtZXNzYWdlLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1l
c3NhZ2UudG9TdHJpbmcoKSkKKyAgICAgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAqc3RyaW5nKTsKKyAg
ICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIC8vIEZJWE1FOiByZW1vdmUgdGhpcyBmdW5j
dGlvbiB3aGVuIHJkYXI6Ly9wcm9ibGVtLzMyMTM3ODIxIGlzIGZpeGVkLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmNwcAppbmRleCAyZTkzNjQ1Li43
MjEyOTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJL
ZXlEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlE
YXRhLmNwcApAQCAtMzMyLDcgKzMzMiwxMCBAQCBTdHJpbmcgSURCS2V5RGF0YTo6bG9nZ2luZ1N0
cmluZygpIGNvbnN0CiAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsICIp
OwogICAgICAgICB9CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIH0iKTsKLSAgICAg
ICAgcmVzdWx0ID0gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXN1bHQgPSAqc3RyaW5nOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICBicmVhazsKICAgICB9CiAg
ICAgY2FzZSBLZXlUeXBlOjpCaW5hcnk6IHsKQEAgLTM0Miw3ICszNDUsMTAgQEAgU3RyaW5nIElE
QktleURhdGE6OmxvZ2dpbmdTdHJpbmcoKSBjb25zdAogICAgICAgICBhdXRvKiBkYXRhID0gV1RG
OjpnZXQ8VGhyZWFkU2FmZURhdGFCdWZmZXI+KG1fdmFsdWUpLmRhdGEoKTsKICAgICAgICAgaWYg
KCFkYXRhKSB7CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgiKG51bGwpIik7Ci0gICAgICAg
ICAgICByZXN1bHQgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gKnN0
cmluZzsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApAQCAtMzUzLDcgKzM1OSwxMCBAQCBTdHJpbmcgSURC
S2V5RGF0YTo6bG9nZ2luZ1N0cmluZygpIGNvbnN0CiAgICAgICAgIGlmIChkYXRhLT5zaXplKCkg
PiA4KQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIi4uLiIpOwogCi0gICAgICAgIHJlc3Vs
dCA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICAgICAgcmVzdWx0ID0gKnN0cmluZzsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2Ug
S2V5VHlwZTo6U3RyaW5nOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCS2V5UGF0aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJLZXlQYXRoLmNwcAppbmRleCA3NmViZWIzLi44YjlmYjE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlQYXRoLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlQYXRoLmNwcApAQCAtMjQxLDcgKzI0MSw5IEBA
IFN0cmluZyBsb2dnaW5nU3RyaW5nKGNvbnN0IElEQktleVBhdGgmIHBhdGgpCiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKHN0cmluZ3MubGFzdCgpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiA+
Iik7CiAKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfSk7CiAKICAgICByZXR1cm4gV1RGOjp2aXNpdCh2
aXNpdG9yLCBwYXRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JbmRleFZhbHVlU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL0luZGV4VmFsdWVTdG9yZS5jcHAKaW5kZXggNjk4M2M5ZC4uODBkNmIz
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lu
ZGV4VmFsdWVTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0luZGV4VmFsdWVTdG9yZS5jcHAKQEAgLTQwOSw3ICs0MDksOSBAQCBTdHJpbmcgSW5k
ZXhWYWx1ZVN0b3JlOjpsb2dnaW5nU3RyaW5nKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBl
bmROdW1iZXIobV9yZWNvcmRzLmdldChrZXkpLT5nZXRDb3VudCgpKTsKICAgICAgICAgYnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCIgZW50cmllcyIpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQ3Vy
c29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJ
REJDdXJzb3IuY3BwCmluZGV4IGYyMGRiODcuLmE0YzMwZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJDdXJzb3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJDdXJzb3Iu
Y3BwCkBAIC0xNDEsNyArMTQxLDkgQEAgc3RhdGljIFN0cmluZyBidWlsZEluZGV4U3RhdGVtZW50
KGNvbnN0IElEQktleVJhbmdlRGF0YSYga2V5UmFuZ2UsIEluZGV4ZWREQjo6Q3UKIAogICAgIGJ1
aWxkZXIuYXBwZW5kKCc7Jyk7CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBidWlsZE9iamVjdFN0b3Jl
U3RhdGVtZW50KGNvbnN0IElEQktleVJhbmdlRGF0YSYga2V5UmFuZ2UsIEluZGV4ZWREQjo6Q3Vy
c29yRGlyZWN0aW9uIGN1cnNvckRpcmVjdGlvbikKQEAgLTE2OSw3ICsxNzEsOSBAQCBzdGF0aWMg
U3RyaW5nIGJ1aWxkT2JqZWN0U3RvcmVTdGF0ZW1lbnQoY29uc3QgSURCS2V5UmFuZ2VEYXRhJiBr
ZXlSYW5nZSwgSW5kZXhlZAogCiAgICAgYnVpbGRlci5hcHBlbmQoJzsnKTsKIAotICAgIHJldHVy
biBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29s
IFNRTGl0ZUlEQkN1cnNvcjo6ZXN0YWJsaXNoU3RhdGVtZW50KCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJEYXRhYmFzZUluZm8uY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5j
cHAKaW5kZXggZTVkZjE1Yy4uNzY5MzRkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5jcHAKQEAgLTE2
OSw3ICsxNjksOSBAQCBTdHJpbmcgSURCRGF0YWJhc2VJbmZvOjpsb2dnaW5nU3RyaW5nKCkgY29u
c3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9i
amVjdFN0b3JlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFy
ZWQvSURCT2JqZWN0U3RvcmVJbmZvLmNwcAppbmRleCBiMDA3NWZlLi44ZDhmYWQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCT2JqZWN0U3Rv
cmVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCT2JqZWN0U3RvcmVJbmZvLmNwcApAQCAtMTQ4LDcgKzE0OCw5IEBAIFN0cmluZyBJREJPYmpl
Y3RTdG9yZUluZm86OmxvZ2dpbmdTdHJpbmcoaW50IGluZGVudCkgY29uc3QKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoJ1xuJyk7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBJREJPYmplY3RTdG9yZUlu
Zm86OmNvbmRlbnNlZExvZ2dpbmdTdHJpbmcoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2Vy
LmNwcAppbmRleCA0MjA5ZmZhLi45NmZlYmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNw
cApAQCAtODksNyArODksOSBAQCBzdGF0aWMgU3RyaW5nIG1lZGlhUHJvZHVjZXJTdGF0ZVN0cmlu
ZyhNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpCiAgICAgZWxzZQogICAgICAg
ICBzdHJpbmcucmVzaXplKHN0cmluZy5sZW5ndGgoKSAtIDIpOwogCi0gICAgcmV0dXJuIHN0cmlu
Zy50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0ciA9IHN0cmluZy50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cjsKKyAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKQEAgLTM4MSw3ICsz
ODMsOSBAQCBTdHJpbmcgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6dG9TdHJpbmcoQ29uZmlndXJh
dGlvblRhc2tzIHRhc2tzKQogICAgIGVsc2UKICAgICAgICAgc3RyaW5nLnJlc2l6ZShzdHJpbmcu
bGVuZ3RoKCkgLSAyKTsKICAgICAKLSAgICByZXR1cm4gc3RyaW5nLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyID0gc3RyaW5nLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyOwor
ICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCmluZGV4IGRj
NTFiYjUuLmRiZWNkNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKQEAgLTQwMyw3ICs0MDMs
OSBAQCBzdGF0aWMgU3RyaW5nIGZpbHRlcklDRUNhbmRpZGF0ZShTdHJpbmcmJiBzZHApCiAgICAg
ICAgICAgICBmaWx0ZXJlZFNEUC5hcHBlbmQoJyAnKTsKICAgICAgICAgZmlsdGVyZWRTRFAuYXBw
ZW5kKGl0ZW0pOwogICAgIH0pOwotICAgIHJldHVybiBmaWx0ZXJlZFNEUC50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IGZpbHRlcmVkU0RQLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBQZWVyQ29ubmVjdGlvbkJh
Y2tlbmQ6OmZpbHRlclNEUChTdHJpbmcmJiBzZHApIGNvbnN0CkBAIC00MjEsNyArNDIzLDkgQEAg
U3RyaW5nIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6ZmlsdGVyU0RQKFN0cmluZyYmIHNkcCkgY29u
c3QKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgZmlsdGVyZWRTRFAuYXBwZW5kKCdcbicp
OwogICAgIH0pOwotICAgIHJldHVybiBmaWx0ZXJlZFNEUC50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGZpbHRlcmVkU0RQLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpuZXdJ
Q0VDYW5kaWRhdGUoU3RyaW5nJiYgc2RwLCBTdHJpbmcmJiBtaWQsIHVuc2lnbmVkIHNob3J0IHNk
cE1MaW5lSW5kZXgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMv
WW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1
Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCmluZGV4IGM5MTcxZGMuLjQyN2Y0ZmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2lu
UmVwbGFjZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VU
dWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCkBAIC0zMzMsNyArMzMzLDkgQEAgU3RyaW5nIFlvdVR1
YmVQbHVnaW5SZXBsYWNlbWVudDo6eW91VHViZVVSTEZyb21BYnNvbHV0ZVVSTChjb25zdCBVUkwm
IHNyY1VSTCwgY28KICAgICAgICAgZmluYWxVUkwuYXBwZW5kKCc/Jyk7CiAgICAgICAgIGZpbmFs
VVJMLmFwcGVuZChxdWVyeSk7CiAgICAgfQotICAgIHJldHVybiBmaW5hbFVSTC50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGZpbmFsVVJMLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAgICAgCiBib29sIFlvdVR1YmVQbHVnaW5S
ZXBsYWNlbWVudDo6c3VwcG9ydHNVUkwoY29uc3QgVVJMJiB1cmwpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKaW5kZXgg
OGZkYTYyYS4uOThmMzA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcApAQCAtMzIwLDcgKzMyMCw5IEBAIHN0YXRp
YyBTdHJpbmcgZ2VuZXJhdGVEYXRhYmFzZUZpbGVOYW1lKCkKICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZChjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiLmRiIik7CiAKLSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIERhdGFiYXNlVHJh
Y2tlcjo6ZnVsbFBhdGhGb3JEYXRhYmFzZU5vTG9jayhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEm
IG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTm90RXhpc3RzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAppbmRleCAw
MjQ3N2I5Li5lYWIyNTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0LmNwcApAQCAtMTA1LDcgKzEwNSw5IEBAIHN0YXRpYyBTdHJpbmcgZW5jb2Rl
UHJvdG9jb2xTdHJpbmcoY29uc3QgU3RyaW5nJiBwcm90b2NvbCkKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgYnVpbGRlci5hcHBlbmQocHJvdG9jb2xbaV0pOwogICAgIH0KLSAgICByZXR1cm4g
YnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGlj
IFN0cmluZyBqb2luU3RyaW5ncyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3RyaW5ncywgY29uc3Qg
Y2hhciogc2VwYXJhdG9yKQpAQCAtMTE2LDcgKzExOCw5IEBAIHN0YXRpYyBTdHJpbmcgam9pblN0
cmluZ3MoY29uc3QgVmVjdG9yPFN0cmluZz4mIHN0cmluZ3MsIGNvbnN0IGNoYXIqIHNlcGFyYXRv
cikKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHNlcGFyYXRvcik7CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKHN0cmluZ3NbaV0pOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIHVuc2lnbmVkIHNhdHVy
YXRlQWRkKHVuc2lnbmVkIGEsIHVuc2lnbmVkIGIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0
Y2hlci5jcHAKaW5kZXggZmNjOWRjMy4uNmM0MGM0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25E
aXNwYXRjaGVyLmNwcApAQCAtNjgsNyArNjgsOSBAQCBjb25zdCBTdHJpbmcgV2ViU29ja2V0RXh0
ZW5zaW9uRGlzcGF0Y2hlcjo6Y3JlYXRlSGVhZGVyVmFsdWUoKSBjb25zdAogICAgICAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIiwgIik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG1fcHJvY2Vz
c29yc1tpXS0+aGFuZHNoYWtlU3RyaW5nKCkpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBXZWJTb2NrZXRF
eHRlbnNpb25EaXNwYXRjaGVyOjphcHBlbmRBY2NlcHRlZEV4dGVuc2lvbihjb25zdCBTdHJpbmcm
IGV4dGVuc2lvblRva2VuLCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYgZXh0ZW5zaW9uUGFyYW1l
dGVycykKQEAgLTEzOSw3ICsxNDEsOSBAQCBTdHJpbmcgV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0
Y2hlcjo6YWNjZXB0ZWRFeHRlbnNpb25zKCkgY29uc3QKIHsKICAgICBpZiAobV9hY2NlcHRlZEV4
dGVuc2lvbnNCdWlsZGVyLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwotICAg
IHJldHVybiBtX2FjY2VwdGVkRXh0ZW5zaW9uc0J1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFj
aXR5KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbV9hY2NlcHRlZEV4dGVuc2lvbnNCdWlsZGVy
LnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBTdHJpbmcgV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlcjo6ZmFp
bHVyZVJlYXNvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCmluZGV4IDU0NTVjZDEuLjA4M2E5MDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRI
YW5kc2hha2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXRIYW5kc2hha2UuY3BwCkBAIC03MiwxMCArNzIsMTMgQEAgc3RhdGljIFN0cmluZyByZXNv
dXJjZU5hbWUoY29uc3QgVVJMJiB1cmwpCiAgICAgICAgIG5hbWUuYXBwZW5kKCc/Jyk7CiAgICAg
ICAgIG5hbWUuYXBwZW5kKHVybC5xdWVyeSgpKTsKICAgICB9Ci0gICAgU3RyaW5nIHJlc3VsdCA9
IG5hbWUudG9TdHJpbmcoKTsKLSAgICBBU1NFUlQoIXJlc3VsdC5pc0VtcHR5KCkpOwotICAgIEFT
U0VSVCghcmVzdWx0LmNvbnRhaW5zKCcgJykpOwotICAgIHJldHVybiByZXN1bHQ7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gbmFtZS50b1N0cmluZygpKSB7CisgICAgICAgIFN0cmluZyByZXN1bHQg
PSAqc3RyaW5nOworICAgICAgICBBU1NFUlQoIXJlc3VsdC5pc0VtcHR5KCkpOworICAgICAgICBB
U1NFUlQoIXJlc3VsdC5jb250YWlucygnICcpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICB9CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBob3N0TmFtZShjb25zdCBVUkwm
IHVybCwgYm9vbCBzZWN1cmUpCkBAIC04Nyw3ICs5MCw5IEBAIHN0YXRpYyBTdHJpbmcgaG9zdE5h
bWUoY29uc3QgVVJMJiB1cmwsIGJvb2wgc2VjdXJlKQogICAgICAgICBidWlsZGVyLmFwcGVuZCgn
OicpOwogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih1cmwucG9ydCgpLnZhbHVlKCkpOwog
ICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogc3RhdGljIGNvbnN0IHNpemVfdCBtYXhJbnB1dFNhbXBsZVNpemUgPSAxMjg7
CkBAIC0xNzYsNyArMTgxLDkgQEAgU3RyaW5nIFdlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZW50TG9j
YXRpb24oKSBjb25zdAogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiOi8vIik7CiAgICAgYnVp
bGRlci5hcHBlbmQoaG9zdE5hbWUobV91cmwsIG1fc2VjdXJlKSk7CiAgICAgYnVpbGRlci5hcHBl
bmQocmVzb3VyY2VOYW1lKG1fdXJsKSk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIENTdHJpbmcgV2ViU29ja2V0SGFuZHNoYWtl
OjpjbGllbnRIYW5kc2hha2VNZXNzYWdlKCkgY29uc3QKQEAgLTIyNiw3ICsyMzMsOSBAQCBDU3Ry
aW5nIFdlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZW50SGFuZHNoYWtlTWVzc2FnZSgpIGNvbnN0CiAK
ICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxyXG4iKTsKIAotICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCkudXRmOCgpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuIHN0cmluZy0+dXRmOCgpOworICAgIENSQVNIKCk7CiB9CiAK
IFJlc291cmNlUmVxdWVzdCBXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudEhhbmRzaGFrZVJlcXVl
c3QoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCBkYjg1NzVlLi5jNGEyNTIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0LmNwcApAQCAtMTcxMywxMSArMTcxMywxMyBAQCBzdGF0aWMgYm9vbCBzaG91bGRVc2VB
Y2Nlc3NpYmlsaXR5T2JqZWN0SW5uZXJUZXh0KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQWNj
ZQogCiBzdGF0aWMgYm9vbCBzaG91bGRBZGRTcGFjZUJlZm9yZUFwcGVuZGluZ05leHRFbGVtZW50
KFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIGNvbnN0IFN0cmluZyYgY2hpbGRUZXh0KQogeworICAg
IGlmIChidWlsZGVyLmZhaWxlZCgpKQorICAgICAgICBDUkFTSCgpOworCiAgICAgaWYgKCFidWls
ZGVyLmxlbmd0aCgpIHx8ICFjaGlsZFRleHQubGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKLQogICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gYWRkIGFuIGFkZGl0aW9uYWwgc3BhY2UgYmVm
b3JlIG9yIGFmdGVyIGEgbGluZSBicmVhay4KLSAgICByZXR1cm4gIShpc0hUTUxMaW5lQnJlYWso
Y2hpbGRUZXh0WzBdKSB8fCBpc0hUTUxMaW5lQnJlYWsoYnVpbGRlcltidWlsZGVyLmxlbmd0aCgp
IC0gMV0pKTsKKyAgICByZXR1cm4gIShpc0hUTUxMaW5lQnJlYWsoY2hpbGRUZXh0WzBdKSB8fCBp
c0hUTUxMaW5lQnJlYWsoKmJ1aWxkZXJbYnVpbGRlci5sZW5ndGgoKSAtIDFdKSk7CiB9CiAgICAg
CiBzdGF0aWMgdm9pZCBhcHBlbmROYW1lVG9TdHJpbmdCdWlsZGVyKFN0cmluZ0J1aWxkZXImIGJ1
aWxkZXIsIGNvbnN0IFN0cmluZyYgdGV4dCkKQEAgLTE3NjksNyArMTc3MSw5IEBAIFN0cmluZyBB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dGV4dFVuZGVyRWxlbWVudChBY2Nlc3NpYmlsaXR5VGV4
dFVuZGVyRWxlbWVudE1vCiAgICAgICAgICAgICBhcHBlbmROYW1lVG9TdHJpbmdCdWlsZGVyKGJ1
aWxkZXIsIGNoaWxkVGV4dCk7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KS5zdHJpcFdoaXRlU3BhY2UoKS5zaW1wbGlmeVdoaXRlU3BhY2UoaXNIVE1MU3BhY2VCdXROb3RM
aW5lQnJlYWspOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuIHN0cmluZy0+c3RyaXBXaGl0ZVNwYWNlKCkuc2ltcGxpZnlXaGl0ZVNwYWNl
KGlzSFRNTFNwYWNlQnV0Tm90TGluZUJyZWFrKTsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcg
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRpdGxlKCkgY29uc3QKQEAgLTE5ODUsNyArMTk4OSw5
IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWNjZXNzaWJpbGl0eURlc2NyaXB0
aW9uRm9yQ2hpbGRyZW4oKSBjb25zdAogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uRm9yRWxlbWVu
dHMoVmVjdG9yPEVsZW1lbnQqPiAmZWxlbWVudHMpIGNvbnN0CkBAIC0xOTk0LDcgKzIwMDAsOSBA
QCBTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmFjY2Vzc2liaWxpdHlEZXNjcmlwdGlv
bkZvckVsZW1lbnRzKFZlY3RvcjxFbGVtZQogICAgIHVuc2lnbmVkIHNpemUgPSBlbGVtZW50cy5z
aXplKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkKICAgICAgICAg
YXBwZW5kTmFtZVRvU3RyaW5nQnVpbGRlcihidWlsZGVyLCBhY2Nlc3NpYmxlTmFtZUZvck5vZGUo
ZWxlbWVudHNbaV0sIG5vZGUoKSkpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3Q6OmFyaWFEZXNjcmliZWRCeUF0dHJpYnV0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCAxOTI4MTcy
Li43YzhkOThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTEzODgsOCArMTM4OCwxMCBAQCBTdHJpbmcgQWNjZXNz
aWJpbGl0eU9iamVjdDo6c3RyaW5nRm9yUmFuZ2UoUmVmUHRyPFJhbmdlPiByYW5nZSkgY29uc3QK
ICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChvYmplY3RSZXBsYWNlbWVudENoYXJhY3Rl
cik7CiAgICAgICAgIH0KICAgICB9Ci0gICAgCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KTsKKworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIEFjY2Vzc2liaWxpdHlP
YmplY3Q6OnN0cmluZ0ZvclZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3NpdGlv
blJhbmdlJiB2aXNpYmxlUG9zaXRpb25SYW5nZSkKQEAgLTE0MTUsNyArMTQxNyw5IEBAIFN0cmlu
ZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdHJpbmdGb3JWaXNpYmxlUG9zaXRpb25SYW5nZShjb25z
dCBWaXNpYmxlUG9zaXRpb25SCiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogaW50IEFjY2Vzc2li
aWxpdHlPYmplY3Q6Omxlbmd0aEZvclZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQ
b3NpdGlvblJhbmdlJiB2aXNpYmxlUG9zaXRpb25SYW5nZSkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJNYWMubW0KaW5kZXggYTEwMmQzNi4uOTMyZDExYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KQEAgLTI0MDksNyArMjQwOSw5IEBAIC0g
KE5TU3RyaW5nICopdmFsdWVEZXNjcmlwdGlvbkZvck1ldGVyCiAgICAgICAgIGlmIChidWlsZGVy
Lmxlbmd0aCgpKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsICIpOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZChnYXVnZVJlZ2lvblZhbHVlKTsKLSAgICAgICAgcmV0dXJuIGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAg
ICAgfQogI2VuZGlmCiAgICAgcmV0dXJuIHZhbHVlRGVzY3JpcHRpb247CkBAIC0zODczLDggKzM4
NzUsMTEgQEAgc3RhdGljIHZvaWQgZm9ybWF0Rm9yRGVidWdnZXIoY29uc3QgVmlzaWJsZVBvc2l0
aW9uUmFuZ2UmIHJhbmdlLCBjaGFyKiBidWZmZXIsIHUKICAgICByZXN1bHQuYXBwZW5kTGl0ZXJh
bCgiIHRvICIpOwogICAgIHJhbmdlLmVuZC5mb3JtYXRGb3JEZWJ1Z2dlcihmb3JtYXQsIEZvcm1h
dEJ1ZmZlclNpemUpOwogICAgIHJlc3VsdC5hcHBlbmQoZm9ybWF0KTsKLSAgICAKLSAgICBzdHJs
Y3B5KGJ1ZmZlciwgcmVzdWx0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbGVuZ3RoKTsKKwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBzdHJsY3B5
KGJ1ZmZlciwgc3RyaW5nLT51dGY4KCkuZGF0YSgpLCBsZW5ndGgpOworICAgIGVsc2UKKyAgICAg
ICAgQ1JBU0goKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUNvbnZlcnRTdHJpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NQ29udmVydFN0cmluZ3MuY3BwCmluZGV4IDdkMmRlMTguLjFlMDRhMWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFN0cmluZ3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFN0cmluZ3MuY3Bw
CkBAIC05MSw3ICs5MSw5IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIHN0cmluZ1RvVVNWU3RyaW5n
KFN0cmluZyYmIHN0cmluZykKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmVzdWx0LmFwcGVu
ZChjb2RlUG9pbnQpOwogICAgIH0KLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBpZGVudGlmaWVyVG9VU1ZTdHJpbmcoRXhl
Y1N0YXRlJiwgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAKaW5kZXggODk1
YTMwMC4uMDdmYjczOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01FeGNlcHRpb25IYW5kbGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAKQEAgLTIxMSw3ICsyMTEsOSBAQCBKU0M6OkVuY29k
ZWRKU1ZhbHVlIHRocm93QXJndW1lbnRNdXN0QmVFbnVtRXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0
YXRlLCBKU0M6OlRocgogICAgIGFwcGVuZEFyZ3VtZW50TXVzdEJlKGJ1aWxkZXIsIGFyZ3VtZW50
SW5kZXgsIGFyZ3VtZW50TmFtZSwgZnVuY3Rpb25JbnRlcmZhY2VOYW1lLCBmdW5jdGlvbk5hbWUp
OwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgib25lIG9mOiAiKTsKICAgICBidWlsZGVyLmFw
cGVuZChleHBlY3RlZFZhbHVlcyk7Ci0gICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoJnN0YXRl
LCBzY29wZSwgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKCZzdGF0ZSwg
c2NvcGUsICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIEpTQzo6RW5jb2RlZEpTVmFsdWUg
dGhyb3dBcmd1bWVudE11c3RCZUZ1bmN0aW9uRXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBK
U0M6OlRocm93U2NvcGUmIHNjb3BlLCB1bnNpZ25lZCBhcmd1bWVudEluZGV4LCBjb25zdCBjaGFy
KiBhcmd1bWVudE5hbWUsIGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIGZ1
bmN0aW9uTmFtZSkKQEAgLTIxOSw3ICsyMjEsOSBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIHRocm93
QXJndW1lbnRNdXN0QmVGdW5jdGlvbkVycm9yKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOgog
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBhcHBlbmRBcmd1bWVudE11c3RCZShidWls
ZGVyLCBhcmd1bWVudEluZGV4LCBhcmd1bWVudE5hbWUsIGludGVyZmFjZU5hbWUsIGZ1bmN0aW9u
TmFtZSk7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJhIGZ1bmN0aW9uIik7Ci0gICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoJnN0YXRlLCBzY29wZSwgYnVpbGRlci50b1N0cmluZygpKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUsICpzdHJpbmcpOworICAgIENSQVNIKCk7
CiB9CiAKIEpTQzo6RW5jb2RlZEpTVmFsdWUgdGhyb3dBcmd1bWVudFR5cGVFcnJvcihKU0M6OkV4
ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6VGhyb3dTY29wZSYgc2NvcGUsIHVuc2lnbmVkIGFyZ3VtZW50
SW5kZXgsIGNvbnN0IGNoYXIqIGFyZ3VtZW50TmFtZSwgY29uc3QgY2hhciogZnVuY3Rpb25JbnRl
cmZhY2VOYW1lLCBjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIGNvbnN0IGNoYXIqIGV4cGVjdGVk
VHlwZSkKQEAgLTIyOCw3ICsyMzIsOSBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIHRocm93QXJndW1l
bnRUeXBlRXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OlRocm93U2NvcAogICAgIGFw
cGVuZEFyZ3VtZW50TXVzdEJlKGJ1aWxkZXIsIGFyZ3VtZW50SW5kZXgsIGFyZ3VtZW50TmFtZSwg
ZnVuY3Rpb25JbnRlcmZhY2VOYW1lLCBmdW5jdGlvbk5hbWUpOwogICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiYW4gaW5zdGFuY2Ugb2YgIik7CiAgICAgYnVpbGRlci5hcHBlbmQoZXhwZWN0ZWRU
eXBlKTsKLSAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcigmc3RhdGUsIHNjb3BlLCBidWlsZGVy
LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoJnN0YXRlLCBzY29wZSwgKnN0cmluZyk7
CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCB0aHJvd0F0dHJpYnV0ZVR5cGVFcnJvcihKU0M6OkV4
ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6VGhyb3dTY29wZSYgc2NvcGUsIGNvbnN0IGNoYXIqIGludGVy
ZmFjZU5hbWUsIGNvbnN0IGNoYXIqIGF0dHJpYnV0ZU5hbWUsIGNvbnN0IGNoYXIqIGV4cGVjdGVk
VHlwZSkKQEAgLTI0NSw3ICsyNTEsOSBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIHRocm93UmVxdWly
ZWRNZW1iZXJUeXBlRXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OlRocgogICAgIGJ1
aWxkZXIuYXBwZW5kKG1lbWJlck5hbWUpOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIGlz
IHJlcXVpcmVkIGFuZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mICIpOwogICAgIGJ1aWxkZXIuYXBw
ZW5kKGV4cGVjdGVkVHlwZSk7Ci0gICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoJnN0YXRlLCBz
Y29wZSwgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKCZzdGF0ZSwgc2Nv
cGUsICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIEpTQzo6RW5jb2RlZEpTVmFsdWUgdGhy
b3dDb25zdHJ1Y3RvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHRVbmF2YWlsYWJsZUVycm9yKEpTQzo6
RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpUaHJvd1Njb3BlJiBzY29wZSwgY29uc3QgY2hhciogaW50
ZXJmYWNlTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25z
L0NvbWJpbmVkVVJMRmlsdGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9u
cy9Db21iaW5lZFVSTEZpbHRlcnMuY3BwCmluZGV4IDc1NThiMjIuLjI5ZGU1MDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29tYmluZWRVUkxGaWx0
ZXJzLmNwcApAQCAtMTA3LDcgKzEwNyw5IEBAIHN0YXRpYyBTdHJpbmcgcHJlZml4VHJlZVZlcnRl
eFRvU3RyaW5nKGNvbnN0IFByZWZpeFRyZWVWZXJ0ZXgmIHZlcnRleCwgY29uc3QgSGFzCiAgICAg
ICAgIH0KICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgcmV0dXJuIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyB2b2lk
IHJlY3Vyc2l2ZVByaW50KGNvbnN0IFByZWZpeFRyZWVWZXJ0ZXgmIHZlcnRleCwgY29uc3QgSGFz
aE1hcDxjb25zdCBQcmVmaXhUcmVlVmVydGV4KiwgQWN0aW9uTGlzdD4mIGFjdGlvbnMsIHVuc2ln
bmVkIGRlcHRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMv
Q29udGVudEV4dGVuc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9D
b250ZW50RXh0ZW5zaW9uLmNwcAppbmRleCA2MTBlMWI4Li44ZTUwZmY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uLmNwcApA
QCAtMTEwLDggKzExMCwxMSBAQCB2b2lkIENvbnRlbnRFeHRlbnNpb246OmNvbXBpbGVHbG9iYWxE
aXNwbGF5Tm9uZVN0eWxlU2hlZXQoKQogCiAgICAgbV9nbG9iYWxEaXNwbGF5Tm9uZVN0eWxlU2hl
ZXQgPSBTdHlsZVNoZWV0Q29udGVudHM6OmNyZWF0ZSgpOwogICAgIG1fZ2xvYmFsRGlzcGxheU5v
bmVTdHlsZVNoZWV0LT5zZXRJc1VzZXJTdHlsZVNoZWV0KHRydWUpOwotICAgIGlmICghbV9nbG9i
YWxEaXNwbGF5Tm9uZVN0eWxlU2hlZXQtPnBhcnNlU3RyaW5nKGNzcy50b1N0cmluZygpKSkKLSAg
ICAgICAgbV9nbG9iYWxEaXNwbGF5Tm9uZVN0eWxlU2hlZXQgPSBudWxscHRyOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGNzcy50b1N0cmluZygpKSB7CisgICAgICAgIGlmICghbV9nbG9iYWxEaXNw
bGF5Tm9uZVN0eWxlU2hlZXQtPnBhcnNlU3RyaW5nKCpzdHJpbmcpKQorICAgICAgICAgICAgbV9n
bG9iYWxEaXNwbGF5Tm9uZVN0eWxlU2hlZXQgPSBudWxscHRyOworICAgIH0gZWxzZQorICAgICAg
ICBDUkFTSCgpOwogCiAgICAgLy8gVGhlc2UgYWN0aW9ucyBkb24ndCBuZWVkIHRvIGJlIGFwcGxp
ZWQgaW5kaXZpZHVhbGx5IGFueSBtb3JlLiBUaGV5IHdpbGwgYWxsIGJlIGFwcGxpZWQgdG8gZXZl
cnkgcGFnZSBhcyBhIHByZWNvbXBpbGVkIHN0eWxlIHNoZWV0LgogICAgIG1fdW5pdmVyc2FsQWN0
aW9uc1dpdGhvdXRDb25kaXRpb25zLnJlbW92ZUFsbE1hdGNoaW5nKGluR2xvYmFsRGlzcGxheU5v
bmVTdHlsZVNoZWV0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50
ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwCmluZGV4IDVlMDM1YTYuLjVj
MzdlZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRl
bnRFeHRlbnNpb25Db21waWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVu
c2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcApAQCAtODAsNyArODAsMTAgQEAgc3Rh
dGljIHZvaWQgcmVzb2x2ZVBlbmRpbmdEaXNwbGF5Tm9uZUFjdGlvbnMoVmVjdG9yPFNlcmlhbGl6
ZWRBY3Rpb25CeXRlPiYgYWN0aW8KICAgICBmb3IgKGF1dG8mIHBlbmRpbmdEaXNwbGF5Tm9uZUFj
dGlvbnMgOiBtYXAudmFsdWVzKCkpIHsKICAgICAgICAgdWludDMyX3QgYWN0aW9uTG9jYXRpb24g
PSBhY3Rpb25zLnNpemUoKTsKICAgICAgICAgYWN0aW9ucy5hcHBlbmQoc3RhdGljX2Nhc3Q8U2Vy
aWFsaXplZEFjdGlvbkJ5dGU+KEFjdGlvblR5cGU6OkNTU0Rpc3BsYXlOb25lU2VsZWN0b3IpKTsK
LSAgICAgICAgc2VyaWFsaXplU3RyaW5nKGFjdGlvbnMsIHBlbmRpbmdEaXNwbGF5Tm9uZUFjdGlv
bnMuY29tYmluZWRTZWxlY3RvcnMudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHBlbmRpbmdEaXNwbGF5Tm9uZUFjdGlvbnMuY29tYmluZWRTZWxlY3RvcnMudG9TdHJpbmco
KSkKKyAgICAgICAgICAgIHNlcmlhbGl6ZVN0cmluZyhhY3Rpb25zLCAqc3RyaW5nKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgZm9yICh1aW50MzJfdCBjbGll
bnRMb2NhdGlvbiA6IHBlbmRpbmdEaXNwbGF5Tm9uZUFjdGlvbnMuY2xpZW50TG9jYXRpb25zKQog
ICAgICAgICAgICAgYWN0aW9uTG9jYXRpb25zW2NsaWVudExvY2F0aW9uXSA9IGFjdGlvbkxvY2F0
aW9uOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25z
L0NvbnRlbnRFeHRlbnNpb25TdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRl
eHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25TdHlsZVNoZWV0LmNwcAppbmRleCBlMjRhMzY2Li5k
ZTNlODU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250
ZW50RXh0ZW5zaW9uU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4
dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblN0eWxlU2hlZXQuY3BwCkBAIC02MCw3ICs2MCwxMCBA
QCBib29sIENvbnRlbnRFeHRlbnNpb25TdHlsZVNoZWV0OjphZGREaXNwbGF5Tm9uZVNlbGVjdG9y
KGNvbnN0IFN0cmluZyYgc2VsZWN0b3IsCiAgICAgY3NzLmFwcGVuZCgneycpOwogICAgIGNzcy5h
cHBlbmQoQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kOjpkaXNwbGF5Tm9uZUNTU1J1bGUoKSk7CiAg
ICAgY3NzLmFwcGVuZCgnfScpOwotICAgIG1fc3R5bGVTaGVldC0+Y29udGVudHMoKS5wYXJzZVN0
cmluZyhjc3MudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gY3NzLnRvU3RyaW5n
KCkpCisgICAgICAgIG1fc3R5bGVTaGVldC0+Y29udGVudHMoKS5wYXJzZVN0cmluZygqc3RyaW5n
KTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1Rlcm0uaCBiL1NvdXJj
ZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1Rlcm0uaAppbmRleCAwZDUxODMzLi42ZjMxOTRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9UZXJtLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVGVybS5oCkBAIC0yNDYsNyArMjQ2
LDkgQEAgaW5saW5lIFN0cmluZyBUZXJtOjp0b1N0cmluZygpIGNvbnN0CiAgICAgICAgIH0KICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoJ10nKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQocXVhbnRp
ZmllclRvU3RyaW5nKG1fcXVhbnRpZmllcikpOwotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0
cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAg
Y2FzZSBUZXJtVHlwZTo6R3JvdXA6IHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwpA
QCAtMjU1LDcgKzI1Nyw5IEBAIGlubGluZSBTdHJpbmcgVGVybTo6dG9TdHJpbmcoKSBjb25zdAog
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQodGVybS50b1N0cmluZygpKTsKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoJyknKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQocXVhbnRpZmllclRvU3Ry
aW5nKG1fcXVhbnRpZmllcikpOwotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwor
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgfQogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVl
LmNwcAppbmRleCBhMWE1OTdiLi4yZjI1YzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmNwcApAQCAtNDMsNyArNDMsOSBA
QCBTdHJpbmcgQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlOjpjdXN0b21DU1NUZXh0KCkg
Y29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZChtX2VuZFZhbHVlLT5jc3NUZXh0KCkpOwogICAg
IH0KICAgICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU0FuaW1hdGlvblRyaWdnZXJT
Y3JvbGxWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZSYg
b3RoZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQmFzaWNTaGFw
ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmNwcAppbmRleCAyNGYy
MzM0Li4xOTJhMDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQmFzaWNTaGFw
ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5jcHAKQEAgLTEw
Nyw3ICsxMDcsOSBAQCBzdGF0aWMgU3RyaW5nIGJ1aWxkQ2lyY2xlU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgcmFkaXVzLCBjb25zdCBTdHJpbmcmIGNlbnRlclgsIGNvbgogICAgICAgICByZXN1bHQuYXBw
ZW5kKGNlbnRlclkpOwogICAgIH0KICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiKSIpOwotICAg
IHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAog
U3RyaW5nIENTU0Jhc2ljU2hhcGVDaXJjbGU6OmNzc1RleHQoKSBjb25zdApAQCAtMTY0LDcgKzE2
Niw5IEBAIHN0YXRpYyBTdHJpbmcgYnVpbGRFbGxpcHNlU3RyaW5nKGNvbnN0IFN0cmluZyYgcmFk
aXVzWCwgY29uc3QgU3RyaW5nJiByYWRpdXNZLCBjCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2Vu
dGVyWSk7CiAgICAgfQogICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCIpIik7Ci0gICAgcmV0dXJu
IHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcg
Q1NTQmFzaWNTaGFwZUVsbGlwc2U6OmNzc1RleHQoKSBjb25zdApAQCAtMjI0LDcgKzIyOCw5IEBA
IHN0YXRpYyBTdHJpbmcgYnVpbGRQYXRoU3RyaW5nKGNvbnN0IFdpbmRSdWxlJiB3aW5kUnVsZSwg
Y29uc3QgU3RyaW5nJiBwYXRoLCBjb25zCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoYm94KTsKICAg
ICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIFN0cmluZyBDU1NCYXNpY1NoYXBlUGF0aDo6Y3NzVGV4dCgpIGNvbnN0CkBAIC0y
ODAsNyArMjg2LDkgQEAgc3RhdGljIFN0cmluZyBidWlsZFBvbHlnb25TdHJpbmcoY29uc3QgV2lu
ZFJ1bGUmIHdpbmRSdWxlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYKIAogICAgIHJlc3VsdC5hcHBl
bmQoJyknKTsKIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogU3RyaW5nIENTU0Jhc2ljU2hhcGVQb2x5Z29uOjpjc3NUZXh0KCkgY29u
c3QKQEAgLTM3Nyw3ICszODUsOSBAQCBzdGF0aWMgU3RyaW5nIGJ1aWxkSW5zZXRTdHJpbmcoY29u
c3QgU3RyaW5nJiB0b3AsIGNvbnN0IFN0cmluZyYgcmlnaHQsIGNvbnN0IFN0cgogICAgICAgICB9
CiAgICAgfQogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCB1
cGRhdGVDb3JuZXJSYWRpdXNXaWR0aEFuZEhlaWdodChDU1NQcmltaXRpdmVWYWx1ZSogY29ybmVy
LCBTdHJpbmcmIHdpZHRoLCBTdHJpbmcmIGhlaWdodCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
YWxjdWxhdGlvblZhbHVlLmNwcAppbmRleCBiNzU4MzAxLi5iOTFjMGY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwCkBAIC0xNjIsNyArMTYyLDkgQEAgc3Rh
dGljIFN0cmluZyBidWlsZENzc1RleHQoY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKQogICAgIHJl
c3VsdC5hcHBlbmQoZXhwcmVzc2lvbik7CiAgICAgaWYgKGV4cHJlc3Npb25IYXNTaW5nbGVUZXJt
KQogICAgICAgICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQ1NTQ2FsY1ZhbHVlOjpj
dXN0b21DU1NUZXh0KCkgY29uc3QKQEAgLTU2Myw3ICs1NjUsOSBAQCBwcml2YXRlOgogICAgICAg
ICB9CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKIAotICAgICAgICByZXR1cm4gcmVzdWx0
LnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygp
KQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQog
CiAgICAgU3RyaW5nIGN1c3RvbUNTU1RleHQoKSBjb25zdCBmaW5hbApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBlZWFlNDI2
Li4xYTQ0ZDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcApAQCAtMTY5Myw3ICsxNjkzLDkgQEAgU3RyaW5nIENTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbjo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQo
JzsnKTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IENTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbjo6c2V0Q3NzVGV4dChjb25zdCBTdHJpbmcmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
cm9zc2ZhZGVWYWx1ZS5jcHAKaW5kZXggOWViNmYwZi4uYWY5MWMyMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCkBAIC0xMDIsNyArMTAyLDkgQEAgU3RyaW5nIENT
U0Nyb3NzZmFkZVZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICByZXN1bHQuYXBwZW5k
TGl0ZXJhbCgiLCAiKTsKICAgICByZXN1bHQuYXBwZW5kKG1fcGVyY2VudGFnZVZhbHVlLT5jc3NU
ZXh0KCkpOwogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIEZsb2F0U2l6ZSBDU1NDcm9zc2Zh
ZGVWYWx1ZTo6Zml4ZWRTaXplKGNvbnN0IFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwCmluZGV4IDFiNmQ3ZjIuLjBlZWVl
MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAKQEAgLTYx
LDcgKzYxLDkgQEAgU3RyaW5nIENTU0N1cnNvckltYWdlVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBj
b25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKCcgJyk7CiAgICAgICAgIHJlc3VsdC5hcHBlbmRO
dW1iZXIobV9ob3RTcG90LnkoKSk7CiAgICAgfQotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU1ZHQ3Vyc29yRWxlbWVudCogQ1NTQ3Vy
c29ySW1hZ2VWYWx1ZTo6dXBkYXRlQ3Vyc29yRWxlbWVudChjb25zdCBEb2N1bWVudCYgZG9jdW1l
bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3VzdG9tSWRlbnRWYWx1ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3VzdG9tSWRlbnRWYWx1ZS5jcHAKaW5kZXggMjZk
NmUzYi4uZjVlZWI3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1c3RvbUlk
ZW50VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXN0b21JZGVudFZhbHVl
LmNwcApAQCAtNTYsNyArNTYsOSBAQCBTdHJpbmcgQ1NTQ3VzdG9tSWRlbnRWYWx1ZTo6Y3VzdG9t
Q1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIHJldHVybiBnZXRQcm9wZXJ0eU5hbWVBdG9taWNTdHJp
bmcobV9wcm9wZXJ0eUlkKTsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgc2VyaWFs
aXplSWRlbnRpZmllcihtX3N0cmluZywgYnVpbGRlcik7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcAppbmRleCBl
YWFiNzAzLi4yMzBlMDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVy
SW1hZ2VWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFs
dWUuY3BwCkBAIC01Myw3ICs1Myw5IEBAIFN0cmluZyBDU1NGaWx0ZXJJbWFnZVZhbHVlOjpjdXN0
b21DU1NUZXh0KCkgY29uc3QKICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKICAgICBy
ZXN1bHQuYXBwZW5kKG1fZmlsdGVyVmFsdWUtPmNzc1RleHQoKSk7CiAgICAgcmVzdWx0LmFwcGVu
ZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogRmxvYXRTaXplIENTU0ZpbHRlckltYWdlVmFsdWU6OmZpeGVkU2l6ZShjb25z
dCBSZW5kZXJFbGVtZW50KiByZW5kZXJlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250RmFjZVJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVs
ZS5jcHAKaW5kZXggMGRkYTFiMi4uODU5NDZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRGYWNlUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRG
YWNlUnVsZS5jcHAKQEAgLTU3LDcgKzU3LDkgQEAgU3RyaW5nIENTU0ZvbnRGYWNlUnVsZTo6Y3Nz
VGV4dCgpIGNvbnN0CiAgICAgaWYgKCFkZXNjcy5pc0VtcHR5KCkpCiAgICAgICAgIHJlc3VsdC5h
cHBlbmQoJyAnKTsKICAgICByZXN1bHQuYXBwZW5kKCd9Jyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIENTU0ZvbnRGYWNl
UnVsZTo6cmVhdHRhY2goU3R5bGVSdWxlQmFzZSYgcnVsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NGb250RmFjZVNyY1ZhbHVlLmNwcAppbmRleCA4MWQ4YTc1Li4yZjM0NjFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCkBAIC04MSw3ICs4MSw5IEBAIFN0
cmluZyBDU1NGb250RmFjZVNyY1ZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAg
cmVzdWx0LmFwcGVuZChtX2Zvcm1hdCk7CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKICAg
ICB9Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogCiBib29sIENTU0ZvbnRGYWNlU3JjVmFsdWU6OnRyYXZlcnNlU3VicmVzb3VyY2VzKGNv
bnN0IFdURjo6RnVuY3Rpb248Ym9vbCAoY29uc3QgQ2FjaGVkUmVzb3VyY2UmKT4mIGhhbmRsZXIp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZlYXR1cmVWYWx1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZlYXR1cmVWYWx1ZS5jcHAKaW5kZXgg
N2ZmMDdmMy4uNDc0NjIyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRG
ZWF0dXJlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmVhdHVyZVZh
bHVlLmNwcApAQCAtNTAsNyArNTAsOSBAQCBTdHJpbmcgQ1NTRm9udEZlYXR1cmVWYWx1ZTo6Y3Vz
dG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fdmFsdWUpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDU1NGb250
RmVhdHVyZVZhbHVlOjplcXVhbHMoY29uc3QgQ1NTRm9udEZlYXR1cmVWYWx1ZSYgb3RoZXIpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFN0eWxlUmFuZ2VWYWx1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFN0eWxlUmFuZ2VWYWx1ZS5jcHAKaW5k
ZXggMGNkY2RiZi4uZWE2NjZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Zv
bnRTdHlsZVJhbmdlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U3R5
bGVSYW5nZVZhbHVlLmNwcApAQCAtMzksNyArMzksOSBAQCBTdHJpbmcgQ1NTRm9udFN0eWxlUmFu
Z2VWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgYnVpbGRlci5hcHBlbmQoZm9udFN0
eWxlVmFsdWUtPmNzc1RleHQoKSk7CiAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICBidWls
ZGVyLmFwcGVuZChvYmxpcXVlVmFsdWVzLT5jc3NUZXh0KCkpOwotICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU0ZvbnRT
dHlsZVJhbmdlVmFsdWU6OmVxdWFscyhjb25zdCBDU1NGb250U3R5bGVSYW5nZVZhbHVlJiBvdGhl
cikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U3R5bGVWYWx1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFN0eWxlVmFsdWUuY3BwCmluZGV4IDI4
NTBlMjMuLjhjNGU4NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U3R5
bGVWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTdHlsZVZhbHVlLmNw
cApAQCAtMzksNyArMzksOSBAQCBTdHJpbmcgQ1NTRm9udFN0eWxlVmFsdWU6OmN1c3RvbUNTU1Rl
eHQoKSBjb25zdAogICAgIGJ1aWxkZXIuYXBwZW5kKGZvbnRTdHlsZVZhbHVlLT5jc3NUZXh0KCkp
OwogICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgYnVpbGRlci5hcHBlbmQob2JsaXF1ZVZh
bHVlLT5jc3NUZXh0KCkpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU0ZvbnRTdHlsZVZhbHVlOjplcXVhbHMoY29u
c3QgQ1NTRm9udFN0eWxlVmFsdWUmIG90aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFZh
bHVlLmNwcAppbmRleCA3NjZjMTEzLi4xY2Y3OGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRm9udFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFZh
bHVlLmNwcApAQCAtNjUsNyArNjUsOSBAQCBTdHJpbmcgQ1NTRm9udFZhbHVlOjpjdXN0b21DU1NU
ZXh0KCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZChmYW1pbHktPmNzc1RleHQoKSk7CiAg
ICAgfQogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBib29sIENTU0ZvbnRWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0ZvbnRWYWx1ZSYg
b3RoZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFZhcmlh
dGlvblZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUu
Y3BwCmluZGV4IGEyMDgyNjEuLmNkNWIzMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250VmFyaWF0aW9uVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250VmFyaWF0aW9uVmFsdWUuY3BwCkBAIC00OCw3ICs0OCw5IEBAIFN0cmluZyBDU1NGb250VmFy
aWF0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVu
ZChjKTsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIicgIik7CiAgICAgYnVpbGRlci5hcHBl
bmROdW1iZXIobV92YWx1ZSk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTRm9udFZhcmlhdGlvblZhbHVlOjplcXVh
bHMoY29uc3QgQ1NTRm9udFZhcmlhdGlvblZhbHVlJiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGdW5jdGlvblZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGdW5jdGlvblZhbHVlLmNwcAppbmRleCA3NWVmMGMxLi5iYmRkZmYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0Z1bmN0aW9uVmFsdWUuY3BwCkBAIC0zNyw3ICszNyw5IEBAIFN0cmlu
ZyBDU1NGdW5jdGlvblZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICByZXN1bHQuYXBw
ZW5kKCcoJyk7CiAgICAgcmVzdWx0LmFwcGVuZChDU1NWYWx1ZUxpc3Q6OmN1c3RvbUNTU1RleHQo
KSk7CiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dy
YWRpZW50VmFsdWUuY3BwCmluZGV4IGVlZjI5NWIuLjA4MzM3ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAKQEAgLTY4NCw3ICs2ODQsOSBAQCBTdHJpbmcgQ1NTTGlu
ZWFyR3JhZGllbnRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgfQogCiAgICAgcmVz
dWx0LmFwcGVuZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogLy8gQ29tcHV0ZSB0aGUgZW5kcG9pbnRzIHNvIHRoYXQgYSBn
cmFkaWVudCBvZiB0aGUgZ2l2ZW4gYW5nbGUgY292ZXJzIGEgYm94IG9mIHRoZSBnaXZlbiBzaXpl
LgpAQCAtMTAwMiw3ICsxMDA0LDkgQEAgU3RyaW5nIENTU1JhZGlhbEdyYWRpZW50VmFsdWU6OmN1
c3RvbUNTU1RleHQoKSBjb25zdAogICAgIH0KIAogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKLSAg
ICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IGZsb2F0IENTU1JhZGlhbEdyYWRpZW50VmFsdWU6OnJlc29sdmVSYWRpdXMoQ1NTUHJpbWl0aXZl
VmFsdWUmIHJhZGl1cywgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSYgY29udmVyc2lv
bkRhdGEsIGZsb2F0KiB3aWR0aE9ySGVpZ2h0KQpAQCAtMTMzMCw3ICsxMzM0LDkgQEAgU3RyaW5n
IENTU0NvbmljR3JhZGllbnRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgfQogICAg
IAogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFJlZjxHcmFkaWVudD4gQ1NTQ29uaWNHcmFk
aWVudFZhbHVlOjpjcmVhdGVHcmFkaWVudChSZW5kZXJFbGVtZW50JiwgY29uc3QgRmxvYXRTaXpl
JikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkQXV0b1JlcGVhdFZhbHVl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNwcAppbmRl
eCBkNWJjNDQ5Li5mZDc5MGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3Jp
ZEF1dG9SZXBlYXRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRBdXRv
UmVwZWF0VmFsdWUuY3BwCkBAIC00Myw3ICs0Myw5IEBAIFN0cmluZyBDU1NHcmlkQXV0b1JlcGVh
dFZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICByZXN1bHQuYXBwZW5kKCIsICIpOwog
ICAgIHJlc3VsdC5hcHBlbmQoQ1NTVmFsdWVMaXN0OjpjdXN0b21DU1NUZXh0KCkpOwogICAgIHJl
c3VsdC5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcAppbmRleCBlMGI3ODY1
Li44YmMzZmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRl
QXJlYXNWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFy
ZWFzVmFsdWUuY3BwCkBAIC04MCw3ICs4MCw5IEBAIFN0cmluZyBDU1NHcmlkVGVtcGxhdGVBcmVh
c1ZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgaWYgKHJvdyAhPSBtX3Jvd0Nv
dW50IC0gMSkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgfQotICAgIHJl
dHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBi
b29sIENTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWU6OmVxdWFscyhjb25zdCBDU1NHcmlkVGVtcGxh
dGVBcmVhc1ZhbHVlJiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NJbWFnZVNldFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZh
bHVlLmNwcAppbmRleCBhOTdkYzIxLi5lMzc1MGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0lt
YWdlU2V0VmFsdWUuY3BwCkBAIC0xNDYsNyArMTQ2LDkgQEAgU3RyaW5nIENTU0ltYWdlU2V0VmFs
dWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIH0KIAogICAgIHJlc3VsdC5hcHBlbmQoJykn
KTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
cmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIGJvb2wgQ1NTSW1hZ2VTZXRWYWx1ZTo6dHJhdmVyc2VTdWJyZXNvdXJjZXMoY29uc3Qg
V1RGOjpGdW5jdGlvbjxib29sIChjb25zdCBDYWNoZWRSZXNvdXJjZSYpPiYgaGFuZGxlcikgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmNwcAppbmRleCA0YzY2NjEzLi5mOWFhZWVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUuY3BwCkBAIC03Miw3ICs3Miw5IEBAIFN0
cmluZyBDU1NJbXBvcnRSdWxlOjpjc3NUZXh0KCkgY29uc3QKICAgICB9CiAgICAgcmVzdWx0LmFw
cGVuZCgnOycpOwogICAgIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogQ1NTU3R5bGVTaGVldCogQ1NTSW1wb3J0UnVsZTo6c3R5bGVT
aGVldCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVS
dWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZVJ1bGUuY3BwCmluZGV4IDgx
ZTk5NTguLmRjYTNmNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFt
ZVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZVJ1bGUuY3BwCkBA
IC02Nyw3ICs2Nyw5IEBAIFN0cmluZyBTdHlsZVJ1bGVLZXlmcmFtZTo6a2V5VGV4dCgpIGNvbnN0
CiAgICAgICAgIGtleVRleHQuYXBwZW5kKCclJyk7CiAgICAgfQogCi0gICAgcmV0dXJuIGtleVRl
eHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBrZXlUZXh0LnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAgICAgCiBib29sIFN0
eWxlUnVsZUtleWZyYW1lOjpzZXRLZXlUZXh0KGNvbnN0IFN0cmluZyYga2V5VGV4dCkKQEAgLTkw
LDcgKzkyLDkgQEAgU3RyaW5nIFN0eWxlUnVsZUtleWZyYW1lOjpjc3NUZXh0KCkgY29uc3QKICAg
ICBpZiAoIWRlY2xzLmlzRW1wdHkoKSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICcpOwogICAg
IHJlc3VsdC5hcHBlbmQoJ30nKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIENTU0tleWZyYW1lUnVsZTo6Q1NTS2V5ZnJhbWVSdWxl
KFN0eWxlUnVsZUtleWZyYW1lJiBrZXlmcmFtZSwgQ1NTS2V5ZnJhbWVzUnVsZSogcGFyZW50KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lc1J1bGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lc1J1bGUuY3BwCmluZGV4IDlmMDAwZDkuLjc3YjE4
MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZXNSdWxlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVzUnVsZS5jcHAKQEAgLTE5OCw3ICsx
OTgsOSBAQCBTdHJpbmcgQ1NTS2V5ZnJhbWVzUnVsZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJ1xuJyk7CiAgICAgfQogICAgIHJlc3VsdC5hcHBlbmQoJ30nKTsKLSAg
ICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IHVuc2lnbmVkIENTU0tleWZyYW1lc1J1bGU6Omxlbmd0aCgpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTTGluZUJveENvbnRhaW5WYWx1ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTTGluZUJveENvbnRhaW5WYWx1ZS5jcHAKaW5kZXggMTlmZGY4Yi4uM2RlYjNi
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xpbmVCb3hDb250YWluVmFsdWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMaW5lQm94Q29udGFpblZhbHVlLmNwcApA
QCAtNzMsNyArNzMsOSBAQCBTdHJpbmcgQ1NTTGluZUJveENvbnRhaW5WYWx1ZTo6Y3VzdG9tQ1NT
VGV4dCgpIGNvbnN0CiAgICAgICAgIHRleHQuYXBwZW5kTGl0ZXJhbCgiaW5pdGlhbC1sZXR0ZXIi
KTsKICAgICB9CiAKLSAgICByZXR1cm4gdGV4dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IHRleHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU01hcmt1cC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWFya3VwLmNwcAppbmRleCA4MWZlODg4Li42MDlj
NzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWFya3VwLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWFya3VwLmNwcApAQCAtMTg2LDcgKzE4Niw5IEBAIFN0cmlu
ZyBzZXJpYWxpemVTdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7CiAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwogICAgIHNlcmlhbGl6ZVN0cmluZyhzdHJpbmcsIGJ1aWxkZXIpOwotICAg
IHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiBTdHJpbmcgc2VyaWFsaXplVVJMKGNvbnN0IFN0cmluZyYgc3RyaW5nKQpAQCAtMjA0LDcgKzIw
Niw5IEBAIFN0cmluZyBzZXJpYWxpemVBc1N0cmluZ09yQ3VzdG9tSWRlbnQoY29uc3QgU3RyaW5n
JiBzdHJpbmcpCiAgICAgaWYgKGlzQ1NTVG9rZW5pemVySWRlbnRpZmllcihzdHJpbmcpKSB7CiAg
ICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgc2VyaWFsaXplSWRlbnRpZmll
cihzdHJpbmcsIGJ1aWxkZXIpOwotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwor
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgcmV0dXJuIHNl
cmlhbGl6ZVN0cmluZyhzdHJpbmcpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU01lZGlhUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmNwcApp
bmRleCBiMDk0ZWRkLi4xNzRmNWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
TWVkaWFSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmNwcApA
QCAtNTcsNyArNTcsOSBAQCBTdHJpbmcgQ1NTTWVkaWFSdWxlOjpjc3NUZXh0KCkgY29uc3QKICAg
ICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgieyBcbiIpOwogICAgIGFwcGVuZENzc1RleHRGb3JJdGVt
cyhyZXN1bHQpOwogICAgIHJlc3VsdC5hcHBlbmQoJ30nKTsKLSAgICByZXR1cm4gcmVzdWx0LnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIE1lZGlhTGlzdCogQ1NTTWVk
aWFSdWxlOjptZWRpYSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
TmFtZXNwYWNlUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTmFtZXNwYWNlUnVsZS5j
cHAKaW5kZXggM2QzZWM2Zi4uNzA2ODk3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU05hbWVzcGFjZVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NOYW1lc3Bh
Y2VSdWxlLmNwcApAQCAtNjAsNyArNjAsOSBAQCBTdHJpbmcgQ1NTTmFtZXNwYWNlUnVsZTo6Y3Nz
VGV4dCgpIGNvbnN0CiAgICAgcmVzdWx0LmFwcGVuZCgidXJsKCIpOwogICAgIHJlc3VsdC5hcHBl
bmQoc2VyaWFsaXplU3RyaW5nKG5hbWVzcGFjZVVSSSgpKSk7CiAgICAgcmVzdWx0LmFwcGVuZCgi
KTsiKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIHZvaWQgQ1NTTmFtZXNwYWNlUnVsZTo6cmVhdHRhY2goU3R5bGVSdWxlQmFzZSYp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFnZVJ1bGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhZ2VSdWxlLmNwcAppbmRleCA0N2NmNDU2Li5lNjlkYTVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFnZVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYWdlUnVsZS5jcHAKQEAgLTY0LDcgKzY0LDkgQEAgU3RyaW5nIENTU1Bh
Z2VSdWxlOjpzZWxlY3RvclRleHQoKSBjb25zdAogICAgICAgICAgICAgdGV4dC5hcHBlbmQocGFn
ZVNwZWNpZmljYXRpb24pOwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiB0ZXh0LnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdGV4dC50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIENTU1BhZ2VSdWxlOjpzZXRT
ZWxlY3RvclRleHQoY29uc3QgU3RyaW5nJiBzZWxlY3RvclRleHQpCkBAIC05MCw3ICs5Miw5IEBA
IFN0cmluZyBDU1NQYWdlUnVsZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgaWYgKCFkZWNscy5pc0Vt
cHR5KCkpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAnKTsKICAgICByZXN1bHQuYXBwZW5kKCd9
Jyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogCiB2b2lkIENTU1BhZ2VSdWxlOjpyZWF0dGFjaChTdHlsZVJ1bGVCYXNlJiBydWxlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKaW5kZXggYTc2MTI3Ni4uODNl
MTZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCkBAIC0xMDQ1
LDcgKzEwNDUsOSBAQCBBTFdBWVNfSU5MSU5FIFN0cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6Zm9y
bWF0TnVtYmVyRm9yQ3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQo
U3RyaW5nKG1fdmFsdWUuc3RyaW5nKSk7CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKIAot
ICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
ICAgIENSQVNIKCk7CiAgICAgfQogICAgIGNhc2UgQ1NTX0NPVU5URVJfTkFNRToKICAgICAgICAg
cmV0dXJuICJjb3VudGVyKCIgKyBTdHJpbmcobV92YWx1ZS5zdHJpbmcpICsgJyknOwpAQCAtMTA2
OSw3ICsxMDcxLDkgQEAgQUxXQVlTX0lOTElORSBTdHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6OmZv
cm1hdE51bWJlckZvckN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAgICB9CiAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJyknKTsKIAotICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7Cisg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIGNhc2UgQ1NTX1JF
Q1Q6CiAgICAgICAgIHJldHVybiByZWN0VmFsdWUoKS0+Y3NzVGV4dCgpOwpAQCAtMTExMiw3ICsx
MTE2LDkgQEAgQUxXQVlTX0lOTElORSBTdHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6OmZvcm1hdE51
bWJlckZvckN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAgICAgICAgfQogICAgICAgICAgICAg
cmVzdWx0LmFwcGVuZCgnKScpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQudG9T
dHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAjZW5k
aWYKICAgICBjYXNlIENTU19DQUxDOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1Byb3BlcnR5U291cmNlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlT
b3VyY2VEYXRhLmNwcAppbmRleCA3NWI3OTkwLi5mZDJlODJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmNwcApAQCAtOTYsNyArOTYsOSBAQCBTdHJpbmcg
Q1NTUHJvcGVydHlTb3VyY2VEYXRhOjp0b1N0cmluZygpIGNvbnN0CiAgICAgaWYgKGltcG9ydGFu
dCkKICAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIiAhaW1wb3J0YW50Iik7CiAgICAgcmVz
dWx0LmFwcGVuZCgnOycpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogdW5zaWduZWQgQ1NTUHJvcGVydHlTb3VyY2VEYXRhOjpoYXNo
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCmluZGV4IDFmZTQyY2QuLjU2YmZj
MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcApAQCAtNzI2LDI2ICs3MjYsMzEgQEAg
U3RyaW5nIENTU1NlbGVjdG9yOjpzZWxlY3RvclRleHQoY29uc3QgU3RyaW5nJiByaWdodFNpZGUp
IGNvbnN0CiAgICAgICAgIGNzID0gY3MtPnRhZ0hpc3RvcnkoKTsKICAgICB9CiAKKyAgICBTdHJp
bmcgc3RyaW5nOworICAgIGlmIChhdXRvIHMgPSBzdHIudG9TdHJpbmcoKSkKKyAgICAgICAgc3Ry
aW5nID0gKnM7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIGlmIChjb25zdCBDU1NT
ZWxlY3RvciogdGFnSGlzdG9yeSA9IGNzLT50YWdIaXN0b3J5KCkpIHsKICAgICAgICAgc3dpdGNo
IChjcy0+cmVsYXRpb24oKSkgewogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpEZXNjZW5kYW50
U3BhY2U6Ci0gICAgICAgICAgICByZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0b3JUZXh0KCIgIiAr
IHN0ci50b1N0cmluZygpICsgcmlnaHRTaWRlKTsKKyAgICAgICAgICAgIHJldHVybiB0YWdIaXN0
b3J5LT5zZWxlY3RvclRleHQoIiAiICsgc3RyaW5nICsgcmlnaHRTaWRlKTsKICAgICAgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6Q2hpbGQ6Ci0gICAgICAgICAgICByZXR1cm4gdGFnSGlzdG9yeS0+c2Vs
ZWN0b3JUZXh0KCIgPiAiICsgc3RyLnRvU3RyaW5nKCkgKyByaWdodFNpZGUpOworICAgICAgICAg
ICAgcmV0dXJuIHRhZ0hpc3RvcnktPnNlbGVjdG9yVGV4dCgiID4gIiArIHN0cmluZyArIHJpZ2h0
U2lkZSk7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkRpcmVjdEFkamFjZW50OgotICAgICAg
ICAgICAgcmV0dXJuIHRhZ0hpc3RvcnktPnNlbGVjdG9yVGV4dCgiICsgIiArIHN0ci50b1N0cmlu
ZygpICsgcmlnaHRTaWRlKTsKKyAgICAgICAgICAgIHJldHVybiB0YWdIaXN0b3J5LT5zZWxlY3Rv
clRleHQoIiArICIgKyBzdHJpbmcgKyByaWdodFNpZGUpOwogICAgICAgICBjYXNlIENTU1NlbGVj
dG9yOjpJbmRpcmVjdEFkamFjZW50OgotICAgICAgICAgICAgcmV0dXJuIHRhZ0hpc3RvcnktPnNl
bGVjdG9yVGV4dCgiIH4gIiArIHN0ci50b1N0cmluZygpICsgcmlnaHRTaWRlKTsKKyAgICAgICAg
ICAgIHJldHVybiB0YWdIaXN0b3J5LT5zZWxlY3RvclRleHQoIiB+ICIgKyBzdHJpbmcgKyByaWdo
dFNpZGUpOwogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpTdWJzZWxlY3RvcjoKICAgICAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogI2lmIEFTU0VSVF9ESVNBQkxFRAogICAgICAgICAg
ICAgRkFMTFRIUk9VR0g7CiAjZW5kaWYKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6U2hhZG93
RGVzY2VuZGFudDoKLSAgICAgICAgICAgIHJldHVybiB0YWdIaXN0b3J5LT5zZWxlY3RvclRleHQo
c3RyLnRvU3RyaW5nKCkgKyByaWdodFNpZGUpOworICAgICAgICAgICAgcmV0dXJuIHRhZ0hpc3Rv
cnktPnNlbGVjdG9yVGV4dChzdHJpbmcgKyByaWdodFNpZGUpOwogICAgICAgICB9CiAgICAgfQot
ICAgIHJldHVybiBzdHIudG9TdHJpbmcoKSArIHJpZ2h0U2lkZTsKKyAgICByZXR1cm4gc3RyaW5n
ICsgcmlnaHRTaWRlOwogfQogCiB2b2lkIENTU1NlbGVjdG9yOjpzZXRBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdmFsdWUsIGJvb2wgaXNDYXNlSW5zZW5zaXRpdmUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTZWxlY3Rvckxpc3QuY3BwCmluZGV4IDU3ZWZhNjcuLmFlMzMwMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxpc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxpc3QuY3BwCkBAIC0xMzgsNyArMTM4LDkgQEAgU3RyaW5n
IENTU1NlbGVjdG9yTGlzdDo6c2VsZWN0b3JzVGV4dCgpIGNvbnN0CiB7CiAgICAgU3RyaW5nQnVp
bGRlciByZXN1bHQ7CiAgICAgYnVpbGRTZWxlY3RvcnNUZXh0KHJlc3VsdCk7Ci0gICAgcmV0dXJu
IHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIENT
U1NlbGVjdG9yTGlzdDo6YnVpbGRTZWxlY3RvcnNUZXh0KFN0cmluZ0J1aWxkZXImIHN0cmluZ0J1
aWxkZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2hhZG93VmFs
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NoYWRvd1ZhbHVlLmNwcAppbmRleCA5NDk0
N2Q3Li5lMjljODVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2hhZG93VmFs
dWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTaGFkb3dWYWx1ZS5jcHAKQEAgLTY5
LDcgKzY5LDkgQEAgU3RyaW5nIENTU1NoYWRvd1ZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QK
ICAgICAgICAgdGV4dC5hcHBlbmQoc3R5bGUtPmNzc1RleHQoKSk7CiAgICAgfQogCi0gICAgcmV0
dXJuIHRleHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0ZXh0LnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NT
U2hhZG93VmFsdWU6OmVxdWFscyhjb25zdCBDU1NTaGFkb3dWYWx1ZSYgb3RoZXIpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUuY3BwCmluZGV4IGJiOGQyMWMuLjU4MDhmZDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUuY3BwCkBAIC0xMjAsNyArMTIwLDkgQEAgU3RyaW5nIENT
U1N0eWxlUnVsZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgaWYgKCFkZWNscy5pc0VtcHR5KCkpCiAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoJyAnKTsKICAgICByZXN1bHQuYXBwZW5kKCd9Jyk7Ci0gICAg
cmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2
b2lkIENTU1N0eWxlUnVsZTo6cmVhdHRhY2goU3R5bGVSdWxlQmFzZSYgcnVsZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZVNoZWV0LmNwcAppbmRleCAxZWNjNWJhLi44Njk4NGZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCkBAIC0zMTYsOSArMzE2LDEyIEBAIEV4Y2VwdGlvbk9y
PGludD4gQ1NTU3R5bGVTaGVldDo6YWRkUnVsZShjb25zdCBTdHJpbmcmIHNlbGVjdG9yLCBjb25z
dCBTdHJpbmcmIHN0CiAgICAgaWYgKCFzdHlsZS5pc0VtcHR5KCkpCiAgICAgICAgIHRleHQuYXBw
ZW5kKCcgJyk7CiAgICAgdGV4dC5hcHBlbmQoJ30nKTsKLSAgICBhdXRvIGluc2VydFJ1bGVSZXN1
bHQgPSBpbnNlcnRSdWxlKHRleHQudG9TdHJpbmcoKSwgaW5kZXgudmFsdWVfb3IobGVuZ3RoKCkp
KTsKLSAgICBpZiAoaW5zZXJ0UnVsZVJlc3VsdC5oYXNFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0
dXJuIGluc2VydFJ1bGVSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IHRleHQudG9TdHJpbmcoKSkgeworICAgICAgICBhdXRvIGluc2VydFJ1bGVSZXN1bHQg
PSBpbnNlcnRSdWxlKCpzdHJpbmcsIGluZGV4LnZhbHVlX29yKGxlbmd0aCgpKSk7CisgICAgICAg
IGlmIChpbnNlcnRSdWxlUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJu
IGluc2VydFJ1bGVSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOworICAgIH0gZWxzZQorICAgICAg
ICBDUkFTSCgpOwogICAgIAogICAgIC8vIEFzIHBlciBNaWNyb3NvZnQgZG9jdW1lbnRhdGlvbiwg
YWx3YXlzIHJldHVybiAtMS4KICAgICByZXR1cm4gLTE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3VwcG9ydHNSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdXBw
b3J0c1J1bGUuY3BwCmluZGV4IGUxM2UxM2IuLmZjYmUzMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTdXBwb3J0c1J1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdXBwb3J0c1J1bGUuY3BwCkBAIC01MCw3ICs1MCw5IEBAIFN0cmluZyBDU1NTdXBwb3J0c1J1
bGU6OmNzc1RleHQoKSBjb25zdAogICAgIGFwcGVuZENzc1RleHRGb3JJdGVtcyhyZXN1bHQpOwog
ICAgIHJlc3VsdC5hcHBlbmQoJ30nKTsKIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIENTU1N1cHBvcnRzUnVsZTo6Y29u
ZGl0aW9uVGV4dCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVGlt
aW5nRnVuY3Rpb25WYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVGltaW5nRnVuY3Rp
b25WYWx1ZS5jcHAKaW5kZXggOTBlZjZjZC4uMDkyODgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NUaW1pbmdGdW5jdGlvblZhbHVlLmNwcApAQCAtNDIsNyArNDIsOSBAQCBTdHJpbmcg
Q1NTQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvblZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QK
ICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgIik7CiAgICAgYnVpbGRlci5hcHBlbmROdW1i
ZXIobV95Mik7CiAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsgICAgCi0gICAgcmV0dXJuIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTQ3Vi
aWNCZXppZXJUaW1pbmdGdW5jdGlvblZhbHVlOjplcXVhbHMoY29uc3QgQ1NTQ3ViaWNCZXppZXJU
aW1pbmdGdW5jdGlvblZhbHVlJiBvdGhlcikgY29uc3QKQEAgLTU5LDcgKzYxLDkgQEAgU3RyaW5n
IENTU1N0ZXBzVGltaW5nRnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCBzdGFydCkiKTsKICAgICBlbHNlCiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCBlbmQpIik7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTU3RlcHNUaW1p
bmdGdW5jdGlvblZhbHVlOjplcXVhbHMoY29uc3QgQ1NTU3RlcHNUaW1pbmdGdW5jdGlvblZhbHVl
JiBvdGhlcikgY29uc3QKQEAgLTczLDcgKzc3LDkgQEAgU3RyaW5nIENTU0ZyYW1lc1RpbWluZ0Z1
bmN0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIGJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiZnJhbWVzKCIpOwogICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fZnJhbWVzKTsKICAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIikiKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDU1NGcmFtZXNUaW1pbmdG
dW5jdGlvblZhbHVlOjplcXVhbHMoY29uc3QgQ1NTRnJhbWVzVGltaW5nRnVuY3Rpb25WYWx1ZSYg
b3RoZXIpIGNvbnN0CkBAIC05Myw3ICs5OSw5IEBAIFN0cmluZyBDU1NTcHJpbmdUaW1pbmdGdW5j
dGlvblZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICBidWlsZGVyLmFwcGVuZCgnICcp
OwogICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1faW5pdGlhbFZlbG9jaXR5KTsKICAgICBidWls
ZGVyLmFwcGVuZCgnKScpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU1NwcmluZ1RpbWluZ0Z1bmN0aW9uVmFsdWU6
OmVxdWFscyhjb25zdCBDU1NTcHJpbmdUaW1pbmdGdW5jdGlvblZhbHVlJiBvdGhlcikgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAKaW5kZXggYjZlMGMyYzUuLjMwOTBlMzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuY3BwCkBAIC0xMDcsNyArMTA3LDkgQEAgU3RyaW5n
IENTU1ZhbHVlTGlzdDo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBl
bmQodmFsdWUuZ2V0KCkuY3NzVGV4dCgpKTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTVmFsdWVMaXN0
OjplcXVhbHMoY29uc3QgQ1NTVmFsdWVMaXN0JiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYXJpYWJsZURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ZhcmlhYmxlRGF0YS5jcHAKaW5kZXggOThjOWQwOS4uMzExOGRlOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhcmlhYmxlRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ZhcmlhYmxlRGF0YS5jcHAKQEAgLTY4LDcgKzY4LDEwIEBAIHZvaWQgQ1NTVmFy
aWFibGVEYXRhOjpjb25zdW1lQW5kVXBkYXRlVG9rZW5zKGNvbnN0IENTU1BhcnNlclRva2VuUmFu
Z2UmIHJhbmdlKQogICAgICAgICBpZiAodG9rZW4uaGFzU3RyaW5nQmFja2luZygpKQogICAgICAg
ICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQodG9rZW4udmFsdWUoKSk7CiAgICAgfQotICAgIG1f
YmFja2luZ1N0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIG1fYmFja2luZ1N0cmlu
ZyA9ICpzdHJpbmc7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIGlmIChtX2JhY2tp
bmdTdHJpbmcuaXM4Qml0KCkpCiAgICAgICAgIHVwZGF0ZVRva2VuczxMQ2hhcj4ocmFuZ2UpOwog
ICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZS5jcHAKaW5kZXggOTEzNTIz
Ny4uY2UxNWQ2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZS5jcHAKQEAgLTg0
LDcgKzg0LDkgQEAgU3RyaW5nIERPTUNTU05hbWVzcGFjZTo6ZXNjYXBlKGNvbnN0IFN0cmluZyYg
aWRlbnQpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIHNlcmlhbGl6ZUlkZW50
aWZpZXIoaWRlbnQsIGJ1aWxkZXIpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvRE9NTWF0cml4UmVhZE9ubHkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJp
eFJlYWRPbmx5LmNwcAppbmRleCBmNzRiNDY1Li43ODgyMjhmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvRE9NTWF0cml4UmVhZE9ubHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9ET01NYXRyaXhSZWFkT25seS5jcHAKQEAgLTQ1MCw3ICs0NTAsOSBAQCBFeGNlcHRpb25PcjxT
dHJpbmc+IERPTU1hdHJpeFJlYWRPbmx5Ojp0b1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKFN0cmluZzo6bnVtYmVyVG9TdHJpbmdFQ01BU2NyaXB0KG1fbWF0cml4Lm00NCgp
KSk7CiAgICAgfQogICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiBXVEZNb3ZlKCpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNh
dGVkQ1NTT01WYWx1ZUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NP
TVZhbHVlTGlzdC5jcHAKaW5kZXggZTQ5Njg4NC4uNWU5OGUyMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAKQEAgLTU0LDcgKzU0LDkgQEAg
U3RyaW5nIERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdDo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgICAg
IHJlc3VsdC5hcHBlbmQodmFsdWUuZ2V0KCkuY3NzVGV4dCgpKTsKICAgICB9CiAgICAgCi0gICAg
cmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0ZvbnRGYWNlLmNwcAppbmRleCA1ODFmNWU4Li5jMjU4NmE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9Gb250RmFjZS5jcHAKQEAgLTMyOCw3ICszMjgsOSBAQCBTdHJpbmcgRm9udEZhY2U6OnN0eWxl
KCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICAgICAgYnVpbGRlci5h
cHBlbmQobWF4aW11bU5vbktleXdvcmQtPm9ibGlxdWVWYWx1ZS0+Y3NzVGV4dCgpKTsKICAgICB9
Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIFN0cmluZyBGb250RmFjZTo6d2VpZ2h0KCkgY29uc3QKQEAgLTM0OSw3ICszNTEsOSBA
QCBTdHJpbmcgRm9udEZhY2U6OndlaWdodCgpIGNvbnN0CiAgICAgYnVpbGRlci5hcHBlbmQobWlu
aW11bU5vbktleXdvcmQtPmNzc1RleHQoKSk7CiAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAg
ICBidWlsZGVyLmFwcGVuZChtYXhpbXVtTm9uS2V5d29yZC0+Y3NzVGV4dCgpKTsKLSAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3Ry
aW5nIEZvbnRGYWNlOjpzdHJldGNoKCkgY29uc3QKQEAgLTM3MCw3ICszNzQsOSBAQCBTdHJpbmcg
Rm9udEZhY2U6OnN0cmV0Y2goKSBjb25zdAogICAgIGJ1aWxkZXIuYXBwZW5kKG1pbmltdW1Ob25L
ZXl3b3JkLT5jc3NUZXh0KCkpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgYnVpbGRl
ci5hcHBlbmQobWF4aW11bU5vbktleXdvcmQtPmNzc1RleHQoKSk7Ci0gICAgcmV0dXJuIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBGb250
RmFjZTo6dW5pY29kZVJhbmdlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9NZWRpYUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAKaW5kZXgg
NDU3NTBhZi4uNDI2OTQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlz
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAKQEAgLTE1MSw3ICsx
NTEsOSBAQCBTdHJpbmcgTWVkaWFRdWVyeVNldDo6bWVkaWFUZXh0KCkgY29uc3QKICAgICAgICAg
dGV4dC5hcHBlbmQocXVlcnkuY3NzVGV4dCgpKTsKICAgICAgICAgbmVlZENvbW1hID0gdHJ1ZTsK
ICAgICB9Ci0gICAgcmV0dXJuIHRleHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSB0ZXh0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIHZvaWQgTWVkaWFRdWVyeVNldDo6c2hyaW5rVG9GaXQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlh
UXVlcnkuY3BwCmluZGV4IDlkMGJhZGYuLjQwNzBkN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eS5jcHAKQEAgLTY2LDcgKzY2LDkgQEAgU3RyaW5nIE1lZGlhUXVlcnk6OnNlcmlhbGl6ZSgpIGNv
bnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoZXhwcmVzc2lvbi5zZXJpYWxpemUoKSk7CiAgICAg
ICAgIG5lZWRzQW5kID0gdHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBNZWRpYVF1ZXJ5OjpNZWRpYVF1ZXJ5KFJl
c3RyaWN0b3IgcmVzdHJpY3RvciwgY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUsIFZlY3RvcjxNZWRp
YVF1ZXJ5RXhwcmVzc2lvbj4mJiBleHByZXNzaW9ucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVk
aWFRdWVyeUV4cHJlc3Npb24uY3BwCmluZGV4IDJkOGU1ZjAuLmUwYTIyZjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcApAQCAtMjQ0LDcgKzI0NCwxMCBA
QCBTdHJpbmcgTWVkaWFRdWVyeUV4cHJlc3Npb246OnNlcmlhbGl6ZSgpIGNvbnN0CiAgICAgfQog
ICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKIAotICAgIG1fc2VyaWFsaXphdGlvbkNhY2hlID0gcmVz
dWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkp
CisgICAgICAgIG1fc2VyaWFsaXphdGlvbkNhY2hlID0gKnN0cmluZzsKKyAgICBlbHNlCisgICAg
ICAgIENSQVNIKCk7CiAgICAgcmV0dXJuIG1fc2VyaWFsaXphdGlvbkNhY2hlOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUmVjdC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1Jl
Y3QuaAppbmRleCBlYzFhYWU4Li5kZmFlMTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvUmVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SZWN0LmgKQEAgLTEwMyw3ICsxMDMs
OSBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAg
fQotICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgICAgIENSQVNIKCk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0
aWVzLmNwcAppbmRleCAzYzhjZTQzLi5iZmYxNzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQ
cm9wZXJ0aWVzLmNwcApAQCAtMzQzLDcgKzM0Myw5IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6
OmZvbnRWYWx1ZSgpIGNvbnN0CiAgICAgcmVzdWx0LmFwcGVuZChmb250RmFtaWx5UHJvcGVydHku
dmFsdWUoKS0+Y3NzVGV4dCgpKTsKICAgICBpZiAoaXNJbml0aWFsT3JJbmhlcml0KGNvbW1vblZh
bHVlKSkKICAgICAgICAgcmV0dXJuIGNvbW1vblZhbHVlOwotICAgIHJldHVybiByZXN1bHQudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIFN0eWxlUHJvcGVy
dGllczo6Z2V0NFZhbHVlcyhjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBzaG9ydGhhbmQp
IGNvbnN0CkBAIC0zOTcsNyArMzk5LDkgQEAgU3RyaW5nIFN0eWxlUHJvcGVydGllczo6Z2V0NFZh
bHVlcyhjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBzaG9ydGhhbmQpIGNvbnMKICAgICAg
ICAgcmVzdWx0LmFwcGVuZCgnICcpOwogICAgICAgICByZXN1bHQuYXBwZW5kKGxlZnQudmFsdWUo
KS0+Y3NzVGV4dCgpKTsKICAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpnZXRMYXll
cmVkU2hvcnRoYW5kVmFsdWUoY29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYgc2hvcnRoYW5k
KSBjb25zdApAQCAtNTQzLDcgKzU0Nyw5IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldExh
eWVyZWRTaG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBzCiAKICAg
ICBpZiAocmVzdWx0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwotICAgIHJl
dHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3Ry
aW5nIFN0eWxlUHJvcGVydGllczo6Z2V0U2hvcnRoYW5kVmFsdWUoY29uc3QgU3R5bGVQcm9wZXJ0
eVNob3J0aGFuZCYgc2hvcnRoYW5kKSBjb25zdApAQCAtNTcyLDcgKzU3OCw5IEBAIFN0cmluZyBT
dHlsZVByb3BlcnRpZXM6OmdldFNob3J0aGFuZFZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9y
dGhhbmQmIHNob3J0aGFuCiAgICAgICAgIHJldHVybiBjb21tb25WYWx1ZTsKICAgICBpZiAocmVz
dWx0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwotICAgIHJldHVybiByZXN1
bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogLy8gb25seSByZXR1
cm5zIGEgbm9uLW51bGwgdmFsdWUgaWYgYWxsIHByb3BlcnRpZXMgaGF2ZSB0aGUgc2FtZSwgbm9u
LW51bGwgdmFsdWUKQEAgLTYzNCw3ICs2NDIsMTEgQEAgU3RyaW5nIFN0eWxlUHJvcGVydGllczo6
Ym9yZGVyUHJvcGVydHlWYWx1ZShDb21tb25WYWx1ZU1vZGUgdmFsdWVNb2RlKSBjb25zdAogICAg
IH0KICAgICBpZiAoaXNJbml0aWFsT3JJbmhlcml0KGNvbW1vblZhbHVlKSkKICAgICAgICAgcmV0
dXJuIGNvbW1vblZhbHVlOwotICAgIHJldHVybiByZXN1bHQuaXNFbXB0eSgpID8gU3RyaW5nKCkg
OiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAocmVzdWx0LmlzRW1wdHkoKSkKKyAgICAgICAg
cmV0dXJuIFN0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBSZWZQdHI8Q1NT
VmFsdWU+IFN0eWxlUHJvcGVydGllczo6Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eUlE
IHByb3BlcnR5SUQpIGNvbnN0CkBAIC0xMTQ2LDcgKzExNTgsOSBAQCBTdHJpbmcgU3R5bGVQcm9w
ZXJ0aWVzOjphc1RleHQoKSBjb25zdAogICAgIH0KIAogICAgIEFTU0VSVCghbnVtRGVjbHMgXiAh
cmVzdWx0LmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIFN0eWxlUHJvcGVydGllczo6aGFzQ1NTT01XcmFw
cGVyKCkgY29uc3QKQEAgLTE0MDMsNyArMTQxNyw5IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6
OlByb3BlcnR5UmVmZXJlbmNlOjpjc3NUZXh0KCkgY29uc3QKICAgICBpZiAoaXNJbXBvcnRhbnQo
KSkKICAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIiAhaW1wb3J0YW50Iik7CiAgICAgcmVz
dWx0LmFwcGVuZCgnOycpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KICAgICAKIFJlZjxEZWZlcnJlZFN0eWxlUHJvcGVydGllcz4gRGVm
ZXJyZWRTdHlsZVByb3BlcnRpZXM6OmNyZWF0ZShjb25zdCBDU1NQYXJzZXJUb2tlblJhbmdlJiB0
b2tlblJhbmdlLCBDU1NEZWZlcnJlZFBhcnNlciYgcGFyc2VyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2Vi
S2l0Q1NTTWF0cml4LmNwcAppbmRleCA3YmRlNjRkLi4xZjc4ZDEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvV2ViS2l0Q1NTTWF0cml4LmNwcApAQCAtMjQ5LDcgKzI0OSw5IEBAIEV4Y2VwdGlvbk9yPFN0
cmluZz4gV2ViS2l0Q1NTTWF0cml4Ojp0b1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKFN0cmluZzo6bnVtYmVyVG9TdHJpbmdFQ01BU2NyaXB0KG1fbWF0cml4Lm00NCgpKSk7
CiAgICAgfQogICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiBXVEZNb3ZlKCpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NW
aWV3cG9ydFJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVs
ZS5jcHAKaW5kZXggY2JkMTcyZi4uZGU2ZWM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dl
YktpdENTU1ZpZXdwb3J0UnVsZS5jcHAKQEAgLTcyLDcgKzcyLDkgQEAgU3RyaW5nIFdlYktpdENT
U1ZpZXdwb3J0UnVsZTo6Y3NzVGV4dCgpIGNvbnN0CiAKICAgICByZXN1bHQuYXBwZW5kKCd9Jyk7
CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
cmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIHZvaWQgV2ViS2l0Q1NTVmlld3BvcnRSdWxlOjpyZWF0dGFjaChTdHlsZVJ1bGVCYXNl
JiBydWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwCmluZGV4IDk1NGFi
MDguLmVjYmZhYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFy
c2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAKQEAg
LTI5OSwxMCArMjk5LDEzIEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUZvbnRG
YWNlRGVzY3JpcHRvcihDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIGNvCiAgICAgYnVpbGRlci5h
cHBlbmRMaXRlcmFsKCIgOiAiKTsKICAgICBidWlsZGVyLmFwcGVuZChwcm9wZXJ0eVZhbHVlKTsK
ICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjsgfSIpOwotICAgIFJlZlB0cjxTdHlsZVJ1bGVC
YXNlPiBydWxlID0gcGFyc2VSdWxlKGNvbnRleHQsIG51bGxwdHIsIGJ1aWxkZXIudG9TdHJpbmco
KSk7Ci0gICAgaWYgKCFydWxlIHx8ICFydWxlLT5pc0ZvbnRGYWNlUnVsZSgpKQotICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gZG93bmNhc3Q8U3R5bGVSdWxlRm9udEZhY2U+KCpy
dWxlLmdldCgpKS5wcm9wZXJ0aWVzKCkuZ2V0UHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0eUlEKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgID0gYnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIFJl
ZlB0cjxTdHlsZVJ1bGVCYXNlPiBydWxlID0gcGFyc2VSdWxlKGNvbnRleHQsIG51bGxwdHIsICpz
dHJpbmcpOworICAgICAgICBpZiAoIXJ1bGUgfHwgIXJ1bGUtPmlzRm9udEZhY2VSdWxlKCkpCisg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PFN0eWxl
UnVsZUZvbnRGYWNlPigqcnVsZS5nZXQoKSkucHJvcGVydGllcygpLmdldFByb3BlcnR5Q1NTVmFs
dWUocHJvcGVydHlJRCk7CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4uY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5jcHAKaW5kZXggN2I4ZTYwMy4uNWQxMDE2
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5jcHAKQEAg
LTM5Miw3ICszOTIsOCBAQCB2b2lkIENTU1BhcnNlclRva2VuOjpzZXJpYWxpemUoU3RyaW5nQnVp
bGRlciYgYnVpbGRlcikgY29uc3QKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGdW5jdGlvblRv
a2VuOgogICAgICAgICBzZXJpYWxpemVJZGVudGlmaWVyKHZhbHVlKCkudG9TdHJpbmcoKSwgYnVp
bGRlcik7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgnKCcpOworICAgICAgICBidWls
ZGVyLmFwcGVuZCgnKCcpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBBdEtleXdvcmRUb2tl
bjoKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ0AnKTsKICAgICAgICAgc2VyaWFsaXplSWRlbnRp
Zmllcih2YWx1ZSgpLnRvU3RyaW5nKCksIGJ1aWxkZXIpOwpAQCAtNDA0LDY5ICs0MDUsOTcgQEAg
dm9pZCBDU1NQYXJzZXJUb2tlbjo6c2VyaWFsaXplKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIpIGNv
bnN0CiAgICAgY2FzZSBVcmxUb2tlbjoKICAgICAgICAgYnVpbGRlci5hcHBlbmQoInVybCgiKTsK
ICAgICAgICAgc2VyaWFsaXplSWRlbnRpZmllcih2YWx1ZSgpLnRvU3RyaW5nKCksIGJ1aWxkZXIp
OwotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJyknKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQoJyknKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRGVsaW1pdGVyVG9rZW46Ci0g
ICAgICAgIGlmIChkZWxpbWl0ZXIoKSA9PSAnXFwnKQotICAgICAgICAgICAgcmV0dXJuIGJ1aWxk
ZXIuYXBwZW5kKCJcXFxuIik7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZChkZWxpbWl0
ZXIoKSk7CisgICAgICAgIGlmIChkZWxpbWl0ZXIoKSA9PSAnXFwnKSB7CisgICAgICAgICAgICBi
dWlsZGVyLmFwcGVuZCgiXFxcbiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKGRlbGltaXRlcigpKTsKKyAgICAgICAgcmV0dXJuOwogICAg
IGNhc2UgTnVtYmVyVG9rZW46CiAgICAgICAgIC8vIFRoZXNlIHdvbid0IHByb3Blcmx5IHByZXNl
cnZlIHRoZSBOdW1lcmljVmFsdWVUeXBlIGZsYWcKICAgICAgICAgaWYgKG1fbnVtZXJpY1NpZ24g
PT0gUGx1c1NpZ24pCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnKycpOwotICAgICAgICBy
ZXR1cm4gYnVpbGRlci5hcHBlbmROdW1iZXIobnVtZXJpY1ZhbHVlKCkpOworICAgICAgICBidWls
ZGVyLmFwcGVuZE51bWJlcihudW1lcmljVmFsdWUoKSk7CisgICAgICAgIHJldHVybjsKICAgICBj
YXNlIFBlcmNlbnRhZ2VUb2tlbjoKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobnVtZXJp
Y1ZhbHVlKCkpOwotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJyUnKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQoJyUnKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRGltZW5zaW9u
VG9rZW46CiAgICAgICAgIC8vIFRoaXMgd2lsbCBpbmNvcnJlY3RseSBzZXJpYWxpemUgZS5nLiA0
ZTNlMiBhcyA0MDAwZTIKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobnVtZXJpY1ZhbHVl
KCkpOwogICAgICAgICBzZXJpYWxpemVJZGVudGlmaWVyKHZhbHVlKCkudG9TdHJpbmcoKSwgYnVp
bGRlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVW5pY29kZVJhbmdlVG9rZW46Ci0gICAg
ICAgIHJldHVybiBidWlsZGVyLmFwcGVuZChTdHJpbmc6OmZvcm1hdCgiVSslWC0lWCIsIHVuaWNv
ZGVSYW5nZVN0YXJ0KCksIHVuaWNvZGVSYW5nZUVuZCgpKSk7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKFN0cmluZzo6Zm9ybWF0KCJVKyVYLSVYIiwgdW5pY29kZVJhbmdlU3RhcnQoKSwgdW5pY29k
ZVJhbmdlRW5kKCkpKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgU3RyaW5nVG9rZW46Ci0g
ICAgICAgIHJldHVybiBzZXJpYWxpemVTdHJpbmcodmFsdWUoKS50b1N0cmluZygpLCBidWlsZGVy
KTsKKyAgICAgICAgc2VyaWFsaXplU3RyaW5nKHZhbHVlKCkudG9TdHJpbmcoKSwgYnVpbGRlcik7
CisgICAgICAgIHJldHVybjsKIAogICAgIGNhc2UgSW5jbHVkZU1hdGNoVG9rZW46Ci0gICAgICAg
IHJldHVybiBidWlsZGVyLmFwcGVuZCgifj0iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIn49
Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIERhc2hNYXRjaFRva2VuOgotICAgICAgICBy
ZXR1cm4gYnVpbGRlci5hcHBlbmQoInw9Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJ8PSIp
OworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBQcmVmaXhNYXRjaFRva2VuOgotICAgICAgICBy
ZXR1cm4gYnVpbGRlci5hcHBlbmQoIl49Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJePSIp
OworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBTdWZmaXhNYXRjaFRva2VuOgotICAgICAgICBy
ZXR1cm4gYnVpbGRlci5hcHBlbmQoIiQ9Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIkPSIp
OworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBTdWJzdHJpbmdNYXRjaFRva2VuOgotICAgICAg
ICByZXR1cm4gYnVpbGRlci5hcHBlbmQoIio9Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIq
PSIpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBDb2x1bW5Ub2tlbjoKLSAgICAgICAgcmV0
dXJuIGJ1aWxkZXIuYXBwZW5kKCJ8fCIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgifHwiKTsK
KyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQ0RPVG9rZW46Ci0gICAgICAgIHJldHVybiBidWls
ZGVyLmFwcGVuZCgiPCEtLSIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiPCEtLSIpOworICAg
ICAgICByZXR1cm47CiAgICAgY2FzZSBDRENUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIu
YXBwZW5kKCItLT4iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIi0tPiIpOworICAgICAgICBy
ZXR1cm47CiAgICAgY2FzZSBCYWRTdHJpbmdUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIu
YXBwZW5kKCInXG4iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIidcbiIpOworICAgICAgICBy
ZXR1cm47CiAgICAgY2FzZSBCYWRVcmxUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBw
ZW5kKCJ1cmwoKCkiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoInVybCgoKSIpOworICAgICAg
ICByZXR1cm47CiAgICAgY2FzZSBXaGl0ZXNwYWNlVG9rZW46Ci0gICAgICAgIHJldHVybiBidWls
ZGVyLmFwcGVuZCgnICcpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOworICAgICAgICBy
ZXR1cm47CiAgICAgY2FzZSBDb2xvblRva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBl
bmQoJzonKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJzonKTsKKyAgICAgICAgcmV0dXJuOwog
ICAgIGNhc2UgU2VtaWNvbG9uVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgn
OycpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnOycpOworICAgICAgICByZXR1cm47CiAgICAg
Y2FzZSBDb21tYVRva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJywnKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQoJywnKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgTGVm
dFBhcmVudGhlc2lzVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgnKCcpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZCgnKCcpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBS
aWdodFBhcmVudGhlc2lzVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgnKScp
OworICAgICAgICBidWlsZGVyLmFwcGVuZCgnKScpOworICAgICAgICByZXR1cm47CiAgICAgY2Fz
ZSBMZWZ0QnJhY2tldFRva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJ1snKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1snKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2Ug
UmlnaHRCcmFja2V0VG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgnXScpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZCgnXScpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBM
ZWZ0QnJhY2VUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCd7Jyk7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCd7Jyk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFJpZ2h0
QnJhY2VUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCd9Jyk7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCd9Jyk7CisgICAgICAgIHJldHVybjsKIAogICAgIGNhc2UgRU9GVG9r
ZW46CiAgICAgY2FzZSBDb21tZW50VG9rZW46CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1BhcnNlclRva2VuUmFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQYXJzZXJUb2tlblJhbmdlLmNwcAppbmRleCBjYjljNTgwLi5lZmU1YTJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuUmFuZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW5SYW5nZS5jcHAK
QEAgLTExMyw3ICsxMTMsOSBAQCBTdHJpbmcgQ1NTUGFyc2VyVG9rZW5SYW5nZTo6c2VyaWFsaXpl
KCkgY29uc3QKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgZm9yIChjb25zdCBDU1NQ
YXJzZXJUb2tlbiogaXQgPSBtX2ZpcnN0OyBpdCA8IG1fbGFzdDsgKytpdCkKICAgICAgICAgaXQt
PnNlcmlhbGl6ZShidWlsZGVyKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAppbmRleCBiY2Vj
ZTcwLi4zMDkwNzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1By
b3BlcnR5UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3Bl
cnR5UGFyc2VyLmNwcApAQCAtMTAxNiw3ICsxMDE2LDkgQEAgc3RhdGljIFN0cmluZyBjb25jYXRl
bmF0ZUZhbWlseU5hbWUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiAgICAgfQogICAgIGlm
ICghYWRkZWRTcGFjZSAmJiBpc0NTU1dpZGVLZXl3b3JkKGZpcnN0VG9rZW4uaWQoKSkpCiAgICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3Vt
ZUZhbWlseU5hbWUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCkBAIC0zMjY0LDcgKzMyNjYs
MTAgQEAgc3RhdGljIFZlY3RvcjxTdHJpbmc+IHBhcnNlR3JpZFRlbXBsYXRlQXJlYXNDb2x1bW5O
YW1lcyhjb25zdCBTdHJpbmcmIGdyaWRSb3dOYW0KICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgdGV4dC5sZW5ndGgoKTsgKytpKSB7CiAgICAgICAgIGlmIChpc0NTU1NwYWNlKHRleHRbaV0p
KSB7CiAgICAgICAgICAgICBpZiAoIWFyZWFOYW1lLmlzRW1wdHkoKSkgewotICAgICAgICAgICAg
ICAgIGNvbHVtbk5hbWVzLmFwcGVuZChhcmVhTmFtZS50b1N0cmluZygpKTsKKyAgICAgICAgICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSBhcmVhTmFtZS50b1N0cmluZygpKQorICAgICAgICAgICAg
ICAgICAgICBjb2x1bW5OYW1lcy5hcHBlbmQoKnN0cmluZyk7CisgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgICAgIGFyZWFOYW1l
LmNsZWFyKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTMyNzMs
MTQgKzMyNzgsMjAgQEAgc3RhdGljIFZlY3RvcjxTdHJpbmc+IHBhcnNlR3JpZFRlbXBsYXRlQXJl
YXNDb2x1bW5OYW1lcyhjb25zdCBTdHJpbmcmIGdyaWRSb3dOYW0KICAgICAgICAgICAgIGlmIChh
cmVhTmFtZSA9PSAiLiIpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBp
ZiAoIWFyZWFOYW1lLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgICAgIGNvbHVtbk5hbWVzLmFw
cGVuZChhcmVhTmFtZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBhcmVhTmFtZS50b1N0cmluZygpKQorICAgICAgICAgICAgICAgICAgICBjb2x1bW5OYW1l
cy5hcHBlbmQoKnN0cmluZyk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICAgICBDUkFTSCgpOwogICAgICAgICAgICAgICAgIGFyZWFOYW1lLmNsZWFyKCk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBpZiAoIWlzTmFtZUNvZGVQb2lu
dCh0ZXh0W2ldKSkKICAgICAgICAgICAgICAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsKICAg
ICAgICAgICAgIGlmIChhcmVhTmFtZSA9PSAiLiIpIHsKLSAgICAgICAgICAgICAgICBjb2x1bW5O
YW1lcy5hcHBlbmQoYXJlYU5hbWUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gYXJlYU5hbWUudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgY29s
dW1uTmFtZXMuYXBwZW5kKCpzdHJpbmcpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgICAgICBhcmVhTmFtZS5jbGVhcigpOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0zMjg4LDggKzMyOTksMTIgQEAgc3RhdGljIFZl
Y3RvcjxTdHJpbmc+IHBhcnNlR3JpZFRlbXBsYXRlQXJlYXNDb2x1bW5OYW1lcyhjb25zdCBTdHJp
bmcmIGdyaWRSb3dOYW0KICAgICAgICAgYXJlYU5hbWUuYXBwZW5kKHRleHRbaV0pOwogICAgIH0K
IAotICAgIGlmICghYXJlYU5hbWUuaXNFbXB0eSgpKQotICAgICAgICBjb2x1bW5OYW1lcy5hcHBl
bmQoYXJlYU5hbWUudG9TdHJpbmcoKSk7CisgICAgaWYgKCFhcmVhTmFtZS5pc0VtcHR5KCkpIHsK
KyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYXJlYU5hbWUudG9TdHJpbmcoKSkKKyAgICAgICAg
ICAgIGNvbHVtbk5hbWVzLmFwcGVuZCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgQ1JBU0goKTsKKyAgICB9CiAKICAgICByZXR1cm4gY29sdW1uTmFtZXM7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Rva2VuaXplci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Rva2VuaXplci5jcHAKaW5kZXggMWYxYTIzZS4uM2I4NGUy
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NUb2tlbml6ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTVG9rZW5pemVyLmNwcApAQCAtNjA1
LDggKzYwNSwxMSBAQCBDU1NQYXJzZXJUb2tlbiBDU1NUb2tlbml6ZXI6OmNvbnN1bWVTdHJpbmdU
b2tlblVudGlsKFVDaGFyIGVuZGluZ0NvZGVQb2ludCkKICAgICBTdHJpbmdCdWlsZGVyIG91dHB1
dDsKICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICBVQ2hhciBjYyA9IGNvbnN1bWUoKTsKLSAg
ICAgICAgaWYgKGNjID09IGVuZGluZ0NvZGVQb2ludCB8fCBjYyA9PSBrRW5kT2ZGaWxlTWFya2Vy
KQotICAgICAgICAgICAgcmV0dXJuIENTU1BhcnNlclRva2VuKFN0cmluZ1Rva2VuLCByZWdpc3Rl
clN0cmluZyhvdXRwdXQudG9TdHJpbmcoKSkpOworICAgICAgICBpZiAoY2MgPT0gZW5kaW5nQ29k
ZVBvaW50IHx8IGNjID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IG91dHB1dC50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHJldHVybiBDU1NQ
YXJzZXJUb2tlbihTdHJpbmdUb2tlbiwgcmVnaXN0ZXJTdHJpbmcoKnN0cmluZykpOworICAgICAg
ICAgICAgQ1JBU0goKTsKKyAgICAgICAgfQogICAgICAgICBpZiAoaXNOZXdMaW5lKGNjKSkgewog
ICAgICAgICAgICAgcmVjb25zdW1lKGNjKTsKICAgICAgICAgICAgIHJldHVybiBDU1NQYXJzZXJU
b2tlbihCYWRTdHJpbmdUb2tlbik7CkBAIC02ODAsMTMgKzY4MywxOSBAQCBDU1NQYXJzZXJUb2tl
biBDU1NUb2tlbml6ZXI6OmNvbnN1bWVVcmxUb2tlbigpCiAgICAgU3RyaW5nQnVpbGRlciByZXN1
bHQ7CiAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAgVUNoYXIgY2MgPSBjb25zdW1lKCk7Ci0g
ICAgICAgIGlmIChjYyA9PSAnKScgfHwgY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikKLSAgICAgICAg
ICAgIHJldHVybiBDU1NQYXJzZXJUb2tlbihVcmxUb2tlbiwgcmVnaXN0ZXJTdHJpbmcocmVzdWx0
LnRvU3RyaW5nKCkpKTsKKyAgICAgICAgaWYgKGNjID09ICcpJyB8fCBjYyA9PSBrRW5kT2ZGaWxl
TWFya2VyKSB7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmco
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUGFyc2VyVG9rZW4oVXJsVG9rZW4sIHJlZ2lz
dGVyU3RyaW5nKCpzdHJpbmcpKTsKKyAgICAgICAgICAgIENSQVNIKCk7CisgICAgICAgIH0KIAog
ICAgICAgICBpZiAoaXNIVE1MU3BhY2UoY2MpKSB7CiAgICAgICAgICAgICBtX2lucHV0LmFkdmFu
Y2VVbnRpbE5vbldoaXRlc3BhY2UoKTsKLSAgICAgICAgICAgIGlmIChjb25zdW1lSWZOZXh0KCcp
JykgfHwgbV9pbnB1dC5uZXh0SW5wdXRDaGFyKCkgPT0ga0VuZE9mRmlsZU1hcmtlcikKLSAgICAg
ICAgICAgICAgICByZXR1cm4gQ1NTUGFyc2VyVG9rZW4oVXJsVG9rZW4sIHJlZ2lzdGVyU3RyaW5n
KHJlc3VsdC50b1N0cmluZygpKSk7CisgICAgICAgICAgICBpZiAoY29uc3VtZUlmTmV4dCgnKScp
IHx8IG1faW5wdXQubmV4dElucHV0Q2hhcigpID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAg
ICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIENTU1BhcnNlclRva2VuKFVybFRva2VuLCByZWdpc3RlclN0cmlu
Zygqc3RyaW5nKSk7CisgICAgICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKQEAgLTc5MSw3ICs4MDAsOSBAQCBTdHJpbmdW
aWV3IENTU1Rva2VuaXplcjo6Y29uc3VtZU5hbWUoKQogICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIH0KICAgICAgICAgcmVjb25zdW1lKGNjKTsKLSAgICAgICAgcmV0dXJuIHJlZ2lzdGVy
U3RyaW5nKHJlc3VsdC50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVz
dWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gcmVnaXN0ZXJTdHJpbmcoKnN0cmlu
Zyk7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogfQogCkBAIC04MTEsMTEgKzgyMiwxNCBAQCBV
Q2hhcjMyIENTU1Rva2VuaXplcjo6Y29uc3VtZUVzY2FwZSgpCiAgICAgICAgIH07CiAgICAgICAg
IGNvbnN1bWVTaW5nbGVXaGl0ZXNwYWNlSWZOZXh0KCk7CiAgICAgICAgIGJvb2wgb2sgPSBmYWxz
ZTsKLSAgICAgICAgVUNoYXIzMiBjb2RlUG9pbnQgPSBoZXhDaGFycy50b1N0cmluZygpLnRvVUlu
dFN0cmljdCgmb2ssIDE2KTsKLSAgICAgICAgQVNTRVJUKG9rKTsKLSAgICAgICAgaWYgKCFjb2Rl
UG9pbnQgfHwgKDB4RDgwMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4REZGRikgfHwg
Y29kZVBvaW50ID4gMHgxMEZGRkYpCi0gICAgICAgICAgICByZXR1cm4gcmVwbGFjZW1lbnRDaGFy
YWN0ZXI7Ci0gICAgICAgIHJldHVybiBjb2RlUG9pbnQ7CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGhleENoYXJzLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIFVDaGFyMzIgY29kZVBvaW50
ID0gc3RyaW5nLT50b1VJbnRTdHJpY3QoJm9rLCAxNik7CisgICAgICAgICAgICBBU1NFUlQob2sp
OworICAgICAgICAgICAgaWYgKCFjb2RlUG9pbnQgfHwgKDB4RDgwMCA8PSBjb2RlUG9pbnQgJiYg
Y29kZVBvaW50IDw9IDB4REZGRikgfHwgY29kZVBvaW50ID4gMHgxMEZGRkYpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlcGxhY2VtZW50Q2hhcmFjdGVyOworICAgICAgICAgICAgcmV0dXJuIGNv
ZGVQb2ludDsKKyAgICAgICAgfQorICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIGlmIChj
YyA9PSBrRW5kT2ZGaWxlTWFya2VyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rh
dGFzZXRET01TdHJpbmdNYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJp
bmdNYXAuY3BwCmluZGV4IGYyZDg0MjAuLmQ1NjY3YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RGF0YXNldERPTVN0cmluZ01hcC5jcHAKQEAgLTY1LDcgKzY1LDkgQEAgc3RhdGljIFN0cmluZyBj
b252ZXJ0QXR0cmlidXRlTmFtZVRvUHJvcGVydHlOYW1lKGNvbnN0IFN0cmluZyYgbmFtZSkKICAg
ICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgYm9vbCBwcm9wZXJ0eU5h
bWVNYXRjaGVzQXR0cmlidXRlTmFtZShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgY29uc3Qg
U3RyaW5nJiBhdHRyaWJ1dGVOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDBhMjMyNjMu
Ljg4MTQ1NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTIxOTcsNyArMjE5NywxMCBAQCB2
b2lkIEVsZW1lbnQ6OmZvcm1hdEZvckRlYnVnZ2VyKGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgbGVu
Z3RoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKHMpOwogICAgIH0KIAotICAgIHN0cm5j
cHkoYnVmZmVyLCByZXN1bHQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgc3RybmNw
eShidWZmZXIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0gMSk7CisgICAgZWxzZQor
ICAgICAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCA0YjFlODcy
Li44ZmNiZDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0xNTE5LDcgKzE1MTksOSBAQCBTdHJpbmcg
Tm9kZTo6dGV4dENvbnRlbnQoYm9vbCBjb252ZXJ0QlJzVG9OZXdsaW5lcykgY29uc3QKICAgICBT
dHJpbmdCdWlsZGVyIGNvbnRlbnQ7CiAgICAgYm9vbCBpc051bGxTdHJpbmcgPSB0cnVlOwogICAg
IGFwcGVuZFRleHRDb250ZW50KHRoaXMsIGNvbnZlcnRCUnNUb05ld2xpbmVzLCBpc051bGxTdHJp
bmcsIGNvbnRlbnQpOwotICAgIHJldHVybiBpc051bGxTdHJpbmcgPyBTdHJpbmcoKSA6IGNvbnRl
bnQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBjb250ZW50LnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiBpc051bGxTdHJpbmcgPyBTdHJpbmcoKSA6ICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gTm9kZTo6c2V0VGV4dENvbnRlbnQoY29u
c3QgU3RyaW5nJiB0ZXh0KQpAQCAtMTczMCw3ICsxNzMyLDEwIEBAIHZvaWQgTm9kZTo6c2hvd05v
ZGUoY29uc3QgY2hhciogcHJlZml4KSBjb25zdAogICAgICAgICBTdHJpbmdCdWlsZGVyIGF0dHJz
OwogICAgICAgICBhcHBlbmRBdHRyaWJ1dGVEZXNjKHRoaXMsIGF0dHJzLCBjbGFzc0F0dHIsICIg
Q0xBU1M9Iik7CiAgICAgICAgIGFwcGVuZEF0dHJpYnV0ZURlc2ModGhpcywgYXR0cnMsIHN0eWxl
QXR0ciwgIiBTVFlMRT0iKTsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICIlcyVzXHQlcCAocmVu
ZGVyZXIgJXApICVzJXMlc1xuIiwgcHJlZml4LCBub2RlTmFtZSgpLnV0ZjgoKS5kYXRhKCksIHRo
aXMsIHJlbmRlcmVyKCksIGF0dHJzLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbmVlZHNTdHls
ZVJlY2FsYygpID8gIiAobmVlZHMgc3R5bGUgcmVjYWxjKSIgOiAiIiwgY2hpbGROZWVkc1N0eWxl
UmVjYWxjKCkgPyAiIChjaGlsZCBuZWVkcyBzdHlsZSByZWNhbGMpIiA6ICIiKTsKKyAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gYXR0cnMudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGZwcmludGYo
c3RkZXJyLCAiJXMlc1x0JXAgKHJlbmRlcmVyICVwKSAlcyVzJXNcbiIsIHByZWZpeCwgbm9kZU5h
bWUoKS51dGY4KCkuZGF0YSgpLCB0aGlzLCByZW5kZXJlcigpLCBzdHJpbmctPnV0ZjgoKS5kYXRh
KCksIG5lZWRzU3R5bGVSZWNhbGMoKSA/ICIgKG5lZWRzIHN0eWxlIHJlY2FsYykiIDogIiIsIGNo
aWxkTmVlZHNTdHlsZVJlY2FsYygpID8gIiAoY2hpbGQgbmVlZHMgc3R5bGUgcmVjYWxjKSIgOiAi
Iik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogfQogCkBAIC0x
ODAyLDEyICsxODA3LDE5IEBAIHN0YXRpYyB2b2lkIHRyYXZlcnNlVHJlZUFuZE1hcmsoY29uc3Qg
U3RyaW5nJiBiYXNlSW5kZW50LCBjb25zdCBOb2RlKiByb290Tm9kZSwKICAgICAgICAgaW5kZW50
LmFwcGVuZChiYXNlSW5kZW50KTsKICAgICAgICAgZm9yIChjb25zdCBOb2RlKiB0bXBOb2RlID0g
bm9kZTsgdG1wTm9kZSAmJiB0bXBOb2RlICE9IHJvb3ROb2RlOyB0bXBOb2RlID0gdG1wTm9kZS0+
cGFyZW50T3JTaGFkb3dIb3N0Tm9kZSgpKQogICAgICAgICAgICAgaW5kZW50LmFwcGVuZCgnXHQn
KTsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICIlcyIsIGluZGVudC50b1N0cmluZygpLnV0Zjgo
KS5kYXRhKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBpbmRlbnQudG9TdHJpbmcoKSkK
KyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMiLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCkp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICBub2RlLT5zaG93
Tm9kZSgpOwogICAgICAgICBpbmRlbnQuYXBwZW5kKCdcdCcpOwogICAgICAgICBpZiAoIW5vZGUt
PmlzU2hhZG93Um9vdCgpKSB7Ci0gICAgICAgICAgICBpZiAoU2hhZG93Um9vdCogc2hhZG93Um9v
dCA9IG5vZGUtPnNoYWRvd1Jvb3QoKSkKLSAgICAgICAgICAgICAgICB0cmF2ZXJzZVRyZWVBbmRN
YXJrKGluZGVudC50b1N0cmluZygpLCBzaGFkb3dSb290LCBtYXJrZWROb2RlMSwgbWFya2VkTGFi
ZWwxLCBtYXJrZWROb2RlMiwgbWFya2VkTGFiZWwyKTsKKyAgICAgICAgICAgIGlmIChTaGFkb3dS
b290KiBzaGFkb3dSb290ID0gbm9kZS0+c2hhZG93Um9vdCgpKSB7CisgICAgICAgICAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gaW5kZW50LnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICAg
IHRyYXZlcnNlVHJlZUFuZE1hcmsoKnN0cmluZywgc2hhZG93Um9vdCwgbWFya2VkTm9kZTEsIG1h
cmtlZExhYmVsMSwgbWFya2VkTm9kZTIsIG1hcmtlZExhYmVsMik7CisgICAgICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICAgICAgfQogICAgICAg
ICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKaW5kZXggODlhNTA2Zi4uYTUyMDE2
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCkBAIC0xNDE5LDcgKzE0MTksMTAgQEAgdm9pZCBQ
b3NpdGlvbjo6Zm9ybWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgp
IGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQocyk7CiAgICAgfQogCi0gICAgc3RybmNweShi
dWZmZXIsIHJlc3VsdC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBzdHJuY3B5KGJ1
ZmZlciwgc3RyaW5nLT51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsKKyAgICBlbHNlCisgICAg
ICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgUG9zaXRpb246OnNob3dBbmNob3JUeXBlQW5kT2Zmc2V0
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCmluZGV4IGE1N2E1ZTIuLjE1OTg3MGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1JhbmdlLmNwcApAQCAtOTQ5LDcgKzk0OSw5IEBAIFN0cmluZyBSYW5nZTo6dG9TdHJpbmcoKSBj
b25zdAogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBSYW5nZTo6dG9IVE1MKCkgY29u
c3QKQEAgLTE1MzUsNyArMTUzNywxMCBAQCB2b2lkIFJhbmdlOjpmb3JtYXRGb3JEZWJ1Z2dlcihj
aGFyKiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3QKICAgICBlbmRDb250YWluZXIoKS5m
b3JtYXRGb3JEZWJ1Z2dlcihzLCBGb3JtYXRCdWZmZXJTaXplKTsKICAgICByZXN1bHQuYXBwZW5k
KHMpOwogCi0gICAgc3RybmNweShidWZmZXIsIHJlc3VsdC50b1N0cmluZygpLnV0ZjgoKS5kYXRh
KCksIGxlbmd0aCAtIDEpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygp
KQorICAgICAgICBzdHJuY3B5KGJ1ZmZlciwgc3RyaW5nLT51dGY4KCkuZGF0YSgpLCBsZW5ndGgg
LSAxKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcAppbmRleCBj
NGQ4NWQ4Li5hNTAzOTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0ZWRB
bmltYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0ZWRB
bmltYXRpb25Db250cm9sbGVyLmNwcApAQCAtMTEyLDcgKzExMiw5IEBAIHN0YXRpYyBTdHJpbmcg
dGhyb3R0bGluZ1JlYXNvbnNUb1N0cmluZyhPcHRpb25TZXQ8U2NyaXB0ZWRBbmltYXRpb25Db250
cm9sbGVyOjpUCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnfCcpOwogICAgICAgICBidWls
ZGVyLmFwcGVuZCh0aHJvdHRsaW5nUmVhc29uVG9TdHJpbmcocmVhc29uKSk7CiAgICAgfQotICAg
IHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5jcHAKaW5kZXggNGY4ZjFh
OC4uMTQ4MjIxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5jcHAKQEAgLTE1
Miw3ICsxNTIsMTAgQEAgU2FuZGJveEZsYWdzIFNlY3VyaXR5Q29udGV4dDo6cGFyc2VTYW5kYm94
UG9saWN5KGNvbnN0IFN0cmluZyYgcG9saWN5LCBTdHJpbmcmIGkKICAgICAgICAgICAgIHRva2Vu
RXJyb3JzLmFwcGVuZExpdGVyYWwoIiBhcmUgaW52YWxpZCBzYW5kYm94IGZsYWdzLiIpOwogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICB0b2tlbkVycm9ycy5hcHBlbmRMaXRlcmFsKCIgaXMgYW4g
aW52YWxpZCBzYW5kYm94IGZsYWcuIik7Ci0gICAgICAgIGludmFsaWRUb2tlbnNFcnJvck1lc3Nh
Z2UgPSB0b2tlbkVycm9ycy50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSB0
b2tlbkVycm9ycy50b1N0cmluZygpKQorICAgICAgICAgICAgaW52YWxpZFRva2Vuc0Vycm9yTWVz
c2FnZSA9ICpzdHJpbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAg
fQogCiAgICAgcmV0dXJuIGZsYWdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Rl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCmluZGV4IDczMTVkMTYuLmIzMjdm
NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vVGV4dC5jcHAKQEAgLTExMyw3ICsxMTMsOSBAQCBTdHJpbmcgVGV4dDo6d2hv
bGVUZXh0KCkgY29uc3QKICAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKICAgICBmb3IgKGNvbnN0
IFRleHQqIHRleHQgPSBzdGFydFRleHQ7IHRleHQgIT0gb25lUGFzdEVuZFRleHQ7IHRleHQgPSBU
ZXh0Tm9kZVRyYXZlcnNhbDo6bmV4dFNpYmxpbmcoKnRleHQpKQogICAgICAgICByZXN1bHQuYXBw
ZW5kKHRleHQtPmRhdGEoKSk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBSZWZQdHI8VGV4dD4gVGV4dDo6cmVwbGFjZVdob2xlVGV4
dChjb25zdCBTdHJpbmcmIG5ld1RleHQpCkBAIC0yNDAsNyArMjQyLDEwIEBAIHZvaWQgVGV4dDo6
Zm9ybWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0CiAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoJyInKTsKICAgICB9CiAKLSAgICBzdHJuY3B5KGJ1ZmZlciwg
cmVzdWx0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0gMSk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHN0cm5jcHkoYnVmZmVyLCBz
dHJpbmctPnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOworICAgIGVsc2UKKyAgICAgICAgQ1JB
U0goKTsKICAgICBidWZmZXJbbGVuZ3RoIC0gMV0gPSAnXDAnOwogfQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dE5vZGVUcmF2ZXJzYWwuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RleHROb2RlVHJhdmVyc2FsLmNwcAppbmRleCBiNzhjYTc5Li42ZDQxOGQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dE5vZGVUcmF2ZXJzYWwuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0Tm9kZVRyYXZlcnNhbC5jcHAKQEAgLTQyLDcgKzQyLDkg
QEAgU3RyaW5nIGNvbnRlbnRzQXNTdHJpbmcoY29uc3QgQ29udGFpbmVyTm9kZSYgcm9vdCkKIHsK
ICAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKICAgICBhcHBlbmRDb250ZW50cyhyb290LCByZXN1
bHQpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogU3RyaW5nIGNvbnRlbnRzQXNTdHJpbmcoY29uc3QgTm9kZSYgcm9vdCkKQEAgLTU5
LDcgKzYxLDkgQEAgU3RyaW5nIGNoaWxkVGV4dENvbnRlbnQoY29uc3QgQ29udGFpbmVyTm9kZSYg
cm9vdCkKICAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKICAgICBmb3IgKFRleHQqIHRleHQgPSBU
ZXh0Tm9kZVRyYXZlcnNhbDo6Zmlyc3RDaGlsZChyb290KTsgdGV4dDsgdGV4dCA9IFRleHROb2Rl
VHJhdmVyc2FsOjpuZXh0U2libGluZygqdGV4dCkpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQodGV4
dC0+ZGF0YSgpKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
bHlTdHlsZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29t
bWFuZC5jcHAKaW5kZXggNjlkOGFmMi4uYWUxNmYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKQEAgLTEzODIsNyArMTM4MiwxMCBAQCB2b2lkIEFw
cGx5U3R5bGVDb21tYW5kOjphZGRCbG9ja1N0eWxlKGNvbnN0IFN0eWxlQ2hhbmdlJiBzdHlsZUNo
YW5nZSwgSFRNTEVsZW1lbgogICAgICAgICAgICAgY3NzVGV4dC5hcHBlbmQoJyAnKTsKICAgICAg
ICAgY3NzVGV4dC5hcHBlbmQoZGVjbC0+YXNUZXh0KCkpOwogICAgIH0KLSAgICBzZXROb2RlQXR0
cmlidXRlKGJsb2NrLCBzdHlsZUF0dHIsIGNzc1RleHQudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gY3NzVGV4dC50b1N0cmluZygpKQorICAgICAgICBzZXROb2RlQXR0cmlidXRl
KGJsb2NrLCBzdHlsZUF0dHIsICpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsK
IH0KIAogdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6YWRkSW5saW5lU3R5bGVJZk5lZWRlZChFZGl0
aW5nU3R5bGUqIHN0eWxlLCBOb2RlJiBzdGFydCwgTm9kZSYgZW5kLCBFQWRkU3R5bGVkRWxlbWVu
dCBhZGRTdHlsZWRFbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5jcHAKaW5kZXggZTc5
YjY0Ni4uMzBjMTY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5n
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcuY3BwCkBAIC00MjksNyAr
NDI5LDkgQEAgU3RyaW5nIHN0cmluZ1dpdGhSZWJhbGFuY2VkV2hpdGVzcGFjZShjb25zdCBTdHJp
bmcmIHN0cmluZywgYm9vbCBzdGFydElzU3RhcnRPZlAKIAogICAgIHJlYmFsYW5jZWRTdHJpbmcu
cmVzZXJ2ZUNhcGFjaXR5KGxlbmd0aCk7CiAgICAgcmViYWxhbmNlZFN0cmluZy5hcHBlbmQoc3Ry
aW5nLCByZWJhbGFuY2VkU3RyaW5nLmxlbmd0aCgpLCBsZW5ndGggLSByZWJhbGFuY2VkU3RyaW5n
Lmxlbmd0aCgpKTsKLSAgICByZXR1cm4gcmViYWxhbmNlZFN0cmluZy50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHJlYmFsYW5jZWRTdHJpbmcudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBpc1RhYmxlU3RydWN0dXJl
Tm9kZShjb25zdCBOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9IVE1MSW50ZXJjaGFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9IVE1MSW50ZXJj
aGFuZ2UuY3BwCmluZGV4IGIyMjM0M2IuLmNmODUyMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSFRNTEludGVyY2hhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0hUTUxJbnRlcmNoYW5nZS5jcHAKQEAgLTk1LDcgKzk1LDkgQEAgU3RyaW5nIGNvbnZlcnRI
VE1MVGV4dFRvSW50ZXJjaGFuZ2VGb3JtYXQoY29uc3QgU3RyaW5nJiBpbiwgY29uc3QgVGV4dCog
bm9kZSkKICAgICAgICAgaSArPSBjb25zdW1lZDsKICAgICB9CiAKLSAgICByZXR1cm4gcy50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHMudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcAppbmRleCA5MDY5
NjdmLi42N2U3NmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFj
Y3VtdWxhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxh
dG9yLmNwcApAQCAtMTMwLDcgKzEzMCw5IEBAIE1hcmt1cEFjY3VtdWxhdG9yOjp+TWFya3VwQWNj
dW11bGF0b3IoKSA9IGRlZmF1bHQ7CiBTdHJpbmcgTWFya3VwQWNjdW11bGF0b3I6OnNlcmlhbGl6
ZU5vZGVzKE5vZGUmIHRhcmdldE5vZGUsIEVDaGlsZHJlbk9ubHkgY2hpbGRyZW5Pbmx5LCBWZWN0
b3I8UXVhbGlmaWVkTmFtZT4qIHRhZ05hbWVzVG9Ta2lwKQogewogICAgIHNlcmlhbGl6ZU5vZGVz
V2l0aE5hbWVzcGFjZXModGFyZ2V0Tm9kZSwgY2hpbGRyZW5Pbmx5LCAwLCB0YWdOYW1lc1RvU2tp
cCk7Ci0gICAgcmV0dXJuIG1fbWFya3VwLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gbV9tYXJrdXAudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogdm9pZCBNYXJrdXBBY2N1bXVsYXRvcjo6c2VyaWFsaXplTm9kZXNXaXRoTmFt
ZXNwYWNlcyhOb2RlJiB0YXJnZXROb2RlLCBFQ2hpbGRyZW5Pbmx5IGNoaWxkcmVuT25seSwgY29u
c3QgTmFtZXNwYWNlcyogbmFtZXNwYWNlcywgVmVjdG9yPFF1YWxpZmllZE5hbWU+KiB0YWdOYW1l
c1RvU2tpcCkKQEAgLTQ4MywxMSArNDg1LDE0IEBAIHZvaWQgTWFya3VwQWNjdW11bGF0b3I6Omdl
bmVyYXRlVW5pcXVlUHJlZml4KFF1YWxpZmllZE5hbWUmIHByZWZpeGVkTmFtZSwgY29uc3QKICAg
ICAgICAgYnVpbGRlci5jbGVhcigpOwogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIk5T
Iik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKCsrbV9wcmVmaXhMZXZlbCk7Ci0gICAg
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKTsK
LSAgICAgICAgaWYgKCFuYW1lc3BhY2VzLmdldChuYW1lLmltcGwoKSkpIHsKLSAgICAgICAgICAg
IHByZWZpeGVkTmFtZS5zZXRQcmVmaXgobmFtZSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygp
KSB7CisgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUgPSAqc3RyaW5nOworICAg
ICAgICAgICAgaWYgKCFuYW1lc3BhY2VzLmdldChuYW1lLmltcGwoKSkpIHsKKyAgICAgICAgICAg
ICAgICBwcmVmaXhlZE5hbWUuc2V0UHJlZml4KG5hbWUpOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwog
ICAgIH0gd2hpbGUgKHRydWUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1RleHRJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRv
ci5jcHAKaW5kZXggNjU3NGYxZS4uZjU0MzFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4
dEl0ZXJhdG9yLmNwcApAQCAtMjY2NywxMiArMjY2NywxNSBAQCBTdHJpbmcgcGxhaW5UZXh0KGNv
bnN0IFJhbmdlKiByLCBUZXh0SXRlcmF0b3JCZWhhdmlvciBkZWZhdWx0QmVoYXZpb3IsIGJvb2wg
aXNEaQogICAgIGlmICghYnVmZmVyTGVuZ3RoKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmco
KTsKIAotICAgIFN0cmluZyByZXN1bHQgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIFN0cmluZyByZXN1bHQg
PSAqc3RyaW5nOwogCi0gICAgaWYgKGlzRGlzcGxheVN0cmluZykKLSAgICAgICAgci0+b3duZXJE
b2N1bWVudCgpLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcocmVzdWx0KTsKKyAgICAg
ICAgaWYgKGlzRGlzcGxheVN0cmluZykKKyAgICAgICAgICAgIHItPm93bmVyRG9jdW1lbnQoKS5k
aXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKHJlc3VsdCk7CiAKLSAgICByZXR1cm4gcmVz
dWx0OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiBT
dHJpbmcgcGxhaW5UZXh0UmVwbGFjaW5nTm9CcmVha1NwYWNlKGNvbnN0IFJhbmdlKiByYW5nZSwg
VGV4dEl0ZXJhdG9yQmVoYXZpb3IgZGVmYXVsdEJlaGF2aW9yLCBib29sIGlzRGlzcGxheVN0cmlu
ZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmluZGV4IGZkNzkwNjYu
LmJlZTYzZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcApAQCAt
NDI1LDcgKzQyNSw5IEBAIFJlZlB0cjxEYXRhVHJhbnNmZXI+IFR5cGluZ0NvbW1hbmQ6OmlucHV0
RXZlbnREYXRhVHJhbnNmZXIoKSBjb25zdAogCiAgICAgU3RyaW5nQnVpbGRlciBodG1sVGV4dDsK
ICAgICBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kQ2hhcmFjdGVyc1JlcGxhY2luZ0VudGl0aWVz
KGh0bWxUZXh0LCBtX2N1cnJlbnRUZXh0VG9JbnNlcnQsIDAsIG1fY3VycmVudFRleHRUb0luc2Vy
dC5sZW5ndGgoKSwgRW50aXR5TWFza0luSFRNTFBDREFUQSk7Ci0gICAgcmV0dXJuIERhdGFUcmFu
c2Zlcjo6Y3JlYXRlRm9ySW5wdXRFdmVudChtX2N1cnJlbnRUZXh0VG9JbnNlcnQsIGh0bWxUZXh0
LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGh0bWxUZXh0LnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvcklucHV0RXZlbnQobV9jdXJy
ZW50VGV4dFRvSW5zZXJ0LCAqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIFR5cGlu
Z0NvbW1hbmQ6OmRpZEFwcGx5Q29tbWFuZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNp
YmxlU2VsZWN0aW9uLmNwcAppbmRleCAxODY1MGFiLi43M2FjY2M3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKQEAgLTcwNyw3ICs3MDcsMTAgQEAgdm9p
ZCBWaXNpYmxlU2VsZWN0aW9uOjpmb3JtYXRGb3JEZWJ1Z2dlcihjaGFyKiBidWZmZXIsIHVuc2ln
bmVkIGxlbmd0aCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZChzKTsKICAgICB9CiAKLSAg
ICBzdHJuY3B5KGJ1ZmZlciwgcmVzdWx0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbGVuZ3Ro
IC0gMSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAg
IHN0cm5jcHkoYnVmZmVyLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOworICAg
IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBWaXNpYmxlU2VsZWN0aW9uOjpzaG93
VHJlZUZvclRoaXMoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9j
b2NvYS9EYXRhRGV0ZWN0aW9uLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRh
RGV0ZWN0aW9uLm1tCmluZGV4IGY0NDU2MTYuLmU5ODY0NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0KQEAgLTMxOSw3ICszMTksOSBAQCBzdGF0
aWMgU3RyaW5nIGRhdGFEZXRlY3RvclN0cmluZ0ZvclBhdGgoTlNJbmRleFBhdGggKnBhdGgpCiAg
ICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKCh1bnNpZ25lZCBsb25nKVtwYXRoIGlu
ZGV4QXRQb3NpdGlvbjowXSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCcvJyk7CiAg
ICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKCh1bnNpZ25lZCBsb25nKVtwYXRoIGlu
ZGV4QXRQb3NpdGlvbjoxXSk7Ci0gICAgICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KICAg
ICBkZWZhdWx0OiB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsKQEAgLTMy
OSw3ICszMzEsOSBAQCBzdGF0aWMgU3RyaW5nIGRhdGFEZXRlY3RvclN0cmluZ0ZvclBhdGgoTlNJ
bmRleFBhdGggKnBhdGgpCiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcigo
dW5zaWduZWQgbG9uZylbcGF0aCBpbmRleEF0UG9zaXRpb246aV0pOwogICAgICAgICB9CiAKLSAg
ICAgICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbSBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbQppbmRleCA2YjEzOTdlLi41ZDMyOTM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCkBA
IC0yMjU0LDcgKzIyNTQsMTAgQEAgdm9pZCBIVE1MQ29udmVydGVyOjpfcHJvY2Vzc1RleHQoQ2hh
cmFjdGVyRGF0YSYgY2hhcmFjdGVyRGF0YSkKICAgICAgICAgfQogICAgICAgICBpZiAod2FzU3Bh
Y2UpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwotICAgICAgICBvdXRwdXRTdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIG91dHB1dFN0cmluZyA9ICpzdHJpbmc7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgaWYgKG91dHB1dFN0
cmluZy5sZW5ndGgoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3Mv
RWRpdG9ySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tCmlu
ZGV4IDU2MjEzNTUuLjJmZTU0NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
aW9zL0VkaXRvcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJ
T1MubW0KQEAgLTI4NCw3ICsyODQsMTAgQEAgdm9pZCBFZGl0b3I6OnNldERpY3RhdGlvblBocmFz
ZXNBc0NoaWxkT2ZFbGVtZW50KGNvbnN0IFZlY3RvcjxWZWN0b3I8U3RyaW5nPj4mIGQKICAgICBm
b3IgKGF1dG8mIGludGVycHJldGF0aW9ucyA6IGRpY3RhdGlvblBocmFzZXMpCiAgICAgICAgIGRp
Y3RhdGlvblBocmFzZXNCdWlsZGVyLmFwcGVuZChpbnRlcnByZXRhdGlvbnNbMF0pOwogCi0gICAg
ZWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpjb250ZXh0LCBkaWN0
YXRpb25QaHJhc2VzQnVpbGRlci50b1N0cmluZygpKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
ZGljdGF0aW9uUGhyYXNlc0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgZWxlbWVudC5hcHBl
bmRDaGlsZChjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpjb250ZXh0LCAqc3RyaW5nKSk7CisgICAg
ZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgLy8gV2UgbmVlZCBhIGxheW91dCBpbiBvcmRl
ciB0byBhZGQgbWFya2VycyBiZWxvdy4KICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCmluZGV4IDU1NTFlZWMuLmQ1Njg4MTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL21hcmt1cC5jcHAKQEAgLTI5MCw3ICsyOTAsMTAgQEAgdm9pZCBTdHlsZWRNYXJr
dXBBY2N1bXVsYXRvcjo6d3JhcFdpdGhOb2RlKE5vZGUmIG5vZGUsIGJvb2wgY29udmVydEJsb2Nr
c1RvSW5saW4KICAgICAgICAgYXBwZW5kRWxlbWVudChtYXJrdXAsIGRvd25jYXN0PEVsZW1lbnQ+
KG5vZGUpLCBjb252ZXJ0QmxvY2tzVG9JbmxpbmVzICYmIGlzQmxvY2soJm5vZGUpLCByYW5nZUZ1
bGx5U2VsZWN0c05vZGUpOwogICAgIGVsc2UKICAgICAgICAgYXBwZW5kU3RhcnRNYXJrdXAobWFy
a3VwLCBub2RlLCBudWxscHRyKTsKLSAgICBtX3JldmVyc2VkUHJlY2VkaW5nTWFya3VwLmFwcGVu
ZChtYXJrdXAudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWFya3VwLnRvU3Ry
aW5nKCkpCisgICAgICAgIG1fcmV2ZXJzZWRQcmVjZWRpbmdNYXJrdXAuYXBwZW5kKCpzdHJpbmcp
OworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICBhcHBlbmRFbmRUYWcobm9kZSk7CiAg
ICAgaWYgKG1fbm9kZXMpCiAgICAgICAgIG1fbm9kZXMtPmFwcGVuZCgmbm9kZSk7CkBAIC0zMDAs
NyArMzAzLDEwIEBAIHZvaWQgU3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OndyYXBXaXRoU3R5bGVO
b2RlKFN0eWxlUHJvcGVydGllcyogc3R5bGUsIERvY3VtZW50CiB7CiAgICAgU3RyaW5nQnVpbGRl
ciBvcGVuVGFnOwogICAgIGFwcGVuZFN0eWxlTm9kZU9wZW5UYWcob3BlblRhZywgc3R5bGUsIGRv
Y3VtZW50LCBpc0Jsb2NrKTsKLSAgICBtX3JldmVyc2VkUHJlY2VkaW5nTWFya3VwLmFwcGVuZChv
cGVuVGFnLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG9wZW5UYWcudG9TdHJp
bmcoKSkKKyAgICAgICAgbV9yZXZlcnNlZFByZWNlZGluZ01hcmt1cC5hcHBlbmQoKnN0cmluZyk7
CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIGFwcGVuZFN0cmluZyhzdHlsZU5vZGVD
bG9zZVRhZyhpc0Jsb2NrKSk7CiB9CiAKQEAgLTMzNCw3ICszNDAsOSBAQCBTdHJpbmcgU3R5bGVk
TWFya3VwQWNjdW11bGF0b3I6OnRha2VSZXN1bHRzKCkKICAgICBjb25jYXRlbmF0ZU1hcmt1cChy
ZXN1bHQpOwogCiAgICAgLy8gV2UgcmVtb3ZlICdcMCcgY2hhcmFjdGVycyBiZWNhdXNlIHRoZXkg
YXJlIG5vdCB2aXNpYmx5IHJlbmRlcmVkIHRvIHRoZSB1c2VyLgotICAgIHJldHVybiByZXN1bHQu
dG9TdHJpbmcoKS5yZXBsYWNlV2l0aExpdGVyYWwoJ1wwJywgIiIpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gc3RyaW5nLT5yZXBsYWNl
V2l0aExpdGVyYWwoJ1wwJywgIiIpOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgU3R5bGVkTWFy
a3VwQWNjdW11bGF0b3I6OmFwcGVuZFRleHQoU3RyaW5nQnVpbGRlciYgb3V0LCBjb25zdCBUZXh0
JiB0ZXh0KQpAQCAtMzU5LDcgKzM2NywxMCBAQCB2b2lkIFN0eWxlZE1hcmt1cEFjY3VtdWxhdG9y
OjphcHBlbmRUZXh0KFN0cmluZ0J1aWxkZXImIG91dCwgY29uc3QgVGV4dCYgdGV4dCkKICAgICAg
ICAgU3RyaW5nIGNvbnRlbnQgPSB1c2VSZW5kZXJlZFRleHQgPyByZW5kZXJlZFRleHQodGV4dCwg
bV9yYW5nZSkgOiBzdHJpbmdWYWx1ZUZvclJhbmdlKHRleHQsIG1fcmFuZ2UpOwogICAgICAgICBT
dHJpbmdCdWlsZGVyIGJ1ZmZlcjsKICAgICAgICAgYXBwZW5kQ2hhcmFjdGVyc1JlcGxhY2luZ0Vu
dGl0aWVzKGJ1ZmZlciwgY29udGVudCwgMCwgY29udGVudC5sZW5ndGgoKSwgRW50aXR5TWFza0lu
UENEQVRBKTsKLSAgICAgICAgb3V0LmFwcGVuZChjb252ZXJ0SFRNTFRleHRUb0ludGVyY2hhbmdl
Rm9ybWF0KGJ1ZmZlci50b1N0cmluZygpLCAmdGV4dCkpOworICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWZmZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIG91dC5hcHBlbmQoY29udmVydEhU
TUxUZXh0VG9JbnRlcmNoYW5nZUZvcm1hdCgqc3RyaW5nLCAmdGV4dCkpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIGlmICh3cmFwcGluZ1NwYW4pCkBA
IC04NzMsNyArODg0LDkgQEAgU3RyaW5nIHNhbml0aXplZE1hcmt1cEZvckZyYWdtZW50SW5Eb2N1
bWVudChSZWY8RG9jdW1lbnRGcmFnbWVudD4mJiBmcmFnbWVudCwgRG8KICAgICAgICAgICAgICJ4
bWxucz1cImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDBcIj4iKTsKICAgICAgICAgYnVp
bGRlci5hcHBlbmQocmVzdWx0KTsKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8L2h0
bWw+Iik7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIHJldHVybiByZXN1bHQ7CkBAIC0x
MDkyLDcgKzExMDUsOSBAQCBTdHJpbmcgdXJsVG9NYXJrdXAoY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFN0cmluZyYgdGl0bGUpCiAgICAgbWFya3VwLmFwcGVuZExpdGVyYWwoIlwiPiIpOwogICAgIE1h
cmt1cEFjY3VtdWxhdG9yOjphcHBlbmRDaGFyYWN0ZXJzUmVwbGFjaW5nRW50aXRpZXMobWFya3Vw
LCB0aXRsZSwgMCwgdGl0bGUubGVuZ3RoKCksIEVudGl0eU1hc2tJblBDREFUQSk7CiAgICAgbWFy
a3VwLmFwcGVuZExpdGVyYWwoIjwvYT4iKTsKLSAgICByZXR1cm4gbWFya3VwLnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWFya3VwLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIEV4Y2VwdGlvbk9yPFJlZjxEb2N1bWVudEZy
YWdtZW50Pj4gY3JlYXRlRnJhZ21lbnRGb3JJbm5lck91dGVySFRNTChFbGVtZW50JiBjb250ZXh0
RWxlbWVudCwgY29uc3QgU3RyaW5nJiBtYXJrdXAsIFBhcnNlckNvbnRlbnRQb2xpY3kgcGFyc2Vy
Q29udGVudFBvbGljeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJl
YWRlckxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIu
Y3BwCmluZGV4IDlhMjIzNGYuLjI4MzQ1YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9G
aWxlUmVhZGVyTG9hZGVyLmNwcApAQCAtMzM3LDIwICszMzcsMjAgQEAgdm9pZCBGaWxlUmVhZGVy
TG9hZGVyOjpjb252ZXJ0VG9EYXRhVVJMKCkKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAg
ICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJkYXRhOiIpOwogCi0gICAgaWYgKCFtX2J5dGVzTG9h
ZGVkKSB7Ci0gICAgICAgIG1fc3RyaW5nUmVzdWx0ID0gYnVpbGRlci50b1N0cmluZygpOwotICAg
ICAgICByZXR1cm47CisgICAgaWYgKG1fYnl0ZXNMb2FkZWQpIHsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQobV9kYXRhVHlwZSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiO2Jhc2U2
NCwiKTsKKworICAgICAgICBWZWN0b3I8Y2hhcj4gb3V0OworICAgICAgICBiYXNlNjRFbmNvZGUo
bV9yYXdEYXRhLT5kYXRhKCksIG1fYnl0ZXNMb2FkZWQsIG91dCk7CisgICAgICAgIG91dC5hcHBl
bmQoJ1wwJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG91dC5kYXRhKCkpOwogICAgIH0KIAot
ICAgIGJ1aWxkZXIuYXBwZW5kKG1fZGF0YVR5cGUpOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiO2Jhc2U2NCwiKTsKLQotICAgIFZlY3RvcjxjaGFyPiBvdXQ7Ci0gICAgYmFzZTY0RW5jb2Rl
KG1fcmF3RGF0YS0+ZGF0YSgpLCBtX2J5dGVzTG9hZGVkLCBvdXQpOwotICAgIG91dC5hcHBlbmQo
J1wwJyk7Ci0gICAgYnVpbGRlci5hcHBlbmQob3V0LmRhdGEoKSk7Ci0KLSAgICBtX3N0cmluZ1Jl
c3VsdCA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIG1fc3RyaW5nUmVzdWx0ID0gKnN0cmluZzsKKyAgICBlbHNl
CisgICAgICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgRmlsZVJlYWRlckxvYWRlcjo6aXNDb21wbGV0
ZWQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCmluZGV4IGM5NWY5Njku
LmRiNDI5NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKQEAgLTI3MywxMCAr
MjczLDEzIEBAIHZvaWQgRE9NVG9rZW5MaXN0Ojp1cGRhdGVBc3NvY2lhdGVkQXR0cmlidXRlRnJv
bVRva2VucygpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgICAgICBidWls
ZGVyLmFwcGVuZCh0b2tlbik7CiAgICAgfQotICAgIEF0b21pY1N0cmluZyBzZXJpYWxpemVkVmFs
dWUgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVp
bGRlci50b0F0b21pY1N0cmluZygpKSB7CisgICAgICAgIEF0b21pY1N0cmluZyBzZXJpYWxpemVk
VmFsdWUgPSAqc3RyaW5nOwogCi0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaW5BdHRyaWJ1dGVVcGRh
dGUobV9pblVwZGF0ZUFzc29jaWF0ZWRBdHRyaWJ1dGVGcm9tVG9rZW5zLCB0cnVlKTsKLSAgICBt
X2VsZW1lbnQuc2V0QXR0cmlidXRlKG1fYXR0cmlidXRlTmFtZSwgc2VyaWFsaXplZFZhbHVlKTsK
KyAgICAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaW5BdHRyaWJ1dGVVcGRhdGUobV9pblVwZGF0ZUFz
c29jaWF0ZWRBdHRyaWJ1dGVGcm9tVG9rZW5zLCB0cnVlKTsKKyAgICAgICAgbV9lbGVtZW50LnNl
dEF0dHJpYnV0ZShtX2F0dHJpYnV0ZU5hbWUsIHNlcmlhbGl6ZWRWYWx1ZSk7CisgICAgfSBlbHNl
CisgICAgICAgIENSQVNIKCk7CiB9CiAKIFZlY3RvcjxBdG9taWNTdHJpbmc+JiBET01Ub2tlbkxp
c3Q6OnRva2VucygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRU
eXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwCmluZGV4IGI5
M2UxMmIuLjU4MzZjN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwCkBA
IC0xMDQsNyArMTA0LDkgQEAgU3RyaW5nIEVtYWlsSW5wdXRUeXBlOjpzYW5pdGl6ZVZhbHVlKGNv
bnN0IFN0cmluZyYgcHJvcG9zZWRWYWx1ZSkgY29uc3QKICAgICAgICAgICAgIHN0cmlwcGVkVmFs
dWUuYXBwZW5kKCcsJyk7CiAgICAgICAgIHN0cmlwcGVkVmFsdWUuYXBwZW5kKHN0cmlwTGVhZGlu
Z0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhhZGRyZXNzZXNbaV0pKTsKICAgICB9Ci0gICAgcmV0dXJu
IHN0cmlwcGVkVmFsdWUudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpcHBl
ZFZhbHVlLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5
cGUuY3BwCmluZGV4IDNlNTVhMDUuLmZkYzQ5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5w
dXRUeXBlLmNwcApAQCAtNDY3LDcgKzQ2Nyw5IEBAIFN0cmluZyBGaWxlSW5wdXRUeXBlOjpkZWZh
dWx0VG9vbFRpcCgpIGNvbnN0CiAgICAgICAgIGlmIChpICE9IGxpc3RTaXplIC0gMSkKICAgICAg
ICAgICAgIG5hbWVzLmFwcGVuZCgnXG4nKTsKICAgICB9Ci0gICAgcmV0dXJuIG5hbWVzLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbmFtZXMudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9y
bUNvbnRyb2xsZXIuY3BwCmluZGV4IDBmNWI3NzUuLjFhMjlhNDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRm9ybUNvbnRyb2xsZXIuY3BwCkBAIC0zMTIsNyArMzEyLDkgQEAgc3RhdGljIGlubGluZSBT
dHJpbmcgZm9ybVNpZ25hdHVyZShjb25zdCBIVE1MRm9ybUVsZW1lbnQmIGZvcm0pCiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKGFjdGlvblVSTC5zdHJpbmcoKSk7CiAKICAgICByZWNvcmRGb3JtU3Ry
dWN0dXJlKGZvcm0sIGJ1aWxkZXIpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBBdG9taWNTdHJpbmcgRm9ybUtleUdlbmVyYXRv
cjo6Zm9ybUtleShjb25zdCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlJiBjb250cm9s
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAppbmRleCA3MTUyMzE3
Li5hNzAyNmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcApA
QCAtNDAwLDEwICs0MDAsMTQgQEAgdm9pZCBIVE1MQW5jaG9yRWxlbWVudDo6aGFuZGxlQ2xpY2so
RXZlbnQmIGV2ZW50KQogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIFN0
cmluZ0J1aWxkZXIgdXJsOwotICAgIHVybC5hcHBlbmQoc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdI
VE1MU3BhY2VzKGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oaHJlZkF0dHIpKSk7Ci0g
ICAgYXBwZW5kU2VydmVyTWFwTW91c2VQb3NpdGlvbih1cmwsIGV2ZW50KTsKLSAgICBVUkwgY29t
cGxldGVkVVJMID0gZG9jdW1lbnQoKS5jb21wbGV0ZVVSTCh1cmwudG9TdHJpbmcoKSk7CisgICAg
VVJMIGNvbXBsZXRlZFVSTCA9IGRvY3VtZW50KCkuY29tcGxldGVVUkwoWyZdICgpIHsKKyAgICAg
ICAgU3RyaW5nQnVpbGRlciB1cmw7CisgICAgICAgIHVybC5hcHBlbmQoc3RyaXBMZWFkaW5nQW5k
VHJhaWxpbmdIVE1MU3BhY2VzKGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oaHJlZkF0
dHIpKSk7CisgICAgICAgIGFwcGVuZFNlcnZlck1hcE1vdXNlUG9zaXRpb24odXJsLCBldmVudCk7
CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHVybC50b1N0cmluZygpKQorICAgICAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CisgICAgfSgpKTsKIAogICAgIFN0cmlu
ZyBkb3dubG9hZEF0dHJpYnV0ZTsKICNpZiBFTkFCTEUoRE9XTkxPQURfQVRUUklCVVRFKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAppbmRleCA2NjRlZGYwLi5iNjdi
NGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApAQCAtMzM2
LDggKzMzNiwxMSBAQCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqIEhUTUxDYW52YXNFbGVtZW50
OjpjcmVhdGVDb250ZXh0MmQoY29uc3QgU3RyaW5nJiB0eXBlKQogICAgICAgICBzdHJpbmdCdWls
ZGVyLmFwcGVuZExpdGVyYWwoIlRvdGFsIGNhbnZhcyBtZW1vcnkgdXNlIGV4Y2VlZHMgdGhlIG1h
eGltdW0gbGltaXQgKCIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcihtYXhB
Y3RpdmVQaXhlbE1lbW9yeSgpIC8gMTAyNCAvIDEwMjQpOwogICAgICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZExpdGVyYWwoIiBNQikuIik7Ci0gICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29sZU1l
c3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgc3RyaW5nQnVp
bGRlci50b1N0cmluZygpKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgZG9j
dW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVs
OjpXYXJuaW5nLCAqc3RyaW5nKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAg
ICB9CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgbV9jb250ZXh0ID0gQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpjcmVhdGUoKnRoaXMsIGRvY3VtZW50KCkuaW5RdWlya3NNb2RlKCks
IHVzZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSk7CkBAIC04ODksOCArODkyLDExIEBAIHZv
aWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUltYWdlQnVmZmVyKCkgY29uc3QKICAgICAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJDYW52YXMgYXJlYSBleGNlZWRzIHRoZSBtYXhp
bXVtIGxpbWl0ICh3aWR0aCAqIGhlaWdodCA+ICIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZE51bWJlcihtYXhDYW52YXNBcmVhKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRM
aXRlcmFsKCIpLiIpOwotICAgICAgICBkb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKSk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5n
QnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICBkb2N1bWVudCgpLmFkZENvbnNvbGVN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICpzdHJpbmcp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIENSQVNIKCk7CiAgICAg
fQogICAgIAogICAgIC8vIE1ha2Ugc3VyZSB3ZSBkb24ndCB1c2UgbW9yZSBwaXhlbCBtZW1vcnkg
dGhhbiB0aGUgc3lzdGVtIGNhbiBzdXBwb3J0LgpAQCAtOTAwLDggKzkwNiwxMSBAQCB2b2lkIEhU
TUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcigpIGNvbnN0CiAgICAgICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiVG90YWwgY2FudmFzIG1lbW9yeSB1c2UgZXhjZWVkcyB0
aGUgbWF4aW11bSBsaW1pdCAoIik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVy
KG1heEFjdGl2ZVBpeGVsTWVtb3J5KCkgLyAxMDI0IC8gMTAyNCk7CiAgICAgICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIE1CKS4iKTsKLSAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25z
b2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCkpOwotICAgICAgICByZXR1cm47CisgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgZG9jdW1l
bnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpX
YXJuaW5nLCAqc3RyaW5nKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAg
ICBDUkFTSCgpOwogICAgIH0KIAogICAgIGlmICghd2lkdGgoKSB8fCAhaGVpZ2h0KCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5jcHAKaW5kZXggOGQ2YzM0Ny4uYzM1YTY3ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVtZW50LmNwcApAQCAtMTExLDEwICsxMTEs
MTMgQEAgc3RhdGljIGJvb2wgcGFyc2VGb250U2l6ZShjb25zdCBDaGFyYWN0ZXJUeXBlKiBjaGFy
YWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIGludCYKICAgICAvLyBTdGVwIDgKICAgICBpbnQgdmFs
dWU7CiAKKyAgICBpZiAoZGlnaXRzLmZhaWxlZCgpKQorICAgICAgICBDUkFTSCgpOworCiAgICAg
aWYgKGRpZ2l0cy5pczhCaXQoKSkKLSAgICAgICAgdmFsdWUgPSBjaGFyYWN0ZXJzVG9JbnRTdHJp
Y3QoZGlnaXRzLmNoYXJhY3RlcnM4KCksIGRpZ2l0cy5sZW5ndGgoKSk7CisgICAgICAgIHZhbHVl
ID0gY2hhcmFjdGVyc1RvSW50U3RyaWN0KCpkaWdpdHMuY2hhcmFjdGVyczgoKSwgZGlnaXRzLmxl
bmd0aCgpKTsKICAgICBlbHNlCi0gICAgICAgIHZhbHVlID0gY2hhcmFjdGVyc1RvSW50U3RyaWN0
KGRpZ2l0cy5jaGFyYWN0ZXJzMTYoKSwgZGlnaXRzLmxlbmd0aCgpKTsKKyAgICAgICAgdmFsdWUg
PSBjaGFyYWN0ZXJzVG9JbnRTdHJpY3QoKmRpZ2l0cy5jaGFyYWN0ZXJzMTYoKSwgZGlnaXRzLmxl
bmd0aCgpKTsKIAogICAgIC8vIFN0ZXAgOQogICAgIGlmIChtb2RlID09IFJlbGF0aXZlUGx1cykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDRmNjU5N2MuLmEy
ZTFjMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcApAQCAtNDc0
LDcgKzQ3NCw5IEBAIFN0cmluZyBIVE1MSW1hZ2VFbGVtZW50Ojpjb21wbGV0ZVVSTHNJbkF0dHJp
YnV0ZVZhbHVlKGNvbnN0IFVSTCYgYmFzZSwgY29uc3QgQXR0CiAgICAgICAgICAgICAgICAgcmVz
dWx0LmFwcGVuZCgndycpOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIHJldHVy
biByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRv
U3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsK
ICAgICB9CiAgICAgcmV0dXJuIEhUTUxFbGVtZW50Ojpjb21wbGV0ZVVSTHNJbkF0dHJpYnV0ZVZh
bHVlKGJhc2UsIGF0dHJpYnV0ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcAppbmRleCBkZTFjMmU4Li4zNmZiY2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAKQEAgLTIzMiw5ICsyMzIsMTIgQEAgc3RhdGljIFN0cmluZyBhY3Rp
b25OYW1lKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6RGVsYXllZEFjdGlvblR5cGUgYWN0aW9uKQog
CiAjdW5kZWYgQUNUSU9OCiAKLSAgICBTdHJpbmcgbmFtZSA9IGFjdGlvbkJ1aWxkZXIudG9TdHJp
bmcoKTsKLSAgICBBU1NFUlQoIW5hbWUuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gbmFtZTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBhY3Rpb25CdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAg
U3RyaW5nIG5hbWUgPSAqc3RyaW5nOworICAgICAgICBBU1NFUlQoIW5hbWUuaXNFbXB0eSgpKTsK
KyAgICAgICAgcmV0dXJuIG5hbWU7CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAppbmRleCA5ZjZkYWQyLi5m
YTk4YWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcApAQCAt
MzQ5LDcgKzM0OSw5IEBAIFN0cmluZyBIVE1MT3B0aW9uRWxlbWVudDo6Y29sbGVjdE9wdGlvbklu
bmVyVGV4dCgpIGNvbnN0CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG5vZGUgPSBOb2RlVHJh
dmVyc2FsOjpuZXh0KCpub2RlLCB0aGlzKTsKICAgICB9Ci0gICAgcmV0dXJuIHRleHQudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0ZXh0LnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4
IGVkMTQ4NTcuLmQwZmI0YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC0xNDMsNyArMTQzLDkgQEAgU3RyaW5nIEhUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzdHJpcHBlZFBsYWNlaG9sZGVyKCkgY29uc3QKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICBzdHJpcHBlZC5hcHBlbmQoY2hhcmFjdGVyKTsKICAg
ICB9Ci0gICAgcmV0dXJuIHN0cmlwcGVkLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gc3RyaXBwZWQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogc3RhdGljIGJvb2wgaXNOb3RMaW5lQnJlYWsoVUNoYXIgY2gpIHsgcmV0dXJu
IGNoICE9IG5ld2xpbmVDaGFyYWN0ZXIgJiYgY2ggIT0gY2FycmlhZ2VSZXR1cm47IH0KQEAgLTU1
Miw3ICs1NTQsOSBAQCBzdGF0aWMgU3RyaW5nIGlubmVyVGV4dFZhbHVlRnJvbShUZXh0Q29udHJv
bElubmVyVGV4dEVsZW1lbnQmIGlubmVyVGV4dCkKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQo
ZG93bmNhc3Q8VGV4dD4oKm5vZGUpLmRhdGEoKSk7CiAgICAgfQogICAgIHN0cmlwVHJhaWxpbmdO
ZXdsaW5lKHJlc3VsdCk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRJ
bm5lclRleHRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQpAQCAtNzM2LDcgKzc0MCw5IEBAIFN0
cmluZyBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6dmFsdWVXaXRoSGFyZExpbmVCcmVha3Mo
KSBjb25zdAogICAgICAgICAgICAgZ2V0TmV4dFNvZnRCcmVhayhsaW5lLCBicmVha05vZGUsIGJy
ZWFrT2Zmc2V0KTsKICAgICB9CiAgICAgc3RyaXBUcmFpbGluZ05ld2xpbmUocmVzdWx0KTsKLSAg
ICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50KiBlbmNsb3NpbmdUZXh0Rm9ybUNvbnRyb2woY29u
c3QgUG9zaXRpb24mIHBvc2l0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9N
ZWRpYURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAK
aW5kZXggMTE5MzQwZi4uNjk3NzEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9N
ZWRpYURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQu
Y3BwCkBAIC0xMjEsNyArMTIxLDEwIEBAIHZvaWQgTWVkaWFEb2N1bWVudFBhcnNlcjo6Y3JlYXRl
RG9jdW1lbnRTdHJ1Y3R1cmUoKQogI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgZWxlbWVudFN0
eWxlLmFwcGVuZExpdGVyYWwoIndpZHRoOiAxMDAlOyBoZWlnaHQ6IGF1dG87Iik7CiAjZW5kaWYK
LSAgICAgICAgdmlkZW9FbGVtZW50LT5zZXRBdHRyaWJ1dGUoc3R5bGVBdHRyLCBlbGVtZW50U3R5
bGUudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGVsZW1lbnRTdHlsZS50
b1N0cmluZygpKQorICAgICAgICAgICAgdmlkZW9FbGVtZW50LT5zZXRBdHRyaWJ1dGUoc3R5bGVB
dHRyLCAqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9
CiAKICAgICBib2R5LT5hcHBlbmRDaGlsZCh2aWRlb0VsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKaW5kZXggNWNkNzkwNS4uNmY0ZTBmOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCkBAIC04Niw3ICs4
Niw5IEBAIHN0YXRpYyBTdHJpbmcgcmVzdHJpY3Rpb25OYW1lKE1lZGlhRWxlbWVudFNlc3Npb246
OkJlaGF2aW9yUmVzdHJpY3Rpb25zIHJlc3RyaWN0CiAgICAgQ0FTRShJbnZpc2libGVBdXRvcGxh
eU5vdFBlcm1pdHRlZCk7CiAgICAgQ0FTRShPdmVycmlkZVVzZXJHZXN0dXJlUmVxdWlyZW1lbnRG
b3JNYWluQ29udGVudCk7CiAKLSAgICByZXR1cm4gcmVzdHJpY3Rpb25CdWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdHJpY3Rpb25CdWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUZyYWdtZW50VVJJUGFyc2VyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFGcmFnbWVudFVSSVBhcnNlci5jcHAKaW5kZXggZTdh
NTE2ZS4uMzA1YjY2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUZyYWdt
ZW50VVJJUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRnJhZ21lbnRV
UklQYXJzZXIuY3BwCkBAIC01Miw3ICs1Miw5IEBAIHN0YXRpYyBTdHJpbmcgY29sbGVjdERpZ2l0
cyhjb25zdCBMQ2hhciogaW5wdXQsIHVuc2lnbmVkIGxlbmd0aCwgdW5zaWduZWQmIHBvc2l0CiAg
ICAgLy8gRElHSVQgOyBhbnkgcG9zaXRpdmUgbnVtYmVyCiAgICAgd2hpbGUgKHBvc2l0aW9uIDwg
bGVuZ3RoICYmIGlzQVNDSUlEaWdpdChpbnB1dFtwb3NpdGlvbl0pKQogICAgICAgICBkaWdpdHMu
YXBwZW5kKGlucHV0W3Bvc2l0aW9uKytdKTsKLSAgICByZXR1cm4gZGlnaXRzLnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gZGlnaXRzLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgY29sbGVjdEZyYWN0
aW9uKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCYgcG9zaXRp
b24pCkBAIC02Nyw3ICs2OSw5IEBAIHN0YXRpYyBTdHJpbmcgY29sbGVjdEZyYWN0aW9uKGNvbnN0
IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCYgcG9zCiAgICAgZGlnaXRz
LmFwcGVuZChpbnB1dFtwb3NpdGlvbisrXSk7CiAgICAgd2hpbGUgKHBvc2l0aW9uIDwgbGVuZ3Ro
ICYmIGlzQVNDSUlEaWdpdChpbnB1dFtwb3NpdGlvbl0pKQogICAgICAgICBkaWdpdHMuYXBwZW5k
KGlucHV0W3Bvc2l0aW9uKytdKTsKLSAgICByZXR1cm4gZGlnaXRzLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gZGlnaXRzLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIE1lZGlhRnJhZ21lbnRVUklQYXJzZXI6Ok1lZGlhRnJh
Z21lbnRVUklQYXJzZXIoY29uc3QgVVJMJiB1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1R5cGVBaGVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAK
aW5kZXggNzY0ZTUwMi4uM2VlYzQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9U
eXBlQWhlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcApAQCAt
ODAsNyArODAsMTAgQEAgaW50IFR5cGVBaGVhZDo6aGFuZGxlRXZlbnQoS2V5Ym9hcmRFdmVudCog
ZXZlbnQsIE1hdGNoTW9kZUZsYWdzIG1hdGNoTW9kZSkKICAgICAgICAgcHJlZml4ID0gU3RyaW5n
KCZjLCAxKTsKICAgICAgICAgbV9yZXBlYXRpbmdDaGFyID0gYzsKICAgICB9IGVsc2UgaWYgKG1h
dGNoTW9kZSAmIE1hdGNoUHJlZml4KSB7Ci0gICAgICAgIHByZWZpeCA9IG1fYnVmZmVyLnRvU3Ry
aW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IG1fYnVmZmVyLnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICBwcmVmaXggPSAqc3RyaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBD
UkFTSCgpOwogICAgICAgICBpZiAobV9idWZmZXIubGVuZ3RoKCkgPiAxKSB7CiAgICAgICAgICAg
ICBtX3JlcGVhdGluZ0NoYXIgPSAwOwogICAgICAgICAgICAgc2VhcmNoU3RhcnRPZmZzZXQgPSAw
OwpAQCAtMTA0LDkgKzEwNywxMiBAQCBpbnQgVHlwZUFoZWFkOjpoYW5kbGVFdmVudChLZXlib2Fy
ZEV2ZW50KiBldmVudCwgTWF0Y2hNb2RlRmxhZ3MgbWF0Y2hNb2RlKQogCiAgICAgaWYgKG1hdGNo
TW9kZSAmIE1hdGNoSW5kZXgpIHsKICAgICAgICAgYm9vbCBvayA9IGZhbHNlOwotICAgICAgICBp
bnQgaW5kZXggPSBtX2J1ZmZlci50b1N0cmluZygpLnRvSW50KCZvayk7Ci0gICAgICAgIGlmIChp
bmRleCA+IDAgJiYgaW5kZXggPD0gb3B0aW9uQ291bnQpCi0gICAgICAgICAgICByZXR1cm4gaW5k
ZXggLSAxOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBtX2J1ZmZlci50b1N0cmluZygpKSB7
CisgICAgICAgICAgICBpbnQgaW5kZXggPSBzdHJpbmctPnRvSW50KCZvayk7CisgICAgICAgICAg
ICBpZiAoaW5kZXggPiAwICYmIGluZGV4IDw9IG9wdGlvbkNvdW50KQorICAgICAgICAgICAgICAg
IHJldHVybiBpbmRleCAtIDE7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsK
ICAgICB9CiAgICAgcmV0dXJuIC0xOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKaW5kZXggYzI3YWYyMy4uZDk0
ZmNlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuY3BwCkBAIC0xMTcsNyArMTE3LDkgQEAgU3RyaW5nIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6Zm9udCgpIGNvbnN0CiAgICAgICAgIHNlcmlhbGl6ZWRGb250LmFw
cGVuZChmYW1pbHkpOwogICAgIH0KIAotICAgIHJldHVybiBzZXJpYWxpemVkRm9udC50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHNlcmlhbGl6ZWRGb250LnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpzZXRGb250KGNvbnN0IFN0cmluZyYgbmV3Rm9udCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJh
c2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQmFzZS5jcHAKaW5kZXggNzY4YzBmYy4uN2E4OGNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5j
cHAKQEAgLTIxNzIsOCArMjE3MiwxMSBAQCBFeGNlcHRpb25PcjxSZWZQdHI8SW1hZ2VEYXRhPj4g
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6Z2V0SW1hZ2VEYXRhKEltYWdlQgogICAgICAg
ICBjb25zb2xlTWVzc2FnZS5hcHBlbmRMaXRlcmFsKCIgeCAiKTsKICAgICAgICAgY29uc29sZU1l
c3NhZ2UuYXBwZW5kTnVtYmVyKGltYWdlRGF0YVJlY3QuaGVpZ2h0KCkpOwogCi0gICAgICAgIGNh
bnZhc0Jhc2UoKS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFkZENvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2U6OlJlbmRlcmluZywgTWVzc2FnZUxldmVsOjpFcnJvciwgY29uc29sZU1lc3Nh
Z2UudG9TdHJpbmcoKSk7Ci0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciB9OworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBjb25zb2xlTWVzc2FnZS50b1N0cmlu
ZygpKSB7CisgICAgICAgICAgICBjYW52YXNCYXNlKCkuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpSZW5kZXJpbmcsIE1lc3NhZ2VMZXZl
bDo6RXJyb3IsICpzdHJpbmcpOworICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yIH07CisgICAgICAgIH0KKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAg
ICByZXR1cm4gSW1hZ2VEYXRhOjpjcmVhdGUoaW1hZ2VEYXRhUmVjdC5zaXplKCksIGJ5dGVBcnJh
eS5yZWxlYXNlTm9uTnVsbCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXggNzg3NWRhOC4uY2Q1ZWUx
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTE2Miw3ICsxNjIsOSBAQCBuYW1lc3BhY2UgewogCiAg
ICAgICAgIFN0cmluZyByZXN1bHQoKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbV9i
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBtX2J1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAg
ICAgIENSQVNIKCk7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU291cmNlVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MU291cmNlVHJhY2tlci5jcHAKaW5kZXggMjJkYmE5MC4uODBi
MWU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNvdXJjZVRy
YWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTb3VyY2VUcmFj
a2VyLmNwcApAQCAtODMsOCArODMsMTEgQEAgU3RyaW5nIEhUTUxTb3VyY2VUcmFja2VyOjpzb3Vy
Y2UoY29uc3QgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgbV9jdXJyZW50U291cmNlLmFkdmFu
Y2UoKTsKICAgICB9CiAKLSAgICBtX2NhY2hlZFNvdXJjZUZvclRva2VuID0gc291cmNlLnRvU3Ry
aW5nKCk7Ci0gICAgcmV0dXJuIG1fY2FjaGVkU291cmNlRm9yVG9rZW47CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gc291cmNlLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgbV9jYWNoZWRTb3VyY2VGb3JU
b2tlbiA9ICpzdHJpbmc7CisgICAgICAgIHJldHVybiBtX2NhY2hlZFNvdXJjZUZvclRva2VuOwor
ICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgSFRNTFNvdXJjZVRyYWNrZXI6OnNvdXJj
ZShjb25zdCBIVE1MVG9rZW4mIHRva2VuLCB1bnNpZ25lZCBhdHRyaWJ1dGVTdGFydCwgdW5zaWdu
ZWQgYXR0cmlidXRlRW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFRva2VuaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVG9rZW5p
emVyLmNwcAppbmRleCA4YWMyZjg1Li4zNjRlYzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MVG9rZW5pemVyLmNwcApAQCAtMTQxLDggKzE0MSwxMCBAQCBpbmxpbmUgYm9v
bCBIVE1MVG9rZW5pemVyOjpwcm9jZXNzRW50aXR5KFNlZ21lbnRlZFN0cmluZyYgc291cmNlKQog
ICAgICAgICBBU1NFUlQoZGVjb2RlZEVudGl0eS5pc0VtcHR5KCkpOwogICAgICAgICBidWZmZXJB
U0NJSUNoYXJhY3RlcignJicpOwogICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChkZWNvZGVkRW50
aXR5LmZhaWxlZCgpKQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IGRlY29kZWRFbnRpdHkubGVuZ3RoKCk7ICsraSkKLSAgICAgICAgICAgIGJ1
ZmZlckNoYXJhY3RlcihkZWNvZGVkRW50aXR5W2ldKTsKKyAgICAgICAgICAgIGJ1ZmZlckNoYXJh
Y3RlcigqZGVjb2RlZEVudGl0eVtpXSk7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwogfQpAQCAt
ODYzLDggKzg2NSwxMCBAQCBib29sIEhUTUxUb2tlbml6ZXI6OnByb2Nlc3NUb2tlbihTZWdtZW50
ZWRTdHJpbmcmIHNvdXJjZSkKICAgICAgICAgICAgIEFTU0VSVChkZWNvZGVkRW50aXR5LmlzRW1w
dHkoKSk7CiAgICAgICAgICAgICBtX3Rva2VuLmFwcGVuZFRvQXR0cmlidXRlVmFsdWUoJyYnKTsK
ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChkZWNvZGVkRW50aXR5LmZhaWxlZCgp
KQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgZGVjb2RlZEVudGl0eS5sZW5ndGgoKTsgKytpKQotICAgICAgICAgICAgICAgIG1f
dG9rZW4uYXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZShkZWNvZGVkRW50aXR5W2ldKTsKKyAgICAgICAg
ICAgICAgICBtX3Rva2VuLmFwcGVuZFRvQXR0cmlidXRlVmFsdWUoKmRlY29kZWRFbnRpdHlbaV0p
OwogICAgICAgICB9CiAgICAgICAgIC8vIFdlJ3JlIHN1cHBvc2VkIHRvIHN3aXRjaCBiYWNrIHRv
IHRoZSBhdHRyaWJ1dGUgdmFsdWUgc3RhdGUgdGhhdAogICAgICAgICAvLyB3ZSB3ZXJlIGluIHdo
ZW4gd2Ugd2VyZSBzd2l0Y2hlZCBpbnRvIHRoaXMgc3RhdGUuIFJhdGhlciB0aGFuCkBAIC0xNDAz
LDcgKzE0MDcsOSBAQCBTdHJpbmcgSFRNTFRva2VuaXplcjo6YnVmZmVyZWRDaGFyYWN0ZXJzKCkg
Y29uc3QKICAgICBjaGFyYWN0ZXJzLmFwcGVuZCgnPCcpOwogICAgIGNoYXJhY3RlcnMuYXBwZW5k
KCcvJyk7CiAgICAgY2hhcmFjdGVycy5hcHBlbmQobV90ZW1wb3JhcnlCdWZmZXIuZGF0YSgpLCBt
X3RlbXBvcmFyeUJ1ZmZlci5zaXplKCkpOwotICAgIHJldHVybiBjaGFyYWN0ZXJzLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gY2hhcmFjdGVycy50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIEhUTUxUb2tlbml6ZXI6
OnVwZGF0ZVN0YXRlRm9yKGNvbnN0IEF0b21pY1N0cmluZyYgdGFnTmFtZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCmluZGV4IGIxMGE0YzQuLjg5
OWQ0YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVp
bGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVy
LmNwcApAQCAtMjU2OSwxOSArMjU2OSwyMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6ZGVmYXVs
dEZvckFmdGVySGVhZCgpCiAKIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpkZWZhdWx0Rm9ySW5UYWJs
ZVRleHQoKQogewotICAgIFN0cmluZyBjaGFyYWN0ZXJzID0gbV9wZW5kaW5nVGFibGVDaGFyYWN0
ZXJzLnRvU3RyaW5nKCk7Ci0gICAgbV9wZW5kaW5nVGFibGVDaGFyYWN0ZXJzLmNsZWFyKCk7Ci0g
ICAgaWYgKCFpc0FsbFdoaXRlc3BhY2UoY2hhcmFjdGVycykpIHsKLSAgICAgICAgLy8gRklYTUU6
IHBhcnNlIGVycm9yCi0gICAgICAgIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpSZWRpcmVjdFRvRm9z
dGVyUGFyZW50R3VhcmQgcmVkaXJlY3RlcihtX3RyZWUpOwotICAgICAgICBtX3RyZWUucmVjb25z
dHJ1Y3RUaGVBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKLSAgICAgICAgbV90cmVlLmluc2Vy
dFRleHROb2RlKGNoYXJhY3RlcnMsIE5vdEFsbFdoaXRlc3BhY2UpOwotICAgICAgICBtX2ZyYW1l
c2V0T2sgPSBmYWxzZTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtX3BlbmRpbmdUYWJsZUNoYXJh
Y3RlcnMudG9TdHJpbmcoKSkgeworICAgICAgICBTdHJpbmcgY2hhcmFjdGVycyA9ICpzdHJpbmc7
CisgICAgICAgIG1fcGVuZGluZ1RhYmxlQ2hhcmFjdGVycy5jbGVhcigpOworICAgICAgICBpZiAo
IWlzQWxsV2hpdGVzcGFjZShjaGFyYWN0ZXJzKSkgeworICAgICAgICAgICAgLy8gRklYTUU6IHBh
cnNlIGVycm9yCisgICAgICAgICAgICBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6UmVkaXJlY3RUb0Zv
c3RlclBhcmVudEd1YXJkIHJlZGlyZWN0ZXIobV90cmVlKTsKKyAgICAgICAgICAgIG1fdHJlZS5y
ZWNvbnN0cnVjdFRoZUFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpOworICAgICAgICAgICAgbV90
cmVlLmluc2VydFRleHROb2RlKGNoYXJhY3RlcnMsIE5vdEFsbFdoaXRlc3BhY2UpOworICAgICAg
ICAgICAgbV9mcmFtZXNldE9rID0gZmFsc2U7CisgICAgICAgICAgICBtX2luc2VydGlvbk1vZGUg
PSBtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgICAgICBtX3RyZWUuaW5zZXJ0VGV4dE5vZGUoY2hhcmFjdGVycyk7CiAgICAgICAgIG1f
aW5zZXJ0aW9uTW9kZSA9IG1fb3JpZ2luYWxJbnNlcnRpb25Nb2RlOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotICAgIG1fdHJlZS5pbnNlcnRUZXh0Tm9kZShjaGFyYWN0ZXJzKTsKLSAgICBtX2lu
c2VydGlvbk1vZGUgPSBtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZTsKKyAgICB9IGVsc2UKKyAgICAg
ICAgQ1JBU0goKTsKIH0KIAogYm9vbCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0Zv
ckluSGVhZChBdG9taWNIVE1MVG9rZW4mJiB0b2tlbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwCmluZGV4IDgwYjQyMTMuLjdkNGM4OWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRl
LmNwcApAQCAtNjYsNyArNjYsOSBAQCBzdGF0aWMgaW5saW5lIFN0cmluZyBidWlsZENvbnNvbGVF
cnJvcihjb25zdCBYU1NJbmZvJiB4c3NJbmZvKQogICAgIGVsc2UKICAgICAgICAgbWVzc2FnZS5h
cHBlbmRMaXRlcmFsKCIgVGhlIGF1ZGl0b3Igd2FzIGVuYWJsZWQgYmVjYXVzZSB0aGUgc2VydmVy
IGRpZCBub3Qgc2VuZCBhbiAnWC1YU1MtUHJvdGVjdGlvbicgaGVhZGVyLiIpOwogCi0gICAgcmV0
dXJuIG1lc3NhZ2UudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtZXNzYWdlLnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFJl
ZjxGb3JtRGF0YT4gWFNTQXVkaXRvckRlbGVnYXRlOjpnZW5lcmF0ZVZpb2xhdGlvblJlcG9ydChj
b25zdCBYU1NJbmZvJiB4c3NJbmZvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9CdWZmZXJlZExpbmVSZWFkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9C
dWZmZXJlZExpbmVSZWFkZXIuY3BwCmluZGV4IDhmMjM2MjUuLmYyOTA4ZDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQnVmZmVyZWRMaW5lUmVhZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0J1ZmZlcmVkTGluZVJlYWRlci5jcHAKQEAgLTkyLDkg
KzkyLDExIEBAIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBCdWZmZXJlZExpbmVSZWFkZXI6Om5leHRM
aW5lKCkKICAgICB9CiAKICAgICBpZiAoc2hvdWxkUmV0dXJuTGluZSkgewotICAgICAgICBhdXRv
IGxpbmUgPSBtX2xpbmVCdWZmZXIudG9TdHJpbmcoKTsKLSAgICAgICAgbV9saW5lQnVmZmVyLmNs
ZWFyKCk7Ci0gICAgICAgIHJldHVybiBXVEZNb3ZlKGxpbmUpOworICAgICAgICBpZiAoYXV0byBs
aW5lID0gbV9saW5lQnVmZmVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIG1fbGluZUJ1ZmZl
ci5jbGVhcigpOworICAgICAgICAgICAgcmV0dXJuIFdURk1vdmUoKmxpbmUpOworICAgICAgICB9
CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgQVNTRVJUKG1fYnVmZmVyLmlzRW1wdHko
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAKaW5kZXggMzMzYTJmOC4u
Mjk0MTZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcApAQCAtMTUz
LDcgKzE1MywxMCBAQCB2b2lkIFRyYWNrQmFzZTo6c2V0TGFuZ3VhZ2UoY29uc3QgQXRvbWljU3Ry
aW5nJiBsYW5ndWFnZSkKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
VGhlIGxhbmd1YWdlICciKTsKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGxhbmd1
YWdlKTsKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiJyBpcyBub3Qg
YSB2YWxpZCBCQ1AgNDcgbGFuZ3VhZ2UgdGFnLiIpOwotICAgICAgICAgICAgbWVzc2FnZSA9IHN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICBtZXNzYWdlID0gKnN0cmlu
ZzsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9
CiAgICAgICAgIGlmIChhdXRvIGVsZW1lbnQgPSB0aGlzLT5lbGVtZW50KCkpCiAgICAgICAgICAg
ICBlbGVtZW50LT5kb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlJl
bmRlcmluZywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBtZXNzYWdlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVlRUQ3VlLmNwcAppbmRleCA3OGY4YWRmLi4zYmJjMjQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9WVFRDdWUuY3BwCkBAIC02MjksNyArNjI5LDExIEBAIHZvaWQgVlRUQ3VlOjpkZXRl
cm1pbmVUZXh0RGlyZWN0aW9uKCkKICAgICAgICAgcGFyYWdyYXBoQnVpbGRlci5hcHBlbmQobm9k
ZS0+bm9kZVZhbHVlKCkpOwogICAgIH0KIAotICAgIFN0cmluZyBwYXJhZ3JhcGggPSBwYXJhZ3Jh
cGhCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgU3RyaW5nIHBhcmFncmFwaCA9IFsmXSAoKSB7Cisg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHBhcmFncmFwaEJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOworICAgIH0oKTsKICAg
ICBpZiAoIXBhcmFncmFwaC5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAKaW5kZXggNTE4ZWQ4Yi4uODBkMDJjNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcApAQCAtNDA0LDcg
KzQwNCwxMCBAQCB2b2lkIFdlYlZUVFBhcnNlcjo6Y3JlYXRlTmV3Q3VlKCkKICAgICBSZWZQdHI8
V2ViVlRUQ3VlRGF0YT4gY3VlID0gV2ViVlRUQ3VlRGF0YTo6Y3JlYXRlKCk7CiAgICAgY3VlLT5z
ZXRTdGFydFRpbWUobV9jdXJyZW50U3RhcnRUaW1lKTsKICAgICBjdWUtPnNldEVuZFRpbWUobV9j
dXJyZW50RW5kVGltZSk7Ci0gICAgY3VlLT5zZXRDb250ZW50KG1fY3VycmVudENvbnRlbnQudG9T
dHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbV9jdXJyZW50Q29udGVudC50b1N0cmlu
ZygpKQorICAgICAgICBjdWUtPnNldENvbnRlbnQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAg
ICBDUkFTSCgpOwogICAgIGN1ZS0+c2V0SWQobV9jdXJyZW50SWQpOwogICAgIGN1ZS0+c2V0U2V0
dGluZ3MobV9jdXJyZW50U2V0dGluZ3MpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1dlYlZUVFRva2VuaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1dlYlZUVFRva2VuaXplci5jcHAKaW5kZXggMDI0YzA0YS4uZmUzZGRhOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmNwcApAQCAtMTA4LDExICsxMDgs
MTUgQEAgRGF0YVN0YXRlOgogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIC8vIFdlIGRvbid0
IHdhbnQgdG8gYWR2YW5jZSBpbnB1dCBvciBwZXJmb3JtIGEgc3RhdGUgdHJhbnNpdGlvbiAtIGp1
c3QgcmV0dXJuIGEgKG5ldykgdG9rZW4uCiAgICAgICAgICAgICAvLyAoT24gdGhlIG5leHQgY2Fs
bCB0byBuZXh0VG9rZW4gd2Ugd2lsbCBzZWUgJzwnIGFnYWluLCBidXQgdGFrZSB0aGUgb3RoZXIg
YnJhbmNoIGluIHRoaXMgaWYgaW5zdGVhZC4pCi0gICAgICAgICAgICByZXR1cm4gZW1pdFRva2Vu
KHRva2VuLCBXZWJWVFRUb2tlbjo6U3RyaW5nVG9rZW4ocmVzdWx0LnRvU3RyaW5nKCkpKTsKKyAg
ICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAg
ICAgICAgIHJldHVybiBlbWl0VG9rZW4odG9rZW4sIFdlYlZUVFRva2VuOjpTdHJpbmdUb2tlbigq
c3RyaW5nKSk7CisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9Ci0gICAgfSBlbHNlIGlm
IChjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikKLSAgICAgICAgcmV0dXJuIGFkdmFuY2VB
bmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpTdHJpbmdUb2tlbihyZXN1
bHQudG9TdHJpbmcoKSkpOwotICAgIGVsc2UgeworICAgIH0gZWxzZSBpZiAoY2hhcmFjdGVyID09
IGtFbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRv
U3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0
LCB0b2tlbiwgV2ViVlRUVG9rZW46OlN0cmluZ1Rva2VuKCpzdHJpbmcpKTsKKyAgICAgICAgQ1JB
U0goKTsKKyAgICB9IGVsc2UgewogICAgICAgICByZXN1bHQuYXBwZW5kKGNoYXJhY3Rlcik7CiAg
ICAgICAgIFdFQlZUVF9BRFZBTkNFX1RPKERhdGFTdGF0ZSk7CiAgICAgfQpAQCAtMTQyLDEwICsx
NDYsMTQgQEAgRXNjYXBlU3RhdGU6CiAgICAgICAgIFdFQlZUVF9BRFZBTkNFX1RPKEVzY2FwZVN0
YXRlKTsKICAgICB9IGVsc2UgaWYgKGNoYXJhY3RlciA9PSAnPCcpIHsKICAgICAgICAgcmVzdWx0
LmFwcGVuZChidWZmZXIpOwotICAgICAgICByZXR1cm4gZW1pdFRva2VuKHRva2VuLCBXZWJWVFRU
b2tlbjo6U3RyaW5nVG9rZW4ocmVzdWx0LnRvU3RyaW5nKCkpKTsKKyAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gZW1pdFRva2Vu
KHRva2VuLCBXZWJWVFRUb2tlbjo6U3RyaW5nVG9rZW4oKnN0cmluZykpOworICAgICAgICBDUkFT
SCgpOwogICAgIH0gZWxzZSBpZiAoY2hhcmFjdGVyID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKICAg
ICAgICAgcmVzdWx0LmFwcGVuZChidWZmZXIpOwotICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVt
aXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OlN0cmluZ1Rva2VuKHJlc3VsdC50
b1N0cmluZygpKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygp
KQorICAgICAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4s
IFdlYlZUVFRva2VuOjpTdHJpbmdUb2tlbigqc3RyaW5nKSk7CisgICAgICAgIENSQVNIKCk7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgcmVzdWx0LmFwcGVuZChidWZmZXIpOwogICAgICAgICBidWZm
ZXIuY2xlYXIoKTsKQEAgLTE3Miw3ICsxODAsOSBAQCBUYWdTdGF0ZToKICAgICAgICAgV0VCVlRU
X0FEVkFOQ0VfVE8oVGltZXN0YW1wVGFnU3RhdGUpOwogICAgIH0gZWxzZSBpZiAoY2hhcmFjdGVy
ID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICBBU1NF
UlQocmVzdWx0LmlzRW1wdHkoKSk7Ci0gICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2Vu
KG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6U3RhcnRUYWcocmVzdWx0LnRvU3RyaW5nKCkp
KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9r
ZW46OlN0YXJ0VGFnKCpzdHJpbmcpKTsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9IGVsc2Ugewog
ICAgICAgICByZXN1bHQuYXBwZW5kKGNoYXJhY3Rlcik7CiAgICAgICAgIFdFQlZUVF9BRFZBTkNF
X1RPKFN0YXJ0VGFnU3RhdGUpOwpAQCAtMTgzLDkgKzE5MywxMSBAQCBTdGFydFRhZ1N0YXRlOgog
ICAgICAgICBXRUJWVFRfQURWQU5DRV9UTyhTdGFydFRhZ0Fubm90YXRpb25TdGF0ZSk7CiAgICAg
ZWxzZSBpZiAoY2hhcmFjdGVyID09ICcuJykKICAgICAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oU3Rh
cnRUYWdDbGFzc1N0YXRlKTsKLSAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gJz4nIHx8IGNoYXJh
Y3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKQotICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRU
b2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OlN0YXJ0VGFnKHJlc3VsdC50b1N0cmlu
ZygpKSk7Ci0gICAgZWxzZSB7CisgICAgZWxzZSBpZiAoY2hhcmFjdGVyID09ICc+JyB8fCBjaGFy
YWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBy
ZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2Vu
KG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6U3RhcnRUYWcoKnN0cmluZykpOworICAgICAg
ICBDUkFTSCgpOworICAgIH0gZWxzZSB7CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2hhcmFjdGVy
KTsKICAgICAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oU3RhcnRUYWdTdGF0ZSk7CiAgICAgfQpAQCAt
MjAyLDI3ICsyMTQsNDQgQEAgU3RhcnRUYWdDbGFzc1N0YXRlOgogICAgIH0gZWxzZSBpZiAoY2hh
cmFjdGVyID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAg
ICBhZGROZXdDbGFzcyhjbGFzc2VzLCBidWZmZXIpOwogICAgICAgICBidWZmZXIuY2xlYXIoKTsK
LSAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZU
VFRva2VuOjpTdGFydFRhZyhyZXN1bHQudG9TdHJpbmcoKSwgY2xhc3Nlcy50b0F0b21pY1N0cmlu
ZygpKSk7CisgICAgICAgIGlmIChhdXRvIHJlc3VsdFN0cmluZyA9IHJlc3VsdC50b1N0cmluZygp
KSB7CisgICAgICAgICAgICBpZiAoYXV0byBjbGFzc2VzU3RyaW5nID0gY2xhc3Nlcy50b0F0b21p
Y1N0cmluZygpKQorICAgICAgICAgICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1f
aW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6U3RhcnRUYWcoKnJlc3VsdFN0cmluZywgKmNsYXNz
ZXNTdHJpbmcpKTsKKyAgICAgICAgfQorICAgICAgICBDUkFTSCgpOwogICAgIH0gZWxzZSB7CiAg
ICAgICAgIGJ1ZmZlci5hcHBlbmQoY2hhcmFjdGVyKTsKICAgICAgICAgV0VCVlRUX0FEVkFOQ0Vf
VE8oU3RhcnRUYWdDbGFzc1N0YXRlKTsKICAgICB9CiAKIFN0YXJ0VGFnQW5ub3RhdGlvblN0YXRl
OgotICAgIGlmIChjaGFyYWN0ZXIgPT0gJz4nIHx8IGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFy
a2VyKQotICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwg
V2ViVlRUVG9rZW46OlN0YXJ0VGFnKHJlc3VsdC50b1N0cmluZygpLCBjbGFzc2VzLnRvQXRvbWlj
U3RyaW5nKCksIGJ1ZmZlci50b0F0b21pY1N0cmluZygpKSk7CisgICAgaWYgKGNoYXJhY3RlciA9
PSAnPicgfHwgY2hhcmFjdGVyID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgaWYgKGF1
dG8gcmVzdWx0U3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIGlmIChh
dXRvIGNsYXNzZXNTdHJpbmcgPSBjbGFzc2VzLnRvQXRvbWljU3RyaW5nKCkpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoYXV0byBidWZmZXJTdHJpbmcgPSBidWZmZXIudG9BdG9taWNTdHJpbmcoKSkK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1dCwg
dG9rZW4sIFdlYlZUVFRva2VuOjpTdGFydFRhZygqcmVzdWx0U3RyaW5nLCAqY2xhc3Nlc1N0cmlu
ZywgKmJ1ZmZlclN0cmluZykpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIENS
QVNIKCk7CisgICAgfQogICAgIGJ1ZmZlci5hcHBlbmQoY2hhcmFjdGVyKTsKICAgICBXRUJWVFRf
QURWQU5DRV9UTyhTdGFydFRhZ0Fubm90YXRpb25TdGF0ZSk7CiAKIEVuZFRhZ1N0YXRlOgotICAg
IGlmIChjaGFyYWN0ZXIgPT0gJz4nIHx8IGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKQot
ICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRU
VG9rZW46OkVuZFRhZyhyZXN1bHQudG9TdHJpbmcoKSkpOworICAgIGlmIChjaGFyYWN0ZXIgPT0g
Jz4nIHx8IGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuIGFkdmFuY2VB
bmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpFbmRUYWcoKnN0cmluZykp
OworICAgICAgICBDUkFTSCgpOworICAgIH0KICAgICByZXN1bHQuYXBwZW5kKGNoYXJhY3Rlcik7
CiAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oRW5kVGFnU3RhdGUpOwogCiBUaW1lc3RhbXBUYWdTdGF0
ZToKLSAgICBpZiAoY2hhcmFjdGVyID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1h
cmtlcikKLSAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4s
IFdlYlZUVFRva2VuOjpUaW1lc3RhbXBUYWcocmVzdWx0LnRvU3RyaW5nKCkpKTsKKyAgICBpZiAo
Y2hhcmFjdGVyID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikgeworICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJl
dHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6VGlt
ZXN0YW1wVGFnKCpzdHJpbmcpKTsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9CiAgICAgcmVzdWx0
LmFwcGVuZChjaGFyYWN0ZXIpOwogICAgIFdFQlZUVF9BRFZBTkNFX1RPKFRpbWVzdGFtcFRhZ1N0
YXRlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JT
dHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNo
ZWV0LmNwcAppbmRleCA5ZDk4NTgxLi42NTFkMmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCkBAIC03NzEsNyArNzcxLDkgQEAgU3Ry
aW5nIEluc3BlY3RvclN0eWxlOjpzaG9ydGhhbmRWYWx1ZShjb25zdCBTdHJpbmcmIHNob3J0aGFu
ZFByb3BlcnR5KSBjb25zdAogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoaW5kaXZpZHVhbFZhbHVlKTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBJ
bnNwZWN0b3JTdHlsZTo6c2hvcnRoYW5kUHJpb3JpdHkoY29uc3QgU3RyaW5nJiBzaG9ydGhhbmRQ
cm9wZXJ0eSkgY29uc3QKQEAgLTk0MywxMyArOTQ1LDIwIEBAIEV4Y2VwdGlvbk9yPENTU1N0eWxl
UnVsZSo+IEluc3BlY3RvclN0eWxlU2hlZXQ6OmFkZFJ1bGUoY29uc3QgU3RyaW5nJiBzZWxlY3Rv
cikKICAgICBzdHlsZVNoZWV0VGV4dC5hcHBlbmRMaXRlcmFsKCIge30iKTsKIAogICAgIC8vIFVz
aW5nIHNldFRleHQoKSBhcyB0aGlzIG9wZXJhdGlvbiBjaGFuZ2VzIHRoZSBzdHlsZXNoZWV0IHJ1
bGUgc2V0LgotICAgIHNldFRleHQoc3R5bGVTaGVldFRleHQudG9TdHJpbmcoKSk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gc3R5bGVTaGVldFRleHQudG9TdHJpbmcoKSkKKyAgICAgICAgc2V0VGV4
dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAgICAvLyBJbnNwZWN0
b3IgU3R5bGUgU2hlZXRzIGFyZSBhbHdheXMgdHJlYXRlZCBhcyB0aG91Z2ggdGhlaXIgcGFyc2Vk
IGRhdGEgaXMgcmVhZHkuCiAgICAgaWYgKG1fb3JpZ2luID09IEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkNTUzo6U3R5bGVTaGVldE9yaWdpbjo6SW5zcGVjdG9yKQogICAgICAgICBmaXJlU3R5bGVTaGVl
dENoYW5nZWQoKTsKLSAgICBlbHNlCi0gICAgICAgIHJlcGFyc2VTdHlsZVNoZWV0KHN0eWxlU2hl
ZXRUZXh0LnRvU3RyaW5nKCkpOworICAgIGVsc2UgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSBzdHlsZVNoZWV0VGV4dC50b1N0cmluZygpKQorICAgICAgICAgICAgcmVwYXJzZVN0eWxlU2hl
ZXQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CisgICAgfQog
CiAgICAgQVNTRVJUKG1fcGFnZVN0eWxlU2hlZXQtPmxlbmd0aCgpKTsKICAgICB1bnNpZ25lZCBs
YXN0UnVsZUluZGV4ID0gbV9wYWdlU3R5bGVTaGVldC0+bGVuZ3RoKCkgLSAxOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBcHBsaWNhdGlvbkNh
Y2hlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JB
cHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCmluZGV4IDE5YWY0ZTkuLmJmOWI0ZmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRpb25D
YWNoZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAKQEAgLTE3MiwxMSArMTcyLDE0IEBAIFJlZjxJ
bnNwZWN0b3I6OlByb3RvY29sOjpBcHBsaWNhdGlvbkNhY2hlOjpBcHBsaWNhdGlvbkNhY2hlUmVz
b3VyY2U+IEluc3BlY3RvckFwCiAgICAgaWYgKHJlc291cmNlSW5mby5pc0V4cGxpY2l0KQogICAg
ICAgICB0eXBlcy5hcHBlbmRMaXRlcmFsKCJFeHBsaWNpdCAiKTsKIAotICAgIHJldHVybiBJbnNw
ZWN0b3I6OlByb3RvY29sOjpBcHBsaWNhdGlvbkNhY2hlOjpBcHBsaWNhdGlvbkNhY2hlUmVzb3Vy
Y2U6OmNyZWF0ZSgpCi0gICAgICAgIC5zZXRVcmwocmVzb3VyY2VJbmZvLnJlc291cmNlLnN0cmlu
ZygpKQotICAgICAgICAuc2V0U2l6ZShzdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlSW5mby5zaXpl
KSkKLSAgICAgICAgLnNldFR5cGUodHlwZXMudG9TdHJpbmcoKSkKLSAgICAgICAgLnJlbGVhc2Uo
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0eXBlcy50b1N0cmluZygpKSB7CisgICAgICAgIHJl
dHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpBcHBsaWNhdGlvbkNhY2hlOjpBcHBsaWNhdGlvbkNh
Y2hlUmVzb3VyY2U6OmNyZWF0ZSgpCisgICAgICAgICAgICAuc2V0VXJsKHJlc291cmNlSW5mby5y
ZXNvdXJjZS5zdHJpbmcoKSkKKyAgICAgICAgICAgIC5zZXRTaXplKHN0YXRpY19jYXN0PGludD4o
cmVzb3VyY2VJbmZvLnNpemUpKQorICAgICAgICAgICAgLnNldFR5cGUoKnN0cmluZykKKyAgICAg
ICAgICAgIC5yZWxlYXNlKCk7CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAppbmRleCA0NmU0YWZlLi5hZjE3MDQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtB
Z2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JO
ZXR3b3JrQWdlbnQuY3BwCkBAIC0xMzQsOCArMTM0LDExIEBAIHB1YmxpYzoKICAgICAgICAgaWYg
KG1fZGVjb2RlcikKICAgICAgICAgICAgIG1fcmVzcG9uc2VUZXh0LmFwcGVuZChtX2RlY29kZXIt
PmZsdXNoKCkpOwogCi0gICAgICAgIG1fY2FsbGJhY2stPnNlbmRTdWNjZXNzKG1fcmVzcG9uc2VU
ZXh0LnRvU3RyaW5nKCksIG1fbWltZVR5cGUsIG1fc3RhdHVzQ29kZSk7Ci0gICAgICAgIGRpc3Bv
c2UoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gbV9yZXNwb25zZVRleHQudG9TdHJpbmco
KSkgeworICAgICAgICAgICAgbV9jYWxsYmFjay0+c2VuZFN1Y2Nlc3MoKnN0cmluZywgbV9taW1l
VHlwZSwgbV9zdGF0dXNDb2RlKTsKKyAgICAgICAgICAgIGRpc3Bvc2UoKTsKKyAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIHZvaWQgZGlkRmFpbChjb25z
dCBSZXNvdXJjZUVycm9yJiBlcnJvcikgb3ZlcnJpZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50LmNwcAppbmRleCBkYzk2NDg2Li42Mzgz
OGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkNvbnNv
bGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJDb25z
b2xlQWdlbnQuY3BwCkBAIC0xNjksNyArMTY5LDEwIEBAIHZvaWQgV2ViQ29uc29sZUFnZW50Ojpk
aWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBSZXNv
CiAgICAgICAgIG1lc3NhZ2UuYXBwZW5kKGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkpOwog
ICAgIH0KIAotICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25zb2xl
TWVzc2FnZT4oTWVzc2FnZVNvdXJjZTo6TmV0d29yaywgTWVzc2FnZVR5cGU6OkxvZywgTWVzc2Fn
ZUxldmVsOjpFcnJvciwgbWVzc2FnZS50b1N0cmluZygpLCBlcnJvci5mYWlsaW5nVVJMKCksIDAs
IDAsIG51bGxwdHIsIHJlcXVlc3RJZGVudGlmaWVyKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
bWVzc2FnZS50b1N0cmluZygpKQorICAgICAgICBhZGRNZXNzYWdlVG9Db25zb2xlKHN0ZDo6bWFr
ZV91bmlxdWU8Q29uc29sZU1lc3NhZ2U+KE1lc3NhZ2VTb3VyY2U6Ok5ldHdvcmssIE1lc3NhZ2VU
eXBlOjpMb2csIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICpzdHJpbmcsIGVycm9yLmZhaWxpbmdVUkwo
KSwgMCwgMCwgbnVsbHB0ciwgcmVxdWVzdElkZW50aWZpZXIpKTsKKyAgICBlbHNlCisgICAgICAg
IENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHAKaW5kZXggNjg4MDRmMi4u
Zjg4YTQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNj
ZXNzQ29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNj
ZXNzQ29udHJvbC5jcHAKQEAgLTExMiw4ICsxMTIsMTIgQEAgUmVzb3VyY2VSZXF1ZXN0IGNyZWF0
ZUFjY2Vzc0NvbnRyb2xQcmVmbGlnaHRSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWUKIAogICAgICAgICAgICAgaGVhZGVyQnVmZmVyLmFwcGVuZChoZWFkZXJGaWVsZCk7CiAgICAg
ICAgIH0KLSAgICAgICAgaWYgKCFoZWFkZXJCdWZmZXIuaXNFbXB0eSgpKQotICAgICAgICAgICAg
cHJlZmxpZ2h0UmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkFjY2Vz
c0NvbnRyb2xSZXF1ZXN0SGVhZGVycywgaGVhZGVyQnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAg
ICBpZiAoIWhlYWRlckJ1ZmZlci5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IGhlYWRlckJ1ZmZlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHByZWZsaWdo
dFJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpBY2Nlc3NDb250cm9s
UmVxdWVzdEhlYWRlcnMsICpzdHJpbmcpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIENSQVNIKCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICByZXR1cm4gcHJlZmxpZ2h0UmVx
dWVzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
LmNwcAppbmRleCA0ZGYyNWRhLi45ODZmZTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuY3BwCkBAIC0yNjgsNyArMjY4LDkgQEAgU3RyaW5n
IFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OnRvU3RyaW5nKCkgY29uc3QKIAogICAgIGJ1aWxkZXIu
YXBwZW5kKCdcbicpOwogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFn
ZS5jcHAKaW5kZXggZmYyOTM4OS4uNGYyMmQ0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCkBAIC04
NDEsMTcgKzg0MSwyMCBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpzdG9yZShBcHBs
aWNhdGlvbkNhY2hlUmVzb3VyY2UqIHJlc291cmNlLCB1bnNpZ25lZAogCiAgICAgLy8gVGhlbiwg
aW5zZXJ0IHRoZSByZXNvdXJjZQogICAgIAotICAgIC8vIFNlcmlhbGl6ZSB0aGUgaGVhZGVycwot
ICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsKLSAgICAKLSAgICBmb3IgKGNvbnN0IGF1
dG8mIGhlYWRlciA6IHJlc291cmNlLT5yZXNwb25zZSgpLmh0dHBIZWFkZXJGaWVsZHMoKSkgewot
ICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChoZWFkZXIua2V5KTsKLSAgICAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmQoJzonKTsKLSAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoaGVhZGVy
LnZhbHVlKTsKLSAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgfQotICAg
IAotICAgIFN0cmluZyBoZWFkZXJzID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgIFN0
cmluZyBoZWFkZXJzID0gWyZdICgpIHsKKyAgICAgICAgLy8gU2VyaWFsaXplIHRoZSBoZWFkZXJz
CisgICAgICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsKKyAgICAKKyAgICAgICAgZm9y
IChjb25zdCBhdXRvJiBoZWFkZXIgOiByZXNvdXJjZS0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmll
bGRzKCkpIHsKKyAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGhlYWRlci5rZXkpOwor
ICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJzonKTsKKyAgICAgICAgICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kKGhlYWRlci52YWx1ZSk7CisgICAgICAgICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZCgnXG4nKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAg
ICAgQ1JBU0goKTsKKyAgICB9KCk7CiAgICAgCiAgICAgU1FMaXRlU3RhdGVtZW50IHJlc291cmNl
U3RhdGVtZW50KG1fZGF0YWJhc2UsICJJTlNFUlQgSU5UTyBDYWNoZVJlc291cmNlcyAodXJsLCBz
dGF0dXNDb2RlLCByZXNwb25zZVVSTCwgaGVhZGVycywgZGF0YSwgbWltZVR5cGUsIHRleHRFbmNv
ZGluZ05hbWUpIFZBTFVFUyAoPywgPywgPywgPywgPywgPywgPykiKTsKICAgICBpZiAocmVzb3Vy
Y2VTdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAKaW5kZXggMTJhMzBj
Yy4uY2ZlNzM4NjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9j
Zi9MZWdhY3lXZWJBcmNoaXZlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2
ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcApAQCAtNTU3LDIxICs1NTcsMjQgQEAgUmVmUHRyPExl
Z2FjeVdlYkFyY2hpdmU+IExlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0ZUZyb21TZWxlY3Rpb24oRnJh
bWUqIGZyYW1lKQogICAgIGlmIChhdXRvIHNlbGVjdGlvblJhbmdlID0gZnJhbWUtPnNlbGVjdGlv
bigpLnRvTm9ybWFsaXplZFJhbmdlKCkpCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGNyZWF0ZU1h
cmt1cCgqc2VsZWN0aW9uUmFuZ2UsICZub2RlTGlzdCwgQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSkp
OwogCi0gICAgYXV0byBhcmNoaXZlID0gY3JlYXRlKGJ1aWxkZXIudG9TdHJpbmcoKSwgKmZyYW1l
LCBub2RlTGlzdCwgbnVsbHB0cik7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpKSB7CisgICAgICAgIGF1dG8gYXJjaGl2ZSA9IGNyZWF0ZSgqc3RyaW5nLCAqZnJhbWUs
IG5vZGVMaXN0LCBudWxscHRyKTsKICAgICAKLSAgICBpZiAoIWRvY3VtZW50LT5pc0ZyYW1lU2V0
KCkpCi0gICAgICAgIHJldHVybiBhcmNoaXZlOworICAgICAgICBpZiAoIWRvY3VtZW50LT5pc0Zy
YW1lU2V0KCkpCisgICAgICAgICAgICByZXR1cm4gYXJjaGl2ZTsKICAgICAgICAgCi0gICAgLy8g
V3JhcCB0aGUgZnJhbWVzZXQgZG9jdW1lbnQgaW4gYW4gaWZyYW1lIHNvIGl0IGNhbiBiZSBwYXN0
ZWQgaW50bwotICAgIC8vIGFub3RoZXIgZG9jdW1lbnQgKHdoaWNoIHdpbGwgaGF2ZSBhIGJvZHkg
b3IgZnJhbWVzZXQgb2YgaXRzIG93bikuIAotICAgIFN0cmluZyBpZnJhbWVNYXJrdXAgPSAiPGlm
cmFtZSBmcmFtZWJvcmRlcj1cIm5vXCIgbWFyZ2lud2lkdGg9XCIwXCIgbWFyZ2luaGVpZ2h0PVwi
MFwiIHdpZHRoPVwiOTglJVwiIGhlaWdodD1cIjk4JSVcIiBzcmM9XCIiICsgZnJhbWUtPmxvYWRl
cigpLmRvY3VtZW50TG9hZGVyKCktPnJlc3BvbnNlKCkudXJsKCkuc3RyaW5nKCkgKyAiXCI+PC9p
ZnJhbWU+IjsKLSAgICBhdXRvIGlmcmFtZVJlc291cmNlID0gQXJjaGl2ZVJlc291cmNlOjpjcmVh
dGUodXRmOEJ1ZmZlcihpZnJhbWVNYXJrdXApLCBibGFua1VSTCgpLCAidGV4dC9odG1sIiwgIlVU
Ri04IiwgU3RyaW5nKCkpOworICAgICAgICAvLyBXcmFwIHRoZSBmcmFtZXNldCBkb2N1bWVudCBp
biBhbiBpZnJhbWUgc28gaXQgY2FuIGJlIHBhc3RlZCBpbnRvCisgICAgICAgIC8vIGFub3RoZXIg
ZG9jdW1lbnQgKHdoaWNoIHdpbGwgaGF2ZSBhIGJvZHkgb3IgZnJhbWVzZXQgb2YgaXRzIG93biku
IAorICAgICAgICBTdHJpbmcgaWZyYW1lTWFya3VwID0gIjxpZnJhbWUgZnJhbWVib3JkZXI9XCJu
b1wiIG1hcmdpbndpZHRoPVwiMFwiIG1hcmdpbmhlaWdodD1cIjBcIiB3aWR0aD1cIjk4JSVcIiBo
ZWlnaHQ9XCI5OCUlXCIgc3JjPVwiIiArIGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigp
LT5yZXNwb25zZSgpLnVybCgpLnN0cmluZygpICsgIlwiPjwvaWZyYW1lPiI7CisgICAgICAgIGF1
dG8gaWZyYW1lUmVzb3VyY2UgPSBBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZSh1dGY4QnVmZmVyKGlm
cmFtZU1hcmt1cCksIGJsYW5rVVJMKCksICJ0ZXh0L2h0bWwiLCAiVVRGLTgiLCBTdHJpbmcoKSk7
CiAKLSAgICBWZWN0b3I8UmVmPExlZ2FjeVdlYkFyY2hpdmU+PiBzdWJmcmFtZUFyY2hpdmVzOwot
ICAgIHN1YmZyYW1lQXJjaGl2ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSgxKTsKLSAgICBzdWJm
cmFtZUFyY2hpdmVzLnVuY2hlY2tlZEFwcGVuZChhcmNoaXZlLnJlbGVhc2VOb25OdWxsKCkpOwor
ICAgICAgICBWZWN0b3I8UmVmPExlZ2FjeVdlYkFyY2hpdmU+PiBzdWJmcmFtZUFyY2hpdmVzOwor
ICAgICAgICBzdWJmcmFtZUFyY2hpdmVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoMSk7CisgICAg
ICAgIHN1YmZyYW1lQXJjaGl2ZXMudW5jaGVja2VkQXBwZW5kKGFyY2hpdmUucmVsZWFzZU5vbk51
bGwoKSk7CiAKLSAgICByZXR1cm4gY3JlYXRlKGlmcmFtZVJlc291cmNlLnJlbGVhc2VOb25OdWxs
KCksIHsgfSwgV1RGTW92ZShzdWJmcmFtZUFyY2hpdmVzKSk7CisgICAgICAgIHJldHVybiBjcmVh
dGUoaWZyYW1lUmVzb3VyY2UucmVsZWFzZU5vbk51bGwoKSwgeyB9LCBXVEZNb3ZlKHN1YmZyYW1l
QXJjaGl2ZXMpKTsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHAKaW5kZXggNzA1
YzZkYy4uZmQ1N2YxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUv
bWh0bWwvTUhUTUxBcmNoaXZlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2
ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwCkBAIC03Niw3ICs3Niw5IEBAIHN0YXRpYyBTdHJpbmcg
Z2VuZXJhdGVSYW5kb21Cb3VuZGFyeSgpCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGxv
d2VyTmliYmxlVG9BU0NJSUhleERpZ2l0KHJhbmRvbVZhbHVlc1tpXSkpOwogICAgICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZCh1cHBlck5pYmJsZVRvQVNDSUlIZXhEaWdpdChyYW5kb21WYWx1ZXNb
aV0pKTsKICAgICB9Ci0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgcmVwbGFjZU5vblBy
aW50YWJsZUNoYXJhY3RlcnMoY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtODgsNyArOTAsOSBAQCBz
dGF0aWMgU3RyaW5nIHJlcGxhY2VOb25QcmludGFibGVDaGFyYWN0ZXJzKGNvbnN0IFN0cmluZyYg
dGV4dCkKICAgICAgICAgZWxzZQogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJz8n
KTsKICAgICB9Ci0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIE1IVE1MQXJjaGl2ZTo6TUhUTUxBcmNoaXZlKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01l
ZGlhQUYuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVk
aWFBRi5jcHAKaW5kZXggYzEzOTA3Ni4uZDgzZTI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAKQEAgLTM0NywxNCAr
MzQ3LDE4IEBAIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6d2luZG93Um91
bmRlZENvcm5lclJhZGl1c0NTUygpIGNvbnN0CiAKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7
CiAgICAgYXBwZW5kQ1NTKGJ1aWxkZXIsIENTU1Byb3BlcnR5Qm9yZGVyUmFkaXVzLCBTdHJpbmc6
OmZvcm1hdCgiJS4wMmZweCIsIHJhZGl1cyksIGJlaGF2aW9yID09IGtNQUNhcHRpb25BcHBlYXJh
bmNlQmVoYXZpb3JVc2VWYWx1ZSk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2Vz
TWVkaWFBRjo6Y29sb3JQcm9wZXJ0eUNTUyhDU1NQcm9wZXJ0eUlEIGlkLCBjb25zdCBDb2xvciYg
Y29sb3IsIGJvb2wgaW1wb3J0YW50KSBjb25zdAogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKICAgICBhcHBlbmRDU1MoYnVpbGRlciwgaWQsIGNvbG9yLnNlcmlhbGl6ZWQoKSwgaW1wb3J0
YW50KTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogYm9vbCBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y2FwdGlvblN0
cm9rZVdpZHRoRm9yRm9udChmbG9hdCBmb250U2l6ZSwgY29uc3QgU3RyaW5nJiBsYW5ndWFnZSwg
ZmxvYXQmIHN0cm9rZVdpZHRoLCBib29sJiBpbXBvcnRhbnQpIGNvbnN0CkBAIC00MDYsNyArNDEw
LDkgQEAgU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc1RleHRF
ZGdlQ1NTKCkgY29uc3QKICAgICAgICAgYXBwZW5kQ1NTKGJ1aWxkZXIsIENTU1Byb3BlcnR5U3Ry
b2tlTGluZWNhcCwgZ2V0VmFsdWVOYW1lKENTU1ZhbHVlUm91bmQpLCBpbXBvcnRhbnQpOwogICAg
IH0KICAgICAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0
aW9uc0RlZmF1bHRGb250Q1NTKCkgY29uc3QKQEAgLTQ0OCw3ICs0NTQsOSBAQCBTdHJpbmcgQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zRGVmYXVsdEZvbnRDU1MoKSBjb25z
dAogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiAhaW1wb3J0YW50Iik7CiAgICAgYnVp
bGRlci5hcHBlbmQoJzsnKTsKICAgICAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogZmxvYXQgQ2FwdGlvblVzZXJQcmVmZXJlbmNl
c01lZGlhQUY6OmNhcHRpb25Gb250U2l6ZVNjYWxlQW5kSW1wb3J0YW5jZShib29sJiBpbXBvcnRh
bnQpIGNvbnN0CkBAIC01OTUsOSArNjAzLDExIEBAIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVu
Y2VzTWVkaWFBRjo6Y2FwdGlvbnNTdHlsZVNoZWV0T3ZlcnJpZGUoKSBjb25zdAogICAgIH0KICNl
bmRpZiAvLyBIQVZFKE1FRElBX0FDQ0VTU0lCSUxJVFlfRlJBTUVXT1JLKQogCi0gICAgTE9HKE1l
ZGlhLCAiQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zU3R5bGVTaGVldE92
ZXJyaWRlU2V0dGluZyBzdHlsZSB0bzpcbiVzIiwgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQu
dG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLQotICAgIHJldHVybiBjYXB0aW9uc092ZXJyaWRl
U3R5bGVTaGVldC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGNhcHRpb25zT3Zl
cnJpZGVTdHlsZVNoZWV0LnRvU3RyaW5nKCkpIHsKKyAgICAgICAgTE9HKE1lZGlhLCAiQ2FwdGlv
blVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zU3R5bGVTaGVldE92ZXJyaWRlU2V0dGlu
ZyBzdHlsZSB0bzpcbiVzIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgbGFuZ3Vh
Z2VJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2VDb2RlKQpAQCAtNjY0LDEwICs2NzQs
MTMgQEAgc3RhdGljIFN0cmluZyB0cmFja0Rpc3BsYXlOYW1lKEF1ZGlvVHJhY2sqIHRyYWNrKQog
ICAgIGlmIChkaXNwbGF5TmFtZS5pc0VtcHR5KCkpCiAgICAgICAgIGRpc3BsYXlOYW1lLmFwcGVu
ZChhdWRpb1RyYWNrTm9MYWJlbFRleHQoKSk7CiAKLSAgICBpZiAodHJhY2stPmtpbmQoKSAhPSBB
dWRpb1RyYWNrOjpkZXNjcmlwdGlvbktleXdvcmQoKSkKLSAgICAgICAgcmV0dXJuIGRpc3BsYXlO
YW1lLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gZGlzcGxheU5hbWUudG9TdHJp
bmcoKSkgeworICAgICAgICBpZiAodHJhY2stPmtpbmQoKSAhPSBBdWRpb1RyYWNrOjpkZXNjcmlw
dGlvbktleXdvcmQoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOwogCi0gICAgcmV0dXJu
IGF1ZGlvRGVzY3JpcHRpb25UcmFja1N1ZmZpeFRleHQoZGlzcGxheU5hbWUudG9TdHJpbmcoKSk7
CisgICAgICAgIHJldHVybiBhdWRpb0Rlc2NyaXB0aW9uVHJhY2tTdWZmaXhUZXh0KCpzdHJpbmcp
OworICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNl
c01lZGlhQUY6OmRpc3BsYXlOYW1lRm9yVHJhY2soQXVkaW9UcmFjayogdHJhY2spIGNvbnN0CkBA
IC02ODgsMjYgKzcwMSwyOSBAQCBzdGF0aWMgU3RyaW5nIHRyYWNrRGlzcGxheU5hbWUoVGV4dFRy
YWNrKiB0cmFjaykKICAgICBpZiAoZGlzcGxheU5hbWVCdWlsZGVyLmlzRW1wdHkoKSkKICAgICAg
ICAgZGlzcGxheU5hbWVCdWlsZGVyLmFwcGVuZCh0ZXh0VHJhY2tOb0xhYmVsVGV4dCgpKTsKIAot
ICAgIFN0cmluZyBkaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1lQnVpbGRlci50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IGRpc3BsYXlOYW1lQnVpbGRlci50b1N0cmluZygpKSB7Cisg
ICAgICAgIFN0cmluZyBkaXNwbGF5TmFtZSA9ICpzdHJpbmc7CiAKLSAgICBpZiAodHJhY2stPmlz
Q2xvc2VkQ2FwdGlvbnMoKSkgewotICAgICAgICBkaXNwbGF5TmFtZSA9IGNsb3NlZENhcHRpb25U
cmFja01lbnVJdGVtVGV4dChkaXNwbGF5TmFtZSk7Ci0gICAgICAgIGlmICh0cmFjay0+aXNFYXN5
VG9SZWFkKCkpCi0gICAgICAgICAgICBkaXNwbGF5TmFtZSA9IGVhc3lSZWFkZXJUcmFja01lbnVJ
dGVtVGV4dChkaXNwbGF5TmFtZSk7CisgICAgICAgIGlmICh0cmFjay0+aXNDbG9zZWRDYXB0aW9u
cygpKSB7CisgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IGNsb3NlZENhcHRpb25UcmFja01lbnVJ
dGVtVGV4dChkaXNwbGF5TmFtZSk7CisgICAgICAgICAgICBpZiAodHJhY2stPmlzRWFzeVRvUmVh
ZCgpKQorICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lID0gZWFzeVJlYWRlclRyYWNrTWVudUl0
ZW1UZXh0KGRpc3BsYXlOYW1lKTsKIAotICAgICAgICByZXR1cm4gZGlzcGxheU5hbWU7Ci0gICAg
fQorICAgICAgICAgICAgcmV0dXJuIGRpc3BsYXlOYW1lOworICAgICAgICB9CiAKLSAgICBpZiAo
dHJhY2stPmlzU0RIKCkpCi0gICAgICAgIGRpc3BsYXlOYW1lID0gc2RoVHJhY2tNZW51SXRlbVRl
eHQoZGlzcGxheU5hbWUpOworICAgICAgICBpZiAodHJhY2stPmlzU0RIKCkpCisgICAgICAgICAg
ICBkaXNwbGF5TmFtZSA9IHNkaFRyYWNrTWVudUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsKIAotICAg
IGlmICh0cmFjay0+Y29udGFpbnNPbmx5Rm9yY2VkU3VidGl0bGVzKCkpCi0gICAgICAgIGRpc3Bs
YXlOYW1lID0gZm9yY2VkVHJhY2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOworICAgICAgICBp
ZiAodHJhY2stPmNvbnRhaW5zT25seUZvcmNlZFN1YnRpdGxlcygpKQorICAgICAgICAgICAgZGlz
cGxheU5hbWUgPSBmb3JjZWRUcmFja01lbnVJdGVtVGV4dChkaXNwbGF5TmFtZSk7CiAKLSAgICBp
ZiAodHJhY2stPmlzRWFzeVRvUmVhZCgpKQotICAgICAgICBkaXNwbGF5TmFtZSA9IGVhc3lSZWFk
ZXJUcmFja01lbnVJdGVtVGV4dChkaXNwbGF5TmFtZSk7CisgICAgICAgIGlmICh0cmFjay0+aXNF
YXN5VG9SZWFkKCkpCisgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IGVhc3lSZWFkZXJUcmFja01l
bnVJdGVtVGV4dChkaXNwbGF5TmFtZSk7CiAKLSAgICByZXR1cm4gZGlzcGxheU5hbWU7CisgICAg
ICAgIHJldHVybiBkaXNwbGF5TmFtZTsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5n
IENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpkaXNwbGF5TmFtZUZvclRyYWNrKFRleHRU
cmFjayogdHJhY2spIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IGE4NDI2NWEuLjNlNDI0
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC0zNjksNyArMzY5LDkgQEAgc3RhdGljIEpTQzo6
WWFycjo6UmVndWxhckV4cHJlc3Npb24gY3JlYXRlUmVnRXhwRm9yTGFiZWxzKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JgogICAgICAgICAgICAgcGF0dGVybi5hcHBlbmRMaXRlcmFsKCJcXGIiKTsKICAg
ICB9CiAgICAgcGF0dGVybi5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4gSlNDOjpZYXJyOjpSZWd1
bGFyRXhwcmVzc2lvbihwYXR0ZXJuLnRvU3RyaW5nKCksIEpTQzo6WWFycjo6VGV4dENhc2VJbnNl
bnNpdGl2ZSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcGF0dGVybi50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gSlNDOjpZYXJyOjpSZWd1bGFyRXhwcmVzc2lvbigqc3RyaW5nLCBKU0M6Ollh
cnI6OlRleHRDYXNlSW5zZW5zaXRpdmUpOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBGcmFt
ZTo6c2VhcmNoRm9yTGFiZWxzQWJvdmVDZWxsKGNvbnN0IEpTQzo6WWFycjo6UmVndWxhckV4cHJl
c3Npb24mIHJlZ0V4cCwgSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIGNlbGwsIHNpemVfdCogcmVzdWx0
RGlzdGFuY2VGcm9tU3RhcnRPZkNlbGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKaW5kZXgg
MjZjY2M3YS4uNGRjZWYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRy
ZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcApAQCAtMTUwLDcg
KzE1MCw5IEBAIEF0b21pY1N0cmluZyBGcmFtZVRyZWU6OnVuaXF1ZUNoaWxkTmFtZShjb25zdCBB
dG9taWNTdHJpbmcmIHJlcXVlc3RlZE5hbWUpIGNvbnN0CiAgICAgbmFtZS5hcHBlbmROdW1iZXIo
Y2hpbGRDb3VudCgpKTsKICAgICBuYW1lLmFwcGVuZExpdGVyYWwoIi0tPi0tPiIpOwogCi0gICAg
cmV0dXJuIG5hbWUudG9BdG9taWNTdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBuYW1l
LnRvQXRvbWljU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIHN0YXRpYyBib29sIGluU2NvcGUoRnJhbWUmIGZyYW1lLCBUcmVlU2NvcGUmIHNjb3Bl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IGZmM2I4YWEuLjJhMzYwZjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTE0NTIsNyArMTQ1MiwxMCBAQCB2b2lkIEZyYW1l
Vmlldzo6bG9nTW9ja1Njcm9sbEFuaW1hdG9yTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
IGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiTWFpbiIpOwogICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiRnJhbWVWaWV3OiAiKTsKICAgICBidWlsZGVyLmFwcGVuZChtZXNz
YWdlKTsKLSAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3Ro
ZXIsIE1lc3NhZ2VMZXZlbDo6RGVidWcsIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBkb2N1bWVudC0+YWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6RGVidWcsICpz
dHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6
OnNldENhbm5vdEJsaXRUb1dpbmRvdygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VTZXJpYWxpemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIu
Y3BwCmluZGV4IDVmNjQyMjQuLjlhYTlmMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZVNlcmlhbGl6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlh
bGl6ZXIuY3BwCkBAIC0yNjMsOCArMjYzLDExIEBAIHZvaWQgUGFnZVNlcmlhbGl6ZXI6OnNlcmlh
bGl6ZUNTU1N0eWxlU2hlZXQoQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCwgY29uc3QgVVJMCiAg
ICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgY2hlY2sgd2hldGhlciBhIGNoYXJzZXQgaGFzIGJl
ZW4gc3BlY2lmaWVkIGFuZCBpZiBub25lIHdhcyBmb3VuZCBhZGQgb25lLgogICAgICAgICBUZXh0
RW5jb2RpbmcgdGV4dEVuY29kaW5nKHN0eWxlU2hlZXQtPmNvbnRlbnRzKCkuY2hhcnNldCgpKTsK
ICAgICAgICAgQVNTRVJUKHRleHRFbmNvZGluZy5pc1ZhbGlkKCkpOwotICAgICAgICBtX3Jlc291
cmNlcy5hcHBlbmQoeyB1cmwsIEFTQ0lJTGl0ZXJhbCB7ICJ0ZXh0L2NzcyIgfSwgU2hhcmVkQnVm
ZmVyOjpjcmVhdGUodGV4dEVuY29kaW5nLmVuY29kZShjc3NUZXh0LnRvU3RyaW5nKCksIFVuZW5j
b2RhYmxlSGFuZGxpbmc6OkVudGl0aWVzKSkgfSk7Ci0gICAgICAgIG1fcmVzb3VyY2VVUkxzLmFk
ZCh1cmwpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBjc3NUZXh0LnRvU3RyaW5nKCkpIHsK
KyAgICAgICAgICAgIG1fcmVzb3VyY2VzLmFwcGVuZCh7IHVybCwgQVNDSUlMaXRlcmFsIHsgInRl
eHQvY3NzIiB9LCBTaGFyZWRCdWZmZXI6OmNyZWF0ZSh0ZXh0RW5jb2RpbmcuZW5jb2RlKCpzdHJp
bmcsIFVuZW5jb2RhYmxlSGFuZGxpbmc6OkVudGl0aWVzKSkgfSk7CisgICAgICAgICAgICBtX3Jl
c291cmNlVVJMcy5hZGQodXJsKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBDUkFTSCgp
OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZUxvZ2dpbmdDbGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dp
bmdDbGllbnQuY3BwCmluZGV4IDlkNDRkOTQuLjNiNDRmZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5jcHAKQEAgLTUwLDcgKzUwLDkgQEAg
U3RyaW5nIFBlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudDo6c3luY2hyb25vdXNTY3JvbGxpbmdSZWFz
b25zQXNTdHJpbmcoU3luY2hyb25vdXMKICAgICAgICAgcmVhc29ucy5hcHBlbmRMaXRlcmFsKCJp
bWFnZSBkb2N1bWVudCwiKTsKIAogICAgIC8vIFN0cmlwIHRoZSB0cmFpbGluZyBjb21tYS4KLSAg
ICByZXR1cm4gcmVhc29ucy50b1N0cmluZygpLmxlZnQocmVhc29ucy5sZW5ndGgoKSAtIDEpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHJlYXNvbnMudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
IHN0cmluZy0+bGVmdChyZWFzb25zLmxlbmd0aCgpIC0gMSk7CisgICAgQ1JBU0goKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZWN1cml0eU9yaWdpbkRhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdp
bkRhdGEuY3BwCmluZGV4IDJhYWM4ZWUuLmUzYWM4ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NlY3VyaXR5T3JpZ2luRGF0YS5jcHAKQEAgLTg0LDcgKzg0LDkgQEAgU3RyaW5nIFNlY3VyaXR5
T3JpZ2luRGF0YTo6ZGF0YWJhc2VJZGVudGlmaWVyKCkgY29uc3QKICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZChzZXBhcmF0b3JDaGFyYWN0ZXIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVt
YmVyKHBvcnQudmFsdWVfb3IoMCkpOwogICAgIAotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGQ6Om9wdGlv
bmFsPFNlY3VyaXR5T3JpZ2luRGF0YT4gU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRGF0YWJhc2VJ
ZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdFRyaWdnZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdFRyaWdnZXIuY3BwCmluZGV4IGVkNTQ5Y2YuLmZjNTAy
NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RUcmlnZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0VHJpZ2dlci5jcHAK
QEAgLTEwMCw3ICsxMDAsMTAgQEAgc3RhdGljIHZvaWQgZHVtcFN0YXRlKFdURjo6SGFzaE1hcDxX
aGVlbEV2ZW50VGVzdFRyaWdnZXI6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmkKICAgICAgICAgICAg
ICAgICByZWFzb25zLmFwcGVuZCgiLCAiKTsKICAgICAgICAgICAgIHJlYXNvbnMuYXBwZW5kKFN0
cmluZzo6bnVtYmVyKHJlYXNvbikpOwogICAgICAgICB9Ci0gICAgICAgIExPRyhXaGVlbEV2ZW50
VGVzdFRyaWdnZXJzLCAiICAgICBSZWFzb25zOiAlcyIsIHJlYXNvbnMudG9TdHJpbmcoKS51dGY4
KCkuZGF0YSgpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVhc29ucy50b1N0cmluZygp
KQorICAgICAgICAgICAgTE9HKFdoZWVsRXZlbnRUZXN0VHJpZ2dlcnMsICIgICAgIFJlYXNvbnM6
ICVzIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
Q1JBU0goKTsKICAgICB9CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Nz
cC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCmluZGV4IGZjMmZkMTIuLjNjOTE4NzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcApA
QCAtODUsNyArODUsOSBAQCBzdGF0aWMgU3RyaW5nIGNvbnNvbGVNZXNzYWdlRm9yVmlvbGF0aW9u
KGNvbnN0IGNoYXIqIGVmZmVjdGl2ZVZpb2xhdGVkRGlyZWN0aXZlLAogICAgICAgICByZXN1bHQu
YXBwZW5kKGVmZmVjdGl2ZVZpb2xhdGVkRGlyZWN0aXZlKTsKICAgICAgICAgcmVzdWx0LmFwcGVu
ZExpdGVyYWwoIiBkaXJlY3RpdmUgb2YgdGhlIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5LiIpOwog
ICAgIH0KLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIENvbnRlbnRTZWN1cml0eVBvbGljeTo6Q29udGVudFNlY3VyaXR5UG9saWN5KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCkBAIC0xMzcsNyAr
MTM5LDEwIEBAIGJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd1J1bm5pbmdPckRpc3Bs
YXlpbmdJbnNlY3VyZUNvbnRlbnQoY29uc3QgVVJMJiB1CiAgICAgICAgIGNvbnNvbGVNZXNzYWdl
LmFwcGVuZCh1cmwuc3RyaW5nQ2VudGVyRWxsaXBzaXplZFRvTGVuZ3RoKCkpOwogICAgICAgICBj
b25zb2xlTWVzc2FnZS5hcHBlbmRMaXRlcmFsKCIgYmVjYXVzZSAiKTsKICAgICAgICAgY29uc29s
ZU1lc3NhZ2UuYXBwZW5kKCInYmxvY2stYWxsLW1peGVkLWNvbnRlbnQnIGFwcGVhcnMgaW4gdGhl
IENvbnRlbnQgU2VjdXJpdHkgUG9saWN5LiIpOwotICAgICAgICByZXBvcnRWaW9sYXRpb24oQ29u
dGVudFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXM6OmJsb2NrQWxsTWl4ZWRDb250ZW50LCBD
b250ZW50U2VjdXJpdHlQb2xpY3lEaXJlY3RpdmVOYW1lczo6YmxvY2tBbGxNaXhlZENvbnRlbnQs
ICpwb2xpY3ksIHVybCwgY29uc29sZU1lc3NhZ2UudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IGNvbnNvbGVNZXNzYWdlLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXBv
cnRWaW9sYXRpb24oQ29udGVudFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXM6OmJsb2NrQWxs
TWl4ZWRDb250ZW50LCBDb250ZW50U2VjdXJpdHlQb2xpY3lEaXJlY3RpdmVOYW1lczo6YmxvY2tB
bGxNaXhlZENvbnRlbnQsICpwb2xpY3ksIHVybCwgKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIENSQVNIKCk7CiAKICAgICAgICAgaWYgKCFpc1JlcG9ydE9ubHkpCiAgICAgICAg
ICAgICBhbGxvdyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvQXhpc1Njcm9sbFNuYXBPZmZzZXRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL0F4aXNTY3JvbGxTbmFwT2Zmc2V0cy5jcHAKaW5kZXggMDIwNzUzOC4uZDhkM2YyOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXhpc1Njcm9sbFNuYXBP
ZmZzZXRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9BeGlzU2Nyb2xs
U25hcE9mZnNldHMuY3BwCkBAIC04MSw3ICs4MSw5IEBAIHN0YXRpYyBTdHJpbmcgc25hcE9mZnNl
dHNUb1N0cmluZyhjb25zdCBWZWN0b3I8TGF5b3V0VW5pdD4mIHNuYXBPZmZzZXRzKQogICAgICAg
ICBzLmFwcGVuZChTdHJpbmc6OmZvcm1hdCgiJS4xZiAiLCBvZmZzZXQudG9GbG9hdCgpKSk7CiAK
ICAgICBzLmFwcGVuZCgiXSIpOwotICAgIHJldHVybiBzLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gcy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBD
UkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIHNuYXBPZmZzZXRSYW5nZXNUb1N0cmluZyhjb25z
dCBWZWN0b3I8U2Nyb2xsT2Zmc2V0UmFuZ2U8TGF5b3V0VW5pdD4+JiByYW5nZXMpCkBAIC05MSw3
ICs5Myw5IEBAIHN0YXRpYyBTdHJpbmcgc25hcE9mZnNldFJhbmdlc1RvU3RyaW5nKGNvbnN0IFZl
Y3RvcjxTY3JvbGxPZmZzZXRSYW5nZTxMYXlvdXRVbml0CiAgICAgZm9yIChhdXRvIHJhbmdlIDog
cmFuZ2VzKQogICAgICAgICBzLmFwcGVuZChTdHJpbmc6OmZvcm1hdCgiKCUuMWYsICUuMWYpICIs
IHJhbmdlLnN0YXJ0LnRvRmxvYXQoKSwgcmFuZ2UuZW5kLnRvRmxvYXQoKSkpOwogICAgIHMuYXBw
ZW5kKCJdIik7Ci0gICAgcmV0dXJuIHMudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBzLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIHN0YXRpYyBTdHJpbmcgc25hcFBvcnRPckFyZWFUb1N0cmluZyhjb25zdCBMYXlvdXRSZWN0
JiByZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IGY1MDIyMWEuLjNjMWM2ZTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAK
QEAgLTM4OSw3ICszODksOSBAQCBTdHJpbmcgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnN5bmNocm9u
b3VzU2Nyb2xsaW5nUmVhc29uc0FzVGV4dChTeW5jaHJvbm91c1Njcm9sbAogCiAgICAgaWYgKHN0
cmluZ0J1aWxkZXIubGVuZ3RoKCkpCiAgICAgICAgIHN0cmluZ0J1aWxkZXIucmVzaXplKHN0cmlu
Z0J1aWxkZXIubGVuZ3RoKCkgLSAyKTsKLSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yOjpzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNBc1RleHQoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVjaW1hbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9EZWNpbWFsLmNwcAppbmRleCAzZDUyNWNmLi4xYTE5MmE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EZWNpbWFsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9EZWNpbWFsLmNwcApAQCAtOTk0LDcgKzk5NCw5IEBAIFN0cmluZyBE
ZWNpbWFsOjp0b1N0cmluZygpIGNvbnN0CiAgICAgaWYgKG9yaWdpbmFsRXhwb25lbnQgPD0gMCAm
JiBhZGp1c3RlZEV4cG9uZW50ID49IC02KSB7CiAgICAgICAgIGlmICghb3JpZ2luYWxFeHBvbmVu
dCkgewogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoZGlnaXRzKTsKLSAgICAgICAgICAgIHJl
dHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
ICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKGFkanVzdGVkRXhwb25l
bnQgPj0gMCkgewpAQCAtMTAwMyw3ICsxMDA1LDkgQEAgU3RyaW5nIERlY2ltYWw6OnRvU3RyaW5n
KCkgY29uc3QKICAgICAgICAgICAgICAgICBpZiAoaSA9PSBhZGp1c3RlZEV4cG9uZW50KQogICAg
ICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnLicpOwogICAgICAgICAgICAgfQotICAg
ICAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KIAogICAgICAgICBidWlsZGVy
LmFwcGVuZExpdGVyYWwoIjAuIik7CkBAIC0xMDI3LDcgKzEwMzEsOSBAQCBTdHJpbmcgRGVjaW1h
bDo6dG9TdHJpbmcoKSBjb25zdAogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoYWRq
dXN0ZWRFeHBvbmVudCk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIERlY2ltYWwgRGVjaW1hbDo6
emVybyhTaWduIHNpZ24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxl
U3lzdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwCmluZGV4
IDJmZGIyNjAuLmU2N2Q2NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Zp
bGVTeXN0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3Bw
CkBAIC0xMzAsNyArMTMwLDkgQEAgU3RyaW5nIGVuY29kZUZvckZpbGVOYW1lKGNvbnN0IFN0cmlu
ZyYgaW5wdXRTdHJpbmcpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGNoYXJhY3Rlcik7CiAg
ICAgfQogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBTdHJpbmcgZGVjb2RlRnJvbUZpbGVuYW1lKGNvbnN0IFN0cmluZyYgaW5wdXRT
dHJpbmcpCkBAIC0xODEsNyArMTgzLDkgQEAgU3RyaW5nIGRlY29kZUZyb21GaWxlbmFtZShjb25z
dCBTdHJpbmcmIGlucHV0U3RyaW5nKQogICAgICAgICBpICs9IDU7CiAgICAgfQogCi0gICAgcmV0
dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJp
bmcgbGFzdENvbXBvbmVudE9mUGF0aElnbm9yaW5nVHJhaWxpbmdTbGFzaChjb25zdCBTdHJpbmcm
IHBhdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RJbnRlcnZhbC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUE9ESW50ZXJ2YWwuaAppbmRleCAwNDhkYTk4Li42
NDYzNjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RJbnRlcnZhbC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPREludGVydmFsLmgKQEAgLTE0NSw3ICsx
NDUsOSBAQCBwdWJsaWM6CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCBtYXhIaWdo
PSIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChWYWx1ZVRvU3RyaW5nPFQ+OjpzdHJpbmcobWF4
SGlnaCgpKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCddJyk7Ci0gICAgICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwog
ICAgIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RS
ZWRCbGFja1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPRFJlZEJsYWNrVHJlZS5o
CmluZGV4IDEzMWYzMWEuLjQ5NjBlZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BPRFJlZEJsYWNrVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPRFJl
ZEJsYWNrVHJlZS5oCkBAIC03NDQsNyArNzQ0LDEwIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBi
dWlsZGVyLmFwcGVuZChWYWx1ZVRvU3RyaW5nPFQ+OjpzdHJpbmcobm9kZS0+ZGF0YSgpKSk7CiAg
ICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgobm9kZS0+Y29sb3IoKSA9PSBCbGFjaykgPyAiIChi
bGFjaykiIDogIiAocmVkKSIpOwogICAgICAgICB9Ci0gICAgICAgIExPR19FUlJPUigiJXMiLCBi
dWlsZGVyLnRvU3RyaW5nKCkuYXNjaWkoKS5kYXRhKCkpOworICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBMT0dfRVJST1IoIiVzIiwgc3Ry
aW5nLT5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7
CiAgICAgICAgIGlmIChub2RlKSB7CiAgICAgICAgICAgICBkdW1wRnJvbU5vZGUobm9kZS0+bGVm
dCgpLCBpbmRlbnRhdGlvbiArIDIpOwogICAgICAgICAgICAgZHVtcEZyb21Ob2RlKG5vZGUtPnJp
Z2h0KCksIGluZGVudGF0aW9uICsgMik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9VUkwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcAppbmRleCAxNTll
N2ZhLi4zZGI4MmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAKQEAgLTQ1NSw4ICs0NTUsMTEg
QEAgdm9pZCBVUkw6OnNldEhvc3QoY29uc3QgU3RyaW5nJiBzKQogICAgIGJ1aWxkZXIuYXBwZW5k
KFN0cmluZ1ZpZXcoZW5jb2RlZEhvc3ROYW1lLmRhdGEoKSwgZW5jb2RlZEhvc3ROYW1lLnNpemUo
KSkpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG1fc3RyaW5nLnN1YnN0cmluZyhtX2hvc3RFbmQpKTsK
IAotICAgIFVSTFBhcnNlciBwYXJzZXIoYnVpbGRlci50b1N0cmluZygpKTsKLSAgICAqdGhpcyA9
IHBhcnNlci5yZXN1bHQoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpIHsKKyAgICAgICAgVVJMUGFyc2VyIHBhcnNlcigqc3RyaW5nKTsKKyAgICAgICAgKnRoaXMg
PSBwYXJzZXIucmVzdWx0KCk7CisgICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZv
aWQgVVJMOjpyZW1vdmVQb3J0KCkKQEAgLTUxNyw4ICs1MjAsMTEgQEAgdm9pZCBVUkw6OnNldEhv
c3RBbmRQb3J0KGNvbnN0IFN0cmluZyYgaG9zdEFuZFBvcnQpCiAgICAgfQogICAgIGJ1aWxkZXIu
YXBwZW5kKG1fc3RyaW5nLnN1YnN0cmluZyhtX3BvcnRFbmQpKTsKIAotICAgIFVSTFBhcnNlciBw
YXJzZXIoYnVpbGRlci50b1N0cmluZygpKTsKLSAgICAqdGhpcyA9IHBhcnNlci5yZXN1bHQoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgVVJM
UGFyc2VyIHBhcnNlcigqc3RyaW5nKTsKKyAgICAgICAgKnRoaXMgPSBwYXJzZXIucmVzdWx0KCk7
CisgICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgcGVyY2Vu
dEVuY29kZUNoYXJhY3RlcnMoY29uc3QgU3RyaW5nJiBpbnB1dCwgYm9vbCgqc2hvdWxkRW5jb2Rl
KShVQ2hhcikpCkBAIC01MzcsNyArNTQzLDkgQEAgc3RhdGljIFN0cmluZyBwZXJjZW50RW5jb2Rl
Q2hhcmFjdGVycyhjb25zdCBTdHJpbmcmIGlucHV0LCBib29sKCpzaG91bGRFbmNvZGUpKFUKICAg
ICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGMpOwogICAg
ICAgICB9Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH07CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IGlucHV0Lmxlbmd0aCgpOyArK2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uY3BwCmluZGV4IDhjOTcyZDYuLmVkYmZlZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5j
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1
bmN0aW9uLmNwcApAQCAtMTI5LDcgKzEyOSwxMCBAQCBFeGNlcHRpb25PcjxSZWZQdHI8VGltaW5n
RnVuY3Rpb24+PiBUaW1pbmdGdW5jdGlvbjo6Y3JlYXRlRnJvbUNTU1RleHQoY29uc3QgU3RyaQog
ICAgIGNzc1N0cmluZy5hcHBlbmRMaXRlcmFsKCI6ICIpOwogICAgIGNzc1N0cmluZy5hcHBlbmQo
Y3NzVGV4dCk7CiAgICAgYXV0byBzdHlsZVByb3BlcnRpZXMgPSBNdXRhYmxlU3R5bGVQcm9wZXJ0
aWVzOjpjcmVhdGUoKTsKLSAgICBzdHlsZVByb3BlcnRpZXMtPnBhcnNlRGVjbGFyYXRpb24oY3Nz
U3RyaW5nLnRvU3RyaW5nKCksIENTU1BhcnNlckNvbnRleHQoSFRNTFN0YW5kYXJkTW9kZSkpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IGNzc1N0cmluZy50b1N0cmluZygpKQorICAgICAgICBzdHls
ZVByb3BlcnRpZXMtPnBhcnNlRGVjbGFyYXRpb24oKnN0cmluZywgQ1NTUGFyc2VyQ29udGV4dChI
VE1MU3RhbmRhcmRNb2RlKSk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgaWYg
KGF1dG8gY3NzVmFsdWUgPSBzdHlsZVByb3BlcnRpZXMtPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NT
UHJvcGVydHlBbmltYXRpb25UaW1pbmdGdW5jdGlvbikpIHsKICAgICAgICAgaWYgKGF1dG8gdGlt
aW5nRnVuY3Rpb24gPSBjcmVhdGVGcm9tQ1NTVmFsdWUoKmNzc1ZhbHVlLmdldCgpKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAKaW5kZXggZjk0
MDgxNS4uMmIzMGIyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9G
aWxlU3lzdGVtR2xpYi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxl
U3lzdGVtR2xpYi5jcHAKQEAgLTIxOCw3ICsyMTgsOSBAQCBTdHJpbmcgcGF0aEJ5QXBwZW5kaW5n
Q29tcG9uZW50cyhTdHJpbmdWaWV3IHBhdGgsIGNvbnN0IFZlY3RvcjxTdHJpbmdWaWV3PiYgY29t
cAogICAgICAgICBidWlsZGVyLmFwcGVuZChHX0RJUl9TRVBBUkFUT1JfUyk7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKGNvbXBvbmVudCk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIG1ha2VBbGxEaXJlY3Rv
cmllcyhjb25zdCBTdHJpbmcmIHBhdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvci5jcHAKaW5kZXggNWRkMTUwZi4uZWUxYmU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcApAQCAtMzQ4LDcgKzM0OCw5IEBAIFN0cmluZyBDb2xv
cjo6c2VyaWFsaXplZCgpIGNvbnN0CiAgICAgICAgIGFwcGVuZEJ5dGVBc0hleChyZWQoKSwgYnVp
bGRlciwgTG93ZXJjYXNlKTsKICAgICAgICAgYXBwZW5kQnl0ZUFzSGV4KGdyZWVuKCksIGJ1aWxk
ZXIsIExvd2VyY2FzZSk7CiAgICAgICAgIGFwcGVuZEJ5dGVBc0hleChibHVlKCksIGJ1aWxkZXIs
IExvd2VyY2FzZSk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIHJldHVybiBjc3NUZXh0
KCk7CkBAIC0zODQsNyArMzg2LDkgQEAgU3RyaW5nIENvbG9yOjpjc3NUZXh0KCkgY29uc3QKICAg
ICB9CiAgICAgICAgIAogICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBDb2xv
cjo6bmFtZUZvclJlbmRlclRyZWVBc1RleHQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmNwcAppbmRleCA1MGUzYzVjLi40NDhk
ZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRl
ZENvbG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRl
ZENvbG9yLmNwcApAQCAtNzIsNyArNzIsOSBAQCBTdHJpbmcgRXh0ZW5kZWRDb2xvcjo6Y3NzVGV4
dCgpIGNvbnN0CiAgICAgfQogICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7CiAKLSAgICByZXR1cm4g
YnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwCmluZGV4
IDg0Nzg2MWYuLjU1NDgyOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRDYXNjYWRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250Q2FzY2FkZS5jcHAKQEAgLTU0OSw3ICs1NDksOSBAQCBzdGF0aWMgaW5saW5lIFN0
cmluZyBub3JtYWxpemVTcGFjZXNJbnRlcm5hbChjb25zdCBDaGFyYWN0ZXJUeXBlKiBjaGFyYWN0
ZXJzLCB1bgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKICAgICAg
ICAgbm9ybWFsaXplZC5hcHBlbmQoRm9udENhc2NhZGU6Om5vcm1hbGl6ZVNwYWNlcyhjaGFyYWN0
ZXJzW2ldKSk7CiAKLSAgICByZXR1cm4gbm9ybWFsaXplZC50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IG5vcm1hbGl6ZWQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIEZvbnRDYXNjYWRlOjpub3JtYWxpemVTcGFj
ZXMoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRUYWdnZWRTZXR0aW5ncy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250VGFnZ2VkU2V0dGluZ3MuY3Bw
CmluZGV4IDYxYjJlYmUuLjVjNDY3MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRUYWdnZWRTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNldHRpbmdzLmNwcApAQCAtNzIsNyArNzIsMTAg
QEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgRm9udFZhcmlh
dGlvblNldHRpbmdzJiBpdGVtKQogICAgICAgICBzLmFwcGVuZCh2YXJpYXRpb24udGFnKClbMV0p
OwogICAgICAgICBzLmFwcGVuZCh2YXJpYXRpb24udGFnKClbMl0pOwogICAgICAgICBzLmFwcGVu
ZCh2YXJpYXRpb24udGFnKClbM10pOwotICAgICAgICB0cy5kdW1wUHJvcGVydHkocy50b1N0cmlu
ZygpLCBpdGVtLmF0KGkpLnZhbHVlKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzLnRv
U3RyaW5nKCkpCisgICAgICAgICAgICB0cy5kdW1wUHJvcGVydHkoKnN0cmluZywgaXRlbS5hdChp
KS52YWx1ZSgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAg
ICAgcmV0dXJuIHRzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyLmNwcAppbmRleCA2OTgxODBlLi4xNWNlODkyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcApAQCAtNDQx
LDcgKzQ0MSw5IEBAIFN0cmluZyBHcmFwaGljc0xheWVyOjphbmltYXRpb25OYW1lRm9yVHJhbnNp
dGlvbihBbmltYXRlZFByb3BlcnR5SUQgcHJvcGVydHkpCiAgICAgaWQuYXBwZW5kTGl0ZXJhbCgi
LXx0cmFuc2l0aW9uIik7CiAgICAgaWQuYXBwZW5kTnVtYmVyKHN0YXRpY19jYXN0PGludD4ocHJv
cGVydHkpKTsKICAgICBpZC5hcHBlbmQoJy0nKTsKLSAgICByZXR1cm4gaWQudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBpZC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIEdyYXBoaWNzTGF5ZXI6OnN1c3BlbmRBbmlt
YXRpb25zKE1vbm90b25pY1RpbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZUFWRi5jcHAKaW5kZXggNmYyYjM4Ny4uOTUzYzQ5OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFj
a1ByaXZhdGVBVkYuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmNwcApAQCAtMzAwLDggKzMwMCwx
MiBAQCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NDdWVBdHRyaWJ1dGVz
KENGQXR0cmlidXRlZFN0cmluZ1JlZiBhdHRyaQogICAgICAgICBjb250ZW50LmFwcGVuZCh0YWdF
bmQpOwogICAgIH0KIAotICAgIGlmIChjb250ZW50Lmxlbmd0aCgpKQotICAgICAgICBjdWVEYXRh
LnNldENvbnRlbnQoY29udGVudC50b1N0cmluZygpKTsKKyAgICBpZiAoY29udGVudC5sZW5ndGgo
KSkgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBjb250ZW50LnRvU3RyaW5nKCkpCisgICAg
ICAgICAgICBjdWVEYXRhLnNldENvbnRlbnQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIENSQVNIKCk7CisgICAgfQogfQogCiB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVB
VkY6OnByb2Nlc3NDdWUoQ0ZBcnJheVJlZiBhdHRyaWJ1dGVkU3RyaW5ncywgQ0ZBcnJheVJlZiBu
YXRpdmVTYW1wbGVzLCBjb25zdCBNZWRpYVRpbWUmIHRpbWUpCkBAIC01MzAsNyArNTM0LDEwIEBA
IHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc05hdGl2ZVNhbXBsZXMoQ0ZB
cnJheVJlZiBuYXRpdmVTYW1wbGVzLCBjCiAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kKCJcblxu
Iik7CiAKICAgICAgICAgICAgIERFQlVHX0xPRyhMT0dJREVOVElGSUVSLCAiVlRUIGhlYWRlciAi
LCAmaGVhZGVyKTsKLSAgICAgICAgICAgIGNsaWVudCgpLT5wYXJzZVdlYlZUVEZpbGVIZWFkZXIo
aGVhZGVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gaGVhZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgY2xpZW50KCktPnBhcnNlV2ViVlRURmlsZUhl
YWRlcihXVEZNb3ZlKCpzdHJpbmcpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICBDUkFTSCgpOwogICAgICAgICAgICAgbV9oYXZlUmVwb3J0ZWRWVFRIZWFkZXIgPSB0cnVlOwog
ICAgICAgICB9IHdoaWxlICgwKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwCmluZGV4IGVjM2FlNGYuLmEzN2Q4NDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxl
Q29udHJvbGxlci5jcHAKQEAgLTczNSw3ICs3MzUsMTAgQEAgUmVmUHRyPFBsYXRmb3JtQ0FMYXll
cj4gVGlsZUNvbnRyb2xsZXI6OmNyZWF0ZVRpbGVMYXllcihjb25zdCBJbnRSZWN0JiB0aWxlUmVj
dCwKICAgICBuYW1lQnVpbGRlci5hcHBlbmROdW1iZXIodGlsZVJlY3QubG9jYXRpb24oKS54KCkp
OwogICAgIG5hbWVCdWlsZGVyLmFwcGVuZCgnLCcpOwogICAgIG5hbWVCdWlsZGVyLmFwcGVuZE51
bWJlcih0aWxlUmVjdC5sb2NhdGlvbigpLnkoKSk7Ci0gICAgbGF5ZXItPnNldE5hbWUobmFtZUJ1
aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbmFtZUJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgbGF5ZXItPnNldE5hbWUoKnN0cmluZyk7CisgICAgZWxzZQorICAg
ICAgICBDUkFTSCgpOwogCiAgICAgZmxvYXQgdGVtcG9yYXJ5U2NhbGVGYWN0b3IgPSBvd25pbmdH
cmFwaGljc0xheWVyKCktPnBsYXRmb3JtQ0FMYXllckNvbnRlbnRzU2NhbGVNdWx0aXBsaWVyRm9y
TmV3VGlsZXMobV90aWxlQ2FjaGVMYXllcik7CiAgICAgbV9oYXNUaWxlc1dpdGhUZW1wb3JhcnlT
Y2FsZUZhY3RvciB8PSB0ZW1wb3JhcnlTY2FsZUZhY3RvciAhPSAxOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUdyaWQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUdyaWQuY3BwCmluZGV4IDU5MTlmOTcuLmU4
NjY1OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1Rp
bGVHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxl
R3JpZC5jcHAKQEAgLTU5LDcgKzU5LDkgQEAgc3RhdGljIFN0cmluZyB2YWxpZGF0aW9uUG9saWN5
QXNTdHJpbmcoVGlsZUdyaWQ6OlRpbGVWYWxpZGF0aW9uUG9saWN5IHZhbGlkYXRpb24KICAgICB9
CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJdIik7CiAKLSAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxh
eWVyV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0
Zm9ybUNBTGF5ZXJXaW4uY3BwCmluZGV4IGMwMDBiNDMuLmZhNjQwZmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9y
bUNBTGF5ZXJXaW4uY3BwCkBAIC05MzQsNyArOTM0LDkgQEAgU3RyaW5nIFBsYXRmb3JtQ0FMYXll
cldpbjo6bGF5ZXJUcmVlQXNTdHJpbmcoKSBjb25zdAogICAgIC8vIFByaW50IGxheWVyIHRyZWUg
ZnJvbSB0aGUgcm9vdAogICAgIHByaW50TGF5ZXIoYnVpbGRlciwgdGhpcywgMCk7CiAKLSAgICBy
ZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAog
UmVmPFBsYXRmb3JtQ0FMYXllcj4gUGxhdGZvcm1DQUxheWVyV2luOjpjcmVhdGVDb21wYXRpYmxl
TGF5ZXIoUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGUgbGF5ZXJUeXBlLCBQbGF0Zm9ybUNBTGF5
ZXJDbGllbnQqIGNsaWVudCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcAppbmRleCBkZmZj
ZGNiLi40N2YzMjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwCkBAIC01MTIsNyArNTEyLDEw
IEBAIGJvb2wgVmlkZW9UZXh0dXJlQ29waWVyQ1Y6OmluaXRpYWxpemVDb250ZXh0T2JqZWN0cygp
CiAgICAgdmVydGV4U2hhZGVyU291cmNlLmFwcGVuZExpdGVyYWwoIn1cbiIpOwogCiAgICAgUGxh
dGZvcm0zRE9iamVjdCB2ZXJ0ZXhTaGFkZXIgPSBtX2NvbnRleHQtPmNyZWF0ZVNoYWRlcihHcmFw
aGljc0NvbnRleHQzRDo6VkVSVEVYX1NIQURFUik7Ci0gICAgbV9jb250ZXh0LT5zaGFkZXJTb3Vy
Y2UodmVydGV4U2hhZGVyLCB2ZXJ0ZXhTaGFkZXJTb3VyY2UudG9TdHJpbmcoKSk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gdmVydGV4U2hhZGVyU291cmNlLnRvU3RyaW5nKCkpCisgICAgICAgIG1f
Y29udGV4dC0+c2hhZGVyU291cmNlKHZlcnRleFNoYWRlciwgKnN0cmluZyk7CisgICAgZWxzZQor
ICAgICAgICBDUkFTSCgpOwogICAgIG1fY29udGV4dC0+Y29tcGlsZVNoYWRlckRpcmVjdCh2ZXJ0
ZXhTaGFkZXIpOwogCiAgICAgR0MzRGludCB2YWx1ZSA9IDA7CkBAIC01NTMsNyArNTU2LDEwIEBA
IGJvb2wgVmlkZW9UZXh0dXJlQ29waWVyQ1Y6OmluaXRpYWxpemVDb250ZXh0T2JqZWN0cygpCiAg
ICAgZnJhZ21lbnRTaGFkZXJTb3VyY2UuYXBwZW5kTGl0ZXJhbCgifVxuIik7CiAKICAgICBQbGF0
Zm9ybTNET2JqZWN0IGZyYWdtZW50U2hhZGVyID0gbV9jb250ZXh0LT5jcmVhdGVTaGFkZXIoR3Jh
cGhpY3NDb250ZXh0M0Q6OkZSQUdNRU5UX1NIQURFUik7Ci0gICAgbV9jb250ZXh0LT5zaGFkZXJT
b3VyY2UoZnJhZ21lbnRTaGFkZXIsIGZyYWdtZW50U2hhZGVyU291cmNlLnRvU3RyaW5nKCkpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IGZyYWdtZW50U2hhZGVyU291cmNlLnRvU3RyaW5nKCkpCisg
ICAgICAgIG1fY29udGV4dC0+c2hhZGVyU291cmNlKGZyYWdtZW50U2hhZGVyLCAqc3RyaW5nKTsK
KyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgbV9jb250ZXh0LT5jb21waWxlU2hhZGVy
RGlyZWN0KGZyYWdtZW50U2hhZGVyKTsKIAogICAgIG1fY29udGV4dC0+Z2V0U2hhZGVyaXYoZnJh
Z21lbnRTaGFkZXIsIEdyYXBoaWNzQ29udGV4dDNEOjpDT01QSUxFX1NUQVRVUywgJnZhbHVlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFw
aGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCmluZGV4IDVi
ZGQ2NjMuLjAyNWVjY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdM
Q29tbW9uLmNwcApAQCAtOTUzLDcgKzk1Myw5IEBAIHN0YXRpYyBTdHJpbmcgZ2VuZXJhdGVIYXNo
ZWROYW1lKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAg
ICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJ3ZWJnbF8iKTsKICAgICBhcHBlbmRVbnNpZ25lZDY0
QXNIZXgobnVtYmVyLCBidWlsZGVyLCBMb3dlcmNhc2UpOwotICAgIHJldHVybiBidWlsZGVyLnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGQ6Om9wdGlvbmFsPFN0
cmluZz4gR3JhcGhpY3NDb250ZXh0M0Q6Om1hcHBlZFN5bWJvbEluU2hhZGVyU291cmNlTWFwKFBs
YXRmb3JtM0RPYmplY3Qgc2hhZGVyLCBBTkdMRVNoYWRlclN5bWJvbFR5cGUgc3ltYm9sVHlwZSwg
Y29uc3QgU3RyaW5nJiBuYW1lKQpAQCAtMTY4NSw4ICsxNjg3LDExIEBAIFN0cmluZyBHcmFwaGlj
c0NvbnRleHQzRDo6Z2V0VW5tYW5nbGVkSW5mb0xvZyhQbGF0Zm9ybTNET2JqZWN0IHNoYWRlcnNb
Ml0sIEdDM0RzCiAKICAgICBwcm9jZXNzZWRMb2cuYXBwZW5kKGxvZy5zdWJzdHJpbmcoc3RhcnRG
cm9tLCBsb2cubGVuZ3RoKCkgLSBzdGFydEZyb20pKTsKIAotICAgIExPRyhXZWJHTCwgIlVubWFu
Z2xlZCBTaGFkZXJJbmZvTG9nOlxuJXMiLCBwcm9jZXNzZWRMb2cudG9TdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKLSAgICByZXR1cm4gcHJvY2Vzc2VkTG9nLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gcHJvY2Vzc2VkTG9nLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgTE9HKFdlYkdM
LCAiVW5tYW5nbGVkIFNoYWRlckluZm9Mb2c6XG4lcyIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiBTdHJp
bmcgR3JhcGhpY3NDb250ZXh0M0Q6OmdldFByb2dyYW1JbmZvTG9nKFBsYXRmb3JtM0RPYmplY3Qg
cHJvZ3JhbSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwCmluZGV4
IDJlNmM1MmMuLjI0YTg4ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9n
cmFtLmNwcApAQCAtMzk3LDcgKzM5NywxMCBAQCBSZWY8VGV4dHVyZU1hcHBlclNoYWRlclByb2dy
YW0+IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpjcmVhdGUoVGV4dHVyZU1hcHBlcgogI2Vu
ZGlmCiAKICAgICAvLyBBcHBlbmQgdGhlIG9wdGlvbnMuCi0gICAgdmVydGV4U2hhZGVyQnVpbGRl
ci5hcHBlbmQob3B0aW9uc0FwcGxpZXJCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IG9wdGlvbnNBcHBsaWVyQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICB2ZXJ0
ZXhTaGFkZXJCdWlsZGVyLmFwcGVuZCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNI
KCk7CiAKICAgICAvLyBBcHBlbmQgdGhlIGFwcHJvcHJpYXRlIGlucHV0L291dHB1dCB2YXJpYWJs
ZSBkZWZpbml0aW9ucy4KICNpZiBVU0UoT1BFTkdMX0VTKQpAQCAtNDIxLDcgKzQyNCwxMCBAQCBS
ZWY8VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0+IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFt
OjpjcmVhdGUoVGV4dHVyZU1hcHBlcgogI2VuZGlmCiAKICAgICAvLyBBcHBlbmQgdGhlIG9wdGlv
bnMuCi0gICAgZnJhZ21lbnRTaGFkZXJCdWlsZGVyLmFwcGVuZChvcHRpb25zQXBwbGllckJ1aWxk
ZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gb3B0aW9uc0FwcGxpZXJCdWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGZyYWdtZW50U2hhZGVyQnVpbGRlci5hcHBlbmQoKnN0
cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgLy8gQXBwZW5kIHRoZSBj
b21tb24gaGVhZGVyLgogICAgIGZyYWdtZW50U2hhZGVyQnVpbGRlci5hcHBlbmQoZnJhZ21lbnRU
ZW1wbGF0ZUhlYWRlckNvbW1vbik7CkBAIC00MzksNyArNDQ1LDEwIEBAIFJlZjxUZXh0dXJlTWFw
cGVyU2hhZGVyUHJvZ3JhbT4gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OmNyZWF0ZShUZXh0
dXJlTWFwcGVyCiAgICAgLy8gQXBwZW5kIHRoZSBjb21tb24gY29kZS4KICAgICBmcmFnbWVudFNo
YWRlckJ1aWxkZXIuYXBwZW5kKGZyYWdtZW50VGVtcGxhdGVDb21tb24pOwogCi0gICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0odmVydGV4U2hhZGVyQnVp
bGRlci50b1N0cmluZygpLCBmcmFnbWVudFNoYWRlckJ1aWxkZXIudG9TdHJpbmcoKSkpOworICAg
IGlmIChhdXRvIHZlcnRleFN0cmluZyA9IHZlcnRleFNoYWRlckJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgaWYgKGF1dG8gZnJhZ21lbnRTdHJpbmcgPSBmcmFnbWVudFNoYWRlckJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHR1cmVNYXBw
ZXJTaGFkZXJQcm9ncmFtKCp2ZXJ0ZXhTdHJpbmcsICpmcmFnbWVudFN0cmluZykpOworICAgIENS
QVNIKCk7CiB9CiAKICNpZiAhTE9HX0RJU0FCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QYXN0ZWJvYXJkTWFjLm1tCmluZGV4IDM2NThkZDEuLmExMmNiMzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCkBAIC0yODgsNyArMjg4LDkg
QEAgc3RhdGljIFN0cmluZyBqb2luUGF0aG5hbWVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXRo
bmFtZXMpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKICAgICAgICAgYnVpbGRl
ci5hcHBlbmQocGF0aCk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIFBhc3RlYm9hcmQ6OnJlYWQoUGFzdGVi
b2FyZFBsYWluVGV4dCYgdGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9TdHJpbmdVdGlsaXRpZXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3Ry
aW5nVXRpbGl0aWVzLm1tCmluZGV4IDdjZDFiZDguLjlmMzhmYjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbQpAQCAtNTAsOCArNTAsMTAgQEAg
c3RhdGljIFN0cmluZyB3aWxkY2FyZFJlZ2V4UGF0dGVyblN0cmluZyhjb25zdCBTdHJpbmcmIHN0
cmluZykKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoY2hhcmFjdGVyKTsKICAgICB9CiAg
ICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJyQnKTsKLSAgICAgICAgCi0gICAgcmV0dXJuIHN0cmlu
Z0J1aWxkZXIudG9TdHJpbmcoKTsKKworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
ICAgICAKIGJvb2wgc3RyaW5nTWF0Y2hlc1dpbGRjYXJkU3RyaW5nKGNvbnN0IFN0cmluZyYgc3Ry
aW5nLCBjb25zdCBTdHJpbmcmIHdpbGRjYXJkU3RyaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbW9jay9TY3JvbGxBbmltYXRvck1vY2suY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9TY3JvbGxBbmltYXRvck1vY2suY3BwCmluZGV4IDNjYzBmZTkuLjMx
YmQzZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Nyb2xsQW5p
bWF0b3JNb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1Njcm9sbEFu
aW1hdG9yTW9jay5jcHAKQEAgLTEwMSw3ICsxMDEsMTAgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1v
Y2s6Om1vdXNlRW50ZXJlZFNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhcikgY29uc3QKICAg
ICBlbHNlCiAgICAgICAgIG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiVW5rbm93biIpOwogICAgIG1l
c3NhZ2UuYXBwZW5kTGl0ZXJhbCgiU2Nyb2xsYmFyIik7Ci0gICAgbV9sb2dnZXIobWVzc2FnZS50
b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtZXNzYWdlLnRvU3RyaW5nKCkpCisg
ICAgICAgIG1fbG9nZ2VyKCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAg
ICBTY3JvbGxBbmltYXRvcjo6bW91c2VFbnRlcmVkU2Nyb2xsYmFyKHNjcm9sbGJhcik7CiB9CiAK
QEAgLTExNiw3ICsxMTksMTAgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1vY2s6Om1vdXNlRXhpdGVk
U2Nyb2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyKSBjb25zdAogICAgIGVsc2UKICAgICAgICAg
bWVzc2FnZS5hcHBlbmRMaXRlcmFsKCJVbmtub3duIik7CiAgICAgbWVzc2FnZS5hcHBlbmRMaXRl
cmFsKCJTY3JvbGxiYXIiKTsKLSAgICBtX2xvZ2dlcihtZXNzYWdlLnRvU3RyaW5nKCkpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IG1lc3NhZ2UudG9TdHJpbmcoKSkKKyAgICAgICAgbV9sb2dnZXIo
KnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIFNjcm9sbEFuaW1hdG9y
Ojptb3VzZUV4aXRlZFNjcm9sbGJhcihzY3JvbGxiYXIpOwogfQogCkBAIC0xMzYsNyArMTQyLDEw
IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNb2NrOjptb3VzZUlzRG93bkluU2Nyb2xsYmFyKFNjcm9s
bGJhciogc2Nyb2xsYmFyLCBib29sIGlzUHJlCiAgICAgZWxzZQogICAgICAgICBtZXNzYWdlLmFw
cGVuZExpdGVyYWwoIlVua25vd24iKTsKICAgICBtZXNzYWdlLmFwcGVuZExpdGVyYWwoIlNjcm9s
bGJhciIpOwotICAgIG1fbG9nZ2VyKG1lc3NhZ2UudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gbWVzc2FnZS50b1N0cmluZygpKQorICAgICAgICBtX2xvZ2dlcigqc3RyaW5nKTsK
KyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgU2Nyb2xsQW5pbWF0b3I6Om1vdXNlSXNE
b3duSW5TY3JvbGxiYXIoc2Nyb2xsYmFyLCBpc1ByZXNzZWQpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tCb3guY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrQm94LmNwcAppbmRleCBk
NGFhMjA1Li5mYjY1YTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L21lZGlhc291cmNlL01vY2tCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svbWVkaWFzb3VyY2UvTW9ja0JveC5jcHAKQEAgLTUyLDcgKzUyLDkgQEAgU3RyaW5nIE1vY2tC
b3g6OnBlZWtUeXBlKEFycmF5QnVmZmVyKiBkYXRhKQogICAgIFJlZlB0cjxJbnQ4QXJyYXk+IGFy
cmF5ID0gSlNDOjpJbnQ4QXJyYXk6OmNyZWF0ZShkYXRhLCAwLCA0KTsKICAgICBmb3IgKGludCBp
ID0gMDsgaSA8IDQ7ICsraSkKICAgICAgICAgYnVpbGRlci5hcHBlbmQoYXJyYXktPml0ZW0oaSkp
OwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
YnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogCiBzaXplX3QgTW9ja0JveDo6cGVla0xlbmd0aChBcnJheUJ1ZmZlciogZGF0YSkKQEAg
LTczLDcgKzc1LDEwIEBAIE1vY2tUcmFja0JveDo6TW9ja1RyYWNrQm94KEFycmF5QnVmZmVyKiBk
YXRhKQogICAgIFJlZlB0cjxJbnQ4QXJyYXk+IGFycmF5ID0gSlNDOjpJbnQ4QXJyYXk6OmNyZWF0
ZShkYXRhLCAxMiwgNCk7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyArK2kpCiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKGFycmF5LT5pdGVtKGkpKTsKLSAgICBtX2NvZGVjID0gYnVpbGRlci50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgbV9jb2RlYyA9ICpzdHJpbmc7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAg
ICAgbV9raW5kID0gc3RhdGljX2Nhc3Q8VHJhY2tLaW5kPih2aWV3LT5nZXQ8dWludDhfdD4oMTYs
IHRydWUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
SFRUUFBhcnNlcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFy
c2Vycy5jcHAKaW5kZXggYzhmNDVlNS4uOGQzMGQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAKQEAgLTMyOCw3ICszMjgsOSBAQCBTdHJp
bmcgZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSkK
IAogICAgIGlmIChtaW1lVHlwZS5sZW5ndGgoKSA9PSBsZW5ndGgpCiAgICAgICAgIHJldHVybiBt
ZWRpYVR5cGU7Ci0gICAgcmV0dXJuIG1pbWVUeXBlLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gbWltZVR5cGUudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIGV4dHJhY3RDaGFyc2V0RnJvbU1lZGlhVHlwZShjb25z
dCBTdHJpbmcmIG1lZGlhVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUHJveHlTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9Qcm94eVNlcnZlci5jcHAKaW5kZXggYzZkNjdjMi4uMGM2OWY0ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5jcHAKQEAgLTY4LDcgKzY4LDkg
QEAgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFZlY3RvcjxQcm94eVNlcnZlcj4mIHByb3h5U2VydmVy
cykKICAgICAgICAgYXBwZW5kUHJveHlTZXJ2ZXJTdHJpbmcoc3RyaW5nQnVpbGRlciwgcHJveHlT
ZXJ2ZXJzW2ldKTsKICAgICB9CiAKLSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVKYXJNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVKYXJNYWMubW0KaW5kZXggYzI2NDBi
ZC4uMDAwNWRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9t
YWMvQ29va2llSmFyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
bWFjL0Nvb2tpZUphck1hYy5tbQpAQCAtMjYxLDcgKzI2MSwxMCBAQCBzdGF0aWMgc3RkOjpwYWly
PFN0cmluZywgYm9vbD4gY29va2llc0ZvclNlc3Npb24oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uJiBzZQogICAgICAgICBjb29raWVzQnVpbGRlci5hcHBlbmQoJz0nKTsKICAgICAgICAgY29v
a2llc0J1aWxkZXIuYXBwZW5kKFtjb29raWUgdmFsdWVdKTsKICAgICB9Ci0gICAgcmV0dXJuIHsg
Y29va2llc0J1aWxkZXIudG9TdHJpbmcoKSwgZGlkQWNjZXNzU2VjdXJlQ29va2llcyB9OworCisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gY29va2llc0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuIHsgKnN0cmluZywgZGlkQWNjZXNzU2VjdXJlQ29va2llcyB9OworICAgIENSQVNIKCk7
CiAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAgIHJldHVybiB7IFN0cmluZygp
LCBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcG9zaXgvRmls
ZVN5c3RlbVBPU0lYLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0
ZW1QT1NJWC5jcHAKaW5kZXggNGRhN2NmNi4uMzg5ZDJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCkBAIC0zMTAsNyArMzEwLDkg
QEAgU3RyaW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudHMoU3RyaW5nVmlldyBwYXRoLCBjb25z
dCBWZWN0b3I8U3RyaW5nVmlldz4mIGNvbXAKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJy8nKTsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoY29tcG9uZW50KTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgbWFr
ZUFsbERpcmVjdG9yaWVzKGNvbnN0IFN0cmluZyYgcGF0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0RlY29kZUVzY2FwZVNlcXVlbmNlcy5oCmluZGV4IDE0Y2Y0MTUu
LjcyYTBhNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRGVjb2Rl
RXNjYXBlU2VxdWVuY2VzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EZWNv
ZGVFc2NhcGVTZXF1ZW5jZXMuaApAQCAtNjQsNyArNjQsOSBAQCBzdHJ1Y3QgVW5pY29kZTE2Qml0
RXNjYXBlU2VxdWVuY2UgewogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoY29kZVVuaXQpOwog
ICAgICAgICAgICAgcnVuID0gcnVuLnN1YnN0cmluZyhzZXF1ZW5jZVNpemUpOwogICAgICAgICB9
Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgICAgICBDUkFTSCgpOwogICAgIH0KIH07CiAKQEAgLTE1MSw3ICsxNTMsOSBAQCBTdHJpbmcg
ZGVjb2RlRXNjYXBlU2VxdWVuY2VzKFN0cmluZ1ZpZXcgc3RyaW5nLCBjb25zdCBUZXh0RW5jb2Rp
bmcmIGVuY29kaW5nKQogICAgICAgICBkZWNvZGVkUG9zaXRpb24gPSBlbmNvZGVkUnVuRW5kOwog
ICAgIH0KICAgICByZXN1bHQuYXBwZW5kKHN0cmluZy5zdWJzdHJpbmcoZGVjb2RlZFBvc2l0aW9u
LCBsZW5ndGggLSBkZWNvZGVkUG9zaXRpb24pKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGlubGluZSBWZWN0b3I8dWludDhfdD4g
ZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzQXNEYXRhKFN0cmluZ1ZpZXcgc3RyaW5nLCBjb25zdCBU
ZXh0RW5jb2RpbmcmIGVuY29kaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L1BsYXRmb3JtTG9jYWxlLmNwcAppbmRleCAwODc0MzI1Li5kYzA4MDhjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxlLmNwcApAQCAtMjM4LDcgKzIz
OCw5IEBAIFN0cmluZyBMb2NhbGU6OmNvbnZlcnRUb0xvY2FsaXplZE51bWJlcihjb25zdCBTdHJp
bmcmIGlucHV0KQogCiAgICAgYnVpbGRlci5hcHBlbmQoaXNOZWdhdGl2ZSA/IG1fbmVnYXRpdmVT
dWZmaXggOiBtX3Bvc2l0aXZlU3VmZml4KTsKIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgYm9vbCBtYXRjaGVzKGNv
bnN0IFN0cmluZyYgdGV4dCwgdW5zaWduZWQgcG9zaXRpb24sIGNvbnN0IFN0cmluZyYgcGFydCkK
QEAgLTMyMSw3ICszMjMsOSBAQCBTdHJpbmcgTG9jYWxlOjpjb252ZXJ0RnJvbUxvY2FsaXplZE51
bWJlcihjb25zdCBTdHJpbmcmIGxvY2FsaXplZCkKICAgICAgICAgZWxzZQogICAgICAgICAgICAg
YnVpbGRlci5hcHBlbmQoc3RhdGljX2Nhc3Q8VUNoYXI+KCcwJyArIHN5bWJvbEluZGV4KSk7CiAg
ICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiAjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCkBAIC0zNjAs
NyArMzY0LDkgQEAgU3RyaW5nIExvY2FsZTo6Zm9ybWF0RGF0ZVRpbWUoY29uc3QgRGF0ZUNvbXBv
bmVudHMmIGRhdGUsIEZvcm1hdFR5cGUgZm9ybWF0VHlwZSkKICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KICNlbmRpZiAvLyAhUExBVEZPUk0o
SU9TKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1NlZ21lbnRl
ZFN0cmluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmlu
Zy5jcHAKaW5kZXggZmYzMWIyYS4uNDhjYmEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNwcApAQCAtMTU5LDcgKzE1OSw5IEBAIFN0cmlu
ZyBTZWdtZW50ZWRTdHJpbmc6OnRvU3RyaW5nKCkgY29uc3QKICAgICBtX2N1cnJlbnRTdWJzdHJp
bmcuYXBwZW5kVG8ocmVzdWx0KTsKICAgICBmb3IgKGF1dG8mIHN1YnN0cmluZyA6IG1fb3RoZXJT
dWJzdHJpbmdzKQogICAgICAgICBzdWJzdHJpbmcuYXBwZW5kVG8ocmVzdWx0KTsKLSAgICByZXR1
cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQg
U2VnbWVudGVkU3RyaW5nOjphZHZhbmNlV2l0aG91dFVwZGF0aW5nTGluZU51bWJlcjE2KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcAppbmRleCBkMmUy
YWU3Li43NjIyY2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1Rl
eHRDb2RlY0lDVS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29k
ZWNJQ1UuY3BwCkBAIC0zMTgsMTMgKzMxOCwxNCBAQCBTdHJpbmcgVGV4dENvZGVjSUNVOjpkZWNv
ZGUoY29uc3QgY2hhciogYnl0ZXMsIHNpemVfdCBsZW5ndGgsIGJvb2wgZmx1c2gsIGJvb2wgcwog
ICAgICAgICBzYXdFcnJvciA9IHRydWU7CiAgICAgfQogCi0gICAgU3RyaW5nIHJlc3VsdFN0cmlu
ZyA9IHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHJlc3VsdFN0cmluZyA9IHJlc3Vs
dC50b1N0cmluZygpKSB7CisgICAgICAgIC8vIFNpbXBsaWZpZWQgQ2hpbmVzZSBwYWdlcyB1c2Ug
dGhlIGNvZGUgQTNBMCB0byBtZWFuICJmdWxsLXdpZHRoIHNwYWNlIiwgYnV0IElDVSBkZWNvZGVz
IGl0IGFzIFUrRTVFNS4KKyAgICAgICAgaWYgKCFzdHJjbXAobV9lbmNvZGluZ05hbWUsICJHQksi
KSB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShtX2VuY29kaW5nTmFtZSwgImdiMTgw
MzAiKSkKKyAgICAgICAgICAgIHJlc3VsdFN0cmluZy0+cmVwbGFjZSgweEU1RTUsIGlkZW9ncmFw
aGljU3BhY2UpOwogCi0gICAgLy8gU2ltcGxpZmllZCBDaGluZXNlIHBhZ2VzIHVzZSB0aGUgY29k
ZSBBM0EwIHRvIG1lYW4gImZ1bGwtd2lkdGggc3BhY2UiLCBidXQgSUNVIGRlY29kZXMgaXQgYXMg
VStFNUU1LgotICAgIGlmICghc3RyY21wKG1fZW5jb2RpbmdOYW1lLCAiR0JLIikgfHwgZXF1YWxM
ZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobV9lbmNvZGluZ05hbWUsICJnYjE4MDMwIikpCi0gICAg
ICAgIHJlc3VsdFN0cmluZy5yZXBsYWNlKDB4RTVFNSwgaWRlb2dyYXBoaWNTcGFjZSk7Ci0KLSAg
ICByZXR1cm4gcmVzdWx0U3RyaW5nOworICAgICAgICByZXR1cm4gKnJlc3VsdFN0cmluZzsKKyAg
ICB9CisgICAgQ1JBU0goKTsKIH0KIAogLy8gV2UgbmVlZCB0byBhcHBseSB0aGVzZSBmYWxsYmFj
a3Mgb3Vyc2VsdmVzIGFzIHRoZXkgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIGJ5IElDVSBh
bmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjVXNl
ckRlZmluZWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVc2Vy
RGVmaW5lZC5jcHAKaW5kZXggMjk2YzQ2OS4uY2I3MGU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVc2VyRGVmaW5lZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVc2VyRGVmaW5lZC5jcHAKQEAgLTUzLDcg
KzUzLDkgQEAgU3RyaW5nIFRleHRDb2RlY1VzZXJEZWZpbmVkOjpkZWNvZGUoY29uc3QgY2hhciog
Ynl0ZXMsIHNpemVfdCBsZW5ndGgsIGJvb2wsIGJvb2wKICAgICAgICAgc2lnbmVkIGNoYXIgYyA9
IGJ5dGVzW2ldOwogICAgICAgICByZXN1bHQuYXBwZW5kKHN0YXRpY19jYXN0PFVDaGFyPihjICYg
MHhGN0ZGKSk7CiAgICAgfQotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFZlY3Rvcjx1aW50OF90PiBlbmNvZGVDb21wbGV4
VXNlckRlZmluZWQoU3RyaW5nVmlldyBzdHJpbmcsIFVuZW5jb2RhYmxlSGFuZGxpbmcgaGFuZGxp
bmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRp
bGl0aWVzV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGls
aXRpZXNXaW4uY3BwCmluZGV4IDZmZjg5ZWMuLjJiYzZkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCkBAIC0zMTQs
NyArMzE0LDEwIEBAIHZvaWQgcmVwbGFjZU5ld2xpbmVzV2l0aFdpbmRvd3NTdHlsZU5ld2xpbmVz
KFN0cmluZyYgc3RyKQogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kTGl0
ZXJhbCgiXHJcbiIpOwogICAgIH0KLSAgICBzdHIgPSByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgc3RyID0gKnN0cmlu
ZzsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgcmVwbGFjZU5CU1BXaXRo
U3BhY2UoU3RyaW5nJiBzdHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vVXNlckFnZW50V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Vc2VyQWdl
bnRXaW4uY3BwCmluZGV4IDgyMDFmNGUuLmQzZDY5NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9Vc2VyQWdlbnRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9Vc2VyQWdlbnRXaW4uY3BwCkBAIC00Niw3ICs0Niw5IEBAIFN0cmluZyBzdGFu
ZGFyZFVzZXJBZ2VudChjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uTmFtZSwgY29uc3QgU3RyaW5n
JiBhcHBsaWNhdGlvCiAgICAgICAgICAgICB1YVN0cmluZy5hcHBlbmQoYXBwbGljYXRpb25WZXJz
aW9uKTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gdWFTdHJpbmcudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSB1YVN0cmluZy50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgc3RhbmRhcmRVc2VyQWdlbnRG
b3JVUkwoY29uc3QgVVJMJiB1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5z
L0RPTU1pbWVUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5cGUuY3Bw
CmluZGV4IDFiMmQ3NTIuLjJmZTU4NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdp
bnMvRE9NTWltZVR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5
cGUuY3BwCkBAIC01Nyw3ICs1Nyw5IEBAIFN0cmluZyBET01NaW1lVHlwZTo6c3VmZml4ZXMoKSBj
b25zdAogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJywnKTsKICAgICAgICAgYnVpbGRlci5h
cHBlbmQoZXh0ZW5zaW9uc1tpXSk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgRE9NTWltZVR5cGU6OmRl
c2NyaXB0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CmluZGV4IGZhMGU1N2EuLmJhOWNkNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcApAQCAtNDI4LDcgKzQyOCw5IEBAIFN0cmluZyBSZW5kZXJMYXllcjo6bmFtZSgp
IGNvbnN0CiAgICAgaWYgKGlzUmVmbGVjdGlvbigpKQogICAgICAgICBuYW1lLmFwcGVuZExpdGVy
YWwoIiAocmVmbGVjdGlvbikiKTsKIAotICAgIHJldHVybiBuYW1lLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gbmFtZS50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBSZW5kZXJMYXllckNvbXBvc2l0b3ImIFJlbmRlckxheWVy
Ojpjb21wb3NpdG9yKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggMWM0MDQ3ZC4uNTczMzBlOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAg
LTg2Myw3ICs4NjMsMTAgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmxvZ0xheWVySW5m
byhjb25zdCBSZW5kZXJMYXllciYgbGF5ZXIsIGludCBkZXB0aCkKIAogICAgIGxvZ1N0cmluZy5h
cHBlbmQobGF5ZXIubmFtZSgpKTsKIAotICAgIExPRyhDb21wb3NpdGluZywgIiVzIiwgbG9nU3Ry
aW5nLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbG9n
U3RyaW5nLnRvU3RyaW5nKCkpCisgICAgICAgIExPRyhDb21wb3NpdGluZywgIiVzIiwgc3RyaW5n
LT51dGY4KCkuZGF0YSgpKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCmluZGV4
IDkwNGY5OTQuLjU3YjAwMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0TWFya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGlzdE1hcmtlci5jcHAKQEAgLTExMTcsNyArMTExNyw5IEBAIFN0cmluZyBsaXN0TWFya2VyVGV4
dChFTGlzdFN0eWxlVHlwZSB0eXBlLCBpbnQgdmFsdWUpCiAgICAgICAgICAgICBicmVhazsKICAg
ICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogUmVuZGVyTGlzdE1hcmtlcjo6UmVuZGVyTGlzdE1hcmtlcihSZW5kZXJMaXN0
SXRlbSYgbGlzdEl0ZW0sIFJlbmRlclN0eWxlJiYgc3R5bGUpCkBAIC0xMzYzLDcgKzEzNjUsMTAg
QEAgdm9pZCBSZW5kZXJMaXN0TWFya2VyOjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29u
c3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2UKICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5k
KHN1ZmZpeCk7CiAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChzcGFjZSk7CiAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICB0b0RyYXcgPSBidWZmZXIudG9TdHJpbmcoKTsKKyAgICAgICAg
ICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1ZmZlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAg
IHRvRHJhdyA9ICpzdHJpbmc7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JB
U0goKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmIChzdHlsZSgpLmlzTGVmdFRv
UmlnaHREaXJlY3Rpb24oKSkKICAgICAgICAgICAgICAgICB0b0RyYXcgPSBtX3RleHQgKyBTdHJp
bmcoJnN1ZmZpeCwgMSkgKyBTdHJpbmcoJnNwYWNlLCAxKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0LmNwcAppbmRleCA4ZmE1MWUyLi4xMDUyMGZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCkBAIC0xODEsNyArMTgxLDkgQEAgU3RyaW5nIGNhcGl0
YWxpemUoY29uc3QgU3RyaW5nJiBzdHJpbmcsIFVDaGFyIHByZXZpb3VzQ2hhcmFjdGVyKQogICAg
ICAgICAgICAgcmVzdWx0LmFwcGVuZChzdHJpbmdJbXBsW2kgLSAxXSk7CiAgICAgfQogCi0gICAg
cmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBp
bmxpbmUgUmVuZGVyVGV4dDo6UmVuZGVyVGV4dChOb2RlJiBub2RlLCBjb25zdCBTdHJpbmcmIHRl
eHQpCkBAIC03NTYsMTYgKzc1OCwxOSBAQCBzdGF0aWMgZmxvYXQgbWF4V29yZEZyYWdtZW50V2lk
dGgoUmVuZGVyVGV4dCYgcmVuZGVyZXIsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZQogICAgICAg
ICBmcmFnbWVudFdpdGhIeXBoZW4uYXBwZW5kKHdvcmQuc3Vic3RyaW5nKHN1ZmZpeFN0YXJ0LCBm
cmFnbWVudExlbmd0aCkpOwogICAgICAgICBmcmFnbWVudFdpdGhIeXBoZW4uYXBwZW5kKHN0eWxl
Lmh5cGhlblN0cmluZygpKTsKIAotICAgICAgICBUZXh0UnVuIHJ1biA9IFJlbmRlckJsb2NrOjpj
b25zdHJ1Y3RUZXh0UnVuKGZyYWdtZW50V2l0aEh5cGhlbi50b1N0cmluZygpLCBzdHlsZSk7Ci0g
ICAgICAgIHJ1bi5zZXRDaGFyYWN0ZXJTY2FuRm9yQ29kZVBhdGgoIXJlbmRlcmVyLmNhblVzZVNp
bXBsZUZvbnRDb2RlUGF0aCgpKTsKLSAgICAgICAgZmxvYXQgZnJhZ21lbnRXaWR0aCA9IGZvbnQu
d2lkdGgocnVuLCAmZmFsbGJhY2tGb250cywgJmdseXBoT3ZlcmZsb3cpOworICAgICAgICBpZiAo
YXV0byBzdHJpbmcgPSBmcmFnbWVudFdpdGhIeXBoZW4udG9TdHJpbmcoKSkgeworICAgICAgICAg
ICAgVGV4dFJ1biBydW4gPSBSZW5kZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1bigqc3RyaW5nLCBz
dHlsZSk7CisgICAgICAgICAgICBydW4uc2V0Q2hhcmFjdGVyU2NhbkZvckNvZGVQYXRoKCFyZW5k
ZXJlci5jYW5Vc2VTaW1wbGVGb250Q29kZVBhdGgoKSk7CisgICAgICAgICAgICBmbG9hdCBmcmFn
bWVudFdpZHRoID0gZm9udC53aWR0aChydW4sICZmYWxsYmFja0ZvbnRzLCAmZ2x5cGhPdmVyZmxv
dyk7CiAKLSAgICAgICAgLy8gTmFycm93IHByZWZpeGVzIGFyZSBpZ25vcmVkLiBTZWUgdHJ5SHlw
aGVuYXRpbmcgaW4gUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcC4KLSAgICAgICAgaWYgKGZyYWdt
ZW50V2lkdGggPD0gbWluaW11bUZyYWdtZW50V2lkdGhUb0NvbnNpZGVyKQotICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgICAgICAvLyBOYXJyb3cgcHJlZml4ZXMgYXJlIGlnbm9yZWQuIFNl
ZSB0cnlIeXBoZW5hdGluZyBpbiBSZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwLgorICAgICAgICAg
ICAgaWYgKGZyYWdtZW50V2lkdGggPD0gbWluaW11bUZyYWdtZW50V2lkdGhUb0NvbnNpZGVyKQor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIHN1ZmZpeFN0YXJ0ICs9IGZyYWdt
ZW50TGVuZ3RoOwotICAgICAgICBtYXhGcmFnbWVudFdpZHRoID0gc3RkOjptYXgobWF4RnJhZ21l
bnRXaWR0aCwgZnJhZ21lbnRXaWR0aCk7CisgICAgICAgICAgICBzdWZmaXhTdGFydCArPSBmcmFn
bWVudExlbmd0aDsKKyAgICAgICAgICAgIG1heEZyYWdtZW50V2lkdGggPSBzdGQ6Om1heChtYXhG
cmFnbWVudFdpZHRoLCBmcmFnbWVudFdpZHRoKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICBDUkFTSCgpOwogICAgIH0KIAogICAgIHJldHVybiBtYXhGcmFnbWVudFdpZHRoOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCmluZGV4IDRmZTgzZTAuLjI1Nzhm
NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KQEAgLTEz
NjAsNyArMTM2MCwxMCBAQCBTdHJpbmcgUmVuZGVyVGhlbWVJT1M6Om1lZGlhQ29udHJvbHNTY3Jp
cHQoKQogICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBzY3JpcHRCdWlsZGVyOwogICAgICAgICAg
ICAgc2NyaXB0QnVpbGRlci5hcHBlbmQoW05TU3RyaW5nIHN0cmluZ1dpdGhDb250ZW50c09mRmls
ZTpbYnVuZGxlIHBhdGhGb3JSZXNvdXJjZTpAIm1vZGVybi1tZWRpYS1jb250cm9scy1sb2NhbGl6
ZWQtc3RyaW5ncyIgb2ZUeXBlOkAianMiXSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZyBl
cnJvcjpuaWxdKTsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kKFtOU1N0cmluZyBz
dHJpbmdXaXRoQ29udGVudHNPZkZpbGU6W2J1bmRsZSBwYXRoRm9yUmVzb3VyY2U6QCJtb2Rlcm4t
bWVkaWEtY29udHJvbHMiIG9mVHlwZTpAImpzIiBpbkRpcmVjdG9yeTpAIm1vZGVybi1tZWRpYS1j
b250cm9scyJdIGVuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nIGVycm9yOm5pbF0pOwotICAg
ICAgICAgICAgbV9tZWRpYUNvbnRyb2xzU2NyaXB0ID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygp
OworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICAgICAgICAgIG1fbWVkaWFDb250cm9sc1NjcmlwdCA9ICpzdHJpbmc7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgICAg
ICByZXR1cm4gbV9tZWRpYUNvbnRyb2xzU2NyaXB0OwogICAgIH0KQEAgLTEzNzMsNyArMTM3Niwx
MCBAQCBTdHJpbmcgUmVuZGVyVGhlbWVJT1M6Om1lZGlhQ29udHJvbHNTY3JpcHQoKQogICAgICAg
ICBzY3JpcHRCdWlsZGVyLmFwcGVuZChbTlNTdHJpbmcgc3RyaW5nV2l0aENvbnRlbnRzT2ZGaWxl
OltidW5kbGUgcGF0aEZvclJlc291cmNlOkAibWVkaWFDb250cm9sc0FwcGxlIiBvZlR5cGU6QCJq
cyJdIGVuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nIGVycm9yOm5pbF0pOwogICAgICAgICBz
Y3JpcHRCdWlsZGVyLmFwcGVuZChbTlNTdHJpbmcgc3RyaW5nV2l0aENvbnRlbnRzT2ZGaWxlOlti
dW5kbGUgcGF0aEZvclJlc291cmNlOkAibWVkaWFDb250cm9sc2lPUyIgb2ZUeXBlOkAianMiXSBl
bmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZyBlcnJvcjpuaWxdKTsKIAotICAgICAgICBtX2xl
Z2FjeU1lZGlhQ29udHJvbHNTY3JpcHQgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
ICAgIGlmIChhdXRvIHN0cmluZyA9IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
ICAgIG1fbGVnYWN5TWVkaWFDb250cm9sc1NjcmlwdCA9ICpzdHJpbmc7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIHJldHVybiBtX2xlZ2FjeU1lZGlhQ29u
dHJvbHNTY3JpcHQ7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZVdpbi5jcHAKaW5kZXggZGVlYTFhOS4uODM2ZDAxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwCkBAIC0xMDk0LDcgKzEwOTQsMTAgQEAgU3RyaW5nIFJl
bmRlclRoZW1lV2luOjptZWRpYUNvbnRyb2xzU2NyaXB0KCkKICAgICAgICAgU3RyaW5nQnVpbGRl
ciBzY3JpcHRCdWlsZGVyOwogICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZChzdHJpbmdXaXRo
Q29udGVudHNPZkZpbGUoQ0ZTVFIoIm1lZGlhQ29udHJvbHNMb2NhbGl6ZWRTdHJpbmdzIiksIENG
U1RSKCJqcyIpKSk7CiAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kKHN0cmluZ1dpdGhDb250
ZW50c09mRmlsZShDRlNUUigibWVkaWFDb250cm9sc0FwcGxlIiksIENGU1RSKCJqcyIpKSk7Ci0g
ICAgICAgIG1fbWVkaWFDb250cm9sc1NjcmlwdCA9IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKTsK
KyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICAgICAgbV9tZWRpYUNvbnRyb2xzU2NyaXB0ID0gKnN0cmluZzsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgcmV0dXJuIG1fbWVkaWFDb250cm9sc1Nj
cmlwdDsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VHJlZUFzVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4
dC5jcHAKaW5kZXggNTVjZGI0Yi4uODVjNzhlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcApAQCAtMTcwLDcgKzE3MCw5IEBAIFN0cmluZyBxdW90
ZUFuZEVzY2FwZU5vblByaW50YWJsZXMoU3RyaW5nVmlldyBzKQogICAgICAgICB9CiAgICAgfQog
ICAgIHJlc3VsdC5hcHBlbmQoJyInKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgUmVuZGVyVHJlZUFzVGV4dDo6d3JpdGVS
ZW5kZXJPYmplY3QoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFJlbmRlck9iamVjdCYgbywgUmVuZGVy
QXNUZXh0QmVoYXZpb3IgYmVoYXZpb3IpCkBAIC04MDcsNyArODA5LDkgQEAgc3RhdGljIFN0cmlu
ZyBub2RlUG9zaXRpb24oTm9kZSogbm9kZSkKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRl
cmFsKCJkb2N1bWVudCIpOwogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIHZvaWQgd3JpdGVTZWxlY3Rpb24o
VGV4dFN0cmVhbSYgdHMsIGNvbnN0IFJlbmRlckJveCYgcmVuZGVyZXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5jcHAKaW5k
ZXggODliYjA0MC4uOGM3ODRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmNwcApAQCAtNzEsNyArNzEsMTAgQEAgdm9p
ZCBSZW5kZXJNYXRoTUxGZW5jZWQ6OnVwZGF0ZUZyb21FbGVtZW50KCkKICAgICAgICAgICAgIGlm
ICghaXNTcGFjZU9yTmV3bGluZShzZXBhcmF0b3JzW2ldKSkKICAgICAgICAgICAgICAgICBjaGFy
YWN0ZXJzLmFwcGVuZChzZXBhcmF0b3JzW2ldKTsKICAgICAgICAgfQotICAgICAgICBtX3NlcGFy
YXRvcnMgPSAhY2hhcmFjdGVycy5sZW5ndGgoKSA/IDAgOiBjaGFyYWN0ZXJzLnRvU3RyaW5nKCku
aW1wbCgpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBjaGFyYWN0ZXJzLnRvU3RyaW5nKCkp
CisgICAgICAgICAgICBtX3NlcGFyYXRvcnMgPSAhY2hhcmFjdGVycy5sZW5ndGgoKSA/IDAgOiBz
dHJpbmctPmltcGwoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9
IGVsc2UgewogICAgICAgICAvLyBUaGUgc2VwYXJhdG9yIGRlZmF1bHRzIHRvIGEgc2luZ2xlIGNv
bW1hLgogICAgICAgICBtX3NlcGFyYXRvcnMgPSBTdHJpbmdJbXBsOjpjcmVhdGUoIiwiKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVp
bGRlck1hdGhNTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVy
VHJlZUJ1aWxkZXJNYXRoTUwuY3BwCmluZGV4IDVjYjQ3OGIuLjIwZDI1MTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlck1hdGhN
TC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVC
dWlsZGVyTWF0aE1MLmNwcApAQCAtOTAsNyArOTAsMTAgQEAgdm9pZCBSZW5kZXJUcmVlQnVpbGRl
cjo6TWF0aE1MOjphdHRhY2goUmVuZGVyTWF0aE1MRmVuY2VkJiBwYXJlbnQsIFJlbmRlclB0cjxS
ZW4KIAogICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBzdHJpbmdCdWlsZGVyOwogICAgICAgICAg
ICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoc2VwYXJhdG9yKTsKLSAgICAgICAgICAgIHNlcGFyYXRv
clJlbmRlcmVyID0gY3JlYXRlTWF0aE1MT3BlcmF0b3IocGFyZW50LCBzdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCksIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6SW5maXgsIE1hdGhNTE9wZXJhdG9y
RGljdGlvbmFyeTo6U2VwYXJhdG9yKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICBzZXBhcmF0b3JSZW5kZXJl
ciA9IGNyZWF0ZU1hdGhNTE9wZXJhdG9yKHBhcmVudCwgKnN0cmluZywgTWF0aE1MT3BlcmF0b3JE
aWN0aW9uYXJ5OjpJbmZpeCwgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpTZXBhcmF0b3IpOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmNwcAppbmRleCBi
YTIwNjQ4Li4yMGVhM2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3Ro
TGlzdFZhbHVlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1
ZXMuY3BwCkBAIC02Myw3ICs2Myw5IEBAIFN0cmluZyBTVkdMZW5ndGhMaXN0VmFsdWVzOjp2YWx1
ZUFzU3RyaW5nKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoYXQoaSkudmFsdWVBc1N0
cmluZygpKTsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR051bWJlckxpc3RWYWx1ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxp
c3RWYWx1ZXMuY3BwCmluZGV4IDZkZmQ5OTMuLjg3NWJlNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5jcHAKQEAgLTU1LDcgKzU1LDkgQEAgU3RyaW5nIFNWR051
bWJlckxpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFw
cGVuZE51bWJlcihhdChpKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQYXRoU3RyaW5nQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0aFN0cmluZ0J1aWxkZXIuY3BwCmluZGV4IDEwNTM5MWMuLjljNTc3ZWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU3RyaW5nQnVpbGRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTdHJpbmdCdWlsZGVyLmNwcApAQCAtMzcsNyArMzcsOSBA
QCBTdHJpbmcgU1ZHUGF0aFN0cmluZ0J1aWxkZXI6OnJlc3VsdCgpCiAKICAgICAvLyBSZW1vdmUg
dHJhaWxpbmcgc3BhY2UuCiAgICAgbV9zdHJpbmdCdWlsZGVyLnJlc2l6ZShzaXplIC0gMSk7Ci0g
ICAgcmV0dXJuIG1fc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IG1fc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiB2b2lkIFNWR1BhdGhTdHJpbmdCdWlsZGVyOjppbmNyZW1lbnRQ
YXRoU2VnbWVudENvdW50KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRo
VXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcApp
bmRleCBjZjlmMDE0Li5jYzU0MzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UGF0aFV0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRp
ZXMuY3BwCkBAIC0xMDEsNyArMTAxLDkgQEAgU3RyaW5nIGJ1aWxkU3RyaW5nRnJvbVBhdGgoY29u
c3QgUGF0aCYgcGF0aCkKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgYnVpbGRTVkdQ
YXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRoU2VnTGlzdFZhbHVlcyhjb25zdCBTVkdQYXRoU2VnTGlz
dFZhbHVlcyYgbGlzdCwgU1ZHUGF0aEJ5dGVTdHJlYW0mIHJlc3VsdCwgUGF0aFBhcnNpbmdNb2Rl
IHBhcnNpbmdNb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlz
dFZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmNwcApp
bmRleCBkODFlNmEyLi5kOGJkZWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UG9pbnRMaXN0VmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0
VmFsdWVzLmNwcApAQCAtNDEsNyArNDEsOSBAQCBTdHJpbmcgU1ZHUG9pbnRMaXN0VmFsdWVzOjp2
YWx1ZUFzU3RyaW5nKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIocG9pbnQu
eSgpKTsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1N0cmluZ0xpc3RWYWx1ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3RW
YWx1ZXMuY3BwCmluZGV4IDNmZjg5OGEuLjhjNjFmMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU3RyaW5nTGlzdFZhbHVlcy5jcHAKQEAgLTczLDcgKzczLDkgQEAgU3RyaW5nIFNWR1N0cmlu
Z0xpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVu
ZChhdChpKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFu
c2Zvcm1MaXN0VmFsdWVzLmNwcAppbmRleCAyNWIzYzMxLi42YjQyZDNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuY3BwCkBAIC02OCw3ICs2OCw5IEBA
IFN0cmluZyBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nKCkgY29uc3QKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoYXQoaSkudmFsdWVBc1N0cmluZygpKTsKICAgICB9CiAKLSAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogdm9pZCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjpwYXJzZShjb25zdCBTdHJpbmcmIHRyYW5z
Zm9ybSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtVmFsdWUuY3BwCmluZGV4IDYzZDQ1
YTUuLmVhMTQ2M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1W
YWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmNwcApA
QCAtMTc5LDcgKzE3OSw5IEBAIFN0cmluZyBTVkdUcmFuc2Zvcm1WYWx1ZTo6dmFsdWVBc1N0cmlu
ZygpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kTnVtYmVyKG1fbWF0cml4LmYoKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7
Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICBjYXNlIFNWR19UUkFOU0ZPUk1fVFJBTlNMQVRF
OiB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKQEAgLTE4OCw3ICsxOTAsOSBAQCBT
dHJpbmcgU1ZHVHJhbnNmb3JtVmFsdWU6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogICAgICAgICBi
dWlsZGVyLmFwcGVuZCgnICcpOwogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX21hdHJp
eC5mKCkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnKScpOwotICAgICAgICByZXR1cm4gYnVp
bGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAg
ICB9CiAgICAgY2FzZSBTVkdfVFJBTlNGT1JNX1NDQUxFOiB7CiAgICAgICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKQEAgLTE5Nyw3ICsyMDEsOSBAQCBTdHJpbmcgU1ZHVHJhbnNmb3JtVmFsdWU6
OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX21hdHJpeC55U2NhbGUoKSk7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCcpJyk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICBjYXNlIFNWR19U
UkFOU0ZPUk1fUk9UQVRFOiB7CiAgICAgICAgIGRvdWJsZSBhbmdsZUluUmFkID0gZGVnMnJhZCht
X2FuZ2xlKTsKQEAgLTIxNSw3ICsyMjEsOSBAQCBTdHJpbmcgU1ZHVHJhbnNmb3JtVmFsdWU6OnZh
bHVlQXNTdHJpbmcoKSBjb25zdAogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoY3kp
OwogICAgICAgICB9CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Ci0gICAgICAgIHJldHVy
biBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgp
OwogICAgIH0KICAgICBjYXNlIFNWR19UUkFOU0ZPUk1fU0tFV1g6CiAgICAgY2FzZSBTVkdfVFJB
TlNGT1JNX1NLRVdZOiB7CkBAIC0yMjMsNyArMjMxLDkgQEAgU3RyaW5nIFNWR1RyYW5zZm9ybVZh
bHVlOjp2YWx1ZUFzU3RyaW5nKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQocHJlZml4
KTsKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV9hbmdsZSk7CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCcpJyk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
ICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCmluZGV4IGEy
MzI3ZTYuLjgwMGFiZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR1Byb3BlcnR5VHJhaXRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHUHJvcGVydHlUcmFpdHMuaApAQCAtMTQzLDcgKzE0Myw5IEBAIHN0cnVjdCBTVkdQcm9wZXJ0
eVRyYWl0czxGbG9hdFBvaW50PiB7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUu
eCgpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICAgICAgYnVpbGRlci5hcHBl
bmROdW1iZXIodHlwZS55KCkpOwotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwor
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9OwogCkBAIC0xNzQs
NyArMTc2LDkgQEAgc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD4gewogICAgICAg
ICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLndpZHRoKCkpOwogICAgICAgICBidWlsZGVyLmFw
cGVuZCgnICcpOwogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLmhlaWdodCgpKTsK
LSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgICAgIENSQVNIKCk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCmluZGV4IDgxYTQwMDkuLjBjMjQwNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKQEAgLTE1NDAsNyArMTU0MCw5IEBAIEV4Y2VwdGlvbk9yPFN0cmluZz4gSW50ZXJuYWxz
OjpkdW1wTWFya2VyUmVjdHMoY29uc3QgU3RyaW5nJiBtYXJrZXJUeXBlU3RyaW5nKQogICAgICAg
ICByZWN0U3RyaW5nLmFwcGVuZE51bWJlcihyZWN0LmhlaWdodCgpKTsKICAgICAgICAgcmVjdFN0
cmluZy5hcHBlbmRMaXRlcmFsKCIpICIpOwogICAgIH0KLSAgICByZXR1cm4gcmVjdFN0cmluZy50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlY3RTdHJpbmcudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuIFdURk1vdmUoKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogdm9p
ZCBJbnRlcm5hbHM6OmFkZFRleHRNYXRjaE1hcmtlcihjb25zdCBSYW5nZSYgcmFuZ2UsIGJvb2wg
aXNBY3RpdmUpCkBAIC0yMDc5LDcgKzIwODEsOSBAQCBTdHJpbmcgSW50ZXJuYWxzOjpwYXJzZXJN
ZXRhRGF0YShKU0M6OkpTVmFsdWUgY29kZSkKICAgICByZXN1bHQuYXBwZW5kTnVtYmVyKGVuZENv
bHVtbik7CiAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIiB9Iik7CiAKLSAgICByZXR1cm4gcmVz
dWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW50ZXJu
YWxzOjp1cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCkKQEAgLTMwNzEsNyArMzA3NSw5IEBA
IEV4Y2VwdGlvbk9yPFN0cmluZz4gSW50ZXJuYWxzOjpnZXRDdXJyZW50Q3Vyc29ySW5mbygpCiAg
ICAgICAgIHJlc3VsdC5hcHBlbmQobnVtYmVyVG9GaXhlZFByZWNpc2lvblN0cmluZyhjdXJzb3Iu
aW1hZ2VTY2FsZUZhY3RvcigpLCA4LCBidWZmZXIsIHRydWUpKTsKICAgICB9CiAjZW5kaWYKLSAg
ICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBXVEZNb3ZlKCpzdHJpbmcpOworICAgIENSQVNI
KCk7CiAjZWxzZQogICAgIHJldHVybiBTdHJpbmcgeyAiRkFJTDogQ3Vyc29yIGRldGFpbHMgbm90
IGF2YWlsYWJsZSBvbiB0aGlzIHBsYXRmb3JtLiIgfTsKICNlbmRpZgpAQCAtMzUxNCw3ICszNTIw
LDkgQEAgRXhjZXB0aW9uT3I8U3RyaW5nPiBJbnRlcm5hbHM6Om1lZGlhU2Vzc2lvblJlc3RyaWN0
aW9ucyhjb25zdCBTdHJpbmcmIG1lZGlhVHlwZVMKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCcsJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJpbnRlcnJ1cHRlZHBsYXliYWNrbm90cGVy
bWl0dGVkIik7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gV1RGTW92
ZSgqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIEludGVybmFsczo6c2V0TWVkaWFF
bGVtZW50UmVzdHJpY3Rpb25zKEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQsIFN0cmluZ1ZpZXcg
cmVzdHJpY3Rpb25zU3RyaW5nKQpAQCAtMzc1NSw0OCArMzc2Myw1MCBAQCBTdHJpbmcgSW50ZXJu
YWxzOjpwYWdlTWVkaWFTdGF0ZSgpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogCiAg
ICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlID0gZG9jdW1l
bnQtPnBhZ2UoKS0+bWVkaWFTdGF0ZSgpOwotICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nOworICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpJ
c1BsYXlpbmdBdWRpbykKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNQbGF5aW5nQXVkaW8sIik7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJJc1BsYXlpbmdBdWRpbywiKTsKICAgICBpZiAoc3Rh
dGUgJiBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdWaWRlbykKLSAgICAgICAgc3RyaW5nLmFwcGVu
ZCgiSXNQbGF5aW5nVmlkZW8sIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJJc1BsYXlpbmdW
aWRlbywiKTsKICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdUb0V4dGVy
bmFsRGV2aWNlKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdUb0V4dGVybmFsRGV2
aWNlLCIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiSXNQbGF5aW5nVG9FeHRlcm5hbERldmlj
ZSwiKTsKICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpSZXF1aXJlc1BsYXliYWNrVGFy
Z2V0TW9uaXRvcmluZykKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiUmVxdWlyZXNQbGF5YmFja1Rh
cmdldE1vbml0b3JpbmcsIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJSZXF1aXJlc1BsYXli
YWNrVGFyZ2V0TW9uaXRvcmluZywiKTsKICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpF
eHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJF
eHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlLCIpOworICAgICAgICBidWlsZGVyLmFwcGVu
ZCgiRXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSwiKTsKICAgICBpZiAoc3RhdGUgJiBN
ZWRpYVByb2R1Y2VyOjpEaWRQbGF5VG9FbmQpCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIkRpZFBs
YXlUb0VuZCwiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIkRpZFBsYXlUb0VuZCwiKTsKICAg
ICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpJc1NvdXJjZUVsZW1lbnRQbGF5aW5nKQotICAg
ICAgICBzdHJpbmcuYXBwZW5kKCJJc1NvdXJjZUVsZW1lbnRQbGF5aW5nLCIpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZCgiSXNTb3VyY2VFbGVtZW50UGxheWluZywiKTsKIAogICAgIGlmIChzdGF0
ZSAmIE1lZGlhUHJvZHVjZXI6OklzTmV4dFRyYWNrQ29udHJvbEVuYWJsZWQpCi0gICAgICAgIHN0
cmluZy5hcHBlbmQoIklzTmV4dFRyYWNrQ29udHJvbEVuYWJsZWQsIik7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCJJc05leHRUcmFja0NvbnRyb2xFbmFibGVkLCIpOwogICAgIGlmIChzdGF0ZSAm
IE1lZGlhUHJvZHVjZXI6OklzUHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVkKQotICAgICAgICBz
dHJpbmcuYXBwZW5kKCJJc1ByZXZpb3VzVHJhY2tDb250cm9sRW5hYmxlZCwiKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQoIklzUHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVkLCIpOwogCiAgICAg
aWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlM
aXN0ZW5lcikKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzUGxheWJhY2tUYXJnZXRBdmFpbGFi
aWxpdHlMaXN0ZW5lciwiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIkhhc1BsYXliYWNrVGFy
Z2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIsIik7CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNl
cjo6SGFzQXVkaW9PclZpZGVvKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNBdWRpb09yVmlk
ZW8sIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJIYXNBdWRpb09yVmlkZW8sIik7CiAgICAg
aWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKQot
ICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UsIik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UsIik7CiAg
ICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNl
KQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UsIik7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UsIik7
CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZp
Y2UpCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlLCIp
OworICAgICAgICBidWlsZGVyLmFwcGVuZCgiSGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UsIik7
CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZp
Y2UpCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlLCIp
OworICAgICAgICBidWlsZGVyLmFwcGVuZCgiSGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UsIik7
CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SGFzVXNlckludGVyYWN0ZWRXaXRoTWVk
aWFFbGVtZW50KQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNVc2VySW50ZXJhY3RlZFdpdGhN
ZWRpYUVsZW1lbnQsIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJIYXNVc2VySW50ZXJhY3Rl
ZFdpdGhNZWRpYUVsZW1lbnQsIik7CiAKLSAgICBpZiAoc3RyaW5nLmlzRW1wdHkoKSkKLSAgICAg
ICAgc3RyaW5nLmFwcGVuZCgiSXNOb3RQbGF5aW5nIik7CisgICAgaWYgKGJ1aWxkZXIuaXNFbXB0
eSgpKQorICAgICAgICBidWlsZGVyLmFwcGVuZCgiSXNOb3RQbGF5aW5nIik7CiAgICAgZWxzZQot
ICAgICAgICBzdHJpbmcucmVzaXplKHN0cmluZy5sZW5ndGgoKSAtIDEpOworICAgICAgICBidWls
ZGVyLnJlc2l6ZShidWlsZGVyLmxlbmd0aCgpIC0gMSk7CiAKLSAgICByZXR1cm4gc3RyaW5nLnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIEludGVybmFsczo6
c2V0UGFnZURlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnNMb2FkaW5nKQpAQCAtMzkxOCw3ICszOTI4
LDkgQEAgRXhjZXB0aW9uT3I8U3RyaW5nPiBJbnRlcm5hbHM6OnNjcm9sbFNuYXBPZmZzZXRzKEVs
ZW1lbnQmIGVsZW1lbnQpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiBXVEZNb3ZlKCpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwCmlu
ZGV4IGU1YTZjZmUuLmY0YTNjZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
TW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01v
Y2tQYWdlT3ZlcmxheUNsaWVudC5jcHAKQEAgLTk4LDcgKzk4LDEwIEBAIHZvaWQgTW9ja1BhZ2VP
dmVybGF5Q2xpZW50OjpkcmF3UmVjdChQYWdlT3ZlcmxheSYgb3ZlcmxheSwgR3JhcGhpY3NDb250
ZXh0JiBjb250CiAgICAgbWVzc2FnZS5hcHBlbmRMaXRlcmFsKCIsICIpOwogICAgIG1lc3NhZ2Uu
YXBwZW5kTnVtYmVyKGRpcnR5UmVjdC5oZWlnaHQoKSk7CiAgICAgbWVzc2FnZS5hcHBlbmRMaXRl
cmFsKCIpIik7Ci0gICAgb3ZlcmxheS5wYWdlKCktPm1haW5GcmFtZSgpLmRvY3VtZW50KCktPmFk
ZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdlTGV2ZWw6OkRlYnVn
LCBtZXNzYWdlLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1lc3NhZ2UudG9T
dHJpbmcoKSkKKyAgICAgICAgb3ZlcmxheS5wYWdlKCktPm1haW5GcmFtZSgpLmRvY3VtZW50KCkt
PmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdlTGV2ZWw6OkRl
YnVnLCAqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAgICBHcmFwaGlj
c0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CiAKQEAgLTEyMyw3ICsxMjYs
MTAgQEAgYm9vbCBNb2NrUGFnZU92ZXJsYXlDbGllbnQ6Om1vdXNlRXZlbnQoUGFnZU92ZXJsYXkm
IG92ZXJsYXksIGNvbnN0IFBsYXRmb3JtTW91c2UKICAgICBtZXNzYWdlLmFwcGVuZExpdGVyYWwo
IiwgIik7CiAgICAgbWVzc2FnZS5hcHBlbmROdW1iZXIoZXZlbnQucG9zaXRpb24oKS55KCkpOwog
ICAgIG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiKSIpOwotICAgIG92ZXJsYXkucGFnZSgpLT5tYWlu
RnJhbWUoKS5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpPdGhl
ciwgTWVzc2FnZUxldmVsOjpEZWJ1ZywgbWVzc2FnZS50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBtZXNzYWdlLnRvU3RyaW5nKCkpCisgICAgICAgIG92ZXJsYXkucGFnZSgpLT5t
YWluRnJhbWUoKS5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpP
dGhlciwgTWVzc2FnZUxldmVsOjpEZWJ1ZywgKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBD
UkFTSCgpOwogCiAgICAgcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwCmluZGV4IDViMzQwZmYuLjQ0ZTRlMjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAKQEAgLTIwMiw3ICsy
MDIsOSBAQCB2b2lkIFdvcmtlclNjcmlwdExvYWRlcjo6bm90aWZ5RXJyb3IoKQogCiBTdHJpbmcg
V29ya2VyU2NyaXB0TG9hZGVyOjpzY3JpcHQoKQogewotICAgIHJldHVybiBtX3NjcmlwdC50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1fc2NyaXB0LnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgV29ya2VyU2NyaXB0
TG9hZGVyOjpub3RpZnlGaW5pc2hlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwv
WE1MRXJyb3JzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxFcnJvcnMuY3BwCmluZGV4IGIx
NDMyZDEuLjE1MzE5ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxFcnJvcnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxFcnJvcnMuY3BwCkBAIC0xNDgsOCArMTQ4
LDExIEBAIHZvaWQgWE1MRXJyb3JzOjppbnNlcnRFcnJvck1lc3NhZ2VCbG9jaygpCiAgICAgICAg
IGRvY3VtZW50RWxlbWVudCA9IFdURk1vdmUoYm9keSk7CiAgICAgfQogCi0gICAgU3RyaW5nIGVy
cm9yTWVzc2FnZXMgPSBtX2Vycm9yTWVzc2FnZXMudG9TdHJpbmcoKTsKLSAgICBhdXRvIHJlcG9y
dEVsZW1lbnQgPSBjcmVhdGVYSFRNTFBhcnNlckVycm9ySGVhZGVyKG1fZG9jdW1lbnQsIGVycm9y
TWVzc2FnZXMpOworICAgIGF1dG8gcmVwb3J0RWxlbWVudCA9IGNyZWF0ZVhIVE1MUGFyc2VyRXJy
b3JIZWFkZXIobV9kb2N1bWVudCwgWyZdICgpIHsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
bV9lcnJvck1lc3NhZ2VzLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICAgICAgQ1JBU0goKTsKKyAgICB9KCkpOwogCiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgaWYg
KG1fZG9jdW1lbnQudHJhbnNmb3JtU291cmNlRG9jdW1lbnQoKSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggMTllNWFlNC4uNzZiOWZkNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0xOTUsNyArMTk1LDEwIEBAIEV4Y2VwdGlvbk9yPERv
Y3VtZW50Kj4gWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlWE1MKCkKICAgICAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQgPSBYTUxEb2N1bWVudDo6Y3JlYXRl
KDAsIG1fdXJsKTsKICAgICAgICAgICAgIC8vIEZJWE1FOiBTZXQgTGFzdC1Nb2RpZmllZC4KLSAg
ICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudC0+c2V0Q29udGVudChtX3Jlc3BvbnNlQnVpbGRl
ci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBtX3Jlc3BvbnNlQnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSkKKyAgICAg
ICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQtPnNldENvbnRlbnQoKnN0cmluZyk7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIG1fcmVz
cG9uc2VEb2N1bWVudC0+c2V0Q29udGV4dERvY3VtZW50KGRvd25jYXN0PERvY3VtZW50Pigqc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKSk7CiAgICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQt
PnNldFNlY3VyaXR5T3JpZ2luUG9saWN5KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2VjdXJp
dHlPcmlnaW5Qb2xpY3koKSk7CiAgICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQtPm92ZXJy
aWRlTUlNRVR5cGUobWltZVR5cGUpOwpAQCAtODE3LDE0ICs4MjAsMjAgQEAgU3RyaW5nIFhNTEh0
dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25zZUhlYWRlcnMoKSBjb25zdAogICAgICAgICAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCI6ICIpOwogICAgICAgICAgICAgc3RyaW5nQnVpbGRl
ci5hcHBlbmQoaGVhZGVyLnZhbHVlKTsKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiXHJcbiIpOwotICAgICAgICAgICAgaGVhZGVycy51bmNoZWNrZWRBcHBlbmQoc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICBoZWFkZXJzLnVuY2hlY2tl
ZEFwcGVuZCgqc3RyaW5nKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFT
SCgpOwogICAgICAgICB9CiAgICAgICAgIHN0ZDo6c29ydChoZWFkZXJzLmJlZ2luKCksIGhlYWRl
cnMuZW5kKCksIFdURjo6Y29kZVBvaW50Q29tcGFyZUxlc3NUaGFuKTsKIAogICAgICAgICBTdHJp
bmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7CiAgICAgICAgIGZvciAoYXV0byYgaGVhZGVyIDogaGVh
ZGVycykKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGhlYWRlcik7Ci0gICAgICAg
IG1fYWxsUmVzcG9uc2VIZWFkZXJzID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAg
ICBtX2FsbFJlc3BvbnNlSGVhZGVycyA9ICpzdHJpbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIG1fYWxsUmVzcG9uc2VIZWFkZXJzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAppbmRleCAxZWVjMTU4Li41M2I0Zjg3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaApAQCAtODcsNyArODcsMTIgQEAgcHVibGljOgog
ICAgIFN0cmluZyBnZXRBbGxSZXNwb25zZUhlYWRlcnMoKSBjb25zdDsKICAgICBTdHJpbmcgZ2V0
UmVzcG9uc2VIZWFkZXIoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdDsKICAgICBFeGNlcHRpb25P
cjxPd25lZFN0cmluZz4gcmVzcG9uc2VUZXh0KCk7Ci0gICAgU3RyaW5nIHJlc3BvbnNlVGV4dEln
bm9yaW5nUmVzcG9uc2VUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZUJ1aWxkZXIudG9T
dHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7IH0KKyAgICBTdHJpbmcgcmVzcG9uc2VUZXh0SWdub3Jp
bmdSZXNwb25zZVR5cGUoKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
bV9yZXNwb25zZUJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpCisgICAgICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9CiAgICAgU3RyaW5nIHJl
c3BvbnNlTUlNRVR5cGUoKSBjb25zdDsKIAogICAgIERvY3VtZW50KiBvcHRpb25hbFJlc3BvbnNl
WE1MKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZURvY3VtZW50LmdldCgpOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhGdW5jdGlvbnMuY3BwIGIvU291cmNlL1dlYkNv
cmUveG1sL1hQYXRoRnVuY3Rpb25zLmNwcAppbmRleCA3MzUzNGE0Li5mN2RjYTlhYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRnVuY3Rpb25zLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS94bWwvWFBhdGhGdW5jdGlvbnMuY3BwCkBAIC0zMDgsOSArMzA4LDExIEBAIHN0YXRp
YyBBdG9taWNTdHJpbmcgYXRvbWljU3Vic3RyaW5nKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIHVu
c2lnbmVkIHN0YXJ0LCB1bnNpCiB7CiAgICAgQVNTRVJUKHN0YXJ0IDw9IGJ1aWxkZXIubGVuZ3Ro
KCkpOwogICAgIEFTU0VSVChsZW5ndGggPD0gYnVpbGRlci5sZW5ndGgoKSAtIHN0YXJ0KTsKKyAg
ICBpZiAoYnVpbGRlci5mYWlsZWQoKSkKKyAgICAgICAgQ1JBU0goKTsKICAgICBpZiAoYnVpbGRl
ci5pczhCaXQoKSkKLSAgICAgICAgcmV0dXJuIEF0b21pY1N0cmluZyhidWlsZGVyLmNoYXJhY3Rl
cnM4KCkgKyBzdGFydCwgbGVuZ3RoKTsKLSAgICByZXR1cm4gQXRvbWljU3RyaW5nKGJ1aWxkZXIu
Y2hhcmFjdGVyczE2KCkgKyBzdGFydCwgbGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIEF0b21pY1N0
cmluZygqYnVpbGRlci5jaGFyYWN0ZXJzOCgpICsgc3RhcnQsIGxlbmd0aCk7CisgICAgcmV0dXJu
IEF0b21pY1N0cmluZygqYnVpbGRlci5jaGFyYWN0ZXJzMTYoKSArIHN0YXJ0LCBsZW5ndGgpOwog
fQogCiBWYWx1ZSBGdW5JZDo6ZXZhbHVhdGUoKSBjb25zdApAQCAtMzM0LDE0ICszMzYsMTcgQEAg
VmFsdWUgRnVuSWQ6OmV2YWx1YXRlKCkgY29uc3QKICAgICB1bnNpZ25lZCBzdGFydFBvcyA9IDA7
CiAgICAgdW5zaWduZWQgbGVuZ3RoID0gaWRMaXN0Lmxlbmd0aCgpOwogICAgIHdoaWxlICh0cnVl
KSB7Ci0gICAgICAgIHdoaWxlIChzdGFydFBvcyA8IGxlbmd0aCAmJiBpc1doaXRlc3BhY2UoaWRM
aXN0W3N0YXJ0UG9zXSkpCisgICAgICAgIGlmIChpZExpc3QuZmFpbGVkKCkpCisgICAgICAgICAg
ICBDUkFTSCgpOworCisgICAgICAgIHdoaWxlIChzdGFydFBvcyA8IGxlbmd0aCAmJiBpc1doaXRl
c3BhY2UoKmlkTGlzdFtzdGFydFBvc10pKQogICAgICAgICAgICAgKytzdGFydFBvczsKICAgICAg
ICAgCiAgICAgICAgIGlmIChzdGFydFBvcyA9PSBsZW5ndGgpCiAgICAgICAgICAgICBicmVhazsK
IAogICAgICAgICBzaXplX3QgZW5kUG9zID0gc3RhcnRQb3M7Ci0gICAgICAgIHdoaWxlIChlbmRQ
b3MgPCBsZW5ndGggJiYgIWlzV2hpdGVzcGFjZShpZExpc3RbZW5kUG9zXSkpCisgICAgICAgIHdo
aWxlIChlbmRQb3MgPCBsZW5ndGggJiYgIWlzV2hpdGVzcGFjZSgqaWRMaXN0W2VuZFBvc10pKQog
ICAgICAgICAgICAgKytlbmRQb3M7CiAKICAgICAgICAgLy8gSWYgdGhlcmUgYXJlIHNldmVyYWwg
bm9kZXMgd2l0aCB0aGUgc2FtZSBpZCwgaWQoKSBzaG91bGQgcmV0dXJuIHRoZSBmaXJzdCBvbmUu
CkBAIC00MzcsNyArNDQyLDkgQEAgVmFsdWUgRnVuQ29uY2F0OjpldmFsdWF0ZSgpIGNvbnN0CiAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoc3RyKTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFZhbHVlIEZ1blN0YXJ0c1dp
dGg6OmV2YWx1YXRlKCkgY29uc3QKQEAgLTU1Niw3ICs1NjMsOSBAQCBWYWx1ZSBGdW5UcmFuc2xh
dGU6OmV2YWx1YXRlKCkgY29uc3QKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoczNbaTJdKTsK
ICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAKIFZhbHVlIEZ1bkJvb2xlYW46OmV2YWx1YXRlKCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwCmluZGV4IDY2YWQxNWYuLjhlNWUw
NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcApAQCAt
MTk3LDEyICsxOTcsMTggQEAgc3RhdGljIGJvb2wgc2F2ZVJlc3VsdFRvU3RyaW5nKHhtbERvY1B0
ciByZXN1bHREb2MsIHhzbHRTdHlsZXNoZWV0UHRyIHNoZWV0LCBTdHIKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgLy8gV29ya2Fyb3VuZCBmb3IgPGh0dHA6Ly9idWd6aWxsYS5nbm9tZS5v
cmcvc2hvd19idWcuY2dpP2lkPTQ5NTY2OD46IGxpYnhzbHQgYXBwZW5kcyBhbiBleHRyYSBsaW5l
IGZlZWQgdG8gdGhlIHJlc3VsdC4KLSAgICBpZiAocmVzdWx0QnVpbGRlci5sZW5ndGgoKSA+IDAg
JiYgcmVzdWx0QnVpbGRlcltyZXN1bHRCdWlsZGVyLmxlbmd0aCgpIC0gMV0gPT0gJ1xuJykKKyAg
ICBpZiAocmVzdWx0QnVpbGRlci5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgaWYgKHJlc3VsdEJ1
aWxkZXIuZmFpbGVkKCkpCisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICBpZiAoKnJlc3Vs
dEJ1aWxkZXJbcmVzdWx0QnVpbGRlci5sZW5ndGgoKSAtIDFdID09ICdcbicpCiAgICAgICAgIHJl
c3VsdEJ1aWxkZXIucmVzaXplKHJlc3VsdEJ1aWxkZXIubGVuZ3RoKCkgLSAxKTsKKyAgICB9CiAK
LSAgICByZXN1bHRTdHJpbmcgPSByZXN1bHRCdWlsZGVyLnRvU3RyaW5nKCk7Ci0KLSAgICByZXR1
cm4gdHJ1ZTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHRCdWlsZGVyLnRvU3RyaW5nKCkp
IHsKKyAgICAgICAgcmVzdWx0U3RyaW5nID0gKnN0cmluZzsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBjb25zdCBjaGFyKiogeHNsdFBhcmFt
QXJyYXlGcm9tUGFyYW1ldGVyTWFwKFhTTFRQcm9jZXNzb3I6OlBhcmFtZXRlck1hcCYgcGFyYW1l
dGVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvQ2hhcmFjdGVyUmVm
ZXJlbmNlUGFyc2VySW5saW5lcy5oIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9DaGFyYWN0
ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVzLmgKaW5kZXggNzY4NjI2OC4uNjcyYmFlMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9DaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJ
bmxpbmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9DaGFyYWN0ZXJSZWZlcmVu
Y2VQYXJzZXJJbmxpbmVzLmgKQEAgLTMyLDcgKzMyLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogaW5saW5lIHZvaWQgdW5jb25zdW1lQ2hhcmFjdGVycyhTZWdtZW50ZWRTdHJpbmcmIHNvdXJj
ZSwgU3RyaW5nQnVpbGRlciYgY29uc3VtZWRDaGFyYWN0ZXJzKQogewotICAgIHNvdXJjZS5wdXNo
QmFjayhjb25zdW1lZENoYXJhY3RlcnMudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gY29uc3VtZWRDaGFyYWN0ZXJzLnRvU3RyaW5nKCkpCisgICAgICAgIHNvdXJjZS5wdXNoQmFj
ayhXVEZNb3ZlKCpzdHJpbmcpKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHRl
bXBsYXRlIDx0eXBlbmFtZSBQYXJzZXJGdW5jdGlvbnM+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
RHJpdmVyL1Nlc3Npb25Ib3N0LmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbkhvc3QuY3Bw
CmluZGV4IGYxNjQ5MjkuLmIxY2NjYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vz
c2lvbkhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbkhvc3QuY3BwCkBAIC01
NSw3ICs1NSwxMCBAQCBsb25nIFNlc3Npb25Ib3N0OjpzZW5kQ29tbWFuZFRvQmFja2VuZChjb25z
dCBTdHJpbmcmIGNvbW1hbmQsIFJlZlB0cjxKU09OOjpPYmplYwogICAgICAgICBtZXNzYWdlQnVp
bGRlci5hcHBlbmQocGFyYW1ldGVycy0+dG9KU09OU3RyaW5nKCkpOwogICAgIH0KICAgICBtZXNz
YWdlQnVpbGRlci5hcHBlbmQoJ30nKTsKLSAgICBzZW5kTWVzc2FnZVRvQmFja2VuZChzZXF1ZW5j
ZUlELCBtZXNzYWdlQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBt
ZXNzYWdlQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBzZW5kTWVzc2FnZVRvQmFja2VuZChz
ZXF1ZW5jZUlELCAqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAgICBy
ZXR1cm4gc2VxdWVuY2VJRDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOGExZGQxNy4uODhiOTZiZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw1MiBAQAorMjAxOC0wNC0yNiAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBh
cHBsZS5jb20+CisKKyAgICAgICAgU3RyaW5nQnVpbGRlciBpcyBmYWxsaWJsZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MDQ4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVhY2ggU3RyaW5nQnVpbGRl
ciB0aGF0IGl0IGlzIGZhbGxpYmxlCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9D
YWNoZVN0b3JhZ2VFbmdpbmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVu
Z2luZTo6cmVwcmVzZW50YXRpb24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6OmR1
bXBDb250ZW50c1RvRmlsZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29y
a0NhY2hlS2V5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpLZXk6Omhhc2hB
c1N0cmluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVy
ZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FwdHVyZTo6TWFuYWdlcjo6
aGFzaFRvUGF0aCk6CisgICAgICAgICogU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIvSURCVXRp
bGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6dW5pcXVlRGF0YWJhc2VJZGVudGlmaWVyKToK
KyAgICAgICAgKiBTaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkdhbWVwYWREYXRhOjpsb2dnaW5nU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBTaGFyZWQv
UGx1Z2lucy9OZXRzY2FwZS91bml4L05ldHNjYXBlUGx1Z2luTW9kdWxlVW5peC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luTW9kdWxlOjpidWlsZE1JTUVEZXNjcmlwdGlvbik6
CisgICAgICAgICogU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJNZW1vcnlTYW1wbGVyOjphcHBlbmRDdXJyZW50TWVtb3J5VXNhZ2VUb0ZpbGUpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVXNlclNjcmlwdC5jcHA6CisgICAgICAgIChBUEk6OlVz
ZXJTY3JpcHQ6OmdlbmVyYXRlVW5pcXVlVVJMKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQ
SVVzZXJTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKEFQSTo6VXNlclN0eWxlU2hlZXQ6OmdlbmVy
YXRlVW5pcXVlVVJMKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpTbmFw
c2hvdFJlbW92YWxUcmFja2VyOjpldmVudHNEZXNjcmlwdGlvbik6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkJhY2tGb3J3
YXJkTGlzdDo6bG9nZ2luZ1N0cmluZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmRpZFJlY2VpdmVJbnZh
bGlkTWVzc2FnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVtb3ZlRGF0YVJl
Y29yZHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OnVwZGF0ZUNvb2tpZVBhcnRpdGlvbmluZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpzdWJtaXRU
b3BMaXN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVC
cm93c2VyRnVuY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpjYXBpdGFsaXplUkZDODIySGVhZGVy
RmllbGROYW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OmJ1aWxkSFRUUEhlYWRlcnMpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpjb250
ZW50c0FzU3RyaW5nIGNvbnN0KToKKwogMjAxOC0wNC0yNSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRp
QGFwcGxlLmNvbT4KIAogICAgICAgICBkbG9wZW4gdGhlIGJ1bmRsZSdzIGV4ZWN1dGFibGUgYmVm
b3JlIGNhbGxpbmcgLVtOU0J1bmRsZSBsb2FkXSBzaW5jZSB0aGF0IHdpbGwgYWxzbyBkbyBhIGJ1
bmNoIG9mIG90aGVyIHRoaW5ncyB3ZSBkb24ndCBuZWVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAKaW5kZXgg
NDVjNDdhMS4uOGQ3OTU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcApAQCAtNTI0LDcgKzUyNCw5IEBA
IFN0cmluZyBFbmdpbmU6OnJlcHJlc2VudGF0aW9uKCkKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
In0iKTsKICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmQoIl19Iik7Ci0gICAgcmV0dXJuIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIENhY2hlU3RvcmFnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGUuY3BwCmluZGV4IDczYTI1ZjQuLjBjYTdmOTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKQEAg
LTU3MCwxMCArNTcwLDEzIEBAIHZvaWQgQ2FjaGU6OmR1bXBDb250ZW50c1RvRmlsZSgpCiAgICAg
ICAgICAgICBlcGlsb2d1ZS5hcHBlbmROdW1iZXIodG90YWxzLmNvdW50ID8gdG90YWxzLndvcnRo
IC8gdG90YWxzLmNvdW50IDogMCk7CiAgICAgICAgICAgICBlcGlsb2d1ZS5hcHBlbmRMaXRlcmFs
KCJcbiIpOwogICAgICAgICAgICAgZXBpbG9ndWUuYXBwZW5kTGl0ZXJhbCgifVxufVxuIik7Ci0g
ICAgICAgICAgICBhdXRvIHdyaXRlRGF0YSA9IGVwaWxvZ3VlLnRvU3RyaW5nKCkudXRmOCgpOwot
ICAgICAgICAgICAgd3JpdGVUb0ZpbGUoZmQsIHdyaXRlRGF0YS5kYXRhKCksIHdyaXRlRGF0YS5s
ZW5ndGgoKSk7Ci0gICAgICAgICAgICBjbG9zZUZpbGUoZmQpOwotICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZXBpbG9ndWUudG9TdHJpbmcoKSkgewor
ICAgICAgICAgICAgICAgIGF1dG8gd3JpdGVEYXRhID0gc3RyaW5nLT51dGY4KCk7CisgICAgICAg
ICAgICAgICAgd3JpdGVUb0ZpbGUoZmQsIHdyaXRlRGF0YS5kYXRhKCksIHdyaXRlRGF0YS5sZW5n
dGgoKSk7CisgICAgICAgICAgICAgICAgY2xvc2VGaWxlKGZkKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAg
ICAgICAgIGF1dG8gZW50cnkgPSBFbnRyeTo6ZGVjb2RlU3RvcmFnZVJlY29yZCgqcmVjb3JkKTsK
ICAgICAgICAgaWYgKCFlbnRyeSkKQEAgLTU4NSw4ICs1ODgsMTEgQEAgdm9pZCBDYWNoZTo6ZHVt
cENvbnRlbnRzVG9GaWxlKCkKICAgICAgICAgU3RyaW5nQnVpbGRlciBqc29uOwogICAgICAgICBl
bnRyeS0+YXNKU09OKGpzb24sIGluZm8pOwogICAgICAgICBqc29uLmFwcGVuZExpdGVyYWwoIixc
biIpOwotICAgICAgICBhdXRvIHdyaXRlRGF0YSA9IGpzb24udG9TdHJpbmcoKS51dGY4KCk7Ci0g
ICAgICAgIHdyaXRlVG9GaWxlKGZkLCB3cml0ZURhdGEuZGF0YSgpLCB3cml0ZURhdGEubGVuZ3Ro
KCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBqc29uLnRvU3RyaW5nKCkpIHsKKyAgICAg
ICAgICAgIGF1dG8gd3JpdGVEYXRhID0gc3RyaW5nLT51dGY4KCk7CisgICAgICAgICAgICB3cml0
ZVRvRmlsZShmZCwgd3JpdGVEYXRhLmRhdGEoKSwgd3JpdGVEYXRhLmxlbmd0aCgpKTsKKyAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUtleS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUtleS5jcHAK
aW5kZXggOGZhODFkMS4uMGI0MjJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVLZXkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlS2V5LmNwcApAQCAtMTM0LDcgKzEzNCw5IEBA
IFN0cmluZyBLZXk6Omhhc2hBc1N0cmluZyhjb25zdCBIYXNoVHlwZSYgaGFzaCkKICAgICAgICAg
YnVpbGRlci5hcHBlbmQodXBwZXJOaWJibGVUb0FTQ0lJSGV4RGlnaXQoYnl0ZSkpOwogICAgICAg
ICBidWlsZGVyLmFwcGVuZChsb3dlck5pYmJsZVRvQVNDSUlIZXhEaWdpdChieXRlKSk7CiAgICAg
fQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
YnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+IGJvb2wgaGV4RGlnaXRzVG9IYXNo
KENoYXJUeXBlKiBjaGFyYWN0ZXJzLCBLZXk6Okhhc2hUeXBlJiBoYXNoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlTWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1
cmVNYW5hZ2VyLmNwcAppbmRleCA1NjEzYmU4Li4zNDczZTVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVNYW5hZ2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVN
YW5hZ2VyLmNwcApAQCAtNDE1LDkgKzQxNSw5IEBAIFN0cmluZyBNYW5hZ2VyOjpoYXNoVG9QYXRo
KGNvbnN0IFN0cmluZyYgaGFzaCkKIAogICAgIGF1dG8gcGF0aCA9IHBhdGhCeUFwcGVuZGluZ0Nv
bXBvbmVudChtX3JlY29yZFJlcGxheUNhY2hlTG9jYXRpb24sIGtEaXJOYW1lUmVzb3VyY2VzKTsK
ICAgICBwYXRoID0gcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHBhdGgsIGhhc2hIZWFkKTsKLSAg
ICBwYXRoID0gcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHBhdGgsIGZpbGVOYW1lLnRvU3RyaW5n
KCkpOwotCi0gICAgcmV0dXJuIHBhdGg7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gZmlsZU5hbWUu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChwYXRo
LCAqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgTWFuYWdlcjo6dXJsSWRlbnRp
ZnlpbmdDb21tb25Eb21haW4oY29uc3QgV2ViQ29yZTo6VVJMJiB1cmwpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCL0lEQlV0aWxpdGllcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCL0lEQlV0aWxpdGllcy5j
cHAKaW5kZXggOWVjNzZmZi4uN2MxYzI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvRGF0YWJhc2VzL0luZGV4ZWREQi9JREJVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIvSURCVXRpbGl0aWVzLmNwcApAQCAtNTIsNyAr
NTIsOSBAQCBTdHJpbmcgdW5pcXVlRGF0YWJhc2VJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgZGF0
YWJhc2VOYW1lLCBjb25zdCBXZWJDb3JlOjpTZWN1cgogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5k
KCdfJyk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoZGF0YWJhc2VOYW1lKTsKIAotICAgIHJl
dHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0dhbWVwYWQvR2FtZXBhZERhdGEuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
R2FtZXBhZC9HYW1lcGFkRGF0YS5jcHAKaW5kZXggOTA1ZDgyNy4uMWZiZDdkMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5jcHAKQEAgLTExMSw3ICsxMTEs
OSBAQCBTdHJpbmcgR2FtZXBhZERhdGE6OmxvZ2dpbmdTdHJpbmcoKSBjb25zdAogICAgICAgICBi
dWlsZGVyLmFwcGVuZE51bWJlcihtX2J1dHRvblZhbHVlc1tpXSk7CiAgICAgfQogCi0gICAgcmV0
dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS91
bml4L05ldHNjYXBlUGx1Z2luTW9kdWxlVW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Q
bHVnaW5zL05ldHNjYXBlL3VuaXgvTmV0c2NhcGVQbHVnaW5Nb2R1bGVVbml4LmNwcAppbmRleCBm
OWViMDZlLi45NzJkY2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5z
L05ldHNjYXBlL3VuaXgvTmV0c2NhcGVQbHVnaW5Nb2R1bGVVbml4LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL3VuaXgvTmV0c2NhcGVQbHVnaW5Nb2R1bGVV
bml4LmNwcApAQCAtMTIwLDcgKzEyMCw5IEBAIFN0cmluZyBOZXRzY2FwZVBsdWdpbk1vZHVsZTo6
YnVpbGRNSU1FRGVzY3JpcHRpb24oY29uc3QgVmVjdG9yPE1pbWVDbGFzc0luZm8+JiBtCiAgICAg
ICAgICAgICBidWlsZGVyLmFwcGVuZCgnOycpOwogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIE5ldHNjYXBl
UGx1Z2luTW9kdWxlOjpnZXRQbHVnaW5JbmZvRm9yTG9hZGVkUGx1Z2luKFJhd1BsdWdpbk1ldGFE
YXRhJiBtZXRhRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYk1lbW9y
eVNhbXBsZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAK
aW5kZXggOTI3NzE4OS4uNjc1OGFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViTWVtb3J5U2FtcGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTWVtb3J5
U2FtcGxlci5jcHAKQEAgLTE4MSw4ICsxODEsMTEgQEAgdm9pZCBXZWJNZW1vcnlTYW1wbGVyOjph
cHBlbmRDdXJyZW50TWVtb3J5VXNhZ2VUb0ZpbGUoRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGEK
ICAgICB9CiAgICAgc3RhdFN0cmluZy5hcHBlbmQoJ1xuJyk7CiAKLSAgICBDU3RyaW5nIHV0ZjhT
dHJpbmcgPSBzdGF0U3RyaW5nLnRvU3RyaW5nKCkudXRmOCgpOwotICAgIEZpbGVTeXN0ZW06Ondy
aXRlVG9GaWxlKG1fc2FtcGxlTG9nRmlsZSwgdXRmOFN0cmluZy5kYXRhKCksIHV0ZjhTdHJpbmcu
bGVuZ3RoKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0YXRTdHJpbmcudG9TdHJpbmcoKSkg
eworICAgICAgICBDU3RyaW5nIHV0ZjhTdHJpbmcgPSBzdHJpbmctPnV0ZjgoKTsKKyAgICAgICAg
RmlsZVN5c3RlbTo6d3JpdGVUb0ZpbGUobV9zYW1wbGVMb2dGaWxlLCB1dGY4U3RyaW5nLmRhdGEo
KSwgdXRmOFN0cmluZy5sZW5ndGgoKSk7CisgICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVc2VyU2Ny
aXB0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVc2VyU2NyaXB0LmNwcApp
bmRleCA3NTg0ZTYzLi5hOTM5YjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJVXNlclNjcmlwdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSVVzZXJTY3JpcHQuY3BwCkBAIC0zNyw3ICszNyw5IEBAIFdlYkNvcmU6OlVSTCBVc2VyU2Ny
aXB0OjpnZW5lcmF0ZVVuaXF1ZVVSTCgpCiAgICAgU3RyaW5nQnVpbGRlciB1cmxTdHJpbmdCdWls
ZGVyOwogICAgIHVybFN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgidXNlci1zY3JpcHQ6Iik7
CiAgICAgdXJsU3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIoKytpZGVudGlmaWVyKTsKLSAgICBy
ZXR1cm4geyB7IH0sIHVybFN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSB9OworICAgIGlmIChhdXRv
IHN0cmluZyA9IHVybFN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHsg
eyB9LCAqc3RyaW5nIH07CisgICAgQ1JBU0goKTsKIH0KIAogVXNlclNjcmlwdDo6VXNlclNjcmlw
dChXZWJDb3JlOjpVc2VyU2NyaXB0IHVzZXJTY3JpcHQsIEFQSTo6VXNlckNvbnRlbnRXb3JsZCYg
d29ybGQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVXNlclN0
eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJTdHlsZVNo
ZWV0LmNwcAppbmRleCAxZDU5NWJiLi42M2FjMGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJVXNlclN0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElVc2VyU3R5bGVTaGVldC5jcHAKQEAgLTM3LDcgKzM3LDkgQEAgV2Vi
Q29yZTo6VVJMIFVzZXJTdHlsZVNoZWV0OjpnZW5lcmF0ZVVuaXF1ZVVSTCgpCiAgICAgU3RyaW5n
QnVpbGRlciB1cmxTdHJpbmdCdWlsZGVyOwogICAgIHVybFN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgidXNlci1zdHlsZS1zaGVldDoiKTsKICAgICB1cmxTdHJpbmdCdWlsZGVyLmFwcGVuZE51
bWJlcigrK2lkZW50aWZpZXIpOwotICAgIHJldHVybiB7IHsgfSwgdXJsU3RyaW5nQnVpbGRlci50
b1N0cmluZygpIH07CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdXJsU3RyaW5nQnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4geyB7IH0sICpzdHJpbmcgfTsKKyAgICBDUkFTSCgpOwog
fQogCiBVc2VyU3R5bGVTaGVldDo6VXNlclN0eWxlU2hlZXQoV2ViQ29yZTo6VXNlclN0eWxlU2hl
ZXQgdXNlclN0eWxlU2hlZXQsIEFQSTo6VXNlckNvbnRlbnRXb3JsZCYgd29ybGQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVy
LmNwcAppbmRleCA4YzIxYzI0Li45MTZkZDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKQEAgLTIzMiw4ICsy
MzIsMTAgQEAgU3RyaW5nIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6U25hcHNob3RSZW1vdmFsVHJh
Y2tlcjo6ZXZlbnRzRGVzY3JpcHRpb24oRXZlbnRzIGUKIAogICAgIGlmIChldmVudCAmIFZpZXdH
ZXN0dXJlQ29udHJvbGxlcjo6U25hcHNob3RSZW1vdmFsVHJhY2tlcjo6U2Nyb2xsUG9zaXRpb25S
ZXN0b3JhdGlvbikKICAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kKCJTY3JvbGxQb3NpdGlvblJl
c3RvcmF0aW9uICIpOwotICAgIAotICAgIHJldHVybiBkZXNjcmlwdGlvbi50b1N0cmluZygpOwor
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gZGVzY3JpcHRpb24udG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcAppbmRleCA2MDA2YTAyLi4xMjhmNTY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAKQEAg
LTQ5Myw3ICs0OTMsOSBAQCBjb25zdCBjaGFyKiBXZWJCYWNrRm9yd2FyZExpc3Q6OmxvZ2dpbmdT
dHJpbmcoKQogICAgICAgICBidWlsZGVyLmFwcGVuZChtX2VudHJpZXNbaV0tPmxvZ2dpbmdTdHJp
bmcoKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIGRlYnVnU3RyaW5nKCJcbiIsIGJ1aWxkZXIudG9T
dHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gZGVidWdTdHJpbmcoIlxuIiwgKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0K
ICNlbmRpZiAvLyAhTE9HX0RJU0FCTEVECiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcAppbmRleCA3YzAwMGFiLi5lMDNlMGZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC03MTAsNyArNzEwLDEwIEBAIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShjb25zdCBJUEM6OlN0cmluZ1Jl
ZmVyZW5jZSYgbWVzc2FnCiAgICAgbWVzc2FnZU5hbWVTdHJpbmdCdWlsZGVyLmFwcGVuZCgnLicp
OwogICAgIG1lc3NhZ2VOYW1lU3RyaW5nQnVpbGRlci5hcHBlbmQobWVzc2FnZU5hbWUuZGF0YSgp
LCBtZXNzYWdlTmFtZS5zaXplKCkpOwogCi0gICAgc19pbnZhbGlkTWVzc2FnZUNhbGxiYWNrKHRv
QVBJKEFQSTo6U3RyaW5nOjpjcmVhdGUobWVzc2FnZU5hbWVTdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCkpLnB0cigpKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWVzc2FnZU5hbWVTdHJpbmdCdWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHNfaW52YWxpZE1lc3NhZ2VDYWxsYmFjayh0b0FQSShB
UEk6OlN0cmluZzo6Y3JlYXRlKCpzdHJpbmcpLnB0cigpKSk7CisgICAgZWxzZQorICAgICAgICBD
UkFTSCgpOwogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpwcm9jZXNzRGlkQ2FjaGVQYWdlKFdl
YlByb2Nlc3NQcm94eSogcHJvY2VzcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwCmluZGV4IDQxNTZkODMuLmVmMDlkYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTcwLDcgKzE3MCwxMCBAQCB2b2lkIFdl
YlByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9w
dGlvbnMmIGxhdW5jaE9wdAogICAgICAgICAgICAgICAgIGxhbmd1YWdlU3RyaW5nLmFwcGVuZCgn
LCcpOwogICAgICAgICAgICAgbGFuZ3VhZ2VTdHJpbmcuYXBwZW5kKG92ZXJyaWRlTGFuZ3VhZ2Vz
W2ldKTsKICAgICAgICAgfQotICAgICAgICBsYXVuY2hPcHRpb25zLmV4dHJhSW5pdGlhbGl6YXRp
b25EYXRhLmFkZChBU0NJSUxpdGVyYWwoIk92ZXJyaWRlTGFuZ3VhZ2VzIiksIGxhbmd1YWdlU3Ry
aW5nLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBsYW5ndWFnZVN0cmlu
Zy50b1N0cmluZygpKQorICAgICAgICAgICAgbGF1bmNoT3B0aW9ucy5leHRyYUluaXRpYWxpemF0
aW9uRGF0YS5hZGQoQVNDSUlMaXRlcmFsKCJPdmVycmlkZUxhbmd1YWdlcyIpLCAqc3RyaW5nKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBsYXVuY2hP
cHRpb25zLm5vblZhbGlkSW5qZWN0ZWRDb2RlQWxsb3dlZCA9IHNob3VsZEFsbG93Tm9uVmFsaWRJ
bmplY3RlZENvZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmluZGV4IDdmYTg5MTAuLjVkOWI3NjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmNwcApAQCAtMjI3LDcgKzIyNywxMCBAQCB2b2lkIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVtb3ZlRGF0YVJlY29yZHMoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPgogICAgICAgICAgICAgYXBwZW5kV2l0aERlbGltaXRlcihkb21haW5zVG9SZW1v
dmVEYXRhUmVjb3Jkc0ZvckJ1aWxkZXIsIGRvbWFpbiwgaXNGaXJzdEl0ZW0pOwogICAgICAgICAg
ICAgaXNGaXJzdEl0ZW0gPSBmYWxzZTsKICAgICAgICAgfQotICAgICAgICBSRUxFQVNFX0xPR19J
TkZPKFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1ZywgIkFib3V0IHRvIHJlbW92ZSBkYXRhIHJl
Y29yZHMgZm9yICV7cHVibGljfXMuIiwgZG9tYWluc1RvUmVtb3ZlRGF0YVJlY29yZHNGb3JCdWls
ZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IGRvbWFpbnNUb1JlbW92ZURhdGFSZWNvcmRzRm9yQnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICAgICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWcsICJBYm91
dCB0byByZW1vdmUgZGF0YSByZWNvcmRzIGZvciAle3B1YmxpY31zLiIsIHN0cmluZy0+dXRmOCgp
LmRhdGEoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogI2Vu
ZGlmCiAKQEAgLTEwNDQsNyArMTA0NywxMCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6dXBkYXRlQ29va2llUGFydGl0aW9uaW5nKENvbXBsZXRpb25IYW5kbGVyPAogICAg
ICAgICAgICAgICAgIGFwcGVuZFdpdGhEZWxpbWl0ZXIoZG9tYWluc1RvUGFydGl0aW9uQnVpbGRl
ciwgZG9tYWluLCBpc0ZpcnN0RG9tYWluKTsKICAgICAgICAgICAgICAgICBpc0ZpcnN0RG9tYWlu
ID0gZmFsc2U7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1ZywgIkFib3V0IHRvIHBhcnRpdGlvbiBjb29raWVzIGlu
IHRoaXJkLXBhcnR5IGNvbnRleHRzIGZvciAle3B1YmxpY31zLiIsIGRvbWFpbnNUb1BhcnRpdGlv
bkJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IGRvbWFpbnNUb1BhcnRpdGlvbkJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
ICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1ZywgIkFi
b3V0IHRvIHBhcnRpdGlvbiBjb29raWVzIGluIHRoaXJkLXBhcnR5IGNvbnRleHRzIGZvciAle3B1
YmxpY31zLiIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICghZG9tYWluc1Rv
QmxvY2suaXNFbXB0eSgpKSB7CkBAIC0xMDU0LDcgKzEwNjAsMTAgQEAgdm9pZCBXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnVwZGF0ZUNvb2tpZVBhcnRpdGlvbmluZyhDb21wbGV0aW9u
SGFuZGxlcjwKICAgICAgICAgICAgICAgICBhcHBlbmRXaXRoRGVsaW1pdGVyKGRvbWFpbnNUb0Js
b2NrQnVpbGRlciwgZG9tYWluLCBpc0ZpcnN0RG9tYWluKTsKICAgICAgICAgICAgICAgICBpc0Zp
cnN0RG9tYWluID0gZmFsc2U7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBSRUxFQVNFX0xP
R19JTkZPKFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1ZywgIkFib3V0IHRvIGJsb2NrIGNvb2tp
ZXMgaW4gdGhpcmQtcGFydHkgY29udGV4dHMgZm9yICV7cHVibGljfXMuIiwgZG9tYWluc1RvQmxv
Y2tCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBpZiAoYXV0
byBzdHJpbmcgPSBkb21haW5zVG9CbG9ja0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAg
ICAgICBSRUxFQVNFX0xPR19JTkZPKFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1ZywgIkFib3V0
IHRvIGJsb2NrIGNvb2tpZXMgaW4gdGhpcmQtcGFydHkgY29udGV4dHMgZm9yICV7cHVibGljfXMu
Iiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICBDUkFTSCgpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKCFkb21haW5zVG9OZWl0aGVy
UGFydGl0aW9uTm9yQmxvY2suaXNFbXB0eSgpKSB7CkBAIC0xMDY0LDcgKzEwNzMsMTAgQEAgdm9p
ZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnVwZGF0ZUNvb2tpZVBhcnRpdGlvbmlu
ZyhDb21wbGV0aW9uSGFuZGxlcjwKICAgICAgICAgICAgICAgICBhcHBlbmRXaXRoRGVsaW1pdGVy
KGRvbWFpbnNUb05laXRoZXJQYXJ0aXRpb25Ob3JCbG9ja0J1aWxkZXIsIGRvbWFpbiwgaXNGaXJz
dERvbWFpbik7CiAgICAgICAgICAgICAgICAgaXNGaXJzdERvbWFpbiA9IGZhbHNlOwogICAgICAg
ICAgICAgfQotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGVidWcsICJBYm91dCB0byBuZWl0aGVyIHBhcnRpdGlvbiBub3IgYmxvY2sgY29va2llcyBp
biB0aGlyZC1wYXJ0eSBjb250ZXh0cyBmb3IgJXtwdWJsaWN9cy4iLCBkb21haW5zVG9OZWl0aGVy
UGFydGl0aW9uTm9yQmxvY2tCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAg
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBkb21haW5zVG9OZWl0aGVyUGFydGl0aW9uTm9yQmxv
Y2tCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWcsICJBYm91dCB0byBuZWl0aGVyIHBhcnRpdGlvbiBu
b3IgYmxvY2sgY29va2llcyBpbiB0aGlyZC1wYXJ0eSBjb250ZXh0cyBmb3IgJXtwdWJsaWN9cy4i
LCBzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIENSQVNIKCk7CiAgICAgICAgIH0KICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVt
ZXRyeS5jcHAKaW5kZXggYmI3NDQwYy4uNTIwYWI3NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0
cnkuY3BwCkBAIC0xNzksMjIgKzE3OSwyMyBAQCBzdGF0aWMgdm9pZCBzdWJtaXRUb3BMaXN0KHVu
c2lnbmVkIG51bWJlck9mUmVzb3VyY2VzRnJvbVRoZVRvcCwgY29uc3QgVmVjdG9yPFByZQogICAg
IFN0cmluZ0J1aWxkZXIgcHJlYW1ibGVCdWlsZGVyOwogICAgIHByZWFtYmxlQnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJ0b3AiKTsKICAgICBwcmVhbWJsZUJ1aWxkZXIuYXBwZW5kTnVtYmVyKG51bWJl
ck9mUmVzb3VyY2VzRnJvbVRoZVRvcCk7Ci0gICAgU3RyaW5nIGRlc2NyaXB0aW9uUHJlYW1ibGUg
PSBwcmVhbWJsZUJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICAKLSAgICB3ZWJQYWdlUHJveHkubG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCksIGRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiUHJl
dmFsZW50UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbiIsCi0gICAgICAgIHRvcFByZXZhbGVu
dFJlc291cmNlc1dpdGhVc2VySW50ZXJhY3Rpb24sIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dl
ZFZhbHVlcywgU2hvdWxkU2FtcGxlOjpObyk7Ci0gICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1RlbGVtZXRyeUtleSgpLCBkZXNjcmlwdGlvblByZWFtYmxlICsgIlN1YmZyYW1lVW5k
ZXJUb3BGcmFtZU9yaWdpbnMiLAotICAgICAgICB0b3BTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmln
aW5zLCBzaWduaWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8p
OwotICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9z
dGljTG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgZGVz
Y3JpcHRpb25QcmVhbWJsZSArICJTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW5zIiwKLSAg
ICAgICAgdG9wU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2lucywgc2lnbmlmaWNhbnRGaWd1
cmVzRm9yTG9nZ2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKLSAgICB3ZWJQYWdlUHJveHku
bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNv
dXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCksIGRlc2NyaXB0aW9uUHJlYW1ibGUgKyAi
U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbyIsCi0gICAgICAgIHRvcFN1YnJlc291cmNlVW5p
cXVlUmVkaXJlY3RzVG8sIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxk
U2FtcGxlOjpObyk7Ci0gICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZh
bHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRy
eUtleSgpLCBkZXNjcmlwdGlvblByZWFtYmxlICsgIk51bWJlck9mVGltZXNEYXRhUmVjb3Jkc1Jl
bW92ZWQiLAotICAgICAgICB0b3BOdW1iZXJPZlRpbWVzRGF0YVJlY29yZHNSZW1vdmVkLCBzaWdu
aWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOwotICAgIHdl
YlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2lu
Z0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgZGVzY3JpcHRpb25Q
cmVhbWJsZSArICJOdW1iZXJPZlRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1VzZXJJbnRl
cmFjdGlvbiIsCi0gICAgICAgIHRvcE51bWJlck9mVGltZXNBY2Nlc3NlZEFzRmlyc3RQYXJ0eUR1
ZVRvVXNlckludGVyYWN0aW9uLCBzaWduaWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNo
b3VsZFNhbXBsZTo6Tm8pOwotICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdp
dGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxl
bWV0cnlLZXkoKSwgZGVzY3JpcHRpb25QcmVhbWJsZSArICJOdW1iZXJPZlRpbWVzQWNjZXNzZWRB
c0ZpcnN0UGFydHlEdWVUb1N0b3JhZ2VBY2Nlc3NBUEkiLAotICAgICAgICB0b3BOdW1iZXJPZlRp
bWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1N0b3JhZ2VBY2Nlc3NBUEksIHNpZ25pZmljYW50
RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2FtcGxlOjpObyk7CisgICAgaWYgKGF1dG8g
ZGVzY3JpcHRpb25QcmVhbWJsZSA9IHByZWFtYmxlQnVpbGRlci50b1N0cmluZygpKSB7CisgICAg
ICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgKmRlc2Ny
aXB0aW9uUHJlYW1ibGUgKyAiUHJldmFsZW50UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbiIs
CisgICAgICAgICAgICB0b3BQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uLCBz
aWduaWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOworICAg
ICAgICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCksICpkZXNj
cmlwdGlvblByZWFtYmxlICsgIlN1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbnMiLAorICAgICAg
ICAgICAgdG9wU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lucywgc2lnbmlmaWNhbnRGaWd1cmVz
Rm9yTG9nZ2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICAgICAgd2ViUGFnZVByb3h5
LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVz
b3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgpLCAqZGVzY3JpcHRpb25QcmVhbWJsZSAr
ICJTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW5zIiwKKyAgICAgICAgICAgIHRvcFN1YnJl
c291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbnMsIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZh
bHVlcywgU2hvdWxkU2FtcGxlOjpObyk7CisgICAgICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9z
dGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0
YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgKmRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiU3VicmVzb3Vy
Y2VVbmlxdWVSZWRpcmVjdHNUbyIsCisgICAgICAgICAgICB0b3BTdWJyZXNvdXJjZVVuaXF1ZVJl
ZGlyZWN0c1RvLCBzaWduaWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBs
ZTo6Tm8pOworICAgICAgICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFs
dWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5
S2V5KCksICpkZXNjcmlwdGlvblByZWFtYmxlICsgIk51bWJlck9mVGltZXNEYXRhUmVjb3Jkc1Jl
bW92ZWQiLAorICAgICAgICAgICAgdG9wTnVtYmVyT2ZUaW1lc0RhdGFSZWNvcmRzUmVtb3ZlZCwg
c2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9nZ2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAg
ICAgICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0
aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgpLCAqZGVz
Y3JpcHRpb25QcmVhbWJsZSArICJOdW1iZXJPZlRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVU
b1VzZXJJbnRlcmFjdGlvbiIsCisgICAgICAgICAgICB0b3BOdW1iZXJPZlRpbWVzQWNjZXNzZWRB
c0ZpcnN0UGFydHlEdWVUb1VzZXJJbnRlcmFjdGlvbiwgc2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9n
Z2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICAgICAgd2ViUGFnZVByb3h5LmxvZ0Rp
YWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VM
b2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgpLCAqZGVzY3JpcHRpb25QcmVhbWJsZSArICJOdW1i
ZXJPZlRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1N0b3JhZ2VBY2Nlc3NBUEkiLAorICAg
ICAgICAgICAgdG9wTnVtYmVyT2ZUaW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9TdG9yYWdl
QWNjZXNzQVBJLCBzaWduaWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBs
ZTo6Tm8pOworICAgIH0gZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogICAgIAogc3RhdGljIHZv
aWQgc3VibWl0VG9wTGlzdHMoY29uc3QgVmVjdG9yPFByZXZhbGVudFJlc291cmNlVGVsZW1ldHJ5
PiYgc29ydGVkUHJldmFsZW50UmVzb3VyY2VzLCBjb25zdCBWZWN0b3I8UHJldmFsZW50UmVzb3Vy
Y2VUZWxlbWV0cnk+JiBzb3J0ZWRQcmV2YWxlbnRSZXNvdXJjZXNXaXRob3V0VXNlckludGVyYWN0
aW9uLCBXZWJQYWdlUHJveHkmIHdlYlBhZ2VQcm94eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3Nl
ckZ1bmNzLmNwcAppbmRleCAwYmNjZmFmLi5hZGE1ZjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVC
cm93c2VyRnVuY3MuY3BwCkBAIC0xMzgsNyArMTM4LDkgQEAgc3RhdGljIFN0cmluZyBjYXBpdGFs
aXplUkZDODIySGVhZGVyRmllbGROYW1lKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgY2FwaXRhbGl6ZUNoYXJhY3RlciA9IGZhbHNlOwogICAgIH0KLSAgICBy
ZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0
YXRpYyBIVFRQSGVhZGVyTWFwIHBhcnNlUkZDODIySGVhZGVyRmllbGRzKGNvbnN0IGNoYXIqIGJ5
dGVzLCB1bnNpZ25lZCBsZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IGE3ZmNhY2UuLjc5OWFkOWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC0yMTIsNyArMjEy
LDkgQEAgc3RhdGljIFN0cmluZyBidWlsZEhUVFBIZWFkZXJzKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlLCBsb25nIGxvbmcmIGV4cGUKICAgICBpZiAoIWNvbnRlbnRFbmNvZGluZy5p
c051bGwoKSAmJiBjb250ZW50RW5jb2RpbmcgIT0gImlkZW50aXR5IikKICAgICAgICAgZXhwZWN0
ZWRDb250ZW50TGVuZ3RoID0gLTE7CiAKLSAgICByZXR1cm4gaGVhZGVyLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gaGVhZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyB1aW50MzJfdCBsYXN0TW9kaWZpZWRE
YXRlTVMoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggMTZhYmU1NS4uNDg5YzhjZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAt
MzUxLDcgKzM1MSw5IEBAIFN0cmluZyBXZWJGcmFtZTo6Y29udGVudHNBc1N0cmluZygpIGNvbnN0
CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCh3ZWJGcmFtZS0+Y29udGVudHNBc1N0cmluZygp
KTsKICAgICAgICAgfQogICAgICAgICAvLyBGSVhNRTogSXQgbWF5IG1ha2Ugc2Vuc2UgdG8gdXNl
IHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIGhlcmUuCi0gICAgICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0K
IAogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fY29yZUZyYW1lLT5kb2N1bWVudCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDA3ZDQ4Y2QuLmQ0MTMxNjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOC0wNC0yNiAgSkYgQmFzdGll
biAgPGpmYmFzdGllbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3RyaW5nQnVpbGRlciBpcyBmYWxs
aWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1
MDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVh
Y2ggU3RyaW5nQnVpbGRlciB0aGF0IGl0IGlzIGZhbGxpYmxlCisKKyAgICAgICAgKiBXZWJWaWV3
L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbToKKyAgICAgICAgKHJlZ0V4cEZvckxhYmVscyk6CisK
IDIwMTgtMDQtMjUgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZW1vdmUgYWNjZXNzIHRvIGtleWNoYWluIGZyb20gdGhlIFdlYkNvbnRlbnQgcHJvY2Vzcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MUmVwcmVz
ZW50YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxSZXBy
ZXNlbnRhdGlvbi5tbQppbmRleCAxOTE4MzYzLi4yYjI3YTU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbQorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbQpA
QCAtMzk0LDcgKzM5NCwxMCBAQCBzdGF0aWMgUmVndWxhckV4cHJlc3Npb24qIHJlZ0V4cEZvckxh
YmVscyhOU0FycmF5ICpsYWJlbHMpCiAgICAgICAgICAgICAgICAgcGF0dGVybi5hcHBlbmRMaXRl
cmFsKCJcXGIiKTsKICAgICAgICAgfQogICAgICAgICBwYXR0ZXJuLmFwcGVuZCgnKScpOwotICAg
ICAgICByZXN1bHQgPSBuZXcgUmVndWxhckV4cHJlc3Npb24ocGF0dGVybi50b1N0cmluZygpLCBK
U0M6OllhcnI6OlRleHRDYXNlSW5zZW5zaXRpdmUpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSBwYXR0ZXJuLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXN1bHQgPSBuZXcgUmVndWxhckV4
cHJlc3Npb24oKnN0cmluZywgSlNDOjpZYXJyOjpUZXh0Q2FzZUluc2Vuc2l0aXZlKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICAvLyBhZGQgcmVnZXhw
IHRvIHRoZSBjYWNoZSwgbWFraW5nIHN1cmUgaXQgaXMgYXQgdGhlIGZyb250IGZvciBMUlUgb3Jk
ZXJpbmcKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCBmNTc2MWFhLi40MjA5NWIwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODEgQEAKKzIwMTgtMDQtMjYgIEpGIEJhc3RpZW4gIDxq
ZmJhc3RpZW5AYXBwbGUuY29tPgorCisgICAgICAgIFN0cmluZ0J1aWxkZXIgaXMgZmFsbGlibGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTA0OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0cmluZ0J1
aWxkZXIgY2FuIGZhaWwgd2hlbiBhbGxvY2F0aW5nIG1lbW9yeS4gU3RyaW5nQnVpbGRlciBpcwor
ICAgICAgICBtb3N0bHkgdXNlZCB3aXRoIHVzZXIgaW5wdXQsIHdoaWNoIG9mdGVuIG1lYW5zIHRo
YXQganVzdCBjcmFzaGluZworICAgICAgICBpc24ndCB0aGUgcmlnaHQgb3V0Y29tZS4gT3VyIGZ1
enplcnMgb2Z0ZW4gZW5jb3VudGVyIHN1Y2ggdGhpbmdzCisgICAgICAgIGZvciBKYXZhU2NyaXB0
Q29yZSwgYW5kIHNvIGZhciB3ZSd2ZSBhcHBsaWVkIHBvaW50IHNvbHV0aW9ucy4gTm8KKyAgICAg
ICAgbW9yZSEKKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxk
ZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZXhwZWN0QnVpbGRlckNvbnRlbnQpOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZXhwZWN0RW1wdHkpOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmll
dy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvRmlsZU1vbml0b3IuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Y3JlYXRlQ29tbWFu
ZCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9Mb2dnaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OkxvZ2dpbmdUZXN0OjpvdXRwdXQpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkxvZ09ic2VydmVyOjpsb2cpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9UZXh0Q29kZWMuY3BwOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6dGVzdERlY29kZSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9XVEZTdHJpbmdV
dGlsaXRpZXMuaDoKKyAgICAgICAgKHV0ZjE2U3RyaW5nKToKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChX
VFI6OmR1bXBQYXRoKToKKyAgICAgICAgKFdUUjo6cmFuZ2VUb1N0cik6CisgICAgICAgIChXVFI6
OnN0eWxlRGVjVG9TdHIpOgorICAgICAgICAoV1RSOjpzZWN1cml0eU9yaWdpblRvU3RyKToKKyAg
ICAgICAgKFdUUjo6ZnJhbWVUb1N0cik6CisgICAgICAgIChXVFI6OmR1bXBMb2FkRXZlbnQpOgor
ICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmR1bXApOgorICAgICAgICAoV1RSOjpJ
bmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKToKKyAgICAgICAgKFdU
Ujo6SW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUp
OgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZpbmlzaERvY3VtZW50TG9h
ZEZvckZyYW1lKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsU2VuZFJl
cXVlc3RGb3JGcmFtZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVj
ZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2UpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBh
Z2U6OmRpZEZpbmlzaExvYWRGb3JSZXNvdXJjZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVu
ZGxlUGFnZTo6ZGlkRmFpbExvYWRGb3JSZXNvdXJjZSk6CisgICAgICAgIChXVFI6OkluamVjdGVk
QnVuZGxlUGFnZTo6c2hvdWxkQ2FjaGVSZXNwb25zZSk6CisgICAgICAgIChXVFI6OkluamVjdGVk
QnVuZGxlUGFnZTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgIChX
VFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAg
ICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxBZGRNZXNzYWdlVG9Db25zb2xlKToKKyAg
ICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsU2V0U3RhdHVzYmFyVGV4dCk6Cisg
ICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFJ1bkphdmFTY3JpcHRBbGVydCk6
CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFJ1bkphdmFTY3JpcHRDb25m
aXJtKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUnVuSmF2YVNjcmlw
dFByb21wdCk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVhY2hBcHBs
aWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBh
Z2U6OmRpZEV4Y2VlZERhdGFiYXNlUXVvdGEpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRs
ZVBhZ2U6OnNob3VsZEJlZ2luRWRpdGluZyk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxl
UGFnZTo6c2hvdWxkRW5kRWRpdGluZyk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFn
ZTo6c2hvdWxkSW5zZXJ0Tm9kZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6
c2hvdWxkSW5zZXJ0VGV4dCk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6c2hv
dWxkRGVsZXRlUmFuZ2UpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3Vs
ZENoYW5nZVNlbGVjdGVkUmFuZ2UpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6
OnNob3VsZEFwcGx5U3R5bGUpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRp
ZEJlZ2luRWRpdGluZyk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRW5k
RWRpdGluZyk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2hhbmdlKToK
KyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRDaGFuZ2VTZWxlY3Rpb24pOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6
CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnN0YXRpc3RpY3NEaWRSdW5UZWxlbWV0cnlDYWxs
YmFjayk6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OmNhbGxEaWRSZWNlaXZlQWxsU3RvcmFn
ZUFjY2Vzc0VudHJpZXNDYWxsYmFjayk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkZWNpZGVEZXN0
aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9s
bGVyOjpkb3dubG9hZERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdFRvVVJMKToKKyAgICAgICAgKFdU
Ujo6VGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlkRmFpbCk6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9u
OjpkdW1wUmVzdWx0cyk6CisKIDIwMTgtMDQtMjUgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRA
YXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMzA5OTgpOiBCb3Qgd2F0Y2hlcidz
IGRhc2hib2FyZCBkb2Vzbid0IGRpc3BsYXkgbnVtYmVyIG9mIEFQSSB0ZXN0IGZhaWx1cmVzCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZFRhc2su
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRUYXNrLmNwcApp
bmRleCA1MmMwYmNkLi5mNjFmYTMyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9Dcm9zc1RocmVhZFRhc2suY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0Nyb3NzVGhyZWFkVGFzay5jcHAKQEAgLTg4LDcgKzg4LDkgQEAgc3RydWN0IExpZmV0
aW1lTG9nZ2VyIHsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoIi0iKTsKICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoU3RyaW5nOjpudW1iZXIobW92ZUdlbmVyYXRpb24pKTsKIAotICAgICAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0go
KTsKICAgICB9CiAKICAgICBjb25zdCBjaGFyJiBuYW1lIHsgKiI8ZGVmYXVsdD4iIH07CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCmluZGV4IDZi
OGUwNWMuLjc4Njc1MDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1N0cmluZ0J1aWxkZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0
cmluZ0J1aWxkZXIuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0y
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKQEAgLTM5LDE2ICszOSwxNiBAQCBzdGF0aWMgdm9pZCBleHBlY3RCdWls
ZGVyQ29udGVudChjb25zdCBTdHJpbmcmIGV4cGVjdGVkLCBjb25zdCBTdHJpbmdCdWlsZGVyJiBi
dQogICAgIC8vIE5vdCB1c2luZyBidWlsZGVyLnRvU3RyaW5nKCkgb3IgYnVpbGRlci50b1N0cmlu
Z1ByZXNlcnZlQ2FwYWNpdHkoKSBiZWNhdXNlIHRoZXkgYWxsCiAgICAgLy8gY2hhbmdlIGludGVy
bmFsIHN0YXRlIG9mIGJ1aWxkZXIuCiAgICAgaWYgKGJ1aWxkZXIuaXM4Qml0KCkpCi0gICAgICAg
IEVYUEVDVF9FUShleHBlY3RlZCwgU3RyaW5nKGJ1aWxkZXIuY2hhcmFjdGVyczgoKSwgYnVpbGRl
ci5sZW5ndGgoKSkpOworICAgICAgICBFWFBFQ1RfRVEoZXhwZWN0ZWQsIFN0cmluZyhidWlsZGVy
LmNoYXJhY3RlcnM4KCkudmFsdWUoKSwgYnVpbGRlci5sZW5ndGgoKSkpOwogICAgIGVsc2UKLSAg
ICAgICAgRVhQRUNUX0VRKGV4cGVjdGVkLCBTdHJpbmcoYnVpbGRlci5jaGFyYWN0ZXJzMTYoKSwg
YnVpbGRlci5sZW5ndGgoKSkpOworICAgICAgICBFWFBFQ1RfRVEoZXhwZWN0ZWQsIFN0cmluZyhi
dWlsZGVyLmNoYXJhY3RlcnMxNigpLnZhbHVlKCksIGJ1aWxkZXIubGVuZ3RoKCkpKTsKIH0KIAog
dm9pZCBleHBlY3RFbXB0eShjb25zdCBTdHJpbmdCdWlsZGVyJiBidWlsZGVyKQogewogICAgIEVY
UEVDVF9FUSgwVSwgYnVpbGRlci5sZW5ndGgoKSk7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5p
c0VtcHR5KCkpOwotICAgIEVYUEVDVF9FUSgwLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOworICAg
IEVYUEVDVF9FUSgwLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkudmFsdWUoKSk7CiB9CiAKIFRFU1Qo
U3RyaW5nQnVpbGRlclRlc3QsIERlZmF1bHRDb25zdHJ1Y3RvcikKQEAgLTcxLDI0ICs3MSwyNCBA
QCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBBcHBlbmQpCiAgICAgYnVpbGRlci5hcHBlbmQoJyMn
KTsKICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRl
cik7CiAKLSAgICBidWlsZGVyLnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmco
KS4KKyAgICBidWlsZGVyLnRvU3RyaW5nKCkudmFsdWUoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0
cmluZygpLgogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjE7CiAgICAgYnVpbGRlci5hcHBlbmQo
IiIsIDApOwogICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBi
dWlsZGVyKTsKLSAgICBidWlsZGVyMS5hcHBlbmQoYnVpbGRlci5jaGFyYWN0ZXJzOCgpLCBidWls
ZGVyLmxlbmd0aCgpKTsKKyAgICBidWlsZGVyMS5hcHBlbmQoYnVpbGRlci5jaGFyYWN0ZXJzOCgp
LnZhbHVlKCksIGJ1aWxkZXIubGVuZ3RoKCkpOwogICAgIGJ1aWxkZXIxLmFwcGVuZCgiWFlaIik7
Ci0gICAgYnVpbGRlci5hcHBlbmQoYnVpbGRlcjEuY2hhcmFjdGVyczgoKSwgYnVpbGRlcjEubGVu
Z3RoKCkpOworICAgIGJ1aWxkZXIuYXBwZW5kKGJ1aWxkZXIxLmNoYXJhY3RlcnM4KCkudmFsdWUo
KSwgYnVpbGRlcjEubGVuZ3RoKCkpOwogICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGVmZyMwMTIzNDU2Nzg5YWJjZGVmZyNYWVoiLCBidWlsZGVyKTsKIAogICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjI7CiAgICAgYnVpbGRlcjIucmVzZXJ2ZUNhcGFjaXR5KDEwMCk7CiAg
ICAgYnVpbGRlcjIuYXBwZW5kKCJ4eXoiKTsKLSAgICBjb25zdCBMQ2hhciogY2hhcmFjdGVycyA9
IGJ1aWxkZXIyLmNoYXJhY3RlcnM4KCk7CisgICAgY29uc3QgTENoYXIqIGNoYXJhY3RlcnMgPSBi
dWlsZGVyMi5jaGFyYWN0ZXJzOCgpLnZhbHVlKCk7CiAgICAgYnVpbGRlcjIuYXBwZW5kKCIwMTIz
NDU2Nzg5Iik7Ci0gICAgQVNTRVJUX0VRKGNoYXJhY3RlcnMsIGJ1aWxkZXIyLmNoYXJhY3RlcnM4
KCkpOwotICAgIGJ1aWxkZXIyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOyAvLyBUZXN0IGFm
dGVyIHJlaWZ5U3RyaW5nIHdpdGggYnVmZmVyIHByZXNlcnZlZC4KKyAgICBBU1NFUlRfRVEoY2hh
cmFjdGVycywgYnVpbGRlcjIuY2hhcmFjdGVyczgoKS52YWx1ZSgpKTsKKyAgICBidWlsZGVyMi50
b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS52YWx1ZSgpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3Ry
aW5nIHdpdGggYnVmZmVyIHByZXNlcnZlZC4KICAgICBidWlsZGVyMi5hcHBlbmQoImFiY2QiKTsK
LSAgICBBU1NFUlRfRVEoY2hhcmFjdGVycywgYnVpbGRlcjIuY2hhcmFjdGVyczgoKSk7CisgICAg
QVNTRVJUX0VRKGNoYXJhY3RlcnMsIGJ1aWxkZXIyLmNoYXJhY3RlcnM4KCkudmFsdWUoKSk7CiAK
ICAgICAvLyBUZXN0IGFwcGVuZGluZyBVQ2hhcjMyIGNoYXJhY3RlcnMgdG8gU3RyaW5nQnVpbGRl
ci4KICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXJGb3JVQ2hhcjMyQXBwZW5kOwpAQCAtMTA1LDkg
KzEwNSw5IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nKQogewogICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwotICAg
IFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgU3RyaW5nIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKS52YWx1ZSgpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODkiKSwgc3RyaW5nKTsKLSAgICBBU1NFUlRfRVEoc3RyaW5nLmltcGwoKSwgYnVpbGRlci50
b1N0cmluZygpLmltcGwoKSk7CisgICAgQVNTRVJUX0VRKHN0cmluZy5pbXBsKCksIGJ1aWxkZXIu
dG9TdHJpbmcoKS52YWx1ZSgpLmltcGwoKSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5n
QnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5n
KCkuCiAgICAgYnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7CkBA
IC0xMTUsMjAgKzExNSwyMCBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZykKIAog
ICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBv
cmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3Qg
Y2hhbmdlZC4KICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyMDApOwotICAgIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkudmFs
dWUoKTsKICAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXoiKSwgc3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7CiAgICAgQVNT
RVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0
cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5n
KCkgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhlIFN0cmluZ0J1aWxkZXIuCi0g
ICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgU3RyaW5nIHN0cmlu
ZzEgPSBidWlsZGVyLnRvU3RyaW5nKCkudmFsdWUoKTsKICAgICBBU1NFUlRfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CiAgICAg
c3RyaW5nMS5hcHBlbmQoIkRFRiIpOwotICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAg
IEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFC
QyIpLCBidWlsZGVyLnRvU3RyaW5nKCkudmFsdWUoKSk7CiAgICAgQVNTRVJUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOwog
CiAgICAgLy8gUmVzaXppbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhl
IG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpLgotICAgIHN0cmluZzEgPSBidWlsZGVyLnRv
U3RyaW5nKCk7CisgICAgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKS52YWx1ZSgpOwogICAg
IGJ1aWxkZXIucmVzaXplKDEwKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIyMjIik7CiAgICAgQVNT
RVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiks
IHN0cmluZzEpOwpAQCAtMTM5LDExICsxMzksMTEgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwg
VG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAg
ICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwogICAgIHVuc2lnbmVkIGNhcGFjaXR5ID0g
YnVpbGRlci5jYXBhY2l0eSgpOwotICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
UHJlc2VydmVDYXBhY2l0eSgpOworICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
UHJlc2VydmVDYXBhY2l0eSgpLnZhbHVlKCk7CiAgICAgQVNTRVJUX0VRKGNhcGFjaXR5LCBidWls
ZGVyLmNhcGFjaXR5KCkpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3Ry
aW5nKTsKLSAgICBBU1NFUlRfRVEoc3RyaW5nLmltcGwoKSwgYnVpbGRlci50b1N0cmluZ1ByZXNl
cnZlQ2FwYWNpdHkoKS5pbXBsKCkpOwotICAgIEFTU0VSVF9FUShzdHJpbmcuY2hhcmFjdGVyczgo
KSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKKyAgICBBU1NFUlRfRVEoc3RyaW5nLmltcGwoKSwg
YnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS52YWx1ZSgpLmltcGwoKSk7CisgICAg
QVNTRVJUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkudmFs
dWUoKSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFm
ZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLgog
ICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpOwpAQCAtMTUy
LDI4ICsxNTIsMjggQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNh
cGFjaXR5KQogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZm
ZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgaW4g
Y2FzZSB0aGUgY2FwYWNpdHkgaXMgbm90IGNoYW5nZWQuCiAgICAgYnVpbGRlci5yZXNlcnZlQ2Fw
YWNpdHkoMjAwKTsKICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKLSAgICBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOworICAgIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkudmFsdWUoKTsKICAgICBBU1NFUlRfRVEo
Y2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7Ci0gICAgQVNTRVJUX0VRKHN0cmluZy5jaGFy
YWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOworICAgIEFTU0VSVF9FUShzdHJpbmcu
Y2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpLnZhbHVlKCkpOwogICAgIEFTU0VS
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJp
bmcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsKICAgICBBU1NFUlRfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKIAogICAgIC8v
IENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5
KCkgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhlIFN0cmluZ0J1aWxkZXIuCiAg
ICAgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7Ci0gICAgU3RyaW5nIHN0cmluZzEgPSBi
dWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOworICAgIFN0cmluZyBzdHJpbmcxID0g
YnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS52YWx1ZSgpOwogICAgIEFTU0VSVF9F
UShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKLSAgICBBU1NFUlRfRVEoc3RyaW5nMS5j
aGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOworICAgIEFTU0VSVF9FUShzdHJp
bmcxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKS52YWx1ZSgpKTsKICAgICBB
U1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMi
KSwgc3RyaW5nMSk7CiAgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiIpOwotICAgIEFTU0VSVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBidWlsZGVy
LnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKKyAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZ1By
ZXNlcnZlQ2FwYWNpdHkoKS52YWx1ZSgpKTsKICAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiKSwgc3RyaW5nMSk7CiAKICAgICAv
LyBSZXNpemluZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2lu
YWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLgogICAgIGNhcGFjaXR5ID0g
YnVpbGRlci5jYXBhY2l0eSgpOwotICAgIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2Vy
dmVDYXBhY2l0eSgpOworICAgIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBh
Y2l0eSgpLnZhbHVlKCk7CiAgICAgQVNTRVJUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5
KCkpOwotICAgIEFTU0VSVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0
ZXJzOCgpKTsKKyAgICBBU1NFUlRfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hh
cmFjdGVyczgoKS52YWx1ZSgpKTsKICAgICBidWlsZGVyLnJlc2l6ZSgxMCk7CiAgICAgYnVpbGRl
ci5hcHBlbmQoIiMjIyIpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKQEAgLTE5MSwxMSArMTkxLDExIEBA
IFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFycmF5KQogewogICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKICAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwotICAgIEVYUEVDVF9FUSgn
MCcsIHN0YXRpY19jYXN0PGNoYXI+KGJ1aWxkZXJbMF0pKTsKLSAgICBFWFBFQ1RfRVEoJzknLCBz
dGF0aWNfY2FzdDxjaGFyPihidWlsZGVyWzldKSk7Ci0gICAgYnVpbGRlci50b1N0cmluZygpOyAv
LyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCi0gICAgRVhQRUNUX0VRKCcwJywgc3RhdGljX2Nh
c3Q8Y2hhcj4oYnVpbGRlclswXSkpOwotICAgIEVYUEVDVF9FUSgnOScsIHN0YXRpY19jYXN0PGNo
YXI+KGJ1aWxkZXJbOV0pKTsKKyAgICBFWFBFQ1RfRVEoJzAnLCBzdGF0aWNfY2FzdDxjaGFyPihi
dWlsZGVyWzBdLnZhbHVlKCkpKTsKKyAgICBFWFBFQ1RfRVEoJzknLCBzdGF0aWNfY2FzdDxjaGFy
PihidWlsZGVyWzldLnZhbHVlKCkpKTsKKyAgICBidWlsZGVyLnRvU3RyaW5nKCkudmFsdWUoKTsg
Ly8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgorICAgIEVYUEVDVF9FUSgnMCcsIHN0YXRpY19j
YXN0PGNoYXI+KGJ1aWxkZXJbMF0udmFsdWUoKSkpOworICAgIEVYUEVDVF9FUSgnOScsIHN0YXRp
Y19jYXN0PGNoYXI+KGJ1aWxkZXJbOV0udmFsdWUoKSkpOwogfQogCiBURVNUKFN0cmluZ0J1aWxk
ZXJUZXN0LCBSZXNpemUpCkBAIC0yMDksNyArMjA5LDcgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVz
dCwgUmVzaXplKQogICAgIEVYUEVDVF9FUSg4VSwgYnVpbGRlci5sZW5ndGgoKSk7CiAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3IiwgYnVpbGRlcik7CiAKLSAgICBidWlsZGVyLnRv
U3RyaW5nKCk7CisgICAgYnVpbGRlci50b1N0cmluZygpLnZhbHVlKCk7CiAgICAgYnVpbGRlci5y
ZXNpemUoNyk7CiAgICAgRVhQRUNUX0VRKDdVLCBidWlsZGVyLmxlbmd0aCgpKTsKICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NiIsIGJ1aWxkZXIpOwpAQCAtMjQwLDEzICsyNDAsMTMg
QEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRXF1YWwpCiAgICAgQVNTRVJUX1RSVUUoYnVpbGRl
cjIgIT0gYnVpbGRlcjEpOwogICAgIEFTU0VSVF9UUlVFKFN0cmluZygiMTIzIikgIT0gYnVpbGRl
cjIpOwogICAgIEFTU0VSVF9UUlVFKGJ1aWxkZXIyICE9IFN0cmluZygiMTIzIikpOwotICAgIGJ1
aWxkZXIyLnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KKyAgICBidWls
ZGVyMi50b1N0cmluZygpLnZhbHVlKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAg
ICBBU1NFUlRfVFJVRShidWlsZGVyMSAhPSBidWlsZGVyMik7CiAKICAgICBidWlsZGVyMi5yZXNp
emUoMyk7CiAgICAgQVNTRVJUX1RSVUUoYnVpbGRlcjEgPT0gYnVpbGRlcjIpOwogCi0gICAgYnVp
bGRlcjEudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgorICAgIGJ1aWxk
ZXIxLnRvU3RyaW5nKCkudmFsdWUoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgogICAg
IEFTU0VSVF9UUlVFKGJ1aWxkZXIxID09IGJ1aWxkZXIyKTsKIH0KIApAQCAtMjY1LDE0ICsyNjUs
MTQgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9BdG9taWNTdHJpbmcpCiB7CiAgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIxMjMiKTsKLSAgICBBdG9t
aWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpOworICAgIEF0
b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCkudmFsdWUo
KTsKICAgICBBU1NFUlRfRVEoU3RyaW5nKCIxMjMiKSwgYXRvbWljU3RyaW5nKTsKIAogICAgIGJ1
aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDI1Nik7CiAgICAgQVNTRVJUX1RSVUUoYnVpbGRlci5jYW5T
aHJpbmsoKSk7CiAgICAgZm9yIChpbnQgaSA9IGJ1aWxkZXIubGVuZ3RoKCk7IGkgPCAxMjg7IGkr
KykKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ3gnKTsKLSAgICBBdG9taWNTdHJpbmcgYXRvbWlj
U3RyaW5nMSA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKTsKKyAgICBBdG9taWNTdHJpbmcgYXRv
bWljU3RyaW5nMSA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKS52YWx1ZSgpOwogICAgIEFTU0VS
VF9FUSgxMjh1LCBhdG9taWNTdHJpbmcxLmxlbmd0aCgpKTsKICAgICBBU1NFUlRfRVEoJ3gnLCBh
dG9taWNTdHJpbmcxWzEyN10pOwogCkBAIC0yODIsOCArMjgyLDggQEAgVEVTVChTdHJpbmdCdWls
ZGVyVGVzdCwgVG9BdG9taWNTdHJpbmcpCiAgICAgQVNTRVJUX0VRKDEyOHUsIGF0b21pY1N0cmlu
ZzEubGVuZ3RoKCkpOwogCiAgICAgQVNTRVJUX0ZBTFNFKGJ1aWxkZXIuY2FuU2hyaW5rKCkpOwot
ICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgQXRvbWljU3RyaW5n
IGF0b21pY1N0cmluZzIgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7CisgICAgU3RyaW5nIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKS52YWx1ZSgpOworICAgIEF0b21pY1N0cmluZyBhdG9t
aWNTdHJpbmcyID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpLnZhbHVlKCk7CiAgICAgLy8gVGhl
eSBzaG91bGQgc2hhcmUgdGhlIHNhbWUgU3RyaW5nSW1wbC4KICAgICBBU1NFUlRfRVEoYXRvbWlj
U3RyaW5nMi5pbXBsKCksIHN0cmluZy5pbXBsKCkpOwogfQpAQCAtMjkyLDQ1ICsyOTIsNDUgQEAg
VEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9BdG9taWNTdHJpbmdPbkVtcHR5KQogewogICAgIHsg
Ly8gRGVmYXVsdCBjb25zdHJ1Y3RlZC4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwot
ICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmlu
ZygpOworICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21p
Y1N0cmluZygpLnZhbHVlKCk7CiAgICAgICAgIEFTU0VSVF9FUShlbXB0eUF0b20oKSwgYXRvbWlj
U3RyaW5nKTsKICAgICB9CiAgICAgeyAvLyBXaXRoIGNhcGFjaXR5LgogICAgICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDY0KTsKLSAg
ICAgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmco
KTsKKyAgICAgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNT
dHJpbmcoKS52YWx1ZSgpOwogICAgICAgICBBU1NFUlRfRVEoZW1wdHlBdG9tKCksIGF0b21pY1N0
cmluZyk7CiAgICAgfQogICAgIHsgLy8gQXRvbWljU3RyaW5nIGNvbnN0cnVjdGVkIGZyb20gYSBu
dWxsIHN0cmluZy4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWls
ZGVyLmFwcGVuZChTdHJpbmcoKSk7Ci0gICAgICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcg
PSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7CisgICAgICAgIEF0b21pY1N0cmluZyBhdG9taWNT
dHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCkudmFsdWUoKTsKICAgICAgICAgQVNTRVJU
X0VRKGVtcHR5QXRvbSgpLCBhdG9taWNTdHJpbmcpOwogICAgIH0KICAgICB7IC8vIEF0b21pY1N0
cmluZyBjb25zdHJ1Y3RlZCBmcm9tIGFuIGVtcHR5IHN0cmluZy4KICAgICAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChlbXB0eVN0cmluZygpKTsKLSAg
ICAgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmco
KTsKKyAgICAgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNT
dHJpbmcoKS52YWx1ZSgpOwogICAgICAgICBBU1NFUlRfRVEoZW1wdHlBdG9tKCksIGF0b21pY1N0
cmluZyk7CiAgICAgfQogICAgIHsgLy8gQXRvbWljU3RyaW5nIGNvbnN0cnVjdGVkIGZyb20gYW4g
ZW1wdHkgU3RyaW5nQnVpbGRlci4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAg
ICAgICBTdHJpbmdCdWlsZGVyIGVtcHR5QnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
ZW1wdHlCdWlsZGVyKTsKLSAgICAgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxk
ZXIudG9BdG9taWNTdHJpbmcoKTsKKyAgICAgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9
IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKS52YWx1ZSgpOwogICAgICAgICBBU1NFUlRfRVEoZW1w
dHlBdG9tKCksIGF0b21pY1N0cmluZyk7CiAgICAgfQogICAgIHsgLy8gQXRvbWljU3RyaW5nIGNv
bnN0cnVjdGVkIGZyb20gYW4gZW1wdHkgY2hhciogc3RyaW5nLgogICAgICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIiLCAwKTsKLSAgICAgICAgQXRv
bWljU3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKTsKKyAgICAg
ICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKS52
YWx1ZSgpOwogICAgICAgICBBU1NFUlRfRVEoZW1wdHlBdG9tKCksIGF0b21pY1N0cmluZyk7CiAg
ICAgfQogICAgIHsgLy8gQ2xlYXJlZCBTdHJpbmdCdWlsZGVyLgogICAgICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiV2ViS2l0Iik7CiAg
ICAgICAgIGJ1aWxkZXIuY2xlYXIoKTsKLSAgICAgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmlu
ZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKTsKKyAgICAgICAgQXRvbWljU3RyaW5nIGF0b21p
Y1N0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKS52YWx1ZSgpOwogICAgICAgICBBU1NF
UlRfRVEoZW1wdHlBdG9tKCksIGF0b21pY1N0cmluZyk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcAppbmRleCBmYzI4YjAwLi44YjI4MzA5
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcApAQCAt
MTY0LDY1ICsxNjQsNjUgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdJdGVyYXRvcnMpCiAKICAgICBT
dHJpbmdCdWlsZGVyIGI7CiAgICAgYnVpbGQoYiwgezB4RDgwMCwgMHhERDU1fSk7IC8vIFN1cnJv
Z2F0ZXMgZm9yIHVuaWNvZGUgY29kZSBwb2ludCBVKzEwMTU1Ci0gICAgRVhQRUNUX1RSVUUoY29t
cGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlUG9pbnRzKCks
IHsweDEwMTU1fSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJp
bmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRzKCksIHsweEQ4MDAsIDB4REQ1NX0pKTsKLSAg
ICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5n
KCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi50b1N0cmluZygpKX0pKTsKKyAg
ICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5n
KCkudmFsdWUoKSkuY29kZVBvaW50cygpLCB7MHgxMDE1NX0pKTsKKyAgICBFWFBFQ1RfVFJVRShj
b21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29k
ZVVuaXRzKCksIHsweEQ4MDAsIDB4REQ1NX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9v
cEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuZ3JhcGhlbWVDbHVz
dGVycygpLCB7U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSl9KSk7CiAKICAgICBidWls
ZChiLCB7MHhEODAwfSk7IC8vIExlYWRpbmcgc3Vycm9nYXRlIG9ubHkKLSAgICBFWFBFQ1RfVFJV
RShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVQb2lu
dHMoKSwgezB4RDgwMH0pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMo
U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVVbml0cygpLCB7MHhEODAwfSkpOwotICAgIEVY
UEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSku
Z3JhcGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpfSkpOworICAgIEVY
UEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52
YWx1ZSgpKS5jb2RlUG9pbnRzKCksIHsweEQ4MDB9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFy
ZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVVbml0
cygpLCB7MHhEODAwfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhT
dHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJp
bmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKX0pKTsKIAogICAgIGJ1aWxkKGIsIHsweEQ4MDAs
IDB4RDgwMX0pOyAvLyBUd28gbGVhZGluZyBzdXJyb2dhdGVzCi0gICAgRVhQRUNUX1RSVUUoY29t
cGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlUG9pbnRzKCks
IHsweEQ4MDAsIDB4RDgwMX0pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlv
bnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVVbml0cygpLCB7MHhEODAwLCAweEQ4MDF9
KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50
b1N0cmluZygpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2
KCksIDEpLCBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkgKyAxLCAxKX0pKTsKKyAgICBFWFBF
Q1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFs
dWUoKSkuY29kZVBvaW50cygpLCB7MHhEODAwLCAweEQ4MDF9KSk7CisgICAgRVhQRUNUX1RSVUUo
Y29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNv
ZGVVbml0cygpLCB7MHhEODAwLCAweEQ4MDF9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxv
b3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmdyYXBoZW1lQ2x1
c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKS52YWx1ZSgpLCAxKSwgU3RyaW5n
VmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCkgKyAxLCAxKX0pKTsKIAogICAgIGJ1aWxkKGIs
IHsweERENTV9KTsgLy8gVHJhaWxpbmcgc3Vycm9nYXRlIG9ubHkKLSAgICBFWFBFQ1RfVFJVRShj
b21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVQb2ludHMo
KSwgezB4REQ1NX0pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3Ry
aW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVVbml0cygpLCB7MHhERDU1fSkpOwotICAgIEVYUEVD
VF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuZ3Jh
cGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpfSkpOworICAgIEVYUEVD
VF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1
ZSgpKS5jb2RlUG9pbnRzKCksIHsweERENTV9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxv
b3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVVbml0cygp
LCB7MHhERDU1fSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJp
bmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdW
aWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKX0pKTsKIAogICAgIGJ1aWxkKGIsIHsweEQ4MDAsICdo
J30pOyAvLyBMZWFkaW5nIHN1cnJvZ2F0ZSBmb2xsb3dlZCBieSBub24tc3Vycm9nYXRlCi0gICAg
RVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygp
KS5jb2RlUG9pbnRzKCksIHsweEQ4MDAsICdoJ30pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJl
TG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVVbml0cygpLCB7MHhE
ODAwLCAnaCd9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmlu
Z1ZpZXcoYi50b1N0cmluZygpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIuY2hh
cmFjdGVyczE2KCksIDEpLCBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkgKyAxLCAxKX0pKTsK
KyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3Ry
aW5nKCkudmFsdWUoKSkuY29kZVBvaW50cygpLCB7MHhEODAwLCAnaCd9KSk7CisgICAgRVhQRUNU
X1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVl
KCkpLmNvZGVVbml0cygpLCB7MHhEODAwLCAnaCd9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFy
ZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmdyYXBoZW1l
Q2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKS52YWx1ZSgpLCAxKSwgU3Ry
aW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCkgKyAxLCAxKX0pKTsKIAogICAgIGJ1aWxk
KGIsIHsweDAzMDZ9KTsgLy8gIkNPTUJJTklORyBCUkVWRSIKLSAgICBFWFBFQ1RfVFJVRShjb21w
YXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVQb2ludHMoKSwg
ezB4MDMwNn0pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5n
VmlldyhiLnRvU3RyaW5nKCkpLmNvZGVVbml0cygpLCB7MHgwMzA2fSkpOwotICAgIEVYUEVDVF9U
UlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuZ3JhcGhl
bWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpfSkpOworICAgIEVYUEVDVF9U
UlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgp
KS5jb2RlUG9pbnRzKCksIHsweDAzMDZ9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJ
dGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVVbml0cygpLCB7
MHgwMzA2fSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdW
aWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3
KGIudG9TdHJpbmcoKS52YWx1ZSgpKX0pKTsKIAogICAgIGJ1aWxkKGIsIHsweDAzMDYsIDB4RDgw
MCwgMHhERDU1LCAnaCcsICdlJywgJ2wnLCAnbyd9KTsgLy8gTWl4IG9mIHNpbmdsZSBjb2RlIHVu
aXQgYW5kIG11bHRpIGNvZGUgdW5pdCBjb2RlIHBvaW50cwotICAgIEVYUEVDVF9UUlVFKGNvbXBh
cmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVBvaW50cygpLCB7
MHgwMzA2LCAweDEwMTU1LCAnaCcsICdlJywgJ2wnLCAnbyd9KSk7Ci0gICAgRVhQRUNUX1RSVUUo
Y29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlVW5pdHMo
KSwgezB4MDMwNiwgMHhEODAwLCAweERENTUsICdoJywgJ2UnLCAnbCcsICdvJ30pKTsKLSAgICBF
WFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkp
LmdyYXBoZW1lQ2x1c3RlcnMoKSwgewotICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2
KCksIDEpLAotICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkgKyAxLCAyKSwKLSAg
ICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpICsgMywgMSksCi0gICAgICAgIFN0cmlu
Z1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSArIDQsIDEpLAotICAgICAgICBTdHJpbmdWaWV3KGIuY2hh
cmFjdGVyczE2KCkgKyA1LCAxKSwKLSAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigp
ICsgNiwgMSl9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmlu
Z1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVQb2ludHMoKSwgezB4MDMwNiwgMHgxMDE1
NSwgJ2gnLCAnZScsICdsJywgJ28nfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRl
cmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlVW5pdHMoKSwgezB4
MDMwNiwgMHhEODAwLCAweERENTUsICdoJywgJ2UnLCAnbCcsICdvJ30pKTsKKyAgICBFWFBFQ1Rf
VFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUo
KSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7CisgICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJz
MTYoKS52YWx1ZSgpLCAxKSwKKyAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZh
bHVlKCkgKyAxLCAyKSwKKyAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVl
KCkgKyAzLCAxKSwKKyAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCkg
KyA0LCAxKSwKKyAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCkgKyA1
LCAxKSwKKyAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCkgKyA2LCAx
KX0pKTsKIAogICAgIGJ1aWxkKGIsIHsnZScsIDB4MDMwMX0pOyAvLyAiQ09NQklOSU5HIEFDVVRF
IgotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9T
dHJpbmcoKSkuY29kZVBvaW50cygpLCB7J2UnLCAweDAzMDF9KSk7Ci0gICAgRVhQRUNUX1RSVUUo
Y29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlVW5pdHMo
KSwgeydlJywgMHgwMzAxfSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9u
cyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmll
dyhiLnRvU3RyaW5nKCkpfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9u
cyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlUG9pbnRzKCksIHsnZScsIDB4
MDMwMX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmll
dyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVVuaXRzKCksIHsnZScsIDB4MDMwMX0pKTsKKyAg
ICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5n
KCkudmFsdWUoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhiLnRvU3RyaW5nKCku
dmFsdWUoKSl9KSk7CiAKICAgICBidWlsZChiLCB7J2UnLCAweDAzMDEsIDB4MDMwNiwgJ2EnfSk7
IC8vICJDT01CSU5JTkcgQUNVVEUiICJDT01CSU5JTkcgQlJFVkUiCi0gICAgRVhQRUNUX1RSVUUo
Y29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlUG9pbnRz
KCksIHsnZScsIDB4MDMwMSwgMHgwMzA2LCAnYSd9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFy
ZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlVW5pdHMoKSwgeydl
JywgMHgwMzAxLCAweDAzMDYsICdhJ30pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0
ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwgewot
ICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCksIDMpLAotICAgICAgICBTdHJpbmdW
aWV3KGIuY2hhcmFjdGVyczE2KCkgKyAzLCAxKSwKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9v
cEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVBvaW50cygp
LCB7J2UnLCAweDAzMDEsIDB4MDMwNiwgJ2EnfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVM
b29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlVW5pdHMo
KSwgeydlJywgMHgwMzAxLCAweDAzMDYsICdhJ30pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJl
TG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuZ3JhcGhlbWVD
bHVzdGVycygpLCB7CisgICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKS52YWx1ZSgp
LCAzKSwKKyAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCkgKyAzLCAx
KSwKICAgICAgICAgfSkpOwogCiAgICAgYnVpbGQoYiwgezB4MTExMiwgMHgxMTZmLCAweDExYjYs
IDB4MTEwNywgMHgxMTYxLCAweDExQjh9KTsgLy8gS29yZWFuIGNvbWJpbmluZyBKYW1vCi0gICAg
RVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygp
KS5jb2RlUG9pbnRzKCksIHsweDExMTIsIDB4MTE2ZiwgMHgxMWI2LCAweDExMDcsIDB4MTE2MSwg
MHgxMUI4fSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdW
aWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRzKCksIHsweDExMTIsIDB4MTE2ZiwgMHgxMWI2LCAw
eDExMDcsIDB4MTE2MSwgMHgxMUI4fSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRl
cmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7Ci0g
ICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSwgMyksCi0gICAgICAgIFN0cmluZ1Zp
ZXcoYi5jaGFyYWN0ZXJzMTYoKSArIDMsIDMpfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVM
b29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlUG9pbnRz
KCksIHsweDExMTIsIDB4MTE2ZiwgMHgxMWI2LCAweDExMDcsIDB4MTE2MSwgMHgxMUI4fSkpOwor
ICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJp
bmcoKS52YWx1ZSgpKS5jb2RlVW5pdHMoKSwgezB4MTExMiwgMHgxMTZmLCAweDExYjYsIDB4MTEw
NywgMHgxMTYxLCAweDExQjh9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRp
b25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwg
eworICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSwgMyksCisgICAg
ICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKS52YWx1ZSgpICsgMywgMyl9KSk7CiB9CiAK
IHN0YXRpYyBWZWN0b3I8U3RyaW5nPiB2ZWN0b3JGcm9tU3BsaXRSZXN1bHQoY29uc3QgU3RyaW5n
Vmlldzo6U3BsaXRSZXN1bHQmIHN1YnN0cmluZ3MpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcAppbmRleCBkY2NlNDY4
Li4wMzgzODY0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Q29udGVudEV4dGVuc2lvbnMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKQEAgLTEyMDksMTUgKzEyMDksMTggQEAgVEVTVF9G
KENvbnRlbnRFeHRlbnNpb25UZXN0LCBXaWRlTkZBKQogICAgICAgICB9CiAgICAgfQogICAgIHJ1
bGVMaXN0LmFwcGVuZCgnXScpOwotICAgIAotICAgIGF1dG8gYmFja2VuZCA9IG1ha2VCYWNrZW5k
KHJ1bGVMaXN0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAKLSAgICB0ZXN0UmVxdWVzdChi
YWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy9BQUEiKSwgeyBD
b250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6Q1NTRGlzcGxheU5vbmVTZWxlY3RvciB9KTsK
LSAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Vi
a2l0Lm9yZy9ZQUEiKSwgeyBDb250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6Q1NTRGlzcGxh
eU5vbmVTZWxlY3RvciB9KTsKLSAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRS
ZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy9aQUEiKSwgeyB9LCAwKTsKLSAgICB0ZXN0UmVxdWVz
dChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy9MQUEvQUFB
IiksIHsgfSwgMCk7Ci0gICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVz
dCgiaHR0cDovL3dlYmtpdC5vcmcvTEFBL01BQSIpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rp
b25UeXBlOjpDU1NEaXNwbGF5Tm9uZVNlbGVjdG9yIH0sIDApOwotICAgIHRlc3RSZXF1ZXN0KGJh
Y2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnLyIpLCB7IH0pOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHJ1bGVMaXN0LnRvU3RyaW5nKCkpIHsKKyAgICAgICAgYXV0
byBiYWNrZW5kID0gbWFrZUJhY2tlbmQoc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKworICAgICAg
ICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0
Lm9yZy9BQUEiKSwgeyBDb250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6Q1NTRGlzcGxheU5v
bmVTZWxlY3RvciB9KTsKKyAgICAgICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50
UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvWUFBIiksIHsgQ29udGVudEV4dGVuc2lvbnM6OkFj
dGlvblR5cGU6OkNTU0Rpc3BsYXlOb25lU2VsZWN0b3IgfSk7CisgICAgICAgIHRlc3RSZXF1ZXN0
KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL1pBQSIpLCB7
IH0sIDApOworICAgICAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0
KCJodHRwOi8vd2Via2l0Lm9yZy9MQUEvQUFBIiksIHsgfSwgMCk7CisgICAgICAgIHRlc3RSZXF1
ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL0xBQS9N
QUEiKSwgeyBDb250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6Q1NTRGlzcGxheU5vbmVTZWxl
Y3RvciB9LCAwKTsKKyAgICAgICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVx
dWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvIiksIHsgfSk7CisgICAgfSBlbHNlCisgICAgICAgIENS
QVNIKCk7CiB9CiAgICAgCiAjaWZkZWYgTkRFQlVHCkBAIC0xMjQ3LDcgKzEyNTAsMTAgQEAgVEVT
VF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBMYXJnZUp1bXBzKQogICAgICAgICAgICAgICAgICAg
ICBwYXR0ZXJuLmFwcGVuZChjMik7CiAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5k
KGMzKTsKICAgICAgICAgICAgICAgICAgICAgcGF0dGVybi5hcHBlbmQoYzQpOwotICAgICAgICAg
ICAgICAgICAgICBFWFBFQ1RfRVEoQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6
UGFyc2VTdGF0dXM6Ok9rLCBwYXJzZXIuYWRkUGF0dGVybihwYXR0ZXJuLnRvU3RyaW5nKCksIHRy
dWUsIHBhdHRlcm5JZCsrKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IHBhdHRlcm4udG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUShD
b250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2ssIHBhcnNl
ci5hZGRQYXR0ZXJuKCpzdHJpbmcsIHRydWUsIHBhdHRlcm5JZCsrKSk7CisgICAgICAgICAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0xMzA4LDE3ICsxMzE0LDIwIEBA
IFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgTGFyZ2VKdW1wcykKICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhdHRlcm4uYXBwZW5kKCd4Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBhdXRvIG1h
dGNoZXMgPSBpbnRlcnByZXRlci5pbnRlcnByZXQocGF0dGVybi50b1N0cmluZygpLnV0ZjgoKSwg
MCk7Ci0gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoKGMxICsgYzIgKyBjMyArIGM0KSAlIDQp
IHsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgICAgICAgICAgICAg
Y29tcGFyZUNvbnRlbnRzKG1hdGNoZXMsIHsgfSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAgICAgICAgICBj
YXNlIDI6Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgMzoKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbXBhcmVDb250ZW50cyhtYXRjaGVzLCB7cGF0dGVybklkfSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSBwYXR0ZXJuLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGF1dG8gbWF0Y2hlcyA9IGludGVycHJldGVyLmludGVycHJldChzdHJpbmct
PnV0ZjgoKSwgMCk7CisgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKChjMSArIGMyICsg
YzMgKyBjNCkgJSA0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29tcGFyZUNvbnRlbnRzKG1hdGNoZXMsIHsgfSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBj
YXNlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAg
ICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGFyZUNvbnRl
bnRzKG1hdGNoZXMsIHtwYXR0ZXJuSWR9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgICAgICAg
ICBwYXR0ZXJuSWQrKzsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC0xMzQ4
LDEzICsxMzU3LDE5IEBAIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgRGVlcE5GQSkKICAg
ICBTdHJpbmdCdWlsZGVyIGxvdHNPZkFzOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBz
aXplOyArK2kpCiAgICAgICAgIGxvdHNPZkFzLmFwcGVuZCgnQScpOwotICAgIEVYUEVDVF9FUShD
b250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2ssIHBhcnNl
ci5hZGRQYXR0ZXJuKGxvdHNPZkFzLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgZmFsc2UsIDAp
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBsb3RzT2ZBcy50b1N0cmluZygpKQorICAgICAgICBF
WFBFQ1RfRVEoQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6
Ok9rLCBwYXJzZXIuYWRkUGF0dGVybihzdHJpbmctPnV0ZjgoKS5kYXRhKCksIGZhbHNlLCAwKSk7
CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIAogICAgIC8vIEZJWE1FOiBZYXJyIG91
Z2h0IHRvIGJlIGFibGUgdG8gaGFuZGxlIDJNQiByZWd1bGFyIGV4cHJlc3Npb25zLgogICAgIFN0
cmluZ0J1aWxkZXIgdG9vTWFueUFzOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXpl
ICogMjA7ICsraSkKICAgICAgICAgdG9vTWFueUFzLmFwcGVuZCgnQScpOwotICAgIEVYUEVDVF9F
UShDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6WWFyckVy
cm9yLCBwYXJzZXIuYWRkUGF0dGVybih0b29NYW55QXMudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgp
LCBmYWxzZSwgMCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHRvb01hbnlBcy50b1N0cmluZygp
KQorICAgICAgICBFWFBFQ1RfRVEoQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6
UGFyc2VTdGF0dXM6OllhcnJFcnJvciwgcGFyc2VyLmFkZFBhdHRlcm4oc3RyaW5nLT51dGY4KCku
ZGF0YSgpLCBmYWxzZSwgMCkpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICAKICAg
ICBTdHJpbmdCdWlsZGVyIG5lc3RlZEdyb3VwczsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgc2l6ZTsgKytpKQpAQCAtMTQ5MCwxNyArMTUwNSwyMiBAQCBURVNUX0YoQ29udGVudEV4dGVu
c2lvblRlc3QsIEludmFsaWRKU09OKQogICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlv
blwiOntcInR5cGVcIjpcIm5vdGlmeVwiLFwibm90aWZpY2F0aW9uXCI6W119LFwidHJpZ2dlclwi
OntcInVybC1maWx0ZXJcIjpcIi4qXCJ9fV0iLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4
dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZE5vdGlmaWNhdGlvbik7CiAgICAgY2hlY2tDb21waWxl
ckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwibm90aWZ5XCIsXCJub3RpZmljYXRpb25c
IjpcImhlcmUncyBteSBub3RpZmljYXRpb25cIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwi
OlwiLipcIn19XSIsIHsgfSk7CiAgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6
e1widHlwZVwiOlwibm90aWZ5XCIsXCJub3RpZmljYXRpb25cIjpcIlxcdTEyMzRcIn0sXCJ0cmln
Z2VyXCI6e1widXJsLWZpbHRlclwiOlwiLipcIn19XSIsIHsgfSk7Ci0gICAgCi0gICAgU3RyaW5n
QnVpbGRlciBydWxlczsKLSAgICBydWxlcy5hcHBlbmQoIlsiKTsKLSAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgNDk5OTk7ICsraSkKLSAgICAgICAgcnVsZXMuYXBwZW5kKCJ7XCJhY3Rpb25c
Ijp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJhXCJ9
fSwiKTsKLSAgICBTdHJpbmcgcnVsZXM1MDAwMCA9IHJ1bGVzLnRvU3RyaW5nKCk7Ci0gICAgU3Ry
aW5nIHJ1bGVzNTAwMDEgPSBydWxlcy50b1N0cmluZygpOwotICAgIHJ1bGVzNTAwMDAuYXBwZW5k
KCJ7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmls
dGVyXCI6XCJhXCJ9fV0iKTsKLSAgICBydWxlczUwMDAxLmFwcGVuZCgie1wiYWN0aW9uXCI6e1wi
dHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiYVwifX0se1wi
YWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwi
OlwiYVwifX1dIik7Ci0gICAgY2hlY2tDb21waWxlckVycm9yKHJ1bGVzNTAwMDAudXRmOCgpLmRh
dGEoKSwgeyB9KTsKLSAgICBjaGVja0NvbXBpbGVyRXJyb3IocnVsZXM1MDAwMS51dGY4KCkuZGF0
YSgpLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OVG9vTWFu
eVJ1bGVzKTsKKworICAgIHsKKyAgICAgICAgU3RyaW5nQnVpbGRlciBydWxlczsKKyAgICAgICAg
cnVsZXMuYXBwZW5kKCJbIik7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCA0OTk5
OTsgKytpKQorICAgICAgICAgICAgcnVsZXMuYXBwZW5kKCJ7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6
XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJhXCJ9fSwiKTsKKyAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gcnVsZXMudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgU3Ry
aW5nIHJ1bGVzNTAwMDAgPSAqc3RyaW5nOworICAgICAgICAgICAgU3RyaW5nIHJ1bGVzNTAwMDEg
PSAqc3RyaW5nOworICAgICAgICAgICAgcnVsZXM1MDAwMC5hcHBlbmQoIntcImFjdGlvblwiOntc
InR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcImFcIn19XSIp
OworICAgICAgICAgICAgcnVsZXM1MDAwMS5hcHBlbmQoIntcImFjdGlvblwiOntcInR5cGVcIjpc
ImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcImFcIn19LHtcImFjdGlvblwi
OntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcImFcIn19
XSIpOworICAgICAgICAgICAgY2hlY2tDb21waWxlckVycm9yKHJ1bGVzNTAwMDAudXRmOCgpLmRh
dGEoKSwgeyB9KTsKKyAgICAgICAgICAgIGNoZWNrQ29tcGlsZXJFcnJvcihydWxlczUwMDAxLnV0
ZjgoKS5kYXRhKCksIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpT
T05Ub29NYW55UnVsZXMpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7Cisg
ICAgfQogICAgIAogICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVc
IjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixc
ImlmLWRvbWFpblwiOnt9fX1dIiwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25F
cnJvcjo6SlNPTkludmFsaWRDb25kaXRpb25MaXN0KTsKICAgICBjaGVja0NvbXBpbGVyRXJyb3Io
Ilt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmls
dGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJpZi1kb21haW5cIjpbNV19fV0iLCBDb250ZW50RXh0ZW5z
aW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZENvbmRpdGlvbkxpc3QpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9y
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAK
aW5kZXggNWYxZGM4Yi4uZTk0ZWZjNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCkBAIC0xMDcsNyArMTA3LDkgQEAgc3RhdGljIFN0
cmluZyBjcmVhdGVDb21tYW5kKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBwYXls
b2FkKQogICAgIGNvbW1hbmQuYXBwZW5kTGl0ZXJhbCgiXCIgPiAiKTsKICAgICBjb21tYW5kLmFw
cGVuZChwYXRoKTsKIAotICAgIHJldHVybiBjb21tYW5kLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gY29tbWFuZC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIHJlYWRDb250ZW50c09mRmlsZShjb25z
dCBTdHJpbmcmIHBhdGgpCkBAIC0yNjcsMTAgKzI2OSwxMyBAQCBURVNUX0YoRmlsZU1vbml0b3JU
ZXN0LCBEZXRlY3REZWxldGlvbikKICAgICAgICAgY29tbWFuZC5hcHBlbmRMaXRlcmFsKCJybSAt
ZiAiKTsKICAgICAgICAgY29tbWFuZC5hcHBlbmQodGVtcEZpbGVQYXRoKCkpOwogCi0gICAgICAg
IGF1dG8gcmMgPSBzeXN0ZW0oY29tbWFuZC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAg
ICAgICBBU1NFUlRfTkUocmMsIC0xKTsKLSAgICAgICAgaWYgKHJjID09IC0xKQotICAgICAgICAg
ICAgZGlkRmluaXNoID0gdHJ1ZTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gY29tbWFuZC50
b1N0cmluZygpKSB7CisgICAgICAgICAgICBhdXRvIHJjID0gc3lzdGVtKHN0cmluZy0+dXRmOCgp
LmRhdGEoKSk7CisgICAgICAgICAgICBBU1NFUlRfTkUocmMsIC0xKTsKKyAgICAgICAgICAgIGlm
IChyYyA9PSAtMSkKKyAgICAgICAgICAgICAgICBkaWRGaW5pc2ggPSB0cnVlOworICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfSk7CiAKICAgICBVdGlsOjpydW4oJmRp
ZEZpbmlzaCk7CkBAIC0zMjQsMTAgKzMyOSwxMyBAQCBURVNUX0YoRmlsZU1vbml0b3JUZXN0LCBE
ZXRlY3RDaGFuZ2VBbmRUaGVuRGVsZXRlKQogICAgICAgICBjb21tYW5kLmFwcGVuZExpdGVyYWwo
InJtIC1mICIpOwogICAgICAgICBjb21tYW5kLmFwcGVuZCh0ZW1wRmlsZVBhdGgoKSk7CiAKLSAg
ICAgICAgYXV0byByYyA9IHN5c3RlbShjb21tYW5kLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7
Ci0gICAgICAgIEFTU0VSVF9ORShyYywgLTEpOwotICAgICAgICBpZiAocmMgPT0gLTEpCi0gICAg
ICAgICAgICBkaWRGaW5pc2ggPSB0cnVlOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBjb21t
YW5kLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIGF1dG8gcmMgPSBzeXN0ZW0oc3RyaW5nLT51
dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShyYywgLTEpOworICAgICAgICAg
ICAgaWYgKHJjID09IC0xKQorICAgICAgICAgICAgICAgIGRpZEZpbmlzaCA9IHRydWU7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9KTsKIAogICAgIFV0aWw6OnJ1
bigmZGlkRmluaXNoKTsKQEAgLTM2MywxMCArMzcxLDEzIEBAIFRFU1RfRihGaWxlTW9uaXRvclRl
c3QsIERldGVjdERlbGV0ZUJ1dE5vdFN1YnNlcXVlbnRDaGFuZ2UpCiAgICAgICAgIGNvbW1hbmQu
YXBwZW5kTGl0ZXJhbCgicm0gLWYgIik7CiAgICAgICAgIGNvbW1hbmQuYXBwZW5kKHRlbXBGaWxl
UGF0aCgpKTsKIAotICAgICAgICBhdXRvIHJjID0gc3lzdGVtKGNvbW1hbmQudG9TdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgQVNTRVJUX05FKHJjLCAtMSk7Ci0gICAgICAgIGlmIChy
YyA9PSAtMSkKLSAgICAgICAgICAgIGRpZEZpbmlzaCA9IHRydWU7CisgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IGNvbW1hbmQudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgYXV0byByYyA9IHN5
c3RlbShzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgQVNTRVJUX05FKHJjLCAt
MSk7CisgICAgICAgICAgICBpZiAocmMgPT0gLTEpCisgICAgICAgICAgICAgICAgZGlkRmluaXNo
ID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0pOwog
CiAgICAgVXRpbDo6cnVuKCZkaWRGaW5pc2gpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0xvZ2dpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0xvZ2dpbmcuY3BwCmluZGV4IDFlNGMzNDIuLjdkZWRhZDIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Mb2dnaW5nLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTG9nZ2luZy5jcHAKQEAgLTk1LDcgKzk1LDkg
QEAgcHVibGljOgogICAgICAgICB3aGlsZSAoKGxpbmUgPSBmZ2V0cyhidWZmZXIsIHNpemVvZihi
dWZmZXIpLCBtX3N0ZGVycikpKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChsaW5lKTsKIAot
ICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
ICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX2xvZ2dlci5nZXQoKTsgfQpAQCAtMzQwLDE1ICszNDIsMTggQEAgVEVT
VF9GKExvZ2dpbmdUZXN0LCBMb2dnZXJIZWxwZXIpCiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFs
KCJMb2dnaW5nVGVzdDo6VGVzdEJvZHkoIik7CiAgICAgYXBwZW5kVW5zaWduZWQ2NEFzSGV4KHJl
aW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihsb2dJZGVudGlmaWVyKCkpLCBidWlsZGVyKTsKICAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIikiKTsKLSAgICBTdHJpbmcgc2lnbmF0dXJlID0gYnVp
bGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkgeworICAgICAgICBTdHJpbmcgc2lnbmF0dXJlID0gKnN0cmluZzsKIAotICAgIEFMV0FZU19M
T0coTE9HSURFTlRJRklFUik7Ci0gICAgRVhQRUNUX1RSVUUodGhpcy0+b3V0cHV0KCkuY29udGFp
bnMoc2lnbmF0dXJlLCBmYWxzZSkpOworICAgICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIp
OworICAgICAgICBFWFBFQ1RfVFJVRSh0aGlzLT5vdXRwdXQoKS5jb250YWlucyhzaWduYXR1cmUs
IGZhbHNlKSk7CiAKLSAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICJXZWxjb21lIGJhY2si
LCAiIG15IGZyaWVuZHMiLCAiIHRvIHRoZSBzaG93IiwgIiB0aGF0IG5ldmVyIGVuZHMiKTsKLSAg
ICBTdHJpbmcgcmVzdWx0ID0gdGhpcy0+b3V0cHV0KCk7Ci0gICAgRVhQRUNUX1RSVUUocmVzdWx0
LmNvbnRhaW5zKHNpZ25hdHVyZSwgZmFsc2UpKTsKLSAgICBFWFBFQ1RfVFJVRShyZXN1bHQuY29u
dGFpbnMoInRvIHRoZSBzaG93IHRoYXQgbmV2ZXIiLCBmYWxzZSkpOworICAgICAgICBBTFdBWVNf
TE9HKExPR0lERU5USUZJRVIsICJXZWxjb21lIGJhY2siLCAiIG15IGZyaWVuZHMiLCAiIHRvIHRo
ZSBzaG93IiwgIiB0aGF0IG5ldmVyIGVuZHMiKTsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IHRo
aXMtPm91dHB1dCgpOworICAgICAgICBFWFBFQ1RfVFJVRShyZXN1bHQuY29udGFpbnMoc2lnbmF0
dXJlLCBmYWxzZSkpOworICAgICAgICBFWFBFQ1RfVFJVRShyZXN1bHQuY29udGFpbnMoInRvIHRo
ZSBzaG93IHRoYXQgbmV2ZXIiLCBmYWxzZSkpOworICAgIH0gZWxzZQorICAgICAgICBDUkFTSCgp
OwogCiAgICAgV1RGU2V0TG9nQ2hhbm5lbExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVs
V2FybmluZyk7CiAKQEAgLTM3MSwxMCArMzc2LDExIEBAIHB1YmxpYzoKIAogICAgIFN0cmluZyBs
b2coKQogICAgIHsKLSAgICAgICAgU3RyaW5nIGxvZyA9IG1fbG9nQnVmZmVyLnRvU3RyaW5nKCk7
Ci0gICAgICAgIG1fbG9nQnVmZmVyLmNsZWFyKCk7Ci0KLSAgICAgICAgcmV0dXJuIGxvZzsKKyAg
ICAgICAgaWYgKGF1dG8gbG9nID0gbV9sb2dCdWZmZXIudG9TdHJpbmcoKSkgeworICAgICAgICAg
ICAgbV9sb2dCdWZmZXIuY2xlYXIoKTsKKyAgICAgICAgICAgIHJldHVybiBsb2c7CisgICAgICAg
IH0KKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBXVEZMb2dDaGFubmVsIGNoYW5uZWwo
KSBjb25zdCB7IHJldHVybiBtX2xhc3RDaGFubmVsOyB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVGV4dENvZGVjLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9UZXh0Q29kZWMuY3BwCmluZGV4IGZkMDUwNTAuLjllNTU1MzAgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9UZXh0Q29kZWMuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9UZXh0Q29kZWMuY3BwCkBA
IC05OCw3ICs5OCw5IEBAIHN0YXRpYyBjb25zdCBjaGFyKiB0ZXN0RGVjb2RlKGNvbnN0IGNoYXIq
IGVuY29kaW5nTmFtZSwgc3RkOjppbml0aWFsaXplcl9saXN0PGNvCiAgICAgICAgIGlmIChzYXdF
cnJvcikKICAgICAgICAgICAgIHJlc3VsdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIEVSUk9SIik7
CiAgICAgfQotICAgIHJldHVybiBlc2NhcGVOb25BU0NJSVByaW50YWJsZUNoYXJhY3RlcnMocmVz
dWx0QnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHRCdWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBlc2NhcGVOb25BU0NJSVByaW50YWJsZUNo
YXJhY3RlcnMoKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogVEVTVChUZXh0Q29kZWMsIFVU
RjgpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1dURlN0cmluZ1V0aWxpdGllcy5o
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9XVEZTdHJpbmdVdGlsaXRpZXMuaAppbmRleCBlY2JhOWM0
Li5mNWQ0MWVkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1dURlN0cmluZ1V0aWxp
dGllcy5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvV1RGU3RyaW5nVXRpbGl0aWVzLmgKQEAg
LTUxLDUgKzUxLDcgQEAgc3RhdGljIFN0cmluZyB1dGYxNlN0cmluZyhjb25zdCBjaGFyMTZfdCAo
JnVybClbbGVuZ3RoXSkKICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eShsZW5ndGggLSAxKTsK
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbmd0aCAtIDE7ICsraSkKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoc3RhdGljX2Nhc3Q8VUNoYXI+KHVybFtpXSkpOwotICAgIHJldHVybiBidWls
ZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2Uu
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2UuY3BwCmluZGV4IDA1NTU0MTguLjUwYjEyMTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5j
cHAKQEAgLTEwNiw3ICsxMDYsOSBAQCBzdGF0aWMgV1RGOjpTdHJpbmcgZHVtcFBhdGgoSlNHbG9i
YWxDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIG5vZGVWYWx1ZSkKICAgICAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmQoZHVtcFBhdGgoY29udGV4dCwgKEpTT2JqZWN0UmVmKXBhcmVudE5v
ZGUpKTsKICAgICB9CiAKLSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFdURjo6U3RyaW5nIGR1bXBQ
YXRoKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIHdvcmxkLCBX
S0J1bmRsZU5vZGVIYW5kbGVSZWYgbm9kZSkKQEAgLTE1Niw3ICsxNTgsOSBAQCBzdGF0aWMgV1RG
OjpTdHJpbmcgcmFuZ2VUb1N0cihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVTY3JpcHRX
b3JsZFJlZiB3b3JsZAogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKGVuZE9mZnNldCk7
CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgb2YgIik7CiAgICAgc3RyaW5nQnVp
bGRlci5hcHBlbmQoZHVtcFBhdGgoY29udGV4dCwgZW5kTm9kZU9iamVjdCkpOwotICAgIHJldHVy
biBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5n
QnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogCiBzdGF0aWMgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IE5hdmlnYXRpb25UeXBlVG9T
dHJpbmcoV0tGcmFtZU5hdmlnYXRpb25UeXBlIHR5cGUpCkBAIC0xODUsNyArMTg5LDkgQEAgc3Rh
dGljIFdURjo6U3RyaW5nIHN0eWxlRGVjVG9TdHIoV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9u
UmVmIHN0eWxlKQogICAgIC8vIHRoZSBlZGl0aW5nIGNsaWVudCBpZiB0aGUgc3R5bGluZyBvcGVy
YXRpb24gc291cmNlIGlzIENvbW1hbmRGcm9tRE9NIG9yIENvbW1hbmRGcm9tRE9NV2l0aFVzZXJJ
bnRlcmZhY2UuCiAgICAgU3RyaW5nQnVpbGRlciBzdHJpbmdCdWlsZGVyOwogICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPERPTUNTU1N0eWxlRGVjbGFyYXRpb24gQUREUkVTUz4iKTsK
LSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFdURjo6U3RyaW5nIHNlY3VyaXR5T3JpZ2luVG9TdHIo
V0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4pCkBAIC0xOTksNyArMjA1LDkgQEAgc3RhdGljIFdU
Rjo6U3RyaW5nIHNlY3VyaXR5T3JpZ2luVG9TdHIoV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4p
CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIoV0tTZWN1cml0eU9yaWdpbkdldFBvcnQo
b3JpZ2luKSk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ30nKTsKIAotICAgIHJldHVybiBz
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiBzdGF0aWMgV1RGOjpTdHJpbmcgZnJhbWVUb1N0cihXS0J1bmRsZUZyYW1lUmVmIGZyYW1l
KQpAQCAtMjIzLDcgKzIzMSw5IEBAIHN0YXRpYyBXVEY6OlN0cmluZyBmcmFtZVRvU3RyKFdLQnVu
ZGxlRnJhbWVSZWYgZnJhbWUpCiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVy
YWwoImZyYW1lIChhbm9ueW1vdXMpIik7CiAgICAgfQogICAgIAotICAgIHJldHVybiBzdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBz
dGF0aWMgaW5saW5lIGJvb2wgaXNMb2NhbEZpbGVTY2hlbWUoV0tTdHJpbmdSZWYgc2NoZW1lKQpA
QCAtNDc2LDcgKzQ4NiwxMCBAQCBzdGF0aWMgdm9pZCBkdW1wTG9hZEV2ZW50KFdLQnVuZGxlRnJh
bWVSZWYgZnJhbWUsIGNvbnN0IGNoYXIqIGV2ZW50TmFtZSkKICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZExpdGVyYWwoIiAtICIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGV2ZW50TmFtZSk7
CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgSW5qZWN0ZWRCdW5kbGU6OnNp
bmdsZXRvbigpLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIEluamVjdGVk
QnVuZGxlOjpzaW5nbGV0b24oKS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAg
ICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGR1bXBSZXF1ZXN0RGVzY3JpcHRp
b25TdWl0YWJsZUZvclRlc3RSZXN1bHQoV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3QsIFN0cmluZ0J1
aWxkZXImIHN0cmluZ0J1aWxkZXIpCkBAIC05NDAsNyArOTUzLDEwIEBAIHZvaWQgSW5qZWN0ZWRC
dW5kbGVQYWdlOjpkdW1wKCkKICAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLnNldFJlcGFpbnRS
ZWN0cyhhZG9wdFdLKFdLQnVuZGxlUGFnZUNvcHlUcmFja2VkUmVwYWludFJlY3RzKG1fcGFnZSkp
LmdldCgpKTsKICAgICB9CiAKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOwor
ICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICBpbmplY3RlZEJ1bmRsZS5kb25lKCk7CiB9
CiAKQEAgLTk4OCw3ICsxMDA0LDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNl
aXZlVGl0bGVGb3JGcmFtZShXS1N0cmluZ1JlZiB0aXRsZSwgV0tCdW5kbGVGcmFtCiAgICAgICAg
IHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiJ1xuIik7CiAgICAgfQogCi0gICAgaW5qZWN0
ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRC
dW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9
CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRDbGVhcldpbmRvd0ZvckZyYW1lKFdLQnVu
ZGxlRnJhbWVSZWYgZnJhbWUsIFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgd29ybGQpCkBAIC0xMDQz
LDcgKzEwNjIsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxQZXJmb3JtQ2xpZW50
UmVkaXJlY3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnUKICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZExpdGVyYWwoIiAtIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTDogIik7CiAg
ICAgc3RyaW5nQnVpbGRlci5hcHBlbmQocGF0aFN1aXRhYmxlRm9yVGVzdFJlc3VsdCh1cmwpKTsK
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiBcbiIpOwotICAgIGluamVjdGVkQnVu
ZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxl
Lm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2
b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1l
KFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUgdHlw
ZSkKQEAgLTEwNzcsNyArMTA5OSwxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmlu
aXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSkKICAgICAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgLSBoYXMgIik7CiAgICAgICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kTnVtYmVyKHBlbmRpbmdGcmFtZVVubG9hZEV2ZW50cyk7CiAgICAgICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIG9udW5sb2FkIGhhbmRsZXIocylcbiIpOwotICAg
ICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7
CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogfQogCkBAIC0xMTUwLDcgKzExNzUsMTAg
QEAgV0tVUkxSZXF1ZXN0UmVmIEluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFNlbmRSZXF1ZXN0Rm9y
RnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRM
aXRlcmFsKCIgcmVkaXJlY3RSZXNwb25zZSAiKTsKICAgICAgICAgZHVtcFJlc3BvbnNlRGVzY3Jp
cHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQocmVzcG9uc2UsIHN0cmluZ0J1aWxkZXIsIGluamVj
dGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcEFsbEhUVFBSZWRpcmVjdGVkUmVzcG9u
c2VIZWFkZXJzKCkpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAg
ICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOwor
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIGlmIChpbmplY3RlZEJ1bmRsZS5p
c1Rlc3RSdW5uaW5nKCkgJiYgaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT53aWxsU2VuZFJl
cXVlc3RSZXR1cm5zTnVsbCgpKQpAQCAtMTE4Niw3ICsxMjE0LDEwIEBAIFdLVVJMUmVxdWVzdFJl
ZiBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxTZW5kUmVxdWVzdEZvckZyYW1lKFdLQnVuZGxlUGFn
ZVJlZiBwYWdlCiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIkJsb2Nr
ZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCAiKTsKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIu
YXBwZW5kKHRvV1RGU3RyaW5nKHVybFN0cmluZykpOwogICAgICAgICAgICAgc3RyaW5nQnVpbGRl
ci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBz
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUu
b3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBD
UkFTSCgpOwogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0KICAgICB9CkBA
IC0xMjE1LDcgKzEyNDYsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVS
ZXNwb25zZUZvclJlc291cmNlKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0IKICAgICAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgLSBkaWRSZWNlaXZlUmVzcG9uc2UgIik7CiAgICAg
ICAgIGR1bXBSZXNwb25zZURlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KHJlc3BvbnNl
LCBzdHJpbmdCdWlsZGVyKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0g
ICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygp
KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKIApAQCAtMTIzOSw3ICsxMjczLDEw
IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlUmVzcG9uc2VGb3JSZXNvdXJj
ZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCCiAKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgn
XG4nKTsKIAotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0
cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQor
ICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVjZWl2
ZUNvbnRlbnRMZW5ndGhGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVS
ZWYsIHVpbnQ2NF90LCB1aW50NjRfdCkKQEAgLTEyNTgsNyArMTI5NSwxMCBAQCB2b2lkIEluamVj
dGVkQnVuZGxlUGFnZTo6ZGlkRmluaXNoTG9hZEZvclJlc291cmNlKFdLQnVuZGxlUGFnZVJlZiwg
V0tCdW5kbGVGcmFtZQogICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsKICAgICBkdW1w
UmVzb3VyY2VVUkwoaWRlbnRpZmllciwgc3RyaW5nQnVpbGRlcik7CiAgICAgc3RyaW5nQnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCIgLSBkaWRGaW5pc2hMb2FkaW5nXG4iKTsKLSAgICBpbmplY3RlZEJ1
bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRs
ZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAog
dm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZhaWxMb2FkRm9yUmVzb3VyY2UoV0tCdW5kbGVQ
YWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCB1aW50NjRfdCBpZGVudGlmaWVyLCBXS0Vycm9yUmVm
IGVycm9yKQpAQCAtMTI3Niw3ICsxMzE2LDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpk
aWRGYWlsTG9hZEZvclJlc291cmNlKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlCiAK
ICAgICBkdW1wRXJyb3JEZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChlcnJvciwgc3Ry
aW5nQnVpbGRlcik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgaW5qZWN0
ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRC
dW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9
CiAKIGJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRDYWNoZVJlc3BvbnNlKFdLQnVuZGxl
UGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgdWludDY0X3QgaWRlbnRpZmllcikKQEAgLTEyOTEs
NyArMTMzNCwxMCBAQCBib29sIEluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkQ2FjaGVSZXNwb25z
ZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsCiAgICAgU3RyaW5nQnVpbGRlciBz
dHJpbmdCdWlsZGVyOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKGlkZW50aWZpZXIp
OwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIC0gd2lsbENhY2hlUmVzcG9uc2U6
IGNhbGxlZFxuIik7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBl
bHNlCisgICAgICAgIENSQVNIKCk7CiAKICAgICAvLyBUaGUgZGVmYXVsdCBiZWhhdmlvciBpcyB0
aGUgY2FjaGUgdGhlIHJlc3BvbnNlLgogICAgIHJldHVybiB0cnVlOwpAQCAtMTMzNSw3ICsxMzgx
LDEwIEBAIFdLQnVuZGxlUGFnZVBvbGljeUFjdGlvbiBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV0tCCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJuYWxseSAtICIpOwogICAgICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZChXS0J1bmRsZU5hdmlnYXRpb25BY3Rpb25HZXRTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzKG5hdmlnYXRpb25BY3Rpb24pID8gInllcyIgOiAibm8iKTsKICAgICAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1
dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5n
ID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUu
b3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsK
ICAgICB9CiAKICAgICBpZiAoIWluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+aXNQb2xpY3lE
ZWxlZ2F0ZUVuYWJsZWQoKSkKQEAgLTEzNjMsNyArMTQxMiwxMCBAQCBXS0J1bmRsZVBhZ2VQb2xp
Y3lBY3Rpb24gSW5qZWN0ZWRCdW5kbGVQYWdlOjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKFdLQgogICAgIH0KIAogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIGlu
amVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGluamVj
dGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgp
OwogCiAgICAgaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5ub3RpZnlEb25lKCk7CiAKQEAg
LTEzODQsNyArMTQzNiwxMCBAQCBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb24gSW5qZWN0ZWRCdW5k
bGVQYWdlOjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXS0J1bmRsZVBhZwogICAgICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIlBvbGljeSBkZWxlZ2F0ZTogcmVzb3VyY2UgaXMgYW4g
YXR0YWNobWVudCwgc3VnZ2VzdGVkIGZpbGUgbmFtZSBcJyIpOwogICAgICAgICBzdHJpbmdCdWls
ZGVyLmFwcGVuZCh0b1dURlN0cmluZyhmaWxlbmFtZSkpOwogICAgICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZExpdGVyYWwoIlwnXG4iKTsKLSAgICAgICAgSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRv
bigpLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgSW5qZWN0
ZWRCdW5kbGU6OnNpbmdsZXRvbigpLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgaWYgKGluamVjdGVkQnVuZGxlLnRl
c3RSdW5uZXIoKSAmJiBpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZERlY2lkZVJl
c3BvbnNlUG9saWN5QWZ0ZXJEZWxheSgpKQpAQCAtMTQ4MSwxMCArMTUzNiwxMyBAQCB2b2lkIElu
amVjdGVkQnVuZGxlUGFnZTo6d2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUoV0tTdHJpbmdSZWYgbWVz
c2FnZSwgdWludDMyX3QgbAogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKG1lc3NhZ2VTdHJpbmcp
OwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwogCi0gICAgaWYgKGluamVjdGVkQnVu
ZGxlLmR1bXBKU0NvbnNvbGVMb2dJblN0ZEVycigpKQotICAgICAgICBpbmplY3RlZEJ1bmRsZS5k
dW1wVG9TdGRFcnIoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKLSAgICBlbHNlCi0gICAgICAg
IGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAg
aWYgKGluamVjdGVkQnVuZGxlLmR1bXBKU0NvbnNvbGVMb2dJblN0ZEVycigpKQorICAgICAgICAg
ICAgaW5qZWN0ZWRCdW5kbGUuZHVtcFRvU3RkRXJyKCpzdHJpbmcpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIH0gZWxz
ZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFNl
dFN0YXR1c2JhclRleHQoV0tTdHJpbmdSZWYgc3RhdHVzYmFyVGV4dCkKQEAgLTE1MDAsNyArMTU1
OCwxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFNldFN0YXR1c2JhclRleHQoV0tT
dHJpbmdSZWYgc3RhdHVzYmFyVGV4dCkKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwo
IlVJIERFTEVHQVRFIFNUQVRVUyBDQUxMQkFDSzogc2V0U3RhdHVzVGV4dDoiKTsKICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhzdGF0dXNiYXJUZXh0KSk7CiAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5n
KTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQ
YWdlOjp3aWxsUnVuSmF2YVNjcmlwdEFsZXJ0KFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLQnVuZGxl
RnJhbWVSZWYpCkBAIC0xNTEzLDcgKzE1NzQsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6
OndpbGxSdW5KYXZhU2NyaXB0QWxlcnQoV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tCdW5kbGVGcmEK
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIkFMRVJUOiAiKTsKICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhtZXNzYWdlKSk7CiAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmQoJ1xuJyk7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBl
bHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxs
UnVuSmF2YVNjcmlwdENvbmZpcm0oV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tCdW5kbGVGcmFtZVJl
ZikKQEAgLTE1MjYsNyArMTU5MCwxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFJ1
bkphdmFTY3JpcHRDb25maXJtKFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLQnVuZGxlRgogICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiQ09ORklSTTogIik7CiAgICAgc3RyaW5nQnVpbGRl
ci5hcHBlbmQodG9XVEZTdHJpbmcobWVzc2FnZSkpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5k
KCdcbicpOwotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0
cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQor
ICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFJ1bkph
dmFTY3JpcHRQcm9tcHQoV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tTdHJpbmdSZWYgZGVmYXVsdFZh
bHVlLCBXS0J1bmRsZUZyYW1lUmVmKQpAQCAtMTUzNyw3ICsxNjA0LDEwIEBAIHZvaWQgSW5qZWN0
ZWRCdW5kbGVQYWdlOjp3aWxsUnVuSmF2YVNjcmlwdFByb21wdChXS1N0cmluZ1JlZiBtZXNzYWdl
LCBXS1N0cmluZ1JlCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsIGRlZmF1bHQg
dGV4dDogIik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQodG9XVEZTdHJpbmcoZGVmYXVsdFZh
bHVlKSk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgSW5qZWN0ZWRCdW5k
bGU6OnNpbmdsZXRvbigpLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIElu
amVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UK
KyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlYWNo
QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBp
bnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQpCkBAIC0xNTU2LDcgKzE2MjYsMTAgQEAgdm9pZCBJbmpl
Y3RlZEJ1bmRsZVBhZ2U6OmRpZFJlYWNoQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdLU2Vj
dXJpdHlPcmlnaW5SZWYKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgdG90
YWxTcGFjZU5lZWRlZDp+Iik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKHRy
dW5jYXRlZFNwYWNlTmVlZGVkKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7
Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBpZiAoaW5qZWN0ZWRC
dW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGREaXNhbGxvd0luY3JlYXNlRm9yQXBwbGljYXRpb25D
YWNoZVF1b3RhKCkpCkBAIC0xNTc2LDcgKzE2NDksMTAgQEAgdWludDY0X3QgSW5qZWN0ZWRCdW5k
bGVQYWdlOjpkaWRFeGNlZWREYXRhYmFzZVF1b3RhKFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2lu
LAogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiBkYXRhYmFzZToiKTsKICAg
ICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQodG9XVEZTdHJpbmcoZGF0YWJhc2VOYW1lKSk7CiAg
ICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBpbmplY3RlZEJ1bmRs
ZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGluamVjdGVk
QnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENS
QVNIKCk7CiAgICAgfQogCiAgICAgdWludDY0X3QgZGVmYXVsdFF1b3RhID0gNSAqIDEwMjQgKiAx
MDI0OwpAQCAtMTU5NSw3ICsxNjcxLDEwIEBAIHVpbnQ2NF90IEluamVjdGVkQnVuZGxlUGFnZTo6
ZGlkRXhjZWVkRGF0YWJhc2VRdW90YShXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwKICAgICAg
ICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiVUkgREVMRUdBVEUgREFUQUJBU0Ug
Q0FMTEJBQ0s6IGluY3JlYXNlZCBxdW90YSB0byAiKTsKICAgICAgICAgICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kTnVtYmVyKG5ld1F1b3RhKTsKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kKCdcbicpOwotICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5n
QnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1
dFRleHQoKnN0cmluZyk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0go
KTsKICAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gbmV3UXVvdGE7CkBAIC0xNjY5LDcgKzE3
NDgsMTAgQEAgYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEJlZ2luRWRpdGluZyhXS0J1
bmRsZVJhbmdlSGFuZGxlUmVmIHJhbmdlKQogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExp
dGVyYWwoIkVESVRJTkcgREVMRUdBVEU6IHNob3VsZEJlZ2luRWRpdGluZ0luRE9NUmFuZ2U6Iik7
CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHJhbmdlVG9TdHIobV9wYWdlLCBtX3dvcmxk
LmdldCgpLCByYW5nZSkpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAg
ICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkp
OworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICByZXR1cm4gaW5qZWN0ZWRCdW5k
bGUudGVzdFJ1bm5lcigpLT5zaG91bGRBbGxvd0VkaXRpbmcoKTsKIH0KQEAgLTE2ODUsNyArMTc2
NywxMCBAQCBib29sIEluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkRW5kRWRpdGluZyhXS0J1bmRs
ZVJhbmdlSGFuZGxlUmVmIHJhbmdlKQogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVy
YWwoIkVESVRJTkcgREVMRUdBVEU6IHNob3VsZEVuZEVkaXRpbmdJbkRPTVJhbmdlOiIpOwogICAg
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChyYW5nZVRvU3RyKG1fcGFnZSwgbV93b3JsZC5nZXQo
KSwgcmFuZ2UpKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAg
IGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAg
ICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgcmV0dXJuIGluamVjdGVkQnVuZGxlLnRl
c3RSdW5uZXIoKS0+c2hvdWxkQWxsb3dFZGl0aW5nKCk7CiB9CkBAIC0xNzExLDcgKzE3OTYsMTAg
QEAgYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEluc2VydE5vZGUoV0tCdW5kbGVOb2Rl
SGFuZGxlUmVmIG5vZGUsIFdLQnVuZGxlUmEKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRM
aXRlcmFsKCIgZ2l2ZW5BY3Rpb246Iik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGlu
c2VydGFjdGlvbnN0cmluZ1thY3Rpb25dKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQo
J1xuJyk7Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50
b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgcmV0dXJuIGlu
amVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkQWxsb3dFZGl0aW5nKCk7CiB9CkBAIC0x
NzM3LDcgKzE4MjUsMTAgQEAgYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEluc2VydFRl
eHQoV0tTdHJpbmdSZWYgdGV4dCwgV0tCdW5kbGVSYW5nZUhhbmRsZVIKICAgICAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgZ2l2ZW5BY3Rpb246Iik7CiAgICAgICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kKGluc2VydGFjdGlvbnN0cmluZ1thY3Rpb25dKTsKICAgICAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQo
c3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0
VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9
CiAgICAgcmV0dXJuIGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkQWxsb3dFZGl0
aW5nKCk7CiB9CkBAIC0xNzUzLDcgKzE4NDQsMTAgQEAgYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6
OnNob3VsZERlbGV0ZVJhbmdlKFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYgcmFuZ2UpCiAgICAgICAg
IHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRURJVElORyBERUxFR0FURTogc2hvdWxkRGVs
ZXRlRE9NUmFuZ2U6Iik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHJhbmdlVG9TdHIo
bV9wYWdlLCBtX3dvcmxkLmdldCgpLCByYW5nZSkpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWls
ZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJp
bmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICByZXR1
cm4gaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGRBbGxvd0VkaXRpbmcoKTsKIH0K
QEAgLTE3ODQsNyArMTg3OCwxMCBAQCBib29sIEluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkQ2hh
bmdlU2VsZWN0ZWRSYW5nZShXS0J1bmRsZVJhbmdlSGFuZGxlUmVmIGZyb21SYQogICAgICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiBzdGlsbFNlbGVjdGluZzoiKTsKICAgICAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmQoYm9vbHN0cmluZ1tzdGlsbFNlbGVjdGluZ10pOyAKICAgICAg
ICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91
dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5k
bGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0go
KTsKICAgICB9CiAgICAgcmV0dXJuIGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxk
QWxsb3dFZGl0aW5nKCk7CiB9CkBAIC0xODAyLDcgKzE4OTksMTAgQEAgYm9vbCBJbmplY3RlZEJ1
bmRsZVBhZ2U6OnNob3VsZEFwcGx5U3R5bGUoV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uUmVm
IHN0eWxlLAogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiB0b0VsZW1lbnRz
SW5ET01SYW5nZToiKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQocmFuZ2VUb1N0ciht
X3BhZ2UsIG1fd29ybGQuZ2V0KCksIHJhbmdlKSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kKCdcbicpOwotICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmlu
Zyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIHJldHVy
biBpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZEFsbG93RWRpdGluZygpOwogfQpA
QCAtMTgxOSw3ICsxOTE5LDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRCZWdpbkVk
aXRpbmcoV0tTdHJpbmdSZWYgbm90aWZpY2F0aW9uTmFtZSkKICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZExpdGVyYWwoIkVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRCZWdpbkVkaXRpbmc6Iik7
CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQodG9XVEZTdHJpbmcobm90aWZpY2F0aW9uTmFtZSkp
OwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIGluamVjdGVkQnVuZGxlLm91
dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1
dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIElu
amVjdGVkQnVuZGxlUGFnZTo6ZGlkRW5kRWRpdGluZyhXS1N0cmluZ1JlZiBub3RpZmljYXRpb25O
YW1lKQpAQCAtMTgzNCw3ICsxOTM3LDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRF
bmRFZGl0aW5nKFdLU3RyaW5nUmVmIG5vdGlmaWNhdGlvbk5hbWUpCiAgICAgc3RyaW5nQnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCJFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkRW5kRWRpdGluZzoi
KTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhub3RpZmljYXRpb25OYW1l
KSk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgaW5qZWN0ZWRCdW5kbGUu
b3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0
cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQg
SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRDaGFuZ2UoV0tTdHJpbmdSZWYgbm90aWZpY2F0aW9uTmFt
ZSkKQEAgLTE4NDksNyArMTk1NSwxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2hh
bmdlKFdLU3RyaW5nUmVmIG5vdGlmaWNhdGlvbk5hbWUpCiAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOiIpOwogICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5nKG5vdGlmaWNhdGlvbk5hbWUpKTsKICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0
KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5n
QnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpz
dHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1
bmRsZVBhZ2U6OmRpZENoYW5nZVNlbGVjdGlvbihXS1N0cmluZ1JlZiBub3RpZmljYXRpb25OYW1l
KQpAQCAtMTg2NCw3ICsxOTczLDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRDaGFu
Z2VTZWxlY3Rpb24oV0tTdHJpbmdSZWYgbm90aWZpY2F0aW9uTmFtZSkKICAgICBzdHJpbmdCdWls
ZGVyLmFwcGVuZExpdGVyYWwoIkVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxl
Y3Rpb246Iik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQodG9XVEZTdHJpbmcobm90aWZpY2F0
aW9uTmFtZSkpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIGluamVjdGVk
QnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGluamVjdGVkQnVu
ZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQog
CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggZTYyZWI5My4uOTI2ODg0
OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuY3BwCkBAIC0xNjc4LDEwICsxNjc4LDEzIEBAIHZvaWQgVGVzdFJ1bm5lcjo6c3Rh
dGlzdGljc0RpZFJ1blRlbGVtZXRyeUNhbGxiYWNrKHVuc2lnbmVkIHRvdGFsUHJldmFsZW50UmVz
b3VyCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsIFwidG9wM1N1YmZyYW1lVW5k
ZXJUb3BGcmFtZU9yaWdpbnNcIiA6ICIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVy
KHRvcDNTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5zKTsKICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZExpdGVyYWwoIiB9Iik7CisKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCkpIHsKKyAgICAgICAgSlNWYWx1ZVJlZiByZXN1bHQgPSBKU1ZhbHVlTWFrZUZy
b21KU09OU3RyaW5nKGNvbnRleHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmlu
Zy0+dXRmOCgpLmRhdGEoKSkpOwogICAgIAotICAgIEpTVmFsdWVSZWYgcmVzdWx0ID0gSlNWYWx1
ZU1ha2VGcm9tSlNPTlN0cmluZyhjb250ZXh0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZyhzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOwotICAgIAotICAgIGNh
bGxUZXN0UnVubmVyQ2FsbGJhY2soU3RhdGlzdGljc0RpZFJ1blRlbGVtZXRyeUNhbGxiYWNrSUQs
IDEsICZyZXN1bHQpOworICAgICAgICBjYWxsVGVzdFJ1bm5lckNhbGxiYWNrKFN0YXRpc3RpY3NE
aWRSdW5UZWxlbWV0cnlDYWxsYmFja0lELCAxLCAmcmVzdWx0KTsKKyAgICB9IGVsc2UKKyAgICAg
ICAgQ1JBU0goKTsKIH0KIAogdm9pZCBUZXN0UnVubmVyOjpzdGF0aXN0aWNzTm90aWZ5T2JzZXJ2
ZXIoKQpAQCAtMTg5MSwxMCArMTg5NCwxMyBAQCB2b2lkIFRlc3RSdW5uZXI6OmNhbGxEaWRSZWNl
aXZlQWxsU3RvcmFnZUFjY2Vzc0VudHJpZXNDYWxsYmFjayhWZWN0b3I8U3RyaW5nPiYgZAogICAg
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIlwiIik7CiAgICAgfQogICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXSIpOwotICAgIAotICAgIEpTVmFsdWVSZWYgcmVzdWx0
ID0gSlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmluZyhjb250ZXh0LCBKU1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZyhzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOwogCi0g
ICAgY2FsbFRlc3RSdW5uZXJDYWxsYmFjayhBbGxTdG9yYWdlQWNjZXNzRW50cmllc0NhbGxiYWNr
SUQsIDEsICZyZXN1bHQpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKSkgeworICAgICAgICBKU1ZhbHVlUmVmIHJlc3VsdCA9IEpTVmFsdWVNYWtlRnJvbUpT
T05TdHJpbmcoY29udGV4dCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyaW5nLT51
dGY4KCkuZGF0YSgpKSk7CisKKyAgICAgICAgY2FsbFRlc3RSdW5uZXJDYWxsYmFjayhBbGxTdG9y
YWdlQWNjZXNzRW50cmllc0NhbGxiYWNrSUQsIDEsICZyZXN1bHQpOworICAgIH0gZWxzZQorICAg
ICAgICBDUkFTSCgpOwogfQogCiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCA2OGM0OWM4Li5mM2JhN2ZkIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMTg4MSw3ICsxODgxLDEwIEBA
IFdLU3RyaW5nUmVmIFRlc3RDb250cm9sbGVyOjpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0
ZWRGaWxlbmFtZShXS0NvbnRleHRSZWYsCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJEb3dubG9h
ZGluZyBVUkwgd2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgXCIiKTsKICAgICAgICAgYnVpbGRlci5h
cHBlbmQoc3VnZ2VzdGVkRmlsZW5hbWUpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgiXCJcbiIp
OwotICAgICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KGJ1aWxkZXIudG9TdHJp
bmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPm91dHB1dFRleHQoKnN0cmluZyk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgY29uc3QgY2hhciog
ZHVtcFJlbmRlclRyZWVUZW1wID0gbGlicmFyeVBhdGhGb3JUZXN0aW5nKCk7CkBAIC0xOTExLDcg
KzE5MTQsMTAgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRSZWNlaXZlU2VydmVy
UmVkaXJlY3RUb1VSTChXS0NvbnRleHRSZWYsIFdLRG93bmwKICAgICAgICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IHVybFN0cmluZ1dLID0gYWRvcHRXSyhXS1VSTENvcHlTdHJpbmcodXJsKSk7
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHRvU1REKHVybFN0cmluZ1dLKS5jX3N0cigpKTsKICAg
ICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcIi5cbiIpOwotICAgICAgICBtX2N1cnJlbnRJ
bnZvY2F0aW9uLT5vdXRwdXRUZXh0KGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIG1fY3VycmVudElu
dm9jYXRpb24tPm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IENSQVNIKCk7CiAgICAgfQogfQogCkBAIC0xOTM0LDcgKzE5NDAsMTAgQEAgdm9pZCBUZXN0Q29u
dHJvbGxlcjo6ZG93bmxvYWREaWRGYWlsKFdLQ29udGV4dFJlZiwgV0tEb3dubG9hZFJlZiwgV0tF
cnJvclJlZiBlcnIKICAgICAgICAgZXJyb3JCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhlcnJv
ckRlc2NyaXB0aW9uKSk7CiAgICAgICAgIGVycm9yQnVpbGRlci5hcHBlbmQoIlxuIik7CiAKLSAg
ICAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+b3V0cHV0VGV4dChlcnJvckJ1aWxkZXIudG9TdHJp
bmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGVycm9yQnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+b3V0cHV0VGV4dCgqc3RyaW5nKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgbV9jdXJyZW50
SW52b2NhdGlvbi0+bm90aWZ5RG93bmxvYWREb25lKCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IGNkNWRiMGEuLmVlMmY1NTIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC0yNDgsOSArMjQ4LDEyIEBAIHZv
aWQgVGVzdEludm9jYXRpb246OmZvcmNlUmVwYWludERvbmVDYWxsYmFjayhXS0Vycm9yUmVmIGVy
cm9yLCB2b2lkKiBjb250ZXh0KQogCiB2b2lkIFRlc3RJbnZvY2F0aW9uOjpkdW1wUmVzdWx0cygp
CiB7Ci0gICAgaWYgKG1fdGV4dE91dHB1dC5sZW5ndGgoKSB8fCAhbV9hdWRpb1Jlc3VsdCkKLSAg
ICAgICAgZHVtcChtX3RleHRPdXRwdXQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICBl
bHNlCisgICAgaWYgKG1fdGV4dE91dHB1dC5sZW5ndGgoKSB8fCAhbV9hdWRpb1Jlc3VsdCkgewor
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBtX3RleHRPdXRwdXQudG9TdHJpbmcoKSkKKyAgICAg
ICAgICAgIGR1bXAoc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgQ1JBU0goKTsKKyAgICB9IGVsc2UKICAgICAgICAgZHVtcEF1ZGlvKG1fYXVkaW9SZXN1
bHQuZ2V0KCkpOwogCiAgICAgaWYgKG1fZHVtcFBpeGVscykgewotLSAKMi45LjMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339010</attachid>
            <date>2018-04-27 11:44:44 -0700</date>
            <delta_ts>2018-04-27 13:59:23 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Teach-StringBuilder-that-it-is-fallible.patch</filename>
            <type>text/plain</type>
            <size>465966</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSBmMjE0MWJiNjZkZTI3YTllMGExYzQwODhlMzg0MDYxYTVhNTRjMzMwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBXZWQsIDI1IEFwciAyMDE4IDIxOjUwOjI0IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gVGVhY2gg
U3RyaW5nQnVpbGRlciB0aGF0IGl0IGlzIGZhbGxpYmxlCgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcCAgICAgICAgIHwgICA0ICstCiAuLi4vQVBJL3Rlc3Rz
L0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwICAgICAgICAgICB8IDMxMCArKysrKysrLS0tLS0t
CiAuLi4vQVBJL3Rlc3RzL1BpbmdQb25nU3RhY2tPdmVyZmxvd1Rlc3QuY3BwICAgICAgICB8ICAg
OSArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
fCAgOTUgKysrKwogLi4uL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCAgICAgICAg
ICAgICAgfCAgMjMgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBTbmFwc2hvdEJ1
aWxkZXIuY3BwIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNv
bGVNZXNzYWdlLmNwcCB8ICAxMyArLQogLi4uL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0
aWVzLmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9JbnRlcnByZXRlci5jcHAgIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcCB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAgICAgICAgICAgICAgICAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwICAgICAgIHwgICA5ICstCiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcCAgICB8ICAxNSArLQogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwICAgfCAgIDQgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwICAgIHwgICA0ICstCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcCB8ICAgNCAr
LQogLi4uL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgfCAg
MjQgKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAg
IHwgICA2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcCAg
ICAgICB8ICAxOCArLQogLi4uL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwICAg
ICAgICAgICAgfCAgMjEgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmpl
Y3QuY3BwICAgICAgIHwgIDE2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRl
cmFsUGFyc2VyLmNwcCAgICB8ICAxMCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3B0aW9ucy5jcHAgICAgICAgICAgfCAgMTAgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAgIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcCB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAgICAgICAgfCAgIDQgKy0KIC4uLi9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcCAgIHwgICA0ICstCiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwICB8ICAgNCArLQogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmNwcCAgICAgfCAgIDYgKy0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVTZXQuY3BwICAgICAgICAgIHwgIDIzICst
CiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAgICAgICAgICAgICAgICB8ICAy
MCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcCAg
fCAgIDkgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcCAgICAg
ICAgIHwgICA3ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmggICAg
ICAgICAgICB8ICAzMCArLQogU291cmNlL1dURi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAxNDMgKysrKysrCiBTb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcCAg
ICAgICAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3Bw
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XVEYvd3RmL0pTT05WYWx1
ZXMuY3BwICAgICAgICAgICAgICAgICAgICAgIHwgIDExICstCiBTb3VyY2UvV1RGL3d0Zi9Mb2dn
ZXIuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMSArLQogU291cmNlL1dURi93dGYv
TWVkaWFUaW1lLmNwcCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XVEYv
d3RmL1VVSUQuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuY3BwICAgICAgICAgICAgICB8IDIzOSArKysrKyst
LS0tCiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaCAgICAgICAgICAgICAgICB8
IDI2MSArKysrKysrLS0tLQogU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVySlNPTi5j
cHAgICAgICAgICAgfCAgMjUgKy0KIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAg
ICAgICAgICAgICAgICAgIHwgIDM0ICstCiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwu
aCAgICAgICAgICAgICAgICAgICB8ICAxOCArLQogU291cmNlL1dURi93dGYvdGV4dC9UZXh0U3Ry
ZWFtLmNwcCAgICAgICAgICAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNTEwICsrKysrKysrKysrKysrKysrKysrKwog
Li4uL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudENvbnRhY3RDb2NvYS5tbSAgfCAgIDUg
Ky0KIC4uLi9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcCAgIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNw
cCB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5j
cHAgICAgfCAgMTUgKy0KIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBh
dGguY3BwICAgIHwgICA0ICstCiAuLi4vTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0luZGV4VmFs
dWVTdG9yZS5jcHAgICB8ICAgNCArLQogLi4uL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxp
dGVJREJDdXJzb3IuY3BwICAgfCAgIDggKy0KIC4uLi9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCRGF0YWJhc2VJbmZvLmNwcCAgIHwgICA0ICstCiAuLi4vaW5kZXhlZGRiL3NoYXJlZC9JREJP
YmplY3RTdG9yZUluZm8uY3BwICAgICAgICB8ICAgNCArLQogLi4uL21lZGlhc2Vzc2lvbi9XZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCAgICAgICAgfCAgIDggKy0KIC4uLi9Nb2R1bGVzL21lZGlh
c3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgIHwgICA4ICstCiAuLi4vTW9kdWxlcy9w
bHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAgICB8ICAgNCArLQogLi4uL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcCAgICAgICAgfCAgIDQgKy0KIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwICAgIHwgICA4ICstCiAu
Li4vd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcCAgICB8ICAgOCAr
LQogLi4uL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwICAgICAgfCAg
MjMgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCAgICAg
IHwgIDE4ICstCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
Y3BwICB8ICAxMCArLQogLi4uL21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bSAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVy
dFN0cmluZ3MuY3BwIHwgICA0ICstCiAuLi4vV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2Vw
dGlvbkhhbmRsaW5nLmNwcCB8ICAxNiArLQogLi4uL2NvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVk
VVJMRmlsdGVycy5jcHAgICAgICAgfCAgIDQgKy0KIC4uLi9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb24uY3BwIHwgICA3ICstCiAuLi4vY29udGVudGV4dGVuc2lvbnMv
Q29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcCB8ICAgNSArLQogLi4uL0NvbnRlbnRFeHRlbnNp
b25TdHlsZVNoZWV0LmNwcCAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3Jl
L2NvbnRlbnRleHRlbnNpb25zL1Rlcm0uaCAgICAgICAgICAgIHwgICA4ICstCiAuLi4vV2ViQ29y
ZS9jc3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmNwcCB8ICAgNCArLQogU291cmNl
L1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmNwcCAgICAgICAgICAgICAgfCAgMjAgKy0KIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmNwcCAgICAgICAgIHwgICA4ICst
CiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCB8ICAg
NCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcCAgICAgICAgICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcCAgICAg
ICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3VzdG9tSWRlbnRWYWx1ZS5jcHAg
ICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUu
Y3BwICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUu
Y3BwICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VT
cmNWYWx1ZS5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRG
ZWF0dXJlVmFsdWUuY3BwICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250U3R5bGVSYW5nZVZhbHVlLmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udFN0eWxlVmFsdWUuY3BwICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRWYWx1ZS5jcHAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUuY3BwICAgICAgIHwgICA0ICstCiBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHAgICAgICAgICAgICB8ICAgNCArLQogU291
cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwICAgICAgICAgICAgfCAgMTIgKy0K
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNwcCAgICAgIHwgICA0
ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAgICB8
ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwICAgICAgICAg
ICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmNwcCAgICAgICAg
ICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVSdWxlLmNwcCAg
ICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lc1J1bGUu
Y3BwICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMaW5lQm94Q29u
dGFpblZhbHVlLmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWFya3Vw
LmNwcCAgICAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU01l
ZGlhUnVsZS5jcHAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NOYW1lc3BhY2VSdWxlLmNwcCAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFnZVJ1bGUuY3BwICAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcCAgICAgICAgICAgfCAgMTIgKy0KIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3BwICAgICAgIHwgICA0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwICAgICAgICAgICAgICAgICB8ICAxNyArLQog
U291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAgICAgICAgICAgICAgfCAgIDQg
Ky0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTaGFkb3dWYWx1ZS5jcHAgICAgICAgICAgICAgIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmNwcCAgICAgICAgICAgICAg
ICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwICAgICAgICAg
ICAgICAgfCAgIDkgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdXBwb3J0c1J1bGUuY3BwICAg
ICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVGltaW5nRnVuY3Rpb25W
YWx1ZS5jcHAgICAgICB8ICAxNiArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5j
cHAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYXJpYWJs
ZURhdGEuY3BwICAgICAgICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NT
TmFtZXNwYWNlLmNwcCAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0RP
TU1hdHJpeFJlYWRPbmx5LmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nz
cy9EZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9jc3MvRm9udEZhY2UuY3BwICAgICAgICAgICAgICAgICAgICB8ICAxMiArLQogU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhTGlzdC5jcHAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcCAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBT
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwICAgICAgICB8ICAgNSAr
LQogU291cmNlL1dlYkNvcmUvY3NzL1JlY3QuaCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwICAgICAgICAgICAg
IHwgIDMwICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmNwcCAgICAgICAg
ICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5j
cHAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNw
cCAgICAgICAgICAgIHwgIDExICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNl
clRva2VuLmNwcCAgICAgICB8ICA4NyArKy0tCiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlclRva2VuUmFuZ2UuY3BwICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAgICAgfCAgMjcgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTVG9rZW5pemVyLmNwcCAgICAgICAgIHwgIDM4ICstCiBTb3VyY2UvV2ViQ29yZS9k
b20vRGF0YXNldERPTVN0cmluZ01hcC5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcCAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIyICstCiBTb3Vy
Y2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQog
U291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDkg
Ky0KIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcCAgICAgICAgICAg
ICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDkgKy0KIFNvdXJjZS9XZWJDb3JlL2RvbS9UZXh0Tm9kZVRyYXZlcnNhbC5jcHAg
ICAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21t
YW5kLmNwcCAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNw
cCAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSFRNTElu
dGVyY2hhbmdlLmNwcCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01h
cmt1cEFjY3VtdWxhdG9yLmNwcCAgICAgICB8ICAxNyArLQogU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UZXh0SXRlcmF0b3IuY3BwICAgICAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwICAgICAgICB8ICAgNSArLQogU291cmNlL1dl
YkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tICAgICAgfCAgIDggKy0KIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbSAgICAgIHwgICA1ICstCiBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0gICAgICAgICAgICB8ICAgNSAr
LQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwICAgICAgICAgICAgICAgICAgfCAg
MjcgKy0KIFNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAgICAgICAg
IHwgIDI0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAgICAgICAgICAg
ICAgICB8ICAgOSArLQogU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAgICAg
ICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAg
ICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVy
LmNwcCAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9y
RWxlbWVudC5jcHAgICAgICAgICAgfCAgMTIgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuY3BwICAgICAgICAgIHwgIDIxICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb250RWxlbWVudC5jcHAgICAgICAgICAgICB8ICAgNyArLQogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW1hZ2VFbGVtZW50LmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgICAgICAgICAgIHwgICA5ICstCiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcCAgICAgICAgICB8ICAgNCArLQogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgfCAgMTIgKy0KIFNv
dXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAgICAgICAgICAgICAgIHwgICA1ICst
CiBTb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwICAgICAgICB8ICAg
NCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUZyYWdtZW50VVJJUGFyc2VyLmNwcCAgICAg
fCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcCAgICAgICAgICAgICAg
ICAgIHwgIDE0ICstCiAuLi4vaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNw
cCAgICAgICB8ICAgNCArLQogLi4uL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REJhc2UuY3BwICAgfCAgIDcgKy0KIC4uLi9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlLmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
U291cmNlVHJhY2tlci5jcHAgICB8ICAgNyArLQogU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFRva2VuaXplci5jcHAgICAgICAgfCAgMTIgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxUcmVlQnVpbGRlci5jcHAgICAgIHwgIDI3ICstCiBTb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9CdWZmZXJlZExpbmVSZWFkZXIuY3BwICAgfCAgIDggKy0KIFNvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcCAgICAgICAgICAgIHwgICA1ICstCiBTb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAgICAgICAgICAgICAgICB8ICAgNiArLQogU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwICAgICAgICAgfCAgIDUgKy0K
IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmNwcCAgICAgIHwgIDYz
ICsrLQogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwICAg
fCAgMTcgKy0KIC4uLi9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCAg
ICAgIHwgIDEzICstCiAuLi4vaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQu
Y3BwICAgICB8ICAgNyArLQogLi4uL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xl
QWdlbnQuY3BwICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFj
Y2Vzc0NvbnRyb2wuY3BwIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljcy5jcHAgICB8ICAgNCArLQogLi4uL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZS5jcHAgICAgfCAgMjUgKy0KIC4uLi9XZWJDb3JlL2xvYWRlci9hcmNo
aXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwIHwgIDI1ICstCiAuLi4vV2ViQ29yZS9sb2FkZXIv
YXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwICB8ICAyOCArLQogLi4uL1dlYkNvcmUvcGFn
ZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAgfCAgNjQgKystCiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcCAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCAgICAgICAgICAgICAgICAgIHwgICA1ICst
CiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcCAgICAgICAgICAgICB8ICAg
NyArLQogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuY3BwICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcCAgICAg
ICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0VHJpZ2dlci5j
cHAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5
UG9saWN5LmNwcCAgfCAgIDkgKy0KIC4uLi9wYWdlL3Njcm9sbGluZy9BeGlzU2Nyb2xsU25hcE9m
ZnNldHMuY3BwICAgICAgIHwgICA4ICstCiAuLi4vcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuY3BwICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVj
aW1hbC5jcHAgICAgICAgICAgICAgICAgfCAgMTIgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0ZpbGVTeXN0ZW0uY3BwICAgICAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QT0RJbnRlcnZhbC5oICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmggICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1VSTC5jcHAgICAgICAgICAgICAgICAgICAgIHwgIDE4ICstCiAuLi4vV2Vi
Q29yZS9wbGF0Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uY3BwICB8ICAgNSArLQogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAgICAgfCAgIDQgKy0K
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvVXNlckFnZW50R0xpYi5jcHAgICAgIHwgICA0
ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAgICAgICAgICB8
ICAgOCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5j
cHAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRl
LmNwcCAgIHwgICA0ICstCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNldHRpbmdz
LmNwcCAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NMYXllci5jcHAgfCAgIDQgKy0KIC4uLi9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZUFWRi5jcHAgICAgIHwgIDEzICstCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGls
ZUNvbnRyb2xsZXIuY3BwICAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvVGlsZUdyaWQuY3BwICAgfCAgIDQgKy0KIC4uLi9ncmFwaGljcy9jYS93aW4v
UGxhdGZvcm1DQUxheWVyV2luLmNwcCAgICAgICAgIHwgICA0ICstCiAuLi4vcGxhdGZvcm0vZ3Jh
cGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwICB8ICAxMCArLQogLi4uL29wZW5nbC9H
cmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAgICAgICAgfCAgMTEgKy0KIC4uLi9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwIHwgIDE1ICstCiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSAgICAgICB8ICAgNCArLQog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbSAgICAgfCAgIDYg
Ky0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Nyb2xsQW5pbWF0b3JNb2NrLmNwcCAgIHwg
IDE1ICstCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tCb3guY3Bw
ICB8ICAgOSArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5j
cHAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJveHlTZXJ2
ZXIuY3BwICAgIHwgICA0ICstCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29r
aWVKYXJNYWMubW0gICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcG9zaXgvRmls
ZVN5c3RlbVBPU0lYLmNwcCAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
RGF0ZVRpbWVGb3JtYXQuY3BwICAgIHwgIDI2ICstCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L0RlY29kZUVzY2FwZVNlcXVlbmNlcy5oICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5jcHAgICAgfCAgMjAgKy0KIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNwcCAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAgICAgICB8ICAxMyArLQogLi4uL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVc2VyRGVmaW5lZC5jcHAgfCAgIDQgKy0KIC4uLi9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwIHwgICA1ICstCiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vVXNlckFnZW50V2luLmNwcCAgICAgICB8ICAgNCAr
LQogU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZS5jcHAgICAgICAgICAgICAgfCAg
IDQgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgICAgICAgICAg
IHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmNwcCB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIu
Y3BwICAgICAgfCAgIDkgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNw
cCAgICAgICAgICAgIHwgIDIzICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVJT1MubW0gICAgICAgICB8ICAxMCArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lV2luLmNwcCAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUcmVlQXNUZXh0LmNwcCAgICAgIHwgICA4ICstCiAuLi4vcmVuZGVyaW5nL21hdGhtbC9S
ZW5kZXJNYXRoTUxGZW5jZWQuY3BwICAgICAgICB8ICAgNSArLQogLi4uL3JlbmRlcmluZy91cGRh
dGluZy9SZW5kZXJUcmVlQnVpbGRlck1hdGhNTC5jcHAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmNwcCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdGhTdHJpbmdCdWlsZGVyLmNwcCAgICAgICAgfCAgIDQgKy0KIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcCAgICAgICAgICAgIHwgICA0ICst
CiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmNwcCAgICAgICAgICB8ICAg
NCArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuY3BwICAgICAgICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmNwcCAg
ICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtVmFsdWUuY3BwICAg
ICAgICAgICB8ICAyMCArLQogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVy
dHlUcmFpdHMuaCAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cCAgICAgICAgICAgICAgIHwgIDY0ICstLQogU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFn
ZU92ZXJsYXlDbGllbnQuY3BwICAgfCAgMTAgKy0KIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyU2NyaXB0TG9hZGVyLmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS94bWwvWE1M
RXJyb3JzLmNwcCAgICAgICAgICAgICAgICAgICB8ICAgNyArLQogU291cmNlL1dlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0LmNwcCAgICAgICAgICAgICAgfCAgMTUgKy0KIFNvdXJjZS9XZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdC5oICAgICAgICAgICAgICAgIHwgICA3ICstCiBTb3VyY2UvV2Vi
Q29yZS94bWwvWFBhdGhGdW5jdGlvbnMuY3BwICAgICAgICAgICAgICB8ICAyMSArLQogU291cmNl
L1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCAgICAgICAgfCAgMTQgKy0KIC4u
Li94bWwvcGFyc2VyL0NoYXJhY3RlclJlZmVyZW5jZVBhcnNlcklubGluZXMuaCAgIHwgICA1ICst
CiBTb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb25Ib3N0LmNwcCAgICAgICAgICAgICAgICAgICB8ICAg
NSArLQogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgNDkgKysKIC4uLi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3Bw
ICAgIHwgICA0ICstCiAuLi4vV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZS5jcHAgICB8ICAxOCArLQogLi4uL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUtl
eS5jcHAgICAgICAgfCAgIDQgKy0KIC4uLi9jYXB0dXJlL05ldHdvcmtDYXB0dXJlTWFuYWdlci5j
cHAgICAgICAgICAgICAgIHwgICA2ICstCiAuLi4vU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIv
SURCVXRpbGl0aWVzLmNwcCAgICB8ICAgNCArLQogU291cmNlL1dlYktpdC9TaGFyZWQvR2FtZXBh
ZC9HYW1lcGFkRGF0YS5jcHAgICAgICAgfCAgIDQgKy0KIC4uLi9OZXRzY2FwZS91bml4L05ldHNj
YXBlUGx1Z2luTW9kdWxlVW5peC5jcHAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJNZW1vcnlTYW1wbGVyLmNwcCAgICAgICAgICB8ICAgNyArLQogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVVzZXJTY3JpcHQuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElVc2VyU3R5bGVTaGVldC5jcHAgIHwgICA0ICstCiAuLi4vVUlQ
cm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAgICAgICB8ICAgNiArLQogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcCAgICAgfCAgIDQgKy0K
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCAgICAgICAgIHwgICA1
ICstCiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwICAgICAgICB8
ICAgNSArLQogLi4uL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3Bw
ICAgfCAgMjAgKy0KIC4uLi9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5LmNwcCAg
ICAgICAgIHwgIDMzICstCiAuLi4vUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5j
cy5jcHAgICAgICB8ICAgNCArLQogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luVmlldy5jcHAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkZyYW1lLmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICB8ICAxMiArCiAuLi4vbWFjL1dlYlZpZXcvV2ViSFRNTFJl
cHJlc2VudGF0aW9uLm1tICAgICAgICAgICB8ICAgNSArLQogVG9vbHMvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNzggKysrKwogVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRUYXNrLmNwcCAgfCAgIDQgKy0KIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwICAgIHwgIDkyICsrLS0KIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwICAgICAgIHwgIDgwICsrLS0K
IC4uLi9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcCAgICAgICAgICAgIHwgIDg2
ICsrLS0KIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAg
IHwgIDM3ICstCiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTG9nZ2luZy5jcHAg
ICAgICB8ICAzMCArLQogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1RleHRDb2Rl
Yy5jcHAgICAgfCAgIDQgKy0KIFRvb2xzL1Rlc3RXZWJLaXRBUEkvV1RGU3RyaW5nVXRpbGl0aWVz
LmggICAgICAgICAgIHwgICA0ICstCiAuLi4vSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQ
YWdlLmNwcCAgICAgICAgICB8IDE5NiArKysrKystLQogLi4uL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgfCAgMTggKy0KIFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwICAgICAgICAgIHwgIDE1ICstCiBUb29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCAgICAgICAgICB8ICAgOSArLQogMjk3IGZpbGVzIGNo
YW5nZWQsIDM2MDMgaW5zZXJ0aW9ucygrKSwgMTI0MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAKaW5kZXggMDI1ZWJhNC4uNWVkZjY4MSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcApAQCAtMzE0LDcg
KzMxNCw5IEBAIEpTU3RyaW5nUmVmIEpTQ29udGV4dENyZWF0ZUJhY2t0cmFjZShKU0NvbnRleHRS
ZWYgY3R4LCB1bnNpZ25lZCBtYXhTdGFja1NpemUpCiAgICAgQmFja3RyYWNlRnVuY3RvciBmdW5j
dG9yKGJ1aWxkZXIsIG1heFN0YWNrU2l6ZSk7CiAgICAgZnJhbWUtPml0ZXJhdGUoZnVuY3Rvcik7
CiAKLSAgICByZXR1cm4gT3BhcXVlSlNTdHJpbmc6OmNyZWF0ZShidWlsZGVyLnRvU3RyaW5nKCkp
LmxlYWtSZWYoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiBPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKCpzdHJpbmcpLmxlYWtSZWYoKTsK
KyAgICBDUkFTSCgpOwogfQogCiBib29sIEpTR2xvYmFsQ29udGV4dEdldFJlbW90ZUluc3BlY3Rp
b25FbmFibGVkKEpTR2xvYmFsQ29udGV4dFJlZiBjdHgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcAppbmRl
eCA2MzdiMzA0Li4xNjUyODM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L3Rlc3RzL0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAKQEAgLTE5NCwyMiArMTk0
LDI1IEBAIGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICAgICAgICAgIHNjcmlwdEJ1
aWxkZXIuYXBwZW5kTnVtYmVyKHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkLnNlY29u
ZHMoKSk7CiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoIikgYnJlYWs7
IH0gfSBmb28oKTsiKTsKIAotICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc2NyaXB0QnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOwotICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKLSAgICAgICAgICAgIHNo
b3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBhdXRv
IHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLSAgICAgICAgICAgIEpT
RXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhj
ZXB0aW9uKTsKLSAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRU
aHJlYWQoKTsKLQotICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCB0aW1l
QWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgJiYgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tX
YXNDYWxsZWQpCi0gICAgICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiAlcyBzY3JpcHQgdGltZWQg
b3V0IGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICBlbHNl
IHsKLSAgICAgICAgICAgICAgICBpZiAoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRl
cldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZB
SUw6ICVzIHNjcmlwdCBkaWQgbm90IHRpbWUgb3V0IGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlv
bnMudGllcik7Ci0gICAgICAgICAgICAgICAgaWYgKCFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dh
c0NhbGxlZCkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgdGlt
ZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAg
ICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAg
ICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhz
dHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxw
dHI7CisgICAgICAgICAgICAgICAgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgPSBm
YWxzZTsKKyAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJl
bnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNj
cmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAg
YXV0byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworCisgICAgICAgICAg
ICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3Vs
ZEhhdmVGaXJlZCkgJiYgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCisgICAgICAg
ICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IHRpbWVkIG91dCBhcyBleHBlY3Rl
ZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAg
ICAgICAgICAgICAgICBpZiAoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNo
ZG9nU2hvdWxkSGF2ZUZpcmVkKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlM
OiAlcyBzY3JpcHQgZGlkIG5vdCB0aW1lIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25z
LnRpZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNr
V2FzQ2FsbGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3Jp
cHQgdGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIp
OworICAgICAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAg
ICAKICAgICAgICAgICAgIGlmICghZXhjZXB0aW9uKSB7CiAgICAgICAgICAgICAgICAgcHJpbnRm
KCJGQUlMOiAlcyBUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uIHdhcyBub3QgdGhyb3duLlxu
IiwgdGllck9wdGlvbnMudGllcik7CkBAIC0yMzcsMjIgKzI0MCwyNSBAQCBpbnQgdGVzdEV4ZWN1
dGlvblRpbWVMaW1pdCgpCiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExpdGVyYWwo
IiAgICByZXR1cm4gcmVjdXJzZShpICsgMSk7IH0iKTsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgicmVjdXJzZSgwKTsiKTsKIAotICAgICAgICAgICAgSlNTdHJpbmdS
ZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc2NyaXB0QnVpbGRlci50
b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0
cjsKLSAgICAgICAgICAgIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7
Ci0gICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQo
KTsKLSAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRy
LCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKLSAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQ
VVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLQotICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAt
IHN0YXJ0VGltZSkgPCB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgJiYgc2hvdWxk
VGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCi0gICAgICAgICAgICAgICAgcHJpbnRmKCJQQVNT
OiAlcyBzY3JpcHQgd2l0aCBpbmZpbml0ZSB0YWlsIGNhbGxzIHRpbWVkIG91dCBhcyBleHBlY3Rl
ZCAuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAg
ICAgICAgIGlmICgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFmdGVyV2F0Y2hkb2dTaG91
bGRIYXZlRmlyZWQpCi0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0
IHdpdGggaW5maW5pdGUgdGFpbCBjYWxscyBkaWQgbm90IHRpbWUgb3V0IGFzIGV4cGVjdGVkLlxu
IiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAgaWYgKCFzaG91bGRUZXJtaW5h
dGVDYWxsYmFja1dhc0NhbGxlZCkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAl
cyBzY3JpcHQgd2l0aCBpbmZpbml0ZSB0YWlsIGNhbGxzJyB0aW1lb3V0IGNhbGxiYWNrIHdhcyBu
b3QgY2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAgZmFpbGVk
ID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHNj
cmlwdEJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNj
cmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZy0+dXRmOCgpLmRhdGEo
KSk7CisgICAgICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAg
ICBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOworICAgICAgICAgICAg
ICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAg
ICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxs
cHRyLCAxLCAmZXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICBhdXRvIGVuZFRpbWUgPSBDUFVU
aW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CisKKyAgICAgICAgICAgICAgICBpZiAoKChlbmRUaW1l
IC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiBzaG91
bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRm
KCJQQVNTOiAlcyBzY3JpcHQgd2l0aCBpbmZpbml0ZSB0YWlsIGNhbGxzIHRpbWVkIG91dCBhcyBl
eHBlY3RlZCAuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICBlbHNlIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0
ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50
ZigiRkFJTDogJXMgc2NyaXB0IHdpdGggaW5maW5pdGUgdGFpbCBjYWxscyBkaWQgbm90IHRpbWUg
b3V0IGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAg
ICAgIGlmICghc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCisgICAgICAgICAgICAg
ICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB3aXRoIGluZmluaXRlIHRhaWwgY2Fs
bHMnIHRpbWVvdXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVy
KTsKKyAgICAgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAg
ICAgCiAgICAgICAgICAgICBpZiAoIWV4Y2VwdGlvbikgewogICAgICAgICAgICAgICAgIHByaW50
ZigiRkFJTDogJXMgVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbiB3YXMgbm90IHRocm93bi5c
biIsIHRpZXJPcHRpb25zLnRpZXIpOwpAQCAtMjczLDIxICsyNzksMjQgQEAgaW50IHRlc3RFeGVj
dXRpb25UaW1lTGltaXQoKQogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmROdW1iZXIo
dGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQuc2Vjb25kcygpKTsKICAgICAgICAgICAg
IHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSBicmVhazsgfSB9IGNhdGNoKGUpIHsgfSB9
IGZvbygpOyIpOwogCi0gICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZyhzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7Ci0gICAgICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOwotICAgICAgICAgICAgc2hvdWxk
VGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgICAgIEpT
U3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZy0+
dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKKyAg
ICAgICAgICAgICAgICBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOwog
Ci0gICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQo
KTsKLSAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRy
LCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKLSAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQ
VVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0VGlt
ZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAgICBKU0V2YWx1
YXRlU2NyaXB0KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlv
bik7CisgICAgICAgICAgICAgICAgYXV0byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRo
cmVhZCgpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRU
aW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgfHwgIXNob3VsZFRlcm1p
bmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCEoKGVuZFRpbWUg
LSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpKQotICAgICAg
ICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCBkaWQgbm90IHRpbWUgb3V0IGFz
IGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAgaWYgKCFz
aG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKLSAgICAgICAgICAgICAgICAgICAgcHJp
bnRmKCJGQUlMOiAlcyBzY3JpcHQgdGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIs
IHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7Ci0gICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0g
dGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpIHx8ICFzaG91bGRUZXJtaW5hdGVDYWxs
YmFja1dhc0NhbGxlZCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoISgoZW5kVGltZSAtIHN0
YXJ0VGltZSkgPCB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkpCisgICAgICAgICAg
ICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCBkaWQgbm90IHRpbWUgb3V0IGFz
IGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAgIGlm
ICghc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCisgICAgICAgICAgICAgICAgICAg
ICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2Fs
bGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAgIGZhaWxlZCA9
IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbikK
ICAgICAgICAgICAgICAgICBwcmludGYoIlBBU1M6ICVzIFRlcm1pbmF0ZWRFeGVjdXRpb25FeGNl
cHRpb24gd2FzIG5vdCBjYXRjaGFibGUgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVy
KTsKQEAgLTMwOSwyNCArMzE4LDI3IEBAIGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAg
ICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiZnVuY3Rpb24gZm9vKCkgeyB2
YXIgc3RhcnRUaW1lID0gY3VycmVudENQVVRpbWUoKTsgd2hpbGUgKHRydWUpIHsgZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwOyBpKyspOyBpZiAoY3VycmVudENQVVRpbWUoKSAtIHN0YXJ0VGltZSA+
ICIpOwogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmROdW1iZXIodGltZUFmdGVyV2F0
Y2hkb2dTaG91bGRIYXZlRmlyZWQuc2Vjb25kcygpKTsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiKSBicmVhazsgfSB9IGZvbygpOyIpOwotICAgICAgICAgICAgCi0g
ICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZyhzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAg
ICBleGNlcHRpb24gPSBudWxscHRyOwotICAgICAgICAgICAgc2hvdWxkVGVybWluYXRlQ2FsbGJh
Y2tXYXNDYWxsZWQgPSBmYWxzZTsKIAotICAgICAgICAgICAgYXV0byBzdGFydFRpbWUgPSBDUFVU
aW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7Ci0gICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNv
bnRleHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7Ci0gICAgICAg
ICAgICBhdXRvIGVuZFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CisgICAgICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAg
ICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZyhzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgICAgIGV4Y2VwdGlvbiA9
IG51bGxwdHI7CisgICAgICAgICAgICAgICAgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxs
ZWQgPSBmYWxzZTsKKworICAgICAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6
Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29u
dGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKKyAgICAgICAg
ICAgICAgICBhdXRvIGVuZFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CiAgICAg
ICAgICAgICAKLSAgICAgICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFm
dGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpICYmICFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dh
c0NhbGxlZCkKLSAgICAgICAgICAgICAgICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCB0aW1lZCBv
dXQgYXMgZXhwZWN0ZWQgd2hlbiBubyBjYWxsYmFjayBpcyBzcGVjaWZpZWQuXG4iLCB0aWVyT3B0
aW9ucy50aWVyKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGlmICgoZW5k
VGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpCi0g
ICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IGRpZCBub3QgdGltZSBv
dXQgYXMgZXhwZWN0ZWQgd2hlbiBubyBjYWxsYmFjayBpcyBzcGVjaWZpZWQuXG4iLCB0aWVyT3B0
aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHBy
aW50ZigiRkFJTDogJXMgc2NyaXB0IGNhbGxlZCBzdGFsZSBjYWxsYmFjayBmdW5jdGlvbi5cbiIs
IHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7Ci0gICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCB0
aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgJiYgIXNob3VsZFRlcm1pbmF0ZUNhbGxi
YWNrV2FzQ2FsbGVkKQorICAgICAgICAgICAgICAgICAgICBwcmludGYoIlBBU1M6ICVzIHNjcmlw
dCB0aW1lZCBvdXQgYXMgZXhwZWN0ZWQgd2hlbiBubyBjYWxsYmFjayBpcyBzcGVjaWZpZWQuXG4i
LCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1No
b3VsZEhhdmVGaXJlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMg
c2NyaXB0IGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQgd2hlbiBubyBjYWxsYmFjayBpcyBz
cGVjaWZpZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgY2FsbGVk
IHN0YWxlIGNhbGxiYWNrIGZ1bmN0aW9uLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAg
ICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIAogICAgICAg
ICAgICAgaWYgKCFleGNlcHRpb24pIHsKICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVz
IFRlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24gd2FzIG5vdCB0aHJvd24uXG4iLCB0aWVyT3B0
aW9ucy50aWVyKTsKQEAgLTM0NywyMyArMzU5LDI2IEBAIGludCB0ZXN0RXhlY3V0aW9uVGltZUxp
bWl0KCkKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRpbWVBZnRlcldh
dGNoZG9nU2hvdWxkSGF2ZUZpcmVkLnNlY29uZHMoKSk7CiAgICAgICAgICAgICBzY3JpcHRCdWls
ZGVyLmFwcGVuZExpdGVyYWwoIikgYnJlYWs7IH0gfSBmb28oKTsiKTsKIAotICAgICAgICAgICAg
SlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc2NyaXB0
QnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgZXhjZXB0aW9u
ID0gbnVsbHB0cjsKLSAgICAgICAgICAgIGNhbmNlbFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVk
ID0gZmFsc2U7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzY3JpcHRCdWlsZGVyLnRv
U3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAg
ICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7CisgICAgICAgICAgICAgICAgY2FuY2VsVGVybWlu
YXRlQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKIAotICAgICAgICAgICAgYXV0byBzdGFydFRp
bWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7Ci0gICAgICAgICAgICBKU0V2YWx1YXRl
U2NyaXB0KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7
Ci0gICAgICAgICAgICBhdXRvIGVuZFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7
CisgICAgICAgICAgICAgICAgYXV0byBzdGFydFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhy
ZWFkKCk7CisgICAgICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQs
IG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOworICAgICAgICAgICAgICAgIGF1dG8g
ZW5kVGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKICAgICAgICAgICAgIAotICAg
ICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFmdGVyV2F0Y2hkb2dT
aG91bGRIYXZlRmlyZWQpICYmIGNhbmNlbFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkICYmICFl
eGNlcHRpb24pCi0gICAgICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiAlcyBzY3JpcHQgdGltZW91
dCB3YXMgY2FuY2VsbGVkIGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAg
ICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1l
KSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSB8fCBleGNlcHRpb24pCi0gICAg
ICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgd2FzIG5vdCBj
YW5jZWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBpZiAoIWNh
bmNlbFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQotICAgICAgICAgICAgICAgICAgICBwcmlu
dGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIiwg
dGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKLSAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0
aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgJiYgY2FuY2VsVGVybWluYXRlQ2FsbGJh
Y2tXYXNDYWxsZWQgJiYgIWV4Y2VwdGlvbikKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJQ
QVNTOiAlcyBzY3JpcHQgdGltZW91dCB3YXMgY2FuY2VsbGVkIGFzIGV4cGVjdGVkLlxuIiwgdGll
ck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRI
YXZlRmlyZWQpIHx8IGV4Y2VwdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50Zigi
RkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgd2FzIG5vdCBjYW5jZWxsZWQuXG4iLCB0aWVyT3B0aW9u
cy50aWVyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjYW5jZWxUZXJtaW5hdGVDYWxsYmFj
a1dhc0NhbGxlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2Ny
aXB0IHRpbWVvdXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVy
KTsKKyAgICAgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAg
ICAgCiAgICAgICAgICAgICBpZiAoZXhjZXB0aW9uKSB7CiAgICAgICAgICAgICAgICAgcHJpbnRm
KCJGQUlMOiAlcyBVbmV4cGVjdGVkIFRlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24gdGhyb3du
LlxuIiwgdGllck9wdGlvbnMudGllcik7CkBAIC0zODQsMzMgKzM5OSwzNiBAQCBpbnQgdGVzdEV4
ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZE51bWJl
cihtYXhCdXN5TG9vcFRpbWUuc2Vjb25kcygpKTsgLy8gaW4gc2Vjb25kcy4KICAgICAgICAgICAg
IHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSBicmVhazsgfSB9IGZvbygpOyIpOwogCi0g
ICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZyhzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAg
ICBleGNlcHRpb24gPSBudWxscHRyOwotICAgICAgICAgICAgZXh0ZW5kVGVybWluYXRlQ2FsbGJh
Y2tDYWxsZWQgPSAwOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc2NyaXB0QnVpbGRl
ci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNT
dHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAg
ICAgICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOworICAgICAgICAgICAgICAgIGV4dGVuZFRl
cm1pbmF0ZUNhbGxiYWNrQ2FsbGVkID0gMDsKIAotICAgICAgICAgICAgYXV0byBzdGFydFRpbWUg
PSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7Ci0gICAgICAgICAgICBKU0V2YWx1YXRlU2Ny
aXB0KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7Ci0g
ICAgICAgICAgICBhdXRvIGVuZFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7Ci0g
ICAgICAgICAgICBhdXRvIGRlbHRhVGltZSA9IGVuZFRpbWUgLSBzdGFydFRpbWU7CisgICAgICAg
ICAgICAgICAgYXV0byBzdGFydFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7Cisg
ICAgICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIs
IG51bGxwdHIsIDEsICZleGNlcHRpb24pOworICAgICAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9
IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAgICBhdXRvIGRlbHRh
VGltZSA9IGVuZFRpbWUgLSBzdGFydFRpbWU7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGlm
ICgoZGVsdGFUaW1lID49IHRpbWVCZWZvcmVFeHRlbmRlZERlYWRsaW5lKSAmJiAoZGVsdGFUaW1l
IDwgdGltZUFmdGVyRXh0ZW5kZWREZWFkbGluZSkgJiYgKGV4dGVuZFRlcm1pbmF0ZUNhbGxiYWNr
Q2FsbGVkID09IDIpICYmIGV4Y2VwdGlvbikKLSAgICAgICAgICAgICAgICBwcmludGYoIlBBU1M6
ICVzIHNjcmlwdCB0aW1lb3V0IHdhcyBleHRlbmRlZCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRp
b25zLnRpZXIpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKGRlbHRh
VGltZSA8IHRpbWVCZWZvcmVFeHRlbmRlZERlYWRsaW5lKQotICAgICAgICAgICAgICAgICAgICBw
cmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IHdhcyBub3QgZXh0ZW5kZWQgYXMgZXhwZWN0
ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBlbHNlIGlmIChkZWx0
YVRpbWUgPj0gdGltZUFmdGVyRXh0ZW5kZWREZWFkbGluZSkKLSAgICAgICAgICAgICAgICAgICAg
cHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgZGlkIG5vdCB0aW1lb3V0LlxuIiwgdGllck9wdGlvbnMu
dGllcik7CisgICAgICAgICAgICAgICAgaWYgKChkZWx0YVRpbWUgPj0gdGltZUJlZm9yZUV4dGVu
ZGVkRGVhZGxpbmUpICYmIChkZWx0YVRpbWUgPCB0aW1lQWZ0ZXJFeHRlbmRlZERlYWRsaW5lKSAm
JiAoZXh0ZW5kVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQgPT0gMikgJiYgZXhjZXB0aW9uKQorICAg
ICAgICAgICAgICAgICAgICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCB0aW1lb3V0IHdhcyBleHRl
bmRlZCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAg
IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoZGVsdGFUaW1lIDwgdGltZUJlZm9yZUV4
dGVuZGVkRGVhZGxpbmUpCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVz
IHNjcmlwdCB0aW1lb3V0IHdhcyBub3QgZXh0ZW5kZWQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0
aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZGVsdGFUaW1lID49IHRp
bWVBZnRlckV4dGVuZGVkRGVhZGxpbmUpCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYo
IkZBSUw6ICVzIHNjcmlwdCBkaWQgbm90IHRpbWVvdXQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsK
ICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAoZXh0ZW5kVGVybWluYXRlQ2Fs
bGJhY2tDYWxsZWQgPCAxKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNj
cmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGll
cik7Ci0gICAgICAgICAgICAgICAgaWYgKGV4dGVuZFRlcm1pbmF0ZUNhbGxiYWNrQ2FsbGVkIDwg
MikKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgdGltZW91dCBj
YWxsYmFjayB3YXMgbm90IGNhbGxlZCBhZnRlciB0aW1lb3V0IGV4dGVuc2lvbi5cbiIsIHRpZXJP
cHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoZXh0ZW5kVGVybWluYXRlQ2Fs
bGJhY2tDYWxsZWQgPCAxKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAl
cyBzY3JpcHQgdGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25z
LnRpZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoZXh0ZW5kVGVybWluYXRlQ2FsbGJhY2tD
YWxsZWQgPCAyKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3Jp
cHQgdGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZCBhZnRlciB0aW1lb3V0IGV4dGVuc2lv
bi5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwogICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgIGlmICghZXhjZXB0aW9uKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVz
IFRlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24gd2FzIG5vdCB0aHJvd24gZHVyaW5nIHRpbWVv
dXQgZXh0ZW5zaW9uIHRlc3QuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKCFleGNlcHRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZB
SUw6ICVzIFRlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24gd2FzIG5vdCB0aHJvd24gZHVyaW5n
IHRpbWVvdXQgZXh0ZW5zaW9uIHRlc3QuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKICAgICAgICAg
ICAgICAgICAKLSAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOwotICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KIAog
I2lmIEhBVkUoTUFDSF9FWENFUFRJT05TKQpAQCAtNDI1LDU2ICs0NDMsNjIgQEAgaW50IHRlc3RF
eGVjdXRpb25UaW1lTGltaXQoKQogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmROdW1i
ZXIodGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQuc2Vjb25kcygpKTsKICAgICAgICAg
ICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSBicmVhazsgfSB9IGZvbygpOyIpOwog
Ci0gICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZyhzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAg
ICAgICBleGNlcHRpb24gPSBudWxscHRyOwotICAgICAgICAgICAgZGlzcGF0Y2hUZXJtaW5hdGVD
YWxsYmFja0NhbGxlZCA9IGZhbHNlOwotCi0gICAgICAgICAgICAvLyBXZSBoYXZlIHRvIGRvIHRo
aXMgc2luY2UgYmxvY2tzIGNhbiBvbmx5IGNhcHR1cmUgdGhpbmdzIGFzIGNvbnN0LgotICAgICAg
ICAgICAgSlNHbG9iYWxDb250ZXh0UmVmJiBjb250ZXh0UmVmID0gY29udGV4dDsKLSAgICAgICAg
ICAgIEpTU3RyaW5nUmVmJiBzY3JpcHRSZWYgPSBzY3JpcHQ7Ci0gICAgICAgICAgICBKU1ZhbHVl
UmVmJiBleGNlcHRpb25SZWYgPSBleGNlcHRpb247Ci0KLSAgICAgICAgICAgIExvY2sgc3luY0xv
Y2s7Ci0gICAgICAgICAgICBMb2NrJiBzeW5jTG9ja1JlZiA9IHN5bmNMb2NrOwotICAgICAgICAg
ICAgQ29uZGl0aW9uIHN5bmNocm9uaXplOwotICAgICAgICAgICAgQ29uZGl0aW9uJiBzeW5jaHJv
bml6ZVJlZiA9IHN5bmNocm9uaXplOwotICAgICAgICAgICAgYm9vbCBkaWRTeW5jaHJvbml6ZSA9
IGZhbHNlOwotICAgICAgICAgICAgYm9vbCYgZGlkU3luY2hyb25pemVSZWYgPSBkaWRTeW5jaHJv
bml6ZTsKLQotICAgICAgICAgICAgU2Vjb25kcyBzdGFydFRpbWU7Ci0gICAgICAgICAgICBTZWNv
bmRzIGVuZFRpbWU7Ci0KLSAgICAgICAgICAgIFNlY29uZHMmIHN0YXJ0VGltZVJlZiA9IHN0YXJ0
VGltZTsKLSAgICAgICAgICAgIFNlY29uZHMmIGVuZFRpbWVSZWYgPSBlbmRUaW1lOwotCi0gICAg
ICAgICAgICBkaXNwYXRjaF9ncm91cF90IGdyb3VwID0gZGlzcGF0Y2hfZ3JvdXBfY3JlYXRlKCk7
Ci0gICAgICAgICAgICBkaXNwYXRjaF9ncm91cF9hc3luYyhncm91cCwgZGlzcGF0Y2hfZ2V0X2ds
b2JhbF9xdWV1ZSgwLCAwKSwgXnsKLSAgICAgICAgICAgICAgICBzdGFydFRpbWVSZWYgPSBDUFVU
aW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7Ci0gICAgICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlw
dChjb250ZXh0UmVmLCBzY3JpcHRSZWYsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb25S
ZWYpOwotICAgICAgICAgICAgICAgIGVuZFRpbWVSZWYgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhy
ZWFkKCk7Ci0gICAgICAgICAgICAgICAgYXV0byBsb2NrZXIgPSBXVEY6OmhvbGRMb2NrKHN5bmNM
b2NrUmVmKTsKLSAgICAgICAgICAgICAgICBkaWRTeW5jaHJvbml6ZVJlZiA9IHRydWU7Ci0gICAg
ICAgICAgICAgICAgc3luY2hyb25pemVSZWYubm90aWZ5QWxsKCk7Ci0gICAgICAgICAgICB9KTsK
LQotICAgICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhzeW5jTG9jayk7Ci0gICAgICAg
ICAgICBzeW5jaHJvbml6ZS53YWl0KHN5bmNMb2NrLCBbJl0geyByZXR1cm4gZGlkU3luY2hyb25p
emU7IH0pOwotCi0gICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVB
ZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiBkaXNwYXRjaFRlcm1pbmF0ZUNhbGxiYWNr
Q2FsbGVkKQotICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IG9uIGRpc3Bh
dGNoIHF1ZXVlIHRpbWVkIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwot
ICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKChlbmRUaW1lIC0gc3RhcnRU
aW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkKLSAgICAgICAgICAgICAg
ICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgb24gZGlzcGF0Y2ggcXVldWUgZGlkIG5vdCB0
aW1lIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAg
ICAgIGlmICghc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCi0gICAgICAgICAgICAg
ICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IG9uIGRpc3BhdGNoIHF1ZXVlIHRpbWVvdXQg
Y2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAg
ICAgICAgICBmYWlsZWQgPSB0cnVlOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAg
SlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyaW5n
LT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOwor
ICAgICAgICAgICAgICAgIGRpc3BhdGNoVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsK
KworICAgICAgICAgICAgICAgIC8vIFdlIGhhdmUgdG8gZG8gdGhpcyBzaW5jZSBibG9ja3MgY2Fu
IG9ubHkgY2FwdHVyZSB0aGluZ3MgYXMgY29uc3QuCisgICAgICAgICAgICAgICAgSlNHbG9iYWxD
b250ZXh0UmVmJiBjb250ZXh0UmVmID0gY29udGV4dDsKKyAgICAgICAgICAgICAgICBKU1N0cmlu
Z1JlZiYgc2NyaXB0UmVmID0gc2NyaXB0OworICAgICAgICAgICAgICAgIEpTVmFsdWVSZWYmIGV4
Y2VwdGlvblJlZiA9IGV4Y2VwdGlvbjsKKworICAgICAgICAgICAgICAgIExvY2sgc3luY0xvY2s7
CisgICAgICAgICAgICAgICAgTG9jayYgc3luY0xvY2tSZWYgPSBzeW5jTG9jazsKKyAgICAgICAg
ICAgICAgICBDb25kaXRpb24gc3luY2hyb25pemU7CisgICAgICAgICAgICAgICAgQ29uZGl0aW9u
JiBzeW5jaHJvbml6ZVJlZiA9IHN5bmNocm9uaXplOworICAgICAgICAgICAgICAgIGJvb2wgZGlk
U3luY2hyb25pemUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBib29sJiBkaWRTeW5jaHJvbml6
ZVJlZiA9IGRpZFN5bmNocm9uaXplOworCisgICAgICAgICAgICAgICAgU2Vjb25kcyBzdGFydFRp
bWU7CisgICAgICAgICAgICAgICAgU2Vjb25kcyBlbmRUaW1lOworCisgICAgICAgICAgICAgICAg
U2Vjb25kcyYgc3RhcnRUaW1lUmVmID0gc3RhcnRUaW1lOworICAgICAgICAgICAgICAgIFNlY29u
ZHMmIGVuZFRpbWVSZWYgPSBlbmRUaW1lOworCisgICAgICAgICAgICAgICAgZGlzcGF0Y2hfZ3Jv
dXBfdCBncm91cCA9IGRpc3BhdGNoX2dyb3VwX2NyZWF0ZSgpOworICAgICAgICAgICAgICAgIGRp
c3BhdGNoX2dyb3VwX2FzeW5jKGdyb3VwLCBkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKDAsIDAp
LCBeeworICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWVSZWYgPSBDUFVUaW1lOjpmb3JDdXJy
ZW50VGhyZWFkKCk7CisgICAgICAgICAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4
dFJlZiwgc2NyaXB0UmVmLCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uUmVmKTsKKyAg
ICAgICAgICAgICAgICAgICAgZW5kVGltZVJlZiA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQo
KTsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBsb2NrZXIgPSBXVEY6OmhvbGRMb2NrKHN5bmNM
b2NrUmVmKTsKKyAgICAgICAgICAgICAgICAgICAgZGlkU3luY2hyb25pemVSZWYgPSB0cnVlOwor
ICAgICAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZVJlZi5ub3RpZnlBbGwoKTsKKyAgICAgICAg
ICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soc3lu
Y0xvY2spOworICAgICAgICAgICAgICAgIHN5bmNocm9uaXplLndhaXQoc3luY0xvY2ssIFsmXSB7
IHJldHVybiBkaWRTeW5jaHJvbml6ZTsgfSk7CisKKyAgICAgICAgICAgICAgICBpZiAoKChlbmRU
aW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiBk
aXNwYXRjaFRlcm1pbmF0ZUNhbGxiYWNrQ2FsbGVkKQorICAgICAgICAgICAgICAgICAgICBwcmlu
dGYoIlBBU1M6ICVzIHNjcmlwdCBvbiBkaXNwYXRjaCBxdWV1ZSB0aW1lZCBvdXQgYXMgZXhwZWN0
ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRj
aGRvZ1Nob3VsZEhhdmVGaXJlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJ
TDogJXMgc2NyaXB0IG9uIGRpc3BhdGNoIHF1ZXVlIGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0
ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFzaG91
bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHBy
aW50ZigiRkFJTDogJXMgc2NyaXB0IG9uIGRpc3BhdGNoIHF1ZXVlIHRpbWVvdXQgY2FsbGJhY2sg
d2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICAg
ICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAjZW5kaWYKIAogICAgICAgICBK
U0dsb2JhbENvbnRleHRSZWxlYXNlKGNvbnRleHQpOwogCi0gICAgICAgIE9wdGlvbnM6OnNldE9w
dGlvbnMoc2F2ZWRPcHRpb25zQnVpbGRlci50b1N0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKKyAg
ICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc2F2ZWRPcHRpb25zQnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICAgICAgT3B0aW9uczo6c2V0T3B0aW9ucyhzdHJpbmctPmFzY2lpKCkuZGF0YSgpKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgCiAgICAgcmV0
dXJuIGZhaWxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMv
UGluZ1BvbmdTdGFja092ZXJmbG93VGVzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L3Rlc3RzL1BpbmdQb25nU3RhY2tPdmVyZmxvd1Rlc3QuY3BwCmluZGV4IDA0MmJlYmYuLjExMjMw
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvUGluZ1BvbmdT
dGFja092ZXJmbG93VGVzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0
cy9QaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcApAQCAtNjQsOSArNjQsMTIgQEAgc3RhdGlj
IGJvb2wgUGluZ1BvbmdTdGFja092ZXJmbG93T2JqZWN0X2hhc0luc3RhbmNlKEpTQ29udGV4dFJl
ZiBjb250ZXh0LCBKU09iamUKICAgICAgICAgfQogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVy
YWwoIik7Iik7CiAKLSAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoYnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAg
ICByZXN1bHQgPSBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNjcmlwdCwgTlVMTCwgTlVMTCwg
MSwgZXhjZXB0aW9uKTsKLSAgICAgICAgSlNTdHJpbmdSZWxlYXNlKHNjcmlwdCk7CisgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgSlNT
dHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyaW5nLT51
dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IEpTRXZhbHVhdGVTY3JpcHQoY29u
dGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCBleGNlcHRpb24pOworICAgICAgICAg
ICAgSlNTdHJpbmdSZWxlYXNlKHNjcmlwdCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
Q1JBU0goKTsKICAgICB9CiAKICAgICAtLW5hdGl2ZVJlY3Vyc2lvbkNvdW50OwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKaW5kZXggNjVhNTJjMS4uYTdjYWZjOSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsOTggQEAKKzIwMTgtMDQtMjYgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5A
YXBwbGUuY29tPgorCisgICAgICAgIFN0cmluZ0J1aWxkZXIgaXMgZmFsbGlibGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTA0OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0cmluZ0J1aWxkZXIgY2Fu
IGZhaWwgd2hlbiBhbGxvY2F0aW5nIG1lbW9yeS4gU3RyaW5nQnVpbGRlciBpcworICAgICAgICBt
b3N0bHkgdXNlZCB3aXRoIHVzZXIgaW5wdXQsIHdoaWNoIG9mdGVuIG1lYW5zIHRoYXQganVzdCBj
cmFzaGluZworICAgICAgICBpc24ndCB0aGUgcmlnaHQgb3V0Y29tZS4gT3VyIGZ1enplcnMgb2Z0
ZW4gZW5jb3VudGVyIHN1Y2ggdGhpbmdzCisgICAgICAgIGZvciBKYXZhU2NyaXB0Q29yZSwgYW5k
IHNvIGZhciB3ZSd2ZSBhcHBsaWVkIHBvaW50IHNvbHV0aW9ucy4gTm8KKyAgICAgICAgbW9yZSEK
KworICAgICAgICAqIEFQSS9KU0NvbnRleHRSZWYuY3BwOgorICAgICAgICAoSlNDb250ZXh0Q3Jl
YXRlQmFja3RyYWNlKToKKyAgICAgICAgKiBBUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0VGVz
dC5jcHA6CisgICAgICAgICh0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KToKKyAgICAgICAgKiBBUEkv
dGVzdHMvUGluZ1BvbmdTdGFja092ZXJmbG93VGVzdC5jcHA6CisgICAgICAgIChQaW5nUG9uZ1N0
YWNrT3ZlcmZsb3dPYmplY3RfaGFzSW5zdGFuY2UpOgorICAgICAgICAqIGRmZy9ERkdTdHJlbmd0
aFJlZHVjdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTdHJlbmd0aFJlZHVjdGlv
blBoYXNlOjpoYW5kbGVOb2RlKToKKyAgICAgICAgKiBoZWFwL0hlYXBTbmFwc2hvdEJ1aWxkZXIu
Y3BwOgorICAgICAgICAoSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyOjpqc29uKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpDb25z
b2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2UpOgorICAgICAgICAqIGluc3BlY3Rvci9Db250ZW50
U2VhcmNoVXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6Q29udGVudFNlYXJjaFV0
aWxpdGllczo6Y3JlYXRlU2VhcmNoUmVnZXhTb3VyY2UpOgorICAgICAgICAqIGludGVycHJldGVy
L0ludGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OnN0YWNrVHJhY2VB
c1N0cmluZyk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcDoKKyAgICAg
ICAgKEpTQzo6U3RhY2tWaXNpdG9yOjpGcmFtZTo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAq
IGpzYy5jcHA6CisgICAgICAgIChyZXNvbHZlUGF0aCk6CisgICAgICAgIChmdW5jdGlvbkpTQ1N0
YWNrKToKKyAgICAgICAgKiBydW50aW1lL0NvbmZpZ0ZpbGUuY3BwOgorICAgICAgICAoSlNDOjpD
b25maWdGaWxlOjpwYXJzZSk6CisgICAgICAgICogcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcDoK
KyAgICAgICAgKEpTQzo6Q29uc29sZUNsaWVudDo6cHJpbnRDb25zb2xlTWVzc2FnZSk6CisgICAg
ICAgIChKU0M6OkNvbnNvbGVDbGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2VXaXRoQXJndW1lbnRz
KToKKyAgICAgICAgKiBydW50aW1lL0RhdGVDb252ZXJzaW9uLmNwcDoKKyAgICAgICAgKEpTQzo6
Zm9ybWF0RGF0ZVRpbWUpOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHA6Cisg
ICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6OnNhbml0aXplZFRvU3RyaW5nKToKKyAgICAgICAg
KiBydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwOgorICAgICAgICAoSlNDOjpub3RBRnVuY3Rp
b25Tb3VyY2VBcHBlbmRlcik6CisgICAgICAgICogcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9y
LmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0RnVuY3Rpb25Ta2lwcGluZ0V2YWxFbmFibGVk
Q2hlY2spOgorICAgICAgICAqIHJ1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcDoKKyAgICAg
ICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQpOgor
ICAgICAgICAqIHJ1bnRpbWUvSW50bE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OnByaXZhdGVV
c2VMYW5nVGFnKToKKyAgICAgICAgKEpTQzo6Y2Fub25pY2FsTGFuZ1RhZyk6CisgICAgICAgIChK
U0M6OnJlbW92ZVVuaWNvZGVMb2NhbGVFeHRlbnNpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNH
bG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjplbmNvZGUpOgorICAgICAg
ICAoSlNDOjpkZWNvZGUpOgorICAgICAgICAoSlNDOjpnbG9iYWxGdW5jRXNjYXBlKToKKyAgICAg
ICAgKEpTQzo6Z2xvYmFsRnVuY1VuZXNjYXBlKToKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmpl
Y3QuY3BwOgorICAgICAgICAoSlNDOjpTdHJpbmdpZmllcjo6c3RyaW5naWZ5KToKKyAgICAgICAg
KEpTQzo6U3RyaW5naWZpZXI6OkhvbGRlcjo6YXBwZW5kTmV4dFByb3BlcnR5KToKKyAgICAgICAg
KiBydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpMaXRlcmFsUGFyc2Vy
PENoYXJUeXBlPjo6TGV4ZXI6OmxleFN0cmluZ1Nsb3cpOgorICAgICAgICAqIHJ1bnRpbWUvT3B0
aW9ucy5jcHA6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OmR1bXBPcHRpb25zSWZOZWVkZWQpOgor
ICAgICAgICAoSlNDOjpPcHRpb25zOjpkdW1wQWxsT3B0aW9ucyk6CisgICAgICAgICogcnVudGlt
ZS9SZWdFeHBQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0dldHRlclNv
dXJjZUludGVybmFsKToKKyAgICAgICAgKiBydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwOgor
ICAgICAgICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjpzdGFja1RyYWNlc0FzSlNPTik6CisgICAg
ICAgICogcnVudGltZS9TdGFja0ZyYW1lLmNwcDoKKyAgICAgICAgKEpTQzo6U3RhY2tGcmFtZTo6
dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3Bw
OgorICAgICAgICAoSlNDOjpzdHJpbmdGcm9tQ29kZVBvaW50KToKKyAgICAgICAgKiBydW50aW1l
L1N0cmluZ1Byb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OnN1YnN0aXR1dGVCYWNrcmVmZXJl
bmNlc1Nsb3cpOgorICAgICAgICAqIHJ1bnRpbWUvVHlwZVByb2ZpbGVyLmNwcDoKKyAgICAgICAg
KEpTQzo6VHlwZVByb2ZpbGVyOjp0eXBlSW5mb3JtYXRpb25Gb3JFeHByZXNzaW9uQXRPZmZzZXQp
OgorICAgICAgICAqIHJ1bnRpbWUvVHlwZVNldC5jcHA6CisgICAgICAgIChKU0M6OlR5cGVTZXQ6
OmR1bXBUeXBlcyBjb25zdCk6CisgICAgICAgIChKU0M6OlR5cGVTZXQ6OnRvSlNPTlN0cmluZyBj
b25zdCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVNoYXBlOjpwcm9wZXJ0eUhhc2gpOgorICAg
ICAgICAoSlNDOjpTdHJ1Y3R1cmVTaGFwZTo6c3RyaW5nUmVwcmVzZW50YXRpb24pOgorICAgICAg
ICAoSlNDOjpTdHJ1Y3R1cmVTaGFwZTo6dG9KU09OU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiB0
ZXN0UmVnRXhwLmNwcDoKKyAgICAgICAgKHBhcnNlUmVnRXhwTGluZSk6CisgICAgICAgIChwYXJz
ZVRlc3RMaW5lKToKKyAgICAgICAgKiB0b29scy9GdW5jdGlvbk92ZXJyaWRlcy5jcHA6CisgICAg
ICAgIChKU0M6OnBhcnNlQ2xhdXNlKToKKyAgICAgICAgKiB3YXNtL1dhc21CQlFQbGFuLmNwcDoK
KyAgICAgICAgKEpTQzo6V2FzbTo6QkJRUGxhbjo6cHJlcGFyZSk6CisgICAgICAgICogeWFyci9Z
YXJyUGFyc2VyLmg6CisgICAgICAgIChKU0M6OllhcnI6OlBhcnNlcjo6dHJ5Q29uc3VtZUdyb3Vw
TmFtZSk6CisgICAgICAgIChKU0M6OllhcnI6OlBhcnNlcjo6dHJ5Q29uc3VtZVVuaWNvZGVQcm9w
ZXJ0eUV4cHJlc3Npb24pOgorCiAyMDE4LTA0LTI1ICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3Nl
dEBhcHBsZS5jb20+CiAKICAgICAgICAgSW4gRlRMTG93ZXJERkdUb0IzLmNwcDo6Y29tcGlsZUNy
ZWF0ZVJlc3QsIGFsd2F5cyB1c2UgYSBjb250aWd1b3VzIGFycmF5IGFzIHRoZSBpbmRleGluZyB0
eXBlIHdoZW4gdW5kZXIgaXNXYXRjaGluZ0hhdmluZ0FCYWRUaW1lV2F0Y2hwb2ludApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFz
ZS5jcHAKaW5kZXggNWMxYmU2OC4uZjcwYzcxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwCkBAIC0zNjEsOCAr
MzYxLDExIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
OwogICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGxlZnRTdHJpbmcpOwogICAgICAgICAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKHJpZ2h0U3RyaW5nKTsKLSAgICAgICAgICAgICAgICBtX25v
ZGUtPmNvbnZlcnRUb0xhenlKU0NvbnN0YW50KAotICAgICAgICAgICAgICAgICAgICBtX2dyYXBo
LCBMYXp5SlNWYWx1ZTo6bmV3U3RyaW5nKG1fZ3JhcGgsIGJ1aWxkZXIudG9TdHJpbmcoKSkpOwor
ICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkgewor
ICAgICAgICAgICAgICAgICAgICBtX25vZGUtPmNvbnZlcnRUb0xhenlKU0NvbnN0YW50KAorICAg
ICAgICAgICAgICAgICAgICAgICAgbV9ncmFwaCwgTGF6eUpTVmFsdWU6Om5ld1N0cmluZyhtX2dy
YXBoLCAqc3RyaW5nKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAg
ICAgIENSQVNIKCk7CiAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzg5LDggKzM5MiwxMSBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgaWYgKCEhZXh0cmFTdHJpbmcpCiAgICAgICAgICAgICAgICAgYnVpbGRlci5h
cHBlbmQoZXh0cmFTdHJpbmcpOwogCi0gICAgICAgICAgICBtX25vZGUtPmNvbnZlcnRUb0xhenlK
U0NvbnN0YW50KAotICAgICAgICAgICAgICAgIG1fZ3JhcGgsIExhenlKU1ZhbHVlOjpuZXdTdHJp
bmcobV9ncmFwaCwgYnVpbGRlci50b1N0cmluZygpKSk7CisgICAgICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBtX25vZGUtPmNv
bnZlcnRUb0xhenlKU0NvbnN0YW50KAorICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLCBMYXp5
SlNWYWx1ZTo6bmV3U3RyaW5nKG1fZ3JhcGgsICpzdHJpbmcpKTsKKyAgICAgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVl
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTg4Miw5ICs4ODgsMTIgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIGlmIChsYXN0SW5kZXgg
PCBzdHJpbmcubGVuZ3RoKCkpCiAgICAgICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHN0
cmluZywgbGFzdEluZGV4LCBzdHJpbmcubGVuZ3RoKCkgLSBsYXN0SW5kZXgpOwotICAgICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAgIG1fbm9kZS0+Y29udmVydFRvTGF6eUpTQ29uc3RhbnQo
Ci0gICAgICAgICAgICAgICAgICAgIG1fZ3JhcGgsIExhenlKU1ZhbHVlOjpuZXdTdHJpbmcobV9n
cmFwaCwgYnVpbGRlci50b1N0cmluZygpKSk7CisKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9ub2Rl
LT5jb252ZXJ0VG9MYXp5SlNDb25zdGFudCgKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZ3Jh
cGgsIExhenlKU1ZhbHVlOjpuZXdTdHJpbmcobV9ncmFwaCwgKnN0cmluZykpOworICAgICAgICAg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAg
fQogCiAgICAgICAgICAgICBtX25vZGUtPm9yaWdpbiA9IG9yaWdpbjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBTbmFwc2hvdEJ1aWxkZXIuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFNuYXBzaG90QnVpbGRlci5jcHAKaW5kZXggNjVmNjMz
Zi4uZTFhYWQxYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFNu
YXBzaG90QnVpbGRlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFNu
YXBzaG90QnVpbGRlci5jcHAKQEAgLTM4Nyw3ICszODcsOSBAQCBTdHJpbmcgSGVhcFNuYXBzaG90
QnVpbGRlcjo6anNvbihzdGQ6OmZ1bmN0aW9uPGJvb2wgKGNvbnN0IEhlYXBTbmFwc2hvdE5vZGUm
KT4gYQogICAgIGpzb24uYXBwZW5kKCddJyk7CiAKICAgICBqc29uLmFwcGVuZCgnfScpOwotICAg
IHJldHVybiBqc29uLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0ganNvbi50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvQ29uc29sZU1lc3NhZ2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9D
b25zb2xlTWVzc2FnZS5jcHAKaW5kZXggNWNmYjA0ZC4uNzFlNGZjNSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKQEAgLTExNSw3
ICsxMTUsMTAgQEAgQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ug
c291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGUKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIEpTT05Mb2dWYWx1ZTo6VHlwZTo6SlNPTjoKICAgICAgICAgICAgIGlmIChi
dWlsZGVyLmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICAgICAgbV9qc29uTG9nVmFsdWVzLmFwcGVu
ZCh7IEpTT05Mb2dWYWx1ZTo6VHlwZTo6U3RyaW5nLCBKU09OOjpWYWx1ZTo6Y3JlYXRlKGJ1aWxk
ZXIudG9TdHJpbmcoKSktPnRvSlNPTlN0cmluZygpIH0pOworICAgICAgICAgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgbV9q
c29uTG9nVmFsdWVzLmFwcGVuZCh7IEpTT05Mb2dWYWx1ZTo6VHlwZTo6U3RyaW5nLCBKU09OOjpW
YWx1ZTo6Y3JlYXRlKCpzdHJpbmcpLT50b0pTT05TdHJpbmcoKSB9KTsKKyAgICAgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAgICAgYnVp
bGRlci5yZXNpemUoMCk7CiAgICAgICAgICAgICB9CiAKQEAgLTEyNCw4ICsxMjcsMTIgQEAgQ29u
c29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdl
VHlwZSB0eXBlLCBNZXNzYWdlTGUKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChidWlsZGVy
Lmxlbmd0aCgpKQotICAgICAgICBtX2pzb25Mb2dWYWx1ZXMuYXBwZW5kKHsgSlNPTkxvZ1ZhbHVl
OjpUeXBlOjpTdHJpbmcsIEpTT046OlZhbHVlOjpjcmVhdGUoYnVpbGRlci50b1N0cmluZygpKS0+
dG9KU09OU3RyaW5nKCkgfSk7CisgICAgaWYgKGJ1aWxkZXIubGVuZ3RoKCkpIHsKKyAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgbV9qc29u
TG9nVmFsdWVzLmFwcGVuZCh7IEpTT05Mb2dWYWx1ZTo6VHlwZTo6U3RyaW5nLCBKU09OOjpWYWx1
ZTo6Y3JlYXRlKCpzdHJpbmcpLT50b0pTT05TdHJpbmcoKSB9KTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgQ1JBU0goKTsKKyAgICB9CiAKICAgICBpZiAobV9qc29uTG9nVmFsdWVzLnNpemUo
KSkKICAgICAgICAgbV9tZXNzYWdlID0gbV9qc29uTG9nVmFsdWVzWzBdLnZhbHVlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0
aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0
aWxpdGllcy5jcHAKaW5kZXggYWFhODFlMi4uYjBjMTk0NCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0aWVzLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlsaXRpZXMuY3Bw
CkBAIC01NSw3ICs1NSw5IEBAIHN0YXRpYyBTdHJpbmcgY3JlYXRlU2VhcmNoUmVnZXhTb3VyY2Uo
Y29uc3QgU3RyaW5nJiB0ZXh0KQogICAgICAgICByZXN1bHQuYXBwZW5kKGNoYXJhY3Rlcik7CiAg
ICAgfQogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBzdGF0aWMgaW5saW5lIHNpemVfdCBzaXpldEV4dHJhY3Rvcihjb25zdCBzaXpl
X3QqIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L0ludGVycHJldGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRl
cnByZXRlci5jcHAKaW5kZXggNGY3MjcwOS4uZWQxNzQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCkBAIC01NzcsNyArNTc3LDkg
QEAgSlNTdHJpbmcqIEludGVycHJldGVyOjpzdGFja1RyYWNlQXNTdHJpbmcoVk0mIHZtLCBjb25z
dCBWZWN0b3I8U3RhY2tGcmFtZT4mIHN0YWMKICAgICAgICAgaWYgKGkgIT0gc3RhY2tUcmFjZS5z
aXplKCkgLSAxKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7CiAgICAgfQotICAg
IHJldHVybiBqc1N0cmluZygmdm0sIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4ganNTdHJpbmcoJnZt
LCAqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiBBTFdBWVNfSU5MSU5FIHN0YXRpYyBIYW5k
bGVySW5mbyogZmluZEV4Y2VwdGlvbkhhbmRsZXIoU3RhY2tWaXNpdG9yJiB2aXNpdG9yLCBDb2Rl
QmxvY2sqIGNvZGVCbG9jaywgUmVxdWlyZWRIYW5kbGVyIHJlcXVpcmVkSGFuZGxlcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5jcHAKaW5k
ZXggMWQxZmY3My4uNzBjZDExNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
dGVycHJldGVyL1N0YWNrVmlzaXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
dGVycHJldGVyL1N0YWNrVmlzaXRvci5jcHAKQEAgLTM0Nyw3ICszNDcsOSBAQCBTdHJpbmcgU3Rh
Y2tWaXNpdG9yOjpGcmFtZTo6dG9TdHJpbmcoKSBjb25zdAogICAgICAgICAgICAgdHJhY2VCdWls
ZC5hcHBlbmROdW1iZXIoY29sdW1uKTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gdHJh
Y2VCdWlsZC50b1N0cmluZygpLmltcGwoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0cmFjZUJ1
aWxkLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBzdHJpbmctPmltcGwoKTsKKyAgICBDUkFT
SCgpOwogfQogCiBpbnRwdHJfdCBTdGFja1Zpc2l0b3I6OkZyYW1lOjpzb3VyY2VJRCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qc2MuY3BwCmluZGV4IDRhNzNlODcuLjNmYTQ2NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3Bw
CkBAIC03NjUsNyArNzY1LDkgQEAgc3RhdGljIFN0cmluZyByZXNvbHZlUGF0aChjb25zdCBEaXJl
Y3RvcnlOYW1lJiBkaXJlY3RvcnlOYW1lLCBjb25zdCBNb2R1bGVOYW1lJgogICAgICAgICBpZiAo
aSArIDEgIT0gZGlyZWN0b3J5UGllY2VzLnNpemUoKSkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKHBhdGhTZXBhcmF0b3IoKSk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIGFic29sdXRl
UGF0aChjb25zdCBTdHJpbmcmIGZpbGVOYW1lKQpAQCAtMTEyNSw4ICsxMTI3LDExIEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25KU0NTdGFjayhFeGVjU3RhdGUqIGV4ZWMp
CiAKICAgICBGdW5jdGlvbkpTQ1N0YWNrRnVuY3RvciBmdW5jdG9yKHRyYWNlKTsKICAgICBleGVj
LT5pdGVyYXRlKGZ1bmN0b3IpOwotICAgIGZwcmludGYoc3RkZXJyLCAiJXMiLCB0cmFjZS50b1N0
cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdHJhY2UudG9TdHJpbmcoKSkgeworICAg
ICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9CisgICAgQ1JB
U0goKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdDQW5kU3dl
ZXAoRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29uZmlnRmlsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25m
aWdGaWxlLmNwcAppbmRleCBiYjg3NjY2Li5mN2VjZGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db25maWdGaWxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db25maWdGaWxlLmNwcApAQCAtNDY1LDkgKzQ2NSwxMiBAQCB2b2lkIENv
bmZpZ0ZpbGU6OnBhcnNlKCkKICAgICAgICAgICAgIFdURjo6c2V0RGF0YUZpbGUobG9nUGF0aG5h
bWUpOwogCiAgICAgICAgIGlmICghanNjT3B0aW9uc0J1aWxkZXIuaXNFbXB0eSgpKSB7Ci0gICAg
ICAgICAgICBjb25zdCBjaGFyKiBvcHRpb25zU3RyID0ganNjT3B0aW9uc0J1aWxkZXIudG9TdHJp
bmcoKS51dGY4KCkuZGF0YSgpOwotICAgICAgICAgICAgT3B0aW9uczo6ZW5hYmxlUmVzdHJpY3Rl
ZE9wdGlvbnModHJ1ZSk7Ci0gICAgICAgICAgICBPcHRpb25zOjpzZXRPcHRpb25zKG9wdGlvbnNT
dHIpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0ganNjT3B0aW9uc0J1aWxkZXIudG9T
dHJpbmcoKSkgeworICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIG9wdGlvbnNTdHIgPSBzdHJp
bmctPnV0ZjgoKS5kYXRhKCk7CisgICAgICAgICAgICAgICAgT3B0aW9uczo6ZW5hYmxlUmVzdHJp
Y3RlZE9wdGlvbnModHJ1ZSk7CisgICAgICAgICAgICAgICAgT3B0aW9uczo6c2V0T3B0aW9ucyhv
cHRpb25zU3RyKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7
CiAgICAgICAgIH0KICAgICB9IGVsc2UKICAgICAgICAgV1RGOjpkYXRhTG9nRigiRXJyb3IgaW4g
SlNDIENvbmZpZyBmaWxlIG9uIG9yIG5lYXIgbGluZSAldSwgcGFyc2luZyAnJXMnXG4iLCBzY2Fu
bmVyLmxpbmVOdW1iZXIoKSwgc2Nhbm5lci5jdXJyZW50QnVmZmVyKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcAppbmRleCAyOTE3ZDc2OC4u
Yjg2NjQzYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29s
ZUNsaWVudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNs
aWVudC5jcHAKQEAgLTE0NCw3ICsxNDQsMTAgQEAgdm9pZCBDb25zb2xlQ2xpZW50OjpwcmludENv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLAogICAg
IGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgYnVpbGRlci5hcHBlbmQobWVzc2FnZSk7CiAKLSAg
ICBXVEZMb2dBbHdheXMoIiVzIiwgYnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgV1RGTG9n
QWx3YXlzKCIlcyIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgZWxzZQorICAgICAgICBD
UkFTSCgpOwogfQogCiB2b2lkIENvbnNvbGVDbGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2VXaXRo
QXJndW1lbnRzKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdl
TGV2ZWwgbGV2ZWwsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYm
IGFyZ3VtZW50cykKQEAgLTE3MCw3ICsxNzMsMTAgQEAgdm9pZCBDb25zb2xlQ2xpZW50Ojpwcmlu
dENvbnNvbGVNZXNzYWdlV2l0aEFyZ3VtZW50cyhNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2EK
ICAgICAgICAgc2NvcGUuY2xlYXJFeGNlcHRpb24oKTsKICAgICB9CiAKLSAgICBXVEZMb2dBbHdh
eXMoIiVzIiwgYnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgV1RGTG9nQWx3YXlzKCIlcyIs
IHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAg
ICAgaWYgKGlzVHJhY2VNZXNzYWdlKSB7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
Y2FsbFN0YWNrLT5zaXplKCk7ICsraSkgewpAQCAtMTg3LDcgKzE5MywxMCBAQCB2b2lkIENvbnNv
bGVDbGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2VXaXRoQXJndW1lbnRzKE1lc3NhZ2VTb3VyY2Ug
c291cmNlLCBNZXNzYQogICAgICAgICAgICAgYXBwZW5kVVJMQW5kUG9zaXRpb24oY2FsbEZyYW1l
QnVpbGRlciwgY2FsbEZyYW1lLnNvdXJjZVVSTCgpLCBjYWxsRnJhbWUubGluZU51bWJlcigpLCBj
YWxsRnJhbWUuY29sdW1uTnVtYmVyKCkpOwogICAgICAgICAgICAgY2FsbEZyYW1lQnVpbGRlci5h
cHBlbmQoJyknKTsKIAotICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCIlcyIsIGNhbGxGcmFtZUJ1
aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IGNhbGxGcmFtZUJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICBXVEZM
b2dBbHdheXMoIiVzIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwCmluZGV4IDhhODdj
YzYuLjQyM2JlMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rh
dGVDb252ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRl
Q29udmVyc2lvbi5jcHAKQEAgLTEyMyw3ICsxMjMsOSBAQCBTdHJpbmcgZm9ybWF0RGF0ZVRpbWUo
Y29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUmIHQsIERhdGVUaW1lRm9ybWF0IGZvcm1hdCwgYm9vbCBh
cwogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKS5pbXBs
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gc3RyaW5nLT5pbXBsKCk7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3Rh
bmNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3Bw
CmluZGV4IGMxNzI0MjguLjc4ZDI5OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCkBAIC0xOTksNyArMTk5LDkgQEAgU3RyaW5nIEVycm9y
SW5zdGFuY2U6OnNhbml0aXplZFRvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKICAgICBidWlsZGVy
LmFwcGVuZChuYW1lU3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjogIik7CiAg
ICAgYnVpbGRlci5hcHBlbmQobWVzc2FnZVN0cmluZyk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgRXJyb3JJbnN0YW5j
ZTo6bWF0ZXJpYWxpemVFcnJvckluZm9JZk5lZWRlZChWTSYgdm0pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCmluZGV4IDY5OTE0NGIu
LjZlMDFiOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2Vw
dGlvbkhlbHBlcnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2Vw
dGlvbkhlbHBlcnMuY3BwCkBAIC0yMTEsNyArMjExLDkgQEAgc3RhdGljIFN0cmluZyBub3RBRnVu
Y3Rpb25Tb3VyY2VBcHBlbmRlcihjb25zdCBTdHJpbmcmIG9yaWdpbmFsTWVzc2FnZSwgY29uc3Qg
U3QKICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKIAotICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5n
IGludmFsaWRQYXJhbWV0ZXJJblNvdXJjZUFwcGVuZGVyKGNvbnN0IFN0cmluZyYgb3JpZ2luYWxN
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVRleHQsIFJ1bnRpbWVUeXBlIHR5cGUsIEVycm9y
SW5zdGFuY2U6OlNvdXJjZVRleHRXaGVyZUVycm9yT2NjdXJyZWQgb2NjdXJyZW5jZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3Iu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5j
cHAKaW5kZXggMDMxZmUzMi4uZGJhNWY4NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKQEAgLTE0MywxNCArMTQzLDE3
IEBAIEpTT2JqZWN0KiBjb25zdHJ1Y3RGdW5jdGlvblNraXBwaW5nRXZhbEVuYWJsZWRDaGVjaygK
ICAgICAgICAgewogICAgICAgICAgICAgLy8gVGhlIHNwZWMgbWFuZGF0ZXMgdGhhdCB0aGUgcGFy
YW1ldGVycyBwYXJzZSBhcyBhIHZhbGlkIHBhcmFtZXRlciBsaXN0CiAgICAgICAgICAgICAvLyBp
bmRlcGVuZGVudCBvZiB0aGUgZnVuY3Rpb24gYm9keS4KLSAgICAgICAgICAgIFN0cmluZyBwcm9n
cmFtID0gbWFrZVN0cmluZygiKCIsIHByZWZpeCwgIigiLCBwYXJhbWV0ZXJCdWlsZGVyLnRvU3Ry
aW5nKCksICIpe1xuXG59KSIpOwotICAgICAgICAgICAgU291cmNlQ29kZSBzb3VyY2UgPSBtYWtl
U291cmNlKHByb2dyYW0sIHNvdXJjZU9yaWdpbiwgc291cmNlVVJMLCBwb3NpdGlvbik7Ci0gICAg
ICAgICAgICBKU1ZhbHVlIGV4Y2VwdGlvbjsKLSAgICAgICAgICAgIGNoZWNrU3ludGF4KGV4ZWMs
IHNvdXJjZSwgJmV4Y2VwdGlvbik7Ci0gICAgICAgICAgICBpZiAoZXhjZXB0aW9uKSB7Ci0gICAg
ICAgICAgICAgICAgc2NvcGUudGhyb3dFeGNlcHRpb24oZXhlYywgZXhjZXB0aW9uKTsKLSAgICAg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlm
IChhdXRvIHN0cmluZyA9IHBhcmFtZXRlckJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAg
ICAgICAgIFN0cmluZyBwcm9ncmFtID0gbWFrZVN0cmluZygiKCIsIHByZWZpeCwgIigiLCAqc3Ry
aW5nLCAiKXtcblxufSkiKTsKKyAgICAgICAgICAgICAgICBTb3VyY2VDb2RlIHNvdXJjZSA9IG1h
a2VTb3VyY2UocHJvZ3JhbSwgc291cmNlT3JpZ2luLCBzb3VyY2VVUkwsIHBvc2l0aW9uKTsKKyAg
ICAgICAgICAgICAgICBKU1ZhbHVlIGV4Y2VwdGlvbjsKKyAgICAgICAgICAgICAgICBjaGVja1N5
bnRheChleGVjLCBzb3VyY2UsICZleGNlcHRpb24pOworICAgICAgICAgICAgICAgIGlmIChleGNl
cHRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgc2NvcGUudGhyb3dFeGNlcHRpb24oZXhlYywg
ZXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsK
ICAgICAgICAgfQogCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHBhcmFtZXRlckJ1aWxkZXIpOwpA
QCAtMTYxLDcgKzE2NCwxMCBAQCBKU09iamVjdCogY29uc3RydWN0RnVuY3Rpb25Ta2lwcGluZ0V2
YWxFbmFibGVkQ2hlY2soCiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxw
dHIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChib2R5KTsKICAgICAgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJcbn19Iik7Ci0gICAgICAgIHByb2dyYW0gPSBidWlsZGVyLnRvU3RyaW5nKCk7
CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
ICAgIHByb2dyYW0gPSAqc3RyaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgp
OwogICAgIH0KIAogICAgIFNvdXJjZUNvZGUgc291cmNlID0gbWFrZVNvdXJjZShwcm9ncmFtLCBz
b3VyY2VPcmlnaW4sIHNvdXJjZVVSTCwgcG9zaXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAKaW5kZXggYzkyMGFjZi4u
MmMyZjA0NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERh
dGVUaW1lRm9ybWF0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
RGF0ZVRpbWVGb3JtYXQuY3BwCkBAIC02NDYsNyArNjQ2LDExIEBAIHZvaWQgSW50bERhdGVUaW1l
Rm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQoRXhlY1N0YXRlJiBleGVjLCBKU1ZhbHVl
IGxvY2FsCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTdHJpbmcgc2tlbGV0b24gPSBz
a2VsZXRvbkJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBTdHJpbmcgc2tlbGV0b247CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gc2tlbGV0b25CdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHNrZWxl
dG9uID0gKnN0cmluZzsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgU3RyaW5nVmll
dyBza2VsZXRvblZpZXcoc2tlbGV0b24pOwogICAgIFZlY3RvcjxVQ2hhciwgMzI+IHBhdHRlcm5C
dWZmZXIoMzIpOwogICAgIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKaW5kZXggM2Y1NDM0MC4uYjk2NWRmOSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKQEAgLTI0Nyw3
ICsyNDcsOSBAQCBzdGF0aWMgU3RyaW5nIHByaXZhdGVVc2VMYW5nVGFnKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBwYXJ0cywgc2l6ZV90IHN0YXJ0SW5kZXgpCiAgICAgaWYgKGN1cnJlbnRJbmRleCA8
IG51bVBhcnRzKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKLSAgICByZXR1cm4gcHJpdmF0
ZXVzZS50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHByaXZhdGV1c2UudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGlj
IFN0cmluZyBjYW5vbmljYWxMYW5nVGFnKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJ0cykKQEAg
LTM4MCw3ICszODIsMTAgQEAgc3RhdGljIFN0cmluZyBjYW5vbmljYWxMYW5nVGFnKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBwYXJ0cykKICAgICAgICAgaWYgKCFudW1FeHRQYXJ0cykKICAgICAgICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgICAgICBleHRlbnNpb25zLmFwcGVuZChleHRlbnNp
b24udG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGV4dGVuc2lvbi50b1N0
cmluZygpKQorICAgICAgICAgICAgZXh0ZW5zaW9ucy5hcHBlbmQoKnN0cmluZyk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgLy8gQWRkIGV4dGVuc2lv
bnMgdG8gY2Fub25pY2FsIHNvcnRlZCBieSBzaW5nbGV0b24uCkBAIC00MDgsNyArNDEzLDkgQEAg
c3RhdGljIFN0cmluZyBjYW5vbmljYWxMYW5nVGFnKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJ0
cykKIAogICAgIC8vIEZJWE1FOiBSZXBsYWNlIHN1YnRhZ3Mgd2l0aCB0aGVpciBwcmVmZXJyZWQg
dmFsdWVzLgogCi0gICAgcmV0dXJuIGNhbm9uaWNhbC50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IGNhbm9uaWNhbC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIGdyYW5kZmF0aGVyZWRMYW5nVGFnKGNv
bnN0IFN0cmluZyYgbG9jYWxlKQpAQCAtNjEzLDcgKzYyMCwxMCBAQCBTdHJpbmcgcmVtb3ZlVW5p
Y29kZUxvY2FsZUV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGxvY2FsZSkKICAgICAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKHBhcnRzW3BdKTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gYnVp
bGRlci50b1N0cmluZygpOworCisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMg
TWF0Y2hlclJlc3VsdCBsb29rdXBNYXRjaGVyKEV4ZWNTdGF0ZSYgc3RhdGUsIGNvbnN0IEhhc2hT
ZXQ8U3RyaW5nPiYgYXZhaWxhYmxlTG9jYWxlcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHJlcXVl
c3RlZExvY2FsZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKaW5kZXggNzMxMzY3My4uMTliNTJhZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5j
dGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0RnVuY3Rpb25zLmNwcApAQCAtMTUxLDcgKzE1MSw5IEBAIHN0YXRpYyBKU1ZhbHVlIGVuY29k
ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEJpdG1hcDwyNTY+JiBkb05vdEVzY2FwZSwgY29uc3Qg
Q2hhCiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4ganNTdHJpbmcoZXhlYywgYnVpbGRl
ci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiBqc1N0cmluZyhleGVjLCAqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwog
fQogCiBzdGF0aWMgSlNWYWx1ZSBlbmNvZGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBCaXRtYXA8
MjU2PiYgZG9Ob3RFc2NhcGUpCkBAIC0yMzAsNyArMjMyLDEwIEBAIHN0YXRpYyBKU1ZhbHVlIGRl
Y29kZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IENoYXJUeXBlKiBjaGFyYWN0ZXJzLCBpbnQgbGVu
Z3RoLCBjCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGMpOwogICAgIH0KICAgICBzY29wZS5yZWxl
YXNlKCk7Ci0gICAgcmV0dXJuIGpzU3RyaW5nKCZ2bSwgYnVpbGRlci50b1N0cmluZygpKTsKKwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
IGpzU3RyaW5nKCZ2bSwgKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIEpTVmFs
dWUgZGVjb2RlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQml0bWFwPDI1Nj4mIGRvTm90VW5lc2Nh
cGUsIGJvb2wgc3RyaWN0KQpAQCAtNjAzLDcgKzYwOCw5IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZ2xvYmFsRnVuY0VzY2FwZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAg
ICAgICAgIGFwcGVuZEJ5dGVBc0hleChzdGF0aWNfY2FzdDxMQ2hhcj4odSksIGJ1aWxkZXIpOwog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBqc1N0
cmluZyhleGVjLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHJldHVybiBqc1N0cmlu
ZyhleGVjLCAqc3RyaW5nKTsKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KIAogICAg
ICAgICBjb25zdCBVQ2hhciogYyA9IHZpZXcuY2hhcmFjdGVyczE2KCk7CkBAIC02MjIsNyArNjI5
LDkgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jRXNjYXBlKEV4ZWNT
dGF0ZSogZXhlYykKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIHJldHVybiBq
c1N0cmluZyhleGVjLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4ganNTdHJpbmcoZXhl
YywgKnN0cmluZyk7CisgICAgICAgIENSQVNIKCk7CiAgICAgfSkpOwogfQogCkBAIC02NzgsNyAr
Njg3LDkgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jVW5lc2NhcGUo
RXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgcmV0
dXJuIGpzU3RyaW5nKGV4ZWMsIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiBqc1N0cmlu
ZyhleGVjLCAqc3RyaW5nKTsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9KSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKaW5kZXggYjNhNzgwOC4u
ZDdjMDZkZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9i
amVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5j
cHAKQEAgLTI3OCw3ICsyNzgsOSBAQCBKU1ZhbHVlIFN0cmluZ2lmaWVyOjpzdHJpbmdpZnkoSlNW
YWx1ZSB2YWx1ZSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKICAgICBzY29wZS5y
ZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGpzU3RyaW5nKG1fZXhlYywgcmVzdWx0LnRvU3RyaW5nKCkp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4ganNTdHJpbmcobV9leGVjLCAqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiBBTFdBWVNf
SU5MSU5FIEpTVmFsdWUgU3RyaW5naWZpZXI6OnRvSlNPTihKU1ZhbHVlIHZhbHVlLCBjb25zdCBQ
cm9wZXJ0eU5hbWVGb3JGdW5jdGlvbkNhbGwmIHByb3BlcnR5TmFtZSkKQEAgLTUwNCw4ICs1MDYs
MTIgQEAgYm9vbCBTdHJpbmdpZmllcjo6SG9sZGVyOjphcHBlbmROZXh0UHJvcGVydHkoU3RyaW5n
aWZpZXImIHN0cmluZ2lmaWVyLCBTdHJpbmdCdWkKICAgICAvLyBMYXN0IHRpbWUgdGhyb3VnaCwg
ZmluaXNoIHVwIGFuZCByZXR1cm4gZmFsc2UuCiAgICAgaWYgKG1faW5kZXggPT0gbV9zaXplKSB7
CiAgICAgICAgIHN0cmluZ2lmaWVyLnVuaW5kZW50KCk7Ci0gICAgICAgIGlmIChtX3NpemUgJiYg
YnVpbGRlcltidWlsZGVyLmxlbmd0aCgpIC0gMV0gIT0gJ3snKQotICAgICAgICAgICAgc3RyaW5n
aWZpZXIuc3RhcnROZXdMaW5lKGJ1aWxkZXIpOworICAgICAgICBpZiAobV9zaXplKSB7CisgICAg
ICAgICAgICBpZiAoYnVpbGRlci5mYWlsZWQoKSkKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwor
ICAgICAgICAgICAgaWYgKCpidWlsZGVyW2J1aWxkZXIubGVuZ3RoKCkgLSAxXSAhPSAneycpCisg
ICAgICAgICAgICAgICAgc3RyaW5naWZpZXIuc3RhcnROZXdMaW5lKGJ1aWxkZXIpOworICAgICAg
ICB9CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG1faXNBcnJheSA/ICddJyA6ICd9Jyk7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC01NDgsNyArNTU0LDkgQEAgYm9vbCBTdHJpbmdp
Zmllcjo6SG9sZGVyOjphcHBlbmROZXh0UHJvcGVydHkoU3RyaW5naWZpZXImIHN0cmluZ2lmaWVy
LCBTdHJpbmdCdWkKICAgICAgICAgcm9sbEJhY2tQb2ludCA9IGJ1aWxkZXIubGVuZ3RoKCk7CiAK
ICAgICAgICAgLy8gQXBwZW5kIHRoZSBzZXBhcmF0b3Igc3RyaW5nLgotICAgICAgICBpZiAoYnVp
bGRlcltyb2xsQmFja1BvaW50IC0gMV0gIT0gJ3snKQorICAgICAgICBpZiAoYnVpbGRlci5mYWls
ZWQoKSkKKyAgICAgICAgICAgIENSQVNIKCk7CisgICAgICAgIGlmICgqYnVpbGRlcltyb2xsQmFj
a1BvaW50IC0gMV0gIT0gJ3snKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJywnKTsKICAg
ICAgICAgc3RyaW5naWZpZXIuc3RhcnROZXdMaW5lKGJ1aWxkZXIpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2VyLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwCmluZGV4IGYwMGZlMDcuLmI4
Njg2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQ
YXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJz
ZXIuY3BwCkBAIC00NjYsMTAgKzQ2NiwxNiBAQCBzbG93UGF0aEJlZ2luOgogICAgIH0gZWxzZSB7
CiAgICAgICAgIGlmIChtX2J1aWxkZXIuaXM4Qml0KCkpIHsKICAgICAgICAgICAgIHRva2VuLnN0
cmluZ0lzOEJpdCA9IDE7Ci0gICAgICAgICAgICB0b2tlbi5zdHJpbmdUb2tlbjggPSBtX2J1aWxk
ZXIuY2hhcmFjdGVyczgoKTsKKyAgICAgICAgICAgIGlmIChhdXRvIGNoYXJzID0gbV9idWlsZGVy
LmNoYXJhY3RlcnM4KCkpCisgICAgICAgICAgICAgICAgdG9rZW4uc3RyaW5nVG9rZW44ID0gKmNo
YXJzOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICB0b2tlbi5zdHJpbmdJczhCaXQgPSAwOwotICAgICAgICAg
ICAgdG9rZW4uc3RyaW5nVG9rZW4xNiA9IG1fYnVpbGRlci5jaGFyYWN0ZXJzMTYoKTsKKyAgICAg
ICAgICAgIGlmIChhdXRvIGNoYXJzID0gbV9idWlsZGVyLmNoYXJhY3RlcnMxNigpKQorICAgICAg
ICAgICAgICAgIHRva2VuLnN0cmluZ1Rva2VuMTYgPSAqY2hhcnM7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgICAgICB0b2tlbi5zdHJp
bmdMZW5ndGggPSBtX2J1aWxkZXIubGVuZ3RoKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcHRpb25zLmNwcAppbmRleCAzYzg2MTIzLi45MjdjZDA4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcApAQCAtNTk1LDcgKzU5NSwxMCBAQCB2
b2lkIE9wdGlvbnM6OmR1bXBPcHRpb25zSWZOZWVkZWQoKQogCiAgICAgICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKICAgICAgICAgZHVtcEFsbE9wdGlvbnMoYnVpbGRlciwgbGV2ZWwsIHRpdGxl
LCBudWxscHRyLCAiICAgIiwgIlxuIiwgRHVtcERlZmF1bHRzKTsKLSAgICAgICAgZGF0YUxvZyhi
dWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgICAgICBkYXRhTG9nKCpzdHJpbmcpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIH0KIApAQCAtODA0LDcgKzgwNywxMCBAQCB2b2lk
IE9wdGlvbnM6OmR1bXBBbGxPcHRpb25zKEZJTEUqIHN0cmVhbSwgRHVtcExldmVsIGxldmVsLCBj
b25zdCBjaGFyKiB0aXRsZSkKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgZHVt
cEFsbE9wdGlvbnMoYnVpbGRlciwgbGV2ZWwsIHRpdGxlLCBudWxscHRyLCAiICAgIiwgIlxuIiwg
RHVtcERlZmF1bHRzKTsKLSAgICBmcHJpbnRmKHN0cmVhbSwgIiVzIiwgYnVpbGRlci50b1N0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgZnByaW50ZihzdHJlYW0sICIlcyIsIHN0cmluZy0+dXRmOCgpLmRhdGEo
KSk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIE9wdGlvbnM6OmR1bXBP
cHRpb24oU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgRHVtcExldmVsIGxldmVsLCBPcHRpb25zOjpJ
RCBpZCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFBy
b3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5
cGUuY3BwCmluZGV4IGQzMjFlMmQuLjM2ZmM2YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcApAQCAtNDY2LDcgKzQ2Niw5IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSByZWdFeHBQcm90b0dldHRlclNvdXJjZUludGVybmFsKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgU3RyCiAgICAgICAgICAgICBwcmV2aW91c0NoYXJhY3Rlcldhc0Jh
Y2tzbGFzaCA9IGNoID09ICdcXCc7CiAgICAgfQogCi0gICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMs
IHJlc3VsdC50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsICpzdHJpbmcpOworICAgIENSQVNI
KCk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJT
b3VyY2UoRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcAppbmRleCA1OTJhZjQxLi5mMDhjNGZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcApA
QCAtOTA0LDcgKzkwNCw5IEBAIFN0cmluZyBTYW1wbGluZ1Byb2ZpbGVyOjpzdGFja1RyYWNlc0Fz
SlNPTigpCiAKICAgICBjbGVhckRhdGEobG9ja2VyKTsKIAotICAgIHJldHVybiBqc29uLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0ganNvbi50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIFNhbXBsaW5nUHJvZmlsZXI6
OnJlZ2lzdGVyRm9yUmVwb3J0QXRFeGl0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RhY2tGcmFtZS5jcHAKaW5kZXggOWYyZDYwZC4uNDhhMjJiMCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAKQEAgLTEzOSw3ICsxMzksOSBAQCBT
dHJpbmcgU3RhY2tGcmFtZTo6dG9TdHJpbmcoVk0mIHZtKSBjb25zdAogICAgICAgICAgICAgdHJh
Y2VCdWlsZC5hcHBlbmROdW1iZXIoY29sdW1uKTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1
cm4gdHJhY2VCdWlsZC50b1N0cmluZygpLmltcGwoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0
cmFjZUJ1aWxkLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBzdHJpbmctPmltcGwoKTsKKyAg
ICBDUkFTSCgpOwogfQogCiB2b2lkIFN0YWNrRnJhbWU6OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0
b3ImIHZpc2l0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMTBhYmM3Ni4uNjQ1YTNiZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcApAQCAtMTI1
LDcgKzEyNSw5IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ0Zy
b21Db2RlUG9pbnQoRXhlY1N0YXRlKiBleGVjKQogICAgIH0KIAogICAgIHNjb3BlLnJlbGVhc2Uo
KTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKGV4ZWMsIGJ1aWxkZXIudG9T
dHJpbmcoKSkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyhleGVjLCAqc3RyaW5nKSk7Cisg
ICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29u
c3RydWN0V2l0aFN0cmluZ0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCmluZGV4IGEwZDM2
MDEuLjU4Y2NkNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ1Byb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aW5nUHJvdG90eXBlLmNwcApAQCAtMjgwLDcgKzI4MCw5IEBAIHN0YXRpYyBORVZFUl9JTkxJTkUg
U3RyaW5nIHN1YnN0aXR1dGVCYWNrcmVmZXJlbmNlc1Nsb3coU3RyaW5nVmlldyByZXBsYWNlbWVu
dCwKICAgICBpZiAocmVwbGFjZW1lbnQubGVuZ3RoKCkgLSBvZmZzZXQpCiAgICAgICAgIHN1YnN0
aXR1dGVkUmVwbGFjZW1lbnQuYXBwZW5kKHJlcGxhY2VtZW50LnN1YnN0cmluZyhvZmZzZXQpKTsK
IAotICAgIHJldHVybiBzdWJzdGl0dXRlZFJlcGxhY2VtZW50LnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gc3Vic3RpdHV0ZWRSZXBsYWNlbWVudC50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBpbmxpbmUgU3RyaW5nIHN1YnN0
aXR1dGVCYWNrcmVmZXJlbmNlc0lubGluZShjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50LCBTdHJp
bmdWaWV3IHNvdXJjZSwgY29uc3QgaW50KiBvdmVjdG9yLCBSZWdFeHAqIHJlZykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQcm9maWxlci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlUHJvZmlsZXIuY3BwCmluZGV4IDBmODVlZjgu
LjdhZTk3NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQ
cm9maWxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2Zp
bGVyLmNwcApAQCAtMTA0LDggKzEwNCwxMCBAQCBTdHJpbmcgVHlwZVByb2ZpbGVyOjp0eXBlSW5m
b3JtYXRpb25Gb3JFeHByZXNzaW9uQXRPZmZzZXQoVHlwZVByb2ZpbGVyU2VhcmNoRGVzYwogICAg
ICAgICBqc29uLmFwcGVuZExpdGVyYWwoImZhbHNlIik7CiAKICAgICBqc29uLmFwcGVuZCgnfScp
OwotICAgIAotICAgIHJldHVybiBqc29uLnRvU3RyaW5nKCk7CisKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBqc29uLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIFR5cGVMb2NhdGlvbiogVHlwZVByb2ZpbGVyOjpmaW5kTG9jYXRpb24odW5zaWdu
ZWQgZGl2b3QsIGludHB0cl90IHNvdXJjZUlELCBUeXBlUHJvZmlsZXJTZWFyY2hEZXNjcmlwdG9y
IGRlc2NyaXB0b3IsIFZNJiB2bSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1R5cGVTZXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVNl
dC5jcHAKaW5kZXggN2E0MTJlNi4uYzNhMDVjNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVHlwZVNldC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVHlwZVNldC5jcHAKQEAgLTEzMSw3ICsxMzEsOSBAQCBTdHJpbmcgVHlwZVNldDo6ZHVt
cFR5cGVzKCkgY29uc3QKICAgICAgICAgc2Vlbi5hcHBlbmQobGVhc3RDb21tb25BbmNlc3Rvcigp
KTsKICAgICB9CiAKLSAgICByZXR1cm4gc2Vlbi50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IHNlZW4udG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogYm9vbCBUeXBlU2V0Ojpkb2VzVHlwZUNvbmZvcm1UbyhSdW50aW1lVHlwZU1h
c2sgdGVzdCkgY29uc3QKQEAgLTMxNyw3ICszMTksOSBAQCBTdHJpbmcgVHlwZVNldDo6dG9KU09O
U3RyaW5nKCkgY29uc3QKICAgICBqc29uLmFwcGVuZCgnXScpOwogCiAgICAganNvbi5hcHBlbmQo
J30nKTsKLSAgICByZXR1cm4ganNvbi50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGpzb24udG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogU3RydWN0dXJlU2hhcGU6OlN0cnVjdHVyZVNoYXBlKCkKQEAgLTM2Miw4ICszNjYsMTEg
QEAgU3RyaW5nIFN0cnVjdHVyZVNoYXBlOjpwcm9wZXJ0eUhhc2goKQogICAgICAgICBidWlsZGVy
LmFwcGVuZChtX3Byb3RvLT5wcm9wZXJ0eUhhc2goKSk7CiAgICAgfQogCi0gICAgbV9wcm9wZXJ0
eUhhc2ggPSBzdGQ6Om1ha2VfdW5pcXVlPFN0cmluZz4oYnVpbGRlci50b1N0cmluZygpKTsKLSAg
ICByZXR1cm4gKm1fcHJvcGVydHlIYXNoOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkgeworICAgICAgICBtX3Byb3BlcnR5SGFzaCA9IHN0ZDo6bWFrZV91bmlxdWU8
U3RyaW5nPigqc3RyaW5nKTsKKyAgICAgICAgcmV0dXJuICptX3Byb3BlcnR5SGFzaDsKKyAgICB9
CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIFN0cnVjdHVyZVNoYXBlOjpsZWFzdENvbW1vbkFu
Y2VzdG9yKGNvbnN0IFZlY3RvcjxSZWY8U3RydWN0dXJlU2hhcGU+PiYgc2hhcGVzKQpAQCAtNDI3
LDcgKzQzNCw5IEBAIFN0cmluZyBTdHJ1Y3R1cmVTaGFwZTo6c3RyaW5nUmVwcmVzZW50YXRpb24o
KQogCiAgICAgcmVwcmVzZW50YXRpb24uYXBwZW5kKCd9Jyk7CiAKLSAgICByZXR1cm4gcmVwcmVz
ZW50YXRpb24udG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXByZXNlbnRhdGlv
bi50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiBTdHJpbmcgU3RydWN0dXJlU2hhcGU6OnRvSlNPTlN0cmluZygpIGNvbnN0CkBAIC00OTQsNyAr
NTAzLDkgQEAgU3RyaW5nIFN0cnVjdHVyZVNoYXBlOjp0b0pTT05TdHJpbmcoKSBjb25zdAogCiAg
ICAganNvbi5hcHBlbmQoJ30nKTsKIAotICAgIHJldHVybiBqc29uLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0ganNvbi50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6
U3RydWN0dXJlRGVzY3JpcHRpb24+IFN0cnVjdHVyZVNoYXBlOjppbnNwZWN0b3JSZXByZXNlbnRh
dGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAKaW5kZXggZTZjZGQ1MC4uYzRk
OGRlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RSZWdFeHAuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcApAQCAtMzI5LDEyICszMjks
MTUgQEAgc3RhdGljIFJlZ0V4cCogcGFyc2VSZWdFeHBMaW5lKFZNJiB2bSwgY2hhciogbGluZSwg
aW50IGxpbmVMZW5ndGgsIGNvbnN0IGNoYXIqKgogCiAgICAgKytpOwogCi0gICAgUmVnRXhwKiBy
ID0gUmVnRXhwOjpjcmVhdGUodm0sIHBhdHRlcm4udG9TdHJpbmcoKSwgcmVnRXhwRmxhZ3MobGlu
ZSArIGkpKTsKLSAgICBpZiAoIXItPmlzVmFsaWQoKSkgewotICAgICAgICAqcmVnZXhwRXJyb3Ig
PSByLT5lcnJvck1lc3NhZ2UoKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gcGF0dGVybi50b1N0cmluZygpKSB7CisgICAgICAgIFJlZ0V4cCogciA9IFJl
Z0V4cDo6Y3JlYXRlKHZtLCAqc3RyaW5nLCByZWdFeHBGbGFncyhsaW5lICsgaSkpOworICAgICAg
ICBpZiAoIXItPmlzVmFsaWQoKSkgeworICAgICAgICAgICAgKnJlZ2V4cEVycm9yID0gci0+ZXJy
b3JNZXNzYWdlKCk7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gcjsKICAgICB9Ci0gICAgcmV0dXJuIHI7CisgICAgQ1JBU0goKTsKIH0KIAog
c3RhdGljIFJlZ0V4cFRlc3QqIHBhcnNlVGVzdExpbmUoY2hhciogbGluZSwgaW50IGxpbmVMZW5n
dGgpCkBAIC0zNzcsOCArMzgwLDExIEBAIHN0YXRpYyBSZWdFeHBUZXN0KiBwYXJzZVRlc3RMaW5l
KGNoYXIqIGxpbmUsIGludCBsaW5lTGVuZ3RoKQogICAgIGludCBzdGFydCwgZW5kOwogICAgIAog
ICAgIFJlZ0V4cFRlc3QqIHJlc3VsdCA9IG5ldyBSZWdFeHBUZXN0KCk7Ci0gICAgCi0gICAgcmVz
dWx0LT5zdWJqZWN0ID0gc3ViamVjdFN0cmluZy50b1N0cmluZygpOworCisgICAgaWYgKGF1dG8g
c3RyaW5nID0gc3ViamVjdFN0cmluZy50b1N0cmluZygpKQorICAgICAgICByZXN1bHQtPnN1Ympl
Y3QgPSAqc3RyaW5nOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICByZXN1bHQtPm9m
ZnNldCA9IG9mZnNldDsKICAgICByZXN1bHQtPnJlc3VsdCA9IG1hdGNoUmVzdWx0OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcAppbmRl
eCBlODNiNmVlLi40YWMyN2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9v
bHMvRnVuY3Rpb25PdmVycmlkZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29s
cy9GdW5jdGlvbk92ZXJyaWRlcy5jcHAKQEAgLTIxOCwxMyArMjE4LDE4IEBAIHN0YXRpYyBTdHJp
bmcgcGFyc2VDbGF1c2UoY29uc3QgY2hhcioga2V5d29yZCwgc2l6ZV90IGtleXdvcmRMZW5ndGgs
IEZJTEUqIGZpbGUsCiAgICAgICAgICAgICAgICAgRkFJTF9XSVRIX0VSUk9SKFNZTlRBWF9FUlJP
UiwgKCJVbmV4cGVjdGVkIGNoYXJhY3RlcnMgYWZ0ZXIgJyIsIGtleXdvcmQsICInIGNsYXVzZSBl
bmQgZGVsaW1pdGVyICciLCBkZWxpbWl0ZXIsICInOlxuIiwgbGluZSwgIlxuIikpOwogCiAgICAg
ICAgICAgICBidWlsZGVyLmFwcGVuZChsaW5lLCBwIC0gbGluZSArIDEpOwotICAgICAgICAgICAg
cmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KICAgICAgICAgYnVpbGRlci5hcHBlbmQobGlu
ZSk7CiAKICAgICB9IHdoaWxlICgobGluZSA9IGZnZXRzKGJ1ZmZlciwgYnVmZmVyU2l6ZSwgZmls
ZSkpKTsKIAotICAgIEZBSUxfV0lUSF9FUlJPUihTWU5UQVhfRVJST1IsICgiJyIsIGtleXdvcmQs
ICInIGNsYXVzZSBlbmQgZGVsaW1pdGVyICciLCBkZWxpbWl0ZXIsICInIG5vdCBmb3VuZDpcbiIs
IGJ1aWxkZXIudG9TdHJpbmcoKSwgIlxuIiwgIkFyZSB5b3UgbWlzc2luZyBhICd9JyBiZWZvcmUg
dGhlIGRlbGltaXRlcj9cbiIpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgIEZBSUxfV0lUSF9FUlJPUihTWU5UQVhfRVJST1IsICgiJyIsIGtleXdv
cmQsICInIGNsYXVzZSBlbmQgZGVsaW1pdGVyICciLCBkZWxpbWl0ZXIsICInIG5vdCBmb3VuZDpc
biIsICpzdHJpbmcsICJcbiIsICJBcmUgeW91IG1pc3NpbmcgYSAnfScgYmVmb3JlIHRoZSBkZWxp
bWl0ZXI/XG4iKSk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEZ1bmN0
aW9uT3ZlcnJpZGVzOjpwYXJzZU92ZXJyaWRlc0luRmlsZShjb25zdCBjaGFyKiBmaWxlTmFtZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcAppbmRleCBhNzgyMGM5
Li5mYTAwMzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJR
UGxhbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW4uY3Bw
CkBAIC0xNTAsOCArMTUwLDExIEBAIHZvaWQgQkJRUGxhbjo6cHJlcGFyZSgpCiAgICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIkZhaWxlZCBhbGxvY2F0aW5nIGVub3VnaCBzcGFjZSBm
b3IgIik7CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihzaXplKTsKICAgICAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKHdoYXQpOwotICAgICAgICAgICAgZmFpbChob2xkTG9jayhtX2xv
Y2spLCBidWlsZGVyLnRvU3RyaW5nKCkpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAg
ICAgICAgICAgZmFpbChob2xkTG9jayhtX2xvY2spLCBXVEZNb3ZlKCpzdHJpbmcpKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBDUkFT
SCgpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmgKaW5kZXggZjE2ZjExZi4uOGI3NThlYyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhcnNlci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXJzZXIuaApAQCAtMTAzMSw4ICsxMDMxLDExIEBA
IHByaXZhdGU6CiAKICAgICAgICAgICAgIHdoaWxlICghYXRFbmRPZlBhdHRlcm4oKSkgewogICAg
ICAgICAgICAgICAgIGNoID0gdHJ5Q29uc3VtZUlkZW50aWZpZXJDaGFyYWN0ZXIoKTsKLSAgICAg
ICAgICAgICAgICBpZiAoY2ggPT0gJz4nKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3Rk
OjpvcHRpb25hbDxTdHJpbmc+KGlkZW50aWZpZXJCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAg
ICAgICAgICAgIGlmIChjaCA9PSAnPicpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gaWRlbnRpZmllckJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFN0cmluZz4oKnN0cmluZyk7CisgICAgICAgICAg
ICAgICAgICAgIENSQVNIKCk7CisgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAg
aWYgKCFpc0lkZW50aWZpZXJQYXJ0KGNoKSkKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkBA
IC0xMDcwLDIzICsxMDczLDMyIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICAgICAgaWYgKGZvdW5kRXF1YWxzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8g
cmVzdWx0ID0gdW5pY29kZU1hdGNoUHJvcGVydHlWYWx1ZSh1bmljb2RlUHJvcGVydHlOYW1lLCBl
eHByZXNzaW9uQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gZXhwcmVzc2lvbkJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgYXV0byByZXN1bHQgPSB1bmljb2RlTWF0Y2hQcm9wZXJ0eVZhbHVlKHVuaWNv
ZGVQcm9wZXJ0eU5hbWUsICpzdHJpbmcpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFy
ZXN1bHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9lcnJvckNvZGUgPSBFcnJvckNv
ZGU6OkludmFsaWRVbmljb2RlUHJvcGVydHlFeHByZXNzaW9uOworICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICBDUkFTSCgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlm
IChhdXRvIHN0cmluZyA9IGV4cHJlc3Npb25CdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgYXV0byByZXN1bHQgPSB1bmljb2RlTWF0Y2hQcm9wZXJ0eSgqc3RyaW5nKTsK
ICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgICAgICAgICAgICAgICAg
ICBtX2Vycm9yQ29kZSA9IEVycm9yQ29kZTo6SW52YWxpZFVuaWNvZGVQcm9wZXJ0eUV4cHJlc3Np
b247CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICAgICAgYXV0byByZXN1bHQgPSB1bmljb2RlTWF0Y2hQcm9wZXJ0eShl
eHByZXNzaW9uQnVpbGRlci50b1N0cmluZygpKTsKLSAgICAgICAgICAgICAgICBpZiAoIXJlc3Vs
dCkKLSAgICAgICAgICAgICAgICAgICAgbV9lcnJvckNvZGUgPSBFcnJvckNvZGU6OkludmFsaWRV
bmljb2RlUHJvcGVydHlFeHByZXNzaW9uOwotICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAg
Y29uc3VtZSgpOwogICAgICAgICAgICAgaWYgKGNoID09ICc9JykgewogICAgICAgICAgICAgICAg
IGlmICghZm91bmRFcXVhbHMpIHsKICAgICAgICAgICAgICAgICAgICAgZm91bmRFcXVhbHMgPSB0
cnVlOwotICAgICAgICAgICAgICAgICAgICB1bmljb2RlUHJvcGVydHlOYW1lID0gZXhwcmVzc2lv
bkJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5n
ID0gZXhwcmVzc2lvbkJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IHVuaWNvZGVQcm9wZXJ0eU5hbWUgPSAqc3RyaW5nOworICAgICAgICAgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgICAgICAgICBl
eHByZXNzaW9uQnVpbGRlci5jbGVhcigpOwogICAgICAgICAgICAgICAgIH0gZWxzZQogICAgICAg
ICAgICAgICAgICAgICBlcnJvcnMrKzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
IGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggMWQyZDIwZC4uNjIwYTVmYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNDYgQEAKKzIwMTgtMDQtMjYgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29t
PgorCisgICAgICAgIFN0cmluZ0J1aWxkZXIgaXMgZmFsbGlibGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTA0OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0cmluZ0J1aWxkZXIgY2FuIGZhaWwgd2hl
biBhbGxvY2F0aW5nIG1lbW9yeS4gU3RyaW5nQnVpbGRlciBpcworICAgICAgICBtb3N0bHkgdXNl
ZCB3aXRoIHVzZXIgaW5wdXQsIHdoaWNoIG9mdGVuIG1lYW5zIHRoYXQganVzdCBjcmFzaGluZwor
ICAgICAgICBpc24ndCB0aGUgcmlnaHQgb3V0Y29tZS4gT3VyIGZ1enplcnMgb2Z0ZW4gZW5jb3Vu
dGVyIHN1Y2ggdGhpbmdzCisgICAgICAgIGZvciBKYXZhU2NyaXB0Q29yZSwgYW5kIHNvIGZhciB3
ZSd2ZSBhcHBsaWVkIHBvaW50IHNvbHV0aW9ucy4gTm8KKyAgICAgICAgbW9yZSEgVGhpcyBwYXRj
aCBtYWtlcyBTdHJpbmdCdWlsZGVyIGZhbGxpYmxlIGFuZCBlbmZvcmNlcyB0aGlzIGluCisgICAg
ICAgIHR3byB3YXlzOgorCisgICAgICAgICAgLSBFYWNoIHN0ZXAgb2YgYnVpbGRpbmcgYSBzdHJp
bmcgY2FuIGJlIGNoZWNrZWQgZm9yIGZhaWx1cmUKKyAgICAgICAgICAgIGJlY2F1c2UgdGhleSBu
b3cgcmV0dXJuIGEgIkZhbGxpYmxlPFQ+Ii4gVGhpcyBjYW4gYmUgaWdub3JlZCBhdAorICAgICAg
ICAgICAgZXZlcnkgc3RlcCEKKyAgICAgICAgICAtIFRoZSBmaW5hbCBzdGVwIG9mIFN0cmluZ0J1
aWxkZXIsIGdldHRpbmcgdGhlIHN0cmluZyBvdXQsCisgICAgICAgICAgICByZXR1cm5zIGEgIkZh
bGxpYmxlPFN0cmluZz4iIHdoaWNoIGlzIG1hcmtlZCB3aXRoCisgICAgICAgICAgICBXQVJOX1VO
VVNFRF9SRVRVUk4uIEZhaWx1cmUgaXMgY29tbXVuaWNhdGVkIGlmIGFueSBvZiB0aGUgYnVpbGRp
bmcKKyAgICAgICAgICAgIHN0ZXBzIGZhaWxlZC4KKworICAgICAgICBEb2luZyB0aGlzIHR3by1z
dGVwIGFwcHJvYWNoIG1lYW5zIHRoYXQgY29kZSBjYW4gY29udGludWUKKyAgICAgICAgb3BlcmF0
aW5nIGFzIGl0IGRpZCBiZWZvcmUgKGFwcGVuZCBhIGJ1bmNoIGFuZCB0aGVuIGdldCBhIHN0cmlu
ZykKKyAgICAgICAgYW5kIG9ubHkgbmVlZHMgdG8gY2FyZSBhYm91dCB0aGUgc3RyaW5nIHBvdGVu
dGlhbGx5IG5vdCBiZWluZworICAgICAgICBhdmFpbGFibGUuIFRoaXMgaXMgZW5mb3JjZWQgYnkg
dGhlIHR5cGUgc3lzdGVtOiBGYWxsaWJsZTxUPiBpcworICAgICAgICBzdGQ6OmV4cGVjdGVkPFQs
IFN0cmluZ0J1aWxkZXI6OkZhaWx1cmU+LgorCisgICAgICAgIFRoZSBmb2xsb3dpbmcgaW50ZXJt
ZWRpYXRlIGZ1bmN0aW9ucyBjYW4gbm93IGJlIG9ic2VydmVkIHRvIGZhaWwKKyAgICAgICAgKG9y
IGlnbm9yZWQpOgorCisgICAgICAgICAgLSBhcHBlbmQKKyAgICAgICAgICAtIGFwcGVuZFVuaW5p
dGlhbGl6ZWQKKyAgICAgICAgICAtIGFwcGVuZFVuaW5pdGlhbGl6ZWRTbG93CisgICAgICAgICAg
LSBhcHBlbmRRdW90ZWRKU09OU3RyaW5nIHVzZWQgdG8gcmV0dXJuIGZhbHNlIG9uIGZhaWx1cmUs
IGl0IG5vdyByZXR1cm5zIEZhbGxpYmxlPD4KKyAgICAgICAgICAtIHJlc2l6ZQorICAgICAgICAg
IC0gYWxsb2NhdGVCdWZmZXIKKyAgICAgICAgICAtIGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0Cisg
ICAgICAgICAgLSByZWFsbG9jYXRlQnVmZmVyCisgICAgICAgICAgLSByZXNlcnZlQ2FwYWNpdHkK
KyAgICAgICAgICAtIHNocmlua1RvRml0CisgICAgICAgICAgLSBvcGVyYXRvcltdCisgICAgICAg
ICAgLSBjaGFyYWN0ZXJzOAorICAgICAgICAgIC0gY2hhcmFjdGVyczE2CisKKyAgICAgICAgRmFp
bHVyZSBpbiB0aGVzZSBtZXRob2RzIGNvbWVzIGluIHR3byBmb3Jtczogb3V0IG9mIG1lbW9yeSwg
YW5kCisgICAgICAgIHdvdWxkIG92ZXJmbG93LiBXaGVuIGFuIG9wZXJhdGlvbiB3b3VsZCBvdmVy
ZmxvdyBpdCBsZWF2ZXMgdGhlCisgICAgICAgIFN0cmluZ0J1aWxkZXIgaW4gaXRzIHByZXZpb3Vz
IHN0YXRlLCBhbGxvd2luZyB1c2VycyB0byByZXN1bWUKKyAgICAgICAgd29yaywga2VlcCB0aGUg
c3RyaW5nIGFzIGl0IGV4aXN0ZWQgYmVmb3JlIGZhaWx1cmUuIFdoZW4gd2UganVzdAorICAgICAg
ICBmYWlsIGFsbG9jYXRpbmcgaXQgbWVhbnMgd2UgZXhwZWN0ZWQgdG8gc3VjY2VlZCwgc28gY2xl
YXJpbmcgdGhlCisgICAgICAgIFN0cmluZ0J1aWxkZXIgaXMgdGhlIHJpZ2h0IHRoaW5nIHRvIGRv
LgorCisgICAgICAgIFN1cHBvcnRpbmcgZmFpbHVyZSBpbiBTdHJpbmdCdWlsZGVyIHJlcXVpcmVk
IGFkZGluZyAidHJ5IiB2YXJpYW50cworICAgICAgICBvZiBzb21lIG1ldGhvZHMgaW4gU3RyaW5n
SW1wbC4KKworICAgICAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgYWxsIFdlYktpdCBjb2RlIHdoaWNo
IHVzZXMgU3RyaW5nQnVpbGRlci4gSXQKKyAgICAgICAgbGVhdmVzIGFsbCBpbnRlcm1lZGlhdGUg
ZnVuY3Rpb24gdXNhZ2UgYWxvbmUgKGNvZGUgc3RpbGwgYXBwZW5kcworICAgICAgICBiYWNrLXRv
LWJhY2ssIGJsaXNzZnVsbHkgdW5hd2FyZSBvZiBmYWlsdXJlKSwgYW5kIG9ubHkgY2hlY2tzIGZv
cgorICAgICAgICBmYWlsdXJlIHdoZW4gcmV0cmlldmluZyB0aGUgc3RyaW5nLiBUaGUgcGF0dGVy
biB1c2VkIGlzIHVzdWFsbHk6CisKKyAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgICAgICBmb28oKnN0cmluZyk7IC8vIFVzZSBzdHJpbmcgYXMg
YmVmb3JlLi4uCisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKKworICAgICAg
ICBUaGlzIG1ha2VzIGZhaWx1cmUgZXh0cmVtZWx5IGV4cGxpY2l0LiBUaGVyZSdzIG5vIHRydWUg
YmVoYXZpb3IKKyAgICAgICAgY2hhbmdlOiB3aGF0IHdvdWxkIGhhdmUgY3Jhc2hlZCB3aGVuIGFw
cGVuZGluZyBub3cgY3Jhc2hlcyB3aGVuCisgICAgICAgIHJldHJpZXZpbmcgdGhlIHN0cmluZy4g
UHVsbGluZyBDUkFTSCgpIG91dCB3aWxsIGdpdmUgc2xpZ2h0bHkKKyAgICAgICAgYmV0dGVyIGNy
YXNoIHNpZ25hdHVyZXMsIGFuZCBpdCBtYWtlcyB0aGUgY29kZSB2ZXJ5IG9idmlvdXMgYWJvdXQK
KyAgICAgICAgZmFpbHVyZS4gSSBwdXJwb3NlZnVsbHkgZG9uJ3QgImZpeCIgYW55IGZhaWx1cmUg
YmVjYXVzZSB0aGVzZQorICAgICAgICBzaG91bGQgYmUgZG9uZSBpbiBhIHRhcmdldGVkIG1hbm5l
ciB3aXRoIHJlcHJvIHRlc3RzIHdoZW5ldmVyCisgICAgICAgIHBvc3NpYmxlLiBJJ20gdmVyeSB3
YXJ5IG9mIGludHJvZHVjaW5nIGJ1Z3MhCisKKyAgICAgICAgV2hlbiBzb21lb25lIGluZXZpdGFi
bHkgYmxhbWVzIGNvZGUgYmFjayB0byB0aGlzIGNvbW1pdCAoYmVjYXVzZQorICAgICAgICBoZXkg
dGhlIGNvZGUgaXMgcHJldHR5IHVnbHksIGFuZCB5b3UgbWlnaHQgYmUgc3VycHJpc2VkIGF0IHNl
ZWluZworICAgICAgICBDUkFTSCgpIGluIHlvdXIgYmVhdXRpZnVsIGNvZGUpIHRoZXJlIGFyZSBh
IGZldyB0aGluZ3Mgd2hpY2ggdGhleQorICAgICAgICBjYW4gZG86CisKKyAgICAgICAgICAxLiBD
aGFuZ2UgdGhlIGVsc2UgY2xhdXNlIHRvIGhhbmRsZSBmYWlsdXJlIHJhdGhlciB0aGFuIGNyYXNo
LiBJbiBKYXZhU2NyaXB0Q29yZSB0aGF0J3MgdXN1YWxseSB0aHJvd091dE9mTWVtb3J5RXJyb3Iu
CisgICAgICAgICAgMi4gQ2hhbmdlIHRoZSBjb2RlIHRvIGRpcmVjdGx5IHVzZSBGYWxsaWJsZSdz
IC52YWx1ZSgpIG1lbWJlciwgYW5kIGxldCAqdGhhdCogY3Jhc2ggaW5zdGVhZC4gVGhpcyBtYWtl
cyB0aGUgY3Jhc2ggbm9uLW9idmlvdXMgaW4gdGhlIGNvZGUsIHdoaWNoIG1pZ2h0IGJlIHdoYXQg
eW91IHdhbnQuCisgICAgICAgICAgMy4gQ2hhbmdlIHRoZSBjb2RlIHRvIGRldGVjdCBmYWlsdXJl
IGF0IHRoZSBlYXJsaWVzdCBzdGVwIG9mIHN0cmluZyBidWlsZGluZyAobGlrZWx5IHRoZSBhcHBl
bmQgY2FsbHMpLCBhbmQgZG8gc29tZXRoaW5nIHNlbnNpYmxlIHRoZXJlLgorCisgICAgICAgIElu
IG5vIGNpcmN1bXN0YW5jZSBzaG91bGQgY29kZSBqdXN0IGRlcmVmZXJlbmNlIGEgRmFsbGlibGUg
d2l0aG91dAorICAgICAgICBrbm93aW5nIHRoYXQgaXRzIHN0YXRlIGhvbGRzIGEgdmFsaWQgc3Ry
aW5nLiBUaGlzIGNvZGUgaXMKKyAgICAgICAgdW5kZWZpbmVkIGJlaGF2aW9yIGFjY29yZGluZyB0
byB0aGUgc3RkOjpleHBlY3RlZCBzcGVjaWZpY2F0aW9uCisgICAgICAgICh3aGV0aGVyIG91ciBp
bXBsZW1lbnRhdGlvbiBzaG91bGQgZG8gc29tZXRoaW5nIGVsc2UgaXMgb3V0IG9mCisgICAgICAg
IHNjb3BlIGZvciB0aGlzIHBhdGNoKToKKworICAgICAgICAgIGZvbygqYnVpbGRlci50b1N0cmlu
ZygpKTsgLy8gVUIgd2hlbiBhbGxvY2F0aW9uIGZhaWxzLgorCisgICAgICAgICogd3RmL0Fzc2Vy
dGlvbnMuY3BwOgorICAgICAgICAqIHd0Zi9EYXRlTWF0aC5jcHA6CisgICAgICAgIChXVEY6Om1h
a2VSRkMyODIyRGF0ZVN0cmluZyk6CisgICAgICAgICogd3RmL0pTT05WYWx1ZXMuY3BwOgorICAg
ICAgICAoV1RGOjpKU09OSW1wbDo6VmFsdWU6OnRvSlNPTlN0cmluZyBjb25zdCk6CisgICAgICAg
ICogd3RmL0xvZ2dlci5oOgorICAgICAgICAoV1RGOjpMb2dBcmd1bWVudDo6dG9TdHJpbmcpOgor
ICAgICAgICAoV1RGOjpMb2dBcmd1bWVudDxMb2dnZXI6OkxvZ1NpdGVJZGVudGlmaWVyPjo6dG9T
dHJpbmcpOgorICAgICAgICAqIHd0Zi9NZWRpYVRpbWUuY3BwOgorICAgICAgICAoV1RGOjpNZWRp
YVRpbWU6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiB3dGYvVVVJRC5jcHA6CisgICAgICAg
IChXVEY6OmNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcpOgorICAgICAgICAqIHd0Zi90ZXh0L1N0
cmluZ0J1aWxkZXIuY3BwOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjp3b3VsZE92ZXJm
bG93KToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6b3V0T2ZNZW1vcnkpOgorICAgICAg
ICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpyZXNpemUpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWls
ZGVyOjphbGxvY2F0ZUJ1ZmZlcik6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OmFsbG9j
YXRlQnVmZmVyVXBDb252ZXJ0KToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6cmVhbGxv
Y2F0ZUJ1ZmZlcjxMQ2hhcj4pOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpyZWFsbG9j
YXRlQnVmZmVyPFVDaGFyPik6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OnJlc2VydmVD
YXBhY2l0eSk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OmFwcGVuZCk6CisgICAgICAg
IChXVEY6OlN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcik6CisgICAgICAgIChXVEY6OlN0cmlu
Z0J1aWxkZXI6OmFwcGVuZEVDTUFTY3JpcHROdW1iZXIpOgorICAgICAgICAoV1RGOjpTdHJpbmdC
dWlsZGVyOjphcHBlbmRGaXhlZFdpZHRoTnVtYmVyKToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVp
bGRlcjo6c2hyaW5rVG9GaXQpOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaDoK
KyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6U3RyaW5nQnVpbGRlcik6CisgICAgICAgIChX
VEY6OlN0cmluZ0J1aWxkZXI6OmFwcGVuZCk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6
OmFwcGVuZExpdGVyYWwpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjp0b1N0cmluZyk6
CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSBj
b25zdCk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OnRvQXRvbWljU3RyaW5nIGNvbnN0
KToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6aXM4Qml0IGNvbnN0KToKKyAgICAgICAg
KFdURjo6U3RyaW5nQnVpbGRlcjo6ZmFpbGVkIGNvbnN0KToKKyAgICAgICAgKFdURjo6U3RyaW5n
QnVpbGRlcjo6b3BlcmF0b3JbXSBjb25zdCk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6
OiBjb25zdCk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OmNsZWFyKToKKyAgICAgICAg
KFdURjo6U3RyaW5nQnVpbGRlcjo6c3dhcCk6CisgICAgICAgIChXVEY6OmVxdWFsKToKKyAgICAg
ICAgKFdURjo6SW50ZWdlclRvU3RyaW5nQ29udmVyc2lvblRyYWl0PFN0cmluZ0J1aWxkZXI+Ojpm
bHVzaCk6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nQnVpbGRlckpTT04uY3BwOgorICAgICAg
ICAoV1RGOjpTdHJpbmdCdWlsZGVyOjphcHBlbmRRdW90ZWRKU09OU3RyaW5nKToKKyAgICAgICAg
KiB3dGYvdGV4dC9TdHJpbmdJbXBsLmNwcDoKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6cmVh
bGxvY2F0ZUludGVybmFsKToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6cmVhbGxvY2F0ZSk6
CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OnRyeVJlYWxsb2NhdGUpOgorICAgICAgICAqIHd0
Zi90ZXh0L1N0cmluZ0ltcGwuaDoKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6dHJ5Q3JlYXRl
U3Vic3RyaW5nU2hhcmluZ0ltcGwpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjpjcmVhdGVT
dWJzdHJpbmdTaGFyaW5nSW1wbCk6CisgICAgICAgICogd3RmL3RleHQvVGV4dFN0cmVhbS5jcHA6
CisgICAgICAgIChXVEY6OlRleHRTdHJlYW06OnJlbGVhc2UpOgorCiAyMDE4LTA0LTI1ICBNYXJr
IExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBHYXJkZW5pbmc6IFNwZWN1bGF0
aXZlIGJ1aWxkIGZpeCBmb3IgV2luZG93cyAzMi1iaXQgdG8gY29tcGVuc2F0ZSBmb3IgTVNWQydz
IGxhY2sgb2Ygc21hcnRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5j
cHAgYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcAppbmRleCBlMTVhMDkyLi5kN2M4MzE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9Bc3NlcnRpb25zLmNwcApAQCAtMzQyLDkgKzM0MiwxMSBAQCB2b2lkIFdURkxvZ2dp
bmdBY2N1bXVsYXRvcjo6cmVzZXRBY2N1bXVsYXRlZExvZ3MoKQogU3RyaW5nIFdURkxvZ2dpbmdB
Y2N1bXVsYXRvcjo6Z2V0QW5kUmVzZXRBY2N1bXVsYXRlZExvZ3MoKQogewogICAgIExvY2tlcjxM
b2NrPiBsb2NrZXIoYWNjdW11bGF0b3JMb2NrKTsKLSAgICBTdHJpbmcgcmVzdWx0ID0gbG9nZ2lu
Z0FjY3VtdWxhdG9yLnRvU3RyaW5nKCk7Ci0gICAgbG9nZ2luZ0FjY3VtdWxhdG9yLmNsZWFyKCk7
Ci0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICBpZiAoYXV0byByZXN1bHQgPSBsb2dnaW5nQWNjdW11
bGF0b3IudG9TdHJpbmcoKSkgeworICAgICAgICBsb2dnaW5nQWNjdW11bGF0b3IuY2xlYXIoKTsK
KyAgICAgICAgcmV0dXJuICpyZXN1bHQ7CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIHN0YXRp
YyBXVEZMb2dnaW5nQWNjdW11bGF0b3ImIGxvZ2dpbmdBY2N1bXVsYXRvcigpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5j
cHAKaW5kZXggNmRiOTJlYi4uYTg0MjVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGF0
ZU1hdGguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcApAQCAtMTE4Nyw3ICsx
MTg3LDkgQEAgU3RyaW5nIG1ha2VSRkMyODIyRGF0ZVN0cmluZyh1bnNpZ25lZCBkYXlPZldlZWss
IHVuc2lnbmVkIGRheSwgdW5zaWduZWQgbW9udGgsIHUKICAgICBhcHBlbmRUd29EaWdpdE51bWJl
cihzdHJpbmdCdWlsZGVyLCBhYnNvbHV0ZVVUQ09mZnNldCAvIDYwKTsKICAgICBhcHBlbmRUd29E
aWdpdE51bWJlcihzdHJpbmdCdWlsZGVyLCBhYnNvbHV0ZVVUQ09mZnNldCAlIDYwKTsKIAotICAg
IHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
c3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBD
UkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL0pTT05WYWx1ZXMuY3BwIGIvU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5jcHAKaW5kZXgg
YmRlNDRhYi4uMDhjNjIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5j
cHAKKysrIGIvU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5jcHAKQEAgLTMyNyw4ICszMjcsMTEg
QEAgYm9vbCBkZWNvZGVTdHJpbmcoY29uc3QgVUNoYXIqIHN0YXJ0LCBjb25zdCBVQ2hhciogZW5k
LCBTdHJpbmcmIG91dHB1dCkKICAgICBpZiAoIWRlY29kZVN0cmluZyhzdGFydCwgZW5kLCBidWZm
ZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBvdXRwdXQgPSBidWZmZXIudG9TdHJp
bmcoKTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWZmZXIudG9T
dHJpbmcoKSkgeworICAgICAgICBvdXRwdXQgPSAqc3RyaW5nOworICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBSZWZQdHI8SlNPTjo6VmFsdWU+IGJ1
aWxkVmFsdWUoY29uc3QgVUNoYXIqIHN0YXJ0LCBjb25zdCBVQ2hhciogZW5kLCBjb25zdCBVQ2hh
cioqIHZhbHVlVG9rZW5FbmQsIGludCBkZXB0aCkKQEAgLTU1Myw3ICs1NTYsOSBAQCBTdHJpbmcg
VmFsdWU6OnRvSlNPTlN0cmluZygpIGNvbnN0CiAgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CiAg
ICAgcmVzdWx0LnJlc2VydmVDYXBhY2l0eSg1MTIpOwogICAgIHdyaXRlSlNPTihyZXN1bHQpOwot
ICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1
bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogYm9vbCBWYWx1ZTo6YXNCb29sZWFuKGJvb2wmIG91dHB1dCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5oIGIvU291cmNlL1dURi93dGYvTG9nZ2VyLmgKaW5kZXgg
NmIwMWI1OC4uNDhiOGQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTG9nZ2VyLmgKKysr
IGIvU291cmNlL1dURi93dGYvTG9nZ2VyLmgKQEAgLTQ2LDcgKzQ2LDEyIEBAIHN0cnVjdCBMb2dB
cmd1bWVudCB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVSA9IFQ+IHN0YXRpYyB0eXBlbmFtZSBz
dGQ6OmVuYWJsZV9pZjxzdGQ6OmlzX3NhbWU8VSwgZG91YmxlPjo6dmFsdWUsIFN0cmluZz46OnR5
cGUgdG9TdHJpbmcoZG91YmxlIGFyZ3VtZW50KSB7IHJldHVybiBTdHJpbmc6Om51bWJlcihhcmd1
bWVudCk7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVID0gVD4gc3RhdGljIHR5cGVuYW1lIHN0
ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfc2FtZTx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8
VT46OnR5cGUsIEF0b21pY1N0cmluZz46OnZhbHVlLCBTdHJpbmc+Ojp0eXBlIHRvU3RyaW5nKEF0
b21pY1N0cmluZyBhcmd1bWVudCkgeyByZXR1cm4gYXJndW1lbnQuc3RyaW5nKCk7IH0KICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBVID0gVD4gc3RhdGljIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0
ZDo6aXNfc2FtZTx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8VT46OnR5cGUsIFN0cmlu
Zz46OnZhbHVlLCBTdHJpbmc+Ojp0eXBlIHRvU3RyaW5nKFN0cmluZyBhcmd1bWVudCkgeyByZXR1
cm4gYXJndW1lbnQ7IH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVID0gVD4gc3RhdGljIHR5cGVu
YW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfc2FtZTx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZl
cmVuY2U8VT46OnR5cGUsIFN0cmluZ0J1aWxkZXIqPjo6dmFsdWUsIFN0cmluZz46OnR5cGUgdG9T
dHJpbmcoU3RyaW5nQnVpbGRlciogYXJndW1lbnQpIHsgcmV0dXJuIGFyZ3VtZW50LT50b1N0cmlu
ZygpOyB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVSA9IFQ+IHN0YXRpYyB0eXBlbmFtZSBzdGQ6
OmVuYWJsZV9pZjxzdGQ6OmlzX3NhbWU8dHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPFU+
Ojp0eXBlLCBTdHJpbmdCdWlsZGVyKj46OnZhbHVlLCBTdHJpbmc+Ojp0eXBlIHRvU3RyaW5nKFN0
cmluZ0J1aWxkZXIqIGFyZ3VtZW50KQorICAgIHsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
YXJndW1lbnQtPnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAg
ICAgQ1JBU0goKTsKKyAgICB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVSA9IFQ+IHN0YXRpYyB0
eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxzdGQ6OmlzX3NhbWU8VSwgY29uc3QgY2hhcio+Ojp2YWx1
ZSwgU3RyaW5nPjo6dHlwZSB0b1N0cmluZyhjb25zdCBjaGFyKiBhcmd1bWVudCkgeyByZXR1cm4g
U3RyaW5nKGFyZ3VtZW50KTsgfQogICAgIHRlbXBsYXRlPHNpemVfdCBsZW5ndGg+IHN0YXRpYyBT
dHJpbmcgdG9TdHJpbmcoY29uc3QgY2hhciAoJmFyZ3VtZW50KVtsZW5ndGhdKSB7IHJldHVybiBT
dHJpbmcoYXJndW1lbnQpOyB9CiB9OwpAQCAtMjc0LDcgKzI3OSw5IEBAIHN0cnVjdCBMb2dBcmd1
bWVudDxMb2dnZXI6OkxvZ1NpdGVJZGVudGlmaWVyPiB7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCcoJyk7CiAgICAgICAgIGFwcGVuZFVuc2lnbmVkNjRBc0hleCh2YWx1ZS5vYmplY3RQdHIsIGJ1
aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIikgIik7Ci0gICAgICAgIHJl
dHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFT
SCgpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01lZGlhVGltZS5j
cHAgYi9Tb3VyY2UvV1RGL3d0Zi9NZWRpYVRpbWUuY3BwCmluZGV4IDAzMDUwYjUuLjFmNzdiNDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01lZGlhVGltZS5jcHAKKysrIGIvU291cmNlL1dU
Ri93dGYvTWVkaWFUaW1lLmNwcApAQCAtNTc0LDcgKzU3NCw5IEBAIFN0cmluZyBNZWRpYVRpbWU6
OnRvU3RyaW5nKCkgY29uc3QKICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodG9Eb3Vi
bGUoKSk7CiAgICAgYnVpbGRlci5hcHBlbmQoJ30nKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIE1lZGlhVGltZTo6
dG9KU09OU3RyaW5nKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1VVSUQuY3Bw
IGIvU291cmNlL1dURi93dGYvVVVJRC5jcHAKaW5kZXggZmI1ZmU1Yi4uYjU5OGYwMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvVVVJRC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvVVVJRC5j
cHAKQEAgLTU2LDcgKzU2LDkgQEAgU3RyaW5nIGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKQog
ICAgIGJ1aWxkZXIuYXBwZW5kKCctJyk7CiAgICAgYXBwZW5kVW5zaWduZWRBc0hleEZpeGVkU2l6
ZShyYW5kb21EYXRhWzJdICYgMHgwMDAwZmZmZiwgYnVpbGRlciwgNCwgTG93ZXJjYXNlKTsKICAg
ICBhcHBlbmRVbnNpZ25lZEFzSGV4Rml4ZWRTaXplKHJhbmRvbURhdGFbM10sIGJ1aWxkZXIsIDgs
IExvd2VyY2FzZSk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3Ry
aW5nQnVpbGRlci5jcHAKaW5kZXggODViMGMyMS4uMjU4NGM1NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMCwgMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKQEAgLTYyLDI2ICs2Miw0NCBAQCB2b2lkIFN0cmluZ0J1aWxkZXI6OnJlaWZ5
U3RyaW5nKCkgY29uc3QKICAgICAgICAgbV9zdHJpbmcgPSBTdHJpbmdJbXBsOjpjcmVhdGVTdWJz
dHJpbmdTaGFyaW5nSW1wbCgqbV9idWZmZXIsIDAsIG1fbGVuZ3RoKTsKIH0KIAotdm9pZCBTdHJp
bmdCdWlsZGVyOjpyZXNpemUodW5zaWduZWQgbmV3U2l6ZSkKK1VuZXhwZWN0ZWQ8U3RyaW5nQnVp
bGRlcjo6RmFpbHVyZT4gU3RyaW5nQnVpbGRlcjo6d291bGRPdmVyZmxvdygpCit7CisgICAgbV9m
YWlsZWQgPSB0cnVlOworICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGYWlsdXJlOjpXb3VsZE92
ZXJmbG93KTsKK30KKworVW5leHBlY3RlZDxTdHJpbmdCdWlsZGVyOjpGYWlsdXJlPiBTdHJpbmdC
dWlsZGVyOjpvdXRPZk1lbW9yeSgpCit7CisgICAgY2xlYXIoKTsKKyAgICBtX2ZhaWxlZCA9IHRy
dWU7CisgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZhaWx1cmU6Ok91dE9mTWVtb3J5KTsKK30K
KworU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjpyZXNpemUodW5zaWdu
ZWQgbmV3U2l6ZSkKIHsKICAgICAvLyBDaGVjayBuZXdTaXplIDwgbV9sZW5ndGgsIGhlbmNlIG1f
bGVuZ3RoID4gMC4KICAgICBBU1NFUlQobmV3U2l6ZSA8PSBtX2xlbmd0aCk7CiAgICAgaWYgKG5l
d1NpemUgPT0gbV9sZW5ndGgpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHsgfTsK
ICAgICBBU1NFUlQobV9sZW5ndGgpOwogCiAgICAgLy8gSWYgdGhlcmUgaXMgYSBidWZmZXIsIHdl
IG9ubHkgbmVlZCB0byBkdXBsaWNhdGUgaXQgaWYgaXQgaGFzIG1vcmUgdGhhbiBvbmUgcmVmLgog
ICAgIGlmIChtX2J1ZmZlcikgewogICAgICAgICBtX3N0cmluZyA9IFN0cmluZygpOyAvLyBDbGVh
ciB0aGUgc3RyaW5nIHRvIHJlbW92ZSB0aGUgcmVmZXJlbmNlIHRvIG1fYnVmZmVyIGlmIGFueSBi
ZWZvcmUgY2hlY2tpbmcgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiBtX2J1ZmZlci4KICAgICAgICAg
aWYgKCFtX2J1ZmZlci0+aGFzT25lUmVmKCkpIHsKLSAgICAgICAgICAgIGlmIChtX2J1ZmZlci0+
aXM4Qml0KCkpCi0gICAgICAgICAgICAgICAgYWxsb2NhdGVCdWZmZXIobV9idWZmZXItPmNoYXJh
Y3RlcnM4KCksIG1fYnVmZmVyLT5sZW5ndGgoKSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAgICAgYWxsb2NhdGVCdWZmZXIobV9idWZmZXItPmNoYXJhY3RlcnMxNigpLCBtX2J1ZmZl
ci0+bGVuZ3RoKCkpOworICAgICAgICAgICAgaWYgKG1fYnVmZmVyLT5pczhCaXQoKSkgeworICAg
ICAgICAgICAgICAgIGF1dG8gYWxsb2NhdGVkID0gYWxsb2NhdGVCdWZmZXIobV9idWZmZXItPmNo
YXJhY3RlcnM4KCksIG1fYnVmZmVyLT5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgaWYgKCFh
bGxvY2F0ZWQpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBhbGxvY2F0ZWQ7CisgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGF1dG8gYWxsb2NhdGVkID0gYWxsb2NhdGVC
dWZmZXIobV9idWZmZXItPmNoYXJhY3RlcnMxNigpLCBtX2J1ZmZlci0+bGVuZ3RoKCkpOworICAg
ICAgICAgICAgICAgIGlmICghYWxsb2NhdGVkKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
YWxsb2NhdGVkOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIG1fbGVuZ3RoID0g
bmV3U2l6ZTsKICAgICAgICAgQVNTRVJUKG1fYnVmZmVyLT5sZW5ndGgoKSA+PSBtX2xlbmd0aCk7
Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKICAgICAvLyBT
aW5jZSBtX2xlbmd0aCAmJiAhbV9idWZmZXIsIHRoZSBzdHJpbmcgbXVzdCBiZSB2YWxpZCBpbiBt
X3N0cmluZywgYW5kIG1fc3RyaW5nLmxlbmd0aCgpID4gMC4KQEAgLTg5LDQ3ICsxMDcsNjAgQEAg
dm9pZCBTdHJpbmdCdWlsZGVyOjpyZXNpemUodW5zaWduZWQgbmV3U2l6ZSkKICAgICBBU1NFUlQo
bV9sZW5ndGggPT0gbV9zdHJpbmcubGVuZ3RoKCkpOwogICAgIEFTU0VSVChuZXdTaXplIDwgbV9z
dHJpbmcubGVuZ3RoKCkpOwogICAgIG1fbGVuZ3RoID0gbmV3U2l6ZTsKLSAgICBtX3N0cmluZyA9
IFN0cmluZ0ltcGw6OmNyZWF0ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKCptX3N0cmluZy5pbXBsKCks
IDAsIG5ld1NpemUpOworICAgIGlmIChhdXRvIGNyZWF0ZWQgPSBTdHJpbmdJbXBsOjp0cnlDcmVh
dGVTdWJzdHJpbmdTaGFyaW5nSW1wbCgqbV9zdHJpbmcuaW1wbCgpLCAwLCBuZXdTaXplKSkgewor
ICAgICAgICBtX3N0cmluZyA9ICpjcmVhdGVkOworICAgICAgICByZXR1cm4geyB9OworICAgIH0g
ZWxzZQorICAgICAgICByZXR1cm4gb3V0T2ZNZW1vcnkoKTsKIH0KIAogLy8gQWxsb2NhdGUgYSBu
ZXcgOCBiaXQgYnVmZmVyLCBjb3B5aW5nIGluIGN1cnJlbnRDaGFyYWN0ZXJzICh0aGVzZSBtYXkg
Y29tZSBmcm9tIGVpdGhlciBtX3N0cmluZwogLy8gb3IgbV9idWZmZXIsIG5laXRoZXIgd2lsbCBi
ZSByZWFzc2lnbmVkIHVudGlsIHRoZSBjb3B5IGhhcyBjb21wbGV0ZWQpLgotdm9pZCBTdHJpbmdC
dWlsZGVyOjphbGxvY2F0ZUJ1ZmZlcihjb25zdCBMQ2hhciogY3VycmVudENoYXJhY3RlcnMsIHVu
c2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdC
dWlsZGVyOjphbGxvY2F0ZUJ1ZmZlcihjb25zdCBMQ2hhciogY3VycmVudENoYXJhY3RlcnMsIHVu
c2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQogewogICAgIEFTU0VSVChtX2lzOEJpdCk7CiAgICAgLy8g
Q29weSB0aGUgZXhpc3RpbmcgZGF0YSBpbnRvIGEgbmV3IGJ1ZmZlciwgc2V0IHJlc3VsdCB0byBw
b2ludCB0byB0aGUgZW5kIG9mIHRoZSBleGlzdGluZyBkYXRhLgotICAgIGF1dG8gYnVmZmVyID0g
U3RyaW5nSW1wbDo6Y3JlYXRlVW5pbml0aWFsaXplZChyZXF1aXJlZExlbmd0aCwgbV9idWZmZXJD
aGFyYWN0ZXJzOCk7CisgICAgYXV0byBidWZmZXIgPSBTdHJpbmdJbXBsOjp0cnlDcmVhdGVVbmlu
aXRpYWxpemVkKHJlcXVpcmVkTGVuZ3RoLCBtX2J1ZmZlckNoYXJhY3RlcnM4KTsKKyAgICBpZiAo
IWJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIG91dE9mTWVtb3J5KCk7CiAgICAgbWVtY3B5KG1fYnVm
ZmVyQ2hhcmFjdGVyczgsIGN1cnJlbnRDaGFyYWN0ZXJzLCBzdGF0aWNfY2FzdDxzaXplX3Q+KG1f
bGVuZ3RoKSAqIHNpemVvZihMQ2hhcikpOyAvLyBUaGlzIGNhbid0IG92ZXJmbG93LgogICAgIAog
ICAgIC8vIFVwZGF0ZSB0aGUgYnVpbGRlciBzdGF0ZS4KICAgICBtX2J1ZmZlciA9IFdURk1vdmUo
YnVmZmVyKTsKICAgICBtX3N0cmluZyA9IFN0cmluZygpOwogICAgIEFTU0VSVChtX2J1ZmZlci0+
bGVuZ3RoKCkgPT0gcmVxdWlyZWRMZW5ndGgpOworICAgIHJldHVybiB7IH07CiB9CiAKIC8vIEFs
bG9jYXRlIGEgbmV3IDE2IGJpdCBidWZmZXIsIGNvcHlpbmcgaW4gY3VycmVudENoYXJhY3RlcnMg
KHRoZXNlIG1heSBjb21lIGZyb20gZWl0aGVyIG1fc3RyaW5nCiAvLyBvciBtX2J1ZmZlciwgIG5l
aXRoZXIgd2lsbCBiZSByZWFzc2lnbmVkIHVudGlsIHRoZSBjb3B5IGhhcyBjb21wbGV0ZWQpLgot
dm9pZCBTdHJpbmdCdWlsZGVyOjphbGxvY2F0ZUJ1ZmZlcihjb25zdCBVQ2hhciogY3VycmVudENo
YXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQorU3RyaW5nQnVpbGRlcjo6RmFsbGli
bGU8PiBTdHJpbmdCdWlsZGVyOjphbGxvY2F0ZUJ1ZmZlcihjb25zdCBVQ2hhciogY3VycmVudENo
YXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQogewogICAgIEFTU0VSVCghbV9pczhC
aXQpOwogICAgIC8vIENvcHkgdGhlIGV4aXN0aW5nIGRhdGEgaW50byBhIG5ldyBidWZmZXIsIHNl
dCByZXN1bHQgdG8gcG9pbnQgdG8gdGhlIGVuZCBvZiB0aGUgZXhpc3RpbmcgZGF0YS4KLSAgICBh
dXRvIGJ1ZmZlciA9IFN0cmluZ0ltcGw6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQocmVxdWlyZWRMZW5n
dGgsIG1fYnVmZmVyQ2hhcmFjdGVyczE2KTsKKyAgICBhdXRvIGJ1ZmZlciA9IFN0cmluZ0ltcGw6
OnRyeUNyZWF0ZVVuaW5pdGlhbGl6ZWQocmVxdWlyZWRMZW5ndGgsIG1fYnVmZmVyQ2hhcmFjdGVy
czE2KTsKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIG91dE9mTWVtb3J5KCk7CiAg
ICAgbWVtY3B5KG1fYnVmZmVyQ2hhcmFjdGVyczE2LCBjdXJyZW50Q2hhcmFjdGVycywgc3RhdGlj
X2Nhc3Q8c2l6ZV90PihtX2xlbmd0aCkgKiBzaXplb2YoVUNoYXIpKTsgLy8gVGhpcyBjYW4ndCBv
dmVyZmxvdy4KICAgICAKICAgICAvLyBVcGRhdGUgdGhlIGJ1aWxkZXIgc3RhdGUuCiAgICAgbV9i
dWZmZXIgPSBXVEZNb3ZlKGJ1ZmZlcik7CiAgICAgbV9zdHJpbmcgPSBTdHJpbmcoKTsKICAgICBB
U1NFUlQobV9idWZmZXItPmxlbmd0aCgpID09IHJlcXVpcmVkTGVuZ3RoKTsKKyAgICByZXR1cm4g
eyB9OwogfQogCiAvLyBBbGxvY2F0ZSBhIG5ldyAxNiBiaXQgYnVmZmVyLCBjb3B5aW5nIGluIGN1
cnJlbnRDaGFyYWN0ZXJzICh3aGljaCBpcyA4IGJpdCBhbmQgbWF5IGNvbWUKIC8vIGZyb20gZWl0
aGVyIG1fc3RyaW5nIG9yIG1fYnVmZmVyLCBuZWl0aGVyIHdpbGwgYmUgcmVhc3NpZ25lZCB1bnRp
bCB0aGUgY29weSBoYXMgY29tcGxldGVkKS4KLXZvaWQgU3RyaW5nQnVpbGRlcjo6YWxsb2NhdGVC
dWZmZXJVcENvbnZlcnQoY29uc3QgTENoYXIqIGN1cnJlbnRDaGFyYWN0ZXJzLCB1bnNpZ25lZCBy
ZXF1aXJlZExlbmd0aCkKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6
YWxsb2NhdGVCdWZmZXJVcENvbnZlcnQoY29uc3QgTENoYXIqIGN1cnJlbnRDaGFyYWN0ZXJzLCB1
bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKIHsKICAgICBBU1NFUlQobV9pczhCaXQpOwogICAgIEFT
U0VSVChyZXF1aXJlZExlbmd0aCA+PSBtX2xlbmd0aCk7CiAgICAgLy8gQ29weSB0aGUgZXhpc3Rp
bmcgZGF0YSBpbnRvIGEgbmV3IGJ1ZmZlciwgc2V0IHJlc3VsdCB0byBwb2ludCB0byB0aGUgZW5k
IG9mIHRoZSBleGlzdGluZyBkYXRhLgotICAgIGF1dG8gYnVmZmVyID0gU3RyaW5nSW1wbDo6Y3Jl
YXRlVW5pbml0aWFsaXplZChyZXF1aXJlZExlbmd0aCwgbV9idWZmZXJDaGFyYWN0ZXJzMTYpOwor
ICAgIGF1dG8gYnVmZmVyID0gU3RyaW5nSW1wbDo6dHJ5Q3JlYXRlVW5pbml0aWFsaXplZChyZXF1
aXJlZExlbmd0aCwgbV9idWZmZXJDaGFyYWN0ZXJzMTYpOworICAgIGlmICghYnVmZmVyKQorICAg
ICAgICByZXR1cm4gb3V0T2ZNZW1vcnkoKTsKKwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBtX2xlbmd0aDsgKytpKQogICAgICAgICBtX2J1ZmZlckNoYXJhY3RlcnMxNltpXSA9IGN1cnJl
bnRDaGFyYWN0ZXJzW2ldOwogICAgIApAQCAtMTM5LDEwICsxNzAsMTEgQEAgdm9pZCBTdHJpbmdC
dWlsZGVyOjphbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChjb25zdCBMQ2hhciogY3VycmVudENoYXJh
Y3RlcnMsIHVuc2kKICAgICBtX2J1ZmZlciA9IFdURk1vdmUoYnVmZmVyKTsKICAgICBtX3N0cmlu
ZyA9IFN0cmluZygpOwogICAgIEFTU0VSVChtX2J1ZmZlci0+bGVuZ3RoKCkgPT0gcmVxdWlyZWRM
ZW5ndGgpOworICAgIHJldHVybiB7IH07CiB9CiAKIHRlbXBsYXRlIDw+Ci12b2lkIFN0cmluZ0J1
aWxkZXI6OnJlYWxsb2NhdGVCdWZmZXI8TENoYXI+KHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQor
U3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjpyZWFsbG9jYXRlQnVmZmVy
PExDaGFyPih1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKIHsKICAgICAvLyBJZiB0aGUgYnVmZmVy
IGhhcyBvbmx5IG9uZSByZWYgKGJ5IHRoaXMgU3RyaW5nQnVpbGRlciksIHJlYWxsb2NhdGUgaXQs
CiAgICAgLy8gb3RoZXJ3aXNlIGZhbGwgYmFjayB0byAiYWxsb2NhdGUgYW5kIGNvcHkiIG1ldGhv
ZC4KQEAgLTE1MSw2NSArMTgzLDg5IEBAIHZvaWQgU3RyaW5nQnVpbGRlcjo6cmVhbGxvY2F0ZUJ1
ZmZlcjxMQ2hhcj4odW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCiAgICAgQVNTRVJUKG1faXM4Qml0
KTsKICAgICBBU1NFUlQobV9idWZmZXItPmlzOEJpdCgpKTsKICAgICAKLSAgICBpZiAobV9idWZm
ZXItPmhhc09uZVJlZigpKQotICAgICAgICBtX2J1ZmZlciA9IFN0cmluZ0ltcGw6OnJlYWxsb2Nh
dGUobV9idWZmZXIucmVsZWFzZU5vbk51bGwoKSwgcmVxdWlyZWRMZW5ndGgsIG1fYnVmZmVyQ2hh
cmFjdGVyczgpOwotICAgIGVsc2UKLSAgICAgICAgYWxsb2NhdGVCdWZmZXIobV9idWZmZXItPmNo
YXJhY3RlcnM4KCksIHJlcXVpcmVkTGVuZ3RoKTsKKyAgICBpZiAobV9idWZmZXItPmhhc09uZVJl
ZigpKSB7CisgICAgICAgIGF1dG8gcmVhbGxvY2F0ZWQgPSBTdHJpbmdJbXBsOjp0cnlSZWFsbG9j
YXRlKG1fYnVmZmVyLnJlbGVhc2VOb25OdWxsKCksIHJlcXVpcmVkTGVuZ3RoLCBtX2J1ZmZlckNo
YXJhY3RlcnM4KTsKKyAgICAgICAgaWYgKCFyZWFsbG9jYXRlZCkKKyAgICAgICAgICAgIHJldHVy
biBvdXRPZk1lbW9yeSgpOworICAgICAgICBtX2J1ZmZlciA9IHJlYWxsb2NhdGVkLmdldCgpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8gYWxsb2NhdGVkID0gYWxsb2NhdGVCdWZmZXIobV9i
dWZmZXItPmNoYXJhY3RlcnM4KCksIHJlcXVpcmVkTGVuZ3RoKTsKKyAgICAgICAgaWYgKCFhbGxv
Y2F0ZWQpCisgICAgICAgICAgICByZXR1cm4gYWxsb2NhdGVkOworICAgIH0KICAgICBBU1NFUlQo
bV9idWZmZXItPmxlbmd0aCgpID09IHJlcXVpcmVkTGVuZ3RoKTsKKyAgICByZXR1cm4geyB9Owog
fQogCiB0ZW1wbGF0ZSA8Pgotdm9pZCBTdHJpbmdCdWlsZGVyOjpyZWFsbG9jYXRlQnVmZmVyPFVD
aGFyPih1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4g
U3RyaW5nQnVpbGRlcjo6cmVhbGxvY2F0ZUJ1ZmZlcjxVQ2hhcj4odW5zaWduZWQgcmVxdWlyZWRM
ZW5ndGgpCiB7CiAgICAgLy8gSWYgdGhlIGJ1ZmZlciBoYXMgb25seSBvbmUgcmVmIChieSB0aGlz
IFN0cmluZ0J1aWxkZXIpLCByZWFsbG9jYXRlIGl0LAogICAgIC8vIG90aGVyd2lzZSBmYWxsIGJh
Y2sgdG8gImFsbG9jYXRlIGFuZCBjb3B5IiBtZXRob2QuCiAgICAgbV9zdHJpbmcgPSBTdHJpbmco
KTsKICAgICAKLSAgICBpZiAobV9idWZmZXItPmlzOEJpdCgpKQotICAgICAgICBhbGxvY2F0ZUJ1
ZmZlclVwQ29udmVydChtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKSwgcmVxdWlyZWRMZW5ndGgpOwor
ICAgIGlmIChtX2J1ZmZlci0+aXM4Qml0KCkpIHsKKyAgICAgICAgYXV0byBhbGxvY2F0ZWQgPSBh
bGxvY2F0ZUJ1ZmZlclVwQ29udmVydChtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKSwgcmVxdWlyZWRM
ZW5ndGgpOworICAgICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAgIHJldHVybiBhbGxv
Y2F0ZWQ7CisgICAgfQogICAgIGVsc2UgaWYgKG1fYnVmZmVyLT5oYXNPbmVSZWYoKSkKICAgICAg
ICAgbV9idWZmZXIgPSBTdHJpbmdJbXBsOjpyZWFsbG9jYXRlKG1fYnVmZmVyLnJlbGVhc2VOb25O
dWxsKCksIHJlcXVpcmVkTGVuZ3RoLCBtX2J1ZmZlckNoYXJhY3RlcnMxNik7CiAgICAgZWxzZQog
ICAgICAgICBhbGxvY2F0ZUJ1ZmZlcihtX2J1ZmZlci0+Y2hhcmFjdGVyczE2KCksIHJlcXVpcmVk
TGVuZ3RoKTsKICAgICBBU1NFUlQobV9idWZmZXItPmxlbmd0aCgpID09IHJlcXVpcmVkTGVuZ3Ro
KTsKKyAgICByZXR1cm4geyB9OwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OnJlc2VydmVDYXBh
Y2l0eSh1bnNpZ25lZCBuZXdDYXBhY2l0eSkKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3Ry
aW5nQnVpbGRlcjo6cmVzZXJ2ZUNhcGFjaXR5KHVuc2lnbmVkIG5ld0NhcGFjaXR5KQogewogICAg
IGlmIChtX2J1ZmZlcikgewogICAgICAgICAvLyBJZiB0aGVyZSBpcyBhbHJlYWR5IGEgYnVmZmVy
LCB0aGVuIGdyb3cgaWYgbmVjZXNzYXJ5LgogICAgICAgICBpZiAobmV3Q2FwYWNpdHkgPiBtX2J1
ZmZlci0+bGVuZ3RoKCkpIHsKLSAgICAgICAgICAgIGlmIChtX2J1ZmZlci0+aXM4Qml0KCkpCi0g
ICAgICAgICAgICAgICAgcmVhbGxvY2F0ZUJ1ZmZlcjxMQ2hhcj4obmV3Q2FwYWNpdHkpOwotICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJlYWxsb2NhdGVCdWZmZXI8VUNoYXI+KG5l
d0NhcGFjaXR5KTsKKyAgICAgICAgICAgIGlmIChtX2J1ZmZlci0+aXM4Qml0KCkpIHsKKyAgICAg
ICAgICAgICAgICBhdXRvIHJlYWxsb2NhdGVkID0gcmVhbGxvY2F0ZUJ1ZmZlcjxMQ2hhcj4obmV3
Q2FwYWNpdHkpOworICAgICAgICAgICAgICAgIGlmICghcmVhbGxvY2F0ZWQpCisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiByZWFsbG9jYXRlZDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgICAgYXV0byByZWFsbG9jYXRlZCA9IHJlYWxsb2NhdGVCdWZmZXI8VUNoYXI+KG5l
d0NhcGFjaXR5KTsKKyAgICAgICAgICAgICAgICBpZiAoIXJlYWxsb2NhdGVkKQorICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gcmVhbGxvY2F0ZWQ7CisgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICB9IGVsc2UgewogICAgICAgICAvLyBHcm93IHRoZSBzdHJpbmcsIGlmIG5lY2Vzc2FyeS4K
ICAgICAgICAgaWYgKG5ld0NhcGFjaXR5ID4gbV9sZW5ndGgpIHsKICAgICAgICAgICAgIGlmICgh
bV9sZW5ndGgpIHsKICAgICAgICAgICAgICAgICBMQ2hhciogbnVsbFBsYWNlaG9sZGVyID0gMDsK
LSAgICAgICAgICAgICAgICBhbGxvY2F0ZUJ1ZmZlcihudWxsUGxhY2Vob2xkZXIsIG5ld0NhcGFj
aXR5KTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAobV9zdHJpbmcuaXM4Qml0KCkpCi0gICAgICAg
ICAgICAgICAgYWxsb2NhdGVCdWZmZXIobV9zdHJpbmcuY2hhcmFjdGVyczgoKSwgbmV3Q2FwYWNp
dHkpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGFsbG9jYXRlQnVmZmVyKG1f
c3RyaW5nLmNoYXJhY3RlcnMxNigpLCBuZXdDYXBhY2l0eSk7CisgICAgICAgICAgICAgICAgYXV0
byBhbGxvY2F0ZWQgPSBhbGxvY2F0ZUJ1ZmZlcihudWxsUGxhY2Vob2xkZXIsIG5ld0NhcGFjaXR5
KTsKKyAgICAgICAgICAgICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGFsbG9jYXRlZDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobV9zdHJpbmcuaXM4Qml0
KCkpIHsKKyAgICAgICAgICAgICAgICBhdXRvIGFsbG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVyKG1f
c3RyaW5nLmNoYXJhY3RlcnM4KCksIG5ld0NhcGFjaXR5KTsKKyAgICAgICAgICAgICAgICBpZiAo
IWFsbG9jYXRlZCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRlZDsKKyAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYXV0byBhbGxvY2F0ZWQgPSBhbGxvY2F0
ZUJ1ZmZlcihtX3N0cmluZy5jaGFyYWN0ZXJzMTYoKSwgbmV3Q2FwYWNpdHkpOworICAgICAgICAg
ICAgICAgIGlmICghYWxsb2NhdGVkKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWxsb2Nh
dGVkOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogICAgIEFTU0VSVCghbmV3Q2Fw
YWNpdHkgfHwgbV9idWZmZXItPmxlbmd0aCgpID49IG5ld0NhcGFjaXR5KTsKKyAgICByZXR1cm4g
eyB9OwogfQogCiAvLyBNYWtlICdsZW5ndGgnIGFkZGl0aW9uYWwgY2FwYWNpdHkgYmUgYXZhaWxh
YmxlIGluIG1fYnVmZmVyLCB1cGRhdGUgbV9zdHJpbmcgJiBtX2xlbmd0aCwKIC8vIHJldHVybiBh
IHBvaW50ZXIgdG8gdGhlIG5ld2x5IGFsbG9jYXRlZCBzdG9yYWdlLgogdGVtcGxhdGUgPHR5cGVu
YW1lIENoYXJUeXBlPgotQUxXQVlTX0lOTElORSBDaGFyVHlwZSogU3RyaW5nQnVpbGRlcjo6YXBw
ZW5kVW5pbml0aWFsaXplZCh1bnNpZ25lZCBsZW5ndGgpCitBTFdBWVNfSU5MSU5FIFN0cmluZ0J1
aWxkZXI6OkZhbGxpYmxlPENoYXJUeXBlKj4gU3RyaW5nQnVpbGRlcjo6YXBwZW5kVW5pbml0aWFs
aXplZCh1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgQVNTRVJUKGxlbmd0aCk7CiAKICAgICAvLyBD
YWxjdWxhdGUgdGhlIG5ldyBzaXplIG9mIHRoZSBidWlsZGVyIGFmdGVyIGFwcGVuZGluZy4KICAg
ICB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCA9IGxlbmd0aCArIG1fbGVuZ3RoOwogICAgIGlmIChy
ZXF1aXJlZExlbmd0aCA8IGxlbmd0aCkKLSAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgcmV0dXJu
IHdvdWxkT3ZlcmZsb3coKTsKIAogICAgIGlmICgobV9idWZmZXIpICYmIChyZXF1aXJlZExlbmd0
aCA8PSBtX2J1ZmZlci0+bGVuZ3RoKCkpKSB7CiAgICAgICAgIC8vIElmIHRoZSBidWZmZXIgaXMg
dmFsaWQgaXQgbXVzdCBiZSBhdCBsZWFzdCBhcyBsb25nIGFzIHRoZSBjdXJyZW50IGJ1aWxkZXIg
Y29udGVudHMhCkBAIC0yMjYsNyArMjgyLDcgQEAgQUxXQVlTX0lOTElORSBDaGFyVHlwZSogU3Ry
aW5nQnVpbGRlcjo6YXBwZW5kVW5pbml0aWFsaXplZCh1bnNpZ25lZCBsZW5ndGgpCiAvLyBNYWtl
ICdsZW5ndGgnIGFkZGl0aW9uYWwgY2FwYWNpdHkgYmUgYXZhaWxhYmxlIGluIG1fYnVmZmVyLCB1
cGRhdGUgbV9zdHJpbmcgJiBtX2xlbmd0aCwKIC8vIHJldHVybiBhIHBvaW50ZXIgdG8gdGhlIG5l
d2x5IGFsbG9jYXRlZCBzdG9yYWdlLgogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgotQ2hh
clR5cGUqIFN0cmluZ0J1aWxkZXI6OmFwcGVuZFVuaW5pdGlhbGl6ZWRTbG93KHVuc2lnbmVkIHJl
cXVpcmVkTGVuZ3RoKQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8Q2hhclR5cGUqPiBTdHJpbmdC
dWlsZGVyOjphcHBlbmRVbmluaXRpYWxpemVkU2xvdyh1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkK
IHsKICAgICBBU1NFUlQocmVxdWlyZWRMZW5ndGgpOwogCkBAIC0yMzQsMTAgKzI5MCwxNCBAQCBD
aGFyVHlwZSogU3RyaW5nQnVpbGRlcjo6YXBwZW5kVW5pbml0aWFsaXplZFNsb3codW5zaWduZWQg
cmVxdWlyZWRMZW5ndGgpCiAgICAgICAgIC8vIElmIHRoZSBidWZmZXIgaXMgdmFsaWQgaXQgbXVz
dCBiZSBhdCBsZWFzdCBhcyBsb25nIGFzIHRoZSBjdXJyZW50IGJ1aWxkZXIgY29udGVudHMhCiAg
ICAgICAgIEFTU0VSVChtX2J1ZmZlci0+bGVuZ3RoKCkgPj0gbV9sZW5ndGgpOwogICAgICAgICAK
LSAgICAgICAgcmVhbGxvY2F0ZUJ1ZmZlcjxDaGFyVHlwZT4oZXhwYW5kZWRDYXBhY2l0eShjYXBh
Y2l0eSgpLCByZXF1aXJlZExlbmd0aCkpOworICAgICAgICBhdXRvIHJlYWxsb2NhdGVkID0gcmVh
bGxvY2F0ZUJ1ZmZlcjxDaGFyVHlwZT4oZXhwYW5kZWRDYXBhY2l0eShjYXBhY2l0eSgpLCByZXF1
aXJlZExlbmd0aCkpOworICAgICAgICBpZiAoIXJlYWxsb2NhdGVkKQorICAgICAgICAgICAgcmV0
dXJuIG1ha2VVbmV4cGVjdGVkKHJlYWxsb2NhdGVkLmVycm9yKCkpOwogICAgIH0gZWxzZSB7CiAg
ICAgICAgIEFTU0VSVChtX3N0cmluZy5sZW5ndGgoKSA9PSBtX2xlbmd0aCk7Ci0gICAgICAgIGFs
bG9jYXRlQnVmZmVyKG1fbGVuZ3RoID8gbV9zdHJpbmcuY2hhcmFjdGVyczxDaGFyVHlwZT4oKSA6
IDAsIGV4cGFuZGVkQ2FwYWNpdHkoY2FwYWNpdHkoKSwgcmVxdWlyZWRMZW5ndGgpKTsKKyAgICAg
ICAgYXV0byBhbGxvY2F0ZWQgPSBhbGxvY2F0ZUJ1ZmZlcihtX2xlbmd0aCA/IG1fc3RyaW5nLmNo
YXJhY3RlcnM8Q2hhclR5cGU+KCkgOiAwLCBleHBhbmRlZENhcGFjaXR5KGNhcGFjaXR5KCksIHJl
cXVpcmVkTGVuZ3RoKSk7CisgICAgICAgIGlmICghYWxsb2NhdGVkKQorICAgICAgICAgICAgcmV0
dXJuIG1ha2VVbmV4cGVjdGVkKGFsbG9jYXRlZC5lcnJvcigpKTsKICAgICB9CiAgICAgCiAgICAg
Q2hhclR5cGUqIHJlc3VsdCA9IGdldEJ1ZmZlckNoYXJhY3RlcnM8Q2hhclR5cGU+KCkgKyBtX2xl
bmd0aDsKQEAgLTI0NiwxMCArMzA2LDEwIEBAIENoYXJUeXBlKiBTdHJpbmdCdWlsZGVyOjphcHBl
bmRVbmluaXRpYWxpemVkU2xvdyh1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVuZChjb25zdCBVQ2hhciogY2hh
cmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJp
bmdCdWlsZGVyOjphcHBlbmQoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0
aCkKIHsKICAgICBpZiAoIWxlbmd0aCkKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4g
eyB9OwogCiAgICAgQVNTRVJUKGNoYXJhY3RlcnMpOwogCkBAIC0yNTcsNDAgKzMxNyw1MSBAQCB2
b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVuZChjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWdu
ZWQgbGVuZ3RoKQogICAgICAgICBpZiAobGVuZ3RoID09IDEgJiYgISgqY2hhcmFjdGVycyAmIH4w
eGZmKSkgewogICAgICAgICAgICAgLy8gQXBwZW5kIGFzIDggYml0IGNoYXJhY3RlcgogICAgICAg
ICAgICAgTENoYXIgbENoYXIgPSBzdGF0aWNfY2FzdDxMQ2hhcj4oKmNoYXJhY3RlcnMpOwotICAg
ICAgICAgICAgYXBwZW5kKCZsQ2hhciwgMSk7Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICByZXR1cm4gYXBwZW5kKCZsQ2hhciwgMSk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBD
YWxjdWxhdGUgdGhlIG5ldyBzaXplIG9mIHRoZSBidWlsZGVyIGFmdGVyIGFwcGVuZGluZy4KICAg
ICAgICAgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGggPSBsZW5ndGggKyBtX2xlbmd0aDsKICAgICAg
ICAgaWYgKHJlcXVpcmVkTGVuZ3RoIDwgbGVuZ3RoKQotICAgICAgICAgICAgQ1JBU0goKTsKKyAg
ICAgICAgICAgIHJldHVybiB3b3VsZE92ZXJmbG93KCk7CiAgICAgICAgIAogICAgICAgICBpZiAo
bV9idWZmZXIpIHsKICAgICAgICAgICAgIC8vIElmIHRoZSBidWZmZXIgaXMgdmFsaWQgaXQgbXVz
dCBiZSBhdCBsZWFzdCBhcyBsb25nIGFzIHRoZSBjdXJyZW50IGJ1aWxkZXIgY29udGVudHMhCiAg
ICAgICAgICAgICBBU1NFUlQobV9idWZmZXItPmxlbmd0aCgpID49IG1fbGVuZ3RoKTsKICAgICAg
ICAgICAgIAotICAgICAgICAgICAgYWxsb2NhdGVCdWZmZXJVcENvbnZlcnQobV9idWZmZXItPmNo
YXJhY3RlcnM4KCksIGV4cGFuZGVkQ2FwYWNpdHkoY2FwYWNpdHkoKSwgcmVxdWlyZWRMZW5ndGgp
KTsKKyAgICAgICAgICAgIGF1dG8gYWxsb2NhdGVkID0gYWxsb2NhdGVCdWZmZXJVcENvbnZlcnQo
bV9idWZmZXItPmNoYXJhY3RlcnM4KCksIGV4cGFuZGVkQ2FwYWNpdHkoY2FwYWNpdHkoKSwgcmVx
dWlyZWRMZW5ndGgpKTsKKyAgICAgICAgICAgIGlmICghYWxsb2NhdGVkKQorICAgICAgICAgICAg
ICAgIHJldHVybiBhbGxvY2F0ZWQ7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBBU1NF
UlQobV9zdHJpbmcubGVuZ3RoKCkgPT0gbV9sZW5ndGgpOwotICAgICAgICAgICAgYWxsb2NhdGVC
dWZmZXJVcENvbnZlcnQobV9zdHJpbmcuaXNOdWxsKCkgPyAwIDogbV9zdHJpbmcuY2hhcmFjdGVy
czgoKSwgZXhwYW5kZWRDYXBhY2l0eShjYXBhY2l0eSgpLCByZXF1aXJlZExlbmd0aCkpOworICAg
ICAgICAgICAgYXV0byBhbGxvY2F0ZWQgPSBhbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChtX3N0cmlu
Zy5pc051bGwoKSA/IDAgOiBtX3N0cmluZy5jaGFyYWN0ZXJzOCgpLCBleHBhbmRlZENhcGFjaXR5
KGNhcGFjaXR5KCksIHJlcXVpcmVkTGVuZ3RoKSk7CisgICAgICAgICAgICBpZiAoIWFsbG9jYXRl
ZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gYWxsb2NhdGVkOwogICAgICAgICB9CiAKICAgICAg
ICAgbWVtY3B5KG1fYnVmZmVyQ2hhcmFjdGVyczE2ICsgbV9sZW5ndGgsIGNoYXJhY3RlcnMsIHN0
YXRpY19jYXN0PHNpemVfdD4obGVuZ3RoKSAqIHNpemVvZihVQ2hhcikpOwogICAgICAgICBtX2xl
bmd0aCA9IHJlcXVpcmVkTGVuZ3RoOwotICAgIH0gZWxzZQotICAgICAgICBtZW1jcHkoYXBwZW5k
VW5pbml0aWFsaXplZDxVQ2hhcj4obGVuZ3RoKSwgY2hhcmFjdGVycywgc3RhdGljX2Nhc3Q8c2l6
ZV90PihsZW5ndGgpICogc2l6ZW9mKFVDaGFyKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYg
KGF1dG8gYXBwZW5kZWQgPSBhcHBlbmRVbmluaXRpYWxpemVkPFVDaGFyPihsZW5ndGgpKQorICAg
ICAgICAgICAgbWVtY3B5KCphcHBlbmRlZCwgY2hhcmFjdGVycywgc3RhdGljX2Nhc3Q8c2l6ZV90
PihsZW5ndGgpICogc2l6ZW9mKFVDaGFyKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJl
dHVybiBtYWtlVW5leHBlY3RlZChhcHBlbmRlZC5lcnJvcigpKTsKKyAgICB9CiAgICAgQVNTRVJU
KG1fYnVmZmVyLT5sZW5ndGgoKSA+PSBtX2xlbmd0aCk7CisgICAgcmV0dXJuIHsgfTsKIH0KIAot
dm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmQoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2ln
bmVkIGxlbmd0aCkKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6YXBw
ZW5kKGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgaWYg
KCFsZW5ndGgpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHsgfTsKICAgICBBU1NF
UlQoY2hhcmFjdGVycyk7CiAKICAgICBpZiAobV9pczhCaXQpIHsKLSAgICAgICAgTENoYXIqIGRl
c3QgPSBhcHBlbmRVbmluaXRpYWxpemVkPExDaGFyPihsZW5ndGgpOworICAgICAgICBhdXRvIGFw
cGVuZGVkID0gYXBwZW5kVW5pbml0aWFsaXplZDxMQ2hhcj4obGVuZ3RoKTsKKyAgICAgICAgaWYg
KCFhcHBlbmRlZCkKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChhcHBlbmRlZC5l
cnJvcigpKTsKKyAgICAgICAgTENoYXIqIGRlc3QgPSAqYXBwZW5kZWQ7CiAgICAgICAgIGlmIChs
ZW5ndGggPiA4KQogICAgICAgICAgICAgbWVtY3B5KGRlc3QsIGNoYXJhY3RlcnMsIHN0YXRpY19j
YXN0PHNpemVfdD4obGVuZ3RoKSAqIHNpemVvZihMQ2hhcikpOwogICAgICAgICBlbHNlIHsKQEAg
LTI5OSw3MyArMzcwLDc5IEBAIHZvaWQgU3RyaW5nQnVpbGRlcjo6YXBwZW5kKGNvbnN0IExDaGFy
KiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgICAgICAgICAgICAgKihkZXN0Kysp
ID0gKihjaGFyYWN0ZXJzKyspOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAgVUNo
YXIqIGRlc3QgPSBhcHBlbmRVbmluaXRpYWxpemVkPFVDaGFyPihsZW5ndGgpOworICAgICAgICBh
dXRvIGFwcGVuZGVkID0gYXBwZW5kVW5pbml0aWFsaXplZDxVQ2hhcj4obGVuZ3RoKTsKKyAgICAg
ICAgaWYgKCFhcHBlbmRlZCkKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChhcHBl
bmRlZC5lcnJvcigpKTsKKyAgICAgICAgVUNoYXIqIGRlc3QgPSAqYXBwZW5kZWQ7CiAgICAgICAg
IGNvbnN0IExDaGFyKiBlbmQgPSBjaGFyYWN0ZXJzICsgbGVuZ3RoOwogICAgICAgICB3aGlsZSAo
Y2hhcmFjdGVycyA8IGVuZCkKICAgICAgICAgICAgICooZGVzdCsrKSA9ICooY2hhcmFjdGVycysr
KTsKICAgICB9CisgICAgcmV0dXJuIHsgfTsKIH0KIAogI2lmIFVTRShDRikKIAotdm9pZCBTdHJp
bmdCdWlsZGVyOjphcHBlbmQoQ0ZTdHJpbmdSZWYgc3RyaW5nKQorU3RyaW5nQnVpbGRlcjo6RmFs
bGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmQoQ0ZTdHJpbmdSZWYgc3RyaW5nKQogewogICAg
IC8vIEZhc3QgcGF0aDogYXZvaWQgY29uc3RydWN0aW5nIGEgdGVtcG9yYXJ5IFN0cmluZyB3aGVu
IHBvc3NpYmxlLgogICAgIGlmIChhdXRvKiBjaGFyYWN0ZXJzID0gQ0ZTdHJpbmdHZXRDU3RyaW5n
UHRyKHN0cmluZywga0NGU3RyaW5nRW5jb2RpbmdJU09MYXRpbjEpKSB7Ci0gICAgICAgIGFwcGVu
ZChyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oY2hhcmFjdGVycyksIENGU3RyaW5nR2V0
TGVuZ3RoKHN0cmluZykpOwotICAgICAgICByZXR1cm47CisgICAgICAgIGlmIChhdXRvIGFwcGVu
ZGVkID0gYXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihjaGFyYWN0ZXJzKSwg
Q0ZTdHJpbmdHZXRMZW5ndGgoc3RyaW5nKSkpCisgICAgICAgICAgICByZXR1cm4geyB9OworICAg
ICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gYXBwZW5kZWQ7CiAgICAgfQotICAgIGFwcGVu
ZChTdHJpbmcoc3RyaW5nKSk7CisgICAgcmV0dXJuIGFwcGVuZChTdHJpbmcoc3RyaW5nKSk7CiB9
CiAKICNlbmRpZgogCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcihpbnQgbnVtYmVy
KQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIo
aW50IG51bWJlcikKIHsKLSAgICBudW1iZXJUb1N0cmluZ1NpZ25lZDxTdHJpbmdCdWlsZGVyPihu
dW1iZXIsIHRoaXMpOworICAgIHJldHVybiBudW1iZXJUb1N0cmluZ1NpZ25lZDxTdHJpbmdCdWls
ZGVyPihudW1iZXIsIHRoaXMpOwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJl
cih1bnNpZ25lZCBpbnQgbnVtYmVyKQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdC
dWlsZGVyOjphcHBlbmROdW1iZXIodW5zaWduZWQgaW50IG51bWJlcikKIHsKLSAgICBudW1iZXJU
b1N0cmluZ1Vuc2lnbmVkPFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CisgICAgcmV0dXJu
IG51bWJlclRvU3RyaW5nVW5zaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0aGlzKTsKIH0K
IAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIobG9uZyBudW1iZXIpCitTdHJpbmdC
dWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcihsb25nIG51bWJl
cikKIHsKLSAgICBudW1iZXJUb1N0cmluZ1NpZ25lZDxTdHJpbmdCdWlsZGVyPihudW1iZXIsIHRo
aXMpOworICAgIHJldHVybiBudW1iZXJUb1N0cmluZ1NpZ25lZDxTdHJpbmdCdWlsZGVyPihudW1i
ZXIsIHRoaXMpOwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcih1bnNpZ25l
ZCBsb25nIG51bWJlcikKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6
YXBwZW5kTnVtYmVyKHVuc2lnbmVkIGxvbmcgbnVtYmVyKQogewotICAgIG51bWJlclRvU3RyaW5n
VW5zaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0aGlzKTsKKyAgICByZXR1cm4gbnVtYmVy
VG9TdHJpbmdVbnNpZ25lZDxTdHJpbmdCdWlsZGVyPihudW1iZXIsIHRoaXMpOwogfQogCi12b2lk
IFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcihsb25nIGxvbmcgbnVtYmVyKQorU3RyaW5nQnVp
bGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIobG9uZyBsb25nIG51
bWJlcikKIHsKLSAgICBudW1iZXJUb1N0cmluZ1NpZ25lZDxTdHJpbmdCdWlsZGVyPihudW1iZXIs
IHRoaXMpOworICAgIHJldHVybiBudW1iZXJUb1N0cmluZ1NpZ25lZDxTdHJpbmdCdWlsZGVyPihu
dW1iZXIsIHRoaXMpOwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcih1bnNp
Z25lZCBsb25nIGxvbmcgbnVtYmVyKQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdC
dWlsZGVyOjphcHBlbmROdW1iZXIodW5zaWduZWQgbG9uZyBsb25nIG51bWJlcikKIHsKLSAgICBu
dW1iZXJUb1N0cmluZ1Vuc2lnbmVkPFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CisgICAg
cmV0dXJuIG51bWJlclRvU3RyaW5nVW5zaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0aGlz
KTsKIH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIoZG91YmxlIG51bWJlciwg
dW5zaWduZWQgcHJlY2lzaW9uLCBUcmFpbGluZ1plcm9zVHJ1bmNhdGluZ1BvbGljeSB0cmFpbGlu
Z1plcm9zVHJ1bmNhdGluZ1BvbGljeSkKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5n
QnVpbGRlcjo6YXBwZW5kTnVtYmVyKGRvdWJsZSBudW1iZXIsIHVuc2lnbmVkIHByZWNpc2lvbiwg
VHJhaWxpbmdaZXJvc1RydW5jYXRpbmdQb2xpY3kgdHJhaWxpbmdaZXJvc1RydW5jYXRpbmdQb2xp
Y3kpCiB7CiAgICAgTnVtYmVyVG9TdHJpbmdCdWZmZXIgYnVmZmVyOwotICAgIGFwcGVuZChudW1i
ZXJUb0ZpeGVkUHJlY2lzaW9uU3RyaW5nKG51bWJlciwgcHJlY2lzaW9uLCBidWZmZXIsIHRyYWls
aW5nWmVyb3NUcnVuY2F0aW5nUG9saWN5ID09IFRydW5jYXRlVHJhaWxpbmdaZXJvcykpOworICAg
IHJldHVybiBhcHBlbmQobnVtYmVyVG9GaXhlZFByZWNpc2lvblN0cmluZyhudW1iZXIsIHByZWNp
c2lvbiwgYnVmZmVyLCB0cmFpbGluZ1plcm9zVHJ1bmNhdGluZ1BvbGljeSA9PSBUcnVuY2F0ZVRy
YWlsaW5nWmVyb3MpKTsKIH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmRFQ01BU2NyaXB0
TnVtYmVyKGRvdWJsZSBudW1iZXIpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1
aWxkZXI6OmFwcGVuZEVDTUFTY3JpcHROdW1iZXIoZG91YmxlIG51bWJlcikKIHsKICAgICBOdW1i
ZXJUb1N0cmluZ0J1ZmZlciBidWZmZXI7Ci0gICAgYXBwZW5kKG51bWJlclRvU3RyaW5nKG51bWJl
ciwgYnVmZmVyKSk7CisgICAgcmV0dXJuIGFwcGVuZChudW1iZXJUb1N0cmluZyhudW1iZXIsIGJ1
ZmZlcikpOwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVuZEZpeGVkV2lkdGhOdW1iZXIo
ZG91YmxlIG51bWJlciwgdW5zaWduZWQgZGVjaW1hbFBsYWNlcykKK1N0cmluZ0J1aWxkZXI6OkZh
bGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6YXBwZW5kRml4ZWRXaWR0aE51bWJlcihkb3VibGUgbnVt
YmVyLCB1bnNpZ25lZCBkZWNpbWFsUGxhY2VzKQogewogICAgIE51bWJlclRvU3RyaW5nQnVmZmVy
IGJ1ZmZlcjsKLSAgICBhcHBlbmQobnVtYmVyVG9GaXhlZFdpZHRoU3RyaW5nKG51bWJlciwgZGVj
aW1hbFBsYWNlcywgYnVmZmVyKSk7CisgICAgcmV0dXJuIGFwcGVuZChudW1iZXJUb0ZpeGVkV2lk
dGhTdHJpbmcobnVtYmVyLCBkZWNpbWFsUGxhY2VzLCBidWZmZXIpKTsKIH0KIAogYm9vbCBTdHJp
bmdCdWlsZGVyOjpjYW5TaHJpbmsoKSBjb25zdApAQCAtMzc0LDE1ICs0NTEsMjEgQEAgYm9vbCBT
dHJpbmdCdWlsZGVyOjpjYW5TaHJpbmsoKSBjb25zdAogICAgIHJldHVybiBtX2J1ZmZlciAmJiBt
X2J1ZmZlci0+bGVuZ3RoKCkgPiAobV9sZW5ndGggKyAobV9sZW5ndGggPj4gMikpOwogfQogCi12
b2lkIFN0cmluZ0J1aWxkZXI6OnNocmlua1RvRml0KCkKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxl
PD4gU3RyaW5nQnVpbGRlcjo6c2hyaW5rVG9GaXQoKQogewogICAgIGlmIChjYW5TaHJpbmsoKSkg
ewotICAgICAgICBpZiAobV9pczhCaXQpCi0gICAgICAgICAgICByZWFsbG9jYXRlQnVmZmVyPExD
aGFyPihtX2xlbmd0aCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlYWxsb2NhdGVCdWZm
ZXI8VUNoYXI+KG1fbGVuZ3RoKTsKKyAgICAgICAgaWYgKG1faXM4Qml0KSB7CisgICAgICAgICAg
ICBhdXRvIHJlYWxsb2NhdGVkID0gcmVhbGxvY2F0ZUJ1ZmZlcjxMQ2hhcj4obV9sZW5ndGgpOwor
ICAgICAgICAgICAgaWYgKCFyZWFsbG9jYXRlZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVh
bGxvY2F0ZWQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhdXRvIHJlYWxsb2NhdGVk
ID0gcmVhbGxvY2F0ZUJ1ZmZlcjxVQ2hhcj4obV9sZW5ndGgpOworICAgICAgICAgICAgaWYgKCFy
ZWFsbG9jYXRlZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVhbGxvY2F0ZWQ7CisgICAgICAg
IH0KICAgICAgICAgbV9zdHJpbmcgPSBXVEZNb3ZlKG1fYnVmZmVyKTsKICAgICB9CisgICAgcmV0
dXJuIHsgfTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oCmluZGV4IDhlNGM3MjAuLjJjMGRkY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwLCAy
MDEyLTIwMTMsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA5LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CkBAIC0yNyw2ICsyNyw3IEBACiAjaWZuZGVmIFN0cmluZ0J1aWxkZXJfaAogI2Rl
ZmluZSBTdHJpbmdCdWlsZGVyX2gKIAorI2luY2x1ZGUgPHd0Zi9FeHBlY3RlZC5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0ludGVnZXJU
b1N0cmluZ0NvbnZlcnNpb24uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CkBA
IC00MCwyOCArNDEsMzMgQEAgY2xhc3MgU3RyaW5nQnVpbGRlciB7CiAKIHB1YmxpYzoKICAgICBT
dHJpbmdCdWlsZGVyKCkKLSAgICAgICAgOiBtX2xlbmd0aCgwKQotICAgICAgICAsIG1faXM4Qml0
KHRydWUpCi0gICAgICAgICwgbV9idWZmZXJDaGFyYWN0ZXJzOChudWxscHRyKQorICAgICAgICA6
IG1fYnVmZmVyQ2hhcmFjdGVyczgobnVsbHB0cikKICAgICB7CiAgICAgfQogICAgIFN0cmluZ0J1
aWxkZXIoU3RyaW5nQnVpbGRlciYmKSA9IGRlZmF1bHQ7CiAgICAgU3RyaW5nQnVpbGRlciYgb3Bl
cmF0b3I9KFN0cmluZ0J1aWxkZXImJikgPSBkZWZhdWx0OwogCi0gICAgV1RGX0VYUE9SVF9QUklW
QVRFIHZvaWQgYXBwZW5kKGNvbnN0IFVDaGFyKiwgdW5zaWduZWQpOwotICAgIFdURl9FWFBPUlRf
UFJJVkFURSB2b2lkIGFwcGVuZChjb25zdCBMQ2hhciosIHVuc2lnbmVkKTsKKyAgICBlbnVtIGNs
YXNzIEZhaWx1cmUgeworICAgICAgICBXb3VsZE92ZXJmbG93LAorICAgICAgICBPdXRPZk1lbW9y
eSwKKyAgICAgICAgVW5oYW5kbGVkRmFpbHVyZSwKKyAgICB9OworICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEV4cGVjdCA9IHZvaWQ+IHVzaW5nIEZhbGxpYmxlID0gRXhwZWN0ZWQ8RXhwZWN0LCBTdHJp
bmdCdWlsZGVyOjpGYWlsdXJlPjsKKworICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+
IGFwcGVuZChjb25zdCBVQ2hhciosIHVuc2lnbmVkKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUg
RmFsbGlibGU8PiBhcHBlbmQoY29uc3QgTENoYXIqLCB1bnNpZ25lZCk7CiAKLSAgICBBTFdBWVNf
SU5MSU5FIHZvaWQgYXBwZW5kKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0
aCkgeyBhcHBlbmQocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KGNoYXJhY3RlcnMpLCBs
ZW5ndGgpOyB9CisgICAgQUxXQVlTX0lOTElORSBGYWxsaWJsZTw+IGFwcGVuZChjb25zdCBjaGFy
KiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpIHsgcmV0dXJuIGFwcGVuZChyZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oY2hhcmFjdGVycyksIGxlbmd0aCk7IH0KIAotICAgIHZvaWQg
YXBwZW5kKGNvbnN0IEF0b21pY1N0cmluZyYgYXRvbWljU3RyaW5nKQorICAgIEZhbGxpYmxlPD4g
YXBwZW5kKGNvbnN0IEF0b21pY1N0cmluZyYgYXRvbWljU3RyaW5nKQogICAgIHsKLSAgICAgICAg
YXBwZW5kKGF0b21pY1N0cmluZy5zdHJpbmcoKSk7CisgICAgICAgIHJldHVybiBhcHBlbmQoYXRv
bWljU3RyaW5nLnN0cmluZygpKTsKICAgICB9CiAKLSAgICB2b2lkIGFwcGVuZChjb25zdCBTdHJp
bmcmIHN0cmluZykKKyAgICBGYWxsaWJsZTw+IGFwcGVuZChjb25zdCBTdHJpbmcmIHN0cmluZykK
ICAgICB7CiAgICAgICAgIGlmICghc3RyaW5nLmxlbmd0aCgpKQotICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgICAgICAvLyBJZiB3ZSdyZSBhcHBlbmRp
bmcgdG8gYW4gZW1wdHkgc3RyaW5nLCBhbmQgdGhlcmUgaXMgbm90IGEgYnVmZmVyIChyZXNlcnZl
Q2FwYWNpdHkgaGFzIG5vdCBiZWVuIGNhbGxlZCkKICAgICAgICAgLy8gdGhlbiBqdXN0IHJldGFp
biB0aGUgc3RyaW5nLgpAQCAtNjksMTUxICs3NSwxNjQgQEAgcHVibGljOgogICAgICAgICAgICAg
bV9zdHJpbmcgPSBzdHJpbmc7CiAgICAgICAgICAgICBtX2xlbmd0aCA9IHN0cmluZy5sZW5ndGgo
KTsKICAgICAgICAgICAgIG1faXM4Qml0ID0gbV9zdHJpbmcuaXM4Qml0KCk7Ci0gICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAKICAgICAgICAg
aWYgKHN0cmluZy5pczhCaXQoKSkKLSAgICAgICAgICAgIGFwcGVuZChzdHJpbmcuY2hhcmFjdGVy
czgoKSwgc3RyaW5nLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIHJldHVybiBhcHBlbmQoc3RyaW5n
LmNoYXJhY3RlcnM4KCksIHN0cmluZy5sZW5ndGgoKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIGFwcGVuZChzdHJpbmcuY2hhcmFjdGVyczE2KCksIHN0cmluZy5sZW5ndGgoKSk7CisgICAg
ICAgICAgICByZXR1cm4gYXBwZW5kKHN0cmluZy5jaGFyYWN0ZXJzMTYoKSwgc3RyaW5nLmxlbmd0
aCgpKTsKICAgICB9CiAKLSAgICB2b2lkIGFwcGVuZChjb25zdCBTdHJpbmdCdWlsZGVyJiBvdGhl
cikKKyAgICBGYWxsaWJsZTw+IGFwcGVuZChjb25zdCBTdHJpbmdCdWlsZGVyJiBvdGhlcikKICAg
ICB7CisgICAgICAgIGlmIChvdGhlci5mYWlsZWQoKSkKKyAgICAgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZChGYWlsdXJlOjpVbmhhbmRsZWRGYWlsdXJlKTsgICAgICAgICAgICAKICAgICAg
ICAgaWYgKCFvdGhlci5tX2xlbmd0aCkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IHJldHVybiB7IH07CiAKICAgICAgICAgLy8gSWYgd2UncmUgYXBwZW5kaW5nIHRvIGFuIGVtcHR5
IHN0cmluZywgYW5kIHRoZXJlIGlzIG5vdCBhIGJ1ZmZlciAocmVzZXJ2ZUNhcGFjaXR5IGhhcyBu
b3QgYmVlbiBjYWxsZWQpCiAgICAgICAgIC8vIHRoZW4ganVzdCByZXRhaW4gdGhlIHN0cmluZy4K
ICAgICAgICAgaWYgKCFtX2xlbmd0aCAmJiAhbV9idWZmZXIgJiYgIW90aGVyLm1fc3RyaW5nLmlz
TnVsbCgpKSB7CiAgICAgICAgICAgICBtX3N0cmluZyA9IG90aGVyLm1fc3RyaW5nOwogICAgICAg
ICAgICAgbV9sZW5ndGggPSBvdGhlci5tX2xlbmd0aDsKLSAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KIAogICAgICAgICBpZiAob3RoZXIuaXM4
Qml0KCkpCi0gICAgICAgICAgICBhcHBlbmQob3RoZXIuY2hhcmFjdGVyczgoKSwgb3RoZXIubV9s
ZW5ndGgpOworICAgICAgICAgICAgcmV0dXJuIGFwcGVuZCgqb3RoZXIuY2hhcmFjdGVyczgoKSwg
b3RoZXIubV9sZW5ndGgpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBhcHBlbmQob3RoZXIu
Y2hhcmFjdGVyczE2KCksIG90aGVyLm1fbGVuZ3RoKTsKKyAgICAgICAgICAgIHJldHVybiBhcHBl
bmQoKm90aGVyLmNoYXJhY3RlcnMxNigpLCBvdGhlci5tX2xlbmd0aCk7CiAgICAgfQogCi0gICAg
dm9pZCBhcHBlbmQoU3RyaW5nVmlldyBzdHJpbmdWaWV3KQorICAgIEZhbGxpYmxlPD4gYXBwZW5k
KFN0cmluZ1ZpZXcgc3RyaW5nVmlldykKICAgICB7CiAgICAgICAgIGlmIChzdHJpbmdWaWV3Lmlz
OEJpdCgpKQotICAgICAgICAgICAgYXBwZW5kKHN0cmluZ1ZpZXcuY2hhcmFjdGVyczgoKSwgc3Ry
aW5nVmlldy5sZW5ndGgoKSk7CisgICAgICAgICAgICByZXR1cm4gYXBwZW5kKHN0cmluZ1ZpZXcu
Y2hhcmFjdGVyczgoKSwgc3RyaW5nVmlldy5sZW5ndGgoKSk7CiAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIGFwcGVuZChzdHJpbmdWaWV3LmNoYXJhY3RlcnMxNigpLCBzdHJpbmdWaWV3Lmxlbmd0
aCgpKTsKKyAgICAgICAgICAgIHJldHVybiBhcHBlbmQoc3RyaW5nVmlldy5jaGFyYWN0ZXJzMTYo
KSwgc3RyaW5nVmlldy5sZW5ndGgoKSk7CiAgICAgfQogCiAjaWYgVVNFKENGKQotICAgIFdURl9F
WFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZChDRlN0cmluZ1JlZik7CisgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIEZhbGxpYmxlPD4gYXBwZW5kKENGU3RyaW5nUmVmKTsKICNlbmRpZgogI2lmIFVTRShD
RikgJiYgZGVmaW5lZChfX09CSkNfXykKLSAgICB2b2lkIGFwcGVuZChOU1N0cmluZyAqc3RyaW5n
KSB7IGFwcGVuZCgoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpc3RyaW5nKTsgfQorICAgIEZhbGxpYmxl
PD4gYXBwZW5kKE5TU3RyaW5nICpzdHJpbmcpIHsgcmV0dXJuIGFwcGVuZCgoX19icmlkZ2UgQ0ZT
dHJpbmdSZWYpc3RyaW5nKTsgfQogI2VuZGlmCiAgICAgCi0gICAgdm9pZCBhcHBlbmQoY29uc3Qg
U3RyaW5nJiBzdHJpbmcsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQorICAgIEZh
bGxpYmxlPD4gYXBwZW5kKGNvbnN0IFN0cmluZyYgc3RyaW5nLCB1bnNpZ25lZCBvZmZzZXQsIHVu
c2lnbmVkIGxlbmd0aCkKICAgICB7CiAgICAgICAgIGlmICghc3RyaW5nLmxlbmd0aCgpKQotICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgICAgICBpZiAo
KG9mZnNldCArIGxlbmd0aCkgPiBzdHJpbmcubGVuZ3RoKCkpCi0gICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICByZXR1cm4geyB9OwogCiAgICAgICAgIGlmIChzdHJpbmcuaXM4Qml0KCkp
Ci0gICAgICAgICAgICBhcHBlbmQoc3RyaW5nLmNoYXJhY3RlcnM4KCkgKyBvZmZzZXQsIGxlbmd0
aCk7CisgICAgICAgICAgICByZXR1cm4gYXBwZW5kKHN0cmluZy5jaGFyYWN0ZXJzOCgpICsgb2Zm
c2V0LCBsZW5ndGgpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBhcHBlbmQoc3RyaW5nLmNo
YXJhY3RlcnMxNigpICsgb2Zmc2V0LCBsZW5ndGgpOworICAgICAgICAgICAgcmV0dXJuIGFwcGVu
ZChzdHJpbmcuY2hhcmFjdGVyczE2KCkgKyBvZmZzZXQsIGxlbmd0aCk7CiAgICAgfQogCi0gICAg
dm9pZCBhcHBlbmQoY29uc3QgY2hhciogY2hhcmFjdGVycykKKyAgICBGYWxsaWJsZTw+IGFwcGVu
ZChjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKQogICAgIHsKICAgICAgICAgaWYgKGNoYXJhY3RlcnMp
Ci0gICAgICAgICAgICBhcHBlbmQoY2hhcmFjdGVycywgc3RybGVuKGNoYXJhY3RlcnMpKTsKKyAg
ICAgICAgICAgIHJldHVybiBhcHBlbmQoY2hhcmFjdGVycywgc3RybGVuKGNoYXJhY3RlcnMpKTsK
KyAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKLSAgICB2b2lkIGFwcGVuZChVQ2hhciBjKQor
ICAgIEZhbGxpYmxlPD4gYXBwZW5kKFVDaGFyIGMpCiAgICAgewogICAgICAgICBpZiAobV9idWZm
ZXIgJiYgbV9sZW5ndGggPCBtX2J1ZmZlci0+bGVuZ3RoKCkgJiYgbV9zdHJpbmcuaXNOdWxsKCkp
IHsKICAgICAgICAgICAgIGlmICghbV9pczhCaXQpIHsKICAgICAgICAgICAgICAgICBtX2J1ZmZl
ckNoYXJhY3RlcnMxNlttX2xlbmd0aCsrXSA9IGM7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAg
IGlmICghKGMgJiB+MHhmZikpIHsKICAgICAgICAgICAgICAgICBtX2J1ZmZlckNoYXJhY3RlcnM4
W21fbGVuZ3RoKytdID0gc3RhdGljX2Nhc3Q8TENoYXI+KGMpOwotICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICAgICAgfQogICAgICAg
ICB9Ci0gICAgICAgIGFwcGVuZCgmYywgMSk7CisgICAgICAgIHJldHVybiBhcHBlbmQoJmMsIDEp
OwogICAgIH0KIAotICAgIHZvaWQgYXBwZW5kKExDaGFyIGMpCisgICAgRmFsbGlibGU8PiBhcHBl
bmQoTENoYXIgYykKICAgICB7CiAgICAgICAgIGlmIChtX2J1ZmZlciAmJiBtX2xlbmd0aCA8IG1f
YnVmZmVyLT5sZW5ndGgoKSAmJiBtX3N0cmluZy5pc051bGwoKSkgewogICAgICAgICAgICAgaWYg
KG1faXM4Qml0KQogICAgICAgICAgICAgICAgIG1fYnVmZmVyQ2hhcmFjdGVyczhbbV9sZW5ndGgr
K10gPSBjOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG1fYnVmZmVyQ2hhcmFj
dGVyczE2W21fbGVuZ3RoKytdID0gYzsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBhcHBl
bmQoJmMsIDEpOworICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gYXBwZW5kKCZjLCAxKTsKICAgICB9CiAKLSAgICB2b2lkIGFwcGVuZChjaGFyIGMpCisg
ICAgRmFsbGlibGU8PiBhcHBlbmQoY2hhciBjKQogICAgIHsKLSAgICAgICAgYXBwZW5kKHN0YXRp
Y19jYXN0PExDaGFyPihjKSk7CisgICAgICAgIHJldHVybiBhcHBlbmQoc3RhdGljX2Nhc3Q8TENo
YXI+KGMpKTsKICAgICB9CiAKLSAgICB2b2lkIGFwcGVuZChVQ2hhcjMyIGMpCisgICAgRmFsbGli
bGU8PiBhcHBlbmQoVUNoYXIzMiBjKQogICAgIHsKLSAgICAgICAgaWYgKFVfSVNfQk1QKGMpKSB7
Ci0gICAgICAgICAgICBhcHBlbmQoc3RhdGljX2Nhc3Q8VUNoYXI+KGMpKTsKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBhcHBlbmQoVTE2X0xFQUQoYykpOwotICAgICAg
ICBhcHBlbmQoVTE2X1RSQUlMKGMpKTsKKyAgICAgICAgaWYgKFVfSVNfQk1QKGMpKQorICAgICAg
ICAgICAgcmV0dXJuIGFwcGVuZChzdGF0aWNfY2FzdDxVQ2hhcj4oYykpOworICAgICAgICBhdXRv
IGFwcGVuZGVkID0gYXBwZW5kKFUxNl9MRUFEKGMpKTsKKyAgICAgICAgaWYgKCFhcHBlbmRlZCkK
KyAgICAgICAgICAgIHJldHVybiBhcHBlbmRlZDsKKyAgICAgICAgcmV0dXJuIGFwcGVuZChVMTZf
VFJBSUwoYykpOwogICAgIH0KIAotICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGFwcGVuZFF1
b3RlZEpTT05TdHJpbmcoY29uc3QgU3RyaW5nJik7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZh
bGxpYmxlPD4gYXBwZW5kUXVvdGVkSlNPTlN0cmluZyhjb25zdCBTdHJpbmcmKTsKIAogICAgIHRl
bXBsYXRlPHVuc2lnbmVkIGNoYXJhY3RlckNvdW50PgotICAgIEFMV0FZU19JTkxJTkUgdm9pZCBh
cHBlbmRMaXRlcmFsKGNvbnN0IGNoYXIgKCZjaGFyYWN0ZXJzKVtjaGFyYWN0ZXJDb3VudF0pIHsg
YXBwZW5kKGNoYXJhY3RlcnMsIGNoYXJhY3RlckNvdW50IC0gMSk7IH0KLQotICAgIFdURl9FWFBP
UlRfUFJJVkFURSB2b2lkIGFwcGVuZE51bWJlcihpbnQpOwotICAgIFdURl9FWFBPUlRfUFJJVkFU
RSB2b2lkIGFwcGVuZE51bWJlcih1bnNpZ25lZCBpbnQpOwotICAgIFdURl9FWFBPUlRfUFJJVkFU
RSB2b2lkIGFwcGVuZE51bWJlcihsb25nKTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBh
cHBlbmROdW1iZXIodW5zaWduZWQgbG9uZyk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQg
YXBwZW5kTnVtYmVyKGxvbmcgbG9uZyk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBw
ZW5kTnVtYmVyKHVuc2lnbmVkIGxvbmcgbG9uZyk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZv
aWQgYXBwZW5kTnVtYmVyKGRvdWJsZSwgdW5zaWduZWQgcHJlY2lzaW9uID0gNiwgVHJhaWxpbmda
ZXJvc1RydW5jYXRpbmdQb2xpY3kgPSBUcnVuY2F0ZVRyYWlsaW5nWmVyb3MpOwotICAgIFdURl9F
WFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZEVDTUFTY3JpcHROdW1iZXIoZG91YmxlKTsKLSAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmRGaXhlZFdpZHRoTnVtYmVyKGRvdWJsZSwgdW5z
aWduZWQgZGVjaW1hbFBsYWNlcyk7Ci0KLSAgICBTdHJpbmcgdG9TdHJpbmcoKQorICAgIEFMV0FZ
U19JTkxJTkUgRmFsbGlibGU8PiBhcHBlbmRMaXRlcmFsKGNvbnN0IGNoYXIgKCZjaGFyYWN0ZXJz
KVtjaGFyYWN0ZXJDb3VudF0pIHsgcmV0dXJuIGFwcGVuZChjaGFyYWN0ZXJzLCBjaGFyYWN0ZXJD
b3VudCAtIDEpOyB9CisKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmRO
dW1iZXIoaW50KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmROdW1i
ZXIodW5zaWduZWQgaW50KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiBhcHBl
bmROdW1iZXIobG9uZyk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5k
TnVtYmVyKHVuc2lnbmVkIGxvbmcpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+
IGFwcGVuZE51bWJlcihsb25nIGxvbmcpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJs
ZTw+IGFwcGVuZE51bWJlcih1bnNpZ25lZCBsb25nIGxvbmcpOworICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBGYWxsaWJsZTw+IGFwcGVuZE51bWJlcihkb3VibGUsIHVuc2lnbmVkIHByZWNpc2lvbiA9
IDYsIFRyYWlsaW5nWmVyb3NUcnVuY2F0aW5nUG9saWN5ID0gVHJ1bmNhdGVUcmFpbGluZ1plcm9z
KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmRFQ01BU2NyaXB0TnVt
YmVyKGRvdWJsZSk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5kRml4
ZWRXaWR0aE51bWJlcihkb3VibGUsIHVuc2lnbmVkIGRlY2ltYWxQbGFjZXMpOworCisgICAgV0FS
Tl9VTlVTRURfUkVUVVJOIEZhbGxpYmxlPFN0cmluZz4gdG9TdHJpbmcoKQogICAgIHsKLSAgICAg
ICAgc2hyaW5rVG9GaXQoKTsKLSAgICAgICAgaWYgKG1fc3RyaW5nLmlzTnVsbCgpKQotICAgICAg
ICAgICAgcmVpZnlTdHJpbmcoKTsKLSAgICAgICAgcmV0dXJuIG1fc3RyaW5nOworICAgICAgICBp
ZiAobV9mYWlsZWQpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmFpbHVyZTo6
VW5oYW5kbGVkRmFpbHVyZSk7CisgICAgICAgIGlmIChhdXRvIHNocmFuayA9IHNocmlua1RvRml0
KCkpIHsKKyAgICAgICAgICAgIGlmIChtX3N0cmluZy5pc051bGwoKSkKKyAgICAgICAgICAgICAg
ICByZWlmeVN0cmluZygpOworICAgICAgICAgICAgcmV0dXJuIG1fc3RyaW5nOworICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChzaHJhbmsuZXJyb3IoKSk7
CiAgICAgfQogCi0gICAgY29uc3QgU3RyaW5nJiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBj
b25zdAorICAgIFdBUk5fVU5VU0VEX1JFVFVSTiBGYWxsaWJsZTxTdHJpbmc+IHRvU3RyaW5nUHJl
c2VydmVDYXBhY2l0eSgpIGNvbnN0CiAgICAgeworICAgICAgICBpZiAobV9mYWlsZWQpCisgICAg
ICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmFpbHVyZTo6VW5oYW5kbGVkRmFpbHVyZSk7
CiAgICAgICAgIGlmIChtX3N0cmluZy5pc051bGwoKSkKICAgICAgICAgICAgIHJlaWZ5U3RyaW5n
KCk7CiAgICAgICAgIHJldHVybiBtX3N0cmluZzsKICAgICB9CiAKLSAgICBBdG9taWNTdHJpbmcg
dG9BdG9taWNTdHJpbmcoKSBjb25zdAorICAgIFdBUk5fVU5VU0VEX1JFVFVSTiBGYWxsaWJsZTxB
dG9taWNTdHJpbmc+IHRvQXRvbWljU3RyaW5nKCkgY29uc3QKICAgICB7CisgICAgICAgIGlmICht
X2ZhaWxlZCkKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGYWlsdXJlOjpVbmhh
bmRsZWRGYWlsdXJlKTsKKwogICAgICAgICBpZiAoIW1fbGVuZ3RoKQogICAgICAgICAgICAgcmV0
dXJuIGVtcHR5QXRvbSgpOwogCiAgICAgICAgIC8vIElmIHRoZSBidWZmZXIgaXMgc3VmZmljaWVu
dGx5IG92ZXItYWxsb2NhdGVkLCBtYWtlIGEgbmV3IEF0b21pY1N0cmluZyBmcm9tIGEgY29weSBz
byBpdHMgYnVmZmVyIGlzIG5vdCBzbyBsYXJnZS4KICAgICAgICAgaWYgKGNhblNocmluaygpKSB7
CiAgICAgICAgICAgICBpZiAoaXM4Qml0KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEF0b21p
Y1N0cmluZyhjaGFyYWN0ZXJzOCgpLCBsZW5ndGgoKSk7Ci0gICAgICAgICAgICByZXR1cm4gQXRv
bWljU3RyaW5nKGNoYXJhY3RlcnMxNigpLCBsZW5ndGgoKSk7ICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgcmV0dXJuIEF0b21pY1N0cmluZygqY2hhcmFjdGVyczgoKSwgbGVuZ3RoKCkpOwor
ICAgICAgICAgICAgcmV0dXJuIEF0b21pY1N0cmluZygqY2hhcmFjdGVyczE2KCksIGxlbmd0aCgp
KTsgICAgICAgICAgICAKICAgICAgICAgfQogCiAgICAgICAgIGlmICghbV9zdHJpbmcuaXNOdWxs
KCkpCkBAIC0yMzAsMjkgKzI0OSwzNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzRW1wdHkoKSBj
b25zdCB7IHJldHVybiAhbV9sZW5ndGg7IH0KIAotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lk
IHJlc2VydmVDYXBhY2l0eSh1bnNpZ25lZCBuZXdDYXBhY2l0eSk7CisgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIEZhbGxpYmxlPD4gcmVzZXJ2ZUNhcGFjaXR5KHVuc2lnbmVkIG5ld0NhcGFjaXR5KTsK
IAogICAgIHVuc2lnbmVkIGNhcGFjaXR5KCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBt
X2J1ZmZlciA/IG1fYnVmZmVyLT5sZW5ndGgoKSA6IG1fbGVuZ3RoOwogICAgIH0KIAotICAgIFdU
Rl9FWFBPUlRfUFJJVkFURSB2b2lkIHJlc2l6ZSh1bnNpZ25lZCBuZXdTaXplKTsKKyAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiByZXNpemUodW5zaWduZWQgbmV3U2l6ZSk7CiAKICAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBjYW5TaHJpbmsoKSBjb25zdDsKIAotICAgIFdURl9F
WFBPUlRfUFJJVkFURSB2b2lkIHNocmlua1RvRml0KCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRF
IEZhbGxpYmxlPD4gc2hyaW5rVG9GaXQoKTsKIAotICAgIFVDaGFyIG9wZXJhdG9yW10odW5zaWdu
ZWQgaSkgY29uc3QKKyAgICBib29sIGlzOEJpdCgpIGNvbnN0IHsgcmV0dXJuIG1faXM4Qml0OyB9
CisKKyAgICBib29sIGZhaWxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZmFpbGVkOyB9CisKKyAgICBG
YWxsaWJsZTxVQ2hhcj4gb3BlcmF0b3JbXSh1bnNpZ25lZCBpKSBjb25zdAogICAgIHsKKyAgICAg
ICAgaWYgKG1fZmFpbGVkKQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZhaWx1
cmU6OlVuaGFuZGxlZEZhaWx1cmUpOwogICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBM
SUNBVElPTihpIDwgbV9sZW5ndGgpOwogICAgICAgICBpZiAobV9pczhCaXQpCi0gICAgICAgICAg
ICByZXR1cm4gY2hhcmFjdGVyczgoKVtpXTsKLSAgICAgICAgcmV0dXJuIGNoYXJhY3RlcnMxNigp
W2ldOworICAgICAgICAgICAgcmV0dXJuICgqY2hhcmFjdGVyczgoKSlbaV07CisgICAgICAgIHJl
dHVybiAoKmNoYXJhY3RlcnMxNigpKVtpXTsKICAgICB9CiAKLSAgICBjb25zdCBMQ2hhciogY2hh
cmFjdGVyczgoKSBjb25zdAorICAgIEZhbGxpYmxlPGNvbnN0IExDaGFyKj4gY2hhcmFjdGVyczgo
KSBjb25zdAogICAgIHsKKyAgICAgICAgaWYgKG1fZmFpbGVkKQorICAgICAgICAgICAgcmV0dXJu
IG1ha2VVbmV4cGVjdGVkKEZhaWx1cmU6OlVuaGFuZGxlZEZhaWx1cmUpOwogICAgICAgICBBU1NF
UlQobV9pczhCaXQpOwogICAgICAgICBpZiAoIW1fbGVuZ3RoKQogICAgICAgICAgICAgcmV0dXJu
IDA7CkBAIC0yNjIsOCArMjg5LDEwIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fYnVmZmVy
LT5jaGFyYWN0ZXJzOCgpOwogICAgIH0KIAotICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzMTYo
KSBjb25zdAorICAgIEZhbGxpYmxlPGNvbnN0IFVDaGFyKj4gY2hhcmFjdGVyczE2KCkgY29uc3QK
ICAgICB7CisgICAgICAgIGlmIChtX2ZhaWxlZCkKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5l
eHBlY3RlZChGYWlsdXJlOjpVbmhhbmRsZWRGYWlsdXJlKTsKICAgICAgICAgQVNTRVJUKCFtX2lz
OEJpdCk7CiAgICAgICAgIGlmICghbV9sZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4gMDsKQEAg
LTI3MiwxNiArMzAxLDE1IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKG1fYnVmZmVyKTsKICAg
ICAgICAgcmV0dXJuIG1fYnVmZmVyLT5jaGFyYWN0ZXJzMTYoKTsKICAgICB9Ci0gICAgCi0gICAg
Ym9vbCBpczhCaXQoKSBjb25zdCB7IHJldHVybiBtX2lzOEJpdDsgfQogCiAgICAgdm9pZCBjbGVh
cigpCiAgICAgewogICAgICAgICBtX2xlbmd0aCA9IDA7CiAgICAgICAgIG1fc3RyaW5nID0gU3Ry
aW5nKCk7CiAgICAgICAgIG1fYnVmZmVyID0gbnVsbHB0cjsKLSAgICAgICAgbV9idWZmZXJDaGFy
YWN0ZXJzOCA9IDA7CiAgICAgICAgIG1faXM4Qml0ID0gdHJ1ZTsKKyAgICAgICAgbV9mYWlsZWQg
PSBmYWxzZTsKKyAgICAgICAgbV9idWZmZXJDaGFyYWN0ZXJzOCA9IDA7CiAgICAgfQogCiAgICAg
dm9pZCBzd2FwKFN0cmluZ0J1aWxkZXImIHN0cmluZ0J1aWxkZXIpCkBAIC0yOTAsMjggKzMxOCwz
MiBAQCBwdWJsaWM6CiAgICAgICAgIG1fc3RyaW5nLnN3YXAoc3RyaW5nQnVpbGRlci5tX3N0cmlu
Zyk7CiAgICAgICAgIG1fYnVmZmVyLnN3YXAoc3RyaW5nQnVpbGRlci5tX2J1ZmZlcik7CiAgICAg
ICAgIHN0ZDo6c3dhcChtX2lzOEJpdCwgc3RyaW5nQnVpbGRlci5tX2lzOEJpdCk7CisgICAgICAg
IHN0ZDo6c3dhcChtX2ZhaWxlZCwgc3RyaW5nQnVpbGRlci5tX2ZhaWxlZCk7CiAgICAgICAgIHN0
ZDo6c3dhcChtX2J1ZmZlckNoYXJhY3RlcnM4LCBzdHJpbmdCdWlsZGVyLm1fYnVmZmVyQ2hhcmFj
dGVyczgpOwogICAgICAgICBBU1NFUlQoIW1fYnVmZmVyIHx8IG1fYnVmZmVyLT5sZW5ndGgoKSA+
PSBtX2xlbmd0aCk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIHZvaWQgYWxsb2NhdGVCdWZmZXIo
Y29uc3QgTENoYXIqIGN1cnJlbnRDaGFyYWN0ZXJzLCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCk7
Ci0gICAgdm9pZCBhbGxvY2F0ZUJ1ZmZlcihjb25zdCBVQ2hhciogY3VycmVudENoYXJhY3RlcnMs
IHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKTsKLSAgICB2b2lkIGFsbG9jYXRlQnVmZmVyVXBDb252
ZXJ0KGNvbnN0IExDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVxdWlyZWRMZW5n
dGgpOworICAgIEZhbGxpYmxlPD4gYWxsb2NhdGVCdWZmZXIoY29uc3QgTENoYXIqIGN1cnJlbnRD
aGFyYWN0ZXJzLCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCk7CisgICAgRmFsbGlibGU8PiBhbGxv
Y2F0ZUJ1ZmZlcihjb25zdCBVQ2hhciogY3VycmVudENoYXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVp
cmVkTGVuZ3RoKTsKKyAgICBGYWxsaWJsZTw+IGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KGNvbnN0
IExDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpOwogICAg
IHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KLSAgICB2b2lkIHJlYWxsb2NhdGVCdWZmZXIo
dW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpOworICAgIEZhbGxpYmxlPD4gcmVhbGxvY2F0ZUJ1ZmZl
cih1bnNpZ25lZCByZXF1aXJlZExlbmd0aCk7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJU
eXBlPgotICAgIEFMV0FZU19JTkxJTkUgQ2hhclR5cGUqIGFwcGVuZFVuaW5pdGlhbGl6ZWQodW5z
aWduZWQgbGVuZ3RoKTsKKyAgICBBTFdBWVNfSU5MSU5FIEZhbGxpYmxlPENoYXJUeXBlKj4gYXBw
ZW5kVW5pbml0aWFsaXplZCh1bnNpZ25lZCBsZW5ndGgpOwogICAgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBDaGFyVHlwZT4KLSAgICBDaGFyVHlwZSogYXBwZW5kVW5pbml0aWFsaXplZFNsb3codW5zaWdu
ZWQgbGVuZ3RoKTsKKyAgICBGYWxsaWJsZTxDaGFyVHlwZSo+IGFwcGVuZFVuaW5pdGlhbGl6ZWRT
bG93KHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgot
ICAgIEFMV0FZU19JTkxJTkUgQ2hhclR5cGUgKiBnZXRCdWZmZXJDaGFyYWN0ZXJzKCk7CisgICAg
QUxXQVlTX0lOTElORSBDaGFyVHlwZSogZ2V0QnVmZmVyQ2hhcmFjdGVycygpOwogICAgIFdURl9F
WFBPUlRfUFJJVkFURSB2b2lkIHJlaWZ5U3RyaW5nKCkgY29uc3Q7CisgICAgV0FSTl9VTlVTRURf
UkVUVVJOIFVuZXhwZWN0ZWQ8RmFpbHVyZT4gd291bGRPdmVyZmxvdygpOworICAgIFdBUk5fVU5V
U0VEX1JFVFVSTiBVbmV4cGVjdGVkPEZhaWx1cmU+IG91dE9mTWVtb3J5KCk7CiAKLSAgICB1bnNp
Z25lZCBtX2xlbmd0aDsKKyAgICB1bnNpZ25lZCBtX2xlbmd0aCB7IDAgfTsKICAgICBtdXRhYmxl
IFN0cmluZyBtX3N0cmluZzsKICAgICBSZWZQdHI8U3RyaW5nSW1wbD4gbV9idWZmZXI7Ci0gICAg
Ym9vbCBtX2lzOEJpdDsKKyAgICBib29sIG1faXM4Qml0IHsgdHJ1ZSB9OworICAgIGJvb2wgbV9m
YWlsZWQgeyBmYWxzZSB9OwogICAgIHVuaW9uIHsKICAgICAgICAgTENoYXIqIG1fYnVmZmVyQ2hh
cmFjdGVyczg7CiAgICAgICAgIFVDaGFyKiBtX2J1ZmZlckNoYXJhY3RlcnMxNjsKQEAgLTMzMywy
MCArMzY1LDQ4IEBAIEFMV0FZU19JTkxJTkUgVUNoYXIqIFN0cmluZ0J1aWxkZXI6OmdldEJ1ZmZl
ckNoYXJhY3RlcnM8VUNoYXI+KCkKIH0gICAgCiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlw
ZT4KLWJvb2wgZXF1YWwoY29uc3QgU3RyaW5nQnVpbGRlciYgcywgY29uc3QgQ2hhclR5cGUqIGJ1
ZmZlciwgdW5zaWduZWQgbGVuZ3RoKQoraW5saW5lIGJvb2wgZXF1YWwoY29uc3QgU3RyaW5nQnVp
bGRlciYgcywgY29uc3QgQ2hhclR5cGUqIGJ1ZmZlciwgdW5zaWduZWQgbGVuZ3RoKQogeworICAg
IGlmIChzLmZhaWxlZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAocy5sZW5n
dGgoKSAhPSBsZW5ndGgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChzLmlzOEJp
dCgpKQotICAgICAgICByZXR1cm4gZXF1YWwocy5jaGFyYWN0ZXJzOCgpLCBidWZmZXIsIGxlbmd0
aCk7CisgICAgICAgIHJldHVybiBlcXVhbCgqcy5jaGFyYWN0ZXJzOCgpLCBidWZmZXIsIGxlbmd0
aCk7CiAKLSAgICByZXR1cm4gZXF1YWwocy5jaGFyYWN0ZXJzMTYoKSwgYnVmZmVyLCBsZW5ndGgp
OworICAgIHJldHVybiBlcXVhbCgqcy5jaGFyYWN0ZXJzMTYoKSwgYnVmZmVyLCBsZW5ndGgpOwor
fQorCitpbmxpbmUgYm9vbCBlcXVhbChjb25zdCBTdHJpbmdCdWlsZGVyJiBhLCBjb25zdCBTdHJp
bmdCdWlsZGVyJiBiKQoreworICAgIGlmIChhLmZhaWxlZCgpIHx8IGIuZmFpbGVkKCkpCisgICAg
ICAgIHJldHVybiBhLmZhaWxlZCgpID09IGIuZmFpbGVkKCk7CisKKyAgICBpZiAoYS5sZW5ndGgo
KSAhPSBiLmxlbmd0aCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWEubGVu
Z3RoKCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKGEuaXM4Qml0KCkpIHsKKyAg
ICAgICAgaWYgKGIuaXM4Qml0KCkpCisgICAgICAgICAgICByZXR1cm4gZXF1YWwoKmEuY2hhcmFj
dGVyczgoKSwgKmIuY2hhcmFjdGVyczgoKSwgYS5sZW5ndGgoKSk7CisgICAgICAgIHJldHVybiBl
cXVhbCgqYS5jaGFyYWN0ZXJzOCgpLCAqYi5jaGFyYWN0ZXJzMTYoKSwgYS5sZW5ndGgoKSk7Cisg
ICAgfQorCisgICAgaWYgKGIuaXM4Qml0KCkpCisgICAgICAgIHJldHVybiBlcXVhbCgqYS5jaGFy
YWN0ZXJzMTYoKSwgKmIuY2hhcmFjdGVyczgoKSwgYS5sZW5ndGgoKSk7CisgICAgcmV0dXJuIGVx
dWFsKCphLmNoYXJhY3RlcnMxNigpLCAqYi5jaGFyYWN0ZXJzMTYoKSwgYS5sZW5ndGgoKSk7CiB9
CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBTdHJpbmdUeXBlPgotYm9vbCBlcXVhbChjb25zdCBTdHJp
bmdCdWlsZGVyJiBhLCBjb25zdCBTdHJpbmdUeXBlJiBiKQoraW5saW5lIGJvb2wgZXF1YWwoY29u
c3QgU3RyaW5nQnVpbGRlciYgYSwgY29uc3QgU3RyaW5nVHlwZSYgYikKIHsKKyAgICBpZiAoYS5m
YWlsZWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKGEubGVuZ3RoKCkgIT0g
Yi5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0zNTUsMTMgKzQxNSwxMyBA
QCBib29sIGVxdWFsKGNvbnN0IFN0cmluZ0J1aWxkZXImIGEsIGNvbnN0IFN0cmluZ1R5cGUmIGIp
CiAKICAgICBpZiAoYS5pczhCaXQoKSkgewogICAgICAgICBpZiAoYi5pczhCaXQoKSkKLSAgICAg
ICAgICAgIHJldHVybiBlcXVhbChhLmNoYXJhY3RlcnM4KCksIGIuY2hhcmFjdGVyczgoKSwgYS5s
ZW5ndGgoKSk7Ci0gICAgICAgIHJldHVybiBlcXVhbChhLmNoYXJhY3RlcnM4KCksIGIuY2hhcmFj
dGVyczE2KCksIGEubGVuZ3RoKCkpOworICAgICAgICAgICAgcmV0dXJuIGVxdWFsKCphLmNoYXJh
Y3RlcnM4KCksIGIuY2hhcmFjdGVyczgoKSwgYS5sZW5ndGgoKSk7CisgICAgICAgIHJldHVybiBl
cXVhbCgqYS5jaGFyYWN0ZXJzOCgpLCBiLmNoYXJhY3RlcnMxNigpLCBhLmxlbmd0aCgpKTsKICAg
ICB9CiAKICAgICBpZiAoYi5pczhCaXQoKSkKLSAgICAgICAgcmV0dXJuIGVxdWFsKGEuY2hhcmFj
dGVyczE2KCksIGIuY2hhcmFjdGVyczgoKSwgYS5sZW5ndGgoKSk7Ci0gICAgcmV0dXJuIGVxdWFs
KGEuY2hhcmFjdGVyczE2KCksIGIuY2hhcmFjdGVyczE2KCksIGEubGVuZ3RoKCkpOworICAgICAg
ICByZXR1cm4gZXF1YWwoKmEuY2hhcmFjdGVyczE2KCksIGIuY2hhcmFjdGVyczgoKSwgYS5sZW5n
dGgoKSk7CisgICAgcmV0dXJuIGVxdWFsKCphLmNoYXJhY3RlcnMxNigpLCBiLmNoYXJhY3RlcnMx
NigpLCBhLmxlbmd0aCgpKTsKIH0KIAogaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTdHJp
bmdCdWlsZGVyJiBhLCBjb25zdCBTdHJpbmdCdWlsZGVyJiBiKSB7IHJldHVybiBlcXVhbChhLCBi
KTsgfQpAQCAtMzcyLDkgKzQzMiwxMiBAQCBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFN0
cmluZyYgYSwgY29uc3QgU3RyaW5nQnVpbGRlciYgYikgeyByZXR1cm4gZXF1YWwoYgogaW5saW5l
IGJvb2wgb3BlcmF0b3IhPShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0cmluZ0J1aWxkZXImIGIp
IHsgcmV0dXJuICFlcXVhbChiLCBhKTsgfQogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBJbnRlZ2VyVG9T
dHJpbmdDb252ZXJzaW9uVHJhaXQ8U3RyaW5nQnVpbGRlcj4gewotICAgIHVzaW5nIFJldHVyblR5
cGUgPSB2b2lkOworICAgIHVzaW5nIFJldHVyblR5cGUgPSBTdHJpbmdCdWlsZGVyOjpGYWxsaWJs
ZTw+OwogICAgIHVzaW5nIEFkZGl0aW9uYWxBcmd1bWVudFR5cGUgPSBTdHJpbmdCdWlsZGVyOwot
ICAgIHN0YXRpYyB2b2lkIGZsdXNoKExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgs
IFN0cmluZ0J1aWxkZXIqIHN0cmluZ0J1aWxkZXIpIHsgc3RyaW5nQnVpbGRlci0+YXBwZW5kKGNo
YXJhY3RlcnMsIGxlbmd0aCk7IH0KKyAgICBzdGF0aWMgUmV0dXJuVHlwZSBmbHVzaChMQ2hhciog
Y2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBTdHJpbmdCdWlsZGVyKiBzdHJpbmdCdWlsZGVy
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0cmluZ0J1aWxkZXItPmFwcGVuZChjaGFyYWN0ZXJz
LCBsZW5ndGgpOworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVySlNPTi5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L1N0cmluZ0J1aWxkZXJKU09OLmNwcAppbmRleCAyMjYyOTVlLi43MGRiYjg2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXJKU09OLmNwcAorKysgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXJKU09OLmNwcApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTMsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTcgWXVzdWtlIFN1enVraSA8dXRh
dGFuZS50ZWFAZ21haWwuY29tPi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAo
QykgMjAxNyBNb3ppbGxhIEZvdW5kYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC03NCw3
ICs3NCw3IEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIHZvaWQgYXBwZW5kUXVvdGVkSlNPTlN0cmlu
Z0ludGVybmFsKE91dHB1dENoYXJhY3RlclR5cGUqJiBvCiAgICAgfQogfQogCi1ib29sIFN0cmlu
Z0J1aWxkZXI6OmFwcGVuZFF1b3RlZEpTT05TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCitT
dHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZFF1b3RlZEpTT05T
dHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7CiAgICAgLy8gTWFrZSBzdXJlIHdlIGhhdmUg
ZW5vdWdoIGJ1ZmZlciBzcGFjZSB0byBhcHBlbmQgdGhpcyBzdHJpbmcgd2l0aG91dCBoYXZpbmcK
ICAgICAvLyB0byB3b3JyeSBhYm91dCByZWFsbG9jYXRpbmcgaW4gdGhlIG1pZGRsZS4KQEAgLTg1
LDIwICs4NSwyMSBAQCBib29sIFN0cmluZ0J1aWxkZXI6OmFwcGVuZFF1b3RlZEpTT05TdHJpbmco
Y29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgbWF4aW11bUNhcGFjaXR5UmVxdWlyZWQgKz0gMiAr
IHN0cmluZ0xlbmd0aCAqIDY7CiAgICAgdW5zaWduZWQgYWxsb2NhdGlvblNpemU7CiAgICAgaWYg
KENoZWNrZWRTdGF0ZTo6RGlkT3ZlcmZsb3cgPT0gbWF4aW11bUNhcGFjaXR5UmVxdWlyZWQuc2Fm
ZUdldChhbGxvY2F0aW9uU2l6ZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0
dXJuIHdvdWxkT3ZlcmZsb3coKTsKICAgICAvLyBUaGlzIG1heCgpIGlzIGhlcmUgdG8gYWxsb3cg
dXMgdG8gYWxsb2NhdGUgc2l6ZXMgYmV0d2VlbiB0aGUgcmFuZ2UgWzJeMzEsIDJeMzIgLSAyXSBi
ZWNhdXNlIHJvdW5kVXBUb1Bvd2VyT2ZUd28oMTw8MzEgKyBzb21lIGludCBzbWFsbGVyIHRoYW4g
MTw8MzEpID09IDAuCiAgICAgLy8gRklYTUU6IHJvdW5kVXBUb1Bvd2VyT2ZUd28gc2hvdWxkIHRh
a2UgQ2hlY2tlZDx1bnNpZ25lZD4gYW5kIGFib3J0IGlmIGl0IGZhaWxzIHRvIHJvdW5kIHVwLgog
ICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwODYKICAg
ICBhbGxvY2F0aW9uU2l6ZSA9IHN0ZDo6bWF4KGFsbG9jYXRpb25TaXplLCByb3VuZFVwVG9Qb3dl
ck9mVHdvKGFsbG9jYXRpb25TaXplKSk7CiAKLSAgICAvLyBBbGxvY2F0aW5nIHRoaXMgbXVjaCB3
aWxsIGRlZmluaXRlbHkgZmFpbC4KLSAgICBpZiAoYWxsb2NhdGlvblNpemUgPj0gMHg4MDAwMDAw
MCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKGlzOEJpdCgpICYmICFzdHJpbmcu
aXM4Qml0KCkpCi0gICAgICAgIGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KG1fYnVmZmVyQ2hhcmFj
dGVyczgsIGFsbG9jYXRpb25TaXplKTsKLSAgICBlbHNlCi0gICAgICAgIHJlc2VydmVDYXBhY2l0
eShhbGxvY2F0aW9uU2l6ZSk7CisgICAgaWYgKGlzOEJpdCgpICYmICFzdHJpbmcuaXM4Qml0KCkp
IHsKKyAgICAgICAgYXV0byBhbGxvY2F0ZWQgPSBhbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChtX2J1
ZmZlckNoYXJhY3RlcnM4LCBhbGxvY2F0aW9uU2l6ZSk7CisgICAgICAgIGlmICghYWxsb2NhdGVk
KQorICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRlZDsKKyAgICB9IGVsc2UgeworICAgICAgICBh
dXRvIHJlc2VydmVkID0gcmVzZXJ2ZUNhcGFjaXR5KGFsbG9jYXRpb25TaXplKTsKKyAgICAgICAg
aWYgKCFyZXNlcnZlZCkKKyAgICAgICAgICAgIHJldHVybiByZXNlcnZlZDsKKyAgICB9CiAgICAg
QVNTRVJUKG1fYnVmZmVyLT5sZW5ndGgoKSA+PSBhbGxvY2F0aW9uU2l6ZSk7CiAKICAgICBpZiAo
aXM4Qml0KCkpIHsKQEAgLTExOSw3ICsxMjAsNyBAQCBib29sIFN0cmluZ0J1aWxkZXI6OmFwcGVu
ZFF1b3RlZEpTT05TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgICAgIG1fbGVuZ3Ro
ID0gb3V0cHV0IC0gbV9idWZmZXJDaGFyYWN0ZXJzMTY7CiAgICAgfQogICAgIEFTU0VSVChtX2J1
ZmZlci0+bGVuZ3RoKCkgPj0gbV9sZW5ndGgpOwotICAgIHJldHVybiB0cnVlOworICAgIHJldHVy
biB7IH07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvdGV4dC9TdHJpbmdJbXBsLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5j
cHAKaW5kZXggNzc0ODc2Yi4uZWVkMDlhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4
dC9TdHJpbmdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3Bw
CkBAIC0yMDYsMjIgKzIwNiwyNCBAQCBSZWY8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6Y3JlYXRl
VW5pbml0aWFsaXplZCh1bnNpZ25lZCBsZW5ndGgsIFVDaGFyKiYgZGF0YSkKICAgICByZXR1cm4g
Y3JlYXRlVW5pbml0aWFsaXplZEludGVybmFsKGxlbmd0aCwgZGF0YSk7CiB9CiAKLXRlbXBsYXRl
PHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IGlubGluZSBSZWY8U3RyaW5nSW1wbD4gU3RyaW5nSW1w
bDo6cmVhbGxvY2F0ZUludGVybmFsKFJlZjxTdHJpbmdJbXBsPiYmIG9yaWdpbmFsU3RyaW5nLCB1
bnNpZ25lZCBsZW5ndGgsIENoYXJhY3RlclR5cGUqJiBkYXRhKQordGVtcGxhdGU8dHlwZW5hbWUg
Q2hhcmFjdGVyVHlwZT4gaW5saW5lIFJlZlB0cjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpyZWFs
bG9jYXRlSW50ZXJuYWwoUmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2lnbmVk
IGxlbmd0aCwgQ2hhcmFjdGVyVHlwZSomIGRhdGEpCiB7CiAgICAgQVNTRVJUKG9yaWdpbmFsU3Ry
aW5nLT5oYXNPbmVSZWYoKSk7CiAgICAgQVNTRVJUKG9yaWdpbmFsU3RyaW5nLT5idWZmZXJPd25l
cnNoaXAoKSA9PSBCdWZmZXJJbnRlcm5hbCk7CiAKICAgICBpZiAoIWxlbmd0aCkgewogICAgICAg
ICBkYXRhID0gMDsKLSAgICAgICAgcmV0dXJuICplbXB0eSgpOworICAgICAgICByZXR1cm4gZW1w
dHkoKTsKICAgICB9CiAKICAgICAvLyBTYW1lIGFzIGNyZWF0ZVVuaW5pdGlhbGl6ZWQoKSBleGNl
cHQgaGVyZSB3ZSB1c2Ugc3RyaW5nUmVhbGxvYy4KLSAgICBpZiAobGVuZ3RoID4gKChzdGQ6Om51
bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkgLSBzaXplb2YoU3RyaW5nSW1wbCkpIC8gc2l6
ZW9mKENoYXJhY3RlclR5cGUpKSkKLSAgICAgICAgQ1JBU0goKTsKKyAgICBpZiAoVU5MSUtFTFko
bGVuZ3RoID4gKChzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkgLSBzaXplb2Yo
U3RyaW5nSW1wbCkpIC8gc2l6ZW9mKENoYXJhY3RlclR5cGUpKSkpCisgICAgICAgIHJldHVybiBu
dWxscHRyOwogCiAgICAgb3JpZ2luYWxTdHJpbmctPn5TdHJpbmdJbXBsKCk7CiAgICAgYXV0byog
c3RyaW5nID0gc3RhdGljX2Nhc3Q8U3RyaW5nSW1wbCo+KHN0cmluZ1JlYWxsb2MoJm9yaWdpbmFs
U3RyaW5nLmxlYWtSZWYoKSwgYWxsb2NhdGlvblNpemU8Q2hhcmFjdGVyVHlwZT4obGVuZ3RoKSkp
OworICAgIGlmIChVTkxJS0VMWSghc3RyaW5nKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
ICAgICBkYXRhID0gc3RyaW5nLT50YWlsUG9pbnRlcjxDaGFyYWN0ZXJUeXBlPigpOwogICAgIHJl
dHVybiBjb25zdHJ1Y3RJbnRlcm5hbDxDaGFyYWN0ZXJUeXBlPigqc3RyaW5nLCBsZW5ndGgpOwpA
QCAtMjMwLDEzICsyMzIsMzMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gaW5s
aW5lIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpyZWFsbG9jYXRlSW4KIFJlZjxTdHJpbmdJ
bXBsPiBTdHJpbmdJbXBsOjpyZWFsbG9jYXRlKFJlZjxTdHJpbmdJbXBsPiYmIG9yaWdpbmFsU3Ry
aW5nLCB1bnNpZ25lZCBsZW5ndGgsIExDaGFyKiYgZGF0YSkKIHsKICAgICBBU1NFUlQob3JpZ2lu
YWxTdHJpbmctPmlzOEJpdCgpKTsKLSAgICByZXR1cm4gcmVhbGxvY2F0ZUludGVybmFsKFdURk1v
dmUob3JpZ2luYWxTdHJpbmcpLCBsZW5ndGgsIGRhdGEpOworICAgIGlmIChhdXRvIHJlYWxsb2Nh
dGVkID0gcmVhbGxvY2F0ZUludGVybmFsKFdURk1vdmUob3JpZ2luYWxTdHJpbmcpLCBsZW5ndGgs
IGRhdGEpKQorICAgICAgICByZXR1cm4gKnJlYWxsb2NhdGVkOworICAgIENSQVNIKCk7CiB9CiAK
IFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpyZWFsbG9jYXRlKFJlZjxTdHJpbmdJbXBsPiYm
IG9yaWdpbmFsU3RyaW5nLCB1bnNpZ25lZCBsZW5ndGgsIFVDaGFyKiYgZGF0YSkKIHsKICAgICBB
U1NFUlQoIW9yaWdpbmFsU3RyaW5nLT5pczhCaXQoKSk7Ci0gICAgcmV0dXJuIHJlYWxsb2NhdGVJ
bnRlcm5hbChXVEZNb3ZlKG9yaWdpbmFsU3RyaW5nKSwgbGVuZ3RoLCBkYXRhKTsKKyAgICBpZiAo
YXV0byByZWFsbG9jYXRlZCA9IHJlYWxsb2NhdGVJbnRlcm5hbChXVEZNb3ZlKG9yaWdpbmFsU3Ry
aW5nKSwgbGVuZ3RoLCBkYXRhKSkKKyAgICAgICAgcmV0dXJuICpyZWFsbG9jYXRlZDsKKyAgICBD
UkFTSCgpOworfQorCitSZWZQdHI8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6dHJ5UmVhbGxvY2F0
ZShSZWY8U3RyaW5nSW1wbD4mJiBvcmlnaW5hbFN0cmluZywgdW5zaWduZWQgbGVuZ3RoLCBMQ2hh
ciomIGRhdGEpCit7CisgICAgQVNTRVJUKG9yaWdpbmFsU3RyaW5nLT5pczhCaXQoKSk7CisgICAg
aWYgKGF1dG8gcmVhbGxvY2F0ZWQgPSByZWFsbG9jYXRlSW50ZXJuYWwoV1RGTW92ZShvcmlnaW5h
bFN0cmluZyksIGxlbmd0aCwgZGF0YSkpCisgICAgICAgIHJldHVybiByZWFsbG9jYXRlZC5nZXQo
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPFN0cmluZ0ltcGw+IFN0cmluZ0lt
cGw6OnRyeVJlYWxsb2NhdGUoUmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2ln
bmVkIGxlbmd0aCwgVUNoYXIqJiBkYXRhKQoreworICAgIEFTU0VSVCghb3JpZ2luYWxTdHJpbmct
PmlzOEJpdCgpKTsKKyAgICBpZiAoYXV0byByZWFsbG9jYXRlZCA9IHJlYWxsb2NhdGVJbnRlcm5h
bChXVEZNb3ZlKG9yaWdpbmFsU3RyaW5nKSwgbGVuZ3RoLCBkYXRhKSkKKyAgICAgICAgcmV0dXJu
IHJlYWxsb2NhdGVkLmdldCgpOworICAgIHJldHVybiBudWxscHRyOwogfQogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBpbmxpbmUgUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6
OmNyZWF0ZUludGVybmFsKGNvbnN0IENoYXJhY3RlclR5cGUqIGNoYXJhY3RlcnMsIHVuc2lnbmVk
IGxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oIGIv
U291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmgKaW5kZXggNjE2ZGEyNS4uOGRmOWUzNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmgKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmgKQEAgLTIyOSw2ICsyMjksNyBAQCBwdWJsaWM6CiAg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8U3RyaW5nSW1wbD4gY3JlYXRlKGNvbnN0
IExDaGFyKik7CiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0
ZShjb25zdCBjaGFyKiBzdHJpbmcpIHsgcmV0dXJuIGNyZWF0ZShyZWludGVycHJldF9jYXN0PGNv
bnN0IExDaGFyKj4oc3RyaW5nKSk7IH0KIAorICAgIHN0YXRpYyBSZWZQdHI8U3RyaW5nSW1wbD4g
dHJ5Q3JlYXRlU3Vic3RyaW5nU2hhcmluZ0ltcGwoU3RyaW5nSW1wbCYsIHVuc2lnbmVkIG9mZnNl
dCwgdW5zaWduZWQgbGVuZ3RoKTsKICAgICBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0ZVN1
YnN0cmluZ1NoYXJpbmdJbXBsKFN0cmluZ0ltcGwmLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVk
IGxlbmd0aCk7CiAKICAgICB0ZW1wbGF0ZTx1bnNpZ25lZCBjaGFyYWN0ZXJDb3VudD4gc3RhdGlj
IFJlZjxTdHJpbmdJbXBsPiBjcmVhdGVGcm9tTGl0ZXJhbChjb25zdCBjaGFyICgmKVtjaGFyYWN0
ZXJDb3VudF0pOwpAQCAtMjQ4LDYgKzI0OSw4IEBAIHB1YmxpYzoKICAgICAvLyB0aGUgb3JpZ2lu
YWxTdHJpbmcgY2FuJ3QgYmUgdXNlZCBhZnRlciB0aGlzIGZ1bmN0aW9uLgogICAgIHN0YXRpYyBS
ZWY8U3RyaW5nSW1wbD4gcmVhbGxvY2F0ZShSZWY8U3RyaW5nSW1wbD4mJiBvcmlnaW5hbFN0cmlu
ZywgdW5zaWduZWQgbGVuZ3RoLCBMQ2hhciomIGRhdGEpOwogICAgIHN0YXRpYyBSZWY8U3RyaW5n
SW1wbD4gcmVhbGxvY2F0ZShSZWY8U3RyaW5nSW1wbD4mJiBvcmlnaW5hbFN0cmluZywgdW5zaWdu
ZWQgbGVuZ3RoLCBVQ2hhciomIGRhdGEpOworICAgIHN0YXRpYyBSZWZQdHI8U3RyaW5nSW1wbD4g
dHJ5UmVhbGxvY2F0ZShSZWY8U3RyaW5nSW1wbD4mJiBvcmlnaW5hbFN0cmluZywgdW5zaWduZWQg
bGVuZ3RoLCBMQ2hhciomIGRhdGEpOworICAgIHN0YXRpYyBSZWZQdHI8U3RyaW5nSW1wbD4gdHJ5
UmVhbGxvY2F0ZShSZWY8U3RyaW5nSW1wbD4mJiBvcmlnaW5hbFN0cmluZywgdW5zaWduZWQgbGVu
Z3RoLCBVQ2hhciomIGRhdGEpOwogCiAgICAgc3RhdGljIHVuc2lnbmVkIGZsYWdzT2Zmc2V0KCkg
eyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFN0cmluZ0ltcGwsIG1faGFzaEFuZEZsYWdzKTsgfQog
ICAgIHN0YXRpYyB1bnNpZ25lZCBmbGFnSXM4Qml0KCkgeyByZXR1cm4gc19oYXNoRmxhZzhCaXRC
dWZmZXI7IH0KQEAgLTUwMyw3ICs1MDYsNyBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIENoYXJhY3RlclR5cGU+IHN0YXRpYyBSZWY8U3RyaW5nSW1wbD4gY29uc3RydWN0SW50ZXJu
YWwoU3RyaW5nSW1wbCYsIHVuc2lnbmVkKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0
ZXJUeXBlPiBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0ZVVuaW5pdGlhbGl6ZWRJbnRlcm5h
bCh1bnNpZ25lZCwgQ2hhcmFjdGVyVHlwZSomKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFy
YWN0ZXJUeXBlPiBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0ZVVuaW5pdGlhbGl6ZWRJbnRl
cm5hbE5vbkVtcHR5KHVuc2lnbmVkLCBDaGFyYWN0ZXJUeXBlKiYpOwotICAgIHRlbXBsYXRlPHR5
cGVuYW1lIENoYXJhY3RlclR5cGU+IHN0YXRpYyBSZWY8U3RyaW5nSW1wbD4gcmVhbGxvY2F0ZUlu
dGVybmFsKFJlZjxTdHJpbmdJbXBsPiYmLCB1bnNpZ25lZCwgQ2hhcmFjdGVyVHlwZSomKTsKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBzdGF0aWMgUmVmUHRyPFN0cmluZ0lt
cGw+IHJlYWxsb2NhdGVJbnRlcm5hbChSZWY8U3RyaW5nSW1wbD4mJiwgdW5zaWduZWQsIENoYXJh
Y3RlclR5cGUqJik7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gc3RhdGlj
IFJlZjxTdHJpbmdJbXBsPiBjcmVhdGVJbnRlcm5hbChjb25zdCBDaGFyYWN0ZXJUeXBlKiwgdW5z
aWduZWQpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBORVZFUl9JTkxJTkUgdW5zaWduZWQgaGFz
aFNsb3dDYXNlKCkgY29uc3Q7CiAKQEAgLTkxNCwyMiArOTE3LDMxIEBAIHRlbXBsYXRlPHNpemVf
dCBpbmxpbmVDYXBhY2l0eT4gaW5saW5lIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpjcmVh
dGU4Qml0SWZQCiAgICAgcmV0dXJuIGNyZWF0ZThCaXRJZlBvc3NpYmxlKHZlY3Rvci5kYXRhKCks
IHZlY3Rvci5zaXplKCkpOwogfQogCi1BTFdBWVNfSU5MSU5FIFJlZjxTdHJpbmdJbXBsPiBTdHJp
bmdJbXBsOjpjcmVhdGVTdWJzdHJpbmdTaGFyaW5nSW1wbChTdHJpbmdJbXBsJiByZXAsIHVuc2ln
bmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQorQUxXQVlTX0lOTElORSBSZWZQdHI8U3RyaW5n
SW1wbD4gU3RyaW5nSW1wbDo6dHJ5Q3JlYXRlU3Vic3RyaW5nU2hhcmluZ0ltcGwoU3RyaW5nSW1w
bCYgcmVwLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBBU1NFUlQo
bGVuZ3RoIDw9IHJlcC5sZW5ndGgoKSk7CiAKICAgICBpZiAoIWxlbmd0aCkKLSAgICAgICAgcmV0
dXJuICplbXB0eSgpOworICAgICAgICByZXR1cm4gZW1wdHkoKTsKIAogICAgIGF1dG8qIG93bmVy
UmVwID0gKChyZXAuYnVmZmVyT3duZXJzaGlwKCkgPT0gQnVmZmVyU3Vic3RyaW5nKSA/IHJlcC5z
dWJzdHJpbmdCdWZmZXIoKSA6ICZyZXApOwogCiAgICAgLy8gV2UgYWxsb2NhdGUgYSBidWZmZXIg
dGhhdCBjb250YWlucyBib3RoIHRoZSBTdHJpbmdJbXBsIHN0cnVjdCBhcyB3ZWxsIGFzIHRoZSBw
b2ludGVyIHRvIHRoZSBvd25lciBzdHJpbmcuCiAgICAgYXV0byogc3RyaW5nSW1wbCA9IHN0YXRp
Y19jYXN0PFN0cmluZ0ltcGwqPihzdHJpbmdNYWxsb2MoYWxsb2NhdGlvblNpemU8U3RyaW5nSW1w
bCo+KDEpKSk7CisgICAgaWYgKCFzdHJpbmdJbXBsKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICBpZiAocmVwLmlzOEJpdCgpKQogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyAoTm90
TnVsbCwgc3RyaW5nSW1wbCkgU3RyaW5nSW1wbChyZXAubV9kYXRhOCArIG9mZnNldCwgbGVuZ3Ro
LCAqb3duZXJSZXApKTsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyAoTm90TnVsbCwgc3RyaW5n
SW1wbCkgU3RyaW5nSW1wbChyZXAubV9kYXRhMTYgKyBvZmZzZXQsIGxlbmd0aCwgKm93bmVyUmVw
KSk7CiB9CiAKK0FMV0FZU19JTkxJTkUgUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OmNyZWF0
ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKFN0cmluZ0ltcGwmIHJlcCwgdW5zaWduZWQgb2Zmc2V0LCB1
bnNpZ25lZCBsZW5ndGgpCit7CisgICAgaWYgKGF1dG8gY3JlYXRlZCA9IHRyeUNyZWF0ZVN1YnN0
cmluZ1NoYXJpbmdJbXBsKHJlcCwgb2Zmc2V0LCBsZW5ndGgpKQorICAgICAgICByZXR1cm4gKmNy
ZWF0ZWQ7CisgICAgQ1JBU0goKTsKK30KKwogdGVtcGxhdGU8dW5zaWduZWQgY2hhcmFjdGVyQ291
bnQ+IEFMV0FZU19JTkxJTkUgUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21M
aXRlcmFsKGNvbnN0IGNoYXIgKCZjaGFyYWN0ZXJzKVtjaGFyYWN0ZXJDb3VudF0pCiB7CiAgICAg
Q09NUElMRV9BU1NFUlQoY2hhcmFjdGVyQ291bnQgPiAxLCBTdHJpbmdJbXBsRnJvbUxpdGVyYWxO
b3RFbXB0eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRTdHJlYW0uY3Bw
IGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0U3RyZWFtLmNwcAppbmRleCBhYWY2MTk0Li5kM2I1
MzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRTdHJlYW0uY3BwCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dFN0cmVhbS5jcHAKQEAgLTEzMiw5ICsxMzIsMTEgQEAg
VGV4dFN0cmVhbSYgVGV4dFN0cmVhbTo6b3BlcmF0b3I8PChjb25zdCBGb3JtYXROdW1iZXJSZXNw
ZWN0aW5nSW50ZWdlcnMmIG51bWJlclQKIAogU3RyaW5nIFRleHRTdHJlYW06OnJlbGVhc2UoKQog
ewotICAgIFN0cmluZyByZXN1bHQgPSBtX3RleHQudG9TdHJpbmcoKTsKLSAgICBtX3RleHQuY2xl
YXIoKTsKLSAgICByZXR1cm4gcmVzdWx0OworICAgIGlmIChhdXRvIHJlc3VsdCA9IG1fdGV4dC50
b1N0cmluZygpKSB7CisgICAgICAgIG1fdGV4dC5jbGVhcigpOworICAgICAgICByZXR1cm4gKnJl
c3VsdDsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBUZXh0U3RyZWFtOjpzdGFydEdy
b3VwKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA1MWQ4YWQwLi41MTNhMDJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNTEzIEBACisyMDE4LTA0LTI2ICBKRiBCYXN0aWVuICA8amZiYXN0aWVuQGFwcGxlLmNvbT4K
KworICAgICAgICBTdHJpbmdCdWlsZGVyIGlzIGZhbGxpYmxlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUwNDgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdHJpbmdCdWlsZGVyIGNhbiBmYWlsIHdoZW4g
YWxsb2NhdGluZyBtZW1vcnkuIFN0cmluZ0J1aWxkZXIgaXMKKyAgICAgICAgbW9zdGx5IHVzZWQg
d2l0aCB1c2VyIGlucHV0LCB3aGljaCBvZnRlbiBtZWFucyB0aGF0IGp1c3QgY3Jhc2hpbmcKKyAg
ICAgICAgaXNuJ3QgdGhlIHJpZ2h0IG91dGNvbWUuIE91ciBmdXp6ZXJzIG9mdGVuIGVuY291bnRl
ciBzdWNoIHRoaW5ncworICAgICAgICBmb3IgSmF2YVNjcmlwdENvcmUsIGFuZCBzbyBmYXIgd2Un
dmUgYXBwbGllZCBwb2ludCBzb2x1dGlvbnMuIE5vCisgICAgICAgIG1vcmUhCisKKworICAgICAg
ICAqIE1vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudENvbnRhY3RDb2NvYS5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnZlcnQpOgorICAgICAgICAqIE1vZHVsZXMvZW50cmllc2FwaS9ET01G
aWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlc29sdmVSZWxhdGl2ZVZpcnR1YWxQ
YXRoKToKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmxvZ0Vycm9yKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJLZXlEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQktleURhdGE6OmxvZ2dpbmdTdHJp
bmcgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBhdGguY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6bG9nZ2luZ1N0cmluZyk6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL0luZGV4VmFsdWVTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6OkluZGV4VmFsdWVTdG9yZTo6bG9nZ2luZ1N0cmluZyBjb25zdCk6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1cnNvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6OmJ1aWxkSW5kZXhTdGF0ZW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCU2VydmVyOjpidWlsZE9iamVjdFN0b3JlU3RhdGVtZW50KToKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VJbmZvLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQkRhdGFiYXNlSW5mbzo6bG9nZ2luZ1N0cmluZyBjb25zdCk6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9iamVjdFN0b3JlSW5mby5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJPYmplY3RTdG9yZUluZm86OmxvZ2dpbmdTdHJpbmcgY29uc3QpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6bWVkaWFQcm9kdWNlclN0YXRlU3RyaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OnRvU3RyaW5nKToKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpmaWx0ZXJJQ0VDYW5kaWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGVlckNvbm5lY3Rpb25C
YWNrZW5kOjpmaWx0ZXJTRFAgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9Zb3VU
dWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WW91VHViZVBsdWdp
blJlcGxhY2VtZW50Ojp5b3VUdWJlVVJMRnJvbUFic29sdXRlVVJMKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpn
ZW5lcmF0ZURhdGFiYXNlRmlsZU5hbWUpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9X
ZWJTb2NrZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZW5jb2RlUHJvdG9jb2xTdHJpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6am9pblN0cmluZ3MpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OmNyZWF0ZUhlYWRlclZhbHVlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OmFjY2VwdGVk
RXh0ZW5zaW9ucyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dEhhbmRzaGFrZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXNvdXJjZU5hbWUpOgorICAgICAg
ICAoV2ViQ29yZTo6aG9zdE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNo
YWtlOjpjbGllbnRMb2NhdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRI
YW5kc2hha2U6OmNsaWVudEhhbmRzaGFrZU1lc3NhZ2UgY29uc3QpOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
c2hvdWxkQWRkU3BhY2VCZWZvcmVBcHBlbmRpbmdOZXh0RWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dGV4dFVuZGVyRWxlbWVudCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWNjZXNzaWJpbGl0eURl
c2NyaXB0aW9uRm9yQ2hpbGRyZW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OmFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbkZvckVsZW1lbnRzIGNvbnN0
KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c3RyaW5nRm9yUmFuZ2UgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c3RyaW5nRm9yVmlzaWJs
ZVBvc2l0aW9uUmFuZ2UpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlciB2YWx1ZURlc2NyaXB0aW9uRm9yTWV0ZXJdKToKKyAgICAgICAgKGZvcm1hdEZv
ckRlYnVnZ2VyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRTdHJpbmdzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnN0cmluZ1RvVVNWU3RyaW5nKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRo
cm93QXJndW1lbnRNdXN0QmVFbnVtRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6dGhyb3dBcmd1
bWVudE11c3RCZUZ1bmN0aW9uRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6dGhyb3dBcmd1bWVu
dFR5cGVFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjp0aHJvd1JlcXVpcmVkTWVtYmVyVHlwZUVy
cm9yKToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db21iaW5lZFVSTEZpbHRlcnMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OnByZWZpeFRyZWVWZXJ0ZXhU
b1N0cmluZyk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lv
bjo6Y29tcGlsZUdsb2JhbERpc3BsYXlOb25lU3R5bGVTaGVldCk6CisgICAgICAgICogY29udGVu
dGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRlbnRFeHRlbnNpb25zOjpyZXNvbHZlUGVuZGluZ0Rpc3BsYXlOb25lQWN0aW9ucyk6
CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblN0eWxlU2hlZXQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNp
b25TdHlsZVNoZWV0OjphZGREaXNwbGF5Tm9uZVNlbGVjdG9yKToKKyAgICAgICAgKiBjb250ZW50
ZXh0ZW5zaW9ucy9UZXJtLmg6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6
VGVybTo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NBbmltYXRpb25UcmlnZ2Vy
U2Nyb2xsVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQW5pbWF0aW9uVHJpZ2dlclNj
cm9sbFZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTQmFzaWNT
aGFwZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRDaXJjbGVTdHJpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6YnVpbGRFbGxpcHNlU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxk
UGF0aFN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpidWlsZFBvbHlnb25TdHJpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6YnVpbGRJbnNldFN0cmluZyk6CisgICAgICAgICogY3NzL0NTU0NhbGN1
bGF0aW9uVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRDc3NUZXh0KToKKyAgICAg
ICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAg
ICogY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3Nz
ZmFkZVZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTQ3Vyc29y
SW1hZ2VWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDdXJzb3JJbWFnZVZhbHVlOjpj
dXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTQ3VzdG9tSWRlbnRWYWx1ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDdXN0b21JZGVudFZhbHVlOjpjdXN0b21DU1NUZXh0
IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NGaWx0ZXJJbWFnZVZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAg
ICAgICAgKiBjc3MvQ1NTRm9udEZhY2VSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Zv
bnRGYWNlUnVsZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU3Jj
VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VTcmNWYWx1ZTo6Y3VzdG9t
Q1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0ZvbnRGZWF0dXJlVmFsdWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZlYXR1cmVWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25z
dCk6CisgICAgICAgICogY3NzL0NTU0ZvbnRTdHlsZVJhbmdlVmFsdWUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTRm9udFN0eWxlUmFuZ2VWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6Cisg
ICAgICAgICogY3NzL0NTU0ZvbnRTdHlsZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0ZvbnRTdHlsZVZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NT
Rm9udFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRWYWx1ZTo6Y3VzdG9tQ1NT
VGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NGb250VmFyaWF0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQgY29u
c3QpOgorICAgICAgICAqIGNzcy9DU1NGdW5jdGlvblZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU0Z1bmN0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNz
cy9DU1NHcmFkaWVudFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0xpbmVhckdyYWRp
ZW50VmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUmFk
aWFsR3JhZGllbnRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NDb25pY0dyYWRpZW50VmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAq
IGNzcy9DU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0dy
aWRBdXRvUmVwZWF0VmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9D
U1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0dyaWRU
ZW1wbGF0ZUFyZWFzVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9D
U1NJbWFnZVNldFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltYWdlU2V0VmFsdWU6
OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NJbXBvcnRSdWxlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0ltcG9ydFJ1bGU6OmNzc1RleHQgY29uc3QpOgorICAgICAg
ICAqIGNzcy9DU1NLZXlmcmFtZVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxl
S2V5ZnJhbWU6OmtleVRleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlS2V5
ZnJhbWU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NLZXlmcmFtZXNSdWxlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0tleWZyYW1lc1J1bGU6OmNzc1RleHQgY29uc3QpOgor
ICAgICAgICAqIGNzcy9DU1NMaW5lQm94Q29udGFpblZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU0xpbmVCb3hDb250YWluVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAg
ICAqIGNzcy9DU1NNYXJrdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2VyaWFsaXplU3RyaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OnNlcmlhbGl6ZUFzU3RyaW5nT3JDdXN0b21JZGVudCk6Cisg
ICAgICAgICogY3NzL0NTU01lZGlhUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NNZWRp
YVJ1bGU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NOYW1lc3BhY2VSdWxlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU05hbWVzcGFjZVJ1bGU6OmNzc1RleHQgY29uc3QpOgor
ICAgICAgICAqIGNzcy9DU1NQYWdlUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYWdl
UnVsZTo6c2VsZWN0b3JUZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhZ2VSdWxl
Ojpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmZvcm1hdE51bWJlckZvckN1c3Rv
bUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlTb3VyY2VEYXRhOjp0b1N0cmluZyBjb25z
dCk6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1NlbGVjdG9yOjpzZWxlY3RvclRleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rv
ckxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3JMaXN0OjpzZWxlY3RvcnNU
ZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTU2hhZG93VmFsdWUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTU2hhZG93VmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAq
IGNzcy9DU1NTdHlsZVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVSdWxlOjpj
c3NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTaGVldC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NTdHlsZVNoZWV0OjphZGRSdWxlKToKKyAgICAgICAgKiBjc3MvQ1NTU3Vw
cG9ydHNSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N1cHBvcnRzUnVsZTo6Y3NzVGV4
dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvblZhbHVlOjpjdXN0b21D
U1NUZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0ZXBzVGltaW5nRnVuY3Rpb25W
YWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGcmFtZXNU
aW1pbmdGdW5jdGlvblZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1NwcmluZ1RpbWluZ0Z1bmN0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgor
ICAgICAgICAqIGNzcy9DU1NWYWx1ZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFs
dWVMaXN0OjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTVmFyaWFibGVE
YXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhcmlhYmxlRGF0YTo6Y29uc3VtZUFuZFVw
ZGF0ZVRva2Vucyk6CisgICAgICAgICogY3NzL0RPTUNTU05hbWVzcGFjZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpET01DU1NOYW1lc3BhY2U6OmVzY2FwZSk6CisgICAgICAgICogY3NzL0RPTU1h
dHJpeFJlYWRPbmx5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTU1hdHJpeFJlYWRPbmx5Ojp0
b1N0cmluZyBjb25zdCk6CisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3Q6OmNzc1RleHQg
Y29uc3QpOgorICAgICAgICAqIGNzcy9Gb250RmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
b250RmFjZTo6c3R5bGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZhY2U6OndlaWdo
dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGb250RmFjZTo6c3RyZXRjaCBjb25zdCk6Cisg
ICAgICAgICogY3NzL01lZGlhTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5
U2V0OjptZWRpYVRleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnk6OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgICog
Y3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVl
cnlFeHByZXNzaW9uOjpzZXJpYWxpemUgY29uc3QpOgorICAgICAgICAqIGNzcy9SZWN0Lmg6Cisg
ICAgICAgICogY3NzL1N0eWxlUHJvcGVydGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZVByb3BlcnRpZXM6OmZvbnRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVBy
b3BlcnRpZXM6OmdldDRWYWx1ZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9w
ZXJ0aWVzOjpnZXRMYXllcmVkU2hvcnRoYW5kVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVQcm9wZXJ0aWVzOjpnZXRTaG9ydGhhbmRWYWx1ZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OmJvcmRlclByb3BlcnR5VmFsdWUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzOjphc1RleHQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzOjpQcm9wZXJ0eVJlZmVyZW5jZTo6Y3NzVGV4dCBjb25z
dCk6CisgICAgICAgICogY3NzL1dlYktpdENTU01hdHJpeC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJLaXRDU1NNYXRyaXg6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBjc3MvV2ViS2l0
Q1NTVmlld3BvcnRSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdENTU1ZpZXdwb3J0
UnVsZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUZvbnRGYWNlRGVzY3JpcHRvcik6
CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQYXJzZXJUb2tlbjo6c2VyaWFsaXplIGNvbnN0KToKKyAgICAgICAgKiBjc3MvcGFy
c2VyL0NTU1BhcnNlclRva2VuUmFuZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2Vy
VG9rZW5SYW5nZTo6c2VyaWFsaXplIGNvbnN0KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1By
b3BlcnR5UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbmNhdGVuYXRlRmFtaWx5TmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZUdyaWRUZW1wbGF0ZUFyZWFzQ29sdW1uTmFtZXMp
OgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTVG9rZW5pemVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1Rva2VuaXplcjo6Y29uc3VtZVN0cmluZ1Rva2VuVW50aWwpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTVG9rZW5pemVyOjpjb25zdW1lVXJsVG9rZW4pOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTVG9rZW5pemVyOjpjb25zdW1lTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb2tlbml6
ZXI6OmNvbnN1bWVFc2NhcGUpOgorICAgICAgICAqIGRvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRBdHRyaWJ1dGVOYW1lVG9Qcm9wZXJ0eU5hbWUp
OgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6
OmZvcm1hdEZvckRlYnVnZ2VyIGNvbnN0KToKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpOb2RlOjp0ZXh0Q29udGVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlOjpzaG93Tm9kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjp0cmF2ZXJzZVRyZWVB
bmRNYXJrKToKKyAgICAgICAgKiBkb20vUG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UG9zaXRpb246OmZvcm1hdEZvckRlYnVnZ2VyIGNvbnN0KToKKyAgICAgICAgKiBkb20vUmFuZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJhbmdlOjpmb3JtYXRGb3JEZWJ1Z2dlciBjb25zdCk6CisgICAgICAgICogZG9t
L1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0aHJv
dHRsaW5nUmVhc29uc1RvU3RyaW5nKToKKyAgICAgICAgKiBkb20vU2VjdXJpdHlDb250ZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5Q29udGV4dDo6cGFyc2VTYW5kYm94UG9saWN5
KToKKyAgICAgICAgKiBkb20vVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Ojp3aG9s
ZVRleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dDo6Zm9ybWF0Rm9yRGVidWdnZXIg
Y29uc3QpOgorICAgICAgICAqIGRvbS9UZXh0Tm9kZVRyYXZlcnNhbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0Tm9kZVRyYXZlcnNhbDo6Y29udGVudHNBc1N0cmluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0Tm9kZVRyYXZlcnNhbDo6Y2hpbGRUZXh0Q29udGVudCk6CisgICAgICAgICog
ZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0
eWxlQ29tbWFuZDo6YWRkQmxvY2tTdHlsZSk6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnN0cmluZ1dpdGhSZWJhbGFuY2VkV2hpdGVzcGFjZSk6Cisg
ICAgICAgICogZWRpdGluZy9IVE1MSW50ZXJjaGFuZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Y29udmVydEhUTUxUZXh0VG9JbnRlcmNoYW5nZUZvcm1hdCk6CisgICAgICAgICogZWRpdGluZy9N
YXJrdXBBY2N1bXVsYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXJrdXBBY2N1bXVsYXRv
cjo6c2VyaWFsaXplTm9kZXMpOgorICAgICAgICAoV2ViQ29yZTo6TWFya3VwQWNjdW11bGF0b3I6
OmdlbmVyYXRlVW5pcXVlUHJlZml4KToKKyAgICAgICAgKiBlZGl0aW5nL1RleHRJdGVyYXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpwbGFpblRleHQpOgorICAgICAgICAqIGVkaXRpbmcvVHlw
aW5nQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdDb21tYW5kOjppbnB1dEV2
ZW50RGF0YVRyYW5zZmVyIGNvbnN0KToKKyAgICAgICAgKiBlZGl0aW5nL1Zpc2libGVTZWxlY3Rp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VmlzaWJsZVNlbGVjdGlvbjo6Zm9ybWF0Rm9yRGVi
dWdnZXIgY29uc3QpOgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbToK
KyAgICAgICAgKFdlYkNvcmU6OmRhdGFEZXRlY3RvclN0cmluZ0ZvclBhdGgpOgorICAgICAgICAq
IGVkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6
Ol9wcm9jZXNzVGV4dCk6CisgICAgICAgICogZWRpdGluZy9tYXJrdXAuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OndyYXBXaXRoTm9kZSk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6d3JhcFdpdGhTdHlsZU5vZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OnRha2VSZXN1bHRzKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OnNhbml0aXplZE1hcmt1cEZvckZyYWdtZW50SW5Eb2N1bWVudCk6
CisgICAgICAgIChXZWJDb3JlOjp1cmxUb01hcmt1cCk6CisgICAgICAgICogZmlsZWFwaS9GaWxl
UmVhZGVyTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVSZWFkZXJMb2FkZXI6OmNv
bnZlcnRUb0RhdGFVUkwpOgorICAgICAgICAqIGh0bWwvRE9NVG9rZW5MaXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVRva2VuTGlzdDo6dXBkYXRlQXNzb2NpYXRlZEF0dHJpYnV0ZUZyb21U
b2tlbnMpOgorICAgICAgICAqIGh0bWwvRW1haWxJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RW1haWxJbnB1dFR5cGU6OnNhbml0aXplVmFsdWUgY29uc3QpOgorICAgICAgICAqIGh0
bWwvRmlsZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpk
ZWZhdWx0VG9vbFRpcCBjb25zdCk6CisgICAgICAgICogaHRtbC9Gb3JtQ29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpmb3JtU2lnbmF0dXJlKToKKyAgICAgICAgKiBodG1sL0hUTUxB
bmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50Ojpo
YW5kbGVDbGljayk6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dDJkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlciBjb25zdCk6
CisgICAgICAgICogaHRtbC9IVE1MRm9udEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
cGFyc2VGb250U2l6ZSk6CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OmNvbXBsZXRlVVJMc0luQXR0cmlidXRl
VmFsdWUgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjphY3Rpb25OYW1lKToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25FbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPcHRpb25FbGVtZW50Ojpjb2xsZWN0T3B0
aW9uSW5uZXJUZXh0IGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
OjpzdHJpcHBlZFBsYWNlaG9sZGVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmlubmVyVGV4
dFZhbHVlRnJvbSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dDo6dmFsdWVXaXRoSGFyZExpbmVCcmVha3MgY29uc3QpOgorICAgICAgICAqIGh0bWwvTWVkaWFE
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURvY3VtZW50UGFyc2VyOjpjcmVh
dGVEb2N1bWVudFN0cnVjdHVyZSk6CisgICAgICAgICogaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlc3RyaWN0aW9uTmFtZSk6CisgICAgICAgICogaHRt
bC9NZWRpYUZyYWdtZW50VVJJUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbGxlY3RE
aWdpdHMpOgorICAgICAgICAoV2ViQ29yZTo6Y29sbGVjdEZyYWN0aW9uKToKKyAgICAgICAgKiBo
dG1sL1R5cGVBaGVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBlQWhlYWQ6OmhhbmRsZUV2
ZW50KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpmb250IGNvbnN0
KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmdldElt
YWdlRGF0YSBjb25zdCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZS5jcHA6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFNvdXJjZVRyYWNrZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNvdXJjZVRyYWNrZXI6OnNvdXJjZSk6CisgICAgICAg
ICogaHRtbC9wYXJzZXIvSFRNTFRva2VuaXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
VG9rZW5pemVyOjpwcm9jZXNzRW50aXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbml6
ZXI6OnByb2Nlc3NUb2tlbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpidWZm
ZXJlZENoYXJhY3RlcnMgY29uc3QpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVp
bGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OmRlZmF1bHRGb3JJ
blRhYmxlVGV4dCk6CisgICAgICAgICogaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkQ29uc29sZUVycm9yKToKKyAgICAgICAgKiBodG1s
L3RyYWNrL0J1ZmZlcmVkTGluZVJlYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCdWZmZXJl
ZExpbmVSZWFkZXI6Om5leHRMaW5lKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1RyYWNrQmFzZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUcmFja0Jhc2U6OnNldExhbmd1YWdlKToKKyAgICAgICAg
KiBodG1sL3RyYWNrL1ZUVEN1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWVFRDdWU6OmRldGVy
bWluZVRleHREaXJlY3Rpb24pOgorICAgICAgICAqIGh0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlZUVFBhcnNlcjo6Y3JlYXRlTmV3Q3VlKToKKyAgICAg
ICAgKiBodG1sL3RyYWNrL1dlYlZUVFRva2VuaXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJWVFRUb2tlbml6ZXI6Om5leHRUb2tlbik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
clN0eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGU6OnNob3J0
aGFuZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFw
cGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBcHBs
aWNhdGlvbkNhY2hlQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZVJlc291cmNl
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHA6
CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xlQWdlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViQ29uc29sZUFnZW50OjpkaWRGYWlsTG9hZGluZyk6CisgICAgICAgICog
bG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVBY2Nlc3NDb250cm9sUHJlZmxpZ2h0UmVxdWVzdCk6CisgICAgICAgICogbG9hZGVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2Fk
U3RhdGlzdGljczo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlv
bkNhY2hlU3RvcmFnZTo6c3RvcmUpOgorICAgICAgICAqIGxvYWRlci9hcmNoaXZlL2NmL0xlZ2Fj
eVdlYkFyY2hpdmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5V2ViQXJjaGl2ZTo6Y3Jl
YXRlRnJvbVNlbGVjdGlvbik6CisgICAgICAgICogbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxB
cmNoaXZlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdlbmVyYXRlUmFuZG9tQm91bmRhcnkpOgor
ICAgICAgICAoV2ViQ29yZTo6cmVwbGFjZU5vblByaW50YWJsZUNoYXJhY3RlcnMpOgorICAgICAg
ICAqIHBhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OndpbmRvd1JvdW5kZWRDb3JuZXJS
YWRpdXNDU1MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNl
c01lZGlhQUY6OmNvbG9yUHJvcGVydHlDU1MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fw
dGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zVGV4dEVkZ2VDU1MgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25z
RGVmYXVsdEZvbnRDU1MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVm
ZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zU3R5bGVTaGVldE92ZXJyaWRlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OnRyYWNrRGlzcGxheU5hbWUpOgorICAgICAgICAqIHBhZ2UvRnJhbWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUmVnRXhwRm9yTGFiZWxzKToKKyAgICAgICAgKiBw
YWdlL0ZyYW1lVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6OnVuaXF1ZUNo
aWxkTmFtZSBjb25zdCk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVWaWV3Ojpsb2dNb2NrU2Nyb2xsQW5pbWF0b3JNZXNzYWdlIGNvbnN0KToK
KyAgICAgICAgKiBwYWdlL1BhZ2VTZXJpYWxpemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2VTZXJpYWxpemVyOjpzZXJpYWxpemVDU1NTdHlsZVNoZWV0KToKKyAgICAgICAgKiBwYWdlL1Bl
cmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5j
ZUxvZ2dpbmdDbGllbnQ6OnN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uc0FzU3RyaW5nKToKKyAg
ICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGE6OmRhdGFiYXNlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICog
cGFnZS9XaGVlbEV2ZW50VGVzdFRyaWdnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZHVtcFN0
YXRlKToKKyAgICAgICAgKiBwYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y29uc29sZU1lc3NhZ2VGb3JWaW9sYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd1J1bm5pbmdPckRpc3BsYXlpbmdJbnNl
Y3VyZUNvbnRlbnQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0F4aXNTY3JvbGxTbmFwT2Zm
c2V0cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzbmFwT2Zmc2V0c1RvU3RyaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNuYXBPZmZzZXRSYW5nZXNUb1N0cmluZyk6CisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OnN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uc0FzVGV4dCk6Cisg
ICAgICAgICogcGxhdGZvcm0vRGVjaW1hbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWNpbWFs
Ojp0b1N0cmluZyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtOjplbmNvZGVGb3JGaWxlTmFtZSk6CisgICAgICAg
IChXZWJDb3JlOjpGaWxlU3lzdGVtOjpkZWNvZGVGcm9tRmlsZW5hbWUpOgorICAgICAgICAqIHBs
YXRmb3JtL1BPREludGVydmFsLmg6CisgICAgICAgICogcGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpQT0RSZWRCbGFja1RyZWU6OmR1bXBGcm9tTm9kZSBjb25z
dCk6CisgICAgICAgICogcGxhdGZvcm0vVVJMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVSTDo6
c2V0SG9zdCk6CisgICAgICAgIChXZWJDb3JlOjpVUkw6OnNldEhvc3RBbmRQb3J0KToKKyAgICAg
ICAgKFdlYkNvcmU6OnBlcmNlbnRFbmNvZGVDaGFyYWN0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltaW5n
RnVuY3Rpb246OmNyZWF0ZUZyb21DU1NUZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL0Zp
bGVTeXN0ZW1HbGliLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW06OnBhdGhCeUFw
cGVuZGluZ0NvbXBvbmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yOjpzZXJpYWxpemVkIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbG9yOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9FeHRlbmRlZENvbG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6
OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5vcm1hbGl6ZVNwYWNlc0ludGVybmFsKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250VGFnZ2VkU2V0dGluZ3MuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjphbmltYXRpb25O
YW1lRm9yVHJhbnNpdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZUF0dHJpYnV0ZXMpOgorICAgICAgICAo
V2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc05hdGl2ZVNhbXBsZXMp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRpbGVDb250cm9sbGVyOjpjcmVhdGVUaWxlTGF5ZXIpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnZhbGlkYXRpb25Qb2xpY3lBc1N0cmluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5jcHA6CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJX
aW46OmxheWVyVHJlZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1Rl
eHR1cmVDb3BpZXJDVjo6aW5pdGlhbGl6ZUNvbnRleHRPYmplY3RzKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Z2VuZXJhdGVIYXNoZWROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRVbm1hbmdsZWRJbmZvTG9nKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmpvaW5QYXRobmFt
ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW06CisgICAgICAg
IChXZWJDb3JlOjp3aWxkY2FyZFJlZ2V4UGF0dGVyblN0cmluZyk6CisgICAgICAgICogcGxhdGZv
cm0vbW9jay9TY3JvbGxBbmltYXRvck1vY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
QW5pbWF0b3JNb2NrOjptb3VzZUVudGVyZWRTY3JvbGxiYXIgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsQW5pbWF0b3JNb2NrOjptb3VzZUV4aXRlZFNjcm9sbGJhciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1vY2s6Om1vdXNlSXNEb3duSW5TY3JvbGxi
YXIgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja0JveC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrQm94OjpwZWVrVHlwZSk6CisgICAgICAgIChXZWJD
b3JlOjpNb2NrVHJhY2tCb3g6Ok1vY2tUcmFja0JveCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9IVFRQUGFyc2Vycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpleHRyYWN0TUlNRVR5cGVG
cm9tTWVkaWFUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Byb3h5U2VydmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnRvU3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL21hYy9Db29raWVKYXJNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpjb29raWVzRm9yU2Vz
c2lvbik6CisgICAgICAgICogcGxhdGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudHMpOgor
ICAgICAgICAqIHBsYXRmb3JtL3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmg6CisgICAgICAg
IChXZWJDb3JlOjpVbmljb2RlMTZCaXRFc2NhcGVTZXF1ZW5jZTo6ZGVjb2RlUnVuKToKKyAgICAg
ICAgKFdlYkNvcmU6OmRlY29kZUVzY2FwZVNlcXVlbmNlcyk6CisgICAgICAgICogcGxhdGZvcm0v
dGV4dC9QbGF0Zm9ybUxvY2FsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbGU6OmNvbnZl
cnRUb0xvY2FsaXplZE51bWJlcik6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbGU6OmNvbnZlcnRG
cm9tTG9jYWxpemVkTnVtYmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsZTo6Zm9ybWF0RGF0
ZVRpbWUpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlZ21lbnRlZFN0cmluZzo6dG9TdHJpbmcgY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRDb2RlY0lDVTo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1Vz
ZXJEZWZpbmVkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb2RlY1VzZXJEZWZpbmVkOjpk
ZWNvZGUpOgorICAgICAgICAqIHBsdWdpbnMvRE9NTWltZVR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NTWltZVR5cGU6OnN1ZmZpeGVzIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6Om5hbWUgY29u
c3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsb2dMYXllckluZm8pOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Omxpc3RNYXJrZXJUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RNYXJrZXI6OnBh
aW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjYXBpdGFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6Om1heFdvcmRGcmFnbWVudFdpZHRo
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpxdW90ZUFuZEVzY2FwZU5vblByaW50YWJsZXMpOgorICAgICAgICAoV2ViQ29yZTo6
bm9kZVBvc2l0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZl
bmNlZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXRoTUxGZW5jZWQ6OnVwZGF0ZUZy
b21FbGVtZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxk
ZXJNYXRoTUwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZUJ1aWxkZXI6Ok1hdGhN
TDo6YXR0YWNoKToKKyAgICAgICAgKiBzdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdMZW5ndGhMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nIGNvbnN0KToK
KyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdOdW1iZXJMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBz
dmcvU1ZHUGF0aFN0cmluZ0J1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFN0
cmluZ0J1aWxkZXI6OnJlc3VsdCk6CisgICAgICAgICogc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRTdHJpbmdGcm9tUGF0aCk6CisgICAgICAgICogc3Zn
L1NWR1BvaW50TGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExpc3RW
YWx1ZXM6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdTdHJpbmdMaXN0
VmFsdWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0cmluZ0xpc3RWYWx1ZXM6OnZhbHVl
QXNTdHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM6OnZhbHVlQXNTdHJp
bmcgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1WYWx1ZTo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAg
ICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UG9pbnQ+Ojp0b1N0cmluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+Ojp0b1N0cmluZyk6CisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpk
dW1wTWFya2VyUmVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpwYXJzZXJNZXRh
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmdldEN1cnJlbnRDdXJzb3JJbmZv
KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6bWVkaWFTZXNzaW9uUmVzdHJpY3Rpb25z
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cGFnZU1lZGlhU3RhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzY3JvbGxTbmFwT2Zmc2V0cyk6CisgICAgICAg
ICogdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TW9ja1BhZ2VPdmVybGF5Q2xpZW50OjpkcmF3UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpNb2Nr
UGFnZU92ZXJsYXlDbGllbnQ6Om1vdXNlRXZlbnQpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2Vy
U2NyaXB0TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdExvYWRlcjo6
c2NyaXB0KToKKyAgICAgICAgKiB4bWwvWE1MRXJyb3JzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlhNTEVycm9yczo6aW5zZXJ0RXJyb3JNZXNzYWdlQmxvY2spOgorICAgICAgICAqIHhtbC9YTUxI
dHRwUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6Z2V0QWxs
UmVzcG9uc2VIZWFkZXJzIGNvbnN0KToKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuaDoK
KyAgICAgICAgKiB4bWwvWFBhdGhGdW5jdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFBh
dGg6OmF0b21pY1N1YnN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6RnVuSWQ6OmV2
YWx1YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoOjpGdW5Db25jYXQ6OmV2YWx1
YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoOjpGdW5UcmFuc2xhdGU6OmV2YWx1
YXRlIGNvbnN0KToKKyAgICAgICAgKiB4bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6c2F2ZVJlc3VsdFRvU3RyaW5nKToKKyAgICAgICAgKiB4bWwvcGFyc2Vy
L0NoYXJhY3RlclJlZmVyZW5jZVBhcnNlcklubGluZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OnVu
Y29uc3VtZUNoYXJhY3RlcnMpOgorCiAyMDE4LTA0LTI1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgTmV0d29ya0xvYWRDaGVja2VyIGZvciBhbGwgc3Vi
cmVzb3VyY2UgbG9hZHMgZXhjZXB0IGZldGNoL1hIUgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50Q29udGFjdENvY29hLm1tIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50Q29udGFjdENvY29hLm1tCmlu
ZGV4IDNiZTYyMTAuLjA5Nzg0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvY29jb2EvUGF5bWVudENvbnRhY3RDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRDb250YWN0Q29jb2EubW0KQEAgLTE1NCw3
ICsxNTQsMTAgQEAgc3RhdGljIFJldGFpblB0cjxQS0NvbnRhY3Q+IGNvbnZlcnQodW5zaWduZWQg
dmVyc2lvbiwgY29uc3QgQXBwbGVQYXlQYXltZW50Q29udGEKICAgICAgICAgfQogCiAgICAgICAg
IC8vIEZJWE1FOiBTdHJpbmdCdWlsZGVyIHNob3VsZCBoYXZhIGEgdG9OU1N0cmluZygpIGZ1bmN0
aW9uIHRvIGF2b2lkIHRoZSBleHRyYSBTdHJpbmcgYWxsb2NhdGlvbi4KLSAgICAgICAgW2FkZHJl
c3Mgc2V0U3RyZWV0OmJ1aWxkZXIudG9TdHJpbmcoKV07CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIFthZGRyZXNzIHNldFN0cmVldDoq
c3RyaW5nXTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKIAogICAgICAgICBp
ZiAoIWNvbnRhY3Quc3ViTG9jYWxpdHkuaXNFbXB0eSgpKQogICAgICAgICAgICAgc2V0U3ViTG9j
YWxpdHkoYWRkcmVzcy5nZXQoKSwgY29udGFjdC5zdWJMb2NhbGl0eSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAKaW5kZXggOGU1
MDY2ZC4uOWIzNjBhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVz
YXBpL0RPTUZpbGVTeXN0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmll
c2FwaS9ET01GaWxlU3lzdGVtLmNwcApAQCAtMjE2LDcgKzIxNiw5IEBAIHN0YXRpYyBTdHJpbmcg
cmVzb2x2ZVJlbGF0aXZlVmlydHVhbFBhdGgoU3RyaW5nVmlldyBiYXNlVmlydHVhbFBhdGgsIFN0
cmluZ1ZpZXcKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJy8nKTsKICAgICAgICAgYnVpbGRlci5h
cHBlbmQoc2VnbWVudCk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiAvLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL2Vu
dHJpZXMtYXBpLyNldmFsdWF0ZS1hLXBhdGgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKaW5kZXggZGNiZjcwMy4uNmNhYWM1YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5j
cHAKQEAgLTM0MCw3ICszNDAsMTAgQEAgc3RhdGljIHZvaWQgbG9nRXJyb3IoY29uc3QgU3RyaW5n
JiB0YXJnZXQsIGNvbnN0IGJvb2wgaXNTZWN1cmUsIGNvbnN0IGJvb2wgaXNNaXgKICAgICAKICAg
ICBtZXNzYWdlLmFwcGVuZCh0YXJnZXQpOwogICAgIG1lc3NhZ2UuYXBwZW5kKCIuXG4iKTsKLSAg
ICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1l
c3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gbWVzc2FnZS50b1N0cmluZygpKQorICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1l
c3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICpzdHJp
bmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogLy8gRklYTUU6IHJlbW92ZSB0
aGlzIGZ1bmN0aW9uIHdoZW4gcmRhcjovL3Byb2JsZW0vMzIxMzc4MjEgaXMgZml4ZWQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwCmluZGV4IDJl
OTM2NDUuLjcyMTI5NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQktleURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQktleURhdGEuY3BwCkBAIC0zMzIsNyArMzMyLDEwIEBAIFN0cmluZyBJREJLZXlEYXRhOjps
b2dnaW5nU3RyaW5nKCkgY29uc3QKICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVy
YWwoIiwgIik7CiAgICAgICAgIH0KICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgfSIp
OwotICAgICAgICByZXN1bHQgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJlc3VsdCA9ICpzdHJp
bmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KICAgICBjYXNlIEtleVR5cGU6OkJpbmFyeTogewpAQCAtMzQyLDcgKzM0NSwxMCBAQCBT
dHJpbmcgSURCS2V5RGF0YTo6bG9nZ2luZ1N0cmluZygpIGNvbnN0CiAgICAgICAgIGF1dG8qIGRh
dGEgPSBXVEY6OmdldDxUaHJlYWRTYWZlRGF0YUJ1ZmZlcj4obV92YWx1ZSkuZGF0YSgpOwogICAg
ICAgICBpZiAoIWRhdGEpIHsKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIobnVsbCkiKTsK
LSAgICAgICAgICAgIHJlc3VsdCA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGlm
IChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICByZXN1
bHQgPSAqc3RyaW5nOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCkBAIC0zNTMsNyArMzU5LDEwIEBAIFN0
cmluZyBJREJLZXlEYXRhOjpsb2dnaW5nU3RyaW5nKCkgY29uc3QKICAgICAgICAgaWYgKGRhdGEt
PnNpemUoKSA+IDgpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgiLi4uIik7CiAKLSAgICAg
ICAgcmVzdWx0ID0gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXN1bHQgPSAqc3RyaW5nOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICBicmVhazsKICAgICB9CiAg
ICAgY2FzZSBLZXlUeXBlOjpTdHJpbmc6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJLZXlQYXRoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQktleVBhdGguY3BwCmluZGV4IDc2ZWJlYjMuLjhiOWZiMTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBhdGguY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBhdGguY3BwCkBAIC0yNDEsNyAr
MjQxLDkgQEAgU3RyaW5nIGxvZ2dpbmdTdHJpbmcoY29uc3QgSURCS2V5UGF0aCYgcGF0aCkKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoc3RyaW5ncy5sYXN0KCkpOwogICAgICAgICBidWlsZGVyLmFw
cGVuZCgiID4iKTsKIAotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9KTsKIAogICAgIHJldHVybiBXVEY6
OnZpc2l0KHZpc2l0b3IsIHBhdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL0luZGV4VmFsdWVTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSW5kZXhWYWx1ZVN0b3JlLmNwcAppbmRleCA2OTgzYzlk
Li44MGQ2YjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvSW5kZXhWYWx1ZVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvSW5kZXhWYWx1ZVN0b3JlLmNwcApAQCAtNDA5LDcgKzQwOSw5IEBAIFN0
cmluZyBJbmRleFZhbHVlU3RvcmU6OmxvZ2dpbmdTdHJpbmcoKSBjb25zdAogICAgICAgICBidWls
ZGVyLmFwcGVuZE51bWJlcihtX3JlY29yZHMuZ2V0KGtleSktPmdldENvdW50KCkpOwogICAgICAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiBlbnRyaWVzIik7CiAgICAgfQotICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxp
dGVJREJDdXJzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L1NRTGl0ZUlEQkN1cnNvci5jcHAKaW5kZXggZjIwZGI4Ny4uYTRjMzBmYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1cnNvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlE
QkN1cnNvci5jcHAKQEAgLTE0MSw3ICsxNDEsOSBAQCBzdGF0aWMgU3RyaW5nIGJ1aWxkSW5kZXhT
dGF0ZW1lbnQoY29uc3QgSURCS2V5UmFuZ2VEYXRhJiBrZXlSYW5nZSwgSW5kZXhlZERCOjpDdQog
CiAgICAgYnVpbGRlci5hcHBlbmQoJzsnKTsKIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIGJ1aWxkT2Jq
ZWN0U3RvcmVTdGF0ZW1lbnQoY29uc3QgSURCS2V5UmFuZ2VEYXRhJiBrZXlSYW5nZSwgSW5kZXhl
ZERCOjpDdXJzb3JEaXJlY3Rpb24gY3Vyc29yRGlyZWN0aW9uKQpAQCAtMTY5LDcgKzE3MSw5IEBA
IHN0YXRpYyBTdHJpbmcgYnVpbGRPYmplY3RTdG9yZVN0YXRlbWVudChjb25zdCBJREJLZXlSYW5n
ZURhdGEmIGtleVJhbmdlLCBJbmRleGVkCiAKICAgICBidWlsZGVyLmFwcGVuZCgnOycpOwogCi0g
ICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIGJvb2wgU1FMaXRlSURCQ3Vyc29yOjplc3RhYmxpc2hTdGF0ZW1lbnQoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5m
by5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJh
c2VJbmZvLmNwcAppbmRleCBlNWRmMTVjLi43NjkzNGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VJbmZvLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VJbmZvLmNw
cApAQCAtMTY5LDcgKzE2OSw5IEBAIFN0cmluZyBJREJEYXRhYmFzZUluZm86OmxvZ2dpbmdTdHJp
bmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKICAgICB9CiAKLSAgICBy
ZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFy
ZWQvSURCT2JqZWN0U3RvcmVJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8uY3BwCmluZGV4IGIwMDc1ZmUuLjhkOGZhZDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJP
YmplY3RTdG9yZUluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8uY3BwCkBAIC0xNDgsNyArMTQ4LDkgQEAgU3RyaW5n
IElEQk9iamVjdFN0b3JlSW5mbzo6bG9nZ2luZ1N0cmluZyhpbnQgaW5kZW50KSBjb25zdAogICAg
ICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIElEQk9iamVj
dFN0b3JlSW5mbzo6Y29uZGVuc2VkTG9nZ2luZ1N0cmluZygpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lv
bk1hbmFnZXIuY3BwCmluZGV4IDQyMDlmZmEuLjk2ZmViYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1h
bmFnZXIuY3BwCkBAIC04OSw3ICs4OSw5IEBAIHN0YXRpYyBTdHJpbmcgbWVkaWFQcm9kdWNlclN0
YXRlU3RyaW5nKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBmbGFncykKICAgICBlbHNl
CiAgICAgICAgIHN0cmluZy5yZXNpemUoc3RyaW5nLmxlbmd0aCgpIC0gMik7CiAKLSAgICByZXR1
cm4gc3RyaW5nLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyID0gc3RyaW5nLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyOworICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApAQCAt
MzgxLDcgKzM4Myw5IEBAIFN0cmluZyBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjp0b1N0cmluZyhD
b25maWd1cmF0aW9uVGFza3MgdGFza3MpCiAgICAgZWxzZQogICAgICAgICBzdHJpbmcucmVzaXpl
KHN0cmluZy5sZW5ndGgoKSAtIDIpOwogICAgIAotICAgIHJldHVybiBzdHJpbmcudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHIgPSBzdHJpbmcudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHI7CisgICAgQ1JBU0goKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAK
aW5kZXggZGM1MWJiNS4uZGJlY2Q1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcApAQCAtNDAz
LDcgKzQwMyw5IEBAIHN0YXRpYyBTdHJpbmcgZmlsdGVySUNFQ2FuZGlkYXRlKFN0cmluZyYmIHNk
cCkKICAgICAgICAgICAgIGZpbHRlcmVkU0RQLmFwcGVuZCgnICcpOwogICAgICAgICBmaWx0ZXJl
ZFNEUC5hcHBlbmQoaXRlbSk7CiAgICAgfSk7Ci0gICAgcmV0dXJuIGZpbHRlcmVkU0RQLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gZmlsdGVyZWRTRFAudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIFBlZXJDb25u
ZWN0aW9uQmFja2VuZDo6ZmlsdGVyU0RQKFN0cmluZyYmIHNkcCkgY29uc3QKQEAgLTQyMSw3ICs0
MjMsOSBAQCBTdHJpbmcgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpmaWx0ZXJTRFAoU3RyaW5nJiYg
c2RwKSBjb25zdAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBmaWx0ZXJlZFNEUC5hcHBl
bmQoJ1xuJyk7CiAgICAgfSk7Ci0gICAgcmV0dXJuIGZpbHRlcmVkU0RQLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gZmlsdGVyZWRTRFAudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tl
bmQ6Om5ld0lDRUNhbmRpZGF0ZShTdHJpbmcmJiBzZHAsIFN0cmluZyYmIG1pZCwgdW5zaWduZWQg
c2hvcnQgc2RwTUxpbmVJbmRleCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
cGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAKaW5kZXggYzkxNzFkYy4u
NDI3ZjRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1
YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVn
aW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAKQEAgLTMzMyw3ICszMzMsOSBAQCBTdHJp
bmcgWW91VHViZVBsdWdpblJlcGxhY2VtZW50Ojp5b3VUdWJlVVJMRnJvbUFic29sdXRlVVJMKGNv
bnN0IFVSTCYgc3JjVVJMLCBjbwogICAgICAgICBmaW5hbFVSTC5hcHBlbmQoJz8nKTsKICAgICAg
ICAgZmluYWxVUkwuYXBwZW5kKHF1ZXJ5KTsKICAgICB9Ci0gICAgcmV0dXJuIGZpbmFsVVJMLnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gZmluYWxVUkwudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KICAgICAKIGJvb2wgWW91VHVi
ZVBsdWdpblJlcGxhY2VtZW50OjpzdXBwb3J0c1VSTChjb25zdCBVUkwmIHVybCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNw
cAppbmRleCA4ZmRhNjJhLi45OGYzMDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCkBAIC0zMjAsNyArMzIwLDkg
QEAgc3RhdGljIFN0cmluZyBnZW5lcmF0ZURhdGFiYXNlRmlsZU5hbWUoKQogICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kKGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSk7CiAgICAgc3RyaW5nQnVp
bGRlci5hcHBlbmRMaXRlcmFsKCIuZGIiKTsKIAotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgRGF0
YWJhc2VUcmFja2VyOjpmdWxsUGF0aEZvckRhdGFiYXNlTm9Mb2NrKGNvbnN0IFNlY3VyaXR5T3Jp
Z2luRGF0YSYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOb3RFeGlz
dHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3Bw
CmluZGV4IDAyNDc3YjkuLmVhYjI1MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCkBAIC0xMDUsNyArMTA1LDkgQEAgc3RhdGljIFN0cmlu
ZyBlbmNvZGVQcm90b2NvbFN0cmluZyhjb25zdCBTdHJpbmcmIHByb3RvY29sKQogICAgICAgICBl
bHNlCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChwcm90b2NvbFtpXSk7CiAgICAgfQotICAg
IHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiBzdGF0aWMgU3RyaW5nIGpvaW5TdHJpbmdzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzdHJpbmdz
LCBjb25zdCBjaGFyKiBzZXBhcmF0b3IpCkBAIC0xMTYsNyArMTE4LDkgQEAgc3RhdGljIFN0cmlu
ZyBqb2luU3RyaW5ncyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3RyaW5ncywgY29uc3QgY2hhciog
c2VwYXJhdG9yKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoc2VwYXJhdG9yKTsKICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoc3RyaW5nc1tpXSk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgdW5zaWdu
ZWQgc2F0dXJhdGVBZGQodW5zaWduZWQgYSwgdW5zaWduZWQgYikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNp
b25EaXNwYXRjaGVyLmNwcAppbmRleCBmY2M5ZGMzLi42YzQwYzQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4
dGVuc2lvbkRpc3BhdGNoZXIuY3BwCkBAIC02OCw3ICs2OCw5IEBAIGNvbnN0IFN0cmluZyBXZWJT
b2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyOjpjcmVhdGVIZWFkZXJWYWx1ZSgpIGNvbnN0CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
bV9wcm9jZXNzb3JzW2ldLT5oYW5kc2hha2VTdHJpbmcoKSk7CiAgICAgfQotICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIFdl
YlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OmFwcGVuZEFjY2VwdGVkRXh0ZW5zaW9uKGNvbnN0
IFN0cmluZyYgZXh0ZW5zaW9uVG9rZW4sIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBleHRlbnNp
b25QYXJhbWV0ZXJzKQpAQCAtMTM5LDcgKzE0MSw5IEBAIFN0cmluZyBXZWJTb2NrZXRFeHRlbnNp
b25EaXNwYXRjaGVyOjphY2NlcHRlZEV4dGVuc2lvbnMoKSBjb25zdAogewogICAgIGlmIChtX2Fj
Y2VwdGVkRXh0ZW5zaW9uc0J1aWxkZXIuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gU3RyaW5n
KCk7Ci0gICAgcmV0dXJuIG1fYWNjZXB0ZWRFeHRlbnNpb25zQnVpbGRlci50b1N0cmluZ1ByZXNl
cnZlQ2FwYWNpdHkoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtX2FjY2VwdGVkRXh0ZW5zaW9u
c0J1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRj
aGVyOjpmYWlsdXJlUmVhc29uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAKaW5kZXggNTQ1NWNkMS4u
MDgzYTkwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dl
YlNvY2tldEhhbmRzaGFrZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAKQEAgLTcyLDEwICs3MiwxMyBAQCBzdGF0aWMgU3Ry
aW5nIHJlc291cmNlTmFtZShjb25zdCBVUkwmIHVybCkKICAgICAgICAgbmFtZS5hcHBlbmQoJz8n
KTsKICAgICAgICAgbmFtZS5hcHBlbmQodXJsLnF1ZXJ5KCkpOwogICAgIH0KLSAgICBTdHJpbmcg
cmVzdWx0ID0gbmFtZS50b1N0cmluZygpOwotICAgIEFTU0VSVCghcmVzdWx0LmlzRW1wdHkoKSk7
Ci0gICAgQVNTRVJUKCFyZXN1bHQuY29udGFpbnMoJyAnKSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBuYW1lLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgU3RyaW5n
IHJlc3VsdCA9ICpzdHJpbmc7CisgICAgICAgIEFTU0VSVCghcmVzdWx0LmlzRW1wdHkoKSk7Cisg
ICAgICAgIEFTU0VSVCghcmVzdWx0LmNvbnRhaW5zKCcgJykpOworICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIGhvc3ROYW1lKGNv
bnN0IFVSTCYgdXJsLCBib29sIHNlY3VyZSkKQEAgLTg3LDcgKzkwLDkgQEAgc3RhdGljIFN0cmlu
ZyBob3N0TmFtZShjb25zdCBVUkwmIHVybCwgYm9vbCBzZWN1cmUpCiAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCc6Jyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHVybC5wb3J0KCkudmFs
dWUoKSk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgY29uc3Qgc2l6ZV90IG1heElucHV0U2FtcGxlU2l6
ZSA9IDEyODsKQEAgLTE3Niw3ICsxODEsOSBAQCBTdHJpbmcgV2ViU29ja2V0SGFuZHNoYWtlOjpj
bGllbnRMb2NhdGlvbigpIGNvbnN0CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI6Ly8iKTsK
ICAgICBidWlsZGVyLmFwcGVuZChob3N0TmFtZShtX3VybCwgbV9zZWN1cmUpKTsKICAgICBidWls
ZGVyLmFwcGVuZChyZXNvdXJjZU5hbWUobV91cmwpKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogQ1N0cmluZyBXZWJTb2NrZXRI
YW5kc2hha2U6OmNsaWVudEhhbmRzaGFrZU1lc3NhZ2UoKSBjb25zdApAQCAtMjI2LDcgKzIzMyw5
IEBAIENTdHJpbmcgV2ViU29ja2V0SGFuZHNoYWtlOjpjbGllbnRIYW5kc2hha2VNZXNzYWdlKCkg
Y29uc3QKIAogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXHJcbiIpOwogCi0gICAgcmV0dXJu
IGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gc3RyaW5nLT51dGY4KCk7CisgICAgQ1JBU0go
KTsKIH0KIAogUmVzb3VyY2VSZXF1ZXN0IFdlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZW50SGFuZHNo
YWtlUmVxdWVzdCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IGRiODU3NWUuLmM0YTI1MjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuY3BwCkBAIC0xNzEzLDExICsxNzEzLDEzIEBAIHN0YXRpYyBib29sIHNo
b3VsZFVzZUFjY2Vzc2liaWxpdHlPYmplY3RJbm5lclRleHQoQWNjZXNzaWJpbGl0eU9iamVjdCog
b2JqLCBBY2NlCiAKIHN0YXRpYyBib29sIHNob3VsZEFkZFNwYWNlQmVmb3JlQXBwZW5kaW5nTmV4
dEVsZW1lbnQoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgY29uc3QgU3RyaW5nJiBjaGlsZFRleHQp
CiB7CisgICAgaWYgKGJ1aWxkZXIuZmFpbGVkKCkpCisgICAgICAgIENSQVNIKCk7CisKICAgICBp
ZiAoIWJ1aWxkZXIubGVuZ3RoKCkgfHwgIWNoaWxkVGV4dC5sZW5ndGgoKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwotCiAgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBhZGQgYW4gYWRkaXRpb25hbCBz
cGFjZSBiZWZvcmUgb3IgYWZ0ZXIgYSBsaW5lIGJyZWFrLgotICAgIHJldHVybiAhKGlzSFRNTExp
bmVCcmVhayhjaGlsZFRleHRbMF0pIHx8IGlzSFRNTExpbmVCcmVhayhidWlsZGVyW2J1aWxkZXIu
bGVuZ3RoKCkgLSAxXSkpOworICAgIHJldHVybiAhKGlzSFRNTExpbmVCcmVhayhjaGlsZFRleHRb
MF0pIHx8IGlzSFRNTExpbmVCcmVhaygqYnVpbGRlcltidWlsZGVyLmxlbmd0aCgpIC0gMV0pKTsK
IH0KICAgICAKIHN0YXRpYyB2b2lkIGFwcGVuZE5hbWVUb1N0cmluZ0J1aWxkZXIoU3RyaW5nQnVp
bGRlciYgYnVpbGRlciwgY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtMTc2OSw3ICsxNzcxLDkgQEAg
U3RyaW5nIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50KEFjY2Vzc2li
aWxpdHlUZXh0VW5kZXJFbGVtZW50TW8KICAgICAgICAgICAgIGFwcGVuZE5hbWVUb1N0cmluZ0J1
aWxkZXIoYnVpbGRlciwgY2hpbGRUZXh0KTsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpLnN0cmlwV2hpdGVTcGFjZSgpLnNpbXBsaWZ5V2hpdGVTcGFjZShpc0hUTUxTcGFj
ZUJ1dE5vdExpbmVCcmVhayk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gc3RyaW5nLT5zdHJpcFdoaXRlU3BhY2UoKS5zaW1wbGlmeVdo
aXRlU3BhY2UoaXNIVE1MU3BhY2VCdXROb3RMaW5lQnJlYWspOworICAgIENSQVNIKCk7CiB9CiAK
IFN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dGl0bGUoKSBjb25zdApAQCAtMTk4NSw3
ICsxOTg5LDkgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjphY2Nlc3NpYmlsaXR5
RGVzY3JpcHRpb25Gb3JDaGlsZHJlbigpIGNvbnN0CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBy
ZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAog
U3RyaW5nIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjphY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25G
b3JFbGVtZW50cyhWZWN0b3I8RWxlbWVudCo+ICZlbGVtZW50cykgY29uc3QKQEAgLTE5OTQsNyAr
MjAwMCw5IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWNjZXNzaWJpbGl0eURl
c2NyaXB0aW9uRm9yRWxlbWVudHMoVmVjdG9yPEVsZW1lCiAgICAgdW5zaWduZWQgc2l6ZSA9IGVs
ZW1lbnRzLnNpemUoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQog
ICAgICAgICBhcHBlbmROYW1lVG9TdHJpbmdCdWlsZGVyKGJ1aWxkZXIsIGFjY2Vzc2libGVOYW1l
Rm9yTm9kZShlbGVtZW50c1tpXSwgbm9kZSgpKSk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6YXJpYURlc2NyaWJlZEJ5QXR0cmlidXRlKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4
IDE5MjgxNzIuLjdjOGQ5OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtMTM4OCw4ICsxMzg4LDEwIEBAIFN0cmlu
ZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdHJpbmdGb3JSYW5nZShSZWZQdHI8UmFuZ2U+IHJhbmdl
KSBjb25zdAogICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG9iamVjdFJlcGxhY2VtZW50
Q2hhcmFjdGVyKTsKICAgICAgICAgfQogICAgIH0KLSAgICAKLSAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpOworCisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQWNjZXNz
aWJpbGl0eU9iamVjdDo6c3RyaW5nRm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJs
ZVBvc2l0aW9uUmFuZ2UmIHZpc2libGVQb3NpdGlvblJhbmdlKQpAQCAtMTQxNSw3ICsxNDE3LDkg
QEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN0cmluZ0ZvclZpc2libGVQb3NpdGlvblJh
bmdlKGNvbnN0IFZpc2libGVQb3NpdGlvblIKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVy
biBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBpbnQg
QWNjZXNzaWJpbGl0eU9iamVjdDo6bGVuZ3RoRm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29uc3Qg
VmlzaWJsZVBvc2l0aW9uUmFuZ2UmIHZpc2libGVQb3NpdGlvblJhbmdlKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCBhMTAyZDM2Li45MzJkMTFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQpAQCAtMjQwOSw3ICsyNDA5
LDkgQEAgLSAoTlNTdHJpbmcgKil2YWx1ZURlc2NyaXB0aW9uRm9yTWV0ZXIKICAgICAgICAgaWYg
KGJ1aWxkZXIubGVuZ3RoKCkpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwg
Iik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGdhdWdlUmVnaW9uVmFsdWUpOwotICAgICAgICBy
ZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JB
U0goKTsKICAgICB9CiAjZW5kaWYKICAgICByZXR1cm4gdmFsdWVEZXNjcmlwdGlvbjsKQEAgLTM4
NzMsOCArMzg3NSwxMSBAQCBzdGF0aWMgdm9pZCBmb3JtYXRGb3JEZWJ1Z2dlcihjb25zdCBWaXNp
YmxlUG9zaXRpb25SYW5nZSYgcmFuZ2UsIGNoYXIqIGJ1ZmZlciwgdQogICAgIHJlc3VsdC5hcHBl
bmRMaXRlcmFsKCIgdG8gIik7CiAgICAgcmFuZ2UuZW5kLmZvcm1hdEZvckRlYnVnZ2VyKGZvcm1h
dCwgRm9ybWF0QnVmZmVyU2l6ZSk7CiAgICAgcmVzdWx0LmFwcGVuZChmb3JtYXQpOwotICAgIAot
ICAgIHN0cmxjcHkoYnVmZmVyLCByZXN1bHQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBsZW5n
dGgpOworCisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAg
IHN0cmxjcHkoYnVmZmVyLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCksIGxlbmd0aCk7CisgICAgZWxz
ZQorICAgICAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFN0cmluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01Db252ZXJ0U3RyaW5ncy5jcHAKaW5kZXggN2QyZGUxOC4uMWUwNGEx
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0U3Ry
aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0U3Ry
aW5ncy5jcHAKQEAgLTkxLDcgKzkxLDkgQEAgc3RhdGljIGlubGluZSBTdHJpbmcgc3RyaW5nVG9V
U1ZTdHJpbmcoU3RyaW5nJiYgc3RyaW5nKQogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXN1
bHQuYXBwZW5kKGNvZGVQb2ludCk7CiAgICAgfQotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIGlkZW50aWZpZXJUb1VTVlN0
cmluZyhFeGVjU3RhdGUmLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcApp
bmRleCA4OTVhMzAwLi4wN2ZiNzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcApAQCAtMjExLDcgKzIxMSw5IEBAIEpT
Qzo6RW5jb2RlZEpTVmFsdWUgdGhyb3dBcmd1bWVudE11c3RCZUVudW1FcnJvcihKU0M6OkV4ZWNT
dGF0ZSYgc3RhdGUsIEpTQzo6VGhyCiAgICAgYXBwZW5kQXJndW1lbnRNdXN0QmUoYnVpbGRlciwg
YXJndW1lbnRJbmRleCwgYXJndW1lbnROYW1lLCBmdW5jdGlvbkludGVyZmFjZU5hbWUsIGZ1bmN0
aW9uTmFtZSk7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJvbmUgb2Y6ICIpOwogICAgIGJ1
aWxkZXIuYXBwZW5kKGV4cGVjdGVkVmFsdWVzKTsKLSAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cigmc3RhdGUsIHNjb3BlLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
JnN0YXRlLCBzY29wZSwgKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogSlNDOjpFbmNvZGVk
SlNWYWx1ZSB0aHJvd0FyZ3VtZW50TXVzdEJlRnVuY3Rpb25FcnJvcihKU0M6OkV4ZWNTdGF0ZSYg
c3RhdGUsIEpTQzo6VGhyb3dTY29wZSYgc2NvcGUsIHVuc2lnbmVkIGFyZ3VtZW50SW5kZXgsIGNv
bnN0IGNoYXIqIGFyZ3VtZW50TmFtZSwgY29uc3QgY2hhciogaW50ZXJmYWNlTmFtZSwgY29uc3Qg
Y2hhciogZnVuY3Rpb25OYW1lKQpAQCAtMjE5LDcgKzIyMSw5IEBAIEpTQzo6RW5jb2RlZEpTVmFs
dWUgdGhyb3dBcmd1bWVudE11c3RCZUZ1bmN0aW9uRXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRl
LCBKU0M6CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGFwcGVuZEFyZ3VtZW50TXVz
dEJlKGJ1aWxkZXIsIGFyZ3VtZW50SW5kZXgsIGFyZ3VtZW50TmFtZSwgaW50ZXJmYWNlTmFtZSwg
ZnVuY3Rpb25OYW1lKTsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoImEgZnVuY3Rpb24iKTsK
LSAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcigmc3RhdGUsIHNjb3BlLCBidWlsZGVyLnRvU3Ry
aW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoJnN0YXRlLCBzY29wZSwgKnN0cmluZyk7CisgICAg
Q1JBU0goKTsKIH0KIAogSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd0FyZ3VtZW50VHlwZUVycm9y
KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpUaHJvd1Njb3BlJiBzY29wZSwgdW5zaWduZWQg
YXJndW1lbnRJbmRleCwgY29uc3QgY2hhciogYXJndW1lbnROYW1lLCBjb25zdCBjaGFyKiBmdW5j
dGlvbkludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgY29uc3QgY2hhciog
ZXhwZWN0ZWRUeXBlKQpAQCAtMjI4LDcgKzIzMiw5IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgdGhy
b3dBcmd1bWVudFR5cGVFcnJvcihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6VGhyb3dTY29w
CiAgICAgYXBwZW5kQXJndW1lbnRNdXN0QmUoYnVpbGRlciwgYXJndW1lbnRJbmRleCwgYXJndW1l
bnROYW1lLCBmdW5jdGlvbkludGVyZmFjZU5hbWUsIGZ1bmN0aW9uTmFtZSk7CiAgICAgYnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCJhbiBpbnN0YW5jZSBvZiAiKTsKICAgICBidWlsZGVyLmFwcGVuZChl
eHBlY3RlZFR5cGUpOwotICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUs
IGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcigmc3RhdGUsIHNjb3BlLCAq
c3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIHRocm93QXR0cmlidXRlVHlwZUVycm9y
KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpUaHJvd1Njb3BlJiBzY29wZSwgY29uc3QgY2hh
ciogaW50ZXJmYWNlTmFtZSwgY29uc3QgY2hhciogYXR0cmlidXRlTmFtZSwgY29uc3QgY2hhciog
ZXhwZWN0ZWRUeXBlKQpAQCAtMjQ1LDcgKzI1MSw5IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgdGhy
b3dSZXF1aXJlZE1lbWJlclR5cGVFcnJvcihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6VGhy
CiAgICAgYnVpbGRlci5hcHBlbmQobWVtYmVyTmFtZSk7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKCIgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgIik7CiAgICAgYnVp
bGRlci5hcHBlbmQoZXhwZWN0ZWRUeXBlKTsKLSAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcigm
c3RhdGUsIHNjb3BlLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoJnN0
YXRlLCBzY29wZSwgKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogSlNDOjpFbmNvZGVkSlNW
YWx1ZSB0aHJvd0NvbnN0cnVjdG9yU2NyaXB0RXhlY3V0aW9uQ29udGV4dFVuYXZhaWxhYmxlRXJy
b3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OlRocm93U2NvcGUmIHNjb3BlLCBjb25zdCBj
aGFyKiBpbnRlcmZhY2VOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4
dGVuc2lvbnMvQ29tYmluZWRVUkxGaWx0ZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRl
eHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5jcHAKaW5kZXggNzU1OGIyMi4uMjlkZTUwOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29tYmluZWRVUkxG
aWx0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db21iaW5l
ZFVSTEZpbHRlcnMuY3BwCkBAIC0xMDcsNyArMTA3LDkgQEAgc3RhdGljIFN0cmluZyBwcmVmaXhU
cmVlVmVydGV4VG9TdHJpbmcoY29uc3QgUHJlZml4VHJlZVZlcnRleCYgdmVydGV4LCBjb25zdCBI
YXMKICAgICAgICAgfQogICAgIH0KICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3Rh
dGljIHZvaWQgcmVjdXJzaXZlUHJpbnQoY29uc3QgUHJlZml4VHJlZVZlcnRleCYgdmVydGV4LCBj
b25zdCBIYXNoTWFwPGNvbnN0IFByZWZpeFRyZWVWZXJ0ZXgqLCBBY3Rpb25MaXN0PiYgYWN0aW9u
cywgdW5zaWduZWQgZGVwdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRl
bnNpb25zL0NvbnRlbnRFeHRlbnNpb24uY3BwCmluZGV4IDYxMGUxYjguLjhlNTBmZjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNp
b24uY3BwCkBAIC0xMTAsOCArMTEwLDExIEBAIHZvaWQgQ29udGVudEV4dGVuc2lvbjo6Y29tcGls
ZUdsb2JhbERpc3BsYXlOb25lU3R5bGVTaGVldCgpCiAKICAgICBtX2dsb2JhbERpc3BsYXlOb25l
U3R5bGVTaGVldCA9IFN0eWxlU2hlZXRDb250ZW50czo6Y3JlYXRlKCk7CiAgICAgbV9nbG9iYWxE
aXNwbGF5Tm9uZVN0eWxlU2hlZXQtPnNldElzVXNlclN0eWxlU2hlZXQodHJ1ZSk7Ci0gICAgaWYg
KCFtX2dsb2JhbERpc3BsYXlOb25lU3R5bGVTaGVldC0+cGFyc2VTdHJpbmcoY3NzLnRvU3RyaW5n
KCkpKQotICAgICAgICBtX2dsb2JhbERpc3BsYXlOb25lU3R5bGVTaGVldCA9IG51bGxwdHI7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gY3NzLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgaWYgKCFtX2ds
b2JhbERpc3BsYXlOb25lU3R5bGVTaGVldC0+cGFyc2VTdHJpbmcoKnN0cmluZykpCisgICAgICAg
ICAgICBtX2dsb2JhbERpc3BsYXlOb25lU3R5bGVTaGVldCA9IG51bGxwdHI7CisgICAgfSBlbHNl
CisgICAgICAgIENSQVNIKCk7CiAKICAgICAvLyBUaGVzZSBhY3Rpb25zIGRvbid0IG5lZWQgdG8g
YmUgYXBwbGllZCBpbmRpdmlkdWFsbHkgYW55IG1vcmUuIFRoZXkgd2lsbCBhbGwgYmUgYXBwbGll
ZCB0byBldmVyeSBwYWdlIGFzIGEgcHJlY29tcGlsZWQgc3R5bGUgc2hlZXQuCiAgICAgbV91bml2
ZXJzYWxBY3Rpb25zV2l0aG91dENvbmRpdGlvbnMucmVtb3ZlQWxsTWF0Y2hpbmcoaW5HbG9iYWxE
aXNwbGF5Tm9uZVN0eWxlU2hlZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVu
dGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHAKaW5kZXggNWUw
MzVhNi4uNWMzN2VmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lv
bnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250
ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwCkBAIC04MCw3ICs4MCwx
MCBAQCBzdGF0aWMgdm9pZCByZXNvbHZlUGVuZGluZ0Rpc3BsYXlOb25lQWN0aW9ucyhWZWN0b3I8
U2VyaWFsaXplZEFjdGlvbkJ5dGU+JiBhY3RpbwogICAgIGZvciAoYXV0byYgcGVuZGluZ0Rpc3Bs
YXlOb25lQWN0aW9ucyA6IG1hcC52YWx1ZXMoKSkgewogICAgICAgICB1aW50MzJfdCBhY3Rpb25M
b2NhdGlvbiA9IGFjdGlvbnMuc2l6ZSgpOwogICAgICAgICBhY3Rpb25zLmFwcGVuZChzdGF0aWNf
Y2FzdDxTZXJpYWxpemVkQWN0aW9uQnl0ZT4oQWN0aW9uVHlwZTo6Q1NTRGlzcGxheU5vbmVTZWxl
Y3RvcikpOwotICAgICAgICBzZXJpYWxpemVTdHJpbmcoYWN0aW9ucywgcGVuZGluZ0Rpc3BsYXlO
b25lQWN0aW9ucy5jb21iaW5lZFNlbGVjdG9ycy50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gcGVuZGluZ0Rpc3BsYXlOb25lQWN0aW9ucy5jb21iaW5lZFNlbGVjdG9ycy50
b1N0cmluZygpKQorICAgICAgICAgICAgc2VyaWFsaXplU3RyaW5nKGFjdGlvbnMsICpzdHJpbmcp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICBmb3IgKHVpbnQz
Ml90IGNsaWVudExvY2F0aW9uIDogcGVuZGluZ0Rpc3BsYXlOb25lQWN0aW9ucy5jbGllbnRMb2Nh
dGlvbnMpCiAgICAgICAgICAgICBhY3Rpb25Mb2NhdGlvbnNbY2xpZW50TG9jYXRpb25dID0gYWN0
aW9uTG9jYXRpb247CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4
dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblN0eWxlU2hlZXQuY3BwCmluZGV4IGUy
NGEzNjYuLmRlM2U4NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb25TdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uU3R5bGVTaGVldC5jcHAKQEAgLTYwLDcg
KzYwLDEwIEBAIGJvb2wgQ29udGVudEV4dGVuc2lvblN0eWxlU2hlZXQ6OmFkZERpc3BsYXlOb25l
U2VsZWN0b3IoY29uc3QgU3RyaW5nJiBzZWxlY3RvciwKICAgICBjc3MuYXBwZW5kKCd7Jyk7CiAg
ICAgY3NzLmFwcGVuZChDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQ6OmRpc3BsYXlOb25lQ1NTUnVs
ZSgpKTsKICAgICBjc3MuYXBwZW5kKCd9Jyk7Ci0gICAgbV9zdHlsZVNoZWV0LT5jb250ZW50cygp
LnBhcnNlU3RyaW5nKGNzcy50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBjc3Mu
dG9TdHJpbmcoKSkKKyAgICAgICAgbV9zdHlsZVNoZWV0LT5jb250ZW50cygpLnBhcnNlU3RyaW5n
KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVGVybS5o
IGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVGVybS5oCmluZGV4IDBkNTE4MzMu
LjZmMzE5NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1Rl
cm0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9UZXJtLmgKQEAgLTI0
Niw3ICsyNDYsOSBAQCBpbmxpbmUgU3RyaW5nIFRlcm06OnRvU3RyaW5nKCkgY29uc3QKICAgICAg
ICAgfQogICAgICAgICBidWlsZGVyLmFwcGVuZCgnXScpOwogICAgICAgICBidWlsZGVyLmFwcGVu
ZChxdWFudGlmaWVyVG9TdHJpbmcobV9xdWFudGlmaWVyKSk7Ci0gICAgICAgIHJldHVybiBidWls
ZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAg
IH0KICAgICBjYXNlIFRlcm1UeXBlOjpHcm91cDogewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1
aWxkZXI7CkBAIC0yNTUsNyArMjU3LDkgQEAgaW5saW5lIFN0cmluZyBUZXJtOjp0b1N0cmluZygp
IGNvbnN0CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCh0ZXJtLnRvU3RyaW5nKCkpOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZCgnKScpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChxdWFudGlm
aWVyVG9TdHJpbmcobV9xdWFudGlmaWVyKSk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3Ry
aW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICB9
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNj
cm9sbFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NBbmltYXRpb25UcmlnZ2VyU2Ny
b2xsVmFsdWUuY3BwCmluZGV4IGExYTU5N2IuLjJmMjVjOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuY3BwCkBAIC00Myw3
ICs0Myw5IEBAIFN0cmluZyBDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWU6OmN1c3RvbUNT
U1RleHQoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKG1fZW5kVmFsdWUtPmNzc1RleHQo
KSk7CiAgICAgfQogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4gcmVzdWx0LnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTQW5pbWF0aW9u
VHJpZ2dlclNjcm9sbFZhbHVlOjplcXVhbHMoY29uc3QgQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9s
bFZhbHVlJiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NC
YXNpY1NoYXBlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQmFzaWNTaGFwZXMuY3BwCmlu
ZGV4IDI0ZjIzMzQuLjE5MmEwNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NC
YXNpY1NoYXBlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmNw
cApAQCAtMTA3LDcgKzEwNyw5IEBAIHN0YXRpYyBTdHJpbmcgYnVpbGRDaXJjbGVTdHJpbmcoY29u
c3QgU3RyaW5nJiByYWRpdXMsIGNvbnN0IFN0cmluZyYgY2VudGVyWCwgY29uCiAgICAgICAgIHJl
c3VsdC5hcHBlbmQoY2VudGVyWSk7CiAgICAgfQogICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCIp
Iik7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogCiBTdHJpbmcgQ1NTQmFzaWNTaGFwZUNpcmNsZTo6Y3NzVGV4dCgpIGNvbnN0CkBAIC0x
NjQsNyArMTY2LDkgQEAgc3RhdGljIFN0cmluZyBidWlsZEVsbGlwc2VTdHJpbmcoY29uc3QgU3Ry
aW5nJiByYWRpdXNYLCBjb25zdCBTdHJpbmcmIHJhZGl1c1ksIGMKICAgICAgICAgcmVzdWx0LmFw
cGVuZChjZW50ZXJZKTsKICAgICB9CiAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIikiKTsKLSAg
ICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IFN0cmluZyBDU1NCYXNpY1NoYXBlRWxsaXBzZTo6Y3NzVGV4dCgpIGNvbnN0CkBAIC0yMjQsNyAr
MjI4LDkgQEAgc3RhdGljIFN0cmluZyBidWlsZFBhdGhTdHJpbmcoY29uc3QgV2luZFJ1bGUmIHdp
bmRSdWxlLCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnMKICAgICAgICAgcmVzdWx0LmFwcGVuZChi
b3gpOwogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIENTU0Jhc2ljU2hhcGVQYXRoOjpjc3NUZXh0KCkgY29u
c3QKQEAgLTI4MCw3ICsyODYsOSBAQCBzdGF0aWMgU3RyaW5nIGJ1aWxkUG9seWdvblN0cmluZyhj
b25zdCBXaW5kUnVsZSYgd2luZFJ1bGUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JgogCiAgICAgcmVz
dWx0LmFwcGVuZCgnKScpOwogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQ1NTQmFzaWNTaGFwZVBvbHlnb246OmNzc1Rl
eHQoKSBjb25zdApAQCAtMzc3LDcgKzM4NSw5IEBAIHN0YXRpYyBTdHJpbmcgYnVpbGRJbnNldFN0
cmluZyhjb25zdCBTdHJpbmcmIHRvcCwgY29uc3QgU3RyaW5nJiByaWdodCwgY29uc3QgU3RyCiAg
ICAgICAgIH0KICAgICB9CiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwotICAgIHJldHVybiByZXN1
bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIGlubGlu
ZSB2b2lkIHVwZGF0ZUNvcm5lclJhZGl1c1dpZHRoQW5kSGVpZ2h0KENTU1ByaW1pdGl2ZVZhbHVl
KiBjb3JuZXIsIFN0cmluZyYgd2lkdGgsIFN0cmluZyYgaGVpZ2h0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwCmluZGV4IGI3NTgzMDEuLmI5MWMwZjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5jcHAKQEAgLTE2Miw3ICsxNjIs
OSBAQCBzdGF0aWMgU3RyaW5nIGJ1aWxkQ3NzVGV4dChjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24p
CiAgICAgcmVzdWx0LmFwcGVuZChleHByZXNzaW9uKTsKICAgICBpZiAoZXhwcmVzc2lvbkhhc1Np
bmdsZVRlcm0pCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4gcmVzdWx0
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBDU1NDYWxj
VmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdApAQCAtNTYzLDcgKzU2NSw5IEBAIHByaXZhdGU6
CiAgICAgICAgIH0KICAgICAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwogCi0gICAgICAgIHJldHVy
biByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRv
U3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsK
ICAgICB9CiAKICAgICBTdHJpbmcgY3VzdG9tQ1NTVGV4dCgpIGNvbnN0IGZpbmFsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4
IGVlYWU0MjYuLjFhNDRkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0xNjkzLDcgKzE2OTMsOSBAQCBTdHJpbmcgQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpjc3NUZXh0KCkgY29uc3QKICAgICAgICAgcmVzdWx0
LmFwcGVuZCgnOycpOwogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uOjpzZXRDc3NUZXh0KGNvbnN0IFN0cmluZyYpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcAppbmRleCA5ZWI2ZjBmLi5hZjkxYzIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHAKQEAgLTEwMiw3ICsxMDIsOSBAQCBT
dHJpbmcgQ1NTQ3Jvc3NmYWRlVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIHJlc3Vs
dC5hcHBlbmRMaXRlcmFsKCIsICIpOwogICAgIHJlc3VsdC5hcHBlbmQobV9wZXJjZW50YWdlVmFs
dWUtPmNzc1RleHQoKSk7CiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwotICAgIHJldHVybiByZXN1
bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogRmxvYXRTaXplIENT
U0Nyb3NzZmFkZVZhbHVlOjpmaXhlZFNpemUoY29uc3QgUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAKaW5kZXggMWI2ZDdm
Mi4uMGVlZWUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdl
VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNw
cApAQCAtNjEsNyArNjEsOSBAQCBTdHJpbmcgQ1NTQ3Vyc29ySW1hZ2VWYWx1ZTo6Y3VzdG9tQ1NT
VGV4dCgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAnKTsKICAgICAgICAgcmVzdWx0
LmFwcGVuZE51bWJlcihtX2hvdFNwb3QueSgpKTsKICAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdC50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTVkdDdXJzb3JFbGVtZW50
KiBDU1NDdXJzb3JJbWFnZVZhbHVlOjp1cGRhdGVDdXJzb3JFbGVtZW50KGNvbnN0IERvY3VtZW50
JiBkb2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXN0b21JZGVu
dFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXN0b21JZGVudFZhbHVlLmNwcApp
bmRleCAyNmQ2ZTNiLi5mNWVlYjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q3VzdG9tSWRlbnRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1c3RvbUlk
ZW50VmFsdWUuY3BwCkBAIC01Niw3ICs1Niw5IEBAIFN0cmluZyBDU1NDdXN0b21JZGVudFZhbHVl
OjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgcmV0dXJuIGdldFByb3BlcnR5TmFtZUF0
b21pY1N0cmluZyhtX3Byb3BlcnR5SWQpOwogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAg
ICBzZXJpYWxpemVJZGVudGlmaWVyKG1fc3RyaW5nLCBidWlsZGVyKTsKLSAgICByZXR1cm4gYnVp
bGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlcklt
YWdlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3Bw
CmluZGV4IGVhYWI3MDMuLjIzMGUwNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NGaWx0ZXJJbWFnZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVy
SW1hZ2VWYWx1ZS5jcHAKQEAgLTUzLDcgKzUzLDkgQEAgU3RyaW5nIENTU0ZpbHRlckltYWdlVmFs
dWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCIsICIp
OwogICAgIHJlc3VsdC5hcHBlbmQobV9maWx0ZXJWYWx1ZS0+Y3NzVGV4dCgpKTsKICAgICByZXN1
bHQuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBGbG9hdFNpemUgQ1NTRmlsdGVySW1hZ2VWYWx1ZTo6Zml4ZWRT
aXplKGNvbnN0IFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dEZhY2VSdWxlLmNwcAppbmRleCAwZGRhMWIyLi44NTk0NmY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udEZhY2VSdWxlLmNwcApAQCAtNTcsNyArNTcsOSBAQCBTdHJpbmcgQ1NTRm9udEZhY2VS
dWxlOjpjc3NUZXh0KCkgY29uc3QKICAgICBpZiAoIWRlc2NzLmlzRW1wdHkoKSkKICAgICAgICAg
cmVzdWx0LmFwcGVuZCgnICcpOwogICAgIHJlc3VsdC5hcHBlbmQoJ30nKTsKLSAgICByZXR1cm4g
cmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgQ1NT
Rm9udEZhY2VSdWxlOjpyZWF0dGFjaChTdHlsZVJ1bGVCYXNlJiBydWxlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCmluZGV4IDgxZDhhNzUuLjJmMzQ2MWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAKQEAgLTgxLDcgKzgx
LDkgQEAgU3RyaW5nIENTU0ZvbnRGYWNlU3JjVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAog
ICAgICAgICByZXN1bHQuYXBwZW5kKG1fZm9ybWF0KTsKICAgICAgICAgcmVzdWx0LmFwcGVuZCgn
KScpOwogICAgIH0KLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTRm9udEZhY2VTcmNWYWx1ZTo6dHJhdmVyc2VTdWJyZXNv
dXJjZXMoY29uc3QgV1RGOjpGdW5jdGlvbjxib29sIChjb25zdCBDYWNoZWRSZXNvdXJjZSYpPiYg
aGFuZGxlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmVh
dHVyZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmVhdHVyZVZhbHVlLmNw
cAppbmRleCA3ZmYwN2YzLi40NzQ2MjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udEZlYXR1cmVWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRG
ZWF0dXJlVmFsdWUuY3BwCkBAIC01MCw3ICs1MCw5IEBAIFN0cmluZyBDU1NGb250RmVhdHVyZVZh
bHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV92YWx1ZSk7CiAgICAgfQotICAgIHJldHVy
biBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29s
IENTU0ZvbnRGZWF0dXJlVmFsdWU6OmVxdWFscyhjb25zdCBDU1NGb250RmVhdHVyZVZhbHVlJiBv
dGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U3R5bGVS
YW5nZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U3R5bGVSYW5nZVZhbHVl
LmNwcAppbmRleCAwY2RjZGJmLi5lYTY2NmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTRm9udFN0eWxlUmFuZ2VWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ZvbnRTdHlsZVJhbmdlVmFsdWUuY3BwCkBAIC0zOSw3ICszOSw5IEBAIFN0cmluZyBDU1NGb250
U3R5bGVSYW5nZVZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICBidWlsZGVyLmFwcGVu
ZChmb250U3R5bGVWYWx1ZS0+Y3NzVGV4dCgpKTsKICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwog
ICAgIGJ1aWxkZXIuYXBwZW5kKG9ibGlxdWVWYWx1ZXMtPmNzc1RleHQoKSk7Ci0gICAgcmV0dXJu
IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wg
Q1NTRm9udFN0eWxlUmFuZ2VWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0ZvbnRTdHlsZVJhbmdlVmFs
dWUmIG90aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRT
dHlsZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U3R5bGVWYWx1ZS5jcHAK
aW5kZXggMjg1MGUyMy4uOGM0ZTg1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ZvbnRTdHlsZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFN0eWxl
VmFsdWUuY3BwCkBAIC0zOSw3ICszOSw5IEBAIFN0cmluZyBDU1NGb250U3R5bGVWYWx1ZTo6Y3Vz
dG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgYnVpbGRlci5hcHBlbmQoZm9udFN0eWxlVmFsdWUtPmNz
c1RleHQoKSk7CiAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICBidWlsZGVyLmFwcGVuZChv
YmxpcXVlVmFsdWUtPmNzc1RleHQoKSk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTRm9udFN0eWxlVmFsdWU6OmVx
dWFscyhjb25zdCBDU1NGb250U3R5bGVWYWx1ZSYgb3RoZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NGb250VmFsdWUuY3BwCmluZGV4IDc2NmMxMTMuLjFjZjc4YWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGb250VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NGb250VmFsdWUuY3BwCkBAIC02NSw3ICs2NSw5IEBAIFN0cmluZyBDU1NGb250VmFsdWU6OmN1
c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKGZhbWlseS0+Y3NzVGV4
dCgpKTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTRm9udFZhbHVlOjplcXVhbHMoY29uc3QgQ1NTRm9u
dFZhbHVlJiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250VmFyaWF0aW9uVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYXJpYXRp
b25WYWx1ZS5jcHAKaW5kZXggYTIwODI2MS4uY2Q1YjMyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHAKQEAgLTQ4LDcgKzQ4LDkgQEAgU3RyaW5nIENT
U0ZvbnRWYXJpYXRpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKGMpOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiJyAiKTsKICAgICBidWls
ZGVyLmFwcGVuZE51bWJlcihtX3ZhbHVlKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDU1NGb250VmFyaWF0aW9uVmFs
dWU6OmVxdWFscyhjb25zdCBDU1NGb250VmFyaWF0aW9uVmFsdWUmIG90aGVyKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Z1bmN0aW9uVmFsdWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0Z1bmN0aW9uVmFsdWUuY3BwCmluZGV4IDc1ZWYwYzEuLmJiZGRmZjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGdW5jdGlvblZhbHVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHAKQEAgLTM3LDcgKzM3LDkg
QEAgU3RyaW5nIENTU0Z1bmN0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIHJl
c3VsdC5hcHBlbmQoJygnKTsKICAgICByZXN1bHQuYXBwZW5kKENTU1ZhbHVlTGlzdDo6Y3VzdG9t
Q1NTVGV4dCgpKTsKICAgICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAKaW5kZXggZWVmMjk1Yi4uMDgzMzdmZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcApAQCAtNjg0LDcgKzY4NCw5IEBAIFN0cmlu
ZyBDU1NMaW5lYXJHcmFkaWVudFZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICB9CiAK
ICAgICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiAvLyBDb21wdXRlIHRoZSBlbmRwb2ludHMgc28g
dGhhdCBhIGdyYWRpZW50IG9mIHRoZSBnaXZlbiBhbmdsZSBjb3ZlcnMgYSBib3ggb2YgdGhlIGdp
dmVuIHNpemUuCkBAIC0xMDAyLDcgKzEwMDQsOSBAQCBTdHJpbmcgQ1NTUmFkaWFsR3JhZGllbnRW
YWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgfQogCiAgICAgcmVzdWx0LmFwcGVuZCgn
KScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogZmxvYXQgQ1NTUmFkaWFsR3JhZGllbnRWYWx1ZTo6cmVzb2x2ZVJhZGl1cyhDU1NQ
cmltaXRpdmVWYWx1ZSYgcmFkaXVzLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhJiBj
b252ZXJzaW9uRGF0YSwgZmxvYXQqIHdpZHRoT3JIZWlnaHQpCkBAIC0xMzMwLDcgKzEzMzQsOSBA
QCBTdHJpbmcgQ1NTQ29uaWNHcmFkaWVudFZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAg
ICB9CiAgICAgCiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogUmVmPEdyYWRpZW50PiBDU1ND
b25pY0dyYWRpZW50VmFsdWU6OmNyZWF0ZUdyYWRpZW50KFJlbmRlckVsZW1lbnQmLCBjb25zdCBG
bG9hdFNpemUmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRBdXRvUmVw
ZWF0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRBdXRvUmVwZWF0VmFsdWUu
Y3BwCmluZGV4IGQ1YmM0NDkuLmZkNzkwZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
R3JpZEF1dG9SZXBlYXRWYWx1ZS5jcHAKQEAgLTQzLDcgKzQzLDkgQEAgU3RyaW5nIENTU0dyaWRB
dXRvUmVwZWF0VmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIHJlc3VsdC5hcHBlbmQo
IiwgIik7CiAgICAgcmVzdWx0LmFwcGVuZChDU1NWYWx1ZUxpc3Q6OmN1c3RvbUNTU1RleHQoKSk7
CiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwCmluZGV4
IGUwYjc4NjUuLjhiYzNmZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlk
VGVtcGxhdGVBcmVhc1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZFRl
bXBsYXRlQXJlYXNWYWx1ZS5jcHAKQEAgLTgwLDcgKzgwLDkgQEAgU3RyaW5nIENTU0dyaWRUZW1w
bGF0ZUFyZWFzVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAgICBpZiAocm93ICE9
IG1fcm93Q291bnQgLSAxKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICB9
Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIGJvb2wgQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0dy
aWRUZW1wbGF0ZUFyZWFzVmFsdWUmIG90aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0lt
YWdlU2V0VmFsdWUuY3BwCmluZGV4IGE5N2RjMjEuLmUzNzUwYTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKQEAgLTE0Niw3ICsxNDYsOSBAQCBTdHJpbmcgQ1NTSW1h
Z2VTZXRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgfQogCiAgICAgcmVzdWx0LmFw
cGVuZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogYm9vbCBDU1NJbWFnZVNldFZhbHVlOjp0cmF2ZXJzZVN1YnJlc291cmNl
cyhjb25zdCBXVEY6OkZ1bmN0aW9uPGJvb2wgKGNvbnN0IENhY2hlZFJlc291cmNlJik+JiBoYW5k
bGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUuY3BwCmluZGV4IDRjNjY2MTMu
LmY5YWFlZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVsZS5jcHAKQEAgLTcyLDcgKzcy
LDkgQEAgU3RyaW5nIENTU0ltcG9ydFJ1bGU6OmNzc1RleHQoKSBjb25zdAogICAgIH0KICAgICBy
ZXN1bHQuYXBwZW5kKCc7Jyk7CiAgICAgCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBDU1NTdHlsZVNoZWV0KiBDU1NJbXBvcnRSdWxl
OjpzdHlsZVNoZWV0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NL
ZXlmcmFtZVJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lUnVsZS5jcHAK
aW5kZXggODFlOTk1OC4uZGNhM2Y3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0tleWZyYW1lUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lUnVs
ZS5jcHAKQEAgLTY3LDcgKzY3LDkgQEAgU3RyaW5nIFN0eWxlUnVsZUtleWZyYW1lOjprZXlUZXh0
KCkgY29uc3QKICAgICAgICAga2V5VGV4dC5hcHBlbmQoJyUnKTsKICAgICB9CiAKLSAgICByZXR1
cm4ga2V5VGV4dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGtleVRleHQudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KICAgICAK
IGJvb2wgU3R5bGVSdWxlS2V5ZnJhbWU6OnNldEtleVRleHQoY29uc3QgU3RyaW5nJiBrZXlUZXh0
KQpAQCAtOTAsNyArOTIsOSBAQCBTdHJpbmcgU3R5bGVSdWxlS2V5ZnJhbWU6OmNzc1RleHQoKSBj
b25zdAogICAgIGlmICghZGVjbHMuaXNFbXB0eSgpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCcg
Jyk7CiAgICAgcmVzdWx0LmFwcGVuZCgnfScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogQ1NTS2V5ZnJhbWVSdWxlOjpDU1NLZXlm
cmFtZVJ1bGUoU3R5bGVSdWxlS2V5ZnJhbWUmIGtleWZyYW1lLCBDU1NLZXlmcmFtZXNSdWxlKiBw
YXJlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVzUnVsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVzUnVsZS5jcHAKaW5kZXggOWYwMDBk
OS4uNzdiMTgyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lc1J1
bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZXNSdWxlLmNwcApAQCAt
MTk4LDcgKzE5OCw5IEBAIFN0cmluZyBDU1NLZXlmcmFtZXNSdWxlOjpjc3NUZXh0KCkgY29uc3QK
ICAgICAgICAgcmVzdWx0LmFwcGVuZCgnXG4nKTsKICAgICB9CiAgICAgcmVzdWx0LmFwcGVuZCgn
fScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogdW5zaWduZWQgQ1NTS2V5ZnJhbWVzUnVsZTo6bGVuZ3RoKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMaW5lQm94Q29udGFpblZhbHVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NMaW5lQm94Q29udGFpblZhbHVlLmNwcAppbmRleCAxOWZkZjhi
Li4zZGViM2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTGluZUJveENvbnRh
aW5WYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xpbmVCb3hDb250YWluVmFs
dWUuY3BwCkBAIC03Myw3ICs3Myw5IEBAIFN0cmluZyBDU1NMaW5lQm94Q29udGFpblZhbHVlOjpj
dXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgdGV4dC5hcHBlbmRMaXRlcmFsKCJpbml0aWFs
LWxldHRlciIpOwogICAgIH0KIAotICAgIHJldHVybiB0ZXh0LnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gdGV4dC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
TWFya3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNYXJrdXAuY3BwCmluZGV4IDgxZmU4
ODguLjYwOWM3MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNYXJrdXAuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNYXJrdXAuY3BwCkBAIC0xODYsNyArMTg2LDkg
QEAgU3RyaW5nIHNlcmlhbGl6ZVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgc2VyaWFsaXplU3RyaW5nKHN0cmluZywgYnVpbGRl
cik7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIFN0cmluZyBzZXJpYWxpemVVUkwoY29uc3QgU3RyaW5nJiBzdHJpbmcpCkBAIC0y
MDQsNyArMjA2LDkgQEAgU3RyaW5nIHNlcmlhbGl6ZUFzU3RyaW5nT3JDdXN0b21JZGVudChjb25z
dCBTdHJpbmcmIHN0cmluZykKICAgICBpZiAoaXNDU1NUb2tlbml6ZXJJZGVudGlmaWVyKHN0cmlu
ZykpIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBzZXJpYWxpemVJ
ZGVudGlmaWVyKHN0cmluZywgYnVpbGRlcik7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3Ry
aW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICBy
ZXR1cm4gc2VyaWFsaXplU3RyaW5nKHN0cmluZyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTTWVkaWFSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1
bGUuY3BwCmluZGV4IGIwOTRlZGQuLjE3NGY1YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NNZWRpYVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1
bGUuY3BwCkBAIC01Nyw3ICs1Nyw5IEBAIFN0cmluZyBDU1NNZWRpYVJ1bGU6OmNzc1RleHQoKSBj
b25zdAogICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCJ7IFxuIik7CiAgICAgYXBwZW5kQ3NzVGV4
dEZvckl0ZW1zKHJlc3VsdCk7CiAgICAgcmVzdWx0LmFwcGVuZCgnfScpOwotICAgIHJldHVybiBy
ZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogTWVkaWFMaXN0
KiBDU1NNZWRpYVJ1bGU6Om1lZGlhKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NOYW1lc3BhY2VSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NOYW1lc3Bh
Y2VSdWxlLmNwcAppbmRleCAzZDNlYzZmLi43MDY4OTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTTmFtZXNwYWNlUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U05hbWVzcGFjZVJ1bGUuY3BwCkBAIC02MCw3ICs2MCw5IEBAIFN0cmluZyBDU1NOYW1lc3BhY2VS
dWxlOjpjc3NUZXh0KCkgY29uc3QKICAgICByZXN1bHQuYXBwZW5kKCJ1cmwoIik7CiAgICAgcmVz
dWx0LmFwcGVuZChzZXJpYWxpemVTdHJpbmcobmFtZXNwYWNlVVJJKCkpKTsKICAgICByZXN1bHQu
YXBwZW5kKCIpOyIpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KIAogdm9pZCBDU1NOYW1lc3BhY2VSdWxlOjpyZWF0dGFjaChTdHlsZVJ1
bGVCYXNlJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYWdlUnVsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFnZVJ1bGUuY3BwCmluZGV4IDQ3Y2Y0NTYuLmU2OWRh
NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYWdlUnVsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhZ2VSdWxlLmNwcApAQCAtNjQsNyArNjQsOSBAQCBTdHJp
bmcgQ1NTUGFnZVJ1bGU6OnNlbGVjdG9yVGV4dCgpIGNvbnN0CiAgICAgICAgICAgICB0ZXh0LmFw
cGVuZChwYWdlU3BlY2lmaWNhdGlvbik7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIHRl
eHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0ZXh0LnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgQ1NTUGFnZVJ1
bGU6OnNldFNlbGVjdG9yVGV4dChjb25zdCBTdHJpbmcmIHNlbGVjdG9yVGV4dCkKQEAgLTkwLDcg
KzkyLDkgQEAgU3RyaW5nIENTU1BhZ2VSdWxlOjpjc3NUZXh0KCkgY29uc3QKICAgICBpZiAoIWRl
Y2xzLmlzRW1wdHkoKSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICcpOwogICAgIHJlc3VsdC5h
cHBlbmQoJ30nKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIHZvaWQgQ1NTUGFnZVJ1bGU6OnJlYXR0YWNoKFN0eWxlUnVsZUJhc2Um
IHJ1bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAppbmRleCBhNzYx
Mjc2Li44M2UxNmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZl
VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAK
QEAgLTEwNDUsNyArMTA0NSw5IEBAIEFMV0FZU19JTkxJTkUgU3RyaW5nIENTU1ByaW1pdGl2ZVZh
bHVlOjpmb3JtYXROdW1iZXJGb3JDdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgcmVzdWx0
LmFwcGVuZChTdHJpbmcobV92YWx1ZS5zdHJpbmcpKTsKICAgICAgICAgcmVzdWx0LmFwcGVuZCgn
KScpOwogCi0gICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgY2FzZSBDU1NfQ09VTlRFUl9OQU1FOgog
ICAgICAgICByZXR1cm4gImNvdW50ZXIoIiArIFN0cmluZyhtX3ZhbHVlLnN0cmluZykgKyAnKSc7
CkBAIC0xMDY5LDcgKzEwNzEsOSBAQCBBTFdBWVNfSU5MSU5FIFN0cmluZyBDU1NQcmltaXRpdmVW
YWx1ZTo6Zm9ybWF0TnVtYmVyRm9yQ3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIH0KICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwogCi0gICAgICAgIHJldHVybiByZXN1bHQudG9TdHJp
bmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAg
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgY2Fz
ZSBDU1NfUkVDVDoKICAgICAgICAgcmV0dXJuIHJlY3RWYWx1ZSgpLT5jc3NUZXh0KCk7CkBAIC0x
MTEyLDcgKzExMTYsOSBAQCBBTFdBWVNfSU5MSU5FIFN0cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6
Zm9ybWF0TnVtYmVyRm9yQ3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICByZXN1bHQuYXBwZW5kKCcpJyk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJl
c3VsdC50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJp
bmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAg
IH0KICNlbmRpZgogICAgIGNhc2UgQ1NTX0NBTEM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
cm9wZXJ0eVNvdXJjZURhdGEuY3BwCmluZGV4IDc1Yjc5OTAuLmZkMmU4MmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3BwCkBAIC05Niw3ICs5Niw5IEBA
IFN0cmluZyBDU1NQcm9wZXJ0eVNvdXJjZURhdGE6OnRvU3RyaW5nKCkgY29uc3QKICAgICBpZiAo
aW1wb3J0YW50KQogICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiICFpbXBvcnRhbnQiKTsK
ICAgICByZXN1bHQuYXBwZW5kKCc7Jyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB1bnNpZ25lZCBDU1NQcm9wZXJ0eVNvdXJjZURh
dGE6Omhhc2goKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVj
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKaW5kZXggMWZlNDJj
ZC4uNTZiZmMyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCkBAIC03MjYsMjYgKzcy
NiwzMSBAQCBTdHJpbmcgQ1NTU2VsZWN0b3I6OnNlbGVjdG9yVGV4dChjb25zdCBTdHJpbmcmIHJp
Z2h0U2lkZSkgY29uc3QKICAgICAgICAgY3MgPSBjcy0+dGFnSGlzdG9yeSgpOwogICAgIH0KIAor
ICAgIFN0cmluZyBzdHJpbmc7CisgICAgaWYgKGF1dG8gcyA9IHN0ci50b1N0cmluZygpKQorICAg
ICAgICBzdHJpbmcgPSAqczsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgaWYgKGNv
bnN0IENTU1NlbGVjdG9yKiB0YWdIaXN0b3J5ID0gY3MtPnRhZ0hpc3RvcnkoKSkgewogICAgICAg
ICBzd2l0Y2ggKGNzLT5yZWxhdGlvbigpKSB7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkRl
c2NlbmRhbnRTcGFjZToKLSAgICAgICAgICAgIHJldHVybiB0YWdIaXN0b3J5LT5zZWxlY3RvclRl
eHQoIiAiICsgc3RyLnRvU3RyaW5nKCkgKyByaWdodFNpZGUpOworICAgICAgICAgICAgcmV0dXJu
IHRhZ0hpc3RvcnktPnNlbGVjdG9yVGV4dCgiICIgKyBzdHJpbmcgKyByaWdodFNpZGUpOwogICAg
ICAgICBjYXNlIENTU1NlbGVjdG9yOjpDaGlsZDoKLSAgICAgICAgICAgIHJldHVybiB0YWdIaXN0
b3J5LT5zZWxlY3RvclRleHQoIiA+ICIgKyBzdHIudG9TdHJpbmcoKSArIHJpZ2h0U2lkZSk7Cisg
ICAgICAgICAgICByZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0b3JUZXh0KCIgPiAiICsgc3RyaW5n
ICsgcmlnaHRTaWRlKTsKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6RGlyZWN0QWRqYWNlbnQ6
Ci0gICAgICAgICAgICByZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0b3JUZXh0KCIgKyAiICsgc3Ry
LnRvU3RyaW5nKCkgKyByaWdodFNpZGUpOworICAgICAgICAgICAgcmV0dXJuIHRhZ0hpc3Rvcnkt
PnNlbGVjdG9yVGV4dCgiICsgIiArIHN0cmluZyArIHJpZ2h0U2lkZSk7CiAgICAgICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OkluZGlyZWN0QWRqYWNlbnQ6Ci0gICAgICAgICAgICByZXR1cm4gdGFnSGlz
dG9yeS0+c2VsZWN0b3JUZXh0KCIgfiAiICsgc3RyLnRvU3RyaW5nKCkgKyByaWdodFNpZGUpOwor
ICAgICAgICAgICAgcmV0dXJuIHRhZ0hpc3RvcnktPnNlbGVjdG9yVGV4dCgiIH4gIiArIHN0cmlu
ZyArIHJpZ2h0U2lkZSk7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlN1YnNlbGVjdG9yOgog
ICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAjaWYgQVNTRVJUX0RJU0FCTEVECiAg
ICAgICAgICAgICBGQUxMVEhST1VHSDsKICNlbmRpZgogICAgICAgICBjYXNlIENTU1NlbGVjdG9y
OjpTaGFkb3dEZXNjZW5kYW50OgotICAgICAgICAgICAgcmV0dXJuIHRhZ0hpc3RvcnktPnNlbGVj
dG9yVGV4dChzdHIudG9TdHJpbmcoKSArIHJpZ2h0U2lkZSk7CisgICAgICAgICAgICByZXR1cm4g
dGFnSGlzdG9yeS0+c2VsZWN0b3JUZXh0KHN0cmluZyArIHJpZ2h0U2lkZSk7CiAgICAgICAgIH0K
ICAgICB9Ci0gICAgcmV0dXJuIHN0ci50b1N0cmluZygpICsgcmlnaHRTaWRlOworICAgIHJldHVy
biBzdHJpbmcgKyByaWdodFNpZGU7CiB9CiAKIHZvaWQgQ1NTU2VsZWN0b3I6OnNldEF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB2YWx1ZSwgYm9vbCBpc0Nhc2VJbnNlbnNpdGl2ZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxpc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAKaW5kZXggNTdlZmE2Ny4uYWUzMzAwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAKQEAgLTEzOCw3ICsxMzgsOSBA
QCBTdHJpbmcgQ1NTU2VsZWN0b3JMaXN0OjpzZWxlY3RvcnNUZXh0KCkgY29uc3QKIHsKICAgICBT
dHJpbmdCdWlsZGVyIHJlc3VsdDsKICAgICBidWlsZFNlbGVjdG9yc1RleHQocmVzdWx0KTsKLSAg
ICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IHZvaWQgQ1NTU2VsZWN0b3JMaXN0OjpidWlsZFNlbGVjdG9yc1RleHQoU3RyaW5nQnVpbGRlciYg
c3RyaW5nQnVpbGRlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NT
aGFkb3dWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2hhZG93VmFsdWUuY3BwCmlu
ZGV4IDk0OTQ3ZDcuLmUyOWM4NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NT
aGFkb3dWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NoYWRvd1ZhbHVlLmNw
cApAQCAtNjksNyArNjksOSBAQCBTdHJpbmcgQ1NTU2hhZG93VmFsdWU6OmN1c3RvbUNTU1RleHQo
KSBjb25zdAogICAgICAgICB0ZXh0LmFwcGVuZChzdHlsZS0+Y3NzVGV4dCgpKTsKICAgICB9CiAK
LSAgICByZXR1cm4gdGV4dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHRleHQu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAog
Ym9vbCBDU1NTaGFkb3dWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU1NoYWRvd1ZhbHVlJiBvdGhlcikg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAKaW5kZXggYmI4ZDIxYy4uNTgwOGZk
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAKQEAgLTEyMCw3ICsxMjAsOSBAQCBT
dHJpbmcgQ1NTU3R5bGVSdWxlOjpjc3NUZXh0KCkgY29uc3QKICAgICBpZiAoIWRlY2xzLmlzRW1w
dHkoKSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICcpOwogICAgIHJlc3VsdC5hcHBlbmQoJ30n
KTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
cmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIHZvaWQgQ1NTU3R5bGVSdWxlOjpyZWF0dGFjaChTdHlsZVJ1bGVCYXNlJiBydWxlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCmluZGV4IDFlY2M1YmEuLjg2OTg0ZmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAKQEAgLTMxNiw5ICszMTYsMTIgQEAgRXhj
ZXB0aW9uT3I8aW50PiBDU1NTdHlsZVNoZWV0OjphZGRSdWxlKGNvbnN0IFN0cmluZyYgc2VsZWN0
b3IsIGNvbnN0IFN0cmluZyYgc3QKICAgICBpZiAoIXN0eWxlLmlzRW1wdHkoKSkKICAgICAgICAg
dGV4dC5hcHBlbmQoJyAnKTsKICAgICB0ZXh0LmFwcGVuZCgnfScpOwotICAgIGF1dG8gaW5zZXJ0
UnVsZVJlc3VsdCA9IGluc2VydFJ1bGUodGV4dC50b1N0cmluZygpLCBpbmRleC52YWx1ZV9vcihs
ZW5ndGgoKSkpOwotICAgIGlmIChpbnNlcnRSdWxlUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQotICAg
ICAgICByZXR1cm4gaW5zZXJ0UnVsZVJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gdGV4dC50b1N0cmluZygpKSB7CisgICAgICAgIGF1dG8gaW5zZXJ0UnVs
ZVJlc3VsdCA9IGluc2VydFJ1bGUoKnN0cmluZywgaW5kZXgudmFsdWVfb3IobGVuZ3RoKCkpKTsK
KyAgICAgICAgaWYgKGluc2VydFJ1bGVSZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgICAg
ICByZXR1cm4gaW5zZXJ0UnVsZVJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CisgICAgfSBlbHNl
CisgICAgICAgIENSQVNIKCk7CiAgICAgCiAgICAgLy8gQXMgcGVyIE1pY3Jvc29mdCBkb2N1bWVu
dGF0aW9uLCBhbHdheXMgcmV0dXJuIC0xLgogICAgIHJldHVybiAtMTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTdXBwb3J0c1J1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N1cHBvcnRzUnVsZS5jcHAKaW5kZXggZTEzZTEzYi4uZmNiZTMyNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1N1cHBvcnRzUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N1cHBvcnRzUnVsZS5jcHAKQEAgLTUwLDcgKzUwLDkgQEAgU3RyaW5nIENTU1N1
cHBvcnRzUnVsZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgYXBwZW5kQ3NzVGV4dEZvckl0ZW1zKHJl
c3VsdCk7CiAgICAgcmVzdWx0LmFwcGVuZCgnfScpOwogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQ1NTU3VwcG9ydHNS
dWxlOjpjb25kaXRpb25UZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NUaW1pbmdGdW5jdGlvblZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUaW1p
bmdGdW5jdGlvblZhbHVlLmNwcAppbmRleCA5MGVmNmNkLi4wOTI4ODJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVGltaW5nRnVuY3Rpb25WYWx1ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuY3BwCkBAIC00Miw3ICs0Miw5IEBA
IFN0cmluZyBDU1NDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQo
KSBjb25zdAogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKICAgICBidWlsZGVyLmFw
cGVuZE51bWJlcihtX3kyKTsKICAgICBidWlsZGVyLmFwcGVuZCgnKScpOyAgICAKLSAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9v
bCBDU1NDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uVmFsdWU6OmVxdWFscyhjb25zdCBDU1NDdWJp
Y0JlemllclRpbWluZ0Z1bmN0aW9uVmFsdWUmIG90aGVyKSBjb25zdApAQCAtNTksNyArNjEsOSBA
QCBTdHJpbmcgQ1NTU3RlcHNUaW1pbmdGdW5jdGlvblZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29u
c3QKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsIHN0YXJ0KSIpOwogICAgIGVsc2UK
ICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsIGVuZCkiKTsKLSAgICByZXR1cm4gYnVp
bGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDU1NT
dGVwc1RpbWluZ0Z1bmN0aW9uVmFsdWU6OmVxdWFscyhjb25zdCBDU1NTdGVwc1RpbWluZ0Z1bmN0
aW9uVmFsdWUmIG90aGVyKSBjb25zdApAQCAtNzMsNyArNzcsOSBAQCBTdHJpbmcgQ1NTRnJhbWVz
VGltaW5nRnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgYnVpbGRlci5h
cHBlbmRMaXRlcmFsKCJmcmFtZXMoIik7CiAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV9mcmFt
ZXMpOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSIpOwotICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU0ZyYW1l
c1RpbWluZ0Z1bmN0aW9uVmFsdWU6OmVxdWFscyhjb25zdCBDU1NGcmFtZXNUaW1pbmdGdW5jdGlv
blZhbHVlJiBvdGhlcikgY29uc3QKQEAgLTkzLDcgKzk5LDkgQEAgU3RyaW5nIENTU1NwcmluZ1Rp
bWluZ0Z1bmN0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIGJ1aWxkZXIuYXBw
ZW5kKCcgJyk7CiAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV9pbml0aWFsVmVsb2NpdHkpOwog
ICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTU3ByaW5nVGltaW5nRnVuY3Rp
b25WYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU1NwcmluZ1RpbWluZ0Z1bmN0aW9uVmFsdWUmIG90aGVy
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0LmNwcAppbmRleCBiNmUwYzJjNS4uMzA5
MGUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAKQEAgLTEwNyw3ICsxMDcsOSBA
QCBTdHJpbmcgQ1NTVmFsdWVMaXN0OjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgcmVz
dWx0LmFwcGVuZCh2YWx1ZS5nZXQoKS5jc3NUZXh0KCkpOwogICAgIH0KIAotICAgIHJldHVybiBy
ZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDU1NW
YWx1ZUxpc3Q6OmVxdWFscyhjb25zdCBDU1NWYWx1ZUxpc3QmIG90aGVyKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhcmlhYmxlRGF0YS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVmFyaWFibGVEYXRhLmNwcAppbmRleCA5OGM5ZDA5Li4zMTE4ZGU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFyaWFibGVEYXRhLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVmFyaWFibGVEYXRhLmNwcApAQCAtNjgsNyArNjgsMTAgQEAgdm9p
ZCBDU1NWYXJpYWJsZURhdGE6OmNvbnN1bWVBbmRVcGRhdGVUb2tlbnMoY29uc3QgQ1NTUGFyc2Vy
VG9rZW5SYW5nZSYgcmFuZ2UpCiAgICAgICAgIGlmICh0b2tlbi5oYXNTdHJpbmdCYWNraW5nKCkp
CiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b2tlbi52YWx1ZSgpKTsKICAgICB9
Ci0gICAgbV9iYWNraW5nU3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgbV9iYWNr
aW5nU3RyaW5nID0gKnN0cmluZzsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgaWYg
KG1fYmFja2luZ1N0cmluZy5pczhCaXQoKSkKICAgICAgICAgdXBkYXRlVG9rZW5zPExDaGFyPihy
YW5nZSk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05h
bWVzcGFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmNwcAppbmRl
eCA5MTM1MjM3Li5jZTE1ZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NT
TmFtZXNwYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmNw
cApAQCAtODQsNyArODQsOSBAQCBTdHJpbmcgRE9NQ1NTTmFtZXNwYWNlOjplc2NhcGUoY29uc3Qg
U3RyaW5nJiBpZGVudCkKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgc2VyaWFs
aXplSWRlbnRpZmllcihpZGVudCwgYnVpbGRlcik7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXhSZWFkT25seS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
RE9NTWF0cml4UmVhZE9ubHkuY3BwCmluZGV4IGY3NGI0NjUuLjc4ODIyOGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXhSZWFkT25seS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0RPTU1hdHJpeFJlYWRPbmx5LmNwcApAQCAtNDUwLDcgKzQ1MCw5IEBAIEV4Y2Vw
dGlvbk9yPFN0cmluZz4gRE9NTWF0cml4UmVhZE9ubHk6OnRvU3RyaW5nKCkgY29uc3QKICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nOjpudW1iZXJUb1N0cmluZ0VDTUFTY3JpcHQobV9tYXRy
aXgubTQ0KCkpKTsKICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4g
YnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuIFdURk1vdmUoKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVj
YXRlZENTU09NVmFsdWVMaXN0LmNwcAppbmRleCBlNDk2ODg0Li41ZTk4ZTIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNwcApAQCAtNTQsNyAr
NTQsOSBAQCBTdHJpbmcgRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0Ojpjc3NUZXh0KCkgY29uc3QK
ICAgICAgICAgcmVzdWx0LmFwcGVuZCh2YWx1ZS5nZXQoKS5jc3NUZXh0KCkpOwogICAgIH0KICAg
ICAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
cmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwCmluZGV4IDU4MWY1ZTguLmMyNTg2YTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0ZvbnRGYWNlLmNwcApAQCAtMzI4LDcgKzMyOCw5IEBAIFN0cmluZyBGb250RmFj
ZTo6c3R5bGUoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgICAgICBi
dWlsZGVyLmFwcGVuZChtYXhpbXVtTm9uS2V5d29yZC0+b2JsaXF1ZVZhbHVlLT5jc3NUZXh0KCkp
OwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogU3RyaW5nIEZvbnRGYWNlOjp3ZWlnaHQoKSBjb25zdApAQCAtMzQ5LDcg
KzM1MSw5IEBAIFN0cmluZyBGb250RmFjZTo6d2VpZ2h0KCkgY29uc3QKICAgICBidWlsZGVyLmFw
cGVuZChtaW5pbXVtTm9uS2V5d29yZC0+Y3NzVGV4dCgpKTsKICAgICBidWlsZGVyLmFwcGVuZCgn
ICcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG1heGltdW1Ob25LZXl3b3JkLT5jc3NUZXh0KCkpOwot
ICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiBTdHJpbmcgRm9udEZhY2U6OnN0cmV0Y2goKSBjb25zdApAQCAtMzcwLDcgKzM3NCw5IEBA
IFN0cmluZyBGb250RmFjZTo6c3RyZXRjaCgpIGNvbnN0CiAgICAgYnVpbGRlci5hcHBlbmQobWlu
aW11bU5vbktleXdvcmQtPmNzc1RleHQoKSk7CiAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAg
ICBidWlsZGVyLmFwcGVuZChtYXhpbXVtTm9uS2V5d29yZC0+Y3NzVGV4dCgpKTsKLSAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3Ry
aW5nIEZvbnRGYWNlOjp1bmljb2RlUmFuZ2UoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNw
cAppbmRleCA0NTc1MGFmLi40MjY5NDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
TWVkaWFMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcApAQCAt
MTUxLDcgKzE1MSw5IEBAIFN0cmluZyBNZWRpYVF1ZXJ5U2V0OjptZWRpYVRleHQoKSBjb25zdAog
ICAgICAgICB0ZXh0LmFwcGVuZChxdWVyeS5jc3NUZXh0KCkpOwogICAgICAgICBuZWVkQ29tbWEg
PSB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gdGV4dC50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHRleHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogdm9pZCBNZWRpYVF1ZXJ5U2V0OjpzaHJpbmtUb0ZpdCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvTWVkaWFRdWVyeS5jcHAKaW5kZXggOWQwYmFkZi4uNDA3MGQ3YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5LmNwcApAQCAtNjYsNyArNjYsOSBAQCBTdHJpbmcgTWVkaWFRdWVyeTo6c2VyaWFs
aXplKCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZChleHByZXNzaW9uLnNlcmlhbGl6ZSgp
KTsKICAgICAgICAgbmVlZHNBbmQgPSB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gcmVzdWx0LnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIE1lZGlhUXVlcnk6Ok1lZGlh
UXVlcnkoUmVzdHJpY3RvciByZXN0cmljdG9yLCBjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSwgVmVj
dG9yPE1lZGlhUXVlcnlFeHByZXNzaW9uPiYmIGV4cHJlc3Npb25zKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9NZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAKaW5kZXggMmQ4ZTVmMC4uZTBhMjJmMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwCkBAIC0yNDQsNyAr
MjQ0LDEwIEBAIFN0cmluZyBNZWRpYVF1ZXJ5RXhwcmVzc2lvbjo6c2VyaWFsaXplKCkgY29uc3QK
ICAgICB9CiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwogCi0gICAgbV9zZXJpYWxpemF0aW9uQ2Fj
aGUgPSByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9T
dHJpbmcoKSkKKyAgICAgICAgbV9zZXJpYWxpemF0aW9uQ2FjaGUgPSAqc3RyaW5nOworICAgIGVs
c2UKKyAgICAgICAgQ1JBU0goKTsKICAgICByZXR1cm4gbV9zZXJpYWxpemF0aW9uQ2FjaGU7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvUmVjdC5oCmluZGV4IGVjMWFhZTguLmRmYWUxNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9SZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1JlY3QuaApAQCAtMTAz
LDcgKzEwMyw5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQog
ICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVByb3BlcnRpZXMuY3BwCmluZGV4IDNjOGNlNDMuLmJmZjE3MmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVByb3BlcnRpZXMuY3BwCkBAIC0zNDMsNyArMzQzLDkgQEAgU3RyaW5nIFN0eWxlUHJv
cGVydGllczo6Zm9udFZhbHVlKCkgY29uc3QKICAgICByZXN1bHQuYXBwZW5kKGZvbnRGYW1pbHlQ
cm9wZXJ0eS52YWx1ZSgpLT5jc3NUZXh0KCkpOwogICAgIGlmIChpc0luaXRpYWxPckluaGVyaXQo
Y29tbW9uVmFsdWUpKQogICAgICAgICByZXR1cm4gY29tbW9uVmFsdWU7Ci0gICAgcmV0dXJuIHJl
c3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgU3R5
bGVQcm9wZXJ0aWVzOjpnZXQ0VmFsdWVzKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHNo
b3J0aGFuZCkgY29uc3QKQEAgLTM5Nyw3ICszOTksOSBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVz
OjpnZXQ0VmFsdWVzKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHNob3J0aGFuZCkgY29u
cwogICAgICAgICByZXN1bHQuYXBwZW5kKCcgJyk7CiAgICAgICAgIHJlc3VsdC5hcHBlbmQobGVm
dC52YWx1ZSgpLT5jc3NUZXh0KCkpOwogICAgIH0KLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6
OmdldExheWVyZWRTaG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBz
aG9ydGhhbmQpIGNvbnN0CkBAIC01NDMsNyArNTQ3LDkgQEAgU3RyaW5nIFN0eWxlUHJvcGVydGll
czo6Z2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQm
IHMKIAogICAgIGlmIChyZXN1bHQuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7
Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJl
c3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpnZXRTaG9ydGhhbmRWYWx1ZShjb25zdCBTdHls
ZVByb3BlcnR5U2hvcnRoYW5kJiBzaG9ydGhhbmQpIGNvbnN0CkBAIC01NzIsNyArNTc4LDkgQEAg
U3RyaW5nIFN0eWxlUHJvcGVydGllczo6Z2V0U2hvcnRoYW5kVmFsdWUoY29uc3QgU3R5bGVQcm9w
ZXJ0eVNob3J0aGFuZCYgc2hvcnRoYW4KICAgICAgICAgcmV0dXJuIGNvbW1vblZhbHVlOwogICAg
IGlmIChyZXN1bHQuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0gICAgcmV0
dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiAvLyBv
bmx5IHJldHVybnMgYSBub24tbnVsbCB2YWx1ZSBpZiBhbGwgcHJvcGVydGllcyBoYXZlIHRoZSBz
YW1lLCBub24tbnVsbCB2YWx1ZQpAQCAtNjM0LDcgKzY0MiwxMSBAQCBTdHJpbmcgU3R5bGVQcm9w
ZXJ0aWVzOjpib3JkZXJQcm9wZXJ0eVZhbHVlKENvbW1vblZhbHVlTW9kZSB2YWx1ZU1vZGUpIGNv
bnN0CiAgICAgfQogICAgIGlmIChpc0luaXRpYWxPckluaGVyaXQoY29tbW9uVmFsdWUpKQogICAg
ICAgICByZXR1cm4gY29tbW9uVmFsdWU7Ci0gICAgcmV0dXJuIHJlc3VsdC5pc0VtcHR5KCkgPyBT
dHJpbmcoKSA6IHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChyZXN1bHQuaXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFJl
ZlB0cjxDU1NWYWx1ZT4gU3R5bGVQcm9wZXJ0aWVzOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1By
b3BlcnR5SUQgcHJvcGVydHlJRCkgY29uc3QKQEAgLTExNDYsNyArMTE1OCw5IEBAIFN0cmluZyBT
dHlsZVByb3BlcnRpZXM6OmFzVGV4dCgpIGNvbnN0CiAgICAgfQogCiAgICAgQVNTRVJUKCFudW1E
ZWNscyBeICFyZXN1bHQuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgU3R5bGVQcm9wZXJ0aWVzOjpoYXND
U1NPTVdyYXBwZXIoKSBjb25zdApAQCAtMTQwMyw3ICsxNDE3LDkgQEAgU3RyaW5nIFN0eWxlUHJv
cGVydGllczo6UHJvcGVydHlSZWZlcmVuY2U6OmNzc1RleHQoKSBjb25zdAogICAgIGlmIChpc0lt
cG9ydGFudCgpKQogICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiICFpbXBvcnRhbnQiKTsK
ICAgICByZXN1bHQuYXBwZW5kKCc7Jyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogICAgIAogUmVmPERlZmVycmVkU3R5bGVQcm9wZXJ0
aWVzPiBEZWZlcnJlZFN0eWxlUHJvcGVydGllczo6Y3JlYXRlKGNvbnN0IENTU1BhcnNlclRva2Vu
UmFuZ2UmIHRva2VuUmFuZ2UsIENTU0RlZmVycmVkUGFyc2VyJiBwYXJzZXIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwCmluZGV4IDdiZGU2NGQuLjFmNzhkMTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwCkBAIC0yNDksNyArMjQ5LDkgQEAgRXhjZXB0
aW9uT3I8U3RyaW5nPiBXZWJLaXRDU1NNYXRyaXg6OnRvU3RyaW5nKCkgY29uc3QKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoU3RyaW5nOjpudW1iZXJUb1N0cmluZ0VDTUFTY3JpcHQobV9tYXRyaXgu
bTQ0KCkpKTsKICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4gYnVp
bGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuIFdURk1vdmUoKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dl
YktpdENTU1ZpZXdwb3J0UnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVmll
d3BvcnRSdWxlLmNwcAppbmRleCBjYmQxNzJmLi5kZTZlYzk1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcApAQCAtNzIsNyArNzIsOSBAQCBTdHJpbmcg
V2ViS2l0Q1NTVmlld3BvcnRSdWxlOjpjc3NUZXh0KCkgY29uc3QKIAogICAgIHJlc3VsdC5hcHBl
bmQoJ30nKTsKIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogdm9pZCBXZWJLaXRDU1NWaWV3cG9ydFJ1bGU6OnJlYXR0YWNoKFN0eWxl
UnVsZUJhc2UmIHJ1bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAKaW5k
ZXggOTU0YWIwOC4uZWNiZmFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2Vy
LmNwcApAQCAtMjk5LDEwICsyOTksMTMgQEAgUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBh
cnNlRm9udEZhY2VEZXNjcmlwdG9yKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgY28KICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIiA6ICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKHByb3BlcnR5
VmFsdWUpOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiOyB9Iik7Ci0gICAgUmVmUHRyPFN0
eWxlUnVsZUJhc2U+IHJ1bGUgPSBwYXJzZVJ1bGUoY29udGV4dCwgbnVsbHB0ciwgYnVpbGRlci50
b1N0cmluZygpKTsKLSAgICBpZiAoIXJ1bGUgfHwgIXJ1bGUtPmlzRm9udEZhY2VSdWxlKCkpCi0g
ICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBkb3duY2FzdDxTdHlsZVJ1bGVGb250
RmFjZT4oKnJ1bGUuZ2V0KCkpLnByb3BlcnRpZXMoKS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHByb3Bl
cnR5SUQpOworICAgIGlmIChhdXRvIHN0cmluZyAgPSBidWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAg
ICAgICAgUmVmUHRyPFN0eWxlUnVsZUJhc2U+IHJ1bGUgPSBwYXJzZVJ1bGUoY29udGV4dCwgbnVs
bHB0ciwgKnN0cmluZyk7CisgICAgICAgIGlmICghcnVsZSB8fCAhcnVsZS0+aXNGb250RmFjZVJ1
bGUoKSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gZG93bmNh
c3Q8U3R5bGVSdWxlRm9udEZhY2U+KCpydWxlLmdldCgpKS5wcm9wZXJ0aWVzKCkuZ2V0UHJvcGVy
dHlDU1NWYWx1ZShwcm9wZXJ0eUlEKTsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmNwcAppbmRleCA3YjhlNjAz
Li41ZDEwMTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNl
clRva2VuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2Vu
LmNwcApAQCAtMzkyLDcgKzM5Miw4IEBAIHZvaWQgQ1NTUGFyc2VyVG9rZW46OnNlcmlhbGl6ZShT
dHJpbmdCdWlsZGVyJiBidWlsZGVyKSBjb25zdAogICAgICAgICBicmVhazsKICAgICBjYXNlIEZ1
bmN0aW9uVG9rZW46CiAgICAgICAgIHNlcmlhbGl6ZUlkZW50aWZpZXIodmFsdWUoKS50b1N0cmlu
ZygpLCBidWlsZGVyKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCcoJyk7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCcoJyk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEF0S2V5
d29yZFRva2VuOgogICAgICAgICBidWlsZGVyLmFwcGVuZCgnQCcpOwogICAgICAgICBzZXJpYWxp
emVJZGVudGlmaWVyKHZhbHVlKCkudG9TdHJpbmcoKSwgYnVpbGRlcik7CkBAIC00MDQsNjkgKzQw
NSw5NyBAQCB2b2lkIENTU1BhcnNlclRva2VuOjpzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYgYnVp
bGRlcikgY29uc3QKICAgICBjYXNlIFVybFRva2VuOgogICAgICAgICBidWlsZGVyLmFwcGVuZCgi
dXJsKCIpOwogICAgICAgICBzZXJpYWxpemVJZGVudGlmaWVyKHZhbHVlKCkudG9TdHJpbmcoKSwg
YnVpbGRlcik7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgnKScpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZCgnKScpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBEZWxpbWl0ZXJU
b2tlbjoKLSAgICAgICAgaWYgKGRlbGltaXRlcigpID09ICdcXCcpCi0gICAgICAgICAgICByZXR1
cm4gYnVpbGRlci5hcHBlbmQoIlxcXG4iKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5k
KGRlbGltaXRlcigpKTsKKyAgICAgICAgaWYgKGRlbGltaXRlcigpID09ICdcXCcpIHsKKyAgICAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJcXFxuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKyAgICAgICAgYnVpbGRlci5hcHBlbmQoZGVsaW1pdGVyKCkpOworICAgICAgICByZXR1
cm47CiAgICAgY2FzZSBOdW1iZXJUb2tlbjoKICAgICAgICAgLy8gVGhlc2Ugd29uJ3QgcHJvcGVy
bHkgcHJlc2VydmUgdGhlIE51bWVyaWNWYWx1ZVR5cGUgZmxhZwogICAgICAgICBpZiAobV9udW1l
cmljU2lnbiA9PSBQbHVzU2lnbikKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcrJyk7Ci0g
ICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZE51bWJlcihudW1lcmljVmFsdWUoKSk7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG51bWVyaWNWYWx1ZSgpKTsKKyAgICAgICAgcmV0dXJu
OwogICAgIGNhc2UgUGVyY2VudGFnZVRva2VuOgogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJl
cihudW1lcmljVmFsdWUoKSk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgnJScpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZCgnJScpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBE
aW1lbnNpb25Ub2tlbjoKICAgICAgICAgLy8gVGhpcyB3aWxsIGluY29ycmVjdGx5IHNlcmlhbGl6
ZSBlLmcuIDRlM2UyIGFzIDQwMDBlMgogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihudW1l
cmljVmFsdWUoKSk7CiAgICAgICAgIHNlcmlhbGl6ZUlkZW50aWZpZXIodmFsdWUoKS50b1N0cmlu
ZygpLCBidWlsZGVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBVbmljb2RlUmFuZ2VUb2tl
bjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKFN0cmluZzo6Zm9ybWF0KCJVKyVYLSVY
IiwgdW5pY29kZVJhbmdlU3RhcnQoKSwgdW5pY29kZVJhbmdlRW5kKCkpKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmQoU3RyaW5nOjpmb3JtYXQoIlUrJVgtJVgiLCB1bmljb2RlUmFuZ2VTdGFydCgp
LCB1bmljb2RlUmFuZ2VFbmQoKSkpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBTdHJpbmdU
b2tlbjoKLSAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVN0cmluZyh2YWx1ZSgpLnRvU3RyaW5nKCks
IGJ1aWxkZXIpOworICAgICAgICBzZXJpYWxpemVTdHJpbmcodmFsdWUoKS50b1N0cmluZygpLCBi
dWlsZGVyKTsKKyAgICAgICAgcmV0dXJuOwogCiAgICAgY2FzZSBJbmNsdWRlTWF0Y2hUb2tlbjoK
LSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCJ+PSIpOworICAgICAgICBidWlsZGVyLmFw
cGVuZCgifj0iKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRGFzaE1hdGNoVG9rZW46Ci0g
ICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgifD0iKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQoInw9Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFByZWZpeE1hdGNoVG9rZW46Ci0g
ICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgiXj0iKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQoIl49Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFN1ZmZpeE1hdGNoVG9rZW46Ci0g
ICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgiJD0iKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQoIiQ9Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFN1YnN0cmluZ01hdGNoVG9rZW46
Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgiKj0iKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQoIio9Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIENvbHVtblRva2VuOgotICAg
ICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoInx8Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCJ8fCIpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBDRE9Ub2tlbjoKLSAgICAgICAgcmV0
dXJuIGJ1aWxkZXIuYXBwZW5kKCI8IS0tIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCI8IS0t
Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIENEQ1Rva2VuOgotICAgICAgICByZXR1cm4g
YnVpbGRlci5hcHBlbmQoIi0tPiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiLS0+Iik7Cisg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIEJhZFN0cmluZ1Rva2VuOgotICAgICAgICByZXR1cm4g
YnVpbGRlci5hcHBlbmQoIidcbiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiJ1xuIik7Cisg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIEJhZFVybFRva2VuOgotICAgICAgICByZXR1cm4gYnVp
bGRlci5hcHBlbmQoInVybCgoKSIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgidXJsKCgpIik7
CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFdoaXRlc3BhY2VUb2tlbjoKLSAgICAgICAgcmV0
dXJuIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7Cisg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIENvbG9uVG9rZW46Ci0gICAgICAgIHJldHVybiBidWls
ZGVyLmFwcGVuZCgnOicpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnOicpOworICAgICAgICBy
ZXR1cm47CiAgICAgY2FzZSBTZW1pY29sb25Ub2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIu
YXBwZW5kKCc7Jyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCc7Jyk7CisgICAgICAgIHJldHVy
bjsKICAgICBjYXNlIENvbW1hVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgn
LCcpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnLCcpOworICAgICAgICByZXR1cm47CiAgICAg
Y2FzZSBMZWZ0UGFyZW50aGVzaXNUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5k
KCcoJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcoJyk7CisgICAgICAgIHJldHVybjsKICAg
ICBjYXNlIFJpZ2h0UGFyZW50aGVzaXNUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBw
ZW5kKCcpJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7CisgICAgICAgIHJldHVybjsK
ICAgICBjYXNlIExlZnRCcmFja2V0VG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVu
ZCgnWycpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnWycpOworICAgICAgICByZXR1cm47CiAg
ICAgY2FzZSBSaWdodEJyYWNrZXRUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5k
KCddJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCddJyk7CisgICAgICAgIHJldHVybjsKICAg
ICBjYXNlIExlZnRCcmFjZVRva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJ3sn
KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJ3snKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgUmlnaHRCcmFjZVRva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJ30nKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmQoJ30nKTsKKyAgICAgICAgcmV0dXJuOwogCiAgICAgY2Fz
ZSBFT0ZUb2tlbjoKICAgICBjYXNlIENvbW1lbnRUb2tlbjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW5SYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuUmFuZ2UuY3BwCmluZGV4IGNiOWM1ODAuLmVmZTVh
MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW5S
YW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlblJh
bmdlLmNwcApAQCAtMTEzLDcgKzExMyw5IEBAIFN0cmluZyBDU1NQYXJzZXJUb2tlblJhbmdlOjpz
ZXJpYWxpemUoKSBjb25zdAogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBmb3IgKGNv
bnN0IENTU1BhcnNlclRva2VuKiBpdCA9IG1fZmlyc3Q7IGl0IDwgbV9sYXN0OyArK2l0KQogICAg
ICAgICBpdC0+c2VyaWFsaXplKGJ1aWxkZXIpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCmlu
ZGV4IGJjZWNlNzAuLjMwOTA3NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUHJvcGVydHlQYXJzZXIuY3BwCkBAIC0xMDE2LDcgKzEwMTYsOSBAQCBzdGF0aWMgU3RyaW5n
IGNvbmNhdGVuYXRlRmFtaWx5TmFtZShDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKICAgICB9
CiAgICAgaWYgKCFhZGRlZFNwYWNlICYmIGlzQ1NTV2lkZUtleXdvcmQoZmlyc3RUb2tlbi5pZCgp
KSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgUmVmUHRyPENTU1ZhbHVl
PiBjb25zdW1lRmFtaWx5TmFtZShDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKQEAgLTMyNjQs
NyArMzI2NiwxMCBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gcGFyc2VHcmlkVGVtcGxhdGVBcmVh
c0NvbHVtbk5hbWVzKGNvbnN0IFN0cmluZyYgZ3JpZFJvd05hbQogICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aCgpOyArK2kpIHsKICAgICAgICAgaWYgKGlzQ1NTU3BhY2Uo
dGV4dFtpXSkpIHsKICAgICAgICAgICAgIGlmICghYXJlYU5hbWUuaXNFbXB0eSgpKSB7Ci0gICAg
ICAgICAgICAgICAgY29sdW1uTmFtZXMuYXBwZW5kKGFyZWFOYW1lLnRvU3RyaW5nKCkpOworICAg
ICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGFyZWFOYW1lLnRvU3RyaW5nKCkpCisgICAg
ICAgICAgICAgICAgICAgIGNvbHVtbk5hbWVzLmFwcGVuZCgqc3RyaW5nKTsKKyAgICAgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAgICAg
YXJlYU5hbWUuY2xlYXIoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNvbnRpbnVlOwpA
QCAtMzI3MywxNCArMzI3OCwyMCBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gcGFyc2VHcmlkVGVt
cGxhdGVBcmVhc0NvbHVtbk5hbWVzKGNvbnN0IFN0cmluZyYgZ3JpZFJvd05hbQogICAgICAgICAg
ICAgaWYgKGFyZWFOYW1lID09ICIuIikKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgICAgIGlmICghYXJlYU5hbWUuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgY29sdW1u
TmFtZXMuYXBwZW5kKGFyZWFOYW1lLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IGFyZWFOYW1lLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICAgIGNv
bHVtbk5hbWVzLmFwcGVuZCgqc3RyaW5nKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAgICAgYXJlYU5hbWUuY2xlYXIoKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmICghaXNOYW1l
Q29kZVBvaW50KHRleHRbaV0pKQogICAgICAgICAgICAgICAgIHJldHVybiBWZWN0b3I8U3RyaW5n
PigpOwogICAgICAgICAgICAgaWYgKGFyZWFOYW1lID09ICIuIikgewotICAgICAgICAgICAgICAg
IGNvbHVtbk5hbWVzLmFwcGVuZChhcmVhTmFtZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSBhcmVhTmFtZS50b1N0cmluZygpKQorICAgICAgICAgICAgICAg
ICAgICBjb2x1bW5OYW1lcy5hcHBlbmQoKnN0cmluZyk7CisgICAgICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgICAgIGFyZWFOYW1lLmNs
ZWFyKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTMyODgsOCArMzI5OSwxMiBAQCBz
dGF0aWMgVmVjdG9yPFN0cmluZz4gcGFyc2VHcmlkVGVtcGxhdGVBcmVhc0NvbHVtbk5hbWVzKGNv
bnN0IFN0cmluZyYgZ3JpZFJvd05hbQogICAgICAgICBhcmVhTmFtZS5hcHBlbmQodGV4dFtpXSk7
CiAgICAgfQogCi0gICAgaWYgKCFhcmVhTmFtZS5pc0VtcHR5KCkpCi0gICAgICAgIGNvbHVtbk5h
bWVzLmFwcGVuZChhcmVhTmFtZS50b1N0cmluZygpKTsKKyAgICBpZiAoIWFyZWFOYW1lLmlzRW1w
dHkoKSkgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBhcmVhTmFtZS50b1N0cmluZygpKQor
ICAgICAgICAgICAgY29sdW1uTmFtZXMuYXBwZW5kKCpzdHJpbmcpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBDUkFTSCgpOworICAgIH0KIAogICAgIHJldHVybiBjb2x1bW5OYW1lczsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTVG9rZW5pemVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTVG9rZW5pemVyLmNwcAppbmRleCAxZjFhMjNl
Li4zYjg0ZTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Rva2Vu
aXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NUb2tlbml6ZXIuY3Bw
CkBAIC02MDUsOCArNjA1LDExIEBAIENTU1BhcnNlclRva2VuIENTU1Rva2VuaXplcjo6Y29uc3Vt
ZVN0cmluZ1Rva2VuVW50aWwoVUNoYXIgZW5kaW5nQ29kZVBvaW50KQogICAgIFN0cmluZ0J1aWxk
ZXIgb3V0cHV0OwogICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgIFVDaGFyIGNjID0gY29uc3Vt
ZSgpOwotICAgICAgICBpZiAoY2MgPT0gZW5kaW5nQ29kZVBvaW50IHx8IGNjID09IGtFbmRPZkZp
bGVNYXJrZXIpCi0gICAgICAgICAgICByZXR1cm4gQ1NTUGFyc2VyVG9rZW4oU3RyaW5nVG9rZW4s
IHJlZ2lzdGVyU3RyaW5nKG91dHB1dC50b1N0cmluZygpKSk7CisgICAgICAgIGlmIChjYyA9PSBl
bmRpbmdDb2RlUG9pbnQgfHwgY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgeworICAgICAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gb3V0cHV0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgcmV0
dXJuIENTU1BhcnNlclRva2VuKFN0cmluZ1Rva2VuLCByZWdpc3RlclN0cmluZygqc3RyaW5nKSk7
CisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CiAgICAgICAgIGlmIChpc05ld0xpbmUo
Y2MpKSB7CiAgICAgICAgICAgICByZWNvbnN1bWUoY2MpOwogICAgICAgICAgICAgcmV0dXJuIENT
U1BhcnNlclRva2VuKEJhZFN0cmluZ1Rva2VuKTsKQEAgLTY4MCwxMyArNjgzLDE5IEBAIENTU1Bh
cnNlclRva2VuIENTU1Rva2VuaXplcjo6Y29uc3VtZVVybFRva2VuKCkKICAgICBTdHJpbmdCdWls
ZGVyIHJlc3VsdDsKICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICBVQ2hhciBjYyA9IGNvbnN1
bWUoKTsKLSAgICAgICAgaWYgKGNjID09ICcpJyB8fCBjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKQot
ICAgICAgICAgICAgcmV0dXJuIENTU1BhcnNlclRva2VuKFVybFRva2VuLCByZWdpc3RlclN0cmlu
ZyhyZXN1bHQudG9TdHJpbmcoKSkpOworICAgICAgICBpZiAoY2MgPT0gJyknIHx8IGNjID09IGtF
bmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50
b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHJldHVybiBDU1NQYXJzZXJUb2tlbihVcmxUb2tl
biwgcmVnaXN0ZXJTdHJpbmcoKnN0cmluZykpOworICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAg
ICAgfQogCiAgICAgICAgIGlmIChpc0hUTUxTcGFjZShjYykpIHsKICAgICAgICAgICAgIG1faW5w
dXQuYWR2YW5jZVVudGlsTm9uV2hpdGVzcGFjZSgpOwotICAgICAgICAgICAgaWYgKGNvbnN1bWVJ
Zk5leHQoJyknKSB8fCBtX2lucHV0Lm5leHRJbnB1dENoYXIoKSA9PSBrRW5kT2ZGaWxlTWFya2Vy
KQotICAgICAgICAgICAgICAgIHJldHVybiBDU1NQYXJzZXJUb2tlbihVcmxUb2tlbiwgcmVnaXN0
ZXJTdHJpbmcocmVzdWx0LnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgIGlmIChjb25zdW1lSWZO
ZXh0KCcpJykgfHwgbV9pbnB1dC5uZXh0SW5wdXRDaGFyKCkgPT0ga0VuZE9mRmlsZU1hcmtlcikg
eworICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUGFyc2VyVG9rZW4oVXJsVG9rZW4sIHJlZ2lz
dGVyU3RyaW5nKCpzdHJpbmcpKTsKKyAgICAgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICAg
ICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApAQCAtNzkxLDcgKzgwMCw5IEBA
IFN0cmluZ1ZpZXcgQ1NTVG9rZW5pemVyOjpjb25zdW1lTmFtZSgpCiAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgfQogICAgICAgICByZWNvbnN1bWUoY2MpOwotICAgICAgICByZXR1cm4g
cmVnaXN0ZXJTdHJpbmcocmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiByZWdpc3RlclN0cmlu
Zygqc3RyaW5nKTsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9CiAKQEAgLTgxMSwxMSArODIy
LDE0IEBAIFVDaGFyMzIgQ1NTVG9rZW5pemVyOjpjb25zdW1lRXNjYXBlKCkKICAgICAgICAgfTsK
ICAgICAgICAgY29uc3VtZVNpbmdsZVdoaXRlc3BhY2VJZk5leHQoKTsKICAgICAgICAgYm9vbCBv
ayA9IGZhbHNlOwotICAgICAgICBVQ2hhcjMyIGNvZGVQb2ludCA9IGhleENoYXJzLnRvU3RyaW5n
KCkudG9VSW50U3RyaWN0KCZvaywgMTYpOwotICAgICAgICBBU1NFUlQob2spOwotICAgICAgICBp
ZiAoIWNvZGVQb2ludCB8fCAoMHhEODAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhE
RkZGKSB8fCBjb2RlUG9pbnQgPiAweDEwRkZGRikKLSAgICAgICAgICAgIHJldHVybiByZXBsYWNl
bWVudENoYXJhY3RlcjsKLSAgICAgICAgcmV0dXJuIGNvZGVQb2ludDsKKyAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gaGV4Q2hhcnMudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgVUNoYXIzMiBj
b2RlUG9pbnQgPSBzdHJpbmctPnRvVUludFN0cmljdCgmb2ssIDE2KTsKKyAgICAgICAgICAgIEFT
U0VSVChvayk7CisgICAgICAgICAgICBpZiAoIWNvZGVQb2ludCB8fCAoMHhEODAwIDw9IGNvZGVQ
b2ludCAmJiBjb2RlUG9pbnQgPD0gMHhERkZGKSB8fCBjb2RlUG9pbnQgPiAweDEwRkZGRikKKyAg
ICAgICAgICAgICAgICByZXR1cm4gcmVwbGFjZW1lbnRDaGFyYWN0ZXI7CisgICAgICAgICAgICBy
ZXR1cm4gY29kZVBvaW50OworICAgICAgICB9CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAg
ICAgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGF0YXNldERPTVN0cmluZ01hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YXNl
dERPTVN0cmluZ01hcC5jcHAKaW5kZXggZjJkODQyMC4uZDU2NjdiNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcApAQCAtNjUsNyArNjUsOSBAQCBzdGF0aWMg
U3RyaW5nIGNvbnZlcnRBdHRyaWJ1dGVOYW1lVG9Qcm9wZXJ0eU5hbWUoY29uc3QgU3RyaW5nJiBu
YW1lKQogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBib29sIHBy
b3BlcnR5TmFtZU1hdGNoZXNBdHRyaWJ1dGVOYW1lKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1l
LCBjb25zdCBTdHJpbmcmIGF0dHJpYnV0ZU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXgg
MGEyMzI2My4uODgxNDU0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMjE5Nyw3ICsyMTk3
LDEwIEBAIHZvaWQgRWxlbWVudDo6Zm9ybWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1bnNp
Z25lZCBsZW5ndGgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQocyk7CiAgICAgfQogCi0g
ICAgc3RybmNweShidWZmZXIsIHJlc3VsdC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGxlbmd0
aCAtIDEpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAg
ICBzdHJuY3B5KGJ1ZmZlciwgc3RyaW5nLT51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsKKyAg
ICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4
IDRiMWU4NzIuLjhmY2JkN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTE1MTksNyArMTUxOSw5IEBA
IFN0cmluZyBOb2RlOjp0ZXh0Q29udGVudChib29sIGNvbnZlcnRCUnNUb05ld2xpbmVzKSBjb25z
dAogICAgIFN0cmluZ0J1aWxkZXIgY29udGVudDsKICAgICBib29sIGlzTnVsbFN0cmluZyA9IHRy
dWU7CiAgICAgYXBwZW5kVGV4dENvbnRlbnQodGhpcywgY29udmVydEJSc1RvTmV3bGluZXMsIGlz
TnVsbFN0cmluZywgY29udGVudCk7Ci0gICAgcmV0dXJuIGlzTnVsbFN0cmluZyA/IFN0cmluZygp
IDogY29udGVudC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGNvbnRlbnQudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIGlzTnVsbFN0cmluZyA/IFN0cmluZygpIDogKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBFeGNlcHRpb25Pcjx2b2lkPiBOb2RlOjpzZXRUZXh0Q29u
dGVudChjb25zdCBTdHJpbmcmIHRleHQpCkBAIC0xNzMwLDcgKzE3MzIsMTAgQEAgdm9pZCBOb2Rl
OjpzaG93Tm9kZShjb25zdCBjaGFyKiBwcmVmaXgpIGNvbnN0CiAgICAgICAgIFN0cmluZ0J1aWxk
ZXIgYXR0cnM7CiAgICAgICAgIGFwcGVuZEF0dHJpYnV0ZURlc2ModGhpcywgYXR0cnMsIGNsYXNz
QXR0ciwgIiBDTEFTUz0iKTsKICAgICAgICAgYXBwZW5kQXR0cmlidXRlRGVzYyh0aGlzLCBhdHRy
cywgc3R5bGVBdHRyLCAiIFNUWUxFPSIpOwotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzJXNc
dCVwIChyZW5kZXJlciAlcCkgJXMlcyVzXG4iLCBwcmVmaXgsIG5vZGVOYW1lKCkudXRmOCgpLmRh
dGEoKSwgdGhpcywgcmVuZGVyZXIoKSwgYXR0cnMudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBu
ZWVkc1N0eWxlUmVjYWxjKCkgPyAiIChuZWVkcyBzdHlsZSByZWNhbGMpIiA6ICIiLCBjaGlsZE5l
ZWRzU3R5bGVSZWNhbGMoKSA/ICIgKGNoaWxkIG5lZWRzIHN0eWxlIHJlY2FsYykiIDogIiIpOwor
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBhdHRycy50b1N0cmluZygpKQorICAgICAgICAgICAg
ZnByaW50ZihzdGRlcnIsICIlcyVzXHQlcCAocmVuZGVyZXIgJXApICVzJXMlc1xuIiwgcHJlZml4
LCBub2RlTmFtZSgpLnV0ZjgoKS5kYXRhKCksIHRoaXMsIHJlbmRlcmVyKCksIHN0cmluZy0+dXRm
OCgpLmRhdGEoKSwgbmVlZHNTdHlsZVJlY2FsYygpID8gIiAobmVlZHMgc3R5bGUgcmVjYWxjKSIg
OiAiIiwgY2hpbGROZWVkc1N0eWxlUmVjYWxjKCkgPyAiIChjaGlsZCBuZWVkcyBzdHlsZSByZWNh
bGMpIiA6ICIiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9
CiAKQEAgLTE4MDIsMTIgKzE4MDcsMTkgQEAgc3RhdGljIHZvaWQgdHJhdmVyc2VUcmVlQW5kTWFy
ayhjb25zdCBTdHJpbmcmIGJhc2VJbmRlbnQsIGNvbnN0IE5vZGUqIHJvb3ROb2RlLAogICAgICAg
ICBpbmRlbnQuYXBwZW5kKGJhc2VJbmRlbnQpOwogICAgICAgICBmb3IgKGNvbnN0IE5vZGUqIHRt
cE5vZGUgPSBub2RlOyB0bXBOb2RlICYmIHRtcE5vZGUgIT0gcm9vdE5vZGU7IHRtcE5vZGUgPSB0
bXBOb2RlLT5wYXJlbnRPclNoYWRvd0hvc3ROb2RlKCkpCiAgICAgICAgICAgICBpbmRlbnQuYXBw
ZW5kKCdcdCcpOwotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzIiwgaW5kZW50LnRvU3RyaW5n
KCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGluZGVudC50b1N0
cmluZygpKQorICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlcyIsIHN0cmluZy0+dXRmOCgp
LmRhdGEoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIG5v
ZGUtPnNob3dOb2RlKCk7CiAgICAgICAgIGluZGVudC5hcHBlbmQoJ1x0Jyk7CiAgICAgICAgIGlm
ICghbm9kZS0+aXNTaGFkb3dSb290KCkpIHsKLSAgICAgICAgICAgIGlmIChTaGFkb3dSb290KiBz
aGFkb3dSb290ID0gbm9kZS0+c2hhZG93Um9vdCgpKQotICAgICAgICAgICAgICAgIHRyYXZlcnNl
VHJlZUFuZE1hcmsoaW5kZW50LnRvU3RyaW5nKCksIHNoYWRvd1Jvb3QsIG1hcmtlZE5vZGUxLCBt
YXJrZWRMYWJlbDEsIG1hcmtlZE5vZGUyLCBtYXJrZWRMYWJlbDIpOworICAgICAgICAgICAgaWYg
KFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QgPSBub2RlLT5zaGFkb3dSb290KCkpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBpbmRlbnQudG9TdHJpbmcoKSkKKyAgICAgICAgICAg
ICAgICAgICAgdHJhdmVyc2VUcmVlQW5kTWFyaygqc3RyaW5nLCBzaGFkb3dSb290LCBtYXJrZWRO
b2RlMSwgbWFya2VkTGFiZWwxLCBtYXJrZWROb2RlMiwgbWFya2VkTGFiZWwyKTsKKyAgICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7CisgICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9z
aXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAppbmRleCA4OWE1MDZm
Li5hNTIwMTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKQEAgLTE0MTksNyArMTQxOSwxMCBA
QCB2b2lkIFBvc2l0aW9uOjpmb3JtYXRGb3JEZWJ1Z2dlcihjaGFyKiBidWZmZXIsIHVuc2lnbmVk
IGxlbmd0aCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZChzKTsKICAgICB9CiAKLSAgICBz
dHJuY3B5KGJ1ZmZlciwgcmVzdWx0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0g
MSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHN0
cm5jcHkoYnVmZmVyLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOworICAgIGVs
c2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBQb3NpdGlvbjo6c2hvd0FuY2hvclR5cGVB
bmRPZmZzZXQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKaW5kZXggYTU3YTVlMi4uMTU5ODcwYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vUmFuZ2UuY3BwCkBAIC05NDksNyArOTQ5LDkgQEAgU3RyaW5nIFJhbmdlOjp0b1N0
cmluZygpIGNvbnN0CiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIFJhbmdlOjp0b0hU
TUwoKSBjb25zdApAQCAtMTUzNSw3ICsxNTM3LDEwIEBAIHZvaWQgUmFuZ2U6OmZvcm1hdEZvckRl
YnVnZ2VyKGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgbGVuZ3RoKSBjb25zdAogICAgIGVuZENvbnRh
aW5lcigpLmZvcm1hdEZvckRlYnVnZ2VyKHMsIEZvcm1hdEJ1ZmZlclNpemUpOwogICAgIHJlc3Vs
dC5hcHBlbmQocyk7CiAKLSAgICBzdHJuY3B5KGJ1ZmZlciwgcmVzdWx0LnRvU3RyaW5nKCkudXRm
OCgpLmRhdGEoKSwgbGVuZ3RoIC0gMSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRv
U3RyaW5nKCkpCisgICAgICAgIHN0cm5jcHkoYnVmZmVyLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCks
IGxlbmd0aCAtIDEpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3Bw
CmluZGV4IGM0ZDg1ZDguLmE1MDM5MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0xMTIsNyArMTEyLDkgQEAgc3RhdGlj
IFN0cmluZyB0aHJvdHRsaW5nUmVhc29uc1RvU3RyaW5nKE9wdGlvblNldDxTY3JpcHRlZEFuaW1h
dGlvbkNvbnRyb2xsZXI6OlQKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCd8Jyk7CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKHRocm90dGxpbmdSZWFzb25Ub1N0cmluZyhyZWFzb24pKTsKICAg
ICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5
Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcAppbmRl
eCA0ZjhmMWE4Li4xNDgyMjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJp
dHlDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNw
cApAQCAtMTUyLDcgKzE1MiwxMCBAQCBTYW5kYm94RmxhZ3MgU2VjdXJpdHlDb250ZXh0OjpwYXJz
ZVNhbmRib3hQb2xpY3koY29uc3QgU3RyaW5nJiBwb2xpY3ksIFN0cmluZyYgaQogICAgICAgICAg
ICAgdG9rZW5FcnJvcnMuYXBwZW5kTGl0ZXJhbCgiIGFyZSBpbnZhbGlkIHNhbmRib3ggZmxhZ3Mu
Iik7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHRva2VuRXJyb3JzLmFwcGVuZExpdGVyYWwo
IiBpcyBhbiBpbnZhbGlkIHNhbmRib3ggZmxhZy4iKTsKLSAgICAgICAgaW52YWxpZFRva2Vuc0Vy
cm9yTWVzc2FnZSA9IHRva2VuRXJyb3JzLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IHRva2VuRXJyb3JzLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbnZhbGlkVG9rZW5z
RXJyb3JNZXNzYWdlID0gKnN0cmluZzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0go
KTsKICAgICB9CiAKICAgICByZXR1cm4gZmxhZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKaW5kZXggNzMxNWQx
Ni4uYjMyN2Y1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcApAQCAtMTEzLDcgKzExMyw5IEBAIFN0cmluZyBU
ZXh0Ojp3aG9sZVRleHQoKSBjb25zdAogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogICAgIGZv
ciAoY29uc3QgVGV4dCogdGV4dCA9IHN0YXJ0VGV4dDsgdGV4dCAhPSBvbmVQYXN0RW5kVGV4dDsg
dGV4dCA9IFRleHROb2RlVHJhdmVyc2FsOjpuZXh0U2libGluZygqdGV4dCkpCiAgICAgICAgIHJl
c3VsdC5hcHBlbmQodGV4dC0+ZGF0YSgpKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFJlZlB0cjxUZXh0PiBUZXh0OjpyZXBsYWNl
V2hvbGVUZXh0KGNvbnN0IFN0cmluZyYgbmV3VGV4dCkKQEAgLTI0MCw3ICsyNDIsMTAgQEAgdm9p
ZCBUZXh0Ojpmb3JtYXRGb3JEZWJ1Z2dlcihjaGFyKiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkg
Y29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnIicpOwogICAgIH0KIAotICAgIHN0cm5jcHko
YnVmZmVyLCByZXN1bHQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgc3RybmNweShi
dWZmZXIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0gMSk7CisgICAgZWxzZQorICAg
ICAgICBDUkFTSCgpOwogICAgIGJ1ZmZlcltsZW5ndGggLSAxXSA9ICdcMCc7CiB9CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0Tm9kZVRyYXZlcnNhbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vVGV4dE5vZGVUcmF2ZXJzYWwuY3BwCmluZGV4IGI3OGNhNzkuLjZk
NDE4ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0Tm9kZVRyYXZlcnNhbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHROb2RlVHJhdmVyc2FsLmNwcApAQCAtNDIs
NyArNDIsOSBAQCBTdHJpbmcgY29udGVudHNBc1N0cmluZyhjb25zdCBDb250YWluZXJOb2RlJiBy
b290KQogewogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogICAgIGFwcGVuZENvbnRlbnRzKHJv
b3QsIHJlc3VsdCk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBTdHJpbmcgY29udGVudHNBc1N0cmluZyhjb25zdCBOb2RlJiByb290
KQpAQCAtNTksNyArNjEsOSBAQCBTdHJpbmcgY2hpbGRUZXh0Q29udGVudChjb25zdCBDb250YWlu
ZXJOb2RlJiByb290KQogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogICAgIGZvciAoVGV4dCog
dGV4dCA9IFRleHROb2RlVHJhdmVyc2FsOjpmaXJzdENoaWxkKHJvb3QpOyB0ZXh0OyB0ZXh0ID0g
VGV4dE5vZGVUcmF2ZXJzYWw6Om5leHRTaWJsaW5nKCp0ZXh0KSkKICAgICAgICAgcmVzdWx0LmFw
cGVuZCh0ZXh0LT5kYXRhKCkpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5
U3R5bGVDb21tYW5kLmNwcAppbmRleCA2OWQ4YWYyLi5hZTE2ZjJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcApAQCAtMTM4Miw3ICsxMzgyLDEwIEBA
IHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmFkZEJsb2NrU3R5bGUoY29uc3QgU3R5bGVDaGFuZ2Um
IHN0eWxlQ2hhbmdlLCBIVE1MRWxlbWVuCiAgICAgICAgICAgICBjc3NUZXh0LmFwcGVuZCgnICcp
OwogICAgICAgICBjc3NUZXh0LmFwcGVuZChkZWNsLT5hc1RleHQoKSk7CiAgICAgfQotICAgIHNl
dE5vZGVBdHRyaWJ1dGUoYmxvY2ssIHN0eWxlQXR0ciwgY3NzVGV4dC50b1N0cmluZygpKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBjc3NUZXh0LnRvU3RyaW5nKCkpCisgICAgICAgIHNldE5vZGVB
dHRyaWJ1dGUoYmxvY2ssIHN0eWxlQXR0ciwgKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBD
UkFTSCgpOwogfQogCiB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjphZGRJbmxpbmVTdHlsZUlmTmVl
ZGVkKEVkaXRpbmdTdHlsZSogc3R5bGUsIE5vZGUmIHN0YXJ0LCBOb2RlJiBlbmQsIEVBZGRTdHls
ZWRFbGVtZW50IGFkZFN0eWxlZEVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNwcApp
bmRleCBlNzliNjQ2Li4zMGMxNjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5jcHAKQEAg
LTQyOSw3ICs0MjksOSBAQCBTdHJpbmcgc3RyaW5nV2l0aFJlYmFsYW5jZWRXaGl0ZXNwYWNlKGNv
bnN0IFN0cmluZyYgc3RyaW5nLCBib29sIHN0YXJ0SXNTdGFydE9mUAogCiAgICAgcmViYWxhbmNl
ZFN0cmluZy5yZXNlcnZlQ2FwYWNpdHkobGVuZ3RoKTsKICAgICByZWJhbGFuY2VkU3RyaW5nLmFw
cGVuZChzdHJpbmcsIHJlYmFsYW5jZWRTdHJpbmcubGVuZ3RoKCksIGxlbmd0aCAtIHJlYmFsYW5j
ZWRTdHJpbmcubGVuZ3RoKCkpOwotICAgIHJldHVybiByZWJhbGFuY2VkU3RyaW5nLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmViYWxhbmNlZFN0cmluZy50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIGlzVGFibGVT
dHJ1Y3R1cmVOb2RlKGNvbnN0IE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0hUTUxJbnRlcmNoYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0hU
TUxJbnRlcmNoYW5nZS5jcHAKaW5kZXggYjIyMzQzYi4uY2Y4NTIzMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9IVE1MSW50ZXJjaGFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSFRNTEludGVyY2hhbmdlLmNwcApAQCAtOTUsNyArOTUsOSBAQCBTdHJpbmcg
Y29udmVydEhUTUxUZXh0VG9JbnRlcmNoYW5nZUZvcm1hdChjb25zdCBTdHJpbmcmIGluLCBjb25z
dCBUZXh0KiBub2RlKQogICAgICAgICBpICs9IGNvbnN1bWVkOwogICAgIH0KIAotICAgIHJldHVy
biBzLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcy50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxh
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCmlu
ZGV4IDkwNjk2N2YuLjY3ZTc2YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
TWFya3VwQWNjdW11bGF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3Vw
QWNjdW11bGF0b3IuY3BwCkBAIC0xMzAsNyArMTMwLDkgQEAgTWFya3VwQWNjdW11bGF0b3I6On5N
YXJrdXBBY2N1bXVsYXRvcigpID0gZGVmYXVsdDsKIFN0cmluZyBNYXJrdXBBY2N1bXVsYXRvcjo6
c2VyaWFsaXplTm9kZXMoTm9kZSYgdGFyZ2V0Tm9kZSwgRUNoaWxkcmVuT25seSBjaGlsZHJlbk9u
bHksIFZlY3RvcjxRdWFsaWZpZWROYW1lPiogdGFnTmFtZXNUb1NraXApCiB7CiAgICAgc2VyaWFs
aXplTm9kZXNXaXRoTmFtZXNwYWNlcyh0YXJnZXROb2RlLCBjaGlsZHJlbk9ubHksIDAsIHRhZ05h
bWVzVG9Ta2lwKTsKLSAgICByZXR1cm4gbV9tYXJrdXAudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBtX21hcmt1cC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiB2b2lkIE1hcmt1cEFjY3VtdWxhdG9yOjpzZXJpYWxpemVOb2Rl
c1dpdGhOYW1lc3BhY2VzKE5vZGUmIHRhcmdldE5vZGUsIEVDaGlsZHJlbk9ubHkgY2hpbGRyZW5P
bmx5LCBjb25zdCBOYW1lc3BhY2VzKiBuYW1lc3BhY2VzLCBWZWN0b3I8UXVhbGlmaWVkTmFtZT4q
IHRhZ05hbWVzVG9Ta2lwKQpAQCAtNDgzLDExICs0ODUsMTQgQEAgdm9pZCBNYXJrdXBBY2N1bXVs
YXRvcjo6Z2VuZXJhdGVVbmlxdWVQcmVmaXgoUXVhbGlmaWVkTmFtZSYgcHJlZml4ZWROYW1lLCBj
b25zdAogICAgICAgICBidWlsZGVyLmNsZWFyKCk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiTlMiKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoKyttX3ByZWZpeExldmVs
KTsKLSAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lID0gYnVpbGRlci50b0F0b21pY1N0
cmluZygpOwotICAgICAgICBpZiAoIW5hbWVzcGFjZXMuZ2V0KG5hbWUuaW1wbCgpKSkgewotICAg
ICAgICAgICAgcHJlZml4ZWROYW1lLnNldFByZWZpeChuYW1lKTsKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgfQorICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvQXRvbWlj
U3RyaW5nKCkpIHsKKyAgICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9ICpzdHJp
bmc7CisgICAgICAgICAgICBpZiAoIW5hbWVzcGFjZXMuZ2V0KG5hbWUuaW1wbCgpKSkgeworICAg
ICAgICAgICAgICAgIHByZWZpeGVkTmFtZS5zZXRQcmVmaXgobmFtZSk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIENS
QVNIKCk7CiAgICAgfSB3aGlsZSAodHJ1ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4
dEl0ZXJhdG9yLmNwcAppbmRleCA2NTc0ZjFlLi5mNTQzMWVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UZXh0SXRlcmF0b3IuY3BwCkBAIC0yNjY3LDEyICsyNjY3LDE1IEBAIFN0cmluZyBwbGFp
blRleHQoY29uc3QgUmFuZ2UqIHIsIFRleHRJdGVyYXRvckJlaGF2aW9yIGRlZmF1bHRCZWhhdmlv
ciwgYm9vbCBpc0RpCiAgICAgaWYgKCFidWZmZXJMZW5ndGgpCiAgICAgICAgIHJldHVybiBlbXB0
eVN0cmluZygpOwogCi0gICAgU3RyaW5nIHJlc3VsdCA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgU3RyaW5n
IHJlc3VsdCA9ICpzdHJpbmc7CiAKLSAgICBpZiAoaXNEaXNwbGF5U3RyaW5nKQotICAgICAgICBy
LT5vd25lckRvY3VtZW50KCkuZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhyZXN1bHQp
OworICAgICAgICBpZiAoaXNEaXNwbGF5U3RyaW5nKQorICAgICAgICAgICAgci0+b3duZXJEb2N1
bWVudCgpLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcocmVzdWx0KTsKIAotICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIENSQVNIKCk7
CiB9CiAKIFN0cmluZyBwbGFpblRleHRSZXBsYWNpbmdOb0JyZWFrU3BhY2UoY29uc3QgUmFuZ2Uq
IHJhbmdlLCBUZXh0SXRlcmF0b3JCZWhhdmlvciBkZWZhdWx0QmVoYXZpb3IsIGJvb2wgaXNEaXNw
bGF5U3RyaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKaW5kZXgg
ZmQ3OTA2Ni4uYmVlNjNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBp
bmdDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQu
Y3BwCkBAIC00MjUsNyArNDI1LDkgQEAgUmVmUHRyPERhdGFUcmFuc2Zlcj4gVHlwaW5nQ29tbWFu
ZDo6aW5wdXRFdmVudERhdGFUcmFuc2ZlcigpIGNvbnN0CiAKICAgICBTdHJpbmdCdWlsZGVyIGh0
bWxUZXh0OwogICAgIE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRDaGFyYWN0ZXJzUmVwbGFjaW5n
RW50aXRpZXMoaHRtbFRleHQsIG1fY3VycmVudFRleHRUb0luc2VydCwgMCwgbV9jdXJyZW50VGV4
dFRvSW5zZXJ0Lmxlbmd0aCgpLCBFbnRpdHlNYXNrSW5IVE1MUENEQVRBKTsKLSAgICByZXR1cm4g
RGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JJbnB1dEV2ZW50KG1fY3VycmVudFRleHRUb0luc2VydCwg
aHRtbFRleHQudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gaHRtbFRleHQudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9ySW5wdXRFdmVu
dChtX2N1cnJlbnRUZXh0VG9JbnNlcnQsICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIHZv
aWQgVHlwaW5nQ29tbWFuZDo6ZGlkQXBwbHlDb21tYW5kKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCmluZGV4IDE4NjUwYWIuLjczYWNjYzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcApAQCAtNzA3LDcgKzcwNywx
MCBAQCB2b2lkIFZpc2libGVTZWxlY3Rpb246OmZvcm1hdEZvckRlYnVnZ2VyKGNoYXIqIGJ1ZmZl
ciwgdW5zaWduZWQgbGVuZ3RoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKHMpOwogICAg
IH0KIAotICAgIHN0cm5jcHkoYnVmZmVyLCByZXN1bHQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgp
LCBsZW5ndGggLSAxKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkK
KyAgICAgICAgc3RybmNweShidWZmZXIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0g
MSk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIFZpc2libGVTZWxlY3Rp
b246OnNob3dUcmVlRm9yVGhpcygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nv
Y29hL0RhdGFEZXRlY3Rpb24ubW0KaW5kZXggZjQ0NTYxNi4uZTk4NjQ0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQpAQCAtMzE5LDcgKzMxOSw5
IEBAIHN0YXRpYyBTdHJpbmcgZGF0YURldGVjdG9yU3RyaW5nRm9yUGF0aChOU0luZGV4UGF0aCAq
cGF0aCkKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIoKHVuc2lnbmVkIGxvbmcp
W3BhdGggaW5kZXhBdFBvc2l0aW9uOjBdKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQo
Jy8nKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIoKHVuc2lnbmVkIGxvbmcp
W3BhdGggaW5kZXhBdFBvc2l0aW9uOjFdKTsKLSAgICAgICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIu
dG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAg
ICAgfQogICAgIGRlZmF1bHQ6IHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBzdHJpbmdCdWlsZGVy
OwpAQCAtMzI5LDcgKzMzMSw5IEBAIHN0YXRpYyBTdHJpbmcgZGF0YURldGVjdG9yU3RyaW5nRm9y
UGF0aChOU0luZGV4UGF0aCAqcGF0aCkKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5k
TnVtYmVyKCh1bnNpZ25lZCBsb25nKVtwYXRoIGluZGV4QXRQb3NpdGlvbjppXSk7CiAgICAgICAg
IH0KIAotICAgICAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgfQogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCmluZGV4IDZiMTM5N2Uu
LjVkMzI5MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENv
bnZlcnRlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0
ZXIubW0KQEAgLTIyNTQsNyArMjI1NCwxMCBAQCB2b2lkIEhUTUxDb252ZXJ0ZXI6Ol9wcm9jZXNz
VGV4dChDaGFyYWN0ZXJEYXRhJiBjaGFyYWN0ZXJEYXRhKQogICAgICAgICB9CiAgICAgICAgIGlm
ICh3YXNTcGFjZSkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7Ci0gICAgICAgIG91
dHB1dFN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgb3V0cHV0U3RyaW5nID0gKnN0cmlu
ZzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBpZiAo
b3V0cHV0U3RyaW5nLmxlbmd0aCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2lvcy9FZGl0b3JJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJ
T1MubW0KaW5kZXggNTYyMTM1NS4uMmZlNTQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9z
L0VkaXRvcklPUy5tbQpAQCAtMjg0LDcgKzI4NCwxMCBAQCB2b2lkIEVkaXRvcjo6c2V0RGljdGF0
aW9uUGhyYXNlc0FzQ2hpbGRPZkVsZW1lbnQoY29uc3QgVmVjdG9yPFZlY3RvcjxTdHJpbmc+PiYg
ZAogICAgIGZvciAoYXV0byYgaW50ZXJwcmV0YXRpb25zIDogZGljdGF0aW9uUGhyYXNlcykKICAg
ICAgICAgZGljdGF0aW9uUGhyYXNlc0J1aWxkZXIuYXBwZW5kKGludGVycHJldGF0aW9uc1swXSk7
CiAKLSAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoKmNvbnRl
eHQsIGRpY3RhdGlvblBocmFzZXNCdWlsZGVyLnRvU3RyaW5nKCkpKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBkaWN0YXRpb25QaHJhc2VzQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBlbGVt
ZW50LmFwcGVuZENoaWxkKGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoKmNvbnRleHQsICpzdHJpbmcp
KTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAgICAvLyBXZSBuZWVkIGEgbGF5b3V0
IGluIG9yZGVyIHRvIGFkZCBtYXJrZXJzIGJlbG93LgogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5
b3V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKaW5kZXggNTU1MWVlYy4uZDU2ODgxMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcApAQCAtMjkwLDcgKzI5MCwxMCBAQCB2b2lkIFN0
eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjp3cmFwV2l0aE5vZGUoTm9kZSYgbm9kZSwgYm9vbCBjb252
ZXJ0QmxvY2tzVG9JbmxpbgogICAgICAgICBhcHBlbmRFbGVtZW50KG1hcmt1cCwgZG93bmNhc3Q8
RWxlbWVudD4obm9kZSksIGNvbnZlcnRCbG9ja3NUb0lubGluZXMgJiYgaXNCbG9jaygmbm9kZSks
IHJhbmdlRnVsbHlTZWxlY3RzTm9kZSk7CiAgICAgZWxzZQogICAgICAgICBhcHBlbmRTdGFydE1h
cmt1cChtYXJrdXAsIG5vZGUsIG51bGxwdHIpOwotICAgIG1fcmV2ZXJzZWRQcmVjZWRpbmdNYXJr
dXAuYXBwZW5kKG1hcmt1cC50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtYXJr
dXAudG9TdHJpbmcoKSkKKyAgICAgICAgbV9yZXZlcnNlZFByZWNlZGluZ01hcmt1cC5hcHBlbmQo
KnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIGFwcGVuZEVuZFRhZyhu
b2RlKTsKICAgICBpZiAobV9ub2RlcykKICAgICAgICAgbV9ub2Rlcy0+YXBwZW5kKCZub2RlKTsK
QEAgLTMwMCw3ICszMDMsMTAgQEAgdm9pZCBTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6d3JhcFdp
dGhTdHlsZU5vZGUoU3R5bGVQcm9wZXJ0aWVzKiBzdHlsZSwgRG9jdW1lbnQKIHsKICAgICBTdHJp
bmdCdWlsZGVyIG9wZW5UYWc7CiAgICAgYXBwZW5kU3R5bGVOb2RlT3BlblRhZyhvcGVuVGFnLCBz
dHlsZSwgZG9jdW1lbnQsIGlzQmxvY2spOwotICAgIG1fcmV2ZXJzZWRQcmVjZWRpbmdNYXJrdXAu
YXBwZW5kKG9wZW5UYWcudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gb3BlblRh
Zy50b1N0cmluZygpKQorICAgICAgICBtX3JldmVyc2VkUHJlY2VkaW5nTWFya3VwLmFwcGVuZCgq
c3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgYXBwZW5kU3RyaW5nKHN0
eWxlTm9kZUNsb3NlVGFnKGlzQmxvY2spKTsKIH0KIApAQCAtMzM0LDcgKzM0MCw5IEBAIFN0cmlu
ZyBTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6dGFrZVJlc3VsdHMoKQogICAgIGNvbmNhdGVuYXRl
TWFya3VwKHJlc3VsdCk7CiAKICAgICAvLyBXZSByZW1vdmUgJ1wwJyBjaGFyYWN0ZXJzIGJlY2F1
c2UgdGhleSBhcmUgbm90IHZpc2libHkgcmVuZGVyZWQgdG8gdGhlIHVzZXIuCi0gICAgcmV0dXJu
IHJlc3VsdC50b1N0cmluZygpLnJlcGxhY2VXaXRoTGl0ZXJhbCgnXDAnLCAiIik7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBzdHJpbmct
PnJlcGxhY2VXaXRoTGl0ZXJhbCgnXDAnLCAiIik7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBT
dHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kVGV4dChTdHJpbmdCdWlsZGVyJiBvdXQsIGNv
bnN0IFRleHQmIHRleHQpCkBAIC0zNTksNyArMzY3LDEwIEBAIHZvaWQgU3R5bGVkTWFya3VwQWNj
dW11bGF0b3I6OmFwcGVuZFRleHQoU3RyaW5nQnVpbGRlciYgb3V0LCBjb25zdCBUZXh0JiB0ZXh0
KQogICAgICAgICBTdHJpbmcgY29udGVudCA9IHVzZVJlbmRlcmVkVGV4dCA/IHJlbmRlcmVkVGV4
dCh0ZXh0LCBtX3JhbmdlKSA6IHN0cmluZ1ZhbHVlRm9yUmFuZ2UodGV4dCwgbV9yYW5nZSk7CiAg
ICAgICAgIFN0cmluZ0J1aWxkZXIgYnVmZmVyOwogICAgICAgICBhcHBlbmRDaGFyYWN0ZXJzUmVw
bGFjaW5nRW50aXRpZXMoYnVmZmVyLCBjb250ZW50LCAwLCBjb250ZW50Lmxlbmd0aCgpLCBFbnRp
dHlNYXNrSW5QQ0RBVEEpOwotICAgICAgICBvdXQuYXBwZW5kKGNvbnZlcnRIVE1MVGV4dFRvSW50
ZXJjaGFuZ2VGb3JtYXQoYnVmZmVyLnRvU3RyaW5nKCksICZ0ZXh0KSk7CisgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1ZmZlci50b1N0cmluZygpKQorICAgICAgICAgICAgb3V0LmFwcGVuZChj
b252ZXJ0SFRNTFRleHRUb0ludGVyY2hhbmdlRm9ybWF0KCpzdHJpbmcsICZ0ZXh0KSk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgaWYgKHdyYXBwaW5n
U3BhbikKQEAgLTg3Myw3ICs4ODQsOSBAQCBTdHJpbmcgc2FuaXRpemVkTWFya3VwRm9yRnJhZ21l
bnRJbkRvY3VtZW50KFJlZjxEb2N1bWVudEZyYWdtZW50PiYmIGZyYWdtZW50LCBEbwogICAgICAg
ICAgICAgInhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MFwiPiIpOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZChyZXN1bHQpOwogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVy
YWwoIjwvaHRtbD4iKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIHJlc3Vs
dDsKQEAgLTEwOTIsNyArMTEwNSw5IEBAIFN0cmluZyB1cmxUb01hcmt1cChjb25zdCBVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiB0aXRsZSkKICAgICBtYXJrdXAuYXBwZW5kTGl0ZXJhbCgiXCI+Iik7
CiAgICAgTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZENoYXJhY3RlcnNSZXBsYWNpbmdFbnRpdGll
cyhtYXJrdXAsIHRpdGxlLCAwLCB0aXRsZS5sZW5ndGgoKSwgRW50aXR5TWFza0luUENEQVRBKTsK
ICAgICBtYXJrdXAuYXBwZW5kTGl0ZXJhbCgiPC9hPiIpOwotICAgIHJldHVybiBtYXJrdXAudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtYXJrdXAudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogRXhjZXB0aW9uT3I8UmVmPERv
Y3VtZW50RnJhZ21lbnQ+PiBjcmVhdGVGcmFnbWVudEZvcklubmVyT3V0ZXJIVE1MKEVsZW1lbnQm
IGNvbnRleHRFbGVtZW50LCBjb25zdCBTdHJpbmcmIG1hcmt1cCwgUGFyc2VyQ29udGVudFBvbGlj
eSBwYXJzZXJDb250ZW50UG9saWN5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9GaWxlUmVhZGVyTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRl
ckxvYWRlci5jcHAKaW5kZXggOWEyMjM0Zi4uMjgzNDVhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9m
aWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwCkBAIC0zMzcsMjAgKzMzNywyMCBAQCB2b2lkIEZp
bGVSZWFkZXJMb2FkZXI6OmNvbnZlcnRUb0RhdGFVUkwoKQogICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoImRhdGE6Iik7CiAKLSAgICBpZiAoIW1f
Ynl0ZXNMb2FkZWQpIHsKLSAgICAgICAgbV9zdHJpbmdSZXN1bHQgPSBidWlsZGVyLnRvU3RyaW5n
KCk7Ci0gICAgICAgIHJldHVybjsKKyAgICBpZiAobV9ieXRlc0xvYWRlZCkgeworICAgICAgICBi
dWlsZGVyLmFwcGVuZChtX2RhdGFUeXBlKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFs
KCI7YmFzZTY0LCIpOworCisgICAgICAgIFZlY3RvcjxjaGFyPiBvdXQ7CisgICAgICAgIGJhc2U2
NEVuY29kZShtX3Jhd0RhdGEtPmRhdGEoKSwgbV9ieXRlc0xvYWRlZCwgb3V0KTsKKyAgICAgICAg
b3V0LmFwcGVuZCgnXDAnKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQob3V0LmRhdGEoKSk7CiAg
ICAgfQogCi0gICAgYnVpbGRlci5hcHBlbmQobV9kYXRhVHlwZSk7Ci0gICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCI7YmFzZTY0LCIpOwotCi0gICAgVmVjdG9yPGNoYXI+IG91dDsKLSAgICBiYXNl
NjRFbmNvZGUobV9yYXdEYXRhLT5kYXRhKCksIG1fYnl0ZXNMb2FkZWQsIG91dCk7Ci0gICAgb3V0
LmFwcGVuZCgnXDAnKTsKLSAgICBidWlsZGVyLmFwcGVuZChvdXQuZGF0YSgpKTsKLQotICAgIG1f
c3RyaW5nUmVzdWx0ID0gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgbV9zdHJpbmdSZXN1bHQgPSAqc3RyaW5nOwor
ICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBGaWxlUmVhZGVyTG9hZGVyOjpp
c0NvbXBsZXRlZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRv
a2VuTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKaW5kZXgg
Yzk1Zjk2OS4uZGI0Mjk2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tl
bkxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcApAQCAt
MjczLDEwICsyNzMsMTMgQEAgdm9pZCBET01Ub2tlbkxpc3Q6OnVwZGF0ZUFzc29jaWF0ZWRBdHRy
aWJ1dGVGcm9tVG9rZW5zKCkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKHRva2VuKTsKICAgICB9Ci0gICAgQXRvbWljU3RyaW5nIHNlcmlh
bGl6ZWRWYWx1ZSA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCkpIHsKKyAgICAgICAgQXRvbWljU3RyaW5nIHNl
cmlhbGl6ZWRWYWx1ZSA9ICpzdHJpbmc7CiAKLSAgICBTZXRGb3JTY29wZTxib29sPiBpbkF0dHJp
YnV0ZVVwZGF0ZShtX2luVXBkYXRlQXNzb2NpYXRlZEF0dHJpYnV0ZUZyb21Ub2tlbnMsIHRydWUp
OwotICAgIG1fZWxlbWVudC5zZXRBdHRyaWJ1dGUobV9hdHRyaWJ1dGVOYW1lLCBzZXJpYWxpemVk
VmFsdWUpOworICAgICAgICBTZXRGb3JTY29wZTxib29sPiBpbkF0dHJpYnV0ZVVwZGF0ZShtX2lu
VXBkYXRlQXNzb2NpYXRlZEF0dHJpYnV0ZUZyb21Ub2tlbnMsIHRydWUpOworICAgICAgICBtX2Vs
ZW1lbnQuc2V0QXR0cmlidXRlKG1fYXR0cmlidXRlTmFtZSwgc2VyaWFsaXplZFZhbHVlKTsKKyAg
ICB9IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogVmVjdG9yPEF0b21pY1N0cmluZz4mIERP
TVRva2VuTGlzdDo6dG9rZW5zKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1h
aWxJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAK
aW5kZXggYjkzZTEyYi4uNTgzNmM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9F
bWFpbElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlw
ZS5jcHAKQEAgLTEwNCw3ICsxMDQsOSBAQCBTdHJpbmcgRW1haWxJbnB1dFR5cGU6OnNhbml0aXpl
VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVlKSBjb25zdAogICAgICAgICAgICAgc3Ry
aXBwZWRWYWx1ZS5hcHBlbmQoJywnKTsKICAgICAgICAgc3RyaXBwZWRWYWx1ZS5hcHBlbmQoc3Ry
aXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKGFkZHJlc3Nlc1tpXSkpOwogICAgIH0KLSAg
ICByZXR1cm4gc3RyaXBwZWRWYWx1ZS50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHN0cmlwcGVkVmFsdWUudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmls
ZUlucHV0VHlwZS5jcHAKaW5kZXggM2U1NWEwNS4uZmRjNDljNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ZpbGVJbnB1dFR5cGUuY3BwCkBAIC00NjcsNyArNDY3LDkgQEAgU3RyaW5nIEZpbGVJbnB1dFR5
cGU6OmRlZmF1bHRUb29sVGlwKCkgY29uc3QKICAgICAgICAgaWYgKGkgIT0gbGlzdFNpemUgLSAx
KQogICAgICAgICAgICAgbmFtZXMuYXBwZW5kKCdcbicpOwogICAgIH0KLSAgICByZXR1cm4gbmFt
ZXMudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBuYW1lcy50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9Gb3JtQ29udHJvbGxlci5jcHAKaW5kZXggMGY1Yjc3NS4uMWEyOWE0NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5jcHAKQEAgLTMxMiw3ICszMTIsOSBAQCBzdGF0aWMg
aW5saW5lIFN0cmluZyBmb3JtU2lnbmF0dXJlKGNvbnN0IEhUTUxGb3JtRWxlbWVudCYgZm9ybSkK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoYWN0aW9uVVJMLnN0cmluZygpKTsKIAogICAgIHJlY29y
ZEZvcm1TdHJ1Y3R1cmUoZm9ybSwgYnVpbGRlcik7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIEF0b21pY1N0cmluZyBGb3JtS2V5
R2VuZXJhdG9yOjpmb3JtS2V5KGNvbnN0IEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUm
IGNvbnRyb2wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCmluZGV4
IDcxNTIzMTcuLmE3MDI2ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFu
Y2hvckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1l
bnQuY3BwCkBAIC00MDAsMTAgKzQwMCwxNCBAQCB2b2lkIEhUTUxBbmNob3JFbGVtZW50OjpoYW5k
bGVDbGljayhFdmVudCYgZXZlbnQpCiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgU3RyaW5nQnVpbGRlciB1cmw7Ci0gICAgdXJsLmFwcGVuZChzdHJpcExlYWRpbmdBbmRU
cmFpbGluZ0hUTUxTcGFjZXMoYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihocmVmQXR0
cikpKTsKLSAgICBhcHBlbmRTZXJ2ZXJNYXBNb3VzZVBvc2l0aW9uKHVybCwgZXZlbnQpOwotICAg
IFVSTCBjb21wbGV0ZWRVUkwgPSBkb2N1bWVudCgpLmNvbXBsZXRlVVJMKHVybC50b1N0cmluZygp
KTsKKyAgICBVUkwgY29tcGxldGVkVVJMID0gZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChbJl0gKCkg
eworICAgICAgICBTdHJpbmdCdWlsZGVyIHVybDsKKyAgICAgICAgdXJsLmFwcGVuZChzdHJpcExl
YWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlv
bihocmVmQXR0cikpKTsKKyAgICAgICAgYXBwZW5kU2VydmVyTWFwTW91c2VQb3NpdGlvbih1cmws
IGV2ZW50KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gdXJsLnRvU3RyaW5nKCkpCisgICAg
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9KCkpOwogCiAg
ICAgU3RyaW5nIGRvd25sb2FkQXR0cmlidXRlOwogI2lmIEVOQUJMRShET1dOTE9BRF9BVFRSSUJV
VEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDY2NGVk
ZjAuLmI2N2I0YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3Bw
CkBAIC0zMzYsOCArMzM2LDExIEBAIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCogSFRNTENhbnZh
c0VsZW1lbnQ6OmNyZWF0ZUNvbnRleHQyZChjb25zdCBTdHJpbmcmIHR5cGUpCiAgICAgICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiVG90YWwgY2FudmFzIG1lbW9yeSB1c2UgZXhjZWVk
cyB0aGUgbWF4aW11bSBsaW1pdCAoIik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVt
YmVyKG1heEFjdGl2ZVBpeGVsTWVtb3J5KCkgLyAxMDI0IC8gMTAyNCk7CiAgICAgICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIE1CKS4iKTsKLSAgICAgICAgZG9jdW1lbnQoKS5hZGRD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBz
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAg
ICAgICBkb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNz
YWdlTGV2ZWw6Oldhcm5pbmcsICpzdHJpbmcpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgICAgIH0KKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBtX2NvbnRleHQgPSBD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNyZWF0ZSgqdGhpcywgZG9jdW1lbnQoKS5pblF1aXJr
c01vZGUoKSwgdXNlc0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlKTsKQEAgLTg4OSw4ICs4OTIs
MTEgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIoKSBjb25zdAog
ICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIkNhbnZhcyBhcmVhIGV4Y2VlZHMg
dGhlIG1heGltdW0gbGltaXQgKHdpZHRoICogaGVpZ2h0ID4gIik7CiAgICAgICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kTnVtYmVyKG1heENhbnZhc0FyZWEpOwogICAgICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZExpdGVyYWwoIikuIik7Ci0gICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgc3RyaW5nQnVpbGRl
ci50b1N0cmluZygpKTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIGRvY3VtZW50KCkuYWRk
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywg
KnN0cmluZyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgQ1JBU0go
KTsKICAgICB9CiAgICAgCiAgICAgLy8gTWFrZSBzdXJlIHdlIGRvbid0IHVzZSBtb3JlIHBpeGVs
IG1lbW9yeSB0aGFuIHRoZSBzeXN0ZW0gY2FuIHN1cHBvcnQuCkBAIC05MDAsOCArOTA2LDExIEBA
IHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUltYWdlQnVmZmVyKCkgY29uc3QKICAgICAg
ICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJUb3RhbCBjYW52YXMgbWVtb3J5IHVzZSBl
eGNlZWRzIHRoZSBtYXhpbXVtIGxpbWl0ICgiKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmROdW1iZXIobWF4QWN0aXZlUGl4ZWxNZW1vcnkoKSAvIDEwMjQgLyAxMDI0KTsKICAgICAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgTUIpLiIpOwotICAgICAgICBkb2N1bWVudCgp
LmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5p
bmcsIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAg
ICBkb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdl
TGV2ZWw6Oldhcm5pbmcsICpzdHJpbmcpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgaWYgKCF3aWR0aCgpIHx8ICFoZWlnaHQo
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVtZW50LmNwcAppbmRleCA4ZDZjMzQ3Li5j
MzVhNjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuY3BwCkBAIC0xMTEs
MTAgKzExMSwxMyBAQCBzdGF0aWMgYm9vbCBwYXJzZUZvbnRTaXplKGNvbnN0IENoYXJhY3RlclR5
cGUqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgaW50JgogICAgIC8vIFN0ZXAgOAogICAg
IGludCB2YWx1ZTsKIAorICAgIGlmIChkaWdpdHMuZmFpbGVkKCkpCisgICAgICAgIENSQVNIKCk7
CisKICAgICBpZiAoZGlnaXRzLmlzOEJpdCgpKQotICAgICAgICB2YWx1ZSA9IGNoYXJhY3RlcnNU
b0ludFN0cmljdChkaWdpdHMuY2hhcmFjdGVyczgoKSwgZGlnaXRzLmxlbmd0aCgpKTsKKyAgICAg
ICAgdmFsdWUgPSBjaGFyYWN0ZXJzVG9JbnRTdHJpY3QoKmRpZ2l0cy5jaGFyYWN0ZXJzOCgpLCBk
aWdpdHMubGVuZ3RoKCkpOwogICAgIGVsc2UKLSAgICAgICAgdmFsdWUgPSBjaGFyYWN0ZXJzVG9J
bnRTdHJpY3QoZGlnaXRzLmNoYXJhY3RlcnMxNigpLCBkaWdpdHMubGVuZ3RoKCkpOworICAgICAg
ICB2YWx1ZSA9IGNoYXJhY3RlcnNUb0ludFN0cmljdCgqZGlnaXRzLmNoYXJhY3RlcnMxNigpLCBk
aWdpdHMubGVuZ3RoKCkpOwogCiAgICAgLy8gU3RlcCA5CiAgICAgaWYgKG1vZGUgPT0gUmVsYXRp
dmVQbHVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKaW5kZXggNGY2
NTk3Yy4uYTJlMWMxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3Bw
CkBAIC00NzQsNyArNDc0LDkgQEAgU3RyaW5nIEhUTUxJbWFnZUVsZW1lbnQ6OmNvbXBsZXRlVVJM
c0luQXR0cmlidXRlVmFsdWUoY29uc3QgVVJMJiBiYXNlLCBjb25zdCBBdHQKICAgICAgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCd3Jyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAg
ICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBy
ZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBD
UkFTSCgpOwogICAgIH0KICAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OmNvbXBsZXRlVVJMc0luQXR0
cmlidXRlVmFsdWUoYmFzZSwgYXR0cmlidXRlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwCmluZGV4IGRlMWMyZTguLjM2ZmJjYTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMjMyLDkgKzIzMiwxMiBAQCBzdGF0aWMgU3Ry
aW5nIGFjdGlvbk5hbWUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpEZWxheWVkQWN0aW9uVHlwZSBh
Y3Rpb24pCiAKICN1bmRlZiBBQ1RJT04KIAotICAgIFN0cmluZyBuYW1lID0gYWN0aW9uQnVpbGRl
ci50b1N0cmluZygpOwotICAgIEFTU0VSVCghbmFtZS5pc0VtcHR5KCkpOwotICAgIHJldHVybiBu
YW1lOworICAgIGlmIChhdXRvIHN0cmluZyA9IGFjdGlvbkJ1aWxkZXIudG9TdHJpbmcoKSkgewor
ICAgICAgICBTdHJpbmcgbmFtZSA9ICpzdHJpbmc7CisgICAgICAgIEFTU0VSVCghbmFtZS5pc0Vt
cHR5KCkpOworICAgICAgICByZXR1cm4gbmFtZTsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCmluZGV4IDlm
NmRhZDIuLmZhOThhYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlv
bkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQu
Y3BwCkBAIC0zNDksNyArMzQ5LDkgQEAgU3RyaW5nIEhUTUxPcHRpb25FbGVtZW50Ojpjb2xsZWN0
T3B0aW9uSW5uZXJUZXh0KCkgY29uc3QKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbm9kZSA9
IE5vZGVUcmF2ZXJzYWw6Om5leHQoKm5vZGUsIHRoaXMpOwogICAgIH0KLSAgICByZXR1cm4gdGV4
dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHRleHQudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5j
cHAKaW5kZXggZWQxNDg1Ny4uZDBmYjRiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTE0Myw3ICsxNDMsOSBAQCBTdHJp
bmcgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnN0cmlwcGVkUGxhY2Vob2xkZXIoKSBjb25z
dAogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIHN0cmlwcGVkLmFwcGVuZChjaGFyYWN0
ZXIpOwogICAgIH0KLSAgICByZXR1cm4gc3RyaXBwZWQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBzdHJpcHBlZC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgYm9vbCBpc05vdExpbmVCcmVhayhVQ2hhciBjaCkg
eyByZXR1cm4gY2ggIT0gbmV3bGluZUNoYXJhY3RlciAmJiBjaCAhPSBjYXJyaWFnZVJldHVybjsg
fQpAQCAtNTUyLDcgKzU1NCw5IEBAIHN0YXRpYyBTdHJpbmcgaW5uZXJUZXh0VmFsdWVGcm9tKFRl
eHRDb250cm9sSW5uZXJUZXh0RWxlbWVudCYgaW5uZXJUZXh0KQogICAgICAgICAgICAgcmVzdWx0
LmFwcGVuZChkb3duY2FzdDxUZXh0Pigqbm9kZSkuZGF0YSgpKTsKICAgICB9CiAgICAgc3RyaXBU
cmFpbGluZ05ld2xpbmUocmVzdWx0KTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQ6OnNldElubmVyVGV4dFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCkBAIC03MzYsNyArNzQw
LDkgQEAgU3RyaW5nIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojp2YWx1ZVdpdGhIYXJkTGlu
ZUJyZWFrcygpIGNvbnN0CiAgICAgICAgICAgICBnZXROZXh0U29mdEJyZWFrKGxpbmUsIGJyZWFr
Tm9kZSwgYnJlYWtPZmZzZXQpOwogICAgIH0KICAgICBzdHJpcFRyYWlsaW5nTmV3bGluZShyZXN1
bHQpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQqIGVuY2xvc2luZ1RleHRGb3JtQ29u
dHJvbChjb25zdCBQb3NpdGlvbiYgcG9zaXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3Vt
ZW50LmNwcAppbmRleCAxMTkzNDBmLi42OTc3MTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFE
b2N1bWVudC5jcHAKQEAgLTEyMSw3ICsxMjEsMTAgQEAgdm9pZCBNZWRpYURvY3VtZW50UGFyc2Vy
OjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAjaWYgUExBVEZPUk0oSU9TKQogICAgICAgICBl
bGVtZW50U3R5bGUuYXBwZW5kTGl0ZXJhbCgid2lkdGg6IDEwMCU7IGhlaWdodDogYXV0bzsiKTsK
ICNlbmRpZgotICAgICAgICB2aWRlb0VsZW1lbnQtPnNldEF0dHJpYnV0ZShzdHlsZUF0dHIsIGVs
ZW1lbnRTdHlsZS50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZWxlbWVu
dFN0eWxlLnRvU3RyaW5nKCkpCisgICAgICAgICAgICB2aWRlb0VsZW1lbnQtPnNldEF0dHJpYnV0
ZShzdHlsZUF0dHIsICpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgp
OwogICAgIH0KIAogICAgIGJvZHktPmFwcGVuZENoaWxkKHZpZGVvRWxlbWVudCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcAppbmRleCA1Y2Q3OTA1Li42ZjRl
MGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKQEAg
LTg2LDcgKzg2LDkgQEAgc3RhdGljIFN0cmluZyByZXN0cmljdGlvbk5hbWUoTWVkaWFFbGVtZW50
U2Vzc2lvbjo6QmVoYXZpb3JSZXN0cmljdGlvbnMgcmVzdHJpY3QKICAgICBDQVNFKEludmlzaWJs
ZUF1dG9wbGF5Tm90UGVybWl0dGVkKTsKICAgICBDQVNFKE92ZXJyaWRlVXNlckdlc3R1cmVSZXF1
aXJlbWVudEZvck1haW5Db250ZW50KTsKIAotICAgIHJldHVybiByZXN0cmljdGlvbkJ1aWxkZXIu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN0cmljdGlvbkJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRnJhZ21lbnRVUklQYXJz
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUZyYWdtZW50VVJJUGFyc2VyLmNwcApp
bmRleCBlN2E1MTZlLi4zMDViNjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01l
ZGlhRnJhZ21lbnRVUklQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFG
cmFnbWVudFVSSVBhcnNlci5jcHAKQEAgLTUyLDcgKzUyLDkgQEAgc3RhdGljIFN0cmluZyBjb2xs
ZWN0RGlnaXRzKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCYg
cG9zaXQKICAgICAvLyBESUdJVCA7IGFueSBwb3NpdGl2ZSBudW1iZXIKICAgICB3aGlsZSAocG9z
aXRpb24gPCBsZW5ndGggJiYgaXNBU0NJSURpZ2l0KGlucHV0W3Bvc2l0aW9uXSkpCiAgICAgICAg
IGRpZ2l0cy5hcHBlbmQoaW5wdXRbcG9zaXRpb24rK10pOwotICAgIHJldHVybiBkaWdpdHMudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBkaWdpdHMudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBjb2xs
ZWN0RnJhY3Rpb24oY29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbmVk
JiBwb3NpdGlvbikKQEAgLTY3LDcgKzY5LDkgQEAgc3RhdGljIFN0cmluZyBjb2xsZWN0RnJhY3Rp
b24oY29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbmVkJiBwb3MKICAg
ICBkaWdpdHMuYXBwZW5kKGlucHV0W3Bvc2l0aW9uKytdKTsKICAgICB3aGlsZSAocG9zaXRpb24g
PCBsZW5ndGggJiYgaXNBU0NJSURpZ2l0KGlucHV0W3Bvc2l0aW9uXSkpCiAgICAgICAgIGRpZ2l0
cy5hcHBlbmQoaW5wdXRbcG9zaXRpb24rK10pOwotICAgIHJldHVybiBkaWdpdHMudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBkaWdpdHMudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogTWVkaWFGcmFnbWVudFVSSVBhcnNlcjo6
TWVkaWFGcmFnbWVudFVSSVBhcnNlcihjb25zdCBVUkwmIHVybCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFo
ZWFkLmNwcAppbmRleCA3NjRlNTAyLi4zZWVjNDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1R5cGVBaGVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQu
Y3BwCkBAIC04MCw3ICs4MCwxMCBAQCBpbnQgVHlwZUFoZWFkOjpoYW5kbGVFdmVudChLZXlib2Fy
ZEV2ZW50KiBldmVudCwgTWF0Y2hNb2RlRmxhZ3MgbWF0Y2hNb2RlKQogICAgICAgICBwcmVmaXgg
PSBTdHJpbmcoJmMsIDEpOwogICAgICAgICBtX3JlcGVhdGluZ0NoYXIgPSBjOwogICAgIH0gZWxz
ZSBpZiAobWF0Y2hNb2RlICYgTWF0Y2hQcmVmaXgpIHsKLSAgICAgICAgcHJlZml4ID0gbV9idWZm
ZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gbV9idWZmZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgICAgIHByZWZpeCA9ICpzdHJpbmc7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIENSQVNIKCk7CiAgICAgICAgIGlmIChtX2J1ZmZlci5sZW5ndGgoKSA+IDEpIHsKICAg
ICAgICAgICAgIG1fcmVwZWF0aW5nQ2hhciA9IDA7CiAgICAgICAgICAgICBzZWFyY2hTdGFydE9m
ZnNldCA9IDA7CkBAIC0xMDQsOSArMTA3LDEyIEBAIGludCBUeXBlQWhlYWQ6OmhhbmRsZUV2ZW50
KEtleWJvYXJkRXZlbnQqIGV2ZW50LCBNYXRjaE1vZGVGbGFncyBtYXRjaE1vZGUpCiAKICAgICBp
ZiAobWF0Y2hNb2RlICYgTWF0Y2hJbmRleCkgewogICAgICAgICBib29sIG9rID0gZmFsc2U7Ci0g
ICAgICAgIGludCBpbmRleCA9IG1fYnVmZmVyLnRvU3RyaW5nKCkudG9JbnQoJm9rKTsKLSAgICAg
ICAgaWYgKGluZGV4ID4gMCAmJiBpbmRleCA8PSBvcHRpb25Db3VudCkKLSAgICAgICAgICAgIHJl
dHVybiBpbmRleCAtIDE7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IG1fYnVmZmVyLnRvU3Ry
aW5nKCkpIHsKKyAgICAgICAgICAgIGludCBpbmRleCA9IHN0cmluZy0+dG9JbnQoJm9rKTsKKyAg
ICAgICAgICAgIGlmIChpbmRleCA+IDAgJiYgaW5kZXggPD0gb3B0aW9uQ291bnQpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIGluZGV4IC0gMTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBD
UkFTSCgpOwogICAgIH0KICAgICByZXR1cm4gLTE7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAppbmRleCBjMjdh
ZjIzLi5kOTRmY2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKQEAgLTExNyw3ICsxMTcsOSBAQCBTdHJpbmcg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpmb250KCkgY29uc3QKICAgICAgICAgc2VyaWFsaXpl
ZEZvbnQuYXBwZW5kKGZhbWlseSk7CiAgICAgfQogCi0gICAgcmV0dXJuIHNlcmlhbGl6ZWRGb250
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc2VyaWFsaXplZEZvbnQudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNldEZvbnQoY29uc3QgU3RyaW5nJiBuZXdGb250KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRCYXNlLmNwcAppbmRleCA3NjhjMGZjLi43YTg4Y2Q0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkRCYXNlLmNwcApAQCAtMjE3Miw4ICsyMTcyLDExIEBAIEV4Y2VwdGlvbk9yPFJlZlB0cjxJbWFn
ZURhdGE+PiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpnZXRJbWFnZURhdGEoSW1hZ2VC
CiAgICAgICAgIGNvbnNvbGVNZXNzYWdlLmFwcGVuZExpdGVyYWwoIiB4ICIpOwogICAgICAgICBj
b25zb2xlTWVzc2FnZS5hcHBlbmROdW1iZXIoaW1hZ2VEYXRhUmVjdC5oZWlnaHQoKSk7CiAKLSAg
ICAgICAgY2FudmFzQmFzZSgpLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+YWRkQ29uc29sZU1l
c3NhZ2UoTWVzc2FnZVNvdXJjZTo6UmVuZGVyaW5nLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBjb25z
b2xlTWVzc2FnZS50b1N0cmluZygpKTsKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yIH07CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGNvbnNvbGVNZXNzYWdl
LnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIGNhbnZhc0Jhc2UoKS5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlJlbmRlcmluZywgTWVz
c2FnZUxldmVsOjpFcnJvciwgKnN0cmluZyk7CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKyAgICAgICAgfQorICAgICAgICBDUkFTSCgpOwogICAg
IH0KIAogICAgIHJldHVybiBJbWFnZURhdGE6OmNyZWF0ZShpbWFnZURhdGFSZWN0LnNpemUoKSwg
Ynl0ZUFycmF5LnJlbGVhc2VOb25OdWxsKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRleCA3ODc1ZGE4
Li5jZDVlZTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtMTYyLDcgKzE2Miw5IEBAIG5hbWVzcGFj
ZSB7CiAKICAgICAgICAgU3RyaW5nIHJlc3VsdCgpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBtX2J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IG1fYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTb3VyY2VUcmFja2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTb3VyY2VUcmFja2VyLmNwcAppbmRleCAyMmRi
YTkwLi44MGIxZTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
U291cmNlVHJhY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNv
dXJjZVRyYWNrZXIuY3BwCkBAIC04Myw4ICs4MywxMSBAQCBTdHJpbmcgSFRNTFNvdXJjZVRyYWNr
ZXI6OnNvdXJjZShjb25zdCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICBtX2N1cnJlbnRTb3Vy
Y2UuYWR2YW5jZSgpOwogICAgIH0KIAotICAgIG1fY2FjaGVkU291cmNlRm9yVG9rZW4gPSBzb3Vy
Y2UudG9TdHJpbmcoKTsKLSAgICByZXR1cm4gbV9jYWNoZWRTb3VyY2VGb3JUb2tlbjsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBzb3VyY2UudG9TdHJpbmcoKSkgeworICAgICAgICBtX2NhY2hlZFNv
dXJjZUZvclRva2VuID0gKnN0cmluZzsKKyAgICAgICAgcmV0dXJuIG1fY2FjaGVkU291cmNlRm9y
VG9rZW47CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBIVE1MU291cmNlVHJhY2tl
cjo6c291cmNlKGNvbnN0IEhUTUxUb2tlbiYgdG9rZW4sIHVuc2lnbmVkIGF0dHJpYnV0ZVN0YXJ0
LCB1bnNpZ25lZCBhdHRyaWJ1dGVFbmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MVG9rZW5pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxUb2tlbml6ZXIuY3BwCmluZGV4IDhhYzJmODUuLjM2NGVjMGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwCkBAIC0xNDEsOCArMTQxLDEwIEBAIGlu
bGluZSBib29sIEhUTUxUb2tlbml6ZXI6OnByb2Nlc3NFbnRpdHkoU2VnbWVudGVkU3RyaW5nJiBz
b3VyY2UpCiAgICAgICAgIEFTU0VSVChkZWNvZGVkRW50aXR5LmlzRW1wdHkoKSk7CiAgICAgICAg
IGJ1ZmZlckFTQ0lJQ2hhcmFjdGVyKCcmJyk7CiAgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGRl
Y29kZWRFbnRpdHkuZmFpbGVkKCkpCisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgZGVjb2RlZEVudGl0eS5sZW5ndGgoKTsgKytpKQotICAgICAg
ICAgICAgYnVmZmVyQ2hhcmFjdGVyKGRlY29kZWRFbnRpdHlbaV0pOworICAgICAgICAgICAgYnVm
ZmVyQ2hhcmFjdGVyKCpkZWNvZGVkRW50aXR5W2ldKTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7
CiB9CkBAIC04NjMsOCArODY1LDEwIEBAIGJvb2wgSFRNTFRva2VuaXplcjo6cHJvY2Vzc1Rva2Vu
KFNlZ21lbnRlZFN0cmluZyYgc291cmNlKQogICAgICAgICAgICAgQVNTRVJUKGRlY29kZWRFbnRp
dHkuaXNFbXB0eSgpKTsKICAgICAgICAgICAgIG1fdG9rZW4uYXBwZW5kVG9BdHRyaWJ1dGVWYWx1
ZSgnJicpOwogICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKGRlY29kZWRFbnRpdHku
ZmFpbGVkKCkpCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBkZWNvZGVkRW50aXR5Lmxlbmd0aCgpOyArK2kpCi0gICAgICAgICAg
ICAgICAgbV90b2tlbi5hcHBlbmRUb0F0dHJpYnV0ZVZhbHVlKGRlY29kZWRFbnRpdHlbaV0pOwor
ICAgICAgICAgICAgICAgIG1fdG9rZW4uYXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZSgqZGVjb2RlZEVu
dGl0eVtpXSk7CiAgICAgICAgIH0KICAgICAgICAgLy8gV2UncmUgc3VwcG9zZWQgdG8gc3dpdGNo
IGJhY2sgdG8gdGhlIGF0dHJpYnV0ZSB2YWx1ZSBzdGF0ZSB0aGF0CiAgICAgICAgIC8vIHdlIHdl
cmUgaW4gd2hlbiB3ZSB3ZXJlIHN3aXRjaGVkIGludG8gdGhpcyBzdGF0ZS4gUmF0aGVyIHRoYW4K
QEAgLTE0MDMsNyArMTQwNyw5IEBAIFN0cmluZyBIVE1MVG9rZW5pemVyOjpidWZmZXJlZENoYXJh
Y3RlcnMoKSBjb25zdAogICAgIGNoYXJhY3RlcnMuYXBwZW5kKCc8Jyk7CiAgICAgY2hhcmFjdGVy
cy5hcHBlbmQoJy8nKTsKICAgICBjaGFyYWN0ZXJzLmFwcGVuZChtX3RlbXBvcmFyeUJ1ZmZlci5k
YXRhKCksIG1fdGVtcG9yYXJ5QnVmZmVyLnNpemUoKSk7Ci0gICAgcmV0dXJuIGNoYXJhY3RlcnMu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBjaGFyYWN0ZXJzLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSFRNTFRv
a2VuaXplcjo6dXBkYXRlU3RhdGVGb3IoY29uc3QgQXRvbWljU3RyaW5nJiB0YWdOYW1lKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKaW5kZXggYjEw
YTRjNC4uODk5ZDRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFRyZWVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJl
ZUJ1aWxkZXIuY3BwCkBAIC0yNTY5LDE5ICsyNTY5LDIyIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVy
OjpkZWZhdWx0Rm9yQWZ0ZXJIZWFkKCkKIAogdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OmRlZmF1bHRG
b3JJblRhYmxlVGV4dCgpCiB7Ci0gICAgU3RyaW5nIGNoYXJhY3RlcnMgPSBtX3BlbmRpbmdUYWJs
ZUNoYXJhY3RlcnMudG9TdHJpbmcoKTsKLSAgICBtX3BlbmRpbmdUYWJsZUNoYXJhY3RlcnMuY2xl
YXIoKTsKLSAgICBpZiAoIWlzQWxsV2hpdGVzcGFjZShjaGFyYWN0ZXJzKSkgewotICAgICAgICAv
LyBGSVhNRTogcGFyc2UgZXJyb3IKLSAgICAgICAgSFRNTENvbnN0cnVjdGlvblNpdGU6OlJlZGly
ZWN0VG9Gb3N0ZXJQYXJlbnRHdWFyZCByZWRpcmVjdGVyKG1fdHJlZSk7Ci0gICAgICAgIG1fdHJl
ZS5yZWNvbnN0cnVjdFRoZUFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpOwotICAgICAgICBtX3Ry
ZWUuaW5zZXJ0VGV4dE5vZGUoY2hhcmFjdGVycywgTm90QWxsV2hpdGVzcGFjZSk7Ci0gICAgICAg
IG1fZnJhbWVzZXRPayA9IGZhbHNlOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1fcGVuZGluZ1Rh
YmxlQ2hhcmFjdGVycy50b1N0cmluZygpKSB7CisgICAgICAgIFN0cmluZyBjaGFyYWN0ZXJzID0g
KnN0cmluZzsKKyAgICAgICAgbV9wZW5kaW5nVGFibGVDaGFyYWN0ZXJzLmNsZWFyKCk7CisgICAg
ICAgIGlmICghaXNBbGxXaGl0ZXNwYWNlKGNoYXJhY3RlcnMpKSB7CisgICAgICAgICAgICAvLyBG
SVhNRTogcGFyc2UgZXJyb3IKKyAgICAgICAgICAgIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpSZWRp
cmVjdFRvRm9zdGVyUGFyZW50R3VhcmQgcmVkaXJlY3RlcihtX3RyZWUpOworICAgICAgICAgICAg
bV90cmVlLnJlY29uc3RydWN0VGhlQWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7CisgICAgICAg
ICAgICBtX3RyZWUuaW5zZXJ0VGV4dE5vZGUoY2hhcmFjdGVycywgTm90QWxsV2hpdGVzcGFjZSk7
CisgICAgICAgICAgICBtX2ZyYW1lc2V0T2sgPSBmYWxzZTsKKyAgICAgICAgICAgIG1faW5zZXJ0
aW9uTW9kZSA9IG1fb3JpZ2luYWxJbnNlcnRpb25Nb2RlOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisgICAgICAgIG1fdHJlZS5pbnNlcnRUZXh0Tm9kZShjaGFyYWN0ZXJzKTsKICAg
ICAgICAgbV9pbnNlcnRpb25Nb2RlID0gbV9vcmlnaW5hbEluc2VydGlvbk1vZGU7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0gICAgbV90cmVlLmluc2VydFRleHROb2RlKGNoYXJhY3RlcnMpOwot
ICAgIG1faW5zZXJ0aW9uTW9kZSA9IG1fb3JpZ2luYWxJbnNlcnRpb25Nb2RlOworICAgIH0gZWxz
ZQorICAgICAgICBDUkFTSCgpOwogfQogCiBib29sIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0
YXJ0VGFnRm9ySW5IZWFkKEF0b21pY0hUTUxUb2tlbiYmIHRva2VuKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAKaW5kZXggODBiNDIxMy4u
N2Q0Yzg5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRv
ckRlbGVnYXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9y
RGVsZWdhdGUuY3BwCkBAIC02Niw3ICs2Niw5IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIGJ1aWxk
Q29uc29sZUVycm9yKGNvbnN0IFhTU0luZm8mIHhzc0luZm8pCiAgICAgZWxzZQogICAgICAgICBt
ZXNzYWdlLmFwcGVuZExpdGVyYWwoIiBUaGUgYXVkaXRvciB3YXMgZW5hYmxlZCBiZWNhdXNlIHRo
ZSBzZXJ2ZXIgZGlkIG5vdCBzZW5kIGFuICdYLVhTUy1Qcm90ZWN0aW9uJyBoZWFkZXIuIik7CiAK
LSAgICByZXR1cm4gbWVzc2FnZS50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1l
c3NhZ2UudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogUmVmPEZvcm1EYXRhPiBYU1NBdWRpdG9yRGVsZWdhdGU6OmdlbmVyYXRlVmlvbGF0aW9u
UmVwb3J0KGNvbnN0IFhTU0luZm8mIHhzc0luZm8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL0J1ZmZlcmVkTGluZVJlYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0J1ZmZlcmVkTGluZVJlYWRlci5jcHAKaW5kZXggOGYyMzYyNS4uZjI5MDhkNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9CdWZmZXJlZExpbmVSZWFkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQnVmZmVyZWRMaW5lUmVhZGVyLmNwcApA
QCAtOTIsOSArOTIsMTEgQEAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IEJ1ZmZlcmVkTGluZVJlYWRl
cjo6bmV4dExpbmUoKQogICAgIH0KIAogICAgIGlmIChzaG91bGRSZXR1cm5MaW5lKSB7Ci0gICAg
ICAgIGF1dG8gbGluZSA9IG1fbGluZUJ1ZmZlci50b1N0cmluZygpOwotICAgICAgICBtX2xpbmVC
dWZmZXIuY2xlYXIoKTsKLSAgICAgICAgcmV0dXJuIFdURk1vdmUobGluZSk7CisgICAgICAgIGlm
IChhdXRvIGxpbmUgPSBtX2xpbmVCdWZmZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgbV9s
aW5lQnVmZmVyLmNsZWFyKCk7CisgICAgICAgICAgICByZXR1cm4gV1RGTW92ZSgqbGluZSk7Cisg
ICAgICAgIH0KKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBBU1NFUlQobV9idWZmZXIu
aXNFbXB0eSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcAppbmRleCAz
MzNhMmY4Li4yOTQxNmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Ry
YWNrQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3Bw
CkBAIC0xNTMsNyArMTUzLDEwIEBAIHZvaWQgVHJhY2tCYXNlOjpzZXRMYW5ndWFnZShjb25zdCBB
dG9taWNTdHJpbmcmIGxhbmd1YWdlKQogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRM
aXRlcmFsKCJUaGUgbGFuZ3VhZ2UgJyIpOwogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmQobGFuZ3VhZ2UpOwogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIn
IGlzIG5vdCBhIHZhbGlkIEJDUCA0NyBsYW5ndWFnZSB0YWcuIik7Ci0gICAgICAgICAgICBtZXNz
YWdlID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgICAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIG1lc3NhZ2Ug
PSAqc3RyaW5nOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAg
ICAgICAgIH0KICAgICAgICAgaWYgKGF1dG8gZWxlbWVudCA9IHRoaXMtPmVsZW1lbnQoKSkKICAg
ICAgICAgICAgIGVsZW1lbnQtPmRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZTo6UmVuZGVyaW5nLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIG1lc3NhZ2UpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9WVFRDdWUuY3BwCmluZGV4IDc4ZjhhZGYuLjNiYmMyNDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAKQEAgLTYyOSw3ICs2MjksMTEgQEAgdm9pZCBWVFRD
dWU6OmRldGVybWluZVRleHREaXJlY3Rpb24oKQogICAgICAgICBwYXJhZ3JhcGhCdWlsZGVyLmFw
cGVuZChub2RlLT5ub2RlVmFsdWUoKSk7CiAgICAgfQogCi0gICAgU3RyaW5nIHBhcmFncmFwaCA9
IHBhcmFncmFwaEJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBTdHJpbmcgcGFyYWdyYXBoID0gWyZd
ICgpIHsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcGFyYWdyYXBoQnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CisgICAg
fSgpOwogICAgIGlmICghcGFyYWdyYXBoLmxlbmd0aCgpKQogICAgICAgICByZXR1cm47CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcAppbmRleCA1MThlZDhiLi44
MGQwMmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwCkBA
IC00MDQsNyArNDA0LDEwIEBAIHZvaWQgV2ViVlRUUGFyc2VyOjpjcmVhdGVOZXdDdWUoKQogICAg
IFJlZlB0cjxXZWJWVFRDdWVEYXRhPiBjdWUgPSBXZWJWVFRDdWVEYXRhOjpjcmVhdGUoKTsKICAg
ICBjdWUtPnNldFN0YXJ0VGltZShtX2N1cnJlbnRTdGFydFRpbWUpOwogICAgIGN1ZS0+c2V0RW5k
VGltZShtX2N1cnJlbnRFbmRUaW1lKTsKLSAgICBjdWUtPnNldENvbnRlbnQobV9jdXJyZW50Q29u
dGVudC50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtX2N1cnJlbnRDb250ZW50
LnRvU3RyaW5nKCkpCisgICAgICAgIGN1ZS0+c2V0Q29udGVudCgqc3RyaW5nKTsKKyAgICBlbHNl
CisgICAgICAgIENSQVNIKCk7CiAgICAgY3VlLT5zZXRJZChtX2N1cnJlbnRJZCk7CiAgICAgY3Vl
LT5zZXRTZXR0aW5ncyhtX2N1cnJlbnRTZXR0aW5ncyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmNwcAppbmRleCAwMjRjMDRhLi5mZTNkZGE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFRva2VuaXplci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3BwCkBAIC0xMDgs
MTEgKzEwOCwxNSBAQCBEYXRhU3RhdGU6CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgLy8g
V2UgZG9uJ3Qgd2FudCB0byBhZHZhbmNlIGlucHV0IG9yIHBlcmZvcm0gYSBzdGF0ZSB0cmFuc2l0
aW9uIC0ganVzdCByZXR1cm4gYSAobmV3KSB0b2tlbi4KICAgICAgICAgICAgIC8vIChPbiB0aGUg
bmV4dCBjYWxsIHRvIG5leHRUb2tlbiB3ZSB3aWxsIHNlZSAnPCcgYWdhaW4sIGJ1dCB0YWtlIHRo
ZSBvdGhlciBicmFuY2ggaW4gdGhpcyBpZiBpbnN0ZWFkLikKLSAgICAgICAgICAgIHJldHVybiBl
bWl0VG9rZW4odG9rZW4sIFdlYlZUVFRva2VuOjpTdHJpbmdUb2tlbihyZXN1bHQudG9TdHJpbmco
KSkpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIGVtaXRUb2tlbih0b2tlbiwgV2ViVlRUVG9rZW46OlN0cmlu
Z1Rva2VuKCpzdHJpbmcpKTsKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KLSAgICB9
IGVsc2UgaWYgKGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKQotICAgICAgICByZXR1cm4g
YWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OlN0cmluZ1Rv
a2VuKHJlc3VsdC50b1N0cmluZygpKSk7Ci0gICAgZWxzZSB7CisgICAgfSBlbHNlIGlmIChjaGFy
YWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBy
ZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2Vu
KG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6U3RyaW5nVG9rZW4oKnN0cmluZykpOworICAg
ICAgICBDUkFTSCgpOworICAgIH0gZWxzZSB7CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2hhcmFj
dGVyKTsKICAgICAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oRGF0YVN0YXRlKTsKICAgICB9CkBAIC0x
NDIsMTAgKzE0NiwxNCBAQCBFc2NhcGVTdGF0ZToKICAgICAgICAgV0VCVlRUX0FEVkFOQ0VfVE8o
RXNjYXBlU3RhdGUpOwogICAgIH0gZWxzZSBpZiAoY2hhcmFjdGVyID09ICc8JykgewogICAgICAg
ICByZXN1bHQuYXBwZW5kKGJ1ZmZlcik7Ci0gICAgICAgIHJldHVybiBlbWl0VG9rZW4odG9rZW4s
IFdlYlZUVFRva2VuOjpTdHJpbmdUb2tlbihyZXN1bHQudG9TdHJpbmcoKSkpOworICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiBl
bWl0VG9rZW4odG9rZW4sIFdlYlZUVFRva2VuOjpTdHJpbmdUb2tlbigqc3RyaW5nKSk7CisgICAg
ICAgIENSQVNIKCk7CiAgICAgfSBlbHNlIGlmIChjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtl
cikgewogICAgICAgICByZXN1bHQuYXBwZW5kKGJ1ZmZlcik7Ci0gICAgICAgIHJldHVybiBhZHZh
bmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6U3RyaW5nVG9rZW4o
cmVzdWx0LnRvU3RyaW5nKCkpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRv
U3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0
LCB0b2tlbiwgV2ViVlRUVG9rZW46OlN0cmluZ1Rva2VuKCpzdHJpbmcpKTsKKyAgICAgICAgQ1JB
U0goKTsKICAgICB9IGVsc2UgewogICAgICAgICByZXN1bHQuYXBwZW5kKGJ1ZmZlcik7CiAgICAg
ICAgIGJ1ZmZlci5jbGVhcigpOwpAQCAtMTcyLDcgKzE4MCw5IEBAIFRhZ1N0YXRlOgogICAgICAg
ICBXRUJWVFRfQURWQU5DRV9UTyhUaW1lc3RhbXBUYWdTdGF0ZSk7CiAgICAgfSBlbHNlIGlmIChj
aGFyYWN0ZXIgPT0gJz4nIHx8IGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAg
ICAgIEFTU0VSVChyZXN1bHQuaXNFbXB0eSgpKTsKLSAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRF
bWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpTdGFydFRhZyhyZXN1bHQudG9T
dHJpbmcoKSkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkK
KyAgICAgICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBX
ZWJWVFRUb2tlbjo6U3RhcnRUYWcoKnN0cmluZykpOworICAgICAgICBDUkFTSCgpOwogICAgIH0g
ZWxzZSB7CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2hhcmFjdGVyKTsKICAgICAgICAgV0VCVlRU
X0FEVkFOQ0VfVE8oU3RhcnRUYWdTdGF0ZSk7CkBAIC0xODMsOSArMTkzLDExIEBAIFN0YXJ0VGFn
U3RhdGU6CiAgICAgICAgIFdFQlZUVF9BRFZBTkNFX1RPKFN0YXJ0VGFnQW5ub3RhdGlvblN0YXRl
KTsKICAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gJy4nKQogICAgICAgICBXRUJWVFRfQURWQU5D
RV9UTyhTdGFydFRhZ0NsYXNzU3RhdGUpOwotICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSAnPicg
fHwgY2hhcmFjdGVyID09IGtFbmRPZkZpbGVNYXJrZXIpCi0gICAgICAgIHJldHVybiBhZHZhbmNl
QW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6U3RhcnRUYWcocmVzdWx0
LnRvU3RyaW5nKCkpKTsKLSAgICBlbHNlIHsKKyAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gJz4n
IHx8IGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRF
bWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpTdGFydFRhZygqc3RyaW5nKSk7
CisgICAgICAgIENSQVNIKCk7CisgICAgfSBlbHNlIHsKICAgICAgICAgcmVzdWx0LmFwcGVuZChj
aGFyYWN0ZXIpOwogICAgICAgICBXRUJWVFRfQURWQU5DRV9UTyhTdGFydFRhZ1N0YXRlKTsKICAg
ICB9CkBAIC0yMDIsMjcgKzIxNCw0NCBAQCBTdGFydFRhZ0NsYXNzU3RhdGU6CiAgICAgfSBlbHNl
IGlmIChjaGFyYWN0ZXIgPT0gJz4nIHx8IGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7
CiAgICAgICAgIGFkZE5ld0NsYXNzKGNsYXNzZXMsIGJ1ZmZlcik7CiAgICAgICAgIGJ1ZmZlci5j
bGVhcigpOwotICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tl
biwgV2ViVlRUVG9rZW46OlN0YXJ0VGFnKHJlc3VsdC50b1N0cmluZygpLCBjbGFzc2VzLnRvQXRv
bWljU3RyaW5nKCkpKTsKKyAgICAgICAgaWYgKGF1dG8gcmVzdWx0U3RyaW5nID0gcmVzdWx0LnRv
U3RyaW5nKCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIGNsYXNzZXNTdHJpbmcgPSBjbGFzc2Vz
LnRvQXRvbWljU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0
VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpTdGFydFRhZygqcmVzdWx0U3RyaW5n
LCAqY2xhc3Nlc1N0cmluZykpOworICAgICAgICB9CisgICAgICAgIENSQVNIKCk7CiAgICAgfSBl
bHNlIHsKICAgICAgICAgYnVmZmVyLmFwcGVuZChjaGFyYWN0ZXIpOwogICAgICAgICBXRUJWVFRf
QURWQU5DRV9UTyhTdGFydFRhZ0NsYXNzU3RhdGUpOwogICAgIH0KIAogU3RhcnRUYWdBbm5vdGF0
aW9uU3RhdGU6Ci0gICAgaWYgKGNoYXJhY3RlciA9PSAnPicgfHwgY2hhcmFjdGVyID09IGtFbmRP
ZkZpbGVNYXJrZXIpCi0gICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQs
IHRva2VuLCBXZWJWVFRUb2tlbjo6U3RhcnRUYWcocmVzdWx0LnRvU3RyaW5nKCksIGNsYXNzZXMu
dG9BdG9taWNTdHJpbmcoKSwgYnVmZmVyLnRvQXRvbWljU3RyaW5nKCkpKTsKKyAgICBpZiAoY2hh
cmFjdGVyID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikgeworICAgICAg
ICBpZiAoYXV0byByZXN1bHRTdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkgeworICAgICAgICAg
ICAgaWYgKGF1dG8gY2xhc3Nlc1N0cmluZyA9IGNsYXNzZXMudG9BdG9taWNTdHJpbmcoKSkgewor
ICAgICAgICAgICAgICAgIGlmIChhdXRvIGJ1ZmZlclN0cmluZyA9IGJ1ZmZlci50b0F0b21pY1N0
cmluZygpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbiht
X2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OlN0YXJ0VGFnKCpyZXN1bHRTdHJpbmcsICpjbGFz
c2VzU3RyaW5nLCAqYnVmZmVyU3RyaW5nKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICAgICAgQ1JBU0goKTsKKyAgICB9CiAgICAgYnVmZmVyLmFwcGVuZChjaGFyYWN0ZXIpOwogICAg
IFdFQlZUVF9BRFZBTkNFX1RPKFN0YXJ0VGFnQW5ub3RhdGlvblN0YXRlKTsKIAogRW5kVGFnU3Rh
dGU6Ci0gICAgaWYgKGNoYXJhY3RlciA9PSAnPicgfHwgY2hhcmFjdGVyID09IGtFbmRPZkZpbGVN
YXJrZXIpCi0gICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2Vu
LCBXZWJWVFRUb2tlbjo6RW5kVGFnKHJlc3VsdC50b1N0cmluZygpKSk7CisgICAgaWYgKGNoYXJh
Y3RlciA9PSAnPicgfHwgY2hhcmFjdGVyID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4g
YWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OkVuZFRhZygq
c3RyaW5nKSk7CisgICAgICAgIENSQVNIKCk7CisgICAgfQogICAgIHJlc3VsdC5hcHBlbmQoY2hh
cmFjdGVyKTsKICAgICBXRUJWVFRfQURWQU5DRV9UTyhFbmRUYWdTdGF0ZSk7CiAKIFRpbWVzdGFt
cFRhZ1N0YXRlOgotICAgIGlmIChjaGFyYWN0ZXIgPT0gJz4nIHx8IGNoYXJhY3RlciA9PSBrRW5k
T2ZGaWxlTWFya2VyKQotICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0
LCB0b2tlbiwgV2ViVlRUVG9rZW46OlRpbWVzdGFtcFRhZyhyZXN1bHQudG9TdHJpbmcoKSkpOwor
ICAgIGlmIChjaGFyYWN0ZXIgPT0gJz4nIHx8IGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2Vy
KSB7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAg
ICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRv
a2VuOjpUaW1lc3RhbXBUYWcoKnN0cmluZykpOworICAgICAgICBDUkFTSCgpOworICAgIH0KICAg
ICByZXN1bHQuYXBwZW5kKGNoYXJhY3Rlcik7CiAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oVGltZXN0
YW1wVGFnU3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clN0eWxlU2hlZXQuY3BwCmluZGV4IDlkOTg1ODEuLjY1MWQyZTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKQEAgLTc3MSw3ICs3NzEs
OSBAQCBTdHJpbmcgSW5zcGVjdG9yU3R5bGU6OnNob3J0aGFuZFZhbHVlKGNvbnN0IFN0cmluZyYg
c2hvcnRoYW5kUHJvcGVydHkpIGNvbnN0CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcp
OwogICAgICAgICBidWlsZGVyLmFwcGVuZChpbmRpdmlkdWFsVmFsdWUpOwogICAgIH0KLSAgICBy
ZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAog
U3RyaW5nIEluc3BlY3RvclN0eWxlOjpzaG9ydGhhbmRQcmlvcml0eShjb25zdCBTdHJpbmcmIHNo
b3J0aGFuZFByb3BlcnR5KSBjb25zdApAQCAtOTQzLDEzICs5NDUsMjAgQEAgRXhjZXB0aW9uT3I8
Q1NTU3R5bGVSdWxlKj4gSW5zcGVjdG9yU3R5bGVTaGVldDo6YWRkUnVsZShjb25zdCBTdHJpbmcm
IHNlbGVjdG9yKQogICAgIHN0eWxlU2hlZXRUZXh0LmFwcGVuZExpdGVyYWwoIiB7fSIpOwogCiAg
ICAgLy8gVXNpbmcgc2V0VGV4dCgpIGFzIHRoaXMgb3BlcmF0aW9uIGNoYW5nZXMgdGhlIHN0eWxl
c2hlZXQgcnVsZSBzZXQuCi0gICAgc2V0VGV4dChzdHlsZVNoZWV0VGV4dC50b1N0cmluZygpKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHlsZVNoZWV0VGV4dC50b1N0cmluZygpKQorICAgICAg
ICBzZXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIC8v
IEluc3BlY3RvciBTdHlsZSBTaGVldHMgYXJlIGFsd2F5cyB0cmVhdGVkIGFzIHRob3VnaCB0aGVp
ciBwYXJzZWQgZGF0YSBpcyByZWFkeS4KICAgICBpZiAobV9vcmlnaW4gPT0gSW5zcGVjdG9yOjpQ
cm90b2NvbDo6Q1NTOjpTdHlsZVNoZWV0T3JpZ2luOjpJbnNwZWN0b3IpCiAgICAgICAgIGZpcmVT
dHlsZVNoZWV0Q2hhbmdlZCgpOwotICAgIGVsc2UKLSAgICAgICAgcmVwYXJzZVN0eWxlU2hlZXQo
c3R5bGVTaGVldFRleHQudG9TdHJpbmcoKSk7CisgICAgZWxzZSB7CisgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IHN0eWxlU2hlZXRUZXh0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXBhcnNl
U3R5bGVTaGVldCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsK
KyAgICB9CiAKICAgICBBU1NFUlQobV9wYWdlU3R5bGVTaGVldC0+bGVuZ3RoKCkpOwogICAgIHVu
c2lnbmVkIGxhc3RSdWxlSW5kZXggPSBtX3BhZ2VTdHlsZVNoZWV0LT5sZW5ndGgoKSAtIDE7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFwcGxp
Y2F0aW9uQ2FjaGVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAKaW5kZXggMTlhZjRlOS4uYmY5YjRmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBcHBs
aWNhdGlvbkNhY2hlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcApAQCAtMTcyLDExICsxNzIsMTQg
QEAgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFwcGxpY2F0aW9uQ2FjaGU6OkFwcGxpY2F0aW9u
Q2FjaGVSZXNvdXJjZT4gSW5zcGVjdG9yQXAKICAgICBpZiAocmVzb3VyY2VJbmZvLmlzRXhwbGlj
aXQpCiAgICAgICAgIHR5cGVzLmFwcGVuZExpdGVyYWwoIkV4cGxpY2l0ICIpOwogCi0gICAgcmV0
dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFwcGxpY2F0aW9uQ2FjaGU6OkFwcGxpY2F0aW9uQ2Fj
aGVSZXNvdXJjZTo6Y3JlYXRlKCkKLSAgICAgICAgLnNldFVybChyZXNvdXJjZUluZm8ucmVzb3Vy
Y2Uuc3RyaW5nKCkpCi0gICAgICAgIC5zZXRTaXplKHN0YXRpY19jYXN0PGludD4ocmVzb3VyY2VJ
bmZvLnNpemUpKQotICAgICAgICAuc2V0VHlwZSh0eXBlcy50b1N0cmluZygpKQotICAgICAgICAu
cmVsZWFzZSgpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHR5cGVzLnRvU3RyaW5nKCkpIHsKKyAg
ICAgICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFwcGxpY2F0aW9uQ2FjaGU6OkFwcGxp
Y2F0aW9uQ2FjaGVSZXNvdXJjZTo6Y3JlYXRlKCkKKyAgICAgICAgICAgIC5zZXRVcmwocmVzb3Vy
Y2VJbmZvLnJlc291cmNlLnN0cmluZygpKQorICAgICAgICAgICAgLnNldFNpemUoc3RhdGljX2Nh
c3Q8aW50PihyZXNvdXJjZUluZm8uc2l6ZSkpCisgICAgICAgICAgICAuc2V0VHlwZSgqc3RyaW5n
KQorICAgICAgICAgICAgLnJlbGVhc2UoKTsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCmluZGV4IDQ2ZTRhZmUuLmFmMTcw
NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
TmV0d29ya0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKQEAgLTEzNCw4ICsxMzQsMTEgQEAgcHVibGljOgogICAg
ICAgICBpZiAobV9kZWNvZGVyKQogICAgICAgICAgICAgbV9yZXNwb25zZVRleHQuYXBwZW5kKG1f
ZGVjb2Rlci0+Zmx1c2goKSk7CiAKLSAgICAgICAgbV9jYWxsYmFjay0+c2VuZFN1Y2Nlc3MobV9y
ZXNwb25zZVRleHQudG9TdHJpbmcoKSwgbV9taW1lVHlwZSwgbV9zdGF0dXNDb2RlKTsKLSAgICAg
ICAgZGlzcG9zZSgpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBtX3Jlc3BvbnNlVGV4dC50
b1N0cmluZygpKSB7CisgICAgICAgICAgICBtX2NhbGxiYWNrLT5zZW5kU3VjY2Vzcygqc3RyaW5n
LCBtX21pbWVUeXBlLCBtX3N0YXR1c0NvZGUpOworICAgICAgICAgICAgZGlzcG9zZSgpOworICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgdm9pZCBkaWRG
YWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKSBvdmVycmlkZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xlQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xlQWdlbnQuY3BwCmluZGV4IGRjOTY0
ODYuLjYzODM4YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
V2ViQ29uc29sZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L1dlYkNvbnNvbGVBZ2VudC5jcHAKQEAgLTE2OSw3ICsxNjksMTAgQEAgdm9pZCBXZWJDb25zb2xl
QWdlbnQ6OmRpZEZhaWxMb2FkaW5nKHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIsIGNv
bnN0IFJlc28KICAgICAgICAgbWVzc2FnZS5hcHBlbmQoZXJyb3IubG9jYWxpemVkRGVzY3JpcHRp
b24oKSk7CiAgICAgfQogCi0gICAgYWRkTWVzc2FnZVRvQ29uc29sZShzdGQ6Om1ha2VfdW5pcXVl
PENvbnNvbGVNZXNzYWdlPihNZXNzYWdlU291cmNlOjpOZXR3b3JrLCBNZXNzYWdlVHlwZTo6TG9n
LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBtZXNzYWdlLnRvU3RyaW5nKCksIGVycm9yLmZhaWxpbmdV
UkwoKSwgMCwgMCwgbnVsbHB0ciwgcmVxdWVzdElkZW50aWZpZXIpKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBtZXNzYWdlLnRvU3RyaW5nKCkpCisgICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUo
c3RkOjptYWtlX3VuaXF1ZTxDb25zb2xlTWVzc2FnZT4oTWVzc2FnZVNvdXJjZTo6TmV0d29yaywg
TWVzc2FnZVR5cGU6OkxvZywgTWVzc2FnZUxldmVsOjpFcnJvciwgKnN0cmluZywgZXJyb3IuZmFp
bGluZ1VSTCgpLCAwLCAwLCBudWxscHRyLCByZXF1ZXN0SWRlbnRpZmllcikpOworICAgIGVsc2UK
KyAgICAgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcAppbmRleCA2
ODgwNGYyLi5mODhhNDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NP
cmlnaW5BY2Nlc3NDb250cm9sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NP
cmlnaW5BY2Nlc3NDb250cm9sLmNwcApAQCAtMTEyLDggKzExMiwxMiBAQCBSZXNvdXJjZVJlcXVl
c3QgY3JlYXRlQWNjZXNzQ29udHJvbFByZWZsaWdodFJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZQogCiAgICAgICAgICAgICBoZWFkZXJCdWZmZXIuYXBwZW5kKGhlYWRlckZpZWxk
KTsKICAgICAgICAgfQotICAgICAgICBpZiAoIWhlYWRlckJ1ZmZlci5pc0VtcHR5KCkpCi0gICAg
ICAgICAgICBwcmVmbGlnaHRSZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFt
ZTo6QWNjZXNzQ29udHJvbFJlcXVlc3RIZWFkZXJzLCBoZWFkZXJCdWZmZXIudG9TdHJpbmcoKSk7
CisgICAgICAgIGlmICghaGVhZGVyQnVmZmVyLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gaGVhZGVyQnVmZmVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAg
cHJlZmxpZ2h0UmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkFjY2Vz
c0NvbnRyb2xSZXF1ZXN0SGVhZGVycywgKnN0cmluZyk7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIHJldHVybiBwcmVm
bGlnaHRSZXF1ZXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3MuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3MuY3BwCmluZGV4IDRkZjI1ZGEuLjk4NmZlNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5jcHAKQEAgLTI2OCw3ICsyNjgsOSBA
QCBTdHJpbmcgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6dG9TdHJpbmcoKSBjb25zdAogCiAgICAg
YnVpbGRlci5hcHBlbmQoJ1xuJyk7CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0
b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlLmNwcAppbmRleCBmZjI5Mzg5Li40ZjIyZDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5j
cHAKQEAgLTg0MSwxNyArODQxLDIwIEBAIGJvb2wgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OnN0
b3JlKEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZSogcmVzb3VyY2UsIHVuc2lnbmVkCiAKICAgICAv
LyBUaGVuLCBpbnNlcnQgdGhlIHJlc291cmNlCiAgICAgCi0gICAgLy8gU2VyaWFsaXplIHRoZSBo
ZWFkZXJzCi0gICAgU3RyaW5nQnVpbGRlciBzdHJpbmdCdWlsZGVyOwotICAgIAotICAgIGZvciAo
Y29uc3QgYXV0byYgaGVhZGVyIDogcmVzb3VyY2UtPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxk
cygpKSB7Ci0gICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGhlYWRlci5rZXkpOwotICAgICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnOicpOwotICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
ZChoZWFkZXIudmFsdWUpOwotICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAg
ICB9Ci0gICAgCi0gICAgU3RyaW5nIGhlYWRlcnMgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7
CisgICAgU3RyaW5nIGhlYWRlcnMgPSBbJl0gKCkgeworICAgICAgICAvLyBTZXJpYWxpemUgdGhl
IGhlYWRlcnMKKyAgICAgICAgU3RyaW5nQnVpbGRlciBzdHJpbmdCdWlsZGVyOworICAgIAorICAg
ICAgICBmb3IgKGNvbnN0IGF1dG8mIGhlYWRlciA6IHJlc291cmNlLT5yZXNwb25zZSgpLmh0dHBI
ZWFkZXJGaWVsZHMoKSkgeworICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoaGVhZGVy
LmtleSk7CisgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnOicpOworICAgICAgICAg
ICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoaGVhZGVyLnZhbHVlKTsKKyAgICAgICAgICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kKCdcbicpOworICAgICAgICB9CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgICAgICBDUkFTSCgpOworICAgIH0oKTsKICAgICAKICAgICBTUUxpdGVTdGF0ZW1lbnQg
cmVzb3VyY2VTdGF0ZW1lbnQobV9kYXRhYmFzZSwgIklOU0VSVCBJTlRPIENhY2hlUmVzb3VyY2Vz
ICh1cmwsIHN0YXR1c0NvZGUsIHJlc3BvbnNlVVJMLCBoZWFkZXJzLCBkYXRhLCBtaW1lVHlwZSwg
dGV4dEVuY29kaW5nTmFtZSkgVkFMVUVTICg/LCA/LCA/LCA/LCA/LCA/LCA/KSIpOwogICAgIGlm
IChyZXNvdXJjZVN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcAppbmRl
eCAxMmEzMGNjLi5jZmU3Mzg2M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9h
cmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwCkBAIC01NTcsMjEgKzU1NywyNCBAQCBS
ZWZQdHI8TGVnYWN5V2ViQXJjaGl2ZT4gTGVnYWN5V2ViQXJjaGl2ZTo6Y3JlYXRlRnJvbVNlbGVj
dGlvbihGcmFtZSogZnJhbWUpCiAgICAgaWYgKGF1dG8gc2VsZWN0aW9uUmFuZ2UgPSBmcmFtZS0+
c2VsZWN0aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKSkKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
Y3JlYXRlTWFya3VwKCpzZWxlY3Rpb25SYW5nZSwgJm5vZGVMaXN0LCBBbm5vdGF0ZUZvckludGVy
Y2hhbmdlKSk7CiAKLSAgICBhdXRvIGFyY2hpdmUgPSBjcmVhdGUoYnVpbGRlci50b1N0cmluZygp
LCAqZnJhbWUsIG5vZGVMaXN0LCBudWxscHRyKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgYXV0byBhcmNoaXZlID0gY3JlYXRlKCpzdHJpbmcs
ICpmcmFtZSwgbm9kZUxpc3QsIG51bGxwdHIpOwogICAgIAotICAgIGlmICghZG9jdW1lbnQtPmlz
RnJhbWVTZXQoKSkKLSAgICAgICAgcmV0dXJuIGFyY2hpdmU7CisgICAgICAgIGlmICghZG9jdW1l
bnQtPmlzRnJhbWVTZXQoKSkKKyAgICAgICAgICAgIHJldHVybiBhcmNoaXZlOwogICAgICAgICAK
LSAgICAvLyBXcmFwIHRoZSBmcmFtZXNldCBkb2N1bWVudCBpbiBhbiBpZnJhbWUgc28gaXQgY2Fu
IGJlIHBhc3RlZCBpbnRvCi0gICAgLy8gYW5vdGhlciBkb2N1bWVudCAod2hpY2ggd2lsbCBoYXZl
IGEgYm9keSBvciBmcmFtZXNldCBvZiBpdHMgb3duKS4gCi0gICAgU3RyaW5nIGlmcmFtZU1hcmt1
cCA9ICI8aWZyYW1lIGZyYW1lYm9yZGVyPVwibm9cIiBtYXJnaW53aWR0aD1cIjBcIiBtYXJnaW5o
ZWlnaHQ9XCIwXCIgd2lkdGg9XCI5OCUlXCIgaGVpZ2h0PVwiOTglJVwiIHNyYz1cIiIgKyBmcmFt
ZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2UoKS51cmwoKS5zdHJpbmcoKSAr
ICJcIj48L2lmcmFtZT4iOwotICAgIGF1dG8gaWZyYW1lUmVzb3VyY2UgPSBBcmNoaXZlUmVzb3Vy
Y2U6OmNyZWF0ZSh1dGY4QnVmZmVyKGlmcmFtZU1hcmt1cCksIGJsYW5rVVJMKCksICJ0ZXh0L2h0
bWwiLCAiVVRGLTgiLCBTdHJpbmcoKSk7CisgICAgICAgIC8vIFdyYXAgdGhlIGZyYW1lc2V0IGRv
Y3VtZW50IGluIGFuIGlmcmFtZSBzbyBpdCBjYW4gYmUgcGFzdGVkIGludG8KKyAgICAgICAgLy8g
YW5vdGhlciBkb2N1bWVudCAod2hpY2ggd2lsbCBoYXZlIGEgYm9keSBvciBmcmFtZXNldCBvZiBp
dHMgb3duKS4gCisgICAgICAgIFN0cmluZyBpZnJhbWVNYXJrdXAgPSAiPGlmcmFtZSBmcmFtZWJv
cmRlcj1cIm5vXCIgbWFyZ2lud2lkdGg9XCIwXCIgbWFyZ2luaGVpZ2h0PVwiMFwiIHdpZHRoPVwi
OTglJVwiIGhlaWdodD1cIjk4JSVcIiBzcmM9XCIiICsgZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50
TG9hZGVyKCktPnJlc3BvbnNlKCkudXJsKCkuc3RyaW5nKCkgKyAiXCI+PC9pZnJhbWU+IjsKKyAg
ICAgICAgYXV0byBpZnJhbWVSZXNvdXJjZSA9IEFyY2hpdmVSZXNvdXJjZTo6Y3JlYXRlKHV0ZjhC
dWZmZXIoaWZyYW1lTWFya3VwKSwgYmxhbmtVUkwoKSwgInRleHQvaHRtbCIsICJVVEYtOCIsIFN0
cmluZygpKTsKIAotICAgIFZlY3RvcjxSZWY8TGVnYWN5V2ViQXJjaGl2ZT4+IHN1YmZyYW1lQXJj
aGl2ZXM7Ci0gICAgc3ViZnJhbWVBcmNoaXZlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KDEpOwot
ICAgIHN1YmZyYW1lQXJjaGl2ZXMudW5jaGVja2VkQXBwZW5kKGFyY2hpdmUucmVsZWFzZU5vbk51
bGwoKSk7CisgICAgICAgIFZlY3RvcjxSZWY8TGVnYWN5V2ViQXJjaGl2ZT4+IHN1YmZyYW1lQXJj
aGl2ZXM7CisgICAgICAgIHN1YmZyYW1lQXJjaGl2ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSgx
KTsKKyAgICAgICAgc3ViZnJhbWVBcmNoaXZlcy51bmNoZWNrZWRBcHBlbmQoYXJjaGl2ZS5yZWxl
YXNlTm9uTnVsbCgpKTsKIAotICAgIHJldHVybiBjcmVhdGUoaWZyYW1lUmVzb3VyY2UucmVsZWFz
ZU5vbk51bGwoKSwgeyB9LCBXVEZNb3ZlKHN1YmZyYW1lQXJjaGl2ZXMpKTsKKyAgICAgICAgcmV0
dXJuIGNyZWF0ZShpZnJhbWVSZXNvdXJjZS5yZWxlYXNlTm9uTnVsbCgpLCB7IH0sIFdURk1vdmUo
c3ViZnJhbWVBcmNoaXZlcykpOworICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcApp
bmRleCA3MDVjNmRjLi42NGFmNGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
YXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHAKQEAgLTc2LDcgKzc2LDkgQEAgc3RhdGlj
IFN0cmluZyBnZW5lcmF0ZVJhbmRvbUJvdW5kYXJ5KCkKICAgICAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmQobG93ZXJOaWJibGVUb0FTQ0lJSGV4RGlnaXQocmFuZG9tVmFsdWVzW2ldKSk7CiAgICAg
ICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHVwcGVyTmliYmxlVG9BU0NJSUhleERpZ2l0KHJhbmRv
bVZhbHVlc1tpXSkpOwogICAgIH0KLSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyByZXBs
YWNlTm9uUHJpbnRhYmxlQ2hhcmFjdGVycyhjb25zdCBTdHJpbmcmIHRleHQpCkBAIC04OCw3ICs5
MCw5IEBAIHN0YXRpYyBTdHJpbmcgcmVwbGFjZU5vblByaW50YWJsZUNoYXJhY3RlcnMoY29uc3Qg
U3RyaW5nJiB0ZXh0KQogICAgICAgICBlbHNlCiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZCgnPycpOwogICAgIH0KLSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogTUhUTUxBcmNoaXZlOjpNSFRNTEFy
Y2hpdmUoKQpAQCAtMTYwLDEwICsxNjQsMTYgQEAgUmVmPFNoYXJlZEJ1ZmZlcj4gTUhUTUxBcmNo
aXZlOjpnZW5lcmF0ZU1IVE1MRGF0YShQYWdlKiBwYWdlKQogICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kKCJcIlxyXG5cclxuIik7CiAKICAgICAvLyBXZSB1c2UgdXRmOCgpIGJlbG93IGluc3RlYWQg
b2YgYXNjaWkoKSBhcyBhc2NpaSgpIHJlcGxhY2VzIENSTEZzIHdpdGggPz8gKHdlIHN0aWxsIG9u
bHkgaGF2ZSBwdXQgQVNDSUkgY2hhcmFjdGVycyBpbiBpdCkuCi0gICAgQVNTRVJUKHN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKS5pc0FsbEFTQ0lJKCkpOwotICAgIENTdHJpbmcgYXNjaWlTdHJpbmcg
PSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpOwotICAgIGF1dG8gbWh0bWxEYXRhID0g
U2hhcmVkQnVmZmVyOjpjcmVhdGUoKTsKLSAgICBtaHRtbERhdGEtPmFwcGVuZChhc2NpaVN0cmlu
Zy5kYXRhKCksIGFzY2lpU3RyaW5nLmxlbmd0aCgpKTsKKyAgICBhdXRvIG1odG1sRGF0YSA9IFsm
XSAoKSB7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmco
KSkgeworICAgICAgICAgICAgQVNTRVJUKHN0cmluZy0+aXNBbGxBU0NJSSgpKTsKKyAgICAgICAg
ICAgIENTdHJpbmcgYXNjaWlTdHJpbmcgPSBzdHJpbmctPnV0ZjgoKTsKKyAgICAgICAgICAgIGF1
dG8gcmVzdWx0ID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoKTsKKyAgICAgICAgICAgIHJlc3VsdC0+
YXBwZW5kKGFzY2lpU3RyaW5nLmRhdGEoKSwgYXNjaWlTdHJpbmcubGVuZ3RoKCkpOworICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICBDUkFTSCgpOworICAgIH0o
KTsKIAogICAgIGZvciAoYXV0byYgcmVzb3VyY2UgOiByZXNvdXJjZXMpIHsKICAgICAgICAgc3Ry
aW5nQnVpbGRlci5jbGVhcigpOwpAQCAtMTgzLDggKzE5MywxMCBAQCBSZWY8U2hhcmVkQnVmZmVy
PiBNSFRNTEFyY2hpdmU6OmdlbmVyYXRlTUhUTUxEYXRhKFBhZ2UqIHBhZ2UpCiAgICAgICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kKHJlc291cmNlLnVybCk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIu
YXBwZW5kKCJcclxuXHJcbiIpOwogCi0gICAgICAgIGFzY2lpU3RyaW5nID0gc3RyaW5nQnVpbGRl
ci50b1N0cmluZygpLnV0ZjgoKTsKLSAgICAgICAgbWh0bWxEYXRhLT5hcHBlbmQoYXNjaWlTdHJp
bmcuZGF0YSgpLCBhc2NpaVN0cmluZy5sZW5ndGgoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgQ1N0cmluZyBhc2Np
aVN0cmluZyA9IHN0cmluZy0+dXRmOCgpOworICAgICAgICAgICAgbWh0bWxEYXRhLT5hcHBlbmQo
YXNjaWlTdHJpbmcuZGF0YSgpLCBhc2NpaVN0cmluZy5sZW5ndGgoKSk7CisgICAgICAgIH0KIAog
ICAgICAgICAvLyBGSVhNRTogaWRlYWxseSB3ZSB3b3VsZCBlbmNvZGUgdGhlIGNvbnRlbnQgYXMg
YSBzdHJlYW0gd2l0aG91dCBoYXZpbmcgdG8gZmV0Y2ggaXQgYWxsLgogICAgICAgICBjb25zdCBj
aGFyKiBkYXRhID0gcmVzb3VyY2UuZGF0YS0+ZGF0YSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAppbmRleCBjMTM5MDc2
Li5kODNlMjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJl
ZmVyZW5jZXNNZWRpYUFGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2Vy
UHJlZmVyZW5jZXNNZWRpYUFGLmNwcApAQCAtMzQ3LDE0ICszNDcsMTggQEAgU3RyaW5nIENhcHRp
b25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjp3aW5kb3dSb3VuZGVkQ29ybmVyUmFkaXVzQ1NTKCkg
Y29uc3QKIAogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBhcHBlbmRDU1MoYnVpbGRl
ciwgQ1NTUHJvcGVydHlCb3JkZXJSYWRpdXMsIFN0cmluZzo6Zm9ybWF0KCIlLjAyZnB4IiwgcmFk
aXVzKSwgYmVoYXZpb3IgPT0ga01BQ2FwdGlvbkFwcGVhcmFuY2VCZWhhdmlvclVzZVZhbHVlKTsK
LSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjb2xvclByb3BlcnR5
Q1NTKENTU1Byb3BlcnR5SUQgaWQsIGNvbnN0IENvbG9yJiBjb2xvciwgYm9vbCBpbXBvcnRhbnQp
IGNvbnN0CiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGFwcGVuZENTUyhidWls
ZGVyLCBpZCwgY29sb3Iuc2VyaWFsaXplZCgpLCBpbXBvcnRhbnQpOwotICAgIHJldHVybiBidWls
ZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENhcHRp
b25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uU3Ryb2tlV2lkdGhGb3JGb250KGZsb2F0
IGZvbnRTaXplLCBjb25zdCBTdHJpbmcmIGxhbmd1YWdlLCBmbG9hdCYgc3Ryb2tlV2lkdGgsIGJv
b2wmIGltcG9ydGFudCkgY29uc3QKQEAgLTQwNiw3ICs0MTAsOSBAQCBTdHJpbmcgQ2FwdGlvblVz
ZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zVGV4dEVkZ2VDU1MoKSBjb25zdAogICAgICAg
ICBhcHBlbmRDU1MoYnVpbGRlciwgQ1NTUHJvcGVydHlTdHJva2VMaW5lY2FwLCBnZXRWYWx1ZU5h
bWUoQ1NTVmFsdWVSb3VuZCksIGltcG9ydGFudCk7CiAgICAgfQogICAgIAotICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcg
Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zRGVmYXVsdEZvbnRDU1MoKSBj
b25zdApAQCAtNDQ4LDcgKzQ1NCw5IEBAIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVk
aWFBRjo6Y2FwdGlvbnNEZWZhdWx0Rm9udENTUygpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiICFpbXBvcnRhbnQiKTsKICAgICBidWlsZGVyLmFwcGVuZCgnOycpOwogICAg
IAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
YnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogCiBmbG9hdCBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y2FwdGlvbkZvbnRT
aXplU2NhbGVBbmRJbXBvcnRhbmNlKGJvb2wmIGltcG9ydGFudCkgY29uc3QKQEAgLTU5NSw5ICs2
MDMsMTEgQEAgU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc1N0
eWxlU2hlZXRPdmVycmlkZSgpIGNvbnN0CiAgICAgfQogI2VuZGlmIC8vIEhBVkUoTUVESUFfQUND
RVNTSUJJTElUWV9GUkFNRVdPUkspCiAKLSAgICBMT0coTWVkaWEsICJDYXB0aW9uVXNlclByZWZl
cmVuY2VzTWVkaWFBRjo6Y2FwdGlvbnNTdHlsZVNoZWV0T3ZlcnJpZGVTZXR0aW5nIHN0eWxlIHRv
OlxuJXMiLCBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC50b1N0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOwotCi0gICAgcmV0dXJuIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQudG9TdHJp
bmcoKSkgeworICAgICAgICBMT0coTWVkaWEsICJDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFB
Rjo6Y2FwdGlvbnNTdHlsZVNoZWV0T3ZlcnJpZGVTZXR0aW5nIHN0eWxlIHRvOlxuJXMiLCBzdHJp
bmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICB9CisgICAg
Q1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBsYW5ndWFnZUlkZW50aWZpZXIoY29uc3QgU3Ry
aW5nJiBsYW5ndWFnZUNvZGUpCkBAIC02NjQsMTAgKzY3NCwxMyBAQCBzdGF0aWMgU3RyaW5nIHRy
YWNrRGlzcGxheU5hbWUoQXVkaW9UcmFjayogdHJhY2spCiAgICAgaWYgKGRpc3BsYXlOYW1lLmlz
RW1wdHkoKSkKICAgICAgICAgZGlzcGxheU5hbWUuYXBwZW5kKGF1ZGlvVHJhY2tOb0xhYmVsVGV4
dCgpKTsKIAotICAgIGlmICh0cmFjay0+a2luZCgpICE9IEF1ZGlvVHJhY2s6OmRlc2NyaXB0aW9u
S2V5d29yZCgpKQotICAgICAgICByZXR1cm4gZGlzcGxheU5hbWUudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBkaXNwbGF5TmFtZS50b1N0cmluZygpKSB7CisgICAgICAgIGlmICh0
cmFjay0+a2luZCgpICE9IEF1ZGlvVHJhY2s6OmRlc2NyaXB0aW9uS2V5d29yZCgpKQorICAgICAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CiAKLSAgICByZXR1cm4gYXVkaW9EZXNjcmlwdGlvblRyYWNr
U3VmZml4VGV4dChkaXNwbGF5TmFtZS50b1N0cmluZygpKTsKKyAgICAgICAgcmV0dXJuIGF1ZGlv
RGVzY3JpcHRpb25UcmFja1N1ZmZpeFRleHQoKnN0cmluZyk7CisgICAgfQorICAgIENSQVNIKCk7
CiB9CiAKIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6ZGlzcGxheU5hbWVG
b3JUcmFjayhBdWRpb1RyYWNrKiB0cmFjaykgY29uc3QKQEAgLTY4OCwyNiArNzAxLDI5IEBAIHN0
YXRpYyBTdHJpbmcgdHJhY2tEaXNwbGF5TmFtZShUZXh0VHJhY2sqIHRyYWNrKQogICAgIGlmIChk
aXNwbGF5TmFtZUJ1aWxkZXIuaXNFbXB0eSgpKQogICAgICAgICBkaXNwbGF5TmFtZUJ1aWxkZXIu
YXBwZW5kKHRleHRUcmFja05vTGFiZWxUZXh0KCkpOwogCi0gICAgU3RyaW5nIGRpc3BsYXlOYW1l
ID0gZGlzcGxheU5hbWVCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
ZGlzcGxheU5hbWVCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgU3RyaW5nIGRpc3BsYXlO
YW1lID0gKnN0cmluZzsKIAotICAgIGlmICh0cmFjay0+aXNDbG9zZWRDYXB0aW9ucygpKSB7Ci0g
ICAgICAgIGRpc3BsYXlOYW1lID0gY2xvc2VkQ2FwdGlvblRyYWNrTWVudUl0ZW1UZXh0KGRpc3Bs
YXlOYW1lKTsKLSAgICAgICAgaWYgKHRyYWNrLT5pc0Vhc3lUb1JlYWQoKSkKLSAgICAgICAgICAg
IGRpc3BsYXlOYW1lID0gZWFzeVJlYWRlclRyYWNrTWVudUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsK
KyAgICAgICAgaWYgKHRyYWNrLT5pc0Nsb3NlZENhcHRpb25zKCkpIHsKKyAgICAgICAgICAgIGRp
c3BsYXlOYW1lID0gY2xvc2VkQ2FwdGlvblRyYWNrTWVudUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsK
KyAgICAgICAgICAgIGlmICh0cmFjay0+aXNFYXN5VG9SZWFkKCkpCisgICAgICAgICAgICAgICAg
ZGlzcGxheU5hbWUgPSBlYXN5UmVhZGVyVHJhY2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOwog
Ci0gICAgICAgIHJldHVybiBkaXNwbGF5TmFtZTsKLSAgICB9CisgICAgICAgICAgICByZXR1cm4g
ZGlzcGxheU5hbWU7CisgICAgICAgIH0KIAotICAgIGlmICh0cmFjay0+aXNTREgoKSkKLSAgICAg
ICAgZGlzcGxheU5hbWUgPSBzZGhUcmFja01lbnVJdGVtVGV4dChkaXNwbGF5TmFtZSk7CisgICAg
ICAgIGlmICh0cmFjay0+aXNTREgoKSkKKyAgICAgICAgICAgIGRpc3BsYXlOYW1lID0gc2RoVHJh
Y2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOwogCi0gICAgaWYgKHRyYWNrLT5jb250YWluc09u
bHlGb3JjZWRTdWJ0aXRsZXMoKSkKLSAgICAgICAgZGlzcGxheU5hbWUgPSBmb3JjZWRUcmFja01l
bnVJdGVtVGV4dChkaXNwbGF5TmFtZSk7CisgICAgICAgIGlmICh0cmFjay0+Y29udGFpbnNPbmx5
Rm9yY2VkU3VidGl0bGVzKCkpCisgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IGZvcmNlZFRyYWNr
TWVudUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsKIAotICAgIGlmICh0cmFjay0+aXNFYXN5VG9SZWFk
KCkpCi0gICAgICAgIGRpc3BsYXlOYW1lID0gZWFzeVJlYWRlclRyYWNrTWVudUl0ZW1UZXh0KGRp
c3BsYXlOYW1lKTsKKyAgICAgICAgaWYgKHRyYWNrLT5pc0Vhc3lUb1JlYWQoKSkKKyAgICAgICAg
ICAgIGRpc3BsYXlOYW1lID0gZWFzeVJlYWRlclRyYWNrTWVudUl0ZW1UZXh0KGRpc3BsYXlOYW1l
KTsKIAotICAgIHJldHVybiBkaXNwbGF5TmFtZTsKKyAgICAgICAgcmV0dXJuIGRpc3BsYXlOYW1l
OworICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNl
c01lZGlhQUY6OmRpc3BsYXlOYW1lRm9yVHJhY2soVGV4dFRyYWNrKiB0cmFjaykgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZS5jcHAKaW5kZXggYTg0MjY1YS4uM2U0MjQ2ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5j
cHAKQEAgLTM2OSw3ICszNjksOSBAQCBzdGF0aWMgSlNDOjpZYXJyOjpSZWd1bGFyRXhwcmVzc2lv
biBjcmVhdGVSZWdFeHBGb3JMYWJlbHMoY29uc3QgVmVjdG9yPFN0cmluZz4mCiAgICAgICAgICAg
ICBwYXR0ZXJuLmFwcGVuZExpdGVyYWwoIlxcYiIpOwogICAgIH0KICAgICBwYXR0ZXJuLmFwcGVu
ZCgnKScpOwotICAgIHJldHVybiBKU0M6OllhcnI6OlJlZ3VsYXJFeHByZXNzaW9uKHBhdHRlcm4u
dG9TdHJpbmcoKSwgSlNDOjpZYXJyOjpUZXh0Q2FzZUluc2Vuc2l0aXZlKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBwYXR0ZXJuLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBKU0M6OllhcnI6
OlJlZ3VsYXJFeHByZXNzaW9uKCpzdHJpbmcsIEpTQzo6WWFycjo6VGV4dENhc2VJbnNlbnNpdGl2
ZSk7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIEZyYW1lOjpzZWFyY2hGb3JMYWJlbHNBYm92
ZUNlbGwoY29uc3QgSlNDOjpZYXJyOjpSZWd1bGFyRXhwcmVzc2lvbiYgcmVnRXhwLCBIVE1MVGFi
bGVDZWxsRWxlbWVudCogY2VsbCwgc2l6ZV90KiByZXN1bHREaXN0YW5jZUZyb21TdGFydE9mQ2Vs
bCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcAppbmRleCAyNmNjYzdhLi40ZGNlZjA3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwCkBAIC0xNTAsNyArMTUwLDkgQEAgQXRvbWljU3RyaW5n
IEZyYW1lVHJlZTo6dW5pcXVlQ2hpbGROYW1lKGNvbnN0IEF0b21pY1N0cmluZyYgcmVxdWVzdGVk
TmFtZSkgY29uc3QKICAgICBuYW1lLmFwcGVuZE51bWJlcihjaGlsZENvdW50KCkpOwogICAgIG5h
bWUuYXBwZW5kTGl0ZXJhbCgiLS0+LS0+Iik7CiAKLSAgICByZXR1cm4gbmFtZS50b0F0b21pY1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG5hbWUudG9BdG9taWNTdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIGJvb2wgaW5T
Y29wZShGcmFtZSYgZnJhbWUsIFRyZWVTY29wZSYgc2NvcGUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKaW5kZXggZmYzYjhhYS4uMmEzNjBmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cApAQCAtMTQ1Miw3ICsxNDUyLDEwIEBAIHZvaWQgRnJhbWVWaWV3Ojpsb2dNb2NrU2Nyb2xsQW5p
bWF0b3JNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgY29uc3QKICAgICAgICAgYnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCJNYWluIik7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJGcmFt
ZVZpZXc6ICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG1lc3NhZ2UpOwotICAgIGRvY3VtZW50LT5h
ZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpPdGhlciwgTWVzc2FnZUxldmVsOjpEZWJ1
ZywgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291
cmNlOjpPdGhlciwgTWVzc2FnZUxldmVsOjpEZWJ1ZywgKnN0cmluZyk7CisgICAgZWxzZQorICAg
ICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEZyYW1lVmlldzo6c2V0Q2Fubm90QmxpdFRvV2luZG93
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKaW5kZXggNWY2NDIyNC4uOWFh
OWYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKQEAgLTI2Myw4ICsy
NjMsMTEgQEAgdm9pZCBQYWdlU2VyaWFsaXplcjo6c2VyaWFsaXplQ1NTU3R5bGVTaGVldChDU1NT
dHlsZVNoZWV0KiBzdHlsZVNoZWV0LCBjb25zdCBVUkwKICAgICAgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBjaGVjayB3aGV0aGVyIGEgY2hhcnNldCBoYXMgYmVlbiBzcGVjaWZpZWQgYW5kIGlmIG5v
bmUgd2FzIGZvdW5kIGFkZCBvbmUuCiAgICAgICAgIFRleHRFbmNvZGluZyB0ZXh0RW5jb2Rpbmco
c3R5bGVTaGVldC0+Y29udGVudHMoKS5jaGFyc2V0KCkpOwogICAgICAgICBBU1NFUlQodGV4dEVu
Y29kaW5nLmlzVmFsaWQoKSk7Ci0gICAgICAgIG1fcmVzb3VyY2VzLmFwcGVuZCh7IHVybCwgQVND
SUlMaXRlcmFsIHsgInRleHQvY3NzIiB9LCBTaGFyZWRCdWZmZXI6OmNyZWF0ZSh0ZXh0RW5jb2Rp
bmcuZW5jb2RlKGNzc1RleHQudG9TdHJpbmcoKSwgVW5lbmNvZGFibGVIYW5kbGluZzo6RW50aXRp
ZXMpKSB9KTsKLSAgICAgICAgbV9yZXNvdXJjZVVSTHMuYWRkKHVybCk7CisgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IGNzc1RleHQudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgbV9yZXNvdXJj
ZXMuYXBwZW5kKHsgdXJsLCBBU0NJSUxpdGVyYWwgeyAidGV4dC9jc3MiIH0sIFNoYXJlZEJ1ZmZl
cjo6Y3JlYXRlKHRleHRFbmNvZGluZy5lbmNvZGUoKnN0cmluZywgVW5lbmNvZGFibGVIYW5kbGlu
Zzo6RW50aXRpZXMpKSB9KTsKKyAgICAgICAgICAgIG1fcmVzb3VyY2VVUkxzLmFkZCh1cmwpOwor
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5jcHAKaW5kZXggOWQ0
NGQ5NC4uM2I0NGZmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZUxvZ2dpbmdDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VM
b2dnaW5nQ2xpZW50LmNwcApAQCAtNTAsNyArNTAsOSBAQCBTdHJpbmcgUGVyZm9ybWFuY2VMb2dn
aW5nQ2xpZW50OjpzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNBc1N0cmluZyhTeW5jaHJvbm91
cwogICAgICAgICByZWFzb25zLmFwcGVuZExpdGVyYWwoImltYWdlIGRvY3VtZW50LCIpOwogCiAg
ICAgLy8gU3RyaXAgdGhlIHRyYWlsaW5nIGNvbW1hLgotICAgIHJldHVybiByZWFzb25zLnRvU3Ry
aW5nKCkubGVmdChyZWFzb25zLmxlbmd0aCgpIC0gMSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
cmVhc29ucy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gc3RyaW5nLT5sZWZ0KHJlYXNvbnMu
bGVuZ3RoKCkgLSAxKTsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luRGF0YS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luRGF0YS5jcHAKaW5kZXggMmFhYzhl
ZS4uZTNhYzhkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdp
bkRhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmNw
cApAQCAtODQsNyArODQsOSBAQCBTdHJpbmcgU2VjdXJpdHlPcmlnaW5EYXRhOjpkYXRhYmFzZUlk
ZW50aWZpZXIoKSBjb25zdAogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHNlcGFyYXRvckNoYXJh
Y3Rlcik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIocG9ydC52YWx1ZV9vcigwKSk7
CiAgICAgCi0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0ZDo6b3B0aW9uYWw8U2VjdXJpdHlPcmlnaW5EYXRh
PiBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21EYXRhYmFzZUlkZW50aWZpZXIoY29uc3QgU3RyaW5n
JiBkYXRhYmFzZUlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1do
ZWVsRXZlbnRUZXN0VHJpZ2dlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRU
ZXN0VHJpZ2dlci5jcHAKaW5kZXggZWQ1NDljZi4uZmM1MDI1MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdFRyaWdnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmNwcApAQCAtMTAwLDcgKzEwMCwxMCBAQCBz
dGF0aWMgdm9pZCBkdW1wU3RhdGUoV1RGOjpIYXNoTWFwPFdoZWVsRXZlbnRUZXN0VHJpZ2dlcjo6
U2Nyb2xsYWJsZUFyZWFJZGVudGlmaQogICAgICAgICAgICAgICAgIHJlYXNvbnMuYXBwZW5kKCIs
ICIpOwogICAgICAgICAgICAgcmVhc29ucy5hcHBlbmQoU3RyaW5nOjpudW1iZXIocmVhc29uKSk7
CiAgICAgICAgIH0KLSAgICAgICAgTE9HKFdoZWVsRXZlbnRUZXN0VHJpZ2dlcnMsICIgICAgIFJl
YXNvbnM6ICVzIiwgcmVhc29ucy50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSByZWFzb25zLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBMT0coV2hl
ZWxFdmVudFRlc3RUcmlnZ2VycywgIiAgICAgUmVhc29uczogJXMiLCBzdHJpbmctPnV0ZjgoKS5k
YXRhKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIH0KICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5
UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGlj
eS5jcHAKaW5kZXggZmMyZmQxMi4uM2M5MTg3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCkBAIC04NSw3ICs4NSw5IEBAIHN0YXRp
YyBTdHJpbmcgY29uc29sZU1lc3NhZ2VGb3JWaW9sYXRpb24oY29uc3QgY2hhciogZWZmZWN0aXZl
VmlvbGF0ZWREaXJlY3RpdmUsCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoZWZmZWN0aXZlVmlvbGF0
ZWREaXJlY3RpdmUpOwogICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiIGRpcmVjdGl2ZSBv
ZiB0aGUgQ29udGVudCBTZWN1cml0eSBQb2xpY3kuIik7CiAgICAgfQotICAgIHJldHVybiByZXN1
bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogQ29udGVudFNlY3Vy
aXR5UG9saWN5OjpDb250ZW50U2VjdXJpdHlQb2xpY3koU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKQEAgLTEzNyw3ICsxMzksMTAgQEAgYm9vbCBDb250ZW50
U2VjdXJpdHlQb2xpY3k6OmFsbG93UnVubmluZ09yRGlzcGxheWluZ0luc2VjdXJlQ29udGVudChj
b25zdCBVUkwmIHUKICAgICAgICAgY29uc29sZU1lc3NhZ2UuYXBwZW5kKHVybC5zdHJpbmdDZW50
ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSk7CiAgICAgICAgIGNvbnNvbGVNZXNzYWdlLmFwcGVuZExp
dGVyYWwoIiBiZWNhdXNlICIpOwogICAgICAgICBjb25zb2xlTWVzc2FnZS5hcHBlbmQoIidibG9j
ay1hbGwtbWl4ZWQtY29udGVudCcgYXBwZWFycyBpbiB0aGUgQ29udGVudCBTZWN1cml0eSBQb2xp
Y3kuIik7Ci0gICAgICAgIHJlcG9ydFZpb2xhdGlvbihDb250ZW50U2VjdXJpdHlQb2xpY3lEaXJl
Y3RpdmVOYW1lczo6YmxvY2tBbGxNaXhlZENvbnRlbnQsIENvbnRlbnRTZWN1cml0eVBvbGljeURp
cmVjdGl2ZU5hbWVzOjpibG9ja0FsbE1peGVkQ29udGVudCwgKnBvbGljeSwgdXJsLCBjb25zb2xl
TWVzc2FnZS50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gY29uc29sZU1l
c3NhZ2UudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJlcG9ydFZpb2xhdGlvbihDb250ZW50U2Vj
dXJpdHlQb2xpY3lEaXJlY3RpdmVOYW1lczo6YmxvY2tBbGxNaXhlZENvbnRlbnQsIENvbnRlbnRT
ZWN1cml0eVBvbGljeURpcmVjdGl2ZU5hbWVzOjpibG9ja0FsbE1peGVkQ29udGVudCwgKnBvbGlj
eSwgdXJsLCAqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKIAog
ICAgICAgICBpZiAoIWlzUmVwb3J0T25seSkKICAgICAgICAgICAgIGFsbG93ID0gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9BeGlzU2Nyb2xsU25hcE9m
ZnNldHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXhpc1Njcm9sbFNuYXBP
ZmZzZXRzLmNwcAppbmRleCAwMjA3NTM4Li5kOGQzZjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9BeGlzU2Nyb2xsU25hcE9mZnNldHMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0F4aXNTY3JvbGxTbmFwT2Zmc2V0cy5jcHAKQEAgLTgx
LDcgKzgxLDkgQEAgc3RhdGljIFN0cmluZyBzbmFwT2Zmc2V0c1RvU3RyaW5nKGNvbnN0IFZlY3Rv
cjxMYXlvdXRVbml0PiYgc25hcE9mZnNldHMpCiAgICAgICAgIHMuYXBwZW5kKFN0cmluZzo6Zm9y
bWF0KCIlLjFmICIsIG9mZnNldC50b0Zsb2F0KCkpKTsKIAogICAgIHMuYXBwZW5kKCJdIik7Ci0g
ICAgcmV0dXJuIHMudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBT
dHJpbmcgc25hcE9mZnNldFJhbmdlc1RvU3RyaW5nKGNvbnN0IFZlY3RvcjxTY3JvbGxPZmZzZXRS
YW5nZTxMYXlvdXRVbml0Pj4mIHJhbmdlcykKQEAgLTkxLDcgKzkzLDkgQEAgc3RhdGljIFN0cmlu
ZyBzbmFwT2Zmc2V0UmFuZ2VzVG9TdHJpbmcoY29uc3QgVmVjdG9yPFNjcm9sbE9mZnNldFJhbmdl
PExheW91dFVuaXQKICAgICBmb3IgKGF1dG8gcmFuZ2UgOiByYW5nZXMpCiAgICAgICAgIHMuYXBw
ZW5kKFN0cmluZzo6Zm9ybWF0KCIoJS4xZiwgJS4xZikgIiwgcmFuZ2Uuc3RhcnQudG9GbG9hdCgp
LCByYW5nZS5lbmQudG9GbG9hdCgpKSk7CiAgICAgcy5hcHBlbmQoIl0iKTsKLSAgICByZXR1cm4g
cy50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHMudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBzbmFw
UG9ydE9yQXJlYVRvU3RyaW5nKGNvbnN0IExheW91dFJlY3QmIHJlY3QpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKaW5k
ZXggZjUwMjIxYS4uM2MxYzZlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMzg5LDcgKzM4OSw5IEBAIFN0
cmluZyBTY3JvbGxpbmdDb29yZGluYXRvcjo6c3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zQXNU
ZXh0KFN5bmNocm9ub3VzU2Nyb2xsCiAKICAgICBpZiAoc3RyaW5nQnVpbGRlci5sZW5ndGgoKSkK
ICAgICAgICAgc3RyaW5nQnVpbGRlci5yZXNpemUoc3RyaW5nQnVpbGRlci5sZW5ndGgoKSAtIDIp
OwotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnN5bmNocm9u
b3VzU2Nyb2xsaW5nUmVhc29uc0FzVGV4dCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9EZWNpbWFsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RlY2lt
YWwuY3BwCmluZGV4IDNkNTI1Y2YuLjFhMTkyYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0RlY2ltYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RlY2lt
YWwuY3BwCkBAIC05OTQsNyArOTk0LDkgQEAgU3RyaW5nIERlY2ltYWw6OnRvU3RyaW5nKCkgY29u
c3QKICAgICBpZiAob3JpZ2luYWxFeHBvbmVudCA8PSAwICYmIGFkanVzdGVkRXhwb25lbnQgPj0g
LTYpIHsKICAgICAgICAgaWYgKCFvcmlnaW5hbEV4cG9uZW50KSB7CiAgICAgICAgICAgICBidWls
ZGVyLmFwcGVuZChkaWdpdHMpOwotICAgICAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAg
ICAgIH0KIAogICAgICAgICBpZiAoYWRqdXN0ZWRFeHBvbmVudCA+PSAwKSB7CkBAIC0xMDAzLDcg
KzEwMDUsOSBAQCBTdHJpbmcgRGVjaW1hbDo6dG9TdHJpbmcoKSBjb25zdAogICAgICAgICAgICAg
ICAgIGlmIChpID09IGFkanVzdGVkRXhwb25lbnQpCiAgICAgICAgICAgICAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCcuJyk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICAgICAgQ1JB
U0goKTsKICAgICAgICAgfQogCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiMC4iKTsK
QEAgLTEwMjcsNyArMTAzMSw5IEBAIFN0cmluZyBEZWNpbWFsOjp0b1N0cmluZygpIGNvbnN0CiAg
ICAgICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihhZGp1c3RlZEV4cG9uZW50KTsKICAgICAg
ICAgfQogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KIAogRGVjaW1hbCBEZWNpbWFsOjp6ZXJvKFNpZ24gc2lnbikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAKaW5kZXggMmZkYjI2MC4uZTY3ZDY3OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAKQEAgLTEzMCw3ICsxMzAsOSBAQCBT
dHJpbmcgZW5jb2RlRm9yRmlsZU5hbWUoY29uc3QgU3RyaW5nJiBpbnB1dFN0cmluZykKICAgICAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoY2hhcmFjdGVyKTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVz
dWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBkZWNv
ZGVGcm9tRmlsZW5hbWUoY29uc3QgU3RyaW5nJiBpbnB1dFN0cmluZykKQEAgLTE4MSw3ICsxODMs
OSBAQCBTdHJpbmcgZGVjb2RlRnJvbUZpbGVuYW1lKGNvbnN0IFN0cmluZyYgaW5wdXRTdHJpbmcp
CiAgICAgICAgIGkgKz0gNTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBsYXN0Q29tcG9uZW50T2ZQYXRo
SWdub3JpbmdUcmFpbGluZ1NsYXNoKGNvbnN0IFN0cmluZyYgcGF0aCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPREludGVydmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QT0RJbnRlcnZhbC5oCmluZGV4IDA0OGRhOTguLjY0NjM2MmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPREludGVydmFsLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUE9ESW50ZXJ2YWwuaApAQCAtMTQ1LDcgKzE0NSw5IEBAIHB1YmxpYzoKICAgICAg
ICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsIG1heEhpZ2g9Iik7CiAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKFZhbHVlVG9TdHJpbmc8VD46OnN0cmluZyhtYXhIaWdoKCkpKTsKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoJ10nKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAg
ICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPRFJlZEJsYWNrVHJlZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmgKaW5kZXggMTMxZjMxYS4uNDk2MGVm
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmgKQEAgLTc0NCw3
ICs3NDQsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFZhbHVlVG9T
dHJpbmc8VD46OnN0cmluZyhub2RlLT5kYXRhKCkpKTsKICAgICAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKChub2RlLT5jb2xvcigpID09IEJsYWNrKSA/ICIgKGJsYWNrKSIgOiAiIChyZWQpIik7CiAg
ICAgICAgIH0KLSAgICAgICAgTE9HX0VSUk9SKCIlcyIsIGJ1aWxkZXIudG9TdHJpbmcoKS5hc2Np
aSgpLmRhdGEoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgICAgIExPR19FUlJPUigiJXMiLCBzdHJpbmctPmFzY2lpKCkuZGF0YSgpKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgaWYgKG5vZGUpIHsK
ICAgICAgICAgICAgIGR1bXBGcm9tTm9kZShub2RlLT5sZWZ0KCksIGluZGVudGF0aW9uICsgMik7
CiAgICAgICAgICAgICBkdW1wRnJvbU5vZGUobm9kZS0+cmlnaHQoKSwgaW5kZW50YXRpb24gKyAy
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwCmluZGV4IDE1OWU3ZmEuLjNkYjgyZDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vVVJMLmNwcApAQCAtNDU1LDggKzQ1NSwxMSBAQCB2b2lkIFVSTDo6c2V0SG9zdChj
b25zdCBTdHJpbmcmIHMpCiAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nVmlldyhlbmNvZGVkSG9z
dE5hbWUuZGF0YSgpLCBlbmNvZGVkSG9zdE5hbWUuc2l6ZSgpKSk7CiAgICAgYnVpbGRlci5hcHBl
bmQobV9zdHJpbmcuc3Vic3RyaW5nKG1faG9zdEVuZCkpOwogCi0gICAgVVJMUGFyc2VyIHBhcnNl
cihidWlsZGVyLnRvU3RyaW5nKCkpOwotICAgICp0aGlzID0gcGFyc2VyLnJlc3VsdCgpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICBVUkxQYXJz
ZXIgcGFyc2VyKCpzdHJpbmcpOworICAgICAgICAqdGhpcyA9IHBhcnNlci5yZXN1bHQoKTsKKyAg
ICB9IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBVUkw6OnJlbW92ZVBvcnQoKQpA
QCAtNTE3LDggKzUyMCwxMSBAQCB2b2lkIFVSTDo6c2V0SG9zdEFuZFBvcnQoY29uc3QgU3RyaW5n
JiBob3N0QW5kUG9ydCkKICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmQobV9zdHJpbmcuc3Vic3Ry
aW5nKG1fcG9ydEVuZCkpOwogCi0gICAgVVJMUGFyc2VyIHBhcnNlcihidWlsZGVyLnRvU3RyaW5n
KCkpOwotICAgICp0aGlzID0gcGFyc2VyLnJlc3VsdCgpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICBVUkxQYXJzZXIgcGFyc2VyKCpzdHJpbmcp
OworICAgICAgICAqdGhpcyA9IHBhcnNlci5yZXN1bHQoKTsKKyAgICB9IGVsc2UKKyAgICAgICAg
Q1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBwZXJjZW50RW5jb2RlQ2hhcmFjdGVycyhjb25z
dCBTdHJpbmcmIGlucHV0LCBib29sKCpzaG91bGRFbmNvZGUpKFVDaGFyKSkKQEAgLTUzNyw3ICs1
NDMsOSBAQCBzdGF0aWMgU3RyaW5nIHBlcmNlbnRFbmNvZGVDaGFyYWN0ZXJzKGNvbnN0IFN0cmlu
ZyYgaW5wdXQsIGJvb2woKnNob3VsZEVuY29kZSkoVQogICAgICAgICAgICAgfSBlbHNlCiAgICAg
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoYyk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJu
IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7
CiAgICAgfTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaW5wdXQubGVuZ3RoKCk7ICsr
aSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWlu
Z0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdG
dW5jdGlvbi5jcHAKaW5kZXggOGM5NzJkNi4uZWRiZmVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uY3BwCkBAIC0xMjksNyAr
MTI5LDEwIEBAIEV4Y2VwdGlvbk9yPFJlZlB0cjxUaW1pbmdGdW5jdGlvbj4+IFRpbWluZ0Z1bmN0
aW9uOjpjcmVhdGVGcm9tQ1NTVGV4dChjb25zdCBTdHJpCiAgICAgY3NzU3RyaW5nLmFwcGVuZExp
dGVyYWwoIjogIik7CiAgICAgY3NzU3RyaW5nLmFwcGVuZChjc3NUZXh0KTsKICAgICBhdXRvIHN0
eWxlUHJvcGVydGllcyA9IE11dGFibGVTdHlsZVByb3BlcnRpZXM6OmNyZWF0ZSgpOwotICAgIHN0
eWxlUHJvcGVydGllcy0+cGFyc2VEZWNsYXJhdGlvbihjc3NTdHJpbmcudG9TdHJpbmcoKSwgQ1NT
UGFyc2VyQ29udGV4dChIVE1MU3RhbmRhcmRNb2RlKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
Y3NzU3RyaW5nLnRvU3RyaW5nKCkpCisgICAgICAgIHN0eWxlUHJvcGVydGllcy0+cGFyc2VEZWNs
YXJhdGlvbigqc3RyaW5nLCBDU1NQYXJzZXJDb250ZXh0KEhUTUxTdGFuZGFyZE1vZGUpKTsKKyAg
ICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAgICBpZiAoYXV0byBjc3NWYWx1ZSA9IHN0eWxl
UHJvcGVydGllcy0+Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eUFuaW1hdGlvblRpbWlu
Z0Z1bmN0aW9uKSkgewogICAgICAgICBpZiAoYXV0byB0aW1pbmdGdW5jdGlvbiA9IGNyZWF0ZUZy
b21DU1NWYWx1ZSgqY3NzVmFsdWUuZ2V0KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcAppbmRleCBmOTQwODE1Li4yYjMwYjJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcApAQCAtMjE4
LDcgKzIxOCw5IEBAIFN0cmluZyBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnRzKFN0cmluZ1ZpZXcg
cGF0aCwgY29uc3QgVmVjdG9yPFN0cmluZ1ZpZXc+JiBjb21wCiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKEdfRElSX1NFUEFSQVRPUl9TKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoY29tcG9uZW50
KTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIGJvb2wgbWFrZUFsbERpcmVjdG9yaWVzKGNvbnN0IFN0cmluZyYgcGF0
aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvVXNlckFnZW50R0xp
Yi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL1VzZXJBZ2VudEdMaWIuY3BwCmlu
ZGV4IDE2MjFhODguLjM4MDc3ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dsaWIvVXNlckFnZW50R0xpYi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xp
Yi9Vc2VyQWdlbnRHTGliLmNwcApAQCAtMTA2LDcgKzEwNiw5IEBAIHN0YXRpYyBTdHJpbmcgYnVp
bGRVc2VyQWdlbnRTdHJpbmcoY29uc3QgVXNlckFnZW50UXVpcmtzJiBxdWlya3MpCiAgICAgdWFT
dHJpbmcuYXBwZW5kTGl0ZXJhbCgiVmVyc2lvbi8xMS4wIFNhZmFyaS8iKTsKICAgICB1YVN0cmlu
Zy5hcHBlbmQodmVyc2lvbkZvclVBU3RyaW5nKCkpOwogCi0gICAgcmV0dXJuIHVhU3RyaW5nLnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdWFTdHJpbmcudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIGNvbnN0IFN0
cmluZyBzdGFuZGFyZFVzZXJBZ2VudFN0YXRpYygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db2xvci5jcHAKaW5kZXggNWRkMTUwZi4uZWUxYmU3NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcApAQCAtMzQ4LDcgKzM0OCw5IEBAIFN0cmlu
ZyBDb2xvcjo6c2VyaWFsaXplZCgpIGNvbnN0CiAgICAgICAgIGFwcGVuZEJ5dGVBc0hleChyZWQo
KSwgYnVpbGRlciwgTG93ZXJjYXNlKTsKICAgICAgICAgYXBwZW5kQnl0ZUFzSGV4KGdyZWVuKCks
IGJ1aWxkZXIsIExvd2VyY2FzZSk7CiAgICAgICAgIGFwcGVuZEJ5dGVBc0hleChibHVlKCksIGJ1
aWxkZXIsIExvd2VyY2FzZSk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIHJldHVybiBj
c3NUZXh0KCk7CkBAIC0zODQsNyArMzg2LDkgQEAgU3RyaW5nIENvbG9yOjpjc3NUZXh0KCkgY29u
c3QKICAgICB9CiAgICAgICAgIAogICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJu
IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmlu
ZyBDb2xvcjo6bmFtZUZvclJlbmRlclRyZWVBc1RleHQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmNwcAppbmRleCA1MGUzYzVj
Li40NDhkZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9F
eHRlbmRlZENvbG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9F
eHRlbmRlZENvbG9yLmNwcApAQCAtNzIsNyArNzIsOSBAQCBTdHJpbmcgRXh0ZW5kZWRDb2xvcjo6
Y3NzVGV4dCgpIGNvbnN0CiAgICAgfQogICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7CiAKLSAgICBy
ZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2Nh
ZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3Bw
CmluZGV4IDg0Nzg2MWYuLjU1NDgyOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAKQEAgLTU0OSw3ICs1NDksOSBAQCBzdGF0aWMgaW5s
aW5lIFN0cmluZyBub3JtYWxpemVTcGFjZXNJbnRlcm5hbChjb25zdCBDaGFyYWN0ZXJUeXBlKiBj
aGFyYWN0ZXJzLCB1bgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkK
ICAgICAgICAgbm9ybWFsaXplZC5hcHBlbmQoRm9udENhc2NhZGU6Om5vcm1hbGl6ZVNwYWNlcyhj
aGFyYWN0ZXJzW2ldKSk7CiAKLSAgICByZXR1cm4gbm9ybWFsaXplZC50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IG5vcm1hbGl6ZWQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIEZvbnRDYXNjYWRlOjpub3JtYWxp
emVTcGFjZXMoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRUYWdnZWRTZXR0aW5n
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250VGFnZ2VkU2V0dGlu
Z3MuY3BwCmluZGV4IDYxYjJlYmUuLjVjNDY3MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRUYWdnZWRTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNldHRpbmdzLmNwcApAQCAtNzIsNyAr
NzIsMTAgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgRm9u
dFZhcmlhdGlvblNldHRpbmdzJiBpdGVtKQogICAgICAgICBzLmFwcGVuZCh2YXJpYXRpb24udGFn
KClbMV0pOwogICAgICAgICBzLmFwcGVuZCh2YXJpYXRpb24udGFnKClbMl0pOwogICAgICAgICBz
LmFwcGVuZCh2YXJpYXRpb24udGFnKClbM10pOwotICAgICAgICB0cy5kdW1wUHJvcGVydHkocy50
b1N0cmluZygpLCBpdGVtLmF0KGkpLnZhbHVlKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSBzLnRvU3RyaW5nKCkpCisgICAgICAgICAgICB0cy5kdW1wUHJvcGVydHkoKnN0cmluZywgaXRl
bS5hdChpKS52YWx1ZSgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAg
ICB9CiAgICAgcmV0dXJuIHRzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAppbmRleCA2OTgxODBlLi4xNWNlODkyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcApA
QCAtNDQxLDcgKzQ0MSw5IEBAIFN0cmluZyBHcmFwaGljc0xheWVyOjphbmltYXRpb25OYW1lRm9y
VHJhbnNpdGlvbihBbmltYXRlZFByb3BlcnR5SUQgcHJvcGVydHkpCiAgICAgaWQuYXBwZW5kTGl0
ZXJhbCgiLXx0cmFuc2l0aW9uIik7CiAgICAgaWQuYXBwZW5kTnVtYmVyKHN0YXRpY19jYXN0PGlu
dD4ocHJvcGVydHkpKTsKICAgICBpZC5hcHBlbmQoJy0nKTsKLSAgICByZXR1cm4gaWQudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBpZC50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIEdyYXBoaWNzTGF5ZXI6OnN1c3Bl
bmRBbmltYXRpb25zKE1vbm90b25pY1RpbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKaW5kZXggNmYyYjM4Ny4uOTUzYzQ5OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRl
eHRUcmFja1ByaXZhdGVBVkYuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmNwcApAQCAtMzAwLDgg
KzMwMCwxMiBAQCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NDdWVBdHRy
aWJ1dGVzKENGQXR0cmlidXRlZFN0cmluZ1JlZiBhdHRyaQogICAgICAgICBjb250ZW50LmFwcGVu
ZCh0YWdFbmQpOwogICAgIH0KIAotICAgIGlmIChjb250ZW50Lmxlbmd0aCgpKQotICAgICAgICBj
dWVEYXRhLnNldENvbnRlbnQoY29udGVudC50b1N0cmluZygpKTsKKyAgICBpZiAoY29udGVudC5s
ZW5ndGgoKSkgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBjb250ZW50LnRvU3RyaW5nKCkp
CisgICAgICAgICAgICBjdWVEYXRhLnNldENvbnRlbnQoKnN0cmluZyk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIENSQVNIKCk7CisgICAgfQogfQogCiB2b2lkIEluYmFuZFRleHRUcmFja1By
aXZhdGVBVkY6OnByb2Nlc3NDdWUoQ0ZBcnJheVJlZiBhdHRyaWJ1dGVkU3RyaW5ncywgQ0ZBcnJh
eVJlZiBuYXRpdmVTYW1wbGVzLCBjb25zdCBNZWRpYVRpbWUmIHRpbWUpCkBAIC01MzAsNyArNTM0
LDEwIEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc05hdGl2ZVNhbXBs
ZXMoQ0ZBcnJheVJlZiBuYXRpdmVTYW1wbGVzLCBjCiAgICAgICAgICAgICBoZWFkZXIuYXBwZW5k
KCJcblxuIik7CiAKICAgICAgICAgICAgIERFQlVHX0xPRyhMT0dJREVOVElGSUVSLCAiVlRUIGhl
YWRlciAiLCAmaGVhZGVyKTsKLSAgICAgICAgICAgIGNsaWVudCgpLT5wYXJzZVdlYlZUVEZpbGVI
ZWFkZXIoaGVhZGVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
aGVhZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgY2xpZW50KCktPnBhcnNlV2ViVlRU
RmlsZUhlYWRlcihXVEZNb3ZlKCpzdHJpbmcpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgbV9oYXZlUmVwb3J0ZWRWVFRIZWFkZXIgPSB0
cnVlOwogICAgICAgICB9IHdoaWxlICgwKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwCmluZGV4IGVjM2FlNGYuLmEz
N2Q4NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1Rp
bGVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9UaWxlQ29udHJvbGxlci5jcHAKQEAgLTczNSw3ICs3MzUsMTAgQEAgUmVmUHRyPFBsYXRmb3Jt
Q0FMYXllcj4gVGlsZUNvbnRyb2xsZXI6OmNyZWF0ZVRpbGVMYXllcihjb25zdCBJbnRSZWN0JiB0
aWxlUmVjdCwKICAgICBuYW1lQnVpbGRlci5hcHBlbmROdW1iZXIodGlsZVJlY3QubG9jYXRpb24o
KS54KCkpOwogICAgIG5hbWVCdWlsZGVyLmFwcGVuZCgnLCcpOwogICAgIG5hbWVCdWlsZGVyLmFw
cGVuZE51bWJlcih0aWxlUmVjdC5sb2NhdGlvbigpLnkoKSk7Ci0gICAgbGF5ZXItPnNldE5hbWUo
bmFtZUJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbmFtZUJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgbGF5ZXItPnNldE5hbWUoKnN0cmluZyk7CisgICAgZWxz
ZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgZmxvYXQgdGVtcG9yYXJ5U2NhbGVGYWN0b3IgPSBv
d25pbmdHcmFwaGljc0xheWVyKCktPnBsYXRmb3JtQ0FMYXllckNvbnRlbnRzU2NhbGVNdWx0aXBs
aWVyRm9yTmV3VGlsZXMobV90aWxlQ2FjaGVMYXllcik7CiAgICAgbV9oYXNUaWxlc1dpdGhUZW1w
b3JhcnlTY2FsZUZhY3RvciB8PSB0ZW1wb3JhcnlTY2FsZUZhY3RvciAhPSAxOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUdyaWQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUdyaWQuY3BwCmluZGV4IDU5MTlm
OTcuLmU4NjY1OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL1RpbGVHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9UaWxlR3JpZC5jcHAKQEAgLTU5LDcgKzU5LDkgQEAgc3RhdGljIFN0cmluZyB2YWxpZGF0aW9u
UG9saWN5QXNTdHJpbmcoVGlsZUdyaWQ6OlRpbGVWYWxpZGF0aW9uUG9saWN5IHZhbGlkYXRpb24K
ICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJdIik7CiAKLSAgICByZXR1cm4gYnVp
bGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZv
cm1DQUxheWVyV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dp
bi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwCmluZGV4IGMwMDBiNDMuLmZhNjQwZmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5
ZXJXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9Q
bGF0Zm9ybUNBTGF5ZXJXaW4uY3BwCkBAIC05MzQsNyArOTM0LDkgQEAgU3RyaW5nIFBsYXRmb3Jt
Q0FMYXllcldpbjo6bGF5ZXJUcmVlQXNTdHJpbmcoKSBjb25zdAogICAgIC8vIFByaW50IGxheWVy
IHRyZWUgZnJvbSB0aGUgcm9vdAogICAgIHByaW50TGF5ZXIoYnVpbGRlciwgdGhpcywgMCk7CiAK
LSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogUmVmPFBsYXRmb3JtQ0FMYXllcj4gUGxhdGZvcm1DQUxheWVyV2luOjpjcmVhdGVDb21w
YXRpYmxlTGF5ZXIoUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGUgbGF5ZXJUeXBlLCBQbGF0Zm9y
bUNBTGF5ZXJDbGllbnQqIGNsaWVudCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcAppbmRl
eCBkZmZjZGNiLi40N2YzMjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwCkBAIC01MTIsNyAr
NTEyLDEwIEBAIGJvb2wgVmlkZW9UZXh0dXJlQ29waWVyQ1Y6OmluaXRpYWxpemVDb250ZXh0T2Jq
ZWN0cygpCiAgICAgdmVydGV4U2hhZGVyU291cmNlLmFwcGVuZExpdGVyYWwoIn1cbiIpOwogCiAg
ICAgUGxhdGZvcm0zRE9iamVjdCB2ZXJ0ZXhTaGFkZXIgPSBtX2NvbnRleHQtPmNyZWF0ZVNoYWRl
cihHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVYX1NIQURFUik7Ci0gICAgbV9jb250ZXh0LT5zaGFk
ZXJTb3VyY2UodmVydGV4U2hhZGVyLCB2ZXJ0ZXhTaGFkZXJTb3VyY2UudG9TdHJpbmcoKSk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gdmVydGV4U2hhZGVyU291cmNlLnRvU3RyaW5nKCkpCisgICAg
ICAgIG1fY29udGV4dC0+c2hhZGVyU291cmNlKHZlcnRleFNoYWRlciwgKnN0cmluZyk7CisgICAg
ZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIG1fY29udGV4dC0+Y29tcGlsZVNoYWRlckRpcmVj
dCh2ZXJ0ZXhTaGFkZXIpOwogCiAgICAgR0MzRGludCB2YWx1ZSA9IDA7CkBAIC01NTMsNyArNTU2
LDEwIEBAIGJvb2wgVmlkZW9UZXh0dXJlQ29waWVyQ1Y6OmluaXRpYWxpemVDb250ZXh0T2JqZWN0
cygpCiAgICAgZnJhZ21lbnRTaGFkZXJTb3VyY2UuYXBwZW5kTGl0ZXJhbCgifVxuIik7CiAKICAg
ICBQbGF0Zm9ybTNET2JqZWN0IGZyYWdtZW50U2hhZGVyID0gbV9jb250ZXh0LT5jcmVhdGVTaGFk
ZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQUdNRU5UX1NIQURFUik7Ci0gICAgbV9jb250ZXh0LT5z
aGFkZXJTb3VyY2UoZnJhZ21lbnRTaGFkZXIsIGZyYWdtZW50U2hhZGVyU291cmNlLnRvU3RyaW5n
KCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGZyYWdtZW50U2hhZGVyU291cmNlLnRvU3RyaW5n
KCkpCisgICAgICAgIG1fY29udGV4dC0+c2hhZGVyU291cmNlKGZyYWdtZW50U2hhZGVyLCAqc3Ry
aW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgbV9jb250ZXh0LT5jb21waWxl
U2hhZGVyRGlyZWN0KGZyYWdtZW50U2hhZGVyKTsKIAogICAgIG1fY29udGV4dC0+Z2V0U2hhZGVy
aXYoZnJhZ21lbnRTaGFkZXIsIEdyYXBoaWNzQ29udGV4dDNEOjpDT01QSUxFX1NUQVRVUywgJnZh
bHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCmlu
ZGV4IDViZGQ2NjMuLjAyNWVjY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNE
T3BlbkdMQ29tbW9uLmNwcApAQCAtOTUzLDcgKzk1Myw5IEBAIHN0YXRpYyBTdHJpbmcgZ2VuZXJh
dGVIYXNoZWROYW1lKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJ3ZWJnbF8iKTsKICAgICBhcHBlbmRVbnNp
Z25lZDY0QXNIZXgobnVtYmVyLCBidWlsZGVyLCBMb3dlcmNhc2UpOwotICAgIHJldHVybiBidWls
ZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGQ6Om9wdGlv
bmFsPFN0cmluZz4gR3JhcGhpY3NDb250ZXh0M0Q6Om1hcHBlZFN5bWJvbEluU2hhZGVyU291cmNl
TWFwKFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyLCBBTkdMRVNoYWRlclN5bWJvbFR5cGUgc3ltYm9s
VHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lKQpAQCAtMTY4NSw4ICsxNjg3LDExIEBAIFN0cmluZyBH
cmFwaGljc0NvbnRleHQzRDo6Z2V0VW5tYW5nbGVkSW5mb0xvZyhQbGF0Zm9ybTNET2JqZWN0IHNo
YWRlcnNbMl0sIEdDM0RzCiAKICAgICBwcm9jZXNzZWRMb2cuYXBwZW5kKGxvZy5zdWJzdHJpbmco
c3RhcnRGcm9tLCBsb2cubGVuZ3RoKCkgLSBzdGFydEZyb20pKTsKIAotICAgIExPRyhXZWJHTCwg
IlVubWFuZ2xlZCBTaGFkZXJJbmZvTG9nOlxuJXMiLCBwcm9jZXNzZWRMb2cudG9TdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKLSAgICByZXR1cm4gcHJvY2Vzc2VkTG9nLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gcHJvY2Vzc2VkTG9nLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgTE9H
KFdlYkdMLCAiVW5tYW5nbGVkIFNoYWRlckluZm9Mb2c6XG4lcyIsIHN0cmluZy0+dXRmOCgpLmRh
dGEoKSk7CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIH0KKyAgICBDUkFTSCgpOwogfQog
CiBTdHJpbmcgR3JhcGhpY3NDb250ZXh0M0Q6OmdldFByb2dyYW1JbmZvTG9nKFBsYXRmb3JtM0RP
YmplY3QgcHJvZ3JhbSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3Bw
CmluZGV4IDJlNmM1MmMuLjI0YTg4ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFk
ZXJQcm9ncmFtLmNwcApAQCAtMzk3LDcgKzM5NywxMCBAQCBSZWY8VGV4dHVyZU1hcHBlclNoYWRl
clByb2dyYW0+IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpjcmVhdGUoVGV4dHVyZU1hcHBl
cgogI2VuZGlmCiAKICAgICAvLyBBcHBlbmQgdGhlIG9wdGlvbnMuCi0gICAgdmVydGV4U2hhZGVy
QnVpbGRlci5hcHBlbmQob3B0aW9uc0FwcGxpZXJCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IG9wdGlvbnNBcHBsaWVyQnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICB2ZXJ0ZXhTaGFkZXJCdWlsZGVyLmFwcGVuZCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAg
IENSQVNIKCk7CiAKICAgICAvLyBBcHBlbmQgdGhlIGFwcHJvcHJpYXRlIGlucHV0L291dHB1dCB2
YXJpYWJsZSBkZWZpbml0aW9ucy4KICNpZiBVU0UoT1BFTkdMX0VTKQpAQCAtNDIxLDcgKzQyNCwx
MCBAQCBSZWY8VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0+IFRleHR1cmVNYXBwZXJTaGFkZXJQ
cm9ncmFtOjpjcmVhdGUoVGV4dHVyZU1hcHBlcgogI2VuZGlmCiAKICAgICAvLyBBcHBlbmQgdGhl
IG9wdGlvbnMuCi0gICAgZnJhZ21lbnRTaGFkZXJCdWlsZGVyLmFwcGVuZChvcHRpb25zQXBwbGll
ckJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gb3B0aW9uc0FwcGxp
ZXJCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGZyYWdtZW50U2hhZGVyQnVpbGRlci5hcHBl
bmQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgLy8gQXBwZW5k
IHRoZSBjb21tb24gaGVhZGVyLgogICAgIGZyYWdtZW50U2hhZGVyQnVpbGRlci5hcHBlbmQoZnJh
Z21lbnRUZW1wbGF0ZUhlYWRlckNvbW1vbik7CkBAIC00MzksNyArNDQ1LDEwIEBAIFJlZjxUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OmNyZWF0
ZShUZXh0dXJlTWFwcGVyCiAgICAgLy8gQXBwZW5kIHRoZSBjb21tb24gY29kZS4KICAgICBmcmFn
bWVudFNoYWRlckJ1aWxkZXIuYXBwZW5kKGZyYWdtZW50VGVtcGxhdGVDb21tb24pOwogCi0gICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0odmVydGV4U2hh
ZGVyQnVpbGRlci50b1N0cmluZygpLCBmcmFnbWVudFNoYWRlckJ1aWxkZXIudG9TdHJpbmcoKSkp
OworICAgIGlmIChhdXRvIHZlcnRleFN0cmluZyA9IHZlcnRleFNoYWRlckJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgaWYgKGF1dG8gZnJhZ21lbnRTdHJpbmcgPSBmcmFnbWVudFNoYWRlckJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHR1
cmVNYXBwZXJTaGFkZXJQcm9ncmFtKCp2ZXJ0ZXhTdHJpbmcsICpmcmFnbWVudFN0cmluZykpOwor
ICAgIENSQVNIKCk7CiB9CiAKICNpZiAhTE9HX0RJU0FCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCmluZGV4IDM2NThkZDEuLmExMmNiMzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCkBAIC0yODgsNyAr
Mjg4LDkgQEAgc3RhdGljIFN0cmluZyBqb2luUGF0aG5hbWVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBwYXRobmFtZXMpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQocGF0aCk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIFBhc3RlYm9hcmQ6OnJlYWQo
UGFzdGVib2FyZFBsYWluVGV4dCYgdGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU3RyaW5nVXRpbGl0aWVzLm1tCmluZGV4IDdjZDFiZDguLjlmMzhmYjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbQpAQCAtNTAsOCArNTAs
MTAgQEAgc3RhdGljIFN0cmluZyB3aWxkY2FyZFJlZ2V4UGF0dGVyblN0cmluZyhjb25zdCBTdHJp
bmcmIHN0cmluZykKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoY2hhcmFjdGVyKTsKICAg
ICB9CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJyQnKTsKLSAgICAgICAgCi0gICAgcmV0dXJu
IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmlu
Z0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KICAgICAKIGJvb2wgc3RyaW5nTWF0Y2hlc1dpbGRjYXJkU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgc3RyaW5nLCBjb25zdCBTdHJpbmcmIHdpbGRjYXJkU3RyaW5nKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3JvbGxBbmltYXRvck1vY2suY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3JvbGxBbmltYXRvck1vY2suY3BwCmluZGV4IDNjYzBm
ZTkuLjMxYmQzZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Ny
b2xsQW5pbWF0b3JNb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1Nj
cm9sbEFuaW1hdG9yTW9jay5jcHAKQEAgLTEwMSw3ICsxMDEsMTAgQEAgdm9pZCBTY3JvbGxBbmlt
YXRvck1vY2s6Om1vdXNlRW50ZXJlZFNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhcikgY29u
c3QKICAgICBlbHNlCiAgICAgICAgIG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiVW5rbm93biIpOwog
ICAgIG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiU2Nyb2xsYmFyIik7Ci0gICAgbV9sb2dnZXIobWVz
c2FnZS50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtZXNzYWdlLnRvU3RyaW5n
KCkpCisgICAgICAgIG1fbG9nZ2VyKCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0go
KTsKICAgICBTY3JvbGxBbmltYXRvcjo6bW91c2VFbnRlcmVkU2Nyb2xsYmFyKHNjcm9sbGJhcik7
CiB9CiAKQEAgLTExNiw3ICsxMTksMTAgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1vY2s6Om1vdXNl
RXhpdGVkU2Nyb2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyKSBjb25zdAogICAgIGVsc2UKICAg
ICAgICAgbWVzc2FnZS5hcHBlbmRMaXRlcmFsKCJVbmtub3duIik7CiAgICAgbWVzc2FnZS5hcHBl
bmRMaXRlcmFsKCJTY3JvbGxiYXIiKTsKLSAgICBtX2xvZ2dlcihtZXNzYWdlLnRvU3RyaW5nKCkp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IG1lc3NhZ2UudG9TdHJpbmcoKSkKKyAgICAgICAgbV9s
b2dnZXIoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIFNjcm9sbEFu
aW1hdG9yOjptb3VzZUV4aXRlZFNjcm9sbGJhcihzY3JvbGxiYXIpOwogfQogCkBAIC0xMzYsNyAr
MTQyLDEwIEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNb2NrOjptb3VzZUlzRG93bkluU2Nyb2xsYmFy
KFNjcm9sbGJhciogc2Nyb2xsYmFyLCBib29sIGlzUHJlCiAgICAgZWxzZQogICAgICAgICBtZXNz
YWdlLmFwcGVuZExpdGVyYWwoIlVua25vd24iKTsKICAgICBtZXNzYWdlLmFwcGVuZExpdGVyYWwo
IlNjcm9sbGJhciIpOwotICAgIG1fbG9nZ2VyKG1lc3NhZ2UudG9TdHJpbmcoKSk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gbWVzc2FnZS50b1N0cmluZygpKQorICAgICAgICBtX2xvZ2dlcigqc3Ry
aW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgU2Nyb2xsQW5pbWF0b3I6Om1v
dXNlSXNEb3duSW5TY3JvbGxiYXIoc2Nyb2xsYmFyLCBpc1ByZXNzZWQpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tCb3guY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrQm94LmNwcApp
bmRleCBkNGFhMjA1Li5mYjY1YTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL21lZGlhc291cmNlL01vY2tCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja0JveC5jcHAKQEAgLTUyLDcgKzUyLDkgQEAgU3RyaW5n
IE1vY2tCb3g6OnBlZWtUeXBlKEFycmF5QnVmZmVyKiBkYXRhKQogICAgIFJlZlB0cjxJbnQ4QXJy
YXk+IGFycmF5ID0gSlNDOjpJbnQ4QXJyYXk6OmNyZWF0ZShkYXRhLCAwLCA0KTsKICAgICBmb3Ig
KGludCBpID0gMDsgaSA8IDQ7ICsraSkKICAgICAgICAgYnVpbGRlci5hcHBlbmQoYXJyYXktPml0
ZW0oaSkpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBD
UkFTSCgpOwogfQogCiBzaXplX3QgTW9ja0JveDo6cGVla0xlbmd0aChBcnJheUJ1ZmZlciogZGF0
YSkKQEAgLTczLDcgKzc1LDEwIEBAIE1vY2tUcmFja0JveDo6TW9ja1RyYWNrQm94KEFycmF5QnVm
ZmVyKiBkYXRhKQogICAgIFJlZlB0cjxJbnQ4QXJyYXk+IGFycmF5ID0gSlNDOjpJbnQ4QXJyYXk6
OmNyZWF0ZShkYXRhLCAxMiwgNCk7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyArK2kpCiAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKGFycmF5LT5pdGVtKGkpKTsKLSAgICBtX2NvZGVjID0gYnVp
bGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgbV9jb2RlYyA9ICpzdHJpbmc7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgp
OwogCiAgICAgbV9raW5kID0gc3RhdGljX2Nhc3Q8VHJhY2tLaW5kPih2aWV3LT5nZXQ8dWludDhf
dD4oMTYsIHRydWUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvSFRUUFBhcnNlcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9I
VFRQUGFyc2Vycy5jcHAKaW5kZXggYzhmNDVlNS4uOGQzMGQ4NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAKQEAgLTMyOCw3ICszMjgsOSBA
QCBTdHJpbmcgZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb25zdCBTdHJpbmcmIG1lZGlh
VHlwZSkKIAogICAgIGlmIChtaW1lVHlwZS5sZW5ndGgoKSA9PSBsZW5ndGgpCiAgICAgICAgIHJl
dHVybiBtZWRpYVR5cGU7Ci0gICAgcmV0dXJuIG1pbWVUeXBlLnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gbWltZVR5cGUudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIGV4dHJhY3RDaGFyc2V0RnJvbU1lZGlhVHlw
ZShjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUHJveHlTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9Qcm94eVNlcnZlci5jcHAKaW5kZXggYzZkNjdjMi4uMGM2OWY0ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5jcHAKQEAgLTY4LDcg
KzY4LDkgQEAgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFZlY3RvcjxQcm94eVNlcnZlcj4mIHByb3h5
U2VydmVycykKICAgICAgICAgYXBwZW5kUHJveHlTZXJ2ZXJTdHJpbmcoc3RyaW5nQnVpbGRlciwg
cHJveHlTZXJ2ZXJzW2ldKTsKICAgICB9CiAKLSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVKYXJNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVKYXJNYWMubW0KaW5kZXgg
YzI2NDBiZC4uMDAwNWRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvQ29va2llSmFyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL0Nvb2tpZUphck1hYy5tbQpAQCAtMjYxLDcgKzI2MSwxMCBAQCBzdGF0aWMgc3Rk
OjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvclNlc3Npb24oY29uc3QgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJiBzZQogICAgICAgICBjb29raWVzQnVpbGRlci5hcHBlbmQoJz0nKTsKICAgICAg
ICAgY29va2llc0J1aWxkZXIuYXBwZW5kKFtjb29raWUgdmFsdWVdKTsKICAgICB9Ci0gICAgcmV0
dXJuIHsgY29va2llc0J1aWxkZXIudG9TdHJpbmcoKSwgZGlkQWNjZXNzU2VjdXJlQ29va2llcyB9
OworCisgICAgaWYgKGF1dG8gc3RyaW5nID0gY29va2llc0J1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuIHsgKnN0cmluZywgZGlkQWNjZXNzU2VjdXJlQ29va2llcyB9OworICAgIENS
QVNIKCk7CiAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAgIHJldHVybiB7IFN0
cmluZygpLCBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcG9z
aXgvRmlsZVN5c3RlbVBPU0lYLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L0Zp
bGVTeXN0ZW1QT1NJWC5jcHAKaW5kZXggNGRhN2NmNi4uMzg5ZDJkYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCkBAIC0zMTAsNyAr
MzEwLDkgQEAgU3RyaW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudHMoU3RyaW5nVmlldyBwYXRo
LCBjb25zdCBWZWN0b3I8U3RyaW5nVmlldz4mIGNvbXAKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
Jy8nKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoY29tcG9uZW50KTsKICAgICB9Ci0gICAgcmV0
dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJv
b2wgbWFrZUFsbERpcmVjdG9yaWVzKGNvbnN0IFN0cmluZyYgcGF0aCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRGF0ZVRpbWVGb3JtYXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5jcHAKaW5kZXggYzc1ZDMzZC4uYTFl
ZmMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZv
cm1hdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1h
dC5jcHAKQEAgLTE0NSw3ICsxNDUsMTAgQEAgYm9vbCBEYXRlVGltZUZvcm1hdDo6cGFyc2UoY29u
c3QgU3RyaW5nJiBzb3VyY2UsIFRva2VuSGFuZGxlciYgdG9rZW5IYW5kbGVyKQogICAgICAgICAg
ICAgfQogCiAgICAgICAgICAgICBpZiAobGl0ZXJhbEJ1ZmZlci5sZW5ndGgoKSkgewotICAgICAg
ICAgICAgICAgIHRva2VuSGFuZGxlci52aXNpdExpdGVyYWwobGl0ZXJhbEJ1ZmZlci50b1N0cmlu
ZygpKTsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBsaXRlcmFsQnVmZmVyLnRv
U3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICAgIHRva2VuSGFuZGxlci52aXNpdExpdGVyYWwo
KnN0cmluZyk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBDUkFT
SCgpOwogICAgICAgICAgICAgICAgIGxpdGVyYWxCdWZmZXIuY2xlYXIoKTsKICAgICAgICAgICAg
IH0KIApAQCAtMTY5LDcgKzE3MiwxMCBAQCBib29sIERhdGVUaW1lRm9ybWF0OjpwYXJzZShjb25z
dCBTdHJpbmcmIHNvdXJjZSwgVG9rZW5IYW5kbGVyJiB0b2tlbkhhbmRsZXIpCiAgICAgICAgICAg
ICB9CiAKICAgICAgICAgICAgIGlmIChsaXRlcmFsQnVmZmVyLmxlbmd0aCgpKSB7Ci0gICAgICAg
ICAgICAgICAgdG9rZW5IYW5kbGVyLnZpc2l0TGl0ZXJhbChsaXRlcmFsQnVmZmVyLnRvU3RyaW5n
KCkpOworICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGxpdGVyYWxCdWZmZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgdG9rZW5IYW5kbGVyLnZpc2l0TGl0ZXJhbCgq
c3RyaW5nKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIENSQVNI
KCk7CiAgICAgICAgICAgICAgICAgbGl0ZXJhbEJ1ZmZlci5jbGVhcigpOwogICAgICAgICAgICAg
fQogCkBAIC0yMjAsMTQgKzIyNiwyMiBAQCBib29sIERhdGVUaW1lRm9ybWF0OjpwYXJzZShjb25z
dCBTdHJpbmcmIHNvdXJjZSwgVG9rZW5IYW5kbGVyJiB0b2tlbkhhbmRsZXIpCiAgICAgc3dpdGNo
IChzdGF0ZSkgewogICAgIGNhc2UgU3RhdGVMaXRlcmFsOgogICAgIGNhc2UgU3RhdGVJblF1b3Rl
UXVvdGU6Ci0gICAgICAgIGlmIChsaXRlcmFsQnVmZmVyLmxlbmd0aCgpKQotICAgICAgICAgICAg
dG9rZW5IYW5kbGVyLnZpc2l0TGl0ZXJhbChsaXRlcmFsQnVmZmVyLnRvU3RyaW5nKCkpOworICAg
ICAgICBpZiAobGl0ZXJhbEJ1ZmZlci5sZW5ndGgoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gbGl0ZXJhbEJ1ZmZlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHRva2Vu
SGFuZGxlci52aXNpdExpdGVyYWwoKnN0cmluZyk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAg
IGNhc2UgU3RhdGVRdW90ZToKICAgICBjYXNlIFN0YXRlSW5RdW90ZToKLSAgICAgICAgaWYgKGxp
dGVyYWxCdWZmZXIubGVuZ3RoKCkpCi0gICAgICAgICAgICB0b2tlbkhhbmRsZXIudmlzaXRMaXRl
cmFsKGxpdGVyYWxCdWZmZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChsaXRlcmFsQnVmZmVy
Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBsaXRlcmFsQnVmZmVy
LnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgdG9rZW5IYW5kbGVyLnZpc2l0TGl0ZXJhbCgq
c3RyaW5nKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOworICAg
ICAgICB9CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGNhc2UgU3RhdGVTeW1ib2w6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RlY29kZUVzY2FwZVNlcXVl
bmNlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EZWNvZGVFc2NhcGVTZXF1ZW5j
ZXMuaAppbmRleCAxNGNmNDE1Li43MmEwYTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0RlY29kZUVzY2FwZVNlcXVlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmgKQEAgLTY0LDcgKzY0LDkgQEAg
c3RydWN0IFVuaWNvZGUxNkJpdEVzY2FwZVNlcXVlbmNlIHsKICAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKGNvZGVVbml0KTsKICAgICAgICAgICAgIHJ1biA9IHJ1bi5zdWJzdHJpbmcoc2VxdWVu
Y2VTaXplKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwor
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9OwogCkBAIC0xNTEs
NyArMTUzLDkgQEAgU3RyaW5nIGRlY29kZUVzY2FwZVNlcXVlbmNlcyhTdHJpbmdWaWV3IHN0cmlu
ZywgY29uc3QgVGV4dEVuY29kaW5nJiBlbmNvZGluZykKICAgICAgICAgZGVjb2RlZFBvc2l0aW9u
ID0gZW5jb2RlZFJ1bkVuZDsKICAgICB9CiAgICAgcmVzdWx0LmFwcGVuZChzdHJpbmcuc3Vic3Ry
aW5nKGRlY29kZWRQb3NpdGlvbiwgbGVuZ3RoIC0gZGVjb2RlZFBvc2l0aW9uKSk7Ci0gICAgcmV0
dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBpbmxp
bmUgVmVjdG9yPHVpbnQ4X3Q+IGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlc0FzRGF0YShTdHJpbmdW
aWV3IHN0cmluZywgY29uc3QgVGV4dEVuY29kaW5nJiBlbmNvZGluZykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvUGxhdGZvcm1Mb2NhbGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5jcHAKaW5kZXggMDg3NDMyNS4uYTll
NThlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9ybUxv
Y2FsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2Fs
ZS5jcHAKQEAgLTgzLDcgKzgzLDkgQEAgU3RyaW5nIERhdGVUaW1lU3RyaW5nQnVpbGRlcjo6emVy
b1BhZFN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZywgc2l6ZV90IHdpZHRoKQogICAgIGZvciAo
c2l6ZV90IGkgPSBzdHJpbmcubGVuZ3RoKCk7IGkgPCB3aWR0aDsgKytpKQogICAgICAgICB6ZXJv
UGFkZGVkU3RyaW5nQnVpbGRlci5hcHBlbmQoJzAnKTsKICAgICB6ZXJvUGFkZGVkU3RyaW5nQnVp
bGRlci5hcHBlbmQoc3RyaW5nKTsKLSAgICByZXR1cm4gemVyb1BhZGRlZFN0cmluZ0J1aWxkZXIu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB6ZXJvUGFkZGVkU3RyaW5nQnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiB2b2lkIERhdGVUaW1lU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKGludCBudW1iZXIsIHNp
emVfdCB3aWR0aCkKQEAgLTE3NSw3ICsxNzcsOSBAQCB2b2lkIERhdGVUaW1lU3RyaW5nQnVpbGRl
cjo6dmlzaXRMaXRlcmFsKGNvbnN0IFN0cmluZyYgdGV4dCkKIAogU3RyaW5nIERhdGVUaW1lU3Ry
aW5nQnVpbGRlcjo6dG9TdHJpbmcoKQogewotICAgIHJldHVybiBtX2J1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtX2J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogI2VuZGlmCkBAIC0yMzgsNyArMjQy
LDkgQEAgU3RyaW5nIExvY2FsZTo6Y29udmVydFRvTG9jYWxpemVkTnVtYmVyKGNvbnN0IFN0cmlu
ZyYgaW5wdXQpCiAKICAgICBidWlsZGVyLmFwcGVuZChpc05lZ2F0aXZlID8gbV9uZWdhdGl2ZVN1
ZmZpeCA6IG1fcG9zaXRpdmVTdWZmaXgpOwogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBib29sIG1hdGNoZXMoY29u
c3QgU3RyaW5nJiB0ZXh0LCB1bnNpZ25lZCBwb3NpdGlvbiwgY29uc3QgU3RyaW5nJiBwYXJ0KQpA
QCAtMzIxLDcgKzMyNyw5IEBAIFN0cmluZyBMb2NhbGU6OmNvbnZlcnRGcm9tTG9jYWxpemVkTnVt
YmVyKGNvbnN0IFN0cmluZyYgbG9jYWxpemVkKQogICAgICAgICBlbHNlCiAgICAgICAgICAgICBi
dWlsZGVyLmFwcGVuZChzdGF0aWNfY2FzdDxVQ2hhcj4oJzAnICsgc3ltYm9sSW5kZXgpKTsKICAg
ICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKICNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKQEAgLTM2MCw3
ICszNjgsOSBAQCBTdHJpbmcgTG9jYWxlOjpmb3JtYXREYXRlVGltZShjb25zdCBEYXRlQ29tcG9u
ZW50cyYgZGF0ZSwgRm9ybWF0VHlwZSBmb3JtYXRUeXBlKQogICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogI2VuZGlmIC8vICFQTEFURk9STShJ
T1MpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVk
U3RyaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5n
LmNwcAppbmRleCBmZjMxYjJhLi40OGNiYTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwCkBAIC0xNTksNyArMTU5LDkgQEAgU3RyaW5n
IFNlZ21lbnRlZFN0cmluZzo6dG9TdHJpbmcoKSBjb25zdAogICAgIG1fY3VycmVudFN1YnN0cmlu
Zy5hcHBlbmRUbyhyZXN1bHQpOwogICAgIGZvciAoYXV0byYgc3Vic3RyaW5nIDogbV9vdGhlclN1
YnN0cmluZ3MpCiAgICAgICAgIHN1YnN0cmluZy5hcHBlbmRUbyhyZXN1bHQpOwotICAgIHJldHVy
biByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBT
ZWdtZW50ZWRTdHJpbmc6OmFkdmFuY2VXaXRob3V0VXBkYXRpbmdMaW5lTnVtYmVyMTYoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNJQ1UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNJQ1UuY3BwCmluZGV4IGQyZTJh
ZTcuLjc2MjJjYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4
dENvZGVjSUNVLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2Rl
Y0lDVS5jcHAKQEAgLTMxOCwxMyArMzE4LDE0IEBAIFN0cmluZyBUZXh0Q29kZWNJQ1U6OmRlY29k
ZShjb25zdCBjaGFyKiBieXRlcywgc2l6ZV90IGxlbmd0aCwgYm9vbCBmbHVzaCwgYm9vbCBzCiAg
ICAgICAgIHNhd0Vycm9yID0gdHJ1ZTsKICAgICB9CiAKLSAgICBTdHJpbmcgcmVzdWx0U3RyaW5n
ID0gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gcmVzdWx0U3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpIHsKKyAgICAgICAgLy8gU2ltcGxpZmllZCBDaGluZXNlIHBhZ2VzIHVzZSB0
aGUgY29kZSBBM0EwIHRvIG1lYW4gImZ1bGwtd2lkdGggc3BhY2UiLCBidXQgSUNVIGRlY29kZXMg
aXQgYXMgVStFNUU1LgorICAgICAgICBpZiAoIXN0cmNtcChtX2VuY29kaW5nTmFtZSwgIkdCSyIp
IHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKG1fZW5jb2RpbmdOYW1lLCAiZ2IxODAz
MCIpKQorICAgICAgICAgICAgcmVzdWx0U3RyaW5nLT5yZXBsYWNlKDB4RTVFNSwgaWRlb2dyYXBo
aWNTcGFjZSk7CiAKLSAgICAvLyBTaW1wbGlmaWVkIENoaW5lc2UgcGFnZXMgdXNlIHRoZSBjb2Rl
IEEzQTAgdG8gbWVhbiAiZnVsbC13aWR0aCBzcGFjZSIsIGJ1dCBJQ1UgZGVjb2RlcyBpdCBhcyBV
K0U1RTUuCi0gICAgaWYgKCFzdHJjbXAobV9lbmNvZGluZ05hbWUsICJHQksiKSB8fCBlcXVhbExl
dHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShtX2VuY29kaW5nTmFtZSwgImdiMTgwMzAiKSkKLSAgICAg
ICAgcmVzdWx0U3RyaW5nLnJlcGxhY2UoMHhFNUU1LCBpZGVvZ3JhcGhpY1NwYWNlKTsKLQotICAg
IHJldHVybiByZXN1bHRTdHJpbmc7CisgICAgICAgIHJldHVybiAqcmVzdWx0U3RyaW5nOworICAg
IH0KKyAgICBDUkFTSCgpOwogfQogCiAvLyBXZSBuZWVkIHRvIGFwcGx5IHRoZXNlIGZhbGxiYWNr
cyBvdXJzZWx2ZXMgYXMgdGhleSBhcmUgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQgYnkgSUNVIGFu
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVc2Vy
RGVmaW5lZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VzZXJE
ZWZpbmVkLmNwcAppbmRleCAyOTZjNDY5Li5jYjcwZTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VzZXJEZWZpbmVkLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VzZXJEZWZpbmVkLmNwcApAQCAtNTMsNyAr
NTMsOSBAQCBTdHJpbmcgVGV4dENvZGVjVXNlckRlZmluZWQ6OmRlY29kZShjb25zdCBjaGFyKiBi
eXRlcywgc2l6ZV90IGxlbmd0aCwgYm9vbCwgYm9vbAogICAgICAgICBzaWduZWQgY2hhciBjID0g
Ynl0ZXNbaV07CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoc3RhdGljX2Nhc3Q8VUNoYXI+KGMgJiAw
eEY3RkYpKTsKICAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZUNvbXBsZXhV
c2VyRGVmaW5lZChTdHJpbmdWaWV3IHN0cmluZywgVW5lbmNvZGFibGVIYW5kbGluZyBoYW5kbGlu
ZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGls
aXRpZXNXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxp
dGllc1dpbi5jcHAKaW5kZXggNmZmODllYy4uMmJjNmQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAKQEAgLTMxNCw3
ICszMTQsMTAgQEAgdm9pZCByZXBsYWNlTmV3bGluZXNXaXRoV2luZG93c1N0eWxlTmV3bGluZXMo
U3RyaW5nJiBzdHIpCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRl
cmFsKCJcclxuIik7CiAgICAgfQotICAgIHN0ciA9IHJlc3VsdC50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBzdHIgPSAqc3RyaW5n
OworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCByZXBsYWNlTkJTUFdpdGhT
cGFjZShTdHJpbmcmIHN0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9Vc2VyQWdlbnRXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1VzZXJBZ2Vu
dFdpbi5jcHAKaW5kZXggODIwMWY0ZS4uZDNkNjk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL1VzZXJBZ2VudFdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL1VzZXJBZ2VudFdpbi5jcHAKQEAgLTQ2LDcgKzQ2LDkgQEAgU3RyaW5nIHN0YW5k
YXJkVXNlckFnZW50KGNvbnN0IFN0cmluZyYgYXBwbGljYXRpb25OYW1lLCBjb25zdCBTdHJpbmcm
IGFwcGxpY2F0aW8KICAgICAgICAgICAgIHVhU3RyaW5nLmFwcGVuZChhcHBsaWNhdGlvblZlcnNp
b24pOwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiB1YVN0cmluZy50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHVhU3RyaW5nLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBzdGFuZGFyZFVzZXJBZ2VudEZv
clVSTChjb25zdCBVUkwmIHVybCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMv
RE9NTWltZVR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZS5jcHAK
aW5kZXggMWIyZDc1Mi4uMmZlNTg2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lu
cy9ET01NaW1lVHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlw
ZS5jcHAKQEAgLTU3LDcgKzU3LDkgQEAgU3RyaW5nIERPTU1pbWVUeXBlOjpzdWZmaXhlcygpIGNv
bnN0CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnLCcpOwogICAgICAgICBidWlsZGVyLmFw
cGVuZChleHRlbnNpb25zW2ldKTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBET01NaW1lVHlwZTo6ZGVz
Y3JpcHRpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAK
aW5kZXggZmEwZTU3YS4uYmE5Y2Q2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCkBAIC00MjgsNyArNDI4LDkgQEAgU3RyaW5nIFJlbmRlckxheWVyOjpuYW1lKCkg
Y29uc3QKICAgICBpZiAoaXNSZWZsZWN0aW9uKCkpCiAgICAgICAgIG5hbWUuYXBwZW5kTGl0ZXJh
bCgiIChyZWZsZWN0aW9uKSIpOwogCi0gICAgcmV0dXJuIG5hbWUudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBuYW1lLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIFJlbmRlckxheWVyQ29tcG9zaXRvciYgUmVuZGVyTGF5ZXI6
OmNvbXBvc2l0b3IoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCAxYzQwNDdkLi41NzMzMGU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAt
ODYzLDcgKzg2MywxMCBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6bG9nTGF5ZXJJbmZv
KGNvbnN0IFJlbmRlckxheWVyJiBsYXllciwgaW50IGRlcHRoKQogCiAgICAgbG9nU3RyaW5nLmFw
cGVuZChsYXllci5uYW1lKCkpOwogCi0gICAgTE9HKENvbXBvc2l0aW5nLCAiJXMiLCBsb2dTdHJp
bmcudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBsb2dT
dHJpbmcudG9TdHJpbmcoKSkKKyAgICAgICAgTE9HKENvbXBvc2l0aW5nLCAiJXMiLCBzdHJpbmct
PnV0ZjgoKS5kYXRhKCkpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKaW5kZXgg
OTA0Zjk5NC4uNTdiMDAzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpc3RNYXJrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
aXN0TWFya2VyLmNwcApAQCAtMTExNyw3ICsxMTE3LDkgQEAgU3RyaW5nIGxpc3RNYXJrZXJUZXh0
KEVMaXN0U3R5bGVUeXBlIHR5cGUsIGludCB2YWx1ZSkKICAgICAgICAgICAgIGJyZWFrOwogICAg
IH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBSZW5kZXJMaXN0TWFya2VyOjpSZW5kZXJMaXN0TWFya2VyKFJlbmRlckxpc3RJ
dGVtJiBsaXN0SXRlbSwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKQEAgLTEzNjMsNyArMTM2NSwxMCBA
QCB2b2lkIFJlbmRlckxpc3RNYXJrZXI6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25z
dCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZQogICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQo
c3VmZml4KTsKICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHNwYWNlKTsKICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIHRvRHJhdyA9IGJ1ZmZlci50b1N0cmluZygpOworICAgICAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVmZmVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAg
dG9EcmF3ID0gKnN0cmluZzsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFT
SCgpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgaWYgKHN0eWxlKCkuaXNMZWZ0VG9S
aWdodERpcmVjdGlvbigpKQogICAgICAgICAgICAgICAgIHRvRHJhdyA9IG1fdGV4dCArIFN0cmlu
Zygmc3VmZml4LCAxKSArIFN0cmluZygmc3BhY2UsIDEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHQuY3BwCmluZGV4IDhmYTUxZTIuLjEwNTIwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKQEAgLTE4MSw3ICsxODEsOSBAQCBTdHJpbmcgY2FwaXRh
bGl6ZShjb25zdCBTdHJpbmcmIHN0cmluZywgVUNoYXIgcHJldmlvdXNDaGFyYWN0ZXIpCiAgICAg
ICAgICAgICByZXN1bHQuYXBwZW5kKHN0cmluZ0ltcGxbaSAtIDFdKTsKICAgICB9CiAKLSAgICBy
ZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGlu
bGluZSBSZW5kZXJUZXh0OjpSZW5kZXJUZXh0KE5vZGUmIG5vZGUsIGNvbnN0IFN0cmluZyYgdGV4
dCkKQEAgLTc1NiwxNiArNzU4LDE5IEBAIHN0YXRpYyBmbG9hdCBtYXhXb3JkRnJhZ21lbnRXaWR0
aChSZW5kZXJUZXh0JiByZW5kZXJlciwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlCiAgICAgICAg
IGZyYWdtZW50V2l0aEh5cGhlbi5hcHBlbmQod29yZC5zdWJzdHJpbmcoc3VmZml4U3RhcnQsIGZy
YWdtZW50TGVuZ3RoKSk7CiAgICAgICAgIGZyYWdtZW50V2l0aEh5cGhlbi5hcHBlbmQoc3R5bGUu
aHlwaGVuU3RyaW5nKCkpOwogCi0gICAgICAgIFRleHRSdW4gcnVuID0gUmVuZGVyQmxvY2s6OmNv
bnN0cnVjdFRleHRSdW4oZnJhZ21lbnRXaXRoSHlwaGVuLnRvU3RyaW5nKCksIHN0eWxlKTsKLSAg
ICAgICAgcnVuLnNldENoYXJhY3RlclNjYW5Gb3JDb2RlUGF0aCghcmVuZGVyZXIuY2FuVXNlU2lt
cGxlRm9udENvZGVQYXRoKCkpOwotICAgICAgICBmbG9hdCBmcmFnbWVudFdpZHRoID0gZm9udC53
aWR0aChydW4sICZmYWxsYmFja0ZvbnRzLCAmZ2x5cGhPdmVyZmxvdyk7CisgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IGZyYWdtZW50V2l0aEh5cGhlbi50b1N0cmluZygpKSB7CisgICAgICAgICAg
ICBUZXh0UnVuIHJ1biA9IFJlbmRlckJsb2NrOjpjb25zdHJ1Y3RUZXh0UnVuKCpzdHJpbmcsIHN0
eWxlKTsKKyAgICAgICAgICAgIHJ1bi5zZXRDaGFyYWN0ZXJTY2FuRm9yQ29kZVBhdGgoIXJlbmRl
cmVyLmNhblVzZVNpbXBsZUZvbnRDb2RlUGF0aCgpKTsKKyAgICAgICAgICAgIGZsb2F0IGZyYWdt
ZW50V2lkdGggPSBmb250LndpZHRoKHJ1biwgJmZhbGxiYWNrRm9udHMsICZnbHlwaE92ZXJmbG93
KTsKIAotICAgICAgICAvLyBOYXJyb3cgcHJlZml4ZXMgYXJlIGlnbm9yZWQuIFNlZSB0cnlIeXBo
ZW5hdGluZyBpbiBSZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwLgotICAgICAgICBpZiAoZnJhZ21l
bnRXaWR0aCA8PSBtaW5pbXVtRnJhZ21lbnRXaWR0aFRvQ29uc2lkZXIpCi0gICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgICAgIC8vIE5hcnJvdyBwcmVmaXhlcyBhcmUgaWdub3JlZC4gU2Vl
IHRyeUh5cGhlbmF0aW5nIGluIFJlbmRlckJsb2NrTGluZUxheW91dC5jcHAuCisgICAgICAgICAg
ICBpZiAoZnJhZ21lbnRXaWR0aCA8PSBtaW5pbXVtRnJhZ21lbnRXaWR0aFRvQ29uc2lkZXIpCisg
ICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgc3VmZml4U3RhcnQgKz0gZnJhZ21l
bnRMZW5ndGg7Ci0gICAgICAgIG1heEZyYWdtZW50V2lkdGggPSBzdGQ6Om1heChtYXhGcmFnbWVu
dFdpZHRoLCBmcmFnbWVudFdpZHRoKTsKKyAgICAgICAgICAgIHN1ZmZpeFN0YXJ0ICs9IGZyYWdt
ZW50TGVuZ3RoOworICAgICAgICAgICAgbWF4RnJhZ21lbnRXaWR0aCA9IHN0ZDo6bWF4KG1heEZy
YWdtZW50V2lkdGgsIGZyYWdtZW50V2lkdGgpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IENSQVNIKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIG1heEZyYWdtZW50V2lkdGg7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KaW5kZXggNGZlODNlMC4uMjU3OGY1
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQpAQCAtMTM2
MCw3ICsxMzYwLDEwIEBAIFN0cmluZyBSZW5kZXJUaGVtZUlPUzo6bWVkaWFDb250cm9sc1Njcmlw
dCgpCiAgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIHNjcmlwdEJ1aWxkZXI7CiAgICAgICAgICAg
ICBzY3JpcHRCdWlsZGVyLmFwcGVuZChbTlNTdHJpbmcgc3RyaW5nV2l0aENvbnRlbnRzT2ZGaWxl
OltidW5kbGUgcGF0aEZvclJlc291cmNlOkAibW9kZXJuLW1lZGlhLWNvbnRyb2xzLWxvY2FsaXpl
ZC1zdHJpbmdzIiBvZlR5cGU6QCJqcyJdIGVuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nIGVy
cm9yOm5pbF0pOwogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQoW05TU3RyaW5nIHN0
cmluZ1dpdGhDb250ZW50c09mRmlsZTpbYnVuZGxlIHBhdGhGb3JSZXNvdXJjZTpAIm1vZGVybi1t
ZWRpYS1jb250cm9scyIgb2ZUeXBlOkAianMiIGluRGlyZWN0b3J5OkAibW9kZXJuLW1lZGlhLWNv
bnRyb2xzIl0gZW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmcgZXJyb3I6bmlsXSk7Ci0gICAg
ICAgICAgICBtX21lZGlhQ29udHJvbHNTY3JpcHQgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCk7
CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgICAgICAgICAgbV9tZWRpYUNvbnRyb2xzU2NyaXB0ID0gKnN0cmluZzsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAgICAgICAg
IHJldHVybiBtX21lZGlhQ29udHJvbHNTY3JpcHQ7CiAgICAgfQpAQCAtMTM3Myw3ICsxMzc2LDEw
IEBAIFN0cmluZyBSZW5kZXJUaGVtZUlPUzo6bWVkaWFDb250cm9sc1NjcmlwdCgpCiAgICAgICAg
IHNjcmlwdEJ1aWxkZXIuYXBwZW5kKFtOU1N0cmluZyBzdHJpbmdXaXRoQ29udGVudHNPZkZpbGU6
W2J1bmRsZSBwYXRoRm9yUmVzb3VyY2U6QCJtZWRpYUNvbnRyb2xzQXBwbGUiIG9mVHlwZTpAImpz
Il0gZW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmcgZXJyb3I6bmlsXSk7CiAgICAgICAgIHNj
cmlwdEJ1aWxkZXIuYXBwZW5kKFtOU1N0cmluZyBzdHJpbmdXaXRoQ29udGVudHNPZkZpbGU6W2J1
bmRsZSBwYXRoRm9yUmVzb3VyY2U6QCJtZWRpYUNvbnRyb2xzaU9TIiBvZlR5cGU6QCJqcyJdIGVu
Y29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nIGVycm9yOm5pbF0pOwogCi0gICAgICAgIG1fbGVn
YWN5TWVkaWFDb250cm9sc1NjcmlwdCA9IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAg
ICAgbV9sZWdhY3lNZWRpYUNvbnRyb2xzU2NyaXB0ID0gKnN0cmluZzsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgcmV0dXJuIG1fbGVnYWN5TWVkaWFDb250
cm9sc1NjcmlwdDsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
V2luLmNwcAppbmRleCBkZWVhMWE5Li44MzZkMDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZVdpbi5jcHAKQEAgLTEwOTQsNyArMTA5NCwxMCBAQCBTdHJpbmcgUmVu
ZGVyVGhlbWVXaW46Om1lZGlhQ29udHJvbHNTY3JpcHQoKQogICAgICAgICBTdHJpbmdCdWlsZGVy
IHNjcmlwdEJ1aWxkZXI7CiAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kKHN0cmluZ1dpdGhD
b250ZW50c09mRmlsZShDRlNUUigibWVkaWFDb250cm9sc0xvY2FsaXplZFN0cmluZ3MiKSwgQ0ZT
VFIoImpzIikpKTsKICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQoc3RyaW5nV2l0aENvbnRl
bnRzT2ZGaWxlKENGU1RSKCJtZWRpYUNvbnRyb2xzQXBwbGUiKSwgQ0ZTVFIoImpzIikpKTsKLSAg
ICAgICAgbV9tZWRpYUNvbnRyb2xzU2NyaXB0ID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpOwor
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgICAgICBtX21lZGlhQ29udHJvbHNTY3JpcHQgPSAqc3RyaW5nOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICByZXR1cm4gbV9tZWRpYUNvbnRyb2xzU2Ny
aXB0OwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
cmVlQXNUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0
LmNwcAppbmRleCA1NWNkYjRiLi44NWM3OGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCkBAIC0xNzAsNyArMTcwLDkgQEAgU3RyaW5nIHF1b3Rl
QW5kRXNjYXBlTm9uUHJpbnRhYmxlcyhTdHJpbmdWaWV3IHMpCiAgICAgICAgIH0KICAgICB9CiAg
ICAgcmVzdWx0LmFwcGVuZCgnIicpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBSZW5kZXJUcmVlQXNUZXh0Ojp3cml0ZVJl
bmRlck9iamVjdChUZXh0U3RyZWFtJiB0cywgY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBSZW5kZXJB
c1RleHRCZWhhdmlvciBiZWhhdmlvcikKQEAgLTgwNyw3ICs4MDksOSBAQCBzdGF0aWMgU3RyaW5n
IG5vZGVQb3NpdGlvbihOb2RlKiBub2RlKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVy
YWwoImRvY3VtZW50Iik7CiAgICAgfQogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgdm9pZCB3cml0ZVNlbGVjdGlvbihU
ZXh0U3RyZWFtJiB0cywgY29uc3QgUmVuZGVyQm94JiByZW5kZXJlcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmNwcAppbmRl
eCA4OWJiMDQwLi44Yzc4NGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
bWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuY3BwCkBAIC03MSw3ICs3MSwxMCBAQCB2b2lk
IFJlbmRlck1hdGhNTEZlbmNlZDo6dXBkYXRlRnJvbUVsZW1lbnQoKQogICAgICAgICAgICAgaWYg
KCFpc1NwYWNlT3JOZXdsaW5lKHNlcGFyYXRvcnNbaV0pKQogICAgICAgICAgICAgICAgIGNoYXJh
Y3RlcnMuYXBwZW5kKHNlcGFyYXRvcnNbaV0pOwogICAgICAgICB9Ci0gICAgICAgIG1fc2VwYXJh
dG9ycyA9ICFjaGFyYWN0ZXJzLmxlbmd0aCgpID8gMCA6IGNoYXJhY3RlcnMudG9TdHJpbmcoKS5p
bXBsKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGNoYXJhY3RlcnMudG9TdHJpbmcoKSkK
KyAgICAgICAgICAgIG1fc2VwYXJhdG9ycyA9ICFjaGFyYWN0ZXJzLmxlbmd0aCgpID8gMCA6IHN0
cmluZy0+aW1wbCgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0g
ZWxzZSB7CiAgICAgICAgIC8vIFRoZSBzZXBhcmF0b3IgZGVmYXVsdHMgdG8gYSBzaW5nbGUgY29t
bWEuCiAgICAgICAgIG1fc2VwYXJhdG9ycyA9IFN0cmluZ0ltcGw6OmNyZWF0ZSgiLCIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWls
ZGVyTWF0aE1MLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJU
cmVlQnVpbGRlck1hdGhNTC5jcHAKaW5kZXggNWNiNDc4Yi4uMjBkMjUxNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTWF0aE1M
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1
aWxkZXJNYXRoTUwuY3BwCkBAIC05MCw3ICs5MCwxMCBAQCB2b2lkIFJlbmRlclRyZWVCdWlsZGVy
OjpNYXRoTUw6OmF0dGFjaChSZW5kZXJNYXRoTUxGZW5jZWQmIHBhcmVudCwgUmVuZGVyUHRyPFJl
bgogCiAgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7CiAgICAgICAgICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZChzZXBhcmF0b3IpOwotICAgICAgICAgICAgc2VwYXJhdG9y
UmVuZGVyZXIgPSBjcmVhdGVNYXRoTUxPcGVyYXRvcihwYXJlbnQsIHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKSwgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpJbmZpeCwgTWF0aE1MT3BlcmF0b3JE
aWN0aW9uYXJ5OjpTZXBhcmF0b3IpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHNlcGFyYXRvclJlbmRlcmVy
ID0gY3JlYXRlTWF0aE1MT3BlcmF0b3IocGFyZW50LCAqc3RyaW5nLCBNYXRoTUxPcGVyYXRvckRp
Y3Rpb25hcnk6OkluZml4LCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OlNlcGFyYXRvcik7Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3BwCmluZGV4IGJh
MjA2NDguLjIwZWEzZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhM
aXN0VmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdFZhbHVl
cy5jcHAKQEAgLTYzLDcgKzYzLDkgQEAgU3RyaW5nIFNWR0xlbmd0aExpc3RWYWx1ZXM6OnZhbHVl
QXNTdHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZChhdChpKS52YWx1ZUFzU3Ry
aW5nKCkpOwogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTnVtYmVyTGlzdFZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlz
dFZhbHVlcy5jcHAKaW5kZXggNmRmZDk5My4uODc1YmU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmNwcApAQCAtNTUsNyArNTUsOSBAQCBTdHJpbmcgU1ZHTnVt
YmVyTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kTnVtYmVyKGF0KGkpKTsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BhdGhTdHJpbmdCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoU3RyaW5nQnVpbGRlci5jcHAKaW5kZXggMTA1MzkxYy4uOWM1NzdlYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTdHJpbmdCdWlsZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFN0cmluZ0J1aWxkZXIuY3BwCkBAIC0zNyw3ICszNyw5IEBA
IFN0cmluZyBTVkdQYXRoU3RyaW5nQnVpbGRlcjo6cmVzdWx0KCkKIAogICAgIC8vIFJlbW92ZSB0
cmFpbGluZyBzcGFjZS4KICAgICBtX3N0cmluZ0J1aWxkZXIucmVzaXplKHNpemUgLSAxKTsKLSAg
ICByZXR1cm4gbV9zdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gbV9zdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgU1ZHUGF0aFN0cmluZ0J1aWxkZXI6OmluY3JlbWVudFBh
dGhTZWdtZW50Q291bnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhV
dGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwCmlu
ZGV4IGNmOWYwMTQuLmNjNTQzMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGll
cy5jcHAKQEAgLTEwMSw3ICsxMDEsOSBAQCBTdHJpbmcgYnVpbGRTdHJpbmdGcm9tUGF0aChjb25z
dCBQYXRoJiBwYXRoKQogICAgICAgICB9KTsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBidWlsZFNWR1Bh
dGhCeXRlU3RyZWFtRnJvbVNWR1BhdGhTZWdMaXN0VmFsdWVzKGNvbnN0IFNWR1BhdGhTZWdMaXN0
VmFsdWVzJiBsaXN0LCBTVkdQYXRoQnl0ZVN0cmVhbSYgcmVzdWx0LCBQYXRoUGFyc2luZ01vZGUg
cGFyc2luZ01vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0
VmFsdWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1ZXMuY3BwCmlu
ZGV4IGQ4MWU2YTIuLmQ4YmRlZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
b2ludExpc3RWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RW
YWx1ZXMuY3BwCkBAIC00MSw3ICs0MSw5IEBAIFN0cmluZyBTVkdQb2ludExpc3RWYWx1ZXM6OnZh
bHVlQXNTdHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihwb2ludC55
KCkpOwogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U3RyaW5nTGlzdFZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdFZh
bHVlcy5jcHAKaW5kZXggM2ZmODk4YS4uOGM2MWYxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTdHJpbmdMaXN0VmFsdWVzLmNwcApAQCAtNzMsNyArNzMsOSBAQCBTdHJpbmcgU1ZHU3RyaW5n
TGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KGF0KGkpKTsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5z
Zm9ybUxpc3RWYWx1ZXMuY3BwCmluZGV4IDI1YjNjMzEuLjZiNDJkM2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAKQEAgLTY4LDcgKzY4LDkgQEAg
U3RyaW5nIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogICAg
ICAgICBidWlsZGVyLmFwcGVuZChhdChpKS52YWx1ZUFzU3RyaW5nKCkpOwogICAgIH0KIAotICAg
IHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiB2b2lkIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM6OnBhcnNlKGNvbnN0IFN0cmluZyYgdHJhbnNm
b3JtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5jcHAKaW5kZXggNjNkNDVh
NS4uZWExNDYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZh
bHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtVmFsdWUuY3BwCkBA
IC0xNzksNyArMTc5LDkgQEAgU3RyaW5nIFNWR1RyYW5zZm9ybVZhbHVlOjp2YWx1ZUFzU3RyaW5n
KCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICAgICAgYnVpbGRlci5h
cHBlbmROdW1iZXIobV9tYXRyaXguZigpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsK
LSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIGNhc2UgU1ZHX1RSQU5TRk9STV9UUkFOU0xBVEU6
IHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwpAQCAtMTg4LDcgKzE5MCw5IEBAIFN0
cmluZyBTVkdUcmFuc2Zvcm1WYWx1ZTo6dmFsdWVBc1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fbWF0cml4
LmYoKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Ci0gICAgICAgIHJldHVybiBidWls
ZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAg
IH0KICAgICBjYXNlIFNWR19UUkFOU0ZPUk1fU0NBTEU6IHsKICAgICAgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOwpAQCAtMTk3LDcgKzIwMSw5IEBAIFN0cmluZyBTVkdUcmFuc2Zvcm1WYWx1ZTo6
dmFsdWVBc1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fbWF0cml4LnlTY2FsZSgpKTsKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoJyknKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAg
ICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIGNhc2UgU1ZHX1RS
QU5TRk9STV9ST1RBVEU6IHsKICAgICAgICAgZG91YmxlIGFuZ2xlSW5SYWQgPSBkZWcycmFkKG1f
YW5nbGUpOwpAQCAtMjE1LDcgKzIyMSw5IEBAIFN0cmluZyBTVkdUcmFuc2Zvcm1WYWx1ZTo6dmFs
dWVBc1N0cmluZygpIGNvbnN0CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihjeSk7
CiAgICAgICAgIH0KICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKLSAgICAgICAgcmV0dXJu
IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7
CiAgICAgfQogICAgIGNhc2UgU1ZHX1RSQU5TRk9STV9TS0VXWDoKICAgICBjYXNlIFNWR19UUkFO
U0ZPUk1fU0tFV1k6IHsKQEAgLTIyMyw3ICsyMzEsOSBAQCBTdHJpbmcgU1ZHVHJhbnNmb3JtVmFs
dWU6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZChwcmVmaXgp
OwogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX2FuZ2xlKTsKICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoJyknKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmgKaW5kZXggYTIz
MjdlNi4uODAwYWJkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHUHJvcGVydHlUcmFpdHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdQcm9wZXJ0eVRyYWl0cy5oCkBAIC0xNDMsNyArMTQzLDkgQEAgc3RydWN0IFNWR1Byb3BlcnR5
VHJhaXRzPEZsb2F0UG9pbnQ+IHsKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS54
KCkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgICAgICBidWlsZGVyLmFwcGVu
ZE51bWJlcih0eXBlLnkoKSk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KIH07CiAKQEAgLTE3NCw3
ICsxNzYsOSBAQCBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0PiB7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUud2lkdGgoKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCcgJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUuaGVpZ2h0KCkpOwot
ICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICAgICAgQ1JBU0goKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKaW5kZXggODFhNDAwOS4uMGMyNDA0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcApAQCAtMTU0MCw3ICsxNTQwLDkgQEAgRXhjZXB0aW9uT3I8U3RyaW5nPiBJbnRlcm5hbHM6
OmR1bXBNYXJrZXJSZWN0cyhjb25zdCBTdHJpbmcmIG1hcmtlclR5cGVTdHJpbmcpCiAgICAgICAg
IHJlY3RTdHJpbmcuYXBwZW5kTnVtYmVyKHJlY3QuaGVpZ2h0KCkpOwogICAgICAgICByZWN0U3Ry
aW5nLmFwcGVuZExpdGVyYWwoIikgIik7CiAgICAgfQotICAgIHJldHVybiByZWN0U3RyaW5nLnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVjdFN0cmluZy50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gV1RGTW92ZSgqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lk
IEludGVybmFsczo6YWRkVGV4dE1hdGNoTWFya2VyKGNvbnN0IFJhbmdlJiByYW5nZSwgYm9vbCBp
c0FjdGl2ZSkKQEAgLTIwNzksNyArMjA4MSw5IEBAIFN0cmluZyBJbnRlcm5hbHM6OnBhcnNlck1l
dGFEYXRhKEpTQzo6SlNWYWx1ZSBjb2RlKQogICAgIHJlc3VsdC5hcHBlbmROdW1iZXIoZW5kQ29s
dW1uKTsKICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiIH0iKTsKIAotICAgIHJldHVybiByZXN1
bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbnRlcm5h
bHM6OnVwZGF0ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQoKQpAQCAtMzA3MSw3ICszMDc1LDkgQEAg
RXhjZXB0aW9uT3I8U3RyaW5nPiBJbnRlcm5hbHM6OmdldEN1cnJlbnRDdXJzb3JJbmZvKCkKICAg
ICAgICAgcmVzdWx0LmFwcGVuZChudW1iZXJUb0ZpeGVkUHJlY2lzaW9uU3RyaW5nKGN1cnNvci5p
bWFnZVNjYWxlRmFjdG9yKCksIDgsIGJ1ZmZlciwgdHJ1ZSkpOwogICAgIH0KICNlbmRpZgotICAg
IHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIFdURk1vdmUoKnN0cmluZyk7CisgICAgQ1JBU0go
KTsKICNlbHNlCiAgICAgcmV0dXJuIFN0cmluZyB7ICJGQUlMOiBDdXJzb3IgZGV0YWlscyBub3Qg
YXZhaWxhYmxlIG9uIHRoaXMgcGxhdGZvcm0uIiB9OwogI2VuZGlmCkBAIC0zNTE0LDcgKzM1MjAs
OSBAQCBFeGNlcHRpb25PcjxTdHJpbmc+IEludGVybmFsczo6bWVkaWFTZXNzaW9uUmVzdHJpY3Rp
b25zKGNvbnN0IFN0cmluZyYgbWVkaWFUeXBlUwogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQo
JywnKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoImludGVycnVwdGVkcGxheWJhY2tub3RwZXJt
aXR0ZWQiKTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBXVEZNb3Zl
KCpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW50ZXJuYWxzOjpzZXRNZWRpYUVs
ZW1lbnRSZXN0cmljdGlvbnMoSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCwgU3RyaW5nVmlldyBy
ZXN0cmljdGlvbnNTdHJpbmcpCkBAIC0zNzU1LDQ4ICszNzYzLDUwIEBAIFN0cmluZyBJbnRlcm5h
bHM6OnBhZ2VNZWRpYVN0YXRlKCkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAKICAg
ICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUgPSBkb2N1bWVu
dC0+cGFnZSgpLT5tZWRpYVN0YXRlKCk7Ci0gICAgU3RyaW5nQnVpbGRlciBzdHJpbmc7CisgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6Oklz
UGxheWluZ0F1ZGlvKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdBdWRpbywiKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmQoIklzUGxheWluZ0F1ZGlvLCIpOwogICAgIGlmIChzdGF0
ZSAmIE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ1ZpZGVvKQotICAgICAgICBzdHJpbmcuYXBwZW5k
KCJJc1BsYXlpbmdWaWRlbywiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIklzUGxheWluZ1Zp
ZGVvLCIpOwogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ1RvRXh0ZXJu
YWxEZXZpY2UpCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIklzUGxheWluZ1RvRXh0ZXJuYWxEZXZp
Y2UsIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNl
LCIpOwogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OlJlcXVpcmVzUGxheWJhY2tUYXJn
ZXRNb25pdG9yaW5nKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJSZXF1aXJlc1BsYXliYWNrVGFy
Z2V0TW9uaXRvcmluZywiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIlJlcXVpcmVzUGxheWJh
Y2tUYXJnZXRNb25pdG9yaW5nLCIpOwogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OkV4
dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIkV4
dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUsIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCJFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlLCIpOwogICAgIGlmIChzdGF0ZSAmIE1l
ZGlhUHJvZHVjZXI6OkRpZFBsYXlUb0VuZCkKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiRGlkUGxh
eVRvRW5kLCIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiRGlkUGxheVRvRW5kLCIpOwogICAg
IGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OklzU291cmNlRWxlbWVudFBsYXlpbmcpCi0gICAg
ICAgIHN0cmluZy5hcHBlbmQoIklzU291cmNlRWxlbWVudFBsYXlpbmcsIik7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCJJc1NvdXJjZUVsZW1lbnRQbGF5aW5nLCIpOwogCiAgICAgaWYgKHN0YXRl
ICYgTWVkaWFQcm9kdWNlcjo6SXNOZXh0VHJhY2tDb250cm9sRW5hYmxlZCkKLSAgICAgICAgc3Ry
aW5nLmFwcGVuZCgiSXNOZXh0VHJhY2tDb250cm9sRW5hYmxlZCwiKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQoIklzTmV4dFRyYWNrQ29udHJvbEVuYWJsZWQsIik7CiAgICAgaWYgKHN0YXRlICYg
TWVkaWFQcm9kdWNlcjo6SXNQcmV2aW91c1RyYWNrQ29udHJvbEVuYWJsZWQpCi0gICAgICAgIHN0
cmluZy5hcHBlbmQoIklzUHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVkLCIpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZCgiSXNQcmV2aW91c1RyYWNrQ29udHJvbEVuYWJsZWQsIik7CiAKICAgICBp
ZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxp
c3RlbmVyKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJp
bGl0eUxpc3RlbmVyLCIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiSGFzUGxheWJhY2tUYXJn
ZXRBdmFpbGFiaWxpdHlMaXN0ZW5lciwiKTsKICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2Vy
OjpIYXNBdWRpb09yVmlkZW8pCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc0F1ZGlvT3JWaWRl
bywiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIkhhc0F1ZGlvT3JWaWRlbywiKTsKICAgICBp
ZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCi0g
ICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwiKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQoIkhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwiKTsKICAg
ICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2Up
Ci0gICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSwiKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmQoIkhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSwiKTsK
ICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmlj
ZSkKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UsIik7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSwiKTsK
ICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmlj
ZSkKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UsIik7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSwiKTsK
ICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRp
YUVsZW1lbnQpCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc1VzZXJJbnRlcmFjdGVkV2l0aE1l
ZGlhRWxlbWVudCwiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIkhhc1VzZXJJbnRlcmFjdGVk
V2l0aE1lZGlhRWxlbWVudCwiKTsKIAotICAgIGlmIChzdHJpbmcuaXNFbXB0eSgpKQotICAgICAg
ICBzdHJpbmcuYXBwZW5kKCJJc05vdFBsYXlpbmciKTsKKyAgICBpZiAoYnVpbGRlci5pc0VtcHR5
KCkpCisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJJc05vdFBsYXlpbmciKTsKICAgICBlbHNlCi0g
ICAgICAgIHN0cmluZy5yZXNpemUoc3RyaW5nLmxlbmd0aCgpIC0gMSk7CisgICAgICAgIGJ1aWxk
ZXIucmVzaXplKGJ1aWxkZXIubGVuZ3RoKCkgLSAxKTsKIAotICAgIHJldHVybiBzdHJpbmcudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW50ZXJuYWxzOjpz
ZXRQYWdlRGVmZXJzTG9hZGluZyhib29sIGRlZmVyc0xvYWRpbmcpCkBAIC0zOTE4LDcgKzM5Mjgs
OSBAQCBFeGNlcHRpb25PcjxTdHJpbmc+IEludGVybmFsczo6c2Nyb2xsU25hcE9mZnNldHMoRWxl
bWVudCYgZWxlbWVudCkKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuIFdURk1vdmUoKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAKaW5k
ZXggZTVhNmNmZS4uZjRhM2NlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9N
b2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9j
a1BhZ2VPdmVybGF5Q2xpZW50LmNwcApAQCAtOTgsNyArOTgsMTAgQEAgdm9pZCBNb2NrUGFnZU92
ZXJsYXlDbGllbnQ6OmRyYXdSZWN0KFBhZ2VPdmVybGF5JiBvdmVybGF5LCBHcmFwaGljc0NvbnRl
eHQmIGNvbnQKICAgICBtZXNzYWdlLmFwcGVuZExpdGVyYWwoIiwgIik7CiAgICAgbWVzc2FnZS5h
cHBlbmROdW1iZXIoZGlydHlSZWN0LmhlaWdodCgpKTsKICAgICBtZXNzYWdlLmFwcGVuZExpdGVy
YWwoIikiKTsKLSAgICBvdmVybGF5LnBhZ2UoKS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKS0+YWRk
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6RGVidWcs
IG1lc3NhZ2UudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWVzc2FnZS50b1N0
cmluZygpKQorICAgICAgICBvdmVybGF5LnBhZ2UoKS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKS0+
YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6RGVi
dWcsICpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIEdyYXBoaWNz
Q29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKIApAQCAtMTIzLDcgKzEyNiwx
MCBAQCBib29sIE1vY2tQYWdlT3ZlcmxheUNsaWVudDo6bW91c2VFdmVudChQYWdlT3ZlcmxheSYg
b3ZlcmxheSwgY29uc3QgUGxhdGZvcm1Nb3VzZQogICAgIG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgi
LCAiKTsKICAgICBtZXNzYWdlLmFwcGVuZE51bWJlcihldmVudC5wb3NpdGlvbigpLnkoKSk7CiAg
ICAgbWVzc2FnZS5hcHBlbmRMaXRlcmFsKCIpIik7Ci0gICAgb3ZlcmxheS5wYWdlKCktPm1haW5G
cmFtZSgpLmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVy
LCBNZXNzYWdlTGV2ZWw6OkRlYnVnLCBtZXNzYWdlLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IG1lc3NhZ2UudG9TdHJpbmcoKSkKKyAgICAgICAgb3ZlcmxheS5wYWdlKCktPm1h
aW5GcmFtZSgpLmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90
aGVyLCBNZXNzYWdlTGV2ZWw6OkRlYnVnLCAqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENS
QVNIKCk7CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclNjcmlwdExvYWRlci5jcHAKaW5kZXggNWIzNDBmZi4uNDRlNGUyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcApAQCAtMjAyLDcgKzIw
Miw5IEBAIHZvaWQgV29ya2VyU2NyaXB0TG9hZGVyOjpub3RpZnlFcnJvcigpCiAKIFN0cmluZyBX
b3JrZXJTY3JpcHRMb2FkZXI6OnNjcmlwdCgpCiB7Ci0gICAgcmV0dXJuIG1fc2NyaXB0LnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbV9zY3JpcHQudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBXb3JrZXJTY3JpcHRM
b2FkZXI6Om5vdGlmeUZpbmlzaGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9Y
TUxFcnJvcnMuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEVycm9ycy5jcHAKaW5kZXggYjE0
MzJkMS4uMTUzMTlmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEVycm9ycy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEVycm9ycy5jcHAKQEAgLTE0OCw4ICsxNDgs
MTEgQEAgdm9pZCBYTUxFcnJvcnM6Omluc2VydEVycm9yTWVzc2FnZUJsb2NrKCkKICAgICAgICAg
ZG9jdW1lbnRFbGVtZW50ID0gV1RGTW92ZShib2R5KTsKICAgICB9CiAKLSAgICBTdHJpbmcgZXJy
b3JNZXNzYWdlcyA9IG1fZXJyb3JNZXNzYWdlcy50b1N0cmluZygpOwotICAgIGF1dG8gcmVwb3J0
RWxlbWVudCA9IGNyZWF0ZVhIVE1MUGFyc2VyRXJyb3JIZWFkZXIobV9kb2N1bWVudCwgZXJyb3JN
ZXNzYWdlcyk7CisgICAgYXV0byByZXBvcnRFbGVtZW50ID0gY3JlYXRlWEhUTUxQYXJzZXJFcnJv
ckhlYWRlcihtX2RvY3VtZW50LCBbJl0gKCkgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBt
X2Vycm9yTWVzc2FnZXMudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgICAgICBDUkFTSCgpOworICAgIH0oKSk7CiAKICNpZiBFTkFCTEUoWFNMVCkKICAgICBpZiAo
bV9kb2N1bWVudC50cmFuc2Zvcm1Tb3VyY2VEb2N1bWVudCgpKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0LmNwcAppbmRleCAxOWU1YWU0Li43NmI5ZmQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTE5NSw3ICsxOTUsMTAgQEAgRXhjZXB0aW9uT3I8RG9j
dW1lbnQqPiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VYTUwoKQogICAgICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudCA9IFhNTERvY3VtZW50OjpjcmVhdGUo
MCwgbV91cmwpOwogICAgICAgICAgICAgLy8gRklYTUU6IFNldCBMYXN0LU1vZGlmaWVkLgotICAg
ICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50LT5zZXRDb250ZW50KG1fcmVzcG9uc2VCdWlsZGVy
LnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IG1fcmVzcG9uc2VCdWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKQorICAgICAg
ICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudC0+c2V0Q29udGVudCgqc3RyaW5nKTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgbV9yZXNw
b25zZURvY3VtZW50LT5zZXRDb250ZXh0RG9jdW1lbnQoZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkpKTsKICAgICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudC0+
c2V0U2VjdXJpdHlPcmlnaW5Qb2xpY3koc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZWN1cml0
eU9yaWdpblBvbGljeSgpKTsKICAgICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudC0+b3ZlcnJp
ZGVNSU1FVHlwZShtaW1lVHlwZSk7CkBAIC04MTcsMTQgKzgyMCwyMCBAQCBTdHJpbmcgWE1MSHR0
cFJlcXVlc3Q6OmdldEFsbFJlc3BvbnNlSGVhZGVycygpIGNvbnN0CiAgICAgICAgICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIjogIik7CiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZChoZWFkZXIudmFsdWUpOwogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRM
aXRlcmFsKCJcclxuIik7Ci0gICAgICAgICAgICBoZWFkZXJzLnVuY2hlY2tlZEFwcGVuZChzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIGhlYWRlcnMudW5jaGVja2Vk
QXBwZW5kKCpzdHJpbmcpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNI
KCk7CiAgICAgICAgIH0KICAgICAgICAgc3RkOjpzb3J0KGhlYWRlcnMuYmVnaW4oKSwgaGVhZGVy
cy5lbmQoKSwgV1RGOjpjb2RlUG9pbnRDb21wYXJlTGVzc1RoYW4pOwogCiAgICAgICAgIFN0cmlu
Z0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsKICAgICAgICAgZm9yIChhdXRvJiBoZWFkZXIgOiBoZWFk
ZXJzKQogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoaGVhZGVyKTsKLSAgICAgICAg
bV9hbGxSZXNwb25zZUhlYWRlcnMgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAg
IG1fYWxsUmVzcG9uc2VIZWFkZXJzID0gKnN0cmluZzsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgQ1JBU0goKTsKICAgICB9CiAKICAgICByZXR1cm4gbV9hbGxSZXNwb25zZUhlYWRlcnM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCmluZGV4IDFlZWMxNTguLjUzYjRmODcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCkBAIC04Nyw3ICs4NywxMiBAQCBwdWJsaWM6CiAg
ICAgU3RyaW5nIGdldEFsbFJlc3BvbnNlSGVhZGVycygpIGNvbnN0OwogICAgIFN0cmluZyBnZXRS
ZXNwb25zZUhlYWRlcihjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0OwogICAgIEV4Y2VwdGlvbk9y
PE93bmVkU3RyaW5nPiByZXNwb25zZVRleHQoKTsKLSAgICBTdHJpbmcgcmVzcG9uc2VUZXh0SWdu
b3JpbmdSZXNwb25zZVR5cGUoKSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNlQnVpbGRlci50b1N0
cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsgfQorICAgIFN0cmluZyByZXNwb25zZVRleHRJZ25vcmlu
Z1Jlc3BvbnNlVHlwZSgpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBt
X3Jlc3BvbnNlQnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSkKKyAgICAgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOworICAgIH0KICAgICBTdHJpbmcgcmVz
cG9uc2VNSU1FVHlwZSgpIGNvbnN0OwogCiAgICAgRG9jdW1lbnQqIG9wdGlvbmFsUmVzcG9uc2VY
TUwoKSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNlRG9jdW1lbnQuZ2V0KCk7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS94bWwvWFBhdGhGdW5jdGlvbnMuY3BwCmluZGV4IDczNTM0YTQuLmY3ZGNhOWFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhGdW5jdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YUGF0aEZ1bmN0aW9ucy5jcHAKQEAgLTMwOCw5ICszMDgsMTEgQEAgc3RhdGlj
IEF0b21pY1N0cmluZyBhdG9taWNTdWJzdHJpbmcoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgdW5z
aWduZWQgc3RhcnQsIHVuc2kKIHsKICAgICBBU1NFUlQoc3RhcnQgPD0gYnVpbGRlci5sZW5ndGgo
KSk7CiAgICAgQVNTRVJUKGxlbmd0aCA8PSBidWlsZGVyLmxlbmd0aCgpIC0gc3RhcnQpOworICAg
IGlmIChidWlsZGVyLmZhaWxlZCgpKQorICAgICAgICBDUkFTSCgpOwogICAgIGlmIChidWlsZGVy
LmlzOEJpdCgpKQotICAgICAgICByZXR1cm4gQXRvbWljU3RyaW5nKGJ1aWxkZXIuY2hhcmFjdGVy
czgoKSArIHN0YXJ0LCBsZW5ndGgpOwotICAgIHJldHVybiBBdG9taWNTdHJpbmcoYnVpbGRlci5j
aGFyYWN0ZXJzMTYoKSArIHN0YXJ0LCBsZW5ndGgpOworICAgICAgICByZXR1cm4gQXRvbWljU3Ry
aW5nKCpidWlsZGVyLmNoYXJhY3RlcnM4KCkgKyBzdGFydCwgbGVuZ3RoKTsKKyAgICByZXR1cm4g
QXRvbWljU3RyaW5nKCpidWlsZGVyLmNoYXJhY3RlcnMxNigpICsgc3RhcnQsIGxlbmd0aCk7CiB9
CiAKIFZhbHVlIEZ1bklkOjpldmFsdWF0ZSgpIGNvbnN0CkBAIC0zMzQsMTQgKzMzNiwxNyBAQCBW
YWx1ZSBGdW5JZDo6ZXZhbHVhdGUoKSBjb25zdAogICAgIHVuc2lnbmVkIHN0YXJ0UG9zID0gMDsK
ICAgICB1bnNpZ25lZCBsZW5ndGggPSBpZExpc3QubGVuZ3RoKCk7CiAgICAgd2hpbGUgKHRydWUp
IHsKLSAgICAgICAgd2hpbGUgKHN0YXJ0UG9zIDwgbGVuZ3RoICYmIGlzV2hpdGVzcGFjZShpZExp
c3Rbc3RhcnRQb3NdKSkKKyAgICAgICAgaWYgKGlkTGlzdC5mYWlsZWQoKSkKKyAgICAgICAgICAg
IENSQVNIKCk7CisKKyAgICAgICAgd2hpbGUgKHN0YXJ0UG9zIDwgbGVuZ3RoICYmIGlzV2hpdGVz
cGFjZSgqaWRMaXN0W3N0YXJ0UG9zXSkpCiAgICAgICAgICAgICArK3N0YXJ0UG9zOwogICAgICAg
ICAKICAgICAgICAgaWYgKHN0YXJ0UG9zID09IGxlbmd0aCkKICAgICAgICAgICAgIGJyZWFrOwog
CiAgICAgICAgIHNpemVfdCBlbmRQb3MgPSBzdGFydFBvczsKLSAgICAgICAgd2hpbGUgKGVuZFBv
cyA8IGxlbmd0aCAmJiAhaXNXaGl0ZXNwYWNlKGlkTGlzdFtlbmRQb3NdKSkKKyAgICAgICAgd2hp
bGUgKGVuZFBvcyA8IGxlbmd0aCAmJiAhaXNXaGl0ZXNwYWNlKCppZExpc3RbZW5kUG9zXSkpCiAg
ICAgICAgICAgICArK2VuZFBvczsKIAogICAgICAgICAvLyBJZiB0aGVyZSBhcmUgc2V2ZXJhbCBu
b2RlcyB3aXRoIHRoZSBzYW1lIGlkLCBpZCgpIHNob3VsZCByZXR1cm4gdGhlIGZpcnN0IG9uZS4K
QEAgLTQzNyw3ICs0NDIsOSBAQCBWYWx1ZSBGdW5Db25jYXQ6OmV2YWx1YXRlKCkgY29uc3QKICAg
ICAgICAgcmVzdWx0LmFwcGVuZChzdHIpOwogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogVmFsdWUgRnVuU3RhcnRzV2l0
aDo6ZXZhbHVhdGUoKSBjb25zdApAQCAtNTU2LDcgKzU2Myw5IEBAIFZhbHVlIEZ1blRyYW5zbGF0
ZTo6ZXZhbHVhdGUoKSBjb25zdAogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzM1tpMl0pOwog
ICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogVmFsdWUgRnVuQm9vbGVhbjo6ZXZhbHVhdGUoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAKaW5kZXggNjZhZDE1Zi4uOGU1ZTA1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwCkBAIC0x
OTcsMTIgKzE5NywxOCBAQCBzdGF0aWMgYm9vbCBzYXZlUmVzdWx0VG9TdHJpbmcoeG1sRG9jUHRy
IHJlc3VsdERvYywgeHNsdFN0eWxlc2hlZXRQdHIgc2hlZXQsIFN0cgogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICAvLyBXb3JrYXJvdW5kIGZvciA8aHR0cDovL2J1Z3ppbGxhLmdub21lLm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDk1NjY4PjogbGlieHNsdCBhcHBlbmRzIGFuIGV4dHJhIGxpbmUg
ZmVlZCB0byB0aGUgcmVzdWx0LgotICAgIGlmIChyZXN1bHRCdWlsZGVyLmxlbmd0aCgpID4gMCAm
JiByZXN1bHRCdWlsZGVyW3Jlc3VsdEJ1aWxkZXIubGVuZ3RoKCkgLSAxXSA9PSAnXG4nKQorICAg
IGlmIChyZXN1bHRCdWlsZGVyLmxlbmd0aCgpID4gMCkgeworICAgICAgICBpZiAocmVzdWx0QnVp
bGRlci5mYWlsZWQoKSkKKyAgICAgICAgICAgIENSQVNIKCk7CisgICAgICAgIGlmICgqcmVzdWx0
QnVpbGRlcltyZXN1bHRCdWlsZGVyLmxlbmd0aCgpIC0gMV0gPT0gJ1xuJykKICAgICAgICAgcmVz
dWx0QnVpbGRlci5yZXNpemUocmVzdWx0QnVpbGRlci5sZW5ndGgoKSAtIDEpOworICAgIH0KIAot
ICAgIHJlc3VsdFN0cmluZyA9IHJlc3VsdEJ1aWxkZXIudG9TdHJpbmcoKTsKLQotICAgIHJldHVy
biB0cnVlOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdEJ1aWxkZXIudG9TdHJpbmcoKSkg
eworICAgICAgICByZXN1bHRTdHJpbmcgPSAqc3RyaW5nOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIGNvbnN0IGNoYXIqKiB4c2x0UGFyYW1B
cnJheUZyb21QYXJhbWV0ZXJNYXAoWFNMVFByb2Nlc3Nvcjo6UGFyYW1ldGVyTWFwJiBwYXJhbWV0
ZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9DaGFyYWN0ZXJSZWZl
cmVuY2VQYXJzZXJJbmxpbmVzLmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL0NoYXJhY3Rl
clJlZmVyZW5jZVBhcnNlcklubGluZXMuaAppbmRleCA3Njg2MjY4Li42NzJiYWUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL0NoYXJhY3RlclJlZmVyZW5jZVBhcnNlcklu
bGluZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL0NoYXJhY3RlclJlZmVyZW5j
ZVBhcnNlcklubGluZXMuaApAQCAtMzIsNyArMzIsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBpbmxpbmUgdm9pZCB1bmNvbnN1bWVDaGFyYWN0ZXJzKFNlZ21lbnRlZFN0cmluZyYgc291cmNl
LCBTdHJpbmdCdWlsZGVyJiBjb25zdW1lZENoYXJhY3RlcnMpCiB7Ci0gICAgc291cmNlLnB1c2hC
YWNrKGNvbnN1bWVkQ2hhcmFjdGVycy50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBjb25zdW1lZENoYXJhY3RlcnMudG9TdHJpbmcoKSkKKyAgICAgICAgc291cmNlLnB1c2hCYWNr
KFdURk1vdmUoKnN0cmluZykpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdGVt
cGxhdGUgPHR5cGVuYW1lIFBhcnNlckZ1bmN0aW9ucz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJE
cml2ZXIvU2Vzc2lvbkhvc3QuY3BwIGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uSG9zdC5jcHAK
aW5kZXggZjE2NDkyOS4uYjFjY2NiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9TZXNz
aW9uSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uSG9zdC5jcHAKQEAgLTU1
LDcgKzU1LDEwIEBAIGxvbmcgU2Vzc2lvbkhvc3Q6OnNlbmRDb21tYW5kVG9CYWNrZW5kKGNvbnN0
IFN0cmluZyYgY29tbWFuZCwgUmVmUHRyPEpTT046Ok9iamVjCiAgICAgICAgIG1lc3NhZ2VCdWls
ZGVyLmFwcGVuZChwYXJhbWV0ZXJzLT50b0pTT05TdHJpbmcoKSk7CiAgICAgfQogICAgIG1lc3Nh
Z2VCdWlsZGVyLmFwcGVuZCgnfScpOwotICAgIHNlbmRNZXNzYWdlVG9CYWNrZW5kKHNlcXVlbmNl
SUQsIG1lc3NhZ2VCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1l
c3NhZ2VCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHNlbmRNZXNzYWdlVG9CYWNrZW5kKHNl
cXVlbmNlSUQsICpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIHJl
dHVybiBzZXF1ZW5jZUlEOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4YTFkZDE3Li44OGI5NmJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDUyIEBACisyMDE4LTA0LTI2ICBKRiBCYXN0aWVuICA8amZiYXN0aWVuQGFw
cGxlLmNvbT4KKworICAgICAgICBTdHJpbmdCdWlsZGVyIGlzIGZhbGxpYmxlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUwNDgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZWFjaCBTdHJpbmdCdWlsZGVy
IHRoYXQgaXQgaXMgZmFsbGlibGUKKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL0Nh
Y2hlU3RvcmFnZUVuZ2luZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6RW5n
aW5lOjpyZXByZXNlbnRhdGlvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpDYWNoZTo6ZHVt
cENvbnRlbnRzVG9GaWxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGVLZXkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OktleTo6aGFzaEFz
U3RyaW5nKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJl
TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYXB0dXJlOjpNYW5hZ2VyOjpo
YXNoVG9QYXRoKToKKyAgICAgICAgKiBTaGFyZWQvRGF0YWJhc2VzL0luZGV4ZWREQi9JREJVdGls
aXRpZXMuY3BwOgorICAgICAgICAoV2ViS2l0Ojp1bmlxdWVEYXRhYmFzZUlkZW50aWZpZXIpOgor
ICAgICAgICAqIFNoYXJlZC9HYW1lcGFkL0dhbWVwYWREYXRhLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6R2FtZXBhZERhdGE6OmxvZ2dpbmdTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFNoYXJlZC9Q
bHVnaW5zL05ldHNjYXBlL3VuaXgvTmV0c2NhcGVQbHVnaW5Nb2R1bGVVbml4LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5Nb2R1bGU6OmJ1aWxkTUlNRURlc2NyaXB0aW9uKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYk1lbW9yeVNhbXBsZXI6OmFwcGVuZEN1cnJlbnRNZW1vcnlVc2FnZVRvRmlsZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9BUElVc2VyU2NyaXB0LmNwcDoKKyAgICAgICAgKEFQSTo6VXNl
clNjcmlwdDo6Z2VuZXJhdGVVbmlxdWVVUkwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJ
VXNlclN0eWxlU2hlZXQuY3BwOgorICAgICAgICAoQVBJOjpVc2VyU3R5bGVTaGVldDo6Z2VuZXJh
dGVVbmlxdWVVUkwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlNuYXBz
aG90UmVtb3ZhbFRyYWNrZXI6OmV2ZW50c0Rlc2NyaXB0aW9uKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQmFja0Zvcndh
cmRMaXN0Ojpsb2dnaW5nU3RyaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6ZGlkUmVjZWl2ZUludmFs
aWRNZXNzYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZW1vdmVEYXRhUmVj
b3Jkcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6
dXBkYXRlQ29va2llUGFydGl0aW9uaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeS5jcHA6CisgICAgICAgIChXZWJLaXQ6OnN1Ym1pdFRv
cExpc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJy
b3dzZXJGdW5jcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNhcGl0YWxpemVSRkM4MjJIZWFkZXJG
aWVsZE5hbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6YnVpbGRIVFRQSGVhZGVycyk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OmNvbnRl
bnRzQXNTdHJpbmcgY29uc3QpOgorCiAyMDE4LTA0LTI1ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlA
YXBwbGUuY29tPgogCiAgICAgICAgIGRsb3BlbiB0aGUgYnVuZGxlJ3MgZXhlY3V0YWJsZSBiZWZv
cmUgY2FsbGluZyAtW05TQnVuZGxlIGxvYWRdIHNpbmNlIHRoYXQgd2lsbCBhbHNvIGRvIGEgYnVu
Y2ggb2Ygb3RoZXIgdGhpbmdzIHdlIGRvbid0IG5lZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcAppbmRleCA0
NWM0N2ExLi44ZDc5NTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwCkBAIC01MjQsNyArNTI0LDkgQEAg
U3RyaW5nIEVuZ2luZTo6cmVwcmVzZW50YXRpb24oKQogICAgICAgICBidWlsZGVyLmFwcGVuZCgi
fSIpOwogICAgIH0KICAgICBidWlsZGVyLmFwcGVuZCgiXX0iKTsKLSAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgQ2FjaGVTdG9yYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZS5jcHAKaW5kZXggNzNhMjVmNC4uMGNhN2Y5NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcApAQCAt
NTcwLDEwICs1NzAsMTMgQEAgdm9pZCBDYWNoZTo6ZHVtcENvbnRlbnRzVG9GaWxlKCkKICAgICAg
ICAgICAgIGVwaWxvZ3VlLmFwcGVuZE51bWJlcih0b3RhbHMuY291bnQgPyB0b3RhbHMud29ydGgg
LyB0b3RhbHMuY291bnQgOiAwKTsKICAgICAgICAgICAgIGVwaWxvZ3VlLmFwcGVuZExpdGVyYWwo
IlxuIik7CiAgICAgICAgICAgICBlcGlsb2d1ZS5hcHBlbmRMaXRlcmFsKCJ9XG59XG4iKTsKLSAg
ICAgICAgICAgIGF1dG8gd3JpdGVEYXRhID0gZXBpbG9ndWUudG9TdHJpbmcoKS51dGY4KCk7Ci0g
ICAgICAgICAgICB3cml0ZVRvRmlsZShmZCwgd3JpdGVEYXRhLmRhdGEoKSwgd3JpdGVEYXRhLmxl
bmd0aCgpKTsKLSAgICAgICAgICAgIGNsb3NlRmlsZShmZCk7Ci0gICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBlcGlsb2d1ZS50b1N0cmluZygpKSB7Cisg
ICAgICAgICAgICAgICAgYXV0byB3cml0ZURhdGEgPSBzdHJpbmctPnV0ZjgoKTsKKyAgICAgICAg
ICAgICAgICB3cml0ZVRvRmlsZShmZCwgd3JpdGVEYXRhLmRhdGEoKSwgd3JpdGVEYXRhLmxlbmd0
aCgpKTsKKyAgICAgICAgICAgICAgICBjbG9zZUZpbGUoZmQpOworICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KICAg
ICAgICAgYXV0byBlbnRyeSA9IEVudHJ5OjpkZWNvZGVTdG9yYWdlUmVjb3JkKCpyZWNvcmQpOwog
ICAgICAgICBpZiAoIWVudHJ5KQpAQCAtNTg1LDggKzU4OCwxMSBAQCB2b2lkIENhY2hlOjpkdW1w
Q29udGVudHNUb0ZpbGUoKQogICAgICAgICBTdHJpbmdCdWlsZGVyIGpzb247CiAgICAgICAgIGVu
dHJ5LT5hc0pTT04oanNvbiwgaW5mbyk7CiAgICAgICAgIGpzb24uYXBwZW5kTGl0ZXJhbCgiLFxu
Iik7Ci0gICAgICAgIGF1dG8gd3JpdGVEYXRhID0ganNvbi50b1N0cmluZygpLnV0ZjgoKTsKLSAg
ICAgICAgd3JpdGVUb0ZpbGUoZmQsIHdyaXRlRGF0YS5kYXRhKCksIHdyaXRlRGF0YS5sZW5ndGgo
KSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGpzb24udG9TdHJpbmcoKSkgeworICAgICAg
ICAgICAgYXV0byB3cml0ZURhdGEgPSBzdHJpbmctPnV0ZjgoKTsKKyAgICAgICAgICAgIHdyaXRl
VG9GaWxlKGZkLCB3cml0ZURhdGEuZGF0YSgpLCB3cml0ZURhdGEubGVuZ3RoKCkpOworICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlS2V5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlS2V5LmNwcApp
bmRleCA4ZmE4MWQxLi4wYjQyMmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUtleS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVLZXkuY3BwCkBAIC0xMzQsNyArMTM0LDkgQEAg
U3RyaW5nIEtleTo6aGFzaEFzU3RyaW5nKGNvbnN0IEhhc2hUeXBlJiBoYXNoKQogICAgICAgICBi
dWlsZGVyLmFwcGVuZCh1cHBlck5pYmJsZVRvQVNDSUlIZXhEaWdpdChieXRlKSk7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKGxvd2VyTmliYmxlVG9BU0NJSUhleERpZ2l0KGJ5dGUpKTsKICAgICB9
Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4gYm9vbCBoZXhEaWdpdHNUb0hhc2go
Q2hhclR5cGUqIGNoYXJhY3RlcnMsIEtleTo6SGFzaFR5cGUmIGhhc2gpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVy
ZU1hbmFnZXIuY3BwCmluZGV4IDU2MTNiZTguLjM0NzNlNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZU1hbmFnZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZU1h
bmFnZXIuY3BwCkBAIC00MTUsOSArNDE1LDkgQEAgU3RyaW5nIE1hbmFnZXI6Omhhc2hUb1BhdGgo
Y29uc3QgU3RyaW5nJiBoYXNoKQogCiAgICAgYXV0byBwYXRoID0gcGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KG1fcmVjb3JkUmVwbGF5Q2FjaGVMb2NhdGlvbiwga0Rpck5hbWVSZXNvdXJjZXMpOwog
ICAgIHBhdGggPSBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQocGF0aCwgaGFzaEhlYWQpOwotICAg
IHBhdGggPSBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQocGF0aCwgZmlsZU5hbWUudG9TdHJpbmco
KSk7Ci0KLSAgICByZXR1cm4gcGF0aDsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBmaWxlTmFtZS50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHBhdGgs
ICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBNYW5hZ2VyOjp1cmxJZGVudGlm
eWluZ0NvbW1vbkRvbWFpbihjb25zdCBXZWJDb3JlOjpVUkwmIHVybCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIvSURCVXRpbGl0aWVzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIvSURCVXRpbGl0aWVzLmNw
cAppbmRleCA5ZWM3NmZmLi43YzFjMjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9EYXRhYmFzZXMvSW5kZXhlZERCL0lEQlV0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvRGF0YWJhc2VzL0luZGV4ZWREQi9JREJVdGlsaXRpZXMuY3BwCkBAIC01Miw3ICs1
Miw5IEBAIFN0cmluZyB1bmlxdWVEYXRhYmFzZUlkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBkYXRh
YmFzZU5hbWUsIGNvbnN0IFdlYkNvcmU6OlNlY3VyCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQo
J18nKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChkYXRhYmFzZU5hbWUpOwogCi0gICAgcmV0
dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9H
YW1lcGFkL0dhbWVwYWREYXRhLmNwcAppbmRleCA5MDVkODI3Li4xZmJkN2QxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9HYW1lcGFkL0dhbWVwYWREYXRhLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9HYW1lcGFkL0dhbWVwYWREYXRhLmNwcApAQCAtMTExLDcgKzExMSw5
IEBAIFN0cmluZyBHYW1lcGFkRGF0YTo6bG9nZ2luZ1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kTnVtYmVyKG1fYnV0dG9uVmFsdWVzW2ldKTsKICAgICB9CiAKLSAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL3Vu
aXgvTmV0c2NhcGVQbHVnaW5Nb2R1bGVVbml4LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Bs
dWdpbnMvTmV0c2NhcGUvdW5peC9OZXRzY2FwZVBsdWdpbk1vZHVsZVVuaXguY3BwCmluZGV4IGY5
ZWIwNmUuLjk3MmRjYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BsdWdpbnMv
TmV0c2NhcGUvdW5peC9OZXRzY2FwZVBsdWdpbk1vZHVsZVVuaXguY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvdW5peC9OZXRzY2FwZVBsdWdpbk1vZHVsZVVu
aXguY3BwCkBAIC0xMjAsNyArMTIwLDkgQEAgU3RyaW5nIE5ldHNjYXBlUGx1Z2luTW9kdWxlOjpi
dWlsZE1JTUVEZXNjcmlwdGlvbihjb25zdCBWZWN0b3I8TWltZUNsYXNzSW5mbz4mIG0KICAgICAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKCc7Jyk7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgTmV0c2NhcGVQ
bHVnaW5Nb2R1bGU6OmdldFBsdWdpbkluZm9Gb3JMb2FkZWRQbHVnaW4oUmF3UGx1Z2luTWV0YURh
dGEmIG1ldGFEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTWVtb3J5
U2FtcGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcApp
bmRleCA5Mjc3MTg5Li42NzU4YWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJNZW1vcnlTYW1wbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNZW1vcnlT
YW1wbGVyLmNwcApAQCAtMTgxLDggKzE4MSwxMSBAQCB2b2lkIFdlYk1lbW9yeVNhbXBsZXI6OmFw
cGVuZEN1cnJlbnRNZW1vcnlVc2FnZVRvRmlsZShGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYQog
ICAgIH0KICAgICBzdGF0U3RyaW5nLmFwcGVuZCgnXG4nKTsKIAotICAgIENTdHJpbmcgdXRmOFN0
cmluZyA9IHN0YXRTdHJpbmcudG9TdHJpbmcoKS51dGY4KCk7Ci0gICAgRmlsZVN5c3RlbTo6d3Jp
dGVUb0ZpbGUobV9zYW1wbGVMb2dGaWxlLCB1dGY4U3RyaW5nLmRhdGEoKSwgdXRmOFN0cmluZy5s
ZW5ndGgoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RhdFN0cmluZy50b1N0cmluZygpKSB7
CisgICAgICAgIENTdHJpbmcgdXRmOFN0cmluZyA9IHN0cmluZy0+dXRmOCgpOworICAgICAgICBG
aWxlU3lzdGVtOjp3cml0ZVRvRmlsZShtX3NhbXBsZUxvZ0ZpbGUsIHV0ZjhTdHJpbmcuZGF0YSgp
LCB1dGY4U3RyaW5nLmxlbmd0aCgpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJTY3Jp
cHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJTY3JpcHQuY3BwCmlu
ZGV4IDc1ODRlNjMuLmE5MzliNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElVc2VyU2NyaXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJVXNlclNjcmlwdC5jcHAKQEAgLTM3LDcgKzM3LDkgQEAgV2ViQ29yZTo6VVJMIFVzZXJTY3Jp
cHQ6OmdlbmVyYXRlVW5pcXVlVVJMKCkKICAgICBTdHJpbmdCdWlsZGVyIHVybFN0cmluZ0J1aWxk
ZXI7CiAgICAgdXJsU3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJ1c2VyLXNjcmlwdDoiKTsK
ICAgICB1cmxTdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcigrK2lkZW50aWZpZXIpOwotICAgIHJl
dHVybiB7IHsgfSwgdXJsU3RyaW5nQnVpbGRlci50b1N0cmluZygpIH07CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gdXJsU3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4geyB7
IH0sICpzdHJpbmcgfTsKKyAgICBDUkFTSCgpOwogfQogCiBVc2VyU2NyaXB0OjpVc2VyU2NyaXB0
KFdlYkNvcmU6OlVzZXJTY3JpcHQgdXNlclNjcmlwdCwgQVBJOjpVc2VyQ29udGVudFdvcmxkJiB3
b3JsZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVc2VyU3R5
bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVXNlclN0eWxlU2hl
ZXQuY3BwCmluZGV4IDFkNTk1YmIuLjYzYWMwZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElVc2VyU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVVzZXJTdHlsZVNoZWV0LmNwcApAQCAtMzcsNyArMzcsOSBAQCBXZWJD
b3JlOjpVUkwgVXNlclN0eWxlU2hlZXQ6OmdlbmVyYXRlVW5pcXVlVVJMKCkKICAgICBTdHJpbmdC
dWlsZGVyIHVybFN0cmluZ0J1aWxkZXI7CiAgICAgdXJsU3RyaW5nQnVpbGRlci5hcHBlbmRMaXRl
cmFsKCJ1c2VyLXN0eWxlLXNoZWV0OiIpOwogICAgIHVybFN0cmluZ0J1aWxkZXIuYXBwZW5kTnVt
YmVyKCsraWRlbnRpZmllcik7Ci0gICAgcmV0dXJuIHsgeyB9LCB1cmxTdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCkgfTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB1cmxTdHJpbmdCdWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiB7IHsgfSwgKnN0cmluZyB9OworICAgIENSQVNIKCk7CiB9
CiAKIFVzZXJTdHlsZVNoZWV0OjpVc2VyU3R5bGVTaGVldChXZWJDb3JlOjpVc2VyU3R5bGVTaGVl
dCB1c2VyU3R5bGVTaGVldCwgQVBJOjpVc2VyQ29udGVudFdvcmxkJiB3b3JsZCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIu
Y3BwCmluZGV4IDhjMjFjMjQuLjkxNmRkNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcApAQCAtMjMyLDggKzIz
MiwxMCBAQCBTdHJpbmcgVmlld0dlc3R1cmVDb250cm9sbGVyOjpTbmFwc2hvdFJlbW92YWxUcmFj
a2VyOjpldmVudHNEZXNjcmlwdGlvbihFdmVudHMgZQogCiAgICAgaWYgKGV2ZW50ICYgVmlld0dl
c3R1cmVDb250cm9sbGVyOjpTbmFwc2hvdFJlbW92YWxUcmFja2VyOjpTY3JvbGxQb3NpdGlvblJl
c3RvcmF0aW9uKQogICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmQoIlNjcm9sbFBvc2l0aW9uUmVz
dG9yYXRpb24gIik7Ci0gICAgCi0gICAgcmV0dXJuIGRlc2NyaXB0aW9uLnRvU3RyaW5nKCk7CisK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBkZXNjcmlwdGlvbi50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwCmluZGV4IDYwMDZhMDIuLjEyOGY1NjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcApAQCAt
NDkzLDcgKzQ5Myw5IEBAIGNvbnN0IGNoYXIqIFdlYkJhY2tGb3J3YXJkTGlzdDo6bG9nZ2luZ1N0
cmluZygpCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG1fZW50cmllc1tpXS0+bG9nZ2luZ1N0cmlu
ZygpKTsKICAgICB9CiAKLSAgICByZXR1cm4gZGVidWdTdHJpbmcoIlxuIiwgYnVpbGRlci50b1N0
cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiBkZWJ1Z1N0cmluZygiXG4iLCAqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQog
I2VuZGlmIC8vICFMT0dfRElTQUJMRUQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwCmluZGV4IDdjMDAwYWIuLmUwM2UwZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTcxMCw3ICs3MTAsMTAgQEAgdm9pZCBXZWJQ
cm9jZXNzUG9vbDo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKGNvbnN0IElQQzo6U3RyaW5nUmVm
ZXJlbmNlJiBtZXNzYWcKICAgICBtZXNzYWdlTmFtZVN0cmluZ0J1aWxkZXIuYXBwZW5kKCcuJyk7
CiAgICAgbWVzc2FnZU5hbWVTdHJpbmdCdWlsZGVyLmFwcGVuZChtZXNzYWdlTmFtZS5kYXRhKCks
IG1lc3NhZ2VOYW1lLnNpemUoKSk7CiAKLSAgICBzX2ludmFsaWRNZXNzYWdlQ2FsbGJhY2sodG9B
UEkoQVBJOjpTdHJpbmc6OmNyZWF0ZShtZXNzYWdlTmFtZVN0cmluZ0J1aWxkZXIudG9TdHJpbmco
KSkucHRyKCkpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtZXNzYWdlTmFtZVN0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgc19pbnZhbGlkTWVzc2FnZUNhbGxiYWNrKHRvQVBJKEFQ
STo6U3RyaW5nOjpjcmVhdGUoKnN0cmluZykucHRyKCkpKTsKKyAgICBlbHNlCisgICAgICAgIENS
QVNIKCk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnByb2Nlc3NEaWRDYWNoZVBhZ2UoV2Vi
UHJvY2Vzc1Byb3h5KiBwcm9jZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKaW5kZXggNDE1NmQ4My4uZWYwOWRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xNzAsNyArMTcwLDEwIEBAIHZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0
aW9ucyYgbGF1bmNoT3B0CiAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VTdHJpbmcuYXBwZW5kKCcs
Jyk7CiAgICAgICAgICAgICBsYW5ndWFnZVN0cmluZy5hcHBlbmQob3ZlcnJpZGVMYW5ndWFnZXNb
aV0pOwogICAgICAgICB9Ci0gICAgICAgIGxhdW5jaE9wdGlvbnMuZXh0cmFJbml0aWFsaXphdGlv
bkRhdGEuYWRkKEFTQ0lJTGl0ZXJhbCgiT3ZlcnJpZGVMYW5ndWFnZXMiKSwgbGFuZ3VhZ2VTdHJp
bmcudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGxhbmd1YWdlU3RyaW5n
LnRvU3RyaW5nKCkpCisgICAgICAgICAgICBsYXVuY2hPcHRpb25zLmV4dHJhSW5pdGlhbGl6YXRp
b25EYXRhLmFkZChBU0NJSUxpdGVyYWwoIk92ZXJyaWRlTGFuZ3VhZ2VzIiksICpzdHJpbmcpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIGxhdW5jaE9w
dGlvbnMubm9uVmFsaWRJbmplY3RlZENvZGVBbGxvd2VkID0gc2hvdWxkQWxsb3dOb25WYWxpZElu
amVjdGVkQ29kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKaW5kZXggN2ZhODkxMC4uNWQ5Yjc2NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuY3BwCkBAIC0yMjcsNyArMjI3LDEwIEBAIHZvaWQgV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZW1vdmVEYXRhUmVjb3JkcyhDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+CiAgICAgICAgICAgICBhcHBlbmRXaXRoRGVsaW1pdGVyKGRvbWFpbnNUb1JlbW92
ZURhdGFSZWNvcmRzRm9yQnVpbGRlciwgZG9tYWluLCBpc0ZpcnN0SXRlbSk7CiAgICAgICAgICAg
ICBpc0ZpcnN0SXRlbSA9IGZhbHNlOwogICAgICAgICB9Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lO
Rk8oUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnLCAiQWJvdXQgdG8gcmVtb3ZlIGRhdGEgcmVj
b3JkcyBmb3IgJXtwdWJsaWN9cy4iLCBkb21haW5zVG9SZW1vdmVEYXRhUmVjb3Jkc0ZvckJ1aWxk
ZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
ZG9tYWluc1RvUmVtb3ZlRGF0YVJlY29yZHNGb3JCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICBSRUxFQVNFX0xPR19JTkZPKFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1ZywgIkFib3V0
IHRvIHJlbW92ZSBkYXRhIHJlY29yZHMgZm9yICV7cHVibGljfXMuIiwgc3RyaW5nLT51dGY4KCku
ZGF0YSgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAjZW5k
aWYKIApAQCAtMTA0NCw3ICsxMDQ3LDEwIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjp1cGRhdGVDb29raWVQYXJ0aXRpb25pbmcoQ29tcGxldGlvbkhhbmRsZXI8CiAgICAg
ICAgICAgICAgICAgYXBwZW5kV2l0aERlbGltaXRlcihkb21haW5zVG9QYXJ0aXRpb25CdWlsZGVy
LCBkb21haW4sIGlzRmlyc3REb21haW4pOwogICAgICAgICAgICAgICAgIGlzRmlyc3REb21haW4g
PSBmYWxzZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnLCAiQWJvdXQgdG8gcGFydGl0aW9uIGNvb2tpZXMgaW4g
dGhpcmQtcGFydHkgY29udGV4dHMgZm9yICV7cHVibGljfXMuIiwgZG9tYWluc1RvUGFydGl0aW9u
QnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gZG9tYWluc1RvUGFydGl0aW9uQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAg
ICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnLCAiQWJv
dXQgdG8gcGFydGl0aW9uIGNvb2tpZXMgaW4gdGhpcmQtcGFydHkgY29udGV4dHMgZm9yICV7cHVi
bGljfXMuIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKCFkb21haW5zVG9C
bG9jay5pc0VtcHR5KCkpIHsKQEAgLTEwNTQsNyArMTA2MCwxMCBAQCB2b2lkIFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6dXBkYXRlQ29va2llUGFydGl0aW9uaW5nKENvbXBsZXRpb25I
YW5kbGVyPAogICAgICAgICAgICAgICAgIGFwcGVuZFdpdGhEZWxpbWl0ZXIoZG9tYWluc1RvQmxv
Y2tCdWlsZGVyLCBkb21haW4sIGlzRmlyc3REb21haW4pOwogICAgICAgICAgICAgICAgIGlzRmly
c3REb21haW4gPSBmYWxzZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFJFTEVBU0VfTE9H
X0lORk8oUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnLCAiQWJvdXQgdG8gYmxvY2sgY29va2ll
cyBpbiB0aGlyZC1wYXJ0eSBjb250ZXh0cyBmb3IgJXtwdWJsaWN9cy4iLCBkb21haW5zVG9CbG9j
a0J1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IGRvbWFpbnNUb0Jsb2NrQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0lORk8oUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnLCAiQWJvdXQg
dG8gYmxvY2sgY29va2llcyBpbiB0aGlyZC1wYXJ0eSBjb250ZXh0cyBmb3IgJXtwdWJsaWN9cy4i
LCBzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIENSQVNIKCk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoIWRvbWFpbnNUb05laXRoZXJQ
YXJ0aXRpb25Ob3JCbG9jay5pc0VtcHR5KCkpIHsKQEAgLTEwNjQsNyArMTA3MywxMCBAQCB2b2lk
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6dXBkYXRlQ29va2llUGFydGl0aW9uaW5n
KENvbXBsZXRpb25IYW5kbGVyPAogICAgICAgICAgICAgICAgIGFwcGVuZFdpdGhEZWxpbWl0ZXIo
ZG9tYWluc1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrQnVpbGRlciwgZG9tYWluLCBpc0ZpcnN0
RG9tYWluKTsKICAgICAgICAgICAgICAgICBpc0ZpcnN0RG9tYWluID0gZmFsc2U7CiAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEZWJ1ZywgIkFib3V0IHRvIG5laXRoZXIgcGFydGl0aW9uIG5vciBibG9jayBjb29raWVzIGlu
IHRoaXJkLXBhcnR5IGNvbnRleHRzIGZvciAle3B1YmxpY31zLiIsIGRvbWFpbnNUb05laXRoZXJQ
YXJ0aXRpb25Ob3JCbG9ja0J1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGRvbWFpbnNUb05laXRoZXJQYXJ0aXRpb25Ob3JCbG9j
a0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1ZywgIkFib3V0IHRvIG5laXRoZXIgcGFydGl0aW9uIG5v
ciBibG9jayBjb29raWVzIGluIHRoaXJkLXBhcnR5IGNvbnRleHRzIGZvciAle3B1YmxpY31zLiIs
IHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1l
dHJ5LmNwcAppbmRleCBiYjc0NDBjLi41MjBhYjc3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRy
eS5jcHAKQEAgLTE3OSwyMiArMTc5LDIzIEBAIHN0YXRpYyB2b2lkIHN1Ym1pdFRvcExpc3QodW5z
aWduZWQgbnVtYmVyT2ZSZXNvdXJjZXNGcm9tVGhlVG9wLCBjb25zdCBWZWN0b3I8UHJlCiAgICAg
U3RyaW5nQnVpbGRlciBwcmVhbWJsZUJ1aWxkZXI7CiAgICAgcHJlYW1ibGVCdWlsZGVyLmFwcGVu
ZExpdGVyYWwoInRvcCIpOwogICAgIHByZWFtYmxlQnVpbGRlci5hcHBlbmROdW1iZXIobnVtYmVy
T2ZSZXNvdXJjZXNGcm9tVGhlVG9wKTsKLSAgICBTdHJpbmcgZGVzY3JpcHRpb25QcmVhbWJsZSA9
IHByZWFtYmxlQnVpbGRlci50b1N0cmluZygpOwotICAgIAotICAgIHdlYlBhZ2VQcm94eS5sb2dE
aWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNl
TG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgZGVzY3JpcHRpb25QcmVhbWJsZSArICJQcmV2
YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uIiwKLSAgICAgICAgdG9wUHJldmFsZW50
UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbiwgc2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9nZ2Vk
VmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKLSAgICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0
aXN0aWNzVGVsZW1ldHJ5S2V5KCksIGRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiU3ViZnJhbWVVbmRl
clRvcEZyYW1lT3JpZ2lucyIsCi0gICAgICAgIHRvcFN1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdp
bnMsIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2FtcGxlOjpObyk7
Ci0gICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0
aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgpLCBkZXNj
cmlwdGlvblByZWFtYmxlICsgIlN1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbnMiLAotICAg
ICAgICB0b3BTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW5zLCBzaWduaWZpY2FudEZpZ3Vy
ZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOwotICAgIHdlYlBhZ2VQcm94eS5s
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291
cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgZGVzY3JpcHRpb25QcmVhbWJsZSArICJT
dWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvIiwKLSAgICAgICAgdG9wU3VicmVzb3VyY2VVbmlx
dWVSZWRpcmVjdHNUbywgc2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9nZ2VkVmFsdWVzLCBTaG91bGRT
YW1wbGU6Ok5vKTsKLSAgICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFs
dWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5
S2V5KCksIGRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiTnVtYmVyT2ZUaW1lc0RhdGFSZWNvcmRzUmVt
b3ZlZCIsCi0gICAgICAgIHRvcE51bWJlck9mVGltZXNEYXRhUmVjb3Jkc1JlbW92ZWQsIHNpZ25p
ZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2FtcGxlOjpObyk7Ci0gICAgd2Vi
UGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5n
S2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgpLCBkZXNjcmlwdGlvblBy
ZWFtYmxlICsgIk51bWJlck9mVGltZXNBY2Nlc3NlZEFzRmlyc3RQYXJ0eUR1ZVRvVXNlckludGVy
YWN0aW9uIiwKLSAgICAgICAgdG9wTnVtYmVyT2ZUaW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVl
VG9Vc2VySW50ZXJhY3Rpb24sIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hv
dWxkU2FtcGxlOjpObyk7Ci0gICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0
aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVt
ZXRyeUtleSgpLCBkZXNjcmlwdGlvblByZWFtYmxlICsgIk51bWJlck9mVGltZXNBY2Nlc3NlZEFz
Rmlyc3RQYXJ0eUR1ZVRvU3RvcmFnZUFjY2Vzc0FQSSIsCi0gICAgICAgIHRvcE51bWJlck9mVGlt
ZXNBY2Nlc3NlZEFzRmlyc3RQYXJ0eUR1ZVRvU3RvcmFnZUFjY2Vzc0FQSSwgc2lnbmlmaWNhbnRG
aWd1cmVzRm9yTG9nZ2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICBpZiAoYXV0byBk
ZXNjcmlwdGlvblByZWFtYmxlID0gcHJlYW1ibGVCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAg
ICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNM
b2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgpLCAqZGVzY3Jp
cHRpb25QcmVhbWJsZSArICJQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uIiwK
KyAgICAgICAgICAgIHRvcFByZXZhbGVudFJlc291cmNlc1dpdGhVc2VySW50ZXJhY3Rpb24sIHNp
Z25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2FtcGxlOjpObyk7CisgICAg
ICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgKmRlc2Ny
aXB0aW9uUHJlYW1ibGUgKyAiU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lucyIsCisgICAgICAg
ICAgICB0b3BTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5zLCBzaWduaWZpY2FudEZpZ3VyZXNG
b3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOworICAgICAgICB3ZWJQYWdlUHJveHku
bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNv
dXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCksICpkZXNjcmlwdGlvblByZWFtYmxlICsg
IlN1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbnMiLAorICAgICAgICAgICAgdG9wU3VicmVz
b3VyY2VVbmRlclRvcEZyYW1lT3JpZ2lucywgc2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9nZ2VkVmFs
dWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICAgICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1RlbGVtZXRyeUtleSgpLCAqZGVzY3JpcHRpb25QcmVhbWJsZSArICJTdWJyZXNvdXJj
ZVVuaXF1ZVJlZGlyZWN0c1RvIiwKKyAgICAgICAgICAgIHRvcFN1YnJlc291cmNlVW5pcXVlUmVk
aXJlY3RzVG8sIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2FtcGxl
OjpObyk7CisgICAgICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1
ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlL
ZXkoKSwgKmRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiTnVtYmVyT2ZUaW1lc0RhdGFSZWNvcmRzUmVt
b3ZlZCIsCisgICAgICAgICAgICB0b3BOdW1iZXJPZlRpbWVzRGF0YVJlY29yZHNSZW1vdmVkLCBz
aWduaWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOworICAg
ICAgICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCksICpkZXNj
cmlwdGlvblByZWFtYmxlICsgIk51bWJlck9mVGltZXNBY2Nlc3NlZEFzRmlyc3RQYXJ0eUR1ZVRv
VXNlckludGVyYWN0aW9uIiwKKyAgICAgICAgICAgIHRvcE51bWJlck9mVGltZXNBY2Nlc3NlZEFz
Rmlyc3RQYXJ0eUR1ZVRvVXNlckludGVyYWN0aW9uLCBzaWduaWZpY2FudEZpZ3VyZXNGb3JMb2dn
ZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOworICAgICAgICB3ZWJQYWdlUHJveHkubG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxv
YWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCksICpkZXNjcmlwdGlvblByZWFtYmxlICsgIk51bWJl
ck9mVGltZXNBY2Nlc3NlZEFzRmlyc3RQYXJ0eUR1ZVRvU3RvcmFnZUFjY2Vzc0FQSSIsCisgICAg
ICAgICAgICB0b3BOdW1iZXJPZlRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1N0b3JhZ2VB
Y2Nlc3NBUEksIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2FtcGxl
OjpObyk7CisgICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAgICAgCiBzdGF0aWMgdm9p
ZCBzdWJtaXRUb3BMaXN0cyhjb25zdCBWZWN0b3I8UHJldmFsZW50UmVzb3VyY2VUZWxlbWV0cnk+
JiBzb3J0ZWRQcmV2YWxlbnRSZXNvdXJjZXMsIGNvbnN0IFZlY3RvcjxQcmV2YWxlbnRSZXNvdXJj
ZVRlbGVtZXRyeT4mIHNvcnRlZFByZXZhbGVudFJlc291cmNlc1dpdGhvdXRVc2VySW50ZXJhY3Rp
b24sIFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2Vy
RnVuY3MuY3BwCmluZGV4IDBiY2NmYWYuLmFkYTVmNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJy
b3dzZXJGdW5jcy5jcHAKQEAgLTEzOCw3ICsxMzgsOSBAQCBzdGF0aWMgU3RyaW5nIGNhcGl0YWxp
emVSRkM4MjJIZWFkZXJGaWVsZE5hbWUoY29uc3QgU3RyaW5nJiBuYW1lKQogICAgICAgICBlbHNl
CiAgICAgICAgICAgICBjYXBpdGFsaXplQ2hhcmFjdGVyID0gZmFsc2U7CiAgICAgfQotICAgIHJl
dHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3Rh
dGljIEhUVFBIZWFkZXJNYXAgcGFyc2VSRkM4MjJIZWFkZXJGaWVsZHMoY29uc3QgY2hhciogYnl0
ZXMsIHVuc2lnbmVkIGxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5jcHAKaW5kZXggYTdmY2FjZS4uNzk5YWQ5YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTIxMiw3ICsyMTIs
OSBAQCBzdGF0aWMgU3RyaW5nIGJ1aWxkSFRUUEhlYWRlcnMoY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UsIGxvbmcgbG9uZyYgZXhwZQogICAgIGlmICghY29udGVudEVuY29kaW5nLmlz
TnVsbCgpICYmIGNvbnRlbnRFbmNvZGluZyAhPSAiaWRlbnRpdHkiKQogICAgICAgICBleHBlY3Rl
ZENvbnRlbnRMZW5ndGggPSAtMTsKIAotICAgIHJldHVybiBoZWFkZXIudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBoZWFkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIHVpbnQzMl90IGxhc3RNb2RpZmllZERh
dGVNUyhjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAppbmRleCAxNmFiZTU1Li40ODljOGNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC0z
NTEsNyArMzUxLDkgQEAgU3RyaW5nIFdlYkZyYW1lOjpjb250ZW50c0FzU3RyaW5nKCkgY29uc3QK
ICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHdlYkZyYW1lLT5jb250ZW50c0FzU3RyaW5nKCkp
OwogICAgICAgICB9CiAgICAgICAgIC8vIEZJWE1FOiBJdCBtYXkgbWFrZSBzZW5zZSB0byB1c2Ug
dG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgaGVyZS4KLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIu
dG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQog
CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9jb3JlRnJhbWUtPmRvY3VtZW50KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMDdkNDhjZC4uZDQxMzE2MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE4LTA0LTI2ICBKRiBCYXN0aWVu
ICA8amZiYXN0aWVuQGFwcGxlLmNvbT4KKworICAgICAgICBTdHJpbmdCdWlsZGVyIGlzIGZhbGxp
YmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUw
NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZWFj
aCBTdHJpbmdCdWlsZGVyIHRoYXQgaXQgaXMgZmFsbGlibGUKKworICAgICAgICAqIFdlYlZpZXcv
V2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tOgorICAgICAgICAocmVnRXhwRm9yTGFiZWxzKToKKwog
MjAxOC0wNC0yNSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFJlbW92ZSBhY2Nlc3MgdG8ga2V5Y2hhaW4gZnJvbSB0aGUgV2ViQ29udGVudCBwcm9jZXNzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxSZXByZXNl
bnRhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFJlcHJl
c2VudGF0aW9uLm1tCmluZGV4IDE5MTgzNjMuLjJiMjdhNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tCkBA
IC0zOTQsNyArMzk0LDEwIEBAIHN0YXRpYyBSZWd1bGFyRXhwcmVzc2lvbiogcmVnRXhwRm9yTGFi
ZWxzKE5TQXJyYXkgKmxhYmVscykKICAgICAgICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZExpdGVy
YWwoIlxcYiIpOwogICAgICAgICB9CiAgICAgICAgIHBhdHRlcm4uYXBwZW5kKCcpJyk7Ci0gICAg
ICAgIHJlc3VsdCA9IG5ldyBSZWd1bGFyRXhwcmVzc2lvbihwYXR0ZXJuLnRvU3RyaW5nKCksIEpT
Qzo6WWFycjo6VGV4dENhc2VJbnNlbnNpdGl2ZSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IHBhdHRlcm4udG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBSZWd1bGFyRXhw
cmVzc2lvbigqc3RyaW5nLCBKU0M6OllhcnI6OlRleHRDYXNlSW5zZW5zaXRpdmUpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIC8vIGFkZCByZWdleHAg
dG8gdGhlIGNhY2hlLCBtYWtpbmcgc3VyZSBpdCBpcyBhdCB0aGUgZnJvbnQgZm9yIExSVSBvcmRl
cmluZwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IGY1NzYxYWEuLjQyMDk1YjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4MSBAQAorMjAxOC0wNC0yNiAgSkYgQmFzdGllbiAgPGpm
YmFzdGllbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3RyaW5nQnVpbGRlciBpcyBmYWxsaWJsZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MDQ4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RyaW5nQnVp
bGRlciBjYW4gZmFpbCB3aGVuIGFsbG9jYXRpbmcgbWVtb3J5LiBTdHJpbmdCdWlsZGVyIGlzCisg
ICAgICAgIG1vc3RseSB1c2VkIHdpdGggdXNlciBpbnB1dCwgd2hpY2ggb2Z0ZW4gbWVhbnMgdGhh
dCBqdXN0IGNyYXNoaW5nCisgICAgICAgIGlzbid0IHRoZSByaWdodCBvdXRjb21lLiBPdXIgZnV6
emVycyBvZnRlbiBlbmNvdW50ZXIgc3VjaCB0aGluZ3MKKyAgICAgICAgZm9yIEphdmFTY3JpcHRD
b3JlLCBhbmQgc28gZmFyIHdlJ3ZlIGFwcGxpZWQgcG9pbnQgc29sdXRpb25zLiBObworICAgICAg
ICBtb3JlIQorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRl
ci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpleHBlY3RCdWlsZGVyQ29udGVudCk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpleHBlY3RFbXB0eSk6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3
LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHA6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9GaWxlTW9uaXRvci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpjcmVhdGVDb21tYW5k
KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0xvZ2dpbmcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
TG9nZ2luZ1Rlc3Q6Om91dHB1dCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6TG9nT2JzZXJ2ZXI6OmxvZyk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1RleHRDb2RlYy5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjp0ZXN0RGVjb2RlKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1dURlN0cmluZ1V0
aWxpdGllcy5oOgorICAgICAgICAodXRmMTZTdHJpbmcpOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdU
Ujo6ZHVtcFBhdGgpOgorICAgICAgICAoV1RSOjpyYW5nZVRvU3RyKToKKyAgICAgICAgKFdUUjo6
c3R5bGVEZWNUb1N0cik6CisgICAgICAgIChXVFI6OnNlY3VyaXR5T3JpZ2luVG9TdHIpOgorICAg
ICAgICAoV1RSOjpmcmFtZVRvU3RyKToKKyAgICAgICAgKFdUUjo6ZHVtcExvYWRFdmVudCk6Cisg
ICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZHVtcCk6CisgICAgICAgIChXVFI6Oklu
amVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUpOgorICAgICAgICAoV1RS
OjpJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSk6
CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmluaXNoRG9jdW1lbnRMb2Fk
Rm9yRnJhbWUpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxTZW5kUmVx
dWVzdEZvckZyYW1lKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNl
aXZlUmVzcG9uc2VGb3JSZXNvdXJjZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFn
ZTo6ZGlkRmluaXNoTG9hZEZvclJlc291cmNlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5k
bGVQYWdlOjpkaWRGYWlsTG9hZEZvclJlc291cmNlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRC
dW5kbGVQYWdlOjpzaG91bGRDYWNoZVJlc3BvbnNlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRC
dW5kbGVQYWdlOjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKFdU
Ujo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CisgICAgICAg
IChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6d2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUpOgorICAg
ICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxTZXRTdGF0dXNiYXJUZXh0KToKKyAg
ICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUnVuSmF2YVNjcmlwdEFsZXJ0KToK
KyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUnVuSmF2YVNjcmlwdENvbmZp
cm0pOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxSdW5KYXZhU2NyaXB0
UHJvbXB0KToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWFjaEFwcGxp
Y2F0aW9uQ2FjaGVPcmlnaW5RdW90YSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFn
ZTo6ZGlkRXhjZWVkRGF0YWJhc2VRdW90YSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxl
UGFnZTo6c2hvdWxkQmVnaW5FZGl0aW5nKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQ
YWdlOjpzaG91bGRFbmRFZGl0aW5nKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdl
OjpzaG91bGRJbnNlcnROb2RlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpz
aG91bGRJbnNlcnRUZXh0KToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91
bGREZWxldGVSYW5nZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxk
Q2hhbmdlU2VsZWN0ZWRSYW5nZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6
c2hvdWxkQXBwbHlTdHlsZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlk
QmVnaW5FZGl0aW5nKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRFbmRF
ZGl0aW5nKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRDaGFuZ2UpOgor
ICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZENoYW5nZVNlbGVjdGlvbik6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoK
KyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c3RhdGlzdGljc0RpZFJ1blRlbGVtZXRyeUNhbGxi
YWNrKToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6Y2FsbERpZFJlY2VpdmVBbGxTdG9yYWdl
QWNjZXNzRW50cmllc0NhbGxiYWNrKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmRlY2lkZURlc3Rp
bmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OmRvd25sb2FkRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0VG9VUkwpOgorICAgICAgICAoV1RS
OjpUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRGYWlsKToKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246
OmR1bXBSZXN1bHRzKToKKwogMjAxOC0wNC0yNSAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBh
cHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjIzMDk5OCk6IEJvdCB3YXRjaGVyJ3Mg
ZGFzaGJvYXJkIGRvZXNuJ3QgZGlzcGxheSBudW1iZXIgb2YgQVBJIHRlc3QgZmFpbHVyZXMKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkVGFzay5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZFRhc2suY3BwCmlu
ZGV4IDUyYzBiY2QuLmY2MWZhMzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0Nyb3NzVGhyZWFkVGFzay5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvQ3Jvc3NUaHJlYWRUYXNrLmNwcApAQCAtODgsNyArODgsOSBAQCBzdHJ1Y3QgTGlmZXRp
bWVMb2dnZXIgewogICAgICAgICBidWlsZGVyLmFwcGVuZCgiLSIpOwogICAgICAgICBidWlsZGVy
LmFwcGVuZChTdHJpbmc6Om51bWJlcihtb3ZlR2VuZXJhdGlvbikpOwogCi0gICAgICAgIHJldHVy
biBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgp
OwogICAgIH0KIAogICAgIGNvbnN0IGNoYXImIG5hbWUgeyAqIjxkZWZhdWx0PiIgfTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKaW5kZXggNmI4
ZTA1Yy4uNzg2NzUwMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nQnVpbGRlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3Ry
aW5nQnVpbGRlci5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQpAQCAtMzksMTYgKzM5LDE2IEBAIHN0YXRpYyB2b2lkIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KGNvbnN0IFN0cmluZyYgZXhwZWN0ZWQsIGNvbnN0IFN0cmluZ0J1aWxkZXImIGJ1
CiAgICAgLy8gTm90IHVzaW5nIGJ1aWxkZXIudG9TdHJpbmcoKSBvciBidWlsZGVyLnRvU3RyaW5n
UHJlc2VydmVDYXBhY2l0eSgpIGJlY2F1c2UgdGhleSBhbGwKICAgICAvLyBjaGFuZ2UgaW50ZXJu
YWwgc3RhdGUgb2YgYnVpbGRlci4KICAgICBpZiAoYnVpbGRlci5pczhCaXQoKSkKLSAgICAgICAg
RVhQRUNUX0VRKGV4cGVjdGVkLCBTdHJpbmcoYnVpbGRlci5jaGFyYWN0ZXJzOCgpLCBidWlsZGVy
Lmxlbmd0aCgpKSk7CisgICAgICAgIEVYUEVDVF9FUShleHBlY3RlZCwgU3RyaW5nKGJ1aWxkZXIu
Y2hhcmFjdGVyczgoKS52YWx1ZSgpLCBidWlsZGVyLmxlbmd0aCgpKSk7CiAgICAgZWxzZQotICAg
ICAgICBFWFBFQ1RfRVEoZXhwZWN0ZWQsIFN0cmluZyhidWlsZGVyLmNoYXJhY3RlcnMxNigpLCBi
dWlsZGVyLmxlbmd0aCgpKSk7CisgICAgICAgIEVYUEVDVF9FUShleHBlY3RlZCwgU3RyaW5nKGJ1
aWxkZXIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSwgYnVpbGRlci5sZW5ndGgoKSkpOwogfQogCiB2
b2lkIGV4cGVjdEVtcHR5KGNvbnN0IFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIpCiB7CiAgICAgRVhQ
RUNUX0VRKDBVLCBidWlsZGVyLmxlbmd0aCgpKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLmlz
RW1wdHkoKSk7Ci0gICAgRVhQRUNUX0VRKDAsIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CisgICAg
RVhQRUNUX0VRKDAsIGJ1aWxkZXIuY2hhcmFjdGVyczgoKS52YWx1ZSgpKTsKIH0KIAogVEVTVChT
dHJpbmdCdWlsZGVyVGVzdCwgRGVmYXVsdENvbnN0cnVjdG9yKQpAQCAtNzEsMjQgKzcxLDI0IEBA
IFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFwcGVuZCkKICAgICBidWlsZGVyLmFwcGVuZCgnIycp
OwogICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVy
KTsKIAotICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygp
LgorICAgIGJ1aWxkZXIudG9TdHJpbmcoKS52YWx1ZSgpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3Ry
aW5nKCkuCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyMTsKICAgICBidWlsZGVyLmFwcGVuZCgi
IiwgMCk7CiAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1
aWxkZXIpOwotICAgIGJ1aWxkZXIxLmFwcGVuZChidWlsZGVyLmNoYXJhY3RlcnM4KCksIGJ1aWxk
ZXIubGVuZ3RoKCkpOworICAgIGJ1aWxkZXIxLmFwcGVuZChidWlsZGVyLmNoYXJhY3RlcnM4KCku
dmFsdWUoKSwgYnVpbGRlci5sZW5ndGgoKSk7CiAgICAgYnVpbGRlcjEuYXBwZW5kKCJYWVoiKTsK
LSAgICBidWlsZGVyLmFwcGVuZChidWlsZGVyMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyMS5sZW5n
dGgoKSk7CisgICAgYnVpbGRlci5hcHBlbmQoYnVpbGRlcjEuY2hhcmFjdGVyczgoKS52YWx1ZSgp
LCBidWlsZGVyMS5sZW5ndGgoKSk7CiAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3
ODlhYmNkZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZWiIsIGJ1aWxkZXIpOwogCiAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyMjsKICAgICBidWlsZGVyMi5yZXNlcnZlQ2FwYWNpdHkoMTAwKTsKICAg
ICBidWlsZGVyMi5hcHBlbmQoInh5eiIpOwotICAgIGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzID0g
YnVpbGRlcjIuY2hhcmFjdGVyczgoKTsKKyAgICBjb25zdCBMQ2hhciogY2hhcmFjdGVycyA9IGJ1
aWxkZXIyLmNoYXJhY3RlcnM4KCkudmFsdWUoKTsKICAgICBidWlsZGVyMi5hcHBlbmQoIjAxMjM0
NTY3ODkiKTsKLSAgICBBU1NFUlRfRVEoY2hhcmFjdGVycywgYnVpbGRlcjIuY2hhcmFjdGVyczgo
KSk7Ci0gICAgYnVpbGRlcjIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7IC8vIFRlc3QgYWZ0
ZXIgcmVpZnlTdHJpbmcgd2l0aCBidWZmZXIgcHJlc2VydmVkLgorICAgIEFTU0VSVF9FUShjaGFy
YWN0ZXJzLCBidWlsZGVyMi5jaGFyYWN0ZXJzOCgpLnZhbHVlKCkpOworICAgIGJ1aWxkZXIyLnRv
U3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLnZhbHVlKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJp
bmcgd2l0aCBidWZmZXIgcHJlc2VydmVkLgogICAgIGJ1aWxkZXIyLmFwcGVuZCgiYWJjZCIpOwot
ICAgIEFTU0VSVF9FUShjaGFyYWN0ZXJzLCBidWlsZGVyMi5jaGFyYWN0ZXJzOCgpKTsKKyAgICBB
U1NFUlRfRVEoY2hhcmFjdGVycywgYnVpbGRlcjIuY2hhcmFjdGVyczgoKS52YWx1ZSgpKTsKIAog
ICAgIC8vIFRlc3QgYXBwZW5kaW5nIFVDaGFyMzIgY2hhcmFjdGVycyB0byBTdHJpbmdCdWlsZGVy
LgogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlckZvclVDaGFyMzJBcHBlbmQ7CkBAIC0xMDUsOSAr
MTA1LDkgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmcpCiB7CiAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7Ci0gICAg
U3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBTdHJpbmcgc3RyaW5nID0g
YnVpbGRlci50b1N0cmluZygpLnZhbHVlKCk7CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OSIpLCBzdHJpbmcpOwotICAgIEFTU0VSVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRv
U3RyaW5nKCkuaW1wbCgpKTsKKyAgICBBU1NFUlRfRVEoc3RyaW5nLmltcGwoKSwgYnVpbGRlci50
b1N0cmluZygpLnZhbHVlKCkuaW1wbCgpKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdC
dWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmco
KS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKTsKQEAg
LTExNSwyMCArMTE1LDIwIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nKQogCiAg
ICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9y
aWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpIGluIGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5vdCBj
aGFuZ2VkLgogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDIwMCk7Ci0gICAgc3RyaW5nID0g
YnVpbGRlci50b1N0cmluZygpOworICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKS52YWx1
ZSgpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5eiIpLCBzdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsKICAgICBBU1NF
UlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3Ry
aW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmco
KSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4KLSAg
ICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBTdHJpbmcgc3RyaW5n
MSA9IGJ1aWxkZXIudG9TdHJpbmcoKS52YWx1ZSgpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKICAgICBz
dHJpbmcxLmFwcGVuZCgiREVGIik7Ci0gICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAg
QVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJD
IiksIGJ1aWxkZXIudG9TdHJpbmcoKS52YWx1ZSgpKTsKICAgICBBU1NFUlRfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiKSwgc3RyaW5nMSk7CiAK
ICAgICAvLyBSZXNpemluZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUg
b3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCi0gICAgc3RyaW5nMSA9IGJ1aWxkZXIudG9T
dHJpbmcoKTsKKyAgICBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZygpLnZhbHVlKCk7CiAgICAg
YnVpbGRlci5yZXNpemUoMTApOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIjIyMiKTsKICAgICBBU1NF
UlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwg
c3RyaW5nMSk7CkBAIC0xMzksMTEgKzEzOSwxMSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBU
b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAg
IGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7CiAgICAgdW5zaWduZWQgY2FwYWNpdHkgPSBi
dWlsZGVyLmNhcGFjaXR5KCk7Ci0gICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQ
cmVzZXJ2ZUNhcGFjaXR5KCk7CisgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQ
cmVzZXJ2ZUNhcGFjaXR5KCkudmFsdWUoKTsKICAgICBBU1NFUlRfRVEoY2FwYWNpdHksIGJ1aWxk
ZXIuY2FwYWNpdHkoKSk7CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJp
bmcpOwotICAgIEFTU0VSVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2Vy
dmVDYXBhY2l0eSgpLmltcGwoKSk7Ci0gICAgQVNTRVJUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgp
LCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOworICAgIEFTU0VSVF9FUShzdHJpbmcuaW1wbCgpLCBi
dWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLnZhbHVlKCkuaW1wbCgpKTsKKyAgICBB
U1NFUlRfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKS52YWx1
ZSgpKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZm
ZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuCiAg
ICAgYnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7CkBAIC0xNTIs
MjggKzE1MiwyOCBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2Fw
YWNpdHkpCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZl
Y3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBpbiBj
YXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KICAgICBidWlsZGVyLnJlc2VydmVDYXBh
Y2l0eSgyMDApOwogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwotICAgIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CisgICAgc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS52YWx1ZSgpOwogICAgIEFTU0VSVF9FUShj
YXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKLSAgICBBU1NFUlRfRVEoc3RyaW5nLmNoYXJh
Y3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CisgICAgQVNTRVJUX0VRKHN0cmluZy5j
aGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkudmFsdWUoKSk7CiAgICAgQVNTRVJU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmlu
Zyk7CiAgICAgYnVpbGRlci5hcHBlbmQoIkFCQyIpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOwogCiAgICAgLy8g
Q2hhbmdpbmcgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHko
KSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4KICAg
ICBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKLSAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1
aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CisgICAgU3RyaW5nIHN0cmluZzEgPSBi
dWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLnZhbHVlKCk7CiAgICAgQVNTRVJUX0VR
KGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwotICAgIEFTU0VSVF9FUShzdHJpbmcxLmNo
YXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CisgICAgQVNTRVJUX0VRKHN0cmlu
ZzEuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpLnZhbHVlKCkpOwogICAgIEFT
U0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIp
LCBzdHJpbmcxKTsKICAgICBzdHJpbmcxLmFwcGVuZCgiREVGIik7Ci0gICAgQVNTRVJUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxkZXIu
dG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOworICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nUHJl
c2VydmVDYXBhY2l0eSgpLnZhbHVlKCkpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3
ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcxKTsKIAogICAgIC8v
IFJlc2l6aW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5h
bCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuCiAgICAgY2FwYWNpdHkgPSBi
dWlsZGVyLmNhcGFjaXR5KCk7Ci0gICAgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2
ZUNhcGFjaXR5KCk7CisgICAgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFj
aXR5KCkudmFsdWUoKTsKICAgICBBU1NFUlRfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHko
KSk7Ci0gICAgQVNTRVJUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3Rl
cnM4KCkpOworICAgIEFTU0VSVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFy
YWN0ZXJzOCgpLnZhbHVlKCkpOwogICAgIGJ1aWxkZXIucmVzaXplKDEwKTsKICAgICBidWlsZGVy
LmFwcGVuZCgiIyMjIik7CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOwpAQCAtMTkxLDExICsxOTEsMTEgQEAg
VEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQXJyYXkpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7Ci0gICAgRVhQRUNUX0VRKCcw
Jywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRlclswXSkpOwotICAgIEVYUEVDVF9FUSgnOScsIHN0
YXRpY19jYXN0PGNoYXI+KGJ1aWxkZXJbOV0pKTsKLSAgICBidWlsZGVyLnRvU3RyaW5nKCk7IC8v
IFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KLSAgICBFWFBFQ1RfRVEoJzAnLCBzdGF0aWNfY2Fz
dDxjaGFyPihidWlsZGVyWzBdKSk7Ci0gICAgRVhQRUNUX0VRKCc5Jywgc3RhdGljX2Nhc3Q8Y2hh
cj4oYnVpbGRlcls5XSkpOworICAgIEVYUEVDVF9FUSgnMCcsIHN0YXRpY19jYXN0PGNoYXI+KGJ1
aWxkZXJbMF0udmFsdWUoKSkpOworICAgIEVYUEVDVF9FUSgnOScsIHN0YXRpY19jYXN0PGNoYXI+
KGJ1aWxkZXJbOV0udmFsdWUoKSkpOworICAgIGJ1aWxkZXIudG9TdHJpbmcoKS52YWx1ZSgpOyAv
LyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCisgICAgRVhQRUNUX0VRKCcwJywgc3RhdGljX2Nh
c3Q8Y2hhcj4oYnVpbGRlclswXS52YWx1ZSgpKSk7CisgICAgRVhQRUNUX0VRKCc5Jywgc3RhdGlj
X2Nhc3Q8Y2hhcj4oYnVpbGRlcls5XS52YWx1ZSgpKSk7CiB9CiAKIFRFU1QoU3RyaW5nQnVpbGRl
clRlc3QsIFJlc2l6ZSkKQEAgLTIwOSw3ICsyMDksNyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0
LCBSZXNpemUpCiAgICAgRVhQRUNUX0VRKDhVLCBidWlsZGVyLmxlbmd0aCgpKTsKICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NjciLCBidWlsZGVyKTsKIAotICAgIGJ1aWxkZXIudG9T
dHJpbmcoKTsKKyAgICBidWlsZGVyLnRvU3RyaW5nKCkudmFsdWUoKTsKICAgICBidWlsZGVyLnJl
c2l6ZSg3KTsKICAgICBFWFBFQ1RfRVEoN1UsIGJ1aWxkZXIubGVuZ3RoKCkpOwogICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2IiwgYnVpbGRlcik7CkBAIC0yNDAsMTMgKzI0MCwxMyBA
QCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBFcXVhbCkKICAgICBBU1NFUlRfVFJVRShidWlsZGVy
MiAhPSBidWlsZGVyMSk7CiAgICAgQVNTRVJUX1RSVUUoU3RyaW5nKCIxMjMiKSAhPSBidWlsZGVy
Mik7CiAgICAgQVNTRVJUX1RSVUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiKSk7Ci0gICAgYnVp
bGRlcjIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgorICAgIGJ1aWxk
ZXIyLnRvU3RyaW5nKCkudmFsdWUoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgogICAg
IEFTU0VSVF9UUlVFKGJ1aWxkZXIxICE9IGJ1aWxkZXIyKTsKIAogICAgIGJ1aWxkZXIyLnJlc2l6
ZSgzKTsKICAgICBBU1NFUlRfVFJVRShidWlsZGVyMSA9PSBidWlsZGVyMik7CiAKLSAgICBidWls
ZGVyMS50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCisgICAgYnVpbGRl
cjEudG9TdHJpbmcoKS52YWx1ZSgpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAgICAg
QVNTRVJUX1RSVUUoYnVpbGRlcjEgPT0gYnVpbGRlcjIpOwogfQogCkBAIC0yNjUsMTQgKzI2NSwx
NCBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb0F0b21pY1N0cmluZykKIHsKICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjEyMyIpOwotICAgIEF0b21p
Y1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7CisgICAgQXRv
bWljU3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKS52YWx1ZSgp
OwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjEyMyIpLCBhdG9taWNTdHJpbmcpOwogCiAgICAgYnVp
bGRlci5yZXNlcnZlQ2FwYWNpdHkoMjU2KTsKICAgICBBU1NFUlRfVFJVRShidWlsZGVyLmNhblNo
cmluaygpKTsKICAgICBmb3IgKGludCBpID0gYnVpbGRlci5sZW5ndGgoKTsgaSA8IDEyODsgaSsr
KQogICAgICAgICBidWlsZGVyLmFwcGVuZCgneCcpOwotICAgIEF0b21pY1N0cmluZyBhdG9taWNT
dHJpbmcxID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpOworICAgIEF0b21pY1N0cmluZyBhdG9t
aWNTdHJpbmcxID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpLnZhbHVlKCk7CiAgICAgQVNTRVJU
X0VRKDEyOHUsIGF0b21pY1N0cmluZzEubGVuZ3RoKCkpOwogICAgIEFTU0VSVF9FUSgneCcsIGF0
b21pY1N0cmluZzFbMTI3XSk7CiAKQEAgLTI4Miw4ICsyODIsOCBAQCBURVNUKFN0cmluZ0J1aWxk
ZXJUZXN0LCBUb0F0b21pY1N0cmluZykKICAgICBBU1NFUlRfRVEoMTI4dSwgYXRvbWljU3RyaW5n
MS5sZW5ndGgoKSk7CiAKICAgICBBU1NFUlRfRkFMU0UoYnVpbGRlci5jYW5TaHJpbmsoKSk7Ci0g
ICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBBdG9taWNTdHJpbmcg
YXRvbWljU3RyaW5nMiA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKTsKKyAgICBTdHJpbmcgc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpLnZhbHVlKCk7CisgICAgQXRvbWljU3RyaW5nIGF0b21p
Y1N0cmluZzIgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCkudmFsdWUoKTsKICAgICAvLyBUaGV5
IHNob3VsZCBzaGFyZSB0aGUgc2FtZSBTdHJpbmdJbXBsLgogICAgIEFTU0VSVF9FUShhdG9taWNT
dHJpbmcyLmltcGwoKSwgc3RyaW5nLmltcGwoKSk7CiB9CkBAIC0yOTIsNDUgKzI5Miw0NSBAQCBU
RVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb0F0b21pY1N0cmluZ09uRW1wdHkpCiB7CiAgICAgeyAv
LyBEZWZhdWx0IGNvbnN0cnVjdGVkLgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0g
ICAgICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5n
KCk7CisgICAgICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWlj
U3RyaW5nKCkudmFsdWUoKTsKICAgICAgICAgQVNTRVJUX0VRKGVtcHR5QXRvbSgpLCBhdG9taWNT
dHJpbmcpOwogICAgIH0KICAgICB7IC8vIFdpdGggY2FwYWNpdHkuCiAgICAgICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoNjQpOwotICAg
ICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygp
OworICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0
cmluZygpLnZhbHVlKCk7CiAgICAgICAgIEFTU0VSVF9FUShlbXB0eUF0b20oKSwgYXRvbWljU3Ry
aW5nKTsKICAgICB9CiAgICAgeyAvLyBBdG9taWNTdHJpbmcgY29uc3RydWN0ZWQgZnJvbSBhIG51
bGwgc3RyaW5nLgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKFN0cmluZygpKTsKLSAgICAgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9
IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKTsKKyAgICAgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0
cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKS52YWx1ZSgpOwogICAgICAgICBBU1NFUlRf
RVEoZW1wdHlBdG9tKCksIGF0b21pY1N0cmluZyk7CiAgICAgfQogICAgIHsgLy8gQXRvbWljU3Ry
aW5nIGNvbnN0cnVjdGVkIGZyb20gYW4gZW1wdHkgc3RyaW5nLgogICAgICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGVtcHR5U3RyaW5nKCkpOwotICAg
ICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygp
OworICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0
cmluZygpLnZhbHVlKCk7CiAgICAgICAgIEFTU0VSVF9FUShlbXB0eUF0b20oKSwgYXRvbWljU3Ry
aW5nKTsKICAgICB9CiAgICAgeyAvLyBBdG9taWNTdHJpbmcgY29uc3RydWN0ZWQgZnJvbSBhbiBl
bXB0eSBTdHJpbmdCdWlsZGVyLgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAg
ICAgIFN0cmluZ0J1aWxkZXIgZW1wdHlCdWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChl
bXB0eUJ1aWxkZXIpOwotICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRl
ci50b0F0b21pY1N0cmluZygpOworICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0g
YnVpbGRlci50b0F0b21pY1N0cmluZygpLnZhbHVlKCk7CiAgICAgICAgIEFTU0VSVF9FUShlbXB0
eUF0b20oKSwgYXRvbWljU3RyaW5nKTsKICAgICB9CiAgICAgeyAvLyBBdG9taWNTdHJpbmcgY29u
c3RydWN0ZWQgZnJvbSBhbiBlbXB0eSBjaGFyKiBzdHJpbmcuCiAgICAgICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiIsIDApOwotICAgICAgICBBdG9t
aWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpOworICAgICAg
ICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpLnZh
bHVlKCk7CiAgICAgICAgIEFTU0VSVF9FUShlbXB0eUF0b20oKSwgYXRvbWljU3RyaW5nKTsKICAg
ICB9CiAgICAgeyAvLyBDbGVhcmVkIFN0cmluZ0J1aWxkZXIuCiAgICAgICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJXZWJLaXQiKTsKICAg
ICAgICAgYnVpbGRlci5jbGVhcigpOwotICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5n
ID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpOworICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWlj
U3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpLnZhbHVlKCk7CiAgICAgICAgIEFTU0VS
VF9FUShlbXB0eUF0b20oKSwgYXRvbWljU3RyaW5nKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCmluZGV4IGZjMjhiMDAuLjhiMjgzMDkg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCkBAIC0x
NjQsNjUgKzE2NCw2NSBAQCBURVNUKFdURiwgU3RyaW5nVmlld0l0ZXJhdG9ycykKIAogICAgIFN0
cmluZ0J1aWxkZXIgYjsKICAgICBidWlsZChiLCB7MHhEODAwLCAweERENTV9KTsgLy8gU3Vycm9n
YXRlcyBmb3IgdW5pY29kZSBjb2RlIHBvaW50IFUrMTAxNTUKLSAgICBFWFBFQ1RfVFJVRShjb21w
YXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVQb2ludHMoKSwg
ezB4MTAxNTV9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmlu
Z1ZpZXcoYi50b1N0cmluZygpKS5jb2RlVW5pdHMoKSwgezB4RDgwMCwgMHhERDU1fSkpOwotICAg
IEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmco
KSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpfSkpOworICAg
IEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmco
KS52YWx1ZSgpKS5jb2RlUG9pbnRzKCksIHsweDEwMTU1fSkpOworICAgIEVYUEVDVF9UUlVFKGNv
bXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2Rl
VW5pdHMoKSwgezB4RDgwMCwgMHhERDU1fSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29w
SXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5ncmFwaGVtZUNsdXN0
ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKX0pKTsKIAogICAgIGJ1aWxk
KGIsIHsweEQ4MDB9KTsgLy8gTGVhZGluZyBzdXJyb2dhdGUgb25seQotICAgIEVYUEVDVF9UUlVF
KGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVBvaW50
cygpLCB7MHhEODAwfSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhT
dHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRzKCksIHsweEQ4MDB9KSk7Ci0gICAgRVhQ
RUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5n
cmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSl9KSk7CisgICAgRVhQ
RUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZh
bHVlKCkpLmNvZGVQb2ludHMoKSwgezB4RDgwMH0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJl
TG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVVuaXRz
KCksIHsweEQ4MDB9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0
cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmlu
Z1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpfSkpOwogCiAgICAgYnVpbGQoYiwgezB4RDgwMCwg
MHhEODAxfSk7IC8vIFR3byBsZWFkaW5nIHN1cnJvZ2F0ZXMKLSAgICBFWFBFQ1RfVFJVRShjb21w
YXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVQb2ludHMoKSwg
ezB4RDgwMCwgMHhEODAxfSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9u
cyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRzKCksIHsweEQ4MDAsIDB4RDgwMX0p
KTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRv
U3RyaW5nKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYo
KSwgMSksIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSArIDEsIDEpfSkpOworICAgIEVYUEVD
VF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1
ZSgpKS5jb2RlUG9pbnRzKCksIHsweEQ4MDAsIDB4RDgwMX0pKTsKKyAgICBFWFBFQ1RfVFJVRShj
b21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29k
ZVVuaXRzKCksIHsweEQ4MDAsIDB4RDgwMX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9v
cEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuZ3JhcGhlbWVDbHVz
dGVycygpLCB7U3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCksIDEpLCBTdHJpbmdW
aWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSArIDEsIDEpfSkpOwogCiAgICAgYnVpbGQoYiwg
ezB4REQ1NX0pOyAvLyBUcmFpbGluZyBzdXJyb2dhdGUgb25seQotICAgIEVYUEVDVF9UUlVFKGNv
bXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVBvaW50cygp
LCB7MHhERDU1fSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJp
bmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRzKCksIHsweERENTV9KSk7Ci0gICAgRVhQRUNU
X1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5ncmFw
aGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSl9KSk7CisgICAgRVhQRUNU
X1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVl
KCkpLmNvZGVQb2ludHMoKSwgezB4REQ1NX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9v
cEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVVuaXRzKCks
IHsweERENTV9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmlu
Z1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1Zp
ZXcoYi50b1N0cmluZygpLnZhbHVlKCkpfSkpOwogCiAgICAgYnVpbGQoYiwgezB4RDgwMCwgJ2gn
fSk7IC8vIExlYWRpbmcgc3Vycm9nYXRlIGZvbGxvd2VkIGJ5IG5vbi1zdXJyb2dhdGUKLSAgICBF
WFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkp
LmNvZGVQb2ludHMoKSwgezB4RDgwMCwgJ2gnfSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVM
b29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRzKCksIHsweEQ4
MDAsICdoJ30pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5n
VmlldyhiLnRvU3RyaW5nKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi5jaGFy
YWN0ZXJzMTYoKSwgMSksIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSArIDEsIDEpfSkpOwor
ICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJp
bmcoKS52YWx1ZSgpKS5jb2RlUG9pbnRzKCksIHsweEQ4MDAsICdoJ30pKTsKKyAgICBFWFBFQ1Rf
VFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUo
KSkuY29kZVVuaXRzKCksIHsweEQ4MDAsICdoJ30pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJl
TG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuZ3JhcGhlbWVD
bHVzdGVycygpLCB7U3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCksIDEpLCBTdHJp
bmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSArIDEsIDEpfSkpOwogCiAgICAgYnVpbGQo
YiwgezB4MDMwNn0pOyAvLyAiQ09NQklOSU5HIEJSRVZFIgotICAgIEVYUEVDVF9UUlVFKGNvbXBh
cmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVBvaW50cygpLCB7
MHgwMzA2fSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdW
aWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRzKCksIHsweDAzMDZ9KSk7Ci0gICAgRVhQRUNUX1RS
VUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5ncmFwaGVt
ZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSl9KSk7CisgICAgRVhQRUNUX1RS
VUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkp
LmNvZGVQb2ludHMoKSwgezB4MDMwNn0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0
ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVVuaXRzKCksIHsw
eDAzMDZ9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1Zp
ZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXco
Yi50b1N0cmluZygpLnZhbHVlKCkpfSkpOwogCiAgICAgYnVpbGQoYiwgezB4MDMwNiwgMHhEODAw
LCAweERENTUsICdoJywgJ2UnLCAnbCcsICdvJ30pOyAvLyBNaXggb2Ygc2luZ2xlIGNvZGUgdW5p
dCBhbmQgbXVsdGkgY29kZSB1bml0IGNvZGUgcG9pbnRzCi0gICAgRVhQRUNUX1RSVUUoY29tcGFy
ZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlUG9pbnRzKCksIHsw
eDAzMDYsIDB4MTAxNTUsICdoJywgJ2UnLCAnbCcsICdvJ30pKTsKLSAgICBFWFBFQ1RfVFJVRShj
b21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVVbml0cygp
LCB7MHgwMzA2LCAweEQ4MDAsIDB4REQ1NSwgJ2gnLCAnZScsICdsJywgJ28nfSkpOwotICAgIEVY
UEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSku
Z3JhcGhlbWVDbHVzdGVycygpLCB7Ci0gICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYo
KSwgMSksCi0gICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSArIDEsIDIpLAotICAg
ICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkgKyAzLCAxKSwKLSAgICAgICAgU3RyaW5n
VmlldyhiLmNoYXJhY3RlcnMxNigpICsgNCwgMSksCi0gICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFy
YWN0ZXJzMTYoKSArIDUsIDEpLAotICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkg
KyA2LCAxKX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5n
VmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVBvaW50cygpLCB7MHgwMzA2LCAweDEwMTU1
LCAnaCcsICdlJywgJ2wnLCAnbyd9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVy
YXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVVbml0cygpLCB7MHgw
MzA2LCAweEQ4MDAsIDB4REQ1NSwgJ2gnLCAnZScsICdsJywgJ28nfSkpOworICAgIEVYUEVDVF9U
UlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgp
KS5ncmFwaGVtZUNsdXN0ZXJzKCksIHsKKyAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMx
NigpLnZhbHVlKCksIDEpLAorICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFs
dWUoKSArIDEsIDIpLAorICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUo
KSArIDMsIDEpLAorICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSAr
IDQsIDEpLAorICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSArIDUs
IDEpLAorICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSArIDYsIDEp
fSkpOwogCiAgICAgYnVpbGQoYiwgeydlJywgMHgwMzAxfSk7IC8vICJDT01CSU5JTkcgQUNVVEUi
Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0
cmluZygpKS5jb2RlUG9pbnRzKCksIHsnZScsIDB4MDMwMX0pKTsKLSAgICBFWFBFQ1RfVFJVRShj
b21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVVbml0cygp
LCB7J2UnLCAweDAzMDF9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25z
KFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3
KGIudG9TdHJpbmcoKSl9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25z
KFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVQb2ludHMoKSwgeydlJywgMHgw
MzAxfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3
KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlVW5pdHMoKSwgeydlJywgMHgwMzAxfSkpOworICAg
IEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmco
KS52YWx1ZSgpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52
YWx1ZSgpKX0pKTsKIAogICAgIGJ1aWxkKGIsIHsnZScsIDB4MDMwMSwgMHgwMzA2LCAnYSd9KTsg
Ly8gIkNPTUJJTklORyBBQ1VURSIgIkNPTUJJTklORyBCUkVWRSIKLSAgICBFWFBFQ1RfVFJVRShj
b21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVQb2ludHMo
KSwgeydlJywgMHgwMzAxLCAweDAzMDYsICdhJ30pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJl
TG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVVbml0cygpLCB7J2Un
LCAweDAzMDEsIDB4MDMwNiwgJ2EnfSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRl
cmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7Ci0g
ICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSwgMyksCi0gICAgICAgIFN0cmluZ1Zp
ZXcoYi5jaGFyYWN0ZXJzMTYoKSArIDMsIDEpLAorICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29w
SXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlUG9pbnRzKCks
IHsnZScsIDB4MDMwMSwgMHgwMzA2LCAnYSd9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxv
b3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVVbml0cygp
LCB7J2UnLCAweDAzMDEsIDB4MDMwNiwgJ2EnfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVM
b29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5ncmFwaGVtZUNs
dXN0ZXJzKCksIHsKKyAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCks
IDMpLAorICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSArIDMsIDEp
LAogICAgICAgICB9KSk7CiAKICAgICBidWlsZChiLCB7MHgxMTEyLCAweDExNmYsIDB4MTFiNiwg
MHgxMTA3LCAweDExNjEsIDB4MTFCOH0pOyAvLyBLb3JlYW4gY29tYmluaW5nIEphbW8KLSAgICBF
WFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkp
LmNvZGVQb2ludHMoKSwgezB4MTExMiwgMHgxMTZmLCAweDExYjYsIDB4MTEwNywgMHgxMTYxLCAw
eDExQjh9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1Zp
ZXcoYi50b1N0cmluZygpKS5jb2RlVW5pdHMoKSwgezB4MTExMiwgMHgxMTZmLCAweDExYjYsIDB4
MTEwNywgMHgxMTYxLCAweDExQjh9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVy
YXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHsKLSAg
ICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLCAzKSwKLSAgICAgICAgU3RyaW5nVmll
dyhiLmNoYXJhY3RlcnMxNigpICsgMywgMyl9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxv
b3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVQb2ludHMo
KSwgezB4MTExMiwgMHgxMTZmLCAweDExYjYsIDB4MTEwNywgMHgxMTYxLCAweDExQjh9KSk7Cisg
ICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmlu
ZygpLnZhbHVlKCkpLmNvZGVVbml0cygpLCB7MHgxMTEyLCAweDExNmYsIDB4MTFiNiwgMHgxMTA3
LCAweDExNjEsIDB4MTFCOH0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlv
bnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7
CisgICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKS52YWx1ZSgpLCAzKSwKKyAgICAg
ICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCkgKyAzLCAzKX0pKTsKIH0KIAog
c3RhdGljIFZlY3RvcjxTdHJpbmc+IHZlY3RvckZyb21TcGxpdFJlc3VsdChjb25zdCBTdHJpbmdW
aWV3OjpTcGxpdFJlc3VsdCYgc3Vic3RyaW5ncykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCmluZGV4IGRjY2U0Njgu
LjAzODM4NjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9D
b250ZW50RXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcApAQCAtMTIwOSwxNSArMTIwOSwxOCBAQCBURVNUX0Yo
Q29udGVudEV4dGVuc2lvblRlc3QsIFdpZGVORkEpCiAgICAgICAgIH0KICAgICB9CiAgICAgcnVs
ZUxpc3QuYXBwZW5kKCddJyk7Ci0gICAgCi0gICAgYXV0byBiYWNrZW5kID0gbWFrZUJhY2tlbmQo
cnVsZUxpc3QudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgIHRlc3RSZXF1ZXN0KGJh
Y2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL0FBQSIpLCB7IENv
bnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpDU1NEaXNwbGF5Tm9uZVNlbGVjdG9yIH0pOwot
ICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJr
aXQub3JnL1lBQSIpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpDU1NEaXNwbGF5
Tm9uZVNlbGVjdG9yIH0pOwotICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJl
cXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL1pBQSIpLCB7IH0sIDApOwotICAgIHRlc3RSZXF1ZXN0
KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL0xBQS9BQUEi
KSwgeyB9LCAwKTsKLSAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0
KCJodHRwOi8vd2Via2l0Lm9yZy9MQUEvTUFBIiksIHsgQ29udGVudEV4dGVuc2lvbnM6OkFjdGlv
blR5cGU6OkNTU0Rpc3BsYXlOb25lU2VsZWN0b3IgfSwgMCk7Ci0gICAgdGVzdFJlcXVlc3QoYmFj
a2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvIiksIHsgfSk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gcnVsZUxpc3QudG9TdHJpbmcoKSkgeworICAgICAgICBhdXRv
IGJhY2tlbmQgPSBtYWtlQmFja2VuZChzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworCisgICAgICAg
IHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQu
b3JnL0FBQSIpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpDU1NEaXNwbGF5Tm9u
ZVNlbGVjdG9yIH0pOworICAgICAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRS
ZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy9ZQUEiKSwgeyBDb250ZW50RXh0ZW5zaW9uczo6QWN0
aW9uVHlwZTo6Q1NTRGlzcGxheU5vbmVTZWxlY3RvciB9KTsKKyAgICAgICAgdGVzdFJlcXVlc3Qo
YmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvWkFBIiksIHsg
fSwgMCk7CisgICAgICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3Qo
Imh0dHA6Ly93ZWJraXQub3JnL0xBQS9BQUEiKSwgeyB9LCAwKTsKKyAgICAgICAgdGVzdFJlcXVl
c3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvTEFBL01B
QSIpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpDU1NEaXNwbGF5Tm9uZVNlbGVj
dG9yIH0sIDApOworICAgICAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1
ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy8iKSwgeyB9KTsKKyAgICB9IGVsc2UKKyAgICAgICAgQ1JB
U0goKTsKIH0KICAgICAKICNpZmRlZiBOREVCVUcKQEAgLTEyNDcsNyArMTI1MCwxMCBAQCBURVNU
X0YoQ29udGVudEV4dGVuc2lvblRlc3QsIExhcmdlSnVtcHMpCiAgICAgICAgICAgICAgICAgICAg
IHBhdHRlcm4uYXBwZW5kKGMyKTsKICAgICAgICAgICAgICAgICAgICAgcGF0dGVybi5hcHBlbmQo
YzMpOwogICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZChjNCk7Ci0gICAgICAgICAg
ICAgICAgICAgIEVYUEVDVF9FUShDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQ
YXJzZVN0YXR1czo6T2ssIHBhcnNlci5hZGRQYXR0ZXJuKHBhdHRlcm4udG9TdHJpbmcoKSwgdHJ1
ZSwgcGF0dGVybklkKyspKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
cGF0dGVybi50b1N0cmluZygpKQorICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKENv
bnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPaywgcGFyc2Vy
LmFkZFBhdHRlcm4oKnN0cmluZywgdHJ1ZSwgcGF0dGVybklkKyspKTsKKyAgICAgICAgICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTEzMDgsMTcgKzEzMTQsMjAgQEAg
VEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBMYXJnZUp1bXBzKQogICAgICAgICAgICAgICAg
ICAgICAgICAgcGF0dGVybi5hcHBlbmQoJ3gnKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gbWF0
Y2hlcyA9IGludGVycHJldGVyLmludGVycHJldChwYXR0ZXJuLnRvU3RyaW5nKCkudXRmOCgpLCAw
KTsKLSAgICAgICAgICAgICAgICAgICAgc3dpdGNoICgoYzEgKyBjMiArIGMzICsgYzQpICUgNCkg
ewotICAgICAgICAgICAgICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAgICAgICAgICAgICAgICBj
b21wYXJlQ29udGVudHMobWF0Y2hlcywgeyB9KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgICAgICAgICAgIGNh
c2UgMjoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAzOgotICAgICAgICAgICAgICAgICAgICAg
ICAgY29tcGFyZUNvbnRlbnRzKG1hdGNoZXMsIHtwYXR0ZXJuSWR9KTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIGlmIChhdXRvIHN0cmluZyA9IHBhdHRlcm4udG9TdHJpbmcoKSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgYXV0byBtYXRjaGVzID0gaW50ZXJwcmV0ZXIuaW50ZXJwcmV0KHN0cmluZy0+
dXRmOCgpLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoKGMxICsgYzIgKyBj
MyArIGM0KSAlIDQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb21wYXJlQ29udGVudHMobWF0Y2hlcywgeyB9KTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNh
c2UgMToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wYXJlQ29udGVu
dHMobWF0Y2hlcywge3BhdHRlcm5JZH0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAgICAgICAg
IHBhdHRlcm5JZCsrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTEzNDgs
MTMgKzEzNTcsMTkgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBEZWVwTkZBKQogICAg
IFN0cmluZ0J1aWxkZXIgbG90c09mQXM7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNp
emU7ICsraSkKICAgICAgICAgbG90c09mQXMuYXBwZW5kKCdBJyk7Ci0gICAgRVhQRUNUX0VRKENv
bnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPaywgcGFyc2Vy
LmFkZFBhdHRlcm4obG90c09mQXMudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBmYWxzZSwgMCkp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGxvdHNPZkFzLnRvU3RyaW5nKCkpCisgICAgICAgIEVY
UEVDVF9FUShDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6
T2ssIHBhcnNlci5hZGRQYXR0ZXJuKHN0cmluZy0+dXRmOCgpLmRhdGEoKSwgZmFsc2UsIDApKTsK
KyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgCiAgICAgLy8gRklYTUU6IFlhcnIgb3Vn
aHQgdG8gYmUgYWJsZSB0byBoYW5kbGUgMk1CIHJlZ3VsYXIgZXhwcmVzc2lvbnMuCiAgICAgU3Ry
aW5nQnVpbGRlciB0b29NYW55QXM7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemUg
KiAyMDsgKytpKQogICAgICAgICB0b29NYW55QXMuYXBwZW5kKCdBJyk7Ci0gICAgRVhQRUNUX0VR
KENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpZYXJyRXJy
b3IsIHBhcnNlci5hZGRQYXR0ZXJuKHRvb01hbnlBcy50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCks
IGZhbHNlLCAwKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdG9vTWFueUFzLnRvU3RyaW5nKCkp
CisgICAgICAgIEVYUEVDVF9FUShDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQ
YXJzZVN0YXR1czo6WWFyckVycm9yLCBwYXJzZXIuYWRkUGF0dGVybihzdHJpbmctPnV0ZjgoKS5k
YXRhKCksIGZhbHNlLCAwKSk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIAogICAg
IFN0cmluZ0J1aWxkZXIgbmVzdGVkR3JvdXBzOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBzaXplOyArK2kpCkBAIC0xNDkwLDE3ICsxNTA1LDIyIEBAIFRFU1RfRihDb250ZW50RXh0ZW5z
aW9uVGVzdCwgSW52YWxpZEpTT04pCiAgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9u
XCI6e1widHlwZVwiOlwibm90aWZ5XCIsXCJub3RpZmljYXRpb25cIjpbXX0sXCJ0cmlnZ2VyXCI6
e1widXJsLWZpbHRlclwiOlwiLipcIn19XSIsIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0
ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkTm90aWZpY2F0aW9uKTsKICAgICBjaGVja0NvbXBpbGVy
RXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJub3RpZnlcIixcIm5vdGlmaWNhdGlvblwi
OlwiaGVyZSdzIG15IG5vdGlmaWNhdGlvblwifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6
XCIuKlwifX1dIiwgeyB9KTsKICAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7
XCJ0eXBlXCI6XCJub3RpZnlcIixcIm5vdGlmaWNhdGlvblwiOlwiXFx1MTIzNFwifSxcInRyaWdn
ZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCIuKlwifX1dIiwgeyB9KTsKLSAgICAKLSAgICBTdHJpbmdC
dWlsZGVyIHJ1bGVzOwotICAgIHJ1bGVzLmFwcGVuZCgiWyIpOwotICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCA0OTk5OTsgKytpKQotICAgICAgICBydWxlcy5hcHBlbmQoIntcImFjdGlvblwi
OntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcImFcIn19
LCIpOwotICAgIFN0cmluZyBydWxlczUwMDAwID0gcnVsZXMudG9TdHJpbmcoKTsKLSAgICBTdHJp
bmcgcnVsZXM1MDAwMSA9IHJ1bGVzLnRvU3RyaW5nKCk7Ci0gICAgcnVsZXM1MDAwMC5hcHBlbmQo
IntcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0
ZXJcIjpcImFcIn19XSIpOwotICAgIHJ1bGVzNTAwMDEuYXBwZW5kKCJ7XCJhY3Rpb25cIjp7XCJ0
eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJhXCJ9fSx7XCJh
Y3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6
XCJhXCJ9fV0iKTsKLSAgICBjaGVja0NvbXBpbGVyRXJyb3IocnVsZXM1MDAwMC51dGY4KCkuZGF0
YSgpLCB7IH0pOwotICAgIGNoZWNrQ29tcGlsZXJFcnJvcihydWxlczUwMDAxLnV0ZjgoKS5kYXRh
KCksIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Ub29NYW55
UnVsZXMpOworCisgICAgeworICAgICAgICBTdHJpbmdCdWlsZGVyIHJ1bGVzOworICAgICAgICBy
dWxlcy5hcHBlbmQoIlsiKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDQ5OTk5
OyArK2kpCisgICAgICAgICAgICBydWxlcy5hcHBlbmQoIntcImFjdGlvblwiOntcInR5cGVcIjpc
ImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcImFcIn19LCIpOworICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSBydWxlcy50b1N0cmluZygpKSB7CisgICAgICAgICAgICBTdHJp
bmcgcnVsZXM1MDAwMCA9ICpzdHJpbmc7CisgICAgICAgICAgICBTdHJpbmcgcnVsZXM1MDAwMSA9
ICpzdHJpbmc7CisgICAgICAgICAgICBydWxlczUwMDAwLmFwcGVuZCgie1wiYWN0aW9uXCI6e1wi
dHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiYVwifX1dIik7
CisgICAgICAgICAgICBydWxlczUwMDAxLmFwcGVuZCgie1wiYWN0aW9uXCI6e1widHlwZVwiOlwi
YmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiYVwifX0se1wiYWN0aW9uXCI6
e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiYVwifX1d
Iik7CisgICAgICAgICAgICBjaGVja0NvbXBpbGVyRXJyb3IocnVsZXM1MDAwMC51dGY4KCkuZGF0
YSgpLCB7IH0pOworICAgICAgICAgICAgY2hlY2tDb21waWxlckVycm9yKHJ1bGVzNTAwMDEudXRm
OCgpLmRhdGEoKSwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNP
TlRvb01hbnlSdWxlcyk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKKyAg
ICB9CiAgICAgCiAgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwi
OlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwi
aWYtZG9tYWluXCI6e319fV0iLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVy
cm9yOjpKU09OSW52YWxpZENvbmRpdGlvbkxpc3QpOwogICAgIGNoZWNrQ29tcGlsZXJFcnJvcigi
W3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0
ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLWRvbWFpblwiOls1XX19XSIsIENvbnRlbnRFeHRlbnNp
b25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQ29uZGl0aW9uTGlzdCk7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3Iu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcApp
bmRleCA1ZjFkYzhiLi5lOTRlZmM0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKQEAgLTEwNyw3ICsxMDcsOSBAQCBzdGF0aWMgU3Ry
aW5nIGNyZWF0ZUNvbW1hbmQoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIHBheWxv
YWQpCiAgICAgY29tbWFuZC5hcHBlbmRMaXRlcmFsKCJcIiA+ICIpOwogICAgIGNvbW1hbmQuYXBw
ZW5kKHBhdGgpOwogCi0gICAgcmV0dXJuIGNvbW1hbmQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBjb21tYW5kLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgcmVhZENvbnRlbnRzT2ZGaWxlKGNvbnN0
IFN0cmluZyYgcGF0aCkKQEAgLTI2NywxMCArMjY5LDEzIEBAIFRFU1RfRihGaWxlTW9uaXRvclRl
c3QsIERldGVjdERlbGV0aW9uKQogICAgICAgICBjb21tYW5kLmFwcGVuZExpdGVyYWwoInJtIC1m
ICIpOwogICAgICAgICBjb21tYW5kLmFwcGVuZCh0ZW1wRmlsZVBhdGgoKSk7CiAKLSAgICAgICAg
YXV0byByYyA9IHN5c3RlbShjb21tYW5kLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAg
ICAgIEFTU0VSVF9ORShyYywgLTEpOwotICAgICAgICBpZiAocmMgPT0gLTEpCi0gICAgICAgICAg
ICBkaWRGaW5pc2ggPSB0cnVlOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBjb21tYW5kLnRv
U3RyaW5nKCkpIHsKKyAgICAgICAgICAgIGF1dG8gcmMgPSBzeXN0ZW0oc3RyaW5nLT51dGY4KCku
ZGF0YSgpKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShyYywgLTEpOworICAgICAgICAgICAgaWYg
KHJjID09IC0xKQorICAgICAgICAgICAgICAgIGRpZEZpbmlzaCA9IHRydWU7CisgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9KTsKIAogICAgIFV0aWw6OnJ1bigmZGlk
RmluaXNoKTsKQEAgLTMyNCwxMCArMzI5LDEzIEBAIFRFU1RfRihGaWxlTW9uaXRvclRlc3QsIERl
dGVjdENoYW5nZUFuZFRoZW5EZWxldGUpCiAgICAgICAgIGNvbW1hbmQuYXBwZW5kTGl0ZXJhbCgi
cm0gLWYgIik7CiAgICAgICAgIGNvbW1hbmQuYXBwZW5kKHRlbXBGaWxlUGF0aCgpKTsKIAotICAg
ICAgICBhdXRvIHJjID0gc3lzdGVtKGNvbW1hbmQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsK
LSAgICAgICAgQVNTRVJUX05FKHJjLCAtMSk7Ci0gICAgICAgIGlmIChyYyA9PSAtMSkKLSAgICAg
ICAgICAgIGRpZEZpbmlzaCA9IHRydWU7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGNvbW1h
bmQudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgYXV0byByYyA9IHN5c3RlbShzdHJpbmctPnV0
ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgQVNTRVJUX05FKHJjLCAtMSk7CisgICAgICAgICAg
ICBpZiAocmMgPT0gLTEpCisgICAgICAgICAgICAgICAgZGlkRmluaXNoID0gdHJ1ZTsKKyAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0pOwogCiAgICAgVXRpbDo6cnVu
KCZkaWRGaW5pc2gpOwpAQCAtMzYzLDEwICszNzEsMTMgQEAgVEVTVF9GKEZpbGVNb25pdG9yVGVz
dCwgRGV0ZWN0RGVsZXRlQnV0Tm90U3Vic2VxdWVudENoYW5nZSkKICAgICAgICAgY29tbWFuZC5h
cHBlbmRMaXRlcmFsKCJybSAtZiAiKTsKICAgICAgICAgY29tbWFuZC5hcHBlbmQodGVtcEZpbGVQ
YXRoKCkpOwogCi0gICAgICAgIGF1dG8gcmMgPSBzeXN0ZW0oY29tbWFuZC50b1N0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwotICAgICAgICBBU1NFUlRfTkUocmMsIC0xKTsKLSAgICAgICAgaWYgKHJj
ID09IC0xKQotICAgICAgICAgICAgZGlkRmluaXNoID0gdHJ1ZTsKKyAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gY29tbWFuZC50b1N0cmluZygpKSB7CisgICAgICAgICAgICBhdXRvIHJjID0gc3lz
dGVtKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBBU1NFUlRfTkUocmMsIC0x
KTsKKyAgICAgICAgICAgIGlmIChyYyA9PSAtMSkKKyAgICAgICAgICAgICAgICBkaWRGaW5pc2gg
PSB0cnVlOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfSk7CiAK
ICAgICBVdGlsOjpydW4oJmRpZEZpbmlzaCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvTG9nZ2luZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvTG9nZ2luZy5jcHAKaW5kZXggMWU0YzM0Mi4uN2RlZGFkMiAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0xvZ2dpbmcuY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Mb2dnaW5nLmNwcApAQCAtOTUsNyArOTUsOSBA
QCBwdWJsaWM6CiAgICAgICAgIHdoaWxlICgobGluZSA9IGZnZXRzKGJ1ZmZlciwgc2l6ZW9mKGJ1
ZmZlciksIG1fc3RkZXJyKSkpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGxpbmUpOwogCi0g
ICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5n
ID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAg
ICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fbG9nZ2VyLmdldCgpOyB9CkBAIC0zNDAsMTUgKzM0MiwxOCBAQCBURVNU
X0YoTG9nZ2luZ1Rlc3QsIExvZ2dlckhlbHBlcikKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwo
IkxvZ2dpbmdUZXN0OjpUZXN0Qm9keSgiKTsKICAgICBhcHBlbmRVbnNpZ25lZDY0QXNIZXgocmVp
bnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGxvZ0lkZW50aWZpZXIoKSksIGJ1aWxkZXIpOwogICAg
IGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSIpOwotICAgIFN0cmluZyBzaWduYXR1cmUgPSBidWls
ZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygp
KSB7CisgICAgICAgIFN0cmluZyBzaWduYXR1cmUgPSAqc3RyaW5nOwogCi0gICAgQUxXQVlTX0xP
RyhMT0dJREVOVElGSUVSKTsKLSAgICBFWFBFQ1RfVFJVRSh0aGlzLT5vdXRwdXQoKS5jb250YWlu
cyhzaWduYXR1cmUsIGZhbHNlKSk7CisgICAgICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7
CisgICAgICAgIEVYUEVDVF9UUlVFKHRoaXMtPm91dHB1dCgpLmNvbnRhaW5zKHNpZ25hdHVyZSwg
ZmFsc2UpKTsKIAotICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgIldlbGNvbWUgYmFjayIs
ICIgbXkgZnJpZW5kcyIsICIgdG8gdGhlIHNob3ciLCAiIHRoYXQgbmV2ZXIgZW5kcyIpOwotICAg
IFN0cmluZyByZXN1bHQgPSB0aGlzLT5vdXRwdXQoKTsKLSAgICBFWFBFQ1RfVFJVRShyZXN1bHQu
Y29udGFpbnMoc2lnbmF0dXJlLCBmYWxzZSkpOwotICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5jb250
YWlucygidG8gdGhlIHNob3cgdGhhdCBuZXZlciIsIGZhbHNlKSk7CisgICAgICAgIEFMV0FZU19M
T0coTE9HSURFTlRJRklFUiwgIldlbGNvbWUgYmFjayIsICIgbXkgZnJpZW5kcyIsICIgdG8gdGhl
IHNob3ciLCAiIHRoYXQgbmV2ZXIgZW5kcyIpOworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gdGhp
cy0+b3V0cHV0KCk7CisgICAgICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5jb250YWlucyhzaWduYXR1
cmUsIGZhbHNlKSk7CisgICAgICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5jb250YWlucygidG8gdGhl
IHNob3cgdGhhdCBuZXZlciIsIGZhbHNlKSk7CisgICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7
CiAKICAgICBXVEZTZXRMb2dDaGFubmVsTGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWxX
YXJuaW5nKTsKIApAQCAtMzcxLDEwICszNzYsMTEgQEAgcHVibGljOgogCiAgICAgU3RyaW5nIGxv
ZygpCiAgICAgewotICAgICAgICBTdHJpbmcgbG9nID0gbV9sb2dCdWZmZXIudG9TdHJpbmcoKTsK
LSAgICAgICAgbV9sb2dCdWZmZXIuY2xlYXIoKTsKLQotICAgICAgICByZXR1cm4gbG9nOworICAg
ICAgICBpZiAoYXV0byBsb2cgPSBtX2xvZ0J1ZmZlci50b1N0cmluZygpKSB7CisgICAgICAgICAg
ICBtX2xvZ0J1ZmZlci5jbGVhcigpOworICAgICAgICAgICAgcmV0dXJuIGxvZzsKKyAgICAgICAg
fQorICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIFdURkxvZ0NoYW5uZWwgY2hhbm5lbCgp
IGNvbnN0IHsgcmV0dXJuIG1fbGFzdENoYW5uZWw7IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9UZXh0Q29kZWMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL1RleHRDb2RlYy5jcHAKaW5kZXggZmQwNTA1MC4uOWU1NTUzMCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1RleHRDb2RlYy5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1RleHRDb2RlYy5jcHAKQEAg
LTk4LDcgKzk4LDkgQEAgc3RhdGljIGNvbnN0IGNoYXIqIHRlc3REZWNvZGUoY29uc3QgY2hhciog
ZW5jb2RpbmdOYW1lLCBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8Y28KICAgICAgICAgaWYgKHNhd0Vy
cm9yKQogICAgICAgICAgICAgcmVzdWx0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgRVJST1IiKTsK
ICAgICB9Ci0gICAgcmV0dXJuIGVzY2FwZU5vbkFTQ0lJUHJpbnRhYmxlQ2hhcmFjdGVycyhyZXN1
bHRCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdEJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIGVzY2FwZU5vbkFTQ0lJUHJpbnRhYmxlQ2hh
cmFjdGVycygqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiBURVNUKFRleHRDb2RlYywgVVRG
OCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvV1RGU3RyaW5nVXRpbGl0aWVzLmgg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1dURlN0cmluZ1V0aWxpdGllcy5oCmluZGV4IGVjYmE5YzQu
LmY1ZDQxZWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvV1RGU3RyaW5nVXRpbGl0
aWVzLmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9XVEZTdHJpbmdVdGlsaXRpZXMuaApAQCAt
NTEsNSArNTEsNyBAQCBzdGF0aWMgU3RyaW5nIHV0ZjE2U3RyaW5nKGNvbnN0IGNoYXIxNl90ICgm
dXJsKVtsZW5ndGhdKQogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KGxlbmd0aCAtIDEpOwog
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoIC0gMTsgKytpKQogICAgICAgICBidWls
ZGVyLmFwcGVuZChzdGF0aWNfY2FzdDxVQ2hhcj4odXJsW2ldKSk7Ci0gICAgcmV0dXJuIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZS5jcHAKaW5kZXggMDU1NTQxOC4uNTBiMTIxNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNw
cApAQCAtMTA2LDcgKzEwNiw5IEBAIHN0YXRpYyBXVEY6OlN0cmluZyBkdW1wUGF0aChKU0dsb2Jh
bENvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgbm9kZVZhbHVlKQogICAgICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZChkdW1wUGF0aChjb250ZXh0LCAoSlNPYmplY3RSZWYpcGFyZW50Tm9k
ZSkpOwogICAgIH0KIAotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgV1RGOjpTdHJpbmcgZHVtcFBh
dGgoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgd29ybGQsIFdL
QnVuZGxlTm9kZUhhbmRsZVJlZiBub2RlKQpAQCAtMTU2LDcgKzE1OCw5IEBAIHN0YXRpYyBXVEY6
OlN0cmluZyByYW5nZVRvU3RyKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZVNjcmlwdFdv
cmxkUmVmIHdvcmxkCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIoZW5kT2Zmc2V0KTsK
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiBvZiAiKTsKICAgICBzdHJpbmdCdWls
ZGVyLmFwcGVuZChkdW1wUGF0aChjb250ZXh0LCBlbmROb2RlT2JqZWN0KSk7Ci0gICAgcmV0dXJu
IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIHN0YXRpYyBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gTmF2aWdhdGlvblR5cGVUb1N0
cmluZyhXS0ZyYW1lTmF2aWdhdGlvblR5cGUgdHlwZSkKQEAgLTE4NSw3ICsxODksOSBAQCBzdGF0
aWMgV1RGOjpTdHJpbmcgc3R5bGVEZWNUb1N0cihXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25S
ZWYgc3R5bGUpCiAgICAgLy8gdGhlIGVkaXRpbmcgY2xpZW50IGlmIHRoZSBzdHlsaW5nIG9wZXJh
dGlvbiBzb3VyY2UgaXMgQ29tbWFuZEZyb21ET00gb3IgQ29tbWFuZEZyb21ET01XaXRoVXNlcklu
dGVyZmFjZS4KICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7CiAgICAgc3RyaW5nQnVp
bGRlci5hcHBlbmRMaXRlcmFsKCI8RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiBBRERSRVNTPiIpOwot
ICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBzdGF0aWMgV1RGOjpTdHJpbmcgc2VjdXJpdHlPcmlnaW5Ub1N0cihX
S1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbikKQEAgLTE5OSw3ICsyMDUsOSBAQCBzdGF0aWMgV1RG
OjpTdHJpbmcgc2VjdXJpdHlPcmlnaW5Ub1N0cihXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbikK
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcihXS1NlY3VyaXR5T3JpZ2luR2V0UG9ydChv
cmlnaW4pKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnfScpOwogCi0gICAgcmV0dXJuIHN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIHN0YXRpYyBXVEY6OlN0cmluZyBmcmFtZVRvU3RyKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUp
CkBAIC0yMjMsNyArMjMxLDkgQEAgc3RhdGljIFdURjo6U3RyaW5nIGZyYW1lVG9TdHIoV0tCdW5k
bGVGcmFtZVJlZiBmcmFtZSkKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiZnJhbWUgKGFub255bW91cykiKTsKICAgICB9CiAgICAgCi0gICAgcmV0dXJuIHN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0
YXRpYyBpbmxpbmUgYm9vbCBpc0xvY2FsRmlsZVNjaGVtZShXS1N0cmluZ1JlZiBzY2hlbWUpCkBA
IC00NzYsNyArNDg2LDEwIEBAIHN0YXRpYyB2b2lkIGR1bXBMb2FkRXZlbnQoV0tCdW5kbGVGcmFt
ZVJlZiBmcmFtZSwgY29uc3QgY2hhciogZXZlbnROYW1lKQogICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiIC0gIik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoZXZlbnROYW1lKTsK
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBJbmplY3RlZEJ1bmRsZTo6c2lu
Z2xldG9uKCkub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgSW5qZWN0ZWRC
dW5kbGU6OnNpbmdsZXRvbigpLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAg
ICBDUkFTSCgpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZHVtcFJlcXVlc3REZXNjcmlwdGlv
blN1aXRhYmxlRm9yVGVzdFJlc3VsdChXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgU3RyaW5nQnVp
bGRlciYgc3RyaW5nQnVpbGRlcikKQEAgLTk0MCw3ICs5NTMsMTAgQEAgdm9pZCBJbmplY3RlZEJ1
bmRsZVBhZ2U6OmR1bXAoKQogICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUuc2V0UmVwYWludFJl
Y3RzKGFkb3B0V0soV0tCdW5kbGVQYWdlQ29weVRyYWNrZWRSZXBhaW50UmVjdHMobV9wYWdlKSku
Z2V0KCkpOwogICAgIH0KIAotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVp
bGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7Cisg
ICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIGluamVjdGVkQnVuZGxlLmRvbmUoKTsKIH0K
IApAQCAtOTg4LDcgKzEwMDQsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2Vp
dmVUaXRsZUZvckZyYW1lKFdLU3RyaW5nUmVmIHRpdGxlLCBXS0J1bmRsZUZyYW0KICAgICAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCInXG4iKTsKICAgICB9CiAKLSAgICBpbmplY3Rl
ZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1
bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0K
IAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZENsZWFyV2luZG93Rm9yRnJhbWUoV0tCdW5k
bGVGcmFtZVJlZiBmcmFtZSwgV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiB3b3JsZCkKQEAgLTEwNDMs
NyArMTA2MiwxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFBlcmZvcm1DbGllbnRS
ZWRpcmVjdEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tCdQogICAgIHN0cmluZ0J1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiIC0gd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMOiAiKTsKICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZChwYXRoU3VpdGFibGVGb3JUZXN0UmVzdWx0KHVybCkpOwog
ICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIFxuIik7Ci0gICAgaW5qZWN0ZWRCdW5k
bGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUu
b3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZv
aWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUo
V0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSB0eXBl
KQpAQCAtMTA3Nyw3ICsxMDk5LDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRGaW5p
c2hEb2N1bWVudExvYWRGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmIGZyYW1lKQogICAgICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiAtIGhhcyAiKTsKICAgICAgICAgc3RyaW5nQnVp
bGRlci5hcHBlbmROdW1iZXIocGVuZGluZ0ZyYW1lVW5sb2FkRXZlbnRzKTsKICAgICAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgb251bmxvYWQgaGFuZGxlcihzKVxuIik7Ci0gICAg
ICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsK
KyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9CiAKQEAgLTExNTAsNyArMTE3NSwxMCBA
QCBXS1VSTFJlcXVlc3RSZWYgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsU2VuZFJlcXVlc3RGb3JG
cmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZQogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExp
dGVyYWwoIiByZWRpcmVjdFJlc3BvbnNlICIpOwogICAgICAgICBkdW1wUmVzcG9uc2VEZXNjcmlw
dGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChyZXNwb25zZSwgc3RyaW5nQnVpbGRlciwgaW5qZWN0
ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGREdW1wQWxsSFRUUFJlZGlyZWN0ZWRSZXNwb25z
ZUhlYWRlcnMoKSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAg
ICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7Cisg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgaWYgKGluamVjdGVkQnVuZGxlLmlz
VGVzdFJ1bm5pbmcoKSAmJiBpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPndpbGxTZW5kUmVx
dWVzdFJldHVybnNOdWxsKCkpCkBAIC0xMTg2LDcgKzEyMTQsMTAgQEAgV0tVUkxSZXF1ZXN0UmVm
IEluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUoV0tCdW5kbGVQYWdl
UmVmIHBhZ2UKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiQmxvY2tl
ZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMICIpOwogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmQodG9XVEZTdHJpbmcodXJsU3RyaW5nKSk7CiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZCgnXG4nKTsKLSAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5v
dXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENS
QVNIKCk7CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KQEAg
LTEyMTUsNyArMTI0NiwxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVjZWl2ZVJl
c3BvbnNlRm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQgogICAgICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiAtIGRpZFJlY2VpdmVSZXNwb25zZSAiKTsKICAgICAg
ICAgZHVtcFJlc3BvbnNlRGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQocmVzcG9uc2Us
IHN0cmluZ0J1aWxkZXIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAg
ICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkp
OworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogCkBAIC0xMjM5LDcgKzEyNzMsMTAg
QEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVSZXNwb25zZUZvclJlc291cmNl
KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0IKIAogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdc
bicpOwogCi0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3Ry
aW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisg
ICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZl
Q29udGVudExlbmd0aEZvclJlc291cmNlKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJl
ZiwgdWludDY0X3QsIHVpbnQ2NF90KQpAQCAtMTI1OCw3ICsxMjk1LDEwIEBAIHZvaWQgSW5qZWN0
ZWRCdW5kbGVQYWdlOjpkaWRGaW5pc2hMb2FkRm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmLCBX
S0J1bmRsZUZyYW1lCiAgICAgU3RyaW5nQnVpbGRlciBzdHJpbmdCdWlsZGVyOwogICAgIGR1bXBS
ZXNvdXJjZVVSTChpZGVudGlmaWVyLCBzdHJpbmdCdWlsZGVyKTsKICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZExpdGVyYWwoIiAtIGRpZEZpbmlzaExvYWRpbmdcbiIpOwotICAgIGluamVjdGVkQnVu
ZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxl
Lm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2
b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmFpbExvYWRGb3JSZXNvdXJjZShXS0J1bmRsZVBh
Z2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIFdLRXJyb3JSZWYg
ZXJyb3IpCkBAIC0xMjc2LDcgKzEzMTYsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRp
ZEZhaWxMb2FkRm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmUKIAog
ICAgIGR1bXBFcnJvckRlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KGVycm9yLCBzdHJp
bmdCdWlsZGVyKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBpbmplY3Rl
ZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1
bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0K
IAogYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZENhY2hlUmVzcG9uc2UoV0tCdW5kbGVQ
YWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCB1aW50NjRfdCBpZGVudGlmaWVyKQpAQCAtMTI5MSw3
ICsxMzM0LDEwIEBAIGJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRDYWNoZVJlc3BvbnNl
KFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwKICAgICBTdHJpbmdCdWlsZGVyIHN0
cmluZ0J1aWxkZXI7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIoaWRlbnRpZmllcik7
CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgLSB3aWxsQ2FjaGVSZXNwb25zZTog
Y2FsbGVkXG4iKTsKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIu
dG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVs
c2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIC8vIFRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIHRo
ZSBjYWNoZSB0aGUgcmVzcG9uc2UuCiAgICAgcmV0dXJuIHRydWU7CkBAIC0xMzM1LDcgKzEzODEs
MTAgQEAgV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uIEluamVjdGVkQnVuZGxlUGFnZTo6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS0IKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmRMaXRlcmFsKCIgc2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0gIik7CiAgICAgICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kKFdLQnVuZGxlTmF2aWdhdGlvbkFjdGlvbkdldFNob3VsZE9wZW5F
eHRlcm5hbFVSTHMobmF2aWdhdGlvbkFjdGlvbikgPyAieWVzIiA6ICJubyIpOwogICAgICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0
VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5v
dXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwog
ICAgIH0KIAogICAgIGlmICghaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5pc1BvbGljeURl
bGVnYXRlRW5hYmxlZCgpKQpAQCAtMTM2Myw3ICsxNDEyLDEwIEBAIFdLQnVuZGxlUGFnZVBvbGlj
eUFjdGlvbiBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24oV0tCCiAgICAgfQogCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgaW5q
ZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0
ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7
CiAKICAgICBpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPm5vdGlmeURvbmUoKTsKIApAQCAt
MTM4NCw3ICsxNDM2LDEwIEBAIFdLQnVuZGxlUGFnZVBvbGljeUFjdGlvbiBJbmplY3RlZEJ1bmRs
ZVBhZ2U6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdLQnVuZGxlUGFnCiAgICAgICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiUG9saWN5IGRlbGVnYXRlOiByZXNvdXJjZSBpcyBhbiBh
dHRhY2htZW50LCBzdWdnZXN0ZWQgZmlsZSBuYW1lIFwnIik7CiAgICAgICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kKHRvV1RGU3RyaW5nKGZpbGVuYW1lKSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiXCdcbiIpOwotICAgICAgICBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9u
KCkub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0
byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBJbmplY3Rl
ZEJ1bmRsZTo6c2luZ2xldG9uKCkub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBpZiAoaW5qZWN0ZWRCdW5kbGUudGVz
dFJ1bm5lcigpICYmIGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkRGVjaWRlUmVz
cG9uc2VQb2xpY3lBZnRlckRlbGF5KCkpCkBAIC0xNDgxLDEwICsxNTM2LDEzIEBAIHZvaWQgSW5q
ZWN0ZWRCdW5kbGVQYWdlOjp3aWxsQWRkTWVzc2FnZVRvQ29uc29sZShXS1N0cmluZ1JlZiBtZXNz
YWdlLCB1aW50MzJfdCBsCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQobWVzc2FnZVN0cmluZyk7
CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7CiAKLSAgICBpZiAoaW5qZWN0ZWRCdW5k
bGUuZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyKCkpCi0gICAgICAgIGluamVjdGVkQnVuZGxlLmR1
bXBUb1N0ZEVycihzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOwotICAgIGVsc2UKLSAgICAgICAg
aW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICBp
ZiAoaW5qZWN0ZWRCdW5kbGUuZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyKCkpCisgICAgICAgICAg
ICBpbmplY3RlZEJ1bmRsZS5kdW1wVG9TdGRFcnIoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgfSBlbHNl
CisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsU2V0
U3RhdHVzYmFyVGV4dChXS1N0cmluZ1JlZiBzdGF0dXNiYXJUZXh0KQpAQCAtMTUwMCw3ICsxNTU4
LDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsU2V0U3RhdHVzYmFyVGV4dChXS1N0
cmluZ1JlZiBzdGF0dXNiYXJUZXh0KQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
VUkgREVMRUdBVEUgU1RBVFVTIENBTExCQUNLOiBzZXRTdGF0dXNUZXh0OiIpOwogICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5nKHN0YXR1c2JhclRleHQpKTsKICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmlu
Z0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcp
OworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBh
Z2U6OndpbGxSdW5KYXZhU2NyaXB0QWxlcnQoV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tCdW5kbGVG
cmFtZVJlZikKQEAgLTE1MTMsNyArMTU3NCwxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6
d2lsbFJ1bkphdmFTY3JpcHRBbGVydChXS1N0cmluZ1JlZiBtZXNzYWdlLCBXS0J1bmRsZUZyYQog
ICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiQUxFUlQ6ICIpOwogICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5nKG1lc3NhZ2UpKTsKICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZCgnXG4nKTsKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIu
dG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVs
c2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxS
dW5KYXZhU2NyaXB0Q29uZmlybShXS1N0cmluZ1JlZiBtZXNzYWdlLCBXS0J1bmRsZUZyYW1lUmVm
KQpAQCAtMTUyNiw3ICsxNTkwLDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUnVu
SmF2YVNjcmlwdENvbmZpcm0oV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tCdW5kbGVGCiAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJDT05GSVJNOiAiKTsKICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZCh0b1dURlN0cmluZyhtZXNzYWdlKSk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQo
J1xuJyk7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3Ry
aW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisg
ICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUnVuSmF2
YVNjcmlwdFByb21wdChXS1N0cmluZ1JlZiBtZXNzYWdlLCBXS1N0cmluZ1JlZiBkZWZhdWx0VmFs
dWUsIFdLQnVuZGxlRnJhbWVSZWYpCkBAIC0xNTM3LDcgKzE2MDQsMTAgQEAgdm9pZCBJbmplY3Rl
ZEJ1bmRsZVBhZ2U6OndpbGxSdW5KYXZhU2NyaXB0UHJvbXB0KFdLU3RyaW5nUmVmIG1lc3NhZ2Us
IFdLU3RyaW5nUmUKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgZGVmYXVsdCB0
ZXh0OiAiKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhkZWZhdWx0VmFs
dWUpKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBJbmplY3RlZEJ1bmRs
ZTo6c2luZ2xldG9uKCkub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgSW5q
ZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQor
ICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVhY2hB
cHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIGlu
dDY0X3QgdG90YWxCeXRlc05lZWRlZCkKQEAgLTE1NTYsNyArMTYyNiwxMCBAQCB2b2lkIEluamVj
dGVkQnVuZGxlUGFnZTo6ZGlkUmVhY2hBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV0tTZWN1
cml0eU9yaWdpblJlZgogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiB0b3Rh
bFNwYWNlTmVlZGVkOn4iKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIodHJ1
bmNhdGVkU3BhY2VOZWVkZWQpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsK
LSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIGlmIChpbmplY3RlZEJ1
bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZERpc2FsbG93SW5jcmVhc2VGb3JBcHBsaWNhdGlvbkNh
Y2hlUXVvdGEoKSkKQEAgLTE1NzYsNyArMTY0OSwxMCBAQCB1aW50NjRfdCBJbmplY3RlZEJ1bmRs
ZVBhZ2U6OmRpZEV4Y2VlZERhdGFiYXNlUXVvdGEoV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4s
CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIGRhdGFiYXNlOiIpOwogICAg
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhkYXRhYmFzZU5hbWUpKTsKICAg
ICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGluamVjdGVkQnVuZGxl
Lm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgaW5qZWN0ZWRC
dW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JB
U0goKTsKICAgICB9CiAKICAgICB1aW50NjRfdCBkZWZhdWx0UXVvdGEgPSA1ICogMTAyNCAqIDEw
MjQ7CkBAIC0xNTk1LDcgKzE2NzEsMTAgQEAgdWludDY0X3QgSW5qZWN0ZWRCdW5kbGVQYWdlOjpk
aWRFeGNlZWREYXRhYmFzZVF1b3RhKFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLAogICAgICAg
ICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJVSSBERUxFR0FURSBEQVRBQkFTRSBD
QUxMQkFDSzogaW5jcmVhc2VkIHF1b3RhIHRvICIpOwogICAgICAgICAgICAgc3RyaW5nQnVpbGRl
ci5hcHBlbmROdW1iZXIobmV3UXVvdGEpOwogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmQoJ1xuJyk7Ci0gICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0
VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgp
OwogICAgICAgICB9CiAgICAgfQogICAgIHJldHVybiBuZXdRdW90YTsKQEAgLTE2NjksNyArMTc0
OCwxMCBAQCBib29sIEluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkQmVnaW5FZGl0aW5nKFdLQnVu
ZGxlUmFuZ2VIYW5kbGVSZWYgcmFuZ2UpCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiRURJVElORyBERUxFR0FURTogc2hvdWxkQmVnaW5FZGl0aW5nSW5ET01SYW5nZToiKTsK
ICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQocmFuZ2VUb1N0cihtX3BhZ2UsIG1fd29ybGQu
Z2V0KCksIHJhbmdlKSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAg
ICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7
CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIHJldHVybiBpbmplY3RlZEJ1bmRs
ZS50ZXN0UnVubmVyKCktPnNob3VsZEFsbG93RWRpdGluZygpOwogfQpAQCAtMTY4NSw3ICsxNzY3
LDEwIEBAIGJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRFbmRFZGl0aW5nKFdLQnVuZGxl
UmFuZ2VIYW5kbGVSZWYgcmFuZ2UpCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiRURJVElORyBERUxFR0FURTogc2hvdWxkRW5kRWRpdGluZ0luRE9NUmFuZ2U6Iik7CiAgICAg
ICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHJhbmdlVG9TdHIobV9wYWdlLCBtX3dvcmxkLmdldCgp
LCByYW5nZSkpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAg
aW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICByZXR1cm4gaW5qZWN0ZWRCdW5kbGUudGVz
dFJ1bm5lcigpLT5zaG91bGRBbGxvd0VkaXRpbmcoKTsKIH0KQEAgLTE3MTEsNyArMTc5NiwxMCBA
QCBib29sIEluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkSW5zZXJ0Tm9kZShXS0J1bmRsZU5vZGVI
YW5kbGVSZWYgbm9kZSwgV0tCdW5kbGVSYQogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExp
dGVyYWwoIiBnaXZlbkFjdGlvbjoiKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoaW5z
ZXJ0YWN0aW9uc3RyaW5nW2FjdGlvbl0pOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgn
XG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICByZXR1cm4gaW5q
ZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGRBbGxvd0VkaXRpbmcoKTsKIH0KQEAgLTE3
MzcsNyArMTgyNSwxMCBAQCBib29sIEluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkSW5zZXJ0VGV4
dChXS1N0cmluZ1JlZiB0ZXh0LCBXS0J1bmRsZVJhbmdlSGFuZGxlUgogICAgICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZExpdGVyYWwoIiBnaXZlbkFjdGlvbjoiKTsKICAgICAgICAgc3RyaW5nQnVp
bGRlci5hcHBlbmQoaW5zZXJ0YWN0aW9uc3RyaW5nW2FjdGlvbl0pOwogICAgICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChz
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRU
ZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0K
ICAgICByZXR1cm4gaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGRBbGxvd0VkaXRp
bmcoKTsKIH0KQEAgLTE3NTMsNyArMTg0NCwxMCBAQCBib29sIEluamVjdGVkQnVuZGxlUGFnZTo6
c2hvdWxkRGVsZXRlUmFuZ2UoV0tCdW5kbGVSYW5nZUhhbmRsZVJlZiByYW5nZSkKICAgICAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJFRElUSU5HIERFTEVHQVRFOiBzaG91bGREZWxl
dGVET01SYW5nZToiKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQocmFuZ2VUb1N0ciht
X3BhZ2UsIG1fd29ybGQuZ2V0KCksIHJhbmdlKSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kKCdcbicpOwotICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmlu
Zyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIHJldHVy
biBpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZEFsbG93RWRpdGluZygpOwogfQpA
QCAtMTc4NCw3ICsxODc4LDEwIEBAIGJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRDaGFu
Z2VTZWxlY3RlZFJhbmdlKFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYgZnJvbVJhCiAgICAgICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIHN0aWxsU2VsZWN0aW5nOiIpOwogICAgICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZChib29sc3RyaW5nW3N0aWxsU2VsZWN0aW5nXSk7IAogICAgICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0
cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRs
ZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgp
OwogICAgIH0KICAgICByZXR1cm4gaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGRB
bGxvd0VkaXRpbmcoKTsKIH0KQEAgLTE4MDIsNyArMTg5OSwxMCBAQCBib29sIEluamVjdGVkQnVu
ZGxlUGFnZTo6c2hvdWxkQXBwbHlTdHlsZShXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25SZWYg
c3R5bGUsCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIHRvRWxlbWVudHNJ
bkRPTVJhbmdlOiIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChyYW5nZVRvU3RyKG1f
cGFnZSwgbV93b3JsZC5nZXQoKSwgcmFuZ2UpKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmQoJ1xuJyk7Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRl
ci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5n
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgcmV0dXJu
IGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkQWxsb3dFZGl0aW5nKCk7CiB9CkBA
IC0xODE5LDcgKzE5MTksMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEJlZ2luRWRp
dGluZyhXS1N0cmluZ1JlZiBub3RpZmljYXRpb25OYW1lKQogICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZEJlZ2luRWRpdGluZzoiKTsK
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhub3RpZmljYXRpb25OYW1lKSk7
CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0
cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0
VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW5q
ZWN0ZWRCdW5kbGVQYWdlOjpkaWRFbmRFZGl0aW5nKFdLU3RyaW5nUmVmIG5vdGlmaWNhdGlvbk5h
bWUpCkBAIC0xODM0LDcgKzE5MzcsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEVu
ZEVkaXRpbmcoV0tTdHJpbmdSZWYgbm90aWZpY2F0aW9uTmFtZSkKICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZExpdGVyYWwoIkVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRFbmRFZGl0aW5nOiIp
OwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5nKG5vdGlmaWNhdGlvbk5hbWUp
KTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBpbmplY3RlZEJ1bmRsZS5v
dXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRw
dXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJ
bmplY3RlZEJ1bmRsZVBhZ2U6OmRpZENoYW5nZShXS1N0cmluZ1JlZiBub3RpZmljYXRpb25OYW1l
KQpAQCAtMTg0OSw3ICsxOTU1LDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRDaGFu
Z2UoV0tTdHJpbmdSZWYgbm90aWZpY2F0aW9uTmFtZSkKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
ZExpdGVyYWwoIkVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6Iik7CiAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmQodG9XVEZTdHJpbmcobm90aWZpY2F0aW9uTmFtZSkpOwogICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQo
c3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0
cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEluamVjdGVkQnVu
ZGxlUGFnZTo6ZGlkQ2hhbmdlU2VsZWN0aW9uKFdLU3RyaW5nUmVmIG5vdGlmaWNhdGlvbk5hbWUp
CkBAIC0xODY0LDcgKzE5NzMsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZENoYW5n
ZVNlbGVjdGlvbihXS1N0cmluZ1JlZiBub3RpZmljYXRpb25OYW1lKQogICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbjoiKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhub3RpZmljYXRp
b25OYW1lKSk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgaW5qZWN0ZWRC
dW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5k
bGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAK
ICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCBlNjJlYjkzLi45MjY4ODQ5
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHAKQEAgLTE2NzgsMTAgKzE2NzgsMTMgQEAgdm9pZCBUZXN0UnVubmVyOjpzdGF0
aXN0aWNzRGlkUnVuVGVsZW1ldHJ5Q2FsbGJhY2sodW5zaWduZWQgdG90YWxQcmV2YWxlbnRSZXNv
dXIKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgXCJ0b3AzU3ViZnJhbWVVbmRl
clRvcEZyYW1lT3JpZ2luc1wiIDogIik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIo
dG9wM1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbnMpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiIH0iKTsKKworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIu
dG9TdHJpbmcoKSkgeworICAgICAgICBKU1ZhbHVlUmVmIHJlc3VsdCA9IEpTVmFsdWVNYWtlRnJv
bUpTT05TdHJpbmcoY29udGV4dCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyaW5n
LT51dGY4KCkuZGF0YSgpKSk7CiAgICAgCi0gICAgSlNWYWx1ZVJlZiByZXN1bHQgPSBKU1ZhbHVl
TWFrZUZyb21KU09OU3RyaW5nKGNvbnRleHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7Ci0gICAgCi0gICAgY2Fs
bFRlc3RSdW5uZXJDYWxsYmFjayhTdGF0aXN0aWNzRGlkUnVuVGVsZW1ldHJ5Q2FsbGJhY2tJRCwg
MSwgJnJlc3VsdCk7CisgICAgICAgIGNhbGxUZXN0UnVubmVyQ2FsbGJhY2soU3RhdGlzdGljc0Rp
ZFJ1blRlbGVtZXRyeUNhbGxiYWNrSUQsIDEsICZyZXN1bHQpOworICAgIH0gZWxzZQorICAgICAg
ICBDUkFTSCgpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZl
cigpCkBAIC0xODkxLDEwICsxODk0LDEzIEBAIHZvaWQgVGVzdFJ1bm5lcjo6Y2FsbERpZFJlY2Vp
dmVBbGxTdG9yYWdlQWNjZXNzRW50cmllc0NhbGxiYWNrKFZlY3RvcjxTdHJpbmc+JiBkCiAgICAg
ICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCIiKTsKICAgICB9CiAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmRMaXRlcmFsKCJdIik7Ci0gICAgCi0gICAgSlNWYWx1ZVJlZiByZXN1bHQg
PSBKU1ZhbHVlTWFrZUZyb21KU09OU3RyaW5nKGNvbnRleHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CiAKLSAg
ICBjYWxsVGVzdFJ1bm5lckNhbGxiYWNrKEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzQ2FsbGJhY2tJ
RCwgMSwgJnJlc3VsdCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0
cmluZygpKSB7CisgICAgICAgIEpTVmFsdWVSZWYgcmVzdWx0ID0gSlNWYWx1ZU1ha2VGcm9tSlNP
TlN0cmluZyhjb250ZXh0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmctPnV0
ZjgoKS5kYXRhKCkpKTsKKworICAgICAgICBjYWxsVGVzdFJ1bm5lckNhbGxiYWNrKEFsbFN0b3Jh
Z2VBY2Nlc3NFbnRyaWVzQ2FsbGJhY2tJRCwgMSwgJnJlc3VsdCk7CisgICAgfSBlbHNlCisgICAg
ICAgIENSQVNIKCk7CiB9CiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDY4YzQ5YzguLmYzYmE3ZmQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xODgxLDcgKzE4ODEsMTAgQEAg
V0tTdHJpbmdSZWYgVGVzdENvbnRyb2xsZXI6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3Rl
ZEZpbGVuYW1lKFdLQ29udGV4dFJlZiwKICAgICAgICAgYnVpbGRlci5hcHBlbmQoIkRvd25sb2Fk
aW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSBcIiIpOwogICAgICAgICBidWlsZGVyLmFw
cGVuZChzdWdnZXN0ZWRGaWxlbmFtZSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJcIlxuIik7
Ci0gICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPm91dHB1dFRleHQoYnVpbGRlci50b1N0cmlu
ZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+b3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBjb25zdCBjaGFyKiBk
dW1wUmVuZGVyVHJlZVRlbXAgPSBsaWJyYXJ5UGF0aEZvclRlc3RpbmcoKTsKQEAgLTE5MTEsNyAr
MTkxNCwxMCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZFJlY2VpdmVTZXJ2ZXJS
ZWRpcmVjdFRvVVJMKFdLQ29udGV4dFJlZiwgV0tEb3dubAogICAgICAgICBXS1JldGFpblB0cjxX
S1N0cmluZ1JlZj4gdXJsU3RyaW5nV0sgPSBhZG9wdFdLKFdLVVJMQ29weVN0cmluZyh1cmwpKTsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQodG9TVEQodXJsU3RyaW5nV0spLmNfc3RyKCkpOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlwiLlxuIik7Ci0gICAgICAgIG1fY3VycmVudElu
dm9jYXRpb24tPm91dHB1dFRleHQoYnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgbV9jdXJyZW50SW52
b2NhdGlvbi0+b3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
Q1JBU0goKTsKICAgICB9CiB9CiAKQEAgLTE5MzQsNyArMTk0MCwxMCBAQCB2b2lkIFRlc3RDb250
cm9sbGVyOjpkb3dubG9hZERpZEZhaWwoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmLCBXS0Vy
cm9yUmVmIGVycgogICAgICAgICBlcnJvckJ1aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5nKGVycm9y
RGVzY3JpcHRpb24pKTsKICAgICAgICAgZXJyb3JCdWlsZGVyLmFwcGVuZCgiXG4iKTsKIAotICAg
ICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KGVycm9yQnVpbGRlci50b1N0cmlu
ZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZXJyb3JCdWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KCpzdHJpbmcpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICBtX2N1cnJlbnRJ
bnZvY2F0aW9uLT5ub3RpZnlEb3dubG9hZERvbmUoKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggY2Q1ZGIwYS4uZWUyZjU1MiAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTI0OCw5ICsyNDgsMTIgQEAgdm9p
ZCBUZXN0SW52b2NhdGlvbjo6Zm9yY2VSZXBhaW50RG9uZUNhbGxiYWNrKFdLRXJyb3JSZWYgZXJy
b3IsIHZvaWQqIGNvbnRleHQpCiAKIHZvaWQgVGVzdEludm9jYXRpb246OmR1bXBSZXN1bHRzKCkK
IHsKLSAgICBpZiAobV90ZXh0T3V0cHV0Lmxlbmd0aCgpIHx8ICFtX2F1ZGlvUmVzdWx0KQotICAg
ICAgICBkdW1wKG1fdGV4dE91dHB1dC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIGVs
c2UKKyAgICBpZiAobV90ZXh0T3V0cHV0Lmxlbmd0aCgpIHx8ICFtX2F1ZGlvUmVzdWx0KSB7Cisg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IG1fdGV4dE91dHB1dC50b1N0cmluZygpKQorICAgICAg
ICAgICAgZHVtcChzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBDUkFTSCgpOworICAgIH0gZWxzZQogICAgICAgICBkdW1wQXVkaW8obV9hdWRpb1Jlc3Vs
dC5nZXQoKSk7CiAKICAgICBpZiAobV9kdW1wUGl4ZWxzKSB7Ci0tIAoyLjkuMwoK
</data>
<flag name="commit-queue"
          id="357250"
          type_id="3"
          status="-"
          setter="ews-watchlist"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>339016</attachid>
            <date>2018-04-27 13:06:17 -0700</date>
            <delta_ts>2018-04-27 13:59:23 -0700</delta_ts>
            <desc>Archive of layout-test-results from ews107 for mac-sierra-wk2</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>3265912</size>
            <attacher name="EWS Watchlist">ews-watchlist</attacher>
            
              <data encoding="base64">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
m0yi9p7pRQEAAJ4yAABFABwAYWNjZXNzaWJpbGl0eS9tYWMvYXR0YWNobWVudC1lbGVtZW50LXJl
cGxhY2VtZW50LWNoYXJhY3Rlci1zdGRlcnIudHh0VVQJAAPAdONaqmbjWnV4CwABBPUBAAAEFAAA
AO3UzUrDQBQF4L1PcR9ASmzjXxAhDrFKwUISqCBSpvFKh05nwuQ21re36tZNcWEazy4wgXDO5Hxp
HWh4TifDJDpLRpdEM15MjJTcSL5xjsNTPDqNL57pKgvBh+uE1Fh5J7yVguXWWKu89WFmZPn1kJBx
rbbmharvtyjaRgO6f6V3v6E37YTEU8NMsmRa6GolQVd8TLVl3fDuRHZfmKvpQ5k9lvPibjqb36Rq
Uuapyohda4J3a3aiLbU6GL2wPDhKf5WikOBXfOA5xizKr2vfGOFpzUGL8e4Qb6MHKT5nkXMlDfr/
qxSQCTJhGZAJMkEmyASZ0D9kgkxYBmSCTJAJMkEm9P9Dijjqg0x7p+ioTPvlGPfln+pBii7J9B/7
h0yQCcuATJAJMkEmyIT+IRNkwjIgE2SCTJAJMqF/yASZsAzI1OH+PwBQSwMECgAAAAAAz1ibTAAA
AAAAAAAAAAAAACQAHABhY2Nlc3NpYmlsaXR5L21hYy9hdHRyaWJ1dGVkLXN0cmluZy9VVAkAA6Vm
41q9d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIANFgm0yWGMpWAgEAAAIXAABuABwAYWNjZXNz
aWJpbGl0eS9tYWMvYXR0cmlidXRlZC1zdHJpbmcvYXR0cmlidXRlZC1zdHJpbmctZG9lcy1ub3Qt
aW5jbHVkZXMtbWlzc3BlbGxlZC1mb3Itbm9uLWVkaXRhYmxlLXN0ZGVyci50eHRVVAkAA7p041ql
ZuNadXgLAAEE9QEAAAQUAAAA7dTdSsNAEAXge59iHkBK7I9CECEusUrBQBKIUCRs4kiXbnfC7DTW
t7faR/BCKnO3sAvDmeV82cAwvYGraZpcp7M5QIPdykmNUcp9CMjr+WyxSF7hNmcmvkvBLA0FwYNU
KA/Oe0OeuHGy+Tmk4MJovXuD/vQKkkMygad3+KQ9fNggIAQREWSD0Nl+K2x7vITBo414vJHjhNYU
z3X+UrfVY9G095lZ1WVmcsAwOqawwyDWw2jZ2c7j5CL7VYpKmLZ45jmWKIZ2A0UnWAzIVhyFc/yN
f5DiuxYl9hJ1/3+VQmVSmbQZKpPKpDKpTCqT7l9lUpm0GSqTyqQyqUwqk+7/lOILUEsDBBQAAgAI
ANVgm0ylzzLNNgEAAAQuAABEABwAYWNjZXNzaWJpbGl0eS9tYWMvYXR0cmlidXRlZC1zdHJpbmct
aW5jbHVkZXMtaGlnaGxpZ2h0aW5nLXN0ZGVyci50eHRVVAkAA8J041qsZuNadXgLAAEE9QEAAAQU
AAAA7dTvSsMwFAXw7z7FfQAZW6x/KCLUUKcMLKyFCiIlq1cWliUlvZvz7Z36BvpBV8+3QgrhnHB+
WRdJndNEpeOzNJkQ1byYWam4l/nGe46PyclpcvFEl3mMIV6lpKc6eOGdlCw31jkdXIi1leXnR0rW
b42zz9R+/UXj3XhEdy/0Fjb0aryQBOqZSZZMC9OuJJqWj6lzbHren8j+hkYX91X+UDXlbVE315me
VfNM58R+a2Pwa/ZiHG1NtGbheHSU/ShFKTGs+MBzTFl0WHeht8JFx9GIDf4QX2MAKT5mMedWevT/
WykgE2TCMiATZIJMkAkyoX/IBJmwDMgEmSATZIJM6B8yQSYsAzJBJsgEmSAT+v9eCjUImdRAZFKD
kEn9v2X8KZkUZIJMkAnLgEyQCTJBJsg02P7fAVBLAwQKAAAAAADPWJtMAAAAAAAAAAAAAAAAHgAc
AGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdC10ZXh0L1VUCQADpWbjWr1341p1eAsAAQT1AQAABBQA
AABQSwMEFAACAAgA0WCbTKqydR0KAQAAnBsAADYAHABhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Qt
dGV4dC9zZWxlY3QtdGV4dC0xLXN0ZGVyci50eHRVVAkAA7p041qlZuNadXgLAAEE9QEAAAQUAAAA
7dTRSsMwGAXge5/ifwAZtdsUigg1dFMGFtpChSElrf9YWJaU9F+db+/UR/BCJ+eukEI4J5wv7QPF
N3QVJ9F1Mp0R1dyujFQ8SHFwjsN6Np3P4xe6zULw4S4htVTeCR+lZFkYa5W3PtRGtl8fCRk3amte
qfv+i6JjNKHHDb37A71pJySeBmaSLVOru50E3fEl9Zb1wKcTOd3QqPypyp6rpnzI6+Y+VauqSFVG
7EYTvNuzE21p1MHo1vLkIv1RilKC3/GZ51iyKL/v/WCE856DFuPdOb7GP0jxOYuCOxnQ/2+lgEyQ
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
bWF0aW9uLWRpcmVjdGlvbi1zdGRlcnIudHh0VVQJAAPQdONaumbjWnV4CwABBPUBAAAEFAAAAO3U
4UrDMBAH8O8+xT2AjDptBkWEGuqUgYW1UGFISevJwrJcSW91vr1TH0FB1923QALH/8L/l3YBpjO4
mCaRSuIYoMJmYbnEnpc77zGsri5jNXuG6ywECjcJ6Lkmz7jnAvnOOqfJUagsr78OCVg/GGdfoP1+
BdE+msDDK7zTDt6MZ2CCHhF4jdCYdsPBtHgOnUPT4+GGDxNqnT+W2VNZF/d5Vd+melEuU50B+sEG
8lv0bBwMJljTOJycpT9KUXCgDR55jjmypm1HvWXMOwyGLflj/I0RpPisxRJb7mX/f5VCZBKZpBki
k8gkMolMItMp7l+NQiY1EpnUKGRSp9eMfyWTEplEJpFJmiEy/VKKD1BLAwQUAAIACADdYJtMbtdL
7gUBAABoEgAAOgAcAGFuaW1hdGlvbnMvYW5pbWF0aW9uLWVuZC1ldmVudC1kZXN0cm95LXJlbmRl
cmVyLXN0ZGVyci50eHRVVAkAA9F041q7ZuNadXgLAAEE9QEAAAQUAAAA7dThSsMwEAfw7z7FPYCM
Ol0DRYQa6pSBhbVQQaSk9WRhWa5cb3W+vVMfwQ/aLt8CCRz/C/9f2jHMFVzMkyhOFjFAhc3KSom9
rPfeIz9fXS5i9QLXGTPxTQJ6qckLHqRAubPOaXLElZXN9yEB6wfj7Cu0P68gOkQzeHiDD9rDu/EC
QtAjgmwQGtNuhU2L59A5ND0eb+Q4odb5Y5k9lXVxn1f1bapX5TrVGaAfLJPfoRfjYDBsTeNwdpb+
KkUhTFsceY4liqZdR70VzDtkI5b8GH9jAim+arHGVvqw/79KEWQKMoVmBJmCTEGmIFOQ6RT3ryYh
k5qITGoSMqnTa8a/kmms+/8EUEsDBBQAAgAIAOBgm0yNFjWZ+gAAAGgSAAA2ABwAYW5pbWF0aW9u
cy9hbmltYXRpb24tZm9sbG93ZWQtYnktdHJhbnNpdGlvbi1zdGRlcnIudHh0VVQJAAPTdONavGbj
WnV4CwABBPUBAAAEFAAAAO3UUUrDQBAG4HdPMQeQEqttJYgQl1ilYCAJRBAJmzjSpdudMDuN9fZW
PYIPpTJvC7sw/LP8XzYwTBdwMU2TeTq7BmiwWzmpMUq5CwH55epyNl+8wk3OTHybglkaCoJ7qVDu
nfeGPHHjZP1zSMGF0Xr3Bv3vK0j2yQQe3+GTdvBhg4AQRESQNUJn+42w7fEcBo824uFGDhNaUzzV
+XPdVg9F095lZlWXmckBw+iYwhaDWA+jZWc7j5Oz7E8pKmHa4InnWKIY2g4UnWAxIFtxFE7xN/5B
iu9alNhL1P0fK4XKpDJpM1QmlUllUplUJt2/yqQyaTNUpuOk+AJQSwMEFAACAAgA4WCbTD5pbMD6
AAAAaBIAACgAHABhbmltYXRpb25zL2FuaW1hdGlvbi1oaXQtdGVzdC1zdGRlcnIudHh0VVQJAAPV
dONavmbjWnV4CwABBPUBAAAEFAAAAO3U3UrDQBAF4HufYh5Aylp/AkGEuMQqBQNJIEKRsIkjXbrd
CZNprG9v1UfwolTmbmEXhjPL+bKBYZ7AxTw1SWoMQIPd0kuNo5S7GJFXV5fXN8kr3ObMxHcp2IWl
KLiXCuXBh2ApEDde1j+HFHycXPBv0P++ArM3M3h6h0/awYeLAkIwIoKsETrXb4Rdj+cwBHQjHm7k
MKG1xXOdv9Rt9Vg07X1ml3WZ2RwwTp4pbjGKCzA59q4LODvL/pSiEqYNnniOBYql7UCjFywGZCee
4in+xj9I8V2LEnsZdf/HSqEyqUzaDJVJZVKZVCaVSfevMqlM2gyV6TgpvgBQSwMEFAACAAgA4GCb
TF9KNL7wAAAAzg0AADIAHABhbmltYXRpb25zL2FuaW1hdGlvbi1oaXQtdGVzdC10cmFuc2Zvcm0t
c3RkZXJyLnR4dFVUCQAD1HTjWr1m41p1eAsAAQT1AQAABBQAAADtlNFKw1AMhu99ijyAjDrdhkWE
eqhTBhbaQgWRclojO+wsKTlZnW/v1EfwQqbnLpBA+BL+LxsEpgs4m6bJPJ1dAjTYrZzWGLTcEaE8
XZzP5otnuMpFWK5TMEvDpLjXCvXWeW/YszRO119FCo5G690L9N9TkOyTCdy/wjvv4M2SgjIERNA1
Qmf7jYrt8RQGjzbgoaOHDa0pHur8sW6ru6JpbzKzqsvM5IA0OmHaIqn1MFpxtvM4Ocl+RFGp8AaP
nGOJang7cHCKxYBi1TEd4zf+AMVnLErsNcT7/xZFNFM0U0xGNFM0UzRTNFM00/+4/wdQSwMEFAAC
AAgA4WCbTOOUKILwAAAAzg0AADMAHABhbmltYXRpb25zL2FuaW1hdGlvbi1pbml0aWFsLWluaGVy
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
AAgA52CbTLKvv2boAAAANAkAADEAHABhbmltYXRpb25zL2NyYXNoLW9uLXJlbW92aW5nLWFuaW1h
dGlvbi1zdGRlcnIudHh0VVQJAAPhdONazGbjWnV4CwABBPUBAAAEFAAAAO2Ub0vDQAyH3/sp8gFk
dH+0UESoR93GwEJbqDBGudaMHbtdSi6r89s79SOIyMa9CyQQnoTfk/YMkxjGkySKk/EUoMZ2ZaRC
L8XROeT1bHp3H2/gIWMmfkxAzRU5wZOUKM/GWkWWuDay+y4SMG7Q1rxB9zMF0SkawXILH3SEd+0E
hMAjguwQWt3thXWHt9Bb1B7PHTlvaFT+UmWvVVMu8rp5StWqKlKVAbrBMLkDOtEWBs1GtxZHN+mv
KEph2uOFc8xRFB168kYw75G1GHKX+I0roPiKRYGd+HD//6IIZgpmCskIZvoLik9QSwMEFAACAAgA
52CbTHiszYEHAQAAaBIAADQAHABhbmltYXRpb25zL2Nyb3NzLWZhZGUtYm9yZGVyLWltYWdlLXNv
dXJjZS1zdGRlcnIudHh0VVQJAAPidONazGbjWnV4CwABBPUBAAAEFAAAAO3U4UrDMBAH8O8+xT2A
jG6LFooINdQpAwtroYJISevJwrJcud7qfHunPoKKruZbIIHwv+P/SzuGWQzTWRLFyXQOUGGztFJi
L6ud98gPan52Hj/CRcZMfJmAXmjygnspUK6tc5occWVl/XFIwPrBOPsE7ecriPbRBG6f4ZV28GK8
gBD0iCBrhMa0G2HT4il0Dk2Phxs5/FDr/K7M7su6uMmr+irVy3KV6gzQD5bJb9GLcTAYtqZxODlJ
v5SiEKYNHnmOBYqmbUe9Fcw7ZCOW/DFuYwQp3muxwlb6MP/fShFkCjKFZgSZfj6FGoVMaiQyqVHI
pP5fM/6UTCrIFGQKMoVmBJm+KcUbUEsDBBQAAgAIAOhgm0yOymHg+gAAAGgSAAAvABwAYW5pbWF0
aW9ucy9kdXBsaWNhdGVkLWtleWZyYW1lcy1uYW1lLXN0ZGVyci50eHRVVAkAA+N041rNZuNadXgL
AAEE9QEAAAQUAAAA7dRRSsNAEAbgd08xB5CS1tZAECEusUrBQBKIUCRs4pQu3e6EyTTW21v1CD6U
yrwt7MLwz/J/ac8wi2E6S6I4mS4AamxXTiocpDiEgLye3yxu4ze4y5iJ7xMwS0NB8CglyqPz3pAn
rp1sfw4JuDBa796h+30F0TGawPMGPukAHzYICMGACLJFaG23E7YdXkPv0Q54upHThMbkL1X2WjXl
U143D6lZVUVqMsAwOqawxyDWw2jZ2dbj5Cr9U4pSmHZ44TmWKIb2PQ1OMO+RrTgKl/gb/yDFdy0K
7GTQ/Z8rhcqkMmkzVCaVSWVSmVQm3b/KpDJpM1Sm86T4AlBLAwQUAAIACADwYJtM8se/FfEAAADO
DQAAJQAcAGFuaW1hdGlvbnMvZ2VuZXJpYy1mcm9tLXRvLXN0ZGVyci50eHRVVAkAA/N041reZuNa
dXgLAAEE9QEAAAQUAAAA7ZTdSsNAEEbvfYp5ACnpjwaCCHGJbSkYSAIRSgmbOKVLtzthdhrr21v1
EbyQ2r0bmIHhzPCdtGeYxDCeJFGcTMcANbYrIxV6KY7OIa9n07v7eAMPGTPxYwJqrsgJnqREeTbW
KrLEtZHdd5GAcYO25g26nymITtEIllv4oCO8aycgBB4RZIfQ6m4vrDu8hd6i9njuyHlDo/KXKnut
mnKR181TqlZVkaoM0A2GyR3QibYwaDa6tTi6SX9FUQrTHi+cY46i6NCTN4J5j6zFkLvEb/wDiq9Y
FNiJD/f/K4pgpmCmkIxgpmCmYKZgpmCm67j/J1BLAwQUAAIACADwYJtMh0DHQ/wAAADODQAAIgAc
AGFuaW1hdGlvbnMvaW1wb3J0LWNyYXNoLXN0ZGVyci50eHRVVAkAA/R041reZuNadXgLAAEE9QEA
AAQUAAAA7ZThSsNADMe/+xR5ABndTS0UEepRpwwstIUKIuVaIzt2u5Q0q/PtnfoIY2hrvwUSCL+E
/y9uGVQIcxUFYbSYA5RYr6wU2Em28x75+WJxeRW+wHXCTHwTgV5q8oJ7yVHurHOaHHFpZf1dRGB9
b5x9heZnCoJ9MIOHN/igHbwbLyAEHSLIGqE2zUbYNHgOrUPT4aEjhw2VTh+L5Kmo8vu0rG5jvSqy
WCeAvrdMfotejIPesDW1w9lZfBRFLkwbHDjHEkXTtqXOCqYtshFLfojfGAHFVywybKSb7v9bFJOZ
JjNNyZjMdHoKNQozqZGYSY3CTOr/JeNPmWmo9/8EUEsDBBQAAgAIAPFgm0wV3s3U+wAAAM4NAAAc
ABwAYW5pbWF0aW9ucy9pbXBvcnQtc3RkZXJyLnR4dFVUCQAD9XTjWt9m41p1eAsAAQT1AQAABBQA
AADtlOFKw0AMx7/7FHkAGbWnFooI9ahTBhbaQoUh5VojO3a7lDSr8+2d+ggi2tpvgQTCL+H/SzqG
MIKzMA6iWIUAFTYrKyX2ku+9R16fq4vL6AmuUmbi6xj0UpMXPEiBcmud0+SIKyubzyIG6wfj7DO0
X1MQHIIF3L/AG+3h1XgBIegRQTYIjWm3wqbFU+gcmh6PHTluqHX2UKaPZV3cZVV9k+hVmSc6BfSD
ZfI79GIcDIataRwuTpJvURTCtMWRcyxRNO066q1g1iEbseTH+I0JUHzEIsdW+vn+v0Uxm2k205yM
2Uw/T6EmYSY1ETOpSZhJ/b9k/CkzjfX+71BLAwQUAAIACADxYJtMOVpq8vwAAADODQAALgAcAGFu
aW1hdGlvbnMva2V5ZnJhbWUtYXV0b2Nsb3NlLWJyYWNlLXN0ZGVyci50eHRVVAkAA/Z041rgZuNa
dXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABl1PS0UEepRpwwstIUKIuVaIzt2u5Q0q/PtnfoI
Itrab4EEwi/h/0s6hmUEZ8s4iOIwBKiwWVspsZd87z3yowrPL6InuEyZia9i0CtNXvAgBcqNdU6T
I66sbD6LGKwfjLPP0H5NQXAIFnD3Am+0h1fjBYSgRwTZIDSm3QqbFk+hc2h6PHbkuKHW2X2ZPpR1
cZtV9XWi12We6BTQD5bJ79CLcTAYtqZxuDhJvkVRCNMWR86xQtG066i3glmHbMSSH+M3JkDxEYsc
W+nn+/8WxWym2UxzMmYz/TyFmoSZ1ETMpCZhJvX/kvGnzDTW+78DUEsDBBQAAgAIAPJgm0zvbCDb
8QAAAM4NAABCABwAYW5pbWF0aW9ucy9rZXlmcmFtZS1tdWx0aXBsZS10aW1pbmctZnVuY3Rpb25z
LXRyYW5zZm9ybS1zdGRlcnIudHh0VVQJAAP3dONa4WbjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzH
v/sUeQAZdZsrFBHq0c0xsNAWKoxRrjVjx26XksvqfHunPoIfZO6+BRIIv4T/L+0ZxjHcjZMoTiZT
gBrblZEKvRRH55DX08n9LN7AQ8ZM/JiAWihygicpUebGWkWWuDay+y4SMG7Q1rxB9zMF0SkawXIL
H3SEd+0EhMAjguwQWt3thXWHt9Bb1B7PHTlvaFT+UmWvVVM+53XzlKpVVaQqA3SDYXIHdKItDJqN
bi2ObtJfUZTCtMcL51igKDr05I1g3iNrMeQu8Rv/gOIrFgV24sP9/4oimCmYKSQjmCmYKZgpmCmY
6Tru/wlQSwMEFAACAAgA8mCbTCnmdlHxAAAAzg0AADsAHABhbmltYXRpb25zL2tleWZyYW1lLXNl
bGVjdG9yLW5lZ2F0aXZlLXBlcmNlbnRhZ2Utc3RkZXJyLnR4dFVUCQAD93TjWuJm41p1eAsAAQT1
AQAABBQAAADtlN1Kw0AQRu99inkAKbE/BoIIcYlVCg0kgQilhE2c0qXbnTA7TevbW/URvJDavRuY
geHM8J20ZxjHcDdOojiZzABqbBdGKvRSHJxDXk0ns/t4DQ8ZM/FjAmquyAmepER5NtYqssS1ke13
kYBxg7bmHbqfKYhO0QheN/BBBzhqJyAEHhFki9DqbiesO7yF3qL2eO7IeUOj8mWVvVVN+ZLXzVOq
FlWRqgzQDYbJ7dGJtjBoNrq1OLpJf0VRCtMOL5xjjqJo35M3gnmPrMWQu8Rv/AOKr1gU2IkP9/8r
imCmYKaQjGCmYKZgpmCmYKbruP8nUEsDBBQAAgAIAPJgm0xcYQ4H/AAAAM4NAAAwABwAYW5pbWF0
aW9ucy9rZXlmcmFtZS10aW1pbmctZnVuY3Rpb25zMi1zdGRlcnIudHh0VVQJAAP4dONa4mbjWnV4
CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZdXMtFBHqUacMLLSFCkPKtUZ27HYpaVbn2zv1EUS0
9b4FEgi/hP8v6RjmEVzM4yCKF0uACpu1kRJ7yQ/OIW8uF8sweoKrlJn4Oga1UuQEj1Kg3BprFVni
ysj2s4jBuEFb8wzt1xQEx2AG9y/wRgd41U5ACHpEkC1Co9udsG7xHDqLusdTR04bapU9lOljWRd3
WVXfJGpd5olKAd1gmNwenWgLg2ajG4uzs+RbFIUw7XDkHCsURfuOeiOYdchaDLkxfmMCFB+xyLGV
3t//tyi8mbyZfDK8mX6eIpyEmcKJmCmchJnC/5eMP2Wmsd7/HVBLAwQUAAIACADzYJtMzv8EkPsA
AADODQAAJwAcAGFuaW1hdGlvbnMva2V5ZnJhbWVzLWR5bmFtaWMtc3RkZXJyLnR4dFVUCQAD+XTj
WuNm41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGXXTHRQR6lGnDCy0hQoi5VojO3a7lDSr
8+2d+ggi2nrfAgmEX8L/l3QMcwVn8zhS8WIJUGGztlJiL/nee+TH88XFUj3BZcpMfBWDXmnyggcp
UG6sc5occWVl81nEYP1gnH2G9msKokM0g7sXeKM9vBovIAQ9IsgGoTHtVti0eAqdQ9PjsSPHDbXO
7sv0oayL26yqrxO9LvNEp4B+sEx+h16Mg8GwNY3D2UnyLYpCmLY4co4ViqZdR70VzDpkI5b8GL8x
AYqPWOTYSh/u/1sUwUzBTCEZwUw/T6EmYSY1ETOpSZhJ/b9k/CkzjfX+71BLAwQUAAIACADzYJtM
BGlBSvwAAADODQAAMwAcAGFuaW1hdGlvbnMva2V5ZnJhbWVzLWluZmluaXRlLWl0ZXJhdGlvbnMt
c3RkZXJyLnR4dFVUCQAD+nTjWuRm41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGXVTW4oI
9ahTBhbaQgci5VojO3a7lDSr8+2d+ggi2nrfAgmEX8L/l3QM8xDO5nEQxosQoMJmZaTEXvK9c8iP
54uLy/AJrlJm4usY1FKREzxIgXJrrFVkiSsjm88iBuMGbc0ztF9TEByCGdy/wBvt4VU7ASHoEUE2
CI1ut8K6xVPoLOoejx05bqhV9lCm67Iu7rKqvknUqswTlQK6wTC5HTrRFgbNRjcWZyfJtygKYdri
yDmWKIp2HfVGMOuQtRhyY/zGBCg+YpFjK72//29ReDN5M/lkeDP9PEU0CTNFEzFTNAkzRf8vGX/K
TGO9/ztQSwMEFAACAAgA9GCbTG6Og5L8AAAAzg0AADsAHABhbmltYXRpb25zL2tleWZyYW1lcy1p
dGVyYXRpb24tY291bnQtbm9uLWludGVnZXItc3RkZXJyLnR4dFVUCQAD+3TjWuVm41p1eAsAAQT1
AQAABBQAAADtlOFKw0AMx7/7FHkAGXVTa4sI9ahTBhbaQgWRcq2RHbtdSprV+fZOfQQRbb1vgQTC
L+H/SzqGeQgn8zgI48UFQIXNykiJveQ755AfTxdn5+ETXKbMxFcxqKUiJ7iXAuXGWKvIEldG1p9F
DMYN2ppnaL+mINgHM7h7gTfawat2AkLQI4KsERrdboR1i8fQWdQ9Hjpy2FCr7L5MH8q6uM2q+jpR
qzJPVAroBsPktuhEWxg0G91YnB0l36IohGmDI+dYoijadtQbwaxD1mLIjfEbE6D4iEWOrfT+/r9F
4c3kzeST4c308xTRJMwUTcRM0STMFP2/ZPwpM431/u9QSwMEFAACAAgA9GCbTOi6fyr5AAAAaBIA
ACwAHABhbmltYXRpb25zL2tleWZyYW1lcy1vdXQtb2Ytb3JkZXItc3RkZXJyLnR4dFVUCQAD/HTj
WuZm41p1eAsAAQT1AQAABBQAAADt1FFKw0AQBuB3TzEHkBJrNRBEiEusUjCQBCKIhE0c6dLtTpid
xnp7qx7Bh1KZt4VdGP5Z/i8fGeYpXMyzJM0WCUCL/cpJg1GqXQjIL4vLq+v0FW4KZuLbDMzSUBDc
S41y77w35IlbJ+ufQwYuTNa7Nxh+X0GyT2bw+A6ftIMPGwSEICKCrBF6O2yE7YDnMHq0EQ83cpjQ
mfKpKZ6brn4o2+4uN6umyk0BGCbHFLYYxHqYLDvbe5yd5X9KUQvTBk88xxLF0Hak6ATLEdmKo3CK
v/EPUnzXosJBou7/WClUJpVJm6EyqUwqk8qkMun+VSaVSZuhMh0nxRdQSwMEFAACAAgA9WCbTLRc
w538AAAAzg0AACQAHABhbmltYXRpb25zL2tleWZyYW1lcy1ydWxlLXN0ZGVyci50eHRVVAkAA/10
41rnZuNadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABntNi0UEepRpwwstIUKIuXaRXbsdilp
VufbO/URRLT1vgUSCL+E/y/pGOYRhPM4iOJlAFBhszZSYi/5wTnkp+Xi4jJ6hquUmfg6BrVS5ASP
UqDcGmsVWeLKyPaziMG4QVuzgfZrCoJjMIP7F3ijA7xqJyAEPSLIFqHR7U5Yt3gOnUXd46kjpw21
yh7K9LGsi7usqm8StS7zRKWAbjBMbo9OtIVBs9GNxdlZ8i2KQph2OHKOFYqifUe9Ecw6ZC2G3Bi/
MQGKj1jk2Erv7/9bFN5M3kw+Gd5MP08RTsJM4UTMFE7CTOH/S8afMtNY7/8OUEsDBBQAAgAIAPVg
m0zr0RXF/AAAAM4NAAAfABwAYW5pbWF0aW9ucy9rZXlmcmFtZXMtc3RkZXJyLnR4dFVUCQAD/nTj
Wuhm41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGd05LRQR6lGnDCy0hQoi5VojO3a7lDSr
8+2d+ghjaGu/BRIIv4T/L24ZVAhzFQVhtJgDlFivrBTYSbbzHvl5cXF5Fb7AdcJMfBOBXmrygnvJ
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
CAD9YJtM8AasUwgBAABoEgAALQAcAGFuaW1hdGlvbnMvc2ltdWx0YW5lb3VzLXN0YXJ0LWxlZnQt
c3RkZXJyLnR4dFVUCQADDnXjWvhm41p1eAsAAQT1AQAABBQAAADt1OFKwzAQB/DvPsU9gIw6nS1F
hC7UKQMLbaGCSEm7k4VluXK91fn2Tn0EFV3Nt0AC4X/H/5d0DNMQzqZxEMazEKDCZmmkxF7ynXPI
jxfns8vwCa5SZuLrGNRCkRPcS4FyY6xVZIkrI+uPQwzGDdqaFbSfryDYBxO4e4ZX2sGLdgJC0COC
rBEa3W6EdYun0FnUPR5u5PBDrbL7Mn0o6+I2q+p5opZlnqgU0A2GyW3RibYwaDa6sTg5Sb6UohCm
DR55jgWKom1HvRHMOmQthtwxbmMEKd5rkWMrvZ//b6XwMnmZfDO8TD+fIhqFTNFIZIpGIVP0/5rx
p2SKvExeJi+Tb4aX6ZtSvAFQSwMEFAACAAgAAGGbTA0u3Gb8AAAAzg0AACsAHABhbmltYXRpb25z
L3NwcmluZy1jb21wdXRlZC1zdHlsZS1zdGRlcnIudHh0VVQJAAMPdeNa+WbjWnV4CwABBPUBAAAE
FAAAAO2U4UrDQAzHv/sUeQAZdTpriwj1qFMGFtpCBZFyrZEdu11KmtX59k59BBFtvW+BBMIv4f9L
OoZ5CCfzOAjjxQVAhc3KSIm95DvnkB/PThfn4RNcpszEVzGopSInuJcC5cZYq8gSV0bWn0UMxg3a
mmdov6Yg2AczuHuBN9rBq3YCQtAjgqwRGt1uhHWLx9BZ1D0eOnLYUKvsvkwfyrq4zar6OlGrMk9U
CugGw+S26ERbGDQb3VicHSXfoiiEaYMj51iiKNp21BvBrEPWYsiN8RsToPiIRY6t9P7+v0XhzeTN
5JPhzfTzFNEkzBRNxEzRJMwU/b9k/CkzjfX+71BLAwQUAAIACAAAYZtMJyRyaPEAAADODQAAJQAc
AGFuaW1hdGlvbnMvc3ByaW5nLWZ1bmN0aW9uLXN0ZGVyci50eHRVVAkAAxB141r6ZuNadXgLAAEE
9QEAAAQUAAAA7ZThSsNADMe/7ynyAGPU6VYsInRHnWNgoS10IFKuXWTHbpeSy+p8e6c+gh9ket8C
CYRfwv+X9gzTGK6mSRQns1uAGtu1kQq9FEfnkJ9vrmfz+AXuMmbi+wTUUpETPEmJ8mCsVWSJayO7
ryIB4wZtzRa67ymITtEEVq/wTkd4005ACDwiyA6h1d1eWHc4ht6i9njuyHlDo/KnKttUTfmY180i
VeuqSFUG6AbD5A7oRFsYNBvdWpyM0h9RlMK0xwvnWKIoOvTkjWDeI2sx5C7xG3+A4jMWBXbiw/1/
iyKYKZgpJCOYKZgpmCmYKZjpf9z/A1BLAwQUAAIACAAAYZtMWHSnFPoAAABoEgAAJAAcAGFuaW1h
dGlvbnMvc3ByaW5nLXBhcnNpbmctc3RkZXJyLnR4dFVUCQADEHXjWvtm41p1eAsAAQT1AQAABBQA
AADt1N1Kw0AQBeB7n2IeQMpafypBhLjEKgUDSSCCSNjEkS7d7oTJNNa3t9pH6EWpzN3CLgxnlvOl
PcN0BhfTxNwmxgDU2C68VDhIsYkR+e3q8vpm9g53GTPxfQJ2bikKbqVEefQhWArEtZfl3yEBH0cX
/Ad0+1dgtmYCz5/wTRv4clFACAZEkCVC67qVsOvwHPqAbsDdjewmNDZ/qbLXqimf8rp5SO2iKlKb
AcbRM8U1RnEBRsfetQEnZ+lBKUphWuGJ55ijWFr3NHjBvEd24ime4m/8gxS/tSiwk0H3f6wUKpPK
pM1QmVQmlUllUpl0/yqTyqTNUJmOk+IHUEsDBBQAAgAIAAFhm0y5TwIl+gAAAGgSAAA+ABwAYW5p
bWF0aW9ucy9zdGFja2luZy1jb250ZXh0LXVuY2hhbmdlZC13aGlsZS1ydW5uaW5nLXN0ZGVyci50
eHRVVAkAAxJ141r9ZuNadXgLAAEE9QEAAAQUAAAA7dTdSsNAEAXge59iHkBKWn8qQYS4xCoFA0kg
BZGwiSNdut0Js9NY396qj+BFqczdwi4MZ5bzZQPDbA7TWZrcpMkUoMFu6aTGKOUuBOSXy4ur6/kr
3ObMxHcpmIWhILiXCuXBeW/IEzdO1j+HFFwYrXdv0P++gmSfTODpHT5pBx82CAhBRARZI3S23wjb
Hs9h8GgjHm7kMKE1xXOdr+q2eiya9j4zy7rMTA4YRscUthjEehgtO9t5nJxlf0pRCdMGTzzHAsXQ
dqDoBIsB2YqjcIq/8Q9SfNeixF6i7v9YKVQmlUmboTKpTCqTyqQy6f5VJpVJm6EyHSfFF1BLAwQU
AAIACAACYZtMy8Y6ggcBAABoEgAAJgAcAGFuaW1hdGlvbnMvdGltaW5nLWZ1bmN0aW9ucy1zdGRl
cnIudHh0VVQJAAMUdeNa/2bjWnV4CwABBPUBAAAEFAAAAO3U4UrDMBAH8O8+xT2AjLpFJ0WEGuqU
gYW2UEGkpPVkYVmuXG91vr1TH0FFV/MtkED43/H/JR3DdA4n0zg6j6MZQIXN0kqJveRb75Ef1Oz0
bP4IFykz8WUMeqHJC+6kQLm2zmlyxJWV1cchBusH4+wTtJ+vINpFE7h9hlfawovxAkLQI4KsEBrT
roVNi8fQOTQ97m9k/0Ots7syvS/r4iar6qtEL8s80SmgHyyT36AX42AwbE3jcHKUfClFIUxrPPAc
CxRNm456K5h1yEYs+UPcxghSvNcix1b6MP/fShFkCjKFZgSZfj6FGoVMaiQyqVHIpP5fM/6UTCrI
FGQKMoVmBJm+KcUbUEsDBBQAAgAIAANhm0wdQa3J8AAAAM4NAAAsABwAYW5pbWF0aW9ucy90cmln
Z2VyLWNvbXB1dGVkLXN0eWxlLXN0ZGVyci50eHRVVAkAAxZ141oBZ+NadXgLAAEE9QEAAAQUAAAA
7ZTRSsNQDIbvfYo8gIw6dZMiQj3UKQMLbaEDkXJaIzvsLCk5WZ1v79RH8EKm5y6QQPgS/i8bBKZz
OJumyVWazAAa7JZOawxa7ohQni7OL2fzZ7jORVhuUjALw6S41wr1znlv2LM0TtdfRQqORuvdC/Tf
U5Dskwk8vMI77+DNkoIyBETQNUJn+42K7fEUBo824KGjhw2tKR7rfFW31X3RtLeZWdZlZnJAGp0w
bZHUehitONt5nJxkP6KoVHiDR86xQDW8HTg4xWJAseqYjvEbf4DiMxYl9hri/X+LIpopmikmI5op
mimaKZopmul/3P8DUEsDBBQAAgAIAARhm0zby/tD8AAAAM4NAAAmABwAYW5pbWF0aW9ucy91bmFu
aW1hdGVkLXN0eWxlLXN0ZGVyci50eHRVVAkAAxd141oCZ+NadXgLAAEE9QEAAAQUAAAA7ZTfSsNQ
DIfvfYo8gIw6/1SKCPVQpwwstIUKIuW0RnbYWVJysjrf3qmP4IVMz10ggfAl/L58FJincDLPksss
SQFa7JdOGwxabYlQns5Ozy/SZ7gqRFiuMzALw6S40xr11nlv2LO0TldfRQaOJuvdCwzfU5Dskhnc
v8I7b+HNkoIyBETQFUJvh7WKHfAYRo824L6j+w2dKR+a4rHp6ruy7W5ys2yq3BSANDlh2iCp9TBZ
cbb3ODvKf0RRq/AaD5xjgWp4M3JwiuWIYtUxHeI3/gDFZywqHDTE+/8WRTRTNFNMRjRTNFM0UzRT
NNP/uP8HUEsDBBQAAgAIAARhm0w7VxCX/QAAAM4NAAA7ABwAYW5pbWF0aW9ucy91bnByZWZpeGVk
LWV2ZW50cy1taXhlZC13aXRoLXByZWZpeGVkLXN0ZGVyci50eHRVVAkAAxh141oDZ+NadXgLAAEE
9QEAAAQUAAAA7ZTtSsNQDIb/exW5ABl1frQUEbpDnTKw0BYqiJTTLrLDzk5KTlbn3Tv1EkS0tf8C
CYQn4X2SjmEewtk8DqI4CAEqbFZGSvSS751Dfro4v7wKn+E6ZSa+iUEtFTnBgxQot8ZaRZa4MrL5
LGIwrtfWrKH9moLgEMzg/gXeaA+v2gkIgUcE2SA0ut0K6xZPobOoPR47ctxQq+yhTB/LurjLqnqR
qFWZJyoFdL1hcjt0oi30mo1uLM5Okm9RFMK0xYFzLFEU7TryRjDrkLUYckP8xggoPmKRYyt+uv9v
UUxmmsw0JWMy089TRKMwUzQSM0WjMFP0/5Lxp8w01Pu/A1BLAwQUAAIACAAFYZtMe7p8QfEAAADO
DQAAKgAcAGFuaW1hdGlvbnMvdW5wcmVmaXhlZC1rZXlmcmFtZXMtc3RkZXJyLnR4dFVUCQADGXXj
WgRn41p1eAsAAQT1AQAABBQAAADtlN9Kw1AMh+99ijyAjDr/TIsI9VCnDCy0hQoi5bRGdthZUnKy
Ot/eqY/gxZieu0AC4Uv4fdkgMJ3ByTRNLtPkCqDBbuG0xqDlhgjl+ez0/GL2Ate5CMtNCmZumBS3
WqHeOe8Ne5bG6fK7SMHRaL17hf5nCpJtMoGHN/jgDbxbUlCGgAi6ROhsv1KxPR7D4NEG3HV0t6E1
xWOdP9VtdV807W1mFnWZmRyQRidMayS1HkYrznYeJ0fZrygqFV7hgXPMUQ2vBw5OsRhQrDqmQ/zG
H6D4ikWJvYZ4/31RRDNFM8VkRDNFM0UzRTNFM/2P+38CUEsDBBQAAgAIAAVhm0wpUniiCwEAAGgS
AAArABwAYW5pbWF0aW9ucy91bnByZWZpeGVkLXByb3BlcnRpZXMtc3RkZXJyLnR4dFVUCQADGnXj
WgVn41p1eAsAAQT1AQAABBQAAADtlN1Kw0AQRu99inkAKWn9qQYR4hKjFAwkgQgiYRNHunS7EybT
WN/eqk9QemET925gB5bz7X4nahlmc5jOwuAqDK4BSqwXRgrsJNs4h/xyfnZxOX+Fm5iZ+DYElShy
glvJUe6NtYoscWlk+TOEYFyvrXmD5ncLgm0wgcd3+KQNfGgnIAQdIsgSodbNSlg3eAqtRd3h7kR2
N1QqfSri56LKH9KyuovUosgiFQO63jC5NTrRFnrNRtcWJyfRQRS5MK1w4BwJiqJ1S50RTFtkLYbc
EF9jBBTftciwkc7n/1cU3kzeTL4Z3kzeTN5M3kzeTP8w/2kwBjPtTXGkZtqPIxnLnxoBxTGZabD5
fwFQSwMEFAACAAgABmGbTD56FBAPAQAAAhcAACUAHABhbmltYXRpb25zL3dpZHRoLXVzaW5nLWVt
cy1zdGRlcnIudHh0VVQJAAMbdeNaBmfjWnV4CwABBPUBAAAEFAAAAO3Ub0vDMBAG8Pd+ivsAMpr5
Z1JEqKFOGVhoCx2IlLSeLCxLyvVW57d36kdQ0HX3LpDA8Vx4fklHMJ2BmsbRVawigAqbheUSe863
3iM9nZ9dXM6e4TolCnQTg57r4Bl3XCDfWed0cIEqy6uvQwzWD8bZF2i/X0G0iybw8ArvYQtvxjNw
gB4ReIXQmHbNZFo8hc6h6XF/w/sJtc4ey3RZ1sV9VtW3iV6UeaJTQD9YCn6Dno2DwZA1jcPJSfKj
FAVTWOOB55gj67DpQm8Zsw7JsA3+EH9jBCk+a5Fjy73s/69SiEwikzRDZBKZRCaRSWQ6xv2rUcik
RiKTGoVM6via8a9kUiKTyCQySTNEpl9K8QFQSwMECgAAAAAA0VibTAAAAAAAAAAAAAAAABQAHABh
cHBsaWNhdGlvbm1hbmlmZXN0L1VUCQADqmbjWr1341p1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA
0mCbTMimieAKAQAAnBsAADEAHABhcHBsaWNhdGlvbm1hbmlmZXN0L2RldmVsb3Blci13YXJuaW5n
cy1zdGRlcnIudHh0VVQJAAO8dONapmbjWnV4CwABBPUBAAAEFAAAAO3U70rDMBQF8O8+xX0AGXV/
HBQRaqhTBhbaQgWRktYrC8uSktzV+fZOfQQ/6OR8K6QQzgnnlw2Bpku6mKbJZTpbEDXcrY3UHKXc
O8fhaT5bLOfPdJWH4MN1SmqlvBM+SMVya6xV3vrQGNl8faRk3KiteaH++y9KDsmE7l/p3e/pTTsh
8RSZSTZMne63EnTP5zRY1pGPJ3K8oVXFQ50/1m11VzTtTabWdZmpnNiNJni3Yyfa0qiD0Z3lyVn2
oxSVBL/lE8+xYlF+N/hohIuBgxbj3Sm+xj9I8TmLknuJ6P+3UkAmyIRlQCbIBJkgE2RC/5AJMmEZ
kAkyQSbIBJnQP2SCTFgGZPqr/X8AUEsDBBQAAgAIANNgm0ygZ4CNLwEAAGopAAA0ABwAYXBwbGlj
YXRpb25tYW5pZmVzdC9kaXNwbGF5LW1vZGUtc3ViZnJhbWUtc3RkZXJyLnR4dFVUCQADvnTjWqhm
41p1eAsAAQT1AQAABBQAAADt1FFLwzAUBeB3f8X9ATLqNhcoItQwpwwsdIUJIiWrVxaWJSW9q/Pf
O/XVN0FdPW+FFMI54XxZE2mo6GyYJpN0NCFa8mpupeRWip33HB/Go3M1fqSLaYwhXqakZzp44b0s
WK6tczq4EJdW1h8fKVnfGWefqP78i5J9MqDbZ3oNO3oxXkgCtcwka6aVqTcSTc2n1Dg2LR9O5HBD
pfO7cnpfVoubfFldZXpeFpmeEvvOxuC37MU46ky0ZuV4cJJ9K8VCYtjwkeeYseiwbUJrhfOGoxEb
/DG+Rg9SvM+i4Fpa9P9bKSATZMIyIBNkgkyQCTKhf8gEmbAMyASZIBNkgkzo/6sUqhcyqZ7IpHoh
k/p/y/hTMinIBJkgE5YBmSATZIJMkAn9QybIhGVAph9L8QZQSwMEFAACAAgA1GCbTNjyzJ0CAQAA
AhcAAC0AHABhcHBsaWNhdGlvbm1hbmlmZXN0L211bHRpcGxlLWxpbmtzLXN0ZGVyci50eHRVVAkA
A79041qqZuNadXgLAAEE9QEAAAQUAAAA7dRRSsNAEAbgd08xB5AS22oliBCXWKVgIAlEEAmbONKl
250wO4319lZ7BB+kMm8LuzD8s/xfNjBMF3AxTZOrdHYN0GC3clJjlHIXAvLLfHa5mL/CTc5MfJuC
WRoKgnupUO6d94Y8ceNk/XNIwYXRevcG/fEVJPtkAo/v8Ek7+LBBQAgiIsgaobP9Rtj2eA6DRxvx
cCOHCa0pnur8uW6rh6Jp7zKzqsvM5IBhdExhi0Gsh9Gys53HyVn2qxSVMG3wxHMsUQxtB4pOsBiQ
rTgKp/gb/yDFdy1K7CXq/v8qhcqkMmkzVCaVSWVSmVQm3b/KpDJpM1QmlUllUplUJt3/McUXUEsD
BAoAAAAAAM9Ym0wAAAAAAAAAAAAAAAAHABwAY2FudmFzL1VUCQADpmbjWr1341p1eAsAAQT1AQAA
BBQAAABQSwMECgAAAAAAz1ibTAAAAAAAAAAAAAAAAA4AHABjYW52YXMvcGhpbGlwL1VUCQADpmbj
Wr1341p1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAz1ibTAAAAAAAAAAAAAAAABQAHABjYW52YXMv
cGhpbGlwL3Rlc3RzL1VUCQADpmbjWr1341p1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA0mCbTCq2
DjsvAQAAaikAADEAHABjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmNhbnZhcy5yZWFkb25seS1zdGRl
cnIudHh0VVQJAAO8dONapmbjWnV4CwABBPUBAAAEFAAAAO3U4UrDMBQF4P8+xX0AGXVzHRYRaqhT
BhbWwgYiJa1XFpYlJb2b8+2d+gYq6Or5V0ghnBPOl7aBhhM6GyZRnIzGRAuuZ0ZK7mS+dY7Dw/lo
PLl4pMssBB+uElJT5Z3wXgqWG2Ot8taHhZHVx0dCxu20NU/UfP5F0T4a0N0zvfotvWgnJJ46ZpIV
U62btQTd8Cm1lnXHhxM53FCp/L7MlmVV3OaL6jpVs3KeqozY7UzwbsNOtKWdDkbXlgcn6bdSFBL8
mo88x5RF+U3rOyOctxy0GO+O8TV6kOJ9FnNupEP/v5UCMkEmLAMyQSbIBJkgE/qHTJAJy4BMkAky
QSbIhP4hE2TCMiATZIJMkAkyof+vpYh7IVPcE5niXsgU/79l/CmZYsgEmSATlgGZfijFG1BLAwQU
AAIACABbXJtMPoS/tCFIAAAGEQEAOAAcAGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZl
bG9wbWVudC0zMzA4NC1zYW1wbGUudHh0VVQJAANNbeNaTW3jWnV4CwABBPUBAAAEFAAAAOxca2/b
xpr+rl/BAgcHThPKc+MMKWRb8Jp6j5O6sXtZFIHAy9DmRiJVSnLi/vp9h6QkUqQcO7Gye7Y1AkkZ
ks97v41I2Xk4u1tmS61ItWU4X8yy/FqLi/k4XCxmcvyrjP6VrdSbW+Qrma/GnryVs2Ixh8/aySJL
NEqRyZ5psFzeaRhp82w2y5YyLvJkObooi1gulxNt8/dQ6N8r2Heji3B1s7sa/k5/KWbruVyeeuEq
PPV/vTytgZo3Z53NktO3cibDpWzWxmkZzuWHonx/+ossl1mRL0/t098u3EtZ3mbA3+l9XH1cxKfN
5+Xp6zD+8fL0gUKMzosw0ewkKTcqQB8xClMrQgiNzhI4JUszWU4+qZpRw/dOExzx59oJvI7xGPPn
z0ZukUjt6m4hN+f8ZnKdM1BgqfS5M8T333+v/Y7fjUagQHl6lc23VxCETR0xnQgN4wllE2SNuYU0
HQng9zxc5/GNtrtg73T4R8aCiub0Hy+1LtOgOg0WfwMfGWMy5toJ5q8wxezZ6K1cFOWqdb4Y2Ru/
vCqKmUI4XS/L0yjLTysvlSMd/kYjN5zNtOsyXNxMRoqIZXDt6qaUYTLFpmUyDmtetlyEq/jmp7Vc
yymetBQ9D7NcX1Xna9rJUpZZOHtWAT2voJarEPjSTrJcm2VRcjdLxvCSRc/gONa039FHkaZpwuOU
Emq8a66s2VDY9aUPdBcFykDdCrZyk5hb4Tsw5NZRXwPkeD6fYI62pGpi4KTTHUHgEBZ2rDKLtZhN
WUQke9dCqDGmCqSI/vs+JCGMDlJsxqKLVGO9ubRB4CwOV2DQ11s4WAT5K+0R8JQNUiSjJJVI7iPV
WPrvHTStXOfv9uEswltoMTZoEvXRBvFO3lz6t5X6p7n8uKo+v1b+Apmw+c/y/WQNsTpTETPJ8tcQ
apNE/qH8adJjhQirxUtKrVhIOcRLo3Xv4vLNhm5PS5igtlwEhQYbxmrQnFkRv/9ZMftmX5jzbLk6
q5j/NVvdBNlsJcua4A9nKsqi4mNl4p1jx4ibVkT4IYo1zbcyltmt3NJzi/m8yAeQGSVd6DjFh6Eb
8HXurkuVwirs86JY1DIM4BOGuvgyiu/Drym4AdBQuPB2uZAxpOS4BneLUgbFOk8qP6kkaJkjBuOA
Ndj9FBqzTNtUDqFjynEX/hMKGiSwzRXxzUWxyV59YgSTDq3IFOzTtDapLb6ZzpfX2xyxvFuu5Hz6
Xpa5nO2yhdFOFhJbwhIPIdElMl1Bev8UJYw6lELKwncDBcFCpJ3+m8ivj7fSfl0Rpt3s31Be1Adb
pGk7I6IYmUm3EGwueSAeMXkX0DQ7WutARkVy92kOTdRFtGg0kP472uhlNWS0ElHCkxSRocT/9NF0
hPg5dsQcKUaOFxV0ov1neBtexmW2WCnJtWgOnVURa8s4BKe4luVfPTxuiyz5FhrCZDKZQhMJLw2N
RVl8vHu5O7BaQ2p5qU7XTr59dtIocjK53Gjy22cvtIHV77TvTioiz2qOuwapmpxalRgjAnq0Emg9
ptMUunLloeFsGsHIM2GYD4Rlnx4wWvHv56vy7qLI8tUgqwd52bESmokFrGwvGseLxYQapOfFnOB7
GGmC8eQgSYJb8kcoNd6pmSlPMiX+9DaE5j2ayQk04j3K31S0dzaKb5W3rdbL9loPahrmd5PJhzBb
Tav2r2XkdZ5B+zdVzdbLrUiv1yv58bsXbcybssiLyQQcL0zuprE6f+h4si6rNPNyVsD4rV7aZ1XH
XuLZCwjozd8M3AUc5kEc/XOI5ArmuOlC2f3l1+NX2Wu5+udBE2PMWy5OInbAxIQNmFj7LCMfMPD/
kuV2q/N/N9MRs2U6KlGVnSop6sRETXPQaD2zDZhoOk2KqRI7mSprHU95dYl4cuU92xah+PnzMW7V
ntbcmhimhQxB3h1QU62obW1Teqq08ckCJ1qNiypwiUjDw0QaMtPF8i6HXiO+HaJxf6dBcJQOiEHp
F+V/TDr534oOJAeMB2RTtKua/LCE/7BU/+AEfFgm1IoaQaz4gEyIDNpLSfXp5PbQcDnopUx0nZTF
ySH/URwd3UUrIkdwUPYl7skRa7knEXGvJ2KMDXT2w0Q3ffdhegwbrR6MGynQc9az956EAXeercY3
EwMPThItiu0LJpNFvUnc8pdbGa+KsuUqizArX8Y3YfntC22dL7PrXCZVIuz0PRV6+NArVYZ8YGGJ
KFeF5ZfXdk1BgpQEoQMDE4NxKbnNlvKR3kGkJQcHJcImWrV5W8oJGLcsZur7kr/6aPTrVQCJZpVe
7Q8UnxhnNmbFKYN0DmatAUCjFzUjyypsCKEDE01FtL5gMpE7mp31N/JD/bHabv+4OswMIcaOHYop
BnaCZrRSkcQH9yU2vjDZ+sKGcpZDJg5n2Z9yL3E0l1Q0jaagoZhTaaVJlTE6QK/DWG34DwxT/e2W
Q/sWlmhvW3ArofjwtsWxdkOPtgv6dXY/j7rreZx9HQtbBmrvdsaghXCdZMXY/smdZeprxb944nLt
i028VlnrZLuwSRS20lfrKwaztQuaytQy+l8zKeBXMpdlFjc+2aXRTor78FBjuviCWcM7oseI06PE
6PHj82ixebS4NHtxCZNtFo6X8Y1M1jOZpNlMZsVfPTzTbFsFs5Yrvla6qr9pbVc2GUeREQ5FY5Bd
X240G4Bmz35sf8fRgcQMdyAJNulwACpQOQ8XN3D5rzCAvJUz8N5bOQRq0A5oKJlxKP4U1I+5u5nk
BlnsCo2j6J7IO9Yo1g7upxnEWjEC4y7FYjhGcrlSd/JE6zSFFPt38/2EQVLjvJoVUTh7U6vZ2agZ
0vcM0vcQgW7EcGigP12yvrBXPV6neqQ+9Wt0qUfsUY9SCasoN7vfx//89hxyXy6ruUvdPvf3F4/T
6ZvLRmM1p9NpjbznjoS1qgyJeGSGyVCgP/99T80ntZ6fadNSLot1GUu1oNx0c3OTGzTpQBGiLcXG
iHCDYPZ3j/r/qkcliBvWgR41VMX+7970qcquuhu3urq6cjsKajN163BY3zqsNTCMhSlCCBDQRxIx
3moEGUtCWPi7Vf1KraqxDRUs0PZuXLVep+gPf6xaI8Zj4kG04sEU5k4tD4dEZA+Uma0bUL+pYacq
n/9RyVzK1brMH7tHzlgLFLz9MxhlZC94OelkaIX6dHwa3NxajXBmiYaSWn9KqzFhHMNqFezTWs2i
x7CaQn06PhkRO6sJGAkaSmr9Sa1G+NMr45sa9mmthj+LT74nPGfNbd3YJDsFW0Rs7tJQ60+pYIzY
MRRcwf5fSGafit+nTWaf7QgIsT02RacoA2jSPDAD3KgbgiumZTndo7A5q9W4ctF+JiYRGKNuOW6D
V11rQ2Euy2t5D/IesGVGvWcSetCqIS5lfHsPbHtkAlywGE/7/QMg3xbr+AZUEIMGVnL6IVs1RJoD
99Ho+G8cCxTToR4FqBRL9fgNDGXT6vtz4L76AvE+ldP2rBBHieAHOiysxbNwuWwkOMshsvN4p3L1
2M/Y3uGaZguXISpZeqixAuT6VuE916tvMWix2nFlIaBZOzzWYK2+fPpnkcvpwwiYokuAUXnfngbW
vP869/TLq5+df/xjuoCWOC1KQJXzpey3ns3hHbXukCDoJjBxtzPsPX/WeQChZVN9HubhdeVK7efQ
FOBTZWHt6XOG9qU5g3e4VTljY7UhcHXzXrmcluv8vpggnUfz4jAJ0y5kF7R6jmu6WC9v7gHFnHT4
JIJBbhtdFatwpuXreQSWg2vBVPF77QTyzrpcqhErLtb5CkJ4vp6tMjD5C+3Djcy17/7DeDbZ8mQ2
7081qA5ifuk83QZ9mpG/avE3bD66NPYqI9uh8ub9aXag2ohfvPd0AOyL95zauF+80zQE9qDdpd7m
EtoBGs37U6Sz0aVSUnSnrYpF9ei6irsX6gl2FXKzWbhYQtCdNLGmtYPtEfJsGBeUby9/1B7C5sFq
k7MWwOM8fYOBKRqNnCwPyzvtbA6lYrmVqfVYuaZr3cUY9Hbvs+XVU+TP4brdw+TaS59w2zcdqnPu
I52SAOkmg0+GYXqEuUj4Jv/u3+pZ/I5WQjqgqpAqVT2H65uH5S9vsqbgaycIlBIgAWmGMp1R29Ap
EoZu88DQXdtCDgsM3wu8xyulR2yP1b5VIyZ4moq+VQdNSSgjzCRU9zzi6JSaRLcxdcCePHCEy5Hg
4glNWR9ryxClJO7JEGNCBmU4l9dhfDcoiWEh23QI1sEOWKcWC3TLpJbObMQsC1vIt9hnSVLTvE+e
+oy2VDENeU+qJJRGmkZ7UlUP1A0J5GKCTMu2dUwNiDLhUd0hpqmblFqeg5njufTxAilyB2VRB9ti
pKboO1iahKyKBfDGDzIqV3E7DLgjLM93wY2ocig/MHXHM6jumpbhWsx1qB08kus9Oi0GMcJhz3sw
kjje0/Pe84tD6haO7yALBTq2TYhfx2K64yIT/Ie6vkF8xn33kYx3qQ5rvXtOWzYOHtOTjWOM93J2
c9ee+vyDZ/9gn1/M1tdnuXZChDVmJlxff1CJ27VNhpmhE9tlOmXC0x0QUrcotW3bxQY1VOK+rCrN
6XkWlVBPTv2PkC8bfhsq4/fy42qXbGuKu8NbJsYR9CczuZ+We+e15RYmQT25hWlEgxnhSi5X0CXl
shyf5Wo8lolT0dRO8FiBYJDbQYGNDWLpwrEsnWIL65YD/3Vd7hoeszFm6LNyw456l/gBue+/qKOE
BA0oIbHkJvKaaFVYl+uF+oWUdhQKjwg3gGKEDD8AgakHAvNA93BAhWnRwObu46PwEM0242FKSI9x
WOSV18LJAajkrbzOlqvy7uezDdPY4mOhkh5xHEoNWycM2zq1oTJZzLN06GSFazCD+xz1PTTYRFbt
gs1vd2yahlbgtU+8umwdeNt8ub08PcBiV0aGBmQUSRKDh6ofggErVM73/fffg1CUEBdBYtRhXDLB
GtiDT6YLOTHwCPQHPAhUJle/YQOUThVAm1wkkz65SMr9EglJMq79La1+vmMnnnZijDFcD68qCwhi
m8QBb4AggBRtMN3EFtEx4zZzfcs1XdHX8UWZ3YYr2dLgrpfa/B5PS6H9gy2RCJKx2BcJFtM6t706
fyvzRJayDGZFCI0LZmMEabpSpY0w932dUxcc20MCHNt2dJf5DvVNn0H1udc/flzI/NX5oOX3yG5i
eG+5LQaMWLgnBiyCs9O2ZS7OLjbpyEBjovou4TmGMJGOkevr1PVsKJic6rZjOR4iyDI99yE2AOSW
LPC/FntGxPpJxIgMLgYryDrPVsuxW8wXRa5yluIYM5VB4Q1Y9hhkEAKM+p4NxYN4jg7F3IbyzpAN
7g0z9oDqd3inKndU9zSP483ifoLcntIRwxRpX4woFXv+HzbYiYy7cohK8/AKUiDbt33CwO8tAglG
QAQ4SEBlMBA0ncjnYJR7pajYc2siB+VondSWJBkySMJivteu2K+9t2Eii/w3dcGrcw/sLktlEAOP
zcokdSgTVbwEhoJOAhdCGcEk5jquTkyKfWTAVGaR+wv6IKVDZXvw5JaAkTEgYGQYIW/i2s+vs1y2
A9o3YcjwCdI5NCbgVWAP0+IwRWHTJBajnuXizw/omt4ukuv/dzg2pNHnOCK0CmH76qwl8aUL9LcV
q7JFZQULeluhkhKB3gWSkoBgNgOqG6brUttzmWPZT2iFQzyNavarxwMgPFpleLOY0v2YeRt+cEFx
ZdgQq4JFBb1VxbzJbS48DO2SgJ4JGmGuWwEMtTAoChdBsiKGMxQtpdxO7PsU9sXZHh91OTV77MeI
R/1AeX117pRF/qc8GCSBi5gNNtIDxlW9wxwGKRuDx3FqQKTYPsefMs8elcMBsndiW6hEcNkTKrGg
jO+l49t0u60HXXzdxWJTjKkKGBJQmGVtD+ZcBwYsAROh5QsKUyJGzCU+vNxfAe1fdruGwzNJ+4yO
ABZFAwIkZDARA0qVBjeVr+6FhGUJzwCmHUMlYR9kcExCdE9giHRoxB2HfSH73ZPrinNIzl2x2YgT
WklfRljcM5Idx9AYl1CNqzqpuqvWklpRJZPbyLQF0YUwoPGD6Qs6LejFMTIC7kNb7nNxv7BbyAMS
bI/vyTDgaGFkVDkNMoX76gz8tkxD1R03+YxSiBdVIIlveR7EiGu44F8MMhqUkUC3bQ4p2UYeMd0v
4rl16m21VTl8Wo2c1R15n+GuvBHvyStRylPZacNqctqJWTXDtT8yF4Zelxi6H5hCp4bjQ0Ppm7qH
TGTDAYZM9jXErY+NugKIvlQkkqmsJynn3L7cViNsGmPoLVXSFnZgelBydJ9SsCDyHRifOEwfcMCx
DOwTip9MJBmr+jN4WofFUVeIdECyZDsjOm/e7CRTTkl4QNVtWTCjmNAuG76h2wS6Z9dGYD2HejxA
X0ukLW9dkZIBY3E1o9UindsXtvuvIXMZ2CEwwth6ICjXKYcpwDRhAuaGbVoW9qjBv5ZsbSZHXUHo
gHSptZUOuqqwtGfXErgbEhL5EGO+QDoyPGhUObSspuFwSIeCYINzN8De1xKyz2tX1jTsywrG3cj6
0zpMgI91KbepU/WxgcFdE/ojz4dqRl1uqQoHA53JGfSC1Ai8ryXgPoOjriB4QDrMqhIOJ18uwnIp
D6UW5HhuwG2hI0KgoEHNBgu6Qne477jQImJKvpav7jPalRIbfSlN/j/EXUl3G7m13vNX9LI3YDAP
S4yOEjuWI3dethRFtnVakX0k+530+/XvXhQnVKFIp5unszFlASp+H4Y7A8X3LP833d3u+YHqWGo6
WIpSpyJB7cGkJRAzEgxfxwTRVHFWYghF+j+I3hHhouXQ2YiOraqmwz979/i67jGzxtDELClJATMW
BRjyIHOSy8IFJrk0fxizI8RFy+K+R+1+1vBaDl8E+2+wv3b/FYPt5cEjtqC+SdG8DJFEHxj6x1kH
pX2RRv8RjIe2hikYLBOmW3cvRlGj4X5NmMalQw9AUbm0QI6ymu0K1OnkiQLFSIQD28VxBvMJapKB
4QJujbsUJ53J0sVd26JBt1YdyGs1npxp9PWHH2sOouYfiqDBg21CDMhEcJRBFQQK3nKxMjqQINF4
9zuiu6eG8bTjiM/UYtyuhBx5Mr3v8x/vYMkZg6Q4X6LwNyJyQTEgyUFaiBQ9CH8QkFrLkqPR3tF4
HV6zAexT7h/vGq5gNE+53m8fTiPytyhMX47ReLlkSCxkRcH/N4SZhDlIMIy9gP9qWGygFwI4A+KP
IzYJ0p+iXrTsOpTX0u7l/2mEf5yCME4yFsE28dTBZAoBk6lBncccKQ0yKVDz/0XOLeyG9XrV2aTr
B7uf6I8v3zb4EoC79eqpM9nFWV4U+HuZR1DujnLiQKmTEESRwTLnEv8vEe8hb6g/yA71B8yWNfs5
fn76/HL36/MapBK+Z2CIyPMakvfRS0pZhnnPOO9FA/2kSQbT1XumMojWq9M/AOr3PDS3ZLfTMMx2
I8eJ4T/fHGUwW3KOXB1ONJXKGuodYcmB8ijg3VsDVqs2LDvnwb0y7OpMj2j6XY/ti5YW73BVbKQr
366efz68FQLYDiH/+onuYwzZFM0IpwpcrOJgap1nhCbFjXFgDHh9dcKnkGZCHCc9WtKqR9qNA4Vf
Xh6fT1T48hb/PxQ4MJxt6aqpQLkBqw9MP5rBdxZZgutlwF4QEtxnHROvFRnXJX+A0u95aG5pr3rr
+mFsAX5I1eRDhmLQUkK4KDGrGhPoYCExZMUkKc6A3orRpySvzvBD6nf5kFpOD+sOp804Bff6ZbNZ
f1q+/vr89dOmWTBo/+klkq2fqKCsErkUSTQPDiudMgkmWCKZ11JppS2nV6d7VwHeTfGd9h91agdi
M4now8hsZTd2/HU46ro8vQJpnI9kRVKuoyZcRCz4AtvEcpEISDJnwewqRl0wuk4ePmNJnfRYtLhV
j4w6k1itz/rpGQ36lgePOQsQQcS4DMIpCJhOAfYGtyrryKzVxVzmgU8+QwKbGwZcbaYMtFiNGBwO
9//wo2WsOiL1E8c/CytzTCTBZgNnWXtiAS3RzHsbpJeFn7eTDs+e0X375ga3rinGMW4lx7hXL/eY
PWGqjrRCw047WDEiGhCENbINo23BjYL1o2KRztjIzg/08NAZtLVtBFX1oNox1PpGlNvV8+ZpUNRL
jfk39JdCoTIEzI4oGYmgLoPXriLANslpF30x9DcjbqyQI4Q5Q+TYY0TSTUk6zSe2yGEXcyy5w3Wk
zBJJKqGN0DqDU2hAP3Fwo2w2oKFFTPCD5DKaa5A8QJizP3ob3U3jLfjLcYXtp83TF5w7sVRV7+Lc
Me8EWpIwQIYAR0OCh91ilc1F28AMT1ehBV89wwhaRmRMj8y4CLxmIuLqC0YQf/jRVUvKVTtKSMYV
D5Jkiolu2OmgecCi0l4IkCjgLUh2DU6nCPqdT3uMOD5MOa6oHNmLj8+/nKpYRqto46wKNqxoCVKR
kgQ4AgxmDqZSEVCtOasCLlG6yoK8eZ6RfNCwaOF3BMmKjc3Bz182z6+1lBRf04dGMIo+w2sA0Ngi
uNKB+IKihEtPvHKMZPB6pBRegnS8Biksx7jbg+j3brq0RDntEOVjY79r9+5sXq5NPaFQwJdlhaTI
DVYhUxCcRoFiVRJkJgNv0V+D7W2LZGLijtjxHruxBfSKx8Mev/766XG/+VCP1OK3kIQSKREJi5DA
nElwYxJQ46ALWAKP1atrsLrbIfjzzYyZd2gf8estUz6u292Zui+b9eefnx/bND4au7Rqh/qJvqrl
1tWckUfOCTPRGF9TgTJQ2C66JK7CuaL6ew/U1MI96daMwD1dT0cAfjnR+OvPK6Raw9YcbXqL50NC
ZsQoWKtg/mVwZrwlUXstXACD9oKHWp85p7uhqcG5VnqKc70RXfP1UJOHMRNRF2T9rELFaFOwAoUl
iVmFTLwHi5wVJ6kp0rgQLqDelwTOID8tBzwC7ZiA662ZjPLLJjx924Av8fVTUw0eAwAHqW40jnUE
78GCCCRgfjOfiwH1LC6iPjx5HvmhS4t+2/GDtohejNFjWTaKtVq9qGR1/igseNA/FhaKxUSOLcRR
6UiSPIJmAh7fAR4fPI8bWxctuilkRldqElyDv318/fK0+vV0uEFisexLBjsb60YdwA5FcZIldzDk
hqagLyMennsG9NBh0UKcLnOmhOsslHJScbXLtwjplg6HXCYnOPXgm2GhkuAC/AaeCqHGG+18iZJf
HvJLRUttn0WLeDWlcf/w0Bn+N/iy08f166FsjBq6rALGa0t9Ao1YtPKw6GkiYI0qIrMKKlifYHYu
ktg/fp7CvseixTr1NdkG1fr9mMCuQofxpRwkjWLwU7WnsxTgvTmCGwBtTyTgJEnQQHNA0zZfJHCm
AOfQ3EDf2M7S33aXUL3Y6rDwwehfKgeuDipuZah2NFmwIzH+qLkDYSM16HEbUoLRtzxexF6fP4+9
Ni9amJ11s7W9bVv/+OY9OPlUDeMOSx5XDfMUK3AJGEwOE3YCBDwFi0O6nFMq0ZX8fcBv3l+AfvO+
BW91D7zuDPwxym2MWg7Ssv6ABLzi3CRNvDCYcbSRgE4qJFtVJNi/lDF+kcD5INlpjxEF06HwMPb/
fQbgsODRc6yfGKpghfvMIzhaEnziAtLGZdCznDKw4pnQ0YrfCfs0gJRnIke55fMwdfU5v5ed9XT4
6sH62sWkGWwIXYtZ8Ydq3PlIDfgjTis8LJjQ9QfHC6SWiTZll326Hs0jlnMhnFFUGhmqDu3NeBrT
4/CmvZdfm6xLPX5Xj09wYbXOnBRTs2tWgjQAqwmoK1DdKStzxSmdoun/ybRfy33Tm/It6xgrh+8p
w5tCkT4XFCuH0Mo9/IwRT1BEgWZFDMeafxMlsVhk7rmJLsKSKEZebyj2eGY67lpb2tPi+TWXajNS
WMNLz8+KH60EjSKTGBhMugLfLaiEtW8+mcysyeGKTFs8czmn0z6LluB2ylph3VvD+t3m6+phsEzp
Ps9GgbBEwsEIWZQ2JEcDtjVYRyQEC5pOR2cwImppuR7hPZR+x31rQ1Ix2iGpt2f0yvL93bk5pqko
PJ1IGA/opmqP9q0nkXGLWeSUcrge5SOWmeDKXXdulenR3tAR7bvN6mX96a9DkkLucqhy8PU8MPE8
ECoKwyOlGM8EN5XFyBlzRmSur0fzAGQuArFrbklu2JSk5uNgLV5X+7oHcvdp9TJc/I9vQP/hR4HF
SgLj0sljoBc8LSc8KCfuGAkJ5LfEyFJSUirrrki4wTHDuunTUNerzt4123XHxP64+TfyVLvqBymX
DENmUkitA7gFkWqYXw1ejuMWplsykFIJzA5vL9LFZ89bSdi6aAFOg7WwaXhHvfzj8WFTj5LUA+1C
1borHxnMRAkkGoMZnaJIcBJUrHY2Wxk5d5elTX3yPOjavGgBig5qvBShGetjfBIf8z9v/d/QBBr2
FKiXpWDVt1QG3Uuik0YHEw/wYdSZCadY4hmchssKAp89TwBbW/zTUnX45WY86unxpb7fbW8ZLEsT
L6/RVubQtJEqZM8dbA2FN1VgbsDGbIhKGj4ypYqf9y0nXzVjq7S9WlKbzqQ4DJKbltTrGqN3Lw81
Ru6WMA+Y3qBgnchqejvhTNbg7cSg5O6AKLeZJBmijkKG4sMFMidfMcfkpMuiRcx7NMzE2Hz9xb/c
P359OZwSw2A/HwrYKGhgCtsgFwoMgkfnAX5ytEguSgA1FS8xOH36LIfTTg2Le9ExGzcPYyU7F3QZ
bETFWYStbQrFukoO4ij5TIyIOQWdi8znXYPzAZf4p36whW/p/RT6VqxH6+jN3R2GQ2kd9Joao94Y
cO9h2WAoNCQ8mF7An5FcU8OKShcOpsMT+wMNDS3C7TTILOikOOgk9AkuffUu6+e2ZoMCrGQGw4kv
FsXkJCU+UUa40RbkUdJFnffrb95fCICedFg0QKc1PmswJsY6+ig8b95XcwRGuTpT4P9KLGof5I6k
QvtErPZ4WUQIIHeUABO7aCW9tlymCyxmLYzatGhBmh7yh5HYv3l/960eVMPiA7cTk/UHzEvhSSVY
wKQ4Af4A9QLH3RLqnA3aSC8dv4B49/Q51LvmFrnrjDks6tGY1+jXaZwGy6yGgD8QcEORKOXSqlAk
Malg7aCA0adOkhwsNwH8OhnP56Am3zJJ67aRIAAqe+gPVa1vbsrxrNgeJgvWek1hO5oaccPtmEUh
YAcH5yWVRrrfDrOpTT18/wj1VAQKsVntK5D/csunqK2DdRvwFJjFjJcF+eECXnZhlIrRaRlZvBLq
w/cvWoBT6Sck3ezH+i+3+c0UtvCUahMp0TTjKfGiifcgsAGv1xKUp7yQBvpPYO8BLFqI2w5uofa4
b0ETT2C7bAOlMhKv8AxFChkEiYokM1g5OjMQKuVKsA/f36IWuofa7o/p/n318IgX8XZGPDAZ4R+0
SrAQw1LiwGwhIMNTcE4Lma414i2IEf7OGpfW7Nf4x5vS2ZoyWDDUKQfNjpUInjNiGU+Y0ZWSl1R8
udbWPAI4xS3ZtH56LTmq0EYe/nXzcr95+fyKYvCQO3SJS54DyeAQDeAdoEcHBI+Hgf+kzlfA7B/a
R79vXbTIVh24cuy7v03+9sRExwwKt4ONXg1bUC0+esxgga+OsXwHDjwwcbnASncahv685MYvmAkq
QUsLWbIOZC37Va9vV3iJAr6F5Pnr4/odtIFZ3FBhfIik1h9Qj2obC54cAkNwV8oXGAXNn0OWHnwq
MB7Pc+l95VzErNO1YSvd1PeAX46TRDXNgafKXl8f7x+fHr8e0qTOYE3ccL4S1KhQeHKoRkYz8EIV
m02MynkGxM7ymn7HXGxs3K9l1AknSLexox1y+lqafuareApTpQuhioJaUxEMHi0MidKXAvYZ+O/h
MqGzhXunPRYt3ql4kispJ9OCtzT/aGEOcLvUz2qqaWbRBYwGj7qCKsMUDPwTwD8Hb1elC6fo63Pn
I5NPp1hBAU0jIUqIcUHx3zZfy10tkqlVGOh4MOnBzKWUKG3w2AoFiMrBkjHFcCppyuW8FqvP7OOs
TS3OjspS0rApTnzW4Q6VpvxCUGFKkFjAZHDvOmJdyaRk5yM30YYLOcXxw2exN70aGqpTqKPU8RT0
+ulh/eXbZrg9aKfB+NJWOWqp1WDFewKeOi5piwECmglqkGSZh41qL95YFN9+x60XUxQNCf3QWTMG
663EuCxw/TTg11WI2ro1vWaS4j2QRhmH5VXAw4CxSa231rkQLWO/mcfQtmiRdcbcyPGVqLHg3x5i
PeNYExiUsE7AVRVFgxbTGZZ7xGO94Plp9Pnid1wAd3j65Zxh+Y7+o04ta9nZMEaN41JnOUs80FAS
BV3gYcdQLYkvKhBDbRDFC6sN+72czzCYHkbCX8q9bR3/8e4Ob/F8fB5dRHm85Au8AaltAluJaVhq
YB6ARsuSgBtGswPVkPl/eMnX7EUxfTAjQqpH6HA4tJbi3MXV+tOJ5a1rwFlbE2UEJaaVQNklA7FY
tac4KAgbA97lfSUiYxAjCq5H4XCktwau3w3vcR9zyMbnEsHZCToU8NZMJOARZ5INEKDgOBh3RQ4t
ihGJTYeEPrgPb8o/h4zHdEExQxM1RRCeBAVbFueBenCCDMvUGw1uvrsOhxGIloC2HQJGHCITb6fI
qaWsiODA6UQHggcwwPEKXmmsk2DvcZauhfxtD7KRHcj39DDmb4cSqQnukoWLygQw5DR4bRGWToBN
gBfdgXhQWrDIroX7BEIL/n7qVSjHzd5ffvP29uXzz/AF/1rtbN+pJLKssOAUkRI8/XoTsE8BLw0H
X8grDxZTuhaNLphFi72zgJx2x9n4aUoh4MEwn/Rw+6YwGPAMVmFBqJYh6Wx0vBaFn6agNX+YzgL8
snca4eenA3BUZkcKklvADIZfwYCR4oaEAk5psYV6RjW19reLoKGtgazkVNJo7cbW9YePNdRslqYm
hbgztp5QsjSAXaoSmEZYRBYsLPviYAsnHTzPjFF1ftHUB88cF/04ijNrRzvj69bjeqPbVHZ5+oNh
nTEzLSOao7C2jWFgMMBmxTcTgLWkFL9QTfXh2+rl6/9dPvRQv3nm1ENta/hs2VTkGErHLsOHb4/r
X95+/vzLTzfl9N7iWmvBac1sYaIgcoxeOIdHxVzNUXugaXN0tRA3XoPhCZaZWTt2WLS0ppEAAC8m
XBHGripuOAUglVgKVx0MIWGyio2EssRBRnEw/BKVhGtOAwhdnhT9DpbzhW7H9kWLszNRXLm5iZqf
ppBAnPICk4MRPnBAYUmitV7wRJzmWV+oejp8xYXRb+GrVQf+pLLnbrUFATety8ByNU1Fzc7D51LU
re80GEk0WqwrCJjWK7D1QWZR2P/J+6yTO6+u576uqeto+jSkjO6QWk2O7O3PDO3vOq56HtNkvAa6
CxepSEoYTko90GZTBHEbogSRKzFFfJ7E7vHnjwMtWowPHeAbPgN826SCh0NPTHCsGByuhVeYlTd4
aABfzpAUKAy8cNcpJwyjKVwII+0xXirDn/ZrWN3TDiuwSkYu97+/rJeHdzbhi9v+VV+lcyqqYQEZ
TPwFBXzA9CZ4wwiJ3Jpgc2IwJRf4jJ4+R2fUrWGzcdOMptnScS52QBE/P/8/ZVfWJLeNpN/1K+bR
ERPsxX084vQodhRWSJZ33hxVRZZU6z4UfXjW/vWTCVZVEyTY5r6oW0U0Mr8ikMhM5HE8fX25BBzU
OexeoOKd8RI2KPiHg4GHRWREDll4bixXb/tEGjRWEC0HvqvZX2IybD8/6ktUz5uey+QZ7CInuliK
SmSwXr0EhII5KUHzdfovNMUpiTaW6YgpCHsclia3LQVA6urHH9EZ+LqqQPXDLl2wLZSPsKoEetYo
nCPcM9AANGwbu6WoPM67EhH+sfYH7sDmXHC609osS5lhqeTd6R4rNI9xExy/bZBQtOxvOBMcOrop
HBZgaYBOK7BDgffo9I6JaLOJ8wmd1cJg1xE1Em0bSIxaIvm8u+/Lslni8NlmJ5jqTKCo2Bq8XqFw
ZnDQ6hLPzFOxEceZyiqK8/MaQyPjYKd3djUyrTRiMYSBCvLDuRxSiU0TuhT/tiBk8QTPFISUwOoD
WGueOAEiCs7b5NJGMGci67Xaxuc1mN2uAWYP+2A/L9GGnpKHu++PeJuBwskYfCPlLC8+cjCukynR
OKCWoMmUOpDArIP/6UypDFS6zUgqWm8gqsbVyPYNZMawRjG94cdf3Czu7oaWvO7xtxLL48BoghNR
8lI/QTH0hdgOVGQJymNk1srN4IDcG5DgaQXEtF6R5XBWL4HgzX11BNpkpSZgVAlMCxRJjLUEIoo+
UEmY9GYz2yUsYJ1vfFwxbpVsMK7msTzljz9/+nhRcIuQBa3Pcq/w3hfd/x6rpEnbRRk4o4Yo2VKm
VviGud9gG57WXGvW4PogWuumWjYY+MXVOQKMj04EUI01iCeWnIENDuaF9xhoF0A/jzSJLLd/+2+u
mdmS6Rs+s10/zHWO/e7w28v3SjvH65eyo8drmBCUtgYrGBhsSEAVCN2EVfuSI2DaCydb9TWWCPyM
0hTA+GzK/36nl9b5fmfnB1749nL/2+n+65kusK+LONKl0F5gFCw82+WAFQZtIJ3hjIP2l7F5YCLE
8S2sz4isXE7Ug6ZgDny/PL0PfNGOZCz+4l4wlnAa8yhg0woFQscSbEUQgoDTTmLgI7FRJzhPDd2E
4zr/W8Vn8HnFvRTLYKWDZbtGPpr7Ev72A2NYVKCwP/6Gr8JnFaQPHdoR8Cok1jL2rksUjO8MQGJW
2yAUIm+ksX8J72o+W8zLfSMPxf0S/hFxE5+rQVg8oEu4AM/KSA2aqUsajmnA0Hm8HQIzO0vvYYvb
tJl7pPIG//i4RnBUDQTHYU3ZeDrntA93o/0wHs+8xPp6o7LLGG2NV9jY9AtLdgSsUOJV4lKHrTDG
+Vs4/OR5BWTfCB477GkrJSjdPfzv6XKKgYXNxxsV65jhGD4by02q1Z0jQnWEGSaNU84nuZX/QmH9
NZTHNfeNagiH/XHXyKEYgz5gGz08luj3MajGyuIYT6AfSZnBrqbYkMrJzjkbOhoSY3CuOaU2Y6jp
/EXe73VcjerY2B4HQhrv5Kfvz6e7059Xu/RyUBsL/IMV12UhYVV5WFo+wqoSOWXHuOdEbd7aUxrr
eKaj3tWM0wYa20qA/xjzRciWXg5ZkiQcaBsCfbocM1ySSJ1OhLqcrHEmbwUBU6/zDg8rlnuydJkf
erVrvICPj/AeD/OvPzLQJcDkBCW7RFcqg1depFNGOOaSzFLFzZxfKbwB4DqmwjE0vIKHwezeyGAt
rUbuMSaIaXXO4B0rLxKZvI5CdjGW0EVQmFzArm0kMKdMUmLrgbek9tfJ5ZeRU3w9XVZNhw93rUPw
8x93+4dL4ce//aAYyKji4jTSceG6oHLEWFLamYxOBEqjMMya2Cr7uwJqSuINRNNhNZxdAw4bdsdh
kcL3ciqRgbhR+HiOmEjA+saMPY93lFHFzjjMKVcajSSQbFxsRbLm+R+fvavZa/DM9/vGEvvyfMIi
f+dujPSSBOaCcCbZLtCEyjjoHy4TUKsU1tER0bDtW6VQeIN1fFxxLxoJL73Qc5fmLJvtlE+1x6AA
iclGj4mSQrIirTx2K/awslgkNmTBxGZphSTeSGqDpzWMhl4OHy4KQD/unr59GjAyZHg8h4i8htsY
VvwehDnrYRskLjBaBZ04xPmOgiQmXknBWvcvDRQNWiuIGiNrdMcWuuN+1bET86dpdtVZLBNxw9B2
0iFnY2GPpIzxwFZQLPIdu4yNWUISwZJN1l9FZSVNbDpkhmkZD9ZLMl948TOG8KHcu9YW4mX7cFNs
EC8Tz3CsJxPglDchgAajGfYPDBZLh6lWul4DypzMCpz5sAqSbERH9nI3f02YlN4PzyXW6ulQbgHP
1zbcFr3eCDDIsdQZ6CuuXJuBhg/ywYOWHLShVIltoIBQvBBavw9cDKtBDUunYq/YvBJLHPYvX0fB
jqUfeHFScdxPoAJr2DcKLzCxC1pOY7A2lsOLVuYg86Z+s1MKK0AmI97V7DYwaD6/U++Hp9+eH74/
TQp4UHr2OtCxPZpQWLUj845ia3OueehACROdg7MyYmSGMGIbmELqcrbjgDVMi4HvahRLG743lDUy
RktczdPELySEKDU5Si+Ly+9okInIMW+x44SBBCRoFdNoYGfFoKUnjoVNEvCV6HoO6fi8ggS7tgHp
MNfZWndGyX1ET/K/znEn5Bx2UgJHwRwI3nSgUGPxRE0xbRAr7GDqXeaB2U176kKhjejytMZz2Lfw
zL2NKb//58PX07XnYynApIUnRMlOCY6hJ1irDtT+Duz95ByzLtpNnuvL3Ctcn59WXLeKcfbDInL1
91Pxg+fdYRgDGvDqvNRmx59jQjWNoGF2sN8w5AoLC2DfZgkS2gsevYubIFworERvnJ9OIRzpbuls
xA8vAXp3GIf/Kxhtw9Pz7u77tG8SucFMZDTuZUrRMt1RBUuGc0s6H7zvogYFmkbFg97krPvx4xe8
DzjdVjdTa0zUMBoViI70QK5xbx+/nJWGD8Pj4eWxEfdGGVWWlJ6A2ECPg6Fvs8AiyyAaJXeJRLoR
xZuaTB0/1uarwiYa125HsQjN+nG4H8Ytvrv9DMdUqRJ33iZKjy21GTeUYxKQRZc2Q3kVPba2oJmE
iKH5mzwYDVIridnLgRW0faP84PFADzMx9o/hdNejtTl1rVopaNBUow2A6e+Rw74nHoSXMJLJ6Jze
JIHPk68ViC4PJ0z3hC2j9OFDPj/t3/9U2mN9GO4eHv94f398mJr+zJlMsdmEE9jjNeBiAyumS0GI
ZKnBNlBbmF8QWUt6ng2rAS3TtvHDYZG2fe339fAIQgyOezoa/5dfi6mcHYPTovMEtGV01aOhpjvi
khBGRWaV+X8AG4m9CWocUgMSpAFIzsuwvf/pI5a5uX+exp4w0C/HagWgWQp4Q/Ca4A1JjoUK4DU5
q73RMXNG9DYgEyJrQCZDaiDLOHz4UM9rXbw/TJuJaXGDcSf4A1caNTFGIgFCFqD9c9z9JnYYjhJJ
8oHwTWJtSmMFxqHZSawHAnyJgrN5M7f398+38EUch8fhvgA5C69ROku8aKC5YwKNGCcpWJycdTRG
KonXkbNtMGoia9XFq0E1mGVIfk8knUtjbFzzAuLuw0M/3J6LjY+eADjyi5rsTHBWwYoi3IIGSUns
LDYd9JbDC0sWJcMWRHNK6410pqMqTFLRBiY1L4NZFKAv70cdRkwS7ACIFkkKUBcx7YiCFmC5sR2L
kSmrmXF8kx/5TGA1dHY5dF3bmQyosO5NY0vtzdzO+QDf1+PD78NUaFtjqLBgpeUI6iYo/r7z2JCB
EDCjY+DwFWy6hLnMvZL5eH5acX1ovaGDlbMtVK4LxphnvMsGgYWmsuExKJBf2eL1dfa2MwEvkEIK
UTMQAXHTFdhl8jdyTOvAZuRQLdnuj2pRLw/+9hMcTs/V951o9MBf6liJSREebEhBFAaaWik9iARl
NzM+Tv8G7+OAdzWnjYNxQMNxyf60pOUFQNDEaixdlUoekcW6d4abTpc1mH2WJm4G8LbwrYZUIAbe
eAdYZWOeqAw69sfh8fjweIfFDD5/2/Uw/drnFUyQ5RkLDefsMFQTU80Z2I06KZqcZaDMiG0w2yys
JwgvB0+hU7KMq4cP2dzw//CwB5vjv4c//O7rtSx0EWwRLF8wv3SXssVwQWo7R4zoGOXUppCkEZsE
25TCCpzJiBrDspQafCjnLQM+vNw+n54fXg7fFsYHqGrKjPkl4y9j94dEDaNd0AFzlThemnneKZAU
lmdJ2caVuU62QjcfVkGky5DhHntnLjOmxwCLS6+vom/qLAxWLzbE4CkKdo1XYESrAEsvqBSp32TS
nCdfTZSehVYAf8tWDvDhjrXTvKfbhcIJ711JjC4VDEAoG3Sjg0ZmmMrSg4qzkeX11lDLxlA9tcui
Hj3d8Xmp2smmmvYLpMKMAQn4E48Vr3ikDpYQ8ahdxoC1YfB2PGB/NTAq0qZd3yC3kjizHDiFx8iy
hnrPyjKqpPXHxwf04w59uH146a+W8uRW3HPmdApd5OjOMIl3YNLAqU99Ak1WZ5o2qZpNQmudUBpD
39U4bAMcn6fN4EQPh4db/3I8Yhxx6Z4hRpe5w7w+knlHNLYWxn+cdbYjMSWwlZOhym3F9UpjHdDr
mBoJFw0kYl5q65rB8vO3l7v9/e5UadElwRVOGqN5R+GQBrUGq09ow7A4JxytXvrgNomwJqG/yKqZ
Dq3BiSa4eczSp5/DeJdVMBlMayopTuffii+WSY9plxqz2nnmrjMaFSDiE5xDPvNtN2xTSivlgCYj
ZlgODSzo5qjExag3/XIa/v2qAl1uPdEAVd4qAOE6hc2UQGsOHYbjdloFYaTCM3ST+rmks1beaD6u
QjXwxkYa+GFR5vcQwFT6n0f4bzsgPxuMzvUMxAT2SPGwEj26b10yRpkMRgHfpJ3WlFZzbiZjajxL
z3nPjosWepihXRabsgr75+F9xuVXBKMMTYmZjqKjA2xpBZvJqQ6rHAqQ+M6zTS/pTGa9OO98kR2X
zs2e02Hue/r82x//PH39Vrw0xfdcIkUxuqyIggBai7AazLHAUE0DiW2Z6AiVBgRnlMRs4/5MZYX9
89Mp/5wflroL5/28UNaiKVL7IkAZ4bEVTAeKgOk4p1h5DUW0IaCdaRnUtpjjJrmN7ZrmFjPfLRvb
93zP7bGvV9gydsaMb8dxAnqY7XQpIld86tgmwxoNx4/mkYRNIQ8bImfWomZ63svGOuuNXI3hGNlx
/d3pHpuJ11ECo9cjSq8FZsbTFMeGVM5T2tHopM0sMMfENlxLSm9ldtUjK5RHbZYoj3qYrcafQ6j8
GhSUZDCvO1EaiGGegeUyYSZhCpEQE/wmhRSmbfMND6ZswhG5iDiDD3syZ3P4P2xeiE1X2FjUuiSc
8ghmpeS8ExQLV3qwYryGNxC8YTwpQ2Lexu5l+hWmL48r1lsHPHw4d//9/Pjy9Jx+392+lJfkvhYP
89mhaS5dHpJPSsYoQYXBnaGF7kxQYDh7sC19BovGbVpBLWoroBojZ/iW3gLB+nmO15f3y9gZYcdM
VAb7XfGcAJWFg1Fi6SFHYHOkAOI4CgZvawuqKY02mumICkW/W4osMahliuPwb/946stNmSkFDUyJ
tpZOcQnmcDAYNB5B+XIRFGfJraY8OwqibQuC1/nXshsvz6fcyxL3PuMePpxfMP3rYzhrOFeFq0T7
MOMZkx2j6PQHcdvZBCpkJoIZk7PIfpP18jp7m/fX5xXvfJlfhx/O8+tu0Tv7dA0uu3KfORXEw0lO
Gbr5pdNwVvDYCR4di5QHSjddJd+u3+TPRz295biYjqhxNoxNyY/XuiThU/78cnq+lonhqApnbbzO
6PL3ImOpv1IFFi+WUrIB3hrleKf08vSId8P/tZim5uC4FKJSkGtB1/DtdD88DT8//Dbcn/4EzfJS
pG3sGWlUssR0zmC2OPbWLun7jCuao/FweNEZJ83p3tXEVYMjq6ZVoy5m8JkZiRkCozA0MhDH0btu
8RJBgdltpHBdTsZR4Yhwms1Yms9Xc2N1i5tr6dh42n29f3jCgpXD0xNG2MyKQZHSdRIpR9QlEwb7
GBBmzgSC4Y5KJhazoq7m6u15ZywulRKpdofLK8wPT7e/9n/c7+5OhytbCmzE4sFjTjDBuwjqOdao
EmBWUdj20RLleKS5JLZMGFvOVjGjDqbBzOF4YebD7vnw7YZel9FYRz+CwsocXvfAdtWZdZ5E0O+8
tCzCYlJktoyqWWr6fUPqqZ5c6Fc9cTFI9/qNnPv3kky9EwQkBub7cJVVZwyLneNSJuciZo3VzKxM
OWOLttgaa/LBYPj7Ybj/NKD3+cKR0PoGi0ugkghHvMBiMynj+sH21mDCq07DA8sxo7vkcE6YWk44
40e1+NFXfopovPHXb4dxU8pcFOnqs41gT+iMDWo8rB7H0d4TBlO5AnbZmzFTzVYxosXSMS21Gi77
C9vPnH4fbq5FvAW90SMflsAbgnOos07JMWXD5YClHlSSLtlo+GxTzSarGVHHJSNGieMwLpzdqxSm
WB23lFiOHm/z4IxJ2Oe59BqzNJFO66wynPHalru8KQtNKWyUaRG/Spndy/PDlboppV8ENyYS3wVQ
J2DjUo+ZK6ZjPlAJhjdLgs8oX+eYkW5ID7CpLqT3T3c3pDp/GOjyQlsMzhBgsXgO3zsh8B04Ciqs
lVI7W5OezFHT1o3Dx5hrgcD9n9jD/pU66u2gQjnOrOsidj7hEnMPMrGwBKkyoLMrRWf7s5qlpm9a
2PvjtTrp3//+KqqK16aUDhbcexm7pBKWRFbYVA1jhgV1waRoI52988k0NfmhIasssRPyu/1pSr+U
AAlMU4dxShxeOlcoNyNoOMkESTMzMhePeU3/Os+7mlbj+7d0d5ECh7vv366xevjmATboBgmOB1h5
nDM4xjwIasWYxbqMmIA3I32doSa8TKaBDzm9Ip8k/l/gl96k0cG5CeYl8Tng6R5ALdWyk8ZHrC0Q
eGlxO2VgPlPNB2ctPtgrH4/D8+3TqxSkaHQVfySY7ARM9o6SXO5gGKxAz7ogvLBZUkN1nnMymWvG
BW9xIS5b8PyXvx6O34bb73iXueSHgjnBCU+dTJ6ci01SEIuE0RxijjBdbPIzn7XmbGjop7v+9ft5
/OM7SBVyY2/MdaGISzEhz4UPWKyGGnRt6CBhpQr4tuCcJzy4mEq7gilPi/kqdg5qaTbLg7oqF4en
Y99SCklgnhruO6qwpW3EODkFZzpxxAYNZiajMwVjMlPNgW5s2cOB/6exK1lu5Eai9/6X6sC+HIEC
8BsOrjbHoiSLLU+3v35eFsmqAghxfNFBEUo8oYDMlwsy5w35fL+sbJWeSgy9puMaBwsigVsz0lDa
sQxjNsZaOWqjG76+llIvv+tswJ6beQM+P16+q/vyXpOpJJ2VafQVNdajujrcGxirqA2F0YylUSJs
tO0GrCR9q1ezPQizwd5fdpdf56Uw1t1eHtMkcLgr+Jc9hbnFANYqhyi8hg0VMAUNZ1jLqQF0yvLo
l/c9oGLR33/9+Nis5zlMiSvYK4Z/33pLzX3hHnp6tCYVaIzjGf5iYzgeJNU4dA+H1vej8Me16HPY
XF5nGwLHgS4HqTIvRq8l4OjMcTk8deemfileFFg3LpIpzeV4FNjg6VC6g5qN6Wn39vr3cjano6kE
F5oMOJibpewX+IuCPg3CpJg5tYdstEYl5Vu91KMxNcwc7sbktPsklfM9zAgsN/b7LYZlBTVsHcnx
oFZ8YDLRaTkoAz7BcypQYy2QSty3atXH5qv0y9mpfdm8/n5aut2KybYxp7OlSAE11ZI0G8DZoobC
rcrF5RBLczzWUprlTWd5d7zvxMs/5813vXiIU4eHmJiw1EwmURQ4YvVg8jCCUkmRBfOu+RBrIfXq
j0OI8MvN7D+fNx+ny2b+CBORlizRhFidqLSLQVWFEZfTMzEaCUICklEvvpZRL7551A6GLNl98cNu
s/2YV7dKTcHYpIQvIxSjEtSjxkWwGwsyrRQTsCFO+9x8/kpQBUE60YFw3N0V1Out4OEGwWlDjs2U
YgB39zDeg7ICfih3bMCZlLChoYjiQ1atl1XJqlE8TlzcG7sX2911I962/9ktV8Gya3JdJXofo8dB
C0pBFcbBKnIZGFgldUKTY8st13K+1WvJHoC5m/jbfmUrhbwHk/FFCodhGjgndhvA8J1XarBCFGpM
rIVt9mAlqAGgewD8HcD75rxoIxCZm622WJcl54aUcQDk6ODqwnSB4oUgHNwbHZstWAlqADyyW/hZ
2xnAbvO+fAKoopt/G0WiYWeOOg05HEbSh6Pj1DnaUvNApcbmOqwlVRDcY99h/FKpuyYAM317+Rts
Z+ZOZKiEUoHagTFGVI6ej/ppQpUFs09RpiAbTVSLqRGozldwdh40dbl1P5tNlPbi7mCDntFMkUgW
kzydKeVW7KD1aIt1+CKpUUqNtBqJPXaQ3HozTH97eRGrE8HISoKZMUtdn4SgfodMwc9y0It+FAWe
TtHKxxbCSkwNwIseAHlXDJf30+v+c3mdJG6v3X3WjFzboYwa5yELQZoR28CYiKTpdev11JIaEB3T
5Peb+Xv89XL6cZAzBn1VkEyDMVPbAJOLpIeq9PrWx0GM0QYN46lTwyErQRWETSfXj18e7jr6cxUV
U3YOrMLvMnD2B0bT4yWjjxBgphLN1s6syMIb1+uzGwqjwGRn+f0crvy5+Vg53ZocCWozZUc42tlR
tz9haNg1XAowDmAyHM5fcwpWQurF9x21vN3NxuHneX0G8a9Pk6cVg7MnbBgU9SOTbnI7I9F4qATY
jFtqc73++YtDuN31ABxnBv/z8vJj+fc59SK6Vl3lMl7zMdQi0FIAWeA4RM5LyvSsoeVHa0E1gk45
stmxOdb0z7L8VNShDL37BlEFEaHnXtgGlyTVEOEqwLEp0TXH/5/uujveW5dvZ9dpPQfC0uUH8YD9
CdTbwGkaPmApCssGLItjP47FxvU/fbmmc2pRDYRdB4JY3Kep/9V4dUKXN4p+ao87FcEHo+AvsQFe
Y8ZBgKUGXwciYzyzvqTgWR/Rg+QamOjtjTisgE0PGn9bhn4Y0tBaY1NA4gdrRcC3wV5FLfzAgzJT
k7NY8fcKTy2wgdO5ojtpFzjvv46nl8W/miJzjvuYgxyHVOiWZgnLTZWdOmgOq124N/wLMGtxNRLZ
MaC77XaqGrkFMXbV91Jq+lqcDpCBVuSG4lV5elKqiUskQ7Fi6yjtwsavENVia0zb3ik6zDNB9qfL
+5SfmMndxK6mJ/pGg8LQTIGcYEGoN9IQjaBEUMQeBdh9OXYR1UJrPJ0gjdnR1NGrYcVfzL6OkvIa
xGScw4Z7UP5Ir+sTlFmg9F3ONnLDeLa6j2MWVmM4qh6Gmej8efh1/n1JHrppzn0AiOCHNOIAS+Xo
2TtN1oo6ctyykpLpQljLakB0uM7+1gCf/vDnshHSOv/dymuZJCuwooZTa0ZP/fUE9Ql0lLgvNijh
UhRfQPnZ3Y09Ez0gYvE/P1+X8+HtxLimXp2O2mgkAc5NbdxTxvGg9s5cmWACvFARbBfIWmIDRfag
zNr+DFU53x3n3VQSm3RyWg/FUPY8UstKGnyZPVxgAV845L5SWclqMPgehu0dw1+fmw+a+beMAHP6
7o9wkGEwD6proffUutDsQQnfNI3SQ7M0UZsFTCu0QbTrIdovvPz89vdhreKmN1DSJTVGatbGRnjp
jILwEdQYCk7n0eqSXf/WtPIaMJ37uxezw34V8xt47ZKG8XeLxHBQlCDDHKnIhAUDSPBZ80iv0A1N
RwxdSK3UGlLPHu2FbSBtX952f14qtsBZGrXCkbESxmgqfwnCwnC7UPIYlTU5PsOzFtlA6liC/Vbf
83O3v18y3FxPsbbJkdEha0FebKLmbtSNwsG3gRUP2eagRVBPQe16eLamh8fP7sztT6uuGffj7eZk
aszjyDjY1Rjg6UpOr56oD3pSsONGl+CteQrtUX4Dc9ODORurWQy9Hb4VRC+Z1qkzXhImZUsJLkH9
g0HAnM58KLaECDrIVXi+eQ+iG4C90783HYD9TEweTaEZpbAjNKI0UOCKQkkmJWmZ91aN5v/h6+Zl
gKJ3C/bt3u1fL5fZrlij7xFeGiTNBPXxjpSoc/AbA5eBJsJmeuBu8eMZsJXcBlZnxw6svZwnesc/
B3vlnLiiSaBOTd2b6EmAh7Gx1KLbF+FAX8F22TNUi9hv9fqd63kQmwbUn4eP18NL1whbW3S2UGIl
a+qPrGnUmFUDmEDOo9Mxef4M2Fp0DU10/N2DFVOru+Xv55yFpMNlpr7sCeoTPm6MaSrgAyIa4Oah
Nhwlb0RQzxCde2Bsxx4fPG/26bx5gSJcdJmhzzelv2XiulC/Cmh3EFlDxZ6WhmI6lp3hfvT6KaaV
4BpYLzpyOGwbffZ19FQan5gAldNmDPQYMFPJIH6oqPgIRWujfYbs61jq4dCx1oejngM3lYDDPK70
fviNnLUtpUMFRZeDpYI1EIkQ4c4V6GABP9ZHNv4LjM0SNdij6YE9tmDffpyOS/8YaA1xp4BEvz38
e0YjHCMURkzFDCIExaBDeAn5KcSV4ArY9GyvBXYEE6yvwfvL5gc9kFtlR+5nz0GXminqIDlFAjgx
H63g/XLvhJGs2KfQatENuA5FPHLZXIv3H398HDb7JWo82VE5bVuJOoO4S+E1pdOg0XSmp/XksSfK
1j+9q5XkGlrn+S9+2arbe+jzMYzKqcoAbgS8UEkFG9g2KJQwiKKLyM5SIcEzaJXkBprrQfPNWbsc
dqfX0xw5EOpuC6iS1CmK7WqqoMoqUo81A9MekmLSiyzSU2RrwQ2yDu04Ct5ok8uvM3zs82zW9XUS
0TQVgzpAZQZ7MPIxk39YaIJgGgT4pWJRUTXeU3CV7Bqd6Oi6o9TNJ61yyBpn7ealUSvaYEseNKNy
ggAnHiwc22YilcSBkJunOviLjDIQmB6sWQV/vv739Lp4sHo6+DIBhQtuGBWVBkqVyB2hrhnBKc4p
hdenZ2tpDYyOuj2aeXdo6FLHdaVGl9T2OVGD1ekJNVi1HODjU5Qw56xFF8cs7tv/AFBLAwQKAAAA
AADWYJtMAAAAAAAAAAAAAAAADAAcAGNvbXBvc2l0aW5nL1VUCQADw3TjWr5341p1eAsAAQT1AQAA
BBQAAABQSwMEFAACAAgA0mCbTDvYpX0nAQAA0CQAADgAHABjb21wb3NpdGluZy9hYnNvbHV0ZS1p
bnNpZGUtb3V0LW9mLXZpZXctZml4ZWQtc3RkZXJyLnR4dFVUCQADvHTjWqZm41p1eAsAAQT1AQAA
BBQAAADt1OFKwzAUBeD/PsV9ABnd5qoUEWqoUwYO2kIFkZLWKwvLkpLezfn2Tn0EBV09/wophHPC
+dIu0OScxpMkipPpjKjiZmGk5F7yrXMcHs+ms4vxE11mIfhwlZCaK++E91Kw3Bhrlbc+VEZWnx8J
GbfT1jxT+/UXRftoRHcv9Oa39KqdkHjqmUlWTI1u1xJ0y6fUWdY9H07kcEOtlvdl9lDWxe2yqq9T
tSjzVGXEbmeCdxt2oi3tdDC6sTw6Sb+VopDg13zkOeYsym863xvhZcdBi/HuGF9jACk+ZpFzKz36
/60UkAkyYRmQCTJBJsgEmdA/ZIJMWAZkgkyQCTJBJvQPmSATlgGZjqP/eBAyxQORKR6ETPH/W8af
kimGTJAJMmEZkOmHUrwDUEsDBBQAAgAIANNgm0zgTsx9WQEAANI7AAA0ABwAY29tcG9zaXRpbmcv
YWNjZWxlcmF0ZWQtbGF5ZXJzLWFmdGVyLWJhY2stc3RkZXJyLnR4dFVUCQADvnTjWqhm41p1eAsA
AQT1AQAABBQAAADt1O9qwjAUBfDve4r7AEP8s9lSxqALnRvCBC0ojCFpd4fBmJT06tzbz22PsA9q
PN8KKYRzwvnlTaB+Qr1+1h1mgyHRnKuxkZJbmW6d4/B6M7hNe290V4Tgw31GaqS8E97LjOXRWKu8
9WFuZPX7kZFxO23NO9V/f1F33+3Q8wd9+S19aicknlpmkhVTpeu1BF3zNTWWdcuHEzncsFSTl7JY
lMvZ02S+fMjVuJzmqiB2OxO827ATbWmng9GV5c5V/q8UMwl+zWeeY8Si/KbxrRGeNBy0GO/O8TUi
SPEziynX0qL/Y6WATJAJy4BMkAkyQSbIhP4hE2TCMiDTKaRIopApiUSmJAqZkstbxknJlEAmyASZ
sAzIBJkgE2SCTOgfMkEmLAMyHSlFGoVMaSQypVHIlF7eMk5KphQyQSbIhGVAJsgEmSATZEL/kAky
YRmQCTJBJsgEmS64/29QSwMEFAACAAgA1GCbTNoRdCxQAQAAnjIAAEkAHABjb21wb3NpdGluZy9h
bmNlc3Rvci1jb21wb3NpdGluZy1sYXllci1pcy1vbi1zdWJwaXhlbC1wb3NpdGlvbi1zdGRlcnIu
dHh0VVQJAAPAdONaqmbjWnV4CwABBPUBAAAEFAAAAO3UX0vDMBQF8Hc/xf0AMro/6lpEqGFOGTjY
ChNERlavLCxLSno357d3Kvg+fHBLz1shhXJOen55FahzRe1Ollxm3T7RjBcjIwXXMtk4x+G5173o
t1/oehCCDzcZqaHyTngnU5Y7Y63y1oeZkeX3Q0bGbbU1r1T+vEXJLmnRwxt9+A29aycknmpmkiXT
QpcrCbrkc6os65r3J7L/wlyNH4vBUzGf3o9n89tcjYpJrgbEbmuCd2t2oi1tdTB6Ybl1lv8pxVSC
X/GJ5xiyKL+ufG2ExxUHLca7U7yNCFJ8zWLCpdTo/79SQCbIhGVAJsgEmSATZGpi/2kUMqWRyJRG
IVPavGUclUwpZIJMkAnLgEyQCTJBJsjUjP57SQwyHZziSGU6LMcwln8qghTHJFMT+4dMkAnLgEyQ
CTJBJsiE/iETZMIyIBNkgkyQCTKh/98Un1BLAwQKAAAAAADTWJtMAAAAAAAAAAAAAAAAFgAcAGNv
bXBvc2l0aW5nL2FuaW1hdGlvbi9VVAkAA65m41q9d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAI
ANJgm0z8KhIsIQEAADYgAABCABwAY29tcG9zaXRpbmcvYW5pbWF0aW9uL2FuaW1hdGVkLWNvbXBv
c2l0ZWQtaW5zaWRlLWhpZGRlbi1zdGRlcnIudHh0VVQJAAO8dONapmbjWnV4CwABBPUBAAAEFAAA
AO3U0UrDMBQG4Huf4jyAjLq5KEWEGuqUgYWuMEGkZPXIwrKkpGdzvr1Tb71T0NX/LpDA4T/h/7I2
0vCMToZpotLRmGjOi6mVijspN95zfDgdjc/VI13kMYZ4mZKe6OCFdzJjubbO6eBCnFtZfhxSsn5r
nH2i5vMVJbtkQLfP9Bo29GK8kATqmEmWTAvTrCSaho+pdWw63t/IfkKti7sqv6/q2U0xr68yPa3K
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
JDKJTCLTaPf/CVBLAwQUAAIACADWYJtMkC5stjYBAAAELgAAMQAcAGNvbXBvc2l0aW5nL2FuaW1h
dGlvbi9tYXRyaXgtYW5pbWF0aW9uLXN0ZGVyci50eHRVVAkAA8R041quZuNadXgLAAEE9QEAAAQU
AAAA7dTRSsMwGAXge5/ifwAZc4tTigg1zCkDB2uhA5GS1l8WliUl/Vfn2zv1Ebxwq+eukEI4J5wv
bSKNruhilAwniRoTFVzNreTcynLnPcdnNb68nrzQzTTGEG8T0jMdvPBeMpZ765wOLsTCyvr7IyHr
O+PsK9U/f9FwPxzQ4xt9hB29Gy8kgVpmkjVTZeqNRFPzOTWOTcuHEzncUOrFUz5d5WX2sCjKu1TP
82Wqp8S+szH4LXsxjjoTrakcD87SX6XIJIYNn3iOGYsO2ya0VnjRcDRigz/F1+hBiq9ZLLmWFv3/
VQrIBJmwDMgEmSATZIJM6B8yQSYsAzIdQwrVC5lUT2RSvZBJ/b9lHJVMCjJBJsiEZUAmyASZIBNk
Qv+QCTJhGZAJMkEmyASZ0D9kgkxYBmQ6ov4/AVBLAwQKAAAAAADQWJtMAAAAAAAAAAAAAAAAIAAc
AGNvbXBvc2l0aW5nL2JhY2tmYWNlLXZpc2liaWxpdHkvVVQJAAOnZuNavXfjWnV4CwABBPUBAAAE
FAAAAFBLAwQUAAIACADVW5tMROmAgyYBAADQJAAAQQAcAGNvbXBvc2l0aW5nL2JhY2tmYWNlLXZp
c2liaWxpdHkvYmFja2ZhY2UtdmlzaWJpbGl0eS0zZC1zdGRlcnIudHh0VVQJAANSbONap2bjWnV4
CwABBPUBAAAEFAAAAO3UUUvDMBQF4Hd/xf0BMppNFIoINdQpAwtboYJISeuVhWVJSe/q/PdOffXN
B109b4UUwjnhfFkXaXpBSqWzJD1LiCpuFlZK7mW5857j42x6PlVPdJnHGOJVSnqugxfey4rlxjqn
gwuxsrL+/EjJ+sE4+0zt11+U7JMJ3b3QW9jRq/FCEqhnJlkzNabdSDQtn1Ln2PR8OJHDDbUu7sv8
oaxXt0VVX2d6US4znRP7wcbgt+zFOBpMtKZxPDnJfpRiJTFs+MhzzFl02Haht8JFx9GIDf4YX2ME
KT5mseRWevT/WykgE2TCMiATZIJMkAkyoX/IBJmwDMgEmSATZIJM6P+7FGoUMqmRyKRGIZP6f8v4
UzIpyASZIBOWAZkgE2SCTJBptP2/A1BLAwQKAAAAAADQWJtMAAAAAAAAAAAAAAAAHQAcAGNvbXBv
c2l0aW5nL2JhY2tncm91bmQtY29sb3IvVVQJAAOnZuNavXfjWnV4CwABBPUBAAAEFAAAAFBLAwQU
AAIACADTYJtM5uzgYh8BAAA2IAAASwAcAGNvbXBvc2l0aW5nL2JhY2tncm91bmQtY29sb3IvYmFj
a2dyb3VuZC1jb2xvci1hbHBoYS13aXRoLW9wYWNpdHktc3RkZXJyLnR4dFVUCQADvXTjWqdm41p1
eAsAAQT1AQAABBQAAADt1OFKwzAQB/DvPsU9gIxucxGLCDXUKQMLbaGCSEnrycKyXElvdb69Ux/B
D271vgUSOP4X/r+kCzC7hOksjlQ8XwBU2Kwsl9hzvvMew/PFfHE1fYHrNAQKNzHopSbPuOcC+c46
p8lRqCyvvw8xWD8YZ1+h/XkF0T6awMMbfNAO3o1nYIIeEXiN0Jh2w8G0eA6dQ9Pj4YYPE2qdPZbp
U1kX91lV3yZ6VeaJTgH9YAP5LXo2DgYTrGkcTs6SX6UoONAGTzzHElnTtqPeMmYdBsOW/Cn+xghS
fNUix5Z72f9fpRCZRCZphsgkMolMIpPIJPsXmUQmaYbIdAwp1ChkUiORSY1CJvX/mnFUMimRSWQS
maQZIpPIJDKJTCLTaPf/CVBLAwQKAAAAAADQWJtMAAAAAAAAAAAAAAAAGAAcAGNvbXBvc2l0aW5n
L2JhY2tncm91bmRzL1VUCQADp2bjWr1341p1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA02CbTJml
caREAQAABC4AAEEAHABjb21wb3NpdGluZy9iYWNrZ3JvdW5kcy9maXhlZC1iYWNrZ3JvdW5kLW9u
LWRlc2NlbmRhbnQtc3RkZXJyLnR4dFVUCQADvnTjWqdm41p1eAsAAQT1AQAABBQAAADt1FFLwzAU
BeB3f8X9ATLmpm0tItRQpwwcbIUJIiOrVxaWJSW9m/PfO/XVNx+2ZeetkEI4J5yvaAL1Urro5d0k
7ydEU54PjVTcynjtHIeXy/7VdfJKN2UIPtzmpAbKO+GtTFjujbXKWx+mRhY/HzkZt9HWvFH9+xd1
t90OPb7Tp1/Th3ZC4qllJlkwzXW9lKBrPqfGsm55dyK7G2Zq9FSVz9Vs8jCazu4KNazGhSqJ3cYE
71bsRFva6GD03HLnrPhXiokEv+QjzzFgUX7V+NYIjxoOWox3x/gaEaT4nsWYa2nR/75SQCbIhGVA
JsgEmSATZEL/kAkyYRmQCTJBJsgEmdD/XynSKGRKI5EpjUKm9PSWcVAypZAJMkEmLAMyQSbIBJkg
E/qHTJAJy4BMe0qRRSFTFolMWRQyZae3jIOS6Vj7/wJQSwMECgAAAAAA0VibTAAAAAAAAAAAAAAA
ABQAHABjb21wb3NpdGluZy9iYWNraW5nL1VUCQADqWbjWr1341p1eAsAAQT1AQAABBQAAABQSwME
FAACAAgA02CbTInzyYQnAQAA0CQAADcAHABjb21wb3NpdGluZy9iYWNraW5nL2JhY2tmYWNlLXZp
c2liaWxpdHktZmxpcC1zdGRlcnIudHh0VVQJAAO9dONaqGbjWnV4CwABBPUBAAAEFAAAAO3U4UrD
MBQF4P8+xX0AGXNzVYsINcwpAwdtoYJISeuVhWVJSe/qfHunPoIwt3r+BRK4nBvOlzSBRhd0NoqH
UTyeEBVczY3k3Eq6cY7D8/l4cnX5QtfTEHy4iUnNlHfCW8lY7oy1ylsfCiPL70NMxnXamleqf17R
cDsc0MMbffgNvWsnJJ5aZpIlU6XrlQRd8yk1lnXLuxvZTSjV4jGfPuVldr8oyttEzfM0UVNi15ng
3ZqdaEudDkZXlgcnya9SZBL8io88x4xF+XXjWyO8aDhoMd4d42/0IMVXLVKupcX+/yoFZIJMaAZk
gkyQCTJBJuwfMkEmNAMyHUKKqBcyRT2RKeqFTNH/a8ZByRRBJsgEmdAMyASZIBNkgkzYP2SCTGgG
ZNpbik9QSwMEFAACAAgA02CbTJdbFz5NAQAA0jsAAEMAHABjb21wb3NpdGluZy9iYWNraW5nL2Jh
Y2tmYWNlLXZpc2liaWxpdHktaW4tM2R0cmFuc2Zvcm1lZC1zdGRlcnIudHh0VVQJAAO+dONaqWbj
WnV4CwABBPUBAAAEFAAAAO3UUUvDMBQF4Hd/xf0BMuamrhYRaqhTBhbawgSRktYrC8uSkt7V+e+d
+u6LD7p63gophHPC+ZI20GRGJ5N4fB5PZ0RLrhdGSu4k3zrH4fF0enYRPdFlGoIPVzGpufJOeCcF
y42xVnnrw9LI6vMjJuN6bc0zNV9/0Xg3HtHdC735Lb1qJySeOmaSFVOtm7UE3fAxtZZ1x/sT2d9Q
qey+TB/KqrjNltV1ohZlnqiU2PUmeLdhJ9pSr4PRteXRUfKjFIUEv+YDzzFnUX7T+s4IZy0HLca7
Q3yNAaT4mEXOjXTo/7dSQCbIhGVAJsgEmSATZEL/kAkyYRmQCTJBJsgEmdA/ZIJMWAZkOoz+o0HI
FA1EpmgQMkX/bxl/SqYIMkEmyIRlQCbIBJkgE2RC/5AJMmEZkAkyQSbIBJnQP2SCTFgGZIJMkAky
QSb0/02Kd1BLAwQKAAAAAADQWJtMAAAAAAAAAAAAAAAAEwAcAGNvbXBvc2l0aW5nL2NhbnZhcy9V
VAkAA6hm41q9d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIANZbm0yp4CZUSAEAAJ4yAABHABwA
Y29tcG9zaXRpbmcvY2FudmFzL2FjY2VsZXJhdGVkLWNhbnZhcy1jb21wb3NpdGluZy1zaXplLWxp
bWl0LXN0ZGVyci50eHRVVAkAA1Ns41qoZuNadXgLAAEE9QEAAAQUAAAA7dThSsMwFAXg/z7FfQAZ
TSoKRYRa5pSBg60wQWRk9crCsqSkd3O+vVMfQdAuO/8KKYRzwvnKNpK+IqWKPCsuMqI5L8dWau5k
uvWe43OuL/P8ha6HMYZ4U1A1qoIX3suM5c46VwUX4tzK6vujIOt3xtlXan7+omyfDejhjT7Clt6N
F5JAHTPJimlpmrVE0/A5tY5Nx4cTOdywqCaP9fCpXszuJ/PFbVmN62lZDYn9zsbgN+zFONqZaM3S
8eCs/FWKmcSw5iPPMWKpwqYNnRWetByN2OCP8TUSSPE1iyk30qH//0oBmSATlgGZIBNkgkyQCf1D
JsiEZUCmPqRQScikEpFJJSGTOr1l9EomBZkgE2TCMiATZIJMkAkynUj/OgmZdCIy6SRk0qe3jF7J
pCETZIJMWAZkgkyQCTJBJvQPmSATlgGZ/izFJ1BLAwQKAAAAAADQWJtMAAAAAAAAAAAAAAAAFQAc
AGNvbXBvc2l0aW5nL2NsaXBwaW5nL1VUCQADqGbjWr1341p1eAsAAQT1AQAABBQAAABQSwMEFAAC
AAgA02CbTPPPGp0vAQAAaikAAE4AHABjb21wb3NpdGluZy9jbGlwcGluZy9ib3JkZXItcmFkaXVz
LW92ZXJmbG93LWhpZGRlbi1zdGFja2luZy1jb250ZXh0LXN0ZGVyci50eHRVVAkAA75041qoZuNa
dXgLAAEE9QEAAAQUAAAA7dRRS8MwFAXgd3/F/QEy6iotFBFqqFMGDrZCBZGS1isLy5KS3tX57536
6pugrp63QgrhnHC+vAs0TelsmkVJFidEFTdzIyX3stw5x+HhPE6i+JEuihB8uMxIzZR3wntZsVwb
a5W3PlRG1h8fGRk3aGueqP38i6J9NKHbZ3r1O3rRTkg89cwka6ZGtxsJuuVT6izrng8ncrihVou7
srgv69XNoqqvcjUvl7kqiN1ggndbdqItDToY3VienOTfSrGS4Dd85DlmLMpvO98b4UXHQYvx7hhf
YwQp3mex5FZ69P9bKSATZMIyIBNkgkyQCTKhf8gEmbAMyASZIBNkgkzo/6sU6ShkSkciUzoKmdL/
t4w/JVMKmSATZMIyIBNkgkyQCTKhf8gEmbAMyPRjKd4AUEsDBAoAAAAAANNgm0wAAAAAAAAAAAAA
AAAbABwAY29tcG9zaXRpbmcvY29sb3ItbWF0Y2hpbmcvVVQJAAO+dONavXfjWnV4CwABBPUBAAAE
FAAAAFBLAwQUAAIACADTYJtMRkgOyWkBAAAGRQAAOgAcAGNvbXBvc2l0aW5nL2NvbG9yLW1hdGNo
aW5nL2ltYWdlLWNvbG9yLW1hdGNoaW5nLXN0ZGVyci50eHRVVAkAA75041q+dONadXgLAAEE9QEA
AAQUAAAA7dRRS8MwFAXgd3/F/QEy6iZtKSLUMKcMHGyFCSIlq1cWliUlvZvz3zv11TcftmXnrZBC
OCecr2wD9TO66hdJWgxSojkvxkYq7mS6cY7Dy/UgTdJXuhmG4MNtQWqkvBPeyYzl3lirvPVhbmT5
81GQcVttzRs1v39Rskt69PhOn35DH9oJiaeOmWTJtNDNSoJu+JJay7rj/Ynsb6jV5KkaPlf17GEy
r+9KNa6mpRoSu60J3q3Ziba01cHoheXeRfmvFDMJfsUnnmPEovy69Z0RnrQctBjvTvE1IkjxPYsp
N9Kh/0OlgEyQCcuATJAJMkEmyIT+IRNkwjIgE2SCTJAJMqH/v1JkUciURSJTFoVM2fkt46hkyiAT
ZIJMWAZkgkyQCTJBJvQPmSATlgGZDpQij0KmPBKZ8ihkys9vGUclUw6ZIBNkwjIgE2SCTJAJMqF/
yASZsAzIBJkgE2SCTOgfMkEmLAMyHVH/X1BLAwQKAAAAAADWW5tMAAAAAAAAAAAAAAAAHAAcAGNv
bXBvc2l0aW5nL2NvbnRlbnRzLWZvcm1hdC9VVAkAA1Ns41q9d+NadXgLAAEE9QEAAAQUAAAAUEsD
BBQAAgAIANZbm0wmQSINUgEAAGxAAABIABwAY29tcG9zaXRpbmcvY29udGVudHMtZm9ybWF0L3N1
YnBpeGVsLWFudGlhbGlhc2VkLW5lc3RlZC1sYXllci1zdGRlcnIudHh0VVQJAANTbONaU2zjWnV4
CwABBPUBAAAEFAAAAO3U0UrDMBgF4Huf4n8AGW02FIoINdQpAwdboYJISesvC8uSkv6b8+2d+ghe
aOu5K6QQzgnny7tI6pLSNJsm2SwlqrhZWCm5l9Xee45PU3UxS57pqogxxOuM9FwHL3yUNcutdU4H
F2JlZfP1kZH1B+PsC7Xff1FyTCZ0/0rvYU9vxgtJoJ6ZZMPUmHYr0bR8Tp1j0/PpRE431Hr5UBaP
Zb2+W1b1Ta4X5SrXBbE/2Bj8jr0YRwcTrWkcT87yH6VYSwxbHniOOYsOuy70VnjZcTRigx/ia4wg
xecsVtxKj/5/KwVkgkxYBmSCTJAJMkEm9A+ZIBOWAZkgE2SCTJAJ/UMmyIRlQKZh9K9GIZMaiUxq
FDKp/7eMPyWTgkyQCTJhGZAJMkEmyASZ0D9kgkxYBmSCTJAJMkEm9A+ZIBOWAZkgE2SCTJAJ/UMm
yIRlQKZB9f8BUEsDBAoAAAAAANFYm0wAAAAAAAAAAAAAAAAbABwAY29tcG9zaXRpbmcvY29udGVu
dHMtc2NhbGUvVVQJAAOpZuNavXfjWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADTYJtM77HtPFkB
AADSOwAALwAcAGNvbXBvc2l0aW5nL2NvbnRlbnRzLXNjYWxlL2FuaW1hdGluZy1zdGRlcnIudHh0
VVQJAAO+dONap2bjWnV4CwABBPUBAAAEFAAAAO3U70rDMBQF8O8+xX0AGfsjayki1FCnDCxshQki
I6tXFpYlJb2b8+2d+gh+2Jaeb4UUwjnh/PIm0DChwTDrj7PRmGjBq6mRiluZ7Zzj8HozGg8Gb3Rb
hODDXUZqorwTPsic5cFYq7z1YWFk/fuRkXF7bc071X9/Uf/Q79HTB335HX1qJySeWmaSNdNK1xsJ
uuZraizrlo8ncrxhqcrnqniplvPHcrG8z9W0muWqIHZ7E7zbshNtaa+D0SvLvav8XynmEvyGLzzH
hEX5beNbI1w2HLQY7y7xNSJI8TOLGdfSov9TpYBMkAnLgEyQCTJBJsiE/iETZMIyINM5pEiikCmJ
RKYkCpmS7i3jrGRKIBNkgkxYBmSCTJAJMkEm9A+ZIBOWAZlOlCKNQqY0EpnSKGRKu7eMs5IphUyQ
CTJhGZAJMkEmyASZ0D9kgkxYBmSCTJAJMkGmDvf/DVBLAwQUAAIACADVYJtMy8Lk4FcBAAA4NwAA
WgAcAGNvbXBvc2l0aW5nL2NvbnRlbnRzLXNjYWxlL2hpZHBpLWNvbXBvc2l0aW5nLWxheWVyLXBv
c2l0aW9uZWQtb24tc2NhbGVkLWNvbnRleHQtc3RkZXJyLnR4dFVUCQADwXTjWqlm41p1eAsAAQT1
AQAABBQAAADt1O9KwzAUBfDvPsV9ABndH6YtItQwpwwcbIUJIiOrVxaWJSW9m/PtnfoEww926flW
SKGck55fXgXqXVG3lyXDrH9NtODVxEjBtcx2znF4GfSH3e4r3YxC8OE2IzVW3gkfZM5yb6xV3vqw
MLL+ecjIuL225o3K37coOSQdenynT7+jD+2ExFPNTLJmWulyI0GXfEmVZV3z8USOX1iq6VMxei6W
84fpYnmXq0kxy9WI2O1N8G7LTrSlvQ5Gryx3LvI/pZhL8Bs+8xxjFuW3la+N8LTioMV4d463EUGK
71nMuJQa/f9XCsgEmbAMyASZIBNkgkxt7D+NQqY0EpnSKGRK27eMRsmUQibIBJmwDMgEmSATZIJM
7eh/kMQg08kpGirTaTnGsfxTEaRokkxt7B8yQSYsAzJBJsgEmSAT+odMkAnLgEyQCTJBJsiE/iET
ZMIyIFOD+/8CUEsDBAoAAAAAANJYm0wAAAAAAAAAAAAAAAAVABwAY29tcG9zaXRpbmcvZ2VvbWV0
cnkvVVQJAAOsZuNavXfjWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADTYJtMD+PCt8kAAABNAQAA
MwAcAGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLWluLWNvbXBvc2l0ZWQtc3RkZXJyLnR4dFVU
CQADvnTjWqlm41p1eAsAAQT1AQAABBQAAACtj8FqwzAQRO/5iv2BbGXJcYwgEGz3VCihPfRQSlnb
m0RE0RpZTn+/dqA99NzrzDBvRqusXKt8rbeQaasKa0o0ykAnV6Rh8Ixv3D65hAc/nVzAIseGb+xl
uHJI77kpNltr1Mbo8gOeOX1JvLwmiXTiprKfMnBoqhemvpYQuEtOwmjhSM5zD0lgCUCc/Zn4E1j0
poI9PNTUnRn7FgEeY5S4y3KEmqaRd1Og1vNvRU+JWhoZjnPzSv/nq/uI5YKFP9Buce7EEVyA1TdQ
SwMEFAACAAgA1GCbTFjhmT4vAQAANiAAAEMAHABjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1w
b3NpdGlvbi1mbGlwcGVkLXdyaXRpbmctbW9kZS1zdGRlcnIudHh0VVQJAAPAdONaq2bjWnV4CwAB
BPUBAAAEFAAAAO3U30rDMBQG8Huf4jyAjLo/aosINdQqAwtdoYLISOuRhWVJSc/qfHunPsHwwjY9
d4EEwneS7xc3DqZXcDGNgstodg1QYrVUVGBL+d4YdC/z2WIRvMJN4px1txGIVFhDeKAV0r3SWlht
Xalo87OIQJlOavUG9e8pCA7BBB7f4dPu4UMaArLQIgJtECpZb8nJGs+h0ShbPO7Q8Ya1yJ6K5LlY
rx6ycn0Xi2WRxyIBNJ1y1uzQkNTQSadkpXFyFv8pxYqc3eLAc6RIwu4a2yrCrEEnSVkzxNfwIMV3
LXKsqeX5/1cKloll4mawTCwTy8QysUxjnH/ohUyhJzKFXsgUjq8ZvZIpZJlYJpaJm8EysUwsE8vE
Mo1j/vPAB5lOTtFTmU7LkfrypzxI0SeZBjv/L1BLAwQUAAIACADVYJtMer6z8jUBAAAELgAAUAAc
AGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBh
Z2Utc2NhbGUtZG93bi1zdGRlcnIudHh0VVQJAAPBdONarGbjWnV4CwABBPUBAAAEFAAAAO3U4UrD
MBQF4P8+xX0AGe3cFIoINdQpAwttYYLISOuVhWVJSe/qfHunPoKgtp5/hRTCOeF8aRtoekHxNInO
k1lEtOJ6aaTiToq9cxweZ2fzefREl1kIPlwlpBbKO+GDlCw3xlrlrQ8rI5vPj4SM67U1z9R8/UXR
IZrQ3Qu9+T29aicknjpmkg1TrZutBN3wKbWWdcfHEznesFb5fZU9VOvyNl+tr1O1rIpUZcSuN8G7
HTvRlnodjK4tT07Sb6UoJfgtDzzHgkX5Xes7I5y3HLQY74b4GiNI8TGLghvp0P9vpYBMkAnLgEyQ
CTJBJsiE/iETZMIyIBNkgkyQCTKhf8gEmbAMyDSM/uNRyBSPRKZ4FDLF/28Zf0qmGDJBJsiEZUAm
yASZIBNkQv+QCTJhGZDpx1K8A1BLAwQKAAAAAADRWJtMAAAAAAAAAAAAAAAAFAAcAGNvbXBvc2l0
aW5nL2lmcmFtZXMvVVQJAAOpZuNavXfjWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADTYJtMZpos
iskAAABNAQAAVQAcAGNvbXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1lLXBvc2l0aW9uLWFic29sdXRl
LXdpdGgtcGFkZGluZy1wZXJjZW50YWdlLWNyYXNoLXN0ZGVyci50eHRVVAkAA75041qpZuNadXgL
AAEE9QEAAAQUAAAArY/BasMwEETv+Yr9gWxsyVGMIFBs5xQIpT30UEpZ25tURNEaWW5/v3agPfTc
68wwb0ZlebnOirXaQa5sZqwuURsFndyQhsEzvnB7dAkf/XRxAU2BDX+yl+HGIb0W2pjc6myry90b
nDh9Sbw+J4l04aay7zJwaKonpr6WELhLTsJo4UzOcw9JYAlAnP2Z+BNY9KaCB9jU1H0w9i0CHGKU
uM8LhJqmkfdToNbzb0VPiVoaGc5z80r956v7iOWChT/QbnHuxBFcgNU3UEsDBAoAAAAAAOBYm0wA
AAAAAAAAAAAAAAAbABwAY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vVVQJAAPEZuNavnfjWnV4
CwABBPUBAAAEFAAAAFBLAwQUAAIACADTYJtMsm4IsVkBAADSOwAARQAcAGNvbXBvc2l0aW5nL2xh
eWVyLWNyZWF0aW9uL2FuaW1hdGlvbi1vdmVybGFwLXdpdGgtY2hpbGRyZW4tc3RkZXJyLnR4dFVU
CQADvnTjWqhm41p1eAsAAQT1AQAABBQAAADt1O9KwzAUBfDvPsV9ABl1/1qKCDXMKQMHW6GCyMjq
lYVlSUnv5nx7pz6CH7Zl51shhXBOOL+iCdRN6aabJ8O8NySqeDkxUnIrs61zHF77vcGg/0a3oxB8
uMtJjZV3wnuZszwYa5W3PlRGVr8fORm309a8U/33FyX7pENPH/Tlt/SpnZB4aplJVkxLXa8l6Jqv
qbGsWz6cyOGGhZo+l6OXcjF/nFaL+0JNylmhRsRuZ4J3G3aiLe10MHppuXNV/CvFXIJf85nnGLMo
v2l8a4SnDQctxrtzfI0IUvzMYsa1tOj/WCkgE2TCMiATZIJMkAkyoX/IBJmwDMh0CinSKGRKI5Ep
jUKm9PKWcVIypZAJMkEmLAMyQSbIBJkgE/qHTJAJy4BMR0qRRSFTFolMWRQyZZe3jJOSKYNMkAky
YRmQCTJBJsgEmdA/ZIJMWAZkgkyQCTJBpgvu/xtQSwMEFAACAAgA1GCbTIcflEFQAQAAnjIAAE8A
HABjb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9hc3NlcnQtb24taW5saW5lLWVsZW1lbnQtd2l0
aC13aWxsLWNoYW5nZS1zdGRlcnIudHh0VVQJAAPAdONaqmbjWnV4CwABBPUBAAAEFAAAAO3UX0vD
MBQF8Hc/xf0AMur+qC0i1DCnDBxshQkiI6tXFpYlJb2b89s7FfY+fHBLz1shhXJOen55Fah9RRft
LLnMOtdEU54PjRRcy3jtHIeXbqfX677STT8EH24zUgPlnfBWJiz3xlrlrQ9TI4ufh4yM22hr3qj8
fYuSbdKix3f69Gv60E5IPNXMJAumuS6XEnTJ51RZ1jXvTmT3hZkaPRX952I2eRhNZ3e5GhbjXPWJ
3cYE71bsRFva6GD03HLrLP9TiokEv+QTzzFgUX5V+doIjyoOWox3p3gbEaT4nsWYS6nR/3+lgEyQ
CcuATJAJMkEmyNTE/tMoZEojkSmNQqa0ecs4KplSyASZIBOWAZkgE2SCTJCpGf13kxhkOjjFkcp0
WI5BLP9UBCmOSaYm9g+ZIBOWAZkgE2SCTJAJ/UMmyIRlQCbIBJkgE2RC//sUX1BLAwQUAAIACADW
YJtMIOs03BIBAAA2IAAAVAAcAGNvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL21pc21hdGNoZWQt
cm90YXRlZC10cmFuc2Zvcm0tYW5pbWF0aW9uLW92ZXJsYXAtc3RkZXJyLnR4dFVUCQADxHTjWq9m
41p1eAsAAQT1AQAABBQAAADt1NFKwzAYBeB7n+J/ABl16xSKCDV0UwYW2kKFISWt/1hYlpT0X51v
79QXELyQybkrpBDOCedL+0DTG7qaJtF1Es+Iam5XRioepDg4x2Edz+bz+IVusxB8uEtILZV3wkcp
WRbGWuWtD7WR7ddHQsaN2ppX6r7/ougYTehxQ+/+QG/aCYmngZlky9TqbidBd3xJvWU98OlETjc0
Kn+qsueqKR/yurlP1aoqUpURu9EE7/bsRFsadTC6tTy5SH+VopTgd3zmOZYsyu97PxjhvOegxXh3
jq/xD1J8zqLgTgb0/1cpIBNkwjIgE2SCTJAJMqF/yASZsAzIBJkgE2SCTOgfMkEmLAMyQSbIBJkg
E/r/aYoPUEsDBBQAAgAIANdgm0w+TitoDgEAAAIXAABVABwAY29tcG9zaXRpbmcvbGF5ZXItY3Jl
YXRpb24vbWlzbWF0Y2hlZC1yb3RhdGVkLXRyYW5zZm9ybS10cmFuc2l0aW9uLW92ZXJsYXAtc3Rk
ZXJyLnR4dFVUCQADxnTjWrBm41p1eAsAAQT1AQAABBQAAADt1OFKwzAQB/DvPsU9gIw6G4UiQg11
ysBCW6gwpKT1ZGFZrqS3Ot/eqY8goqv3LZDA8b/w/6V9gPklnM2T6CKJY4Aa26XlCgcudt5jWMXn
SsVPcJWFQOE6Ab3Q5Bn3XCLfWuc0OQq15fXnIQHrR+PsM3RfryDaRzO4f4E32sGr8QxMMCACrxFa
0204mA5PoXdoBjzc8GFCo/OHKnusmvIur5ubVC+rItUZoB9tIL9Fz8bBaII1rcPZSfqtFCUH2uCR
51gga9r2NFjGvMdg2JI/xt+YQIqPWhTY8SD7/60UIpPIJM0QmX4+hZqETGoiMqlJyKT+XzP+lExK
ZBKZRCZphsgkMolMIpPINNn9vwNQSwMEFAACAAgA2GCbTEzFPrEOAQAAAhcAAEoAHABjb21wb3Np
dGluZy9sYXllci1jcmVhdGlvbi9tdWx0aXBsZS1rZXlmcmFtZXMtYW5pbWF0aW9uLW92ZXJsYXAt
c3RkZXJyLnR4dFVUCQADyHTjWrJm41p1eAsAAQT1AQAABBQAAADt1OFKwzAQB/DvPsU9gIw6uwWK
CDXUKQMLa6HCkJLWk4VluZLe6nx7pz6CiK7et0ACx//C/5d2AaYKLqZJNE/iOUCFzdJyiT2v9t5j
WMeXs1n8BFdZCBSuE9ALTZ7xwAXyrXVOk6NQWd58HhKwfjDOPkP79QqiQzSB+xd4oz28Gs/ABD0i
8AahMe2Wg2nxHDqHpsfjDR8n1Dp/KLPHsi7u8qq+SfWyXKU6A/SDDeR36Nk4GEywpnE4OUu/laLg
QFs88RwLZE27jnrLmHcYDFvyp/gbI0jxUYsVttzL/n8rhcgkMkkzRKafT6FGIZMaiUxqFDKp/9eM
PyWTEplEJpFJmiEyiUwik8gkMo12/+9QSwMEFAACAAgA2WCbTFxmkzAPAQAAAhcAAFcAHABjb21w
b3NpdGluZy9sYXllci1jcmVhdGlvbi9uby1jb21wb3NpdGluZy1mb3ItZml4ZWQtcG9zaXRpb24t
dW5kZXItdHJhbnNmb3JtLXN0ZGVyci50eHRVVAkAA8l041qzZuNadXgLAAEE9QEAAAQUAAAA7dTh
SsMwEAfw7z7FPYCMOju1RYQa6pSBhbZQQaSk9WRhWVKutzrf3qmP4EDX3bdAAsf/wv+XdATTSzib
xsFFHF4BVNgsDJfYc75xDuk5PJ/Nwhe4Tok83cSg5so7xi0XyHfGWuWtp8rw8vsQg3GDtuYV2p9X
EGyDCTy8wYffwLt2DOyhRwReIjS6XTHpFk+hs6h73N3wbkKtsscyfSrr4j6r6ttELco8USmgGwx5
t0bH2sKgyejG4uQk+VWKgsmv8MBzzJGVX3e+N4xZh6TZeHeIvzGCFF+1yLHlXvb/VylEJpFJmiEy
iUwik8gkMh3j/qNRyBSNRKZoFDJFx9eMfyVTJDKJTCKTNENk2lOKT1BLAwQUAAIACADZYJtMLTZs
8B0BAACcGwAAPwAcAGNvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL25vLWNvbXBvc2l0aW5nLWZv
ci1zdGlja3ktc3RkZXJyLnR4dFVUCQADynTjWrVm41p1eAsAAQT1AQAABBQAAADt1OFKwzAQB/Dv
PsU9gIw6W8UiQg21ysBCV6ggUtJ6srAsV9JbnW/v1CcYItvqfQskEP6X/H9J52F6CWfTOLiIwyuA
CpuZ4RJ7LtbOoX8Oz6MofIHr1HvyNzGoTJFj3PAc+c5Yq8iSrwwvvhcxGDdoa16h/TkFwSaYwMMb
fNAa3rVjYIIeEXiB0Oh2yV63eAqdRd3jdoe3N9QqfyzTp7Ke3+dVfZuoWVkkKgV0g/HkVuhYWxi0
N7qxODlJfpVizp6WeOQ5MmRFq456w5h36DUbcsf4GiNI8VWLAlvuZf77SiEyiUzSDJHpz1NEwRhk
2jnFgcq0W45sLH9qBCkOSab/OH+RSWSSZohMIpPIJDKJTDJ/kUlkkmaITHub/ydQSwMEFAACAAgA
2mCbTBNHalgYAQAAnBsAAD0AHABjb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9vdmVyZmxvdy1z
Y3JvbGwtb3ZlcmxhcC1zdGRlcnIudHh0VVQJAAPLdONatmbjWnV4CwABBPUBAAAEFAAAAO3Ub0vD
MBAG8Pd+ivsAMpq5KhQRaqhTBhbWQoUhJa0nC8tyJb3V+e2d+hHEP6v3LpDA8Vx4fmkXYHoBappE
50kcAVTYLCyX2PNy5z2G1ewsjmePcJmFQOEqAT3X5Bn3XCDfWOc0OQqV5fXHIQHrB+PsE7SfryDa
RxO4e4ZX2sGL8QxM0CMCrxEa0244mBZPoXNoejzc8GFCrfP7Mnso6+I2r+rrVC/KZaozQD/YQH6L
no2DwQRrGoeTk/RLKQoOtMEjzzFH1rTtqLeMeYfBsCV/jL8xghTvtVhiy73s/7dSiEwikzRDZPr+
FGoUMqmRyKRGIZP6f834UzIpkUlkEpmkGSKTyCQyiUwik+xfZBKZpBki04+leANQSwMEFAACAAgA
22CbTFW4dGUmAQAA0CQAAEAAHABjb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9vdmVybGFwLWFu
aW1hdGlvbi1jbGlwcGluZy1zdGRlcnIudHh0VVQJAAPNdONat2bjWnV4CwABBPUBAAAEFAAAAO3U
0UrDMBgF4Huf4n8AGbPdFIoINdQpAwttoYLISOsvC8uSkv6r8+2d+gZ6oavnrpBCOCecL+0CRRd0
FiXT82QeEdXcLI1U3Euxc47D4yyez2dPdJmF4MNVQmqhvBPeS8lyY6xV3vpQG1l/fiRk3KCteab2
6y+a7qcTunuhN7+jV+2ExFPPTLJmanS7kaBbPqXOsu75cCKHG1Yqv6+yh2pV3ub16jpVy6pIVUbs
BhO827ITbWnQwejG8uQk/VGKUoLf8JHnWLAov+18b4TzjoMW490xvsYIUnzMouBWevT/WykgE2TC
MiATZIJMkAkyoX/IBJmwDMgEmSATZIJM6B8yQSYsAzJBJsgEmSAT+v9eingUMsUjkSkehUzx/1vG
n5LpWPt/B1BLAwQUAAIACADbYJtMextpjAIBAAACFwAAOQAcAGNvbXBvc2l0aW5nL2xheWVyLWNy
ZWF0aW9uL292ZXJsYXAtY2hpbGQtbGF5ZXItc3RkZXJyLnR4dFVUCQADznTjWrhm41p1eAsAAQT1
AQAABBQAAADt1FFKw0AQBuB3TzEHkBLbRiGIEJe0lYKBJBChSNjEkS7d7oTJNNbbW+0RfJDKvC3s
wvDP8n9pzzC9g5tpEt0m8QygxnbtpMJBikMIyJv5LI7nr3CfMRM/JGCWhoLgUUqUhfPekCeunWx/
Dgm4MFrv3qA7v4LoGE3g6R0+6QAfNggIwYAIskVobbcTth1eQ+/RDni6kdOExuTPVfZSNeUqr5vH
1KyrIjUZYBgdU9hjEOthtOxs63Fylf4qRSlMO7zwHEsUQ/ueBieY98hWHIVL/I1/kOK7FgV2Muj+
/yqFyqQyaTNUJpVJZVKZVCbdv8qkMmkzVCaVSWVSmVQm3f85xRdQSwMEFAACAAgA4GCbTJr1GC/5
AAAAaBIAAEYAHABjb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9zY2FsZS1yb3RhdGlvbi1hbmlt
YXRpb24tb3ZlcmxhcC1zdGRlcnIudHh0VVQJAAPTdONavmbjWnV4CwABBPUBAAAEFAAAAO3UUUrD
QBAG4HdPMQeQEmuiEESIS6xSMJAEIoiETTqlS7c7YTKN9fZWPYIPpTJvC7sw/LP8XzYwzG/hap5G
N2kSAzTYLZ3UOEq5DwH5Lb5Okvgd7nJm4vsUzMJQEDxIhfLovDfkiRsnm59DCi5M1rsV9L+vIDpE
M3hewyft4cMGASEYEUE2CJ3tt8K2x0sYPNoRjzdynNCa4qXOX+u2eiqa9iEzy7rMTA4YJscUdhjE
epgsO9t5nF1kf0pRCdMWzzzHAsXQbqDRCRYDshVH4Rx/4x+k+K5Fib2Muv9TpVCZVCZthsqkMqlM
KpPKpPtXmVQmbYbKdJoUX1BLAwQUAAIACADhYJtMMO+FtxQBAAACFwAARwAcAGNvbXBvc2l0aW5n
L2xheWVyLWNyZWF0aW9uL3NjYWxlLXJvdGF0aW9uLXRyYW5zaXRpb24tb3ZlcmxhcC1zdGRlcnIu
dHh0VVQJAAPVdONawGbjWnV4CwABBPUBAAAEFAAAAO3UUUrDQBCA4XdPMQeQEmtjMYgQlxilYCAJ
tCASNnGkS7e7YTKN9fZWPYH60CbMW2AD4Z/NfHFLMJ3DxTQKrqLwGmCJ9cJwiR3nO+eQnmeXYTh7
gZuEyNNtBCpV3jHuuUC+N9Yqbz0tDa+/HyIwrtfWvELz8xYE+2ACj2/w4Xfwrh0De+gQgdcItW42
TLrBc2gt6g4PJ3z4QqWypzJZlVXxkC2ru1gtyjxWCaDrDXm3RcfaQq/J6Nri5Cz+V0XB5Dc48I4U
Wflt6zvDmLVImo13Q7yNEVR8rUWODXcy/2NViEwik2yGyCQyiUwik8gk8xeZRCbZDJHp6BXzKAiG
L9MfKk5Spt92pGP5p0ZQcToyDXj+n1BLAwQUAAIACADiYJtMV8DGae8AAADODQAAQQAcAGNvbXBv
c2l0aW5nL2xheWVyLWNyZWF0aW9uL3RyYW5zbGF0ZS1hbmltYXRpb24tb3ZlcmxhcC1zdGRlcnIu
dHh0VVQJAAPXdONawmbjWnV4CwABBPUBAAAEFAAAAO2U0UrDUAyG732KPICMWjcGRYR6qFMGFtpC
BZGS1sgOOzspOVmdb+/UR/BCpucukED4Ev4vHwXSJVykWbLMkhSgpX5ttaGg1d57kqf55WIxf4ar
QoTlOgOzMuyVDlqT3lrnDDuW1urmq8jA+gmdfYHhewqSQzKD+1d45z28oVdQhkAEuiHocdiq4EDn
MDrCQMeOHjd0pnxoisemq+/KtrvJzbqpclMA+ckK+x15RQcTisXe0ews/xFFrcJbOnGOFanh3cjB
KpUjCaplf4rf+AMUn7GoaNAQ7/9bFNFM0UwxGdFM0UzRTNFM0Uz/4/4fUEsDBBQAAgAIAOJgm0zB
fmucBQEAAGgSAABIABwAY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vdHJhbnNsYXRlLXNjYWxl
LXRyYW5zaXRpb24tb3ZlcmxhcC1zdGRlcnIudHh0VVQJAAPYdONaxGbjWnV4CwABBPUBAAAEFAAA
AO3U4UrDMBAH8O8+xT2AjLplDIoINdQpAwttoYJISevJwrJcud7qfHunPoIftF2+BRI4/hf+v6Rj
mK/gah5HqzhaAFTYbKyU2Et+8B75WS2WS/UC1ykz8U0Meq3JCx6lQLmzzmlyxJWV7fchBusH4+wr
tD+vIDpGM3h4gw86wLvxAkLQI4JsERrT7oRNi5fQOTQ9nm7kNKHW2WOZPpV1cZ9V9W2iN2We6BTQ
D5bJ79GLcTAYtqZxOLtIfpWiEKYdjjzHGkXTvqPeCmYdshFLfoy/MYEUX7XIsZU+7P+vUgSZgkyh
GUGmIFOQKcgUZDrH/atJyKQmIpOahEzq/Jrxr2Qa6/4/AVBLAwQKAAAAAADaWJtMAAAAAAAAAAAA
AAAAFQAcAGNvbXBvc2l0aW5nL292ZXJmbG93L1VUCQADvGbjWr5341p1eAsAAQT1AQAABBQAAABQ
SwMEFAACAAgA1GCbTF2oFKQXAQAAnBsAAEsAHABjb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0
aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLXN0ZGVyci50eHRVVAkAA8B041qq
ZuNadXgLAAEE9QEAAAQUAAAA7dRRSsNAEAbgd08xB5ASm1JNECEusUrBQBJIQSRs0pEu3e6GyTTW
21v1CD5o03lb2IXhn+X/ko5geg1X0ziYx+ENQIXN0nCJPed755BeZuE8CF/hNiXydBeDWijvGA9c
ID8Ya5W3nirDm+9DDMYN2po1tD+vIDgEE3h6gw+/h3ftGNhDjwi8QWh0u2XSLV5CZ1H3eLzh44Ra
Zc9luirr4jGr6vtELcs8USmgGwx5t0PH2sKgyejG4uQi+VWKgslv8cRzLJCV33W+N4xZh6TZeHeK
vzGCFF+1yLHlXvb/VylEJpFJmiEyiUwik8gkMp3j/qNRyBSNRKZoFDJF59eMfyVTJDKJTCKTNENk
EplEJpFJZBrt/j8BUEsDBBQAAgAIANVgm0xWsGYuNQEAAAQuAABEABwAY29tcG9zaXRpbmcvb3Zl
cmZsb3cvY2xpcC1jb250ZW50LXVuZGVyLW92ZXJmbG93LWNvbnRyb2xzLXN0ZGVyci50eHRVVAkA
A8F041qrZuNadXgLAAEE9QEAAAQUAAAA7dThSsMwFAXg/z7FfQAZzTYmFBFqmFMGDtpCBZGS1SsL
y5KS3s359k59BEFtPf8KKYRzwvmyNtL4gtQ4TWbpNCGqeL20UnIn+d57jo/TySyZPNHlPMYQr1LS
Cx288FEKlhvrnA4uxMrK5vMjJesPxtlnar7+ouSYjOjuhd7Cnl6NF5JAHTPJhmltmq1E0/A5tY5N
x6cTOd1Q69V9OX8o6+J2VdXXmV6WeabnxP5gY/A79mIcHUy0Zu14dJZ9K0UhMWy55zkWLDrs2tBZ
4VXL0YgNvo+vMYAUH7PIuZEO/f9WCsgEmbAMyASZIBNkgkzoHzJBJiwDMkEmyASZIBP6h0yQCcuA
TP3oXw1CJjUQmdQgZFL/bxl/SiYFmSATZMIyIBNkgkyQCTKhf8gEmbAMyPRjKd4BUEsDBBQAAgAI
ANZgm0y8UiiOJgEAAAQuAABVABwAY29tcG9zaXRpbmcvb3ZlcmZsb3cvY2xpcHBpbmctYW5jZXN0
b3Itd2l0aC1hY2NlbGVyYXRlZC1zY3JvbGxpbmctYW5jZXN0b3Itc3RkZXJyLnR4dFVUCQADw3Tj
Wqxm41p1eAsAAQT1AQAABBQAAADt1NFKwzAYBeB7n+J/ABm1GxOKCDXUKQMLbaGCSEnrLwvLkpL8
q/PtnfoIXsjGuSukEM4J58vHQOk1XaVZsswWKVHL/dpIw1GqvXMcXhbzZTJ/pZsiBB9uM1Ir5Z3w
QWqWe2Ot8taH1sjm5yMj4yZtzRsNv39Rckhm9PhOn35PH9oJiafITLJh6vWwlaAHvqTRso58PJHj
DZ0qn5riuenqh7Lt7nK1bqpcFcRuMsG7HTvRliYdjO4tzy7yP6WoJfgtn3iOFYvyu9FHI1yOHLQY
707xNc4gxfcsKh4kov//SgGZIBOWAZkgE2SCTJAJ/UMmyIRlQCbIBJkgE2RC/5AJMmEZkAkyQSbI
BJnQP2SCTJAJMkEmyASZsAzIBJkgE2SCTOfc/xdQSwMEFAACAAgA1mCbTMf+Xx0uAQAAaikAAFsA
HABjb21wb3NpdGluZy9vdmVyZmxvdy9jbGlwcGluZy1iZWhhdmlvdXItY2hhbmdlLWlzLW5vdC1w
cm9wYWdhdGVkLXRvLWRlc2NlbmRhbnRzMi1zdGRlcnIudHh0VVQJAAPEdONarmbjWnV4CwABBPUB
AAAEFAAAAO3UUUvDMBQF4Hd/xf0BMuoaJhQRaphTBg7awgSRktYrC8uSkt7N+e+d+uqboK6et0IK
4ZxwvryLND6ns3GWTDKVEi25mVupuJdi6z3HB5VOkvSRLqYxhniZkZ7p4IX3UrJcW+d0cCEuraw+
PjKyfmecfaL28y9K9smIbp/pNWzpxXghCdQzk6yYGtOuJZqWT6lzbHo+nMjhhlov7qrpfVWXN4tl
fZXreVXkekrsdzYGv2EvxtHORGsax6OT/FspSolhzUeeY8aiw6YLvRVedByN2OCP8TUGkOJ9FgW3
0qP/30oBmSATlgGZIBNkgkyQCf1DJsiEZUAmyASZIBNkQv9fpVCDkEkNRCY1CJnU/1vGn5JJQSbI
BJmwDMgEmSATZIJM6B8yQSYsAzL9WIo3UEsDBBQAAgAIANdgm0zTqTpNDwEAAAIXAABRABwAY29t
cG9zaXRpbmcvb3ZlcmZsb3cvY29tcG9zaXRlZC1zY3JvbGxpbmctY3JlYXRlcy1hLXN0YWNraW5n
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
G+n8/H8rhZfJy+Sb4WX6+RThIGQKByJTOAiZwv/XjD8lU+hl8jJ5mXwzvEzflOINUEsDBBQAAgAI
ANlgm0zU2X5GDAEAAGgSAAA+ABwAY29tcG9zaXRpbmcvb3ZlcmZsb3cvaW1hZ2UtbG9hZC1vdmVy
Zmxvdy1zY3JvbGxiYXJzLXN0ZGVyci50eHRVVAkAA8p041q0ZuNadXgLAAEE9QEAAAQUAAAA7ZTh
SsNADMe/+xR5ABl1mxOLCPWoVQYW2kIHIuVaIzt2u5Q0q/PtnfoEQ4ZbvW+BBI5fcv9f1DKMr+Bi
HAazcHoNUGI9N1JgJ9nGOeTn6WQWTF7gJmYmvg1BJYqc4FZylHtjrSJLXBpZfhchGNdra16h+ZmC
YBuM4PENPmgD79oJCEGHCLJEqHWzEtYNnkNrUXe468juhUqlT0W8KKr8IS2ru0jNiyxSMaDrDZNb
oxNtoddsdG1xdBb9iiIXphWeOEeComjdUmcE0xZZiyF3itcYAMVXLDJspPP7/ysKbyZvJp8Mb6aD
U1wGQzDT3hRHaqb9OJKh/KkBUByTmf7j/r2ZvJl8MryZDkTxCVBLAwQUAAIACADaYJtMmzixlg4B
AAACFwAAMAAcAGNvbXBvc2l0aW5nL292ZXJmbG93L25lc3RlZC1zY3JvbGxpbmctc3RkZXJyLnR4
dFVUCQADy3TjWrVm41p1eAsAAQT1AQAABBQAAADt1OFKwzAQB/DvPsU9gIxm0wlFhBrqlIGFtlBB
pKT1ZGFZUq63Ot/eqY8whq7et0ACx//C/5d0BNMrUNM4mseXEUCFzdJyiT3nW++Rni9m82j2Atcp
UaCbGPRCB8+44wL5zjqngwtUWV59H2KwfjDOvkL78wqiXTSBhzf4CFt4N56BA/SIwCuExrRrJtPi
OXQOTY/7G95PqHX2WKZPZV3cZ1V9m+hlmSc6BfSDpeA36Nk4GAxZ0zicnCUHpSiYwhpPPMcCWYdN
F3rLmHVIhm3wp/gbI0jxVYscW+5l/7+VQmQSmaQZItPxU6hRyKRGIpMahUzq/zXjT8mkRCaRSWSS
ZohMIpPIJDKJTKPd/ydQSwMEFAACAAgA2mCbTDnCbMsOAQAAAhcAAEQAHABjb21wb3NpdGluZy9v
dmVyZmxvdy9vdmVyZmxvdy1hdXRvLXdpdGgtdG91Y2gtbm8tb3ZlcmZsb3ctc3RkZXJyLnR4dFVU
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
m0wz7CLAAgEAAAIXAABbABwAY29tcG9zaXRpbmcvb3ZlcmZsb3cvcGFpbnQtbmVnLXotb3JkZXIt
ZGVzY2VuZGFudHMtaW50by1zY3JvbGxpbmctY29udGVudHMtbGF5ZXItc3RkZXJyLnR4dFVUCQAD
0nTjWrtm41p1eAsAAQT1AQAABBQAAADt1FFKw0AQBuB3TzEHkBJbbSGIEJdYpWAgCUQoEjZxpEu3
O2F2GuvtrfYIPkhl3hZ2Yfhn+b9sYJgu4GqaJvP0ZgHQYLdyUmOUch8C8vp6Nk9mr3CbMxPfpWCW
hoLgQSqUB+e9IU/cONn8HFJwYbTevUF/egXJIZnA0zt80h4+bBAQgogIskHobL8Vtj1ewuDRRjze
yHFCa4rnOn+p2+qxaNr7zKzqMjM5YBgdU9hhEOthtOxs53Fykf0qRSVMWzzzHEsUQ7uBohMsBmQr
jsI5/sY/SPFdixJ7ibr/v0qhMqlM2gyVSWVSmVQmlUn3rzKpTNoMlUllUplUJpVJ939K8QVQSwME
FAACAAgA3WCbTLmDInPwAAAAzg0AAC8AHABjb21wb3NpdGluZy9vdmVyZmxvdy9wYXJlbnQtb3Zl
cmZsb3ctc3RkZXJyLnR4dFVUCQAD0nTjWrxm41p1eAsAAQT1AQAABBQAAADtlNFKw1AMhu99ijyA
jLrplCJCPdQpAwttoQORclojO+wsKTlZnW/v1EfwQqbnLpBA+BL+LxsEppdwNk2TeXpxBdBgt3Ra
Y9ByR4TydD6bJ7NnuM5FWG5SMAvDpLjXCvXOeW/YszRO119FCo5G690L9N9TkOyTCTy8wjvv4M2S
gjIERNA1Qmf7jYrt8RQGjzbgoaOHDa0pHut8VbfVfdG0t5lZ1mVmckAanTBtkdR6GK0423mcnGQ/
oqhUeINHzrFANbwdODjFYkCx6piO8Rt/gOIzFiX2GuL9f4simimaKSYjmimaKZopmima6X/c/wNQ
SwMECgAAAAAA1GCbTAAAAAAAAAAAAAAAABQAHABjb21wb3NpdGluZy9wbHVnaW5zL1VUCQADwHTj
Wr5341p1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA1lubTGehxzjJAAAATQEAADQAHABjb21wb3Np
dGluZy9wbHVnaW5zLzF4MS1jb21wb3NpdGVkLXBsdWdpbi1zdGRlcnIudHh0VVQJAANUbONaqmbj
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
bmcvcmVmbGVjdGlvbnMvbmVzdGVkLXJlZmxlY3Rpb24tdHJhbnNpdGlvbi1zdGRlcnIudHh0VVQJ
AAPGdONasmbjWnV4CwABBPUBAAAEFAAAAO3U4UrDMBAH8O8+xT2AjG5uEYsINdQpAwttoQORktaT
hWW5cr3N+fZOfQQVXc23QALhf8f/l3QMk3MYT+JIxdMZQIXNwkqJveRb75Efpmezi/EjXKbMxFcx
6LkmL7iXAuXGOqfJEVdWVh+HGKzfGWefoP18BdE+GsHdM7zSFl6MFxCCHhFkhdCYdi1sWjyFzqHp
8XAjhx9qnd2X6bKsi9usqq8TvSjzRKeAfmeZ/Aa9GAc7w9Y0DkcnyZdSFMK0xiPPMUfRtOmot4JZ
h2zEkj/GbQwgxXstcmylD/P/rRRBpiBTaEaQ6edTqEHIpAYikxqETOr/NeNPyaSCTEGmIFNoRpDp
m1K8AVBLAwQKAAAAAADUWJtMAAAAAAAAAAAAAAAAEAAcAGNvbXBvc2l0aW5nL3J0bC9VVAkAA7Bm
41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIANVgm0xZGOFuLgEAAJ4yAAA2ABwAY29tcG9z
aXRpbmcvcnRsL3J0bC1maXhlZC1vdmVyZmxvdy1zY3JvbGxlZC1zdGRlcnIudHh0VVQJAAPBdONa
rGbjWnV4CwABBPUBAAAEFAAAAO3U4UrDMBQF4P8+xX0AGbXOCUWEGuqUgYW2UEGkpPXKwrKkJHd1
vr1TH0FQJudfIYVwTjhfPgZKL+kszZJFNk+IWu5XRhqOUu2c4/A0P79YpM90VYTgw3VGaqm8E95L
zXJrrFXe+tAaWX99ZGTcpK15oeH7L0r2yYzuX+nd7+hNOyHxFJlJ1ky9HjYS9MCnNFrWkQ8ncrih
U+VDUzw2XX1Xtt1NrlZNlauC2E0meLdlJ9rSpIPRveXZSf6jFLUEv+Ejz7FkUX47+miEy5GDFuPd
Mb7GP0jxOYuKB4no/69SQCbIhGVAJsgEmSATZEL/kAkyYRmQCTJBJsgEmdA/ZIJMWAZkgkyQCTJB
JvQPmSATZIJMkAkyQSYsAzJBJsgEmSAT+odMkAnLgEy/meIDUEsDBBQAAgAIANVgm0yUoKrjRAEA
ADg3AAAtABwAY29tcG9zaXRpbmcvcnRsL3J0bC1maXhlZC1vdmVyZmxvdy1zdGRlcnIudHh0VVQJ
AAPCdONarmbjWnV4CwABBPUBAAAEFAAAAO3U0UrDMBgF4Huf4n8AGV2cE4oINcwpAwtroYJIyeov
C8uSkv6b8+2d+gheuNZzV0ghnBPOl7WR1BWNVZpM08mYqOLVwkrJnSx33nN8nlxcTtULXc9iDPEm
JT3XwQsfpGC5s87p4EKsrKy/P1Kyfm+cfaXm5y9KDsmIHt7oI+zo3XghCdQxk6yZVqbZSDQNn1Pr
2HR8PJHjDbXOH8vZU1kX93lV32Z6US4zPSP2exuD37IX42hvojUrx6Oz7FcpColhwz3PMWfRYduG
zgrnLUcjNvg+vsYAUnzNYsmNdOj/r1JAJsiEZUAmyASZIBNkQv+QCTJhGZAJMkEmyASZ0D9kgkxY
BmTqR/9qEDKpgcikBiGT+n/LOCmZFGSCTJAJy4BMkAkyQSbIhP4hE2TCMiATZIJMkAkyoX/IBJmw
DMh0Qv1/AlBLAwQUAAIACADWYJtMPmFQ+xgBAACcGwAAMQAcAGNvbXBvc2l0aW5nL3J0bC9ydGwt
b3ZlcmZsb3ctc2Nyb2xsaW5nLXN0ZGVyci50eHRVVAkAA8N041qvZuNadXgLAAEE9QEAAAQUAAAA
7dRvS8MwEAbw936K+wAyajMnFBFqqFMGFtZChSElrScLy5JyvdX57Z36EcQ/q/cukMDxXHh+aUcQ
X8BZnESzZBoDVNgsLJfY83LnPdJqqs5n8SNcZkSBrhLQcx08454L5BvrnA4uUGV5/XFIwPrBOPsE
7ecriPbRBO6e4TXs4MV4Bg7QIwKvERrTbphMi6fQOTQ9Hm74MKHW+X2ZPZR1cZtX9XWqF+Uy1Rmg
HywFv0XPxsFgyJrG4eQk/VKKgils8MhzzJF12Haht4x5h2TYBn+MvzGCFO+1WGLLvez/t1KITCKT
NENk+v4UahQyqZHIpEYhk/p/zfhTMimRSWQSmaQZIpPIJDKJTCKT7F9kEpmkGSLTj6V4A1BLAwQU
AAIACADWYJtMkaW8Si0BAABqKQAAJwAcAGNvbXBvc2l0aW5nL3J0bC9ydGwtcmVsYXRpdmUtc3Rk
ZXJyLnR4dFVUCQADxHTjWrBm41p1eAsAAQT1AQAABBQAAADt1NFKwzAYBeB7n+J/ABlzixOKCDXM
KQMLbaHCkJLVXxaWJSX9N+fbO/URvHDrzl0hhXBOOF/aRhrd0NUoGU4SNSaqeDm3UnIn+dZ7jgs1
vp6MXul2GmOIdwnpmQ5eeC8Fy4N1TgcXYmVl9fORkPU74+wbNb9/0XA/HNDTO32GLX0YLySBOmaS
FdPSNGuJpuFLah2bjg8ncrih1tlzOX0p6+Ixq+r7VM/LPNVTYr+zMfgNezGOdiZas3Q8uEj/lKKQ
GNZ84jlmLDps2tBZ4azlaMQGf4qv0YMU37PIuZEO/f9XCsgEmbAMyASZIBNkgkzn2L/qhUyqJzKp
Xsikzm8ZRyWTgkyQCTJhGZAJMkEmyASZ0D9kgkxYBmSCTJAJMkEm9A+ZIBOWAZmOqP8vUEsDBAoA
AAAAANNYm0wAAAAAAAAAAAAAAAAYABwAY29tcG9zaXRpbmcvdHJhbnNpdGlvbnMvVVQJAAOuZuNa
vnfjWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADVYJtMbwJjxzsBAACeMgAAPAAcAGNvbXBvc2l0
aW5nL3RyYW5zaXRpb25zL3NjYWxlLXRyYW5zaXRpb24tbm8tc3RhcnQtc3RkZXJyLnR4dFVUCQAD
wnTjWqxm41p1eAsAAQT1AQAABBQAAADt1NFKwzAYBeB7n+J/ABldHBWKCDXMKQMLW6GCjJHWXxaW
JSX9V+fbO/URvNB1566QQjgnnC9vI6lrGqssSbPJmKjiem6l5E4We+85vkyu0iRd0c00xhBvM9Iz
HbzwQZYs99Y5HVyIlZXN90dG1vfG2Vdqfv6i5JCM6PGNPsKe3o0XkkAdM8mGqTbNVqJp+JJax6bj
44kcb1jr4qmcPpfr5UNRre9yPS8XuZ4S+97G4HfsxTjqTbSmdjy6yH+VYikxbPnEc8xYdNi1obPC
RcvRiA3+FF9jACm+ZrHgRjr0/1cpIBNkwjIgE2SCTJAJMqF/yASZsAzIBJkgE2SCTOgfMkEmLAMy
nUb/ahAyqYHIpAYhkzq/ZfwrmRRkgkyQCcuATJAJMkEmyIT+IRNkwjIgE2SCTJAJMp1x/59QSwME
FAACAAgA1mCbTFuClMQeAQAANiAAADsAHABjb21wb3NpdGluZy90cmFuc2l0aW9ucy90cmFuc2Zv
cm0tb24tbGFyZ2UtbGF5ZXItc3RkZXJyLnR4dFVUCQADw3TjWq5m41p1eAsAAQT1AQAABBQAAADt
1OFKwzAQB/DvPsU9gIy6jApFhBrqlIGFtlBBRknrycKyXElvdb69Ux/BD271vgUSOP4X/r+0DzC/
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
etdOSDwNzCRbplZ3Owm643PqLeuBTydyuqFR+XOVvVRN+ZjXzX2qVlWRqozYjSZ4t2cn2tKog9Gt
5dlZ+qsUpQS/44nnWLIov+/9YITznoMW490UX+MfpPiaRcGdDOj/r1JAJsiEZUAmyASZIBNkQv+Q
CTJhGZAJMkEmyASZ0D9kgkxYBmSCTJAJMkEm9A+ZIBNkgkzT7f8TUEsDBAoAAAAAANlbm0wAAAAA
AAAAAAAAAAAHABwAY3J5cHRvL1VUCQADWWzjWr5341p1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA
2VubTCu18cJqAQAABkUAABsAHABjcnlwdG8vY3J5cHRvLWdjLXN0ZGVyci50eHRVVAkAA1ls41pZ
bONadXgLAAEE9QEAAAQUAAAA7dRfSwJBFAXw9z7F/QAh/incWSLYBrMQEnTBIELG7YaD48wyezX7
9lm99laQjudtYRaGc4bzK+pI3T51OnmvnV/0iWa8GFkpuZHJxnuOT73upVLPdDWIMcTrnPRQBy+8
kynLrXVOBxfizMry6yMn67fG2Reqvv+i9q7dovtXeg8bejNeSAI1zCRLpoWpVhJNxedUOzYN709k
f8Ncjx/KwWM5n96NZ/ObQo/KSaEHxH5rY/Br9mIcbU20ZuG4dVb8KsVUYljxkecYsuiwrkNjhcc1
RyM2+GN8jQRSfM5iwpU06P+/UkAmyIRlQCbIBJkgE2RC/5AJMmEZkAkyQSbIBJnQ/08psiRkyhKR
KUtCpuz0lnFQMmWQCTJBJiwDMkEmyASZIBP6h0yQCcuATJAJMkEmyIT+IRNkwjIgE2SCTJAJMqF/
yASZsAzIdMT9qyRkUonIpJKQSZ3eMg5KJgWZIBNkwjIg0x+l+ABQSwMECgAAAAAA2libTAAAAAAA
AAAAAAAAAA4AHABjcnlwdG8vc3VidGxlL1VUCQADu2bjWr5341p1eAsAAQT1AQAABBQAAABQSwME
CgACAAAA4GCbTCXg0wgsAAAALAAAAD4AHABjcnlwdG8vc3VidGxlL3JzYS1nZW5lcmF0ZS1rZXkt
bWFsZm9ybWVkLXBhcmFtZXRlcnMtc3RkZXJyLnR4dFVUCQAD03TjWrtm41p1eAsAAQT1AQAABBQA
AABDb3VsZCBub3QgZ2VuZXJhdGUgYSBrZXkgcGFpciwgc3RhdHVzIC00MzA0ClBLAwQUAAIACADg
YJtMMDu4sUsAAABoAAAAPAAcAGNyeXB0by9zdWJ0bGUvcnNhLWltcG9ydC1rZXktbWFsZm9ybWVk
LXBhcmFtZXRlcnMtc3RkZXJyLnR4dFVUCQAD03TjWrtm41p1eAsAAQT1AQAABBQAAABty7ENgDAM
RNGeKW4fGlawZEuxgDhyLkRsDw0d9X9/S7+Eht3ujuksMQhRdXpUOaBCgaShBtFHa5E0XdaP44w3
skgFZ6Cln9Z/hgdQSwMECgAAAAAA2FibTAAAAAAAAAAAAAAAAA8AHABjcnlwdG8vd29ya2Vycy9V
VAkAA7dm41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAANhYm0wAAAAAAAAAAAAAAAAWABwA
Y3J5cHRvL3dvcmtlcnMvc3VidGxlL1VUCQADt2bjWr5341p1eAsAAQT1AQAABBQAAABQSwMECgAC
AAAA3GCbTCXg0wgsAAAALAAAADEAHABjcnlwdG8vd29ya2Vycy9zdWJ0bGUvcnNhLWdlbmVyYXRl
LWtleS1zdGRlcnIudHh0VVQJAAPPdONat2bjWnV4CwABBPUBAAAEFAAAAENvdWxkIG5vdCBnZW5l
cmF0ZSBhIGtleSBwYWlyLCBzdGF0dXMgLTQzMDQKUEsDBAoAAAAAANlYm0wAAAAAAAAAAAAAAAAF
ABwAY3NzMy9VVAkAA7pm41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAANhYm0wAAAAAAAAA
AAAAAAAKABwAY3NzMy9jYWxjL1VUCQADuGbjWr5341p1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA
22CbTH79bPAYAQAAnBsAACAAHABjc3MzL2NhbGMvdHJhbnNpdGlvbnMtc3RkZXJyLnR4dFVUCQAD
zXTjWrdm41p1eAsAAQT1AQAABBQAAADt1G9LwzAQBvD3for7ADK66CYWEWqoUwYW2kIFkZLWk4Vl
uZLe6vz2Tv0I4p/VexdI4HguPL+kC6DOYKriaB7PpgAVNkvLJfacb73H8HB6MjufP8JFGgKFyxj0
QpNn3HGBfG2d0+QoVJZXH4cYrB+Ms0/Qfr6CaBdN4PYZXmkLL8YzMEGPCLxCaEy75mBaPIbOoelx
f8P7CbXO7sr0vqyLm6yqrxK9LPNEp4B+sIH8Bj0bB4MJ1jQOJ0fJl1IUHGiNB55jgaxp01FvGbMO
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
8wd61U5IPLXMJFumStc7Cbrmc2os65ZPJ3K6oVTZQzF/LMrVXbYub1K1LPJUzYldZ4J3e3aiLXU6
GF1ZHp2lP0qxkuB33PMcCxbl941vjXDWcNBivOvjawwgxccscq6lRf+/lQIyQSYsAzJBJsgEmSAT
+odMkAnLgEyQCTJBJsiE/iETZMIyIBNkgkyQCTKh/++liAchUzwQmeJByBT/v2X8KZn62v87UEsD
BBQAAgAIAN1gm0ypQDDnAgEAAAIXAAA1ABwAY3NzMy9maWx0ZXJzL2ZpbHRlci1hbmltYXRpb24t
ZnJvbS1ub25lLWh3LXN0ZGVyci50eHRVVAkAA9F041q8ZuNadXgLAAEE9QEAAAQUAAAA7dTdSsNA
EAXge59iHkBKrP2BIEJcYpWCgSQQQSRs4kiXbnfC7DTWt7faR/BCKnO3sAvDmeV82cAwXcLVNE0W
6XwB0GC3dlJjlHIfAvLL7Hq+nL3CTc5MfJuCWRkKggepUO6d94Y8ceNk83NIwYXRevcG/ekVJIdk
Ao/v8El7+LBBQAgiIsgGobP9Vtj2eAmDRxvxeCPHCa0pnur8uW6rh6Jp7zKzrsvM5IBhdExhh0Gs
h9Gys53HyUX2qxSVMG3xzHOsUAztBopOsBiQrTgK5/gb/yDFdy1K7CXq/v8qhcqkMmkzVCaVSWVS
mVQm3b/KpDJpM1QmlUllUplUJt3/KcUXUEsDBBQAAgAIAN1gm0zmVsV0+gAAAGgSAAA4ABwAY3Nz
My9maWx0ZXJzL2ZpbHRlci1jaGFuZ2UtcmVwYWludC1jb21wb3NpdGVkLXN0ZGVyci50eHRVVAkA
A9J041q+ZuNadXgLAAEE9QEAAAQUAAAA7dRRSsNAEAbgd08xB5ASa2sgiBCXtErBQBKIUCRs4pQu
3e6EyTTW21v1CD6Uyrwt7MLwz/J/ac8wjeFmmkR3yTwGqLFdOalwkOIQAvJ6djuPZ29wnzETPyRg
loaC4FFKlIXz3pAnrp1sfw4JuDBa796h+30F0TGawPMGPukAHzYICMGACLJFaG23E7YdXkPv0Q54
upHThMbkL1X2WjXlU143j6lZVUVqMsAwOqawxyDWw2jZ2dbj5Cr9U4pSmHZ44TmWKIb2PQ1OMO+R
rTgKl/gb/yDFdy0K7GTQ/Z8rhcqkMmkzVCaVSWVSmVQm3b/KpDJpM1Sm86T4AlBLAwQKAAAAAADa
WJtMAAAAAAAAAAAAAAAADQAcAGNzczMvbWFza2luZy9VVAkAA7tm41q+d+NadXgLAAEE9QEAAAQU
AAAAUEsDBBQAAgAIANxgm0wpx15G/QAAAM4NAAArABwAY3NzMy9tYXNraW5nL2NsaXAtcGF0aC1h
bmltYXRpb24tc3RkZXJyLnR4dFVUCQADz3TjWrpm41p1eAsAAQT1AQAABBQAAADtlO1Kw1AMhv97
FbkAGd3HUSwidIc6ZWChLXQgUk5rZIednZQ0q/PunXoJItraf4EEwpPwPlHDMLuE6SwMLkK1ACiw
WlvJsZX04D3y42KurqZPcB0zE9+EoFeavOBRMpRb65wmR1xY2X4WIVjfGWefof6aguAYTOD+Bd7o
AK/GCwhBiwiyRahMvRM2NZ5D49C0eOrIaUOpk4c83uRldpcU5TLS6zyNdAzoO8vk9+jFOOgMW1M5
nJxF36LIhGmHPedYoWjaN9RawaRBNmLJ9/EbA6D4iEWKtbTj/X+LYjTTaKYxGaOZfp5CDcJMaiBm
UoMwk/p/yfhTZurr/d8BUEsDBBQAAgAIANxgm0wQ1/65DwEAAAIXAAAsABwAY3NzMy9tYXNraW5n
L2NsaXAtcGF0aC1ib3JkZXItYm94LXN0ZGVyci50eHRVVAkAA9B041q7ZuNadXgLAAEE9QEAAAQU
AAAA7dThSsMwEAfw7z7FPYCMbtqIRYQa6pSBg7ZQQaSk9WRhWVKutzrf3qmPoKDr7lsggeN/4f9L
O4LZBUxnSaSSOAaosFlYLrHnfOs90tP5WXw5fYarjCjQdQJ6roNn3HGBfGud08EFqiyvvg4JWD8Y
Z1+g/X4F0S6awP0rvIctvBnPwAF6ROAVQmPaNZNp8RQ6h6bH/Q3vJ9R6+VBmj2Vd3C2r+ibVizJP
dQboB0vBb9CzcTAYsqZxODlJf5SiYAprPPAcc2QdNl3oLeOyQzJsgz/E3xhBis9a5NhyL/v/qxQi
k8gkzRCZRCaRSWQSmY5x/2oUMqmRyKRGIZM6vmb8K5mUyCQyiUzSDJHpl1J8AFBLAwQKAAAAAADd
WJtMAAAAAAAAAAAAAAAADQAcAGRpc3BsYXlsaXN0cy9VVAkAA8Fm41q+d+NadXgLAAEE9QEAAAQU
AAAAUEsDBBQAAgAIAOJgm0wBacvZVgAAAJQAAAAyABwAZGlzcGxheWxpc3RzL2V4dGVudC1pbmNs
dWRlcy10cmFuc2Zvcm1zLXN0ZGVyci50eHRVVAkAA9d041rBZuNadXgLAAEE9QEAAAQUAAAAcy9K
LMjITC52zs8rSa0osbJKTy1xDvHV0FTILFbIyy9RqEwtUUjOzy1ILMlMyklVKM8syVBwySwuyEms
9MksBmoISk3OL0pJLdLjckc3qxjNLCLNAQBQSwMECgACAAAA4mCbTLFQEsVMAAAATAAAACkAHABk
aXNwbGF5bGlzdHMvbGF5ZXItZGlzcGF5LWxpc3Qtc3RkZXJyLnR4dFVUCQAD13TjWsFm41p1eAsA
AQT1AQAABBQAAABHcmFwaGljc0NvbnRleHQ6OmdldENUTSgpIGlzIG5vdCB5ZXQgY29tcGF0aWJs
ZSB3aXRoIERpc3BsYXlMaXN0OjpSZWNvcmRlci4KUEsDBAoAAAAAAOVYm0wAAAAAAAAAAAAAAAAI
ABwAZWRpdGluZy9VVAkAA81m41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAOJYm0wAAAAA
AAAAAAAAAAAUABwAZWRpdGluZy9leGVjQ29tbWFuZC9VVAkAA8hm41q+d+NadXgLAAEE9QEAAAQU
AAAAUEsDBBQAAgAIAOVgm0yF869WQwAAAIYAAABBABwAZWRpdGluZy9leGVjQ29tbWFuZC9jbGlw
Ym9hcmQtYWNjZXNzLXdpdGgtdXNlci1nZXN0dXJlLXN0ZGVyci50eHRVVAkAA91041rIZuNadXgL
AAEE9QEAAAQUAAAAy80vLU71zS9LDclXSEvMzElNUSgBsjLzUhQSFUoSi9JTSxTKMlPLFRJLFIwN
9QzAQEfX0NDcFMrhyiXBCHMTrEYAAFBLAwQKAAAAAADlWJtMAAAAAAAAAAAAAAAAEwAcAGVkaXRp
bmcvcGFzdGVib2FyZC9VVAkAA85m41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAOhgm0w2
pKea+gAAAGgSAAAzABwAZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktcGFzdGUtYXR0YWNobWVudC1z
dGRlcnIudHh0VVQJAAPjdONazWbjWnV4CwABBPUBAAAEFAAAAO3UUUrDQBAG4HdPMQeQktZoIYgQ
l7RKwUASiFAkbOKULt3uhMk01ttb9Qg+lMq8LezC8M/yf2nPMJvDdJZE82QaA9TYrpxUOEhxCAF5
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
AOhgm0xohuS9DgEAAAIXAAAyABwAZmFzdC9hdHRhY2htZW50L2F0dGFjaG1lbnQtZGlzYWJsZWQt
ZG9tLXN0ZGVyci50eHRVVAkAA+R041rOZuNadXgLAAEE9QEAAAQUAAAA7dRRSsNAEAbgd08xB5CS
1iaFIEJcYpWCgSQQQSRs4kiXbnfDZBrr7a16BB9s4rwt7MLwz/J/SUewWMF8EQereB4CVNhsDJfY
c35wDul5eRWGyxe4Tok83cSg1so7xiMXyHfGWuWtp8rw9vsQg3GDtuYV2p9XEByDGTy8wYc/wLt2
DOyhRwTeIjS63THpFi+hs6h7PN3waUKtsscyfSrr4j6r6ttEbco8USmgGwx5t0fH2sKgyejG4uwi
+VWKgsnvcOQ51sjK7zvfG8asQ9JsvBvjb0wgxVctcmy5l/3/VQqRSWSSZohMIpPIJDKJTLJ/kUlk
kmaITOeQIpqETNFEZIomIVP0/5pxVjKNdf+fUEsDBBQAAgAIAOlgm0yD0IJf8AAAAM4NAAApABwA
ZmFzdC9hdHRhY2htZW50L2F0dGFjaG1lbnQtZG9tLXN0ZGVyci50eHRVVAkAA+V041rPZuNadXgL
AAEE9QEAAAQUAAAA7ZTRSsNQDIbvfYo8gIxubg6KCPVQpwwstIUKIuW0RhZ2dlJysjrf3qmP4IVM
z10ggfAl/F82CMyWMJ2lyTKdXgI02K1Jawxa7r1HeZpfLBbzZ7jKRViuUzArw17xoBXqLTln2LE0
pJuvIgXyo3X0Av33FCSHZAL3r/DOe3izXkEZAiLoBqGz/VbF9ngOg0Mb8NjR44bWFA91/li31V3R
tDeZWddlZnJAP5Kw36FX62C0QrZzODnLfkRRqfAWT5xjhWp4N3AgxWJAsUrsT/Ebf4DiMxYl9hri
/X+LIpopmikmI5opmimaKZopmul/3P8DUEsDBBQAAgAIAOpgm0wjoQVd8AAAAM4NAABMABwAZmFz
dC9hdHRhY2htZW50L2F0dGFjaG1lbnQtc2VsZWN0LW9uLWNsaWNrLWluc2lkZS11c2VyLXNlbGVj
dC1hbGwtc3RkZXJyLnR4dFVUCQAD53TjWtFm41p1eAsAAQT1AQAABBQAAADtlNFKw1AMhu99ijyA
jG5uTIoI9VCnDCy0hQoi5bRGdthZUnKyOt/eqY/ghUzPXSCB8CX8XzYIzJYwnaXJMp1eAjTYrZ3W
GLTcE6E8zS8Wi/kzXOUiLNcpmJVhUjxohXrrvDfsWRqnm68iBUej9e4F+u8pSA7JBO5f4Z338GZJ
QRkCIugGobP9VsX2eA6DRxvw2NHjhtYUD3X+WLfVXdG0N5lZ12VmckAanTDtkNR6GK0423mcnGU/
oqhUeIsnzrFCNbwbODjFYkCx6phO8Rt/gOIzFiX2GuL9f4simimaKSYjmimaKZopmima6X/c/wNQ
SwMECgAAAAAA6VibTAAAAAAAAAAAAAAAAAsAHABmYXN0L2Jsb2NrL1VUCQAD1mbjWr5341p1eAsA
AQT1AQAABBQAAABQSwMECgAAAAAA7FibTAAAAAAAAAAAAAAAABcAHABmYXN0L2Jsb2NrL3Bvc2l0
aW9uaW5nL1VUCQAD22bjWr5341p1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA7mCbTKj2/wf5AAAA
aBIAADcAHABmYXN0L2Jsb2NrL3Bvc2l0aW9uaW5nL3J0bC1maXhlZC1wb3NpdGlvbmluZy1zdGRl
cnIudHh0VVQJAAPwdONa2mbjWnV4CwABBPUBAAAEFAAAAO3UUUrDQBAG4HdPMQeQEmtLIYgQl1il
YCAJRBAJmzjSpdudMDuN9fZGPYIPpTJvA7uw/LP8XzYwzFdwNU+TVToN0GC3cVJjlPIQAvLL4nq5
XLzCTc5MfJuCWRsKgkepUO6d94Y8ceNk+zOk4MJovXuD/vcWJMdkBo/v8EkH+LBBQAgiIsgWobP9
Ttj2eAmDRxtxOpHphdYUT3X+XLfVQ9G0d5nZ1GVmcsAwOqawxyDWw2jZ2c7j7CL7U4pKmHZ45jnW
KIb2A0UnWAzIVhyFc/yNf5DiuxYl9hJ1/6dKoTKpTNoMlUllUplUJpVJ968yqUzaDJXpNCm+AFBL
AwQUAAIACADuYJtMRozcxfoAAABoEgAARQAcAGZhc3QvYmxvY2svcG9zaXRpb25pbmcvcnRsLXN0
YXRpYy1wb3NpdGlvbmluZy1pbmxpbmUtYmxvY2stc3RkZXJyLnR4dFVUCQAD8HTjWttm41p1eAsA
AQT1AQAABBQAAADt1FFKw0AQBuB3TzEHkBJjSyWIEJe0SsFAEohQJGzilC7d7oTJNNbbW/UIPpTK
vC3swvDP8n9pzxDP4SZOonkS3wHU2K6cVDhIcQgBeT29nc2mb3CfMRM/JGCWhoLgUUqUhfPekCeu
nWx/Dgm4MFrv3qH7fQXRMZrA8wY+6QAfNggIwYAIskVobbcTth1eQ+/RDni6kdOExuQvVfZaNeVT
XjePqVlVRWoywDA6prDHINbDaNnZ1uPkKv1TilKYdnjhOZYohvY9DU4w75GtOAqX+Bv/IMV3LQrs
ZND9nyuFyqQyaTNUJpVJZVKZVCbdv8qkMmkzVKbzpPgCUEsDBAoAAAAAAOlYm0wAAAAAAAAAAAAA
AAAjABwAZmFzdC9ibG9jay9wb3NpdGlvbmluZy92ZXJ0aWNhbC1ybC9VVAkAA9Zm41q+d+NadXgL
AAEE9QEAAAQUAAAAUEsDBBQAAgAIAOxgm0weaA0+/AAAAM4NAAA/ABwAZmFzdC9ibG9jay9wb3Np
dGlvbmluZy92ZXJ0aWNhbC1ybC9maXhlZC1wb3NpdGlvbmluZy1zdGRlcnIudHh0VVQJAAPrdONa
1mbjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZtacUiwj1qFMGFtpChSHlWiM7druUNKvz
7Z36CCLa2m+BBMIv4f9LOoYwgrMwDqI4DAEqbFZWSuwl33uPvD5XF9HlE1ylzMTXMeilJi94kALl
1jqnyRFXVjafRQzWD8bZZ2i/piA4BAu4f4E32sOr8QJC0COCbBAa026FTYun0Dk0PR47ctxQ6+yh
TB/LurjLqvom0asyT3QK6AfL5HfoxTgYDFvTOFycJN+iKIRpiyPnWKJo2nXUW8GsQzZiyY/xGxOg
+IhFjq308/1/i2I202ymORmzmX6eQk3CTGoiZlKTMJP6f8n4U2Ya6/3fAVBLAwQKAAAAAADsYJtM
AAAAAAAAAAAAAAAAEAAcAGZhc3QvYm94LXNoYWRvdy9VVAkAA+x041q+d+NadXgLAAEE9QEAAAQU
AAAAUEsDBBQAAgAIAOxgm0wy7KoY/AAAAM4NAAAoABwAZmFzdC9ib3gtc2hhZG93L2Jhc2ljLXNo
YWRvd3Mtc3RkZXJyLnR4dFVUCQAD7HTjWux041p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkA
GbU7KRYR6lGnDCy0hQoi5VojO3a7lDSr8+2d+ggi2tpvgQTCL+H/SzqGMIKzMA6iOFwCVNisrZTY
S773HvlRLc+jiye4TJmJr2LQK01e8CAFyo11TpMjrqxsPosYrB+Ms8/Qfk1BcAgWcPcCb7SHV+MF
hKBHBNkgNKbdCpsWT6FzaHo8duS4odbZfZk+lHVxm1X1daLXZZ7oFNAPlsnv0ItxMBi2pnG4OEm+
RVEI0xZHzrFC0bTrqLeCWYdsxJIf4zcmQPERixxb6ef7/xbFbKbZTHMyZjP9PIWahJnURMykJmEm
9f+S8afMNNb7vwNQSwMECgAAAAAA6libTAAAAAAAAAAAAAAAABAAHABmYXN0L2JveC1zaXppbmcv
VVQJAAPXZuNavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADuW5tMEn0XBO8AAADODQAAJQAc
AGZhc3QvYm94LXNpemluZy9ib3gtc2l6aW5nLXN0ZGVyci50eHRVVAkAA4Bs41rXZuNadXgLAAEE
9QEAAAQUAAAA7ZTRSsNQDIbvfYo8gIy1Ax1FhHqoUwYW2kIFkZLWyA47Oyk5WZ1v79RH8EKm5y6Q
QPgS/i8fBdJLSJJskWTpEqClfm21oaDV3nuSp0V6kS6f4aoQYbnOwKwMe6WD1qS31jnDjqW1uvkq
MrB+QmdfYPiegvlhPoP7V3jnPbyhV1CGQAS6Iehx2KrgQOcwOsJAx44eN3SmfGiKx6ar78q2u8nN
uqlyUwD5yQr7HXlFBxOKxd7R7Cz/EUWtwls6cY4VqeHdyMEqlSMJqmV/it/4AxSfsaho0BDv/1sU
0UzRTDEZ0UzRTNFM0UzRTP/j/h9QSwMECgAAAAAA9VibTAAAAAAAAAAAAAAAAAwAHABmYXN0L2Nh
bnZhcy9VVAkAA+1m41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAOxgm0xz+fz2PQEAAEwT
AAAmABwAZmFzdC9jYW52YXMvMmQuY3VycmVudFBvaW50LXN0ZGVyci50eHRVVAkAA+x041rXZuNa
dXgLAAEE9QEAAAQUAAAA7ZTRasIwFIbv9xTnAUapNUNWxqDLnBvCFC04kCGxO8NgzAnpsXNvv1av
di3i7HKVkBxO8iX8X+Y8JD3oJGncS5MuwAyXQ805ljzZWot+Lro3t513uOt7T/4+BTmQZBl3PEV+
0sZIMuRnmlf7SQraVsroDygOVRDv4ghePuGbtvClLAMTlIjAK4SlKtbsVYHX4AyqEusdrk9YyNFr
3n/LF9Pn0WzxkMlhPslkH9BW2pPdoGVloFJeq6XB6Co7imLKntZ44RwDZEkbR6VmHDn0ijXZS/yN
FlA0sZhgwWV4/3NRBDMFM4VkBDOdnkK0wkyiJWYSrTCT+H/J+FNmEsFMwUzBTCEZwUynoihoEylX
94wOPM2wv7bl6BErNOSaJnMh4m7yC26seNXkY+t9XTAmbTkFS1AcFsA1K+c48QdQSwMEFAACAAgA
7WCbTD04yhb8AAAAzg0AACsAHABmYXN0L2NhbnZhcy8yZC5maWxsVGV4dC5ncmFkaWVudC1zdGRl
cnIudHh0VVQJAAPtdONa2GbjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZXd0xLCLUo04Z
WGgLFYaUa43s2O1S0qzOt3fqI4hoa78FEgi/hP8vbhnCJczDKFhG4QKgxHptpcBOsoP3yJvFhbqc
P8FVwkx8HYFeafKCR8lRbq1zmhxxaWX7WURgfW+cfYbmawqCYzCD+xd4owO8Gi8gBB0iyBahNs1O
2DR4Dq1D0+GpI6cNlU4fiuSxqPK7tKxuYr0uslgngL63TH6PXoyD3rA1tcPZWfwtilyYdjhwjhWK
pn1LnRVMW2QjlvwQvzECio9YZNhIN93/tygmM01mmpIxmennKdQozKRGYiY1CjOp/5eMP2Wmod7/
HVBLAwQUAAIACADtYJtMHKvuXfEAAADODQAALgAcAGZhc3QvY2FudmFzLzJkLmdldFBhdGgubW9k
aWZpY2F0aW9uLXN0ZGVyci50eHRVVAkAA+5041rZZuNadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/
7ynyAGN01TksInRHN2VgoS10IFKuXWTHbpeSy+p8e6c+gh9ket8CCYRfwv+X9gzxHKZxEs2T+Aag
xnZtpEIvxdE55Ofrq9nt9AXuMmbi+wTUSpETPEmJsjTWKrLEtZHdV5GAcYO2Zgvd9xREp2gCj6/w
Tkd4005ACDwiyA6h1d1eWHc4ht6i9njuyHlDo/KnKttUTfmQ180iVeuqSFUG6AbD5A7oRFsYNBvd
WpyM0h9RlMK0xwvnWKEoOvTkjWDeI2sx5C7xG3+A4jMWBXbiw/1/iyKYKZgpJCOYKZgpmCmYKZjp
f9z/A1BLAwQUAAIACADuYJtM8CsW2f0AAADODQAAMwAcAGZhc3QvY2FudmFzLzJkLmdldFRyYW5z
Zm9ybS5tb2RpZmljYXRpb24tc3RkZXJyLnR4dFVUCQAD73TjWtlm41p1eAsAAQT1AQAABBQAAADt
lO1Kw1AMhv97FbkAGV39OFhE6A51ysBCW6ggUk67yA47OylpVufdO/USRLS1/wIJhCfhfeKWIVQw
D6NAReElQIn1ykqBnWR775Gfzs8urubPcJ0wE99EoJeavOBBcpRb65wmR1xa2XwWEVjfG2fX0HxN
QXAIZnD/Am+0h1fjBYSgQwTZINSm2QqbBk+hdWg6PHbkuKHS6UORPBZVfpeW1SLWqyKLdQLoe8vk
d+jFOOgNW1M7nJ3E36LIhWmLA+dYomjatdRZwbRFNmLJD/EbI6D4iEWGjXTT/X+LYjLTZKYpGZOZ
fp5CjcJMaiRmUqMwk/p/yfhTZhrq/d8BUEsDBBQAAgAIAO5gm0zVXdx1BQEAAGgSAAAhABwAZmFz
dC9jYW52YXMvMmQuc2V0UGF0aC1zdGRlcnIudHh0VVQJAAPwdONa2mbjWnV4CwABBPUBAAAEFAAA
AO3UUUrDQBAG4HdPMQeQklalMYgQl1ilYCAJpCASNnGkS7c7YTKN9fZGPYIPmnTfBnZh+Wf5v7hl
WCxhvoiCZTQMUGK9NlJgJ9nBOeTny4ur6/kL3CTMxLcRqJUiJ3iUHOXeWKvIEpdGtt9DBMb12ppX
aH5uQXAMZvD4Bh90gHftBISgQwTZItS62QnrBs+htag7HE5keKFS6VORbIoqf0jL6i5W6yKLVQLo
esPk9uhEW+g1G11bnJ3Fv0qRC9MOR55jhaJo31JnBNMWWYshN8bfmECKr1pk2Ejn9/9XKbxMXibf
DC+Tl8nL5GXyMp3i/sNJyBRORKZwEjKFp9eMfyXTWPf/CVBLAwQUAAIACADvYJtMNzvs5wUBAABo
EgAALQAcAGZhc3QvY2FudmFzLzJkLnNldFRyYW5zZm9ybS5tYXRyaXgtc3RkZXJyLnR4dFVUCQAD
8XTjWttm41p1eAsAAQT1AQAABBQAAADt1FFKw0AQBuB3TzEHkJJGpSaIEJdYpWAgCaQgEjZxpEu3
O2EyjfX2Vj2CD5p03xZ2Yfhn+b+kYwgXMA/jYBGH1wAVNisjJfaS751Dfr68uIrmL3CTMhPfxqCW
ipzgQQqUe2OtIktcGdl8H2IwbtDWvEL78wqCQzCDxzf4oD28aycgBD0iyAah0e1WWLd4Dp1F3ePx
Ro4TapU9lem6rIuHrKrvErUq80SlgG4wTG6HTrSFQbPRjcXZWfKrFIUwbXHkOZYoinYd9UYw65C1
GHJj/I0JpPiqRY6t9H7/f5XCy+Rl8s3wMnmZvExeJi/TKe4/moRM0URkiiYhU3R6zfhXMo11/59Q
SwMEFAACAAgA+GCbTOFOw8uNAAAANAEAACYAHABmYXN0L2NhbnZhcy9jYW52YXMtbGluZURhc2gt
c3RkZXJyLnR4dFVUCQADA3XjWu1m41p1eAsAAQT1AQAABBQAAADNjkEKwjAURPeeYi5g0FIJBBFK
Ky5058KFuPi1Hwyk+eE3FvX0tp7C1cw8hmGqpCgs1oVbWVda4C69oZQCmwu3R59nqSVmjtk0PHKQ
1E/+Wparjb1hu1cV3TnUh1/rlc+cTz5yQ8PDwceRgu/QTQmkSm8HyghMQ4ZEBgee59A/J9AyosTl
h1XMovrbZ19QSwMECgAAAAAA8VibTAAAAAAAAAAAAAAAAAkAHABmYXN0L2Nzcy9VVAkAA+Zm41q+
d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAPNgm0zbCNNCOwAAAD8AAAApABwAZmFzdC9jc3Mv
Y29tcGFyZS1jb250ZW50LXN0eWxlLXN0ZGVyci50eHRVVAkAA/p041rmZuNadXgLAAEE9QEAAAQU
AAAAcywpSc0tKFEoyVdIzSssTS1NVUhUKM8vylbIBEoolGdk5qQqQMQzixWSUjPz0hUKivKTU4uL
U1P0uABQSwMECgAAAAAABFmbTAAAAAAAAAAAAAAAAAkAHABmYXN0L2RvbS9VVAkAAwhn41q+d+Na
dXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAO5Ym0wAAAAAAAAAAAAAAAASABwAZmFzdC9kb20vRG9j
dW1lbnQvVVQJAAPgZuNavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADxYJtMvkiKKegAAAA0
CQAAMgAcAGZhc3QvZG9tL0RvY3VtZW50L2Vhcmx5LWRvY3VtZW50LWFjY2Vzcy1zdGRlcnIudHh0
VVQJAAP1dONa4GbjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZ3ToplCHUo5tjsEJbqCBS
rjVjx26XksvqfHunPoKITO5bIIHwS/j/soFhlsB0lkZJGscADXYbIzV6KU/OIT/P47tk/gKLnJn4
PgW1UuQEz1KhLI21iixxY2T/VaRg3KiteYX+ewqiczSB9Q7e6QRv2gkIgUcE2SN0uj8I6x5vYbCo
PV46ctnQqmJb5091Wz0WTfuQqU1dZioHdKNhckd0oi2Mmo3uLE5ush9RVMJ0wCvnWKEoOg7kjWAx
IGsx5K7xG/+A4jMWJfbiw/3/iiKYKZgpJCOY6TcoPgBQSwMECgAAAAAA8FibTAAAAAAAAAAAAAAA
ABUAHABmYXN0L2RvbS9HZW9sb2NhdGlvbi9VVAkAA+Nm41q+d+NadXgLAAEE9QEAAAQUAAAAUEsD
BBQAAgAIAPNgm0yhBfnb6AAAADQJAAAyABwAZmFzdC9kb20vR2VvbG9jYXRpb24vd2luZG93LWNs
b3NlLWNyYXNoLXN0ZGVyci50eHRVVAkAA/l041rjZuNadXgLAAEE9QEAAAQUAAAA7ZRvS8NADIff
71PkA4xR98diEaEedZOBhbbQgUi5dpEdu11KLqvz2zv1I4jI5N4FEghPwu9Je4ZpDFfTJIqTWQxQ
Y7s2UqGX4ugc8vN8tri+eYHbjJn4LgG1VOQET1KiPBhrFVni2sjuq0jAuEFbs4XuewqiUzSBx1d4
pyO8aScgBB4RZIfQ6m4vrDscQ29Rezx35LyhUflTlW2qplzldXOfqnVVpCoDdINhcgd0oi0Mmo1u
LU5G6Y8oSmHa44VzLFEUHXryRjDvkbUYcpf4jX9A8RmLAjvx4f5/RRHMFMwUkhHM9BsUH1BLAwQK
AAAAAADuWJtMAAAAAAAAAAAAAAAAGQAcAGZhc3QvZG9tL0hUTUxCYXNlRWxlbWVudC9VVAkAA99m
41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAPFgm0yt+xn96AAAADQJAABUABwAZmFzdC9k
b20vSFRNTEJhc2VFbGVtZW50L2hyZWYtYXR0cmlidXRlLXJlc29sdmVzLXdpdGgtcmVzcGVjdC10
by1kb2N1bWVudC1zdGRlcnIudHh0VVQJAAP1dONa32bjWnV4CwABBPUBAAAEFAAAAO2U4WrCQAzH
v+8p8gBDqlWEIoN6VB3CCm2hgyHl2mV4eF5KLnbu7ee2RxhjKPctkED4Jfx/ac8wmcN4kkTzJI4B
amy3Rir0UpycQ36ZxrPZdAeLjJn4IQG1VuQEz1KirIy1iixxbWT/XSRg3KCteYXuZwqiczSCxzf4
oBO8aycgBB4RZI/Q6u4grDu8h96i9njpyGVDo/KnKnuumnKT180yVduqSFUG6AbD5I7oRFsYNBvd
Whzdpb+iKIXpgFfOsUZRdOzJG8G8R9ZiyF3jN26A4isWBXbiw/3/iyKYKZgpJCOY6S8oPgFQSwME
CgAAAAAA81ibTAAAAAAAAAAAAAAAABAAHABmYXN0L2RvbS9XaW5kb3cvVVQJAAPqZuNavnfjWnV4
CwABBPUBAAAEFAAAAFBLAwQKAAAAAADwWJtMAAAAAAAAAAAAAAAAGQAcAGZhc3QvZG9tL1dpbmRv
dy9Mb2NhdGlvbi9VVAkAA+Rm41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAPNgm0yhBfnb
6AAAADQJAAA8ABwAZmFzdC9kb20vV2luZG93L0xvY2F0aW9uL3NldC1sb2NhdGlvbi1hZnRlci1j
bG9zZS1zdGRlcnIudHh0VVQJAAP5dONa5GbjWnV4CwABBPUBAAAEFAAAAO2Ub0vDQAyH3+9T5AOM
UffHYhGhHnWTgYW20IFIuXaRHbtdSi6r89s79SOIyOTeBRIIT8LvSXuGaQxX0ySKk1kMUGO7NlKh
l+LoHPLzfLa4vnmB24yZ+C4BtVTkBE9SojwYaxVZ4trI7qtIwLhBW7OF7nsKolM0gcdXeKcjvGkn
IAQeEWSH0OpuL6w7HENvUXs8d+S8oVH5U5VtqqZc5XVzn6p1VaQqA3SDYXIHdKItDJqNbi1ORumP
KEph2uOFcyxRFB168kYw75G1GHKX+I1/QPEZiwI78eH+f0URzBTMFJIRzPQbFB9QSwMEFAACAAgA
82CbTAZSbdPnAAAANAkAACkAHABmYXN0L2RvbS9XaW5kb3cvYS1yZWwtbm9vcGVuZXItc3RkZXJy
LnR4dFVUCQAD+XTjWuRm41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGXVzFIoI9ahTBhba
QgWRktbIjt0uJZfV+fZOfQQRmdy3QALhl/D/5aPAPIWLeZak2SIFaKlfW20oaLX3nuTpcrFcJs9w
VYiwXGdgVoa90kFr0lvrnGHH0lrdfBUZWD+hsy8wfE9BckhmcP8K77yHN/QKyhCIQDcEPQ5bFRzo
HEZHGOjY0eOGzpQPTfHYdPVd2XY3uVk3VW4KID9ZYb8jr+hgQrHYO5qd5T+iqFV4SyfOsSI1vBs5
WKVyJEG17E/xG/+A4jMWFQ0a4v3/iiKaKZopJiOa6TcoPgBQSwMEFAACAAgA82CbTAZSbdPnAAAA
NAkAACwAHABmYXN0L2RvbS9XaW5kb3cvYXJlYS1yZWwtbm9vcGVuZXItc3RkZXJyLnR4dFVUCQAD
+nTjWuRm41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGXVzFIoI9ahTBhbaQgWRktbIjt0u
JZfV+fZOfQQRmdy3QALhl/D/5aPAPIWLeZak2SIFaKlfW20oaLX3nuTpcrFcJs9wVYiwXGdgVoa9
0kFr0lvrnGHH0lrdfBUZWD+hsy8wfE9BckhmcP8K77yHN/QKyhCIQDcEPQ5bFRzoHEZHGOjY0eOG
zpQPTfHYdPVd2XY3uVk3VW4KID9ZYb8jr+hgQrHYO5qd5T+iqFV4SyfOsSI1vBs5WKVyJEG17E/x
G/+A4jMWFQ0a4v3/iiKaKZopJiOa6TcoPgBQSwMEFAACAAgA82CbTGw6+ennAAAANAkAAEEAHABm
YXN0L2RvbS9XaW5kb3cvY2xvc3VyZS1hY2Nlc3MtYWZ0ZXItbmF2aWdhdGlvbi13aW5kb3ctc3Rk
ZXJyLnR4dFVUCQAD+nTjWuRm41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGXVzTIoI9ahT
BhbaQoUhJa2RHbtdSi6r8+2d+ggiMrlvgQTCL+H/ywaB6QIupmmySGdXAA11K6s1BS333pOsL2fz
efIM17kIy00KZmnYKx20Ir2zzhl2LI3VzVeRgvUjOvsC/fcUJIdkAg+v8M57eEOvoAyBCHRD0GG/
VcGezmFwhIGOHT1uaE3xWOdPdVvdF017m5lVXWYmB/KjFfY78ooORhSLnaPJWfYjikqFt3TiHEtS
w7uBg1UqBhJUy/4Uv/EPKD5jUVKvId7/ryiimaKZYjKimX6D4gNQSwMEFAACAAgA9GCbTCep+YDn
AAAANAkAADkAHABmYXN0L2RvbS9XaW5kb3cvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUtd2luZG93
LXN0ZGVyci50eHRVVAkAA/t041rlZuNadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABl1cwyL
CPWoUwYW2kKFISWtkR27XUouq/PtnfoIIjK5b4EEwi/h/8sGgekCLqZpskhnVwANdSurNQUt996T
rC9n83nyDNe5CMtNCmZp2CsdtCK9s84ZdiyN1c1XkYL1Izr7Av33FCSHZAIPr/DOe3hDr6AMgQh0
Q9Bhv1XBns5hcISBjh09bmhN8VjnT3Vb3RdNe5uZVV1mJgfyoxX2O/KKDkYUi52jyVn2I4pKhbd0
4hxLUsO7gYNVKgYSVMv+FL/xDyg+Y1FSryHe/68oopmimWIyopl+g+IDUEsDBBQAAgAIAPRgm0wn
qfmA5wAAADQJAABBABwAZmFzdC9kb20vV2luZG93L2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLXdp
bmRvdy13aXRoLWdjLXN0ZGVyci50eHRVVAkAA/t041rlZuNadXgLAAEE9QEAAAQUAAAA7ZThSsNA
DMe/+xR5ABl1cwyLCPWoUwYW2kKFISWtkR27XUouq/PtnfoIIjK5b4EEwi/h/8sGgekCLqZpskhn
VwANdSurNQUt996TrC9n83nyDNe5CMtNCmZp2CsdtCK9s84ZdiyN1c1XkYL1Izr7Av33FCSHZAIP
r/DOe3hDr6AMgQh0Q9Bhv1XBns5hcISBjh09bmhN8VjnT3Vb3RdNe5uZVV1mJgfyoxX2O/KKDkYU
i52jyVn2I4pKhbd04hxLUsO7gYNVKgYSVMv+FL/xDyg+Y1FSryHe/68oopmimWIyopl+g+IDUEsD
BBQAAgAIAPRgm0wndOxg8QAAAM4NAAArABwAZmFzdC9kb20vV2luZG93L29wZW4taW52YWxpZC11
cmwtc3RkZXJyLnR4dFVUCQAD/HTjWuZm41p1eAsAAQT1AQAABBQAAADtlNtKw0AQhu99inkAKWsP
FIIIcUkPFAwkgQgiYZNO6dLtTpidxvr2Vn0EL6S6dwMzMHwz/F/aM4zncDdO1DyZKoAa242VCoMU
J++RX6aT2Uy9wn3GTPyQgF5q8oJnKVEW1jlNjri2sv8qErB+MM5uofueAnVWI1jv4J1O8Ga8gBAE
RJA9Qmu6g7Dp8BZ6hybgpSOXDY3On6rsuWrKVV43j6neVEWqM0A/WCZ/RC/GwWDYmtbh6Cb9EUUp
TAe8co4liqZjT8EK5j2yEUv+Gr/xByg+Y1FgJyHe/7coopmimWIyopmimaKZopmimf7H/T8AUEsD
BBQAAgAIAPVgm0zEbbrc6AAAADQJAAA0ABwAZmFzdC9kb20vV2luZG93L29wZW4temVyby1zaXpl
LWFzLWRlZmF1bHQtc3RkZXJyLnR4dFVUCQAD/XTjWuZm41p1eAsAAQT1AQAABBQAAADtlNtKw0AQ
hu99inkAKWsPFIIIcUkPFAwkgQgiYZNO6dLtTpidxvr2Vn0EEans3cAMDN8M/5f2DOM53I0TNU+m
CqDGdmOlwiDFyXvkl+lkNlOvcJ8xEz8koJeavOBZSpSFdU6TI66t7L+KBKwfjLNb6L6nQJ3VCNY7
eKcTvBkvIAQBEWSP0JruIGw6vIXeoQl46chlQ6Pzpyp7rppyldfNY6o3VZHqDNAPlskf0YtxMBi2
pnU4ukl/RFEK0wGvnGOJounYU7CCeY9sxJK/xm/8A4rPWBTYSYj3/yuKaKZoppiMaKbfoPgAUEsD
BBQAAgAIAPVgm0yP/rq15wAAADQJAAA+ABwAZmFzdC9kb20vV2luZG93L3NldHRpbmctcHJvcGVy
dGllcy1vbi1jbG9zZWQtd2luZG93LXN0ZGVyci50eHRVVAkAA/1041rnZuNadXgLAAEE9QEAAAQU
AAAA7ZThSsNADMe/+xR5ABnd3BgUEepRpwwstIUKMsq1RhZ2u5RcVufbO/URRGRy3wIJhF/C/5cN
ArMlTGdpskznU4AGuzVpjUHLg/coz/OrxSLZwHUuwnKTglkZ9opHrVDvyDnDjqUh3X4VKZAfraMX
6L+nIDkmE3h4hXc+wJv1CsoQEEG3CJ3tdyq2x0sYHNqAp46eNrSmeKzzp7qt7oumvc3Mui4zkwP6
kYT9Hr1aB6MVsp3DyUX2I4pKhXd45hwrVMP7gQMpFgOKVWJ/jt/4BxSfsSix1xDv/1cU0UzRTDEZ
0Uy/QfEBUEsDBBQAAgAIAPZgm0wZ2Ltn5wAAADQJAAAyABwAZmFzdC9kb20vV2luZG93L3dpbmRv
dy1lYXJseS1wcm9wZXJ0aWVzLXN0ZGVyci50eHRVVAkAA/9041rpZuNadXgLAAEE9QEAAAQUAAAA
7ZTtSsNQDIb/exW5ABl1HwyKCPVQpwwstIUKIuW0RnbYWVJysjrv3qmXICIb518ggfAkvE82CEyX
cDVNk2U6nwE02K2d1hi03BOhPM9ni0XyAte5CMtNCmZlmBQPWqHeOe8Ne5bG6ea7SMHRaL17hf5n
CpJDMoGHN/jgPbxbUlCGgAi6Qehsv1WxPV7C4NEGPHb0uKE1xWOdP9VtdV807W1m1nWZmRyQRidM
OyS1HkYrznYeJxfZrygqFd7iiXOsUA3vBg5OsRhQrDqmU/zGGVB8xaLEXkO8/39RRDNFM8VkRDP9
BcUnUEsDBBQAAgAIAPZgm0ypJsmj5wAAADQJAAAyABwAZmFzdC9kb20vV2luZG93L3dpbmRvdy1v
cGVuLXBlbmRpbmctdXJsLXN0ZGVyci50eHRVVAkAAwB141rpZuNadXgLAAEE9QEAAAQUAAAA7ZTh
SsNADMe/+xR5ABl1dgyKCPWoUwYW2kIFkZLWyI7dLiWX1fn2Tn0EEZnct0AC4Zfw/+WjwHwJF/Ms
WWZpCtBSv7baUNBq7z3JU3q5WCTPcFWIsFxnYFaGvdJBa9Jb65xhx9Ja3XwVGVg/obMvMHxPQXJI
ZnD/Cu+8hzf0CsoQiEA3BD0OWxUc6BxGRxjo2NHjhs6UD03x2HT1Xdl2N7lZN1VuCiA/WWG/I6/o
YEKx2DuaneU/oqhVeEsnzrEiNbwbOVilciRBtexP8Rv/gOIzFhUNGuL9/4oimimaKSYjmuk3KD4A
UEsDBBQAAgAIAPZgm0ypJsmj5wAAADQJAAA0ABwAZmFzdC9kb20vV2luZG93L3dpbmRvdy1vcGVu
ZXItc2V0LXRvLW51bGwtc3RkZXJyLnR4dFVUCQADAHXjWupm41p1eAsAAQT1AQAABBQAAADtlOFK
w0AMx7/7FHkAGXV2DIoI9ahTBhbaQgWRktbIjt0uJZfV+fZOfQQRmdy3QALhl/D/5aPAfAkX8yxZ
ZmkK0FK/ttpQ0GrvPclTerlYJM9wVYiwXGdgVoa90kFr0lvrnGHH0lrdfBUZWD+hsy8wfE9Bckhm
cP8K77yHN/QKyhCIQDcEPQ5bFRzoHEZHGOjY0eOGzpQPTfHYdPVd2XY3uVk3VW4KID9ZYb8jr+hg
QrHYO5qd5T+iqFV4SyfOsSI1vBs5WKVyJEG17E/xG/+A4jMWFQ0a4v3/iiKaKZopJiOa6TcoPgBQ
SwMEFAACAAgA92CbTOK1ycrnAAAANAkAAEUAHABmYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3Bl
cnR5LWludmFsaWQtY2hhcmFjdGVycy1pZ25vcmVkLXN0ZGVyci50eHRVVAkAAwF141rqZuNadXgL
AAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABl1rgyKCPWoUwYW2kIFkZLWyI7dLiWX1fn2Tn0EEZnc
t0AC4Zfw/+WjwHwJF/MsWWaLFKClfm21oaDV3nuSp8VlmibPcFWIsFxnYFaGvdJBa9Jb65xhx9Ja
3XwVGVg/obMvMHxPQXJIZnD/Cu+8hzf0CsoQiEA3BD0OWxUc6BxGRxjo2NHjhs6UD03x2HT1Xdl2
N7lZN1VuCiA/WWG/I6/oYEKx2DuaneU/oqhVeEsnzrEiNbwbOVilciRBtexP8Rv/gOIzFhUNGuL9
/4oimimaKSYjmuk3KD4AUEsDBBQAAgAIAPlgm0zbbk8w+gAAAGgSAAAvABwAZmFzdC9kb20vaG9y
aXpvbnRhbC1zY3JvbGxiYXItaW4tcnRsLXN0ZGVyci50eHRVVAkAAwV141rvZuNadXgLAAEE9QEA
AAQUAAAA7dRRSsNAEAbgd08xB5ASa7UaRIhLrFIwkAQiiIRNHOnS7U6YncZ6e6sewYdSmbeFXRj+
Wf4vGximczibpsk8nV0DNNgtndQYpdyGgPwyO7+4unyFm5yZ+DYFszAUBHdSodw77w154sbJ6ueQ
gguj9e4N+t9XkOySCTy+wydt4cMGASGIiCArhM72a2Hb4ykMHm3E/Y3sJ7SmeKrz57qtHoqmvcvM
si4zkwOG0TGFDQaxHkbLznYeJyfZn1JUwrTGI8+xQDG0GSg6wWJAtuIoHONv/IMU37UosZeo+z9U
CpVJZdJmqEwqk8qkMqlMun+VSWXSZqhMh0nxBVBLAwQUAAIACAD5YJtMwfPORgwBAABoEgAAKAAc
AGZhc3QvZG9tL2h0bWwtYXR0cmlidXRlLXR5cGVzLXN0ZGVyci50eHRVVAkAAwZ141rwZuNadXgL
AAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABl1bk6LCPWoVQYW2kIFkXKtkR27XUqa1fn2Tn2CIcOt
3rdAAscvuf8vahnGMzgbh8EsnFwBlFjPjRTYSbZ2Dvl5cj69vHiB65iZ+CYElShyghvJUe6MtYos
cWlk8V2EYFyvrXmF5mcKgk0wgoc3+KA1vGsnIAQdIsgCodbNUlg3eAqtRd3htiPbFyqVPhbxU1Hl
92lZ3UZqXmSRigFdb5jcCp1oC71mo2uLo5PoVxS5MC3xyDkSFEWrljojmLbIWgy5Y7zGACi+YpFh
I53f/19ReDN5M/lkeDPtnWIaDMFMO1McqJl240iG8qcGQHFIZvqP+/dm8mbyyfBm2hPFJ1BLAwQU
AAIACAD7YJtMN6lT7ucAAAA0CQAAMAAcAGZhc3QvZG9tL2xvY2F0aW9uLW5ldy13aW5kb3ctbm8t
Y3Jhc2gtc3RkZXJyLnR4dFVUCQADCXXjWvRm41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkA
GXVzTooI9ahTBhbaQgWRcq2RHbslJZfV+fZOfQQRmdy3QALhl/D/ZYPAdAFn0zRZpPMZQIPdymmN
QcsdEcrT+Wx+efEMV7kIy3UKZmmYFPdaod467w17lsbp+qtIwdFovXuB/nsKkn0ygftXeOcdvFlS
UIaACLpG6Gy/UbE9nsLg0QY8dPSwoTXFQ50/1m11VzTtTWZWdZmZHJBGJ0xbJLUeRivOdh4nJ9mP
KCoV3uCRcyxRDW8HDk6xGFCsOqZj/MY/oPiMRYm9hnj/v6KIZopmismIZvoNig9QSwMEFAACAAgA
/WCbTFriIJHoAAAANAkAACkAHABmYXN0L2RvbS9vcGVuLWFuZC1jbG9zZS1ieS1ET00tc3RkZXJy
LnR4dFVUCQADDnXjWvhm41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/vKfIAY9TpVikidEedY2Ch
LXQgUq5dZMdul5LL6nx7pz6CiEzuWyCB8Ev4/9KeYRrD1TSJ4mQWA9TYro1U6KU4Oof8fHM9u52/
wF3GTHyfgFoqcoInKVEejLWKLHFtZPdVJGDcoK3ZQvc9BdEpmsDqFd7pCG/aCQiBRwTZIbS62wvr
DsfQW9Qezx05b2hU/lRlm6opH/O6WaRqXRWpygDdYJjcAZ1oC4Nmo1uLk1H6I4pSmPZ44RxLFEWH
nrwRzHtkLYbcJX7jH1B8xqLATny4/19RBDMFM4VkBDP9BsUHUEsDBBQAAgAIAAJhm0yulrXr/AAA
AM4NAAAvABwAZmFzdC9kb20vc2Nyb2xsLXJldmVhbC1sZWZ0LW92ZXJmbG93LXN0ZGVyci50eHRV
VAkAAxN141r9ZuNadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABm1nTqKCPWoUwYW2kIFkXLt
Ijt2u5Q0q/PtnfoIItp63wIJhF/C/5d0DOElnIVxsIiDEKDCZmWkxF7yvXPIT/PofHHxDFcpM/F1
DGqpyAkepEC5NdYqssSVkc1nEYNxg7ZmDe3XFASHYAb3L/BGe3jVTkAIekSQDUKj262wbvEUOou6
x2NHjhtqlT2U6WNZF3dZVd8kalXmiUoB3WCY3A6daAuDZqMbi7OT5FsUhTBtceQcSxRFu456I5h1
yFoMuTF+YwIUH7HIsZXe3/+3KLyZvJl8MryZfp4imoSZoomYKZqEmaL/l4w/Zaax3v8dUEsDBBQA
AgAIAAJhm0yCEhLN/AAAAM4NAAAsABwAZmFzdC9kb20vc2VhcmNoLXNoYWRvdy1ob3N0LWNyYXNo
LXN0ZGVyci50eHRVVAkAAxR141r+ZuNadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABl1qzqK
CN1RpwwstIUORMq1i+zY7VJyWZ1v79RHENHWfgskEH4J/1/cMkyv4WIaBfMomAGUWK+MFOglOziH
/BTOLudXz3CTMBPfRqCWipzgUXKUO2OtIktcGtl+FhEY12lrNtB8TUFwDCbw8AJvdIBX7QSEwCOC
bBFq3eyEdYPn0FrUHk8dOW2oVPpYJOuiyu/TslrEalVksUoAXWeY3B6daAudZqNri5Oz+FsUuTDt
sOccSxRF+5a8EUxbZC2GXB+/MQCKj1hk2Igf7/9bFKOZRjONyRjN9PMU4SDMFA7ETOEgzBT+v2T8
KTP19f7vUEsDBBQAAgAIAAdhm0yhpziZ/QAAAM4NAAA2ABwAZmFzdC9kb20vdmVydGljYWwtc2Ny
b2xsYmFyLXdoZW4tZGlyLWNoYW5nZS1zdGRlcnIudHh0VVQJAAMddeNaB2fjWnV4CwABBPUBAAAE
FAAAAO2U7UrDUAyG/3sVuQAZXevHKCLUQ50ysNAWOhAppzWyw85OSprVefdOvQQRbT3/AgmEJ+F9
ko4hvIR5GAeLeB4CVNisjJTYS753DvnxLDpfXDzBVcpMfB2DWipyggcpUG6NtYoscWVk81nEYNyg
rXmG9msKgkMwg/sXeKM9vGonIAQ9IsgGodHtVli3eAqdRd3jsSPHDbXKHsp0XdbFXVbVN4lalXmi
UkA3GCa3QyfawqDZ6Mbi7CT5FkUhTFscOccSRdGuo94IZh2yFkNujN+YAMVHLHJspff3/y0KbyZv
Jp8Mb6afp4gmYaZoImaKJmGm6P8l40+Zaaz3fwdQSwMEFAACAAgAB2GbTIutlpfxAAAAzg0AADcA
HABmYXN0L2RvbS93ZWJpZGwtb3BlcmF0aW9ucy1vbi1ub2RlLXByb3RvdHlwZS1zdGRlcnIudHh0
VVQJAAMedeNaCGfjWnV4CwABBPUBAAAEFAAAAO2U30rDUAyH732KPICMbvPPKCLUQ50ysNAWKoiU
0xpZ2NlJycnqfHunPoIXMj13gQTCl/D7skFgdgnTWZos0ukcoMFuRVpj0HLnPcrT2fx8cfEMV7kI
y3UKZmnYK+61Qr0l5ww7loZ0/VWkQH60jl6g/56CZJ9M4P4V3nkHb9YrKENABF0jdLbfqNgeT2Fw
aAMeOnrY0Jrioc4f67a6K5r2JjOrusxMDuhHEvZb9GodjFbIdg4nJ9mPKCoV3uCRcyxRDW8HDqRY
DChWif0xfuMPUHzGosReQ7z/b1FEM0UzxWREM0UzRTNFM0Uz/Y/7fwBQSwMEFAACAAgAB2GbTBfB
WwbnAAAANAkAACcAHABmYXN0L2RvbS93aW5kb3ctZG9tdXJsLWNyYXNoLXN0ZGVyci50eHRVVAkA
Ax5141oIZ+NadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABndnDqKCPWoUwYW2kIFkXKtkYXd
LiWX1fn2Tn0EEZnct0AC4Zfw/2WDwOwSprM0WaTTOUCD3Yq0xqDlznuUp/nZ+eLiGa5yEZbrFMzS
sFfca4V6S84ZdiwN6fqrSIH8aB29QP89Bck+mcD9K7zzDt6sV1CGgAi6Ruhsv1GxPZ7C4NAGPHT0
sKE1xUOdP9ZtdVc07U1mVnWZmRzQjyTst+jVOhitkO0cTk6yH1FUKrzBI+dYohreDhxIsRhQrBL7
Y/zGP6D4jEWJvYZ4/7+iiGaKZorJiGb6DYoPUEsDBAoAAAAAAA5Zm0wAAAAAAAAAAAAAAAAMABwA
ZmFzdC9ldmVudHMvVVQJAAMbZ+NavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAD3YJtMb8TO
8ucAAAA0CQAAPgAcAGZhc3QvZXZlbnRzL2JlZm9yZS11bmxvYWQtbmF2aWdhdGUtZGlmZmVyZW50
LXdpbmRvdy1zdGRlcnIudHh0VVQJAAMBdeNa6mbjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sU
eQAZdXYMigj1qFMGFtpCBZGS1siO3S4ll9X59k59BBGZ3LdAAuGX8P/lo8B8CRfzLFlmaQrQUr+2
2lDQau89yVN6uVikz3BViLBcZ2BWhr3SQWvSW+ucYcfSWt18FRlYP6GzLzB8T0FySGZw/wrvvIc3
9ArKEIhANwQ9DlsVHOgcRkcY6NjR44bOlA9N8dh09V3Zdje5WTdVbgogP1lhvyOv6GBCsdg7mp3l
P6KoVXhLJ86xIjW8GzlYpXIkQbXsT/Eb/4DiMxYVDRri/f+KIpopmikmI5rpNyg+AFBLAwQUAAIA
CAD3YJtMJFfOm+gAAAA0CQAAMAAcAGZhc3QvZXZlbnRzL2JlZm9yZS11bmxvYWQtb3Blbi13aW5k
b3ctc3RkZXJyLnR4dFVUCQADAXXjWupm41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGXW2
DIoI9eimDFZoCxVEyrVm7NjtUnJZN9/ebT6CiEzuWyCB8Ev4/7KBYTqDu2kazdI4AWiwWxqp0Uu5
dw75Lb5PkvgdHnJm4scU1EKREzxKhTI31iqyxI2RzaVIwbhRW/MB/fcURMdoAi9r+KQ9HLQTEAKP
CLJB6HS/FdY93sJgUXs8deS0oVXFqs5f67Z6Lpr2KVPLusxUDuhGw+R26ERbGDUb3Vmc3GQ/oqiE
aYtXzrFAUbQbyBvBYkDWYshd4zf+AcU5FiX24sP9/4oimCmYKSQjmOk3KL4AUEsDBBQAAgAIAPtg
m0xYKmd1OQAAAEMAAAAyABwAZmFzdC9ldmVudHMvZGlzcGxheS1ub25lLW9uLWZvY3VzLWNyYXNo
LXN0ZGVyci50eHRVVAkAAwp141rzZuNadXgLAAEE9QEAAAQUAAAAy80vLU71zS9LDclXSEvMzElN
USgBsjLzUhQSFUoSi9JTSxTKMlPLFRJLFAwNDAz0DMBAxxTO5AIAUEsDBBQAAgAIAAphm0wwtW3j
OQAAAEMAAAArABwAZmFzdC9ldmVudHMvbW91c2UtZm9jdXMtaW1hZ2VtYXAtc3RkZXJyLnR4dFVU
CQADI3XjWgxn41p1eAsAAQT1AQAABBQAAADLzS8tTvXNL0sNyVdIS8zMSU1RKAGyMvNSFBIVShKL
0lNLFMoyU8sVEksUzA0M9AzAQEfXEM7mAgBQSwMEFAACAAgADWGbTLzu04LxAAAAzg0AADUAHABm
YXN0L2V2ZW50cy9vcGVuLXdpbmRvdy1mcm9tLWFub3RoZXItZnJhbWUtc3RkZXJyLnR4dFVUCQAD
KnXjWhRn41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGbVuU4oMuqNuMrDQFjoYUq5dZMdu
l5LL6nx7pz6CH2R63wIJhF/C/5f2DPEd3MRJdJ/EU4Aa25WRCr0UR+eQN+PbyWT8Ag8ZM/EsAbVQ
5ARPUqI8GmsVWeLayO6rSMC4QVuzhe57CqJTNIKnV3inI7xpJyAEHhFkh9Dqbi+sO7yG3qL2eO7I
eUOj8ucqW1dNuczrZp6qVVWkKgN0g2FyB3SiLQyajW4tjq7SH1GUwrTHC+dYoCg69OSNYN4jazHk
LvEbf4DiMxYFduLD/X+LIpgpmCkkI5gpmCmYKZgpmOl/3P8DUEsDBBQAAgAIAA5hm0x10At85wAA
ADQJAAA3ABwAZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1tb3ZlLXRlc3Qtc3Rk
ZXJyLnR4dFVUCQADK3XjWhVn41p1eAsAAQT1AQAABBQAAADtlGFKw0AQhf97ijmAlFhblCBCXGKV
goEkEEEkbOJIl25nwuw01tsb9QgiUtl/D2bg8c3wXjYIzC/gbJ4ml+kkoMFu7bTGoOWeCOVpcb5c
Lp7hKhdhuU7BrAyT4kEr1FvnvWHP0jjdfIkUHI3Wuxfov7cgOSQzuH+Fd97DmyUFZQiIoBuEzvZb
FdvjKQwebcBpopNDa4qHOn+s2+quaNqbzKzrMjM5II1OmHZIaj2MVpztPM5Osh9RVCq8xSPnWKEa
3g0cnGIxoFh1TMf4jX9A8RmLEnsN8f5/RRGbKTZTTEZspt+g+ABQSwMEFAACAAgAD2GbTLw/c5D6
AAAAaBIAAEEAHABmYXN0L2V2ZW50cy9wb3B1cC1hbGxvd2VkLWZyb20tZ2VzdHVyZS1pbml0aWF0
ZWQtZXZlbnQtc3RkZXJyLnR4dFVUCQADLnXjWhhn41p1eAsAAQT1AQAABBQAAADt1N1Kw0AQBeB7
n2IeQErsD0oQIS6xSsFAEohQJGziSJdud8LsNNa3t+ojeFEqc7ewC8OZ5XzZwDC9hqtpmtykswSg
wW7lpMYo5T4E5PV8tljMX+E2Zya+S8EsDQXBg1QoD857Q564cbL5OaTgwmi9e4P+9xUkh2QCT+/w
SXv4sEFACCIiyAahs/1W2PZ4CYNHG/F4I8cJrSme6/ylbqvHomnvM7Oqy8zkgGF0TGGHQayH0bKz
ncfJRfanFJUwbfHMcyxRDO0Gik6wGJCtOArn+Bv/IMV3LUrsJer+T5VCZVKZtBkqk8qkMqlMKpPu
X2VSmbQZKtNpUnwBUEsDBBQAAgAIAA9hm0xOth5Z5wAAADQJAABHABwAZmFzdC9ldmVudHMvcG9w
dXAtYWxsb3dlZC1mcm9tLWdlc3R1cmUtaW5pdGlhdGVkLWZvcm0tc3VibWl0LXN0ZGVyci50eHRV
VAkAAy5141oYZ+NadXgLAAEE9QEAAAQUAAAA7ZTtSsNQDIb/exW5ABl1HyhFhHqoUwYW2kKFISWt
kR12dlJysjrv3qmXICKT8y+QQHgS3icbBKaXcDFNk6t0lgA01K2s1hS03HtPsp7PFov5M1znIiw3
KZilYa900Ir0zjpn2LE0VjdfRQrWj+jsC/TfU5Ackgk8vMI77+ENvYIyBCLQDUGH/VYFezqHwREG
Onb0uKE1xWOdP9VtdV807W1mVnWZmRzIj1bY78grOhhRLHaOJmfZjygqFd7SiXMsSQ3vBg5WqRhI
UC37U/zGP6D4jEVJvYZ4/7+iiGaKZorJiGb6DYoPUEsDBBQAAgAIAA9hm0xOth5Z5wAAADQJAAA7
ABwAZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tlZC1mcm9tLWZha2UtdXNlci1nZXN0dXJlLXN0ZGVy
ci50eHRVVAkAAy5141oYZ+NadXgLAAEE9QEAAAQUAAAA7ZTtSsNQDIb/exW5ABl1HyhFhHqoUwYW
2kKFISWtkR12dlJysjrv3qmXICKT8y+QQHgS3icbBKaXcDFNk6t0lgA01K2s1hS03HtPsp7PFov5
M1znIiw3KZilYa900Ir0zjpn2LE0VjdfRQrWj+jsC/TfU5Ackgk8vMI77+ENvYIyBCLQDUGH/VYF
ezqHwREGOnb0uKE1xWOdP9VtdV807W1mVnWZmRzIj1bY78grOhhRLHaOJmfZjygqFd7SiXMsSQ3v
Bg5WqRhIUC37U/zGP6D4jEVJvYZ4/7+iiGaKZorJiGb6DYoPUEsDBBQAAgAIABBhm0wFJR4w5wAA
ADQJAAA/ABwAZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tlZC1mcm9tLXVudHJ1c3RlZC1tb3VzZS1j
bGljay1zdGRlcnIudHh0VVQJAAMvdeNaGWfjWnV4CwABBPUBAAAEFAAAAO2U7UrDUAyG/3sVuQAZ
3RdKEaEe6pSBhbZQQaSkNbLDzk5KTlbn3Tv1EkRkcv4FEghPwvtkg8DsAqazNLlM51OAhrq11ZqC
lnvvSZ4W8+Vy8QxXuQjLdQpmZdgrHbQivbXOGXYsjdXNV5GC9SM6+wL99xQkh2QC96/wznt4Q6+g
DIEIdEPQYb9VwZ7OYXCEgY4dPW5oTfFQ5491W90VTXuTmXVdZiYH8qMV9jvyig5GFIudo8lZ9iOK
SoW3dOIcK1LDu4GDVSoGElTL/hS/8Q8oPmNRUq8h3v+vKKKZopliMqKZfoPiA1BLAwQUAAIACAAQ
YZtM2JAfi+gAAAA0CQAANQAcAGZhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLWNsaWNrLWluLWlm
cmFtZS1zdGRlcnIudHh0VVQJAAMwdeNaGWfjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZ
tdtQigj16KYMLLSFCmOUa83Ysdul5LI6396pjzCGbNy3QALhl/D/pT1DfA93cRI9JOMYoMZ2YaRC
L8XeOeTlZDydTlbwmDETPyWg5oqc4EFKlJmxVpElro1sfosEjBu0NR/Q/U1BdIhG8LqGL9rDp3YC
QuARQTYIre62wrrDW+gtao/Hjhw3NCp/q7L3qilf8rp5TtWiKlKVAbrBMLkdOtEWBs1GtxZHN+lJ
FKUwbfHCOeYoinY9eSOY98haDLlL/MYVUPzEosBOfLj/f1EEMwUzhWQEM52D4htQSwMEFAACAAgA
EGGbTNiQH4voAAAANAkAAC0AHABmYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnMxLXN0
ZGVyci50eHRVVAkAAzB141oZZ+NadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABm121CKCPXo
pgwstIUKY5Rrzdix26Xksjrf3qmPMIZs3LdAAuGX8P+lPUN8D3dxEj0k4xigxnZhpEIvxd455OVk
PJ1OVvCYMRM/JaDmipzgQUqUmbFWkSWujWx+iwSMG7Q1H9D9TUF0iEbwuoYv2sOndgJC4BFBNgit
7rbCusNb6C1qj8eOHDc0Kn+rsveqKV/yunlO1aIqUpUBusEwuR060RYGzUa3Fkc36UkUpTBt8cI5
5iiKdj15I5j3yFoMuUv8xhVQ/MSiwE58uP9/UQQzBTOFZAQznYPiG1BLAwQUAAIACAAQYZtM2JAf
i+gAAAA0CQAALQAcAGZhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczItc3RkZXJyLnR4
dFVUCQADMHXjWhpn41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGbXbUIoI9eimDCy0hQpj
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
JAAANAAcAGZhc3QvZm9ybXMvc3VibWl0LXRvLWJsYW5rLW11bHRpcGxlLXRpbWVzLXN0ZGVyci50
eHRVVAkAAyp141oXZ+NadXgLAAEE9QEAAAQUAAAA7dTvSsMwFAXw7z7FfQAZtfPPLCJ0oU4ZWGgL
FURKWq8sLEtKelfn2zv1EfwglfOtkEI4J5xf2geKr+gsTqJFEl8S1dyujVQ8SLF3jsPz+fzievFC
N1kIPtwmpFbKO+GDlCx3xlrlrQ+1kc33R0LGjdqaV+p+/qLoEM3o4Y0+/J7etRMSTwMzyYap1d1W
gu74lHrLeuDjiRxvaFT+WGVPVVPe53WzTNW6KlKVEbvRBO927ERbGnUwurU8O0l/laKU4Lc88Rwr
FuV3vR+McN5z0GK8m+Jr/IMUX7MouJMB/f9VCsgEmbAMyASZIBNkgkzoHzJBJiwDMkEmyASZIBP6
h0yQCcuATJAJMkEmyIT+IRNkgkyQabr9fwJQSwMECgAAAAAAAFmbTAAAAAAAAAAAAAAAAAwAHABm
YXN0L2ZyYW1lcy9VVAkAA/9m41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAPpgm0yJRZX0
5wAAADQJAAAyABwAZmFzdC9mcmFtZXMvZnJhbWUtY3Jhc2gtd2l0aC1wYWdlLWNhY2hlLXN0ZGVy
ci50eHRVVAkAAwh141rzZuNadXgLAAEE9QEAAAQUAAAA7ZTtSsNQDIb/exW5ABnt/BgUEeqhThlY
aAsVRMppjSzs7KTkZHXevVMvQUQm518ggfAkvE8+CswXkM6zZJFdpAAt9ivSBoNWO+9Rns7PLtP0
Ga4KEZbrDMzSsFfca416S84Zdiwt6fqryID8ZB29wPA9Bck+mcH9K7zzDt6sV1CGgAi6RujtsFGx
A57C6NAGPHT0sKEz5UNTPDZdfVe23U1uVk2VmwLQTyTst+jVOpiskO0dzk7yH1HUKrzBI+dYohre
jhxIsRxRrBL7Y/zGP6D4jEWFg4Z4/7+iiGaKZorJiGb6DYoPUEsDBBQAAgAIAPpgm0zbCNNCOwAA
AD8AAAAvABwAZmFzdC9mcmFtZXMvZnJhbWUtZGlzcGxheS1ub25lLWZvY3VzLXN0ZGVyci50eHRV
VAkAAwh141rzZuNadXgLAAEE9QEAAAQUAAAAcywpSc0tKFEoyVdIzSssTS1NVUhUKM8vylbIBEoo
lGdk5qQqQMQzixWSUjPz0hUKivKTU4uLU1P0uABQSwMEFAACAAgA/WCbTMwNPtfIAAAATQEAAD8A
HABmYXN0L2ZyYW1lcy9pZnJhbWUtcGx1Z2luLWxvYWQtcmVtb3ZlLWRvY3VtZW50LWNyYXNoLXN0
ZGVyci50eHRVVAkAAw1141r4ZuNadXgLAAEE9QEAAAQUAAAArY/BbsIwEETvfMX+AEvsugRZQqqS
9FSpQnDoASG0SRZq1Xgjx4HfJ0Eqh557nRnNm9GZWs0zM9c5KG2z3L7maHQGjVyQus4zfnH94RJu
/HB2AZcGK76yl+7CIe2NUStlX1RutDnAJ6ebxJ9dkkhnrgp7lI5DVWyZ2lJC4CY5Cb2FEznPLSSB
KQBx9Efib2DSqwLeYFFS883Y1gjwHqPEtTIIJQ09r4dAtednRUuJauoZTmPzTP/nq8eI6YKFP9Bm
ch7EHlyA2R1QSwMEFAACAAgAAGGbTFPTcwrpAAAANAkAAC4AHABmYXN0L2ZyYW1lcy9wYWdlLWhp
ZGUtZG9jdW1lbnQtb3Blbi1zdGRlcnIudHh0VVQJAAMQdeNa+2bjWnV4CwABBPUBAAAEFAAAAO2U
b0vDQAyH3+9T5AOM0c4/wyJCd9Q5Biu0hQ5EyrWL7NjtUnJZnd/eqR9BRCb3LpBAeBJ+T9ozTGcQ
T5NoltzcAdTYroxU6KU4Oof8fH11G8cvcJ8xEz8koBaKnOBJSpRHY60iS1wb2X0VCRg3aGu20H1P
QXSKJrB8hXc6wpt2AkLgEUF2CK3u9sK6wzH0FrXHc0fOGxqVr6tsUzXlU14381StqiJVGaAbDJM7
oBNtYdBsdGtxMkp/RFEK0x4vnGOBoujQkzeCeY+sxZC7xG/8A4rPWBTYiQ/3/yuKYKZgppCMYKbf
oPgAUEsDBBQAAgAIAABhm0zZ2IhQ5wAAADQJAAAwABwAZmFzdC9mcmFtZXMvcGFnZS11bmxvYWQt
ZG9jdW1lbnQtb3Blbi1zdGRlcnIudHh0VVQJAAMQdeNa/GbjWnV4CwABBPUBAAAEFAAAAO2U4UrD
QAzHv/sUeQAZ1ylOigj1qHMMLLSFCkPKtUZ27HYpuazOt3fqI4whk/sWSCD8Ev6/bGCYziCZpuo2
VQqgwW5ppcYg5c575NX11U2SvMJdzkx8n4Kea/KCe6lQHq1zmhxxY2X9U6Rg/WicfYP+dwrUXk1g
8Q6ftIMP4wWEICCCrBE602+ETY+XMDg0AQ8dOWxodfFc5y91Wz0VTfuQ6WVdZjoH9KNl8lv0YhyM
hq3pHE4usqMoKmHa4JlzzFE0bQcKVrAYkI1Y8uf4jX9A8R2LEnsJ8f5/RRHNFM0UkxHNdAqKL1BL
AwQUAAIACAABYZtMkkuIOecAAAA0CQAAOQAcAGZhc3QvZnJhbWVzL3NhbmRib3hlZC1pZnJhbWUt
Y2xvc2UtdG9wLW5vY2xvc2Utc3RkZXJyLnR4dFVUCQADEXXjWv1m41p1eAsAAQT1AQAABBQAAADt
lOFKw0AMx7/7FHkAGe0UlSJCPeqUgYW2UGFIudbIwm6XksvqfHunPoKITO5bIIHwS/j/8lFgfgnp
PEuusiQFaLFfkjYYtNp5j7I6P7tI02e4LkRYbjIwC8Neca816h05Z9ixtKTrryID8pN19ALD9xQk
+2QGD6/wzjt4s15BGQIi6Bqht8NGxQ54CqNDG/DQ0cOGzpSPTfHUdPV92Xa3uVk2VW4KQD+RsN+i
V+tgskK2dzg7yX9EUavwBo+cY4FqeDtyIMVyRLFK7I/xG/+A4jMWFQ4a4v3/iiKaKZopJiOa6Tco
PgBQSwMEFAACAAgAAWGbTJJLiDnnAAAANAkAADEAHABmYXN0L2ZyYW1lcy9zYW5kYm94ZWQtaWZy
YW1lLWNsb3NlLXRvcC1zdGRlcnIudHh0VVQJAAMSdeNa/WbjWnV4CwABBPUBAAAEFAAAAO2U4UrD
QAzHv/sUeQAZ7RSVIkI96pSBhbZQYUi51sjCbpeSy+p8e6c+gohM7lsggfBL+P/yUWB+Cek8S66y
JAVosV+SNhi02nmPsjo/u0jTZ7guRFhuMjALw15xrzXqHTln2LG0pOuvIgPyk3X0AsP3FCT7ZAYP
r/DOO3izXkEZAiLoGqG3w0bFDngKo0Mb8NDRw4bOlI9N8dR09X3Zdre5WTZVbgpAP5Gw36JX62Cy
QrZ3ODvJf0RRq/AGj5xjgWp4O3IgxXJEsUrsj/Eb/4DiMxYVDhri/f+KIpopmikmI5rpNyg+AFBL
AwQUAAIACAACYZtMn6REimwBAAAIXAAAPQAcAGZhc3QvZnJhbWVzL3NhbmRib3hlZC1pZnJhbWUt
bmF2aWdhdGlvbi13aW5kb3dvcGVuLXN0ZGVyci50eHRVVAkAAxN141r/ZuNadXgLAAEE9QEAAAQU
AAAA7dTRSgJBFIfx+57iPEDIqlGxRGCLWQgJumAQIeN2wsF1Zpk9mr19Vo/QRRnfnbDCcv7L9xs0
SXoX0u3l2WWe9UXmuhx7K7W16TYETU9n/fNu91muhinFdJ1LMSpiMN3bTO3W13UR65jm3lZfP3Lx
Yedq/yLV978k22cduX+V97iVNxdMLEqrKrZSWbpqbclVeipNra7VwxM7vGFRTB7K4WO5mN1N5oub
QTEup4NiKBp2PsWw0WCulp1L3i1r7ZwMfnTFzFJc65HfMVIr4qaJrTedNJqc+RiO8Wv8gys+s5hq
ZS37/9YVyIRMlIFMyIRMyIRM7I9MyEQZyIRMyIRMyMT+yIRMlIFMyIRMyIRM7I9MyIRMyIRMyIRM
lIFMyIRMyIRM7I9MyEQZyIRMyIRMyMT+yIRMlIFMyIRMyIRM7I9MyEQZyIRMyIRMyIRMyIRMyIRM
7I9MyEQZyIRMyIRMyMT+yIRMlIFMf2H/D1BLAwQKAAAAAAD4WJtMAAAAAAAAAAAAAAAACwAcAGZh
c3QvaGlkcGkvVVQJAAPzZuNavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAD7YJtMm7t/gPoA
AABoEgAALQAcAGZhc3QvaGlkcGkvdmlkZW8tY29udHJvbHMtaW4taGlkcGktc3RkZXJyLnR4dFVU
CQADCXXjWvNm41p1eAsAAQT1AQAABBQAAADt1N1Kw0AQBeB7n2IeQErsD4EgQlzSVgoGkkAEkbCJ
I1263QmTaaxvb9VH8KK0zN3CLgxnlvOlPcM0hrtpEsXJYgZQY7txUuEgxSEE5Nf5bBHP3+A+YyZ+
SMCsDAXBo5QoS+e9IU9cO9n+HhJwYbTevUP39wqiYzSBpw/4ogN82iAgBAMiyBahtd1O2HZ4C71H
O+DpRk4TGpM/V9lL1ZTrvG4eU7OpitRkgGF0TGGPQayH0bKzrcfJTfqvFKUw7fDCc6xQDO17Gpxg
3iNbcRQu8TeuIMVPLQrsZND9nyuFyqQyaTNUJpVJZVKZVCbdv8qkMmkzVKbzpPgGUEsDBAoAAAAA
APdYm0wAAAAAAAAAAAAAAAANABwAZmFzdC9oaXN0b3J5L1VUCQAD8mbjWr5341p1eAsAAQT1AQAA
BBQAAABQSwMEFAACAAgA+1ubTAO4Cu/NAAAATQEAADUAHABmYXN0L2hpc3RvcnkvZ28tYmFjay10
by1pZnJhbWUtd2l0aC1wbHVnaW4tc3RkZXJyLnR4dFVUCQADmWzjWu9m41p1eAsAAQT1AQAABBQA
AACdj8FKw0AQhu99inmBrpnNRpuFgiTxJIi0Bw8iMkmmdXG7EzYb+/pNCnoQT17n//m/+XSGm3Vm
1voOEG2OtkClTQmdnBQNg2f1wu2jS+rZT0cX1K1RDX+xl+HEIb3mORYbi6U2WL7BE6ezxM99kkhH
bir7LgOHptox9bWEwF1yEkYLB3Kee0gCSwHinM/E78Jybyq4h5uaug9WfasAHmKUuEWjoKZp5O0U
qPX8M9FTopZGhsO8vNJ/WRXZ/6yuTywKFn5BuyW5EkdwAVYXUEsDBBQAAgAIAPlgm0xVaFxL5wAA
ADQJAAAyABwAZmFzdC9oaXN0b3J5L2hpc3Rvcnktc3ViZnJhbWUtd2l0aC1uYW1lLXN0ZGVyci50
eHRVVAkAAwV141rvZuNadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABl1bgyLCPWoUwYW2kKF
ISWtkR27XUouq/PtnfoIIjK5b4EEwi/h/8sGgekCLqZpskhnVwANdSurNQUt996TrGeX83nyDNe5
CMtNCmZp2CsdtCK9s84ZdiyN1c1XkYL1Izr7Av33FCSHZAIPr/DOe3hDr6AMgQh0Q9Bhv1XBns5h
cISBjh09bmhN8VjnT3Vb3RdNe5uZVV1mJgfyoxX2O/KKDkYUi52jyVn2I4pKhbd04hxLUsO7gYNV
KgYSVMv+FL/xDyg+Y1FSryHe/68oopmimWIyopl+g+IDUEsDBBQAAgAIAPlgm0xVaFxL5wAAADQJ
AAAmABwAZmFzdC9oaXN0b3J5L2hpc3RvcnlfcmVsb2FkLXN0ZGVyci50eHRVVAkAAwV141rwZuNa
dXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABl1bgyLCPWoUwYW2kKFISWtkR27XUouq/PtnfoI
IjK5b4EEwi/h/8sGgekCLqZpskhnVwANdSurNQUt996TrGeX83nyDNe5CMtNCmZp2CsdtCK9s84Z
diyN1c1XkYL1Izr7Av33FCSHZAIPr/DOe3hDr6AMgQh0Q9Bhv1XBns5hcISBjh09bmhN8VjnT3Vb
3RdNe5uZVV1mJgfyoxX2O/KKDkYUi52jyVn2I4pKhbd04hxLUsO7gYNVKgYSVMv+FL/xDyg+Y1FS
ryHe/68oopmimWIyopl+g+IDUEsDBBQAAgAIAPlgm0xVaFxL5wAAADQJAAAtABwAZmFzdC9oaXN0
b3J5L2xvY2F0aW9uLXJlcGxhY2UtaGFzaC1zdGRlcnIudHh0VVQJAAMGdeNa8GbjWnV4CwABBPUB
AAAEFAAAAO2U4UrDQAzHv/sUeQAZdW4Miwj1qFMGFtpChSElrZEdu11KLqvz7Z36CCIyuW+BBMIv
4f/LBoHpAi6mabJIZ1cADXUrqzUFLffek6xnl/N58gzXuQjLTQpmadgrHbQivbPOGXYsjdXNV5GC
9SM6+wL99xQkh2QCD6/wznt4Q6+gDIEIdEPQYb9VwZ7OYXCEgY4dPW5oTfFY5091W90XTXubmVVd
ZiYH8qMV9jvyig5GFIudo8lZ9iOKSoW3dOIcS1LDu4GDVSoGElTL/hS/8Q8oPmNRUq8h3v+vKKKZ
opliMqKZfoPiA1BLAwQUAAIACAD5YJtMT/XdPecAAAA0CQAANAAcAGZhc3QvaGlzdG9yeS9wYWdl
LWNhY2hlLWFmdGVyLXdpbmRvdy1vcGVuLXN0ZGVyci50eHRVVAkAAwZ141rwZuNadXgLAAEE9QEA
AAQUAAAA7ZThSsNADMe/+xR5ABnnZhkUEbqjThms0BYqyCjXGtmx26Xksm6+vVMfQUQm9y2QQPgl
/H/ZwDCdw800VfM0UQANdisrNQYpD94jv9zOkkRt4C5nJr5PQS81ecGTVCgP1jlNjrixsv0qUrB+
NM6+Qv89BeqkJvD0Bu90gKPxAkIQEEG2CJ3pd8Kmx2sYHJqA546cN7S6WNf5c91Wj0XTLjK9qstM
54B+tEx+j16Mg9GwNZ3DyVX2I4pKmHZ44RxLFE37gYIVLAZkI5b8JX7jH1B8xqLEXkK8/19RRDNF
M8VkRDP9BsUHUEsDBBQAAgAIAPlgm0xP9d095wAAADQJAAA4ABwAZmFzdC9oaXN0b3J5L3BhZ2Ut
Y2FjaGUtYmFjay1uYXZpZ2F0aW9uLWNyYXNoLXN0ZGVyci50eHRVVAkAAwZ141rwZuNadXgLAAEE
9QEAAAQUAAAA7ZThSsNADMe/+xR5ABnnZhkUEbqjThms0BYqyCjXGtmx26Xksm6+vVMfQUQm9y2Q
QPgl/H/ZwDCdw800VfM0UQANdisrNQYpD94jv9zOkkRt4C5nJr5PQS81ecGTVCgP1jlNjrixsv0q
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
JxekYXCMb9zubcRnN52tx63Ghq/sZLiwj+9aq4fEZKrY5tkRDhy/JXy9Rgl05qYyHzKwb6oXpr4W
77mLVvxo4ETWcQ9RYAlAmP2Z+BtY9KaCR9jU1H0y9i0CPIUgoVQaoaZp5HLy1Dr+q+gpUksjw2lu
XqX3fHUbsVww8A/aLc6NOIL1sPoBUEsDBBQAAgAIAAdhm0whj704MgAAADMAAAAsABwAZmFzdC9p
bWFnZXMvcGRmLWFzLWltYWdlLWNyb3AtYm94LXN0ZGVyci50eHRVVAkAAx1141oIZ+NadXgLAAEE
9QEAAAQUAAAAc8tJLEl1SU3OT0m1UkgB0Zl56QqpRUX5RVYKmXnJ+UVFqcklCimJJYkKyRmpydl6
XABQSwMECgAAAAAA+libTAAAAAAAAAAAAAAAAAwAHABmYXN0L2xheWVycy9VVAkAA/hm41q+d+Na
dXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAPlgm0ycEyweygAAAE0BAAAtABwAZmFzdC9sYXllcnMv
Y2xpcC1yZWN0cy10cmFuc2Zvcm1lZC1zdGRlcnIudHh0VVQJAAMGdeNa8GbjWnV4CwABBPUBAAAE
FAAAAK2PwU7DMBBE7/2K/YEuseM0YKlSlYQTEkLtgQNCaJNsW6uuN3Ic+H2SSnDgzHVmNG9GZ+p+
nZm1LkFpm5W2yDAvH6CTK9IweMZXbp9cwhc/nVzAjcGGP9nLcOWQ3oxRRWFztclL/Q7PnL4kXg5J
Ip24qeyHDByaas/U1xICd8lJGC0cyXnuIQksAYizPxN/AoveVLCDu5q6M2PfIsBjjBK3yiDUNI28
nQK1nn8rekrU0shwnJtX+j9f3UYsFyz8gXaLcyOO4AKsvgFQSwMEFAACAAgA/WCbTPanqzn9AAAA
zg0AACIAHABmYXN0L2xheWVycy92aWRlby1sYXllci1zdGRlcnIudHh0VVQJAAMNdeNa92bjWnV4
CwABBPUBAAAEFAAAAO2U7UrDUAyG/3sVuQAZdR8eKSJ0hzplYKEtdCBSTmtkh52dlDSr8+6degki
2tp/gQTCk/A+UcMwVXAxDQMVLi4BCqzWVnJsJT14j/w4ny3mV09wHTMT34SgV5q84FEylFvrnCZH
XFjZfhYhWN8ZZ5+h/pqC4BhM4P4F3ugAr8YLCEGLCLJFqEy9EzY1nkPj0LR46shpQ6mThzze5GV2
lxTlMtLrPI10DOg7y+T36MU46AxbUzmcnEXfosiEaYc951ihaNo31FrBpEE2Ysn38RsDoPiIRYq1
tOP9f4tiNNNopjEZo5l+nkINwkxqIGZSgzCT+n/J+FNm6uv93wFQSwMEFAACAAgA/WCbTA8TRTEH
AQAAaBIAADcAHABmYXN0L2xheWVycy92aXNpYmxlLWxheWVyLXdpdGgtaGlkZGVuLXBhcmVudC1z
dGRlcnIudHh0VVQJAAMOdeNa+GbjWnV4CwABBPUBAAAEFAAAAO3U4UrDMBAH8O8+xT2AjDo3GooI
NdQpAwtroYJISevJwrJcud7qfHunPoKKruZbIIHwv+P/SzuGaQxn0ySKk3kMUGGztFJiL6ud98gP
s/P5TD3CRcZMfJmAXmjygnspUK6tc5occWVl/XFIwPrBOPsE7ecriPbRBG6f4ZV28GK8gBD0iCBr
hMa0G2HT4il0Dk2Phxs5/FDr/K7M7su6uMmr+irVy3KV6gzQD5bJb9GLcTAYtqZxODlJv5SiEKYN
HnmOBYqmbUe9Fcw7ZCOW/DFuYwQp3muxwlb6MP/fShFkCjKFZgSZfj6FGoVMaiQyqVHIpP5fM/6U
TCrIFGQKMoVmBJm+KcUbUEsDBAoAAAAAAABZm0wAAAAAAAAAAAAAAAAMABwAZmFzdC9sb2FkZXIv
VVQJAAP/ZuNavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAD6YJtMCC+oqucAAAA0CQAAOgAc
AGZhc3QvbG9hZGVyL2NhbmNlbC1sb2FkLWR1cmluZy1wb3J0LWJsb2NrLXRpbWVyLXN0ZGVyci50
eHRVVAkAAwd141ryZuNadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABnd3BwUEepRpwwstIUK
IiWtkR27XUouq/PtnfoIIjK5b4EEwi/h/8sGgdkSprM0WaaLKUBD3dpqTUHLvfckT/OLxfzyGa5y
EZbrFMzKsFc6aEV6a50z7Fgaq5uvIgXrR3T2BfrvKUgOyQTuX+Gd9/CGXkEZAhHohqDDfquCPZ3D
4AgDHTt63NCa4qHOH+u2uiua9iYz67rMTA7kRyvsd+QVHYwoFjtHk7PsRxSVCm/pxDlWpIZ3Awer
VAwkqJb9KX7jH1B8xqKkXkO8/19RRDNFM8VkRDP9BsUHUEsDBBQAAgAIAPpgm0zbCNNCOwAAAD8A
AABSABwAZmFzdC9sb2FkZXIvZGlzcGxheS1pbWFnZS11bnNldC1jYW4tYmxvY2staW1hZ2UtYW5k
LWNhbi1yZWxvYWQtaW4tcGxhY2Utc3RkZXJyLnR4dFVUCQADB3XjWvJm41p1eAsAAQT1AQAABBQA
AABzLClJzS0oUSjJV0jNKyxNLU1VSFQozy/KVsgESiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tT
U/S4AFBLAwQUAAIACAD7YJtMR9TP5PoAAABoEgAAKgAcAGZhc3QvbG9hZGVyL2ltYWdlLWluLXBh
Z2UtY2FjaGUtc3RkZXJyLnR4dFVUCQADCXXjWvVm41p1eAsAAQT1AQAABBQAAADt1N1Kw0AQBeB7
n2IeQErsj4UgQlxilYKBJBBBJGziSJdud8LsNNa3t+ojeFEqc7ewC8OZ5XzZwDBdwtU0TZbpYgbQ
YLd2UmOUch8C8st8tphfv8JNzkx8m4JZGQqCB6lQ7p33hjxx42Tzc0jBhdF69wb97ytIDskEHt/h
k/bwYYOAEEREkA1CZ/utsO3xEgaPNuLxRo4TWlM81flz3VYPRdPeZWZdl5nJAcPomMIOg1gPo2Vn
O4+Ti+xPKSph2uKZ51ihGNoNFJ1gMSBbcRTO8Tf+QYrvWpTYS9T9nyqFyqQyaTNUJpVJZVKZVCbd
v8qkMmkzVKbTpPgCUEsDBBQAAgAIAPtgm0zbCNNCOwAAAD8AAABTABwAZmFzdC9sb2FkZXIvaW1h
Z2VzLWVuYWJsZWQtdW5zZXQtY2FuLWJsb2NrLWltYWdlLWFuZC1jYW4tcmVsb2FkLWluLXBsYWNl
LXN0ZGVyci50eHRVVAkAAwp141r1ZuNadXgLAAEE9QEAAAQUAAAAcywpSc0tKFEoyVdIzSssTS1N
VUhUKM8vylbIBEoolGdk5qQqQMQzixWSUjPz0hUKivKTU4uLU1P0uABQSwMEFAACAAgA/FibTIWE
SuPIAAAASwEAACsAHABmYXN0L2xvYWRlci9sb2NhbC1DU1MtZnJvbS1sb2NhbC1zdGRlcnIudHh0
VVQJAAP7ZuNa+2bjWnV4CwABBPUBAAAEFAAAAK2PwU7DMBBE7/2K/YEutpPWYKlSlaSnSgjBgQNC
aJNsi4XrjRwHfp+kEhw4c50ZzZsxSt+uVbk2FrR2yrqNQl1soZML0jAExmdujz7jQ5jOPuK2xIY/
Ochw4ZhfzMaaO2cLq4pXuOf8JenjKUuiMzeVe5OBY1M9MvW1xMhd9hJHByfygXvIAksA0uzPwJ/A
ojcV7OGmpu6dsW8R4JCSpJ0uEWqaRt5NkdrAvxU9ZWppZDjNzSvzj6euG5YHDv4wu8W5AkfwEVbf
UEsDBBQAAgAIAAJhm0yFB7S16AAAADQJAAAhABwAZmFzdC9sb2FkZXIvcGluZy1lcnJvci1zdGRl
cnIudHh0VVQJAAMTdeNa/mbjWnV4CwABBPUBAAAEFAAAAO2U7UrDUAyG/3sVuQAZdZsfFBHqoU4Z
WGgLHYiU0xrZYWdJycnqvHunXoKITM6/QALhSXifbBCYXsLZNE2u0mQG0GC3dFpj0HJHhPI0n53P
L57hOhdhuUnBLAyT4l4r1DvnvWHP0jhdfxUpOBqtdy/Qf09Bsk8m8PAK77yDN0sKyhAQQdcIne03
KrbHUxg82oCHjh42tKZ4rPNV3Vb3RdPeZmZZl5nJAWl0wrRFUuthtOJs53Fykv2IolLhDR45xwLV
8Hbg4BSLAcWqYzrGb/wDis9YlNhriPf/K4popmimmIxopt+g+ABQSwMEFAACAAgAAmGbTNsI00I7
AAAAPwAAAC0AHABmYXN0L2xvYWRlci9yZWxvYWQtcG9saWN5LWRlbGVnYXRlLXN0ZGVyci50eHRV
VAkAAxR141r/ZuNadXgLAAEE9QEAAAQUAAAAcywpSc0tKFEoyVdIzSssTS1NVUhUKM8vylbIBEoo
lGdk5qQqQMQzixWSUjPz0hUKivKTU4uLU1P0uABQSwMEFAACAAgAA2GbTDX5xnHnAAAANAkAAC4A
HABmYXN0L2xvYWRlci9yZWxvYWQtemVyby1ieXRlLXBsdWdpbi1zdGRlcnIudHh0VVQJAAMVdeNa
/2bjWnV4CwABBPUBAAAEFAAAAO2U7UrDUAyG/3sVuQAZddYPigj1UKcMLLSFCiLltEZ22FlScrI6
796plyAik/MvkEB4Et4nHwXmF3Ayz5LLLEkBWuyXThsMWm2JUJ7S07P0/BmuChGW6wzMwjAp7rRG
vXXeG/YsrdPVV5GBo8l69wLD9xQku2QG96/wzlt4s6SgDAERdIXQ22GtYgc8htGjDbjv6H5DZ8qH
pnhsuvqubLub3CybKjcFIE1OmDZIaj1MVpztPc6O8h9R1Cq8xgPnWKAa3owcnGI5olh1TIf4jX9A
8RmLCgcN8f5/RRHNFM0UkxHN9BsUH1BLAwQKAAAAAAD5WJtMAAAAAAAAAAAAAAAAGQAcAGZhc3Qv
bG9hZGVyL3N0YXRlb2JqZWN0cy9VVAkAA/Vm41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAI
APtgm0wvDDAI/AAAAM4NAABZABwAZmFzdC9sb2FkZXIvc3RhdGVvYmplY3RzL2RvY3VtZW50LWRl
c3Ryb3llZC1uYXZpZ2F0ZS1iYWNrLXdpdGgtZnJhZ21lbnQtc2Nyb2xsLXN0ZGVyci50eHRVVAkA
Awp141rzZuNadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABl1u1EoItSjmzKw0BYqiJRrzdix
26WkWZ1v79RHENHWfgskEH4J/1/cMsxDuJpHQRgtFwAl1hsrBXaSHb1HflKLZaie4TphJr6JQK81
ecGT5Cgr65wmR1xa2X0WEVjfG2dfoPmaguAUzOB+C290hFfjBYSgQwTZIdSm2QubBi+hdWg6PHfk
vKHS6UORPBZVfpeW1W2sN0UW6wTQ95bJH9CLcdAbtqZ2OLuIv0WRC9MeB86xRtF0aKmzgmmLbMSS
H+I3RkDxEYsMG+mm+/8WxWSmyUxTMiYz/TyFGoWZ1EjMpEZhJvX/kvGnzDTU+78DUEsDBBQAAgAI
APtgm0z37zrH6AAAADQJAABMABwAZmFzdC9sb2FkZXIvc3RhdGVvYmplY3RzL25vLXBvcHN0YXRl
LXdoZW4tYmFjay10by1zdGF0ZWxlc3MtZW50cnktc3RkZXJyLnR4dFVUCQADCnXjWvRm41p1eAsA
AQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGXV2FIoI9eimDFZoCxVEyrVm7NjtUnJZN9/ebT6CiEzu
WyCB8Ev4/7KBYZrA3TSNknQWAzTYLY3U6KXcO4f8Ft/PkvgdHnJm4scU1EKREzxKhTI31iqyxI2R
zaVIwbhRW/MB/fcURMdoAi9r+KQ9HLQTEAKPCLJB6HS/FdY93sJgUXs8deS0oVXFqs5f67Z6Lpr2
KVPLusxUDuhGw+R26ERbGDUb3Vmc3GQ/oqiEaYtXzrFAUbQbyBvBYkDWYshd4zf+AcU5FiX24sP9
/4oimCmYKSQjmOk3KL4AUEsDBBQAAgAIAPtgm0z37zrH6AAAADQJAABcABwAZmFzdC9sb2FkZXIv
c3RhdGVvYmplY3RzL25vLXBvcHN0YXRlLXdoZW4tYmFjay10by1zdGF0ZWxlc3MtZW50cnktd2l0
aC1wYWdlLWNhY2hlLXN0ZGVyci50eHRVVAkAAwp141r0ZuNadXgLAAEE9QEAAAQUAAAA7ZThSsNA
DMe/+xR5ABl1dhSKCPXopgxWaAsVRMq1ZuzY7VJyWTff3m0+gohM7lsggfBL+P+ygWGawN00jZJ0
FgM02C2N1Oil3DuH/Bbfz5L4HR5yZuLHFNRCkRM8SoUyN9YqssSNkc2lSMG4UVvzAf33FETHaAIv
a/ikPRy0ExACjwiyQeh0vxXWPd7CYFF7PHXktKFVxarOX+u2ei6a9ilTy7rMVA7oRsPkduhEWxg1
G91ZnNxkP6KohGmLV86xQFG0G8gbwWJA1mLIXeM3/gHFORYl9uLD/f+KIpgpmCkkI5jpNyi+AFBL
AwQUAAIACAD8YJtMvHw6rugAAAA0CQAAQgAcAGZhc3QvbG9hZGVyL3N0YXRlb2JqZWN0cy9wb3Bz
dGF0ZS1maXJlcy13aXRoLXBhZ2UtY2FjaGUtc3RkZXJyLnR4dFVUCQADC3XjWvRm41p1eAsAAQT1
AQAABBQAAADtlOFKw0AMx7/7FHkAGXWuFIoI9eimDFZoCxVEyrVm7NjtUnJZN9/ebT6CiEzuWyCB
8Ev4/7KBYZrA3TSNkjSOARrslkZq9FLunUN+m93HyewdHnJm4scU1EKREzxKhTI31iqyxI2RzaVI
wbhRW/MB/fcURMdoAi9r+KQ9HLQTEAKPCLJB6HS/FdY93sJgUXs8deS0oVXFqs5f67Z6Lpr2KVPL
usxUDuhGw+R26ERbGDUb3Vmc3GQ/oqiEaYtXzrFAUbQbyBvBYkDWYshd4zf+AcU5FiX24sP9/4oi
mCmYKSQjmOk3KL4AUEsDBBQAAgAIAPxgm0xhyTsV6AAAADQJAAA9ABwAZmFzdC9sb2FkZXIvc3Rh
dGVvYmplY3RzL3B1c2hzdGF0ZS13aXRob3V0LWhpc3Rvcnktc3RkZXJyLnR4dFVUCQADDHXjWvVm
41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGXVuFooI9ahTBiu0hQpjlGuXsWO3S8ll3Xx7
pz6CiGzct0AC4Zfw/6U9wziGu3ESxcn0AaDGdm6kQi/FwTnk5eR+Gk9W8JgxEz8loGaKnOBJSpQX
Y60iS1wb2X4XCRg3aGvW0P1MQXSKRvC2gQ86wFE7ASHwiCBbhFZ3O2Hd4S30FrXHc0fOGxqVL6rs
vWrK17xunlM1r4pUZYBuMExuj060hUGz0a3F0U36K4pSmHZ44RwzFEX7nrwRzHtkLYbcJX7jCii+
YlFgJz7c/78ogpmCmUIygpn+guITUEsDBBQAAgAIAPxgm0xhyTsV6AAAADQJAAA6ABwAZmFzdC9s
b2FkZXIvc3RhdGVvYmplY3RzL3JlcGxhY2VzdGF0ZS1pbi1pZnJhbWUtc3RkZXJyLnR4dFVUCQAD
DHXjWvVm41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGXVuFooI9ahTBiu0hQpjlGuXsWO3
S8ll3Xx7pz6CiGzct0AC4Zfw/6U9wziGu3ESxcn0AaDGdm6kQi/FwTnk5eR+Gk9W8JgxEz8loGaK
nOBJSpQXY60iS1wb2X4XCRg3aGvW0P1MQXSKRvC2gQ86wFE7ASHwiCBbhFZ3O2Hd4S30FrXHc0fO
GxqVL6rsvWrK17xunlM1r4pUZYBuMExuj060hUGz0a3F0U36K4pSmHZ44RwzFEX7nrwRzHtkLYbc
JX7jCii+YlFgJz7c/78ogpmCmUIygpn+guITUEsDBAoAAAAAAPxYm0wAAAAAAAAAAAAAAAARABwA
ZmFzdC9tZWRpYXN0cmVhbS9VVAkAA/tm41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAABh
m0xg031SCAEAAGgSAABLABwAZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS12aWRlby1lbGVt
ZW50LXZpZGVvLXRyYWNrcy1kaXNhYmxlZC1zdGRlcnIudHh0VVQJAAMQdeNa+2bjWnV4CwABBPUB
AAAEFAAAAO3U4UrDMBAH8O8+xT2AjFqds0WEGuqUgYW2UEGkpPVkYVmuXG91vr1TH8GJruZbIIHw
v+P/SzqGcAYnYRzM4ukFQIXNwkiJveQb55Afz06n5+ETXKbMxFcxqLkiJ7iVAuXGWKvIEldGlp+H
GIwbtDXP0H69gmAbTODuBd5oA6/aCQhBjwiyRGh0uxLWLR5DZ1H3uLuR3Q+1yu7L9KGsi9usqq8T
tSjzRKWAbjBMbo1OtIVBs9GNxclR8q0UhTCt8MBzzFEUrTvqjWDWIWsx5A5xGyNI8VGLHFvp/fx/
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
b2xsaW5nL3J0bC1zY3JvbGxiYXJzLWFsdGVybmF0ZS1ib2R5LWRpci1hdHRyLWRvZXMtbm90LXVw
ZGF0ZS1zY3JvbGxiYXItcGxhY2VtZW50LXN0ZGVyci50eHRVVAkAAxp141oEZ+NadXgLAAEE9QEA
AAQUAAAA7dTdSsNAEAXge59iHkBKrPUviBCXWKVgIAlEEAmbONKl250wO4317a36CL0olblb2IXh
zHK+bGCYXsHZNE2u0+QGoMFu4aTGKOUmBOTX2fnF7PINbnNm4rsUzNxQENxKhfLgvDfkiRsny99D
Ci6M1rt36P9eQbJNJvD0AV+0gU8bBIQgIoIsETrbr4Rtj6cweLQRdzeym9Ca4rnOX+q2eiya9j4z
i7rMTA4YRscU1hjEehgtO9t5nJxke6WohGmFR55jjmJoPVB0gsWAbMVROMbf+AcpfmpRYi9R93+o
FCqTyqTNUJlUJpVJZVKZdP8qk8qkzVCZDpPiG1BLAwQUAAIACAAFYZtM1Fb4iPoAAABoEgAAOwAc
AGZhc3Qvc2Nyb2xsaW5nL3J0bC1zY3JvbGxiYXJzLWFuaW1hdGlvbi1wcm9wZXJ0eS1zdGRlcnIu
dHh0VVQJAAMadeNaBWfjWnV4CwABBPUBAAAEFAAAAO3U3UrDQBAF4HufYh5ASlrrD0GEuMQqBQNJ
IAWRsIkjXbrdCbPTWN/eqo/gRanM3cIuDGeW82UDw+waprM0uUmnCUCD3dJJjVHKXQjIL/OLy/nV
K9zmzMR3KZiFoSC4lwrlwXlvyBM3TtY/hxRcGK13b9D/voJkn0zg6R0+aQcfNggIQUQEWSN0tt8I
2x7PYfBoIx5u5DChNcVzna/qtnosmvY+M8u6zEwOGEbHFLYYxHoYLTvbeZycZX9KUQnTBk88xwLF
0Hag6ASLAdmKo3CKv/EPUnzXosReou7/WClUJpVJm6EyqUwqk8qkMun+VSaVSZuhMh0nxRdQSwME
FAACAAgABmGbTBtjYeIPAQAAAhcAAEAAHABmYXN0L3Njcm9sbGluZy9ydGwtc2Nyb2xsYmFycy1l
bGVtZW50RnJvbVBvaW50LXN0YXRpYy1zdGRlcnIudHh0VVQJAAMbdeNaBmfjWnV4CwABBPUBAAAE
FAAAAO3Ub0vDMBAG8Pd+ivsAMpo5/1BEqKFOGVhoCx2IlLSeLCxLyvVW57d36kdQ0HX3LpDA8Vx4
fklHML0ENY2jq1hFABU2C8sl9pxvvUd6mp2dzy6e4TolCnQTg57r4Bl3XCDfWed0cIEqy6uvQwzW
D8bZF2i/X0G0iybw8ArvYQtvxjNwgB4ReIXQmHbNZFo8hc6h6XF/w/sJtc4ey3RZ1sV9VtW3iV6U
eaJTQD9YCn6Dno2DwZA1jcPJSfKjFAVTWOOB55gj67DpQm8Zsw7JsA3+EH9jBCk+a5Fjy73s/69S
iEwikzRDZBKZRCaRSWQ6xv2rUcikRiKTGoVM6via8a9kUiKTyCQySTNEpl9K8QFQSwMECgAAAAAA
A1mbTAAAAAAAAAAAAAAAAAwAHABmYXN0L3NoYXBlcy9VVAkAAwZn41q+d+NadXgLAAEE9QEAAAQU
AAAAUEsDBAoAAAAAAAtZm0wAAAAAAAAAAAAAAAAhABwAZmFzdC9zaGFwZXMvc2hhcGUtb3V0c2lk
ZS1mbG9hdHMvVVQJAAMWZ+NavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAAGYZtMCDlI7PoA
AABoEgAAQwAcAGZhc3Qvc2hhcGVzL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUt
YW5pbWF0aW9uLXN0ZGVyci50eHRVVAkAAxt141oGZ+NadXgLAAEE9QEAAAQUAAAA7dRRSsNAEAbg
d08xB5CS1koliBCXWKVgIAlEKBI2caRLtzthdhrr7a16BB9KZd4WdmH4Z/m/bGCYLWA6S5ObdJoA
NNitnNQYpdyHgLyeX10v5q9wmzMT36VgloaC4EEqlAfnvSFP3DjZ/BxScGG03r1B//sKkkMygad3
+KQ9fNggIAQREWSD0Nl+K2x7vITBo414vJHjhNYUz3X+UrfVY9G095lZ1WVmcsAwOqawwyDWw2jZ
2c7j5CL7U4pKmLZ45jmWKIZ2A0UnWAzIVhyFc/yNf5DiuxYl9hJ1/6dKoTKpTNoMlUllUplUJpVJ
968yqUzaDJXpNCm+AFBLAwQUAAIACAAGYZtM11WuXAIBAAACFwAAUwAcAGZhc3Qvc2hhcGVzL3No
YXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtYmlnLWJveC1ib3JkZXItcmFkaXVzLTAw
MS1zdGRlcnIudHh0VVQJAAMcdeNaB2fjWnV4CwABBPUBAAAEFAAAAO3UUUrDQBAG4HdPMQeQktRK
JYgQl7RKwUASiFAkbOKULt3uhMk01ttb7RF8kMq8LezC8M/yf2nPMJ1DPE2iuySOAWpsV04qHKQ4
hIC8nt3czmdvcJ8xEz8kYJaGguBRSpSF896QJ66dbH8OCbgwWu/eoTu/gugYTeB5A590gA8bBIRg
QATZIrS22wnbDq+h92gHPN3IaUJj8pcqe62a8imvm8fUrKoiNRlgGB1T2GMQ62G07GzrcXKV/ipF
KUw7vPAcSxRD+54GJ5j3yFYchUv8jX+Q4rsWBXYy6P7/KoXKpDJpM1QmlUllUplUJt2/yqQyaTNU
JpVJZVKZVCbd/znFF1BLAwQUAAIACAANYZtMdtWyIvEAAADODQAAWQAcAGZhc3Qvc2hhcGVzL3No
YXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtc2hhcGUtaW1hZ2UtdGhyZXNob2xkLWFu
aW1hdGlvbi1zdGRlcnIudHh0VVQJAAMqdeNaFWfjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv+8p
8gBj1Lo5KSJ0R91kYKEtdCBSrl1kx26XksvqfHunPoIfZHrfAgmEX8L/l/YM8Ryu4iS6TeIbgBrb
tZEKvRRH55Cfp9ez+fQF7jJm4vsE1FKREzxJifJgrFVkiWsju68iAeMGbc0Wuu8piE7RBB5f4Z2O
8KadgBB4RJAdQqu7vbDucAy9Re3x3JHzhkblT1W2qZpyldfNIlXrqkhVBugGw+QO6ERbGDQb3Vqc
jNIfUZTCtMcL51iiKDr05I1g3iNrMeQu8Rt/gOIzFgV24sP9f4simCmYKSQjmCmYKZgpmCmY6X/c
/wNQSwMEFAACAAgADmGbTDuso4IHAQAAaBIAAEwAHABmYXN0L3NoYXBlcy9zaGFwZS1vdXRzaWRl
LWZsb2F0cy9zaGFwZS1vdXRzaWRlLXRleHQtb3ZlcmxhcC1mbG9hdC1zdGRlcnIudHh0VVQJAAMr
deNaFmfjWnV4CwABBPUBAAAEFAAAAO3U4UrDMBAH8O8+xT2AjFqnkSJCDXXKwEJb2ECkpPVkYVmu
XG91vr1TH0FFV/MtkED43/H/pR1DrOAkTqKLJD4HWGAzt1JhL8XWe+SH6emZmj7CZcZMfJWAnmny
gjspUW6sc5oc8cLK6uOQgPWDcfYJ2s9XEO2iCdw9wytt4cV4ASHoEUFWCI1p18KmxWPoHJoe9zey
/6HW+X2VLau6vM0X9XWq51WR6gzQD5bJb9CLcTAYtqZxODlKv5SiFKY1HniOGYqmTUe9Fcw7ZCOW
/CFuYwQp3mtRYCt9mP9vpQgyBZlCM4JMP59CjUImNRKZ1ChkUv+vGX9KJhVkCjIFmUIzgkzflOIN
UEsDBAoAAAAAAARZm0wAAAAAAAAAAAAAAAALABwAZmFzdC90YWJsZS9VVAkAAwdn41q+d+NadXgL
AAEE9QEAAAQUAAAAUEsDBAoAAAAAAARZm0wAAAAAAAAAAAAAAAAdABwAZmFzdC90YWJsZS9ib3Jk
ZXItY29sbGFwc2luZy9VVAkAAwdn41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAAZhm0y3
Txvs/QAAAM4NAAA0ABwAZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy8wMDEtdmVydGljYWwt
c3RkZXJyLnR4dFVUCQADHHXjWgdn41p1eAsAAQT1AQAABBQAAADtlO1Kw1AMhv97FbkAGe3xY1JE
6A51ysBCW6ggUk67yA47OylpVufdO/USRLS1/wIJhCfhfeKWQc0hVFFwFYUhQIn1ykqBnWR775Gf
zs8uLufPcJ0wE99EoJeavOBBcpRb65wmR1xa2XwWEVjfG2fX0HxNQXAIZnD/Am+0h1fjBYSgQwTZ
INSm2QqbBk+hdWg6PHbkuKHS6UORPBZVfpeW1SLWqyKLdQLoe8vkd+jFOOgNW1M7nJ3E36LIhWmL
A+dYomjatdRZwbRFNmLJD/EbI6D4iEWGjXTT/X+LYjLTZKYpGZOZfp5CjcJMaiRmUqMwk/p/yfhT
Zhrq/d8BUEsDBAoAAAAAACBZm0wAAAAAAAAAAAAAAAAKABwAZmFzdC90ZXh0L1VUCQADO2fjWr53
41p1eAsAAQT1AQAABBQAAABQSwMEFAACAAgACWGbTD5iDMP6AAAAaBIAADoAHABmYXN0L3RleHQv
Y29tYmluaW5nLWNoYXJhY3Rlci1zZXF1ZW5jZS12ZXJ0aWNhbC1zdGRlcnIudHh0VVQJAAMideNa
D2fjWnV4CwABBPUBAAAEFAAAAO3U3UrDQBAF4HufYh5ASlp/qkGEuMQqBQNJIIJI2MSRLt3uhNlp
rG9v1UfwolTmbmEXhjPL+bKBYTaH6SxNrtLpHKDBbumkxijlNgTkl/Ozi+vLV7jJmYlvUzALQ0Fw
JxXKvfPekCdunKx+Dim4MFrv3qD/fQXJLpnA4zt80hY+bBAQgogIskLobL8Wtj2ewuDRRtzfyH5C
a4qnOn+u2+qhaNq7zCzrMjM5YBgdU9hgEOthtOxs53Fykv0pRSVMazzyHAsUQ5uBohMsBmQrjsIx
/sY/SPFdixJ7ibr/Q6VQmVQmbYbKpDKpTCqTyqT7V5lUJm2GynSYFF9QSwMEFAACAAgAC2GbTJvR
5n8HAQAAaBIAADAAHABmYXN0L3RleHQvZGVzY2VudC1jbGlwLWluLXNjYWxlZC1wYWdlLXN0ZGVy
ci50eHRVVAkAAyZ141oTZ+NadXgLAAEE9QEAAAQUAAAA7dRvS8MwEAbw936K+wAyuvi/iFBDnTKw
0BYqiJS0niwsy5Xrrc5v79SP4ERX8y6QQHjueH5Jx6DOYKri6DxWU4AKm7mVEnvJ194jPx4fnVyc
PsFlykx8FYOeafKCGylQbqxzmhxxZWXxeYjB+sE4+wzt1yuINtEE7l7gjdbwaryAEPSIIAuExrRL
YdPiIXQOTY/bG9n+UOvsvkwfyrq4zar6OtHzMk90CugHy+RX6MU4GAxb0zicHCTfSlEI0xL3PMcM
RdOqo94KZh2yEUt+H7cxghQftcixlT7M/7dSBJmCTKEZQaafT6FGIZMaiUxqFDKp/9eMPyWTCjIF
mYJMoRlBph2leAdQSwMEFAACAAgADGGbTC67CP8HAQAAaBIAACoAHABmYXN0L3RleHQvZGlsYXRp
b24tc2F2ZS1yZXN0b3JlLXN0ZGVyci50eHRVVAkAAyd141oTZ+NadXgLAAEE9QEAAAQUAAAA7dRv
S8MwEAbw936K+wAyauPfIkINdcrAQVuoIFLSerKwLFeutzq/vVM/ghNdzbtAAuG54/mlHUN8Bkdx
Ep0ncQxQYTOzUmIv+dp75MdjdXJx+gSXGTPxVQJ6qskLbqRAubHOaXLElZXF5yEB6wfj7DO0X68g
2kQTuHuBN1rDq/ECQtAjgiwQGtMuhU2Lh9A5ND1ub2T7Q63n92X2UNbF7byqr1M9K/NUZ4B+sEx+
hV6Mg8GwNY3DyUH6rRSFMC1xz3NMUTStOuqt4LxDNmLJ7+M2RpDioxY5ttKH+f9WiiBTkCk0I8j0
8ynUKGRSI5FJjUIm9f+a8adkUkGmIFOQKTQjyLSjFO9QSwMECgAAAAAAB1mbTAAAAAAAAAAAAAAA
ABgAHABmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9VVAkAAw1n41q+d+NadXgLAAEE9QEAAAQUAAAA
UEsDBAoAAAAAAAlZm0wAAAAAAAAAAAAAAAAoABwAZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvc3lz
dGVtLWxhbmd1YWdlL1VUCQADEWfjWr5341p1eAsAAQT1AQAABBQAAABQSwMEFAACAAgACWGbTHqG
8d39AAAAzg0AAFIAHABmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9zeXN0ZW0tbGFuZ3VhZ2UvYXJh
YmljLWdseXBoLWNhY2hlLWZpbGwtY29tYmluZS1zdGRlcnIudHh0VVQJAAMideNaDWfjWnV4CwAB
BPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZ3dR1FBG6o04ZWGgLFUTKtYvs2O1Sclmdb+/URxDR1n4L
JBB+Cf9f3DLMQpjOomARTecAJdZrIwV6yQ7OIT9dXlwt5s9wnTAT30SgVoqc4FFylFtjrSJLXBrZ
fhYRGNdpazbQfE1BcAwmcP8Cb3SAV+0EhMAjgmwRat3shHWD59Ba1B5PHTltqFT6UCSPRZXfpWW1
jNW6yGKVALrOMLk9OtEWOs1G1xYnZ/G3KHJh2mHPOVYoivYteSOYtshaDLk+fmMAFB+xyLARP97/
tyhGM41mGpMxmunnKcJBmCkciJnCQZgp/H/J+FNm6uv93wFQSwMEFAACAAgACmGbTNr3dt/9AAAA
zg0AAEcAHABmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9zeXN0ZW0tbGFuZ3VhZ2UvZGVjbGFyYXRp
dmUtbGFuZ3VhZ2Utc3RkZXJyLnR4dFVUCQADI3XjWg1n41p1eAsAAQT1AQAABBQAAADtlO1Kw1AM
hv97FbkAGd38aosI9VCnDCy0hQoi5bRGdtjZSUmzOu/eqZcgoq3nXyCB8CS8T9IxLC5gvoiDMJ6H
ABU2KyMl9pLvnEN+PD05C8+f4DJlJr6KQS0VOcG9FCg3xlpFlrgysv4sYjBu0NY8Q/s1BcE+mMHd
C7zRDl61ExCCHhFkjdDodiOsWzyGzqLu8dCRw4ZaZfdl+lDWxW1W1deJWpV5olJANxgmt0Un2sKg
2ejG4uwo+RZFIUwbHDnHEkXRtqPeCGYdshZDbozfmADFRyxybKX39/8tCm8mbyafDG+mn6eIJmGm
aCJmiiZhpuj/JeNPmWms938HUEsDBBQAAgAIAAphm0zw/djR8QAAAM4NAAA9ABwAZmFzdC90ZXh0
L2ludGVybmF0aW9uYWwvc3lzdGVtLWxhbmd1YWdlL2hhbi1xdW90ZXMtc3RkZXJyLnR4dFVUCQAD
JHXjWg9n41p1eAsAAQT1AQAABBQAAADtlN9Kw1AMh+99ijyAjG7+m0WEeqhTBhbaQgWRclojO+ws
KTlZnW/v1EfwQqbnLpBA+BJ+XzYIzC5gOkuTeTq9BGiwWzqtMWi5JUJ5Oj05m58/w1UuwnKdglkY
JsWdVqi3znvDnqVxuvoqUnA0Wu9eoP+egmSXTOD+Fd55C2+WFJQhIIKuEDrbr1Vsj8cweLQB9x3d
b2hN8VDnj3Vb3RVNe5OZZV1mJgek0QnTBkmth9GKs53HyVH2I4pKhdd44BwLVMObgYNTLAYUq47p
EL/xByg+Y1FiryHe/7coopmimWIyopmimaKZopmimf7H/T8AUEsDBBQAAgAIAAthm0x953PB/AAA
AM4NAABQABwAZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvc3lzdGVtLWxhbmd1YWdlL2hpbmRpLXN5
c3RlbS1mb250LXB1bmN0dWF0aW9uLXN0ZGVyci50eHRVVAkAAyZ141oQZ+NadXgLAAEE9QEAAAQU
AAAA7ZTtSsNQDIb/exW5ABlt/RpFhO5QpwwstIUKIuW0i+yws5OSZnXevVMvQURbz79AAuFJeJ+k
Y4iuIIziYB5HAUCFzcpIib3ke+eQn87PLuaXz3CdMhPfxKCWipzgQQqUW2OtIktcGdl8FjEYN2hr
1tB+TUFwCGZw/wJvtIdX7QSEoEcE2SA0ut0K6xZPobOoezx25LihVtlDmT6WdXGXVfUiUasyT1QK
6AbD5HboRFsYNBvdWJydJN+iKIRpiyPnWKIo2nXUG8GsQ9ZiyI3xGxOg+IhFjq30/v6/ReHN5M3k
k+HN9PMU4STMFE7ETOEkzBT+v2T8KTON9f7vUEsDBBQAAgAIAAxhm0yhTykWCAEAAGgSAABKABwA
ZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvc3lzdGVtLWxhbmd1YWdlL3N5c3RlbS1mb250LXB1bmN0
dWF0aW9uLXN0ZGVyci50eHRVVAkAAyd141oRZ+NadXgLAAEE9QEAAAQUAAAA7dRvS8MwEAbw936K
+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
ci50eHRVVAkAAy1141oZZ+NadXgLAAEE9QEAAAQUAAAA7dTdSsNAEAXge59iHkBKTMWfIEJcYpWC
gSQQQSRs4kiXbnfC7DTWt7fqI3hRKnO3sAvDmeV8+ciQXsJZmiVXWXoN0GK/dNJglGobAvLL+fwi
mb/CTcFMfJuBWRgKgjupUe6d94Y8cetk9XPIwIXJevcGw+8rSHbJDB7f4ZO28GGDgBBERJAVQm+H
tbAd8BRGjzbi/kb2EzpTPjXFc9PVD2Xb3eVm2VS5KQDD5JjCBoNYD5NlZ3uPs5P8TylqYVrjkedY
oBjajBSdYDkiW3EUjvE3/kGK71pUOEjU/R8qhcqkMmkzVCaVSWVSmVQm3b/KpDJpM1Smw6T4AlBL
AwQUAAIACAAPYZtM1UGicecAAAA0CQAARwAcAGh0dHAvdGVzdHMvY2FjaGUvaGlzdG9yeS1uYXZp
Z2F0aW9uLW5vLXJlc291cmNlLXJldmFsaWRhdGlvbi1zdGRlcnIudHh0VVQJAAMudeNaGWfjWnV4
CwABBPUBAAAEFAAAAO2U7UrDUAyG/3sVuQAZtRM/igj1UKcMLLSFCiLltEYWdnZScrI6796plyAi
k/MvkEB4Et4nHwXSczhJs+QiSy8BWuyXpA0Grbbeozydzs+S+TNcFSIs1xmYhWGvuNMa9ZacM+xY
WtLVV5EB+ck6eoHhewqSXTKD+1d45y28Wa+gDAERdIXQ22GtYgc8htGhDbjv6H5DZ8qHpnhsuvqu
bLub3CybKjcFoJ9I2G/Qq3UwWSHbO5wd5T+iqFV4jQfOsUA1vBk5kGI5olgl9of4jX9A8RmLCgcN
8f5/RRHNFM0UkxHN9BsUH1BLAwQUAAIACAAPYZtMz9wjB+cAAAA0CQAAQQAcAGh0dHAvdGVzdHMv
Y2FjaGUvaGlzdG9yeS1vbmx5LWNhY2hlZC1zdWJyZXNvdXJjZS1sb2Fkcy1zdGRlcnIudHh0VVQJ
AAMudeNaGWfjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZ5ypOigj1qFMGK7SFCkPKtUZ2
7HYpuazOt3fqI4whk/sWSCD8Ev6/bGCYzuBqmqrbNFEADXYLKzUGKXfeI6+ukxuVvMJdzkx8n4Ke
a/KCe6lQHq1zmhxxY2X9U6Rg/WicfYP+dwrUXk3g+R0+aQcfxgsIQUAEWSN0pt8Imx4vYXBoAh46
ctjQ6mJZ5y91Wz0VTfuQ6UVdZjoH9KNl8lv0YhyMhq3pHE4usqMoKmHa4JlzzFE0bQcKVrAYkI1Y
8uf4jX9A8R2LEnsJ8f5/RRHNFM0UkxHNdAqKL1BLAwQUAAIACAATYZtMfyJRw+cAAAA0CQAALwAc
AGh0dHAvdGVzdHMvY2FjaGUvcmVsb2FkLWV4cGlyZWQtb25seS1zdGRlcnIudHh0VVQJAAM1deNa
HmfjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZdRUnRYR61CkDC22hgki51sjCbpeSy+p8
e6c+gohM7lsggfBL+P/yUWC+gLN5llxm6QKgxX5F2mDQauc9ytN5epGkz3BViLBcZ2CWhr3iXmvU
W3LOsGNpSddfRQbkJ+voBYbvKUj2yQzuX+Gdd/BmvYIyBETQNUJvh42KHfAURoc24KGjhw2dKR+a
4rHp6ruy7W5ys2qq3BSAfiJhv0Wv1sFkhWzvcHaS/4iiVuENHjnHEtXwduRAiuWIYpXYH+M3/gHF
ZywqHDTE+/8VRTRTNFNMRjTTb1B8AFBLAwQKAAAAAAAVXJtMAAAAAAAAAAAAAAAAHQAcAGh0dHAv
dGVzdHMvY29udGVudGV4dGVuc2lvbnMvVVQJAAPJbONavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQU
AAIACAAVXJtMAwcITMkAAABNAQAAOwAcAGh0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvcGx1
Z2luLWRvZXNudC1jcmFzaC1zdGRlcnIudHh0VVQJAAPJbONayWzjWnV4CwABBPUBAAAEFAAAAK2P
wWrDMBBE7/mK/YFsLdlUiSAQbPdUKCU99FBCWNubVFTRGllOfj92ID303OvMMG9GZ2q1zIqlNqCU
zbUtMlznBlo5I/W9Z/zk5tUlfPfjyQV8LrDmC3vpzxzSV54brazOlFmbPbxxukr8+UgS6cR1aQ/S
c6jLHVNXSQjcJidhsHAk57mDJDAHIE7+RHwEZr0uYQtPFbXfjF2DAC8xStyoAqGiceDNGKjx/FvR
UaKGBobj1LzQ//nqPmK+YOEPtJ2dO3EAF2BxA1BLAwQUAAIACAASYZtMXGrF0foAAABoEgAALgAc
AGh0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvcG9wdXBzLXN0ZGVyci50eHRVVAkAAzN141oe
Z+NadXgLAAEE9QEAAAQUAAAA7dRRSsNAEAbgd08xB5AS01YliBCXWKVgIAmkIBI26UiXbnfCZBrr
7a16BB9KZd4WdmH4Z/m/tGeIb+AqTqLbZDoHqLFdOqlwkGIfAvLrbDq/jt/gLmMmvk/ALAwFwYOU
KI/Oe0OeuHay+Tkk4MJovVtD9/sKokM0ged3+KQ9fNggIAQDIsgGobXdVth2eAm9Rzvg8UaOExqT
v1TZqmrKp7xuHlKzrIrUZIBhdExhh0Gsh9Gys63HyUX6pxSlMG3xzHMsUAztehqcYN4jW3EUzvE3
/kGK71oU2Mmg+z9VCpVJZdJmqEwqk8qkMqlMun+VSWXSZqhMp0nxBVBLAwQKAAAAAAANWZtMAAAA
AAAAAAAAAAAADwAcAGh0dHAvdGVzdHMvZG9tL1VUCQADGWfjWr5341p1eAsAAQT1AQAABBQAAABQ
SwMEFAACAAgAD2GbTJLJmH7nAAAANAkAAEUAHABodHRwL3Rlc3RzL2RvbS93aW5kb3ctb3Blbi1h
Ym91dC1ibGFuay1hbmQtYWNjZXNzLWRvY3VtZW50LXN0ZGVyci50eHRVVAkAAy1141oYZ+NadXgL
AAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABm1OtQiQj3qlIGFtlBBpFxrZGG3S8lldb69Ux9BRCb3
LZBA+CX8f/kokJ7DSZolF1l6CdBivyRtMGi19R7l6ex0Pk+e4aoQYbnOwCwMe8Wd1qi35Jxhx9KS
rr6KDMhP1tELDN9TkOySGdy/wjtv4c16BWUIiKArhN4OaxU74DGMDm3AfUf3GzpTPjTFY9PVd2Xb
3eRm2VS5KQD9RMJ+g16tg8kK2d7h7Cj/EUWtwms8cI4FquHNyIEUyxHFKrE/xG/8A4rPWFQ4aIj3
/yuKaKZoppiMaKbfoPgAUEsDBBQAAgAIAA9hm0ySyZh+5wAAADQJAABPABwAaHR0cC90ZXN0cy9k
b20vd2luZG93LW9wZW4tYWJvdXQtdXBwZXJjYXNlLWJsYW5rLWFuZC1hY2Nlc3MtZG9jdW1lbnQt
c3RkZXJyLnR4dFVUCQADLnXjWhln41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGbU61CJC
PeqUgYW2UEGkXGtkYbdLyWV1vr1TH0FEJvctkED4Jfx/+SiQnsNJmiUXWXoJ0GK/JG0waLX1HuXp
7HQ+T57hqhBhuc7ALAx7xZ3WqLfknGHH0pKuvooMyE/W0QsM31OQ7JIZ3L/CO2/hzXoFZQiIoCuE
3g5rFTvgMYwObcB9R/cbOlM+NMVj09V3Zdvd5GbZVLkpAP1Ewn6DXq2DyQrZ3uHsKP8RRa3Cazxw
jgWq4c3IgRTLEcUqsT/Eb/wDis9YVDhoiPf/K4popmimmIxopt+g+ABQSwMEFAACAAgAD2GbTIhU
GQjoAAAANAkAAFoAHABodHRwL3Rlc3RzL2RvbS93aW5kb3ctb3Blbi1hYm91dC13ZWJraXQtb3Jn
LWFuZC1hY2Nlc3MtZG9jdW1lbnQtYXN5bmMtZGVsZWdhdGVzLXN0ZGVyci50eHRVVAkAAy5141oZ
Z+NadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABnn5lCKCPWo2xhYaAsVRMq1Rnbsdim5rM63
d7pHGGNM7lsggfBL+P/SnmF8BzfjRN0nEwVQY7u0UmGQYus98tvtZDpV7/CQMRM/JqBnmrzgTkqU
Z+ucJkdcW1n9FQlYPxhnP6A7TIHaqREsPuGbtvBlvIAQBESQFUJrurWw6fAaeocm4L4j+w2Nzl+q
7LVqynleN0+pXlZFqjNAP1gmv0EvxsFg2JrW4egqPYqiFKY1XjjHDEXTpqdgBfMe2Yglf4nf+AcU
v7EosJMQ738uimimaKaYjGimU1D8AFBLAwQUAAIACAAPYZtMiFQZCOgAAAA0CQAASgAcAGh0dHAv
dGVzdHMvZG9tL3dpbmRvdy1vcGVuLWFib3V0LXdlYmtpdC1vcmctYW5kLWFjY2Vzcy1kb2N1bWVu
dC1zdGRlcnIudHh0VVQJAAMudeNaGWfjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZ5+ZQ
igj1qNsYWGgLFUTKtUZ27HYpuazOt3e6RxhjTO5bIIHwS/j/0p5hfAc340TdJxMFUGO7tFJhkGLr
PfLb7WQ6Ve/wkDETPyagZ5q84E5KlGfrnCZHXFtZ/RUJWD8YZz+gO0yB2qkRLD7hm7bwZbyAEARE
kBVCa7q1sOnwGnqHJuC+I/sNjc5fquy1asp5XjdPqV5WRaozQD9YJr9BL8bBYNia1uHoKj2KohSm
NV44xwxF06anYAXzHtmIJX+J3/gHFL+xKLCTEO9/LopopmimmIxoplNQ/ABQSwMECgAAAAAADFmb
TAAAAAAAAAAAAAAAABQAHABodHRwL3Rlc3RzL2Rvd25sb2FkL1VUCQADGGfjWr5341p1eAsAAQT1
AQAABBQAAABQSwMEFAACAAgADmGbTNdX/ZjoAAAANAkAADkAHABodHRwL3Rlc3RzL2Rvd25sb2Fk
L2FuY2hvci1sb2FkLWFmdGVyLWRvd25sb2FkLXN0ZGVyci50eHRVVAkAAyx141oYZ+NadXgLAAEE
9QEAAAQUAAAA7ZThSsNADMe/7ynyAGPUqmwWEbqjbmNgoS10IFKuXWTHbpeSy+p8e6c+gohM7lsg
gfBL+P/SniGewlWcRLMkngHU2K6NVOilODqH/HxzfTu9e4H7jJn4IQG1UOQET1KiPBprFVni2sju
q0jAuEFbs4XuewqiUzSB1Su80xHetBMQAo8IskNodbcX1h2OobeoPZ47ct7QqPypyjZVUy7zupmn
al0VqcoA3WCY3AGdaAuDZqNbi5NR+iOKUpj2eOEcCxRFh568Ecx7ZC2G3CV+4x9QfMaiwE58uP9f
UQQzBTOFZAQz/QbFB1BLAwQKAAAAAAAXWZtMAAAAAAAAAAAAAAAAEQAcAGh0dHAvdGVzdHMvbWVk
aWEvVVQJAAMuZ+NavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAAUYZtMAAAAAAAAAAAAAAAA
FQAcAGh0dHAvdGVzdHMvbWVkaWEvaGxzL1VUCQADOHXjWr5341p1eAsAAQT1AQAABBQAAABQSwME
FAACAAgAFGGbTPebTQHxAAAAzg0AADoAHABodHRwL3Rlc3RzL21lZGlhL2hscy92aWRlby1jb250
cm9scy1saXZlLXN0cmVhbS1zdGRlcnIudHh0VVQJAAM3deNaJGfjWnV4CwABBPUBAAAEFAAAAO2U
4UrDQAzHv/sUeQAZdZusFBHq0c0xsNAWKoxRrjVjx26XksvqfHunPoIfZO6+BRIIv4T/L+0ZxjO4
GydRnExigBrblZEKvRRH55DX08n9NN7AQ8ZM/JiAWihygicpUebGWkWWuDay+y4SMG7Q1rxB9zMF
0SkawXILH3SEd+0EhMAjguwQWt3thXWHt9Bb1B7PHTlvaFT+UmWvVVM+53XzlKpVVaQqA3SDYXIH
dKItDJqNbi2ObtJfUZTCtMcL51igKDr05I1g3iNrMeQu8Rv/gOIrFgV24sP9/4oimCmYKSQjmCmY
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
SFAt+2P8xj+g+IxFSb2GeP+/oohmimaKyYhm+g2KD1BLAwQUAAIACAAyYZtMFTU1knoAAAC8AAAA
KgAcAGh0dHAvdGVzdHMvbWlzYy94c2x0LWJhZC1pbXBvcnQtc3RkZXJyLnR4dFVUCQADcHXjWltn
41p1eAsAAQT1AQAABBQAAACNjkEOwyAMBO95hT9AIO2hFb8hxFUsGYyMkfr8EuUD1V5WO4fZLKUR
JyOpgKqiET7ECKdZi95vj9caZrb4DiH4Qj17xS5DM3b/7WxuT4ej0kTNDaV1bsBUEZ6AjAWrwU2X
SeJdIcKoaZ8aE2BJx3+6Kn3k87qXLDEvP1BLAwQKAAAAAAAoXJtMAAAAAAAAAAAAAAAAFgAcAGh0
dHAvdGVzdHMvbmF2aWdhdGlvbi9VVAkAA+xs41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAI
ABRhm0xjpR4yaQAAAGsAAAAuABwAaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2FuY2hvci1nb2JhY2st
c3RkZXJyLnR4dFVUCQADN3XjWiRn41p1eAsAAQT1AQAABBQAAAAzMjC00DUw0TUyVzA0sjKwsDK2
1LM0NlRIzs/VSywoyEnVC09N8s4sAVHO+XklqXklei6pZak5+QW5QHa0iYmxmbmVsZGRuYlRrIJf
sFNpSUl+nmNeZm5iSWZ+XrFrXmJSTmqKrZ8/FwBQSwMEFAACAAgAFmGbTNsI00I7AAAAPwAAADcA
HABodHRwL3Rlc3RzL25hdmlnYXRpb24vZmFsbGJhY2stYW5jaG9yLXJlbG9hZC1zdGRlcnIudHh0
VVQJAAM7deNaKGfjWnV4CwABBPUBAAAEFAAAAHMsKUnNLShRKMlXSM0rLE0tTVVIVCjPL8pWyARK
KJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgAUEsDBBQAAgAIABlhm0yfOlqC6AAAADQJAAA8
ABwAaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL25ldy13aW5kb3ctcmVkaXJlY3QtaGlzdG9yeS1zdGRl
cnIudHh0VVQJAANBdeNaMGfjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZdXZUigj1qJsM
LLSFCiLlWiM7druUXFbn2zvdI4wxJvctkED4Jfx/2cAwTeBmmkZ3aZwANNgtjdTopdw6h/wW386S
+B3uc2bihxTUXJET3EmF8mSsVWSJGyOrvyIF40ZtzQf0hymIdtEEnj/hm7bwpZ2AEHhEkBVCp/u1
sO7xGgaL2uO+I/sNrSpe6vy1bqtF0bSPmVrWZaZyQDcaJrdBJ9rCqNnozuLkKjuKohKmNV44xxxF
0WYgbwSLAVmLIXeJ3/gHFL+xKLEXH+5/LopgpmCmkIxgplNQ/ABQSwMEFAACAAgAGWGbTL7BztHo
AAAANAkAADIAHABodHRwL3Rlc3RzL25hdmlnYXRpb24vbm8tcmVmZXJyZXItcmVzZXQtc3RkZXJy
LnR4dFVUCQADQXXjWjBn41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGXV2TIsMuqNuMrDQ
FjoYUq5dZMdul5LL6nx7pz6CiEzuWyCB8Ev4/9KeYTyFm3ES3SXxPUCN7cpIhV6Ko3PIm/h2Mo1f
4CFjJp4loBaKnOBJSpRHY60iS1wb2X0VCRg3aGu20H1PQXSKRvD0Cu90hDftBITAI4LsEFrd7YV1
h9fQW9Qezx05b2hU/lxl66opl3ndzFO1qopUZYBuMEzugE60hUGz0a3F0VX6I4pSmPZ44RwLFEWH
nrwRzHtkLYbcJX7jH1B8xqLATny4/19RBDMFM4VkBDP9BsUHUEsDBBQAAgAIABlhm0y+wc7R6AAA
ADQJAAA5ABwAaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL25vLXJlZmVycmVyLXRhcmdldC1ibGFuay1z
dGRlcnIudHh0VVQJAANBdeNaMWfjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZdXZMiwy6
o24ysNAWOhhSrl1kx26XksvqfHunPoKITO5bIIHwS/j/0p5hPIWbcRLdJfE9QI3tykiFXoqjc8ib
+HYyjV/gIWMmniWgFoqc4ElKlEdjrSJLXBvZfRUJGDdoa7bQfU9BdIpG8PQK73SEN+0EhMAjguwQ
Wt3thXWH19Bb1B7PHTlvaFT+XGXrqimXed3MU7WqilRlgG4wTO6ATrSFQbPRrcXRVfojilKY9njh
HAsURYeevBHMe2QthtwlfuMfUHzGosBOfLj/X1EEMwUzhWQEM/0GxQdQSwMEFAACAAgAHGGbTLyN
q/8CAQAAAhcAADkAHABodHRwL3Rlc3RzL25hdmlnYXRpb24vcHJvY2Vzcy1zd2FwLXdpbmRvdy1v
cGVuLXN0ZGVyci50eHRVVAkAA0d141o3Z+NadXgLAAEE9QEAAAQUAAAA7dRRSsNAEAbgd08xB5AS
a0oliBCXtErBQBKIUCRs4pQu3e6EyTTW21vtEXyQyrwt7MLwz/J/ac8wncPNNInuklkMUGO7clLh
IMUhBOR1fDubx29wnzETPyRgloaC4FFKlIXz3pAnrp1sfw4JuDBa796hO7+C6BhN4HkDn3SADxsE
hGBABNkitLbbCdsOr6H3aAc83chpQmPylyp7rZryKa+bx9SsqiI1GWAYHVPYYxDrYbTsbOtxcpX+
KkUpTDu88BxLFEP7ngYnmPfIVhyFS/yNf5DiuxYFdjLo/v8qhcqkMmkzVCaVSWVSmVQm3b/KpDJp
M1QmlUllUplUJt3/OcUXUEsDBBQAAgAIACBhm0wR3erh8QAAAM4NAABCABwAaHR0cC90ZXN0cy9u
YXZpZ2F0aW9uL3B1c2hzdGF0ZS1hdC11bmlxdWUtb3JpZ2luLWRlbmllZC1zdGRlcnIudHh0VVQJ
AANLdeNaOGfjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZda5MyhDqUacMLLSFCmOUa5ex
Y7dLyWV1vr1zPoIfZO6+BRIIv4T/L+0ZxlO4GyfRQxLHADW2CyMVeikOziEvJ/fxdLKCWcZM/JiA
mitygkcpUZ6NtYoscW1key4SMG7Q1qyh+5mC6BiN4HUDn3SAD+0EhMAjgmwRWt3thHWHt9Bb1B5P
HTltaFT+VmXvVVO+5HXzlKpFVaQqA3SDYXJ7dKItDJqNbi2ObtJfUZTCtMML55ijKNr35I1g3iNr
MeQu8Rv/gOI7FgV24sP9/4oimCmYKSQjmCmYKZgpmCmY6Tru/wVQSwMEFAACAAgAIGGbTC03u0lp
AAAAawAAADMAHABodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVkaXJlY3QzMDItZ29iYWNrLXN0ZGVy
ci50eHRVVAkAA0t141o4Z+NadXgLAAEE9QEAAAQUAAAAMzIwtNA1MNE1MlcwNLIysLAytdQzMzRR
SM7P1UssKMhJ1QtPTfLOLAFRzvl5Jal5JXouqWWpOfkFuUB2tImpubGJlbGxkYGFYayCX7BTaUlJ
fp5jXmZuYklmfl6xa15iUk5qiq2fPxcAUEsDBBQAAgAIAChcm0yk5ftG4gAAAHABAABCABwAaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL3Njcm9sbHN0YXRlLWFmdGVyLWxvY2F0aW9uLXJlbG9hZC1zdGRl
cnIudHh0VVQJAAPsbONa7GzjWnV4CwABBPUBAAAEFAAAALWPS27DIBRF510FG4gevwdmaD6edBZF
rdSZjUlj1YEInKy/dBG9wysd6Zxp3va0kqOQWNN8JHKb60r2Lf+Qay13Aq+5wrXsa6oNdIameOTs
hvKB0uzxkfFFGb9H2ved4QKfaXnfjktqx/mZc6dOZkFFv8DN8Zbgoz9byYRxsHtZGjAltOc4KoqB
T9JzakfttXHoNBVOjEZaKbT4U/xHmXOKpa4NuBqcQyFYEMyidV7bEQdqJq0CcuUoC+MotepAK88a
EwTFh2C0kUH77up6AKKXwsvg9TCx4JQXRtHT0nvffgFQSwMEFAACAAgALmGbTJ2wr7ToAAAANAkA
ADkAHABodHRwL3Rlc3RzL25hdmlnYXRpb24vdGFyZ2V0LWJsYW5rLW9wZW5lci1wb3N0LXN0ZGVy
ci50eHRVVAkAA2h141pUZ+NadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABm1bkyLDLqjbjKw
0BY6GFKuXWTHbpeSy+p8e6c+gohM7lsggfBL+P/SniGewk2cRPdJfAdQY7syUqGX4ugc8mZ8O5mO
X+AhYyaeJaAWipzgSUqUR2OtIktcG9l9FQkYN2hrttB9T0F0ikbw9ArvdIQ37QSEwCOC7BBa3e2F
dYfX0FvUHs8dOW9oVP5cZeuqKZd53cxTtaqKVGWAbjBM7oBOtIVBs9GtxdFV+iOKUpj2eOEcCxRF
h568Ecx7ZC2G3CV+4x9QfMaiwE58uP9fUQQzBTOFZAQz/QbFB1BLAwQUAAIACAAuYZtMnbCvtOgA
AAA0CQAANAAcAGh0dHAvdGVzdHMvbmF2aWdhdGlvbi90YXJnZXQtYmxhbmstb3BlbmVyLXN0ZGVy
ci50eHRVVAkAA2h141pUZ+NadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABm1bkyLDLqjbjKw
0BY6GFKuXWTHbpeSy+p8e6c+gohM7lsggfBL+P/SniGewk2cRPdJfAdQY7syUqGX4ugc8mZ8O5mO
X+AhYyaeJaAWipzgSUqUR2OtIktcG9l9FQkYN2hrttB9T0F0ikbw9ArvdIQ37QSEwCOC7BBa3e2F
dYfX0FvUHs8dOW9oVP5cZeuqKZd53cxTtaqKVGWAbjBM7oBOtIVBs9GtxdFV+iOKUpj2eOEcCxRF
h568Ecx7ZC2G3CV+4x9QfMaiwE58uP9fUQQzBTOFZAQz/QbFB1BLAwQKAAAAAAATWZtMAAAAAAAA
AAAAAAAAGQAcAGh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9VVAkAAyVn41q+d+NadXgLAAEE9QEA
AAQUAAAAUEsDBBQAAgAIABRhm0xffDOr5wAAADQJAAA4ABwAaHR0cC90ZXN0cy9ub3RpZmljYXRp
b25zL3dpbmRvdy1zaG93LW9uLWNsaWNrLXN0ZGVyci50eHRVVAkAAzh141olZ+NadXgLAAEE9QEA
AAQUAAAA7ZThSsNADMe/+xR5ABl1Th1FhHrUKQMLbaEDkZLWyI7dLiWX1fn2Tn0EEZnct0AC4Zfw
/2WDwPQKzqZpMk9nCUBD3dJqTUHLnfckT7Pzi/nlM1znIiw3KZiFYa+014r0zjpn2LE0VtdfRQrW
j+jsC/TfU5Dskwk8vMI77+ANvYIyBCLQNUGH/UYFezqFwREGOnT0sKE1xWOdr+q2ui+a9jYzy7rM
TA7kRyvst+QVHYwoFjtHk5PsRxSVCm/oyDkWpIa3AwerVAwkqJb9MX7jH1B8xqKkXkO8/19RRDNF
M8VkRDP9BsUHUEsDBAoAAAAAABNZm0wAAAAAAAAAAAAAAAAXABwAaHR0cC90ZXN0cy9wZXJmb3Jt
YW5jZS9VVAkAAyZn41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIABNZm0w+cb/y/AAAAM4N
AABMABwAaHR0cC90ZXN0cy9wZXJmb3JtYW5jZS9wZXJmb3JtYW5jZS1yZXNvdXJjZS10aW1pbmct
Y2FjaGVkLWVudHJpZXMtc3RkZXJyLnR4dFVUCQADJmfjWiZn41p1eAsAAQT1AQAABBQAAADtlOFK
w0AMx7/7FHkAGe1UVosI9ahTBhbaQgci5VojO3a7lFxW59s79RFEtLXfAgmEX8L/l3QM8wWEYRxE
8dkCoMJmZaREL/neOeTH+UV4fvkEVykz8XUMaqnICR6kQLk11iqyxJWRzWcRg3G9tuYZ2q8pCA7B
DO5f4I328KqdgBB4RJANQqPbrbBu8RQ6i9rjsSPHDbXKHsp0XdbFXVbVN4lalXmiUkDXGya3Qyfa
Qq/Z6Mbi7CT5FkUhTFscOMcSRdGuI28Esw5ZiyE3xG+MgOIjFjm24qf7/xbFZKbJTFMyJjP9PEU0
CjNFIzFTNAozRf8vGX/KTEO9/ztQSwMECgAAAAAAFmGbTAAAAAAAAAAAAAAAABMAHABodHRwL3Rl
c3RzL3BsdWdpbnMvVVQJAAM7deNavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAAWYZtMwcn1
ivwAAADODQAANgAcAGh0dHAvdGVzdHMvcGx1Z2lucy9jcmVhdGUtdjgtc2NyaXB0LW9iamVjdHMt
c3RkZXJyLnR4dFVUCQADO3XjWjt141p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGe1WcRQR
6lGnDCy0hQoi5dpFdux2KWlW59s79RFEtPW+BRIIv4T/L+kY5pcQzuNgGUcBQIXN2kiJveQH55Cf
osVFtHyGq5SZ+DoGtVLkBI9SoNwaaxVZ4srI9rOIwbhBW7OB9msKgmMwg/sXeKMDvGonIAQ9IsgW
odHtTli3eA6dRd3jqSOnDbXKHsr0sayLu6yqbxK1LvNEpYBuMExuj060hUGz0Y3F2VnyLYpCmHY4
co4ViqJ9R70RzDpkLYbcGL8xAYqPWOTYSu/v/1sU3kzeTD4Z3kw/TxFOwkzhRMwUTsJM4f9Lxp8y
01jv/w5QSwMECgAAAAAAGVybTAAAAAAAAAAAAAAAACIAHABodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvVVQJAAPRbONavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAAZXJtMqySS
Lf0AAADODQAAYAAcAGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1h
cy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3Mtc3RkZXJyLnR4dFVUCQAD
0WzjWtFs41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGVs3cS0i1KNOGVhoCxVEyrWL7Njt
UnJZnW/v1EcQ0dZ+CyQQfgn/X9wyBJcwm0XzIFosAUqs10YK9JIdnEN+mgcXy+AZrhJm4usI1EqR
EzxKjnJrrFVkiUsj288iAuM6bc0Gmq8pmB6nE7h/gTc6wKt2AkLgEUG2CLVudsK6wXNoLWqPp46c
NlQqfSiSx6LK79KyuonVushilQC6zjC5PTrRFjrNRtcWJ2fxtyhyYdphzzlWKIr2LXkjmLbIWgy5
Pn5jABQfsciwET/e/7coRjONZhqTMZrp5ynCQZgpHIiZwkGYKfx/yfhTZurr/d8BUEsDBAoAAAAA
ACFhm0wAAAAAAAAAAAAAAAAUABwAaHR0cC90ZXN0cy9zZWN1cml0eS9VVAkAA05141q+d+NadXgL
AAEE9QEAAAQUAAAAUEsDBAoAAAAAABVZm0wAAAAAAAAAAAAAAAAfABwAaHR0cC90ZXN0cy9zZWN1
cml0eS9hYm91dEJsYW5rL1VUCQADKWfjWr5341p1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAFmGb
TCICFef5AAAAaBIAAEYAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2Fib3V0Qmxhbmsvc2VjdXJpdHkt
Y29udGV4dC13aW5kb3ctb3Blbi1zdGRlcnIudHh0VVQJAAM8deNaKWfjWnV4CwABBPUBAAAEFAAA
AO3UUUrDQBAG4HdPMQeQEmuoEkSIS6xSMJAEIoiETRzp0u1OmJ3GenurHsGHUpm3hV0Y/ln+Lx8Z
5ldwMc+S6yxNAVrsV04ajFLtQkB+SS8XyeIVbgpm4tsMzNJQENxLjXLvvDfkiVsn659DBi5M1rs3
GH5fQbJPZvD4Dp+0gw8bBIQgIoKsEXo7bITtgOcwerQRDzdymNCZ8qkpnpuufijb7i43q6bKTQEY
JscUthjEepgsO9t7nJ3lf0pRC9MGTzzHEsXQdqToBMsR2YqjcIq/8Q9SfNeiwkGi7v9YKVQmlUmb
oTKpTCqTyqQy6f5VJpVJm6EyHSfFF1BLAwQUAAIACAAWYZtMh88LG+cAAAA0CQAARgAcAGh0dHAv
dGVzdHMvc2VjdXJpdHkvYWJvdXRCbGFuay93aW5kb3ctb3Blbi1zZWxmLWFib3V0LWJsYW5rLXN0
ZGVyci50eHRVVAkAAzx141opZ+NadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABl1lilFhHrU
KQMLbaGCSLnWyMJul5LL6nx7pz6CiEzuWyCB8Ev4//JRYH4BZ/MsuczSFKDFfkXaYNBq5z3KU3q+
SBbPcFWIsFxnYJaGveJea9Rbcs6wY2lJ119FBuQn6+gFhu8pSPbJDO5f4Z138Ga9gjIERNA1Qm+H
jYod8BRGhzbgoaOHDZ0pH5risenqu7LtbnKzaqrcFIB+ImG/Ra/WwWSFbO9wdpL/iKJW4Q0eOccS
1fB25ECK5Yhildgf4zf+AcVnLCocNMT7/xVFNFM0U0xGNNNvUHwAUEsDBAoAAAAAAB1cm0wAAAAA
AAAAAAAAAAAqABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvVVQJ
AAPabONavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAAdXJtMAAAAAAAAAAAAAAAALgAcAGh0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9VVAkAA9ps41q+d+Na
dXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAB1cm0wLrWaMyQAAAE0BAABMABwAaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3BsdWdpbnR5cGVzLWludmFsaWQtc3Rk
ZXJyLnR4dFVUCQAD2mzjWtps41p1eAsAAQT1AQAABBQAAACtj8FqwzAQRO/5iv2BbGxZiYwgUGzn
FAilPfRQSlnbm1RE0RpZbn+/dqA99NzrzDBvRmV5uc70WhnIc1souy1xl2no5IY0DJ7xhdujS/jo
p4sLuNPY8Cd7GW4c0muhTWGsyowx5RucOH1JvD4niXThprLvMnBoqiemvpYQuEtOwmjhTM5zD0lg
CUCc/Zn4E1j0poIH2NTUfTD2LQIcYpS4zzVCTdPI+ylQ6/m3oqdELY0M57l5pf7z1X3EcsHCH2i3
OHfiCC7A6htQSwMECgAAAAAAFlmbTAAAAAAAAAAAAAAAAEIAHABodHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ibG9jay1hbGwtbWl4ZWQtY29udGVudC9VVAkAAyxn41q+
d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIABdhm0z50jHw6AAAADQJAABqABwAaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvYmxvY2stYWxsLW1peGVkLWNvbnRlbnQv
ZGF0YS11cmwtaWZyYW1lLWluLW1haW4tZnJhbWUtc3RkZXJyLnR4dFVUCQADPnXjWipn41p1eAsA
AQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGXV2OIoI9ahTBiu0hQpjlGuXsWO3S8ll3Xx7pz6CiGzc
t0AC4Zfw/6U9w/gB7sZJNE3iCUCN7dxIhV6Kg3PIy/h+Ek9X8JgxEz8loGaKnOBJSpQXY60iS1wb
2X4XCRg3aGvW0P1MQXSKRvC2gQ86wFE7ASHwiCBbhFZ3O2Hd4S30FrXHc0fOGxqVL6rsvWrK17xu
nlM1r4pUZYBuMExuj060hUGz0a3F0U36K4pSmHZ44RwzFEX7nrwRzHtkLYbcJX7jCii+YlFgJz7c
/78ogpmCmUIygpn+guITUEsDBBQAAgAIABdhm0wbu6NCVQEAAOUJAABnABwAaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvYmxvY2stYWxsLW1peGVkLWNvbnRlbnQvaW5z
ZWN1cmUtY3NzLWluLW1haW4tZnJhbWUtc3RkZXJyLnR4dFVUCQADPnXjWitn41p1eAsAAQT1AQAA
BBQAAADtlFFLwzAQx9/9FPe2F9d2c7pRROhKnTK1shYmiIw0O1lYlpTkOtdvb9b1G4jIpOQlkH/u
f7877qLSwHAMg2EYTMLRDcASi7mgHC0tKqXQvI+urkeTD7hNjNHmLoR4FmtFeKAM6V5IGWupzVLQ
prmEINSeSbEGflJBcAg8ePyEWlfwxRQBabCIQBuEgvEtGcbxEkqJzKJ7IeewitOXPHnLV9lDulxN
o3ieL6I4AVR7YbTaoSImYc+MYIVE7yL6EUVGRm/xzDlmSLHeldoKwrREw0hodY7d+AcUx7FYICfb
1f+vKLrN1G2mbjK6zfQbFE6epU8JPCdZFs2SEKZS8y2uYScO2KbinDdEZej7g+HYC9wZhJMgCHyL
vDKCar8Rxyetb9DqynC0vqXaeXBroUDOKpdkrziG7zMp+82ffmvQA1aWyIx1RWj42mCQtRbwqqXg
tXfxDVBLAwQUAAIACAAXYZtMJGcwS+gAAAA0CQAAagAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29u
dGVudFNlY3VyaXR5UG9saWN5L2Jsb2NrLWFsbC1taXhlZC1jb250ZW50L2luc2VjdXJlLWlmcmFt
ZS1pbi1tYWluLWZyYW1lLXN0ZGVyci50eHRVVAkAAz5141orZ+NadXgLAAEE9QEAAAQUAAAA7ZTh
SsNADMe/7ynyAGPU2ekoInRH3WRgoS10IFKuXWTHbpeSy+p8e6c+gohM7lsggfBL+P/SnmF6C1fT
JJon8Q1Aje3aSIVeiqNzyM/x9Syev8Bdxkx8n4BaKnKCJylRHoy1iixxbWT3VSRg3KCt2UL3PQXR
KZrA4yu80xHetBMQAo8IskNodbcX1h2OobeoPZ47ct7QqPypyjZVU67yulmkal0VqcoA3WCY3AGd
aAuDZqNbi5NR+iOKUpj2eOEcSxRFh568Ecx7ZC2G3CV+4x9QfMaiwE58uP9fUQQzBTOFZAQz/QbF
B1BLAwQUAAIACAAYYZtMb/QwIugAAAA0CQAAaQAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L2Jsb2NrLWFsbC1taXhlZC1jb250ZW50L2luc2VjdXJlLWltYWdlLWlu
LW1haW4tZnJhbWUtc3RkZXJyLnR4dFVUCQADP3XjWitn41p1eAsAAQT1AQAABBQAAADtlOFKw0AM
x7/7FHkAGXVWNooI9ajbGFhoCxWGlGuXsWO3S8lldb69Ux9hDJnct0AC4Zfw/6U9w3gCd+Mkmibx
BKDGdmmkQi/FwTnkVXz/EE/f4TFjJn5KQM0UOcGjlCgvxlpFlrg2sv0pEjBu0NasofudgugYjWCx
gU86wId2AkLgEUG2CK3udsK6w1voLWqPp46cNjQqf62yt6op53ndPKdqWRWpygDdYJjcHp1oC4Nm
o1uLo5v0LIpSmHZ45RwzFEX7nrwRzHtkLYbcNX7jH1B8x6LATny4/19RBDMFM4VkBDNdguILUEsD
BBQAAgAIABhhm0xv9DAi6AAAADQJAABqABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvYmxvY2stYWxsLW1peGVkLWNvbnRlbnQvaW5zZWN1cmUtcGx1Z2luLWluLW1h
aW4tZnJhbWUtc3RkZXJyLnR4dFVUCQADP3XjWixn41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7
FHkAGXVWNooI9ajbGFhoCxWGlGuXsWO3S8lldb69Ux9hDJnct0AC4Zfw/6U9w3gCd+MkmibxBKDG
dmmkQi/FwTnkVXz/EE/f4TFjJn5KQM0UOcGjlCgvxlpFlrg2sv0pEjBu0NasofudgugYjWCxgU86
wId2AkLgEUG2CK3udsK6w1voLWqPp46cNjQqf62yt6op53ndPKdqWRWpygDdYJjcHp1oC4Nmo1uL
o5v0LIpSmHZ45RwzFEX7nrwRzHtkLYbcNX7jH1B8x6LATny4/19RBDMFM4VkBDNdguILUEsDBBQA
AgAIABhhm0xv9DAi6AAAADQJAABqABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvYmxvY2stYWxsLW1peGVkLWNvbnRlbnQvaW5zZWN1cmUtc2NyaXB0LWluLW1haW4t
ZnJhbWUtc3RkZXJyLnR4dFVUCQADP3XjWixn41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkA
GXVWNooI9ajbGFhoCxWGlGuXsWO3S8lldb69Ux9hDJnct0AC4Zfw/6U9w3gCd+MkmibxBKDGdmmk
Qi/FwTnkVXz/EE/f4TFjJn5KQM0UOcGjlCgvxlpFlrg2sv0pEjBu0NasofudgugYjWCxgU86wId2
AkLgEUG2CK3udsK6w1voLWqPp46cNjQqf62yt6op53ndPKdqWRWpygDdYJjcHp1oC4Nmo1uLo5v0
LIpSmHZ45RwzFEX7nrwRzHtkLYbcNX7jH1B8x6LATny4/19RBDMFM4VkBDNdguILUEsDBBQAAgAI
ABhhm0xv9DAi6AAAADQJAAB0ABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvYmxvY2stYWxsLW1peGVkLWNvbnRlbnQvaW5zZWN1cmUteGhyLWFzeW5jaHJvbm91cy1p
bi1tYWluLWZyYW1lLXN0ZGVyci50eHRVVAkAAz9141osZ+NadXgLAAEE9QEAAAQUAAAA7ZThSsNA
DMe/+xR5ABl1VjaKCPWo2xhYaAsVhpRrl7Fjt0vJZXW+vVMfYQyZ3LdAAuGX8P+lPcN4AnfjJJom
8QSgxnZppEIvxcE55FV8/xBP3+ExYyZ+SkDNFDnBo5QoL8ZaRZa4NrL9KRIwbtDWrKH7nYLoGI1g
sYFPOsCHdgJC4BFBtgit7nbCusNb6C1qj6eOnDY0Kn+tsreqKed53TynalkVqcoA3WCY3B6daAuD
ZqNbi6Ob9CyKUph2eOUcMxRF+568Ecx7ZC2G3DV+4x9QfMeiwE58uP9fUQQzBTOFZAQzXYLiC1BL
AwQUAAIACAAYYZtMb/QwIugAAAA0CQAAcwAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5L2Jsb2NrLWFsbC1taXhlZC1jb250ZW50L2luc2VjdXJlLXhoci1zeW5jaHJv
bm91cy1pbi1tYWluLWZyYW1lLXN0ZGVyci50eHRVVAkAAz9141osZ+NadXgLAAEE9QEAAAQUAAAA
7ZThSsNADMe/+xR5ABl1VjaKCPWo2xhYaAsVhpRrl7Fjt0vJZXW+vVMfYQyZ3LdAAuGX8P+lPcN4
AnfjJJom8QSgxnZppEIvxcE55FV8/xBP3+ExYyZ+SkDNFDnBo5QoL8ZaRZa4NrL9KRIwbtDWrKH7
nYLoGI1gsYFPOsCHdgJC4BFBtgit7nbCusNb6C1qj6eOnDY0Kn+tsreqKed53TynalkVqcoA3WCY
3B6daAuDZqNbi6Ob9CyKUph2eOUcMxRF+568Ecx7ZC2G3DV+4x9QfMeiwE58uP9fUQQzBTOFZAQz
XYLiC1BLAwQUAAIACAAXYZtMcZxka3EAAAB0AAAAXgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29u
dGVudFNlY3VyaXR5UG9saWN5L2Nvbm5lY3Qtc3JjLXN0YXItc2VjdXJlLXdlYnNvY2tldC1hbGxv
d2VkLXN0ZGVyci50eHRVVAkAAz1141rSbONadXgLAAEE9QEAAAQUAAAAMzIwtNA1MNE1MlcwNLIy
sLAyMdUzMzVTSM7P1UssKMhJ1QtPTfLOLNHzSy0pzy/KzsxL13NJLUvNyS/ITc0riTYxNjc1tDI2
MLMwMYxVcHaDKlMIDvbxSMxLKc5IzE5VSEvMzElNUdDQtbQwMNfkAgBQSwMEFAACAAgAFVmbTAAf
eD1wAAAAcwAAAFcAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9j
b25uZWN0LXNyYy1zdGFyLXdlYnNvY2tldC1hbGxvd2VkLXN0ZGVyci50eHRVVAkAAypn41oqZ+Na
dXgLAAEE9QEAAAQUAAAAMzIwtNA1MNE1MlcwNLQysLAyMdIztDRRSM7P1UssKMhJ1QtPTfLOLNHz
Sy0pzy/KzsxL13NJLUvNyS/ITc0riTYyNTcztzI3sbQ0j1VwdoOqUggO9vFIzEspzkjMTlVIS8zM
SU1R0NC1tDAw1+QCAFBLAwQUAAIACAAXYZtM6+Gt7oUBAACBCgAAaQAcAGh0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2Nyb3NzLW9yaWdpbi1wbHVnaW4tZG9jdW1lbnQt
YWxsb3dlZC1pbi1jaGlsZC13aW5kb3ctc3RkZXJyLnR4dFVUCQADPnXjWipn41p1eAsAAQT1AQAA
BBQAAADtlGFrGzEMhr/3V+gHLO7d1U3D0Y4lTtaOQjOSQAahBN2d0pg49uHTpe2/n52MFfZ1G6Pj
vhlLvNKjF2lYe8iuIM3yZJDLS4AlFfeaF9TwrLWW/Epe9JP+I1xPvHf+Yw7qVjnL9MJz4s/aGOWM
80vN2+MjB20PaHQF5SkLkpdEwJcNvLoWntEysIOGCHhLUGC5Y48lfYDaEDYUIhwqrNX0YTH5tljP
76bL9Wio7hezoZoA2YP2zu7JMho4oNdYGBJnw9+imLN3O3rnHLfEyu1r12imaU0eWTv7Ht34Dyji
Wsyo5Kab/7+i6C5Td5m6zegu09+gyJJ00Etk742kL1IpQw97gXWQFics8dW0T9qKvhRjOpBxdZRa
yctMXuUX2WCQpY/wQPzs/G7OzuMTjUf52tVkx6MZYRXQbTArgAa/NqgNVZEnJoAP8Uj9IyH+j0fw
Cc4VllsSVSEAjkO8SaUAhW1DN62NAD8lKmQs4hg2QfnPUh2biAg5/FK0jJFjxSaYB2ffAVBLAwQU
AAIACAAXYZtMlxY4/3EAAAB0AAAAXgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L2RlZmF1bHQtc3JjLXN0YXItc2VjdXJlLXdlYnNvY2tldC1hbGxvd2VkLXN0ZGVy
ci50eHRVVAkAAz5141oqZ+NadXgLAAEE9QEAAAQUAAAAMzIwtNA1MNE1MlcwNLIysLAyMdMzMzdU
SM7P1UssKMhJ1QtPTfLOLNHzSy0pzy/KzsxL13NJLUvNyS/ITc0riTYxNjc1tDI2MLMwMYxVcHaD
KlMIDvbxSMxLKc5IzE5VSEvMzElNUdDQtbQwMNfkAgBQSwMEFAACAAgAGWGbTHuBnvPnAAAANAkA
AFgAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9pbWFnZS1ibG9j
a2VkLWluLWFib3V0LWJsYW5rLXdpbmRvdy1zdGRlcnIudHh0VVQJAANBdeNaL2fjWnV4CwABBPUB
AAAEFAAAAO2U4UrDQAzHv/sUeQAZdY6pRYR61CkDC22hA5GS1siO3S4ll9X59k59BBGZ3LdAAuGX
8P9lg8D0As6maXKZzq4AGuqWVmsKWu68J3manc+T+TNc5yIsNymYhWGvtNeK9M46Z9ixNFbXX0UK
1o/o7Av031OQ7JMJPLzCO+/gDb2CMgQi0DVBh/1GBXs6hcERBjp09LChNcVjna/qtrovmvY2M8u6
zEwO5Ecr7LfkFR2MKBY7R5OT7EcUlQpv6Mg5FqSGtwMHq1QMJKiW/TF+4x9QfMaipF5DvP9fUUQz
RTPFZEQz/QbFB1BLAwQUAAIACAAcYZtMR8Rsk+cAAAA0CQAAWQAcAGh0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbi1ibG9ja2VkLWluLWFib3V0LWJsYW5rLXdp
bmRvdy1zdGRlcnIudHh0VVQJAANHdeNaNmfjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZ
dbopRYR61CkDC22hA5FyrZEduyUll9X59k59BBGZ3LdAAuGX8P9lg8D0Es6maXKVzmYADXZLpzUG
LXdEKE8X5/Nk/gzXuQjLTQpmYZgU91qh3jnvDXuWxun6q0jB0Wi9e4H+ewqSfTKBh1d45x28WVJQ
hoAIukbobL9RsT2ewuDRBjx09LChNcVjna/qtrovmvY2M8u6zEwOSKMTpi2SWg+jFWc7j5OT7EcU
lQpv8Mg5FqiGtwMHp1gMKFYd0zF+4x9QfMaixF5DvP9fUUQzRTPFZEQz/QbFB1BLAwQUAAIACAAg
YZtM1VGncecAAAA0CQAAaAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5L3NhbWUtb3JpZ2luLXBsdWdpbi1kb2N1bWVudC1ibG9ja2VkLWluLWNoaWxkLXdpbmRvdy1z
dGRlcnIudHh0VVQJAANMdeNaSGfjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZ5xwTiwj1
qFMGFtpChTHKtYvs2O1Sclmdb+/URxhDNu5bIIHwS/j/0p5hfAc340TdJ0oB1NjOrVQYpNh5j7yY
3E7VdAkPGTPxYwJ6pskL7qVEebbOaXLEtZX1b5GA9YNxdgXd3xSovRrB6wd80Q4+jRcQgoAIskZo
TbcRNh1eQ+/QBDx05LCh0flblb1XTfmS181TqudVkeoM0A+WyW/Ri3EwGLamdTi6So+iKIVpg2fO
MUPRtO0pWMG8RzZiyZ/jNy6A4icWBXYS4v3/iyKaKZopJiOa6RQU31BLAwQKAAAAAAAYWZtMAAAA
AAAAAAAAAAAARAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Vw
Z3JhZGUtaW5zZWN1cmUtcmVxdWVzdHMvVVQJAAMvZ+NavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQU
AAIACAAYYZtMBZykGOgAAAA0CQAAZQAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3VwZ3JhZGUtaW5zZWN1cmUtcmVxdWVzdHMvaHR0cHMtaGVhZGVyLWF1eGlsaWFy
eS1zdGRlcnIudHh0VVQJAANAdeNaLWfjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZdVYs
RYR61CmDFdpCBZFyrZEdu11KLuvm2zvdI4wxJvctkED4Jfx/2cAwvYebaRolaZwANNjNjdTopdw4
h/we397FyQc85MzEjymomSInuJMK5dlYq8gSN0aWf0UKxo3amk/oD1MQ7aIJvH7BN21gq52AEHhE
kCVCp/uVsO7xGgaL2uO+I/sNrSoWdf5Wt9VL0bRPmZrXZaZyQDcaJrdGJ9rCqNnozuLkKjuKohKm
FV44xwxF0XogbwSLAVmLIXeJ3/gHFL+xKLEXH+5/LopgpmCmkIxgplNQ/ABQSwMEFAACAAgAGWGb
TM4iy+UKAQAAnBsAAGoAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGlj
eS91cGdyYWRlLWluc2VjdXJlLXJlcXVlc3RzL3Byb3Blci1vcGVuLXdpbmRvdy11cGdyYWRlcy1z
dGRlcnIudHh0VVQJAANCdeNaLmfjWnV4CwABBPUBAAAEFAAAAO3U0UrDMBgF4Huf4n8AGXVWnEWE
LtQpAwttoQORkna/LCxLSvqvzrd36iN4oZNzV0ghnBPOl/aBptd0MU2iWRLfENXcLo1UPEixd47D
c3x5Fc9e6DYLwYe7hNRCeSd8kJLl3lirvPWhNrL5+kjIuFFbs6bu+y+KDtGEHl/p3e/pTTsh8TQw
k2yYWt1tJeiOz6m3rAc+nsjxhkblT1W2qpryIa+beaqWVZGqjNiNJni3Yyfa0qiD0a3lyVn6oxSl
BL/lE8+xYFF+1/vBCOc9By3Gu1N8jX+Q4nMWBXcyoP/fSgGZIBOWAZkgE2SCTJAJ/UMmyIRlQCbI
BJkgE2RC/5AJMmEZkOmv9v8BUEsDBBQAAgAIABphm0xUkiUH5wAAADQJAAB5ABwAaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdXBncmFkZS1pbnNlY3VyZS1yZXF1ZXN0
cy91cGdyYWRlLWluc2VjdXJlLWF1ZGlvLXZpZGVvLWluLW1haW4tZnJhbWUtc3RkZXJyLnR4dFVU
CQADQ3XjWi5n41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGXVuOIoI9ahTBhbaQoUh5Voj
C7tdSi6r8+2d+ggiMrlvgQTCL+H/ywaB6RVcTNNkkc4TgAa7FWmNQcu99yjr2eV8tniG61yE5SYF
szTsFQ9aod6Rc4YdS0O6+SpSID9aRy/Qf09Bckgm8PAK77yHN+sVlCEggm4QOttvVWyP5zA4tAGP
HT1uaE3xWOdPdVvdF017m5lVXWYmB/QjCfsderUORitkO4eTs+xHFJUKb/HEOZaohncDB1IsBhSr
xP4Uv/EPKD5jUWKvId7/ryiimaKZYjKimX6D4gNQSwMEFAACAAgAGmGbTB8BJW7nAAAANAkAAHMA
HABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91cGdyYWRlLWluc2Vj
dXJlLXJlcXVlc3RzL3VwZ3JhZGUtaW5zZWN1cmUtaW1hZ2UtaW4tbWFpbi1mcmFtZS1zdGRlcnIu
dHh0VVQJAANDdeNaLmfjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZ3dxwFBHqUacMLLSF
CiIlrZEdu11KLqvz7Z36CCIyuW+BBMIv4f/LBoHZJUxnabJMF1OAhrq11ZqClnvvSZ7mF4v58hmu
chGW6xTMyrBXOmhFemudM+xYGqubryIF60d09gX67ylIDskE7l/hnffwhl5BGQIR6Iagw36rgj2d
w+AIAx07etzQmuKhzh/rtrormvYmM+u6zEwO5Ecr7HfkFR2MKBY7R5Oz7EcUlQpv6cQ5VqSGdwMH
q1QMJKiW/Sl+4x9QfMaipF5DvP9fUUQzRTPFZEQz/QbFB1BLAwQUAAIACAAaYZtMHwElbucAAAA0
CQAAdgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VwZ3JhZGUt
aW5zZWN1cmUtcmVxdWVzdHMvdXBncmFkZS1pbnNlY3VyZS1zeW5jLXhoci1pbi1tYWluLWZyYW1l
LXN0ZGVyci50eHRVVAkAA0N141ovZ+NadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABnd3HAU
EepRpwwstIUKIiWtkR27XUouq/PtnfoIIjK5b4EEwi/h/8sGgdklTGdpskwXU4CGurXVmoKWe+9J
nuYXi/nyGa5yEZbrFMzKsFc6aEV6a50z7Fgaq5uvIgXrR3T2BfrvKUgOyQTuX+Gd9/CGXkEZAhHo
hqDDfquCPZ3D4AgDHTt63NCa4qHOH+u2uiua9iYz67rMTA7kRyvsd+QVHYwoFjtHk7PsRxSVCm/p
xDlWpIZ3AwerVAwkqJb9KX7jH1B8xqKkXkO8/19RRDNFM8VkRDP9BsUHUEsDBBQAAgAIABphm0wf
ASVu5wAAADQJAABxABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
dXBncmFkZS1pbnNlY3VyZS1yZXF1ZXN0cy91cGdyYWRlLWluc2VjdXJlLXhoci1pbi1tYWluLWZy
YW1lLXN0ZGVyci50eHRVVAkAA0N141ovZ+NadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABnd
3HAUEepRpwwstIUKIiWtkR27XUouq/PtnfoIIjK5b4EEwi/h/8sGgdklTGdpskwXU4CGurXVmoKW
e+9JnuYXi/nyGa5yEZbrFMzKsFc6aEV6a50z7Fgaq5uvIgXrR3T2BfrvKUgOyQTuX+Gd9/CGXkEZ
AhHohqDDfquCPZ3D4AgDHTt63NCa4qHOH+u2uiua9iYz67rMTA7kRyvsd+QVHYwoFjtHk7PsRxSV
Cm/pxDlWpIZ3AwerVAwkqJb9KX7jH1B8xqKkXkO8/19RRDNFM8VkRDP9BsUHUEsDBBQAAgAIABph
m0yw+q/bkQAAAJ0AAAB+ABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvdXBncmFkZS1pbnNlY3VyZS1yZXF1ZXN0cy91cGdyYWRlLXJlZGlyZWN0LWh0dHBzLXRvLWh0
dHAtc2NyaXB0LWluLWlmcmFtZS1zdGRlcnIudHh0VVQJAANDdeNaL2fjWnV4CwABBPUBAAAEFAAA
AB3HTQuCMBgA4Hu/YseCXHN+Ta9aBIlEKzpEh6VvMdz2yhz194ue28NZLCKWRrwgMa+YqLKYFokg
PVqqpskAvcLjoAPtIHzQj9q9aANvMDhZcOGWpiLPqoTnJRN30snLqZUwzxrd5p8anYM+/E725/OR
GFQDeSptYCDLsd7J4EHZrffoG7RKOynbNYlKwfLV4gtQSwMECgAAAAAAGVmbTAAAAAAAAAAAAAAA
AD0AHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdlbnRT
aGFkb3dET00vVVQJAAMyZ+NavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAAbXJtMTZ/arsoA
AABNAQAAWgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VzZXJB
Z2VudFNoYWRvd0RPTS9hbGxvdy1lbWJlZC1wbHVnaW4tc3RkZXJyLnR4dFVUCQAD1mzjWi5n41p1
eAsAAQT1AQAABBQAAACtj71qw0AQhHs/xb6A19LpJ/KBwEhKZQjBKVKEEFbS2j5yuhWnU/L6lgxJ
kTrtzDDfjIriYhulW/UAcawTpbME90UBnQxI42gZX7k9moDPdr4Yh3mKDX+xlXFgF96SNFO5VlGe
7It3eOLwLf7zJYinCzeV/pCRXVOdmPpanOMuGHGThjMZyz0EgTUAfvEX4k9g1ZsKDrCrqbsy9i0C
PHovvoxThJrmicvZUWv5t6KnQC1NDOeleaP+89V9xHpBwx9otzp34gTGweYGUEsDBBQAAgAIABph
m0yYmg3p8QAAAM4NAABrABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvdXNlckFnZW50U2hhZG93RE9NL2RlZmF1bHQtc3JjLW9iamVjdC1kYXRhLXVybC1hbGxvd2Vk
LXN0ZGVyci50eHRVVAkAA0N141owZ+NadXgLAAEE9QEAAAQUAAAA7ZTfSsNQDIfvfYo8gIw6nX+K
CPVQpwwstIUKIuW0RhZ2dlJysjrf3qmP4MWYnrtAAuFL+H3ZIDC9gJNpmlymswSgwW5BWmPQcuM9
yvPZ6ez86gWucxGWmxTM3LBX3GqFekfOGXYsDenyu0iB/GgdvUL/MwXJNpnAwxt88AberVdQhoAI
ukTobL9SsT0ew+DQBtx1dLehNcVjnT/VbXVfNO1tZhZ1mZkc0I8k7Nfo1ToYrZDtHE6Osl9RVCq8
wgPnmKMaXg8cSLEYUKwS+0P8xh+g+IpFib2GeP99UUQzRTPFZEQzRTNFM0UzRTP9j/t/AlBLAwQU
AAIACAAaYZtMVYnRJvIAAADODQAAawAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9kZWZhdWx0LXNyYy1vYmplY3QtZGF0YS11cmwt
YmxvY2tlZC1zdGRlcnIudHh0VVQJAANEdeNaMmfjWnV4CwABBPUBAAAEFAAAAO2U3UrDQBBG732K
eQApMW39CVJIl1ilYCAJRCglbOJIl253wuw01re36iN4Uap7NzADw5nhO2nPEN/AVZxEt8k0Bqix
XRqp0Euxdw55NRlPr+/WcJ8xE88SUAtFTvAgJcqDsVaRJa6NbL6LBIwbtDWv0P1MQXSIRvD0Bh+0
h3ftBITAI4JsEFrdbYV1h5fQW9Qejx05bmhU/lxlL1VTPuZ1M0/VsipSlQG6wTC5HTrRFgbNRrcW
RxfpryhKYdrimXMsUBTtevJGMO+RtRhy5/iNP0DxFYsCO/Hh/qeiCGYKZgrJCGYKZgpmCmYKZvof
9/8EUEsDBBQAAgAIABphm0xeEFtj8QAAAM4NAABsABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvdXNlckFnZW50U2hhZG93RE9NL2RlZmF1bHQtc3JjLW9iamVjdC1k
YXRhLXVybC1ibG9ja2VkMy1zdGRlcnIudHh0VVQJAANDdeNaMWfjWnV4CwABBPUBAAAEFAAAAO2U
30rDUAyH732KPICMbjr/FBHqoU4ZWGgLFUTKaY3ssLOk5GR1vr1TH8ELmZ67QALhS/h92SAwO4fp
LE0u0vkUoMFu6bTGoOWWCOXp9GR+dvkMV7kIy3UKZmGYFHdaod467w17lsbp6qtIwdFovXuB/nsK
kl0ygftXeOctvFlSUIaACLpC6Gy/VrE9HsPg0Qbcd3S/oTXFQ50/1m11VzTtTWaWdZmZHJBGJ0wb
JLUeRivOdh4nR9mPKCoVXuOBcyxQDW8GDk6xGFCsOqZD/MYfoPiMRYm9hnj/36KIZopmismIZopm
imaKZopm+h/3/wBQSwMEFAACAAgAJWGbTF7JwJDoAAAANAkAAGMAHABodHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS93aW5kb3ctb3Blbi1qYXZhc2NyaXB0LXVybC13aXRo
LXRhcmdldC1ibG9ja2VkLXN0ZGVyci50eHRVVAkAA1Z141pgZ+NadXgLAAEE9QEAAAQUAAAA7ZTh
SsNADMe/+xR5ABm3KRsrItSjzjFYoS1UECnXGtmx26Xksjrf3ukeQWRM7lsggfBL+P/SnmEyg/Ek
UfNkrABqbFdWKgxS7L1Hfrm9marpK9xlzMT3CeiFJi94kBLl0TqnyRHXVjY/RQLWD8bZN+hOU6AO
agTLd/ikPXwYLyAEARFkg9CabitsOryG3qEJeOzIcUOj83WVPVdN+ZTXzUOqV1WR6gzQD5bJ79CL
cTAYtqZ1OLpKf0VRCtMWL5xjgaJp11OwgnmPbMSSv8Rv/AOK71gU2EmI9z8XRTRTNFNMRjTTX1B8
AVBLAwQUAAIACAAmYZtMY6qsbIIAAACoAAAAQAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L3hzbC1hbGxvd2VkLXN0ZGVyci50eHRVVAkAA1d141phZ+NadXgLAAEE
9QEAAAQUAAAALY1BCsMwDATveYVeEDu9pPgVhb4guBtiUCwjKaX+fU0pe1qG2c1ytsKbF6kEVdFE
e2HQ4d5SCMttnePIku4xxmDIlxbvIUt1VH/++0O45B4UJpdmWDDvjPljTFwqaCUwziHQD9gB+DRo
ekNtXCeSyp2WOdKOza8xRJuC7GpN1PGavlBLAwQUAAIACAAmYZtMY6qsbIIAAACoAAAAUgAcAGh0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC11bmFmZmVjdGVkLWJ5
LXN0eWxlLXNyYy0yLXN0ZGVyci50eHRVVAkAA1h141piZ+NadXgLAAEE9QEAAAQUAAAALY1BCsMw
DATveYVeEDu9pPgVhb4guBtiUCwjKaX+fU0pe1qG2c1ytsKbF6kEVdFEe2HQ4d5SCMttnePIku4x
xmDIlxbvIUt1VH/++0O45B4UJpdmWDDvjPljTFwqaCUwziHQD9gB+DRoekNtXCeSyp2WOdKOza8x
RJuC7GpN1PGavlBLAwQKAAAAAAAXWZtMAAAAAAAAAAAAAAAAHAAcAGh0dHAvdGVzdHMvc2VjdXJp
dHkvY29va2llcy9VVAkAAy5n41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIABphm0zjhjow
6AAAADQJAABHABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb29raWVzL2Nvb2tpZS10aGVmdC13aXRo
LWphdmFzY3JpcHQtZG9jLXN0ZGVyci50eHRVVAkAA0N141ouZ+NadXgLAAEE9QEAAAQUAAAA7ZTh
SsNADMe/7ynyAGN01U0pInRHnWNgoS10IFKuXWTHbpeSy+p8e6c+gohM7lsggfBL+P/SniG+gWmc
RLfJbApQY7s2UqGX4ugc8vP11Wwev8Bdxkx8n4BaKnKCJylRHoy1iixxbWT3VSRg3KCt2UL3PQXR
KZrA6hXe6Qhv2gkIgUcE2SG0utsL6w7H0FvUHs8dOW9oVP5UZZuqKR/zulmkal0VqcoA3WCY3AGd
aAuDZqNbi5NR+iOKUpj2eOEcSxRFh568Ecx7ZC2G3CV+4x9QfMaiwE58uP9fUQQzBTOFZAQz/QbF
B1BLAwQUAAIACAAaYZtMId3gZfoAAABoEgAAQQAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY3JlZGVu
dGlhbHMtZnJvbS1kaWZmZXJlbnQtZG9tYWlucy1zdGRlcnIudHh0VVQJAANDdeNaMGfjWnV4CwAB
BPUBAAAEFAAAAO3UUUrDQBAG4HdPMQeQklarJYgQl1ilYCAJRBAJmzjSpdudMDuN9fZWPYIPpTJv
C7sw/LP8XzYwzK5hOkuTRTqfAjTYrZzUGKXchYD8cnkxX1y9wk3OTHybglkaCoJ7qVDunfeGPHHj
ZP1zSMGF0Xr3Bv3vK0j2yQQe3+GTdvBhg4AQRESQNUJn+42w7fEcBo824uFGDhNaUzzV+XPdVg9F
095lZlWXmckBw+iYwhaDWA+jZWc7j5Oz7E8pKmHa4InnWKIY2g4UnWAxIFtxFE7xN/5Biu9alNhL
1P0fK4XKpDJpM1QmlUllUplUJt2/yqQyaTNUpuOk+AJQSwMEFAACAAgAGmGbTLFsNg8XAQAAnBsA
AGIAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NyZWRlbnRpYWxzLWlmcmFtZXMtYWxsb3dDcm9zc09y
aWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMtc3RkZXJyLnR4dFVUCQADRHXjWjFn
41p1eAsAAQT1AQAABBQAAADt1OFKwzAQB/DvPsU9gIwuOh1FhBrqlIGFtlBBpKT1ZGFZUq63Ot/e
qY+g4FbvWyCB43/h/0s6AnUJUxVH83g2BaiwWVoused86z3S0/nZbH7xDFcpUaDrGPRCB8+44wL5
1jqngwtUWV59HWKwfjDOvkD7/QqiXTSB+1d4D1t4M56BA/SIwCuExrRrJtPiKXQOTY/7G95PqHX2
UKaPZV3cZVV9k+hlmSc6BfSDpeA36Nk4GAxZ0zicnCQ/SlEwhTUeeY4Fsg6bLvSWMeuQDNvgj/E3
RpDisxY5ttzL/v8qhcgkMkkzRCaRSWQSmUQm2b/IJDJJM0SmQ0ihRiGTGolMahQyqf/XjIOSSYlM
IpPIJM0QmX4pxQdQSwMEFAACAAgAG2GbTJvLrE0KAQAAnBsAADIAHABodHRwL3Rlc3RzL3NlY3Vy
aXR5L2NyZWRlbnRpYWxzLWlmcmFtZXMtc3RkZXJyLnR4dFVUCQADRXXjWjFn41p1eAsAAQT1AQAA
BBQAAADt1NFKwzAYBeB7n+J/ABm1Oh1FhC7UKQMLbaEDkZJ2vywsS0r6r863d+ojeKGTc1dIIZwT
zpf2geIbuoiTaJZMY6Ka26WRigcp9s5xeL66nM6uX+g2C8GHu4TUQnknfJCS5d5Yq7z1oTay+fpI
yLhRW7Om7vsvig7RhB5f6d3v6U07IfE0MJNsmFrdbSXojs+pt6wHPp7I8YZG5U9Vtqqa8iGvm3mq
llWRqozYjSZ4t2Mn2tKog9Gt5clZ+qMUpQS/5RPPsWBRftf7wQjnPQctxrtTfI1/kOJzFgV3MqD/
30oBmSATlgGZIBNkgkyQCf1DJsiEZUAmyASZIBNkQv+QCTJhGZDpr/b/AVBLAwQUAAIACAAdYZtM
Xuvx2s0AAAAqAgAAQgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNhY2hlZC1p
bWFnZXMtcGFyYWxsZWwtc3RkZXJyLnR4dFVUCQADSnXjWjZn41p1eAsAAQT1AQAABBQAAADFkLGO
wjAQRPv7im2gM15CcVEkhCIr0MClyBf4HEMsTDayHaH8PU4iKBA92q1mtW9GI8q/qjwWcCqqKj8U
GZTOXEwLTQhdxrklJW1DPmQppgjGQ0sBpLV01zX8D5Arpb1ngtrgyLJ8vLCZsfoR73Ah2/HfkqzB
3ORFP33Wye8K46wnH+616p0JA3faU++iBZ88mTkzmuFd0+0mTUjV6OWsbkfcYpMvkn3cV/iopIi4
rLWVwzZBhLrXEAjklB7UnB4iSF39h9zfLwW/XsoDUEsDBBQAAgAIACFhm0wDNgvJyQAAAE0BAAA6
ABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tcGx1Z2luLWFsbG93ZWQtc3RkZXJy
LnR4dFVUCQADTnXjWk5141p1eAsAAQT1AQAABBQAAACtj8FqwzAQRO/5iv2BbCXZOIkgEGznFCih
PfRQSlnbm0RE0RpZTn+/dqA99NzrzDBvxii9Xqp8aVagjVUbqwyqYg2t3JD63jO+cXNwCY9+PLuA
RY4139lLf+OQ3vNCa2WzLNvo1Qc8c/qSeH1NEunMdWk/pedQly9MXSUhcJuchMHCiZznDpLAHIA4
+RPxJzDrdQk7eKqovTB2DQLsY5S41TlCRePA2zFQ4/m3oqNEDQ0Mp6l5Yf7z1WPEfMHCH2g7Ow/i
AC7A4htQSwMEFAACAAgAImGbTL0c7QXnAAAANAkAAEUAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2Ny
b3NzLW9yaWdpbi13aW5kb3ctb3Blbi1pbnNlcnQtc2NyaXB0LXN0ZGVyci50eHRVVAkAA09141o5
Z+NadXgLAAEE9QEAAAQUAAAA7ZTtSsNQDIb/exW5ABl187OIUA91ysBCW6ggUtIa2WFnJyUnq/Pu
nXoJMmRy/gUSCE/C+2SDwPQCTqZpcpUmM4CGuoXVmoKWG+9Jnk9nZ5fnL3Cdi7DcpGDmhr3SVivS
O+ucYcfSWF1+FylYP6Kzr9D/TEGyTSbw8AYfvIF39ArKEIhAlwQd9isV7OkYBkcYaNfR3YbWFI91
/lS31X3RtLeZWdRlZnIgP1phvyav6GBEsdg5mhxlv6KoVHhFB84xJzW8HjhYpWIgQbXsD/Eb/4Di
KxYl9Rri/f+KIpopmikmI5ppHxSfUEsDBBQAAgAIACJhm0y9HO0F5wAAADQJAABGABwAaHR0cC90
ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td2luZG93LW9wZW4tamF2YXNjcmlwdC11cmwtc3Rk
ZXJyLnR4dFVUCQADT3XjWjln41p1eAsAAQT1AQAABBQAAADtlO1Kw1AMhv97FbkAGXXzs4hQD3XK
wEJbqCBS0hrZYWcnJSer8+6degkyZHL+BRIIT8L7ZIPA9AJOpmlylSYzgIa6hdWagpYb70meT2dn
l+cvcJ2LsNykYOaGvdJWK9I765xhx9JYXX4XKVg/orOv0P9MQbJNJvDwBh+8gXf0CsoQiECXBB32
KxXs6RgGRxho19HdhtYUj3X+VLfVfdG0t5lZ1GVmciA/WmG/Jq/oYESx2DmaHGW/oqhUeEUHzjEn
NbweOFilYiBBtewP8Rv/gOIrFiX1GuL9/4oimimaKSYjmmkfFJ9QSwMECgACAAAAImGbTHZvmFJF
AAAARQAAAE8AHABodHRwL3Rlc3RzL3NlY3VyaXR5L2ZyYW1lLWxvYWRpbmctdmlhLWRvY3VtZW50
LXdyaXRlLWFzeW5jLWRlbGVnYXRlcy1zdGRlcnIudHh0VVQJAANQdeNaO2fjWnV4CwABBPUBAAAE
FAAAAENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBOb3QgYWxsb3dlZCB0byBsb2FkIGxvY2FsIHJl
c291cmNlOiBhYmUucG5nClBLAwQKAAIAAAAiYZtMbrPyc0YAAABGAAAAPwAcAGh0dHAvdGVzdHMv
c2VjdXJpdHkvZnJhbWUtbG9hZGluZy12aWEtZG9jdW1lbnQtd3JpdGUtc3RkZXJyLnR4dFVUCQAD
UHXjWjtn41p1eAsAAQT1AQAABBQAAABDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTU6IE5vdCBhbGxv
d2VkIHRvIGxvYWQgbG9jYWwgcmVzb3VyY2U6IGFiZS5wbmcKUEsDBAoAAAAAABhZm0wAAAAAAAAA
AAAAAAAkABwAaHR0cC90ZXN0cy9zZWN1cml0eS9mcmFtZU5hdmlnYXRpb24vVVQJAAMvZ+Navnfj
WnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAAaYZtMxvOk2vkAAABoEgAAQgAcAGh0dHAvdGVzdHMv
c2VjdXJpdHkvZnJhbWVOYXZpZ2F0aW9uL2Nyb3NzLW9yaWdpbi1vcGVuZXItc3RkZXJyLnR4dFVU
CQADRHXjWi9n41p1eAsAAQT1AQAABBQAAADt1FFKw0AQBuB3TzEHkBKjVQkixCVWKRhIAhFEwiaO
dOl2J8xOY729VY/gQ6nM28IuDP8s/5ePDOkVnKVZcp3NU4AW+6WTBqNU2xCQXy7O55fpK9wUzMS3
GZiFoSC4kxrl3nlvyBO3TlY/hwxcmKx3bzD8voJkl8zg8R0+aQsfNggIQUQEWSH0dlgL2wFPYfRo
I+5vZD+hM+VTUzw3Xf1Qtt1dbpZNlZsCMEyOKWwwiPUwWXa29zg7yf+UohamNR55jgWKoc1I0QmW
I7IVR+EYf+MfpPiuRYWDRN3/oVKoTCqTNkNlUplUJpVJZdL9q0wqkzZDZTpMii9QSwMEFAACAAgA
GmGbTD4zO4vnAAAANAkAAFgAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2ZyYW1lTmF2aWdhdGlvbi9p
bmFjdGl2ZS1mdW5jdGlvbi1pbi1wb3B1cC1uYXZpZ2F0ZS1jaGlsZC1zdGRlcnIudHh0VVQJAANE
deNaL2fjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZtTqVIkI96pSBhbZQQaRca2Rht0vJ
ZXW+vVMfQUQm9y2QQPgl/H/5KJBewEmaJZfZPAVosV+SNhi02nqP8nR2Oj9Pn+GqEGG5zsAsDHvF
ndaot+ScYcfSkq6+igzIT9bRCwzfU5Dskhncv8I7b+HNegVlCIigK4TeDmsVO+AxjA5twH1H9xs6
Uz40xWPT1Xdl293kZtlUuSkA/UTCfoNerYPJCtne4ewo/xFFrcJrPHCOBarhzciBFMsRxSqxP8Rv
/AOKz1hUOGiI9/8rimimaKaYjGim36D4AFBLAwQUAAIACAAaYZtMVhIcewkBAACcGwAAOQAcAGh0
dHAvdGVzdHMvc2VjdXJpdHkvZnJhbWVOYXZpZ2F0aW9uL25vdC1vcGVuZXItc3RkZXJyLnR4dFVU
CQADRHXjWi9n41p1eAsAAQT1AQAABBQAAADt1NFKwzAYBeB7n+J/ABm1OpUiQg11ysBCW6ggUtL6
y8KypCT/6nx7pz6CFzo5d4UUwjnhfPkYKL2gkzRLLrN5StRyvzTScJRq6xyHp7PT+Xn6TFdFCD5c
Z6QWyjvhndQst8Za5a0PrZHV10dGxk3amhcavv+iZJfM6P6V3v2W3rQTEk+RmWTF1OthLUEPfEyj
ZR15fyL7GzpVPjTFY9PVd2Xb3eRq2VS5KojdZIJ3G3aiLU06GN1bnh3lP0pRS/BrPvAcCxblN6OP
RrgcOWgx3h3ia/yDFJ+zqHiQiP5/KwVkgkxYBmSCTJAJMkEm9A+ZIBOWAZkgE2SCTJAJ/UMmyIRl
QKa/2v8HUEsDBBQAAgAIABthm0zFXkkm6AAAADQJAAA1ABwAaHR0cC90ZXN0cy9zZWN1cml0eS9m
cmFtZU5hdmlnYXRpb24vb3BlbmVyLXN0ZGVyci50eHRVVAkAA0Z141ovZ+NadXgLAAEE9QEAAAQU
AAAA7ZThSsNADMe/+xR5ABm1blOKDLqjbjKw0BY6GFKuXWTHbpeSy+p8e6c+gohM7lsggfBL+P/S
niG+g5s4ie6TyRigxnZlpEIvxdE55M34djKNX+AhYyaeJaAWipzgSUqUR2OtIktcG9l9FQkYN2hr
ttB9T0F0ikbw9ArvdIQ37QSEwCOC7BBa3e2FdYfX0FvUHs8dOW9oVP5cZeuqKZd53cxTtaqKVGWA
bjBM7oBOtIVBs9GtxdFV+iOKUpj2eOEcCxRFh568Ecx7ZC2G3CV+4x9QfMaiwE58uP9fUQQzBTOF
ZAQz/QbFB1BLAwQUAAIACAAiYZtMDeKfwegAAAA0CQAAOAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkv
aGlzdG9yeS11c2VybmFtZS1wYXNzd29yZC1zdGRlcnIudHh0VVQJAANQdeNaO2fjWnV4CwABBPUB
AAAEFAAAAO2U7UrDUAyG/3sVuQAZdc6vIkI91CkDC22hgkg5rZGFnZ2UnKzOu3fqJciQyfkXSCA8
Ce+TDQLTCziZpslVmswAGuwWpDUGLTfeozzPTs8uz1/gOhdhuUnBzA17xa1WqHfknGHH0pAuv4sU
yI/W0Sv0P1OQbJMJPLzBB2/g3XoFZQiIoEuEzvYrFdvjMQwObcBdR3cbWlM81vlT3Vb3RdPeZmZR
l5nJAf1Iwn6NXq2D0QrZzuHkKPsVRaXCKzxwjjmq4fXAgRSLAcUqsT/Eb/wDiq9YlNhriPf/K4po
pmimmIxopn1QfAJQSwMEFAACAAgAI2GbTEZxn6joAAAANAkAADMAHABodHRwL3Rlc3RzL3NlY3Vy
aXR5L2luc2VjdXJlLWdlb2xvY2F0aW9uLXN0ZGVyci50eHRVVAkAA1F141o7Z+NadXgLAAEE9QEA
AAQUAAAA7ZTtSsNQDIb/exW5ABl1Oj+KCPVQpwwstIUKIuW0RhZ2dlJysjrv3qmXIEMm518ggfAk
vE82CEwv4GSaJldpMgNosFuQ1hi03HiP8nx2Ors8f4HrXITlJgUzN+wVt1qh3pFzhh1LQ7r8LlIg
P1pHr9D/TEGyTSbw8AYfvIF36xWUISCCLhE6269UbI/HMDi0AXcd3W1oTfFY5091W90XTXubmUVd
ZiYH9CMJ+zV6tQ5GK2Q7h5Oj7FcUlQqv8MA55qiG1wMHUiwGFKvE/hC/8Q8ovmJRYq8h3v+vKKKZ
opliMqKZ9kHxCVBLAwQKAAAAAAAaWZtMAAAAAAAAAAAAAAAAIgAcAGh0dHAvdGVzdHMvc2VjdXJp
dHkvaXNvbGF0ZWRXb3JsZC9VVAkAAzNn41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIABxh
m0xZ2M276AAAADQJAAA+ABwAaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL3VzZXJH
ZXN0dXJlRXZlbnRzLXN0ZGVyci50eHRVVAkAA0d141ozZ+NadXgLAAEE9QEAAAQUAAAA7ZThSsNA
DMe/+xR5ABl1WjaLDLqjzjGw0BY6GFKuXWTHbpeSy+p8e6c+gohM7lsggfBL+P/SnmE8gZtxEk2T
OAaosV0ZqdBLcXQOeXN3G0/uX+AhYyaeJaAWipzgSUqUR2OtIktcG9l9FQkYN2hrttB9T0F0ikaw
fIV3OsKbdgJC4BFBdgit7vbCusNr6C1qj+eOnDc0Kn+usnXVlE953cxTtaqKVGWAbjBM7oBOtIVB
s9GtxdFV+iOKUpj2eOEcCxRFh568Ecx7ZC2G3CV+4x9QfMaiwE58uP9fUQQzBTOFZAQz/QbFB1BL
AwQKAAAAAAAYWZtMAAAAAAAAAAAAAAAAIgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvamF2YXNjcmlw
dFVSTC9VVAkAAzBn41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIABthm0yJJyS85wAAADQJ
AABYABwAaHR0cC90ZXN0cy9zZWN1cml0eS9qYXZhc2NyaXB0VVJML3hzcy1BTExPV0VELWZyb20t
amF2YXNjcmlwdC11cmwtd2luZG93LW9wZW4tc3RkZXJyLnR4dFVUCQADRXXjWjBn41p1eAsAAQT1
AQAABBQAAADtlO1Kw1AMhv97FbkAGXUfOIoI9VCnDCy0hQoiJa2RHXZ2UnKyOu/eqZcgIpPzL5BA
eBLeJxsEppdwMU2TZbqYATTUra3WFLTce0/yNJ8t5stnuMpFWK5TMCvDXumgFemtdc6wY2msbr6K
FKwf0dkX6L+nIDkkE7h/hXfewxt6BWUIRKAbgg77rQr2dA6DIwx07OhxQ2uKhzp/rNvqrmjam8ys
6zIzOZAfrbDfkVd0MKJY7BxNzrIfUVQqvKUT51iRGt4NHKxSMZCgWvan+I1/QPEZi5J6DfH+f0UR
zRTNFJMRzfQbFB9QSwMECgAAAAAAG2GbTAAAAAAAAAAAAAAAAB0AHABodHRwL3Rlc3RzL3NlY3Vy
aXR5L2xpc3RlbmVyL1VUCQADRXXjWr5341p1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAG2GbTLkJ
KaL9AAAAzg0AAFEAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2xpc3RlbmVyL3hzcy1KU1RhcmdldE5v
ZGUtb25jbGljay1hZGRFdmVudExpc3RlbmVyLXN0ZGVyci50eHRVVAkAA0V141pFdeNadXgLAAEE
9QEAAAQUAAAA7ZTtSsNQDIb/exW5ABm1x/lRRKiHOmVgoS1UECmnNbLDzk5KmtV59069BBna2n+B
BMKT8D5xyxCew0kYBRfRPAQosV5aKbCTbOs98tOpmp9dPsNVwkx8HYFeaPKCO8lRbq1zmhxxaWX1
VURgfW+cfYHmewqCXTCD+1d4py28GS8gBB0iyAqhNs1a2DR4DK1D0+G+I/sNlU4fiuSxqPK7tKxu
Yr0sslgngL63TH6DXoyD3rA1tcPZUfwjilyY1jhwjgWKpk1LnRVMW2QjlvwQvzECis9YZNhIN93/
tygmM01mmpIxmenwFGoUZlIjMZMahZnU/0vGnzLTUO//AVBLAwQKAAAAAAAbYZtMAAAAAAAAAAAA
AAAAIQAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L1VUCQADRnXjWr5341p1eAsA
AQT1AQAABBQAAABQSwMEFAACAAgAG2GbTGpa3cjoAAAANAkAAEwAHABodHRwL3Rlc3RzL3NlY3Vy
aXR5L21peGVkQ29udGVudC9hYm91dC1ibGFuay1pZnJhbWUtaW4tbWFpbi1mcmFtZS1zdGRlcnIu
dHh0VVQJAANFdeNaMWfjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZdVuZFBHq0U0ZrNAW
Kgwp15qxY7dLyWV1vr1TH2EMmdy3QALhl/D/pT3DeAZ34yS6T+IJQI3t0kiFXoqDc8jr6SSOp2/w
kDETPyagFoqc4FFKlLmxVpElro1sf4oEjBu0Ne/Q/U5BdIxG8LKBTzrAh3YCQuARQbYIre52wrrD
W+gtao+njpw2NCpfVdlr1ZTPed08pWpZFanKAN1gmNwenWgLg2ajW4ujm/QsilKYdnjlHAsURfue
vBHMe2Qthtw1fuMfUHzHosBOfLj/X1EEMwUzhWQEM12C4gtQSwMEFAACAAgAG2GbTGpa3cjoAAAA
NAkAAEkAHABodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9kYXRhLXVybC1pZnJhbWUt
aW4tbWFpbi1mcmFtZS1zdGRlcnIudHh0VVQJAANFdeNaMWfjWnV4CwABBPUBAAAEFAAAAO2U4UrD
QAzHv/sUeQAZdVuZFBHq0U0ZrNAWKgwp15qxY7dLyWV1vr1TH2EMmdy3QALhl/D/pT3DeAZ34yS6
T+IJQI3t0kiFXoqDc8jr6SSOp2/wkDETPyagFoqc4FFKlLmxVpElro1sf4oEjBu0Ne/Q/U5BdIxG
8LKBTzrAh3YCQuARQbYIre52wrrDW+gtao+njpw2NCpfVdlr1ZTPed08pWpZFanKAN1gmNwenWgL
g2ajW4ujm/QsilKYdnjlHAsURfuevBHMe2Qthtw1fuMfUHzHosBOfLj/X1EEMwUzhWQEM12C4gtQ
SwMEFAACAAgAG2GbTCg8baXJAAAATQEAAEwAHABodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29u
dGVudC9pbXBvcnQtaW5zZWN1cmUtc2NyaXB0LWluLWlmcmFtZS1zdGRlcnIudHh0VVQJAANGdeNa
RnXjWnV4CwABBPUBAAAEFAAAAK2PwWrDMBBE7/mK/YFsZEWxgyAQbOcUCKU99FBKWdubRETRGllu
f792oD303OvMMG9Gq2y7VGapC8i0VVu7Mai1glbuSH3vGV+5ObqET368uIC5wZo/2Ut/55DezKZQ
hV2vsyLP3+HE6Uvi7SVJpAvXpf2QnkNdPjN1lYTAbXISBgtncp47SAJzAOLkT8SfwKzXJexhVVF7
ZewaBDjEKHGXGYSKxoF3Y6DG829FR4kaGhjOU/NC/+erx4j5goU/0HZ2HsQBXIDFN1BLAwQUAAIA
CAAdYZtMcgMikQIBAAACFwAAewAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2lu
c2VjdXJlLWJhc2ljLWF1dGgtaW1hZ2UtYWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNr
Rm9yQ3JlZGVudGlhbHMuaHR0cHMtc3RkZXJyLnR4dFVUCQADSXXjWjRn41p1eAsAAQT1AQAABBQA
AADt1FFKw0AQBuD3nmIOUEqsCUoQIS6xSsFAEoggEjZxpEu3O2EyjfX2VnsEH6Qybwu7MPyz/F82
MCyv4GKZRtdpEgM02K2d1DhKuQ8B+SW+TJL4FW5yZuLbFMzKUBA8SIVy77w35IkbJ5ufQwouTNa7
N+hPryA6RAt4fIdP2sOHDQJCMCKCbBA622+FbY9zGDzaEY83cpzQmuKpzp/rtnoomvYuM+u6zEwO
GCbHFHYYxHqYLDvbeVzMsl+lqIRpi2eeY4ViaDfQ6ASLAdmKo3COv/EPUnzXosReRt3/X6VQmVQm
bYbKpDKpTCqTyqT7V5lUJm2GyqQyqUwqk8qk+z+l+AJQSwMEFAACAAgAHWGbTBb1V47xAAAAzg0A
AEsAHABodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1iYXNpYy1hdXRo
LWltYWdlLmh0dHBzLXN0ZGVyci50eHRVVAkAA0p141o1Z+NadXgLAAEE9QEAAAQUAAAA7ZThSsNA
DMe/+xR5ABl1rkzKEOpRpwwstIUKY5Rrl7Fjt0vJZXW+vXM+gh9k7r4FEgi/hP8v7RnGU7gbJ9FD
Ek8BamwXRir0UhycQ15O7uN4soJZxkz8mICaK3KCRylRno21iixxbWR7LhIwbtDWrKH7mYLoGI3g
dQOfdIAP7QSEwCOCbBFa3e2EdYe30FvUHk8dOW1oVP5WZe9VU77kdfOUqkVVpCoDdINhcnt0oi0M
mo1uLY5u0l9RlMK0wwvnmKMo2vfkjWDeI2sx5C7xG/+A4jsWBXbiw/3/iiKYKZgpJCOYKZgpmCmY
KZjpOu7/BVBLAwQUAAIACAAgYZtMJuo65OgAAAA0CQAARgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkv
bWl4ZWRDb250ZW50L2luc2VjdXJlLWNzcy1pbi1tYWluLWZyYW1lLXN0ZGVyci50eHRVVAkAA0t1
41o3Z+NadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABl1rkyLDLqjbjKw0BY6GFKuXWTHbpeS
y+p8e6c+gohM7lsggfBL+P/SnmE8hZtxEt0l8T1Aje3KSIVeiqNzyJvJbRxPXuAhYyaeJaAWipzg
SUqUR2OtIktcG9l9FQkYN2hrttB9T0F0ikbw9ArvdIQ37QSEwCOC7BBa3e2FdYfX0FvUHs8dOW9o
VP5cZeuqKZd53cxTtaqKVGWAbjBM7oBOtIVBs9GtxdFV+iOKUpj2eOEcCxRFh568Ecx7ZC2G3CV+
4x9QfMaiwE58uP9fUQQzBTOFZAQz/QbFB1BLAwQUAAIACAAgYZtMJuo65OgAAAA0CQAAVwAcAGh0
dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLWV4ZWN1dGFibGUtY3NzLXdp
dGgtc2VjdXJlLWNvb2tpZXMtc3RkZXJyLnR4dFVUCQADS3XjWjdn41p1eAsAAQT1AQAABBQAAADt
lOFKw0AMx7/7FHkAGXWuTIsMuqNuMrDQFjoYUq5dZMdul5LL6nx7pz6CiEzuWyCB8Ev4/9KeYTyF
m3ES3SXxPUCN7cpIhV6Ko3PIm8ltHE9e4CFjJp4loBaKnOBJSpRHY60iS1wb2X0VCRg3aGu20H1P
QXSKRvD0Cu90hDftBITAI4LsEFrd7YV1h9fQW9Qezx05b2hU/lxl66opl3ndzFO1qopUZYBuMEzu
gE60hUGz0a3F0VX6I4pSmPZ44RwLFEWHnrwRzHtkLYbcJX7jH1B8xqLATny4/19RBDMFM4VkBDP9
BsUHUEsDBBQAAgAIACBhm0wm6jrk6AAAADQJAABHABwAaHR0cC90ZXN0cy9zZWN1cml0eS9taXhl
ZENvbnRlbnQvaW5zZWN1cmUtZm9ybS1pbi1tYWluLWZyYW1lLXN0ZGVyci50eHRVVAkAA0t141o3
Z+NadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABl1rkyLDLqjbjKw0BY6GFKuXWTHbpeSy+p8
e6c+gohM7lsggfBL+P/SnmE8hZtxEt0l8T1Aje3KSIVeiqNzyJvJbRxPXuAhYyaeJaAWipzgSUqU
R2OtIktcG9l9FQkYN2hrttB9T0F0ikbw9ArvdIQ37QSEwCOC7BBa3e2FdYfX0FvUHs8dOW9oVP5c
ZeuqKZd53cxTtaqKVGWAbjBM7oBOtIVBs9GtxdFV+iOKUpj2eOEcCxRFh568Ecx7ZC2G3CV+4x9Q
fMaiwE58uP9fUQQzBTOFZAQz/QbFB1BLAwQUAAIACAAgYZtMA6Jkh+gAAAA0CQAASQAcAGh0dHAv
dGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLWlmcmFtZS1pbi1tYWluLWZyYW1l
LXN0ZGVyci50eHRVVAkAA0x141o4Z+NadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABnn3BCL
CPWo2xhYaAsVRMq1Rnbsdim5rM63d7pHGGNM7lsggfBL+P/SnmF8BzfjRN0nSgHU2C6tVBik2HqP
/Da5nU4n7/CQMRM/JqBnmrzgTkqUZ+ucJkdcW1n9FQlYPxhnP6A7TIHaqREsPuGbtvBlvIAQBESQ
FUJrurWw6fAaeocm4L4j+w2Nzl+q7LVqynleN0+pXlZFqjNAP1gmv0EvxsFg2JrW4egqPYqiFKY1
XjjHDEXTpqdgBfMe2Yglf4nf+AcUv7EosJMQ738uimimaKaYjGimU1D8AFBLAwQUAAIACAAgYZtM
A6Jkh+gAAAA0CQAASAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJl
LWltYWdlLWluLW1haW4tZnJhbWUtc3RkZXJyLnR4dFVUCQADTHXjWjhn41p1eAsAAQT1AQAABBQA
AADtlOFKw0AMx7/7FHkAGefcEIsI9ajbGFhoCxVEyrVGdux2Kbmszrd3ukcYY0zuWyCB8Ev4/9Ke
YXwHN+NE3SdKAdTYLq1UGKTYeo/8NrmdTifv8JAxEz8moGeavOBOSpRn65wmR1xbWf0VCVg/GGc/
oDtMgdqpESw+4Zu28GW8gBAERJAVQmu6tbDp8Bp6hybgviP7DY3OX6rstWrKeV43T6leVkWqM0A/
WCa/QS/GwWDYmtbh6Co9iqIUpjVeOMcMRdOmp2AF8x7ZiCV/id/4BxS/sSiwkxDvfy6KaKZoppiM
aKZTUPwAUEsDBBQAAgAIACFhm0zAgBP0DgEAAAIXAACPABwAaHR0cC90ZXN0cy9zZWN1cml0eS9t
aXhlZENvbnRlbnQvaW5zZWN1cmUtaW1hZ2UtcmVkaXJlY3RzLXRvLWJhc2ljLWF1dGgtc2VjdXJl
LWltYWdlLWFsbG93Q3Jvc3NPcmlnaW5TdWJyZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzLXN0
ZGVyci50eHRVVAkAA01141o5Z+NadXgLAAEE9QEAAAQUAAAA7dThSsMwEAfw7z7FPYCMZm6IRYQa
6pSBhbZQYUhJ68nCslxJb3W+vVMfQUHX3bdAAsf/wv+XdAGml6CmcXQVRxFAhc3Scok95zvvMaxm
F/P57Bmu0xAo3MSgF5o8454L5DvrnCZHobK8/jrEYP1gnH2B9vsVRPtoAg+v8E47eDOegQl6ROA1
QmPaDQfT4jl0Dk2Phxs+TKh19limT2Vd3GdVfZvoZZknOgX0gw3kt+jZOBhMsKZxODlLfpSi4EAb
PPIcC2RN2456y5h1GAxb8sf4GyNI8VmLHFvuZf9/lUJkEpmkGSKTyCQyiUwi0ynuX41CJjUSmdQo
ZFKn14x/JZMSmUQmkUmaITL9UooPUEsDBBQAAgAIACFhm0ywtuJTHgEAADYgAABfABwAaHR0cC90
ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtaW1hZ2UtcmVkaXJlY3RzLXRvLWJh
c2ljLWF1dGgtc2VjdXJlLWltYWdlLXN0ZGVyci50eHRVVAkAA05141o6Z+NadXgLAAEE9QEAAAQU
AAAA7dThSsMwEAfw7z7FPYCMLm6IRYQa6pSBhbZQYUhJ68nCsqRcb3W+vVMfQUTX3bdAAsf/wv+X
dATqEqYqjq7iaApQYbO0XGLP+c57pNXsYj6fPcN1ShToJga90MEz7rlAvrPO6eACVZbXX4cYrB+M
sy/Qfr+CaB9N4OEV3sMO3oxn4AA9IvAaoTHthsm0eA6dQ9Pj4YYPE2qdPZbpU1kX91lV3yZ6WeaJ
TgH9YCn4LXo2DgZD1jQOJ2fJj1IUTGGDR55jgazDtgu9Zcw6JMM2+GP8jRGk+KxFji33sv+/SiEy
iUzSDJHp91OoUcikRiKTGoVM6vSa8a9kUiKTyCQySTNEJpFJZBKZRCbZv8gkMkkzRCaRSWQSmUSm
E97/B1BLAwQUAAIACAAhYZtMlYRlVecAAAA0CQAAUgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4
ZWRDb250ZW50L2luc2VjdXJlLWltYWdlLXdpdGgtc2VjdXJlY29va2llLWJsb2NrLXN0ZGVyci50
eHRVVAkAA05141o6Z+NadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABm1bohFhHrUKQMLbaGC
SLnWyI7dkpLL6nx7pz6CiEzuWyCB8Ev4//JRIL2AszRLLrMkBWixXzltMGi1I0J5mp8vFvNnuCpE
WK4zMEvDpLjXGvXWeW/Ys7RO119FBo4m690LDN9TkOyTGdy/wjvv4M2SgjIERNA1Qm+HjYod8BRG
jzbgoaOHDZ0pH5risenqu7LtbnKzaqrcFIA0OWHaIqn1MFlxtvc4O8l/RFGr8AaPnGOJang7cnCK
5Yhi1TEd4zf+AcVnLCocNMT7/xVFNFM0U0xGNNNvUHwAUEsDBBQAAgAIACFhm0yVhGVV5wAAADQJ
AABMABwAaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtaW1hZ2Utd2l0
aC1zZWN1cmVjb29raWUtc3RkZXJyLnR4dFVUCQADTnXjWjpn41p1eAsAAQT1AQAABBQAAADtlOFK
w0AMx7/7FHkAGbVuiEWEetQpAwttoYJIudbIjt2SksvqfHunPoKITO5bIIHwS/j/8lEgvYCzNEsu
syQFaLFfOW0waLUjQnmany8W82e4KkRYrjMwS8OkuNca9dZ5b9iztE7XX0UGjibr3QsM31OQ7JMZ
3L/CO+/gzZKCMgRE0DVCb4eNih3wFEaPNuCho4cNnSkfmuKx6eq7su1ucrNqqtwUgDQ5YdoiqfUw
WXG29zg7yX9EUavwBo+cY4lqeDtycIrliGLVMR3jN/4BxWcsKhw0xPv/FUU0UzRTTEY0029QfABQ
SwMEFAACAAgAImGbTN4XZTznAAAANAkAAGAAHABodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29u
dGVudC9pbnNlY3VyZS1zY3JpcHQtaW4tZGF0YS1pZnJhbWUtaW4tbWFpbi1mcmFtZS1ibG9ja2Vk
LXN0ZGVyci50eHRVVAkAA09141o6Z+NadXgLAAEE9QEAAAQUAAAA7ZTtSsNQDIb/exW5ABl1H4hF
hHqoUwYW2kKFISWtkR12dlJysjrv3qmXICKT8y+QQHgS3icbBKaXcDFNk6s0mQE01K2s1hS03HtP
sp7PFov5M1znIiw3KZilYa900Ir0zjpn2LE0VjdfRQrWj+jsC/TfU5Ackgk8vMI77+ENvYIyBCLQ
DUGH/VYFezqHwREGOnb0uKE1xWOdP9VtdV807W1mVnWZmRzIj1bY78grOhhRLHaOJmfZjygqFd7S
iXMsSQ3vBg5WqRhIUC37U/zGP6D4jEVJvYZ4/7+iiGaKZorJiGb6DYoPUEsDBBQAAgAIACJhm0ze
F2U85wAAADQJAABhABwAaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUt
c2NyaXB0LXJlZGlyZWN0cy10by1iYXNpYy1hdXRoLXNlY3VyZS1zY3JpcHQtc3RkZXJyLnR4dFVU
CQADT3XjWjpn41p1eAsAAQT1AQAABBQAAADtlO1Kw1AMhv97FbkAGXUfiEWEeqhTBhbaQoUhJa2R
HXZ2UnKyOu/eqZcgIpPzL5BAeBLeJxsEppdwMU2TqzSZATTUrazWFLTce0+yns8Wi/kzXOciLDcp
mKVhr3TQivTOOmfYsTRWN19FCtaP6OwL9N9TkBySCTy8wjvv4Q29gjIEItANQYf9VgV7OofBEQY6
dvS4oTXFY50/1W11XzTtbWZWdZmZHMiPVtjvyCs6GFEsdo4mZ9mPKCoV3tKJcyxJDe8GDlapGEhQ
LftT/MY/oPiMRUm9hnj/v6KIZopmismIZvoNig9QSwMEFAACAAgAImGbTN4XZTznAAAANAkAAGkA
HABodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1zdHlsZXNoZWV0LXJl
ZGlyZWN0cy10by1iYXNpYy1hdXRoLXNlY3VyZS1zdHlsZXNoZWV0LXN0ZGVyci50eHRVVAkAA091
41o6Z+NadXgLAAEE9QEAAAQUAAAA7ZTtSsNQDIb/exW5ABl1H4hFhHqoUwYW2kKFISWtkR12dlJy
sjrv3qmXICKT8y+QQHgS3icbBKaXcDFNk6s0mQE01K2s1hS03HtPsp7PFov5M1znIiw3KZilYa90
0Ir0zjpn2LE0VjdfRQrWj+jsC/TfU5Ackgk8vMI77+ENvYIyBCLQDUGH/VYFezqHwREGOnb0uKE1
xWOdP9VtdV807W1mVnWZmRzIj1bY78grOhhRLHaOJmfZjygqFd7SiXMsSQ3vBg5WqRhIUC37U/zG
P6D4jEVJvYZ4/7+iiGaKZorJiGb6DYoPUEsDBBQAAgAIACNhm0zeF2U85wAAADQJAABGABwAaHR0
cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUteGhyLWluLW1haW4tZnJhbWUt
c3RkZXJyLnR4dFVUCQADUXXjWjxn41p1eAsAAQT1AQAABBQAAADtlO1Kw1AMhv97FbkAGXUfiEWE
eqhTBhbaQoUhJa2RHXZ2UnKyOu/eqZcgIpPzL5BAeBLeJxsEppdwMU2TqzSZATTUrazWFLTce0+y
ns8Wi/kzXOciLDcpmKVhr3TQivTOOmfYsTRWN19FCtaP6OwL9N9TkBySCTy8wjvv4Q29gjIEItAN
QYf9VgV7OofBEQY6dvS4oTXFY50/1W11XzTtbWZWdZmZHMiPVtjvyCs6GFEsdo4mZ9mPKCoV3tKJ
cyxJDe8GDlapGEhQLftT/MY/oPiMRUm9hnj/v6KIZopmismIZvoNig9QSwMEFAACAAgAJGGbTCV6
F5HnAAAANAkAAEsAHABodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS14
aHItc3luYy1pbi1tYWluLWZyYW1lLXN0ZGVyci50eHRVVAkAA1N141o/Z+NadXgLAAEE9QEAAAQU
AAAA7ZThSsNADMe/+xR5ABl1rohFhHrUKQMLbaGCSElrZMdul5LL6nx7pz6CiEzuWyCB8Ev4//JR
YH4BZ/MsucySFKClfmW1oaDVznuSp8V5mi6e4aoQYbnOwCwNe6W91qS31jnDjqW1uv4qMrB+Qmdf
YPiegmSfzOD+Fd55B2/oFZQhEIGuCXocNio40CmMjjDQoaOHDZ0pH5risenqu7LtbnKzaqrcFEB+
ssJ+S17RwYRisXc0O8l/RFGr8IaOnGNJang7crBK5UiCatkf4zf+AcVnLCoaNMT7/xVFNFM0U0xG
NNNvUHwAUEsDBBQAAgAIACRhm0yzXBZD5wAAADQJAABNABwAaHR0cC90ZXN0cy9zZWN1cml0eS9t
aXhlZENvbnRlbnQvamF2YXNjcmlwdC11cmwtZm9ybS1pbi1tYWluLWZyYW1lLXN0ZGVyci50eHRV
VAkAA1N141o/Z+NadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABl1bgyLCPWoUwYW2kKFISWt
kR27XUouq/PtnfoIIjK5b4EEwi/h/8sGgekCLqZpcpUmC4CGupXVmoKWe+9J1rPL+Xz2DNe5CMtN
CmZp2CsdtCK9s84ZdiyN1c1XkYL1Izr7Av33FCSHZAIPr/DOe3hDr6AMgQh0Q9Bhv1XBns5hcISB
jh09bmhN8VjnT3Vb3RdNe5uZVV1mJgfyoxX2O/KKDkYUi52jyVn2I4pKhbd04hxLUsO7gYNVKgYS
VMv+FL/xDyg+Y1FSryHe/68oopmimWIyopl+g+IDUEsDBBQAAgAIACRhm0yzXBZD5wAAADQJAABX
ABwAaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cC10by1odHRw
cy1pZnJhbWUtaW4tbWFpbi1mcmFtZS1zdGRlcnIudHh0VVQJAANTdeNaP2fjWnV4CwABBPUBAAAE
FAAAAO2U4UrDQAzHv/sUeQAZdW4Miwj1qFMGFtpChSElrZEdu11KLqvz7Z36CCIyuW+BBMIv4f/L
BoHpAi6maXKVJguAhrqV1ZqClnvvSdazy/l89gzXuQjLTQpmadgrHbQivbPOGXYsjdXNV5GC9SM6
+wL99xQkh2QCD6/wznt4Q6+gDIEIdEPQYb9VwZ7OYXCEgY4dPW5oTfFY5091W90XTXubmVVdZiYH
8qMV9jvyig5GFIudo8lZ9iOKSoW3dOIcS1LDu4GDVSoGElTL/hS/8Q8oPmNRUq8h3v+vKKKZopli
MqKZfoPiA1BLAwQUAAIACAAkYZtMs1wWQ+cAAAA0CQAAVwAcAGh0dHAvdGVzdHMvc2VjdXJpdHkv
bWl4ZWRDb250ZW50L3JlZGlyZWN0LWh0dHBzLXRvLWh0dHAtaWZyYW1lLWluLW1haW4tZnJhbWUt
c3RkZXJyLnR4dFVUCQADU3XjWj9n41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGXVuDIsI
9ahTBhbaQoUhJa2RHbtdSi6r8+2d+ggiMrlvgQTCL+H/ywaB6QIupmlylSYLgIa6ldWagpZ770nW
s8v5fPYM17kIy00KZmnYKx20Ir2zzhl2LI3VzVeRgvUjOvsC/fcUJIdkAg+v8M57eEOvoAyBCHRD
0GG/VcGezmFwhIGOHT1uaE3xWOdPdVvdF017m5lVXWYmB/KjFfY78ooORhSLnaPJWfYjikqFt3Ti
HEtSw7uBg1UqBhJUy/4Uv/EPKD5jUVKvId7/ryiimaKZYjKimX6D4gNQSwMEFAACAAgAJGGbTLNc
FkPnAAAANAkAAF0AHABodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZWRpcmVjdC1o
dHRwcy10by1odHRwLWltYWdlLXNlY3VyZS1jb29raWVzLWJsb2NrLXN0ZGVyci50eHRVVAkAA1R1
41o/Z+NadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABl1bgyLCPWoUwYW2kKFISWtkR27XUou
q/PtnfoIIjK5b4EEwi/h/8sGgekCLqZpcpUmC4CGupXVmoKWe+9J1rPL+Xz2DNe5CMtNCmZp2Csd
tCK9s84ZdiyN1c1XkYL1Izr7Av33FCSHZAIPr/DOe3hDr6AMgQh0Q9Bhv1XBns5hcISBjh09bmhN
8VjnT3Vb3RdNe5uZVV1mJgfyoxX2O/KKDkYUi52jyVn2I4pKhbd04hxLUsO7gYNVKgYSVMv+FL/x
Dyg+Y1FSryHe/68oopmimWIyopl+g+IDUEsDBBQAAgAIACRhm0zZNIJ55wAAADQJAABXABwAaHR0
cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cHMtdG8taHR0cC1pbWFn
ZS1zZWN1cmUtY29va2llcy1zdGRlcnIudHh0VVQJAANUdeNaP2fjWnV4CwABBPUBAAAEFAAAAO2U
4UrDQAzHv/sUeQAZdW6oRYR61CkDC22hA5GS1siO3S4ll9X59k59BBGZ3LdAAuGX8P9lg8D0As6m
aXKVJpcADXVLqzUFLXfekzzNzufz2TNc5yIsNymYhWGvtNeK9M46Z9ixNFbXX0UK1o/o7Av031OQ
7JMJPLzCO+/gDb2CMgQi0DVBh/1GBXs6hcERBjp09LChNcVjna/qtrovmvY2M8u6zEwO5Ecr7Lfk
FR2MKBY7R5OT7EcUlQpv6Mg5FqSGtwMHq1QMJKiW/TF+4x9QfMaipF5DvP9fUUQzRTPFZEQz/QbF
B1BLAwQUAAIACAAlYZtMepMIs/AAAADODQAAoQAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRD
b250ZW50L3NlY3VyZS1yZWRpcmVjdC10by1pbnNlY3VyZS1yZWRpcmVjdC10by1iYXNpYy1hdXRo
LXNlY3VyZS1pbWFnZS1hbGxvd0Nyb3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50
aWFscy5odHRwcy1zdGRlcnIudHh0VVQJAANVdeNaQGfjWnV4CwABBPUBAAAEFAAAAO2U0UrDUAyG
732KPICMOjfUIkI91CkDC22hA5FyWiM77Oyk5GR1vr1TH8ELmeYukED4Ev4vGximF3A2TZOrNLkE
aLBbOqkxSrkLAflpdj6fz57hOmcmvknBLAwFwb1UKHfOe0OeuHGy/ipScGG03r1A/z0FyT6ZwMMr
vNMO3mwQEIKICLJG6Gy/EbY9nsLg0UY8dOSwoTXFY52v6ra6L5r2NjPLusxMDhhGxxS2GMR6GC07
23mcnGQ/oqiEaYNHzrFAMbQdKDrBYkC24igc4zf+AMVnLErsJer9f4tCzaRm0mSomdRMaiY1k5rp
f9z/A1BLAwQUAAIACAAlYZtM00GVZ/kAAABoEgAAcQAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4
ZWRDb250ZW50L3NlY3VyZS1yZWRpcmVjdC10by1pbnNlY3VyZS1yZWRpcmVjdC10by1iYXNpYy1h
dXRoLXNlY3VyZS1pbWFnZS5odHRwcy1zdGRlcnIudHh0VVQJAANWdeNaQWfjWnV4CwABBPUBAAAE
FAAAAO3U4UrDMBAH8O8+xT2AjDo3xCJCDXXKwEJbqCBS0nqysCxXLrc6396qj+CHMTnIh0AC4X/h
/8sGhvkVXMzT5HpaAA12ayc1Rin3ISC/LC6Xy8Ur3OTMxLcpmJWhIHiQCuXeeW/IEzdONj+bFFwY
rXdv0P/eguSQzODxHT5pDx82CAhBRATZIHS23wrbHs9h8GgjTicyvdCa4qnOn+u2eiia9i4z67rM
TA4YRscUdhjEehgtO9t5nJ1lf0pRCdMWTzzHCsXQbqDoBIsB2YqjcIq/8Q9SfNeixF6izv9YKVQm
lUmboTKpTCqTyqQy6fxVJpVJm6EyHSfFF1BLAwQUAAIACAAmYZtMw+EXSPAAAADODQAAoQAcAGh0
dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3NlY3VyZS1yZWRpcmVjdC10by1zZWN1cmUt
cmVkaXJlY3QtdG8tYmFzaWMtYXV0aC1pbnNlY3VyZS1pbWFnZS1hbGxvd0Nyb3NzT3JpZ2luU3Vi
cmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFscy5odHRwcy1zdGRlcnIudHh0VVQJAANXdeNaQmfj
WnV4CwABBPUBAAAEFAAAAO2U0UrDUAyG732KPICMbm6IRYR6qFMGFtpChSHltEYWdnZScrI6396p
j+CFTM9dIIHwJfxfNgjMLmE6S5OrdJoANNitSGsMWu69R1nPLxaL+TNc5yIsNymYpWGveNAK9Y6c
M+xYGtLNV5EC+dE6eoH+ewqSQzKBh1d45z28Wa+gDAERdIPQ2X6rYns8h8GhDXjs6HFDa4rHOn+q
2+q+aNrbzKzqMjM5oB9J2O/Qq3UwWiHbOZycZT+iqFR4iyfOsUQ1vBs4kGIxoFgl9qf4jT9A8RmL
EnsN8f6/RRHNFM0UkxHNFM0UzRTNFM30P+7/AVBLAwQUAAIACAAmYZtMBWtBwvEAAADODQAAcQAc
AGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3NlY3VyZS1yZWRpcmVjdC10by1zZWN1
cmUtcmVkaXJlY3QtdG8tYmFzaWMtYXV0aC1pbnNlY3VyZS1pbWFnZS5odHRwcy1zdGRlcnIudHh0
VVQJAANYdeNaQ2fjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZ7dyQFRHqUacMVmgLFcYo
1y5jx26XksvqfHunPoIfZO6+BRIIv4T/L+0ZxvcQj5NolsQxQI3twkiFXoqjc8iryd10OlnDQ8ZM
/JiAmitygicpUZ6NtYoscW1k910kYNygrdlA9zMF0SkawesWPugI79oJCIFHBNkhtLrbC+sOb6G3
qD2eO3Le0Kh8WWVvVVO+5HXzlKpFVaQqA3SDYXIHdKItDJqNbi2ObtJfUZTCtMcL55ijKDr05I1g
3iNrMeQu8Rv/gOIrFgV24sP9/4oimCmYKSQjmCmYKZgpmCmY6Tru/wlQSwMEFAACAAgAJ2GbTA7y
y4fxAAAAzg0AAJ8AHABodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9zZWN1cmUtcmVk
aXJlY3QtdG8tc2VjdXJlLXJlZGlyZWN0LXRvLWJhc2ljLWF1dGgtc2VjdXJlLWltYWdlLWFsbG93
Q3Jvc3NPcmlnaW5TdWJyZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzLmh0dHBzLXN0ZGVyci50
eHRVVAkAA1l141pEZ+NadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABld3RgWEepR5xhYaAsV
xijXLmPHbpeSy+p8e6c+gh9k7r4FEgi/hP8v7RniGYzjJLpPxjFAje3SSIVeiqNzyKvJ3XQ6WcND
xkz8mICaK3KCJylRno21iixxbWT3XSRg3KCt2UD3MwXRKRrBYgsfdIR37QSEwCOC7BBa3e2FdYe3
0FvUHs8dOW9oVP5aZW9VU77kdfOUqmVVpCoDdINhcgd0oi0Mmo1uLY5u0l9RlMK0xwvnmKMoOvTk
jWDeI2sx5C7xG/+A4isWBXbiw/3/iiKYKZgpJCOYKZgpmCmYKZjpOu7/CVBLAwQUAAIACAAnYZtM
zvaUJfwAAADODQAAbwAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3NlY3VyZS1y
ZWRpcmVjdC10by1zZWN1cmUtcmVkaXJlY3QtdG8tYmFzaWMtYXV0aC1zZWN1cmUtaW1hZ2UuaHR0
cHMtc3RkZXJyLnR4dFVUCQADWnXjWkVn41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGd12
Qywi1KObMrDQFioMKdeasWO3S0mzOt/eqY8goq39Fkgg/BL+v6hhmF3BdBYG1+F0DlBgtbaSYyvp
0XvkjZovFuoZbmJm4tsQ9EqTFzxJhrK0zmlyxIWV3WcRgvWdcfYF6q8pCE7BBB628EZHeDVeQAha
RJAdQmXqvbCp8RIah6bFc0fOG0qdPObxU15m90lR3kV6naeRjgF9Z5n8Ab0YB51hayqHk4voWxSZ
MO2x5xwrFE2HhlormDTIRiz5Pn5jABQfsUixlna8/29RjGYazTQmYzTTz1OoQZhJDcRMahBmUv8v
GX/KTH29/ztQSwMECgAAAAAAGVmbTAAAAAAAAAAAAAAAACsAHABodHRwL3Rlc3RzL3NlY3VyaXR5
L21peGVkQ29udGVudC93ZWJzb2NrZXQvVVQJAAMxZ+NavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQU
AAIACAAbYZtMW86SUugAAAA0CQAAVgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50
L3dlYnNvY2tldC9pbnNlY3VyZS13ZWJzb2NrZXQtaW4tbWFpbi1mcmFtZS1zdGRlcnIudHh0VVQJ
AANGdeNaMWfjWnV4CwABBPUBAAAEFAAAAO2U7UrDUAyG/3sVuQAZdZsfFBHqoU4ZWGgLHYiU0xrZ
YWdJycnqvHunXoKITM6/QALhSXifbBCYXsLZNE2u0vM5QIPd0mmNQcsdEcrTfHaRzJ7hOhdhuUnB
LAyT4l4r1DvnvWHP0jhdfxUpOBqtdy/Qf09Bsk8m8PAK77yDN0sKyhAQQdcIne03KrbHUxg82oCH
jh42tKZ4rPNV3Vb3RdPeZmZZl5nJAWl0wrRFUuthtOJs53Fykv2IolLhDR45xwLV8Hbg4BSLAcWq
YzrGb/wDis9YlNhriPf/K4popmimmIxopt+g+ABQSwMEFAACAAgAI2GbTJvEnhPnAAAANAkAAE4A
HABodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkY29udGVudC1nZW9sb2NhdGlvbi1ibG9jay1pbnNl
Y3VyZS1jb250ZW50LXN0ZGVyci50eHRVVAkAA1J141o9Z+NadXgLAAEE9QEAAAQUAAAA7ZThSsNA
DMe/+xR5ABl16tQiQj3qlIGFtlBBpFxrZGG3S8lldb69Ux9BhkzuWyCB8Ev4/7JBYHoBJ9M0uUqT
GUCD3YK0xqDlxnuU57PT88vZC1znIiw3KZi5Ya+41Qr1jpwz7Fga0uV3kQL50Tp6hf5nCpJtMoGH
N/jgDbxbr6AMARF0idDZfqViezyGwaENuOvobkNrisc6f6rb6r5o2tvMLOoyMzmgH0nYr9GrdTBa
Ids5nBxlv6KoVHiFB84xRzW8HjiQYjGgWCX2h/iNf0DxFYsSew3x/n9FEc0UzRSTEc20D4pPUEsD
BBQAAgAIACNhm0ybxJ4T5wAAADQJAAA3ABwAaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZGNvbnRl
bnQtZ2VvbG9jYXRpb24tc3RkZXJyLnR4dFVUCQADUnXjWj1n41p1eAsAAQT1AQAABBQAAADtlOFK
w0AMx7/7FHkAGXXq1CJCPeqUgYW2UEGkXGtkYbdLyWV1vr1TH0GGTO5bIIHwS/j/skFgegEn0zS5
SpMZQIPdgrTGoOXGe5Tns9Pzy9kLXOciLDcpmLlhr7jVCvWOnDPsWBrS5XeRAvnROnqF/mcKkm0y
gYc3+OANvFuvoAwBEXSJ0Nl+pWJ7PIbBoQ246+huQ2uKxzp/qtvqvmja28ws6jIzOaAfSdiv0at1
MFoh2zmcHGW/oqhUeIUHzjFHNbweOJBiMaBYJfaH+I1/QPEVixJ7DfH+f0URzRTNFJMRzbQPik9Q
SwMECgAAAAAAGVmbTAAAAAAAAAAAAAAAACEAHABodHRwL3Rlc3RzL3NlY3VyaXR5L29yaWdpbkhl
YWRlci9VVAkAAzJn41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIABthm0y7ETxV6AAAADQJ
AABDABwAaHR0cC90ZXN0cy9zZWN1cml0eS9vcmlnaW5IZWFkZXIvb3JpZ2luLWhlYWRlci1mb3It
ZW1wdHktc3RkZXJyLnR4dFVUCQADRnXjWjJn41p1eAsAAQT1AQAABBQAAADtlO1Kw1AMhv97FbkA
GXVufhQR6qFOGVhoCxVEymmN7LCzpORkdd69Uy9BRCbnXyCB8CS8TzYITM/hZJomF+l8BtBgt3Ra
Y9ByS4TyNDudn10+w1UuwnKdglkYJsWdVqi3znvDnqVxuvoqUnA0Wu9eoP+egmSXTOD+Fd55C2+W
FJQhIIKuEDrbr1Vsj8cweLQB9x3db2hN8VDnj3Vb3RVNe5OZZV1mJgek0QnTBkmth9GKs53HyVH2
I4pKhdd44BwLVMObgYNTLAYUq47pEL/xDyg+Y1FiryHe/68oopmimWIyopl+g+IDUEsDBBQAAgAI
ACVhm0zxrAop5wAAADQJAABMABwAaHR0cC90ZXN0cy9zZWN1cml0eS9wb3B1cC1hbGxvd2VkLWJ5
LXNhbmRib3gtaXMtc2FuZGJveGVkLWNvbnRyb2wtc3RkZXJyLnR4dFVUCQADVXXjWj9n41p1eAsA
AQT1AQAABBQAAADtlN1KxEAMhe99ijyALHX9LyLUoa6yYKEtVBAp0xrZsLOTksnW9e2t+ggisjKQ
i0AC4cvhnGwQmJ/D0TxNLqcCaLBbktYYtNx6j/J0cnx6cfYMV7kIy3UKZmHYK+60Qr0l5ww7loZ0
9dWkQH60jl6g/96CZJfM4P4V3nkLb9YrKENABF0hdLZfq9geD2FwaANOE50utKZ4qPPHuq3uiqa9
ycyyLjOTA/qRhP0GvVoHoxWyncPZQfYjikqF17jnHAtUw5uBAykWA4pVYr+PavwDik9blNhriP//
K4qYTDGZojNiMv0GxQdQSwMEFAACAAgAJWGbTPGsCinnAAAANAkAAEQAHABodHRwL3Rlc3RzL3Nl
Y3VyaXR5L3BvcHVwLWFsbG93ZWQtYnktc2FuZGJveC1pcy1zYW5kYm94ZWQtc3RkZXJyLnR4dFVU
CQADVXXjWj9n41p1eAsAAQT1AQAABBQAAADtlN1KxEAMhe99ijyALHX9LyLUoa6yYKEtVBAp0xrZ
sLOTksnW9e2t+ggisjKQi0AC4cvhnGwQmJ/D0TxNLqcCaLBbktYYtNx6j/J0cnx6cfYMV7kIy3UK
ZmHYK+60Qr0l5ww7loZ09dWkQH60jl6g/96CZJfM4P4V3nkLb9YrKENABF0hdLZfq9geD2FwaANO
E50utKZ4qPPHuq3uiqa9ycyyLjOTA/qRhP0GvVoHoxWyncPZQfYjikqF17jnHAtUw5uBAykWA4pV
Yr+PavwDik9blNhriP//K4qYTDGZojNiMv0GxQdQSwMEFAACAAgAJWGbTPGsCinnAAAANAkAAEQA
HABodHRwL3Rlc3RzL3NlY3VyaXR5L3BvcHVwLWFsbG93ZWQtYnktc2FuZGJveC13aGVuLWFsbG93
ZWQtc3RkZXJyLnR4dFVUCQADVXXjWj9n41p1eAsAAQT1AQAABBQAAADtlN1KxEAMhe99ijyALHX9
LyLUoa6yYKEtVBAp0xrZsLOTksnW9e2t+ggisjKQi0AC4cvhnGwQmJ/D0TxNLqcCaLBbktYYtNx6
j/J0cnx6cfYMV7kIy3UKZmHYK+60Qr0l5ww7loZ09dWkQH60jl6g/96CZJfM4P4V3nkLb9YrKENA
BF0hdLZfq9geD2FwaANOE50utKZ4qPPHuq3uiqa9ycyyLjOTA/qRhP0GvVoHoxWyncPZQfYjikqF
17jnHAtUw5uBAykWA4pVYr+PavwDik9blNhriP//K4qYTDGZojNiMv0GxQdQSwMECgAAAAAAIFyb
TAAAAAAAAAAAAAAAACAAHABodHRwL3Rlc3RzL3NlY3VyaXR5L3Bvc3RNZXNzYWdlL1VUCQAD3Gzj
Wr5341p1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAIFybTL5SisnwAAAAzg0AAEUAHABodHRwL3Rl
c3RzL3NlY3VyaXR5L3Bvc3RNZXNzYWdlL2RhdGEtdXJsLXNlbmRzLW51bGwtb3JpZ2luLXN0ZGVy
ci50eHRVVAkAA9xs41rcbONadXgLAAEE9QEAAAQUAAAA7ZTRSsNQDIbvfYo8gIytY0yLCPVQpwws
tIUKIiWtkR12dlJysjrf3qmP4IVMz10ggfAl/F82CCRLmM3SeZIuLgEa6tZWawpa7r0neZoni+XF
M1zlIizXKZiVYa900Ir01jpn2LE0VjdfRQrWj+jsC/TfUzA9TCdw/wrvvIc39ArKEIhANwQd9lsV
7OkcBkcY6NjR44bWFA91/li31V3RtDeZWddlZnIgP1phvyOv6GBEsdg5mpxlP6KoVHhLJ86xIjW8
GzhYpWIgQbXsT/Ebf4DiMxYl9Rri/X+LIpopmikmI5opmimaKZopmul/3P8DUEsDBBQAAgAIACVh
m0zvN3iM+gAAAGgSAABBABwAaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktbmVz
dGVkLXdpbmRvdy1vcGVuLXN0ZGVyci50eHRVVAkAA1Z141pAZ+NadXgLAAEE9QEAAAQUAAAA7dTd
SsNAEAXge59iHkBKWv+DCHGJVQoGkkAEkbCJI1263Qmz01jf3qqP0ItSmbuFXRjOLOfLBobZFUxn
aXKTThOABruFkxqjlJsQkF/Pzy6uL9/gNmcmvkvBzA0Fwa1UKA/Oe0OeuHGy/D2k4MJovXuH/u8V
JNtkAk8f8EUb+LRBQAgiIsgSobP9Stj2eAqDRxtxdyO7Ca0pnuv8pW6rx6Jp7zOzqMvM5IBhdExh
jUGsh9Gys53HyUm2V4pKmFZ45DnmKIbWA0UnWAzIVhyFY/yNf5DipxYl9hJ1/4dKoTKpTNoMlUll
UplUJpVJ968yqUzaDJXpMCm+AVBLAwQUAAIACAAlYZtM+FpaBPAAAADODQAAPAAcAGh0dHAvdGVz
dHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJlZGlyZWN0LWxpbmstc3RkZXJyLnR4dFVUCQAD
VnXjWkBn41p1eAsAAQT1AQAABBQAAADtlN9Kw1AMh+99ijyAjG7+LyLUQ50ysNAWKoiU0xpZ2NlJ
ycnqfHunPoIXY3ruAgmEL+H3ZYPA7AKmszS5SqcJQIPdgrTGoOXGe5Tn05Ozy/MXuM5FWG5SMHPD
XnGrFeodOWfYsTSky+8iBfKjdfQK/c8UJNtkAg9v8MEbeLdeQRkCIugSobP9SsX2eAyDQxtw19Hd
htYUj3X+VLfVfdG0t5lZ1GVmckA/krBfo1frYLRCtnM4Ocp+RVGp8AoPnGOOang9cCDFYkCxSuwP
8Rt/gOIrFiX2GuL990URzRTNFJMRzRTNFM0UzRTN9D/u/wlQSwMEFAACAAgAJWGbTOsxi1/nAAAA
NAkAAEMAHABodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1zdWJmcmFtZS13aW5k
b3ctb3Blbi1zdGRlcnIudHh0VVQJAANWdeNaQGfjWnV4CwABBPUBAAAEFAAAAO2U7UrDUAyG/3sV
uQAZ3fwuItRDnTKw0BYqiJTTGtlhZ0nJyeq8e6deggyZnH+BBMKT8D7ZIDC7gOksTa7SaQLQYLdw
WmPQckOE8nx6cnZ5/gLXuQjLTQpmbpgUt1qh3jnvDXuWxunyu0jB0Wi9e4X+ZwqSbTKBhzf44A28
W1JQhoAIukTobL9SsT0ew+DRBtx1dLehNcVjnT/VbXVfNO1tZhZ1mZkckEYnTGsktR5GK852HidH
2a8oKhVe4YFzzFENrwcOTrEYUKw6pkP8xj+g+IpFib2GeP+/oohmimaKyYhm2gfFJ1BLAwQUAAIA
CAAmYZtMoKKLNukAAAA0CQAAOgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5
LXdpbmRvdy1vcGVuLXN0ZGVyci50eHRVVAkAA1d141pBZ+NadXgLAAEE9QEAAAQUAAAA7ZRvS8NA
DIff+ynyAWS02/xXZNAddcrAQluoIFKuXcaO3S4ll9X57Z36EWTI5N4FEghPwu9Je4bxDcTjJLpL
4higxnZppEIvxd455Nfp5Or2+g3uM2biWQJqocgJHqREeTDWKrLEtZHNd5GAcYO2ZgXdzxREh2gE
T2v4oD28aycgBB4RZIPQ6m4rrDu8hN6i9njsyHFDo/LnKnupmvIxr5t5qpZVkaoM0A2Gye3QibYw
aDa6tTi6SH9FUQrTFs+cY4GiaNeTN4J5j6zFkDvHb/wDiq9YFNiJD/f/K4pgpmCmkIxgplNQfAJQ
SwMEFAACAAgAJmGbTOsxi1/nAAAANAkAAEMAHABodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVy
LXBvbGljeS13aW5kb3ctb3Blbi1zdWJmcmFtZS1zdGRlcnIudHh0VVQJAANXdeNaQWfjWnV4CwAB
BPUBAAAEFAAAAO2U7UrDUAyG/3sVuQAZ3fwuItRDnTKw0BYqiJTTGtlhZ0nJyeq8e6deggyZnH+B
BMKT8D7ZIDC7gOksTa7SaQLQYLdwWmPQckOE8nx6cnZ5/gLXuQjLTQpmbpgUt1qh3jnvDXuWxuny
u0jB0Wi9e4X+ZwqSbTKBhzf44A28W1JQhoAIukTobL9SsT0ew+DRBtx1dLehNcVjnT/VbXVfNO1t
ZhZ1mZkckEYnTGsktR5GK852HidH2a8oKhVe4YFzzFENrwcOTrEYUKw6pkP8xj+g+IpFib2GeP+/
oohmimaKyYhm2gfFJ1BLAwQUAAIACAAoYZtMEFz58ucAAAA0CQAAOQAcAGh0dHAvdGVzdHMvc2Vj
dXJpdHkvd2luZG93LWV2ZW50cy1jbGVhci1kb21haW4tc3RkZXJyLnR4dFVUCQADXHXjWkZn41p1
eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGd3UqUWEetQpAwttoYJIudbIjt2SksvqfHunPoKI
TO5bIIHwS/j/skFgdg7TWZpcptM5QIPd0mmNQcstEcrT6cnZxfwZrnIRlusUzMIwKe60Qr113hv2
LI3T1VeRgqPRevcC/fcUJLtkAvev8M5beLOkoAwBEXSF0Nl+rWJ7PIbBow247+h+Q2uKhzp/rNvq
rmjam8ws6zIzOSCNTpg2SGo9jFac7TxOjrIfUVQqvMYD51igGt4MHJxiMaBYdUyH+I1/QPEZixJ7
DfH+f0URzRTNFJMRzfQbFB9QSwMEFAACAAgAKGGbTBBc+fLnAAAANAkAADcAHABodHRwL3Rlc3Rz
L3NlY3VyaXR5L3dpbmRvdy1ldmVudHMtY2xlYXItcG9ydC1zdGRlcnIudHh0VVQJAANcdeNaRmfj
WnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZ3dSpRYR61CkDC22hgki51siO3ZKSy+p8e6c+
gohM7lsggfBL+P+yQWB2DtNZmlym0zlAg93SaY1Byy0RytPpydnF/BmuchGW6xTMwjAp7rRCvXXe
G/YsjdPVV5GCo9F69wL99xQku2QC96/wzlt4s6SgDAERdIXQ2X6tYns8hsGjDbjv6H5Da4qHOn+s
2+quaNqbzCzrMjM5II1OmDZIaj2MVpztPE6Osh9RVCq8xgPnWKAa3gwcnGIxoFh1TIf4jX9A8RmL
EnsN8f5/RRHNFM0UkxHN9BsUH1BLAwQUAAIACAApYZtMEFz58ucAAAA0CQAAMQAcAGh0dHAvdGVz
dHMvc2VjdXJpdHkvd2luZG93LWV2ZW50cy1wYXNzLXN0ZGVyci50eHRVVAkAA11141pHZ+NadXgL
AAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABnd1KlFhHrUKQMLbaGCSLnWyI7dkpLL6nx7pz6CiEzu
WyCB8Ev4/7JBYHYO01maXKbTOUCD3dJpjUHLLRHK0+nJ2cX8Ga5yEZbrFMzCMCnutEK9dd4b9iyN
09VXkYKj0Xr3Av33FCS7ZAL3r/DOW3izpKAMARF0hdDZfq1iezyGwaMNuO/ofkNrioc6f6zb6q5o
2pvMLOsyMzkgjU6YNkhqPYxWnO08To6yH1FUKrzGA+dYoBreDBycYjGgWHVMh/iNf0DxGYsSew3x
/n9FEc0UzRSTEc30GxQfUEsDBBQAAgAIAClhm0xbz/mb6AAAADQJAABSABwAaHR0cC90ZXN0cy9z
ZWN1cml0eS93aW5kb3ctbmFtZS1hZnRlci1jcm9zcy1vcmlnaW4tYXV4LWZyYW1lLW5hdmlnYXRp
b24tc3RkZXJyLnR4dFVUCQADXXXjWkdn41p1eAsAAQT1AQAABBQAAADtlO1Kw1AMhv97FbkAGd38
mBYR6qFOGVhoCxVEymmNLOzspORkdd69Uy9BRCbnXyCB8CS8TzYIzOYwnaXJZTqdAzTYLUlrDFpu
vUd5Oj05uzh/hqtchOU6BbMw7BV3WqHeknOGHUtDuvoqUiA/Wkcv0H9PQbJLJnD/Cu+8hTfrFZQh
IIKuEDrbr1Vsj8cwOLQB9x3db2hN8VDnj3Vb3RVNe5OZZV1mJgf0Iwn7DXq1DkYrZDuHk6PsRxSV
Cq/xwDkWqIY3AwdSLAYUq8T+EL/xDyg+Y1FiryHe/68oopmimWIyopl+g+IDUEsDBBQAAgAIAClh
m0xbz/mb6AAAADQJAABRABwAaHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctbmFtZS1hZnRlci1z
YW1lLW9yaWdpbi1hdXgtZnJhbWUtbmF2aWdhdGlvbi1zdGRlcnIudHh0VVQJAANddeNaR2fjWnV4
CwABBPUBAAAEFAAAAO2U7UrDUAyG/3sVuQAZ3fyYFhHqoU4ZWGgLFUTKaY0s7Oyk5GR13r1TL0FE
JudfIIHwJLxPNgjM5jCdpcllOp0DNNgtSWsMWm69R3k6PTm7OH+Gq1yE5ToFszDsFXdaod6Sc4Yd
S0O6+ipSID9aRy/Qf09BsksmcP8K77yFN+sVlCEggq4QOtuvVWyPxzA4tAH3Hd1vaE3xUOePdVvd
FU17k5llXWYmB/QjCfsNerUORitkO4eTo+xHFJUKr/HAORaohjcDB1IsBhSrxP4Qv/EPKD5jUWKv
Id7/ryiimaKZYjKimX6D4gNQSwMEFAACAAgAKWGbTFvP+ZvoAAAANAkAADMAHABodHRwL3Rlc3Rz
L3NlY3VyaXR5L3dpbmRvdy1uYW1lZC12YWx1ZU9mLXN0ZGVyci50eHRVVAkAA11141pHZ+NadXgL
AAEE9QEAAAQUAAAA7ZTtSsNQDIb/exW5ABnd/JgWEeqhThlYaAsVRMppjSzs7KTkZHXevVMvQUQm
518ggfAkvE82CMzmMJ2lyWU6nQM02C1Jawxabr1HeTo9Obs4f4arXITlOgWzMOwVd1qh3pJzhh1L
Q7r6KlIgP1pHL9B/T0GySyZw/wrvvIU36xWUISCCrhA6269VbI/HMDi0Afcd3W9oTfFQ5491W90V
TXuTmWVdZiYH9CMJ+w16tQ5GK2Q7h5Oj7EcUlQqv8cA5FqiGNwMHUiwGFKvE/hC/8Q8oPmNRYq8h
3v+vKKKZopliMqKZfoPiA1BLAwQUAAIACAApYZtMW8/5m+gAAAA0CQAAWQAcAGh0dHAvdGVzdHMv
c2VjdXJpdHkvd2luZG93LW9wZW5lZC1mcm9tLXNhbmRib3hlZC1pZnJhbWUtc2hvdWxkLWluaGVy
aXQtc2FuZGJveC1zdGRlcnIudHh0VVQJAANedeNaSGfjWnV4CwABBPUBAAAEFAAAAO2U7UrDUAyG
/3sVuQAZ3fyYFhHqoU4ZWGgLFUTKaY0s7Oyk5GR13r1TL0FEJudfIIHwJLxPNgjM5jCdpcllOp0D
NNgtSWsMWm69R3k6PTm7OH+Gq1yE5ToFszDsFXdaod6Sc4YdS0O6+ipSID9aRy/Qf09BsksmcP8K
77yFN+sVlCEggq4QOtuvVWyPxzA4tAH3Hd1vaE3xUOePdVvdFU17k5llXWYmB/QjCfsNerUORitk
O4eTo+xHFJUKr/HAORaohjcDB1IsBhSrxP4Qv/EPKD5jUWKvId7/ryiimaKZYjKimX6D4gNQSwME
FAACAAgAKmGbTHo0bcjoAAAANAkAAFsAHABodHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQt
Y2xpY2stYW5kLWZvcm0tc3VibWlzc2lvbi1mcm9tLWluYWN0aXZlLWRvbXdpbmRvdy1zdGRlcnIu
dHh0VVQJAANfdeNaSWfjWnV4CwABBPUBAAAEFAAAAO2U7UrDUAyG/3sVuQAZ3fxcEaEe6pSBhbZQ
QaSc1sgOO0tKTlbn3Tv1EkRkcv4FEghPwvtkg8DsAqazNJmn0zlAg93SaY1Byy0RytPpydnl+TNc
5SIs1ymYhWFS3GmFeuu8N+xZGqerryIFR6P17gX67ylIdskE7l/hnbfwZklBGQIi6Aqhs/1axfZ4
DINHG3Df0f2G1hQPdf5Yt9Vd0bQ3mVnWZWZyQBqdMG2Q1HoYrTjbeZwcZT+iqFR4jQfOsUA1vBk4
OMViQLHqmA7xG/+A4jMWJfYa4v3/iiKaKZopJiOa6TcoPgBQSwMEFAACAAgAK2GbTKG4U3XnAAAA
NAkAAEwAHABodHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtc2NyaXB0LWluamVjdC1pbnRv
LWluYWN0aXZlLXdpbmRvdy1zdGRlcnIudHh0VVQJAANideNaTGfjWnV4CwABBPUBAAAEFAAAAO2U
3UrEQAxG732KPIAstf4XEepQV1mw0BYqiJS0RnbY2UnJZOv69q76CCKyMneBBMJJ+E4+CqTncJRm
yWWWpgAt9QurDQWtNt6TPJ0cn16cPcNVIcJynYGZG/ZKW61Jb61zhh1La3X5VWRg/YTOvsDwPQXJ
NpnB/Su88wbe0CsoQyACXRL0OKxUcKBDGB1hoF1Hdxs6Uz40xWPT1Xdl293kZtFUuSmA/GSF/Zq8
ooMJxWLvaHaQ/4iiVuEV7TnHnNTweuRglcqRBNWy38dv/AOKz1hUNGiI9/8rimimaKaYjGim36D4
AFBLAwQUAAIACAArYZtMN55Sp+cAAAA0CQAATQAcAGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURF
TklFRC1zY3JpcHQtaW5qZWN0LWludG8taW5hY3RpdmUtd2luZG93Mi1zdGRlcnIudHh0VVQJAANh
deNaS2fjWnV4CwABBPUBAAAEFAAAAO2U3UrEQAxG732KPIAstf4XEepQV1mw0BYqiJRpjeyws0nJ
ZOv69q76CCKyMneBBMJJ+E4+CqTncJRmyWWWJgAt9gunDQatNkQoTyfHpxdnz3BViLBcZ2Dmhklx
qzXqrfPesGdpnS6/igwcTda7Fxi+pyDZJjO4f4V33sCbJQVlCIigS4TeDisVO+AhjB5twF1Hdxs6
Uz40xWPT1Xdl293kZtFUuSkAaXLCtEZS62Gy4mzvcXaQ/4iiVuEV7jnHHNXweuTgFMsRxapj2sdv
/AOKz1hUOGiI9/8rimimaKaYjGim36D4AFBLAwQUAAIACAArYZtMfA1SzukAAAA0CQAATQAcAGh0
dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1zY3JpcHQtaW5qZWN0LWludG8taW5hY3RpdmUt
d2luZG93My1zdGRlcnIudHh0VVQJAANideNaTGfjWnV4CwABBPUBAAAEFAAAAO2Ub0vDQAyH3/sp
8gFkdN38V2TQHXXKwEJbqCBSrl3Gjt0uJZfV+e2d+hFkyOTeBRIIT8LvSXuG+AbGcRLdJfEYoMZ2
aaRCL8XeOeTX6eTq9voN7jNm4lkCaqHICR6kRHkw1iqyxLWRzXeRgHGDtmYF3c8URIdoBE9r+KA9
vGsnIAQeEWSD0OpuK6w7vITeovZ47MhxQ6Py5yp7qZryMa+beaqWVZGqDNANhsnt0Im2MGg2urU4
ukh/RVEK0xbPnGOBomjXkzeCeY+sxZA7x2/8A4qvWBTYiQ/3/yuKYKZgppCMYKZTUHwCUEsDBBQA
AgAIACthm0yhuFN15wAAADQJAABSABwAaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXN5
bmNocm9ub3VzLWZyYW1lLWxvYWQtaW4tamF2YXNjcmlwdC11cmwtc3RkZXJyLnR4dFVUCQADYnXj
Wk1n41p1eAsAAQT1AQAABBQAAADtlN1KxEAMRu99ijyALLX+FxHqUFdZsNAWKoiUtEZ22NlJyWTr
+vau+ggisjJ3gQTCSfhOPgqk53CUZslllqYALfULqw0FrTbekzydHJ9enD3DVSHCcp2BmRv2Slut
SW+tc4YdS2t1+VVkYP2Ezr7A8D0FyTaZwf0rvPMG3tArKEMgAl0S9DisVHCgQxgdYaBdR3cbOlM+
NMVj09V3Zdvd5GbRVLkpgPxkhf2avKKDCcVi72h2kP+IolbhFe05x5zU8HrkYJXKkQTVst/Hb/wD
is9YVDRoiPf/K4popmimmIxopt+g+ABQSwMEFAACAAgALGGbTIlFy+VeAQAALwsAAEUAHABodHRw
L3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQteHNsLWRvY3VtZW50LXNlY3VyaXR5T3JpZ2luLXN0
ZGVyci50eHRVVAkAA2N141pNZ+NadXgLAAEE9QEAAAQUAAAA7ZbdSgMxEIXv+xTzAHa7Xf9qEKGu
q5aChbZQQaSk21MbTJNlMlu3b++24hOISGXJTS5OmPMlM4fkflMYq8V4R2D2rGhlLGgtUqhOp5tc
RnG9uqoXx3EnIC/ZyK5ThdC+y54G2V27Cra99Hm5gZP2t2DE5s24qNpYssaBEoLFXkFBdhZhDUir
Pqm24FDXVuSd3VE3imkFLSUjkGZQKIvCs2DZ6hdMySV1ExVfqeSUaIbF0MgUQcalc+CXs9Pz3sUr
XWd7jBtF6UPqnaCSCeTeWJt663lmZH3YKDJuq61ZUv6loriKIxqsaOdL+tC1VfEUAJI1aKHzd2Gd
44QKCx1qZ5C6wjwdPU2z5+l88jiazW/76XA67qcZwW0Ne7cn1pa2mo1eWEQ/pJgI+3ccOccDJK2b
zgcjGBXgQ+8d42v8A4r9WIyRS2ju/68ommRqkqmZjCaZfoMiP5bP3dEY/QRQSwMECgAAAAAALlyb
TAAAAAAAAAAAAAAAAB8AHABodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvVVQJAAP4bONa
vnfjWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAAiYZtM74MqpugAAAA0CQAAPwAcAGh0dHAvdGVz
dHMvc2VjdXJpdHkveHNzQXVkaXRvci9saW5rLW9wZW5zLW5ldy13aW5kb3ctc3RkZXJyLnR4dFVU
CQADUHXjWjxn41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGec2FIsI9ajbGFhoCxVEyrVG
dux2Kbmszrd3ukcYY0zuWyCB8Ev4/9KeYXwHN+NE3SdqClBju7RSYZBi6z3y23Ryqybv8JAxEz8m
oGeavOBOSpRn65wmR1xbWf0VCVg/GGc/oDtMgdqpESw+4Zu28GW8gBAERJAVQmu6tbDp8Bp6hybg
viP7DY3OX6rstWrKeV43T6leVkWqM0A/WCa/QS/GwWDYmtbh6Co9iqIUpjVeOMcMRdOmp2AF8x7Z
iCV/id/4BxS/sSiwkxDvfy6KaKZoppiMaKZTUPwAUEsDBBQAAgAIACNhm0xvk/FdygAAAE0BAAA7
ABwAaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL29iamVjdC1zcmMtaW5qZWN0LXN0ZGVy
ci50eHRVVAkAA1J141r4bONadXgLAAEE9QEAAAQUAAAArY/BasMwEETv+Yr9gWxtRbYTQSDYzqlQ
SnvooZSytjeJiKw1stz+fu1Ae+g515lh3oxK0u060WtVQKpMsjNJjkWqoJUeaRgc4xs3jzbis5vO
1mOuseYvdjL07OO7zlW2M5tNpjP9AU8cvyVcX6MEOnNdmk8Z2NflC1NXiffcRit+NHAi67iDKLAE
IMz+TPwNLHpdwgEeKmovjF2DAMcQJOxTjVDRNPJ+8tQ4/qvoKFJDI8Npbl6pe766jVguGPgHbRfn
RhzBelj9AFBLAwQUAAIACAAqYZtM1f/nwOcAAAA0CQAAUwAcAGh0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzQXVkaXRvci93aW5kb3ctb3Blbi13aXRob3V0LXVybC1zaG91bGQtbm90LWFzc2VydC1zdGRl
cnIudHh0VVQJAANgdeNaS2fjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZZycbFhHq0U0Z
rNAWKgwp1xrZsdul5LI6396pjyAik/sWSCD8Ev6/bGBI5nCVpOomTRRAg93KSo1ByoP3yJvr6UxN
n+E2Zya+S0EvNXnBo1QoC+ucJkfcWNl+FSlYPxpnX6D/ngJ1VBN4fIV3OsCb8QJCEBBBtgid6XfC
psdLGByagKeOnDa0uljX+VPdVg9F095nelWXmc4B/WiZ/B69GAejYWs6h5OL7EcUlTDt8Mw5liia
9gMFK1gMyEYs+XP8xj+g+IxFib2EeP+/oohmimaKyYhm+g2KD1BLAwQKAAAAAAAaWZtMAAAAAAAA
AAAAAAAADwAcAGh0dHAvdGVzdHMvc3NsL1VUCQADM2fjWr5341p1eAsAAQT1AQAABBQAAABQSwME
FAACAAgAGlmbTN98ek75AAAAaBIAAC4AHABodHRwL3Rlc3RzL3NzbC9pZnJhbWUtdXBncmFkZS5o
dHRwcy1zdGRlcnIudHh0VVQJAAMzZ+NaM2fjWnV4CwABBPUBAAAEFAAAAO3UUUrDQBAG4HdPMQeQ
kgRKNYgQl7RKwUASiCASNnGkS7c7YTKN9fZWPYIPpWXeFnZh+Gf5v2xgSBYQx2l0k84jgAa7tZMa
Ryn3ISC/JvM4uX2Du5yZ+D4FszIUBA9SoSyd94Y8ceNk83tIwYXJevcO/d8riA7RDJ4+4Iv28GmD
gBCMiCAbhM72W2Hb4zUMHu2Ixxs5TmhN8VznL3VbPRZN+5CZdV1mJgcMk2MKOwxiPUyWne08zq6y
f6WohGmLZ55jhWJoN9DoBIsB2YqjcI6/cQEpfmpRYi+j7v9UKVQmlUmboTKpTCqTyqQy6f5VJpVJ
m6EynSbFN1BLAwQKAAAAAAAcWZtMAAAAAAAAAAAAAAAAEwAcAGh0dHAvdGVzdHMvd29ya2Vycy9V
VAkAAzdn41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAACRZm0wAAAAAAAAAAAAAAAAbABwA
aHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvVVQJAANDZ+NavnfjWnV4CwABBPUBAAAEFAAAAFBL
AwQUAAIACAAgYZtMxZfDkOcAAAA0CQAAQQAcAGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL0Ns
aWVudC1wcm9wZXJ0aWVzLWF1eGlsaWFyeS1zdGRlcnIudHh0VVQJAANMdeNaN2fjWnV4CwABBPUB
AAAEFAAAAO2U4UrDQAzHv/sUeQAZdW44iwj1qFMGFtpCBZGS1siO3S4ll9X59k59BBGZ3LdAAuGX
8P9lg8D0As6mabJI55cADXUrqzUFLXfekzzNzuezxTNc5SIs1ymYpWGvtNeK9NY6Z9ixNFbXX0UK
1o/o7Av031OQ7JMJ3L/CO+/gDb2CMgQi0DVBh/1GBXs6hcERBjp09LChNcVDnT/WbXVXNO1NZlZ1
mZkcyI9W2G/JKzoYUSx2jiYn2Y8oKhXe0JFzLEkNbwcOVqkYSFAt+2P8xj+g+IxFSb2GeP+/oohm
imaKyYhm+g2KD1BLAwQUAAIACAAiYZtMPWqcSOcAAAA0CQAAWwAcAGh0dHAvdGVzdHMvd29ya2Vy
cy9zZXJ2aWNlL2NsaWVudC1hZGRlZC10by1jbGllbnRzLXdoZW4tcmVzdG9yZWQtZnJvbS1wYWdl
LWNhY2hlLXN0ZGVyci50eHRVVAkAA1B141pAZ+NadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5
ABl1m6hFhHrUKQMLbaEDkXKtkR27JSWX1fn2Tn0EEZnct0AC4Zfw/2WDwPQCzqZpcpUmM4AGu6XT
GoOWOyKUp/nsfH75DNe5CMtNCmZhmBT3WqHeOe8Ne5bG6fqrSMHRaL17gf57CpJ9MoGHV3jnHbxZ
UlCGgAi6Ruhsv1GxPZ7C4NEGPHT0sKE1xWOdr+q2ui+a9jYzy7rMTA5IoxOmLZJaD6MVZzuPk5Ps
RxSVCm/wyDkWqIa3AwenWAwoVh3TMX7jH1B8xqLEXkO8/19RRDNFM8VkRDP9BsUHUEsDBBQAAgAI
ACJhm0yNlO6M5wAAADQJAABVABwAaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvY2xpZW50LXJl
bW92ZWQtZnJvbS1jbGllbnRzLXdoaWxlLWluLXBhZ2UtY2FjaGUtc3RkZXJyLnR4dFVUCQADUHXj
WkBn41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGXVW1CJCPeqUgYW2UEGkXGtkx25JyWV1
vr1TH0FEJvctkED4Jfx/+SgwP4eTeZZcZkkK0GK/dNpg0GpLhPKUnp6lF89wVYiwXGdgFoZJcac1
6q3z3rBnaZ2uvooMHE3WuxcYvqcg2SUzuH+Fd97CmyUFZQiIoCuE3g5rFTvgMYwebcB9R/cbOlM+
NMVj09V3Zdvd5GbZVLkpAGlywrRBUuthsuJs73F2lP+IolbhNR44xwLV8Gbk4BTLEcWqYzrEb/wD
is9YVDhoiPf/K4popmimmIxopt+g+ABQSwMEFAACAAgAI2GbTMYH7uXnAAAANAkAAEoAHABodHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZWdpc3RyYXRpb24tdGFzay1xdWV1ZS1zY2hlZHVsaW5n
LTEtc3RkZXJyLnR4dFVUCQADUnXjWkNn41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGXVu
qEWEetQpAwttoQORktbIjt0uJZfV+fZOfQQRmdy3QALhl/D/ZYPA9ALOpmlylSZzgIa6pdWagpY7
70meZufz2eUzXOciLDcpmIVhr7TXivTOOmfYsTRW119FCtaP6OwL9N9TkOyTCTy8wjvv4A29gjIE
ItA1QYf9RgV7OoXBEQY6dPSwoTXFY52v6ra6L5r2NjPLusxMDuRHK+y35BUdjCgWO0eTk+xHFJUK
b+jIORakhrcDB6tUDCSolv0xfuMfUHzGoqReQ7z/X1FEM0UzxWREM/0GxQdQSwMECgAAAAAATFmb
TAAAAAAAAAAAAAAAABoAHABodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L1VUCQADkGfjWr5341p1
eAsAAQT1AQAABBQAAABQSwMEFAACAAgAJ2GbTJ1gYAPnAAAANAkAADEAHABodHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L2Nsb3NlLXdpbmRvdy1zdGRlcnIudHh0VVQJAANZdeNaQ2fjWnV4CwABBPUB
AAAEFAAAAO2U4UrDQAzHv/sUeQAZ3aaMFRHqUacMLLSFCiIlrZEdu11KLqvz7Z36CCIyuW+BBMIv
4f/LBoHZAqazNFmm0zlAQ93aak1By733JE8X88vF8hmuchGW6xTMyrBXOmhFemudM+xYGqubryIF
60d09gX67ylIDskE7l/hnffwhl5BGQIR6Iagw36rgj2dw+AIAx07etzQmuKhzh/rtrormvYmM+u6
zEwO5Ecr7HfkFR2MKBY7R5Oz7EcUlQpv6cQ5VqSGdwMHq1QMJKiW/Sl+4x9QfMaipF5DvP9fUUQz
RTPFZEQz/QbFB1BLAwQUAAIACAAnYZtMLZ4Sx+cAAAA0CQAAPwAcAGh0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvY3Jvc3Mtb3JpZ2luLWF1dGhvcml6YXRpb24tc3RkZXJyLnR4dFVUCQADWnXjWkRn
41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGd2cjBUR6lGnDCy0hQoiJa2RHbtdSi6r8+2d
+ggiMrlvgQTCL+H/ywaB2QKmszRZptM5QEPd2mpNQcu99yRP84vLxfIZrnIRlusUzMqwVzpoRXpr
nTPsWBqrm68iBetHdPYF+u8pSA7JBO5f4Z338IZeQRkCEeiGoMN+q4I9ncPgCAMdO3rc0Jrioc4f
67a6K5r2JjPrusxMDuRHK+x35BUdjCgWO0eTs+xHFJUKb+nEOVakhncDB6tUDCSolv0pfuMfUHzG
oqReQ7z/X1FEM0UzxWREM/0GxQdQSwMEFAACAAgAJ2GbTC2eEsfnAAAANAkAAEIAHABodHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L2Nyb3NzLW9yaWdpbi1uby1hdXRob3JpemF0aW9uLXN0ZGVyci50
eHRVVAkAA1p141pEZ+NadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABndnIwVEepRpwwstIUK
IiWtkR27XUouq/PtnfoIIjK5b4EEwi/h/8sGgdkCprM0WabTOUBD3dpqTUHLvfckT/OLy8XyGa5y
EZbrFMzKsFc6aEV6a50z7Fgaq5uvIgXrR3T2BfrvKUgOyQTuX+Gd9/CGXkEZAhHohqDDfquCPZ3D
4AgDHTt63NCa4qHOH+u2uiua9iYz67rMTA7kRyvsd+QVHYwoFjtHk7PsRxSVCm/pxDlWpIZ3Awer
VAwkqJb9KX7jH1B8xqKkXkO8/19RRDNFM8VkRDP9BsUHUEsDBBQAAgAIAGJhm0xTNgIp1AAAAHcB
AABGABwAaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZWRpcmVjdC1jcm9zcy1vcmlnaW4tc3lu
Yy1kb3VibGUtc3RkZXJyLnR4dFVUCQADx3XjWo1n41p1eAsAAQT1AQAABBQAAAClkL1uwzAMhPc8
BV/AP8nQFtoMw2iHpAbipatKEzFRVnQlGa3fvnKstVPBhcAR992x7V+H/tzBpRuG5rkzIOwITg8G
Wq8hFOr5xg48jewJI6uDqDDFOJuqEkUrk4Zonuq6rn4+ZRM8fS0UYuUp6OKRQtpmWcskw0iOaYT3
Ndv3u/01n8IwWc/uBrMK42og65l3PD2WdZrjnQccwGkEK6Lfu2mDCReKVl30KkWzKZlRHto/q75d
zi+JcN2DA1q3+Yra8R9NF9o+Ze+JAPdEgBPhRygPv1BLAwQUAAIACABjYZtMkPo2nekAAAA0CQAA
NwAcAGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVxdWVzdC1mcm9tLXBvcHVwLXN0ZGVyci50
eHRVVAkAA8p141qQZ+NadXgLAAEE9QEAAAQUAAAA7ZRvS8NADIff71PkA4zRzj/DIkJ31DkGK7SF
DkTKtYvs2O1Sclmd396pH0FEJvcukEB4En5P2jNMZxBPkzhOoluAGtuVkQq9FEfnkJ+vr25mdy9w
nzETPySgFoqc4ElKlEdjrSJLXBvZfRUJGDdoa7bQfU9BdIomsHyFdzrCm3YCQuARQXYIre72wrrD
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
QAAAAEcAHABpbXBvcnRlZC9ibGluay9mYXN0L2Zvcm1zL2J1dHRvbi9idXR0b24tcmVzZXQtZm9j
dXMtYnktbW91c2Utc3RkZXJyLnR4dFVUCQADXXXjWkln41p1eAsAAQT1AQAABBQAAADLzS8tTvXN
L0sNyVdIS8zMSU1RKAGyMvNSFBIVShKL0lNLFMoyU8sVEksULAwM9AzAQAfG4AIAUEsDBAoAAAAA
ACdZm0wAAAAAAAAAAAAAAAAgABwAaW1wb3J0ZWQvYmxpbmsvZmFzdC9mb3Jtcy9yYW5nZS9VVAkA
A0ln41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAClhm0zHIe/bNwAAAEAAAAA/ABwAaW1w
b3J0ZWQvYmxpbmsvZmFzdC9mb3Jtcy9yYW5nZS9yYW5nZS1mb2N1cy1ieS1tb3VzZS1zdGRlcnIu
dHh0VVQJAANddeNaSWfjWnV4CwABBPUBAAAEFAAAAMvNLy1O9c0vSw3JV0hLzMxJTVEoAbIy81IU
EhVKEovSU0sUyjJTyxUSSxQsDAz0DMBAB8bgAgBQSwMECgAAAAAAJ1mbTAAAAAAAAAAAAAAAACEA
HABpbXBvcnRlZC9ibGluay9mYXN0L2Zvcm1zL3N1Ym1pdC9VVAkAA0ln41q+d+NadXgLAAEE9QEA
AAQUAAAAUEsDBBQAAgAIAClhm0zHIe/bNwAAAEAAAABBABwAaW1wb3J0ZWQvYmxpbmsvZmFzdC9m
b3Jtcy9zdWJtaXQvc3VibWl0LWZvY3VzLWJ5LW1vdXNlLXN0ZGVyci50eHRVVAkAA11141pJZ+Na
dXgLAAEE9QEAAAQUAAAAy80vLU71zS9LDclXSEvMzElNUSgBsjLzUhQSFUoSi9JTSxTKMlPLFRJL
FCwMDPQMwEAHxuACAFBLAwQKAAAAAABsXJtMAAAAAAAAAAAAAAAAFwAcAGltcG9ydGVkL2JsaW5r
L3N0b3JhZ2UvVVQJAANsbeNavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAABsXJtMAAAAAAAA
AAAAAAAAIQAcAGltcG9ydGVkL2JsaW5rL3N0b3JhZ2UvaW5kZXhlZGRiL1VUCQADbG3jWr5341p1
eAsAAQT1AQAABBQAAABQSwMEFAACAAgAbFybTPLXPVp+AAAAhwAAAEQAHABpbXBvcnRlZC9ibGlu
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
fqQY9Hclhp/m6g34e06P0T1d7QnuLgheRoHBSwV6t8ChOXyzP8QnO0CsCwwi0CdrhqXxzjjVj1er
D8T6iXmz17eO4ru+dlps0M2FzxJAbd5PMWlo7XvH3vYj9vD7iT34gcQefT+xT75J7Ku9ij3eldiO
ckU556tb/WszRAugspzuB/jpj8pIBruo4zXGuR+Yu6jaCP3wzfJoS7M8+3zzf+x0x9+G7FvauMaH
eUf1tmd/w+1/UEsDBBQAAgAIAGxcm0ytGeiiXAAAAF4AAABEABwAaW1wb3J0ZWQvYmxpbmsvc3Rv
cmFnZS9pbmRleGVkZGIvYmxvYi12YWxpZC1iZWZvcmUtY29tbWl0LXN0ZGVyci50eHRVVAkAA2xt
41psbeNadXgLAAEE9QEAAAQUAAAAC0/MLFHIz1PIyy/JTKt0yc9LVSjJzE1NUcgvLdFRKCjKT04t
LlZIzs/VSywoyEnVC09N8s4sAVHO+XklqXklei6pZak5+QW5QLZCQWaKgq2CsbGBhYmyq78bFwBQ
SwMECgAAAAAAK1mbTAAAAAAAAAAAAAAAABsAHABpbXBvcnRlZC9ibGluay90cmFuc2l0aW9ucy9V
VAkAA1Jn41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAC1hm0xBMeSE8QAAAM4NAAA6ABwA
aW1wb3J0ZWQvYmxpbmsvdHJhbnNpdGlvbnMvdW5wcmVmaXhlZC10cmFuc2Zvcm0tc3RkZXJyLnR4
dFVUCQADZXXjWlJn41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGV3dGCsi1KNOGazQFiqM
Ua5dZMdul5LL6nx7pz6CH2TuvgUSCL+E/y/tGeIZjOMkmifxFKDGdmmkQi/F0Tnk9eRuOh9v4D5j
Jn5IQC0UOcGTlChPxlpFlrg2svsuEjBu0NZsofuZgugUjeDlDT7oCO/aCQiBRwTZIbS62wvrDm+h
t6g9njty3tCofFVlr1VTPud185iqZVWkKgN0g2FyB3SiLQyajW4tjm7SX1GUwrTHC+dYoCg69OSN
YN4jazHkLvEb/4DiKxYFduLD/f+KIpgpmCkkI5gpmCmYKZgpmOk67v8JUEsDBBQAAgAIAC1hm0y1
HJmfCAEAAGgSAABFABwAaW1wb3J0ZWQvYmxpbmsvdHJhbnNpdGlvbnMvemVyby1kdXJhdGlvbi1z
aG91bGQtbm90LWNhbmNlbC1zdGRlcnIudHh0VVQJAANmdeNaUmfjWnV4CwABBPUBAAAEFAAAAO3U
4UrDMBAH8O8+xT2AjK66yooINdQpAwttoQORktaThWW5cr3V+fZOfQQVXc23QALhf8f/l3QM4QVM
wziYx+EMoMJmaaTEXvKdc8gP52ez+fQRLlNm4qsY1EKRE9xLgXJjrFVkiSsj649DDMYN2ponaD9f
QbAPJnD3DK+0gxftBISgRwRZIzS63QjrFk+hs6h7PNzI4YdaZfdluirr4jar6utELcs8USmgGwyT
26ITbWHQbHRjcXKSfClFIUwbPPIcCxRF2456I5h1yFoMuWPcxghSvNcix1Z6P//fSuFl8jL5ZniZ
fj5FNAqZopHIFI1Cpuj/NeNPyRR5mbxMXibfDC/TN6V4A1BLAwQKAAAAAAArWZtMAAAAAAAAAAAA
AAAAEQAcAGltcG9ydGVkL21vemlsbGEvVVQJAANSZ+NavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQK
AAAAAAArWZtMAAAAAAAAAAAAAAAAIAAcAGltcG9ydGVkL21vemlsbGEvY3NzLWFuaW1hdGlvbnMv
VVQJAANRZ+NavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAAtYZtMKUQjJ/AAAADODQAASQAc
AGltcG9ydGVkL21vemlsbGEvY3NzLWFuaW1hdGlvbnMvdGVzdF9hbmltYXRpb24tY29tcHV0ZWQt
dGltaW5nLXN0ZGVyci50eHRVVAkAA2V141pRZ+NadXgLAAEE9QEAAAQUAAAA7ZTRSsNQDIbvfYo8
gIxaN8QiQj3UKQMLbaGCSElrZIednZScrM63d+ojeCHTcxdIIHwJ/5ePAukFnKVZcpmlc4CW+pXV
hoJWO+9Jnubni0X6DFeFCMt1BmZp2CvttSa9tc4Zdiyt1fVXkYH1Ezr7AsP3FCT7ZAb3r/DOO3hD
r6AMgQh0TdDjsFHBgU5hdISBDh09bOhM+dAUj01X35Vtd5ObVVPlpgDykxX2W/KKDiYUi72j2Un+
I4pahTd05BxLUsPbkYNVKkcSVMv+GL/xByg+Y1HRoCHe/7coopmimWIyopmimaKZopmimf7H/T8A
UEsDBAoAAAAAADBcm0wAAAAAAAAAAAAAAAAhABwAaW1wb3J0ZWQvbW96aWxsYS9jc3MtdHJhbnNp
dGlvbnMvVVQJAAP7bONavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAAtYZtMBmYc/PoAAABo
EgAAPgAcAGltcG9ydGVkL21vemlsbGEvY3NzLXRyYW5zaXRpb25zL3Rlc3RfZWZmZWN0LXRhcmdl
dC1zdGRlcnIudHh0VVQJAANldeNaUWfjWnV4CwABBPUBAAAEFAAAAO3UUUrDQBAG4HdPMQeQksaK
GkRIl1ilYCAJpCASNulIl253wmQa6+2tegQfSmXeFnZh+Gf5v7RniG9gGifRXRLPAGpsl04qHKTY
h4D8Oru6vp2+wX3GTPyQgFkYCoIHKVEenfeGPHHtZPNzSMCF0Xq3hu73FUSHaALP7/BJe/iwQUAI
BkSQDUJru62w7fASeo92wOONHCc0Jn+pslXVlE953cxTs6yK1GSAYXRMYYdBrIfRsrOtx8lF+qcU
pTBt8cxzLFAM7XoanGDeI1txFM7xN/5Biu9aFNjJoPs/VQqVSWXSZqhMKpPKpDKpTLp/lUll0mao
TKdJ8QVQSwMEFAACAAgAMFybTJbWRMzkAAAAcAEAAD8AHABpbXBvcnRlZC9tb3ppbGxhL2Nzcy10
cmFuc2l0aW9ucy90ZXN0X2V2ZW50LWRpc3BhdGNoLXN0ZGVyci50eHRVVAkAA/ts41r7bONadXgL
AAEE9QEAAAQUAAAAtY9LbsMgFEXnXQUbiIDHzwzhYSadRVErdeZgUlu1IcJO2uXXXUTv8EhHOjcO
85JHsleSWh72TKahjWSZyxe5tboS+hwavdVlzG2jptBNQwI+KXlX0i7pXtSTcVgTO/ZZ6IW+5+vr
vF/ytp8fpRzW6ed7ZR8TxSFNmb4dZK6FcKB+qdeNcsRgUDMAb1GgVj4G11vZSQ5gYq9BWInC/yX+
Y8w5p9rGjQaNXkbFReeMhdgpCw5kAOsMGg1OSRWlFt0hbPXRUqbeBoyauRhRGA4Sgu0VCOV0NEwZ
4ZGbXntxuh5/X34BUEsDBAoAAAAAADBcm0wAAAAAAAAAAAAAAAAVABwAaW1wb3J0ZWQvbW96aWxs
YS9zdmcvVVQJAAP7bONavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAAwXJtMAAAAAAAAAAAA
AAAAHAAcAGltcG9ydGVkL21vemlsbGEvc3ZnL3NpemluZy9VVAkAA/ts41q+d+NadXgLAAEE9QEA
AAQUAAAAUEsDBBQAAgAIADBcm0wZAcYR+QAAAGgSAABAABwAaW1wb3J0ZWQvbW96aWxsYS9zdmcv
c2l6aW5nL2lubGluZS0tZGlzcGxheS1ibG9jay0tMDEtc3RkZXJyLnR4dFVUCQAD+2zjWvts41p1
eAsAAQT1AQAABBQAAADt1FFKw0AQBuB3TzEHkNI0aCGIEJdYpWAgCUQQCZs40qXbnTA7jfX2Vj2C
D6Uybwu7MPyz/F8+MiyWkCRZmmZpAtBiv3bSYJRqHwLyS7q4Wl6/wk3BTHybgVkZCoIHqVHunfeG
PHHrZPNzyMCFyXr3BsPvK5gf5jN4fIdP2sOHDQJCEBFBNgi9HbbCdsBLGD3aiMcbOU7oTPnUFM9N
Vz+UbXeXm3VT5aYADJNjCjsMYj1Mlp3tPc4u8j+lqIVpi2eeY4ViaDdSdILliGzFUTjH3/gHKb5r
UeEgUfd/qhQqk8qkzVCZVCaVSWVSmXT/KpPKpM1QmU6T4gtQSwMECgAAAAAAMFybTAAAAAAAAAAA
AAAAABoAHABpbXBvcnRlZC9tb3ppbGxhL3N2Zy9zbWlsL1VUCQAD/GzjWr5341p1eAsAAQT1AQAA
BBQAAABQSwMEFAACAAgALWGbTOdduc36AAAAaBIAADIAHABpbXBvcnRlZC9tb3ppbGxhL3N2Zy9z
bWlsL2FuaW0tY2xhc3MtMDQtc3RkZXJyLnR4dFVUCQADZnXjWlJn41p1eAsAAQT1AQAABBQAAADt
1FFKw0AQBuB3TzEHkJJGixpESJdYpWAgCaQgEjbpSJdud8JkGuvtrXoEH0pl3hZ2Yfhn+b+0Z4hv
YBon0V0SzwBqbJdOKhyk2IeA/Hp9NbudvsF9xkz8kIBZGAqCBylRHp33hjxx7WTzc0jAhdF6t4bu
9xVEh2gCz+/wSXv4sEFACAZEkA1Ca7utsO3wEnqPdsDjjRwnNCZ/qbJV1ZRPed3MU7OsitRkgGF0
TGGHQayH0bKzrcfJRfqnFKUwbfHMcyxQDO16Gpxg3iNbcRTO8Tf+QYrvWhTYyaD7P1UKlUll0mao
TCqTyqQyqUy6f5VJZdJmqEynSfEFUEsDBAoAAAAAACtZm0wAAAAAAAAAAAAAAAAkABwAaW1wb3J0
ZWQvbW96aWxsYS9zdmcvc21pbC9jb250YWluZXIvVVQJAANSZ+NavnfjWnV4CwABBPUBAAAEFAAA
AFBLAwQUAAIACAArWZtMEtvSt/kAAABoEgAAPQAcAGltcG9ydGVkL21vemlsbGEvc3ZnL3NtaWwv
Y29udGFpbmVyL2ludmFsaWQtZWxlbS0xLXN0ZGVyci50eHRVVAkAA1Jn41pSZ+NadXgLAAEE9QEA
AAQUAAAA7dRRSsNAEAbgd08xB5CSxIoYRIhLrFIwkAQiFAmbOKVLtzthMo319lY9gg+lMm8LuzD8
s/xfNjAkNxDHaXSbJglAg93SSY2jlPsQkFfJdTy/eoO7nJn4PgWzMBQED1KhPDrvDXnixsnm55CC
C5P17h3631cQHaIZPK/hk/bwYYOAEIyIIBuEzvZbYdvjJQwe7YjHGzlOaE3xUuevdVs9FU37kJll
XWYmBwyTYwo7DGI9TJad7TzOLrI/paiEaYtnnmOBYmg30OgEiwHZiqNwjr/xD1J816LEXkbd/6lS
qEwqkzZDZVKZVCaVSWXS/atMKpM2Q2U6TYovUEsDBAoAAAAAADBcm0wAAAAAAAAAAAAAAAAhABwA
aW1wb3J0ZWQvbW96aWxsYS9zdmcvc21pbC9yZXBlYXQvVVQJAAP8bONavnfjWnV4CwABBPUBAAAE
FAAAAFBLAwQUAAIACAAtYZtM1YO8ggUBAABoEgAAPwAcAGltcG9ydGVkL21vemlsbGEvc3ZnL3Nt
aWwvcmVwZWF0L2luZGVmaW5pdGUtcmVwZWF0LTEtc3RkZXJyLnR4dFVUCQADZnXjWvxs41p1eAsA
AQT1AQAABBQAAADt1FFKxDAQBuB3TzEHkKVWW7GIUENdZcFCW6ggUtI6smGzmTKdrevtXfUIPmi7
eQskMPwT/i/tGcJLOAuT4CoJI4Aa25WRCgcpds4hP1+cR1H4AtcZM/FNAmqpyAnupUS5M9YqssS1
kfX3IQHjRm3NK3Q/ryDYBwt4eIMP2sG7dgJCMCCCrBFa3W2EdYen0FvUAx5u5DChUfljlT1VTXmf
181tqlZVkaoM0I2GyW3RibYwaja6tbg4SX+VohSmDU48xxJF0banwQjmPbIWQ26KvzGDFF+1KLCT
we//r1J4mbxMvhleJi+Tl8nL5GU6xv3Hs5ApnolM8Sxkio+vGf9Kpqnu/xNQSwMECgAAAAAAMlmb
TAAAAAAAAAAAAAAAAA0AHABpbXBvcnRlZC93M2MvVVQJAANfZ+NavnfjWnV4CwABBPUBAAAEFAAA
AFBLAwQKAAAAAACLWZtMAAAAAAAAAAAAAAAAIAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvVVQJAAMFaONavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAA2WZtMAAAAAAAAAAAA
AAAAKgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL1VUCQADZ2fj
Wr5341p1eAsAAQT1AQAABBQAAABQSwMEFAACAAgANlmbTJNx5rqBAAAAowAAAEwAHABpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4
My1hY3R1YWwudHh0VVQJAANnZ+NaZ2fjWnV4CwABBPUBAAAEFAAAAC2LSwrCQBBE9zlFLXVhDuDO
D0LAlRcI7UyJAdM9zPSEeHtHdFNVPF51l8NwxXA+nmoulvuaojg3W+wwaeTaWtw5J4cbZovT4w1B
ZrAcmwLRlhJ8WgjPouW7rfFSmH2sminhybhHVa6JwRlhidqXGgJLAReq4/bT8D/I/UUEi+y6D1BL
AwQUAAIACAA2WZtMsxuIIAEBAAA2AgAASgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgzLWRpZmYudHh0VVQJAANnZ+NaZ2fj
WnV4CwABBPUBAAAEFAAAAM1Qy2rDMBC8+yv22OLKouTWk/NoIbSHkkBzDGtpQgWyZKRVHn9fx0k/
odDLzsLOzM6uUor0V/SlR9YrFtavu63eoXt3codFcd7qDTw4Q3u+xCJKkEUl5OIla9cPMQmsPs2M
PqFTg2c5xNRPtKzXweIMu1poZztTUo5pXwbLgr27jmYK5wFmdGjkLFVd1/8hExsp7KdEbUvq+WlG
9bW0bUWV+pxvt7ReLZaTtLlJHx5J0SQfkUXQD0ISqY/WHS7ElGBisiOFOIx1XOGOIEkc8rWPgar6
bb7++AtnzhlJ9iUksPmGfaESfv9OcUBocjEGOROOCEKbG43uAu48yESL8fofUEsDBBQAAgAIADZZ
m0w2YbzGVQAAAFsAAABOABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDMtZXhwZWN0ZWQudHh0VVQJAANnZ+NaZ2fjWnV4CwAB
BPUBAAAEFAAAABWKuw2AMAwF+0zxSihgBz4NHRITWMRIKWJHxiDYntDcXXFhHbYNyzxOl51q/VUi
OTctOiSJ/FSTO+ficEXWmI4XBONdLdYFJJW0e7oZbiTn3yoI4QNQSwMEFAACAAgANlmbTFK+ky30
BwAA9hkAAFIAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJj
dXJzb3JfdXBkYXRlX2luZGV4My1wcmV0dHktZGlmZi5odG1sVVQJAANnZ+NaZ2fjWnV4CwABBPUB
AAAEFAAAAL1Za2/jNhb9nl9BJOhmt4gkO06ysZ3xYvLCDra7KJpi+3FAiZTFCSWqIhU70/a/9/Il
S7LkpMB2J5jowUvyvs+hcpOpnK+ObjKKCVxyqjBKMlxJqj6c1ioNrk/htVSvnK6OFpwVz2do8cIk
U5SgX44Q/FN0qwJCE1FhxUSxQIUo6NIMxaIitApioZTIF2habhGBe0qWR78d2eXcIongolqgk8ls
bsbCR8bpPUtTNx7j5HldiboggRdNr/VPeyO7gxScEXRCCLFjqShUkOKc8dcFykUhZIkTp2COqzUD
lac0RxP7qhRgnLGjohwseqFGoWza03Q2mw2sL3EhA0krlrYGJftKzR7tTQNOU7VAk/DSvydMlhzD
IqwAzzgNN4yoDCZPJt84/TAhrFg3M61uLjT6rhsdpy4rMlBKNeKZeKFVz6LLy8vlmLMptW4IdUy+
g72km5xygcGMiq0z1Y2clroD8zHY4rcS4HqmwMRJz2SFY06DhHLesTIw63a8tMnAusDEUKfapsLl
TrMnmujYjSaNmdxNmX66uJz1foeEmpRbu8PDtoTwwvpgGj1Dob70LRxVTzJC41f9GxlVb7lInr/H
lQrB1EXKKqmCJGOcjDpWb/cE888OLVbRHEJ79sZ+bg/vfptwQaxFOml36bMOskWxBPMAc7aG2lBi
wKyK6kz/Jy4Ip94dbh3tQv2cURvQXT4ndSV1aLTa/QrEMUSn9hGDPZvEscVj1DukRSfP99NhXdHX
ZS8xw8u34mVdjEIl3nRzmFYi7znb9Ue9h/b6f+o8phVkE21nl33rFd9voy5r5/NOA/TlMtQGfSVf
XFwMtpt29Jseoxe6tCVgy6Bp+C4PXHoOpYhVt5NOM9ewWoYbEwcbjgWJUbccaFJlpatTq+kc6LuJ
yxpvSKdWYVJgq9UMgT/NI9hRUfwc6BdWIZbjNe1EZoHOG4fHHGsvasEEWgPoAKq4O9S3exeV64v5
aO9NabprADqtYMUGHlvVPDCVpKQ7FYItx8XndL48hOnNSq7LtPVwVTEO14TsLYAI5eMz6PxNbaJv
0VNdlqJSgLSVy2Rwap7TQkn0bQT74VplwvrborEmM5D1CvI08ZEyE4zMCP43MloZDClhhH07u/KJ
rdsN5vzOazAofW6xLMfboAfvOfAC9+p80uBOf2vw+8F9mspuSrqzzZCeoSiphc1gQ+NnpgJV6bKz
nrCKo/BcLltmXDijT6TCqpa3dQwY3uBhqKtnUB09RQnBY1x1x/3WKaemQncDufjavG2a08zWseNR
+tazBX0/TgnHOsdBKrdLi5RtqV3H9eNJ16QQGw5iy2wfxTcMekHVS7Vmza8BKwjdQpM6YNoOCFsq
DNnlmlEH3q5dFyu0mq5gB6EJ9ovF9k1Fr3aKTm0SexCyT0ZZd98gmHtsFG6YWWdrllY4txr26qRL
I1o1cjfSafd98wpcU2wc1lMOxBE48zuA6Wr+uEsvh8kjg8YR3bGGRpJ9etwlx24N6779HB6lBMT3
WbvNR98U/FFn0h790WNk70xy9Xff0PbVPFAkrdOOzLHl8u2eW4gKXi9HuoyzX1MwObS5tcPX9WRI
hOOY8gVOocLO9qbb92YRA8gFmHqMfkXHy6MGiFvw3Z/NMTB0kQbqtaSDSx2PauQEe0fcjHLTIBsy
ijUZHcGok5xK6YnHqJ+HwtKqjifTqN8DhQAxQIhemKjlXfMGyOxXWty1wHII5z3l6ENMG1x0L4es
NZnge7t7dpnomsjMY+C7tHGpARyHKl0THbhwtG+E9LVxNq6hqop23/H4TtjLIhWJ86Gole4X7fKL
eW2QxA1BvqSgCyDY1BvSBkuzCnCYHzNqd4oc0q5Bf22DEkjBWGylXapJ9MKw7snq3y4nQNm4EhsI
ODCBDMNcR4qYCjUJauy4uHIsvqEi7tl3B01k9f9JF0T9J50+x88ZgVOWNUwHSPrD9wCiAA8TEr+A
78EDtIcr7ZPeHtQF03BmKdPu44dH/4EYnNzf37dK+uT68f7x8nGwPwG5HM7ih4eHIa0XNC+hQ3WC
72haTzKEW9C0U/kP8+vJtetbCae4+mzogT8K6Dfm2JRpkZvIfXW7kUnFSohplXw4zpQq5SKK8Be8
DddCrGFSyaROXfMu4iyW0Zefa1q9RtPwIjx3DyFQy/CLPF7Buma9FequnAhCAx1DugG5f0CkdTA/
XFy3poBS7kNhLMgrXKAeQG8s5YdTfxLQ3wuz6Sr6L8QTelZ0jxWOHn56in6i8b+YcpfbmnES/QC4
iyWNIFPAnYGi0GHh+F5zJSOW6wymJNrMkgjaRgD5pIDk50ZMRp80/aDk/jZiJLYfET7XJQHXfzbM
ZBYAwakxD9VWgdrTrratj0Wn+yPmED/2Xh/ukcyAbZOeiD7ZoM5HIfPxFIDWS5jPATuOcbqagm9h
fNWRgqp/WwaQ+3TlRiAuoIa/tFVqpZmWNsNO9g/bbM9sb9rckjto+vk7TP9LEctyecB+OECuvgeL
4GLuPz492Sf06f72zmRFaLPir39DATKZAVeslK5k3V9zQVj6CuSi0gdMfUBGsEtDjw1BsYwevent
rr+gV73tLCd00FMHvCDe4VLrKQDF1eNNpC/m/uOn7+zTn+IpvTDsDnDxuS6AgiYZBZJfF3RbWqat
z5uhrJMEIAzRFw27P1gx5CZgC3mEOqX/n6n+vyrv2TuCNvtzyrt3MQ0b+qD5c8/vUEsDBAoAAAAA
ADJZm0wAAAAAAAAAAAAAAAAtABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJD
cnlwdG9BUEkvVVQJAANfZ+NavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAABCWZtMAAAAAAAA
AAAAAAAAOQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dl
bmVyYXRlS2V5L1VUCQADfGfjWr5341p1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAM2GbTI80GnBE
AAAAoAkAAGIAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9n
ZW5lcmF0ZUtleS9mYWlsdXJlc19SU0EtT0FFUC5odHRwcy53b3JrZXItc3RkZXJyLnR4dFVUCQAD
cnXjWl9n41p1eAsAAQT1AQAABBQAAABzzi/NSVHIyy9RSE/NSy1KLElVSFTITq1UKEjMLNJRKC5J
LCktVtA1MTYw4XIeVTuqdlTtqNpRtaNqR9WOqh1VS3O1AFBLAwQUAAIACAA1YZtMVALJsjYAAADA
AgAAawAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVy
YXRlS2V5L2ZhaWx1cmVzX1JTQVNTQS1QS0NTMS12MV81Lmh0dHBzLndvcmtlci1zdGRlcnIudHh0
VVQJAAN1deNaYWfjWnV4CwABBPUBAAAEFAAAAHPOL81JUcjLL1FIT81LLUosSVVIVMhOrVQoSMws
0lEoLkksKS1W0DUxNjDhch5VO6p2kKkFAFBLAwQUAAIACABIYZtMjzQacEQAAACgCQAAYAAcAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3Rl
c3RfZmFpbHVyZXNfUlNBLU9BRVAuaHR0cHMtc3RkZXJyLnR4dFVUCQADl3XjWnpn41p1eAsAAQT1
AQAABBQAAABzzi/NSVHIyy9RSE/NSy1KLElVSFTITq1UKEjMLNJRKC5JLCktVtA1MTYw4XIeVTuq
dlTtqNpRtaNqR9WOqh1VS3O1AFBLAwQUAAIACABJYZtMVALJsjYAAADAAgAAaQAcAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3Rlc3RfZmFp
bHVyZXNfUlNBU1NBLVBLQ1MxLXYxXzUuaHR0cHMtc3RkZXJyLnR4dFVUCQADmnXjWnxn41p1eAsA
AQT1AQAABBQAAABzzi/NSVHIyy9RSE/NSy1KLElVSFTITq1UKEjMLNJRKC5JLCktVtA1MTYw4XIe
VTuqdpCpBQBQSwMECgAAAAAAR1mbTAAAAAAAAAAAAAAAAC8AHABpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L1VUCQADhWfjWr5341p1eAsAAQT1AQAABBQAAABQ
SwMEFAACAAgAN2GbTMHvBwOrAAAA+QAAAG4AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL1hNTEh0dHBSZXF1ZXN0L2FjY2Vzcy1jb250cm9sLWJhc2ljLWNvcnMtc2FmZWxpc3RlZC1y
ZXF1ZXN0LWhlYWRlcnMtc3RkZXJyLnR4dFVUCQADenXjWmdn41p1eAsAAQT1AQAABBQAAAB1zbEO
gjAQxvHdp7gXKAUWCZshRAcQI4trLYdtbFrstYNvbxUXB3PTd8kv/2Y4jkPXQt+O427f1mC0RSjL
Gk4eZ6NvKoBHWpwlBE1gXQCKUiLRHM2m+csvfXcIYTnjIyIFkMK+qXFiApX+NedFuc3ydEVdVXnO
fwFPURd96nDxqTHpbPDOsKsgLdPyxEjMaDQFnJhfGVMoJvSULU+YIkJwsHL4cpAK5Z2yzQtQSwME
FAACAAgAOGGbTPEL4haoAAAA7wAAAGIAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L1hNTEh0dHBSZXF1ZXN0L2FjY2Vzcy1jb250cm9sLWJhc2ljLWdldC1mYWlsLW5vbi1zaW1wbGUt
c3RkZXJyLnR4dFVUCQADe3XjWmhn41p1eAsAAQT1AQAABBQAAAB1zjsOwjAMgOGdU/gCaUoXqm4I
VTAARXRhLamhEVEcYmfg9oTHwoC8Wfr8e9Xt+27bwq7t++W6bcBZj1BVDRwiXpy9TgIROZBnBMvg
SYCTMch8SW62+stPu+1GJBzxnpAFzOBf1NEwwpT3jdbzalGUeeZNXZel/gU6RynF3NHDu6YMeYnk
1HlgaxQFsfknlY8qTiFQFByL8IAxIQjBB8EXgZnQ3LiYPQFQSwMEFAACAAgAOGGbTE2z3eqoAAAA
7wAAAHkAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fj
Y2Vzcy1jb250cm9sLWJhc2ljLXBvc3Qtd2l0aC1ub24tY29ycy1zYWZlbGlzdGVkLWNvbnRlbnQt
dHlwZS1zdGRlcnIudHh0VVQJAAN7deNab2fjWnV4CwABBPUBAAAEFAAAAHXOOw7CMAyA4Z1T+AJp
Ch1A3RCqYACK6MJaUkMjojjEzsDtCY+FAXmz9Pn3qt137baBXdN1y3VTg7MeoapqOES8OHsdBSJy
IM8IlsGTACdjkPmS3GT1l592241IOOI9IQuY3r+oo36AMe9rraezeVHmmdaLRVnqX6BzlFLMHd2/
a8qQl0hOnXu2RlEQm39S+ajiFAJFwaEIDxgSghB8EHwRmBHNjYvJE1BLAwQUAAIACABDYZtMA/+O
2+cAAAA0CQAAUQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVl
c3Qvb3Blbi11cmwtbXVsdGktd2luZG93LTYtc3RkZXJyLnR4dFVUCQADjnXjWoVn41p1eAsAAQT1
AQAABBQAAADtlOFKw0AMx7/7FHkAGd3UiUWEetQpAwttoQORcq2RHbslJZfV+fZOfQQRmdy3QALh
l/D/ZYPA7BKms3SapMkcoMFu6bTGoOWOCOXp/Oziav4M17kIy00KZmGYFPdaod457w17lsbp+qtI
wdFovXuB/nsKkn0ygYdXeOcdvFlSUIaACLpG6Gy/UbE9nsLg0QY8dPSwoTXFY52v6ra6L5r2NjPL
usxMDkijE6YtkloPoxVnO4+Tk+xHFJUKb/DIORaohrcDB6dYDChWHdMxfuMfUHzGosReQ7z/X1FE
M0UzxWREM/0GxQdQSwMECgAAAAAAM1mbTAAAAAAAAAAAAAAAAC0AHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy10aW1pbmctMS9VVAkAA2Jn41q+d+NadXgLAAEE9QEAAAQUAAAA
UEsDBBQAAgAIADVhm0ySXGOqAAEAAM4NAABWABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MtdGltaW5nLTEvZnJhbWVzLXRpbWluZy1mdW5jdGlvbnMtb3V0cHV0LXN0ZGVyci50
eHRVVAkAA3V141phZ+NadXgLAAEE9QEAAAQUAAAA7ZTrSsNQDID/+xR5ABndDWkRoR66KgMLbaHC
kHJaIzvs7KSkWZ1v79QnGCKupf8CCYQvly9sGGY3MJ0Fnh/MfYACq7WRHFtJD84hbxbzpT99gduI
mfguABUrcoJHyVBWxlpFlrgwsv0OAjCu09a8Qv1TBd7Rm8DjG3zQAd61ExCCFhFki1Dpeiesa7yG
xqJu8ZSRU4dSJU959JyX2UNSlPehWudpqCJA1xkmt0cn2kKn2ejK4uQq/BVFJkw77DlHjKJo31Br
BJMGWYsh18dtDIDi6y1SrKUd5/9fFKOZRjONnzGa6c8pFt4QzHQ2xYWa6TyOeCg3NQCKSzJTb+f/
CVBLAwQUAAIACAA1YZtM+bByNPEAAADODQAAVgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzLXRpbWluZy0xL2ZyYW1lcy10aW1pbmctZnVuY3Rpb25zLXN5bnRheC1zdGRlcnIu
dHh0VVQJAAN1deNaYmfjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZ7ZzIigj1qNsYWGgL
FcYo1y5jx26XksvqfHunPoIfZO6+BRIIv4T/L+0Zxg8Qj5NomkxigBrbpZEKvRRH55BXk7v7abyG
x4yZ+CkBNVPkBE9SorwYaxVZ4trI7rtIwLhBW7OB7mcKolM0gsUWPugI79oJCIFHBNkhtLrbC+sO
b6G3qD2eO3Le0Kj8tcreqqac53XznKplVaQqA3SDYXIHdKItDJqNbi2ObtJfUZTCtMcL55ihKDr0
5I1g3iNrMeQu8Rv/gOIrFgV24sP9/4oimCmYKSQjmCmYKZgpmCmY6Tru/wlQSwMECgAAAAAAUlmb
TAAAAAAAAAAAAAAAACYAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL1VU
CQADnGfjWr5341p1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAUFmbTAAAAAAAAAAAAAAAACoAHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9VVAkAA5dn41q+d+NadXgL
AAEE9QEAAAQUAAAAUEsDBAoAAAAAAE5cm0wAAAAAAAAAAAAAAAAwABwAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvVVQJAAMzbeNavnfjWnV4CwABBPUBAAAE
FAAAAFBLAwQUAAIACABPYZtM7AoOGzABAAAaDwAATwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2Jsb2NrLW1pbWUtYXMtc2NyaXB0LXN0ZGVyci50eHRV
VAkAA6V141qOZ+NadXgLAAEE9QEAAAQUAAAA3ZbBasMwDIbvewqddkvd3UqgjFHCGCwrLE/gOUqi
kdgmVtLm7dcubJSQlB0Gs3f+f6NPEubXbv+S7Z8TSJMse3hMYnjFonOYAxvAI6qOESpmGwtRGyXr
yjiON5v1WhTIqhLSkmjRma5V6IRTLVmODsRVVKHMsV3Z4V4Zzah5q42OsLE83DbU4FZ2ORkhqShA
OhifwhsqeaoPFyI50IZBflnSpzQBHiyubnZ/R894ZKFcP8P+LflJPo62oZwW5/4p+knfU45GHCrJ
2GM708HE4PMOrnQxMfi8C9nT4hrOms/sRb3Mftb8ZKdGlijeLZYz8Beiz/QlFYvwZ81n9iv/dmLw
pIswcyvczAr3ygk/o0LNp1CzKfzbLNxk/VfJ9Pt3QU0a4S6GbLTW5lQ9/6ntA1BLAwQUAAIACABS
YZtMvRfL8RkBAABbBAAATwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL2Jhc2ljL21vZGUtc2FtZS1vcmlnaW4uYW55LXN0ZGVyci50eHRVVAkAA6x141oxbeNadXgL
AAEE9QEAAAQUAAAA1ZLRSsMwFIbv9xTnZl5Js3YDZ2FImZ0I04llDxDS1AbTnJCcgo9vMrUiwqBD
EUlIwkny/fn5s97dV7ttCXdlVRU3ZQ5aGQlplsNGkmiheLgFwY1BAo28hpbI+pwxjYLrFj3ll4vF
nDXxMONWMSc99k5IzwhtQi+UTNYnaASJNLtIZqGl+XI5m42U2BvPGwmcSHaWgPANvX/cnmDhKh4l
hWZ1uDudF9NsE/pACJXICKUDJcyBE8aBFNbvrDOBvaFVCo3DDtCpJ2U+HH++KDpO4Bo7row/B+uQ
UKD2wE0NFh156HpP0PEgl0y++/+p9H7Fet3LmAgXYduDQEMONYhWimc/PstRX+Wrn8HOAAiViPgX
Sf658eM5vgJQSwMEFAACAAgAVGGbTPr8B2eqAAAA8wMAAEsAHABpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9zY2hlbWUtYWJvdXQuYW55LXN0ZGVyci50eHRV
VAkAA7B141ozbeNadXgLAAEE9QEAAAQUAAAA7c65DcJAEEbhnCr+ChCQIDlDljkkDkt2A+vxYK9Y
ZmAPJLrHFAAkBAQ08N6XH/bVYVtgV1TVYlVkcFYY00mG3GsIUG87K/B8TRxigPEMFXdHSJeL+sgt
juqxrutyPMpfxpYcqcei3ICMiEY4NS1MoylmjTNyQpsYUWGIeNiSSvTqQD3TKbwr/5nfYs7mX2Q+
Y++YVm7G2XZMev597EA62u73nUksqZcP0AdQSwMECgAAAAAAUlmbTAAAAAAAAAAAAAAAAC8AHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL1VUCQADnGfjWr53
41p1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAUWGbTPAa8kkWAgAAcwsAAEkAHABpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtb3JpZ2luLmFueS1zdGRl
cnIudHh0VVQJAAOqdeNak2fjWnV4CwABBPUBAAAEFAAAAN2WTWsbMRCG7/0VuiS38eprpVXAFJM6
aaGtA27PYSSNvCYbr/FuaPPvq7Vp2pSAk4ZSbKSTJObVPLyj0fns83z2cco+TefzyeX0jM02y8Vy
xeq+X58VRdMGbOq268+qinO27Niq7Rk2TfuNIvP3bBICdR2ct6t+0zYwGXZgF2P05vzP4BfUh5pN
rj6wgKshUtNi/KklpB3xPMRWq0jD2QLXy2JDXXu3yTrFekOpWS7qfrS+f9u3N7QaC8N1QG/BcaNB
B0vgyqoEiVaS9oGE1Ke3+P0aFzTmp+32auNB8kRNTuRFng/CeWWQPt3md31Lfd3Gbnw5/cLiHbG+
ZbjNloVdtizUFG66J/L8fxAfaYnnQvTSVrE0CL40CTTHCM5oBKcdKYtac457ID4I7yCKQ4b4yInP
hih0UhElgU/BglbJg7dcARpCY0XiLr3QiYcLsXtE0WmtnktRamO0iDwDFNmKpeKAKAy4QI4nkdlq
eppi9yTGQfugMf4SewnG/PpVlczvoIougMZSAgYiiJVG7WTkQoV9GH8v6YPG+NfNpfTBGBMNWOmr
3Fw4AqpkoQpksDRcSFe9rrlczeZHT5FzSWRDpshFruvkczWXNoEPZb5aElJJ/jqK76eTd8dOUSnl
HFUEOkY7UJTZhj6BSOSj41HIvT16nxe/Hr0VbVBcOgoQ/fDRqVQAr6SDFHm0JeYCN/5f/xZ/AFBL
AwQUAAIACABTYZtMGQXUifoCAAAwFgAAUwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGlnaHQtc3RhdHVzLmFueS1zdGRlcnIudHh0VVQJ
AAOudeNalWfjWnV4CwABBPUBAAAEFAAAANWXTW/bRhCG7/kVPPk21n7vjgGjCAK3KNA2AfwDjJnZ
2ciIKgoijab/vqMCzaE95MBLCV10oJbgo+H7PvPh42/PH395mn59en5+/9PTw/TpquP0+vm4Tldd
LvN50el1mc7zOi1vIros4+307sO/f/WjrnKc3n/6eRI63y4+zdSn47peHg4HH+q9s49/aM25w7hd
e6DL68HuML9d7dDD5Z+73l/+/GGdv+j5kVG1jyQgOSZI2BlYikLKLFy59V7x7nf6+kKf9dHd0ek0
//FyVOp6XR6/wpjtYPh27t23by/LSuvb8hidm/qbTus80d8PNsl8Xq/zaZKjypfl/r9P+b9hIwHH
EBQgLQVScQNINEPrlCX4hqHXbWz8btlELiUF56HlwDY3NQPWVqGVIJSJQlLZxibslo0X5tJrAA2l
Qhq9ALaeoHAuMWvVIH4bm7jfucmOlYqHULO3lGkJqIcE7NpgTH5YGG1jk3bLJmNwPWIF73KE5G9s
SAXqwIzqS0uFt7HJu2WTkgj3oIBZLIvVADE7hIHioxSq6Ggbm7JbNiX14pqvQDnZ3EgYgCMI6EhU
axR10W1jU/fb4bEVomhZLGhzY60NFNgBxozRh1GT29hTbb95U2oTdA0sXAKkWrr5jblfaSF6Tl48
b2KTdux+KeTEo0cI3ZkNq9V349DBXqWOAas6rNvY7Nf9xMalxWQwLJNvc2PuR5EhUxo+27/ONW5j
s1/3My5jDCaohSyLk1Fib3I8vOuhUS/S0zY2+3W/Gql0k1coGdF2BleAEkdo8TZOKNENt43Nft3P
nFhG9gW8xY6xaWxeXBWkOWaTwmhTtI3Nft0PR+o+aDC/4W47Q7eeSqY7GELpjGqLw6aeyrvO4nKr
ogxeve1TZJRQrLawlI5OhR3jNjY73sMjKeZgfjM6GZtgWFy47VMaVZ02lrqNzY73cOKKg25qQ/ZO
2eJ9oxRAULH0lofktI3NfrM4VElDnQPfLIFTbcMqyiTHaVUmx86lvo3N97L4L1BLAwQUAAIACABU
YZtM7cF3uK8BAAAgBwAATAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL2NvcnMvY29ycy1wcmVmbGlnaHQuYW55LXN0ZGVyci50eHRVVAkAA69141qXZ+NadXgLAAEE
9QEAAAQUAAAA3ZRLj9MwEIDv/AqfuE3jV/yotEJRCSzSvkSLOKKxPd5UG5rSuGL770m3nBCHFYtQ
hXybl+eb1+L2Znl71bLrdrls3rdzdk2lGxJ72161q5atR7YZCsO+H75TYuHAmhhpHGExbMpu6KE5
auDkNM5eLX4N945K7Fhz94FF3BxD9QMm1pWynVeVkHbGpyfmznFe5aNthdt1taNx2O+mj6rtjnK/
vu/KbHt4U4YH2lzYwGtrBAE3qQZdOwHecwVGam4EGp4cvf6Kj1/wni44S3tiZWD4lDeLp7xZ7Cg+
/C7hn/x3n1ZnCR+ElrX1HIIQCXR2HpytDVgSclKRcca9HL5ZLS7Ps/eIEuvsQDkTpt5HD+hiAplt
VmSd5VG+GP+m/XyW8D5rVEI4MDFPvSfuAJXK4KRTGY303tV/Dv+Rvu1pLKwjTLRjeU19Yo9QJhmc
ZOK5Vbl8Mv9XI1GnrDx6CBgy6GkvIHDtoU51CE5a4aX/y1U50tKmwOqwpbOsCQZlUCoBRstpUhJG
CNpYUCbjdDOEQS7/2xMZNbcmJwdCkAWtU5g2xAvQbjoaUUUS3D4b/gdQSwMEFAACAAgAVmGbTCFw
lzLtAgAAcRYAAFUAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9j
b3JzL2NvcnMtcmVkaXJlY3QtcHJlZmxpZ2h0LmFueS1zdGRlcnIudHh0VVQJAAOzdeNanGfjWnV4
CwABBPUBAAAEFAAAAO2XbYsbRwzH3/dT7Jv4newZjebp4CjmuKSFtim9DxBmNDOxieu9eNck+fbV
Xtu0FGPK2YWSLF5ml/E+iL+kn6S71z89vP7hvvvx/uFh/er+pvulvj/WYew2NZV66Nq27kr3ET4Y
7rZDt+/HLu12/YdauvypWzPXYYC7fj8e+h2sp3/gu6cnh+U3d/9898s68qZb//x9x2k/vWrXp9Jt
xvHxZrXS6JdKfvomBKVWbbp3lR63q0Md+uNBPrR6PNS2277djMvHT9/+mj6+SW/rrVqM/bu6vzUq
xeichpbQA/kYISpvwFREo9lYh2ZxqGV7qDy+GcY0Hgd5SC92Padx2+9vJ0NemPULfCnHZ3NkZzJI
tp5MkrMYJSv3h0FOy6Usn02U678bueD+uB9vdVeOtRv7Lj3p1fHvenW8qfzulFD/Zyf8KeHkgz+U
j97m6BKkmhUQ6QihIYKqIVXi2nRui7/c9e99MO3uNv0wXuKDL1x7Zo9Re9A5RSAbKyRUDIY9NYXW
KbbX0F5/9dqfhY9XHMhgBms8A7WKEFNEsNn6zLlpbewJ8XGGz6UJIHwp1LSFUJsFwpAhC4LAorMe
ueSs6tkEwBk+z9U+FlLR+QYqJYl6lvjPjRQ0WYNUYE9KXUP7GT5n4VNSs67pCsZI9JMiDzloqcTR
WZNzyMW3E+KbGT6XJoBKimI0BXxODsgUA8k3B1m1mg1lRyqcTQAzw+e52rsmzb4JVcLcSqxXZojo
EYripG0SNBW6hvYzfM7CJ6P0kNJtQtQ2ABU2ciVTWHZoUZEOJfMJ8f0Mn0sTwLqgC2MDTFVa/6wI
kogOSpXsc2QseH7s8jN8nqs9yrhL1DIkmkpuczJ2+ZKgNvZW2B99CNfQfobPWfhEg4SIHlwrXpr/
KvVXDAHOiJnJkq6nxq4ww+fiscszkpoGXioydkXvIDqlwbEm05RqxuezCRBm+Dxbe+Uy6aLBFyQg
O0W99wZak2JrZPaKGq+h/X8Cn98AUEsDBAoAAAAAAFJcm0wAAAAAAAAAAAAAAAAzABwAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvVVQJAAM7beNavnfj
WnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACABTYZtMuIB4QrQAAAAGBAAASwAcAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0LW1vZGUtc3Rk
ZXJyLnR4dFVUCQADrnXjWpdn41p1eAsAAQT1AQAABBQAAADdj8EKgkAQhu89xZw6upaHRJAIsQgq
Ix8glnFCaXFkd6R6+1yiS526hbf/8M0//5cVh7LY5bDPy3K1yRM4UdVYQmm4daAtQcsC2hi+UTXJ
Puk1CdawOm4BdetJw7qCWqRLlDKM2tTsJInjMFQXzyrdNcqS494iuSG9vgXdY/nOZydaepdG4Wzq
K/yUVLgL5C5Q9QTCoHG4doDcimUDWBNeXfC9759s5qOyiUZlsxiVTfyrzRNQSwMEFAACAAgAU2Gb
TPjZkyQzAAAA5gAAAFIAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZWRpcmVjdC9yZWRpcmVjdC1tb2RlLXdvcmtlci1zdGRlcnIudHh0VVQJAAOudeNaOG3jWnV4
CwABBPUBAAAEFAAAAHP29wv293FV8HUNDnZ0d7VSCEpNySxKTS7JzM8rVkgsSlXIyy9RSMzJyS9P
TeFyHqKqAVBLAwQUAAIACABVYZtM/JWDJ3UBAAANBQAAUQAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0LXRvLWRhdGF1cmwtc3RkZXJy
LnR4dFVUCQADsXXjWjtt41p1eAsAAQT1AQAABBQAAADtks1PAjEQxe/8FXPBaCK7uPi5xhhE/EhU
CCveh9niNu52Nu0Qxb/eFvGgcpB4M6bHdt689+vrDe6ywU0fbvtZ1r3sp9Cz7FyLrX7UBqzKtVUk
mg0IQ46CqagXiesStTmeoFP7u9tUPbzS5dGMkrGh+ZmeJKM9yJXRKofJfKk4eFccKcczSwqyAq02
j1BzqWmewnh0A9qB0lIoCwiGTevq/n64uGALxEb8TgfkTSkjGksXNXpf7V8ooQK6w2sgNIYFSsYc
CpE6jeOSCcuCnaSHh+12PA1vY6x1bJeuXPyROKrnp8TWbYSZkP8khG92uiF+M7lYAGh2zt4RNJPe
aggzFbgheWm3iGC5BCoUPa0yP/qMOyR/9jw8DednKq9VoARKIViAs5lt/ZjBWp+3nu+xcThVgCKq
qiVMLjYG/+tsnVquYNm8lT8WwTlXoQTbUFsWJi4doMl9iaw4qGZOoEIfPmp8N/mXi72THERtf3b+
i/2bYr8BUEsDBAoAAAAAAFJZm0wAAAAAAAAAAAAAAAAuABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9ub3NuaWZmL1VUCQADnGfjWr5341p1eAsAAQT1AQAABBQAAABQSwME
FAACAAgAVGGbTOYPFCWcAAAAzwAAAEgAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL25vc25pZmYvcGFyc2luZy1ub3NuaWZmLXN0ZGVyci50eHRVVAkAA69141qcZ+NadXgL
AAEE9QEAAAQUAAAATY3LCoMwFET3/YrBvcaluCsipVAr1C66TeO1BiQJ3ps+/r5ZVOh25syZpj8P
/alF1w7D/tDWuNAUmUaIB73JRCHMIqFWavFGL7NnqauqLNVEYmblPDs7TWol9nE1xFuSxxBoNZqp
0GwZmsFmtUFwJ6PTBbJb3ngn5CS/fgLV+C0zvBL8sE9y0G6EFcY/iGRzXqA3YXfsWkhqit0XUEsD
BBQAAgAIAFRhm0wkE4XxxAAAAK4EAAA/ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9ub3NuaWZmL3NjcmlwdC1zdGRlcnIudHh0VVQJAAOvdeNanGfjWnV4CwABBPUBAAAE
FAAAAN2RwWrCQBRF9/2KS8BlHHElgVJKSEUwBoyLbqeTl2YkzoS8F41/3xEt9AdaaPaH897hpsWu
LLYZ8qwsX9dZgj3VA1MF8aCRzCCERqRLlGq90W3jWZLVarFQNYlplPPsbF2rntgPvSFWR5531xe5
dvQMzWDT207wQUYHL6L3OPVOyEl8CEiChyDCJcCf9kwO2lWwwvgJwnJABfpbmG/yDLcr86f0dxr+
9/f3BcbZ8m2cRMgUIoRGCYM0cmonlHNk7/4o5wtQSwMEFAACAAgAVGGbTPt1ZsDQAAAAFAkAAEMA
HABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL25vc25pZmYvc3R5bGVzaGVl
dC1zdGRlcnIudHh0VVQJAAOvdeNanGfjWnV4CwABBPUBAAAEFAAAAO3SPW/CMBCA4Z1fcQvKBEad
UCRUoZBWlQgM7tDVmAtO5d5FueMj/55QdWZNB88+3b2P5GK/s/ttCVVp7fq9zGHTHIFYoXWdIIj2
ESUgKjiFLKi2uTGRvYuBRfPlcrEwNaoPhlioqWvTofC58yjGi8zb/lX7FlcZHNC787CSmKCwFqqP
qoTHm4Dr8Pemi5GveIRrQILsa1YwKZLOPoepHP4OZNAInJoL0nxSpPqn9al7jN9yS/lj5k9f3hJh
bILiTQdF0J+YIP8J8i1MCfIUcgdQSwMECgAAAAAAgVmbTAAAAAAAAAAAAAAAACUAHABpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvVVQJAAPxZ+NavnfjWnV4CwABBPUBAAAEFAAA
AFBLAwQKAAAAAACjWZtMAAAAAAAAAAAAAAAALgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9icm93c2Vycy9VVAkAAzFo41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAA
AFRZm0wAAAAAAAAAAAAAAAA/ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIvVVQJAAOgZ+NavnfjWnV4CwABBPUBAAAEFAAAAFBL
AwQKAAAAAABwWZtMAAAAAAAAAAAAAAAAUQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9icm93c2Vycy9icm93c2luZy10aGUtd2ViL2hpc3RvcnktdHJhdmVyc2FsL1VUCQAD
1GfjWr5341p1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAVGGbTEpeOg3oAAAANAkAAH4AHABpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdl
Yi9oaXN0b3J5LXRyYXZlcnNhbC9icm93c2luZ19jb250ZXh0X25hbWVfY3Jvc3Nfb3JpZ2luLXN0
ZGVyci50eHRVVAkAA7B141qeZ+NadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABm3OTYoQ6hH
N2WwQluoIFKuNWPHbpeSy+p8+019BBGZ3LdAAuGX8P+lPcNkDuNJMlbJVAHU2K6tVBikOHqP/DK9
m6nZKywyZuL7BPRKkxc8SYmytM5pcsS1ld1XkYD1g3H2DbrvKVAnNYKnLXzQEd6NFxCCgAiyQ2hN
txc2Hd5C79AEvHTksqHR+abKnqumfMzr5iHV66pIdQboB8vkD+jFOBgMW9M6HN2kP6IohWmPV86x
QtF06ClYwbxHNmLJX+M3/gHFZywK7CTE+/8VRTRTNFNMRjTTb1CcAVBLAwQKAAAAAABUWZtMAAAA
AAAAAAAAAAAAcgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vy
cy9icm93c2luZy10aGUtd2ViL2hpc3RvcnktdHJhdmVyc2FsL3BlcnNpc3RlZC11c2VyLXN0YXRl
LXJlc3RvcmF0aW9uL1VUCQADn2fjWr5341p1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAVmGbTAJn
lA4GAQAAaBIAAJkAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3Nl
cnMvYnJvd3NpbmctdGhlLXdlYi9oaXN0b3J5LXRyYXZlcnNhbC9wZXJzaXN0ZWQtdXNlci1zdGF0
ZS1yZXN0b3JhdGlvbi9yZXN1bWUtdGltZXItb24taGlzdG9yeS1iYWNrLXN0ZGVyci50eHRVVAkA
A7N141qfZ+NadXgLAAEE9QEAAAQUAAAA7dThSsMwEAfw7z7FPYCMNm4IRYQa6pSBhbZQQaSk9WRh
Wa5cb3W+vVMfQUVX8y2QQPjf8f+lPYM6h1glcZTMY4Aa25WVCgcpdt4jP8zPFovoES4yZuLLBPRS
kxfcS4lybZ3T5IhrK+uPQwLWj8bZJ+g+X0G0j2Zw+wyvtIMX4wWEYEAEWSO0ptsImw5PoXdoBjzc
yOGHRud3VXZfNeVNXjdXqV5VRaozQD9aJr9FL8bBaNia1uHsJP1SilKYNnjkOZYomrY9DVYw75GN
WPLHuI0JpHivRYGdDGH+v5UiyBRkCs0IMv18CjUJmdREZFKTkEn9v2b8KZlUkCnIFGQKzQgyfVOK
N1BLAwQUAAIACABkYZtMSl46DegAAAA0CQAAkwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9icm93c2Vycy9icm93c2luZy10aGUtd2ViL2hpc3RvcnktdHJhdmVyc2FsL3dp
bmRvdy1uYW1lLWFmdGVyLWNyb3NzLW9yaWdpbi1hdXgtZnJhbWUtbmF2aWdhdGlvbi5zdWItc3Rk
ZXJyLnR4dFVUCQADy3XjWrln41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGbc5NihDqEc3
ZbBCW6ggUq41Y8dul5LL6nz7TX0EEZnct0AC4Zfw/6U9w2QO40kyVslUAdTYrq1UGKQ4eo/8Mr2b
qdkrLDJm4vsE9EqTFzxJibK0zmlyxLWV3VeRgPWDcfYNuu8pUCc1gqctfNAR3o0XEIKACLJDaE23
FzYd3kLv0AS8dOSyodH5psqeq6Z8zOvmIdXrqkh1BugHy+QP6MU4GAxb0zoc3aQ/oiiFaY9XzrFC
0XToKVjBvEc2Yslf4zf+AcVnLArsJMT7/xVFNFM0U0xGNNNvUJwBUEsDBBQAAgAIAHJhm0yP/E/2
6AAAADQJAACSABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJz
L2Jyb3dzaW5nLXRoZS13ZWIvaGlzdG9yeS10cmF2ZXJzYWwvd2luZG93LW5hbWUtYWZ0ZXItc2Ft
ZS1vcmlnaW4tYXV4LWZyYW1lLW5hdmlnYXRpb24uc3ViLXN0ZGVyci50eHRVVAkAA+d141rUZ+Na
dXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABntNicUEepRtzGw0BYqDCnXmrFjt0vJZXW+vVMf
YQyZ3LdAAuGX8P+lPcP4HuJxEsfJ5A6gxnZlpEIvxcE55PV0Motmb/CQMRM/JqDmipzgUUqUZ2Ot
IktcG9n+FAkYN2hr3qH7nYLoGI1guYFPOsCHdgJC4BFBtgit7nbCusNb6C1qj6eOnDY0Kn+psteq
KRd53TylalUVqcoA3WCY3B6daAuDZqNbi6Ob9CyKUph2eOUccxRF+568Ecx7ZC2G3DV+4x9QfMei
wE58uP9fUQQzBTOFZAQzXYLiC1BLAwQKAAAAAABkWZtMAAAAAAAAAAAAAAAAUwAcAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9icm93c2luZy10aGUtd2ViL3Vu
bG9hZGluZy1kb2N1bWVudHMvVVQJAAO8Z+NavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACABW
YZtMVPUO/egAAAA0CQAAYQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9i
cm93c2Vycy9icm93c2luZy10aGUtd2ViL3VubG9hZGluZy1kb2N1bWVudHMvMDAxLXN0ZGVyci50
eHRVVAkAA7R141qgZ+NadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABld7RiUIdSjmzJYoS1U
ECnXmrFjt0vJZXW+/aY+gohM7lsggfBL+P+ygSGewzROp1GaJAANdmsjNXopj84hvyR3s1n8Couc
mfg+BbVS5ARPUqEsjbWKLHFjZPdVpGDcqK15g/57CqJTNIGnLXzQEd61ExACjwiyQ+h0vxfWPd7C
YFF7vHTksqFVxabOn+u2eiya9iFT67rMVA7oRsPkDuhEWxg1G91ZnNxkP6KohGmPV86xQlF0GMgb
wWJA1mLIXeM3/gHFZyxK7MWH+/8VRTBTMFNIRjDTb1CcAVBLAwQUAAIACABWYZtMVPUO/egAAAA0
CQAAYQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9icm93
c2luZy10aGUtd2ViL3VubG9hZGluZy1kb2N1bWVudHMvMDAyLXN0ZGVyci50eHRVVAkAA7R141qh
Z+NadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABld7RiUIdSjmzJYoS1UECnXmrFjt0vJZXW+
/aY+gohM7lsggfBL+P+ygSGewzROp1GaJAANdmsjNXopj84hvyR3s1n8Coucmfg+BbVS5ARPUqEs
jbWKLHFjZPdVpGDcqK15g/57CqJTNIGnLXzQEd61ExACjwiyQ+h0vxfWPd7CYFF7vHTksqFVxabO
n+u2eiya9iFT67rMVA7oRsPkDuhEWxg1G91ZnNxkP6KohGmPV86xQlF0GMgbwWJA1mLIXeM3/gHF
ZyxK7MWH+/8VRTBTMFNIRjDTb1CcAVBLAwQUAAIACABXYZtMVPUO/egAAAA0CQAAYQAcAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9icm93c2luZy10aGUtd2Vi
L3VubG9hZGluZy1kb2N1bWVudHMvMDAzLXN0ZGVyci50eHRVVAkAA7V141qhZ+NadXgLAAEE9QEA
AAQUAAAA7ZThSsNADMe/+xR5ABld7RiUIdSjmzJYoS1UECnXmrFjt0vJZXW+/aY+gohM7lsggfBL
+P+ygSGewzROp1GaJAANdmsjNXopj84hvyR3s1n8Coucmfg+BbVS5ARPUqEsjbWKLHFjZPdVpGDc
qK15g/57CqJTNIGnLXzQEd61ExACjwiyQ+h0vxfWPd7CYFF7vHTksqFVxabOn+u2eiya9iFT67rM
VA7oRsPkDuhEWxg1G91ZnNxkP6KohGmPV86xQlF0GMgbwWJA1mLIXeM3/gHFZyxK7MWH+/8VRTBT
MFNIRjDTb1CcAVBLAwQUAAIACABmYZtMH2YOlOgAAAA0CQAAYQAcAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9icm93c2luZy10aGUtd2ViL3VubG9hZGluZy1k
b2N1bWVudHMvMDA0LXN0ZGVyci50eHRVVAkAA9B141q8Z+NadXgLAAEE9QEAAAQUAAAA7ZThSsNA
DMe/+xR5ABldXRmUIdSjmzJYoS1UECnXmrFjt0vJZXW+/aY+gohM7lsggfBL+P+ygSGewzROp1E6
SwAa7NZGavRSHp1DfpndJUn8Coucmfg+BbVS5ARPUqEsjbWKLHFjZPdVpGDcqK15g/57CqJTNIGn
LXzQEd61ExACjwiyQ+h0vxfWPd7CYFF7vHTksqFVxabOn+u2eiya9iFT67rMVA7oRsPkDuhEWxg1
G91ZnNxkP6KohGmPV86xQlF0GMgbwWJA1mLIXeM3/gHFZyxK7MWH+/8VRTBTMFNIRjDTb1CcAVBL
AwQUAAIACABmYZtMG9XEpOYAAAA0CQAAYQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9icm93c2Vycy9icm93c2luZy10aGUtd2ViL3VubG9hZGluZy1kb2N1bWVudHMvMDA1
LXN0ZGVyci50eHRVVAkAA9B141q8Z+NadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABlrdQhF
hHrUKQMLbaGCjHKtkR27JSWX1fn2Tn0EEZnct0AC4Zfw/+WjQHoFSZolSZakAC32K6cNBq32RCjP
lxeLRbqG60KE5SYDszRMigetUe+c94Y9S+t081Vk4Giy3r3A8D0F88N8Bg+v8M57eLOkoAwBEXSD
0Nthq2IHPIfRow147OhxQ2fKx6Z4arr6vmy729ysmio3BSBNTph2SGo9TFac7T3OzvIfUdQqvMUT
51iiGt6NHJxiOaJYdUyn+I1/QPEZiwoHDfH+f0URzRTNFJMRzfQbFB9QSwMECgAAAAAAaFmbTAAA
AAAAAAAAAAAAADYAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3Nl
cnMvaGlzdG9yeS9VVAkAA8Nn41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAFFam0wAAAAA
AAAAAAAAAABMABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJz
L2hpc3RvcnkvdGhlLWhpc3RvcnktaW50ZXJmYWNlL1VUCQADemnjWr5341p1eAsAAQT1AQAABBQA
AABQSwMEFAACAAgA92GbTOJRoGnoAAAANAkAAGUAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtaGlzdG9yeS1pbnRlcmZhY2UvaGlzdG9y
eV9iYWNrXzEtc3RkZXJyLnR4dFVUCQAD4XbjWs9o41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7
FHkAGd1sGZQh1KObMlihLVQQKdeasWO3S8lldb79pj6CiEzuWyCB8Ev4/7KBYTaH6SydJmkcAzTY
rY3U6KU8Oof8Et8lSfQKi5yZ+D4FtVLkBE9SoSyNtYoscWNk91WkYNyorXmD/nsKolM0gactfNAR
3rUTEAKPCLJD6HS/F9Y93sJgUXu8dOSyoVXFps6f67Z6LJr2IVPrusxUDuhGw+QO6ERbGDUb3Vmc
3GQ/oqiEaY9XzrFCUXQYyBvBYkDWYshd4zf+AcVnLErsxYf7/xVFMFMwU0hGMNNvUJwBUEsDBBQA
AgAIAAdim0yPBi196AAAADQJAABoABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWhpc3RvcnktaW50ZXJmYWNlL2hpc3RvcnlfZm9yd2Fy
ZF8xLXN0ZGVyci50eHRVVAkAA/1241rraONadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABlt
3SYUEbqjzjGw0BYqyCjXmrFjt0vJZXW+vVMfQUQm9y2QQPgl/H/ZwJDcQpyk8TyNE4AGu7WRGr2U
R+eQX6Y3s1m0gbucmfg+BbVU5ARPUqE8GGsVWeLGyO6rSMG4UVvzCv33FESnaAKrLbzTEd60ExAC
jwiyQ+h0vxfWPV7DYFF7PHfkvKFVxVOdP9dt9Vg07SJT67rMVA7oRsPkDuhEWxg1G91ZnFxlP6Ko
hGmPF86xRFF0GMgbwWJA1mLIXeI3/gHFZyxK7MWH+/8VRTBTMFNIRjDTb1B8AFBLAwQUAAIACAAV
YptMPNY3fecAAAA0CQAAbQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9i
cm93c2Vycy9oaXN0b3J5L3RoZS1oaXN0b3J5LWludGVyZmFjZS9oaXN0b3J5X2dvX25vX2FyZ3Vt
ZW50LXN0ZGVyci50eHRVVAkAAxl341oHaeNadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABnd
3BSKCPWoUwYW2kKFIeVaIwu7XUouq/PtnfoIIjK5b4EEwi/h/8sGgdkVTGfp9DKdJwANdivSGoOW
e+9R1vOLxSJ5hutchOUmBbM07BUPWqHekXOGHUtDuvkqUiA/Wkcv0H9PQXJIJvDwCu+8hzfrFZQh
IIJuEDrbb1Vsj+cwOLQBjx09bmhN8VjnT3Vb3RdNe5uZVV1mJgf0Iwn7HXq1DkYrZDuHk7PsRxSV
Cm/xxDmWqIZ3AwdSLAYUq8T+FL/xDyg+Y1FiryHe/68oopmimWIyopl+g+IDUEsDBBQAAgAIACVi
m0zZlQ6W5wAAADQJAABoABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jy
b3dzZXJzL2hpc3RvcnkvdGhlLWhpc3RvcnktaW50ZXJmYWNlL2hpc3RvcnlfZ29fdG9fdXJpLXN0
ZGVyci50eHRVVAkAAzV341ojaeNadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABnddEyKCPWo
UwYW2kKFISWtkR27XUouq/PtnfoIIjK5b4EEwi/h/8sGgdkCprN0ukiTK4CGupXVmoKWe+9J1pcX
83nyDNe5CMtNCmZp2CsdtCK9s84ZdiyN1c1XkYL1Izr7Av33FCSHZAIPr/DOe3hDr6AMgQh0Q9Bh
v1XBns5hcISBjh09bmhN8VjnT3Vb3RdNe5uZVV1mJgfyoxX2O/KKDkYUi52jyVn2I4pKhbd04hxL
UsO7gYNVKgYSVMv+FL/xDyg+Y1FSryHe/68oopmimWIyopl+g+IDUEsDBBQAAgAIACVim0ySBg7/
5wAAADQJAABrABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJz
L2hpc3RvcnkvdGhlLWhpc3RvcnktaW50ZXJmYWNlL2hpc3RvcnlfZ29fdW5kZWZpbmVkLXN0ZGVy
ci50eHRVVAkAAzZ341okaeNadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABnddAyLCPWoUwYW
2kKFISWtkR27XUouq/PtnfoIIjK5b4EEwi/h/8sGgdkCprN0ukiTK4CGupXVmoKWe+9J1pcX83ny
DNe5CMtNCmZp2CsdtCK9s84ZdiyN1c1XkYL1Izr7Av33FCSHZAIPr/DOe3hDr6AMgQh0Q9Bhv1XB
ns5hcISBjh09bmhN8VjnT3Vb3RdNe5uZVV1mJgfyoxX2O/KKDkYUi52jyVn2I4pKhbd04hxLUsO7
gYNVKgYSVMv+FL/xDyg+Y1FSryHe/68oopmimWIyopl+g+IDUEsDBAoAAAAAAHVZm0wAAAAAAAAA
AAAAAABiABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hp
c3RvcnkvdGhlLWhpc3RvcnktaW50ZXJmYWNlL2pvaW50X3Nlc3Npb25faGlzdG9yeS9VVAkAA95n
41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAGlhm0wUxYbx6AAAADQJAABwABwAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWhpc3Rv
cnktaW50ZXJmYWNlL2pvaW50X3Nlc3Npb25faGlzdG9yeS8wMDEtc3RkZXJyLnR4dFVUCQAD1nXj
WsNn41p1eAsAAQT1AQAABBQAAADtlG9Lw0AMh9/7KfIBZLRzf6CIUI86ZbBCW6gwRrl2kR27XUou
q/PbO/UjiMjGvQskEJ6E35P2DOM5xOMkjpJpDFBjuzRSoZfi6BzyenI3nc03cJ8xEz8koBaKnOBJ
SpQnY60iS1wb2X0XCRg3aGu20P1MQXSKRvDyBh90hHftBITAI4LsEFrd7YV1h7fQW9Qezx05b2hU
vqqy16opn/O6eUzVsipSlQG6wTC5AzrRFgbNRrcWRzfpryhKYdrjhXMsUBQdevJGMO+RtRhyl/iN
K6D4ikWBnfhw//+iCGYKZgrJCGb6C4pPUEsDBBQAAgAIAHdhm0y6Fb9z6AAAADQJAABwABwAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWhp
c3RvcnktaW50ZXJmYWNlL2pvaW50X3Nlc3Npb25faGlzdG9yeS8wMDItc3RkZXJyLnR4dFVUCQAD
8XXjWt5n41p1eAsAAQT1AQAABBQAAADtlO1Kw1AMhv97FbkAGev8mBQR6qFOGVhoCx2IlNMa2WFn
ScnJ6rx7p16CiEzOv0AC4Ul4n2wQmM0hmaVJkiZXAA12S6c1Bi13RChP52cXl/NnuM5FWG5SMAvD
pLjXCvXOeW/YszRO119FCo5G690L9N9TMN1PJ/DwCu+8gzdLCsoQEEHXCJ3tNyq2x1MYPNqAh44e
NrSmeKzzVd1W90XT3mZmWZeZyQFpdMK0RVLrYbTibOdxcpL9iKJS4Q0eOccC1fB24OAUiwHFqmM6
xm/8A4rPWJTYa4j3/yuKaKZoppiMaKbfoPgAUEsDBBQAAgAIADNim0yIm4+J5wAAADQJAABtABwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhl
LWhpc3RvcnktaW50ZXJmYWNlL3RyYXZlcnNlX3RoZV9oaXN0b3J5XzEtc3RkZXJyLnR4dFVUCQAD
UXfjWj9p41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGe10DIoI9ahTBhbaQgWRktbIjt0u
JZfV+fZOfQQRmdy3QALhl/D/5aPAfAnpPEuXWZoAtNSvrTYUtNp7T/J0ebFYJM9wVYiwXGdgVoa9
0kFr0lvrnGHH0lrdfBUZWD+hsy8wfE9BckhmcP8K77yHN/QKyhCIQDcEPQ5bFRzoHEZHGOjY0eOG
zpQPTfHYdPVd2XY3uVk3VW4KID9ZYb8jr+hgQrHYO5qd5T+iqFV4SyfOsSI1vBs5WKVyJEG17E/x
G/+A4jMWFQ0a4v3/iiKaKZopJiOa6TcoPgBQSwMEFAACAAgAQmKbTG9SQ1ToAAAANAkAAG0AHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUt
aGlzdG9yeS1pbnRlcmZhY2UvdHJhdmVyc2VfdGhlX2hpc3RvcnlfMi1zdGRlcnIudHh0VVQJAANs
d+NaWmnjWnV4CwABBPUBAAAEFAAAAO2Ub0vDQAyH3/sp8gFkdP8oFBG6o5syWKEtVJBRrjWyY7dL
yWXd/PZO/QgisnHvAgmEJ+H3pD3DJIbxJBnHyTQGqLFdG6nQS3F0Dvl1Np3Poy08ZMzEjwmolSIn
eJYSZWmsVWSJayO77yIB4wZtzRt0P1MQnaMRPL/DBx3hpJ2AEHhEkB1Cq7u9sO7wHnqL2uOlI5cN
jco3VfZSNeVTXjeLVK2rIlUZoBsMkzugE21h0Gx0a3F0l/6KohSmPV45xwpF0aEnbwTzHlmLIXeN
37gBiq9YFNiJD/f/L4pgpmCmkIxgpr+g+ARQSwMEFAACAAgAQ2KbTFCwnQjnAAAANAkAAG0AHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUt
aGlzdG9yeS1pbnRlcmZhY2UvdHJhdmVyc2VfdGhlX2hpc3RvcnlfNS1zdGRlcnIudHh0VVQJAANt
d+NaW2njWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZ3dxQigj1qFMGFtpChSHlWiMLu11K
Lqvz7Z36CCIyuW+BBMIv4f/LBoHZJUxn6fQqTeYADXYr0hqDlnvvUdbzi8UieYbrXITlJgWzNOwV
D1qh3pFzhh1LQ7r5KlIgP1pHL9B/T0FySCbw8ArvvIc36xWUISCCbhA6229VbI/nMDi0AY8dPW5o
TfFY5091W90XTXubmVVdZiYH9CMJ+x16tQ5GK2Q7h5Oz7EcUlQpv8cQ5lqiGdwMHUiwGFKvE/hS/
8Q8oPmNRYq8h3v+vKKKZopliMqKZfoPiA1BLAwQUAAIACABDYptMxpac2ucAAAA0CQAAdAAcAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1o
aXN0b3J5LWludGVyZmFjZS90cmF2ZXJzZV90aGVfaGlzdG9yeV91bmxvYWRfMS1zdGRlcnIudHh0
VVQJAANud+NaXGnjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZ3XQqRYR61CkDC22hA5Fy
rZEduyUll9X59k59BBGZ3LdAAuGX8P9lg8DsEqazdHqVJhcADXZLpzUGLXdEKE/nZ/N58gzXuQjL
TQpmYZgU91qh3jnvDXuWxun6q0jB0Wi9e4H+ewqSfTKBh1d45x28WVJQhoAIukbobL9RsT2ewuDR
Bjx09LChNcVjna/qtrovmvY2M8u6zEwOSKMTpi2SWg+jFWc7j5OT7EcUlQpv8Mg5FqiGtwMHp1gM
KFYd0zF+4x9QfMaixF5DvP9fUUQzRTPFZEQz/QbFB1BLAwQUAAIACABRYptMxpac2ucAAAA0CQAA
fgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5
L3RoZS1oaXN0b3J5LWludGVyZmFjZS90cmF2ZXJzZV90aGVfaGlzdG9yeV93cml0ZV9hZnRlcl9s
b2FkXzEtc3RkZXJyLnR4dFVUCQADiXfjWndp41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkA
Gd10KkWEetQpAwttoQORcq2RHbslJZfV+fZOfQQRmdy3QALhl/D/ZYPA7BKms3R6lSYXAA12S6c1
Bi13RChP52fzefIM17kIy00KZmGYFPdaod457w17lsbp+qtIwdFovXuB/nsKkn0ygYdXeOcdvFlS
UIaACLpG6Gy/UbE9nsLg0QY8dPSwoTXFY52v6ra6L5r2NjPLusxMDkijE6YtkloPoxVnO4+Tk+xH
FJUKb/DIORaohrcDB6dYDChWHdMxfuMfUHzGosReQ7z/X1FEM0UzxWREM/0GxQdQSwMEFAACAAgA
UWKbTDzhNjToAAAANAkAAH4AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
YnJvd3NlcnMvaGlzdG9yeS90aGUtaGlzdG9yeS1pbnRlcmZhY2UvdHJhdmVyc2VfdGhlX2hpc3Rv
cnlfd3JpdGVfYWZ0ZXJfbG9hZF8yLXN0ZGVyci50eHRVVAkAA4p341p4aeNadXgLAAEE9QEAAAQU
AAAA7ZThSsNADMe/+xR5ABnduuEoItSjThms0BYqjFGuNWPHbpeSy+p8e6c+gohs3LdAAuGX8P+l
PcPkDsaTZDxP4higxnZppEIvxdE55PU0ns2iDdxnzMQPCaiFIid4khLlyViryBLXRnbfRQLGDdqa
N+h+piA6RSN42cIHHeFdOwEh8IggO4RWd3th3eEt9Ba1x3NHzhsala+q7LVqyue8bh5TtayKVGWA
bjBM7oBOtIVBs9GtxdFN+iuKUpj2eOEcCxRFh568Ecx7ZC2G3CV+4woovmJRYCc+3P+/KIKZgplC
MoKZ/oLiE1BLAwQUAAIACABSYptMjB9E8OcAAAA0CQAAegAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1oaXN0b3J5LWludGVyZmFjZS90
cmF2ZXJzZV90aGVfaGlzdG9yeV93cml0ZV9vbmxvYWRfMS1zdGRlcnIudHh0VVQJAAOLd+NaeWnj
WnV4CwABBPUBAAAEFAAAAO2U7UrDUAyG/3sVuQAZ3RdKEaEe6pSBhbZQQaSkNbLDzk5KTlbn3Tv1
EkRkcv4FEghPwvtkg8DsAqazdHqZzhcADXVrqzUFLffekzwt5stl8gxXuQjLdQpmZdgrHbQivbXO
GXYsjdXNV5GC9SM6+wL99xQkh2QC96/wznt4Q6+gDIEIdEPQYb9VwZ7OYXCEgY4dPW5oTfFQ5491
W90VTXuTmXVdZiYH8qMV9jvyig5GFIudo8lZ9iOKSoW3dOIcK1LDu4GDVSoGElTL/hS/8Q8oPmNR
Uq8h3v+vKKKZopliMqKZfoPiA1BLAwQUAAIACABSYptMx4xEmegAAAA0CQAAegAcAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1oaXN0b3J5
LWludGVyZmFjZS90cmF2ZXJzZV90aGVfaGlzdG9yeV93cml0ZV9vbmxvYWRfMi1zdGRlcnIudHh0
VVQJAAOMd+NaemnjWnV4CwABBPUBAAAEFAAAAO2Ub0vDQAyH3/sp8gFkdH+Ko4hQjzplsEJbqDBG
udaMHbtdSi6r89s79SOIyMa9CyQQnoTfk/YMkzsYT5LxPJnGADW2SyMVeimOziGvZ9M4jjZwnzET
PySgFoqc4ElKlCdjrSJLXBvZfRcJGDdoa96g+5mC6BSN4GULH3SEd+0EhMAjguwQWt3thXWHt9Bb
1B7PHTlvaFS+qrLXqimf87p5TNWyKlKVAbrBMLkDOtEWBs1GtxZHN+mvKEph2uOFcyxQFB168kYw
75G1GHKX+I0roPiKRYGd+HD//6IIZgpmCskIZvoLik9QSwMECgAAAAAAalmbTAAAAAAAAAAAAAAA
AE0AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9y
eS90aGUtbG9jYXRpb24taW50ZXJmYWNlL1VUCQADyGfjWr5341p1eAsAAQT1AQAABBQAAABQSwME
FAACAAgAW2GbTDn+SM9OAAAAfwAAAHsAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtbG9jYXRpb24taW50ZXJmYWNlL2xvY2F0aW9uLXBy
b3RvY29sLXNldHRlci1ub24tYnJva2VuLXN0ZGVyci50eHRVVAkAA71141qqZ+NadXgLAAEE9QEA
AAQUAAAAc/b3C/b3cVXwdQ0OdnR3tVLwyy9RSMzJyS9PTVEoyVfIyU9MARLJiTkKRanF+aVFyalW
CsXJRZkFJarGrlzO5GhPyknMy9bLKMnN4QIAUEsDBAoAAgAAAFthm0wgwGwcQAAAAEAAAACBABwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhl
LWxvY2F0aW9uLWludGVyZmFjZS9sb2NhdGlvbi1wcm90b2NvbC1zZXR0ZXItbm9uLWJyb2tlbi13
ZWlyZC1zdGRlcnIudHh0VVQJAAO9deNaqWfjWnV4CwABBPUBAAAEFAAAAENPTlNPTEUgTUVTU0FH
RTogTm90IGFsbG93ZWQgdG8gbG9hZCBsb2NhbCByZXNvdXJjZTogYmxhbmsuaHRtbApQSwMEFAAC
AAgAXGGbTFLmZTXoAAAANAkAAHIAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtbG9jYXRpb24taW50ZXJmYWNlL3JlbG9hZF9kb2N1bWVu
dF9vcGVuX3dyaXRlLXN0ZGVyci50eHRVVAkAA8B141qrZ+NadXgLAAEE9QEAAAQUAAAA7ZThSsNA
DMe/7ynyAGN0004pInRHnWNgoS10IFKuXWTHbpeSy+p8e6c+gohM7lsggfBL+P/SnmF2A9NZMo2S
OAaosV0bqdBLcXQO+fn6Kr6dv8Bdxkx8n4BaKnKCJylRHoy1iixxbWT3VSRg3KCt2UL3PQXRKZrA
6hXe6Qhv2gkIgUcE2SG0utsL6w7H0FvUHs8dOW9oVP5UZZuqKR/zulmkal0VqcoA3WCY3AGdaAuD
ZqNbi5NR+iOKUpj2eOEcSxRFh568Ecx7ZC2G3CV+4x9QfMaiwE58uP9fUQQzBTOFZAQz/QbFB1BL
AwQUAAIACABcYZtMj1NkjucAAAA0CQAAbQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1sb2NhdGlvbi1pbnRlcmZhY2UvcmVsb2FkX2Rv
Y3VtZW50X3dyaXRlLXN0ZGVyci50eHRVVAkAA8B141qsZ+NadXgLAAEE9QEAAAQUAAAA7ZThSsNA
DMe/+xR5ABnddFOKCPWoUwYW2kIFkXKtkR27JSWX1fn2Tn0EEZnct0AC4Zfw/2WDwOwCprN0mqTz
BUCD3cppjUHLHRHK0/nZ/HLxDFe5CMt1CmZpmBT3WqHeOu8Ne5bG6fqrSMHRaL17gf57CpJ9MoH7
V3jnHbxZUlCGgAi6Ruhsv1GxPZ7C4NEGPHT0sKE1xUOdP9ZtdVc07U1mVnWZmRyQRidMWyS1HkYr
znYeJyfZjygqFd7gkXMsUQ1vBw5OsRhQrDqmY/zGP6D4jEWJvYZ4/7+iiGaKZorJiGb6DYoPUEsD
BBQAAgAIAFxhm0yPU2SO5wAAADQJAAB0ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWxvY2F0aW9uLWludGVyZmFjZS9yZWxvYWRfZG9j
dW1lbnRfd3JpdGVfb25sb2FkLXN0ZGVyci50eHRVVAkAA8B141qsZ+NadXgLAAEE9QEAAAQUAAAA
7ZThSsNADMe/+xR5ABnddFOKCPWoUwYW2kIFkXKtkR27JSWX1fn2Tn0EEZnct0AC4Zfw/2WDwOwC
prN0mqTzBUCD3cppjUHLHRHK0/nZ/HLxDFe5CMt1CmZpmBT3WqHeOu8Ne5bG6fqrSMHRaL17gf57
CpJ9MoH7V3jnHbxZUlCGgAi6Ruhsv1GxPZ7C4NEGPHT0sKE1xUOdP9ZtdVc07U1mVnWZmRyQRidM
WyS1HkYrznYeJyfZjygqFd7gkXMsUQ1vBw5OsRhQrDqmY/zGP6D4jEWJvYZ4/7+iiGaKZorJiGb6
DYoPUEsDBBQAAgAIAGxhm0yPU2SO5wAAADQJAABlABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWxvY2F0aW9uLWludGVyZmFjZS9yZWxv
YWRfcG9zdF8xLXN0ZGVyci50eHRVVAkAA9t141rHZ+NadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/
+xR5ABnddFOKCPWoUwYW2kIFkXKtkR27JSWX1fn2Tn0EEZnct0AC4Zfw/2WDwOwCprN0mqTzBUCD
3cppjUHLHRHK0/nZ/HLxDFe5CMt1CmZpmBT3WqHeOu8Ne5bG6fqrSMHRaL17gf57CpJ9MoH7V3jn
HbxZUlCGgAi6Ruhsv1GxPZ7C4NEGPHT0sKE1xUOdP9ZtdVc07U1mVnWZmRyQRidMWyS1HkYrznYe
JyfZjygqFd7gkXMsUQ1vBw5OsRhQrDqmY/zGP6D4jEWJvYZ4/7+iiGaKZorJiGb6DYoPUEsDBBQA
AgAIAGxhm0xK8RF16QAAADQJAAB5ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWxvY2F0aW9uLWludGVyZmFjZS9zY3JpcHRlZF9jbGlj
a19hc3NpZ25fZHVyaW5nX2xvYWQtc3RkZXJyLnR4dFVUCQAD23XjWsdn41p1eAsAAQT1AQAABBQA
AADtlG9Lw0AMh9/vU+QDjLF28w9FBvWoUwYW2kIHQ8q1i+zY7VJyWZ3f3qkfQUQm9y6QQHgSfk/a
M8Q3EMVJFCXxDKDGdmWkQi/F0TnkzXx2dXv9AncZM/EiAbVU5ARPUqI8GGsVWeLayO6rSMC4QVuz
he57Cqan6QSeXuGdjvCmnYAQeESQHUKru72w7nAMvUXt8dyR84ZG5c9Vtq6a8jGvm/tUraoiVRmg
GwyTO6ATbWHQbHRrcTJKf0RRCtMeL5xjiaLo0JM3gnmPrMWQu8Rv/AOKz1gU2IkP9/8rimCmYKaQ
jGCm36D4AFBLAwQUAAIACABsYZtM+g9jsekAAAA0CQAAggAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1sb2NhdGlvbi1pbnRlcmZhY2Uv
c2NyaXB0ZWRfY2xpY2tfbG9jYXRpb25fYXNzaWduX2R1cmluZ19sb2FkLXN0ZGVyci50eHRVVAkA
A9x141rIZ+NadXgLAAEE9QEAAAQUAAAA7ZRvS8NADIff71PkA4yx1vmHIoPuqFMGFtpCB0PKtYvs
2O1Sclmd396pH0FEJvcukEB4En5P2jPEtxDFSRQl8QygxnZlpEIvxdE55M3s6vru5gXuM2bieQJq
qcgJnqREeTDWKrLEtZHdV5GAcYO2Zgvd9xRMT9MJPL3COx3hTTsBIfCIIDuEVnd7Yd3hGHqL2uO5
I+cNjcqfq2xdNeVjXjeLVK2qIlUZoBsMkzugE21h0Gx0a3EySn9EUQrTHi+cY4mi6NCTN4J5j6zF
kLvEb/wDis9YFNiJD/f/K4pgpmCmkIxgpt+g+ABQSwMEFAACAAgAbGGbTPoPY7HpAAAANAkAAH8A
HABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90
aGUtbG9jYXRpb24taW50ZXJmYWNlL3NjcmlwdGVkX2Zvcm1fc3VibWl0X2Fzc2lnbl9kdXJpbmdf
bG9hZC1zdGRlcnIudHh0VVQJAAPcdeNayGfjWnV4CwABBPUBAAAEFAAAAO2Ub0vDQAyH3+9T5AOM
sdb5hyKD7qhTBhbaQgdDyrWL7NjtUnJZnd/eqR9BRCb3LpBAeBJ+T9ozxLcQxUkUJfEMoMZ2ZaRC
L8XROeTN7Or67uYF7jNm4nkCaqnICZ6kRHkw1iqyxLWR3VeRgHGDtmYL3fcUTE/TCTy9wjsd4U07
ASHwiCA7hFZ3e2Hd4Rh6i9rjuSPnDY3Kn6tsXTXlY143i1StqiJVGaAbDJM7oBNtYdBsdGtxMkp/
RFEK0x4vnGOJoujQkzeCeY+sxZC7xG/8A4rPWBTYiQ/3/yuKYKZgppCMYKbfoPgAUEsDBAoAAAAA
AKNZm0wAAAAAAAAAAAAAAAA1ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2Jyb3dzZXJzL29yaWdpbi9VVAkAAzFo41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAKNZ
m0wAAAAAAAAAAAAAAABKABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jy
b3dzZXJzL29yaWdpbi9jcm9zcy1vcmlnaW4tb2JqZWN0cy9VVAkAAzFo41q+d+NadXgLAAEE9QEA
AAQUAAAAUEsDBBQAAgAIAKZhm0wPJRXD5wAAADQJAAB3ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL29yaWdpbi9jcm9zcy1vcmlnaW4tb2JqZWN0cy9jcm9z
cy1vcmlnaW4tb2JqZWN0cy1vbi1uZXctd2luZG93LXN0ZGVyci50eHRVVAkAA0d241oxaONadXgL
AAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABnd3FSKCPWoUwYW2kIFkZLWyI7dLiWX1fn2Tn0EEZnc
t0AC4Zfw/2WDwOwCprN0mqSLc4CGupXVmoKWO+9JnuZni/nlM1zlIizXKZilYa+014r01jpn2LE0
VtdfRQrWj+jsC/TfU5Dskwncv8I77+ANvYIyBCLQNUGH/UYFezqFwREGOnT0sKE1xUOdP9ZtdVc0
7U1mVnWZmRzIj1bYb8krOhhRLHaOJifZjygqFd7QkXMsSQ1vBw5WqRhIUC37Y/zGP6D4jEVJvYZ4
/7+iiGaKZorJiGb6DYoPUEsDBAoAAAAAAGJZm0wAAAAAAAAAAAAAAABAABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L1VUCQAD
uGfjWr5341p1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAXVmbTAAAAAAAAAAAAAAAAGIAHABpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmpl
Y3QvYWNjZXNzaW5nLW90aGVyLWJyb3dzaW5nLWNvbnRleHRzL1VUCQADsWfjWr5341p1eAsAAQT1
AQAABBQAAABQSwMEFAACAAgAXWGbTKwW673oAAAANAkAAHoAHABpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3QvYWNjZXNzaW5nLW90
aGVyLWJyb3dzaW5nLWNvbnRleHRzL3dpbmRvd19sZW5ndGgtc3RkZXJyLnR4dFVUCQADwnXjWrFn
41p1eAsAAQT1AQAABBQAAADtlO1Kw1AMhv97FbkAGd10fhQR6qFOGVhoCxVEymmN7LCzpORkdd69
Uy9BRCbnXyCB8CS8TzYIzM5hOkunSTq/AGiwWzqtMWi5JUJ5Oj2Zn10+w1UuwnKdglkYJsWdVqi3
znvDnqVxuvoqUnA0Wu9eoP+egmSXTOD+Fd55C2+WFJQhIIKuEDrbr1Vsj8cweLQB9x3db2hN8VDn
j3Vb3RVNe5OZZV1mJgek0QnTBkmth9GKs53HyVH2I4pKhdd44BwLVMObgYNTLAYUq47pEL/xDyg+
Y1FiryHe/68oopmimWIyopl+g+IDUEsDBAoAAAAAAGNZm0wAAAAAAAAAAAAAAAB7ABwAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0
L2FwaXMtZm9yLWNyZWF0aW5nLWFuZC1uYXZpZ2F0aW5nLWJyb3dzaW5nLWNvbnRleHRzLWJ5LW5h
bWUvVVQJAAO6Z+NavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACABgYZtMrBbrvegAAAA0CQAA
mAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2lu
ZG93LW9iamVjdC9hcGlzLWZvci1jcmVhdGluZy1hbmQtbmF2aWdhdGluZy1icm93c2luZy1jb250
ZXh0cy1ieS1uYW1lL2Nsb3NlX2JlZm9yZXVubG9hZC1zdGRlcnIudHh0VVQJAAPDdeNasWfjWnV4
CwABBPUBAAAEFAAAAO2U7UrDUAyG/3sVuQAZ3XR+FBHqoU4ZWGgLFUTKaY3ssLOk5GR13r1TL0FE
JudfIIHwJLxPNgjMzmE6S6dJOr8AaLBbOq0xaLklQnk6PZmfXT7DVS7Ccp2CWRgmxZ1WqLfOe8Oe
pXG6+ipScDRa716g/56CZJdM4P4V3nkLb5YUlCEggq4QOtuvVWyPxzB4tAH3Hd1vaE3xUOePdVvd
FU17k5llXWYmB6TRCdMGSa2H0YqzncfJUfYjikqF13jgHAtUw5uBg1MsBhSrjukQv/EPKD5jUWKv
Id7/ryiimaKZYjKimX6D4gNQSwMEFAACAAgAYGGbTOeF69TnAAAANAkAAJgAHABpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3QvYXBp
cy1mb3ItY3JlYXRpbmctYW5kLW5hdmlnYXRpbmctYnJvd3NpbmctY29udGV4dHMtYnktbmFtZS9j
bG9zZV9zY3JpcHRfZGVmZXItc3RkZXJyLnR4dFVUCQADw3XjWrJn41p1eAsAAQT1AQAABBQAAADt
lOFKw0AMx7/7FHkAGd10yooI9ahTBhbaQgWRcq2Rhd0uJZfV+fZOfQQRmdy3QALhl/D/ZYPA7BKm
s3SapPMFQIPdirTGoOXOe5Sn87P5xeIZrnIRlusUzNKwV9xrhXpLzhl2LA3p+qtIgfxoHb1A/z0F
yT6ZwP0rvPMO3qxXUIaACLpG6Gy/UbE9nsLg0AY8dPSwoTXFQ50/1m11VzTtTWZWdZmZHNCPJOy3
6NU6GK2Q7RxOTrIfUVQqvMEj51iiGt4OHEixGFCsEvtj/MY/oPiMRYm9hnj/v6KIZopmismIZvoN
ig9QSwMEFAACAAgAYGGbTOeF69TnAAAANAkAAJIAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3QvYXBpcy1mb3ItY3JlYXRpbmct
YW5kLW5hdmlnYXRpbmctYnJvd3NpbmctY29udGV4dHMtYnktbmFtZS9jbG9zZV91bmxvYWQtc3Rk
ZXJyLnR4dFVUCQADw3XjWrJn41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGd10yooI9ahT
BhbaQgWRcq2Rhd0uJZfV+fZOfQQRmdy3QALhl/D/ZYPA7BKms3SapPMFQIPdirTGoOXOe5Sn87P5
xeIZrnIRlusUzNKwV9xrhXpLzhl2LA3p+qtIgfxoHb1A/z0FyT6ZwP0rvPMO3qxXUIaACLpG6Gy/
UbE9nsLg0AY8dPSwoTXFQ50/1m11VzTtTWZWdZmZHNCPJOy36NU6GK2Q7RxOTrIfUVQqvMEj51ii
Gt4OHEixGFCsEvtj/MY/oPiMRYm9hnj/v6KIZopmismIZvoNig9QSwMEFAACAAgAYGGbTBkuL4AY
AQAA0CQAAKcAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMv
dGhlLXdpbmRvdy1vYmplY3QvYXBpcy1mb3ItY3JlYXRpbmctYW5kLW5hdmlnYXRpbmctYnJvd3Np
bmctY29udGV4dHMtYnktbmFtZS9jcmVhdGluZ19icm93c2luZ19jb250ZXh0X3Rlc3RfMDEtc3Rk
ZXJyLnR4dFVUCQADw3XjWrJn41p1eAsAAQT1AQAABBQAAADt1NFKwzAYBeB7n+J/ABnddMqKCF2o
UwYW2kIHIiXtfllYlpT0X51v79RH8EIq566QQjgnnC/pAs1uaTqLp1E8XxBV3KyNlNxLfnSOw8v1
1fxm8Up3aQg+3MekVso74ZMULA/GWuWtD5WR3fdHTMYN2pottT9/UXSKJvT0Rh/+SO/aCYmnnplk
x9Todi9Bt3xJnWXd8/lEzjfUKnsu001ZF49ZVS8TtS7zRKXEbjDBuwM70ZYGHYxuLE8ukl+lKCT4
PY88x4pF+UPneyOcdRy0GO/G+Br/IMXXLHJupUf/f5UCMkEmLAMyQSbIBJkgE/qHTJAJy4BMkAky
QSbIhP4hE2TCMiATZIJMkAkyoX/IBJkgE2Qab/+fUEsDBBQAAgAIAGBhm0xi1GY7RQEAAGxAAACz
ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5k
b3ctb2JqZWN0L2FwaXMtZm9yLWNyZWF0aW5nLWFuZC1uYXZpZ2F0aW5nLWJyb3dzaW5nLWNvbnRl
eHRzLWJ5LW5hbWUvb3Blbi1mZWF0dXJlcy1uZWdhdGl2ZS1pbm5lcndpZHRoLWlubmVyaGVpZ2h0
LXN0ZGVyci50eHRVVAkAA8N141qyZ+NadXgLAAEE9QEAAAQUAAAA7dRRSwJBFMXx9z7F/QAhalm4
RLAtZiEkqGAQIeN2w8F1Zpm9mn37rN576SGM/9vCLAznDOeX10m6l9LpZp121uuLzHU58jbTxibb
EDQ9nZ/1LvrPcjVIKabrTIphEYPp3qZqt76qiljFNPe2+vrIxIedq/yLlN9/SXvfbsn9q7zHrby5
YGJRGlWxlcrSlWtLrtRTqSt1jR5O7HDDohg/zAaPs8X0bjxf3OTFaDbJi4Fo2PkUw0aDuUp2Lnm3
rLR1kv8qxdRSXOuR5xiqFXFTx8abjmtNznwMx/ga/yDF5ywmWlpD/3+VApmQiWUgEzIhEzIhE/0j
EzKxDGRCJmRCJmSif2RCJpaBTMiETMiETPSPTMiETMiETMiETCwDmZAJmZAJmegfmZCJZSATMiET
MiET/SMTMrEMZEImZEImZKL/n1N8AFBLAwQUAAIACABgYZtMYtRmO0UBAABsQAAArAAcAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVj
dC9hcGlzLWZvci1jcmVhdGluZy1hbmQtbmF2aWdhdGluZy1icm93c2luZy1jb250ZXh0cy1ieS1u
YW1lL29wZW4tZmVhdHVyZXMtbmVnYXRpdmUtc2NyZWVueC1zY3JlZW55LXN0ZGVyci50eHRVVAkA
A8N141qyZ+NadXgLAAEE9QEAAAQUAAAA7dRRSwJBFMXx9z7F/QAhalm4RLAtZiEkqGAQIeN2w8F1
Zpm9mn37rN576SGM/9vCLAznDOeX10m6l9LpZp121uuLzHU58jbTxibbEDQ9nZ/1LvrPcjVIKabr
TIphEYPp3qZqt76qiljFNPe2+vrIxIedq/yLlN9/SXvfbsn9q7zHrby5YGJRGlWxlcrSlWtLrtRT
qSt1jR5O7HDDohg/zAaPs8X0bjxf3OTFaDbJi4Fo2PkUw0aDuUp2Lnm3rLR1kv8qxdRSXOuR5xiq
FXFTx8abjmtNznwMx/ga/yDF5ywmWlpD/3+VApmQiWUgEzIhEzIhE/0jEzKxDGRCJmRCJmSif2RC
JpaBTMiETMiETPSPTMiETMiETMiETCwDmZAJmZAJmegfmZCJZSATMiETMiET/SMTMrEMZEImZEIm
ZKL/n1N8AFBLAwQUAAIACABgYZtMPyu6NFsBAABsQAAApQAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC9hcGlzLWZvci1jcmVh
dGluZy1hbmQtbmF2aWdhdGluZy1icm93c2luZy1jb250ZXh0cy1ieS1uYW1lL29wZW4tZmVhdHVy
ZXMtbmVnYXRpdmUtdG9wLWxlZnQtc3RkZXJyLnR4dFVUCQADxHXjWrNn41p1eAsAAQT1AQAABBQA
AADt1OFKwzAUBeD/PsV9ABnddMqKCDXMKgMLbWEDkZHVKwvLkpLezfn2Tn0CFXHtzr9CCuWc9HxJ
HWhwSf1B3I/i4YhoyouJkZIbyTfOcXg8PxtejJ7oahyCD9cxqVR5J7yTguXWWKu89WFqZPn5EJNx
W23NM1Vfb1G0i3p0/0JvfkOv2gmJp4aZZMm00NVKgq74lGrLuuH9iey/MFfZQzmelfPiLpvObxI1
KfNEjYnd1gTv1uxEW9rqYPTCcu8k+VWKQoJfcctzpCzKr2vfGOGs5qDFeNfG2+hAio9Z5FxJg/7/
KwVkgkxYBmT64xT9OIraL9MPUhykTN/NkXbln+pAisOR6Tj7h0yQCcuATJAJMkEmyIT+IRNkwjIg
E2SCTJAJMqF/yASZsAzIBJkgE2SCTOgfMkEmyASZIBNkgkxYBmSCTJAJMkEm9A+ZIBOWAZkgE2SC
TJDp6Pt/B1BLAwQUAAIACABgYZtMxU1F60UBAABsQAAAqQAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC9hcGlzLWZvci1jcmVh
dGluZy1hbmQtbmF2aWdhdGluZy1icm93c2luZy1jb250ZXh0cy1ieS1uYW1lL29wZW4tZmVhdHVy
ZXMtbmVnYXRpdmUtd2lkdGgtaGVpZ2h0LXN0ZGVyci50eHRVVAkAA8R141qzZ+NadXgLAAEE9QEA
AAQUAAAA7dTNSsNAFMXxvU9xH0BKWr8wiBBDrVKw0BYqiJRpvNKh6UyY3Nb69lbdu3Ehlf8uMIHh
nOH8iiZJ70K6vbzbzbNMZKaLobeptjbehKDp6fTk7PzyWa76KcV0nUs5KGMw3dlE7dbXdRnrmGbe
ll8fufiwdbV/ker7L8l2WUfuX+U9buTNBROL0qqKLVUWrlpZcpUeS1Ora3V/Yvsb5uXoYdp/nM4n
d6PZ/KYoh9NxUfZFw9anGNYazNWydcm7Ra2do+JXKSaW4koPPMdArYzrJrbedNRocuZjOMTX+Acp
Pmcx1spa+v+rFMiETCwDmZAJmZAJmegfmZCJZSATMiETMiET/SMTMrEMZEImZEImZKJ/ZEImZEIm
ZEImZGIZyIRMyIRMyET/yIRMLAOZkAmZkAmZ6B+ZkIllIBMyIRMyIRP9/5ziA1BLAwQUAAIACABh
YZtME1pKCLIBAAAMigAApgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9i
cm93c2Vycy90aGUtd2luZG93LW9iamVjdC9hcGlzLWZvci1jcmVhdGluZy1hbmQtbmF2aWdhdGlu
Zy1icm93c2luZy1jb250ZXh0cy1ieS1uYW1lL29wZW4tZmVhdHVyZXMtbm9uLWludGVnZXItaGVp
Z2h0LXN0ZGVyci50eHRVVAkAA8V141q0Z+NadXgLAAEE9QEAAAQUAAAA7dTdSgJRFIbh865iXUDI
aH80RDANZiEkqGAQIdtphRvHvYc9S7O7z+oKooMw3jNhhGG9w/cUTZLehXR7ebebZ5nITBdDb1Nt
bbwJQdPT6cnZ+eWzXPVTiuk6l3JQxmC6s4nara/rMtYxzbwtv37k4sPW1f5Fqu9/SbbLOnL/Ku9x
I28umFiUVlVsqbJw1cqSq/RYmlpdq/sntn/DvBw9TPuP0/nkbjSb3xTlcDouyr5o2PoUw1qDuVq2
Lnm3qLVzVPzqiomluNIDv2OgVsZ1E1tvOmo0OfMxHOLX+AdXfM5irJW19P+rK5AJmVgGMiETMiET
MtEfmZCJZSATMiETMiET/ZEJmVgGMiETMiETMtEfmZAJmZAJmZAJmVgGMiETMiETMtEfmZCJZSAT
MiETMiET/ZEJmVgGMiETMiETMtEfmZCJZSATMiETMiETMiETMiETMtEfmZCJZSATMiETMiET/ZEJ
mVgGMiETMiETMtEfmZCJZSATMiETMiET/ZEJmZAJmeiPTMjEMpAJmZAJmZCJ/siETCwDmZAJmZAJ
meiPTMjEMpAJmZAJmZCJ/j+54gNQSwMEFAACAAgAYWGbTF3Ma7eVAQAApHcAAKsAHABpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qv
YXBpcy1mb3ItY3JlYXRpbmctYW5kLW5hdmlnYXRpbmctYnJvd3NpbmctY29udGV4dHMtYnktbmFt
ZS9vcGVuLWZlYXR1cmVzLW5vbi1pbnRlZ2VyLWlubmVyaGVpZ2h0LXN0ZGVyci50eHRVVAkAA8V1
41q0Z+NadXgLAAEE9QEAAAQUAAAA7dTdSgJRFIbh865iXUCIY380RDANZiEkqGAQIdtphRvHvYc9
S7O7z+oSOgjrPRNGGNY7fE/RJOldSNbLsyzvZiIzXQy9TbW18SYETU+nJ2fnl89y1U8pputcykEZ
g+nOJmq3vq7LWMc087b8+pGLD1tX+xepvv8l3V23I/ev8h438uaCiUVpVcWWKgtXrSy5So+lqdW1
un9i+zfMy9HDtP84nU/uRrP5TVEOp+Oi7IuGrU8xrDWYq2XrkneLWjtHxY+umFiKKz3wOwZqZVw3
sfWmo0aTMx/DIX6NP3DF5yzGWllL/9+6ApmQiWUgEzIhEzIhE/2RCZlYBjIhEzIhEzLRH5mQiWUg
EzIhEzIhE/2RCZmQCZmQCZmQiWUgEzIhEzIhE/2RCZlYBjIhEzIhEzLRH5mQiWUgEzIhEzIhE/2R
CZlYBjIhEzIhEzIhEzIhEzIhE/2RCZlYBjIhEzIhEzLRH5mQiWUgEzIhEzIhE/2RCZlYBjIhEzIh
EzLRH5mQCZmQif7IhEwsA5mQCZmQCZn+T/8PUEsDBBQAAgAIAGFhm0xdzGu3lQEAAKR3AACqABwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ct
b2JqZWN0L2FwaXMtZm9yLWNyZWF0aW5nLWFuZC1uYXZpZ2F0aW5nLWJyb3dzaW5nLWNvbnRleHRz
LWJ5LW5hbWUvb3Blbi1mZWF0dXJlcy1ub24taW50ZWdlci1pbm5lcndpZHRoLXN0ZGVyci50eHRV
VAkAA8Z141q0Z+NadXgLAAEE9QEAAAQUAAAA7dTdSgJRFIbh865iXUCIY380RDANZiEkqGAQIdtp
hRvHvYc9S7O7z+oSOgjrPRNGGNY7fE/RJOldSNbLsyzvZiIzXQy9TbW18SYETU+nJ2fnl89y1U8p
putcykEZg+nOJmq3vq7LWMc087b8+pGLD1tX+xepvv8l3V23I/ev8h438uaCiUVpVcWWKgtXrSy5
So+lqdW1un9i+zfMy9HDtP84nU/uRrP5TVEOp+Oi7IuGrU8xrDWYq2XrkneLWjtHxY+umFiKKz3w
OwZqZVw3sfWmo0aTMx/DIX6NP3DF5yzGWllL/9+6ApmQiWUgEzIhEzIhE/2RCZlYBjIhEzIhEzLR
H5mQiWUgEzIhEzIhE/2RCZmQCZmQCZmQiWUgEzIhEzIhE/2RCZlYBjIhEzIhEzLRH5mQiWUgEzIh
EzIhE/2RCZlYBjIhEzIhEzIhEzIhEzIhE/2RCZlYBjIhEzIhEzLRH5mQiWUgEzIhEzIhE/2RCZlY
BjIhEzIhEzLRH5mQCZmQif7IhEwsA5mQCZmQCZn+T/8PUEsDBBQAAgAIAGFhm0y4w7ZdlQEAAKR3
AACkABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13
aW5kb3ctb2JqZWN0L2FwaXMtZm9yLWNyZWF0aW5nLWFuZC1uYXZpZ2F0aW5nLWJyb3dzaW5nLWNv
bnRleHRzLWJ5LW5hbWUvb3Blbi1mZWF0dXJlcy1ub24taW50ZWdlci1sZWZ0LXN0ZGVyci50eHRV
VAkAA8Z141q1Z+NadXgLAAEE9QEAAAQUAAAA7dTdSgJRFIbh865iXUCI2h8NEUyDWQgJOmAQIdtp
hRvHvYc9S7O7z+oSOgjrPRNGGNY7fE/eJOlfSK+f9XpZty8y08XIW6mtTTYhaHo6PTk7v3yWq0FK
MV1nUgyLGEx3NlW79XVdxDqmmbfl149MfNi62r9I9f0v6e66Hbl/lfe4kTcXTCxKqyq2VFm4amXJ
VXosTa2u1f0T279hXowfysFjOZ/ejWfzm7wYlZO8GIiGrU8xrDWYq2XrkneLWjtH+Y+umFqKKz3w
O4ZqRVw3sfWm40aTMx/DIX6NP3DF5ywmWllL/9+6ApmQiWUgEzIhEzIhE/2RCZlYBjIhEzIhEzLR
H5mQiWUgEzIhEzIhE/2RCZmQCZmQCZmQiWUgEzIhEzIhE/2RCZlYBjIhEzIhEzLRH5mQiWUgEzIh
EzIhE/2RCZlYBjIhEzIhEzIhEzIhEzIhE/2RCZlYBjIhEzIhEzLRH5mQiWUgEzIhEzIhE/2RCZlY
BjIhEzIhEzLRH5mQCZmQif7IhEwsA5mQCZmQCZn+T/8PUEsDBBQAAgAIAGJhm0y4w7ZdlQEAAKR3
AACnABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13
aW5kb3ctb2JqZWN0L2FwaXMtZm9yLWNyZWF0aW5nLWFuZC1uYXZpZ2F0aW5nLWJyb3dzaW5nLWNv
bnRleHRzLWJ5LW5hbWUvb3Blbi1mZWF0dXJlcy1ub24taW50ZWdlci1zY3JlZW54LXN0ZGVyci50
eHRVVAkAA8d141q1Z+NadXgLAAEE9QEAAAQUAAAA7dTdSgJRFIbh865iXUCI2h8NEUyDWQgJOmAQ
IdtphRvHvYc9S7O7z+oSOgjrPRNGGNY7fE/eJOlfSK+f9XpZty8y08XIW6mtTTYhaHo6PTk7v3yW
q0FKMV1nUgyLGEx3NlW79XVdxDqmmbfl149MfNi62r9I9f0v6e66Hbl/lfe4kTcXTCxKqyq2VFm4
amXJVXosTa2u1f0T279hXowfysFjOZ/ejWfzm7wYlZO8GIiGrU8xrDWYq2XrkneLWjtH+Y+umFqK
Kz3wO4ZqRVw3sfWm40aTMx/DIX6NP3DF5ywmWllL/9+6ApmQiWUgEzIhEzIhE/2RCZlYBjIhEzIh
EzLRH5mQiWUgEzIhEzIhE/2RCZmQCZmQCZmQiWUgEzIhEzIhE/2RCZlYBjIhEzIhEzLRH5mQiWUg
EzIhEzIhE/2RCZlYBjIhEzIhEzIhEzIhEzIhE/2RCZlYBjIhEzIhEzLRH5mQiWUgEzIhEzIhE/2R
CZlYBjIhEzIhEzLRH5mQCZmQif7IhEwsA5mQCZmQCZn+T/8PUEsDBBQAAgAIAGJhm0wbOQIElgEA
AKR3AACnABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3Ro
ZS13aW5kb3ctb2JqZWN0L2FwaXMtZm9yLWNyZWF0aW5nLWFuZC1uYXZpZ2F0aW5nLWJyb3dzaW5n
LWNvbnRleHRzLWJ5LW5hbWUvb3Blbi1mZWF0dXJlcy1ub24taW50ZWdlci1zY3JlZW55LXN0ZGVy
ci50eHRVVAkAA8d141q2Z+NadXgLAAEE9QEAAAQUAAAA7dTdSgJRFIbh865iXUCIZj80RDANZiEk
6IBBhGynFW4c9x72LM3uPqtL6CCs90wYYVjv8D15k+TkQnonWa+XdfsiM12MvJXa2mQTgqan0/7Z
+eWzXA1Siuk6k2JYxGC6s6nara/rItYxzbwtv35k4sPW1f5Fqu9/SXfX7cj9q7zHjby5YGJRWlWx
pcrCVStLrtJjaWp1re6f2P4N82L8UA4ey/n0bjyb3+TFqJzkxUA0bH2KYa3BXC1bl7xb1No5yn90
xdRSXOmB3zFUK+K6ia03HTeanPkYDvFr/IErPmcx0cpa+v/WFciETCwDmZAJmZAJmeiPTMjEMpAJ
mZAJmZCJ/siETCwDmZAJmZAJmeiPTMiETMiETMiETCwDmZAJmZAJmeiPTMjEMpAJmZAJmZCJ/siE
TCwDmZAJmZAJmeiPTMjEMpAJmZAJmZAJmZAJmZAJmeiPTMjEMpAJmZAJmZCJ/siETCwDmZAJmZAJ
meiPTMjEMpAJmZAJmZCJ/siETMiETPRHJmRiGciETMiETMj0f/p/AFBLAwQUAAIACABiYZtMGzkC
BJYBAACkdwAAowAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vy
cy90aGUtd2luZG93LW9iamVjdC9hcGlzLWZvci1jcmVhdGluZy1hbmQtbmF2aWdhdGluZy1icm93
c2luZy1jb250ZXh0cy1ieS1uYW1lL29wZW4tZmVhdHVyZXMtbm9uLWludGVnZXItdG9wLXN0ZGVy
ci50eHRVVAkAA8h141q2Z+NadXgLAAEE9QEAAAQUAAAA7dTdSgJRFIbh865iXUCIZj80RDANZiEk
6IBBhGynFW4c9x72LM3uPqtL6CCs90wYYVjv8D15k+TkQnonWa+XdfsiM12MvJXa2mQTgqan0/7Z
+eWzXA1Siuk6k2JYxGC6s6nara/rItYxzbwtv35k4sPW1f5Fqu9/SXfX7cj9q7zHjby5YGJRWlWx
pcrCVStLrtJjaWp1re6f2P4N82L8UA4ey/n0bjyb3+TFqJzkxUA0bH2KYa3BXC1bl7xb1No5yn90
xdRSXOmB3zFUK+K6ia03HTeanPkYDvFr/IErPmcx0cpa+v/WFciETCwDmZAJmZAJmeiPTMjEMpAJ
mZAJmZCJ/siETCwDmZAJmZAJmeiPTMiETMiETMiETCwDmZAJmZAJmeiPTMjEMpAJmZAJmZCJ/siE
TCwDmZAJmZAJmeiPTMjEMpAJmZAJmZAJmZAJmZAJmeiPTMjEMpAJmZAJmZCJ/siETCwDmZAJmZAJ
meiPTMjEMpAJmZAJmZCJ/siETMiETPRHJmRiGciETMiETMj0f/p/AFBLAwQUAAIACABiYZtMgyeW
nLIBAAAMigAApQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vy
cy90aGUtd2luZG93LW9iamVjdC9hcGlzLWZvci1jcmVhdGluZy1hbmQtbmF2aWdhdGluZy1icm93
c2luZy1jb250ZXh0cy1ieS1uYW1lL29wZW4tZmVhdHVyZXMtbm9uLWludGVnZXItd2lkdGgtc3Rk
ZXJyLnR4dFVUCQADyHXjWrdn41p1eAsAAQT1AQAABBQAAADt1NFKAkEUh/H7nuI8QIiaFS0RbItZ
CAm6YBAh43bCwXVmmT2avX1WTxBdRPHdCSss51v+v7xJ0j+XXj/r9bLuQGSuy7G3UlubbkPQ9Dg4
OT27eJLLYUoxXWVSjIoYTPc2U7vxdV3EOqa5t9Xnj0x82LnaP0v19S/p7rsduXuRt7iVVxdMLEqr
KrZSWbpqbclVeixNra7VwxM7vGFRTO7L4UO5mN1O5ovrvBiX07wYioadTzFsNJirZeeSd8taO0f5
j66YWYpr/eN3jNSKuGli600njSZnPoa/+DX+wRUfs5hqZS39f+sKZEImloFMyIRMyIRM9EcmZGIZ
yIRMyIRMyER/ZEImloFMyIRMyIRM9EcmZEImZEImZEImloFMyIRMyIRM9EcmZGIZyIRMyIRMyER/
ZEImloFMyIRMyIRM9EcmZGIZyIRMyIRMyIRMyIRMyIRM9EcmZGIZyIRMyIRMyER/ZEImloFMyIRM
yIRM9EcmZGIZyIRMyIRMyER/ZEImZEIm+iMTMrEMZEImZEImZKI/MiETy0AmZEImZEIm+iMTMrEM
ZEImZEImZKL/d654B1BLAwQUAAIACABjYZtM6m36wbEBAADYgAAAtwAcAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC9hcGlzLWZv
ci1jcmVhdGluZy1hbmQtbmF2aWdhdGluZy1icm93c2luZy1jb250ZXh0cy1ieS1uYW1lL29wZW4t
ZmVhdHVyZXMtdG9rZW5pemF0aW9uLWlubmVyaGVpZ2h0LWlubmVyd2lkdGgtc3RkZXJyLnR4dFVU
CQADyXXjWrdn41p1eAsAAQT1AQAABBQAAADt1NFKAkEUh/H7nuI8QIiaW7REYItZCAkqGETIaCcc
XGdk9mj29lk9QhfW9t0JKyznv3y/7iZJ+0Ja7bzVypsdkanOB94mWtloG4Kmp85Zdn75LFe9lGK6
zqXoFzGY7m2sduvLsohlTFNvy68fufiwc6V/kcX3v6S5bzbk/lXe41beXDCxKJWq2FJl7hYrS26h
p7Ip1VV6eGKHN8yK4cOk9ziZje+G09lNtxhMRt2iJxp2PsWw1mCulJ1L3s1LbZx0f3TF2FJc6R+/
o69WxPUmVt50uNHkzMfwF79GDa74zGKkC6vY/1hXIBMyUQYyIRMyIRMysT8yIRNlIBMyIRMyIRP7
IxMyUQYyIRMyIRMysT8yIRMyIVNd9s9qIVNWE5myWsiU/b8yfpVMGTIhEzJRBjIhEzIhEzKxPzIh
E2UgEzIhEzIhE/sjEzJRBjIhEzIhEzKxPzIhE2UgEzIhEzIhEzIhEzIhEzKxPzIhE2UgEzIhEzIh
E/sjEzJRBjIhEzIhEzKxPzIhE2UgEzIhEzIhE/sjEzIhEzIhEzIhE2UgEzIhEzIhE/sjEzJRBjId
af8PUEsDBBQAAgAIAGNhm0x0Z7S4/wIAACBwAQCpABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L2FwaXMtZm9yLWNyZWF0aW5n
LWFuZC1uYXZpZ2F0aW5nLWJyb3dzaW5nLWNvbnRleHRzLWJ5LW5hbWUvb3Blbi1mZWF0dXJlcy10
b2tlbml6YXRpb24tbm9vcGVuZXItc3RkZXJyLnR4dFVUCQADynXjWrhn41p1eAsAAQT1AQAABBQA
AADt1MFqE1EYhuG9V3EuQEpS7YhBhHSIVQoGkkAEkTBJj3TodE44cxrr3Vt1496FbXx2gQkM/zt8
z3Sfw+mrMD6djMeT0VkI67i9bMsqDmVx1/cxf3754qx6/SW8meWc8ttJqC/q1Jd4X5axvGu7rk5d
yuu2XP/6MQltf2i69irsfv8rjO5HJ+HD1/A93YVvTV9CSWGIMZTrGLbN7qbkZhefh30XmyE+PCkP
b9jU84+r2afVZvl+vt6cT+vL1WJaz0LsD21O/W3sS9OFQ5PbZtvFk2fTv7piWXK6iU/8jotY6nS7
T0Nb4nwfc1Pa1D/Fr3EEV/ycxSLuyqD/v7qCTGSyDDKRiUxkIpP+ZCKTZZCJTGQiE5n0JxOZLINM
ZCITmcikP5nIRCYykYlMZLIMMpGJTGQik/5kIpNlkIlMZCITmfQnE5ksg0xkIhOZyKQ/mchkGWQi
E5nIRCYykYlMZCKT/mQik2WQiUxkIhOZ9CcTmSyDTGQiE5nIpD+ZyGQZZCITmchEJv3JRCYykUl/
MpHJMshEJjKRiUz6k4lMlkEmMpGJTGTSn0xksgwykYlMZCKT/mQiE5nIRCYykckyyEQmMpGJTPqT
iUyWQSYykYlMZNKfTGSyDDI99v7VUchUHYlM1VHIVP1/y3hUMlVkIhOZLINMZCITmcikP5nIZBlk
IhOZyEQm/clEJssgE5nIRCYy6U8mMlkGmchEJjKRiUxkIhOZyKQ/mchkGWQiE5nIRCb9yUQmyyAT
mchEJjLpTyYyWQaZyEQmMpFJfzKRiUxkIhOZyGQZZCITmchEJv3JRCbLIBOZyEQmMulPJjJZBpnI
RCYykUl/MpGJTGQiE5nIZBlkIhOZyEQm/clEJssgE5nIRCYy6U8mMlkGmchEJjKRSX8ykckyyEQm
MpGJTGQiE5nIRCb9yUQmyyATmchEJjLpTyYyWQaZyEQmMpFJfzKRyTLIRCYykYlM+pOJTGQik/5k
IpNlkIlMZCITmfQnE5ksg0xkIhOZyKT/H1f8AFBLAwQUAAIACABkYZtMdpBtnKUBAADYgAAAsAAc
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93
LW9iamVjdC9hcGlzLWZvci1jcmVhdGluZy1hbmQtbmF2aWdhdGluZy1icm93c2luZy1jb250ZXh0
cy1ieS1uYW1lL29wZW4tZmVhdHVyZXMtdG9rZW5pemF0aW9uLXNjcmVlbngtc2NyZWVueS1zdGRl
cnIudHh0VVQJAAPLdeNauWfjWnV4CwABBPUBAAAEFAAAAO3U0UoCQRSH8fue4jxAiFoZLRFsi1kI
CbpgECHjdsLBdWaZPZq9fVYXPUAXUXx3wgrL+Zb/L2+S9M+l1896vaw7EJnrcuyt1Nam2xA0PZ6e
nA0unuRymFJMV5kUoyIG073N1G58XRexjmnubfX5IxMfdq72z1J9/Uu6+25H7l7kLW7l1QUTi9Kq
iq1Ulq5aW3KVHktTq2v18MQOb1gUk/ty+FAuZreT+eI6L8blNC+GomHnUwwbDeZq2bnk3bLWzlH+
oytmluJa//gdI7UibprYetNJo8mZj+Evfo1/cMXHLKZaWUv/37oCmZCJZSATMiETMiET/ZEJmVgG
MiETMiETMtEfmZCJZSATMiETMiET/ZEJmZAJmZAJmZCJZSATMiETMiET/ZEJmVgGMiETMiETMtEf
mZCJZSATMiETMiET/ZEJmVgGMiETMiETMiETMiETMiET/ZEJmVgGMiETMiETMtEfmZCJZSATMiET
MiET/ZEJmVgGMiETMiETMtEfmZAJmZCJ/siETCwDmZAJmZAJmeiPTMjEMpAJmZAJmZCJ/t9XvANQ
SwMEFAACAAgAZGGbTMIKllXBAQAAQJMAAKkAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3QvYXBpcy1mb3ItY3JlYXRpbmctYW5k
LW5hdmlnYXRpbmctYnJvd3NpbmctY29udGV4dHMtYnktbmFtZS9vcGVuLWZlYXR1cmVzLXRva2Vu
aXphdGlvbi10b3AtbGVmdC1zdGRlcnIudHh0VVQJAAPLdeNauWfjWnV4CwABBPUBAAAEFAAAAO3U
7WoTURSG0f9exbkAKUn9KAYR0iFWKRhIAimIhEm6pUOnc8LJaax3b9VLUJDK+heYwLDf4VnTfUmn
Z2l8OhmPJ6OzlNaxvezqKg51cT8MUT6/fPHq9Zsv6e2slFzeTVJz0eShxkNdRn3f9X2T+1zWXb35
9WOSuuHY9t112v3+Vxo9jE7Sx6/pe75P39qhpprTISLVm0jbdndbS7uL52nfR3uIxyf18Q2bZv5p
NbtabZYf5uvN+bS5XC2mzSzFcOxKHu5iqG2fjm3p2m0fJ8+mf3TFspZ8G0/8jouoTb7b50NXY76P
0tYuD0/xa/wHV/zMYhG7erD/v7qCTGRSBpnIRCYykcn+ZCKTMshEJjKRiUz2JxOZlEEmMpGJTGSy
P5nIRCYykYlMZFIGmchEJjKRyf5kIpMyyEQmMpGJTPYnE5mUQSYykYlMZLI/mcikDDKRiUxkIhOZ
yEQmMpHJ/mQikzLIRCYykYlM9icTmZRBJjKRiUxksj+ZyKQMMpGJTGQik/3JRCYykcn+ZCKTMshE
JjKRiUz2JxOZlEEmMpGJTGSyP5nIpAwykYlMZCKT/clEJjKRiUxkIpMyyPR3r/gBUEsDBBQAAgAI
AGRhm0xDblpo6wEAAKilAACtABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L2FwaXMtZm9yLWNyZWF0aW5nLWFuZC1uYXZpZ2F0
aW5nLWJyb3dzaW5nLWNvbnRleHRzLWJ5LW5hbWUvb3Blbi1mZWF0dXJlcy10b2tlbml6YXRpb24t
d2lkdGgtaGVpZ2h0LXN0ZGVyci50eHRVVAkAA8x141q6Z+NadXgLAAEE9QEAAAQUAAAA7dTvatNQ
HMfh917FuQAZ7fyzWESooU4ZWGgLFURKWo8sLMspJ2d13r1TL8HBXH3eFVIIv2/4PNN9DqdnYXw6
GY8no7MQ1nF70ZZVHMripu9j/vz82YuXr76E17OcU34zCfV5nfoSb8sylndt19WpS3ndlsvfPyah
7Q9N134Nuz//CqPb0Un48C38SDfhe9OXUFIYYgzlMoZts7squdnFp2HfxWaId0/K3Rs29fzjavZp
tVm+n683b6f1xWoxrWch9oc2p/469qXpwqHJbbPt4smT6V9dsSw5XcVHfsd5LHW63qehLXG+j7kp
beof49c4git+ZbGIuzLY/6GuIBOZlEEmMpGJTGSyP5nIpAwykYlMZCKT/clEJmWQiUxkIhOZ7E8m
MpGJTGQiE5mUQSYykYlMZLI/mcikDDKRiUxkIpP9yUQmZZCJTGQiE5nsTyYyKYNMZCITmchEJjKR
iUxksj+ZyKQMMpGJTGQik/3JRCZlkIlMZCITmexPJjIpg0xkIhOZyGR/MpGJTGSyP5nIpAwykYlM
ZCKT/clEJmWQiUxkIhOZ7E8mMimDTGQiE5nIZH8ykYlMZCITmcikDDKRiUxkIpP9yUQmZZDpYa+o
jkKm6khkqo5Cpur/K+OfkqkiE5nIpAwy3dMVPwFQSwMECgAAAAAAYlmbTAAAAAAAAAAAAAAAAGkA
HABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRv
dy1vYmplY3QvZ2FyYmFnZS1jb2xsZWN0aW9uLWFuZC1icm93c2luZy1jb250ZXh0cy9VVAkAA7hn
41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAGJhm0xhN8F/6AAAADQJAACMABwAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0
L2dhcmJhZ2UtY29sbGVjdGlvbi1hbmQtYnJvd3NpbmctY29udGV4dHMvZGlzY2FyZF9pZnJhbWVf
aGlzdG9yeV8xLXN0ZGVyci50eHRVVAkAA8d141q4Z+NadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/
+xR5ABltpxsUEerRzTFYoS1UECnXmrFjt0vJZXW+vVMfQUQm9y2QQPgl/H/ZwJDMIU7SOE6jKUCD
3dpIjV7Ko3PIzzfT21nyAnc5M/F9CmqpyAmepEJZGGsVWeLGyO6rSMG4UVvzCv33FESnaAKrLbzT
Ed60ExACjwiyQ+h0vxfWPV7DYFF7PHfkvKFVxabOn+q2eiya9iFT67rMVA7oRsPkDuhEWxg1G91Z
nFxlP6KohGmPF86xRFF0GMgbwWJA1mLIXeI3/gHFZyxK7MWH+/8VRTBTMFNIRjDTb1B8AFBLAwQU
AAIACABiYZtMYTfBf+gAAAA0CQAAjAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC9nYXJiYWdlLWNvbGxlY3Rpb24tYW5kLWJy
b3dzaW5nLWNvbnRleHRzL2Rpc2NhcmRfaWZyYW1lX2hpc3RvcnlfMi1zdGRlcnIudHh0VVQJAAPI
deNauGfjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZbacbFBHq0c0xWKEtVBAp15qxY7dL
yWV1vr1TH0FEJvctkED4Jfx/2cCQzCFO0jhOoylAg93aSI1eyqNzyM8309tZ8gJ3OTPxfQpqqcgJ
nqRCWRhrFVnixsjuq0jBuFFb8wr99xREp2gCqy280xHetBMQAo8IskPodL8X1j1ew2BRezx35Lyh
VcWmzp/qtnosmvYhU+u6zFQO6EbD5A7oRFsYNRvdWZxcZT+iqIRpjxfOsURRdBjIG8FiQNZiyF3i
N/4BxWcsSuzFh/v/FUUwUzBTSEYw029QfABQSwMEFAACAAgAYmGbTNHJs7voAAAANAkAAIwAHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1v
YmplY3QvZ2FyYmFnZS1jb2xsZWN0aW9uLWFuZC1icm93c2luZy1jb250ZXh0cy9kaXNjYXJkX2lm
cmFtZV9oaXN0b3J5XzMtc3RkZXJyLnR4dFVUCQADyHXjWrhn41p1eAsAAQT1AQAABBQAAADtlOFK
w0AMx7/7FHkAGW2dGxQR6tHNMVihLVQQKdeasWO3S8lldb69Ux9BRCb3LZBA+CX8f9nAkMwhTtI4
TqMpQIPd2kiNXsqjc8jP05vbWfICdzkz8X0KaqnICZ6kQlkYaxVZ4sbI7qtIwbhRW/MK/fcURKdo
AqstvNMR3rQTEAKPCLJD6HS/F9Y9XsNgUXs8d+S8oVXFps6f6rZ6LJr2IVPrusxUDuhGw+QO6ERb
GDUb3VmcXGU/oqiEaY8XzrFEUXQYyBvBYkDWYshd4jf+AcVnLErsxYf7/xVFMFMwU0hGMNNvUHwA
UEsDBBQAAgAIAGJhm0zRybO76AAAADQJAACMABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L2dhcmJhZ2UtY29sbGVjdGlvbi1h
bmQtYnJvd3NpbmctY29udGV4dHMvZGlzY2FyZF9pZnJhbWVfaGlzdG9yeV80LXN0ZGVyci50eHRV
VAkAA8h141q4Z+NadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABltnRsUEerRzTFYoS1UECnX
mrFjt0vJZXW+vVMfQUQm9y2QQPgl/H/ZwJDMIU7SOE6jKUCD3dpIjV7Ko3PIz9Ob21nyAnc5M/F9
CmqpyAmepEJZGGsVWeLGyO6rSMG4UVvzCv33FESnaAKrLbzTEd60ExACjwiyQ+h0vxfWPV7DYFF7
PHfkvKFVxabOn+q2eiya9iFT67rMVA7oRsPkDuhEWxg1G91ZnFxlP6KohGmPF86xRFF0GMgbwWJA
1mLIXeI3/gHFZyxK7MWH+/8VRTBTMFNIRjDTb1B8AFBLAwQUAAIACABdYZtMpNqncwoBAACcGwAA
XwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2lu
ZG93LW9iamVjdC93aW5kb3ctb3Blbi1ub29wZW5lci1zdGRlcnIudHh0VVQJAAPCdeNasWfjWnV4
CwABBPUBAAAEFAAAAO3U70rDMBQF8O8+xX0AGd10/iki1FCnDCy0hQoiJa1XFpYlJbmr8+2d+gh+
0Mn5VkghnBPOLxsCzc5pOkunSTq/IGq4WxqpOUq5dY7D0+nJ/Ozyma7yEHy4TkktlHfCO6lYbo21
ylsfGiOrr4+UjBu1NS/Uf/9FyS6Z0P0rvfstvWknJJ4iM8mKqdP9WoLu+ZgGyzry/kT2N7SqeKjz
x7qt7oqmvcnUsi4zlRO70QTvNuxEWxp1MLqzPDnKfpSikuDXfOA5FizKbwYfjXAxcNBivDvE1/gH
KT5nUXIvEf3/VgrIBJmwDMgEmSATZIJM6B8yQSYsAzJBJsgEmSAT+odMkAnLgEx/tf8PUEsDBAoA
AAAAAHBZm0wAAAAAAAAAAAAAAAA2ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Jyb3dzZXJzL3dpbmRvd3MvVVQJAAPUZ+NavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQKAAAA
AABjWZtMAAAAAAAAAAAAAAAAUgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9icm93c2Vycy93aW5kb3dzL2F1eGlsaWFyeS1icm93c2luZy1jb250ZXh0cy9VVAkAA7pn41q+
d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAGRhm0x9mgnX+gAAAGgSAABqABwAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3dpbmRvd3MvYXV4aWxpYXJ5LWJy
b3dzaW5nLWNvbnRleHRzL29wZW5lci1jbG9zZWQtc3RkZXJyLnR4dFVUCQADzHXjWrpn41p1eAsA
AQT1AQAABBQAAADt1N1Kw0AQBeB7n2IeQErS+hukEJdYpWAgCUQQCZs40qXbnTCZxvr2Vn2EXpTK
3C3swnBmOV/aM0yvIZ4mcZxENwA1tksnFQ5SbENAfr2YXV7dvsFdxkw8T8AsDAXBnZQoD857Q564
drL6PSTgwmi9e4fu7xVEu2gCTx/wRVv4tEFACAZEkBVCa7u1sO3wHHqPdsD9jewnNCZ/rrKXqikf
87q5T82yKlKTAYbRMYUNBrEeRsvOth4nZ+lBKUphWuOJ51igGNr0NDjBvEe24iic4m/8gxQ/tSiw
k0H3f6wUKpPKpM1QmVQmlUllUpl0/yqTyqTNUJmOk+IbUEsDBBQAAgAIAGRhm0x9mgnX+gAAAGgS
AABsABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3dpbmRv
d3MvYXV4aWxpYXJ5LWJyb3dzaW5nLWNvbnRleHRzL29wZW5lci1tdWx0aXBsZS1zdGRlcnIudHh0
VVQJAAPMdeNaumfjWnV4CwABBPUBAAAEFAAAAO3U3UrDQBAF4HufYh5AStL6G6QQl1ilYCAJRBAJ
mzjSpdudMJnG+vZWfYRelMrcLezCcGY5X9ozTK8hniZxnEQ3ADW2SycVDlJsQ0B+vZhdXt2+wV3G
TDxPwCwMBcGdlCgPzntDnrh2svo9JODCaL17h+7vFUS7aAJPH/BFW/i0QUAIBkSQFUJru7Ww7fAc
eo92wP2N7Cc0Jn+uspeqKR/zurlPzbIqUpMBhtExhQ0GsR5Gy862Hidn6UEpSmFa44nnWKAY2vQ0
OMG8R7biKJzib/yDFD+1KLCTQfd/rBQqk8qkzVCZVCaVSWVSmXT/KpPKpM1QmY6T4htQSwMEFAAC
AAgAZGGbTBhbU0npAAAANAkAAGwAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvYnJvd3NlcnMvd2luZG93cy9hdXhpbGlhcnktYnJvd3NpbmctY29udGV4dHMvb3BlbmVyLW5v
b3BlbmVyLXN0ZGVyci50eHRVVAkAA8x141q6Z+NadXgLAAEE9QEAAAQUAAAA7ZRvS8NADIff+yny
AWS02/xXZNAddcrAQluoIFKuXcaO3S4ll9X57Z36EWTI5N4FEghPwu9Je4bxDcTjJI6T6BagxnZp
pEIvxd455Nfp5Or67g3uM2biWQJqocgJHqREeTDWKrLEtZHNd5GAcYO2ZgXdzxREh2gET2v4oD28
aycgBB4RZIPQ6m4rrDu8hN6i9njsyHFDo/LnKnupmvIxr5t5qpZVkaoM0A2Gye3QibYwaDa6tTi6
SH9FUQrTFs+cY4GiaNeTN4J5j6zFkDvHb/wDiq9YFNiJD/f/K4pgpmCmkIxgplNQfAJQSwMEFAAC
AAgAZGGbTBhbU0npAAAANAkAAG4AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvYnJvd3NlcnMvd2luZG93cy9hdXhpbGlhcnktYnJvd3NpbmctY29udGV4dHMvb3BlbmVyLW5v
cmVmZXJyZXItc3RkZXJyLnR4dFVUCQADzHXjWrpn41p1eAsAAQT1AQAABBQAAADtlG9Lw0AMh9/7
KfIBZLTb/Fdk0B11ysBCW6ggUq5dxo7dLiWX1fntnfoRZMjk3gUSCE/C70l7hvENxOMkjpPoFqDG
dmmkQi/F3jnk1+nk6vruDe4zZuJZAmqhyAkepER5MNYqssS1kc13kYBxg7ZmBd3PFESHaARPa/ig
PbxrJyAEHhFkg9DqbiusO7yE3qL2eOzIcUOj8ucqe6ma8jGvm3mqllWRqgzQDYbJ7dCJtjBoNrq1
OLpIf0VRCtMWz5xjgaJo15M3gnmPrMWQO8dv/AOKr1gU2IkP9/8rimCmYKaQjGCmU1B8AlBLAwQU
AAIACABlYZtMfZoJ1/oAAABoEgAAYwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9icm93c2Vycy93aW5kb3dzL2F1eGlsaWFyeS1icm93c2luZy1jb250ZXh0cy9vcGVuZXIt
c3RkZXJyLnR4dFVUCQADzXXjWrpn41p1eAsAAQT1AQAABBQAAADt1N1Kw0AQBeB7n2IeQErS+huk
EJdYpWAgCUQQCZs40qXbnTCZxvr2Vn2EXpTK3C3swnBmOV/aM0yvIZ4mcZxENwA1tksnFQ5SbENA
fr2YXV7dvsFdxkw8T8AsDAXBnZQoD857Q564drL6PSTgwmi9e4fu7xVEu2gCTx/wRVv4tEFACAZE
kBVCa7u1sO3wHHqPdsD9jewnNCZ/rrKXqikf87q5T82yKlKTAYbRMYUNBrEeRsvOth4nZ+lBKUph
WuOJ51igGNr0NDjBvEe24iic4m/8gxQ/tSiwk0H3f6wUKpPKpM1QmVQmlUllUpl0/yqTyqTNUJmO
k+IbUEsDBAoAAAAAAHNZm0wAAAAAAAAAAAAAAABNABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2Jyb3dzZXJzL3dpbmRvd3MvYnJvd3NpbmctY29udGV4dC1uYW1lcy9VVAkA
A9pn41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAGVhm0xTyFMg6QAAADQJAABbABwAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3dpbmRvd3MvYnJvd3Np
bmctY29udGV4dC1uYW1lcy8wMDEtc3RkZXJyLnR4dFVUCQADznXjWrtn41p1eAsAAQT1AQAABBQA
AADtlG9Lw0AMh9/vU+QDjNHOP2NFhO6ocwwstIUORMq1i+zY7VJyWZ3f3qkfQUQm9y6QQHgSfk/a
M0xnEE+TOE6iOUCN7dpIhV6Ko3PIz9dXN7fzF7jLmInvE1BLRU7wJCXKg7FWkSWujey+igSMG7Q1
W+i+pyA6RRNYvcI7HeFNOwEh8IggO4RWd3th3eEYeova47kj5w2Nyp+qbFM15WNeN4tUrasiVRmg
GwyTO6ATbWHQbHRrcTJKf0RRCtMeL5xjiaLo0JM3gnmPrMWQu8Rv/AOKz1gU2IkP9/8rimCmYKaQ
jGCm36D4AFBLAwQUAAIACABlYZtMSVXSVucAAAA0CQAAWwAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy93aW5kb3dzL2Jyb3dzaW5nLWNvbnRleHQtbmFtZXMv
MDAyLXN0ZGVyci50eHRVVAkAA85141q8Z+NadXgLAAEE9QEAAAQUAAAA7ZTtSsNQDIb/exW5ABnt
/MIiQj3UKQMLbaGCSElrZIednZScrM67d+oliMjk/AskEJ6E98lHgfkFpPMsTbM0AWipX1ptKGi1
9Z7k6fTk7PzyGa4KEZbrDMzCsFfaaU16a50z7Fhaq6uvIgPrJ3T2BYbvKUh2yQzuX+Gdt/CGXkEZ
AhHoiqDHYa2CAx3D6AgD7Tu639CZ8qEpHpuuvivb7iY3y6bKTQHkJyvsN+QVHUwoFntHs6P8RxS1
Cq/pwDkWpIY3IwerVI4kqJb9IX7jH1B8xqKiQUO8/19RRDNFM8VkRDP9BsUHUEsDBBQAAgAIAGVh
m0wYXFFQNgEAADg3AABvABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jy
b3dzZXJzL3dpbmRvd3MvYnJvd3NpbmctY29udGV4dC1uYW1lcy9icm93c2luZy1jb250ZXh0LV9i
bGFuay1zdGRlcnIudHh0VVQJAAPOdeNavGfjWnV4CwABBPUBAAAEFAAAAO3U70rDMBQF8O8+xX0A
Ge38h0WEGuqUgYW2UEGkpPXKwrKkJHd1vr1TH8EPMj3fCimEc8L55WOg+QWl8yxNszQharlfGmk4
SrV1jsPT6cnZ+eUzXRUh+HCdkVoo74R3UrPcGmuVtz60RlZfHxkZN2lrXmj4/ouSXTKj+1d691t6
005IPEVmkhVTr4e1BD3wMY2WdeT9iexv6FT50BSPTVfflW13k6tlU+WqIHaTCd5t2Im2NOlgdG95
dpT/KEUtwa/5wHMsWJTfjD4a4XLkoMV4d4iv8QdSfM6i4kEi+v+tFJAJMmEZkAkyQSbIBJnQP2SC
TFgGZIJMkAkyQSb0D5kgE5YBmSATZIJMkAn9QybIBJkgE2SCTJAJy4BMkAkyQSbIhP4hE2TCMiAT
ZIJMkAky/e/+PwBQSwMEFAACAAgAZWGbTElV0lbnAAAANAkAAHoAHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvd2luZG93cy9icm93c2luZy1jb250ZXh0LW5h
bWVzL2Jyb3dzaW5nLWNvbnRleHQtY2hvb3NlLXBhcmVudC0wMDItc3RkZXJyLnR4dFVUCQADznXj
Wrxn41p1eAsAAQT1AQAABBQAAADtlO1Kw1AMhv97FbkAGe38wiJCPdQpAwttoYJISWtkh52dlJys
zrt36iWIyOT8CyQQnoT3yUeB+QWk8yxNszQBaKlfWm0oaLX1nuTp9OTs/PIZrgoRlusMzMKwV9pp
TXprnTPsWFqrq68iA+sndPYFhu8pSHbJDO5f4Z238IZeQRkCEeiKoMdhrYIDHcPoCAPtO7rf0Jny
oSkem66+K9vuJjfLpspNAeQnK+w35BUdTCgWe0ezo/xHFLUKr+nAORakhjcjB6tUjiSolv0hfuMf
UHzGoqJBQ7z/X1FEM0UzxWREM/0GxQdQSwMEFAACAAgAZWGbTElV0lbnAAAANAkAAHoAHABpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvd2luZG93cy9icm93c2lu
Zy1jb250ZXh0LW5hbWVzL2Jyb3dzaW5nLWNvbnRleHQtY2hvb3NlLXBhcmVudC0wMDMtc3RkZXJy
LnR4dFVUCQADznXjWrxn41p1eAsAAQT1AQAABBQAAADtlO1Kw1AMhv97FbkAGe38wiJCPdQpAwtt
oYJISWtkh52dlJyszrt36iWIyOT8CyQQnoT3yUeB+QWk8yxNszQBaKlfWm0oaLX1nuTp9OTs/PIZ
rgoRlusMzMKwV9ppTXprnTPsWFqrq68iA+sndPYFhu8pSHbJDO5f4Z238IZeQRkCEeiKoMdhrYID
HcPoCAPtO7rf0JnyoSkem66+K9vuJjfLpspNAeQnK+w35BUdTCgWe0ezo/xHFLUKr+nAORakhjcj
B6tUjiSolv0hfuMfUHzGoqJBQ7z/X1FEM0UzxWREM/0GxQdQSwMEFAACAAgAc2GbTElV0lbnAAAA
NAkAAHYAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvd2lu
ZG93cy9icm93c2luZy1jb250ZXh0LW5hbWVzL2Jyb3dzaW5nLWNvbnRleHQtY2hvb3NlLXNlbGYt
Mi1zdGRlcnIudHh0VVQJAAPpdeNa12fjWnV4CwABBPUBAAAEFAAAAO2U7UrDUAyG/3sVuQAZ7fzC
IkI91CkDC22hgkhJa2SHnZ2UnKzOu3fqJYjI5PwLJBCehPfJR4H5BaTzLE2zNAFoqV9abShotfWe
5On05Oz88hmuChGW6wzMwrBX2mlNemudM+xYWqurryID6yd09gWG7ylIdskM7l/hnbfwhl5BGQIR
6Iqgx2GtggMdw+gIA+07ut/QmfKhKR6brr4r2+4mN8umyk0B5Ccr7DfkFR1MKBZ7R7Oj/EcUtQqv
6cA5FqSGNyMHq1SOJKiW/SF+4x9QfMaiokFDvP9fUUQzRTPFZEQz/QbFB1BLAwQUAAIACABzYZtM
rpwei+cAAAA0CQAAdQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93
c2Vycy93aW5kb3dzL2Jyb3dzaW5nLWNvbnRleHQtbmFtZXMvYnJvd3NpbmctY29udGV4dC1kZWZh
dWx0LW5hbWUtc3RkZXJyLnR4dFVUCQAD6nXjWthn41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7
FHkAGeumDosI9ahTBhbaQgWRcq2Rhd0uJZfV+fZOfQQRmdy3QALhl/D/ZYPAbAHJLE2SdL4AaLBb
kdYYtNx5j/J0Nj+/uHyGq1yE5ToFszTsFfdaod6Sc4YdS0O6/ipSID9aRy/Qf0/BdD+dwP0rvPMO
3qxXUIaACLpG6Gy/UbE9nsLg0AY8dPSwoTXFQ50/1m11VzTtTWZWdZmZHNCPJOy36NU6GK2Q7RxO
TrIfUVQqvMEj51iiGt4OHEixGFCsEvtj/MY/oPiMRYm9hnj/v6KIZopmismIZvoNig9QSwMEFAAC
AAgAc2GbTKvd9pg2AQAAODcAAGkAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvYnJvd3NlcnMvd2luZG93cy9icm93c2luZy1jb250ZXh0LW5hbWVzL2Nob29zZS1fYmxhbmst
MDAxLXN0ZGVyci50eHRVVAkAA+p141rYZ+NadXgLAAEE9QEAAAQUAAAA7dTvSsMwFAXw7z7FfQAZ
6+bfIkINdcrAQluoIFLSemVhWVKSuzrf3qmP4AeZnm+FFMI54fyyIdDsnJJZmiTp/IKo4W5ppOYo
5dY5Dk8n89Ozy2e6ykPw4ToltVDeCe+kYrk11ipvfWiMrL4+UjJu1Na8UP/9F0130wndv9K739Kb
dkLiKTKTrJg63a8l6J6PabCsI+9PZH9Dq4qHOn+s2+quaNqbTC3rMlM5sRtN8G7DTrSlUQejO8uT
o+xHKSoJfs0HnmPBovxm8NEIFwMHLca7Q3yNP5DicxYl9xLR/2+lgEyQCcuATJAJMkEmyIT+IRNk
wjIgE2SCTJAJMqF/yASZsAzIBJkgE2SCTOgfMkEmyASZIBNkgkxYBmSCTJAJMkEm9A+ZIBOWAZkg
E2SCTJDpf/f/AVBLAwQUAAIACABzYZtMxPSKsegAAAA0CQAAaQAcAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy93aW5kb3dzL2Jyb3dzaW5nLWNvbnRleHQtbmFt
ZXMvY2hvb3NlLV9ibGFuay0wMDItc3RkZXJyLnR4dFVUCQAD6nXjWthn41p1eAsAAQT1AQAABBQA
AADtlO1Kw1AMhv97FbkAGevmZxGhHuqUgYW2UEGknNbIws5OSk5W59079RJEZHL+BRIIT8L7ZIPA
7BySWZok6fwCoMFuSVpj0HLrPcrTyfz07PIZrnIRlusUzMKwV9xphXpLzhl2LA3p6qtIgfxoHb1A
/z0F0910Avev8M5beLNeQRkCIugKobP9WsX2eAyDQxtw39H9htYUD3X+WLfVXdG0N5lZ1mVmckA/
krDfoFfrYLRCtnM4Ocp+RFGp8BoPnGOBangzcCDFYkCxSuwP8Rv/gOIzFiX2GuL9/4oimimaKSYj
muk3KD4AUEsDBBQAAgAIAHNhm0zE9Iqx6AAAADQJAABpABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3dpbmRvd3MvYnJvd3NpbmctY29udGV4dC1uYW1lcy9j
aG9vc2UtX2JsYW5rLTAwMy1zdGRlcnIudHh0VVQJAAPqdeNa2GfjWnV4CwABBPUBAAAEFAAAAO2U
7UrDUAyG/3sVuQAZ6+ZnEaEe6pSBhbZQQaSc1sjCzk5KTlbn3Tv1EkRkcv4FEghPwvtkg8DsHJJZ
miTp/AKgwW5JWmPQcus9ytPJ/PTs8hmuchGW6xTMwrBX3GmFekvOGXYsDenqq0iB/GgdvUD/PQXT
3XQC96/wzlt4s15BGQIi6Aqhs/1axfZ4DINDG3Df0f2G1hQPdf5Yt9Vd0bQ3mVnWZWZyQD+SsN+g
V+tgtEK2czg5yn5EUanwGg+cY4FqeDNwIMViQLFK7A/xG/+A4jMWJfYa4v3/iiKaKZopJiOa6Tco
PgBQSwMEFAACAAgAc2GbTMT0irHoAAAANAkAAGoAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvYnJvd3NlcnMvd2luZG93cy9icm93c2luZy1jb250ZXh0LW5hbWVzL2Nob29z
ZS1fcGFyZW50LTAwMi1zdGRlcnIudHh0VVQJAAPqdeNa2GfjWnV4CwABBPUBAAAEFAAAAO2U7UrD
UAyG/3sVuQAZ6+ZnEaEe6pSBhbZQQaSc1sjCzk5KTlbn3Tv1EkRkcv4FEghPwvtkg8DsHJJZmiTp
/AKgwW5JWmPQcus9ytPJ/PTs8hmuchGW6xTMwrBX3GmFekvOGXYsDenqq0iB/GgdvUD/PQXT3XQC
96/wzlt4s15BGQIi6Aqhs/1axfZ4DINDG3Df0f2G1hQPdf5Yt9Vd0bQ3mVnWZWZyQD+SsN+gV+tg
tEK2czg5yn5EUanwGg+cY4FqeDNwIMViQLFK7A/xG/+A4jMWJfYa4v3/iiKaKZopJiOa6TcoPgBQ
SwMEFAACAAgAdGGbTI9nitjoAAAANAkAAGoAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvYnJvd3NlcnMvd2luZG93cy9icm93c2luZy1jb250ZXh0LW5hbWVzL2Nob29zZS1f
cGFyZW50LTAwMy1zdGRlcnIudHh0VVQJAAPrdeNa2GfjWnV4CwABBPUBAAAEFAAAAO2U7UrDUAyG
/3sVuQAZ6+YHKyLUQ50ysNAWKoiU0xpZ2NlJycnqvHunXoKITM6/QALhSXifbBCYXUIyS5MknS8A
GuxWpDUGLXfeozydzc8vFs9wlYuwXKdgloa94l4r1FtyzrBjaUjXX0UK5Efr6AX67ymY7qcTuH+F
d97Bm/UKyhAQQdcIne03KrbHUxgc2oCHjh42tKZ4qPPHuq3uiqa9ycyqLjOTA/qRhP0WvVoHoxWy
ncPJSfYjikqFN3jkHEtUw9uBAykWA4pVYn+M3/gHFJ+xKLHXEO//VxTRTNFMMRnRTL9B8QFQSwME
FAACAAgAdGGbTGyjyYToAAAANAkAAGcAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvYnJvd3NlcnMvd2luZG93cy9icm93c2luZy1jb250ZXh0LW5hbWVzL2Nob29zZS1fdG9w
LTAwMS1zdGRlcnIudHh0VVQJAAPsdeNa2mfjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv+8p8gBj
tHNTLCJ0R91kYKEtdCBSrl1kx26XksvqfHunPoKITO5bIIHwS/j/0p5hegPxNInjZBYB1NiujVTo
pTg6h/w8u5pf377AXcZMfJ+AWipygicpUR6MtYoscW1k91UkYNygrdlC9z0F0SmawOMrvNMR3rQT
EAKPCLJDaHW3F9YdjqG3qD2eO3Le0Kj8qco2VVOu8rpZpGpdFanKAN1gmNwBnWgLg2ajW4uTUfoj
ilKY9njhHEsURYeevBHMe2QthtwlfuMfUHzGosBOfLj/X1EEMwUzhWQEM/0GxQdQSwMEFAACAAgA
dGGbTGyjyYToAAAANAkAAGcAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
YnJvd3NlcnMvd2luZG93cy9icm93c2luZy1jb250ZXh0LW5hbWVzL2Nob29zZS1fdG9wLTAwMi1z
dGRlcnIudHh0VVQJAAPsdeNa2mfjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv+8p8gBjtHNTLCJ0
R91kYKEtdCBSrl1kx26XksvqfHunPoKITO5bIIHwS/j/0p5hegPxNInjZBYB1NiujVTopTg6h/w8
u5pf377AXcZMfJ+AWipygicpUR6MtYoscW1k91UkYNygrdlC9z0F0SmawOMrvNMR3rQTEAKPCLJD
aHW3F9YdjqG3qD2eO3Le0Kj8qco2VVOu8rpZpGpdFanKAN1gmNwBnWgLg2ajW4uTUfojilKY9njh
HEsURYeevBHMe2QthtwlfuMfUHzGosBOfLj/X1EEMwUzhWQEM/0GxQdQSwMEFAACAAgAdGGbTGyj
yYToAAAANAkAAGcAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3Nl
cnMvd2luZG93cy9icm93c2luZy1jb250ZXh0LW5hbWVzL2Nob29zZS1fdG9wLTAwMy1zdGRlcnIu
dHh0VVQJAAPsdeNa2mfjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv+8p8gBjtHNTLCJ0R91kYKEt
dCBSrl1kx26XksvqfHunPoKITO5bIIHwS/j/0p5hegPxNInjZBYB1NiujVTopTg6h/w8u5pf377A
XcZMfJ+AWipygicpUR6MtYoscW1k91UkYNygrdlC9z0F0SmawOMrvNMR3rQTEAKPCLJDaHW3F9Yd
jqG3qD2eO3Le0Kj8qco2VVOu8rpZpGpdFanKAN1gmNwBnWgLg2ajW4uTUfojilKY9njhHEsURYee
vBHMe2QthtwlfuMfUHzGosBOfLj/X1EEMwUzhWQEM/0GxQdQSwMEFAACAAgAdGGbTGyjyYToAAAA
NAkAAGoAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvd2lu
ZG93cy9icm93c2luZy1jb250ZXh0LW5hbWVzL2Nob29zZS1kZWZhdWx0LTAwMS1zdGRlcnIudHh0
VVQJAAPsdeNa2mfjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv+8p8gBjtHNTLCJ0R91kYKEtdCBS
rl1kx26XksvqfHunPoKITO5bIIHwS/j/0p5hegPxNInjZBYB1NiujVTopTg6h/w8u5pf377AXcZM
fJ+AWipygicpUR6MtYoscW1k91UkYNygrdlC9z0F0SmawOMrvNMR3rQTEAKPCLJDaHW3F9YdjqG3
qD2eO3Le0Kj8qco2VVOu8rpZpGpdFanKAN1gmNwBnWgLg2ajW4uTUfojilKY9njhHEsURYeevBHM
e2QthtwlfuMfUHzGosBOfLj/X1EEMwUzhWQEM/0GxQdQSwMEFAACAAgAY2GbTJpas9LoAAAANAkA
AFcAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvd2luZG93
cy9ub3JlZmVycmVyLW51bGwtb3BlbmVyLXN0ZGVyci50eHRVVAkAA8l141q5Z+NadXgLAAEE9QEA
AAQUAAAA7ZThSsNADMe/+xR5ABlt3SYUEbqjzjGw0BYqyCjXmrFjt0vJZXW+vVMfQUQm9y2QQPgl
/H/ZwJDcQpykcZxGM4AGu7WRGr2UR+eQX6Y3s3mygbucmfg+BbVU5ARPUqE8GGsVWeLGyO6rSMG4
UVvzCv33FESnaAKrLbzTEd60ExACjwiyQ+h0vxfWPV7DYFF7PHfkvKFVxVOdP9dt9Vg07SJT67rM
VA7oRsPkDuhEWxg1G91ZnFxlP6KohGmPF86xRFF0GMgbwWJA1mLIXeI3/gHFZyxK7MWH+/8VRTBT
MFNIRjDTb1B8AFBLAwQUAAIACABwYZtM9gsY7ucAAAA0CQAASwAcAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy93aW5kb3dzL25vcmVmZXJyZXItc3RkZXJyLnR4
dFVUCQAD5HXjWtRn41p1eAsAAQT1AQAABBQAAADtlO1Kw1AMhv97FbkAGWvnBxQR6qFOGVhoCxVE
ymmN7LCzpORkdd69Uy9BRCbnXyCB8CS8Tz4KpJeQpFmSZIsUoMV+5bTBoNWOCOXpbHF+kT7DVSHC
cp2BWRomxb3WqLfOe8OepXW6/ioycDRZ715g+J6C+X4+g/tXeOcdvFlSUIaACLpG6O2wUbEDnsLo
0QY8dPSwoTPlQ1M8Nl19V7bdTW5WTZWbApAmJ0xbJLUeJivO9h5nJ/mPKGoV3uCRcyxRDW9HDk6x
HFGsOqZj/MY/oPiMRYWDhnj/v6KIZopmismIZvoNig9QSwMEFAACAAgAcGGbTKiDjM/5AAAAaBIA
AFcAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvd2luZG93
cy9ub3JlZmVycmVyLXdpbmRvdy1uYW1lLXN0ZGVyci50eHRVVAkAA+R141rUZ+NadXgLAAEE9QEA
AAQUAAAA7dRRSsNAEAbgd08xB5CSxFYhiBCXWKVgIAlEEAmbdKRLtzthMo319lY9gg+lMm8LuzD8
s/xfNjAkNxAnaRyn0QKgwW7lpMZRyn0IyK/zq8V18ga3OTPxXQpmaSgIHqRCeXDeG/LEjZPNzyEF
Fybr3Rr631cQHaIZPL3DJ+3hwwYBIRgRQTYIne23wrbHSxg82hGPN3Kc0Jriuc5f6rZ6LJr2PjOr
usxMDhgmxxR2GMR6mCw723mcXWR/SlEJ0xbPPMcSxdBuoNEJFgOyFUfhHH/jH6T4rkWJvYy6/1Ol
UJlUJm2GyqQyqUwqk8qk+1eZVCZthsp0mhRfUEsDBAoAAAAAAGlZm0wAAAAAAAAAAAAAAAApABwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9VVAkAA8Vn41q+d+NadXgL
AAEE9QEAAAQUAAAAUEsDBAoAAAAAAG1cm0wAAAAAAAAAAAAAAABCABwAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9keW5hbWljLW1hcmt1cC1pbnNlcnRpb24vVVQJAANt
beNavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAABtXJtMAAAAAAAAAAAAAAAAWwAcAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vZHluYW1pYy1tYXJrdXAtaW5zZXJ0
aW9uL2Nsb3NpbmctdGhlLWlucHV0LXN0cmVhbS9VVAkAA21t41q+d+NadXgLAAEE9QEAAAQUAAAA
UEsDBBQAAgAIAG1cm0yCY7Ky+wAAAM4NAAB3ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2RvbS9keW5hbWljLW1hcmt1cC1pbnNlcnRpb24vY2xvc2luZy10aGUtaW5wdXQt
c3RyZWFtL2RvY3VtZW50LmNsb3NlLTAxLXN0ZGVyci50eHRVVAkAA21t41ptbeNadXgLAAEE9QEA
AAQUAAAA7ZThSsNADMe/+xR5ABnd5jEoItSjThlYaAsVRMq1RnbsdilpVufbO/URRLT1vgUSCL+E
/y/pGBYrmM/jpYoXFwAVNhsrJfaSH7xHflyqVaSe4DJlJr6KQa81ecGjFCg31jlNjriysv0sYrB+
MM4+Q/s1BdExmsHdC7zRAV6NFxCCHhFki9CYdidsWjyHzqHp8dSR04ZaZ/dl+lDWxW1W1deJ3pR5
olNAP1gmv0cvxsFg2JrG4ews+RZFIUw7HDnHGkXTvqPeCmYdshFLfozfmADFRyxybKUP9/8timCm
YKaQjGCmn6dQkzCTmoiZ1CTMpP5fMv6UmcZ6/3dQSwMECgAAAAAAaVmbTAAAAAAAAAAAAAAAAFsA
HABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2R5bmFtaWMtbWFya3Vw
LWluc2VydGlvbi9vcGVuaW5nLXRoZS1pbnB1dC1zdHJlYW0vVVQJAAPFZ+NavnfjWnV4CwABBPUB
AAAEFAAAAFBLAwQUAAIACABqYZtM5/wLI+gAAAA0CQAAdgAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9kb20vZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uL29wZW5pbmctdGhl
LWlucHV0LXN0cmVhbS9kb2N1bWVudC5vcGVuLTAyLXN0ZGVyci50eHRVVAkAA9h141rFZ+NadXgL
AAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABltnQzKEOrRzTFYoS1UECnXmrFjt0vJZXW+/aY+gohM
7lsggfBL+P+ygSGZQZykcZwmEUCD3dpIjV7Ko3PIL9O7+9n0FeY5M/FDCmqpyAmepEJZGGsVWeLG
yO6rSMG4UVvzBv33FESnaAKrLXzQEd61ExACjwiyQ+h0vxfWPd7CYFF7vHTksqFVxabOn+u2eiqa
9jFT67rMVA7oRsPkDuhEWxg1G91ZnNxkP6KohGmPV86xRFF0GMgbwWJA1mLIXeM3/gHFZyxK7MWH
+/8VRTBTMFNIRjDTb1CcAVBLAwQKAAAAAACBWZtMAAAAAAAAAAAAAAAALwAcAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvVVQJAAPxZ+NavnfjWnV4CwABBPUB
AAAEFAAAAFBLAwQKAAAAAACBWZtMAAAAAAAAAAAAAAAAQAAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9VVAkAA/Fn41q+d+Na
dXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAIJZm0wAAAAAAAAAAAAAAABTABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1p
ZnJhbWUtZWxlbWVudC9VVAkAA/Rn41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAIJhm0ze
slDq5wAAADQJAACDABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1pZnJhbWUtZWxlbWVudC9pZnJhbWVfc2FuZGJveF9h
bGxvd190b3BfbmF2aWdhdGlvbi0xLXN0ZGVyci50eHRVVAkAAwN241rxZ+NadXgLAAEE9QEAAAQU
AAAA7ZThSsNQDIX/+xR5ABl1mwyKCPVSpwwstIUKIiWtkV12d1Nyszrf3qqPICKTC/kRSCB8OZyT
DQLzFVzM06mSBUBD3cZqTUHLg/ckT8vF5Wr5DFe5CMt1CmZt2CsdtSK9tc4ZdiyN1e1Xk4L1Izr7
Av33FiTHZAb3r/DOB3hDr6AMgQh0S9Bhv1PBns5hcISBpolOF1pTPNT5Y91Wd0XT3mRmU5eZyYH8
aIX9nryigxHFYudodpb9iKJS4R2dOMea1PB+4GCVioEE1bI/RTX+AcWnLUrqNcT//xVFTKaYTNEZ
MZl+g+IDUEsDBBQAAgAIAIJhm0xuTCIu6AAAADQJAACDABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1pZnJhbWUtZWxl
bWVudC9pZnJhbWVfc2FuZGJveF9hbGxvd190b3BfbmF2aWdhdGlvbi0yLXN0ZGVyci50eHRVVAkA
AwR241ryZ+NadXgLAAEE9QEAAAQUAAAA7ZTxSsNADMb/9ynyADLqrAyKCPXoNhms0BYqyCjXGtmx
26Xksm6+vd18BBGZHOSPQALhl4/vS3uG6QzupslYUQxQY7syUqGX4uAc8lt8/zCLN/CYMRM/JaAW
ipzgSUqUubFWkSWujWwvTQLGDdqad+i+tyA6RRN4+YBPOsBROwEh8IggW4RWdzth3eEt9Ba1x3Ei
44VG5esqe62acpnXzXOqVlWRqgzQDYbJ7dGJtjBoNrq1OLlJf0RRCtMOr5xjgaJo35M3gnmPrMWQ
u0Y1/gHF2RYFduLD//+KIiRTSKbgjJBMv0HxBVBLAwQUAAIACACCYZtMbkwiLugAAAA0CQAAgwAc
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQt
Y29udGVudC90aGUtaWZyYW1lLWVsZW1lbnQvaWZyYW1lX3NhbmRib3hfYWxsb3dfdG9wX25hdmln
YXRpb24tMy1zdGRlcnIudHh0VVQJAAMEduNa8mfjWnV4CwABBPUBAAAEFAAAAO2U8UrDQAzG//cp
8gAy6qwMigj16DYZrNAWKsgo1xrZsdul5LJuvr3dfAQRmRzkj0AC4ZeP70t7hukM7qbJWFEMUGO7
MlKhl+LgHPJbfP8wizfwmDETPyWgFoqc4ElKlLmxVpElro1sL00Cxg3amnfovrcgOkUTePmATzrA
UTsBIfCIIFuEVnc7Yd3hLfQWtcdxIuOFRuXrKnutmnKZ181zqlZVkaoM0A2Gye3RibYwaDa6tTi5
SX9EUQrTDq+cY4GiaN+TN4J5j6zFkLtGNf4BxdkWBXbiw///iiIkU0im4IyQTL9B8QVQSwMEFAAC
AAgAgmGbTG5MIi7oAAAANAkAAH4AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWlmcmFtZS1lbGVtZW50L2lmcmFtZV9z
YW5kYm94X3BvcHVwc19lc2NhcGluZy0xLXN0ZGVyci50eHRVVAkAAwR241ryZ+NadXgLAAEE9QEA
AAQUAAAA7ZTxSsNADMb/9ynyADLqrAyKCPXoNhms0BYqyCjXGtmx26Xksm6+vd18BBGZHOSPQALh
l4/vS3uG6QzupslYUQxQY7syUqGX4uAc8lt8/zCLN/CYMRM/JaAWipzgSUqUubFWkSWujWwvTQLG
Ddqad+i+tyA6RRN4+YBPOsBROwEh8IggW4RWdzth3eEt9Ba1x3Ei44VG5esqe62acpnXzXOqVlWR
qgzQDYbJ7dGJtjBoNrq1OLlJf0RRCtMOr5xjgaJo35M3gnmPrMWQu0Y1/gHF2RYFduLD//+KIiRT
SKbgjJBMv0HxBVBLAwQUAAIACACDYZtMbkwiLugAAAA0CQAAfgAcAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtaWZyYW1l
LWVsZW1lbnQvaWZyYW1lX3NhbmRib3hfcG9wdXBzX2VzY2FwaW5nLTItc3RkZXJyLnR4dFVUCQAD
BXbjWvJn41p1eAsAAQT1AQAABBQAAADtlPFKw0AMxv/3KfIAMuqsDIoI9eg2GazQFirIKNca2bHb
peSybr693XwEEZkc5I9AAuGXj+9Le4bpDO6myVhRDFBjuzJSoZfi4BzyW3z/MIs38JgxEz8loBaK
nOBJSpS5sVaRJa6NbC9NAsYN2pp36L63IDpFE3j5gE86wFE7ASHwiCBbhFZ3O2Hd4S30FrXHcSLj
hUbl6yp7rZpymdfNc6pWVZGqDNANhsnt0Ym2MGg2urU4uUl/RFEK0w6vnGOBomjfkzeCeY+sxZC7
RjX+AcXZFgV24sP//4oiJFNIpuCMkEy/QfEFUEsDBBQAAgAIAINhm0wl3yJH5wAAADQJAAB+ABwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1j
b250ZW50L3RoZS1pZnJhbWUtZWxlbWVudC9pZnJhbWVfc2FuZGJveF9wb3B1cHNfZXNjYXBpbmct
My1zdGRlcnIudHh0VVQJAAMFduNa8mfjWnV4CwABBPUBAAAEFAAAAO2U4UrDUAyF//sUeQAZdW4M
igj1UqcMLLSFCiIlrZFddndTcrM6396qjyAikwv5EUggfDmckw0C8xVczNOpkiVAQ93Gak1By4P3
JE+Ly+Vq8QxXuQjLdQpmbdgrHbUivbXOGXYsjdXtV5OC9SM6+wL99xYkx2QG96/wzgd4Q6+gDIEI
dEvQYb9TwZ7OYXCEgaaJThdaUzzU+WPdVndF095kZlOXmcmB/GiF/Z68ooMRxWLnaHaW/YiiUuEd
nTjHmtTwfuBglYqBBNWyP0U1/gHFpy1K6jXE//8VRUymmEzRGTGZfoPiA1BLAwQUAAIACACDYZtM
Jd8iR+cAAAA0CQAAgQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtaWZyYW1lLWVsZW1lbnQvaWZyYW1lX3NhbmRib3hf
cG9wdXBzX25vbmVzY2FwaW5nLTEtc3RkZXJyLnR4dFVUCQADBXbjWvNn41p1eAsAAQT1AQAABBQA
AADtlOFKw1AMhf/7FHkAGXVuDIoI9VKnDCy0hQoiJa2RXXZ3U3KzOt/eqo8gIpML+RFIIHw5nJMN
AvMVXMzTqZIlQEPdxmpNQcuD9yRPi8vlavEMV7kIy3UKZm3YKx21Ir21zhl2LI3V7VeTgvUjOvsC
/fcWJMdkBvev8M4HeEOvoAyBCHRL0GG/U8GezmFwhIGmiU4XWlM81Plj3VZ3RdPeZGZTl5nJgfxo
hf2evKKDEcVi52h2lv2IolLhHZ04x5rU8H7gYJWKgQTVsj9FNf4BxactSuo1xP//FUVMpphM0Rkx
mX6D4gNQSwMEFAACAAgAg2GbTCXfIkfnAAAANAkAAIEAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWlmcmFtZS1lbGVt
ZW50L2lmcmFtZV9zYW5kYm94X3BvcHVwc19ub25lc2NhcGluZy0yLXN0ZGVyci50eHRVVAkAAwV2
41rzZ+NadXgLAAEE9QEAAAQUAAAA7ZThSsNQDIX/+xR5ABl1bgyKCPVSpwwstIUKIiWtkV12d1Ny
szrf3qqPICKTC/kRSCB8OZyTDQLzFVzM06mSJUBD3cZqTUHLg/ckT4vL5WrxDFe5CMt1CmZt2Csd
tSK9tc4ZdiyN1e1Xk4L1Izr7Av33FiTHZAb3r/DOB3hDr6AMgQh0S9Bhv1PBns5hcISBpolOF1pT
PNT5Y91Wd0XT3mRmU5eZyYH8aIX9nryigxHFYudodpb9iKJS4R2dOMea1PB+4GCVioEE1bI/RTX+
AcWnLUrqNcT//xVFTKaYTNEZMZl+g+IDUEsDBBQAAgAIAINhm0wl3yJH5wAAADQJAACBABwAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50L3RoZS1pZnJhbWUtZWxlbWVudC9pZnJhbWVfc2FuZGJveF9wb3B1cHNfbm9uZXNjYXBpbmct
My1zdGRlcnIudHh0VVQJAAMFduNa82fjWnV4CwABBPUBAAAEFAAAAO2U4UrDUAyF//sUeQAZdW4M
igj1UqcMLLSFCiIlrZFddndTcrM6396qjyAikwv5EUggfDmckw0C8xVczNOpkiVAQ93Gak1By4P3
JE+Ly+Vq8QxXuQjLdQpmbdgrHbUivbXOGXYsjdXtV5OC9SM6+wL99xYkx2QG96/wzgd4Q6+gDIEI
dEvQYb9TwZ7OYXCEgaaJThdaUzzU+WPdVndF095kZlOXmcmB/GiF/Z68ooMRxWLnaHaW/YiiUuEd
nTjHmtTwfuBglYqBBNWyP0U1/gHFpy1K6jXE//8VRUymmEzRGTGZfoPiA1BLAwQUAAIACACDYZtM
mm5230sBAADCAgAAfAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtaWZyYW1lLWVsZW1lbnQvc2FuZGJveC1hc2NpaS1j
YXNlLWluc2Vuc2l0aXZlLXN0ZGVyci50eHRVVAkAAwZ241r0Z+NadXgLAAEE9QEAAAQUAAAAnVK9
TsMwEN55ilOWTGlaxFCyQRWxAB3CXjnOtbHq2JHv0vaxeAMWeC9sJwghihBMtqzvu+/nvFo/Vuv7
Eh7Kqrq5KwvQyiAsFgWUzlkHx1ZphF44UmYH3CKkJExT21MKgtmpemAsIBVa22NGosPMutfnnTIp
KAJhQJmD0KqBiQZbLXazi9VZ3cvr/+m+vUineqY/at5qK/foYZENeEI5sLKBD2nL3Bd57iFCt5a4
WC7n87zlTueEnTCsJOXY1dg02GTSGkbDuXeaqa0LPaDGLjzR0PfW+XM0s4mWN6PmLMxLoUYpBsKY
s7FyCLyUIM4JkSaqt+ovYxtT4R+5e3SdIormCYxlIOSfal5cLX3R1VSOkBKJ4KCsFiH9Zy9iciAY
krN1JB5gu2lCWNTvjBnAk/c/wmqMpEj3et+SaiH3FPMmXz6Y8v8rmbb6DlBLAwQKAAAAAAB6WZtM
AAAAAAAAAAAAAAAAMAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJh
cHBhcGlzL1VUCQAD52fjWr5341p1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAelmbTAAAAAAAAAAA
AAAAADoAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9z
Y3JpcHRpbmcvVVQJAAPnZ+NavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAB6WZtMAAAAAAAA
AAAAAAAAQQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlz
L3NjcmlwdGluZy9ldmVudHMvVVQJAAPnZ+NavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAB7
YZtMiM7GeucAAAA0CQAAcgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93
ZWJhcHBhcGlzL3NjcmlwdGluZy9ldmVudHMvY29tcGlsZS1ldmVudC1oYW5kbGVyLXNldHRpbmdz
LW9iamVjdHMtc3RkZXJyLnR4dFVUCQAD+nXjWudn41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7
FHkAGevcVIoI9ahTBhbaQgWRcq2RHbslJZfV+fZOfQQRmdy3QALhl/D/ZYPA7AKSWZok6WIO0GC3
clpj0HJHhPI0P1tcnj/DVS7Ccp2CWRomxb1WqLfOe8OepXG6/ipScDRa716g/56C6X46gftXeOcd
vFlSUIaACLpG6Gy/UbE9nsLg0QY8dPSwoTXFQ50/1m11VzTtTWZWdZmZHJBGJ0xbJLUeRivOdh4n
J9mPKCoV3uCRcyxRDW8HDk6xGFCsOqZj/MY/oPiMRYm9hnj/v6KIZopmismIZvoNig9QSwMECgAA
AAAAgVmbTAAAAAAAAAAAAAAAADAAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
Y3VyZS1jb250ZXh0cy9VVAkAA/Fn41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAINhm0xo
f48xRAEAADg3AABXABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZWN1cmUtY29u
dGV4dHMvYmFzaWMtcG9wdXAtYW5kLWlmcmFtZS10ZXN0cy1zdGRlcnIudHh0VVQJAAMGduNa8Wfj
WnV4CwABBPUBAAAEFAAAAO3U4UrDMBQF4P8+xX0AGd10VYoINdQpAwttoYLISOuVhWVJSe/mfHun
PoKCrjvQH4EWwjnlfGkXaHJB40myf6IpUc3N3EjFvRQb5zg8nZ9NL8fPdJWF4MN1QmqmvBPeScly
a6xV3vpQG1l+HRIybquteaH2+yuKdtGI7l/p3W/oTTsh8dQzkyyZGt2uJOiWT6mzrHvev5H9DQuV
P1TZY7Uo7/J6cZOqeVWkKiN2WxO8W7MTbWmrg9GN5dFJ+qMUpQS/4gPPMWNRft353gjnHQctxrtD
/BsDSPE5i4Jb6dH/X6WATJAJy4BMkAkyQSbIhP4hE2TCMiATZIJMkAkyoX/IBJmwDMgEmSATZIJM
6B8yQSbIBJkgE2SCTFgGZIJMkAkyQabj6T8ehEzxQGSKByFTfHzL+FcyxZAJMkEmLAMy/VKKD1BL
AwQKAAAAAACCWZtMAAAAAAAAAAAAAAAAMAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL1VUCQAD9GfjWr5341p1eAsAAQT1AQAABBQAAABQSwMECgAAAAAA
glmbTAAAAAAAAAAAAAAAAD4AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL1VUCQAD9GfjWr5341p1eAsAAQT1AQAABBQAAABQSwME
CgAAAAAAg1mbTAAAAAAAAAAAAAAAAEUAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dpbmRvdy9VVAkAA/Vn41q+d+NadXgLAAEE
9QEAAAQUAAAAUEsDBBQAAgAIAIJZm0zHFvaz9AAAAIsCAABgABwAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93aW5kb3cvY2FjaGUt
a2V5cy5odHRwcy1hY3R1YWwudHh0VVQJAAP0Z+Na9GfjWnV4CwABBPUBAAAEFAAAAJ2RT0/DMAzF
7/0U1k7bZYIrt4o/AmmTplVwRV5rmog2Cbar0W+P0TY2AQHEMfHPz35+xaqsKrjE2tH8mUaZzqDG
rqMGYgAMQH3S0b6sDsUnFrZeHYQIPWrtfGiBgrInyZD360WmsqaXgUShuCnvFl8n0PaDQBFifbQX
dnJxioqLQ9fsdoHNeOiYA70mqtUcncNmUGijwtn3a/g2RKaKkE0iJvV2gynvJx/Myq6ckLEnJZYZ
/FftL1IypBRZZS+3JHWx+RV7QB5/SKGOQdGH98ieGNvecsvQYoGeUhOnmiYWA5iP3IxoZz6ayigj
3F6XV8foizdQSwMEFAACAAgAglmbTB6ou3QyAQAAEwMAAF4AHABpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dpbmRvdy9jYWNoZS1r
ZXlzLmh0dHBzLWRpZmYudHh0VVQJAAP0Z+Na9GfjWnV4CwABBPUBAAAEFAAAAM1STU/DMAy991f4
CCppQDsgcdr4khBDQqtgR+S2po2WNiV26PbvabdOcGAIceISK/Z7z89OlFKgn50NNbG+RkF9s0z1
krJ7I2O4DMYWekGWkElb3LggSohFeeJghbWpW+eFCt1Nct1RplqL8up8vYWxZvLvJifVOb8izzrH
vCLF4jyWpDvTFK4bkyvacFKJtKxo3VLeqyayliiO4//qE3MJaLcup1NQk5NziIdjOo3gcZamcDUw
koEBnZEKGgc1Sl6ZpgRqxBtiOAB9WswPlRb0FnrXEKnvm1D3CYlvZ3fzHyHI/fDy0t/Q8sVXKFcu
2GLnGLLNnpHA/n3gDLIgUDqB0wNeTdk4Tymh7zVcK8Y1cOTH1vud8K7coseapN//MfxZ7ldaHNrh
P/Co90BSuQKiD1BLAwQUAAIACACCWZtMFd6fbMEAAABEAgAAYgAcAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd2luZG93L2NhY2hl
LWtleXMuaHR0cHMtZXhwZWN0ZWQudHh0VVQJAAP0Z+Na9GfjWnV4CwABBPUBAAAEFAAAAJ2RwQrC
MAyG73uK4Gm7+A6iggcFceg91LgWXVuTDNnbW3GiCFXxmv/Ln+RPsZ7UNUzRWBofqZeyAoOnE+0h
eEAP1EbtUynpULyxcHFqwQdoUY11vgHyyo4kQ243y4yyoXNHorkJdPlCuMYHppqQjYUQ1aXlSx5a
HlvKXY7I2JISS/W32y9W0sUYWGWwW5HasP+K7ZD7D/GZ4BWdv2V9YGzaFHiGlvSJV2pkVeMIUCDd
kZsROn05KuOMsJhPZs+PFFdQSwMEFAACAAgAg1mbTB1mQB5LCAAA6xwAAGYAHABpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dpbmRv
dy9jYWNoZS1rZXlzLmh0dHBzLXByZXR0eS1kaWZmLmh0bWxVVAkAA/Vn41r1Z+NadXgLAAEE9QEA
AAQUAAAAvVlrc9s2Fv3uX8GxZ9e7HZOULMnRw9FO4se0s2knE7fbjx2QBEXEIMEFIEtKu/99L14U
SZGyMs1uOqlI4AI4995zH2BuM5nT5dlthlECPzmWyIszxAWWby/XMvWnlzAs5I7i5dmckuL5ypu/
EEEkTrzfzzz4I/FW+gmOGUeSsGLuFazACz0VMZ5g7kdMSpbPvWG59RJ4xsni7D9nZju7Scwo43Pv
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
Hz6Yt+MqKwnYBqrpbzCEqJjX5UXG1jQxAetFO7cs8PC2NPeUoepRvBWT3sAe/v/k3rdKdG9OMP6b
rwxGaEsYx0+gLNiOlfpfA/7Grd1dKhRmukTqfgmNvPj7N04z0xM0m35zzf7nas1OUGt2ulq2SxVW
tR+xzFjyp9Jo60d3KVDo9b9x/hdQSwMECgAAAAAApFmbTAAAAAAAAAAAAAAAAD8AHABpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9V
VAkAAzRo41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAIRhm0yB42uK6AAAADQJAABnABwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvYWJvdXQtYmxhbmstcmVwbGFjZW1lbnQuaHR0cHMtc3RkZXJyLnR4dFVUCQADCHbjWvRn
41p1eAsAAQT1AQAABBQAAADtlPFKw0AMxv/3KfIAMto5dBQR6lGnDFZoCxXGKNcusmO3S8lldb69
VR9BRDYO8kcggfDLx/elPcP0DuJpMlY0B6ixXRqp0EtxdA55Pbu5jeMN3GfMxA8JqIUiJ3iSEuXJ
WKvIEtdGdt9NAsYN2potdD9bEJ2iCby8wQcd4V07ASHwiCA7hFZ3e2Hd4TX0FrXHcSLjhUblqyp7
rZryOa+bx1QtqyJVGaAbDJM7oBNtYdBsdGtxcpX+iqIUpj2eOccCRdGhJ28E8x5ZiyF3jmpcAMWX
LQrsxIf//xdFSKaQTMEZIZn+guITUEsDBBQAAgAIAIhhm0wrVtw/zAEAAPcOAABrABwAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
ZmV0Y2gtY2FudmFzLXRhaW50aW5nLWNhY2hlLmh0dHBzLXN0ZGVyci50eHRVVAkAAw9241r+Z+Na
dXgLAAEE9QEAAAQUAAAA7ZRfa9tADMDf9ylEIXma47YJjAXK8ExaBmszGvYBlLNiH7mcsrtzS7/9
ZF+SLWk22LpuIw32gy2d/v10Uj6+mYw/juB6NJlkV6MhGG0JBqdD+GxxaggCQ0kB9AJLggIDwszx
AhTaO/QwJYW1l1MVrUVVKyYLAbUNVMD0AZRj7xN2utS2ddJ7le8GHkdtFcLSD9PUsEJTsQ/Dt4NB
H7QHywHQGL6PPjOlSJzmbINjk2SNJolO9njP0Tb2hrFY1bIOdHb+pncqz1kbKPXk7rSi5J7dnJzf
+U8dea6dRE5nFFSVYMxCxSx6y4d3n26uPlxLzK4uLTvqKlQCp6hblPE4rI6DaNTcH2H8HEbuqCAb
NBoPM4NlU39wNb2GaR32l/69yYrWSWNy8n/QyPIsNudif4efhOufTfB7KWIux58fXx2qbURtRejn
2pYwYyfpfuv/ukIdmquA26U4+lKTDy9hBB9Te+lL6clEDnAzNUgOcz3dkl+yFV8NnWi24gSRU9MP
XqIshF9pxTaaP9iKBRd0YVl0zndrZ2IzOv2sc34p7+YKiKSJLKKd2I8kItjEl+8fZNDpX25y+K0O
H0H/JdCHNkrPttWOo3QEvQX6K1BLAwQUAAIACACIYZtM3Hvkh8UBAAC1DgAAZQAcAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Zl
dGNoLWNhbnZhcy10YWludGluZy5odHRwcy1zdGRlcnIudHh0VVQJAAMQduNa/2fjWnV4CwABBPUB
AAAEFAAAAO2U30/bMBDH3/krTkjlaWmAVppWCaEsKggJ6ETFH3B1rolV19fZDoj/fnbcdFDKA9uq
oVIlD8nZ9+vz1V0+uh2ProdwMxyPs8vhAJTUBP3jAdxrnCgCx1CSAznHkqBAhzA1PAeB+gEtTEhg
bf2tilpT1ZhJg0OpHRUweQJh2NqEjSylboJ0D/L1xKN4Wjm3sIM0VSxQVWzd4Fu/3wNpQbMDVIof
Y8xMCPJBc9bOsEqycJLEIBui56iDv2Islr20iU5Ov3aP/XPSJEotmQcpKHlkMyNj1/5TQ5Zr4zOn
U3KiSjBWIWIV3cXT+Y/by6sbn/NIlpqNZ1Y3EONFWF4EUZGY2T2GtzDkhgrSTqKyMFVYhs6dqekL
TGq3uennLktOh8Hl8GNwyPIsynK2Wds/BPXf5vW7L3/mr28fXO2qFk7TC9qZ1CVM2fhCf2ve9iZd
kB9fNmHoZ03WfYaBe87rsy+fv2CxgxsowNi1NXRHdsHaxwpcotuSEERCQQleoB//94jwEso/FGHO
BZ1p9mfGHtVGRRk6vaxzeuHflfjeEjJ701ruVxZvWOX3329U0OldtDW8V9s94q0j3rXx2doO24/P
HvHBL1BLAwQUAAIACACIYZtMne3wGSgBAACLCwAAXgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNvcnMteGhyLmh0
dHBzLXN0ZGVyci50eHRVVAkAAxB241r/Z+NadXgLAAEE9QEAAAQUAAAA7ZTBSsNAEIbvPsXQgyeT
WC2IBZEQgh5aA+3F63YzTUKXnbgzsfTtTbpBpPSkglXDXnZ3mNl/vp/ZJHtaZrMU5ulyGT+kU1gg
12QZgdG9Yg6r3X5XaYQtuQ06qBioVi8NniWHyc/z2aNIvcA2ygJaWUsChlQOZXvP0ygaX92El+0a
T28nk+uorx342nxwjhwyNU4jR2sUXQZKt3sONFlxZMJ6B3mDIAQ+AH0AdIl6w+FvVDgY8MMKM1cV
lX1XY0grUxLLXk0HvxOsjKGtdyf2Dya+bhB3kcAXOYn+76vCksN/j0FKR9uBwkDh0yOROMzRSqUM
w9qooutcXIMXsGrkeNMfU3pOoy5ldBoc4iT2ttwd9/Z8+Ds8p0bKgcWXWfzBAepgfM8UvQFQSwME
FAACAAgAkWGbTPL76soJAQAAnBsAAGQAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1mcmFtZS1yZXNvdXJjZS5odHRw
cy1zdGRlcnIudHh0VVQJAAMiduNaEGjjWnV4CwABBPUBAAAEFAAAAO3U0UrDMBQG4Huf4jyAjLUO
hSJCDd0mAwttoYKMktYjC8uSkp7V+fZWfQQvdPJDLgIJhPOH/0v7QPENRXEyrXhBVHO7MVLxIMXR
OQ7Pi6vrKNrSbRaCD3cJqZXyTvgkJcvSWKu89aE2svvaJGTcqK15oe77Fs1P8xk9vNK7P9KbdkLi
aWAm2TG1uttL0B1fUm9ZDzydyPRCo/LHKnuqmnKd1819qjZVkaqM2I0meHdgJ9rSqIPRreXZRfqj
KUoJfs9nPseKRflD7wcjnPcctBjvzvE3/sEUn7UouJMB+f/WFJAJMqEZkAkyQSbIBJmQP2SCTGgG
ZIJMkAkyQSbkD5kgE5oBmf5q/h9QSwMEFAACAAgAk2GbTIG+n35fAQAAjBkAAGQAHABpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9m
ZXRjaC1yZXNwb25zZS10YWludC5odHRwcy1zdGRlcnIudHh0VVQJAAMmduNaFGjjWnV4CwABBPUB
AAAEFAAAAO2Y30vDMBDH3/0r7mV7ELpu61AsjFHqJoI6cX9BTU8bluVqkir7781+MGVjykCHlqN9
SL936d3n4K6h6fhuMr4Zwu1wMkmuhjEoqRG67RhG6EQByf01iExrcqAoy6FwrrRxGHa65622vzrx
Ra8XhRbNqxQYvJGZorFbz6FBS5URaMOnxVuDTPi1DQRpZ0i1yvmgdZJyJr+VyaAyqr+0NaKk0R35
W5HIVEHWeWXh46WtfHcUL2xy9us9WTeiUXNGOfZtNsOAjHyWuikM5qidzJTt00y6JqMx2l9B+6wz
IRN+RbjxqF8DMtoR0R7QlqQtwiIq5vA4h3V8WMUHaYHK7KXC3c3HPYVAXiE4gpUF1hYQBYqpZTRG
YzRG+3m0fzT8NXnV2Lp90xiLRwej8VQ8uM+SNBkvj8KN6PJ01XT1GiQMWCfA7/5hnHnn9APc73Cm
wj1VkVqoKkcuDBfm4MK8A1BLAwQUAAIACACUYZtMu0lrNvkAAABoEgAAcwAcAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2h0dHAt
dG8taHR0cHMtcmVkaXJlY3QtYW5kLXJlZ2lzdGVyLmh0dHBzLXN0ZGVyci50eHRVVAkAAyh241oW
aONadXgLAAEE9QEAAAQUAAAA7dThSsMwEAfw7z7FPYCMdg6FIkIN3SYDC22hgoyS1pOFZblyvdX5
9lZ9BD+MyUE+BBII/wv/X9ozzO8gnifTWkQANbYbJxUOUhxDQH5d3NzG8RbuM2bihwTMylAQPEmJ
snTeG/LEtZPdzyYBF0br3Rt0v7cgOkUzeHqHTzrChw0CQjAgguwQWtvthW2H19B7tANOJzK90Jj8
ucpeqqZc53XzmJpNVaQmAwyjYwoHDGI9jJadbT3OrtI/pSiFaY8XnmOFYujQ0+AE8x7ZiqNwib/x
D1J816LATgad/7lSqEwqkzZDZVKZVCaVSWXS+atMKpM2Q2U6T4ovUEsDBBQAAgAIAJZhm0yYBYRk
+QAAAGgSAABfABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGUtd2luZG93Lmh0dHBzLXN0ZGVyci50eHRVVAkAAyt2
41oaaONadXgLAAEE9QEAAAQUAAAA7dThSsMwEAfw7z7FPYCMdRsKRYQa6pSBhbZQQaSk9WRhWa5c
bnW+vVUfwQ9jcpAPgQTC/8L/lw0Mi2tIFum0VkuABruNkxqjlIcQkF9Wy6skeYWbnJn4NgWzNhQE
j1Kh3DvvDXnixsn2Z5OCC6P17g3631swP85n8PgOn3SADxsEhCAigmwROtvvhG2PlzB4tBGnE5le
aE3xVOfPdVs9FE17l5lNXWYmBwyjYwp7DGI9jJad7TzOLrI/paiEaYdnnmONYmg/UHSCxYBsxVE4
x9/4Bym+a1FiL1Hnf6oUKpPKpM1QmVQmlUllUpl0/iqTyqTNUJlOk+ILUEsDBBQAAgAIAJhhm0yf
6JBMQwEAAL8JAABmABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0ZXItY2xvc2VkLXdpbmRvdy5odHRwcy1zdGRlcnIu
dHh0VVQJAAMwduNaH2jjWnV4CwABBPUBAAAEFAAAAO2UYUvDMBCGv+9X3EcFGescKkWEWuqUTStt
pYLISLPTxaVJudy67d+bbT9BRCaFfAjkyHvPHe8bNQTDSwiGoT+jK4ASq4niAh1nK2OQ3kbnF0Hw
DtcJkaWbEOJxbA3jhnPkO6V1bLWlUvFifwlBmVZoNQd5qILBZtCHhw/Y2hWshWFgCw4ReIFQCblk
EhLPoNEoHPoX9gqzOH0qktdilt+n5ew2iidFFsUJoGkVWVOjYaGhFaREpbHfi35EkTPZJR45xxg5
tnVjnWJMGyTByppj3MY/oNjZIkPJrpv/X1F0ydQlU+eMLpl+g8KX5+k0gcckz6NxEoJWBiEIQngx
C2HmGufwTLZWXiHDLz/ufavFtsE9Vuh1qVUSS0tLpD7hp3KMdHIK9coxVAhS6N0va296EHBAJNQe
uvVdS1INw0s27X0DUEsDBBQAAgAIAJxhm0xc0hMppQAAAAcBAABrABwAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0
aW9uLXNlY3VyaXR5LWVycm9yLmh0dHBzLXN0ZGVyci50eHRVVAkAAzd241onaONadXgLAAEE9QEA
AAQUAAAAZY/NCsJADITvPkUuHu2C9mJBREr1ohbsEyy7wa5dNiXZWnx7W/8O9TaZfEwmeXmuymMB
p6Kqdocigwtax2iioyCgGSFQBO099Whn+ZTOdRj3nrSFOsZWMqU8Ge1rkpit03SlBPnuDC564gZZ
JrNiFOrYoAzqfTlpH9tvi818uZ8E/DmD8Qt56auTyHr84EMkNwHbIUQCbQZKwFCITB5MjaaRZPYE
UEsDBBQAAgAIAKRhm0wNKmIecAAAAHQAAABrABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd2Vic29ja2V0LWluLXNlcnZpY2Ut
d29ya2VyLmh0dHBzLXN0ZGVyci50eHRVVAkAA0N241o0aONadXgLAAEE9QEAAAQUAAAAMzIwtNA1
MNE1MlcwNLIyNLYyMNezMDNSSM7P1UssKMhJ1QtPTfLOLNHzSy0pzy/KzsxL13NJLUvNyS/ITc0r
iTYxARpgZWxoZGxkHqvg7AZVphAc7OORmJdSnJGYnaqQlpiZk5qioKFraWFgrskFAFBLAwQKAAAA
AACXWZtMAAAAAAAAAAAAAAAALwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
LWFuaW1hdGlvbnMvVVQJAAMeaONavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAACJWZtMAAAA
AAAAAAAAAAAAOgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlv
bnMvaW50ZXJmYWNlcy9VVAkAAwFo41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAIlZm0wA
AAAAAAAAAAAAAABEABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0
aW9ucy9pbnRlcmZhY2VzL0FuaW1hdGlvbi9VVAkAAwFo41q+d+NadXgLAAEE9QEAAAQUAAAAUEsD
BBQAAgAIAI1hm0x3aYRG8QAAAM4NAABUABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWItYW5pbWF0aW9ucy9pbnRlcmZhY2VzL0FuaW1hdGlvbi9yZWFkeS1zdGRlcnIudHh0VVQJ
AAMaduNaAWjjWnV4CwABBPUBAAAEFAAAAO2U0UrDQBBF3/2K+QApMS0tBBHSJa1SaCAJRJASNnGk
S7c7YXYa698b9RN8kNqFeRiYgeHe4Z60Z4gXcBcnY8VzgBrbjZEKvRQn55BfZtN5NN3BfcZM/JCA
WitygmcpUVbGWkWWuDay/24SMG7Q1rxC97MF0TmawNMbfNAJ3rUTEAKPCLJHaHV3ENYd3kJvUXsc
JzJeaFS+rbLnqikf87pZpmpTFanKAN1gmNwRnWgLg2ajW4uTm/RXKkphOuCF61ijKDr25I1g3iNr
MeQu8Rv/QMVXLArsxAf//0pFIFMgU0hGIFMgUyBTIFMg03X4/wlQSwMEFAACAAgAjmGbTHdphEbx
AAAAzg0AAFgAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25z
L2ludGVyZmFjZXMvQW5pbWF0aW9uL3N0YXJ0VGltZS1zdGRlcnIudHh0VVQJAAMbduNaAWjjWnV4
CwABBPUBAAAEFAAAAO2U0UrDQBBF3/2K+QApMS0tBBHSJa1SaCAJRJASNnGkS7c7YXYa698b9RN8
kNqFeRiYgeHe4Z60Z4gXcBcnY8VzgBrbjZEKvRQn55BfZtN5NN3BfcZM/JCAWitygmcpUVbGWkWW
uDay/24SMG7Q1rxC97MF0TmawNMbfNAJ3rUTEAKPCLJHaHV3ENYd3kJvUXscJzJeaFS+rbLnqikf
87pZpmpTFanKAN1gmNwRnWgLg2ajW4uTm/RXKkphOuCF61ijKDr25I1g3iNrMeQu8Rv/QMVXLArs
xAf//0pFIFMgU0hGIFMgUyBTIFMg03X4/wlQSwMECgAAAAAAl1mbTAAAAAAAAAAAAAAAADwAHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL3RpbWluZy1tb2Rl
bC9VVAkAAx5o41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAJdZm0wAAAAAAAAAAAAAAABH
ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy90aW1pbmct
bW9kZWwvYW5pbWF0aW9ucy9VVAkAAx5o41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAJth
m0wgnoBh/QAAAM4NAABmABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5p
bWF0aW9ucy90aW1pbmctbW9kZWwvYW5pbWF0aW9ucy9wbGF5aW5nLWFuLWFuaW1hdGlvbi1zdGRl
cnIudHh0VVQJAAM2duNaHmjjWnV4CwABBPUBAAAEFAAAAO2U0UrDQBBF3/2K+QAptU0tBBHiklYp
GEgCEYqETZzSpdudMJnG+vdG/QQRTVzYh4UdWM4d7okahtkSrmZhfxZzgAKrjZEcW0lPziFvg/ni
evkMNzEz8W0Iaq3ICZ4lQ1kZaxVZ4sLI/vMSgnGdtuYF6q8pmJ6nE3jYwRud4FU7ASFoEUH2CJWu
D8K6xktoLOoW+xfpfyhV8pjHT3mZ3SdFeRepTZ5GKgZ0nWFyR3SiLXSaja4sTi6ib1FkwnTAgXOs
URQdG2qNYNIgazHkhriNEVB81CLFWlqf/29ReDN5M/lmeDP9PEUwCjMFIzFTMAozBf+vGX/KTEPN
/x1QSwMEFAACAAgAnGGbTPaoykjwAAAAzg0AAG4AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYi1hbmltYXRpb25zL3RpbWluZy1tb2RlbC9hbmltYXRpb25zL3NldC10aGUtYW5p
bWF0aW9uLXN0YXJ0LXRpbWUtc3RkZXJyLnR4dFVUCQADN3bjWh5o41p1eAsAAQT1AQAABBQAAADt
lNFKw1AMhu99ijyAjDk3B0WEeqhTBhbaQoUh5bRGFnZ2UnKyOt/eqo/ghUwP5CKQQPj/8H9pLzBb
wsUsGWsxB6ixXZNWGLQ4eI+ymV8urpbPcJ2JsNwkYFaGveJRS9Q7cs6wY6lJt19NAuQH6+gFuu8t
mB6nE3h4hXc+wJv1CsoQEEG3CK3tdiq2w3PoHdqA40THC43JH6vsqWrK+7xublOzrorUZIB+IGG/
R6/WwWCFbOtwcpb+SEWpwjs8cR0rVMP7ngMp5j2KVWJ/it/4Ayo+Y1FgpyH6/1sqIpkimWIyIpki
mSKZIpkimf6H/x9QSwMECgAAAAAAi1mbTAAAAAAAAAAAAAAAACkAHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL1VUCQADBWjjWr5341p1eAsAAQT1AQAABBQAAABQSwME
CgAAAAAAi1mbTAAAAAAAAAAAAAAAADcAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvVVQJAAMFaONavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQK
AAAAAACLWZtMAAAAAAAAAAAAAAAAVwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtY2hhbm5lbG1lcmdlcm5vZGUtaW50ZXJmYWNlL1VU
CQADBWjjWr5341p1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAj2GbTLC6A3qjAAAA5wAAAH8AHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhl
LWNoYW5uZWxtZXJnZXJub2RlLWludGVyZmFjZS9hdWRpb2NoYW5uZWxtZXJnZXItZGlzY29ubmVj
dC1zdGRlcnIudHh0VVQJAAMdduNaBWjjWnV4CwABBPUBAAAEFAAAAG2OwQrCMBBE7/2KvdleehBF
yE1KEEGtNPUDYrvalbqRZCv696ZIwYNzHGZ4rygPptxp2Gtj1hutoCdGWM4V1O8Hau+dVzBwi5fY
t0AB2AlYBne+YSOQ4tP2gxXiK8wax4IvyYNYLxXGl499miXwk1w65FmWFH/Ji5WCE3eW2z7ijt7d
KSBUOMLIsYItRyC1RqxMenWHk070Ix716DuDMO7y5ANQSwMECgAAAAAAmVmbTAAAAAAAAAAAAAAA
AAoAHABpbnNwZWN0b3IvVVQJAAMhaONavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAACWWZtM
AAAAAAAAAAAAAAAAEgAcAGluc3BlY3Rvci9jb25zb2xlL1VUCQADHGjjWr5341p1eAsAAQT1AQAA
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
urO1E+3cwH5KZOkgBtET1jA+co7cVVoLqy0NFU8WmxiUmUutKihfqiB6jNbh5BaebAMP0jCwBYcI
PEEYy3LKJEtcg1qjdOhP2N8wEtl5kV4Vo/w4G44OE3FaDBKRApq5ImtmaFhqmEtScqxxfSn5louc
yU7xj/voIQs7q61TjFmNJFlZ8xd/4x+4aMdigCW7kP9vuQhkCmQKkxHIFMgUyBTIFMgU8g9kCmQK
kxHI9DsufHmenaXQT/M86aUxLB8X/bM+VkqmGtvyOK61fFoRaST2oqPOKix/WHTifZCR+h3xQnjh
65EuSM0lY3LZtY2pFrlk43vxxTe4coJVo/EI2+ZVUrb9XnXxkbEydyAmWE4X0pz97XCr5d0HXcrG
4eezaVU/Gc7XXoGm8u5fUinUDKmrCKtXfWqyJTr3dkTPUEsDBBQAAgAIAJhhm0x13Qt6DgEAAAIX
AAA0ABwAaW5zcGVjdG9yL2NvbnNvbGUveC1mcmFtZS1vcHRpb25zLW1lc3NhZ2Utc3RkZXJyLnR4
dFVUCQADL3bjWhxo41p1eAsAAQT1AQAABBQAAADt1OFKwzAQB/DvPsU9gIw6RwNFhBrqlIGFrlBB
RknrycKyXElvdb69VR9BRFcP8iGQQPhf+P/SLsBcwcU8GdciBqiwWVkusefi4D2Gp8VlHMUbuMpC
oHCdgF5q8oxHXiPfWuc0OQqV5e3nJgHrB+PsM7RftyA6RjO4f4E3OsCr8QxM0CMCbxEa0+44mBbP
oXNoehxPeHyh1vlDmT2W9four+qbVK/KItUZoB9sIL9Hz8bBYII1jcPZWfqtFGsOtMMTz7FE1rTv
qLeMeYfBsCV/ir8xgRQftSiw5V7m/1spRCaRSZohMv18CjUJmdREZFKTkEn9v2b8KZmUyCQyiUzS
DJFJZBKZRCaRabLzfwdQSwMECgAAAAAAllmbTAAAAAAAAAAAAAAAAA4AHABpbnNwZWN0b3IvY3Nz
L1VUCQADHGjjWr5341p1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAlmGbTGNvvw3nAAAANAkAADIA
HABpbnNwZWN0b3IvY3NzL2dldFN1cHBvcnRlZENTU1Byb3BlcnRpZXMtc3RkZXJyLnR4dFVUCQAD
K3bjWhlo41p1eAsAAQT1AQAABBQAAADtlOFKw1AMhf/7FHkAGXPrEIoI9VKnDCy0hQoiJa2RXXZ3
U3KzOt/eqo8gIpML+RFIIHw5nJMNAotLuFikUyVLgIa6jdWagpYH70mekuVqlTzDVS7Ccp2CWRv2
SketSG+tc4YdS2N1+9WkYP2Izr5A/70F8+N8Bvev8M4HeEOvoAyBCHRL0GG/U8GezmFwhIGmiU4X
WlM81Plj3VZ3RdPeZGZTl5nJgfxohf2evKKDEcVi52h2lv2IolLhHZ04x5rU8H7gYJWKgQTVsj9F
Nf4BxactSuo1xP//FUVMpphM0RkxmX6D4gNQSwMEFAACAAgAl2GbTEZUI5TwAAAAzg0AAC8AHABp
bnNwZWN0b3IvY3NzL3BzZXVkby1lbGVtZW50LW1hdGNoZXMtc3RkZXJyLnR4dFVUCQADLXbjWhto
41p1eAsAAQT1AQAABBQAAADtlNFKw1AMhu99ijyAjDk7hCJCPdQpAwttoYKMclojO+zspORkdb69
VR/BC5kGchFIIPx/+L9sYFhcwcUinSpJABrs1k5qjFIeQkB+Ti6Xy2QD1zkz8U0KZmUoCB6lQrlz
3hvyxI2T7VeTgguj9e4F+u8tmB/nM3h4hXc6wJsNAkIQEUG2CJ3td8K2x3MYPNqI00SmC60pHuv8
qW6r+6JpbzOzrsvM5IBhdExhj0Gsh9Gys53H2Vn2IxWVMO3wxHWsUAztB4pOsBiQrTgKp/iNP6Di
MxYl9hLV/99SoWRSMmkylExKJiWTkknJ9D/8/wBQSwMEFAACAAgAl2GbTIDedR7xAAAAzg0AACwA
HABpbnNwZWN0b3IvY3NzL3NoYWRvdy1zY29wZWQtc3R5bGUtc3RkZXJyLnR4dFVUCQADLnbjWhxo
41p1eAsAAQT1AQAABBQAAADtlNFKw0AQRd/9ivkAKbUmCEGEuKStFBpIAhGkhE0c6dLtTpidpvXv
Tesn+CDVhXkYmIHh3uGetGeYPcDdLBkrigFqbFdGKvRSHJxDfovu4zjawGPGTPyUgFoocoInKVHm
xlpFlrg2sr00CRg3aGveofvegulpOoGXD/ikAxy1ExACjwiyRWh1txPWHd5Cb1F7HCcyXmhUvq6y
16opl3ndPKdqVRWpygDdYJjcHp1oC4Nmo1uLk5v0RypKYdrhletYoCja9+SNYN4jazHkrvEbf0DF
ORYFduKD/7+lIpApkCkkI5ApkCmQKZApkOl/+P8FUEsDBAoAAAAAAJ1Zm0wAAAAAAAAAAAAAAAAT
ABwAaW5zcGVjdG9yL2RlYnVnZ2VyL1VUCQADKmjjWr5341p1eAsAAQT1AQAABBQAAABQSwMEFAAC
AAgAl2GbTPm3XvnoAAAANAkAAD8AHABpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstaW4tY29uc3Ry
dWN0b3ItYmVmb3JlLXN1cGVyLXN0ZGVyci50eHRVVAkAAy5241obaONadXgLAAEE9QEAAAQUAAAA
7ZThSsNQDIX/+xR5ABlzbopFhHqpUwYW2kIHIiWtkV12d1Nyszrf3qqPICKTC/kRSCB8OZyT9gKz
SzibJWPNFwA1tSurFQUt9t6TPM3PFxdXz3CdibDcJGCWhr3SQUvSO+ucYcdSW918NQlYP6CzL9B9
b8H0MJ3Awyu88x7e0CsoQyAC3RC02G1VsKNT6B1hoHGi44XG5I9Vtq6a8j6vm9vUrKoiNRmQH6yw
35FXdDCgWGwdTU7SH1GUKrylI+dYkhre9RysUt6ToFr2x6jGP6D4tEVBnYb4/7+iiMkUkyk6IybT
b1B8AFBLAwQUAAIACACYYZtMBfnLEegAAAA0CQAAOQAcAGluc3BlY3Rvci9kZWJ1Z2dlci9icmVh
a3BvaW50LWNvbmRpdGlvbi1kZXRhY2gtc3RkZXJyLnR4dFVUCQADMHbjWh1o41p1eAsAAQT1AQAA
BBQAAADtlO9Kw1AMxb/7FHkAGXPOf0WEeqlTBhbaQgWRclsju+wuKblZnW9v1UeQIZML+RBIIPxy
OCftBWYXcDJLxppfAtTYLp1WGLTYEqE8z0/Pzq9e4DoTYblJwCwMk+JOS9Q7571hz1I7XX03CTga
rHev0P1swXQ3ncDDG3zwFt4tKShDQARdIbS2W6vYDo+h92gDjhMdLzQmf6yyp6op7/O6uU3NsipS
kwHS4IRpg6TWw2DF2dbj5Cj9FUWpwms8cI4FquFNz8Ep5j2KVcd0iGr8A4ovWxTYaYj//yuKmEwx
maIzYjLtg+ITUEsDBBQAAgAIAJhhm0wF+csR6AAAADQJAABCABwAaW5zcGVjdG9yL2RlYnVnZ2Vy
L2JyZWFrcG9pbnQtY29uZGl0aW9uLXdpdGgtYmFkLXNjcmlwdC1zdGRlcnIudHh0VVQJAAMwduNa
HmjjWnV4CwABBPUBAAAEFAAAAO2U70rDUAzFv/sUeQAZc85/RYR6qVMGFtpCBZFyWyO77C4puVmd
b2/VR5Ahkwv5EEgg/HI4J+0FZhdwMkvGml8C1NgunVYYtNgSoTzPT8/Or17gOhNhuUnALAyT4k5L
1DvnvWHPUjtdfTcJOBqsd6/Q/WzBdDedwMMbfPAW3i0pKENABF0htLZbq9gOj6H3aAOOEx0vNCZ/
rLKnqinv87q5Tc2yKlKTAdLghGmDpNbDYMXZ1uPkKP0VRanCazxwjgWq4U3PwSnmPYpVx3SIavwD
ii9bFNhpiP//K4qYTDGZojNiMu2D4hNQSwMEFAACAAgAmGGbTAX5yxHoAAAANAkAAEEAHABpbnNw
ZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24td2l0aC1leGNlcHRpb24tc3RkZXJy
LnR4dFVUCQADMHbjWh5o41p1eAsAAQT1AQAABBQAAADtlO9Kw1AMxb/7FHkAGXPOf0WEeqlTBhba
QgWRclsju+wuKblZnW9v1UeQIZML+RBIIPxyOCftBWYXcDJLxppfAtTYLp1WGLTYEqE8z0/Pzq9e
4DoTYblJwCwMk+JOS9Q7571hz1I7XX03CTgarHev0P1swXQ3ncDDG3zwFt4tKShDQARdIbS2W6vY
Do+h92gDjhMdLzQmf6yyp6op7/O6uU3NsipSkwHS4IRpg6TWw2DF2dbj5Cj9FUWpwms8cI4FquFN
z8Ep5j2KVcd0iGr8A4ovWxTYaYj//yuKmEwxmaIzYjLtg+ITUEsDBBQAAgAIAJhhm0wF+csR6AAA
ADQJAAA8ABwAaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtZXZhbC13aXRoLWV4Y2VwdGlv
bi1zdGRlcnIudHh0VVQJAAMwduNaHmjjWnV4CwABBPUBAAAEFAAAAO2U70rDUAzFv/sUeQAZc85/
RYR6qVMGFtpCBZFyWyO77C4puVmdb2/VR5Ahkwv5EEgg/HI4J+0FZhdwMkvGml8C1NgunVYYtNgS
oTzPT8/Or17gOhNhuUnALAyT4k5L1DvnvWHPUjtdfTcJOBqsd6/Q/WzBdDedwMMbfPAW3i0pKENA
BF0htLZbq9gOj6H3aAOOEx0vNCZ/rLKnqinv87q5Tc2yKlKTAdLghGmDpNbDYMXZ1uPkKP0VRanC
azxwjgWq4U3PwSnmPYpVx3SIavwDii9bFNhpiP//K4qYTDGZojNiMu2D4hNQSwMEFAACAAgAmGGb
TAX5yxHoAAAANAkAAEUAHABpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNpZGUtY29u
ZGl0b25zLWFuZC1hY3Rpb25zLXN0ZGVyci50eHRVVAkAAzB241oeaONadXgLAAEE9QEAAAQUAAAA
7ZTvSsNQDMW/+xR5ABlzzn9FhHqpUwYW2kIFkXJbI7vsLim5WZ1vb9VHkCGTC/kQSCD8cjgn7QVm
F3AyS8aaXwLU2C6dVhi02BKhPM9Pz86vXuA6E2G5ScAsDJPiTkvUO+e9Yc9SO119Nwk4Gqx3r9D9
bMF0N53Awxt88BbeLSkoQ0AEXSG0tlur2A6PofdoA44THS80Jn+ssqeqKe/zurlNzbIqUpMB0uCE
aYOk1sNgxdnW4+Qo/RVFqcJrPHCOBarhTc/BKeY9ilXHdIhq/AOKL1sU2GmI//8riphMMZmiM2Iy
7YPiE1BLAwQUAAIACACZYZtMTmrLeOgAAAA0CQAAPwAcAGluc3BlY3Rvci9kZWJ1Z2dlci9icmVh
a3BvaW50LXN5bnRheC1lcnJvci10b3AtbGV2ZWwtc3RkZXJyLnR4dFVUCQADMXbjWh5o41p1eAsA
AQT1AQAABBQAAADtlOFKw1AMhf/7FHkAGXNOZUWEeqlTBhbaQgci5bZGdtldUnKzOt/eqo8gIpML
+RFIIHw5nJP2ArMrOJslY80XADW2K6cVBi32RChP8/OLy8UzXGciLDcJmKVhUjxoiXrnvDfsWWqn
m68mAUeD9e4Fuu8tmB6mE3h4hXfew5slBWUIiKAbhNZ2WxXb4Sn0Hm3AcaLjhcbkj1W2rpryPq+b
29SsqiI1GSANTph2SGo9DFacbT1OTtIfUZQqvMUj51iiGt71HJxi3qNYdUzHqMY/oPi0RYGdhvj/
v6KIyRSTKTojJtNvUHwAUEsDBBQAAgAIAJlhm0xOast46AAAADQJAAA2ABwAaW5zcGVjdG9yL2Rl
YnVnZ2VyL2NhbGwtZnJhbWUtZnVuY3Rpb24tbmFtZS1zdGRlcnIudHh0VVQJAAMxduNaH2jjWnV4
CwABBPUBAAAEFAAAAO2U4UrDUAyF//sUeQAZc05lRYR6qVMGFtpCByLltkZ22V1ScrM6396qjyAi
kwv5EUggfDmck/YCsys4myVjzRcANbYrpxUGLfZEKE/z84vLxTNcZyIsNwmYpWFSPGiJeue8N+xZ
aqebryYBR4P17gW67y2YHqYTeHiFd97DmyUFZQiIoBuE1nZbFdvhKfQebcBxouOFxuSPVbaumvI+
r5vb1KyqIjUZIA1OmHZIaj0MVpxtPU5O0h9RlCq8xSPnWKIa3vUcnGLeo1h1TMeoxj+g+LRFgZ2G
+P+/oojJFJMpOiMm029QfABQSwMEFAACAAgAmWGbTE5qy3joAAAANAkAADIAHABpbnNwZWN0b3Iv
ZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLWhvc3Qtc3RkZXJyLnR4dFVUCQADMXbjWh9o41p1eAsA
AQT1AQAABBQAAADtlOFKw1AMhf/7FHkAGXNOZUWEeqlTBhbaQgci5bZGdtldUnKzOt/eqo8gIpML
+RFIIHw5nJP2ArMrOJslY80XADW2K6cVBi32RChP8/OLy8UzXGciLDcJmKVhUjxoiXrnvDfsWWqn
m68mAUeD9e4Fuu8tmB6mE3h4hXfew5slBWUIiKAbhNZ2WxXb4Sn0Hm3AcaLjhcbkj1W2rpryPq+b
29SsqiI1GSANTph2SGo9DFacbT1OTtIfUZQqvMUj51iiGt71HJxi3qNYdUzHqMY/oPi0RYGdhvj/
v6KIyRSTKTojJtNvUHwAUEsDBBQAAgAIAJlhm0xOast46AAAADQJAAA3ABwAaW5zcGVjdG9yL2Rl
YnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ub25zdHJpY3Qtc3RkZXJyLnR4dFVUCQADMXbjWh9o41p1
eAsAAQT1AQAABBQAAADtlOFKw1AMhf/7FHkAGXNOZUWEeqlTBhbaQgci5bZGdtldUnKzOt/eqo8g
IpML+RFIIHw5nJP2ArMrOJslY80XADW2K6cVBi32RChP8/OLy8UzXGciLDcJmKVhUjxoiXrnvDfs
WWqnm68mAUeD9e4Fuu8tmB6mE3h4hXfew5slBWUIiKAbhNZ2WxXb4Sn0Hm3AcaLjhcbkj1W2rpry
Pq+b29SsqiI1GSANTph2SGo9DFacbT1OTtIfUZQqvMUj51iiGt71HJxi3qNYdUzHqMY/oPi0RYGd
hvj/v6KIyRSTKTojJtNvUHwAUEsDBBQAAgAIAJlhm0xOast46AAAADQJAAA0ABwAaW5zcGVjdG9y
L2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1zdHJpY3Qtc3RkZXJyLnR4dFVUCQADMnbjWiBo41p1
eAsAAQT1AQAABBQAAADtlOFKw1AMhf/7FHkAGXNOZUWEeqlTBhbaQgci5bZGdtldUnKzOt/eqo8g
IpML+RFIIHw5nJP2ArMrOJslY80XADW2K6cVBi32RChP8/OLy8UzXGciLDcJmKVhUjxoiXrnvDfs
WWqnm68mAUeD9e4Fuu8tmB6mE3h4hXfew5slBWUIiKAbhNZ2WxXb4Sn0Hm3AcaLjhcbkj1W2rpry
Pq+b29SsqiI1GSANTph2SGo9DFacbT1OTtIfUZQqvMUj51iiGt71HJxi3qNYdUzHqMY/oPi0RYGd
hvj/v6KIyRSTKTojJtNvUHwAUEsDBBQAAgAIAJphm0zC0Uvc5wAAADQJAAAwABwAaW5zcGVjdG9y
L2RlYnVnZ2VyL2RlYnVnZ2VyLXN0YXRlbWVudC1zdGRlcnIudHh0VVQJAAM0duNaImjjWnV4CwAB
BPUBAAAEFAAAAO2U4UrDUAyF//sUeQAZszrFIkK91CkDC22hgkhJa2SX3d2U3KzOt7fqI4jI5EJ+
BBIIXw7nZINAcgEnSTrVIgFoqFtZrSloufOe5OnsdHF++QxXuQjLdQpmadgr7bUivbXOGXYsjdX1
V5OC9SM6+wL99xbM9/MZ3L/CO+/gDb2CMgQi0DVBh/1GBXs6hsERBpomOl1oTfFQ5491W90VTXuT
mVVdZiYH8qMV9lvyig5GFIudo9lR9iOKSoU3dOAcS1LD24GDVSoGElTL/hDV+AcUn7YoqdcQ//9X
FDGZYjJFZ8Rk+g2KD1BLAwQUAAIACACaYZtMwtFL3OcAAAA0CQAAOAAcAGluc3BlY3Rvci9kZWJ1
Z2dlci9ldmFsdWF0ZU9uQ2FsbEZyYW1lLWVycm9ycy1zdGRlcnIudHh0VVQJAAM0duNaI2jjWnV4
CwABBPUBAAAEFAAAAO2U4UrDUAyF//sUeQAZszrFIkK91CkDC22hgkhJa2SX3d2U3KzOt7fqI4jI
5EJ+BBIIXw7nZINAcgEnSTrVIgFoqFtZrSloufOe5OnsdHF++QxXuQjLdQpmadgr7bUivbXOGXYs
jdX1V5OC9SM6+wL99xbM9/MZ3L/CO+/gDb2CMgQi0DVBh/1GBXs6hsERBpomOl1oTfFQ5491W90V
TXuTmVVdZiYH8qMV9lvyig5GFIudo9lR9iOKSoU3dOAcS1LD24GDVSoGElTL/hDV+AcUn7YoqdcQ
//9XFDGZYjJFZ8Rk+g2KD1BLAwQUAAIACACaYZtMwtFL3OcAAAA0CQAAOQAcAGluc3BlY3Rvci9k
ZWJ1Z2dlci9oaXQtYnJlYWtwb2ludC1mcm9tLWNvbnNvbGUtc3RkZXJyLnR4dFVUCQADNHbjWiNo
41p1eAsAAQT1AQAABBQAAADtlOFKw1AMhf/7FHkAGbM6xSJCvdQpAwttoYJISWtkl93dlNyszre3
6iOIyORCfgQSCF8O52SDQHIBJ0k61SIBaKhbWa0paLnznuTp7HRxfvkMV7kIy3UKZmnYK+21Ir21
zhl2LI3V9VeTgvUjOvsC/fcWzPfzGdy/wjvv4A29gjIEItA1QYf9RgV7OobBEQaaJjpdaE3xUOeP
dVvdFU17k5lVXWYmB/KjFfZb8ooORhSLnaPZUfYjikqFN3TgHEtSw9uBg1UqBhJUy/4Q1fgHFJ+2
KKnXEP//VxQxmWIyRWfEZPoNig9QSwMEFAACAAgAm2GbTIlCS7XoAAAANAkAAC0AHABpbnNwZWN0
b3IvZGVidWdnZXIvcGF1c2Utb24tYXNzZXJ0LXN0ZGVyci50eHRVVAkAAzV241okaONadXgLAAEE
9QEAAAQUAAAA7ZThSsNQDIX/+xR5ABlzc4pFhHqpUwYW2kIHIuW2RnbZXVJyszrf3qqPICKTC/kR
SCB8OZyT9gKzSzibJWMt5gA1tiunFQYt9kQoT+fzxcXVM1xnIiw3CZilYVI8aIl657w37Flqp5uv
JgFHg/XuBbrvLZgephN4eIV33sObJQVlCIigG4TWdlsV2+Ep9B5twHGi44XG5I9Vtq6a8j6vm9vU
rKoiNRkgDU6YdkhqPQxWnG09Tk7SH1GUKrzFI+dYohre9RycYt6jWHVMx6jGP6D4tEWBnYb4/7+i
iMkUkyk6IybTb1B8AFBLAwQUAAIACACbYZtMObw5cegAAAA0CQAALAAcAGluc3BlY3Rvci9kZWJ1
Z2dlci9yZWdyZXNzLTEzMzE4Mi1zdGRlcnIudHh0VVQJAAM2duNaJmjjWnV4CwABBPUBAAAEFAAA
AO2U4UrDUAyF//sUeQAZc26KRYR6qVMGFtpCByIlrZFddndTcrM6396qjyAikwv5EUggfDmck/YC
s0s4myVjLeYANbUrqxUFLfbekzzNzxcXV89wnYmw3CRgloa90kFL0jvrnGHHUlvdfDUJWD+gsy/Q
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
CACcYZtMci85GOcAAAA0CQAAMgAcAGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNv
bHVtbi1zdGRlcnIudHh0VVQJAAM3duNaJ2jjWnV4CwABBPUBAAAEFAAAAO2U4UrDUAyF//sUeQAZ
c1rFIkK91CkDC22hgki5rZGF3d2U3KzOt7fqI4jI5EJ+BBIIXw7nZIPA4gJOFulUSQLQYLcirTFo
ufMe5ensNDm/fIarXITlOgWzNOwV91qh3pJzhh1LQ7r+alIgP1pHL9B/b8F8P5/B/Su88w7erFdQ
hoAIukbobL9RsT0ew+DQBpwmOl1oTfFQ5491W90VTXuTmVVdZiYH9CMJ+y16tQ5GK2Q7h7Oj7EcU
lQpv8MA5lqiGtwMHUiwGFKvE/hDV+AcUn7YosdcQ//9XFDGZYjJFZ8Rk+g2KD1BLAwQUAAIACACc
YZtMr5o4o+gAAAA0CQAANQAcAGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbmRp
dGlvbi1zdGRlcnIudHh0VVQJAAM4duNaKGjjWnV4CwABBPUBAAAEFAAAAO2U4UrDUAyF//sUeQAZ
c7qJRYR6qVMGFtpCByLltkZ22V1ScrM6396qjyAikwv5EUggfDmck/YCs0s4myVjzRcANbYrpxUG
LfZEKE8X5/PF1TNcZyIsNwmYpWFSPGiJeue8N+xZaqebryYBR4P17gW67y2YHqYTeHiFd97DmyUF
ZQiIoBuE1nZbFdvhKfQebcBxouOFxuSPVbaumvI+r5vb1KyqIjUZIA1OmHZIaj0MVpxtPU5O0h9R
lCq8xSPnWKIa3vUcnGLeo1h1TMeoxj+g+LRFgZ2G+P+/oojJFJMpOiMm029QfABQSwMEFAACAAgA
nGGbTK+aOKPoAAAANAkAAD0AHABpbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1vcHRp
b25zLWV4Y2VwdGlvbi1zdGRlcnIudHh0VVQJAAM4duNaKGjjWnV4CwABBPUBAAAEFAAAAO2U4UrD
UAyF//sUeQAZc7qJRYR6qVMGFtpCByLltkZ22V1ScrM6396qjyAikwv5EUggfDmck/YCs0s4myVj
zRcANbYrpxUGLfZEKE8X5/PF1TNcZyIsNwmYpWFSPGiJeue8N+xZaqebryYBR4P17gW67y2YHqYT
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
ZbJ8hqtchOU6BbMyTIoHrVBvnfeGPUvjdPPVpOBotN69QP+9BckhmcH9K7zzHt4sKShDQATdIHS2
36rYHk9h8GgDThOdLrSmeKjzx7qt7oqmvcnMui4zkwPS6IRph6TWw2jF2c7j7CT7EUWlwls8co4V
quHdwMEpFgOKVcd0jGr8A4pPW5TYa4j//yuKmEwxmaIzYjL9BsUHUEsDBBQAAgAIAJhhm0yyv5u+
5wAAADQJAAAwABwAaW5zcGVjdG9yL2RvbS9kb20tc2VhcmNoLXdpdGgtY29udGV4dC1zdGRlcnIu
dHh0VVQJAAMwduNaHWjjWnV4CwABBPUBAAAEFAAAAO2U4UrDUAyF//sUeQAZdY4pRYR6qVMGFtpC
BZFyWyO77C4puVmdb2/VRxCRyYX8CCQQvhzOyQaB+QWczdOpFpcADXZrpzUGLfdEKE+L82WyfIar
XITlOgWzMkyKB61Qb533hj1L43Tz1aTgaLTevUD/vQXJIZnB/Su88x7eLCkoQ0AE3SB0tt+q2B5P
YfBoA04TnS60pnio88e6re6Kpr3JzLouM5MD0uiEaYek1sNoxdnO4+wk+xFFpcJbPHKOFarh3cDB
KRYDilXHdIxq/AOKT1uU2GuI//8riphMMZmiM2Iy/QbFB1BLAwQUAAIACACZYZtM+Syb1+cAAAA0
CQAAHgAcAGluc3BlY3Rvci9kb20vZm9jdXMtc3RkZXJyLnR4dFVUCQADMXbjWh5o41p1eAsAAQT1
AQAABBQAAADtlOFKw1AMhf/7FHkAGXWOiUWEeqlTBhbaQgWRclsju+wuKblZnW9v1UcQkcmF/Agk
EL4czskGgfkFnM3TqRaXAA12a6c1Bi33RChPi/NlsnyGq1yE5ToFszJMigetUG+d94Y9S+N089Wk
4Gi03r1A/70FySGZwf0rvPMe3iwpKENABN0gdLbfqtgeT2HwaANOE50utKZ4qPPHuq3uiqa9ycy6
LjOTA9LohGmHpNbDaMXZzuPsJPsRRaXCWzxyjhWq4d3AwSkWA4pVx3SMavwDik9blNhriP//K4qY
TDGZojNiMv0GxQdQSwMEFAACAAgAmWGbTPksm9fnAAAANAkAAEYAHABpbnNwZWN0b3IvZG9tL2dl
dEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzRm9yTm9kZV9hcmlhQ3VycmVudC1zdGRlcnIudHh0VVQJ
AAMxduNaHmjjWnV4CwABBPUBAAAEFAAAAO2U4UrDUAyF//sUeQAZdY6JRYR6qVMGFtpCBZFyWyO7
7C4puVmdb2/VRxCRyYX8CCQQvhzOyQaB+QWczdOpFpcADXZrpzUGLfdEKE+L82WyfIarXITlOgWz
MkyKB61Qb533hj1L43Tz1aTgaLTevUD/vQXJIZnB/Su88x7eLCkoQ0AE3SB0tt+q2B5PYfBoA04T
nS60pnio88e6re6Kpr3JzLouM5MD0uiEaYek1sNoxdnO4+wk+xFFpcJbPHKOFarh3cDBKRYDilXH
dIxq/AOKT1uU2GuI//8riphMMZmiM2Iy/QbFB1BLAwQUAAIACACZYZtM+Syb1+cAAAA0CQAARQAc
AGluc3BlY3Rvci9kb20vZ2V0QWNjZXNzaWJpbGl0eVByb3BlcnRpZXNGb3JOb2RlX2xpdmVSZWdp
b24tc3RkZXJyLnR4dFVUCQADMnbjWh9o41p1eAsAAQT1AQAABBQAAADtlOFKw1AMhf/7FHkAGXWO
iUWEeqlTBhbaQgWRclsju+wuKblZnW9v1UcQkcmF/AgkEL4czskGgfkFnM3TqRaXAA12a6c1Bi33
RChPi/NlsnyGq1yE5ToFszJMigetUG+d94Y9S+N089Wk4Gi03r1A/70FySGZwf0rvPMe3iwpKENA
BN0gdLbfqtgeT2HwaANOE50utKZ4qPPHuq3uiqa9ycy6LjOTA9LohGmHpNbDaMXZzuPsJPsRRaXC
WzxyjhWq4d3AwSkWA4pVx3SMavwDik9blNhriP//K4qYTDGZojNiMv0GxQdQSwMEFAACAAgAmWGb
TOOxGqHnAAAANAkAAEsAHABpbnNwZWN0b3IvZG9tL2dldEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVz
Rm9yTm9kZV9tb3VzZUV2ZW50Tm9kZUlkLXN0ZGVyci50eHRVVAkAAzJ241ofaONadXgLAAEE9QEA
AAQUAAAA7ZThSsNQDIX/+xR5ABl16oQiQr3UKQMLbaHCkJLWyC67uym5WZ1vb9VHEJHJhfwIJBC+
HM7JBoH5FZzN06kuE4CGupXVmoKWe+9J1hfni2TxDNe5CMtNCmZp2CsdtCK9s84ZdiyN1c1Xk4L1
Izr7Av33FiSHZAYPr/DOe3hDr6AMgQh0Q9Bhv1XBnk5hcISBpolOF1pTPNb5U91W90XT3mZmVZeZ
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
iqa9ycy6LjOTA/qRhP0OvVoHoxWyncPZSfYjikqFt3jkHCtUw7uBAykWA4pVYn+MavwDik9blNhr
iP//K4qYTDGZojNiMv0GxQdQSwMEFAACAAgAmWGbTJbgWw3yAAAANAkAADYAHABpbnNwZWN0b3Iv
bGF5ZXJzL2xheWVycy1jb21wb3NpdGluZy1yZWFzb25zLXN0ZGVyci50eHRVVAkAAzJ241oeaONa
dXgLAAEE9QEAAAQUAAAA7ZThSsNQDIX/+xR5ABl1tohFhHqpUwYW2kKFIeW2y9hldzclN6vz7a36
BCKiLYP8CCQQvnPISTqG+RVczOOhwmuACpulkRK95AfnkFfhZRSFL3CTMhPfxqAWipzgUQqUe2Ot
IktcGdl+NjEY12tr1tB+bUFwDGbwuIE3OsCrdgJC4BFBtgiNbnfCusVz6Cxqj8NEhgu1yp7K9Lms
i4esqu8StSzzRKWArjdMbo9OtIVes9GNxdlZ8iOKQph2OHKOBYqifUfeCGYdshZDboxuTIDi4y1y
bMWf9P8rilMy/SJHFEwhmb5HUUyC4j8l02j1fwdQSwMEFAACAAgAmWGbTDVC2VfoAAAANAkAACsA
HABpbnNwZWN0b3IvbGF5ZXJzL2xheWVycy1mb3Itbm9kZS1zdGRlcnIudHh0VVQJAAMyduNaHmjj
WnV4CwABBPUBAAAEFAAAAO2U8UrDQAzG//cp8gAy6lwRigj16DYZrNAWKsgo1xrZsdul5LJuvr3d
fAQRmRzkj0AC4ZeP70t7hukD3E2TseIIoMZ2ZaRCL8XBOeS32X0czzbwmDETPyWgFoqc4ElKlLmx
VpElro1sL00Cxg3amnfovrcgOkUTePmATzrAUTsBIfCIIFuEVnc7Yd3hLfQWtcdxIuOFRuXrKnut
mnKZ181zqlZVkaoM0A2Gye3RibYwaDa6tTi5SX9EUQrTDq+cY4GiaN+TN4J5j6zFkLtGNf4BxdkW
BXbiw///iiIkU0im4IyQTL9B8QVQSwMEFAACAAgAmWGbTDVC2VfoAAAANAkAADQAHABpbnNwZWN0
b3IvbGF5ZXJzL2xheWVycy1nZW5lcmF0ZWQtY29udGVudC1zdGRlcnIudHh0VVQJAAMyduNaHmjj
WnV4CwABBPUBAAAEFAAAAO2U8UrDQAzG//cp8gAy6lwRigj16DYZrNAWKsgo1xrZsdul5LJuvr3d
fAQRmRzkj0AC4ZeP70t7hukD3E2TseIIoMZ2ZaRCL8XBOeS32X0czzbwmDETPyWgFoqc4ElKlLmx
VpElro1sL00Cxg3amnfovrcgOkUTePmATzrAUTsBIfCIIFuEVnc7Yd3hLfQWtcdxIuOFRuXrKnut
mnKZ181zqlZVkaoM0A2Gye3RibYwaDa6tTi5SX9EUQrTDq+cY4GiaN+TN4J5j6zFkLtGNf4BxdkW
BXbiw///iiIkU0im4IyQTL9B8QVQSwMEFAACAAgAmWGbTDVC2VfoAAAANAkAADQAHABpbnNwZWN0
b3IvbGF5ZXJzL2xheWVycy1yZWZsZWN0ZWQtY29udGVudC1zdGRlcnIudHh0VVQJAAMyduNaHmjj
WnV4CwABBPUBAAAEFAAAAO2U8UrDQAzG//cp8gAy6lwRigj16DYZrNAWKsgo1xrZsdul5LJuvr3d
fAQRmRzkj0AC4ZeP70t7hukD3E2TseIIoMZ2ZaRCL8XBOeS32X0czzbwmDETPyWgFoqc4ElKlLmx
VpElro1sL00Cxg3amnfovrcgOkUTePmATzrAUTsBIfCIIFuEVnc7Yd3hLfQWtcdxIuOFRuXrKnut
mnKZ181zqlZVkaoM0A2Gye3RibYwaDa6tTi5SX9EUQrTDq+cY4GiaN+TN4J5j6zFkLtGNf4BxdkW
BXbiw///iiIkU0im4IyQTL9B8QVQSwMECgAAAAAAl1mbTAAAAAAAAAAAAAAAABEAHABpbnNwZWN0
b3IvbWVtb3J5L1VUCQADHmjjWr5341p1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAmWGbTDVC2Vfo
AAAANAkAACQAHABpbnNwZWN0b3IvbWVtb3J5L3RyYWNraW5nLXN0ZGVyci50eHRVVAkAAzJ241oe
aONadXgLAAEE9QEAAAQUAAAA7ZTxSsNADMb/9ynyADLqXBGKCPXoNhms0BYqyCjXGtmx26Xksm6+
vd18BBGZHOSPQALhl4/vS3uG6QPcTZOx4gigxnZlpEIvxcE55LfZfRzPNvCYMRM/JaAWipzgSUqU
ubFWkSWujWwvTQLGDdqad+i+tyA6RRN4+YBPOsBROwEh8IggW4RWdzth3eEt9Ba1x3Ei44VG5esq
e62acpnXzXOqVlWRqgzQDYbJ7dGJtjBoNrq1OLlJf0RRCtMOr5xjgaJo35M3gnmPrMWQu0Y1/gHF
2RYFduLD//+KIiRTSKbgjJBMv0HxBVBLAwQKAAAAAACYWZtMAAAAAAAAAAAAAAAADwAcAGluc3Bl
Y3Rvci9wYWdlL1VUCQADH2jjWr5341p1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAmmGbTNvCXUfo
AAAANAkAACEAHABpbnNwZWN0b3IvcGFnZS9hcmNoaXZlLXN0ZGVyci50eHRVVAkAAzN241oeaONa
dXgLAAEE9QEAAAQUAAAA7ZTxSsNADMb/9ynyADK2bmVQROiObspghbZQQUa51siO3S4ll9X59lZ9
BBGZHOSPQALhl4/vS3uGaAmzKBkrngHU2G6NVOilODuH/LyYx3G0h7uMmfg+AbVR5AQvUqKsjbWK
LHFt5PDVJGDcoK15ge57C6aX6QQeX+GdzvCmnYAQeESQA0Kru6Ow7vAWeova4ziR8UKj8l2VPVVN
+ZDXzSpV26pIVQboBsPkTuhEWxg0G91anNykP6IohemIV86xQVF06skbwbxH1mLIXaMa/4Di0xYF
duLD//+KIiRTSKbgjJBMv0HxAVBLAwQUAAIACACaYZtMBndc/OcAAAA0CQAAQgAcAGluc3BlY3Rv
ci9wYWdlL2ZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbi1hc3luYy1kZWxlZ2F0ZXMtc3RkZXJyLnR4
dFVUCQADNHbjWh9o41p1eAsAAQT1AQAABBQAAADtlGFKxEAMhf97ihxAlrVahCJCHeoqCxbaQgWR
ktbIDjs7KZlsXW9v1SOIyMpAfgQSCF8e7+WjQHIJZ0k2V5oAtNSvrTYUtNp7T/J0cZ6myTNcFSIs
1xmYlWGvdNCa9NY6Z9ixtFY3X00G1k/o7AsM31uwPCwXcP8K77yHN/QKyhCIQDcEPQ5bFRzoFEZH
GGie6HyhM+VDUzw2XX1Xtt1NbtZNlZsCyE9W2O/IKzqYUCz2jhYn+Y8oahXe0pFzrEgN70YOVqkc
SVAt+2NU4x9QfNqiokFD/P9fUcRkiskUnRGT6TcoPgBQSwMEFAACAAgAmmGbTAZ3XPznAAAANAkA
ADIAHABpbnNwZWN0b3IvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24tc3RkZXJyLnR4dFVU
CQADNHbjWh9o41p1eAsAAQT1AQAABBQAAADtlGFKxEAMhf97ihxAlrVahCJCHeoqCxbaQgWRktbI
Djs7KZlsXW9v1SOIyMpAfgQSCF8e7+WjQHIJZ0k2V5oAtNSvrTYUtNp7T/J0cZ6myTNcFSIs1xmY
lWGvdNCa9NY6Z9ixtFY3X00G1k/o7AsM31uwPCwXcP8K77yHN/QKyhCIQDcEPQ5bFRzoFEZHGGie
6HyhM+VDUzw2XX1Xtt1NbtZNlZsCyE9W2O/IKzqYUCz2jhYn+Y8oahXe0pFzrEgN70YOVqkcSVAt
+2NU4x9QfNqiokFD/P9fUcRkiskUnRGT6TcoPgBQSwMEFAACAAgAmmGbTAZ3XPznAAAANAkAAC0A
HABpbnNwZWN0b3IvcGFnZS9mcmFtZVN0YXJ0ZWRMb2FkaW5nLXN0ZGVyci50eHRVVAkAAzR241of
aONadXgLAAEE9QEAAAQUAAAA7ZRhSsRADIX/e4ocQJa1WoQiQh3qKgsW2kIFkZLWyA47OymZbF1v
b9UjiMjKQH4EEghfHu/lo0ByCWdJNleaALTUr602FLTae0/ydHGepskzXBUiLNcZmJVhr3TQmvTW
OmfYsbRWN19NBtZP6OwLDN9bsDwsF3D/Cu+8hzf0CsoQiEA3BD0OWxUc6BRGRxhonuh8oTPlQ1M8
Nl19V7bdTW7WTZWbAshPVtjvyCs6mFAs9o4WJ/mPKGoV3tKRc6xIDe9GDlapHElQLftjVOMfUHza
oqJBQ/z/X1HEZIrJFJ0Rk+k3KD4AUEsDBBQAAgAIAJphm0wGd1z85wAAADQJAAA9ABwAaW5zcGVj
dG9yL3BhZ2UvbWVkaWEtcXVlcnktbGlzdC1saXN0ZW5lci1leGNlcHRpb24tc3RkZXJyLnR4dFVU
CQADNHbjWh9o41p1eAsAAQT1AQAABBQAAADtlGFKxEAMhf97ihxAlrVahCJCHeoqCxbaQgWRktbI
Djs7KZlsXW9v1SOIyMpAfgQSCF8e7+WjQHIJZ0k2V5oAtNSvrTYUtNp7T/J0cZ6myTNcFSIs1xmY
lWGvdNCa9NY6Z9ixtFY3X00G1k/o7AsM31uwPCwXcP8K77yHN/QKyhCIQDcEPQ5bFRzoFEZHGGie
6HyhM+VDUzw2XX1Xtt1NbtZNlZsCyE9W2O/IKzqYUCz2jhYn+Y8oahXe0pFzrEgN70YOVqkcSVAt
+2NU4x9QfNqiokFD/P9fUcRkiskUnRGT6TcoPgBQSwMECgAAAAAAmFmbTAAAAAAAAAAAAAAAABMA
HABpbnNwZWN0b3IvcHJvdG9jb2wvVVQJAAMfaONavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIA
CACaYZtMBndc/OcAAAA0CQAAQAAcAGluc3BlY3Rvci9wcm90b2NvbC9iYWNrZW5kLWRpc3BhdGNo
ZXItYXJndW1lbnQtZXJyb3JzLXN0ZGVyci50eHRVVAkAAzR241ofaONadXgLAAEE9QEAAAQUAAAA
7ZRhSsRADIX/e4ocQJa1WoQiQh3qKgsW2kIFkZLWyA47OymZbF1vb9UjiMjKQH4EEghfHu/lo0By
CWdJNleaALTUr602FLTae0/ydHGepskzXBUiLNcZmJVhr3TQmvTWOmfYsbRWN19NBtZP6OwLDN9b
sDwsF3D/Cu+8hzf0CsoQiEA3BD0OWxUc6BRGRxhonuh8oTPlQ1M8Nl19V7bdTW7WTZWbAshPVtjv
yCs6mFAs9o4WJ/mPKGoV3tKRc6xIDe9GDlapHElQLftjVOMfUHzaoqJBQ/z/X1HEZIrJFJ0Rk+k3
KD4AUEsDBBQAAgAIAJthm0wGd1z85wAAADQJAABJABwAaW5zcGVjdG9yL3Byb3RvY29sL2JhY2tl
bmQtZGlzcGF0Y2hlci1tYWxmb3JtZWQtbWVzc2FnZS1lcnJvcnMtc3RkZXJyLnR4dFVUCQADNXbj
Wh9o41p1eAsAAQT1AQAABBQAAADtlGFKxEAMhf97ihxAlrVahCJCHeoqCxbaQgWRktbIDjs7KZls
XW9v1SOIyMpAfgQSCF8e7+WjQHIJZ0k2V5oAtNSvrTYUtNp7T/J0cZ6myTNcFSIs1xmYlWGvdNCa
9NY6Z9ixtFY3X00G1k/o7AsM31uwPCwXcP8K77yHN/QKyhCIQDcEPQ5bFRzoFEZHGGie6HyhM+VD
Uzw2XX1Xtt1NbtZNlZsCyE9W2O/IKzqYUCz2jhYn+Y8oahXe0pFzrEgN70YOVqkcSVAt+2NU4x9Q
fNqiokFD/P9fUcRkiskUnRGT6TcoPgBQSwMECgAAAAAAmFmbTAAAAAAAAAAAAAAAABIAHABpbnNw
ZWN0b3IvcnVudGltZS9VVAkAAx9o41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAJthm0xN
5FyV6AAAADQJAAAzABwAaW5zcGVjdG9yL3J1bnRpbWUvQ29tbWFuZExpbmVBUEktaW5zcGVjdC1z
dGRlcnIudHh0VVQJAAM1duNaH2jjWnV4CwABBPUBAAAEFAAAAO2U8UrDQAzG//cp8gAyZrcyKCJ0
RzdlsEJbqCCjXGtkx26XksvqfHurPoKIbBzkj0AC4ZeP70t7hmgBd1EyVjwDqLHdGKnQS3FyDvll
PovjaAf3GTPxQwJqrcgJnqVEWRlrFVni2sj+u0nAuEFb8wrdzxZMz9MJPL3BB53gXTsBIfCIIHuE
VncHYd3hLfQWtcdxIuOFRuXbKnuumvIxr5tlqjZVkaoM0A2GyR3RibYwaDa6tTi5SX9FUQrTAS+c
Y42i6NiTN4J5j6zFkLtENa6A4ssWBXbiw///iyIkU0im4IyQTH9B8QlQSwMEFAACAAgAm2GbTE3k
XJXoAAAANAkAACoAHABpbnNwZWN0b3IvcnVudGltZS9nZXRQcm9wZXJ0aWVzLXN0ZGVyci50eHRV
VAkAAzV241ofaONadXgLAAEE9QEAAAQUAAAA7ZTxSsNADMb/9ynyADJmtzIoInRHN2WwQluoIKNc
a2THbpeSy+p8e6s+gohsHOSPQALhl4/vS3uGaAF3UTJWPAOosd0YqdBLcXIO+WU+i+NoB/cZM/FD
AmqtyAmepURZGWsVWeLayP67ScC4QVvzCt3PFkzP0wk8vcEHneBdOwEh8Igge4RWdwdh3eEt9Ba1
x3Ei44VG5dsqe66a8jGvm2WqNlWRqgzQDYbJHdGJtjBoNrq1OLlJf0VRCtMBL5xjjaLo2JM3gnmP
rMWQu0Q1roDiyxYFduLD//+LIiRTSKbgjJBMf0HxCVBLAwQKAAAAAACaWZtMAAAAAAAAAAAAAAAA
HAAcAGluc3BlY3Rvci9zYW1wbGluZy1wcm9maWxlci9VVAkAAyNo41q+d+NadXgLAAEE9QEAAAQU
AAAAUEsDBBQAAgAIAJthm0zo99js5wAAADQJAAAsABwAaW5zcGVjdG9yL3NhbXBsaW5nLXByb2Zp
bGVyL2Jhc2ljLXN0ZGVyci50eHRVVAkAAzV241ogaONadXgLAAEE9QEAAAQUAAAA7ZThSsNQDIX/
+xR5ABlzWxGKCPVSpwwstIUKIiWtkV12d1Nyszrf3qqPICKTC/kRSCB8OZyTDQKLS7hYpFMlS4CG
uo3VmoKWB+9JnlbLJFk9w1UuwnKdglkb9kpHrUhvrXOGHUtjdfvVpGD9iM6+QP+9BfPjfAb3r/DO
B3hDr6AMgQh0S9Bhv1PBns5hcISBpolOF1pTPNT5Y91Wd0XT3mRmU5eZyYH8aIX9nryigxHFYudo
dpb9iKJS4R2dOMea1PB+4GCVioEE1bI/RTX+AcWnLUrqNcT//xVFTKaYTNEZMZl+g+IDUEsDBBQA
AgAIAJxhm0zo99js5wAAADQJAABEABwAaW5zcGVjdG9yL3NhbXBsaW5nLXByb2ZpbGVyL2NhbGwt
ZnJhbWUtd2l0aC1kb20tZnVuY3Rpb25zLXN0ZGVyci50eHRVVAkAAzd241ohaONadXgLAAEE9QEA
AAQUAAAA7ZThSsNQDIX/+xR5ABlzWxGKCPVSpwwstIUKIiWtkV12d1Nyszrf3qqPICKTC/kRSCB8
OZyTDQKLS7hYpFMlS4CGuo3VmoKWB+9JnlbLJFk9w1UuwnKdglkb9kpHrUhvrXOGHUtjdfvVpGD9
iM6+QP+9BfPjfAb3r/DOB3hDr6AMgQh0S9Bhv1PBns5hcISBpolOF1pTPNT5Y91Wd0XT3mRmU5eZ
yYH8aIX9nryigxHFYudodpb9iKJS4R2dOMea1PB+4GCVioEE1bI/RTX+AcWnLUrqNcT//xVFTKaY
TNEZMZl+g+IDUEsDBBQAAgAIAJxhm0wTmqpB5wAAADQJAAA2ABwAaW5zcGVjdG9yL3NhbXBsaW5n
LXByb2ZpbGVyL2V2YWwtc291cmNlLXVybC1zdGRlcnIudHh0VVQJAAM3duNaImjjWnV4CwABBPUB
AAAEFAAAAO2U4UrDUAyF//sUeQAZc64IRYR6qVMGFtpCBRklrZFddndTcrM6396qjyAikwv5EUgg
fDmckw0Ciyu4WKRTJQlAQ93aak1By4P3JM/LyyRZbuA6F2G5ScGsDHulo1akd9Y5w46lsbr9alKw
fkRnX6D/3oL5cT6Dh1d45wO8oVdQhkAEuiXosN+pYE/nMDjCQNNEpwutKR7r/Kluq/uiaW8zs67L
zORAfrTCfk9e0cGIYrFzNDvLfkRRqfCOTpxjRWp4P3CwSsVAgmrZn6Ia/4Di0xYl9Rri//+KIiZT
TKbojJhMv0HxAVBLAwQUAAIACACcYZtME5qqQecAAAA0CQAAPwAcAGluc3BlY3Rvci9zYW1wbGlu
Zy1wcm9maWxlci9leHByZXNzaW9uLWxvY2F0aW9uLWluZm8tc3RkZXJyLnR4dFVUCQADN3bjWiJo
41p1eAsAAQT1AQAABBQAAADtlOFKw1AMhf/7FHkAGXOuCEWEeqlTBhbaQgUZJa2RXXZ3U3KzOt/e
qo8gIpML+RFIIHw5nJMNAosruFikUyUJQEPd2mpNQcuD9yTPy8skWW7gOhdhuUnBrAx7paNWpHfW
OcOOpbG6/WpSsH5EZ1+g/96C+XE+g4dXeOcDvKFXUIZABLol6LDfqWBP5zA4wkDTRKcLrSke6/yp
bqv7omlvM7Ouy8zkQH60wn5PXtHBiGKxczQ7y35EUanwjk6cY0VqeD9wsErFQIJq2Z+iGv+A4tMW
JfUa4v//iiImU0ym6IyYTL9B8QFQSwMEFAACAAgAnGGbTBOaqkHnAAAANAkAADcAHABpbnNwZWN0
b3Ivc2FtcGxpbmctcHJvZmlsZXIvbWFueS1jYWxsLWZyYW1lcy1zdGRlcnIudHh0VVQJAAM4duNa
ImjjWnV4CwABBPUBAAAEFAAAAO2U4UrDUAyF//sUeQAZc64IRYR6qVMGFtpCBRklrZFddndTcrM6
396qjyAikwv5EUggfDmckw0Ciyu4WKRTJQlAQ93aak1By4P3JM/LyyRZbuA6F2G5ScGsDHulo1ak
d9Y5w46lsbr9alKwfkRnX6D/3oL5cT6Dh1d45wO8oVdQhkAEuiXosN+pYE/nMDjCQNNEpwutKR7r
/Kluq/uiaW8zs67LzORAfrTCfk9e0cGIYrFzNDvLfkRRqfCOTpxjRWp4P3CwSsVAgmrZn6Ia/4Di
0xYl9Rri//+KIiZTTKbojJhMv0HxAVBLAwQUAAIACACcYZtMzi+r+ucAAAA0CQAAQAAcAGluc3Bl
Y3Rvci9zYW1wbGluZy1wcm9maWxlci9uYW1lZC1mdW5jdGlvbi1leHByZXNzaW9uLXN0ZGVyci50
eHRVVAkAAzh241ojaONadXgLAAEE9QEAAAQUAAAA7ZThSsNQDIX/+xR5ABlzrgpFhHqpUwYW2kIF
kXJbI7vsLim5WZ1vb9VHEJHJhfwIJBC+HM7JBoHFJZwt0qmSC4AGu7XTGoOWeyKUp+V5kiyf4SoX
YblOwawMk+JBK9Rb571hz9I43Xw1KTgarXcv0H9vwfwwn8H9K7zzHt4sKShDQATdIHS236rYHk9h
8GgDThOdLrSmeKjzx7qt7oqmvcnMui4zkwPS6IRph6TWw2jF2c7j7CT7EUWlwls8co4VquHdwMEp
FgOKVcd0jGr8A4pPW5TYa4j//yuKmEwxmaIzYjL9BsUHUEsDBAoAAAAAAJhZm0wAAAAAAAAAAAAA
AAAaABwAaW5zcGVjdG9yL3NjcmlwdC1wcm9maWxlci9VVAkAAyBo41q+d+NadXgLAAEE9QEAAAQU
AAAAUEsDBBQAAgAIAJthm0w+BBsa5wAAADQJAAAzABwAaW5zcGVjdG9yL3NjcmlwdC1wcm9maWxl
ci9ldmVudC10eXBlLUFQSS1zdGRlcnIudHh0VVQJAAM2duNaIGjjWnV4CwABBPUBAAAEFAAAAO2U
4UrDUAyF//sUeQAZddMJRYR6qVMGFtpCBZFyWyMLu7spuVmdb2/VRxCRyYX8CCQQvhzOyQaB+SWc
zdOpLhYADXZr0hqDlnvvUZ7OF8tk+QxXuQjLdQpmZdgrHrRCvSXnDDuWhnTz1aRAfrSOXqD/3oLk
kMzg/hXeeQ9v1isoQ0AE3SB0tt+q2B5PYXBoA04TnS60pnio88e6re6Kpr3JzLouM5MD+pGE/Q69
WgejFbKdw9lJ9iOKSoW3eOQcK1TDu4EDKRYDilVif4xq/AOKT1uU2GuI//8riphMMZmiM2Iy/QbF
B1BLAwQUAAIACACbYZtMjvpp3ucAAAA0CQAAOQAcAGluc3BlY3Rvci9zY3JpcHQtcHJvZmlsZXIv
ZXZlbnQtdHlwZS1NaWNyb3Rhc2stc3RkZXJyLnR4dFVUCQADNnbjWiBo41p1eAsAAQT1AQAABBQA
AADtlOFKw1AMhf/7FHkAGXXOCUWEeqlTBhbaQgWRclsjC7u7KblZnW9v1UcQkcmF/AgkEL4czskG
gfklnM3TqS4WAA12a9Iag5Z771GeFufLZPkMV7kIy3UKZmXYKx60Qr0l5ww7loZ089WkQH60jl6g
/96C5JDM4P4V3nkPb9YrKENABN0gdLbfqtgeT2FwaANOE50utKZ4qPPHuq3uiqa9ycy6LjOTA/qR
hP0OvVoHoxWyncPZSfYjikqFt3jkHCtUw7uBAykWA4pVYn+MavwDik9blNhriP//K4qYTDGZojNi
Mv0GxQdQSwMEFAACAAgAm2GbTI76ad7nAAAANAkAADUAHABpbnNwZWN0b3Ivc2NyaXB0LXByb2Zp
bGVyL2V2ZW50LXR5cGUtT3RoZXItc3RkZXJyLnR4dFVUCQADNnbjWiBo41p1eAsAAQT1AQAABBQA
AADtlOFKw1AMhf/7FHkAGXXOCUWEeqlTBhbaQgWRclsjC7u7KblZnW9v1UcQkcmF/AgkEL4czskG
gfklnM3TqS4WAA12a9Iag5Z771GeFufLZPkMV7kIy3UKZmXYKx60Qr0l5ww7loZ089WkQH60jl6g
/96C5JDM4P4V3nkPb9YrKENABN0gdLbfqtgeT2FwaANOE50utKZ4qPPHuq3uiqa9ycy6LjOTA/qR
hP0OvVoHoxWyncPZSfYjikqFt3jkHCtUw7uBAykWA4pVYn+MavwDik9blNhriP//K4qYTDGZojNi
Mv0GxQdQSwMEFAACAAgAm2GbTI76ad7nAAAANAkAAC0AHABpbnNwZWN0b3Ivc2NyaXB0LXByb2Zp
bGVyL3RyYWNraW5nLXN0ZGVyci50eHRVVAkAAzZ241ogaONadXgLAAEE9QEAAAQUAAAA7ZThSsNQ
DIX/+xR5ABl1zglFhHqpUwYW2kIFkXJbIwu7uym5WZ1vb9VHEJHJhfwIJBC+HM7JBoH5JZzN06ku
FgANdmvSGoOWe+9Rnhbny2T5DFe5CMt1CmZl2CsetEK9JecMO5aGdPPVpEB+tI5eoP/eguSQzOD+
Fd55D2/WKyhDQATdIHS236rYHk9hcGgDThOdLrSmeKjzx7qt7oqmvcnMui4zkwP6kYT9Dr1aB6MV
sp3D2Un2I4pKhbd45BwrVMO7gQMpFgOKVWJ/jGr8A4pPW5TYa4j//yuKmEwxmaIzYjL9BsUHUEsD
BAoAAAAAAJpZm0wAAAAAAAAAAAAAAAAVABwAaW5zcGVjdG9yL3VuaXQtdGVzdHMvVVQJAAMkaONa
vnfjWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACbYZtM/RouUegAAAA0CQAAMAAcAGluc3BlY3Rv
ci91bml0LXRlc3RzL2FzeW5jLXRlc3Qtc3VpdGUtc3RkZXJyLnR4dFVUCQADNnbjWiFo41p1eAsA
AQT1AQAABBQAAADtlPFKw0AMxv/3KfIAMmZdEYoI9eg2GazQFirIKNca2bHbpeSybr693XwEEZkc
5I9AAuGXj+9Le4boAe6iZKx4BlBjuzJSoZfi4Bzy2+w+jqMNPGbMxE8JqIUiJ3iSEmVurFVkiWsj
20uTgHGDtuYduu8tmJ6mE3j5gE86wFE7ASHwiCBbhFZ3O2Hd4S30FrXHcSLjhUbl6yp7rZpymdfN
c6pWVZGqDNANhsnt0Ym2MGg2urU4uUl/RFEK0w6vnGOBomjfkzeCeY+sxZC7RjX+AcXZFgV24sP/
/4oiJFNIpuCMkEy/QfEFUEsDBBQAAgAIAJ1hm0wgry/q6AAAADQJAABIABwAaW5zcGVjdG9yL3Vu
aXQtdGVzdHMvcHJvdG9jb2wtdGVzdC1kaXNwYXRjaC1ldmVudC10by1mcm9udGVuZC1zdGRlcnIu
dHh0VVQJAAM5duNaI2jjWnV4CwABBPUBAAAEFAAAAO2U8UrDQAzG//cp8gAyZrcyKCJ0RzdlYKEt
VJBRrjWyY7dLyWV1vr3dfAQRmRzkj0AC4ZeP70t7hmgBd1EyVrwAqLHdGKnQS3F0Dvl1PovjaAv3
GTPxQwJqrcgJnqREWRlrFVni2sju0iRg3KCteYPuewump+kEnt7hk47woZ2AEHhEkB1Cq7u9sO7w
FnqL2uM4kfFCo/LnKnupmvIxr5tlqjZVkaoM0A2GyR3QibYwaDa6tTi5SX9EUQrTHq+cY42i6NCT
N4J5j6zFkLtGNf4BxdkWBXbiw///iiIkU0im4IyQTL9B8QVQSwMEFAACAAgAnWGbTCCvL+roAAAA
NAkAAC8AHABpbnNwZWN0b3IvdW5pdC10ZXN0cy9zeW5jLXRlc3Qtc3VpdGUtc3RkZXJyLnR4dFVU
CQADOnbjWiRo41p1eAsAAQT1AQAABBQAAADtlPFKw0AMxv/3KfIAMma3MigidEc3ZWChLVSQUa41
smO3S8lldb693XwEEZkc5I9AAuGXj+9Le4ZoAXdRMla8AKix3Rip0EtxdA75dT6L42gL9xkz8UMC
aq3ICZ6kRFkZaxVZ4trI7tIkYNygrXmD7nsLpqfpBJ7e4ZOO8KGdgBB4RJAdQqu7vbDu8BZ6i9rj
OJHxQqPy5yp7qZryMa+bZao2VZGqDNANhskd0Im2MGg2urU4uUl/RFEK0x6vnGONoujQkzeCeY+s
xZC7RjX+AcXZFgV24sP//4oiJFNIpuCMkEy/QfEFUEsDBAoAAAAAAJlZm0wAAAAAAAAAAAAAAAAR
ABwAaW5zcGVjdG9yL3dvcmtlci9VVAkAAyFo41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAI
AJthm0yO+mne5wAAADQJAAA3ABwAaW5zcGVjdG9yL3dvcmtlci93b3JrZXItY3JlYXRlLWFuZC10
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
mdy3QALhl/D/5aPA4hLmi2y+zJIUoKV+bbWhoNXee5Kni2WapM9wVYiwXGdgVoa90kFr0lvrnGHH
0lrdfBUZWD+hsy8wfE9BckhmcP8K77yHN/QKyhCIQDcEPQ5bFRzoHEZHGOjY0eOGzpQPTfHYdPVd
2XY3uVk3VW4KID9ZYb8jr+hgQrHYO5qd5T+iqFV4SyfOsSI1vBs5WKVyJEG17E/xG/+A4jMWFQ0a
4v3/iiKaKZopJiOa6TcoPgBQSwMEFAACAAgApWGbTJex16LIAAAATQEAACYAHABqcy9kb20vcmVm
bGVjdC1zZXQtb250by1kb20tc3RkZXJyLnR4dFVUCQADRnbjWjNo41p1eAsAAQT1AQAABBQAAACt
j8FqwzAQRO/5iv2BbC3ZqEYQCLZ7KpTSHnooJaztdSKqaI0sN78fO9Aees51Zpg3ozNVbrNiqx9B
aatyqzLUWQmdnJHG0TN+cPvsEr76+egCmgIb/mEv45lD+ixMmRubl9po8wUvnC4Sv9+TRDpyU9mD
jBya6o2pryUE7pKTMFkYyHnuIQmsAYiLvxB/A6veVLCHh5q6E2PfIsBTjBJ3qkCoaZ54NwdqPf9V
9JSopYlhWJo3+p6vbiPWCxb+QbvVuREncAE2V1BLAwQUAAIACACmYZtMflBJ5O8AAADODQAAIAAc
AGpzL2RvbS9yZWdyZXNzLTE1NzI0Ni1zdGRlcnIudHh0VVQJAANHduNaNWjjWnV4CwABBPUBAAAE
FAAAAO2U0UrDUAyG732KPICMdpMJRYR6qFMGFtpCBZGS1sgOOzspOVmdb+/UR/BCpucukED4Ev4v
HwXml5DOs3SRpSlAS/3aakNBq733JE8Xi2WyfIarQoTlOgOzMuyVDlqT3lrnDDuW1urmq8jA+gmd
fYHhewqSQzKD+1d45z28oVdQhkAEuiHocdiq4EDnMDrCQMeOHjd0pnxoisemq+/KtrvJzbqpclMA
+ckK+x15RQcTisXe0ews/xFFrcJbOnGOFanh3cjBKpUjCaplf4rf+AMUn7GoaNAQ7/9bFNFM0Uwx
GdFM0UzRTNFM0Uz/4/4fUEsDBBQAAgAIAKZhm0wL1zGy/AAAAM4NAAAoABwAanMvZG9tL3JlbW92
aW5nLUNmLWNoYXJhY3RlcnMtc3RkZXJyLnR4dFVUCQADSHbjWjZo41p1eAsAAQT1AQAABBQAAADt
lOFKw0AMx7/7FHkAGe1tTCgi1KObMrDQFirIKNca2bHbpaRZnW/v1EcQ0dZ+CyQQfgn/X9wyqCsI
VRTOozAEKLHeWCmwk+zoPfLTYr4Mllu4TpiJbyLQa01e8CQ5yso6p8kRl1Z2n0UE1vfG2WdovqYg
OAUzuH+BNzrCq/ECQtAhguwQatPshU2Dl9A6NB2eO3LeUOn0oUgeiyq/S8vqNtabIot1Auh7y+QP
6MU46A1bUzucXcTfosiFaY8D51ijaDq01FnBtEU2YskP8RsjoPiIRYaNdNP9f4tiMtNkpikZk5l+
nkKNwkxqJGZSozCT+n/J+FNmGur93wFQSwMEFAACAAgAumGbTKcJYprnAAAANAkAADUAHABqcy9p
bnN0YW5jZS1wcm9wZXJ0eS1nZXR0ZXItb3RoZXItaW5zdGFuY2Utc3RkZXJyLnR4dFVUCQADb3bj
WmNo41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGevmHBQR6lGnDCy0hQoiJa2RHbtdSi6r
8+2d+ggiMrlvgQTCL+H/ywaB2RKSWZrM00UC0FC3tlpT0HLvPcnTxXxxuXyGq1yE5ToFszLslQ5a
kd5a5ww7lsbq5qtIwfoRnX2B/nsKpofpBO5f4Z338IZeQRkCEeiGoMN+q4I9ncPgCAMdO3rc0Jri
oc4f67a6K5r2JjPrusxMDuRHK+x35BUdjCgWO0eTs+xHFJUKb+nEOVakhncDB6tUDCSolv0pfuMf
UHzGoqReQ7z/X1FEM0UzxWREM/0GxQdQSwMECgAAAAAAplmbTAAAAAAAAAAAAAAAABgAHABsZWdh
Y3ktYW5pbWF0aW9uLWVuZ2luZS9VVAkAAzdo41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAA
AKZZm0wAAAAAAAAAAAAAAAAjABwAbGVnYWN5LWFuaW1hdGlvbi1lbmdpbmUvYW5pbWF0aW9ucy9V
VAkAAzdo41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAKlhm0wZhz4C8AAAAM4NAABJABwA
bGVnYWN5LWFuaW1hdGlvbi1lbmdpbmUvYW5pbWF0aW9ucy9jcmFzaC1vbi1yZW1vdmluZy1hbmlt
YXRpb24tc3RkZXJyLnR4dFVUCQADTXbjWjdo41p1eAsAAQT1AQAABBQAAADtlNFKw1AMhu99ijyA
jHVTh0WEeqhTBhbaQgWRclojO+wsKTlZnW/v1EfwQqbnLpBA+BL+LxsEZgtIZmkyT5MFQIPdymmN
QcsdEcrT2fz84vIZrnIRlusUzNIwKe61Qr113hv2LI3T9VeRgqPRevcC/fcUTPfTCdy/wjvv4M2S
gjIERNA1Qmf7jYrt8RQGjzbgoaOHDa0pHur8sW6ru6JpbzKzqsvM5IA0OmHaIqn1MFpxtvM4Ocl+
RFGp8AaPnGOJang7cHCKxYBi1TEd4zf+AMVnLErsNcT7/xZFNFM0U0xGNFM0UzRTNFM00/+4/wdQ
SwMECgAAAAAAo1mbTAAAAAAAAAAAAAAAAAcAHABsb2FkZXIvVVQJAAMyaONavnfjWnV4CwABBPUB
AAAEFAAAAFBLAwQUAAIACACkYZtMkTL18ugAAAA0CQAALgAcAGxvYWRlci9nby1iYWNrLWNhY2hl
ZC1tYWluLXJlc291cmNlLXN0ZGVyci50eHRVVAkAA0R241ovaONadXgLAAEE9QEAAAQUAAAA7ZTt
SsNQDIb/exW5ABndhx8UEeqhThlYaAsVREpaIzvs7KTkZHXevVMvQUQm518ggfAkvE82CMwuYDpL
p/M0uQRoqFtZrSloufOe5GkxP1ucP8NVLsJynYJZGvZKe61Ib61zhh1LY3X9VaRg/YjOvkD/PQXJ
PpnA/Su88w7e0CsoQyACXRN02G9UsKdTGBxhoENHDxtaUzzU+WPdVndF095kZlWXmcmB/GiF/Za8
ooMRxWLnaHKS/YiiUuENHTnHktTwduBglYqBBNWyP8Zv/AOKz1iU1GuI9/8rimimaKaYjGim36D4
AFBLAwQKAAAAAACjWZtMAAAAAAAAAAAAAAAAGQAcAGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9V
VAkAAzJo41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAKRZm0wAAAAAAAAAAAAAAAAzABwA
bG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvVVQJAAM0
aONavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACkYZtMEFjIrOcAAAA0CQAAbwAcAGxvYWRl
ci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVy
ZS10YXJnZXQtYmxhbmstd2l0aC1mbGFnLWZyb20tc3ViZnJhbWUtc3RkZXJyLnR4dFVUCQADRHbj
WjJo41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGe0mKkWEetQpAwttoYJIudbIwm6Xksvq
fHunPoKITO5bIIHwS/j/8lFgfgHpPEsXWXIJ0GK/Im0waLXzHuXpbHGeps9wVYiwXGdgloa94l5r
1FtyzrBjaUnXX0UG5Cfr6AWG7ylI9skM7l/hnXfwZr2CMgRE0DVCb4eNih3wFEaHNuCho4cNnSkf
muKx6eq7su1ucrNqqtwUgH4iYb9Fr9bBZIVs73B2kv+IolbhDR45xxLV8HbkQIrliGKV2B/jN/4B
xWcsKhw0xPv/FUU0UzRTTEY0029QfABQSwMEFAACAAgApGGbTBBYyKznAAAANAkAAGEAHABsb2Fk
ZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1
cmUtdGFyZ2V0LWJsYW5rLXdpdGgtZmxhZy1zdGRlcnIudHh0VVQJAANEduNaMmjjWnV4CwABBPUB
AAAEFAAAAO2U4UrDQAzHv/sUeQAZ7SYqRYR61CkDC22hgki51sjCbpeSy+p8e6c+gohM7lsggfBL
+P/yUWB+Aek8SxdZcgnQYr8ibTBotfMe5elscZ6mz3BViLBcZ2CWhr3iXmvUW3LOsGNpSddfRQbk
J+voBYbvKUj2yQzuX+Gdd/BmvYIyBETQNUJvh42KHfAURoc24KGjhw2dKR+a4rHp6ruy7W5ys2qq
3BSAfiJhv0Wv1sFkhWzvcHaS/4iiVuENHjnHEtXwduRAiuWIYpXYH+M3/gHFZywqHDTE+/8VRTRT
NFNMRjTTb1B8AFBLAwQUAAIACAClYZtMEFjIrOcAAAA0CQAAcgAcAGxvYWRlci9uYXZpZ2F0aW9u
LXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxh
bmstd2l0aG91dC1mbGFnLWZyb20tc3ViZnJhbWUtc3RkZXJyLnR4dFVUCQADRXbjWjJo41p1eAsA
AQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGe0mKkWEetQpAwttoYJIudbIwm6XksvqfHunPoKITO5b
IIHwS/j/8lFgfgHpPEsXWXIJ0GK/Im0waLXzHuXpbHGeps9wVYiwXGdgloa94l5r1FtyzrBjaUnX
X0UG5Cfr6AWG7ylI9skM7l/hnXfwZr2CMgRE0DVCb4eNih3wFEaHNuCho4cNnSkfmuKx6eq7su1u
crNqqtwUgH4iYb9Fr9bBZIVs73B2kv+IolbhDR45xxLV8HbkQIrliGKV2B/jN/4BxWcsKhw0xPv/
FUU0UzRTTEY0029QfABQSwMEFAACAAgApWGbTFvLyMXnAAAANAkAAGQAHABsb2FkZXIvbmF2aWdh
dGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFyZ2V0
LWJsYW5rLXdpdGhvdXQtZmxhZy1zdGRlcnIudHh0VVQJAANFduNaMmjjWnV4CwABBPUBAAAEFAAA
AO2U4UrDQAzHv/sUeQAZ7SaKRYR61CkDC22hgki51sjCbpeSy+p8e6c+gohM7lsggfBL+P/yUWB+
Aek8SxdZcgnQYr8ibTBotfMe5elscZ6mz3BViLBcZ2CWhr3iXmvUW3LOsGNpSddfRQbkJ+voBYbv
KUj2yQzuX+Gdd/BmvYIyBETQNUJvh42KHfAURoc24KGjhw2dKR+a4rHp6ruy7W5ys2qq3BSAfiJh
v0Wv1sFkhWzvcHaS/4iiVuENHjnHEtXwduRAiuWIYpXYH+M3/gHFZywqHDTE+/8VRTRTNFNMRjTT
b1B8AFBLAwQUAAIACAClYZtMW8vIxecAAAA0CQAAbgAcAGxvYWRlci9uYXZpZ2F0aW9uLXBvbGlj
eS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRo
LWZsYWctZnJvbS1zdWJmcmFtZS1zdGRlcnIudHh0VVQJAANFduNaMmjjWnV4CwABBPUBAAAEFAAA
AO2U4UrDQAzHv/sUeQAZ7SaKRYR61CkDC22hgki51sjCbpeSy+p8e6c+gohM7lsggfBL+P/yUWB+
Aek8SxdZcgnQYr8ibTBotfMe5elscZ6mz3BViLBcZ2CWhr3iXmvUW3LOsGNpSddfRQbkJ+voBYbv
KUj2yQzuX+Gdd/BmvYIyBETQNUJvh42KHfAURoc24KGjhw2dKR+a4rHp6ruy7W5ys2qq3BSAfiJh
v0Wv1sFkhWzvcHaS/4iiVuENHjnHEtXwduRAiuWIYpXYH+M3/gHFZywqHDTE+/8VRTRTNFNMRjTT
b1B8AFBLAwQUAAIACAClYZtMW8vIxecAAAA0CQAAYAAcAGxvYWRlci9uYXZpZ2F0aW9uLXBvbGlj
eS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS13aW5kb3ctb3Blbi13aXRo
LWZsYWctc3RkZXJyLnR4dFVUCQADRXbjWjNo41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkA
Ge0mikWEetQpAwttoYJIudbIwm6XksvqfHunPoKITO5bIIHwS/j/8lFgfgHpPEsXWXIJ0GK/Im0w
aLXzHuXpbHGeps9wVYiwXGdgloa94l5r1FtyzrBjaUnXX0UG5Cfr6AWG7ylI9skM7l/hnXfwZr2C
MgRE0DVCb4eNih3wFEaHNuCho4cNnSkfmuKx6eq7su1ucrNqqtwUgH4iYb9Fr9bBZIVs73B2kv+I
olbhDR45xxLV8HbkQIrliGKV2B/jN/4BxWcsKhw0xPv/FUU0UzRTTEY0029QfABQSwMEFAACAAgA
pWGbTFvLyMXnAAAANAkAAHEAHABsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4t
ZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWZyb20t
c3ViZnJhbWUtc3RkZXJyLnR4dFVUCQADRXbjWjNo41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7
FHkAGe0mikWEetQpAwttoYJIudbIwm6XksvqfHunPoKITO5bIIHwS/j/8lFgfgHpPEsXWXIJ0GK/
Im0waLXzHuXpbHGeps9wVYiwXGdgloa94l5r1FtyzrBjaUnXX0UG5Cfr6AWG7ylI9skM7l/hnXfw
Zr2CMgRE0DVCb4eNih3wFEaHNuCho4cNnSkfmuKx6eq7su1ucrNqqtwUgH4iYb9Fr9bBZIVs73B2
kv+IolbhDR45xxLV8HbkQIrliGKV2B/jN/4BxWcsKhw0xPv/FUU0UzRTTEY0029QfABQSwMEFAAC
AAgApWGbTHKx4MbwAAAAzg0AAGMAHABsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9w
ZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93LW9wZW4td2l0aG91dC1mbGFnLXN0
ZGVyci50eHRVVAkAA0V241ozaONadXgLAAEE9QEAAAQUAAAA7ZTRSsNQDIbvfYo8gIx2E8UiQj3U
KQMLbaGCSDmtkYWdnZScrM63d+ojeCHTcxdIIHwJ/5ePAvMLSOdZusiSS4AW+xVpg0GrnfcoT2eL
8zR9hqtChOU6A7M07BX3WqPeknOGHUtLuv4qMiA/WUcvMHxPQbJPZnD/Cu+8gzfrFZQhIIKuEXo7
bFTsgKcwOrQBDx09bOhM+dAUj01X35Vtd5ObVVPlpgD0Ewn7LXq1DiYrZHuHs5P8RxS1Cm/wyDmW
qIa3IwdSLEcUq8T+GL/xByg+Y1HhoCHe/7coopmimWIyopmimaKZopmimf7H/T8AUEsDBBQAAgAI
AKVhm0xby8jF5wAAADQJAABhABwAbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVu
LWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aC1mbGFnLWZyb20tc3ViZnJhbWUtc3RkZXJy
LnR4dFVUCQADRXbjWjNo41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGe0mikWEetQpAwtt
oYJIudbIwm6XksvqfHunPoKITO5bIIHwS/j/8lFgfgHpPEsXWXIJ0GK/Im0waLXzHuXpbHGeps9w
VYiwXGdgloa94l5r1FtyzrBjaUnXX0UG5Cfr6AWG7ylI9skM7l/hnXfwZr2CMgRE0DVCb4eNih3w
FEaHNuCho4cNnSkfmuKx6eq7su1ucrNqqtwUgH4iYb9Fr9bBZIVs73B2kv+IolbhDR45xxLV8Hbk
QIrliGKV2B/jN/4BxWcsKhw0xPv/FUU0UzRTTEY0029QfABQSwMEFAACAAgApWGbTFvLyMXnAAAA
NAkAAFMAHABsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJs
cy93aW5kb3ctb3Blbi13aXRoLWZsYWctc3RkZXJyLnR4dFVUCQADRXbjWjNo41p1eAsAAQT1AQAA
BBQAAADtlOFKw0AMx7/7FHkAGe0mikWEetQpAwttoYJIudbIwm6XksvqfHunPoKITO5bIIHwS/j/
8lFgfgHpPEsXWXIJ0GK/Im0waLXzHuXpbHGeps9wVYiwXGdgloa94l5r1FtyzrBjaUnXX0UG5Cfr
6AWG7ylI9skM7l/hnXfwZr2CMgRE0DVCb4eNih3wFEaHNuCho4cNnSkfmuKx6eq7su1ucrNqqtwU
gH4iYb9Fr9bBZIVs73B2kv+IolbhDR45xxLV8HbkQIrliGKV2B/jN/4BxWcsKhw0xPv/FUU0UzRT
TEY0029QfABQSwMEFAACAAgApWGbTFvLyMXnAAAANAkAAGQAHABsb2FkZXIvbmF2aWdhdGlvbi1w
b2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRob3V0LWZsYWct
ZnJvbS1zdWJmcmFtZS1zdGRlcnIudHh0VVQJAANFduNaNGjjWnV4CwABBPUBAAAEFAAAAO2U4UrD
QAzHv/sUeQAZ7SaKRYR61CkDC22hgki51sjCbpeSy+p8e6c+gohM7lsggfBL+P/yUWB+Aek8SxdZ
cgnQYr8ibTBotfMe5elscZ6mz3BViLBcZ2CWhr3iXmvUW3LOsGNpSddfRQbkJ+voBYbvKUj2yQzu
X+Gdd/BmvYIyBETQNUJvh42KHfAURoc24KGjhw2dKR+a4rHp6ruy7W5ys2qq3BSAfiJhv0Wv1sFk
hWzvcHaS/4iiVuENHjnHEtXwduRAiuWIYpXYH+M3/gHFZywqHDTE+/8VRTRTNFNMRjTTb1B8AFBL
AwQUAAIACAClYZtMW8vIxecAAAA0CQAAVgAcAGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91
bGQtb3Blbi1leHRlcm5hbC11cmxzL3dpbmRvdy1vcGVuLXdpdGhvdXQtZmxhZy1zdGRlcnIudHh0
VVQJAANFduNaNGjjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZ7SaKRYR61CkDC22hgki5
1sjCbpeSy+p8e6c+gohM7lsggfBL+P/yUWB+Aek8SxdZcgnQYr8ibTBotfMe5elscZ6mz3BViLBc
Z2CWhr3iXmvUW3LOsGNpSddfRQbkJ+voBYbvKUj2yQzuX+Gdd/BmvYIyBETQNUJvh42KHfAURoc2
4KGjhw2dKR+a4rHp6ruy7W5ys2qq3BSAfiJhv0Wv1sFkhWzvcHaS/4iiVuENHjnHEtXwduRAiuWI
YpXYH+M3/gHFZywqHDTE+/8VRTRTNFNMRjTTb1B8AFBLAwQKAAAAAACqYZtMAAAAAAAAAAAAAAAA
BgAcAG1lZGlhL1VUCQADT3bjWr5341p1eAsAAQT1AQAABBQAAABQSwMEFAACAAgApWGbTKt1whcA
AQAAzg0AADwAHABtZWRpYS9hY2Nlc3NpYmlsaXR5LWNsb3NlZC1jYXB0aW9ucy1oYXMtYXJpYS1v
d25zLXN0ZGVyci50eHRVVAkAA0Z241oyaONadXgLAAEE9QEAAAQUAAAA7ZTvSsNADMC/+xR5ABnt
JopFhHrUKgMLbaHCkHKtkR27XUqa1fn2Tn2CIeJa7lsggfDLn1/cMcyvIJxH4SIKrgEqbJZGSuwl
3zmHvLpYXIbhC9wkzMS3EahUkRPcS4Fyb6xVZIkrI+vvIALjBm3NK7Q/VRDsgxk8vsEH7eBdOwEh
6BFB1giNbjfCusVz6CzqHg8ZOXSoVfZUJs9lXTxkVX0Xq2WZxyoBdINhclt0oi0Mmo1uLM7O4l9R
FMK0wZFzpCiKth31RjDrkLUYcmPcxgQovt4ix1Z6P///ovBm8mbyn+HN9OcUYTAFMx1NcaJmOo4j
ncpNTYDilMw02vl/AlBLAwQUAAIACACnYZtMLNqN/PsAAADODQAALAAcAG1lZGlhL2FpcnBsYXkt
dGFyZ2V0LWF2YWlsYWJpbGl0eS1zdGRlcnIudHh0VVQJAANJduNaNWjjWnV4CwABBPUBAAAEFAAA
AO2U4UrDQAzHv/sUeQAZa08Uigj1qFMGFtpCBZFyrZEdu11KmtX59k59BBFtvW+BBMIv4f9Le4b4
AqI4iVQSxQA1tmsrFQ5S7L1HfjxT51H0BJcZM/FVAnqlyQsepES5sc5pcsS1lc1nkYD1o3H2Gbqv
KVgelgu4e4E32sOr8QJCMCCCbBBa022FTYen0Ds0Ax47ctzQ6Py+yh6qprzN6+Y61euqSHUG6EfL
5HfoxTgYDVvTOlycpN+iKIVpixPnWKFo2vU0WMG8RzZiyU/xGzOg+IhFgZ0M4f6/RRHMFMwUkhHM
9PMUahZmUjMxk5qFmdT/S8afMtNU7/8OUEsDBBQAAgAIAKdhm0wAXira/AAAAM4NAAAqABwAbWVk
aWEvYXVkaW8tYXMtdmlkZW8tZnVsbHNjcmVlbi1zdGRlcnIudHh0VVQJAANKduNaNmjjWnV4CwAB
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
43ByknwpRSFMGzzyHEsUTduOeiuYdchGLPlj3MYIUrzXIsdW+jD/30oRZAoyhWYEmX4+hRqFTGok
MqlRyKT+XzP+lEwqyBRkCjKFZgSZvinFG1BLAwQUAAIACACqYZtM47SorAIBAAACFwAAJgAcAG1l
ZGlhL2NvbnRyb2xzL2VsZW1lbnRPcmRlci1zdGRlcnIudHh0VVQJAANPduNaPGjjWnV4CwABBPUB
AAAEFAAAAO3UUUrDQBAG4HdPMQeQ0qQWJYgQl7RKwUASiFAkbOKULt3uhMk01ttb7RF8kMq8LezC
8M/yf2nPEN9CFCfRLInuAGpsV04qHKQ4hIC8vpnN5/Eb3GfMxA8JmKWhIHiUEmXhvDfkiWsn259D
Ai6M1rt36M6vYHqcTuB5A590gA8bBIRgQATZIrS22wnbDq+h92gHPN3IaUJj8pcqe62a8imvm8fU
rKoiNRlgGB1T2GMQ62G07GzrcXKV/ipFKUw7vPAcSxRD+54GJ5j3yFYchUv8jX+Q4rsWBXYy6P7/
KoXKpDJpM1QmlUllUplUJt2/yqQyaTNUJpVJZVKZVCbd/znFF1BLAwQUAAIACACtXJtMpDZnxtsA
AABlAQAAQAAcAG1lZGlhL2NvbnRyb2xzL3BpcC1wbGFjZWhvbGRlci13aXRob3V0LXZpZGVvLWNv
bnRyb2xzLWFjdHVhbC50eHRVVAkAA+Vt41rlbeNadXgLAAEE9QEAAAQUAAAAdY/RasMwDEXf/RXa
B7QfkLdCOyiMMZawd8dWIzFXMrbS0L+fs2yDwfYihHR1j+5AXMGwWquEkDnYXHDHsvtqIScfkDRF
LLAQyqfuxhEVyFcQhaBiRVPdOzd824FKukOZpQILHF+HB+fc6e30PHQQvDTTu1HReaJ2tOr/oY+z
mQosbAQ3nzhu6B+vBcd3tlywopg3VrlqxEBeJozu5dD3HfSkc4ow4vpK5gyrxD0ezk8dnCWx/A4Z
G0TUmj7odY1aeUwI/mJtuQVvLCz1j3/3WxqWCS4sXAljG30AUEsDBBQAAgAIAK1cm0x2CASEHwEA
AFECAAA+ABwAbWVkaWEvY29udHJvbHMvcGlwLXBsYWNlaG9sZGVyLXdpdGhvdXQtdmlkZW8tY29u
dHJvbHMtZGlmZi50eHRVVAkAA+Vt41rlbeNadXgLAAEE9QEAAAQUAAAAxVFNTwIxEL3vr5gbh6X0
qHBajJgQjTEugfNsO7ATu22znQX89xZEQ6KJR09tOu9rXpVSoNfBDR0lfY+CerGp9YaaR5bLcTew
s/qVHGEi7fA9DKKEkqie0uAk6Y4sozbBSx9c0pGjig4NtcFZ6tWBpT1x9mwpqC+YomMkI2QncpSi
LMv/yoFGBnTnFFUFajq+hXI6voGqKqCAxXrxvJrBgZo3lpidyAsKB98FS6ZFvyNbwMu8rmdQZ3ln
oSFgD9kdTphCfQ6X3rEnuAoE6Ru/58SNI0ABaTlBDOzlb2aLe8oEglHkvEVPir26XEdgHKZUlA/z
5dOvIpYt+CDZ34TuKsNW8vBcEuRlqc9xfqhPTt2scvnsd7Blz6nNP5kfPwBQSwMEFAACAAgArVyb
TL9Ss3ncAAAAiwEAAEIAHABtZWRpYS9jb250cm9scy9waXAtcGxhY2Vob2xkZXItd2l0aG91dC12
aWRlby1jb250cm9scy1leHBlY3RlZC50eHRVVAkAA+Vt41rlbeNadXgLAAEE9QEAAAQUAAAAhZCx
TsNADIb3ewozdSoP0A2JDiwIkYj9cmdii8M+nZ1EfXuStlRCCLFYlvz79/+5JzZwNF8rIVROPjXc
s+yvLdQSE5KWjA0WQjnrZs6oQNFAFJKKNy12H0L/bQcq5QRtEgMWeHzt70IIx7fjc3+AFGU1PTk1
nUZalzb9H9eHyV0FFnaCORbOl9M3rwWHD/ba0FA8Oqt8asZEUUbM4eWh6w7QkU4lw4BblMoVNsl1
9iSF5Sek3eQzGw8FIW7xVrCqLP7vIsUZzzi73zw7SCWaXZhZRnhnYSPM6+++AFBLAwQUAAIACACt
XJtMLto9ZSsIAAC+HAAARgAcAG1lZGlhL2NvbnRyb2xzL3BpcC1wbGFjZWhvbGRlci13aXRob3V0
LXZpZGVvLWNvbnRyb2xzLXByZXR0eS1kaWZmLmh0bWxVVAkAA+Vt41rlbeNadXgLAAEE9QEAAAQU
AAAAvVlrb9vGEv3uX0HYaA0UJilZkq8lJS4SP3CLtkFwHbQfiyV3KW685PLurmw59/a/d/ZFkRQp
qWiQBo0k7uvMzJk5s8ybXBXs5uRNThCGj4IoFKQ5EpKot+drlYXX5/BYqldGbk4WjJZPF8HimUqq
CA7+dxLAf4psVIhJygVSlJeLoOQlWZqhhAtMRJhwpXixCMbVJsDwneDlyZ8ndju3ScoZF4vgbDSZ
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
aa8f9pjIj6GA8cPDu59+6fUDBs0sObQ9BFSkEV7T4pr6GhB9Z4VI7zgn+qYJ87Uq8Hh6jC8n36wG
z46BMx2G8wmEUzcbGS2pzAmOvjK+q2PwzY53198hSefDNB6g7eafLf8CUEsDBBQAAgAIAK1hm0wR
Db1N/AAAAM4NAAAmABwAbWVkaWEvY29udHJvbHMtZHJhZy10aW1lYmFyLXN0ZGVyci50eHRVVAkA
A1V241pBaONadXgLAAEE9QEAAAQUAAAA7ZTtSsNQDIb/exW5ABnrBwpFhHqoUwYW2kIFGeW0RnbY
2UlJszrv3qmXIKKt518ggfAkvE/aM4SXEIRJECVhBFBjuzZS4SDFwTnkpzi6CIINXGXMxNcJqJUi
J3iUEuXWWKvIEtdGtp9FAsaN2ppn6L6mYHlcLuD+Bd7oAK/aCQjBgAiyRWh1txPWHZ5Db1EPeOrI
aUOj8ocqe6ya8i6vm5tUrasiVRmgGw2T26MTbWHUbHRrcXGWfouiFKYdTpxjhaJo39NgBPMeWYsh
N8VvzIDiIxYFdjL4+/8WhTeTN5NPhjfTz1PEszBTPBMzxbMwU/z/kvGnzDTV+78DUEsDBBQAAgAI
AK1hm0wBsaHu8AAAAM4NAAAqABwAbWVkaWEvY29udHJvbHMtbGF5b3V0LWRpcmVjdGlvbi1zdGRl
cnIudHh0VVQJAANVduNaQmjjWnV4CwABBPUBAAAEFAAAAO2U30rDUAyH732KPICMtfMPFBHqoU4Z
WGgLFUTKaY3ssLOk5GR1vr1TH8ELmZ67QALhS/h9+SiQXkKSZskiS88BWuxXThsMWu2IUJ7OFhdJ
8gxXhQjLdQZmaZgU91qj3jrvDXuW1un6q8jA0WS9e4Hhewrm+/kM7l/hnXfwZklBGQIi6Bqht8NG
xQ54CqNHG/DQ0cOGzpQPTfHYdPVd2XY3uVk1VW4KQJqcMG2R1HqYrDjbe5yd5D+iqFV4g0fOsUQ1
vB05OMVyRLHqmI7xG3+A4jMWFQ4a4v1/iyKaKZopJiOaKZopmimaKZrpf9z/A1BLAwQUAAIACACu
YZtMdDbZuPwAAADODQAAMAAcAG1lZGlhL2NvbnRyb2xzLXJpZ2h0LWNsaWNrLW9uLXRpbWViYXIt
c3RkZXJyLnR4dFVUCQADV3bjWkNo41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGWunJxQR
6lGnDCy0hQoi5VojO3a7lDSr8+2d+ghjaGu/BRIIv4T/L24ZwisIwihYROElQIn1ykqBnWQ775Gf
LxYqCF7gOmEmvolALzV5wb3kKHfWOU2OuLSy/i4isL43zr5C8zMF8/18Bg9v8EE7eDdeQAg6RJA1
Qm2ajbBp8Bxah6bDQ0cOGyqdPhbJU1Hl92lZ3cZ6VWSxTgB9b5n8Fr0YB71ha2qHs7P4KIpcmDY4
cI4liqZtS50VTFtkI5b8EL8xAoqvWGTYSDfd/7coJjNNZpqSMZnp9BRqFGZSIzGTGoWZ1P9Lxp8y
01Dv/wlQSwMEFAACAAgArmGbTMyifSHvAAAAzg0AAD4AHABtZWRpYS9jb250cm9scy1zaG91bGQt
bm90LXRyaWdnZXItaXNvbGF0ZXMtYmxlbmRpbmctc3RkZXJyLnR4dFVUCQADWHbjWkVo41p1eAsA
AQT1AQAABBQAAADtlNFKw0AQRd/9ivkAKU0rCkGEuMQqBQNJIIJI2MSRLt3OhNlprH9v1E/wQWr3
7cIMDPcO92SDwOIKkkWaLNNJQIPd2mmNQcs9EcrzxfIySV7gOhdhuUnBrAyT4kEr1DvnvWHP0jjd
fIsUHI3Wu1fof7ZgfpjP4OENPngP75YUlCEggm4QOttvVWyP5zB4tAGniU4XWlM81vlT3Vb3RdPe
ZmZdl5nJAWl0wrRDUuthtOJs53F2lv3KRaXCWzxyHytUw7uBg1MsBhSrjukYv/EPXHzVosReQ8z/
r1xEMkUyxWZEMkUyRTJFMkUynUb+n1BLAwQUAAIACACuYZtMR292tecAAAA0CQAAQQAcAG1lZGlh
L2NyYXNoLWNsb3NpbmctcGFnZS13aXRoLW1lZGlhLWFzLXBsdWdpbi1mYWxsYmFjay1zdGRlcnIu
dHh0VVQJAANYduNaRWjjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZaycqRYR61CkDC22h
gki51siO3ZKSy+p8e6c+gohM7lsggfBL+P/yUSC9gCTNkkWWXgK02K+cNhi02hGhPJ0tzpPkGa4K
EZbrDMzSMCnutUa9dd4b9iyt0/VXkYGjyXr3AsP3FMz38xncv8I77+DNkoIyBETQNUJvh42KHfAU
Ro824KGjhw2dKR+a4rHp6ruy7W5ys2qq3BSANDlh2iKp9TBZcbb3ODvJf0RRq/AGj5xjiWp4O3Jw
iuWIYtUxHeM3/gHFZywqHDTE+/8VRTRTNFNMRjTTb1B8AFBLAwQUAAIACACvYZtMLtbdCF8AAABm
AAAAIgAcAG1lZGlhL2V2ZW50LXF1ZXVlLWNyYXNoLXN0ZGVyci50eHRVVAkAA1l241pFaONadXgL
AAEE9QEAAAQUAAAAc/b3C/b3cVXwdQ0OdnR3tVLIycxLVTA2sVIIrswrSaxwLSrKL7JSCM1LrShI
TS5JTVEoyc9OzVNQr1XXU3CFialrqAPFFYpLEotKFBKBsplp6grJ+XkpmSWZ+Xl6XABQSwMECgAA
AAAAp1mbTAAAAAAAAAAAAAAAAAoAHABtZWRpYS9tYWMvVVQJAAM6aONavnfjWnV4CwABBPUBAAAE
FAAAAFBLAwQUAAIACACpYZtMnHeB/P0AAADODQAAMwAcAG1lZGlhL21hYy9jb250cm9scy1wYW5l
bC1ub3QtY2xpcHBlZC1vdXQtc3RkZXJyLnR4dFVUCQADTnbjWjpo41p1eAsAAQT1AQAABBQAAADt
lOFKw0AMx7/7FHkAGes2XSki1KNOGVhoCxVEyrWL7NjtUnJZnW/v1EcQ0dZ+CyQQfgn/X9wyzJYQ
zKJgHgVLgBLrtZECvWQH55CfFvOL8PIZrhJm4usI1EqREzxKjnJrrFVkiUsj288iAuM6bc0Gmq8p
mB6nE7h/gTc6wKt2AkLgEUG2CLVudsK6wXNoLWqPp46cNlQqfSiSx6LK79KyuonVushilQC6zjC5
PTrRFjrNRtcWJ2fxtyhyYdphzzlWKIr2LXkjmLbIWgy5Pn5jABQfsciwET/e/7coRjONZhqTMZrp
5ynCQZgpHIiZwkGYKfx/yfhTZurr/d8BUEsDBBQAAgAIALBhm0zVoeXY8AAAAM4NAAArABwAbWVk
aWEvbWVkaWEtY2FwdGlvbnMtbm8tY29udHJvbHMtc3RkZXJyLnR4dFVUCQADXHbjWklo41p1eAsA
AQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGbtVHBQR6lHnGFhoCx2IlGuN7NjtUnJZnW/v1Efwg2y7
b4EEwi/h/8sGhtkc1CxVSZoogAa7lZUag5R775FfbpJbpV7hLmcmvk9BLzR5wYNUKI/WOU2OuLGy
+SlSsH40zr5B/zsF08N0Ast3+KQ9fBgvIAQBEWSD0Jl+K2x6vIbBoQl47MhxQ6uL5zpf1231VDTt
Q6ZXdZnpHNCPlsnv0ItxMBq2pnM4ucr+RFEJ0xZPnGOBomk3ULCCxYBsxJI/xW+cAcV3LErsJcT7
/xdFNFM0U0xGNFM0UzRTNFM002Xc/wtQSwMEFAACAAgAs2GbTN44b53wAAAAzg0AAB8AHABtZWRp
YS9tZWRpYS1jYXB0aW9ucy1zdGRlcnIudHh0VVQJAANiduNaT2jjWnV4CwABBPUBAAAEFAAAAO2U
4UrDQAzHv/sUeQAZazscFBHq0c0xWKEtVBAp1xrZsdul5LJuvr1TH8EPMnffAgmEX8L/lw0M8Ryi
OI2SNIkBGuzWRmr0Uh6cQ36ZJXdR9Ar3OTPxQwpqqcgJnqRCWRhrFVnixsj2u0jBuFFb8wb9zxRM
T9MJrN7hgw5w1E5ACDwiyBah0/1OWPd4C4NF7fHckfOGVhWbOn+u2+qpaNrHTK3rMlM5oBsNk9uj
E21h1Gx0Z3Fyk/2KohKmHV44xxJF0X4gbwSLAVmLIXeJ3/gHFF+xKLEXH+7/VxTBTMFMIRnBTMFM
wUzBTMFM13H/T1BLAwQUAAIACAC1YZtM4SDddwwBAABoEgAALAAcAG1lZGlhL21lZGlhLWNvbnRy
b2xsZXItZHJhZy1jcmFzaC1zdGRlcnIudHh0VVQJAANlduNaUmjjWnV4CwABBPUBAAAEFAAAAO2U
4UrDQAzHv/sUeQAZ7ToUiwj1qFUGFrpCBZFyrZEdu11KmtX59k59giHDrd63QALHL7n/L+kYppcQ
TuMwiqMrgAqbuZESeyk2ziE/z6KLMHyB65SZ+CYGlSlygltZoNwZaxVZ4srI8ruIwbhBW/MK7c8U
BNtgAg9v8EEbeNdOQAh6RJAlQqPblbBu8Rw6i7rHXUd2L9QqfyzTp7Je3OdVfZuoeVkkKgV0g2Fy
a3SiLQyajW4sTs6SX1EshGmFJ86RoShad9QbwbxD1mLIneI1RkDxFYsCW+n9/v+KwpvJm8knw5vp
4BSzYAxm2pviSM20H0c2lj81AopjMtN/3L83kzeTT4Y304EoPgFQSwMEFAACAAgAtmGbTMy3Twj7
AAAAzg0AAC4AHABtZWRpYS9tZWRpYS1jb250cm9sbGVyLXBsYXliYWNrcmF0ZS1zdGRlcnIudHh0
VVQJAANnduNaVGjjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZ620oFBHqUacMLLSFCjLK
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
aWEtZG9jdW1lbnQtYXVkaW8tc2l6ZS1zdGRlcnIudHh0VVQJAANxduNaXmjjWnV4CwABBPUBAAAE
FAAAAO2U4UrDQAzHv/sUeQAZa28qFBHqUacMLLSFCkPKtWbs2O1S0qzOt3fqI4hoa78FEgi/hP8v
bhnCKwjCKFDRRQhQYr2yUmAn2cF75PVCXQbBM1wnzMQ3EeilJi94lBzlzjqnyRGXVrafRQTW98bZ
F2i+pmB+nM/gYQNvdIBX4wWEoEME2SLUptkJmwbPoXVoOjx15LSh0uljkTwVVX6fltVtrFdFFusE
0PeWye/Ri3HQG7amdjg7i79FkQvTDgfOsUTRtG+ps4Jpi2zEkh/iN0ZA8RGLDBvppvv/FsVkpslM
UzImM/08hRqFmdRIzKRGYSb1/5Lxp8w01Pu/A1BLAwQKAAAAAACoWZtMAAAAAAAAAAAAAAAAFgAc
AG1lZGlhL21lZGlhLWZyYWdtZW50cy9VVAkAAzto41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQA
AgAIAKpcm0zvMagtFAEAAAIXAAAnABwAbWVkaWEvbWVkaWEtZnJhZ21lbnRzL1RDMDAwMS1zdGRl
cnIudHh0VVQJAAPgbeNaO2jjWnV4CwABBPUBAAAEFAAAAO3UUUrDQBCA4XdPMQeQkqRINYgQlxil
YCANRBAJmzjSpdvdMJnGenurnqCI2KbzFthA+GczX9IRRDMIw3g6i8MrgAqbueESey42ziE9T6OL
y+gFrlMiTzcxqEx5x7jlBfKdsVZ566kyvPx+iMG4QVvzCu3PWxBsgwk8vMGH38C7dgzsoUcEXiI0
ul0x6RbPobOoe9yd8O4Ltcofy/SprBf3eVXfJmpeFolKAd1gyLs1OtYWBk1GNxYnZ8mvKhZMfoVH
3pEhK7/ufG8Y8w5Js/HuGG9jBBVfa1Fgy73M/78qRCaRSTZDZPrziigYg0x7VxyoTPt1ZGP5p0ZQ
cUgyneL8RSaRSTZDZBKZRCaRSWQ6mfl/AlBLAwQUAAIACADEYZtMraYpZQIBAADODQAAMgAcAG1l
ZGlhL21lZGlhLWZ1bGxzY3JlZW4tcmV0dXJuLXRvLWlubGluZS1zdGRlcnIudHh0VVQJAAN/duNa
bGjjWnV4CwABBPUBAAAEFAAAAO2U3UrDUAyA732KPICMdpuKRYR6qFUGFtpCByLltMvYYWcnJc3q
fHunPoGKuJbeBRIIX36+sGGYXoE/DfxZcHENUGC1MJJjK+neOeTn+ezS91/gJmImvg1AxYqc4EEy
lHtjrSJLXBjZfAYBGNdpa1ZQf1WBd/Am8LiGN9rDq3YCQtAigmwQKl1vhXWN59BY1C0eM3LsUKrk
KY+WeZk9JEV5F6pFnoYqAnSdYXI7dKItdJqNrixOzsJfUWTCtMWec8QoinYNtUYwaZC1GHJ93MYA
KD7eIsVa2nH+/0Uxmmk00/gZo5n+mGIeeF7/zfQDipM003c54qHc1AAoTsdMPZ7/O1BLAwQUAAIA
CADEYZtMecEniu8AAADODQAAIQAcAG1lZGlhL21lZGlhLWxvYWQtZXZlbnQtc3RkZXJyLnR4dFVU
CQADf3bjWm1o41p1eAsAAQT1AQAABBQAAADtlNFKw1AMhu99ijyAjHYOB0WEeqhTBhbaQgWRktbI
Djs7KTlZnW/v1EfwQqbnLpBA+BL+Lx8F5ktI51m6yJIlQEv92mpDQau99yRPi4vLNH2Gq0KE5ToD
szLslQ5ak95a5ww7ltbq5qvIwPoJnX2B4XsKkkMyg/tXeOc9vKFXUIZABLoh6HHYquBA5zA6wkDH
jh43dKZ8aIrHpqvvyra7yc26qXJTAPnJCvsdeUUHE4rF3tHsLP8RRa3CWzpxjhWp4d3IwSqVIwmq
ZX+K3/gDFJ+xqGjQEO//WxTRTNFMMRnRTNFM0UzRTNFM/+P+H1BLAwQKAAAAAACqYZtMAAAAAAAA
AAAAAAAAEwAcAG1lZGlhL21lZGlhLXNvdXJjZS9VVAkAA09241q+d+NadXgLAAEE9QEAAAQUAAAA
UEsDBBQAAgAIAKphm0z2kEMk/QAAAM4NAAA+ABwAbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNv
dXJjZS1hYm9ydC1yZXNldHMtcGFyc2VyLXN0ZGVyci50eHRVVAkAA09241pPduNadXgLAAEE9QEA
AAQUAAAA7ZTtSsNQDIb/exW5ABnr5sdaRKiHOmVgoS1UECmnNbLDzk5KmtV59069BBnaev4FEghP
wvvELcPsEoJZFMyjYAFQYr0yUmAn2c455Kez+fni4hmuEmbi6wjUUpET3EuOcmusVWSJSyPrryIC
43ptzQs031Mw3U8ncP8K77SDN+0EhKBDBFkj1LrZCOsGT6G1qDs8dOSwoVLpQ5E8FlV+l5bVTaxW
RRarBND1hslt0Ym20Gs2urY4OYl/RJEL0wYHzrFEUbRtqTOCaYusxZAb4jdGQPEZiwwb6fz9f4vC
m8mbySfDm+n4FOEozBSOxEzhKMwU/r9k/CkzDfX+H1BLAwQKAAAAAACsYZtMAAAAAAAAAAAAAAAA
HAAcAG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9VVAkAA1N241q+d+NadXgLAAEE9QEAAAQU
AAAAUEsDBAoAAAAAAKxhm0wAAAAAAAAAAAAAAAArABwAbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL2ZvcndhcmQtYnV0dG9uL1VUCQADU3bjWr5341p1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA
rGGbTIf/vQX7AAAAzg0AAEQAHABtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvZm9yd2FyZC1i
dXR0b24vZm9yd2FyZC1idXR0b24tc3RkZXJyLnR4dFVUCQADU3bjWlN241p1eAsAAQT1AQAABBQA
AADtlOFKw0AMx7/7FHkAGVvPIRQR6lGnDCy0hQoyyrVGdux2KWlW59s79RFEtPW+BRIIv4T/L+kY
oktYRPFCxVEEUGGztlJiL/nBe+SnC7VcRhu4SpmJr2PQK01e8CgFyq11TpMjrqxsP4sYrB+Ms8/Q
fk3B/Difwf0LvNEBXo0XEIIeEWSL0Jh2J2xaPIfOoenx1JHThlpnD2X6WNbFXVbVN4lel3miU0A/
WCa/Ry/GwWDYmsbh7Cz5FkUhTDscOccKRdO+o94KZh2yEUt+jN+YAMVHLHJspQ/3/y2KYKZgppCM
YKafp1CTMJOaiJnUJMyk/l8y/pSZxnr/d1BLAwQKAAAAAACuXJtMAAAAAAAAAAAAAAAALQAcAG1l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9sbGVyL1VUCQAD523jWr5341p1
eAsAAQT1AQAABBQAAABQSwMEFAACAAgArlybTNB3bd/vAAAAzg0AAHoAHABtZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWNsaWNrLW9u
LXZpZGVvLWJhY2tncm91bmQtc2hvdWxkLXBhdXNlLWZ1bGxzY3JlZW4tc3RkZXJyLnR4dFVUCQAD
523jWudt41p1eAsAAQT1AQAABBQAAADtlNFKw1AMhu99ijyAjLWDDYoI9VCnDCy0hQoi5bRGdtjZ
ScnJ6nx7pz6CFzLNXSCB8CX8Xz4ypCtIkmyxytIlQIv9xkmDUapDCMhPi3SZJs9wVTATX2dg1oaC
4FFqlFvnvSFP3DrZfhUZuDBZ715g+J6C+XE+g/tXeKcDvNkgIAQREWSL0NthJ2wHvITRo4146shp
Q2fKh6Z4bLr6rmy7m9xsmio3BWCYHFPYYxDrYbLsbO9xdpH/iKIWph2eOccaxdB+pOgEyxHZiqNw
jt/4AxSfsahwkKj3/y0KNZOaSZOhZlIzqZnUTGqm/3H/D1BLAwQKAAAAAACqWZtMAAAAAAAAAAAA
AAAAKwAcAG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9scy9VVAkAA0Bo
41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAKpZm0x5AKm2/wAAAM4NAABWABwAbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xzLWFwcGVh
ci13aGVuLWZvY3VzLXN0ZGVyci50eHRVVAkAA0Bo41pAaONadXgLAAEE9QEAAAQUAAAA7ZTvSsNA
DMC/+xR5ABm9iopFhHrUKgMLbaGCSLnWyI7dLiXN6nx7pz7BEHEt/RZIIPzy5xd3DOElKBWps0hd
AVTYLK2U2Eu+9R75OTxXF+oFrhNm4psIdKrJC+6kQLmzzmlyxJWV1XcQgfWDcfYV2p8qCHbBAh7e
4IO28G68gBD0iCArhMa0a2HT4il0Dk2P+4zsO9Q6eyyTp7Iu7rOqvo31ssxjnQD6wTL5DXoxDgbD
1jQOFyfxrygKYVrjyDlSFE2bjnormHXIRiz5MW5jAhRfb5FjK/08//+imM00m2n+jNlMf04RBlMw
08EUR2qmwzjSqdzUBCiOyUyjnf8nUEsDBBQAAgAIAMZhm0xKyBF9+wAAAM4NAAAsABwAbWVkaWEv
bm9kZXNGcm9tUmVjdC1zaGFkb3dDb250ZW50LXN0ZGVyci50eHRVVAkAA4N241pxaONadXgLAAEE
9QEAAAQUAAAA7ZThSsNADMe/+xR5ABm9ORSKCPWoUwYW2kIFkXKtkR27XUqa1fn2TvcIQ7T1vgUS
CL+E/y/pGOZXoOaxWsQqAqiwWVkpsZd85z3y8+LiUqkXuE6ZiW9i0EtNXnAvBcqddU6TI66srL+L
GKwfjLOv0B6nINpHM3h4gw/awbvxAkLQI4KsERrTboRNi+fQOTQ9Hjpy2FDr7LFMn8q6uM+q+jbR
qzJPdAroB8vkt+jFOBgMW9M4nJ0lJ1EUwrTBkXMsUTRtO+qtYNYhG7Hkx/iNCVB8xSLHVvpw/9+i
CGYKZgrJCGb6eQo1CTOpiZhJTcJM6v8l40+Zaaz3/wRQSwMEFAACAAgAxmGbTBVFxyX7AAAAzg0A
ADgAHABtZWRpYS9ub24tZXhpc3RlbnQtdmlkZW8tcGxheWJhY2staW50ZXJydXB0ZWQtc3RkZXJy
LnR4dFVUCQADhHbjWnFo41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGbtzKBQR6lGnDCy0
hQoi5VojO3a7lDSr8+2d7hGGaGu/BRIIv4T/L24Z9BUoHalFpBRAifXKSYGdZLsQkJ8XF5dKvcB1
wkx8E4FZGgqCe8lR7pz3hjxx6WT9XUTgQm+9e4XmOAXz/XwGD2/wQTt4t0FACDpEkDVCbZuNsG3w
HFqPtsNDRw4bKpM+FslTUeX3aVndxmZVZLFJAEPvmMIWg1gPvWVna4+zs/gkilyYNjhwjiWKoW1L
nRNMW2QrjsIQvzECiq9YZNhIN93/tygmM01mmpIxmennKfQozKRHYiY9CjPp/5eMP2Wmod7/E1BL
AwQUAAIACADJYZtMzmQOYfwAAADODQAAMwAcAG1lZGlhL3JlcXVpcmUtdXNlci1nZXN0dXJlLXRv
LWxvYWQtdmlkZW8tc3RkZXJyLnR4dFVUCQADiXbjWnZo41p1eAsAAQT1AQAABBQAAADtlOFKw0AM
x7/7FHkAGbs5Tygi1KNOGVhoCxVEyrVGdux2KWlW59s79RFEtLXfAgmEX8L/F7cMiwtQi0gtI3UO
UGK9dlJgJ9k+BOTH5ZlW6gkuE2biqwjMylAQPEiOcuO8N+SJSyebzyICF3rr3TM0X1MwP8xncPcC
b7SHVxsEhKBDBNkg1LbZCtsGT6H1aDs8duS4oTLpfZE8FFV+m5bVdWzWRRabBDD0jinsMIj10Ft2
tvY4O4m/RZEL0xYHzrFCMbRrqXOCaYtsxVEY4jdGQPERiwwb6ab7/xbFZKbJTFMyJjP9PIUehZn0
SMykR2Em/f+S8afMNNT7vwNQSwMEFAACAAgAyWGbTHbwqvjwAAAAzg0AAEAAHABtZWRpYS9yZXN0
cmljdGVkLWF1ZGlvLXBsYXliYWNrLXdpdGgtZG9jdW1lbnQtZ2VzdHVyZS1zdGRlcnIudHh0VVQJ
AAOKduNad2jjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZu21sUESoR7fJwEJbqCBSrl3G
jt0uJZfV+fZOfQQ/yPS+BRIIv4T/L+0ZJgtQk0TNErUAqLHdWKkwSHHyHvllNp0r9Qp3GTPxfQJ6
pckLnqVEWVrnNDni2sr+q0jA+sE4u4XuewrG5/EIHnfwTid4M15ACAIiyB6hNd1B2HR4C71DE/DS
kcuGRudPVfZcNeU6r5uHVG+qItUZoB8skz+iF+NgMGxN63B0k/6IohSmA145xwpF07GnYAXzHtmI
JX+N3/gDFJ+xKLCTEO//WxTRTNFMMRnRTNFM0UzRTNFM/+P+H1BLAwQUAAIACADMYZtMegiioe8A
AADODQAAMAAcAG1lZGlhL3RhYi1mb2N1cy1pbnNpZGUtbWVkaWEtZWxlbWVudHMtc3RkZXJyLnR4
dFVUCQADj3bjWnxo41p1eAsAAQT1AQAABBQAAADtlNFKw1AMhu99ijyAjLUOhSJCPdQpAwttoYKM
clojO+zspORkdb69Ux/BC5nmLpBA+BL+Lx8Z0itI0ixZZGkK0GK/ctJglGofAvLz4uIySdZwXTAT
32RgloaC4EFqlDvnvSFP3DrZfBUZuDBZ715g+J6C+WE+g4dXeKc9vNkgIAQREWSD0NthK2wHPIfR
o4147MhxQ2fKx6Z4arr6vmy729ysmio3BWCYHFPYYRDrYbLsbO9xdpb/iKIWpi2eOMcSxdBupOgE
yxHZiqNwit/4AxSfsahwkKj3/y0KNZOaSZOhZlIzqZnUTGqm/3H/D1BLAwQUAAIACADMYZtMvIL0
K+8AAADODQAAIwAcAG1lZGlhL3RpbWVyYW5nZXMtbmVhcmVzdC1zdGRlcnIudHh0VVQJAAOPduNa
fWjjWnV4CwABBPUBAAAEFAAAAO2U0UrDUAyG732KPICMtRsKRYR6qFMGFtpCBZGS1sgOOzspOVmd
b+/UR/BCpucukED4Ev4vHwXSS0jSLFlm6QKgpX5ttaGg1d57kqfl4iJJnuGqEGG5zsCsDHulg9ak
t9Y5w46ltbr5KjKwfkJnX2D4noL5YT6D+1d45z28oVdQhkAEuiHocdiq4EDnMDrCQMeOHjd0pnxo
isemq+/KtrvJzbqpclMA+ckK+x15RQcTisXe0ews/xFFrcJbOnGOFanh3cjBKpUjCaplf4rf+AMU
n7GoaNAQ7/9bFNFM0UwxGdFM0UzRTNFM0Uz/4/4fUEsDBAoAAAAAAMVZm0wAAAAAAAAAAAAAAAAM
ABwAbWVkaWEvdHJhY2svVVQJAANxaONavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACzYZtM
sIoQAPAAAADODQAANQAcAG1lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctaG9yaXpvbnRh
bC1zdGRlcnIudHh0VVQJAANhduNaTGjjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZ3SoV
igjd0U0ZrNAWKoiUa5exY7dLyWXdfHunPoIfZHrfAgmEX8L/lw0Ms3uYztJpnMYJQIPdykiNXsqj
c8ivd3ESJW/wkDMTP6agloqc4FkqlIWxVpElbozsvooUjBu1NRvov6cgOkcTeN7COx3hpJ2AEHhE
kB1Cp/u9sO7xFgaL2uOlI5cNrSrWdf5St9VT0bTzTK3qMlM5oBsNkzugE21h1Gx0Z3Fyk/2IohKm
PV45xxJF0WEgbwSLAVmLIXeN3/gDFJ+xKLEXH+7/WxTBTMFMIRnBTMFMwUzBTMFM/+P+H1BLAwQU
AAIACAC0YZtMEPuXAvEAAADODQAAQwAcAG1lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmct
dHJlZS1pcy1yZW1vdmVkLXByb3Blcmx5LXN0ZGVyci50eHRVVAkAA2N241pOaONadXgLAAEE9QEA
AAQUAAAA7ZThSsNADMe/+xR5ABndOqYUEepRpwwstIUKQ8q1ZuzY7VJyWbe9/TZ9BD/I9L4FEgi/
hP8v7RkmdzCeJOM4ie8BamwXRir0UuycQ15O41k0+4CHjJn4MQE1V+QED1KiPBtrFVni2sj6q0jA
uEFb8wnd9xREh2gErys40g722gkIgUcEWSO0utsI6w5vobeoPZ47ct7QqPytyt6rpnzJ6+YpVYuq
SFUG6AbD5LboRFsYNBvdWhzdpD+iKIVpg1fOMUdRtO3JG8G8R9ZiyF3jN/4AxSUWBXbiw/1/iyKY
KZgpJCOYKZgpmCmYKZjpf9z/BFBLAwQUAAIACAC3YZtMZ0+QGQABAADODQAAKwAcAG1lZGlhL3Ry
YWNrL3RyYWNrLWN1ZXMtY3VlY2hhbmdlLXN0ZGVyci50eHRVVAkAA2p241pVaONadXgLAAEE9QEA
AAQUAAAA7ZTdSsNQDIDvfYo8gIxuHROLCPXQdTKw0BYqDCmnNbLDzk5KmtX59k59giHiWnoXSCB8
+fnChmF2A9NZMPUD/xagwGptJMdW0oNzyJu5v/AWL3AXMRPfB6BiRU7wKBnK0liryBIXRrbfQQDG
ddqaV6h/qsA7ehN4fIMPOsC7dgJC0CKCbBEqXe+EdY3X0FjULZ4ycupQquQpj57zMlslRfkQqnWe
hioCdJ1hcnt0oi10mo2uLE6uwl9RZMK0w55zxCiK9g21RjBpkLUYcn3cxgAovt4ixVracf7/RTGa
aTTT+Bmjmf6cYu4NwUxnU1yomc7jiIdyUwOguCQz9Xb+n1BLAwQUAAIACAC7YZtMd2Y5pAcBAABo
EgAAKAAcAG1lZGlhL3RyYWNrL3RyYWNrLWN1ZXMtbWlzc2VkLXN0ZGVyci50eHRVVAkAA3J241pd
aONadXgLAAEE9QEAAAQUAAAA7dThSsMwEAfw7z7FPYCMLtMJRYQa6pSBhbZQYUhJ68nCsly53up8
e6c+goqu5lsggfC/4/9LOgZ1AVMVT2fx+RSgwmZppcRe8p33yKuz2TyaP8Jlykx8FYNeaPKCeylQ
bqxzmhxxZWX9cYjB+sE4+wTt5yuI9tEE7p7hlXbwYryAEPSIIGuExrQbYdPiKXQOTY+HGzn8UOvs
vkwfyrq4zar6OtHLMk90CugHy+S36MU4GAxb0zicnCRfSlEI0waPPMcCRdO2o94KZh2yEUv+GLcx
ghTvtcixlT7M/7dSBJmCTKEZQaafT6FGIZMaiUxqFDKp/9eMPyWTCjIFmYJMoRlBpm9K8QZQSwME
FAACAAgAwWGbTPBqKtb7AAAAzg0AAEkAHABtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLWR1cGxp
Y2F0ZS10cmFja3Mtd2hlbi1zb3VyY2UtY2hhbmdlcy1zdGRlcnIudHh0VVQJAAN5duNaaWjjWnV4
CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZd3NMKCLUo04ZWGgLFWSUa43s2O1S0qzOt3fqI4ho
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
wXJEtuIonONv/IMU37WocJCo+z9VCpVJZdJmqEwqk8qkMqlMun+VSWXSZqhMp0nxBVBLAwQUAAIA
CADXYZtMyJO+bfkAAABoEgAAJgAcAG1lZGlhL3ZpZGVvLWNvbnRyb2xzLXpvb21lZC1zdGRlcnIu
dHh0VVQJAAOmduNamWjjWnV4CwABBPUBAAAEFAAAAO3UUUrDQBAG4HdPMQeQ0tSoEESIS6xSMJAE
IoiETRzp0u1OmJ3GenurHsGHUpm3hV0Y/ln+Lx8ZFteQLLIkzdJLgBb7lZMGo1S7EJBf0ourJHmF
m4KZ+DYDszQUBPdSo9w77w154tbJ+ueQgQuT9e4Nht9XMN/PZ/D4Dp+0gw8bBIQgIoKsEXo7bITt
gOcwerQRDzdymNCZ8qkpnpuufijb7i43q6bKTQEYJscUthjEepgsO9t7nJ3lf0pRC9MGTzzHEsXQ
dqToBMsR2YqjcIq/8Q9SfNeiwkGi7v9YKVQmlUmboTKpTCqTyqQy6f5VJpVJm6EyHSfFF1BLAwQU
AAIACADaYZtMHQD6YvEAAADODQAAJQAcAG1lZGlhL3ZpZGVvLWRpc3BsYXktdG9nZ2xlLXN0ZGVy
ci50eHRVVAkAA6x241qfaONadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABm7uTkoItSjbjJY
oS1UECnXGtmx26Xksjrf3ukeYR9ket8CCYRfwv+X9gyTOahJoqbJTAHU2K6sVBik2HuP/DK9uVXq
Fe4yZuL7BPRCkxc8SInyaJ3T5IhrK5ufIgHrB+PsG3SnKRgfxiN4eodP2sOH8QJCEBBBNgit6bbC
psNr6B2agMeOHDc0Ol9X2XPVlMu8bh5SvaqKVGeAfrBMfodejIPBsDWtw9FVehZFKUxbvHCOBYqm
XU/BCuY9shFL/hK/8QcovmNRYCch3v+3KKKZopliMqKZopmimaKZopn+x/2/AFBLAwQUAAIACADb
YZtMFplwJ/AAAADODQAAJQAcAG1lZGlhL3ZpZGVvLWRvY3VtZW50LXR5cGVzLXN0ZGVyci50eHRV
VAkAA61241qgaONadXgLAAEE9QEAAAQUAAAA7ZTRSsNQDIbvfYo8gIy1ToUiQj3UKQMLbaGCSDmt
kYWdnZScrM63d+ojeCHTcxdIIHwJ/5ePAuklJGmWLLLzFKDFfkXaYNBq5z3K0+LsIkme4aoQYbnO
wCwNe8W91qi35Jxhx9KSrr+KDMhP1tELDN9TMN/PZ3D/Cu+8gzfrFZQhIIKuEXo7bFTsgKcwOrQB
Dx09bOhM+dAUj01X35Vtd5ObVVPlpgD0Ewn7LXq1DiYrZHuHs5P8RxS1Cm/wyDmWqIa3IwdSLEcU
q8T+GL/xByg+Y1HhoCHe/7coopmimWIyopmimaKZopmimf7H/T8AUEsDBBQAAgAIANxhm0wAq2Ws
8AAAAM4NAAAjABwAbWVkaWEvdmlkZW8tZW1wdHktc291cmNlLXN0ZGVyci50eHRVVAkAA69241qi
aONadXgLAAEE9QEAAAQUAAAA7ZTRSsNQDIbvfYo8gIx1VoUiQj3UKQMLbaGCSDmtkR12dlJysjrf
3qmP4IVMcxdIIHwJ/5ePDItLSBZZkmbnKUCL/cpJg1GqXQjIT+nZRZI8w1XBTHydgVkaCoJ7qVFu
nfeGPHHrZP1VZODCZL17geF7Cub7+QzuX+GddvBmg4AQRESQNUJvh42wHfAURo824qEjhw2dKR+a
4rHp6ruy7W5ys2qq3BSAYXJMYYtBrIfJsrO9x9lJ/iOKWpg2eOQcSxRD25GiEyxHZCuOwjF+4w9Q
fMaiwkGi3v+3KNRMaiZNhppJzaRmUjOpmf7H/T8AUEsDBBQAAgAIAN1hm0zGITMm8AAAAM4NAAA0
ABwAbWVkaWEvdmlkZW8tZW5kZWQtZXZlbnQtbmVnYXRpdmUtcGxheWJhY2stc3RkZXJyLnR4dFVU
CQADsXbjWqRo41p1eAsAAQT1AQAABBQAAADtlNFKw1AMhu99ijyAjHVuCkWEeqhTBhbaQoUh5bRG
dtjZScnJ6nx7pz6CFzLNXSCB8CX8XzYwzK4gmaXJPF0sABrsVk5qjFLuQ0Bezy8uk+QZrnNm4psU
zNJQEDxIhXLnvDfkiRsnm68iBRdG690L9N9TMD1MJ/DwCu+0hzcbBIQgIoJsEDrbb4Vtj+cweLQR
jx05bmhN8VjnT3Vb3RdNe5uZVV1mJgcMo2MKOwxiPYyWne08Ts6yH1FUwrTFE+dYohjaDRSdYDEg
W3EUTvEbf4DiMxYl9hL1/r9FoWZSM2ky1ExqJjWTmknN9D/u/wFQSwMEFAACAAgA4GGbTNDSTir6
AAAAaBIAADAAHABtZWRpYS92aWRlby1mdWxsc2NyZWVlbi1vbmx5LWNvbnRyb2xzLXN0ZGVyci50
eHRVVAkAA7R241qmaONadXgLAAEE9QEAAAQUAAAA7dRRSsNAEAbgd08xB5DS1KoYRIhLrFIwkARS
EAmbONKl250wO4319lY9gg+lMm8LuzD8s/xfNjDMriGZpck8vbwBaLBbOqkxSrkLAfllfnGVJK9w
mzMT36VgFoaC4F4qlAfnvSFP3DhZ/xxScGG03r1B//sKpvvpBJ7e4ZN28GGDgBBERJA1Qmf7jbDt
8RwGjzbi4UYOE1pTPNf5qm6rx6Jp7zOzrMvM5IBhdExhi0Gsh9Gys53HyVn2pxSVMG3wxHMsUAxt
B4pOsBiQrTgKp/gb/yDFdy1K7CXq/o+VQmVSmbQZKpPKpDKpTCqT7l9lUpm0GSrTcVJ8AVBLAwQU
AAIACADhYZtM0RciXfAAAADODQAALgAcAG1lZGlhL3ZpZGVvLWZ1bGxzY3JlZW4tcmVsb2FkLWNy
YXNoLXN0ZGVyci50eHRVVAkAA7Z241qoaONadXgLAAEE9QEAAAQUAAAA7ZTfSsNQDIfvfYo8gIx2
/oMiQj3UKQMLbaHCkHJaIws7Oyk5WZ1v79RH8EKm5y6QQPgSfl8+CsyvIJ1n6UWWJAAt9kvSBoNW
O+9RVudnl2n6DNeFCMtNBmZh2CvutUa9I+cMO5aWdP1VZEB+so5eYPiegmSfzODhFd55B2/WKyhD
QARdI/R22KjYAU9hdGgDHjp62NCZ8rEpnpquvi/b7jY3y6bKTQHoJxL2W/RqHUxWyPYOZyf5jyhq
Fd7gkXMsUA1vRw6kWI4oVon9MX7jD1B8xqLCQUO8/29RRDNFM8VkRDNFM0UzRTNFM/2P+38AUEsD
BBQAAgAIAOJhm0zwhAYW/AAAAM4NAAA4ABwAbWVkaWEvdmlkZW8taW5pdGlhbGx5LWhpZGRlbi12
b2x1bWUtc2xpZGVyLXVwLXN0ZGVyci50eHRVVAkAA7d241qpaONadXgLAAEE9QEAAAQUAAAA7ZTb
SsRADIbvfYo8gCw9eIAiQh3qKgsW2kKFRcq0RnbY2UlJs3V9e1d9BBFtnbtAAuFL+L+0Z4guIYyS
8DwJIoAa25WRCgcp9s4hr8/iizB8gquMmfg6AbVU5AQPUqLcGmsVWeLayOazSMC4UVvzDN3XFASH
YAH3L/BGe3jVTkAIBkSQDUKru62w7vAUeot6wGNHjhsalT9U2WPVlHd53dykalUVqcoA3WiY3A6d
aAujZqNbi4uT9FsUpTBtceIcSxRFu54GI5j3yFoMuSl+YwYUH7EosJPB3/+3KLyZvJl8MryZfp4i
noWZ4pmYKZ6FmeL/l4w/Zaap3v8dUEsDBBQAAgAIAOJhm0zajqgY8AAAAM4NAAA9ABwAbWVkaWEv
dmlkZW8taW50ZXJydXB0aW9uLXdpdGgtcmVzdW1lLWFsbG93aW5nLXBsYXktc3RkZXJyLnR4dFVU
CQADuHbjWqpo41p1eAsAAQT1AQAABBQAAADtlN9Kw1AMh+99ijyAjHbzDxQR6qFOGVhoCxVEymmN
LOzspORkdb69Ux/BC5meu0AC4Uv4ffkoML+EdJ6l51myAGixX5E2GLTaeY/ydLa4SNNnuCpEWK4z
MEvDXnGvNeotOWfYsbSk668iA/KTdfQCw/cUJPtkBvev8M47eLNeQRkCIugaobfDRsUOeAqjQxvw
0NHDhs6UD03x2HT1Xdl2N7lZNVVuCkA/kbDfolfrYLJCtnc4O8l/RFGr8AaPnGOJang7ciDFckSx
SuyP8Rt/gOIzFhUOGuL9f4simimaKSYjmimaKZopmima6X/c/wNQSwMEFAACAAgA5WGbTKHe5l7w
AAAAzg0AAB8AHABtZWRpYS92aWRlby1uby1hdWRpby1zdGRlcnIudHh0VVQJAAO9duNar2jjWnV4
CwABBPUBAAAEFAAAAO2U30rDUAyH732KPICMdv7DIkI91CkDC22hgkg5rZEddnZScrI6396pj+CF
THMXSCB8Cb8vHxnmF5DOs/QsSy4BWuyXThqMUm1DQH46PTlP02e4KpiJrzMwC0NBcCc1yq3z3pAn
bp2svooMXJisdy8wfE9BsktmcP8K77SFNxsEhCAigqwQejushe2AxzB6tBH3Hdlv6Ez50BSPTVff
lW13k5tlU+WmAAyTYwobDGI9TJad7T3OjvIfUdTCtMYD51igGNqMFJ1gOSJbcRQO8Rt/gOIzFhUO
EvX+v0WhZlIzaTLUTGomNZOaSc30P+7/AVBLAwQUAAIACADlYZtMKnRPJfoAAABoEgAAIgAcAG1l
ZGlhL3ZpZGVvLW5vLWF1dG9wbGF5LXN0ZGVyci50eHRVVAkAA75241qwaONadXgLAAEE9QEAAAQU
AAAA7dTdSsNAEAXge59iHkBKUv8wiBCXWKVgIAlEEAmbONKl250wO4317a36CF6Uytwt7MJwZjlf
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
G5UilDT0vBk81Y5/K1qKVFPPcB6bZ/o/Vz2emCYY+ANtJuVB7MF6mP0AUEsDBAoAAAAAAK1Zm0wA
AAAAAAAAAAAAAAARABwAcGxhdGZvcm0vbWFjLXdrMi9VVAkAA0Vo41q+d+NadXgLAAEE9QEAAAQU
AAAAUEsDBAoAAAAAAK1Zm0wAAAAAAAAAAAAAAAAZABwAcGxhdGZvcm0vbWFjLXdrMi9wbHVnaW5z
L1VUCQADRWjjWr5341p1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAr2GbTHz3b3PKAAAATQEAAFAA
HABwbGF0Zm9ybS9tYWMtd2syL3BsdWdpbnMvYXN5Y2hyb25vdXMtZGVhZGxvY2std2l0aC10aW1l
ci1hbmQtZXZhbHVhdGUtc3RkZXJyLnR4dFVUCQADWnbjWkVo41p1eAsAAQT1AQAABBQAAACtj8Fq
wzAQRO/5iv2BbC3ZjR2BIdjuqVBCe+ihlLK2N4moojWynP5+7UBzyLnXmWHejE5UsU6ytc5BaaNS
kyaotYJOzkjD4BjfuX22EfduOlqPmwwbvrCT4cw+fmSb7ePWpEWeFPknvHD8kfD9FiXQkZvKfMnA
vqlemfpavOcuWvGjgQNZxz1EgSUAYfZn4l9g0ZsKdvBQU3di7FsEeApBQqkyhJqmkcvJU+v4VtFT
pJZGhsPcvNL/+eo6Yrlg4A7aLc6VOIL1sPoFUEsDBAoAAAAAAK1Zm0wAAAAAAAAAAAAAAAAjABwA
cGxhdGZvcm0vbWFjLXdrMi9wbHVnaW5zL25wcnVudGltZS9VVAkAA0Vo41q+d+NadXgLAAEE9QEA
AAQUAAAAUEsDBBQAAgAIAK9hm0w0ZoeGzQAAAE0BAABNABwAcGxhdGZvcm0vbWFjLXdrMi9wbHVn
aW5zL25wcnVudGltZS9yZW1vdmUtcHJvcGVydHktZnJvbS1qYXZhc2NyaXB0LXN0ZGVyci50eHRV
VAkAA1p241pFaONadXgLAAEE9QEAAAQUAAAAnY/BasJAEIbvPsW8gONuEhK7IEgST4JIe+ihlDJJ
Rl1cd8JmY1+/idAeSk+9zv/zf/MlSq+XKlsmBejE6NSkClOdQys3pL53jK/c7G3EoxvP1mOeYc13
dtLf2Me3LH/KlUnXhVb6HQ4cPyVcX6IEOnNdmg/p2dflM1NXiffcRit+MHAi67iDKDAXIEz5RPwu
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
bnBydW50aW1lL2Jyb3dzZXItb2JqZWN0LWlkZW50aXR5LXN0ZGVyci50eHRVVAkAA11241rubeNa
dXgLAAEE9QEAAAQUAAAArY9Ba4NAFITv+RXvD+RVV1GzEAhqToFS2kMOoZSnvqRL132yru3frwrJ
oedeZ4b5ZlQUF9so3aocYqXjRCcKdyqDVnqkYbCMZ25OJuCLnW7GYZZizd9sZejZhUua7YpIJ0We
59E7PHP4Ef/1FsTTjetSf8jAri5fmbpKnOM2GHGjhisZyx0EgSUAfvZn4j2w6HUJB3iqqP1k7BoE
OHovfh+nCBVNI+8nR43lR0VHgRoaGa5z80b956t1xHJBwx9ouzgrcQTjYPMLUEsDBBQAAgAIALRh
m0xNz2OS5wAAADQJAAAeABwAcGx1Z2lucy93aW5kb3ctb3Blbi1zdGRlcnIudHh0VVQJAANjduNa
TWjjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZ3SqKRYR61CkDC22hgki51sjCbpeSy+p8
e6c+gohM7lsggfBL+P/yUWBxAfNFNk+z9BKgxX5F2mDQauc9ytNZep6kz3BViLBcZ2CWhr3iXmvU
W3LOsGNpSddfRQbkJ+voBYbvKUj2yQzuX+Gdd/BmvYIyBETQNUJvh42KHfAURoc24KGjhw2dKR+a
4rHp6ruy7W5ys2qq3BSAfiJhv0Wv1sFkhWzvcHaS/4iiVuENHjnHEtXwduRAiuWIYpXYH+M3/gHF
ZywqHDTE+/8VRTRTNFNMRjTTb1B8AFBLAwQKAAAAAACvWZtMAAAAAAAAAAAAAAAACQAcAHByaW50
aW5nL1VUCQADSmjjWr5341p1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAsmGbTLHTueLnAAAANAkA
ACUAHABwcmludGluZy9wcmludC1jbG9zZS1jcmFzaC1zdGRlcnIudHh0VVQJAANfduNaSmjjWnV4
CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZ27opFBHqUacMLLSFCiIlrZEdu11KLqvz7Z36CCIy
uW+BBMIv4f/LBoH5Jczm6SxJkyVAQ93aak1By733JE+LZLm4eIarXITlOgWzMuyVDlqR3lrnDDuW
xurmq0jB+hGdfYH+ewqmh+kE7l/hnffwhl5BGQIR6Iagw36rgj2dw+AIAx07etzQmuKhzh/rtror
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
3vOKHvSTVRuVEp5EBLeE83cNo1HGtKqIsy0HWYRNRiHlfTctTcsawyIOiaaAkJJpY4OPAG9eUHQu
uJX8Hm5ceK2773Y3jUoNZho3QC+550MSsh1RWBJQ5bmcb20u7Si2/ivqfLhCL3B7oEUfzukZRCx5
uXd97vhl9rpea0/HnNkoJC+2IvhOCO9FZdbyjcTQzf/iZkZz24+NG1nLr+KY+6PIrleIngPqwwah
6zsMQjVJU2tcx9ZTaXUWMOjAIp0fGJphocDtrP1iKu+B0tdUD72jX1m4uYVd5wub7jgEw3wNYe0S
qWYpJScsx+f5NSuJwVqKs4sUQZXtM8lBkpfzJzVkusnQu2rcdU12mvbM2i//vRYiVOeaKKUGHPN5
/pexsBie+rxIwTxIV1n1+18eJX3EyuQdTZNl9L/ouURJKmWLkHP43598jY/HlNGRQ/2/F6vBxoqY
OnxLj/6fKfYOA+Nljo1pINp/Mh6W6OgPT9w//CcCSqVHe6O9M01OZJb6j52aUmhd4ozDZP+Y8/8/
5rieYNOjoVEHo3oB/DNS/5jzjzn/mPOPOf+Y8485/5jzjzn/mPOPOf+Y8485/5jzjzn/mPOPOf+Y
8485/5jzjzn/mPOPOf+Y8485/z8w55pKkoU259RO1g4N+PPqhdLzwmc6vv8fUEsDBBQAAgAIAFNi
m0xI62a6awcAAOgNAABFABwAcmV0cmllcy9jc3MzL2ZpbHRlcnMvYmFja2Ryb3AvYWRkLXJlbW92
ZS1hZGQtYmFja2Ryb3AtZmlsdGVyLWRpZmYucG5nVVQJAAONd+NajXfjWnV4CwABBPUBAAAEFAAA
AO3X+TfUCx8H8PH1nZoZDWOUuiK7phGiHmRrRJbQyDK2eTAn3QgVN0ueMfp2bS3XyJ5LKDxZx2Ry
7WTPENmyhwxqkG0sY7s9/8Rzzj3Hb6/z/vVzzvt9Po+tr5miURIoGAyGNjcztoHBBGVgMMAR8TOA
1UmNFf7MGebGhnbBAgtjQv4jmhhYd3ZvL6fewO0MjalAgG77CPRxPfBUcYUlFuKMBYm2uyItAIAI
jAzhIeyfgEv4JR7P3q/2ohLair0qesqKPZnUamrbjAzHeNrKmE83gLM7MSKymvMPrZEUPLh4OnZ6
285Soqw/d8RHeDOVITm06ZuNhXLhPX3FKXNx6yM1doHdJcpxbT7RJoA+gjwuw7liFSXh1lfI8CFf
ancNCcG86ZgIkE78mvySw4zq/1MewkP/2i94FZU5qpoiohHI4XvTVWII3oDf72keG+YOgb2sMutV
2XtOE2e/BR0+aSS07Be/cCgf60mYyPg8gzm/5/Vq/0yaIqv1hriJp9KSIeBHbBo+rO74XQoex24h
jY63t1UvMCPGPjWmIhLAKbddJkkivlqtfESbqyvHyQpBsNRK2Nye8N6nV6OHNHtIKAE8yBdvU1gf
TPCqWxEbG12qzerYOw+f8TaL6zb32zyx/TqpjJobZx9WTijvT91oLFOJYeDKauXJ2gNMFyFoD4wM
z/A36FwMOO7zh0uvhkzpgIpeb95jwj5AP5qx0VCpOJWP6lQ3+6O+CLw8IJL4jfi2KZTQk2M28RGQ
5bVGnHJZrKZ5VzHr69QKF7gOm0fs/cNbW4LXOnfdcso9ouWgbaRHMeZFLienjbJbMWgUewhAI3Zo
N4W3lBuHK6fDlvlMk1+JtPE/pV49J3wFVnMRl3L+rdmuwQsN9fqiT4pcMMnDzpm5D+GM3jK2asVf
Fr3WWRqC1sSCGfUP8CI1vRmUOLpWX9frvxL7WnzlExAsxZKZJee2jrtzutxTpnroNkkHMWgAnst9
HzfGRvf7DVg08eHVrRgVcBF3bzIpr3qHP1K8or6G8XR1r7F+dl7K9W5T5BOXIt/HUUyXZCykCs6s
EYMMnT/OR/ELGfT5R+0Kl4ju5pPlp2OEvcKcDUxiVI7JRjxPRbJwGFeCR6/uSIpbu2QIxXhP2xn5
81Y+6Qpj8VPxW59NDS7G3gF8UdM21Ao1dod2ZKuzElkMooGXdaKuBtPPrRey2YupPl91jCECA6Ac
D2+vfDWocyeikRatzrWGA1IoyZ7/ODUmzRh5FWQ3K/bJQyOovhwa9pjik23lyDzRObvMFD5FP+B6
b6wyc1IBD0ocHVx5oGxvtSr6cvvITnOjXboFBgpCZm9RJyO9TpYlNngnBhW1PkBSkwmp3yt+y979
bashqV3q+knIFd4zFutkNB/zzrJcCdjA4nKp8ym3mQuuGJKRzLF7XQm3cWKDyGp/9eCbHYusfHBY
VJs4tzoeSKIogTRS5spivsb8rdlFH7CWOHG1vaqW+mV1oi1d6GydSf+WhuX+a9B1a1bkCYETdpwi
pUE9z7t/7Je6oeENO8Y5VIZcyfiVooibHKPGYc3x5KJ3ig3y0EkhSzWTlsKMvVuCo5tDZSwu8IHN
y695jtShzY7yvE4YZjpBHnS7jmXn+80CERhPcqbS7FP15piW474h4G0w1yXXP+nWnTzhqAB6gMyn
e1rQzadn6Wz+APrtD0dAD1v+uD6VW8Hr44RNYiJmRh+wROdsM2OnmRcH+OQ3TmKbwlCpxTNiNjWq
/Iamcqwrrsc/sIGevnoBp2sjD82A+TYVeNzZhXk+FrBHXFA5N7PHQ3evpVrGEPBLukXVNqfWWzff
jzYMnh6LuJ6KHDWeWOOrjyqnr/9Aq8J/HC4Q83Qk3NHamU4ZroL70IMuCX4kPoRBLii9mupsAa+t
JAlxHgQ4uD2TjqaGbxBeZaGhsL2WC5EZq6pfmq21ybsR76vC4Zc79YWOJD+kiCTEb5cYCqP1GeOj
P5SXHIplBLsySoOExGof3NiszWgyfk6QO+cr6hAbbrzsCnB081IDDMpayvTLbDod1cFKjLYF991d
FclkVoBvzpnv+761X1+wMMG/1xsU/fdMn8IGZbo4a+bEXccSW+ymH+TlPa/ZRu9qQCJ/lvNEOlBR
QCgu+jVmkXk7oem+isyHKhrfslYf2uK1FSSnr4t7mGiJBi+nr9WlfXAL21sRuLsy73gIuu6+20/W
uqUxFQ8nnzbYGvor8GfZk4+aqUqYM6mxk3fYoaQXpkRpwL7iJQ3nRyZx3hggOlbkQdedqXLZ/ox9
wKy5DrU7aNQlsibaFX5l3Nm9UjuNLHet8lBK9mf0QJEYx1Y82eP+22mqNxbz5MZ9jaYBhB4+VEiy
9+IHHj+n5sKbvSU5ZDVxQqGCWHl1NZRi9s16GFnt5h6yrWvFZaV1MLrTjHHY8qz62E31jRu+zn7F
Ko56aMQnPFgpekJNVrauNLF7sHPKMqFeCyXp9j75GknaSedR4D9pVA9wgAMc4AD/X0zMwvcEPWzv
/SKZ71n6vxfO/Mo14+LL7o/+BlBLAwQUAAIACABTYptM9G7VKpkFAABCEgAARwAcAHJldHJpZXMv
Y3NzMy9maWx0ZXJzL2JhY2tkcm9wL2FkZC1yZW1vdmUtYWRkLWJhY2tkcm9wLWZpbHRlci1kaWZm
cy5odG1sVVQJAAONd+NajXfjWnV4CwABBPUBAAAEFAAAAK1YS2/jNhC++1dwDRSSkUjO7t5ixUDq
BGiAFFt0cymCHCiJtolQokpScdzC/73DhyRKlpPt7uZg2eQ8Ps58M0Ml+XDzZfXw1x+36LeH3++X
k2SrCqYfBOfwUFQxssyk/DxfU6aIkPMUZ8+54NUc53kkSMFfSKS/NuuRFYy1oWRuDUwSqfb6ieAv
pgXekBUvFaYlEehfs6r/Ki6pory8RDiVnNWKLNq9AosNhZ2PF9Vrt8prxcCIXUagQ3MkKXshwsoc
zOeo2yWixcZznlNZMby/RCnj2XOj7ulnoCo4k56OBRWlXCleXKJPLbbDmF5ag1jpqe9orraA/RMp
3lBTuR8iCDUtN5fowovEqBrDKWGe5ho2ojUuKIMzRjuSPlMVyb1UpIj03qIvKek/Oqwfx3zYgzSB
OAwcLyHUZU4zrLgYi6/CKSNRRhjrXDZ4Msh6UUaywjrV3X7KRU5EpHgFUW4znTLcZaqFZ9HFkjCS
KeIHT5FXFeUk4wJbmtUlWNUEaowkc0fUZO4qIOX5XheCBo0yhqW8mjZHnVpCJ0osWx+JypdA+3yw
4nJP86spea0MsMhkaIpyrHCk9hXptqaIlxmj2fPVVO6oyrYP/E6zN1RbKmfT5a2TQ2Y1mVvr7/jF
maoxG/FqN97zeW2k/pfHnK7XI/708nvebkDmpC/4Jk6FnpZVrZB1lG1J9pzy16k9fwkdQBHjeYvL
DQgovtkwcm03wtkUGQ2iM2jsLBNbRWsuOv2lk79M5mZ3LAinUWT7DNjfS7QDU1cQI2LOvNJC7+EZ
WGpJ8QOwPCb8EChnx3HmBwC1VDkN5w0YRttQ6RiC5RB86sJeTiZJTl+a+u5PCsfdSpA1fQUavDn2
pst7jnWHjuM4mYNNPfsyQSu1nNA1CnfQGvkuVkSqP+sSrM8mtjM1v+O8Lqpr+QCtKpwtJpMXLFDW
Dq0rlPOsLkip4r9rIvZfTZPjIgwG4y1odDV2ULNNMGjYEqBLry8GRlevwSEZ4Lel2LqNN0RdKyUo
VCIJAy8cwQydoaAlYVyVm2B23hk2UdeGW9hg6pYR/fXX/V0eBv1u2Cgf7COwRPrJaK3R78Dqd9Ah
Us21n4xTm/wOlF3X9TAeHB0cFGLBrHhdKmDHBeyu6zLTU7ERWfGiYkS3xYk909nZiLIdnJrZY5YT
9HnWQhdE1aJcdINabvnOxkSf/bFJ9tPMyhzXul2XCgulV6DKzK7UO4fjE1jbtWDNCUxC4Lgl2dnZ
0pg0GzGU8+0LhPGewqUIEhQG2kpwPoxIT0mKDCyCE7toD2n3+qD6Y47YjDXIdGqMzgO0QrDntsco
optl0ISiH8HWwtMgIIJIou41JWSbTuiTKDR+4QaIaGk6RZctaxC2nmLDpdj0Rh2a2Ha/MGhuWMHA
W4cK7oBkw8X+xpi2fjv+CwIXwoystpTlPVHby8490TUVUhnBmUeg3rHses/MEDgk+DTqY7o5wDoS
cdvhzGTx+/Cw/PpjOZjFblwuOmOuAX2jKVcWY4ZMh/hGM6ZBeUb8s4PGqhYCNNj+K2SvqSzNpXcI
4zU83QXeoI3LpvRT0PHNLx7VvQ/5KAe3taaotdeTHdsKd+fuHI63Eb0DdCKeGK/Gmo2ZyzqwdyWM
/RfM7m4WXgmMGHd4Rw0a6vatQUbdZQFI3iyHVsjoncP75sXFsPaOrXtxGriY9d5FjS/Yx2LgrZPv
XsiOwep3qTUUaz6WOg926Pe8zLLuzjXmt3m4aNXM2yDIP3YXmvP2snDuhvFTJw9nI68gb/Ri8+vL
OvSd+22lAXbntEKrfoY+ztAvzgYj5UZtXSlyL45aWdkmbiQfW0tPi+NK0ZJPtoL7pZAKgp87hS7u
Pq7ux0lsB7SDrkl82Q9XNh76hjgyRIao7SyBF2N3i4X3MftKPLf/KvoPUEsDBBQAAgAIAFNim0zq
dKFtbQIAAI4EAABKABwAcmV0cmllcy9jc3MzL2ZpbHRlcnMvYmFja2Ryb3AvYWRkLXJlbW92ZS1h
ZGQtYmFja2Ryb3AtZmlsdGVyLWV4cGVjdGVkLmh0bWxVVAkAA41341qNd+NadXgLAAEE9QEAAAQU
AAAAjVRNb9swDL33V3DZpQUcpyuQS5YEGLbdhn1g3YAdFYmxidKSK1FOi2H/fVScj67bYUYQy6RI
vvf07OWLd5/e3v74/B5a6Xh9sTze0Lj1Bei17FAMeNPhajIQ7voQZQI2eEEvq8mOnLQrhwNZnO4f
Joc6IWFc37aUQDCJ/rdGYGPsnYuhhy2xYITUhl3SdjGiFX6EXYseInZhQAfGO11PjXPo6uVs7Dh2
T/J4XL8UfBD4uV+Xqw+JhIJfgNmkwFnw9Sm3R7iAm+vr/uEcbZGaVv4KK4a45bBbQEsKwY+ZX+PQ
Def4n0MZt9p8/kdvCf3z0AHbq39jexbeEfPUtsY3uACJxqdtiN05X3RuYsjeTW3gEBcQm425vJnP
K7gef/X86rx/usPNHcn0eD7T8XwWUHhezvuHq6fsl7OD/svZ6JTlJrhHvTkagNxqUo5ksv4Q9CSB
+pQ7cAUFqEigVpKqOCjpkaOojMZRT8mSbwCZpIbvahjaZNY69V72FjJLVIulCrYmW80lYGoyGzC2
AsyUuuAO1d8EyMOALdmyAT11NXzNqUfvKCWEFJxhTKCdREGVAdUJ2rlwKO3A5ph02pC5z2IEa/hY
ACX158hsIDEInUnJgDP9HttxwqnpvSIEl6mGN+jR+HOG9E2KrjCNNisVUYaWmFIpINPt+RhgY7Uv
MtJWaagMmBvSF0qQucBDrqALXIRD4CJ8AcpKo888kDfxDA67HmMNXxTTfcZSpuMq8FiefPDAKoxu
NEz32XQK6gEiFRUUBXlS0XOTsSpTT5DGGGBUUNgoDaPEanWIeuKJM4qfJutjdHbwzWz/3fkNUEsD
BBQAAgAIAFNim0wvhtQ+w3QAAOWZAABJABwAcmV0cmllcy9jc3MzL2ZpbHRlcnMvYmFja2Ryb3Av
YWRkLXJlbW92ZS1hZGQtYmFja2Ryb3AtZmlsdGVyLWV4cGVjdGVkLnBuZ1VUCQADjXfjWo1341p1
eAsAAQT1AQAABBQAAADt/XVU1Hv3PoxLdwjSrZR0CAxdEgICkkO3tJTEwNAprQiIUooIyBBDg3RK
d3e3dNfznvP93Odzc76/3//PetZxneVZ6vCePa/Y+7r2vvaed+qqCnjYlNgPHjzAe6H4XOPBAxT6
Bw+QwZjowN989ghyBv739K0c+K2FjZWFvZu74wMzMyGQkJAAv7kZD7+ZpbCAoAW/oJDFMyF+XjMe
HotnAoRYrcBTHiC5aSjIPCjso9588EDqwYvn0lpeSDu+GGUkcod+1ewv1B+WRuQGkKura6k3Bggf
8mdGULhJaWnxlOQHYZGQtKWSEC5TqmvxPCbnicJhVolAkuMtvbs4062l3BbkP5s7C+ggrpdYr98q
LCz8c/t6Tlh72Gg2iokBi/ghPfLzAExCpMdSqBEPEH/IpCQ8VxA4buL6P3/873+LfEBDWI95/+UB
mFpUyG+lfuLZeTxH/cePAK9G+X/FqxtldgOu9/zvEnRNfLVvC5Pr7s6X4w4nrTMSb5L8bk7GD//8
2kvilKwM2qs7SzeNVvnHihiiKonQn835FMEq57xLJsyjOj2mHVnUJG/eVteQVc1EcdezfnEoeVd7
d3uFA+VIpGmk8Zxh6OZuqBU7HpBl+nLbcHd2tzJm4JQoMAaWLfz1p+bD4ZGS6XZBZZJ0MHovu/uI
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
Wl2bTCqTqzHwAAAAzg0AAEYAHAByZXRyaWVzL2h0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9z
aGF0dGVyZWQtZGVkdXBsaWNhdGlvbi1zdGRlcnIudHh0VVQJAAMrb+NaK2/jWnV4CwABBPUBAAAE
FAAAAO2U0UrDUAyG732KPICMbVYHRYR6qFMGFtpChSHltEYWdnZScrI6396pj+CFTM9dIIHwJfxf
NgjMFzCbpck8TS4BGuxWpDUGLffeo6wvrpJk8QzXuQjLTQpmadgrHrRCvSPnDDuWhnTzVaRAfrSO
XqD/noLpYTqBh1d45z28Wa+gDAERdIPQ2X6rYns8h8GhDXjs6HFDa4rHOn+q2+q+aNrbzKzqMjM5
oB9J2O/Qq3UwWiHbOZycZT+iqFR4iyfOsUQ1vBs4kGIxoFgl9qf4jT9A8RmLEnsN8f6/RRHNFM0U
kxHNFM0UzRTNFM30P+7/AVBLAwQKAAAAAABSWptMAAAAAAAAAAAAAAAAEQAcAHJldHJpZXMvaW1w
b3J0ZWQvVVQJAAN7aeNavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAABSWptMAAAAAAAAAAAA
AAAAFQAcAHJldHJpZXMvaW1wb3J0ZWQvdzNjL1VUCQADe2njWr5341p1eAsAAQT1AQAABBQAAABQ
SwMECgAAAAAAUlqbTAAAAAAAAAAAAAAAACgAHAByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvVVQJAAN7aeNavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAABSWptMAAAA
AAAAAAAAAAAAMgAcAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvVVQJAAN7aeNavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACABSWptMhanlZfAAAADO
DQAAVAAcAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRiY3Vyc29yX3VwZGF0ZV9pbmRleDMtc3RkZXJyLnR4dFVUCQADe2njWntp41p1eAsAAQT1AQAA
BBQAAADtlNFKw1AMhu99ijyAjHUOnEWEeqhTBhbaQoUhJa2RHXZ2UnKyOt/eqY/ghUzPXSCB8CX8
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
NNX7vwNQSwMECgAAAAAAslybTAAAAAAAAAAAAAAAAB8AHABzZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvVVQJAAPwbeNavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACxYZtMf6hJRQcB
AABoEgAANgAcAHNlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ibG9ja3MtdmlkZW8tc3Rk
ZXJyLnR4dFVUCQADXnbjWvBt41p1eAsAAQT1AQAABBQAAADt1OFKwzAQB/DvPsU9gIxtjahFhBrq
lIGFtlBBpKT1ZGFZrlxvdb69Ux9BRVfzLZBA+N/x/yUdw/wUZvN4FsVRBFBhs7RSYi/51nvkBxWd
nJ89wkXKTHwZg15o8oI7KVCurXOaHHFlZfVxiMH6wTj7BO3nK5juphO4fYZX2sKL8QJC0COCrBAa
066FTYvH0Dk0Pe5vZP9DrbO7Mr0v6+Imq+qrRC/LPNEpoB8sk9+gF+NgMGxN43BylHwpRSFMazzw
HAsUTZuOeiuYdchGLPlD3MYIUrzXIsdW+jD/30oRZAoyhWYEmX4+hRqFTGokMqlRyKT+XzP+lEwq
yBRkCjKFZgSZvinFG1BLAwQUAAIACACxYZtM9BUhZAUBAABoEgAALAAcAHNlY3VyaXR5L2lzU2Vj
dXJlQ29udGV4dC1kaXNhYmxlZC1zdGRlcnIudHh0VVQJAANeduNaSmjjWnV4CwABBPUBAAAEFAAA
AO3UUUrDQBAG4HdPMQeQ0iYpQhAhLmkrBQNJIIJI2MSRLt3uhMk01ttb9Qg+aNJ9W9iF4Z/l/5KO
IbiBRRAvwjgMASpstkZK7CU/Oof8HIXLZfACtykz8V0Maq3ICZ6kQFkZaxVZ4srI7vsQg3GDtuYV
2p9XMD/NZ/DwBh90hHftBISgRwTZITS63QvrFq+hs6h7PN/IeUKtsscyfSrrYpNV9X2itmWeqBTQ
DYbJHdCJtjBoNrqxOLtKfpWiEKY9jjzHGkXRoaPeCGYdshZDboy/MYEUX7XIsZXe7/+vUniZvEy+
GV4mL5OXycvkZbrE/UeTkCmaiEzRJGSKLq8Z/0qmse7/E1BLAwQUAAIACACxYZtMcnzdePAAAADO
DQAAMwAcAHNlY3VyaXR5L3NldC1mb3JtLWF1dG9jb21wbGV0ZS1hdHRyaWJ1dGUtc3RkZXJyLnR4
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
4Zfw/6U9QzyFcZyMJ0kUA9TYroxU6KU4OYe8mdzdT2ev8JAxEz8moOaKnOBZSpRnY60iS1wb2X8V
CRg3aGu20H1PQXSORrDcwTud4E07ASHwiCB7hFZ3B2Hd4S30FrXHS0cuGxqVr6vspWrKRV43T6la
VUWqMkA3GCZ3RCfawqDZ6Nbi6Cb9EUUpTAe8co45iqJjT94I5j2yFkPuGr/xDyg+Y1FgJz7c/68o
gpmCmUIygpl+g+IDUEsDBBQAAgAIAMJhm0xjd2g35wAAADQJAABmABwAc3RvcmFnZS9kb21zdG9y
YWdlL2xvY2Fsc3RvcmFnZS9hY2Nlc3Mtc3RvcmFnZS10aGVuLXNldC12YWx1ZS1pbi1zdG9yYWdl
LWFmdGVyLXdpbmRvdy1jbG9zZS1zdGRlcnIudHh0VVQJAAN7duNaZWjjWnV4CwABBPUBAAAEFAAA
AO2U7UrDUAyG/3sVuQAZ3YcMiwj1UKcMLLSFCiIlrZEddnZScrI6796plyAik/MvkEB4Et4nGwRm
S5jO0ukiTeYADXVrqzUFLffekzwt5hfLy2e4ykVYrlMwK8Ne6aAV6a11zrBjaaxuvooUrB/R2Rfo
v6cgOSQTuH+Fd97DG3oFZQhEoBuCDvutCvZ0DoMjDHTs6HFDa4qHOn+s2+quaNqbzKzrMjM5kB+t
sN+RV3QwoljsHE3Osh9RVCq8pRPnWJEa3g0crFIxkKBa9qf4jX9A8RmLknoN8f5/RRHNFM0UkxHN
9BsUH1BLAwQUAAIACADCYZtM04ka8+gAAAA0CQAASwAcAHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2Nh
bHN0b3JhZ2UvcHJpdmF0ZS1icm93c2luZy1hZmZlY3RzLXN0b3JhZ2Utc3RkZXJyLnR4dFVUCQAD
fHbjWmZo41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGd2sDIsI9ajbGFhoCxWGlGuXsWO3
S8lldb69Ux9hDJnct0AC4Zfw/6U9w2QK40kyjpMoBqixXRqp0EtxcA55Fd/dTx/e4TFjJn5KQM0U
OcGjlCgvxlpFlrg2sv0pEjBu0NasofudgugYjWCxgU86wId2AkLgEUG2CK3udsK6w1voLWqPp46c
NjQqf62yt6op53ndPKdqWRWpygDdYJjcHp1oC4Nmo1uLo5v0LIpSmHZ45RwzFEX7nrwRzHtkLYbc
NX7jH1B8x6LATny4/19RBDMFM4VkBDNdguILUEsDBBQAAgAIAMJhm0zTiRrz6AAAADQJAABSABwA
c3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zZXQtdmFsdWUtaW4tc3RvcmFnZS1hZnRl
ci13aW5kb3ctY2xvc2Utc3RkZXJyLnR4dFVUCQADfHbjWmZo41p1eAsAAQT1AQAABBQAAADtlOFK
w0AMx7/7FHkAGd2sDIsI9ajbGFhoCxWGlGuXsWO3S8lldb69Ux9hDJnct0AC4Zfw/6U9w2QK40ky
jpMoBqixXRqp0EtxcA55Fd/dTx/e4TFjJn5KQM0UOcGjlCgvxlpFlrg2sv0pEjBu0NasofudgugY
jWCxgU86wId2AkLgEUG2CK3udsK6w1voLWqPp46cNjQqf62yt6op53ndPKdqWRWpygDdYJjcHp1o
C4Nmo1uLo5v0LIpSmHZ45RwzFEX7nrwRzHtkLYbcNX7jH1B8x6LATny4/19RBDMFM4VkBDNdguIL
UEsDBBQAAgAIAMNhm0yYGhqa5wAAADQJAAA2ABwAc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3Rv
cmFnZS93aW5kb3ctb3Blbi1zdGRlcnIudHh0VVQJAAN9duNaZmjjWnV4CwABBPUBAAAEFAAAAO2U
4UrDQAzHv/sUeQAZ3dwYFhHqUacMLLSFCiIlrZEdu11KLqvz7Z36CCIyuW+BBMIv4f/LBoHZEqaz
dDpPkwVAQ93aak1By733JE/zi8Xy8hmuchGW6xTMyrBXOmhFemudM+xYGqubryIF60d09gX67ylI
DskE7l/hnffwhl5BGQIR6Iagw36rgj2dw+AIAx07etzQmuKhzh/rtrormvYmM+u6zEwO5Ecr7Hfk
FR2MKBY7R5Oz7EcUlQpv6cQ5VqSGdwMHq1QMJKiW/Sl+4x9QfMaipF5DvP9fUUQzRTPFZEQz/QbF
B1BLAwQKAAAAAAC9WZtMAAAAAAAAAAAAAAAAIgAcAHN0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9u
c3RvcmFnZS9VVAkAA2Zo41q+d+NadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAMJhm0zIk4LQ6AAA
ADQJAAA4ABwAc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL3dpbmRvdy1vcGVuLXN0
ZGVyci50eHRVVAkAA3t241pmaONadXgLAAEE9QEAAAQUAAAA7ZTtSsNQDIb/exW5ABndhx8UEeqh
ThlYaAsVREpaIzvs7KTkZHXevVMvQUQm518ggfAkvE82CMwuYDpLp4s0mQM01K2s1hS03HlP8rSY
n12eP8NVLsJynYJZGvZKe61Ib61zhh1LY3X9VaRg/YjOvkD/PQXJPpnA/Su88w7e0CsoQyACXRN0
2G9UsKdTGBxhoENHDxtaUzzU+WPdVndF095kZlWXmcmB/GiF/Za8ooMRxWLnaHKS/YiiUuENHTnH
ktTwduBglYqBBNWyP8Zv/AOKz1iU1GuI9/8rimimaKaYjGim36D4AFBLAwQKAAAAAADAWZtMAAAA
AAAAAAAAAAAAEgAcAHN0b3JhZ2UvaW5kZXhlZGRiL1VUCQADaGjjWr5341p1eAsAAQT1AQAABBQA
AABQSwMECgAAAAAAwFmbTAAAAAAAAAAAAAAAABkAHABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
VVQJAANoaONavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADDYZtM0TA4svkAAABoEgAALwAc
AHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9ibG9iLWN1cnNvci1zdGRlcnIudHh0VVQJAAN9duNa
aGjjWnV4CwABBPUBAAAEFAAAAO3UUUrDQBAG4HdPMQeQktYUIYgQl1ilYCAJRBAJmzjSpdudMDuN
9fZWPYIPpTJvC7sw/LP8Xz4yLK5hvsjmaZakAC32aycNRqn2ISC/pFfLZfoKNwUz8W0GZmUoCB6k
Rrl33hvyxK2Tzc8hAxcm690bDL+vIDkkM3h8h0/aw4cNAkIQEUE2CL0dtsJ2wEsYPdqIxxs5TuhM
+dQUz01XP5Rtd5ebdVPlpgAMk2MKOwxiPUyWne09zi7yP6WohWmLZ55jhWJoN1J0guWIbMVROMff
+AcpvmtR4SBR93+qFCqTyqTNUJlUJpVJZVKZdP8qk8qkzVCZTpPiC1BLAwQUAAIACADDYZtM7b6c
OAcBAABoEgAAMgAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9ibG9iLXN2Zy1pbWFnZS1zdGRl
cnIudHh0VVQJAAN+duNaaGjjWnV4CwABBPUBAAAEFAAAAO3U4UrDMBAH8O8+xT2AjG62FYoINdQp
AwttoYJISevJwrJcud7qfHunPoKKruZbIIHwv+P/S3uGxTnMF8k8TIIIoMZ2ZaTCQYqdc8gP4VkU
hY9wkTETXyagloqc4F5KlGtjrSJLXBtZfxwSMG7U1jxB9/kKgn0wg9tneKUdvGgnIAQDIsgaodXd
Rlh3eAq9RT3g4UYOPzQqv6uy+6opb/K6uUrVqipSlQG60TC5LTrRFkbNRrcWZyfpl1KUwrTBI8+x
RFG07WkwgnmPrMWQO8ZtTCDFey0K7GTw8/+tFF4mL5Nvhpfp51PEk5ApnohM8SRkiv9fM/6UTLGX
ycvkZfLN8DJ9U4o3UEsDBAoAAAAAAMVZm0wAAAAAAAAAAAAAAAAEABwAc3ZnL1VUCQADcmjjWr53
41p1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAxVmbTAAAAAAAAAAAAAAAAA0AHABzdmcvYXMtaW1h
Z2UvVVQJAANyaONavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADIYZtM2wjTQjsAAAA/AAAA
PwAcAHN2Zy9hcy1pbWFnZS9zdmctaW1hZ2Utd2l0aC1kYXRhLXVyaS1pbWFnZXMtZGlzYWJsZWQt
c3RkZXJyLnR4dFVUCQADiHbjWnJo41p1eAsAAQT1AQAABBQAAABzLClJzS0oUSjJV0jNKyxNLU1V
SFQozy/KVsgESiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tTU/S4AFBLAwQKAAAAAADRWZtMAAAA
AAAAAAAAAAAADgAcAHRpbGVkLWRyYXdpbmcvVVQJAAOJaONavnfjWnV4CwABBPUBAAAEFAAAAFBL
AwQKAAAAAADRWZtMAAAAAAAAAAAAAAAAGAAcAHRpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL1VUCQAD
iWjjWr5341p1eAsAAQT1AQAABBQAAABQSwMECgAAAAAA0VmbTAAAAAAAAAAAAAAAACgAHAB0aWxl
ZC1kcmF3aW5nL3Njcm9sbGluZy9ub24tZmFzdC1yZWdpb24vVVQJAAOJaONavnfjWnV4CwABBPUB
AAAEFAAAAFBLAwQUAAIACADRXJtMe61cWckAAABNAQAARQAcAHRpbGVkLWRyYXdpbmcvc2Nyb2xs
aW5nL25vbi1mYXN0LXJlZ2lvbi93aGVlbC1ldmVudC1wbHVnaW4tc3RkZXJyLnR4dFVUCQADKm7j
Wolo41p1eAsAAQT1AQAABBQAAACtj8FqwzAQRO/5iv2BbC1Z2K4gUGz3FAilOeRQSlnbm1RU0RpZ
bn+/dqA99NzrzDBvRmeq2mZmq0tQyuaVzQ2aykAvV6Rx9Iwn7vYu4ZOfLy5gYbDlT/YyXjmkl7xQ
VWZ1qYv78hUOnL4kfhyTRLpwW9s3GTm09TPT0EgI3CcnYbJwJud5gCSwBiAu/kL8Cax6W8MD3DXU
vzMOHQI8xihxpwxCQ/PEuzlQ5/m3YqBEHU0M56V5o//z1W3EesHCH2i/OjfiBC7A5htQSwMEFAAC
AAgA0WGbTKZ8MozoAAAANAkAAE0AHAB0aWxlZC1kcmF3aW5nL3RpbGVkLWRyYXdpbmctc2Nyb2xs
LXBvc2l0aW9uLXBhZ2UtY2FjaGUtcmVzdG9yYXRpb24tc3RkZXJyLnR4dFVUCQADmnbjWodo41p1
eAsAAQT1AQAABBQAAADtlO1Kw1AMhv97FbkAGfuoikWEeqhTBhbaQgWRclojO+wsKTlZnXfv1EsQ
kcn5F0ggPAnvkw0C8wuYzdNZki4SgAa7ldMag5Y7IpSnZHF2fvkMV7kIy3UKZmmYFPdaod467w17
lsbp+qtIwdFovXuB/nsKpvvpBO5f4Z138GZJQRkCIugaobP9RsX2eAqDRxvw0NHDhtYUD3X+WLfV
XdG0N5lZ1WVmckAanTBtkdR6GK0423mcnGQ/oqhUeINHzrFENbwdODjFYkCx6piO8Rv/gOIzFiX2
GuL9/4oimimaKSYjmuk3KD4AUEsDBAoAAAAAAORZm0wAAAAAAAAAAAAAAAAMABwAdHJhbnNpdGlv
bnMvVVQJAAOraONavnfjWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADTYZtMO8gQCfAAAADODQAA
NgAcAHRyYW5zaXRpb25zL2JhY2tncm91bmQtcG9zaXRpb24tdHJhbnNpdGlvbnMtc3RkZXJyLnR4
dFVUCQADnXbjWopo41p1eAsAAQT1AQAABBQAAADtlNFKw1AMhu99ijyAjK2bE4oI9VCnDCy0hQoi
5bRGdtjZScnJ6nx7pz6CFzLNXSCB8CX8XzYwJJcwS9LZIp0vARrs1k5qjFLuQ0B+WswvlskzXOXM
xNcpmJWhIHiQCuXWeW/IEzdONl9FCi6M1rsX6L+nYHqYTuD+Fd5pD282CAhBRATZIHS23wrbHs9h
8GgjHjty3NCa4qHOH+u2uiua9iYz67rMTA4YRscUdhjEehgtO9t5nJxlP6KohGmLJ86xQjG0Gyg6
wWJAtuIonOI3/gDFZyxK7CXq/X+LQs2kZtJkqJnUTGomNZOa6X/c/wNQSwMEFAACAAgA02GbTP1C
RoPwAAAAzg0AADUAHAB0cmFuc2l0aW9ucy9iYWQtdHJhbnNpdGlvbi1zaG9ydGhhbmQtY3Jhc2gt
c3RkZXJyLnR4dFVUCQADnXbjWopo41p1eAsAAQT1AQAABBQAAADtlNFKw1AMhu99ijyAjK2bDooI
9VCnDCy0hQoiJa2RHXZ2UnKyOt/eqY/ghUzPXSCB8CX8XzYIJEuYJelskc6XAA11a6s1BS333pM8
LeYXl8kzXOUiLNcpmJVhr3TQivTWOmfYsTRWN19FCtaP6OwL9N9TMD1MJ3D/Cu+8hzf0CsoQiEA3
BB32WxXs6RwGRxjo2NHjhtYUD3X+WLfVXdG0N5lZ12VmciA/WmG/I6/oYESx2DmanGU/oqhUeEsn
zrEiNbwbOFilYiBBtexP8Rt/gOIzFiX1GuL9f4simimaKSYjmimaKZopmima6X/c/wNQSwMEFAAC
AAgA1GGbTKn/jiAGAQAAaBIAACwAHAB0cmFuc2l0aW9ucy9ibGVuZG1vZGUtdHJhbnNpdGlvbnMt
c3RkZXJyLnR4dFVUCQADn3bjWoto41p1eAsAAQT1AQAABBQAAADt1FFKw0AQBuB3TzEHkNKm1YYg
QlxilYKBJJCCSNjEkS7d7oTJNNbbW/UIPmjSfVvYheGf5f/iliFYwiyIZotovgQosV4bKbCT7OAc
8vNifnUdvMBNwkx8G4FaKXKCR8lR7o21iixxaWT7fYjAuF5b8wrNzyuYHqcTeHyDDzrAu3YCQtAh
gmwRat3shHWDl9Ba1B2ebuQ0oVLpU5Fsiip/SMvqLlbrIotVAuh6w+T26ERb6DUbXVucXMS/SpEL
0w4HnmOFomjfUmcE0xZZiyE3xN8YQYqvWmTYSOf3/1cpvExeJt8ML5OXycvkZfIyneP+w1HIFI5E
pnAUMoXn14x/JdNQ9/8JUEsDBBQAAgAIANRhm0xdM8GB8AAAAM4NAAAuABwAdHJhbnNpdGlvbnMv
Y3JlYXRlZC13aGlsZS1zdXNwZW5kZWQtc3RkZXJyLnR4dFVUCQADoHbjWo1o41p1eAsAAQT1AQAA
BBQAAADtlNFKw1AMhu99ijyAjK2bikWEeqhTBhbaQgWRclojO+wsKTlZnW/v1EfwQqbnLpBA+BL+
LxsEkguYJelskc4vARrsVk5rDFruiFCeFvOz8+QZrnIRlusUzNIwKe61Qr113hv2LI3T9VeRgqPR
evcC/fcUTPfTCdy/wjvv4M2SgjIERNA1Qmf7jYrt8RQGjzbgoaOHDa0pHur8sW6ru6JpbzKzqsvM
5IA0OmHaIqn1MFpxtvM4Ocl+RFGp8AaPnGOJang7cHCKxYBi1TEd4zf+AMVnLErsNcT7/xZFNFM0
U0xGNFM0UzRTNFM00/+4/wdQSwMEFAACAAgA1GGbTEFr1wTxAAAAzg0AAC0AHAB0cmFuc2l0aW9u
cy9mcmFtZXMtdGltaW5nLWZ1bmN0aW9uLXN0ZGVyci50eHRVVAkAA6B241qNaONadXgLAAEE9QEA
AAQUAAAA7ZThSsNADMe/+xR5ABldrRsUEerRzTFYoS1UECnXmrFjt0vJZXW+vVMfwQ8yvW+BBMIv
4f/LBoZ4DtM4nSZpEgE02K2N1OilPDqH/Jzc3M7iF7jLmYnvU1BLRU7wJBXKwliryBI3RnZfRQrG
jdqaV+i/pyA6RRNYbeGdjvCmnYAQeESQHUKn+72w7vEaBova47kj5w2tKjZ1/lS31WPRtA+ZWtdl
pnJANxomd0An2sKo2ejO4uQq+xFFJUx7vHCOJYqiw0DeCBYDshZD7hK/8QcoPmNRYi8+3P+3KIKZ
gplCMoKZgpmCmYKZgpn+x/0/AFBLAwQUAAIACADVYZtMresvgPsAAADODQAANAAcAHRyYW5zaXRp
b25zL2hhbmctd2l0aC1iYWQtdHJhbnNpdGlvbi1saXN0LXN0ZGVyci50eHRVVAkAA6F241qOaONa
dXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABm9WhWKCPWoUwYW2kKFIeVaIzt2u5Q0q/PtnfoI
Itrab4EEwi/h/0s6hvASVBirKI4CgAqblZUSe8n33iOvo7Pzi/AJrlJm4usY9FKTFzxIgXJrndPk
iCsrm88iBusH4+wztF9TEByCBdy/wBvt4dV4ASHoEUE2CI1pt8KmxVPoHJoejx05bqh19lCmj2Vd
3GVVfZPoVZknOgX0g2XyO/RiHAyGrWkcLk6Sb1EUwrTFkXMsUTTtOuqtYNYhG7Hkx/iNCVB8xCLH
Vvr5/r9FMZtpNtOcjNlMP0+hJmEmNREzqUmYSf2/ZPwpM431/u9QSwMEFAACAAgA1mGbTPJm+dj8
AAAAzg0AADEAHAB0cmFuc2l0aW9ucy9pbnRlcnJ1cHRlZC1hbGwtdHJhbnNpdGlvbi1zdGRlcnIu
dHh0VVQJAAOjduNakGjjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZ61kVigj1qFMGFtpC
hSHl2mXs2O1S0qzOt3fqI4hoa78FEgi/hP8vbhnUNQQqCsIoDABKrJdWCuwkO3iPvAovLq/UC9wk
zMS3EeiFJi94lBzl3jqnyRGXVrafRQTW98bZNTRfUzA/zmfwuIE3OsCr8QJC0CGCbBFq0+yETYPn
0Do0HZ46ctpQ6fSpSJ6LKn9Iy+ou1ssii3UC6HvL5PfoxTjoDVtTO5ydxd+iyIVphwPnWKBo2rfU
WcG0RTZiyQ/xGyOg+IhFho100/1/i2Iy02SmKRmTmX6eQo3CTGokZlKjMJP6f8n4U2Ya6v3fAVBL
AwQUAAIACADWYZtMSvJdQfEAAADODQAAOQAcAHRyYW5zaXRpb25zL2xlbmd0aHNpemUtdHJhbnNp
dGlvbi10by1mcm9tLWF1dG8tc3RkZXJyLnR4dFVUCQADo3bjWpBo41p1eAsAAQT1AQAABBQAAADt
lOFKw0AMx7/7FHkAGVvXOSgi1KPbZLBCW6gwpFxrxo7dLiWX1fn2Tn0EP8j0vgUSCL+E/y/tGaI5
TKJkEifxFKDGdm2kQi/FyTnkbTyd3UUvcJ8xEz8koJaKnOBZSpSFsVaRJa6N7L+KBIwbtDWv0H1P
wfg8HsHTDt7pBG/aCQiBRwTZI7S6OwjrDm+ht6g9Xjpy2dCofFNlz1VTrvK6eUzVuipSlQG6wTC5
IzrRFgbNRrcWRzfpjyhKYTrglXMsURQde/JGMO+RtRhy1/iNP0DxGYsCO/Hh/r9FEcwUzBSSEcwU
zBTMFMwUzPQ/7v8BUEsDBBQAAgAIANdhm0xu4lRqBQEAAGgSAAAwABwAdHJhbnNpdGlvbnMvc2hh
cGUtb3V0c2lkZS10cmFuc2l0aW9ucy1zdGRlcnIudHh0VVQJAAOlduNakmjjWnV4CwABBPUBAAAE
FAAAAO3UUUrDQBAG4HdPMQeQ0sZEIYgQl1ilYCAJRBAJm3RKl253wmQa6+2tegQfNOm+LezC8M/y
f0nHENzAIogXYRyGABU2KyMl9pIfnEN+Da+i6+ANblNm4rsY1FKREzxKgfJgrFVkiSsj2+9DDMYN
2po1tD+vYH6cz+BpAx90gHftBISgRwTZIjS63QnrFi+hs6h7PN3IaUKtsucyfSnr4jGr6vtErco8
USmgGwyT26MTbWHQbHRjcXaR/CpFIUw7HHmOJYqifUe9Ecw6ZC2G3Bh/YwIpvmqRYyu93/9fpfAy
eZl8M7xMXiYvk5fJy3SO+48mIVM0EZmiScgUnV8z/pVMY93/J1BLAwQUAAIACADXYZtMXMBIyvEA
AADODQAAMQAcAHRyYW5zaXRpb25zL3N0YXJ0LXRyYW5zZm9ybS10cmFuc2l0aW9uLXN0ZGVyci50
eHRVVAkAA6Z241qTaONadXgLAAEE9QEAAAQUAAAA7ZThSsNADMe/+xR5ABlb7TYoItSjzjFYoS1U
GFKuXcaO3S4ll9X59k59BD/I9L4FEgi/hP8v7RmiOUyiZBIn8RSgxnZlpEIvxck55E18N51Fr3Cf
MRM/JKAWipzgWUqUJ2OtIktcG9l/FQkYN2hrttB9T8H4PB7BcgfvdII37QSEwCOC7BFa3R2EdYe3
0FvUHi8duWxoVL6uspeqKZ/zunlM1aoqUpUBusEwuSM60RYGzUa3Fkc36Y8oSmE64JVzLFAUHXvy
RjDvkbUYctf4jT9A8RmLAjvx4f6/RRHMFMwUkhHMFMwUzBTMFMz0P+7/AVBLAwQUAAIACADXYZtM
V1nCj/EAAADODQAALAAcAHRyYW5zaXRpb25zL3N0ZXBzLXRpbWluZy1mdW5jdGlvbi1zdGRlcnIu
dHh0VVQJAAOmduNak2jjWnV4CwABBPUBAAAEFAAAAO2U4UrDQAzHv/sUeQAZW60bFBHqUbcxWKEt
VBhSrl3Gjt0uJZfV+fZOfQQ/yPS+BRIIv4T/L+0ZohlMomQSJ/EUoMZ2ZaRCL8XJOeRNfHc/jV7h
IWMmfkxAzRU5wbOUKM/GWkWWuDay/yoSMG7Q1myh+56C8Xk8guUO3ukEb9oJCIFHBNkjtLo7COsO
b6G3qD1eOnLZ0Kh8XWUvVVMu8rp5StWqKlKVAbrBMLkjOtEWBs1GtxZHN+mPKEphOuCVc8xRFB17
8kYw75G1GHLX+I0/QPEZiwI78eH+v0URzBTMFJIRzBTMFMwUzBTM9D/u/wFQSwMEFAACAAgA2GGb
TAuG5uQHAQAAaBIAADMAHAB0cmFuc2l0aW9ucy9zdXNwZW5kLXRyYW5zZm9ybS10cmFuc2l0aW9u
LXN0ZGVyci50eHRVVAkAA6h241qUaONadXgLAAEE9QEAAAQUAAAA7dThSsMwEAfw7z7FPYCMbdYF
igg11CkDC22hgkhJ68nCsly53up8e6c+goqu5lsggfC/4/9LOoa5gtk8nkVxtACosFlZKbGXfOc9
8kN0dr6YP8JFykx8GYNeavKCeylQrq1zmhxxZWX9cYjB+sE4+wTt5yuY7qcTuH2GV9rBi/ECQtAj
gqwRGtNuhE2Lp9A5ND0ebuTwQ62zuzK9L+viJqvqq0SvyjzRKaAfLJPfohfjYDBsTeNwcpJ8KUUh
TBs88hxLFE3bjnormHXIRiz5Y9zGCFK81yLHVvow/99KEWQKMoVmBJl+PoUahUxqJDKpUcik/l8z
/pRMKsgUZAoyhWYEmb4pxRtQSwMEFAACAAgA2GGbTPcoRY3yAAAAzg0AACwAHAB0cmFuc2l0aW9u
cy9zdmctbGF5b3V0LXRyYW5zaXRpb24tc3RkZXJyLnR4dFVUCQADqHbjWpVo41p1eAsAAQT1AQAA
BBQAAADtlN1qwkAQRu99inkAEU3TH0IR4pLaIjSQBCJICZs4xcV1J8yOqX372vYRelFs925gBoYz
w3fSniG6hVmUzOIkvgOosV0ZqdBLcXQOeRNfXd9EL3CfMRPPE1BLRU7wJCXKg7FWkSWujey+igSM
G7Q1W+i+p2B6mk7g6RXe6Qhv2gkIgUcE2SG0utsL6w7H0FvUHs8dOW9oVP5cZeuqKR/zulmkalUV
qcoA3WCY3AGdaAuDZqNbi5NR+iOKUpj2eOEcSxRFh568Ecx7ZC2G3CV+4w9QfMaiwE58uP9vUQQz
BTOFZAQzBTMFMwUzBTP9j/t/AFBLAwQUAAIACADZYZtMG6i9Cf0AAADODQAANAAcAHRyYW5zaXRp
b25zL3RyYW5zaXRpb24tZGlzcGxheS1wcm9wZXJ0eS0yLXN0ZGVyci50eHRVVAkAA6l241qWaONa
dXgLAAEE9QEAAAQUAAAA7ZTtSsNQDIb/exW5ABlbrR8tItRDnTKw0BYqiJTTGtlhZyclzeq8e6de
goi2nn+BBMKT8D5JxxCcwyKIF2EcXgBU2KyMlNhLvnMO+TE8OT0LnuAyZSa+ikEtFTnBvRQoN8Za
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
q1d4pxO8aScgBB4RZI/Q6u4grDu8hd6i9njpyGVDo/JNlT1XTbnM6+YxVeuqSFUG6AbD5I7oRFsY
NBvdWhzdpD+iKIXpgFfOsUBRdOzJG8G8R9ZiyF3jN/4AxWcsCuzEh/v/FkUwUzBTSEYwUzBTMFMw
UzDT/7j/B1BLAwQUAAIACADkYZtMvnU5zPwAAADODQAAPAAcAHRyYW5zaXRpb25zL3plcm8tZHVy
YXRpb24td2l0aC1ub24temVyby1kZWxheS1lbmQtc3RkZXJyLnR4dFVUCQADvHbjWqlo41p1eAsA
AQT1AQAABBQAAADtlOFKw0AMx7/7FHkAGV11Oygi1KNOGVhoCxWGlGuN7NjtUtKszrd36iOIaGu/
BRIIv4T/L24ZQgXzMJovomAJUGK9tlJgJ9nBe+TN5cViGT7BVcJMfB2BXmnygkfJUW6tc5occWll
+1lEYH1vnH2G5msKgmMwg/sXeKMDvBovIAQdIsgWoTbNTtg0eA6tQ9PhqSOnDZVOH4rksajyu7Ss
bmK9LrJYJ4C+t0x+j16Mg96wNbXD2Vn8LYpcmHY4cI4ViqZ9S50VTFtkI5b8EL8xAoqPWGTYSDfd
/7coJjNNZpqSMZnp5ynUKMykRmImNQozqf+XjD9lpqHe/x1QSwMEFAACAAgA5WGbTPKERkrxAAAA
zg0AAD4AHAB0cmFuc2l0aW9ucy96ZXJvLWR1cmF0aW9uLXdpdGgtbm9uLXplcm8tZGVsYXktc3Rh
cnQtc3RkZXJyLnR4dFVUCQADvXbjWqpo41p1eAsAAQT1AQAABBQAAADtlOFKw0AMx7/vKfIAY3TV
TSkidEedY2ChLXQgUq5dZMdul5LL6nx7pz6CH2R63wIJhF/C/5f2DPENTONkOkuiW4Aa27WRCr0U
R+eQn6+vZvP4Be4yZuL7BNRSkRM8SYnyYKxVZIlrI7uvIgHjBm3NFrrvKYhO0QRWr/BOR3jTTkAI
PCLIDqHV3V5YdziG3qL2eO7IeUOj8qcq21RN+ZjXzSJV66pIVQboBsPkDuhEWxg0G91anIzSH1GU
wrTHC+dYoig69OSNYN4jazHkLvEbf4DiMxYFduLD/X+LIpgpmCkkI5gpmCmYKZgpmOl/3P8DUEsD
BBQAAgAIAOVhm0w0DhDA8QAAAM4NAAAyABwAdHJhbnNpdGlvbnMvemVyby1kdXJhdGlvbi13aXRo
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
iMpVdd+1rqzKdf3zpBP3mmyQ7cNiav3cYnyNBs1Lkr8PDn869m4efnOMAP8ggF0/u055CdL5W5ia
L+CKv2o22CVMszcGFro4weCXNm+4FuhBu6aSkP/FyOI3C79864+lfyiwjfxgIBc/q4L9Zi35V6Bv
+cFt8NGvfs+MV5TzegEr17KrUXnjDjrXuG9Vuc59q658s6FLXKq31Lt/JOLye+Bk/Xjn7sHdZ4/v
3b9/7+6HuR/PwlksnMXCWSycxcJZLJzFwlksnMXCWSycxcJZLJzFwlksnMXCWSycxcJZLJzFwlks
nMXCWSycxcJZLJzFwlksnMX14yzeuOx4//C7O3efHfz49cF/3nl058Hhk8NPnnx/79ujr/7z3pNP
nsz/HDz/p4cHzxe9Dh8/fvj4ycH3dx5c8w4H/UZ2+Dm/7/m1LQDnjWzZcHd+Os//c/C8dexFs9i1
NoP0D6kZ5Hih+OkPj+dP79158Bvs3HvjgvJCuyy0y0K7LLTLQrsstMtCuyy0y0K7LLTLQrsstMtC
uyy0y0K7LLTLQrsstMtCuyy0y0K7LLTLQrsstMtCuyy0yzWiXd7jAvPN4hLecf23/+OAKW4/ePbP
M68budhvZ0x/B2TMNZnAf+5fvpFOgEusZh/8650H3z29893hdZ34i/X4a+Y1vbkP4gIUh1/46p1v
E3lvX7zL8iGuK6GruLff7ct6jT0Yv5rd06N791/PA3hbms113bj/0J/TazM8+6zePP6vFYsLoNhO
enS+O5x5zwMf3Hvw7cOPnzz9+s0AjHeiZ7w+9ev4el4ejPHBErPecWrxjl+bC2rV9Y9/WSG5qnFf
c8vcwJ3663iWDF9lhK8ywpe22nBnwMcq321ow01tuBm+7AhfdoTvNvTlzoBPcy6ih28uwley4asM
Xbep6zY12c6AB+3nDmpivj3VdZu6bmfAc/FVRvgqQ9ftDGwGwkAa8KC+qGi+6Gy+6NSXm9pwUxtu
asOdAfPwRae+3BkwMRfAmwtHzbcfzZelzXejenxTS29q6U0tvamDN3Xwpg7e1MGbOnhTB2/q4J0B
E/PdqJbeGTBT36Bo+k1Nv6npNzX9pqbf1PQ7A2ZqUWoWpWZR0hac2oJTW3BqC05dwDPgBfKFqy7g
1PSbmn5nwFGsY7qAUxdw6gLO5ivZZunTJzwDXmRLnz7hGTAPl5aaS0vN4tgsjpqPZ8AL5IvfZrXU
npzak1N7cqblM30TnNbT9MVvWmDTpSUtzqk9eQY8qOVTA/MMeFDLp47m1NE8A8VANWCmvjzW0Zw6
mlNHc+poTg3MqV859Sun9uTUfJx6jVOvceo1zrSOpXUsLVtpldKNPAPmYdnSfJxpDUpnSmlRSpeF
NCGnJuRM14nSspUugGtCTi3GM+BBXbzWczwD5w7quVhQ0oKiCTm1GM/AuYNyPbqTKz3HMxAGmoE0
wMegK3kGdgPFgHlYP7Qppzbl1Kac3XKhTTm1Kc+AeTiX0sg8A15kq0O3OnSnPd1Zjr7l1JU8A56+
9373ztamnNqUZ8Cr7q2ubzn1Lac25Rnw5Lz3NSGnnuPUc5x6jlOLceooTh3F2b2RdRTPgJl6Z+s5
Th3FM2Cm3sjdiUB3IqArOXUlz4Bn672vTTm1Kac25dSmnNqUZyAMNANpwMR8ONPZnDqbZ8DErB/D
6jCsDpqhc1gudEen7ujUHZ26o1N39AyYh+ViOHfQDJ16n2fAsy3nRvFsrUGaoWfAYX3S0uqcWp1z
ON3QGZk6I1NnZGqETG2OqasxdTXOgKk7mdDVOMXU1K1BwyccfY8zYOo+8ow8N6wn5/xDq2RqlUyt
kjNgptaxYR0bzlB0V86AmVr6hnMYDZkzYB4WtnOGzEFhm3OaWwY2A7uBMJAGOoHNg1KDuobMriFz
Bs4d1HPZHWU39d1RdkfZHWV3lOIVKw5bHLZ4tjzQzIDXtJhpMbHqsNVhq8NWR6mefj03iqcfnn44
bDhKeC7hKM1zaR60eS7NS9gctjls82zbuTw82/Rs00zTTNNM00zTTNPE0sS6eXTz6A7bHbZ7PbrD
dk9/OOxw2OGww2GHZzscdni2Vil9oF3bZ9f2OQPNgAfdPCgzpRnwoFYpXZ5dl+d8evOgzIO6ps6u
qbPr4ex6OLsezhnYDDisJUcP53ys9BgWFB2aM2Biz8vFzTQWHD189PHRT0d/fHTv0eGnJwvu/3S8
av/kycFnDx8cPX54/+D2/fsP/37w58f3vrv34A//9++vZwX2anK7zmXD12R49R/VG4kfXcdt13E7
A95WzS+8EqIndwb89iohm4qhJ7frye16crue3K4ndwY8W6u9rt0ZMA+r/Wa115PbN2v5ZqXWYNv1
085AN8Dnon12BjYDHtS5oH7arp+2a47temG71tcZ8KBWWc2xXS9s1wvb9cLOgHk4F9ytw7plu27Z
rjm2a47tmmO75tgZcFhLt27Zrjm264Xtu3NBvbBdL+wMeHLe+3phu17Yrhe264WdAU/fW123bNct
OwPm4eRQL2zXC9u1vnatr93Ncrpe2O5mOV1zbNcc2zXHds2xXXNs1/radbrOgKM49dvPFRSnfvvw
9J0Lup1Odzudrjm2a47tWl+7++t0vbAz0A04rHVML2zXC9vdcKdrfe3untO1vnY3y+laX7tO167T
tet0nQFPzrKlF7brhe16YbvW1671tet07Tpdu07Xro91BrymVimNrV0fa9e22rWtzoCjxLmDei4W
pWIN0rbata12basz4LA+j2pK7ZpSu6bUrim1a0rtmlK7ptSu5bRrOe1aTru7+HR38emaUrum1K4p
tWtK7ZpSu6bUrim1a0qdAROzKGlK7ZpSu6bUrge160HtOkx7dS6l5bRrOe1aTrsO065/tOsf7e4m
NAMe1Bqkw7S731DXctq1nHYtp13Laddh2rWLdu2iXbto1y7a3W+o6x/t+ke7/tGuf3QGPH2nThpK
uzsSzYDDWpS0nHYtp13Laddh2nWYzoB5OHXSYToD50bxbC1belC7HtSuB7W7M1J3Z6SuS7XrQe16
UGfAYa1jelBn4Nwonr5ly92VursrzYCJWbaqZUuna3/pdJ3/9PZnr/zEDJ1UaXntWl5noBgIA82A
o1jQwvrlzkxdD2x3Z6auB3YGHNYKpym2a4rtbtU0A+Zh/Qrrl3s3dbdq6tpmu7bZrku2a4rt7szU
3Zmp65LtemC7GzF1m8a7PeLdHvFuj3h376Zu03i3R7zbI97du6m7d1O3abzbNN5tGu82jXc3c+ph
uXJ3p+7uTt3dnbqd6DNgYtYvN4TqtqZ3W9O7G0LNgMM6D7NXvdurPgNeD+uX3ezdbvZu83q3eb27
ZVS3m73bzd7dQ6q7h9QMVANhoBngetje3m1v7+4y1W1v77a3d9vbu+3t3fb2bnt7t729297ebW/v
trd329tnwEytY25h1W1v77a3d9vbu+3t3fb2bq96t1e925rebU3vtqZ3W9O7rend1vRu43l3c6lu
W3m3i7y7dVS3aXwGPBcnVW4u1W0r7+4l1W0r73aRd/eS6i/byud847NbP/+Jcyd7w2fAo1tqbBbv
9oZ3W8G7reDdVvBu53e387vb6N3dZWoGqoEw0AycO2g3wAeU1g33oeo2enf7urt93d2+7m4bd7dr
u9u13e3a7m5M1W3j7u5U1e3r7vZ1d/u6u33d3Z2quhtTdRu9u43e3Y2pup3fPX0GPNmp6t0W8q5p
de6t19hO/fA/Pr1/dO/uw/ufnP3l4PHT+4cHT46ezf/ee/Dk8Ojg1q3t45++P7qepc/L53EBdMFa
8H13n+jb8BLqG/bYePe1+1+zyP/94eMfThEZFx3+35//ypO3+dAukMVlABvvcK0vNcxaVl/L6mtZ
fS2rr2X1tay+ltXXsvpaVl/L6mtZfS2rr2X1tay+ltXXsvpaVl/L6mtZfS2rr2X1tay+ltXXsvpa
Vl/L6te/rP4eN85449LYouIuKu6i4i4q7qLiLiruouIuKu6i4i4q7qLiLiruouIuKu6i4i4q7qLi
LiruouIuKu6i4i4q7qLiLiruouIuKu41UnHf41LZzW4FfEUb2l7Ap/fmk37bHWrf55as13fiv91d
dT94U/Db70T7rh/3b8OXfLN7v9d/uPJwQ5fh7veHd384uH/n2cOnRwdH31/LbfzNwx8/eTB17Mkn
/3asZo8Pf3z4t8PPvr93/5urd6D/wlU/f4o3fc1fJPWGK3EZf/h//Ld//ed5Ev/j8H8/nT/42el+
czhP9Xhn+x+ffDqnkLd+7WQ5wJPDB/Mknz24e/D1/Ic/PDm4c/x/jtP6wHjzFy6kr/sqfzAMkNsP
np2gDa4Ktp8+EKfz13T+6irhDNg/5iOzq4TdVcLuKuEMmJjN8C4bdpcNu8uG3WXDGTAxn7LTp+z0
KduVxu5KY3elsbvS2F1p7K409vQp25XGGTAxH6pdi+yuRc6AifmU7Wpld7VyBkzMllVXK7urlTNw
blivh4/drmd21zNnwOvhY3f6lO0CZ3eBcwY2A7uBYqAaaAbSAIm5BNpdAu0ugXZXPLsrnt0Vzxnw
9O2fd8VzBszDZ3mXQLtLoDNgHj7LuybaXRPtronOgIn5tN9949h9/O++cey+D+i+gux2yro2OwNm
ak125XUGPKj1tFs+XZvtrs1212a7C60zYKYWx25xdCl2Bs6N4jW1OLp6OwOevsXR5dwZMDGLo+u7
M2Ae1sJuLXTBdwa8QL6CdAW4uwLcXQGeAROzWrpGPAMmZse/a8TdJeHuknB3Sbi7JNxdEu4uCXeX
hLtLwt0l4e6ScHdJuLskPAPdgJn6otM14u4acXdJeAZMzALronF30bi7aNxdNJ4B87DAumjcXSOe
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
bo5Y8+EhNN7hsl30k3k7WNBbTm7+wVXiWjFI//nkmngM71i/L65SV13K31qdryjlN+5Ls+AMC86w
4AwLzrDgDAvOsOAMC86w4AwLzrDgDAvOsOAMC86w4AwLzrDgDAvOsOAMC86w4AwLzrDgDAvOsOAM
C85wDXCG97gfzXvErb+H/ruFuViYi4W5WJiLhblYmIuFuViYi4W5WJiLhblYmIuFuViYi4W5WJiL
hblYmIuFuViYi4W5WJiLhblYmIuFuViYi/eAufgQ1gNvZHP4uOAq4b8ffv3Z42ePjh7e/su/fPLN
4eN7fzv86ut7R0+++uHw2UmCXz36+odvvt2/Ovzx0dGzk/9+fJzodbEr3tYj++L6vuspXcA+/O7n
ds170L+jsfVav3I3uzD9ukv+Xk7/QwYwXLY0XZWD+zcEevmQP77f9NW78Utynef5Rlv80Pg6NL4O
ja9Dn+vQ5zoDzot8BNLnOvS5Dn2uQ5/r0Oc6tLUOXaxDF+vQxTp0sQ5drEMX69DFOgNeIJ+auk9N
3WXC7hskrbFDa+zQGjsDZuqjmF7ZGTAPn7y6L4w0zw7Ns0Pz7NArO/TKDr2yQ6/s0Cs79MoOvbJD
r+zQKzv0ys6AifmgpXl2aJ6dARPzQUs37dBNO3TTDt20Q/Ps0Dw7NM/OgIn5nko37dBNOwMm5jv7
7osr/bZDv+3QXju01w7ttUN77dBNO3TTDt20Qzft0Dw7NM8OzbND8+wMFAMm5lOk5tmheXZonh3D
Iq01dgYcxRKs8XVofJ0BT8737Rpfh7bWoa11aGsdmlaHptWhaXUGPBeLoy7WoYt16GKdAS+hL500
rQ5NqzPgKNZCXaxDj+rQozq0pA4dqEPD6RjWMX2mQ1vp0EU6NI0OTaND0+gMmLoFRQfo0AE6zvk7
x6svjMqtW6/e6seBMNAMDAKv3qbHAQ+6edDNg7563x4HzHRz2Ffv2+OAeezm8eptehzYDZz7FVMv
ZlrMtJhpddjq6VcPWj1GeLbhMZqjNE+ueS7t3DEcNr2m6QVKD5oeND259Ip1U++ebTePbh7dPLqj
DK/H8KDD1M/dL4MLhG3wOLAbKAaqgTCQBsgDl+BxwDw28/A23bxNN+/KbTs3rKe/m4d3JbbB44DD
7p7+bh6712M3MW/kzRt580beyrljeHLVK1Y9aPWg1YOGFyjMNBwlPKi3+hbnRjF1iwGmwOOAw1oM
MAXOQHrQ9FwsF5vVYbM6bFaHzWKwWQy27rBWh83qgAfwOHBuWK9p95oOExsmZkHZhqNYUDYLyn7r
loHNQDEQBhhlt1zslovdcrFbLnbLxa6q79aP3fqxWy52q8OuiO+Wi91ysVsudsvFvp/Lw6vuzAD/
3nHATIuZWnJ2Sw4Ov+OAmVqUdmvQ/qLkzG/f/Ir+/CfnfteztBjtzip2q9NuddrDs7RcYRc8DpiY
5Wq3Ou3OXXbLFf7B44B5WNDwrx0HzMMKh3/tOGBilrzdkrdb8nZL3m6F261wuxVud7qzW+H2fm4U
T98Kt1vQdqdMuxUOh9txwGEtebslr1jhinOoYskrzqGKU6ZiDSw+txSLYrGgFZ9KigWtOCEqzn+K
Ba1Y0IoFrVi/iuWqWFmKhQSb2HHAX/EhpFg/ivWjWC6K1aFYHYpzl2J1KBaD4tyleGcXZybFO7t4
Zxfv7OKdXbyzi3d28c4u3tnFO7v4qFPSxJzuFItB8d4v3vvFe7947xdv9eJkpngjFx+Gind28c6u
zl2qd3b1vq3OXao3cvW+rc5dqnOX6lSlemdXpyrVW716Z1fnLtVbvXpnV+/s6lSlemdXpxnVWcWJ
Peu3t8b5j70s+r5aIn5plf/JK6d4bL17546at18vPcMHzC+ur8GqGlWd7FYfuKsqVn1zVlWxqopV
VayqYlUVq85xqypWneNWVaw6x61OaatT2uoMtip8VZ2r6lz1hV1Vo6oaVdWoqkZVNao6Ya2KVvWR
vKpiVRWrqlh1BluVtaqsVWew1RlsVdbqOVlzwhpOR0NZC9+ah7IWzk9DnQvnp6HwhcIXPrSHShgq
YaiEoRKGk95Q+MI5bih8ofCFc9xQCcNH8vCRPNTK8JE8fOAO58nhA3f4FjAsW2HZwvF3HDAP61hY
x8LZeFjYwsIWFrbw8T6sdOHjfVj6wvl6WOnCShdO4MPSFz7Nh5UuLGxhYQsLWzhfD+frYekLJ/Dh
BD4sjmFxDItjWBzD4hgWx7A4hsUxrIVhLQxrYVgLw9IXlj5MgscBL5APAWG1DKtlWC2bTwXNp4Lm
836znjYfE5r1tFlPm+WzWT6b5bNZPpvls1k+m+WzWT7bdi4xL5BPFs0C2yywzQLbLLDNAtt8Cdos
sM0C2yywzQLbfDppvplo5dywnr71tFlPm+WzWT6b1bJZLZvFsTnJa5a+Zulrce6gnoulrznra9bC
Zi1svu5oTgOb1bL5/qNZLZuvO5rls1k+m+WzWT6b5bNZPpvls1ktm9WyOS9s1sJmLWz93Ch+LtbC
ZulrVrpmYWsWtrSwpWUrLVvpvDAtW+k0MK1jaR1L61hax9I6ltaxtGylZSstW2nZSstWWrbSNyRp
HUvrWFrH0jqWzhzTwpYWtrSOpXUsrWPpVDKdSqaFLa1j6bwwLWxpYUvnhWmlSytdOi9MS186L0xr
YfrAmxbHtNKllS6tdOkDb1r60tKX7dywnr6lL505pqUvrXRppUsrXVrp0kqXzgvTSpdWunRemE4D
01qY1sK0Fqa1MH0kTld50uKYThTTaplOFNPymU4U0/LZLZ/deWF3Xth98O5W3G7F7Vbc7syxW4K7
JbhbgrsluFuCuxW3W3G7M8duCe6W4G4J7lbc7np6twR3S3C3BHdLcLfAdgtsd6LYLbDdetotn92J
Yreedp/EuzPHboHt1tNuPe3W02497ZbPbvnsPlZ3H6u75bM7t+xxblhP3/LZLZ/datktjt15YXca
2C2O3VrYrYXdWtjz3LCei8WxWxy7xbFbHLvFsVscu7WwW/q6pa9b+rqlr1vpupWuj3PDcvrD0jes
dMNKN6x0w0o3LGzDOjYsW8OyNSxbw7I1LFvDojScFw6r1LAGDWvQsAYNp4HDGjSc5A1r0HCSNyxK
w0neKOeG9WwtSsOiNJwGDqvUcBo4LFvDsjUsW8OyNZwGDuvYsEoNp4HDaeCwbA3L1nBeOJwXDueF
w8I2nAYOC9twGjjauTw8/eel78Lrpr9mh33/mzxffHPth0+PTnfXfv1e5L+wzvrrp3/dTuKbpg5c
tzf//azGvo3/vV09D+Jym8G/+n29AMXh3OHf4nwvNcwyBS9T8DIFL1PwMgUvU/AyBS9T8DIFL1Pw
MgUvU/AyBS9T8DIFL1PwMgUvU/AyBS9T8DIFL1PwMgUvU/AyBS9T8M2Zgj8ENv7ygS4f6PKBLh/o
8oEuH+jygS4f6PKBLh/o8oEuH+jygS4f6PKBLh/o8oEuH+jygS4f6PKBLh/o8oEuH+jygS4f6Hvw
gb7HpbLny2Qvxjk6/Onom8PjIz0+uPvw0bMXzNmL+vBuP3j2z/OfX9yK9+ahL2CJu8A+zacWxr8d
3j2a1+baPJiXTOI9mjIvzwi+wOd1xZf1pq20v4p3vvfgyaP5oZ36h598/OjZH0//+unt587iazqH
m6M5v/orf3l29P3DB3+9+/jeo6Pr3Ir8wvfMe71h39uN+i4n9qYb9Y2a86sF+apTvmoW+xtv1uuG
BjzP7JuHP37yYF68J5/827Ewz5v9/p27h599f+/+N29Q1EsZ+q/8A3zrzduvddw3nvU7eO4vm9b5
AnfTSV0frf89XNg33SgXnf99gLtM/Ia2jLjiWc87TCd+A7X9TeSN4+c6ny99pTV8vT98pTV8pTV8
gzV8gzV8gzV8gzV8gzV8gzV8gzV8gzV8vT98pTVc6hy+4xq+4xq+vB++0hq+0jrnFR680tpu8Upr
BnYDxUA1EAaagTTQDZjYZmK8BZsBM93MdDOxzcQ2E9sdZXeU3VF2R9kdZT83iqe/e/rF0y8mVkys
mFgxsWIexWGrB60etPrpV0epnn54LuG5hMOGw4bDhsOGJxde5GYezYM2D9o8aPOgaabpMdLrkeeO
4cfQvUDdC9Qdtnsu3WG759LNo5vH8IoNExsmNkxsmNgwsWFiVqnNKqVle9OyPQPNAKPov970X2/6
rzf91zMQBhx2dxQrjO7qGXAUK4zu6k139aa7ega8plYY/deb/utN//UMmIcVRof2pkN726p5VC+Q
JUfL9gw4bHXY6rAvatD8wk6Z/PlPHC48S0uNZu5NM/emmXvTuz0DDpv+Snph0k/MYrTluYN66axO
m9VJM/emmXvTzL1p5t40c296tze925tW7U2r9qZVewYcZXi21h7d3Zvu7k0z9wzsBsKAx7DU6N3e
tGpvWrU3rdozkAbODcu3UO/2DJiHxUgz96aZe9PMvWnm3vRub3q3N73bm97tTav2plV706q9adXe
tGpvWrVnwMQsRrszpN3qtFuMNHVvmro3Td2bpu5ND/emh3vTkL1pyN40ZG/arTft1jPguTj/0X+9
6b/e9F9v+q83/dcz4MlZtjRkbxqyZ8DErGMasmfAYbvDOqnSkL1pyJ6667CWnGKF0Uy96Z3e9E7P
QDNwbhQyLZacYsnRTD0DjmIN0l09JxWenCWnWHK0W2/arTft1jNgYk6IijWoON0pVphihdGyPQMO
a0Epzm40dc+AefjIpe170/Y9A56tFUbb9ww4rA9U2r5nwJNzUlOsMNq+Z8CDWmG0fW/avjdt35u2
703b9wz4UVpQ9IFv+sA3Xd6bHu5ND/emh3sGvISWC03dM+DJOe0pTnv0gW/6wLdyrgY57Sk+g2kM
n4FioBoIAx7UiZHG8E1j+Aw4rFVKY/imMXzTGL5pDN80hs+AeViUdIpvOsW36iynWnJqOfcrfC7a
sTfN1jPgMawOmq03vdWbVupNX/Sm63kGPH2nCpqcZ8DT9zat3qbV21Rf9KYNetPTvOlp3vQ0b3qa
Ny3Mmxbm+XzpJfQ2rd6VWpi38BYLJwLhs4cW5k0L86aFedPCvGlh3rQwb1qYNw3Km37kTT/yDDiK
t1h4i2lQngGHVeb1I2/6kTf9yJv24xlwFHVfg/KmQXnToLzpR950G2+6jTfNxZvm4k1z8aa5eNNc
vGku3jQXb5qLZ8DEnCpoP940F296iWfAX1HVNQZv+oA3fcCbPuBNH/B24gO+oR6sD6f76uBf7zz4
7umd7w6vr7/pjSSRTcv1psN602G96bCeAb8Dlmot15uW6y2cYmm53rRcb1quNy3XW5wr5k6gtEvP
QDHQDKSBbsBRLNXapTft0pt26U279KZdetMuvWmX3rRLb9qlN+3SM2Aezqi0S2+6ozfd0Ztm6E0z
9Kb3edP7vDVLtTblTZvyDHhyltlmmdXZPAMmZpnV6rzpbN50Nm8amWfAPJzZaWTeNDLPgMM61dPI
vOlb3vQtb/qWN33Lm77lTd/yDJiYJadZcjQyb9qUt2b9aJYLbcqbNuUZMPVxbhRS17c8A5uB3UAx
UA2EgWYgDZCpVudNq/Oms3nT2bzpbN70LW/6lmfAs3W6qG9506a8aVPetClv2pQ3bcozYB5WGE3I
mybkGXBYX0Sn88f0RZK+5U3f8qZNedOmvGlT3rQpb9qUN23KM2AeVjp9y5u+5U3f8gyYh5VOZ/Om
K3nTlbxpQt40IW9pHdOVPAOe7YvCNmcV8dkrP3F8y5Xm403z8ab5eNN8vGk+3rQWz4BnaUHTa7zp
Nd70Gm96jTe9xpte402v8QyQqdbiTWvxprV401q8aQvetAVvuoBnwINarrQFb9qCN23Bm7bgTVvw
pgt40+O76fGdAUexXHUfd/X4bt3HXU2/W7d+6QLedAFveny3bnXS9Lvp8d30+G56fLduMdL0u2n6
3fT4zoCnbzHSBbzpAt50AW/dYtSddmkL3rQFb936pU94687DNA5v3YLWrV86iTd9wps+4U2f8KZP
eNMnvGkL3rQFb7qAt+5zXLdsaQvetAVvuoA3Tb+bpt9Nj+82rEGafjc9vpuW3m1YcoYVRgfvpmF3
07C7adjd9Odu+nM3/bmb/txtOP/RsLtp2N2G8x/9uZt23E077qYdd9N9u+m+3XTfbrpvN822m2bb
TbPtNiwXw8mM7ttNs+0MeJEtF8O5i2bbTbPtptl202y76Zzd7LDe7LCeAQ/qM5gd1tuwGNhyvdly
vdlyvdlyvdlyvdlyvdlyvdlhvdlQvdlQvQ2nLPZPb/ZPb7ZL77coBrvd0butzrutzrutzruNzLub
L+02Mu/2Le/utbS719JuI/Nuz/Fuz/Fuz/FuR/EMNAMmVkysOGx12Oqw1dSreVQPGv5KeE3DY4Tn
Eh60mWkz0+awzWGbw6bHSL9S6THSi9w9RjeP7kG7B+0m1s+N4kfZvUDDCzQcdjgKN+Fur+9ur+/u
bky7my/tNv/uNv/u7sY0A5yL3cC73cC7vb67WyvtNv/u9vru9vrubq202+u72+u72+u72+u72+s7
A55cMbFiYsXELAZ2A+82/+42/+42/+42/86AiVXzsBhs1TyqeVgu3OJp38I8LCg2Ae82Ae/u17Tb
4jsDpt5MvTlKOzeK55KeS/ovrA6b977duPs2/BXvbJtvd5tv9+3crT48OWbju823uzspzUA1EAba
VS/5vZsD78Vi3I1Y8V7jrLxxK+c1+TPf2rr7JmftW0JCPoBt7K/jXC+5KfzB4U/H98HhN8e7w/92
1sHPbVL/Nqd7UUv265EAp3f5ZfBCl1q3f/VX//35aE/+UYrfBTkfP7vGF/3Q3sLw/7fDx/Orc+f+
wf3Hx9+VS32klysOV5TcPwJTYHWkrI6U1ZGyOlJWR8rqSFkdKf9oHSm/DabQ6ptZfTOrb2b1zay+
mdU3s/pmVt/M6ptZfTOrb2b1zay+mdU3s/pmVt/M6ptZfTMfdN/Me9x5540LeYsmvWjSiya9aNKL
Jr1o0osmvWjSiya9aNKLJr1o0osmvWjSiya9aNKLJr1o0osmvWjSiya9aNKLJr1o0osmvWjS10CT
fo9LZDfHnr6mXa9/Zr/8RzJbX/dJXwtZ/IO5vFe72fYv2VsvY2z9JXvHhZzZb9wV/dqc2Te2Q/yl
r+3VgCXe8JFcwLx807vWv+uX8GWaT4/u3b+e+/9CReviA99+8Ozki/tuRIGz8307H9ZFS+3laAE3
UvgFIXw9h/rh4Md7Px4e3Hly8OQ54uHqQQIXc87vLkrsrkHMwG7ABiObcV1h2F0u2F0MmAGPYQ+f
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
Z77YIl9skS9CeIoQnmITfbGJvthEX0TsFJvoi030xx2zBrxATpjsqi921RcBOsUm+iIvp9hVX+yq
L/bMF3vmiz3zxRb54xVkAx7UmYsd8cWO+GJHfJGoUyTqFFvkiy3yxRb5Yot8sUW+2ABf7Hcv9rsX
4TfF9vYi6+b4VYEBz9b7dvc2tVe92Kt+PKU00Ax4UG9C0TZFtE0RbVNsXi+ibYpom2J7e7G9vdi8
XsTSFLE0xTb249M14Nl6E9qkXqTQFCk0RQpNsa+9SKEpUmiKje7FRvcilqYUb2SxNDNgHt7Z9sAX
e+CLPfBFks0MmJjFoDhVkHUzA2ZqdZCGU2yxLyct9hdbu/ru8Ojg2MZ2cO/Btw8/fvL069c6/d7S
mXzTNuMP9lcuvsH043vffHf43DL62l2039H6ezUmyivYrPeXvoY35Py8rBX9aoZ/yzvpcruUv/Il
uuii9g3epzcHOrh5FMSFmw3ejYW/rLnLmrusucuau6y5y5q7rLnLmrusucuau6y5y5q7rLnLmrus
ucuau6y5y5q7rLnLmrusucuau6y5y5q7rLnLmvtO1twPYWPoa2HR/+eTK6KDv7ET4p050vsb+L9X
sLb9LouWb8uDvnZI+I31FFzRJ3wZoPnyoi8v+vKiLy/68qIvL/ryoi8v+vKiLy/68qIvL/ryoi8v
+vKiLy/68qIvL/ryoi8v+vKiLy/68qIvL/ryoi8v+o150d/3Vuk3tqHu9W9pe5Fl6m8e/vjJg3m1
nnzyb8fX7HjV+7OHD44OH1zDxrEvzvgNg17Ufvz6tfrr+rjeNOq1dxa8JVThl75mJ8v0B3+/d/T9
wfeHd2ZGHz969se7J5/Fpw8ePjg4/PHR0bPfHS/rf3rn6Tf3Hn5y5963316j3/ovz46+f/jgr8/z
ut496V97/73lhbnJZokrcKZf5wbm+zvU20td/ePbaab6twt/Tc7v4n59X84r+m79eO+bex8SseC3
8+34271vDh9+8vfv7xwd/u2mPq03j3Z1tefs23+TledSt8EvfNPO34Dv83v2Duf23qvDybf7zt/u
3ZzMHZei6/2yXeWl+fb+vese6N6Pd747/OQ/Hx1+dx0Yrav7+F6thB9+vbjiYvzBnvCV/erFOUpX
9J3/7t63N/fFnUXuhvhJV1d6bqBOXg7udXD406PDu0eH37weFXeVX5KbnAy9LMUfpEJd6qHlXecW
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
zmh+8e2Vl3NtOdeWc20515ZzbTnXlnNtOdeWc20515ZzbTnXlnNtOdeWc20515ZzbTnXlnNtOdeW
c20515ZzbTnXlnNtOdeu3rn2IWy4/Hpu7pNXkpuPLuVdydSvzeodyKSvkOd/fHr/6N7dh/c/OfvL
wZN5+Q5u3bp1cPjTo8O7R4fffPzT90e/frRyq374nNOrYPRf8EpdgCd+8S28l3tyuSeXe3K5J5d7
crknl3tyuSeXe3K5J5d7crknl3tyuSeXe3K5J5d7crknl3tyuSeXe3K5J5d7crknl3tyuSevzj35
vrfu/lC3dvxNLHm++1bC5xY+nzx9dPybnzz5+53jDULv3/txnuiD7z6YLXUvmvCbNkm94Erv1W0o
e8O9A1ez9Xxc/Z7ezxP75uGPnzyYRePJJ/82//uv954cHfzL0eHjO1/fP7zGXcSv6HJcZvX/TSd6
0Z3JX/9VOf2W/G1+bWf1vTYf+SWTeH/f+5vbx90S/lz/Du58Oz/jg5nFo4cPnrzpG33TW7rf5Ibm
b/r6X8dHeTHkQdMX3vSFN33hTV940xfe9IU3feFNX3jT9d30dDc93U1Pd9PC3bRwNy3cTYN206Dd
NGg3DdpN63TTOt20Tjet002ndNMp3bQ9N23PTZdz0+XcNDU3LctNy3LTsty0LDcty03LctOy3LQs
Nx3KTYdy05DcNCQ3/cdN/3HTf9z0Hzf9x027cdNu3LQbN+3GTbtx027ctBs33cVNd3HTO9z0DjeN
wE3fb9PV23T1Nl29TRNv08TbNOA2DbhNv23Tb9t00zbNs01rbNMa27TGNq2xTSds07Ta9Jc23aNN
92jT6Nk0ejaNnk2j5wyEgWYgDXQDfAw6P2fAPLwJhzehzs+m0bNp9JwBD+odpa+zaeNs2jibrs2m
SbPpyWyaI5vWx6b1sel0bBob2/CbPFyp0djYhqKlbbFpW2yaEmfAxNSooUZpSmx6EJuWwxk49y9e
/aDyFt/11D+Y+gdT/2DqH5wBR9kchW/yDOwGzGMzj808NvPgZeQMnEtsENjNdDfT3Ux3M93NdDfT
3Ux3E9tNrJhHcdjiKMVRitejOGz19KtnWx22erbVYavDVk8uHDY82zCPMI8wj/B6hImFpx8m1kys
mVgzsWZizcSaiTUvUDOxZmJpHmkeaR5pHmke6QVKE0sTSxPrXrFupt1Mu4l1E+vm0c1jOMrw9Iej
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
b5ff2+X3zoCZqlECfWfATNWoTY0S+dtF/naRv13kbxf520X+dpG/XeRvF/nbRf52kb9d5G8X+dtF
/naRv13kbxf520X+dpG/XeRvF/nbRf7OgJmqUZsatalRmxq1qVGChbtg4S5YeAZ2A8VANRAGmoE0
0A2YqRolnLgLJ+7Cibtw4i6cuAsn7sKJZ8BM1SjxxTNgpmqUPOMuz3gGzFSNkng8A2aqRolA7iKQ
uwjkLgJ5BsxUjRKSPANmqkbtatSuRslV7nKVu1zlLle5y1XucpW7XOUuV7nLVe67GiVouQta7oKW
u6DlGTBTNWpXo0Qxz4CZqlG7GiWseQZMTEnalSTpzV16c5fe3KU3z4CJqUC7+iKsuQtr7rKZZ8CT
UxtEMXfJy12+8gx4jHHuVzj9Yk0u1mQ5y13Ocpez3IUmz4C/YnEUmtyFJs9AN+C5WAuLtbBY+oql
r1j6iqWvWPqKpU94cxfNPAOOYtkS3jwDjmKVKlapYpUSAD0D5mENKlaYYoWRGd1lRneZ0V1mdBcR
3SVCd4nQXSL0DHhQq4OI6C4iuguAngGHdfZZnH1KhO4SobtE6C4RukuE7sXZZ3H2KYe5y2Hucphn
wEydfQpmngEzdfYpunkGzNSyJdy5C3eeATN19in+uYt/7uKfu/jnfoJ/vlI/2VU46d/RM3gZN/Ny
vi3n23K+Lefbcr4t59tyvi3n23K+Lefbcr4t59tyvi3n23K+Lefbcr4t59tyvi3n23K+Lefbcr4t
59tyvi3n27U53z7k/W+XZ2151pZnbXnWlmdtedaWZ2151pZnbXnWlmdtedaWZ2151pZnbXnWlmdt
edaWZ2151pZnbXnWlmdtedaWZ2151q7Rs/Yh7n+7tpdc20v+dreXfPfx7n5/ePeHg/t3nj18enRw
9P1Vj/aOGz5ekbn0Yqvol92i8z0ld/4Te58JXmI37YPDnx4d3j06/OZ9b+v9SiJrf++bQyv76Tx5
+ui4AHzy5O93jr98X99/evjxowffXd/Gtr828qN7D3648pF//Vv5K+f9pvv4Et/qd/gwvr5/5+4P
+62f9lvv74qcfR43ekVuanp4oSvw4M7fnr3++r/vWea1fP6vfvlu6uO/8Pfy7FO52Tv1TbiLYVfM
sCtm2BUz7IoZdsUMu2KGXTHDrphhV8ywK2bYFTPsihl2xQy7YoZdMcOumGFXzLArZtgVM+yKGXbF
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
IVV1iJIeoqSH3NUhVXVIVR1SVYdU1SFVdUhVHVJVh8zUITN1gEitt269WlCOA5uB3UAxUA2EAYfd
HHZz2M1hN4fdHHZz2FdLznEgDZjYbmK7ie0mtpvHbh67w75ag44D5lHMo5hH8XoU8yjmUbwexcSK
iVXzqOZRvR7VxKqJVROrJlZNrJ5LzCsWZhpmGmYaZhomFuYR5hHm0cyjmUczj2YezSvWTKx5xZqZ
NjNtZppmmmaaZppmmmaaZppmmmaaZppm2s20m2k30+eTvPe9n/LztbJvHv74yYOH3xw++eQvdx4f
Pjj6t2PWxaPHh48OH3zzfO3s+nyIb+0Rz6tP7IUd743X41K7Rl/NmV7pRtXLubece8u5t5x7y7m3
nHvLubece8u5t5x7y7m3nHvLubece8u5t5x7y7m3nHvLubece8u5t5x7y7m3nHvLubece1fn3PtN
bF297IHLHrjsgcseuOyByx647IHLHrjsgcseuOyByx647IHLHrjsgcseuOyByx647IHLHrjsgcse
uOyByx647IHLHnj19sAPeOvqtfvode3mfNNbM9/8/spvNFj+I2yS/dYbPL/b1fmN7819nftK57vu
yn39G4fnh743d15aOV7Wz7sPH/5w7/DJwePDb+49Prx79LyUXsbGffvBs3+e//xtNOICWVx0S+7T
3pGnR/fuX0/FeZN/+3h24LSlO23pTlu605butKU7bRlOW4bTluG0ZTjBGmY6zHSY6TDTYaY+Bm4+
Bm4+Bm4+Bm4+Bm4+Bm4+BuJYPQ6kgW7ATH1y3Hxy3Hxy3Hxy3Hxy3Hxy3Hxy3HxyxOR6HDBTHyU3
HyU3HyUxuR4HzNRnS0yuxwEz9WFz82Fz82Fz82FzK2bq0+fm0+fm0+fm0+fm0+fm0ydG2RnwcXTz
cXTzcXTzcXTzcXTzcXTzcXTzcXTzcXTzcXTzcXTzcXTzcXTzcXQLM/X5dAsz9YF184F184F184F1
84F184F184F184F18/l083F08+lz89ly89ly89ly81Fy81Fy80ERO+5xwFGUgk0p2JSCrZ8b1ous
FGxKwaYUbErBphRsVv7Nyr9btXer9m7V3q3a+61zB+0GONvdmrxbk3dL8G4J3i3BuyV4twTvVtzd
irtbcXcL7G6B3S2w+35uWE/f8rlbLXdL327p2y19u6Vvt/Ttlr7d0rdb+nZL327p2y19u6Vvt/Tt
lr7dSrdb6Xbr2G7Z2i1bu1VqtyjtvjTbLUq7L812q9TuS7PdsrX70my3bO2Wrd1XYrt1bLeO7b4S
230ltvsGbLfS7Zat3aK0W5R2a9BuDdqdju4Wpf1cUXI6WpxsFstWsSgVi1K5de6gXLHizLFYpYpV
qjhzLFapYpUqVqlilSpOFItlq1i2imWrOFEs1rFiHSvWsWIdK04Di3WsOA0sFrbiNLA46yuWvlLO
5eEFsvQVS1+x9BVLX7H0FUtfsdIVK12x0hUrXXGSVyx9xdJXnOQVJ3nFOV2xOBaLY3FOV5zCFWds
xWpZrJbF4lgsjsVaWJzTFYtjsTgWa2Gx0hXndMXSVyx9xUle6edG8VyshcUJWrE4FotjsTgWi2Ox
OBaLY/XRvFotq9WyOqerls/64kl8nvbt/spPHN+yWS2b1bJZLZvV2V61jlbraLWO1u1cYnxi1Tpa
raPVslktm9WyWS2b1efrah2t1tFq2ayWzerDcrVsVstmLeeG9XpYA6s1sDrbq9bAag2s1sBqDazW
wGoNrNbAag2s1sDqBLFaFKtFsVoUq0WxOoWsVsnqnLJaNqtls1o2q5PMah2t1tHqJLNaWKsrs9U5
ZbWOVqeQ1cJaLazVwlotrNXCWn16rj49V0tv9em5WourE9Vqca4W52pxrhbnanGuFudqca7nirMv
UsNqHVbrsFqHj+Rh+Q7Ld/giNZwOh2U8nA6HdT2s62FdD+t6WNfDuh7W9bCuh3U9rOthXQ/rejg/
Dgt9WOjDQh8W+rDQh4U+fPAPK384gw6lIJSCcAYdakOoDaE2hNoQakM4pQ6n1OGUOpSTUE7CKXWo
L6G+hPoS6kuoL6G+hPoS6kuoL6G+hPoS6kuoL6G+hPoS6suJbfh6VoNZVbtMX8avruhdYC3vdD30
x6f3j+7dfXj/k7O/HDx5dOfBwZ379w9u3do//un7o3fcb/b44vmpqsWh9IbSGwrrS790/+yjP+2v
/MSjq7DhS5pQYUOFDRU2VNhQYUNBDQU1lMtQLkO5DOUy1L5Q6prK1lS2prI1la2pbE0ha7fODcvJ
NXWrqVtN3WqqUlOVmprT1JymxDQlpikxTYlpSsxLs3H//Ph/x8CP9nPgx/wnSkpTUprVv1nbm7W9
Wdubtb1ZypulvNVzw/rRWcqbpbxZyps1tVlCm1P0ZlloVoHm5Ln5VqJ5rzffSrQ8d1DP1pu/ea83
7/Xmvd6cTTdv/ubN35w8N6tBsxo0q0FzrtysBs1qkN7r6b2e3uvpLDa9+dNZbN46Nywnl1aDdI6a
zlHTapBWg3SOmpaHtDykU9K0XqTlIa0G6YQznXCmE860OqTVIZ1wphPOdMKZTjjT6WQ6nUxLTlpy
0pKTlpx0OpnWoLQGpTUoLTlpyUlLTjp7TGeP6ewxnT2ms8d09pjOHtNKl84e09KXlr50ApS+jEgn
QOm7h/TdQzpFSstn+u4hradpPU3raVpP09cV6dwpradptUyrZfZzB/VsLY5pcUynSmm1TN8spG8W
0nqavllIC2y3fHbLZ7917lc4ue7MqFscu8WxWxy7xbFbHLvFsVscu8WxWwu7U6VucewWx25x7BbH
bnHsFsducewWx25x7BbH7tN4dz7WLZ/d8tktn93y2S2f3fLZLZ/datmtlt0ZW7d8dstnt3x2y2e3
WnarZbdadqtlt1p2q2W3Fnangd1a2J0Xdotjtzh2i2O3OHaLY7c4dotjtzh2i2O3OHaLY3f22Z19
dstnt3x2p6Pd6Wi3wHYLbHc62q243flpf1GCv2gf3f7y5OHnP57/8cVHn9fTH3w2nkduH//v+C9/
+ujLfvqXL+L5v7n90fj8lb/0z746+xe3nj9J3f7++R/lo8+/eP6X+W+fD/fFNn/2PJIf9ZODxbdn
/7+d/SWf/yA/+tPzlMbMbZz96LPnP7r1Ub91+pcv9rMffXH2l5ORxqPn/79/dPtswCkvp38pp798
u5xF2sn53Dn7/2dHHfXsLyfZtpODff486S/q3ZMx/uPkj389+eO/n/zxP0/++F+naXx+dsjTjMdH
t/PFZ7PHS50aJ2dynN5+es3+1E9+8P85uWJfnx7pLPzPJ3/8y8kfn58+1H7xp9PfPr30+/84/uPL
P50+7Z7YUosommwviurM4/bJg3H/6uRTPft4+387OeJHn51cnv7vJ3/89XTEL09P5P919pH86fT3
P//s9MCftdOP9ovbLy9Cf9mVO/r/OP3dz0++auWjPLks/aPxp9O/fF5Or22cfR1ffKB/+vz0L589
/9zmnfCnk+PGP5/94MWNcHIOn38Uf3r167adfvHH/ufnf9T/5/RLnX86Pcbtdnrw099oP7y8kLde
OqLnd+fzdvqX8dnJX56cHPL0lpqjn952n3/0ZZx+P06+MTPy2fMvyvxef3aSTx69HCZeLoz0L05u
gf1kiP2jP31x8ntfnF70L85ugNtn99OLe+NPJ38ZJx/0eHZ2kW6d/eXs5jzJ5fgv/ewvt8++z6df
ls9Osx0n//Szfzkb4+S+vvX92feyn36O/eR+HGffk3mPnH6gR2djvPzK7o1uoj1fLp/MonFSGUb9
t9Nf/fI0i4++PDmF+t/PfnB2Al+Okxvj/surur3sZj3+By/+clJ+8vHp966e3g63f3b/vHy0Pv6F
syv+5X76TfnyrKB8efZV/bJ+EDsp/pIn8c0+kZ+/QP7u8Ojg+G33wb0H3z78+MnTr6/NfnXxV98X
MMZcqbnuYra6113r6189eG9uwtd8T67/rN/au/f+L/yFM3h7T+cb7YHv/yq8s/+vX+O+q5f4iG7w
q35Fl+wqN3BdBsBlAFwGwGUAXAbAZQBcBsBlAFwGwGUAXAbAZQBcBsBlAFwGwGUAXAbAZQBcBsBl
AFwGwGUAXAbAZQBcBsBlALxCA+D7plL/IiD3fz89fPzsr4f3D+8ePXx8THk++On7o9cb995lrfJy
OVzF4t9yEi4n4XISLifhchIuJ+FyEi4n4XISLifhchIuJ+FyEi4n4XISLifhchIuJ+FyEi4n4XIS
vqOT8B9h08VfPIPf/5/X/eZnjw+/OXxwdO/O/Sd/OHr89PDFv/7r4dH8p8cemj/c+XT7/YdgAnzf
+0Ze4+W9IfDhzV7zG9/qr1+jl/FySz9v+VFcz1afH9JOj9e/mWL/0DdT7P8IirD//r9gnd5vqk7/
0lV4cZhHz/549PCHwweffj2yfX34dT0orfWDWse3Bz0O20GJ/k37Ng/rN1v53Y93fvrqzneHn976
3dkBvnpydOfo6ZNPy63td8encXTv4YNPj0/rozLnUPM55csXJzcj8/Tm/OnL5xnNP2dO87/H5zf/
+Pjj+Z8XGc6/33vw5NEc4eDk4j2ZqX5UTv9xO419VD4/uTC/u3N85b86DX9653dnfzu53Bf9ev3l
2dH3Dx/89e7je4+OrteM/4HsmPwOmnMx+MPB4U/HH+LhN9fXR/EWiVygmWJ+of+vdfuc3D43VKhe
fkOfnH4jr286+ctj3dS980vfqfOf1x+PL+iLj+L0k3r5HfIz+6Xv1Kuf4+8u8V19n9/Gu/ODPfp0
u5aq/drJwfoM/AzeF0T/ydNHx3r2yZO/3zme9H59/+nhx48efPeOh3l078EPrz/MDZKe3pTss8Pj
L9eVp/vruvkr1/xNzy6X0N3L4VLe9Cl+cIm9/MRuKrULpfXgzt+evf5r9Oe//M9/+fO//fWik509
t/jmbm0HmXs7qPvX4+BObPM/7bB+2+7e/fZu//Yf/lnhLWrD5R8vLjbxuDnA2698s278TrzwdbmB
Gd1xUusGuvGnhXWlr/G1xju/lxxXD3m75BP5useu8on8tVXy7sMHR/Onr3/Fc3U0vHFRGt4NuHN+
duo3IDWvlZmbe3i90K31Qb9AuBAj8eetGMfL+idtHPW0d+QvP+9XaD9vEbh92u3z+Vk/wudfnnbL
nLZKnfad5EdfnPUOnDaN5HH7yskvf3nrtEvmtMmifPT5WaPGF2fNHl+c9c18djb2Z5+d/Wg7aej5
j9MmipPWk/lPT7rExmenrS7HXRxnh/vT2VFO2kxGfdFL8uUrfTQzu3H2O5+ddHrUl80Xn7043Fkb
zpdnY4+zIW//rNmjvTQyz59/+eKfnJ3J7bPGn9tn/WCnpzBHOOnWiBedRSf/ov9/TwZ+cYSzq/zZ
yS/+6azL6cuXF+7zF+PG6fU5bd950ezy4nqNszN9cRFOPtbjrqGzj3GcHfe0O6icncR48Zezz+GL
F71HZ605t1909Zx1mJ12QZWzLqjy3047dF58b046p06u6HjZi/pFnDXAvfj2vPxWnqX/+dl4Lzra
XpzHSUdbv/1RnuX9p+1nA5UXzZVf3Do66zA7aUP88n+d9iyd9AL1L04aCF/cFeWns5as7fTcTi/V
9tFp11M5+wa1j+K0TedkjM+fnLZRnTSQ9c9O25/67ZPOw/G/Xqa4jRc9tV/+6aM/nX2GJ01qI86a
DLcfz/xiZ21dJ9erz+/K6c3w0ee3z9ooT67O/t9P//9Jb9P8ndMbqD04OebfT79tJ59eH6edS/32
X09PdJy2d519t+J/nx7xpIGpf3nWP1XPTvX2WSvWaVPg7dN787gB78uffTD7iw7v4ytcz1rT+llr
6K3Tv5x+OKc3eJ4mdvdkkP88TfvkX880TyrgHPq0m7Kc3T+3zkrcWWvVF+Xp6ZifnZ3KOBvztAvu
y3/9WdMiQJefB+ZYJ3fc8ZU/6zbsp+CWZ6cf0umdHw9PT/n2y29paS99CfMWPf2wymkT5fzd05OP
Rydfpq9f/OZW+/4SEnP79AswP+fTJrrxt5PR/vrywv8MdjRP+bT/cJy2d5517X0+XvkinX5R+wuH
ziwn8aeff4VfNAbPa/HZWQPiSV2cH08/+TDa/+/k6/YfL3+zQJ7aK2C2GXjRyXzclnhygp89OZOI
kytz63+eFefbr3xxTw8xXpgHXn6Tt7MS8vlxhs//8vhnvbEv3XvHfZL76XfotJz3fzu76z8/vY6n
JeLLw583RZ5JxGmnaXnRtH1cg269cnccty3v52+T8jP/5/HH8vnZV7adfe/az4vqq46QfYwXjfXz
FL9oPzvsS7ThlOGT8++nX5Zbp3p+3Mz52c9+5SWu4Lhkxs+7Tl/1d8xv5YtEXtx3pz952YT/Rfl/
v3I/nvyD/aUP++V9ePLBHN/mLxlIpb40XE6JOS0gcSpIL+6/45PYz27venZ+X/7s1nzZcpunvZUv
b9bPz2Yr2wvFu306W7n9s4bm3F9t+i8JxqT0l2SLF/f18bf1Z1exv/QFvLjjT38yXniPT0vASXy8
tGm+6Io/rQpbebVT/3nk1quRCp9tC2CNWwMzNQPnfgU88BYVl83WyjmuxTmPGeaVrQD5Ow4UA9VA
GDh30DTQDQwCr5qbjgObATPdzXQ3091MdzPdzXQ3091Mi5kWMy1mWsy0mGkx02KmxUyLmRYzrWZa
zbSaaTXTaqbVTM99paqZVjOtZhpmGmYaZhpmGmYaZhpmGmYaZhpm2sy0mWkz02amzUybmTYzbWba
zLSZaZppmmmaaZppmmmaaZppmmmaaZppN9Nupt1Mu5l2M+1m2s20m2k3026mw0yHmQ4zHWY6zHSY
6TDTYabDTAeZwkncnFYfB3YDxUA1EAaagTTQDZjpZqabmapRVY2qalRVo6oaVdWoqkZVNaqqUVWN
qmpUVaOqGlXVqKpGVTWqqlFVjapqVFWjqhp1AmG8lmWEt+6KeAO76Dhpr6Y6WtXRqo5WdbSqo1Ud
dXY2A15NdbSqo1UdrepoVUerOlrV0aqOVnW0qqNVHa3qaFVHqzpa1dGqjlZ1tKqjVR2t6mhVR6s6
WtXRqo5WdbSqo1UdrepoVUerOlrV0aqOVnW0qqNVHa3qaFVHqzpa1dGqjlZ1tKqjVR2t6mhVR6s6
WtXRqo5WdbSqo1UdrepoVUerOlrV0aqOVnU01NFQR0MdDXU01NFQR0MdDXU01NFQR0MdDXU01NFQ
R0MdDXU01NFQR0MdDXU01NFQR0MdDXU01NFQR0MdDXU01NFQR0MdDXU01NHwWS/UqFCjQo0KNSrU
qFCjQo0KNSrUqFCjQo0KNSrUqFCjQo0KNSrUqFCjQo0KNSrUqFCjQo0KNSrUqFCjQo0KNSrUqFCj
Qo0KNSrUqFCjQo0KNSrUqFCjQo0KNSrUqFCjQo0KNSrUqFCjQo0KNSrUqFCjQo0KNSrUqFCjQo0K
NSrUqFCjQo0KNSrUqFCjQo0KNSrUqFCjmhrV1KimRjU1qqlRTY1qalRTo5oa1dSopkY1NaqpUU2N
ampUU6OaGtXUqKZGNTWqqVFNjWpqVFOjmhrV1KimRjU1qqlRTY1qalRTo5oa1dSopkY1NaqpUU2N
ampUU6OaGtXUqKZGNTWqqVFNjWpqVFOjmhrV1KimRjU1qqlRTY1qalRTo5oa1dSopkY1NaqpUU2N
ampUU6OaGtXUqKZGNTWqqVFNjWpqVFOjmhrV1KimRjU1qqlRTY1qalRTo5oa1dSopkY1NaqpUU2N
ampUU6OaGtXUqKZGNTWqqVFNjWpqVFOjmhrV1KimRjU1KtWoVKNSjUo1KtWoVKNSjUo1KtWoVKNS
jUo1KtWoVKNSjUo1KtWoVKNSjUo1KtWoVKNSjUo1KtWoVKNSjUo1KtWoVKNSjUo1KtWoVKNSjUo1
KtWoVKNSjUo1KtWoVKNSjUo1KtWoVKNSjUo1KtWoVKNSjUo1KtWoVKNSjUo1KtWoVKNSjUo1KtWo
VKNSjUo1KtWoVKNSjUo1KtWoVKNSjUo1KtWoVKNSjUo1KtWoVKNSjUo1KtWoVKNSjUo1KtWoVKNS
jUo1KtWoVKNSjUo1KtWoVKNSjUo1KtWoVKNSjUo1qqtRXY3qalRXo7oa1dWorkZ1NaqrUV2N6mpU
V6O6GtXVqK5GdTWqq1FdjepqVFejuhrV1aiuRnU1qqtRXY3qalRXo7oa1dWorkZ1NcqGm9IvtWZ2
YdPBau3/EH3pN8I4+wBwBL99R8c/DMjnOmlh4xI4s/WF/DDq0PtG4I1Ll8prZgL+BhCcz2cMt+Zt
cPD8Nvj9dZePGwQOvmsJ+XA/pBu8lVeT02pyWk1Oq8lpNTmtJqfV5LSanFaT02pyWk1Oq8lpNTmt
JqfV5LSanFaT02pyWk1Oq8lpNTmtJqfV5LSanFaT02pyeg9NTu9xG8s3LpUtSOeCdC5I54J0Lkjn
gnQuSOeCdC5I54J0LkjngnQuSOeCdC5I54J0LkjngnT+I0E63+O7uA+/l3+/GcPFb+savK+te39p
j8fynrd/Lxfc9Z2P+Q0X6O8PH/9w+PhSO939+/NfefI237mLJ3PRE31XM9B26+p3+buybeJOk7vw
tThZZ3h6dO/+9e06zyDvfIf+7DO/2GrKf/y3f/3nOeT/OPzfT+cPflbGvjm8f+fZsZ/zxyefzn99
69dS4wBPDh/MT+PZg7sHX89/+MOTgzvH/+c4obf0Vl/AcfvzK/ndrIDHyR3ce/Dtw4+fPP36zb/5
S0X8zZ/6zbnBP9hfeUcj6vV9qV/3id58Nq/5Zt58Mpd1mF95Jjd337w3V/2p0FxfwXtbj/SNObLf
s0X9Ih/AezVNX/gbctnb7+Kf4+0Hz06mntc387zpqvKrU5EHD+dRnzx6+ODJ4cHh344/lfsP73xz
fNTr+da/RSKXnaG//uHm4PCnY3DF4Tevf8q69nnu9T/GvXKmF7iI1z3z/s8nF36yeI3Zv7vo0F10
6C46dBcduosO3UWH7qJDd9Ghu+jQXXToLjp0Fx3OrWN1Fx26iw7dRYfuokN30aG76NBddOguOnQX
HbqLDt1Fh+6iQ3fRobvo0F106C46dBcduosO3UWH7qJDd9Ghu+jQXXToLjp0Fx26iw7dRYfuokN3
0aG76NBddOguOnQXHbqLDt1Fh+6iQ3fRobvo0F106C46dBcduosO3UWH7qJDd9Ghu+jQXXToLjp0
Fx26iw7dRYfuokN30WG46DBcdBguOgwXHYaLDsNFh+Giw3DRYbjoMFx0GC46DBcdhosOw0WH4aLD
cNFhuOgwXHQYLjoMFx2Giw7DRYfhosNw0WG46DBcdBguOgwXHYaLDsNFh+Giw3DRYbjoMFwYH2rU
UKOGGjXUqKFGDTVqqFFDjRpq1FCjhho11KihRg01aqhRQ40aatRQo4YaNdSooUYNNWqoUUONGmrU
UKOGGjXUqKFGDTVqqFFDjRpq1FCjhho11KihRg01aqhRQ40aatRQo4YaNdSooUYNNWqoUUONGmrU
UKOGGjXUqKFGDTVqqFFDjRpq1FCjhho11KihRg01aqhRQ40aatRAo+otNGoGNgO7gWKgGggDzUAa
6AbMdDPTzUw3M93MdDPTzUw3M93MdDPTzUx3M93NdDfT3Ux3M93NdDfT3Ux3M93NtJhpMdNipsVM
i5kWMy1mWsy0mGkx02qm1UyrmVYzrWZazbSaaTXTaqbVTMNMw0zDTMNMw0zDTMNMw0zDTMNMm5k2
M21m2sy0mWkz02amzUybmTYzTTNNM00zTTNNM00zTTNNM00zTTO13fVWN9Nupt1Mu5l2M7XN9lY3
026m3UyHmQ4zHWY6zHSY6TDTYabDTIeZqlGbGrWpUZsatalRmxq1qVGbGrWpUZsatalRmxq1qVGb
GrWpUZsatalRmxq1qVGbGrWpUZsatalRmxq1qVGbGrWpUZsatalRmxq1qVGbGrWpUZsatalRmxq1
qVFbOde4nuc62Q2YqRq1qVGbGrWpUZsatalRmxq1qVGbGrWpUZsatalRmxq1qVGbGrWpUZsatalR
mxq1qVGbGrWpUZsatalRmxq1qVGbGrWpUZsatalRmxq1qVGbGrWpUZsatalRmxq1qVGbGrWpUZsa
talRmxq1qVGbGrWpUds5K4gatalRmxq1qVGbGrWpUZsatalRmxq1qVGbGrWpUZsatatRuxq1q1G7
GrWrUbsatatRuxq1q1G7GrWrUbsatatRuxq1q1G7GrWrUbsatatRuxq1q1G7GrWrUbsatatRuxq1
q1G7GrWrUbsatatRuxq1q1H7G3Y0uZAP//gwnp/Ktqtsu8q2q2y7yrarbLvKtqtsu8q2q2y7yrar
bLvKtqtsu8q2q2y7yrarbLvKtqtsu8q2q2y7yrarbLvKtqts2uBmwExVtl1l21W2XWXbVbZdZdtV
tl1l21W2XWXbVbZdZdtVtl1l21W2XWXbVbZdZdtVtl1l21W2XWXbVbZdZdtVtl1l21W2XWXbVbZd
ZdtVtl1l21W2XWXbVbZdZdtVtqKyFZWtqGxFZSsqW1HZispWVLaishWVrahsRWXT3lm1d1btnVV7
Z9XeWbV3Vu2dVXtn1d5ZtXdW7Z1Ve2fV3lm1d1btnVV7Z9XeWbV3Vu2dVXtn1d5ZtXdW7Z1Ve2fV
3lm1d1btnVV7Z9Xeec5nXLV3Vu2dVXtn1d5ZtXdW7Z1Ve2fV3lm1d1btnVV7Z9XeWbV3Vu2dVXtn
1d5ZtXdW7Z1Ve2fV3lm1d1btnVV7Z9XeWbV3Vu2dVXtn1d5ZtXdW7Z1Ve2fV3lm1d1btnVV7Z9Xe
WbV3Vu2d9ZwhXntn1d5ZtXdW7Z1Ve2c9Z8TX3lm1d1btnVV7Z9XeWbV3Vu2dVXtn1d5ZtXdW7Z1V
e2fV3lm1d1btnVV7Z9XeWbV3Vu2dVXtn1d5ZtXdW7Z1Ve2fV3lm1d1btnVV7Z9XeWbV3Vu2dVXtn
1d5ZtXdW7Z1Ve2fV3lm1d1btnVV7Z9XeWbV3Vu2dVXtn1d5ZtXfWqka59U9165/q1j/VrX+qW/9U
t/6pbv1TBVtUt/6pbv1T3fqnuvVPdeuf6tY/1a1/qlv/VLf+qW79U936p7r1T3Xrn+rWP9Wtf6pb
/1S3/qlu/VPd+qe69U9165/q1j/VrX+qW/9Ut/6pbv1T3fqnuvVPdeuf6tY/1a1/qlv/VLf+qW79
U936p7r1T3Xrn+rWP7Weg7aoUW79U936p7r1T3Xrn+rWP9Wtf6pb/1S3/qlu/VPd+qe69U9165/q
1j/VrX+qW/9Ut/6pbv1T3fqnuvVPdeuf6tY/1a1/qlv/VLf+qW79U936p7r1T3Xrn+rWP9Wtf6pb
/1S3/qlu/VPd+qe69U9165/q1j/VrX+qW/9Ut/6pbv1T3fqnuvVPdeuf6tY/1a1/qlv/VLf+qW79
U936p7r1T3Xrn+rWP9Wtf6pb/1S3/qlu/VPd+qe69U9165/q1j/VrX+qW/9Ut/6pbv1T3fqnuvVP
deuf6tY/1a1/qlv/VLf+qW79U936p7r1T3Xrn+rWP9Wtf6pb/1S3/qlu/VPd+qe69U9165/q1j/V
rX+qW/9Ut/6pbv1T3fqnuvVPdeuf6tY/1a1/qlv/VLf+qW79U936p7r1T3Xrn+rWP9Wtf6pb/1S3
/qlu/VPd+qe69U9165/q1j/VrX+qW/9Ut/6pbv1T3fqnuvVPdeuf6tY/1a1/qlv/VLf+qW79U936
p7r1T3Xrn+rWP9Wtf6pb/1S3/qlu/VPd+qe69U9165/q1j/VrX+qW/9Ut/6pbv1T3fqnuvVPdeuf
6tY/1a1/qlv/VLf+qW79U936p7r1T3Xrn+rWP9Wtf6pb/9T2hlWsm/azLdfXcn0t19dyfS3X13J9
LdfXcn0t19dyfS3X13J9LdfXcn0t19dyfS3X13J9LdfXcn0t19dyfS3X13J9LdfXcn3dvOvrfW8r
8e+HX3/2+Nmjo4e3//Ivn3xz+Pje3w6/+vre0ZOvfjh8dkKR/erR1z988+3+1eGPj46effXk+2OW
7HHOT66ePf+WsOIXa37vejIXAFq+7Vm9M8J2e8Plfmv88lvQU6/lCl01F/7CJHvBp0+ePjr+zeOl
47s/7Ld+2m99/OjBd79lYPwVffkuw3u9CSb8G+Cv70jFvur74tdJu7/8hXsTDPsSoN6r2el7OYyX
w3g5jJfDeDmMl8N4OYyXw3g5jJfDeDmMl8N4OYyXw3g5jJfDeDmMl8N4OYyXw3g5jJfDeDmMl8N4
OYyXw/gaHMbvu2PirXY+vwIn83VuaP2GldS//Pmvr9u7/u7DB0eHD44+fvTsohfgL8+Ovn/44K93
H997dHShC3HhDG5qNffm9tX+r7CD9/Yb3Mj8ySvXYdRa3rn/6Pq2MP+Q9iO/ubr11s1ab2JHTClS
I306aj4dNZ+Omk9Hzaej5tNR8+mo+XTUfDpqPh01n46aT0fNp6Pm01Hz6aj5dNR8Omo+HTWfjppP
R82no+bTUfPpqPl01Hw6aj4dNZ+Omk9Hzaej5tNR8+mo+XTUfDpqPh01n46aT0fNp6Pm01Hz6aj5
dNR8Omo+HTWfjppPR82no+bTUfPpqPl01Hw6aj4dNZ+Omk9Hzaej5tNR8+mo+XTUfDpqPh01n46a
T0fNp6Pm01Hz6aj5dNR8OkqfjtKno/TpKH06Sp+O0qej9OkofTpKn47Sp6P06Sh9OkqfjtKno/Tp
KH06Sp+O0qej9OkofTpKn47Sp6P06Sh9OkqfjtKno/TpKH06Sp+O0qej9OkofTpKn47SN3ipRqUa
lWpUqlGpRqUalWpUqlGpRqUalWpUqlGpRqUalWpUqlGpRqUalWpUqlGpRqUalWpUqlGpRqUalWpU
qlGpRqUalWpUqlGpRqUalWpUqlGpRqUalWpUqlGpRqUalWpUqlGpRqUalWpUqlGpRqUalWpUqlGp
RqUalWpUqlGpRqUalWpUqlGpRqUalWpUqlGpRqUa1dWorkZ1NaqrUV2N6mpUV6O6GtXVqK5GdTWq
q1FdjepqVFejuhrV1aiuRnU1qqtRXY3qalRXo7oa1dWorkZ1NaqrUV2N6mpUV6O6GtXVqK5GyeCr
MviqDL4qg6/K4Ksy+KoMviqDr8rgqzL4qgy+KoOvyuCrMviqDL4qg6/K4Ksy+KoMviqDr8rgqzL4
qgy+KoOvyuCrMviqDL4qg6/K4Ksy+KoMviqDr8rgqzL4qgy+KoOvyuCrMviqDL4qg6/K4Ksy+KoM
viqDr8rgqzL4qgy+KoOvyuCrMviqDL4qg6/K4Ksy+KoMviqDr8rgqzL4qgy+KoOvyuCrMviqDL4q
g6/K4Ksy+KoMviqDr8rgqzL4qgy+KoOvyuCrMviqDL4qg6/K4Ksy+KoMviqDr8rgqzL4qgy+KoOv
yuCrMviqDL4qg6/K4Ksy+KoMviqDr8rgqzL4qgy+KoOvyuCrMviqDL4qg6/K4Ksy+KoMviqDr8rg
qzL4qgy+KoOvyuCrMviqDL4qg6/K4Ksy+KoMviqDr8rgqzL4qgy+KoOvyuCrMviqDL4qg6/K4Ksy
+KoMviqDr8rgqzL4qgy+KoOvyuCrMviqDL4qg6/K4Ksy+KoMviqDr8rgqzL4qgy+KoOvyuCrMviq
DL4qg6/K4Ksy+KoMviqDr8rgqzL4qgy+KoOvyuCrMviqDL4qg6/K4Ksy+KoMviqDr8rgqzL4QgZf
yOALGXwhgy9k8IUMvpDBFzL4QgZfyOALGXwhgy9k8IUMvpDBFzL4QgZfyOALGXwhgy9k8IUMvpDB
FzL4QgZfyOALGXwhgy9k8IUMvpDBFzL4QgZf3Lp61vovrNmdXyV8nwvA72jnvrE16jfaqENgYghM
DIGJITAxBCaGwMQQmBgCE0NgYghMDIGJITAxBCaGwMQQmBgCE0NgYghMDIGJITAxBCaGwMQQmBgC
E0NgYghMDIGJITAxBCaGwMQQmBgCE0NgYghMDIGJITAxBCaGwMQQmBgCE0NgYghMDIGJITAxBCaG
wMQQmBgCE0NgYghMDIGJITAxBCaGwMQQmBgCE0NgYghMDIGJITAxBCaGwMQQmBgCE0NgYghMDIGJ
ITAxBCaGwMQQmBgCE0NgYghMDIGJITAxBCaGwMQQmBgCE0NgYghMDIGJITAxBCaGwMQQmBgCE0Ng
YghMDIGJITAxBCaGwMQQmBgCE0NgYghMDIGJITAxBCaGwMQQmBgCE0NgYghMDIGJITAxBCaGwMQQ
mBgCE0NgYghMDIGJITAxBCaGwMQQmBgCE0NgYghMDIGJITAxBCaGwMQQmBgCE0NgYghMDIGJITAx
BCaGwMQQmBgCE0NgYghMDIGJITAxBCaGwMQQmBgCE0NgYghMDIGJITAxBCaGwMQQmBgCE0NgYghM
DIGJITAxBCaGwMQQmBgCE0NgYghMDIGJITAxBCaGwMQQmBgCE0NgYghMDIGJITAxBCaGwMQQmBgC
E0NgYghMDIGJITAxBCaGwMQQmBgCE0NgYghMDIGJITAxBCaGwMQQmBgCE0NgYghMDIGJITAxBCaG
wMQQmBi7GiWOKsRRhTiqEEcV4qhCHFWIowpxVCGOKsRRhTiqEEcV4qhCHFWIowpxVCGOKsRRhTiq
EEcV4qhCHFWIowpxVCGOKsRRhTiqEEcV4qhCHFWIowpxVCGOKsRRhTiqEEcV4qhCHFWIowpxVCGO
KsRRhTiqEEcV4qhCHFWIowpxVCGOKsRRhTiqEEcV4qhCHFWIowpxVCGOKsRRhTiqEEcV4qhCHFWI
owpxVCGOKsRRhTiqEEcV4qhCHFWIowpxVCGOKsRRhTiqEEcV4qhCHFWIowpxVCGOKsRRhTiqEEcV
4qhCHFWIowpxVCGOKsRRhTiqEEcV4qhCHFWIowpxVCGOKsRRhTiqEEcV4qhCHFWIowpxVCGOKsRR
hTiqEEcV4qhCHFWIowpxVCGOKsRRhTiqEEcV4qhCHFWIowpxVCGOKsRRhTiqEEcV4qhCHFWIowpx
VCGOKsRRhTiqEEcV4qhCHFWIowpxVCGOKsRRhTiqEEcV4qhCHFWIowpxVCGOKsRRhTiqEEcV4qhC
HFWIowpxVCGOKsRRhTiqEEcV4qhCHFWIowpxVCGOKsRRhTiqEEcV4qhCHFWIowpxVCGOKsRRhTiq
EEcV4qhCHFWIowpxVCGOKsRRhTiqEEcV4qhCHFWIowpxVCGOKsRRhTiqEEcV4qhCHFWIowpxVCGO
KsRRhTiqEEcV4qhCHFWIo4p6jYuHa/FrLX6txa+1+LUWv9bi11r8Wotfa/FrLX6txa+1+LUWv9bi
11r8Wotfa/FrLX6txa+1+LUWv9bi11r8Wotfa/FrLX69h8Wv98gQfuNS2YJMLsjkgkwuyOSCTC7I
5IJMLsjkgkwuyOSCTC7I5IJMLsjkgkwuyOSCTC7I5IJMLsjkgkwuyOSCTC7I5IJMLsjkNUIm3/d2
m2+7492Vb1sHYfK9bP93yV0s54+PD3w9F+ntcvm//unfHj44fPOZXngnwOv6DlwigRvazfAtd8C8
6bvobTddfP3dc3rj/G1esnkZr+1Tv2QS76cUvCMJ9+1u3Mvcsj/L6+Gjj49+Ovrjo3uPDj/9/nAe
7fE/3b47f/Lk4LOHD44eP7x/cPv+/Yd/P/jz43vf3Xvwh1/M+Pf/53W/+dm8lWau9+7cf/KHo8dP
D1/8678eHs1/eny7/eHOp9vvr2G70mu4kldTsj7ID+Amy+QZ7fnHp/eP7t19eP+Ts78cPJlzlIM7
9+8f/Hjn8TzhgzkL/vin74+uvp590J/G/vv/gl/B/b18Bd8aOL4/V4Kb2934JaOh2rdd7duu9m1X
+7arfdvVvu1q33a1b7vat13t2672bVf7tqt929W+7WrfdrVvu9q3Xe3brvZtV/u2q33b1b7tat92
tW+72rdd7duu9m1X+7arfdvVvu1q33a1b7vat13t2672bVf7tqt929W+7WrfdrVvu9q3Xe3brvZt
V/u2q33b1b7tat92tW+72rdd7duu9m1X+7arfdvVvu1q33a1b7vat13t2672bVf7tqt929W+7Wrf
drVvu9q3XX0ZFb6MCl9GhS+jwpdR4cuo8GVU+DIqfBkVvowKX0aFL6PCl1Hhy6jwZVT4Mip8GRW+
jApfRoUvo8KXUeHLqPBlVPgyKnwZFb6MCl9GhS+jwpdR4cuo8GVU+DIqfBkVvowKvUWhRoUaFWpU
qFGhRoUaFWpUqFGhRoUaFWpUqFGhRoUaFWpUqFGhRoUaFWpUqFGhRoUaFWpUqFGhRoUaFWpUqFGh
RoUaFWpUqFGhRoUaFWpUqFGhRoUaFWpUqFGhRoUaFWpUqFGhRoUaFWpUqFGhRoUaFWpUqFGhRoUa
FWpUqFGhRoUaFWpUqFGhRoUaFWpUqFGhRoUa1dSopkY1NaqpUU2NampUU6OaGtXUqKZGNTWqqVFN
jWpqVFOjmhrV1KimRjU1qqlRTY1qalRTo5oa1dSopkY1NaqpUU2NampUU6OaGtXUqKZGaeAJDTyh
gSc08IQGntDAExp4QgNPaOAJDTyhgSc08IQGntDAExp4QgNPaOAJDTyhgSc08IQGntDAExp4QgNP
aOAJDTyhgSc08IQGntDAExp4QgNPaOAJDTyhgSc08IQGntDAExp4QgNPaOAJDTyhgSc08IQGntDA
Exp4QgNPaOAJDTyhgSc08IQGntDAExp4QgNPaOAJDTyhgSc08IQGntDAExp4QgNPaOAJDTyhgSc0
8IQGntDAExp4QgNPaOAJDTyhgSc08IQGntDAExp4QgNPaOAJDTyhgSc08IQGntDAExp4QgNPaOAJ
DTyhgSc08IQGntDAExp4QgNPaOAJDTyhgSc08IQGntDAExp4QgNPaOAJDTyhgSc08IQGntDAExp4
QgNPaOAJDTyhgSc08IQGntDAExp4QgNPaOAJDTyhgSc08IQGntDAExp4QgNPaOAJDTyhgSc08IQG
ntDAExp4QgNPaOAJDTyhgSc08IQGntDAExp4QgNPaOAJDTyhgSc08IQGntDAExp4QgNPaOAJDTyh
gSc08IQGntDAExp4QgNPaOAJDTyhgSc08IQGntDAExp4QgNPaOAJDTyhgSc08IQGntDAExp4QgNP
aOAJDTyhgSc08IQGntDAExp4QgNPaOAJDTyhgSc08IQGntDAExp4QgNPaOAJDTyhgSc08IQGntDA
Exp4or8BUP4SoXDZVd4LdB9dZ/vKe21bef/tKle0InrRFrI3AjZCY1hoDAuNYaExLDSGhcaw0BgW
GsNCY1hoDAuNYaExLDSGhcaw0BgWGsNCY1hoDAuNYaExLDSGhcaw0BgWGsNCY1hoDAuNYaExLDSG
hcaw0BgWGsNCY1hoDAuNYaExLDSGhcaw0BgWGsNCY1hoDAuNYaExLDSGhcaw0BgWGsNCY1hoDAuN
YaExLDSGhcaw0BgWGsNCY1hoDAuNYaExLDSGhcaw0BgWGsNCY1hoDAuNYaExLDSGhcaw0BgWGsNC
Y1hoDAuNYaExLDSGhcaw0BgWGsNCY1hoDAuNYaExLDSGhcaw0BgWGsNCY1hoDAuNYaExLDSGhcaw
0BgWGsNCY1hoDAuNYaExLDSGhcaw0BgWGsNCY1hoDAuNYaExLDSGhcaw0BgWGsNCY1hoDAuNYaEx
LDSGhcaw0BgWGsNCY1hoDAuNYaExLDSGhcaw0BgWGsNCY1hoDAuNYaExLDSGhcaw0BgWGsNCY1ho
DAuNYaExLDSGhcaw0BgWGsNCY1hoDAuNYaExLDSGhcaw0BgWGsNCY1hoDAuNYaExLDSGhcaw0BgW
GsNCY1hoDAuNYaExLDSGhcawpjGsaQxrGsOaxrCmMaxpDGsaw5rGsKYxrGkMaxrDmsawpjGsaQxr
GsOaxrCmMaxpDGsaw5rGsKYxrGkMaxrDmsawpjGsaQxrGsOaxrCmMaxpDGsaw5rGsKYxrN0qZlrM
tJhpMdNipsVMi5lWM61mWs20mmk102qm1UyrmVYzrWYaZhpmGmYaZhpmGmYaZhpmGmYaZtrMtJlp
M9Nmps1Mm5k2M21m2sy0mWmaaZppmmmaaZppmmmaaZppmmmaaTfTbqbdTLuZdjPtZtrNtJtpN9Nu
psNMh5kOMx1mOsx0mOkw02Gmw0zVKPf0au7p1dzTq7mnV3NPr+aeXs09vZp7ejX39Gru6dXc06u5
p1dzT6/mnl7NPb2ae3o19/Rq7unV3NOruadXc0+v5p5ezT29mnt6Nff0au7p1dzTq7mnV3NPr+ae
Xs09vZp7ejX39Gru6dXc06u5p1dzT6/mnl7NPb2ae3o19/Rq7unV3NOruadXc0+v5p5ezT29mnt6
Nff0au7p1dzTq7mnV3NPr+aeXs09vZp7ejX39Gru6dXc06u5p1dzT6/mnl7NPb2ae3o19/Rq7unV
3NOruadXc0+v5p5ezT29mnt6Nff0au7p1dzTq7mnV3NPr+aeXs09vZp7ejX39Gru6dXc06u5p1dz
T6/mnl7NPb2ae3o19/Rq7unV3NOruadXc0+v5p5ezT29mnt6Nff0au7p1dzTq7mnV3NPr+aeXs09
vZp7ejX39Gru6dXc06u5p1dzT6/mnl7NPb2ae3o19/Rq7unV3NOruadXc0+v5p5ezT29mnt6Nff0
au7p1dzTq7mnV3NPr+aeXs09vZp7ejX39Gru6dXc06u5p1dzT6+2v2Gd8y9//ut5zsJLX+Xdhw+O
Dh8cffzo2TX69//y7Oj7hw/+evfxvUdHF1qPvHDSH4I9/YW389GzPx49/OHwwael5Jxa7vtB/fbr
OKil3Tn4upf94E5r5eu4eye//nr/3Y93fvrqzneHn9763dkBvnpydOfo6ZNPy63td8fnc3Tv4YNP
j8/vo3L7o/3L+b8XZzkj/bgDYv/yeUbzz5nT/O+x6XT+8fHH8z8vMpx/v/fgyaM5wsGJo/XJTPWj
cvqP22nso/L5iVv1d3eO7bBfnYY/vfO7s7+deGCv5UOfp/x/rQt8coFvyF988T0k1hL3WuJeS9xr
iXstca8l7rXEvZa41xL3WuJeS9xriXstca8l7rXEvZa41xL3WuJeS9xriXstca8l7rXEvZa41xL3
WuK++iXu/0J7SLwlpP9dzL+L57t4vovnu3i+i+e7eL6L57t4vovnu3i+i+e7eL6L57t4vovnu3i+
i+e7eL6L57t4vovnu3i+i+e7eL6L57t4vu+B5/seFwHfccPkK+LWXmad8u73h3d/OLh/59nDp0cH
R9/f7E737/lS/EJy5y/He/+sfsntet5J+sdjq+cLk+iph/Slu1U36S+5XV91mP7uEi7a9+mTvTu/
lEefbtdmM1+fwYU/gxsyJf/5L//zX/78b3+9qA/87nyyvRNx52A+vveD2tvXB1/fbeUgv7nVvj38
eozt2zvLaO/Xfl3kGzfbX4JtsL7T1wyPWN/nK/o+XwKy8vDxzPF4UnQ9M9C3yeQCO0C8tlDe3Bzh
Ql/Yf+R52vocPsS52gcwe/4vf2esz+CDvCtupHf7nbrS3/rlzdtI7duVkaOHjz4++unoj4/uPTr8
9ORT/afbd+dPnhx89vDB0eOH9w9uH39pD/78+N539x784Rfz/f3/ed1vfjY/4JnpvTv3n/zh6PHT
wxf/+q+HRwcn3/I/3Pn05NXkrXmvHDy/V35/jai8i3/y7/ySqjx/SXWDrwTf+I70yr9bV7drWLno
rmGvrcof7lf6JqvjpXbcOzj86bjUH35zvPXeNXlf3jqfi+4i90F/F/ZrLW+/jfthf0/3w5XTWT9o
1OolJgQ363678RWscq2LeTftV7z5mcKNfQDntOHJ00fHuX3y5O93jo/69f2nhx8/evDdh7oSeYHz
fNcJ6K9dmkf3Hvzw+ktz5SN/ff/O3R/2Wz/tt6584F+fLfzKN+JNH+nlZxvv/m19dnisie/h2rz6
wXyIl+bBnb89u+CNfNEv/g2f5nV+qV9+cd7HZ/eaSdfzudZlnmNvP3j2z/OfX6zQ/Orc5vLLGxe+
1GdfxN/Qt+cin89lHp0vfdnf5Tns6dG9+9c3s3zdiG/xjPHicv4jvIN82/F+9WHlpx/vH1/Rxyc/
eOVLcqNPDm//ouvd3nJd2bvcd0vj7T6fm0ny57CT7w6PDo7HObj34NuHHz95+vVbPlR9AI9T73Qf
XqiGX8eN/MadJ9oujW6XRrdLo9ul0e3S6HZpdLs0ul0a3S6NbpdGt0uj26XR7dLodml0uzS6XRrd
Lo1ul0a3S6PbpdHt0uh2aXS7NLpdGt0ujW6XRrdLo9ul0e3S6HZpdLs0ul0a3S6NbpdGt0uj26XR
7dLodml0uzS6XRrdLo1ul0a3S6PbpdHt0uh2aXS7NLpdGt0ujW6XRrdLo9ul0e3S6HZpdLs0ul0a
3S6NbpdGt0uj26XR7dLodml0uzS6XRrdLo1ul0ZXpNEVaXRFGl2RRlek0RVpdEUaXZFGV6TRFWl0
RRpdkUZXpNEVaXRFGl2RRlek0RVpdEUaXZFGV6TRFWl0RRpdkUZXpNEVaXRFGl2RRlek0RVpdEUa
XZFGV6TRFYmpRY0qalRRo4oaVdSookYVNaqoUUWNKmpUUaOKGlXUqKJGFTWqqFFFjSpqVFGjihpV
1KiiRhU1qqhRRY0qalRRo4oaVdSookYVNaqoUUWNKmpUUaOKGlXUqKJGFTWqqFFFjSpqVFGjihpV
1KiiRhU1qqhRRY0qalRRo4oaVdSookYVNaqoUUWNKmpUUaOKGlXUqKJGFTWqqFFFjSpqVFWjqhpV
1aiqRlU1qqpRVY2qalRVo6oaVdWoqkZVNaqqUVWNqmpUVaOqGlXVqKpGVTWqqlFVjapqVFWjqhpV
1aiqRlU1qqpRVY2qalRVo6oaJbyzCe9swjub8M4mvLMJ72zCO5vwzia8swnvbMI7m/DOJryzCe9s
wjub8M4mvLMJ72zCO5vwzia8swnvbMI7m/DOJryzCe9swjub8M4mvLMJ72zCO5vwzia8swnvbMI7
m/DOJryzCe9swjub8M4mvLMJ72zCO5vwzia8swnvbMI7m/DOJryzCe9swjub8M4mvLMJ72zCO5vw
zia8swnvbMI7m/DOJryzCe9swjub8M4mvLMJ72zCO5vwzia8swnvbMI7m/DOJryzCe9swjub8M4m
vLMJ72zCO5vwzia8swnvbMI7m/DOJryzCe9swjub8M4mvLMJ72zCO5vwzia8swnvbMI7m/DOJryz
Ce9swjub8M4mvLMJ72zCO5vwzia8swnvbMI7m/DOJryzCe9swjub8M4mvLMJ72zCO5vwzia8swnv
bMI7m/DOJryzCe9swjub8M4mvLMJ72zCO5vwzia8swnvbMI7m/DOJryzCe9swjub8M4mvLMJ72zC
O5vwzia8swnvbMI7m/DOJryzCe9swjub8M4mvLMJ72zCO5vwzia8swnvbMI7m/DOJryzCe9swjub
8M4mvLMJ72zCO5vwzia8swnvbMI7m/DOJryzCe9swjub8M4mvLMJ72zCO5vwzia8swnvbMI7m/DO
JryzCe9swjub8M4mvLMJ72zCO5vwzia8swnvbMI7m/DOJryzCe9swjub8M4mvLMJ72zCO9sJvPPD
6Dl9566AC7drXGMON7/UfjXNFG/cHqOJdW1iXZtY1ybWtYl1bWJdm1jXJta1iXVtYl2bWNcm1rWJ
dW1iXZtY1ybWtYl1bWJdm1jXJta1iXVtYl2bWNcm1rWJdW1iXZtY1ybWtYl1bWJdm1jXJta1iXVt
Yl2bWNcm1rWJdW1iXZtY1ybWtYl1bWJdm1jXJta1iXVtYl2bWNcm1rWJdW1iXZtY1ybWtYl1bWJd
m1jXJta1iXVtYl2bWNcm1rWJdW1iXZtY1ybWtYl1bWJdm1jXJta1iXVtYl2bWNcm1rWJdW1iXZtY
1ybWtYl1bWJdm1jXJta1iXVtYl2bWNcm1rWJdW1iXZtY1ybWtYl1bWJdm1jXJta1iXVtYl2bWNcm
1rWJdW1iXZtY1ybWtYl1bWJdm1jXJta1iXVtYl2bWNcm1rWJdW1iXZtY1ybWtYl1bWJdm1jXJta1
iXVtYl2bWNcm1rWJdW1iXZtY1ybWtYl1bWJdm1jXJta1iXVtYl2bWNcm1rWJdW1iXZtY1ybWtYl1
bWJdm1jXJta1iXVtYl2bWNcm1rWJdW1iXZtY1ybWtYl1bWJdm1jXJta1iXVtYl2bWNcm1rWJdW1i
XZtY1ybWtYl1bWJdm1jXJta1iXVtYl2bWNcm1rWJdW1iXZtY1ybWtYl1bWJdm1jXJta1iXVtYl2b
WNcm1rWJdW1iXZtY1ybWtYl1bWJdm1jXJta1iXVtYl2bWNcm1rWJdW1iXZtY1ybWtYl1bWJdm1jX
1tWorkZ1NaqrUV2N6mpUV6O6GtXVqK5GdTWqq1FdjepqVFejuhrV1aiuRnU1qqtRXY3qalRXo7oa
1dWorkZ1NaqrUV2N6mpUV6O6GtXVqK5GdTWqq1FdjepqVFejuhrV1aiuRnU1qqtRXY3qalRXo7oa
1dWorkZ1NaqrUV2N6mpUV6O6GtXVqK5GdTWqq1FdjepqVFejuhrV1aiuRnU1aqhRQ40aatRQo4Ya
NdSooUYNNWqoUUONGmrUUKOGGjXUqKFGDTVqqFFDjRpq1FCjhho11KihRg01aqhRQ40aatRQo4Ya
NdSooUYNNWqoUUONGmrUUKOGGjXUqKFGDTVqqFFDjRpq1FCjhho11KihRg01aqhRQ40aatRQo4Ya
NdSooUYNNWqoUUONGmrUUKOGGjXUqKFGDTVqqFFDjRpq1FCjhho11KihRg01aqhRQ40aatRQo4Ya
NdSooUYNNWqoUUONGmrUUKOGGjXUqKFGDTVqqFFDjRpq1FCjhho11KihRg01aqhRQ40aatRAo/IW
GjUDm4HdQDFQDYSBZiANdANmupnpZqabmW5mupnpZqabmW5mupnpZqa7me5mupvpbqa7me5mupvp
bqa7me5mWsy0mGkx0zesVLrR+y95Hz+kVb+robbVq0fcXQGx6eqodPWi1voPFhL16ybebb/4t3k5
SJeDdDlIl4N0OUiXg3Q5SJeDdDlIl4N0OUiXg3Q5SJeDdDlIl4N0OUiXg3Q5SJeDdDlIl4N0OUiX
g3Q5SJeD9CYdpL+2LHb44O7Db+49+O6T+4ff3bn77ODHrw/+886jOw8Onxx+8uT7e98effWf9558
8mT+5+D5Pz08eL4Idvj48fEa7Pd3HlzC9bksjMvCuCyMy8K4LIzLwrgsjMvCuCyMy8K4LIzLwrgs
jMvCuCyMy8K4LIzLwrgsjMvCuCyMy8K4LIzLwrgsjMvC+B4sjO9xqexXN2w9evjo46Ofjv746N6j
w0+/P7zzzeHjf7p9d/7kycFnDx8cPX54/+D28f7IB39+fO+7ew/+8Itn8Pv/87rf/Ozx4TeHD47u
3bn/5A9Hj58evvjXfz08mv/02Gz5h+8+zT/8z+Of3dxWtR/amV8v5fWXrsC9B0+Od1A+OEnqyceP
nv3x+Oi/O/3/n56McuXbhl7hxrqXcnu+l+1K735/ePeHg/t3nj18enRw9P1rz+21X9eLfVjXT1i+
LNv5iozAF+AYv37z8G/vP7xzdLxv+PF24deGZL6Js72Z7/EvXIjz3+X3eRl+fdf513zw77Kb+ocj
GM8nF7d+vPPTwZ3vDj+99V9XOX/xQlyvkP6q3f/o3o+H88Y4Psz1fBQXGfkf4Pt959Ptv+gX+sWZ
//amgu8wLXvLWeSHPFm66V3ur22T+vng6hN18Ym6+ERdfKIuPlEXn6irT9TVJ+rqE3X12b+aaTXT
aqbVTKuZVjMNMw0zDTMNMw0zDTMNMw0zDTMNM21m2sy0mWkz02amzUybmTYzbWbazDTNNM00zTTN
NM00zTTNNM00zTTNtJtpN9Nupt1Mu5l2M+1m2s20m2k302Gmw0yHmQ4zHWY6zHSY6TDTYaa+S918
l7r5LnXzXermu9TNd6mb71I336VuvkvdfJe6+S51813q5rvUzXepm+9SN9+lbr5L3XyXuvkudfNd
6ua71M13qZvvUjffpW6+S918l7r5LnXzXermu9TNd6mb71I336VuvkvdfJe6FTNVozY1alOjNjVq
U6M2NWpTozY1alOjNjVqU6M2NWpTozY1alOjNjVqU6M2NWpTozY1alOjNjVqU6M2NWpTozY1alOj
NjVqU6M2NWpTozY1alOjNjVqU6M2NWpTozY1alOjNjVqU6M2NWpTozY1alOjNjVqU6M2NWpTozY1
alOjNjVqU6M2NWpTozY1alOjNjVqU6M2NWpTozY1alOjNjVqU6M2NWpXo3Y1alejdjVqV6N2NWpX
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
WV2W1WVZXZbVZVldltVlWV2W1WVZXZbVZVldltVlWV2W1au3rL7HJbYr3Cj15crctZlSP3T/4t1P
y3/RPVVfnPn17ql6+f1LfwN7hL6/Pd/j0pf9/N7kH+4e73G95e+9bNgev83Nhz/kXYQvtbn9weFP
x7kefnO8y/31fK/eKpWLbkj+SxL89MmjF1fqoqd0+8Gzf57//DfPhJi6dUkmxGv3if/5pbzAR3J9
G0p333V033V033V033V033V033V033V033V033V033V033V033V033V033V033V033V033V033V0
33V033V033V033V033V033V033V033V033V033V033V033V033V033V033V033V033V033V033V0
33V033V033V033V033V033V033V033V033V033V033V033V033V033V033V033V033V033V033V0
33V033V033V033V033V033V033V033V033V033UM33UM33UM33UM33UM33UM33UM33UM33UM33UM
33UM33UM33UM33UM33UM33UM33UM33UM33UM33UM33UM33UM33UM33UM33UM33UM33UM33UM33UM
33UM33UM33UM33UM33UM38cPNWqoUUONGmrUUKOGGjXUqKFGDTVqqFFDjRpq1FCjhho11KihRg01
aqhRQ40aatRQo4YaNdSooUYNNWqoUUONGmrUUKOGGjXUqKFGDTVqqFFDjRpq1FCjhho11KihRg01
aqhRQ40aatRQo4YaNdSooUYNNWqoUUONGmrUUKOGGjXUqKFGDTVqqFFDjRpq1FCjhho11KihRg01
aqBR8wnhloHNwG6gGKgGwkAzkAa6ATPdzHQz081MNzPdzHQz081MNzPdzHQz091MdzPdzXQ3091M
dzPdzXQ3091MdzMtZlrMtJhpMdNipsVMi5kWMy1mWsy0mmk102qm1UyrmVYzrWZazbSaaTXTMNMw
0zDTMNMw0zDTMNMw0zDTMNNmps1Mm5k2M21m2sy0mWkz02amzUzTTNNM00zTTNNM00zTTNNM00zT
TLuZdjPtZtrNtJtpN9Nupt1Mu5l2Mx1mOsx0mOkw02Gmw0yHmQ4zHWaqRolg6yLYugi2LoKti2Dr
Iti6CLYugq2LYOsi2LoIti6CrYtg6yLYugi2LoKti2DrIti6CLYugq2LYOsi2LoIti6CrYtg6yLY
ugi2LoKti2DrIti6CLYugq2LYOsi2LoIti6CrYtg6yLYugi2LoKti2DrIti6CLYugq2LYOsi2LoI
ti6CrYtg6yLYugi2LoKti2DrIti6CLYugq2LYOsi2LoIti6CrYtg6yLYugi2LoKti2DrIti6CLYu
gq2LYOsi2LoIti6CrYtg6yLYugi2LoKti2DrIti6CLYugq2LYOsi2LoIti6CrYtg6yLYugi2LoKt
i2DrIti6CLYugq2LYOsi2LoIti6CrYtg6yLYugi2LoKti2DrIti6CLYugq2LYOsi2LoIti6CrYtg
6yLYugi2LoKti2DrIti6CLYugq3//9l7+x45biTd96v4/iFjd2DK+cKXiAEaA82M59g4M7axtq/P
AS5g5KtUo1ZVo6valhb74W9Wt9SSHlVXkZkkk9VK7GxLaktdkUwynmAw4kdEsBEi2AgRbIQINkIE
GyGCjRDBRohgI0SwESLYCBFshAg2QgQbIYKNEMFGiGAjRLBRERDFf4aniYHPrk9RDggBeIQAPEIA
HiEAjxCARwjAIwTgEQLwCAF4hAA8QgAeIQCPEIBHCMAjBOARAvAIAXiEADxCAB4hAI8QgEcIwCME
4BEC8AgBeIQAPEIAHiEAjxCARwjAIwTgEQLwCAF4hAA8QgAeIQCPEIBHCMAjBOARAvAIAXiEADxC
AB4hAI8QgEcIwCME4BEC8AgBeIQAPEIAHiEAjxCARwjAIwTgEQLwCAF4hAA8QgAeIQCPEIBHCMAj
BOARAvAIAXiEADxCAB4hAI8QgEcIwCME4BEC8AgBeIQAPEIAHiEAjxCARwjAIwTgEQLwCAF4hAA8
QgAeIQCPEIBHCMAjBOARAvAIAXiEADxCAB4hAI8QgEcIwCME4BEC8AgBeIQAPEIAHiEAjxCARwjA
IwTgEQLwCAF4hAA8QgAeIQCPEIBHCMAjBOARAvAIAXiEADxCAB4hAI8QgEcIwCME4BEC8AgBeIQA
PEIAHiEAjxCARwjAIwTgEQLwCAF4hAA8QgAeIQCPEIBHCMAjBOARAvAIAXiEADxCAB4hAI8QgEcI
wCME4BEC8AgBeIQAPEIAHiEAjxCARwjAIwTgEQLwCAF4hAA8QgAeIQCPEIBHCMAjBOARAvAIAXiE
ADxCAB4hAI8QgEcIwCME4BEC8AgBeIQAPEIAHiEAjxCARwjAIwTgEQLwCAF4hAA8QgAeIQCPEIBH
CMAjBOARAvAIAXiEADxCAB4hAI8QgEcIwCME4BEC8AgBeIQAPEIAHiEAjxCARwjAIwTgkUSNQloc
IS2OkBZHSIsjpMUR0uIIaXGEtDhCWhwhLY6QFkdIiyOkxRHS4ghpcYS0OEJaHCEtjpAWR0iLI6TF
EdLiCGlxhLQ4QlocIS2OkBZHSIsjpMUR0uIIaXGEtDhCWhwhLY6QFkdIiyOkxRHS4ghpcYS0OEJa
HCEtjpAWR0iLI6TFEdLiCGlxhLQ4QlocIS2OkBZHSIsjpMUR0uIIaXGEtDhCWhwhLY6QFkdIiyOk
xRHS4ghpcYS0OEJaHCEtjpAWR0iLI6TFEdLiCGlxhLQ4QlocIS2OkBZHSIsjpMUR0uIIaXGEtDhC
WhwhLY6QFkdIiyOkxRHS4ghpcYS0OEJaHCEtjpAWR0iLI6TFEdLiCGlxhLQ4QlocIS2OkBZHSIsj
pMUR0uIIaXGEtDhCWhwhLY6QFkdIiyOkxRHS4ghpcYS0OEJaHCEtjpAWR0iLI6TFEdLiCGlxhLQ4
QlocIS2OkBZHSIsjpMUR0uIIaXGEtDhCWhwhLY6QFkdIiyOkxRHS4ghpcYS0OEJaHCEtjpAWR0iL
I6TFEdLiCGlxhLQ4QlocIS2OkBZHSIsjpMUR0uIIaXGEtDhCWhwhLY6QFkdIiyOkxRHS4ghpcYS0
OEJaHCEtjpAWR0iLI6TFEdLiCGlxhLQ4QlocIS2OkBZHSIsjpMUR0uIIaXGEtDhCWhwhLY6QFkdI
iyOkxRHS4ghpcYS0OEJaHCEtjpAWR0iLI6TFEdLiCGlxhLQ4QlocIS2OkBZHSIsjpMUR0uIIaXGk
/Z8GRu4GT/jMsb2Qp1oWD7eVbm+u9h3YX2//qPZ9xs+vqzdPr9bPvQ7e1Au0HzL2arV+edxYrzen
f9jWGaah88Tzvun288Hyic9hssa70fvUfD/Vqu/Uhj2i0fydWfVl1bwsstdF5n0VWo3Huvr9xPqf
xMWwfi/vlna89xLHr3lFAjzoHiLP5mPOctps+Hg5xHss6zF/t15mMG0cTyW2sFmBEgKZ+9EbHA1b
0U5IjGnR5AJneXi82s2rr9ebdrDmx+p6eF3f71Fnw7S4fvNTdzkYt7nehyAnXtYnC3vitAiD9zh5
ddGC+FgQHwviY0F8LIiPBfGxID4WxMeC+FgQHwviY0F8LIiPBfGxID4WxMeC+FgQHwviY0F8LIiP
BfGxID4WxMeC+FgQHwERHzNeXXR/VOZwPGhxaHfyBG7BaixYjQWrsWA1FqzGgtVYsBoLVmPBaixY
jQWrsWA1FqzGgtVYsBoLVmPBaixYjQWrsWA1FqzGgtVYsBoLVmPBaixYjYBYjRlP4M6ANuB4ufeI
jr0ff/jp0x7X90PRDFYPdj69ehOsd9PagvGttpyZswdPzHAzgzugZhJjITKVYFwbuqf2W5fBb150
zUtxWb3Z3OzE7oUdmcCVGzPDczlNqoQXZ3+hAzjmiLiiiAv2wPz8dHrPOUfPQQ3uJ1wsbsH2bSHS
NozvcaiACgYsGKcGvix3KQSzegWH313KL8D66aO8i4Vx4ucSr3vex7Ddw30oZiA1ZiA1ZiA1ZiA1
ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1
ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1
ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1ZiA1
ZiA1ZiA1ZiA1ZiANZiANZiANZiANZiANZiANZiANZiANZiANZiANZiANZiANZiANZiANZiANZiAN
ZiANZiANZiANZiANZiANZiANZiANZiANZiANZiANZiANZiANZiANZiANZiANZiANZiANZiANnpIZ
1CiDGmVQowxqlEGNMqhRBjXKoEYZ1CiDGmVQowxqlEGNMqhRBjXKoEYZ1CiDGmVQowxqlEGNMqhR
BjXKoEYZ1CiDGmVQowxqlEGNMqhRBjXKoEYZ1CiDGmVQowxqlEGNMqhRBjXKoEYZ1CiDGmVQowxq
lEGNMqhRBjXKoEYZ1CiDGmVQowxqlEGNMqhRBjXKoEYZ1CiDGmVQowxqlEGNMqhRBjXKoEYZ1CiD
GkWoUYQaRahRhBpFqFGEGkWoUYQaRahRhBpFqFGEGkWoUYQaRahRhBpFqFGEGkWoUYQaRahRhBpF
qFGEGkWoUYQaRahRhBpFqFGEGkWoUYQaRahRhBqF3ERCbiIhN5GQm0jITSTkJhJyEwm5iYTcREJu
IiE3kZCbSMhNJOQmEnITCbmJhNxEQm4iITeRkJtIyE0k5CYSchMJuYmE3ERCbiIhN5GQm0jITSTk
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
7WieIlO+vS3z1c3lbtVsLr9+9xuxq+rLTjTd5aXIsvzp6xc722f49fbTt3aPYXchn3h3wfPxR5rS
pniGkyrYbX1TxtFyXn7xH99v1p3lsbjDJHX5uSPmXpR7Jd1vPx7rRBKe9N2FOuU6P5ocY+77vb6b
NuGciuslt5aLx/fiTeCCZ5cLdX2M0ifOZeL8cfE757Dqwt4Eex8p7rrXu7bbx4LXoq92w5juB7l6
Nfy3gMvS+uMt3uoZvNFIEenp6jVsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJs
UGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJs
UGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJs
UGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUGJsUOK7BqWp
N5WzRFcm0ZVJdGUSXZlEVybRlUl0ZRJdmURXJtGVSXRlEl2ZRFcm0ZVJdGUSXZlEVybRlUl0ZRJd
mURXJtGVSXRlEl2ZRFcm0ZVJdGUSXZlEVybRlUl0ZRJdmURXJtGVSXRlEl2ZRFcm0ZVJdGUSXZlE
VybRlUl0ZRJdmURXJtGVSXRlEl2ZRFcm0ZVJdGUSXZlEVybRlUl0ZRJdmURXJtGVSXRlEl2ZRFcm
0ZVJdGUSXZlEVybRlSl0ZQpdmcLkvMLkvMLkvMLkvMLkvMLkvMLkvMLkvMLkvMLkvMLkvMLkvMLk
vMLkvMLkvMLkvMLkvMLkvMLkvMLkvMLkvMLkvMLkvMLkvMLkvMLkvMLkvMLkvMLkvMLkvMLkvMID
ZIUapVCjFGqUQo1SqFEKNUqhRinUKIUapVCjFGqUQo1SqFEKNUqhRinUKIUapVCjFGqUQo1SqFEK
NUqhRinUKIUapVCjFGqUQo1SqFEKNUqhRinUKIUapVCjFGqUQo1SqFEKNUqhRinUKIUapVCjFGqU
Qo1SqFEKNUqhRinUKIUapVCjFGqUQo1SqFEKNUqhRinUKIUapVCjFGqUQo1SqFEKNUqhRinUKIUa
pVCjNGqURo3SqFEaNUqjRmnUKI0apVGjNGqURo3SqFEaNUqjRmnUKI0apVGjNGqURo3SqFEaNUqj
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
Dp0MbK8uV7v97+IdRnz8kY/kADRsUckj9jdz1mSE6m05g3I9X1nbjxdzSE84/oOXAgr7KTg125Vn
tunPpUwjcCbA25nu23fqnHe8Wb9tL+9a8b5wK8L1Ew9/8OO7isHTy01TBmclks486LOeqFjPikOO
7e4ke1hzdswzu7Tc5vnNVuwPx8N0NMWb3aeTZIV3+sxsPs16eoRJBT5URnxLTdhb8KK7vOquLelt
bnPUpcdsdNrxYaXzlbEtwiVqfWU9Rw4C5Caqq6tu3YrNWvx909zsXaNtJGs3wUI9hp/MzANPnxQo
0uvh6kEv9JgCw9AP/dlmQNxkIMTohs4p2z/A2b9nh7TTAy5yYoxsV9fgIV03xvzZskh5ZE7ywdcR
1rP6S8/kgaU6ngYsQJtkMhS5t3bPwkux1dhIx7oDbu48XP746nJtnsllKzoKgvt+f7XrRVnYJKM+
EM3d7npV3wQplPWT6n7/UC4JhwefcDRg+R1Jtr6smpdF9rrInl6tn0dIn90jbP+o9hOw3re5+P7k
hyfp4cc+taBs53gontjp54HRjPJAC+UmZLmsuyLOszs95NpCZ1EtP+lcJuhB755eAQlIj0uy9up6
096xaoPOxXG2HlfZICNjl9IJSAScHCoWaQVYD021QDPF8f25hHqe3ozvOs2/VcM+5F1RzVfrjWj2
3zgLOuEk0yNItvVzDBbuX/s/q/Xzm+p591V/vdTgexqhuSKzszwrSY1tEeV8JTCa3JPb9+9tfn5z
1X21b1R6Uvzj9hPOwuVPM/5xeYOpFygeqJe424GJevVcdOt2Va2HRfLKJlVn+wK/eX21Gv7GV5l8
UmT/qt4MX3MmGn4piifls3dfiux//evns5iRAR4o7Cz1WL51eLa8TuvSwBgO+OwOBHyLyj+r7U78
a5gf/apr4yxu+0m53px2YjFcRbBBinQg56QX3pJ9ru/59UmteviHXa52u8sukPT9eF09f1WlscV2
ceax3uSng//aawPTuPFPToyT/SeWp8fl8eoDt560591XhZm8kiyWxWHPMOeJxiijfS5n9w5Cl7eV
kqbdC0vi7/tgzOPXfdu+65+66yHi/OqPq93t72bLZ9ouDpsYccQP9Ktg4wb1MSiYQ3VSaVmU5Ow/
AyypkTZ4D8pOZUqbaruH12679Xa1W/3u/+zS+gDukCW+j8R+ra7XwxB+9a/Vuh32YcNHD1+fV1ez
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
uFQiLpWISyXiUom4VCIulYhLJeJSibhUIi6ViDErER1u7Pt3dVXd3ti3fbHqd7/9e7X9ejt8Ebd/
tRO3h2Dd9fW+YOVFtX5+Y3lByLyn/b4uIR5XAzFTwcByY8NyY8NyY8NyY8NyY8NyY8NyY8NyY8Ny
Y8NyY8NyY8NyY8NyY8NyY8NyY8NyY8NyY8NyY8NyY8NyY8NyY8NyY8NyY8NyY8NyY8NyY8MMNzbM
ezbpin8Y9lx5qapcFNxrIWVfCmq1EUY31OSd0tTyB/gHo9UQ7O73DPsiJcNfttWuewd5GIbwA8gD
PdmTHv6cZ38eVPYO8uCbu+Gtl/gB5IbrcerxVtLAZoxv7/b09GP6+8d8dIiu4Rn7831DFs5/wUft
eXelKCVQyPFZ+Xg3hk1byHoYv1xUPQ1vRzMJyrtOVKo1fSnbrG3yIEsxFCpl9FPGIPWUmVz8j28K
lT0/xGYo/fFqbCbdzHoYIjLYba6e7l7v7qK4u8f5j9diCNL71eWuu+7ar36vLm+6/wyP9vM7MaKL
7LzzLYY7POrIbedRmJjZ1UtTR5XpZStK3Sgh+6wWNfdKFF1ZctXLTHYfeumSiDij4ja7lZXqLRVQ
5cU+7ca5KU1G76GAvw5P+4k7Nh5jg8/dfT1cf7u5fjlMZ+8s0nN2n+nN+Lk3QDbTZyyONA1/6Lrr
Oz8xepwef6qLPM03IzxXpP+fvXvrjSyxDiz9V/TSgl9Cw3PZNwNCw2jAmHlxD2YG0GODySSlMqSq
QmXWjPXvJ1g3Z31yZfLOLOl0N9p22rJ2kcHYzLNjreVdsb0rtnfF9q7Y3hXbu2J7V2zviu1dsb0r
tnfF9q7Y3hXbu2J7V2zviu1dsb0rtnfF9q7Y3hXbu2J7V2zviu1dsb0rtnfF9q7Y3hXbu2J7V2zv
iu1dsb0rtnfF9q7Y3hXbu2J7V2zviu1dsb0rtnfF9q7Y3hXbu2J7V2zviu1dsb0rtnfF9q7Y3hXb
u2J7V2zviu1dsb0rtnfF9q7Y3hXbu2J7V2zviu1dsb0rtnfF8a443hXHu+J4VxzviuNdcbwrjnfF
8a443hXHu+J4VxzviuNdcbwrjnfF8a443hXHu+J4VxzviuNdcbwrjnfF8a443hXHu+J4VxzviuNd
cbwrjp99GXfUuKPGHTXuqHFHjTtq3FHjjhp31Lijxh017qhxR407atxR444ad9S4o8YdNe6ocUeN
O2rcUeOOGnfUuKPGHTXuqHFHjTtq3FHjjhp31Lijxh017qhxR407atxR444ad9S4o8YdNe6ocUeN
O2rcUeOOGnfUuKPGHTXuqHFHjTtq3FHjjhp31Lijxh017qhxR407atxR444ad9S4o8YdNeyouGBH
nf9g8Q9W/2DzD3b/IPyD9A/KP2j/wEkXJ12cdHHSxUkXJ12cdHHSxUkXJ12cdHXS1UlXJ12ddHXS
1UlXJ12ddHXS1Uk3J92cdHPSzUk3J92cdHPSzUk3J92cdHfS3Ul3J92ddHfS3Ul3J92ddHfS3UnD
ScNJw0nDScNJw0nDScNJw0nDSdNJ00nTSdNJ00nTSdNJ00nTSdNJy0nLSctJy0nLSctJy0nLSctJ
y0nbSdtJ20nbSdtJ20nbSdtJ20nbScdJx0nHScdJx0nHScdJx0nHSd1Rstghix2y2CGLHbLYIYsd
stghix2y2CGLHbLYIYsdstghix2y2CGLHbLYIYsdstghix2y2CGLHbLYIYsdstghix2y2CGLHbLY
IYsdstghix2y2CGLHbLYIYsdstghix2y2CGLHbLYIYsdstghix2y2CGLHbLYIYsdstghix2y2CGL
HbLYIYsdstghix2y2CGLHbLYIYsdstghix2y2CGLHbLYIYsdstghix2y2CGLHbLYIYsdstghix2y
2CGLHbLYIYsdstghix2y2CGLHbLYIYsdstghix2y2CGLHbLYIYsdstghix2y2CGLHbLYIYsdstgh
ix2y2CGLHbLYIYsdstghix2y2CGLHbLYIYsdstghix2y2CGLHbLYIYsdstghix2y2CGLHbLYIYsd
stghix2y2CGLHbLYIYsdstghix2y2CGLHbLYsX6itHq/DwouF9c3c3E1p3h7tZ/2q4pTL3l5mpir
q1vbT+7XT/85gE+KukLAPATMQ8A8BMxDwDwEzEPAPATMQ8A8BMxDwDwEzEPAPATMQ8A8BMxDwDwE
zEPAPATMQ8A8BMxDwDwEzEPAPATMQ8A8BMxDwDwEzEPAPATMQ8A8BMxDwDwEzEPAPATMQ8A8BMxD
wDwEzEPAPATMQ8A8BMxDwDwEzEPAPATMQ8A8BMxDwDwEzEPAPATMQ8A8BMxDwDwEzEPAPATMQ8A8
BMxDwDwEzEPAPATMQ8A8BMxDwDwEzEPAPATMQ8A8BMxDwDwEzEPAPATMQ8A8BMxDwDwEzEPAPATM
Q8A8BMxDwDwEzEPAPATMQ8A8BMxDwDwEzEPAPATMQ8A8BMxDwDwEzEPAPATMQ8A8BMxDwDwEzEPA
PATMQ8A8BMxDwDwEzEPAPATMQ8A8BMxDwDwEzEPAPATMQ8A8BMxDwDwEzEPAPATMQ8A8BMxDwDwE
zEPAPATMQ8A8BMxDwDwEzEPAPATMQ8A8BMxDwDwEzEPAPATMQ8A8BMxDwDwEzEPAPATMQ8A8BMxD
wDwEzEPAPATMQ8A8BMxDwDwEzEPAPATMQ8A8BMxDwDwEzEPAPATMQ8A8BMxDwDwEzEPAPATMQ8A8
BMxDwDwEzEPAPATMQ8A8BMxDwDwEzEPAPATMQ8A8BMxDwDwEzEPAPATMQ8A8BMxDwDwEzEPAPHZ3
lDHWMMYaxljDGGsYYw1jrGGMNYyxhjHWMMYaxljDGGsYYw1jrGGMNYyxhjHWMMYaxljDGGsYYw1j
rGGMNYyxhjHWMMYaxljDGGsYYw1jrGGMNYyxhjHWMMYaxljDGGsYYw1jrGGMNYyxhjHWMMYaxljD
GGsYYw1jrGGMNYyxhjHWMMYaxljDGGsYYw1jrGGMNYyxhjHWMMYaxljDGGsYYw1jrGGMNYyxhjHW
MMYaxljDGGsYYw1jrGGMNYyxhjHWMMYaxljDGGsYYw1jrGGMNYyxhjHWMMYaxljDGGsYYw1jrGGM
NYyxhjHWMMYaxljDGGsYYw1jrGGMNYyxhjHWMMYaxljDGGsYYw1jrGGMNYyxhjHWMMYaxljDGGsY
Yw1jrGGMNYyxhjHWMMYaxljDGGsYYw1jrGGMNYyxhjHWMMYaxljDGGsYYw1jrGGMNYyxhjHWMMYa
xljDGGsYYw1jrGGMNYyxhjHWMMYaxljDGGsYYw1jrGGMNYyxhjHWMMYaxljDGGsYYw1jrGGMNYyx
hjHWMMYaxljDGGsYYw1jrGGMNYyxhjHWMMYaxljDGGsYYw1jrGGMNYyxhjHWMMYaxljDGGsYYw1j
rGGMNYyxhjHWMMYaxljDGGsYYw1jrGGMNYyxhjHWMMYaxljDGGsYYw1jrGGMNYyxhjHWMMYaxljD
GGsYYw1jrGGMNfITR7YXVvL8w6KnH/VWPT8R/OjT6YtxnB/3mz3pV+oxX9zHatjuwh0/twzt0TN8
Xij8fa0bd3nZP4Um4e/ClfE34pW7vJN/jvqp132V3PFt9C9//fFH8v5o/9N+C19XEPX5qTU+M6fD
8fmj4/NHx+ePjs8fHZ8/Oj5/dHz+6Pj80fH5o+PzR8fnj47PHx2fPzo+f3R8/uj4/NHx+aPj80fH
54+Ozx8dnz86Pn90fP7o+PzR8fmj4/NHr/D5o9cNBX7yWnYosQ8l9qHEPpTYhxL7UGIfSuxDiX0o
sQ8l9qHEPpTYhxL7UGIfSuxDiX0osQ8l9qHEPpTYhxL7UGIfSuxDiX0osQ8l9jMqsV/3WnafVvBL
IbT31QzMzc3VdVzHKa/27bRv63a6XLc+7XF1EW9vzq/UmzcfaAbOr4eL818de93OL8iKrX779vL9
9e//9ZsvbnUCa32oE+jzf1jmn5eLfz6v/u91Ap9R+ff5u+q/+/d330OP775986S45Xax/+bv8fv8
2oXzvye6+S4vytfwHhxvR0+niDl+pp9O0nCXr+Vn8I1/0Nyv+T34gNl/d/mX6x/fhX603Nz1S/ov
X/71fz//jz/kq/mJCX7zT//21ZfXn4mR6L7vAG/fXGxvt7eXpy3m4rTXfnO6vLy5PL3N86/QN3nZ
1/vFB+8A3/09a+3t/AO7dS4/OKJyLvqi932/uP0U2mw//aT/8M7w85/0eZ23xad393y4CZ/QHfL5
fWM+DzHJt++/+PPLGrx+/He8l1jkv3qLeI43h0cZvP4R3iaey0t29+3wye/ADx+S/eP1+9Ptq+r0
xZc3X/3u/G5yj1f5Y/7e+VI/Ww9/633Mz9Xjv7Wf1Ox98JeYF/DYvfAX4+f/kj9894/67ol/f3ru
f+xj8z7ugcZ9fgLu8HvwE23bp/uF7CNvwC+w9D/JSER6N03vpundNL2bpnfT9G6a3k3Tu2l6N03v
pundNL2bpnfT9G6a3k3Tu2l6N03vpundNL2bpnfT9G6a3k3Tu2l6N03vpundNL2bpnfT9G6a3k3T
u2l6N03vpundNL2bpnfT9G6a3k3Tu2l6N03vpundNL2bpnfT9G6a3k3Tu2l6N03vpundNL2bpnfT
9G6a3k3Tu2l6N03vpundNL2bpnfT9G6a3k3Tu2l6N03vpundNL2blnfT8m5a3k3Lu2l5Ny3vpuXd
tLyblnfT8m5a3k3Lu2l5Ny3vpuXdtLyblnfT8m5a3k3Lu2l5Ny3vpuXdtLyblnfT8m5a3k3Lu2l5
Ny3vpuXdtPxsT7mjyh1V7qhyR5U7qtxR5Y4qd1S5o8odVe6ockeVO6rcUeWOKndUuaPKHVXuqHJH
lTuq3FHljip3VLmjyh1V7qhyR5U7qtxR5Y4qd1S5o8odVe6ockeVO6rcUeWOKndUuaPKHVXuqHJH
lTuq3FHljip3VLmjyh1V7qhyR5U7qtxR5Y4qd1S5o8odVe6ockeVO6rcUeWOKndUuaPKHVXuqHJH
tTuq3VHtjmp3VLuj2h3V7qh2R7U7qt1R7Y5qd1S7o9od1e6odke1O6rdUe2OandUu6PaHdXuqHZH
tTuq3VHtjmp3VLuj2h3V7qh2R8mah6x5yJqHrHnImoeseciah6x5yJqHrHnImoeseciah6x5yJqH
rHnImoeseciah6x5yJqHrHnImoeseciah6x5yJqHrHnImoeseciah6x5yJqHrHnImoeseciah6x5
yJqHrHnImoeseciah6x5yJqHrHnImoeseciah6x5yJqHrHnImoeseciah6x5yJqHrHnImoesecia
h6x5yJqHrHnImoeseciah6x5yJqHrHnImoeseciah6x5yJqHrHnImoeseciah6x5yJqHrHnImoes
eciah6x5yJqHrHnImoeseciah6x5yJqHrHnImoeseciah6x5yJqHrHnImoeseciah6x5yJqHrHnI
moeseciah6x5yJqHrHnImoeseciah6x5yJqHrHnImoeseciah6x5yJqHrHnImoeseciah6x5yJqH
rHnImoeseciah6x5yJqHrHnImoeseciah6x5yJqHrHnImoeseciah6x5yJqHrHnImoeseciah6x5
yJqHrHnImoeseciah6x5yJqHrHnImoeseciah6x5yJqHrHnImoesecqap6x5ypqnrHnKmqesecqa
p6x5ypqnrHnKmqesecqap6x5ypqnrHnKmqesecqap6x5ypqnrHnKmqesecqap6x5ypqnrHnKmqes
ecqa58UnioaP+NjhXa6sT3/b/2TDJ6XpU5o+pelTmj6l6VOaPqXpU5o+pelTmj6l6VOaPqXpU5o+
pelTmj6l6VOaPqXpU5o+pelTmj6l6VOaPqXpU5o+pelTmj6l6VOaPqXpU5o+pelTmj6l6VOaPqXp
U5o+pelTmj6l6VOaPqXpU5o+pelTmj6l6VOaPqXpU5o+pelTmj6l6VOaPqXpU5o+pelTmj6l6VOa
PqXpU5o+pelTmj6l6VOaPqXpU5o+pelTmj6l6VOaPqXpU5o+pelTmj6l6VOaPqXpU5o+pelTmj6l
6VOaPqXpU5o+pelTmj6l6VOaPqXpU5o+pelTmj6l6VOaPqXpU5o+pelTmj6l6VOaPqXpU5o+pelT
mj6l6VOaPqXpU5o+pelTmj6l6VOaPqXpU5o+pelTmj6l6VOaPqXpU5o+pelTmj6l6VOaPqXpU5o+
pelTmj6l6VOaPqXpU5o+pelTmj6l6VOaPqXpU5o+pelTmj6l6VOaPqXpU5o+pelTmj6l6VOaPqXp
U5o+pelTmj6l6VOaPqXpU5o+pelTmj6l6VOaPqXpU5o+pelTmj6l6VOaPqXpU5o+pelTmj6l6VOa
PqXpU5o+pelTmj6l6VOaPqXpU5o+pelTmj6l6VOaPqXpU5o+pelTmj6l6VOaPqXpU5o+pelTmj6l
6VOaPqXpc3VH2UJNW6hpCzVtoaYt1LSFmrZQ0xZq2kJNW6hpCzVtoaYt1LSFmrZQ0xZq2kJNW6hp
CzVtoaYt1LSFmrZQ0xZq2kJNW6hpCzVtoaYt1LSFmrZQ0xZq2kJNW6hpCzVtoaYt1LSFmrZQ0xZq
2kJNW6hpCzVtoaYt1LSFmrZQ0xZq2kJNW6hpCzVtoaYt1LSFmrZQ0xZq2kJNW6hpCzVtoaYt1LSF
mrZQ0xZq2kJNW6hpCzVtoaYt1LSFmrZQ0xZq2kJNW6hpCzVtoaYt1LSFmrZQ0xZq2kJNW6hpCzVt
oaYt1LSFmrZQ0xZq2kJNW6hpCzVtoaYt1LSFmrZQ0xZq2kJNW6hpCzVtoaYt1LSFmrZQ0xZq2kJN
W6hpCzVtoaYt1LSFmrZQ0xZq2kJNW6hpCzVtoaYt1LSFmrZQ0xZq2kJNW6hpCzVtoaYt1LSFmrZQ
0xZq2kJNW6hpCzVtoaYt1LSFmrZQ0xZq2kJNW6hpCzVtoaYt1LSFmrZQ0xZq2kJNW6hpCzVtoaYt
1LSFmrZQ0xZq2kJNW6hpCzVtoaYt1LSFmrZQ0xZq2kJNW6hpCzVtoaYt1LSFmrZQ0xZq2kJNW6hp
CzVtoaYt1LSFmrZQ0xZq2kJNW6hpCzVtoaYt1LSFmrZQ0xZq2kJNW6hpCzVtoaYt1LSFmrZQ0xZq
2kJNW6hpCzVtoaYt1LSFmrZQc//Exe3JfFX3vpl9GhH+JYHQl+f/7vXb03f/9V9fBOB/2jPki0KY
j/kS8J26oyLqjnjng/1RfvtfgO+8L/IbNzc38bb6dHmTy+n8M3h1muu6OtWaV9f9Zqr6Qw/SUue/
ndz2+y7OfxWszPVhHqSn0h78IlH7/quvf/f+P95/Lj6Ap1IePIBev78l4UVsPU/EQz/Zj/FT/yP8
8AJ8LX/KHUQoT0OCP9k34Be/kl98+e7r66vzbN/7AG/fun5UA373b/TUtsdfwzvir2YvP9x/8kw/
2U9o0LqHv+Q5f9u4z0/K8QvI56Nne/jvLp8sjR6f6Ts+03d8pu/4TN/xmb7jM33HZ/qOz/Qdn+k7
PtN3fKbv+Ezf8Zm+4zN9x2f6js/0HZ/pOz7Td3ym7/hM3/GZvuMzfcdn+o7P9B2f6Ts+0/eMn+l7
3dLoJ69lh3P+cM4fzvnDOX845w/n/OGcP5zzh3P+cM4fzvnDOX845w/n/OGcP5zzh3P+cM4fzvnD
OX845w/n/OGcP5zzh3P+cM4/o3P+da9lz+6hOCDbzxkmvz+yencvwL98+dc/fPevecgr6u7jvCaz
fnf7yl1+AJ6XaX6+uV/0B+cXf2i+uX57/qG/en/7j3E7yO3/wt//7nf3AW0f8WXeLtbfPH60F/2J
/+Sb9k1fXd7sNxenm4s3V+fvffSp4+3N6fry/F2/2d5en/+q/8Gb9rqte/ft33i+h0Xit+8v/3j+
81u4oOP83719oLtl/PT2/Ifrt3/79lwvCmU/ZJd9Xl+Wz+OH74fX74ev7v+2/utP//3zf/7D/8T5
C/Pt+cuyvLiZ5e6jHT+EL/xDeD/32mepDfv3d/f/be94m3maHf/pwV7iF4BH/I51l+/0Z/JLy72/
1i/8Znp3q9sjfy++y/fsV2Ntehkn2yfeI+++wG8H+m/bv5w39/n//TTW+U9uBzv/0Xf/S87/8fy/
5rP9JeTJ/hk+r99Wrpfr65vtcj9drTfXp/1meXvqdenTRV1dvlm2NesmP1haE2svtyxY7OseF/2w
xzxP9SvML2k9VWPdftU+R2/ts5smP+Y+/a++SL/5p3/76svrT7/APu212mXddlm3XdZtl3XbZd12
Wbdd1m2Xddtl3XZZt13WbZd122Xddlm3XdZtl3XbZd12Wbdd1m2Xddtl3XZZt13WbZd122Xddlm3
XdZtl3XbZd12Wbdd1m2Xddtl3XZZt13WbZd122Xddlm3XdZtl3XbZd12Wbdd1m2Xddtl3XZZt13W
bZd122Xddlm3XdZtl3XbZd12Wbdd1m2Xddtl3XZZt13WbZd122Xddlm3XdZtl3XbZd12Wbdd1m33
ehde78LrXXi9C6934fUuvN6F17vwehde78LrXXi9C6934fUuvN6F17vwehde78LrXXi9C6934fUu
vN6F17vwehde78LrXXi9C6934fUuvN6F17uQxw53VLijwh0V7qhwR4U7KtxR4Y4Kd1S4o8IdFe6o
cEeFOyrcUeGOCndUuKPCHRXuqHBHhTsq3FHhjgp3VLijwh0V7qhwR4U7KtxR4Y4Kd1S4o8IdFe6o
cEeFOyrcUeGOCndUuKPCHRXuqHBHhTsq3FHhjgp3VLijwh0V7qhwR4U7KtxR4Y4Kd1S4o8IdFe6o
cEeFOyrcUeGOCndUuKPCHRXuqHRHpTsq3VHpjkp3VLqj0h2V7qh0R6U7Kt1R6Y5Kd1S6o9Idle6o
dEelOyrdUemOSndUuqPSHZXuqHRHpTsq3VHpjkp3VLqj0h2V7iiJ55R4TonnlHhOieeUeE6J55R4
TonnlHhOieeUeE6J55R4TonnlHhOieeUeE6J55R4TonnlHhOieeUeE6J55R4TonnlHhOieeUeE6J
55R4TonnlHhOieeUeE6J55R4TonnlHhOieeUeE6J55R4TonnlHhOieeUeE6J55R4TonnlHhOieeU
eE6J55R4TonnlHhOieeUeE6J55R4TonnlHhOieeUeE6J55R4TonnlHhOieeUeE6J55R4TonnlHhO
ieeUeE6J55R4TonnlHhOieeUeE6J55R4TonnlHhOieeUeE6J55R4TonnlHhOieeUeE6J55R4Tonn
lHhOieeUeE6J55R4TonnlHhOieeUeE6J55R4TonnlHhOieeUeE6J55R4TonnlHhOieeUeE6J55R4
TonnlHhOieeUeE6J55R4TonnlHhOieeUeE6J55R4TonnlHhOieeUeE6J55R4TonnlHhOieeUeE6J
55R4TonnlHhOieeUeE6J55R4TonnlHhOieeUeE6J55R4TonnlHhOieeUeE6J55R4TonnlHhOieeU
eE6J55R4TonnlHhOieeUeE6J55R4TonnlHhOieeUeE6J55R4TonnlHhOieeUeE6J55R4TonnlHhO
ieeUeE6J55R4TonnlHhOieeUeE6J5+xPtCof8vmeX8Gp9NeWg3zepNldPr/wSedYysqnrHzKyqes
fMrKp6x8ysqnrHzKyqesfMrKp6x8ysqnrHzKyqesfMrKp6x8ysqnrHzKyqesfMrKp6x8ysqnrHzK
yqesfMrKp6x8ysqnrHzKyqesfMrKp6x8ysqnrHzKyqesfMrKp6x8ysqnrHzKyqesfMrKp6x8ysqn
rHzKyqesfMrKp6x8ysqnrHzKyqesfMrKp6x8ysqnrHzKyqesfMrKp6x8ysqnrHzKyqesfMrKp6x8
ysqnrHzKyqesfMrKp6x8ysqnrHzKyqesfMrKp6x8ysqnrHzKyqesfMrKp6x8ysqnrHzKyqesfMrK
p6x8ysqnrHzKyqesfMrKp6x8ysqnrHzKyqesfMrKp6x8ysqnrHzKyqesfMrKp6x8ysqnrHzKyqes
fMrKp6x8ysqnrHzKyqesfMrKp6x8ysqnrHzKyqesfMrKp6x8ysqnrHzKyqesfMrKp6x8ysqnrHzK
yqesfMrKp6x8ysqnrHzKyqesfMrKp6x8ysqnrHzKyqesfMrKp6x8ysqnrHzKyqesfMrKp6x8ysqn
rHzKyqesfMrKp6x8ycqXrHzJypesfMnKl6x8ycqXrHzJypesfMnKl6x8ycqXrHzJypesfMnKl6x8
ycqXrHzJypesfMnKl6x8ycqXrHzJypesfMnKl6x8ycrXxeakm5NuTro56eakm5NuTro56eaku5Pu
Tro76e6ku5PuTro76e6ku5PuThpOGk4aThpOGk4aThpOGk4aThpOmk6aTppOmk6aTppOmk6aTppO
mk5aTlpOWk5aTlpOWk5aTlpOWk5aTtpO2k7aTtpO2k7aTtpO2k7aTtpOOk46TjpOOk46TjpOOk46
TjpO6o6ydFqWTsvSaVk6LUunZem0LJ2WpdOydFqWTsvSaVk6LUunZem0LJ2WpdOydFqWTsvSaVk6
LUunZem0LJ2WpdOydFqWTsvSaVk6LUunZem0LJ2WpdOydFqWTsvSaVk6LUunZem0LJ2WpdOydFqW
TsvSaVk6LUunZem0LJ2WpdOydFqWTsvSaVk6LUunZem0LJ2WpdOydFqWTsvSaVk6LUunZem0LJ2W
pdOydFqWTsvSaVk6LUunZem0LJ2WpdOydFqWTsvSaVk6LUunZem0LJ2WpdOydFqWTsvSaVk6LUun
Zem0LJ2WpdOydFqWTsvSaVk6LUunZem0LJ2WpdOydFqWTsvSaVk6LUunZem0LJ2WpdOydFqWTsvS
aVk6LUunZem0LJ2WpdOydFqWTsvSaVk6LUunZem0LJ2WpdOydFqWTsvSaVk6LUunZem0LJ2WpdOy
dFqWTsvSaa2fuGQ+FEG8F0H+7mfnuNn37cVx/Yeh7/cb/EBznxbN/eALfP7DP11+8+X1u/u4Ql6E
xX3skI/8d/rm+uuvvnl/N/PBL436+sj/p/UND9JWnH/J/93F+f8uj1CEHB/1eN2Pejz8RftRVP2p
570rJv/v7/771198ff37d98+s/7v4+8Wn9lX78Fimrv/hH8uy/lvzDJ3ebN4RP3wcCocToXDqXA4
FQ6nwuFUOJwKh1PhcCocToXDqXA4FQ6nwuFUOJwKh1PhcCocToXDqXA4FQ6nwuFUOJwKh1PhcCoc
ToVndCq8bv3wiQoIT3UbfWy66i5X5uf8p3lkU+Mul8/XiTQeWodD63BoHQ6tw6F1OLQOh9bh0Doc
WodD63BoHQ6tw6F1OLQOh9bh0DocWodD63BoHQ6tw6F1OLQOh9bh0DocWodD6/AKWofXPabel4rO
9er66uLNnK46L077en19mnW9Pl1eXd1sb2NZrpbtQyr6/O2JPL8Azy+X8y/s22/fX/7x/Mf7VMd5
q38HJ5535E/88w+89M/557m/euBpT7S/rq/Ki15bf/EQ/8WX776+vnp/+tP15dvrb97dfq1++E9/
/92J+u4ah8d/9+4+03Me2hnrkzqG5+/A32GE19NKHG9ExxvRY96I7v4Rlrt80T6D7/CD5v48lsHV
n68vvzydZ3/3p/98rfbF+a9pb/Pq1Bdv9tN+mX26nMs+XZ3/JlqXFZe1Xb/8jnjwqJ/tO2X39RZ7
zemmL9bT/rb30+Tlm1P0er1evtnfXNR88J4Qcwuu9N5b9H6xPFBk81Tvn//z//x//o//+W//93/9
vfrpy3i/79Rv/3L5H//r8o/Xv7/47eWf//zV//e/fvwl4D9uf4W+uv7Pb8+zvPy++/69/eov/9s3
59/Rz/8U/9ftfzi/4r45/7L/xc0X5xfA7Q/a5+LHuv1hed1vwm/+6d+++vL6CT/D+Kv5sXjNN++P
iHR+eJv6+Kv0p2/JJ1/pd/j+3k2Oc/4LtX/T9xnv6jPe1We8q894V5/xrj7jXX3Gu/qMd/UZ7+oz
3tVnvKvPeFef8a4+4119xrv6jHf1Ge/qM97VZ7yrz3hXn/GuPuNdfca7+ox39Rnv6jPe1We8q894
V5/xrj7jXX3Gu/qMd/UZ7+oz3tVnvKvPeFef8a4+4119xrv6jHf1Ge/qM97VZ7yrz3hXn/GuPuNd
fca7+ox39Rnv6jPe1We8q894V5/xrj7jXX3Gu/qMd/UZ7+oz3tVnvKvPeFef8a4+4119xrv6jHf1
Ge/qM97VZ7ybz3g3n/FuPuPdfMa7+Yx38xnv5jPezWe8m894N5/xbj7j3XzGu/mMd/MZ7+Yz3s1n
vJvPeDef8W4+4918xrv5jHfzGe/mM97NZ7ybz3g3n/FuPuPdfMa7+Yx38xnv5jPezTvk5o7a3FGb
O2pzR23uqM0dtbmjNnfU5o7a3FGbO2pzR23uqM0dtbmjNnfU5o7a3FGbO2pzR23uqM0dtbmjNnfU
5o7a3FGbO2pzR23uqM0dtbmjNnfU5o7a3FGbO2pzR23uqM0dtbmjNnfU5o7a3FGbO2pzR23uqM0d
tbmjNnfU5o7a3FGbO2pzR23uqM0dtbmjNnfU5o7a3FGbO2pzR23uqM0dtbmjNnfU5o7a3FGbO2pz
R+3uqN0dtbujdnfU7o7a3VG7O2p3R+3uqN0dtbujdnfU7o7a3VG7O2p3R+3uqN0dtbujdnfU7o7a
3VG7O2p3R+3uqN0dtbujdnfU7o7a3VG7O2p3RykZLSWjpWS0lIyWktFSMlpKRkvJaCkZLSWjpWS0
lIyWktFSMlpKRkvJaCkZLSWjpWS0lIyWktFSMlpKRkvJaCkZLSWjpWS0lIyWktFSMlpKRkvJaCkZ
LSWjpWS0lIyWktFSMlpKRkvJaCkZLSWjpWS0lIyWktFSMlpKRkvJaCkZLSWjpWS0lIyWktFSMlpK
RkvJaCkZLSWjpWS0lIyWktFSMlpKRkvJaCkZLSWjpWS0lIyWktFSMlpKRkvJaCkZLSWjpWS0lIyW
ktFSMlpKRkvJaCkZLSWjpWS0lIyWktFSMlpKRkvJaCkZLSWjpWS0lIyWktFSMlpKRkvJaCkZLSWj
pWS0lIyWktFSMlpKRkvJaCkZLSWjpWS0lIyWktFSMlpKRkvJaCkZLSWjpWS0lIyWktFSMlpKRkvJ
aCkZLSWjpWS0lIyWktFSMlpKRkvJaCkZLSWjpWS0lIyWktFSMlpKRkvJaCkZLSWjpWS0lIyWktFS
MlpKRkvJaCkZLSWjpWS0lIyWktFSMlpKRkvJaCkZLSWjpWS0lIyWktFSMlpKRkvJaCkZLSWjpWS0
lIyWktFSMlpKRkvJaCkZLSWjpWS0lIyWktFSMlpKRkvJaCkZLSWjpWS0lIyWktFSMlpKRkvJaCkZ
LSWjpWS0lIyWktFSMlpKRkvJaCkZLSWjpWS0lIyWktFSMlpKRivvlen6w3dXtHd3Oxd/0mVSCk1L
oWkpNC2FpqXQtBSalkLTUmhaCk1LoWkpNC2FpqXQtBSalkLTUmhaCk1LoWkpNC2FpqXQtBSalkLT
UmhaCk1LoWkpNC2FpqXQtBSalkLTUmhaCk1LoWkpNC2FpqXQtBSalkLTUmhaCk1LoWkpNC2FpqXQ
tBSalkLTUmhaCk1LoWkpNC2FpqXQtBSalkLTUmhaCk1LoWkpNC2FpqXQtBSalkLTUmhaCk1LoWkp
NC2FpqXQtBSalkLTUmhaCk1LoWkpNC2FpqXQtBSalkLTUmhaCk1LoWkpNC2FpqXQtBSalkLTUmha
Ck1LoWkpNC2FpqXQtBSalkLTUmhaCk1LoWkpNC2FpqXQtBSalkLTUmhaCk1LoWkpNC2FpqXQtBSa
lkLTUmhaCk1LoWkpNC2FpqXQtBSalkLTUmhaCk1LoWkpNC2FpqXQtBSalkLTUmhaCk1LoWkpNC2F
pqXQtBSalkLTUmhaCk1LoWkpNC2FpqXQtBSalkLTUmhaCk1LoWkpNC2FpqXQtBSalkLTUmhaCk1L
oWkpNC2FpqXQtBSalkLTUmhaCk1LoWkpNC2FpqXQtBSalkLTUmhaCk1LoWkpNC2FpqXQtBSalkLT
UmhaCk1LoWkpNC2FpqXQtBSalkLTUmhaCk1LoWkpNC2FpqXQtBSalkLTUmhaCk1LoWkpNC2FpqXQ
tBSalkLTaneUTsjSCVk6IUsnZOmELJ2QpROydEKWTsjSCVk6IUsnZOmELJ2QpROydEKWTsjSCVk6
IUsnZOmELJ2QpROydEKWTsjSCVk6IUsnZOmELJ2QpROydEKWTsjSCVk6IUsnZOmELJ2QpROydEKW
TsjSCVk6IUsnZOmELJ2QpROydEKWTsjSCVk6IUsnZOmELJ2QpROydEKWTsjSCVk6IUsnZOmELJ2Q
pROydEKWTsjSCVk6IUsnZOmELJ2QpROydEKWTsjSCVk6IUsnZOmELJ2QpROydEKWTsjSCVk6IUsn
ZOmELJ2QpROydEKWTsjSCVk6IUsnZOmELJ2QpROydEKWTsjSCVk6IUsnZOmELJ2QpROydEKWTsjS
CVk6IUsnZOmELJ2QpROydEKWTsjSCVk6IUsnZOmELJ2QpROydEKWTsjSCVk6IUsnZOmELJ2QpROy
dEKWTsjSCVk6IUsnZOmELJ2QpROydEKWTsjSCVk6IUsnZOmELJ2QpROydEKWTsjSCVk6IUsnZOmE
LJ2QpROydEKWTsjSCVk6IUsnZOmELJ2QpROydEKWTsjSCVk6IUsnZOmELJ2QpROydEK2TsjWCdk6
IVsnZOuEbJ2QrROydUK2TsjWCdk6IVsnZOuEbJ2QrROydUK2TsjWCdk6IVsnZOuEbJ2QrROydUK2
TsjWCdk6IVsnZOuEbJ2QrROyL+51+7oTefiLiO5ng30+1LtwN7buDlzcYynUfxSK+IUtDAdaesef
5B9rLQ9k9T8H9Pjxb2x/a5T59st3lzfXp2+/+fPp3fU3/+8X55F+el94//W7e/HhD32PethUd2V5
//N7ePuHf7r85svrd+9ewHjzkFDQ3d6tn0tOcpf3kod8sb+5/vqrb95/9Ev+4SdP/nj9/nT7xTl9
8eXNV7979+2be3yzHreXPirmqLe3xdir9dRvt+20L+vV6c0eb07Len37saCbiMv9SV9Tj3kZ/tKL
/pdegp8k55+z63SX192LLpHHvqbu/5bzqB+eT2aoDm3BoS04tAWHtuDQFhzagkNbcGgLDm3BoS04
tAWHtuDQFhzagkNbcGgLDm3BoS04tAWHtuDQFhzagkNbcGgLDm3BoS14Rm3B62aoPn4j/enc9jyX
0sfcdD9yHn+RTxY89cciHnxlf7H8xScPq4cT43BiHE6Mw4lxODEOJ8bhxDicGIcT43BiHE6Mw4lx
ODEOJ8bhxDicGIcT43BiHE6Mw4lxODEOJ8bhxDicGIcT43BiPKMT43UPq/dVF7y96rfLnnnK6y1O
++V1nN70m4vTxXkX3PTl1UVcbx+oC5ZtyTj/0rRv53e+9fw7/G/fX/7x/Of7lhEXef5uLnV+eS4/
WQr+cP32by0FdX+jwwORzkfemV/7dPsUHov7UshP+s98xyne/WyM869D26PNBB8d676B+7scxJ9e
N/Ps3pLP64f/Reny2y/X674K7qrO+Pt5if7j7aY7eAMe75P59Nv0k23Il36ffsSL7ef/0n/58q/f
93eeR9/10tv0c33DOpbQ/T1Zn/SFnP9e4V94Nv/Cs/kXns2/8Gz+hWfzLzybf+HZ/AvP7l94dv9q
tjvp7qS7k+5Oujvp7qS7k+5OGk4aThpOGk4aThpOGk4aThpOGk6aTppOmk6aTppOmk6aTppOmk6a
TlpOWk5aTlpOWk5aTlpOWk5aTlpO2k7aTtpO2k7aTtpO2k7aTtpO2k46TjpOOk46TjpOOk46TjpO
Ok7qo67FR12Lj7oWH3UtPupafNS1+Khr8VHX4qOuxUddi4+6Fh91LT7qWnzUtfioa/FR1+KjrsVH
XYuPuhYfdS0+6lp81LX4qGvxUdfio67FR12Lj7oWH3UtPupafNS1+Khr8VHXsjmpO2pxRy3uqMUd
tbijFnfU4o5a3FGLO2pxRy3uqMUdtbijFnfU4o5a3FGLO2pxRy3uqMUdtbijFnfU4o5a3FGLO2px
Ry3uqMUdtbijFnfU4o5a3FGLO2pxRy3uqMUdtbijFnfU4o5a3FGLO2pxRy3uqMUdtbijFnfU4o5a
3FGLO2pxRy3uqMUdtbijFnfU4o5a3FGLO2pxRy3uqMUdtbijFnfU4o5a3FGLO2pxRy3uqMUdtbqj
VnfU6o5a3VGrO2p1R63uqNUdtbqjVnfU6o5a3VGrO2p1R63uqNUdtbqjVnfU6o5a3VGrO2p1R63u
qNUdtbqjVnfU6o5a3VGrO2p1R63uqNUdpXex9S623sXWu9h6F1vvYutdbL2LrXex9S623sXWu9h6
F1vvYutdbL2LrXex9S623sXWu9h6F1vvYutdbL2LrXex9S623sXWu9h6F1vvYutdbL2LrXex9S62
3sXWu9h6F1vvYutdbL2LrXex9S623sXWu9h6F1vvYutdbL2LrXex9S623sXWu9h6F1vvYutdbL2L
rXex9S623sXWu9h6F1vvYutdbL2LrXex9S623sXWu9h6F1vvYutdbL2LrXex9S623sXWu9h6F1vv
YutdbL2LrXex9S623sXWu9h6F1vvYutdbL2LrXex9S623sXWu9h6F1vvYutdbL2LrXex9S623sXW
u9h6F1vvYutdbL2LrXex9S623sXWu9h6F1vvYutdbL2LrXex9S623sXWu9h6F1vvYutdbL2LrXex
9S623sXWu9h6F1vvYutdbL2LrXex9S623sXWu9h6F1vvYutdbL2LrXex9S623sXWu9h6F1vvYutd
bL2LrXex9S623sXWu9h6F1vvYutdbL2LrXex9S623sXWu9h6F1vvYutdbL2LrXex9S623sXWu9h6
F1vvYutdbL2LrXex9S623sXWu9h6F1vvYutdbL2LrXex9S623sXWu9h6F1vvYutdbL2LrXex9S62
3sXWu9h6F1vvYutdbL2LrXex9S623sXWu9h6F1vvYutd7P3pU093l+Ufx6/j+HUcv47j13H8Oo5f
x/HrOH4dx6/j+HUcv47j13H8Oo5fx/HrOH4dx6/j+HUcv47j13H8Oo5fx/HrOH4dx6/j+PX0x6/P
zOnwUXn7sr6duLy4OK3b1X7a3y63Ie+lT/Nmbvab67qq/e2zlOvvAvK9AOp5fyT552zqO/5rwNjT
n67//PX5f+oH6f8rm/rv8s1+eVP/Y76grwMa3w9cfdBL/0XJ0vuqDe7yOnoKe8Avvrq/ff/Fn9/d
4+fpWcUDF9fbzUXn29NydVWnPc9fkjfXl8spcrbLutxurq4+RJLz1jyYt6Hquc3QxW/fnl8Zv//X
b7645Y7X+pA77vN/WOafl4t/Pv815Xvu+KltBC+vmXndF9vLv7197PX7FB6AT8zx3Qx/W8D59vxL
xfnb+D++f1l+/573PNvpbv/ez6QL+BX8bL68Q+Buu/H8wvrvX3/x9fXvz5v2OYUkn8WmeWqV0t/f
+9mnelbP/avtXV+qr/Mb4T/w7wwP+2F55jLaPV7Mv1wIa5PhbTK8TYa3yfA2Gd4mw9tkeJsMb5Ph
bTK8TYa3yfA2Gd4mw9tkeJsMb5PhbTK8TYa3yfA2Gd4mw9tkeJsMb5PhbTK8TYa3yfA2Gd4mw9tk
eJsMb5PhbTK8TYa3yfA2Gd4mw9tkeJsMb5PhbTK8TYa3yfA2Gd4mw9tkeJsMb5PhbTK8TYa3yfA2
Gd4mw9tkeJsMb5PhbTK8TYa3yfA2Gd4mw9tkeJsMb5PhbTK8TYa3yfA2Gd4mw9tkeJsMb5PhbTK8
TYa3yfA2Gd4mw9tkeJsMb5PhbTK8TYa3yfA2Gd4mw9tkeJsMb5PhbTK8TYa3yfA2Gd4mw9tkeJsM
b5PhbTK8TYa3yfA2Gd4mw9tkeJsMb5PhbTK8TYa3yfA2Gd4mw9tkeJsMb5PhbTK8TYa3yfA2Gd4m
w9tkeJsMb5PhbTK8TYa3yfA2Gd4mw9tkeJsMb5PhbTK8TYa3yfA2Gd4mw9tkeJsMb5PhbTK8TYa3
yfA2Gd4mw9tkeJsMb5PhbTK8TYa3yfA2Gd4mw9tkeJsMb5PhbTK8TYa3yfA2Gd4mw9tkeJsMb5Ph
bTK8TYa3yfA2Gd4mw9tkeJsMb5PhbTK8TYa3yfA2Gd4mw9tkeJsMb5PhbTK8TYa3yfA2Gd4mw9tk
eJsMb5PhbTK8TYa3yfA2Gd4mw9tkeJsMb5PhbTK8TYa3yfA2Gd4mw9tkeKc7ytJyW1puS8ttabkt
Lbel5ba03JaW29JyW1puS8ttabktLbel5ba03JaW29JyW1puS8ttabktLbel5ba03JaW29JyW1pu
S8ttabktLbel5ba03JaW29JyW1puS8ttabktLbel5ba03JaW29JyW1puS8ttabktLbel5ba03JaW
29JyW1puS8ttabktLbel5ba03JaW29JyW1puS8ttabktLbel5ba03JaW29JyW1puS8ttabktLbel
5ba03JaW29JyW1puS8ttabktLbel5ba03JaW29JyW1puS8ttabktLbel5ba03JaW29JyW1puS8tt
abktLbel5ba03JaW29JyW1puS8ttabktLbel5ba03JaW29JyW1puS8ttabktLbel5ba03JaW29Jy
W1puS8ttabktLbel5ba03JaW29JyW1puS8ttabktLbel5ba03JaW29JyW1puS8ttabktLbel5ba0
3JaW29JyW1puS8ttabktLbel5ba03JaW29JyW1puS8ttabktLbel5ba03JaW29JyW1puS8ttabkt
Lbel5ba03JaW29JyW1puS8ttabktLbel5ba03JaW29JyW1puS8ttabktLbel5ba03JaW29JyW1pu
S8ttabktLbel5ba03JaW29JyW1puS8ttabktLbel5ba03JaW29JyW1puS8ttabktLbel5ba03P30
KpU7alRMOrdJ5zbp3Cad26Rzm3Ruk85t0rlNOrdJ5zbp3Cad26Rzm3Ruk85t0rlNOrdJ5zbp3Cad
26Rzm3Ruk85t0rlNOrdJ5zbp3Cad26Rzm3Ruk85t0rlNOrdJ5zbp3Cad26Rzm3Ruk85t0rlNOrdJ
5zbp3Cad26Rzm3Ruk85t0rlNOrdJ5zbp3Cad26Rzm3Ruk85t0rlNOrdJ5zbp3Cad26Rzm3Ruk85t
0rlNOrdJ5zbp3Cad26Rzm3Ruk85t0rlNOrdJ5zbp3Cad26Rzm3Ruk85t0rlNOrdJ5zbp3Cad26Rz
m3Ruk85t0rlNOrdJ5zbp3Cad26Rzm3Ruk85t0rlNOrdJ5zbp3Cad26Rzm3Ruk85t0rlNOrdJ5zbp
3Cad26Rzm3Ruk85t0rlNOrdJ5zbp3Cad26Rzm3Ruk85t0rlNOrdJ5zbp3Cad26Rzm3Ruk85t0rlN
OrdJ5zbp3Cad26Rzm3Ruk85t0rlNOrdJ5zbp3Cad26Rzm3Ruk85t0rlNOrdJ5zbp3Cad26Rzm3Ru
k85t0rlNOrdJ5zbp3Cad26Rzm3Ruk85t0rlNOrdJ5zbp3Cad26Rzm3Ruk85t0nlMOo9J5zHpPCad
x6TzmHQek85j0nlMOo9J5zHpPCadx6TzmHQek85j0nlMOo9J5zHpPCadx6TzmHQek85j0nlMOo9J
5zHpPCadx6TzmHQek85zsTnp5qSbk25Oujnp5qSbk25Oujnp7qS7k+5Oujvp7qS7k+5Oujvp7qS7
k4aThpOGk4aThpOGk4aThpOGk4aTppOmk6aTppOmk6aTppOmk6aTppOWk5aTlpOWk5aTlpOWk5aT
lpOWk7aTtpO2k7aTtpO2k7aTtpO2k7aTjpOOk46TjpOOk46TjpOOk46TuqPUUY46ylFHOeooRx3l
qKMcdZSjjnLUUY46ylFHOeooRx3lqKMcdZSjjnLUUY46ylFHOeooRx3lqKMcdZSjjnLUUY46ylFH
OeooRx3lqKMcdZSjjnLUUY46ylFHOeooRx3lqKMcdZSjjnLUUY46ylFHOeooRx3lqKMcdZSjjnLU
UY46ylFHOeooRx3lqKMcdZSjjnLUUY46ylFHOeooRx3lqKMcdZSjjnLUUY46ylFHOeooRx3lqKMc
dZSjjnLUUY46ylFHOeooRx3lqKMcdZSjjnLUUY46ylFHOeooRx3lqKMcdZSjjnLUUY46ylFHOeoo
Rx3lqKMcdZSjjnLUUY46ylFHOeooRx3lqKMcdZSjjnLUUY46ylFHOeooRx3lqKMcdZSjjnLUUY46
ylFHOeooRx3lqKMcdZSjjnLUUY46ylFHOeooRx3lqKMcdZSjjnLUUY46ylFHOeszHb7uLMq4/TRq
5tu3p/M7+y2et9+cLvfLt6c3V7HGzfR2vVy+HEx6MM73Z5x/bg350+U3X16/+7gx4oH/soe+Fu//
7/TTa+OX/qWPRF8/pGgfrjZ48M/Ti5HMj1ZePPKb/M3111998/7Tr8VbccL3p/qnfgE+xfvn3XU3
d3l/ejo3zV1eak9hDLjjT+Pfvp7v5sO42w/gx19frzbBy0DcPzOM/PSD8oz/0K8jHXukbOouP30v
up4f4gB62h/qO26av/z1x+Vyt5fh4RM4fAKHT+DwCRw+gcMncPgEDp/A4RM4fAKHT+DwCRw+gcMn
cPgEDp/A4RM4fAKHT+DwCRw+gcMncPgEDp/A4RM4fAKv4BN43TrVJ69lh4TgkBAcEoJDQnBICA4J
wSEhOCQEh4TgkBAcEoJDQnBICA4JwSEhOCQEh4TgkBAcEoJDQnBICA4JwSEhOCQEh4TgkBA8o4Tg
da9l9+lKvxT4em89wflLebNdz6m3fHPa97f7qd/M+f+72m62q8vr/c16/YGe4Pytu/2E377cPk+I
WeO37y//ePvnt8/04vwb3n5x++m9iZ9UBD+oC36uIpgXzRq/tPHh8/qSvjg++no/Fk+Ljv7iP8e3
77/487sXiKr/7b/jSzkk/m7fRfgH+wjl/kkBxJ31Gjdvtry5XPrUN33+4uR6fer9Yj/FbFfX++Wy
Xl7FC7zvPcA98fi3ykd/YV7MO/JfjP/RV8dLKhSO5XOn5XNfb8FdXn9P8TvZI36oHqOWuMMr4dne
CF73W/FLr7on/Gl70Jf75UVbf7c/CT/9mnP+O93767en7/7rv77AL2W/+G/8uf5uttTF5cXlvD31
9bKcv7c32+nNUnF6c7FdXy775ZuYtx9shIrz/7m42PeL3GLmgQK6z+Bvfff9q8hn8Bb0i+O+/+rr
373/j/fP/xeOX/9r6fP56+4P37QX+EXxF0f44st3X19fvT/98DK9/Ub++Ir97i3oNf4q8OmZXu2d
9KN/W7msW/b5uk+Xa6ynPfbzO8Uab0+5rW8u6mJ7U3n9wLTfTw6qWb20rV7aVi9tq5e21Uvb6qVt
9dK2emlbvbStXtpWL22rl7bVS9vqpW310rZ6aVu9tK1e2lYvbauXttVL2+qlbfXStnppW720rV7a
Vi9tq5e21Uvb6qVt9dK2emlbvbStXtpWL22rl7bVS9vqpW310rZ6aVu9tK1e2lYvbauXttVL2+ql
bfXStnppW720rV7aVi9tq5e21Uvb6qVt9dK2emlbvbStXtpWL22rl7bVS9vqpW310rZ6aVu9tK1e
2lYvbauXts1L2+albfPStnlp27y0bV7aNi9tm5e2zUvb5qVt89K2eWnbvLRtXto2L22bl7bNS9vm
pW3z0rZ5adu8tG1e2jYvbZuXts1L2+albfPStnlp27y0bV7aNi9tm58G2dxRmztqc0dt7qjNHbW5
ozZ31OaO2txRmztqc0dt7qjNHbW5ozZ31OaO2txRmztqc0dt7qjNHbW5ozZ31OaO2txRmztqc0dt
7qjNHbW5ozZ31OaO2txRmztqc0dt7qjNHbW5ozZ31OaO2txRmztqc0dt7qjNHbW5ozZ31OaO2txR
mztqc0dt7qjNHbW5ozZ31OaO2txRmztqc0dt7qjNHbW5ozZ31OaO2txRmztqc0dt7qjdHbW7o3Z3
1O6O2t1Ruztqd0ft7qjdHbW7o3Z31O6O2t1Ruztqd0ft7qjdHbW7o3Z31O6O2t1Ruztqd0ft7qjd
HbW7o3Z31O6O2t1Ruztqd0ft7ihdvqPLd3T5ji7f0eU7unxHl+/o8h1dvqPLd3T5ji7f0eU7unxH
l+/o8h1dvqPLd3T5ji7f0eU7unxHl+/o8h1dvqPLd3T5ji7f0eU7unxHl+/o8h1dvqPLd3T5ji7f
0eU7unxHl+/o8h1dvqPLd3T5ji7f0eU7unxHl+/o8h1dvqPLd3T5ji7f0eU7unxHl+/o8h1dvqPL
d3T5ji7f0eU7unxHl+/o8h1dvqPLd3T5ji7f0eU7unxHl+/o8h1dvqPLd3T5ji7f0eU7unxHl+/o
8h1dvqPLd3T5ji7f0eU7unxHl+/o8h1dvqPLd3T5ji7f0eU7unxHl+/o8h1dvqPLd3T5ji7f0eU7
unxHl+/o8h1dvqPLd3T5ji7f0eU7unxHl+/o8h1dvqPLd3T5ji7f0eU7unxHl+/o8h1dvqPLd3T5
ji7f0eU7unxHl+/o8h1dvqPLd3T5ji7f0eU7unxHl+/o8h1dvqPLd3T5ji7f0eU7unxHl+/o8h1d
vqPLd3T5ji7f0eU7unxHl+/o8h1dvqPLd3T5ji7f0eU7unxHl+/o8h1dvqPLd3T5ji7f0eU7unxH
l+/o8h1dvqPLd3T5ji7f0eU7unxHl+/o8h1dvqPLd3T5ji7f0eU7unxHl+/o8h1dvqPLd3T5ji7f
0eU7unxHl+/o8h1dvqPLd3T5ji7f0eU7unxHl+/kvdJ+z/1hxLuZqEbf8OgbHn3Do2949A2PvuHR
Nzz6hkff8OgbHn3Do2949A2PvuHRNzz6hkff8OgbHn3Do2949A2PvuHRNzz6hkff8OgbHn3Do294
9A2PvuHRNzz6hkff8OgbHn3Do2949A2PvuHRNzz6hkff8OgbHn3Do2949A2PvuHRNzz6hkff8Ogb
Hn3Do2949A2PvuHRNzz6hkff8OgbHn3Do2949A2PvuHRNzz6hkff8OgbHn3Do2949A2PvuHRNzz6
hkff8OgbHn3Do2949A2PvuHRNzz6hkff8OgbHn3Do2949A2PvuHRNzz6hkff8OgbHn3Do2949A2P
vuHRNzz6hkff8OgbHn3Do2949A2PvuHRNzz6hkff8OgbHn3Do2949A2PvuHRNzz6hkff8OgbHn3D
o2949A2PvuHRNzz6hkff8OgbHn3Do2949A2PvuHRNzz6hkff8OgbHn3Do2949A2PvuHRNzz6hkff
8OgbHn3Do2949A2PvuHRNzz6hkff8OgbHn3Do2949A2PvuHRNzz6hkff8OgbHn3Do2949A2PvuHR
Nzz6hkff8OgbHn3Do2949A2PvuHRNzz6hkff8OgbHn3Do2949A2PvuHRNzz6hkff8OgbHn3Do294
9A2PvuHRNzz6hkff8OgbHn3Do2949A2PvuHRNzz6hkff8OgbHn3Do2949A2PvuHRNzztjtLoOxp9
R6PvaPQdjb6j0Xc0+o5G39HoOxp9R6PvaPQdjb6j0Xc0+o5G39HoOxp9R6PvaPQdjb6j0Xc0+o5G
39HoOxp9R6PvaPQdjb6j0Xc0+o5G39HoOxp9R6PvaPQdjb6j0Xc0+o5G39HoOxp9R6PvaPQdjb6j
0Xc0+o5G39HoOxp9R6PvaPQdjb6j0Xc0+o5G39HoOxp9R6PvaPQdjb6j0Xc0+o5G39HoOxp9R6Pv
aPQdjb6j0Xc0+o5G39HoOxp9R6PvaPQdjb6j0Xc0+o5G39HoOxp9R6PvaPQdjb6j0Xc0+o5G39Ho
Oxp9R6PvaPQdjb6j0Xc0+o5G39HoO/8/e3fTI+dV5nH4q7ABsenQ//N+kFjAIDRsWMxmlqjd3WYi
DXZkJwi+/VQnIYSL2O5u94szPAIppgLO7eqquqqo+/wei77bou+26Lst+m6Lvtui77bouy36bou+
26Lvtui7Lfpui77bou+26Lst+m6Lvtui77bouy36bou+26Lvtui7Lfpui77bou+26Lst+m6Lvtui
77bouy36bou+26Lvtui7Lfpui77bou+26Lst+m6Lvtui77bouy36bou+26Lvtui7Lfpui77bou+2
6Lst+m6Lvtui77bouy36bou+26Lvtui7Lfpui77bou+26Lst+m6Lvtui77bouy36bou+26Lvpujb
zyn63twQbyjeUL2heUP3huEN0xuWNzhpnDROGieNk8ZJ46Rx0jhpnDROWpy0OGlx0uKkxUmLkxYn
LU5anLQ4aXXSO31n9vEtmHsfTnuylMa/1Qnlr/+wv391df3X66vf/uYXn1+9+Mv1m7efv351eZMR
u77+y2nom+8tH+VL1btmFm7zMHn4c/6PXZ55nmPTt/iZ/+Tnf3j96vrBGy/HKeyPD4487DPh4YIj
z3R4/Or1n3/x5uax+/YX/3Xzl6//3tnnL9+cfsuvfwCP8xz64D/2XX/+f/kfvv3qzZubQf7jm4f9
24ftozzP6+ZTlYJu83ryeDN/7zF/uvF/Lt68un77/rreXcsen8Bz/b7bTz9457y5/uL1my/vfhc9
7CPiSV/iP+ZF5l0PsHf9AW4B+4dfWP7xm7z96ovb/7iObbdj2+3Ydju23Y5tt2Pb7dh2O7bdjm23
Y9vt2HY7tt2Obbdj2+3Ydju23Y5tt2Pb7dh2O7bdjm23Y9vt2HY7tt2Obbdj2+0Ztt2e97qLH/y2
7OipHz31o6d+9NSPnvrRUz966kdP/eipHz31o6d+9NSPnvrRUz966kdP/eipHz31o6d+9NSPnvrR
Uz966kdP/eipHz31R+ypP++3Ze88Kfnm+urzN9eXXx+UvJns5izerz777KnOz7//aOOjHs67dVZj
XrxoF5cjZ/t8rrNWry/OLvLy5lf9ol+vi1xeXT7zad5vBh1znF6t1sXZ1cXM2enDaDu7KOf17PQK
fj7H9Y308/tJgHrecn6+Tp9sVsmeP/vy4k+nm09v3FY93Xh6kt78/z3lu8P//3199a+H/+fdYxkf
e4/cHPv+5kvf9x6nrOflJx//sH+Cs/c/EJP4x3HRx3oKPO1FHO7esrnNk+65Wjbvu+782be/4+Pm
Er57+N86jWBT4cF7JJ/Ui8+Tl0fu+Qi5RRvmQ3GQ7798/bT87ru/f/r1t/+N073+1ek+z8MVhG7z
5PzxFYRuk2K5/b39RHA874/uXhmM423Nx1Ronue59xRFl4d+X/EJP/qfpuhywHzP+MvdIX+U7s+t
P7h8+D6954f5+/l5vw/1D3yn3/3j353vxR9Bl+1uH7rOL19e7Os1z66vL16etYuL67MXqe3squ0X
/WW5KGOux32Y375OdZuXtcfT7UOJppsdeZf3q8v71eX96vJ+dXm/urxfXd6vLu83l/ebxwyakzYn
bU7anLQ5aXPS5qTNSbuTdiftTtqdtDtpd9LupN1Ju5N2Jx1OOpx0OOlw0uGkw0mHkw4nHU46nHQ6
6XTS6aTTSaeTTiedTjqddDrpdNLlpMtJl5MuJ11Oupx0Oely0uWky0m3k24n3U66nXQ76XbS7aTb
SbeTemwrHtuKx7bisa14bCse24rHtuKxrXhsKx7bise24rGteGwrHtuKx7bisa14bCse24rHtuKx
rXhsKx7bise24rGteGwrHtuKx7bisa14bCse24rHtuKxrVQn1ahoVDQqGhWNikZFo6JR0ahoVDQq
GhWNikZFo6JR0ahoVDQqGhWNikZFo6JR0ahoVDQqGhWNikZFo6JR0ahoVDQqGhWNikZFo6JR0aho
VDQqGhWNikZFo6JR0ahoVDQqGhWNikZFo6JR0ahoVDQqGhWNikZFo6JR0ahoVDQqGlU0qmhU0aii
UUWjikYVjSoaVTSqaFTRqKJRRaOKRhWNKhpVNKpoVNGoolFFo4pGFY0qGlU0qmhU0aiiUUWjikYV
jSoaVTSqaFTRqKJRRaOKRhWNKhpVNKpoVNGoolFFo4pGFY0qGlU0qmhU0aiiUUWjikYVjSoaVTSq
aFTRqKJRRaOKRhWNKhpVNKpoVNGoolFFo4pGFY0qGlU0qmhU0aiiUUWjikYVjSoaVTSqaFTRqKJR
RaOKRhWNKhpVNKpoVNGoolFFo4pGFY0qGlU0qmhU0aiiUVWjqkZVjaoaVTWqalTVqKpRVaOqRlWN
qhpVNapqVNWoqlFVo6pGVY2qGlU1qmpU1aiqUVWjqkZVjaoaVTWqalTVqKpRVaOqRlWNqhpVNapq
VNWoqlFVo6pGVY2qGlU1qmpU1aiqUVWjqkZVjaoaVTWqalTVqKpRVaOqRlWNqhpVNapqVNWoqlFV
o6pGVY2qGlU1qmpU1aiqUVWjqkZVjaoaVTWqalTVqKpRVaOqRlWNqhpVNapqVNWoqlFVo6pGVY2q
GlU1qmpU1aiqUVWjqkZVjaoa1TSqaVTTqKZRTaOaRjWNahrVNKppVNOoplFNo5pGNY1qGtU0qmlU
06imUU2jmkY1jWoa1TSqaVTTqKZRTaOaRjWNah+4IOEncfWlx/oWLr/6x93gz0eZmzI3ZW7K3JS5
KXNT5qbMTZmbMjdlbsrclLkpc1PmpsxNmZsyN2VuytyUuSlzU+amzE2ZmzI3ZW7K3JS5KXNT5qbM
TZmbMjdlbsrclLkpc1PmpsxNmZsyN2VuytyUuSlzU+amzE2ZmzI3ZW7K3JS5KXNT5qbMTZmbMjdl
bsrclLkpc1PmpsxNmZsyN2XuytyVuStzV+auzF2ZuzJ3Ze7K3JW5K3NX5q7MXZm7Mndl7srclbkr
c1fmrsxdmbsyd2XuytyVuStzV+auzF2ZuzJ3Pz12jeoa1TWqa1TXqK5RXaO6RnWN6hrVNaprVNeo
rlFdo7pGdY3qGtU1qmtU16iuUV2jukZ1jeoa1TWqa1TXqK5RXaO6RnWN6hrVNaprVNeorlFdo7pG
dY3qGtU1qmtU16iuUV2jukZ1jeoa1TWqa1TXqK5RXaO6RnWN6hrVNaprVNeorlFdo7pGdY3qGtU1
qmvU0KihUUOjhkYNjRoaNTRqaNTQqKFRQ6OGRg2NGho1NGpo1NCooVFDo4ZGDY0aGjU0amjU0Kih
UUOjhkYNjRoaNTRqaNTQqKFRQ6OGRg2NGho1NGpo1NCooVFDo4ZGDY0aGjU0amjU0KihUUOjhkYN
jRoaNTRqaNTQqKFRQ6OGRg2NGho1NGpo1NCooVFDo4ZGDY0aGjU0amjU0KihUUOjhkYNjRoaNTRq
aNTQqKFRQ6OGRg2NGho1NGpo1NCooVFDo4ZGDY0aGjU0amjU0KihUUOjhkZNjZoaNTVqatTUqKlR
U6OmRk2Nmho1NWpq1NSoqVFTo6ZGTY2aGjU1amrU1KipUVOjpkZNjZoaNTVqatTUqKlRU6OmRk2N
mho1NWpq1NSoqVFTo6ZGTY2aGjU1amrU1KipUVOjpkZNjZoaNTVqatTUqKlRU6OmRk2Nmho1NWpq
1NSoqVFTo6ZGTY2aGjU1amrU1KipUVOjpkZNjZoaNTVqatTUqKlRU6OmRk2Nmho1NWpq1NSoqVFT
o6ZGTY2aGjU1amrU1KipUVOjpkZNjZoaNTVqatTSqKVRS6OWRi2NWhq1NGpp1NKopVFLo5ZGLY1a
GrU0amnU0qilUUujlkYtjVoatTRqadTSqKVRS6OWRi2NWhq1NGp94Fu42+cGbr6D+2n99U/L707/
/u6buNMtN9/FnW76+jc5/fX029y3AvEkXZfbHDF8sq7LR/cl7n8nPexBxyc9Vn2H1smTnvd/vOfM
U0agbn3HPtE56rsGRm7zBH+IPsVdUmBPG7u6a6DhfI398nK2sxfjxflZ26d77OLl+dVZvU4vF+tl
+vWL7wUaxs3bspZ++vwzbzbLfnZ1eq341e/efH6TYSjz+xmGdfpL9i9z/svTx5pvMgyfUPXkKYtW
dy8BvP2nEW4C8vcLKtwn0vOwz6F7ZUo+4ud6v/LC3e7v53lF/v/wVH7OtwqfBByP0Wl6X08kZX52
fvpXPqLKcpByR1KOzcBjM/DYDDw2A4/NwGMz8NgMPDYDj83AYzPw2Aw8NgOPzcBjM/DYDDw2A4/N
wGMz8NgMPDYDj83AYzPw2Aw8NgOPzcBjM/AZNgOf96KQT/4d/52+DX2qqyvc/UI1d73qzCe3zvEI
a4vH/sMzXIHm1issx+UqjstVHJerOC5XcVyu4rhcxXG5iuNyFcflKo7LVRyXqzguV3FcruK4XMVx
uYrjchXH5SqOy1Ucl6s4LldxXK7iuFzFcbmK43IVx+UqjstVPMPlKp736/C7hWyu5sz52udnly9S
ztr55Txba46zvS8vL/a4Xqc7/2kOId8+JXObr2cf91zug969T9YJ+siCz23u9if9WvquPYrb/DA+
taP5H9hUKNft+uplmWcX+/r0Rxrz4uzF6e342YsXF+cvL1+cz6vL8b1NhX56A7xPQp/eS/deWv3Z
lxd/Ot28c3oPu1fG6e1OP9/frSR8u8LwzysJ+8mPwj/vz/nJnp7vfGX56svP//ftkzSofkSPtudZ
gHnfj+dxl2Dusql1vND9OF/onu9n/Fwvct89I05vgr+8vjr7+j//7Xit+7Re6975U3rSl7xv9mT/
6TF384d5qE9C/fqivbwqV2enX1ydnlCn3++inq+z2fZVv/h6jeXWm6m/fvW3/zyNdscs38e+Xrzj
DvrJz//w+tX1/X279731fO+cbv+h5jZP86d7vX/YuT/pD2O3eQA9WGDzh2b6/NXbL64vvzz79ve8
mezvv/3XD8FHet4+4XumF5cX7apnnb1sV+us1bbO1jh9fp+XtV603taL1r9H2C7na7Y+281ZvLlz
vzX2h3or9d6XpA//7J7pzfhdP6o9dsT1Ph+fH/aZeUsE/vy3v/8YPnzHf3sM4E/XpwfA65t66quX
rz97+9WL997vD3lI5sf/vHtSGp6mT/7uH/Cb6y9ev/ny/mehbv8B/x3vwB7sg/0zofkDf6zH+oT2
nuf249z9H/3gvN+7vvufpHqQx9i/xTuH978YPOI9/ftXV9d/vb767W9Ob1ROv/rj29M/8Y+v31x9
E6r/6KvBLxdflosvy8WX5eLLcvFlufiyXHxZLr4sF1+Wiy/LxZfl4sty8WW5+LJcfFkuviwXX5aL
L8vFl+Xiy3LxZbn4slx8WS6+LBdflosvy8WX5eLLcvFlufiyXHxZLr4sF1+Wiy/LxZfl4sty8WW5
+LJcfFkuviwXX5aLL8vFl+Xiy3LxZbn4slx8WS6+LBdflosvy8WX5eLLcvFlufiyXHxZLr4sF1+W
iy/LxZfl4sty8WW5+LJcfFkuviwXX5aLL8vFl+Xiy3bxZbv4sl182S6+bBdftosv28WX7eLLdvFl
u/iyXXzZLr5sF1+2iy/bxZft4st28WW7+LJdfNkuvmwXX7aLL9vFl+3iy3bxZbv4sl182S6+bBdf
tosv28WX7XLm1qitUVujtkZtjdoatTVqa9TWqK1RW6O2Rm2N2hq1NWpr1NaorVFbo7ZGbY3aGrU1
amvU1qitUVujtkZtjdoatTVqa9TWqK1RW6O2Rm2N2hq1NWpr1NaorVFbo7ZGbY3aGrU1amvU1qit
UVujtkZtjdoatTVqa9TWqK1RW6O2Rm2N2hq1NWpr1NaorVFbozZG5RyjTjfEG4o3VG9o3tC9YXjD
9IblDU4aJ42TxknjpHHSOGmcNE4aJ42TFictTlqctDhpcdLipMVJi5MWJy1OWp20Oml10uqk1Umr
k1YnrU5anbQ6aXPS5qTNSZuTNidtTtqctDlpc9LmpN1Ju5N2J+1O2p20O2l30u6k3Um7kw4nHU46
nHQ46XDS4aTDSYeTDicdTjqddDrpdNLppNNJp5NOJ51OOp10Ouly0uWky0mXky4nXU66nHQ56XLS
5aTbSbeTbifdTrqddDvpdtLtpNtJNcpYSIyFxFhIjIXEWEiMhcRYSIyFxFhIjIXEWEiMhcRYSIyF
xFhIjIXEWEiMhcRYSIyFxFhIjIXEWEiMhcRYSIyFxFhIjIXEWEiMhcRYSIyFxFhIjIXEWEiMhcRY
SIyFxFhIjIXEWEiMhcRYSIyFxFhIjIXEWEiMhcRYSIyFxFhIjIXEWEiMhcRYSIyFxFhIjIXEWEiM
hcRYSIyFxFhIjIXEWEiMhcRYSIyFxFhIjIXEWEiMhcRYSIyFxFhIjIXEWEiMhcRYSIyFxFhIjIXE
WEiMhcRYSIyFxFhIjIXEWEiMhcRYSIyFxFhIjIXEWEiMhcRYSIyFxFhIjIXEWEiMhcRYSIyFxFhI
jIXEWEiMhcRYSIyFxFhIjIXEWEiMhcRYSIyFxFhIjIXEWEiMhcRYSIyFxFhIjIXEWEiMhcRYSIyF
xFhIjIXEWEjKB64Gf7vNxMf6Au6ue9Sf8rbLx+6KfbCXGTsvsfMSOy+x8xI7L7HzEjsvsfMSOy+x
8xI7L7HzEjsvsfMSOy+x8xI7L7HzEjsvsfMSOy+x8xI7L7HzEjsvsfMSOy+x8xI7L7HzEjsvsfMS
Oy+x8xI7L7HzEjsvsfMSOy+x8xI7L7HzEjsvsfMSOy+x8xI7L7HzEjsvsfMSOy+x8xI7L7HzEjsv
sfMSOy+x8xI7L7HzEjsvsfMSOy+x8xI7L7HzEjsvsfMSOy+x8xI7L7HzEjsvsfMSOy+x8xI7L7Hz
EjsvsfMSOy+x8xI7L7HzEjsvsfMSOy+x8xI7L7HzEjsvsfMSOy+x8xI7L7HzEjsvsfMSOy+x8xI7
L7HzEjsvsfMSOy+x8xI7L7HzEjsvsfMSOy+x8xI7L7HzEjsvsfMSOy+x8xI7L7HzEjsvsfMSOy+x
8xI7L7HzEjsvsfMSOy+x8xI7L7HzEjsvsfMSOy+x8xI7L7HzEjsvsfMSOy+x8xI7L7HzEjsvsfMS
Oy+x8xI7L7HzEjsvsfMSOy+x8xI7L7HzEjsvsfMSOy+x8xI7L7HzEjsvsfMSOy+x8xI7L7HzEjsv
sfMSOy+x8xI7L7HzEjsvsfMSOy+x8xI7L7HzEjsvsfMSOy+x8xI7L7HzEjsvsfMSOy+x8xI7L7Hz
EjsvsfMSOy+x8xI7L7HzEjsvaRrVNKppVNOoplFNo5pGNY1qGtU0qmlU06imUU2jmkY1jWoa1TSq
aVTTqKZRTaOaRjWNahrVNKppVNOoplFNo5pGNY1qGtU0qmlU06imUU2jmkY1jWoa1TSqaVTTqKZR
TaOaRjWNahrVNKppVNOoplFNo5pGNY1qGtU0qmlU06imUU2jmkY1jWoa1TSqaVTTqKZRXaO6RnWN
6hrVNaprVNeorlFdo/r/sXdvv3FcRx7H/xW/RA8CWp6qU5fTD3pwECxiYLExdrPw42KuChNaFHiB
4/9+e2Raor7iZe4zpE4cyIIMioc9p/vTU1XzaxrlNMpplNMop1FOo5xGOY1yGuU0ymmU0yinUU6j
nEY5jXIa5TTKaZTTKKdRTqOcRjmNchrlNMpplNMop1FOo5xGOY1yGuU0ymmU0yinUU6jnEY5jXIa
5TTKaZTTKKdRTqOcRjmNchrlNMpplNMop1FOo5xGOY1yGuU0ymmU0yinUU6jnEY5jXIa5TTKaZTT
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
9lxpz5X2XGnPlfZcac+V9lxpz5X2XClnmIUzzMIZZuEMs3CGWTjDLJxhFs4wC2eYhTPMwhlm4Qyz
cIZZOMMsnGEWzjALZ5iFM8zCGWbhDLNwhlk4wyycYRbOMAtnmIUzzMIZZuEMs3CGWTjDLJxhFs4w
S+FKaZTQKKFRQqOERgmNEholNEpolNAooVFCo4RGCY0SGiU0SmiU0CihUUKjhEYJjRIaJTRKaJTQ
KKFRQqOERgmNEholNEpolNAooVFCo4RGCY0SGiU0SmiU0CihUUKjhEYJjRIaJTRKaJTQKKFRQqOE
RgmNEholNEpolNAooVFCo4RGCY0SGiU0SmiU0CihUUKjlEYpjVIapTRKaZTSKKVRSqOURimNUhql
NEpplNIopVFKo5RGKY1SGqU0SmmU0iilUUqjlEYpjVIapTRKaZTSKKVRSqOURimNUhqlNEpplNIo
pVFKo5RGKY1SGqU0SmmU0iilUUqjlEYpjVIapTRKaZTSKKVRSqOURimNUhqlNEpplNIopVFKo5RG
KY1SGqU0SmmU0iilUUqjlEYpjVIapTRKaZTSKKVRSqOURimNUhqlNEpplNIopVFKo5RGKY1SGqU0
SmmU0iilUUqjlEYpjVIapTSq0KhCowqNKjSq0KhCowqNKjSq0KhCowqNKjSq0KhCowqNKjSq0KhC
owqNKjSq0KhCowqNKjSq0KhCowqNKjSq0KhCowqNKjSq0KhCowqNKjSq0KhCowqNKjSq0KhCowqN
KjSq0KhCowqNKjSq0KhCowqNKjSq0KhCowqNKjSq0KhCowqNKjSq0KhCowqNKjSq0KhCowqNKjSq
0KhCowqNKjSq0KhCowqNKjSq0KhCowqNKjSq0KhCowqNKjSq0KhCowqNKjSq0KhCowqNKjSq0KhC
owqNKjSq0KhCowqNKjTKaJTRKKNRRqOMRhmNMhplNMpolNEoo1FGo4xGGY0yGmU0ymiU0SijUUaj
jEYZjTIaZTTKaJTRKKNRRqOMRhmNMhplaz1vYaVx+dP7kMGP72fzf89nf/nz92fvr+eXi/Gwkk99
zQNMBv/w/re/Dt+pzQTsdibgyVT41mVtXdbWZW1d1tZlbV3W1mVtXdbWZW1d1tZlbV3W1mVtXdbW
ZW1d1tZlbV3W1mVtXdbWZW1d1tZlbV3W1mVtXdY9dlmPmwr/0oPAHm3yrhC4uEUkwio92Ie/8etn
/6HmLT8P/fol7cf/nv96eXY9nM3f3e6g7z6Mr//x3Z2f6+f55Me//OdP48ur+eUy/e/64u5/Hf7K
s9m5fn9+Nvnj949GIX7ctpt/+QbzHVvmh6xyshxnjOCpo/jQqh698hw31eDDzfU2iZxPPqOgF5vM
shtuqUedySy6WhejTkbz6fDqTmfTrHdmTyKHNytVw4d3JIP/9mwfHILdsvzDf4wvB6/3llr68He8
nH+4uLx+9PseRP77dtph41c2yHJd73r3+PFf/Zr1y3CJOuvenV9MhsP4/c3lefdhwGAgY6Nr1Ze7
77CreFnXitNOmP9Gr7Vtrx03b3yFQ3n4+Bx5+/mdNd/ys9hrLPYai73GYq+x2Gss9hqLvcZir7HY
ayz2Gou9xmKvsdhrLPYai73GYq+x2Gss9hqLvcZir7HYayz2Gou9xmKvsdhrLPYai73GYq+x2Gss
9hqLvcZir7HYayz2Gou9xmKvsdhrLPYai73GYq+x2Gss9hqLvcZir7HYayz2Gou9xmKvsdhrLPYa
i73GYq+x2Gss9hqLvcZir7HYayz2Gou9xmKvsdhrLPYai73GYq+x2Gss9hqLvc5ir7PY6yz2Oou9
zmKvs9jrLPY6i73OYq+z2Oss9jqLvc5ir7PY6yz2Oou9zmKvs9jrLPY6i73OYq+z2Oss9jqLvc5i
r7PY6yz2Oou9zmKvs9jrLPY6G5JOo5xGOY1yGuU0ymmU0yinUU6jnEY5jXIa5TTKaZTTKKdRTqOc
RjmNchrlNMpplNMop1FOo5xGOY1yGuU0ymmU0yinUU6jnEY5jXIa5TTKaZTTKKdRTqOcRjmNchrl
NMpplNMop1FOo5xGOY1yGuU0ymmU0yinUU6jnEY5jXIa5TTKaZTTKKdRTqOcRjmNchoVNCpoVNCo
oFFBo4JGBY0KGhU0KmhU0KigUUGjgkYFjQoaFTQqaFTQqKBRQaOCRgWNChoVNCpoVNCooFFBo4JG
BY0KGhU0KmhU0KigUUGjgkYFjQoaFTQqaFTQqKBRQaOCRgWNChoVNCpoVNCooFFBo4JGBY0KGhU0
KmhU0KigUUGjgkYFjQoaFTQqaFTQqKBRQaOCRgWNChoVNCpoVNCooFFBo4JGBY0KGhU0KmhU0Kig
UUGjgkYFjQoaFTQqaFTQqKBRQaOCRgWNChoVNCpoVNCooFFJo5JGJY1KGpU0KmlU0qikUUmjkkYl
jUoalTQqaVTSqKRRSaOSRiWNShqVNCppVNKopFFJo5JGJY1KGpU0KmlU0qikUUmjkkYljUoalTQq
aVTSqKRRSaOSRiWNShqVNCppVNKopFFJo5JGJY1KGpU0KmlU0qikUUmjkkYljUoalTQqaVTSqKRR
SaOSRiWNShqVNCppVNKopFFJo5JGJY1KGpU0KmlU0qikUUmjkkYljUoalTQqaVTSqKRRSaOSRiWN
ShqVNCppVNKopFFJo5JGJY1KGlVpVKVRlUZVGlVpVKVRlUZVGlVpVKVRlUZVGlVpVKVRlUZVGlVp
VKVRlUZVGlVpVKVRlUZVGlVpVKVRlUZVGlVpVKVRlUbVJ+Jztn1M6Qrdt4N2ErcZn2jNvNbMa828
1sxrzbzWzGvNvNbMa8281sxrzbzWzGvNvNbMa8281sxrzbzWzGvNvNbMa8281sxrzbzWzGvNvNbM
O0Iz77gpLet+1HExHk3HbuPO5pNFZ95H148ku+l4HnU6H97nyfTuRx2HG+rhnX/th7cRw+lQ/nj6
g8gydnHUm5lbsU8farz9EOSXH2rsT/4DoCd1VE76Y8XPZP/gx3o0NuDXi8t/zS/XerbLzx+/5GqT
vbjqUlZIIGonySFPkvXzO+5OMbybX3fLVXZn7xcXb65uJk9/5X3JGzfXZ+dXuw7oOcyXbBVJsqvY
IR7HLRNH7pyv+/pA/Spn3V7zPybjq7Pp8PWL4c5kvt6PvbMklF2s4ZETca8LONhVeqOtc9I3G17C
o1TvrK/Z2cBB1y9m0i36iamXxXQSfkccX1ojZXgrPIiTRTbL5TiBW1gcp4c33+qXzB/e//b7Tcsm
m+6xBRzm5H1Zm6addCd40rW9dtTgoFUO5SEutnu+197RXeljV+QdXlE3epVO+uo2nVlfRhHdSKx2
VsbjbjLuJ53WxWg0mU1sPM87Z2xfYvn0w2X5tC+lxO2bWFs2ApZzehYy6nN4c/vME9BO67C0HdR2
0IvcQV9dT1c5aqf41nKVdZ/2WVz7xXg2nnSTeQyazRezrroP75KnaWVRxv1s2Ht3tmvfe1/cxYZ/
Rv03lY55+oeq7bS2077pnfb19XmFI3mSrqyw7tM+272O+sk4O5n5uLPxyLrhRyrdTPtqJrXIOO5W
BGxkMezgHPWj5ZO3b2+D6vAnkpE+3CL1os+9THJKB+VEGocr9Ly26Tp+/rKz2fn6zxo4tbbhg0/M
2Fd1ZrOG1eYP9niZl5mNu4+bH8hdXNkeOHl2v9inn0W1t732ULjC6O3n6TaO3XHgunLgunLgunLg
unLgunLgunLgunLgunLgunLgunLgunLgunLgunLgunLgunLgunLgunLgunLgunLgunLgunLgunLg
unLgunLguv4/e3eyJMd5nQH0VbzSrhR97z/eBRdyyBH2E3jpqJ4kyBSpAIiw/fau5iBChwOaIBpo
Crkgiagg0B+ys+pk3yHTgevtwPV24Ho7cL0duN4OXG8HrrcD19uB6+3A9XbgejtwvR243g5cbweu
twPX24Hr7cD1duB6O3C9HbjeDlxvB663A9fbgevtwPV24Ho7cL0duN4OXG8HrrcD19uB6+3A9Xbg
ejtwvR243g5cbweutwPX24Hr7cB1OXBdDlyXA9flwHU5cF0OXJcD1+XAdTlwXQ5clwPX5cB1OXBd
DlyXA9flwHU5cF0OXJcD1+XAdTlwXQ5clwPX5cB1OXBdDlyXA9flwHU5cF0OXJcD1+VSUGlUaVRp
VGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlU
aVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRp
VGlUaVRpVGlUaVRpVGlUYVS7wqjLC+EL6QvNF7ovDF+YvrB8YfuCScOkYdIwaZg0TBomDZOGScOk
YdI0aZo0TZomTZOmSdOkadI0aZq0mbSZtJm0mbSZtJm0mbSZtJm0mbSbtJu0m7SbtJu0m7SbtJu0
m7SbdJh0mHSYdJh0mHSYdJh0mHSYdJh0mnSadJp0mnSadJp0mnSadJp0mnSZdJl0mXSZdJl0mXSZ
dJl0mXSZdJt0m3SbdJt0m3SbdJt0m3SbdJu0TFomLZOWScukZdIyaZm0TKpRoVGhUaFRoVGhUaFR
oVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGh
UaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFR
oVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGh
UaFRoVGhUaFRoVGhUaFRoVGpUalRqVGpUalRqVGpUalRqVGpUalRqVGpUalRqVGpUalRqVGpUalR
qVGpUalRqVGpUalRqVGpUalRqVGpUfmWO6W/r9n7Y3ThF3Wk//Ep8C++uHn91+vLX/37X71lj/7X
zAY94lvxYe9EfzRLj2bp0Sw9mqVHs/Rolh7N0qNZejRLj2bp0Sw9mqVHs/Rolh7N0qNZejRLj2bp
0Sw9mqVHs/Rolh7N0qNZejRLj2bpEzZLP+6d6J9mp/xx/cbHd0b/8c97/fLz09/OL19dDs77vhnl
O7Uvn/eNISPP9/sqTv0S99Svc5yur/PqdDXO4yrXzdW83W+0wnd/+GHk4WeYefnxaX9iN4Z8/sfq
ONeOc+0TP9d+eHvLRxzK53jbnMfk/jRufPJOj1t43jc/+anpo/js+8s/r0utSKQVibQikVYk0opE
WpFIKxJpRSKtSKQVibQikVYk0opEWpFIKxJpRSKtSKQVibQikVYk0opEWpFIKxJpRSKtSKQVibQi
kVYk0opEWpFIKxJpRSKtSKQVibQikVYk0opEWpFIKxJpRSKtSKQVibQikVYk0opEWpFIKxJpRSKt
SKQVibQikVYk0opEWpFIKxJpRSKtSKQVibQikVYk0opEWpFIKxJpRSKtSKQVibQi0axINCsSzYpE
syLRrEg0KxLNikSzItGsSDQrEs2KRLMi0axINCsSzYpEsyLRrEg0KxLNikSzItGsSDQrEs2KRLMi
0axINCsSzYpEsyLRrEg0KxLNikSzat40qmlU06imUU2jmkY1jWoa1TSqaVTTqKZRTaOaRjWNahrV
NKppVNOoplFNo5pGNY1qGtU0qmlU06imUU2jmkY1jWoa1TSqaVTTqKZRTaOaRjWNahrVNKppVNOo
plFNo5pGNY1qGtU0qmlU06imUU2jmkY1jWoa1TSqaVTTqKZRTaOaRjWNahrVNKppVNOoplFdo7pG
dY3qGtU1qmtU16iuUV2jukZ1jeoa1TWqa1TXqK5RXaO6RnWN6hrVNaprVNeorlFdo7pGdY3qGtU1
qmtU16iuUV2jukZ1jeoa1TWqa1TXqK5RXaO6RnWN6hrVNaprVNeorlFdo7pGdY3qGtU1qmtU16iu
UV2jukZ1jeoa1TWqa1TXqK5RXaO6RnWN6hrVNaprVNeorlFdo7pGdY3qGtU1qmtU16iuUV2jukZ1
jeoa1TWqa1TXqK5RXaO6RnWN6hrVNaprVNeorlFdo7pGdY3qGjU0amjU0KihUUOjhkYNjRoaNTRq
aNTQqKFRQ6OGRg2NGho1NGpo1NCooVFDo4ZGDY0aGjU0amjU0KihUUOjhkYNjRoaNTRqaNTQqKFR
Q6OGRg2NGho1NGpo1NCooVFDo4ZGDY0aGjU0amjU0KihUUOjhkYNjRoaNTRqaNTQqKFRQ6OGRg2N
Gho1NGpo1NCooVFDo4ZGDY0aGjU0amjU0KihUUOjhkYNjRoaNTRqaNTQqKFRQ6OGRg2NGho1NGpo
1NCooVFDo4ZGDY0aGjU0amjU0KihUVOjpkZNjZoaNTVqatTUqKlRU6OmRk2Nmho1NWpq1NSoqVFT
o6ZGTY2aGjU1amrU1KipUVOjpkZNjZoaNTVqatTUqPmWWzW8t8dAf+BncX/TW+031zH33T6187g5
9es+T7uN82nl3b67vV/znPlGe/1hYaceHpI4Hx71eTlVvr0FRF6ujWs+TIrviIe2+9M+q+c9PO7g
w31L3kfj/Fc93vu9/C3eZXbjeZ1cH3RE4K131zj620d/++hvH/3to7999LeP/vbR3z7620d/++hv
H/3to7999LeP/vbR3z7620d/++hvH/3to7999LeP/vbR3z7620d/+wn72x/37hqfRtf6F7V+OSSP
6eE+fgn4D1/8339+/XveZXX7cVGOtvRzbEv/ii38xxy153j3gMfkftZ3C+nrbuT91TyteTtOfbZx
Oo/zzenu+n6da/d9e7vefEhL9avLh/rDKXc5O9t8tztgPINPwHd6az//Y/Vxz7Xvjtvrr158/up9
3zbiR79jfsX3A8NfXr397/2h7pZxvKE/5DTb9fnVi5vLwb2/XGPe/ZJz4vg8eco733y8N9UPxX/E
N+1Jx0bf+RT9iFdJjzhmz/oqKcf1+brurk4Vd3eXy7zr9fAXqNO6O+/z/e057/LNR9ntq4dezqyo
seZu/dtr+quava8++hrr4YFk9Vu/fdrzOizHGXScQf+UZ9APPk8fc9SeowOPyf2s38X7fM52125P
Y9y2Uz/3PF1HzdP9uY+7+151zus3Ttd11R/uL3w1Zq2rEZ/WvTV/A8fqONeOc+0TP9d+8Bn9mEP5
HG15TO5n/X6/buea57v70+3tdT/1+6jTvlzWnK7uWrtd1zfzqurNc7jtq7j803eth4fmfnspNGPN
cTmz165+uVrav/Wa67M6Ksf5c5w//4Tnzw8+Sx9z0J6jAY/J/azfw3E9+sN45amud5363W0/XWe1
022/7Xnb43L6vXkdM3ddzXE55+bV3n1/Us2453+oPuiZ9u//9oc//nhr7OXd7SX8zVcPh+67X//X
w7vm9avP2tX63UO6h6/y2V/vLt+y28v/dpzPv/J8fn+TOT/+7J2b1y9fPjzJ59v/fn12vOWPfHE5
xi/vzw/fo4f/+/cvbn/md1xOi395nyfUY94J3/w5f//F6dvf/AtvgPH47s8bB+T2y7/+/PH4gE8s
eCPWf3xxe/e/d7d//NefD3d8eL6/+2m8yxvvXR+g9VMP5Hpc0h95P/9UkL+fR2/8pq/bhk/23vqp
25Jcffb9XKgDq64qTFcVpqsK01WF6arCdFVhuqowXVWYripMVxWmqwrTVYXpqsJ0VWG6qjBdVZiu
KkxXFaarCtNVhemqwnRVYbqqMF1VmK4qTFcVpqsK01WF6arCdFVhuqowXVWYripMVxWmqwrTVYXp
qsJ0VWG6qjBdVZiuKkxXFaarCtNVhemqwnRVYbqqMF1VmK4qTFcVpqsK01WF6arCdFVhuqowXVWY
ripMVxWmqwrTVYXpqsJ0VWG6qjBdVZiuKkxXFaarCstVheWqwnJVYbmqsFxVWK4qLFcVlqsKy1WF
5arCclVhuaqwXFVYriosVxWWqwrLVYXlqsJyVWG5qrBcVViuKixXFZarCstVheWqwnJVYbmqsFxV
WK4qLFcVlut0S6OWRi2NWhq1NGpp1NKopVFLo5ZGLY1aGrU0amnU0qilUUujlkYtjVoatTRqadTS
qKVRS6OWRi2NWhq1NGpp1NKopVFLo5ZGLY1aGrU0amnU0qilUUujlkYtjVoatTRqadTSqKVRS6OW
Ri2NWhq1NGpp1NKopVFLo5ZGLY1aGrU0amnU0qilUUujlkYtjVoatTVqa9TWqK1RW6O2Rm2N2hq1
NWpr1NaorVFbo7ZGbY3aGrU1amvU1qitUVujtkZtjdoatTVqa9TWqK1RW6O2Rm2N2hq1NWpr1Nao
rVFbo7ZGbY3aGrU1amvU1qitUVujtkZtjdoatTVqa9TWqK1RW6O2Rm2N2hq1NWpr1NaorVFbo7ZG
bY3aGrU1amvU1qitUVujtkZtjdoatTVqa9TWqK1RW6O2Rm2N2hq1NWpr1NaorVFbo7ZGbY3aGrU1
amvU1qitUVujtkZtjdoatTVqa9TWqK1RpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGl
UaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVR
pVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGl
UaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRpVGlUaVRhVH9CqMu
L4QvpC80X+i+MHxh+sLyhe0LJg2ThknDpGHSMGmYNEwaJg2ThknTpGnSNGmaNE2aJk2TpknTpGnS
ZtLHPnbjh13i999l++lO+98b6I/ss//u5svXX3z1WTzN3vVPtaafuu/4i0eJ3v8BfcoBhl8x7/aY
Nv4HWbY+Or1Hp/fo9B6d3qPTe3R6j07v0ek9Or1Hp/fo9B6d3qPTe3R6j07v0ek9Or1Hp/fo9B6d
3qPTe3R6j07v0ek9Or1Hp/dDdno/7gMofuVdLR7T5XvWd7WY9+fzhfV1urpe89TX7TqdZ+7Tecy8
vz3frrh68yaPLSPX5YfqiwUZPfd3T0SI2S8f/nm1rh5+KI/+W79p2fM6LMcZ9HHPoJ9tp8dn33+e
+UHb/KBtftA2P2ibH7TND9rmB23zg7b7QdsloZu0m7SbtJu0m7SbtJu0m3SYdJh0mHSYdJh0mHSY
dJh0mHSYdJp0mnSadJp0mnSadJp0mnSadJp0mXSZdJl0mXSZdJl0mXSZdJl0mXSbdJt0m3SbdJt0
m3SbdJt0m3SbtExaJi2TlknLpGXSMmmZtEzqJXZ4iR1eYoeX2OEldniJHV5ih5fY4SV2eIkdXmKH
l9jhJXZ4iR1eYoeX2OEldniJHV5ih5fY4SV2eIkdXmKHl9jhJXZ4iR1eYoeX2OEldniJHV5ih5fY
0UyqUaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGh
UaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFR
oVGhUaFRoVGhUaFRoVGhUaFRoVGhUaFRqVGpUalRqVGpUalRqVGpUalRqVGpUalRqVGpUalRqVGp
UalRqVGpUalRqVGpUalRqVGpUalRqVGpUalRqVGpUalRqVGpUalRqVGpUalRqVGpUalRqVGpUalR
qVGpUalRqVGpUalRqVGpUalRqVGpUalRqVGpUalRqVGpUalRqVGpUalRqVGpUalRqVGpUalRqVGp
UalRqVGpUalRqVGpUalRqVGpUalRqVGpUalRqVGpUalRqVGpUalRqVGpUalRqVGpUalRqVFNo5pG
NY1qGtU0qmlU06imUU2jmkY1jWoa1TSqaVTTqKZRTaOaRjWNahrVNKppVNOoplFNo5pGNY1qGtU0
qmlU06imUU2jmkY1jWoa1TSqaVTTqKZRTaOaRjWNahrVNKppVNOoplFNo5pGNY1qGtU0qmlU06im
UU2jmkY1jWoa1TSqaVTTqKZRTaOaRjWNahrVNKppVNOoplFNo5pGNY1qGtU0qmlU06imUU2jmkY1
jWoa1TSqaVTTqKZRTaOaRjWNahrVNKppVNOoplFNo5pGNY1qGtU1qmtU16iuUV2jukZ1jeoa1TWq
a1TXqK5RXaO6RnWN6hrVNaprVNeorlFdo7pGdY3qGtU1qmtU16iuUV2jukZ1jepvWZx+X891Plqn
77x6e/QKj17h0Ss8eoVHr/DoFR69wqNXePQKj17h0Ss8eoVHr/DoFR69wqNXePQKj17h0Ss8eoVH
r/DoFR69wqNXePQKj17hE/YKP+7q7Zudsj/dfXV6+PqnF1/cf/n7V6+vf/+XV0/TyfyZL/j2XuHN
5e/39b9Of3t5d//5iz/9+avTq6/OL7++dfL/fPnyv+9eXv6cp7ql8GM6q89gg/adcn/4Fdfvkz+8
+Ofzy8vp/erJTruf+mrP7Jz75ht2Po/z5QPy5rTO6+bUz7tOdY59uu6711Xfdzc37Y0W/mgP91wY
e11+3ugV/d2eQf1c9ny/P07X51cvbi5H6f7ywXb3zfF+qtPjn+ub87EfEP6j37i3h/qR33a8vz72
nRiO0/0t59p3x+3FF6/+9vBsgz/fnW/vXr56OILf/vKzr0/pu/9n71x74zayNPxX9GWE2WDKw8s5
ZNUHYWFkvJvFzDhBomQ+BiSbbQsjS1qplXUW++OXbcmy/VhS81qs7iF2EQvSSH1Yl/OeqpdVz/Xx
VkX8dWzHwIKYn1/VLm2GX4g1V5u4l3E75bjt1xofESXbT3tgntx/QJzkL6Lm/+LHJ8aLF88Gf+yt
VdMoOQrlAX1mlQ4D54sn/0P68g/JfzT///D8zXe2UTbf+vD3m3+bT2j++yHW5t8XL5r/PHxg8/Uj
rbF9+pOu1CGvs8d3I4w7UzeXVy827zf/fnV2VZ/cfeQff6o35tvLy3+e1X8qTuI/nV7f1v82/YKh
a0Qt1pzNLG3qqbPifLv03P52SzpUt2m/xxlrzFw0fZY5sHwx88xfKpalNZ6qzB+pkz9kTX/bRk9F
cPTH15cXdesd+aexcSL0s4V+ttDPFvrZQj9b6GcL/Wyhny30s4V+ttDPFvrZQj9b6GcL/Wyhny30
s4V+ttDPFvrZQj9b6GcL/Wyhny30s4V+ttDPFvrZQj9b6GcL/Wyhny30s4V+ttDPFvrZQj9b6GcL
/Wyhny30s4V+ttDPFvrZQj9b6GcL/Wyhny30s4V+ttDPFvrZQj9b6GcL/Wyhny30s4V+ttDPFvrZ
Qj9b6GcL/Wyhny30s4V+ttDPFvrZSj9b6Wcr/Wyln630s5V+ttLPVvrZSj9b6Wcr/Wyln630s5V+
ttLPVvrZSj9b6Wcr/Wyln630s5V+ttLPVvrZSj9b6Wcr/Wyln630s5V+ttLPVr5zpdQopUYpNUqp
UUqNUmqUUqOUGqXUKKVGKTVKqVFKjVJqlFKjlBql1CilRik1SqlRSo1SapRSo5QapdQopUYpNUqp
UUqNUmqUUqOUGqXUKKVGKTVKqVFKjVJqlFKjlBql1CilRik1SqlRSo1SapRSo5QapdQopUYpNUqp
UUqNUmqUUqOUGqXUKKVGKTVKqVFKjVJqlFKjlBql1CilRik1SqlRGTUqo0Zl1KiMGpVRozJqVEaN
yqhRGTUqo0Zl1KiMGpVRozJqVEaNyqhRGTUqo0Zl1KiMGpVRozJqVEaNyqhRGTUqo0Zl1KiMGpVR
ozJqVEaNyqhRxG8L8dtC/LYQvy3Ebwvx20L8thC/LcRvC/HbQvy2EL8txG8L8dtC/LYQvy3Ebwvx
20L8thC/LcRvC/HbQvy2EL8txG8L8dtC/LYQvy3Ebwvx20L8thC/LcRvC/HbQvy2EL8txG8L8dtC
/LYQvy3Ebwvx20L8thC/LcRvC/HbQvy2EL8txG8L8dtC/LYQvy3Ebwvx20L8thC/LcRvC/HbQvy2
EL8txG8L8dtC/LYQvy3Ebwvx20L8thC/LcRvC/HbQvy2EL8txG8L8dtC/LYQvy3Ebwvx20L8thC/
LcRvC/HbQvy2EL8txG8L8dtC/LYQvy3Ebwvx20L8thC/LcRvC/HbQvy2EL8txG8L8dtC/LYQvy3E
bwvx20L8thC/LcRvC/HbQvy2EL8txG8L8dtC/LYQvy3Ebwvx20L8thC/LcRvC/HbQvy2EL8txG8L
8dtC/LYQvy3Ebwvx20L8thC/LcRvC/HbQvy2EL8txG8L8dtC/LYQvy3Ebwvx20L8thC/LcRvC/Hb
Qvy2EL8txG8L8dtC/LYQvy3Ebwvx20L8thC/LcRvC/HbQvy2EL8txG8L8dtC/LYQvy3Ebwvx20L8
thC/LcRvC/HbQvy2EL8txG8L8dtC/LYQvy3Ebwvx20L8thC/LcRvC/HbQvy2EL8txG8L8dtC/LYQ
vy3Ebwvx20L8thC/LcRvC/HbQvy2EL8txG8L8dtC/LYQvy3Ebwvx20L8ttgJ77lbzK/F/FrMr8X8
WsyvxfxazK/F/FrMr8X8WsyvxfxazK/F/FrMr8X8WsyvxfxazK/F/FrMr8X8WsyvxfxazK/F/JrB
/Arg4rYvTtxdXV40n/DxC1MVF1V9bm4213Xxbvzjb199/t353IcvzLvtk90f4vdz+G5XBC0O3z1+
lnFny7Y91tfyQrGRL7hqScOyLLQsCy3LQsuy0LIstCwLLctCy7LQsiy0LAsty0LLstCyLLQsCy3L
Qsuy0LIstCwLLctCy7LQsiy0LAsty0LLstCyLLQsCy3LQsuy0LIstCwLLctCy7LQsiy0LAsty0LL
stCyLLQsCy3LQsuy0LIstCwLLctCy7LQsiy0LAsty0LLstCyLLQsCy3LQsuy0LIstCwLLctCy7LQ
siy0LAsty0LLstCyLLQsCy3LQsuy0LIstCwLLctCy7LQciy0HAstx0LLsdByLLQcCy3HQsux0HIs
tBwLLcdCy7HQciy0HAstx0LLsdByLLQcCy3HQsux0HIstBwLLcdCy7HQciy0HAstx0LLsdByLLQc
Cy3HQstxM8BRoxw1ylGjHDXKUaMcNcpRoxw1ylGjHDXKUaMcNcpRoxw1ylGjHDXKUaMcNcpRoxw1
ylGjHDXKUaMcNcpRoxw1ylGjHDXKUaMcNcpRoxw1ylGjHDXKUaMcNcpRoxw1ylGjHDXKUaMcNcpR
oxw1ylGjHDXKUaMcNcpRoxw1ylGjHDXKUaMcNcpRoxw1ylGjHDXKUaMcNcpRoxw1ylGjHDXKUaMc
NcpRoxw0SiNoVPONmN9I+I2U3xB+Q/mNjN/I+Q3LbzDSmJHGjDRmpDEjjRlpzEhjRhoz0piRxow0
YaQJI00YacJIE0aaMNKEkSaMNGGkCSNNGWnKSFNGmjLSlJGmjDRlpCkjTRlpykiFkQojFUYqjFQY
qTBSYaTCSIWRCiNVRqqMVBmpMlJlpMpIlZEqI1VGqow0Y6QZI80YacZIM0aaMdKMkWaMNGOkGSPN
GWnOSHNGmjPSnJHmjDRnpDkjzRlpzkgtI7WM1DJSy0gtI7WM1DJSy0gtI7WM1DFSx0gdI3WM1DFS
x0gdI3WM1DFSahSpwkqqsJIqrKQKK6nCSqqwkiqspAorqcJKqrCSKqykCiupwkqqsJIqrKQKK6nC
SqqwkiqspAorqcJKqrCSKqykCiupwkqqsJIqrKQKK6nCSqqwkiqspAorqcJKqrCSKqykCiupwkqq
sJIqrKQKK6nCSqqwkiqspAorqcJKqrCSKqykCiupwkqqsJIqrKQKK6nCSqqwkiqspAorqcJKqrCS
KqykCiupwkqqsJIqrKQKK6nCSqqwkiqspAorqcJKqrCSKqykCiupwkqqsJIqrKQKK6nCSqqwkiqs
pAorqcJKqrCSKqykCiupwkqqsJIqrKQKK6nCSqqwkiqspAorqcJKqrCSKqykCiupwkqqsJIqrKQK
K6nCSqqwkiqspAorqcJKqrCSKqykCiupwkqqsJIqrKQKK6nCSqqw3lGFpzbBdthKXkA3O8/xLZbT
YjktltNiOS2W02I5LZbTYjktltNiOS2W02I5LZbTYjktltNiOS2W02I5LZbTYjktltNiOS2W02I5
LZbTEMsptGNq92C4B3tpi4Qrzs8v/+fXd/Xm7eXq5uRNvTm++85HVNz7D3/t2D++rk+UXky27384
/a/vX//UOepvPLfsyHHuVdt+E36zfhNai15en705e2BRfxnT8WdE3OM9aPrRnsVLH/VBeN5hiYOi
it6FNAddeTf5+YM8R++K96Z4U59EE6CpvQ/OA5pnx37fjhlxCE042n/4+XS6Hmj+uL+87f1J5s3a
O4ZSeZLcjZ3/+/pn1Uk6QWoaMvBbRTvhLJg8F329mNjnCuaxp1lqmIBqmKUe3+N6fHeufLRIeDx1
Tl+SDsz7Q59lmUX/0rPom4PonW8OM7t9lgeab74tri/qm5tnb796+teu66vL683uX74/lHC7OTu/
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
kZoir9TEtk5kXcely1fHWxU4+UfaVLfvfvnf6j/dbZX88v/sXWlT3LjW/it8yXxTYi22pbo1dSsh
gZDKMtmA8E2boUnT8NJNAqn741+ZkISBpluyJVnuds0kAwxtSzrnPGfRWSq+vXt0sL17Ja92ij04
HX3YP/rO91+NzffTna8HV/zj98M3x/Lw/f6zq53nO9/ffDo8fPNJFm+fy6L++kMGP++Ms+ne1as3
X/bfZq8/w28H2+MTvrf7dWf0ffRh8urs9ebTq7dXz57JlzvmWU8v322aP89Pr948P/3xbvPZy0+7
70f7Hy/FzvjDWOL3s483a6o///7jK7W/n0311aurg/233wXKfxzsstODva2vB/uvfuwcnwnz7i39
8tlZvS/nd369PKrf+WmPfeV7B2cHe+9HrzdfbcuTr1OzX7zzYuu7HD01n3tBdsyfd8c7398dvyE7
L9Tb3c1X6vXWdLS7vftDbcKdn2vaqT+/uTOGyvzXqIln4y/4w/hgi2V6/9l45/h0JLZhpU62pnzv
w5Ha/nlOB+bcD/beZgd7H6pF9HnoXdVu9ncQqSENGoRHwK/owxgGWRxk0UEW49q6c20fVhEFkUaA
50IBkitlPH1YAoZQoQTTlWCptOmxWWrUS7xB2gdp71rzumpdGyFqo3XzDMbwGv4df63X91t6bV//
dHL10vy6hUdABhU/CH1KKj5vUHgVQfA7mX22AAna9LN+oFalqOvTjAxrCAHh5jSZVBiwolCGlaTI
BAuNfhb4Y47i/Ko+Vv2XPRQlUw60/IhTdOsanXk4+7/tzXCsBrcLpNdzTdFytmqHfqjFtPTT69Yy
4ObCOKX2WU0MH80JLrWq0zTNA4nRK4AJhQDRnFKEKKwkX3vDp37f95U1fD5eljsnu0Ru7x7Xz9zH
H3K5/Xn0bvTq+Mve29Obfd1ez6Lz/HxwTcuj8Zc9Q5NRzQs7o/1dyPbf//13nN7jD+BUoJQXqxnv
90HDOTM11IV23qgSLThCR7Qb2rYVb6oX7Q3kiKsYNMegORLUHKGj7wPbD2zfK4MpRFLHXCcfYq5Z
jihgleJG1yOj5jNUz4bWWOtMUyHL9BKR4znWjUa2kEHlDtizjirXPchogz89chZsfMMWK4mzBld/
0YaG7fxFHESL5A2qnyPsNbXEiXvxdBtFFSMYE2rtcXKB5gupb/vFDY0xFyWreN0NkitzRLAewWhO
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
MDcIc4MwNwhzgzA3CHODMDcIc4MwNwhzgzA3CHODMDcIc4MwNwhzgzA3CHODMDcIc4MwNwhzg86x
QbYbZLtBthtku0G2G2S7QbYbZLtBthtku0G2G2S7QbYbZLtBthtku0G2G2S7QbYbZLtBthtku0G2
G2S7QbYbZLtBthtku0G2G2S7QbYbZLtBthtku0G2G2S7QbYbZLtBthtku0G2G2S7QbYbZLtBthtk
u0G2G2S7QbYbZLtBthtkOyHbCdlOyHZCthOynZDthGwnZDsh2wnZTsh2QrYTsp2Q7YRsJ2Q7IdsJ
2U7IdkK2E7KdkO2EbCdkOyHbCdlOyHZCthOynZDthGwnZDsh2wnZTsh2QrYTsp2Q7YRsJ2Q7IdsJ
2U7IdkK2E7KdkO2EbCdkOyHbCdlOyHZCthOynZDthGwnZDsh2wnZTsh2QrYTsp2Q7YRsJ2Q7IdsJ
2U7IdkK2E7KdkO2EbCdkOyHbCdlOyHZCthOynZDthGwnZDsh2wnZTsh2QrYTsp2Q7YRsJ2Q7IdsJ
2U7IdkK2E7KdkO2EbCdkOyHbCdlOyHZCtjOynZHtjGxnZDsj2xnZzsh2RrYzsp2R7YxsZ2Q7I9sZ
2c7Idka2M7Kdke2MbGdkOyPbGdnOyHZGtjOynZHtjGxnZDsj2xnZzsh2RrYzsp2R7YxsZ2Q7I9v5
nu3nuql+bD/92f0G9e3nIcKZQnvHaO8Y7R2jvWO0d4z2jtHeMdo7RnvHaO8Y7R2jvWO0d4z2jtHe
Mdo7RnvHaO8Y7R2jvWO0d4z2jtHeMdo7RnvHaO8Y7R2jvWO0d4z2jtHeMdo7RnvHaO8Y7R2jvWO0
d4z2jtHeMdo7RnvHaO8Y7R2jvWO0d4z2jtHeMdo7RnvHaO8Y7R2jvWO0d4z2jtHeMdo7RnvHaO8Y
7R2jvWO0dxbtnUV7Z9HeWbR3Fu2dRXtn0d5ZtHcW7Z1Fe2fR3lm0dxbtnUV7Z9HeWbR3Fu2dRXtn
0d5ZtHcW7Z1Fe2fR3lm0dxbtnUV7Z9HeWbR3Fu2dRXtn0d5ZtHcW7Z1Fe2fR3lm0dxbtncVYxiLb
LbLdItstst0i2y2y3SLbLbLdItstst0i2y2y3SLbLbLdItstst0i2y2y3SLbLbLdItstst0i2y2y
3SLbLbLdItstst0i2y2y3SLbLbLdItstst0i2y2y3SLb7f+zd65NbhxXmv4r+tKM2Y0pqbIumeco
guGVZMmSdyx5PLYk+wujABTIlpoNbqMpiv71W+jmpfPpWwGoe2WMhyKK3cBBVeZ7Ms/lSV/bra/t
1td262u79bXd+tpufW23vrZbX9utr+3W13bra7v1td362m59bbe+tltf262v7dbXdutru/W13fra
bn1tt762W1/bna/tztd252u787Xd+drufG13vrY7X9udr+3O13bna7vztd352u58bXe+tjtf252v
7c7Xdudru/O13fna7nxtd762O1/bna/tztd252u787Xd+drufG13vrY7X9udr+3O13bna7vztd35
2u58bXe+tjtf252v7c7Xdudru/O13fna7nxtd762O1/bna/tztd252u787Xd+drufG13vrY7X9ud
r+3O13bna7vztd352u58bXe+tjtf252v7c7Xdudru/O13fna7nxtd762O1/bna/tztd252u787Xd
+drufG13vrY7X9udr+3O13bna7vztd352u58bXe+tjtf252v7c7Xdudru/O13fna7nxtd762O1/b
na/tztd252u787VdfG0XX9vF13bxtV18bRdf28XXdvG1XXxtF1/bxdd28bVdfG0XX9vF13bxtV18
bRdf28XXdvG1XXxtF1/bxdd28bVdfG0XX9vF13bxtV18bRdf28XXdoG2Pzh/BdqO8fxuDt75i76F
vs6Lr/Pi67z4Oi++zouv8+LrvPg6Lx91/sMV3xJf28XXdvG1XXxtF1/bxdd28bVdfG0XX9vF13bx
tV18bRdf28XXdvG1XXxtF1/bxdd28bVd/LEheMS+touv7eJru/jaLr62i6/t4mu7+NouvraLr+3i
a7v42i6+tgvW7b4wiq/t4mu7CH7Yt8rXdvG1XXxtF1/b5YO2exd9Y3xJF1juS7r4kq6+pKsv6epL
Oopj1Zd09SVdfUlXX9LVl3T1JV19SVdf0tWXdPU1TX15UV9e1JcX9eVFfXlRX17Ulxf155r6U0D9
KaAOP+y/sz8F1J8C6k8B9aeA+lNA/Smg/hRQfwqoPwUUz9df3ujVFLg/OP/91z8NuE+oW7bD8fTj
O1qsHz5NZNY9/123/h16kNE9T3WfE0TuekaXF6fLX8/K6xarXaNS8mRVnhVvn5o4rnNTrs35aNfy
rDKn3vnPQ5j1vXUqj77FrYP2wmn3CLI98Pizdh/pCs4WRbXAyxdRWtgiyvJiEenSSLSM01SWWSKr
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
Cvaigr2oYC8q2IsK9qKCvahgLyrYiwr2ooK9qGAvKtiLCvaigr2oYC8q2IsK9qKCvahgLyrYiwr2
ooK9qGAvKtiLCvaigr2oYC8q2IsK9qKCvahgLyrYiwr2ooK9qGAvKtiLCvaigr2oYC8q2IsK9qKC
vahgLyrYiwr2ooK9qGAvKtiLCvaigr2oYC8q2IsK9qKCvahgLyrYiwr2ooK9qGAvKtiLCvaigr2o
YC8q2IsK9qKCvahgLyrYiwr2ooK9qGAvKtiLCvaigr2oYC8q2IsK9qKCvahggSlYYAoWmIIFpmCB
KVhgChaYggWmYC8q2IsK9qKCvahgLyrYiwr2ogIupoCLKdiLCvaigr2oYC8qaDgKGo6ChqOg4Sho
OAoajoKGo6DhKGg4ChqOgoajoOEoaDgKGo6ChqOg4ShoOAoajoKGo6DhKGg4ChqOgoajoOEoaDgK
Go6ChqOg4ShoOAoajoKGo6Dh6DUNp9HanzTOQvb98HOrFUAiBZBIASRSAIkUQCIFkEgBJFIAiRRA
IgWQSAEkUgCJFEAiBZBIU7gsQH8U0B8F9EcB/VFAfxTQHwX0RwH9UUB/FNAfBfRHAf1RQH8U0B8F
9EcB/VFAfxTQHwX0RwH9UUB/FNAfBfRHAf1RQH8U0B8F9EcB/VFAfxTQHwX0RwH9UUB/FNAfBfRH
Af1RQH8U0B8F9EcB/VFAfxTQHwX0RwH9UUB/FNAfBfRHAf1RQH8U0B8F9EcB/VFAfxTQHwX0RwH9
UUB/FNAfBfRHAf1RQH8U0B8F9EcB/VFAfxTQHwX0RwH9UUB/FNAfBfSneg374MIBAVJAgBQQIAUE
SAEBUkCAFBAgBQRIAQFSQIAUECAFBEgBAVJAgBQQIAUESAEB0gz+A1AgBdRHAfVRQH0UUB8F1Kd6
jfeH/gPyoxn0PoPeZ9DzDHoObo+C26Pg8ii4PArOjoKzo+DqKLg6Ck6OgpOj4OIouDgK7o2Ce6Pg
2ii4NgpujYJbo+DSKLg0Cu6Mgjuj4MwoODMKroyCK6Pgyii4MgquTPUanw89yaEnOfQjh37k0I8c
+pFDP3LoBzg3Cs6NgnOj4NwoODcKzo3m0I8c+pFDP3LoRw79yKEfOfQjh37k0I8c+gEOj4LDo+Dw
KDg8Cg6PgsOj4PAoODwKDo+Cw6Pg8Cg4PAoOj4LDo+DwKDg8Cg6PgsOj4PAoODwKDo+Cw1O9hn3Q
sxx6lmP9CY6PguOjOfUO609wfBQcHwXHR8HxUXB8FBwfBcdHwfFRcHwUHB8Fx0fB8VFwfBQcHwXH
R8HxUXB8FBwfBcdHwfFRcHwUHB8Fx0fB8VFwfBQcHwXHR8HxUXB8FBwfBcdHwfFRcHoUnB4Fp0fB
6VFwehScHgWnR8HpUXB6FJweBadHwelRcHoUnB4Fp0fB6VFweBQcHgWHR8HhUXB4FBye6jU+H/oP
Do+Cw6Pg8Cg4PAoOj4LDo+DwKDg8Cs6OgrOj4OwouDoKro6Cm6Pg5ii4OQpujoKbo+DmKLg5Cm6O
gpuj4OYouDkKbo6Cm6Pg5ii4OQpujoKbo+DmKLg5Cm6Ogpuj4OYouDkKbk71OsPrHK8tXju8FryG
fdBjB/0Fd0fB3alewx7oLzg8Cg6PgsOj4PBUr3G/oL/g9Cg4PQpOj4LTo+D0KDg9Ck6POugvuD0K
bk/1Gp8P/QXXR8H1UXB9FFyf6jU+H/rroL8O+uugvw7666C/DvoLjpA6rM/BFVJwhRRcIQVXSMEV
ql7DPugzuEMK7pCCO6TgDim4QwrukII7VL2GfdBvcIgUHCIFh0jBIVJwiBQcIgWHSMEhUnCIFBwi
BYdIwSFScIgUHCIFh0jBIVJwiBQcIgWHqHoN++APwCVScIkUXCIFl0jBIVJwhxTcIQV3SMEdUnCH
VKD3Ar0Hl0jBJVJwiRRcouo1TvCF3oNbpOAWqUDvBevva65RUx13saaJLcRGy2rdFWWLvIx2RaGR
dUuXL8t4uXBJu63us+mWDo3WXYNn6gzuTrrmaqV2q3+4eFt9g8vySf0sb3f9ic3a3V3rduhYDB2L
oWMxdCyGjsXQsRg6FkPHYuhYDB2LoWMxdCyGjsXQsRg6FkPHYuhYDB2LoWMxdCyGjsXQsRg6FkPH
4iQ7Fkdxnn1o5QutfKGVL7TyhVa+0MoXWvlCK19o5QutfKGVL7TyhVa+0MoXWvlCK19o5QutfKGV
L7TyhVa+0MoXWvlCK99EWvkGecT9dE4g3PdszjpNYx/P5nxSnJ1t3jx7WV6+2Ky2T6v7ecXdvNic
PXvXuPTsnc3vfvL9Dfz9yrx3X9KcVJ44+cq7ltxxLb3jWrS46+LqrovLuy4W1xff0UKjy7evyi7O
Sbw+L3O7fFG+3LWHbV5fN9XtRuwgjmlcrqpHHZt1ZJZrjbLCriOxuoiyLK+2xUm2qMT7BmJVk8yk
cfX/SbxbFsqTVXFZPv3m4nRHUk3cTZKqVP8x+rmJP0/dNUk1nN7Y8+mNX5y//bYaeG228B5yTHCQ
orKHs48fUKZP/uP7zXl5mEedfH/7IcdID1llW29RDl39D82XoIf7Lc1qlVhVY8aP8ewuJLyQ8kLG
CzkvWF5wvCC8oLjgB3t2F2hpSktTWprS0pSWprQ0paUpLU1paUZLM1qa0dKMlma0NKOlGS3NaGlG
SzNamtPSnJbmtDSnpTktzWlpTktzWprT0pyWWlpqaamlpZaWWlpqaamlpZaWWlpqaamjpY6WOlrq
aKmjpY6WOlrqaKmjpY6WCi0VWiq0VGip0FKhpUJLhZYKLRVaqrRUaanSUqWlSkuVliotVVqqtFRh
KUJOuwuGFxJeSHkh44WcFywvOF4QXqClhpYaWmpoqaGlhpYaWmpoqaGlhpYaWprQUvoooY8S+iih
jxL6KKGPEvoooY8S+iihjxL6KKGPEvoooY8S+iihjxL6KKGPEvoooY8S+iihjxL6KKGPEvoooY8S
+iihjxJ6IKEHEnogoQcSeiChB5L81sfyBtHhCB2O0OEIHY7Q4QgdjtDhCB2O0OEIHY7Q4QgdjtDh
CB2O0OEIHY7Q4QgdjtDhCB2O0OEIHY7Q4QgdjtDhCB2O0OEIHY7Q4QgdjtDhCB2O0OEIHY7Q4Qgd
jtDhCB2O0OEIHY7S4SgdjtLhKB2O0uEoHY7S4SgdjtLhKB2O0uEoHY7S4SgdjtLhKB2O0uEoHY7S
4SgdjtLhKB2O0uEoHY7S4SgdjtLhKB2O0uEoHY7S4SgdjtLhKB2O0uEoHY7S4SgdjtLhKB2O0uEo
HY7S4SgdjtLhKB2O0uEoHY7S4Sg3RcpNkdIlKV2S0iUpXZLSJSldknJTpPRRSh+l9FFKH6X0UUof
pXQnSneidCdKd6J0J0p3onQnSneidCdKd6J0J0p3onQnSneidCdKd6J0J0p3onQnSneidCdKd6J0
J0p3onQnSneidCdKd6J0J0p3AtaOSWO4k+qC4YWEF1JeyHgh5wXLC44XhBdoqaGlhpYaWmpoqaGl
hpYaWmpoqaGlhpYmtDShpQktTWhpQksTWprQ0oSWJrQ0oaUpLU1paUpLU1qa0tKUlqa0NKWlKS1N
aWlGSzNamtHSjJZmtDSjpRktzWhpRkszWprT0pyW5rQ0p6U5Lc1paU5Lc1qa01JLwywNszTM0jBL
wywNszTM0jBLwxwNczTM0TBHwxwNczTM0Q53yw4+SqEdQjuEdgjtENohvEFCw4SGCQ1T2qG0Q/kp
yk+Bb0gNXYGhKzB0BYauwNAVGLoCQ1dg6ApMfMswfH1D5TdUfkPlN1R+Q6E3FHpDoTcUekOhNxR6
Q6E3FHpDoTcUekOhNxR6Q6E3lHFDGTdUbUPVNlRtk976FN4PirShSBuK9DX+5sAs1ntksyJQqYhT
KsKUiiilIkipiFEqQpSKCKUiQKmITyrCk4ropCI4qYhNKkKTisikIjCpiEsqwpKKqKQiKKkIQSoi
kIp4oyK6qAguKmKLitCiIrKoCCwq4oqKsKIiqqhAcCsQ3IqgoyLmqAg5KiKOioCjIt6oQHArwo+K
6KMi+KiIPSpCj4rIoyLwqIg7KsKOiqijIuioiDkqQo6KiKMi4KiINyrCjYpooyLYqIg1KkKNikij
ItCoiDMqwoyKKKMiyKiIMSpCjIoIoyLAqIgvKsKLiuiiIrioiC0qQouKyKIisKiIKyrCioqooiKo
qIgpKkKKioiiIqCoiCcqwomKaKIimKiIJSpCiYpIoiKQqIgjKsKIiiiiIoioiCEqQoiKCKIigKiI
HyrCh4rooSJ4qIgdKkKHisihInCoiBsqwoaKqKEiaKiIGSpChoqIoSJgqIgXKsKFimihIlioiBUq
QoWKSKEiUKiIEyrChIoooSJIqIgRKkKEigihIkCoiA8qwoOK6KAiOKiIDSpCg4rIoCIwqIgLKsKC
iqigAtGtQHQrEN0KRLcC0a0IMipijIoQoyLCqAgwKuKLivCiIrqoCC4qYouK0KIisqgILOqtuGLC
8F3KZEfKZEdqbv1KygsZL+QfSNgnNvb+BYG9lCmMlCmMlCmMlCmMlCmMlCmMlCmMlCmMNLllGGKj
KVMYKVMYKVMYKVMYKVMYKVMYKVMYKVMYKVMYKVMYKVMYKVMYKVMYKVMYKVMYKVMYKVMYKVMYKVMY
KVMYKVMYKVMYKVMYGW9QxhuU8QZlvEEZb1DGG5TxBmX8chm/XM5HmdPSnJbmtDTnY8j5GHI+hpyP
Iael+S1L+RhyPoacjyHnY8iZScqZScqZScqZScqZScqZScqZScqZScqZScqZScqZScpZ7ZCz2iFn
tUPOaoec1Q4501M501M501M501M501M501M501M501M501M501M501M501M501M53UjO9FTO9FTO
9FTO9FTO9FTO9FTO9FTO9FTO9FRO/5YzPZUzPZUzPZUzPZUzPZUzPZWz2sGy2sGy2sGy2sGy2sGy
2sGy2sGy2sGy2sGy2sGy2sFyAWC5ALBcAFguACwXAJbVDpbVDpbVDpYrA8tqB8ulguVSwXKpYLlU
sFwqWC4VLJcKlksFy6WC5VLBcqlguVSwXCpYLhUslwqW/sXSv1j6F0v/YukJLT2hpSe09IQ34Cw3
rtE2eiVLr2TplSy9kqVXsvRKll7J0itZeiVLr2TplSy9kqVXsvRKll7J0itZeiVLr2TplSy9kqVX
svRKll7J0itZeiVLr2TplSy9kqVXsvRKll7J0itZeiVLr2TplSy9kqVXsvRKll7J0itZeiVLr2Tp
lSy9kqVXsvRKll7J0itZeiVLr2TplSy9kqVXsvRKjl7J0Ss5eiVHr+TolRy9kqNXcvRKjl7J0Ss5
eiVHr+TolRy9kqNXcvRKjl7J0Ss5eiVHr3TNnjmgL+z15enZ9tNfth2c0VvrQONufuXqdny8CbuL
L4qL83L78K2YR9f7sViAO+/rRflqc3G5x0A77vjr6QA3HmQQhK7OPrrcDxioDz7F9xr8uN0PNNPv
0xZ8z9u05AU+fPeHhaG9b3/M87rPSbRn7cSgI48iHiqPF0AHrZzFHgp7QmFPKOwJhT2hsCcU9oTC
nlDYEwp7QmFPKOwJhT2hsCcU9oTCnlDYEwp7QmFPKOwJhT2hsCcU9oTCnlDYEwp7hlrYM4gD52vk
jzvLYN/IDJ6VxXm0vSy2L/YrgjgiwRb4z4H/HPjPgf8c+M+B/xz4z4H/HPjPgf8c+M+B/xz4z4H/
HPjPgf8c+M+B/xz4z4H/HPjPgf8c+M+B/xz4z4H/3CL/uc/sYNMnHB+d1mu7+bd+q2L1Dxdvq29w
WT6p37UYjsJu9FdHfyj0/q3CzY7H1rtZ91MAsWLzZabROl/FUZY6G0n1jCNZruLCZdmqTFYDEas6
pg5HrK5tNrndVXwvIlOW1YgoTR4VqzyNTFYUy8KsjK7yG33V1qSu2hakWbJLMbrsyWXxvLqciZFq
BGm18kjyxOTZhxbqdy3Xfgu1dsgmmTYr5Ie//v27H77/n9qskDpD9CMrZGjaPjFQwoH63+4zb1ug
9vNggxKp/jzjOBZ8I3Hsc15c3rT7+qM+/CW6+tWLA2fw+BZGD1q8qO6nW+eV2GRLG1VColGhSRyl
ydolRZmZwsVhzXLYmqXTNXmdB9mLy5vVsqVeNfm7u7lzk3VHz09Xv7I9ZOA8bkQNlFUtKtMuasdg
IRMnhokTw8SJYeLEMHFimDgxTJwYJk4MEyeGiRPDxIlh4sQwcWJyWspMimEmxTCTYphJMcykGGZS
DDMphpkUw0yKsbSUqRXD1IphasUwtWKYWjFMrRhHS5lrMcy1GCZODBMnhokTw8SJYeLEyK1P4f1Q
3g/l/WBqxTC1YpSWKi1l8sUw+ZIw15Iw15Iw15Iw15Iw15Iw15Iw15LEt+wQXsAdS5h2T5h8SZhD
T5haSZhJSZhJSZhJSZhJSZhJSZhJSZhJSZhJSZhJSZhJSZhJSZgyT5gyT5hrSZhrSZgyT5h8SZh8
SZh8SZgyT5iNSZiNSZiNSZiNSZiNSZgyT5gyT6j8CZU/ofInVP6Eyp9Q+RMqf0KhTyj0CYU+odAn
FPqEQp9Q6BMKfUJdT6jrCXU9oa4n1PWEup5Q1xPqekJdT6jrCXU9oa4n1PWEup5Q1xPqekJdT5hD
T4SWMqmeMKme0Dck9A0JfUNC35DQNyT0DQl9Q0LfkNA3EA5UXaCl9A0JfUNC35Dc8g1MzCcs2krp
PVJ6j5TeI6X3SOk9UnqPlN4jpfdI6T1Seg/Qk2yO4WDz1B90uwsW7fM2B35mdyHhhZQXMl7IecHy
guMF4QXFhTzmBVqa09Kclua0NKelOS3NaWlOS3NaammppaWWllpaammppaWWllpaammppaWOljpa
6mipo6WOlnKYZY6WOlrqaKmjpRzMmdBSoaVCS4WWCi0VWiq0VGip0FKlpUpLlZYqLVVaqrRUaanS
UqWlCkvzOOYFwwsJL8DSnKqTG76H4XuYW++R8ULOC5YXHC/Ig2daNHlewDhC6vvmeuqEu+49C+Cv
/5jCWQDtBh5DrCfEekKsJ8R6QqwnxHpCrCfEekKsJ8R6QqwnxHpCrCfEekKsZ+9Yz0gbmUZUB1iv
hOWwg2IPqUYOEaohnlZ5zPG4HZ7+esCvVEMmjM2hRE9bOQv1RsVevTLMxk/4bMaC489FrWtHKDKe
UZfRowuA3fcNKjkoDz7fzu9pt2+PpAllnG0W+1lclKVNZWGidFmmURbLMpLMLKLUFGmxiNerxap4
5LN2fvazxcXmzbYaGdd/qbas0eWLMqp+5bMXp9vLzcXb6PKi+K36geLss79uXv3Prhv/698qIdmr
zyH0EDW8d2h5PtQZXZ21HTUwTmsuI0KXU+1Fev2d8Rfnb6/bnJrvcupgr7FvfKjOzGmZUBBWX7Pv
b2531HayEhp+NG8G65Qu16Q9rYn2jaY1sBppnU93WHyu7W92ZKZm3ouzA2bHyJf9bQbbG92KZ3G+
KgvNomVeZFGWr9JosZY40uWiTIzbFRsMBSdRx9SBevcDJsC+q6A6d+eQyPCwHFhDc+SQZWZbN7jt
IbtPemF0g2gIX67j2Oq9x4G27X+bP4d0j++/9/ru/Y88u8od/X757Lx4WT5bXmy222ebi9Pnp+eP
BIFvOad797T7BJPbKrW4050+aPE+YcW27n7dEqlOPC5u38dJ++H+Lau/VbuF06Jax70/R3ePSOK3
1Y8fUQ1UIxBwxyio+TVqPIljRmXrG9WaA67NEpFebD5iX3rUSDsmzPWuj/NxC7uRziNuYU8GPhBd
bX1vWlNPapPbnpeX0e5zotPz9ebT7etFK7J+0Ic1VjL2iCduw/81sMNqx+q62rLXiOt/jrJJvf6E
OuY297i23F85hv9FH9rwLM42i6gWJfOwRVhX2rvfRqHt58ppc5dAj8GCJp5M4+vrPTxUoyPrcJfT
0gB/cCIf06bzeFr+w1dtLENzOzXz/i2evR/1rzZnp8u3T1+fb4t1Gb2+aLHUrYVNTxQ3H1E5srhi
GE+xIyFs75EOb+fc0BL17rH04YnujoF6vX2axsbP41Z34v94t8JQCz/99J6Y9lBKEVrZnhzajUNp
b9rdVg/wk96f/Gic+eGPZp9qiXqFEsMQ8EG1To3xxnUQtHg0mfjo3P5w706yGLfP3Lp91/U2t2/d
zY/sb9gM5It3GJUc3/rwfPNhiEdvXpTn0Wrz5vz5RfXrQyxTHuad6klX9l0yvK7Wx5+/KrbbypGu
2l45HlO2f8v1VwuGP7w6fVU+3b5edLS+auRmdag8zWyCIjOscoRGv1WH+8d3O9YZLVPvV8fH1x91
Ym43JaC7fd3Ml9CPP9RxLal3ol69eC/ro1hhj3S1tN3p7rUYjmbj0fLw6GY1MOIV9o0xM6Yl9ZCX
0iN3QDdGRKsi2/zWYSTx2SmPlEFWVnVZBltzOT3FsFaLK4+WVh2zDfe29P3DaqvWFBnJQmuYcctG
lw1jijZOZtnQwdpyemutesusbpOlIarT3ZO/jgVexbvHFuIJ4Z3hDZ7xp0/jEPNpf5iMLAB07EgJ
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
13/9/Od/V/+++Ontn78pv/3y1e49vjt9c/qP5Jv4v7764u0PX3355fLb757/5Zcvfv+hev2XXzbm
+39vqr9/+e3ff/zv05//5/fFd7/+/mKZ/vfl33/SX4uf/vXqXz/992n1WX9avvx1+90fv0u/+/qb
N8vT6nf/+HX23R+/zn/45es3P/zyl+y7r1ff//jVn1c//xxvy7c7274xlX3xz8mLs3/+9Lez5flf
Tn84u6ze//sX/6yu/dc/vv9tcf63t4vkze79L//58/PLf/60Ovvr3784/fnHePvdyx+z5Z9+/KX6
zr/+nP4tX17fl9eL9G/rfybf/FJU1787N6uQau+LmRMmwqAmwsMD4cbDWi6rgfD/XlePtMPCrgHv
a2uP5uqeXbzdfcfySf2BHapC+pWggx5at3MpFF2Eoou9nWpqyuUiSdOouq15lK3jVbSItYxckYlb
2yS1Kxec6m2n+nX/q8uWoohDarY9dKkYRnUXo7oV99ZifHy6PdZJoN/0eR/GW/kzLLJC41Hk2c74
uc/0MMOHy09pJeYwv5ke/PrM+Snp0Pkp6Se9f7MRzO90rvyUdKL8lCbG+5DZIQ1O67nUr6Whfq3P
+zBaBZj4zJ/vjJ/7TA8zfLikiAZn+Zx9e/DrM4cZpKOCGXSzqh9HZO4qVXnDrvurgExukzyzi8iU
pUZZafKoWOVpZLKiWBZmZXSVD+pYrTQwAvq8D30fTdnsyH7823z8xKv/XtcDRKtyXbw+O6TW7V77
r40uVq4o18kyis1KomydFdFCF2Xk8vVKq/8tFuuPp03En+bWapyYPI5drLHqk1X1/Z9+c3H6nydJ
nLjqjy9eXez+Ghup/mP0cxN/nu6u/+kvf39S/v6qej7b9z8f5zd/XndX3Odx/PluxOx+vp89Y89+
ZcDbzXgEhamjH/TdK0Rb+9N45vvz8WbT6vu8OjOpuyfZrN39zcSGggZNeLIG+vzfIRf/8Op0d7DV
xeny17PyP1bmf3Wzyn/EFZSVoqdmuYhcmS2jTAuNCrtKozhbl8ZKtaRbLG64Ak3VOZOotXnsnNon
l8Xz6nJicyOieW4yzWxi3AfV/6lc3VZ9d0v1n1yZ9Wz3QRebs6fnm2h7ubkoW2xTHlyIa9iri3am
QO+tzpOZKaNbNoXQwWQxRLNwOS2u1oLehMKY+RXG1N+81JkZ0wiht5X0O3L3WOcBtC4QoSBpIP48
z4zNU3GRJKlGmSmLSJaJjdK1i1dltk7XaXrDUVljNM2lGkGZZJlLD4smDtDJT7iQ65D1ywiHReua
FQrigp70vdoYb2lREJy9BScUZDa896gzyIa9uhjmXvjIHUmdxzIu7z7Nvfz104rXqc0WpY2WWkqU
lU4itaaIXHVZy9ilSVHcDG3F1rjEpNUYqbadRt6HtsQlSZLFTmKb2RuRrZqVBmP25aFUeCqlwoes
dAY9f8YaGR4S8iAIao+x8+GDIYJmDKTobzY4jXR+mKz6m486U2uIm6Y6dg+uYD9Pk7zMMxsZU66i
LFuvI8lSE7llUaaFrle5yW/qWGYkV6O2EitJpNXS5REnG4bFe2o8SD5Nlz6+qTDi4v7h+/c5K2m7
ce6xrmm6TsAEPeogaj/OOMXtiH2NwTKmWv6pLTEOemAjr0Kf5x5+1khMN3Qkpvuk9282AqSOmysS
0wUk5r3jfciV/w1O67kgMV1AYvZ5H0arABOf+WOuD7q5B6h+flm+O5Zptw9otPf7wb3PQ1Z88h/f
b87LPvRs7joW9Gu4wM8GNWzOK5ewapkU8PPjvdhdfFFcnJfbbfWb/W514nlsdYbLCb1zWFyUrzYX
l/sNjjvWK4+/wXLz8uXm/LPXl6dn29o//by8jHY3JtqdePnp9vXiwd88msUzoF/pfFPWTZC50UVy
NRgODfRzeV0vYfHwDOrElia85n3+odubCUHo9sPHM7P6SMw9oL6dPKY2AxPxtOMu8ST6smLr1uss
jVJjbJQtrItkocvImVVutYzX1iY3CjgyiVNX/Z/ZVVvYOHlXI55aJ2mmiY21+i3VfXtlB9WA5WZO
fXWTpb4e1EQxiAkyLl8wzG3pMWXzNQbBaONuU6xcqvPA+p1TbcTO4hA/nC5Dc1XaxKWJVqM5q/5I
lxpJVo3rpUvKZbJaSpouPEdkTJy73NhcUzU1YSeZOQx2MpiC5EHfpRHu6EItzYQomnUmxxC7FuvY
PUpvHuqY5k7SLFJTis2zyNp1HGWJ2mhRrVEjs1gZtYukiFO94a+MzYwkO5dV7SKz7P32Mq48WBLn
SSyZZGlupblzpzr23wO5H6OPvYaat1F55jrDfpCHCtWwe8yeOVTkzcYTuzzOklKSKC2SRZTFxkbF
ShfRIrcrKTNnVvbmCXmp5iZLM9HUmtSZw/aNfXrniVcsHrL4GPAQ6EREQ5Xn/h6wzpgZRXpzEvvQ
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
tjEWm2pd/r9J7fzvD8V+2N7//s/tB/HZNv/+bPPB93d+/uD7F9sXH9U/ZE/ufpWPv2w++O7pV3l8
dvrhx89P+o+efHQ/u7Prszs/59/Fz/786ffP+o9PPx339/5weu+ju7/f/ezb2y//9uOP6ye7Fx+/
+PnHMfv5x8/XP+Z37v30w9f3tg8+u/vFvacnH/36+Z2f9n/79LvPn588+PrFSf773U/7j5/+9OPt
pz/t3/Xlt/buH7/5/e7PP975/ecfPl///MPXZ6cf3vv9528+qj+6Xz0/HeMvP/3w+cOff/jq7tn3
6/+9uiTt7sH24ZRc+te93e3N9sXq/snql82jzV437P715M7ds6e3frn75F9P9v9bvbx1t3r5hvtP
bv26efDL3SvfnHIRjjcKx+vH6isM3G73Y/W3Z3s2n2PauAwBOQav9qp8vzcYABcR5fJkm2enZ3FV
bc/Wq7I4KVYnZ9tqtT7NqrPyJN+drteXJMrfmKhtPxiz6fmffvh5/fOPH939Yi+apz98Hz/98OX7
/9gf/7kXu73Ijb/+/OPHf370y6OTH158PLwUw2+y4SSv1tv78ck0FE5+GMtP96L/0w9/7MU5/f7Z
0N798fv1/rvfl9sPvv/l9IPvf/2x+LrafvDd3S/ufnz1eu6iGuXv2w1XolHewvs/VufokLF/bv35
+Cq8/3OQsv9vna/DrbsPTnd//A1DChePzLyNmF5ITP6b/F7GnH1l0YrzesJX3phz9sG/j4+bp/ti
nv310XeFkaFDNPDb4euOdn3rfHMMqMLrC0SfN1ajP0xnq0e7PYkvYzaTIF9lhvOq4nyHxhkvm0uH
um7v5V7RhwXN3pGd3M/d9cdUTnU5tB7QldcXDjgA6xbPmro62zSrbBP2Huh6Pwdvsni2imeb0+Zk
m1Wbuj4SWN4hpN4Ub/8TeXYIta9FnmXvIBw7+8d7w6GbkqTXos4OYtk1M+pIAXrHzKojdUnW6+LY
VsUs3npRmb9eE/BkU9RZCKtJGFZls8tXcb2bNtU8XYd8t6ubo1mY/RBSj2fWO4TaC+n0Y16d/Vyz
3nFz6Dok6b30425ivcfi2NZ7LK5sIcNDBs01D5VjXcjwiFl1VJ5vvq3WZ+ttsYpFWa7K2BSrsC7z
1brebfKsKIrT5uxIbIBDSD0eG+AQat8zz/dt4qL7P2webO88fLx6sLm/u4qto89lnxx37x15jPsv
+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
uPZgWA737hxOx8u4/L+Pv3/47F9uDi8e3/vuxut77yw/3TvdeHjnnRuPbr1z49W9V++NN48vHn92
6k/uvPPly89Oy0/3333/57vlvRfvfXd89KAcH906fbl8dP3LXz4q79//sF/de/P+0/ce//L4oyfp
L7999dXhxYNX77+69VU/3vrq48NXp0dPv775+dN733/0+JOnL+++9+3Hj76++u3DLz/++e73n7+6
e/rl8Yfl/Zdff/XNy3vD54/uvrO+3+/64pfHt7569Mutmx8fbt38/OH9d5/+cuuL98b3vtM7bpX3
l68++5d/eUvI53/7NLwFK+HfrODfMhtvK/f5LW1/a7jPeb4/3Xl49+614/zgzrXz+d79a/MVl7xq
7DSfHy73hvHu3b8t2f9eEr9z8/zy1vfvP713+maJ5fIfkvjl5/t9efL1zY+f3br52eOHNw5vF7f5
3zPsb88+e77/4HI4H6/dPRzvXjsvd05XQsGd6do0PJym8/TgNJwe/oEM/nr6203D9X9w6v/fPRVv
zYq4d7i7DPevBn+cpulKTH44X7u7PDhce3j3crp/dzqP5+P0N5qG11//d4b8p7uvjhrCL/6Bqf5/
/nDvlL1T9k7Zf5aO9FtG/W3VkX5L298abrLcfzAd7zwcr433Tg+vxJW7y7V5ONy/du/+4TTcm6c7
V7L835a8V3Hl+jv99f1y/Pju6fMfbn339Epdv7r321uv7nzxyzcfPbn3zWdf5Vfv1fd++ej6N998
dP3r8aMnH40fXx1/fjh++d7T4/2HX/w6vbeKKV/deHpv+Pw3tuXy84c3tXTWd1wtmacP3s1Pvx4+
f3qrL4cHX+Wn7z159vjuO8eH97/rL+7c/PzR/Xe+fPs40j5lv2XK9hW2r7B9hf0PX2H/Zu/9LTP3
tsoNv6Xtbw1XOw7j3eky3r324HLncO08Pbxq7MMV6zjcG4c75wfHZT797ZfI5zc+f3Tr1bosjl9e
v54/vtG/PFz/6ofvP2qXH69fv/Hxl68/+/X6088/fvDFHy1G3zh8ffP+283F9in696ZoX0H7Ctqn
6B98Bf2bvfO3zNTbuu//lra/NVzrcH++N5+Py7XLMp6vnYfD+drd43C89vDBncN01aThsLw9cNjr
++8sr/6h0cf/+cP9x1H2v+OC9uTOD3f+4oL24tHjhy9vP3n84p9fXP33r/zQfnn8/f1nv7y4Nhyf
/OVDf0xM9d+ocf/P//fxs+8f/I5V/vCK7h5dfe3FH9jH/+Kjv7Xt2wpZf3x05/lf3vDkxR/T6P/o
a3+Fo+Pvmcg/gJyf/6dj9B939vmDH549f/m3HuC/og9X/w6nw3z7aoge/Pq3bsffnDZiuP6eFPJX
8pX/e4T/7sT9567x37WU3s4x+gMXqyPMf3r5+Ol/PhW/m3f+FxvEb6P437co/zuf/m8O6DcPXl5b
G3Jtldv+z4uf7v62wf2/puNt6ti/+eYbouxf07d/b2Tekn7+x0LNv+rrH9Ha36M3nKYHp3v3xofX
pstpuHZ+OM7X5gd3H17pDafT/ct0vLo2/ja94fMrOf7OV+8/vbciEk8/Pt59LGvE9Zv9slkjvh0/
up7Gj+u9f22N+O7G+d47N57cf+fGt18Nn1/uvfPl408ev//2qlv/OMP29ye0f4Nj/JbBe1sxmN/S
9rdlbc/H471luHclR9y/e752vtwZr90dLtO1ebi73F/Oy+l8uvN7iPT+01tlJdJvViJ99TuJ9Ke7
w+cPv/4L1nDj2/e+P95/q9b3P9bQ7QS3E9z/MoL7N4z5twzg27qp/Ja2vy1rfHz44DjcG+9cu3u6
HK6d75wOVxvgg6tWz+Pa2NN4vD/9DkL9D91X/get8X+sodsJbie4/2UE928Y828ZwLd1U/ktbX9b
1vjde4eHV/rT6dr90907187j/ODafLk3X7ucHx7uHMb5PE4PfwehPkmPv7pxXD5898U/plH37RmW
nVB2QvkHIZR/wwh/y+C8rUz8t7T9bVmby3D/7uUwXq4dltU96c7DO9fmu/Nh/e94XA4P7s3nO3+I
C8q/64j+1gplb+8wvYVr97cM1lvrpv8b2v62rN3j/Tv3zg8fHK5d7o/TtfPpvFyb792Zr03HcXxw
53jv/mUZ/0ZE+V8Q5N3vlsNXp7c4R9LbPVQ7Qe0E9T+MoP6tH/RvGLC31of7N7T9rVG21iyBDx7c
v3b3cpqv2rocr90dhvHa6d7h6uT+cHe6c/kDohp+E9S0RjV+Nn70j+5H8D9ziN9GJfA3DPRbqwT+
hra/LTzjwb3z6cFwunNtOB7Ha+fznSuFdRiP1x4u96flwfzgfH+5+wcT9H+JWrzFssA/3vC9hWv9
twzi27rWf0vb35q1frx/pcjeGa4dz2v+xul4vLYcLw+vnQ6X03C8d9Wk+W8ouP7mjetJGz++fm9c
f39rLHj/VXnE0/hPV0N2mv9Jqf+VhXs+/tMy6+Bjn8/ZByrWMR8/9LkKEcwU71hv/UuC7nn4p6X7
IPGLknKvBycOBg7OHFw4GDmYOJg5WDhIHGQOCgeVg8YB7cm0J9OeTHsy7cm0J9OeTHsy7ym8p/Ce
wnsK7ym8p/CewnsK/Sr0q9CvQr8K/Sr0q9CvQr8K7am0p9KeSnsq7am0p9IepWSfz3rL2ZnZ57Oa
cFYDzvr8WR8/69Pnd/TnXf15T3/e158P9Ed0cv5If0RO50/051P9+Ux/PtefL/Tnuv58qT839Oem
/nylP1/rzy23+5I5KBxUDtze2z4f3cUf9OdH/XmuPy/056X+/KQ/v+jPr/rzSn9e+3UTX5748sSX
vSrOrIrzukJ8cOJg4ODMwYWDkYOJg5mDhYPEAc2YacZMM+ZoBrO80J7F7fnZy9eDdgxe8EB/HurP
N/rziOV/4UAtVXGiWaWK1p+PcAU4y8z7tb43tqGDiXGZPBziUMtkDjVPooxJlDGJMiZRxiTKmEQZ
0y2/yJQx0aVpq5BJZZD0ZgEQir36JtdtcKUCFSlJ775R23TtzMJB4mDmANZZ4oCxKIxF5aAwHJWD
zHtUIeyq8csZlst7VLpiphzaOpoTN/N4dcPu8CUuFJpuvnZ0ZYqZemszFdjW1/GlmcfbyAHNUjme
9Z4T3+bNc7QvnoJAGjdnepUZlMyYZkawMqMLja9MrdnXpGe8ND1SXpamuUmtmsTFJnGxSTM6iYtN
4mKTuNgkLjaJi03iYpO42CQuNomLTV+wulhviVWaWHiJ5ZrgCIl1m2ANiQWcYA0pXgjXSKztBNfI
fCvHL/FR+EjmWzl+iY/CdHIc0NQcTYUN5TigqTkaBofKcUBTM7SSmP4E0SQoLEEQCaJJPLVATwuU
ukAZC0SzQEY9ZBrIKIhm5peZXzqf6DSj0wwT1tHP+IPiP0cxHlVwm49iPEftK0ftK6rCNqsK23zU
vnI019X2opps81Hby/E13WYVmj5U621WrbeVTx440GCeGJ8To3pinE+M6olxPjGqJ8b5BAGc+PKJ
6T4xpyfo+QQZn2jdCaI9QZmUMpspZTZTymymlNlMKbOZUmYzpcxmSpnNlDKbKWW2HtCeTHsy7cm0
J9OeTHsy7Sm0p9CeQnsK7Sm0p9CeQnsK7Sm0p9CeQnsK7Sm0p9CeQnsK7am0p9KeSnsq7am0p9Ke
Snsq7am0p9KeSnsq7am0p9KeSnsq7Wm0p9GeRnsa7Wm0p9GeRnsa7Wm0p9GeRnsa7Wm0p9GeRnsa
7em0B7lCbPooNq2KgrMKls0UN5sHC9MWpS1IW4y2EG0RWlvBoK1g0FYw6BuDvjFoKxi0FQzaCgZt
BYO2gkFbwaCtYNBWMKhtg9smtjFIbBnEPQZxj+GWm39B9r8g+1+Q/S3QDrd9boF20OY+3NUfCWGD
RDLVuJwHyXGD5LhBctzwWH+e6I/4yyD+MnynP9/rzzP9keQ8iMMN4nCDONwgDjeIww3icIM43CAO
N4jDDa/d/ImeTvR0oqcTWk6olTPKzYxyM6PczCg3M8rNjLI1o2zNKFszytaMsjXTjJlmzDRjjmag
bC2h5tKehfYstGehPQvtWSz3sG95jlUZc1ZlzJWTJw4QdGbkG3dtomvTJuvNSGnu2qQpnx77Z1PJ
JLqYRCyTZnvS3E8ilsl7i4hl0txPorZJBDHd/ZPCV/83YkF/GNL2nxRlnyfxhOmRyWUKjaxzEL9Y
kNbCn7TwJ/GGSbxhEm+YxAamlzyptUEB5Ks1Y7Gseb+/WiEW3TpbS/uEcz28eLdfLn/58JVuKH54
petY4FnEl5NbvFCK92rRSgC6EgG99+ef9Cpkiu597OqtkiCuLrkAYXrEy05uu9bgQoHfq9WqepwL
FYyvmqANdzl94m769bPlrfUg3vKXlbwY/Mg/6+wve8UVT/EeXCysLKrm3S7RquhAvG9hvGieR7B4
b70abO3RC6Ugr7otzrZQKfqqC/TuOu9NHGSGamEmNGYoiOs91R0X71vfe/Qli4MLG1tBFqEK4Uon
atb8RH/EyyoC5GxZd31ZvPXEwaA+fsH52S+3GDEzFyO8O0N7GUUiW8dYEIbWztL9zAxmRlwS6nIQ
/+xf6+w7rhYO4g0a4vyLu2U5fWF+ZkZ2Nn1eUaOl8ibu3u57wLeXV9340hQPKHCT67wasn7sN4g4
rjpo+W+2XLs+06EkxqfEGpg8qjMzYfo8G0ZRPdL0rYmJGqpPufvExxbmvnGrl7l5xBKKbP6VYeKb
nklEoQUUbP3AmYeT++eZPKhyaNKG1h5CpxN9ZeYlny8nZs3i/mwpfwn5uN+CPDU6E6vBwv9CSXWV
pl1fNbFwKr8MHFz8shY9EZnFTBdmskL7hXnS3K5sDfopccAasxDdvmGZn3kdK6ikN+p4rgN3ZIwg
DKk3yxw1dZ+9URh3/Tl6Y2r4kWUVNOYlELzbxLaYjkfr61d98f5TrJQvh49ZkRffYVWo3PS4J3YM
l3lNEnr68zcKuq6tnDhgaCtzLS1rofj3+gt9r9F3Grj9opk6fEQXGIYab1FfOh+UHrScn+lVX/Lz
6FdbGVrMxRZ2UFc1XjZOaQVqMf5QWKoA1VfUX2BcJi0k7/UXdpke3DLa3t8o9no1FzEQbXqjtO3a
VjXgxBKPXWeBTr0CZ2uG64FXDIttNqO4OrDcmpEHireoqAn9mifaGxWC13Ne1ZE6SmzpLJ0Orceu
1BkcjcASSm/xNrFecknlVx4KL1owqiX048xbZkxlmakNUUEVu5fxOox0/Fflqef2qedva9li1uDv
Tne5oP4t0KG3cAr+XrFo72vlK90Y7LxaLJLSvJjjYkdbjtvOaFFq1OwuQOlS2dbFqI9731ze1R9N
xVFb4fKO/rz3r6r3LssH+vM+k6TVnCUBLVpMlu0WWrZ86DnwTC6f6Y8GbfkE4tU0LJ8zDm6ehIMJ
XmNOsGiSFkk8i9jJ4nZ46L42TXWow1JWueVPXDIibrC4E3vyyOK6MATNM2WRdeHxEbZvDb7BD5db
3BiLuJqTS99cls3QMYdQ5y1J/V5u+8bYNg3sFZP4Mvsrd+jCmY0lIXicWZ6a4wE6NtNbRJzLPeRY
+Pzknj50z7sJ5wE06yn7y/50tZ7MrJZHHhe3eZH8skhCXL5FCp5Ym4kxOLLReXi0CS9P/T4IVzR6
eaUzMeRFW+DyI0PttovlLdpIFolcy3M2bq2U5Wdk7Zl91KT6Cy2DLqwKLJJvupvwCjoqLLHqZnha
FxjB8hdW2DaRPS6YmVy1wlTSEdGPMKCFNTzEdml9bdkmCyAmfcT5EcpABDP2uaDa9WemLTOBhf4C
5iyH77kwIOQmj4ihzIR4kNCSFsM964FX09ecs6hmdBqLOt3QyIJNY2UydH5GFLNwszBAC08NwTWM
0KwzNkG9BbKPZpl9P2Jld/aGuAPmmkLWgw8HG/BTx0849ypgMx2/5PW81dBUAXaqiDVYhNd74uYT
MnZm4dDrBf1vezN8xUv7yLwtzIkBrnSPvQwCDdpN+Y8BjnZoY4c2dmhjhzZ2aGOHNnZoY4c2dmhj
hzZ2aGOHNnZoY4c2dmhjhzb+FGjjrSixscf77PE+e7zPHu+zx/vs8T57vM8e77PH++zxPnu8zx7v
s8f77PE+e7zPHu/zO+N9/u71JffQoLctp/AeffVnpZb6DQP91qaW+g1tf1tSS53Pp9Pp/nm+driz
5j1fDsdr8zzO1453pnuH5XhvOl7OfyOCviLce6+OL7/+6tG/Tpr9xS+P773Tj+s7v75563Drq/ce
f/L956/u37zxj1sn4H/OsP49IjNXE0MYLsLKgW1nwT+thEH0gp0Tdx+7LU3Wbtd7RozFNm3hpjVj
B0mYN6RLdjlyrRY+O028z3VcIDqNtNKZPuZjmFBsYR1/srUIt6WGk0nc+JdWtHCyAdZfL40Yy2aM
m0e+g5tgWONsULvgRLXg13fg8QVlN+M4saD1Jg4KBsGEgQoD/RvN6riO4OslT4bV8F5oH7+08BfE
u6fR4nzgZibY3n+4Oq4HdCZjvbLKvGD7G7/FdBdv0UgYc+hABXmzOUrJXr9sfx2cfxY8rcI7Nb6z
hCcpLhRWBvGMuepjZqwy1llb9Q94aIZfFI5pa/tw1qlcwveOTy6b908Ng/0Jh79w6WCobWI/4XFi
K+T4HS870yjRQ7nOBUbbOIBcOeZwvUnWadeRwynORJrxLluYwxJ+q/FWyC8I0mbb0USxvpchLHil
VgyhHaeGoIUSwwNt2gPmgHYlN485jOILnklL+LptDmnR0Io13JfaZ1w44Qp2xkfQJnpZ9yebebGV
Z9xm7cLTcU807TRGtuNYC5S4titaKi5nF4zjD4xHxjUsHIOjA4vZjh2BAivMLPS++VBXKN3YSlBb
IN+NVdekSy34dlpVrDDZ9phXsWiMxWSp4wmvEGt2+Ru300jNguuCeMzK8YqfOOO4613A6n4Jk/3H
/qLBmozjxviYpUObWnh1Qz+x8hpbAc4d4QL22oRlZ4cL7HUJB5HN73n7xQ5qOKwJ5VlOm+tQYwSX
+DLLeGsvzvXuasMdbdk8DRqOIYlvhwdAj1/orlGnAicYN87VaQaOWP7WFT0aBajh1nyH18Ezg8l1
+DfOfBtbsEdSjF5spZ29w24JKbzY2F8SMFEFf0ufcoe+bIA2vP4SDujJLimihQTFx57RWTmbr53b
2Xij7tBOv5g+ZTNbF5O91Nn40of6I1+4wQ9pc03v01HRobzXVl5iviwnERniFtCgxRY5wiOWZKc3
PD7suZPkP5Pk35Y+wXdZ4+8BO0I46Uue9oB9DkPGH84ObEluc0lOdEk7RpJbWfrM02NfLq3yRW66
66yJ7tJDfftTuu8G27MmcTcO22YG6S4XIpKBA299yIGLHFaWdBvXGc+hZ13MxlaL/BiG6A/fx9VT
Pbenm/zKFzm+L+F1ZmdqucUvdgSXN/zcfK82ATtRy992sXetfF6X02cwXJO8HNPk0bxOirdhTYp8
hGd46oLH2dWNncHzNofX6RJemeGbGJ6GR1OI/GztBJuQtt9wtINU8CAKP8T0hqcX3ouWYjGxLcjf
SwjrGuglZOWQ/0JqRLxdzl9xTm/m6HrjgNYtNCr4h3lO7KSwsIWlt2xEGLSCF1QKTeQ+TNds+KnH
sRO9YpZ2useDOPamiIoIsSRaizATAQLR2oU+Lni3VTq7xOPRIy7BFTZxMkIgYroS3We1w7dSCI+v
OJ/cdAs4ddvdTD+n77l15oDpS0xXYvduhOZY/BpvcAdzn2DtNmFVJM2YGFvWqhvdY6pOn/MOWEel
SRmfTJiotY71AGXuwhBmRsX2OcsuYifrz1BG6A9LfIeuB9mzQ6BIJCsSnbnvEMq6a5xx24v3MNM5
WgdZOCrEPkNbdMFPXMdN0ntZo+HhxpMwQFU+OP6KChNuh/iVlmgJPQrxsDCo8C8EisT2GZYyaKFB
u/OyiVLh2OlYIdtwKj6WaXP5z6EWZJZhNMIt/przzAZq/ewR5xFLNBEbFLs+U1xYPAS8ffmnx3Lu
YMgOhuxgyA6G7GDIDobsYMgOhuxgyA6G7GDIDobsYMgOhuxgyA6G/D3BkL+7h+R/Evm5NhjKsRJ3
eMa5ddHv2O9YnAUswgREvMWCm3x/g+FIW1pGFn2FW1WSPiy8LsUz8NYC5VTmqqI/RVh+jLyRkdN9
5hcNqdHwSletsFT2i/RPIUXEHlnjKRZShVgbrKBG+6yvadM/aJNXsMd6P7m4HJ+wJT+BpE5b21p8
hT4HMTfGpcEsGuBNjFQLFhOZceLxyFllOYgIa9Ns/waIgIlooWbDcHI0Cj2eREQ3eNjT+TM3xsuQ
I5ZgL4x+i9w4jHVniDsJoiyzpMi6wMRctpVsWVvhNeu586fc9ph4rxtfcx0ABjkw9IFIeAK298Ym
GFpFZ6wj605swd7zO9hRIg/FieHobNIZJuZdSQ7xV4PkyAVn0MmkhDqTucKkOjL5Z9+oUIUsiVu+
3Kt+V8l7pheZIQZq4AV1hCePel5RAUtGr45UAxHBX4AUvZ9n6TZNQQLte+QB0maZwx9AFEjitGQp
PVkqUJbaolQkc4r2v0unLUJ+inYDqmZIt/3g80ryM2u4WVpH/gSS9nhIGMhSdLI0r4PPPkKgmlG/
RQzO1KKxXodApJGdgU0dOkuuz+QtsCqQJaReJOBn7T5OOTciGBBFvGSpTBc3HvUq3+achFtm45nw
kMar8pZ1zvJDdsNEIvkOCc7Ovt9qWZYilSWmZilp+aHnxStVQM1iYMZKUodN5KewOafK8CelBmWx
zaw9IkuZydqHhA/OzT8604hWfn4BLYKKLYFyOnOYOIFyHs5NukqFlk0ZJtjCVqI8hLM1L4P6RzZ9
pWJbIi2QEbzMqrUClWPiyCSSkaePwQoBxBtCs0U0RwQimK5zaGn6HRgWxolzZAkh2Yb3tIi3Ilvf
DMGxM7ZICfkjuO7C52x1eIeWA2xOIfDYAIAmOrPbJpKhkLwNEdqBKP0Rk0a+GtYS74DpL0NID7DR
vBGnWfaF6ZhDXhxRyFkJkV8qrBYW5g+sJjKXMJxL0AJKZmZcM7pkjtwqMvM0BMfD51zH3JRIxJeD
FDhYQPaWuNThj5F8LsOaIYcwilgNPWxYX4H+FvaVFL8w0AvpwSyNEWC+HH7kjjNyfbyFJKWxkWzf
DigpNpP4JETgzW1k184EpWdiKzsDDXfaMqVaOjt8gE3I2tkL8oQZA0+8kcmLRFQe1DfyXXaQB8u5
Syy259waO+aBXzoPR//UmyHy7/n8CbNhERnL4EInE3ORkEEs2jaoh20CFRs71Lo+4mFoMjKfksQA
ZMVhyGlbZSkQX8R388EUnC063gG8g5LjEosgMZ82wmUWV0ZYzJjlhkj/CTUBk6/3sLBju8oIt0Ht
ASkzzGBBGR7XX3AOcQbRW/iuANwZbpsBOTPtS8xBppexqxaaWaLhkFYs7oIJ2Tz5skmTMSSFXgab
LCTLihaXiadiRMGDFr4eyb4Cb8nRVIi0RC9oaommRmItBiVzUHlPZXQqzai0sNKM0OYyU5TJKtwY
scpc1fiFXFfBFOrC4wxLpReVpVPpTmU0jOdiLGOTOLKj1HcZG1FJfY+knNEjcI1NTI1xQFywhHy2
OBQmmPfZeJwcFSbhZdVEkpfXgAdMQgMo7YxiQxtc4p64xJBb3yKKeoWovJ2T/xY8I8yRJG0NPtYY
XAseHS1t/IoLDHaDThvpeIMtepceX3EHM8XLgF9ziIGYgM4bU2uskVz+XLeRHf7Y4Y8d/tjhjx3+
2OGPHf7Y4Y8d/tjhjx3+2OGPHf7Y4Y8d/tjhjz8d/nhrHUXWAJtM2j38qdYmq6NK6LzkjS9bwqof
8ERcoKCJ6VtZyBanXUVjXW/EDchSQP2QPbaj/hEqYc+jjufRaSujZHXWqfUqakzIqFz/FakOJ6aC
H7z39nlzjrJrf3Upnoe8ivVi9VhppddzhB+KmXzIBYiCsmN6VUHDNdsyizI3u9ym15oEszQzNIdF
FMmtRbpieU9/9N0iaa1IllDYzrxsQIxJVV7xc0EIwZ17UTLupXyCLBKlgHRQpDLOGuvyGaTiBlJR
LaqYRVBQ7GlmB+VLZO4CKeAV6bEuN0DOjIqpTadndIVdOyN8NTTAjc15xCTAuEhM2ZTHhstghrii
0IRlARdhuGhcT1IPVRKl23MYZ+g5xIVwhizUwRJIs5Ac8OqC1c8ivbSI7Rap1kU7dKHqgO+9EA2T
o16Ol8INWm/cUJpnuQ812XfZrfefhx62HpCLW/8YvIcdyLy/SAsucsNzy4/sl0V6bpHaXZ5QH4FY
vBYhLSYlac0DBU4ubNYQk5ZY0XwXqc+FIlDeTMpz+LY3Se1DJWTniZeiQCYgHm8cyuu5FGW0FLy0
HDQPFzicF/fZLbPCLc/KURQy3mLUfNNrvkPZHCtU5ReW3MWkYJm1aKs5u0GSV8vP+AF7DlgwBf/F
Ei/Gc5Jkmwu1l1amGE8dOAgRRjPUfmY+ee9EzUAr+wU56oCvPbVJlgKCGZEcJYJ5YOoFNlRQOwva
ZtnWxcI9dnymOtbKYuMe3Ia9OdRPIS3eu8SQ4F2bYwBoTXi+w3CQO6k0spx+ANSK6MLoHEOyxMN0
N6N2hkZDQZe7PAyb2Nobr4s1ToxY+AezLtCdSJ67FHTosmG1JvwCkFPQyUoQKBGQJUqEvseG7rf8
yo3eHCgRlSI+MsYyGkCPUlTkZFATazHoNbTu6EiCCVg+n9k1E6JzgX69tVQ6f/C23nFJnqPyX0GV
LKEWvmIwHDv1BSAE5BfDjlvzay5AApmOZcLhWjzM6GeGw77jnXnONCgTO0jZNPbcspFsJn6psl+V
+DbYVRQBjUqtoawUSCDz5vglRrPAFgsLuqD0xJBsB9E95j/aU+hXiV6w2S50JxzFsXd9xq0Grq77
vEa1QD5Y4h0MJLIRFFNQwEbyxIe2Vsi07Y3RoVIFzXHa5rYSxFHpc3BFZAoUxkJKbm3X6x04o5vp
Tu9zYzzasC02eBs9jCVV6WpojSVaxyBbR7xs4pW3evZ4rHkFTbNsFREXeHjw5xYIIl+KgW8YFVP8
EvcwRLHSG/1srL8GIhLEHUue6oosTQp5rpeiYQgRQUOdfnW+jmC57audr8fGEaPc0fcaQ9lpcycS
1gEghzfgnDO9AJeIldDRJALECDqRJnA1XF51BK3OsWGDADIWniuCZCVgeK5NOiaTI1HAQXXjptJf
AjHQ+42vHzz2LWobntH22zbPfp3AhZUxAlMlKoh6dqQGLkIdFmlyi2CDJXSyBEeO0qaWKc7Yj61x
iResMqsFcVmGLPzXG1zVrFfHst9jwXmMJD9Xre96k33Hw6A07b7pwEKrD4AwYE+dUHAztTP0XNkB
LxAS+etXrqMe1pAHw3Thz6uxJzcOubfKaFSlKFTte1USQ72DQb3zUIS5eJq+BvNB+PAiqlLoqnXk
L+gzRO75qFExMQra2iJNNV1jkQf01yploErqr49ZoO6NDKMt/f7gldWBwa1s9JpAZ74i3aEJf65P
UeY9S0SRJySzBeXOU1yfsGeGudfODF/60U038hN2foDSogZQM8HLxFClf9RnaM/QQMbYMQUBYZXy
1laR0CumtQPGhBDdKjksMiKVmbHKbS0VUX6KyPCRd8ITzOKrlJhq/E7qVH3p74X9baJxU9S9Cx3U
Crw27foKCjMgfR0cD945A8zbyFulD8lOO1srpYLG+kVGeoIM4JpoQMeNii1aRvXAumlAI7aoHo+7
QqIY2ASlZ+yVKWYkXo+bRkchmEGxS3zZSPcjzvElydxhNaOiRNRgDSzf+pwL9Hkh00eh8qnhx/rG
geP3I0wOWxv7SThhYMkq8V1kpiA+2Bia2chEHza9YYYdWtJq1zmP9xou+4wPEnyH0eRTbowmEtJn
Xnd2nC1CPnxWDhiJUU6MKRLVYy7Qj8S0J/j7HPydiU70/sK4J+hogfUmptGqzhAXvNjiZbAdCB3t
Bn3y6iDTqMyXE6+DR6Fe9NhwGTzw/KVuC4BljdZcN7KzylFRWSvaSQ3j4K9coMWZzmQGJNOHjAuW
0094p7kgSR2I3S3b+IYEFK50XuYXtp1Y5IU+kuPmBeck8ohRKIxCITOSawe1L9EmrYA/gqEyqyUA
DQvQ7yCeRDsYvlgrJXybQPknVoY1pAvJhyrZWxrx7x4BFV5ZNQ7mtKDvl/gyOSaiInElbDmaEMvV
5YWa3VycUMbZSW74JmssF6RVCp1efXVixiujWpmrStXZoLZoR2dwoqx80HFlLjrUVuMg3hOPJ26m
Mq2J6ARMPLOTTbDTGch+QvROjFwEAcd6ptY7g1pjSDCNRQKciOLeBiBsEeEoGE/hhVKxyBbylRRm
tkHrHtoD0rAqRffw++wvYcIjyaswfmQUjhh6cMx7fIV5Q57eih5Xdj7vFI1xsrDfqLFmSbkiTpBQ
ZTnEBWOFJDYLy2jMaWOZNCZ3+1yMCNiKlZcUz8AoGtpBJZWEp7vA10M4r1gKw1IE4gpPKTDH2Pld
0nLZVneH23ZYQ3jYetRO3yBeMtJh9660vyMNVEDfFDWyvUDvonii1Yejo20GMYCxuDqj0mPcYMJe
XLj2rKwubtZ7wn3FcoiHWLWA1iLWfoPe6ClqYoPtXUbQKaAsWciO0qTxSfJdwVdUjzkIz3LGQ/Ie
heiHTEfSEdgF7P2qVT2kDO/oH8K8kBAWxBiL1+0Dls0Rcdu90qPzx4x0QA4a4vYR7MdjphsbTpSV
RHspEn0hFJn5MHyfoUabU0hdMLrYxHS0K824487hOmfnGEtR7SabFZ7NS1grKdIdOFIOZyKm22PQ
pD+rwtfSvkJrcce/5m5c0Uy4DaGlMUWUnurh8a29ZpbquaiY7np/eK9AiUGSRhnsCnl+6CfGWLjU
9fae3x5ixoHMPXNNXM+L6YAUMSJRTzDvESsESeXWHUT3zFIP2wOGWYTXpIc3kgX51c7e07CNeQdu
fomHF5fNYL0t/I5RQ7zh23h0McG9ZDUyDxdyqWXYm3lWv42zqVNaCmJppjRpnHYolXvyYsuOMtQs
Sta22BFM1dzXvQE21HE3LUQjdDJ8ZdbBjOvUCBcOx40SnmfmGchcJrFDQJRmH7bO48ll+V+iyxwp
eRpaX8zfAe95ZVuaEchn5XWaa0wdi7REYtAnkCg2ZG947dXfNEjlj0qHuntr7N4au7fG7q2xe2vs
3hq7t8burbF7a+zeGru3xu6tsXtr7N4au7fG7q3xu701/p4xKr8lo8fuE7L7hOw+IbtPyO4TsvuE
7D4hu0/I7hOy+4TsPiG7T8juE7L7hOw+IbtPyB/jE/I2Z+5YVz6jYTGoYSsjSc4sB4NO+s0Zc+rs
FHUNJZbdauVmzs91gzu86X7COaJ+Zg5m2sGq2YyWVlAbFHVGlm5vzGWUljrxC3BC8J05DhIHI+9B
9NvyezLDnsgp6GjLImcyTiR+S/EBWrwAdwStzdH0EyTDwux8gCK25Ke0OtIQriNDZtt2LMtV420u
mCugpTb01gb7P71HA+LWhTtoSWKALPcevuIclSwmMJGwyMLS/IyXxTvOiLYx7FGDGHaMHwJ5eUo0
euAtyLwLs5iw/Sxh7ogecbDdzPinGFTGMqYvxURgoiwxIJBXZqzC5u9eTd8iTNDLjJBS6GVGSLnQ
mkz3gtgzuVyRBNCYhy2RbaMRJZqFLlvi6+QgnVg9QZ05ksJFZ+I9LCzP7/yJxvgVPzN69qZK14GI
EISDn1jBmD/lHPMjCMzXXOCblcGotDS4FJICMnPbiKkwltGbGINYQFKhWqS7BSSda1Sgi7x0G0sq
EE9QIwnJnrJ9xR1MVkVwbzEO0GKFDBqva9EZ+lAjbTQC2czNIVBV+tnoDKAtBrK2fb0xBI2mbhm1
jDHc5L1xB6UgMwb+6F5naBv1uhPpIRO5u4JLV/IEt9B7GYvGPRZGGjJs1FU8fcSt6CqoFAgAlK6d
cwAb33IB75HQZoI4EGc9Vj1tbQl3s/hAlJJGQmARnR7xFgatRx5cRty7IglJF1sXGvpY29i5t4Au
ALm/w6ahYe/quK0X8ZDtmvY34BXi7t5u+oe4DuiTXaa+TtXYKGzfgZW8W3SNfpfZvn/MXqjbOvu5
BfIufaOr+OwitaN/iawENBS5IisuLGarEzTTRYtd8kPH4hVl0ms4PvjDLN/Odo+T2RwVvU83uBCS
sEcMJN+ScBfk1aUL9HtI+RhPIp3gQn62BRjMK3HmmSXMQGH896e0t/cHvtHkpFrei9ONd0ETSgu7
jL/AyAH2SGwq3aVLHOviSQcPg1aCMtUvXeJ719bcJeF3ifZOD9klxQs5WmdGM31yU+wO5xH0y6UN
DJTmtV7kjbGL2vuvDBG+LxajBrhqfwW0CbyFoypUO6Ki2PUv9jQgu/WgccDkzuSKndHgLBV0zA2d
PIFBTWb9HQmxw34PkVzXReApBF7gIh29JeAea6OkCl5vxosoxQdDeopU8GzyndrdkA4LKezJp+dc
8OoGOcEdoAdoegRlz1vnF8oyuxGxLJb4IIM64+4Slo5OucuQTirsbqZzC6Npc2kJNBXJOdPwOWbN
VhkMjz2AEl6/xOtjoYeLDGBKhywin3RC0i90zkJoB7NcYhwwgnSUkvA6PNCeM0N9ZjfvWz7fc3yC
7qXgs/FL3GOfDuey/4ZZslkLeSAGyAuzI+Aft4FfbEt8wsfsuP4dTzCdKRRfZijSMc9o3TkuIS8U
c21sEpd4nVNmsryCuhPTkFhOkW56ZvSNa54fYQ7GYbCHbYAeR5Msrl6e8g6+bFe5RRuHHS3mz/zN
S1gEYzoCkvL+bvvLLd4Xn45VCSxm+8v0CXdABpmZlfzfQwiZ2C4H9tHB1NgtkbuC+vKSNzCQGe81
vrpxqsLQBmHngK5Y6WZSTuXL9hIMGEF32PhHYXqsYZxucg4BZ2a/REtAFU13MUZ9s/hql+4ZgXCK
SidsrpqCvnV9+dNDZXZ4ZIdHdnhkh0d2eGSHR3Z4ZIdHdnhkh0d2eGSHR3Z4ZIdHdnhkh0feLnjk
rXU0WYvpdpSM4Wu1O6QFRJUAJOx4HGOK++UswWN21gFcWK8OKu5ec2SFYF4qJO8oqK182/dcYF4q
kbdWmBeFGKiq5orFwD/C6TDFBMJ1CoHKiEwWeXqOdnhm3+OcpVPZ+BOkU6MTBdexxtBY7PhKL3uH
Gy0nfsx5UC67z8KYIirAFucfiEHHbWuBchssPBjWln0DH+c5+jvAoHSP49n6FrTc4i3xARqFqI4U
NDFJVNL9iHOpj07hEIEMfavGG4u2hTBBEx1ekFBLO4ph1EPub9TwpWxmzEZsBrF+LTwMf6GUhmiJ
qNMRUTq+4VHH7/I1g16RmT0bn/PoSe8kd4tFmCOS19mvmtPG/DqwUYQj1ug6tOWd//iZXr/txaGN
hSpXgI307Xb4WH/eY9/BLz/qXGqXaCr22Fya8OTl0g7v0qpJ59/qjwJVD1V/PtKfd/RHuMThQ7At
n5sHfqCzT/TnU9p90PmX+nNdf27oj0CV4a7OvtB7PtTZTfpLMFh3Q6XlnW/p7CsP3aVykDlwV+7o
zy0qalt2YbWaoUxmSeuDxQcj5VC1qbfDbf2RQqqau1eLhRm5rz+P9EdBACrT27NHxT29pz/f6I88
VS/f6cx/nujPY/15ithqQvweVCRCg83QPiWMwC1+pj8/6s8PUJWvPgeru+j8BTJqMCrvC+QlmVnG
FUSqmrNqVqI06ByBdCa3n/Tnpe42TUrdOn3t8Z48dT/rz2v9kcY13AaXNWZ1l3U28LQ3DBOrmeF6
oXHgiZWyN0IoFrDydc6FBOUv6ELcSEn3zKtNnCPqdogpx885l56oOsydmtdmAesbQlaf+GXkIFK+
eIV9yQVKL7PEre+tBwCpBc5kNPGwhdoUJkksar0U9zixQpxbOjMZWdlqFOOepauvF2gJAY0fcc6q
Eql2x9afP4fCaPlC/8MvvjKzCyPigNnF7WpRZjK95pyNAhznJhdY1CQvKQQvxHfjndF7CMcGjGye
wyZ29ucapXDXgxMHtD5UkkoTEv1JdD7RCMKOt0QTQWItvgXtWPI5/sTeGt+GYlN8ktdVml7i2654
+DMbRDyM/auB18/44xfiSjPhv9ZyZoVEjD8iKROIl/lcDpCTHS3GzgpRDTbnZdVwLm9Iqu3NF1JO
ObaAzGhmYM4UYbaoObFNWJvZmKLFqf4GkpeZsBxPxbcYYWMiZVtwAWIYZD3eRrzg4ULPC90rkRaC
iNpC96JXHvzTB5yLQubrcIV4WTwBxRQwhxjhAg8oKNUuDvvGeBbWQUHBt9no/CHjy9gVhoOULNqQ
JiScAk2R9g8coG3NrnDXyvAYgu13OWfuK9RAWOJTzqUC59ucMxSVVVSxCVBKfKvLXZDzEpB9izqw
iHcNkohV7agoqtKvv9DZIAn0DulQDts5mVLW6wL1FTTfM/21jQNLSc/3uEAw1YXAupjzxuB1P/OQ
C+Tqi1rHsXs0QkIXt+MBQ4OBpzPgzQvpG/15rD8qnZ6fcBNRcjVCXS+gpRbDHnMrJNpYYg2qC8YX
Co+nY2G2IyJ+YegJh/N89/wto3FiB4PcOs8EA0AcQvomorodtv53DP/sDbSlQxgOGszf8VZe3yGm
wrTG8gmxoMcHLQRo6zmiIlx8ToCte3PU4B1Fk0ct4KOo6yjB6GgQ47nO3tOfd9VWbedHcZbj+/oj
gfyoHf0oSfb4Mcv3T3YI2WGMHcbYYYwdxthhjB3G2GGMHcbYYYwdxthhjB3G2GGMHcbYYYwdxvjd
MMbbnCGkWbU6hjri+AIkX28DRzLsejNxHqDFwkg7alubfsDNUYvreN3+Qt7mBmf3lfBXycaD8/kT
ixzeK09vpGsW0Rwl4R1veLJpnQTk41fktnPciRbI8SaSMbl/cbYKR3Zv5Y38Uu14yy2YSCNJ4nyA
j8uHPIFvq7PJqBhG02bWjhvnMS8+wv+Od0RTz2geKIXX0FEM6XgPJcSdvStW4c6JPxylWx0f6I9U
rKP8aMmdRZGPcMi0AngUNzqKAxzdfFP6d5oAaSfHn3H283T8oD9eKi+ZTi8rP/QC9MCfk6x8tAR0
B3lcfPn4q/78oj+vYACkFoqqAhaHncv/xBZ+3BLOLszpRA7dmXu8lRLk0CK+4PSC84GDA2+pHDQu
HTmYORg5mDiIT2YOCge8cI4XJh8sfHSmDwseb4WGLTR9oTMLEWqNpFCR+azQwoUWWq84xkBaeVgP
aCGLGzH+aOVgPaDxC42P4U40PgUi50l7xoXwHrUH4xdcsIfeD5wbBXU1C8OW97hKFxKdsgum0tA1
spY1ki43wND1wJKGMnDlH/Xnuf6QXasxNokhUVda2iYWLrPxEOcVbB9x7nH4iRRw9rT12vqZ25jH
zMyS8xZX5EOgu19xxwU9Iz4OzlVgWJVhyvQmMxqRnzJgXQO9py1IK4gyR2JAAmOCqljaiP3HLTMb
NbNIw0rxkEaBjvXgCOcg0iZDQyUOGJ1YANHlQgdL1CIjJq6R2G+2ds1gl2gEfShw+pkc2dsnDTY/
55y5L4xNibYwEoWRqHCJSlcq740dIZJW2nlUgQbrao87Ljgk09kK0Ve6UlmclfZV2lfpZYWQa7SP
FkexgfhE8JHGPYznd6hSxNAZ0T4hhrWo64OCGyPT8HHNtLfRyygOEfy+Mttg6YLEhp+4bsFZDRpN
dU7XRsGlKT5kzfUVBOzz1ySsdRGi+zQDaTwxieCIb7wzhG5GvRFL16NfTn+H3GK4/hyC+ifED+rC
/CM3MmidGJtCer+Y9g45dcYKUPw7zmlZBz0J1tmhkB6/0LEOQhaUFv0xFnfSwyeE7nHbEm29mBmV
k+juFH7jftSyiRS5k1bRSZ0+vcMg8H2NVlPobju9y1QA3CWClRuxVl5zJ6UcVR26WUrvnAmKMII0
aRc6fao/8miX9NVOkvZOkuoda2S4WyF6TXDDcn6PHpJy+UKYR6xh77Qnyd4ngb2KpVtVwNEJTcl1
Ktz1BNwa2Xk7BThcaSoHMov4ohz7qyXHwy35WW7sTXa55azd0iizV/Bpq4RXSYhZqUnmEAgF6M1E
r6/POGoBY6Tl68tdrkelEBuI7vuCReJTVMeAyrnA1nCCxE7UVyxQmnNCZ3fnLqMk6jndgw+xZVL4
Q/R+clOk0Z9ewoC1LJTLt5Em24u+KS5spXKTrIRnKTLriDm2SAvx5JCRB6iGJ7Qlj5+ZmGRQV0fc
IKHvQRJJIW1Z5iRRXRXOmpMYY9drio6ak2+iUEMwbousp58IkTTl/AwGTlBE7I+RAZtbf2FmIk++
h/SV58688iTZ/qRMnXAAlm/B6kiVhR+57rG1KD4vH3GOvGuhlha0jUiAbk6I7ydMkhNyyAlh/UTC
Wsw4C5GhjYovjdJ/7RSdJFZoAowlSumKW0XEb4mvR2fsP/Az+zp9WA40wirJO5zTzAWhBtLdqug5
LGrZlkswxxyW0vgS7U0ssgWEzxoNBrRGTc9GvPTap/anZ+zY4Yodrtjhih2u2OGKHa7Y4Yodrtjh
ih2u2OGKHa7Y4Yodrtjhih2u+M/hirc5g8ba0uiEa9q9zzlOLBSyeYXrI4xsiTiAGKwY/Rh0nPc7
JGF15fIRUsMZhk8USqVJKcYeJSmoZ4mpC10X1zw3nBppVzcH2aQ4iE/QUCsvFNtq4ZJ/2tZAYp4j
CVkhDVKlYdHCDL1knsooGwvOoy7o29hOEoSf+WSGojKLNVVIPfpAmaNCXqgLKV869bmDekPnSKT4
qZ1LODDHQszhn+rV9JoLfDszSJmBtMdl5McckM9JYrQeRK80kPOXXOC9hekoTAebzLY0C5909p03
ZqEwfoVhC05aSQ+7fYvuFoa/MCSVhlYoMIiqEsxj5n8BezptBFxpswOpwosyAjxO6CHkMl0PaE+N
NkdP4+uMT6XNNWiSezbNBDDLYkB5lzuOuM5DDHPUkOO9jTSBaOhEiR1d71wiV6esdY4H6WFjFCKZ
8RJhbAw0UuvGS1p0g67G+DbGBbk5RA3ipg4bhTY+0SGFKNlnIfF4kwsBJfDJ2Np6BBkQ+GLHfRVa
b6fN9TDoEwUAj/7TxgQ7Vd5i6zUEUL5nc7HsITF+2LQHvB+/4UG1dSA0rcFlnJTxQsyDxd0hI/b7
RY9oSuxrC33VFAx2aFeexPEO7JXsoTNsx2Q64I1bYf4mdpetdezPgBLgFUl936ZYsVnZNFePWO8z
6rGysrXhfdigiGGwo7fgMwXDteEzJDm3TBrK8CXPWut4TGIvwhzN1obPGRI/LzdLl4MeAPgGRX0N
KuyY3qEGNDn+vO0MorNBqsogPXfQ8ilUbDefHyiBaFloeECT/UmPIeKNA3EiFeock6G9xdFcg2Rz
VZRfkayIgjjzvsKHTFcS+RWauqCdrDdG3d9M+MHMJQKTKjtKRApG5cMI1zR6S07u9cvu8jdsYm6J
tMxBuP3wBNXFtCX1YXjMjkUN9BJRjwsj4/dR3NjK/PAtTvCRBdpUILVAcEozQCvcpA3PYYosK0bh
pf5IQB8E1Q8KJFV602W04CubwvCCcTj4wBrBgHA/ECo1ILoPr30+gn3GPuV9c0CmH371DJzN/awC
xTKys7axhi/5EHRhFWhAwh6Cn8DDhlecnzhIHDAHls3K+1yAZOboGZ0OuiCvfZB6rAFQfXL6ddIM
NmLkGuLgwjpAD4oYp7CSBOSAKNoQKhs7wkyi1batfcD9YUMYFmYwxcGRA1qcGL1EQ+ESiJkDgueA
uDognA6IqwNS6rDl9XR8QxFlSmddRWeScBonPz9lbdJHWyDKG7/QtUwWxTnaxvRkemT5YHrOOWmN
Wb+xnyDehkIHYruOHSNFlJBCGI+o4iNDmuOtjAlMG4B9QBYZgOUXMJcY4sLrCt8tyDsg+B9wgdZj
/kXNJZtuIyxoPSCjdsg8hUENNhmcKaxxgGxKCzwLiatPuR8ttTLk2ztJT+wM+wG2D1FK/FtYfrSV
OypjUBmD+IBDfKg0sIoXfLKSc/fCIMcewnaPSDtgVT5sk1XjAPE5iKKGKTJayFxXto+gqRaNj5tR
DYN6LeYe4pzuOSB/vsk5PWgMUqNRkeY9ISQ6GnzeALtYrw0rtdnxBSmOHWULXUIkZ8OKUhdnC76r
/ODBv8vD0LcLZlQZyer3AG3kKqbRv7Lz8aDzuwofXM6/EMfPpHQGojO8HX7VGEUncx+JsDOtzLGf
InoPwIsxZnCA1fShT54bUitEPgMHZGJxy/in5+bYAZIdINkBkh0g2QGSHSDZAZIdINkBkh0g2QGS
HSDZAZIdINkBkh0gedsAkrc568cyP0B1gjY7Bb48txnW2GEBHXroMfKu/RnjQfYjM9yzBvccD1rV
fwk6I8o9a6bPVlLkRzbr+2cJoPb5s7MidRObchSurmlq5NnffR+ncLxQnY/syGq1tnqWMHyWqHwW
91TOpqYEbXOVm9pZQsb5M5pOnih7U13k/HmWM6b0zOYcbqOEwbOE6LMy3Dkm6CzPeCdrPMOg0Ija
+WvGNi4UDsBzjN6cJf2eb/u6d58zcTQOeDi7NVqgZ0XgnKUZni3G3iWMSUwiilJV1CjXr3JdxSgp
LC+85pxFZ7sVekwkOmorb2eJwGeJq+dnrJ/skChLEecf0E+0pM8/Irl6KT43XzP/PL9ApEYGMss+
2tPzF1xQLWFI9zrLzbBKAD4jhlh+OiNZBu8xeHWmwGFhG3eOOOcVOv+K3O/eSAQ+v/JrJ6bS0vMZ
AZgitY1azyvzjUtHDk4cRNGoqI81ccnLmkRbC++1jHxGRj6TGXGGj+LV2nCbX8keR2VLEWeghfQu
GlY8TJ9cPU8zvii154pCOkOeJUAc/3KsTTTcZduAXL1uQfKKiJyJTFpEFSyXe9xBWbtKkxeGfeFL
8Trv4mcqV1Nxd40YoCbzEvEWHtQfeObMwcABA7jEt3HZDFy1sLCX8FsmJGZhyhfG0hB1eeHzRMMT
XUlUH0t8W0LvutXSubjEKkPCB2ltAcKet+y8W57ZeJxeJXoeIp3Hr1BHE2ZEDrn6nBtxAY/RyzTK
WZuXzaM7MXNRUy4GdrsU72HQMvfkmBeIP8f4EYET08Eehqh+3kg78y0yQ2JemLYlk1lWsW4LO+xC
TAbuqw+gfFpcKCYcMZaVeSmsdYupA9SH7zoY5Jn0iotvXcUeI4Pv8ky0FqB+iWYzRJVeF8YqwPKY
qWA3pL18h/OENMewZg4KzSzg/sExorM1SpvzVIvW8Etg23P8Aizk0pYTzvGJyvULDGUm6GHhk43O
GfedN0KI6alB5dFQxqYyopbsJVOsb2GsagxslM+NS1Ca99keeR0/Zt+NuDfJH5eHNBsabzEK9HGZ
GI4I2KUJ7Kob9wzW1VhGjQLvU8yBif0nzu2pfZNzqCFq3QZ3aiyGFk1YjIYYFhrf9Y5+ZqY7Y8su
Cije3iDJMCgALQf/6rQmet2ZNZeoXb7kPAYxMpIzHC6xPSPDEja6fjLap7m/gH9DKA1YYSaN/0xN
9hZRKzmIVmMVRTpjD+nBNoIOmSObdebvTbvRNmNNmT3vIjDrIpHsooCe0AnNFi+Sii+iezMLQfPN
cu7lAzZilotJyWHmF0nU9upXRsV2sfRu9M5Ba59gK6DCrSugU5h3bbyfl8h8URrXWRLk5QvCpzV5
F02mqrk3lSluBDW1y9eMkCZNWSIXmFCTpXemVO/6oAcupOizL3hHu3i6FL7jSPYL0PPlNucuIiA0
3qrURRL75R5dIHDMW85FwrkX+eUbuLizDUsIuDy2QTEEqAXrTqaQr5fQRZHzl2/Z0T2uJE8PPD6T
Rtp5ES4SjJ0SU4nYV5DTYyOyk6LRLsKcL9qXLhJ5L0KYL4KWL265GMjlZ6Aikx9SswP/i0J9kl9v
YXmtY+vmIxFfEKgv1HkIYeKCZH2JUqvfsEa5I8KBjAlcAHoviMYLRrxN/3uP84kD6MPK7QVk+QIU
fGGjuyAtRA7rk8cHs+XIthEb1GWjTGYPmR6lZr1Eulcb2GaWwRKv48sW7w50ZKFtS7x+5IAepRBP
0p+eAWSHLnboYocuduhihy526GKHLnboYocuduhihy526GKHLnboYocudujit0MXb3U2kEuwvVjv
yNQX3AQj0OKCYI8mtD7llXSLcyY3MQkpPsAoJVKDzvwSH4jJTIx+ojWZObS0ccG36MLmeUGgDTdt
vPgbTurrAZ+w8JzEczOLJ8dbYa4xMjnaGx9kwjO9zBBFpuGFhjsz3+UVF2hk4QOF1hZaG+kBY6Wx
LVKQrDtJ2gvXlEw0qbgEoRxsEwRun9+FhEg17neQ0EvO0ZNCDLtEGwimiZVbaXCk4ZqZphq9I5VR
jfcwRt70y5eoqNxR4wOUGY6JjIYHfyrxSainIjm3+BLDt30ivLVoaEUfzPHCcNunKGJn8ir3NKqU
xu6SmHl7203XOWeeGxkOt19I8ZcjgS7NCtbaKJXHfmDpdKXVcNWkn41hcvU7iucth42BtXgP0v72
UQauRZ1gC5Dvc6HhaMytbN7gJJfYXpEsLzjPXZA+LwivF8TQyzbGjTHudMaS5OwVuGq+8VTAJNEe
sYVRzRoRnJUWsbn+KK7nEvzkwteEvbSR+AXHXUxC8SyJXyJzq6QRb3nj+/gq2m1P4On4AYggtGk5
aRRUmCQdjMLdxk+QfDRMo4pZH/wlN1ZS6vg5GrpbLYx1FNWNEvtGedAmCR+jhMBRzGEkfbXTKrre
8HjL42YRccQjsUCkEcYzgrkWJ0r7yT+PVJs0fDLehmClYZRPeT4q3FmGk7isEJsmf8+ZOt1zQWQY
HT/wARg98RYLMLQjmZwZerzP9x2G9hDFl+rp5iqjR1pi6/iY1YmSY+4+fsNjRAp5NYzkxjMMuEhC
HCUhll+4Soigo0FmgcCj/0gePbqQpaTRWWORvubLiS5pkYySZUfTkyf8e5id870RJGOByPYBJdtb
DjHBEu4n09DP5PbED9WbnVPBjr9w3QSjLWX8iQZqqbo4KdUTlyGiNT9Gegr27a3jLm8gvsr7+ygh
erRg/C3NIgzUEM2ogN0DiU2NCM23TXwTBB7xW95tRssq66dnfolL8dSZg8hFCcsxNPCGY/sZFd3C
aWQJHS2Jr9/i8Rm4w2nmCmGix6hvLmVxeQWUGQsumskStTd1+HaPsYgAzDHarAfsjltbLCdQ7bbG
B4yt/+LzhZdZLB6BdC/XOScKszI8C02yTE18zHowcUBHAipOzECEHFlIHJFmRwBIVJVGQfi5/Mo5
jUjMiNF0l/kcoCfqwq93ENDWGDCSdSP4jmTtbVj/KsjeGEsV0Ld/xnl8gNYmeh0T4UydyuLaxjc+
GB0hEjwxrLZ/jOaqSNUjIvgYK2pLs12pZV0Z5oyQ4j1s3r6d6VEeYYS0JtOnzORkOpfpU6aXhNA9
4Dw+wIRm3ktdgw+96BoJYO0vX4n2rdqULqQMrVGslZcXQlMqubeDugvjEiHlC8EqjbErdJ5iwR9x
TgBDmAji243Quks0wqrtQ1RqBselged3SO6vNT7fh5NEOxYgOEYaI987ABmenWc8QbTMhY1oIZ15
JTx+jjTU0ME2bsiNM1G85k/Dj6yG4GkxbdE2zw58o3BHpT+VsTc8TxL9Rmb2NaoIEq9wjspsVPDd
bTggsyDpikqz4Y8QGhj7j5wjogSPqry3ASvOQJHOnZ0/5g6ylFKx+zUXorZwFNFF5YnxbvQoOtsg
zxb30LVG6xqrrLEAG6FjwVMjSDwGrWF2rHEPs90so7xLV7TgVLz26nqHqXRa15kuY5jTrzAmPtdp
bT//+Tk/dhhkh0F2GGSHQXYYZIdBdhhkh0F2GGSHQXYYZIdBdhhkh0F2GGSHQf4uMMhb7TgyooPg
jdam6DbrFH1jk4o77qW+xPbf7Hs0xaMaYwsidlqaxOGnmCON1STxfJK6MYkGJ2kRXT55k3SOSXxo
EhFO2mQmidyT/PFc7Wz6HHFZFGaJz5rrJDe7SVrDpAphk9LTHZSST0jQ6hRPTy9xUDnQApfsuZ67
m7h1NdwXJ+UXzII4yuesqUim5wfvItA0eKk/pY17Qgb33jZpU5nsZig8ZpIEnyTCTgj6BiAmyf8u
QjUpYGX6Du1ddD5J4p4ktKv4cZucxdGjLYY7OVXcK6JnvP17EiR9myjsTCtX5eaVw1g1SVurWu4u
/+yxhITEXyZ9afiMqww5BEg0SUVRKVxwvMmEfEo2rOXwiPPIDMVUWxImR9jVTmlnsgUpa9qyyC3x
Ae+sZsUK1TpDJTNe7FGT1DhNjQzATun1HhnmnGkKdWWKXIQgWjXauXAQXUhICRBVj5vZEYn3+JwL
xhB+5JwSmoUuRu8XBnOhuHXBdXzbXwgnscI0hcD8knOavXBHpKQKFSnmb2Hc7Kg8POcCHWPANifJ
UIRKZF6K19HeFH7PJy5dcG13XqzEBXI/OjFdl8Pu4THXIcsF8LFBhovzD39MR6meWKkNaGFUZeVW
19YYE0kN4l5zFEMDQlznuPMVDhLdTExUitgG1zaNJsYd8cHJVYGdrJpiuY1Ag9U92pLgt/AypzN7
BZO78ISTcX8AVVC0s8YdDG+ivtwclxzWqLV0fI8mAxMWCMiKAR70jRy/jSqo6z1RrO6MmMyMz9C1
FeYpeC2prrVpLEPUlf2I60QOWtCYwNknNAbclRdS36490ChUscP5a27EV951j8sXXKCjmYA1q9LJ
zPYrvO2tM73gfggwk5PUWstkGbeTuGwZmIfC0BW08Bq/WKz+kk47GIS65ZHhEgwOVTxKfVMF+OpS
cPHCfBeGztxkisKCN7jAQNg+UF/BRM3F4beFwIQ53gkRF5ZxA4azSHigdjMBULNLU09oGB1YdgKU
If/resDqC7qqZKrsDHplFIJ3V6rykt6Qp9q2rhGZCNBhOc/9PkocwExhFis+8o2G1oUJd4L5kPLj
GVByWOkT7mCqatxK9EwNwoKeTDbCzVZOBrQXwViZIatxEF1lfBvxcyUOQqW3SgOeVhjvBiG1+IVh
9igokmQ9J7rKGQ6LB2x9He0Vpa4HjH+jB455G1igjQkOwbFBqY0BKvCDFiMV96DjFd7juJxl2962
vI3xibCkxCecRvE159Fe1yL/BqIw/TxgV1Cfk9IoHj+kFTGOEAC5Elkqp43fdWi7U/TTlrbjB1xg
BGJz62RLrY6S+ZhzEMvKJFTeWiGIiCaLwMNYgj3ELcfaOn76AYyKGqNG4dIDHmTyK/DLBFOO8Dvb
3Fp0K/Zw+Ig3lAj2CoW6MiGV2tGdVWnI3tLGHB8jvyQZOMFLrK2HyGfLUQUdmdFUaIzruMYQZSxf
iIi2sSnh8xJJ/+cP3BR/UcWIm4CcJj16LiKZmSzM5O5l250jRzqotqW/mWrh3rqOIFPUUFg/7EA8
mXJm7b3zx9ym3Wl2C6SqKOVsh9Kb91gFjCxOnz5LoZglAbt2g3Kork8ObKrugj8vbXL+gtvOnmuG
+7bPreOQVrXNUVH6DXx75pKmUWhYm2Ft5mizVMGZYC2vH2W7aLPiqOZHPMTaaeTu9bYzf4N+7M9K
TJglwNpqM0sPnKUlOhptfvbnu3fsYMUOVuxgxQ5W7GDFDlbsYMUOVuxgxQ5W7GDFDlbsYMUOVuxg
xQ5W/CdgxdtcXqXN0lZnqS6zFAynBZ2lgc7yJpp/hm1NbJ0eYtdAM3FR0NZ7y/xaI/k+QjiJZSoM
LBIPVujBOuyMoDOjrs54f85WVdannMjvJVwHd7DM6+yKOaPJzmiuy/YlCzszIvSMLjvj/z+jGs6I
XTMOkDPC2oweOW+MDO6xFcBL3LxA5wsNc96ZGfXwsr15oT3Wsirww4wWOKObycV6OT5BHSPpTsHX
f4HLR+sWGr4E+6YHlJdDPomgmhmf0BkFakbTnbf8NU7UdfiFPSeyhjKwUYg4ZsG+7PZYjR6ctjpi
hcLEKfqEJJfw7CVT52vkKYRAkKR3kGfJY8auwzsSXvAWp9NPXI+WRicivgiXztipQiJzZSkXVZ7e
GIHQx5juFCw8fomDGBXmLDENERDW4h4mJqNYRF7VzO67kAHQ/p4T0Qtub7+JpBexIhBAxtcuKDeW
nUvjtXc4j4i0TGFhFJqFcbCr6xt4hp3nlvfxcEfGz1E71tr8bbrO6MZaRE9DANhCXhglAnm+5Rxa
itHP0UQIvEArOYaYaWBjhVyPrKElxGmEctx7118YOcvI2vlXEhBLa59yPbapaAutK3CkghjUaF0s
/kKvCwMU0m4IoB2S7dQwLgTxdRoe2ayDHRRSdfYYAH1d8Ooybt+ujEPlVmqL/sy5qeNXzr3AmJHK
uNV4J523CJo2qoyVVumzVTZGs0UdN/JorguXncOyV7a8sF1otL7hqblQ/TmaFXw6BB52TjxLKS7X
5jd2QzrTmDfHiJzpgePIFkCOeZtrR3ksBHDlSN1IfUFnn6vw6cqO2gH/DtvuGNNpdMIAfdpUqxqI
B4BhsGNq8b3mHYwChPQETu418ozrjJJpUNnuFjDa9QLD1xm+jr8242jx442+MMABYuQgevCtBu50
gZ+Gothh8zG9PQ7iEyJRtr7mvXUJCEqtNerpPdQbpzdS1dRsi5inoe3IqjkELisdIkscF5Nsywfm
r05k2sm/aHyEUZrhjCv7tqf8JyhXbtuHpEJ1Iz/yeDg/4HLHz1tkX4g3Mt9cZGVydvJF6sIi3d8Z
QRe3/ToDHAtAVL0IwVpkfFqEKy1SSpZbHugLI25tALC3qYHruTtw2+c0+C5F3LFBmdYXKQ7LfVZH
MERN9/KABImWN4WPLOIQi/SF0yt2MfflERYEVDaHCi+/AC+wYhtp/s3Clu+4QKptQ+SLlI9Fysei
HWyRYqLXtsVt08JyKm2FLTfp903BdHMXs12kByyyoGRP20/sZZmF46GiCLL3k4VeWz6xY/6CSWJB
nCed5nrQOGAC59hv4pcjB2cmLX4ZOLhwMHIwczBxsHAQb06AobRnjgNko6CsmaZGAsiFZix0cPvl
xAEppbd+aYcuwSUQ8RfCvBYk+yVYBpJ7pM5eMK5A8EjyCzjBgpS+bN1b4mbekmhEoumJpicGN9G+
RPsS7Uu0LzHcia9bXF2CHLAcyQq0nlcbGLqDfb7wmJ/Zm3K0LtrbSN5J66BGTBDL9lRGZJnjEiRk
WVzT3KFgKicX2u7KqkiGvTCSGU0q+psZkxy/xFvi9fF4pWWGxj4Ei3KyaMF6hRnMTJzB3cJ5ZmBK
xNHFLwxDYagKE1mYSOcyaO+xfTJQMQKFGS70r5DxPBZvtCbaW5CysttLoyp0UmlLpS2ViazTn160
ZQdEdkBkB0R2QGQHRHZAZAdEdkBkB0R2QGQHRHZAZAdEdkBkB0R2QOTvDYi81Rk9li2HjGMF7AtD
ucX1gHGsMQkxAowseyuZJSN92eUR5+zXPYaGkW7gIHNMt7fmG9xBE1o87FJkbO7LASmHSWlQSmN2
GrPT6FqLVGfQeYM35biZrrW4x/XbPkUhwN88aKfFAYBJrJYWB5nkjbS4Q57mIW8w0U4fOr3qR/QD
FmSUf8vAFuJoK8OOp5iwTmd6fD2+FS9UU83arLvbW1hSVYO/tRTbDyWarG2KY/aifDnO1igorQu8
aGaIAiqaSqa29A4rU81J/qAguqTgAuWvXZsqAkmf4M7nV0pMS+LSSUJAchskjSXJdUmSXBLFKa9g
c97Y2DgTQlqITPJDa/LWW3lOZN2KJyR1F8m1cjptlPVrrt4l995VHHE/JLkltH2mQD5wSQJaUhxX
chO0btNjHCLdgCegAH7FU9aJCCB9hzgnkk2Ss5wi02mflJZzpSNYvaErEgEuKBVXe7EjUiIfXWyj
8t+fs0Q4gZ3NaJQ05l4+gIpEjEnC3yFcZokhOcIJkqQ96UgtvfLwQjRIZwl5LcHpE6JcQiiDBa4H
AwdnDi4cjBwQOkJKQfKCVr7t8sDHp5zHBdLxnaMJtM6S2ekG2bVChY6HTdpIagkBLaCCxCLEIXv9
hT4ysshlOMA3KmKuB4kDPrqQ+jczIAsDa8ns9IJzSTV2WQWo7LS389YVCcUtN5NxLnOPk/omM9vT
VWOH02G5zP808LTLxErCX6bI8Xvb+l/kZVv6/432UMjvXSop1vjIcB5Op3+KeIF0+FfJJ1eHfrQo
SWQR+eRAlNUfmCyIkZUU2GOLd1jO/0pFDJY1K/KnizvNFFaco3QwtUhnci138axZyV1nI+YkaLs6
sJ7rUt9HCiKqGPfVubPenaQ3nz7Vn8/0R2l1T5JmT9f1RyExotH5pJaeFJbjNK3KtXf18pnGapGt
B+7Qu7RTm1TUNVS61Vme1/NJdbFP4oQnaawnhYme5OF/eqQ/6v9J/Vca1Pn0VH+keZ4U4XkSOzsp
OfhJycBP0h5FxvNJppiT8nyqfvusMoSzw9akGM9HvfooqjvqC0eN5VGDKLPSVQ89Biczmpni0XME
ap1INHgyo1kPGCCXWzyR2/GE0ncya1kPCgeVg8ZB94EpKUKYIkQATX09oD0L7VloT0zYQnsW2mOI
+KgBPmoKjz94pjXBUs6kmUnxkU4mhUzamAQXCUbaPSRfSJiQJKI9UeKIJAgxD61PcR0tUfEsCXTS
bCSbiAtI9JN+I+VGsprUGikr0kykhEhrkcwnbUSqiPQQaRZSNKRcSC2RDiKWJIVC+oVERgnUkq/F
IrThiZNIvZBuIalcULD2BjEQsRptPZLBJZJLyIa3MOOUaJ4DvTl+Kl7yJau0//kR+7sysisjuzKy
KyO7MrIrI7sysisjuzKyKyO7MrIrI1fE8nc3ovw7H/r22fMHd77/5wc/3bv27fP1z7fPr91/8JeP
fPvi9r3bl/FwvHZc5ukvn/hj1Kn/drP+n//v42ffP/iv+//8wYtnPz2/9+DFP68/Prrz/GqIX/yf
Jy9+z2PPH/zw7PnL//Th/86Y/Off/Cso6a8byb8VDd2+os0Hv/5ho/NXNuLvM1x/8+n/R5h4f+L5
33nq32jG279W7l3N74u3jd3+x636Ow7oe+uCfnC/5n/+9sGra/eeff/zg+cvHj/7/tqDX+89+OHl
1dGL9U1/zLj9xo//cZvR72j8f2v/+r96/eKnH/6ILe/PZJO/cQr/08n7b27Rf9Mm/HuT80d++D/i
H79FXP312vrTn8vX/sp2vaVy5F/Ru6t/h9Nh/mPEr983ys/fAobxVkjifyUx/jYO8PvI4u/d6r+B
ePt3HM3/i7j/To3+r0JKZ6eYVi7pOVIuR45O0qjOkUlYeaJnJYSelTx6VmLpWbmoZ6WHnpUeeo5k
zBEUE4hVo6gchTvXMB5X5iO4oRH+SZZUJ0cl3GMLXvwYe2ZcAN92RCLetXP+iXA0il4STEcwGQXd
u+w8yxtRjTOZ+BKp5Oz+uwUiRiLNT0jrd+GOOIi3OMJPIG8WrH6+QSzCkXBOp2iUMe0SrYoOxPsW
xovmeQQLucgpEbhEXWSyOK8ZpQn5pXfXeW/igJC9jHXiQrblOQaCQpOubjiQYnLezKTUkCabY9mi
vEQDi5LWLXOUYyYkxqYFHJUXQhuXObzHv+Cc+NIeaXqD5CJdJHEcS9STpuJ1w8Cd6X5mBjMj7hjr
g0Dv/rXOvuNq4SDeoCHOvxDUdSRIBML1yM5vOKwL/W1C4tt9cjjHy52K+iWRl8KPjze5zqsh68cY
9EiZarByjnLJ1MHFAX4mJ+sS4HghrGKOJLvyuJf9s8s6usZoKR+mzaCEWs7EOc4gpjOWp9V+hPWG
4pq/Mkx8s5Fve4zc4IyH8xGfGXVyxS6HD9US2Q8aafiNri9brfNiVwdmzQ70RGSutOFEwLcgT4c7
R9HwCPlTvIKMvMu8JULGnE18KdGkqyU7eiIyi5kuzGSF9gvzFCHfQT8lDlhjdmBo37DMz7yOFeRM
uYkAvgjiXSCMQj1gZ2+Vobo7bnQmG37EtcqevS6roDEvgS3w3EGPEWKxUGE9SlMT3BoWTgoAO6lA
uUnOd3aMZhuoTFv9uc5e0MqJA4a2MtdO33wkAzrRqgshqcu8lYDfftFMHT6iCwxDjbc4VpUPOvr5
/Eyv+pKfKaoc4WOZWWqenJ85jwsOUvuR/eLkBWCb/CEClSGtgSrl87bL9OCW0XalNU6UsI+BcHbj
xFZKDBxLPHadBTolty3ePm/mfI8lDcGOFA1vNAlD9kv9ec0T8vRIv3LOqzpSR4ktnaXTofXYlTqD
oxFYVzehOUvcrEhueTuspYOp8pzimZAImJbuRL9MbYgK3d5M12Gkfjl2Y8WPr1Gk0TKcXPxdlxgh
gnUhOIotvEZid/a1ojy5sd2JKSyR9cEcd4Dsj9vOaFFq1OwulcZWFqPTBGiEZeFfvE3LVrsoPHZZ
3uNZN9sBsO8zSQ4rkwTkGNYIVXXL5Ae1BoBasvtMfzRoCmRdIipdoazrOLh5Eg4meI05gWJcFwW3
LophXRa3w0P3Ne50UIelrHLLn7iEn0SwOILy28jiujAEUeDEDeNxaosvwwOYrxaGgmgXgmjXRUzM
40JdkwuzM4dQ5y1J/XbyhWXbNhNJQ8gy7a/coQuRvoEs+xGSh6sddGymp1DdRYG5qxwLn3fFIIXe
rqFzJpwH0Kyn7BvHTptZORh3pM2KmV0USLsokHaVgifWZmIMcNiz5K3w2kWBuEtUoF9cN0fRsAq+
XRR8uyj4dh1qt10sz9nHFX67OCa3Uvrb/jHU5V5IX78ozLeH5+cBVUCRuXN3E15BR4TmUwWCaSVE
cHHI7iayxwUzk6tWTFGGYybbdOIe3st2iXfZNlmRwOcjzo9QBiIYsdGodv0ZHm5U2Znx15ytln3P
hQEhl3QElbDyhI+qtSTCiRdihufyNecsqhmdplOoQY4bqzCIb1Kh8zOimIUbQpAXIo+v2rvEKNC+
8PDseJ8t0Syz70es7M7eEHfAXFPIevDhYAN+Sg4tCxHOC7HKy/glr+et9i4pW8ahSkmgmddHIyNh
0RJZb+j1gv63vTnqJXm/Y94W5sQ+KnKfXPcyCHTL8pN/f+jmX/zDjidc0C44VNkPRkG3q+9ExtPK
LlYf+tx78BF2e4ScBwTSAUIbUMYGinEMrKoB7Z5y9jNFkGYqG82kfp/JdDRHogwC7GdSSs1ss+tB
44D2ZNqTaU+mPZn2ZNqTaU+mPZn3FN5TeE/hPYX3FN5TeE/hPYV+FfpV6FehX4V+FfpV6FehX4X2
VNpTaU+lPZX2VNpTaY8l/LPeQuan+awmKMfKLNVzPuvjZ336LI+4s9zezqpXcFZ+s7PcXs+ik7Pc
xc4ip7OQm7Pc8s7yKDtLjjjLLc+IzVlLUYjNfJZb3llueWeJC+dbbrfzqZ0h4jMgyBl3QJUWuzq3
/HsWsHaWWH/WJnMW9nYWvnYW2naWhH7WLqIybrNq+MxoAesBX574slfFmVVxhrufcZg7g+CdcZg7
4zBHGrCZulzrwczBwkHigGbMNGOmGXM0g1leaI/dp84/4zoZPpTmBRIejpIpjlJtj49Y/hcO7Jop
p8bjPX4OF0k4y8z7tb43thFQ6ImDc3iwHq/YnDjUrNKEswoVzq7xpWJTs4s6OWuXSxNSkXAGS5un
TYo7W++xRGPnXWvWvsk6kHW1d/RHbrZy1l87s3CQOJg5gHWWOGAsCmNROSgMR+Ug8x5nqJk291m8
XlGNjoFMQS9TMHLr3/PxDl/iQqHpGY+6zLcbzN05hKbNUXfm8YZPbqNZDa/eGYe88NWbo33xFATS
uDnTq8ygZMY0M4KVGV1ofGVqzb5UTHH20vRIeVmCwxuFFxdTWc9Z1TVnleCcVU9zdpFNldWcVVZz
ViHNWWU1ZxXZnFVPc56+YHWx3hKrNLHwEss1wRES6zbBGhILOMEaUrwQrpFY2wmukflWjl/io/CR
zLdy/BIfhenkOKCpOZoKG8pxQFNzNAwOleOApmZoJTH9CaJJUFiCIBJEk8JvPHw/odQFylggmgUy
6iHTQEZBNDO/zPzS+USnGZ1mmLCOfsYftKO6PcXFeI5iPIaLjtpXjtpXjtpXjtpXjua62l6O2l6O
9sJ+TbdZhaYPlxBUDMZMwc552nyxF9yiE27RiUsJt+iEW3TCLTrhFp1wi064RSfcohNu0Qk37YSb
dsJNO+GmnXDTTrQn055MezLtybQn055MezLtybQn055MezLtybQn055MezLtybSn0J5CewrtKbSn
0J5CewrtKbSn0J5CewrtKbSn0J5CewrtKbSn0p5KeyrtqbSn0p5KeyrtqbSn0p5KeyrtqbSn0p5K
eyrtqbSn0Z5GexrtabSn0Z5GexrtabSn0Z5GexrtabSn0Z5GexrtabSn0x7kCrFplUubjxINjl9a
svWKHSxMW5S2IG0x2kK0RWhtBYO2gkFbwaBvqB7nrDpY86CtYNBWMGgrGLQVqOjurCqxswrezcZw
BrdNbGOQ2DKIewziHsMtN/+C7H9B9r8g+1ugHW773ALtoM19UJDCICHMyT4Ndg2S4wbJcYPkuEFG
wEFxJoP4yyD+MsiYMygKZJBJepDkPIjDqbDsrGChWcXQ5kEcbhCHG8ThBnG4QRxueO3mT/R0oqcT
PZ3QckKtnFFuZpSbGeVmRrmZUW5mlK0ZZWtG2ZpRtmaUrZlmzDRjphlzNANlawk1l/YstGehPQvt
WWgPEUzsW57jo2hFGOIcxYjJ3DpTg3imwvJMPeV52mS9GSnNXVPd69m1raPctqpkz05dqdrWs2pZ
z66RPXlvEbG4pLXqd8+qgj1Pd98aB6Ed39jxjR3f2PGNHd/Y8Y0d39jxjR3f2PGNHd/Y8Y0d39jx
jR3f2PGN34lv/L1jYfbQkj20ZA8t2UNL9tCSPbRkDy3ZQ0v20JI9tGQPLdlDS/bQkj20ZA8t2UNL
/pTQkrcxt8bhX/7SyOh6jBPUEamdS7BUipV2FAYrPpO3hE4a7HW78eJA0ZsZycQAJSdM/gUeYbHr
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
J59RBoG7lyeI1SRbC67Qi9CpRSrw6JREJsnfOp2EZ3wSJzxJWT0pOPQkv/7Tl/pR/U+qv5K7pNM3
+pHSeVJc50ns7KSUZydhXp+kOGoYp5N2YU7CxhPudhJ8XHKwmnTidNSrjxp1R33hqLY8qhG1o3RX
Q7fByYwmAfqbIjzrRPqEkxnNWqCBDJN3ImPFCX3vZNayFiqFRqFTWFzwSIrApQgMQElfC9CToSdD
T3RYhp4MPbYOH9XAR3Xh8Xv3tDpYepmUMuk8Useki0kRk+AiwUirh+QLCROSRLQmShyRBCHmofkp
rqMpKp4lgU5KjWQTcQGJflJtpNdIVpNGIz1FSon0DykskvmkiEgLkQoipUI6hvQKaSRSP8SSpEtI
tZDIKIFa8rVYhBY8cRJpFlIrJJXLCqy1QQxErEZLj2RwieQSsuEt9DjQuikMN8c3xUveY5Yuf36c
/q6M7MrIrozsysiujOzKyK6M7MrIrozsysiujOzKyN1g+Vfun/wvvvHjwy8f//6NTx9/Mf7+797r
H373b+u539//z1Gj/vdo+n/+39effPfob9f8y6f/9uPjbx/9jzuN7cmPT757/PDfHt61/9f//ZPv
nv9ddZu/e/7i3e1/vHp/68N/tAJ/qJkePP7us0e//vevnv2Nlz199OzJT08fPnr2P9aTX37y9O41
z54++v7J0x//04f/gX7+j7/3t8n8e4bG0/9qwv+cR/6+aRD9+3cwkb9jMv2xbJH/+eD5V1L2946X
v1wr/mto+gen6P/OaP97a/+3uOj/3gLwp7G8fw6L/UNrzT+pbf83ucI/t19/efL067uJ/ves7x/8
/siz/5o2v/r+H13m/8+dhleV/Qer+U+eHf/1I/TvqvIfeNEfr/mdGKqR+l86UP9VHf9/0vj+6tlf
aq35J/L+v6PCL61i6aPPWvkfXz96fiek/vzJN48/W0fEP6eu/+Hn/nlc9ua7z376/m/yqj+b0f3J
CsvfO7f+w077Y/LF/6rt/0mf+scWin/so//p3P3nGV3+sy/+kyfRX3tG/JOkhX+eXvgPf/HeOFhP
PXj49MmzZw8+f/rJt48ePPvxk7uK/vMH4H/y4X0c/u+Mh/+kYf8Mhe4f/fx/ZMf5A6bwP9dG/UcJ
+qOj+D9BhJiP3nyZhet7d6xtklmbg3fH2tCYtduwHh8prDc+2XZhz0fvwfowXx+O+XT/8HJ9eDmc
7x0e073D071XXYb7N4+H68PpyOF89lbQjC/PWmgUFuo7csZP+Q4/qtvOL+jnRf28pJ+X9fOKftSA
59f087p+3tCPGk9JKmZlVZgFED2f39XPe/p5Xz8f6EedcP5IPx+b0pH6jVRrpFqjyX7gY2/gnT/R
z6f6eaifz/TzSD+f6+cL/Xypn8f6+Uo/X+vnG/18q5/v9PNEP9/r5wf9PNXPs+ie4+E0XnfX8TAc
bo6PN8enm+PzzfFwc3z7/svN8XRznG6O8/3j8Ya+8Ya+8Ya+8Ya+8Ya+8Ya+8Ya+8Ya+8Ya+8Ya+
yw19lxv6Ljf0XW7ou9zQd7mh73JD3+WGvssNfZcb+qYb+qYb+qYb+qYb+qYb+qYb+qYb+qYb+qYb
+qYb+tINfemGvnRDX7qhL93Ql27oSzf0pRv60g196Ya+fENfvqEv39CXb+jLN/TlG/ryDX35hr58
Q1++T9/xcLg5Pt4cn26OzzfH0DMfxfuOrDx2LzjiYXDEyeCInwGLljjwsXO1UvCL7Wdwxw+7XRle
hvv7+JWgKA33R2waYkTMeJ2uhZlCXKoUGoVOYXFB/gjzKb7r5VZfGu/P5bvj483x6eb4fHM83ByP
N8eXm+Pp5jjdHOfoG3u4roWBAr2x0FFLopApxOObU1i6nO/X43K+X49LzNH5NCNt8NXGGzsf60FH
o8AA6DzVIbHHJW7uSAKd8dO4p8XXubnx0RY1PFE48x5aSq6lv9cpn4732v7ueLo5TjfH+f7x6XBz
fLw5Pt0cn2+Oh5vj8eb4hr7TDX2nG/pON/Sdb+g739B3vqHvfEPf+Ya+8w195xv6zjf0nW/oO9/Q
N9zQN9zQN9zQN9zQN9zQN9zQN9zQN9zQd1+uyOfj6eb4fHM83ByPN8eXm+Pp5jjdHN98/2Y8nW/G
0/mmv843/XW+6a/zTX+db/rrfNNf55v+utEX8vmmv87DxoV/0c+v+vnNnHSCEU8w4smM+Cf9/Kif
Z/qRaCpXwgXv+gXv+oWQg4WIgIWQiYWQgwWX/oXghoVggQXn/IWohoUQg4WogYXwhoVAhQWv+IUI
i4Wgg4WAgoXQioVYiIU4goUAjYUQiIXAhIWYioVYiIXAhCXHomhH67tCePzZ3e+E99+JxfWEN98J
h76j1BN5gc7yAp3lBTrLC3SWF+gsL9BZXqCzvEBn+XbO8vSc5fc5ywt0lk/oLA/RWf6is1w8Zzl1
rms8PLrAvguMuMD9Q+sr8PoSIgK8vsDHC+uKvBHXmiYKiAEzg26Ox1kYSiyGOFFqtFiOulVUjvkw
3J5INyeOh9sTx9sTp9sTty+9zzfWE9PNidMtYefbl55vZLg83NIx/Ls7bj873FZuvK3ceHvH5bYu
l9uXTrd3TLfvSLdfSbekp1vS8+0j+faRGxn5dLgRck+b1nA3DAaPBx/HaD1dPXC6EePvTgy3JzbB
Wdr2USxN7s2z/Jrno5jfUZPl6Mkinin/8/no+eQpoal6/BwZmvE8I/FWeEJlXtiGcrIv7UzOx5lE
PWuBKVPjPdfVOd/ozXcnhtsT4+2Jy+2J6fZEuj2Rb07cqM+r8en2xOn2xC2ll1tKL7eUXm4pvdxS
erml9HJL6XRL6XRL6XRL6XRL6XRL6XRL6XRL6XRL6XRL6XRLabqlNN1Smm4pTbeUpltK0y2l6ZbS
dEtpuqU03VKabynNt5TmW0pvJ+b5dmKe8y2l+ZbSfEvpLQM532jZd9Lr4fbE8fbE6fbE+fbEcHti
vD1xuT0x3Z5ItyduKT3eUnq8pfR4S+nxltLjLaXHW0qPt5Qebyk93lJ6vKX0dEvp6ZbS0y2lp1tK
T7eUnm4pPd1Serql9HRL6emW0vMtpedbSs+3lJ5vKT3fUnq+pXS4fWS4fWT4d4/cVm64JX28JX28
JX28Jf33peC/3m/yP4mqji/fVvh2zRlu15zhds0Zbtec4XbNGW7XnOF2zRlu15zhds0Zbtec4XbN
GW7XnOF2zRlu15zhds0Zbtec4XbNGW7XnOF2zRlu15zhds0Zbtec4XbNGW7XnOF2zRlu15zhds0Z
btec4XbNGW7XnOF2zRlu15zhds0Zbtec4XbNGW7XnOF2zRlu15zhds0Zbtec4XbNGW7XnOF2zRlu
15zhds0Zb9ec8XbNGW/XnPF2zRlv15zxds0Zb9ec8XbNGW/XnPF2zRlv15zxds0Zb9ec8XbNGW/X
nPF2zRlv15zxds0Zb9ec8XbNGW/XnPF2zRlv15zxds0Zb9ec8XbNGW/XnPF2zRlv15zxds0Zb9ec
8XbNGW/XnPF2zRlv15xxuH3pcPvSsMPNSjY6n6XBnKXBnGX8Ocv4c5Y+c/7N5v2JndGJndGJndGJ
vWDbNs5bQKONHGfCGs9sPZCgfibr/Exazhko+hkk4xkE1BnM/7XA1+f4+sJ2M1sSBXoK9BToKdBT
YpMaegr0FOgp0FPmq/acYrm9IyFM5uxDaNNZYcGz4ohnxRHPiiOeFUA8K2R4VlTxatoOK7y1uTe2
b55vRY079ef+AL3TVO6Ptjvp/vbEDf++k93vD+E7ifh4c+Jmst1JxLd33CiZw+3u7HC7HTfc7qfd
Ca83dxxvJsqd8Drcnrgh/Xz7jlsNabjVTIZbhj7cTqU7ieB0c+JmYblb324aKN0s53cLzXhz4kZ8
G28bebzd4B1vazvemP7vTtwMhzvec7897vjGzTtuVdlxvFnwx/FmCRwvNwLQeJlu77hZRsfpZtkY
p5sWG6ebbhjTzSoxphvD1pjPN4/kG5HxcusDcbl1erjc7hpfjjdternZTzpebrXfy+VmOb9cbsbp
dLt3Ph1v6jKNNxNoGm96f7rcrO/T5YbDT9ONzjDdNnI631Q/3S5w6XIjNKTLDWHpciPLpulmrOfT
jWyfLzdTPU8xTWeShcyDjxUQLuSMeRADHcQrB/HK4T3dsvgFWmWqQNKrsNXX0ycKWgfs3DPOjrD3
d+3qM/y3pftCP1A4OvTehrnhQ96oKHfhsa/HincX2PndytaJcC/HK8SOQwgg8/ART2rZkZtRFUw6
t4dYUHM0UvNzoy+8wHG9fnLb0hlYX+2/NOqBcaGKJwpn6joYUcDW/uEadGRzmqnCN5iHDgVRaLxy
4JWjIQm0WLfhFcMPqF0bQAWtXttqT4fN5WEeorMzL1XLDS+IGjmQDQ+4babg8fQWx7SgZYqRHWyy
f8xk/5i1lQEt10PWzl8D0sfI1vSIJDCyeX5hRSdzyEzmkNl7JuUFGrzRCOfrD4ecsVwMeTAPri2y
DjDmVakB1gtHChMFpkPxdHlXP+9weqRwoWAsCrl0jPIFGeUZMmqWjXLYG9/Uu77Sz+f6kRF8VMuP
n+iktqZGefGN8uIbX9S1R/r5wi24eFZRyxGXgNGbbxVM8Jq3nljOXIqbwdSwX8XoXcEK2Pl6CXyK
Eh+Ne+JbZx6HhdjnYcQtY/RWZM3b8Fr4RGfOaduqgmNeQT+v4LKvNzfO8IkeNw8UJu7RzcLCmi2q
X1zvKmys9ViUWHC/QDSZ6SvYXuuZSmHyJQ35KoStKjSu9fpMgbfa2WN6gXc2eGHcoZdPfKMHQcCe
uHsFBVYBDlsvBIHqZYGNre/Q+Bcq2GyVZHqRu09GUjEbnRYuuFZi3JMGk3DDKghn623qVSGWVQGV
zSTKqeSFuStU5rrwS9YzlUkfl4LfdB6HMWh6r2fizZX3nCmwKGlLeiZNTwWFaS3wiRa8BwoLnzBq
S9nYkjyB1nsKBTh4izfDIwW7sp6ZOXPiW40zQXy8h8FQqWANeuI9sXhG+wSpB+45ciYaM741XTHP
bctgLhIlyssGnNEqvxbM7cXKlAPmbvZ63DamdPO4XQtqhPIKx3GrOETR6l4kHpQPfbXFi2YK6svy
Lscnbm1QYeLFL4sEoPIaty08OFDw/dI/lXJkPS2eXj7mOFNQ+5U3+J6Gq1JHzEXMvrzI3YuXKvX+
XaEe/3Sgzt2kvJuUd5PyblLeTcq7SXk3Ke8m5d2kvJuUd5PyblLeTcq7SXk3Ke8m5d2kvJuUd5Py
blLeTcr/p5qU/5UYvzumy47psmO67JguO6bLjumyY7rsmC47psuO6bJjuuyYLjumy47psmO67Jgu
O6bLjumyY7rsmC47psuO6bJjuuyYLn8NTJf/czIQ/mPY/E//ebkh/g6C7v4Od9LJH8jY+pdNBfSn
ZlT4O/N1/tH0DH9ass4/gaB/JAfrfy1Z/9jQ/1eQ++Yb79zR+/mjOw72Pz75/vF1gz59/PDrbx79
9++f//8f3g3wH//n8f/37bP/eac2Hv4jOq/f8sNPd5/g99++fvTo+0++efzzo3/74acnP35i0v6T
MKe/l6zDH52dbz7/8csn373z8Onj73/8Q7P076bkT2idvxXNte78H3EBuDj1u7O/H7Zk8M77fsDV
pW1OhfYNaRigm71g1sczZybOXLsebgFA69OVwhnnuU4hqGj2Oix4LVSekn62foEXmnYcK9czUb8L
36I2LWoz8x4q0YL2xD2ZS5yRo8x6T9BzoEB1Kvc0WqXFPUFGXKI60Rr61nomato4UykcKVALe/A0
E9+Gh/r5gIY800h6x/ApF0StHHPXY7WdvFzb8DanNS7k1LseZwr2C/1CP29xWoQNn3M86vhDjlWD
4R39vAF1qurwpn5e18/Hviq/gTZ8wkvUY8k93/BkbcNr+nngG6u/9hnHftGr+nlXP494baVQKCQK
DEx5+61nfn/VXfO64RM0pA+4oKqnB/p5Tz8fclUNmz66mi+XkN/XG6KSapukJktvcz1TmClcKKhZ
0lu8QX2f1J7pXW7T2Ejv49o7Uxjwap04E36uFNSU66ULhYl74j0jN585UzgTn1i4VDkzcCZzhvd4
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
Y0uK2QJEbLFXtFjRbSqNv8t38mPFghIAZIudqqVpQUtTs5apqlomn2qpv2wpRLYJu9RJ03gH1Knd
h8sdKY1UUqr6UyGZfSFjIWehYKFkoWJBPuMOftggzO+WgnRL6bhN8H3YMrv7LRvk2CDHBjk2yLFB
jg1ybJBjgxwbBMm1LzQstCwYFiwLjgV2kGN7PNvj2R6OrmxZLWOxtwxf2zJ8batBXZmprEUCs5Yq
7hYJv1pivy0zobXMZdYyBVnLpGAt04i1TCzWMo1Yy3xnLROdtUyF1jI/S8u0LC3zubTM2NIyh0HL
nActsyK0TIfQMv1BS1vmljajLS1EW9p/tjBSbIVEZbKsFviBFQlSrrWJdqd8yR0lc2VRzBnQtCU4
rmdqngFYz/rkWq7AJEvSZD6tqcpJTVakk5oiTaY1dT2pqfL0o5p8UlMn2aSmSaZPbsryo5rJu9L5
tD3pPJ/WdB82qen+TGryNJvWNJM2px/1YVp89Jwi/+iaqpjUlNMnZ/n027O8nIxOPp++q7spn9bk
k6/Iuw6a1pTTa7Ji0sI8L6Zvz6vqo5rJWORFMhmv7qbpu+rpc4qublJT5fNpTdFMaprpKBfNtFfL
efFRzbTNZTrtw/KjVVBm014ti2b6nGo6f8pqOnvLetqrZT1dO2XdTPqnbJKParLio5rpu5ppz5fN
tM3VvEo/qpncVSXZ9K6knnxFlU5nb1czfXJalB/VTL6ryqbfVWXVZHSqfLoKqryezI2qmK6dqpxn
H9VMv6tspk+uPvrSevqcej6lkHU+n3xFXeUf1Uyf3DGy1bRmSiHrZrq+mo8oQJNlk+c0H63Kpign
bW7KSc/3uob5pCafJ9OaCV3tarJsUlOk0ycX5UfXNOmkpkzrSU39UU0zz6c1k7HIk3SyLrqacvIV
3X3VtKaetDkp5h/VTChSnkzS8yZd70zoap7W07enzYQ+5x2Brqc109HpSObkXdl0RvU1k3dldTK9
q56ORVeTf1QzfXuTJh/VTJ7TTZb5tGbCA+R5NlmDXU3xUU09vStvJu3J6/yjmulYdDd9VDMd5SIp
PqqZUOO8260mzym75TOpScvpNcX0XWWZpR/VTPqwrD/sRJ8fKXl4zuQrur0g+ahm0p4qmfZhlU1n
Zkex59Oa+uOabFoz7dXqoxk+CtmvNVOKVBVJ9lFN/lHN9F3FZL/oaj760nJK66qqKj6qmd710Rqs
qo++tGrqj2qm7ZnuBV3NR+/6aEyr5qMvbSZ7d17P6+qjmuk1yZRG1dl0dXc1xbRm+u11MZ3PdVFN
rykn/Hy3TKerqZnunl3NZH/va5JpzYS3yUcWVlqT5h/VlNOa6qOaaR82dTNtTzOdP11NNq356O1N
Ov32Jv/orslqKubzyXd1NVk+rcmbac2EF+1rPnrOZD/taz568oRm9jXlpCaZ8CRdzcfX1NN3Jc30
S6druZN1J73arf/JCHb3zCff3j14clc6n6yUrmZCEzq5d7J/Fb3Z3vWa7KNvz+bTr+gz1Uxq8smu
V3RiwORLO5ZoMl5FRziu15TJZFUWZTlZF0VVT/adoppK2X3N5Ml1Oh33Op/Ow064mV5TTFZuXzP5
ro7dmD6nnuywfc2kPd3yyj6qqT6qmfRqk0z2lL5melcywS463nS6vpps/lHNR3dN+YROYP3omnLa
Y0057Z+uZvrt0526nE9nbzcRJvOnq5ne1f2vpzXTu9LpLtyxNpN+LvOp3F1203daMx33jiGatqfr
suu9WpbpZMX1NZM2l1kyvSabzPCupprW5Pn0XXkxfU5eTWuKCa3rlleaflSTTWsm/EZX00xrqmL6
XdVH10zlwfIj9KB7cDJp4Ue8Tdltnum0ZtobdTKhUWWdTiSgss4ms7ermYxONc8mlLbqBLL6kzzt
+kS/iHYU0Y4i2lFEO4poRxHtKKIdRbSjiHYU0Y4i2lFEO4poRxHtKKIdRbSjiHYU0Y4i2lFEO4po
R/Fj2FGsaYyiaKQRjTSikUY00ohGGtFIIxppRCONaKQRjTTWw0jje8W22L3/2y/dizdXf7zuKn++
WF2evb5Yri5/3l+dLK7+5/zq/3N6+b/ZfD6/qUnI71evDs9ePlpeHJ2/+kvTkA9NuPtyf/Vute/M
z8erq+erl6uLxauzi9nq3fnJ0fLo1YcPuR2DlJu8+af/s3H2cvXXHflfBurF4nzxYaAuD48OXj17
cXT582X3h6N1eLE6mK0uLs4uLmdd+2/xO79O227aE4cXs1dHp6vRXHp59vbZwcXidHWL3/hXb/2z
Bcb7+sc9W16cXV7ipmeXrxYXr264ioaX9pWHi4uuay8vVudn3RNeXH7VD/7z933tN2nX/tnb/qxL
b7KsbibKf7pfb+39E+Jw+fr8Nkbyv5Ch4U23+23fZP5865XxhbPm6xDJL5jX37dtf2Oj6P7P03n9
7Kifi7c2ip/Xlh+jB0fvufjOHThpyvfuP92Oj067t80Wr14tlsffgG34+H03ZXf+hbT0E/Pkz/vz
Nnf8z3wrZkB31c97F2dvL1cXlz8fHl12++nVz68OuxmM8uzo5avVxcFiufr5xVlXfnbZNeno7OUz
XjufJ7c5Q79a+9ZqRn/+DPtq/bFWfP2XroBv2CsHq1fLw5/7dsyWi+XhWOYaKnvo4NXZ8erl/+Z5
mqb7eT2bL/YWs7yZJ7O6LutZsqiW8yZZVkmR/z+OXh6c/e/j7PJoebrzfnmneb1Mdw4Wd3YOn97Z
uVpe3S0fJ5dHD9PwYnFn+9XDtHm9/8u9N3v27uXd0+RwZZPDp+l2c//R2+fLq+TVk91DHL9/8va+
vbe/++jt0fJOSPpnPnn8dP509+7Rg5ebV/uPd5rffrk8erp7+Pbp443508ebB/u/nLx9+uhuefe0
eLMfmhdPHm+cPX388OhgZ/6/t4KB6MD/a7v1z+b0Rx1y0PXI4Qfy8JUn6h+vVxdXncD/avX/uHnn
rsls+Ky2f/8uR1vrg1VVZcVqVqV7+7N8P69mzX6Rzw7KokxXWVPNV/VXmsQyaX8L3bWP90/uHr09
ur919+191x7t7iTfnw58vc1+dpvsyL9igG9jeXxdhm6WfBrVXF92IC75uKjWZZu/SUeu6zZ/k7bf
Wpd/OX05ODrpekjs8/b/N1lX4XnazluluLNborlptdjfWzTZbFEcdCzhar43a5LVYlYs8ma/qevi
4MtkheLNb7sb873s3sndk2T/4NG76u7pTr68s/Ni/87O8W62WSzvbB89OLr3ei/bPHjy4Rk7x3df
JvtrRVfXt5vWhV+PEylOpK+9Cd+ks9Z1E75J23+cTTj9QTbh9MfchPO63svSbNZNjHyW1wfL2d7+
XjNLl/sdu5bXxbza+0pc+1bbc+iXd++MCcX88vHVvbD6xZz3z+45+c2X985/s+3VxpUxy1/uPr//
on33oDu+v3WWbLw/6+t/2dp5+GMLS/+ebl8bJiFO9DjR/9kT/WNG4Aadv86w8WSHzW6Xa7pBZ93G
GK8VE5P9kExMkew19V61mpVJ3TG8SXEwqxcHzWyvXOzN91eLbK+qv1Cyebxx+CQ9VIKycye87InJ
k8f3XjzttY6788vV1b1u7MzJk2zz5Glo5qtdc3K364unu5uHT5MmffL43fnTO2G+lnT6x+zCdWEu
4gSME3BdNv2bdOS6Ihc3afuPg1zkP8imn/+Qm3613xyU82xvlvZMW74335stmiqZ7a0WTbE4SOrk
YHkLksWEiHyWZPHo3d7d453tJ4+XR7/Ze4dPTjeO/wIyPdnviNVu9vRw787J8ZPdjjjZe83uw/9d
Lxoeh6QfknVhSuJoxAUSF8jNGI+bDMy6Mk03afu36/LD1euLbvM/Wn5Lc7/rL709l4Ivsr8fx4F6
vno160dh1i/2/7l8vXfjO1+/Ojr56n4Pn+v88/FADFP1+zfx2zs8/MXEvB0/zK/y0snsutV3fXrW
fIvP/G/L7zbe+zk8wv5+ure/15HzcrFIZvl8nvfa+3xWlFm6n9UdoS/3/zuPsMw2D/d/6fb1F+d7
918cF90+vbvowYrdpyfLo3v73fHV092Nt3tp8f7pTnP29HE4frp778P1HV9w/8nuxvy37eTN0zsn
p4vHO8ef4A/ePdg6e7vR8Qj3H435A/AZv21vvNl7uXm1l77teYW3+4/vXS4e3/8LjQrufdrzMS/v
nSwz0z1j42Q325h3vEPyge95f7d48Ojt0U56eNjxGmnv2rG7e1tWNk3zUxy+bzF8ceHFhRcX3r94
4X2IWJYuDmbLvbobuTLJZvV+dTAr9/bmTVEUe818sYYjtxZmGZ+5WP4dXR4n+I8/wT/X7ihO8G8y
wT82o7lBx6+t4fQN2r4uNKXK9+bLej+dLZI8m+UHTTHbW2Zd09Nlvtrr8w4ss5tM8PZtN6F/f3R1
2xN7fp09Se+9efrLcQ8TP9gMx2+3Hp+H+8dJ+XhrZ2Nx7N9v3Tl/sT8vysV7f/QJiFkXw6Tt7/e7
Bbu/e//owcnl1QcY/Lj5rYe/P7sN60bf4vB/6+FfQ1p7k0mwtlqLG7R9XWht2cyr/b16f7aqinKW
J2Uxa7L9vdmiXlVZtug+JCtvtNjedxP1wV6av3rYrYjFneZqsdudv3OSPn1k7u2dPn2zPE364zd7
R99tQW7seP9ua775cmM7+ePh7smDHZ+U3WLY3PCNf7jVfoUFeb9bkEX3jYnZ390828vunffnFx2D
ddefvH562lztPe6OHzevP7Fo/7qdt0ezs5/iNPo3TaM1pP03mUzrSvtv0vZ1of1JOU/zpGlmB3la
zfJlnc6auspni+Vq2Ycgb6qmudGinX9YtFfGdZO5E+yK+ceT8vDkyePNk+XLfoK/2rt7/O5wmT18
tfW4OV48fnouC+LO8vT48q67m9314e3yqO0Wgs/vOl88eNEmD15sv7vr9zd2GAlr1J4np83xqhck
j+59KZz4dsO+Pdo6rZ9/MD+5s/N6335EaI720s2it529RUfo/Kc4pN9rSNeQJt5kYNeVJt6k7WtD
Ew/2muV+Us2KvZ53Xyw7+l0flLPVXlFlTXYwr7P6rxfQhpMFlD18vnnaJHunvTrk7SfN3rbuhPf7
NtnoJuL509MTTOrjp1eLR287JmX5/OGuueoW0tv7W8+f3986Lu+77XJjyz/fnCfbvbnan03ojgEw
nfD3x/bWxsbqZHveCYMXK//uj83dw04YPG7uvvxz3wCNZHD09ou+VRfzcc943NtYnHRC6O75zoZP
/lhkh/cXxzt5165OWr9Fy8b8c2lqnBJrMCXWkSbfYGKsLU2+QdvXhSbnabN/sCrns7psuv1jry47
djorZ+UqPSjnxUHHbhc3WoBJNyk3nvYCVfrw+dZpM++Yksu9O03WMyvfbTHubG5sbDf+0dbGg9Xp
Rra1vblx3ydbG7+cb2x6P/8Ki/FvffewMJPtra2d3zf98futlz1gmPitLbOx/X6z7NpoNuyt0uri
pzhV/mlTZQ1p+E0mzNoGHr5B29eFhjdNk+T7i26DybLVLO81kXsH+WpWHay6Xag5yJOD/CYL0/dK
nV+6hXHy3QTSbrJv7p5srE5fld2CfHn/w4I0Dx6+f/h+62TTrB59qcD68N39TmDd7ITVp4/ufYoY
hNV2Ui6y842dO8se6Lt33xduw2082PGhuDVsIk8+T68Xp8D3mAJrSHNvMhHWlebepO3rQnPndd7M
y469X63KepYfFMvZolnUs2qRJKskmacH2fxGC64X5na2j4+f79xp3tz1797snS6/HxP0+Nystovt
R7s903OSbx1vdkLjuz8W78ODzTvd27+YCbrZ946IgShXTnpm597KF35na/P+4vTyXde2jhTdJp+c
fB6mEafGOk2NNaTRN5kg60qjb9L2daHRRT3Pm9VyPqvyuufhV6tZ3XSbykGyLOtildT58iZM0Vb7
joDbo8fJ2707O696pc13FlY3O0Fw+9FWt/j8SbaVbG50x0UnrPbMSfnFi/FvfPOYcdve7Zg7f9wv
wHv782Z7qztebXWCas+43SatLubJT3GK/FOmyBrS7JtMlLUNj3SDtq+NffK8KZfJfjZL9pKia2sx
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
SAPavH766M+dxbcen4duCX8IS7d5Z7/Y2t68t/Lv/tjeMhs7fv7unxze5C+//bbiLeTJ58kCccr8
CFMmUpc4Vb4ndflcpCFOmUhd/j6/dZNZs6684k3avh7euMuDpC7361lTLspZXlTL2SKbl7N0v1nl
q/n8IEu/KOHTd1iaP1QApq/UP+vGT8Zp9U+ZVuu2K9xkZq3rrnCTtq+Hl12ySPO6SLqdK1l1f4p0
1iyTdJas0oO9qq7qVfNFgVAf/g0HzmT74dbGxuL4+P3WSW/+0Qdjv/dgsfXw/dbL881/vAn4J7/9
NrHkz/T9jVPnR5o6kdrEKbMO1Oaz/ZXi1InU5vP9fW4we9bWV+kGbV8PC7WDKkuSKpk1eVHM8ipJ
ZnvLg3yWJ4tqv2yaai/9omAg322J/lDm1n8jGEgn+vk+idS9+/Nie/HePFicXl5tnR7Pu+Ny+1at
+j+T54xT7J84xSL1ilMrUq84xSL1+mzq1R2W+3m9nKVJnXYTqqhndVlUs4NsWVX7y3y1Wqy+RDza
/uDu9uhxMX+6e+/1k8dvn2+nO1cfus/vXC1Pm0914+87Psm25pub94+LPx5umY3Vse+DjnXHjf+n
m3z/1bffGpUqPlPSjlPpR55KkRrFKbSO1CiN1ChSo++OA95kNq0rDniTtq+Hliddzov99GC2aDoJ
Jz846Bq6XC1mB6uDPFkd7BfzT4QWu4GYsz5L9odyOtlq33bvu7f3shPjTovDPWu2uu/qxcTnm7v3
rvayT4mLzfbW7n6fKL0Tf87NfZ+UD7d27i9OuuP5LWeI+Vw+Nk7Df+s0jFQwTr9IBeM0jFTwu1PB
1UGVVh1jOlvu7+ezfC9rZvX8YDFb7B3sHewvslW6n3yh+HYkYbj8fg97Z092jz/ZdY+3Nh5s+uOk
67qd/Xmy/ajvutP7b7denod/dqq2v/r2W6Ve6U9x+vwbpk+kOnHarAvV+VzMMU6fSHW+DKu7yQxa
V5zxJm1fk5hJaScXZAezfQRxb9JZXS4Xs9UiSZMmOThImvwLRZvvt0x/JJOK5L67yxCvv3wwq0hD
8UmxLxy/3zrevLexXfyxs9t9R99nd85f3PdFubl1qzrx9Kc41eJUuz7VIjWLUyxSszjVIjX7etbU
eVMke3t7s2y5n87ydK/q+MdlOZsn3ZxbrpK8m2hfKEJd9ZBvDzWfvHj6yOzsnYb0yeOTyyeP711+
0hX+Q/clfvG+h5vn77fmmxer7d4VPmysTrabf3RwmL/69tuKLlHMs5/iNPo3TaNIheL0WTcq9Nnx
0+M0ilTo68RSv8FMWttY6jdo+1pQ/aZoFvv7ZW/okBSzfL53MFskSTrbW+2XWbFqqtVB/YXizTos
1x8qTNUt9tm68axx+v3bpl+kenHaRaoXp1+ket+c6h3UWZkm9d5ssSqbWb4ql7NFVSxn+6vkoJ9y
8+LLAk5vf0hospmG+dPd/cPVI7O9eJyc7GU7n0ph+WB1ul/0ppj350n5aPdwYydsv9+6c76x2i7K
xT/bLewvv/0WtSGflxMnTqEfcQpF6hOnzjpRnw/T5+7L/dW71b4zPx+vrp6vXq4uFq/OLmZnb1YX
Bydnb/tJeNOXh6OuH26M6tzgxT/9n42zl6tPLoHPxUfjMogU9Mux0ZvMonXFRm/S9vWIzFEulwfL
qpilfUKzPEurWX3Qu4PNq3K1l6Rl1/4vE9O+91L9wdzA+kSAg+lH2Ow+aOfN/u6nEgIW5dPs5PfN
O8v3W7vn91Y+2d7Z2ri/OE6KrZfnF7dqUf9hyg0zrK88XFy8XF1e/s+Ly9vZ2v7sbX+2nG6wFX5y
VX2uGBFX1r9lZd0OIf+v8/xidX528erbri19522tsAnHevn6/FY/8r+96VY/LRKOSDi+3ZYc96s4
7b7HfvV3M0OWTZFWycGs2s/LWV6X2azeT4rZwWK+bMoyLw/KL7Oh+luxb3d2Dx90U+uq77b728kf
H+InHJ8UW4/PN3//h+dv+PS33yal+sywyXHq/EhTJ1KbOGXWgdp8dgrjOHUitfn8dMA3mD1rm8r4
Bm1fD1fZJNnbX+ytZkVWrmZ5kpSzxXKRzIomW+ZZVRyk1fyLRJfvtUR/KN/Fv5VHIezkWyebO/eP
O7FuK2wsEOft3qrrr+1bdZH9TJ4zTrF/4hSL1CtOrUi94hSL1OsT1OvN4uLqw723o4758/fdwELp
2+mf10sn9wmV1Z/351/35PLs9PTs5c+vXx2dfLoDx1c/X72a9a+f9QTkfy5f733yzi/UNX7m133G
AHzuHPmohSOC/Jdd+t/1jZ+2E9Qe/cR4fP/unLaSc2yNWvbpkfvKDf0LU80bWmh+VjTLMk9Wi735
rF5WzSxv0nrWLJfFrEjyfLGol0WxGjED3Sb+bv/xzvv98JFy7c5eWncb3t13/eb4Fawnu8377P0H
r/Cjz1bE5Q9e3O0VcVfjjX/nNFx9yGB4/PTN3pUq57r2hqRr8/xjJqO/rrv+hT/a3ek26b/Y9Ncu
SVIc4tsY4tvYcf8+7/JtrGX+yRzSn1Pcm1Hsr2kldfO3frnZ0le2Vvo4UOwNqM7aBrm9QdtvY/3/
XcJeZwfZ4mA1W6yarpnpspnt7RVl19ZsVS6TRZJmVSTsIOx3P0XYryud1i3AUBzm2xrmuIbjGo5r
OK7hr8j13GCc15bruUHb14Fi5vVe1ccSKbOqj098UM328nw+mxer5apYZmnRHPwrltINfEDXMX1K
HL6/OXxxzcU1F9fcv2jNfbwz32D81paruEHb14DCVfvFfl3sL2Zptshn+X6z1zVzkc6abJVnzbw8
yPaSf/gS+YSRxofIXqeX862X5+b+cfLH9u7hg9XWw6utZPODI1EfiewGfXL1I/bJF0Uh7vqnd7za
3AoPdvxxb+TycsO/+2Nn9+TB4riPlPY3FRN/aiDi33XPvtjwRflw697G4iTkWy+P5/ePm21xjPu0
89m6yctxOcbl+O9ejnFPjIswLsK4J8blGJdjXI5xT4yLMC7CuCfG5RiXY1yOa7YnLoo0zbNlPsuK
g3KWzxfVbC+d17MkX80PkjJZJfPV312EHzIk/L5/5/BkeTQyCvjigAb95LnfR9S9+nxnsOdlN6HL
ja2742wOj5/s3is+TP7T5o06iPXt3d3p2rz5ceaI/rru+vuPpA3Z5lnvLNd9/3tZcD8WLY7T4HtN
g/XSVt1kHnyjKOtnF/uri28UWF3fdSux1D+rl9dgb0gWaV1mq2K236yqrpnzdLa3v7+c7dcHRVGl
1cGiPvgsomCffFgk9w6fnN7/oYjCb9Z8aDsz+HzRN/9ovkhxOnzv6bBee8VN5sM/JVb57fbSbXmk
fpE/le6JaxXh+ts4zX2WoVbRlNlBsj9bzffSWd7M97qBTvLZQV1VqyZZzZtVHsnjX8MVf4s8/g3P
ga/p9XeztfHlHn83e8/3sEqMk30NJvs6WBfHibDWVC/Shkgb1sEK+gZzYm2toG/Q9jWgxGmZH+zt
7a9m1fyga+Z+lc/2skUxK7OsWpX5Yq8q/9Fuim+fP+yO/1aI4nWjnHEIP2cI49qLay+uvX/h2vto
p77JGK4rl3GTtq8BpevaVc4PeqOdtM+HmlT7s3rvIJ+tyoMsyffnq671X4G5/zDF7x2uPiiOl/mD
Rx8by3ykjN09fLvY7QSCq08w6x2jfv99n9DgGrN+/8nuxvy37eTN0zsnp4vHSF7wZ5mBH7izfkkm
15bjydPD5cvjD0uw+67Lu/7e4fLow5IqP0eR/GEpdsdPHt97MfTPWd9f2QN3/GPqj+LU+ZGmznpR
9pvMnbXNvnGDtq8BZc8P8iRPV8WsOaiyrpnFcrbYq9NZub+cL/fStC7mTVyen708j754ea43/xyn
z482fSLNiZMm0pw4ff41NOcjzuwm82dducqbtH0d/AuSvbScJ9msqspqlu/V+7NFs6xne3v76f7e
/ny/qfa/eInO/3Ra/lgKwg9LdXX0N4OeC3n6YGR/Go6eXOmyLfvnb7x/XnzKGH3tI2DFKfQjTqHb
oD2rl8uz/aOXz38+WT1fLK9mp3uz7mFHL1eXq5/3jp4XH/7MPly1mn24eXnZV91i0qMvatIt5QWJ
CybS3EhzI8393r5kN5hD68pd36Tta8BdH5T782o/X86afFXO8maZz/aa5cGsyLK6WBX1cjWvP3eZ
/nuX5FTQ/+/u6Del3t/FQ+LvsCUXf52l6Eudbf6+e8+NPuDZUW8sf5tZCr+IvVuDRIbfxOcp0qL1
okW35U72d4nKt19Un+359g2a9Pco2rdv6BdyTDdZ/uvK7d2k7WvA7TV5vloWHStal/VilmcH2WxR
HBzM0mpeF0V6sFxmB/8eCvvrTSjq0dmnv/N7ar0+TIHHqz17cXX+6qz9/e7PHdk8erN6tnf06vLZ
8eoKxOvZ+d7x/kH67PKwY1WerU7PX/XT69X55bdM5R0n5npOzNva6r90Wt4Sshkn2j+KAkZ68y+n
N1/It91kHqwrz3mTtq9Hnurby+h8ee3Tuh7Jvnjj+esO6K/6ee/i7O3l6qIbpaPLV2cXVz+/OlzN
+qa8Ojp7OTt6+Wp1cbBYrn5enJycvX12fnH26uzV1fnq2fJqebJ69urw4uz188NnvOF/Ll/v3SI3
dpstvulGvTbpwCeQ3XeZQuu0hj6mDrc5XX7cibJu/fTpWSoT9M1q2TXq9qbW32zEd1xyN2npd+2m
H2hTu1ycrp6dXRw9P3r57OCiO/j6e9fHITbPF68OZ5fnq+XR4mR2tL96+ero4Khr7DeK8Pmp1/+d
oJ9foaP/WXT7MwKyfbs99BtrzL5CZLFPzdNbDjb25a/+oniDn/36v78u98+Wr0+7FwzrZE2Y9//e
sC/i0W/FvOAfyuT99+6/nbl/2w37+5NPq/qV+LLbrWaXq1fdydkfr7sn9idOFxfH67JU/kZr12r9
fJsJ8zd6518r0n3VPlqenZ6evfx572Tx8jaXyEevWb+e+E8Wvuq35/P8Jz54/b72M9/c8+3LsxO+
+WVX1z3kePVy9nZ1dLG/fkT2Jg3+V9PZm3RQJLVfqZs+IoP/n6OX569fzeb/+582+Y9J/pParvAb
fv5j0w+FdFeOXYbC7zxOWOgvPOsP0vI/aZZlyX8yMzpsxodFk14/LMeH5Ty7dpjU1w7Ta48q8+sX
F/PxYZXwsM3+YzwLlgXHQuD3FqyRu+QKuRWXZXfw8wt+7uLnHn5+xQ86MLuPnw38PMAPOi97iJ9N
/DzCzxZ+tvGzg5/H+MEgZE/w81RaWvD7Cn5Wwc8qpNnP5Lico7DAzx5+lvjZx88KPwf4eY6fQ/wc
4ecFfo7xc4KfU/y8xM8Zfs7x8wd+LvBzqcOTzNNiPFzJPJ9PjpPJcTo5zibH+eR4+vxyclxNjuvJ
cXP9uJi0r5i0r5i0r5i0r5i0r5i0r5i0r5i0r5i0r5i0r5y0r5y0r5y0r5y0r5y0r5y0r5y0r5y0
r5y0r5y0r5q0r5q0r5q0r5q0r5q0r5q0r5q0r5q0r5q0r5q0r560r560r560r560r560r560r560
r560r560r560r5m0r5m0r5m0r5m0r5m0r5m0r5m0r5m0r5m0r7nevmQ+nxwnk+N0cpxNjtmeNgHt
S7jztAULJQsVC/W1TQsUOPE8a1mQB//HCBn8j8fuld4j9ZfjX7VFdX59xta5zog2/Y9pWGhZ0FOW
BceCZyFIwc5ZSFhIhzcV19dyd5xMjtPJcTY5zifHxeS4nBxXk+N6ctzo2PwncBBCzgJHI3CgQs1C
w4Le3g7PLbPr31Fm17+j1DXapi25Db7V8YmeL/PaDscCJ4DnXZ5N9HqKF3tyAp7zx/Eap2/nxY4v
dfqFKQsZn8Oe8o1+U5Mm1/q+O64mx/XkuLl+nM4nx8nkOJ0cZ5PjfHJcTI4n7Usn7Usn7Usn7csm
7csm7csm7csm7csm7csm7csm7csm7csm7csm7csn7csn7csn7csn7csn7csn7csn7csn7bvOVzRZ
kk6Os8lxPjkuJsfl5LiaHNeT48n7J/Mpm8ynbDJe2WS8ssl4ZZPxyibjlU3GK5uM10ReaLLJeGX5
QIXf4ucdft4LJa1IiCsS4koI8Wv8vMLPJX7AmqYfGNWOXIFi9YVaCljGfSFIAVSgr+E1IeEpXgP6
0p8qWJOx4HmqYo1eo29PWTNnwfBUzhq9hs8JvNjxFZ5NDfoVenvLU9owbkYVN6yWNW3GQsoCe7fl
NtcK3YR4kkLGSCFjpJAxUsgYKWSMFDJGChkjhYyRQnJIIUekkCpSyBgpJI4U8kcKaSR9g58r7vGk
0Ybk25AQG1J/lfoMab1RFoG03pCOG+4rJueX1iyQDWg56Vq9nRuD0c1wzkIy4qOmgkrSzPNpRT2p
SObTimRakU4rpg+9Tjf6impSkU4blk0fmk14uCaftiP/6Irpa/PpxxXTjyumV5TTbymnD62mV1TT
Z9TTt9TTptfTpjfTW5rpLRMeOZ1PmNx0kBq6aZDLfJBjna3p6IZ0wsZ3Ffm0YmCcIW0nIGkJ1kyC
FZSA+CVYLIksFtDMBCsvkfUkSwJLNTkgD8353JLjtaQJlutCMJSuULJQscAlY7lkrD5n/DnZRG7u
KvJpRTGtKKcV1bSinlY0k4qJ+NyDT9OKdFoxbWk5bWk5bWk5bWk5bWk5bWk5bWk1bWk1bWk1bWk1
bWk1bWk1bWk1bWk1bWk1bWk1bWk9bWk9bWk9bWk9bWk9bWk9bWk9bWk9bWk9bWk9bWkzbWkzbWkz
bel0YWbThZk105Y205Y205ZOCUg2kbI77nU+rUimFem0IptW5NOKYlpRTiuqaUU9rZi2NJm2NJm2
NJm2NJm2NJm2NJm2NJm2NJm2NJm2NJm2NJ22NJ22NJ22NJ22NJ22NJ22NJ22NJ22NJ22NJ22NJu2
NJu2NJu2NJu2NJu2NJu2NJ/ekk9vyT+6Zfpx+bTpxbTpxbTpxbTpH7aCr2+H82d6kOR/hzdPP3i6
5+TTPSef7jn5dM/Jp3tOPt1z8umek0/3nHy65+TTPSef7jn5dM/Jp3tOPt1z8umek0/3nHy65+TT
PSef7jn5dM/Jp3tOPt1z8umek0/3nHy65+TTPSef7jn5dM/Jp3tOPt1z8umek0/3nHy65+TTPSef
7jn5dM/Jp3tOPt1z8umek0/3nHy65+TTPSef7jn5dM/Jp3tOMd1ziumeU0z3nGK65xTTPaeY7jnF
dM8ppntOMd1ziumeU0z3nGK65xTTPaeY7jnFdM8ppntOMd1ziumeU0z3nGK65xTTPaeY7jnFdM8p
pntOMd1ziumeU0z3nGK65xTTPaeY7jnFdM8ppntOMd1ziumeU0z3nCKfPjSfPlRxuDYDYJNBgskg
wWQAfzKAPxnkmey9wPsVNaMVNaMVNaMVdcGCbWSENDKCHF0hZ4FKYVE9ZFQ9ZMQAMgpGGQWjjGBA
RowkI0aSESPpCoHqZqokDNtj2B7D9hi2x6iSmu0xbI9hewzbY9pRf1a63XZNUMiceggonVMoXlJo
qVNoqVNoqVOop1MopNNHhLYVhRdp7sHwzmzKanTiz/UJ2kkq12dbx91PKyb0u+Pdr0/hjiNOJhWT
xdZxxNMrJkJmPtXO5lN1XD7Vp3XM6+SKZLJQOuY1n1ZMmp5NnzGVkPKpZJJPCXo+XUodR5BOKiYb
S7e/TTqonmzn3UZTTCom7Fsx7eRiquAtpl9bTKD/rmIyHTrac70/OroxecZUlC2KyYZfFJMtsCgn
DFBRVtMrJttoUU22jaKa9FhRTYahqCe7RFFPgK2iySa3NBOWsZzaQJRTo4dyqjUuk0mflhN9UlJO
pd+ynGznZTmZp9VUd14lk2+piskCqorJ6FflZH+vygmFr6qJzFBNO7nOJp9fTze4upwwDXU5aVhd
TnjZuprM9Sad8PZNOVnqTaXLtNsYBLXL5fgDhbcNyHoOApqDVuaglfk2LgnyAOwytnmAn/usTlnA
PiDGPQXoasH3iqlP/p/g5YSfs4AbawJz+S6fmONVv/O4wDGg+VJotzWyBX346nQ+VwakzZ/wTmw7
MDOyzf74cmULbKOd5OS+Qk7c4bEd3zmodHLur2K/VOCGIvATUxYyfiu2Rke0P2/HT1YZzDbox9yz
BVpwfGTOR37onm5fxmbt8g9GAd2Oi351VvqpL6Sjtw0mD22ug93woei5/A5aAwOy/Bkva1mQ+fSQ
x+xB4SkKarBrQqs1oVWoMtiW8ZQV46+c3EdB1XRBTqCg8rzkjl4TqK0J1IrOxNxhhzt2QjZ+sfIZ
ofyPk4+WryWvkwv3Y5tNnkhYqFjgcjCyXLbw84jVBQslCxi/AiYdBWxBCliGFFhlBQz2it/xrBf4
OcAPQPACPV8sUAnVVAErvgJWfMUvOLfCz3PpwSCril9Z0CSgEOVbf6qVgo5EyHhKL85ZqDg2Da9J
eKpmjb5Ur9F3ZbydJERsHgqaZRSiiuzbw+kV+ArPNQe1Vf9Arm7Dt7e6Lh1r+AqvF+csVLwGF7fQ
LAirXsp32/Y5j9ESYdxLNrrkx7e0fyxp51FKl3WnMOVte4iffZ5vWeBTxdijusNnOtJCvQIPr/gO
rw0qWECXt3t8hucJbSBGuX3KZ2D+t9CxiEhS/cKrMRUqktEq8IR8FQh3hcnUHvG12gsY1fYZfhay
jmGz0n9akILlWndz1lguej2l9MbzdhIGLO++Rp9s+ZyMBW5KUEn3hYYX8xrDVzilPWyh4StgH9UX
9O05rzEskII7fTJppKtY07Im5bsca7Tx+hxOBssPtNoefY5unto/2tQ5r0lYo52p76pGxHNQGbQG
rIT5QM26JmKX7wtC7UHKDMiV4bx1XNJO5m1fQCeYX3msl4JCGOzuBuyB2ZWzTh/UsoCxNFs8Tnmp
Yyuk8aCXBgyQuc/LAm/MWZDrIX+aTVaDppunPG5YQP+ZB3wfpqvBrmBA7M0vvDrIVoXR7wo2+Rx3
oWgnH+3ko518tJOPdvLRTj7ayUc7+WgnH+3ko518tJOPdvLRTj7ayUc7+WgnH+3ko518tJOPdvLR
Tj7ayUc7+e9iJ/9DJGP8Sx1LtMGPNvjRBj/a4Ecb/GiDH23wow1+tMGPNvjRBj/a4Ecb/GiDH23w
ow1+tMGPNvjRBj/a4Ecb/B/YBv/bQ9V/N9vIN8hOcttNWsNP/ifd8s2Sy3xx7ofY0tjS2NLPaGmS
Vv8z7/4lP826f//ftPq5Pb/4uROv6p+S9P9O5v93kf7/fur3op/y+fz//dPp6vJy8Xz1k1ns//TL
1tbvP8//p/npYvUhP9JPfbrRn/7P/3P7kd/8f/6/bvbk/6u/+KdF17yr07PXl/9X/5afZmvaqs+O
uBZoR26B0YALS9IRHrEU4VL42WaHxzkLhQg8iiOQ+78L7vsPYfSUWRZmxHww/eoYbzShExrBE/aF
Dy939RI/MNLMid4IklA849UiewlycCLNKCm2iZNgCYG4vMdqEa92hTUCl+fyMwE70EwPR42O5Td2
3EWqI+zYUQhVnYgDoUouyVTj17eZ7LfIIE6kva75ED3679B+EPDk4fhpyfC0fdqkERuxRE9ENsgJ
iRQYvgKCWXPKTyd4FMiOBwoDgay/eAiYD5Z5naQiYlBOxELkowISXLGPwb7g3eW47YpJ2ubxtXrC
rG0hIAJE4hJ8bAm+uYURdPVkfKuq/dvqKd9JWUc8O2pKzOaMfV6MH6H6+NaptK49atlVIpS/ws9r
DmMzfpJKLf0ZCgsiijtKx06a0xdEhDnHjDtnIxxXBPl2P55zgzmTq/c5KuN+HiyRXL26Vn8NJO4r
dPYmgdN7PHcHWyKDyRjoesILVNdjGyyg4nB8WilIP8GTa2dUwssFylqxz4lIDvM6cCApFwdKneFa
z5SD2PgHu86PL1DrDM+HWWjq2hxTroBdaQE9agGNawH77gLWqQX0rwWmYyF0BhrXAnashWBoUMoW
UNEWUNgWMAgvLsbtUsVLW/whdEvwoOJ8dN1gX9CW6LUSMmu5LZAHAWbS4xKjUkIQLSEll8DlS1DS
EtJpKZgMuqPE+i53+NxxPw8a+I7iVJ4FWYfPeSx4EYXhiltDhQ6srn2Zulp0dwou31JZXQEerhY8
D+JUCaiFXq4wVtUbvkxefzp+i4KytpXrhKiAllYY4QqEosW4VRjhCjOjwvBVf7AtCd8n4NUFT4Bw
VoLuLVGNaVIRIRM9QiX415E8i6idKENseyVUxZO8CJYpyhNDLMMQUTPEFozAHn0BLYT6oz8mGuPH
9LBUQ5D+DEiVB8jSADnx97n49KUla+QVINyiDWqIDInWQqhrIw/d5FmCVeLK1hAaUvQJuEkrGiTo
DvpqbS1wJlEaQKPUV4PMAjLnV6pCtW3u8TnSXAD7jZwV8LF/jrRrA71AdEXoiP91/Hg1JesvEFTo
nYA1YjFhXvFYGCFOd8MJbi74BHSFNMBQdeYJ/4h5hsE0EV6OmNJbPqTl1diI/D2+Vp7+G8/LdnnJ
854F+VLisUZmv5VJ59Fz5j3PYrwNlpp5zYZI+zCs/kN3usQJwUZ3drsfcO++UPJULnYbeH9/ilov
3Splr+db+mu4uUsHcED6U541BWtQgJ+DEz8HbuIu0SdgcWNA+ttqnkCjsZ32JxoW9PvwNV4/U5+J
h9HXwiV3wBZIJztxFfb6IO0EbUXGUzVrUhYqFjB05HLfjiZtrcZq3W4N8uGoiOxrUm7kQU5VZNSx
Ah2Vt/3FJWre8FK54j1bqBcmvLVgAY3PL4W38TVPNLyHTXKscSXfQ+bZZeMvU52so+5Wz4y+2bW8
RAqveKxMOmZO/ho/7/jWMdNU5+NHanvYV/icvnCthcX4JnyfhCv5UCN9cMV7qZoFyXPUpveX8pST
EfwDPxdgCF+QY6xYwLfWr9ndWDf1O57Hq+s/eOx5ITqluM4y1srK9Jdg+tUUHrBK+4foFVAl129E
h4pmde+UCVOf4ecAP5f4OeXdmDz1FR/rpIBl2F/R8pS+2vKUvOo9fk7wI92Eka8P8fOW92I1189H
H9yo6Vb/zDkbwIKQiPqIxyULbCv22L6AFVCf89iwUwoWqG+XYbci8vWnMpFXZWqUfFMpI+YsP73k
krLCWTsrTHdfsLzY83at0bscT/F2p+/S9qQsNCzo5wQ2g3YEECL726lLF2m4lJf2F+c81bKG12Aa
9IWKd4mL4zMeayNyXqrtcyL5WC3UEIm2v13Y+z6skWOYIkdyRlDAEQtwuqq5zntdDvdAy53BcUux
3AMtd0XLfcCO7UMGK+3+bm56jtuJ4TZptBVOiIzhvmt5l+XGZvlAy/2i0Br9Pm7t+jVOv6blc/gR
TtvO3dZyd3WscdzwhvbMWeDnWF7j2CtOr9Fm6Cl+jvaG4+aqpyz5Cced2JF3cfwKUbM6abwDouZg
G9V3ZMZOwjPyPZ5Aa4HM9cey1T3Bzyarhdrv8JhboxHjnef4echq2eIOeCzb7y6PZV9+hJ8HbJ1s
gL/jB7xb/lTOlrIbLfgQUvOCm28hrbmPH8Xu5G37PJYH/YafLfys+FjupYY7puGmajgxYZLR15AS
S8fXbEP9mCeE7j7DzzZ+dnkWHVuPYKd5mY42Oasfib6p0WX1Js+TvlvuRZZ7AAHOh3yCbBboz3qL
l8kmuUP7K1JAS5poSPisGiOxYEklLWm0NNjKHOhruMFY7iKWxHp4Bam27hCGtNSSuho+x3A7MXox
6bjlLmK0PXqxvpTE2fDJmCCGZj2GZj2GhjWevLan5GBoS2RooOPJEBuaEHly/J4ssqdUIENdqf2m
JxPvye8b2i958tWGlj+e3LihwY+nIOPJ8xuaSBnaAnky855ii6Fpk6ew03US3t5tiGAu+kLDU1qo
5BQa1l/jWCh5TTn+UEVg+jMtr61YU7Cgj9Fr9C4tsF0Yif4az0IYv1OtqbsJA6bbE7ftayrWFKxp
WFAUr2RNzRq9CwjI/ANv6bkk7Pwtjw0LloWWhYYFyKrzD9xx13ZM477Q8IO0BjjL/APjbBHNLtAz
IDCKT7eexAYnl52k+zjM7r4ArAGgogVU2H2P7E85EBOQ197SjzC/+DwUwASLTVqsqZ2bWrVROSNS
ZwUMoMKDq18FxvFqsEPklSYvhLnSJ9zX5PgpKTdjbhSMuSG0v5bdQYa+VoPt/hKyXoae9zRLvccv
pO1eoPmUH5uc1oOXDKxU+1sIHxtqXwwNw2hP9hufRW2HmtN6ZQQc59fYVLdWW3oLOIj1CjC3BUDW
QpBZsVF7Id0opqjmGaF+MnqO+5YdW5PW6mjXf4YYK27TdEpgowWxEHIzjnybPNQLmZGHNvNB7yI4
rxorjj92Eo+jryimFfqkCuBgNe6VRp28bHvMRus4qiUZmUtP/syT5RqLyvPBJ8MRptAz1egMmWmv
GBFZME/ubAx8zof4Hy4/vFY//VrFDl294P4EIk3wpqeBnn3uSY+a8UPUwacFl9OCi+Lp6x6vXUU1
AgiwKfecgS6ca8+uB62MThoxUYW+oADmX+xyEMTcWIzwrw3eoJvI96iQof2ypb2ymCU2lBWK0cck
Q2gR2wA+LwMvF5NOsSWlGS6NTgEolqCcLYD4lpS0hR6zFdAe2ozqwfjFqp5qK9DGCthwtckPp9Gj
V7SZuLkaKzraMTqSRa+Tl3ooT2tMNRvHvsCGqL94f0YMyJfEQwkwi4hhDnlCiC6UEwa6UQOFgoHK
wOxxKlMC8pSSvCo1x/D+EEvSEUhr3ehuCmSeotVQoCjjKb15Qinoqn5iihRxhJ9j/LzAzwkvUvaX
UJJVcEbFfgU4yKyKzGgHBlIY65KvL+U5HjCtT5SD0gJOIChtR+NksQo/LSiEJYMDXrEvgJMTuwRP
2cIL+yY9m6jXUmCkvn5Hz1hIuZnLmnlAOwnu0jTj/oUqPNmlsINUINEVtpXqMea+aKrGqrTkumtY
X1ENky/orFadPy1qRflvTngs0/F4/Cx1324NtFXmBWfDGAZM1bmqH3CMYf6SxyJ7ngrMqWimpdCK
Me4nBCmd4FsZMdFSCnyf6rb7M4TABliKogoe4wHs+0SHGndYcqnCanuKCRR/7Pzq28ZiiMBQBIYi
MBSBoQgMRWAoAkMRGIrAUASGIjAUgaEIDEVgKAJDERiKwNDaAEPf3qP6JpE8o29X9O2Kvl3Rtyv6
dkXfrujbFX27om9X9O2Kvl3Rtyv6dkXfrujbFX27/q2+Xd8p/t3j1Z69uDp/ddb+fvfn/dXF0ZvV
s72jV5fPjldXlz/3Fz473zveP0ifXR6eXbx6dnL28vn/9C29/Pqh4BQ++sJG/fR/Ns5erv762y9W
l2evL5YrPPJwcdF16uX/vLj8dm52yf92Q/8QM+BXzghV/APjS7Z4LJjxBn5+x8+I0UyHePqGKEJf
0BpR/dzlMS0UrMBOv/FYQMd7+HnAaoEkf+FxwwLNGAAE++Q+fjZZLTD3HUj3OIsQ0l40qlbOPcIP
vtmiAYWgAr8R88R77eb40zV6uEdQamPv4gittb/gCF8G+cnYX3FE+wA1JhAOpj7mscKvJQtqOGBY
qMfN0VDlxj64Vl9o/QZ+fuf9VMPBFsQzsrhvVC1HDa/MjIYGCYamBaI2gBDUH9MKwdAuwdBkQaxS
vOyoHhKQr0ft0BqqE8QOoZE7VCvxkOcxQxvVOlQs5AJOY8p56ka6+VLRtsHSkkFmo6oqadrTX+xY
k7HGs4b4tyj45u/lChEb5sJBehoaWaTT6O0hLAstC4EFx4JhAQJFJnJzYPLqwOTVFpZtgUm+A5OX
Bib5DsxiapHKo0dxkXMWQdItTOYCY9pb2LpZmOBZqF97RU3BQkk7jZaFhgXDa3LG/q5ZgKwOGMkC
d7LAnQJ3se4VGKludosox1DUfU0hBYarvks8ibg8gzM/I7RDvallWHOGrCfEXl0RjmhYgLxTCULy
frSc0mIEDrXVtTMKz1XvrtVXA+Kg+kzRXyKWeS9MtuNbFMhzIH0OFLQVjMNTRGmV7VbhQeUAFXVa
8pxkDQPVRJ5aQk++xitdJWIqeh/ES/dAJTxAhCAaa9hP2uYJfl7iB6hiCbVGecA+l9DdEoZ7yWr0
eAmkqFzIUA3aDbHJUUhJASgZ+X40xl04SVTdVzSjgbt2ZjCQqbh2W4bbrwgLtGKs0BcI/TFaN6GA
ilBFpSAe4YeWEdKll4yCSQQQG4Q4pua1FcQZugRLK7O+QOgrUPkeiIEFap8C0aZAmEnRrEC8SqR6
KLssTdT6BuEeqxc2nKRyxTaPBVpBFGg/smsYZXpsNQy23xWARdakh5WOf8JqAjCyQj0+3aOB/iF+
NvlyhZMCC/LYR3wMASUjOA4sc8HAOPAKLnmMH8FpYG6ayJUwrk0wEoL/AFhy4FFcgr4AhOgSgk6G
gqvYEic7+AG26GVR/8aLaCPguZ4D77cKIHDNqxlv4Ckz0lmMErC5XG0OaIaaq/WwGkXTDDVX1bOa
Yat9NG1NmYvBkTQ7JnIwii0xcYMhsmUUp2EOC0dFq2PyBrZdk5S5fLD6tvqYbHztGPRQnapn5yiJ
NPo8QaZ+5RX6cfxc6uKpmaXpjqMi2DFvRt8BCQukry0l3aA1KWsoQQtgVhNzyaST+poxN1eoEV1/
JmOhIClXJEAssIeBMdouIhmB5gGBoIgAaBAA+ku1eURX9LkyYrXQuv4Fc54KrKGg61nTWhZooqKy
a6CIGrSGsqqnGcuwHam0T9k+6DXcxALBgmE3o2zvKW/r7Z4i/VhxlpZqhNefobSuhUCAYngVpfXh
DQQoAqX1oL1CYEEsfpPBptOJ9LLkschLz/BzgJ/HPFuxoA/Cd9ltHou6c58XUrIDguGTp3JhKS9e
4WeHl+V8kEiCe/g5xM8ufha8WqSz5/h5grY8Ab+AZWbRdruDSpHDNvEDsRJpVjoqVKgNUcGa8TZd
akYwX4iU9juuw0chJYtHmhdj0VZoSbpVB+bSQ6PkoRTpXiU8PDQ6/bEIQBs8xidCqdQfQ1JqhBv6
lRy/yg2WNSp/ONZkrDGsSVmDnRap9CzS7PUse8nCmDRUmoGrP4OdP4PuMNsbX6d2dTZbgrs3wqKj
X3t7q4yFlJy2JNs5FOW02PVVspKtf0ZSodykG790MKGzg0OBE8jpCCOEzxR+p71mKZZWCrBaS3ZA
XGcwwVoocuTyWhMt9Z2hIogkgDqiTOBvAAH9GTYDmOzyGk7W5Hn2pZjR90hqHKGfCP1E6CdCPxH6
idBPhH4i9BOhnwj9ROgnQj8R+onQT4R+IvTzT4R+1iXN5xDOyDbwhSklv/Ehma9xd9bqSG5o39p3
J6NjOOIsEo0HjqT9qNHtWDxmcw6wcps5AwkVZHkbemUIM1ui98oXZMGVRWa+ZUk/3WDySUCh5pl8
iHjwNwwnA9rTModvq3l+NS0vM/ZaD/6/2WO1mCIL9wRHD8+QO1Y3Q92iaMsaaFmn8UjUFM4J4vSC
tIZQB7b6bqMALQg0+OtXiXgCHrOnmFK7ZVJr6fgS/hTlGfuO7tzi71O+5PUUcHR8pBtLjEYpkwQ+
N+UxL6LgYSgFGbpTSIbklhnAW8aMqJhVvmJu8Yp511vmDW+HB7Yq2zQsUJKRUWqZabnlAFaD1GTo
MzJcnLKgspyIE1gBEBgtwCsL9KzFIrEA6azQUoBorSRql75o4JYHyM4C42obyJeAiyzAPQs0sG3g
wIc87xb4n72G8DW1SvQQalt4XForbh0YDgCJVjy4kEW+lUzxsqjgjthKini7wXk9cq3L5krKWqaK
tv6MV2LNeUjaHp/lL/Gjy0QI5gmP6dRgGZxE8nH7cx6jzZSw3uAHPenRvR5gjYczkIeDg4fXhkcH
+Jfjz1Brc+sP+X7x5QAp8ehxT98QzAfrV7w65QknvhAS9gncSEtB0ZGNaSHYtZAnHbgnl+htoCb+
IavRyZBaWy9iINxHITu2kDxbCKz8sEolWki6LQRXR37OJUrq9oU0OSVE5PtVonAUb8SGWX0iclqd
03fD0IHCMUZRfzsLYiGcUIrzeikN60X4SPQOijmeEpu6Fih6pP4P6i/gtHV8k1PBEVhRwpvV30FF
LKcF/XyVtfCNyQi8yRLFalw+OF44ehUEbYG+iPBX0P6hxOr4keKUQIiz3yYoYBlGPrMcJkOxR0If
5LzUUlwbh5/JkmokrjEg2hD4TOVJugIwDJm7M36IkhuTU36yuqXpe+fjW5r56L1gm3NpsX6BPkvl
NcqnZoRfZkNEgv6MdoQ2APxezmNbj+9NktG9fI+lKKphzwIFO9mPga11zZAxUTt8WS8yyx3PW+pJ
1Cpf5cFAg/1A6W+o0aeiiWpdL2qdSltFsS7QVUCFuKACKC5WS/9AEZUP9+N+UWdMn7wUxsOTK1as
1Ysc9R4/5/hBVK4ECqHkCj/vRD4TzULymtyMyGuv+EgR5E55PvBGsoxeJMAz/FzgB6G/kj/wc4Kf
S7DtCLBoFziCfIU4Ob4QEUxIbiB7ZSwk2ULkvy1e5lgQgU6ExmesFm3ZksyZHAvBN3ZPLhQ5FiCp
B5TpgU/6RkRAaDvhg+khdXg4SvbcXiGaJdHTkUH2QOY9HVJ6ca2muBZ4ikKeSMKC7c4ZmI0uIp7O
J55uJJ4eL/3FWjNno8DDpVvkRBNKOC0LKvMwaFqhBURWyUfezFmmcFJQ9Uoh9CnQlSTQD6bndKln
EcdNxKZpEZGkRaCSlsS1Z4AL8rHgH0swV+UluUAyiMqMGgL5IgU0YGYAZbQN/KcbxCIAfNCzBvSO
5I67EsIqvkgSwSKnW6E4Y+VUZoy9gLMhhkC/LpT9rzgs1A66MZXMh1BdDNZpx/7r3QUqwDYX1+qV
fSio2MI3tyWcR0swRCU+vXzL/lGuXRl66h8G/lsYYwDmVjQHeGwDn9wGbonNW5HKxJW9uRq3UZVb
fV/XLFBMsxTTLBUCshsmwiq+HT9rQDABHzngRK0XTuuZDCV5OGHuoBgSCRA8aAvW0ABdd/mAJwvY
JvYFYiYgSn8xb0i4GzmCpwKKIVhgf8xtSjy8csKiwr3leCxC7fXV452/mCur4n4Z1w87osOL3D1O
QhpBSMzHhB6dDXmUhoErExHO+xoKrp42EJ4wgCcwIIilPWBLhVo+xw960e6T0OmUJ2Fz9TeP6hxh
kAiDRBgkwiARBokwSIRBIgwSYZAIg0QYJMIgEQaJMEiEQSIM8n1gkO9kLvJfvY8uVudnF6++dnyY
T3s86Tu/i9/TDYLxyLPfrJavzi4ub61z/mYj1ru3vmsvfdfeuftyf/Vute/Mz90TzxevDvv7bqcv
/uurbhoZ6lNOe/ZaIOasGNwZMgAVyBXW5uJ38W58cTHGVMQiHbimf37tOk1xBHt4A4N1I356ufzc
J2FVikv/K0blPifMaskiyVb/avw69aDTCjVZpC1qW15xp4b44iR9zR98cMXrFbujn4bAOhVN3GvK
zpKWzf1GHkeCil/IM8X/h7K2FTasIBtYaeqB0TsU8sPrYQfbt5t+HgIww1y1PzGCuLMyLUZDJI4M
jKbKBDYEnw3hUUBJrRfOAoAsgCWXvCCTSNRBDMHh3GDg6mDU11LyYCW0WreH+BGjzQX7im5pYgob
CGsRjAk0ZbcNMw0RlwdvC97LCl9Wvuf46UDWLJQsjGd+qfhAN8TCprb0wWs1ijmlh5Yh4KvRKaLE
DIw/KuhzOJ0sWXX5zlYmuTSn0lDlFj1mIZVZYun9yONOK7jnkufFz0agVwFVn8tZVRyIUAF2pj/G
h1nRN+zzadKIZ/g55tUVCzUvlAn6gidSFvLxd6kDlWU2sb6Qs9CykLFQSEEcsvwQS5d+QvSw81cy
jQX392pdzFZ6jeCroXsZcVeUCJ6Boz3Dc3sN1Uv8HbgxP2iAsYHUOgj2LeBbl4zh26pRigmU2AEh
aAE2t8CBHUAKyxxGDvhBC7C4BQLtgD44oAktMGMDJyQjTkj54D0TiNgRr9zi8RhRqYcEi7DKd3Ap
NlAvGbHoJxTLuzSnmEmGlJOiUIMnk6PHsWOSD8eEm0SrxGOq0AfpeaKOghIpIkw/ZwMTbifVxYBB
MlCphmalQ0XO1I+OAow6mTBSqcYfHVwdPbFHT/jPEzh0fEHgu53ezgcyXqwIVuy9qlZgcpO3iGzz
gHdCmMh5LOCWpANl4jhXayBUjR9LNxEH7zQHhzEnOxXudxgiB1/1Snc1aQSc3ysBC7FJu4ek6o0U
jNL5igUKYC2TdEm2xYTpXRL6MySEfxJG420Gt5aWEp0kBkqY6zHhrpFcc9LMhkRh/RnASciy4QsR
1oD7IeOCR44PXwjsBVyuENXlCxyd4gfSXSGblzwF/jRQ1PpGjhQ8W1EgFF93vLMRORFPgibNQ7vr
obLz0HX5Zm/8aQpJe4ZztUy62hfUK0QdRjy3U/HhviC0JUCW/EgSGzqDF7IbWWoX+pqWOJYAM1BT
Ie1CYARaW1zbyPK5Zjzoga/y2hkNJJ8LOEPaTi18vysyX4V4/ifCjyrvxAyFokkt1M2a0ApUYc5B
64S42i3Cd7eIQ91SE9Nq+jHNNsUcG1dkPekR3ircJJlO3vEb7Pgjq5Fjtyr5BybCcpOU3fMlj/WE
7L+nPMa42DMetyyQm3PU8DnuqoabqeHGSNdV9aEVTXLLbGgOYLdLZGNCr0FBKZ+WJJprCrpDJwEr
xJNL3M+oRzTIkOQEbUZwAcc0OQYxARwT6RhJPuyeio5C3LjEX9Bxn3Eg/W6XlIXBQtSeQ1QIDUNe
JIxLkQy5bNEGj6nsEUHAWFnzCCqNkTFgp/pbQLmge/ZQVvtGaMdLrlAuQ6GODOXcr8eCBTQLOvB+
YUoSl/ecXo7ziiEHJERzyegEzLNrqjAennHuSqeTlVprCXae745vUfbENjLf3187XYzkKMKklgYr
TtlfGjdYYqqWzvSWJhFOOWMykmIbwcTCbaMWMKNpW7NG5zj5OUNWT4BcBhOxDCbSat4s8IkO6h0H
rUwLeNVBB9RCRnLJGz4C+ypCvTg4Cjo4IzoJzAIA1gCtNeIrKRB6IRAqZB/EvTB0mDOafNyRs3FQ
sjsspAovqIC8SgZyR/81p16V0j0yWkO0h/6Mzn3L+csN1+imTMQz6J7OrdxwB5eUfhZaNCTy6asl
kA30XMj9Yyzi3ttXqIQyzcrawp2N/GDdwRzFA9j3YrGSHXz7SEYRFImgSARFIigSQZEIikRQJIIi
ERSJoEgERSIoEkGRCIpEUCSCImsAiqxf5KEAO9AA89B+a1S7V8xvZFqWgchUlOsnLsNb2nZ8STKy
l3T1tTPFNTCjqxgt60rXt+X6poOYI3Bgufs4JfX6JloABuaEv7Z3ZeqB09EasR+s7vJK5t12WvDS
Blm3Bdctrcr7p1AOdio9i7QKtyDMIIvp0XdXyQKWNyZef0yjUkeJUdAYGL+3kOsczN0NUCknkc0A
YTjEUuO3jrhwXYV7nN40eje0rxQpyr7G3H5DnEpiOb8i2cc2i3XS8z/joc3VT8JijVgGdjaAXPrN
ENtZBYezdDyt8qQagq5af+1MMzqjbAF9ncRyX0z6MxGqsL1BdjX5QFMAavSfLIb4b8ZvygYb5d84
1kridaprDUO6uvn4IZoKtR9XmQ4Ac+wbVuv5hgWMO0ag1fzPfnBW88w/7BjF1OuuobsgI59ComoJ
M7QECFriDQ7R8QwEdpOIvA0pvhBYEzQOIrmT4HriSgFGip9c54Obi8avDMW1SxQ0zbENAIk15NH7
G8DjVNiHHLacCjFRnQg1yEpq6e8hYd/Rv/2oMjq3OH4Ak+ynLh0OBH5LRaoOsGIOOQmBdGFBVlIt
whkTr6W/q6XPSj8VlGsg1KawnGQcp2dJTzV03pBq0D2WnrONWq6PAOq8uDaziN86MiPDTBXmm2Gs
HS3lHUUJR4bdkaVxJKuenIwixY7+rV48EgZk0GuP8LO9ntIvCbyLkZQlS7sldbeko5ZMoVUBQhNz
C/jRMjtBf6plgURB0qnbQd6wbIYlryXCilW8kdiZZbBmuiNbKyS/NaM200t76I2Gp8bksFRD924R
K9XyfDndDCgQDhnbKVY1Ay9ptYGybbznsV6aj1+tKHn/In5Kq19APtQSizQEC+leq+qPASxUUJ2Z
1hV/p/eJ+Q+zm7OP6TXCdhXzUZfouDZCmDAeoRn2QG2gJTlTZFW8iglrumQAVCVacaKYqPrZUj7V
tPYEQ1vGzm5HgKl4diZDLnjJLu+HSRD0dp0obJgivU4bTz8Rrx8I4RB8uSN+5AgSOQJJrR8V8MHF
I17BFOoCNYHld4ii2g4or0wWl+gTNnlc8Ap9lI5JYI1+us4MLdDLdxz9Pq90L22JaJvkilfKd78d
35AP8je4nUIkbLq55fvjyzW6vuFIG+2DXOQUyurJEJRZkOOC0C+bwiCzHG4HpzxXCBaAJyLOqwPE
5jQfhvqjcMCMjgud+vqLMTGLBV+kWyYaBzjOMduFg/efyaUFAijv8vlMmC5zhU6DhoPl4DZodFrR
DZE9qPFzDUfc5BD3cv0+edJTNlmQ22P8IFG5ZuGooCyDN5xr5FqwD046UER7APsIyGrgReeQRMAh
pYCTkLtQh5kKo4E4vQ5Re10jIAonSAVXTEn7jhQkTkL1VvTrgdbVVMCMEQ/YSNb7RmFvmXFgrZHl
xEFTZyrcUgFIRq4DJwGDK7wM0XL7dxLalfjmDgyWO2Q1cG2HDnDQuLhj3i2gELDbSoJA01GrwqC0
6iT8Bx863gzqYZQr6EAcpAdHH1j51gp96uAk5SD+Y9mYClGbK0zISlD3M76PsrelpG3pl1pRGhd8
poXQ31ICucY5N4O6xqonL923W3/tynoAA8QdTVJftG58XTYCDSRINjFWg13UwGmzP5/JqyUwc8K0
RdytDRmV/hQRCCYW0gxGjLvSStYfiGwC7RfveVHgExMWqDuw40XalMmoTyT1xtW1C1Q7UNBhzmuS
jneC1ssnEVY2ZFYMGRrDzdHTC9MXquOmhgKYsCHn5Rkjx0NL7env6olae+ZhMeRVDLksDwW3IXPk
aTdg7KjQ8FTOGr2YX1Sx2RVzEVl2h3Q6UL9uy/d0JJYw69Tq+mZI4iO6KG7bvtFv7N70zaMhRWgm
QjMRmonQTIRmIjQToZkIzURoJkIzEZqJ0EyEZiI0E6GZCM1EaIbQzDpFaPq2sZk0ks7HH/9fg8/8
nfA4l6/P/zLY1FpHqvoaffJ1wv8MXfmVR+sT/nC9dK2xGCUz+hWXDLMOamJ2x4zmmphdgLw5Teea
UTzAkXFmMVcGUSsoD/cmoUxlrmnVITD2NQyxJuJhusNjJlD0TLxuGA7SEy+AxNY9RWhGIJ0MJLKB
+17gZhBI0wLhygyuRBmCMGdwM8rgpAQ8JCDEnQW3F1LNcB4IyjLGpIjYsBi0amNeiTDfF7TGiEhl
iIh6YpgVIVaxIS0p1JSUU0oKBuVgHj5ACRR61eDUqpxPiUwsbCkhGEoeBobozl0InyNcerVAtdie
Qyhyr7k9c3+VSIHtXR5zqxEOgOBBP7V0XIHPpI953LA/FJSgZG7og+X4ZY7uX2olHihQKghNC3Ai
BrQbN9oNMKJ3iIjaMkR0Dz171mQcG9rLS+TOgsBxQUPfgsh7SWN3xia0jETYn2pZwyd7Ra70lOJU
Ne/S5zCuqLcs0OlSUSLPCeGJgAVFgAhMBSKnnrBTYPxRxawCoTBP2MnzlKdptKfXXyCA5mn2PCBp
hMWCDizb7IjjeV7jiWwF4liezqSK7Ol3eUJlwydTJzF0i0Jl+i4FD3mxGoF7Yr8yB636q3Lc1WKc
br3W0i/BKmKsGPOAtHk9RRRI7cM9XQ8NC1Znty5pmsgrhucJuakCw2kLCVuN/VSKdBS9nwPIudYq
FErPYmsHINzxIxzxNQX+AtEpp1+jt/NiR9cOx48Yx4QusiHOP6d1y/Cera6cZgD3dJAc8a+Qj583
Rvnk3YroBSp1RB9lRVLrLvUKIBE8MUSJpGAJXjka6Su4Hwi8OS2wCZ6EyTNubCDoBFG+tcRk1MFF
FQuARlrF9RwhukC0TF0IAgE+9SVQhYVT3Iv+o46wktxueaknuOhJRj2hxEBMSuKYU1nVes2bwKzy
dGBxyRCiWCK2w83MJRord3RPxZqGNS1vJnJT6eAQQxsaUfB2omraLEP8cSjwYmaDZ4h3SrcuUTdy
BsZPVANIbRFxzJa4YaseSH7UeLZZYdDhYn6y4WalMK/2stVTuFic/9hfRoVi3mz45bIick0A7SCn
OngxOLi+OYqXRp0nOC+cKHfyAUPjMA7wmiXSJ8NWqD7rBU/UvAefAsdDk6gykh9L+dZBn2kShWN1
BhyOP6zOVIP1jg8QF5c/+ADptFc8n/MEPgRx0I2OgHhNcaoY9r/hdHeFvArIEPwsnQr6ycBlWL5K
vLngrOeKARulM6BQGKPKUHVRoVOKE/8tnZ5w5XSF4LLCyQgkByAajp0OPpoGnliuEfwM7jfw0XSO
wyzLq5E7X7LaCqooHj6NwInU5Qo+2wjYd8VJk7GA4YWbqGuoZpSxgsOMg0upgxdNf9axIFgfKEcj
qOWSTdLLchZSLip0XSPgGFcbouMbGjf0d0gSA214yYLcAZgOvjzOvZNXi5q0GTygWnnjgifGO13R
pIMFgDDElaCPGsBDpkJfKKVAxO+EJwQ7FNDwPZ8g1Xv4OebdouDHWFZnrC74tJQFyUEh0OY+L8z4
fCafkHwZTohCX2h4Df0ahf47Dp4jxXUc12pFYUGyTghAe8Dr+UxDB7GWXSSkp33EY0GwT3k80noU
ZaGB150MrJ4ZcFjQ1GopbfL6Hfz6ljWKN3pCq454o6d/mRfg8yEHm8ipxChvAU23v0q1Ook7IqOe
AK7TW0Ht2wc8llVBExJ1K5fYAO2myGBC06nb7S+lk7tEpmmZh6IlMiiOnsXg/a4ZM5goQ9iLvoZv
ZtYNOsO2G3ycDBig+HabN/KzvT6KOCfvuMcn5IT+iHMavZQAp4AVlMj6u4rP944zVt0EuTTIE/tC
/fFpxVDQJdGqAQSNeijPO+TaMHZ0Dx8ne4Zl3JiCr2zv8x7K2l4/juNqCO1bPsXoOI6A66KqigG4
HrpPawi2W4WBahYa9n4jNZK1hSywIdtpyHZ6+nwb8sKGjKgh/+k17sqczSBzbZSVnsuHekZr8c0A
kCt87BUaZgKTVoEGfZdiEPpAdWweqSiKelDWzzkgVpaut7K49dpmuNYwEYqnzYtn0gyvz5uzkPGU
dgE/WMwy0idsJrjzdBc/NJ0KlNVSBstJmUkmEJsJRPfSpzzGw7NjHtOD2ymslvJhwKpS+UEEhRTo
VypGO0j2lp3gCPlSEEHKQjkcEBArIDxWQDYJC3WmhVa4h9IcobSUhWTczeoF3ok5ONMXmJFQZCya
SVrwt4Eifn9FyhrLSzXOA2tAtfoITY0UxHKAKcgcfXpl+UvjmsH8shyyAgYiEEGBGUbDEqmZpKJl
lJBWo/d4SpgCASGnnqMar/WDXDWIK+M53KhlpVE1GlVcrhg01Y6cvyMrygRkMlGMavOoGnRQLRlV
q+WT7tB4at0ZoeM52QxYfzlRW+Xc3OFB7aCAcrBuNNUf46eWxbCNC61td7jf5CQDSsNykjeSQlFa
WuoJixF9FtWcLE5Pn33fDBEPvK5tXaUkMHhySH8ZN7duBiPacZqdolEu0DXkNykgDOyG0XVccz1k
nMEKTlJ0tTqIlFkknVwjPL/yhhfsMNHgPuZnEvn0Cm8SRAoEmqwiAgJK/MKXNXyL5Wfg8dUl+5V6
XjwDPVHOs2qIAiNrIn0mS0+sd/IBHlO7MQEmkXWybw8FbUtp2lECUIMhtfgZZHBC4U6XCUEGFXYd
5VOJeXQ9LF05H+ZkM2J9sYBaaObbXX5gwhEFdUnv4ecuyOKD8XPr+RChAsS+RbJOvSAbzS5GjBHA
rmR0jHIIuoEF2hXUYNozDMeACVOjEAi0BlogBoaxCURcA4G6QLxPbe7ERIw5vlraMrcMyWCtABXW
DqZ/loCfNIM2FP0pnQEEGQNRWTXMCxVrtGGEHQPBWKcPJHKr5nyBMGggyhjGA51k5YApehJpuVZy
qyKNan+eMOE4PlaZaDSnFtlbW6Rt7a/DVJc0qJKc1es0/43HshU8wM8mX0foLnB9KhKodoGebQ/c
VwK3D0fliKWB2djYoUx0KrbU/TluFu3IKHGcBKq7qRrdpDsWUTSndOtaHzeaOUr1RhQ7XKEGVIPm
ynGj8gTIHI2qRJ6n+GIotTi1tqDUIi9Pk5HpmuTrbFT6p9VFLlxzX2hZ0GsKFurxg9NqtBky5aYE
GskJKTmSrmaAHgwxFxHAafXQn3KsEdn+avzGfLxRimSMHbsCzFO95ksppNMUihJERQjPEYDLCYI6
AmeOgk6FvbySTZtwBI2EBoMrjdUSKMsE0Rs+Hbdfc4f299JuxFLIsxTF7LVurkeijaUcaCleWcpM
ltKjLcd3NyOLnuEmmrNYSiRepZ+S+6ZhgSKFoaikEqvq2b0+R9mVmtdQ5PIUX4y+gkLPWJYrM/XN
8HRV8ZYkYM4uCEPoJqvcPRXioqFIBcayGUI3pSBL2Sn2pYf4AbWBLWJAwD5Ltjio0rCQ1d7z0C0L
uk+13INoWq95twM1aLJN2y1SJ/KgmgPY6XwUHS7nbMbMrpRS2VOVGrFWgwlbIGYTVO1MDl7VeaJb
lg/QmJ6BkZmCEj/lO2gR7AjwO+oHBtpEvsNzpesSs4T+hEkJNE0LOtIiCSK6KQwdW+YgbglCtGR7
W4r3LZnclnhQ/6HUMweaGagG2zDcbKCrRCDjEKi4DvTGCHqXqrLpIzbWzJX5sIu2sr/2Y6/8B3Yr
zeYo+7aBhCl6U0PNs2qwVXE9CFy1xNoTDsK0X9XG55ZiWEebnWizE212os1OtNmJNjvRZifa7ESb
nWizE212os1OtNmJNjvRZifa7Px7bHa+vUvfTUIyRXugaA8U7YGiPVC0B4r2QNEeKNoDRXugaA8U
7YGiPVC0B4r2QNEeKNoDRXugH8ceaM1ysSX/+6GZkiIU88poa1VKxDzTVOqBOnHV44+TIJd5WV6z
8ylzTSjfgs+3lipgic0KcKkFBNgKjwiGtUXsNMtkkC2A3P4Y3Qw7EmsHCxBPFsyRvZLlADHN0l6o
BeTaAiW1tCeydogd66iAd1qDzgLW2AKkbFsGVmW4XapTLTkUAKzWDsYCwnwA37REX1phmQH6Wjto
9cXeBPBri+B5LUBhy3Bm0uGFWlp1jFIhvJ5sfy3ymuuVijAFdE74DVchW3q4x5vlIpEBkDI9kPWT
FSPceVBGUG4CIxkW8iwh8wGjE3Z5NW4Lz6ThvAwATXiKH3xwEM4VydftE/zIC5Dq1e7gZ3f8uSqu
WJEbJN26JH8PAlt1hVx4YSQjl/TvAZGhkf7YBuw+4RdU7vMRIBdhi10nnSM9ioGz8jlP8COstHz6
No4es2OkqYdCwcWsw2pjgXIF8P1BB17ei7y9dhRgvRyiArNCJWCXDAFxPfcVT6W0xhJ31JZ7Zabb
8fMUenEjtni4lurzgfsvrt1dD3cHvZt2aRpW11Gt7ylLe2JQngYDgYK3597oVSangt7p5+kHj7eL
smoGKUJlBsdrgz6PAobiIddY+3JIKKv2HX7obKentKEUhLQwbOu60WuX6oDwgwNtAobeoYjl2e3D
eOorxsxdpcydI+/qqDFxhWZ1VbXzoLy3esqzQHHJM8286vEdZSLDguMpEQgKmSCOvLThNHXKFqvW
Kxky3QdaBAQiU0Ebpq9gC5Uzsnyy49uttjDlKRbU6MDTHCJUPEVBLvB2S3nQEAkNhHgY+JdgJpkt
w4ngyDH114TxKDXzkcxIri7oTdpPtMYwbKDaDQQdUvaT13Yp56sjqetPNPmDIYIfE5VaU39oRTM0
NFCatCwofCfIb37NJq2s03KQYB1FY0PoVwaEAdtdo0YbhJ1zDnWjVgKaxpmzWyWgnNMqJ6qZK5jJ
MNc0mnW0Me0vpkRtKYYbbTMtAIw2jIK0SgyWfeB4jdG7VK5XgYNfwdDBw4go3K0tNEQOVXCxrFHo
wLATrHYLu9eyW4ZRqlmoxqNUzyeDXifTinRakQ3oZUvoVh/vdGTYSUbnnXYAP6UlHKJj7nQcOEGM
fgE7aXiFfhNrdMx1iByvUS2/UJmK4bcdF7wjfXYky076Tz690cjo/SU0WbCscRxXTyuKQKTkGp1u
8nR4jIy440bnuKM40jNHNZLjnHT8TkfovhoMNrw2kFYWli1V0wfPlwq5qDiQ1RBx3PCBjm/37C9Z
hpXm4hksW7zjqcCCfmnLmjHo11TVqDN4txqGOFqmyEqtBoMUz3c6/Qj2u+OrKqVN2j2kX4Z9ME5Z
UzbNCAbz2rk0cPH65bqG9TvZUqfTKuMpjJZqXCraXgDM91ABedXQQlfqobjtv0LiUiOMOPSqnkpb
NLyaDwGzoVz1SNJj2n2CYo738QHgmn0q4cgRFTx9iB/Eum9PcXSXD5EWwrwlFWXFcxxJMxEEvV2g
8j5+FEFBAb4Bpj2UppQ0PZG4/C1MiFJEm28PcCQv/x0/v+FnQ5omj4AqyLQIDp7CpiZVUxp5xBYu
WuIHxm7tC5wDxgO/FdPCoLHFA9JN9uFoQVfJvBgieTtCjhq1XMNke9Y4Nb3QU3oXMUd1tHD6ZFru
OJpw6Ls8VZFeL+aTx9O7StTugBXZfGi6pxWJGovoNwytUXiTjdCQ8Y4aUs8o4E4hVX2FfjA/RvAs
ggxsVz4Kju75Tq8fzmDo2hzHYOKW6lnPgoZH9wSBh55kkx2brOHd9S7HWOpasOabu31F4CcCPxH4
icBPBH4i8BOBnwj8ROAnAj8R+InATwR+IvATgZ8I/ETg59sAP2tmEjT/3w+fR9tDr02nOaFtx32r
m74nM+K5TRsaABsKi4Ymxobij+f26pvB38rThNHSclHnNuMTcaZct22u0mH1MIKEoXm0oeGyV7aV
1see4SF8MziEOX6NJv+z7AKZKc3gv+XUIJNeaJ7OZ1a7R99O00p1aws0rVTftUA7zKDNUJcQ7QNt
mLaHT7baDM8amnE67dSKFpl4oLq5abwldJyXHMxzGq26X3jeslCNB6Eia+PdXV5AH7PAl0ivCm1x
93je8V3obMedxdLAf86ecHd4ouE9Y0qaNtnIqUML9HFzdKcL+nXqGYc+c/p16DqZe7RWXYr1qoCO
KYJBpQgNJZtEGMJPCeEJjHmSHtD6lT504nCWrngCMFkKBCrdZzUdcjz9OMZePVWmto0B22/Arhaw
TQbsRQG7VsCeZrMLHAHXyv5gR4hrHYDX7BxHu/jZxM99NkJsd89QLT52eFm+jUognkiIG/In+HmK
H7Qnx8PzR+KNh1kS8se0861YKOivx/haGNCglr/c5Cz9k3rnu4IFQMaIhNAf035YBkGfy5BCgTGT
ekNi4HzlDj2E6K4XeAUWbV8Yb0R5SoEoUDjsTWbpGiOOTnDXsXTZtGGfsA4hrkAMKCjWpTI7IRbF
iUIzbsFgks8Ny3FDdsUg4TkVplRc1oKK3ZTX1CXJUTgIKrSQVQ4UMoJytGR/NaQAWmrac/BFWF9Y
DaZFPmMsAkN43hCV78Y1kDzqFuFI+tQ3NwhN+ZU0QNekhBd7gXmKEUA4k36E1GBZnZcAmtWi23gq
jkJE3F+y7yk7mJGYUhXqpdnNQscUs0KG0mO+VN9FDyWxC6cfg6UnsA0rvPYMRwKNn7MRCuoqSqmT
RAEwxb30lM4SHV3K3l6FZ9Y44hKO8IgKvUJ4hdqlwt0fctDIcgVljMhvBLKLukWrZ7Xnlig01f3G
8RTSKj7AT7n8MbqIJNJaULfwnL2huJkKeEROPMV7o5MVjQGV95gvhkofY0dzjjsxKEs/xxjdT1D8
fLBkh7jREm1sazE4F/0Cw+xJ9KGctvABegF7iaMj9kLBy0YgdFUmFOosPcdteHHtApWeU/lRoJsA
vJAXSGCOUp8ZCqQbntiVysh0XCZSL8CGQAxeE5fzHU5zkdPxBEujnxEUBQJZ7kDhRTk8T47KK0dF
Pkzd3IVjd7qFwVNE3c1LOqHmdIEj6NsSw24pC1tEcbF0v+wXLh0nxdfNQF9p7vFGqgxlB7AICBlE
x3Qi8zMQuxcEKKXuI9CjIxDLD4pRY06nBCA9MTFdu56YmPRPe8EvpetEO2asq7n6eRKat/T6agkw
W7qItVQDtFQetLXjFeqsUY+fr1ujVT9J9a6kB2bXp5YeHvrGQG8Zqw4ijH8YuLPKoJV0RilFQuHL
s5HbvOX3B/VOAQGtdVxJma22KhMFuihLDTYQA41qDS2ogeayBrEy0NmZ7XE7VPtlzSYuBntmoK6u
oag12G5qaMlrUDnz6/hBpeqt6vtsmnwFlJM1GCpRXNV3xE9FXHxrMGoGWvkaE7aWj4J2tQZtqjGn
xbnLQJtZ/87HGb4co2/khDyX+nzZmGpubAaKy3qT1Ri1GvywkS/AJm6gRBaFIGCXtn0vTxbfHHAP
Fvt+C/ylBSxkVdGvrl/ivgO4qgWUZSkntO0b/ID2Ak1qgVq17Ws8UlT057yTmnyZq8CT2vaS1fhs
Jyr31zg7cqWs6mIwpIDC2knH3+czQNQcJgylphZwlKXw1AJQ64iPhCjFsrfqsBfk5e94mTQNjIao
GlvSuBYcEnCtFphiC5DQUmxqiaZZt8ETdH/WoJiBRhOBVLWiUpRD+IpXyKsX39ZgJsIiERaJsEiE
RSIsEmGRCItEWCTCIhEWibBIhEUiLBJhkQiLRFhkbWCRNYwwY8U80gpHEth/QahpXwB9CW95XLHQ
siD3vMJ0eCOuEBIfLBUHDYaoDWJo1xdYI8msAkJ8gmnun+B5oQz2O/y85xP5IJkcVgo2nPPGmgXh
dPVWOXHKY0kk8o7H+moRas54Qr6Ku6H7ha8WlxDppzf4ecnbLAs5H0yXkbZhQXr2iscyBH/wOGUB
Kz9c8FGYuPaK3QH2BzJtSzeeNozRhsEGUis0wDrkXke+wkESdzBkdJCgHewXHewQW/FK0ohXkNod
7PTaQE5elhh9eRxE/TbIex7g58nQrHquXF5LZg4JBmBP2fpBXhBqBecfl0onIBA9eGsHft7B7tEB
J3DAPhzt/RxEOAeBroWDkUsZbyzQLUNiSAmZhRORo5FjG6R7EDueDChi/QO2cLCvbOmr1QY9rsYd
UKg9MpAMR6NQIw2lzaGjhaEB1mHwHoMhcjSxc7QBNDrAajUnI19wGMs7qKaUpX4UAotKfxZD8ETx
8xDBV6xb0ZUGo+2KwU8kUKAT4BUzwIBmuFLP4v2lsu3Sq8h+UepH0BcjaA1GoXT8XrDoaeCxNoQW
0cqSCqApc6QYfC3E+hnzz9EQ0pXyzHu8H5wrZquROaaWkGLAOgzlAW+TgZAZusnqRq6XZBUlBJdU
e0gG/jFfI9fDvlUsYUEQDOada7Tl7ATmItBBRGT5Qt71lKw4xehAL4xAQ3yv8pRy8ngHXEIN0SND
mdAwMl1fA0ELnqeuHRk+1+l8iIg83Bn4tkBZLfDpIr3BJ9SpB4Ono0CgJ4nMaPh8OrijGsJ1Dp6u
/WVEmgJb4RU6oBgeWBMoqwx3UZ4RB6JCb1bRnS3zvGfoQiIagcFBpVCYcRdl161+61RdTh2FAye5
NuCjagg0Os1wEeiIEubXnqRxV1smXZGGt9o2HQJ0RwGiIw4Z6twjdEPWHdx8HTxrHfxoDcMVO4pR
ppB33WHjtDel+Vh6hc5LOpRxFoDewpfZwe+Xn1bnQyfJTCy4O/mFyPqy6DzdACS6qn+GH1Arf0/O
SqBWf8jjVB4jDfR0w7B0PRDvGY/V7kFZPJapX/IizBCPzD9+jw8B7fePeaxPZ0RLcXvyR3wQutdj
ynt0vgct9SveNF5+WZ4MATIlyqtHkiJ/nzfkLGCX8eh0j43XAxT2mBX+IZ9l2TXaWLqAiH+f3+Cl
mARCfDwmsn/OmSARtelU4hH3Hcia89g4/QGfjXnjH/DZxD3V3l28hWSR+2tuGHWm7ixaoQvEM5ht
SsenVvjcrqZiQaLytkxDk77ksaRyeYtqccxg8o+WUefTP/igEVBb54kqN9NL3pnxSnnya74JTyof
8Zg9yEaejZ+cDk8ermz12TwlYWbT1/xgzxMlL7V8DbtJQsJDTjWQm/qH1+P3K+LhU0Q8TaWH3vEF
KQsVCxJd+D2PG75Z2y+XnhOME6cQxNyHTNlfxia3+gTtCuB4qTa65YmKNTrSgltxYPCwviBDesEL
CzY4YSFnV+l7r3WOTkcDIdxouuBUXuvJQfQ146mcK/3z6RtMCAx/yaQ/Al6XAB3LJ6xGm0r4CJUP
WI33lnSw8GNWdqxI2BRwMzAhTWBeBlEgl8hmBOak26cKeqB4YteCppePeQV1FOIkVCJBUXmX19MJ
xdOxJDAPjyj3y9/YR+m42YPXVQlNcvmM99HZRFxyygWPpQk77H22rWC0ZRmhkqmRRFtQ6mcqRKzT
T57Rjtum0oEvkb6l5Jty9qyYJ5S7fCAWZQkfsPJ3tkwG/g5v8+P3VNlgqBCya2c0rjZEJUOBxnMD
98rMBNofCP8VfvmqxiJ/mbAp0FiClgIPeIxva/UT2VBPGwpB6oWWt7RXCHKMYRP+E9KwgUzolScK
1PQFPlSNLtRqgk+QO9QMBZMgDD066Jv4DLVQkUXYamerRkrsITZwXq+nEmiMENSlxqX37qFMWs8c
4462GGKH4h7hB/mIHLNBO1o6qEmGTHOHyeo2eR5tcVgvbltsKQqaOHiGLXe0t5AV5rZ4rNYWtNiQ
2DFz+rU5LAD3u6hPronZZcmFZGVzDey3wHQJ2BL745QFVchqF6r9hFhDnPNYHn7KW0WF+5Lnmfzc
015CtGbYyi32h75aDBfeQfmDbCiAAmx2RY0QyEwGGCq7RLXkSgdElb3itZK1CdnSU0mTvsQPrT5C
wasxABnyJ0HOD5ByA8XTruPksvyFHAummh/jWEwqnvFqywLaIrnaJfcTs0Q950XoyvwIx2gpA89L
5YI2FRkLOQs1Cw0LJQsVCyMLlbpSN0VL2cQie2ivcVPVW81CwwLmPJK1BibgDkyu3RtmMCZ+0Bon
BXB8fQ3D5WMELLY7W67ELgNMWEASz0B9VaD9VdB06/kQhV0sqVqGl6IaBWhdvTf+eLVKskZOE+Kq
F9euq6/zxLUmhLZOdB7Q/GBxW1n6ToInCaPEm5NBf0D0F7ShJdtpQXKs+53VWC5Ce9xDVqPb3BOC
pRLjSDjjlnnz+GYVo/tLSiKugdcSg5X8wHa4RpICBLmmLyQ8RTDdEP01ioF7XlOwMBa96zIZNUdA
U6TAAuvrwK22iHzUIlaUA1XhM6oB2X0jCKKoKxAHyomYBBLjoLd2YOL5jLqYDG89PBQANYIdtUFA
XCT5gMWBA9VzIGV8wuCFD/7ZURZwIJotoigZuRkcqQO/4sCqOTA1DlyUw9owArOCWXM0c3GloKL4
WAg+DhyaA/PkwMe6UvAymEtIf5SCNgKeKgWi1IejJ8FzOrDFpgB8VOBaKPBMIaAHHgflnkNkNVMI
EkLEgUp3B12VKQTPWo76samuR/PoKhQso+2Ng8mPKX5lNQRb+O+bQiA3EdJhieMxzfyVyLVj/Xrd
NNWACIjJjT/m8Yh7buYDdOff8wLGSmhpsDJ2YO9uqQZxWvLV+lMeCwBwwmcJhPCOTwp8NiMzSGwL
/wePGz5KbkUyXY+14bEI/EtezcATGoXDMcCD0zdoTwhs8JrHkEGLDb5RvgqKLv9KxA2JetIOkp4h
UmApY0syk3YQpQ2Fa6uyL8VPZr9jVtWUeetSxr5pmXe8FXrFvq8GSZuYTksUoYQ5VAnTzhKsTYmI
CuUJhSqRDME5lOBvSrA9JUxiyj94LSTwEvZV5Rmr0eoSJnXY6ozatZawVS0vRs1ORqIlbJ0k5ywo
HK9KVFqS7LUARA1ULx4otQce6QFEe8GAEQLOICafBxbpJb2g4KcgfSbI7eAzJXsuAvN5gI8GtNIE
YcTlPrlB2gIahLB6XtLwCZlAIDt+VD7KL+rJlwtD6ghHuT05Lpld1CtLTiZdbH8ddZtz2l3Nh+Sk
ko/ILXip2EM/43lJP/OWfKOwvVCHCzAUqEAXzCFQ3goiGgUQ6f4YnCH2AJu9xxG4SJo/wpAsk9XF
blGGxObgjciLHo+uGgzwA60KA40JLaH3QKvCnqmzLDhycyVZtmT8YEXMetatpBGtWOJeybFVCzna
HrRaqMZP0wgeLVMN933N3KO0ABFcqMVkM0xu2qrGQHFGeUazN35JXo94jYpbslIiilOad1FUoa0q
yfnYQIwZ5iam+J00mSCxU9pVjlugdkDGXrO3alLd5PpxtmyAaDWY5GiwrZIkhHos+X5geFrDwKBe
Cvsr/Czhu5ZQi1UBNNCqNdAky45qdGC0G6jtN7QWkFBCRPscodE2PCIf4b4wamw05ojGHNGYIxpz
RGOOaMwRjTmiMUc05ojGHNGYIxpzRGOOaMwRjTmiMcc3MOb49i4utxRRJBqKREORaCgSDUWioUg0
FImGItFQJBqKREORaCgSDUWioUg0FImGItFQ5PsaiqxfYhprXqKLJAaN7D3WwarBwYTDSSQzCvlB
1s+Hocu6/b8c5q7VQnPtkmZ0ScuCTGZV12PYkKbWcddske61DQtWU3EuOeJK7rrle57IWSjGjSgU
JCtk2q6EW2r9+LpyxF611FoLmFz9R9URlsHaqA5hHNmUgERJmF5AFEli5S5lnovhT0YZpuDMpzRr
3eW4YQ13N0P0uX8XAXGbXbt2iPGEyEJGBvMVh7pmgat8JCdl8yQZUSRL8cjNWcNVYmmk42i15PQU
w7ehZa3EkQtH49cormvSwa4Hk6cVy51wwuqWBchSCGHWIrxcG1Y8W7NAGifBwcIpj8UEBlGVEKLP
UC/STShZxCX5VwL2/VzjNcKnlszKVwpD2p/SSUOLAVHRcoGZAqx08YLVomQ95DE4z+KEx5jRxSmP
wVAWaHlxxOqChZTzl9yyowLUciIL6l8NufA0+2LQa0renrGQ8DktCzr9mSFQ9NBe2WVOBa+8+qAZ
1QCdqtkdhVrO5qnOw/4m6k8cmVxLTZMj+2zJPjvyyNS9cmJ4RiJOmeytZSzilLBjyvi3KUN/ltQF
lWS6S+q5SuWfqQIrOaLyAmkLDNWMhCsuOaxUQ1A/iMBefatyXohp49y4ZwpViSD8lkfULS/qLUkP
iNBbHvHFDImtR6wyA6pqQGO9xERF4LCeExBm8BWP8b0OzJ8Ds+fe8OyY5Kc1Zbwwv3+tXrlZbpZh
viHHWDhh/oDHwMbmiPI7/x0/90g1geYBJ+mPwZzkCA08R+C2/JysnobrJSgnTy8Zi7CQ90tLM82x
2zOBLZE8kmrl+UbRoLubxpuhIywks6AAd1ackcgrXoenQ+iwBnhLrZsyN0xHcMoR2nJKe0qSNgF+
zkh5lEyN98KsGO1xRixZ/uAxVn9xzjWLFSqxsxlw0jOSsGecWs8gsnyJcnvevRvXqx4rzBE6Ov8D
P+ccEEZ1dMKPIFwcTEpNccGGleOnNskg2Er8SSeiFpDwOUJJ5xd8OLlqZfAc7Wqdbng1C4QBJQtu
KuPewjRUGpFr9NMWlqEt7GkNzQf6gag4NIEdzm2CZP2SH6h0mNhE0N1eC7BwgPWwAQ/lxcIArJR3
V1yhkHLmCHudX7IjhHvGssdYWfeWvSOx+d7wGKKdo6WrJ7DptBvJJ3r2p9fe044lLurIVHuuFk98
1XOaS9BvRv9u7cBteOK0EhM4JUCUcs9KuWel3I9Srpt0GE2nC8izMCYGufJercQuDIRaHbkM2WLL
McKbzYsBHyNj2MKQu4W1dj8lWhYaFgwLypPoQiYrYsiciJVFOqoha9zWrKl4V8IapR20xDRjDrJI
6xGJsCx4FpSj0Ws4ncUaqqXRFadMXyN8zitOcO7snpyC4x7txmS1GOiVp6WtZzjkikaINc2uAnl0
hQId7YAkoUOtzIYc66OUU8EVNbkboeE1zZREdVtrqwjS+f8/e/+iK8ltpOGir2Js4Jw9B9gaLybJ
CHIDg43K24zn4stc7BkfHAiy1LZkS2q5W7ItP/1ZZfJnLdU3tnVrqW0TgnplZd0iszL5B4MRX8gB
6YkJZfTyFR/3omYUi9IgLmo9sYgovDz5QMX4jnEQY5zrDsT3Nf7Kk+itMdoqydqXwcWYXTuKWKDa
tS+ZjryjkZmkRJ2jZQYdPZGnpbgcLUNqbW702t3o5oYfLXPnGHk6SjZa2yzg8RrpZ2XXes+D+jzs
qkV4EJk3PJUVi0/iYX1xfFcS167qiQct+e86lv33eoVCZ3I3/kvuSNJG1saijbYK99DbGTwNRT1a
ZE+CF5ce4OortS2glZoCpd+2P21tNf2meyTHaCAwmgEosrTKNWmu1zXWVLTRBs4Wh71oufOiLJb9
MrIANZAqzHUpzzWWP5342hjjtoGqF0/80uo+dvmka24K05C+WxjnOukE9RXf3+mbn54wH9HcbR/r
er/vj8WCVemJfqdN18VFY81lu2nFOURDBS2i1gv2ut204tDq3DmERauGh+azxzgTkppzyFGfzz6a
+s1xUMI//CGK1JPnnyuq1OWhLx/1FbCPnkTW4oiJr7mtYbVpwn7pk88+5+xzyPcVydPM76LZ00Vj
6UVD9EiwWzUvGxO0nlZ7uS1Z9JmatcmJfawoYHtHWy072jLW2RYqr5HA3hmk+YdL7wzyYfvzXHdN
u1l6FNjk6ReFTdON9H0ZuHDXnuZh9vqpXg21/rz9+Vn785aihp0b3aOMLdtibSUqpb+l72xw4h41
P/t9timcvu3v6CN3XdEdXtxp0Y3y3oL6m4L8F83nN4XwL4pdbXvnNSv+f4pGvj2JaOra3nT9r7rs
Ny1cb/KwVl32m9a9N7lRFwVYLvKe2pVwORsr/Gxg7VMlTBd5W73Mqi1vXM4fa3f3Vn6hx3Lc5Be1
NdQ20u3Wo3at+0WTor2tMO1tRWlvU9+1p4S2Vem95QXu1qti2vjVMz7bBbbbKO3od0ObAnWdyy3b
uknhfnmy1l3T6E+15h9/Zv/ymbXbxx1xeFWffGb/WG5vM/X90qdjzVVqs/g19xKJthia/0PR9rEm
KsfnIjfmIn9lNJkY7tNFrs1IHd7kYKyKzgy/TDnd/Qo8lpvHso2I/ni73Jvu59hv9Io+dfyk+x9d
ihUyOxTLPVos97AWabDmTLRllUNBuMOGm/Jm9zH6YpjWv9fzJ3rcvZC3+mNFQfp9dLQb8ui334Ny
sx6UCtZvr6bq12WrdiuN2EPXqig1Sx+0MakNVf2R+p5cx6gehPi9BL9ow7VRNVRJiRW1bOm/PdWj
rc5eX6Z2BJcx6rWxpg8Qa0O0r79sf1r3h7WFZEvzydb3nlyRedQibvuIRPTMnPbmvY11e/vE/ed6
UU/IefphNlb8LwpOXi6fXVCzW8BZ8c5tbzbv7yqirCFtDGAj/LxJ9rexNqOxbR8vHvHsMZKN18h9
uEW4x4io87+PgXCsg+g1I9LzZNnj8ZBGycZl6wPr9bWm17qeip95k312yLB0a5iiSduTWPn6dIHN
cry99qKZbF+sU/7APiLdKhbYNYfcNQncNWO8nL18VCkly93PZuXJN46XaKI9Fsj6j35q7fnUosL5
Uz2xPf3YWzVHu/l361lCT1d3bQQZd+tZP32s7zPrj/rMVitEn7Q/LYDU0xGWriAtONcWttee3mRd
Fz6VjX2popvUMmj66Caft9vmtz43mkWNZ+qTBaYe8rllBF1cGyrB6qsQ+ad6bNro6SeyK/d0n5/p
+R7Z+2+ZoXm4j69vv3ab1635TT2v+X6Xbi2drvl/9I2HNlSw9bQ8p/q4ENesqqhDDuQ61tLkSaqe
qV9b143PnEv7bLFPvXUeub5USxur5juqDdMFf4zCrVF4pQv+6LeUPvhpFdGqzkDHeK1Sg44hq1rx
PoZkfsbyEe5eNbavSinQS+ryJCNn1FCNjc+c1pGWdSi+tW636oQ25PXXlofh+CsmcyjytfqTWMRY
8Rgbijxsn/m88MTOPXzmmVsBxKiQUB3OCHiOFostJW4d6yqXp2ejjAD6uo0qCa12Kop9aGXuUMjs
0PLboQW5dRvBgZ4w1BKWLj0+0VKd9h67aOnqLe9uPXsWjq7tc7gPPbraqgrP/3lqt43qrCaXV9+h
hxF+r8emjd5QrK8Ht+yopqrHPhZf2uJP08Cjie350OPmPaW7BRIe+pk9tfRxyhlpucIPu9ZT+rt7
GLhN0R/+sX1Wi0Y0n1kHdfMBokIgPV29eTabiomvQfugPUqh6Q0LrU+zrxtqe7gr/Xkdja5675cP
JRhDorSa6uOuPvWz7LJtrOCMwMnoENV9mBbyWG7zo1uwf2jgEExFRHuZ2kjrUObIdQ1xLKiOFdFx
/yhgt4+1SM2Ut3HZyuHtVRpt/r1KH9cmu/13eFTZcXG15bx2OEfL0Dhahsb58L3255/0c/fcqt/K
+1SDweEjbabjG0fz1BepY/pyfdMIsKsbW8/AzO2uye/oheNr2nXYk6tL81TLe/rucf6Hzo3sBzWq
66nt6rp5Ub7/pbSl//L+N15jNHNmZs7MzJmZOTMzZ2bmzMycmZkzM3NmZs7MzJmZOTMzZ2bmzMyc
mZkzM3Nm/lzOzDdfB/V5QLwzuWYm18zkmplcM5NrZnLNTK6ZyTUzuWYm18zkmplcM5NrZnLNTK6Z
yTV/i8k13xKx5nsfvvPsd8/e2dfv/urZpx+99fG7b7734W/eev+9d67vfzUJP3/yK7/zd99//uGz
L0/aubZ5UhOny3mbgR9jjWWsdVS9RtkUPdPk/L1eodvoEHHokNd6jJWaiz5Fr9nH+k5vQ/Sp3pP1
Urmot0CdLsl9055DG58JTN6m58Mb1qrmrmX+XRkAuz1ZVina0J1ye5fWclb5SD3olXuAQOtSI1Xh
oiUrpTPsynS4box1Fq3FbMPi/rm/1RO6YXoThzyCuGNBRn7PSGLqSSDl+31E6mki5Ud6fqBaFfgb
GVHDSzvGp47VkSa1pbHkSlusLP+kZ9uoVxpbrojAdYxvkC/WAeul8fLKv+h5hTXGUkk/isvNVxlJ
KYdiDr3dzKW7Otc9Wns55fPscocO5ZfsghzePkevOcdCzdOw+o0dupbvfWb/ExftkP81XKqOpd87
tl7cxcanXRtgdtXVcAgbdogntjbkbP+uOmYSh40A61g6brTABrm97pZ/1HXK+mV53WintaOzrc99
9SUxPPmSnrHyk8+84IZ2/6UWmoo2Fm2YNhSjuYxVqaqNizZcG+0Ca7li6/medkdttBnQ+Ss9bmof
zqf2jXWc60rGRRvNOQt9KUprVD3GG8YCVNFG1YYQhR2U/PDj9o5/1G7XhhakLt3tasHth59o8cm6
95ZXbeza6K7Zf7c//9NXX/qSWuxHcY5UGgn4OZJtltuaTU/HSX3NSq9IbaVfSRpyndJY41FQq2VW
bG2xa2vpBae6ibVzHB6W5QYxPAS8PpbPvESRgqsjOIiFWcH6ixR+e/qmODzQ9UUPDvVIilYYL5rd
XORebftoBSjGuVDrl+2WtHCMlTVlg4zEhlOBnVPBmnOIj9JbL0oQOOSpHtLIQ3GWQ43sLmNjCN+u
jSGX4wOHxErWOkXwHBF0xeB17+66rfexGrw8USi50KvSDlalHfTl/TEQLbdV/ScE8scfojwJWuxS
vJ6LcbnlIfbRt/y7HmtO3hMCy5PxK4TbFLX8p16Xnr7g1qomaiFpdCgZ4ebhXfeUposc79ju6jEc
n0I+nopdn2O0799yW9U/x8irwW8fA+fx1MYYn4yPcusV+dZIPjrntGzVLfxTHxyeZpWEkDSUbuF7
Gj3a6vHDmxobDo0frhs8a1jQLdyj0Fn3vt0WmtexYQoYj8tfGWmHLpymGWv5se7NdtGWdiuWntH2
kW66z/x0nm7x3J6pq7Xry2fahjy+dvhnmzis2wC0CuB6Uf+Vi5q7jHc/gYaeyjs6de+MyOYpp3bc
y6f83XV4qqf2POhGG3vkdXam+nkLxp7j7XJID93UpxzoU7fnpiSeTU7mJrdzU4b7qujaiNjtchj7
bPWi3Bdll69tLWEft0O+Rfl6MnlrA7CfcuNOMbBve3o2zE/1WMtIpzy+U85gT1krLbaoriBr+UnP
jumxk6LYZPkfvbHdIrFd37HdB3HXndvuutjUNA73rHs/Wq+xPuKsbYl1FSZ11RLr2lD/635bE+oJ
UWfPhlXir9Zej9hv0LbUdvZM2hYWPp/rds3aaFoc/lmPkzbkH6zKXVl7PqxiD1rY3LSUui0jv0Re
gW7v6109ohwS5h6KSdL4JPk35ZGYyLia9W+NIX0pL3WzZt2Swv32RRV5OLvCSpftlkdxKr/v1P2x
KsPuVBjlHHvGLShlO8eGpPLU2oRaiSqde/ixyxONUkalEs5GaPwWR3dNn/qMtXezKbouinj2/drW
wP/PutKGy94EJ7Zk09jmNm1hft1vC4gja3yXf72PPUmvGRvyhld5w70koOWTXq+V9quHf9Fj+Z+d
7KuVn02LOFtLO9qeBkva+XqQF6LGvppIRnWyi8pRzbdAf8++y2NpQHj70TuvN8qJ/6bHvc/Kb3Qt
jvznMfy7riw5YadW8vr42OKaewtJ7lLhXbmZmrS3YWJvo8Pebti9DRJ7lBumPrmaqrchZo+6wHrc
fLmNxLs8pk2RgF25l5vSejeFO3YN5LsyNnc9tSlcuOVvjrpzbSq13NzAkTu+D8vHHmWNjltsVyxk
0y22j3MyTtdwMHW8m9yDfQiMghdqpalIz0Xt1LL8ZblG16d0z15GfES6dxmvGTe4vqsvXGQVceWx
zCUXK6tCJ49lq9uaWe993DrH7A14v3cEdu/O3DuYnD1VtOWUtIZae2sbvbYGNXvvNNIg+ntD+O+N
rL/3Nmc6zL0T0VuHm701BXg8lizl61j7+N963OaRsUVs4g+1u4tVax4QWxwh/kTPtrEntkl//JF2
q4tCr0mJaufYs1Hj/8iaPhq2pgLxB3pZO+dtJWXV73R9vdxcCfTP9LjLcYsNt7yK6+4h34rS9Lxa
3YTHuEzV5Gdt6yNrS9FY+4rN3tNSf6M3yfHul31fW9F1fIx1LiW3HBK8teVrH1pqW0/luG6KMqz6
jFVxiTZ0bKF3XfhUu8f43o6hZYQfyohZz1ve7KqgR/f1zt/rM+SWbPIoNgUvNkUpVm10E/f+ri38
QI8VgOm5w/tto2eKhO/rCcUpVgU9NoUwbiYMp0bxk75eE/5Vj+UYbfq4PhkPP2x//k27lSC8jsPq
5/2TJ0692+iK8NC6az20floPv+jy19tTPbQuVA/vaHdf8/qlHnfnq/VreHhX4tlrkFqvroefafep
jRFG6Ua03l4P72t36U5Zb7UUZc9yC850f03O3fU1Qa7cyBfSWl33J1tm7VVFL9qo2nBtmDZ6aVTr
pqaAjmK56vN+qsPx1StUE4lzLNKNcqmxkLdq8hi1MZbttGcfe5LylUYzik0RnbEWN3Kbe++J1oyr
dTM6a5sQKxnsIoHYFHzb22rn/tDdGqUz9vlcW7/c26rX3tbA9tj/tPE5/ps8giYizafbm0+3txF2
7x6gklh3DVbrchO8Q0tf21DHoXxDhMYe1VKogfpN8NYRbR+q1r605USurT3E3hIl19YzYu/tX1qm
6aq3HPEtjcUalE1tgEdlQe87Gt/UoKjwcj+gvvZso41rN/WyKGFuG8PoGD3HWFg0to1BTpFdDTUt
5Blau7TQfv7Q2iaGHj5tvdiCkvbXMbCduolGqHPX5d97pPy+X/c9gunqmNLboriWx4uu8aqVLjk1
l/KxLjmVTW+KivTpTKtWvKi50N7qFS/KYL6oZdBFeZAX9Q/ZW83iRb2GLsq7vSgxeI9KguoxgabP
e5Pli3Jw9ybre3MR9ibSl5HpqyzevfkGFzUK2eN/6nnFLlVpPUqy5Qs3j2Fv3sYef6Jnx2xPU7rh
Do+4xiGfa6yiHcPf1Hr6rlW04YPvmtIN53Q4sIccz2N8oOIjwwc/5K4e4ytk2CFf/lDQ81AYdLi0
h6aYN2d5vGZ86XhqfM4YDjTXPHUbn3JXR6n2qcW6c3ig410K1IwVxGOMHT1ookrxM+mlWkE85dlq
dfBWu3XIMV7Hd2u+vGpSdyqMdI4PlBN+ysFeh8XK8Vq1JLnJ017HMfR4z7s9HtTTBc/u7nZ3+5me
7ZPzlk7WUgN2VTHv5zt6WZ969iDTT9qf7nv/VC/qQatWfN/yC/ZevdSS9PdeMRnVPLu3poqtu14r
jTyi2nP3lb+ozt59/TA2J7a1HT1i83RbJ9MjalAes2TFFZqDGj/SN8vdPxWrPuWbj9XJHuGOb+tx
j0T8Wo+H79xn4i/1WOGyUwrQg9ixpRjFlvQUWxpTbJlFsS2qxQ/0lh6f+1SP+xShdVGLLRAWf6Vn
5bX326RlpKytjHTdleitirb2A+zy2rudPcdpjBitMv2w0S9bs8gGzlh7pbpGhrXlvxxjFNg/1GNN
N7Ts2pzs3M34QM+Og+jznJGGrhGi59uMUU6JC6vWgdZz1NQphnm5xf5FClGQaAQ0tZCznrfavE0B
y12ziX3sydoYcjy+1PQ54yuS9oynxts1F9rDN98BewYrZrBiBitmsGIGK2awYgYrZrBiBitmsGIG
K2awYgYrZrBiBitmsOJPBCteTy7LrJyZlTOzcmZWzszKmVk5MytnZuXMrJyZlTOzcmZWzszKmVk5
MytnZuXMrJz5IpUz3xLR5cWzl88/efH2s5ffve58960Xjx/88u9/+fLLvO3Fs4+ev/j4z7/5hnR5
+clHf/YtXyIf55t5y4iR/emT8cd+2D8Jtvl8wbk/9uO9wq/83367r//r/lwy1TEQ88N7UTDyGJkv
Gmgex8Jdk/hOoQxv6nET2PA/7c972t0n9W91unseH9RFvGUyhF9o96EXKizQ6ZvhWX98KKPiZlPP
BpHIh5+2P+/q+ab04W09XvQdChP03i/hZ3pCMYvehSL8XI8VYdh74KDxWR8+1kJu8yUefqvHQsf3
yfZDB6y1Afvh13pWTkmfIjx8oMc9UNFm/g+faHdzNR5etD8da913X9Mr5MDc9iRtZL1YQYpV8YtV
fcdWxThWzXNu6R5aoF6jNpTlscp96l+RhkyOcMYIgDxZ1j61odf0iVMWlzsLbpv79Py64dq4KA1k
0R59adO305XgsatFzz4QuYf2jJhI7bHYvoheldXRE0dq+7oGC71Idi7b8Kqea8V4rLVqnfJUkt85
7rd+1f1SV3bQz7vqTI4fourkjMPsGSibGgG0X/ryPQl/c0JLI5a2Xku7siV25b7tLUliV2beRZDb
XRkWexyM+Cerp+2pVc7C2Zch2wpjaxiztm4C+9nXSBs0vneDaE2M1nXMXdrMIP5eK1Kaw/f4tGD/
63kLWR7y6A45hEfQmdSM4FBixTEucuEIV7n9LTJz9m4CufvF14vhol/51EkdblX7VVtHqosImm1W
vNjoKLg/9Gybn+nkjlPZ5q0tnWXVMsquHke74Ie72lCtYyGox5Z6QKn7k21ysfdWdr01Xp9BtZjB
WrRueCrtpX/yfsNon4ru9rVBRc3Oh9a34kG86tslqinSbUNzpXVkZunW7q0ShifXWnddRNrc26Lz
RVjmva3d7m1t+HLeknJPhUnOsUce5Sm3cTiJ50i2UOjtHGdbK1LnuF9PLfGPRf/m5Pbg3Nmv6n7B
ivDYI3/911gV0vKxsWlDYapT3NH+1aMhiQ7h0EEddouI9VjeeQvhH2Phc9WGpPPoGv0rPc6dPn7p
+vH7Pjt2TWw6tH/8rEEZgKui3avG61W4zsv4UYM2xhRDTQa2kUnTJ0g/6ie359poanDpw2XrybW3
jlQXkV8vvZXUyPt+UK5PnwfEn+uxIka7Jss9TOr6nft6qNKlduUG7i36cIjEvu5PFr/lDh2aQx6K
SdwE6ZSJTW7WMetvo0m/0VtzmT2+K/N6MtMv9LgNA67pUV/Q7XGl0UmyLxLrEm2Ts3Hl9sByS/da
mxSsqxLn+kqOKK/rOq5MhVRPxW96dD60cGNojTNCD6c2kGv4ta6lcQkpu3RcO9uDrh0lVI4OpyNF
rUfbwmik9FsdTF9GbbDsdZzm0Yijak/RRtWp78sYrSPh2rpstQ/e1tb4tH3spbSVmbX18irqLFNa
0t3autaU3/Wreh+LH+qqMdpxbLryd62U7Ir67FopWcdqirpz7AoI9cu2qPPrZXR+vXXwuIyba+9B
o6bpl9Yn8rL/k3b351tCUVsL21ue8d7yjC+t9eTe0o0vrWnc3rKMd62J7W0xbF/7a5um9VG2JSbv
bUVubxHzS+/q1trt7QrCXVrbqUvrNrW3lbZLayO4K8h+ab2rLn3Ifhg3thZxRiaCeqfpyom/1GMF
I7putgygizrR7i2rZ28ZQXv8UB+s/MI+Qqw9htHG/ZY4dBH993LesjJGJsSuuHW/O/37ulvbTd7j
ZN7uVm+f722N3tup93Y2vJ0i/5E+QLGRvn7v7b73H2i3tK8v9Hs78/497Vb8ZeTv9pDf2pIR1h9o
dxuG114Gcovx9QSItfk1679ot0Dy3Xtcf6jHLey4tohVG6Cuu5t967/qsXLu1EZK8aBWU7C3bPld
ySX7+VKGtXGxt6HqAWTdt48bPZQ2ElZaCcX1FYc2Nr2i72nJXKV/4qd6mYJz/W47xxv76Pp7fWPQ
Rh9W2zG2y2htJ+JQk+dDTZ4P9S1d2zk/xKRe13/R44s2qjbar9huyKNJ29ENHevnXUL2G0b9oryv
i/y/boPE8Dr0H98cgCb8wx9saCdk5KKNadIhh/+UT9p7FWqp6FCi4aGkwEPZ4MfIfhwlR8p4XLXA
dCiD8Bg5hiMPULmpW/hYQq+ocHdqQ/OIQ1OI0EQlNKUJbb4eFGE+lMjQ56jhhR53b+tTPVb84VBg
YNP6xaYVDTXJHe3qbhkJmyY725ibH1LeJK9N6xerUgZ6HpJrUtyXQ2pz56umRzd5vUia+j3eSr7a
0PD4zT4OYmi1YsojsayPiOuTpenH+dNY1VW+6EWB4ktrSbivbc16bV7U2nJ3+uilNcWL4sSXsXT3
IHerj49R/T162sCqJTTdez/UJ0YdlLybfo5Tj3ZcVEBxudwUoacV+L9r6OhzBVXD9VYHoxRkzD26
l6xswLWd2osqGDYtbO2touey90T2F09OYwxltCbV+vJ5y6EYmQ59xbnl2+7enARv59d/rPOjhLiR
Vd5TL/w/9LiLWv9F2trk2j0GJS/35a2RwTEyC0dmaHmyp/8G/9FOUhsWm+Id3oe8NjY2CT2aoB7K
Nj6UO3yM5HMtHK/nbTXxVNDgVGCxh5IeRnfHW4rPpqDZpjBa726mtZfrBaGCpR4989G98VRgQdOY
XncidbleX7ue6g5/P5Hdt9ust4Ruza4vrZn15d/0pmbMpd2Cl39tXqtSclZlMa2fydGMKYzUh7UP
K5fyZEPv7tf+2p3hT7V710Ec2tOdtl/qYh1urWqd1ONJTYK0+Lep2u8ywmNazd32W/rRWDjtM1yV
Bl4UuNjGqp1KAbdRNagF44tCSJexkKaKv4um1RfNfS6KLl20PLntt658PcyqusCLROuiGeLl8uTW
VaTtGGdDYaUxhBz6QHXMuuVX9YSOvbvfau3XOwK2VdK9RZb3Fpe+7GMK0LoetFzHyz4c8hZf2bsP
L6eqRbEvLZtxl+JcWq7ipSUiXvY+U3/eX6TfvjloLdB9fe+TjKaYb0NTK3DdpWIXpRnsLdJ0fWef
6vdA5qd6fZ+TfKCXRT3x9NLOcTQIbsWMewuWX/Y+Q2mlSHuPM/SpSIsqtKLbvYX4dzlqF+U77C16
snXpkDd2URrN3oohdk20d8V+dpVR7vLpdoWRdjl3eyvH2BU42hW4v5wjVqZuWfGWPH6ML+hf+bFe
obnJSAzo+QCtmuKiLLvLecvM6bGxeEuBO5V+o1KvFxqcZGQf4Fsc96L8oV2BsF1RlYvyGfZWYLKr
NnRXteiuBYXL6LCqvqy7ljN21aHu8p53RTMuSiC8nCPW+ludpfEFsqWnO7cqkH7p2MitffRv+kXp
ip97u1X8065+p+I0/btcOQ9KAVi1OL57i4d7u2G8Hb63Kh9/rycH9KCUt9mPv9BHKHrVfwBv16b/
Ul86wkV9YthGA/8fvU3zw/7berv7/G3t7hNUNafvAX9vgQBvaU7ebiT/lV6kMtFTTkIPXXuTfW9L
DN56YXqbgPWUANfN5O1m8w/0EX0C224D787Jx09+H1/CrbKgR81bj8LHC9KUpSLfVPfeqgtlvdES
eqyt9TLcpZJ762a4rwpAdUVuAb1VuR6yZrTq21tE6XpXjK/UpLbn80tl9xZnuj7uwfyPuu+zjRfK
Jewe69p+8fX32q0skh5AXHVL9sGh9WncWz/ZfW0XXWs5u69v6b0PelM/E7/U42HG+BoFDkayijLc
RixSE2m1ld5b3G1vTXFXlVNfT5CWkS7a07kXrUPumkcMRvf52i6E9QN9lOISvWpyHSl5cr7X3+ml
emIXo2PwN3bVAGo60kSm9eLd5S3trZ3v1Up78svfmpddn+lH9ObTF4zs632UvCoItZb/0hPb07fE
p2+59I01y0Wuekq+8j72KPrQJwijO5XKcFclie/nbZrRE5gVQ7u+/UHfpbdfhhmL3jUs1AcqX0nF
Ckp13RUvu36g4iebbN5l6u3FsucYT43D0bfvY4606meUPas+eR2TCr14lYU9Dfu8xXN2RYTW5elP
UUcBk5qCXd/98NUYNjPtYqZdzLSLmXYx0y5m2sVMu5hpFzPtYqZdzLSLmXYx0y5m2sVMu/hbTrv4
5quXXgWmd6Z0zJSOmdIxUzpmSsdM6ZgpHTOlY6Z0zJSOmdIxUzpmSsdM6ZgpHTOl47VM6fiWwDGE
e3zw1u9evvf7Z9f3v5qwzZ/8yu/83feff/jsVQBvvmzh0CvH3HxNUJYnJ/FLnr7PAf75Gpk1X8je
P9WRq2iUH2Q+LRlc77CkO1Zcusu4LTXYHWO0GgOZbuZ1fLI+cAxbtw/UELzp229DkgaXdQzTI0it
sWmMAWNM2UfEosd3RB2Lgo1FtT+SJ37d05eh/7s/HuvRPU6/jo5TWuZe1Yqqxy2j0sLkM1/3BO3R
U+t4cdGGwtqrotWr4tur7O0otChccRQaWbkDawvqHEpkur50leHju8c36YR0Ilx3PVr8bl1vDVpW
Gbn2yPxPdJJ7NOjH+qAeGWt9YJpHs2omcn1eB7AqEr/q1Gx6Teetrj/TIXbj3tQLx6nTZ2yys5Op
m6d8NMf0aE7s0bzqo/n0q8INq9YQj+YCH671kr5W0Pzkoznjh2YQR/Obj+bKH21GcDTX+mjRoaP5
50ebDRx9EjEIh23l6WiudVO19JAVY13328XeV5fllB8tcHm0mN7j7h7R1Tzj8B6aa/HMvoSmNdOj
zZFWrYauCmYcmkUd/q5e0c/A7/RFYz2kf+NP2p+WJNGmTkeLUR59DqYw0arY6OH/qsd95aRF21tM
82hzpqMt6R2a4R19qqRV4nXgodus52pbP0mtX0Kbmeis1sH5bquC6wBZ9/UfJVMd6xN3L4XhQq4a
wo5VyxY9B6Xfq311brg2561/2mpPP3JJT4Lo/SNbQ7J1rHq0X7HdhEeLnh+jMcZYSelAQQ2KR1/8
6nee/MqjR7VH7ly/mNqa2qGjaie/x3Rv4XW1fOjDttyzY3T46JH5cY32Nbq+8NbWHI6jfeyhk9yX
fo52GR/KRe2no6+tBLHP9z79PY722Ycaxp0K/vfkn6Md6fE97e4nrF1KWjC6Icz1C3Yz2uk7xCHv
werjv/S2pI0RoW7n/Whn8miX/SHy5KnQcQeRBiWNHOo/13HKx4/1uNvbfv5Dze7OYe9Y49AKTsdr
B7VrUyD8GrBWMnATyE0tNM8HrSw9CJqqWN5146LXaM863uX6nLH2Nd4uAPs69hzaEKRdaVPCLj8M
/vvof6dQ/YNIrQ9KlBJH8vqUMmM2vXgdS3BRG8qm3cdrhHi+LcGJ894U4xyHo65Jp/o6bVLHU907
TvVjOnU2TiWrnmoUtUkKt3hbndiVE7yNTEo109uGGTJ+G8uGRW8fG+M14wNHapna9I2VkJ5drm58
m/rzbU/a8m0i4q5CYK/q4bcq23hVe7+RxraNNDZlEg/E7ja+dNeGPnl7Mo1LMajdw3ZrDthv+Ova
p/KZT9l+jlWcTU+ZNnZtjLcrC/octisd+hyXxnj7oY2x8jpePL6r/ext0etqjdoV9sRX13e3FbCz
rYedbQXsbOthZxPATSGa65sWbTxoI2sjasP0rov2BK1b9aXgnmfdfp76jz0du18jVXmJlx9oMaNn
1b2rsGvRRosJCGC8jnBrD3rL41iVQ76W25R+VUBhOHid4+tKle2udXdU1//RQNWH/5/oh7mo851W
cg/lcW1aQ9q05LONlZ6xLLRqBaJqw7XRItB7X6Ttiy+/1LM6DepNJ3at7tb1QasDPa/uQSHyVfH2
kQi+jch/81sGoVdZugq3xNHpUVEfTUX2OFrdybvunSPlMu9xdOUb7fik3a3X5PogO3poStOOfcCM
W8vKtZGE195o0tUhpPefdJ0dV3in0YHXDhHWb3x9vmrDtZG0ocuoT/BcczZXPFHu3BrHxymA30O0
rlldhxm71uQbGH2N46NbyKvjluM/a7eizKfCo0oE1bxAudf7SBhY1dxhVaqLSiauexS+PMbnXLSh
4OzotXcoMLkqwroqC+wcodWoDYVj1/Fdw56qjXFDas58KEB4OwrNq283rSbhh+KCm+KL/VIvt4Dc
IQD4iGWOafmIXKot0uh8oOu+3CJ8hyb8Y55/jM8ZoQTN4dUGVD5g/H8d9a+OdPx5Qzifq7H6DOPM
MM4M48wwzgzjzDDODOPMMM4M48wwzgzjzDDODOPMMM4M48wwzmsTxvmWMrX+VLWbSkDWlml5HfQ0
1z41P+/paC0V8vpYh3bo0HpGY0tTvD7WNL0XuLWE1us7NN09NBPu2Xgtj/L6hN56aIZ/jICBogun
ggrjJB+KN/Q2bC1j9vpEt+x9vXV8ao+W/FyPFSc4epzgHX2i1ODQdP/QGdp1EIdqJDclB/YCO1cD
P9c0zMdsUhGVcUurtOLwUav5Kz0WXaC34vZbfWafLfkIBozJr4TMFXzxMfdUF8H9ZtZl2KfXXIY1
mmavMnTVd61jKq53DQtHiKZ36PQRP1C8yRWd8TGl1qi3PzFeE+c+Y/VbJarmbu/opa6Np7NhK8qf
P1Z1Yxyz3W5uP9P9Cu6X+oi7tWzlVRG+Y4SF+oXdL7ce5xnRp37V9XDQCGO12NLREqiPEZbrt0C7
EVfFDteRSavs1qNds49Xcp9OHXJE+pV16IuO5qgcLdJz/ELP9nnaR/Jf+nSujQBHO4ijnZCj3R/H
B3qvZmejDrFf4IfO1dEO62i+0vG+vqR/afupjnYKjnf1sZrj9jlR0CV7tHN3vKfdfXL7TB87Jqun
ToomXGOetWlSNuZ925jBabq3abrX43DHcz2xaG427rPhgOtTNk0+N00+R23sOiaEmmq2Wc31NdoY
6Ith1qYmr9uYOQ9DNQfexNbaNd3ax5RsTPY27dG86xgzQ836jjHnlIVj/naMaZtoPWPadgjodWi2
dmiqeYzXaKp5qPi3TwiTfpskw5IO+SnZa8zWNKPr3550nq03h2/22oB7tUOzgfbSrPEc07T2Qdap
WD9qf37Q/ny/98PtUK8W0Dut107+m+YwmgINPlif6Sn7+7qnaOOiCc8pbNTYc2hjEKV6feVP2yzi
Q00mNBtSNbTKvEzex8OtiGuTYz8KKvrVZv/Yv26gdHrH+f19fYbmTN1TjN/XJ8jj2+RCnvKVNo3e
29CpoYgqc90Eb+mFXybn9OFGNDnEJunVC4q1XPYPdDya0fTyj4fv6bFmGmLjDJCHEvW1eLI+tM69
om3JexnUs11ncdeUpHsVDw1g8fCv2l2fqExNqpRY4w91CtsQHv+rP+5DevxPPdbEQn12/11PRD3R
5wb/ocdjvjF+Js0XVk1X+upO/IEeq8Jp1cymr3xJrHcJ5i5XYZdYr/FHeun41U3XgeYUwnwMnscg
dmjWtuqI1gEL0RRwvZUYbepDfmoic463y6sfRRKnfO9T84VzOPOp3yGj4kS9x598jmb7Y6lvzKc2
LRlumm5s43O0snGOecf4ZK0UniqOGaUnY32ov6vVZR2pyXcabm33xNtqTlLQOSpeG8Uma57Duooq
dg6XvXu/rUpvFZvqlAt7yv3uVYKtguz6+HK7kvODL7c6IpECnusOl1O4qcH6Jq9uk6O2yVG7jQvy
IDctxNye0qrRJo92k1O4yc/b5AvePnl8qVy+rZ+bT5qP9FF3rlyrGf2trYjuaIVVq+rbjn6u9O7f
6VnTRtXndWetnbn+S7YiuKOd96P9gKtKrI6j7T5+LR+m7/6tHldttIM6XupxM/loX3I0247f6VkF
pvfhu8i/2eUkjDjyLs9kl3vUvfLjN3q8SKQVYD4UTj7kapyK9R7DexDZ75DT0GZYmwJFm2I9m4JL
p9gNp8hEV0WXeK+ifvUX2/ek2f3xv+hxs85aaNL+WayQrrn/rsdDnndtbNpon1jbJ9QW8awt/lk7
1uCH0qqmtfuHGg1H1GOMCFpd2OUI9ZblZQR42pJT/HG/tXaVhp4aAEc94ihEE9esv/hIbShJzRlN
7X5OmkhumoTtmoT18U5Vfatq5a7XT589fNp98H5lH7/XcejHPrUKcCrYvsm1Glg/nd3/bH/+o7kw
YoyVUTvfvbrL/lwnUmG5Lhk+IFCjkPTxKv7mMUAzMDIDIzMwMgMjMzAyAyMzMDIDIzMwMgMjMzAy
AyMzMDIDIzMwMgMjr0lg5JtPKblGT374g//4z+989+fPHj/yu2999N7TsqAX7739q/ef/f1Hn/4/
bz//5MOP/yH8vz94+Q+P7/mjmKKnn/LrTx6/Qn/f+NWzZx+99f57v3n2xq8/ef7xW900yzn+iXjQ
FzUtPJr2eaNLP/z043eff/gfb79476OPv1rv8GsvrQfJ/Kg66vnzLUvvUBbj8TAu9XHxD2luF3hL
kjtSqwlILRM8/ZOueWmMakxUeiMW3fUa37Sx6yrXJOUcUxJlxPa8Z/vXdk3/l0aUkRXa8zn/Vdd4
51X+uv150a/4njKnZOnL3hjIrU3H2pp6rL33R+P+r60FzNp7Cygmt7ZGAmtrALK21gVra5qxtq47
a2tdtMb/0c20dcBh7k6hSH3xp3pCjmT3duJ/6/GqV8jD7JKv5kdrmz+tpoS67pObMG+nSHWnksx6
xLB77avq1/KtedIup7JHHU2XzyDTCQuorLb1xhzc5Xb2/i8mL2ag8jrxWbO7VdOt1f5Rr9B79nHh
tsOwYavAdj3zv2V7Xi9cOZejLG+XL3hoYwDf9kVPKV1v8NAOZekNhtuunLxdU66etNuulKPNXY6W
I3r0CU5RN6h+cRXFKYuCmi359GjXztGmN0ebFx1tlnN9bb/5xsE1xyF1hP/vegVZl4/0/f64l2Gk
f9Pzwzvs2vUDvbAdSfoXPe5OspoM7CqP665cRzEO7OE6mgr8Vo9dG1EbbUhI/9xt2BVl3FX8tMvF
vD0lX/OQy7sPV1Wx0mOMOTq6XX5t/zX3W3r1MSbHQ6YVU+rXya7KxPUWE941k+7uwn6Lp45P7jfe
rpmGohLXjXFc4wPHU3rxIW/hkMO9q6pqDKH95xQx8hCr8lhH2rhifON0j19C0L9VtaeHeJnreXNR
dlUz7Yqy9jjxwGEKVHist/5D/WfSj30M+uf55Ch0fvYRSpXNnbsolOKqstRDbMn1vL1r13RgV81Q
n9gcuooPRfUP1TEd6vgXFGs+dDIPNeEJCqgft2qkbXzg+IqijXFaTHuqNtTGcR1mqBFkj9AfT2Ks
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
ri/+zluPhn36wfNPXv4f12/5zhuvqVV/WjK+9+E7z3737J19/e77jz/Pm89fvPPsxaOHfD3Tr2bA
/RNf+JX8x2/Wn/sT7tGfOMDXzzW+Gfvyk49exbd8Rbf4y57M/+Vyux3gK/nlbm/+8K0Pnr3x8u3n
Hz17+QpncH/8+/7abqP74/siv0X/0a+a8sF7L5+9usP7k1/5Ko7xGxwpvrZ7+Isf5dfjQfz2vY/f
fePx8fMP//7lJz977cMq/4u5fx339Cs7PX9Nt8u3eJK+0Fffju6jR9vf+PTxwbCi5dc++93jJzwK
6NfvtnzNhl5/iDcev/iNX3zy4a9eg5Hh85/a1+sielVH+5nf5zU95P/+t3/9p0e7/r3N354c1DvP
3n/r07//6NP/54OX/xAfHl/+R+y/+4DfffD+9XV9PvjGx+998Oz5Jx+/8dbPHkePZ+98Ozf057xP
/mLGktfohv5LuMT/Jsawr8+Pe939zNd1ze518J++ilf51+Vuf+Ep9/Of/fLZ2x9fv+vZm7969ukf
oijfRDjxj33v573CX3ko7Fu4Yr5c9OuPncm/oFHi1R3n1xYM+fJn+Svc19dlhT/c2I+6+8bbL56/
fPnG8xfv/eK9D9945/kHb733GsdHPrflf/Ohks99pl7d/fx0mfC6Z5jz3gcffPLxWz97/9nN1L8e
9+HrOfFfQzbD5zjlr/d114+jvU+OyKsdmv7kV77eZ+uJpnz07MM3FDJ4/PeTZ9/ICtQf+dq/toWo
P3KYr4Fr+VUdvi97YN/0cvWruN8+x7jy9fl8X+JEv27+1nS0Pv8pmnGVr+1Efdve5OvpWn0zMc3P
fP0vnj97+Rc8dfyz5s9h7QudrjnEvZKTNoe7r/9kvqK6iG80L/rrPjVflykvr6ldf4l68CcMn0rw
OU/Unz9F/0vl5a+ev3j21offffbJ22/86sX1z69evPHOsz+UXv7q5Ztvv5ntIbwRaqmvtlhqjrBf
+pcdh/KVf925Cv3t33UvXtkZ/MJmfIH67S92nX1dp+zN964hnW/5hA0jvsXT9Y1I31/Yrf9qT/uX
9gNen5vn7UdjX75ykf+id9MftepbPKGvQEX+slzy188P/4vJc3lVv8arzI75Vmyes4GveO6+pm9+
/UemGRX4X8/InLd92fPy5b7t5cfXsuT3fv7ea5hjfm/b3/Ldcn8uXr98iq46Twz90+f8W7m5vtBp
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
dLBCByt0sEIHK3SwQgcrdLBCByt0sEIHK3SwQgcrdLBCByt0sEIHK3SwQgcrdLBCByt0sEIH670O
xod7HXzcE7BnwZ6IPQl7MvYY9jj2FOyBzQE2B9gcYHOAzQE2B9gcYHOAzQE2B9i8wOYFNi+weYHN
C2xeYPMCmxfYvMDmBTZH2Bxhc4TNETZH2Bxhc4TNETZH2Bxhc4LNCTYn2Jxgc4LNCTYn2Jxgc4LN
CTZn2Jxhc4bNGTZn2Jxhc4aFGRZmWGiw0GChwUKDhQYLDRYazqrBZoPNBpsdNjtsdtjssNlhs8Nm
h80Omx02O2wusLnA5gKbC2wusLnA5gKbC2wusLnA5gqbK2yusLnCwgoLKyyssLDCQmhcgMYFaFyA
xgVoXIDGBWhcgMYFaFyAxgVoXIDGBWhcgMYFaFyAxgVoXIDGBWhcgMYFaFyAxgVoXIDGBWhcgMYF
aFyAxgVoXIDGBWhcgMYFaFyAxgVoXIDGBWhcgMYFaFyAxgVoXIDGBWhcgMYFaFyAxgVoXIDGBWhc
gMYFaFyAxgVoXIDGBWhcgMYFaFzIsBmqF6B6AaoXoHoBqhegegGqF6B6AaoXoHoBqhegegGqF6B6
AaoXoHoBqhegegGqF6B6AaoXoHoBqhegegGqF6B6AaoXoHoBqhegegGqF6B6AaoXoHoBqhegeqHC
ZuhggA4G6GCADgboYIAOLtDBBTq4QAcX6OACHVyggwt0cIEOLtDBBTq4QAcX6OACHVyggwt0cIEO
LtDBBTq4QAcX6OACHVyggwt0cIEOLtDBBTq4QAcX6ODyBx18bVAcsypyVkXOqshZFTmrImdV5KyK
nFWRsypyVkXOqshZFTmrImdV5KyKnFWRsypyVkXOqshZFTmrImdV5KyKnFWRsypyVkXOqsi/+arI
b73B0Ky7nHWXs+5y1l3OustZdznrLmfd5ay7nHWXs+5y1l3OustZdznrLmfd5ay7nHWXs+5y1l3O
ustZdznrLmfd5ay7nHWXs+7yb77u8ttat/wKjU8/euvjd0ef8NepI+tnDPtKPVn/ilqSfuak/G22
qP2Cp+DPVyA/3rsYXeCxLvBYF3isCzzWBR7rAo91gce6wGNd4LEu8FgXeKwLPNYFHusCj3WBx7rA
Y13gsS7wWBd4rAs81gUe6wKPdYHHusBjXeCxLvBYF3isCzzWBR7rAo91gce6wGNd4LEu8FgXeKwL
PNYFHusCj3WBx7rAY13gsS7wWBd4rAs81gUe6wKPdYHHusBjXeCxLvBYF3isCzzWBR7rAo91gce6
wGNd4LEu8FgXeKwLPNYFHusCj3WBx7rAY13gsS7wWBd4rAs81gUe6wKPNcJjjfBYIzzWCI81wmON
8FgjPNYIjzXCY43wWCM81giPNcJjjfBYIzzWCI81wmON8FgjPNYIjzXCY43wWCM81giPNcJjjfBY
IzzWCI81InIToYMROhihgxE6GKGDEToYoYMROhihgxE6GKGDEToYoYMROhihgxE6GKGDEToYoYMR
OhihgxE6GKGDEToYoYMROhihgxE6GKGDEToYoYMROhihgxE6GKGDEToYoYMROhihgxE6GKGDEToY
oYMROhihehGqF6F6EaoXoXoRqhehehGqF6F6EaoXoXoRqhehehGqF6F6EaoXoXoRqhehehGqF6F6
EaoXoXoRqhehehGql6B6CaqXoHoJqpegegmql6B6CaqXoHoJqpegegmql6B6CaqXoHoJqpegegmq
l6B6CaqXoHoJqpegegmql6B6CaqXoHpgS0WwpSLYUhFsqQi2VARbKoItFcGWimBLRbClIthSEWyp
CLZUBFsqgi0VwZaKYEtFsKUi2FIRbKkItlQEWyqCLRXBlopgS0WwpSLYUhFsqQi2VARbKoItFUGS
iiBJRZCkIkhSESSpCJJUBEkqgiQVQZKKIElFkKQiSFIRJKkIklQESSqCJBVBkoogSUWQpCJIUhEk
qQiSVARJKoIkFUGSiiBJRZCkIkhSESSpCJJUBEkqgiQVQZKKIElFkKQiSFIRJKkIklQESSqCJBVB
koogSUWQpCJIUhEkqQiSVARJKoIkFUGSiiBJRZCkIkhSESSpCJJUBEkqgiQVQZKKIElFkKQiSFIR
JKkIklQESSqCJBVBkoogSUWQpCJIUhEkqQiSVARJKoIkFUGSiiBJRZCkIkhSESSpCJJUBEkqgiQV
QZKKIElFkKQiSFIRJKkIklQESSqCJBVBkoogSUWQpCJIUhEkqQiSVARJKoIkFUGSiiBJRZCkIkhS
ESSpCJJUBEkqgiQVQZKKIElFkKQiSFIRJKkIklQESSqCJBVBkoogSUWQpCJIUhEkqQiSVARJKoIk
FUGSiiBJRZCkIkhSESSpCJJUBEkqgiQVQZKKIElFkKQiSFIRJKkIklQESSqCJBVBkoogSUWQpCJI
UhEkqQiSVARJKoIkFUGSiiBJRZCkIkhSESSpCJJUBEkqgiQVQZKKIElFkKQiSFIRJKkIklQESSqC
JBVBkoogSUWQpCJIUhEkqQiSVARJKoIkFUGSiiBJRZCkYiNJfa0rpJ+zpDgCWRWBrIpAVkUgqyKQ
VRHIqghkVQSyKgJZFYGsikBWRSCrIpBVEciqCGRVBLIqAlkVgayKQFZFIKsikFURyKoIZFUEsioC
WRWBrIpAVkUgqyKQVRHIqghkVQSyKgJZFYGsikBWRSCrIpBVEciqCGRVBLIqAlkVgayKQFZFIKsi
kFURyKoIZFUEsioCWRWBrIpAVkUgqyKQVRHIqghkVQSyKgJQFQGoigBURQCqIgBVEYCqCEBVBKAq
AlAVAaiKAFRFAKoiAFURgKoIQFUEoCoCUBUBqIoAVEUAqiIAVRGAqghAVQSgKgJQFQGoigBURQCq
IgBVEYCqCEBVBKAqAlAVAaiKAFRFAKoiAFURgKoIQFUEoCoCUBUBqIoAVEUAqiIAVRGAqghAVQSg
KgJQFQGoigBURQCqIgBVEYCqCEBVBKAqAlAVAaiKAFRFAKoiAFURgKoIQFUEoCoCUBUBqIoAVEUA
qiIAVRGAqghAVQSgKgJQFQGoigBURQCqIgBVEYCqCEBVBKAqAlAVAaiKAFRFAKoiAFURgKoIQFUE
oCoCUBUBqIoAVEUAqiIAVRGAqghAVQSgKgJQFQGoigBURQCqIgBVEYCqCEBVBKAqAlAVAaiKAFRF
AKoiAFURgKoIQFUEoCoCUBUBqIoAVEUAqiIAVRGAqghAVQSgKgJQFQGoigBURQCqIgBVEYCqCEBV
BKAqAlAVAaiKAFRFAKoiAFURgKoIQFUEoCoCUBUBqIoFOggQVAQIKgIEFQGCigBBRYCgIkBQESCo
CBBUBAgqAgQVAYKKAEFFgKAiQFARIKgIEFQECCoCBBUBgooAQUWAoCJAUBEgqAgQVAQIKgIEFQGC
igBBRYCgIkBQESCoCBBUBAgqAgQVAYKKAEFFgKAiQFARIKgIEFQECCoCBBUBgooAQUWAoCJAUBEg
qAgQVAQIKgIEFQGCigBBRYCgIkBQESCoCBBUBAgqAgQVAYKKAEFFgKAiQFARIKgIEFQECCoCBBUB
gooAQUWAoCJAUBEgqAgQVAQIKgIEFQGCigBBRYCgIkBQESCoCBBUBAgqAgQVAYKKAEFFgKAiQFAR
IKgIEFQECCoCBBUBgooAQUWAoCJAUBEgqAgQVAQIKgIEFQGCigBBRYCgIkBQESCoCBBUBAgqAgQV
AYKKAEFFgKAiQFARIKgIEFQECCoCBBUBgooAQUWAoCJAUBEgqAgQVAQIKgIEFQGCigBBRYCgIkBQ
ESCoCBBUBAgqAgQVAYKKAEFFgKAiQFARIKgIEFQECCoCBBUBgooAQUWAoCJAUBEgqAgQVAQIKgIE
FQGCigBBRYCgIkBQESCoCBBUBAgqAgQVAYKKAEFFgKAiQFARIKgIEFQECCoCBBUBgooAQUWAoCJA
UBEgqAgQVAQIKgIEFQGCigBBJYCgEkBQCSCoBBBUAggqAQSVAIJKAEElgKASQFAJIKgEEFQCCCoB
BJUAgkoAQSWAoBJAUAkgqAQQVAIIKgEElQCCSgBBJYCgEkBQCSCoBBBUAggqAQSVAIJKDQT1zfZl
nYuRczFyLkbOxci5GDkXI+di5FyMnIuRczFyLkbOxci5GDkXI+di5FyMnIuRczFyLkbOxci5GDkX
I+di5FyMnIuRczFyLkb+zSxGvrZ9WSfNddJcJ8110lwnzXXSXCfNddJcJ8110lwnzXXSXCfNddJc
J8110lwnzXXSXCfNddJcJ8110lwnzXXSXCfNddJcJ831b4bm+pfYl/XaPvS168kqo2Y/1rsT8jfa
i/XzH/6frzhODxFZEBFZEBFZEBFZEBFZEBFZEBFZEBFZEAlZEAmZGwk2J9icYHOCzQk2J9icYHOC
zRk2Z9icYXOGzRk2Z9icYXOGzRk2Z9hssNBgocFCg4UGCw0WGiw0WGiw0HFWHTY7bHbY7LDZYbPD
ZofNDpsdNhfYXGBzgc0FNhfYXGBzgc0FNhfYXGBzhc0VNlfYXGFzhc0VNlfYXGFzhc3IowvIowvI
owvIowvIowvIowvIowvIowvIowvIowvIowvIowvIowvIowvIowvIowvIowvIowvIowvIowvIowvI
owvIowvIowvIowvIowvIowvIowvIowvIowvIowvIowsRNkP1AlQvQPUCVC9A9QJUL0D1AlQvQPUC
VC9A9QJUL0D1AlQvQPUCVC9A9QJUL0D1AlQvQPUCVC9A9QJUL0D1AlQvQPUCVC8YbIYOBuhggA4G
6GCADgboYIAOBuhggA4G6GCADgboYIAOBuhggA4G6GCADgboYIAOBuhggA4G6GCADgboYIAOBuhg
gA4G6GCADgboYIAOBuhggA4G6GCADgboYIAOBuhggA4u0MEFOrhABxfo4AIdXKCDC3RwgQ4u0MEF
OrhABxfo4AIdXKCDC3RwgQ4u0MEFOrhABxfo4AIdXKCDC3RwgQ4u0MEFOrhABxfo4AIdRAZ2QgZ2
QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2
QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2
QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2
QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2
QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2
QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2
QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2
QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2QgZ2Qgb24x7YDB1ETnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZC
TnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZC
TnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZC
TnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZCTnZqOdnfFv54LkbOxci5GDkXI+di5FyMnIuR
czFyLkbOxci5GDkXI+di5FyMnIuRczFyLkbOxci5GDkXI+di5FyMnIuRczFyLkbOxci5GPlXvhj5
rZYR/3n0cQK0KgFalQCtSoBWJUCrEqBVCdCqBGhVArQqAVqVAK1KgFYlQKsSoFUJ0KoEaFUCtCoB
WpUArUqAViVAqxKgVQnQqgRoVQK06nEPbIY2A2OVgLFKwFglYKwSMFYJGKsEjFUCxioBY5WAsUrA
WCVgrBIwVgkYqwSMVQLGKgFjlYCxSsBYJWCsEjBWCRirBIxVAsYqAWOVgLFKwFglYKwSMFYJGKsE
jFUCxioBY5WAsUrAWCVgrBIwVgkYqwSMVQLGKgFjlYCxSsBYJWCsEjBWCRirBIxVAsYqAWOVgLFK
wFglYKwSMFYJGKsEjFUCxioBY5WAsUrAWCVgrBIwVgkYqwSMVQLGKgFjlYCxSsBYJWCsEjBWCRir
BIxVAsYqAWOVgLFKwFglYKwSMFYJGKsEjFUCxioBY5WAsUrAWCVgrBIwVgkYqwSMVQLGKgFjlYCx
SsBYJWCsEjBWCRirBIxVAsYqAWOVgLFKwFglYKwSMFYJGKsEjFUCxioBY5WAsUrAWCVgrBIwVgkY
qwSMVQLGKgFjlYCxSsBYJWCsEjBWCRirBIxVAsYqAWOVgLFKwFglYKwSMFYJGKsEjFUCxioBY5WA
sUrAWCVgrBIwVgkYqwSMVQLGKgFjlYCxSsBYJWCsEjBWCRirBIxVAsYqAWOVgLFKwFglYKwSMFYJ
GKsEjFUCxioBY5WAsUrAWCVgrBIwVgkYqwSMVQLGKgFjlYCxSsBYJWCsEjBWCRirBIxVAsYqAWOV
gLFKBh006KBBBw06aNBBgw4adNCggwYdNOigQQcNOmjQQYMOGnTQoIMGHTTooEEHDTpo0EGDDhp0
0KCDBh006KBBBw06aNBBgw4adNCggwYdNOigQQcNOmjQQYMOGnTQoIMGHTTooEEHDTpo0EGDDhp0
0KCDBh006KBBBw06aNBBgw4adNCggwYdNOigQQcNOmjQQYMOGnTQoIMGHTTooEEHDTpo0EGDDjp0
0KGDDh106KBDBx066NBBhw46dNChgw4ddOigQwcdOujQQYcOOnTQoYMOHXTooEMHHTro0EGHDjp0
0KGDDh106KBDBx066NBBhw46dNChgw4ddOigQwcdOujQQYcOOnTQoYMOHXTooEMHHTro0EGHDjp0
0KGDDh106KBDBx066NBBhw46dNChgw4ddOigQwcdOujQQYcOOnTQoYMOHXTooEMHHTro0EGHDjp0
0KGDDh106KBDBx066NBBhw46dNChgw4ddOigQwcdOujQQYcOOnTQoYMOHXTooEMHHTro0EGHDjp0
0KGDDh106GCBDhboYIEOFuhggQ4W6GCBDhboYIEOFuhggQ4W6GCBDhboYIEOFuhggQ4W6GCBDhbo
YIEOFuhggQ4W6GCBDhboYIEOFuhggQ4W6GCBDhboYPkWCijnYuRcjJyLkXMxci5GzsXIuRg5FyPn
YuRcjJyLkXMxci5GzsXIuRg5FyPnYuRcjJyLkXMxci5GzsXIuRg5FyPnYuRcjJyLkX8zi5F/iX1Y
Xzz/+Pnbz99//XqxPjXs8/Zj/Rzg2wL/pMA/KfBPCvyTAv+kwD8p8E8K/JMC/6TAPynwTwr8kwL/
pMA/KfBPCvyTAv+kwD8p8E8K/JMC/6TAPynwTwr8kwL/pMA/KfBPCvyTAv+kwD8p8E8K/JMC/6TA
PynwTwr8kwL/pMA/KfBPCvyTAv+kwD8p8E8K/JMC/6TAPynwTwr8kwL/pMA/KfBPCvyTAv+kwD8p
8E8K/JMC/6TAPynwTwr8kwL/pMA/KfBPCvyTAv+kwD8p8E8q/JMK/6TCP6nwTyr8kwr/pMI/qfBP
KvyTCv+kwj+p8E8q/JMK/6TCP6nwTyr8kwr/pMI/qfBPKvyTCv+kwj+p8E8q/JMK/6TCP6nwTyr8
kwr/pMI/qfBPKubpFTpYoYMVOlihgxU6WKGDFTpYoYMVOlihgxU6WKGDFTpYoYMVOlihgxU6WKGD
FTpYoYMVOlihgxU6WKGDFTpYoYMVOlihgxU6WKGDFTpYoYMVOlihgxU6WKGDFTpYoYMVOlihgxU6
WKGDFTpYoYMVOlihgxU6WKGDFTpYoYMVOlihgxU6WKGDFTpYoYMVOlihgxU6WKGDFTpYoYMVOlih
gxU6WKGD9V4H88O9Dj7uCdizYE/EnoQ9GXsMexx7CvbA5gCbA2wOsDnA5gCbA2wOsDnA5gCbA2xe
YPMCmxfYvMDmBTYvsHmBzQtsXmDzApsjbI6wOcLmCJsjbI6wOcLmCJsjbI6wOcHmBJsTbE6wOcHm
BJsTbE6wOcHmBJszbM6wOcPmDJszbM6wOcPmDJszbM6w2WCzwWaDzQabDTYbbDbYbLDZYLPBZofN
DpsdNjtsdtjssNlhs8Nmh80OmwtsLrC5wOYCmwtsLrC5wOYCmwtsLrC5wuYKmytsrrC5wuYKmyts
rrC5wmboIBqhZDRCyWiEktEIJaMRSkYjlIxGKBmNUDIaoWQ0QslohJLRCCWjEUpGI5SMRigZjVAy
GqFkNELJaISS0QgloxFKRiOUjEYoGY1QMhqhZDRCyWiEktEIJaMRSkYjlIxGKBmNUDIaoWQ0Qslo
hJLRCCWjEUpGI5SMRigZjVAyGqFkNELJaISS0QgloxFKRiOUjEYoGY1QMhqhZDRCyWiEktEIJaMR
SkYjlIxGKBmNUDIaoWQ0QslohJLRCCWjEUpGI5SMRigZjVAyGqFkNELJaISS0QgloxFKRiOUjEYo
GY1QMhqhZDRCyWiEktEIJaMRSkYjlIxGKBmNUDIaoWQ0QslohJLRCCWjEUpGI5SMRigZjVAyGqFk
NELJaISS0QgloxFKRiOUjEYoGY1QMhqhZDRCyWiEktEIJaMRSkYjlIxGKBmNUDIaoWQ0QslohJLR
CCWjEUpGI5SMRigZjVAyGqFkNELJaISS0QgloxFKRiOUjEYoGY1QMhqhZDRCyWiEktEIJaMRSkYj
lIxGKBmNUDIaoWQ0QslohJLRCCUvX38R6ecsIM3ouJLRcSWj40pGx5WMjisZHVcyOq5kdFzJ6LiS
0XElo+NKRseVjI4rGR1XMjquZHRcyei4ktFxJaPjSkbHlYyOKxkdVzI6rmR0XMnouJLRcSWj40pG
x5WMjisZHVcyOq5kdFzJ6LiS0XElo+NKRseVjI4rGR1XMjquZHRcyei4ktFxJaPjSkbHlYyOKxkd
VzI6rmR0XMnouJLRcSWj40pGx5WMjisZHVcyOq5kdFzJ6LiS0XElo+NKRseVjI4rGR1XMjquZHRc
yei4ktFxJaPjSkbHlYyOKxkdVzI6rmR0XMnouJLRcSWj40pGx5WMjisZHVcyOq5kdFzJ6LiS0XEl
o+NKRseVjI4rGR1XMjquZHRcyei4ktFxJaPjSkbHlYyOKxkdVzI6rmR0XMnouJLRcSWj40pGx5WM
jisZHVcyOq5kdFzJ6LiS0XElo+NKRseVjI4rGR1XMjquZHRcyei4ktFxJaPjSkbHlYyOKxkdVzI6
rmR0XMnouJLRcSWj40pGx5WMjisZHVcyOq5kdFzJ6LiS0XElo+NKRseVjI4rGR1XMjquZHRcyei4
ktFxJaPjSkbHlYyOKxkdVzI6rmR0XMnouJLRcSWj40pGx5WMjisZHVcyOq5kdFzJ6LiS0XElo+NK
RseVjI4rGR1XMjquZHRcyei4ktFxJaPjSkbHlYyOKxkdVzI6rmR0XMnouJLRcSWj40pGx5WMjisZ
HVcyOq5kdFzJ6LiS0XElo+NKRseVjI4rGR1XMjquZHRcyei4ktFxJaPjSkbHlYyOKxkdVzI6rmR0
XMnouJLRcSWj40pGx5WMjisZHVcyOq7kBB0EUCgDKJQBFMoACmUAhTKAQhlAoQygUAZQKAMolAEU
ygAKZQCFMoBCGUChDKBQBlAoAyiUARTKAAplAIUygEIZQKEMoFAGUCgDKJQBFMoACmUAhTKAQhlA
oQygUAZQKAMolAEUygAKZQCFMoBCGUChDKBQBlAoAyiUARTKAAplAIUygEIZQKEMoFAGUCgDKJQB
FMoACmUAhTKAQhlAoQygUAZQKAMolAEUygAKZQCFMoBCGUChDKBQBlAoAyiUARTKAAplAIUygEIZ
QKEMoFAGUCgDKJQBFMoACmUAhTKAQhlAoQygUAZQKAMolAEUygAKZQCFMoBCGUChDKBQBlAoAyiU
ARTKAAplAIUygEIZQKEMoFAGUCgDKJQBFMoACmUAhTKAQhlAoQygUAZQKAMolAEUygAKZQCFMoBC
GUChDKBQBlAoAyiUARTKAAplAIUygEIZQKEMoFAGUCgDKJQBFMoACmUAhTKAQhlAoQygUAZQKAMo
lAEUygAKZQCFMoBCGUChDKBQBlAoAyiUARTKAAplAIUygEIZQKEMoFAGUCgDKJQBFMoACmUAhTKA
QhlAoQygUAZQKAMolAEUygAKZQCFMoBCGUChDKBQBlAoAyiUARTKAAplAIUygEIZQKEMoFAGUCgD
KJQBFMoACmUAhTKAQhlAoQygUAZQKAMolAEUygAKZQCFMoBCGUChDKBQBlAoAyiUARTKAAplAIUy
gEIZQKEMoFAGUCgDKJQBFMoACmUAhTKAQhlAoWzfAs12VkXOqshZFTmrImdV5KyKnFWRsypyVkXO
qshZFTmrImdV5KyKnFWRsypyVkXOqshZFTmrImdV5KyKnFWRsypyVkXOqshZFfk3UxX5bdFsv0AX
zllEOYsoZxHlLKKcRZSziHIWUc4iyllEOYsoZxHlLKKcRZSziHIWUc4iyllEOYsoZxHlLKKcRZSz
iHIWUc4iyllEOYsoZxHlX3kR5bfahfPFs5fPP3nx9rOX373ufPetF48f//Lvf/ny1VR2/rFv+2On
4GtoxfklT8GLZx89f/HxN3sixnd+q6fjz1ffPl63uLPgrRm8NYO3ZvDWDN6awVszeGsGb83grRm8
NYO3ZvDWDN6awVszeGsGb83grRm8NYO3ZvDWDN6awVszeGsGb83grRm8NYO3ZvDWDN6awVszeGsG
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
gYNk4CAZOEgGDpKBg2TgIBk4SAYOkoGDZOAgGThIBg6SgYNk4CAZOEgGDpKBg2TgIBk4SAYOkoGD
ZOAgGThIBg6SgYNk4CAZOEgGDpKBg2TgIBk4SAYOkoGDZOAgGThIBg6SgYNk4CAZOEgGDpKBg2Tg
IBk4SAYOkoGDZOAgGThIBg6SgYNk4CAZOEgGDpKBg2TgIBk4SAYOkoGDZOAgGThIBg6SgYNk4CAZ
OEgGDpKBg2TgIBk4SAYOkoGDZOAgGThIBg6SgYNk4CAZOEgGDpKBg2TgIBk4SAYOkoGDZOAgGThI
Bg6SgYNk4CAZOEgGDpKBg2TgIBk4SAYOkoGDZOAgGThIBg6SgYNkjYP0tVZffom3/GHt8suVXb54
9v7zt975w1rnq6kh/cpmfefvvv/8w2dfjW08q0JnVeisCp1VobMqdFaFzqrQWRU6q0JnVeisCp1V
obMqdFaFzqrQWRU6q0JnVeisCp1VobMqdFaFzqrQWRU6q0JnVeisCv2bqQr9C+jJOutOZ93prDud
daez7nTWnc6601l3OutOZ93prDuddaez7nTWnc6601l3OutOZ93prDuddaez7nTWnc6601l3OutO
Z93prDv9K687nT1Zv+YmpE/KTmdH1i90Mr7KV7zx3s9fvPXBs9e0CPmpdd/iCf7zpc2PgwKGLbjC
Ca5wgiuc4AonuMIJrnCCK5zgCie4wgmucIIrnOAKJ7jCCa5wgiuc4AonuMIJrnCCK5zgCie4wgmu
cIIrnOAKJ7jCCa5wgiuc4AonuMIJrnCCK5zgCie4wgmucIIrnOAKJ7jCCa5wgiuc4AonuMIJrnCC
K5zgCie4wgmucIIrnOAKJ7jCCa5wgiuc4AonuMIJrnCCK5zgCie4wgmucIIrnOAKJ7jCCa5wgiuc
4ApnuMIZrnCGK5zhCme4whmucIYrnOEKZ7jCGa5whiuc4QpnuMIZrnCGK5zhCme4whmucIYrnOEK
Z7jCGa5whiuc4QpnuMIZrnCGK5zhCme4whmucIYrnOEKZ7jCGa5wRkgoQwczdDBDBzN0MEMHM3Qw
QwczdDBDBzN0MEMHM3QwQwczdDBDBzN0MEMHM3QwQwczdDBDBzN0MEMHM3QwQwczdDBDBzN0MEMH
M3QwQwczdDBDBzN0MEMHM3QwQwczdDBDBzN0MEMHM3QwQwczdDBDBzN0MEMHM3QwQwczdDBDBzN0
MEMHM3QwQwczdDBDBzN0MEMHM3QwQwczdDBDBzN0MEMHDTpo0EGDDhp00KCDBh006KBBBw06aNBB
gw4adNCggwYdNOigQQcNOmjQQYMOGnTQoIMGHTTooEEHDTpo0EGDDhp00KCDBh006KBBBw06CIyV
AWNlwFgZMFYGjJUBY2XAWBkwVgaMlQFjZcBYGTBWBoyVAWNlwFgZMFYGjJUBY2XAWBkwVgaMlQFj
ZcBYGTBWBoyVAWNlwFgZMFYGaJUBWmWAVhmgVQZolQFaZYBWGaBVBmiVAVplgFYZoFUGaJUBWmWA
VhmgVQZolQFaZYBWGaBVBmiVAVplgFYZoFUGaJUBWmWAVhmgVQZolQFaZYBWGaBVBmiVAVplgFYZ
oFUGaJUBWmWAVhmgVQZolQFaZYBWGaBVBmiVAVplgFYZoFUGaJUBWmWAVhmgVQZolQFaZYBWGaBV
BmiVAVplgFYZoFUGaJUBWmWAVhmgVQZolQFaZYBWGaBVBmiVAVplgFYZoFUGaJUBWmWAVhmgVQZo
lQFaZYBWGaBVBmiVAVplgFYZoFUGaJUBWmWAVhmgVQZolQFaZYBWGaBVBmiVAVplgFYZoFUGaJUB
WmWAVhmgVQZolQFaZYBWGaBVBmiVAVplgFYZoFUGaJUBWmWAVhmgVQZolQFaZYBWGaBVBmjV4x7Y
DB0ExsqAsTJgrAwYKwPGyoCxMmCsDBgrA8bKgLEyYKwMGCsDxsqAsTJgrAwYKwPGyoCxMmCsDBgr
A8bKgLEyYKwMGCsDxsqAsTJgrAwYKwPGyoCxMmCsDBgrA8bKgLEyYKwMGCsDxsqAsTJgrAwYKwPG
yoCxMmCsDBgrA8bKgLEyYKwMGCsDxsqAsTJgrAwYKwPGyoCxsoax+uoNbwG/MsCvDPArA/zKAL8y
wK8M8CsD/MoAvzLArwzwKwP8ygC/MsCvDPArA/zKAL8ywK8M8CsD/MoAvzLArwzwKwP8ygC/MsCv
DPArA/zKAL8ywK8M8CsD/MoAvzLArwzwKwP8ygC/MsCvDPArA/zKAL8ywK8M8CsD/MoAvzLArwzw
KwP8ygC/MsCvDPArA/zKAL8ywK8M8CsD/MoAvzLArwzwKwP8ygC/MsCvDPArA/zKAL8ywK8M8CsD
/MoAvzLArwzwKwP8ygC/MsCvDPArA/zKAL8ywK8M8CsD/MoAvzLArwzwKwP8ygC/MsCvDPArA/zK
AL8ywK8M8CsD/MoAvzLArwzwKwP8ygC/MsCvDPArA/zKAL8ywK8M8CsD/MoAvzLArwzwKwP8ygC/
MsCvDPArA/zKAL8ywK8M8CsD/MoAvzLArwzwKwP8ygC/MsCvDPArA/zKAL8ywK8M8CsD/MoAvzLA
rwzwKwP8ygC/MsCvDPArA/zKAL8ywK8M8CsD/MoAvzLArwzwKwP8ygC/MsCvDPArA/zKAL8ywK8M
8CsD/MoAvzLArwzwKwP8ygC/MsCvDPArA/zKAL8ywK8M8CsD/MoBv3LArxzwKwf8ygG/csCvHPAr
B/zKAb9ywK8c8CsH/MoBv3LArxzwKwf8ygG/csCvHPArB/zKAb9ywK8c8CsH/MoBv3LArxzwKwf8
ygG/csCvHPArB/zKAb/yhwibI2yOsDnC5gibI2yOsDnB5gSbE2xOsDnB5gSbE2xOsDnB5gSbM2zO
sDnD5gybM2zOsDnD5gybM2zOsNlgs8Fmg80Gmw02G2w22Gyw2WCzwWaHzQ6bHTY7bHbY7LDZYbPD
ZofNDpsLbC6wucDmApsLbC6wucDmApsLbC6wucLmCpsrbK6wucLmCpsrbK6wucJm6CAgUw7IlAMy
5YBMOSBTDsiUAzLlgEw5IFMOyJQDMuWATDkgUw7IlAMy5YBMOSBTDsiUAzLlgEw5IFMOyJQDMuWA
TDkgU497YDN0ENgpB3bKgZ1yYKcc2CkHdsqBnXJgpxzYKQd2yoGdcmCnHNgpB3bKgZ1yYKcc2CkH
dsqBnXJgpxzYKQd2yoGdcmCnHNgpB3bKgZ1yYKcc2CkHdsqBnXJgpxzYKQd2yoGdcmCnHNgpB3bK
gZ1yYKcc2CkHdsqBnXJgpxzYKQd2yoGdcmCnHNgpB3bKgZ1yYKcc2CkHdsqBnXJgpxzYKQd2yoGd
cmCnHNgpB3bKgZ1yYKcc2CkHdsqBnXJgpxzYKQd2yoGdcmCnHNgpB3bKgZ1yYKcc2CkHdsqBnXJg
pxzYKQd2yoGdcmCnHNgpB3bKgZ1yYKcc2CkHdsqBnXJgpxzYKQd2yoGdcmCnHNgpB3bKgZ1yYKcc
2CkHdsqBnXJgpxzYKQd2yoGdcmCnfPkzq4rfTMPbL9DwdVZFzqrIWRU5qyJnVeSsipxVkbMqclZF
zqrIWRU5qyJnVeSsipxVkbMqclZFzqrIWRU5qyJnVeSsipxVkbMqclZFzqrIWRX5V14V+ZfQ8HXW
Xc66y1l3OesuZ93lrLucdZez7nLWXc66y1l3OesuZ93lrLucdZez7nLWXc66y1l3OesuZ93lrLuc
dZez7nLWXc66y1l3+dddd/mtNnydLT6/js+f53me57+t8/zna7QfRzeMv/DpF/j0C3z6BT79Ap9+
gU+/wKdf4NMv8OkX+PQLfPoFPv0Cn36BT7/Ap1/g0y/w6Rf49At8+gU+/QKffoFPv8CnX+DTL/Dp
F/j0C3z6BT79Ap9+gU+/wKdf4NMv8OkX+PQLfPoFPv0Cn36BT7/Ap1/g0y/w6Rf49At8+gU+/QKf
foFPv8CnX+DTL/DpF/j0C3z6BT79Ap9+gU+/wKdf4NMv8OkX+PQLfPoFPv0Cn36BT7/Ap4/w6SN8
+gifPsKnj/DpI3z6CJ8+wqeP8OkjfPoInz7Cp4/w6SN8+gifPsKnj/DpI3z6CJ8+wqeP8OkjfPoI
nz7Cp4/w6SN8+gifPsKnj/DpI3z6CJ8+wqeP8OkjfPoInz4ithWhgxE6GKGDEToYoYMROhihgxE6
GKGDEToYoYMROhihgxE6GKGDEToYoYMROhihgxE6GKGDEToYoYMROhihgxE6GKGDEToYoYMROhih
gxE6GKGDEToYoYMROhihgxE6GKGDEToYoYMROhihgxE6GKGDEToYoYMROhihgxE6GKGDEToYoYMR
OhihgxE6GKGDEToYoYMROhihgxE6GKGDETqYoIMJOpiggwk6mKCDCTqYoIMJOpiggwk6mKCDCTqY
oIMJOpiggwk6mKCDCTqYoIMJOpiggwk6mKCDCTqYoIMJOpiggwk6mKCDCTqYoIMJOpiggwk6mKCD
IHQ5CF0OQpeD0OUgdDkIXQ5Cl4PQ5SB0OQhdDkKXg9DlIHQ5CF0OQpeD0OUgdDkIXQ5Cl4PQ5SB0
OQhdDkKXg9DlIHQ5CF0OQpeD0OUgdDkIXQ5Cl4PQ5SB0OQhdDkKXg9DlIHQ5CF0OQpeD0OUgdDkI
XQ5Cl4PQ5SB0OQhdDkKXg9DlIHQ5CF0OQpeD0OUgdDkIXQ5Cl4PQ5SB0OQhdDkKXg9DlIHQ5CF0O
QpeD0OUgdDkIXQ5Cl4PQ5SB0OQhdDkKXg9DlIHQ5CF0OQpeD0OUgdDkIXQ5Cl4PQ5SB0OQhdDkKX
g9DlIHQ5CF0OQpeD0OUgdDkIXQ5Cl4PQ5SB0OQhdDkKXg9DlIHQ5CF0OQpeD0OUgdDkIXQ5Cl4PQ
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
eaeAvFNA3ikg7xSQdwrIOwXknQLyTgF5p4C8U0DeKSDvFJB3Csg7BeSdAvJOAXmngLxTQN4pIO8U
kHcKyDsF5J0C8k4BeaeAvFNA3ikg7xSQdwrIOwXknQLyTgF5p4C8U0DeKSDvFJB3Csg7BeSdAvLO
4x7YDB0Ei6eAxVPA4ilg8RSweApYPAUsngIWTwGLp4DFUxqL59vudfoFenDOqshZFTmrImdV5KyK
nFWRsypyVkXOqshZFTmrImdV5KyKnFWRsypyVkXOqshZFTmrImdV5KyKnFWRsypyVkXOqshZFTmr
Iv/KqyL/AnpwzrrLWXc56y5n3eWsu5x1l7PuctZdzrrLWXc56y5n3eWsu5x1l7PuctZdzrrLWXc5
6y5n3eWsu5x1l7PuctZdzrrLWXc56y7/yusuv9UenC+evXz+yYu3n7387nXnu2+9ePz4l3//y5df
5m0vnn30/MXHf/LN33Al6Z8284+d+K/e//PzrRf/sXP/Ldn1FXqfvnz21ou3333tWrI+Metr7Mha
4KsWeKYFnmmBH1rghxb4oQV+aIEfWuCHFvihBX5oybQQ4xz80AI/tMAPLfBDC/zQAj+0wA8t8EML
/NACP7TADy3wQwv80AI/tMAPLfBDC/zQAj+0wA8t8EML/NACP7TADy3wQwv80AI/tMAPLfBDC/zQ
Aj+0wA8t8EML/NACP7TADy3wQwv80AI/tMAPLfBDK/zQCj+0wg+t8EMr/NAKP7TCD63wQyv80Ao/
tMIPrfBDK/zQCj+0wg+t8EMr/NAKP7TCD63wQyv80Ao/tMIPrfBDK/zQCj+0wg+t8EMr/NAKP7TC
D63wQyv80Ao/tMIPrfBDK/zQCj+0wg+t8EMr/NAKP7TCD63wQyviMRUaVxGPqVC9CtWriMdU6GCF
DlboYIUOVuhghQ5W6GCFDlboYIUOVuhghQ5W6GCFDlboYIUOVuhghQ5W6GCFDlboYIUOVuhghQ5W
6GCFDlboYIUOVuhghQ5W6GCFDlboYIUOVuhghQ5W6GCFDlboYIUOVuhghQ5W6GCFDlboYIUOVuhg
hQ5W6GC918FHGXzAnoA9C/ZE7EnYk7HHsMexp2APbA6wOcDmAJsDLAywMMDCgG9f8O0Lvn3Bty84
YwvsWWDPAnsWnLEFZ2yBzRE2R9gcYXOEzRE2R9gcYXOEzRE2R9icYHOCzQk2J9icYHOCzQk2J9ic
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
1l3OustZdznrLmfd5ay7nHWXs+7yr7zucnZk/WY7sn7tPU+fNP78Cq1YX1Gj2M9r3BdvfPri2fvP
33rnzXeev/3JB88+/PjN5x89+/DN37547+Nnr0tr1j9j4dfXpfXxTsZYA0/U4IkaPFGDJ2rwRA2e
qMETNXiiBk/U4IkaPFGDJ2rwRA2eqMETNXiiBk/U4IkaPFGDJ2rwRA2eqMETNXiiBk/U4IkaPFGD
J2rwRA2eqMETNXiiBk/U4IkaPFGDJ2rwRA2eqMMTdXiiDk/U4Yk6IjIO39Thmzp8U4dv6vBNHb6p
wzd1+KYO39Thmzp8U4dv6vBNHb6pwzd1+KYO39Thmzp8U4dv6vBNHb6pwzd1+KYO39Thmzp8U4dv
6vBNHb6pwzd1+KYO39Thmzp8U4dv6vBNHb6pwzd1+KYO39ThmzoiMg5v1RGRcfivDv/V4b86/FeH
/+rwXx3+q8N/dfivDv/VEZFx6KBDBx066NBBhw46dNChgw4ddOigQwcdOujQQYcOOnTQoYMOHXTo
oEMHHTro0EGHDjp00KGDDh106KBDBx066NBBhw46dNChgw4ddOigQwcdOujQQYcOOnTQoYMFOlig
gwU6WKCDBTpYoIMFOliggwU6WKCDBTpYoIMFOliggwU6WKCDBTpYoIMFOliggwU6WKCDBTpYoIMF
OliggwU6WKCDBTpYoIMFOliggwU6WKCDBTpYoIMFOliggwU6WKCDBTpYoIMFOliggwU6CP7S4x7Y
DB0EkelxD2yGDoLRVMFoqmA0VTCaKhhNFYymCkZTBaOpgtFUwWiqYDRVMJoqGE0VjKYKRlMFo6mC
0VTBaKpgNFUwmioYTRWMpgpGUwWjqYLRVMFoqmA0VTCaKhhNFYymCkZTBaOpgtFUwWiqYDRVMJoq
GE0VjKYKRlMFo6mC0VTBaKpgNFUwmioYTRWMpgpGUwWjqYLRVMFoqmA0VTCaKhhNFYymCkZTBaOp
gtFUwWiqYDRVMJoqGE0VjKYKRlMFo6mC0VTBaKpgNFUwmioYTRWMpgpGUwWjqYLRVMFoqmA0VTCa
KhhNFYymCkZTBaOpgtFUwWiqYDRVMJoqGE0VjKYKRlMFo6mC0VTBaKpgNFUwmioYTRWMpgpGUwWj
qYLRVMFoqmA0VTCaKhhNFYymCkZTBaOpgtFUwWiqYDRVMJoqGE0VjKYKRlMFo6mC0VTBaKpgNFUw
mioYTRWMpgpGUwWjqYLRVMFoqmA0VTCaKhhNFYymCkZTBaOpgtFUwWiqYDRVMJoqGE0VjKYKRlMF
o6mC0VTBaKpgNFUwmioYTRVEpgoiUwWRqYLIVEFkqiAy1Xsikz3cE5muewL2LNgTsSdhT8Yewx7H
noI9sDnA5gCbA2wOsDnA5gCbA2wOsDnA5gCbF9i8wOYFNi+weYHNC2xeYPMCmxfYvMDmCJsjbI6w
OcLmCJsjbI6wOcLmCAsTLEywMMHCBAsTLEywMMHCBAsTzmqCzRk2Z9icYXOGzRk2Z9icYXOGzRk2
Z9hssNlg8x807mtdAP18BcbXr8bJMZwcw8kxnBzDyTGcHMPJcZwcx8lx/KAOmx02O2x22Oyw2WGz
w+YCmwtsLrC5wOYCmwtsLrC5wOYCmwtsrrC5wuYKmytsrrC5wuYKmytsrrAZ8hogrwHyGiCvAfIa
IK8B8hogrwHyGiCvAfIaIK8B8hogrwHyGiCvAfIaIK8B8hogrwHyGiCvAfIaIK8B8hogrwHyGiCv
AfIaIK8B8hogrwHyGiCvAfIaIK8B8hogrwHyeo+Quu6BzRDcAMENENwAwQ0Q3ADBDRDcAMENENwA
wQ0Q3ADBDRDcAMENENwAwQ0Q3ADBDRDcAMENENwAwb2HSl33wGboYIAOBuhggA4G6GCADgboYIAO
BuhggA4G6GCADgboYIAOBuhggA4G6GCADgboYIAOBuhggA4G6GCADgboYIAOBuhggA4G6GCADgbo
YIAOBuhggA4G6GCADi7QwQU6uEAHF+jgAh1coIMLdHCBDi7QwQU6uEAHF+jgAh1coIMLdHCBDi7Q
wQU6uEAHF+jgAh1coIMLdHCBDi7QwQU6uEAHF+jgAh1coIMLdHCBDi7QwQU6uEAHF+jgAh1coIML
dHCBDi7QwQU6uEAHF+jgAh1coIMLdHCBDi7QwQU6uEAHF+jgAh1coIMLdHCBDi7QwQU6uEAHF+jg
Ah1coIMLdHCBDi7QwQU6uEAHF+jgAh1coIMLdHCBDi7QwQU6uEAHF+jgAh1coIMLdHCBDi7QwQU6
uEAHF+jgAh1coIMLdHCBDi7QwQU6uEAHF+jgAh1coIMLdHCBDi7QwQU6uEAHF+hghA5G6GCEDkbo
YIQORuhghA5G6GCEDkboYIQORuhghA5G6GCEDkboYIQORuhghA5G6GCEDkboYIQORuhghA5G6GCE
DkboYIQORuhghA5G6GCEDkboYIQORuhghA5G6GCEDkboYIQORuhghA5G6GCEDkboYIQORuhghA5G
6GCEDkboYIQORuhghA5G6GCEDkboYIQORuhghA5G6GCEDkboYIQORuhghA5G6GCEDkboYIQORuhg
hA5G6GCEDkboYIQORuhghA5G6GCEDkboYIQORuhghA5G6GCEDkboYIQORuhghA5G6GCEDkboYIQO
RuhghA5G6GCEDkboYIIOJuhggg4m6GCCDiboYIIOJuhggg4m6GCCDiboYIIOJuhggg4m6GCCDibo
YIIOJuhggg4m6GCCDiboYIIOJuhggg4m6GCCDiboYIIOJuhggg4m6GCCDiboYIIOJuhggg4m6GCC
DiboYIIOJuhggg4m6GCCDiboYIIOJuhggg4m6GCCDiboYIIOJuhggg4m6GCCDiboYIIOJuhg+voX
Ij8/7XguRs7FyLkYORcj52LkXIyci5FzMXIuRs7FyLkYORcj52LkXIyci5FzMXIuRs7FyLkYORcj
52LkXIyci5FzMXIuRs7FyLkY+de+GPnadmmdNNdJc50010lznTTXSXOdNNdJc50010lznTTXSXOd
NNdJc50010lznTTXSXOdNNdJc50010lznTTXSXOdNNdJc500178Zmuvr16X11bRb/SablP6Z/pyv
onvta9tN9iufi89Rj5uQd5aQd5aQd5aQd5aQd5aQd5aQd5aQd5aQd5aQd5aQd5aQd5aQd5aQd5aQ
d5aQd5aQd5aQd5aQd5aQd5aQd5aQd5aQd5aQd5aQd5aQd5aQd5aQd5aQd5aQd5aQd5aQd5aQd5aQ
d5aQd5aQd5bgrWV4axneWoa3luGtZXhrGd5ahreW4a1leGsZ3lqGt5bhrWV4axneWoa3luGtZXhr
Gd5ahreW4a1leGsZ3lqGt5bhrWV4axneWoa3luGtZXhrGd5ahreW4a1leGsZ3lqGt5bhrWV4axne
WkbeWYb/luG/ZfhvGf5bhv+W4b9l+G8Z/luG/5bhv2X4bxn+W4b/luG/ZfhvGf5bhv+W4b9l+G8Z
/luG/5bhv2X4bxn51xk6mKGDGTqYoYMZOpihgxk6mKGDGTqYoYMZOpihgxk6mKGDGTqYoYMZOpih
gxk6mKGDGTqYoYMZOpihgxk6mKGDGTqYoYMZOpihgxk6mKGDGTqYoYMZOpihgxk6aNBBgw4adNCg
gwYdNOigQQcNOmjQQYMOGnTQoIMGHTTooEEHDTpo0EGDDhp00KCDBh006KBBBw06aNBBgw4adNCg
gwYdNOigQQcNOmjQQYMOGnTQoIMGHTTooEEHDTpo0EGDDhp00KCDBh006KBBBw06aNBBgw4adNCg
gwYdNOigQQcNOmjQQYMOGnTQoIMGHTTooEEHDTpo0EGDDhp00KCDBh006KBBBw06aNBBgw4adNCg
gwYdNOigQQcNOmjQQYMOGnTQoIMGHTTooEEHDTpo0EGDDhp00KCDBh006KBBBw06aNBBgw4adNCg
gw4ddOigQwcdOujQQYcOOnTQoYMOHXTooEMHHTro0EGHDjp00KGDDh106KBDBx066NBBhw46dNCh
gw4ddOigQwcdOujQQYcOOnTQoYMOHXTooEMHHTro0EGHDjp00KGDDh106KBDBx066NBBhw46dNCh
gw4ddOigQwcdOujQQYcOOnTQoYMOHXTooEMHHTro0EGHDjp00KGDDh106KBDBx066NBBhw46dNCh
gw4ddOigQwcdOujQQYcOOnTQoYMOHXTooEMHHTro0EGHDjp00KGDDh106KBDBx066NBBhw46dNCh
gw4ddOigQwcdOliggwU6WKCDBTpYoIMFOliggwU6WKCDBTpYoIMFOliggwU6WKCDBTpYoIMFOlig
gwU6WKCDBTpYoIMFOliggwU6WKCDBTpYoIMFOliggwU6WKCDBTpYoIMFOliggwU6WKCDBTpYoIMF
OliggwU6WKCDBTpYoIMFOliggwU6WKCDBTpYoIMFOliggwU6WKCDBTpYoIMFOliggwU6WP4MHPjz
VctePwdHCvUsUM8C9SxQzwL1LFDPAvUsUM8C9SxQzwL1LFDPAvUsUM8C9SxQzwL1LFDPAvUsUM8C
9SxQzwL1LFDPAvUsUM8C9SxQzwL1LFDPAvUsUM8C9SxQzwL1LFDPCvWsUM8K9axQzwr1rFDPCvWs
UM8K9axQzwr1rFDPCvWsUM8K9axQzwr1rFDPCvWsUM8K9axQzwr1rFDPCvWsUM8K9axQzwr1rFDP
CvWsUM8K9axQzwr1rFDPCvWsUM8K9axQzwr1rFDPCvWsUM8K9axQzwr1rFDPCvWsUM8K9axQzwr1
rFDPCvWsUM8K9axQzwr1rFDPCvWsUM+KWWSFDlboYIUOVuhghQ5W6GCFDlboYIUOVuhghQ5W6GCF
DlboYIUOVuhghQ5W6GCFDlboYIUOVuhghQ5W6GCFDlboYIUOVuhghQ5W6GCFDlboYIUOVuhghQ5W
6CByoQNyoQNyoQNyoQNyoQNyoQNyoQNyoQNyoQNyoQNyoQNyoQNyoQNyoQNyoQNyoQNyoQNyoQNy
oQNyoQNyoQNyoQNyoQNyoQNyoQNyoQNyoQNyoQNyoQNyoQNyoQNyoQNyoQNyoQNyoQNyoQNyoQNy
oQNyoR/3wOYImxNsTrA5weYEmxNsTrA5weYEmxNsTrA5w+YMmzNszrA5w+YMmzNszrA5w+YMmw02
G2w22Gyw2WCzwWaDzQabDTYbbHbY7LDZYbPDZofNDpsdNjtsdtjssLnA5gKbC2wusLnA5gKbC2wu
sLnA5gKbK2yusLnC5gqbK2yusLnC5gqbK2yGDqLrS0DXl4CuLwFdXwK6vgR0fQno+hLQ9SWg60tA
15eAri8BXV8Cur4EdH0J6PoS0PUloOtLQNeXgK4vAV1fArq+BHR9Cej6EtD1JaDrS0DXl4CuLwFd
XwK6vgR0fQno+hLQ9SWg60tA15eAri8BXV8Cur4EdH0J6PoS0PUloOtLQNeXgK4vAV1fArq+BHR9
Cej6EtD1JaDrS0DXl4CuLwFdXwK6vgR0fQno+hLQ9SWg60tA15eAri8BXV8Cur4EdH0J6PoS0PUl
oOtLQNeXgK4vAV1fArq+BHR9Cej6EtD1JaDrS0DXl4CuLwFdXwK6vgR0fQno+hLQ9SWg60tA15eA
ri8BXV8Cur4EdH0J6PoS0PUloOtLQNeXgK4vAV1fArq+BHR9Cej6EtD1JaDrS0DXl4CuLwFdXwK6
vgR0fQno+hLQ9SWg60tA15eAri8BXV8Cur4EdH0J6PoS0PUloOtLQNeXgK4vAV1fArq+BHR9Cej6
EtD1JaDrS0DXl4CuLwFdXwK6vgR0fQno+hLQ9SWg60tA15eAri8BXV8Cur4EdH0J6PoS0PUloOtL
QNeXgK4vAV1fArq+BHR9Cej6EtD1JaDrS0DXl4CuLwFdXwK6vgR0fQno+hLQ9SWg60tA15eAri8B
XV8Cur4EdH0J6PoS0PUloOtLQNeXsHz9LUdfRZfSuX451y/n+uVcv5zrl3P9cq5fzvXLuX451y/n
+uVcv5zrl3P9cq5fzvXLuX451y/n+uVcv5zrl3P9cq5fzvXLuX451y/n+uXfzPrla9uldNJcJ811
0lwnzXXSXCfNddJcJ8110lwnzXXSXCfNddJcJ8110lwnzXXSXCfNddJcJ8110lwnzXXSXCfNddJc
J8110lz/Zmiu32qX0q+p3+Ub4Q/f92rqQb9eG1+Pzp/zvH/N571/y5fvuXqrLg4LsugWZNEtyKJb
kEW3IItuQRbdgiy6BVl0C7LoFmTRLciiW5BFtyCLbkEW3YIsugVZdAuy6BZk0S3IoluQRbcgi25B
Ft2CLLoFWXQLcuYW5MwtyJlbkDO3IENuQYbcggy5BRlyCzLkFmTILciQi8iQi8iQi8iQi8iQi8iQ
i8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQ
i8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQ
i8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQi8iQ
i8gUj9C4CI2L0LgIjYvQuAiNi9C4CI2L0LgIjYvQuAiNi9C4CI2L0LgIjYvQuAiNi9C4CI2L0LgI
jYvQuAiNi8gUj1C9CNWLUL0I1YvIFI/QwQgdjNDBCB2M0MEIHYzQwQQdTNDBBB1M0MEEHUzQwQQd
TNDBBB1M0MEEHUzQwQQdTNDBBB1M0MEEHUzQwQQdTNDBBB1M0MEEHUzQwQQdTNDBBB1M0MEEHUzQ
wQQdTNDBBB1M0MEEHUzQwQQdTNDBBB1M0MEEHUzQwQQdTNDBBB1M0MEEHUzQwQQdTNDBBB1M0MEE
HUzQwQQdTNDBBB1M0MEEHUzQwQQdTNDBBB1ERnZARnZARnZARnZARnZARnZARnZARnZARnZARnZA
RnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZA
RnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZA
RnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZA
RnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZA
RnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARnZARvb/n71/7bHsSNMz
zb+iL93o+RDJZe9rRwwKhcb0DNSA1BKkwbSAwSARSTozQ0lGUBHBymT/+tlOMpMevHhwj/DDdnfr
VhWLTjLc9jrYs9a22+6nQGQXiOwCkV0gsgtEdoHILhDZBSK7QGQXiOwCkV0gsgtEdoHILhDZBSK7
QGQXiOwCkV0gsgtEdoHILhDZBSK7QGQXiOwCkV0gsgtEdoHILhDZBSK7QGQXiOwCkV0gsgtEdoHI
LhDZBSK7QGQXiOwCkV0gsgtEdoHILhDZBSK7QGQXiOwCkV0gsgtEdoHILhDZBSK7QGQXiOwCkV0g
sgtEdoHILhDZBSK7QGQXiOwCkV0gsgtEdoHILhDZBSK7QGQXiOwCkV0gsgtEdoHILhDZBSK7QGQX
iOwCkV0gsgtEdoHILhDZBSK7QGQXiOwCkV0gsgtEdoHILhDZBSK7QGQXiOwCkV1+ILJvdYn1mtuF
C+h3Af0uoN8F9LuAfhfQ7wL6XUC/C+h3Af0uoN8F9LuAfhfQ7wL6XUC/C+h3Af0uoN8F9LuAfhfQ
7wL6XUC/C+h3Af0uoN8F9LuAfhfQ7wL6XUC/C+h3Af0uoN8F9LuAfhfQ7wL6XUC/C+h3Af0uoN8F
9LuAfhfQ7wL6XUC/C+h3Af0uoN8F9LuAfhfQ7wL6XUC/C+h3Af0uoN8F9LuAfhfQ7wL6XUC/C+h3
Af0uoN8F9LuAfhfQ7wL6XUC/C+h3Af0uoN8F9LuAfhfQ7wL6XUC/C+h3Af0uoN8F9LuAfhfQ7wL6
XUC/C+h3Af0uoN8F9LuAfhfQ7wL6XUC/C+h3Af0uoN8F9LuAfhfQ7wL6XUC/C+h3Af0uoN8F9LuA
fhfQ7wL6XUC/C+h3Af0uoN8F9LuAfhfQ7wL6XUC/C+h3Af0uoN8F9LuAfhfQ7wL6XUC/C+h3Af0u
oN8F9LuAfhfQ7wL6XUC/C+h3Af0uoN8F9LuAfhfQ7wL6XUC/C+h3Af0uoN8F9LuAfhfQ7wL6XUC/
C+h3Af0uoN8F9LuAfhfQ7wL6XUC/C+h3Af0uoN8F9LuAfhfQ7wL6XUC/C+h3Af0uoN8F9LuAfhfQ
7wL6XUC/C+h3Af0uoN8F9LuAfhfQ7wL6XUC/C+h3Af0uoN8F9LuAfhfQ7wL6XUC/C+h3Af0uoN8F
9LuAfpdJDlJpU6i0KVTaFCptCpU2hUqbQqVNodKmUGlTqLQpVNoUKm0KlTaFSptCpU2h0qZQaVOo
tClU2hQqbQqVNoVKm0KlTaHSplBpU6i0KVTaFCptCpU2hUqbQqVNodKmUGlTqLQpVNoUKm0KlTaF
SptCpU2h0qZQaVOotClU2hQqbQqVNoVKm0KlTaHSplBpU6i0KVTaFCptCpU2hUqbQqVNodKmUGlT
qLQpVNoUKm0KlTaFSptCpU2h0qZQaVOotClU2hQqbQqVNoVKm0KlTaHSplBpU6i0KVTaFCptCpU2
hUqbQqVNodKmUGlTqLQpVNoUKm0KlTaFSptCpU2h0qZQaVOotClU2hQqbQqVNoVKm0KlTaHSplBp
U6i0KVTaFCptCpU2hUqbQqVNodKmUGlTqLQpVNoUKm0KlTaFSptCpU2h0qZQaVOotClU2hQqbQqV
NoVKm0KlTaHSplBpU6i0KVTaFCptCpU2hUqbQqVNodKmUGlTqLQpVNoUKm0KlTaFSptCpU2h0qZQ
aRNU2gSVNkGlTVBpE1TaBJU2QaVNUGkTVNoElTZBpU1QaRNU2gSVNkGlTVBpE1TaBJU2QaVNUGkT
VNoElTZBpU1QaRNU2gSVNkGlTVBpE1TaBJU2QaVNUGkTVNoElTZBpU1QaRNU2gSVNkGlTVBpE1Ta
BJU2QaVNUGkTVNoElTZBpU1QaRNU2gSVNkGlTVBpE1TaBJU2QaVNUGkTVNoElTZBpU1QaRNU2gSV
NkGlTVBpE8ftL0TeoHN174rcuyL3rsi9K3Lvity7IveuyL0rcu+K3Lsi967IvSty74rcuyL3rsi9
K3Lvity7IveuyL0rcu+K3Lsi967IvSty74rcuyL3rsgnvivyEXSu7k2UexPl3kS5N1HuTZR7E+Xe
RLk3Ue5NlHsT5d5EuTdR7k2UexPl3kS5N1HuTZR7E+XeRLk3Ue5NlHsT5d5EuTdR7k2UexPl3kT5
xDdRPmjn6u+vWQaUbEDJBpRsQMkGlGxAyQaUbEDJBpRsQMkGlGxAyQaUbEDJBpRsQMkGlGxAyQaU
bEDJBpRsQMkGlGxAyQaUbEDJBpRsQMkGlGxAyQaUbEDJBpRsQMkGlGxAyQaUbEDJBpRsQMkGlGxA
yQaUbEDJBpRsQMkGlGxAyQaUbEDJBpRsQMkGlGxAyQaUbEDJBpRsQMkGlGxAyQaUbEDJBpRsQMkG
lGxAyQaUbEDJBpRsQMkGlGxAyQaUbEDJBpRsQMkGlGxAyQaUbEDJBpRsQMkGlGxAyQaUbEDJBpRs
QMkGlGxAyQaUbEDJBpRsQMkGlGxAyQaUbEDJBpRsQMkGlGxAyQaUbEDJBpRsQMkGlGxAyQaUbEDJ
BpRsQMkGlGxAyQaUbEDJBpRsQMkGlGxAyQaUbEDJBpRsQMkGlGxAyQaUbEDJBpRsQMkGlGxAyQaU
bEDJBpRsQMkGlGxAyQaUbEDJBpRsQMkGlGxAyQaUbEDJBpRsQMkGlGzAxAZMbMDEBkxswMQGTGzA
xAZMbMDEBkxswMQGTGzAxAZMbMDEBkxswMQGTGzAxAZMbMDEBkxswMQGTGzAxAZMbMDEBkxswMQG
TGzAxAZMbMDEBkxswMQGTGzAxAZMbMDEBkxswMQGTGzAxAZMbMDEBkxsdFIP9jRgTwP2NGBPA/Y0
YE8D9jRgTwP2NGBPA/Y0YE8D9jRgTwP2NGBPA/Y0YE8D9jRgTwP2NGBPA/Y0YE8D9jRgTwP2NGBP
A/Y0YE8D9jRgTwP2NGBPA/Y0YE8D9jRgTwP2NGBPA/Y0YE8D9jRgTwP2NGBPA/Y0YE8D9jRgTwP2
NGBPA/Y0YE8D9jRgTwP2NGBPA/Y0YE8D9jRgTwP2NGBPA/Y0YE8D9jRgTwP2NGBPA/Y0YE8D9jRg
TwP2NGBPA/Y0YE8D9jRgTwP2NGBPA/Y0YE8D9jRgTwP2NGBPA/Y0YE8D9jRgTwP2NGBPA/Y0YE8D
9jRgTwP2NGBPA/Y0YE8D9jRgTwP2NGBPA/Y0YE8D9jRgTwP2NGBPA/Y0YE8D9jRgTwP2NGBPA/Y0
YE8D9jRgTwP2NGBPA/Y0YE8D9jRgTwP2NGBPA/Y0YE8D9jRgTwP2NGBPA/Y0YE8D9jRgTwP2NGBP
A/Y0YE8D9jRgTwP2NGBPA/Y0YE8D9jRgTwP2NGBPA/Y0YE8D9jRgTwP2NGBPA/Y0YE8D9jRgTwP2
NGBPA/Y0YE8D9jRgTwP2NGBPA/Y0YE8D9jRgTwP2NGBPA/Y0YE8D9jRgTwP2NGBPA/Y0YE8D9jRg
TwP2NGBPA/Y0YE8D9jRgTwP2NGBPA/Y0YE8D9jRgTwP2NGBPA/Y0fmBPP3JV8SeDaxz89oPffvDb
D1L4IIUPUvgghQ9S+CCFD1L4IIUPUvgghQ9S+CCFD1L4IIUPUvgghQ9S+CCFD1L4IIUPUvgghQ9S
+CCFD1L4IIUPUvgghQ9S+CCFD1L4IIULKVxI4UIKF1K4kMKFFC6kcCGFCylcSOFCChdSuJDChRQu
pHAhhQspXEjhQgoXUriQwoUULqRwIYULKVxI4UIKF1K4kMKFFC6kcCGFCylcSOFCChdSuJDChRQu
pHAhhQspXEjhQgoXUriQwoUULqRwIYULKVxI4UIKF1K4kMKFFC6kcCGFCylcSOFCChdSuJDChRQu
pHAhhQspXMjBQg4WcrCQg4UcLORgIQcLOVjIwUIOFnKwkIOFHCzkYCEHCzlYyMFCDhZysJCDhRws
5GAhBws5WMjBQg4WcrCQg4UcLORgIQcLOVjIwUIOFnIwyMEgB4McDHIwyMEgB4McDHIwyMEgB4Mc
DHIwyMEgB4McDHIwyMEgB4McDHIwyMEgB4McDHIwyMEgB4McDHIwyMEgB4McDHIwyMEgB4McDHIw
yMEgB4McDHIwyMEgB4McDHIwyMEgB4McDHIwyMEgB4McDHIwyMEgB4McDHIwyMEgB4McDHIwyMEg
B4McpK0jaOsI2jqCto6grSNo6wjaOoK2jqCtI2jrCNo6graOoK0jaOsI2jqCto6grSNo6wjaOoK2
jqCtI2jrCNo6graO008YMzlIf0fQ3xH0d5x+wpjJQRo9gkaPoNEjaPQIGj2CRo+g0SNo9AgaPYJG
j6DRI2j0CBo9gkaPoNEjaPQIGj2CRo+g0SNo9AgaPYJGj6DRI2j0CPo7gv6OoL8j6O8I+juC/o6g
vyPo7wj6O4L+jqC/I+jvCPo7gv6OoL8j6O8I+juC/o6gvyPo7wj6O4L+jqC/I+jvCPo7gv6OoL8j
6O8I+juC/o6gvyPo7wj6O4L+jqC/I+jvCPo7gv6OoL8j6O8I+juC/o6gvyPo7wj6O4L+jqC/I+jv
CPo7gv6OoL8j6O8I+juC/o6gvyPo7wj6O4L+jqC/I+jvCPo7gv6OoL8j6O8I+juC/o6gvyPo7wja
OoK2jqCtI2jrCNo6graOoK0jaOsI2jqCto6grSNo6wjaOoK2jqCtI2jrCNo6graOoK0jaOsI2jqC
to6grSNo6wjaOoK2jqCtI2jrCNo6graOoK0jaOsI2jqCto6grSNo6wjaOoK2jqCtI2jrCNo6graO
oK0jaOsI2jqCto6grSNo6wi6OYJujqCbI+jmCLo5gm6OoJsj6OYIujmCbo6gmyPo5gi6OYJujqCb
I+jmCLo5gm6OoJsj6OYIujmCbo6gmyPo5gi6OYJujqCbI+jmCLo5gm6O+KGb41brJO+igXLvity7
IveuyL0rcu+K3Lsi967IvSty74rcuyL3rsi9K3Lvity7IveuyL0rcu+K3Lsi967IvSty74rcuyL3
rsi9K3Lvity7IveuyGezK/JsGyj3vsu973Lvu9z7Lve+y73vcu+73Psu977Lve9y77vc+y73vsu9
73Lvu9z7Lve+y73vcu+73Psu977Lve9y77vc+y73vsu973Lvu3w2+y7PvYFykrKTlJ2k7CRlJyk7
SdlJyk5SdpKyk5SdpOwkZScpO0nZScpOUnaSspOUnbxbTnJ3kruT3J3k7iR3J7k7yd1J7k5yd5K7
k9yd5O4idxe5u8jdRe4ucneRu4vcXeTuIncXubvI3UXuLnJ3kbuL3F3k7iJ3F7m7yN1F7i5yd5G7
i9xd5O4idxe5u8jdRe4ucneRu4vcXeTuIncXubvI3UXuLt42F0m8SOJFEi+SeJHEiyReJPEiiRdJ
vEjiRRIvkniRxIskXiTxIokXSbxI4kUSL5J4kcSLJF4k8SKJF0m8SOJFEi+SeJHEiyRevG0u3jYX
ObjIwUUOLnJwkYOLHFzk4CIHFzm4yMFFDi5ycJGDixxc5OAiBxc5uMjBRQ4ucnCRg4scXOTgIgcX
ObjIwUUOLnJwkYOLHFw/z8E8fp6Dp58UfhL8JPlJ5SeNn3R+MvjJ5CeMuTDmwpgLYy6MuTDmwpgL
Yy6MuTDmwpiDMQdjDsYcjDkYczDmYMzBmIMxB2NOxpyMORlzMuZkzMmYkzEnY07GnIy5MubKmCtj
roy5MubKmCtjroy5MubKmBtjboy5MebGmBtjboy5MebGmBtjboy5M+bOmDtj7oy5M+bOmDtj7oy5
M+bOmAdjHox5MObBmAdjHox5MObBmAdjHox5MubJmCdjnox5MubJmCdjnox5MubJmBdjXox5MebF
mBdjXox5MebFmBdjJgdhTxP2NGFPE/Y0YU8T9jRhTxP2NGFPE/Y0YU8T9jRhTxP2NGFPE/Y0YU8T
9jRhTxP2NGFPE/Y0YU8T9jRhTxP2NGFPE/Y0YU8T9jRhTxP2NGFPE/Y0YU8T9jRhTxP2NGFPE/Y0
YU8T9jRhTxP2NGFPE/Y0YU8T9jRhTxP2NGFPE/Y0YU8T9jRhTxP2NGFPE/Y0YU8T9jRhTxP2NGFP
E/Y0YU8T9jRhTxP2NGFPE/Y0YU8T9jRhTxP2NGFPE/Y0YU8T9jRhTxP2NGFPE/Y0YU8T9jRhTxP2
NGFPE/Y0YU8T9jRhTxP2NGFPE/Y0YU8T9jRhTxP2NGFPE/Y0YU8T9jRhTxP2NGFPE/Y0YU8T9jRh
TxP2NGFPE/Y0YU8T9jRhTxP2NGFPE/Y0YU8T9jRhTxP2NGFPE/Y0YU8T9jRhTxP2NGFPE/Y0YU8T
9jRhTxP2NGFPE/Y0YU8T9jRhTxP2NGFPE/Y0YU8T9jRhTxP2NGFPE/Y0YU8T9jRhTxP2NGFPE/Y0
YU8T9jRhTxP2NGFPE/Y0YU8T9jRhTxP2NGFPE/Y0YU8T9jTjdxooP0L8es3NkwnkmkCuCeSaQK4J
5JpArgnkmkCuCeSaQK4J5JpArgnkmkCuCeSaQK4J5JpArgnkmkCuCeSaQK4J5JpArgnkmkCuCeSa
QK4J5JpArgnkmkCuCeSaQK4J5JpArgnkmkCuCeSaQK4J5JpArgnkmkCuCeSaQK4J5JpArgnkevoJ
YyZwwV4T7DXBXhPsNcFeE+w1wV4T7DXBXhPsNcFeE+w1wV4T7DXBXhPsNcFeE+w1wV4T7DXBXhPs
NcFeE+w1wV4T7DXBXhPsNcFeE+w1wV4T7DXBXhPsNcFeE+w1wV4T7DXBXhPsNcFeE+w1wV4T7DXB
XhPsNcFeE+w1wV4T7DXBXhPsNcFeE+w1wV4T7DXBXhPsNcFeE+w1wV4T7DXBXhPsNcFeE+w1wV5P
P2HM5CAgbALCJiBsAsImIGwCwiYgbALCJiBsAsImIGwCwiYgbALCJiBsAsImIGwCwiYgbALCJiBs
AsImIGwCwiYgbALCJiBsAsImIGwCwiYgbALCJiBsAsImIGwCwiYgbALCJiBsAsImIGwCwiYgbALC
JiBsAsImIOzpJ4yZHASNTdDYBI1N0NgEjU3Q2ASNTdDYBI1N0NgEjU3Q2ASNTdDYBI1N0NgEjU3Q
2ASNTdDYBI1N0NgEjU3Q2ASNTdDYBI1N0NgEjc1KDlL5kVR+JJUfSeVHUvmRVH4klR9J5UdS+ZFU
fiSVH0nlR1L5kVR+JJUfSeVHUvmRVH4klR9J5UdS+ZFUfiSVH0nlR1L5kVR+JJUfSeVHUvmRVH4k
lR9J5UdS+ZFUfiSVH0nlR1L5kVR+JJUfSeVHUvmRVH4klR9J5UdS+ZFUfiSVH0nlR1L5kVR+JJUf
SeVHUvmRVH4klR9J5UdS+ZFUfiSVH0nlR1L5kVR+JJUfSeVHUvmRVH4klR9J5UdS+ZFUfiSVH0nl
R1L5kVR+JJUfSeVHUvmRVH4klR9J5UdS+ZFUfiSVH0nlR1L5kVR+JJUfSeVHUvmRVH4klR9J5UdS
+ZFUfiSVH0nlR1L5kVR+JJUfSeVHUvmRVH4klR9J5UdS+ZFUfiSVH0nlR1L5kVR+JJUfSeVHUvmR
VH4klR9J5UdS+ZFUfiSVH0nlR1L5kVR+JJUfSeVHUvmRVH4klR9J5UdS+ZFUfiSVH0nlR1L5kVR+
JJUfSeVHUvmRVH4klR9J5UdS+ZFUfiSVH0nlR1L5kVR+JJUfSeVHUvlx+gljJgcpAUlKQJISkKQE
JCkBSUpAkhKQpAQkKQFJSkCSEpCkBCQpAUlKQJISkKQEJCkBSUpAkhKQpAQkKQFJSkCSEpCkBCQp
AUlKQJISkKQEJCkBSUpAkhKQpAQkKQFJSkCSEpCkBCQpAUlKQJISkKQEJCkBSUpAkhKQpAQkKQFJ
SkCSEpCkBCQpAcl++wuRN2mg3Lsi967IvSty74rcuyL3rsi9K3Lvity7IveuyL0rcu+K3Lsi967I
vSty74rcuyL3rsi9K3Lvity7IveuyL0rcu+K3Lsi967IvSvyae+KfAQNlHsT5d5EuTdR7k2UexPl
3kS5N1HuTZR7E+XeRLk3Ue5NlHsT5d5EuTdR7k2UexPl3kS5N1HuTZR7E+XeRLk3Ue5NlHsT5d5E
uTdRPvFNlGfeQHkaJceRbO5kcyebO9ncyeZONneyuZPNnWzuZHMnmzvZ3MnmTjZ3srmTzZ1s7mRz
J5s72dzJ5k42d7K5k82dbO5kcyebO9ncyeZONg+yeZDNg2weZPMgmwfZPMjmQTYPsnmQzYNsHmTz
IJsH2TzI5kE2D7J5kM2DbB5k8yCbB9k8yOZBNg+yeZDNg2weZPMgmwfZPMjmQTYPsnmQzYNsHmTz
IJsH2TzI5kE2D7J5kM2DbB5k8yCbB9k8yOZBNg+yeZDNg2weZPMgmwfZPMjmQTYPsnmQzYNsHmTz
IJsH2TzI5kE2D7J5kM2DbB5k8+AddZCDgxwc5OAgBwc5OMjBQQ4OcnCQg4McHOTgIAcHOTjIwUEO
DnJwkIODHBzk4CAHBzk4yMFBDg5ycJCDgxwc5OAgBwc5OMjBQQ5OcnCSg5McnOTgJAcnOTjJwUkO
TnJwkoOTHJzk4CQHJzk4ycFJDk5ycJKDkxyc5OAkByc5OMnBSQ5OcnCSg5McnOTgJAcnOTjJwUkO
TnJwkoOTHJzk4CQHJzk4ycFJDk5ycJKDkxyc5OAkByc5OMnBSQ5OcnCSg5McnOTgJAcnOTjJwUkO
TnJwkoOTHJzk4CQHJzk4ycFJDk5ycJKDkxyc5OAkB3HvJO6dxL2TuHcS907i3kncO4l7J3HvJO6d
xL2TuHcS907i3kncO4l7J3HvJO6dxL2TuHcS907i3kncO4l7J3HvJO6dxL2TuHcS907i3kncO4l7
J3HvJO6dxL2TuHcS907i3kncO4l7J3HvJO6dxL2TuHcS907i3kncO4l7J3HvJO6dxL2TuHcS907i
3kncO4l7J3HvJO6dxL2TuHcS907i3kncO4l7J3HvJO6dxL2TuHcS907i3kncO4l7J3HvJO6dxL2T
uHcS907i3kncO4l7J3HvJO6dxL2TuHcS907i3kncO4l7J3HvJO6dxL2TuHcS907i3kncO4l7J3Hv
JO6dxL2TuHcS907i3kncO4l7J3HvJO6dxL2TuHcS907i3kncO4l7J3HvJO6dxL2TuHcS907i3knc
O4l7J3HvJO6dxL2TuHcS907i3kncO4l7J3HvJO6dxL1Tce9U3DsV907FvVNx71TcOxX3TsW9U3Hv
VNw7FfdOxb1Tce9U3DsV907FvVNx71TcOxX3TsW9U3HvVNw7FfdOxb1Tce9U3DsV907FvVNx71Tc
OxX3TsW9U3HvVNw7FfdOxb1Tce9U3DsV907FvVNx71TcOxX3TsW9U3HvVNw7FfdOxb1Tce9U3DsV
907FvVNx71TcOxX3TsW9U3HvVNw7FfdOxb1Tce9U3DsV907FvVNx71TcOxX3TsW9U4/fEb9ecydk
xdhTMfZUjD0VY0/F2FMx9lSMPRVjT8XYUzH2VIw9FWNPxdhTMfZUjD0VY0/F2FMx9lSMPRVjT8XY
UzH2VIw9FWNPxdhTMfZUjD0VY0/F2FMx9lSMPRVjT8XYUzH2VIw9FWNPxdhTMfZUjD0VY0/F2FMx
9lSMPRVjT8XYUzH2VIw9FWNPxdhTMfZUjD0VY0/F2FMx9lSMPRVjT8XYUzH2VIw9FWNPxdhTMfZU
jD0VY0/F2FMx9lSMPRVjT8XYUzH2VIw9FWNPxdhTMfZUjD0VY0/F2FMx9lSMPRVjT8XYUzH2VIw9
FWNPxdhTMfZUjD0VY0/F2FMx9lSMPRVjT8XYUzH2VIw9FWNPxdhTMfZUjD0VY0/F2FMx9lSMPRVj
T8XYUzH2VIw9FWNPxdhTMfZUjD0VY0/F2FMx9lSMPRVjT8XYUzH2VIw9FWNPxdhTMfZUjD0VY0/F
2FMx9lSMPRVjT8XYUzH2VIw9FWNPxdhTMfZUjD0VY0/F2FMx9lSMPRVjT8XYUzH2VIw9FWNPxdhT
MfZUjD0VY0/F2FMx9lSMPRVjT8XYUzH2VIw9FWNPxdhTMfZUjD0VY0/F2FMx9lSMPRVjT8XYUzH2
VIw9FWNPxdhTMfZUjD0VY0/F2FMx9lSMPRVjT8XYUzH2VIw9FWNPxdhTMfZUjD0VY0/F2FMx9lSM
PRVjT8XYUzH2VIw9FWNPxdhTMfZUjD0VY0/F2FMx9lSMPTXIQcw4FTNOxYxTMeNUzDgVM07FjFMx
41TMOBUzTsWMUzHjVMw4FTNOxYxTMeNUzDgVM07FjFMx41TMOBUzTsWMUzHjVMw4FTNOxYxTMeNU
zDgVM07FjFMx41TMOBUzTsWMUzHjVMw4FTNOxYxTMeNUzDgVM07FjFMx41TMOBUzTsWMUzHjVMw4
FTNOxYxTMeNUzDgVM07FjFMx41TMOBUzTsWMUzHjVMw4FTNOxYxTMeNUzDgVM07FjFMx41TMOBUz
TsWMUzHjVMw4FTNOxYxTMeNUzDgVM07FjFMx41TMOBUzTsWMUzHjVMw4FTNOxYxTMeNUzDgVM07F
jFMx41TMOBUzTsWMUzHjVMw4FTNOxYxTMeNUzDgVM07FjFMx41TMOBUzTsWMUzHjVMw4FTNOxYxT
MeNUzDgVM07FjFMx41TMOBUzTsWMUzHjVMw4FTNOxYxTMeNUzDgVM07FjFMx41TMOBUzTsWMUzHj
VMw4FTNOxYxTMeNUzDgVM07FjFMx41TMOBUzTsWMUzHjVMw4FTNOxYxTMeNUzDgVM07FjFMx41TM
OBUzTsWMUzHjVMw4FTNOxYxTMeNUzDgVM07FjFMx41TMOBUzTsWMUzHjVMw4FTNOxYxTMeNUzDgV
M07FjFMx41TMOBUzTsWMUzHjVMw4FTNOxYxTMeNUzDgVM07FjFMx41TMOBUzTsWMUzHjVMw4FTNO
xYxTMeNUzDgVM07FjFPr7ddJ3m0D5d4VuXdF7l2Re1fk3hW5d0XuXZF7V+TeFbl3Re5dkXtX5N4V
uXdF7l2Re1fk3hW5d0XuXZF7V+TeFbl3Re5dkXtX5N4VuXdF7l2RT3xX5CNooNz7Lve+y73vcu+7
3Psu977Lve9y77vc+y73vsu973Lvu9z7Lve+y73vcu+73Psu977Lve9y77vc+y73vsu973Lvu9z7
Lve+y73v8onvuzzzBsrTKDmOZHMlmyvZXMnmSjZXsrmSzZVsrmRzJZsr2VzJ5ko2V7K5ks2VbK5k
cyWbK9lcyeZKNleyuZLNlWyuZHMlmyvZXMnmSjZXsrmRzY1sbmRzI5sb2dzI5kY2N7K5kc2NbG5k
cyObG9ncyOZGNjeyuZHNjWxuZHMjmxvZ3MjmRjY3srmRzY1sbmRzI5sb2dzI5kY2N7K5kc2NbG5k
cyObG9ncyOZGNjeyuZHNjWxuZHMjmxvZ3MjmRjY3srmRzY1sbmRzI5sb2dzI5kY2N7K5kc2NbG5k
cyObG9ncyOZGNjeyuZHNjWxuZHMjmxvvqI0cbORgIwcbOdjIwUYONnKwkYONHGzkYCMHGznYyMFG
DjZysJGDjRxs5GAjBxs52MjBRg42crCRg40cbORgIwcbOdjIwUYONnKwk4OdHOzkYCcHOznYycFO
DnZysJODnRzs5GAnBzs52MnBTg52crCTg50c7ORgJwc7OdjJwU4OdnKwk4OdHOzkYCcHOznYycFO
DnZysJODnRzs5GAnBzs52MnBTg52crCTg50c7ORgJwc7OdjJwU4OdnKwk4OdHOzkYCcHOznYycFO
DnZysJODnRzs5GAnBzs52MnBTg52crCTg50c7ORgJwc7OYh7p+Leqbh3Ku6dinun4t6puHcq7p2K
e6fi3qm4dyrunYp7p+Leqbh3Ku6dinun4t6puHcq7p2Ke6fi3qm4dyrunYp7p+Leqbh3Ku6dinun
4t6puHcq7p2Ke6fi3qm4dyrunYp7p+Leqbh3Ku6dinun4t6puHcq7p2Ke6fi3qm4dyrunYp7p+Le
qbh3Ku6dinun4t6puHcq7p2Ke6fi3qm4dyrunYp7p+Leqbh3Ku6dinun4t6puHcq7p2Ke6fi3qm4
dyrunYp7p+Leqbh3Ku6dinun4t6puHcq7p2Ke6fi3qm4dyrunYp7p+Leqbh3Ku6dinun4t6puHcq
7p2Ke6fi3qm4dyrunYp7p+Leqbh3Ku6dinun4t6puHcq7p2Ke6fi3qm4dyrunYp7p+Leqbh3Ku6d
inun4t6puHcq7p2Ke6fi3qm4dyrunYp7p+Leqbh3Ku6dinun4t6puHcq7p2Ke6fi3qm4dyrunYp7
p+Leqbh3Ku6dinun4t6puHcq7p2Ke6fi3qm4dyrunYp7p+Leqbh3Ku6dinun4t6puHcq7p2Ke6fi
3qm4dyrunYp7p+Leqbh3Ku6dinun4t6puHcq7p2Ke6fi3qm4dyrunYp7p+Leqbh3Ku6dinun4t6p
uHcq7p2Ke6fi3qm4dyrunYp7p+Leqbh3Ku6dinun4t6puHcq7p2Ke6fi3qm4dyrunYp7p+Leqbh3
Ku6dinun4t6puHfqvKUGSow9FWNPxdhTMfZUjD0VY0/F2FMx9lSMPRVjT8XYUzH2VIw9FWNPxdhT
MfZUjD0VY0/F2FMx9lSMPRVjT8XYUzH2VIw9FWNPxdhTMfZUjD0VY0/F2FMx9lSMPRVjT8XYUzH2
VIw9FWNPxdhTMfZUjD0VY0/F2FMx9lSMPRVjT8XYUzH2VIw9FWNPxdhTMfZUjD0VY0/F2FMx9lSM
PRVjT8XYUzH2VIw9FWNPxdhTMfZUjD0VY0/F2FMx9lSMPRVjT8XYUzH2VIw9FWNPxdhTMfZUjD0V
Y0/F2FMx9lSMPRVjT8XYUzH2VIw9FWNPxdhTMfZUjD0VY0/F2FMx9lSMPRVjT8XYUzH2VIw9FWNP
xdhTMfZUjD0VY0/F2FMx9lSMPRVjT8XYUzH2VIw9FWNPxdhTMfZUjD0VY0/F2FMx9lSMPRVjT8XY
UzH2VIw9FWNPxdhTMfZUjD0VP0/Fz1Px81T8PBU/T8PP0/DzNPw8DT9Pw8/T8PM0/DwNP0/Dz9Pw
8zT8PA0/T8PP0/DzNPw8DT9Pw8/T8PM0/DwNP0/Dz9Pw8zT8PA0/T8PP0/DzNPw8DT9Pw8/T8PM0
/DwNP0/Dz9Pw8zT8PA0/T8PP0/DzNPw8DT9Pw8/T8PM0/DwNP0/Dz9Pw8zT8PA0/T8PP0/DzNPw8
DT9Pw8/T8PM0/DwNP0/Dz9Pw8zT8PA0/T8PP0/DzNPw8DT9Pw8/T8PM0/DwNP087OmPujHkw5sGY
B2MejHkw5sGYB2MejHkw5sGYJ2OejHky5smYJ2OejHky5smYJ2OejHkx5sWYF2NejHkx5sWYF2Ne
jHkxZnIQD07Dg9Pw4DQ8OA0PTsOD0/DgNDw4DQ9Ow4PT8OA0PDgND07Dg9Pw4DQ8OA0PTsOD0/Dg
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
jSZvo8nbaPI2mryNJm+jydto8jaavI0mb6PJ22jyNpq8jSZvo8nbaPI2mryNJm+jydto8jaavI0m
b6PJ22jyNpq8eybvnsm7Z/Lumbx7JqmXpF6SeknqJamXpF6SeknqJamXpF6SeknqJamXpF6Seknq
JamXpF6SeknqJamXpF6SeknqJamXpF6SeknqJamXpF4l9SqpV0m9SupVUq+SepXUq6ReJfUqqVdJ
vUrqVVKvknqV1KukXiX1KqlXSb1K6lVSr5J6ldSrpF4l9SqpV0m9SupVUq+SepXUq6ReJfUqqVdJ
vUrqVVKvknqV1KukXiX1KqlXSb1K6lVSr5J6ldSrpF4l9SqpV0m9SupVUq+SepXUq6ReJfUqqVdJ
vUrqVVKvknqV1KukXuU72EoOVnKwkoOVHKSto9HW0WjraLR1NNo6Gm0djbaORltHo62j0dbRaOto
tHU02joabR2Nto5GW0ejraPR1tFo62i0dTTaOhptHY22jkZbR6Oto9HW0WjraLR1NNo6Gm0djbaO
RltHo62j0dbRaOtotHU02joabR2Nto5GW0ejraPR1tFo62i0dTTaOhptHY22jkZbR6Oto9HW0Wjr
aLR1NNo6Gm0djbaORltHo62j0dbRaOtotHU02joabR2Nto5GW0ejraPR1tFo62i0dTTaOhptHY22
jkZbR6Oto9HW0WjraLR1NNo6Gm0djW6ORjdHo5uj0c3R6OZodHM0ujka3RyNbo5GN0ejm6PRzdHo
5mh0czS6ORrdHI1ujkY3R6Obo9HN0ejmaHRzNLo5Gt0cjW6ORjdHo5uj0c3R6OZodHM0ujka3RyN
bo5GN0ejm6PRzdHo5mh0czS6ORrdHI1ujkY3R6Obo9HN0ejmaHRzNLo5Gt0cjW6ORjdHo5uj0c3R
6OZodHM0ujka3RyNbo5GN0ejm6PRzdHo5mh0czS6ORrdHI1ujkY3R6Obo9HN0ejmaHRzNLo5Gt0c
jW6ORjdHo5uj0c3R6OZodHM0ujka3RyNbo5GN0ejm6PRzdHo5mh0czS6ORrdHI1ujkY3R6Obo9HN
0ejmaHRzNLo5Gt0cjW6ORjdHo5uj0c3R6OZodHM0ujka3RyNbo5GN0ejm6PRzdHo5mh0czS6ORrd
HI1ujkY3R6Obo9HN0ejmaHRzNLo5Gt0cjW6ORjdHo5uj/dDN8YgaKPf65V6/3OuXe/1yr1/u9cu9
frnXL/f65V6/3OuXe/1yr1/u9cu9frnXL/f65V6/3OuXe/1yr1/u9cu9frnXL/f65V6/3OuXT3z9
8hE0UG6b67a5bpvrtrlum+u2uW6b67a5bpvrtrlum+u2uW6b67a5bpvrtrlum+u2uW6b67a5bpvr
trlum+u2uW6b67a5bpvrE7e5nmUD5U97LU+j5DgOjuPgOA6O4+A4Do7j5DhOjuPkOE7O/WTMkzFP
xjwZ82TMkzEvxrwY82LMizEvxrwY82LMizEvxkw2F7K5kM2FbC5kcyGbC9lcyOZCNheyuZDNhWwu
ZHMhmwvZXMjmQjYXsrmQzYVsLmRzIZsL2VzI5kI2F7K5kM2FbC5kcyGbC9lcyOZCNheyuZDNhWwu
ZHMhmwvZXMjmQjYXsrmQzYVsLmRzIZsL2VzI5kI2F7K5kM2FbC5kcyGbC9lcyOZCNheyuZDNhWwu
ZHMhmwvZXMjmQjYXsrmQzYVsLmRzIZsL2VzI5kI2F7K5DMZMDhZysJCDhRws5GAhBws5WMjBQg4W
crCQg4UcLORgIQcLOVjIwUIOFnKwkIOFHCzkYCEHCzlYyMFCDhZyMMjBIAeDHAxyMMjBIAeDHAxy
MMjBIAeDHAxyMMjBIAeDHAxyMMjBIAeDHAxyMMjBIAeDHAxyMMjBIAeDHAxyMMjBIAeDHAxyMMjB
IAeDHAxyMMjBIAeDHAxyMMjBIAeDHAxyMEi9IPWC1AsyLsi4IOOCjAsyLsi4IOOCjAsyLsi4IOOC
jAsyLsi4IOOCjAsyLsi4IOOCjAsyDh9Ox4fT8eF0fDgdH07Hh9Px4XR8OB0fTseH0/HhdHw4HR9O
x4fT8eF0fDgdH07Hh9Px4XR8OB0fTseH0/HhdHw4HR9Ox4fT8eF0fDgdH07Hh9Px4XR8OB0fTseH
0/HhdHw4HR9Ox4fT8eF0fDgdH07Hh9Px4XR8OB37Tcd+07HfdOw3HftNx37Tsd907Dcd+03HftOx
33TsNx37Tcd+07HfdOw3HftNx3XTcd10XDcd103HddNx3XRcNx3XTcd103HddFw3HddNx3XTcd10
XDcd103HddNx3XRcNx3XTcd103HddFw3HddNx3XTcd10XDcd103HddNx3XRcN6efMGYyDvtNx37T
sd907Dcd+03HftNx3XRcNx3XTcd103HddFw3HddNx3XTcd10XDcd103HddNx3XRcNx3XTcd103Hd
dFw3HddNx3XTcd10XDcd103HddNx3XRcNx3XTcd103HddFw3HddNx3XTcd10XDcd103HddNx3XRc
Nx3XTcd103HddFw3HddNx3XTcd10XDcd103HddNx3XRcNx3XTcd103HddFw3HddNx3XTcd10XDcd
103HddNx3XRcNx3XTcd103HddFw3HddNx3XTMdt0zDYds03HbNMx23TMNh2zTcds0zHbdMw2HbNN
x2zT8dh0PDYdj03HY9Px2HQ8Nh2PTcdj0/HYdDw2HY9Nx2PT8dh0PDYdj03HY9Px2HQ8Nh2PTcda
07HWdKw1HWtNx1rTsdb0H6w1typ+vebmyY4ep6PH6ehxOnqcjh6no8fp6HE6epyOHqejx+nocTp6
nI4ep6PH6ehxOnqcjh6no8fp6HE6epyOHqejx+nocTp6nI4ep6PH6ehxOnqcjh6no8fp6HE6epyO
Hqejx+nocTp6nI4ep6PH6ehxOnqcjh6no8fp6HE6epyOHqejx+nocTp6nI4ep6PH6ehxOnqcjh6n
o8fp6HE6epyOHqejx+nocTp6nI4ep6PH6ehxOnqcjh7n0vPFTxgzYYowpyPM6QhzOsKcjjCno8fp
6HE6epyOHqejx+nocTp6nI4ep6PH6ehxOnqcjh6no8fp6HE6epyOHqejx+nocTp6nI4ep6PH6ehx
Onqcjh6no8fp6HE6epyOHqejx+nocTp6nI4ep6PH6ehxOnqcjh6no8fp6HE6epyOHqejx+nocTp6
nI4ep6PH6ehxOnqcjh6no8fp6HE6epyOHqejx+nocTp6nI4ep6PH6ehxOnqcjh6no8fp6HE6epyO
Hqejx+nocTrqm476pqO+6ahvOuqbjvqmo77pqG866puO+qajvumobzrqm476pqO+6ahvOuqbjvqm
o77pqG866puO+qajvumobzrqm476pqO+6ahvOuqbjvqmo77pqG866puO+qajvumobzrqm476pqO+
6ahvOuqbjvqmo77pqG866puO+qajvumdjEMx01HMdBQzHcVMRzHTUcx0FDMdxUxHMdNRzHQUMx3F
TEcx01HMdBQzHcVMRzHTEcp0hDIdoUxHKNMRynSEMh2hTEco0xHKdPQxHX1MRx/T0cd09DEdfUxH
H9PRx3T0MR19TEcf09HHdPQxHX1MRx/T0cd09DEdfUxHH9PRx3T0MR19TEcf09HHdPQxHX1MRx/T
0cd09DEdfUxHH9PRx3T0MR19TEcf09HHdPQxHX1MRx/T0cd09DEdfUxHH9PRx3T0MR19TEcf09HH
dPQxHX1MRx/T0cd09DEdfUxHH9PRx3T0MR19TEcW05HFdGQxHVlMRxbTkcV0ZDEdWUxHFtORxXRk
MR1ZTEcW05HFdGQxHVlMRxbTkcV0ZDEdWUxHFtORxXRkMR1ZTEcW05HFdGQxHVlMRxbTkcV0ZDEd
WUxHFtORxXRkMR1ZTEcW05HFdGQxHVlMRw3TUcN01DAdNUxHDdNRw3TUMB01TEcN01HDdNQwHTVM
Rw3TEcF0RDAdEUxHBNMRwXREMB0RTEcE0xHBdEQwHRFMRwTTEcF0RDAdEUxHBNMRwXREMB0RTEcE
0xHBdEQwHRFMRwTTEcF0RDAdEUxHBNMRwXREMB0RTEcE0xHBdEQwHRFMRwTTEcF0RDAdEUxHBNMR
wXREMB0RTEcE0xHBdEQwHRFMRwTTEcF0RDAdEUxHBNMRwXREMB0RTEcE0xHBdEQwHRFMRwTTEcF0
RDAdEUxHBNMRwXREMB0RTEcE0xHBdEQwHRFMRwTTEcF0RDAd7Uv/QftyK3WSe4vj3uK4tzjuLY57
i+Pe4ri3OO4tjnuL497iuLc47i2Oe4vj3uK4tzjuLY57i+Pe4ri3OO4tjnuL497iuLc47i2Oe4vj
3uK4tzg+8S2OD6Vl/YgNlDdooNybKPcmyr2Jcm+i3Jso9ybKvYlyb6Lcmyj3Jsq9iXJvotybKPcm
yr2Jcm+i3Jso9ybKvYlyb6Lcmyj3Jsq9iXJvotybKPcmyr2J8olvojz3BspJyk5SdpKyk5SdpOwk
ZScpO01Zvhtd5O4idxe5u8jdRe4ucneRu4vcXeTuIncXubvI3UXuLt4tF0m8yN1F7i5yd5G7i9xd
5O4idxe5u8jdRe4ucneRu4vcXeTuIncXubvI3UXuLnJ3kbuL3F3k7iJ3F7m7yN1F7i5yd5G7i9xd
5O4idxe5u8jdRe4ucneRu4vcXeTuIncXubvI3UXuLnJ3kbuL3F3k7iJ3F7m7yN1F7i5yd5G7i9xd
5O4idxe5u8jdRe4ucneRu4vcXeTuIncXubvI3UXuLnJ3kbuL3F3k7iJ3F7m7eLdcJPHi3XKReovU
W6TeIvUWqbdIvUXqLVJv/Tz1xvHz1Dv9pPCT4CfJTyo/afyk85PBTyY/YcyFMRfGXBhzYcyFMRfG
XBhzYcyFMRfGHIw5GHMw5mDMwZiDMQdjDsYcjDkYczLmZMzJmJMxJ2NOxpyMORlzMuZkzJUxV8Zc
GXNlzJUxV8ZcGXNlzJUxV8bcGHNjzI0xN8bcGHNjzI0xN8bcGHNjzJ0xd8bcGXNnzJ0xd8bcGXNn
zJ0xd8Y8GPNgzIMxD8Y8GPNgzIMxD8Y8GPNgzJMxT8Y8GfNkzJMxT8Y8GfNkzJMxT8a8GPNizIsx
L8a8GPNizIsxL8a8GDM5iGpmoJoZqGYGqpmBamagmhmoZgaqmYFqZqCaGahmBqqZgWpmoJoZqGYG
qpmBamagmhmoZgaqmYFqZqCaGahmBqqZgWpmoJoZqGYGqpmBamagmhmoZgaqmYFqZqCaGahmBqqZ
gWpmoJoZqGYGqpmBamagmhmoZgaqmYFqZqCaGahmBqqZgWpmoJoZqGYGqpmBamagmhmoZgaqmYFq
ZqCaGahmBqqZgWpmoJoZqGYGqpmBamagmhmoZgaqmYFqZqCaGahmBqqZgWpmoJoZqGYGqpmBamag
mhmoZgaqmYFqZqCaGahmBqqZgWpmoJoZqGYGqpmBamagmhmoZgaqmYFqZqCaGahmBqqZgWpmoJoZ
qGYGqpmBamagmhmoZgaqmYFqZqCaGahmBqqZgWpmoJoZqGYGqpmBamagmhmoZgaqmYFqZqCaGahm
BqqZgWpmoJoZqGYGqpmBamagmhmoZgaqmYFqZqCaGahmBqqZgWpmoJoZqGYGqpmBamagmhmoZgaq
mYFqZqCaGahmBqqZ008YMzmIfGYgnzn9hDGTg+hoBjqagY5moKMZ6GgGOpqBjmagoxnoaAY6moGO
ZqCjGehoBjqagY5moKMZ6GgGOpqBjmagoxnoaAY6moGOZqCjGehoBjqagY5moKMZ6GgGOpqBjmag
oxnoaAY6moGOZqCjGehoBjqagY5moKMZ6GjGDzqah2igHHhvBt6bgfdm4L0ZeG8G3puB92bgvRl4
bwbem4H3ZuC9GXhvBt6bgfdm4L0ZeG8G3puB92bgvRl4bwbem9NPGDOBiwlnYMIZmHAGJpyBCWdg
whmYcAYmnIEJZ2DCGZhwBiacgQlnYMIZmHAGJpzTTxgzgYsbZ+DGGbhxBm6cgRtn4MYZuHEGbpyB
G2fgxhm4cQZunIEbZ+DGGbhxBm6cgRtn4MYZuHEGbpyBG2fgxhm4cQZunIEbZ+DGGbhxBm6cgRtn
4MYZuHEGbpyBG2fgxhm4cQZunIEbZ+DGOf2EMRO42HIGtpyBLWdgyxnYcga2nIEtZ2DLGdhyBrac
gS1nYMsZ2HIGtpyBLWdgyxnYcga2nIEtZ2DLGdhyBracgS1nYMsZ2HIGtpyBLWdgyxnYcga2nIEt
Z2DLGdhyBracgS1nYMsZ2HIGtpyBLWdgyxnYcga2nIEtZ2DLGdhyBracgS1nYMsZ2HIGtpyBLWdg
yxnYcga2nIEtZ2DLGdhyBracgS1nYMsZ2HIGtpyBLWdgyxnYcga2nIEt5/QTxkwO4s8Z+HMG/pyB
P2fgzxn4cwb+nIE/Z+DPGfhzBv6c008YMzmIUWdg1BkYdQZGnYFRZ2DUGRh1BkadgVFnYNQZGHUG
Rp2BUWdg1BkYdQZGnYFRZ2DUOf2EMZODOHYGjp2BY2fg2Bk4dkYlBxHTDMQ0AzHNQEwzENMMxDQD
Mc1ATDMQ0wzENAMxzUBMMxDTDMQ0AzHNQEwzENMMxDQDMc1ATDMQ0wzENAMxzUBMMxDTDMQ0AzHN
QEwzENMMxDQDMc1ATDMQ0wzENAMxzUBMMxDTDMQ0AzHNQEwzENMMxDQDMc1ATDMQ0wzENAMxzUBM
MxDTDMQ0AzHNQEwzENMMxDQDMc1ATDMQ0wzENAMxzUBMMxDTDMQ0AzHNQEwzENMMxDQDMc1ATDMQ
0wzENAMxzUBMMxDTnH7CmMlBVDUDVc1AVTNQ1QxUNQNVzUBVM1DVDFQ1A1XNQFUzUNUMVDUDVc1A
VTNQ1QxUNQNVzUBVM1DVDFQ1A1XNQFUzUNUMVDUDVc1AVTNQ1QxUNQNVzUBVM1DVDFQ1A1XNQFUz
UNUMVDUDVc1AVTMQ0wzENAMxzUBMMxDTDDQ0Aw3NQEMz0NAMNDQDDc1AQzPQ0Aw0NAMNzUBDM9DQ
DDQ0Aw3NQEMz0NAMNDQDDc1AQ3P6CWMm41DVDFQ1A1XNQFUzUNUMVDUDVc1AVTNQ1QxUNQNVzUBV
M1DVDFQ1A1XNQFUzUNUMxDQDMc1ATDMQ0wzENAMxzUBMMxDTDMQ0AzHNQEwzENMMxDQDMc1ATDMQ
0wzENAMxzUBMMxDTDMQ0AzHNQEwzENMMxDQDMc1ATDMQ0wzENAMxzUBMMxDTDMQ0AzHNQEwzENMM
xDQDMc1ATDMQ0wzENAMxzUBMMxDTDMQ0AzHNQExz+gljJtFQ1QxUNQNVzfhBVXO/Jte9K3Lvity7
IveuyL0rcu+K3Lsi967IvSty74rcuyL3rsi9K3Lvity7IveuyL0rcu+K3Lsi967IvSty74rcuyL3
rsi9K3Lvity7Ip/NrsiHMrneoIFyb6Lcmyj3Jsq9iXJvotybKPcmyr2Jcm+i3Jso9ybKvYlyb6Lc
myj3Jsq9iXJvotybKPcmyr2Jcm+i3Jso9ybKvYlyb6Lcmyj3JsonvonyzBsoT6PkOPK22cndTu52
cneQu4PcHbxtDpJ4kMSDJB4k8SCJB0k8SOJBEg+SeJDEgyQeJPEgiQdJPEjiQRIPkniQxIMkHiTx
IIkHSTxI4kESD5J4kMSDJB4k8SCJB0k8SOJBEg+SeJDEgyQeJPEgiQdJPHjbHGTzIJsH2TzI5kE2
D7J5kM2DbB5k8yCbB9k8yOZBNg+yeZDNg2weZPMgmwfZPMjmQTYPsnmQzYNsHmTzIJsH2TzI5kE2
D7J5kM2DbB5k8yCbB9k8yOZBNg+yeZDNg2weZPMgmwfZPMjmQTYPsnmQzYNsHmTzIJsH2TzI5sHb
5iAHBzk4yMFBDg5ycJKDkxyc5OAkByc5OMnBSQ5OcnCSg5McnOTgJAcnOTjJwUkOTnJwkoOTHJzk
4CQHJzk4ycFJDk5ycJKDkxyc5OAkByc5OMnBSQ5OcnCSg5McnOTgJAcnOTjJwUkOTnJwkoOTHJzk
4CQHJzk4ycFJDk5ycJKDkxyc5OAkByc5OMnBSQ5OcnCSg5McnOTgJAcnOTjJwUkOTnJwkoOTHJzk
4CQHJzk4ycFJDk5ycJKDkxyc5OAkByc5OMnBSQ5OcnCSg5McnOTgJAcnOTjJwUkOTnJwkoOTHJzk
IM6cgTNn4MwZOHMGzpyBM2fgzBk4cwbOnIEzZ+DMGThzBs6cgTNn4MwZOHMGzpyBM2fgzBk4cwbO
nIEzZ+DMGThzTj9hzOQgFp2BRWdg0RlYdAYWnYFFZ2DRGVh0BhadgUVnYNEZWHQGFp2BRWdg0RlY
dAYWnYFFZ2DRGVh0BhadgUVnYNEZWHQGFp2BRWdg0RlYdAYWnYFFZ2DRGVh0BhadgUVnYNEZWHQG
Fp2BRWdg0RlYdAYWnYFFZ2DRGVh0BhadgUVnYNEZWHQGFp2BRWdg0RlYdAYWnYFFZ2DRGVh0Bhad
gUVnYNEZWHQGFp2BRWdg0RlYdAYWnYFFZ2DRGVh0BhadgUVnYNEZWHQGFp2BRWdg0RlYdAYWnYFF
Z2DRGVh0BhadgUVnYNGZWHQmFp2JRWdi0ZlYdCYWnYlFZ2LRmVh0JhadiUVnYtGZWHQmFp2JRWdi
0ZlYdCYWnYlFZ2LRmVh0JhadiUVnYtGZWHQmFp2JRWdi0ZlYdCYWnYlFZ2LRmVh0JhadiUVnYtGZ
WHQmFp2JRWdi0ZlYdCYWnYlFZ2LRmVh0JhadiUVnYtGZWHQmFp2JRWdi0ZlYdCYWnYlFZ2LRmVh0
JhadiUVnYtGZWHQmFp2JRWdi0ZlYdCYWnYlFZ2LRmVh0JhadiUVnYtGZWHQmFp2JRWdi0ZlYdCYW
nYlFZ2LRmVh0JhadiUVnYtGZWHQmFp2JRWdi0ZlYdCYWnYlFZ2LRmVh0JhadefyO+PWaOyEn7p2J
e2fi3pm4dybunYl7Z+Lembh3Ju6diXtn4t6ZuHcm7p2Je2fi3pm4dybunYl7Z+Lembh3Ju6diXtn
4t6ZuHcm7p2Je2fi3pm4dybunYl7Z+Lembh3Ju6diXtn4t6ZuHcm7p2Je2fi3pm4dybunYl7Z+Le
mbh3Ju6diXtn4t6ZuHcm7p2Je2fi3pm4dybunYl7Z+Lembh3Ju6diXtn4t6ZuHcm7p2Je2fi3pm4
dybunYl7Z+Lembh3Ju6diXtn4t6ZuHcm7p2Je2fi3pm4dybunYl7Z2LamZh2JqadiWlnYtqZmHYm
pp2JaWdi2pmYdiamnYlpZ2LamZh2JqadiWlnYtqZmHYmpp2JaWdi2pmYdiamnYlpZ2LamZh2Jqad
iWlnYtqZmHYmpp2JV2fi1Zl4dSZenYlXZ+LVmXh1Jl6diVdn4tWZeHUmXp2JV2fi1Zl4dSZenYlX
Z+LVmXh1Jl6diVdn4tWZeHUmXp2JV2fi1Zl4dSZenYlXZ+LVmXh1Jl6diVdn4tWZeHUmXp2JV2fi
1Zl4dSZenYlXZ+LVmXh1Jl6diVdn4tWZeHUmXp2JV2fi1Zl4dSZenYlXZ+LVmXh1Jl6diVdn4tWZ
eHUmXp2JV2fi1Zl4dSZenYlXZ+LVmXh1Jl6diVdn4tWZeHUmXp2JV2fi1Zl4dSZenYlXZ+LVmXh1
Jl6diVdn4tWZeHUmXp2JV2cGqYe/ZuKvmfhrJv6aib9m4q+Z+Gsm/pqJv2bir5n4ayb+momtZmKr
mdhqJraaia1mYquZ2GomtpqJrWZiq5nYaia2momtZmKrmdhqJraaia1mYquZ2GomtpqJrWZiq5nY
aia2momtZmKrmdhqJraaia1mYquZ2GomtpqJrWZiq5nYaia2momtZmKrmdhqJraaia1mYquZ2Gom
bpqJm2bippm4aSZumombZuKmmbhpJm6aiZtm4qaZuGkmbpqJm2bippm4aSZumombZuKmmbhpJm6a
iZtm4qaZuGkmbpqJm2bippm4aSZumombZuKmmbhpJm6aiZtm4qaZuGkmbpqJm2bippm4aSZumomb
ZuKmmbhpJm6aiZtm4qaZuGkmbpqJm2bippm4aSZumombZuKmmbhpJm6aiZtm4qaZuGkmbpqJm2bi
ppm4aSZumombZuKmmbhpJm6aiZtm4qaZuGkmbpqJm2bippm4aSZumombZuKmmbhpJm6aiZtm4qaZ
uGkmbpqJm2bippm4aSZumombZuKmmbhpJm6aiZtm4qaZuGkmbpqJm2bippm4aSZumombZuKmmbhp
Jm6aiZtm4qaZuGkmbpqJm2bippm4aSZumombZuKmmbhpJm6aiZtm4qaZuGkmbpqJm2bippm4aSZu
mombZuKmmbhpJm6aiZtm4qaZuGkmbpqJm2bippm4aSZumombZuKmmbhpJm6aiZtm4qaZuGkmbpqJ
m2bippm4aSZumvmDm+ZW6yTvtoFy74rcuyL3rsi9K3Lvity7IveuyL0rcu+K3Lsi967IvSty74rc
uyL3rsi9K3Lvity7IveuyL0rcu+K3Lsi967IvSty74rcuyL3rsgnvivyETRQ7n2Xe9/l3ne5913u
fZd73+Xed7n3Xe59l3vf5d53ufdd7n2Xe9/l3ne5913ufZd73+Xed7n3Xe59l3vf5d53ufdd7n2X
e9/l3nf5xPddnmUD5ZU1S5jYCRM7YWInTOyEiZ0wsRMmdsLETpjYCRM7YWInTOyEiZ0wsRMmdsLE
TpjYCRM7YWInTOyEiZ0wsRMmdsLETpjYCRM7YWInTOyEiZ0wsRMmdsLETpjYCRM7YWInTOyEiZ0w
sRMmdsLETpjYCRM7YWInTOyEiZ0wsRMmdsLETpjYCRM7YWInTOyEiZ0wsRMmdsLETpjYCRM7YWIn
TOyEiZ0wsRMmdsLETpjYCRM7YWInTOyEiZ0wsRMmdsLETpjYCRM7YWInTOyEiZ0wsRMmdsLETpjY
CRM7YWInTOyEiZ0wsRMmdsLETpjYCRM7YWInTOyEiZ0wsRMmdsLETpjYCRM7YWInTOyEiV0wsQsm
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
8o5JecekvGNS3jEp75iUd0zKOyblHZPyjkl5x6S8Y1LeMSnvmJR3TMo7JuUdk/KOSXnHpLxjUt4x
5+0vRN7E5Lp3Re5dkXtX5N4VuXdF7l2Re1fk3hW5d0XuXZF7V+TeFbl3Re5dkXtX5N4VuXdF7l2R
e1fk3hW5d0XuXZF7V+TeFbl3Re5dkXtX5NPeFXm2DZR7E+XeRLk3Ue5NlHsT5d5EuTdR7k2UexPl
3kS5N1HuTZR7E+XeRLk3Ue5NlHsT5d5EuTdR7k2UexPl3kS5N1HuTZR7E+XeRLk3UT6bTZRn3kC5
AqYoYYoSpihhihKmKGGKEqYoYYoSpihhihKmKGGKEqYoYYoSpihhihKmKGGKEqYoYYoSpihhihKm
KGGKEqYoYYoSpihhihKmKGGKEqYoYYoSpihhihKmKGGKEqYoYYoSpihhihKmKGGKEqYoYYoSpihh
ihKmKGGKEqYoYYoSpihhihKmKGGKEqYoYYoSpihhihKmKGGKEqYoYYoSpihhihKmKGGKEqYoYYoS
pihhihKmKGGKEqYoYYoSpihhihKmKGGKEqYoYYoSpihhihKmKGGKEqYoYYoSpihhihKmKGGKEqYo
YYoSpihhihKmKGGKEqYoYYoSpihha5McrORgJQcrOVjJwUoOVnKwkoOVHKzkYCUHKzlYycFKDlZy
sJKDlRys5GAlBys5WMnBSg5WcrCSg5UcrORgJQcrOVjJwUoOVnKwkoOVHKzkYCUHKzlYycFKDlZy
sJKDlRys5GAlBys5WMnBSg5WcrCSg5UcrORgJQcrOVjJwUoOVnKwkoOVHKzkYCUHKzlYycFKDlZy
sJKDlRys5GAlBys5WMnBSg5WcrCSg5UcrORgJQcrOVjJwUoOVnKwkoOVHKzkYCUHKzlYycFKDlZy
sJKDlRys5GAlBys5WMnBSg5WcrCSg5UcrORgJQcrOQjDumBYFwzrgmFdMKwLhnXBsC4Y1gXDumBY
FwzrgmFdMKwLhnXBsC4Y1gXDumBYFwzrgmFdMKwLhnXBsC4Y1gXDumBYFwzrgmFdMKwLhnXBsC4Y
1gXDumBYFwzrgmFdMKwLhnXBsC4Y1gXDumBYFwzrgmFdMKwLhnXBsC4Y1gXDumBYFwzrgmFdMKwL
hnXBsC4Y1gXDumBYFwzrgmFdMKwLhnXBsC4Y1gXDumBYFwzrgmFdMKwLhnXBsC4Y1gXDumBYFwzr
gmFdMKwLhnXBsC4Y1gXDumBYFwzrgmFdMKwLhnXBsC4Y1gXDumBYFwzrgmFdMKwLhnXBsC4Y1gXD
umBYFwzrgmFdMKwLhnXBsC4Y1gXDumBYFwzrgmFdMKwLhnXBsC4Y1gXDumBYFwzrgmFdMKwLhnXB
sC4Y1gXDumBYFwzrgmFdMKwLhnXBsC4Y1gXDumBYFwzrgmFdMKwLhnXBsC4Y1gXDumBYFwzrgmFd
MKwLhnXBsC4Y1gXDumBYFwzrgmFdMKwLhnXBsC4Y1gXDumBYFwzrgmFdMKwLhnXBsC4Y1gXDumBY
FwzrgmFdMKwLhnXBsC4Y1gXDumBYFwzrgmFdMKwLhnXBsC4Y1gXDumBYFwzrgmFdMKwLhnXBsC4Y
1gXDumBYFwzrgmFdMKwLhnXBsC4Y1gXDumBYFwzrgmFdMKwLhnXBsK7+O+LXa+6EXJCvC/J1Qb4u
yNcF+bogXxfk64J8XZCvC/J1Qb4uyNcF+bogXxfk64J8XZCvC/J1Qb4uyNcF+bogXxfk64J8XZCv
C/J1Qb4uyNcF+bogXxfk64J8XZCvC/J1Qb4uyNcF+bogXxfk64J8XZCvC/J1Qb4uyNcF+bogXxfk
64J8XZCvC/J1Qb4uyNcF+bogXxfk64J8XZCvC/J1Qb4uyNcF+bogXxfk64J8XZCvC/J1Qb4uyNcF
+bogXxfk64J8XZCvC/J1Qb4uyNcF+bogXxfk64J8XZCvC/J1Qb4uyNcF+bogXxfk64J8XZCvC/J1
Qb4uyNcF+bogXxfk64J8XZCvC/J1Qb4uyNcF+bogXxfk64J8XZCvC/J1Qb4uyNcF+bogXxfk64J8
XZCvC/J1Qb4uyNcF+bogXxfk64J8XZCvC/J1Qb4uyNcF+bogXxfk64J8XZCvC/J1Qb4uyNcF+bog
Xxfk64J8XZCvC/J1Qb4uyNcF+bogXxfk64J8XZCvC/J1Qb4uyNcF+bogXxfk64J8XZCvC/J1Qb4u
yNcF+bogXxfk64J8XZCvC/J1Qb4uyNcF+bogXxfk64J8XZCvC/J1Qb4uyNcF+bogXxfk64J8XZCv
C/J1Qb4uyNcF+bogXxfk64J8XZCvC/J1Qb4uyNcF+bogXxfk64J8XZCvC/J1Qb4uyNcF+bogXxfk
65rkII0ei0aPRaPHotFj0eixaPRYNHosGj0WjR6LRo9Fo8ei0WPR6LFo9Fg0eiwaPRaNHotGj0Wj
x6LRY9HosWj0WDR6LBo9Fo0ei0aPRaPHotFj0eixaPRYNHosGj0WjR6LRo9Fo8ei0WPR6LFo9Fg0
eiwaPRaNHotGj0Wjx6LRY9HosWj0WDR6LBo9Fo0ei0aPRaPHotFj0eixaPRYNHosGj0WjR6LRo9F
o8ei0WPR6LFo9Fg0eiwaPRaNHotGj0Wjx6LRY9HosWj0WDR6LBo9Fo0ei0aPRaPHotFj0eixaPRY
NHosGj0WjR6LRo9Fo8ei0WPR6LFo9Fg0eiwaPRaNHotGj0Wjx6LRY9HosWj0WDR6LBo9Fo0ei0aP
RaPHotFj/bzRYxw/b/S4/EnhJ8FPkp9UftL4Secng59MfsKYC2MujLkw5sKYC2MujLkw5sKYC2Mu
jDkYczDmYMzBmIMxB2MOxhyMORhzMOZkzMmYkzEnY07GnIw5GXMy5mTMyZgrY66MuTLmypgrY66M
uTLmypgrY66MuTHmxpgbY26MuTHmxpgbY26MuTHmxpg7Y+6MuTPmzpg7Y+6MuTPmzpg7Y+6MeTDm
wZgHYx6MeTDmwZgHYx6MeTDmwZgnY56MeTLmyZgnY56MeTLmyZgnY56MeTHmxZgXY16MeTHmxZgX
Y16M+fbrJO+igXKvX+71y71+udcv9/rlXr/c65d7/XKvX+71y71+udcv9/rlXr/c65d7/XKvX+71
y71+udcv9/rlXr/c65d7/XKvX+71y71++WzWL8+2gXLbXLfNddtct81121y3zXXbXLfNddtct811
21y3zXXbXLfNddtct81121y3zXXbXLfNddtct81121y3zXXbXLfNddtcn43N9bwbKC9XV3++/ltg
igpMUYEpKjBFBaaowBQVmKICU1RgigpMUYEpKjBFBaaowBQVmKICU1RgigpMUYEpKjBFBaaowBQV
mKICU1RgigpMUYEpKjBFBaaowBQVmKICU1RgigpMUYEpKjBFBaaowBQVmKICU1RgigpMUYEpKjBF
BaaowBQVmKICU1RgigpMUYEpKjBFBaaowBQVmKICU1RgigpMUYEpKjBFBaaowBQVmKICU1RgigpM
UYEpKjBFBaaowBQVmKICU1RgigpMUYEpKjBFBaaowBQVmKICU1RgigpMUYEpKjBFBaaowBQVmKIC
U1RgigpMUYEpKjBFBaaowBQVmKICU1RgigpMUVmMmRwMcjDIwSAHgxwMcjDIwSAHgxwMcjDIwSAH
gxwMcjDIwSAHgxwMcjDIwSAHgxwMcjDIwSAHgxwMcjDIwSAHgxwMcjDIwSAHgxwMcjDIwSAHgxwM
cjDIwSAHgxwMcjDIwSAHgxwMcjDIwSAHgxwMcjDIwSAHgxwMcjDIwSAHgxwMcjDIwSAHgxwMcjDI
wSAHgxwMcjDIwSAHgxwMcjDIwSAHgxwMcjDIwSAHgxwMcjDIwSAHgxwMcjDIwSAHgxwMcjDIwSAH
gxwMcjDIwSAHgxwMcjDIwSAHgxwMcjDIwSAHgxxMcjDJwSQHkxxMcjDJwSQHkxxMcjDJwSQHkxxM
cjDJwSQHkxxMcjDJwSQHkxxMcjDJwSQHkxxMcjDJwSQHkxxMcjDJwSQHkxxMcjBJvST1ktRLUi9J
vST1ktRLUi9JvST1ktRLUi9JvST1ktRLUi9JvST1ktRLUi9JvST1ktRLUi9JvST1ktRLUi9JvST1
ktRLUi9JvST1ktRLUi9JvST1ktRLUi9JvST1ktRLUi9JvST1ktRLUi9JvST1ktRLUi9JvST1ktRL
Ui9JvST1ktRLUi9JvST1ktRLUi9JvST1KqlXSb1K6lVSr5J6ldSrpF4l9SqpV0m9SupVUq+SepXU
q6ReJfUqqVdJvUrqVVKvknqV1KukXiX1KqlXSb1K6lVSr5J6ldSrpF4l9SqpV3n7q+RgJQcrOVjJ
wUoOVnKwkoOVHKzkYCUHKzlYycFKDlZysJKDlRys5GAlBys5WMnBSg5WcrCSg5UcrORgJQcrOVjJ
wUoOVnKwkoOVHKzkYCUHKzlYycFKDlZysJKDlRys5GAlBys5WMnBSg5WcrCSg5UcrORgJQcrOVjJ
wUoOVnKwkoOVHKzkYCUHKzlYycFKDlZysJKDlRys5OAPxOqtil+vJ30dRyNwG4HbCNxG4DYCtxG4
jcBtBG4jcBuB2wjcRuA2ArcRuI3AbQRuI3AbgdsI3EbgNgK3EbiNwG0EbiNwG4HbCNxG4DYCtxG4
jcBtBG4jcBuB2wjcRuA2ArcRuI3AbQRuI3AbgdsI3EbgNgK3EbiNwG0EbiNwG4HbCNxG4DYCtxG4
jcBtBG4jcBuB2wjcRuA2ArcRuI3AbQRuI3AbgdsI3EbgNgK3EbiNwG0EbiNwG4HbCNxG4DYCtxG4
jcBtBG4jcBuB2wjcRuA2ArcRuI3AbQRuI3AbgdsI3EbgNgK3EbiNwG0EbiNwG4HbCNzGi2cnBzs5
2MnBTg52crCTg50c7ORgJwc7OdjJwU4OdnKwk4OdHOzkYCcHOznYycFODnZysJODnRzs5GAnBzs5
2MnBTg52crCTg50c7ORgJwc7OdjJwU4OdnKwk4OdHOzkYCcHOznYycFODnZysJODnRzs5GAnBzs5
2MnBTg52crCTg50c7ORgJwc7OdjJwU4OdnKwk4OdHOzkYCcHOznYycFODnZysJODnRzs5GAnBzs5
2MnBTg52crCTg50c7ORgJwc7OdjJwU4OdnKwk4OdHOzkYCcHOznYycFODnZysJODnRzs5GAnBzs5
2MnBTg4OcnCQg4McHOTgIAcHOTjIwUEODnJwkIODHBzk4CAHBzk4yMFBDg5ycJCDgxwc5OAgBwc5
OMjBQQ4OcnCQg4McHOTgIAcHOTjIwUEODnJwkIODHBzk4CAHBzk4yMFBDg5ycJCDgxwc5OAgBwc5
OMjBQQ4OcnCQg4McHOTgIAcHOTjIwUEODnJwkIODHBzk4CAHBzk4yMFBDg5ycJCDgxwc5OAgBwc5
OMjBQQ4OcnCQg4McHOTgIAcHOTjIwUEODnJwkIODHBzk4CAHBzk4yMFBDg5ycJCDgxwc5OAgBwc5
OMjBQQ4OcnCQg4McHOTgJAcnOTjJwUkOTnJwkoOTHJzk4CQHJzk4ycFJDk5ycJKDkxyc5OAkByc5
OMnBSQ5OcnCSg5McnOTgJAcnOTjJwUkOTnJwkoOTHJzk4CQHJzk4ycFJDk5ycJKDkxyc5OAkByc5
OMnBSQ5OcnCSg5McnOTgJAcnOTjJwUkOTnJwkoOTHJzk4CQHJzk4ycFJDk5ycJKDkxyc5OAkByc5
OMnBSQ5OcnCSg5McnOTgJAcnOTjJwUkOTnJwkoOTHJzk4CQHJzk4ycFJDk5ycJKDkxyc5OAkByc5
OMnBSQ5OcnCSg5McnOTgJAcnOTjJwXn7C5HXN7nuXZF7V+TeFbl3Re5dkXtX5N4VuXdF7l2Re1fk
3hW5d0XuXZF7V+TeFbl3Re5dkXtX5N4VuXdF7l2Re1fk3hW5d0XuXZF7V+TeFfnUd0WebQPl3kS5
N1HuTZR7E+XeRLk3Ue5NlHsT5d5EuTdR7k2UexPl3kS5N1HuTZR7E+XeRLk3Ue5NlHsT5d5EuTdR
7k2UexPl3kS5N1HuTZTPZhPluTdQLrJ5kc2LbF5k8yKbF9m8yOZFNi+yeZHNi2xeZPMimxfZvMjm
RTYvsnmRzYtsXmTzIpsX2bzI5kU2L7J5kc2LbF5k8yKbF9m8yOZFNi+yeZHNi2xeZPMimxfZvMjm
RTYvsnmRzYtsXmTzIpsX2bzI5kU2L7J5kc2LbF5k8yKbF9m8yOZFNi+yeZHNi2xeZPMimxfZvMjm
RTYvsnmRzYtsXmTzIpsX2bzI5kU2L7J5kc2LbF5k8yKbF9m8yOZFNi+yeZHNi2xeZPMimxfZvMjm
RTYvsnmRzYtsXmTzIpsX2bzI5kU2L7J5kc2LbF4/f0ctx89z8PSTwk+CnyQ/qfyk8ZPOTwY/mfyE
MRfGXBhzYcyFMRfGXBhzYcyFMRfGXBhzMOZgzMGYgzEHYw7GHIw5GHMw5mDMyZiTMSdjTsacjDkZ
czLmZMzJmJMxV8ZcGXNlzJUxV8ZcGXNlzJUxV8ZcGXNjzI0xN8bcGHNjzI0xN8bcGHNjzI0xd8bc
GXNnzJ0xd8bcGXNnzJ0xd8bcGfNgzIMxD8Y8GPNgzIMxD8Y8GPNgzIMxT8Y8GfNkzJMxT8Y8GfNk
zJMxT8Y8GfNizIsxL8a8GPNizIsxL8a8GPNizOQgpp2Caadg2imYdgqmnYJpp2DaKZh2Cqadgmmn
YNopmHYKpp2Caadg2imYdgqmnYJpp2DaKZh2CqadgmmnYNopmHYKpp2Caadg2imYdgqmnYJpp2Da
KZh2CqadgmmnYNopmHYKpp2Caadg2imYdgqmnYJpp2DaKZh2CqadgmmnYNopmHYKpp2Caadg2imY
dgqmnYJpp2DaKZh2CqadgmmnYNopmHYKpp2Caadg2imYdgqmnYJpp2DaKZh2CqadgmmnYNopmHYK
pp2Caadg2imYdgqmnYJpp2DaKZh2CqadgmmnYNopmHYKpp2Caadg2imYdgqmnYJpp2DaKZh2Cqad
gmmnYNopmHYKpp2Caadg2imYdgqmnYJpp2DaKZh2CqadgmmnYNopmHYKpp2Caadg2imYdgqmnYJp
p2DaKZh2CqadgmmnYNopmHYKpp2Caadg2imYdgqmnYJpp2DaKZh2CqadgmmnYNopmHYKpp2Caadg
2imYdgqmnYJpp2DaKZh2CqadgmmnYNopmHYKpp2Caadg2imYdgqmnYJpp2DaKZh2CqadgmmnYNop
mHYKpp2Caadg2imYdgqmnYJpp2DaKZh2CqadgmmnYNopmHYKpp2Caadg2imYdgqmnYJpp2DaKZh2
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
BJKfQPITSH4CyU8g+QkkP4HkJ5D8BJKfQPITSH4CyU8g+QkkP4HkJ5D8BJKfQPITSH4CyU8g+Qkk
P4HkJ5D8BJKfQPITSH4CyU8g+YkgB2FYA4Y1YFgDhjVgWAOGNWBYA4Y1YFgDhjVgWAOGNWBYA4Y1
YFgDhjVgWAOGNWBYA4Y1YFgDhjVgWAOGNWBYA4Y1YFgDhjVgWAOGNWBYA4Y1YFgDhjVgWAOGNWBY
A4Y1YFgDhjVgWAOGNWBYA4Y1YFgDhjVgWAOGNWBYA4Y1YFgDhjVgWAOGNWBYA4Y1YFgDhjVgWAOG
NWBYA4Y1YFgDhjVgWAOGNWBYA4Y1IFYDYjUgVgNiNSBWA2I1IFYDYjUgVgNiNSBWA2I1IFYDYjUg
VgNiNSBWA2I1IFYDYjUgVgNiNSBWA2I1IFYDYjUgVgNiNSBWA2I1IFYDYjUgVgNiNSBWA2I1IFYD
YjUgVgNiNSBWA2I1IFYDYjUgVgNiNSBWA2I1IFYDYjUgVgNiNSBWA2I1IFYDYjUgVgNiNSBWA2I1
IFYDYjUgVgNiNSBWA2I1IFYDYjUgVgNiNSBWA2I1IFYDYjUgVgNiNSBWA2I1IFYDYjUgVgNiNSBW
A2I1IFYDYjUgVgNiNSBWA2I1IFYDYjUgVgNiNSBWA2I1IFYDYjUgVgNiNSBWA2I1IFYDYjUgVgNi
NSBWA2I1IFYDYjUgVgNiNSBWA2I1IFYDYjUgVgNiNSBWA2I1IFYDYjUgVgNiNSBWA2I1IFYDYjUg
VgNiNSBW4wdi9SNXFX+qkiwD4mdA/AyInwHxMyB+BsTPgPgZED8D4mdA/AyInwHxMyB+BsTPgPgZ
ED8D4mdA/AyInwHxMyB+BsTPgPgZED8D4mdA/AyInwHxMyB+BsTPgPgZED8D4mdA/AyInwHxMyB+
BsTPgPgZED8D4mdA/AyInwHxMyB+BsTPgPgZED8D4mdA/AyInwHxMyB+BsTPgPgZED8D4mdA/AyI
nwHxMyB+BsTPgPgZED8D4mdA/AyInwHxMyB+BsTPgPgZED8D4mdA/AyInwHxMyB+BsTPgPgZED8D
4mdA/AyInwHxMyB+BsTPgPgZED8D4mdA/AyInwHxMyB+BsTPgPgZED8D4mdA/AyInwH5OsnBSQ5O
cnCSg5McnOTgJAcnOTjJwUkOTnJwkoOTHJzk4CQHJzk4ycFJDk5ycJKDkxyc5OAkByc5OMnBSQ5O
cnCSg5McnOTgJAcnOTjJwUkOTnJwkoOTHJzk4CQHJzk4ycFJDk5ycJKDkxyc5OAkByc5OMnBSQ5O
cnCSg5McnOTgJAcnOTjJwUkOTnJwkoOTHJzk4CQHJzk4ycFJDk5ycJKDkxyc5OAkByc5OMnBSQ5O
cnCSg5McnOTgJAcnOTjJwUkOTnJwkoOTHJzk4CQHJzk4ycFJDk5ycJKDkxyc5OAkByc5OMnBSQ5O
cnCSg4scXOTgIgcXObjIwUUOLnJwkYOLHFzk4CIHFzm4yMFFDi5ycJGDixxc5OAiBxc5uMjBRQ4u
cnCRg4scXOTgIgcXObjIwUUOLnJwkYOLHFzk4CIHFzm4yMFFDi5ycJGDixxc5OAiBxc5uMjBRQ4u
cnCRg4scXOTgIgcXObjIwUUOLnJwkYOLHFzk4CIHFzm4yMFFDi5ycJGDixxc5OAiBxc5uMjBRQ4u
cnCRg4scXOTgIgcXObjIwUUOLnJwkYOLHFzk4CIHFzm4yMFFDi5ycJGDixxc5OAiBxc5uMjBRQ4u
cnCRg4scXOTgIgcX368erDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMe
rDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMe
rDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMe
rDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMe
rDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMerDMe
rDMerDMerDMerDMerDMerDMerDMerDMerDMet69lvQuT616/3OuXe/1yr1/u9cu9frnXL/f65V6/
3OuXe/1yr1/u9cu9frnXL/f65V6/3OuXe/1yr1/u9cu9frnXL/f65V6/3OuXe/3y2axfPpTJ9QYN
lNvmum2u2+a6ba7b5rptrtvmum2u2+a6ba7b5rptrtvmum2u2+a6ba7b5rptrtvmum2u2+a6ba7b
5rptrtvmum2u2+b6xG2uZ9lA+dNey9MoC+MOfpL8pPKTxk86Pxn8ZPITjiPZ3MjmRjY3srmRzY1s
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
wUk8OIkHJ/HgJB6cxIOTeHASD07iwUk8OIkHJ/HgJB6cxIOTeHASD07iwUk8OIkHJ/HgJB6cxIOT
eHASD07iwUk8OIkHJ/HgJB6cxIOTeHASD07iwUk8OIkHJ/HgJB6cxIOTeHASD07iwUk8OIkHJ/Hg
JB6cxIOTeHASD07iwUk8OIkHJ/HgJB6cxIOTeHASD07iwUk8OIkHJ/HgJB6cxIOTeHASD07iwUk8
OIkHJ/HgJB6cxIOTeHASD07iwUk8OJm/s6p4Jg2Ue/1yr1/u9cu9frnXL/f65V6/3OuXe/1yr1/u
9cu9frnXL/f65V6/3OuXe/1yr1/u9cu9frnXL/f65V6/3OuXe/1yr1/u9ctns355tg2U2+a6ba7b
5rptrtvmum2u2+a6ba7b5rptrtvmum2u2+a6ba7b5rptrtvmum2u2+a6ba7b5rptrtvmum2u2+a6
ba7b5vpsbK5n2UD5017LTJiihClKmKKEKUqYooQpSpiihClKmKKEKUqYooQpSpiihClKmKKEKUqY
ooQpSpiihClKmKKEKUqYooQpSpiihClKmKKEKUqYooQpSpiihClKmKKEKUqYooQpSpiihClKmKKE
KUqYooQpSpiihClKmKKEKUqYooQpSpiihClKmKKEKUqYooQpSpiihClKmKKEKUqYooQpSpiihClK
mKKEKUqYooQpSpiihClKmKKEKUqYooQpSpiihClKmKKEKUqYooQpSpiihClKmKKEKUqYooQpSpii
hClKmKKEKUqYooQpSpiihClKmKKEKUqYooQpSpiihClKmKIKW1vJwUoOVnKwkoOVHKzkYCUHKzlY
ycFKDlZysJKDlRys5GAlBys5WMnBSg5WcrCSg5UcrORgJQcrOVjJwUoOVnKwkoOVHKzkYCUHKzlY
ycFKDlZysJKDlRys5GAlBys5WMnBSg5WcrCSg5UcrORgJQcrOVjJwUoOVnKwkoOVHKzkYCUHKzlY
ycFKDlZysJKDlRys5GAlBys5WMnBSg5WcrCSg5UcrORgJQcrOVjJwUoOVnKwkoOVHKzkYCUHKzlY
ycFKDlZysJKDlRys5GAlBys5WMnBSg5WcrCSg5UcrORgJQcrOVjJwUoOVnKwkYMwrAnDmjCsCcOa
MKwJw5owrAnDmjCsCcOaMKwJw5owrAnDmjCsCcOaMKwJw5owrAnDmjCsCcOaMKwJw5owrAnDmjCs
CcOaMKwJw5owrAnDmjCsCcOaMKwJw5owrAnDmjCsCcOaMKwJw5owrAnDmjCsCcOaMKwJw5owrAnD
mjCsCcOaMKwJw5owrAnDmjCsCcOaMKwJw5owrAnDmjCsCcOaMKwJw5owrAnDmjCsCcOaMKwJw5ow
rAnDmjCsCcOaMKwJw5owrAnDmjCsCcOaMKwJw5owrAnDmjCsCcOaMKwJw5owrAnDmjCsCcOaMKwJ
w5owrAnDmjCsCcOaMKwJw5owrAnDmjCsCcOaMKwJw5owrAnDmjCsCcOaMKwJw5owrAnDmjCsCcOa
MKwJw5owrAnDmjCsCcOaMKwJw5owrAnDmjCsCcOaMKwJw5owrAnDmjCsCcOaMKwJw5owrAnDmjCs
CcOaMKwJw5owrAnDmjCsCcOaMKwJw5owrAnDmjCsCcOaMKwJw5owrAnDmjCsCcOaMKwJw5owrAnD
mjCsCcOaMKwJw5owrAnDmjCsCcOaMKwJw5owrAnDmjCsCcOaMKwJw5owrAnDmjCsCcOaMKwJw5ow
rAnDmjCsCcOaMKwJw5owrAnDmjCsCcOaMKwJw5owrDk+pYHyp52QCfmakK8J+ZqQrwn5mpCvCfma
kK8J+ZqQrwn5mpCvCfmakK8J+ZqQrwn5mpCvCfmakK8J+ZqQrwn5mpCvCfmakK8J+ZqQrwn5mpCv
CfmakK8J+ZqQrwn5mpCvCfmakK8J+ZqQrwn5mpCvCfmakK8J+ZqQrwn5mpCvCfmakK8J+ZqQrwn5
mpCvCfmakK8J+ZqQrwn5mpCvCfmakK8J+ZqQrwn5mpCvCfmakK8J+ZqQrwn5mpCvCfmakK8J+ZqQ
rwn5mpCvCfmakK8J+ZqQrwn5mpCvCfmakK8J+ZqQrwn5mpCv+QP5evYe852COwV3Cu4U3Cm4U/DO
UvBsbTibLN1k6SZLN1m6ydJNlm6ydJOlmyzdZOkmSzdZusnSTZZusnSTpZss3WTpJks3WbrJ0k2W
brJ0k6WbLN1k6SZLnw1Z+qA2nMt/67M/vX3zt3cXb9999pdX796/efvdZ+//cvHicjTvX715/eLV
6/cXb798+fnFZ28vvnrz8os/fvHm82+/vnj9/o9/e/vq/cX3v+hucKJbGty/+1/+jzevL37/WLy9
ePfm27efX7z77PKHf3n59nSo3/3hv7+7mw/3a7/t1y6HWzoYH3kY3l588+bt+/s9GP/8nQ95SC6H
+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
ONOJau8WfZC74oE0M7c1uCd8t75/882Lh3iMvsm49v163zfG1aN/Thl77XF94pV3lo/aHwxsP3s+
xD1xlg+e1x/Y086xc7xhd3491L16jrfpU7pDv3jz9Wd/efXu/Zu3r04H567vvV/4bTsBP/Gu+oVj
eof3y01/24fn/u3Fl19dfP69y/fi6z9dfPHF3etzf+vX3vGM/s/f//riby9u/l9dfHXx9em99t1P
Yz6nDPm1I3y3v+d02f351euXX704n3v4IbrQvKh+96b9tXvgjueKT/u1v3kvPMRHvv6UfEsf/IMb
675+6S/cZXfzqz/8taeb4uLLV68vvrjufzCu+y++f/vtxR3OSl++eXN3Cfjhf1/+0B7h7FWP+u9+
5VzfzYX1UB9r3M3H8RddXtH39btOl/d9/arT5X3/M+vPHwrvfqb78uVX7+5yQvr//lDD8T/F8Z++
/z/+f9f9D/+Pl//Hja6My89xHwfsf399mixevf/uDo/Zizv5Hbcyq3A6z2bS/Nkj6bdfXTvI3n+/
iePNf33/9tXrP9/kYJwu0fuajf5xRdzX73txt7/wvrfP/fM0/9vLr769+E9f3uRQXF5K95alVy/F
szn0vzLOH4/lXU+6//xe9J9fhH5f8nTxp8+ulDi9/Pztm3fvXnzx5vNvv387++w42r19ff9RA9vf
4d/Wd/gfdfjv44v82x/Yp158fzndi+d5W/xzZA9/aK8fFh/z3zzUk9vdT9mPMyb6ucZE3zHxkDHR
zzUm+o6Ju4qJfh8TzjjXCWfsCechJ5xxrhPO2BPOXU044z4mnHmuE87cE85DTjjzXCecuSecu5pw
5n1MOOtcJ5y1Ob+HnHDWuU4467oc7bt3l//z4ttXl+N79X9dvDjKXT7O//rv+zj2fU+Rt3gx7OcR
D/yvX7B3c9d/5O/75CQpx5lG3I8D28/UDxNxPx7+84u46wzsUy++n/Z9/Os3r765+Jf3b199/tev
Lv6XL+L/dnY3ym+M9YwO/++KQ+J8HCaxn63v11YU52Mriju6us/J0RP/dPSc7yHjx3+86y1/tza8
PXHc08TxWyfhDCaTjx7eLVyOn//lzZt3Fy8u/v7q3WWOn+1t80vj3PfPQ90/v3Q2zvFGuvE4b36l
ntud87M75MyO6s+gp8t/590970H+6XfeiWbxpwv8mzffg80PYtW48eBu5Uq54RVxL1Prw+7M/ri9
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
++Lm7dXu2YvLV68uX48bFU6Vcq5vz15c3ErNWxDX7546u7iYTs0hOvXJweJT90Rz76DUE43HTIPQ
7x4+f3X2xe2TX1ztdq8/fvPEFUk+HM/0E430Hi3LgyL8LlUcHdkjeXJ804vL1zdXlxfX+xSWTyA+
fgLqEn86Bpf/xIA88RTtk3tFJ44gTh7aFQdW9o+YVz6oWy7fvDueuWD5YZR78b198j6hpllLmw8r
oecJ6WEPKVufPCzYd2g5/4D+eARHXp29vP29fLkbd8menbz4Prol3e7QNPn9MZjT7OKe6B4qNWbn
tP7ksbHy7/X06/G2s9cvdidjHsL5FeUqvr7Zvb4+f35+cX7zzbPbe3bnXxzesLg3uCXh/qnlxL2H
4JBi4mnB/Sgh3oqgV+evLy8uv/jm2ZuLt1+cvx5hf30zvuD80FzxHmD2ZlXPSQwudsEe+P09iOtw
/P1YMPdioeuzV28udh/ffH1zXFaecBynq+5liczSPHq4cXS9u1UmN+cvrp9NZue+m/aj35xz2ObH
kf8C98N9P0H6o+N4D5fGj/ToPr/7IDn9sG8+hJ1nFMf9/WPkycvz67PnF7uXJ/oWZ/JhKlLeF8qe
TMjfz1BlPNBhv4S5flY6vB+pHURQPQGUH2QmqjJTsvnZmJHz/Ox6x4eejX98dvb88u3NZ88vzl5/
dUBOfyC4PfH+EpE5gDA7aKDj8aR2GN7fB7jHMNyXV7vPP9u9enPzzfyEwXewva8sqCk7zy/e7k5W
p6df3/7/p/O5frk69AGPtKftP/xUNz4xoX9njGcoJ54O4XGxPUiEz9BGfmDI6d5S4ZfFO4+Ww+ev
/3p2cf5yplriLrol8HYcGXl3DOYnJd8b3f1l0my2Evj0UX6h+/Tm9a0EPv/8fDdXefBtfHuWCPcH
Oj788fmLy595sSefPPtid3MyMsHJ+evPLz++fvv877BO3GO08cPHZx+C6NukOT9B+RB8P0Gos+7C
verDe6Dcmxj5u2SbByjO953nPFoxvX29R9V5OEPj3nOwJ9Hq3+28X9BS8CfqkT3Hig4xif5A5t33
6vkjaqH7U8gv1VNy/5544Ndevb24OR8zp2Y3N/oWssVPcnCO/Fb/z8r0f39k97cWxoWSZ+evdy/n
k0PzXUj785nsvvYsyr3Yle/38mNYkg9uxvE57gPF/zjs61kpq2+BeroevTtOe9P+11cvbm+dn+6/
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
bu5dN/eum3vXzb3r5t4n672r5N5Vcu8qufcZee+auHdN3Lsm7q9pfe1FV8m9q+T+r1ytneu6uXfd
3H/zIey5suR9LHkfS97Hkvex5H0seR9L3seS97HkfSx5H0vex5L3seR9LHkfS97Hkvdx6LyPue6h
smSVLFklS1bJklWyZJUsWSVLVsmSVbJklSxZJUtWyZJVsmSVLFklS1bJklVyuKySo+0eMt717OXl
q2e7i92r3eub62dfXFw+P7s4Obu5uTp//vb21mcvz68+O3t7c3nijpNPTvInJ7uv3+xe3OxevvvM
fhJcngTaP/zjJ5evd4/aRcUUBuvdeOoxnnqMpx7jqcd46jGe+mo8WXOH8TKXnMnl6O+xq3rsqh67
qseu6rGreuyqHruqr3aVETAwBQx6LK2ePdUVQugxuXpMrh7fiaILPbZXj+3V4zLpcZn02FU9dlWP
y6THnFKUoqfoi8IVPU4UxS167KoeJ0o/dVQAsxoYhHngABhqRTWeFO3op69XU4n4hyn+0WMz9Xde
qMcZi+lmxiJoLNQumlMnecRRxjMMitFAo4FGA43xMppjdKZBSNNT9KEB3gBvgDfAG+AN8AbUCMII
sMgnIsAiwCLAIsAi3RvBE8FTTfZ2amAEWARYBFgEWARYAlhS1wEjgTDx5qRLIEwgTCBMIEwgTPRY
AlgCWAJYAlgCWAZYpscyeDJ4MngyeDJ4MngyeDJ4MngyeDK0KpLIAMsAy9ChqKWAsICwIC6Mrxeg
FqAWPlH0Ht0M1ALrGdwk8kMvSgVKquLhYKvsbRV5VeBVcVeF3RZmMpFPvc37f+umydZNk62bJlv3
Q2x/xyP1lW6abN002bppsnXTZOumydZNk+2nPInUqpyydWNl68bK9j+4WsG41bJ1q2XrVsvWrZat
Wy3bs/pIRCZURtu6HbN9wWknoq0bNFs3aLafc7XhAClYeXHrts7WbZ2t2zpbt3W2X3EvYrGy6/aC
v31gt6/4m/Gt05KtG0ZbN4y2b7hah+R/+bv2t5tKW3dabG+4WkfWTaWtey+2f+Nq7Wg3lbbuxti6
Jt6iibdo4i2aeIsm3qKJt7gxtrgxtqjbLep2i7rdom63qNst6naLut3ixthW5WoK6iqWu8Wxsa1a
1hTd3aJut3g4tqQkKPC7rerWFAHeone36N0teneL3t3izyBcbAoXbydNnOgNaeKkN9PAgQYGmhOQ
tomvy9RIEEeCNRN9GCDPRGcGmhzUZMGAxROdmeneTNcFwAcwS39n8GQ+mvUtEGY+munejAbNeg+9
GujVoObQh5mWZjo8q4FQi9R/1hl61ehVqf9MzxsEYIy70QpjKI1OMDpBYldCv+gTtL3wLQn9ok/Q
UmSqJCUmwlaCD5eswulbbIWtRJiEFrYCu3GOB7Qi0gqEj6QOtsJW4kaSRSJF0kOCAhNhO/GgOE5s
JW5K4BGDiC/EDiL1BJ4EHlG4CDuBJ4EngSeDR2ScwZPBI1rN4MngyeDJ4BGJZvBk8IgORXUirQwe
0UYBTwGPSEKDW8BTYJkCE01nQFjgpgLU6UB0qAPAF7ipwE2FVhTaNZ2hXQX+KgiQakbUikyKvFah
qABslYSKw1a/bp2GKCpb87MIzpqCs4ObGsNvOO2tH9zmGNzmGH7HVe+AwW2OwW2OwW2OwW2OwW2O
wW2O4VOeHDjwjhr+xN9qkFpSm+DmyOC+k8GtkMGtkMGtkOEvPFI7y82RwZ0ow3OuOq0M7k0Z3PgY
dvVqlV+Du1UGNzUGNzUGNzUGNzUGd6sM7lYZ3K0yuPUwuPUwvOGtKw7qOLmjZXDrYXDrYXD/yuBG
w/BXHqlD6f6VwY2G4Ruu1hF162HAehiwHgashwHrYcB6GLAeBqyHAethwHoYsB4GrIcB62HAehiw
Hgash4Gp+YCtMDAjHzARBkyEgYn4gGVAkN4UpB8wEW4Ptg/fc8UU7B+wMIaPxFNV0xD+Hy9BjUYn
iMGM3oDFsDCGj8Rdppu5pwZTyAMYz4gy6LpqfCghYMDUUGbAID6eGDjSvXCyeBczglyB8QwNhP0m
vot6M6McBF6YgQqzMMUfRN+iWhEoOn6YxlRjYVCdel4drn428KgzDakW9WaAqevUY+ofdYJaqscj
wCLAIsAiwCLAIsAiwCLAIh0VwZPAkxhufSsBLAEsASwBLOlmgCWNqc6AMIEwaUxpRQJqAmpSH+px
MGcwZ/owAzUDNQM1iw7hJvVPhqnVURnMGWCZr2fAZz2up8CchVlnwFzAXMBcwFzAXMBc6N5C9xaA
FYAVgBWAFYAVgBVgVCVdmaqa1pWPKhdVHqocFFzdBp/ZB9eywbVsQMtGNbc+5Oo2/KGerrQVXO8G
17vh37jqHRFcAQePRwSf4gfXqcF1anCdGv6LJ5FDlTDDn/nbOzCgbiuZBle3wdVt8Ll+cC0bXMsG
tGwl6OBaNriWDa5lg2vZ4Fo2uJYNrmWDa9ngWja4lg0evAiuU4Pr1OA6NbhODa5Tg0/Eg6vS8DVo
fNiDT8SDq9KAKg2o0oAqDajSwCI/5SsFdGpApwZ0akCnBnRqQKcGdGpApwZ0akCnBnRqQKcGdGpA
pwZ0akCnBpzbAQ0amGQH0v2VYxWYbQe83IHEwICeC+i5MOm5xFMBhAGEUmaJFwagBqBKhyW+FcAc
wBzAHIAa9FG9WY8nXgjmAA8lwAeBp3sN8AZ4o3sNzAZmGShZT4HZwCx7IuuFgDfAGzI661u0wgBv
YDagRj4aeXOknzNQow7AHCGJiETOugTmSD9HoEagRvo5YtZI6GfaHsEsoZX1ZsAnbKCs/uFb0o6Z
jya6BSEk6SOxQ9YISXamJLtAHomy7cKkODO9KuIXGYtWRZAiJOnLrOZwIErQcGtMNSjq8Ax4dZ06
KjME6hb1RgaYGqh2qTkCVsBTwFPAU8BTwFPAU8BTwFPAUxAXhRGc3gzCwhBM3wJqgSsL5uz0dQdf
uaKafJURKhtUJjDYtkB7FbD9mr8Z8sJIT7jr+13dmqtbc3VrHtq333OvGlJh+OzWPuF0heXq1nya
a3/kakXr6tZc3ZqrW3N1a65uzaew5spVOVVKnLK/8HfDQcuBj5m53jXXu+Z611zv2kvu7TjoOfBh
Nfe62+ecdqIzV8nmKtnOuVp70HWzuW42183mutlcN5vrZnvDk8ZB7c//5e/EQebAKdhckZsrcnNF
bq7IzRW5uSI3nxOb629z/W3ob0N/G/rb0N/GVNhQ24baNtS2obYNtW2obUNtG2rbUNuG2jbUtqG2
DbVtqG1DbRtq21Dbhto21LYxczW0taGtDW1taGtDWxt+b0NJG0raRGroZmqtbk00hko2VLKJgEQy
og5UsmmwmUQak0jTKKN3Db1r6F1D7xp619C7JOtZd+cpEBokPr0HqAbUGmrr7nwCAjX4y2g7kgiV
TN2l8aBwMwxm9E8Uwi0HAwd0VAR8BGoET6TJUU22D2GnliW3ZMktWXJLltySJbdkyS1ZckuW3JIl
t2TJLVlyS5bckiW3ZMktWXJLltySeeeWzHVflyVzZclcWTJXlsyVJXNlyVxZMleWzJUlc2XJXFky
V5bMlSVzZclcWTJXlsyVuWeuHG03mJ/aKzf7fCS7gMw+Dcnv5KKRvWDKXsguKfMfOe19m11SZpeU
2SVldkmZXVJml5TZXYnZA5rZhV924Zdd+GUXftknHXnHp3z08uf87YOYXdRlF3XZZx/ZJVx2CZdd
wmWXcNklXHYJl332kX32kV1oZRda2YVWdqGVXWhlF1rZhVZ2oZVdaGWEVkZoZYRWRmhlhFZGaGWE
VkZoZYRWRmhlhFZGaGWEVqaWjdJHSBYZL5V6UKONZI2MZ3QA1LrLvvJIMoItI9gygi0j2DKCLSPY
Mi450lBMaSgZlxz5KEY+ipGPMt5DAwcaWKVgRgpmPHHkrBg5K6aclYyAzMxilMWSkZQZSZmZxSjB
JSMyMyIzIzIzIjMjMrPYA7c6+TGm/JiMqlSiTEZnKmMmI1bzNIIaLw2KAb6KOvJsTHk2GeGXp+6N
eormGM1R10V6Q32oHlO3GIOidqk5kUGJdGakDyeEPQcMXKQzBV5QhSfSnOmFeg9QI82ZXggdRlox
HdCcSHMizYk0JzEEiSFIIEwgTCBMIEzqcD6RBJVvJaAmoCZakUCY9LieAmGCzaPoB8wZzJkOVysy
4DPgM/SjBmZakennDLVkMGcwZzBnmDrBaOqfDDuoozJcoB7LtCvTigLmArAC+IJISSAsvLnwwsIQ
JMAXHdCKQisKrSj0fKHnCz1f5wP11npjva3exC3ehOKewfIbgPhni89Zis9Zis9Ziivg4gq4uAIu
PjEprm6Lu/+Ka9niWra4li2uZYtr2eJatriWLa5li2vZ4lq2uJYtrmWLa9ni84jiHr3iOrV8CXzv
rOLKtbhyLa5ciyvX4sq1uHItlzxZu8y1bHEtW664WnvS1W1xdVvecrV2sOvd4nq3uN4trneL692C
3i1V7xrZdqZsu0LhOqXdFerVKf+uoJsLurmgmwu6uaCbC7veK2uvoKQLSrqw670S+gpTjIJuLpNu
rpxZ0M0F3VyYaxRUckElF1RyQSUX9shVzmDBV6jkwTIp6azHAT8AvirgggIuKOAyKeCMdMv0TwC8
9G6mxwKtCACT3q3SpKB3C3q3oHcLeregdwt6t0x6V8Io0wrp3UxzpHcz7Qq0y6AEoxXGEBjgpXez
nqJXDfAGeAO8Ad4Ab4A3oBoIDWDGJyLAIsAiwCLAIr0awRPBI31Z9B6ARYBFgEWARYBFgEnlFMEA
YeLNiUsJhAmECYQJhAmEiR5DWErsSIpIYEg2oB3LxObibjG12FM8KEYTg4gvxA4ZPCLsDBMVCLvo
PSAU+RW9Gagiv6w+1EfBrNFR9xYw61t6c4F3CpinAw03rSjIhEJzCt2LXkMFFlRgQQUWMmaUrkty
7nBaf9Ru87+j/yT/0dP1dPGfX/vPb/znt/7zL/7zO//5PU/CxY5kOPUAGtmFw+kn/L32v//Vf/7N
f/7oP5/6z5/85995pOGg9Qv/4T//yemN//1f/vNn//kLVzv/+7/958x/nvvPC/956T87//mcJ3sO
tn7hC/4e/O8v+TtwUHv33H/+h9ORg9rfX/nPhf+88p/X/nPpP2/853/958p/rv3nxn/e+s9f/edv
/vO1/3zjP//nP1UBjwdrDhoOWg42j9itlW2+rZv8OBGfUZTPCM9OxGcU8RlF+YxwXUX8XBEPUdSb
9R5uTvi5Ei5eeYjkBqr2L1uKG1uKWzf5gxIeoqQzOKoSzUk4oRK+p6h7aE7CCZVoRaIViVYkWpFo
RaYVGcwZ11UGWAZY5qMZYBlgme7N4MngyXjiNDoZYBlgGWAZYAVgBWAFYAVgBWAFYEQPEHOGdDOk
mylsgHQzxQQUBcDArwqw0kWlikoTlSIqPUQ38KPHIqLb9dHt+uh2fXS7PrpdH92uj27Xx3+jjyDc
Sq/RLf34Kae9FdFN/ugmf/wPrla8bvtHt/2j2/7Rbf/otn902z+67R/d9o9u+0e3/aPb/vELXl57
wR1r0W3/6LZ/dNs/uu0fX/FI7TGfBET3sEW3/aPb/tE9bNFN/njDk7WT3dUW3eSPbvJHN/mjm/zR
Tf6IyR9xtUVcbRFXW8Scj5jzEXM+Ys5HzPmIqy1ixUes+IgVr534I1Z8xIqPBAoixnvEeI8Y7xHj
PWK8R4z3iPEe8adF/GmRQEHEQo9Y6BELPWKhRyz0SKAgYo9HAgURMzxihkcCBRHrO2J9R/LPKD4w
ngFYAJjCQ0kfBWEAYQBh4D3GzQZCA6GB0EBoIDQQGgiNHjOAGcCMHjPwGHgMPAaeCJ4IngieCJ4I
ngieCJ4IHnhZ3CtGFVOJVUT5E2mpn9WZCTwJPAk8CTwJPAk8CTwJPAk8CTwJPAk8CTyJgJ4U3vR1
EGZUoPBkoGZuzqhAQc06AHMGcwZzBnMm6pIIpKiBmVZkWpFpRYZh1QmZ7s2AL3RvAXMBc6E5BagF
qIWvF95cgFro3gKwArACsEL3VpVTR6KOQx2FOgZVfdfeTq5ykquc5ConucpJrnKSq5zkKie5ykmu
cpK7ktIf6RhHndynlFzBJFcwyX1KyfVKcr2SXK8k1yvJ9UpyvZJcryTXK8n1SnK9klyvJPcpJVcn
ydVJcnWSXJ0kVyfJXUnJtUhyLZJciyTXIumKVniXJ1cnyT1I6S1Xa+e6OkmuTtLXXK197noluV5J
6JWEXknolYReSeSNURLFVBIloWkSmiZRTFnVUhIqJ6FyEionoXIS0Z2EpklomoSmSWiahKZJaJqE
pklomoSmSWiahKZJaJqEpklomoSmSWiahKZJaJqEpklomoSmSWiahKZJaJqEpklomoSfJ6FgEvMe
6suY6sskPD+JuY8qziRUTppyEjL2eBYewBsvNB43wBs3G+AVv85EmTPNUQQ50y6jXUa7jHYZ/Wy0
wuhnA7wJvN4D5gjmiGjOfCICPgI+Cipfj2COQI18Iuo9uhmoER2fGZQM+Aj4CPgIkUQwJzAn+jkB
NQE10c+S9Zk3J6AmoGpulPkowkB8Tw61av0k9FyaGFZciZydaEwUNdEPdFh0D+qt6GY6vNBAEYlo
Q2OqgdPoqHuL3ky3qMMzNF/0Zpqjlk5Q+agwC6oQFoZA39KbC4RdmKsUME9nUNJF4On5QodPT9HS
6Wa0tbxMgfCVJEmh7QVPr2RLoe1Vp2YlLdTQUI3s1LhOjerUe2vMyZVrJmAjtzRR4N/yN461gD+N
YLBr4vy72e9PsmR9LFkfS9bHkvWxZH0sWR9L1seS9bFkfSxZH0vWx5L1sWR9LFkfS9bHkvXx5Fkf
s9xPZMkpWXJKlpySJadkySlZckqWnJIlp2TJKVlySpackiWnZMkpWXJKlpySJadkVjklR9s5ZLzr
2cvLV892F7tXu9c318++uLh8fnZxcnZzc3X+/O3trc9enl99dvb25vLEHSufnPz+3cv3k9TyCED/
8I+fXL7ePWq3lNGd1eHX6jnYcjBwEDgwDiIHCZ9d5qBwKXNQ6iXXI7dnBh3gcKuVAdgGfjyD523A
8zZsOADzAOYBzDVExObxxubx4yXcj6YXGmf0Zto1JA5oxUC7AuArA7IJvbEJ/XgJ/6GcsgbCumGW
dqNny3ljy3ljy3ljy/nxKRDip61cNh7ozXohY2HCzCeiwPOtSCuiMNMJgcGN9KFGOdKKmiXBHvbj
PXy0borErvbjGQbX+JbRP5FWaHQ0KMab1b3qTINE1YeRTogQrXo16oDujWogo2y0XT1vukS7otoF
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
Nmrdnmjdf966idD6zL51rd9+wiPeYa2r/9an7+0fueq92LojvXUd37qOb32O3rpqb9033roib30i
3rr+bl1/tz7/bl1tt662W1fb7ed80Yerdf3duv5uff7d+vy7dZXcukpuX/Gkj2/rKrn1aXfrCrj1
aXfrerd1vdu63m1d77aud1vXu63r3db1but6t0Xvtujdltl2i7ptUbdtVbdGYbLxTM/BloOBg8CB
cRA5YPgl3aLekzmAViJvriq5RSW3RMSpfTaeAfwA+AGoVTe36OYW3dwyI6d0mlE6bbxEKwadoRVV
W7do6xZt3aKtW7R1i35qJ5UTeU8AagCq9ErkEwHMAcyBJgcQBhAGvVmPgzCA0EBoIDQQGn1oADOA
GX1o4DHwGHgMPAYeA4/YXgomCg8IjXFPIIw6QOVI9yQIINGrCcxx/SHsyrJklyzZJUt2yZJdsmSX
LNklS3bJkl2yZJcs2SVLdsmSXbJklyzZJUt2yZJdMvfskrnu87Lkriy5K0vuypK7suSuLLkrS+7K
kruy5K4suStL7sqSu7Lkriy5K0vuypK7MvfclaPt/vJTuSqt5IHYe+ImsUPCIEh0eN2dNKA4W2qC
BDRoO3FBZAgitoKUa9Il7IDEMInYImOh0dFYJKglQS1TzzPKGoJEu9QKgRfmBGYBE57phQBLkM10
BoQZhBmEGYSZDs8Ay+peWppBmEGYQZhBmEGYQZhBmMGT9UKAFYAVgBWAFYAVgBV6rICngKeAp4Cn
gKeAp4CngKfq5o3fuhE5wGS12zb+4Ab+rJ24qU97WzYo6dqzG/f7b1w3b1w3b1w3b1w3b1w3b3xG
vnGVvHGVvHF//cY18eZPvNw7ZeMqeeMqeeMqeeMqeeMqefMXHvHu27hu3rhu3jznqvfpxpX0xpX0
ZsdV7+iNT7I3rqQ3rqQ3rqQ3rqQ3rqQ3FzzpI7PxYPjmNad9nDaX/O3DtXG1vXG1vXG1vXG1vXG1
vXnLI2ihSmgbV+Sbv3G6jpZr9I1r9M3/cdXHfoNq36DaN6j2Dap9g2rfMJPeVI0+vgdmq6S8YffE
AE1vUPYblP0GZb9B2W+YZG9Q7Rsm2Rs0+gaNvmGSvUGRb1DkGxT5BkW+QZFvUOQbJtkb1PYGtb1B
bW9Q2xvU9ga1vUFtb1DbG9T2hkn2Bm29QVtvmGRvUNIblPQGJb1BSW9Q0huiYoHAYEAubFDbG2bS
AUmxQX9v0N8bYmMBIbKZZksFhMbjpnt0CfDGuBeUUKE5mjEU2qWpg2YVmjoUGmg02XSGIZAdUNQJ
NNkYFNkBiDDsgA0W/oa93W0ar7rJu00DF2lypMmRJkcaWFWpYZzZNMrV/W5sQ2cYZzYNd6SlkZZG
WhppV7V4jCm+4YCxiTYig+vqdrzECxMNTLQrCSrfSmBOtDTR0gTUxAgmKLNOsg1/gGEsbvDRGjEa
IyJrWI0blPQGlbxBp27QzRspGRy2BonaRJnoFMl/SXUJcMlqiV4JW0lZlPRGslPSchKMGYRZ7eJb
kmyFBoorxYNiNPFXAZhYRpxSAFYAJgYpABPxV1Lv/NbOb+z8ts5v6uot3redR+A718Sda+LONXHn
mrhzTdy5Ju5cE3euiTvXxJ1r4s41cedz4s4VcOcKuHMF3LkC7v5Mv8EUVYx0Pkvu/pvT3h+dq+Tu
OafhgTpp6Fw3d66bO59Ad66SO1fJnavk7pwnax+5bu6+4jQkW913hteu87l159q68yl151PqznVz
9788UvvYlXTnSrpzJd353Lpzldz53LpzTdy5Ju58bt2hgDsUcIcC7lDAHQq4QwF3TKk7ptQdWrZD
y3ZVy45QC2ciB4mDzAH3VHXbVXV7+3iEnyNQB6AOQB2AOgB1AOoA1AGoA1AHoFYF3KGAOxRwhwLu
yD2zSaBHvh6EsOUAmovACIAPgA96HPAB8EFPAT4APgA+AD4APgA+AD4APtC9RvcaeAw8Bh4Dj4EH
zhGvMKXuxB0idlQpBViGTuQtop1IIoJHgzt1b88B31KHT/3M1yNQ1eHT4wCb3qOndAnMEcwRzFKK
EXqe7qEViVYkES2PJ7o3AT7RvQnMCcyJ7k1ATUBNQE1ATcBI+hbdmwCWAZbp3gyeDJ4MngyeDJ4M
ngyeDJ4MngyeDJ4MngyeDJ4CngKeAp4CngKeAp4CngKeAp4CngKeYo/YCYX9hwc2GR7YZHjo/QO9
N7f323q/qa+3eDN7V3i9K7zeFV7vCq93hde7wutd4fWu8HpXeL0rvP6PkFJ9uWu+3jVf75qvd83X
u+brXfP1PvXsXc/1PuPsXb317g3uXZn1rsx6V2a9K7PelVnvyqz3+WXvOqz3+WXviqp3RdW7oupd
UfWuqHqfRPZXtKL2jSuq3hVV74qqd0XVu6LqXVH1rqh6V1Q9iqpHUfUoqh5F1aOoehRVj6LqUVQ9
iqpHUfVMB/uqn4ziTeOZxEHmoLYDRdUzL+zx9NokBRJQB6AOSK6kM2AewDwguRLtGgA/AH4A/AD4
qrp6VFdfVZdRMWo8A3hprMRHgzDTYwHwAagBPIEXBj2up4AagBqAGoAagBqAGujeAEKje43uNfAY
eAw8Bh4Dj4HHwGPgMfAYeAw8Bh4Dj4EngieCJ4IngieCJ4IngieCJ4IngieCJ4IngieCBxkgNppI
NIFHxCbSEv2IADTcGuUEngSeBJ4EngSeBJ4EngSeDJ4MngyeDJ4MngyeDJ4MngyeDJ4MngyeDJ4M
ngyeDJ4CngKeAp4CngKeAp4CngKeAp4CngKegkGgPiwAKwCryqPKmippqh1chUsVLVWwbF15bF15
bF15bF15bF15bF15bF15bF15bF15bF15bFEedVS3rjy2rjy2rjy2rjy2rjy2/8UjFatrka1rkS2z
pUoUW1cnW1cn2xdcrS1zvbJ1vbJ1vbJ1vbJ1vbJ1vbL9H55kZl9Ja+uaZuuaZuuaZuuaZuuaZuua
ZuuaZuszoa0rmK0rmK0rmK0rmK0rmK0rmK0rmK0rmC0KZouC2aJgtiiYLQpmi4LZomC2KJgtCmaL
gtmiYLZMgLbolS16ZYte2aJXtuiVLdOdLVpky3Rni/LYkjFM6T6jdN94CYQDM9qsNwN1AOoATWd9
FMwDmAcwD2AOfCvw5oAuzLiAMpjlv8qADyjFTK8GXdIZWhHo5wD4gHcooziz7lFzcGRlWhpol3xK
WTdjB2RdoslBB7TdaLvRdjmO5Lopuoe2F9Rt4ebC4BodZXSCMbhFl+gNeSkKM85Cjxn9Y/RP0VMQ
pNEJRksLXWe01GhppBWRlkaIJAJeM7NChxc6XHNiyc1CPxdIKwI+AjWCJ9KcqBfqPW7oxIn8Iu2q
644pZjdoATJrigfWFBt17gYtE9bSXRaiDlqIqmWnWlvKklKjTJ7FiYzrytE40XMNdsaJsJG7ErGS
pujdrYQjbB4ndhC/i7trllCcOCXTCjFjjTJSm2/YTjyYASZuynqPbgZqZRlK+w1aV7mdeCfT4UUd
TgMLmAsdLnYQzRc6szr/qRVo1Ao0agUatQItTlwp4i+MhdE/pm8xKMYIigdFxoUGFoEHhgFM7CnK
NH1Un/AXVslbzfgqbAe9sZ7Wa+jmaqlWCTz8mtPe14NbD4NbD8O/cLXe7WbE4GbE4GbE4GbE4GbE
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
PQV4xbeK3kMr1PMZ9iz6BM1Rb2R6Xs1RKzKYM/KnwGgFklDEqwCsQPOF7i20a3pKN+sewBdoXsGw
QnMKg6Jo1nSG5hTGYrpHl2hgoYF1zlCZvLJ4ZXCF4KY31guMSX2NInO87dfVpVHFU/gNf6858G4I
eMuqjAo+9wg+9wg+9wg+9wjuGws+5Qg+5QjuGws+0wg+0wg+0wg+0wg+0wg+0wg+0wg+0wg+0wg+
0wjPQeNDEnzKEXzKEXzKEXzKEXzKEXzKEfCEBZyqVaAGn4SErzjtoxV8NhJ8NhJec9VJM/i0JPi0
JPi0JPi0JPi0JPi0JLzlyTp+rtqDz0+Ca/TwDTfV0XXVHlDtAdUeUO0B1R6qajfMXJOZG1D2gfWA
MnwDWj+QLxOqsjfZxAGtH9D6Aa0f0PoBR1pgxhKYsaQpbGG0YoC4jObItWa0a6BdVccHdHxAxwd0
fEDHY5GbLPLAjCUwYwlo9IBGD8xYwhQ5Mr4VaA4MwtQliDPEEqLGibgMqEEHxIkM8EHgGQJoRHSA
Ig/TmGoEgzAzcMZTBnjTWPAe9bw6fOo6nOjGJ9SZ6ha1S60Q+AkGwKJgGGfoTINWo/DQwOnrkJbe
o8f1VKQVkbGIYI5gjmCOYI5gjnR4pOsiHRXBE8ETwZPAk8CTwJPAk8CTwJPAk8CTwJPAk8CTwJPA
k8CTCJpEeEdtTyDMsJ56IwM1w4MRWlX/ZMBnXpj1OOCzboaeow6gZ/Vq1hmakyES9XPWJZ2hpQoP
aSyySEuXaHKhyUkHNLnogGEqdJ0GrtDkQpMLTS40uTBehfEqNCfphXoP7SqQekJQixJQzmhlgq81
YqYHkd6JriYcWQN7dAbByRpNc9+hodqJWLoT0VyRmytyc0VursjNFbn9K08KSf2gq3b7I6cFoH7Z
lb25sjdX9ubK3lzZmyt7c2VvruzNlb25sjd3K5rreHMdb67jzXW8uY431/HmbkVzjW7uVjRX5OaK
3NytaK6/zfW3uf62K6KRNSjqitxckZtPzc31t7n+Ntff5jNy+78axdwSTN0STN0STN0STN0STN0S
TN0STN0STN0STN0STN0STN0STN0S3N0S3N0STB0I7g7gGZRXoSwK8AzgGcAzgGcAzwCeIcx+n5Yl
o2TJKFkySpaMkiWjZMkoWTJKloySJaNkyShZMkqWjJIlo2TJKFkySpaMkg8go2SW+7Qs+SpLvsqS
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
J+XOSbn7nCdRZTWtrPuCv2vbv6x/12yV7py/nco6p/vO6b5zuu+Q9wl2rfkpnXNC55zQOSd0zgmd
C/7umkecJDrnhM45oXNO6JwTOtcAnTNA5wzQwQAdDNDBAF1lgPHtG87ooOOg52DLwcBB4ADTIOmp
yEHiIHNQuxKW6FAFHZzQwQkdnNDBCR2c0MEJHZzQwQkdnNDBCR2c0MEJXeWEEbPeA7DKEr2/pfd3
9P6G3p/v9bR/vPdne+eN/jdcdUS9M0nvTNJjONV8wt65pXdu6Z1beueW3rmld27pEfxJHV5ROf/0
Lu9755be5X3vTNI7k/Qu5nvnjd55o3fe6J03eueN3nmjdzHfu5jvXcz3LuZ7J/feyb13cu9dzPev
H74fauidJXpnid5ZoneW6F0n9M4JvXNC75zQ/41+qcPkLNE7S/TOEj0s0cMS/WQUJQ1s4VLLAcZ3
zUHqYZIeJunxFqzJDOrhlh5u6dEbPUzSwyQ9TNKTHLZmXcma9M8etulhm54M7jWeiR7+6eGfHv7p
4Z8e/ukr/4yP6x4wD2AewDyAeQDzAOaBHqv8Uxtcm1sbW5taG1plwdbZZusqZevcsnVu2cItGYPc
HR9h62yzdbbZOttsnW22zjZbZ5utK5mtM8nWmWTrTLJ1Jtk6k2ydSbbOJFtnkq0zydaZZOtMsnUm
2TqTbJ1Jts4kW2eSrTPJ1plk60yydSbZOpNsXQNsndy3Tu5bJ/etk/sWDVDdPFun+63T/dbpfusa
YOvkvnVy3zq5byH3LeS+RQNsIe4tgn8LTW+h6S2CfwspbyHlLaS8hZS3kPIWUt4i77cQ7hbC3SLv
t9DrFu/WGhfWFsLdQrhbCHeL4N9Cr1vodQu9bqHXLfS6hV630OsWeq0P10frg/Wx+lB9ZHB6HZxe
B6fXwel1cBNocOocnDoHp87hX2ld/ZST6eBkOjiZDk6mg5Pp4GQ6OJkOTqaDk+ngZDo4mQ5OpoOT
6eBkOjCdrd65wel1wOCpbrkBO6c62wan4MEpeHAKHpyCB6fgwSl4cAoenIIHp+DBKXhwCh5cYA9O
uF4pLHilsOCVwoIXCAteICx4gbBAgbBAgbBAgbBAgbBAgbBAgbBAgbBAgbBAgbBAXbBAXbBAXbBA
XbBAXbAw3JHB6ITqK6QcWBgma77oDFAHoIqmC80ZwDyAeQDzAOYBzJAlHqc1PsQ1PkRqfgVqfoVh
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
Z/aYZ/aYZ/aYJ/SYJ/SYJ/SYJ/SYJ/SYJ/SYJ/SYJ/SYJ/RYgybJ4tP6aSdlT+gZT1coTtOe0GMN
NF23O/fMHvOEHvOEHvOEHvOEHvOEHmsw0gqCq25+3qAu6t7yDVqiVnnxzB7zhB7zhB7zhB7zhB5r
0Am1no9n9phn9phn9oxXfaQ9xcc8xcc8xWe86sPvuT7muT7muT7muT7muT7muT5Gro+R62Pk+hi5
PkaujzUTA9SyMyT9GEk/RtKPkfRjJP0YST/j47oncZA5qEMGJ5D9Y+T6GLk+RoqPkeJjJPQYeTxG
Ho+Rx2Pk8Rh5PEbWjpGsY6TmGKk51kwmWd0cvq0//g5PuzHPtjFPsrEWHVhQPnXjeM+2sRZ5X8sE
eNqNedqN1SSblkoBnlJjnlJjnlJjnlJjnlJjnlJjnkBza53WWfqmztKtptRs6vTcPKVm/Ns70nNr
zHNrzFNqzFNqzFNqzFNqxke8yz23xjy3xmpuzaZO681TaszzZszzZsarPjieQGOeQGOeQGOeQGOe
N2OeN2M1b2ZTp/zmeTPmeTPmeTPmeTPmeTPmeTPmeTPmeTPmeTPmeTPmeTPjWwcO6qA6k3gmzXi6
DjLcQkqNKaVmU50ERkqNkVJjpNQYKTVGSo2RUmOk1IzvSRxkLunr+oTuKZzRzZyp/EO2jZFtY2Tb
GNk2RraNkW1jZNsY2TZGto2RbWNk2xjZNka2jZFtY2TbGNk25tk25tk25tk25tk25tk25rk15rk1
5ik15ik15ik15pk05pk05pk05pk05pk0t51T88o21Fby3BqruTUbKi15So153oxtYIlafskTaMwT
aMwTaMwTaMzzZszzZszzZsYnWw68Vz2TZvzbO3cDk9QSTZ5bY55bY55bY55bY55bY55bMz6y5cBH
w7NtzLNtxtO1e51tPO3GPO1mvGoc1H53/vFEHPNEHPNEHPP8G/P8m/ERaK56KDwjZ/y71INIf9fJ
uCfrmCfrmCfrmOfomOfoGDk640NrDhourTmAx2rRJdJ3jPQdI31nvEdneg62HAwcBA6Mg8gBzYx6
od6TOcMgRORG1Asr7cJ+JP0YuT5Gro+R6zM+DowB8JUPSfoxkn6MpB8j6cdI+jGSfoykHyPpx0j6
MZJ+zJN+zJN+zJN+zJN+zJN+zJN+zJN+zJN+RrD1XmdIz/4xz/4xz/4xz/6x7pMPYbeBJS9gyQtY
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
NA781MinMrphJbqBnK/jDMNJk/TKBpUssCD5K0j+CpK/guSvIPnreNz3MK6kFnK+glSvINUrSPUK
MryCDK8gwyuSq6b9LBlk8sVkh0rjCmVvhbK3QtlboeytGBBJ7qiVxhVK4wqlcYXSuEJpXKE0rlAa
VyiNK5TGFUrjCqVxhdK4QmlcoTSuUBpXKI0rlMYVSuMKpXGF0rhCaVyhNK5QGlcojSuUxhVK4wql
cYXSuEJpXKGkrVDSVihXK5SrFUrIOoat9VJmVigzKwYkkRYBpWiFUrQiE7JWbAFKyArysII8rCAP
K8jDCvKwYpxsPq0FpF+F069WAlJIvwrSr4L0qyDrKsi6CrKugqyrGK8gN0/tgLoDaiZbrYS3kGwV
5FgFOVbHPXxrB+ZEbpKtgmSrILUqSK0KMqqO9wDq7gOT6Pg6VF24IgGuSIArEuCKBLgiAa5IgCsS
4IoEuCIBrkiAKxLgigS4IgGuSIArEuBtRAI81zoLV5zBFWdwxRlccQZXnMEVZ3DFGVxxBlecwRVn
cMUZXHEGV5zBFWdwxRm8zTiDt1Zn4c/FFVBS9gnCNIWotmxVbdmq2rJVtWWrasvWFwxKRpOaJWVV
N7aqbuxxVSqrCshWFZCtKiB7XNUCZSVZ1Y2tqhtbVTe2qm5sVd3Yqrqxx5MTB+LHqiR7/K/1VEnZ
qpKyVSVlq0rKVpWUrSopW1VStqqkbFVJ2aqSslUlZWuWlFUl2apKslWVZKsqyVZVkq2qJFtVSbaq
kmxVJdmqSrJVlWSrKslWVZKtqiRbVUm2qpJsVSXZqkqyVZVkqyrJVirJVirJVirJVirJHpMBw85K
KNSWrS9OWs3aKBSZrRSZrS9OYZVWG6rNVqrNVqrNVqrNVlebpbZsfXHSqjbdxwFPWSJVHs9Nzpr2
n0qR2UqR2UqR2UqR2UqR2UqR2eNxEDRNQi476yKzaxqJKiVlKyVl64uTnhvTuxsexpVkc/PrBGiW
lFUl2eM0y5GhJTe/WtBnkdkVE5GKzFYVma0qMltVZLaqyGy9IeIaw00TUZadzSKzK1U9s8isastW
1ZY9riakojEVma0qMluzyKxqy1bVlq23H/GkB6fBqKDr8b8Hw/z3nCVRXdZ6VYnXqhKvVSVeq0q8
Ho9oXVTrtarWa81ar1nZVeVbq8q3VpVvrSrfWlW+tWb5VlVtraraWlW1tapqa1XV1qqqrVVVW6uq
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
bqEEt1CCWyjBLZTgFkpwCyW4hRLcQgluoQS3UDpbKJ0tlMUWymILpaodw9Z6KWctlLMWA5JIi4CS
10LJa5Gpaiu2AKWqBRlqQYZakKEWZKgFGWoxTjaf1gIS08KJaSsBMySmBYlpQWJakI8W5KMF+WhB
PlqMV5Cbp3ZA3QE109BWwm9IQwuyz4Lss+MevrUDcyI3aWhBGlqQdBYknQW5Zsd7AHX3gUl0PPt6
FJf14LIeXNaDy3pwWQ8u68FlPbisB5f14LIeXNaDy3pwWQ8u68FlPXjL1oO3l93xeepYXhkEVwbB
lUFwZRBcGQRXBsGVQXBlEFwZBFcGwZVBcGUQXBkEVwbBlUHwNjII3nLlyi9X0+D+2VdeT/TDVwHZ
//p/vv/hBy+fXf3O/wvqcNyfbR2O+5esw3FE31CSuq4QvmpTV9WmrqpNXVWbuqo2dX2BkVAsomZJ
atWdrqo7fVwVU1cB6qoC1FUFqI+rMnhmJWrVna6qO11Vd7qq7nRV3emqutPHkxMHkgiqRH38L/VB
JamrSlJXlaSuKkldVZK6qiR1VUnqqpLUVSWpq0pSV5WkrlmSWpWoqypRV1WirqpEXVWJuqoSdVUl
6qpK1FWVqKsqUVdVoq6qRF1VibqqEnVVJeqqStRVlairKlFXVaKuqkRdqURdqURdqURdqUR9TAYO
kKxnRG3q+uK0fWeFI4pUV4pU1xen8yejoKhWXalWXalWXalWXV2tmtrU9cVp+1YQy3HAU/bwVB7P
oIE1raGVItWVItWVItWVItWVItWVItXH4yBohli5bLWLVK9pK62UpK6UpK4vTvt4Y3p3w8O4kmxu
fp0AzZLUqkR9nGY50pB686sFfRapXjGQqkh1VZHqqiLVVUWqq4pU1xsuo8ZwM+Qqy1ZnkeqV2rxZ
pFq1qatqUx9XE1LRmIpUVxWprlmkWrWpq2pT19uPeNKD02BUlvn434Nh/nvOkqguKzarUHNVoeaq
Qs1VhZqPR7QuqthcVbG5ZsXmrM+sIsxVRZirijBXFWGuKsJcswizai9X1V6uqr1cVXu5qvZyVe3l
qtrLVbWXq2ovV9VePoASIqgIc1UR5koR5koR5koR5koR5koR5koR5koR5koR5koR5koR5koR5koR
5koR5koR5uoizJRcri65TKXlSqXl6krLFFiuFFiuFFiuFFiuFFiuFFiuLrDscsquokzx5Erx5Ho7
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
GwmSd9hII2ykCTaS/xqZY0/EoYF2dO1GbtDxCZ4KOEHOHOkjjVyQRs5GI4/ieBzWEn4PZ6oZEvBU
PlFhNpVvVVhd5VsVVqcpNEdpOLkafp2Gk6bheOnLCXyDHSZ13pk6HA8NU3nDCt6wZDdM2A3DdMMC
/f+x93dNdl3Xlff5VXTjCNcFxFzvcznC4bD4Uk9HlKsd3broOwZMpCSUSYAPAKqtb//MJJSU+Dsi
BYIJZIJeURU2NSzmmntnnrHW2XP+x775Obee99nt/+mz20v+7PYnf3Zb83c2/9ltYZ/drvXZ7SV/
dnsV31X45598+2D0k9sHmp/cPna8ccHXTvnJn3+DeZc+uf0b+9fbP6TXfxv533n9B56/td/cWvjr
1T+7fQV1Kn92uHZ77bcv6vzs9hT+ycd/dris888Pdn5z+zzn49tnUJ/eviv7dpe4+Yd6+w/t9h/6
7T+M23+Yt/+wbv8hbv/hux/4r7f/8Jvbf/j49h8+uf2HT2//4bM//8Of32ndbl9l3W7fYH17Frz5
h9t6fnNbz29u6/nNbT2/ua3nN7f1/Oa2nt/c1vOb23p+c1vPb27r+c1tPR/f1vPxbT0f39bz8W09
H9/W8/FtPR/f1vPxbT0f39bz8W09H9/W8/FtPR/f1vPxbT0f39bz8W09n9zW88ltPZ/c1vPJbT2f
9A8i9+RMXpzJizN5cSYvzuTFmbw4kxdn8uJMXpzJizN5cSYvzuTFmbw4kxfvbfLiYaecnOmOM91x
pjvOdMeZ7jjTHWe640x3nOmOM91xpjvOdMeZ7jjTHWe640x3/Hec7ngIOTMvr796/OzV0y9efvTk
+Rff3ER3PPrq+tXjJ49fPX4d2PH01ZfXj/6c6vHRt//p16+u/+vVo6vyroNmfm5pJ2nmZybN/Nxf
wDuMmnmnpd3Fn2D99X892I/Hn2t7d5+PO/97fXd/Dn++F295F97Nx/1+P7tvfEd+ZCbwZnu73WU/
ud1lP7ndZT+53WU/ud1lP7ndZV+ft/KU890p5JPbXfaT2132k9td9tPbXfbT213209td9tPbXfbT
213/09t6Pr2t59Pbej69refT23o+va3n09td/9Pbej69refT23o+va3ns9t6Prut57Pbej67reez
23o+u63ns9t6Prut57Pbej67reez23o+u63ns9t6Xn9h/9fbb/d56z6+vYd/PqmUP59Zb/7Ln97+
n767qx+/94HR88fx4fxxfNhH1PZwj6jt5x9R32DzeX/79we3zbWHe0Rt7+fT0R/wEbWfI6r34hxR
f/odYZ3rJ09fvc4hfXL95Xc/Of/58+vf/e76i1fvb7t4o0rO7nBnf2FvdL/fy2bw8yv58b+np89e
fvdT85/v8S/7Ryo5j+bewV/2j9zv9/yX/baV/M2/p6/+4/rJk+snj754/uzVzQ/8Ktd5/Oi7nOnH
3zx5+vzzPz7/MneQz7/4w/UX//ke/9bfrrYHdap5WCeHn/DX9nb3/md8En7yJ/MdVPg2f4XXf8z/
9fkXj5/lz/rTw/lwXJb1QHeFv36e9e01PIA95P63nZ/8230/e9A7Kotf//1U887/EB/g5b7RN8Wb
//DdgePrF49//9XjR0+evsgzx9M/5l/SzasmXv93bi7j0fX//c3TPz56cf27/Fv7w0cvv/n65i//
o989f36PT0Lu6Ap+1vftu6jhmyziAfxSX1x/9fyP149+9+L5V49uf/p9Pwt+J9fz3+gB2Tu5f//t
Hqrd0118bwb05//865ff/MdftR3/uXw7LXr1zYsv/6F9ctdW36/6rx7kVf4C/lL+3pniaaovfvf4
5rPyf/323/7Xp3+u9+af/+3mv3krPH7y5LfX//Xqty8eP6QHBG9d/Zv6/rfrffTy5oo+H7/+6uv2
L5+9eJp/Iv/69Yv8n3Xd/I+rEvm/Sv2nUv7pZrz66n/+228fXa2rq/zHf/z3T377P65+3fuqY88Z
tceuZX3wj+3+6ubkX+rT629vTn+7m1P6njHr2rFH36v+4r4b3t03gLf+e39Aj23e1TXMX73LT+x9
fX/+3lXd+UftHr+Y3o+z/kIt6/z1f2B//e/IM1/dGubLD++MRu2nxfngdmR+Qw/igfS7qP2O/8q/
XfbT7wYVfvf4my9ffRAfzx8s/Hw27/cv+wd/MR/GMf/tyn+Xf9z/+fTZkw/vI/ld1efz+OD+rL/7
3Tz0XfItqn6Xf9NfPv6P6y8/vI/iX8o+n8UH91n8yy/ng/owvmHZ7/LP+sX14yd/+v++evzq+sP7
SFL7ux4Gv9PRwYfdGX1Hv6EP6sP5U2p/l3/lL1988eF9NG+LPnvlA/qLvv2lfIDfId+o9Hf8B/3l
42e//yA/id8Vfj6ND/EP+7tfzwe1Pb5x4e/yj/vVBzOs8gNlH4DxwX0iX93FSMWDLftn/ll/N6/x
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
iwrrCOsI6wiXDe9puGx4T7fLbpfdLru9/G0d28vfFsZpqziPXpxHT6EqdIWhsBS4/KJLObGe/9ll
v3WpB8Pon37Z6Zedftnpl51+2emXnX7Z6Zedftnpl51+2emXnX7Z6Zedftnpl51+2emXnX7Z6Zed
ftnpl51+2emXnX7Z6ZfdQ7/svl+Ad8IRTzjiCUc84YgnHPGEI55wxBOOeMIRTzjiCUc84YgnHPGE
I55wxBOOeMIRTzjiCUc84YgnHPGEI55wxBOOeMIRTzjiPYQj3lOb7E5fcPkhvFr7bd+r/Xdpu1Kc
wfCpbgpTwS6rIxc+5i0+5i0+5i0+5k3BZZ2w8DFvCq7SXMWRi9IuVrFz3V3WkYviyIXPjovPjovP
jovPjouPiouPivP3ZGFOaRSnNHwQXHwQXHwQnL98V3HkwgfBxQfBKbjsdNnpso5tFMc2fHacgpfv
2IYPk4sPk4sPk4sPk4sPk/PDYKUOdpSwMAc7fCBdfP5cfP5cfP5cfNycglfrlIYPpIsPpIsPpIsP
pIvPn4vPn4tPl9Mc/KHOYPjsuPjsuPhkuPhkuPhkuPhkOIWh4LL1YtlQ8I7pUj4qLj4qTsFKtS0f
JqdgHdpW1aV8ulx8ulx8dlx8dlx8dlx8dlx8dlx8VFx8VFx8Mlx8Mlx8Mlx8Mlx8EFx8zFt8zFt8
zFt8zFt8iFt8Zlt8ZpuCq2godV2s4sU5B1a1ixouq3/4mLf4mLf4mLdUB8N8zFt8zJuChekwPggu
PgguPgguPghOoShUhabQFabCUggFC9O2mkcnHyYXHyYXHwQXHwQXn/sWn/sWn/sWH+IWH+Km4A91
sLTpHz7ELT7ELT6zTcFVuqvoMD7EzfOZy3qo8aluCtbh6KnPfVOwDv2jTZfVP3zum4LX4hnGB8HF
B8EpeHEaig+Ciw+CU7AODyQ+GS4+GS4+GS4+GS4+GS4+GS4+GS4+GS4+GS4+GS4+GS4+GS4+GS4+
CC4+CE7BwvQgnwwXHwQXHwSnMBSmgqtoKD4ILj4ITsFVPCn53DeFULAOv775ZLj4ZLj4ZDgFC9PH
fHZcfHZcfHacX6MszLOUD5NTsFK9sOuFPm4uPm5OwcL8Tujz5xQszONX1z59IJ2ChXm48nFz8XFz
8XFz8XFz8XFz8XFz8ely8elyCi6rW/q4OQVX0S19/pyCl6/1+TC5+DA5BQvTYboO43Pf4nPfFLyn
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
VhsXqGsCdU2grgnUNYG6JlDXBOpSsFK3Agm7FKzUvUEGLwUrdW8QymtCeU0orwnlNRm8JoPXZPCa
yF0K1uHeIIOXgnW4NwjlNaG8FCzMvUFKr0npNSm9JqXXpPSalF6T0mtCeU0oLwXr0OiF8ppQXgou
q9FL6TUpvRSsQ1+X0kvBwjxai+2lYGE6/9b5BfuaYF8T7GuCfSlYmEYv2NcE+7pgXwpFoSo0ha4w
FKbCUggFKy1WWqy0WGmxsGJhxcKKhRXrqNZRraN6g6p1VOuo1lGto3qDmss2L7+5SnOV7s/o/oxu
6d0f2q20W+nwfgx/6LCw4Q8dFz/U38v09zJddrrs9Fqmq0xXWd6x5R1bLrtcdrns8mqXdSzrCK82
rCOsI6wjrCOsI6xju+x22e0q21W2v+ztsvtiWS6/aFsid13krovcpTAUpgJ1FD1I5K6L3KVgHZqS
yF0XuesSdl2grgvUdYG6LlDX5ee6dFwvzavVcoThuuxbl31LwXvaXFZTKpqSMFwXhuvCcF0YrgvD
dWG4LvvWZd+67FuXfeuyb132rcu+ddm3LvvWRd263FqXW+tya11urcutdbm1LrfW5da63FqXW+ty
a11urcutdbm1LovSZVG6L5zqUiJdSqRLiXRfJ9V9nVQXG+liI11KpEuJdKGQFLrCUJgKF8vymxMK
6UIhXSiky4B0kY8u8tElPLpARxfo6AIdXX6jy290+Y0uv9HlN7p0RvdFTyl4tfqYuEYX1+jiGv31
q6Ae/Fv6Tr/s9MtOv+z0y06/7PTLTr/s9MtOv+z0y06/7PTLTr/s9MtOv+z0y06/7PTLTr/s9MtO
v+z0y06/7PTLTr/s9MveYb/sob6l74QjnnDEE454whFPOOIJRzzhiCcc8YQjnnDEE454whFPOOIJ
RzzhiCcc8YQjnnDEE454whFPOOIJRzzhiCcc8YQjnnDEdxiO+Mt4S9+L66+e//H6w3lRn/X+rHf1
vcFL994M3Othz1uap0vzdGmeLs3TpXm6NE+X5unSPF2aJwUrLdbhuGDYFRfe6cI7KVz8UC/OUZ1w
VEeap0vzdGmeLs3TpXm68E4XzemiOV00pwvepOAPdRBHEqdL4nTBmy540wVvuuBNF6vpYjVdrKZL
0XQpmi5F06VouhRNl6LpUjRdaKYLzXShmS4004VmutBMF5rpQjNdRqbLyKRgYc4gCs2k4LLhsg4l
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
EsJaMldLxGqJWC0RqyVitSSqUvDidAd5qSUelYK/Oc8fAlRLgGoJUKXg1Wo5ElVLompJVC2JqiVR
tSSqlkTVkqhaElVLompJVC2JqiVRtSSqlkTVkpda8lIpWIemJC+15KWWvNSSl1ryUilYhx4kDbWk
oZbw0xJ+WsJPS/hpCT8t4acl/LSEn5Zo0xJtWqJNS7RpiTYt0aYl2rREm5Zo0xJcWmJJKXgtHlnk
lNbWpQSXluDSElxKwWU91GyNbfv1ba+Lwrxaz0HSUEsaaklDpWCleqF4VApW6ve5rX1u7XN7uBKx
WgJUKbis5rhtSlzZlLiydSpzFSJWIWIVElUhURXyUiEeFdJQIQ0V0lAhDRXSUCH8FMJPIckUV7ZO
fQFVCq5iL9UXUIUvoApfQJWCl2/r1DdSha+XCl8vlYLX4jicL48K3xWVgpXaB/VdUeG7osJ3RYXv
isojv3XYOvXlUeHLo8KXR4UvjwpfHpWCldpc9W1S4duk4vXbpD7Q9/Dd6Urv5tV97+s9fD9C3D2g
l+/97CoPFXiowEMFHirwUIGHCjxU4KECDxV4qMBDBR4q8FCBhwo8VOChAg8VeKjAQwUeKvBQgYcK
PFTgoQIPFXiowHugAh/qG/cOdniww4MdHuzwYIcHOzzY4cEOD3Z4sMODHR7s8GCHBzs82OHBDg92
eLDDgx0e7PBghwc7PNjhwQ4Pdniww3eIHd7nG/e+JdM+enlD9H0+fv3V1+1fPnvx9B/q1b9+/SL/
Z/495/+4+azk/6j/VMo/1Zt//J//9ttHeS1X+Y//+O+f/PZ/XP265+d65FfNXnst86qPN1r2q+d/
fHr97bL97Zb9dvCr73l1M5h388Lc+yY469X81Tu9r3dEIF7/Mf/X518+f/zk5avHL159/uz5429e
Pc+L+dObtFe/d413/0t8ANd4Phvv/LPxi/y7+e/w+X+z0YqwnRi2E1NwFMXjkv3FsL8Y9hfD/mLY
TgzbiWE7MWwnhr3BsDcYtgLDVmDYCgxbgWHnL+zrhX29FFxlXPxQx3s8LtnGC9t4KViHx6XpcclG
XwpevsclO39hoy9s9IV9vbCvF/b1wq5d2LULm3Rhky5s0oVNurAnF7bgwhZc2IILO25hxy1ssMXy
65bdsrBbFjbHwuZYLDmB5fev5Ria7bOwfRa2z8L2WdgtC7tlYbcs7JaF3bKwW5aChdWLOrwfmpLt
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
oTAVlgKV8iT5RrAwbatoW0XbKtpW0bZKuajDO6ZLFV2q6FJFlyq6VNGlii5VqoVpSkVT4lnzjXDx
M7y47i3s/tDuD9WUiqZE3teNYOnDZYfL6lJFlyrjYlkvTpcquhQBYDeCq2hKxHvdCF6cpkSa143g
xelSZV0s68XpUkWXKrpU0aWKLlV0KRLBbgQL08eKPla2lW4r1dgIALsRXFanKzpd1emqTlc1tqqP
VX2s6mPV01bVx6o+VvWxqo9VfazqY1Ufqx6/qsZWNbaqsVV9jDSvG8HCNLaqsVWNrWps1fNY9TxG
ANiNYKV6YdULSQS7EdaPxii+Eeh182O8HC216qBVB6394md4S7TU6jmv6rFVj616bNVjqx5bPQlW
TbdqulXTrZpu9WhYdWHCyW4EK9Wnq2dFwslS0Lirp8mqk1edvGrcVeOuGnf1eFl18qqTV5286uRV
J68ad9Wnqz5d9emqLVcPoFWfrvp09URaNe6qcVeNu2ncTeNuHlGbTt48ojadvOnkTSdvOnnTyZtO
3jTupnE3fbrp002fbp43m7bctOWmLTdtuWnLTRduunDTUpuW2vxW3DTH5gGUpLEbwWvRPptfk5t+
2vTTpp827bPplk23bJpj0xyb5tg0x6Y5Ns2xaY5Nc2yaY9Mcm+bYPMQ23bLplk23bLpl0y2bbtk8
9zbts2mfTfts2mfTPpv22bTPpls2z71N+2yee5t+2vTTpp82z71Ng20abNNgmwbbNNimwTYNtuun
XT/tumX3INx1y65bds2xa47dY27XLbtu2T3mdu2z65bdU23XPrv22bXPrn127bPrlt0TafdE2jXH
rjl2nxB2zbH7yLB72OzaZ9c+u27Z+0UdXpxu2XXLrlt2z5Zdt+y6Zdctu+bY9cKuF3atr2t9Xafr
Ol3X6bo+1rWtrm11batrW13b6tpW99TX9bGuj3V9rOtjXR/r+ljXx7o+1vWxro91fazrY13b6he2
5blw6GNDHxueC4fnwqHTDc+FQ6cbPqkcWt/woDj0wqEXDr1w6IVDLxx64dALh0fJofUNrW/odEOn
Gx4Uh9Y3PCgOv64PzZHIrxvBy/ewOTxsDv106KfDw+bQYId+OvTToZ8O/XR4HB0a7NBghwY7/Ho/
dNzh1/uhBQ8teHhgHVrw0IKHFjw8sA7Pp0MLHh5HhxY8PH0OPXnoycPD5vCwOTTp4WFz6NpD1x66
9tC1h649dO2haw9de+jaQ5MemvTQpIcmPbTgoQWTRXYjeIM8Ww5NemjSQ5OemvTUpKcmPfXk6elz
atJTk56a9NSTp5489eSpJ089eerJU0+eevIsF4V5xzywTl176trTA+vUxqc2PrXx6WPYqY1PbXxq
41Mbn9r41MZnu1jW++Ghd2rSU0+eevLUk6eePPXkqSdPPXnquFPHnTru1HGnjjt13KnjTk/BUwue
Hounnjz15Ok5eWrSU5OemvTUpKcH56lrT1176tpT15669tS1p649NempSU9Nenpwnnry1JNnXCzr
DdKTpxY8teCpBU8dd+q4S8dd+unST5d+urTP5Rl36adLP1366dJPl3669NOlny79dOmnSz9d+unS
T5d+uvTTpZ8u/XTpp0s/XZ6Tlwa7NNilwS4NdmmwrymRO30Z2Lt9f9ihvg71daivQ30d6utQX4f6
OtTXob4O9XWor0N9HerrUF+H+jrU16G+DvV1qK9DfR3q61Bfh/o61Nehvg71defU130GI978tz56
ef3V42evnn7x8qPrr/7j+smT6yePvnj+7NX1s1cffXX95OnjR9dfXn+V/+nlR89/97uX169ePnr6
7NXzR6/+cP3o9f/9xfXL59+8+OL6oyffvHj86unz16u/36begeAOBHcguAPBHQjuQHAHgjsQ3IHg
DgR3ILgDwR0I7kBwB4I7ENyB4A4EdyC4A8EdCO5AcAeCOxDcgeAOBPcOIbh7aup91yZ7l429X/3j
/37+7PrvNxdv/+2XH92If3j84tn1y5e//j8v3+Zfe3H99fMXr370X37PdOGPl/lDv/93+Xt5s7+M
H/qtPLiK34jhvPm8aQR+DV0eaJbfOpcnnOUJZ/k1dHnkWR55lkee5ZFneeRZHnmWR57l19Dl19Dl
oWh5KFo+CVyekpZHnuWRZ3nkWR55liecNS9W8X54wlmecJYHmuX5ZXl+WZ5flueX5flleX5Zfutc
HmiWB5rlgWb5rXP5rXN55FkeeZZHnuWRZ/locPlocHkGWn4vXR6Kloei5aFo+b10eUoKD0Xh19Dw
a2j4rDA8R4XnqPAcFX4vjauLwvjdhger8GAVHqzCc1R4jgrPUeE5KjxHheeo8BwVnqPC8anwYBUe
rMKDVXiwCo9N4bEpPCWFp6TwlBR+DQ1tPLTx8Itq6Ouhr4e+Hvp66OuhjYc2Htp4aOOha4euHbp2
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
QbNt0GwbNLsEzS5Bs0vQ7BKkYB2eosJTlG2DFLxBeot9hGYfIQUL02xsLDT7CM0+QrOP0OwjNPsI
zT5Cs4/Q7CM0+wjNPkKzj9DsIzT7CC00LBsLKViY/mSnodlpSME6PJrZaWg2FlLwfnjwsvXQbD00
Ww9te6zaHqvsRaQwFKbCUnBZv5XarWh2K5rdimZzotmcaDYnUriog79TuxXNbkWzW5GChenJW0+2
n9HsZzT7GSlYqZ5sx6PZ8UjBSjVpWyApWJgmbU+k2QJptkBSsA5NeuvJNkmaTZJmk6TZJGk2SVJw
WT3ZJkmzSdJskjSbJM0mSbNJ0mySpOAN0pNtozTbKM02SrON0myjNLsmKViYnrz1ZPsqzTZKs43S
bJI0myTNFkgK/lC/2doCabZAmi2QFLyFF27J19RuC6Tb8eh2PLodj27Ho9vx6HY8uh2PFCwMP03B
woqFFQsrFlYsrFhYsbBiYdU7Vq20Wmm10mql1UqrlVYrrRbWrKNZR7OOZh3NOprLNm9Qs47uDeoW
1i2sW1i3ju796BbWLaxb2LCwYWHDwoaFDe/YsNJhpcNKh5UOK51WOq10Wum00mml08Kmyy6XXf7Q
5dUuf+jyaperhKuE1xKWHq4SrhLe03DZ7bLbe7pddrvsdtntshqsPZFuTySFqtAUusJQmApLgUrt
q3TbKN2uSbdJ0m2SdJsk3SZJt0nS7Yl0eyLdnkgKXr7maJOk2yTpNkm6TZJuk6TbJOk2SVLwBumW
dk26XZNu16TbNel2TVKwMO2zaJ/2Vbp9lW5fJQUL0/pso3S7Jt2uSS86nW2UFLx8nc6+Srev0u2r
pOAfzLRSzdFGS7fR0m20dBst3UZLt9HSbbR0Gy0pWKkGW8LCNNiiwdqK6bZiUrAOHdfeTLc3k4J1
6Li2Yrqdl27npdt56XZeup2Xbuel23lJYShMhaUQCham49qb6fZmUmgKFqbB2qzpNmtScBX91N5M
tzfT7c2kYB0arM2abrOm26zp9ma6vZlub6bbm+n2ZnrVce3NdHsz3d5MtzfT7c2kYGE6rr2ZFLxB
HkerBmuzJoWLVbx8HdfuTbd70+3edLs33e5NChamfdq96XZvut2bFKxD+6yao/2dbn+n273pdm9S
cBXNsWqOVXOsmmPVHA3uS8H7sa1U+zTJr5vk1w3u6wb3dYP7ujl93Zy+FC5WCQUu3+C+FJrCuIP3
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
ha8ADN/4F77xL3zjX/jGv/CNf+Eb/8I3/oVv/Avf+JeCdXi88wV/4ev7UnAVDXxp4L7gL3zBX/g+
v/B9fuH7/MLX94Wv7wtf3xe+vi98fV/4+r7w9X3h6/vCt/WFb+sLX84XSwP3bX0peD90dF/fF76+
LwUL0/N9n1/4Pr/wfX6x9HwxyhCjDDHKEKMMqcmQmgypyZCaDKnJFLrCUJgKS+GiMG6QoGUIWoag
ZQhahqBlCFqGXGXIVYZcZchVhlxlyFWGXGWIUYYYZYhRhtRkSE2G1GRITYbUZEhNhtRkSE2G1GRI
TYbUZApWajtHjDLEKEOMMsQoQ4wyxChDjDLEKEOMMsQoQ4wyxChDjDIFC9PGQ9eWqwy5ypCrDLnK
kKsMucoQowwxyhCjDDHKEKMMMcoQowwxypCaTMHCNHoxyhCjDDHKEKMMMcoQowwxyhCjDDHKEKMM
McoQo0zBSjV6ucqQqwy5ypCrDLnKEKMMMcqQmgypyZCaDKnJEJIMIckQkgwBxxBfDGnFEE5MwcI0
WOHEkDQMScOQNAw5wpAjDDnCkCNMwWvRHAULU7AOzVHSMCQNQ9IwJA1D0jAkDUPSMCQNQ9IwJA1T
sFLNUdIwBAtDsDAEC0OwMAQLQ7AwBAvzA+X90PrkCEOOMOQIQ44w5AhDjjAF74deKFgYcoQhRxhy
hCFHGHKEIRQYQoEhFBhCgSEUGDKAsS9si4cUW+RvS/htCb8t4bcF+rZA3xbo2wJ9W6BvC/Rtgb4t
0LcF+rZA35bf2/J7W35vi+ttcb0trrfF9ba43hbX2+J6W1xvi+ttcb0trrfF9ba43hbX2+J6W1xv
i+ttcb0trrfF9ba43hbX2+J6W1xvi+ttcb0trrfF9ba43hbX2+J6W1xvi+ttcb0trrfF9ba43hbX
2+J6W1xvi+ttcb0trrfF9ba43hbX2+J6W1xvi+ttcb0trrfF9ba43hbX2+J6W1xvS+dt6bwtnbel
87Z03pbO28J4W/Zuy95t2bste7dl77bs3Za927J3W/Zuy95t2bste7dl77bs3Za927J3W/Zuy95t
Ubstarcl67Zk3Zas25J1W7JuS9ZtybotWbcl67Zk3Zas25J1W7JuS9ZtybotWbcl67Zk3Zas23Jz
W25ui8ltIbgtBLeF4LYQ3BaC20JwWwhuC8FtIbgtBLcl2rZE25Zo2xJtW4BtC7BtAbYtwLYF2LYA
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
R6geoXqE6hGqR6geoXqE6hGqR6geoXqEm5FQTkI5CeUklJNQTsLNSLgZecuhuafvfI6ur9H1Nbq+
RtfX6PoaXV+j62t0fY2ur9H1Nbq+RtfX6PoaXV+j62t0fY2ur9H1Nbq+RtfX6PoaXV+j62t0fY2u
r9H1tf2ur0P/zufoERs9YqNHbPSIjR6x0SM2esRGj9joERs9YqNHbPSIjR6x0SM2esRGj9joERs9
YqNHbPSIjR6x0SM2esRGj9joERs9YjvoEbvP73z+8j2y828ujT8en704OT//+j/Pb/Ozs5NXL88u
PvvjO9Ie33xDbdsnuEsj3ufvw5Y+vnf7r8hdL036W2PggbjP2Dhsr3c+mh/wbfnwG5jLZnP5Fcz9
cWOnf3s/KasW7gLCXUC4Cwh3AeEuINwFhLuAcBcQ7gLCXUC4Cwh3AeEuINwFhLuAcBcQ7gLCXUC4
Cwh3AeEuIFz0h4v+cNEfrvHDNX64xg8DQuGSPlzSR71yWu+Ha/xwjR+u8cM1frjGD9f44Ro/XOOH
a/xwjR+u8cM1frjGD9f44Qo+XMGHK/h0wZ4u2NMFe7pgTxfs6fo8N1dOy+Wny/F0OZ4ux9PVd7r6
Tlff6eo7XX2nq+909Z2uvtPVd7r6Tlff6eo7XX2nq+90bZ2urdO1dbq2TtfW6VI6lyun9X64ck5X
zmkYP52k00k6naTTSTqdpNNJOp2k00k6naTTKTidgtMZN51x0wk2nWDTCTaNqqQTbBozSafPdPpM
QyTpfJrGTNIJNp1g0wk2nWDT+TSdT9P5NJ1P0/k0nU/T+TSdT9P5NJ1P0/k0nT7TEEkaIkkn2HSC
zSsTrCGS6oxbnXGrM251xq3OuNUQSXUKroZIqnNydU6uzsnVAEh1Cq5OwdUpuDoFV2fc6oxbnXGr
M251gq1OsNUJtjrBVsMb1fBGdQquTsHVKbg6BVen4Gp4ozoFV6MZ1Tm5OidX5+TqnFxdSVcn6eok
XZ2kq5N0dZKuTtLVSbo6SVcn6epKurqSrk7j1Wm8upKuzuvVeb26kq5O9NWJvrpwrk701Ym+upKu
rqSrUlBdWle1oaoNVW2oakNVG6raUNWG6tK6KgXVmb8681dn/tqunMX74URfneirE3114Vyd+asz
f3Xmr8781Zm/OvM3J/rmvN6c15vzenNeb87rbXPltNyg5kq6OY03p/HmNN6cxpvTeHMl3ZzXm/N6
c15vzuvNeb05rzfn9ea83pzXm/N6c15vzuvNeb05rzfn9ea83lxrNyf65kTfnOibE31zom9O9M2J
vjnRN+f15rzenMab03hzGm9O481ZuzlrN2ft5qzdnLWbs3Zzkm5O0s3VeHPWbs7azVm7OWs3Z+3m
rN2ctZuzdnPWbs7azVm7OWs3Z+3mrN1c0TdX9M15vTmvN5f4zYm+OdE3J/rmEr858zdn/vcwi7+2
r/5Ufv0v89Q/HmxZaLu9NPxy/m/jqz9vPvovv5z32/LVX+tH/6VzkF8nsG//8tVf33ry16/+/MaT
v/75qz//+X1X8/S+J/Wvy1d//ePlP/zl26/+8uZv/7L+v/bmP3371bd//eUfpjf/0L/66/zhKSEl
FOoOL//il3v/7earPy0f/ZfwT3/16c0pL10pH97Jyz/xmj+ecS4Nv3j0lz9+9W1/8w9//erbN9fz
579+9ae/vHGlf/XnN//wl/jlH/KrP7/9Vf/qT/O7+/LHN3dsvRffLr/8Q7z5h81Xf35rWe/zG/f+
/Md39+Xb+tUfl3d/8/YS3o6B+X10bD3DW3e+za/+FO//ZHm/M//2z+8Ot/r053xjmd45sf7vH8u7
y/vz+0cx5/u+yvVBflveOfyXN8/v2z9+9ce//DIe5nd34C9vjvfXv3w0Vvv7cv/VvW///O4q3zq8
Huzt5X47v3uUf5m++lN9NzDenWrz7sDrrfprvruYP07vRtFf3/zNesv/8sd3j/ft7V//059+eQ5v
7996ir+8vZo/ffXX+OWy/vqLy3985+EfPxh8C5VfHxouL/yPvzyp9u75vrWsl/SX+stj/cu76/xT
/+Wuf/DW5Pu13PsROr17Nb795Xlc/vqP7+9oYR8/lUabyvr/23z+S3fXakmcZQbMm/fYlvX6PxyO
H1SIrs/p2/xlxP7l3bP8U3t3o9+O81+H97sJ7T1wap1pPhyFU/913vx1IluHz5/fPMD1MX47/2LJ
X96f/OANoI53LlTor4ZfJ/v1Rfj2g4FbqCiZC8vqubxH5awT3tu78etr9cuf/LoYe/+eLZdD5e2P
3k2C87v/9PZH8T6ktM7Pb6ecX+fqywmm/vIubt7d1LcD8O2v6/uqjXWA//HtmKofTQztfdno5dDn
/f323Zk+fpGXD+Kvl4+xv3uV3l7tr7Lw7qVnTT5fQa/Illg+aMe5VLvNRxrz182712Z93H+ePvjR
+8KH1Y8/1Q/+i6Sf6X055a9zw7v/Iplrft+4/evs8e6/vM/ZvJ8zfhG3y2npg/tV3kcK10n37d/+
5c0I/XCuWGe3v24+ErPLJ/2nj6eR6Zcnsh5n+nhiWc/ZPppY1rH051/muw90f6kzZLBKgdTS3tfM
/DoH/SrY7/7k/QLs24/UYmnvUUsfT1cf4m7//O3l/3s/b03UEb+xbD62FKrmp6BhaEoqZ1fDlZ/Q
5TtFYYcz5XKlZuZKnIGNw7TQvnFpWDQUDaHhykGrhqahY/h4p3lpmDTo6ayns57Oejrr6ayns57O
erro6aKni54uerro6aKni54uerro6aKnRU+LnhY9LXpa9LTo6ZUhVfS06GnR09DT0NPQ09DT0NPQ
09DT0NPQ09DT1NPU09TT1NPU09TT1NPU09TT1NOqp1VPq55WPa16WvW06mnV06qnVU+bnjY9bXra
9LTpadPTpqdNT5ueNj3tetr1tOtp19Oup11Pu552Pe162vGUFpDJjcClYdawaCgaQkNqqBqaBj2d
9HTSUzWqqFFFjSpqVFGjihpV1KiiRhU1qqhRRY0qalRRo4oaVdSookYVNaqoUUWNKmpUUaOKGlXU
qKJGFTWqqFFFjSpqVFGjXPmsBj1Vo4oaVdSookYVNaqoUUWNKmpUUaOKGlXUqKJGFTWqqFFFjSpq
VFGjihpV1KiiRhU1qqhRRY0qalRRo4oaVdSookYVNaqoUUWNKmpUUaOKGlXUqKJGFTWqqFFFjSpq
VFGjihpV1KiiRhU1qqhRRY0qalRRo4oaVdSookYVNaqoUUWNKmpUUaNCjQo1KtSoUKNCjQo1KtSo
UKNCjQo1KtSoUKNCjQo1KtSoUKNCjQo1KtSoUKNCjQo1KtSoUKNCjQo1KtSoUKNCjQo1KtSoUKNC
jQo1KtSoUKNCjQo1KtSoUKNCjQo1KtSoUKNCjQo1KtSoUKNCjQo1KtSoUKNCjQo1KtSoUKNCjQo1
KtSoUKNCjQo1KtSoUKNCjQo1KtSoUKNCjQo1KtSoUKNCjQo1KtSoUKNCjQo1KtSoUKNCjQo1KtSo
UKNCjQo1KtSoUKNCjQo1KtSoUKNCjQo1KtSoUKNCjQo1KtSoUKNSjUo1KtWoVKNSjco3GnX/bVf5
L7/VKfKwmpVG+8loPxntJ6P9ZLSfjPaT0X4y2k9G+8loPxntJ6P9ZLSfjPaT0X4y2k9G+8loPxnt
J6P9ZLSfjPaT0X4y2k+u3X5y6J/cGv0to79l9LeM/pbR3zL6W0Z/y+hvGf0to79l9LeM/pbR3zL6
W0Z/y+hvGf0to79l9LeM/pbR3zL6W0Z/y+hv2Wt/y31+iGnXHz95uL0z1+qbuXyE6TOtGpoGx5ar
inRVka4q0lVFuqpIVxXpqiJdVaSrinRVka4q0lVFuqpIVxXpqiJdVaSrinRVka4q0lVFuqpIVxXp
qiJdVaSrinRVka4q0lVFuqpIVxXpqiJdVaSrinRVka4q0lVFuqpIVxXpqiJdVaSrinRVka4q0lVF
uqpIVxXpqiJdVaSrinRVka4q0lVFuqpIVxXpqiJdVaSrinRVka4q0lVFuqpIVxXpqiJdVaSrinRV
ka4q0lVFuqpIVxXpqiJdVaSrinRVka4q0lVFuqpIVxXpqiJdVaSrinRVka4qrHRY0lVFuqpIVxXp
qiJdVaSriuqqorqqqK4qqquK6qqiuvOtalRVo6oaVdWoqkZVNaqqUVWNqmpUVaOqGlXVqKpGVTWq
qlFVjapqVFWjqhpV1aiqRlU1qqpRVY2qalRVo6oaVdWoqkZVNaqqUVWNqmpUVaOqGlXVqKpGVTWq
qlFVjapqVFWjqhpV1aiqRlU1qqpRVY2qalRVo6oaVdWoqkZVNaqqUVWNqmpUVaOqGlXVqKpGVTWq
qlFVjapqVFWjqhpV1aiqRlU1qqpRVY2qalRVo6oaVdWoqkZVNaqqUVWNqmpUVaOqGlXVqKpGVTWq
qlFVjapqVFWjqhpV1aiqRlU1qqlRTY1qalRTo5oa1dSopkY1NaqpUU2NampUU6OaGtXUqKZGNTWq
qVFNjWpqVFOjmhrV1KimRjU1qqlRTY1qalRTo5oa1dSopkY1Ncryo6WpUU2NampUU6OaGtXUqKZG
NTWqqVFNjWpqVFOjmhp1pXCqqVFNjWpqVFOjmhrV1KimRjU1qqlRTY1qalRTo5oa1dSopkY1Naqp
UU2NampUU6OaGtXUqKZGNTWqqVFNjWpqVFOjmhrV1KimRjU1qqlRTY1qalRTo5oa1dSopkY1Naqp
UU2NampUU6OaGtXUqKZGNTWqqVFNjWpqVFOjmhrV1aiuRnU1qqtRXY3qalRXo7oa1dWorkZ1Naqr
UV2N6mpUV6O6GtXVqK5GdTWqq1FdjepqVFejuhrV1aiuRnU1qqtRXY3qalRXo7oa1dWorkZ1Naqr
UV2N6mpUV6O6GtXVqK5GdTWqq1FdjepqVFejuhrV1aiuRnU1qqtRXY3qalRXo7oa1dWorkZ1Naqr
UV2N6mpUV6O6GtXVqK5GdTWqq1FdjepqVFejuhrV1aiuRnU1qqtRXY3qalRXo7oa1dWorkZ1Naqr
UV2N6mpUV6O6GtXVqK5GdTWqq1FdjepqVFejuhrV1aiuRnU1qqNRZYNGrYZJw6xh0VA0xN2//nN5
mPS4VUPT4PVNXt/k9U1e3+T1TV4fyrYa9HTS00lPJz2d9XTW01lPZz2d9XTW01lPZz2d9XTW00VP
Fz1d9HTR00VPFz1d9HTR00VPFz0telr0tOhp0dOip0VPi54WPS16WvQ09DT0NPQ09DT0NPQ09DT0
NPQ09DT1NPU09TT1NPU09TT1NPU09TT1tOpp1dOqp1VPq55WPa16WvW06mnVU7uyNk1Pm542PW16
2vTUbrBN09Omp01Pu552Pe16ar/uputp19Oup11Pu56qbJPKNqlsk8o2qWyTyjax+1oNdtipUZMa
NalRkxo1qVGTGjWpUZMaNalRkxo1qVGTGjWpUZMaNalRkxo1qVGTGjWpUZMaNalRkxo1qVGTGjWp
UZMaNalRkxo1qVHTcqW/sl5puNSgp2rUpEZNatSkRk1q1KRGTWrUpEZNatSkRk1q1KRGTWrUpEZN
atSkRk1q1KRGTWrUpEZNatSkRk1q1KRGTWrUpEZNatSkRk1q1KRGTWrUpEZNatSkRk1q1KRGTWrU
pEZNatSkRk1q1KRGTWrUpEZNatSkRk1XOpbVqEmNmtSoSY2a1KhJjZrUqEmNmtSoSY2a1KhJjZrU
qFmNmtWoWY2a1ahZjZrVqFmNmtWoWY2a1ahZjZrVqFmNmtWoWY2a1ahZjZrVqFmNmtWoWY2a1ahZ
jZrVqFmNmtWoWY2a1ahZjZrVqFmNmtWoWY2a1ahZjZrVqFmNmtWoWY2a1ahZjZrVqFmNmtWoWY2a
1ahZjZrVqFmNmtWoWY2a1ahZjZrVqFmNmtWoWY2a1ahZjZrVqFmNkruwGvRUjZrVqFmNmtWoWY2a
1ahZjZrVqFmNmtWoWY2a1ahZjZrVqFmNmtWoWY2a1ahZjZrVqFmNmtWoWY2a1ahZjZrVqFmNmtWo
WY2a1ahZjZrVqFmNmtWoWY2a1ahZjVrUqEWNWtSoRY1a1KhFjVrUqEWNWtSoRY1a1KhFjZInUuSJ
FHkiRZ5IkSdS5IkUeSJFnkiRJ1Lkich9uzToqRolT6TIEynyRIo8kSJPpMgTKfJEijyRIk+kyBMp
8kSKPJEiT6TIEynyRIo8kStgmyJPpMgTKfJEijyRIk+kyBMp8kSKPJEiT6TIEynyRIo8kSJPpMgT
KfJEijyRIk+kyBMp8kSKPJEiT6TIEynyRIo8kSJPpMgTKfJEijyRIk+kyBMp8kSKPJEiT6TIEyny
RIo8kSJPpMgTKVcITPJEijyRIk+kyBMp8kTKFfKTPJEiT6TIEynyRIo8kSJPpMgTKfJEijyRIk+k
yBMp8kSKPJEiT6TIEynyRIo8kSJPpJQD+c7TNb+WNLq+RtfX6PoaXV+j62t0fY2ur9H1Nbq+RtfX
6PoaXV+j62t0fY2ur9H1Nbq+RtfX6PoaXV+j62t0fY2ur9H1Nbq+RtfXDrq+Dv2jW6OtbLSVjbay
0VY22spGW9loKxttZaOtbLSVjbay0VY22spGW9loKxttZaOtbLSVjbay0VY22spGW9loKxttZaOt
bLSV7aCt7D4/r3bDT5md/H39P9+9PHt2cvbd0+MXl182++7d583enHA37W5bdvJf/vV/vHxxsvV7
87nPvK3/6cnx07/9z+OLk8O5Tzdx+Lr37JcjnH9zafzx+OzFyfn51/95fj0A6Bsvfv+vP3mSs5NX
L88uPvvj/XRpbqGx85f7sKUPEP7eC3G9bPrn7/rhu3ogTt7lNTnsgb/fkXKT2esgRs3WHL7ZjPnI
pqPr9b+vK6t0qVU1NA0u+dzsFzf7xc1+cbNf3OwXN/vFzX5xs1/c7Bc3+8XNfnGzX9zsFzf7xc1+
cbNf3OwXN/vFzX5xs1/c7Bc3+8XNfnGzX9zsFzf7xc1+cbNf3OwXN/vFzX5xs1/c7Bc3+8XNfnGz
X9zsFzf7xc1+cbNf3OwXN/vFzX5xs1/c7Bc3+8XNfnGzX9zsFzf7xc1+cbNf3OwXN/vFzX5xs1/c
7Bc3+8XNfnGzX9zsFzf7xc1+cbNf3OwXN/vFzX5xs1/c7Bc3+8XNfnGzX9zsFzf7xc1+cbNf3OwX
N/vFzX5xs1/c7Bc3+8XNfnGzX9zsFzf7xc1+cbNf3OwXN/vhZj/c7Ieb/XCzH272w4B0qFGhRoUa
FWpUqFGhRoUaFWpUqFGhRoUaFWpUqFGhRoUaFWpUqFGhRoUaFWpUqFGhRoUaFWpUqFGhRoUaFWpU
qFGhRoUaFWpUqFGhRoUaFWpUqFGhRoUaFWpUqFGhRoUaFWpUqFGhRoUaFWpUqFGhRoUaFWpUqFGh
RoUaFWpUqFGhRoUaFWpUqFGhRoUaFWpUqFGhRoUaFWpUqFGhRoUaFWpUqFGhRoUaFWpUqFGhRoUa
FWpUqFGhRoUaFWpUqFGhRoUaFWpUqFGhRoUaFWpUqFGhRqUalWpUqlGpRqUalWqUHLEiR6zIESty
xIocsSJHrMgRK3LEihyxIkesyBErcsSKHLEiR6zIEStyxIocsSJHrMgRK3LEihyxIkesyBErcsSK
HLEiR6zIEStyxIocsSJHrMgRK3LEihyxIkesyBErcsSKHLEiR6zIEStyxIocsSJHrMgRK3LEihyx
IkesyBErcsSKHLEiR6zIEStyxIocsSJHrMgRK3LEihyxIkesyBErcsSKHLEiR6zIEStyxIocsSJH
rMgRK3LEihyxIkesyBErcsSKHLEiR6zIEStyxIocsSJHrMgRK3LEihyxIkesyBErcsSKHLEiR6zI
EStyxIocsSJHrMgRK3LEihyxIkesyBErcsSKHLEiR6zIEStyxIocsSJHrMgRK3LEihyxIkesyBEr
csSKHLEiR6zIEStyxIocsSJHrMgRK3LEihyxIkesyBErcsSKHLEiR6zIEStyxIocsSJHrMgRK3LE
ihyxIkesyBErcsSKHLEiR6zIEStyxIocsSJHrMgRK3LEihyxIkesyBErcsSKHLEiR6zIEStyxIoc
sSJHrMgRK3LEihyxIkesyBErcsSKHLEiR6zIEStyxIocsSJHrMgRK3LEihyxIkesyBErcsSKHLEi
R6zIEStyxIocsSJHrMgRK3LEihyxIkesyBErcsSKHLEiR6zIEStyxIocsSJHrMgRK3LEihyxIkes
yBErcsSKHLEiR6zIEStyxIocsSJHrMgRK207Xz2VPlakjxXpY0X6WJE+VqSPFeljRfpYkT5WpI8V
6WNF+liRPlakjxXpY0X6WJE+VqSPFeljRfpYkT5WpI8V6WNF+liRPlakjxXpY0X6WJE+VqSPFelj
RfpYkT5WpI8V6WNF+liRPlakjxXpY0X6WJE+VqSPFeljRfpYkT5WpI8V6WNF+liRPlakjxXpY0X6
WJE+VqSPFeljRfpYkT5WpI8V6WNF+liRPlakjxXpY0X6WJE+VqSPFeljRfpYkT5WpI8V6WNF+liR
PlakjxXpY0X6WJE+VqSPFeljRfpYkT5WpI8V6WNF+liRPlakjxXpY0X6WJE+VqSPFeljRfpYkT5W
pI8V6WNF+liRPlakjxXpY0X6WJE+VqSPFeljRfpYkT5WpI8V6WNF+liRPlakjxXpY0X6WJE+VqSP
FeljRfpYkT5WpI8V6WNF+liRPlakjxXpY0X6WJE+VqSPFeljRfpYkT5WpI8V6WNF+liRPlakjxXp
Y0X6WJE+VqSPFeljRfpYkT5WpI8V6WNF+liRPlakjxXpY0X6WJE+VqSPFeljRfpYkT5WpI8V6WNF
+liRPlakjxXpY0X6WJE+VqSPFeljRfpYkT5WpI8V6WNF+liRPlakjxXpY0X6WJE+VqSPFeljRfpY
kT5WpI8V6WNF+liRPlakjxXpY0X6WJE+VqSPFeljRfpYkT5WpI8V6WNF+liRPlakj4X0sZA+FtLH
QvpYSB+LDRoVYr5CzFeI+QoxXyHmK8R8hZivEPMVYr5CzFeI+QoxXyHmK8R8hZivEPMVYr5CzFeI
+QoxXyHmK8R8hZivEPMVYr5CzFeI+QoxXyHmK8R8hZivEPMVYr5CzFeI+QoxXyHmK8R8hZivEPMV
Yr5CzFeI+QoxXyHmK8R8hZivEPMVYr5CzFeI+QoxXyHmK8R8hZivEPMVYr5CzFeI+QoxXyHmK8R8
hZivEPMVYr5CzFeI+QoxXyHmK8R8hZivEPMVYr5CzFeI+QoxXyHmK8R8hZivEPMVYr5CzFeI+Qox
XyHmK8R8hZivEPMVYr5CzFeI+QoxXyHmK8R8hZivEPMVYr5CzFeI+QoxXyHmK8R8hZivEPMVYr5C
zFeI+QoxXyHmK8R8hZivEPMVYr5CzFeI+QoxXyHmK8R8hZivEPMVYr5CzFeI+QoxXyHmK8R8hZiv
EPMVYr5CzFeI+QoxXyHmK8R8hZivEPMVYr5CzFeI+QoxXyHmK8R8hZivEPMVYr5CzFeI+QoxXyHm
K8R8hZivEPMVYr5CzFeI+QoxXyHmK8R8hZivEPMVYr5CzFeI+QoxXyHmK8R8hZivEPMVYr5CzFeI
+QoxXyHmK8R8hZivEPMVYr5CzFeI+QoxXyHmK8R8hZivEPMVYr5CzFeI+QoxXyHmK8R8hZivEPMV
Yr5CzFeI+QoxXyHmK8R8hZivmB/GV09Hvmzky0a+bOTLRr5s5MtGvmzky0a+bOTLRr5s5MtGvmzk
y0a+bOTLRr5s5MtGvmzky0a+bOTLRr5s5MtGvmzky3aYLzvUr54OOOKAIw444oAjDjjigCMOOOKA
Iw444oAjDjjigCMOOOKAIw444oAjDjjigCMOOOKAIw444oAjDjjigCMOOOKAI+4QjviAvnq6nv3Z
z0fnF8frIb45fn3x8vJrZUf/OL348ej8+ct/rEf+58XRxdnx07+dH87XPW/q9I6/8HnbTxfu/GN3
j/HbiDd99gfxfcTdOL2bTxhu1dfrZe3DaFMYbQqjTWG0KYw2hdGmMNoURpvCaFMYbQqjTWG0KYw2
hdGmMNoURpvCaFMYbQqjTWG0KYw2hdGmMNoURpvCaFMYbQqjTWG0KYw2hdGmMNoURpvCaFMYbQqj
TWG0KYw2hdGmMNoURpvCaFMYbQqjTWG0KYw2hdGmMNoURpvCaFMYbQqjTWG0KYw2hdGmMNoURpvC
aFMYbQqjTWG0KYw2hdGmMNoURpvCaFMYbQqjTWG0KYw2hdGmMNoURpvCaFMYbQqjTWG0KYw2hdGm
MNoURpvCaFMYbQqjTWG0KYw2hdGmMNoURpvCaFMYbQqjTWG0KYw2hdGmMNoURpvCaFMYbQqjTWG0
KYw2hdGmMNoURpvCaFMYbQqjTWG0KYw2hdGmMNoURpvCaFMYbQqjTWG0KYw2hdGmMNoURpvCaFMY
bQqjTWG0KYw2hdGmMNoURpvCaFMYbQqjTWG0KYw2hdGmMNoURpvCaFMYbQqjTWG0KYw2hdGmMNoU
RpvCaFMYbQqjTWG0KYw2hdGmMNoURpvCaFMYbQqjTWG0KYw2hdGmMNoURpvCaFMYbQqjTWG0KYw2
hdGmMNoURpvCaFMYbQqjTWG0KYw2hdGmMNoURpvCaFMYbQqjTWG0KYw2hdGmMNoURpvCaFMYbQqj
TWG0KYw2hdGmMNoURpvCaFMYbQqjTWG0KYw2hdGmMNoUTY0SEhRCgkJIUAgJCiFBISQohASFkKAQ
EhRCgkJIUAgJCiFBISQohASFkKAQEhRCgkJIUAgJCiFBISQohASFkKAQEhRCgkJIUAgJCiFBISQo
hASFkKAQEhRCgkJIUAgJCiFBISQohASFkKAQEhRCgkJIUAgJCiFBISQohASFkKAQEhRCgkJIUAgJ
CiFBISQohASFkKAQEhRCgkJIUAgJCiFBISQohASFkKAQEhRCgkJIUAgJCiFBISQohASFkKAQEhRC
gkJIUAgJCiFBISQohASFkKAQEhRCgkJIUAgJCiFBISQohASFkKAQEhRCgkJIUAgJCiFBISQohASF
kKAQEhRCgkJIUAgJCiFBISQohASFkKAQEhRCgkJIUAgJCiFBISQohASFkKAQEhRCgkJIUAgJCiFB
ISQohASFkKAQEhRCgkJIUAgJCiFBISQohASFkKAQEhRCgkJIUAgJCiFBISQohASFkKAQEhRCgkJI
UAgJCiFBISQohASFkKAQEhRCgkJIUAgJCiFBISQohASFkKAQEhRCgkJIUAgJCiFBISQohASFkKAQ
EhRCgkJIUAgJCiFBISQohASFkKAQEhRCgkJIUAgJCiFBISQohASFkKAQEhRCgkJIUAgJCiFBISQo
hASFkKAQEhRCgkJIUAgJCiFBISQohASFkKAQEhRCglJIUAoJSiFBKSQohQTlZiufNIxZZZtVtlll
m1W2WWWbVbZZZZtVtlllm1W2WWWbVbZZZZtVtlllm1W2WWWbVbZZZZtVtlllm1W2WWWbVbZZZZtV
tlllm1W2WWWbVbZZZZtVtlllm1W2WWWbVbZZZZtVtlllm1W2WWWbVbZZZZtVtlllm1W2WWWbVbZZ
ZZtVtlllm1W2WWWbVbZZZZtVtlllm1W2WWWbVbZZZZtVtlllm1W2WWWbVbZZZZtVtlllm1W2WWWb
VbZZZZtVtlllm1W2WWWbVbZZZZtVtlllm1W2WWWbVbZZZZtVtlllm1W2WWWbVbZZZZtVtlllm919
Le6+Fndfi7uvxd3X4u5rcfe1qFGLGrWoUYsatahRixq1qFGLGrWoUYsatahRixq1qFGLGrWoUYsa
tahRixq1qFGLGrWoUYsatahRixq1qFGLGrWoUYsatahRixq1qFGLGrWoUYsatahRixq1qFGLGrWo
UYsatahRixq1qFGLGrWoUYsatahRixq1qFGLGrWoUYsatahRixq1qFGLGrWoUYsatahRixq1qFGL
GrWoUYsatahRixq1qFGLGrWoUYsatahRixq1qFGLGrWoUYsatahRixq1qFGLGrWoUYsatahRixq1
qFGLGrWoUYsatahRixq1qFGLGrWoUYsaVdSookYVNaqoUUWNKmqUDJ+Q4RMyfEKGT8jwCRk+IcMn
ZPiEDJ+Q4RMyfEKGT8jwCRk+IcMnZPiEDJ+Q4RMyfEKGT8jwCRk+IcMnZPiEDJ+Q4RMyfEKGT8jw
CRk+IcMnZPiEDJ+Q4RMyfEKGT8jwCRk+IcMnZPiEDJ+Q4RMyfEKGT8jwCRk+IcMnZPiEDJ+Q4RMy
fEKGT8jwCRk+IcMnZPiEDJ+Q4RMyfEKGT8jwCRk+IcMnZPiEDJ+Q4RMyfEKGT8jwCRk+IcMnZPiE
DJ+Q4RMyfEKGT8jwCRk+IcMnZPiEDJ+Q4RMyfEKGT8jwCRk+IcMnZPiEDJ+Q4RMyfEKGT8jwCRk+
IcMnZPiEDJ+Q4RMyfEKGT8jwCRk+IcMnZPiEDJ+Q4RMyfEKGT8jwCRk+IcMnZPiEDJ+Q4RMyfEKG
T8jwCRk+IcMnZPiEDJ+Q4RMyfEKGT8jwCRk+IcMnZPiEDJ+Q4RMyfEKGT8jwCRk+IcMnZPiEDJ+Q
4RMyfEKGT8jwCRk+IcMnZPiEDJ+Q4RMyfEKGT8jwCRk+IcMnZPiEDJ+Q4RMyfEKGT8jwCRk+IcMn
ZPiEDJ+Q4RMyfEKGT8jwCRk+IcMnZPiEDJ+Q4RMyfEKGT8jwCRk+IcMnZPiEDJ+Q4RMyfEKGT8jw
CRk+IcMnZPiEDJ+Q4RMyfEKGT8jwCRk+IcMnZPiEDJ+Q4RMyfEKGT8jwCRk+IcMn8iA+abjzpsaH
1P52fXDtaIEbLXCjBW60wI0WuNECN1rgRgvcaIEbLXCjBW60wI0WuNECN1rgRgvcaIEbLXCjBW60
wI0WuNECN1rgRgvcaIEbLXDbb4E71O87jh670WM3euxGj93osRs9dqPHbvTYjR670WM3euxGj93o
sRs9dqPHbvTYjR670WM3euxGj93osRs9dqPHbvTYjR670WO3wx67+/y+4++myNKtXbq1S7d26dYu
3dqlW7t0a5du7dKtXbq1S7d26dYu3dqlW7t0a5du7dKtXbq1S7d26dYu3dqlW7t0a5du7dKtXbq1
S7d26dYu3dqlW7t0a5du7dKtXbq1S7d26dYu3dqlW7t0a5du7dKtXbq1S7d26dYu3dqlW7t0a5du
7dKtXbq1S7d26dYu3dqlW7t0a5du7dKtXbq1S7d26dYu3dqlW7t0a5du7dKtXbq1S7d26dYu3dql
W7t0a5du7dKtXbq1S7d26dYu3dqlW7t0a5du7dKtXbq1S7d26dYu3dqlW7t0a5du7dKtXbq1S7d2
6dYu3dqlW7t0a5du7dKtXbq1S7d26dYu3dqlW7t0a5du7dKtXbq1S7d26dYu3dqlW7t0a5du7dKt
Xbq1S7d26dYu3dqlW7t0a5du7dKtXbq1S7d26dYu3dqlW7t0a5du7dKtXbq1S7d26dYu3dqlW7t0
a5du7dKtXbq1S7d26dYu3dqlW7t0a5du7dKtXbq1S7d26dYu3dqlW7t0a5du7dKtXbq1S7d26dYu
3dqlW7t0a5du7dKtXbq1S7d26dYu3dqlW7t0a5du7dKtXbq1S7d26dYu3dqlW7t0a5du7dKtXbq1
S7d26dYu3dqlW7t0a5du7dKtXbq1S7d26dYu3dqlW7t0a5du7dKtXbq1S7d26dYu3dqlW7t0a5ep
RknkSIkcKZEjJXKkRI6UyJESOVIiR0rkSIkcKZEjJXKkRI6UyJESOVIiR0rkSIkcKZEjJXKkRI6U
yJESOVIiR0rkSIkcKZEjJXKkRI6UyJESOVIiR0rkSIkcKZEjJXKkRI6UyJESOVIiR0rkSIkcKZEj
JXKkRI6UyJESOVIiR0rkSIkcKZEjJXKkRI6UyJESOVIiR0rkSIkcKZEjJXKkRI6UyJESOVIiR0rk
SIkcKZEjJXKkRI6UyJESOVIiR0rkSIkcKZEjJXKkRI6UyJESOVIiR0rkSIkcKZEjJXKkRI6UyJES
OVIiR0rkSIkcKZEjJXKkRI6UyJESOVIiR0rkSIkcKZEjJXKkRI6UyJESOVIiR0rkSIkcKZEjJXKk
RI6UyJESOVIiR0rkSIkcKZEjJXKkRI6UyJESOVIiR0rkSIkcKZEjJXKkRI6UyJESOVIiR0rkSIkc
KZEjJXKkRI6UyJESOVIiR0rkSIkcKZEjJXKkRI6UyJESOVIiR0rkSIkcKZEjJXKkRI6UyJESOVIi
R0rkSIkcKZEjJXKkRI6UyJESOVIiR0rkSIkcKZEjJXKkRI6UyJESOVIiR0rkSIkcKZEjJXKkRI6U
yJESOVIiR0rkSIkcKZEjJXKkRI6UyJESOVIiR0rkSIkcKZEjJXKkRI6UyJESOVIiR0rkSIkcKZEj
JXKkRI6UyJESObLd5WNqv/IQ1y1e2qFWNTQNdsqpbBuVbaOybVS2jcq2Udk2KttGZduobBuVbaOy
bVS2jcq2Udk2KttGZduobBuVbaOybVS2jcq2Udk2KttGZduobBuVbaOybVS2jcq2Udk2KttGZduo
bBuVbaOybVS2jcq2Udk2KttGZduobBuVbaOybVS2jcq2Udk2KttGZduobBuVbaOybVS2jcq2Udk2
KttGZduobBuVbaOybVS2jcq2Udk2KttGZduobBuVbaOybVS2jcq2Udk2KttGZduobBuVbaOybVS2
jcq2Udk2KttGZduobBuVbaOybVS2jcq2Udk2KttGZduobBuVbVLZJpVtUtkmlW1S2SZ3X5MaNalR
kxo1qVGTGjWpUZMaNalRkxo1qVGTGjWpUZMaNalRkxo1qVGTGjWpUZMaNalRkxo1qVGTGjWpUZMa
NalRkxo1qVGTGjWpUZMaNalRkxo1qVGTGjWpUZMaNalRkxo1qVGTGjWpUZMaNalRkxo1qVGTGjWp
UZMaNalRkxo1qVGTGjWpUZMaNalRkxo1qVGTGjWpUZMaNalRkxo1qVGTGjWpUZMaNalRkxo1qVGT
GjWpUZMaNalRkxo1qVGTGjWpUZMaNalRkxo1qVGTGjWpUZMaNalRkxo1qVGTGjWpUZMaNalRkxo1
qVGzGjWrUbMaNatRsxo1q1ECM1JgRgrMSIEZKTAjBWakwIwUmJECM1JgRgrMSIEZKTAjBWakwIwU
mJECM1JgRgrMSIEZKTAjBWakwIwUmJECM1JgRgrMSIEZKTAjBWakwIwUmJECM1JgRgrMSIEZKTAj
BWakwIwUmJECM1JgRgrMSIEZKTAjBWakwIwUmJECM1JgRgrMSIEZKTAjBWakwIwUmJECM1JgRgrM
SIEZKTAjBWakwIwUmJECM1JgRgrMSIEZKTAjBWakwIwUmJECM1JgRgrMSIEZKTAjBWakwIwUmJEC
M1JgRgrMSIEZKTAjBWakwIwUmJECM1JgRgrMSIEZKTAjBWakwIwUmJECM1JgRgrMSIEZKTAjBWak
wIwUmJECM1JgRgrMSIEZKTAjBWakwIwUmJECM1JgRgrMSIEZKTAjBWakwIwUmJECM1JgRgrMSIEZ
KTAjBWakwIwUmJECM1JgRgrMSIEZKTAjBWakwIwUmJECM1JgRgrMSIEZKTAjBWakwIwUmJECM1Jg
RgrMSIEZKTAjBWakwIwUmJECM1JgRgrMSIEZKTAjBWakwIwUmJECM1JgRgrMSIEZKTAjBWakwIwU
mJECM1JgRgrMSIEZKTAjBWakwIwUmJECM1JgRgrMSIEZKTAjBWakwIwUmJECM1JgRgrMSIEZKTAj
BWakwIwUmJECM1JgRgrMSIEZKTAjBWakwIwsB/ExteuDEUfX1+j6Gl1fo+trdH2Nrq/R9TW6vkbX
1+j6Gl1fo+trdH2Nrq/R9TW6vkbX1+j6Gl1fo+trdH2Nrq/R9TW6vkbX1+j62n7X16F+P2y0lY22
stFWNtrKRlvZaCsbbWWjrWy0lY22stFWNtrKRlvZaCsbbWWjrWy0lY22stFWNtrKRlvZaCsbbWWj
rWy0lY22sh22ld3n98N+Onl2evzN+WUv2nfx9U+vlj98e3b61bz546uz9X/XyXz9n8vE0vo/83+d
pv+6Tt7z5v/87//raHNZ2zJv/vXf//K//svm68tQ6OaytKu06XITeq2z/vTy76cnb85abnfWdcnT
L0O9lyus1voS99+gl/+yy9v6WyPl8ll/c37y0/GLi9On59+c/PTk5Nmzk2dHT1++uDh5cfHWnaOT
5yc/rf+2/ve/r//nu5dnz07Ovnt6/GK9iJ+/u/yfdaxdJ7v60TVu/yEewkXez7txixH3cF6n8W48
pnfjd0srqiHBakiwGhKshgSrIcFqSLAaEqyGBKshwWpIsBoSrIYEqyHBakiwGhKshgSrIcFqSLAa
EqyGBKshwWpIsBoSrIYEqyHBakiwGhKshgSrIcFqSLAaEqyGBKshwWpIsBoSrIYEqyHBakiwGhKs
hgSrIcFqSLAaEqyGBKshwWpIsBoSrIYEqyHBakiwGhKshgSrIcFqSLAaEqyGBKshwWpIsBoSrIYE
qyHBakiwGhKshgSrIcFqSLAaEqyGBKshwWpIsBoSrIYEqyHBakiwGhKshgSrIcFqSLAaEqyGBKsh
wWpIsBoSrIYEqyHBakiwGhKshgSrIcFqSLAaEqyGBKshwWpIsBoSrIYEqyHBakiwGhKshgSrIcFq
SLAaEqyGBKshwWpIsBoSrIYEqyHBakiwGhKshgSrIcFqSLAaEqyGBKshwWpIsBoSrIYEqyHBakiw
GhKshgSrIcFqSLAaEqyGBKshwWpIsBoSrIYEqyHBakiwGhKshgSrIcFqSLAaEqyGBKshwWpIsBoS
rIYEqyHBakiwGhKshgSrIcFqSLAaEqyGBKshwWpIsBoSrIYEqyHBakiwGhKshgSrIcFqSLAaEqyG
BKshwWpIsBoSrIYEqyHBakiwGhKshgSrIcFqSLAaEqyGBKshwWpIsBoSrIYEqyHBakiwGhKshgSr
IcFqSLAaEqyGBKshwWpIsBoSrIYEqyHBakiwGhKshgSrIcFqSLAaEqxFjZLkVCU5VUlOVZJTleRU
JTlVSU5VklOV5FQlOVVJTlWSU5XkVCU5VUlOVZJTleRUJTlVSU5VklOV5FQlOVVJTlWSU5XkVCU5
VUlOVZJTleRUJTlVSU5VklOV5FQlOVVJTlWSU5XkVCU5VUlOVZJTleRUJTlVSU5VklOV5FQlOVVJ
TlWSU5XkVCU5VUlOVZJTleRUJTlVSU5VklOV5FQlOVVJTlWSU5XkVCU5VUlOVZJTleRUJTlVSU5V
klOV5FQlOVVJTlWSU5XkVCU5VUlOVZJTleRUJTlVSU5VklOV5FQlOVVJTlWSU5XkVCU5VUlOVZJT
leRUJTlVSU5VklOV5FQlOVVJTlWSU5XkVCU5VUlOVZJTleRUJTlVSU5VklOV5FQlOVVJTlWSU5Xk
VCU5VUlOVZJTleRUJTlVSU5VklOV5FQlOVVJTlWSU5XkVCU5VUlOVZJTleRUJTlVSU5VklOV5FQl
OVVJTlWSU5XkVCU5VUlOVZJTleRUJTlVSU5VklOV5FQlOVVJTlWSU5XkVCU5VUlOVZJTleRUJTlV
SU5VklOV5FQlOVVJTlWSU5XkVCU5VUlOVZJTleRUJTlVSU5VklOV5FQlOVVJTlWSU5XkVCU5VUlO
VZJTleRUJTlVSU5VklOV5FQlOVVJTlWSU5XkVCU5VUlOVZJTleRUJTlVSU5VklOV5FQlOVVJTlWS
U5XkVCU5VUlOVZJTleRUJTlVSU417/Ldyfcc3WbRYLNosFk02CwabBYNNosGm0WDzaLBZtFgs2iw
WTTYLBpsFg02iwabRYPNosFm0WCzaLBZNNgsGmwWDTaLBptFg82iwWbRYLNosFk02CwabBYNNosG
m0WDzaLBZtFgs2iwWTTYLBpsFg02iwabRYPNosFm0WCzaLBZNNgsGmwWDTaLBptFg82iwWbRYLNo
sFk02CwabBYNNosGm0WDzaLBZtFgs2iwWTTYLBpsFg02iwabRYPNosFm0WCzaLBZNNgsGmwWDTaL
BptFg82iwWbRYLNosFk02CwabBYNNosGm0WDzaLBZtFgs2iwWTTYLBpsFg02iwabRYPNosFm0WCz
aLBZNNgsGmwWDTaLBrtFg92iwW7RYLdosFs02C1s72pUV6O6GtXVqK5GdTWqq1FdjepqVFejuhrV
1aiuRnU1qqtRXY3qalRXo7oa1dWorkZ1NaqrUV2N6mpUV6O6GtXVqK5GdTWqq1FdjepqVFejuhrV
1aiuRnU1qqtRXY3qalRXo7oa1dWorkZ1NaqrUV2N6mpUV6O6GtXVqK5GdTWqq1FdjepqVFejuhrV
1aiuRnU1qqtRXY3qalRXo7oa1dWorkZ1NaqrUV2N6mpUV6O6GtXVqK5GdTWqq1FdjepqVFejuhrV
1aiuRnU1qqtRXY3qalRXo7oa1dWorkZ1d18bd18bd18bd18bd18bd18bI4SClqqgpSpoqQpaqoKW
qqClKmipClqqgpaqoKUqaKkKWqqClqqgpSpoqQpaqoKWqqClKmipClqqgpaqoKUqaKkKWqqClqqg
pSpoqQpaqoKWqqClKmipClqqgpaqoKUqaKkKWqqClqqgpSpoqQpaqoKWqqClKmipClqqgpaqoKUq
aKkKWqqClqqgpSpoqQpaqoKWqqClKmipClqqgpaqoKUqaKkKWqqClqqgpSpoqQpaqoKWqqClKmip
ClqqgpaqoKUqaKkKWqqClqqgpSpoqQpaqoKWqqClKmipClqqgpaqoKUqaKkKWqqClqqgpSpoqQpa
qoKWqqClKmipClqqgpaqoKUqaKkKWqqClqqgpSpoqQpaqoKWqqClKmipClqqgpaqoKUqaKkKWqqC
lqqgpSpoqQpaqoKWqqClKmipClqqgpaqoKUqaKkKWqqClqqgpSpoqQpaqoKWqqClKmipClqqgpaq
oKUqaKkKWqqClqqgpSpoqQpaqoKWqqClKmipClqqgpaqoKUqaKkKWqqClqqgpSpoqQpaqoKWqqCl
KmipClqqgpaqoKUqaKkKWqqClqqgpSpoqQpaqoKWqqClKmipClqqgpaqoKUqaKkKWqqClqqgpSpo
qQpaqoKWqqClKmipClqqgpaqoKUqaKkKWqqClqqgpSpoqQpaqoKWqqClKmipClqqgpaqoKUqaKkK
WqqClqqgpSpoqQpaqoKWqqClKmipzg/ju5Oj62t0fY2ur9H1Nbq+RtfX6PoaXV+j62t0fY2ur9H1
Nbq+RtfX6PoaXV+j62t0fY2ur9H1Nbq+RtfX6PoaXV+j62t0fe2w6+tQvzs52spGW9loKxttZaOt
bLSVjbay0VY22spGW9loKxttZaOtbLSVjbay0VY22spGW9loKxttZaOtbLSVjbay0VY22spGW9kO
28ru87uTv5sia27tmlu75tauubVrbu2aW7vm1q65tWtu7Zpbu+bWrrm1a27tmlu75tauubVrbu2a
W7vm1q65tWtu7Zpbu+bWrrm1a27tmlu75tauubVrbu2aW7vm1q65tWtu7Zpbu+bWrrm1a27tmlu7
5tauubVrbu2aW7vm1q65tWtu7Zpbu+bWrrm1a27tmlu75tauubVrbu2aW7vm1q65tWtu7Zpbu+bW
rrm1a27tmlu75tauubVrbu2aW7vm1q65tWtu7Zpbu+bWrrm1a27tmlu75tauubVrbu2aW7vm1q65
tWtu7Zpbu+bWrrm1a27tmlu75tauubVrbu2aW7vm1q65tWtu7Zpbu+bWrrm1a27tmlu75tauubVr
bu2aW7vm1q65tWtu7Zpbu+bWrrm1a27tmlu75tauubVrbu2aW7vm1q65tWtu7Zpbu+bWrrm1a27t
mlu75tauubVrbu2aW7vm1q65tWtu7Zpbu+bWrrm1a27tmlu75tauubVrbu2aW7vm1q65tWtu7Zpb
u+bWrrm1a27tmlu75tauubVrbu2aW7vm1q65tWtu7Zpbu+bWrrm1a27tmlu75tauubVrbu2aW7vm
1q65tWtu7Zpbu+bWrrm1a27tmlu75tauubVrbu2aW7vm1q65tWtu7Zpbu+bWrrm1a27tmlu75tau
ubVrbu2aW7vm1q65tWtu7Zpbu+bWrrm1a27tmlu75tauubVrbu2aW7vm1q7NapREjiaRo0nkaBI5
mkSOJpGjSeRoEjmaRI4mkaNJ5GgSOZpEjiaRo0nkaBI5mkSOJpGjSeRoEjmaRI4mkaNJ5GgSOZpE
jiaRo0nkaBI5mkSOJpGjSeRoEjmaRI4mkaNJ5GgSOZpEjiaRo0nkaBI5mkSOJpGjSeRoEjmaRI4m
kaNJ5GgSOZpEjiaRo0nkaBI5mkSOJpGjSeRoEjmaRI4mkaNJ5GgSOZpEjiaRo0nkaBI5mkSOJpGj
SeRoEjmaRI4mkaNJ5GgSOZpEjiaRo0nkaBI5mkSOJpGjSeRoEjmaRI4mkaNJ5GgSOZpEjiaRo0nk
aBI5mkSOJpGjSeRoEjmaRI4mkaNJ5GgSOZpEjiaRo0nkaBI5mkSOJpGjSeRoEjmaRI4mkaNJ5GgS
OZpEjiaRo0nkaBI5mkSOJpGjSeRoEjmaRI4mkaNJ5GgSOZpEjiaRo0nkaBI5mkSOJpGjSeRoEjma
RI4mkaNJ5GgSOZpEjiaRo0nkaBI5mkSOJpGjSeRoEjmaRI4mkaNJ5GgSOZpEjiaRo0nkaBI5mkSO
JpGjSeRoEjmaRI4mkaNJ5GgSOZpEjiaRo0nkaBI5mkSOJpGjSeRoEjmaRI4mkaNJ5GgSOZpEjiaR
o0nkaBI5mkSOJpGjSeRoEjmaRI4mkaNJ5GgSOZpEjiaRo0nkaBI5mkSOJpGjSeRoEjmaRI4mkaNJ
5GgSOZpEjiaRo0nkaBI5mkSOJpGjSeRo5S7fD3vPQ0yLP9Lij7T4Iy3+SIs/0uKPtPgjLf5Iiz/S
4o+0+CMt/kiLP9Lij7T4Iy3+SIs/0uKPtPgjLf5Iiz/S4o+0+CMt/kiLP9Lij7T4Iy3+SIs/0uKP
tPgjLf5Iiz/S4o+0+CMt/kiLP9Lij7T4Iy3+SIs/0uKPtPgjLf5Iiz/S4o+0+CMt/kiLP9Lij7T4
Iy3+SIs/0uKPtPgjLf5Iiz/S4o+0+CMt/kiLP9Lij7T4Iy3+SIs/0uKPtPgjLf5Iiz/S4o+0+CMt
/kiLP9Lij7T4Iy3+SIs/0uKPtPgjLf5Iiz/S4o+0+CMt/kiLP9Lij7T4Iy3+SIs/0uKPtPgjLf5I
iz/S4o9q8Ue1+KNa/FEt/qgWf1QLFKsaVdWoqkZVNaqqUVWNqmpUVaOqGlXVqKpGVTWqqlFVjapq
VFWjqhpV1aiqRlU1qqpRVY2qalRVo6oaVdWoqkZVNaqqUVWNqmpUVaOqGlXVqKpGVTWqqlFVjapq
VFWjqhpV1aiqRlU1qqpRVY2qalRVo6oaVdWoqkZVNaqqUVWNqmpUVaOqGlXVqKpGVTWqqlFVjapq
VFWjqhpV1aiqRlU1qqpRVY2qalRVo6oaVdWoqkZVNaqqUVWNqmpUVaOqGlXVqKpGVTWqqlFVjapq
VFWjqhpV1aiqRlU1qqpRVY1qalRTo5oa1dSopkY1NUpgRhWYUQVmVIEZVWBGFZhRBWZUgRlVYEYV
mFEFZlSBGVVgRhWYUQVmVIEZVWBGFZhRBWZUgRlVYEYVmFEFZlSBGVVgRhWYUQVmVIEZVWBGFZhR
BWZUgRlVYEYVmFEFZlSBGVVgRhWYUQVmVIEZVWBGFZhRBWZUgRlVYEYVmFEFZlSBGVVgRhWYUQVm
VIEZVWBGFZhRBWZUgRlVYEYVmFEFZlSBGVVgRhWYUQVmVIEZVWBGFZhRBWZUgRlVYEYVmFEFZlSB
GVVgRhWYUQVmVIEZVWBGFZhRBWZUgRlVYEYVmFEFZlSBGVVgRhWYUQVmVIEZVWBGFZhRBWZUgRlV
YEYVmFEFZlSBGVVgRhWYUQVmVIEZVWBGFZhRBWZUgRlVYEYVmFEFZlSBGVVgRhWYUQVmVIEZVWBG
FZhRBWZUgRlVYEYVmFEFZlSBGVVgRhWYUQVmVIEZVWBGFZhRBWZUgRlVYEYVmFEFZlSBGVVgRhWY
UQVmVIEZVWBGFZhRBWZUgRlVYEYVmFEFZlSBGVVgRhWYUQVmVIEZVWBGFZhRBWZUgRlVYEYVmFEF
ZlSBGVVgRhWYUQVmVIEZVWBGFZhRBWZUgRlVYEYVmFEFZlSBGVVgRhWYUQVmVIEZVWBGFZhRBWZU
gRlVYEYVmFEFZlSBGVVgRhWYUQVmVIEZVWBGFZhRBWZUgRlVYEYVmFEFZlSBGVVgRhWY0QRmNIEZ
TWBGE5jRBGa0zUP7ftjIl4182ciXjXzZyJeNfNnIl4182ciXjXzZyJeNfNnIl4182ciXjXzZyJeN
fNnIl4182ciXjXzZyJeNfNnIl4182dbzZQf//bABRxxwxAFHHHDEAUcccMQBRxxwxAFHHHDEAUcc
cMQBRxxwxAFHHHDEAUcccMQBRxxwxAFHHHDEAUcccMQBRxxwxO3DEQ/x+2G/dpKtPqZOVw1NgzdP
2SzKZlE2i7JZlM2ibBZlsyibRdksymZRNouyWZTNomwWZbMom0XZLMpmUTaLslmUzaJsFmWzKJtF
2SzKZlE2i7JZlM2ibBZlsyibRdksymZRNouyWZTNomwWZbMom0XZLMpmUTaLslmUzaJsFmWzKJtF
2SzKZlE2i7JZlM2ibBZlsyibRdksymZRNouyWZTNomwWZbMom0XZLMpmUTaLslmUzaJsFmWzKJtF
2SzKZlE2i7JZlM2ibBZlsyibRdksymZRNouyWZTNomwWZbMom0XZLMpmKJuhbIayGcpmKJvh1i7U
qFCjQo0KNSrUqFCjQo0KNSrUqFCjQo0KNSrUqFCjQo0KNSrUqFCjQo0KNSrUqFCjQo0KNSrUqFCj
Qo0KNSrUqFCjQo0KNSrUqFCjQo0KNSrUqFCjQo0KNSrUqFCjQo0KNSrUqFCjQo0KNSrUqFCjQo0K
NSrUqFCjQo0KNSrUqFCjQo0KNSrUqFCjQo0KNSrUqFCjQo0KNSrUqFCjQo0KNSrUqFCjQo0KNSrU
qFCjQo0KNSrUqFCjQo0KNSrUqFCjQo0KNSrUqFCjQo0KNSrUqFCjUo1KNSrVqFSjUo1KNUoiR5PI
0SRyNIkcTSJHk8jRJHI0iRxNIkeTyNEkcjSJHE0iR5PI0SRyNIkcTSJHk8jRJHI0iRxNIkeTyNEk
cjSJHE0iR5PI0SRyNIkcTSJHk8jRJHI0iRxNIkeTyNEkcjSJHE0iR5PI0SRyNIkcTSJHk8jRJHI0
iRxNIkeTyNEkcjSJHE0iR5PI0SRyNIkcTSJHk8jRJHI0iRxNIkeTyNEkcjSJHE0iR5PI0SRyNIkc
TSJHk8jRJHI0iRxNIkeTyNEkcjSJHE0iR5PI0SRyNIkcTSJHk8jRJHI0iRxNIkeTyNEkcjSJHE0i
R5PI0SRyNIkcTSJHk8jRJHI0iRxNIkeTyNEkcjSJHE0iR5PI0SRyNIkcTSJHk8jRJHI0iRxNIkeT
yNEkcjSJHE0iR5PI0SRyNIkcTSJHk8jRJHI0iRxNIkeTyNEkcjSJHE0iR5PI0SRyNIkcTSJHk8jR
JHI0iRxNIkeTyNEkcjSJHE0iR5PI0SRyNIkcTSJHk8jRJHI0iRxNIkeTyNEkcjSJHE0iR5PI0SRy
NIkcTSJHk8jRJHI0iRxNIkeTyNEkcjSJHE0iR5PI0SRyNIkcTSJHk8jRJHI0iRxNIkeTyNEkcjSJ
HE0iR5PI0SRyNIkcTSJHk8jRJHI0iRxNIkeTyNEkcjSJHE0iR5PI0SRyNIkcTSJHk8jRJHI0iRxN
IkeTyNEkcjSJHE0iR5PI0SRyNIkcTSJHk8jRJHK0dpfvh71v9JLj0eR4NDkeTY5Hk+PR5Hg0OR5N
jkeT49HkeDQ5Hk2OR5Pj0eR4NDkeTY5Hk+PR5Hg0OR5NjkeT49HkeDQ5Hk2OR5Pj0eR4NDkeTY5H
k+PR5Hg0OR5NjkeT49HkeDQ5Hk2OR5Pj0eR4NDkeTY5Hk+PR5Hg0OR5NjkeT49HkeDQ5Hk2OR5Pj
0eR4NDkeTY5Hk+PR5Hg0OR5NjkeT49HkeDQ5Hk2OR5Pj0eR4NDkeTY5Hk+PR5Hg0OR5NjkeT49Hk
eDQ5Hk2OR5Pj0eR4NDkeTY5Hk+PR5Hg0OR5NjkeT49HkeDQ5Hk2OR5Pj0eR4NDkeTY5Hk+PR5Hg0
OR5NjkeT49HkeDQ5Hk2OR5Pj0eR4NDkeTY5Hk+PR5Hg0OR5NjkeT49HkeDQ5Hk2OR5Pj0eR4NDke
TY5Hk+PR5Hg0OR5NjkeT49HkeDQ5Hk2OR5Pj0eR4NDkeTY5Hk+PR5Hg0OR5NjkeT49HkeDQ5Hk2O
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
rEzNytSsTM3K1KxMzcrUrEzNytSsTM3K1KxMzcrUrEzNytSsTM3K1KxMzcrUrEzNytSsTM3K1KxM
zcrUrEzNytSsTM3K1KxMzcrUrEzNytSsTM3K1KxMzcrUrEzNytSsTM3K1KxMzcrUrEzNytSsTM3K
1KxMzcrUrEzNytSsTM3K1KxMzcrUrEzNytSsTM3K1KxMzcrUrEzNytSsTM3K1KxMzcrUrEwtytSi
TC1upRa3UotbqcWt1KJGLWrUokYtatSiRi1q1KJGLWrUokYtatSiRi1q1KJGLWrUokYtatSiRi1q
1KJGLWrUokYtatSiRi1q1KJGLWrUokYtatSiRi1q1KJGLWrUokYtatSiRi1q1KJGLWrUokYtatSi
Ri1q1KJGLWrUokYtatSiRi1q1KJGLWrUokYtatSiRi1q1KJGLWrUokYtatSiRi1q1KJGLWrUokYt
atSiRi1q1KJGLWrUokYtatSiRi1q1KJGLWrUokYtatSiRi1q1KJGLWrUokYtatSiRi1q1KJGLWrU
okYtatSiRi1q1KJGLWrUokYtalRRo4oaVdSookYVNaqoUQJ4uwDeLoC3C+DtAni7AN4ugLcL4O0C
eLsA3i6Atwvg7QJ4uwDeLoC3C+DtAni7AN4ugLcL4O0CeLsA3i6Atwvg7QJ4uwDeLoC3C+DtAni7
AN4ugLcL4O0CeLsA3i6Atwvg7QJ4uwDeLoC3C+DtAni7AN4ugLcL4O0CeLsA3i6Atwvg7QJ4uwDe
LoC3C+DtAni7AN4ugLcL4O0CeLsA3i6Atwvg7QJ4uwDeLoC3C+DtAni7AN4ugLcL4O0CeLsA3i6A
twvg7QJ4uwDeLoC3C+DtAni7AN4ugLcL4O0CeLsA3i6Atwvg7QJ4uwDeLoC3C+DtAni7AN4ugLcL
4O0CeLsA3i6Atwvg7QJ4uwDeLoC3C+DtAni7AN4ugLcL4O0CeLsA3i6Atwvg7QJ4uwDeLoC3C+Dt
Ani7AN4ugLcL4O0CeLsA3i6Atwvg7QJ4uwDeLoC3C+DtAni7AN4ugLcL4O0CeLsA3i6Atwvg7QJ4
uwDeLoC3C+DtAni7AN4ugLcL4O0CeLsA3i6Atwvg7QJ4uwDeLoC3C+DtAni7AN4ugLcL4O0CeLsA
3i6Atwvg7QJ4uwDeLoC3C+DtAni7AN4ugLcL4O0CeLsA3i6Atwvg7QJ4uwDeLoC3C+DtAni7AN4u
gLcL4O0CeLsA3i6Atwvg7QJ4uwDeLoC3C+DtAni7AN4ugLcL4O0CeLsA3i6Atwvg7QJ4uwDeLoC3
C+DtAni7AN4ugLfnw/jQyiiPH+Xxozx+lMeP8vhRHj/K40d5/CiPH+Xxozx+lMeP8vhRHj/K40d5
/CiPH+Xxozz+8MrjD5VIP+rvR/39qL8f9fej/n7U34/6+1F/P+rvR/39qL8f9fej/n7U34/6+1F/
P+rvR/39qL8f9fej/n7U34/6+1F/P+rvR/39Duvv75NI/9PJs9Pjb356+ffTk+/i659elS1X9ue/
fPo0v3XNl15/c37y0/GLi9On59+c/PTk5Nmzk2dHT1++uDh5cfH2QEcnz09+Wv/t/Jv1bjz7+ej8
4ng93zfHry9erg78fPSP04sfj86fv/zH6sY/L44uzo6f/u18+zdkDzfwAF3aV0/IQxo5w9vh7X5e
2EP7+4OdQMY0Nbwd3j6iSfWGDpz8ff0/3708e3Zy9t3zl8frX/50cnH87Pji+N2/Xv7jm1Pvppd1
Z+7+y7/+j5cvTn7/fp2dnL98ffZ0vf2Xxh+Pz16cnJ9//Z/n21+fviuze3NFnz3Bb/t1dvLq5dnF
tr27y/P7rdu3pffj+s/7eqWOn7+rB+o0A+ewvLzZ0N5C2/sB34a3KnF+eY1vVGL5w7dnp1/Nmz++
Olv/d66X/3P5Ie/1f+b/Ok3/de7rP/6f//1/HW0uWy7nzb/++1/+13/ZfL1prcVl1f+Um8jS55uu
Q2932jpPubR22UK6nn6JA1s0bv+2Htrr/ltrje08zvG+jPdlvC8P+n2546nXbcbZxXevzl7+cHa5
SDvYRf0n/Nzdav5Oi+2dL34e92r+Ew/6gJfxt/Z2PwvXm7r32Bbut7r+m0rlsvm0dpRlnudW55aX
rXFbXn/8xklLqZtVnTdzf1Pp8WCXH9e7pwfzUt9y1XG9h/glvxtby/se3us03o1H9m7c8JxvIvhv
//cX4zdPn68r2v/x8tnJ4SzEf9/NA12HH8IyedvLz99/GHdYKx+Mm7ffL746fn2+g3dnW+/NB7f9
0v713y8u/vDq9NXJv12cnT792/OTf302/ZcD2n2/v5vXeMW3Ob9c5z4d0FA9/IntEGMS97Fxfz+i
73+XflNf9hKHuaZT23rRz8+eHj19fnJ8dvT09cn5YS96PuHrdVc+Dz6icpNhcae46V4qLx7kMu8T
w+9g13o39XVbr+jbfzt+dfqmRuqDEqmDnVR+0+OxqbrXt+03n8vBvnO383ibAahYlhpZcpNTzLW0
g43qzZtcatvMlx9FyGWKctBxPW/r/SxCtxvFu/IE7m21svex/3AG8lZr+h/wOHmML/SVh7RsNvtp
YXx3okNWwnFHdrAqX3cCR28SLA9hQf6xs2MtfgBr8Y8fyYEvw2/g7HYH7mXh4NHrs+cP4SX7yNcv
+h27Y4rmuxcvf2kT2+Fzv+f3/6PRcuCv/y183d7T33pQes8tcQ9EDncebve5HlwV7La9vH//HlGy
5ubXfcNzrec4Ozpd/9PZ98dPT7756fXFybPDWXX8pnc7XmfscvDcS9HAjWMe0ydjHpmXVL056vr/
zzm3Xg396bPWTZ1bm+YyL5efc12+lJ6K3xz9nx33hzef3e469quFt/XxtjHF671f9y70t40DX+9F
PgS9HDPjQSTNxvtwIO/DA143324Ov9a69OLHk6Pjs5NfT/bNm395+vLl2bP7LE35XbceTzzuzflO
fzr+4fJkP56dnDx9+fzl2fnXr178sP8g3pX7fv761eVFf/Pj6cWb4zz+iP/vDr3rLe4+/UTv2alt
r+u35NY2RuX9XMIdYqO7jYbfzadDiUI8gIDrQ+ksOMQA6M182mlM8kuKv24v5vrpyfPZy3+8uOxS
PXr6/PTp3w5uFfkJ9+40343ege08hENawtzUvdsNx/fXcuDvze87egC3fw97qH2t7n//fu8v/rdp
JadN9MxLcMOe4n/TFNGn1i//rPbW4tEFALmt97Kw2m7Q78ozu69Vyxj5Y+R/mSP/1sffT4ne1tx7
ZNHfB0U+2MV29PBryW7t5K538l9iAdmtLntL8rXUaHHJFq619fxcZnqbCpNzlHmJXHor02dp0Q9z
UeBdve+Xd7vrA5/el/g27K2n+h5eoMc9Xh73u363henpix8Ocb38i1sjj/cY83i/PN0DS+XdzK1d
LxCv5c3jWQ9f/3L/7xfPTv558uwvf1pHxv/7erUfHT9ZB+rbftDdzmfXOvV156z/57//t/9rvYf/
8+2RvvnnT88vb+kvB744/enk5ev10H8/OTs7fXZyfvLPV6dnO2W43cGh617z+xv4rgLm6NXZy59O
z0/OR4fcHUbjJ27mb72g1xrCuwxf7NqBnZ76LosNXq/3R7nui7btM2zf5bPXL16cnH2BK6k9v/lb
GEq/9Y7cQQR289Lu3KGbvzUPxdX37+NhPe3f1YhdubXNKMC0/lUrra7G7DXmeT9xoDbNMS+bZSrT
3PrUHlsg9cptva9t3nYjYj62e9w/7X/833PodKevzCMd/5+Xm2cnl6HJVz//4afzf1s2m2v3PP/7
zxc/vnzxH0/PTl9d7D0ofUCv4NWNyJuj3E8I4xOnfmTlCbeMOhx4scK1nuR+d/K3dmBLoYybnv/O
SYoDLzv6hIfjo66PNKNyyKCou3i4h8TDF1qCdKsrv10/xDqbr2Ps/H6zzddy7ZDnx5s2iDyajvkH
XjZ6rYF3nyWjW3RwH9iAWzl2eD36N7mM24UY5k9D/2vdlLnNJafas8x5AJGbT3taLxlDS5vnuiy1
5KF8H/iat/UA1lC3jaBc73Ecxopk/2/Fgxni4634Yt+K20nS+Y/Hr04Obon+3qtDXp0f3EJ7X03l
j3J1/n7MHd7C/Ka+Hd7S96ZXsI9dxTV9uss8dnEZlj79/vReP9JzPd8eQJz4A5fPR7j41k/6kLA1
t/Pt0+PhHj3b1yg98DtwrfO8fnb68v2JLv/tu81mujzDPU6Pv+3UdefFd4r1/fHp86/Xm7ZTis8v
J7nT8/7tS97pgz46+eerk6fveMAH98Q/8u66j/7255sP8SbMe7r2gx4J8+1HwpOzl/84Xyfkb/5x
+uLZ+o/fvHh5dvL9ydnZ7leBv3fqgQ284+Lr927wDtdWdzr1nd6G9b+va4HXTy9e3vs25hrebWvm
+nR47uzlD2eXD+vQin8+9Otus9UvBVkvX528ODk7evH6+e99/HJ0611/Qv6tu3uNZ7aPzeM13q97
3D7e1bs9MgAOWgkPH7H14XR2AGVjN3dnn/WA1/bukZSy3ex6bz6zXE7KNy3o/+7J6ydPnq9HerEe
+fjVxeuzk61va255OednT+979iib8i93eBj3Khp38H2984ehxtcdroecBLjSMvBFpgCu+yT3BFS4
09k/9UR3euZrv8ZPj1/8/fj811dvfvb1W8vXZyfHz16+eP7zPe+Dr+ffNmN4b4y/nvDtvz07Xf/l
/PTli3u+G7/v2+OJez2QvfYe9qq//9SvvRZ+9zq9+Q+75CV/dJ6n5+ePusTmjs/n0C7nelPufQdw
tunlbwzaQ3bv3m+e65o3KfSj56fnH3ep7pwP9hvnvWEy+8nz1ye7+aznHiZek+a/XMw9zmkPYOzu
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
rDSZuBqu/ETHXNQIJloN/EQOUZpuTD8nlfZqpanCtM8qzR2mXVRpIjDtkUq//ZOmCtNUYfrdnpRU
lJKK0qaptGkqzR2mYKI0mZh+hSZN4qVJvDSJl9b4p59QSb92kn7tJIUKpW0BaVtA+nGTNBGYNg6k
mcG0kyBNFaYfN0m/ZZJ+yyTtRki7EdLmg7TXIO01SD9MkgKSUkBSCkhKvyGSwo1SltFq8H44cMOF
kR/zWA3+xGEZLiZsYMhwDvLrHunXPTIdyX6ZI1MRF5CUdiOkhKCUEJRmSlO6T5o6XQ2exSlH3E9K
90npPindJ+2KSHOpaS417VdI2xPSD3GshknDrGHR4GkJyaf8n5T/k/J/0uRq2jeRZltTIFAKBEqB
QGmCNm21SDO2acY2zdjm28+ObP/Tyu/wsk+On/7th7PLY3z+C8B77mX8pHcP6JO3I3040ocjfTjS
hyN9ONKHI3040ocjfTjShyN9ONKHI3040ocjfTjShyN9ONKHI3040ocjfTjShyN9ONKHI3040oc7
TB8exidvBypyoCIHKnKgIgcqcqAiBypyoCIHKnKgIgcqcqAiBypyoCIHKnKgIgcqcqAiBypyoCIH
KnKgIgcqcqAiBypyoCL3iYq8nyzZ+y9FPjl7+Y/zk7Pzb/5x+uLZ+o9vDeuJ33ay/fPi6MXxTyfn
3zz98eXL85Oj797k0442m+nNSXbTiLcFx677ucqttfGd/LTrG7JFL697d277EcpbfvjyEL5deb2v
NN5tcG5nWP7GpyBf/PIfvj9+/vyyl/Vo3uHIvNX3P3d99/Yy8q7XipvVIq9qkVe1RKda5OWqaDVY
pGGRV7UbwIVUVqu+XFmtBj21DMy1V7r2Stde6dorXXula6907ZWuvdK1V7r2Stde6dorXXula690
7ZWuvdK1V7r2Stde6coqXVmlC6l0IZUupNJ1U7puSpdJ6aooXRWlq6J0VZR2mac95GkPeZr/TlvG
05bxtGU8bRlPc+hpDj3NoacN4Wl3d5pUT5u5097ttDM77cxOW6TTFum0RTptkU5bpNMW6TSXn+by
017ltDU5bTxO24rTLuK0izjtIk4bftOe2LQnNu2JTesB0gbXtEAg7VZNO02zOz661d7dAWO2fzWE
htRQNeiHQ6o7pLplgraepq2naetp2nqa1gOsBn+iRlkxkF19sR4grQdI6wHSeoDszqfWA6wGb5Dz
aXe2tIRgNXz8XOqG4bAaiobEwOxQTcxX0+6roWGYPcbsMWZ/wupiNSwaQoOuL17+4lmKf8G7X83D
rwZdDz0N/QhPmx40PUZ6cXnlGHpadax60OotrD656mmb19L9CbJWJ2aYak/sapg0+JPFnyxX/oLL
N5dfzbJXk+rV/rxqf161t67OvkBmyKsJ8Tp7tSbEqwnxakK82tNW7WmrtrCtBv3wFs6+UbOvh8ns
1aBjrJNXg3fMV8zcdTVVXW1hqyaiq4noaiK6moiuJqLr3LyWKw+boHZdHNqLT39BCav53tXAWRYn
x8WHvfg2mLyttrBVW9iqLWzVFrbV4EFDgw9q8UGZvF23c/7E57L4XEzeVvOsq8Gb3D2Lk1Jh4VxN
q66GKz+pGpoGbpCNcqshNXhQtdJWumo2t5q8reZq1+2t1+LkWBwwxQFTHDDFF7mkB01/oooVX2S7
76rdd6vBgzprF2ft0ry45sX5qhdf9dI9aPeg3YM66EzNVjOx6/5/0YAf4dMPZwcTr9VGjWrHWrVj
rdqxVu1YWw166mRgarbawlZtYVsNDKlo3iDfbLvNqrnamk7Sdl1U+9FqOknboLYaPIbvbfrk7Gmr
dm6sBs/ii2zXxWqoGvyJb3b69DM8qI8yq/fUd84UcTVFXG3lqOmjTF+x9I0yibwadL37GEgiV5PI
q4GDmiKuJoCrCeBqZLMayKwGMqtxy2pUshqVrMYcqzHHasyxGkCsBv+qsb5qaK+aNK1G8qo50mrC
s5qsrAbdquDGKoWxGsqq9odUEYLVuFSVGFglBlaJgdWWkioxsEoMrDadVKNf1VBWNZRVZflV0X3V
qFOVO1dtOqkC4KoAuCoArsp7q4ayqoGqKrytCm+rtqVUgWe1XXn6TgY2rlR7TFZD0XDlJ1VD04Cn
hqGqYahqGKrap7IaQoOOOcMYqFoNHoO4VDUutRo8hsPBmFIVeFaNKa0GL65eOYbXUr3JTgZdfemu
2PrvfI/yRinmG2Ycr5Fl3nbe7dfm3mqDTrVBp9qgU22/aRs2Ks2gXjNC14zQrYZZw6KhaAgNOsaw
b8YBV4OuL3q66Omip4ueLnq66Omip4ueLnq66GnR06KnRU+Lnpb/P3v/1lzHda1run+lbrwj9gU8
kZm9HfqFY4YkW1V711q1vMt1vlGAJCRxWhJZJO1p1a/fAwSow0MdcAYoZcRanlKKBNoYI0d+mb23
921WOqx0WOmw0mGlw0rDSsNKw0rDSsNKw0rDSsNKw0rDStNK00rTStNK00rTStNK00rTStNKy0rL
SstKy0rLSstKy0rLSstKy0rbSttK20rbSttK20rbSttK20rbSqeVTiudVjqtdFrptNL3Lp/TSqeV
8tTRQnEtFNcukx8ObB4YHggPpAfKA+0BKzUKXJ1vV+dbp2XrtDwcsNLFShcrXax0sVIzajGjNGce
DlipGaVKs1VptirNVqXZsont9kWr0mz3M1qVZqvSbPnGlm9sVZqtSrPdNWlVmu02SqvSbBnJlpFs
VZotNNmqNFuVZotVtlhlq9JsVZqtSrNVabYqzZbVbHeRWpVmq9JsVZqtSrNVabYqzVal2ao0W5Vm
q9JsVZqtSrNVabYqzVal2aKqrUqz3WZr2dVWpdmqNFuVZrtV127VtSrNVqXZIrOtSrPd7mtVmq1K
s8VuW5Vmy+G2HG6r0mxVmq1K83DASs2oxYxazChp33Zzs/VzHg5sHhgeCA+kB8oD7QErNaPcU233
VNs91XZP9XDASs0oqeOWOj4csFIzajWj3Mptt3IPB6zUjBJlbnd/Dwes1IxScdoqTtsN43bD+HDA
Ss2o1YySsW43nVvouoWuW+j6cMBKzSg3rtuN63bjut24bknuluRuha4t2t2i3S3a3SpfDwes1Ixa
zSgtsS0e3u65Hw5YqRm1GkkS5e0mfLsJ38LfLdrdot0tyd2rF/rVy6ec9uGAlXq1VD3bm9dCt/pb
1rtlvdu9/8MBf4bXD/f+Dwc2D/gz/KrLeh8O+Cf8Rm3x3gFL9wyyGaBFuw8HeNfd2W+x7MMB31NP
B8HtFtzuzVsFSe7DAd9kbxVsOTgcsFJvFWxKOBywUm8VbFs4HLBSbxU2z3UR87b1oVUCt0rgwwEr
9VbB9okWU28twm2DxeHA8EB4ID1QHmgPWKlfQnH5wwEr9VZh+DUd3irY19H2dbR9HW1fR9vX0VL6
rUS57fw4HLBSbxWGtwrDWwW7R1rS/3DAv+IFRfS/bThp+0t6eIUZRqO2gNYWcDjgqzUaFUK3LSlt
B0qrD2hbUlqfQGuIbjtQWltA24HS6gPalpTWJ3A4wM9QH9DqA1p9wOHA8ACVht8o5QBtS8rhgL/F
k07daCsYaGXOrV20tYu2bS2HA+/9Cesw1mxrORzw1/rgHZ4f4emgf7Q1M7eSgtYu2pqZW91o2yvT
2kUPB9oD/Iz0gnJuF70rgO4WUdC7g0Dvh+b84Xbgxet++x9+sbTbQEDv6zO4zffk6evX98hDP4LZ
rpd6TV+fPnt+8u7lvP63fz5/dvris3+++OofX59+9vTL06d//xV+VuU0p+Ej/ybf9nf4F9+Nwwn4
4V/YLv1Fef75q5OvT78v983J6y//+PLbf3/+7E81T2J9dtpHh5vV9fA/dXo012dPDq/w9OnapxWf
9+k9iwHuY9jxXV7wbviJ5NN+dpLx7Gh9GqdHY5x+fvTkyfGToyf9ZB5uGU9OnizzDi9nf/32zZcv
vvnb01fPX765PTHE5S5tl2jUufzw6Z1434n3nXjfifedeN+J951434n3nXjfifedeN+J951434n3
nXjfifedeN+J951434n3nXjfifedeN+J951434n32yfeH0arfxtbenfXknJFfP9y+4F30b90m4W+
LfL51ydfHCo8+ztfvDr7jH65N+VK2+s33OS/yfvEr3766sXr15+9ePX8i+fffPby5NXh2OFl38mG
+3fv0E++s4+ijeC2PsTL9AU8gg/x8nPvdzXGrsbY1Ri7GmNXY+xqjF2NsasxdjXGrsbY1Ri7GmNX
Y+xqjF2NsasxdjXGrsbY1Ri7GmNXY+xqjF2NsasxdjXGrsa4fTXGA86936eaX32n8nIg8cO0DNxC
bbcN07988+3tD12/7pyGf5z98ZeH0s9GrN/hLPg7eP+uQqbfyjtziV94OQy+0/hJb4Ls2T0cSA94
ufU2KY2wNMLSm6CM9/6Ev8UISwMqXQi2EfhwwB/qU5WNwIcDvhbzyBbdw4HwQHmASsubj/J23jbf
wwFeXHmjXd7A2Bnc5emgFaG1IrS9w60VoW0mbpuJ22biVoLQShDa7uJWcdD6Clo9QesaaF0Dbbtx
227c5W2S4oC2u7j1BLQWgBb6b4H9ls9v6fuWrW/Z+sOB1QObB8ID/hZPS9n6tpm4bSZuqffDAQvz
pGtPuvYca8+x9pRqF09F6Q8H/KGuhIrStz3MhwP+Fc8Pe5jbhuS2IbnbpR5R+sMBf4a30e1zl7B9
2+XcdjkfDvjJuW7TLtO0yzTtIsz0xBX6bxn/ls9vu5zbpua2IflwoDzgD/WSMz0/pkvn02uQKP3h
gD/DE0a2/nDAOlyhtg+6ZevbPujDAX+oZ+H0LLRTum2MbtueDwd8g7xszfnen/jxDz2cHqsHJgdY
xzocSA5wfky7/Kb9d9P+u2n/3bT/btp/N+2/m/bfTfvvpv130/67af/dtP9u2n837b+b9t9N+++m
/XfT/rtp/920/27afzftv5v2303776b9d9P+u2n/3bT/btp/N+2/m/bfTfvvpv130/67af/dtP9u
2n837b+b9t9N+++m/XfT/rtp/920/27afzftv5v2303776b9d9P+u2n/3bS7btpdN+2Mm7a5Tdvc
pl1t0ya2aa/YtDVs2gk27QSbNn5N27qmbV3Ttq5pW9e0rWva1jVt65q2dU3buqZtXdO2rmlb17St
a9rWNe3imnZxTbu4pk1b06ataUvWtANr2nA17Z6aNktNe6OmvVHTVqhp59O00Wna6DRtY5r2JE1b
kKYNRtN+omkv0LT1Z9r6M239mXbYTPtnpv0z0+6YaTPMtBlm2uoy7QaZNn9Mmz+mzR/T5o9pr8e0
T2PaljHtwpg2XUw7KKb9EdN2iGmTwbSFYNoxcDhgHZ4fKkGmSpBpk8G0yWCqBJl2HRwOWJjXdfsS
pn0JhwNW6nm6tpV64trKcDhgpW2lbaVtpW2lpocClLlOK51WauDYdDFtupg2XRwOWOl73znvcVc2
oufmt9I+janM5XBg88DwQHggPVAeaA9Y6WKlpulmmm6LlRqv22Kl3tFvBrAdJdOOksOB9/6KL87g
s8Vk2mIy7SiZdpQcDliY96dbvPdDfZNNoM1Ljk0oU5fN4YC/xSuMvR7Txo1pn8a0T2PaYzFtqZg2
TEy7H6a9DdPehmkrw7RB4PDsvnqAFze8/1AqM93LnzpkDgd8td5dDO8u3Kmfamem+/CHA/5QL5/D
y6cyl8MBTin3v2f4NQ2/c+F3zh3y6Yb4DD+G2N77E8MDFuYnF34rw29l+IzsLvvhgKX76bsPP92H
PxywUp+RwxMmPGGU20w396dym6ncZiq3mfYDHA5YqdcgOwYOB6zUi5ItBIcDVuq5ft5k8ACT1w+/
2bfEC6b9DlO9z+GAb4k3beEl1Z6JwwHfEm/awps2uyoOB6zUmzb7Lg4HrNSbNjszDges1KtOeNUJ
b9ps5jgcsFJv2mz3mLZ7HA5YqSGkZWlqWToc4NeqXZpalg4H+BlpTGlZmkqVplKlqVRp2phyOGAd
3saktzFu8k4tSzO9+qldmm7hHg5Yhxe79NqWXsrc9T0c8Ld4XXIb+HDA3+I3223gwwFfvl9Ct4Gn
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
+cfn91bnn87FVffs2rpcnN/n+Xn4qD7+9Ac/4vv9pb+8exY9PHh+HD/67lxcvL9f2fi4v/rBd+rw
Mz/95L1v0V/efUfO738+fvu5/uUv/3j3tTj+8Tfmz99/hS8eOf787s986hPQ2T/MH329zh7EP/nR
1+ssJd/F5fml4C/vbv//Mv71tuz+73/0fbuInffs5hffw/eU3RdfzE/jyx+sM1x8KxckZW+PHP/4
yKChfAmUjcshWpoD7/0V4KIlBiuFS27f78R9+u656acX3pYNC97Zgc0DwwPhgfd+aHmgPTA58OPt
krMDiwesdLXS1UpXK12tdLXS1UpXK92sdLPSzUo3K92sdLPSzUo3K92sdLPSYaXDSoeVDisdVjqs
9L1TaljpsNJhpWGlYaVhpWGlYaVhpWGlYaVhpWGlaaVppWmlaaVppWmlaaVppWmlaaVlpWWlZaVl
pWWlZaVlpWWlZaVlpW2lbaVtpW2lbaVtpW2lbaVtpW2l00qnlU4rnVY6rXRa6bTSaaXTSieV4rdc
vLE9O7B6YPPA8EB4ID1QHmgPWOlipYuVmlHDjBpm1DCjhhk1zKhhRg0zarzNqPudkbWvY+3rWPs6
1r6Ota9j7etY+zrWvo61r2Pt61j7Ota+jrWvY+3rWPs61r6Ota9j7etY11vHeqTjLnZidSdWd2J1
J1Z3YnUnVndidSdWd2J1J1Z3YnUnVndidSdWd2J1J1Z3YnUnVndidSdW74lYfUDd+YUZ88nJ079/
8eqstfDWxZ9KOH/8q36jPuB/vfwVJ/mlf9/zz1+dfH36/e97c/L6yz++/Pbfnz/7Uz7tZycZz47W
p3F6NMbp50dPnhw/OXrST84mL56cPFnmHapB//rtmy9ffPO3p6+ev3xzOY76hq+35kmsz077aKzr
evifOj2a67Mnh4/k9OnapxWf9+mdFH8HuuKLE+SyfvKrCnovXe0/nz87ffFdsef/9ubkyfNvnp3+
61dO4Xt2y97Dl+UmFyN+9dNXL16//uzFq+dfPP/ms8Nnfjh2+ARv2Yx9w+/Kh/Zyf/VcvcS36XEr
oa8rur6eT/r2L2m/fk26TQP49d6SO7ONP1o996P9Kz91Ap7959f/9uXz128OV5PDd/D2Q+jRDOK4
uAe470kJ59/TR/byHsx/fpkqH9vEpV8Nwoex4d/RqXF3X9Nbeh8fatbKTa4fP3mZfUTTkh5iXMjv
ZETP/X/5fvJku5dr1NV/872NZvkwou93skh46bfimrHy2cV//+zt6zv7Xde5K37++m00Hb3+x8u3
X8A3/3rz7xfH/vSvh76ujePx312z9Lu/jNzax3bFBbvPT55/9ccvnn9+p1+Wd7/klm+F3n/x1x8R
tPzp+75wG9ZFlYao0hBVGqJKQ1RpiCoNUaUhqjRElYao0hBVGqJKQzJpSCYNyaQhmTQkk4Zkkpzb
4YCFSSYNyaQhmTQkk4Zk0pBMGpJJQzJpSCYNyaQhmTQkk4Zk0pBMGpJJQzJpSCYNyaQhmTQkk4Zk
0pBMGpJJQzJpSCYNyaQhmTQkk4Zk0pBMGpJJQzJpSCYNyaQhmTQkk4Zk0pBMGpJJQzJpSCYNyaQh
mTQkk4Zk0pBMGpJJQzJpSCYNyaQhmTQkk4Zk0pBMGpJJQzJpSCaFZFJIJoVkUkgmhWRSSCaFZFJI
JoVkUkgmhWRSSCaFZFJIJoVkUkgmhWRSSCaFZFJIJoX0bBhJYSSFkRRGUhhJYSSFkRRGUhhJYSSF
kRRGUhhJIT0bZlSYUWFGhRkVZlSYUWFGhRkVZlSYUWFGhRkVZlSYUWFGhRkVZlSYUWFGhRkVZlSY
UWFGhRkVZlSYUWFGhRkVZlSYUWFGhRkVZlSYUWFGhRkVZlSYUWFGhRkVZlSYUWFGhRkVZlSYUWFG
hRkVZlSYUWFGhRkVZlSYUWFGhRkVZlSYUWFGhRkVZlSYUWFGhRkVZlSaUWlGpRmVZlSaUWlGpRmV
ZlSaUWlGpRmVZlSaUWlGpRmVZlSaUWlGpRmVZlSaUWlGpRmVZlSaUWlGpRmVZlSaUWlGpRmVZlSa
UWlGpRmVZlSaUWlGpRmVZlSaUWlGpRmVZlSaUWlGpRmVZlSaUWlGpRmVZlSaUWlGpRmVZlSaUWlG
pRmVZlSaUWlGpRmVZlSaUWkkpZGURlIaSWkkpZGURlIaSWkkpZGURlIaSWkkpZGURlIaSWkkpZGU
RlIaSWkkpZGURlIaSWkkpZGURpJGrsMBKzWS0khKIymNpDSSykgqI6mMpDKSykgqI6mMpDKSykgq
I6mMpDKSykgqI6mMpDKSykgqI6mMpDKSykgqI6mMpDKSykgqI6mMpDKSykgqE6hMoDKBygQqE6hM
oDKBygSq7b3CfAtNoDKBygQqE6hMoDKBygQqE6hMoDKBygQqE6hMoDKBygQqE6hMoDKBygQqE6hM
oDKBygQqE6hMoPIpqYykMpLKSCojqYykMpLKSCojqYykMpLKSCojqYykMpLKSCojqYykMpLKSCoj
qYykMpLKSCojqYykMpLKSCojqYykMpLKSCojqYykMpLaSGojqY2kNpLaSGojqY2kNpLaSGojqY2k
NpLaSGojqY2kNpLaSGojqY2kNpLaSGojqY2kfhtJ19zFOv7T9z/G12eQtUHWBlkbZO2zVZtsbbKp
M9zaZGuTrU22NtnaZGuTrU22NtnaZGuTrU22NtnaZHtPyNgmW5tsbbK1ydYmW5tsbbK1ydYmW5ts
bbK1ydYGWRtkbZC1QdYGWRtkbZC1Qdb5XmG+hQZZG2RtkLVB1gZZG2RtkLVB1gZZG2RtkLW51eZW
m1ttbrW51eZWm1ttbrW51eZWm1ttbrW51eZWm1ttTLUxNY2paUxNY2oaU9OYmsbUNKamMTWNqWlM
TWNqGlPTmJrG1DSmpjE1jalpTE1jahpT05iaxtQ0pqZPTtPAmQbONHCmgTMNnGngTANnGjjTwJkG
zjRwpoEzDZxp4EwDZxo408CZBs40cKaBMw2caeBMA2caONPAmQbONHCmgTMNnGngTANnGjjTwJkG
zjRwpo9S0wSaJtA0gaYJNE2gaQJNE2iaQNMEmibQNIGmCTRNoGkCTRNomkDTBJom0DSBpgk0TaDp
o9Q0kqaRNI2kaSRNI2kaSdNImkbSNJKmkTSNpGkkTSNpGknTSJo+Sk0zapJR45iMOhxYPbB5YHgg
PJAeKA+0ByxssTAi6XDAShcrXax0sdLFShcrXax0tbDVOlbrWK1jtY7VOlbrWN+rw3dss7DNd2yz
0s1KNyvdrHSz0s1KNyvdrHRY6bDSYaXDSoeVDisdVjqsdFjpsNKw0rDSsNKwjrCOsI6wjrCOtI60
jrSO9B1L37G00rTStNK00rTSstKy0rLSstKy0rLSstKy0rLSslLnJBy3lbaVtpW2lbaVOp/huK20
LWxa2LSwaWHTOqZ1TOuY1jF9xwyLxbBYeKA5HFg9sHlgeCA84EQL02MxPRbTYzE9FtNjMT0W02Mx
PRbTYzE9FtNjMT2WxUqNk2W1UvNlMV8W82UxXxbzZTFfFuNkMT0W02MxPRbTYzE9lu29aSX13vgS
D1iY6bGYHovpsZgei2GxGBaL2bCYDYvZsJgNi9mwhHWE75jpsZgei+mxmB6L6bGYHovpsZgei+mx
mB6L6bGYHovpsZgei+mxmB6L6bGYHovpsZgei+mxmB6L6bGYHovpsZgei+mxmB6L6bGYHovpsbw3
3cf0WNpKjZPFOFmMk8U4WRz+tZgvi/mymC+L+bKYL4v5spovq/mymi+r+bKaL6v5spovq/mymi+r
+bKaL6v5spovq/mymi+r+bKaL6v5spovq/mymi+r+bKaL6v5spovq/mymi+r+bL6/LIaOKvPL6sJ
tJpAqwm0mkCrCbSaQOvbBHqM+o7rM5hf3oVw6vb1GV9ewzW0U3E7FbdTcTsVt1NxOxW3U3E7FbdT
cTsVt1NxOxW3U3E7FbdTcTsVt1NxOxW3U3E7FbdTcTsVt1NxOxW3U3E7FfcAVNzDjKH61V2ynbrb
qbudutupu52626m7nbrbqbudutupu52626m7nbrbqbudutupu52626m7nbrbqbudutupu52626m7
nbrbqbs7pO4eZpfsBhPe99npv68Br1/efAj0/Q1Bv1Sx3xOcT169+M/Xp69e/9t/Pv/m2eEfzw8c
vnXnv/lfb46+Ofn68FqefvnixevTo8/ebiYfHR+vv4KWPvgw1ku9D49tDvldfMKO+/z+5x2dfzZH
b16cXz7PKnn14qvX//bs+auzT/3oqzevLvsx38LJdAkA+BaB5Wu/GXc10/sWouXneehD1HoP4LPd
6rPd6rPd6rPd6rPd6srg6sPe6sPe6srg6tPf6tPf6tPf6tPf6tPf6tPf6tPf6tPf6tPf6tPf6tPf
6tPf6tPf6tPf6tPf6tPf6tPf6tPf6tPf6tPf6tPf6tPf6tPf6tPf6tPf6tPf6tPf6tPf6tPf6tPf
6tPf6tPf6tPf6tPf6tPf6tPf6tPf6tPf6tPf6tPf6tPf6tPf6tPf6tPf6tPf6tPf6tPf6tPf6tPf
6tPf6tPf6tPf5tPf5tPf5tPf5tPf5tPf5tPf5tPf5tPf5tPf5tPf5tPf5tPf5tPf5tPf5tPf5tPf
5tPf5tPf5tPf5tPf5tPf5tPf5tPf5tPf5tPf5tPf5tPf5tPf5sPe5sPe5sPe5sPe5sPe5sPe5sPe
5sPe5nLjZiRtRtJmJG1G0mYkbUbSZiRtRtJmJG1G0mYkbUbSZiRtRtJmJG1G0mYkbUbSZiRtRtJm
JG1G0mYkbUbSZiRtRtJmJG1G0mYkbUbSZiRtRtJmJG1G0mYkbUbSZiRtRtJmJG1G0mYkbUbSZiRt
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
wO8IzTcnr7/848tv//35sz/l0352kvHsaH0ap0djnH5+9OTJ8ZOjJ/3kcK2dJydPlvn746LvHbG9
GYR6Zaj2qmdJzZNYn5320Zn84fA/dXo012dPDu/46dO1Tys+79O7pczv8A26/IDeHUjdgdQdSN2B
1B1I3YHUHUjdgdQdSN2B1B1I3YHUHUjdgdQdSN2B1B1I3YHUHUjdgdQdSN2B1B1I3YHUHUjdgdTb
B1IfRj3+EKLtv3775ssX3/zt6avnL9/c5V+9LT3ytfW89yjpvuMaf7mX4dHvgf/z+bPTF99tgb/9
t88u/vtnz78+vIij03+9PH365vTZ2S+9M4D68m7/nzNF30UfyE16M/jVT1+9eP36sxevnn/x/JvP
Xp68Ohw7O0PutDHjHnogHsE7dKWXe7XT/RIS8Q/DoH/5YfO7r2D3Fey+gt1XsPsKdl/B7ivYfQW7
r2D3Fey+gt1XsPsKdl/B7ivYfQW7r2D3Fey+gt1XsPsKdl/B7ivYfQW7r2D3Fdy+r+ABh82/3QV8
/W9PTp7+/YtXZ5uvf3z5zRf3Jw7/Dr2O4/AjCj+i8CMKP6LwIwo/ovAjCj+i8CMKT6a00rTStNK0
0rTStNK00rTStNK00rKwsrCysLKwsrCysLKwsrCysPYtbCttK20rbSttK20rbSttK20rnVY6rXRa
6bTSaaXTSqeVTiudVmr0LkbvYvQuRu9i9C5G72L0LkbvYvQuRu9i9C5G72L0LkbvYvQuRu9i9C5G
72L0LkbvslipWbyYxYtZvJjFi1m8mMWLWbyYxYtZvJjFi1m8mMWLWbyYxYtZvJjFi1m8mMWLWbyY
xYtZvJjFi1m8mMWLWbyYxYtZvBi9y7AwE2gxgRYTaDGBFhNoMYEWE2gxgRYTaDGBFhNoMYEWE2gx
gRYTaDGBFhNoMYEWE2gxgZayUiNpMZIWI2kxkhYjaTGSFiNpMZIWI2kxkhYjaTGSFiNpMZIWI2kx
khYjaTGSFiNpMZIWI2kxkhYjaTGSFiNpMZIWI2kxkhYjaTWSViNpNZJWI2k1klYjaTWSViNpNZJW
I2k1klYjaTWSViNpNZJWI2k1klYjaTWSViNpNZJWI2k1klYjaTWSViNpNZJWI2k1klYjaTWSViNp
NYFWE2g1gVYTaDWBdDiFDqfQ4RQ6nEKHU+hwCh1OocMpdDiFDqfQ4RQ6nEKHU+hwCh1OocMpdDiF
DqfQ4RQ6nEKHU+hwCh1OocMpdDiFDqfQ4RQqm0JlU6hsCpVNobIpVDaFyqZQ2RQqm0JlU6hsCpVN
obIpVDaFyqZQ2RQqm0JlU6hsCpVNobIpVDaFyqZQ2RQqm0JlU6hsCpVNobIpVDaFyqZQ2RQamkJD
U2hoCg1NoaEpNDSFhqbQ0BQamkJDU2hoCg1NoaEpNDSFhqbQ0BQamkJDU2hoCg1NoaEpNDSFhqbQ
0BQamkJDU2hoCg1NoaHpcMBKDRyVTaGyKVQ2hcqmUNkUKptCZVOobAqVTaGyKVQ2hcqmUNkUKptC
ZVOobAqVTaGhKTQ0hYam0NAUGppCQ1NoaAoNTaGhKTQ0hYam0NAUGppCQ1NoaAoNTaGhKTQ0hYam
0NAUGppCQ1NoaAoNTaGhKRQyhUKmUMgUCplCIVMoZAqFTIcDFmbgaGgKDU2hoSk0NIWGptDQFBqa
YjNwVDaFyqZQ2RQqm0JlU6hsCpVNobIpVDaFyqZQ2RQqm0JlU6hsCpVNobIpVDaFyqZQ2RQqm0Jl
U6hsCpVNobIpVDaFyqZQ2RQqm0JlU6hsCpVNobIpVDaFyqZQ2RQqm0JlU6hsCpVNobIpVDaFyqZQ
2RQqm0JlU6hsCpVNobIpVDaFyqZQ2RQqm0JlU6hsCpVNobIpVDaFyqZQ2RQqm0JlU6hsCpVNobIp
VDbFubLpbsDEn9xj+0BIuX2Dbt+g2zfo9g26fYNu36DbN+j2Dbp9g27foNs36PYNun2Dbt+g2zfo
9g26fYNu36DbN+j2Dbp9g27foNs36PYNun2Dbt+gu8MNugck5a7ksP1e5Xvu7z38ntdHL16efnN6
Ltv995c/IdD90214co+O/3h4tDnkdfTxUodnh7WP3j7JRq6zD7F9dIf21d/C23MJC+old0zVtYS6
llDXEupaDgcWD6we2DwwPBAeSA9Yqfcm+ltCf0vobwn9LaG/JfS3hP6W0N8S+ltCf0vobwn9LaG/
JfS3hP6W0N8S+ltCf0vobwn9LaG/JfS3hP6W0N8S+ltCf0vobwn9LaG/JfS3hP6W0N8S+ltCf0vo
bwn9LaG/JfS3hP6W0N8S+ltCf0vobwn9LaG/JfS3hP6W0N8S+ltCf0vobwn9LaG/JfS3hP6W0N9y
OGCl3orobwn9LaG/JfS3hP6W0N8S+ltCf0vobwn9LaG/JfS3xPRWRKFLKHQJhS6h0CUUuoRCl9Df
EvpbQn9L6G8J/S2hvyX0t4T+ltDfEvpbQn9L6G8J/S2hvyX0t4T+ltDfEvpbQn9L6G8J/S2hvyX0
t4T+ltDfEvpbQn9L6G8J/S2hvyX0t4T+ltDfEvpbQn9L6G8J/S2hvyX0t4T+ltDfEvpbUn9L6m9J
/S2pvyX1t6T+ltTfkvpbUn9L6m9J/S2pvyX1t6T+ltTfkvpbUn9L6m9J/S2HA1a6WulqpauVrla6
WulqpauVrla6WulqpZuVbla6WelmpZuVbla6WelmpZuVblY6LGxYx7COYR3DOoZ1DOsY1hG+Y2Fh
4TsWVhpWGlYaVhpWGlYaVppWmlaaVppWmlaaVppWmlaaVppWWlZaVlpWWlZaVlpWWlZaVlpWWlba
VtpW2lbaVtpW2lbaVtoW1hY2LWxa2LSwaWHTwqaFTQubvoXTSg0cmyLTpsi0KTJtikybItOmyLQp
Mm2KTJsi06bItCkybYpMmyLTpsi0KTJtikybItOmyLQpMm2KTJsi06bItCkybYpMmyLTpsi0KTJt
ikybItOmyLQpMm2KTHsg0x7ItAcy7YFMeyDTHsi0BzLtgUx7INMeyLQHMu2BTHsg0x7IwwErNYFs
ikybItOmyLQpMm2KTJsi06bItCkybYpMmyLTpsi0KTJtikybItOmyLQpMm2KTJsi06bItCkybYpM
myLTpsi0KTJtikybItOmyLQpMm2KTJsi06bItCkybYpMmyLTpsi0KTJtikybItOmyLQpMm2KTJsi
06bItCkybYpMmyLTpsi0KTJtikybItOmyLQpMm2KTJsi06bItCkybYpMmyLTpsi0KTJtikybItOm
yLQpMm2KTJsi06bItCky7YFMeyDTHsi0BzLtgUx7INMeyLQHMu2BTHsg0x7ItAcy7YFMeyAPB6zU
SLIpMm2KTJsi06bItCkybYpMmyLTpsi0KTJtikybItOmyLQpMm2KTJsi06bItCkybYpMmyLTpsi0
KTJtikybItOmyLQpMm2KTJsi06bItCkybYpMmyIPB6zUSLJLMu2STLsk0y7JtEsy7ZLM8y7J+3N5
fjdUL4bdQsMF0uEC6XCBdLhAOlwgHS6QDhdIhwukwwXS4QLpcIF0uEA6XCAdLpAOF0iHC6TDBdLh
AulwgXS4QDpcIB0ukA4XSIcLpMMF0uEC6XCBdLhAOlwgHS6QDhdIhwukwwXS4QLpcIF0uEA6XCAd
LpAOF0iHC6TDBdLhFl24RRdu0YVbdOEWXbhFF27RhVt04RZduEUXbtGFW3ThFl24RRdu0YVbdOEW
XbhFF27RhVt04RZduEUXbtGFW3ThFl24RRdu0YVbdOEWXbhFF27RhVt04RZduEUXbtGFW3ThFl3Y
PhTu2YV7duGeXbhnF+7ZhXt24Z5duGcX7tmFe3bhnl24Zxfu2YV7duGeXbhnF+7ZhXt24Z5duGcX
ZlSYUWFGhRkVZlSYUWFGhRkVZlSYUWFGhRkVZlSYUWFGhRkVZlSYUWFGhRkVZlSYUWFGhZEURlIY
SWEkhZEURlIYSWEkhZEURlIYSWEkhZEURlKYQGEChQkUJlCaQGkCpQmUJlCaQGkCpQmUJlCaQGkC
pQmUJlCaQGkCpQmUJlCaQGkCpQmUJlCaQGkCpQmUJlCaQGkCpQmUJlCaQGkCpQmUJlCaQGkCpQmU
JlCaQGkCpQmUJlCaQGkCpQmUJpDTucPp3OF07nA6dzidO5zOHU7nDqdzh9O5w+nc4XTucDp3OJ07
nM4dTucOp3OH07nD6dzhdO5wOnc4nTuczh0O4w6HcYfDuMNh3OEw7nAYdziMOxzGHc7eDmdvh7O3
w9nb4eztcPZ2OHs7nL0dzt4OZ2+Hs7fD2dvh7O1w9nY4e/twwEoNHIdxh7O3w9nb4eztcPZ2OHs7
nL0dzt4OZ2+Hs7fD2dvh7O1w9nY4ezucvR3O3g5nb4ejtsNR2+Go7XDUdjhqOxy1HY7aDkdth6O2
w1Hb4ajtcNR2OGo7HLUdjtoOR22Ho7bDUdvhqO1w1HY4ajsctR2O2g5HbYejtsNR2+Go7XDUdjhq
Oxy1HY7aDkdth6O2w1Hb4ajtcNR2OGo7nKwdTtYOJ2uHk7XDydrhZO1wsnY4WTucrB1O1g4na4eT
tcPJ2uFk7XCydjhZO5ysHU7WDidrh5O1w8na4WTtcLJ2OFk7nKwdTtYOJ2uHk7XDydrhZO1wsnY4
WTucrB1O1g4na4eTtcPJ2uFk7XCydjhZO5ysHU7WDidrh5O1w8na4WTtcJB2OEg7HKQdDtIOB2mH
g7TDQdrhIO1wkHY4SDscpB0O0g4HaYeDtMNB2uEg7XCQdjhIO5ybHc7NDudmh3Ozw7nZ4dzscG52
ODc7nJsdzs0O52aHc7PDudnh3OxwbnY4Nzucmx3OzQ7nZodzs8O52eHc7HBudjg3O5ybHc7NDudm
h3Ozw7nZ4dzscG52ODf7cMDCDBznZodzs8O52eHc7HBudjg3O5ybHc7NDudmh3Ozw7nZ4dzscG52
ODc7nJsd53OzL7eL9defAM3++B+vb3XX7LobbbemAv2Pf1zs1N0N+vfLb+Uvik5/C8Dg5QSrt/9h
XhZU5Def/efX//b9jz06//iO3rw4B2PPCnr14qvX//bs+auzN+boqzevjp5//urwj+dv9dmfP5T3
p89fvHhy8ur/dfGvfzz88T8d/uidnmI7bLnDljtsucOWO2y5w5Y7bLnDljtsucOWO2y5w5Y7bLnD
ljtsucOWO2y5w5Y7bLnDljtsucOWO2y5w5Y7bLnDlvcJWz6MnvZXd8l2MnMnM3cycyczdzJzJzN3
MnMnM3cycyczdzJzJzN3MnMnM3cycyczdzJzJzN3MnMnM3cycyczdzJzJzN3MnMnM++QzHzgXbL7
5eF+EX+8WRWXHFz5PTt5dvDLk1eHN/T1LzKuP9xMvGAS3/6HPz59/fpemdWX33xxnRd3zohe7yU+
PPv7aP/Kd9+gnzujLnmu3wL7eqX9cE/hx1bmL5/Dj63aW/+GfwhnzaP5GC79Efzz+bPTF9/9yrf/
9tnFf//sDHo/+1V3OAn4Fqq74iDeu7yKf7jnxhXuK16fPPnqUNxFJa+Pjpc7dEbcepk3OVt+8bbm
tk+XxxNAlzMr5Gpz9Wpz9Wpz9Wpz9Wpz9Wpz9Wpz9Wpz9Wpz9Wpz9Wpz9Wpz9Wpz9Wpz9Wpz9Wpz
9Wpz9Wpz9Wpz9Wpz9Wpz9Wpz9Wpz9Wpz9Wpz9Wpz9WZz9WZz9WZz9WZz9WZz9WZz9WZz9WZz9WZz
9WZz9WZz9WZz9WZz9WZz9WZz9WZz9WZz9Sbvs9ltvdltvdltvdltvdltvdltvdltvdltvdltvdlt
vdltvdltvdltvdltvdltvdltvdltvdltvdltvdltvdltvdltvdltvdltvdltvdltvdltvdltvdlt
vdltvdltvdltvdltvdltvdltvdltvdltvdltvdltvdltvdltvdltvdltvdltvdltvdltvdltvdlt
vdltvdltvdltvdltvdltvdltvdltvQkAbWbUZkZtZtRmRm1m1GZGbWbUZkZtZtRmRm1m1GZGbWbU
ZkZtRtJmJG1G0mYkbUbSZiRtRtJmJG1G0mYkbUbSMJKGkTSMpGEkDSNpGEnDSBpG0jCShpE0jKRh
JA0jaRhJw0gaRtIwkoaRNIykYSQNI2kYScNIGkbSMJKGkTSMpGEkDSNpGEnDSBpG0jCShpE0jKRh
JA0jaRhJw0gaRtIwkoaRNIykYSQNI2kYScNIGkbSMJKGkTSMpGEkDSNpGEnDSBpG0jCSJElSkiQl
SVKSJCVJUpIkJUlSkiQlSVKSJCVJUpIkJUlSkiQlSVKSJCVJUpIkJUlSkiQlSVKSJCVJUpIkJUlS
kiQlSVKSJCVJUpIkJUlSkiQlSVKSJCVJUpIkJUlSkiQlSVKSJCVJUpIkJUlSkiQlSVKSJCVJUpIk
JUlSkiQlSVKSJCVJUpIkJUlSkiQlSVKSJCVJUpIkJUlSkiQlSVKSJCVJUpIkJUlSkiQlSVKSJCVJ
UpIkJUlSkiQlSVKSJCVJUpIkJUlSkiQlSVKSJCVJUpIkJUlSkiQlSVKSJCVJUpIkJUlSkiQlSVKS
JCVJUpIkJUlSkiQlSVKSJCVJUpIkJUlSkiQlSVKSJCVJUpIkJUlSkiQlSVKSJCVJUpIkJUlSkiQl
SVKSJCVJUpIkJUlSkiQlSTLMKNGSFC1J0ZIULUnRkhQtSdGSFC1J0ZIULUnRkhQtSdGSFC05HLBS
M0rWJGVNUtYkRUtStCRFS1K0JEVLUrQkRUtStCRFS1K0JEVLUrQkRUtStCRFS1K0JEVLUrQkRUtS
tCRFS1K0JEVLUrQkRUtStCRFS1K0JEVLUrQkRUtStCRFS1K0JEVLUrQkRUtStCRFS1K0JEVLUrQk
RUtSkiQlSVKSJCVJUpIkJUlSkiQlSVKSJCVJUpIkJUlSkiQlSVKSJCVJUpIkJUlSkiQlSVKS5HDA
Sk0g0ZIULUnRkhQtSdGSFC1J0ZLDASuty9v8f958kBIqKaGSEiopoZISKimhkhIqKaGSEiopoZIS
KimhkhIqKaGSEiopoZISKocDVmpuiaykyEqKrKTISoqspMhKiqykyEqKrKTISoqspMhKiqykyEqK
rBwOWKlBJsOSMiwpw5IyLCnDkjIsKcOSMiwpw5IyLCnDkjIsKcOSMiwpw5IyLCnDkjIsKcOSMiwp
w5IyLCnDkjIsKcOSMiwpw5IyLCnDkjIsKcOSMiwpw5IyLCnDkjIshwNWarIJtaRQSwq1pFBLCrWk
UEsKtaRQSwq1pFBLCrWkUEsKtaRQSwq1pFBLCrWkUEsKtaRQSwq1pFBLCrWkUEsKtaRQSwq1pFBL
CrWkUEsKtaRQSwq1pFBLCrWkUEsKtaRQSwq1pFBLCrWkUEsKtaRQSwq1HA5YqRkl5ZJSLinlklIu
KeWSUi4p5ZJSLinlklIuKeWSUi4p5ZJSLinlklIuKeVyOGClZpTYS4q9pNhLir2k2EuKvaTYS4q9
pNhLir2k2EuKvaTYS4q9pNhLir2k2EuKvaTYS4q9pNhLir2k2EuKvaTYS4q9pNhLir2k2EuKvaTY
y+GAlZpRcjApB5NyMCkHk3IwKQeTcjApB5NyMCkHk3IwKQeTcjApB5NyMCkHk21GOb0onV6UTi9K
pxel04vS6UXp9KJ0elE6vSidXpROL0qnF6XTi9LpRen0onR6UTq9KJ1elE4vSqcXpdOL0ulF6fSi
dHpROr0onV6UTi9Kpxel04vS6UXp9KJ0elE6vSidXpROL0qnF6XTi9LpRen0onR6UTq9KJ1elE4v
SqcXpdOL0ulF6fSidHpROr0onV6UTi9Kpxel04vS6UXp9KJ0elE6vSidXpROL0qnF6XTi9LpRen0
onR6UTq9KJ1elE4vSqcXpdOLDges1IxynFE6zigdZ5SOM0rHGaXjjNJxRuk4o3ScUTrOKB1nlI4z
SscZpeOM0nFG6TijdJxROs4oHWd0OGClZpTzjdL5Rul8o3S+UTrfKJ1vlM43SucbpfON0vlG6Xyj
dL5ROt8onW+UzjdK5xul843S+UbpfKN0vlE63yidb5TON0rnG6XzjdL5Rul8o3S+UTrfKJ1vlM43
SucbpfON0vlG6XyjdL5ROt8onW+UzjdK5xul843K+UblfKNyvlE536icb1TONyrnG5Xzjcr5RuV8
o3K+UTnfqJxvVM43KucblfONyvlG5Xyjcr5ROd+onG9Uzjcq5xuV843K+UblfKNyvlE536icb1TO
NyrnG5Xzjcr5RuV8o3K+UTnfqJxvVM43KucblfON6nhY6bDSYaXDSoeVDisdVjqsdFjpsNKw0rDS
sNKw0rDSsNKw0rDSsNKw0rTStNK00rTStNK00rTStNK00rTSstKy0rLSstKy0rLSX9nFusex0lf3
Adzqb7oEnH9boPnNqcJf5OduHaG/KvN9x6/ve1DzuiO0t18hSN/+hudfn3xx+LtPTp7+/YtXZ2/p
L2sf7tl18JPVPUom/2Yf0iX42ctP496Z0Z0Z3ZnRnRndmdGdGd2Z0Z0Z3ZnRnRndmdGdGd2Z0Z0Z
3ZnRnRndmdGdGd2Z0Z0Z3ZnRnRndmdGdGd2Z0Z0ZvX1m9LFP496Z1J1J3ZnUnUndmdSdSd2Z1J1J
3ZnUnUndmdSdSd2Z1J1J3ZnUnUndmdSdSd2Z1J1J3ZnUnUndmdSdSd2Z1J1JvX0m9WF2yW4ymfo2
Zj7/9dXp58//dfrsv5y96L+9efHq5IvTD3P2820gpTdDB28w5fgxFPbLZ8RDlXfpUbrno+i/50nf
nLz+8o8vv/3358/+lE/72UnGs6P1aZwejXH6+dGTJ8dPjp70k8N94Tw5ebLMu62g5kmsz077aKzr
evifOj2a67MnR09PTp+ufVrxeZ9e9tvw12/ffPnim789ffX85ZsrfpGu9Ffv+zJxpcHJN/y0bwIu
86ufvnrx+vVnL149/+L5N5+9PHl1OHb25tzuIPEbnlqP6eV+4JeZS2HrXz//5h+v729q9G0Uetm5
0ddVL5z920dP3zx/8c1nz148/cdZTZ+dPHv26iz8LiFHuI1h6ken/3p5+vTN6bNbn/n+0GPif/TK
rmIwuKtP84pTyH++N6ykdkpqp6R2SmqnpHZKaqekdkpqp6R2SmqnpHZKaqekdkpqp6R2SmqnpHZK
aqekdkpqp6R2SmqnpHZKaqekdkpqp6R2SmqnpHZKaqekdkpqp6R2SmqnpHZKaqekdkpqp6R2Smqn
pHZKaqekdkpqp6R2SmqnpHZKaqekdkpqp6R2SmqnpHZKaqekdkpqp6R2SmqnpHZKaqekdkpqp6R2
SmqnpHZKaqekdkpqp6R2SmqnpHZKaqekdkpqp4R0SkinhHRKSKeEdEpIp4R0SkinhHRKSKeEdEpI
p4R0SkinhHRKSKdkckomp2RySianZHJKJqdkckomp2RySianZHJKJqdkckomp2RySianZHJKJqdk
ckomp2RySianZHJKJqdkckomp2RySianZHIqTSAhnRLSKSGdEtIpmZySySmZnJLJKZmckskpmZyS
ySmZnJLJKZmckskpmZySySmZnJLJKZmckskpmZySySmZnJLJKZmckskpmZySySmZnJLJKZmckskp
mZySySmZnJLJKZmcEsEpEZzDAQszX2RySianZHJKJqdkckomp2RySianZHJKJqdkckomp2RySian
ZHJKJqdkckomp2RySianZHJKJqdkckomp2RySianZHJKJqdkckomp9IEkn4p6ZeSfinpl5J+KemX
kn4p6ZeSfinpl5J+KemXkn4p6ZeSfinpl5J+KemXkn4p6ZeSfinpl5J+KemXkn4p6ZeSfinpl5J+
KemXkn4p6ZeSfinpl5J+KemXkn4p6ZeSfinpl5J+KemXkn4p6ZeSfinpl5J+KemXkn4p6ZeSfinp
l5J+KemXkn4p6ZeSfinpl5J+KemXkn4p6ZeSfinpl5J+KemXkn4p6ZeSfilhlxJ2KdmWkm0p2ZaS
bSnZlpJtKdmWkm0p2ZaSbSnZlpJtKdmWkm0p2ZaSbSnZlpJtKdmWkm0p2ZaSbSnZlpJtKdmWkm0p
2ZaSbSnZlpJtKdmWkm0p2ZaSbSnZlpJtKdmWkm0p2ZaSbSnZlpJtKdmWkm0p2ZaSbSnZlpJtKdmW
km0p2ZaSbSnZlpJtKdmWkm0p2ZaSbSnZlpJtKdmWkm0p2ZaSbSnZlpJtKdmWkm0p2ZaSbSnZlpJt
KdmWkm0p2ZaSbSnZlpJtKdmWkm0p2ZaSbSnZlpJtKdmWkm0p2ZaSbSnZlpJtKdmWkm0p2ZaSbSnZ
lpJtKdmWkm0p2ZaSbSnZlpJtKdmWkm0p2ZaSbSnZlpJtKdmWkm0p2ZaSbSnZlpJtKdmWkm0p2ZaS
bSnZlpJtKdmWkm0p2ZaSbSnZlpJtKdmWkm0p2ZaSbSnZlpJtKdmWkm2pc7blmrtY33nADzf5trpZ
7LHFHlvsscUeW+yxgXpsoB4bqMcG6rGBemygHhuoxwbqsYF6bKAeG6jHBuqxgXpsoB4bqMcG6mKg
LgbqYqAuBupioC4G6mKgLgbqYqAuBupioC4G6mKgLgbqYqAuBupioC4G6mKgLgbqYqAuBupioC4G
6mKgLgbqYqAuBupioC4G6mKgLgbqYqAuBupioC4G6mKgLgbqYqAuBupioC4G6mKgLgbqYqAuBupi
oC4G6mJ+LubnYn4u5udifi7m52J+LubnYn4u5udifi7m52J+LubnYn4u5udifi7m52J+LubnYn4u
5udifi7m52J+LubnYn4u5udifi5G0mIkLUbSYiQtRtJiJC1G0mIkLUbSYiQtRtJiJC1G0mIkLUbS
YiQtRtJiJC1G0mIkLUbSYiStRtJqJK1G0mokrUbSaiStRtJqJK1G0mokrUbSaiStRtJqJK1G0mok
rUbSaiStRtJqJK1G0mokrUbSaiStRtJqJK1G0mokrUbSaiStRtJqJK1G0mokrUbSaiStRtJqJK1G
0mokrUbSaiStRtJqJK1G0mokrUbSaiStPuOtZtRqRq1m1GpGrWbUakatZtRqRq1m1GpGrWbUakat
ZtRqRq1m1GpGrWbUakatZtRqRq1m1GpGrWbUakatZpSjj8rRR+Xoo3L0UTn6qBx9VI4+KkcflaOP
ytFH5eijcvRROfqoHH1Ujj4qRx+Vo4/K0Ufl6KNy9FE5+qgcfVSOPipHH5Wjj8rRR+Xoo3L0UTn6
qBx9VI4+KkcflaOPytFH5eijcvRROfqoHH1Ujj4qRx+Vo4/K0Ufl6KNy9FE5+qgcfVSOPipHH5Wj
j8rRR+Xoo3L0UTn6qBx9VI4+KkcflaOPytFH5eijcvRROfqoHH1Ujj4qRx+Vo4/K0Ufl6KNy9FE5
+qgcfVSOPipHH5Wjj8rRR+Xoo3L0UTn6qBx9VI4+KkcflaOPytFH5eijcvRROfqoHH1Ujj4qRx+V
o4/K0Ufl6KNy9FE5+qgcfVSOPipHH5Wjj8rRR+Xoo3L0UTn6qBx9VI4+KkcflaOPytFH5eijcvRR
OfqoHH1Ujj4qRx+Vo4/K0UeHA1ZqRjkLqZyFVM5CKmchlbOQyllI5SykchZSOQupnIVUzkIqZyGV
s5DKWUjlLKRyFlI5C6mchVTOQipnIZWzkMpZSOUspHIWUjkLqZyFVM5CKmchlbOQyllI5SykchZS
OQupnIVUzkIqZyGVs5DKWUjlLKRyFlI5C6mchVTOQipnIZWzkMpZSOUspHIWUjkLqZyFVM5CKmch
lbOQyllI5SykchZSOQupnIVUzkIqZyGVs5DKWUjlLKRyFlI5C6mchVTOQipnIZWzkMpZSOUspHIW
UjkLqZyFVM5CKmchlbOQyllI5SykchZSOQupnIVUzkIqZyGVs5DKWUjlLKRyFlKdz0Lap25fSo9w
3d93sQt4wV2+/Q93hkjfytjs28BGr8T88tY8ujJvOGb9zgv92ffy6es7OJ9v+dXd9jDzXzy5Dm/I
o/rQrnstuivi+z5mt9/4/XkEHprbveDeGl59SUz/sr6E71/c+Ss6+vLw4b54efrN6avzdpaXPyFr
+NNtOBmOjv94uKtctjGXw63i2y70OlpiHR1nM9oPdzZH9/h5PspP8j5vK347Z81jsSk99lueXcCw
Cxh2AcMuYNgFDLuAYRcw7AKGXcCwCxh2AcMuYNgFDLuAYRcw7AKGXcCwCxh2AcMuYNgFDLuAYRcw
7AKGXcCwCxgeQMDwMMN5fnWXbBc87IKHXfCwCx52wcMueNgFD7vgYRc87IKHXfCwCx52wcMueNgF
D7vgYRc87IKHXfCwCx52wcMueNgFD7vgYRc87IKHOxQ8PMwu2b1R6R8U8f3LY87v9H25y9Hqjxr6
/PVP5fnXh3IOv/jk6d+/eHX2Tt+dluAnf9WjOkWvO3n82beHz+n5089eHso/ffXZyZPXL746lHDr
U9VvPCL9Fwq9j3H3J2+571+Zbn9dO8fXp8+en/zb+Su7u5P4ll7+TcfBf9dn0a7ctSt37cpdu3LX
rty1K3ftyl27cteu3LUrd+3KXbty167ctSt37cpdu3LXrty1K3ftyl27cteu3LUrd+3KXbty167c
tSt37cpdu3LXrty1K3ftyl27cteu3LUrd+3KXbty167ctSt37cpdu3LXrty1K3ftyl27cteu3LUr
d+3KXbty167ctSt37cpdu3LXrty1K3ftyl27cteu3LULde1CXbtQ1y7UtQt17UJdu1DXLtS1C3Xt
Ql27UNcu1LULde1CXbtQ1y7UtQt17UJdu1DXLtS1C3XtQl27UNcu1LULde1CXbtQ1y7UtQt17UJd
u1DXLtS1C3XtQl27UNcu1LULde1CXbtQ1y7UtQt17UJdu1DXLtS1C3XtQl27UNcu1LULde1CXbtQ
1y7UtQt17UJdu1DXLtS1C3XtQl27UNcu1LULde1CXbtQ1y7UtQt17UJdu1DXLtS1C3XtQl27UNcu
1LULde1CXbtQ1y7UtQt17UJdu1DXLtS1C3XtQl27UNcu1LULde1CXbtQ1y7UtQt17UJdu1DXLtS1
C3XtQl27UNcu1LULde1CXbtQ1y7UtQt17UJdu1DXLtS1C3XtQl27UNcu1LULde1CXbtQ1y7UtQt1
7UJdu1DXLtS1C3XtQl27UNcu1LULde1CXbtQ1y7UtQt17UJdu1DXLtS1C3XtQl27UNcu1LULde1C
XbtQ18OMUq/U6pVavVKrV2r1Sq1eqdUrtXqlVq/U6pVavVKrV2r1Sq1eqdUrtXqlVq/U6pVavVKr
V2r1Sq1eqdUrtXqlVq/U6pVavVKrV2r1Sq1eqdUrtXqlVq/U6pVavVKrV2r1Sq1eqdUrtXqlVq/U
6pVavVKrV2r1Sq1eqbUptTal1qbU2pRam1JrU2ptSq1NqbUptTal1qbU2pRam1JrU2ptSq1NqbUp
tTal1qbU2pRam1JrU2ptSq1NqbUptTal1qZ0OGClRpJ6pVav1OqVWr1Sq1dq9UqtXqnVK7V6pVav
1OqVWr1Sq1dq9UqtXqnDSNK31PqWWt9S61tqfUutb6n1LbW+pda31PqWWt9S61tqfUutb6n1LbW+
pda31PqWWt9S61tqfUutb6n1LbW+pda31PqWWt9S61tqfUutb6n1LbW+pda31PqWDgfCA+WB9oCF
mUD6llrfUutban1LrW+p9S21vqXWt9T6llrfUutban1LrW+p9S21vqXWt9T6llrfUutban1LrW+p
9S21vqXWt9T6llrfUutban1LrW+p9S0dDlipkaSAqRUwtQKmVsDUCphaAVMrYGoFTK2AqRUwtb6l
1rfU+pZa31LrW2p9S61vqfUttb6l1rfU+pZa31LrW2p9S61vqdUrtXqlVq/U6pVavVKrV2r1Sq1e
qdUrtXqlVq/U6pVavVKrV2r1Sq1eqdUrtXqlVq/U53qlR+zaf/H0zclXt7/l+N2GoNuON9nQvuKW
7fW3D7+XGbdNlW1TZdtU2TZVtk2VbVNl21TZNlW2TZVtU2XbVNk2VbZNlW1TZdtUOW2qnDZVTpsq
p02V06bKaVPltKly2lQ5baqcNlVOmyqnTZXTpsppU+W0qXLaVDltqpw2VU6bKqdNldOmymlT5bSp
ctpUOW2qnDZVTpsqp02V06bKaVPltKly2lQ5baqcNlVOmyqnTZXTpsppU+W0qXLaVDltqpw2VU6b
KqdNldOmymlT5bSpctpUOW2qnDZVTpsqp02V06bKaVPltKly2lQ5baqcNlVOmyqnTZXTpsppU+W0
qXLaVDltqpw2VU6bKqdNldOmymlT5bSpctpUOW2qnDZVTpsqp02V06bKaVPltPF/2vg/bfyfNv5P
G/+njf/Txv9pRk0zappR04yaZtQ0o6YZNc2oaUZNM2qaUdOMmmbUNKOmD8bHPhgf+2B87IPxsQ/G
xz4YH/tgfOxa7bFPysc+KR/7pHzsk/KxT8rHPikf+6R87JPysU/Kxz4pH/ukfOyT8rFPysc+KR/7
pHzsk/KxT8rHPikf+6R87JPysU/Kxz4pH/ukfOyT8rFPysc+KR/7pHzsk/KxT8rHPikf+6R87JPy
sU/Kxz4pH/ukfOyT8rFPysc+KR/7pHzsk/KxT8rHPikf+6R87JPysU/Kxz4pH7t4e+yj87GPzsc+
Oh/76Hzso/Oxj87HPjof++h87KPzsY/Oxz46H/vofOyj87GPzsc+Oh+7eHvss/Sxz9LHPksf+yx9
7LP0sc/Sxz5LH/ssrXeq9U613qnWO9V6p1rvVOudar1TrXeq9U613qnWO9V6p1rvVOudar1TrXeq
9U613qnWO9V6p1rvVOudar1TrXeq9U613qnWO9V6p1rvVOudar1TrXeq9U613qnWO9V6p1rvVOud
ar1TrXeq9U613qnWO9V6p1rvVOudar1TrXeq9U613qnWO9V6p1rvVOudar1TrXeq9U613qnWO9V6
p1rvVOudar1TrXeq9U613qnWO9V6p1rv1OGAlZpRiqhaEVUrompFVK2IqhVRtSKqVkTViqhaEVUr
ompFVK2IqhVRtSKqVkTViqhaEVUrompFVK2IqhVRtSKqVkTViqhaEVUrompFVK2IqhVRtSKqVkTV
iqhaEVUrompFVK2IqhVRtSKqVkTViqhaEVUrompFVK2IqhVRtSKqVkTViqhaEVUrompFVK2IqhVR
tSKqVkTViqhaEVUrompFVK2IqhVRtSKqVkTViqhaEVUrompFVK2IqhVRtSKqVkTViqhaEVUrompF
VK2IqhVRtSKqVkTViqhaEVUrompFVK2IqhVRtSKqVkTViqhaEVUrompFVK2IqhVRtSKqVkTViqha
EVUrompFVK2IqhVRtSKqVkTViqhaEVUrompFVK2IqhVRtSKqVkTViqhaEVUrompFVK2IqhVRtSKq
VkTViqhaEVUrompFVK2IqhVRtSKqVkTViqhaEVUrompFVK2IqhVR9bmI6j7HPX+/H3gJBu8W2OMd
3dvRvR3d29G9Hd3b0b0d3dvRvR3d29G9Hd3b0b0d3dvRvR3d29G9Hd3b0b0d3dvRvR3d29G9Hd3b
0b0d3dvRvftE9x5QkXwtB+7Lk1en37w5Oj5e7hDq27m5nZvbubmdm9u5uZ2b27m5nZvbubmdm9u5
uZ2b27m5nZvbubmdm9u5uZ2b27m5nZvbubmdm9u5uZ2b27m5nZt7AG7uAffuvh97eXbwy5NXhx/+
+s7meN7GTuFlR+795Cs7n+15Z6/v597NS8pErzuF8BffjF8u7rs35CFLvNHndc3T+Gfn7V7rL932
ROD7+St3QeT+4sTO+7vk3OiUut2vzG0wzjf4hj+iQh/tF+EXB3A/wg/6oeaEX7XO27+2fBjfuctd
Im54I3SH14S7rOzSJ8bzz18dfsn3H9ebk9df/vHlt//+/Nmf8mk/O8l4drQ+jdOjMU4/P3ry5PjJ
0ZN+MnvMk5Mny7zsBeKv37758sU3f3v66vnLN7eXmL9QfM2TWJ+d9tFY1/XwP3V6NNdnTw6n5+nT
tU8rPu/Tuyv+13UW6YpWuqKVrmilK1rpila6opWuaKUrWumKVrqiVa5olSta5YpWuaJVrmiVK1rl
ila5olWuaJUrWuWKVrmiVa5olSta5YpWuaJVrmiVK1rlila5olWuaJUrWuWKVrmiVa5olSta5YpW
uaJVrmiVK1rlila5olWuaJUrWuWKVrmiVa5olSta5YpWuaJVrmiVK1rlila5olWuaJUrWuWKVrmi
Va5olSta5YpWuaJVrmiVK1rlila5olWuaJUrWuWKVrmiVa5olSta5YpWuaJVrmiVK1rlila5olWu
aJUrWuWKVrmAVS5glQtY5QJWuYBVLmCVC1jlAla5gFUuYJULWOUCVrnJUm6ylJss5SZLuclSbrKU
kVRGUhlJZSSVkVRGUhlJZSSVkVRGUhtJbSS1kdRGUhtJbSS1kdRGUhtJbSS1kdRGUhtJbSS1kdRG
UhtJbSS1kdRGUhtJbSS1kdRGUhtJbSS1kdRGUhtJbSS1kdRGUhtJbSS1kdRGUhtJbSS1kdRGUhtJ
bSS1kdRGUhtJbSS1kdRGUhtJbSS1kdRGUhtJbSS1kdRGUhtJbSS1kdRGUhtJbSS1kdRGUhtJbSS1
kdRGUhtJbSS1kdRusrQZ1WZUm1FtRrUZ1WZUm1FtRrUZ1WZUm1FtRrUZJfTTQj8t9NNCPy3000I/
LfTTQj8t9NNCPy3000I/LfTTQj8t9NNCPy3000I/LfTTQj8t9NNCPy3000I/LfTTQj8t9NNCPy30
00I/LfTTQj8t9NNCPy3000I/LfTTQj8t9NNCPy3000I/LfTTQj8t9NNCPy3000I/LfTTQj8t9NNC
Py3000I/LfTTQj8t9NNCPy3000I/LfTTQj8t9NNCPy3000I/LfTTQj8t9NNCPy3000I/LfTTQj8t
9NNCPy3000I/LfTTQj8t9NNCPy3000I/LfTTQj8t9NNCPy3000I/LfTTQj8t9NNCPy3000I/LfTT
Qj8t9NNCPy3000I/LfTTQj8t9NNCPy3000I/LfTTQj8t9NNCPy3000I/LfQzhX6m0M8U+plCP1Po
Zwr9TKGfKfQzhX6m0M8U+plCP1PoZwr9TKGfKfQzhX6m0M8U+plCP1PoZwr9TKGfKfQzhX6m0M8U
+plCP1PoZwr9TKGfKfQzhX6m0M8U+plCP1PoZwr9TKGfKfQzhX6m0M8U+plCP1PoZwr9TKGfKfQz
hX6m0M8U+plCP1PoZwr9TKGfKfQzhX6m0M8U+plCP1PoZwr9TKGfKfQzhX6m0M8U+plCP1PoZwr9
TKGfKfQzhX6m0M8U+plCP1PoZwr9TKGfKfQzhX6m0M8U+plCP1PoZwr9TKGfKfQzhX6m0M88h35u
OhB5igpNUaEpKjRFhaao0BQVmqJCU1RoigpNUaEpKjRFhaao0BQVmqJCU1RoigpNUaEpKjRFhaao
0BQVmqJCU1RoigpNUaEpKjRFhaao0BQVmqJCU1RoigpNUaEpKjRFhaao0BQVmqJCU1RoigpNUaEp
KjRFhaao0BQVmqJCU1RoigpNUaEpKjRFhaao0BQVmqJCU1RoigpNUaEpKjRFhaao0BQVmqJCU1Ro
igpNUaEpKjRFhaao0BQVmqJCU1RoigpNUaEpKjRFhaao0BQVmqJCU1RoigpNUaEpKjRFhaao0BQV
mqJCU1RoigpNUaEpKjRFhaao0BQVmqJCU1RoigpNUaEpKjRFhaao0BQVmqJCU1RoigpNUaEpKjRF
haao0BQVmqJCU1RoigpNUaEpKjRFhaao0BQVmqJCU1RoigpNUaEpKjRFhaao0BQVmqJCU1RoigpN
UaEpKjRFhaao0BQVmqJCU1RoigpNUaEpKjRFhaao0BQVmqJCU1RoigpNUaEpKjRFhaao0BQVmqJC
U1RoigpNUaEpKjRFhaao0BQVmqJCU1RoigpNUaEpKjRFhaZk0JQMmpJBUzJoSgZNyaApGTQlg6Zk
0JQMmpJBUzJoSgZNyaApGTQlg6Zk0JQMmpJBUzJoSgZNyaApGTQlg6Zk0JQMmpJBUzJorkaSU6am
U6amU6amU6amU6amU6amU6amU6amU6amU6amU6amU6amU6amU6amU6amU6amU6amU6amU6amU6am
U6amU6amU6amU6amU6amU6amU6amU6amU6amU6amU6amU6amU6amU6amU6amU6amU6amU6amU6am
U6amU6amU6amU6amU6amU6amU6amU6amU6amU6amU6amU6amU6amU6amU6amU6amU6amU6YOB6zU
SHLs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs
1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs
1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs
1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs
1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs
1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs
1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs
1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1HTs1DwfO3WHFoW7heduglny
q5++evH69WcvXj3/4vk3F6DgyRendwIL39Y7dBlC7xG8Q9dSGNxIE3BZLvR76PR9QvTdq/817/8H
wmTfknbh3KtxKPL1m1cnz795c37k6J8nXz1/dnJm0Th6+uXp07//b2f//vzNt3c4M+GOPuiHJ6Fv
4R2/hHvmCnPjd9B2B2130HYHbXfQdgdtd9B2B2130HYHbXfQdgdtd9B2B2130HYHbXfQdgdtd9B2
B2130HYHbXfQdgdtd9B2B21vHbR9mNkTl5/QvoO8O8i7g7w7yLuDvDvIu4O8O8i7g7w7yLuDvDvI
u4O8O8i7g7w7yLuDvDvIu4O8O8i7g7w7yLuDvDvIu4O8O8h7+yDvA05ov49x0x/KYNlLw73/fP7s
9MV3v/Ptv3327NtvTr5+/vSzl4fyT199dvLk9YuvDiUcnf7r5enTN6fPzn79o+FmX7w8/ebo+Tfv
UMe75j3v6O28BC95o0HdtzoY/HIjwW/x87wVJPbyBO7DYMyv//Hy7GP8twuu9sWre5y8fh3E99dP
1udfn3xxqOvJydO/f/Hq7G375Zn39zzB/IYz4G/9Lbs8fv1TZ8qDV/2TH/ajisOvT589P/m386vw
rZ+J370P/pabvAXXTZNL3hpc/cp59kuP3rw4/L+Xj0+sYHG3nBo/FUyXvin9ebnB4b7ZG3qXcoZL
OcOlnOFSznApZ7iUM1zKCZdywqWccCknXMoJl3LCpZxwKSdcygmXcsKlnHApJ1zKCZdywqWccCkn
XMoJl3LCpZxwKSdcygmXcsKlnHApJ1zKCZdywqWccCknXMoJl3LCpZxwKSdcygmXcsKlnHApJ1zK
CZdywqWccCknXMoJl3LCpZxwKSdcygmXcsKlnHApJ1zKCZdywqWccCknXMoJl3LCpZxwKSdcygmX
csKlnHApJ1zKCZdywqWccCknXMoJl3LCpZxwKSdcygmXcsKlnHApJ1zKCZdywqWccCknXMoJl3LC
pZxwKSdcygmXcsKlnHApJ1zKCZdywqWccCknXMoJl3LCpZxwKSfcbggzKsyoMKPCjAozKsyoMKPC
jEozKs2oNKPSjEozKs2oNKPSjEozKs2oNKPSjEozKs2oNKPSjEozKs2oNKPSjEozKs2oNKPSjEoz
Ks2oNKPSjEozKs2oNKPSjEozKs2oNKPSjEozKs2oNKPSjEozKs2oNKPSjEozKs2oNKPSjEozKs2o
NKPSjEozKs2oNKPSjEozKs2oNKPSjEozKs2oNKPSjEozKs2oNKPSjEozKs2oNKPSjEozKs2oNKPS
jEozKs2oNKPSjEozKs2oNKPSjEozKs2oNKPSjEozKs0oFXBTBdxUATc1vk2Nb1Pj29T4NjW+TY1v
U+Pb1Pg2Nb5NjW9T49vU+DY1vk2Nb1Pj29T4NjW+TY1vU+Pb1Pg2Nb5NjW9T49vU+DY1vk2Nb1Pj
29T4NjW+TY1vU+Pb1Pg2Nb5NjW9TwdtU8DYVvE0Fb1PB21TwNhW8TQVvU8HbVPA2FbxNBW9TwdtU
8DYVvE0Fb1PB21TwNhW8TQVvU8HbVPA2FbxNBW9TwdtU8DYVvE0Fb1PB21TwNhW8TQVvU8HbVPA2
FbxNBW9TwdtU8DYVvE0Fb1PB21TwdjhgpSaQxrep8W1qfJsa36bGt6nxbWp8mxrfpsa3qfFtanyb
Gt+mxrep8W1qfJsa36bGt6nxbWp8mxrfpsa3qfFtanybGt+mxrep8W1qfJsa36bGt6nxbWp8mxrf
psa3qfFtanybGt+mxrep8W1qfJsa36bGt6nxbWp8mxrfpsa3qfFtanybGt+mxrep8W1qfJsa36bG
t6nxbWp8mxrfpsa3qfFtanybGt+mxrep8W1qfJsa36bGt6nxbWp8mxrfpsa3qfFtanybGt+mxrep
8W1qfJsa36bGt6nxbWp8mxrfpsa3qfFtanybGt+mxrep8W1qfJsa36bGt6nxbWp8mxrfpsa3qfFt
anybGt+mxrep8W1qfJsa36bGt6nxbWp8mxrfpsa3qfFtanybGt+mxrep8W1qfJsa36bGt6nxbWp8
mxrfpsa3qfFtanybGt/mufHt9vsdft1XoFpuqpabquWmarmpWm6qlpuq5aZquXmulrvTNrF9+2/f
/tu3//btv337b9/+27f/9u2/fftv3/7bt//27b99+2/f/tu3//btv337b9/+27f/9u2/fftv3/7b
t//27b99+2/f/rvP7b9H7zZ/XHuFDyi5uD1y9puvvn398uTp6QMbE65R7I1kCb9I1d9V1b9IG9/r
dPrrCiTuzbBydQL4PZ3Devun9KP9K7elM7it7+a1FAe39BV7lC/1Vvwc91vyg7mNbqnWx3zS3/Ci
dtnouyW7xKvTw89+/s/TWzc+3bZU6YeFXvY9etDI/fWwvUfV022L0B7pF/AGl+Ibfm1vUN9DVvY7
0upd/nS69GXrwin23S9+c/L6yz++/Pbfnz/7U82TWJ+d9tFY1/XwP3V6NNdnTw61nj5d+7Ti8z69
2wryaT87yXh2tD6N06MxTj8/evLk+MnRk35ytv51cvJkmZf9iP/67ZsvX3zzt6evnr98c8VrzZX+
6j1JxR5aaXWzU/HXDV/nV7wfKb5uP/TuR7Z1D1/Dm3ze/Oqnr168fv3Zi1fPv3j+zcV1+HCCXSEg
7tkt9sObqltS113iXLzE7dttff6XuQg+gs//JlK092P/6Pzv/sr3/kFso7fsyLzm3ffjX+u5k3Ph
4e9/H1Z8+ROXontc4bnv+h6ysttdAnx5enhtvyp+vuXvzfmV/VGsM9/+ouoP39Erp/Ftv7137X7+
0TXwzmL4ni3lH4Z2+0ef811s532Q+yk//PY9jtWZu9k4fPhbsLu5av7iw+6DL3Rd+uy69e/O/e15
Xfo1PvQi9tULvYuz9ZFd0W558eJxTi25R5H6Hb2V93Bj+CiF7g+68n/TxfMPddPg97rg+zta3/xd
bDNeLQl/kwNLfjJMbvm5+70nze2xPHD/TGWXbVn5zW9+3uhW8ddXKi/+8R57nq9Y0x23Nn8gPUUP
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
mF+dPDn96vWj2N34hbfpKhqS678B9zJJ5DZvUj/0eZsfwB30Nd/8e7s//IUvzaNofv1QWwd+9WJx
7wTHbT96Xfa13MPD/o1O4jtZXL2BfvEeW7q/Wwe+ix2Dtyz469dX7Wh+ZMDV5d6iD7er/wqnwHtT
0//97XT5o+M//WHNP6zbGMfb+oft4z+sn3x/YPPA8EB4ID1QHmgPTA6MYw8sHrDSYaXDSoeVDisd
VjqsdFhpWGlYaVhpWGlYaVhpWGlYaVhpWGlaaVppWmlaaVppWmlaaVppWmlaaVlpWWlZaVlpWWlZ
aVlpWWlZaVlpW2lbaVtpW2lbaVtpW2lbaVtpW+m00mml00qnlU4rnVY6rXRa6bTSSaXL8bEHFg+s
Htg8MDwQHkgPlAfaA1a6WOlipYuVLla6WOlipYuVLla6WOlipauVrla6WulqpauVrla6WulqpauV
rla6WelmpWbUYkYtZtRiRi1m1GJGLWbUYkYtZtRiRi1m1GJGLWbUYkYtZtRiRi1m1GJGLWbUYkYt
ZtRiRi1m1GJGLWbUYkYtZtRiRi1m1GJGLWbUYkYtZtRiRi1m1GJGLWbUYkYtZtRiRi1m1GJGLWbU
YkYtZtRiRi1m1GJGLWbUYkYtZtRiRi1m1GJGLWbUYkYtZtRiRi1m1GJGLWbUYkYtZtRiRi1m1GJG
LWbUYkatZtRqRq1m1GpGrWbUakatZtRqRq1m1GpGrWbUakatZtRqRq1m1GpGrWbUakatZtRqRq1m
1GpGrWbUakatZtRqRq1m1GpGrWbUakatZtRqRq1m1GpGrWbUakatZtRqRq1m1GpGrWbUakatZtRq
Rq1m1GpGrWbUakatZtRqRq1m1GpGrWbUakatZtRqRq1m1GpGrWbUakatZtRqRq1m1GpGrWbUakat
ZtRqRq1m1GpGrWbUakatZtRqRq1m1GpGrWbUakatZtRqRq1m1GpGrWbUakatZtRqRq1m1GpGrWbU
akatZtRqRq1m1GpGrWbUakatZtRqRq1m1GpGbWbUZkZtZtRmRm1m1GZGbWbUZkZtZtRmRm1m1GZG
bWbUZkZtZtRmRm1m1GZGbWbUZkZtZtRmRm1m1GZGbWbUZkZtZtRmRm1m1GZGbWbUZkZtZtRmRm1m
1GZGbWbUZkZtZtRmRm1m1GZGbWbUZkZtZtRmRm1m1GZGbWbUZkZtZtRmRm1m1GZGbWbUZkZtZtRm
Rm1m1GZGbWbUZkZtZtRmRm1m1GZGbWbUZkZtZtRmRm1m1GZGbWbUZkZtZtRmRm1m1GZGbWbUZkZt
ZtRmRm1m1GZGbWbUZkZtZtRmRm1m1GZGbWbUZkZtZtRmRm1m1GZGbWbUZkZtZtRmRg0zaphRw4wa
ZtQwo4YZNcyoYUYNM2qYUcOMGmbUMKOGGTXMqGFGDTNqmFHDjBpm1DCjhhk1zKhhRg0zaphRw4wa
ZtQwo4YZNcyo8TajHpOI8729suVP3xfru2h+DvNzmJ/D/Bzm5zA/h/k5zM9hfg7zc5ifw/wc5ucw
P4f5OczPYX4O83OYn8P8HObnMD+H+TnMz2F+DvNzmJ/D/Bzm5zA/h/k5zM9hfg7zc5ifw/wc5ucw
P4f5OczPYX4O83OYn8P8HObnMD+H+TnMz2F+DvNzmJ/D/Bzm5zA/h/k5zM9hfg7zc5ifw/wc5ucw
P4f5OczPYX4O83OYn2F+hvkZ5meYn2F+hvkZ5meYn2F+hvkZ5meYn2F+hvkZ5meYn2F+hvkZ5meY
n2F+hvkZ5meYn2F+hvkZ5meYn2F+hvkZ5mf4jBdmVJhRYUaFGRVmVJhRYUaFGRVmVJhRYUaFGRVm
VJhRYUaFGRVmVJhRYUaFGRVmVJhRYUaFGRVmVJhRYUaFGRVmVJhRYUaFGRVmVJhRYUaFGRVmVJhR
YUaFGRVmVJhRYUaFGRVmVJhRYUaFGRVmVJhRYUaFGRVmVJhRYUaFGRVmVJhRYUaFGRVmVJhRYUaF
GRVmVJhRYUaFGZVmVJpRaUalGZVmVJpRaUalGZVmVJpRaUalGZVmVJpRaUalGZVmVJpRaUalGZVm
VJpRaUalGZVmVJpRaUalGZVmVJpRaUalGZVmVJpRaUalGZVmVJpRaUalGZVmVJpRaUalGZVmVJpR
aUalGZVmVJpRaUalGZVmVJpRaUalGZVmVJpRaUalGZVmVJpRaUalGZVmVJpRaUalGZVmVJpRaUal
GZVmVJpRaUalGZVmVJpRaUalGZVmVJpRaUalGZVmVJpRaUalGZVmVJpRaUalGZVmVJpRaUalGZVm
VJpRaUalGVVmVJlRZUaVGVVmVJlRZUaVGVVmVJlRZUaVGVVmVJlRZUaVGVVmVJlRZUaVGVVmVJlR
ZUaVGVVmVJlRZUaVGVVmVJlRZUaVGVVmVJlRZUaVGVVmVJlRZUaVGVVmVJlRZUaVGVVmVJlRZUaV
GVVmVJlRZUaVGVVmVJlRZUaVGVVmVJlRZUaVGVVmVJlRZUaVGVVmVJlRZUaVGVVmVJlRZUaVGVVm
VJlRZUaVGVVmVJlRZUaVGVVmVJlRZUaVGVVmVJlRZUaVGVVmVJlRZUaVGVVmVJlRZUaVGVVmVJlR
ZUaVGdVmVJtRbUa1GdVmVJtRbUa1GdVmVJtRbUa1GdVmVJtRbUa1GdVmVJtRbUa1GdVmVJtRbUa1
GdVmVJtRbUa1GdVmVJtRbUb17e+VPZbhAJdD2u5WrneP5uq7JxRvmf28ioxhZw535nBnDnfmcGcO
d+ZwZw535nBnDnfmcGcOd+ZwZw535nBnDnfmcGcOd+ZwZw535nBnDnfmcGcOd+ZwZw535vABmMOH
nZJ4DxrmX92Q28HGHWzcwcYdbNzBxh1s3MHGHWzcwcYdbNzBxh1s3MHGHWzcwcYdbNzBxh1s3MHG
HWzcwcYdbNzBxh1s3MHGHWy8Q7DxwTbkPryxfr/DqeS3Ovj7F1nHG0xGvYPR6dcv9XoDaX/zEPF1
J5Qf/v/Tf7x+8+LrOx7m/vzrky8OZ9WTk6d//+LV2c/45cG09zQz/vDP/zj68vnh9b96fvgQf+W1
XwFB/v579Pbw23P84tQ/vI63p/sfD9+B876F8//wpx9+Pw5fhaM3J6++OH1z+5/H3QDYVzzDroJe
/+S582Ew/Nc5Aa/y1jzI2fhoYuC6Nwz3l/73d2vyIHdQVz39zk+if/uFc+vfvzn5+vRPh0vFP04f
4HblihexO/Nc3MOA+mu8okt6MNqluHYprl2Ka5fi2qW4dimuXYprl+Lapbh2Ka5dimuX4tqluHYp
rl2Ka5fi2qW4dimuXYprl+Lapbh2Ka5dimuX4tqluHYprl2Ka5fi2qW4dimuXYprl+Lapbh2Ka5d
imuX4tqluHYprl2Ka5fi2qW4dimuXYprl+Lapbh2Ka5dimuX4tqluHYprl2Ka5fi2qW4dimuXYpr
l+Lapbh2Ka5dimuX4tqluHYprl2Ka5fi2qW4dimuXYprl+KmS3HTpbjpUtx0KW66FDddipsuxU2X
4qZLcdOluOlS3HQpbroUN12Kmy7FTZfipktx06W46VLcdCluuhQ3XYqbLsVNl+KmS3HTpbjpUtx0
KW66FDddipsuxU23i6YZNc2oaUZNM2qaUdOMmmbUNKOmGTXNqGlGTTNqmlHTjJpm1DSjphk1zahp
Rk0zappR04yaZtQ0o6YZNc2oaUZNM2qaUdOMmmbUNKOmGTXNqGlGTTNqmlHTjJpm1DSjphk1zahp
Rk0zappR04yaZtQ0o6YZNc2oaUZNM2qaUdOMmmbUNKOmGTXNqGlGTTNqmlHTjJpm1DSjphk1zahp
Rk0yKo7JqMOBxQOrBzYPDA+EB9ID5YH2gJUuVrpY6WKli5UuVrpY6WKli5UuVrpY6Wqlq5WuVrpa
6Wqlq5WuVrpa6Wqlq5VuVrpZ6Walm5VuVrpZ6Walm5VuVrpZ6bDSYaXDSoeVDisdVjqsdFjpsNJh
pWGlYaVhpWGlYaVhpWGlYaVhpWGlaaVppWmlaaVppWmlaaVppWmlaaVlpWWlZaVlpWWlZaVlpWWl
ZaVlpW2lbaVtpW2lbaVtpW2lbaVtpW2l00qnlU4rnVY6rXRa6bTSaaXTSs0ofYKhTzD0CYY+wdAn
GPoEQ59g6BMMfYKhTzD0CYY+wdAnGPoEQ59g6BMMfYKhTzD0CYY+wdAnGPoEQ59g6BMMfYKhTzD0
CYY+wdAnGPoEQ59g6BMMfYKhTzD0CYY+wdAnGPoEQ59g6BMMfYKhTzD0CYY+wdAnGPoEQ59g6BMM
fYKhTzD0CYY+wdAnGPoEQ59g6BMMfYKhTzD0CYY+wdAnGPoEQ59g6BMMfYKhTzD0CYY+wdAnGPoE
Q59g6BMMfYKhTzD0CYY+wdAnGPoEQ59g6BMMfYKhTzD0CYY+wdAnGPoEQ59g6BMMfYKhTzD0CYY+
wdAnGPoEQ59g6BMMfYKhTzD0CYY+wdAnGPoEQ59g6BMMfYKhTzD0CYY+wdAnGPoEQ59g6BMMfYKh
TzD0CYY+wdAnGPoEQ59g6BMMfYKhTzD0CYY+wdAnGPoEQ59g6BMMfYKhTzD0CcZ6h/MEbm1f7vLd
APe7x3j9vdNbekXX7my40tbyzToYbrmd4sp9XT/Z0/L881eHl/d9T8ubk9df/vHlt//+/Nmf8mk/
O8l4drQ+jdOjMU4/P3ry5PjJ0ZN+MnvMk5Mny7zsOfbXb998+eKbvz199fzlm2v1CFy1+JonsT47
7aMzg+nhf+r0aK7Pnhw9PTl9uvZpxed9+rDFX6Wb6Ovn3/zj9e23dN3ZCJHv671BV9JdnK83af/i
Vz999eL1688OF6gvnn/z2cuTV4djJ1+c3vLclhue4Y/g5V5OuhTae0N7b2jvDe29ob03tPeG9t7Q
3hvae0N7b2jvDe29ob03tPeG9t7Q3hvae0N7b2jvDe29ob03tPeG9t7Q3hvae0N7b2jvDe29ob03
tPeG9t7Q3hvae0N7b2jvDe29ob03tPeG9t7Q3hvae0N7b2jvDe29ob03tPeG9t7Q3hvae0N7b2jv
De29ob03tPeG9t7Q3hvae0N7b2jvDe29ob03tPeG9t7Q3hvae0N7b2jvDe29ob03tPeG9t7Q3hva
e0N7b2jvDe29ob03tPeG9t7Q3hvae0N7b2jvDe29ob03tPeG9t7Q3hvae0N7b2jvDe29ob03tPeG
9t7Q3hvae0N7b2jvDe29ob03tPeG9t7Q3hvae0N7b2jvDe29ob03tPeG9t7Q3hvae0N7b2jvDe29
ob03tPeG9t7Q3hvae0N7b2jvDe29ob03tPeG9t7Q3hvae0N7b2jvDe29ob03tPeG9t7Q3hvae0N7
b2jvDe29ob03tPeG9t7Q3hvae0N7b2jvDe29ob03tPeG9t7Q3hvae0N7b2jvDe29ob03tPeG9t7Q
3hvae0N7b2jvDe29ob03tPeG9t7Q3hvae0N7b2jvDe29ob03tPeG9t7Q3hvae0N7b2jvDe29ob03
tPeG9t7Q3hvae0N7b2jvDe29ob03tPeG9t7Q3hvae0N7b2jvDe29ob03tPeG9t4YZpTy2lBeG8pr
Q3ltKK8N5bWhvDaU14by2lBeG8prQ3ltKK8N5bWhvDaU14by2lBeG8prQ3ltKK8N5bWhvDaU14by
2lBeG8prQ3ltKK8N5bWhvDaU14by2lBeG8prQ3ltKK8N5bWhvDaU14by2lBeG8prQ3ltKK8N5bWh
vDaU14by2lBeG8prQ3ltKK8N5bWhvDaU14by2lBeG8prQ3ltKK8N5bWhvDaU14by2lBeG8prQ3lt
KK8N5bWhvDaU14by2lBeG8prQ3ltKK8N5bWhvDaU14by2lBeG8prQ3ltKK8N5bWhvDaU14by2lBe
G8prQ3ltKK8N5bWhvDaU14by2lBeG8prQ3ltKK8N5bWhvDaU14by2lBeG8prQ3ltKK8N5bWhvDaU
14by2lBeG8prQ3ltKK8N5bWhvDaU14by2lBeG8prQ3ltKK8N5bWhvDaU14by2lBeG8prQ3ltKK8N
5bWhvDaU14by2lBeG8prQ3ltKK8N5bWhvDaU14by2lBeG8prQ3ltKK8N5bWhvDaU14by2lBeG8pr
Q3ltKK8N5bWhvDaU14by2lBeG8prQ3ltKK8N5bWhvDaU14by2lBeG8prQ3ltKK8N5bWhvDaU14by
2lBeG8prQ3ltKK8N5bWhvDaU14by2lBeG8prQ3ltKK8N5bWhvDaU14by2lBeG8prQ3ltKK8N5bWh
vDby9rs/7li0cN+ijpvW+6h8RTuNvtPoO42+0+g7jb7T6DuNvtPoO42+0+g7jb7T6DuNvtPoO42+
0+g7jb7T6DuNvtPoO42+0+g7jb7T6DuNvtPoD0CjP5ohMDu4t4N7O7i3g3s7uLeDezu4t4N7O7i3
g3s7uLeDezu4t4N7O7i3g3s7uLeDezu4t4N7O7i3g3s7uLeDezu4t4N79wnuPdhG2V1Bc5cZZ3v7
TOLPTn19O+z15KzWr09fv37n/fxgEMSHNDjfVFt9xc/kEr7dh5gU/cPN5AuR8Nv/cCfjpX/q9zx9
/TgmdF9RhP7T45YfxD798psvHvodfHBv/S2KsS93Xbjh5ID7qvf6F+5vXry7gn7Hcv/KKW5vCpeT
R/bOPD4r++F7/FjP9lu5OF7FOP8zSfEYv11XD+yb3VH93BfzMXgcrhu+1717uf1BLle9rftQxrnc
6uu6XAdiipiliFmKmKWIWYqYpYhZipiliFmKmKWIWYqYpYhZipiliFmKmKWIWYqYpYhZipiliFmK
mKWIWYqYpYhZipiliFmKmKWIWYqYpYhZipiliFmKmKWIWYqYpYhZipiliFmKmKWIWYqYpYhZipil
iFmKmKWIWYqYpYhZipiliFmKmKWIWYqYpYhZipiliFmKmKWIWYqYpYhZipiliFmKmKWIWYqYpYhZ
ipiliFmKmKWIWYqYpYhZipiliFmKmKWIWYqYpYhZipiliFmKmKWIWYqYpYhZipiliFmKmKWIWYqY
pYhZipiliFmKmKWIWYqYpYhZipiliFmKmKWIWYqYpYhZipiliFmKmKWIWYqYpYhZipiliFmKmKWI
WYqYpYhZipiliFmKmKWIWYqYpYhZipiliFmKmKWIWYqYpYhZipiliFmKmKWIWYqYpYhZipiliFmK
mKWIWYqYpYhZipiliFmKmKWIWYqYpYhZipiliFmKmKWIWYqYpYhZipiliFmKmKWIWYqYpYhZipil
iFmKmKWIWYqYpYhZipiliFmKmKWIWYqYpYhZipiliFmKmKWIWYqYpYhZipiliFmKmKWIWYqYpYhZ
ipiliFmKmKWIWYqYpYhZipiliFmKmKWIWYqYpYhZipiliFmKmKWIWYqYpYhZipjlakZJcqUkV0py
pSRXSnKlJFdKcqUkV0pypSRXSnKlJFdKcqUkV0pypSRXSnKlJFdKcqUkV0pypSRXSnKlJFdKcqUk
V0pypSRXSnKlJFdKcqUkV0pypSRXSnKlJFdKcqUkV0pypSRXSnKlJFdKcqUkV0pypSRXSnKlJFdK
cqUkV0pypSRXSnKlJFdKcqUkV0pypSRXSnKlJFdKcqUkV0pypSRXSnKlJFdKcqUkV0pypSRXSnKl
JFdKcqUkV0pypSRXSnKlJFdKcqUkV0pypSRXSnKlJFdKcqUkV0pypSRXSnKlJFdKcqUkV0pypSRX
SnKlJFdKcqUkV0pypSRXSnKlJFdKcqUkV0pypSRXSnKlJFdKcqUkV0pypSRXSnKlJFdKcqUkV0py
pSRXSnKlJFdKcqUkV0pypSRXSnKlJFdKcqUkV0pypSRXSnKlJFdKcqUkV0pypSRXSnKlJFdKcqUk
V0pypSRXSnKlJFdKcqUkV0pypSRXSnKlJFdKcqUkV0pypSRXSnKlJFdKcqUkV0pypSRXSnKlJFdK
cqUkV0pypSRXSnKlJFdKcqUkV0pypSRXSnKlJFdKcqUkV0pypSRXSnKlJFdKcqUkV0pypSRXSnKl
JFdKcqUkV0pypSRXSnKlJFdKcqUkV0pypSRXSnKlJFdKcuW4o9EBv+qoj7QdP23HT9vx03b8tB0/
bcdP2/HTdvy0HT9tx0/b8dN2/LQdP23HT9vx03b8tB0/bcdP2/HTdvy0HT9tx0/b8dN2/LQdP23H
T9vx03b8tB0/bcdP2/HTdvy0HT9tx0/b8dN2/LQdP23HT9vx03b8tB0/bcdP2/HTdvy0HT9tx0/b
8dN2/LQdP23HT9vx03b8tB0/bcdP2/HTdvy0HT9tx0/b8dN2/LQdP23HT9vx03b8tB0/bcdP2/HT
dvyyHb9sxy/b8ct2/LIdv2zHL9vxy3b8sh2/bMcv2/HLdvyyHb9sxy/b8ct2/LIdv2zHL9vxy3b8
sh2/bMcv2/HLdvyyHb9sxy/b8ct2/LIdv2zHL9vxS2SszKgyo8qMKjOqzKgyo8qMKjOqzKgyo8qM
KjOqzKgyo8qMKjOqzKgyo8qMKjOqzKgyo8qMKjOqzKgyo8qMKjOqzKgyo8qMKjOqzKgyo8qMKjOq
zKgyo8qMKjOqzKgyo8qMKjOqzKgyo8qMKjOqzKgyo8qMKjOqzKgyo8qMKjOqzKgyo8qMKjOqzKgy
o8qMKjOqzKgyo8qMKjOqzag2o9qMajOqzag2o9qMajOqzag2o9qMajOqzag2o9qMajOqzag2o9qM
ajOqzag2o9qMajOqzag2o9qMajOqzag2o9qMajPKWV/hrK9w1lc46yuc9RXO+gpnfYWzvsJZX+Gs
r3DWVzjrK5z1Fc76Cmd9hbO+wllf4ayvcNZXOOsrnPUVzvoKZ32Fs77CWV/hrK9w1lc46yuc9RXO
+gpnfYWzvsJZX+Gsr3DWVzjrK5z1Fc76Cmd9hbO+wllf4ayvcNZXOOsrnPUVzvoKZ32Fs77CWV/h
rK9w1lc46yuc9RXO+gpnfYWzvsJZX+Gsr3DWVzjrK5z1Fc76Cmd9hbO+wllf4ayvcNZXOOsrnPUV
zvoKZ32Fs77CWV/hrK9w1lc46yuc9RXO+gpnfYWzvsJZX+Gsr3DWVzjrK5z1Fc76Cmd9hbO+wllf
4ayvcNZXOOsrnPUVzvoKZ32Fs77CWV/hrK9w1lc46yuc9RXO+gpnfYWzvsJZX+Gsr3DWVzjrK5z1
Fc76Cmd9hbO+wllf4ayvcNZXOOsrnPUVzvoKZ32Fs77CWV/hrK9w1lc46yuc9RXO+gpnfYWzvsJZ
X+Gsr3DWVzjrK5z1Fc76Cmd9hbO+wllf4ayvcNZXOOsrnPUVzvoKZ32Fs77CWV/hrK9w1lc46yuc
9RXO+gpnfYWzvsJZX+Gsr3DWVzjrK5z1Fc76Cmd9hbO+wllf4ayvcNZXOOsrnPUVzvoKZ32Fs77S
WV/prK901lc66yud9ZXO+kpnfaWzvtJZX+msr3TWVzrrK531lc76Smd9pbO+0llf6ayvdNZXOusr
nfWVzvpKZ32ls77SWV/prK901lc66yud9ZXO+kpnfeXxHW18XZ10vG8e8BEBd1chYy8N213a0HD7
YOStvZ57ndj+c7DspTwuv1ug/dbe21u1uvzc77ulgRk7rrrjqjuuuuOqO66646o7rrrjqjuuuuOq
O66646o7rrrjqjuuuuOqO66646o7rrrjqjuuuuOqO66646o7rrrjqrePqz7eyfI73rrjrTveuuOt
O96646073rrjrTveuuOtO96646073rrjrTveuuOtO96646073rrjrTveuuOtO96646073rrjrXeI
tz7sZPn7mGT9IQ5Dff71yRenr//tycnTv3/x6uwl3/p06u/elZ/8VR/W+OVfnsn560PF7wb5vFxV
l51nf0Wg+M23L08f4lX/SjWXfbXXBdfvj6//cGbSXoomv/cJwJdn9m8yePn2vwKXhKCHjZHDxshh
Y+SwMXLYGDlsjBw2Rg4bI4eNkcPGyGFj5LAxctgYOWyMHDZGDhsjh42Rw8bIYWPksDFy2Bg5bIwc
NkYOGyOHjZHDxshhY+SwMXLYGDlsjBw2Rg4bI4eNkcPGyGFj5LAxctgYOWyMHDZGDhsjh42Rw8bI
YWPksDFy2Bg5bIwcNkYOGyOHjZHDxshhY+SwMXLYGDlsjBw2Rg4bI4eNkcPGyGFj5LAxctgYOWyM
HDZGDhsjh42Rw8bIYWPk8HkvfN4Ln/fC573weS983guf98LnvfB5L3zeC5/3wue98HkvfN4Ln/fC
573weS983guf98LnvfB5L3zeC5/3wue98HkvfN4Ln/fC573weS983guf98LnvbB5P8yoMKPCjAoz
KsyoMKPCjAozKsyoMKPCjAozKsyoMKPCjAozKsyoMKPCjAozKsyoMKPCjAozKsyoMKPCjAozKsyo
MKPCjAozKsyoMKPCjAozKsyoMKPCjAozKsyoMKPCjAozKsyoMKPCjAozKsyoMKPCjAozKsyoMKPC
jAozKsyoMKPCjAozKsyoMKPCjAozKsyoMKPCjAozKs2oNKPSjEozKs2oNKPSjEozKs2oNKPSjEoz
Ks2oNKPSjEozKs2oNKPSjEozKs2oNKPSjEozKs2oNKPSjEozKs2oNKPSjEozyh75tEc+7ZFPe+TT
Hvm0Rz7tkU975NMe+bRHPu2RT3vk0x75tEc+7ZFPe+TTHvm0Rz7tkU975NMe+bRHPu2RT3vk0x75
tEc+7ZFPe+TTHvm0Rz7tkU975NMe+bRHPu2RT3vk0x75tEc+7ZFPe+TTHvm0Rz7tkU975NMe+bRH
Pu2RT3vk0x75tEc+7ZFPe+TTHvm0Rz7tkU975NMe+bRHPu2RT3vk0x75tEc+7ZFPe+TTHvm0Rz7t
kU975NMe+bRHPu2RT3vk0x75tEc+7ZFPe+TTHvm0Rz7tkU975NMe+bRHPu2RT3vk0x75tEc+7ZFP
e+TTHvm0Rz7tkU975NMe+bRHPu2RT3vk0x75tEc+7ZFPe+TTHvm0Rz7tkU975NMe+bRHPu2RT3vk
0x75tEc+7ZFPe+TTHvm0Rz7tkU975NMe+bRHPu2RT3vk0x75tEc+7ZFPe+TTHvm0Rz7tkU975NMe
+bRHPu2RT3vk0x75tEc+7ZFPe+TTHvm0Rz7tkU975NMe+bRHPu2RT3vk0x75tEc+7ZFPe+TTHvm0
Rz7tkU975NMe+bRHPu2RT3vk0x75tEc+7ZFPe+TTHvm0Rz7tkU975NMe+bRHPu2RT3vk0x75tEc+
7ZFPe+TTHvm0Rz7tkU975NMe+bRHPu2RT3vk0x75tEc+7ZFPe+TTHvm0Rz7tkU975NMe+bRHPu2R
T3vk0x75tEc+7ZFPe+TTHvm0Rz7tkc/+FXX55QjltLM+7axPO+vTzvq0sz7trE8769PO+rSzPu2s
Tzvr0876tLM+7axPO+vTzvq0sz7trE8769PO+rSzPu2sTzvr0876tLM+7axPO+vTzvq0sz7trE87
69PO+rSzPu2sTzvr0876tLM+7axPO+vTzvq0sz7trE8769PO+rSzPu2sTzvr0876tLM+7axPO+vT
zvq0sz7trE8769PO+rSzPu2sTzvr0876tLM+7axPO+vTzvq0sz7trE8769PO+rSzPu2sTzvr0876
tLM+7axPO+vTzvq0sz7trE8769PO+rSzPu2sTzvr0876tLM+7axPO+vTzvq0sz7trE8769PO+rSz
Pu2sTzvr0876tLM+7axPO+vTzvq0sz7trE8769PO+rSzPu2sTzvr0876tLM+7axPO+vTzvq0sz7t
rE8769PO+rSzPu2sTzvr0876tLM+7axPO+vTzvq0sz7trE8769PO+rSzPu2sTzvr0876tLM+7axP
O+vTzvq0sz7trE8769PO+rSzPu2sTzvr0876tLM+7axPO+vTzvq0sz7trE8769PO+rSzPu2sTzvr
0876tLM+7axPO+vTzvq0sz7trE8769PO+rSzPu2sTzvr0876srO+7KwvO+vLzvqys77srC8768vO
+rKzvuysLzvry876srO+7KwvO+vLzvqys77srC8768vO+rKzvuysLzvry876srO+7KwvO+vLzvqy
s77srC876+t4s9LNSjcr3ax0s9LNSjcr3ax0s9JhpcNKh5UOKx1WOqx0WOmw0mGlw0rDSsNKw0rD
SsNKw0rDSsNKw0rDStNK00rTStNK00rTStNK00rTStNKy0rLSstKy0rLSstKy0rLSstKy0rbSttK
20rbSttK20rbSttK20rbSqeVTiudVjqtdFrptNJppdNKp5WaUY5EKUeilCNRypEo5UiUciRKORKl
HIlSjkQpR6KUI1HKkSjlSJRyJEo5EqUciVKORClHopQjUcqRKOVIlHIkSjkSpRyJUo5EKUeilCNR
ypEo5UiUciRKORKlHIlSjkQpR6KUI1HKkSjlSJRyJEo5EqUciVKORClHopQjUcqRKOVIlHIkSjkS
pRyJUo5EKUeilCNRypEo5UiUciRKORKlHIlSjkQpR6KUI1HKkSjlSJRyJEo5EqUciVKORClHopQj
UcqRKOVIlHIkSjkSpRyJUo5EKUeilCNRypEo5UiUciRKORKlHIlSjkQpR6KUI1HKkSjlSJRyJEo5
EqUciVKORClHopQjUcqRKOVIlHIkSjkSpRyJUo5EKUeilCNRypEo5UiUciRKORKlHIlSjkQpR6KU
I1HKkSjlSJRyJEo5EqUciVKORClHopQjUcqRKOVIlHIkSjkSpRyJUo5EKUeilCNRypEo5UiUciRK
ORKlHIlSjkQpR6KUI1Fqvf0BvFcc1fkLVNklUMb7GxB839N+f+otvDEM/OLpm5Ovbp/Ye/TDjL+j
Y++Z0LyVau7uJLgmGf2TFTz//NXJ16ffV/Dm5PWXf3z57b8/f/anfNrPTjKeHa1P4/RojNPPj548
OX5y9KSfzB7z5OTJMi97cv312zdfvvjmb09fPX/55va+Q79QfM2TWJ+d9tE4XMQP/1OnR3N99uTw
jp8+Xfu04vM+vbviH/916hYT4i7Oq5toFvjVT1+9eP36sxevnn/x/JvPXp68Ohw7+eK2v8g3PBMf
08u9Pc79kvcLNyjrBmqAWy1ubxjaG4b2hqG9YWhvGNobhvaGob1haG8Y2huG9oahvWFobxjaG4b2
hqG9YWhvGNobhvaGob1haG8Y2huG9oahvWFobxjaG4YeoGHo8Y00uANl+YN0/NzHuIbbnvDwH/c2
4OH71pXb7gr71R3YXTy+i8d38fguHt/F47t4fBeP7+LxXTy+i8d38fguHt/F47t4fBeP7+LxXTy+
i8d38fguHt/F47t4fBeP7+LxXTy+i8fvUDz+sDuw1xhJ/J/Pv/rq7Vjikze/Njb7dlHN+9p0vC3u
9b7qvUO3wMtvvrhzF8bPELjfv/lvD//n8zdfXgC5f3z9jyfnG7rn//6nNyevvjj9MbP7j1dfHZ0f
flySjJ/pCnis34DbuDxc003xa+6Ni9/x64PLr6ixudXz7oEh9Du7KPyG2kRudtpd9uS+aqfTb76z
50F6sq7eOnZv3V93ZrW4/IX6mp/Xr7feXfXC++vX1X//5uTr0z8dqv/H6T3KrB7n+3+J78vljCS1
SimsUgqrlMIqpbBKKaxSCquUwiqlsEoprFIKq5TCKqWwSimsUgqrlMIqpbBKKaxSCquUwiqlsEop
rFIKq5TCKqWwSimsUgqrlMIqpbBKKaxSCquUwiqlsEoprFIKq5TCKqWwSimsUgqrlMIqpbBKKaxS
CquUwiqlsEoprFIKq5TCKqWwSimsUgqrlMIqpbBKKaxSCquUwiqlsEoprFIKq5TCKqWwSimsUgqr
lMIqpbBKKaxSCquUwiqlsEkpbFIKm5TCJqWwSSlsUgqblMImpbBJKWxSCpuUwialsEkpbFIKm5TC
JqWwSSlsUgqblMImpbBJKWxSCpuUwialsEkpbFIKm5TCJqWwSSlsUgqblMImSbeZUZsZtZlRmxm1
mVGbGbWZUZsZtZlRmxm1mVGbGbWZUZsZtZlRmxm1mVGbGbWZUZsZtZlRmxm1mVGbGbWZUZsZtZlR
mxm1mVGbGbWZUZsZtZlRmxm1mVGbGbWZUZsZtZlRmxm1mVGbGbWZUZsZtZlRmxm1mVGbGbWZUZsZ
tZlRmxm1mVGbGbWZUZsZtZlRmxm1mVGbGbWZUZsZtZlRmxm1mVGbGbWZUZsZNcyoYUYNM2qYUcOM
GmbUMKOGGTXMqGFGDTNqmFHDjBpm1DCjhhk1zKhhRg0zaphRw4waZtQwo4YZNcyoYUYNM2qYUcOM
GmbUMKOGGSVXVHJFJVdUckUlV1RyRSVXVHJFJVdUckUlV1RyRSVXVHJFJVdUckUlV1RyRSVXVHJF
JVdUckUlV1RyRSVXVHJFJVdUckUlV1RyRSVXVHJFJVdUckUlV1RyRSVXVHJFJVdUckUlV1RyRSVX
VHJFJVdUckUlV1RyRSVXVHJFJVdUckUlV1RyRSVXVHJFJVdUckUlV1RyRSVXVHJFJVdUckUlV1Ry
RSVXVHJFJVdUckUlV1RyRSVXVHJFJVdUckUlV1RyRSVXVHJFJVdUckUlV1RyRSVXVHJFJVdUckUl
V1RyRSVXVHJFJVdUckUlV1RyRSVXVHJFJVdUckUlV1RyRSVXVHJFJVdUckUlV1RyRSVXVHJFJVdU
ckUlV1RyRSVXVHJFJVdUckUlV1RyRSVXVHJFJVdUckUlV1RyRSVXVHJFJVdUckUlV1RyRSVXVHJF
JVdUckUlV1RyRSVXVHJFJVdUckUlV1RyRSVXVHJFJVdUckUlV1RyRSVXVHJFJVdUckUlV1RyRSVX
VHJFJVdUckUlV1RyRSVXVHJFJVdUckUlV1RyRSVXVHJFJVdUckUlV1RyRSVXVHJFJVdUckUlV1Ry
RSVXVHJFJVdUckUlV1RyRSVXVHJFJVdUckUlV1RyRSVXVHJFJVdUckUlV1RyRSVXVHn7I4xuuH37
8+6IknkqmaeSeSqZp5J5KpmnknkqmaeSeSqZp5J5KpmnknkqmaeSeSqZp5J5KpmnknkqmaeSeSqZ
p5J5KpmnknkqmaeSeSqZp5J5KpmnknkqmaeSeSqZp5J5KpmnknkqmaeSeSqZp5J5KpmnknkqmaeS
eSqZp5J5KpmnknkqmaeSeSqZp5J5KpmnknkqmaeSeSqZp5J5KpmnknkqmaeSeSqZp5J5Kpmnknkq
maeSeSqZp5J5KpmnknkqmaeSeSqZp5J5KpmnknkqmaeSeSqZp5J5KpmnknkqmaeSeSqZp5J5Kpmn
knkqmaeSeSqZp5J5KpmnknkqmaeSeSqZp5J5KpmnknkqmaeSeSqZp5J5KpmnknkqmaeSeSqZp5J5
KpmnknkqmaeSeSqZp5J5KpmnknkqmaeSeSqZp5J5KpmnknkqmaeSeSqZp5J5KpmnknkqmaeSeSqZ
p5J5KpmnknkqmaeSeSqZp5J5KpmnknkqmaeSeSqZp5J5KpmnknkqmaeSeSqZp5J5KpmnknkqmaeS
eSqZp5J5KpmnknkqmaeSeSqZp5J5KpmnknkqmaeSeSqZp5J5KpmnknkqmaeSeSqZp5J5Kpmnknkq
maeSeSqZp5J5KpmnknkqmaeSeSqZp5J5KpmnknkqmaeSeSqZp5J5KpmnknmqNqOcglZOQSunoJVT
0MopaOUUtHIKWjkFrZyCVk5BK6eglVPQyilo5RS0cgpaOQWtnIJWTkErp6CVU9DKKWjlFLRyClo5
Ba2cglZOQSunoJVT0MopaOUUtHIKWjkFrZyCVk5BK6eglVPQyilo5RS0cgpaOQWtnIJWTkErp6CV
U9DKKWjlFLRyClo5Ba2cglZOQSunoJVT0MopaOUUtHIKWjkFrZyCVk5BK6eglVPQyilo5RS0cgpa
OQWtnIJWTkErp6CVU9DKKWjlFLRyClo5Ba2cglZOQSunoJVT0MopaOUUtHIKWjkFrZyCVk5BK6eg
lVPQyilo5RS0cgpaOQWtnIJWTkErp6CVU9DKKWjlFLRyClo5Ba2cglZOQSunoJVT0MopaOUUtHIK
WjkFrZyCVk5BK6eglVPQyilo5RS0cgpaOQWtnIJWTkErp6CVU9DKKWjlFLRyClo5Ba2cglZOQSun
oJVT0MopaOUUtHIKWjkFrZyCVk5BK6eglVPQyilo5RS0cgpaOQWtnIJWTkErp6CVU9DKKWjlFLRy
Clo5Ba2cglZOQSunoJVT0MopaOUUtHIKWjkFrZyCVk5BK6eglVPQyilo5RS0cgpaOQWtnIJWTkEr
p6CVU9DKKWjlFLRyClo5Ba2dgtZOQWunoLVT0NopaO0UtHYKWjsFrZ2C1k5Ba6egtVPQ2ilo7RS0
dgpaOwWtnYLWTkFrp6C1U9DaKWjtFLR2Clo7Ba2dgtZOQWunoLVT0NopaO0UtHYKWh//yl7ZBwac
3zOFf2t036UY4ftHl2+Dq7wZun6rFP2DjIO/+Uf7tqrnX598cSjpycnTv3/x6uyzvnWnxndvwE/+
qsdqlthp1J1G3WnUnUbdadSdRt1p1J1G3WnUnUbdadSdRt1p1J1G3WnUnUbdadSdRt1p1J1G3WnU
nUbdadSdRt1p1J1GfQAa9cGmM1x+jPmOou4o6o6i7ijqjqLuKOqOou4o6o6i7ijqjqLuKOqOou4o
6o6i7ijqjqLuKOqOou4o6o6i7ijqjqLuKOqOou4o6u2jqI91jPk1ocTHAWz+apkPM1/4ll/LHc3y
/OUqzzdRf0x33v6o8Dv45B+A0L3hrPCffauvORn85qzqN199+/rlydPT+/vAb7nmy75z1xzYe49z
mW/9i/1r3PbXh5dy8sUdfPTX/55/8+LdN++Sk+xvzV/ws1/NB0Hur1fNbTvevyPQD3c23nJt3nJt
3nJt3nJt3nJt3nJt3nJt3nINb7mGN4fDSoeVDisdVjqsdFjpsNJhpWGlYaVhpWGlYaVhpWGlYaVh
pWGlaaVppWmlaaVppWmlaaVppWmlaaVlpWWlZaVlpWWlZaVlpWWlZaVlpW2lbaVtpW2lbaVtpW2l
baVtpW2l00qnlU4rnVY6rXRa6bTSaaXTSn3YXnzYXnzYXnzYXnzYXnzYXnzYXnzYXnzYXnzYXnzY
XnzYXnzYXnzYXnzYXnzYXnzYXnzYXnzYXnzYXnzYXnzYXnzYXnzYXnzYXnzYXnzYXnzYXnzYXnzY
XnzYXnzYXjYrNaMWM2oxoxYzajGjFjNqMaMWM2oxoxYzajGjFjNqMaMWM2oxoxYzajGjFjNqMaMW
M2oxoxYzajGjFjNqMaMWM2oxoxYzajGjFjNqMaMWM2oxoxYzajGjFjNqMaMWM2oxoxYzajGjFjNq
MaMWM2oxoxYzajGjFjNqMaMWM2oxoxYzajGjFjNqMaMWM2oxoxYzajGjFjNqMaMWM2oxoxYzajGj
FjNqMaMWM2o1o1YzajWjVjNqNaNWM2o1o1YzajWjVjNqNaNWM2o1o1YzajWjVjNqNaNWM2o1o1Yz
ajWjVjNqNaNWM2o1o1YzajWjVjNqNaNWM2o1o1YzSpNXa/JqTV6tyas1ebUmr9bk1Zq8WpNXa/Jq
TV6tyas1ebUmr9bk1Zq8WpNXa/JqTV6tyas1ebUmr9bk1Zq8WpNXa/JqTV6tyas1ebUmr9bk1Zq8
WpNXa/JqTV6tyas1ebUmr9bk1Zq8WpNXa/JqTV6tyas1ebUmr9bk1Zq8WpNXa/JqTV6tyas1ebUm
r9bk1Zq8WpNXa/JqTV6tyas1ebUmr9bk1Zq8WpNXa/JqTV6tyas1ebUmr9bk1Zq8WpNXa/JqTV6t
yas1ebUmr9bk1Zq8WpNXa/JqTV6tyas1ebUmr9bk1Zq8WpNXa/JqTV6tyas1ebUmr9bk1Zq8WpNX
a/JqTV6tyas1ebUmr9bk1Zq8WpNXa/JqTV6tyas1ebUmr9bk1Zq8WpNXa/JqTV6tyas1ebUmr9bk
1Zq8WpNXa/JqTV6tyas1ebUmr9bk1Zq8WpNXa/JqTV6tyas1ebUmr9bk1Zq8WpNXa/JqTV6tyas1
ebUmr9bk1Zq8WpNXa/JqTV6tyas1ebUmr9bk1Zq8WpNXa/JqTV6tyas1ebUmr9bk1Zq8WpNXa/Jq
TV6tyas1ebUmr9bk1Zq8WpNXa/JqTV6tyas1ebUmr9bk1Zq8WpNXa/JqTV6tyas1ebUmr9bk1Zq8
WpNXa/JqTV6tyas1ebUmr9bk1Zq8WpNXa/JqTV6tyas1ebUmr9bk1eOyjvdb2Qu97Jbyr/LorXCs
FY61wrFWONYKx1rhWCsca4VjrXCsFY61wrFWONYKx1rhWCsca4VjrXCsFY61wrFWONYKx1rhWCsc
a4VjrXCsFY61wrFWONYKx1rhWCsca4VjrXCsFY61wrFWONYKx1rhWCsca4VjrXCsFY61wrFWONYK
x1rhWCsca4VjrXCsFY61wrFWONYKx1rhWCsca4VjrXCsFY61wrFWONYKx1rhWCsca4VjrXCsFY61
wrFWONYKx1rhWCsca4VjrXCsFY61wrFWONYKx1rhWCsca4VjrXCsFY61wrFWONYKx1rhWCsca4Vj
rXCsFY61wrFWONYKx1rhWCsca4VjrXCsFY61wrFWONYKx1rhWCsca4VjrXCsFY61wrFWONYKx1rh
WCsca4VjrXCsFY61wrFWONYKx1rhWCsca4VjrXCsFY61wrFWONYKx1rhWCsca4VjrXCsFY61wrFW
ONYKx1rhWCsca4VjrXCsFY61wrFWONYKx1rhWCsca4VjrXCsFY61wrFWONYKx1rhWCsca4VjrXCs
FY61wrFWONYKx1rhWCsca4VjrXCsFY61wrFWONYKx1rhWCsca4VjrXCsFY61wrFWONYKx1rhWCsc
a4VjrXCsFY61wrFWONYKx1rhWCsca4VjrXCsFY61wrFWONYKx1rhWCsca4VjrXCsFY61wrFWONYK
x1rhWCsc6zSj9Hq1Xq/W69V6vVqvV+v1ar1erder9Xq1Xq/W69V6vVqvV+v1ar1erder9Xq1Xq/W
69V6vVqvV+v1ar1erder9Xq1Xq/W69V6vVqvV+v1ar1erder9Xq1Xq/W69V6vVqvV+v1ar1erder
9Xq1Xq/W69V6vVqvV+v1ar1erder9Xq1Xq/W69V6vVqvV+v1ar1erder9Xq1Xq/W69V6vVqvV+v1
ar1erder9Xq1Xq/W69V6vVqvV+v1ar1erder9Xq1Xq/W69V6vVqvV+v1ar1erder9Xq1Xq/W69V6
vVqvV+v1ar1erder9Xq1Xq/W69V6vVqvV+v1ar1erder9Xq1Xq/W69V6vVqvV+v1ar1erder9Xq1
Xq/W69V6vVqvV+v1ar1erder9Xq1Xq/W69V6vVqvV+v1ar1erder9Xq1Xq/W69V6vVqvV+v1ar1e
rder9Xq1Xq/W69V6vVqvV+v1ar1erder9Xq1Xq/W69V6vVqvV+v1ar1erder9Xq1Xq/W69V6vVqv
V+v1ar1erder9Xq1Xq/W69V6vVqvV+v1ar1erder9Xq1Xq/W69V6vVqvV+v1ar1erder9Xq1Xq/W
69V6vVqvV+v1ar1erder9Xq1Xq/W69V6vVqvV+v1ar1erder9Xq1Xq/W69V6vVqvV+v1ar1erder
9Xq1Xq/W69V6vVqvV+v1ar1e3TfeNrs8q/cw/PU9Ypb3DJD+7Mjqa/2lp69f3znheYtg720PBn7U
p8mt/qZLnFm3y6zeMs59ZxPCbwgKfygv86GH3F/+VV76EvL881cnX59+//vfnLz+8o8vv/3358/+
lE/72UnGs6P1aZwejXH6+dGTJ8dPjp70k9ljnpw8WeaDGgruc+z45d/6Xzxb/uO3erLUPIn12Wkf
jXVdD/9Tp0dzffbkUPLp07VPKz7v0/s0DlylJemOJDQ/voW7lH7mrowHt/Zu/Pjq+ddv33z54pu/
PX31/OWbK2b+Df7qPRhxfvaju1UXzo9/y7XsN3dxTb/JFYpf/fTVi9evP3vx6vkXz7/57OXJq8Ox
S51mvzqVZpdn7PKMXZ6xyzN2ecYuz9jlGbs8Y5dn7PKMXZ6xyzN2ecYuz9jlGbs8Y5dn7PKMXZ6x
yzN2ecYuz9jlGbs8Y5dn7PKMO5RnPNhUmtvaF7zM9v2HsC+420F2O8huB9ntILsdZLeD7HaQ3Q6y
20F2O8huB9ntILsdZLeD7HaQ3Q6y20F2O8huB9ntILsdZLeD7HaQ3Q6y20F2O8gd2kEebF/w3lwV
vxE2/ueGgz/98vTp35+8+NfR06+eP/370ek/Dwdf3/5M91+nVS9b1mXHKzz/+uSL09f/9uTk6d+/
eHVW8K1rQb57TT/5qx7reXEjo8y96Eke0NNx9dPxcrv5t0y730px15548vzNtw9xgbhERZe9NlzZ
KvUQr/cXa7nsK338PqFH8W2/xLl1CwN9pgjKFEGZIihTBGWKoEwRlCmCMkVQpgjKFEGZIihTBGWK
oEwRlCmCMkVQpgjKFEGZIihTBGWKoEwRlCmCMkVQpgjKFEGZIihTBGWKoEwRlCmCMkVQpgjKFEGZ
IihTBGWKoEwRlCmCMkVQpgjKFEGZIihTBGWKoEwRlCmCMkVQpgjKFEGZIihTBGWKoEwRlCmCMkVQ
pgjKFEGZIihTBGWKoEwRlCmCMkVQpgjKFEGZIihTBGWKoEwRlCmCMkVQpgjKFEGZIihTBGWKoEwR
lCmCMkVQpgjKFEGZIihTBGWKoEwRlCmCMkVQpgjKFEGZIihTBGWKoEwRlCmCMkVQpgjKFEGZIihT
BGWKoEwRlCmCMkVQpgjKFEGZIihTBGWKoEwRlCmCMkVQpgjKFEGZIihTBGWKoEwRlCmCMkVQpgjK
FEGZIihTBGWKoEwRlCmCMkVQpgjKFEGZIihTBGWKoEwRlCmCMkVQpgjKFEGZIihTBGWKoEwRlCmC
MkVQpgjKFEGZIihTBGWKoEwRlCmCMkVQpgjKFEGZIihTBGWKoEwRlCmCMkVQpgjKFEGZIihTBGWK
oEwRlCmCMkVQpgjKFEGZIihTBGWKoEwRlCmCMkVQpgjKFEGZIihTBGWKoEwRlCmCMkVQpgjKFEGZ
IihTBGWKoEwRlCmCMkVQpgjKFEGZIihTBGWKoEwRlCmCMocZJfowRR+m6MMUfZiiD1P0YYo+TNGH
KfowRR+m6MMUfZiiD1P0YYo+TNGHKfowRR+m6MMUfZiiD1P0YYo+TNGHKfowRR+m6MMUfZiiD1P0
YYo+TNGHKfowRR+m6MMUfZiiD1P0YYo+TNGHKfowRR+m6MMUfZiiD1P0YYo+TNGHKfowRR+m6MMU
fZiiD1P0YYo+TNGHKfowRR+m6MMUfZiiD1P0YYo+TNGHKfowRR+m6MMUfZiiD1P0YYo+TNGHKfow
RR+m6MMUfZiiD1P0YYo+TNGHKfowRR+m6MMUfZiiD1P0YYo+TNGHKfowRR+m6MMUfZiiD1P0YYo+
TNGHKfowRR+m6MMUfZiiD1P0YYo+TNGHKfowRR+m6MMUfZiiD1P0YYo+TNGHKfowRR+m6MMUfZii
D1P0YYo+TNGHKfowRR+m6MMUfZiiD1P0YYo+TNGHKfowRR+m6MMUfZiiD1P0YYo+TNGHKfowRR+m
6MMUfZiiD1P0YYo+TNGHKfowRR+m6MMUfZiiD1P0YYo+TNGHKfowRR+m6MMUfZiiD1P0YYo+TNGH
KfowRR+m6MMUfZiiD1P0YYo+TNGHKfowRR+m6MMUfZiiD1P0YYo+TNGHKfowRR+m6MMUfZiiD1P0
YYo+TNGHKfowRR+m6MMUfZiiD1P0YYo+TNGHKfowRR+m6MMUfZiiD1P0YYo+zPyVgT6XFFK3zaht
M2rbjNo2o7bNqG0zatuM2jajts2obTNq24zaNqO2zahtM2rbjNo2o7bNqG0zatuM2jajts2obTNq
24zaNqO2zahtM2rbjNo2o7bNqG0zatuM2v9/9v6suZEkydJA/8q8ZMu9IpdZNDM1N9OHkhJsPt3T
W00vMz31ksIFGckqBhlNMjIz8tdfkAaNCPtiww4n00QqCwRIBo87HOe4qek5ymbUzGbUzGbUzGbU
zGbUzGbUzGbUzGbUzGbUzGbUzGbUzGbUzGbUzGbUzGbUzGbUzGbUzGbUzGbUzGbUzGbUzGbUzGbU
zGbUzGbUzGbUzGbUzGbUzGbUzGbUzGbUzGbUzGbUzGbUzGbUzGbUzGZUZTOqshlV2YyqbEZVNqMq
m1GVzajKZlRlM6qyGVXZjKpsRlU2oyqbUZXNqMpmVGUzqrIZVdmMqmxGVTajKptRlc2oymZUZTOq
shlV2YyqbEZVNqMqm1GVzahKw4RSo5QapdQopUYpNUqpUUqNUmqUUqOUGqXUKKVGKTVKqVFKjVJq
lFKjlBql1CilRik1SqlRSo1SapRSo5QapdQopUYpNUqpUUqNUmqUUqOUGqXUKKVGKTVKqVFKjVJq
lFKjlBql1CilRik1SqlRSo1SapRSo5QapdQopUYpNUqpUUqNUmqUUqOUGqXUKKVGKTVKqVFKjVJq
lFKjlBql1Cjl6uuUq69Trr5Oufo65errlKuvU66+Trn6OuXq65Srr1Ouvk65+jrl6uuUq69Trr5O
ufo65errlKuvU66+Trn6OuXq65Srr1Ouvk65+jrl6uuUq69Trr5Oufo65errlKuvU66+Trn6OmWF
kIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9
lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9
lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9
lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9
lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9
lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9
lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9
lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9
lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9
lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9
lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN9lIN91H9jF+sII4ZX94jt2v37Zr44wJuH3fsTd2oD3NBY
vB/34IEdyft8x7f2u37eSPyNq2lfH7CvGl7XGNp9JA/p5vA3DUdY9RpYPVS+OVSbQ7U5VJtDtTlU
m0O1OVSbQ7U5VJtDtTlUm0O1OVSbQ7U5VJtDtTlUm0O1OVSbQ7U5VJtDtTlUm0O1OVSbQ3X3DtXj
D5tuJthmgm0m2GaCbSbYZoJtJthmgm0m2GaCbSbYZoJtJthmgm0m2GaCbSbYZoJtJthmgm0m2GaC
bSbYZoJtJthmgj2CCfa405dfpNXzmRzZoQbeHsF7ueuxuFvMEv/mO772APJdvW87tRHv+v3dq+95
b1O8d3IxHu592WRY8i9X19dPgQVnD/M9jjT+wqfiJVzaXz3GAV4le48hOOCk+60Peu2Pxz7mib99
uF1cO2+u59/8CK5o2e9YnehYnehYnehYnehYnehYnehYnehYnehYnehYnehYnehYnehYnehYnehY
nehYnehYnehYnehYnehYnehYnehYnehYnehYnehYnehYnehYnehYnehYnehYnehYnehYnehYnehY
nehYnehYnehYnehYnehYnehYnehYnehYnehYnehYnehYnehYnehYnehYnehYnehYnehYnehYnehY
nehYnehYnehYnehYnehYnehYnehYnehYnehYnehYnehYnehYnehYnehYnehYnUisTiRWJxKrE4nV
icTqRGJ1IrE6kVidSKxOJFYnEqsTidWJxOpEYnUisTqRWJ1IrE4kVicSqxOJ1YnE6kRidSKxOpFY
nUisTiRWJxKrE4nVicTqRGJ1IrE6kVhBT9SoRI1K1KhEjUrUqESNStSoRI1K1KhEjUrUqESNStSo
RI1K1KhEjUrUqESNStSoRI1K1KhEjUrUqESNStSoRI1K1KhEjUrUqESNStSoRI1K1KhEjUrUqESN
StSoRI1K1KhEjUrUqESNStSoRI1K1KhEjUrUqESNStSoRI1K1KhEjUrUqESNStSoRI1K1KhEjUrU
qESNStSoRI1K1KhEjUrUqESNStSoRI3K1KhMjcrUqEyNytSoTI3K1KhMjcrUqEyNytSoTI3K1KhM
jcrUqEyNytSoTI3K1KhMjcrUqEyNytSoTI3K1KhMjcrUqEyNytSoTI3K1KhMjaKjQ+noUDo6lI4O
paND6ehQOjqUjg6lo0Pp6FA6OpSODqWjQ+noUDo6lI4OpaND6ehQOjqUjg6lo0Pp6FA6OpSODqWj
Q+noUDo6lI4OpaND6ehQOjqUjg6lo0Pp6FA6OpSODqWjQ+noUDo6lI4OpaND6ehQOjqUjg6lo0Pp
6FA6OpSODqWjQ+noUDo6lI4OpaND6ehQOjqUjg6lo0Pp6FA6OpSODqWjQ+noUDo6lI4OpaND6ehQ
OjqUjg6lo0Pp6FA6OpSODqWjQ+noUDo6lI4OpaND6ehQOjqUjg6lo0Pp6FA6OpSODqWjQ+noUDo6
lI4OpaND6ehQOjqUjg6lo0Pp6FA6OpSODqWjQ+noUDo6lI4OpaND6ehQOjqUjg6lo0Pp6FA6OpSO
DqWjQ+noUDo6lI4OpaND6ehQOjqUjg6lo0Pp6FA6OpSODqWjQ+noUDo6lI4OpaND6ehQOjqUjg6l
o0Pp6FA6OpSODqWjQ+noUDo6lI4OpaND6ehQOjqUjg6lo0Pp6FA6OpSODqWjQ+noUDo6lI4OpaND
6ehQOjqUjg6lo0Pp6FA6OpSODqWjQ+noUDo6lI4OpaND6ehQOjqUjg6lo0Pp6FA6OhSOjngKR8fj
C44veL4Q+ILwhcgXOr6Q+ELmC0TqiNQRqSNSR6SOSB2ROiJ1ROqI1BGpJ1JPpJ5IPZF6IvVE6onU
E6knUk+kgUi/Ecd/wLadb7n2H8HyLAaexcCzGHgWA89i4FkMPIuBZ1F4FoXvtxCpEKkQqRCpEKkQ
qRCpEGkk0kikkUgjkUYijUQaiTQSaSTSSKQdkXZE2hFpR6QdkXZE2hFpR6QdkXZEmog0EWki0kSk
iUgTkSYiTUSaiDQRaSbSTKSZSDORZiLNRJqJNBNpJtJMpEqkSqRKpEqkSqRKpEqkSqRKpNRPR/10
1E9H/XTUT0f9dNRPR/101E9H/XTUT0f9dNRPR/101E9H/XTUT0f9dNRPR/101E9H/XTUT0f9dNRP
R/101E9H/XTUT0f9dNRPR/2E2+TxBSKlRjlqlKNGOWqUo0Y5apSjRjlqlKNGOWqUo0Y5apSjRjlq
lKNGOWqUo0Y5apSjRjlqlKNGOWqUo0Y5apSjRjlqlKNGOWqUo0Y5apSjRjlqlKNGOWqUo0Y5apSj
RjlqlKNGOWqUo0Y5apSjRjlqlKNGOWqUo0Y5apSjRjlqlKNGOWqUo0Y5apSjRjlqlKNGOWqUo0Y5
apSjRjlqlKNGOWqUo0Y5apSjRnlqlKdGeWqUp0Z5apSnRnlqlKdGeWqUp0Z5apSnRnlqlKdGeWqU
p0Z5apSnRnlqlKdGeWqUp0Z5apSnRnlqlKdGeWqUp0Z5apSnRnlqlKdGeWqUp0Z5apSnRnlqlKdG
eWqUp0Z5apSnRnlqlKdGeWqUp0Z5apSnRnlqlKdGeWqUp0Z5apSnRnlqlKdGeWqUp0Z5apSnRnlq
lKdGeWqUp0Z5apSnRnlqlKdGeWqUp0Z5apSnRnlqlKdGeWqUp0Z5apSnRnlqlKdGeWqUp0Z5apSn
RnlqlKdGeWqUp0Z5apSnRnlqlKdGeWqUp0Z5apSnRnlqlKdGeWqUp0YFalSgRgVqVKBGBWpUoEYF
alSgRgVqVKBGBWpUoEYFalSgRgVqVKBGBWpUoEYFalSgRgVqVKBGBWpUoEYFalSgRgVqVKBGBWpU
oEYFalSgRgVqVKBGBWpUoEYFalSgRgVqVKBGBWpUoEYFalSgRgVqVKBGBWpUoEYFalSgRgVqVKBG
BWpUoEYFalSgRgVqVKBGBWpUoEYFalSgRgVqVKBGBWpUoEYFalSgRgVqVKBGBWpUoEYFalSgRgVq
VKBGBWpUoEYFalSgRgVqVKBGBWpUoEYFalSgRgVqVKBGBWpUoEYFalSgRgVqVKBGBWpUoEYFalSg
RgVqVKBGCTVKqFFCjRJqlFCjhBol1CihRgk1SqhRQo0SapRQo4QaJdQooUYJNUqoUUKNEmqUUKOE
GiXUKKFGCTVKqFFCjRJqlFCjhBol1Cj5xl7ZZp7i4w40Xsvstqqhbn0D/k6t/nv27D8Xf+zuQwZW
9F1ugWrX8903xNZsm8222WybzbbZbJvNttlsm8222WybzbbZbJvNttlsm8222WybzbbZbJvNttls
m8222WybzbbZbJvNttlsm822eQTb5vAnLTfPZvNsNs9m82w2z2bzbDbPZvNsNs9m82w2z2bzbDbP
ZvNsNs9m82w2z2bzbDbPZvNsNs9m82w2z2bzbDbPZvNs7sGzedxJy6s4AK9+vDt7Pf/gAHw4u//p
+zfv/nR1+cfuIl+edfHyxF/E+YnI/MeT8/PT85PzfP7YHXh2du50vwiSnkV/Oc8ni7fZL/4vzU/U
X56fXJzNL3yep/hjnn8DwdXrs1fz+z+cn1387dXdo/lynUmwf3738NPtzb9f3F29ediHOXaLv7ah
3/X9Bupnz8swp9U+g8nf68yWnl9+/+vXJ3iuNX11yw/wNm85/vTF3e39/Q+3d1evrm5+eHN2t3ht
cY3td57uAQhmAGdo947qFUz3R3FT7wzXJp/Iref2Xp+dz6/f/9vl2UccuL/R2dsgGlS4wu6v9K+8
3/uTnsOdsP2F3guLKsKiirCoIiyqCIsqwqKKsKgiLKoIiyrCooqwqCIsqgiLKsKiirCoIiyqCIsq
wqKKsKgiLKoIiyrCooqwqCIsqgiLKsKiirCoIiyqCIsqwqKKsKgiLKoIiyrCooqwqCIsqgiLKsKi
irCoIiyqCIsqwqKKsKgiLKoIiyrCooqwqCIsqgiLKsKiirCoIiyqCIsqwqKKsKgiLKoIiyrCooqw
qCIsqgiLKsKiirCoIiyqCIsqwqKKsKgiLKpEFlUiiyqRRZXIokpkUSWyqBJZVIksqkQWVSKLKpFF
lciiSmRRJbKoEllUiSyqRBZVIosqkUWVyKJKZFElsqgSWVSJLKpEFlUiiyqRRZXIokpkUSWyqBJZ
VIks/EdqVKRGRWpUpEZFalSkRkVqVKRGRWpUpEZFalSkRkVqVKRGRWpUpEZFalSkRkVqVKRGRWpU
pEZFalSkRkVqVKRGRWpUpEZFalSkRkVqVKRGRWpUpEZFalSkRkVqVKRGRWpUpEZFalSkRkVqVKRG
RWpUpEZFalSkRkVqVKRGRWpUpEZFalSkRkVqVKRGRWpUpEZFalSkRkVqVKRGRWpUpEZFalSkRkVq
VKRGddSojhrVUaM6alRHjeqoUR01qqNGddSojhrVUaM6alRHjeqoUR01qqNGddSojhrVUaM6alRH
jeqoUR01qqNGddSojhrVUaM6alRHjeqoUR01qqNGddSojhrVUaM6alRHjeqoUR01qqNGddSojhrV
UaM6alRHjeqoUR01qqNGddSojhrVUaM6alRHjeqoUR01qqNGddSojhrVUaM6alRHjeqoUR01qqNG
ddSojhrVUaM6alRHjeqoUR01qqNGddSojhrVUaM6alRHjeqoUR01qqNGddSojhrVUaM6alRHjeqo
UR01qqNGddSojhrVUaM6alRHjeqoUR01qqNGddSojhrVUaM6alSiRiVqVKJGJWpUokYlalSiRiVq
VKJGJWpUokYlalSiRiVqVKJGJWpUokYlalSiRiVqVKJGJWpUokYlalSiRiVqVKJGJWpUokYlalSi
RiVqVKJGJWpUokYlalSiRiVqVKJGJWpUokYlalSiRiVqVKJGJWpUokYlalSiRiVqVKJGJWpUokYl
alSiRiVqVKJGJWpUokYlalSiRiVqVKJGJWpUokYlalSiRiVqVKJGJWpUokYlalSiRiVqVKJGJWpU
okYlalSiRiVqVKJGJWpUokYlalSiRiVqVKJGJWpUokYlalSiRiVqVKJGJWpUokYlalSiRiVqVKJG
JWpUpkZlalSmRmVqVKZGZWpUpkZlalSmRmVqVKZGZWpUpkZlalSmRmVqVKZGZWpUpkZlalSmRmVq
VKZGZWpUpkZlalSmRmVqVKZGZWpUpkblb4Te72sHeqv9wm/ldz8eFs83lTZTaTOVNlNpM5U2U2kz
lTZTaTOVNlNpM5U2U2kzlTZTaTOVNlNpM5U2U2kzlTZTaTOVNlNpM5U2U2kzlTZTaTOVNlNpM5U2
U2kzlTZTaTOVNlNpM5U2U2kzlTZTaTOVNlNpM5U2U2kzlTZTaTOVNlNpM5U2U2kzlTZTaTOVNlNp
M5U2U2kzlTZTaTOVNlNpM5U2U2kzlTZTaTOVNlNpM5U2U2kzlVaptEqlVSqtUmmVSqtUWqXSKpVW
qbRKpVUqrVJplUqrVFql0iqVVqm0SqVVKq1SaZVKq1RapdIqlVaptEqlVSqtUmmVSqtUWqXSKleD
So1SapRSo5QapdQopUYpNUqpUUqNUmqUUqOUGqXUKKVGKTVKqVFKjVJqlFKjlBql1CilRik1SqlR
So1SapRSo5QapdQopUYpNUqpUUqNUmqUUqOUGqXUKKVGKTVKqVFKjVJqlFKjlBql1CilRik1SqlR
So1SapRSo5QapdQopUYpNUqpUUqNUmqUUqOUGqXUKKVGKTVKqVFKjVJqlFKjmDvnmDvnmDvnmDvn
mDvnmDvnmDvnmDvnmDvnmDvnmDvnmDvnmDvnmDvnmDvnmDvnmDvnmDvnmDvnmDvnmDvnmDvnmDvn
mDvnmDvnmDvnmDvnmDvnmDvnmDvnmDvnmDvnTgORBiINRBqINBBpINJApIFIA5EKkQqRCpEKkQqR
CpEKkQqRCpEKkUYijUQaiTQSaSTSSKSRSCORRiKNRNoRaUekHZF2RNoRaUekHZF2RNoRaUekiUgT
kSYiTUSaiDQRaSLSRKSJSBORZiLNRJqJNBNpJtJMpJlIM5FmIs1EqkSqRKpEqkSqRKpEqkSqRKpE
So1ivJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtj
vJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtj
vJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtj
vJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtj
vJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtj
vJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtj
vJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJtjvJvz39hV
G4RlbwXT4qBc4ys7kdfyyF+/3YNjdOfv7+Ybrdu+y2t5wDc68ys4Y1ee3Nx2ftvOb9v5bTu/bee3
7fy2nd+289t2ftvOb9v5bTu/bee37fy2nd+289t2ftvOb9v5bTu/bee37fy2nd+289t2ftvO7x52
fp/D5OYWPNqCR1vwaAsebcGjLXi0BY+24NEWPNqCR1vwaAsebcGjLXi0BY+24NEWPNqCR1vwaAse
bcGjLXi0BY+24NEWPNqCR3cePHrcyc3LTbKla+3pG9+eN7gXH9xXpyVvPyPxcwd6cf9cJysO9lf2
65U85ORo82ZuMaX10xmzTym/P59dX11ePbz7fsXhzDuxwx7ohHD3HcQyLLDbXN9f4JOBvhtbOuYH
8WlCXvb17c38GIOOV/lQr+PnXvt4Vx2j/M3+F8e6rWPd1rFu61i3dazbOtZtHeu2jnVbx7qtY93W
sW7rWLd1rNs61m0d67aOdVvHuq1j3daxbutYt3Ws2zrWbR3rto51W8e6rWPd1rFu61i3dazbOtZt
Heu2jnVbx7qtY93WsW7rWLd1rNs61m0d67aOdVvHuq1j3daxbutYt3Ws2zrWbR3rto51W8e6rWPd
1rFu61i3dazbOtZtHeu2jnVbx7qtY93WsW7rWLd1rNs61m0d67aOdVvHuq1j3daxbutYt3Ws2zrW
bR3rto51W8e6rWPd1rFu61i3dazbOtZtHeu2jnVbx7qtY93WsW7rWLd1rNs61m0d67aOdVvHuq1j
3daxbutYt3Ws2zrWbR3rto51W8e6rWPd1rFu61i3dazbOtZtHeu2jnVbx7qtY93WsW7rWLd1rNs6
1m0d67aOdVvHuq1j3daxbutYt3Ws2zrWbR3rto51W8e6rWPd1rFu61i3dazbOtZtHeu2jnVbx7qt
Y93WsW7rWLd1rNs61m0d67aOdVvHuq1j3daxbutYt3Ws2zrWbR3rto51W8e6rWPd1rFu61i3dazb
OtZtHeu2jnVbx7qtY93WsW7rWLd1rNs61m0d67aOdVvHuq1j3daxbutYt3Ws2zrWbR3rto51W8e6
rWPd1rFu61i3dazbOtZtHeu2jnVbx7qtY93WsW7rWLd1rNs61m0d67aOdVvHuq1j3daxbutYt3Ws
2zrWbR3rto51W8e6rWPd1rFu61i3dazbOtZtHeu2LlOjGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjl
GLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjl
GLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjl
GLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjl
GLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjl
GLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjl
GLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjl
GLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjl
GLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjl
GLjlGLjlGLjlGLjlGLjlGLjlGLjlGLjlGbjlGbjlGbjlGbjlGbjlGbjlGbjlGbjlGbjlGbjlGbjl
GbjlGbjlGbjlGbjlGbjlGbjlGbjlGbjlGbjlGbjlGbjlGbjlGbjlGbjlGbjlGbjlGbjlGbjlGbjl
GbjlT78REb5a3LHzVDZPZfNUNk9l81Q2T2XzVDZPZfNUNk9l81Q2T2XzVDZPZfNUNk9l81Q2T2Xz
VDZPZfNUNk9l81Q2T2XzVDZPZfNUNk9l81Q2T2XzVDZPZfNUNk9l81Q2T2XzVDZPZfNUNk9l81Q2
T2XzVDZPZfNUNk9l81Q2T2XzVDZPZfNUNk9l81Q2T2XzVDZPZfNUNk9l81Q2T2XzVDZPZfNUNk9l
81Q2T2XzVDbP1Vfg6itw9RW4+gpcfQWuvgJXX4Grr8DVV+DqK3D1Fbj6Clx9Ba6+AldfgauvwNVX
4OorcPUVuPoKXH0Frr4CV1+Bq6/A1Vfg6itw9RW4+gpcfQWuvgJXX4Grr8DVV6BGBWpUoEYFalSg
RgVqVKBGBWpUoEYFalSgRgVqVKBGBWpUoEYFalSgRgVqVKBGBWpUoEYFalSgRgVqVKBGBWpUoEYF
alSgRgVqVKBGBWpUoEYFalSgRgVqVKBGBWpUoEYFalSgRgVqVKBGBWpUoEYFalSgRgVqVKBGBWpU
oEYFalSgRgVqVKBGBWpUoEYFalSgRgVqVKBGBWpUoEYFalSgRgVqVKBGBWqUUKOEGiXUKKFGCTVK
qFFCjRJqlFCjhBol1CihRgk1SqhRQo0SapRQo4QaJdQooUYJNUqoUUKNEmqUUKOEGiXUKKFGCTVK
qFFCjRJqFNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOw
HNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOw
HNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOw
HNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOw
HNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOw
HNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOw
HNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOw
HNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOw
HNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOw
HNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOw
HNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwHNOwXLf7QbebToZd18y9a//jIP2EB7Fw7340
8Zfcf8ObR3zYE9z2g9t+cNsPbvvBbT+47Qe3/eC2H9z2g9t+cNsPbvvBbT+47Qe3/eC2H9z2g9t+
cNsPbvvBbT+47Qe3/eC2H9z2g9t+8BH2g48//nYnqcHH3I/c/Z7qKtGtm0WmfzVJ/IAdAF889Ouz
8/n1+2N/enZ2fj23V+73mKS74wtx6zfxmUY4b/fWrpNI3IKDW3BwCw5uwcEtOLgFB7fg4BYc3IKD
W3BwCw5uwcEtOLgFB7fg4BYc3IKDW3BwCw5uwcEtOLgFB7fg4BYc3IKDW3DwEYKDjzs4++r12av5
/R/Ozy7+9urucXf06wOst9lA/eyf+r06rQ9tcd59F8JK+7VH6fHYHtnKo7+vfrw7ez3/cAk+nN3/
9P2bd3+6uvxjd5Evz7p4eeIv4vxEZP7jyfn56fnJeT5f6KKenZ073S+CpGfRX87ziXjvF/+X5ifq
L88Xn5v5hc/zFH/M81Uvsj+/e/jp9ubfL+6u3jys2fax1q+uNXh9y7O/DffgT1/c3d7f/3B7d/Xq
6uaHN2d3i9cWZLd5W8Q+3uoBHO5q0QcLYaRiByp2oGIHKnagYgcqdqBiByq2ULGF9xZCpEKkQqRC
pEKkQqRCpEKkkUgjkUYijUQaiTQSaSTSSKSRSCORdkTaEWlHpB2RdkTaEWlHpB2RdkTaEWki0kSk
iUgTkSYiTUSaiDQRaSLSRKSZSDORZiLNRJqJNBNpJtJMpJlIM5EqkSqRKpEqkSqRKpEqkSqRKpFy
rea4VnNcqzmu1RzXao5rNce1muNazXGt5rhWc1yrOa7VHNdqjms1x7Wa41rNca3muFZzXKs5rtUc
12qOazXHtZrjWs1xrea4VnNcqzmu1RzXao5rNce1muNazQUipUY5apSjRjlqlKNGOWqUo0Y5apSj
RjlqlKNGOWqUo0Y5apSjRjlqlKNGOWqUo0Y5apSjRjlqlKNGOWqUo0Y5apSjRjlqlKNGOWqUo0Y5
apSjRjlqlKNGOWqUo0Y5apSjRjlqlKNGOWqUo0Y5apSjRjlqlKNGOWqUo0Y5apSjRjlqlKNGOWqU
o0Y5apSjRjlqlKNGOWqUo0Y5apSjRjlqlKNGOWqUo0Y5apSnRnlqlKdGeWqUp0Z5apSnRnlqlKdG
eWqUp0Z5apSnRnlqlKdGeWqUp0Z5apSnRnlqlKdGeWqUp0Z5apSnRnlqlKdGeWqUp0Z5apSnRnlq
FCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPk
PCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPk
PCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPk
PCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPk
PCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPk
PCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPk
PCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPk
PCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPk
PCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPk
PCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPk
PCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkPCPkvOw+Cn81Q7JnVp1nVp1nVp1nVp1nVp1nVp1nVp1n
Vp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1n
Vp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1n
Vp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1n
Vp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1n
Vp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1n
Vp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1n
Vp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1n
Vp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1n
Vp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1n
Vp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1nVp1n
Vp1nVp3vqFEMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIM
dvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIM
dvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIM
dvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIM
dvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIM
dvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIM
dvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIM
dvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIM
dvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIM
dvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIM
dvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvIMdvL5GxtfXw/w/TRa++rm1cn9w/zNHmKZ
d54s/Wkes9lFFwf2ML/78exifn9y6vaYML3xmV0hFXllk+E6pur7N4uT8o0T8u2jW+vMr3CoO3wL
dniGdppc3TaK20Zx2yhuG8Vto7htFLeN4rZR3DaK20Zx2yhuG8Vto7htFLeN4rZR3DaK20Zx2yhu
G8Vto7htFLeN4rZR3DaK20bx7jeKjz8cukWJtijRFiXaokRblGiLEm1Roi1KtEWJtijRFiXaokRb
lGiLEm1Roi1KtEWJtijRFiXaokRblGiLEm1Roi1KtEWJtijRI0SJHnfE66ZTRg83DHWn81M3PKZj
jF3dfMTptxyhezNI7vg41vJ+rm1w/dJI2Dd3t7++O7m4vrr428nD7cnZ/f3txdXZw/zSfmJVT+vO
hulu9X6+3KnFH2/yL223T9/4/uL+foPf+hq63b+nu7u2D0OpR5wqvUOf9bFc8F8dm/5tE/wmBLWO
pXwnvH2ot2mbK/Hzn/uBHeBX0S64bahw9/bRGSJPfDuFIbPglFlwyiw4ZRacMgtOmQWnzIJTZsEp
s+CUWXDKLDhlFpwyC06ZBafMglNmwSmz4JRZcMosOGUWnDILTpkFp8yCU2bBKbPglFlwyiw4ZRac
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
ZZ+OZZ+OZZ+OZZ+OZZ+OZZ+OZZ+OZZ+OZZ+OZZ+OZZ+OZZ+OZZ+OZZ+OZZ+OZZ+OZZ+OZZ+OZZ+O
ZZ/Esk9i2Sex7JNY9kks+ySWfRLLPolln8SyT2LZJ7Hsk1j2SSz7JJZ9Ess+iWWfxLJPYtknseyT
WPZJLPskln0Syz6JZZ/Esk9i2Sex7JNY9kks+ySWfRLLPolbE4kalahRiRqVqFGJGpWoUYkalahR
iRqVqFGJGpWoUYkalahRiRqVqFGJGpWoUYkalahRiRqVqFGJGpWoUYkalahRiRqVqFGJGpWoUYka
lahRiRqVqFGJGpWoUYkalahRiRqVqFGJGpWoUYkalahRiRqVqFGJGpWoUYkalahRiRqVqFGJGpWo
UYkalahRiRqVqFGJGpWoUYkalahRiRqVqFGJGpWoUYkalahRmRqVqVGZGpWpUZkalalRmRqVqVGZ
GpWpUZkalalRmRqVqVGZGpWpUZkalalRmRqVqVGZGpWpUZkalalRmRqVqVGZGpWpUZkalalRmRqV
qVG0ygRaZQKtMoFWmUCrTKBVJtAqE2iVCbTKBFplAq0ygVaZQKtMoFUm0CoTaJUJtMoEWmUCrTKB
VplAq0ygVSbQKhNolQm0ygRaZQKtMoFWmUCrTKBVJtAqE2iVCbTKBFplAq0ygVaZQKtMoFUm0CoT
aJUJtMoEWmUCrTKBVplAq0ygVSbQKhNolQm0ygRaZQKtMoFWmUCrTKBVJtAqE2iVCbTKBFplAq0y
gVaZQKtMoFUm0CoTaJUJtMoEWmUCrTKBVplAq0ygVSbQKhNolQm0ygRaZQKtMoFWmUCrTKBVJtAq
E2iVCbTKBFplAq0ygVaZQKtMoFUm0CoTaJUJtMoEWmUCrTKBVplAq0ygVSbQKhNolQm0ygRaZQKt
MoFWmUCrTKBVJtAqE2iVCbTKBFplAq0ygVaZQKtMoFUm0CoTaJUJtMoEWmUCrTKBVplAq0ygVSbQ
KhNolQm0ygRaZQKtMoFWmUCrTKBVJtAqE2iVCbTKBFplAq0ygVaZQKtMoFUm0CoTaJUJtMoEWmUC
rTKBVplAq0ygVSbQKhNolQm0ygRaZQKtMoFWmUCrTKBVJtAqE2iVCbTKBFplAq0ygVaZQKtMoFUm
0CoTaJUJtMoEWmUCrTKBVplAq0ygVSbQKhNolRFaZYRWGaFVRmiVEVplhFYZoVVGaJURWmWEVhmh
VUZolRFaZYRWGaFVRmiVEVplhFYZoVVGaJURWmWEVhmhVUZolRFaZYRWGaFVRmiVEVplhFYZoVVG
Tg88Pfp9toHQkyP05Ag9OUJPjtCTI/TkCD05Qk+O0JMj9OQIPTlCT47QkyP05Ag9OUJPjtCTI/Tk
CD05Qk+O0JMj9OQIPTlCT47QkyP05Ag9OUJPjtCTI/TkCD05Qk+O0JMj9OQIPTlCT47QkyP05Ag9
OUJPjtCTI/TkCD05Qk+O0JMj9OQIPTlCT47QkyP05Ag9OUJPjtCTI/TkCD05Qk+O0JMj9OQIPTlC
T47QkyP05Ag9OUJPjtCTI/TkCD05Qk+O0JMj9OQIPTlCT47QkyP05Ag9OUJPjtCTI/TkCD05Qk+O
0JMj9OQIPTlCT47QkyP05Ag9OUJPjtCTI/TkCD05Qk+O0JMj9OQIPTlCT47QkyP05Ag9OUJPjtCT
I/TkCD05Qk+O0JMj9OQIPTlCT47QkyP05Ag9OUJPjtCTI/TkCD05Qk+O0JMj9OQIPTlCT47QkyP0
5Ag9OUJPjtCTI/TkCD05Qk+O0JMj9OQIPTlCT47QkyP05Ag9OUJPjtCTI/TkCD05Qk+O0JMj9OQI
PTlCT47QkyP05Ag9OUJPjtCTI/TkCD05Qk+O0JMj9OQIPTlCT47QkyP05Ag9OUJPjtCTI/TkCD05
Qk+O0JMj9OQIPTlCT47QkyP05Ag9OUJPjtCTI/TkCD05Qk+O0JMj9OQIPTlCT47QkyP05Ag9OUJP
jtCTI/TkCD05Qk+O0JMj9OQIPTlCT47QkyP05Ag9OUJPjtCTI/TkCD054qlRHKYkHKYkHKYkHKYk
HKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYk
HKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYk
HKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYk
HKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYk
HKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYk
HKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYk
HKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYk
HKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYk
HKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYk
HKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYkHKYk
HKYkHKYkHKYkHKYkHKYksvuNr7Wca1ua/7YxoONPX9zd3t//cHt39erq5oc3Z3eL185e7TOG4Gbx
1y+vHuavT07d4Yzo+3AxDuBd2Cp64ZN3YlUv/oom38uzh/nxowbeo1j16Nadk/5MLOmb5amsMde7
eVmbl7V5WZuXtXlZm5e1eVmbl7V5WZuXtXlZm5e1eVmbl7V5WZuXtXlZm5e1eVmbl7V5WZuXtXlZ
m5e1eVmbl3XnXtajjSs4TEj0/qNxv5qkv/rw8mbwbQbfZvBtBt9m8G0G32bwbQbfZvBtBt9m8G0G
32bwbQbfZvBtBt9m8G0G32bwbQbfZvBtBt9m8G0G32bwbQbf3Rt8n9Nu4FfHkP/1YFPIP5mT+RJG
M+92tu5gzvGg/KW7Ghl84LO760/qxf3LOdB9+++3aVIY5kk+wkD3T1z8w5nqfmxoXwgCOMo7uAmW
jeIIfle3HmvnGex6osH7+IPFHSdvhVkEERZBhEUQYRFEWAQRFkGERRBhEURYBBEWQYRFEGERRFgE
ERZBhEUQYRFEWAQRFkGERRBhEURYBBEWQYRFEGERRFgEERZBhEUQYRFEWAQRFkGERRBhEURYBBEW
QYRFEGERRFgEERZBhEUQYRFEWAQRFkGERRBhEURYBBEWQYRFEGERRFgEERZBhEUQYRFEWAQRFkGE
RRBhEURYBBEWQYRFEGERRFgEERZBhEUQYRFEWAQRFkGERZDIIkhkESSyCBJZBIksgkQWQSKLIJFF
kMgiSGQRJLIIElkEiSyCRBZBIosgkUWQyCJIZBEksggSWQSJLIJEFkEiiyCRRZDIIkhkESSyCBJZ
BIksgkQWQSKLIJGF+kiNitSoSI2K1KhIjYrUqEiNitSoSI2K1KhIjYrUqEiNitSoSI2K1KhIjYrU
qEiNitSoSI2K1KhIjYrUqEiNitSoSI2K1KhIjYrUqEiNitSoSI2K1KhIjYrUqEiNitSoSI2K1KhI
jYrUqEiNitSoSI2K1KhIjYrUqEiNitSoSI2K1KhIjYrUqEiNitSoSI2K1KhIjYrUqEiNitSoSI2K
1KhIjYrUqEiNitSojhrVUaM6alRHjeqoUR01qqNGddSojhrVUaM6alRHjeqoUR01qqNGddSojhrV
UaM6alRHjeqoUR01qqNGddSojhrVUaM6alRHjeqoUR01qqNGddQoxsgJY+SEMXLCGDlhjJwwRk4Y
IyeMkRPGyAlj5IQxcsIYOWGMnDBGThgjJ4yRE8bICWPkhDFywhg5YYycMEZOGCMnjJETxsgJY+SE
MXLCGDlhjJwwRk4YIyeMkRPGyAlj5IQxcsIYOWGMnDBGThgjJ4yRE8bICWPkhDFywhg5YYycMEZO
GCMnjJETxsgJY+SEMXLCGDlhjJwwRk4YIyeMkRPGyAlj5IQxcsIYOWGMnDBGThgjJ4yRE8bICWPk
hDFywhg5YYycMEZOGCMnjJETxsgJY+SEMXLCGDlhjJwwRk4YIyeMkRPGyAlj5IQxcsIYOWGMnDBG
ThgjJ4yRE8bICWPkhDFywhg5YYycMEZOGCMnjJETxsgJY+SEMXLCGDlhjJwwRk4YIyeMkRPGyAlj
5IQxcsIYOWGMnDBGThgjJ4yRE8bICWPkhDFywhg5YYycMEZOGCMnjJETxsgJY+SEMXLCGDlhjJww
Rk4YIyeMkRPGyAlj5IQxcsIYOWGMnDBGThgjJ4yRE8bICWPkhDFywhg5YYycMEZOGCMnjJETxsgJ
Y+SEMXLCGDlhjJwwRk4YIyeMkRPGyAlj5IQxcsIYOWGMnDBGThgjJ4yRE8bICWPkhDFywhg5YYyc
MEZOGCMnjJETxsgJY+SEMXLCGDlhjJwwRk4YIyeMkRPGyAlj5IQxcsIYOWGMnDBGThgjJ4yRE8bI
CWPkhDFywhg5YYycMEZOGCMnjJETxsgJY+SEMXLCGDlhjJwwRk4YIyf5GxMNVrTtM3xOGD4nDJ8T
hs8Jw+eE4XPC8Dlh+JwwfE4YPicMnxOGzwnD54Thc8LwOWH4nDB8Thg+JwyfE4bPCcPnhOFzwvA5
YficMHxOGD4nDJ8Ths8Jw+eE4XPC8Dlh+JwwfE4YPicMnxOGzwnD54Thc8LwOWH4nDB8Thg+Jwyf
E4bPCcPnhOFzwvA5YficMHxOGD4nDJ8Ths8Jw+eE4XPC8Dlh+JwwfE4YPicMnxOGzwnD54Thc8Lw
OWH4nDB8Thg+JwyfE4bPCcPnhOFzwvA5YficMHxOGD4nDJ8Ths8Jw+eE4XPC8Dlh+JwwfE4YPicM
nxOGzwnD54Thc8LwOWH4nDB8Thg+JwyfE4bPCcPnhOFzwvA5YficMHxOGD4nDJ8Ths8Jw+eE4XPC
8Dlh+JwwfE4YPicMnxOGzwnD54Thc8LwOWH4nDB8Thg+JwyfE4bPCcPnhOFzwvA5YficMHxOGD4n
DJ8Ths8Jw+eE4XPC8Dlh+JwwfE4YPicMnxOGzwnD54Thc8LwOWH4nDB8Thg+JwyfE4bPCcPnhOFz
wvA5YficMHxOGD4nDJ8Ths8Jw+eE4XPC8Dlh+JwwfE4YPicMnxOGzwnD54Thc8LwOWH4nDB8Thg+
JwyfE4bPCcPnhOFzwvA5YfhcZPhcZPhcZPhcZPhcZPhcZPhcZPhcZPhcZPhcZPhcZPhcZPhcZPhc
ZPhcZPhcZPhcZPhcZPhcZPhcZPhcZPhcZPhcZPhcZPhcZPhcZPhcZPhcZPhcZPhcZPhcZPhcPA1E
Gog0EGkg0kCkgUgDkQYiDUQqRCpEKkQqRCpEKkQqRCpEKkQqRBqJNBJpJNJIpJFII5FGIo1EGok0
EmlHpB2RdkTaEWlHpB2RdkTaEWlHpB2RJiJNRJqINBFpItJEpIlIE5EmIk1Emok0E2km0kykmUgz
kWYizUSaiTQTqRKpEqkSqRKpEqkSqRKpEqkSKTWK8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR
8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR
8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR
8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR
8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR
8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR
8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WeR8WexxJ8NxqP5rPyrq0+ibVasZsVqVqxmxWpWrGbF
alasZsVqVqxmxWpWrGbFalasZsVqVqxmxWpWrGbFalasZsVqVqxmxWpWrGbFalasZsXavRXraNnT
awxpbW6v5vZqbq/m9mpur+b2am6v5vZqbq/m9mpur+b2am6v5vZqbq/m9mpur+b2am6v5vZqbq/m
9mpur+b2am6v9d1eR9sHetoDunp99mp+/4fzs4u/vbp7tIo9zs7bj5vss39qwLPDtpxo55/+zEGG
J24G7X/8f/7l9ma+xXn4dGTdw9Xr+cnTO3mMg/8mnlWPePjDVDcdU/cij+y4QzX9cIdq+mEM1cSn
cCDjNddBtZeJtb/8tHiX7t+cXcwPR5a7Br0/Rt1yEOfK41C3n1C+x1P81XuxwQzUxjUxjKmsg/2V
gQzTXedN2y0pHwf6kbMsNsK8X2YZLD2sAuDqx7vFfc4HAA9n9z99/+bdn64u/9hd5MuzLl6e+Is4
PxGZ/3hyfn56fnKezzWLnp2dO131E/3ndw8/3d78+8Xd1ZuH1fRnS/BJz6K/nOcT8d4v/i/NT9Rf
ni9O+PzC53mKP+b5/sD/fmaJb3tRrnQrfr94l2/P/zq/eDjyHd6WF9w2bwr+9MXd7f39D7d3V6+u
bn54c3a3eO3s1RacuMn7sMJN667O7ipcNICze7C7sucox5sUnYZT/tp+mbafOs+Bl4Vr1rkPWrEB
PX31bXoe5bF1juhwF8IwdiLWpp4DfigPVQ0cWh3wSBXA3+Z3t8+o9vce7tY7R59Sx9XN5fzXBbbl
i8PYO/scqB3vmi1+4GoAm2UfYAyvorsp/w2mPvr+c7PZPfizvfE6+r3KId+5rbYQ1l56PeM3cTe3
mp+j5r3dOB+3VLXaRXi4u/y1T/3R7mKPXGTYxRu3/T3uB2kfwA33imB+V61pa4jMs95ceK7bOr+z
Svs6y4YfF5+y++HubTyT6vu6i7UPZ30PC/Hr+c2rh5+Gsf7+CMuGR7oROT+8ux56S9Z7iC9nuT78
PYRjFyK+zQfPZetgI/yHWFZ+xDgDWW2tiuj494fP+iav3R9ue7fyklsjtirubei52KiReWf3Fl9d
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
zu4vF6uDNcvVB4tQ+JTxjh02sSaio3RO/fXN/NX3Z9dvfjobUF/cVy+1XbvUVz01W7dlfH6Zc8y2
xBUQ/a4bEw9ehvnKZT+UYtamEFtrznNusgEX7qHCv1O+3tvS+qBNH+uc9GeyTbTOIR1l/2DtC319
ttj53cm+qiV7vv5eatjkPlqYrz+z0rselN1h9aPef4hC2dJaFvv+z9OTx5+ZlDN68uvjv/T9r0Mo
062OdItlz7qX1O+8lWFA9zoHijDc4I51/eDAZ9VGcAjpe64xkIcobX6ZnIZkJF9ekefXZzd/ewL3
p7JQPv3jd/n0Oz/5znff+eC8fhfGH56G0/qpq5/6+mmon0r9NNZPu/ppqp/m+mmNSmpUUqOSGpXU
qKRGJTUqqVFJjUpqVFKjijWqWKOKNapYo4o1qlijijWqWKOKNapYo+reo3KP/z/yfXn4nx/9iP3x
kZ8+PqTFNyYXi//OPvxMqo8mLY/mZPHfvy3+84v/wtM/4b4bdU9fhFcffjzbwY/cPy8eHpHcfvTd
+nhyfTy5Ph6tz7IucY2+8t/j4czw3z/gv8cD/5fFf//6hf/+E//9v8V//7H47355mr703+NpnOO/
K/z3+NrN8pTwv7f4793iv4flYzkFvr46fH11+Prq8PXV4bvT+qmrn/r6aaifSv001k9rVF2NqqtR
dTWqVKOqrz2falSpRpVqVKlGlWpUqUaValSpRpVrVLlGlWtUuUaVa1S5RpVrVPXnwdefB19/Hnz9
efBao9IaldaotEalNSqtUWmNSmtUWqEKp6f1U1c/9fXTUD+V+mmsn3b101Q/zfXTGpWrUbkalatR
uRqVq1G5GpWrUbkalatRuRqVr1H5GpWvUfkala9R+RqVr1H5GpWvUdXKH2rlD7XUh1rqQy31oZb6
UEt9qKU+1FIfam0PtbaHWttDre2h1vZQa3uotT3U2h4EMOqzUWt7qLU91Noeam0PtbaHWttDzd6h
Zu9Qs3eo2TvU7B1q9g41e4eavUPN3qFm71Czd6jZO9TsHWr2DjV7h5q9Q83eoWbvULN3qNk71Owd
avYONXuHmr1Dzd6hZu9Qs3eo2TvU7B1q9g41e4eavUPN3qFm71Czd6jZO9TsHWr2DjV7h5q9Q83e
oWbvULN3qNlbavaWmr2lZm+p2Vtq9paavaVmb6nZW2r2lpq9pWZvqdlbavaWmr2lZm+p2Vtq9paa
vaVmb6nZW2r2lpq9pWZvqdlbavaWmr2lZm+p2Vtq9paavaVmb6nXbVKTudRkLjWZS03mUpO51GQu
NZlLvW6Tmtul5napuV1qbpea26Xmdqm5XWpul5rbpeZ2qbldam6Xmtul5napuV1qbpea26Xmdqm5
XWpul5rbpeZ2qbldam6Xmtul5napuV1qbpea26Xmdqm5XWpul5rbpeZ2qbldam6Xmtul5napuV1q
bpea26Xmdqm5XWpul5rbpeZ2qbldam6Xmtul5napuV1qbpea26Xmdqm5XWpul5rbpeZ2qbldam6P
NbfHmttjze2x5vZYc3usuT3W3B5rbo81t8ea22PN7bHm9lhze6y5PdbcHmtujzW3x5rbY83tseb2
WHN7rLk91twea26PNbfHmttjze2x5vZYc3usuT3W3B5rbo81t8ea22PN7bHm9lhze6y5PdbcHmtu
jzW3x5rbY83tseb2WHN7rLk91twea26PNbfHmttjze2x5vZYc3usuT3W3B5rbo81t8ea22PN7bHm
9lhze6y5PdbcHmtujzW3x5rbY83tseb2WHN7rLk91twea26PNbfHmttjze2x5vZYc3usuT3W3B5r
bo81t8ea22PN7bHm9lhze6y5PdbcHmtujzW3x5rbY83tseb2WJN5rMk81mQea/aONXvHmr27mr27
mr27mr27mq67mq67mq67mq67mq67mq67mq67mq67mq67mq67mq67mq67mq67mq67mp+7mp+7mp+7
mp+7mp+7mp+7mp+7mp+7mp+7mp+7mpC7mpC7mpC7mpC7mpC7mpC7mpC7mpC7ABj1yakJuasJuasJ
uXti4Gfkddhwz+33mBbzpY0/90d77+trrpbbrpbbrpbbrpbbrtbXrtbXrtbXrtbXrtbXrtbXrtbX
rtbXrtbXrtbXrtbXrtbXrtbXrtbXrtbXrtbXrtbXrtbXrtbXrtbXrtbXrtbXrtbXrtbXrtbXrtbX
rtbXrtbXrtbXrtbXrtbXrtbXrtbXrtbXrtbXrtbXrtbXrtbXrtbXrtbXrtbXrl47dbXcdrXcdrXc
dvXaqavVt6vVt6vVN9Xqm2r1TbX6pnrtlGoxTrUYp1qMUy3GqRbjVItxquU21Qqa6hVOqhU01Qqa
agVNtYKmWkFTraCpVtBUK2iqFTTVCppqBU21gqZaQVOtoKlW0FQraKoVNNUKmgJg1CenVtBUK2iq
FTTVS5pUL2lSzbGp5thUc2yqOTbVHJvqJU2qKTfVlJtqyk015aaaclNNuamm3FRTbqopN9WUm2rK
TTXlpppyU025qabcVFNuqik31ZSbaspNNeWmmnJT+tCV8N1TB4O9XuOpyTbVZJtqsk012aaabFNN
tqkm21STbarJNtVkm2qyTTXZpppsU022qSbbVJNtqsk21WSbarJNNdmmmmxTTbapJttUk22qyTbX
ZJtrss012eaabHNNtrkm21yTba7JNtdkm2uyzfXKJ9crn1xTca5XPrle+eR65ZNr3s71yifXNJ5r
Gs81jeeaxnNN47mm8VzTeK5pPNc0nmsazzWN57pQlWtWz2D1r35yM1gd1/PyM/jZX6wR1gyfa4bP
NcPnmuFzzfC5ZvhcM3yuGT5/YPj3r9RIalbPNavnmtVzzeq5ZvVcs3quWT3XrJ5rVs81q+ea1XPN
6rlm9Vyzeq5ZPdesnmtWzzWr55rVc31tZLzFNavnmtVzfSOd6xvpXHN7rrk919yea27PNbfnmttz
ze255vZcc3vGjXRNjLnm9lxze8744RpVze255vZcc3uuuT2/5/bqxRpMTekZyGtKzzWla03pWlO6
nn6Q4z9/9KrUPxTrp139NNVPc/20RlNTudZUrjWVa81lWtOK1rSiNa1oTSta04rWtKI1rWj9GdP6
0tf60teEH67/5frS1/rS1/rS1/rS1/rS1/rS1/rS1/rS1/rS1/rS1/q2RutLX+tLX+tLX+tLX+tL
X+tLX+tLX+tLX+vbGq1va7T+DGj9GdD6M6D1Z0Drz4A7rT8Ei+cOzz2eBzwXPI943uF5wvOM58Dn
gM8BnwM+B3wO+BzwOeBzwOeAzwGfBz4PfB74PPB54PPA44HHAw865E/RIn+KHvlTNMmfokv+FG3y
p+iTP0Wj/Ck65U/RKn+KXnmH68Xh+nC4PhyuD4frw+H6cLg+HK4Ph+vD4fpwuD4crg+H68Ph+nC4
PhyuD4frw+H6cLg+HK4P54EP14vD9eJwvdBRQUsFPRU0VdBVQVsFfRU0VtBZQWsFvRU0V9BdQXsF
/RU0WNBhQYsFPRY0WdBlQZsFfRY0WtBpQasFvRY0W9BtQbsF/RauA74O+Drg64CvA74O+Drg64Cv
A74O+BLwwdnhEvAl4EvAl4AvAV8CvgR8Cfgy8GXgy8CXgS8DXwa+DHxwn9B+Qv8JDShOgU+BT4FP
gU+BT4FPgU+BD/cXHvcXHvcXHvcXHvcXHnrhcX/hoR8e+uGhHx764aEfHvrhoR8e+uGhHx764aEf
HvrhoR8e+uGhHx764aEfHvrhoR8e+uGhHx764aEfHvrhoR8e+uGhHx764aEfHvrhoR8e+uGhHx76
4aEfHvrhoR8e+uGhHx764aEfHvrhoR8e+uGhHx764aEfHvrhoR8e+gE7loMfy8GQ5eDIcrBkOXiy
HExZDq4sB1uWgy/LFWPWM00i+p0Ntdg4kO7m7QLV3SbDevYf/TuINJQtwi32NYbkq+/aOokah4so
Xjt9Yv2clrfzQYUNvp2v/Xa0/pvWf9P6b1r/Teu/af03rf+m9d+0/pvWf9P6b1r/Teu/af03rf+m
9d+0/pvWf9P6b1r/Teu/af03rf+m9d+0/pvWf9P6b1r/Teu/ecH9N8ceY9zS4FsafEuDb2nwLQ2+
pcG3NPiWBt/S4FsafEuDb2nwLQ2+pcG3NPiWBt/S4FsafEuDb2nwLQ2+pcG3NPiWBt/S4H93afBH
2qLaav724czrux0svX9j8k7PzH7eid27vDfzWq+2g7rj930PULd6/w6X6bDzK2XzN+Fbtu8troyD
w/mcwf3zszQePjNL4+Fwrvt1Qa3gvV85IuTryQZv7q5en929u7i9Xryf97s/IwPNTVn7pKz6jjxD
LVn34twiAmNN5d/jB3QnrLrTM/ftxI5Nzt6GTPJ10f7l6vLhp2NklnwdzFaf0W/fKSz7yZbU8fSN
7y/u74dDCIej5y+ej2EsXPYjA18NidoVGe9GrXa9TGJPJT8Dz/rgnsGycau/t1vNO8B7uEFu1QLP
1c3l/NdviNJXr+MhnYKjp8Htl0b2Wv34cEOwuzmJ6wrF75IQV7k7/vHq1cXZm4er25tP75I/fG/V
j/FxC5PDqqSteNkfLkuw4uRV782/Ytowbwm8LvAiorPaobXaobfaobnaobvaob3aob/aocHaocPa
ocU6w5uX4c1b4fvI8EE6Brx7Gd69DO9ehncvf+Tdw/+W30YcD7KLPljvRv6XpT2i//j3kUgEq1z2
TB1isBCThRgt9H5ba+RmH79sZ2kUvhtXQUUMLgpfPXyE+8CJlj840RbHPfYffwM4BaFHgtQjRPnA
YpZhMcuwlOUPlrLH4LHw8TfwBiC7B26KDDtFhp8iw1CR4ajIsFRkeCoyTBUZrooMW0XG5z/j85/x
+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
MMuYYZYxxCxjillWTvDjCD/O8OMQPwgFZpll5UA/TvTjSL9PZvpxqN/7rmL33+Xh7uPvBvw05vlx
oB8n+nGkH2f6Yagfxpcpxpcpxpcpxpcpxpcpxpcpxpcpxpcpxpcpxpcpxpcpxpcpxpcpxpcpxpct
ngOfBz4PfB74PPBh0CHGmSnGmSnGmSnGmSnGmSnGmSnGmSnGmSnGmS3uMoAPwxVPMV3xFOMVTzFf
8VSAT4BPgE+AT4AvAl8Evgh8Efgi510CXwS+CHwR+CLwdcDXAR8GTp52wNcBX8eBnMDXAV8HfB3w
YcLlKUZcnmLG5SmGXJ5iyuUpxlyeJk4MBT5MujzFqMtTzLo8xbDLU0y7PMW4y1PMuzzFwMtTTLw8
zRxpCnwYenmKqZenGHt5irmXpxh8eYrJl6cYfXmK2ZenGH55qpy5yqGrmLqKIbCuXmYsngc8FzyP
eN7hecLzjOfA98lUWOCDfmC8oWK8oWK8oWK8oWK8oWK8oWK8oWK8oWK8oWK8oWK8oWK8oWK8oWK8
oWK8oWK8oWJEj2JGj2JIj2JKj2JMj2JOj2JQj2JSj2JUj2JWj2JYj2Jaj2Jcj2Jej2Jgj2Jij2Jk
j2Jmj2Joj2Jqj2Jsj2Juj2Jwj2Jyj2J0j2J2j2J4j2J6j2J8j2J+j2KAj2K8oWK8oWK8oWK8oWK8
oWK8oWK8oWK8oWK8oWK8oWK8oWJUkGK8oWK8oWK8oWK8oWK8oWK8oWK8oWK8oWK8oWK8oWK8oWK8
oWK8oWK8oWK8oWKckWKekWKgkWKikWK8oWK8oWK8ocIiqbBIKiySCoukwiKpsEgqLJIKi6RivKFi
vKFivKFivKFivKFivKHCY6nwWCrGGyrGGyrGGyrGGyrGGyosSwrLksKypLAsKSxLCsuSwrKksCxp
4OBz8DksQQpLkMISpLAEKSxBCkuQwhKksAQpLEEKS5DCEqSwBCksQQpLkMISpLAEKSxBCkuQwhKk
sAQpLEEKS5BiMorCIqSwCGmxCO1tI36fgULPLwCkdSe07oTWndC6E1p3QutOaN0JrTuhdSe07oTW
ndC6E1p3QutOaN0JrTuhdSe07oTWndC6E1p3QutOaN0JrTuhdSe07oTWndC6E1p3QutO+B13Jxxp
sus3t+1bjn3LsW859i3HvuXYtxz7lmPfcuxbjn3LsW859i3HvuXYtxz7lmPfcuxbjn3LsW859i3H
vuXYtxz7lmPfcuxbjn3LsW859i3HvuXY7yPH/ki7xF8eCf9Vv/sKk+R3apbf1Me//pG93zb/0q+u
aMzfdsrArucLfP243r9rQzi6rS6uXb1/j//k/dNh3S8O5uLh/SGVp/PLk6uby/mvKx7N5zIeLu7v
d3/BrxIPcfXj3dnr+YcDeji7/+n7N+/+dHX5x6Rn0V/O84l47xf/l+Yn6i/PTy7O5hc+z1P8Mc/3
+MH+87uHn25v/v3i7urNw0GOt7vIl2ddvDzxF3F+IjL/8eT8/PT85DyfaxY9Ozt3eqjP1M6uuC3O
6VdDSRYX7HBSST737n84g6XDyf5UefbL1fX1z2fXV5dnD/Onf3/vn74PeB7mvz6c3c3P3kP65e7s
zcnd/MenN9qd7R7Pl6bfrHmOVhh286W/tA/u2eb6w5++uLu9v//h9u7q1dXND28Wb87Nw9mr+Rp9
ddu92Qc8sauQ3ABO7NOhLkjg1YJGz88u/vZ473Bz+f2bm1f7+WB89k8NjOBe5J357m/RVqKy1T5r
O5by7ZGtM8Ls7d38s7fei9cPpzCbgluBEVfqZ1b01yj6axT9NYr+GkV/jaK/RtFfo+ivUfTXKPpr
FP01iv4aRX+Nor9G0V+j6K9R9Nco+msU/TWK/hpFf42iv0bRX6Por1H01yj6axT9NYr+GkV/jaK/
RtFfo+ivUfTXKPprFP01iv4aRX+Nor9G0V+j6K9R9Nco+msU/TWK/hpFf42iv0bRX6Por1H01yj6
axT9NYr+GkV/jaK/RtFfo+ivUfTXKPprFP01iv4aRX+Nor9G0V+j6K9R9Nco+msU/TWK/hpFf42i
v0bRX6Por1H01yj6axT9NYr+GkV/jaK/RtFfo+ivUfTXKPprFP01i+fAB5uOwKaD/htF/42i/2bx
HPhg00E/jqIfR9GPo+jHUfTjKPpxFP04in4cRT+Ooh9H0Y+jAv1Af46iH0fRf6Pov1H03yj6bxT9
N4r+m8Vz/H3oA/pxVKAHAj1AG44K+F/A/wL+R/uNov1G0X6jaLdRtNso2m0U7TWK9hpFe42ivUbR
XqNor1G01yjaaRTtNIp2GkU7jaKdRtFOo2inUbTPKNpnFO0zivYZRfuMon1G0T6jaJdRtMso2mUU
7TKKdhlFu4yiXUbRHqNoj1G0xyjaYxTtMYr2GEV7jKI9RtEeo2iPUbTHLJ4DH/g4go8j+DiCjyP4
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
W5zfvrn5bjRdfjFe/sbyG/9YHpb3NP97+UMz+2f7aF+Ifav84ui7PpVXXtk3tNwHfTcOy5+YFExd
ubPq//3xYXz6XSxQ+u9GT//U4seXt1jxX54e9B+eXp59N3n6C+PRsgC2OJw+P72Sv5uVV/KyOWfs
vxtP7WeWf/W76di++Hj5k0mymSSbSbKZJJtJspkkm0mymSSbSbKZJJtJspkkm0mymSSbSbKZJJtJ
spkkm0mymSSbSbKZJJtJspkkm0mymSSbSbKZJJtJspkkm0mymSSrJFklySpJVkmySpJVkqySZJUk
qyRZJckqSVZJskqSVZKskmSVJKskWSXJKklWSbJKklWSrJJklSSrJFklySpJ9sMe4JAIcvbdLG/L
lP134/J389/KP/63QplPrDg5fVv+tX9a/uvd078+7uyXjCPHk1dfX/qOlrz79K9P/Hez8vv689oE
PdLlwdhbQ7JTkp2S7JRkpyS7T3aTlGSnJDsl2SnJTkl2SrJTkp2S7JRkpyQ7JdkpyU5JdkqyU5Kd
kuwwxNmFU5Dd4gXHFzxfCN/e2F0/TeDYUV3DShNbxej+092nJvef7r7hvj9MONe3DPhbBCQcGdzK
KSlfj+j477dn11cP774/P7u/ujh0RFCdFPH67Nfr+c2rh592D2PfUQ9f+QTsOvRm3bdzi7+/2hu1
zh9oORYtx6LlWLQci5Zj0XIsWo5Fy7FoORYtx6LlWLQci5Zj0XIsWo5Fy7FoORYtx6LlWLQci5Zj
0XIsWo5Fy7FoORYtx6LlWLQci5Zj0XIsWo6FO97MxG/u4LegjBaU0YIyWlBGC8poQRktKKMFZbSg
jBaU0YIyWlBGC8poQRktKKMFZbSgjBaU0YIyWlBGC8poQRktKKMFZbSgjBaU0YIyWlBGC8o4VFDG
kXaOD5fCcbi/tKtgiJ0Y/A8SYbFaFMDgL4T9ZKvsNSfkK9ESW7zz6+ar7PX9X+FdeS5xOcv2mOVn
+OkbX4W223dp/3yy80/HToJ+Nv2MfPEtu7jfE0N8/voYnlx84aQMBuhe4nLe3LzaNMnoYf7rw9nd
/Oz9H/rl7uzNyd38x+v5xcOJW7z+65vFV/PLw0QsffZTcn316adk8doC5OM/dLK4jxx08NIu3t7h
fdB2dEVtkfK0zbWywp9dKffpcY0iXLREvtDxhcQXMl/g4slx8eS4eHJcPKH+sniBSB2ROiJ1ROqI
1BGpJ1JPpJ5IPZF6IvVE6onUE6knUk+kgUgDkQYiDUQaiDQQaSDSQKSBSAORCpEKkQqRCpEKkQqR
CpEKkQqRCpFGIo1EGok0Emkk0kikkUgjkUYijUTaEWlHpB2RdkTaEWlHpB2RdkTaEWlHpIlIE5Em
Ik1Emog0EWki0kSkiUgTkWYizUSaiTQTaSbSTKSZSDORZiLNRKpEqkSqRKpEqkSqRKpEqkSqRMqy
mWPZzLFs5lg2c9gjWLwgfCHyhY4vJL6Q+QKRUqMcNcpRoxw1ylGjHDXKUaMcNcpRoxw1ylGjHDXK
UaMcNcpRoxw1ylGjHDXKUaMcNcpRoxw1ylGjHDXKUaMcNcpRoxw1ylGjHDXKUaMcNcpRoxw1ylGj
HDXKUaMcNcpRoxw1ylGjHDXKUaMcNcpRoxw1ylGjHDXKUaMcNcpRoxw1ylGjHDXKUaMcNcpRoxw1
ylGjHDXKUaMcNcpRoxw1ylGjHDXKUaMcNcpRoxw1ylGjHDXKUaMcNcpRoxw1ylGjHDXKUaMcNcpR
oxw1ylGjHDXKUaMcNcpRoxw1ylOBPBXIU4E8FchTgTwVyFOB/OknODJfwBnzVCBPBfKUE0858VQP
T/XwVA9P9fBUD0/18FQPT/XwVA9P9fBUD0/18FQPT/XwVA9P9fBUD0/18FQPT/XwVA9P9fBUD0/1
8FQPT/XwVA9P9fBUD0/18FQPT/XwVA9P9fAUC0+x8BQLT7HwFAtPsfAUC0+x8BQLT23w1AZP5vdk
fk+i9yR6T6L3JHpPovckek+i9yR6nz4BxvNBovckek+i9yR6T6L3JHpPovckek+i9yR6T6L3JHpa
VRcvECmJ3pPoPYnef0L0XIx4LkYCpSBQCgKlIFAKAqUgUAoCpYDG3MULmS8QaS0FXfxwOYzc/dLs
Ooof/QAS1R9f6PhC4guZL7z3gLh/+fj1+tJ7fMHzhcAXhC8QXya+THyZ+OpLb/GCnvIFIlUiVSJV
IlUiVSJVIlUiVSBFwPrjC44veL4Q+ILwhcgXOr6Q+ELmC0TKSw9Z648vEKkjUkekjkgdkToidUTq
iNQTqSdST6SeSD2ReiL1ROqJ1BOpJ9JApIFIA5EGIg1EGog0EGkg0kCkH+5kPrwmxCbEJsQmxCbE
JsQmxCbEJjyLkWcxEmkk0kikkUgjkUYijUQaiTQSaUekHZF2RNoRaUekHZF2RNoRaUekHZEmIk1E
mog0EWkiUmqRUIuEWiTUIiS4L17IREpVEqqSUJWEqiRUJaEqCVVJqEpCVRKqklCVhKokVCWhKglV
SahKQlUSqpJQlSJVKVKVIlUpUpUi9SJSLyL1IrpP/g3hC5EvdHwhf3UK2Q66Rdq2ads2bdumbdu0
bZu2bdO2bdq2Tdu2ads2bdumbdu0bZu2bdO2bdq2Tdu2ads2bdumbdu0bZu2bdO2bdq2Tdu2ads2
bdumbdt0+Numx8ykWcXze/Xj3dnr+Xsr7P3D2f1P379596eryz8mPYv+cp5PFiLlF/+X5ifqL89P
Ls7mFz7PU/wxz/eLoLvIl2ddvDzxF3F+IjL/8eT8/PT85DyfPw4jOzs7d7rqvvSf3z38dHvz7xd3
V28e1jR1r/Wra5m7tzz725i98acv7m7v73+4vbt6dXXzw5uzu8VrZ6/mm9u89/FWD+Bwnw51/vPi
x0vSxx/u5v/99tEvfje/vLqbXzw8/hP7aZX41l9d06l+vDSQoadsfDEJ6OrmoySggyRCrAZl1Xd+
lViE2+tPYxEWr93Nf95vjMZa2Q1rgNzw3KycUnE+6LiTPYaybJ3vcX6kWI+1Y0U2jHV7+rWr1wtZ
uf/D+dnF3x7h3Fx+PYLngDlem0aNvX83PntoLzfG6yshVt9S5n2m2G31t1tg4capgJUADyGmcHVA
x1+ZHX91+rzXhs9ksfQ7Wwrv+Pb1CPduO0O797vuQd/Y7uRcbHZ36498sawIcM1axfsbmgUfPH6+
H65ub/6IWx/T1tcLUX38uL5593cLDnl4e//HcOoO82f8Yf5M2Is27RJhGprwLi6B/7HTC2ovt+Nb
HaDf6QH6vRzg4trdKcqwJ5RppyjT/tZuu1tW39w+3Lxd/Prd4QRkZ2i3vtvAUmoBZwg13vcwDlDf
XVysdw/Dr/B+Huaq5+dbH9mh/vq2qn6Uv7yLZfK3gA9NhY8L/Pf811tN61gf1j0NPdlbQfj3UXo7
1HSXI74Tz61B5tjzb+p75j30iQxgZti6x7jKreibT+9E3+zx7vhY83PWPXUbbohvpRSfu0Uoy+zS
Hbnz5qsd1j33WLE+8NSao/V0rXGJ7nt9+kVSWKefZb8bwu/LB8cdn7gmjFU+4gfvGfIH7Rka9hDA
nXbJ8J09dKfMWn//K6vb6t9Z3J4ua7/+VPZUZ5D/sRGaAZ2buKd9rGh7DOui2e+5WUlU7uafkZXF
i8Opy64McZtu9L/et1vrphvrjEf94u3YAW/Edghs59sk+x7OuaYOxQPvEm12+7beQanu8p+Tr905
bIDOnR56e+lLB7YnJMfaqYob3YjFvd1sbHMwqv9jowt/f3f87vR/bHSx7w2RbHTnLXu885aNzpHs
8Ryt0+Rw6J6TFXAcsF/z8up+8S+/W7y0eHL1MH897O7Nz8Pd8HxdLf7s3dnFw9XP71cU9394AvPr
w+LJ25OfFn/l9u5qcW0e7qysC2p/laDfkcdm3ZN+wHv6nULb6SJ7KO6A9bHuki8eEVzOH86urj8s
wpfPj0wa30K24VloGR7H7Wl5MVWY1nyxIzX41ge9pacc6I5hqzfid5SMso8embefKcS9vT7yrclX
QLUd3L33H6x6je27AWHn1/qKRWf/PBwU/ug1j6GsZLbDveoZ3H8gzLEDWrbUly9r+9XZ9e2rD/cg
88cfXLxJQ1jofQ3aLj9bX1ptD7QI0LT2AFvMX7nNOYjw7hTUOjX7N2f397/c3l0ef/egQtIqOy2d
taWzHi+BZ/hetKPryGY3Mkcu7WwMrd1dbNPA9rVbu+PdX2wOa8dJFLdvH+6vLheX7M2r+bOIzvgE
8BHSJVY2Q+1q8f60aL/95WZ+d/L66teBeLD2Us5ZuyqxyxrJZ0/zrvd7n/bd39uLFk+eijHXZ+fz
6wGUAr6FrnWM7LHWW63DBuDBWx1PWxG2FWFbER4xk3VNZdu3oWJlgnlY6NDND4uHu6vztw/zYe+h
fP0sHuBG9OHdmyO56dZ7B3d937bO6djqDqXVWTZ/04+6Tb4BpJ1skS2J/vv7t2UeyJ8e/+/kl7ur
h8dvvr69nP/xpwXt/7a4mM8WF+z53z1e1mdXjxRS/dDfLf9A9eLxsf88v3t47A4+ubt+Zsif81lv
2PdyF/KCD/cl/crO2hf2+vYNYKtiwPx/5N2SFW8a7s4ur25Pnu4obx5Xaxdn999agbSLczgXZzs/
L+/8bLPZeUg+vL47nti3a2iPbRQDvtfc/cW3UYTRZl6Tod+xVBf6832vVzyMF3iVb/EGfrNF4/Hr
m/kv1wsoJ+dXl1fHr7t+8dZ1UBu0h97THZQqfsxEh7snOF549SedOXtJeN/tNs7N7aMz5u7ZZxoP
mJePdx949P2Tg32Ydr2Rtur2cLv+dnz9Pcd40L3z/vE95+sd4nMo0FZ3ML+zWvY2C4vhnarNFi97
djUO48qvb9PXuwffuyHkW522h5oP0T5qu12DHsjqtNXl86zWySsWdgZXFf/WcT0TKdlsMb3zlLwj
C8VH/8hL8N18fcG3wps3/JLIXjsgv1h+3XmCysAWE9/+pLTGmE1I5fk7n3f7UXkJ2+Jr3dgMq2Pq
sN6tY0c+bVPBWj+Y9bma1JrT7PfmNLu+uvlb+f/H+8X7P5xdP3oszh4Wn6v7AwZUfxvGLjOLvkIZ
r4abkLBVVhtP8JvFymB+d7dYDewtPnYdBCt+Or59mezuA3C0E1MhOOCJOeyQ+wM3MQywp/C4G9Gv
dq0XV6+fAO/6U7PN7f7y6dnbh9sfby/e3p+8fnv9cPXmen7ycPV6fr9Kssu6nZPrC9yH83aYz/pL
3rI+QAVhlWtqm8mih/j8fH0dX15bgLrYa1zNYXf6t7gy1jxbBwyq/rQwf+DQhy3q0f7Z5EB89tQO
cXjwrt+cgcYib8PeH/5meWNW0/Khadgz3ZnZfcTmKmI8iOk7+4K9u4/B0A7x5UbMHX6QzwH2ST+5
DRrAhtSGmAZ3Y/qSp3I8i82rth3UtoPadtD9gReXm95qDGTXamcxx1udhw2rEV8V1oFYY4fnhT32
8ucoYaO313uig2Nsxezl1DyfLdujroI3F+i9by3XXL63lue1qlM7Utn1btivb3+Z3z21953dX1xd
rbKDNvgc1WdTQzmUq2XnV8h+ms134pRb2wa9z4rFM/C7b4l/Zw7HY+dy+6HMhN0I7ssZ8XHAeKsX
v+uyPdEfcK/lUGAPWQ3eLcqhnMqD74M/y5OxtzXdoC/gHdS7Lq5v7+fDm7D9CbqdV+JuXs1P/J5q
LwfcbdrgeNcpph5uM2snF//9087M402ce/pr5fn7v3Z2/+7m4oflHJSDvB/rAGqT445VRPtAM4Ma
gbseupc7BXcoWxC7W+1/IOMjN3qsCGQIgdFb7yZsM5P2Gzz+4/zh4qeT+7uLhei9eXh38svVw08n
52sMS9jyDV5HZoZdIRvEkez3ytulF7M17ezwbuzrn+K1y/D7OWkr3EC/vbm6uL0c7LTyzwMdaLv8
cXfTXnLv1Ppv5IHU8us0MJAdxBfUL3iI+4Yt3tMDrnGGP2hk+fT2zfxmj/JypJ2Yj+XoENvtX12W
Hfr0HmoHaeWTvOM93LD7VZ8tRvz+yolH2YzZ5+fgeHsJ7zlrnfr3cbZ/Vn4DNtoG2Lajep1PxXHm
nIe1VhRr7ta83FXI4UqzR9tdOMZ+1j7p9KjbJu8ZdYi7JocF923CPeBaaEswB95k3G2xtSxAB+ap
2L4W+WziPj46/+to/2H2P/yL2f/49pHspgb+wvpdj1iU2OC87zmu8+b26cd+fRh6qWHXp2432xj1
6dvzOIfl0/ufbn/559vLs+vBduzVCHfdtTf/77dXd/PLH84eHu6uzt8+zAdgpv08pg2PfEX6D0Nr
YAv7bWB7JsvMzYv4LzFA58DlhB2Wjw7hTjrsarim5eH1eu16M3i/uxm19O9lq+jIzXbfoP3FJfW4
2Xw/v/hj+Luryz+6oW3qrfEOHWOvZQ14Q4tAGn5Zcg2uG1LNam0v9SH3pg58wW7Xu7hV2ePHs6vr
t3fzfQ+83yxJbF9V6s+vYfbV67iPHb/N86L2W3Lf+swOqUhVrfb2dXU8lxJs2LgEuwe5eAaB2hsx
8Bb9Ay+0d/b32iU64LvzF2tIX/dEvOze/MPuZXzMgkPYQ90A2ctNXt5yOfTlu8X7+cMQtjQMxn52
MT5cSmfXb346+8MKRslj3IcAXNsF3+sK1C65QSzaVgKzwcX1+vby7fX8DxcLwIs/cVJsrIO47D+P
7CBjQxck/f3irubN9fzXi9vrxdt6P8T2recWxLmT92Df/H8+fzh7Op/DDnLYVDKGdd+2EbhdvLPH
PJANDuJ+fvfzvDgEl5+dp2rj47r5x5s/Lm76HpONr+233j78mBfH+HcXD398vCH8w1/PFp+wp2/9
3eXb16/ffW1v7PiLpn1X5oaxwfL2evfmrx1fJX7nn8VdX8a7+RR//j7jEJt0Bzpd34Xx8uD++MvV
zeXtL/cnzsfT5VkMA5Gsrd+GrcMtdvp2LM/044neiouHgNEPegtx99fVnnZJ3l4fKNt6rcXKM/vY
fIHMhq5V/tmS5BZ9cIOUu6O9EcfdWFj/jT9M9MdBLpaVxXhwknMcvX/uN9ZbV5p2vSG0zl7H/fzs
7uKnH55eHEwx9jAq/pyuux20jO1xls6zyTr6Qpl3sIMntsJ7wI6RrXDugU4Hc5DPsrC2slbsZ3tk
yaiX727OXl9dnFy9fvyE4en9SSmHz+/ubu++v397PtwC5/YFsUO2PA3yIt9B6ehZT9I+wnrsuYYv
76Etv9VuWu3mOSzPN9fN/YXhvbSSwTN31Lf85RcxWPyFWjueV+Vh3dLL4RPh161N7PSInknq7+4r
Qtv3336yzh5AT/B6mHYzB+AgW/Ub3C496wS9PR32yzaC7aoqsnVPxx6TeY48uXPHp2aYQz4PVF1b
fsafPr5Pb87jT/5yd3vz6p+vXs+fFmB/vf/Tm6s38z/+ND+7nN/9fybLxdl/LL73/3tadC1QXN38
fwdkzdjB0QyfQbdbwO5rnu+x3q+/+3WI1iC/55rJLs/fs7viv3z/eb0g96vbm+PbQ2soe90D2/Nn
aOcFvQ83sOe3rx8rrydfKL0eFZPrzufrwjrCFsxuciB3fu6utzx3OzoRWwyUa/y7x5r+Oh+3/ZTx
/eBGPDwPr9qBLoc8sGvheVWdd3/8R/Vd+QGx1PXQWGr/deaPb2QHUWReGdBedH0ppYcIGF6/bjSw
pIyVTuOzvP3Z7K3Zk9Hu9vr7+4ezu4fHmufyw3HijjwNaSV4Q18Xt8rmM6hsrkQyf/r1mUbXPLfh
kft8C4d/AT+Lrq+dDEPfZCvu5vbh5Hz++OLd/GbBVEOeHbK5qB3kdn2z+4/Br3H375Q6xBZbGPqw
uH1f3Iduu/g97o8fuP/tmY60eD5TYPanr2v7eQdupvk83T6HvfYXs9P+sPjizeKNnq86h+d3FsTf
evEH0wK60RW9Dpm0m5293exsfiQfbpMLH5rD7yB/62Zxu/z495Y7S0udKifu0BgO9fc2Ot7DLDkP
V3VrVeEhFdWO3Ky+HVHtZ0M57NtYvC4XHu0wD+tGX4GlX8obPsQ3+xnYeJ9Pu1DYoa3pGzVHP/RC
6iAu1SN5lPa4Dvnw3sipnJwvlml/vf/+7P7q/nh9UPX6cAB9UGsAqq+p0f0/3B+01+NAXpgvXjQv
re9hx2FC8aCf4D/9eoAq9EqX+GBDhboXnFwVn/1t7ifX8+/PvrGzC31QN6hHSamKe65BHc5INcQJ
NJumPn+biI+qjM8oVvvotH/Ye4pjdp8d3Mazb5BDZoZ2G3P0VdJuOmT2GJaz39aetaNsdlfjvT/5
6OoZpA/qzd3V67O7d3sblbvbmjnO5+/EEPWZ9+hAV/HKRcUdVRW+XML79WG41+ZzqqKt3+3z68PR
eXPHN/zb75UfOUN4Ryf1pSU/HrDjZSfOoK2V4KsNGoMIwd2J2L2UZNx1D+14FqgDvAlH4e3NFp2L
NcTi6dXZ9f0Ks3GO1u06zPdsb3fB+9ywP9YH9Zs3Yc+li2B3W/erHPgOd+03Z4Q9JVbczX+e390v
Ll53tqGD5CWvZg6YzcE3YtX3e92lwpGa/1f+4O9ks22lz+g+a2J7s1Y+u3vL3y1bbNYTcpgO0s/o
y94txdsZep9RMuPHH89Xj13Xizdrcd/x4+3TuT7c2nhP18KRBCSenq555/j7cLpuua+1VtV7X7L6
O3PrUsM/RxID4Pu1a5C70nx81J/lfse6H8H9jHp/NsWiPVw2q2/qHGBF/xWULyeK4mrBjf74Ex8+
wnGgTcV25e3pylvTMzzo/Mi9diR+RVmGOFVrI3k4/M7MpzvcH32Gnm0i6QC6rKrT+Dzu7/bXqLv1
Z3dfu0IfdHRQeasH2hpa5+g3W5W9vXtcMpZC1MnN2+vrobWgfQHh/reihtILvAq6F9Aq2ey+6yB5
NAjUn4zbm6WNYVi6+3Wgu60wfZ4p9hH88gy8cavd9+y46/S5RHBscKXs9fbzufiGD7MzuOnnuKnb
4NVtvWX625u7+cXtq5ur+2/ehW19g1m+OaQazU6OZrC8ueWV0O54XwwnfG31u4NP/cP89eNvfdgy
Pbu8vHq0H9+fPNyevDm7u3/82V8f/5WTy9uLt48/c/+Hm9vL+funu18BHmgLYtdZS7s6lwc2Wp2f
PG2Tn5Rt8m+2wAygOPlZxC88nPVAhrMXZrp6ZlN3PhHy45LAvmJWDupm2uCcbuGZO2DT73oHdpRG
k12d+70Pp1/5A/HSzBDPcnL7wDah9utS2ePe4ToS8wFGIZAt2qQ3v1nb1R32EQe4H+QQDlpEv3h7
/3D72l49mf96MX/zfuj43jGuvit4vlf73FfPwtqLzM982l7i9XYAa9z2u8nnOxlzNNgVw2HdcdtG
bg5oZuFOIoVfsufloKv14S5rfmfemWfSNPBsNuO/clsxqG3pTXFufsv1jeWz/dLT+nlgfXvrQl91
S+CAI7wO14+++6roJzfFH39Glt+6+Onq+vLk8Ub4/mTxiXlsJvx1D/tt3/jLl1c/f+vPDmvjfZtT
+yyqAvt6g4d88GvtrL5783iEZzevFuT3sEA2AL/ZZyHtvUn6fNBN0uebNUlveGfXpt0fsV5+qCH1
gx/Mt+5t1xHrxIc8gDZxvq3Df7fr8PVuGvblWHm3eFd/LZ/bvx5zdOP6B32UwQW/ze9uf5pfvfpp
cKHw9Tv5Qsh/1fdhr52LTwd2snj3Tu6vb385uZy/eRzvcXPxbmiXwNeB7ugcbbbu+9wS9Hinb8fH
sPcF3cUQ13EXax37f/3zP/39gpH+bf7fbxcvfiQjl/Prs3ePdziv7/8YTk9PD7aFtwmtDmP+2xeg
DZfzj2LMPPAt6DZ/8wDtCM9k2+nrEraHrd+Xu1rZ6v54ra67wZdftriqjtmVj5vcIc1UOGCn0Tpn
4Tid/hshPGTfyDFO4Z7vuZ9RT+OWxzCgbuDNjmT/1ald+C+e1iGLD1T5xtKp/ebdHhl3J318Ry8O
bXvH1jbojrBh1nZgXvwOzEYf5vMzI8CT+zfzi6sfr+brM+8aJaQ9NiocvBzzhXP3/CrxG79/G9ZB
v7Qn9Pbu+vgtPAZiQEOXhr4IO1I74vH6L1sj5NHWds+9H3KLFdXiHvv2cvFv/uF6/urs4t3J6/OT
h8W/sng7F1p09So+/d/J00/NT55++UkX7k/evD3bI69uDWuve7lfEOlB7et8EeNz3OBpPT/r3GUc
NdV7JRAv22C37W3O6rfOg2zNvjxco8j9/O7q7Prqt8+J4u3bh/nd42tD7RBZHfyG57JVwVoVrFXB
jteHvM5N7N2O/rkfrm4u57/uuUFlo1vFq5vF2/84JPCRAMst4Yl7nh0OAx/otPXiaTUCWPfyfg5w
3398jgx2s3XCgcDt9OM/8OXoi7Skb7tA+dLa7+ez67fzf15cXMevuNdQ9mwP3V5M990p9xJ6PXe1
mhpg08+uwR+062pH4LcsOgzarX55wJFeXxLaQVWnvwyyladfanm6luSjFqnXgLIbl+H91W8HvCna
At+aHQrn12c3f3v6xT+VM+z++F0//S5Ov/OTpy9m5Ysfls+70/LFWXk4Lw8X5eGyPMzLw4/l4VV5
+Kk8XJWHv5aHv5WH6/LwujzclIfb8vCmPPx3ebgrD/fl4aE8vC0PP5eHX8rDr+XhXXn4bQk/je2L
iX1hR5qWR/rdyNkX3r4I9oXYF9G+6OyLZF9k+0Lti5F9YX99ZH99ZH999P6v98svxqf2heEZG56x
4RkbnrHhGRueseEZG56x4RkbnrHhGRueseEZG56x4ZkYnonhmRieieGZGJ6J4ZkYnonhmRieieGZ
GJ6J4ZkYnonhmRieieGZGp6p4ZkanqnhmRqeqeGZGp6p4ZkanqnhmRqeqeGZGp6p4ZkanqnhmRme
meGZGZ6Z4ZkZnpnhmRmemeGZGZ6Z4ZkZnpnhmRmemeGZGZ6Z4ekNT294esPTG57e8PSGpzc8veHp
DU9veHrD0xue3vD0hqcveGbfSYGxPIblESzxL9EvsS+Rz/5nefj78vAP5eF/lYd/LA//VB7+uTz8
S3n41/Lw5/Lwv8vDv5WHfy8P/1Ee/rM8/J/y8H/Lw3+Vh/9XHv6yhB/H9sXEvpjaF0vYPyyfL6lx
VqhxVqhxVqhxVqhxVqhxVqhxVqhxVqhxVqhxVqhxVqhxVqhxVqhxVqhxVqhxVqhxVqhxVqhxVqhx
VqhxVqhxVqhxVqhxVqhxVqhx9tsSfrIjTXakyY402Zu5pMaZUePMqHFm1DgzapwZNc6MGmdGjTOj
xplR48yocWbUODNqnBk1zowaZ0aNM6PGmVHjzKhxZtQ4M2qcGTXOjBpnRo0zo8aZUePMqHFm1Dgz
apwZNc6MGmdGjTOjxplR48yocWbUODNqnBk1zowaZ0aNM6PGmVHjzKhxZtQ4M2qcGTXOjBpnRo0z
o8aZUePMqHFm1DgzapwZNc6MGmdGjTOjxplR48yocWbUODNqnBk1zowaZ0aNM6PGmVHjzKhxZtQ4
M2qcGTXOjBpnRo0zo8aZUePMqHFm1DgzapwZNc6MGmdGjTOjxplR48yocWbUODNqnBk1zowaZ0aN
M6PGmVHjzKhxZtQ4M2qcLakxGzXmcgy5HEEu+HNBn2fLn+3Lw/8sD39fHv6hPPyv8vCP5eGfysM/
l4d/KQ//Wh7+XB7+d3n4t/Lw7+XhP8rDf5aH/1Me/m95+K/y8P/Kw1+W8OPYvpjYF1P7Ygn7h+Xz
bnmkZ+XhvDxclIfL8jAvDz+Wh1fl4afycFUe/loe/lYersvD6/JwUx5uy8Ob8vDf5eGuPNyXh4fy
8LY8/FwefikPv5aHd+XhtyX8ZEea7EiTHWmyN7NQYzZqzEaN2agxGzVmo8Zs1JiNGrNRYzZqzEaN
2agxGzVmo8Zs1JiNGrNRYzZqzEaN2agxGzVmo8Zs1JiNGrNRYzZqzEaN2agxGzVmo8Zs1JiNGrNR
YzZqzEaN2agxGzVmo8Zs1JiNGrNRYzZqzEaN2agxGzVmo8Zs1JiNGrNRYzZqzEaN2agxGzVmo8Zs
1JiNGrNRYzZqzEaN2agxGzVmo8Zs1JiNGrNRYzZqzEaN2agxGzVmo8Zs1JiNGrNRYzZqzEaN2agx
GzVmo8Zs1JiNGrNRYzZqzEaN2agxGzVmo8Zs1JiNGrNRYzZqzEaN2agxGzXm99TYGzUuf2f5G8uf
X/60/WxB3hdq7As19oUa+0KNfaHGvlBjX6ixL9TYF2rsCzX2hRr7Qo19oca+UGNfqLEv1NgXauwL
NfaFGvu/LOEvqbE3auyNGnujxv6H5fMlNfaFGvtCjX2hxr5QY1+osS/U2Bdq7As19oUa+0KNfaHG
vlBjX6ixL9TYF2rsCzX2hRr7Qo19oca+UGNfqLEv1NgXauwLNfbvNqwrnP7x8QpYrgaWt33Lm77l
Ld/yhm95u7e82RuV1cCorAZGZTUwKquBUVkNjMpqYFRWA6OyGhiV1cCorAZGZTUwKquBUVkNjMpq
YFRWA6OyGhiV1cCorAZGZTUwKquBka0GRrYaGNlqYGSrgdEPy+fL1cCorAZGZTUwKquBUVkNjMpq
YFRWA6OyGhiV1cCorAZGZTUwKquBUVkNjMpqYFRWA6OyGhiV1cCorAZGZTUwKquBUVkNjMpqYFRW
A6OyGhiV1cCorAZGvy3hJzvSZEea7EiXq4GRrQZGthoY2WpgZKuBka0GRrYaGNlqYGSrgZGtBka2
GhjZamBkq4GRrQZGthoY2WpgZKuBka0GRrYaGNlqYGSrgZGtBka2GhjZamBkq4GRrQZGthoY2Wpg
ZKuBka0GRrYaGNlqYGSrgZGtBka2GhjZamBkq4GRrQZGthoY2WpgZKuBka0GRrYaGNlqYGSrgZGt
Bka2GhjZamBkq4GRrQZGthoY2WpgZKuBka0GRrYaGNlqYGSrgZGtBka2GhjZamBkq4GRrQZGthoY
2WpgZKuBka0GRrYaGNlqYGSrgZGtBka2GhjZamBkq4GRrQZGthoY2WpgZKuBka0GRrYaGNlqYGSr
gZGtBka2GhjZamBkq4GRrQZGthoY2WpgZKuBka0GRrYaGNlqYGSrgZGtBkZWKBkbNS6vueUVt7ze
llfb8lpbXmnjQo3jQo3jQo3jQo3jQo3jQo3jQo3jQo3jQo3jQo3jQo3jQo3jQo3jQo3jQo3jQo3j
Qo3jQo3jQo3jvyzhL6lxbNQ4NmocGzWOf1g+X1LjuFDjuFDjuFDjuFDjuFDjuFDjuFDjuFDjuFDj
uFDjuFDjuFDjuFDjuFDjuFDjuFDjuFDjuFDjuFDjuFDjuFDjuFDjuFDjuFDjuFDj+Lcl/GRHmuxI
kx1psjdzSY1jo8axUePYqHFs1Dg2ahwbNY6NGsdGjWOjxrFR49iocWzUODZqHBs1jo0ax0aNY6PG
sVHj2KhxbNQ4NmocGzWOjRrHRo1jo8axUePYqHFs1Dg2ahwbNY6NGsdGjWOjxrFR49iocWzUODZq
HBs1jo0ax0aNY6PGsVHj2KhxbNQ4NmocGzWOjRrHRo1jo8axUePYqHFs1Dg2ahwbNY6NGsdGjWOj
xrFR49iocWzUODZqHBs1jo0ax0aNY6PGsVHj2KhxbNQ4NmocGzWOjRrHRo1jo8axUePYqHFs1Dg2
ahwbNY6NGsdGjWOjxrFR49iocWzUODZqHBs1jo0ax0aNY6PGsVHj2KhxbNQ4NmqcGDUu3+PlO7x8
f5fv7vK9Xb6zk0KNk0KNk0KNk0KNk0KNk0KNk0KNk0KNk0KNk0KNk0KNk0KNk0KNk0KNk0KNk0KN
k0KNk0KNk0KNk78s4S+pcWLUODFqnBg1Tn5YPl9S46RQ46RQ46RQ46RQ46RQ46RQ46RQ46RQ46RQ
46RQ46RQ46RQ46RQ46RQ46RQ46RQ46RQ46RQ46RQ46RQ46RQ46RQ46RQ46RQ46RQ4+S3JfxkR5rs
SJMdabI3c0mNE6PGiVHjxKhxYtQ4MWqcGDVOjBonRo0To8aJUePEqHFi1DgxapwYNU6MGidGjROj
xolR48SocWLUODFqnBg1TowaJ0aNE6PGiVHjxKhxYtQ4MWqcGDVOjBonRo0To8aJUePEqHFi1Dgx
apwYNU6MGidGjROjxolR48SocWLUODFqnBg1TowaJ0aNE6PGiVHjxKhxYtQ4MWqcGDVOjBonRo0T
o8aJUePEqHFi1DgxapwYNU6MGidGjROjxolR48SocWLUODFqnBg1TowaJ0aNE6PGiVHjxKhxYtQ4
MWqcGDVOjBonRo0To8aJUePEqHFi1DgxapwYNU6MGidGjROjxolR48SocWLUODFqnBo12pblckNu
uR233Ixb/uxyY7BQ47RQ47RQ47RQ47RQ47RQ47RQ47RQ47RQ47RQ47RQ47RQ47RQ47RQ47RQ47RQ
47RQ47RQ47RQ4/Qv1l5gO4hxMrRQu9YZ0TojWmdE64xonRGtM6J1RrTOiNYZ0TojWmdE64xonRGt
M6J1RrTOiE87I47s6m6dF63zonVetM6L1nnROi9a50XrvGidF63zonVetM6L1nnROi9a50XrvPhi
58Vx6hbHj5s9fuTu8w68fSYJsC3fd5eT8IY8NW61P/rw093ib317nODBM7VqYAPP0doqce4pzuj+
/uTt/Xzx9r9afP/k/uHd46SLn+bzxaX/xW89ITg5PXVDzYTf0ZFtGDC3eqDdHsKsBj76fKsYt+0T
BOdbzw/b9WiNgYdg7y4SbdCTvddEeeBhbztAt88hLavBWyd2+Jf5/G/HDz9+j2L/OjDo2NX5ZrGr
X9kJz/1vy/aCZJ0IyToRknUiJGu2WLYu9da61FvrUm+tS721LvXWutRb61JvrUu9tS711rrUW+tS
b61LvbUu9da61FvrUm+tS721LvXWutRb61JvrUu9tS711rrUW+tSb61LvbUu9da61FvrUm+tS721
LvXWutRb61JvrUu9tS711rrUW+tSb61LvbUu9da61FvrUm+tS721LvXWutRb61JvrUu9tS711rrU
W+tSb61LvbUu9da61FvrUm+tS721LvXWutRb61JvrUu9tS711rrUW+tSb61LvbUu9da61FvrUm+t
S721LvXWutRb61JvrUu9tS711rrUW+tSb61LvbUu9da61FvrUm+tS721LvXWutRb61JvrUu9tS71
1rrUW+tSb61LvbUu9da61FvrUm+tS721LvXWutRb61JvrUu9tS71y4qZni4rZno6Kg/j8jApD9Py
sPzZvjz8z/Lw9+XhH8rD/yoP/1ge/qk8/HN5+Jfy8K/l4c/l4X+Xh38rD/9eHv6jPPxnefg/5eH/
lof/Kg//rzz8ZQk/ju2LiX0xtS+WsH9YPu+WR3pWHs7Lw0V5uCwP8/LwY3l4VR5+Kg9X5eGv5eFv
5eG6PLwuDzfl4bY8vCkP/10e7srDfXl4KA9vy8PP5eGX8vBreXhXHn5bwk92pMmONNmRJnszCzU+
fuHti2BfiH0R7YvOvkj2RbYv1L4Y2Rf210f210f210fv//ryAllS4+MXhmdseMaGZ2x4xoZnbHjG
hmdseMaGZ2x4xoZnbHjGhmdseMaGZ2J4JoZnYngmhmdieCaGZ2J4JoZnYngmhmdieCaGZ2J4JoZn
YngmhmdqeKaGZ2p4poZnanimhmdqeKaGZ2p4poZnanimhmdqeKaGZ2p4poZnZnhmhmdmeGaGZ2Z4
ZoZnZnhmhmdmeGaGZ2Z4ZoZnZnhmhmdmeGaGpzc8veHpDU9veHrD0xue3vD0hqc3PL3h6Q1Pb3h6
w9MbniU1OqNGV37Hld9w5edd+Wm3/NmC3BVqdIUaXaFGV6jRFWp0hRpdoUZXqNEVanSFGl2hRleo
0RVqdIUaXaFGV6jRFWp0hRpdoUb3lyX8JTU6o0Zn1OiMGt0Py+dLanSFGl2hRleo0RVqdIUaXaFG
V6jRFWp0hRpdoUZXqNEVanSFGl2hRleo0RVqdIUaXaFGV6jRFWp0hRpdoUZXqNEVanSFGt1vS/jJ
jjTZkSY70mRv5pIanVGjM2p0Ro3OqNEZNTqjRmfU6IwanVGjM2p0Ro3OqNEZNTqjRmfU6IwanVGj
M2p0Ro3OqNEZNTqjRmfU6IwanVGjM2p0Ro3OqNEZNTqjRmfU6IwanVGjM2p0Ro3OqNEZNTqjRmfU
6IwanVGjM2p0Ro3OqNEZNTqjRmfU6IwanVGjM2p0Ro3OqNEZNTqjRmfU6IwanVGjM2p0Ro3OqNEZ
NTqjRmfU6IwanVGjM2p0Ro3OqNEZNTqjRmfU6IwanVGjM2p0Ro3OqNEZNTqjRmfU6IwanVGjM2p0
Ro3OqNEZNTqjRmfU6IwanVGjM2p0Ro3OqNEZNXqjRl9+x5ff8OXnfflpv/zZgtwXavSFGn2hRl+o
0Rdq9IUafaFGX6jRF2r0hRp9oUZfqNEXavSFGn2hRl+o0Rdq9IUafaFG/5cl/CU1eqNGb9TojRr9
D8vnS2r0hRp9oUZfqNEXavSFGn2hRl+o0Rdq9IUafaFGX6jRF2r0hRp9oUZfqNEXavSFGn2hRl+o
0Rdq9IUafaFGX6jRF2r0hRr9b0v4yY402ZEmO9Jkb+aSGr1Rozdq9EaN3qjRGzV6o0Zv1OiNGr1R
ozdq9EaN3qjRGzV6o0Zv1OiNGr1Rozdq9EaN3qjRGzV6o8bFF3nzKQuPv25HMbajGNtRjO0oxnYU
YzuKsR3FxI5iYkcxsaOY2FFM7CgmdhQTO4qJHcXEzurE8EwMz8TwTAzPxPBMDM/E8EwNz9TwTA3P
1PBMDc/U8EwNz9TwTA3P1PBMDc/U8EwNz9TwTA3P1PDMDM/M8MwMz8zwzAzPzPDMDM/M8MwMz8zw
zAzPzPDMDM/M8MwMz8zw9IanNzy94ekNT294esPTG57e8PSGpzc8veHpDU9veHrDsyTUYIQayu+E
8huh/HwoPx2WP1uQh0KooRBqKIQaCqGGQqihEGoohBoKoYZCqKEQaiiEGgqhhkKooRBqKIQaCqGG
QqihEGoohBr+soS/JNRghBqMUIMRavhh+XxJqKEQaiiEGgqhhkKooRBqKIQaCqGGQqihEGoohBoK
oYZCqKEQaiiEGgqhhkKooRBqKIQaCqGGQqihEGoohBoKoYZCqKEQavhtCT/ZkSY70mRHmuzNXBJq
MEINRqjBCDUYoQYj1GCEGoxQgxFqMEINRqjBCDUYoQYj1GCEGoxQgxFqMEINRqjBCDUYoQYj1GCE
GuxeMxg1BqPGYNQYjBqDUWMwagxGjcGoMRg1BqPGYNQYjBqDUWMwagxGjcGoMRg1BqPGYNQYjBqD
UWMwagxGjcGoMRg1BqPGYNQYjBqDUWMwagxGjcGoMRg1BqPGYNQYjBqDUWMwagxGjcGoMRg1BqPG
YNQYjBqDUWMwagxGjcGoMRg1BqPGYNQYjBqDUWMwagxGjcGoMRg1BqPGYNQYjBqDUWMwagxGjcGo
MRg1BqPGYNQYjBqDUWMwahSjRim/I+U3pPy8lJ+W5c8W5FKoUQo1SqFGKdQohRqlUKMUapRCjVKo
UQo1SqFGKdQohRqlUKMUapRCjVKoUQo1SqFG+csS/pIaxahRjBrFqFF+WD5fUqMUapRCjVKoUQo1
SqFGKdQohRqlUKMUapRCjVKoUQo1SqFGKdQohRqlUKMUapRCjVKoUQo1SqFGKdQohRqlUKMUapTf
lvCTHWmyI012pMnezCU1ilGjGDWKUaMYNYpRoxg1ilGjGDWKUaMYNYpRoxg1ilGjGDWKUaMYNYpR
oxg1ilGjGDWKUaMYNYpRoxg1ilGjGDWKUaMYNYpRoxg1ilGjGDWKUaMYNYpRoxg1ilGjGDWKUaMY
NYpRoxg1ilGjGDWKUaMYNYpRoxg1ilGjGDWKUaMYNYpRoxg1ilGjGDWKUaMYNYpRoxg1ilGjGDWK
UaMYNYpRoxg1ilGjGDWKUaMYNYpRoxg1ilGjGDWKUaMYNYpRoxg1ilGjGDWKUaMYNYpRoxg1ilGj
GDWKUaMYNYpRoxg1ilGjGDWKUWM0aozld5ZMs+SZJcssOSYW5LFQYyzUGAs1xkKNsVBjLNQYCzXG
Qo2xUGMs1BgLNcZCjbFQYyzUGAs1xkKNsVBjLNQYCzXGvyzhG2CjxmjUGI0a4w/L50tqjIUaY6HG
WKgxFmqMhRpjocZYqDEWaoyFGmOhxlioMRZqjIUaY6HGWKgxFmqMhRpjocZYqDEWaoyFGmOhxlio
MRZqjIUa429L+MmONNmRJjvSZG/mkhqjUWM0aoxGjdGoMRo1RqPGaNQYjRqjUWM0aoxGjdGoMRo1
RqPGaNQYjRqjUWM0aoxGjdGoMRo1RqPGaNQYjRqjUWM0aoxGjdGoMRo1RqPGaNQYjRqjUWM0aoxG
jdGoMRo1RqPGaNQYjRqjUWM0aoxGjdGoMRo1RqPGaNQYjRqjUWM0aoxGjYsv4uATFFv/Reu/aP0X
rf+i9V+0/ovWf9H6L1r/Reu/aP0Xrf+i9V+0/ovWf9H6Lzbovxho5mLr72j9Ha2/o/V3tP6O1t/R
+jtaf0fr72j9Ha2/o/V3tP6O1t/R+jtaf8dG/R3DyWncJM/sT7/u42/Mfz67fnv2GL9V/tDJHpLB
jhwE96dfhxsFt91xfuHN2zD0ZqNz+264b/u7550A+JVjHGDs4q4DF79waX/7rG6aUHe4wL7dJqbt
73QeMaxuz9fIpnlafk+hj3sgpAGmkflVxWk7OlrhvGyTIrkPDtnN1X+kq3Pfea6rBuxty8aDTIY8
uJh/4apa4RMzlEjZ416f+zlRh9XVFRj0gJGwh8F8sNTgZ5j1uto7cPHuYvHZeLj87eTs4mKl0OpN
P/kbMv1B1dnWhWe7hnSYX3k68KvXC9a7/8P52cXfHm/ybi6/f3PzauDrGr/vmstnLvOjH9GOruzD
To95/zZ89jIbdKr587+KP6an4enwtty+1jSfo1SNBjQ1aQMJ2Wxa0k5k4ZuJ7wcZZfTcJjdtyWLD
OOnPZH7U7m4tdn/zuNtbn92rxyZCuF1NcsjjG/xm0xu2vkX65ery4afDnY9tAO51qxP3Mlc311c3
C374+bEStDzy443R2g7yjs7bnmtr/sVOKfNrvQsbDgU74E3toYu/e9l63fNa6IsfxqEXUzcDvukl
cahNt7WLvTvcVAl7JLYjzWH7oMm7viqe1dC8FU/Djjfpwtpb6wfe7Vz3tBx6c2RFfLu5c7h/mL95
enJxvXi/Ts5Obm4v5394/3vl1Yufrq4vF4vOId8CrX8gL6LzYm97O8+jprvlfcwwmedbuXuPDeTW
xz61Pvap9bFPrY99an3sU+tjn1of+9T62KfWxz61PvaZ9bHPrI99Zn3sM+tjn1kf+8z66meGZ2Z4
ZoZnZnhmhmdmeGaGZ2Z4ZoZnZnh6w9Mbnt7w9IanNzy94ekNT294esPTG57e8PSGpzc8veFZWmo6
s9R05Xe68htd+fmu/HS3/NmCvCuWmq5YarpiqemKpaYrlpquWGq6YqnpiqWmK5aarlhqumKp6Yql
piuWmq5YarpiqemKpaYrlpquWGq6Yqnp/rKEv7TUdGap6cxS05mlpvth+XxpqemKpaYrlpquWGq6
YqnpiqWmK5aarlhqumKp6YqlpiuWmq5YarpiqemKpaYrlpquWGq6YqnpiqWmK5aarlhqumKp6Yql
piuWmq5YarpiqemKpab7bQk/2ZEmO9JkR5rszVxaajqz1HRmqenMUtOZpaYzS01nlprOLDWdWWo6
s9R0ZqnpzFLTmaWmM0tNZ5aaziw1nVlqOrPUdGap6cxS05mlpjNLTWeWms4sNZ1Zajqz1HRmqenM
UtOZpaYzS01nlprOLDWdWWo6s9R0ZqnpzFLTmaWmM0tNZ5aaziw1nVlqOrPUdGap6cxS05mlpjNL
TWeWms4sNZ1Zajqz1HRmqenMUtOZ27AzauyMGjujxs6osTNq7IwaO6PGzqixM2rsjBo7o8bOqLEz
auyMGjujxs6osTNq7IwaO6PGzqixM2rsjBo7o8bOqLEzauyMGjujxs6osTNq7IwaO6PGzqixM2rs
jBo7o8bOqLEzauyMGjujxs6osTNqTEaNqfzO8vO3/PQtP3vLT14qyFOhxlSoMRVqTIUaU6HGVKgx
FWpMhRpTocZUqDEVakyFGlOhxlSoMRVqTIUaU6HGVKgxFWpMf1nCX1JjMmpMRo3JqDH9sHy+pMZU
qDEVakyFGlOhxlSoMRVqTIUaU6HGVKgxFWpMhRpTocZUqDEVakyFGlOhxlSoMRVqTIUaU6HGVKgx
FWpMhRpTocZUqDH9toRvb41RYzJqTEaNyagxGTUmo8Zk1JiMGpNRYzJqTEaNyagxGTUmo8Zk1JiM
GpNRYzJqTEaNyagxGTUmo8Zk1JiMGpNRYzJqTEaNyagxGTUmo8Zk1JiMGpNRYzJqTEaNyagxGTUm
o8Zk1JiMGpNRYzJqTEaNyagxGTUmo8Zk1JiMGpNRYzJqTEaNyagxGTUmo8Zk1JiMGpNRYzJqTEaN
yagxGTUmo8Zk1JiMGpNRYzJqTEaNyagxGTUmo8Zk1JiMGpNRYzJqTEaNyagxGTUmo8Zk1JiMGpNR
YzJqTEaNyagxGTUmo8Zk1JiMGpNRYzJqTEaNyagxGTUmo8Zk1JiMGpNRYzZqzOV3cvmNXH4+l5/O
y58tyHOhxlyoMRdqzIUac6HGXKgxF2rMhRpzocZcqDEXasyFGnOhxlyoMRdqzIUac6HGXKgxF2rM
f1nCX1JjNmrMRo3ZqDH/sHy+pMZcqDEXasyFGnOhxlyoMRdqzIUac6HGXKgxF2rMhRpzocZcqDEX
asyFGnOhxlyoMRdqzIUac6HGXKgxF2rMhRpzocZcqDH/toSf7EiTHWmyI032Zi6pMRs1ZqPGbNSY
jRqzUWM2asxGjdmoMRs1ZqPGbNSYjRqzUWM2asxGjdmoMRs1ZqPGbNSYjRqzUWM2asxGjdmoMRs1
ZqPGbNSYjRqzUWM2asxGjdmoMRs1ZqPGbNSYjRqzUWM2asxGjdmoMRs1ZqPGbNSYjRqzUWM2asxG
jdmoMRs1ZqPGbNSYjRqzUWM2asxGjdmoMRs1ZqPGbNSYjRqzUWM2asxGjdmoMRs1ZqPGbNSYjRqz
UWM2asxGjdmoMRs1ZqPGbNSYjRqzUWM2asxGjdmocfGF39uOxmfD9LJxcDYOzsbB2Tg4Gwdn4+Bs
HJyNg7NxcDYOzsbB2ThYjYO1/I6W39Dy81p+Wpc/W06RFg7WwsFaOFgLB2vhYC0crIWDtXCwFg7W
wsFaOFgLB2vhYC0crIWDtXCwFg7WwsFaOFj/soS/5GA1DlbjYDUO1h+Wz5ccrIWDtXCwFg7WwsFa
OFgLB2vhYC0crIWDtXCwFg7WwsFaOFgLB2vhYC0crIWDtXCwFg7WwsFaOFgLB2vhYC0crIWD9bcl
/GRHmuxIkx1psjdzycFqHKzGwWocrMbBahysxsFqHKzGwWocrMbBahysxsFqHKzGwWocrMbBahys
xsFqHKzGwWocrMbBahysxsFqHKzGwWocrMbBahysxsFqHKzGwWocrMbBahysxsFqHKzGwWocrMbB
ahysxsFqHKzGwWocrMbBahysxsFqHKzGwWocrMbBahysxsFqHKzGwWocrMbBahysxsFqHKzGwWoc
rMbBahysxsFqHKzGwWocrMbBahysxsFqHKzGwWocrMbBahysxsFqHKzGwWq3p2rUqEaNatSoRo1q
1KhGjWrUqEaNatSoRo1q1KhGjSOjxuVnYPkJWF7/y6t/ee0vr/xRocZRocZRocZRocZRocZRocZR
ocZRocZRocZRocZRocZRocZRocZRocZRocZRocZRocZRocZRocbRX5bwl9Q4MmocGTWOjBpHPyyf
L6lxVKhxVKhxVKhxVKhxVKhxVKhxVKhxVKhxVKhxVKhxVKhxVKhxVKhxVKhxVKhxVKhxVKhxVKhx
VKhxVKhxVKhxVKhxVKhxVKhxVKhx9NsSfrIjTXakyY402Zu5pMaRUePIqHFk1DgyahwZNY6MGkdG
jSOjxpFR48iocWTUODJqHBk1jowaR0aNI6PGkVHjyKhxZNQ4MmocGTWOjBpHRo0jo8aRUePIqHFk
1DgyahwZNY6MGkdGjSOjxpFR48iocWTUODJqHBk1jowaR0aNI6PGkVHjyKhxZNQ4MmocGTWOjBpH
Ro0jo8aRUePIqHFk1DgyahwZNY6MGkdGjSOjxpFR48iocWTUODJqHBk1jowaR0aNI6PGkVHjyKhx
ZNQ4MmocGTWOjBpHRo0jo8aRUePIqHFk1DgyahwZNY6MGkdGjSOjxpFR48iocWTUODJqHBk1jowa
R0aNI6PGkVHjyKhxZNQ4MmocGTWOjRqX19zyilteb8urbXmtLa+0caHGcaHGcaHGcaHGcaHGcaHG
caHGcaHGcaHGcaHGcaHGcaHGcaHGcaHGcaHGcaHGcaHGcaHGcaHG8V+W8JfUODZqHBs1jo0axz8s
ny+pcVyocVyocVyocVyocVyocVyocVyocVyocVyocVyocVyocVyocVyocVyocVyocVyocVyocVyo
cVyocVyocVyocVyocVyocVyocVyocfzbEn6yI012pMmONNmbuaTGsVHj2KhxbNQ4NmocGzWOjRrH
Ro1jo8axUePYqHFs1Dg2ahwbNY6NGsdGjWOjxrFR49iocWzUODZqHBs1jo0ax0aNY6PGsVHj2Khx
bNQ4NmocGzWOjRrHRo1jo8axUePYqHFs1Dg2ahwbNY6NGsdGjWOjxrFR49iocWzUODZqHBs1jo0a
x0aNY6PGsVHj2KhxbNQ4NmocGzWOjRrHRo1jo8axUePYqHFs1Dg2ahwbNY6NGsdGjWOjxrFR49io
cWzUODZqHBs1jo0ax0aNY6PGsVHj2KhxbNQ4NmocGzWOjRrHRo1jo8axUePYqHFs1Dg2ahwbNY6N
GsdGjWOjxrFR49iocWzUODZqHBs1Towal+/x8h1evr/Ld3f53i7f2Umhxkmhxkmhxkmhxkmhxkmh
xkmhxkmhxkmhxsmfh5CUtFVXz4c/V+oiR2kM3kcP1aBSOLbucvrM2/RczvV+W7MPfjhbdEUf5KP9
nMI21uk6O8ZHr3W6tU631unWOt1ap1vrdGudbq3TrXW6tU631unWOt1ap1vrdGudbq3Tbaedbkee
MXucCL9w3CkQgwjjDAeLrlxnQMjiBDxGKg1vhsYHZEd/W57DRJCwJ7/+5fzHq5tSaf+omF4qv/cn
t7/czO9OLm8v3j7+8MnDuzfzAU+FeHN3++bs1eMB3NzeXCyO8deH+d3N2fXJxfXZ/f3VxYDSBTY7
7c8kyOoIMXP7u15WPedr5kfvYz+jtb631vfW+t5a31vre2t9b63vrfW9tb631vfW+t5a31vre2t9
b63vrfX9s63vR96vGFSpap1M2cMOctoisvWwg662nU00oFlBmw3++Z0N2/kdjbk5nKVnq0EB+6yM
D8nlcIypBivtGOzjShrAYIR9HvshvFf7+0gM+6y/QF/hZrunQ7K37eEIhmxO3MPh7nCghBynp2Fb
z+P94gy+effhvD2dxm8cysYjyR7fk8vFs4f50Db1v/B27nk2/dHe23XWqDt4o/c6c+53PlviyHdU
B2gtPMbYsw1vXoawxDviEmB/hDWACVn77D0+ykTtwY6NG877uefKcRjIPePHVx7uq4c+dm+r27uj
uCGeD0kONXbmcGfgGX2ahm+ikIF5W1a9kS4//o237sjeKXkZBpUD0vIm69gDFv92Du+bIUaT0tk0
KZ1Nk9LZNCmdTZPS2TQpnU2T0tk0KZ1Nk9LZNPnLsvtg2dk0sc6miXU2TayzafLD8vmys2lSOpsm
pbNpUjqbJqWzaVI6myals2lSOpsmpbNpUjqbJqWzaVI6myals2lSOpsmpbNpUjqbJqWzaVI6myal
s2lSOpsmpbNpUjqbJqWzaVI6myals2lSOpsmvy3hJzvSZEea7EiT9WIsO5sm1tk0sc6miXU2Tayz
aWKdTRPrbJpYZ9PEOpsm1tk0sc6miXU2TayzaWKdTRPrbJpYZ9PEOpsm1tk0sc6miXU2TayzaWKd
TRPrbJpYZ9PEOpsm1tk0sc6miXU2TayzaWKdTRPrbJpYZ9PEOpsm1tk0sc6miXU2TayzaWKdTRPr
bJpYZ9PEOpsm1tk0sc6miXU2TayzaWKdTRPrbJpYZ9PEOpsm1tk0sc6miXU2TayzaWKdTRPrbJpY
Z9PEOpsm1tk0sc6miXU2TayzaWKdTRPrbJpYZ9PEOpsm1tk0sc6miXU2TayzaWKdTRPrbJpYZ9PE
Opsm1tk0sc6miXU2TayzaWKdTRPrbJpYZ9PEOpsm1tk0sc6miXU2TayzaWKdTRPrbJpYZ9PEOpsm
1tk0sc6miXU2TayzaWKdTVPrbFqe0+UZXZ7P5dlcnsvlmZyWzqZp6Wyals6maelsmpbOpmnpbJqW
zqZp6Wyals6maWn6nBZqnBZqnBZqnBZqnBZqnBZqnBZqnBZqnBZqnP5lCX9JjVOjxqlR49SocfrD
8vmSGqeFGqeFGqeFGqeFGqeFGqeFGqeFGqeFGqeFGqeFGqeFGqeFGqeFGqeFGqeFGqeFGqeFGqeF
GqeFGqeFGqeFGqeFGqeFGqeFGqeFGqe/LeEnO9JkR5rsSJO9mUtqnBo1To0ap0aNU6PGqVHj1Khx
atQ4NWqcGjVOjRqnRo1To8apUePUqHFq1Dg1apwaNU6NGqdGjVOjxqlR49SocWrUODVqnBo1To0a
p0aNU6PGqVHj1KhxatQ4NWqcGjVOjRqnRo1To8apUePUqHFq1Dg1apwaNU6NGqdGjVOjxqlR49So
cWrUODVqnBo1To0ap0aNU6PGqVHj1KhxatQ4NWqcGjVOjRqnRo1To8apUePUqHFq1Dg1apwaNU6N
GqdGjVOjxqlR49SocWrUODVqnBo1To0ap0aNU6PGqVHj1KhxatQ4NWqcGjVOjRqnRo1To8apUePU
qHFq1Dg1apwaNU6NGqdGjVOjxqlR48yocXkMyyNY4l+iX2JfIp8VapwVapwVapwVapwVapwVapwV
apwVapwVapwVapwVapwVapwVapwVapwVapwVapwVapwVapwVapz9ZQl/SY0zo8aZUePMqHH2w/L5
khpnhRpnhRpnhRpnhRpnhRpnhRpnhRpnhRpnhRpnhRpnhRpnhRpnhRpnhRpnhRpnhRpnhRpnhRpn
hRpnhRpnhRpnhRpnhRpnhRpnhRpnvy3hJzvSZEea7EiTvZlLapwZNc6MGmdGjTOjxplR48yocWbU
ODNqnBk1zowaZ0aNM6PGmVHjzKhxZtQ4M2qcGTXOjBpnRo0zo8aZUePMqHFm1DgzapwZNc6MGmdG
jTOjxplR48yocWbUODNqnBk1zowaZ0aNM6PGmVHjzKhxZtQ4M2qcGTXOjBpnRo0zo8aZUePMqHFm
1DgzapwZNc6MGmdGjTOjxplR48yocWbUODNqnBk1zowaZ0aNM6PGmVHjzKhxZtQ4M2qcGTXOjBpn
Ro0zo8aZUePMqHFm1DgzapwZNc6MGmdGjTOjxplR48yocWbUODNqnBk1zowaZ0aNM6PGmVHjzKhx
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
PnD3gbsPfnfrIAaN0wLyBOQJyBOQJyBPQJ6APAF5AvIE5AnIE5AnIE9AnoA8EXki8kTkicgTkSci
T0SeiDwReSLyROSJyBORJyJPRJ6IPAl5EvIk5EnIk5AnIU9CnoQ8CXkS8iTkSciTkCchT0KehDwZ
eTLyZOTJyJORJyNPRp6MPBl5MvJk5MnIk5EnI09Gnow8I/KMyDMiz4g8I/KMyDMiz4g8I/KMyDMi
z4g8I/KMyGPQWACNhc4pdEah4wsdXdixkrwQNBaCxkLQWAgaC0FjIWgsBI2FoLEQNBaCxkLQWAga
C0FjIWgsBI2FoLEQNBaCxkLQWHxt4hs0FkBjATQWQGNx39YNGgtBYyFoLASNhaCxEDQWgsZC0FgI
GgtBYyFoLASNhaCxEDQWgsZC0FgIGgtBYyFoLASNhaCxEDQWgsZC0FgIGgtBY/HOxG950pYnbXnS
lpdp0FgAjQXQWACNBdBYAI0F0FgAjQXQWACNBdC4W4iHPLPJpUMU559P5K7Oo/JHM99P75oONngH
Mwxg9CsY/QpGv4LRr2D0Kxj9Cka/gtGvYPQrGP0KRr+C0a9g9CsY/QpGv4LRr2D0Kxj9Cka/gtGv
YPQrGP0KRr+C0a9g9CsY/QpGv4LRr2D0Kxj9Cka/gtGvYPQrGP0KRr+C0a9g9CsY/QpGv4LRr2D0
Kxj9Cka/gtGvYPQrGP0KRr+C0a9g9CsY/QpGv4LRr2D0Kxj9Cka/gtGvYPQrGP0KRr+C0a9g9CsY
/QpGv4LRr2D0Kxj9Cka/gtGvYPQrGP0KRr+C0a9g9CsY/QpGv4LRr2D0Kxj9Cka/ktGv1Dmlzih1
fKmjSztWkpca/UqNfqVGv1KjX6nRr9ToV2r0KzX6lRr9So1+pUa/UqNfqdGv1OhXavQrNfqVGv1K
jX6lRr/yaxPfRr+S0a9k9CsZ/cr7tm6jX6nRr9ToV2r0KzX6lRr9So1+pUa/UqNfqdGv1OhXavQr
NfqVGv1KjX6lRr9So1+p0a/U6Fdq9Cs1+pUa/UqNfqVGv1KjX6nRr3xn4rc8acuTtjxpy8u00a9k
9CsZ/UpGv5LRr2T0Kxn9Ska/ktGvZPQrGf1KDIMSaCyBxhJoLIHGEmgsgcYSaCyBxhJoLIHGEmgs
gcYSaCyBxhJoLIHGEmgsgcYSaCyBxhJoLIHGEmgsgcYSaCyBxhJoLIHGEmgsgcYSaCyBxhJoLIHG
EmgsgcYSaCyBxhJoLIHGEmgsgcYSaCyBxhJoLIHGEmgsgcYSaCyBxhJoLIHGEmgsgcYSaCyBxhJo
LIHGEmgsgcYSaCyBxhJoLIHGEmgsgcYSaCyBxhJoLIHGEmgsgcYSaCyBxhJoLIHGEmgsgcYSaCyB
xhJoLIHGCmisdE6lMyodX+noyo6V5JWgsRI0VoLGStBYCRorQWMlaKwEjZWgsRI0VoLGStBYCRor
QWMlaKwEjZWgsRI0VoLG6msT36CxAhoroLECGqv7tm7QWAkaK0FjJWisBI2VoLESNFaCxkrQWAka
K0FjJWisBI2VoLESNFaCxkrQWAkaK0FjJWisBI2VoLESNFaCxkrQWAkaq3cmfsuTtjxpy5O2vEyD
xgporIDGCmisgMYKaKyAxgporIDGCmisgMYKaKyAxgporIDGCmisgMYKaKyAxgporIDGCmisgMYK
aKyAxgporIDGCmisgMYKaKyAxgporIDGCmisgMYKaKyAxgporIDGCmisgMYKaKyAxgporIDGCmis
gMYKaKyAxgporIDGCmisgMYKaKyAxgporIDGCmisgMYKaKyAxgporIDGCmisgMYKaKyAxgporIDG
CmisgMYKaKyAxgporIDGCmisgMYKaKyAxgporIDGCmisgMYKaKyAxgporIDGCmisgMYKaKyAxgpo
rIDGCmisgcZa5xjSGM4YyhjG1JK8FjTWgsZa0FgLGmtBYy1orAWNtaCxFjTWgsZa0FgLGmtBYy1o
rAWNtaCxFjTWgsZa0Fh/beIjMNBYA4010Fjft3WDxlrQWAsaa0FjLWisBY21oLEWNNaCxlrQWAsa
a0FjLWisBY21oLEWNNaCxlrQWAsaa0FjLWisBY21oLEWNNaCxlrQWL8z8VuetOVJW5605WUaNNZA
Yw001kBjDTTWQGMNNNZAYw001kBjDTTWQGMNNNZAYw001kBjDTTWQGMNNNZAYw001kBjDTTWQGMN
NNZAYw001kBjDTTWQGMNNNZAYw001kBjDTTWQGMNNNZAYw001kDjbqG/m+T1K5xR608/M+ctzl16
RybzvOw0dgfGtD8UsvaVU4zPzP27uQn8biT/6YYa5sbo0wf4Hq+11MjzF/dev3n4+N43OxkvfYv/
as3/2mA4cu/o5OTVkwdvbNLvP0WxkBvJAv1vYu8BzAx03ZOt7M0IfYeGiCt5gRepQFBtqv/nygDh
jvXeC3P3z4hU1zlR+CFVaz/gDKFzY8Z53tmNlLs4d1rqGnVfo+5r1H2Nuq9R9zXqvkbd16j7GnVf
o+5r1H2Nuq9R9zXqvkbd16j7lUbdb6c+/R/6OtYJKNYJKNYJKNYJKNYJKNYJKNYJKNYJKNYJKNYJ
KNYJKNYJKNYJKNYJKNYJKNYJKH5nAorb8WhcntB5ldN1r/Xu71JpxNusv7HHnLqV8icXpeYdBn/8
SoW9mdSF6xf5sDvy1UyzXNzeRNRnFe5aC1Wevt0NlGE+B91yt/vRRRINdpd5eLIb8P/35evjN49e
aHb4CTUeHz/8fnfn6fL3Hu6e5NtrYKffcoe5Rup3cRfqy1+kex1c0bAra/VLpK6e+yu6Ipg6H+/9
IL7f667UctVpCWdO47qDyTnFYeWn/HHnvaXUlP9KkDkcpfTwkwfvQOXMm8pKunor746VHjqXuXIp
v9KFa1fdXK1MV6kOJb31JiYbuZZU/muslnltL+lq9NCbqsx1tma4MsX/vOr0xcuYXcs8IdfbaW5/
DoRfv8XJ4yevD8BRfcVK9ZV2xQui393Idi9uYlw/1PDI5dQy+3TumKF3kYkb7mxJ2oMLaVyVtDc0
HcA5NYhbLSF7nfGUhaH0emf47c7YPd/LJ7tb7OS59+Do9fG9N6+e3psa7dXzo6enKrbeTszhhopT
/HUqTVzp/CDn7kTX5X7+rw3PJ1rJoxcP30xrpia9vrko4p90SsmrmwHot9/PJVyt6zSVd5F4dDjz
K14P5t2ILf4H1uIfIN8BEKYOo1lvsO9fNKR728Hwy2D7dUxfe9uErks/7QWsmt2Xc3wzSvl5ojv3
Xr958O2ro5eP71Wb6gA5OzfJTLxgr7g0YcZ7xhVGrM/3zs+q4t8we/sWSSa/BehvTp48fX3gU3Of
ZTC6IYfFLwdNIp189uTZ8Ys3V8yY4m3cWMvcVNDqkGZGv6ZR6Vycmt2Gk7dXPzxdLlZyls5+d9Tv
mzXQfmskunm61ty17pC7+FxPeLLrDDdJ1bpm2+sG7d0L9dI7NEX/tfSyP+tntOtmJ2f3ytzJyc4P
Se04GN/OFfWZQ/oszkt4vFHHxNyej46fHr3dGdDaoaP/5+Xbq2Ym3jid0w3+6yVzXjpAepcKy1wb
rfNsL+uOUOvvxgu+Ie7l2d7sDdNnr667/Tq6TirsXz6V4oo9vX+6B107wXX5jPT5HYiRehM5HIcJ
6ufyMu807qM3T09u0A4/iyRnjdncIOf2Rtih53jBFzQ6ry4W9GuXOzl68Obp0at7j45Ojv738ZPX
uys/2TXMWaZjuEFr+JJpYb9amatmHrqaeehq5qGrmYeuZh66mnnoauahq5mHrmYeupp56GrmoauZ
h65mHrqaeehq5qGrmYeuZh66mnnoauahq5mHrmYeupp56GrmoauZh65mHrqaeehq5qGrmYeuZh66
mnnoauahq5mHrmYeupp56GrmoauZh65mHrqaeehq5qGrmYeuZh66mnnoauahq5mHrmYeupp56Grm
oauZh65mHrqaeehq5qGrmYeuZh66hnnoGp3T6IxGxzc6urFjJXmjeegazUPXaB66RvPQNZqHrtE8
dI3moWs0D12jeegazUPXaB66RvPQNZqHrtE8dI3moWs0D12jeegazUPXaB665msT3+aha5iHrmEe
uoZ56Jr7tm7z0DWah67RPHSN5qFrNA9do3noGs1D12geukbz0DWah67RPHSN5qFrNA9do3noGs1D
12geukbz0DWah67RPHSN5qFrNA9do3noGs1D12geukbz0DWah655Z+K3PGnLk7Y8acvLtHnoGuah
a5iHrmEeuoZ56BrmoWuYh65hHrqGeega5qFrmIeuYYrOhik6G6bobJiis2GKzoYpOhum6GyYorNh
is6GKTobpuhsmKKzYYrOhik6G6bobJiis2GKzoYpOhum6GyYorNhis6GKTobpuhsmKKzYYrOhik6
G6bobJiis2GKzoYpOhugsQEaG6CxARoboLEBGhugsQEaG6CxARoboLEBGhugsQEaG6CxARoboLEB
GhugsQEaG6CxARoboLEBGhugsQEaG6CxARoboLEBGhugsQEaG6CxARoboLEBGhugsQEaG6CxARob
oLEBGhugsQEaG6CxARoboLEBGhugsQEaG6CxARoboLEFGludY9+ffX327dmX10ryVtDYChpbQWMr
aGwFja2gsRU0toLGVtDYChpbQWMraGwFja2gsRU0toLGVtDYChpbQWP7tYlv0NgCjS3Q2AKN7X1b
N2hsBY2toLEVNLaCxlbQ2AoaW0FjK2hsBY2toLEVNLaCxlbQ2AoaW0FjK2hsBY2toLEVNLaCxlbQ
2AoaW0FjK2hsBY3tOxOfVwM0tkBjCzS2QGMLNLZAYws0tkBjCzS2QGMLNLZAYws0tkBjCzS2QGML
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
5393K+VnpfyslJ+V8rNSflbKz0r5WSk/K+VnpfyslJ+V8rNSflbKz0r5WSk/V0r5uZ3S9X/o61j5
QSs/aOUHrfyglR+08oNWftDKD1r5QSs/aOUHrfyglR+08oNWftDKDzoXP+h2fBxXUyPMNxy9vnd0
79Hx64fHzx/trvZnLEf4l6gpeMlXfsHigWeeDerlqxcnL35ZOk8HO//MqIdavOTSxWdON+B1F4L5
i9VevMXqlHekTuLVshp/j2J5I8UvLizAHZkk/W6UVb/x6nm/OwQeRg3r65D5lqr3XVzyyxcxu4GZ
8y85d8HZZ3O9OcXmlqZuP63bHNIs3+eQ7BaB8MYb+hrmAz6HaDf1gR9uX/vDtJWjk5NXTx682R19
T8LfO3lx7+TRvd0j3zt5zH13w9fx06f/eP7o+OebmzT5CuQ8q/XzZ5w3+7y95M82rfR5n/9PWdv9
Wsygi32Lt2U1XoO055vi/cmrzfYsk4FfnRptn8a9x0+OXx29evj2AMtAn6vhrrCM8mVb8VL+tINC
k9twUNx+ZeaDPeUAfB2/2uEPIoXZkeBuuDGuuiFvoQlvPH//bPJdKjKy6wFPjx4e35wFcyHJLhhg
O6Xz7HTfXRd6PXXeZy8eHT/ddeGHL57ee/3y6Pm9p0+ePbnJGrQXEeza7LZbGzEP0814g87M87fb
LfkY97/Fg3J8nV+wm/IWnlmyWzN/b8Yxd+Z2OBRL/oxwfDVD8rXRdq7ReXAVDXTFNXzvDCHpvMb+
IZTjMyku4XD4s9M6/ho8nz9p5Oh8A/WfMSpyM6rKDbsAb9Wjdk1e11PFfA+99vwfDig3Vpz5Bvw0
h+HNusbi3hfpnH/V4r3nw9NzqtoH6a+6qK/qNrxOh0rsvH3Avg4MOHRe6GUlv/3I1DklvyMc7Fv/
Gs4LeTfPvL+sUH8I9Brfdt3zxfPZeNT6/c3Z+Bu/N5WQJXZaWmdUXnRUXnRUXnRUXnRUXnRUXnRU
XnRUXnRUXnRUXnRUXnRUXnRUXnRUXnRUXnRUXnRUXnRUXnRUXnT82nIXLS86khcdyYuO5EXH+7Zu
edFRedFRedFRedFRedFRedFRedFRedFRedFRedFRedFRedFRedFRedFRedFRedFRedFRedFRedFR
edFRedFRedFRedFRedFRedFRedHxnYnf8qQtT9rypC2ZnJYXHcmLjuRFR/KiI3nRkbzoSF50JC86
khcdyYuO5EVH8qIjedGRvOhIXnQkLzqSFx3Ji47kRUfyoiN50ZG86EhedCQvOpIXHcmLjuRFR/Ki
I3nRkbzoSF50JC86khcdyYuO5EVH8qIjedGRvOhIXnQkLzqSFx3Ji47kRUfyoiN50ZG86EhedCQv
OpIXHcmLjuRFR/KiI3nRkbzoSF50JC86khcdyYuO5EVH8qIjedGRvOhIXnQkLzqSFx3Ji47kRUfy
oiN50ZG86EhedCQvOpIXHcmLjuRFR/KiI3nRkbzoSF50JC86khcdyYuO5EVH8qIjedGRvOhIXnQk
LzqSFx3Ji47kRUfyoiN50ZG86ERetLWptai1p7WmtaW1ZBI0JkFjEjQmQWMSNCZBYxI0JkFjEjQm
QWMSNCZBYxI0JkFjEjQmQWMSNCZBYxI0pq9NfIPGBDQmoDEBjem+rRs0JkFjEjQmQWMSNCZBYxI0
JkFjEjQmQWMSNCZBYxI0JkFjEjQmQWMSNCZBYxI0JkFjEjQmQWMSNCZBYxI0JkFjemfitzxpy5O2
PGnLyzRoTEBjAhoT0JiAxgQ0JqAxAY0JaExAYwIaE9CYgMYENCagMQGNCWhMQGMCGhPQmIDGBDQm
oDEBjQloTEBjAhoT0JiAxgQ0JqAxAY0JaExAYwIaE9CYgMYENCagMQGNCWhMQGMCGhPQmIDGBDQm
oDEBjQloTEBjAhoT0JiAxgQ0JqAxAY0JaExAYwIaE9CYgMYENCagMQGNCWhMQGMCGhPQmIDGBDQm
oDEBjQloTEBjAhoT0JiAxgQ0JqAxAY0JaExAYwIaE9CYgMYENCagMQGNCWhMQGMCGhPQmIDGZNAY
mZ0/Mjt/ZHb+yOz8kdn5I7PzR2bnj8zOH5mdPzI7f2R2/sjs/JHZ+SOz80dm54/Mzh+ZnT8yO39k
dv7I7PyR2fkjs/NHZuePzM4fmZ0/Mjt/ZHb+yOz8kdn5I7PzR2bnj8zOH5mdPzI7f2R2/sjs/JHZ
+SOz80dm54/Mzh+ZnT8yO39kdv7I7PyR2fkjs/NHZuePzM4fmZ0/Mjt/ZHb+yOz8kdn5I7PzR2bn
j8zOH5mdPzI7f2R2/sjs/JHZ+SOz80dm54/Mzh+ZnT8yO39kdv7I7PyR2fkjs/NHZuePzM4fmZ0/
Mjt/ZHb+yOz8kdn5I7PzR2bnj8zOH5mdPzI7f2R2/sjs/JHZ+SOz80dm54/Mzh+ZnT8yO39kdv7I
7PyR2fkjs/NHZuePmp0/ajSLGsuiRrLY2rGSXLPzR83OHzU7f9Ts/FGz80fNzh81O3/U7PxRs/NH
zc4fNTt/1Oz8UbPzR83OHzU7f9Ts/FGz80fNzh81O3/U7PyR2fkjs/NHZuePzM4fNTt/ZHb+qNn5
o2bnj5qdP2p2/qjZ+aNm54+anT9qdv6o2fmjZuePmp0/anb+qNn5o2bnj5qdP2p2/qjZ+aNm54+a
nT9qdv6o2fmjZuePmp0/anb+qNn5o2bnj8zOH5mdPzI7f2R2/sjs/JHZ+SOz80dm54/Mzh+ZnT8y
O39kdv7I7PyR2fkjs/NHZuePzM4fmZ0/Mjt/ZHb+yOz8kdn5I7PzR2bnj8zOH5mdPzI7f2R2/sjs
/JHZ+SOz80dm54/Mzh+ZnT8yO39kdv7I7PzTQnFIicq/VjAqUjkgUjkgUjkgUjkgUjkgUjkgUjkg
UjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkg
UjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkg
UjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgUjkgqnJAVOWAqMoB
UZUDYmfHSnJVDoiqHBBVOSCqckBU5YCoygFRlQOiKgdEVQ6IqhwQVTkgqnJAVOWAqMoBUZUDoioH
RFUOiKocEFU5IKpyQKRyQKRyQKRyQKRyQFTlgEjlgKjKAVGVA6IqB0RVDoiqHBBVOSCqckBU5YCo
ygFRlQOiKgdEVQ6IqhwQVTkgqnJAVOWAqMoBUZUDoioHRFUOiKocEFU5IKpyQFTlgKjKAVGVAyKV
AyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKV
AyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKV
AyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKV
AyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVAyKVA6YF5MnIk5EnI09G
now8GXky8mTkycgzIs+IPCPyjMgzIs+IPCPyjMgzIs+IPCPyjMgzIs+IPILGYne1sinrZvu3Mpza
UCw3lMsN1XJDvdzQLDe0yw3dckO/2NBulhuWkrZLSdulpO1S0nYpabuUtF1K2i4lbZeSdktJu6Wk
3VLSbilpt5S0W0raLSXtlpJ2S0m7paT9UtJ+KWm/lLRfStovJe2XkvZLSfulpP1S0n4habPZLDds
lxuK5YZyuaFabqiXG5rlhna5oVtuWEq6XUq6XUq6XUq6XUq6XUq6XUq6XUq6XUq6XUq6XUpaLCUt
lpIWS0mLpaTFUtJiKWmxlLRYSlosJS2WkpZLSculpOVS0nIpabmUtFxKWi4lLZeSlktJy6Wk1VLS
ailptZS0WkpaLSWtlpJWS0mrpaTVUtJqKWm9lLReSlovJa2XktZLSeulpPVS0nopab2UtF5K2iwl
XY5RzXKMapZjVLMco5rlGNUsx6hmOUY1yzGqWY5RzXKMapZjVLMco5rlGNUsx6hmOUY1yzGqWY5R
zXKMapZjVLMco5rlGNUsx6hmOUY1yzGqWY5RzXKMapZjVLMco5rlGNUsx6hmOUY1yzGqWY5RzXKM
apZjVLMco5rlGNUsx6hmOUa1yzGqXY5R7XKMapdjVLsco9rlGNUux6h2OUa1yzGqXY5R7XKMapdj
VLsco9rlGNUux6h2OUa1yzGqXY5R7XKMapdjVLsco9rlGNUux6h2OUa1yzGqXY5R7XKMapdjVLsc
o9rlGNUux6h2OUa1yzGqXY5R7XKMan2MGsdTm5fiLQemdjkwtcuBqV0OTO0vA9PNE17PwoM6T3bU
SopaSVErKWolRa2kqJUUtZKiVlLUSopaSVErKWolRa2kqJUUtZKiVlLUtZCi7lC9tb0kuZ9e+O7r
THdeyVorWWsla61krZWstZK1VrLWStZayVorWWsla61krZWstZK1VrLWStZayVorWWsla12ArHU7
XscLz3L5e57Hw57R7eyzhL4+evD0+NFBTCy+J8oFK7zc7MTvtz+t/yWmnr/Eqeu87n/6ed3/gjNC
XnDaxbOwgW+rruelZbueuaFvcLC5Glmvr6LlFc9Nfwc+wtus+3gm1eNQi/+dW8Trnrb/0m22+Di1
7l/isxeP3jw93nuKR8dPj97uxjzt0NG7ofWCiviv3+3Js6l57r1+8+DbV0cvH9+rNtUVzZx7MrXW
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
64OrCGB9AMcD40qoeNKOBdSAgU43+OkMDMEHww0L2z09ammobPtNtdzQLTZsN8sN2+WGYrlhedHT
uDFtaBcbiqVg5fKi5UKH66ulHNV/HbG8bbV8uHr5cPXyiGb5LM3you3yiHZ5jW55l24percUvV+e
0i9PWejIxWah5Baz1bDrBpX1B1v33lrsnVAs1Pjdhmq5YVacZW1vBWlbfTNbfUFbgd9WH8vWPhZh
5lZf3ta+J/sk9Kluv0GHpj8PaLwRTIh8F+ZD2S00LLQs8MlEPpno19l/nHJhN+82VMsN9XJDs9zQ
Ljd0yw39YsPCfJ6cT8sNxXLDUtJmKWmzlLRZStosJW2WkjZLSdulpO1S0nYpabuUtF1K2i4lbZeS
tktJ26Wk7VLSbilpt5S0W0raLSXtlpJ2S0m7paTdUtJuKWm3lLRfStovJe2Xki4/zHL5YZb9UtJ+
KWm/lHQJIOXCyt5pr5vlhu1yQ7HcUC43VMsN9XJDs9zQLjd0yw1LSbdLSbdLSbdLSbdLSbdLSbdL
SbdLSbdLSbdLSbdLSYulpMVS0mIpabGUtFhKWiwlLZaSFktJi6WkxVLScilpuZS0XEpaLiUtl5KW
S0mr5SnV8pTqv05ZPly1FL1eil4vRa+Xov8yFFwwqLH9v/kyS+mXA0i1HECq5QBSLQeQajmAVMsB
pFoOINVyAKmWA0i1HECq5QBSLQeQajmAVMsBpFoOINVyAKmWA0i1HECq5QBSLQeQajmAVMsBpFoO
INVyAKmWA0i1HECq5QBSLQeQajmAVMsBpFoOINVyAKmWA0i1HECq5QBSLQeQajmAVMsBpFoOINVy
AKmWA0i1HECq5QBSLQeQajmA1MsBpF4OIPVyAKmXA0i9HEDq5QBSLweQejmA1MsBpF4OIPVyAKmX
A0i9HEDq5QBSLweQejmA1MsBpF4OIPVyAKmXA0i9HEDq5QBSLweQejmA1MsBpF4OIPVyAKmXA0i9
HEDq5QBSLweQejmA1MsBpF4OIPVyAKmr5UWr5UXdqTaU8r6UMkdKmSOlPDmlPDmljJPynfnqW8Kc
LWHOljBnS2DXHBUl/okSj8VuoWKBCK/FEUriCCUGfYmVU2LllFj2JQ6PEodHicNjtzASOya+EJAn
IE9AnoA8wSPOyBOQJyBPQJ4w7LVn62PnTgT3fxNUUAS5UBSlUMi5UMi5UMi5UKy5UHS5+Dd+anep
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
UmZ9qMyrblRUJU0qsz4lXrN9Xr2d+ZzN2KiWl9kbM5e0KPMi98abJUAAi9r6SlJyf+rJ2MH5JDKr
JgJIyn2c9nqcxpzVQo7eCMAPEckPIxwx4Ee3pus/x69k7qovEBsXl3nekguOkYsvTYxXZWCm9LPd
2jKO+jlvdbA7HrFjf6SrPYYyHWlsWSPy+rRL1hWmBTxWkGefssP8Asa/xXVFtOSBfr7nbPO26V22
L9hcc7WCBStyayzhRxyIl40JLyjImwwUpoWeYzycgJNucKceN7T32h5jLFhZW+M6f8PxXDOQ1jvQ
RAY9w79ZN3/hM9b3Egjqpm5mz+LQnNozU5qFqe1D6Ar+HDz9wBan7mZYygmvTCYrOFuk7xNeNg4c
K4I4iOU9fICnhKk9EiTjjNcx+alC++Ej1u2rIBvTJwOxaOLwKXFCGBfOlvYpqGw+sYFCt4MzMDZs
IeHRS/JSiRfGBD7pvPWyvkxhMPyLy9kLE6t9+A8n8tjZL+VRTjvjfa6AX9IpwzMVBCdrwIManGxS
34U551ZvzeqtWb01q7dm9das3prVW7N6a1ZvzeqtWb01q7dm9das3prVW7N6a/463ppDndluzapa
s6rWrKo1q2rNqlqzqtasqjWras2qWrOq1qyqNatqzapas6rWrKo1q2rNqro7WVV/krn3Dmp2uQtI
fFOz8Z282EnwYnfEq18O2R7wZHy/KuoF2+mM80/tDnh6fO/4x6Onb45Onrx4fpPtczkRz9AuF7zx
0xffTnPGvT5++H/b//fJo/8rrmbKr6PXb58/vL/ZVJP41/Q+Tx4/eX3VU71d7vWZRFc7a9pvdIlr
n7DyctNF3v6UmbczYeUf0V+nUdpq2kmtCj5Yu5NUapbX/h0hhTmRbb9qZ1M1zSmia1N5BeRBbq4Y
4UBZhQfFVgbFwAZzkchfM2gG5kj1skGRzGldWoaIlDHOFMiMByLhXTBtUF7KCGF2UMxxUJgwQqiN
ca5AkWCgJd+ixlKwbVCUbhgoz0DRDvhEEQNdEcYYZ7ac2d4K8EWCD4N5jBT1jHGmtRnhUvHHQVNw
D4qKRiZFtgavnWocRzPcBgrxDirE60d6gGVU44wf6iiV9x3f52Q7yFxgqvE74vkwhdGcU6P7Qewk
+VHGI7uWWTmj3s74JUfrtPG+Cc5hik+MX+tHDzya40bVgq0KdbQbqDZh/Fw/X+4/rnvrornNrD6w
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
DWeEP07+8kIUrmW+zJaLNKeukpy8zJKcMlumOU2T5NRFdimnSHKaZZ7ktMv0yW1VXcpJ3pUt0vJk
iyLNWX9YkrP+k+QUWZ7mtEmZs0t1mJWXnlMWl66pyySnSp+cF+m350WVtE6xSN+1vqlIc4rkK4p1
BaU5VXpNXiYlLIoyfXtR15dykrYoymXSXuub0nc16XPKdV6SUxeLNKdsk5w2beWyTWu1WpSXctIy
V1lah9WlUVDlaa1WZZs+p077T1Wnvbdq0lqtmnTsVE2b1E/VLi/l5OWlnPRdbVrzVZuWuV7U2aWc
5K56mad3LZvkK+os7b3rnPTJWVldykm+q87T76rzOmmdukhHQV00Sd+oy3Ts1NUiv5STflfVpk+u
L31pkz6nWaQzZFMskq9o6uJSTvrktSBbpznpDNm06fhqL80AbZ4nz2kvjcq2rJIyt1VS8wP9fZHk
FItlmpPMq+ucPE9yyix9cllduqbNkpwqa5Kc5lJOuyjSnKQtimWWjIt1TpV8xfq+Os1pkjIvy8Wl
nGRGKpZJ4MvlunaSebXImvTtWZvMz8V6gm7SnLR11lNm8q487VFDTvKuvFmmdzVpW6xziks56dvb
bHkpJ3nOurMs0pxEBiiKPBmD65zyUk6T3lW0SXmKpriUk7bF+qZLOWkrl8vyUk4yGxfr1Sp5TrUe
PklOVqXXlOm7qirPLuUkdVg15yvRJuNz/AWCfgWL2F3HVbkOnH5Vg907KNtjFScNvF4ml5dykqaq
l2n3qvN00K4Xs0Wa01zOydOctMPVlwb/JDy85aSTdV0u80s5xaWc9F1lspSucy59aZUuA3Vdl5dy
0rsuTU91felL67a5lJOWJ10m1zmX3nWpTev20pe2iVhTNIumvpSTXrNMp+8mTye+dU6Z5qTf3pTp
UG/KOr2mSlSd9QyWTjRtKliscxLRZ8hZpjmJ2FdM/KEtJysu5VRpTn0pJ63DtmnT8rRp/1nn5GnO
pbe3WfrtbXHprmQ0lYtF8l3rnLxIc4o2zUnE9CHn0nMSUWPIufTkZDkZcqokZ5mIa+ucy9c06buW
bfql6VguF6mouh7/SQuu71kk375+cHJXtkhGyjonmRPKtQ6VfPvA1ruYk1/69nyRfsVadk1zikQg
KNcaUvKla2kxaa9yPXFczKmWyagsqyoZF2XdJEtyWacAxJCTPLnJ0nZvirQfrvW+9JoyGblDTvJd
a0ksfU6TCB9DTlKe9fDKL+XUl3KSWm2XyZoy5KR3LRNYZy22p+OrzReXci7dlYpQa13+0jVVWmNt
ldbPOif99nSlrhZp7113hKT/rHPSu9b/mzQnvStLV+G11JfUc1WkkES17r5pTtrua1kxLc+6yi7W
alVlyYgbcpIyV/kyvSZPevg6p05ziiJ9V1GmzynqNKdM5rr18MqySzl5mpPIG+ucNs2py/S76kvX
pKpydQlYWT94mZTwkmxTrRfPLM1Ja6NZJnNU1WSJclg1edJ71zlJ69SLPJlp67Wu2rxT3L+NyD3z
RWa+yMwXmfkiM19k5ovMfJGZLzLzRWa+yMwXmfkiM19k5ovMfJGZLzLzRWa+yMwXmfkiM1/k0fNF
tnWXvJlyMVMuZsrFTLmYKRcz5WKmXMyUi5lyMVMutoNy8WC7Mt1j6LQ7iTN2c8r2Detiq6LP3bCY
2xDnbnNx5P7Cg+AWMe8eqhfef6TAm9TdHW+K9upktb8a5rid5aPYxC0t7/X2brtJz8k2Xi83L9UN
d667eg89e/tqdX/94gblumoN3Mu0/UgWpFsV8wHm7uyeoqhuqGx/7/XfRuKWra1XK9dfzsKrl6/O
3u6sXzc8Z+fw4HSjOwve8cr4uPZl/cuCX2Fuf+dK+udteC9r5jSw8hYundPizbvfzrvfbsvut49E
VPuHbdL7SCTTOxearikw/vlys7FNFO5O0r1BwR9GnpsuW5tXBzZdyL+UW4a88sXh3pPdg+NXZ4fH
R4vlPWMQf1WCW6AtO0PeznpCenauSsn8dE4N2Xt7NtTmyWr35c7ivj/1esW6oax0J8Jxdo97m5+t
p4T1pav3T9Z/drdwgG5273D6hkvEVq0s26ZaZRvc1+fv2yRXnTVOX78aSmwGw/O7d5blv/dPT284
BU+G4HXW8r+auW+uRdto3ngxHmSY/en0s42fugHB73ad5S5k5g2U4CY1cT0p4N6qZxPFuuVs9jCl
3+w8vGGR8vFW51+9ot5OGb1+PHjmLSDBRw2FznjmNuKZ9yTm3uOKWG+LtLk5he6qRr5/GFj9cMJh
vVmxf/skjfrm4Qw3MQTuEJyc5chbte7puTBwbtEXqPz82Nr15fHB6xeryQA9WL3YfbueDuSEXL2e
da44m1ztbacvjn/f2X+7/2K1efm43U75uL01Y/Kyur4pVPqhWG3X+erHOOE8nNRzxWG6ntAPnx6u
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
1Un56qR8dVK+OilfnZSvTsrXJOVrkvI1SfmapHxNUr4mKV+TlK9Jytck5WuS8rVJ+dqkfG1SvjYp
X5uUr03K1ybla5PytUn52ovlWy4WyfEyOc6S4zw5pjzdUua+JStPV5KoSNQkmguLlszAy8BZR0If
/K9ep8F/BVm9sk+Y/fX4v1aiprjYY5vCekSX/atvSXQk7JQj4UkEElETbkFiSSIb31ReHMvr42Vy
nCXHeXJcJMdlclwlx3Vy3CTHrbXNvyKNEAsStEakoWJDoiVht3fjc6v84ndU+cXvqGyMdlmHtMFb
PU8MvCxYOTwJOkDgrkARg53i4oAkEOg/nmu8vZ2LPS/19oUZiZznUFOhtW9qs+WFul8f18lxkxy3
F4+zRXK8TI6z5DhPjovkuEyOk/JlSfmypHxZUr48KV+elC9Pypcn5cuT8uVJ+fKkfHlSvjwpX56U
r0jKVyTlK5LyFUn5iqR8RVK+IilfkZTvolzR5sssOc6T4yI5LpPjKjmuk+MmOU7en/SnPOlPedJe
edJeedJeedJeedJeedJeedJeib7Q5kl75cU4C/8uP2/k5w+dSWsm4pqJuNaJ+LX8nMnPqfyIaJqd
C6rr6UpmrCHRaEKG8ZCImpBZYMjhmrjkFNfI/DKcKsnJSQRO1eTYNfb2jJwFiZ5TBTl2Dc+JXOx5
RaCo0b7Cbu84ZQVjMapZsDpyupxERoLa7VjmOp03RT3JRMfIRMfIRMfIRMfIRMfIRMfIRMfIRMfI
RHPIRI/IRKvIRMfIROPIRP/IRBvJfpOft6zxzNE903fPRNwz+5vW1zPX9yYiMNf3zOM960pf8KUN
CcSAjk7X2e0sDL0thgsSy4kclSoqy3ZRpBlNkrFcpBnLNCNLM9KHXpw3how6ycjSguXpQ/NEhmuL
tBzFpSvS1xbpx5Xpx5XpFVX6LVX60Dq9ok6f0aRvadKiN2nR2/SWNr0lkZGzRSLkZqPWsO4GhfYH
Pbbemk1uyBIxfp1RpBmj4Cza9lKmtKWMmaWMoKVMfksZLEsdLDJnLmXkLXU86ZCQobp8igxNf+6Q
eB1zgmNcKIayTlQkahIMGceQcfac6efkid68zijSjDLNqNKMOs1o0ow2yUjU5wF8SjOyNCMtaZWW
tEpLWqUlrdKSVmlJq7SkdVrSOi1pnZa0TktapyWt05LWaUnrtKR1WtI6LWmTlrRJS9qkJW3SkjZp
SZu0pE1a0iYtaZOWtElL2qYlbdOStmlJ04GZpwMzb9OStmlJ27Sk6QSSJ1r2WnpdpBnLNCNLM/I0
o0gzyjSjSjPqNKNJM9KSLtOSLtOSLtOSLtOSLtOSLtOSLtOSLtOSLtOSLtOSZmlJs7SkWVrSLC1p
lpY0S0uapSXN0pJmaUmztKR5WtI8LWmeljRPS5qnJc3TkhbpLUV6S3HplvTjirToZVr0Mi16mRb9
fCm4PzvI8j/jm9MPTtecIl1zinTNKdI1p0jXnCJdc4p0zSnSNadI15wiXXOKdM0p0jWnSNecIl1z
inTNKdI1p0jXnCJdc4p0zSnSNadI15wiXXOKdM0p0jWnSNecIl1zinTNKdI1p0jXnCJdc4p0zSnS
NadI15wiXXOKdM0p0jWnSNecIl1zinTNKdI1p0jXnCJdc4p0zSnSNadI15wyXXPKdM0p0zWnTNec
Ml1zynTNKdM1p0zXnDJdc8p0zSnTNadM15wyXXPKdM0p0zWnTNecMl1zynTNKdM1p0zXnDJdc8p0
zSnTNadM15wyXXPKdM0p0zWnTNecMl1zynTNKdM1p0zXnDJdc8p0zSnTNacs0ocW6UMNh+tyAWxy
0WBy0WByAX9yAX9y0WfyPxTer7GM1lhGayyjNbZgxTZyII0ckGOdKEhgFFbTQ47pIQcDyFGMchSj
HDAgByPJwUhyMJJ1ImJuxiTRU56e8vSUp6c8vRmpKU9PeXrK01OevpvUZ23L7boIBpljhxCjcyaG
l0ys1JlYqTOxUmdins7EIJ19A7RtKLxqc1+M78xTUWOt/lzsoGtN5WJvW0v3aUYyf69l94tdeC0R
L5OMZLCtJeL0ikTJLFLrbJGa44rUnrYWXpMrlslAWQuvRZqRFD1Pn5FqSEWqmRTphF6kQ2ktEWRJ
RrKwrNe3pIKaZDlfLzRlkpGIb2VayWVq4C3Try0T6H+dkXSH9dxzsT7W80byjFSVLctkwS/LZAks
q0QAKqs6vSJZRss6WTbKOqmxsk6aoWySVaJsEmCrbPPkljYRGauUA1GlpIcqtRpXy6ROq8SetKxS
7beqkuW8qpJ+Wqe283qZfEtdJgOoLpPWr6tkfa+rZIav60RnqNNKbvLk85t0gWuqRGhoqqRgTZXI
sk2d9PU2S2T7tkqGelvbMF0vDIraFXp8PsO7Vqb1QibQQubKQubK4n9ySdQHyCrj2i/k5zOyMxKy
Dii5p5R5teS9SvUp/hWDnggLEnJjAzBX/MATC3nVlxyXcizQfKVzt+t1CTr/6myxMAGkK37kTll2
hGbk2oPp5SYWuNYqyet9pZ74kGM3vXM06RSsr8pfKuWGMvKJGYmcb5Wl0YP2F930yaaDuVbqsQiU
wBKeRxY88rx61uuyLNa+OCcFrFdcqVfvtJ6GRDZ520h56Apr7JaHSs0VH0pphEBWPOGyjoT2p684
pgZVpiixYDdAqw3QqpgyKMu0yyr5q0D6KDFNl0gCJcbzihW9AahtAGrVZtJ/SIV7KiGfvtjkjFj9
y+tH69ci6xQq/bj2a04sSdQkGA69Dpdv5ecbsksSFQlpv1IoHaVwQUphhpQyykoh7JVfyrN+lp+n
8iMgeCk1X+5KppimSmHxlcLiKz+Scyv5eaY1GHVU8ZUllIBSjW/DqU4T1hIx55RdXJCoaZuWa5ac
asixl9o19q6c25lClPNQQsso1RQ5lIfuFXlFYMyJ2Wp4IKO75+2djUtPDq8IdnFBouYaubgTy4KK
6pV+t+uecSwlUcG9otAVH9/Bf6zgeVRaZetT0uVd91x+DjjfkeCpSvaoP+SZnrnQrpCH17wjWIFK
ElLl3R7PCJywAkordz/xDOn/ndhYVCWpP+Jq6Qo102gdOaFfJRN3LZ2pO+S1VgvSqt0T+dnVcSyc
leHToiYcY90vyHEMejtl803gdiYGGd5Djj3Z8ZycBIuSmKSHRMvFXNPzCm9zDyXseYXwo4aEvb3g
mp4EM7i3JzNH+pqcjpyMd3lyrPD2HDqD4wOdlceeY4un1Y8VdcE1S3KsMu1d9WTyHE0GXS+iRH8+
m62LKKv8kNDZXqayXqarnn7rGdJe++2QkEro/8uxXSozRC+rey/iQf+DnvX2oI6EtGX/LccZl3pK
oYWX+bIXAaj/jMsiNxYk9HrRP/uvyZY5vf+J45aE1F//Be+T7trLqtDLZN9/xNVRlypp/XXCLe/H
AeYSm//a/i8bD9pzLU+2izv9nvtK7IivxOB2+fH6Y09+232xPTsPPcptKe/Cz2oD/q7XaPuH2Ifv
/NNvtBPEn3iGr29bHT4730jh2eAWdM+buG28B2y18/C2bF6oPWpbx+0Ne/G9xle6gxXzaiWdfdpm
n7bZp232aZt92mafttmnbfZpm33aZp+22adt9mmbfdpmn7bZp232aZt92mafttmnbfZpm33aZp+2
2adt9mnbDp+2v7KjrI72jw8Go86L1bPd/bc7L/d2zvafHx6tTlcf7B0+K8//7JxftdoZzCH/vr2l
ZPZ6m73eZq+32ett9nqbvd5mr7fZ6232epu93mavt9nrbfZ6m73eZq+32ett9nqbvd5mr7fZ6232
envEXm/3CDjfn4vJ4/X0uiN3q1s4c9xtKL67KvN2teh9+G9dz+3lvKxvnp9Mynt4dPpq/aCd56vd
g9XJ6RA86+nhi3WFPznafbn6z/9OVyc73bP1KzYbeO2Ghdoyz7j7ixd988DWt/aS20hY4z91Obu5
U9tdRY6+frEeyfK16RDJ16+4jUUvvhjld/fFi51nL473dl9I+N/Tu3c6v5+A2LcdMbetslvFKb7B
9gK3ncF/Pz75ZfW+ENpfr34/ORxq4v9p+Mr/92r37Pn0I75f7X3sP/1y3S7rh60b8ex4enb9yMOD
F9kH66YifcNgzJsRWC7e8v15lZxed6a57kdulV/2pBtsZk+NDUj51xiVDyPS31UB7377lOx9wVD/
pE7+vH8/XK088Pi5VJnX2qVjjKJrFbOzPH+RHFsA3d31krf/ZLEohwrZpPh6owJtbrV71FvGTGbT
rVLMt2cdv85t97mwbsmOM1ftQPe3udW9j8ebTUjXXei3bVHbjr1isquCZvc4d91gqXpx/GzAyE5X
+/9Z/n+HB/9Zbhasu41ee/ed/Xb1lQ/1lT+QMnr1nnOthrp4a3f0VhS9h9e6tlUyORwsDE93hx49
3PDv9ey4mQXiT170wNrWP9RacuWJP5lYVi/3VgcHq/XL9FHDew6fnuy+XNnssi7R6fNhflnPLNV+
c7BblQc72X652imK1dOdvb3F3s5es9c2Rbu7u7dsNzIH3EXh63a3zA5WzU6RZdn6T73aabODvXVF
r/azZlWXT5vV5gp/v6LbPbTzFRfGq7z63ET6REykT17tnqzzdp+trm002WjP2KbP3RZF+efTLdvc
9J+6Z+b9tse47uTvwyO3BuzLrwf2zayCe+iFwyPPW2Xnon1QMw+O91+/PJcN5fjl7tnzIfvsYGed
e3j2difbMLh6NwWcwda/Go2zPH/b+rmidX3omf/e8Ex9jVJs2Nj+YBboe+tndzMxbVDYvIcC3rnQ
9mL36NlrBPHtlzEvFPd6RsxrU/rumQZ2X0zA9+6Z7tkD3aufg1+om8T6r/gnDDkFiRKKOQ5p6lfg
2V/UqwfFcHtLTk3O1G1t3DxiuNuRyHG8CiSsFF491noY7467xI9jeAMP1LLjlDfk2PdVvIuv8fY1
Hc/hI7yVveGallPkiJPFcI2VZ0GCz3Fc46kVb9dYMewUn2O1Ie8acuxLPTmOxJIEX6HeH14L74t9
+fmeisypJHlGsccJKa04dQ7HUnfiIemLr8mWfiEOocNxS0J9Cp/Jz1dkS8GKpxyXcvwDx/IFxTfy
8wWlk08tvpSfz+XnJz0rTlC+2OUh0mKNtrzHC9IXn8nPE73Q6dsOONYHfSo/38rPisc6Ej2JhgQd
UzzFhpzzR62rVyu+oQzN95yQT2+eyM//5OcHzkrFNj9OxktlG2EMF9hHSt00UmXN15xvSXQkKhJS
Lc1XPEHavpH6bL7lMukbzXe4hXYkCjwia3LMR5KEVOVwqiJRc409p+TinJyeHHtF5JQjpyCnJYfn
aKdz2lRDouHihhwrj11sL83I4cnSQXq8DXu8DXv8/cJC/fWGhF2caUJ6w3CKHOnfQ05JoiYx9Wut
za18OONJNDw4kLMgx5FjBbQHVyQ6Ttld9mS7vecaK6DUd69vD4V6XA2JllOWqPWUFGy4xpOouKaa
fqjtpDuc6bi2JqckYY+xa+wuS1AuaYnhmkAiTt9pmzysO4y4JIeGyg3qmj3klOS0JHpOVeQ05Nhd
4vS1ON+/JTAk3OJ3jnsSjkRHoiUhPmmL861g1mWXbjwkWj7IcsTjb3G+QYyTUBmRDUsiW4Svx5O6
Bha6kqw/Tnr3kBCnu/KF/JxvTLv+Hl2fCnHBk+l1cEBuSahTtXillV/jSGvut+Zsi++5+qXW4rtc
y4Pr/6qzYDA/wkjOEgc43cv3R9Y1Pf6JmZsNfUs29NW5v9HVQZu+sX0khks8fZ1tPfGW/4QvxKU4
4tUZpp7wzbh5jzjPD7fgyd7jlt7jr4qb66c8C/9L8/IPJgh4+td0B4HGtvhw7efTfNuVrCtlT4ZS
PA0rdZ39WatRPeT7J1qNAUHPs265qZN7Y/t/DZ+hPtT/w6NTnSF3tcgBacYjt+lDg04z+tDW9rvq
SnH+rMyHevqxyWa/Q0aZZtiTanF8r6e10treU677hUJbO5qDK8JlQD4LiFxhWhfjVjHDJcWFM/Xk
DMJ0QKIMiGAB6Uxambttn0JfPL+Qn36t7RHjm13WJ5mk2YV3mAMDdR6Yj9rpQ2zfoU6knE6kKE5f
3IhvnWH70Ax9o0AysIFz4dm2RY1rrdOo57y43pbiKFv+QCPoLgi6N8iFxrO9ajqRSdcPc2yr4NhG
Qb2lW3SFcvIxy3HfYtfKXttV5HL1NFcXd3YHwBdetn6oZObsZLvujpm0eyk/siNxLd7E9RfTF9sO
SV0tc2Mt7sv113w4vtgB/2jz8jYfao97tWdaDNZ5ccoOOInbbhayLlAQ24xyOKP7Wuyr13DEF15V
jP45J3TSlc0EetmnoJddDHrx5O/36MpoQAEtKaBtTXv5JFDNcAluyuPdKGQB1WpMoMoEtDeps3U3
lKoaOqZqEYfy84v8/Cw/L7jIxN9AIvIghFVVfN0orKrO6EYBUgXritdX+pywlGV8aRKUJeSERLxa
z3E6WFWeFpm3dwg4IisOCZHkRPAdRjTTaT9Z0ZZL20wpEgZkWNFzEhmLuY4Z3duDhbK03SV0tw9G
WS0rSC1TdC3LSv299P1j+Xk1LcfFHauGjHrsfNF6NTsDRBz9dReI/gXH2h1/mT7LdpXsetm/pP+Z
3jBZW4a9yifTlbRhccSx6p7n47cnikoPTNGj4Q8dgplOxsaQyGj1bPo+2yJxOFOSQMXwqCrymCC7
o4elNbXc4ZBSVdQOqAmoP27xdgsdETfpxmk4+kY4xu/YGTcSOccJ9EFDT/Zu2mfx0S1tvuO4IFEy
tJB72SnlYxk3vzIYEEJ044b+JZ060CPBHNDZBb9pdElkpyvddak0YEP3qdFdll5oMSq2uFFxuRKh
tfqEbN2K5gdmYx0xx3Rj0XEkNFV/UV5bZraf6iB0SFiOXEV/vSRfjIu6Ds/h4xtGfqHF1/kYEK4H
iOwER+Jpy/FpB+zCj/Tt2GnKoa0ofFdK85WyiU37kk9HBI82QbFxSkRMZ2Y6Yk7QvZnY3Umhx1LW
yPJAGvuEu6tp2ctRNvn+Qv4oHOuGS7LwViKtVbLHSCdhX+ofp7faFsld/RPvZF8YjWWFNNj1x9T5
dJUed9TvvO1sZDXqqCrdwOhMfl7TjO30SbbDy3CGjVV02yLPTkJeizMkdLuXV9LjXlEIME7b4yRM
+9y4gbtvDmiVaT2Pe6/7ZnUhv7q4Wo37qYdlpHtP++64e3ovnTEuL6AKy3Fbc9fKACqfT0/bDNID
1NoZ2w2n0G2/VtQ5u7eN/RrVONrSijAYL9RMNW6x8ytVF6YXmM4YeJiTXU07QWe7UrTGUvacLWV3
2lIi2pQi/ZayV20p3bHUeUZ2py0lckep+43JBralbGdbyua2gjR05cm0XKPgX/6q85bunVVO5Y1x
L+auklqrRMmoVPW1zfiYjytplUo27alEJK9EsKlkJq1EQal0/yqpjkrGd/Udz53W87hb8XrGqQMJ
HYfPONa9tRC2apaGWiqwvvBlpk+u79Q9DDs29q1lK716l/MyOdW6AZjUci1tVf/Gy/T1L6dvsQ3s
XKfX6aQic2mt+o2KetJutbRwLT2jluarf6UsS96nG32dcEImzlp3QhMNpJNuUrObmO65WOteYYf6
LHY4040jXfdWZ5XA9KLakG402bPvU8/uYz37MPWqeQwJKaFsFTkcI59e0Foq2zR7OCNTVRDQqpVd
psJnDD57aUWOvkImbt05s2UXLUUFdHZt9aFfc5aNvdQq1pqayGsUItPdNmWfxSHbSitSvG6wKLtv
Dtkyzcr2gnylAQtd+wnP0eKKJqzqPPtdDs/Rcn0utcBOVDqPhP9OH2/b7g8XKGj0RgEp3V26P+NY
BSG6e08H7094glSFFqBnm9HAVlm6lXUv3URlOfbf+p2HdFwtC1H4hNfq0z/lvC6Xp5wPJPRLAfV6
7f1OO12Qmuv/4KxqOTLU+tcURMsnzRrEsLXEohrRmCPQUURRVqGE93tw+m6yHVjEmhixZUYW94it
NrLARlA7kQg8Jgov+qxfYtmURdwv7QkyuANGyIhSr4VeArBFVPpo3ydfE+wz7ZnyMHAtv/xQDXmd
PlMKG+xBVglWCkC8iN00gu9FoAoNZYaU+/uk0zaLCe4VCt5ek5OxkGNkrhHUPTbHjmsUuCh+41K9
4g9KaBcuubUkoVbbU5VtQsMJVNZAkTw5asUvtK/22JD5Mtu/1rPPrZ2ZfLNakNmy1RdnHJuQrjbZ
1/LzhrdOhaammD7SykNdBeyn4UIJy+lNtWrr3qpc6+At96LGK5jNzsM9ZIXe6AvFr/JzIgLhz0iM
NQn51uY11a0m2zecV1vurxyDJEkP6cuLImPTTuy1Ci83KA/BwCe7Qu2tvynQ5LHwaodpjuXnqfyc
ys9L7pbO07zlsV4TapbMdZ0cTtmrQdIUvWv+kJ8X8qPVJC3fPJef37lXRnPzbPLBrW1zPzwTC3gk
oVNEc8gxiFygrAGjdVDj+CuOsdF6bL2evYmDYXYdpzAnBxCZYIgMRl/99Ioh5TAEuNEwbCZnbecK
poWjJzig8IqZwE3QHysPdmWPXdnb52DeDuy57AxOwpQ+opMYswPWcY8pPXBNAJQM2OZ1s9HsCcdW
CNCpYOUD1zeAX5TmsPzfg+41djU0aNM7ZF2tFHdIrT59/eocjbtrBvj93PIQ9Nb72chrY+Dkne2o
dhtidnHlDXjuvJc/NN/2se7scoEne68bSt1voTfRz69AK75KRL3ZbjDbDWa7wWw3mO0Gs91gthvM
doPZbjDbDWa7wWw3mO0Gs91gthvMdoN/qt3gHuNQvRemmd2dZ3fn2d15dnee3Z1nd+fZ3Xl2d57d
nWd359ndeXZ3nt2dZ3fn2d15dnee3Z23xt35vsOXK2R0zhQ7XA28reOjzfDE/uxNm+W9TQh28w69
lwlg8w69t62fO3jrq5Pjs+P94xfbvTHphVLeMKji/cYjedRBRe5iQ/k5SsjfMErI3ZOByw1EeXgk
geW3Jn5FeX1C9oOtkhdWgq2NaHP1Ul5nj/vzO4r3rNT31/nvYVf/yRffunfel/RWblq6fZ9HRFh+
Jerff+EEmFVIFMDltxwroPC5/HwpPxOqYbbIjAQNj3xIWI7igh9zjPnKqePBpxyrRvqJ/HxBtuqr
H3HcksDGJShBWH4mP1+TrRjIh6LYytnyQ/kR1NDpuW/kR77ZSQFKxUI+RSGW97qvp59e8+mhFETE
fSxHUlr3kRzJlwmi37v/yhHGI7M0KYet+YVj080rEmZV6kk00+K0hpC6Ly7kl5b/ufx8yf1gtGIo
DKUiQqE1zBb4X3tGi7Wqx+6kmJLQYIdjTFQ9Rqsee5aaLIPCm0E4sKGZlMNywJrUSNXqHQZZfcV5
6aGtQVI1iUKRC+lyAeBs3V9qDF8OM5f2RsOxsfsOF3tycnICOYAjiv4u/tArlDi6UA5hwArtsi8x
ljkSHYlIwpPoSQgsnKvVJC4VqhoSUiihPQzHBQm7tCQhhcq+wo/n/KmxEMuM8CnWtyshWIgQTvgZ
TrD5AcUrSVQY8ToSLYmea6Qw0Jwi7kZOHAmceB448TyI8JjWr5CWWvduJfOWWvghp9SE8oCVZ11C
Ly5h5ldPIPcDqksjDzmeHCWov4WQ3pIQPLhWjvwfk+GUlRP3ALHQ2hlz0KjfXMivR865gd0Kbrff
QifupreYHc3L1OdlBu0UeQ9QijojXhp91JigRnbtYB2CV0cwxACEHGC2BZtX8ZlRULCUuU146UFo
5FHNGUKuce2P8nMkP+JXUonRpHpKnYuloBJQv9onW2q8Eli/2tWmGv3b1GBrTgXmgqAtP7TGtArz
vLkAA68z2knDXTgzWk9rxm6ntsLh+XYTziAdzh9KHq8hg9eQ1Wtz44CA3ils3mkt9eZOAPDdng8y
Byzfqc+ReJM5KAhDAhNNxDIT8YKIWBMj/gYRw475M0Q8FpTXLe6ODv7CUCC5x9mFLZ1Ur/gfx0qu
/1Z+JkavbPTHWl8n64sLPyjFXsdkEBNu+JFsKPg6QoN8epAChq/k52tebg4FkYQ+9hseg0tBr0x+
oW2JAONFVvDL7+VHmfrCRVrqlcK8WkpLqAeAuBZ4kVH8UupCnEj8EreDHuqyEs2W38mPWBiDDupP
uQgDUmA8R+53RiFnzBvHK3Kqn5BKstGNyhdmkIKjVBi1zBhzcJQKs0sYR8/IcxCRCuh4TM1DDq6d
kXf1MNiVnGJM/ULbzONqO1xcTsueVWPZjRLo7DH59Nop7d28agOVY1Nkb89T34T/coV9HJ+LoQb6
F3Zdjyvw8AWBCliSYH7tYLpFy8nIgS2nLhMNrPtcK2nImUpzpTEshjM5iZKp3LjgSs8bG6a3cmFe
jNiOIrR4daEQBWC41IqHKcqeqy3W6Fw3vGDBqUgOVOdATudIYL809nLEFhUtB7pbwMY5LkfG94bd
He0aFrGIrXRczWB3B1iAdnuA1D11ncwqY2gMZ7CjWSLC6xtfBS1wfAPUwYg1NlqtYLFVOthyJPx4
1V72OVZ96Yn8PJWf7zlbk7AHyXe5/3GsDq8HXIhmJ6bAsPxJL6z0xSv5+Y7LCh6kmuCe/DyXnx/k
Z5erVTt7Jj8/Sll+FHlBhpmTsrvvJFP1sK/lR9TK8is1R5dmYC7JmS7TVduYvqVa2pdynXxU+YX8
iErppKziJ7cedSJcBvEpDOIWt36VyvDi0zccqwL0OcfyieJWOByLptSqNPRfJH7TGxw5pn94cnJy
enIycmSlzWThyr5GZK9ITKeGumhGQ7uu/Ll4j+Z70+uMdOHyfZHuexXRpV4HY3xOIkPSFklGKEDr
j1DSR60j2YUnTBUmTfrpS0d+hRvZpl6dDg6lheQzVd7pLtAIstr4Ns4hDiivWjpYJ658enmzWE4q
w1QQWfiLQ3SCsBW7wbzD/cG14iBfCculeo4oNq3cxohnPXzdoXJh03pQF2XvC/FkaENoSsqwKWhu
kz0LHA9KBOAWV20VbSupy+pnBHITmBuaUTUa6YrqgNA+0Q9Rxl8L/VxmokFSqkiUJHAZFRHFBdEG
2j2y1T9RZSnx/g5Q9J0tjbZg4eAWIWEbf9n8Y7ziTz8z8wB8yMK/XjZkZoh4AQ1jRrcH+YWaykkU
Wkla8ZUwt6pj6g76l1IXqyOuR92x9tFqrKQ1Ku0k4ohf/cJFqCE9OlGPj7XU7pBAt1WOaa1yy3Cx
KS+Ra/BRtwd2pum0JNBrtJU6lbSGRM016FA9juTjxRkJ0+xUuZARIOqjEyjLCZbWySBxAtk5nVkF
Uuta0TC1LlrZq0MAPCeIV9eKtingkROozwk22LWyq0d7KJmi0VzA+9rG9HtRcTvZhsU59fWW5hBY
0em2Dq2MwVbHszSj7FHStSu58nP69YTEmC9sYlufUfgoHHOljLkgeneQzwqn8mPDRKfPFxzj6ewg
M/eqvr3iWMqMvvWb/EhNBqneINBNkB0Cgng9B3HlDlIB4Wj6GeaC6sJz3q8O3jKVBKnxgMO49AcX
VlydccKrg7S6iYhs0qE2eoSaTtS8TrRLL7KUX9ptMpuEr8iWShYdtguqFMqeMqJJdqKHdqK+8mG1
6bei93aixnqkO7+0qe5ApyZvExFagOkXHmVHvRPMUbrAFRXHjB7/CY9Pw3A7CXUbXKLTBbsUb1tV
RZZ2B0pPQH8zf2PDkswp2pyIvZWON3lTIwU5WnKzOUGbwuUtYZ9vmpd843IC5eRLQ258MXpje3ye
opXAXgQYFq1+0F89H6meygCewzKButXjKeVoph4lSKmSBZc6lLcpXT1f1hPlDQeq0VHKtEv8g3Fb
8h9OH2LTTV+gTTlb0uy9i+kt7WLyXhGiCy2xfYE9y7Q3tNV+gmbmI4NxOGMVYQUQ6a/g2DXTe5fL
yb28x6GYmptURM3T9ViQtnUxtE3MOVfHi/Zyz3mH1cRcdU07jHjxRnTBMceeKkU0l1s18tRWKpS8
iIeWqXTR1FG52Nx/IworDw/TerEdWsLySAWPgIxsyGtQreoP+XklP+LFsxTz0PKt/LxRbU3tDMvX
SDOqvZ3xSFXrXnI+ciMiY1B98Fh+TuRHXIWWv8rPC/k5FSFeHDLdrhyJtiW8+lCqQqZTbkS86p3o
taVqg99ymSeh6p2qkE/IVtvZPsKZHuuE37s9vVC1WoFMgwCbQdDK0KpCKLZP2ZgliA4SZPeUQdor
1c6kVjsE5CA4fcBLfVDeGpS3yClUPtWLFeld4MiF33jAIz3gWx5wgx8utpwFhRIZLvsWSXSJvtOR
MA0IJ6vSEsLELiYeLXlu4FI0Y0up81PEvzziHD9IulhddDcX4bJ3wmDuhNjcMbkOAnCJHCvyYyXC
VXWKFIiAaMJoD6yvWkArwowAG10rmyq1skGZgAmDaMCWKay4K51Y1RtRt7Ur2GtEd2goMG1MPQPy
cWOxYVyY+F/TLNgK/XSWLEbXHpx73XRTq/UFps62JxfyTXwoMXPJN3eV7ChTiUBUyadXv1M/JrWb
QI81YpS/VTAW+NypHUEe28pGPa3sVdL+rlqZ7m/Vvp2W0UxdQ103JFDTHGqawzygq+FSRcXfp88a
8UwBk7ygRl1QSeuJNiUynAp3YiZSDVBk0E5Ew16wdl+M6LJCb8o2UNKAUgCU7LBkNfJAqQqRiXPh
cMwypez5ApBUpbdCHiuueUP2dOUvFyaq+I+m+eOK6OVF/hM6IZQI9RFdss1Li4zS4ui6VOV8yEFx
DTAiAjBAABhQ/NI9paQ6Wz6TH6lFd8BEZ12eic03j4MOXV6LDv1XcdFucK/uof1PJBpu7S33EgRv
Qjt70I3Pr12Oze0EfzdVclcbgV+7NDNdbqbLzXS5mS430+VmutxMl5vpcjNdbqbLzXS5mS430+Vm
utxMl5vpcv8wutyWbQ48s+NmdtzMjpvZcTM7bmbHzey4mR03s+NmdtzMjpvZcTM7bmbHzey4mR33
MOy4+94K905Jc9UG9tXbzO5z1ZV3n/un7ZNbzfvk3k39vAN6jLIeRlkmB0HA1n/Bg6pJVPkit/DV
HZFr1kvPNNhYkS8n64ZvLpy5GGlhnTEJe1EbFsmG6R1AmQdIcqxxipBBCOoI5r2e9yJx1Gs3fZUh
EevlVudRDYtCBMgORbpDR12XQaGrEkwN6Xp4ChiWByZTtN8JPOIEF3GnVFdFQqQK94pjFlclz0B8
8qIEdEGCHIrY3wtq7tWuIZClF0sK31o3pjsiHHm13BiHT5W5ocJ0oZAYOBLoelgIlMl1piKQGs0l
cvYgFU6btjB90bkzPkKWFFFaPPF6eolJ47JptyomAUZUOrYz7eQMJn4P5qMajKo2uegZql2JxtIX
ZrwiVlaLAud+m74pH2W1T2lrIFFvXd1yIHT4xfQhFmSkI8qKcxLD1/1Gtp1vSUi7Swt0FjM5jKBd
IGavh8MQAMY813h4DxoaJdCvAySoQGBOsY31ou/1ou/1omt6McP1qk2K9ufVtKYqpSiBfHIzBqwf
rdexvHCJxZ7S2HEaGc5CyhHWqZcYRd6LxVIi+Hi/L11TInk69F4lfUr9Dq0KN08VYNEbHDH2AuEi
1xKjQAhRpLlI4CWqsASfNskYi1gH7u/Q3YeugA1E+WydCo8Otd6hYQ+zhvUbZg3MBFgQWpPgJ7Sx
orzQs6AeechOY0+VUw4Sm0dj8ChbHqOAR4fwTKsBoN5jAvDg/BoxCYbtkGM1wmcHO2VfErkLHpVG
NnfM7o551BGM3kHccRbMmkgmcJOdU/uFcyPvR0OQO/hY0IU7o5NB8Ruu4WLlYzmoWphlnNMpv+sn
ZcZaNdZGy6npdFiZwL8exDZrBV6OugWNbYxyjmHN6ImtLSpYXN0fHNulxfTVWWkzMVw4h03KEfEe
KraDMuuCmRkg/iwtQDilIgr9kGOJglNMWlrHaM+Uy2LBDWesXVudmKQ9YjuugVZAx3SmHxF0Eh6m
s8A6YC9vyHHk5CRs6mQ27DCFqJU70BcDCPdyjJ+u8XbC2Ami3W4dhYJ1FN5b4dGXg32gqJ6C7Q21
XZCoSDTcbAn54PIbriDsuEaQFkzQC4eiIyBYR0C94UJ9wtccl1xhj7I2ieTYp1vPsATWjin3taht
Le0sqJ+IL8OV+t2/T2+w4Dq9CD1eEEZv8J/EDuVy49b2tHRvdSBxRD14YL8cKVmKJAsC2Y9FgWJC
c3sBJ30p4ZdKeaKwPHy5z9M8dy9JNCQcpQd5V45VucuLbMmUwpUHHOutQp8ptATCShSgtae2e+sr
gKc9jeUFPu2tWwHHUoPGnulp8V6DxRb2ffqknyiyfK9YvPtCgnsbB19Cb/WCCvpWrxXxwWsFCvQm
sbp6oWP0giZ6oRB7IRR7JdxoGHkJiuSFpeOFs+PFXWAtS2sHkThKvYZKFwcEr0SdGnyjkPDcEr7O
Cxuo10jxLdYMNRpoXCvxcfDC7ekl/l0vAcZ6jbqrdCEJUdYLV2Z4J7iNshu9CFj+OdmCXHmpAH8k
P79wtwJGwkmolQIGYFVLo3RmLPmVh04Xg2Zs5foHuU60B48tQL9Vwqp5L2CRF4xIhk0vsaj6Wjqk
xKny/pj3NSRaEuDz6iuxJGBTJ1hchwZyQXJux5i7ziwamLG6cOHKZoRqFZZT4vs0/mHRWgjK4bql
Ggn0o2QV7QW8Hs5rDDBoWUucllitewSV4VRFoiNRk5B+1qnPj6hsGs20/IOLIk9ckoBo56aDtK2W
kzpR4v3bCxfUxoEDOAxG0X+j2J5+Usk4R1jpEWh6FscAGh1g/vSIU0Gg4x7JK8AVCgItB3D/IdFQ
JM89VodqYvmd92L80RnNTRItpwpy7GK+qKbYNZ5IjurQSheoOzhs4yztQ70oeW904VErHMv2cA2J
2t1iQ3qnsjZ48Oh7kAu/QvShrlAniTfTi8spFUTXXaFjCQPErjMla6kqnMxV6lRX6M9n4MEGFOMs
pVKZzJEOK1hXmDpzNn2dubtZhvELIY521VsMDLKoeQ3e+isPrrneKEdoNqo51GAhDSZ/DUruP8U0
o3jPiT5TZSUoAk6tR/SwQYeHwzi+w5hKqnn8SLlxylBRWLilw4nJTJOPMnfXm2T8hmPEfxOiVRAV
BkwX1CAiPDLhw/jlz9i2IEsoa3upirgstuYYqVGgTaJxsgY5ZVjuUlf4kClvNSIdA31FeOeuJc4u
dEIxycnAdWpOqv6g/awhGxKowBd6fmW0hnUTO/RGhybt4Ic5dFRn2JqdQsl0KKtjwp5Dd3Iovfqd
nXZyLU5tcKaTGnNiTHZQALvWNEWla+1zXtUyZYwpF+yZnjW+oyoCYoUZjlUHVJrkAU/TQjyRn1+4
GiVQGwXjt3M/cyIjUUy/y7ydHKK/m+hPHSpIh25k+oopUrXdhSKl7nDhLXgT+iJUYEqJiuSCaWF/
0PVRNk3RqlEkTdlEZzmeftDIvhOCmRd0rxPWmV9OWWd1azOmkNu8AF2dcOQ6oa95wbucKVUCg3XC
ceuEOOcFWfQCg3VBkTIRYNVjqBhdXSJEI2hW33I8JYI0o6gjFHov/r/9UiVt1JPywl0mzvTQ1jx+
wr24HXncgz0hLn0JPUpJNureZNrCeB6yVESdKi1HSycMN80uR+pUgNoUkKDV+6H4iqkbu6t5hHg4
RYHp3fwSA5SpgO4UQBW9iei829vtPNCbsrec1t4EE/+aW1TC/oI7VUfgWKWB4kuO7YOxHge8bNSn
w4te7lVG1pVK7vfSRF4cy2tb1bQQolDUitbLIu2/YlZHtu5tnkfg7AC3O0JUd4jdPW4hJl12COuq
KrejD0qHIToi5XZmdkaInnpU5mOY7OGMyPSiKIdSbcxCVypF3ykVxFW2jtCJSmVc/yxHL+VHjNKl
Ll76FHF+EX55aPXIOD8r7NgK/co7WzVvy5OEAByElB6EaRyEohvavemnGZNukNw6Fs9Iwlw4zLsj
sJyqw/UJjBzl3+hP0MVWPbdL4EMMTkNOh/lN+SRiRSp/JdvjFT1ZyIpFBjocAXjtjJlWCuWUMLcb
2NYBRMLO65cqj5rs1JFoSdjKqgCSKNFeyLKFyAeFEEyKN8gS4J3eJnsl5QjVtniL6In7dmcsGalr
JbBUF617i3rihW2+CaMQASAMsHzEsZ3Q9fclxwrrHnPckTATlNlfWFV7FtOehRE/U3N4VQJ8Ryxw
LwYVv9SFSWpNeNX6acvliIwpFqQMW0WS9nW6VrSrUNxMMYzvmAx1Rv6eY+W9yALlf1JqpfpcKQrm
DYSQqd//wMzCzh7mhqLMx5b9KZYYXZbs89BqGYJ05SDu/r3TMS/AjLRML+LUcIvMXEKZD8KxD63O
HUeMUIahzo5OJ9VhPJYkpFhC3R8Gpgj2xR90L0+/Yn8Aj7W4NklQ4as4bZ5mYsL21lnNJqc03B+m
t5h44lrt739cOF1O9CjYXc5sTCb+4pPhMOM4jEGjkdIkYwTJ3iwzBQksAmO3xRjRWx9HnusR9ZR/
xs4fjp0/hovlXUHx3tfyIzOBsMK8wNSd6Eh++RuPkHVV9mXx4tXnxXPQ6y4qwhvrhWTWq2OjMv9K
ZX6J7iObVPR4t/WwIoderaus+AZ4GUi1vKAWkKrQHo+B0o9W5H5q6Rm3ZhjOWN939F8W3N4WZYha
0dZ0lvKeFVwD2gtBIIjFfchW+EbouaXYYoVs0IvVPZRitXU6tuTOVn9k3IkXTRA+YlBHm/zp1uxr
NXNVZq7KzFWZuSozV2XmqsxclZmrMnNVZq7KzFWZuSozV2XmqsxclZmrMnNVrsBV2ab9jWYCzEyA
mQkwMwFmJsDMBJiZADMTYGYCzEyAmQkwMwFmJsDMBJiZADMTYLaEAPMgux1dMdJX9e8N72V0rXJc
daeiO9jr5tXJ8dnx/vGLDxaL5ZZv6HS5qNeqp+uHbbxpFMUtj/R4fwEOq/eP1PuOVDn58NXL3aOz
w/3TD1Yv91YHB6t1H9SNn4bud/j0ZPflamf1YvVyyFp31NPn/3719v8OD/5T7TcHu1V5sJPtl6ud
olg93dnbW+zt7DV7bVO0u7t7y/aqX/zl27Pnx0ff7J8cvjq7XcvdYRTG6t+32BVsg0Pqxi1Wt7tl
drBqdoosy9Z/6tVOmx3srSed1X7WrOryabO65lw7vPH3w6OD49+PT9b/flmdPHtxvLf74nT/+NVq
5+Xhm8OjD74/z3/yzerF0ydfnBw+Ozx6zzJzL+E+NzMqk7650cH17lq41qv3T45PT58cnzfOk3XN
rfN2n62uW0PXGsUPtCfe3fWOh9y78LIQcI24tXczfK8gddzVYLjKvLUFg+Gft0XkNbvhDVfL90a1
WYxhV3XPcdH3A1zV4QriwnoCqlpcWCXOL1AQ28nGzBMIolwYIcsyQMMG4INIqhbVVeD6IYe9bpWO
mX3HMfGbAnFfe/blDvBzBZNfP0Vt9BFeQoTUEOGZRMgXEQ5BxD0gF4NZLtEwcjGm5WKKE/5xlL2G
nbCrYmYBViOAKZt9K6VV9GJnSGqttoYhYTm9Uhh7PBACPgM1Lg2KlFSQCCuscRVEvGoEQUfqLiRT
g1Wc8WphQCqOBFLfA+L3Ard6f6K8IoX06l3JVoRVSIj+NXQY4APdsrn7mGOoHcq4gaw7dC1rV4GV
su85bqkPIwHDhO2xNHq+zGPkNCw0AoGa0wc4Jwxd0NHeqkGgYi9b03fE6hhcPQI5OW0DKqxbqJc4
apTAWSWeLhWQLptEO7aEHk515PDkYExxO2W88Ia77Dls8B4cCagFxsoOdIgAcBeNcQ1MF/FUCADV
kY3gjSMesX8HTNqBUwEAMGDbjhDWA+DeyFyHVxGtYSmzBy8PXBNgkkd44wHKhDHp7bsC8OP4ybAp
xmoxarq9y8j6XGxQZ8DXQvugM1YG7W64KOQV50DfnXlomE/HyGwPdgrWtaGgAQN7T8JZ77YhDRBs
nPkAxd0chryVEBB1ao0ps0kYJRqQvtaZ6wH8GedGxxPPR3j47Ea0jwC33r7GbudijwHD8xHT4Bxl
PgZcolt37LPe2chpRzK9NZKH1RKL6fOmrHp9tzHoI05U6v9FjN/1pcEI25CVe1jZmnDQETxQtDnT
RKgE3hIUITAxBTbwj5C8Nc6vgwNtZhxz5NGAv8aj91DiI+x0A8ojaLgh5uYg5I1nDkvCQ+PW2x2X
BuxGgWk0YDeKcMA1oAzOYV2wAFYEtcVM45djrAgNnSPGVL+0oAWTe2pyWnI6boYpXVvjwFkfC1Fy
Oyx2K1YP339McDHBaIm1A5vUL40sRYSipXnc4Z2F30AHT78zO1uYFJ4ym9vBeDGf3LNYmVuF1bKz
U3Kxmripr95IqNzcLy8EIi4Liz/phRfqBav3YuD10Dl7MxHQL7w6UxUjZ51mHOnsDtaGNltp/mM/
c6LhHvkUMa/3S3P+42Phk3oxPPRLc3+wHvB8+mFNbsyKNzxADTm/8gCttDPOF5yQD5GANL21gNoG
6So99d/T3X2prxIykLAJvBFrl6OU4XiV2izFJO3L0RcBkzdxp8350AwxmF68WimtewphwZfqB6GS
jFLghQsi9AUvTIRe7I2+Vb66GJmEieA9zazDq9U7j8h2yuJXO1ar9H18J9Vo2yq5/i2dJichzStk
CN/i1qdtJWYhL8QJL7ainhDVQ0K59TJztOolsE+R7LKCRMagkqprlRPDaJMwRT3OxMMdGk3KCl6R
0DuEKyUWK+/f6KvVQNeOdr5O37jLielKV7bZ6HGrAnGtbH+jqRI22jPSPGT0+gUnlKuvJP0/eIJm
78nPL9ytDrXSlvUx2SVPy0hoMDB1JTjgwpznEwVMA5d5nRSGRMs1WO91/vc0nmfG9bRrvUJZ0PBf
6hDxlOt5Zo8ZtKOKdOrpvuFYreMvOZ54GZVVaRFwvDasnRn9HmROrfe1TMG+g6/vyDF+f8CK6uH3
B6yoGuW6+4rGhs+kwWI6IUR3/9Vso0J57LkB6623W2W2777gWEcFLttGnlIGXKexnZnT8aUcLoXK
pfzrjoBgHUx8pTOUI8fLQpcRsUzFiyGHNxP+DMpH9zmP0wYTBnFHkOzAZwd7FH4F3PEJTyig2uNX
0NulOBQoWIFGNtxV3r3F4R1k+96Z/ZzRhBgdSiOqQU8psdU781HG7x4IwEuctN5N7uFxusw4CNUl
r+w+4x7U82D1QVfo8b5xPKW3pp+wm8q6LkffkrHGLQd/GGfIUUOipcFazdGIe0jNPZJqj6QaIEP1
iM89smuPyBqMkLygGMjjvUnfC/3QAI05tKMPi3l4BPPeIPhcZ9iEvctgC3ugMX4mNPyyGf1pFzSI
09EeiHpv17bjtT1B7AJu6YGAZ8GetyBB4PJgVcAHq+d09iPFFIE++0F+oJBE1LsMFnlGFMAInBMB
BLOfOJaH579wDLXJGxKX8TCBtzL9EWphJoBZpn71Eqg3fyFHEutOXCuc+G9G8RSJ4jcSJRKYE49D
J46bA/rmQd8yEstpNRs9aq0ZyZkhQTRpVcvYycSJSBxBBYYrMnIclxoBkhyZ6AbXhVYT6txL+FgP
2UWHvxauHXdIqcaIzhHQIhqWg5uIKtpMFR302c5o7QGlVFEjiYfs8bTrwqiKjRrOtA+3tvlJb55u
eKH5cnQm9SgLHumV4LHaUXpzuMN7z4vTRm+eb0VSHeZotD6jU3+BZCJeNF49ywrkAaEWefEK8eIg
1Ne/Tp9alePKr3Nt9x1LVME0YHNYwfTGVKh+hQ4KXzmZn9V7TgdngMwW2pEKGGxs2yhlgpEnx+yj
aXGbduTzTUMklq0Jjr5FREWnGCWU3sZxw3jI6cGGZ6LtOmtE1BwNBdyqmmDi5AkVpk6W3/OZgKXB
EFFwpwg25QxEUBzjI17W8hbHZ8jj61PqFVdMeYbURLXI65EerWMie6JDTx3sixFRs60dFMuUiOFD
edDNHQq4R2kwn35zyh/VdtBzb8MEXML0Y49Kq84AF/21qsXYJ9uJtCwDqBPn2e4HPnBJi8rskn0i
Px/LtPjF9LnNYqRuymTfSaB1uyCf9C6o1IrxVdBGq5GNKgN0nbA9jQL81BFGxggRwWYjVOgIvzsC
0kawvQhEaNtiqNMU8Vk7thvq4Co6p9iGc+PuHA6MUIuBm/NwynoAuGQEyLW9M2JNjhUMpDKC33p7
IGCv0VkjyGkEmIzThl7m1QhDBiZpvdZJpHT3GedBFqeOI9XS3Bw6JyR191+uk66uIezdV2RrN/+U
Y10KvpCfr3kdaF9kfBp4aFt3BMoeWVciy4fHnuLYA2Lqj1wtrSt2mAs9i0U32TdkGsBzfVM9uclW
LIA3b/PWhTpuLeqnmZrQVHxpexyMxi7PQhXA1Dz7HigEgMbTo+h4c4hG0dGXZ8vJ7hIaa701wABv
yEKl5iHRkbBrShLN9MFZPVkMCZeuDNwCFMozdbUjWtED06jOju/ocMqTo3DA2+kbi+lCqcq0rNi1
IEP1a16KXs9uBWgQNaifB7MrwE09WJtH0allLa910QbBwI9/3BPBSMwRXSaqqfGnafkt7vtwL67d
Dr3QoYq5C9XcTFQbh+roUK8cOpND4XTV9O524nQ/3oTHuUMjCab9VKybPQlUih5VyZRcM80He46J
Kw3XoHIF1JfeXoHSM9Xlqty2TwvsJhccU8CCKoijT4Mz6R4buho1MkW+XC4+DZlMS/lLWZe+kh+Z
bWS7kCiebA6xOJqdsdTRPsjQHQlbpzrWIHa/6jELRoxuuky7b5mdkEG1yhYWaZiuXdBnc524PFoq
NVWb40s97jIRgXmiWaqR4M0CqOZo/QBzdo24LESb/EzuYNMej03AY1IY5ybkjsBItyHmQAtVSIns
HhGtpVUTFLdf2YtkKLuRDSxhJm58SXrb39DaAdN0hJlgRu8eP+zIbmYRwSFi645smBbtLrN+s43j
1JhXFeMq2un6OrS9yR+yWlkkbl23e9Ew1dTaY6w2o7fZukeFq1EnNJUg+m57mMn3vAvobbl7tyDQ
3W63i5n3NPOeZt7TzHuaeU8z72nmPc28p5n3NPOeZt7TzHuaeU8z72nmPc28p38U7+khtiG9G6e7
B8OPZgLXTOCaCVwzgWsmcM0ErpnANRO4ZgLXTOCaCVwzgWsmcM0ErpnANRO4ZgLXoyJwPciustfE
sU5fvxrQMcWzBjhL0Cw53uz+nndd1IfG9zawm2z2eDa+zW6/8e1fbfxX3/0WyFuyp+27v/g62/k9
7IaH2VV3mnsHdXKYQzUSgyx6vU2lBmHJImgRqyKEIiNBTWPNVEVVXSBJVoXF7eoEhHAO/oxGQxDk
uxP7SacKrGjTnQTLc+y534kVbDiWNUBIeM6N9LmAfujR/XStFgzJQbbsxF7ViYnJQcZ0bgwW7GEv
ecuRyhJDTScWnq4jki7xleGiONQnsU45NzKtVDMS45ADGu5UnxeLmXMjJUrJemK76iRaYicWNUf8
Oq3w0miqay2uVEWU2GoSPsquNPg7SuXET+UqCUoVP+FmvUgBColMFdFLdTlX6CCalqo3iZYbd/VZ
KoNGaZ34A1fLbfGJFpzLBD2OP8mPfHBUtVpiXGnsNKcvkIga7jv5+WH6uYalOAU1NKqVxtiKiqmv
E4Uq6hLzSaNsRQkFLlFmXBTROH4kmQc8QmSZ+C1Vp5WjNSoN5/RzfpQf1fP10/8nR99TMVrU5ype
KifOWWEFgo8CSkRreH2vhEdx/5vUwxg9jgyD5/xyjIAcEHoDjB4LHu+hGgXT9Lvp8wwX9hOdfbwW
7tEITZQX7m7Gu6PdDanX4ih7OFEBoC8AkAfYVhFUMCC4BwMMYTd5+zz74KksW9XtCHEYoOG5Ntrz
QD8MrL2AO1Rj3A4jx4Wxsr2dsoKC0lhi1DlMC7EqtQbhgyOEqrF2wH8C1T62p71iqnnWpnl6FGuP
udmXFjzDODsj88nZqUACLCcQzctIUB7ApifhOaVoRakdxKPo93RTbzq7UQaWY0CxCJ0qAptHK5i9
ghKa2uZ4suftzkqYcYqEMbYCXLJYcwqUKXK7A6zqMdMQJM0iPWNpWVpENwKNoc4N18RpK7WLCaCF
yhntJqsnqGw9BTTSVbQmpZ6ClcvUcmtJG39KgxpZXGE6qTTL/OIs0yzbsaARqMuRMNuCmqWKC4Te
qsmqEV7z4HY9diltkFbrb0hUPBhelqPAUKwsWg692+CZgm5VYHIpzNJCXHM8DjwE/eFi4D4HRthb
maFP9VYwUD6DMxx14Lmmt7sMdDQ0hK8gVvTYImaLsxL2mDUMVXHkGK7ZUwnOqoXqdVTL2EoNiXra
Ss0iafRmmWZkaUY+mlY67Er2eG8tQyX11u+sAviUDqzW2txbO9BBevsCKml8hX0TOdbm1kSea4wi
pbNMTbx1z4D3FmuPadlfCE5atXkxArgBvpcjx9OuAQpaBMa9ME+3RTY+Rlvcs9B5VhTPfOaxcXv6
pOc7PXbFemS7BSsgFDVHSY03FnipThc1DVmPIeZ7Huh5e6C+dBjW4N71SAsMnlORhH1pR87UItHW
9aQyuNtYdR5an47UemTzBd7p7SOod8+rapubrHqYv3rqwE3VobadYPTBKhd2YLAvtzFs30lJvXWr
nFPSWmYOriGuiaUxiH06GH1EiBxBWCXDV2ggcolLKKSPAKNECl4vxgjpwvwImfBduwMQe899PECk
5pBp/HkJA59JTEkBMvtOAquJLXR4iJZQuIGZWlIlUmKmxZSo950EYsw+kx+DdyUhjlV991yLUsHb
i/oQ4V9mEki1k2iOmb78S/n5VH4+16LpI8RO3XcS/C0TQmJmPER9hATZ7CQ2XidM4U4iPYonXRCn
v74TNngnD8i+pg4nA7peLsoxdLvHHmJh6i0ueiDHGy/MTtldGETMS83bk6E9evhl9q4ATyLYxTx5
2r3rpZGiyMgXY9EDFDdjstk3jKUx2wuFcHyMh74RCPvuzd5jr7AP5mMUbAdkoFxj8NBSx+yQsA9v
SXDKEz3ewR0JJBynAhaqsSYpsqfISj5w4126Arsx4fpH7UT83mj0Jey4Ule5oRawnrlu2kwmPwTk
msCK32Pv7tE7eyzqPZpUYKUO7UgvDFjsHIY6Gya4C9PpLpry62wciDh09bABeuz0wSTgYOEjGWTt
yH/0fI2HceSoAu107UhX9GZ/hHQZ4Fo6qx57O5ZEY3FGLIlG1YyYHaMVwxhQVgdWMCsPT3ZWjEAO
VktvlVpjgJQHGqvT3J+l4oIFuFUbrf+I845EPW2EGikp+I+5AEpl5CVaqzpN+U84T+hcrWzPIuXg
syyoCf8hJ1rumU7KWZtPOEyWgNLpYY9G+zojgkqdefs6qTrtexhn99VYq/hlJr7ZmXhq63oTR29w
ncMiLojZU4y9UEaVX5mtOCGIWyZgVnZANvyzAG1pSmKrczPlRVnJoyyQUVbcKMtalAUwyvLocglH
LAury3+lIpRJKhhu/kqOfpCfr+XnMwqhpupjyVZKqbxMQs5GEUhc8Vwyf5Sfn+RHyiNxUKNE+42s
oVGi0jpIcA7iXmS6j0zT0QzdrJcOOt7ANS1JCPosjknDMeZybQR7Lh6+ERfmwW4ukGH1HYQ42KmR
K2TQDonpmlZk6FYRPXOwEMMEU16fsNMcDGUXD0CIQMsicFI02MzUf9Aag5xiOy3ByEBh7fOs7b4c
lUVveplp3pYwDR7Vzxh4Hj0jmv6D1B3RV6IJx0jS5uEjJe07CT+q40tGQ99JaFIZBD1Ifw/Av27X
yPRoS4Rn6jMqukZU9f9lDrAxqd7+P0s/lRYof6eFzD5vXD3B3xo1k/ykvDjA+yPqHjWkn2g8dWmk
5HUvVN0FyoLLfuGl9i4IeUqDgLbjIL67uJLXSqTWqCj7Kwph+LABntZJDEszCM1OWS+x1kWND6aH
k+OBODxIi+nPOvHqbJepovCcRkN6iyZjIW9EJE9bos2RILAk6pzqP6U9dWpVyvtPDH9pXXHs6yQe
rovPqA2D4ExXBIQJIAW9dVYpjMzyIfuZUkNlHvscK7HMLEMfY7MNNQgUI3FDNJcO4LJrlF+hpgp2
vVBn4ALqRxQTgwTxdfGQWii5bIJn19US/dDhKOHizxcuMEU80x/DzMHydXoRZc6jQPZjgnkjAIOZ
ug1PH9BfMRJFK4I+Yegx6NHaHjU8KxkaQ49Aq4hI7xE9yCS8gEQVTKJCDjOvDhX+vS1hQowy74oK
znUB4xP8uAMO71CrnThVOtjGw8CFJ6zUzl5Mn/0n3Ij1UVcAidDsopqrXmj/jJgBFEzKMKNECEwR
s0A0uFv6dAaWGYDXbOwG4DWtn+6EL4Up1E0F63phtGZQfgfJsQOrdjAiOywKHXaIrvFcYdykZvr8
bAx5Dr3IyMQQjtd16iA02Rsj5DBnfCi2I4msrNpoFdyrSjUUXp5PvEQc3x+NjCUTaGPtyszsrFS5
2uLV7trLAtKLcbYRg2ovRtBGJqtezH/9/6blMEOa67+Wi0U868Xy3YjNt5flphGDeyOzXP/f6YMq
M4E1n1E0/QqxczYiUKkNrPlQaVnKaG9EUOvFwN9Ih230o8RQ28jc1EifVi5jL4bR5kse1/Nyaf1e
T+hzoQbowtSwsPViA22+JltarRF5uNcvkEW8F3u02hYFwem6P/TJSkUT6cHJut8JlNMJwuSMM2BM
R2WrCfLVCSrm0BO67jf5kblXgKlOALCuey2PVGv/K+6EFKB9VaCprjslWz7bq/X+tZydMIfrphw5
GWL79lrxn/EMmdS8dBi0pk6QLYfy1Ak2t558dMcgGfbO+KlRX/6Gy7RoImio1bJjjutEQhKIrBN4
shO80aE2dQBzzn/OCdj+tkdNhH8RmVVr7Ks04RlX6Kt3tyZo+GOPgHllXtKNAqPfH+/s/gKj11sc
U3XDscXrzcWEv0RBPXy5Ojn9YPXb4Yud01er/Z3Vm92Xr16stiEId73ZINybjxNd//sWwZff1TDX
4WPORMeZ6DgTHWei40x0nImOM9FxJjrORMeZ6DgTHWei40x0nImOM9FxJjrORMcHJzo+xA6VMzVx
pibO1MSZmjhTE2dq4kxNnKmJMzVxpibO1MSZmjhTE2dq4kxNnKmJW09NvO9NDa/PlXv0oW6vH7Dk
XaSl+9k+7uZF2MBWhPnj2TUxv8muiauXu0dnh/vr6n65tzo4WK3feXx0tjo6O3/d4dOT3ZerndWL
1csha12w0+f/fvX2/w4P/lPtNwe7VXmwk+2Xq52iWD3d2dtb7O3sNXttU7S7u3vL9qq19uXbs+fH
R9/snxy+Otui7RbvoprqdrfMDlbNTpFl2fpPvdpps4O9dcuu9rNmVZdPm9VGqilhum60nd/NtLzW
q/dPjk9Pnxyfb5P65NXuyTpv99l9zj53MgavQRjdbNfagpZ5MIr3NjgN5LdxGvgrUvLkePnvDa9O
Ny3SVVehd8UvixhysGJ8wbEAAR14QMSIE7DvKIogNvjQYUuJeiy4hJqWhSXbC7UzoLP2ERQy8lAz
CJlFhyfoHWYiE2AVGmpoJ1gYzzDrmZolO75hRMvUVvO5nLfrAajixFbSVBamIfivFB1RHvSCUMcL
bGT+G/mR8Fye4O0eK4yZixSw8xJ6y3/NeSmLl+hF/n9q5ykxvwR28ffYgtS667/l2CxBWJOUvb3A
suwl7Iz/UqGdqYGqqSoMVC77lQuA6TR6SHbMcUbCwGKrQrPtqKXmFcf68JfcqvDyEecdCWw5iuhl
ohJmJ2SrUeWNAFMSHEggcZe/Ba0SHS3/TX5OJVusRvnv8nPGtRrEbFd+9uRnX36wSMWSq6UBcgkn
JuB7FPA2QrJYV5xeVvysx6rvFb/IsZp7nnC1IyFlKaQQGgqNoGnPuEiqsjiUYykpcRg0cxd7T06i
INGQaElUJGoSE+tZUxtRwBFZyEmw3wENNFiwIdGSkD4vsZUHjLckUWA0IkREtByvCaEnDTlEj5AW
cJWMrWqlNiNB16LE3I1gaRHbcMRWPcB4BpTJ6O1w8ADiEWW92Zt+vFlMXa+ngaab3QvXNRdoH+uV
z9A7r3iMoFIyuJ0Ofa/uC4obcvNyxDZAB2VuGI5lEpIpx/kvyZbhonOP/4psqTavxHrqPKr9pSOM
JG/O29FVQsF1QqR2zuKiE87bjddojIyo1wyJJaeW5BQkSooTuKYksZgWp1pOiiNweCYR4TIJN5yd
d69OfA868dbwMqvwDIse47PfFKRXKEU8MbwYR7xMMV4wdZ+9nj6jKZPmbcaH/irPEp8dcV3wmcS8
EWuIl1nPy1TGE0YeXHZGsdSI8EoeJbwrvbn6XH6+lB/50EoiMFefyI9QvsQS46tzONJjgvOVhPTW
j60kSrAYbH31k/xI4SvhbqkpR+ujktDY1Wfy87H82MOlJqv/yc85qtiXEg6ulGsFXOxLeYeYdL0A
j158m/ryUy2yhpDGIOAFR+tL+U7B+7Qe2/oin3adYeRP7IJezJF9+V+yxaAiDLq+lG8SlM4HsRIG
6WbhrRpjpth/07b1GEFGzYHhF44nNqZ2sbDShD+4ALZihzFtSiFb32JWp0B46fCSY6mQ8IJnyQeG
Nzwp8my4kcouDb9y3PIovVViXwcZG0EGQTjiaqifxoP1UCy9vcFqQpotvOZYbITl57xRv0pCO4Yz
pfop77gzUyKxDjNoPBmxfTqiIGWEaMzgWGVEXMosGCRBkDPCOGawzzud9obEheaqzRCdESOq07kt
VGKqrYR2UoloUwmnsXqh5k6VmiqRHCqRbyoReyox11W/cq1Y5Cqx/VbHZEupKzH3y1LXG+emEh5N
dTIp9nJiPxc7rIaIlhmOq5bGQtJg0+I82IsXWRDXwSC+dkGcEIP4G/bihNWLV1wQd7ug0TY1oLdM
fX3U20XO1GDX4hoXxO2vl7myjyqI6316g5ZF5iBxbAsalVKnCXEl46OKSbjdgFyuAqkn1Jjf0+OK
YLvBRHKEdOUleayQC2zCizFWr4bn8rtcqlytJ5zXaEy/Izeq2CtQvawpQ7Ze9hvHROCKGgnyBcci
Gcoa4PI/5EikSKgZYuTOdXRRLSaQuEJkI2TRXyZXjeTACOMhQnRwxOeKMB4Goc6R8EhzFSLbcvrg
DBLkILpVEHyUJfRWj51Z77GLdJaop08zDm1H5O2hrgnFi3VKKfqddLaeWL/DFTJ5iVwwDGilP+xN
X1I0E1mjZkm2mQh1ysKQapywTgnzw10NCZljxRTWl18yJxcUzOaualoCs1H27oItuM1skRva2VEA
WXg6Yn6Ndl+NyWnHGv5KSDHNgfzsq/ir8myn7P4hoYKrubnCuImYi90kxxrGqsGRo/INZP5MV9Gh
XkXwi98gR/hbBKdx2m+c0l4iRrqIWBwJ/h1/57gmwYcohy2eSel/04/QRSv7GGEYl9jOhFhyaq0u
Wd9EORyeELhQReM38vMHT+RBNZVb6xNfcSMdS5vU2a164iXH0oTuDcf2am2cY07QNDrZ+Y94tTae
1pNo0PGI22haqhN6g9M3dM5q9i3H2gS/cowSoZpMPOFRqku8pTpE1hHiZAfY1E1hmnp0J7GMUTL/
H9+ox9/Lj0iRQtP04grixaWjUwdvi+Qn1FAvMEMXoYvpfAUe5YVP2kV9j+oAP04kxoVRiToYQ8/l
5yOeCSlNh7H4UftMK+Gp/IigLlCGF8zCCxnVC3ThQT+8gCJeoIxOfLV9RhzFiIerxsZTW76Adh4o
o4taPbLEw3ISDUO4sV5cVTrc3rtox1PNclGaa5fQZT1gSq8FxX3D46zRZ6qyfCk/H3IWN1Qlo1kD
mwOCtnxJM1YfSjZUPnNJVe691mc5BoVVxFHZleooJFXZS2v7cnS5jbAGld0vPaDPVEuys15nO7hh
WquqWtlH4NYaLUdaofJ8r+CjWeTYCoJzmfGelDWvfaQc3VbVkUz6n8enxFf6zE+4X4Rz6a299jFz
KlFfoLEpn3KbNoT20K/JbvV61fAqYcdlVkPa8N/zGr1eXIXUqUgmhF76nW+t5FRCgJhLI4q4Weq7
foLvBVcz4tAa8WkMRtozupi8Q0TkHopyD/GwJ+JmD87kO9UqJz5kTTZqg+14Z+RtEUJg5OlKEexU
8eUVAZ/LiFOu9miR670I5j2ccK9CPDKLB/H3YPAeGHy4hpwIIW68C9KcIvOl3Wz8UEoWuGesQmiz
kaDHmiin6nuWX3SgajLbvcO3JvJIbxZdoYfN7lURgebZwye1J1k8aVEoejjFvrOyWRNIdZQy6ahv
q/lJ67wBvKCYhsIX3/JslQIZ7qW+60MKZ7WpxZehV1q/xDefXiDzrahUXnQpPq0pxkrSnliyOoVd
lT910AU8KjVqdHgiPzJbhU+AEhSmeM5xpo/RAgY8Wh3QgDoiBxntQWaWIMM07HOR9JAg0FjY4yEy
94fvObangy6oB3k45EEKZEiXD1L5QebSsOKm6fDLi+UI26hwGr6Vn8+4ARld/fCDCu+y8AbFiKRX
hK94lqNqrLB40+pWCeFzLlWARqtKOnJ4Rk8IaCh6m2jYCtoFWTjDU54t/SZ8wbMh15vroDpe6yAP
Fzxam9w8gy2jHZEn1ZwzfMg7lXPDRCnqQEg6xWBQsLQrCxsuqNUn068aPk/sYGpryi54LDfF0jzo
BDId7gQI4smveZM8qfqGY2qQQh5Pn5yNTx6v7OzZnNLw2aqvo60MJ0CfOiCmmmqqNUcCqws5r+8u
xH5vinyElySSsyIFgmYPLzAwqyahUdP/4LjlzVZ+vfQVJlHFwd7K+TdcRpE7e4JVheJkVmiQtA6U
bGxpJUfTMPKwgGoXBEXvO3umtfUI743vvVA51h17YXr2bFk1XGm8dnvftCsXNv8FBVVEVgoCm/fs
FxUEvw6CZvdsfRUEsQ4CgPfQMEOFr2qYirJTb5WvMXwuGHE5CX3ht/Lj1LulxJk34CChLhuC3gcg
9XVC/a0FVA8Cufdu9OcN+OiqJIETQ6g+pY6yabFHB3axDYTqCffht6vezdUux1qE76h9ylYCjWkL
iQmiZ0OvUNlnmh+CdT99Rjctm2kHQWwRoeJNBTWr5nuxeQSE7iCmhyCGkaFk2vAfcluYvqfOR2/Y
mF84gyLZi6rUo9CEbqQdqDBj/AiVv+JHW8NanfkfM/9j5n/M/I+Z/zHzP2b+x8z/mPkfM/9j5n/M
/I+Z/zHzP2b+x8z/2Fr+xzbt+DaTSmZSyUwqmUklM6lkJpXMpJKZVDKTSmZSyUwqmUklM6lkJpXM
pJKZVHJPpJL73s/thrFrb7Uhzc0jvN7fvlVbe8s9Bu68tCHNdbZk2mBM3Dss1x2Gq71hqTYZOvZ6
RdrAdnrF49n5r7jezn/3MgltyYZsxVU34Pqn7lB25Qp6B1PTm0gnmoZHNvIqXZUKYr6aGIlyM+/2
pdAxZGtbL1sAe9mf18vWtL57gVGqIlGSgCGgIc/CKLH3CMrOEg2nEO+dWrVFmK/OkCflDiF+BGFk
RBHsB6OWxtX4VX40rsaR/BxjjxSLoho0K5XCBgujbUrOPtmdbbZdkyPWHDXIqHmlfyo/Eoy238UA
prsuq8FMiIO9YN6N3qKZsrWvJ0pvHzCdyQv8AY/U3YVVXXVe91qWPdLFPu2wV3couw5rdIcS6rzu
dmwBgdnL202Mc1hoHFagHt6Xw8aiW3U7rLKRPbsjsAmqlEeX8+hunUQp7jSYbsQmorHtUOA6Dfob
vyNb+lr1jOOchELqggQLecIL88HL3tBe1DcvZAkv5AgvO1L3qmOKYu9F0fCVwuyi1KsKKR3MV4YV
62gQ0o9AC30p8I1o3b6b0LbawqI79eV3F/IvRnFcZ1gUx+71hXwzJck+2l624vai3HvZfrovFXMV
Pbv8BsOx0XsAXzpQog6cxkI0qOUjEJkxjFiEA37pwZbUSBEMJNIeOFxsNnAzTtvtABUasqr6jStU
03qtCpSCHRUISoW+XgkEUQlkUQlkIQyB4SI0XAUCNEIfxK4AlauP33OsBJddPVZ91wLryYAMOvwW
0IwXqNY6vATnGBgYMpQESxkmqqAJtUAWL2VOkqlKj4gaMsxRSnL9A75EQ6Im0TJVYZBVXoREw+6V
tShEo46Iv8OMZrOezDU6QfSywXn/s/xI7IReNmdvJCRTPwl63pZm3HT+JZOUkkzlZi9znZcn+qdc
pNzS6cMqI691UKu67iI3pDIkroPy5byU2Wv4jnFKswnM2ZSGYdwZzYC5zdvFcBLGmcyugZ7qmf/G
GZH69zYRYsb3XOMx/bt2+kmGAXdOJ9bh2opra07lF26qLk4ZVTGGGyH2bDYa1fspV6Qq8/FaHd/A
eB4qnAdS9KCPHujPg356UMEuqj0admSWNFvVTN5olyxIWDEzHmMtJkQdCVnfxQuhHdsxmriXwe8r
JbxOiUpVY1VTKYFV53qZNYWM14MCepl3vJDkvDLrMl1BBE8WkLRXpm6l68JbyihTnbKMZXbyOrsB
y2rZJlHBwU/tzGgbIpRrOZJbNWop2KkH8e7LnziuSCiTknKVylzd47wavX6gGJ6EvV5aWxDfvnzC
ecf5goTM7eWPvDGQwAI0xfvb2jpiX2JmCQiQSrJk1htysAT0LE79hbqsLloP2jFux3ApxiLtusGM
TXT4YJYgs+TQ4YMOKR48NUv0xNUJdi0s12DLKjacYEvmhZI37WgGCvbd0zFbt9mEXGpGGUtcqFZj
GK+v9Qb/GrF1EvC8bRYm+HdEQMyIc0pwpeEUJFhvCQwD7sLzlpNy+uWFMyOiapArwH6FmmABCoXd
3Xs7P62NSfxyZ7CrduQhUZLISLQkchJEUVUnMK/cV+HeaoRbjZ0rq1Yvk1DQuLRRCaX07Wjig0gJ
ojL18cdpuSsz98hyOcgOsvDIXDIcVyQ0HJeQhGV5C7KqBn/ERWIukDUwyGIbF6LrLNQ7SfyNFlqz
sZCYgouIMCJuLwvlleqwjwvhbS6Etbn4UJ4lEf5EZuajRhkgx6dGPa9EsnGwE9afpiJTMbJBNdxf
pRaLIUHQQI8nT29hojRyyhELhi1RMFFqG9WRZvGUrdDn1rBLe4uvpDKMsNGyUT/ysPK8rYG2YEJ2
UbuXMRSxKAwxpZl1sCZPBhLmKI8Jz6MpO+u2CLzqcKjxjlkfe1l2tR3Wq6x1LvF4k88JXuxwXvTj
xcfy8xHNrTTh35E+Cc9nMpIGxjYqZrgoi7SmvnSEU/aw5nv0tL6UUVMecKG9Rvqh+gk1Iqk2h7zb
6t/WOac3esK8qZcWMSs7XNe6RsLzNC9uvj+Y66UL9ybdKrFTwAepWud/pZQm9I0LUb5Y2HTVuYl8
2V64pJ1c0pFQKpyR36T24j6VLF8eJQRT3CUbGho6s4k2f3CiIFFOC1GayalU+vGKWg/T66qJm0zH
yOts4WIIOuL8QS4gBHGGY2mF0VudYTXKtz9lyFYkSsauNb9K/6fTgrW2mgFADO/CvDzptsO1Y3gw
AYl6bcwzmrohAVt74u+WL5bLCbPc4eY2qgYAKqZ9eMASb6eYvqRknYYgjIfT15iVtJ8I9E5BEuHB
xhdkI7trZDeJftdJZMIurjjLZObgqmtcufiSY1UjRV+T6I69qQTo1J4ltjexHr3bo7d71lrP6uvR
5HvAnt5QHAZYX4pLVPkz2UpZes6xTisvOJYeXb7kWEVmKXl5SHZJIqP/Aot4m93oyGpDr7Gh1/C4
auysNVSpoHPOkLCpHrnSWff33FVwMYiJA4vB52rkGVlsV+NJTaJ054vM+uFwE9iqN6EO3obHDcrZ
goNICJOJjhEIYp3pcjBcw3AKtoKB7ZiQpsyKCuepCtZIZX5QEEoqWlRfoGUR2nevka4rmhWjPmwb
iQk3lKrgQuk23k9rpjRhVCDrIKh2ULKIIIBBYLMgkFofDfYRVyuZVXuZY4OG0+1M/lKnnjOO5Xu9
QFJeICz/G2enU35memlcfHYh37ySECni4nNWaxGkFl9wLDLeQgJEL76Un0+YNQUnMgBK2flIgBLz
r3iFSGaRnnGu1qdXhLEs9f1a0tx01FibzzYCbTn67kwCia9vmi6GBoloLyhFvy6PmeTN71qeLlRF
1wt1v7FFmQXTg/14vAC8zT0VU5vS2Y+ZeWyamq6FeTlZ43pVkX/lWEZ/+YoxKyNUw64TqzQQhDoQ
4jgQf5iXmIYa/JtpvrFC4kKijhcivElbDQ2CjUKBIulpnTho9OUJBaumT22Xo26moUu9uszJjgYL
iUJenPBwvKPMUWeUh23Ba0jgzu1BiVSCFEcLLURhCmInfhadeKf0hgeZLgjy5lmB+8ym9VM+0OZh
OJ/RVntLiBouvjh9VPVMoH0RpYJ/ywhVrUciphenVIR6Qcmwl7Zy/ndqR8M6/sax2m/wGwk4qHur
RuTEQH0Gqz2rWPzbPc5RgdESACID3TygsATkD5M2Av723mRz9aFgzUJT96j3HgjAZ2NrehtAaEBu
OhkUJnt1GvYy4jLvkTJ0ia2mnvr5ohxJ6AiGnbhFdfGMLtGRaEn0JEwmsYGMKNIjnChnMZvkIBor
/AWU6VnFesNRbdXJppHH1+XOmskUARim+iGTkmfweJAXD9Di0fQ8XcYDtPTlGR2cld2MLJ412k+n
1XKcr8JovfEmcMgYaCAxR2R0c+n22GUUXWpM2NBje5RJKnJFg3Sjc3gD6qWc/MZKBWIUEECU5tcA
+mQTwAnrULBhjLgRkGjGB6JLB/sIm+dUgPic+RdJQrEz2e2i1+2MCE/caxRrYhz3uvWNsXiN5wts
G8TiF5QWKxbHoEbBqACSCKNRwaU3PKAnoUiSGFqW1IrHMW2hdb/OqfEqVhvTcrqsVPnErxl8CzDM
44u4wNDm+Rb/B1fgAo248T/EkYJESSIjITjO4lvdz6aeasBVNXFC7dRRWXfcEetWIStQITBEIZhV
8ZtKJDq94R4RQVIHDAfRRESvwaLfkJCJU0zCHdvWdHBCfWeceiZS3JW75pi5fKr4VjbHDfMqJh81
wokXpUcm7UtZYSQatFtaXRdUkO7c84Y3TyusNkqv87Y/yx96TBhhDIq0k6NfdMw1nRvXimiLBlaw
wCoU2W7F1oqAOSzawoIVLKDPBqsJlppoy5Hqs+uibv3uZjPKM6M8M8ozozwzyjOjPDPKM6M8M8oz
ozwzyjOjPDPKM6M8M8ozozwzynMFlGebdmCbnaBmJ6jZCWp2gpqdoGYnqNkJanaCmp2gZieo2Qlq
doKanaBmJ6jZCWp2gvqHOkE9yI5wd7Y1Tvl4doAq5x2g3lM18w5Qt66gd4WfILhEF0eAKJjtz2xw
LdfA8lEGVPyDK5jlAzE4AkpVMAtix1O4xpvdUcMjvOWekkvRoEYAmRnTO3ICiQuA+YgembKGtd1D
P/EwU3w1Mfc1JJjIx7uwMfaI8IrJlopfYS81Ck2HKRWajYeBMyTM/oeN0FmJ9bm/c4L5XDeXLs24
YIZCxHIj1yk5qflcF0ylLzVfcd6CF4JLG1PPlIhgTzWrnUiCjew63YgRvfmIs7IoN7IbbUNMmmBv
QFXQjV8b2Xy1+S/nQd3MhKdf0Y2itJGlApCYboPfqSQ+5GATjIjkHmk9wHvybJ48PodrohkQp+ae
MZpe33x8IX+iQQTUA5P4dbtcr9vpEolMIjb2EnKxpzcEAukEIuz0EoRR39Waohsqw/+N0iDxsyTs
45CN+K5iVKXdckhItWow2UqhGV6SLycvUSbV9xcuGLec/RkDaEMiI1GRAELszFrakuhI1CSkgwmH
sY+HZOckREGPv3AswugyTstn9sXBwtaREN1hqSZSbKdqgliaYbQh0ZIgaJeGDl18J3d8SHZNAkNp
p1qB2F4W32MUrVS5KHsSnoRqDj/Iz49qFVRTb65fEY3ihXwZjQSWjbZEpYkVakvlikIYKJCHkOwL
sz2CuQrjx4kR1gntJRLlROp4uciyMaxXIARsyC5cApA16CkWw6vEltQhgLrpTbkpSP2JYpcK9GH5
7lC+O6R/5y1EEVF/CT7cuZFME8ziC0vJCDcR3DGCJUZbfKBddxBXAopUYI0MwICBADudJWzh8yRs
ubQH2hLLsqbxkqIZeDARMXY9w9obSyGbrFBoeD10mB46jNJObCLKRrbJJCbvuiGaCabmWfGUI9SN
/FidfZuvOQYyUqJqM5m/lssRQWm+5bpiesG4hX6OndN2TjdriCl/SrXr0AtzGdU2HUf2v4+YVqLN
9vqWkW0SbeZl8vM2cYZpGfN8Mj+idWKYYSa3Hf2FRe2WH+nkMGU7LZcFU6lbfszsIayGxRPmhsD8
UTPAS6YFhrAaSUrGfjUSIHpLVNgzrPvDlAx0HFkz+uY7xqZ02kaGYqNMy1cMugtNVxejuUEZ5HAq
ugvbma+vNfnMEZnQWchCQhp27Avfsem83T0Joxfhw0XGjgHvEaHWxnJE3u1NUo3kLBholoPUqVGG
42griHY7AmlgUEcE6MjwdJDLHEKmQ+x0eF70gL8GKHsERgVTOjhZeD30YuryNhzKEYRWJwcJjO0j
YlwkKuyYoyytnzjGyhmR+CLCoFIpG4G+CSHWN98ra0uhvQbovPmRG2WI5NK/cxkHuWfkyqjLZTXN
TTxT6QdzYqUzTi8MgJ7AgT0MgF6CX/d+NFkqUS8qSxtCOtSAkOsAFUtwVIa3WC3iMcO1JCFr8fIT
jgsSyAc9nKpeedpAY9jdHZZ+lxnvCamA4T2MagPhWJgVKSxY4wuW/wp+U0VgNEApJ7GTuuaUwVoy
JAmAqTY/JBwP6tm5kd8T4Z1GxkcP8zOC8kXLsSHIyhYtwVIZMZ0R4gw3A5Njs8kaBdMXIqRZbkYz
T436pBqrxqBq6BcNcX+0bzPxf0JPM5FdFpxcSNC56DbCG+n9aN82bwaPfO0tp+AaSyAN90jD6qoi
POehr0irL//LMfKnxrrEMOmwMTqhw7kplif1tUAKIeAgimROhJ0c7nQ52qGUFVqa5YqAzxbTx+uq
+hnH0j+Vj1fQs1g4O5Rch2zcEVWkI+aHF9jdC2LuWYU9nGGUdpkmvMwOXgasl0nC54hhxO9DVZcp
xud0MDXrZONM7JGYHEiAhxPsoJs74A7PRO5hEntOOdBsV958J+4+G2U6c1DwVgzLgZps48UDbDjG
i7cPtG83aZHCO9Z6b6sFSATxuoBtOmK2lAi/yDnDKQZgZ2AHi1hn19ho5V1qJCvxFCzNpIq8VOIG
VpqJdLTPaoDFRphHEs/Za4RXDQEpwaF9VD6y8JckPqaX2JR9I+ZciSbtJUa0l/CPXgJHe42lwmd6
DfjbiD1XYl6vv6VkGdOozfkPHItSmAv8kn9Jtq48EhonF1Ag/56zMpHkosHnX5FNDCN1fMqJGaWU
5/xHSqNTm0S9yb/gMqlzsdr1tNNwPTIrq+0ex7q2ih1CODxDtq3FQC5K3mZEBeumjU6YvdjieqED
9Wod9Mp9/o2bkKK126sdj34czKYKkSqwevXiFBAw6/YRIrUDMuh5Rg/IIPOAW2pQ8bdk22Qt3yBu
BwH2VR9HcnYPgqGCW/yDZyBjOMQDBxLhgBx6ElpEr3e55Rccg6YoQd2PCWUlLT/nBKBDD4LhwCPG
IpiEAhiitsHlpxwj5Tgep5r18kv5+YxsWOi9fZbW++uJhF5XFvR7sS8/u/LzTNcyEcHiYiU/B2Sr
ffVnjlWSknDki+eshOrodig/e2RHEoaJaCGeys8LshuVsOR9Q2LBKZAWFb6Q1IZrlshlxk3DLqzC
odC3hyWxI9GSqElUJNT/TiIWg84AzBJMNhJGcRDxiJEezSBsPnlmNO7RBHMSZiImx1tOATfOYq07
4Bmz+xqBXkOr/yA/glG1ot1CPOxYIBxImhfLul+ojAJ1VpUzsZV7sbB6sbf6XH9kfha5oyMMuBcB
zYuA5mWG9SrOQZj2TFZ9Ni54ATOrs9XRVj5bhCwHhx2itI4LXm/Qua1q8lLh3/YS/dwLKbeXkOhe
uLu9sJp7bgn5LnMxk3JFrEFzX9HgZvkTJkWwYv0g5TlUFitOi9plkDOdTaM2e9pc2DC32SQHTMtU
I/jl8hv5keZffis/ioV+LT94hvQ2sUUGkeGWnu4vHVVQSmdwZN3R6yvtkgXMBu3jLWYrhJquOaPL
4ZvvgDhUNxGX2M5hPhCn2A62fOfwoYRz2zn0G3GM7RyAIhzvDhK6zyHcqYIv67OXZbmD7+1lWfci
InhZpDtjlcMY9yIbDE9X2fdbzgNE4s5vfv8ItiIxeJE2fP49Z011Qz8z2dZAioDMZSaxYPIm3A2P
ScwEao9+ZsKpCbABwTPYAwE7TKAOiKvBXkHBAoJ5AMEk7vMo0gb0xVFYtmvspXbKnmPTAYpjZBhH
xFXbDyBieYsmgdpdoC5mDgw2dygCwnYEseBSzIERyRZT3+ggGBCMe3s3ym+PhhbBhKI9ECE8ImD3
VmL4hD32RYek3ds3KHjzXMEdpaZGFXdV3F5xVjVtoS4KDcXjKu/jAZepHqmIkcTGjip7/8RFikDJ
Dg/CZfHqIicOIV7dcnMidAadKn+W2U8EvpwYoGrGywkfqsbAXITYXIjyuUi6uUh4OZOyqbyABCKg
5q94M+J+BHiOyOZmalS4Ot/nWGGFXzk22VnV6lOOwb4iK4Ai0rnQ2XIh2OVCmcuFxZaLhSx/yS0K
tr3lWFWEI/kRVCv/hbNI7TpMhP3Ui69y73EqwG1SGsAjtWs5lU9nM4ZsfxAqC8qJFim7s/S6HQIz
Qy9cq2CzgBDWAgM02NBXj8RSi/GSs/YRqueYywMzhHK7bJaDhdBj1OmjOW4CSHYjkM92NCA+hk5i
lenj6ADqQB892oS3nJKELcf20orn2CsKcuyU3Y4u5JePYdekmWcy80xmnsnMM5l5JjPPZOaZzDyT
mWcy80xmnsnMM5l5JjPPZOaZzDyTmWdyHZ7Jg7jnna5e7h6dHe6ffrB6ubc6OFgd7OwfH52tjs7O
PZUOn57svlztrF6sXg5Zp2e7p8///ert/x0e/Kfabw52q/JgJ9svVztFsXq6s7e32NvZa/bapmh3
d/eW7WZLULe7ZXawanaKLMvWf+rVTpsd7O3s7672s2ZVl0+b1VUxsS/fnj0/Pvpm/+Tw1dk14bRr
3fqn3oZnhy9XJ6cfHK3b9+zwt9XO6erscF0DJ7/tvvj35nweZ+LSTFyaiUszcWkmLs3EpZm4NBOX
ZuLSTFyaiUszcWkmLs3EpZm4NBOXbkhceoiNwK8LqFxhZ6aLz94sSPXOnYWu9+r9k+PT0yfHJ4fP
Do+evNo9WeftPltdtyo3iwpuwedOPvXt+pY3H6zvPR0655BXvjjce3J4dLQ6+ejbzz59sr79l8Oz
RfbvDW8/ds2SbG53sfvef+sGt2xg07bqffvL3fE2Ye+bo97Zsg+5AdytCr6hHfeq6+2492fjbTh9
w2GxudH0l6UV8H4LRuI9jvfr1/07J1ht8HevRtebk6/W9W80AO+vJFebye6yPHe9dNrguLcveB9T
PlhcKyPbwJ0PZv3ALr7WLTyouO6Av3zCsfBBlj/KzyHZykHd1ZBSpT1IOSeCZi+fkR24EOBfd/5f
rvQ4gKqPZVKLAJyU5U/y85zzAh4v9znOeAcAvgacXO5xAsBeQ98tn3KMvcArWC6xIRZngHkCYS9+
55h4VcoNXejmzsIvWPzKWTg0ymhbvORYebVCVF28Jltw5sWJ/GhIHc0eIHb4NmNOQaLkYji1PXTb
nmDHPbh+Dy1vhPwBKfucBEh/D9tHX1EYq8PYt8bXnUCbkQTXKM+vJCZQSWCNUnXSIVGT6DAFZOTw
UgE3Yg3I74kL6i08RyDHKLytwqYKpLYg+2o8aOV1EqiggyXROSMBHYMaGt4GVhUx9EYbb9rrfqZn
L2nenpq0hmipHPtMtUI4oo9JS3cfg+oK3tlItAQJ8OpBzD32Ty9Aucc62xFgw4Oy+9ziU00QNDnV
w22JCkUJyiRRKnsJYeaj4mQSsEpD0Enk1L43qp0Q2fI/QCXAKdSdgghjfRwZ9gHQIKDjhyU1iTUv
AK4H6+Rshd7DUhM8L2oIs1JBqaEzdLRypFKNBSStKmFwO3bvF4teVlkYc79Qi8selWtVKaipmDR6
vH48gVU9G697Yt/25rekph3lPyv9SbhwXuNnazxuJfwJxbVvwI4ipg99sh9D+EQgFcWHIHnHhQTL
WxArZ+yiMPrGBNS+3qxzDG2Nz2bEI4kX3LHLvxfgsSMkjBf8zgs+2MWRmBEBpqPlgI9HUGzjNEUD
3GGKR6ttLGDRxmsE5jXgV6BqNTFE7dXaYdldXkFhbY0eBnZtCUcC830k5oG+2qIg8gmBjwrVSOBW
MDWOHifBwK+eBEtn0DX6F45LjXzU6frxh5I5a3h4GjDMmnWJFbjHJtUzX/eECuisUZckjBFHgDNn
1hQ1bX6llav2FphsnU6XEgjYSxjcjqgTncavNe7PAnuP2kLypxxDcPbYc9QSUtPOStvBZOaxD3sh
ywaiQPV+AoAiDgUojwEuwLggRYooy01vJFWZTXSgS0RLL3B1RxQiL7h1R7wjX8PmUxOR0qAtfL0y
buiiYiC2nqt+EGLy62Up6HuMpwqfEmGi761nAglH0Fh1JlkKO34pQfuWyv6XIBLLX+lL1oVgGFjf
cQv6Dkb1jjXZzJRKy1pa9Nbf+Rj1+pNAPb1VswUBbMlpSLRUvXrdSBj0XkL7yoNdfyZHEju5EWZB
LwGEG8JZNmJ47SVUZvNGe7U3Xx0i+lkoQEfP9zj2eEjKHsee3px/iAzo4S9rt220NjswbufH6IGd
DS6vHGdZ0zsJTt/5j8jW82JUEtctL1wTL1yTTuLde6GcdBKp2gvTxOPC5cV3y/d6raxpOssKOcWL
A5kXB49OQ0lLjG8PZ7yTWLedhLj14hjWSexyj09IJwFzO52yFzaw8Tkyx1kCNtNzxNTVEdJ9SKhE
84JjXWxEIhGrkBerT0ds645I1r5Xyq3M+2I86og80sXRidgcdz02bx2d9eeMVhnkSuuuZbTW8vxa
DNG1VH0ttVFLFdVf8QCovEqiqGXc11+Qzdqn1uJaar7+mGyM0cbhUIJkL9bw/guyZRrulQo4UtKV
MtKLXNP/l2yCWKn02H/JsZj5eyFYywQ1ZEv5+k85xu5K7FqIAMIr88KY8rDKfDylYDIvauxb9Xdg
3K4Tyvw2/2qh0Q1XBBKOKzRHDHqNPvEtl2Fq1tEW7UadXf/gjUsSOq3KN0o36qUihkm3IlGSkMaT
Og/Ew+n7/3LckWhJSCvKgAyytAUtqLl76hLixxBOHba/DvlPy8BiOEz9YesjdlRXCEhxU0TvXRRk
c5s106lpdAHdJCI+ayx3nLACdvGADTtAXgpmrDeGLAb6HtetgME7mEnczNZQKdzyDJkEfwuVv5ci
vC9lMVvK+reURXEp0MIS342Ai7Cq08sTjlUwfMsxUEkAw3B4Bjl8hToShPMefX0depkzGCEgJBQI
mHgG9TjjKu+vRn9XnmArmkeLJjdKAh2rqE5HwlCWWWz95to+wsQKvDVsywadvPuJ0+da1TN/SegN
HfzeTkK2+168QXsR+HqhvelEi7deB623M6e4BZKhTuU5YRCVbNfjnMY08SVPzPkoBDGt40KBmQ6+
X9eNi5cy9+qvmeVUrYG8rRHhjLloapIK9Fjje6naDsKdw2XMCwG188q7OplUY77E67EjKHgXR+9k
8yFWOpLQQ3wt8kwt9Vt/R/3A3DESlNKi6m841vVXW0QoN70KN3BtlEZvvtG2Z4cRGZpJjrbBN1JJ
MoPL4hxqnZ1lGpfVPsjaHyDHBKguwbhSuGT2cfTTi+AbEQxUUa8FbnSL0Xnege85ED8NAo1X09Ah
4Ncq0FdbdPsIBoLGpTRJFsKhf3lOqW6iFaliqKtkQug+kZ//ys9n3CSF6WQIdp+KgA0Bt4eS21/Y
/SQvluZU3Ou00jWTBHdr3+9Vbn9LtucjAjkqX/5MZzUJHGouoXCJpQrHxUFO7wzJw0/S+dGx31wS
VRmHyd6BsTjzh4O57ozkjitmB9rVmYsaBPUOBKBDTesAwjrYM86PwcsVEYbG3rFodSizXTcZuoCC
wWoDBMymkMADCSw87lygrtJeNQUioGvgdPE/9AKCe4HQO2/aigSHk11EOm+6g0BBXtUN5D8B3DvZ
J8Sz4nSyC0gnW3x0XkGFY72IthdZUjD54d7JXgF5OU5N4o/hWcU6HHi9gGLDnYpKKOb6lutVfXrJ
ZTknpl27zDNDDQW+E1y/86pMCXPWKySiWpMAIOIj4sUa4ZEpOzyJvQA9TpcOBMcOB3Uv3D0PJuCB
qTysf4/46UG8PHKoF/agB+Py2Bi6aLAeQYXzcVumYC/QV55xBWqUudyqp62Q/zr2r+ji6POuMF4+
bi4RcWyHmXzC5EQhdYIXyLnDM9+D2XkAoA5PYS98SI8rg8e5wWP7GC5FLY0A7Up5xW3CI+h7gJeO
rTmGhNb279SSvYCyKHFWSIvadSrbtWYt32inrIH6axkq9Vtd/SKQkr6rxjEL59oet1NfC3Rfy4Cp
5fNrIaXWh+p2q/hZLYpafcIjANq0AWrpm/XPvNSQLdVhZTaof+Q2VFlt21pGX71PturSpxyrri2Y
RS0bCNQykOpfuAivhoiQoCh7Lct+LdaQ+pX8iK6ozrY1g6mWwVa/5BGqa8swqFU4OZu0T50txz27
FOCXUO7rDlnBWEY2Zez1dJR+dO5TWFBCvntWSS9B330PVqYrsmCPPV7UlMYimnsBv4ZRYa9E/9ad
slhlvUBiw7HaHV6p7OPsQkRClVh7afH+D7KhzSvW2TMkdXKQcPa+lxbspdP1AlP1u9y74CatiZ85
tmLYa8A4zA2cvSMMNkXnLzHTCUTo+6dkZ1QQFq+OHHXT7Fc8k5LpOO+lI/QveRQQipL8e9vsAuFb
4MWebYN67JJ9ObqLeijrqCOyyPTPeKaWao9SVpOWH2M8D2f0i55ML7B9jbx5aICX9c3/OOGmt+TT
WzpN9CUicsspZGVvOQAlqiBYEF+8Rnq2X/JxVDN0ayDgvuH2Be/i9s6KkXGXlZAHshMA24CxiYwH
2hseCNTjKLOnqOPFlCfYKfsc3u5NR+ppRsrT8+TelAou7imhus7EEXrygFd9Nm2K1rYGJHbycPfi
/r20Z4hkhkhmiGSGSGaIZIZIZohkhkhmiGSGSGaIZIZIZohkhkhmiGSGSLYOInkI3/DZK2f2ypm9
cmavnNkrZ/bKmb1yZq+c2Stn9sqZvXJmr5zZK2f2ypm9cmavnD/1yrnvWAz3uNvWHW9jtXnnoveh
OD224V4g2HXfUHQkt70mwan6FcfIpqot5UCd/TOO6aOqhfXPuQMZQmkzOdiRAKzDCW5lb33be99C
xKBs5LaVsm21TySR/pATWrIX3GpPVYH7KccNCR19BzyRQaNKYg73J7cN/MetKh2ooTJvamLQ1Oyw
XhMIqUYSrzEMYHMdcnSA/sIxIqVu2F6Pg1K3kq+R3muGec229jURcWoE0ZpAOH4sVmfl45rOSpNz
ioL2vEsxXj/eZSUkzhNbcNaE4anhQdXE26lhR9Tsj+knhWde0u3u63H6UclT26omJECt5RO1uqga
1OrQE1CImAAUV2tae7B2dcw6QcwYPZs6BwyQQTu2djdB4QN2hqC9TmD8gH0miDUkiGUlwLQIOgRk
IPbsJN0bxA7sHXrd/p7tv4NCp/SswIvCT/Ij+4aHZ5yVsgcVyukUQWaAIB8RpEKCjI/wknuBWY2g
pB08UFdBPiv8ID8veIm+VJoqSBWE5zy252kLElLTQeouHJIt/SSseCw8FuL2qeAwJEoSjkRLAgab
ahgLlSvWCY1VG445kcG/snHGc3ue4joSBQm4cj3v7ok66hdcQ8L0HSuWI06ZM/aXFRSKkO3F7tGS
POELHAiVgug5n4ckOeSAEAZOgUzzLoS9CCIy3AWuG0BxA7BwAOkNdg3QWQDple9a63EOpNfBXdJP
nsK5AAaOoAuOoAtaz5XGN9WoCYboalwFw3PBQCPv0PCMlUKhX8nPF/LzuYZeUCRX5OtYKanqM4WA
FeyrR1BYHuowCw05DYkOZDCCFVpOIGEwohKvJH5te8Qu+TWJigT6qtoiFyO7w8FtMEur9rbqQ32d
4ScaNNW/4BlQEJT0qhEZeqIa9cxHJfzYhngjtcVXJpQl7KEe0+HwfY4317wSXTWgkKpZc4FeLLtD
D9+zJCETOCEmTIkzQMS0NxCcHLOrRAvogViRXgzq9tSih+KhUoXEDugXn5LdTlaZtsCE2uuO/Sz+
vcQAWB/rlJ5/y3HBhRoq7mtO5JyQImsMAtZbjzjhWR49i59nAe813gartkce8Ky2nsXas2B6RAXP
Yt1rEIJ60uoV/QC6AbqdKXGmpmEw7vmi3jREIO1+5B449q+3Hfaj3R7pamhREbtsxGAcUdnk9iGi
h51qud2eg3nYYZeN0Am0yzbYYhpKaCSmaIF3CZLYjMZpQu+ONmkHhqt3CXQUClm+CxNrVRKXDdkL
dKrc9rwHkBbJoe+BkqOJ7Cr9ijbbA0iyhz0ReXPoQ4IxDsfd2JPLRZ2NBAMoxMeMcIRCIqQTjqgm
XAPhiIYcmxeQIB1K5XiKSKIOidYhFDrkPIcsOD7ZXorIp5FPBIELWjf9GAdFbxUQLwjjoof4ErSu
uPsNZ9mtXUsANSNozWlLCjsmSL0HacAe7kUIkh1+RYbR7N85bknIR4VTjqXIQV4SpGzhDWcbJAqT
XZBvPEKCR1bxSCYe8Uil8vAbx8ROckRbCoRMCogaahmFvh7haUfo2BF21vAcwio5k0LsYnuFLe0s
3j1Qr15cfcyarcf/5ViDJn0kP5+AB+ua+zXHtjwTE0lvrHliK09oP5af/8qP8p2/ZK2StdYfMRuC
W40zAqZ4jyCkUTfBknoNDCehYtZDy8MZi0yARlQyhgpgNlECCplKChFGCxnPBYqkQwnzKGE632FA
7DHTDv1HtYe3KoNrzw5/8B00dsTgHwmE6xCtzJZD7X4rP99oGCkFlhsj1RLg2R9TkQ2JigR8ORhm
6158i71QGiQaiyANGDyAH0z1HfGTOyPlQHUKxlUyGhNLRm9P5oFGWhofSAdxvH0kJLGE9UbSMvgR
ZpIxgIxR5M1fQadmNC8EnHXCgd10LD26lomfRMAOO5zQNcPCDSI/9MQh7IA5HOtMxzriwEQ6TvV2
MYCKA9HpWeh60Jqe8vYgSc7AHr4AA+lPHHOFLhymVkMkCfkIPWjkYlX7xXun78foXD2FVEmt/55K
Vgz1Ox6kfjESBEw0+N5ggBxgAHZAgOsb8nH1VyBD4QBk815RA4T2gP4WmEIDYm8QnmwQWmoQCmsQ
Tm0QRm+Ps0HvDRASeaIGCQcektcKFTfAHw7Cmg1C5A3CBw5CrA3iGxJqhVtE0VcKsUXiFjUqCLFW
ZeNFiYdV78fO3jNtac+TOTuIR886uwaR0lqu1TFHvJnUOII1LAhDusfO1ePKEOBQh/o5V2gNvOFF
hnTrG7+XH0XfVPSR6J7KwMZJpPeG533KsUo2suqLR1MQxnQQZTLA7w5KlMb+13tD6F5QNq0kkTCE
l0ytti24lqilPcbioMg+NJlwAQ9bGoG0ZwoLPRZqlRV1rKrdJY54mQXP7KvpI7Ni4kKnj5RolL35
PCpkJs0rFqNgUZHMj1KDNjEpBjVr6MiDVRrUp81YUUCB4pnFV0nlq0fX6FxHvB+dtiFnBgvvpH55
1kfV+qImFTFihfCNrpxayQpuB+nGAZahVocSzpbAql7X1RDk2YFooRFkTWkdQb40fEy2Vph0JdxF
aXlvLajFkOoLH3JWAbT/cVtBwvzTVDyVmgzS7QMR0qMBbjUJGWaB4KOqZITvONbyKgBIpNNo5TWM
C/JkrHg0UdgdpazBH2WBdMRPHmA0c55DDO4QeuEiwV1cjMKzMh6JIumyESUk2qiRMy1QKRjMwggx
yJkgFsNd5tWHEN4ZGAhhz8BKi3VqqGVvDrg5CUPq7JoSydr8BZGsTXozMNAhznvDAJFUvQGG9hwE
fG+JnLssgVzoQfycceQMirRiUHhDF52hi5awa+yBRhoyZQK8UXnDhGJ1BGd1k5isDoFV0deCpiwA
bwuoksVIUHJGUEIp6WCmOXupJ8GT3YTEXeTLGg/HMTIsgnSJHoX2MJwyH07HqYqEJ2G3w2+NVnaI
rtG6ht0eSJjftV1s75JmF/LAUBpi1RrKqe8WXkAUXkAUIkIUIkKUBdDhoDHclJFYkChJ5CQq7urI
WYKIqiO4MmiledoPFdtx4KEKnHZfACIqX+o5TlcNCQEYFnBHzdmqBvyqYfYHUxAg9PfgRSbgeYxq
SoJU0VoF1R6jjMoU4XsapgO+xY87wNBx8I4cDp/O/DzNKbRHkWpJGIyqSK66aKvr5c+cpRoITIqx
ktHaLww9FtFmAYjc421nFF9nfn8ityzsCri/Dme+3u6BQezsPWC2Kl1r2GBEZp9bSFaLxcraLYGG
+wXlUJwRtcOjbfQSr7hfKDKrLBmt/F6DD2Nw9ZhB+1xYFzlwK9Qbqh0DrMca6THAegy7Hjunxxbq
Eef63B6H+546aGGi7fMPOVbwQKg4uT1a4VkR/PJPyMbHzNBMKH7oBbBqvW0X0IMh92D+kOGHHJyX
gj0HANeCnVqg1QBq2ANk9IaTmGMVQHAPF7y3d1l5AJR7G5DozAEodvwK9Opx0KKEB0Ng8S7qwX/N
HUc3GGhGTyZTy81vKXK7w+LRc5f59wQUftPzgz3HoAR0eCMuRPTG0L4H4zh8uftstXd49nL31c7J
6uhgdXJ49Ow8vN+bsw8kX7JXJzu7pzvnlwtJ5e6D793PLca2ueWnXydi5cyVmbkyM1dm5srMXJmZ
KzNzZWauzMyVmbkyM1dm5srMXJmZKzNzZWauzCPgymzTRjEzAWcm4MwEnJmAMxNwZgLOTMCZCTgz
AWcm4MwEnJmAMxNwZgLOTMCZCThbRcDZio1r7nrLmvveIuf8fecb3Zy+PTrbffPBq92T06Hyhrzy
xeHek8P14cHqzd2zkm4c9PuW/KKrQWQ32zLoXop25ea6ApPqLx8oEOE7u9sNR8VfvnI4fdM7Xw6X
rm5Y3M0Mrb/TLe/se9ZV3rmR1lU67M37v/adeyrBdWese6kAGwIPWQlX21Tt1oWYVMPq5e7R2eH+
6Qerl3urg4PVwc75fHt0dr4j2+HTk92Xq53Vi9XLIev0bPf0+b9fvf2/w4P/VPvNwW5VHuxk++Vq
pyhWT3f29hZ7O3vNXtsU7e7u3rK96iD68u3Z8+Ojb/ZPDl+dXWfNvXHh63a3zA5WzU6RZdn6T73a
abODvZ393dV+1qzq8mmz2nDhJzvjnR2+XJ2sf96+Wu28OD56tnO6Ojtcf8fJb7svNig4XLsYV10Q
3xVIYYH0beYtBWpFHQyoy2Fh9k2zeBofQ7BO0cZCIeBzIZBj8RGGTuB4jBnYeAhWMxg2HQmPaRNE
KhoPDehFAbbqUwEO/ocZ2eAHBQ4+xbCpAa1+lZ8TVYxVNwOV67wESZQ9mnvZ0bnXjZ9l09de9v/u
dWNZiNi97CLby+7Pvexb28uOyb1sud7LvvV9/iMWVKcRkEpV+wjlk//ECVAKteDlP3DccwU6ofI8
2Pm+F9JcX6G5KRGrYp/lSCibiDajNHGlavUYSstx53yPqqhU84ruY6FriBuE+tSPQYk8XCPd/LtC
X7RYOrqNOZS+HrCrrz7kCu7x1nHlMyorK5uyKsQssMLQcVH+zP7rIQAFEhYRxmecQi+0gCkBddCC
vHiUP4+CqOiQ9JQghLUgYERQVltDKADtXA3k9AYmu6AcQfpOEE5bEDJcEGrbcK0OPvs4wdsL3b/1
jZoq1ZpWfK7HivcXn3HeKEFKWPiCC+VLiv9yrMwodpj12GHVjKaxmiwuUm87yv7OcU0iJyFTQvGJ
lsFDLfdY2Ty8ovEUBKMAz8kbPwnLYbA5h6/zkJm0Nf2I4wVjRBo3AyKx9hOPCbwfHQE89Ek15/qR
RG9P1oHnsQVDRR0S9l32QDvFxQGKSMC06zHf2RSqzUlIqUAwq9AbPolB2KrbWoIIBT0kh0BArT6O
vBSP2cxDrVdmgMXLYt/60I+bz2sz0djBwoPFyVdQP97485RZAzOxTXUP/yEQfKqP410eDpjHOKVs
tkAvDjAVAgazQLiXJQ4GgcoM7MC+xIsijGYvZw+0VzQkrFoqcloSxPDprRhEAVIbZJgQ6yPXYPVy
MPjNDuZwJDCTlMfKFLB6BYwCwRhlBE4Y6WfGicKwZlamgPkrQJX32MGCcdWwennI/QHLWLAHcnHg
4oCFLWArC1Z4WOtKCYceEXOljH+h2UapM1Z7JIrQKDtgYYqw480G5rEnqb2FWIQxhwEXsYBFDGjR
CHRyTQ5rzsOe91YEjGUespzZrXqjyBOs2hNj2RNk10ISecJXq12vYO9+bD+OWNfDNSU5FQkeGAkd
pF9ZKYVeuPKVEui/kovUIvOdylMlEYnUnCp0kChsiSgckSiMhtgQ30d7Y0NAIn1v00Exp0Bq5gKH
jeCwzuj9rRSylWi/1TP5eYk5hRBIYgHojEMF29Ub6U5kulBAxgglgwnDs1lhlSuZa+EI/WvRN3UV
Wai0JqwZER2DyoF+MpHb2sXoN0uw9pjqN95glh/jxss8nO/xMRgXzHFAhZgKeUcd9EQsDSKIBhFL
QyGsguJrVmAIHuNKadOrTUxMi+ZIhOvP6GNkFm1loub6Q6xknfwJztAvLKLTGNrEIw2agUIrThim
QeTuIJUeVCZvCA7QEE7AFul+9LNTD0XMEAGTR8Bm0RMHYfiomgRzjIXKjkyFatrMMUtquBSCFnZe
As76M77Wk8C0FfB5IOwCQo8EWeklOEwvwYR6ibTSS8ShXgIN9UKpHeoJwVatGqIb9dVXnFfFQHpm
JY1f/Y+zJo6roiAioPB4e5kjhrMqb4uCJHNGLxPJ8Gbk0GDiMsKxmVHGYqJTqhMmvSEU39JyjoQn
oVcI+6aALRZMHITNFRCkAl16FKRgxHvIYpYTEPVssJp8GRBTAhpsQFIMiJ7jNciFAWmpR3DprRNW
JBh9Afmph/GC5yDz/BKj8BJu7xJ78XLkrkTW9WhdlyktEttPeRdi6oxiYHS5ZX/CMbSK3ojf8pZK
idvK9v6GZYKpv7P1QtcAmQMqIxqrQvvzlSHCjWJj70b4rvXq/ZPj09MnxyeHzw6PnrzaPVnn7T67
vklko2jaFnzue7nbEuMmsFgEmz4R/gO24mGcoWjgi6GnOmOAw8nqvKyynljcOlYXBBUk4I2Fs4Lg
Doo1zIKKf/zAsc6433OsSIYuvsK2leBDgZBCYaECw4rPUwFFKL0S6yhIPKMeXSgU31EHqKeRGSqi
gwbTgO0atNuAFghJkuhpS9hjwpKI4k4YhSMRhWkwSJcyo8j0H9tj6lg8A/3v1CGMjICsRHAf1L38
BcfKZfiFYzgWHnc4Q5BAgwgI2eNK1oNm4ckwJACtlKBQ/cixCkYvuBBQy1gT0V6IZ0OE9mBMBnXx
qgxue8IJlcN+Yt1TmOc5x7J8SFDVsDgiG/lFGZwSH3U4FllFoqsOx7J+SBjVsNBB8gtnFXkSdvhC
iMcSsnU4K4uQRGYdjis6l0IwtgJL1yxE1iqk4xY/cJFCvft6rP25eMJ5dXf5nmN1hvlJO+HYG1lB
lSYrikEQ/SGgLwQ8dAMeukFWk9DQ0RW1bqy/SyU2tvaz0kcW+Ag4FFmqLbBktLcC4US82CIAUoS+
HkGSImBVsFOs9OadFgBsevAVC1kZkAacXQP0EhAd2Fdg3N6gZyJ09i5kCEfQRYu1GBB2DTZQpubS
AiHjDLYc4xM7E4hNEzChxOZa02hksV8GpAywgoiyP7pfiRyxFHVyiZ63wOl7CRhgFGGDGZSYuLRn
4oY/4hh2s5kS7GIp0lJnu68RdFTXE+dy8eN1OCdH8a51qCkO1D+KC7FDQYviMuxwTnZwOh0s1mEO
NZkKGuqIGMA19abXqxylcpW60H8nR3K/iPBRvDYGiQsPOg0tXUJdxvMg4vARxW8kih9IbNR3/gk6
OBGGlUoLvSniSe6Y/mIrvvmtYAit1GL7CpZmQEFSn/kj1g0UogrtwAKLRhsQ1rpaxf/jYY6nEFQw
aBi+t/Ij6LcGDWTrmF6W3eFY2YTo1N50ajWuvOQYwp4HS1A8MsfN0LRXVeOUw6hkR+VFqs7uhIbo
hO/oRHszj2yN8urECOOEoqgYhsMMoiabSkruCAfaMxtV4vJU7VOpaiUQz1QJ9B0knndYjHHndBaW
eLlB4oMHCaIbFoSKi6bQBe7X6V3WnELEl0L8hIoVKwxof4/LGV5X4AiNmEkasXA0ou03GAUiqlVk
To/4IY9TsM76YippxCehEUAER40en4zeT/qaLh8f0uVwDQnA6OaWaYKmA+d1SFLme+wAT4Ll2HwP
gkwoefZgCjDPlyDsAcL5cgz+roDlUkbCUnCH5Uc6QBQEXX7MMYikIqxiPYxif4zi5hrFzTWKydEB
RAxTkM1OsNzH2cmmMjjoOjZFII4ia0URh12p08oBs5Eer2QuEQ1U6n4YzCo6i9xLUPPeyKhGtoRI
6RDhh1DtOk3yMDUgqBAtgdAjZlWh61d1gycVGS1+9Q4Uf3jUkkRBIieRcXEJbudJEIU7kBDhx2EO
cn4MuxqJreq5xltOhhJTkSg0zLAS2PGB6YiV2BEie0j0nLK7PDkZiSXPUVO5jHiRIT2beHnbLExk
zF4l2MUhlwFtqToicrZnJy/Pvly9SsQahNW2AFv8wrES00XwFa3IY9XzhqfmIihrFPb8N84Wag5X
Q2T+O8c6dcveCxIhtc9/5SwzvCJBucQfzmUpyQXIy99yUc1tumKcckKay4l9tZJPdIqoSb1VUmFO
oLNKcL5KNpWqpGpatQBjKm2/YMaVb5LVtm+ZiHX3MfGJH45lhm3li1spowDpvRAjenGj78Wpvm8/
5wXSRK3+SEu0HzESGxJYf1VWNYW8Nz9ic+HFicKEX9PVG0Eitf11gm0EpdS+ohpt89XWcAdn5GJG
LmbkYkYuZuRiRi5m5GJGLmbkYkYuZuRiRi5m5GJGLmbkYkYuLiEX27Q13uz6M7v+zK4/s+vP7Poz
u/7Mrj+z68/s+jO7/syuP7Prz+z6M7v+zK4/s+vPPbn+3Pemd+/c0Ex/d/ZPVrtnh8dHO78fnj3f
2X3x6vnuBnd9uVWRrrUl2uC682ZI7VzcsEgzD473Xw/+PKcfyPHL3bPnQ/bZwbqizw7P3u7kwzs3
uPfN3RTwqnVyw63etnvLtbvYzuo6WxBtcIOxOyvGP7W1b7qx4/smnQfbcfJWBXsfZy80xAdQDk3z
BSuzmUSBgBTwGU+g9hseEUFnPLJlNBMpYIEzM6oZVlnWPcu6qevBLgZQMLKNZ4f4QARMix05JlAn
A7wKj/rlUW1UZ+wUtj6WI1nqOyGVdKIfdt8i03ckahKOBMqYyDwd+/I6ZPKOzbQdkl3HhtsOtM4B
ig0WRvbJ1u8FK3QAecM1GYmSRA7G35Awm2OL9bAmYdcY75I4h33kGkI49hgoTdsMxELsMRdGJPxo
Bkg2xo7swx3hG0a7SxWkXzlG51S+l/LrhEbnCVbnCS/nLfxcPu4rHUkEOIoBLVKF83zcjTqwHbba
PRdjyMLALtfBrI0K04ut1H1Hr5Tvc0Irdd/yDvkEYdF4J9ESnRhFnOhz1S9KDSmVT/I1x1KJToI2
up/kR7qroAGBYA+BuAuBQA6BHdIDkSECm6f3wgAK7Koe2C69b1GSdXdo46gVEv2mkGB0hTAZi5dc
JEOzkCguhTAZCwmtU0hYmUIC6hZCpWwkEIwE3YhLMYI2UpWNqO2N6GpOLAYa0KMRRbiR2lUFLCj9
5AdaAjZdRPP1aB8ePdcibCictxTu7FIsbMvPIB94EtApAsiVQoSwWKPRqzQ8qsQpWs83AnJ2xDPv
iFrTEZmnF65PLyQeT3hFX9j4UOgFi3WE7BwZiUpozMfd2SOmdx13Tjivbpe+pTQlrHDVMSfU2nXe
el6U+r6VTtdKvbff0GtgeyvUXEjApuI1/QLOKvGkxvBbCioXGnBSGLLNrpJJlZXaiA1RQ8Y0kFcb
dOcGbEXCvvQatqUBe9AgLZjSAqa0gCktmOGP2JyhnyxYlgAOcqxcAQDdgtYZluJswQJJd+Dvhrop
rLwU7t1SwMilIJTLr1nVShIK2D5hcVPW5Vd0TqKFBMJqjMuf4aKE+whgp4o7Q6p2pZJ7PgaUbEgo
YOegERp+qUCkhI+sIJj3BM1VynL7nZbB2UgwQguWXQ1QUP3KJ9sqSLgHB+VFAysUExpQnecW42mh
TEIJdSlUOF8oFiWWPCHV+QKLtEVDiJYDWUTjHzRWTmzUaiYG5vVQiIdrZNw2rByRFSjCkh+XKxnA
jZ2wx+vwFFqj07VG6D1OqYSyXDolrOj4FU6NE6JPJd9bifuEE3KlkwhmlVSCE+itklqrpLqcUNQr
4d1UMu84vUEfJpOVE6qP0yul0is9p/cdyM8z+dFVAUIJS22AnhCIJB6Ijx6gS/XtLidk0mqFeNDK
atLinCFAp3aNIq/oGu1PylPTWaN9yrGeP+ABtiwqeQdvEEWvWvP/gKvQ7nPccCll10mwNVcSrGaE
fQ+EZx8SWhKRDNpnvM7zVBb5nhw1ixFVvm+fcAXPVAwbCS4g7oXFpBGsSFysLPUCqzrHZiXH+O3A
LQkEaqsBpS3Mkk71FKPY0tuplrtwcFDQkMjroTDHGloIasw6UXNNB63JmwxDeWC/Mu8YIbRgAoJP
GrAkDaf0FW+5wkrDx9T2lEjC3qTVJjzeggjKnX1jwVO5taeia4qtMmRQ7pX0YglpFghgOiTkmY10
mvAloaZlXpKAa73GKWsEVddwZ42IdY104kagdg1dZkFig8hXjazYjVCNG402DD7cqHwnn9sIibkR
2a/Z0wcqASN8z7HeK1zmRiTbRuTG5ulkLJdtSdy95oib9ViEzuYPCi0SkQata37jamUPq7whfkUa
co7QVaERfSOI8aU51E+MWPPNWcQETFWhjVug7GwiO+MT45A+jGwcseMT12/0/FCBQnuos9iGkLn7
UT83TzHViBfjxcaKNg1dLcPChgvmRCIXugU6fgz3FBnl/aDUu0h9/eiNM6ISVkFQKkRidgtoGMQ9
HK1kY5sKbrHgCk8EwGCNbY0HUSNa/Ys0uLB+AFskWjNgGolWFis/AuhYunLS+au2usB9XmfUFzPq
xYLhgYFsPSw9JkyDXcwKHFCHxo+EZEH8Qj47jGKxITIBigehIMfbvT0HQdmY8sHeZQkMPx45O9i7
+AopKh+a24cGxlIYHaMCZJSxDqyXWw5y+/ihqISBkhrdP1AuTxezWrF3mZOAlcdiVQZaQAYbH1Ex
ma27XKXuAD8i/6rblPhuLvf1stJqSp23hJe//B+3icy+fMIxXJcIVKZW3OUux6LGLoXasPyBF6la
vEfJYakqkWX5s/w8k59fuE31GlGBl89FQfmZs3iHBXzOAuwAR0BINaYvD+TnKdn6vYfyIxa4pbpD
nMrPPlqQclV+lZ9dsuUR4swaxeTsYMhH4ZhH4RxEMTo7/I6ikMm14ZqC8L5R3I6i8NodPHgH2uVA
xKI4SEexYjt49S432gUOYHDvHT5QLjfL+zHHormJG24U2rsDWItiN4/i70SR6+ziVNHU9g2FhUq0
Y7RH5QGJXX44xoVEqwVyjZvEngy4okTIPloXxIyMpV2BuhrtzZxSFbfkhRHYJcIlCtyjPcYQmkjM
Sx0MBS1fUNkFXogEvxxypjpDuyzH2glWBiUS7cqP4juiwosXgCtFeRaHmCgeAq4UGk8pZubyv6p2
65BXdk+pvCTpeKXgUOKoHMU3LIoLWcRdOopXAkUui4st3JZ8w4BByWdKlOooQa+jBF2OEtg6Stzn
KPGtowRwjhJzO0po6Fg/53EZCXU2lG8Sr7Aozlyx0c+GrtZ8AgAfOWH8JzhTauevDGHQ6JEy3gWd
jIJCOa0cgaac1YqgDbGV8dy+lp8zuUgmpPZ0rKdmsVxST6LvOoG+nGIRoicPbKsFiSWukpGcFrRC
kIRGtfc3CKM6Mn/jMkPioQaJFOsbRRUi+ICyWPB1caqfq15v6DKORQ7vlgpOcoUkXOFyUnFN+1xV
MG+Kt2m1pg7CRfF4AHoUJQ/3yKPBeVA+bypJTaJSzz5D7pC10dcCrufiiBPEnXI9YlXIFi/LID6Y
bqHCsf6IqiJumkGcNocFGEguIo1EJJZo6zeSQWSRjiZG4HFtOfoc8e105qmxlBG0lPG0fMlZ7FQR
XqiGlRX/piiOSi632LcaulYIViWsR4WqS2UsyhAW60MU00FHIG8HK8t1PxBtVUxOnWBwncgX3ffY
oYIicg6POYd/3AhbRy62BBa0EdALWKbMntVTMtzrPFFevY0WAwrlYuK3O4iEHfHRPTBKR8j4IYGJ
yvxanIGF5l6HPUvDVAKT+IWFfR2Jemo8KgLHdoXcU0RGK1fUNn4huxG/lDc3GshUsRAvLpReZswh
W96pvrPVBBFlDugN28dxpucdPY5zWgPimDk8pWY6AOaXcg0Jmw6YWzq2x1Cw001mk8BdzB1aWRUj
uoLcVI0GKA9+58GmdPZoxWWu/YVseVh7yLyBs5qHzugN5wFi6dlworOZpJtM56VJ1U58StxCZwWh
UYvDzzDMEdyJS4+SuGSYLk3eqqcvaMzjdInZleC74LniEOZlIRyax+rKmqMgYafwB+qYuNUhoKKP
OECqVtBd2dGlb7HCqZNB+4LatZnaqkxnWNkIQZxzhq+Q+WcpYsHyjNlKdRAwedsOQknmy9ccq06g
cvhbsqGGR7MkyMTR08d7cHD1N6yIpOvA5B1QfAUet8A7o1XT1CuyFZs94Vhx1185Blczn0blJpsf
cwBntc0OAuaw8IQTegyaK/ZJJ65KThyXnPpCibXXLT59aN7MfVN7bkeEuhta3MajIN5nMWcEbEbA
ZgRsRsBmBGxGwGYEbEbAZgRsRsBmBGxGwGYEbEbAZgRsRsC2HgHbpr3AZuen2flpdn6anZ9m56fZ
+Wl2fpqdn2bnp9n5aXZ+mp2fZuen2flpdn6anZ/OnZ/ue6cuiUN/gUhynle+ONx78nL38Ijw8xvc
mut6ZbjWXlynq5e7R2eH+6cfrF7urQ4OVgc757vbHJ2d82gOn57svlzx+A9Oz3ZPn//71dv/Ozz4
T93ultnBqtkpsixb/6lXO212sLezv7vaz5pVXT5tVpstQbXfHOxW5cFOtl+udopi9XRnb2+xt7PX
7LVN0e7u7i3bqzbIl2/Pnh8ffbN/cvjq7JpMr2vdmrTpRmv/nSyp6716/+T49PTJ8cnhs8OjJ+su
uM7bfba6BuZ3D029BZ87fup7Ng0b8o5fb3zOuEYp7ncHv9PXr86pfFu+j9+kmA9NOfzLhUDQ9Pc7
6/7ZvcPpG+49d9MXvhwuXb3/7mttwHb34+gRbLq3tbe8U26x7vru6fqqws51Vp+/7Ir3WZQbMa/v
pTpOz+65GNcf4ldYpO6CQX433/legriYVNxCzf+fYewHqo1my8dAELFIRkDgMaHwqxB4lr9h6VZ2
6htFZWtQ2Ugct1qtCX9wouVET0KeoVCsEAkH4FSQ4FIYcGJLcqVu3C98OEFfB3NDQUIw4FrR2QBo
KwQeCbEzHHNCmdOV8tm+Z49zNdcrZHYGSqE6OwEsFmoC/1quVg0f2m3E9KFb4Mtu+QP7j3BuavMX
9uBg8YeGooirGxEjYuAA3Qu9r28JEOlBtzwgDEas0fzgDcMBdnEgMgZROQAgg74wWpjBa7RwiLau
9JC6XRpOAY5ESL4+yN7uATREqT1BwEe1J4qVz2lwAbEmDl0Pk4JiAOokEOFMLSddWg1bxBzJxpza
ThkhPHAKLnptOdqt32pTanyG5R/aZbsliZyEMnw/kZ//TiqmKYxTqwTLUvGuIaHxW8UoIvQEV31E
95TPEL7r0GFgPfbWKCB3iiQ24I/NuME6FSb1CGcFbuaSj1gSYWWp8JrLjQetOTE3RicXi/Ui1icU
2Tq3FFFswyFi/bDYompNEnuwy4kx3Bl3RhpMCcHCEnaluAU0X/G0Ch6NMWvEAtF8Tk2VJCrGFPQv
5d60fyjgXINee4DhAHqtoSJaCfDUvuEORa7fTpq7zaFJDa0C5hrAZdUlAotRH55xDGNUEWBsp31Y
Kb5lBsAeBmkPa4cwfQT3C2KI1TgSYkV3Gh8DG3sQi7yT8BJOgmi4hV6rzaZDTozVUeolfkzHkudY
hKkohLMo9LNcmf4aAVRXBkc7NyRaEkr/j3QwduMnXg0hQwrWFukrEYuVw2ocZZmIwj+PylSHRypc
51LjM2tg5jP5OWVYNmOLtotsMRLKlaMjgTqckdnFeDEsHRZH2UiaUBI75vBg065N1jCzAkbjAMKt
URrDcyrdalAr9kMqQcMGsq52NnbxtOh0FhJquC6issA6pvUohqwoBrBYv4byveBzGhIt3D/5wEIJ
nl8wvGBX9jCze1vfjOnnScClZM0FIF9YDDlcjxqzhFkMTAuraXaL0bTgCNIWbObBxOIxrVtsTA1u
EeBlaixggrkE+MJ9EGth+JlshrVj+nVWWoHQwwt5lIgHiyc8ODAoFaI2fh3vjP/lOHCPdCShN4Qo
Nosodv8ocl7UoOlybxSwP8qSGsU+EIWrF7+gY9kKyTKoPYpAGRLDWMJoDGfpXyrfFHZs41WZ3DqT
yxApRcjSgScTukMCcQgesZQwS/VvjEgNyfG7HMtDxPYaSw3g9DtjVJYv9VcRS+nQhZf0XDVWawX8
j2xmbU8nUhovhJEQdVb8bjI75Dbfu/xTaiAjQVgqaANIPouRfNzDfzVTJUEqidDSjmQm7cStxZsd
KVABic0jHHjr6NgkjWccsCUaOdQj+XkkCWd9PmpC6wN6RMCBJcCc6IMY4YME6w2nnLVnyjgPJxyz
gtlY1PEaJJ5QeEW2+lEI/SqI5C9x44MY5INTaVIzxYQltv4glvggNAIn8eSDEIOC0wVWbo8/qXip
IzOyXEbGXbSRKctr1HG4p2fpLHgajnKqPlGMihHfxh75q0f+6lkcNYTaEj+mJRrOklG2xCcp/4xx
GTmBzOYYkL3GTZOJpGCltQt7lLPeTrHE9iwiPetLzzLcQxjTYkP7jkhjsWSZLJnEkFyHHJ0epDrK
Xc73nNdn/MRxzxV64xOO9UL1FnujVB+V6oUX4sqRu6ZKgj4YV6NYWYjyHznWxV8jp/+hcYD0+hp1
oOZVtd1BbdVvOOG4Jychc0X9Vn7+4EapnuZr5jRpiMaUyJJEheStkomoIKIZOvHEG+YdPfsLxwWJ
8u6RzXdQsAensRzvMY1/9wfH5ksCR8SiZgWbuHCQCDZbI/vqtO3UwC0kfYldHoRGFIRb5CRSeYg6
YeDEq1Tl/HPGjbRrKV6gpfg2liu6D76ApbUpMEQg+F9PqCi1NJc4kBI/14lvYw+ndSiFrE7Fx0zw
NoubMoHYaP4N5nemnUADtwfhJoXfOcu07dExdGUQ7lQQelVQvpLTSVamzigTadSqk2qN4sOZf0HZ
EU57FR2+5JhZw6ExO9ZIBXoK5FiRl2IpHpiluGWWz6l1GHzon6imuOEM7cDY0JmpUa1RRA6h3DoJ
+ubUxbRFlYRK3AdxUlsc8gWMbX1xi2eVxPR15l1oFFEhiMXlOJs6K3PNw2rugfjiLWGCqykH4E/q
CBJEcw1vyRa9MFJkxxKhdU0wVZfLLJKrkPgVHTlQPHpraVMcMcf1lMYktwDT+UjOCkASpuZ4ZPHA
Im9asHmi2CgOyBiqClnM9Ga8fez3iB/eRBTcVGo4JEopUp9UIQsGHLuCMPyC8PaCm2jybWMOskGY
fyGK2CJ0wIBLWcBvzC1+5lhv+4NjXfnlfBS2TxTqeNRnC4soSkGijMQoIzHK8Iy/iEShuwmo24hu
UKAgz2taGhHCgfc4FG2HoO8Q9JWjm7MJgkPscEgbjoGto5PAwy4Xj8pcsLv8W84iHBDU1mK2fsIx
QolnRlAXGYnDHS26bT55GPKJR8BwyB6OCcab1CPVVCig/BHZSDQOacWD5ml9lOJiWqoXnCgXpbif
lqIWl4J6lbJylKqG/Iwgoo75Mv7LI7L18ap+nzHYTB7RwL8Ie3jNRTzinMlROMtF3OciTowR/0an
clHJ9FOz5tfcUyN61khsNapLTUjmklWwNl96xMiSCaZGFyxfcYWdsAmkI2GikYLwP+lMosuo8N8j
fPcIAz42Gnj3e1ZSzsPlZm+Jkn0PxDsiQq2PzDJOowEzf0Rm1MjKGJlMI4tmFCJthEgbYdBGQf+i
gIKxVa95keMERXGKqbTm1o+Wg1w9YCIGOhqoAUk4AO7bwh/QUA0vigYw2mQLyzLarAtuGJg2A2hF
sDkWSSIgIgSEBhW9gpEueZeFQg1Mthbv1AK1EtE7AMA6cT4LODq6xS8cFyQ6EoqNvOK4JVGRsIeX
JNQX9gXHKhmpBHhEtq6ZPDP+occ1Wh9zN+tQ/M3WiGKRFZDwQ3zLk0pu0KmZB2iDRgTFLHIsnxF/
5zgjkZNA//Ms5Z6J2DNZE5z7R46Z8D1ygEfG9GianmWCfXWIFz56CTFBLzGj5T9xQmEPU8kUe8Ia
yA4zSL/FFxzrxihfcswsHpicdV+mAlE8sAQE7A84iFg4VyKzT7aWYUMc/D5yC9qMNwrRX+O4TQ6T
wrgHDht5jBvS4MVZgPh4K599s1qEUBNL7EylGYuYxEtE19KMoW84UXPCLtU9a/7gWPXo3zlekqhI
NCS0AG851nWK6bpkDSmZt8tRunYsSmzLsMsxErkuqBXiBIo4YjiezLGyfVQOOGYRc6xvqklg6oqg
x9Gi7Va2Du1zzEra20qKwK0SMEafYYniYpVxKiQDgLgIhD1cjIpnWkCPiOxYMB3qh0pGJTVTT66x
JZTlcCwPK6WzpRiZW2tHSNlRWOBRGOuxecaap2uciCRC9h6epounaK1CVY/CYI/CH49CgY/CQY/C
D49Cj48NK7rKfUJrj0Jrj0JUd5UGrFcj5q4unCMygfOUDl7k/4iQHxHpI5J8bAzxGHfLYT8dBi+r
VcRZZEiEzZCNZqbFzLSYmRYz02JmWsxMi5lpMTMtZqbFzLSYmRYz02JmWsxMi5lpMTMtrsS02LLt
8GYuxszFmLkYMxdj5mLMXIyZizFzMWYuxszFmLkYMxdj5mLMXIyZizFzMW7PxXgIwCPZkOv0fOe0
Ybek5flGSnJse3G9OH42bAJ2utr/z/L/Ozz4z/KK+3y957G7p2+P9p8sFuXVdl666VZAN9xA6Z43
6rnFXinX2GJsgxvk3FUppoDc+dZch6vh3cdHG+UsXXjTZjcam+xoNnf6m3T6629atJluf8fleB+F
LrZm3tfgdrKotWpYRBaDCDJghDWJBj1ORBAxR7hqvAdSGlZsrC4Ow/QgcAjeXCkv6Cu90MFLUa2q
HcO3sf8tGzQ7NnE2/TESliJCscg+RFy3K0zWRwjW6GmFIIHFN2SLmFZ8jZyIbKmCHMEJh29RyHuF
OGLLuFYVOKsnhILR09TqGUY4TQlmjl2no9EfMCh7BClHkzg4Qo7geRqsIYw8Lo01JVsr90ibw+MF
7JBQkn1lPADT1JSz9Zrz4JcEMD6hwOiuKpsufuUNGnP1U/kRzDgTDDrD6B4IS4pVDIMgJMgIuSxC
LnMYtIc2MJEWgVsxMLVg1BZrQACrBpO6qjWyL3uEeeHYz37S21RRHVkA0QzU9C4zZgZUVQQ4HSQa
WHLFy6yXAxlEq13rBzXXEK+VmLljeAUdcWo3qCbDTKXFt/TIlocxUrTVIh0v0q+JTxyXFu3XokIg
31qIZwJExDHIICYlDPAR8tFQPuvCPQnMRg6gzgFL1YjHOhc17Ao/VpEoJBkhVSKqdESJcfYMk8cV
jnrKtAaPwRt2pP3/cz4VlTiCNnpE+RoMqLNOApRg2rsRhyM6drSejoKr4ZzU4mNGHDOmQYGI2F8d
XAgHF2IoFmqjWsTEjuQUoy1HLcsBGjqUkw6dRHVfNjmPbP3uqm+pQPBDEEcwyEqDqEpnbNVOKwpc
+5xaVkhKQEIJgxzLURn2hrOiJDr4Z3pqcUZV2+cQJrVbTmCq9fo6DVg7ZGDb6ApC1UiH7CRKUCdB
qjsJkt0RDbuTaNcdQbQ7iZbdSQjpTkJUdxKLupNI1Z2E6uwkwl8nge86iV/XSfy7TpjnnTDNO0i7
HVzdDhNFh22iw8TQYeHosHl0mDo6gmB3Emeok8AvnUSD6SSsSydhYDqJct1JDPAORnEHbbiDddzB
Me6g1nYwajvMJB02lg4bS8da27EMd8z2HfNjx4zZiWWnk7WikxHdZVr4j3knH6t0drEKdbJSdfC8
Oni/HWHGOwKHd5BJOpC9bkmVei0adwi3Zf3hekcGYzCDd5XplDkkchIFiZJERaImoZ/xofxQIOnf
HehmB2TZLeX7ZMlc3+8okKdAngJ5CuQpkKdAngJ5CuQpkMCJQ6Il0ZHoSTgSngQV5ClPoDyB8tC6
umR1xNPrCEHUEYKos8A8RJnvJPh8B9+ok2DtHQa5jij2HXHoO8LHdwR07wgB3xEUviMEfEes+o4g
9R1h7Dti63aE1O2IxdsRbbcj/mRHvMqOiJYdoSw7Qld2OJZ0EPg76PodZPxOGOOdTlG5Dqtd+RFK
33KPUaPF0y/50Ka5qiwXBKXpsFjamYYzYkElf1lPZ8plvsyWizSnrpKcvMySnDJbpjlNk+TURXYp
p0hymmWe5LTL9MltVV3KSd6VLdLyZIsizVl/WJKz/pPkFFme5rRJmbNLdZiVl55TFpeuqcskp0qf
nBfpt+dFlbROsUjftb6pSHOK5CuKdQWlOVV6TV4mJSyKMn17UdeXcpK2KMpl0l7rm9J3NelzynVe
klMXizSnbJOcNm3lsk1rtVqUl3LSMldZWofVpVFQ5WmtVmWbPqdO+09Vp723atJarZp07FRNm9RP
1S4v5eTlpZz0XW1a81Wblrle1NmlnOSuepmndy2b5CvqLO2965z0yVlZXcpJvqvO0++q8zppnbpI
R0FdNEnfqMt07NTVIr+Uk35X1aZPri99aZM+p1mkM2RTLJKvaOriUk765LUgW6c56QzZtOn4ai/N
AG2eJ89pL43KtqySMrdVUvODAXiR5BSLZZqTzKvrnDxPcsosfXJZXbqmzZKcKmuSnOZSTrso0pyk
LYplloyLdU6VfMX6vjrNaZIyL8vFpZxkRiqWVZu8K6uTebXImvTtWZvMz8V6gm7SnLR11lNm8q48
7VFDTvKuvFmmdzVpW6xziks56dvbbHkpJ3nOurMs0pxEBiiKPBmD65zyUk6T3lW0SXmKpriUk7bF
+qZLOWkrl8vyUk4yGxfr1Sp5TrUePklOVqXXlOm7qirPLuUkdVg15yvRzfeHG5+TfMV6LVheyknK
Uy/TOqzztGeuZ+xFmtNczsnTnLRW60s9fBJ20XLSGakul/mlnOJSTvquMlkv1jmXvrRK57q6rstL
Oeldl8ZgXV/60rptLuWk5UnXgnXOpXddatO6vfSlbbJ2F82iqS/lpNcs0zmqydPRvc4p05z025sy
7c9NWafXVIk8vx6m6Whq09VznZOs70POMs1JZJtiQnu1nKy4lFOlOfWlnLQO26ZNy9Om/Wedk6c5
l97eZum3t8Wlu5LRVC4WyXetc/IizSnaNCeRRYecS89J1tMh59KTkzlzyKmSnGUik6xzLl/TpO9a
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
h8Mff6n++LB7+fG7H/66f//Hwxf++uPboz4cUH2dv33hx+oJX1v+qb7049k/fz/757/5P/9o+Od/
zv75//g/Ycs/Ef+Hnf0Tn/2T8n+yhn82Z/+87v/ZTXpSp/2kTvtJnfaTOu0nt9f1lzf1l5P6y2n9
5az+cl5/WUd1W0d1W0d1W0f1oY7qwwHV10/ffZ2cvF8H8KEO4EMdwIc6gA91AB/qAD7WAXysk+Vj
nSwf62T5WEf1sY7qYx3Vxzqqj3VUH+uoPtVRfaqj+lRH9amO6lN93E/1cT/Vx/1UG5d73PWXN/WX
k/rLaf3lrP7yY/1lfaCb+kA39YFu6k++qT/5Zl5/eVt/+aH+sg5jUn/ypP7kSf3Jk/qTJ/UnT+pP
rtufad3+TOv2Z1q3P9O6/ZnW7c+0bmGmdQszrVuYad3CTOsWZlq3MNO6hZnOzsatT7BuYaZ1CzOt
W5hp3cJM6xZmWrcw07qFmda13LSu5aZ1PTat67FpXY9N63psWtdj07oem9b12PT2bNw6Nep6bFrX
Y9MPdVQf6qg+1FHVldu0rtymdeU2rSu3aV25TevKbVpXbtO6cpvWldu0rtymdeU2rSu3aV25TevK
bVpXbtO6cpvWldu0rtymdeU2rSu36ac6qk91VHXVN62rvmld9U3rqm9WV32zuuqb1VXfrK76ZnXV
N7ue11/e1l9+qL/8WH9ZR1XXk7O6npzd1FHV1easrjZndbU5q6vNWV1tzupqc3ZTRzWpo5rUUU3q
qOoqd1ZXubO6yp3VVe6srnJndZU7q8cHs3p8MKvHB7O6fp7V9fOsrp9ndf08q+vnWV0/z+rxwawe
H8zq2ntW196zuvae1bX3rK69Z3XtPatr71lde8/q2ntW196zuvae1bX3rK69Z3XtPatr71lde8/q
2ntW196zuo86q/uos7pun9V1+6yu22d13T6r6/ZZXbfP6rp9Vtfts7pun9V1+6yu22d13T6r6/ZZ
XbfP6rp9Vtfts7pun9V1+6yu22d13T6r6/ZZXbfP6rp9Vtfts7pun9V1+6yu22d13T6r6/ZZXbfP
6rp9Vtfts7pun9V1+6yu22d13T6r6/ZZXbfP6rp9Vtft87pun9d1+7yu2+d13T6v6/Z5XbfP67p9
Xtft87pun9d1+7yu2+d13T6v6/Z5XbfP67p9Xtft87pun9d1+7yu2+d13T6v6/Z5XbfP67p9Xtft
87pun9d1+7yu2+d13T6v6/Z5XbfP67p9Xtft87pun9d1+7yu2+d13T6v6/Z5XbfP67p9Xtft87pu
n9d1+7yu2+d13T6v6/Z5XbfP67p9Xtft87pun9d1+7yu2+d13T6v6/Z5XbfP67p9Xtft87pun9d1
+7yu2+d13T6v6/Z5XbfP67p9Xtft87pun9d1+7yu2+d13T6v6/Z5XbfP67p9Xtft87pun9d1+7yu
2+d13T6v6/b5Vreb32Zoy6TefD6MW59+3YjM60ZkXjci87oRmdeNyLxuROZ1IzKvG5F53YjM60Zk
Xjci87oRmdeNyLxuROZ1IzKvG5F53YjM60ZkXjci87oRmdeNyG3diNzWjcht3Yjc1o3Ibd2I3NaN
yG3diNzWjcht3Yjc1o3Ibd2I3NaNyG3diNzWjcht3Yjc1o3I7f+fvX9rumU5ynTBv9I3Muub2jVH
HiMutm0Lj4MEEgKJo7hpE7AAgYSEDiDx6/vL5fG8OYerN1VFUUureqfZtPnlyDEy843IcH89PNw9
3knkeCeR451EjncSOd5J5HgnkeOdRI53EjneSeR4J5HjnUSOdxI53knkeCeR451EjncSOd5J5Hgn
keOdRI53EjneSeR4J5HjnUSOdxI53knkeCeR451EjncSOd5J5HgnkeOdRI53EjneSeR4J5HjnUSO
dxI53knkeCeR451EjncSOd5J5HgnkeOdRI53EjneSeR4J5HjnUSOdxI53knkeCeR451EjncSOd5J
5HgnkeOdRI53EjneSeR4J5HjnUSOdxI53knkeJ8gHO+6/XjX7ce7bj/edfvxrtuPd91+vOv24123
H++6/XjX7ce7bj/edfvxrtuPd91+vOv24123H++6/XjX7ce7bj/edfvxrtuPd91+vuv28123n++6
/XzX7ee7bj/fdfv5rtvPd91+vuv28123n++6/XxX5ue7Mj/flfn5rszPd2V+vivz812Zn+/K/HzX
3ue79j7ftff5rr3Pd+19vmvv8117n+8a+HxXuee7yj3fVe65hlu9t+hd5Z7vKvd8V7nnu8o931Xu
+a5yz3eVe76r3PNd5Z7vKvd8V7nnu8o931Xu+a5yz3eVe76r3PNd5Z7vKvd8V7nnu8o931Xu+a5y
z3eVe76r3PNd5Z7vKvd8V7nnu8o931Xu+a5yz3eVe76r3PNd5Z7vKvd8V7nnu8o931Xu+a5yz3eV
e76r3PNd5Z7vKvd8V7nnu8o931Xu+a5yz3eVe76r3PNd5Z7vKvd8V7nnu8o931Xu+a5yz3eVe76r
3PNd5Z7vKvd8V7nnu8o931Vuele56V3lpneVm95VbnpXueld5aZ3lZveVW56V7npXeWmd5Wb3s3p
9K6B07sGTu8aOL1r4PSugdO7Bk7vGji9a+D0bk6nd4Wc3hVyelfI6V0hp3eFnN4VcnpXyOndnE7v
5nR6N6fT+vrvl98UdHsYz1MG/39e+I7wXc+ndz2f3vV8etfz6V3Pp3c9n971fHrX8+nW8zrzjuRd
t6d33Z7edXt61+3pXbend92e3nV7etft6V23p3fdnt51e3rX7eldt6d33Z7edXt61+3pXbend92e
3nV7eh8bKbzid92e3nV7etft6V23p3fdnt51e3rX7eldt6d33Z7edXt61+3pXbend92egjn9rhjT
u25P77o9pfDjd1Tvuj296/b0rtvTu25P0u1vJ9/BvKv0FJC/q/T0rtLzu0rP7yo9S6WX1zfK9tn5
7f1n+/vH4/3j+f4xvX98x/OuzPO7Ms/vyjy/a7P8rljyu2LJ74olvyuW/K5Y8rtiye+KJb9LWX4f
/Pl98Ocz/Pj9zu+DP78P/vw++PP74M/vgz+/D/78Pvjz++DP74M/vw/+/G7Y5PfBn98Hf34f/Pl9
8Of3wZ/fB39+H/z5ffDnd8Mmvxs2+V0K8rsU5HcpyO9SkN+l4PXpXQw+Pr/C5yV8XsPnLXzew+cj
fD7D5xQ+B3yvgO8V8L0CvlfA9wr4XgHfK+B7BXyvgO8V8C0B3xLwLQHfEvAtAd8S8CwBzxLwhLDj
TyHu+FMIPP4UIo8/fek5/F8Tlv4ETj+B00/g9BM4/QROP4HTT+D0Ezj9BE4/gdNP4PQTOP0ETj+B
00/g9BM4/QROP4HTT+D0Ezj9/2+B07/z+hpPnPUTZ/3EWT9x1k+c9RNn/cRZP3HWT5z1E2f9xFk/
cdZPnPUTZ/3EWT9x1k+c9RNn/cRZP3HWT5z1E2f9xFl/hXHWX9c61mAMfRTipz+FAOpPIYL6Uwih
/hRiqF9hDL/CmH2FMfsKY/YVxuwrjNlXGLOvMGZfYcy+wph9hTH7CmP2FcbsK4zZVxizrzBmX2HM
vsKYfYUx+wpj9rUEfGEMv8IYfoUxHCPtY6h9jLWPwfYx2j6G28d4+xhwHyPuY8h9jLmPQfcx6j6G
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
QOMcAo1zDvo4BPXmENSbQ1BvDkG9OQT15hDUm0NQbw5BvTkE9eYQ1JtDUG8OQb05BPXmENSbQ1Bv
DkG9OQT15hDUm0NQbw5BvTkE9eYQ1JtDUG8OQb05BPXmENSbQ1BvDkG9OQT15hDUm0NQbw5BvTkE
9eYQ1JtDUG8OQb05BPXmENSbQ1BvDkG9OQT15hDUm0NQbw5BvTkE9eYQ1JtDUG8OQb05BPXmENSb
Q1BvDkG9OQT15hDUm0NQbw5BvTkE9eYQ1JtDUG8OQb05BPXmENSbQ1Dvx+eAL/BHCPLNIcg3hyDf
q3Dzb52IpaJzrBWdYzHmWG17ff1W+edY/zkW0F5jBe01ltBeYw3t9fVbj41VoGMZ7TXW0V5jIe11
+a1K1RFprKW9xmLaa6ymvcZy2musp73Ggtq+1v3VbvfxrMI8qzDPKsyzCvOswjyrMM8qzLMK86zC
PKswzyrMswrzrMI8qzDPKsyzCvOswjyrMM8qzLMK86zCPKswzyrMswrz/5RVmK/tHitPba+nttdT
2+up7fXU9npqez21vZ7aXk9tr6e211Pb66nt9dT2emp7PbW9ntpeT22vp7bXU9vrqe311PZ6ans9
tb2e2l6f1fb6Wu5VQgLKh7G/xhWhNa4IrXFFaI0rQmtcEVrjitAaV4TWuCK0xhWhNa5dbRHpFpFu
EekWkW4R6RaRbhHpFpFuEekWke4R6R6R7gHpFjtoix20xQ7aYgdtsYO22EFb7KAtdtAWO2iLHbTF
DtpiB22xg/Y4HPbY2j22dl9/6x6htXts7R5bu8fW7rG1e2ztHlu7x9busbX7b7U2Doc9Doc9Doc9
Doegyq4TEekeke4R6R6R7hHpHpEeEekRkR4R6RGRHhHpEZEeEekRkR4R6RGRnhHpGZGeEekZkZ4R
6RmRnhHpGZGeEekZkaaINEWkMUghZLVdJyLSFJGmiDRFpCkiTRFpjkhzRBqjJ474lCM+5c5Q6R//
8jwoX1qAH7aifWkTfliPtXLmS0tyvOaPR/6GfXl5tXlVt2lbflih9uVBH9e314+3b9iX5utYvlGW
+Sy3hyeckEByndjjiSOeOOOJFE+EnjxjQMgZA0LOGBByxoCQMwaEnDEg5IwBIWcMCDljQMgZA0LO
GBByxoCQMwaEnDEg5IwBIWcMCDljQMgZA0LOGBASMks+TkRD5YyGyhkNlTMaKmc0VM7ITGdkpjMy
0xmZ6YzMdEZmOiMznZGZzshMZ2SmMzLTGZnpjMx0RmY6IzOdkZnOyExnZKYzMtMZmemMzHRGZjoj
M52Rmc7ITGdkpjMy0xmZ6YzMdEZmOiMznZGZzshMZ2SmMzLTGZnpjMx0RmY6IzOdkZnOyExnZKYz
MtMZmemMzHRGZjojM52Rmc7ITGdkpjMy0xmZ6YyccUbOOCMznZGZzshMZ2SmM8b1nTGu74xxfSE5
5joRkeaINAekKaqtFNXWvSPvfw8h9nP+pp3fsC9dK+OYjp2RJsfV/o3xpYumb5cL5Too36hfelSG
fWN86aLpH4To98nfqF/++IMWnRnHOZ1IF542ydc59+M+Y5143FfzcblD/bjKnTa9f6M4sH16b9oB
m6/TZfQBw+pkc3/6x//jS6jt0/WU5ctH1y/Z/KMtww8+faO4MdDojTaBffC7Ez2dGsUyRbFMUSxT
FMsUxTJFsUxRLFMUyxTFMkWxTFEsUxTLFMUyRbFMUSxTFMsUxTJFsUxRLFMUyxTFMkWxTFEsUxTL
FMUyRbFMUSxTFMsczYu8/NYvjv/HiFSbwD4eNL684QdyW+dVU5LydAZfxu/G0+uUrfksROoDRsOI
dk/tv2ODf5wpJ49Y6edlCqu3639IxD/aWz6X4xzFJUdxyVFcchSXHMXlt4LAcxSXHMUlR3HJUVxy
FJccxSVHcclRXHIUlxzFJUdxyVFc8m+JS2SxHFksRxYLQXqv9dP7mtl14hVPLPHEGk9s8cQeTxzx
xBlPpHgiIn1FpK+I9BWRviLSV0T6ikhfEekrIn1FpK+IdIlIl4h0iUiXiHSJSJeIdIlIl4h0iUiX
iHSNSNeIdI1I14h0jUjXiHSNSNeIdI1I14h0i0i3iHSLSLeIdItIt4h0i0i3iHSLSLeI9MuZ1le3
zwcJC9eTY5fssUv22CV77JI9dskeu2SPXbLHLtljlxzx5R0R6RGRHhHpEZEeEekRkR4R6RGRHhHp
GZGeEekZkZ4R6RmRnhHpGZGeEekZkZ4RaYpIU0SaItIUkaaINEWkKSJNEWmKSFNEmiPSHJHmiDRH
pDkizRFpjkhzRJoj0kiGr0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iG
r0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iG
r0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iGr0iGIWTxOhGR
Ro56RY56RY56RY56RY56RY56RY56RY56RY56RY56RY56RY56RY56RY56RY56RY56RY56RY56RY56
RY56RY56RY56RY56RY56RY56RY56RY56RY56RY56RY56RY56RY56RTp5RTp5RTpZ4rtd4rtd4rtd
4rtd4ptb4ptb4ota4ota4ntZ4mtY4mtYYp8usU+X2KdL7NMl9ukS+3SJvL9E3l8i7y+R95fI+0t8
UUt8UctvvajI+zFFe40p2mtM0f44EZFG3l8i7y+R99fI+2vk/TXy/hp5f428v0bej8nkHyfOeCLF
ExHpO+8fexgOx76+C/J14ognzngixRM5nPitp7wPuuvEEk+s8cQWT0SkKSJNEWmKSFNEmiPSHJHm
iDRHpDkizRFpjkhzRJoj0hyQbp8+xROveGKJJ9Z4Yosn9njiiCfOeCLFExFpHHTbKyJ9RaSviPQV
kb4i0ldE+opIXxHpKyJdItIlIl0i0iUiXSLSJSJdItIlIl0i0iUiXSPSNSJdI9I1Il0j0jUiXSPS
NSJdI1IZm2Ujini7MnfnwcLByoF+s3NwcHBykDjIHBQOeFapHDQOOgdjHngQyHUAHgOPgcfAY+Ax
8Bh4DDwGHgOPgcfAY+BxXzn9dMb3dcb3Jba/rqUJlSZUmlBpQqUJdfv8NlH33sG3109pZKWRlUZW
GllppHvrdZv45tNnb77qgG6odEPltVTa5MsK3Cbqxk268foprW602lcX5m/3qAP3qAP3qAP3qL/2
qJ32qJ32qJ32qJ32qJ32qJ32qJ32L7XT76a6/BPc+wT3PsG9T3DvE9z7BPc+wb1PcO8T3PsE9z7B
vU9w7xPc+wT3PsG9T3DvE9z7BPc+wb1PcO8T3PsE9z7Bvf/Twb1f++LlTyzwEwv8xAI/scBPLPAT
C/zEAj+xwE8s8BML/MQCP7HATyzwEwv8xAI/scBPLPATC/zEAv+vjgX+nbsJ/+IPvvOtDwTf/+Kf
f/XxxX/9+Re/+Omvfv7XX/ziv/7NFz/+4W/+j5/95v/6yS/+z2uV4P8O6f/tDX79kx9fV/zcv/gv
v/zRT7746a9++V9++i8fQH/0N1/84otf/+xHH7/+P/7hF//tysX/ge740S9++l9+9PP/8jHF/LI3
/tcEXf/P4/p//b+/+9N/+uK/3QN3v14n//6HP/+nL37xi59/8bOf/vyXHz34H7n4373sP1qB4n+o
Q37+nw3hf+ZV/vsd/J8op2EA/GcN/v/Pj/7pb7749X92j/773fO765j/QQlU5/zvAfcz+fhdDrx/
J6Xkwx6b5lbB3CqYWwVzq2BuFcytgrlVMLcK5lbB3CqYWwVzq2BuFcytgrlVMLfKNLeuA/BU8FTw
VPBU8FTwVPBU8FTwVPBU8FTwVPBU8FTwVPBU8DTwNPA08DTwNPA08DTwNPA08DTwNPA08DTwNPA0
8DTwdPB08HTwdPB08HTwdPB08HTwdPB08HTwdPB08HTwdPAM8AzwDPB4wMmH8T9nFsbMglDx62Dj
YOfg4ODkIHGQOSgcGAeVg8ZB52DMgznUjaFuDHVjqBtD3RjqxlA3hrox1I2hbgx1Y6gTT3cdgMfA
Y+Cp4KngqeCp4KngqeCp4KngqeCp4KngqeCp4KngqeCp4GngaeBp4GngaeBp4GngaeBp4GngaeBp
4GngaeBp4Gng6eDp4Ong6eDp4Ong6eDp4Ong6eDp4Ong6eDp4Ong6eAZ4BngGeDRUB/gGeAZxzO/
jvPr/9hk+T82Ff6PTXT/nWns5z6TBp4GngaeBp4GngaeppkyeBp4GngaeDp4Ong6eDp4Ong6eDp4
Ong6eDp4Ong6eDp4Ong6eDp4BngGeAZ4BngGeAZ4JAUDPAM8AzwDPAM8AzwDPMPxZEZvZvRmRm9m
9GZGb2b0ZkZvZvRmRm9m9BJLeR1UDhoHevqYB3P0ZkZvZvRmRm9m9GZGb2b0ZkZvZvRmRi9RmtcB
eOboXe4duoyNuYyNuYyNuYyNuYyNuYyNwoyNwoyNwoyNwoyNwoyNwoyNwoyNwoyNwgwYlY3CKngq
eCp4KngqeCp4KngqeCp4Kniq9k9TJziMkx+f/Pjkxyc/PpH3kwaeNPBEBk9k8LzvPHvspMdOeuxE
A5xogBMNcKIBTjTAieY/0fwnmv9E4Z/o8BMdfqLDT3T4iQ4/0eEnA+BkAJwMgJMBcMIgJwxywiAn
DHLyck9eLqHO1wHt6tync5/O0ztP73o6UCtQKz+u/Ljy4wrUykMrD608tPLQqvfOIxqPaDyi8YjG
Ixotnbp3uaF2dbhayg2n0lvulho/7uoxMBu92nlW1xjTfWjpfaAOz+8R8kqaJPq9IeYfj/ZW3MHz
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
vtghtbKj9ZAfQKtLpBMqQEmbrms6UOVvIWaks9lSlxNe6WkLo5fwnznGFL5a7qzqjmWuWGDFrA2W
kGRUDPm1EmNeVgEOUsP81tZ3VRHNCisg360zFVIoVkMjTUOo02PkqY3XnStxe5IJsK8E4Bj7b2mj
xHuBhqm0oiQ6kRSKWzeCKCszjmk242Cv5d4yaqjIgNYQZVHjQL6XdZTQx4pPlQVCiGslgF2BRepM
hbQrsctkdBGsMZRHTMikts8xXCjTs0QI3mA/wsFMs457V7POynNVxAorR9qPcGi3Wm2eTMhAxb+h
DUQb42fgUm6sTVTcj3IRdAHDT2uoi2le9jv17N7tT2yFW6zKKNUiFxPwyZUHnlK5sxKLOBve5uOz
HGG81oq1V/7LUEexblW1SKGIS/SY9jbWKpX8USqsURgbE3y/N9UrdELT7l9MMAeGxz1bV0JNgx1k
j9GughQo8s7YeK8pzJOI1Dl5PO8NIKvmlQTBmQYb4bTaMV55u9PxAmk2vWWidQb7XY3z3gz8DmdT
fqLyml+QpubCWq6SPwoX9z3GCGCvrFNrn86Oha8134qWaCi0oo3liB7S3r13UgseaXneCjI4mEFX
+qdjVBiJt3cCDc40Q1F3DTZmN501RBUwKWznbAwbWV9VlUMKbddGd3JQaBmO+KZJQOtnW6yzQ+Gc
Vrxuk8bIVO1EPHU29DK01p2vwJShq5QEVndjM2Ajkr0wH+zaAbQBVZkQMlNlUbOMIoeStjM0mU+E
xRUeqi08p6HI3tjD7uDrTsaJqq8YFRskF4OF1EpBlcq0q+EzVxWXQVykaguoQIdi9h1PpXhCz3f+
uJYJqrzoeE7ujdi13zkTqKFkpvVrX9Loif55on+e6J8n+ueJ/nmif57onyf654n+eaJ/nuifJ/rn
if55on+e6J8n+ueJ/vnKo3++riWNnvCiJ7zoCS96woue8KInvOgJL3rCi57woie86AkvesKLnvCi
J7zoCS96woue8KKvPLzod1nS6N+JKOp216GTR1t7F1T5FiRZg/Jqei/YZgX9WahyW4kjKVQ661o5
0KyKpdDCqsnNyNSwLppeMczuCvG6Ck+iKqsWLMNK2a/JbirJveKJ5qpr4YGaXLeLTHEkA76j6HOn
hqyKqQ3N4FjmnEsjx2eqTPIoPcP0YWgFHZEvWiVl+dbwh1ZWQLXtQ9VeZKpRqAgMWVmqoSbXBFv3
dKaEinkq7K5wOxAqDdTmS4QIVIRF9fIbxeO1CViVDxc9PB96fmbwsD7UWILS3kSqH6dt3LT1QZEP
kBWju9yb6rXBU8LcWEu4l1gof1nZGkKhRVVl4yjFXlk2UxRdVxVgVn/vetAZrgdPwS9fRJd4kBTN
YNLVVBuUyDTW6grl0as2DqIPB3KqyBsNicaSRsdH2pnLDwJTbkNXGwJgacjJWSg8WliBEBEXohma
ClnKTUTwXCFyouHXvStWs5yjknlVe6NRIG9gLxVmDZ3FyKnh7bNd4LRhHTTXqFGo/RKlLgpTlcqP
uzZ6YqnYcN5Od9Nxe9iKCoLjqOn0T2V3DtlLg+3gOgvV2hCyqsC05o84jqaCpQhsT3d5UG1z1+W0
ZzOojlensJmhqa69/AYIkfHjRplR9eGcX3+69/AxpsPahaky77sDgECosvj3ZBzd2zDJDOOqM1Gq
bLGlrbo6a/NVm96grCrOwNsbQ/DB1Ejlfk1T8D9hcny6dz0qKPyBlqhETlSZAXjq5PqrOEYUhlLZ
irOxK0thbBhlWAtrfk31l/EAdG0ix+vW1EB7M2qVtCqYhviYjguxaYcczK3B2pjEXDFPnRW+QiRZ
kzEshpUTRpVwmXndtqIKa7L0eO8DyYZ+GgBDtZ5hvcaOAmKQof1MUKezXfUzRyj+2EG97CGuZIOU
LkajdrlCPwuOUAXc3LuT4ZvqilXSHqEK3DFsEt5yo871PXNf0T8K+SXq6BZzuWohTUXaGTOUjrF0
Dy1ttYT7Qjt0dbzchdnZ4KvC+9LUsjJnGdrJisX1TjX8puKt2AAV43xoTqd5FhaIdidTNEPDZ2ta
O6DoqvpwUJ1fDnANyEopf8OlYIRQaCld2wAanrFOeFZhRBkRlhWj4l7EVAwoXkHti9Bwe3a5qbWN
AauHKnM8nQxQ9jWv0RqfVtA7cxYFFuDYb4rnhhDVG0aQ/fS+js92ECLExJjTaXcHbfU2VA+awFxt
RSProhBhYBRVV032yi6UFVetEV8lC0QsU2SQM7AL+9B2BTowm9CGMYONy7Qo1tjpVGtY2nDV2KTE
KCjfCevU8r+26lHwU+elKLSosgmYNrCSR30WEVYkx8add1x/r8/2OOGqwTpy1SaEmqIeKBlcbfJW
3f5heasEjHgLRd4MgnIkcaa9rVT890QuiMJUzOW9EZY2uUFOO/xeIE1Fb98V4RGQIsZX4gTblHWN
BK3SEojfWK6VkdPR4do7YeA4apgHHS9K115tbJA7tNsEftQKX2jbJO3Bq224Cq5+1Qq/t1rBalJ0
Tidsca44DOZovMEreoHI4y6BJTis4mTocLfChoZyaaitbDRQ28ENEfTATmBW0pQDwwY/VZXKNQ41
tFhhbIRw3DujaC6MyGj/kqaS00xzlCYxF/u09HDcgV/3aos2HSU55yZEXNDavKewIHjvaaQQbTE+
MWpNwfG8gsGSQcc00obqFY9NE/VrAwD0mPZ9Ldq1ggwleYO1sYFcdsbqmMmu0xZNuN/r8Z+aUvbf
ihHq8kWs95bg2pNZ0XVSCPf+8xozX3aFIf6GRZFexf8Yp1f/XP1P4/TGwc7BwcHpP+3+Z/ifb/qf
b/mf3+O3iYPMQeFACCoHenjnYN789+dnF1FjdmdE5Bgr68ZyUXp92/98h9O7f/4D//Nd//OHfHv4
5z/yP9/zP9/3P3/sf/7E//yp//kzrjw5SP7Fn/OZFhst9jeZXn/hf37gf/7S//zQ//yV//lrLqFv
fLCn19/4ny84PV/C3/qfv/M/f8+3s/t+5H/+wf/8o//5sf/5if/5J//zU//zM//zz/7n5/N2rjvT
6xd8fvnnX/qfX/mff/E//+p/fu1/fsMlcxD+m/+5/s0D3mNdOaODjQOGYtWZg4OTg8RB5qBwYBxU
DhoHnYPZY9/InzgAYV44AFgGRt45AE8GT0YAqsDrNyDMDJCqq4Caef9V99FVSEulgZlWZFpRaEWh
FUX9jPhVeqMgQVV3Rg6lTZpuSNulHxoi2XhE44ZNP6bt6JBbQTT6sNDAQrukKZouF2beYKHtqIyp
KxL7NKbXrSsaMtsYLdIeDaltvJTGu0CxSJVIa0wlkF5SArf0N95go1cbUKUYmjDrWVzV0XhdraDJ
pvtwOQIqyZS8TbEy1ryNdbuE89RwKBjcY7ioEu7U9LpHb6UPO22vtL3S9q4zvMpKA6sayOuutKvS
Lo26zuUafo0GNhrYaI4Gm0aUho3eewdGY/h1RlQDT9ND9WP9Bqh6lXqD9/vidXd+ozd4vwJdBXi9
gsF9hq7ipQya3GHkoct5F512Dd1Ql9Mbndc0dBUDcuhyekM9po7qdMLdQN7X0H24avDiBlpicB81
R624MfOIGzzPUisEfjDYhHnCQPvZSzbQBGYvmT8Tj32m2e6n+0MXHxCLt2lx/EvjMh9ty/ytv9nl
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
BvIkUz4gHffA1njuvEoNbI1eDdrO5Rq9jeZoZDaa02iOBmQDfAOqxphGlIZNA6HeewNYA5hedweP
Xpxek95FB4868+46vVyepc7sjPnO09VR6o37coB19aoQ6nL9hq8G4GVzDMbhoDmyOQbtks0xaOCg
gYMGDjp8MFoGI2owxu7f8C4GDZTNMeiNwUsZdNRABu/LvYGn987pV5z++9N74Zw/8R44nfVP98af
Tvbn73NfR3O65+B0sj+d7E8n+9PJ/nSyP53sT3cYnO4wOJ2/T+fv0/n7dP4+nb9Pn76fztanT99P
J+nTSfr06fvp3Hw6N5/Ozadz8+ncfDo3nz5ZP52ST6fk0yn59Bn56Ux8OhOfzsTnL2j97EWn5NMp
+fwXvp2d69x8Ojefv/nKK688cR9P3McT9/HEfTxxH0/cxxP38cR9PHEfT9zHE/fxxH08cR9P3McT
9/HEfXzVcR9f48ojT5TIEyXyRIk8USJPlMgTJfJEiTxRIk+UyBMl8kSJPFEiT5TIEyXyRIk8USJf
XZTI17SGiGkR6HS74cRuOLEbTuyGE7vhxG44p91g62djrvOVj2+5uU9MihOT4sSkODEpTkyKE5Pi
xKQ4p0lhuMtN7vITI+OkWJQc6CfWxom1ceI2kG/9xOw4MTtOvAUn3oITk+LEpDjxFpxYEvLRn1Sz
lLP+xH8gr/2JSXHiPzjvjipgVgOLMGcOgKFWTLtBvv7zfvq0EvD+m7z/J+bC+dkNdTnv4v4x76Lo
XahdNGfOb1hFuM7wUowGGg00Gmi8L6M5RmcaA+m+ij40wBvgDfAGeAO8Ad6AWkFYAVZ5RAVYBVgF
WAVYpXsreCp4prW63Q2sAKsAqwCrAKsAawBr6jpgNBA27tz0FQgbCBsIGwgbCBs91gDWANYA1gDW
ANYB1umxDp4Ong6eDp4Ong6eDp4Ong6eDp7OWNWQ6ADrAOuMQ42WAcIBwoG6MJ4+gDqAOnjE0H30
Y6AORM+QJg0/KEHaX1qVyT3bcKWp8qbCm+puKruEMJmGz/yZ939yVk7OyslZOfkUPH2bS+YtnZWT
s3JyVk7OyslZOTkrp+9zJVprSkpynk7O0+lP+XaCccJOTtjJCTs5YScn7PTDeUlFJ0xBS07h6a85
7YMoOZcn5/L0t3y7coAWnLKYnOaT03xymk9O8+kf+S1qcYpr+jGf/cWmn/CZ9zst8uQ2QXKbIP2M
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
7eilGHdW96ozjSGqPqx0QmXQqlerDujeqgbylo22q+dNX9GuqnYxsBu9WmmgOlNdV2lXpV2VYdN0
FQ1Ub1QaqOZUZLACtQJVrahAFTA9oiEXDYQNhA2EDYSNnm8AawBrAGsAawBrAGsAawBrAOsA6wDr
4Ong6eDp4Ong6eDp4Ong6eDp4Ong6eDp4OngGeAZ4BngGeAZjPnGoFWPDRAOvVOdAeoA6mCIqnsH
o1f9jDUhw2HaAdeBg3/pmsSBd8GLYT7fzIvR3vSF3/Pld3zN+3lXvL7Jj5CNhszPl/dyq+X1e/P0
fJUvN19ebr68vsO33p+vP/A/3/U/bqO83EZ5uY3ychvl9cdcyUidA+KF1dJ5Dx3dM8fFy82X15/5
H7daXm61vH7gf/6SSzBB5gh6ufny+itOz850O+bldszrC76dXfu3/ufv/M/f+x+3UV7/4H/cInm5
RfJyi+TlFsnrp9yON9N5V3Oovn7G5/mS3Gp5udXycqvl9Ut+NF+Qmy8vN19ebr683Hx5ufnycvPl
hfnywnx5Yb68MF9e0zdwHRwcnBwkDjIHhQPjoHLQOOgcTMAYBC8Mgtc0CK4D8GTwZF77QBEPXYX4
DQbP0OVgzmCWrTB0Z2Rq0ORMKzKtyLQi04oMDUj4B88qQshDZTQMeqzQ0gLUAp4CjELPy3Ie9HPR
nXVDtQLwRQe0otCKQisK78J4F0avGggNhAZCA6GB0Gi7AUyGzmB0D55utMJAaCA0/QaEBsIKwgrC
CsIKwgrCCsIKwgrCCsJK11XwVPBU8FTwVPBU8DTwNPA08DTwNPA08DTwNPA08KDJpcJv3Y32lxKH
ZV8oarY2uM6AEB2Nezzfo67rAKgdqB2o6Fd49yWtiW8g36N3LjnnexhP9Zbv8dwBj56TgpMSg5Jf
7GKUbykYYJZ0T25m84XrDM8auurkN4CXVEoYJVaSnQFUDdr5Cha10y9e1Eq/x+IXLn7ZMi/y1i3u
AFicShd3ACy/zw10p8rBvMm3+Tzv9h3/8wecHvNgmt7sD2HsD5EXJ+DFCXhxAl6cgJfv89uVA3+D
yx/z2ft0+RM+e9cuzruL8+7y53zrr2L5Cz4nDmaHOSUv7j9Yfsi3s/vckbA4AS9/w7f+Xhb3KCxO
wIsT8OIEvDgBL07AixPw8mNuMF/LT/g8u9YpeXEnweJOgsXpdnG6XZxuF3cSLL/iBvNdON0uTreL
0+3idLs43S7Q7QLdLtDtAt0u0O0C3S7Q7QLdLtDtAt0u0O0C3S7Q7QLdLtDtAt0u0O0C3S7Q7QLd
Lky7F8iV3T6uMwDLAMuog6pHgDCDMDOqq54O1AzUzCMK9yn8uAC1rF9pVZHrifRJoU8K76jQFYWu
QC1IH0DDCzS8SK4l0LcIV5pp9IDRA9O3wZYq1xkdgHDGGbDbynUGqMglDL1IICV7EjNcEWzWcp0B
s8E3VXfmrent6xWrOcIsYLpzZYBVEN4HQK0aYDoD5grmKsy0q4K50s8VqA2oDagNqA09qEc0MDd1
Lw9tdEIDcwNhA0bTfXQVI6GBsIGwgbCDsIOwg7DTmR1gnc7s4Ong6eDp4Ong6eDp4Ong6eDp4Bng
GeAZ4BngGeAZ4BngGeAZ4Bl6p3pxPH2AcMCJeoMDqNNDzq4/lu93Ohii8+WufrvVm7v6HVZ/2Krf
Il7TeFt1W4wMvf350tdv8tnbtn6Lz97E1Ql+heAbDW7YEI3mNbpgDojV59PrdzgtlKDqcL1suzk8
Vp9zr075q1P++kf8iME9h876PT77G1uxBuZAWn3tYP0T//OnfDtb7Ny/wv0drp9jbfVZ+PoDTs8X
4dy/+uR7/Su+ne/HuX/1yffqlL865a9O+atT/vojrqT75vhd/4HP9Fun3+YwXt0+WH2CvmIWzLG9
ulmw/pTTjI050lc3FNZ/5vTsTLcYVrcYVrcYVp+Xr24orG4orG4orG4orG4orBgKK4bCyio+uydd
ZzYOdObg4OQgcZA5KBwYB5WDxkHnYMyDaTGsWAwrFsOKxbBiMaxYDCuO+hVDYcVQWKehcB2AJ4Mn
gyeDJ4Mng6eAp4CngKeAp4CngKeAp4CngKcgkgMSGvoNCGWXD10F1IIOki4buoqRN2hgoRVGK4xW
GK2QDT4Y0YPeMNTQoFsm2bP9j5W7N4wmG80xwBuvYDrP2SLIyt11BuZpB5S7M014Ol8dHOhZtLTS
0kpLKwgr76vy0KrmJA6AWvUIYTYOeBeVp1daWnU5L6XSrqp2NQ7o1UoDqxqo5nDQaFej5/VOGw2E
RrAeVnwAq/hDxCHGgCPKPTYaTZ72H9sjGdsjXb+hXY3eaLTL9FAaOCmk3IOkA77z0K5ngbDTHIhD
jCGqECtgc6ziAWl+KXlsjlU6G5tjxeZYpayll7E5Vmli6d5bQw7wSJYluUPdyxgznQHhUIcDVSI8
wDzUvTrj4De/y+ZXbP7t5i3c5k/U/7rJ/OKbfPb2b9+an6cYbW5PbO5y39xE2NwZsDnrb9/lEu+w
zel/8xn/9j2+9V7c3Pe+OcdvzvGbT+s3p/bN3embE/nmc/fN+Xtz/t58yr45bW9O25vT9va3PNFf
1+b8vTl/bz5l33zKvjklb07J20+40t/v5pS8+Ux9cwLefKa+Oe9uzrub8+7mvLs5727Ou5vz7ua8
uznvbvDuBu9uTNA36HaDbrdJt8YGX9eZk4PEQeagcGAcVA54/dJuVffpHDBWKneelLxByRuL6Owh
dp0BfAZ8Burk5g1u3uDmjUk8W5AZW5BdX9GKrDO0YrL1BltvsPUGW2+w9QY/bTflVO5TgFqAKl6p
PKKAuYC50OQCwgLCojvrchAWEBoIDYQGQqMPDWAGMKMPDTwGHgOPgcfAY+CR2ItgqvCA0HjvDYRV
B1COuKcxABq92sBcl6+8TskTXfJElzzRJU90yRNd8kSXPNElT3TJE13yRJc80SVPdMkTXfJElzzR
JU90ydc9uuRrXL3kiUV5YlGeWJQnFuWJRXliUZ5YlCcW5YlFeWJRnliUJxbliUV5YlGeWJQnFuXr
HovydayHcrlVqNGbKcSbKcSbT++703vu9J+d/qNz/sR77HT36+nu19P14+n68XT9eLp+PF0/nj4r
Ol0tnq4WT1eL7L+TT1eLp6vF09Xi6WrxdLV4ulo8XS2erhZPV4unq8XT1eLpavF0tXi6Wjx9NnO6
NjxdG56uDU/Xhqdrw9O14enrjacrwdOV4OlK8HQleP6cVsy+cW14ujY8XRuerg1P14ana8PTteHp
2vBEG55owxNteKINT7ThyeTjRAmeKMETJXiiBE+U4DmVoLHB0XWmcdA5mO1A5Z2ovBOVp22R2ATp
+gqorvuMvY+uM2DOYHYlaGyLdJ0BfAZ8BnwG/NR9J7rvnLrP2FXpOgP4uXLIPktZVabZcClTbjpT
XDpTQzpTEjpTEjpTCzpTCzpTCzpTSjlTSjlTPDlT2jhT0zhTyTdTyTdTtzdTnDdTXTdTXTdTVDdT
VDdTVDdTJzdTJzdTJzdTFTdT+jZTuzZTuzZTsjZTqTZTczZTczZTYTZTRjZTBzZTBzZT/jVT/jVT
/jVTyDVTrTVTQTVTODWf0gESo3uINvBosGloafxoAOh16y038DTwNPA08DTwNPA08DTwdPB08HTw
dPB08HTwdPB08HTwdPB08HTwdPB08HTwdPAM8AzwDPAM8AzwDPAM8AzwDPAM8AzwTDeg3X04ADYA
Nslj6pqpaaaxNZXLVC1TsSQnj+TkkZw8kpNHcvJITh7JySM5eSQnj+TkkSCP+VaTk0dy8khOHsnJ
Izl5pD/nkonVWSQ5i6S/5NvZBKeT5HSS/ppvZ8ucV5LzSnJeSc4ryXklOa+kf+DKxsHsDmea5EyT
nGmSM01ypknONMmZJrm5nZxgkhNMcoJJTjDJCSY5wSQnmOQEkyCYBMEkCCZBMAmCSRBMgmASBJMg
mATBJAgmYWUneCXBKwleSfBKglcS3q0EiyQs6AR5JFbP2N7O2N7u+gqEszoqG95dZ4CagZoZ010P
BXMGcwZzBnPhWYU7F7hwunbZSi+r6CB76mWqDxqb62UVHlSNQUoGZpUMVK1AFQlkSz5jS75M2UBj
bz5jb75M6cBM6UDTbn1s0mds0mds0pcJRM4KRFbYsWKLFRzMjn7Gjn6ZcGFjaz9jaz9ja7+sAGLF
DSsCmF3/skKBCfw19gE09gHMRABnRQCzM2AmFDgTCpwJBTY2DcyE+WaF+Sq6l6DerKBehfAqcpc9
B409B7Niee3Wm4N+HgytCvgK1AqeSnOqbqj7uKFT7+FXadeMwWXDt6xgXOJrM/G1xl5wWSGzCmMl
KDMrKFMhmIqzJLzS2ErO6j2MZxRlvcfzdKnVe2Cjd6VipU3h3STliJjXWxwk75Lu6S6rt6R0WiFh
nEGO7F+X0y2DHWCSpq776MdAnSLD9ndZMYbplp1Ohw91OA0cYB50uMRBY37QmdMrzn56xn56xn56
xn56Vm+p1OAfvAujf0zP4qUYb1AyqGE8aOAQeGAYwCSeGpmmh+oRfsOpeacZP5Vt1h3nad2Gbp6W
6tTA+Zuc9r7Obj1ktx7y7/Pt/LWbEdnNiOxmRHYzIrsZkd2MyN+bV1a6c4p+/j6f6cO5uyu7Aubs
pkZ2UyO7qZHd1Mg+T81/wSUMwin+2W2O/Jec9u7MbnNktznyX/OtD8/sNkd2myO7zZHd5shuc2S3
OfI/cCXvYqqU/I98Ng7o72mJZzdHspsj2c2R7OZIdnMk/zOXzHfhdkl2uyT/8qurWXKl4Gzyccpl
eXsI5eJrLHI0nEizbHZhorCxb0XB2t1uz17FrVRZ/9CCQdNXrG00XE9yoFX8S/I4yb/U8IA1PGC3
NwnPldxKjXapFQIvzA3MAiY89w0B1nCF3WdA2EHYQdhB2OnwDrCu7qWlHYQdhB2EHYQdhB2EHYQd
PF03BNgA2ADYANgA2ADYoMcGeAZ4BngGeAZ4BngGeAZ45nRn95/uGg44Dme37X7hjs9xduI+r/a2
7Cw8zJ7dXantrtR2nxLtrst212W767Ldddnuumx3XbZ7GOLuM6H9j7m5d8ruemp3PbW7ntpdT+0+
E9p/wCXefbs71nbXSvtf8a336e4ett210v4F33pH766edldPu6un3dXT7q623SdA+4+50t/M7qpn
/ydO+3vaf8pnf127K6Pd50a766DdddDuc6P9V1yCZ30OtN1nS/u/cnq+LZ827T5t2v+Nb/3d78yf
duZPO/OnnfnTzvxpZ/60z/nTdR+EbQ7lnc0iC2N6Z2q1M7XamVrtTK12plY7U6udqdXO1GpnarUz
tdqZWu1MrXamVjt+uZ2J1I47bmf+tDN/2nHH7UybdqZNO9OmnWnTzrRpx27dsVJ3TNEdn9uOLblj
Qu5Yjjs24I6ht2PN7ZhjO8G+hZlHQS/seOF2zKiCptiZ5ezMcnZCfgtKZL9XgAcIjctNv9FXgDfe
+4CEBs3RKuigXVoO1UqplkMHDTSabDrDK9DaxlAn0GTjpWhtAxXGdGfH5tkxdux+X5X5nF5cpcmV
JleaXGlgZdKmqbDecmXaVJgtFSZ/et2VllZaWmlppV0V32/Rs3RnXc7LbXiDNVoaDWy0qwkqz2pg
brS00dIG1MYbbIzMxmRU0+5Chzfmc4V5swHMhEdPp6VNl9McSIYgNLtn5BqZcIr0v7S6FLh0tVSv
lK20LCS9S3dKW96KsYNQ/gDJhTTboIGSSsmgBE3yNQAmkZGkDIANgElABsA0+OdQP/ynh//wmAtg
c/lr/sT79nDn5OFMfDgTH87EhzPx4Ux8OBMfzsSHM/HhTHw4Ex/OxIdPFA4n4MMJ+HACPpyAj7+g
3xCKqUYOnygcOCfnvOtwSj7+itPIwHSJHM7Nh3Pz4TOGwyn5cEo+nJKPH3Hl7CPn5uMfOc2QNVwZ
c2J2+EThcLY+fKJw+EThcG4+/plLZh87SR9O0oeT9OEOzMMp+XAH5uFMfDgTH/82FyonAR8Q8AEB
HxDwAQEfEPCBA/PAgXnAsgcse0yWvaAOzrBMmlgmnXR7QLcHdHtMur0WAZHnCtQM1AzUDNQM1AzU
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
mYPCAaZB01WVg8ZB52B2JSJxQAUHknAgCQeScCAJB5JwIAkHknAgCQeScCAJB5JwIAnHlIQLs+4D
sCkSp9/l9HucfofTrz91tT/89GtPl43zW3zriE4XktOF5MRwmm7g06XldGk5XVpOl5bTpeV0aTlR
/E0dPlG5/Jyu70+XltP1/elCcrqQnK7mT5eN02XjdNk4XTZOl43TZeN0NX+6mj9dzZ+u5k8f7qcP
99OH++lq/vynr7RORjldik6XotOl6HQpOp1GThee04XndOE5/5WunG/Wpeh0KTpdik6k6ESKztuO
ahoLg682DrDXp7fpRK5O5OrEwbDgAzoRsBMBO6GaE7k6kasTuTpxAy5EECw4+k8k7UTSTtbqFpwZ
JyJ3InInIncicicid06Ruy7Xb8CcwZzBnMGcwZzBnOmxKXKzwbO5s7GzqbOhU30kl7TkLJRcwJIL
WELAOja8+0pKcklLLmnJJS25pCWXtOSSlpyXkstVcrlKLlfJ5Sq5XCWXq+RylVyukstVcrlKLlfJ
5Sq5XCWXq+RylVyukstVcrlKLlfJ5Sq5XCUnjeTDPflwTz7ckw/3BGlMz1DycZ983Ccf98lJI/lw
Tz7ckw/3xHBPDPcEaSQGd4IrEmM6MaYTXJEYyomhnBjKiaGcGMqJoZygiMTATQzcBEUkxmvCIbbg
9UoM3MTATQzcBFckxmtivCbGa2K8JsZrYrwmxmtivM6L56XzwnnZvGhekn28Zh+v2cdr9vGa3WrK
Pjqzj87sozP/Ia2bj/Jhmn2YZh+m2Ydp9mGafZhmH6bZh2n2YZp9mGYfptmHafZhmn2YZmbA06GX
fbxmbKTpycuYRtM/l30EZx/B2Udw9hGcfQRnH8HZR3D2EZx9BGcfwdlHcHaFnX3g+o5bxXfcKr7j
VvGNtopvtFV8o63CRluFjbYKG20VNtoqbLRV2GirsNFWYaOtwkZbhf21CvtrFfbXKuyvVdhfq+TP
dDCcMN2LbKtV8j0BGDoD1AxUjelBczKYM5gzmDOYM5gZljipFtyOC25H9s4q7J1V8m0RDT1dD6UV
c9xPh5FcQgNFO3CWTA/c9BXJRTTjbeQpmk64Qr9NF5xvfVN8x5vi+9sU39am+LY2xbe1Kb6tzXUl
k/PphvONbq7P/qwV39tK0O1K6IpvhlN8M5zim+EU3wyn+GY41283DrxTfHuc4tvjXKf9vfg+OcX3
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
Us3Lo5qXRzUvj2peFdW8Kqp5VVTzqqjmVVHNq6KaV0U1r4FqXvrUvOKpeaFT80Kn5oVOzQudmpc1
NS9ral7W9HoTGqvzhbkAe6HT6/R8gS7JXujUDuR2uoa84un12Qeqlz41L31qXvrUvPSpHbe4NsR1
+lYohnqdYVi7z+Q6OPiNfrxxsHOg35wcIGbTxbLjYqFgqh03bTadMQ4qB3RTK5zpHMweQlypnGpU
TjUqp9pxi2tDjTYekdXSxhnUR+NZmXZlWpHBnAGWAT99EjteCsqsGmVWjeqqH7/pgJ+y7WVWzcus
mpdZNS+zal5m1by6qnl1VfPqquZFVc2LqpoXVTWvpWpeS9W8lur1TO8nL6pqXlTVvKiqeVFV8xKq
5iVUzUuoXld6x3otVfNaqua1VK9vvbe9qKp5UVXzoqrmRVXNi6qaF1U1L6pqXlTVvKiqeVFV86Kq
5kVVzYuqmhdVNS+qaqeLllcvNa9eal691Lx6qXn1UvPqpXYiP53hML01Xs/UZj3THVeM1zM1r2dq
Jybl9MFQ2NQobGoUNjXKmBplTI3qpUb10us+CMl0hpy32ExfB/VMrzPGGX2lM5UDpKXrDLzXG2fm
6EFsKGx6/aZzhuZkmpNpTqY5meZkemPKBvVMjXqmRj1To56pUc/UqGdq1DM16pnabOds5WzjnHRO
JTDb4vVMLcFy03XghU3NC5uaFzY1L2NqXsbUvIypeRlT8zKm5mVMzcuYmpcxNS9jal7G1LyMqXkZ
U/MypuZlTM3LmJqXMTUvY2pextS8jKl5GVPzMqbmZUzNy5hawlycLg6vZ2pez9S8nun1rQ89L2xq
XtjUvLCpeWFT88Km5oVNzQubmtczNa9nal7P1LyeqXk9U/N6ppYY7tNRkm4Cma4SKpwaFU6NCqdG
hVOjwqmle9wP/SZxkDkoHBgHlYPGQedgvmeGMqVOjVKnRqlTo9SpUeHUqHBqVDg1KpwaFU6NCqdG
hVOjwqlR4dSocGpUODUqnNq8OEM5A6aZnqB5q4zUThfQvN+8mxc/vb51cF4F1bwKqnkVVPMqqOZV
UM2roFpG3w90yHR/ZGZZ7tswr4t6fZ6AXAC8QKp5gVTzAqnmBVLNC6Rel3gveKVU80qp5pVSzSul
mldKNa+Ual4p1bxSqnmBVPMCqeZ1Uc3LoZqXQzUvh2peDtW8HKp5OVTzcqjm5VAvNLPrXAC8Lqp5
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
7d3WfOkwU+gwU0xYoowIOtUUOtUUdYbpiflAZ5iCo0vB0aXg6FJwdCk4uhTzWObLwMCJpfCJpScB
HJxYCk4sBSeWgoNKwUGl4KBScFAp5ivi5q4NqBtQ63zSk3AQzicFx5KCY0n7b3jXBuYibs4nBeeT
gtNIwWmk4BDS/hygbm6YRefnnnXgjAQ4IwHOSIAzEuCMBDgjAc5IgDMS4IwEOCMBzkiAMxLgjAQ4
IwHOSIAvIhLgPc4zcMYNnHEDZ9zAGTdwxg2ccQNn3MAZN3DGDZxxA2fcwBk3cMYNnHEDZ9zAFxk3
8D7mGdgNBiRWfQFZBhFlWE1lWE1lWE1lWE1lWM039Eumk6zEqsqemsqeun8rrVVpVFNpVFNpVPdv
NUeVT1XZU1PZU1PZU1PZU1PZU1PZU/c77zS0JCuf6v63plSJVVOJVVOJVVOJVVOJVVOJVVOJVVOJ
VVOJVVOJVVOJVbMSqyqfaiqfaiqfaiqfaiqfaiqfaiqfaiqfaiqfaiqfaiqfaiqfaiqfaiqfaiqf
aiqfaiqfaiqfaiqfaiqfapJPNcmnmuRTTfKp7oPBml3JQMiwmm8Odq30IKRaTVKt5ptDXpXhhpyr
Sc7VJOdqknM1nXOVDKv55mBX7bv3BndZKCW31z7nWSagJNVqkmo1SbWapFpNUq0mqVb32yHQsgo5
+apTrT7LTpQkVk0Sq+abg6U7w7sZD/0qtrn4cQJaiVWVT3W/zHRUgMnFjxb6SrX6xEqkVKupVKup
VKupVKupVKt5Qcp1ultWokq+WqlWnyS2rFSryrCayrC6f1tIxWNKtZpKtZqValUZVlMZVvPyXe50
59QZ5TTd/3ZnGP9RoySuq3SnynKaynKaynKaynK636J5UbrTVLrTrHSnldxUGUxTGUxTGUxTGUxT
GUyzMpgqcWkqcWkqcWkqcWkqcWkqcWkqcWkqcWkqcWkqcekOSoSgDKapDKZJBtMkg2mSwTTJYJpk
ME0ymCYZTJMMpkkG0ySDaZLBNMlgmmQwTTKYpjOYkq80na+UNKVJmtJ0mlKykybZSZPspEl20iQ7
aZKdNJ2d1LlInYKUzKNJ5tG8HCJlIIfLSqRcpHllKZDNKCspqVKQ5hUqkukoryYm4VQu0qxcpEpB
mkpBmld4Y8AbMg/lFbEzCgJMog1aKk1pVppSZSdNZSdNZSfNK/JnQP+V3VFpSlNpSvfL6oDylaby
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
7Dy581UHYQdhB2EHYQdhZ8RYLL3seBXxguG1Aek4DzY3d5upzZ7mQTOaGcR8YXYY4DFhD5hoQtjT
zwGhyW/6yUA1+Q2PoV8KZs+Oh3eC2e/ykye8M8F8NDzd9GKyJky6Mxle5BoicCICJyJwYtixVwkf
0vamPtzv0N+pj64P312Xpz6+rI+v6OOr+viaPr6uj29wJ1wsJNsbBSVjBN/efJO/r/r77/XxD/r4
lj6+rY/v6OMfueVG464v/kkf/8zlRX9/Vx/f08f3+fahv3+gjx/q40f6+LE+fqKPt/r4KXc+aaz6
4l/5e9PfP+PvRqNG9wN9/JzLSaPG+xf6+KU+fqWPD/XxkT4+1sev9fFOH5/o41N9/EYf/6aP3+rj
d/r4vT7+XR8lgPfGlcaNxp3G8hc9hvMnj+BQNSweRzhNErqTDt0hwCYJ3UlCd9KhO0QQJeFGSaBO
+sl+Dj/uhBt1Iu0cqONonFKZqVAWVCiLxxGW0wnU6b5CvFCnO51YoE4IUPo3dKcTC9TpRacXnV50
etHpxaAXA8yDCKIBsAGwwUsHwAbABsM7wDPAMwiI8uwMgA2ADYANgE2ATYBNgE2ATYBNgBHEycoY
LIjBghiO3mRBDIdmOhiTPUHJzKKLooqiiaKIoofUniDlDE9tBVJbgdRWILUVSG0FUluB1FYg/4Ex
gnCLXlObg/w2l9WL1C4htUvIf+LbwqvtQmq7kNoupLYLqe1CaruQ2i6ktgup7UJqu5DaLuS/8vAa
BdniUtuF1HYhtV1IbRfyV9xSI6Z9Q8ool9oupLYLKaNcapeQn3JnDbKsc6ldQmqXkNolpHYJqV1C
sktIrHOJdS6xziU7gGQHkOwAkh1AsgNIrHOJ4p8o/oni78J+ieKfKP6JrTnR9xN9P9H3E30/0fcT
fT/R9xMTXGKCS5zPiVKfKPWJUp8o9YlSnziWExU+8c4kmnuiuSdxXInCnijsifuXWob7FYA1gDlK
t/ulIGwgbCBsPCf4cYAwQBggDBAGCAOEAcJgxAJgAbBgxAI8AZ4AT4AnwZPgSfAkeBI8CZ4ET4IH
Xjb3mlHNVGYVU/5BWh5nD2YHTwdPB08HTwdPB08HTwdPB08HTwdPB08HTyeu2gLveDsIByLQeAZQ
Bz8eiEBDHW6AeYB5gHmAeRD82olndQcHvRj0YtCLAcN6EAbDOwA/Gd4J5gnmSXcmUCdQJ2+fPHkC
dTK8E2ATYBNgk+EtkVMzUfNQs1BzUOK7RrtL5HSJnC6R0yVyukROl8jpEjldIqdL5HRZn/q3GBih
7jJDdQmYLgHTZYbqkitdcqVLrnTJlS650iVXuuRKl1zpkitdcqVLrnSZobrESZc46RInXeKkS5x0
WZ+6pEiXFOmSIl1SpL+jFxryLnHSZXTqv+HbGlyJky5x0n/HtzXmkitdcqUjVzpypSNXOnKlc3yP
CqvhCqsdSdORNJ2SOi6+2hE5HZHTETkdkdNxCHUkTUfSdCRNR9J0JE1H0nQkTUfSdCRNR9J0JE1H
0nQkTUfSdCRNR9J0JE1H0nQkTUfSdCRNR9J0JE1H0nQkTUfSdExDHQHT2SpRrjZcrrZjLOpsl1zA
tiNy+nE0ZKCPD+MBfPDA4PYAfPDjALyPEQyC/QfdcSD/oF9Bv4J+Bf0KxjnoRTDOAfgweD8HzAnm
ZGkevCIBn4BPQ+XtCeYEavKK9HP8Y6AmMn4wKQPwCfgEfEIkCeYO5s44d6B2oHbG2Wv94MkdqB2o
3hsNXspiYL7nKLtLB3fkXD8Y1lzJOnvQmCnqoB/ocPo3iLfpHzPgkw6aSEwbnlNPnGfHwzv9ZIbF
Az6g+ekn0x339IDKS43ZUI1wMgV+l588IezJXmWC+biCkJ4Gz8hPBvy4i54eP0Za2zDV8Hh5JZn0
fWIc9toy6XvJ1OE4h/ImlTOoXEHlCKrflptKwnXg47ElG8fxV/kbW1zDBIf/WJJ4fP3zzU5yRn2c
UR9n1McZ9XFGfZxRH2fUxxn1cUZ9nFEfZ9THGfVxRn2cUR9n1McZ9fEXj/p4H3OJnPEhZ3zIGR9y
xoec8SFnfMgZH3LGh5zxIWd8yBkfcsaHnPEhZ3zIGR9yxoe8V/Eh71vekDdf2sVDmc2uGMqu2MSu
1aW9sdLYaDQaQSNpdBqDhgiOmiovV7S27o0LjSu/uXHFDRDWIksllv0KUAOoAdQAagA1gFr2Igq5
7FfAXGsrpV32K7MaCeYEs7tjzAbmJ1ceQErE7FfcAGqlANxeXQFzgjmNmX4lmJNxTqB2oHagdqBq
SY3teEUHc/fw8tLOIHQwdxB2YHQ/x3dBCR2EHYQdhAOEA4QDhIPBHAAbDOYAzwDPAM8AzwDPAM8A
zwDPAM8AzwTPBM8EzwTPBM8EzwTPBM8Ez/SceuJ4+wRhLYXbMYMTqLXwUREotmNOJyRak3vT427q
7k1PuOllN/8W9tL8bzc/9k6D2a9Jv32Zv9W321f4W128yeJ/+xqX6XClKnQ5IaoIBVWEtpvcA7dv
cNkoQVXbR0oJBaWEttvf6eOb+pCf4PYP/AjiLtK5fYu/NWO3b/N39VG+hNs/6uOf+LZ6/M/6+C6X
VxqitZt8Cbfvc7kmQr6Em3wJtx/xbc2PnAo3ORVucircfqqPf9XHz/TxAXcyfEW/t5/zN+M2GLci
45tcCDe5EG6/4tsiGPkSbh9xGdooSr/Ju3D7NZdrMOVmuMnNcJOb4SY3w01uhpvcDDe5GW5yM9zk
ZrjhZrjhZrjh1aey0n7lTsNXHjSeNFYaG41GI2gkjU5j0JjV2N7QANgGsO1GAzwbeDbwbODZwLOB
ZwPPBp4NPBt4NvBs4GngaeBp4GngaeBp4GngaeBp4Gmw5EQITf8GhA0mnb4LqI01yGvZ9F1Q3qSD
jV4EvQh6EfQiPN1Q9GQ0gmVoMiwl7CkNFO0YjaDLQXcC8MEUVC5jygdFO4YuwFx6QDsGM4xn8NWD
ht9FT5OeJj1NECbzlbw03Z2VBlDTrzDmoMFcJG9Pepq+nUlJ+pXuV6fBqCYdTHfQ3aHR6Vdn5D2n
nQ4iRtAebiU/9gazg+CwxEBGtIM2Ol0u/Y/SSUHppP039KszGp1+hV9KB0uEtINIBuAHLx1+FwgH
3UFwWGJYVFgqoHPcLAe88nuRR+e4ec1G57ihc9y8WHtdRue4eSX22nuskBM85mVz7vTwQmPhKyCc
HnCgmoUnmKeH11cE/q6n3HXHXd/e1cN7/cTj74fUF1/mb/X//pX6u9joLn3irgiCu1SE+zf0Ial/
/ya3aMDuEv93hQncv8W3GsW74gXukvF3yfi7ogPuEu13BQXcJcjv39eH5Pdd8vuuWIC7xPZdYvsu
sX3/KW/UdN0lv++S33f5+e8/14dE8l0i+f4r7tT83iWS73Lv3yWA73Lv3yV375K7d8ndu+TuXXL3
Lrl7l9y9S+7eJXfvyN07cveOe/+OuL0jbu+U1qD4137lSWOlsdFoNIJG0mD6vbqlnzNoQCvJk0sk
3xHJd1J8U19svwL4DfAbUEs235HNd2TznSA6ypMF5cn2r+jF5iv0oqT1HWl9R1rfkdYUGtkoELLd
D5GTPKcBtQHVciV5RQNzA3Ojyw2EDYTNT/btIGwgDBAGCAOEwRgGwAJgwRgGeAI8AZ4AT4AnwGO2
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
N4FJQWBSEIYUhCEF0Uf7c4C6uWEWnZ9f1oE3X3qhA9G46qWG6qWG6qWG6qWG6qWGqqOGqqOGiqKG
iqKGiqKGaqGGaqGGaqGGaqGGaqGGaqGGaqGGKp+GCp6G6pyGypuGypuGypuGypuGipmGipmGipnu
xhibq8pmI6pXedP9ctlwJAhU3jQemO4qMkR1Tve/RSUqeBoqeBoqeBoqeBqPw2LXsdiVZYASqPsV
LFva8e+NB7/xj+80Fhr+zZMGlrYyECwYCCiTGo/Dct59JWgkDYapbATUSw3qpQb1UoN6qUG91KBe
ajwOi13Hktp5xeaedq5gQey8a6NfG73YwLwBbAN8hSUsBCpQXDUorhrUVH35zQB8CQsVVw0VVw0V
Vw0VVw0VVw3VVA3VVA3VVA2VUg2VUg2VUg1VUA1VUA1VUN3fqXFSKdVQKdVQKdVQKdVQ4dRQ4dRQ
4dT9Tg2sKqiGKqiGKqju32q0VUo1VEo1VEo1VEo1VEo1VEo1VEo1VEo1VEo1VEo1VEo1VEo1VEo1
VEo1VEo1nmItFS4JFS4JFS4JFS4JFS4JFS6JJ/wzIIfa2KuUSVQpk4WNvUqZhEqZxBOvUm3sqWkS
1DQJapoEFUyCCiZB4ZKgcMn+HJiktvnPg21Kw6aUyX4luOKvfCVpwC3DVzB9l3ZOlZOgpklQ02T/
zeAK3dnozkZ3Nrqz0Z2N0SjeoJRJUMokKGUSlDIJSpkEpUyCUiZBKZOoflYvq48lO2sRqL6olEms
GLpr76GaJqGaJqGaJqEKJqEKJqEKJqEKJqEKJqEKJqEKJqEKJqEKJqEKJqEKJqEKJqEKJqEKJqEK
JqEKJqEKJqEKJqEKJqEKJqEKJqEKJqEKJrHiMSoriEqZhEqZhEqZ7N+K9FTTJFTTJFTTJFTTJFTT
JFTTJFTTJFTKJFTKJFTKJFTKJFTKJFTKJFbIvUwt6yFAynpCcZOguElQ3CQobhIUN4n1oPvp36w0
NhqNRtBIGp3GoFHzDClT5SSochJUOQmqnATFTYLiJkFxk6C4SVDcJChuEhQ3CYqbBMVNguImQXGT
oLhJ1M0bImciacrMU4/a4NqKAqnn1dNU92T/VuBUACVUACVUACVUACVUACVUACU21vvJGlI7kQ1H
a21JVBJl/7sAiQFUGyVUGyVUGyVUGyVUG2W/RaOgIimhIimhIimhIimhIimhIimhIimhIimh2iih
2iihkiihSiihSiihSiihSiihSiihSiihSiihSig7mho6MYBKooRKooRKooRKooRKosSGM6KMTKqN
EqqNEqqNEqqNEtRGCWqjBLVRgtooQW2UoDZKUBslqI0S1EYJaqMEtVGC2ihBbZSgNkpQGyWohBJU
QgkKoAQFUIICKEHdk6DuSVD3ZO8zltfmu0C44Ztpfg5QN6BuOLeaXwFmSBiWoO5JVJxGWRean4A/
qWwjsiNEWREahuEyfKi4Sai4Sai4Sai4Sai4Sai4yX6LhlpVTkI1TUL1SvZvC44WfhUuiYYxFZRi
ANUrCdUrCZUpCZUpCZUpCVUn2e/ULKpMSahMSahMSTS8enRSnKB6JaHqJKESJKESJKESJPstg4bG
VUVJouGwiBplMUnDTxFYzctmojIl+9+aeNUrCZUpCVUnCRUlCRUl2X+LDb4MECpTsv8twlK9klC9
klC9klC9klCZklCZkqBMSbhMyYMNPGVKgjIl0Q6HRW3jqVcS1CuJdjgsapNO4ZKgcElQuCQoXBIU
LgkKlwSFS/bnYOMP7iquo5RJUMokKGUSlDIJSpkEpUyCUiZBKZNoB48FbBDg2cC8YVcPEG6A3/xj
iCImV2gU15V5orpSdoN6WXB34mSuKJBgKLIcnF/m7/Jziv3iq597qcIzEuCMBDgjAc5IgDMS4IwE
OCMBzkiAMxLgjAQ4IwHOSIAzEuCMBDgjAb7ISID3Mc/AGTNwxgycMQNnzMAZM3DGDJwxA2fMwBkz
cMYMnDEDZ8zAGTNwxgycMQNfUMzA+5hfgESq+aRfyqiayqiayqiayqiayqiabzB+aASyEqkqW2oq
W+r+rWhWaVNTaVNTaVP3b2XIqfypypaaypaaypaaypaaypaaypa633mnIYJX/tT9b62OSqSaSqSa
SqSaSqSaSqSaSqSaSqSaSqSaSqSaSqSaSqSalUhV+VNT+VNT+VNT+VNT+VNT+VNT+VNT+VNT+VNT
+VNT+VNT+VNT+VNT+VNT+VNT+VNT+VNT+VNT+VNT+VOT/KlJ/tQkf2qSP3UfDAy7lQCEjKr55rDp
VUoQUqsmqVXzzWHUrugOcqwmOVaTHKtJjtV0jlUyquabw6Yn5/ze4C5brpPbyxn6LGNPklo1Sa2a
pFZNUqsmqVWT1Kr77RBohY442apTqz7LFJQkUk0Sqeabw+7XGd7NeOhXsc3FjxPQSqSq/Kn7Zaaj
7EQXP1roK7XqE/uPUqumUqumUqumUqumUqvmBVN4p7sVSlLJViu16pNklpVaVRlVUxlV928LqXhM
qVVTqVWzUqsqo2oqo2pevsud7pw6ozym+9/uDOM/apTEdZXiVJlNU5lNU5lNU5lN91s0L0pxmkpx
mpXitBKaKmtpKmtpKmtpKmtpKmtpVtZSJStNJStNJStNJStNJStNJStNJStNJStNJStNJSvdQYkQ
lLU0lbU0yVqaZC1NspYmWUuTrKVJ1tIka2mStTTJWppkLU2yliZZS5OspUnW0nTWUnKUpnOUkpo0
SU2aTk1KRtIkI2mSkTTJSJpkJE0ykqYzkjr/qNOOkm00yTaal0OkDIz1ZUdS/tG8shTIqpSViFRp
R/MKFcm4lFcTk3Aq/2hW/lGlHU2lHc0rvDHgDZmM8orYGQUBJpG5KJWaNCs1qTKSpjKSpjKS5hX5
M6D/yuio1KSp1KT7ZXVAOUpTOUrzCpNUnEclK1WO0lSO0lSO0lSO0lSO0lSO0pc7J8NaYSDKWrr/
rdlW+tL9bw278pim8pim8pim8pim8pim8pjut7BO1d5bmU1TmU33yzUXYiSlOE2lON2/rZkRRynF
aSrFaSrFaSrFaSrFaV7xTU3mqfbeynW6/83COiGWWVQC15EGNUmDmqRBTdKg5vWQdVWKgTSoSRrU
vB6yrqoykA81yYea5EN9kaXNb/cDfVdNLQxJYtQkMWqSGDVJjLo/0F+BuTiTDKlJhtR0hlQSoyaJ
UZPEqEli1CQx6v6KGw3GZwNq8epKBYVbVcWoehXuddXFqXoWVb2iilZ8mR9VsQ1xprKo7pdXGlUk
6Wv8Xe/6On/XS6tWklhUmVb3b6u2jlhUKVf3y51GgRLTKgnrfrlAinsrG6tyr758Wx72SsKq3Kup
3KtZuVeVcjWVcjWVcjWVcjWVcjWVcnV/XNVc+Sl/VxmTKqwkhrxVORkxpBKsphKs7rcwV7WPVMrV
rJSra+0qUylXUylXs1Ku3qrUUtWVqSoyVTxGfHirekriQyVYTSVYzdtRM6ZYa61Na5Jpdb9CSRUX
j3EZJVdPcs2YlUIsxWMrSQFXqi6QezXJvbp/5SvUU1oppLJC00FFlZXSKRtFvjZ64SoyG6WfNjBv
YC5mW9ldko11v8JLN2OmbMsGeFeR2cCz+Tm+3ZgNlQaJWlv9ojZh98rBWjloIfHab90rMXdlbK0y
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
60MKyl0Kyv2bPEB1v0tTuf8TX+8UCrp0l/u/6OPb+pA6cpc6cv8et7iFqqJSUO4/4Gu1zv2H+pBe
cv+MX6sZpJfcpZfcf6oPqSN3qSN3qSP3X3DnrELN3/df8rcE4f4r/lZf3qWy3KWy3KWy3H+nj9/r
4w/cos6+S1O5S1O5/4lf1fF3qSz3v+jj3/m1+heV5V4qy1F4UFgo+OInhReFjQf6J3opfE2jEBQ6
hUEhKdRQQ2W5l8oSsFHARsdPYJYSE5DQ8Q3gpc0EbBRmI7gnzD13NJ47Gs+9NJ6j4HrRpeKnMD/d
UX1MVPdSfcKMBT8dP9EIO42wGwaN0PwKatFB2Hhp6UBw2PENPdh4V/PtVKf5Ob7LP9G8yFlJz1EA
M/Ji0UBTIdt4mDjNl3cPeo92j2EP13NkakSFWfZ+jqgAqkeC+z18MVADqO7lAGpnjLkH3XEdYO6v
DjB3gRu8MzI7L+0Ac91di/MagHWAdYANtyFD1NcMoA73u+8C8wDzoN8HNR2AH4AfNOYA8wDzAPNA
ZAbCOGioAcLz7YYKsOTtCfjk9uSuBHMas78Bc4I5afBBpyTgE/CJ6LnKScsnLZ9ATaBOoE6gzvvn
Hofn8pa5vGUub5nLW+bylrm8ZS5vmctb5vKWubxlLm+Zy1vm8pa5vGUub5nLW+bylvl8vWU+8Tg8
l3/N5V9z+ddc/jWXf83lX3P511z+NZd/zeVfc/nXXP41l3/N5V9z+ddc/jWfun/NJxy3ZiOc6UZw
zg3vmA2vhI1tmQ1z+FGgvSbtNensSTNNmkkqQ1jlRNPcHrr54abWUx96wsNDg3lx+MK6Qu3/UOs/
ZHV5SK14SK14oFacA61u+gp/191frb9rtD2kcTykcTykcTykcTykcTzQOGpcPqRxPGQbeUi/eEi/
eEi/eEi/eEi/eMjc8ZA28ZC54yEl4iEl4vGZPqQ7PKQ7PKQ7PKQ7PKQ7PKQ7PGTKeMiU8ZAp4yG9
4CG94CG94CG94PF7asGMUEL1kCnj8Ue+1gB5SFN4oClY4ErOHn/mb42ah3SHh6wcD1SGByrDo1SG
uJ1yWeL4KCUi0MaPb/w6BkPJ5QP94oF+8Tj1ixLZx6lfJIMyIeSS3UdpHIF+fnwTFPwuhtN0LXhg
SdQDZeSBMvLAfvJA9XicqsekpiV+j9JBAvU+UO/D6v0DY8sD1eNRqkdY83+ggzxOHcRrgUm9dprX
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
AvkJ2C8Qm0BsArEJxCYQm0BsosTmwOBrGoWg0CkMCkmhWhuvwwemvECQAkEKtngemM8CiQokKpCo
QKICiQokKpAo8lY28lY20lU20lU20lU2slS2skqVFaoz1srvrHxbyoRUliNltmvKbNc68tMZ4zxL
gqTMdsfXAqUUd02Z7Zoy2x2/1pskWkpx15TirinFXVNCu6aEdq3DPx2aA96/1N9l2OoIUhm2lOuu
KdddU667plx3TbnumnLdHbeor5T0rinpXesQUdm+lP2uKftd6z/7Xw+DcDxTQ0A585py5jXlzGvK
mdeUM68pZ15TzrymVHlNqfKaUuU1pcprSpV3PFzDSjnzmnLmNeXMa8qZ15Qzr5Ezr5Ezr5Ezr5Ez
r5Ezr5Ezr5Ezr5Ezr5Ezr5Eqr5Eqr5Eqr5Eqr5Eqr5Eqr5Eqr5Ehr5Ehr5Ehr5EYr5EYr5EYr5EP
r5EPr5EPr5EPr5EPr5EPr5EP72gwPwdgO8AaEl5Gt7KAlZ/QQJDKqFY2lnL6KXuJ8mw15dlqyrPV
lGfruJOpiCcjSLziq/wt2MrF1ZSLqykFV1MKrqYUXE2Zt45bCo4kSim4mlJwNaXgakrB1ZSCqykF
V1MKrqYUXE0puJpScDWl4GpKwdWUgqspBdfxxqq5hES5uJpycTXl4mrKxdWUi6spF1dTLq6mXFxN
ubiacnEdT4Xay8yk7FxtwCRlWVKarqY0XU1puo5fNZKUr6spX1dTvq5Gvq5Gvq5Gvq5Gvq7jCUzh
ZU0ig9fxzco3T7558s2LwkZhp9AoBAVGUvquQSEp1HhCWsjg1Ujc1Ujc1Ujc1cjX1UjT1UjT1UjT
1UjT1cjF1cjF1cjF1cjF1cjF1cjFdWDmOcU2tZavBXYtqGsdXf6x6Xv1aqV8acr00hK24UkiGaV8
aUr50pTypSnlS1PKl6ZML02ZXpoyvTRlemnK9NKU6aUp00tTppemTC9NmV6a8ro05XVpyuLSlKGl
KUNLU4aWlrAElRVLKNdKS7Qs2kCSoIQqLVml0DQSCSVUaUqo0pRHpSmPSlMelaY8KsedsGKtwxOR
qMV3wgm10FaulabMKk0JVZryqDTlUWnkUTluuvONCw8KyMb0NyuFJwUU5vIUIn1KI2tKI0dKI0dK
I0dKI0dKI9vJ8Ry/omqLJJDSpJHS5LgYGDsId2DsPGf3NS8KLEenwYN5B/OOCjT9DeB3wJtbJhUs
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
cuUlobSqx9/VzX/h7+pvCQmJVoNEq0Gi1SDRavTTYa+8Csi4GmRcjX467NXBBFKvBqlXg9SrxzXJ
N36g7/JPNfiQH3KwBjlYj+fQl9PXAH6nIybdOqlgyRh5WoM8rUGe1iBPa5Cn9bjdTw4KgN8BvwN+
B3wJ2/BT1KblHVVDv4Z6jenyVFJ61lB61lB61uMBAl95Wp+4CCg9aygraygZaygZaygZaygZaygZ
awzkcDIf1y6/srLGQA5r917pWUPpWWMgh7U9rjytoTytoTytoTytoTytoTytMZDDyWCoXfKBHNb2
uFK4Hn9Xs0j8lMI1lMI1lMI1lMI1lML1jbTL+Vu5XEO5XEO5XEO5XEO5XEO5XEOZW0OZW0MJW0MJ
W0MJW0N5WkN5WkN5WoM8rUGe1iBPa5CnNcjKGuNcozdf/KKwUdgpNApBoVMYFJJCDRqkhRysQQ7W
IAdrkIM1yMEa5GANcrAGOViDHKxBDtYgB2uQgzXIwRrkYA1ysAapV6OmoZp9ah6pqaJmg3LfUcbV
UMbVo6mEWqlXQxlXIzF/lSuDUq+GUq+GUq+GUq+GUq+GUq+GUq+GUq+GUq+GUq+GUq+GUq+GUq+G
Uq+GUq+GUq+GUq+GUq+GUq+GUq+GUq+GMq6GMq4eSNXWSr0ayrgayrh6/KoOUOrVUMbVUMbV41f1
ilKvhlKvhlKvhlKvhlKvhhKthvKrhtKqHg9Qbyq/6vG3OlWJVkOJVkOJVoNEq0F+1SC/apBfNUir
ejwK+1W5TZBoNZxo9YW3BIlWI09LVGOfoBwgSL16fDP5xk/2cwYF34XxNDAeBrXwzkxQHW/IBPXa
/ZO/oaYlJGRlDbKyHrf7GupV0kIy1iAHa5CDNcjBGqReDVKvBqlXo2bVOs5TE2TNizUdKr9qKK1q
KK1qKK1qKK1qTISkPBOUXzWUXzWUXzWUXzWUXzWUXzWUXzWUXzWUXzWUXzWUXzWUXzWUXzWUXzWU
XzWUXzWUXzWUXzWUXzWUXzWUXzWUXzWUXzWUXzWUXzWUXzWUXzWUXzWUXzWUTTWUTTWURDWURDWU
KfWotvpLKVNDKVNjIhLljqHcqaHcqTEx19bRBGVKDRKkBglSgwSpQYLUIEFqzHOaL7cN8qKG86K+
cN0gL2qQFzXIixqkQw3SoQbpUIN0qDHfDW7u2oG6A3VndyJ44A7mHcy7MfOuHcw1uMmCGmRBDXKe
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
U5bB82/5VuzxlInw1D73KYPgKYPgKYPgKYPg+Y/c2cMu/P0pO+Ap/P35M37UcyE74Kld7VPq/yn1
/5T6f0r9P6X+n1L/T+1hn1L2T6HtT3T8Ex3/RMc/0fFPdPwTHf9k6/pEtT9R7U82qk80+hON/mSj
+kSRP1HkTxT5E0X+RJE/UeRPdqNP1PYTtf1stR1ETgTZ6Pev3lxBQhIyNmjeoHmDrRMKN98F55VJ
9XP8Y7ozkN6CLYvuDF9h6Sm4rujX8I/p+6Dvw79BeMsNBqGYlME0DQah6PJwg7575SpfYeIGPR30
dNDTYDSCifMCVH4gzwl3mUWpWGnKD6SnQU+DWQ66wzKFzXEDY72hsagO+34eS9VkVMP00K+AjMmA
B/Sw0GBhEOr9fnqFYXtLoNX+HOZ00gvWjsOMmEzcpF+sA+z6yWX+JpL+/TwY2/w8mUoztrnXTDu5
3dxbdMecWXSn6I4ZsiC+INU8Zo4y2xQUet4LwgrCPN0TejxxnibPxYQeD+YxdJ5c3uXBnPD85O0e
KI/GcTuETY+qKfTt/g1fLYi3zbHgw0V3bHMs+mWbY9HBRQcXHVwM+IJbFhy14LHjN8zFooO2ORaj
sZiUxUAtZPC4XR18aXReuuOl3780Cq/+iUbgJa3/EoT9krJ/fZPnipqXIOyXlP1Lyv4lZf+Ssn9J
2b+k7F/ysb+EXL+kv1/S3y/p75f090v6+6Xt+0va+qXt+0tK+iUl/dL2/SXd/JJufkk3v6SbX9LN
L+nmlzbrL6nkl1TySyr5pR35S5r4JU38kiZ+/ZLe9yhKJb+kkl//yrc9uNLNL+nm179/dRlbPn3t
N7AMwNECJlpgQQvAZ4EXLTCuBUy0gIkWGNcCHVqgQ2KqsKcNB9v7pptvRpj01JuecDMiBhxc/mH/
Qqx4EyvexIo3seJNrHjDm3Lga33Tt/i77/52/93L0U1cehOX3sSlN3HpTVx6w9HSC9dN7HoTu97E
rjex603sehO73sSuN7HrTex6E7vexK43setN7HoTu97Erjex603sehO73sSuN7HrTex6E7vexK43
setN7HoTu95+SS8AQnvVvYlvb7/ishjkJpvyhoPEOGNv9W6/5m9xzU3m5k3m5g1z84a5eWtzMy4H
HNnL9K0N0MAJuV/x62CGXvdv2KY3bNPb4VbpFfx2uFUmTDnxQ/RSfgOawi25XwkafhfstNwLHtgS
dcO0vWHa3jBtb5i2t8Pjsuhpi98N1AqvZuDVDHs1b9jBN+zgG3awHZ43cKzb4XqxC3TRr43htaNl
0dPNDcZwc099hZ4Oejro6aCng2FpQ/Z2eFMW6M5x15MrYDkDwOa4nVkedHDQ5UF3Bh0cgEwDuHYw
YoNetGnLFvzNFvztLbj31tfj7UG/AsKCSQleEf4xpAakBqQGpAYDHhAWEBYQlhCWEJaMc0JPQk9C
T0JPQk9CT0JPQk9CT0JPQk9CT0JPQU9BT0FPQU9BT0FPQU9BD4rBqgCbkr3E23sJthDvm5d0r+Ve
xHtpDtxygVsurgeTTM8pr2AF9Jp3oPyDt7PceZ3DUr8dy5dXreknmw/BOM1101dWNxoBuh7sN/1j
eupVy4uVV6SFyJhpzauLfi36Ze5d9GvRL682XlIW/fIC4uXCa0Kbknf99A4C28Jx1+/v9LlF5c5K
0BJzVzfvUu13qfa7VPtdkNL9W9wiMu+yMu/S3/fv8K1ov0uR36XI79/l26ZSduddivwuRX6XIr9L
kd+lyO9S5Hcp8rsU+f2veZx7292Uar9Ltd+l2u8/5Ecasrt0/P3vuNwDKGV/l7K/S9nfpezvUvZ3
Kfu7lP1dyv4uZX+Xsr9L2d+FEt2l2u8ySe/S6HdZondZonep7bvU9h21fUdt30GJ7qBEd1CiO5r4
jia+o4lxGoedxndwo/vhEkq/i3FMvxT5Sb+9aEwazTTo3Tt6947evaN3rwfsnxBvb1HSiw0hSRxb
SXcS4jf/mC633r2jd3Fih53Yd/TuHY/SHXV7R93ewZburWXDru876pZ6aXuDDg7GZzA7gw4OSB2Q
OiB10J1hUpHQhIwBqcNkQOrwb5gCL2EJ8QXNAc0BzQHNAc2sFl4fvDBY3C3ZFmJU6d3iZxGzUKFK
7wcfmuvMbHYSlb+CMHOLmSQhLCEsmffyA6HQDJDwc9H3hFQP+DF0vN1jaML8Cj/n+DGkFkZVwc8F
8QXxBfFl4v0VxBfEF8Nb0FzQXKaZB05ontA8oXlC84TmCc0TCidkTD+QeZ8QNiFsQtiEsAlhk3lf
0LOgZ0HPgp4FPQt6FvQs6FnQs6DHbsdjDKFwQeHyvPsKpOJ/9FPajdQuo/6rXUH923aBfZ1bENpC
n+LY+wZe9/aV/QF/Yyfh5pNyfQi5eUinPqRTH+hUPIHSqQ/p1Ic2xw+p0odU6UOq9PFn3NkuNunU
h3Tq4y+/2gwsZ9zHGfdxxn2ccR9n3McZ93HGfZxxH2fcxxn3ccZ9nHEfZ9zHGfdxxn2ccR9fadzH
l5x75IwUOSNFzkiRM1LkjBQ5I0XOSJEzUuSMFDkjRc5IkTNS5IwUOSNFzkiRM1Lk9xAp8gXnEgnb
OC+pxBcq8YVKfKESX6jEFyrx1Soxbh9guslX0ipexV94YV7oxhdemBdb0Rdb0RcK8IUCfLUCDLRB
WBu8UIkvEkdZP7zQjS8cNC80oVXHi/3mC3X3Qt29UHcvvDAvlNsL5fbC+WIV9CKzpXXRi92lldKL
3eULdfc6BmpAszs4TPNGAzLci95dWpW9jrf3NgHlFlZuL3Tj68MDfTtzcfyYuRieC/eL7rRuREnu
V5iUoINBB4MOBvMVdCcYzICRjrsYw4D4gPiA+ID4gPiA+IDUhMKEsOQVCWEJYQlhCWHJ8Cb0JPS0
TXQ/OpgQlhCWEJYQlhBWEFYeOsgoKCyeXP4KCgsKCwoLCgsKixErCCsIKwgrCCsImxA2GbEJPRN6
JvRM6JnQM6FnQs+Engk9E3omvGqWmBA2IWzCh+aWBYULChfLRfD2BakLUhevWH6OfwypC9ELpMns
B4puwNyrKgqQslzvXvJ6wevlrhe7N8IUZp/+mcb/rQ3jWxvGtzaMb+m097e4pR8p5faWcnsL8H1L
p72l097Sae/vcSerVkvKW1ruLS33/jO+bWKk5d7Scm/tHN/aOb61c3z/dd+SrAktaG/tHN9/w2Ux
0VtbyLfQ4feP+PZGg1WwZfEt4PitveRbe8m39pLvf+S3LIstru+f8Lcm9v1T/mZ+2559a+P51sbz
/XO+7Sn5Z/7u8dZW9K2t6Ptf+LZnVnvSt/ak73/j2x5obU7f2py+pYnfaOI3mviNJn6jid9o4jeb
0zeb0zfq9o26faNu36jbN+r2jbp9o27f7DffrVzDFrsN9Tc70Hdr2bDp/kbdvomHeLPftFX/bnUb
Nu/f6N03eveN3n2jd9+AuewFwnuB96GJi9GwJi4/mQ5udHDQncFqW7zdpkbBHIVoFmM4YM9iMAdd
Hu6yyUDEi8GcDO9k6AbED2i2/p7QM3np9LugcPLSyfBONOj0cxjVwagOd4cxnPR0MuDTHYRbrP6n
rzCqwaha/U9GPmCAYN6DXgRTGQxCMAhedr3oL7+Cvi/e5UV/+RX0lDXVKyUmwtsLH3iO90pvbIW3
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
0fyQWs5TO8fUKp5axVN+lNTinVq8U4t3avHOP2aMYNzm19Rynt/jsnqR2jmmlur8M75terVmp9bs
1Jqd2jmmlurUUp3aJ6ZW6NQKndoephbm/Dse3qOgFTq1QqdW6NQKnVqh86fc0iOmpTq1VKdiE1IL
c2phTi3M+S/c2YOsFTq1rUstzKmFObWbS63HyXqcrMfJepysx8l6nKzHyXqcrMfJepysx8l6nKzH
SQpeZ8dPFuZkYU4W5mRhThbmZGFOFuZkYU4Q0mQZTnZqyU4t2aklCGni5EicHMkuLNmFJbuwxKJJ
TJnEhkmslgT0TMyVxEBJ9koUBNivQNiAMLu2yi+FwgGFAwoHzwl+HFAYUBhQGFAYUBhQGFAYjFhA
WEBYMGIBPQE9AT0BPQk9CT0JPQk9CT0JPQk9CT3IsqXXgmqhsqiY8w/W8jh7MAt6CnoKegp6CnoK
egp6CnoKegp6CnoKegp6CmekFd7xdiicqEDTMyF18uOJCjSp0w1ontA8oXlC88RjVDiB3MFJLya9
mPRiIrAehMnwTohfDO+C5gXNi+4sSF2Qunj74skLUhfDuyBsQdiCsMXwtsrpmeh56FnoOWj13aNd
UjkllVNSOSWVU1I5JZVTUjkllVNSOaX9Qn2XgRHVJf98ScGUFExpL1DSKyW9UtIrJb1S0islvVLS
KyW9UtIrJb1S0islg7+kTkrqpKROSuqkpE5KBn9Ji5S0SEmLlLRI/YJeaMhL6qRk59ev+LYHV+qk
pE7q13zbYy69UtIrhV4p9EqhVwq9UsS8UaYkXKak0DSFpiny0bqCSaFyCpVTqJxC5RRbgELTFJqm
0DSFpik0TaFpCk1TaJpC0xSaptA0haYpNE2haQpNU2iaQtMUmqbQNIWmKTRNoWkKTVNomkLTFJqm
2PUWCqZIDUvNl3DNlwJfK/azrgJTqJw64ikm9vg0PRAfPDC4PSA++HFAvH3vEw/5pDv2fk/6FfQr
6FfQr2Ccg14E4xwQHybez4HmhOZkaZ68IiE+IT5NKm9PaE5ITV6Rfo5/DKmJjp9MyoT4hPiE+IRJ
EpoLmotxLkgtSC3G2Wv95MkFqQWp3htNXspiYLkn/tv1dwo9V4fAWipZZw8eM0cd/AMfLv8G9bb8
YwZ80UEziXnDc+qJ8+x4eJefzLB4wCc8v/xkuuOeHqTyUtNsUk3hYgr8Lj95wdiLvcqC5uMKSnqZ
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
SdVASdVASdVASdVASdVASdVASdVA2YkSI6gYSqoYSlIMJSmGkhRDSYqhJMVQkmIoSTGUpBhKUgwl
KYaSFENJiqEkxVCSYijpYiiUPkmXPqHiSVLxJF3xhEInSaGTpNBJUugkKXSSFDpJFzpxWRNXM6GI
SVLEJC+HSpmA940nqaxJXlkKhC5l1zdRNZO8wkUCmfJqZhKdKmuSXdZE1UxS1UzyimxMZEPQUV5R
O7NJQEgEG6UqnmRXPFGhk1Shk1Shk7yifyb834UiVPEkVfFkv6wOqPRJqvRJXhGSjvvoGigqfZIq
fZIqfZIqfZIqfZIqffL5zsWwdliIiqHsf2u2VRVl/1vDrvIoqfIoqfIoqfIoqfIoqfIo+y2sU70H
V8GUVMGU/XLPhQRJlVNSlVP2b3tmJFGqnJKqnJKqnJKqnJKqnJJXfFWLeeo9uEqo7H+zsC6YZTWX
IHVUV0mqqyTVVZLqKnk9dF1nXKS6SlJdJa+Hruvki5RZScqsJGVWPuvS4bf7gb6rpxaBpN5KUm8l
qbeS1FvZH+ivoLklk8IrSeGVdOEV6q0k9VaSeitJvZWk3sr+ihsNxmeD1JbVN4kSb538stNSuted
/rbTVnaSys5N+XV+1Dk1JZkqzrJfftPoXMjf5O9+17f4u1/aKZEloirgsn/bKXQloqrksl8uGk2U
hFa1XfbLTaSkt4u8qKTL52/b4961XVTSJVXSJbukiyq5pCq5pCq5pCq5pCq5pCq57I/r1Ko/4u/O
Vtr5kyWQt84aK4FU3ZZU3Zb9Fuaq95Oq5JJdyeXdu8tUJZdUJZfsSi63zqjc6WM7WWzniJUc3jpt
suRQdVtSdVvydqSGbdF69+Y1KeCyXyFzqnPEOluykyQ7NeybfKstY29qDbxJrkhJl6Sky/6Vr5A2
+U2+1Dc8HSROfZMhdSOX90YvnCx2I8PzBs0bNLewvdllUuRlv8JLN9NMdtYN4p0sdoOezc/x7abZ
pNIg/97oX/Qm7N5p9zp1JCze+617p93rdIWdrbLLvkjqVO0lqfbybR7QKQr/kL87+2Yn2et6XxIt
lX3JLvvSRV66tssd+UlWsd6L3btI0l9wufMUSqLuXSTpr/i2kxdKtFTtJbvai4q87D/qFKiSsTui
RcLCLpL091zuDIk/5u8eSQmb6r+k6r9k13+5d67Zn3FLj3qnmO0iSb/g205Y2OXCukjSr/i2p0bC
poow2RVh7p0+lqyxb1Lbvq9faXaBnUwyXb5Jv/om1+SbhLlvBKPIEfkm16Sz0r7JGvkmMaWT0Vph
9kbrzW7KhWbuhzCXyYAwJ9zcfDsUOuGms9I6Ge0G8Rv5MTdo3qDZ6TWdTNNV/JxxdkPiyg8k1aUz
zrboPtpL304M99qj116ddmK4x+3JbD93OzG+wbftkZAwqzxNqjxNqjxNqjxNPtqJ8UfcyUqCIx89
2bu2rlPzZvP26KpOXcOp69S0P7udGAhzmfimuh3b3+/Lvdt7dDGnrlzzA75t71jXqZF4qzxNPrqG
k4RZ5WnygQz37ktVabKr0rzZXTzQnDitu6pTl6dp10fHlUiYHwhzb0De7DVUnia7PM2bLccD8Z4o
gok6m4x3byQeHXLSnvKuBSXJf+AxfMPTE3aZ+LiseCeeaSveSUzEG+/8G4eZZXVRLcfOxDckL7yT
dpk7wMSKdxHn8iZGwy5zy+qibs4bejZeak/5xnM2fuwAk40hX6gOu/0cV7JBvBXv8lcQv0G83YeO
K7HD0Ip3odIXAQQOMLEB3DuQZwPbDSwzQb0fefbJpgaFGwJu5FfS++xwd6zc5cFtGBtzt3ckT5Rz
7z6efcarD3K1K0Zi/OzzW78R2s8La+vzbLH/PDVtPo42r1ZiNBRdWGwHFmrAjezx+fxkrdpFYbrP
a7cM6aLuXFFgrqglV5SGK0rDFTXhimJwk2TGRTW3onBbUYetqJhW1D8rCpgVxcmKQlxFIa6iRFZR
IquojVUUtioKThV1pYq6UkWJqKIgVD0OUpPnJKQmpMoOuX7+we32+vT69N+0dSoi14p4suKAXHHy
rTjrVhxbK06hFafQiuNnxfGz4vhZcZasOJFUnEgqThkVh4aKQ0PFaaHitFBxWqg4+lMc9inO9RSn
b4qTNMURluIIS3FgpTgrUgS5F1HiRUB4EdhdRHQXYdhF0HUREV1gxAU0XIC8BchbwLUFGFvArwX8
WuTv3hl8+21+vNDTG1x87T3G54bu+jxuGqiZcFbxwNFr52KHVsnEZY/G5wVG+8HPw96jsfqBnwW3
BW61Yv48WRKvyUB9vtLTtFoIPr+xb4clPv+pJ88P0lDwdfkKfF2wc8HOhaAUglJmYyRvIjGTBzbb
XHv5KSLEititIkCrCL4q4pCKYJ0ilKaIoCliYYrgkCI4pAjb2F/q3/AKLbX7V74LcRiwaC9RV6YS
N3/h1C/87oULv3DAF772wkdeuMNnHgLbixZ+6WMGcVDvb3/R4DkBhcGPA3oCMo67kMrjdl/5zSB8
HpOWL5ykhS+z8F0WTsviZHFxsrg4SVwcEi5OAGvNez8+myNa8+b9eN7i7sVgLEj2GKz/kwhyJKs4
YVWcoCrORRWHaj4Lhzo6sbWLYxP7K7grWAl65IisL8Lki3D2IsR8v52lJfwcrqQXJOhJXpEsNsm7
kqUueVey1GkIvaIUfrHCFVT4dQpfzXwexBfLYUvnlaHDV1Gg6wVwXoDfBepdYNkFaL0/hzVv8dWi
y4snL2j2Mr8gbPGuRZcXvTCF/WSw1AIDLZDKfRXUSlk9g5OCaZOyLDuFs38jBv88a8ESrrcvSqoU
JdyKSk6f10KN88IKr+wV7jOdjQUFEFACW01qv6Al9saVxo3GncaDxpPGi8abhh84aASNpFE0Jo3V
ja7RcqM0y42KLNiCewN6AnoCegJ6AnoCegJ6AnoCegJ6AnoCehJ6EnoSehJ6EnoSehJ6EnoSehJ6
EnoSehJ6EnoSehJ6CnoKegp6Cnrq/tXmdzhBmBOEOUGYE4Q5QZgThDlBmBOEOUGYE4Q5QZgThDlB
mBOEOUGYE4T5/1MQ5kvOrHEeljkPy5yHZc7DMudhmfOwzHlY5jwscx6WOQ/LnIdlzsMy52GZ87DM
eVjmKz0s8wXn09hhDNCUAk0p0JQCTSnQlAJN0Qbjs7o02lSgKQWaUqApEzRlgqZM0JQJmjJBdyb0
TOiZ0DOhZ0LPhJ4JujOhZ0LPhJ4JPQt6FvQs6FnQs6BnQc+CngU9C3oW9CzoWdCzoEcmysCL83no
kjFsROrSJsr+48lXHtX8yku6nMzxvw5zfAlQ5F/+4be/8ZmI7/3wn3/1+Yv//Rc//OXPfvWLv/nh
L//3v/3hT/763/+3n//7//unv/za7dPnn/9fEPt/+YBf//Qn+x2/0Bf/r3/58U9/+LPPPPrLH//0
5z/54f/2D7/8H6+B/1Pj8Df7KPxmAP5rZO8/SdT/4//5nZ/90w//x30/xnG/+Pd//Yt/+uEvf/mL
H/78Z7/4l89j97s/yvn/9X3/JW/6vzeA/58f/9Pf/vDX/10CPCX//bH6nUrZMZH/3Sn8r2cwj8/v
o3v/vwvCL37XrPTfn/zf07j8zy0Sv/h9zuJ/z5S44oQk8OKz+mpT4oJ7Eyhjv7L1jye/SRRjOw83
NO2Gpr3iOL3irLvgU71iiWwoahCHQQjfeB9ftaImem2ACw3wnJ0MfzVoVL/C7+q7tqNf7efcuGv7
cNeV59y54saDr55cccND9+bKmysbV2i01xfYZP/KvQiuBFcYZ09cv+vKc66868pdV/p1pV9X3k7I
3N640rjRuNN40HjSeNF40/ADB42gkTSKxqSxutGuXXLsDyLtBjFPg5inQczTIGv+IPhpEPw0CGwa
JFMf5E0fhDoNQp0GEU6DnOODpOGDmKdBrvBB8NMg+GmQ9XuQ2nsQDjVILz2IixrERQ3iogZxUYO4
qEFc1CBX8SAt8Wce7ulO2Dhh0YSfExZNWDThzIQ3EgZIeCPhlkRSEm5JmC3hzITZklCFJFQhCVVI
lpQkVIFIu5GEKhCLMZJQhSRUIQlVSEIVklCFZLVJ5D0RYUJkR8JICSMljJQwUsJIhHmNhH+S/RPh
uHsDegp6CnoKegp6JvRMyJiQMSFjQsaEjAkZk/GZ0DOhZ0LPhJ4JPRN6JvRM6FnQszwsXucHDXYw
PcsXZvnCLF8ZwytjeIHHLvAYQXj7umo18Ua5sB4uVr/FkrtY65aVAovwYq2bfjKaqFnrdeiUyTI4
0TteAX7zdhTDYo1eLM2LRXZZCRUNBDuQ50Ceg6cH8hzIcyDPgTwH8hysL8H6Mnjg4IGDBw4eOHjg
4IGDBw4e6JXd82ptPZkGj2Nz1QWuuiISV6bqimxcEYkrrHOF5is0Xw+dakYZNixoLDd4V/DjQJFP
eHHBgunncGWwGV/ejBcNf8UgLJ68/K4LT4aDF1cGz5lIQpnz+E1xV/LkpO8TeqbpYeQXA7544GIw
jye7gfEx4dUJr07Mowk/T7h3wr0T7u3B5NjJ4GzJ4CTJ4LjI4EzI4FDH4FDHZ76a2HYTMZ6I8USM
J2I8EeOJGE9sl4mhszC8FjZZk7FBxgYZ20FG8sDkgckDiwcWDyweWDyweGDxwMJuKzrodaroYNHB
ooNFBwt6CnoKeib0TOiZ0DOhZ0LP9Dhj8iYzmMxgMoPFDBYzaG4pZrCYwcJULZ5ccFTBUQVHFRxV
cFTBUQU9BT0FPRN6JvRMcy/0TOiZ0NM9JZR7kNN9ENM9iLwexHQPyk4PwpkHQdmDcO9BNPQgz/Yg
THsQCT4odj2Ijx7Eaw+CxAcx1IOo6kH290H8+CA6exBVPYiqHgR3D6pcDw6ODLLED5LnD2K6B5Wv
B5WvBwnXB8dNBsdNBhHlgzD2QcXrQY3rQU73Qe7zwSGVwSGVQYj6IAp+cGxlcGxlEJk+SII+OMgy
OLUwCGwfBNEPilYPzrgMAtsHh10Gh10G8eyD8seD4y+D4y+D4y+D4y+D4y+D4y+DOsSDQOt9gbXW
Y4G1rZAohfRqjPpLNlGJirTxYRB4euVHDwY/DmtY9MXEUgleESjosrrB4rFyMXpf6JQesSssej0U
WaH1rLKbba5w1BX+uR7qJnm7fxO8Itg3JncFwxL+sV/Bj4vfmNTyVzY6rXONDhhuQGkamwg6aBPT
Qxf+MQMevCIYumC+wvrdXxlB0NsHhA0IGxA2WGQGq8RgSRmsCQPiB9I9EKuBXAzWus+N+kpT9+1v
nLx6daOXtcEaOBiTcYxJ0PGg40HHg44HHQ86HnQ86HjQ8Z6IARcNuGjAaYMFfCALA2kdcP6A8wcy
PhDkgSAPxHYgyAPRHgjygHUHIjAQioG8DORlsLoO1tLBWjpYOQcr52CdHKyTA9kcyMJAXgbyMpCX
wYIwWCIGa9dgNRssPoPlaLDUDBafgcId2HIDW25gyw1suYF0DGy5gS03sOUGttzAlhvYcpyi2xui
J5CpQKYCmQpkKpCpQKYCmQpkilNQe2PQCBpJo2hMGqsbzeoBqwesHrB6wOoBqwesHrB6wOoBqwes
HrB6wOocP9kb0BPQk9CT0JPQk9CT0JPQk9CT0JPQk9CT0JPQk9CT0JPQk9BT0FPQU9BT0FPQU9BT
0FPQU9BT0FPQU9BT0FPQU9BT0DOhZ0LPhJ4JPRN6JvRM6JnQM6FnQs+Engk9E3om9EzomdCzoGdB
z4Ies/qCngU9veO7IwV3pOCOFNyRgjtScEcKOCq1N940NhqDRtBIGkVj0ljdaCm4IwV3pOCOFNyR
gjtScEcK7kjBHSm4IwV3pOCOFNyRgjtScEcK7kjBHSngXO/gBOLegJ6EnoSehJ6EnoSehJ6EnoSe
hJ6EnoSehJ6CnoKegp6CnoKegp6CnoKegp6CnoKegp6CnoKegp6Cngk9E3om9EzomdAzoWdCz4Se
CT0Teib0TOiZ0DOhZ0LPhJ4FPQt6FvQs6FnQs6DHUrCgZ0HPgp4FPQt6FvQs6FnstYOddbCzDnbW
wc462FkHO/1gpx/s9MP+GHb6wU4/2OkHO327u4Kdvn1ICT0JPQk9CT1pKAN6EnoSehJ6EnoSetLm
NLvvYNMdbLqDTXew6Q423QEIEIAAAQgQgAABCBCAAAEIEIAAAQhgr1sCAiT0JPQk9CT0JPSk4Q7o
SehJ6DFsm9BzDMJsCLh/zPmpwQGowQGowbmnwUnhQdXwwRmbwRmb8Tqe3CNGyfTBiePBaaPBaaPB
MaPB+aLBqaHBwee9caVxo2EgG3oG9AzoGdDTazg5FQbHpfcGTw6eHFA4oGeYHkZseDQ8PrxrQtik
X5PnTJ4zefvk7dNvh9SE1OTHyY+THyekJi9NXpq8NHlpet55RfGK4hXFK4pXFD315tSkTg+4e8oD
J3tb9zT48fSIQXMwqpN3TfOYn0NPj4YHfOvcA5Oj0GLjBZ5TiPnnV3eykNVX9sYkQUX8dsoKHJ+L
I8yf+VwdnDhvPg9pn/XGwzc5y7xwFjj7zMId6DQbC0x+MgWFj39/8ta/6Vwzs3ljYTYvFuHPP+4z
4xygnhiB+3NGH+iWBpm4RZKtUKHfp6/kh3wb1bc7icVYv5XoYOJt/UyhmHbiW52Az5Od/iR2YWHz
z9eHidNp9E+k0JhkH/FhdtaxBQa+952j651nB6jw8xUpxDWOw+wSh/1d9dsZQTjMPnGF+rj9xCe6
XLNykivgE4c02Z7sR/LvNDws3D7Nh5y77zH8RJoeLKuFDVm3I8ONrsw8MgppoBYOqcQgzzjmonMX
fOrfLLwGE4f33ovFXAx+jDg0Z7IL+MyNPU3sXGocaXW08k8iY/e+32jcm+vE/J/ld5KgoLlltr5Y
4PYTOGL/6o3I5FeeNvAEgE4A6ASATgDoBIBOAOgEgE4A6ASATgDoBIBOAOgEgE4A6ASATgDoBIC+
WgDo93qU7Twgdh4QOw+InQfEzgNi5wGx84DYeUDsPCB2HhA7D4idB8TOA2LnAbHzgNh5QOw8IPYl
HBD74vIHXb72G+zqASxq1DnBUA1jjwabtUp8VvdJfa0B4NqFewgZSEa1yKe3o2vFAwME7tHgXGPD
xPjs1bS23yrdthDznB8KJb36dvHPwq6b46i806RS7eUzMerOJC6gcDx+ti3VnfU8qnLN364kluCj
C+N/4qKfeAkWpuNn46cR5e24vTtIhNG8fCiMRo2yrmc0e0FbBOlM0jlOrNxK0oxPSvkQabKw/YqN
6HSZrzwK9emlizyTSQxLEbpSbOGKvI6LGLF9xJ4M5qLKz5OeUgdRkrIMGxMQtNCen9elho0/kZid
SJP5oZRcUmBNVuXESpmPo9JaJ7xHlhM8ZZq1cJ8upHuxMd4x+AloXVD4ia8WkqKeunbDpKpbUnGJ
QKfdxfHGa3HBY3Np/umyU/i0J/6rXVJmj1jXe1qkQc7WVp/Xdk3TIqhhB+xH/zjxtHSZQbsLYH7X
ApsE0012HJNSR4t6Pcl6WPHBr/LqeReFiw3URGQySQocvVmb4/DhpMseVg+C3rXD6i5Sd6M84I0V
iXmXvE9YdLL27g6W7OFdcFTXXqsWtIlUpl0BDN1yATJ2SQuH8yQApwjo2D0SeGPaIQbavs/g+q2y
fpNQvuXk9XVU/jrcaNQHdRmssKvEXjiW065tkKyHnxhMUMVFKtTPP+7VmNiKYvc3iaTYy2mxHroE
2LI7biFor/9zIU2pv0Uw1Lr8nysZ7lNQv10f8n4UiuwnE8m1PCyWwSRRNlF1+1Q++qXtjWGbvEBd
F5u1IgntBB8s9JeLlE0XnUEcajs8dat+q7rgIuBlucJaHkUyu++LWZ7UrUOWP//fvjJghH31Y74k
3S6jlsTVLsJ2FluG+uDxCxyh3Z3ZE7eINSuqySZrbxEhO/FtTtTffvuVuzYG02tColyujAbVbZtb
kLh9udh+qxrgvhQkg8Ccrvqt8pI78xfLzuO3yjnui94VjqJGnv2oGtVFRHMmDtWBu/t5rOFdcNAF
j/NDLVMq6bbTdTvoac5kj7/XPbSXu367riyxSxM327Sa+IQiqw8lOu9wwhsTy0sTjNTlF7E8FxDB
wjBbYAULrKA+8HzT7EmhXOqkFN3uBC4WxjvcYrV161nWb9Z2lM3sciPouAnXLYIN9xVyMlATZVc4
b6naOh0cYZrvPd1m/mZsopULjLEI9C7Q/8IpMq09JwzwiXqOQEOTuyZB5Ukku8sb77NDBMS09351
lyVfk4C7Imhot5FQAYMwkJ7TxZpAYNqkWm8SYOtqtBPIa1GmcF/wP/HVlTG8dVVbBwh0EAGobKGJ
JhFPuylL8WnrprF+u0B19SAsMmZ/fns7yXEnLBdNYbu0CM7a7fmB5fCGZvvhceO3QcXRgQXqWOxY
dyG6I55oNBchdRFjTe4iwmixin7ujuuTti1BSPIinK0ScxcZXNuHYISFkmKnMGwkY2Z0BUzX8cQN
+fneNqiq18P1OpRmuIENEMzpgCEH+x3LcrDatE6ZWDKAhLu8u9Y4crHgw+aWQrUB+O+mI4LWUwnU
6Zq6k5DShcd9eRcASrwbHrbQkl6wODRhXr7Yy6z7YauXrSYH4EBqugAr25M2KpjKyWmJRar8Seju
Aj7alxQCrxKOWkh3l1Kl/uYk+HqB9+6K7InA3jAvk16M3yrcvjzO1iBEYS/vqfG8LozAHB/Ujbe3
mBlpIxk10asolU/3lxJiphlcgGDT9WQ/HTuOYTn1YvVmAWG7FNjGh7xv8NgDwlB/gdkTrOHNq7dj
I9ZT+emDfBUyeIc3XsRSEcgjnbtYqCc++MldRWzK/sDJWvekO+aoRLVNOBysoOq3ijwnKnsBuU+s
3F07IGi9lxlHFFtrvYGdQB2Eoi7tvlitry6J0Kev/UY276zkd8SfrcSCVQZz3Vu/T2hn17KmKG1y
zGhdPggFvZse0gnzINpdxxkhzWSdXCw+z7bqJ960siE6Wh8tL4+cVtlvt+ZFTU9bgKjywhQsSrt3
MJprfSdrO7M2WWqWazTHwcM2gxdavlz4+EIJY9b/sln+buIbf7sflr9D82z9DmQh2aH31g8v4STA
pZI9ch0bosUOfbH1K0yC1jXeWV8OUoOFpaEnqvfuUAYwRXlzemOFubB2wWNpOOjKj+8YLYA2HeKH
TE2C+gsX3iLYaOH5XRwZLELT6v4hzvHBevKAMEc+LqwOpnIBiTjgsfmw+soiun/eP+hiDL+uGAe8
uQ8vG5kJSBKE0Cag6GKarGcnReN7s7OYXNzNi3MMO7OhfYbxnCujymK4wAfaUrINRgWZxWGg5Qrs
gBsTv/PkJMqkLMsk6mhxdnA+jhjP5aUY+3wS42n8LVjkAwHpGawDAi2LjKNricTsLcDESnwd6I2s
jgkoOsHf9oEKXkER817Z8HQkC/iKDyoGxdS9eH+YQZbTDqHFQb9Hs2Ja9KYATihOQC5i1QtH7eJU
2eJQ0W5AXthdsmXr8Orbsffv1RiJm+aN8YFUUwjgOVgPh/vOj4cx+UCZYgX1k3HCTuKrdsLQfT0p
7w8RuOwcB8hnD51RRNy7k3JFk+NuBfq38OEuuLdehzKd4EJJcPd0yDwwe29kcIjXOGh27HzYnTEQ
vY3fXBgWNNH0JoVVwsxvWV6MYW9AAMd2yw3TIrFMBoKf9rNMhhfjZ2JFT39lPGeyfYZpBwZS27EW
NBRHgvmk1zqsu4lrchJEtBtaiydfWRgHNuobTYTNM/GGFMbhwq5uSwnn6XShu4nXIA9bogljzVxw
+I5hLpYU77muPBANuwCjDkAYdKJ38ZylXgCwk3UssaJ388njM2BaK80rbIN4TsOtwRiyN1nowQKT
N+q7jE5soBwGW1ghB4huIwb48iYBMPN2HOYITi0Y5G+Uvo5dYVkqvUrgfmrsCO/wwhiYlN/6zLSF
96EF9gkcjbd6EZRciXn/AMOckJrHkYtCU08bDHZeLDjcM2hbi6MtyzsRz86dddX+iCcj5mWZ0Rgc
IJDFODnAvTi/u0vKEw3LNA08Al3PeR3HMroWeB4b80LDDlww4VV9AFgN+g7mHOjuVn+vw1oOrhQG
Q1sgHBWtdcAmdme0NsdRkuimeT+es7APB9Zgi8P98GK0NQjqMjmkW0S5TFxUk9C+xVf7XLx4oDmB
Lk/MjGJjvjhuUnYAYfYYWE538M0eZMGHAXz3iX7hlEmM0lYT9UFNgFMZ4Qn7zi6IzI0NtQWW7VLP
4P04MORFr4knUnxyZLCeh3fPZljiDtPt9T5c0gUE4W1Ob3s5bTlZIdPaHKR6pwdwvve/24fucCLK
4QHDkovRNfEaLPu47VdFTgM/giWud+jFloFTm4uz1LuqLcIMNrZCRiewqL2qtzYHuy685zuPYQAH
hn3/eAHjcIp9vQ+H1AAoaAXN4ZP1/BD/wLJT1ua4pBuN5HBtXY8NZth5gd8nUdCB8TatWPGGtPYE
J99tG+NCSNNkRxZ0MLGx2yjlfNh+F0ja8tkmRKbNy8XwYpTur7ANmeg4n95LnoxuCs7qDdD1rne7
qG09kZTnQcbh2PLOZcP2A3zuordETRSnPhaH0iZxgHsv4PDJOBfbk3aQPfHKcYh53o5DjW2zrQMG
9OG2crTMC5PPZxDt/HIQCL/Jy1eeROiM/jmjf87onzP654z+OaN/zuifM/rnjP45o3/O6J8z+ueM
/jmjf87onzP654z++Wqjf77UJEJnoNAZKHQGCp2BQmeg0BkodAYKnYFCZ6DQGSh0BgqdgUJnoNAZ
KHQGCp2BQmeg0FcbKPQlZhIqEkdN/CWzjsVh4DRqNPB1+P+G3VqLpYkVe9BlB+j0Skve2oWDapLF
d24fgiccB4Pt58AaeyyaHusmCjMUNM/nsZG3HVVsGQolZS1zbKXhlmlXtx1CFgeiOry5XqRcb2SW
0lA1j6Ci3imQUXmHIDFBE/VXrOHTGpaeDi9xxqnZaDgea3m+jFAFTBuYYQnuh05JdkmJ0lwE+kyv
Y8xpy3thbFPVpq7HclrI12Hy2bHkLSewhnfrC/Q/MPULl/AgW/3y+NgJOhlD1jE75xopxl03H4dD
MTzLbJcM3zcKAfFrO2IdOtZqfFje/VLDhhhdXpF6fb7hTvh0uBMaY8wjXq1xP5LSTYo37LY6JrED
LALTOom1KtafBRrWs3Pjrgf28ziCk9qwN4VUw9oFBEsm8UtNNwotbPfGRPCtYY3OgcBYpxi+77WX
/LiTPdF6Hvb8QgEtMPpJWv+FpLT38UOYUdtaED+BFqcNM56zM9sLegiAm9jziefDC6M9VeFNH9hg
sokogkIMeSXm08G0wVp3x1whpqSwx9qXRsGS5Qof7yMGKOhOGqvEwk+H6FlpgpkXoUjHdsDhgKCy
w4a0x5Dl1G71RTyEd4gtO/cPYAhy0Vju6yiFkiyeBod7xR4fLJkHZip2VKMQj8P2Cxxvdo+5UEQL
2vhQ1ISSIbY3Gu4jEGrhiiv3ggzhi1qS++w8sG148jEa3qgSIrPw+07WsZZuPLjzA2SxvEsymA/E
NNneOsImCHbphWgRK0P5nzkPd2Yz2+2Q5V5A7FNAv0+2FQtmm58+bAMd8DHoBft3b1QncKhXpHRd
EFunBu68WfNuyzs7tN5ic92KjEIjk3CcfcFnf9HGG8Uv9mGxixqAffjKhiFdKES7zG9IgbeKRKJ4
ZXMEZA8LtT8L9ivgkX21wStkWH6wLB9u/o09IwiDzcvWcVRlq/hgGwNsFohrsvtb7Aftt5pGkt8M
+BNSHVvwoMFopN1MRE4bQE5bVm8M8o3Fyh4EVra20CjhUZcPaLODpQbIwIYt8WLoCHaxRdQW/uVA
Zb2nXsTTNBtfD4NqeRfJRtWunwPAcdDwJ6w4erEALY9wZFsFZhs7F2zTgh92nNA4vIo9BWS2Xp8+
rFoUXkosBwMCvdYZzMexMqkZPEk8v8clg3X3iJkM0rXO97FKLDBhO5ETnGTarmN5b58dUQJzfnDn
YXAezmjceeHduuEjdoiJNzmJhxi4G3pJuX6ob+QAU0uTl1zcXhNLONlgBj8uIK8AF+1NDTGI637E
HOv2pE7HIkAwMeN3r5B1E3JqeG3iEz8iWgjADSyQdMUstMPyyo8ReHiXkmF5MjsvSOVwSGJsG9da
9k0QzTMclkoQWCMwLAX7coGLxHH/ifd/EXTeHvnFolf0CwfELpWY+tPhrSxNPp6xWJ99IGEiO44B
sqa2FJQlhdi4RlzXAbTakhleE549PgmyHViVaeIdakxEb8Pgjv/GM1KUDt2BDgahvDF8E2DATsps
c+DPqJvhAFN7xAyeoyunN+Ao8fBOc7BdYpvskyQTqzuxHHqr+Ikl9/XBW2G0kFjGRfCNfUDWBQME
z0Br77K3w714REmi7IzBWo2mJ9eefXvE7MVj3x0YwEnJvUmoXysyVtHdFHHpNdd7gwEGWKUVUFBf
reeL8OjFCYciH//02ns5cGMHRybRn33XdsSMzvtXmkmoqPszKUm7Ph1gQm/n88NOrVj/WRnSSDU2
RhF/X8alwU9coO7Y0mJXB5uvXgzjwxmzF/bDxjrpuBeiwB3Y4/3LNJhJsP4y/EsvBvZwgPYPgkHD
0Aohd+0lHEfgij3ahut9rslHsDpKqjBW2ULOOnY0YYzXuBl2UT+ZIytpLyHVlyeIXOFQqA+QyLI5
zTppf9/CvpqOHSeisXEGLOQ0bvY6ABkjIT4a5HM7/ZxPB4QelLG08mrz9XGw1mRD7Z31YnNxeIdZ
ORczuGxywyRF2GLj/6Sxr8txlqYNY/YmtR32TLCzNiI3OYiYRCIuTi0GrsDihJtDCRfxi3YklauE
+tyg4yDRRwNLSdbCwsKZ9UGhuDtgI0Wk72LZT9fp9M4aeKE4WRSYVdN+THZ8Nup85MCxZz4KGASw
Lu8KOSM0wXx6vvwcqpTsRoJl0BsQutwIxvVD5LEPlhAOPvAxJeclgiN8hXZ2yOJidorNhWMADDka
cVoOLCRIphwsS0yLQ+p7c4H1u9PjTYF9VQTmls2PiTakVuXCsl2MWOIo8X682Gr5bKrPVHTfkbjE
hNs5ygcaXbATq3U5pBUfriMep4/MOSzYkCNi5R/3Vxz43EfMQLfnfbKSsMUeLObBdt5WR/pgEgZt
Ei61HP3lg1vYYEY+h53vvNSHb+3Cm+x6gtPOg1MExxEjNsLDB5xgtonBv7zWgWmE8YFkDLHKfAzb
xwkGqiQYZ4c1OqA/HNzC+eflkA/OgRTL6SB4bLhAb7ChZtfj+L20f4TAwjLywCZl8UCf0xuGmlmI
Dmlyg4Wx5WLhVaFs1+Sc5wSKnxRmLuNLVseUnpwWNKIiF1VTKo4IQ0M0E27xkhsgqMGcBm6sieDb
1WX/4+SottGb4UPXhEwPc4LPvAHf9QEV7/iwxut1nDEzdt0L0eNDSAxAk0/4J78ZWMiFgW3X2yJO
uwyKOgLBawuut8X+znGbLiG8LCA4U9LWBfhAj0YeHvbJvsMPLAZhWeMTQL6IavNZowC1a+uCQ6qJ
mVHPA4eZLpJNlHgSID3Y4zQ8bl95HSWoA+TT542t8QdH3crpAMDxBsbSZANrAOQAqFH9h/OUY/Oi
Z3LKa2GHL+rATvudOXpXjknwKZ33hyLib4xAXO2HAmLL5lrU00dxOBJ/yCC49AAPPFYtdmoLZCZw
yzqCzs4mA1ZFeMARdGqtx4D3lTiID0y16WOZQLINWBHGPONYcieRiov9+OIY5PI5alxUjkkI0+MT
48HGkwDgJuPyAQkBjWypJGSx7KJaMBKVEtO2H+vqbjWhAgarcQv+C3o4q7Y+hDWGz25Yx72w0KCn
DP74sBDLxfAhhaJfPlyaOCsnXxFtPohOCRucjookxKsclg+ylxy+NbbWV6jzWUSfrg/V3x0OdJxR
xJZwGe9klUjPMoE0Pjnc7ubLh5Bpdoje8tu2SfwaA34+gqxgCcf9Gmdo1orjYFKBsSy8umVXxQTI
xWm+WL6CGGMDINNICAZ5Wg9yyiBxtQ8fIcGDPOxaGr049Bp+hzeux5Gn3ip+YleCG2tRkmtSW3wB
YaUPhY5j/54+BQf7tVS+jnhd7weLNapl8H34Q01GAoqmj4k6IBn9FT70SLBWEX7jYBJH8HYsE8WC
JyM/P304OuTYaWQw2RyVD+bASIt1deH1XkQOTNzojhGdTovDMf5ABaz5lWcSOqN/zuifM/rnjP45
o3/O6J8z+ueM/jmjf87onzP654z+OaN/zuifM/rnjP45o3++2uifLzWT0BkodAYKnYFCZ6DQGSh0
BgqdgUJnoNAZKHQGCp2BQmeg0BkodAYKnYFCZ6DQGSj01QYKfXGZhD597TdmKrMzqeAwgBqMyLvO
QqBcbJ1Oe3nBB8MbBJKiJyIz4bpJXtIgD+jCQdX7ystRxySwRQPk2gn8k9Tu9hoGuc2c9LFTlgYr
0jr2TQnbHC5Gp9kHA3H6vSDFdYAClyWOjU/ieFtkgA7vYdnitT3GrnZSnWo9D/kqCqNM/BMTH7xL
mE1PE5km7cE91kwQKkeMle1McgcmpmPgoTxCtbxYkcnVaTJ7Ul6sP88Dj3Lm5qJgmdHthYAcVYEC
W5TYFJcZsmPJONvh3bfHggJqRR0c57ouSmIlOGSR+Nk+1KSYQlF+YrCTMqjihajsuHXCfPYgzWxG
U7Ft9rez/iz2jHYMFBPXsnNl7WW3VQS77CYx9CTG0vQuCTOjsAHaSqEUyLQb4H0UVBreJj+ZLysO
b5OdEc2O2wUZZD0vQnZcM6X1xcCCdXLEK+JwxzhxMUSQpfqQvzMxluzYtgt/UDsssJ+HFVnAkN4c
GSgjWKpAXAd7h2ALbL+mqwJNrOVGLynNtq7H1iOIxxpOy+0skjBAL4xkFN7FkwEPdiWGqoqEl4v0
hIU97xzezZlP+mUb4HUALxNYrMirXZiF3r9P8oAWYJGTsx5WtzM3I90TUGXY3CUBsDMyDrhueBW1
o4u93nK45ELMCcJYALa9YuNBKJLFJmE9hWdxPQ6gdRDQMBxHleykfJfBPQy86WkiuijcADUKT5xD
rEjq3CsJWSTXpyNUy+6PIgpwksXWu+PJTtzVWJZzamK09xg+jxyxjoQbeAQnclGuAQQ4U+x8bRYe
nnskZRCgkySPnGw02gmagEWURJjO1D6P1LDtp7+i6B/HIjxwxXl7YkTaYZflIqFeIcl9O/FSLdsS
RFEsbD8rcUcPT2LjuoP5wVdt/xcQd68AgJ+Lan07YQ7Rc40b+whhgDS+4SpXFHiyRkuuGNlO156j
zFDhVrdTNoiaml4hAQ0Cv96wu8opyUl5G66Fh6N9Yfs5SilAiY/oEBhpkGF9sWpN0N0CAzkai3WD
tLhpuAbZcXmT4SgKB9ZgHtjYPlJlg142b9h0zKNQnf1xDadfDi1TtmQeLGh2xrOJmE5jTFSQa572
khuHYyWBeSfWoGuqJNXWhuPnDGij372ZHc7Jinm5wNkcquXoh4nZM8H9EljV0TNlQ5GpdFmxw0FO
SvsFpHxkv3ZYKuCVKzwEZc4Kx4HTRQ9H6rh0JvU3nLN28GPnrS9Dpi4nx/7dCYkXnDAovxUgDC6r
WqTGT8bQlYwmhTKnmc1VnGy42mJ07m3yGbcD9E6Xn0cFvUFm64ahLgcaVszyJMq2CNSYhP4EIQ7L
FTA4p3FAweiCpudD7aciKW9RUmMBfhZwqCtLuuZgwUjhFcAmsSO0fBgD92tD5XEUVbTvb+CuGqBq
BgSSyshhyIuK2JNyNNNBcuw9h0uzUQZkEMo/DWwCNUwHa3JkIpAdJ2N22FzaFGFj6Bptzs/t2J0E
6BjsmwZgmuuvGZxJ0kVbkbnCqTMTF7i646gWgVA+8zDhKGcmnq4/iy16FFVciDB4lOONJh6N8CrK
EhcEQwfS7UztgZFskektDMpuIV/zegC2LlUU4KtFgdT0eSF7Qm1QBbsS4iUSN4p3SUdpUeyx5GTL
Aoj2cZrJyuYadnaJep+7HK5kQxpjO8BFXefOhZVdNWjgek7g/XJIBs5NFxY8tjBEhBfFDcIR2PWf
yAl9OXLkL3RTAmj7TMhwaQ4AN2dqn8Y3iAKcQA3e+EzgrIn/a8AtE2O7VwlQ0HU/So44RMRl++yD
DmIZw1iKQwaBFn2W49gq2lbnSIlx/iTQxVhcGZ2j/KjtusMS5qUu3BkcvXAgXVHrNrDQho2BDYgA
SDlcTAmAa8AATgafJKc/AsFRkQ7xLMzLxB1cYA7Gn02q/fhtUecHLNcF1gzp2FcClDdAqKZjGYne
Gzisj8MGmM12Ifmo1cI4CVZRh3st/Izl01xAecNAPWVwGxifhzU4iLY8irRsjKoDDVk3Ao9h+egO
h+UMpg002rEUOIW8DU6wwfJxEY7h+YReALwMBwhaU9vna6eSN6FejYF0fOJrui6NUSM7Sb3vdr1g
oM7EVZfuBanxj3IitoQdcYdNshy6QC884C7vFj7Yadehlx32O/an+EBUghYmu8hJiHC4SJ3jQBAZ
W2iuN21fwOKBvdJeP8Sz+YAEQajhrbQdEBQiG5RfHyDSaXOOLpcrI/vQFFi36/t1v+LAKgNn4nTJ
ZvaVQSmD6bhklIuXpjLxhIiUYwK9SmB4hIsuUp9ksrU/4iU4X5r2ktvNDUAxQNGny0LSLx89DfuS
MNGPKAvcyok977idYuJcLHEZvMJf4JBcE+aNz0RbOYykHJ3v4nIsBYOSYoc5x3nptFTe0Oaukc1Z
BVfa9THgQcWkxUnRozSiLQfHERFlanfeEczgI8c+mgvg7xIoPvzZc/H8sDWzY4U9yHA5R9fNANwb
9ipikDcnPGGt7YggdTG3ww53OV1qOjkmZzrWaGO+OAiXoGpGn2w+DQKGfT65OcGQMrjoNN6bx0mJ
QRXQha9kOQLZUWeUkDaP2f5ZYDKGvBZ2po8bJbMzeZeXlOb5T6A0twP7cjiTD92ZQp/UcpznwKG/
7BfGm3wA/miZA0gk1GRxPtBVaAL3fbGFScC04YAZV822v4ASKEGgr9XxJGLTlScX2+3BHnYSFOqS
zQcc6mgfwlrCjgPOVxyuBO/1XEzJBQMJAg8HOXvj7Lf7wCpbKtfCXe4XJZvTJ0kMJDooHR+Hy9qk
z7r4tCSeUNfsXqzGrqM9HKThGDPCG3ywPJnT5cpUhmKgMB3WS1zBQL8fphGB6wEA6LpP0/YGENzA
T71QduF4rQGHOwDsimJ1+Bnq2P6dNPd6xbbiwK08kFxXy5wEfLpcj6HFRioux9HKpHpwctqkuQUc
qYgyLcLvd3ow0QvfVvsrB2vmOoqtB4CtY1wNVSWOQod8B5FpA7ylrdMrs8xx9PmhflSyJxoOKbSD
z6fd2KcsYoknxdOKr5Jqh8fJVZYvp8MYDsmwy8aBEwOl4NwZ7Kl9UNkHXweQjn0ujlVzxHji9VgA
L2FtRRDv8okdzgz7+OUicYPPxC4nreA0ezE+6aM7BPD4NEErxO2DOOB3SE4QOcq0bYA46qcvjlo5
/DXw+SZs7HK7w54IUCwHL/mwxhEm6nMKTMokHDcx4wdyukhfsmzPG1/1CRG/3Y4w8FUbFcuIPSq7
cAoc7vtPuMYecAJh6gez4eRy8pQ+nvA8lotkXQ3KZibxz4tgPKs2u56XvRUsTWH/oG02L+acyFgo
TVd/XZxvGi4difvMfrRhcM/onDeq1HlLQkBdiGwQteiS6QOTpsX8csipU2+4BFz8bnNC/1dlEjox
oxMzOjGjEzM6MaMTMzoxoxMzOjGjEzM6MaMTMzoxoxMzOjGjEzM6MaOvFDP6UjMJnafEzlNi5ymx
85TYeUrsPCV2nhI7T4mdp8TOU2LnKbHzlNh5Suw8JXaeEjtPiZ2nxL7aU2JfXCahy9d+w3U3oF6S
6U6nZWJNWGBEdn0lVZOMRU7KjnS4CWm3J8ksF0Equ/lk9yF43LD9wzpva8c7eu8UAgut0GjhsBV0
kzEi24eDSjQJ/0z/+IFFBOgfzmgFauR6KMZbhiFR9tSHLx/rYqC7Xe4qSYs7nWIWR/uknMrCOp12
Z3qDYJBnIYzWMiSHTrIpH9a762uQltvxEMumtT1erpmCWTgJBgoA9F4PSUA+nePTTtnbAcj2aJAy
eRIhsQcHoICW3ZCYuwXu59xmkxz4SVaw4SgKKiYk9kZnlr18cD5xe+/or0fFKGf0TOpMLes438XI
D9LrHoj8wAxj5O37XLb9nJrRgRHkZB3c9X+w92/Nliy3lS74V/pFZv3S5+Sa93iQtTkAd15FiqQk
inw5RlKbIiXexItI6tefDA18I9Yu6zqlUrE2U9ZhlpbTV8wZEXB3wAEHhgPDhcZIaz/I5O+FyDUL
DsAHU2mgmPPDFSG0w4znx4HWS7OWN1CYqYs0z+1wq4OMcIzH6gbGDkJfh8ouYnt4QQehgvTai8i4
xMBRkYQor3l+sIOexNvK4UPcYs7Xa8hFERcvp/pzd/Br2UsziMktoGy9ZbgBhHq9iyMSvTaKa1r0
rP7gcKcRnczOcL46wsYu/zdYiJrZMGn2t7PE2Xw6VuyJgDilq4NPLPjlghROF00y5nDJFXLxlt2q
mLLOyz4s7w6is6Pv/fILX8qHdynbYYlJTDdxMU0cC+UdIqHuFge8K+vDEaZN28auIufgpft+x/Pm
MDb5lQc+h6CQlqF10zaAVxIqFQ622+kwGyAVY6RcC6a8T8FtOIhxHNle8cF6V5uUYQoKaS3nV8aH
v/CluDBKEbCfVrVmJMAuA83oQlGTSXFu8mkHMvZqOX0++8pJ2s5lJBPlF45dgNEqeComVYqKTVbg
VJm28NlFBoOQjjWyyBSepSKMskD0FmQMey9ZSVxzJwg/t/qzVXnHxnaw8IaN7UI2g5X2gS8XT85C
TRTutQRGvK8A5E5uzgQPOu9HGuwjqSqYJJe7agCKixi+HWUTjtSnuD4M9nXxh7Sn3ZUTcbwUgdIC
B3MAR1D0bfJdjkUmQV8N7lrUAQxiLoOJO7xzwBMPKJsrKgAn9S57ErCfQNCc23XaI+RdG8C+Apax
MDN6Bm/HFsZIONe0sr8lrGHxaxV7tCAB+bCjzDsgo2wTjsLn4Lz1xw4Ij/QgU+kE8pUkiy1XFMVx
N/B1u0LlcvkkgGIuB1au1rII2hoY4U0oYX77f9LlRAxdRTyLOqQFVLQ8KcQ9vTcfYGoX6JkwNAqm
9dmAYQWUvNSYALzWxh9M4ONFkbVJoR/vUyZu8GBHlg4Qo7bSsF2rbMNf8O0YPLEARiy2OcP1ST4g
OxYrarAGoPyBAhr213noXth+djWAA57GLbGHbesdr1E5xhFoqzsur3lsxAzUCJfFdBJ3Fs9gcVgO
sjvRso9DUHrVRdbCvcComOzEbfIFG/mghm87eT6wQ6wDt92WOfpiuizA/Tg7scD4LtbwaZQ2fnVH
2xfYXJup0/6xBc87MOf4DqV4vHkstjmFiZ52CFwxThy4dNZq7ytBDhlzXC5/7AoPVw5IgHIz/LdA
0E6jnWzTYgm7LN0g/bmLQR9BAWoj+KjMIQWcUTk24CynyUbeRTCXywK4/o8XWPgwQMstTxz2s0te
uoD1wO2cRHgPxy+F4YqieIWV4sLBw2E4XF6JtyfhDe98i4ToR7V0Qr0F6m64cg6W8KJymY/BDCTX
IfWBfbicx9qF4fDcJueFJo7W+actS/8fAAglZrDLwiRo10m1iol7s/e/D/AqhIknGdNzHLXLfELJ
9dB9aOSwmV1kwLWVXDcTJ//CIeyt8YEypMBLsYUM1mSXaTaw59BiLsmFLzTJ3F8EqW1+DG97QZ74
uMUANmOE3LRWpSaSQe1JjQufJzEE8NjaoATLdZPYCBdFM3yoz9Aj1xKZrh4Grq4RLOMdfgZnQnCC
oofOpQxdXPXDUZU70LxF5K4wP9K6z8BK1v+BI2VYQxHCK6bbwTh7DAausN6uXrFDko3w7V1Geejx
WpGAAQ60okvJs8Fvew9X2LofHZzg/BYBhcCtNOjgcpEBsumXFRwnKOzdstfuiJB6K+HTmHg1fZpu
AkbygUZLXDr4hWfGiLXDb89KvhyP4ASX486GVi+izLY2W+8DfJ9Uh5iABpOaSHMdJw18zM86y2U0
7GcodrvlsBGW9jCyIlFVeAyGy/5SwGQY7UB81nb1oLSFS+sc4XjXUqOYlc2Pfhdoq5zHcdMBzm0B
zS9OhtjCcbjZ5XfSB2KJH4ULQ1EW5ogbEu5x8GIauFKEM9jIBOA67+8KXRM+YGk7n/LKRsAPDJvD
VvFhIZcH4cRveQ23EUU8y56HJCiTADMOJxJg4uZ5jrZmHOp+GSdgjIRdxD47h9clqUbl8iADn+Hi
ZEhRHCnh3kKnp1djo5yJLfr4kI/MHfVYOGNWAAINM2iBzaMETbIZLA5Cu3q1j4gkDGmXmiFVRpVM
gLJpdApVIsu1QI3iQGkat1Aci5r435ZFGB/vcQDM8260DMfCFz5e15g2jstlYcKQIdZDxyjDBdOI
jA/O96a94nbp+8iK43SEyCdB/MlLh+Xrxu1UE1p2HTggxcE/o4lc8Mo7iLSLBoDHpHb2tN/eB8ku
cC9YHddg7Okex/nniTFv4K4BZouok40KF9jsUM46kCdGSQUW+6BWdRp+bAwAJ9MmuyfjpooVqQ2h
yYi5ZubbcarhcD4DhU/QMkE59cQTe8R0XCOO3dwE9mCQeYB4dCm2QZHJ5ZM8VNxeTgfgsKONcHzO
RyTIR+8IEqUtEPCoCdrcKCAPpvHnPoIVNrpAViyf+AXf6NJDgddlUtVzgioJQIzTJ7R58iRMnIaX
EGwKDDPXGFwuXEN8P3GJBE6kgn9cPLMIZyQeS3sVpglzeTSWizYv53FIzHj4Q1vhSXPlz3JcjD17
68oHzlV7wF7EfahXXI93p3lxdBsY75MqywNFqCsd1zA8knVsuGwXe227sJwCY8AbTbx1E/ycgL6K
jd4+FxgexwbfR18K7WB7jH4NpMAwuUZbEbCb2wEfXVQVdkHL9FYUxFqY2cC+ulqXT9i2rwalWZ5l
oDWLKojreRRiOrBnPknoE8hUzPP58CPCZReWS9qax0CbJ6HtPvphb9vtCBO7Gl6xoA2gxQnUx1VG
jxMoOLHtrBvI4GLTnYzPUeKSI7LHaRf8b8FCPc1s7G4mYUenGmnHDqkich7WVzrHx6DvV3aj9mk4
cgcYqRXQ9V15qwdrL8UGbdK4cLELok7qswer1nG4gC3DdNIH1x290S9g54P94CQO1WK1HVBwF1oM
W9REXuyDSuI+YfMJDNvgpZMjoEFhuvIZcrZUk+MhzpMS5FawXCxiry4tmGy7Cje7860sQIzOAuBU
GgbYd8060hzsDIC6cWQh7XjHc5KYEMM1PNlALZ88un6xmYROB9DpADodQKcD6HQAnQ6g0wF0OoBO
B9DpADodQKcD6HQAnQ6g0wF0OoBOB9AX7gD6JDMJnafEzlNi5ymx85TYeUrsPCV2nhI7T4mdp8TO
U2LnKbHzlNh5Suw8JXaeEjtPiZ2nxL7wU2KfXCahD3/571tFcr95jXKxgDQAxe7XRUozO+8I4A1E
eJBZNvEMDLKLTesCh94xbgd68AjbkDd6OAYPqx8p2X0XvOFspoPwYZJqq1nLabCvrC3ctasS8mAd
OCp7BhZTSaLlSd5WJzBbDvNjuLaye7zzd9tpa2c0rqrlPRF+4WG7F4M84PDEpnWdhXTxL+cF9J7a
oTjnLTN+hVo5E7vXXqxBOYMDZZJ00NWO2PQlBp4T1BfZ2l11Ky2VOOv7pc93UTE0fmFUuBiQc7a5
bpprDQxbMtgAR4o150gjmGGaC+1wKE1STia1GOwsSqdqI/15YgjZLzqdeRd7/sjBvGHqQ89gpR2O
qbAZ8f407NAnw59FprC+BinJ05V6GMOFnNqXYpYolNQESDcBfCxcDUc01Bn4CUcZCTdI9jnQKY7W
DPan5eSRxhLhDh3shQvw35ElGgXtNHXpYmQkpVss3YOle2Jedhgg3pVdc4U4tttFXkAXKPRyMdgd
Jz+erqyE8R8g/NraeRwwrOEk3KB5JuOTlMNwUG1Rf22y9XAFxnRSZ2+lQRf1Akvi1fk6UnK6rtw0
spPqSxPoz6B6YDiXvMElCFHw4yK1p8ewNf6Ho2hOYNu47FECDjhcOlDoVPQHYoO1t/DYBxG4STQ9
qWnl2liT3Va6ygyLVYIYOyA7bCd7RRrHNLXgf8Cm/XCUGRos+ItVItkLp2NFWAXGhyXoGTsWktqX
RRmUAW8EqU8HVlw55zEwkemqbUy348cuhmi7N+0eweMxwZmVS9LgHF5YOxZze7EmNtvAN1iOmFrD
Gqnj7LOE54+AopNZYkwehRepoGcGWM6vjNYrsvhbgywXEGE57X7lO7QcoL1FjuplXUlFkmmNRr5w
O/MHLji7UI5yYACYpr1PLsppV0xgkzDLRW7pA95xZf1xEAc/0iHmxvOhNO07DRzjE2PpYC3XNgLj
4pJYEyjkIIS/+GowX8YfJI6g5dJRbJcmGejLCVOxARLH+HLg38F4LBCXA/P+tAD2hQGmJDr1GC4y
4hslaYZM0ucHuJNgU+zNkevuBfuvicNtwFGBzzwxKg6ku736QMdci6AIBk1jGV06AJ+MUwv3VhqV
vQe/DQT3nmiyEfNWkU1oOUKHQvRoBGHThuitdyV7cBoEgX9XVHBtteUczIRaXP7F1sVgzxgkMnce
9KTsY+LlCzxmtkCsZYYNchh7UPh1euvKbsJFWhaVwoycLkqLGujsCqdBYZAgifvEUe8Nncvj2J01
mRQ7i5KqW64YZdhlJ+713vzGk++EVt/e1RXhrsVhg3TVP+MYHiwyhCANaTpAhIY0mTB20PalLNws
lrhwMSkn3H0iF/jV7UU/Kk+5sAxyOtHvA6XpeNyRhR0BGdb4DoVTF2yaEwzlJ7RaYPpt5EzWcNcr
WKCLCvNgArWZLo5GRdrlCg84YxN94VJFLnrrulcD/6rzcx/lTbCa7G+ZOKIblrrYozGD+xEXYknT
Aou7L/GuTHS3HUHL6AjyGQcddP21ZQW9sBPYlZRRDRTVSWcHNx+atfAkF+d8jmok3gsjMq4ZUk7z
zDbHge/2gdjZ+DhceQck11U+gVscChFnvgvmDFDjRx0hB92s8fE6lsOdTMHCrToxjVzBPIH1lFW/
k+6zjrnQ6nClCDAnhgy6mIBxXQGEOmzXuSwSGM18fHGZhN7+8t+tO5Kpuwa3iyDbX+oF4Sj4bp75
96EIxD+wKF5vQx/B5av+Tn0Ul2807jQeNJ766dTH0seX9PFlfXyF375obDQGDVOQNPzySaMf/tX+
WyIa7O6CY1vB8YsAU/x6+5o+vs7lu/7+K318Qx/f5NuH/v5rfXxLH9/Wx3f08Tf6+Ft9/B13Pmm8
9MV3+ZseBz3WTL7e/l4f39PH9/XxA338UB8/4hbGRsz+evsHfXzG5Z6EH+vjH/XxE77t4fupPv5J
H/+sj5/p4+f6+IU+fqmPX+njX/Tx636c1s7X22/4+01//1Yfv9PHv+rj9/r4gz7+yC3NhP+mj/1f
N5jHvHLFjRsNWDF95UHjSeNFY6MxaASNpFE0Jo0esb/YPtCAwu1CA8I2yNjuNKBng54NAUgT799A
4QaDpO+C1I35Tz/HdyEtSQc3erHRi0EvBr0YHmfELxmNgQSln4wcejUpP5C+e30oRLJ4RfHA8o/p
O2vIsUAUYzjo4KBfXinKt5tmZnDQd5aMXite1EZ8vR1rRSGzBbd49SiktpiUYi5YWLyUeNXoReD1
5kXgkP5iBotRLUj1wlCm2e/irsmKN90Luhx+DrcjoJZMy1uLVXAwIgB3v3CeBg6FQPcELqoX7tTX
28G9yRhO+p70Pen79BWmMulguoNMd9KvpF/musntZr+ig0UHi+6Y2cxRZhvP+4SMgv0mHFXQU36p
f+zfQKqn0jN4zBfTPfmNZ/CYAt8F8Z6CxXOW72JSFl2eaOTl25mLSb+WH+jbGY3JNC3fBUMu385o
eMQ8UJNBODrIfC0/h7sWE7dYJRbPcXfci4NmXnEQz7vcCxO/YDbT3GSw+sWbbaAmLN5s/jQ98W5l
O96ul17EEBf16SL6L8Vt4rZL/1Yze/kS34rci8yjy1f08VW+VR8uMlkuX9eHLJWLLJXLN/UhA+Ui
A+XybR6gvl9kqVz+hssbjSZdtsvl7/TxXX3IHLnIHLl8n1s8Qt1RGSiXH3JZo3P5kT5kl1w+49se
BtklF9kll5/oQ+bIRebIRebI5WfcubrR6/fl5/wtQbj8gr81lxeZLBeZLBeZLJdf6+M3+vgtt2iy
L7JULrJULr/nW038RSbL5Y/6+De+7fnFZLm0ybI3rjRuNPzjB40njRcP9FfMUvg3g0bQSBpFY9Jo
VsNkubTJEmijQBvtX0GzjJhACe1XIF7WTKCNwtoI3RPWPRcsngsWz6Utnr3hfjGl0k9h/XTB9LGi
urTpE9ZY6Kf9KwZhYxA2k8EgDL+CXiQUDl7aNhA6bL/CDA7eNXw73Rl+ju/yVwwvctbSszegGXmx
aGCpUFE8rDitLy9menO7edjsenCmOCqsZS8HRwWkmhM87+EfQ2pAqmc5IDXhMc+gJy4hzPOVEOYp
8IAnnJm8NCHMfXcvjt9AWEJYQlh5DGFR/6YgtTzvvguaC5qLeS96WhBfEF8MZkFzQXNBcyEyhTAW
A1VQeLzdpELY5O0T4ie3T+6a0DxNs69A84TmyYAXkzIhfkL8RPTc5cnIT0Z+QuqE1AWpC1LX5QvP
vHOiZU60zImWOdEyJ1rmRMucaJkTLXOiZU60zImWOdEyJ1rmRMucaJkTLXOiZb5YtMynmnnnBNac
wJoTWHMCa05gzQmsOYE1J7DmBNacwJoTWHMCa05gzQmsOYE1J7DmUwfWfIqZal4knHyRhugFHuYF
DuFFIOaFA3xvMFCLgVrM8mJ8FuMjWyFsa2Jivq66+eox1lOvesLVPMGCWP5h/0IDf9WwX+Vuucqe
uMqeuGJPHBzWN32Nv/vur/ffzWZXmRpXmRpXmRpXmRpXmRpXTI1myKtMjaucIlcZFlcZFlcZFlcZ
FlcZFlf5Oa4yI67yc1xlPVxlPVw/04eMhquMhquMhquMhquMhquMhqt8GFf5MK7yYVxlEFxlEFxl
EFxlEFx/Qy9YClqarvJhXH/HZTHIVSbCFRPBktYCdv0Df4trrjIarnJvXLEVrtgK17YV4u0QyJbD
a1sPgRm+X/HrYIYWyCuGxRXD4noYFi2r18OwmDDlRBO30F7b1AgM8/1K0PC7YKflXvDAlqgrVsgV
K+SK4+SKzXE9bI5FT1v8rm18BHZ9YNeH7forXpYrNse1bY6wyX/F+Lgexoc3AYt+bQyvTY1FTzc3
GMPNPfUVejro6aCng54OhqXtiethT/QCcXl314MrFxpXGr6dWR50cNDlQXcGHWyHqo0Y2y5XrJAr
VsgVK+SKvU1mtxfJyOJyvD3oV0BYMCnBK8I/htSA1IDUgNRgwAPCAsICwhLCEsKScU7oSehJ6Eno
SehJ6EnoSehJ6EnoSehJ6EnoKegp6CnoKegp6CnoKegp6EExWBVgRlC66nX14o/L4eol3Wu5F/Fe
mgPDNDBM43IwyfSc8gpWQK95rHI2Xq9e7rzO4dq5HsuXV63pJ5sPiwbET19Z3Wgj+HKw3/SP6alX
LS9WXpEWImOmNa8u+rXol7l30a9Fv7zaeElZ9MsLiJcLrwntIbjpp7fgPZr8m35/o88tKjdWgpaY
m7p5k2q/SbXfpNpvX9XH17hFZN7kKrhJf9++wbei/SZFfpMiv32Lb5tKRTduUuQ3KfKbFPlNivwm
RX6TIr9Jkd+kyG8/4HHubXdTqv0m1X6Tar99xo80ZDfp+Ns/crkHUMr+JmV/k7K/SdnfpOxvUvY3
KfublP1Nyv4mZX+Tsr9p93+Tar9p03+TRr8pPHHTXv8mtX2T2r6htm+o7Rtb/Btb/Btb/Bua+IYm
vqGJ2TaFt003ohI39K43UrfWu+Ed1a0VcHhrdWP3f2P3f0Pv3tC7N/TuDb17Q++yMwvvzG7oXW/R
buz+2auF92reot1QwDc2/Tf07g29yzYuvI27oXdvRDduqNsb6vbGhv7WWja8+buhbqkltzfo4GB8
BrMz6OCA1AGpA1IH3RkmFQlNyBiQOkwGpA7/hinwEpYQX9Ac0BzQHNAc0Mxq4fXBC4PF3ZJtIUaV
3ix+FjELFar0dvChuc7MljBJ+SsIM7eYSRLCEsKSeS8/EArNAAk/F31PSPWAH0PH2z2GJsyv8HOO
H0NqYVQV/FwQXxBfEF8m3l9BfEF8MbwFzQXNZZp54ITmCc0Tmic0T2ie0DyhcELG9AOZ9wlhE8Im
hE0ImxA2mfcFPQt6FvQs6FnQs6BnQc+CngU9C3oWsnOMIRQuKFyed1+B1Facdz9Fnbnrh/f+S7++
92/VqfuXuAWhLfRpW0b3L/ffPRv3r/A3dlJPyl3K9S73+1069S6deken9rzdpVPv0ql3bY7vUqV3
qdK7VOn9b7lTA3uXTr1Lp97//j+fduV1lya+SxPftaW+S+/epXfv0rt3banvP4YWpKF57a5N9l16
9y69e5fevUvv3n/GLSiE5sq7NPH9F1wWT9ylku9Syfd/4VuxxV26+S7dfJduvks336Wb79LN9z9w
J4qxOf0ubX3/Ny43e6C276jtO2r7jtq+o7bvqO17q+2wa+sOhuCOtr4f2rol6s4u+c4u+c4u2Q6x
O0r6jpK+o6TvKOk7SvoOquB+qOQFmy7/BuI3iG8FfEcB30EV3FG3d9TtHXV7R93e2d3aM3Znd3tH
3ZKK/EWy6xeothewtL0BYQPCBoQNCBsQNiBsQNiAsAFhg6Eb0BPQE9AT0BPQE9AT0BPQE9AT0BMs
WMsD7rug0Lbt8nNYy5Yf6Hn3kz2qdDnoRdKLpBfJfsUr6fJLGRbr5sX42JJjAUVJUxzqRaWAuB4z
mFCYEJb0NJmL9Ev9Lr+CXhS9KJ5czEUxF8VcFIQVhBVDV9BT0FPQU9CDRkDvcprsdfc67wUedXv3
yu5l26swSyDemrge/MyiyFJ3PTicNc+rHMHy68H8E5pZqI6lyWuLFxCvEi3m9gNdD9lZppC39zb3
ekjTgkJzr3nVLGrOFEMGTqPAaRTXQwaXv4L4Rb9akeM9CrxHgfcorod4mlebRR+a2oce9uBRQR9b
ih/F3zcaTFgwQMH0tDA/IKfN44epoi9BN9tKfmiT/fgyl0XsQ7vthwyCx9f4tnsgy+Ahy+Ahb/lD
BsFDBsFDBsHj29wJJS34j+/wN7Oe9L83eQ9ZDw9txB8yGh4yGh7aiD++xy0MUQv/QwbB4wdcFic8
ZBk8ZBk8/oFvxR4PmQgP7cgfMggeMggeMggeMgge/8ydPezakT9kBzy0I3/8kh/1XMgOeGhr/pD6
f0j9P6T+H1L/D6n/h9T/Q1vzh5T9Q1vzBzr+gY5/oOMf6PgHOv6Bjn+wNX+g2h+o9gex9gca/YFG
f7DbfqDIHyjyB4r8gSJ/oMgfKPIHAfUHavuB2n7guMYDGfZAPgAM4ooMuyIfqPYHqv2BB9teygeA
QdyVYXflA63/YJP9QNk/iJrj0gy7NCk2Hvg2A99m2Lf5wDJ4sJJSqvBFaZzX41jdyg0GoZiUwTQN
BqHo8nCDvnvlKl9h4gY9HfR00NNgNIKJ8wJUfiDPCXeZRalYacoPpKdBT4NZDrrDMoXNgc828Nm+
qFG6NyBjMqpheuhXQMZkwAN6WGiwMDim/np4hWFnzyGxwPcb+H73r+iFzYjJxE36xTrA7t9uYbIA
vB4HY5ufJ1Npxjb3mmknt5t7i+6YM4vuFN0xQxbEF6Sax8xRZpuCQs97QVhBmKd7Qo8nztPkuZjQ
48E8hs6Ty7s8mBOen7zdA+XROG6HsOlRNYW+3b/hqwXxtjkWfLjojm2ORb9scyw6uOjgooOLAV9w
y4KjFjx2/Ia5WHTQNsdiNBaTshiohQwet6uDT43OU3c89funRuHZP9EIPKX1n3KtP6Xsn1/luaLm
KTfAU8r+KWX/lLJ/Stk/peyfUvZP7f6f2v0/pb+f0t9P6e+n9PdT+vup7ftT2vqp7ftTSvopJf3U
9v0p3fyUbn5KNz+lm5/SzU/p5qc260+p5KdU8lMq+akd+VOa+ClN/JQmfv6G3vcoSiU/pZKf/8q3
PbjSzU/p5ucf/6QJVP435Vw5cR8n7uPEfZy4jxP3ceI+TtzHifs4cR8n7uPEfZy4jxP3ceI+TtzH
ifv4onEfn2rOkRNVcqJKTlTJiSo5USUnquRElZyokhNVcqJKTlTJiSo5USUnquRElZyoki8OVfIp
Zg8Jh3+eMhqeGA1PjIYnRsMTo+GJ0fBsoyGu7xhu8pWY2w7uJ/bEE3viiT3xxJ54Yk88sSee2BPP
ticCR3nYUf7EwniSI8qu8yemxhNT44nPwF71JzbHE5vjiavgiavgiT3xxJ544ip4YkbYO/8kiaXd
9E+cB/bXP7EnnjgPnsdADWh2B4dp3mhAhnvRRoO9/M/j7W0i4PcP+/2f2ArPdw/07czF8WPmYngu
3C+605sb4gf7FSYl6GDQwaCDwXwF3QkGM2Ck4y7GMCA+ID4gPiA+ID4gPiA1oTAhLHlFQlhCWEJY
QlgyvAk9CT1tqt6ODiaEJYQlhCWEJYQVhJWHDjIKCosnl7+CwoLCgsKCwoLCYsQKwgrCCsIKwgrC
JoRNRmxCz4SeCT0Teib0TOiZ0DOhZ0LPhJ4Jr5olJoRNCJvwobllQeGCwsVyEbx9QeqC1MUrlp/j
H0PqQvQCaTL7oQ+89HtVZWdP6a1XL3m94PVy14vdC2EKs0//TOP/kkp+SSW/pJJf2n+/vsYt/Uip
5JdU8ksq+SWV/JJKfkklv77NnaxaLSkvKemXlPTrb/m2iZG2fklbv6StX9LWL2nr1w/6lmRNaEF7
SX+/fsRlMdFLivwlRf76Md9eabAKtiy+pONf0vEv6fiXdPzrn/kty2KL6+tn/K2Jff2cv5nfNsdf
MgheMghev+LbnpJ/4e8eb5kIL23WX7/l255ZmQgv7dpfv+fbHmiZCC9t31/SxC808QtN/EITv9DE
LzTxi+37i+37C3X7Qt2+ULcv1O0LdftC3b5Qty+2769WruFgpmOYLzb0r9ay4ajmC3X7Ymf/IhTv
gOer1W048vlC777Quy/07gu9+2IfT5g0HCZ9HZq4GA1r4vKT6eBGBwfdGay2xdttahTMUYhmMYYD
9iwGc9Dl4S6bDES8GMzJ8E6GbkD8gGbr7wk9k5dOvwsKJy+dDO9Eg04/h1EdjOpwdxjDSU8nAz7d
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
3Zv07k169ya9e0Pv3tC7N/bxN9TtDXV7a3Ub1EvfrzxpvGhsNAaNoJE0mH6vbunnTBrwSvLkVsk3
VPKNWDsl2fcrEL9B/AaprZtv6OYbuvnGXp+K7kFF9/0rerH5Cr1obX1DW9/Q1je09Q1tfUM/3Q6V
kzxnQOqAVOuV5BUDmgc0D7o8oHBA4fCTfTsUDigMKAwoDCgMxjAgLCAsGMOAnoCegJ6AnoCegB6L
vRVMmh4oDOa9oDDdQOVY9xQMUIxqQXNevlgQyukwOR0mp8PkdJicDpPTYXI6TE6HyekwOR0mp8Pk
dJicDpPTYXI6TE6HyX8Bh8knCUIhI81G2pmNtDPbUwP31LA99bOnfvTsn2i4nkKpPYVSe2pxfGpx
fGpxfGpxfGpxfGpL9NSa+NSa+NSaSLbZ7ak18ak18ak18ak18ak18ak18ak18ak18ak18ak18ak1
8ak18ak18ak18amtzFNL4VNL4VNL4VNL4VNL4VNL4VOw7KdWwKdWwKdWwKdWwOev6UWPjZbCp5bC
p5bCp5bCp5bCp5bCp5bCp5bCJ0vhk6XwyVL4ZCl8shQ+2Xk8WQGfrIBPVsAnK+CTFfDZK2CQzne/
UjQmje4H692T9e7JeuckwKT83b+CVC18Qabf/Qo0b9CsFTBIArxfgfgN4jeI3yC+F74nC9+zF74g
h/B+BeIbYE1W4c05lUgvvJFcaSOV0kbGpI0ESBsJkDYyH21kPtrIfLRRg2qjBtVG1amNmlAbxaA2
SiBtlEDaKHi0UdVooyzRRlmijWpEG9WINqoRbRQY2igwtFFgaKOc0EbNoI2iPxtFfzZq/WyU+Nko
1rNRrGejNM9G/Z2NAjobBXQ26uZs1M3ZqJuzUQFno8zNRumZjYoz29NrgMXoYNGCHjObWcv8Ywbw
dHuWC3oKegp6CnoKegp6CnoKeib0TOiZ0DOhZ0LPhJ4JPRN6JvRM6JnQM6FnQs+Engk9E3oW9Czo
WdCzoGdBz4KeBT0Lehb0LOhZ0NM+wDjGcEHYgrBWHr3W9ErTllYvLr209MLykvJ4SXm8pDxeUh4v
KY+XlMdLyuMl5fGS8nhJebxQHj2rLymPl5THS8rjJeXxkvJ4fZdbmlZpkZe0yOv7fNtdkDp5SZ28
fsS33TPplZf0ykt65SW98pJeeUmvvP6JO4tGD4c0zUua5iVN85KmeUnTvKRpXtI0L9naLymYlxTM
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
TX1IN79JN79JN79JN79JN79JN7/9HdS4z02tlPSblPSblPTb9/Uh3fz2Q27pnklJv0lJv33GtxqX
tx/rQ0r67Sd8293/qT6kpN+kpN9+pg/p5jfp5rdfcidM1/L69qv+u8X27V/4W9L7Jv39Jv39Jv39
Jv39Jv399ntugSNbzt+k0d/+yGWx05tU+xuq/Q3V/oZqf0O1v7Vq3xsPGk8aLxobjUEjaCSNojFp
IHXFK7YPNCBsg7ANwjYI21BdhfAXhG2Qat1ckLq5Ac0bQlLwUvkKvdjcoDsb3dnozubuICrFbwbL
XK+AF79APHDR4y96+EW3Xfq3/ZMv9S1aMsdFMnaRjF0kYxfJ2EUydpGMXSRjF8nYRTJ2kYxdJGMX
ydhFMnaRjF3+Th+SqIsk6iKJunwfajRRF4nWRWbvRRJ1kURdZPZeJEiXf+ROzexFZu9FgnSRIF0k
SBcJ0kWCdJEgXWTkXmTkXmTkXiQkFwnJRUJykZBc/vULz05yoj9O9MeJ/jjRHyf640R/nOiPE/1x
oj9O9MeJ/jjRHyf640R/nOiPE/3xqaM/PtVMJSdQ5ASKnECREyhyAkVOoMgJFDmBIidQ5ASKnECR
EyhyAkVOoMgJFDmBIv+rQJFPLpPIh7/8aF2pH0/146l+PNWPp/rxVD+e6sdTwv6UsF/grqdk/Cmr
/SnRfiLaT0T72aK93zhpLL660bj3V81lT6T+idQ/cZlemPsn4v9E/J+I/xPxfyL+T8T/ifhf8Bxc
UPBP1oEn68ATG/2C7n+yIDxZEJ6Y5k/E/9nivzdMs38DzRs0b9C8QfMGzRs0b4xY29/d4e5ud7a7
2h3tPclLqvElsX1JbF8S29fXoO5BQ4S/JMgvCfJLgvySIL8kyC8J8kuC/JIgvyTILwnyS4L8kiC/
JMgvCfJLqvEl+X1Jfl+S35fk9yX5fUl+X1KEL4ntS2L7kti+JLYvie1LYvuS2L7E7i+x+0vs/hK7
v35Dt7U4v8T3L/H9S3z/0ib1JXZ/id1fYvcX7P6C3V9oshfM/UKTveDpFzz9QpO9YOUXrPyClV+w
8gtWfsHKL/adLxj3BeO+UGAv+PXV/Lr3lndtELZB2AZhG4Rt/jGEbRC2QdgGYRuEbRDW/No39619
Y9/WN/Utm/h1E79u4tdN/LpJzWzizk3cuYk7t2/Su36V2HQTm25i001suolNN7HpJjbdxKab2HQT
m25i001suolNN7Hp9g+8sXslft1+zOXu5T/yd3dXHLyJgzdx8CYO3sTBmzh4Ewdv4uBNHLyJgzdx
8KYFexPjqnbZUO2yodplQyXLhkqWDZUsG5QsG5QsG5QsG5QsG5QsG5QsG5QsG5QsG5QsG1QqG1Qq
G1QqG1QqG1QqG9u7NRid0PsUCpQN6pJ9/Gr5CqRukGqeXnRng+YNmjdo3qB5g2bYkiDVpbdCe8Ov
oBewa3P5/hu/3S+lF8337bAYfjwLrXZRe0NEtftCzov9skgcflU/iHFrN5eKCA3VDhqqFDRUIGio
QNBQgaChAkH7nUlD/VHJoP1vveuK7+pKpO2Ky0plhYbKCg2VFRoqKzRUVmj/7Y2GBkWFhoYKDe2X
NS+qODRUcWio4tD+rSZLpYeGSg8NlR4aKj00VHFoqOLQUMWh/c4XjR66H/P3oBE0erClUlSeaKg8
0VAxoqFiREM1iPZberAkmSpGNFSDaP9WfK1iRPvfYgNVJfr4d3uXVJ5oqDzRUHmiofJEQ1WJhqoS
DVUl2u8UX6s80VBVokFVokFVov2HF65cadxo3Gk8aDxpvGhsNAaNoJE0isak0f1EaCk9NCg0NKgv
NCgrNCgrNCgrNCgrNCgrNCgrNCgiNCgiNCgiNCgiNCgiNCgiNKgdNNqX0+61ds10qPKKH+6KH65d
be2UueJfUxGPoSIeQ7U79m9FvIp4DBXxGCriMVTEY6iIx1ARj6GSHfudTxrqrYp47H9vNGBZKJeM
qZrHUDWPoWoeQ9U8hqp57LckDQ2P6nsM1ffYL3cvJVoq9DFU6GP/ViOoih9DFT+GKn4MVfwYqvgx
VPFjqOLHxzvbLXnFG6kaIPvf4gQVA9n/FkOoKshQVZChqiBDVUGGqoKMQH7aU6XyIENVQYaqguzf
9jxJkFQeZKg8yFB5kKHyIEPlQQblQQblQQblQQblQQblQQblQQblQQblQQblQXYa/JtBI2gkjaIx
afRoEze44h6jYMigYMigYMj+G96+QeoGqRtkbH6Of7zRgMINCjco3KBwg8INClui2t3VLqyE19pz
3N6pdg23o0lZ+4ey9o9EfhIe51kSJGXt3y+LKKXvH8raP5S1f/+23yTRUvr+ofT9Q+n7h5L1DyXr
H4n+SdQc5P1d/91+sESQ2g+mPP5DefyH8vgP5fEfyuM/lMd/v0VzpYT+Qwn9R6KI2jmmzP5Dmf1H
/vQ/nxV0XMTkFzH5RUx+EZNfYPILTH6ByS8w+QUmv8DkF5j8wn77jcDxG3vgC9riQtzsjf3tBba/
wPaXZvv9N37FpNE+JvTHBba/wPYX9McFW+/t8Kz3tu1yuOQmhG28a6M7m3/s3wwa0LxB82aa/Rto
3qDZzrW2/6/66bX/whnX24CrGPaqx1z1kKtE4yrRuMp8u36VO/sWqZarBOEqQbhKtVzF/1fx/1X8
fxX/X8X/V/H/9W95Kn7gtriv0h/X7/bltravYvur2P6K363t7Kv4/yr+v0pbXMX2V7H9Vdriit9t
4SNuy/qKS7tjDdef8rdY6SpD7CpD7CptcZW2uEpbXKUtrtIWV+2MrlISVymJq4ysq3TDVbrhKrG5
SmyuEpurxOaK2FwRmytic0VsrojNFbG5IjZXdMMVIbmiEq7IxhXZuKISrojEFZG4IhLXI3C88Dcv
3rVB4YaILt6+Qaplw2GaBT2bHwhhm5/s59CLzXcRylmw+KIXDiUvurOxoRns5oZp9m/Y1Aw8hQPi
W8YuxIsvbB9uoubGxqr3DTc2Nx07vvn16sZN77z5jf0YyeFNcniTHN6+yo/8Ek3bDbeZd2veprXh
f5Os3iSrN8nqTbJ6k6zevtW3BF1sU/8m6b19h8sar5vE+Caj7/Z3fCvWvGkbdZPQ3iS0N+mqm2T1
Jlm9/Yg72by2mXvDnRHsUYM9atupNwn2TYJ9kxq7SY3dtHu6/RO39HhLem+S3tvP+baHXWJ8kxjf
JMY3ifFNYnyTGN8kxjeJ8U1ifJMY3yTGN4nxTWJ8Q4xviPHtcES3VX1Dnm/I8w15viHPN+T5hjzf
kOcb8nxDnm/I8w15viHPN+T5hoq7Ib03VNwNob1h0N3QYzck84Zk3pDMG5J5Q4/d0GM3DLobwnZD
fd0w6O66+a5b77rxrtvusHUgVr2nuOsh9y9xWU+/S37ukp878tN7irv02F2ycZds3CUbd8nGXbJx
RzYS2eg9xf3b/I2bJpnT3iLcpfTukpa7pOUuFXeXkNz/nls0yHdJy13Scpe03CUtd2m2uzTbXQJw
lwDcJQB3CcBdAnCX1rqL7+/i+7u01l3sfhe738Xud7H7/dcQpQm/i+/v4vu7+P4uvr+L7+9/4Bax
xl0CcJcA3BGAOwJwR4/d4fs7fH+H7+/w/R2+v8P3d/j+Dt/f4fs7fH+H7+/w/R2+vx/+vOTJG4Rt
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
hIqchIqchIqchIqchIqcxBP5mbBDu2pU9iS67MkdP4zKnoTKnsQTe7IdMNQ/CeqfBPVPgmonQbWT
oMhJUORkfw5C0p6Q5yE27eig7Ml+Jbjir3wlaSAt01dQerO40tyD2FD/ZP/N5Ard2ejORnc2urPR
nY3RaNmg7ElQ9iQoexKUPQnKngRlT4KyJ0HZk+h+di+7j73j7EWg+6KyJ/FCxbXfQPVPQvVPQvVP
QtVOQtVOQtVOQtVOQtVOQtVOQtVOQtVOQtVOQtVOQtVOQtVOQtVOQtVOQtVOQtVOQtVOQtVOQtVO
QtVOQtVOQtVOQtVO4oWt2P4NlT0JlT0JlT3ZvxXrqf5JqP5JqP5JqP5JqP5JqP5JqP5JqOxJqOxJ
qOxJqOxJqOxJqOxJvGD39pK8DgXSfhIKoQSFUIJCKEEhlKAQSrwOvl/+zYvGRmPQCBpJo2hMGj3P
sDIVUYKKKEFFlKAiSlAIJSiEEhRCCQqhBIVQgkIoQSGUoBBKUAglKIQSFEIJCqFE37yhchaapt1A
/agNqW3/Tz+vn6YaKfu3Ik7FUkLFUkLFUkLFUkLFUkLFUmJjvV+sIe372NhiybERKp+y/90ESQBU
RyVURyVURyVURyVUR2W/RaOggiqhgiqhgiqhgiqhgiqhgiqhgiqhgiqhOiqhOiqh8imhqimhqimh
qimhqimhqimhqimhqimhqik7NT10EgCVTwmVTwmVTwmVTwmVTwmVT/m4WZCvJVRHJVRHJVRHJVRH
JaijEtRRCeqoBHVUgjoqQR2VoI5KUEclqKMS1FEJ6qgEdVSCOipBHZWgjkpQNSWomhIUSwmKpQTF
UoIaKUGNlKBGyt7nCw3fBYXtd37gWqJ8SlA+JSiWsv/Gr4BmWBiRoEZKtIemPTLDT3jQ0FjJixLt
Q2lcxgP3kQqhhAqhhAqhhAqhhAqhhAqh7LdoqFURJVT/JFTbZP+2ydHCryInoSIn+7dNpQRAtU1C
tU1CJU1CJU1CJU1ClUz2OzWLKmkSKmkSKmkSKmmy/6g7KUlQbZNQJZNQuZJQuZJQuZL9lklD46oC
JqECJh8vR4+yhEQFTPbLbzTEJyppsv+tiVdtk1BJk1Alk1ABk1ABk/23NxqabpU02f8WY6m2Sai2
Sai2Sai2SaikSaikSVDSJFzS5IEzhZImQUmToKTJ/psXVx40fNeL32xccWPQCBpJo2hMGrBaI18e
IF8oexKUPQnKngRlT4KyJ0HZk6DsSVD2JCh7EuOQsUAMAno2aG7d8cBtQ0WUoCJKUBFl/83iCo2W
unYrdVfae9QvC+5u/88D/08wFHLthEqj7H+rt6qREvGVLzTfQKgGS6gGS6gGS6gGy04bTJowjRxB
ofIs+9+aB9VpCdVpia7K8gBNEiwBchGFirGEirGEirGEirFEF2N5UOTigT9IxVj2v5nf3vQ/2PSr
TkuoPEuoPMv+raZPdVoiWC+KCerdvgq2hAq27Jd7nrSCqHJLqHLL/m3PmpSqCraE6rSEyrOEyrOE
yrOEyrPsdzKmDaJQwZb9b1btQqP0Jl+1XEIlXEIlXEIlXEKVWyJQvIUU9A5ftVxCtVxCtVxCtVyC
Wi5BLZeglktQyyWo5RLUcglquQS1XIJaLkEJl6CES1DCJSjhEpRwCUq4BCVcgsotQeWWoHJLULAl
KNgSFGwJCrYEBVuCgi1BwZagYEtQsCUo2BIUbAkKtgQFW6L9mM1/7ekT00WzXPOW6rSE6rSE6rSE
qrKEqrKEirGEirGEirGEarCEarCEarBEIi3FatXOFVVlCVVl2S83KZIfFWOJRH7a26IaLKEaLKEa
LKEaLKEaLKEaLKHSK/udLFXtTUlEYqL4JnqmfRSq0xIqzxIqzxIp2dDppUiU6oT/21mg80yRaNd2
FuhgU+hgUyRC0s4CnXAKnXAKnXAKnXAKnXAKHWwKHWza70SntXtAR532v3ua/8jfPd8SEg4/BYef
gsNPweGnyEOptquAU1DBKajIQ6m284DjUMFxqOA41P6byRU/0Hf5q2Y+5IdzUcG5qP05zOXybyB+
YyIW07roYMsYZ6eCs1PB2ang7FRwdmq/3U8OGhC/QfwG8RvEt7CVn6IxbYBUs36zevN0ewJ1ZCp0
ZCp0ZGp/gIjvs1MPtoc6MhU6KRU6IBU6IBU6IBU6IBU6IBWFHC7W494z6qRUFHLYAXwdmQodmYpC
DnuXqLNTobNTobNTobNTobNTobNTUcjhghl6I1nIYe8Sdaxq/7uHReKnY1WhY1WhY1WhY1WhY1Uf
lXZv0HS+KnS+KnS+KnS+KnS+KnS+KnSaKnSaKnSIKnSIKnSIKnR2KnR2KnR2Kjg7FZydCs5OBWen
gpNS4QNST4L0HJAKDkgFB6SCA1LBAanggFRwLio4FxWciwrORQXnooJzUcG5qOBcVHAuKjgXFZyL
Cs5FBeeignNRwbmo4FxUcC4qOBcVnIsKjkNFL0O9+vQ60ktFrwbtidMpqNApqH2oRLWOQ4VOQYVO
Qe3fqis6DhU6DhU6DhU6DhU6DhU6DhU6DhU6DhU6DhU6DhU6DhU6DhU6DhU6DhU6DhU6DhU6DhU6
DhU6DhU6DhU6DhU6BRU6BbVTqrHWcajQKajQKaj9W02AjkOFTkGFTkHt32pWdBwqdBwqdBwqdBwq
dBwqdPgpdOYpdNRpf4BmU2ee9r81qTr8FDr8FDr8FBx+Cs48BWeegjNPwVGn/VGDRvDVg8aTr5Ir
LxobXxWNyVd+4OKKn+znFA3ftfquhgI8gQJwQGq/Qnfai/1kT8uRqeCkVHBSKjgpFZyUCk5K7bf7
N/SrpYUDUsG5qOBcVHAuKjgOFRyHCo5DRa+q7XLrBbLXxV4OdeYpdNQpdNQpdNQpdNQpFkLSm3Cd
eQqdeQqdeQqdeQqdeQqdeQqdeQqdeQqdeQqdeQqdeQqdeQqdeQqdeQqdeQqdeQqdeQqdeQqdeQqd
eQqdeQqdeQqdeQqdeQqdeQqdeQqdeQqdeQqdeQqdcAqdcAodbAodbAqdXtq7rfnSMabQMaZYiEQ7
EXSeKXSeKfr00hP3gU4vBYeWgkNLwaGl4NBScGgp1rHMt4OBs0rhs0pP0BucVQrOKgVnlYIjSsER
peCIUnBEKdY75uauDVI3SO2TSU+wIJxMCg4kBQeS9t/wrg2am7k5mRScTArOIQXnkILjR/tzIHVz
wyK6vth8A6cr4HQFnK6A0xVwugJOV8DpCjhdAacr4HQFnK6A0xVwugJOV8DpCvgzuwI+yUwD59mB
8+zAeXbgPDtwnh04zw6cZwfOswPn2YHz7MB5duA8O3CeHTjPDpxnB/5MZwc+uQwDO66AZKr5pGPK
qprKqprKqprKqprKqpofcH9oCLKTqSpjaipj6v6tmFapU1OpU1OpU/dv5crpHKrKmJrKmJrKmJrK
mJrKmJrKmLrfeaMhjlcO1f1vLY9KpppKpppKpppKpppKpppKpppKpppKpppKpppKpppKppqdTFU5
VFM5VFM5VFM5VFM5VFM5VFM5VFM5VFM5VFM5VFM5VFM5VFM5VFM5VFM5VFM5VFM5VFM5VFM5VFM5
VJMcqkkO1SSHapJDdR8MXLudA4Ssqvnh8Op1VhDSqybpVfPD4dZufAd5VpM8q0me1STPajrPKllV
88Ph1VN4fm9wl33Xye0dDn22tydJr5qkV03SqybpVZP0qkl61f12GLTBI0646vSqz/YFJclUk2Sq
+eHw/BXDu5ke+tVi8+bHidBOpqocqvtlpqMdRW9+tKjv9KpPHEBKr5pKr5pKr5pKr5pKr5pvOMOL
7jaYpBOudnrVJ/ksO72qsqqmsqru3zalkjGlV02lV81Or6qsqqmsqvn2Xe5059QZpTLd/3ZnGP/Z
oySp6yynSm6aSm6aSm6aSm6636J5UZbTVJbT7CynndNUiUtTiUtTiUtTiUtTiUuzE5cqX2kqX2kq
X2kqX2kqX2kqX2kqX2kqX2kqX2kqX+lOlBhBiUtTiUuTxKVJ4tIkcWmSuDRJXJokLk0SlyaJS5PE
pUni0iRxaZK4NElcmiQuTScuJU1pOk0p2UmT7KTp7KQkJU2SkiZJSZOkpElS0iQpaTopqVOQOvMo
CUeThKP5dqiUibu+HUlKQZoXlgK5lbJzkSrzaF7gInmX8mJmEp1KQZqdglSZR1OZR/OCbExkQz6j
vKB2ZpOAkMhflMpOmp2dVElJU0lJU0lJ84L+mfB/J3VUdtJUdtL9sjqgNKWpNKV5QUga6dH5SpWm
NJWmNJWmNJWmNJWmNJWm9OOdi2FtIIgSl+5/a7aVwXT/W8OuVKapVKapVKapVKapVKapVKb7LaxT
vflWctNUctP9cs+FBElZTlNZTvdve2YkUcpymspymspymspymspymheiU4t56s230p3uf7OwLphl
NZcgdWRCTTKhJplQk0yoeTl0XZdjIBNqkgk1L4eu68oMpERNUqImKVE/6tLht/uBvqunFoEkN2qS
GzXJjZrkRt0f6K+guSWTJKlJktR0klRyoya5UZPcqElu1CQ36v6KKw3GZ4PUltUXVRSuXRmja1a4
110bp2tadAWLLlzxJX7UBTckmUqkul9+0ehCSV/l737X1/i7X9r1kiSiSra6f9v1dSSiyrq6Xy4a
TZSEVnlY98tNpKS3E7Iq/erHbzvG3nlYlX41lX41O/2qsq6msq6msq6msq6msq6msq7uj+u6Kz/m
7y5l0sWVJJDXLikjgVSO1VSO1f0W5qo3ksq6mp119dXbylTW1VTW1eysq9cut9S1ZbqSTBeQkRxe
u6aS5FA5VlM5VvN61I1p0Xr1rjVJtrpfoayKC8i4lJIrKLluzItiLC1jL/ICvqi8QPrVJP3q/pWv
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
s7bv87f4VqM4y5A+S8bPkvGz9uizRPss2/gsQT5rIz5Lfs+S37P237PE9iyxPUtszz/ijZquWfJ7
lvyetf+etf+eJZJnieT5F9yp+Z0lkmdtu2cJ4Fnb7llyd5bcnSV3Z8ndWXJ3ltydJXdnyd1ZcndG
7s7I3Znd9oy4nRG3M6VFKX9+Xtlo7DQOGoVG0Kg0mH6vbtXP6TSglcqTUyTPiOQZjzgV1s8rgD8A
fwA1ZfOMbJ6RzTM7cgq0BwXaz6/oxeEr9CKl9Yy0npHWM9KaQqsHBVKP+RI5lecUoBagWq5UXlHA
XMBc6HIBYQFh8ZN9OwgLCAOEAcIAYTCGAbAAWDCGAZ4AT4AnwBPgCfCY7S1gqvGAMJj3BsLqBiLH
sqdBAI1RbWCuz0/1pM1ncTjnji65o0vu6JI7uuSOLrmjS+7okju65I4uuaNL7uiSO7rkji65o0vu
6JI7uuS/QXTJF3Jk5y/JenIHr9zBK3fwyh28cgev3MErd/DKHbxyB6/cwSt38ModvHIHr9zBK3fw
yh288q4Hr7ybuVBmLwjm74udzA8NjaAx4pmssyA5Z8pqFETofLFBZQ4qyoKla/NXKAKNeTK1VSbD
0+PJaJBLg1yuoWeaPQeNfrkXBm/MDcwGZjzXAwHWoJvrCgg7CDsIOwg7A94B1j289LSDsIOwg7CD
sIOwg7CDsIOn+4EAGwAbABsAGwAbABuM2ADPAM8AzwDPAM8AzwDPAE8K50U/XUwOcFkO26IbFxg0
B3HJu9WXBSmdI7vI8r9IOC8SzouE8yLhvEg4L9qSL5LJi2TyIov9IlG8fJuHa1AWyeRFMnmRTF4k
kxfJ5OV73KLhWyScFwnn5ft8qzFdJKUXSenlNd9qoBftshdJ6UVSepGUXiSlF0np5efcqZlZ5A5f
PuSy5mn5iP81XYvk9iK5vUhuL5Lbi+T28mtuQQwloS2S5MtvuZyzJZG+SKQv/8m3mvsF2b4g2xdk
+4JsX5DtC1vpJUX6+RyYLUl5IZlggaYXpP2CtF+Q9gvSfmGXvSDbF3bZCyJ9QaQv7LIXJPmCJF+Q
5AuSfEGSL0jyhV32gtxekNsLcntBbi/I7QW5vSC3F+T2gtxe2GUviOsFcb2wy16Q0gtSekFKL0jp
BSm94BcruAYL68KC3F7YShdWigUBviDAF7xjhUVkubZLA4TB7eHf+CvAB/M+EEKD7njLMOiX9w7e
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
DSVTDSVTDSVTDSVTDSVTDSVTDSVTDSVTDSVTDSVTDSVTDSVTDSVTjU2spbylobylobylobylobyl
obylscE/HXJIW40ymUZmMl0wxCiTaSiTaWwolGmBIaVpkNI0SGkaJDANEpgGeUuDvKXnc2CSNIVs
F9ukpYNMpueV4Iq/8pVKA27pvoLU640rST2wDSlNz990rtCdg+4cdOegOwfdORiN5A0ymQaZTINM
pkEm0yCTaZDJNMhkGmQyjexn9jL7mFvOXASyL8pkGjsyLg0HSmkaSmkaSmkaSmAaSmAaSmAaSmAa
SmAaSmAaSmAaSmAaSmAaSmAaSmAaSmAaSmAaSmAaSmAaSmAaSmAaSmAaSmAaSmAaSmAaSmAaSmAa
O8piGjiUyTSUyTSUyfT8VqSnlKahlKahlKahlKahlKahlKahlKahTKahTKahTKahTKahTKahTKax
Q+5pJtkvAZKGEnKbBrlNg9ymQW7TILdp7BfdD/9mp3HQKDSCRqXRaHQaOc+QMklOgySnQZLTIMlp
kNs0yG0a5DYNcpsGuU2D3KZBbtMgt2mQ2zTIbRrkNg1ym0befCByBpIm7UD5qAOuTQNQPi+fprSn
57cCp/ynofynofynofynofynofyncbDeD9aQNH4c7LFk2QhlRD3/T0BiAKVGDaVGDaVGDaVGDaVG
PW/RKChHaihHaihHaihHaihHaihHaihHaihHaig1aig1aigjaigRaigRaigRaigRaigRaigRaigR
aigR6okmh04MoIyooYyooYyooYyooYyooYyoL7sFGVtCqVFDqVFDqVFDqVGD1KhBatQgNWqQGjVI
jRqkRg1SowapUYPUqEFq1CA1apAaNUiNGqRGDVKjBolQg0SoQf7TIP9pkP80SHsapD0N0p6efX7S
8F0gTMPzim2JjKhBRtQg/+n5G78CzJAwLEHa00gTTZpkip+w0tBYyYwSaUTJyIwV+5Fym4Zym4Zy
m4Zym4Zym4Zym563aKiV5DSU0jSUrvT8NuFo4Vfe0lDe0vPbRCkGULrSULrSUJbSUJbSUJbSUHLS
807NorKUhrKUhrKUhrKUnj/KTooTlK40lJw0lIE0lIE0lIH0vKXT0LgqJ2koJ+nL5chRFpMoJ+l5
+UFDdKIspef/mnilKw1lKQ0lJw3lJA3lJD1/O9PQdCtL6fm/CEvpSkPpSkPpSkPpSkNZSkNZSoMs
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
uvf1At9YDpM7nwzdxqK+wZQbC9uWyurZYKHtvLT7Oax5g68GXR48eYDZy/wA2OBdgy4PemGE+eSd
Od3hxR0WHLmWv6jFmsFOcbVOCZcTYc/fiMBfZi1YwvX2QfmVRrm3RtWnRnb8gRbeaq5wLzjT7BBk
lqwkt+zUiUFKnI0njYnGTGOhsdLYaOw0/MBCI2hUGo1GpzGykfVcJsq4TFRvQRc8G+AJ8AR4AjwB
ngBPgCfAE+AJ8AR4AjwVPBU8FTwVPBU8FTwVPBU8FTwVPBU8FTwVPBU8FTwVPA08DTwNPA08bf47
UjZQnqayOFTVqamqU1NVp6aqTk1VnZr6inCS1M6zPI1q0FTVoDm/lX6vYjRVxWiqitFUVp6aVWlU
g6aqBk1VDZqqGjRVNWiqatBUlqrKUlVVleb8X/sslaepKk9TVZ6mqjxNVXmaqvI0VeVpqsrTVJWn
qSpPU1WepmZ5GlWlqapKU1WVpqoqTVVVmqqqNFVVaaqq0lRVpamqSlNVlaaqKk1VVZqqqjRVVWmq
qtJUVaWpqkpTVZWmqipNpSpNpSpNpSpNpSpNZfmuLN+VOjX11RUllWlWKVhTKVhTX11hgnlehso1
lco1lco1lco11ZVrqFNTX11RUqL7iqior65YwMrtufNGT64UrKkUrKkUrKkUrKkUrKkUrKlo1xXt
urqEjQvWbFj2KE9TKU9TX12RVI3hPYyHfiXbPPw4Ac3yNKpKU9HhKzp8ffjRQp8Fa5CbVQVrqgrW
VBWsqSpYU1Wwpj4ILmx0Nw1uWcImC9ZsWNOyYI3q1FTVqamI5aqCNVUFa6oK1tQsWKM6NVV1aurj
O9zpzqkzqg1TEedng/FPo5rKxtQsG6NqMVXVYqqqxVRVizlv0byobExV2ZiaZWOySIwqwVRVgqmq
BFNVCaaqEkzNSjAqAFNVAKaqAExVAZiqAjBVBWCqCsBUFYCpKgBTVQCmopZUVYKpqgRTqQRTqQRT
qQRTqQRTqQRTqQRTqQRTqQRTqQRTqQRTqQRTqQRTqQRTqQRTXQmGui/VdV8o91Ip91Jd7oUqL5Uq
L5UqL5UqL5UqL5UqL9VVXlzTxaVcqOBSqeBSH5dI6YQ/pnVTNV3qk6UgLZhZ3EWlXOoTKkqz5tPE
JJyq6VKzpotKuVSVcqlPeKPDG2nrfCJ20uT5hEnS8qlyLzXLvajKS1WVl6oqL/WJ/OnQf9o9Ve6l
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
J/TzvMRN5e3+TfCKYN9YuSsYlvCP/Qp+3PiNoTZ/ZaXTMtfWAZsbEJq2TQQdtIrpoQv/mAEPXhEM
XTBfYfnur2xB0NsLwArACsAKi0xhlSgsKYU1oQC+wN0FtirwRWGte2m0T99e+6eOBxQWzMKqWFjW
CmtgYUzKNSZBx4OOBx0POh50POh40PGg40HHcyIKVFSgogKlFRbwAi8UuLVA+QXKL/B4gZELjFxg
2wIjF1i7wMgF0i2wQIEpCvxS4JfC6lpYSwtraWHlLKychXWysE4WeLPACwV+KfBLgV8KC0JhiSis
XYXVrLD4FJajwlJTWHwKAregyxV0uYIuV9DlCtxR0OUKulxBlyvocgVdrqDLkRXtbAhPwFMBTwU8
FfBUwFMBTwU8FfAUWa3ORqERNCqNRqPTGNlIUg9IPSD1gNQDUg9IPSD1gNQDUg9IPSD1gNQDUied
0NkAT4CngqeCp4KngqeCp4KngqeCp4KngqeCp4KngqeCp4KngqeBp4GngaeBp4GngaeBp4GngaeB
p4GngaeBp4GngaeBp4Ong6eDp4Ong6eDp4Ong6eDp4Ong6eDp4Ong6eDp4NngGeAZ4DHpD7AM8CT
O74ZLpjhghkumOGCGS6Y4QJSX52NncZBo9AIGpVGo9FpjGwkF8xwwQwXzHDBDBfMcMEMF8xwwQwX
zHDBDBfMcMEMF8xwwQwXzHDBDBeQp7GQUe5sgKeCp4KngqeCp4KngqeCp4KngqeCp4KngqeBp4Gn
gaeBp4GngaeBp4GngaeBp4GngaeBp4GngaeBp4Ong6eDp4Ong6eDp4Ong6eDp4Ong6eDp4Ong6eD
p4NngGeAZ4BngGeAZ4DHXDDAM8AzwDPAM8AzwDPAM9hrBzvrYGcd7KyDnXWwsw52+sFOP9jph/0x
7PSDnX6w0w92+nZ3BTt9+5AqeCp4KngqeKpNGeCp4KngqeCp4KngqVan2X0Hm+5g0x1suoNNd7Dp
DowAgREgMAIERoDACBAYAQIjQGAECIwA9rpVjAAVPBU8FTwVPBU81eYO8FTwVPDYbFvBcw1CTxNw
/pisWIW0VoW0VoVsVoXMj2eD3zR+0/iNn5wjtjFiZJAs5JAq5JAqJI8qZI0q5IIqJLI8G08aEw0b
ssFTwFPAU8CTazg5cgvpL88GTw6eHCAs4CnGw4gVj4bHh3d1gHX61XlO5zmdt3fe3v12oFagVn5c
+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
xD+lsjx/r4//5NucX1SWZ6osZ2OiMdPwj1caG42dB/orZin8m0IjaFQajUankaSGyvJMlSWQRoE0
Or8Cs5SYQAidVwAvbSaQRmFphOwJy54nGs8TjeeZGs/ZcL+YUsmnsHx6ovpYUD1T9QlLLOTT+RWD
cDAIh2EwCMWvoBcVhIWXpg6EDDuvMIOFdxXfTneKn+O7/BXDC58l95wNMMMvZg00lSe7GgtOy8un
id7Ubho2uV6UKYoKS9nnRVEBVFOC5z38Y6AGUD3LAdQKjXkGPXEVYJ6vCjBPgQe8QpmVl1aAue/u
xfUbgFWAVYA1jyEk6t80oDbPu+8CcwNzY94bPW2Ab4BvDGYDcwNzA3ODZRrM2BioBsLr7YYKsM7b
O+A7t3fu6mDuxuwrYO5g7gx4Y1I64DvgO6znLndGvjPyHagdqAOoA6jj+XlHhWWw0jsZcfS/w/8/
RVl99sD/klOgt9XptjrdVqfb6nRbnW6r0211uq1Ot9XptjrdVqfb6nRbnW6r0211uq1O77rV6Z3N
sHWfzbrPZt1ns+6zWffZrPts1n026z6bdZ/Nus9m3Wez7rNZ99ms+2zWfTbrPpt1n8363M9mfaEZ
tv5EDM5OstydFGo7tpudPfOO0rCzWJ8NDGsDw9rAKjiwpw3saVoTw75JXJL7pJsn2+T01ElPmGxD
xIDe/MP8hQx1k8x0k8JzJvmfJvmfJvxPl0Uyb/oa/+fdX8//0yw5yTU1yTU1yTU1yTU1yTU14ZpK
A+Yk19SkIJpJjqhJjqhJjqhJjqhJjqhJcTGT3E6T4mImeZsmeZum1/qQk2mSk2mSk2mSk2mSk2mS
k2lSzMukmJdJMS+THEiTHEiTHEiTHEjTx/QC03FaXyfFvEy/5rIIZJJLacKlZMtsGmSn3/G/qGaS
k2lSOMyEb2nCtzSlbykelwE37bZTepsCt+15xa+DGNKAO+GImnBETZcjKm270+WI6hBlx3OTRt4p
XVPB/um8EjT8LshpuBc8MDlqwms14bWaCLSZ8FFNl49q0NNkvymdVYEfOPADh/3AE1E5Ez6qKX1U
YRfxhLNqupxVdhoP+nUwvHZNDXp6uMEYHu6pr9DTQk8LPS30tDAs6X+aLv9TLhDPt+5aufKkMdHw
7cxyoYOFLhe6U+hgBuDZ6WVf14TXasJrNeG1mvDPkpVyJ5FiPK+3B/0KgAWTErwi/GOgBlADqAHU
YMADYAGwAFgFWAVYZZwreCp4KngqeCp4KngqeCp4KngqeCp4KngqeBp4GngaeBp4GngaeBp4GngQ
DBYFuJ0ovbdPXvwJUZm8pHst9yKeS3PgyAwcmfG8iKR7TnkFK6DXPFY5OzsnL3de5wgFmq7ly6tW
95NNh40G4LuvjGyk0/R5kV/3j+mpVy0vVl6RBixjojWtDvo16Jepd9CvQb+82nhJGfTLC4iXC68J
GVEy66dz8B5N/qzfz/Q5WWVmJUiOmdXNWaJ9lmifJdrnr+rja9wimLNCS2bJ7/kbfCvsswT5LEE+
f4tvE6WiYWcJ8lmCfJYgnyXIZwnyWYJ8liCfJcjn93mce5vdlGifJdpnifb5NT/SkM2S8fOPuZwD
KGE/S9jPEvazhP0sYT9L2M8S9rOE/SxhP0vYzxL2s6JFZon2WUEisyT6rHDWWbEhs8T2LLE9I7Zn
xPZMSMhMSMhMSMiMJJ6RxDOSGDd72M0+E8U6I3fteJ9T7oY98HMK4LArfiZaZCZaZEbuzsjdGbk7
I3dn5C6e/LAnf0bu2qU/Ey2Cnyvs27dLf0YAzwSJzMjdGbmLeTns9p+RuzPRsDPidkbczgSAzCll
w8ECM+KWWphngw4WxqcwO4UOFqAWoBagFrpTDBUOrcAoQC2GAdTi3zAFXsIq4BuYA8wB5gBzgJnV
wuuDFwazuznbTIwonc1+ZjEzFaJ0vujQVGdiqxBJ81cAM7WYSCrAKsAq8978QBCaACr03Oh7BaoH
/Bo63u4xNDC/ws+5fgzUhlLVoOcG+Ab4Bvhm8P4K8A3wjeFtYG5gbsbMAzuYO5g7mDuYO5g7mDsI
OzC6H8i8d4B1gHWAdYB1gHXmfYBngGeAZ4BngGeAZ4BngGeAZ4BnwDvXGIJwgHB43n0FqCk4Fz9F
nVn0wyX/06+X/K06tXyJW2DahjxNzWj5cv6fs7F8hf/Rk3JSFgnXReGai2TqIpm6IFNz3hbJ1EUy
ddHmeJEoXSRKF4nS5d+4UwO7SKYukqnLdz/9ZNV/IkhmXyS8FwnvRbvwRaJ6kaheJKoX7cKXHwEf
BkryXLQvXySqF4nqRaJ6kahefs4tyJAk5EXCe/mQyyKjRVJ8kRRffsW3oqRF4nyROF8kzheJ80Xi
fJE4X37HncjSZI5FAn75Ty4nRSHpFyT9gqRfkPQLkn5B0i8p6cPRUwvHVBYE/HIJ+GTChY31wsZ6
YWPtmKsFub4g1xfk+oJcX5DrCwdXlkuKDyh7+DeAPwCfMntBZi8cXFmQ0AsSekFCL0johQ2xjWkL
G+IFCU3lhZ3c/jtG2x2r69kAWAFYAVgBWAFYAVgBWAFYAVhh6Ap4AjwBngBPgCfAE+AJ8AR4AjzB
Gjc84L4LhFaHh5/D8jf8QM+7n+xRpctBLyq9qPSissXx4jv8UobF4nwwPlb+WHOR69TC2ymMEtM1
gxWEFWCVnlbmovqlfpdfQS8avWg8uTEXjblozEUDWANYY+gaeBp4GngaeBAiiGqCpfbFosEyAQm9
WBh4pffCzRKIgSemi55ZFFnqpovCWfO8ynEeY7qIv4OZhepamry2eAHxKpFsbtPRdPHOMELenjvj
6eKmAUJTr2nVJGrKFEEGdqbAzhTTxYPDXwF+0K+U/RicAoNTYHCK6WJP02qS6KqpXfWwlUcFfUwu
Xhv/zzSYsGCAgulJZl6Bkxr1alT0JehmKtar9uXrl7kssKs26Kt0iPVrfJs9kDKxSplYZWBfpUOs
0iFW6RDre9wJkmT89dv8z6xX+p/7wlUKx6q9+yo9Y5WesWrvvn6PWxiiZP5VCsH6PpdFCas0g1Wa
wfpDvhV5rFIRVm3iVykEqxSCVQrBKoVg/Rl35rBrE79KD1i1iV8/4kc5F9IDVu3mV4n/VeJ/lfhf
Jf5Xif9V4n/Vbn6VsF+1m1+R8SsyfkXGr8j4FRm/IuNXdvMron1FtK8c51iR6CsSfWWDviLIVwT5
iiBfEeQrgnxFkK+c2VgR2ytie8XWjdEybLRcOZOK9TJsvVwR7SuifcXobcPmyplULJxhC+eK1F/Z
l68I+5WDGVhBw1bQleNZmEMDc2jYHLqiGayspFRm3akEtq/X6tbcYBAak1KYpsIgNLpc3KDvXrma
rzBxhZ4WelroaTAawcR5AWp+IM8Jd5lFqbHSND+QngY9DWY56A7LFDoHZt7AzLtTkvlsAKMzqmE8
9CuA0RnwAA8LDRoGUdj76hUGYwAxUIG5ODAXn1/RC6sRnYnr9It1AIOBLckEue/rRdim585UmrBN
vSbazu2m3kZ3TJmN7jS6Y4JsgG9ANY2Zokw2DYSe9wawBjBPdwePJ87T5Lno4PFgXkPnyeVdHswO
zXfe7oHyaFy3A6x7VI3Qt/s3fDUAb51jQIeD7ljnGPTLOsegg4MODjo4GPABtQwoakBj12+Yi0EH
rXMMRmMwKYOBGvDgdbs6uGl0Nt2x6febRmHLn2gENkn9Tdb4TcJ++yrPFZpNloNNwn6TsN8k7DcJ
+03CfpOw32Qw2GQw2CS/N8nvTfJ7k/zeJL83bd83SetN2/dNQnqTkN60fd8kmzfJ5k2yeZNs3iSb
N8nmTZv1TSJ5k0jeJJI37cg3SeJNkniTJN4+pvc5ihLJm0Ty9hu+zcGVbN4km7fff341ul4u/vIL
qKTm1/4F1dP+kvNNt+nmNt3cppvbdHObbm7TzW26uU03t+nmNt3cppvbdHObbm7TzW26uU03n5/p
5p3NAnOf7rlP99yne+7TPffpnvt0z3265z7dc5/uuU/33Kd77tM99+me+3TPfbrnPt3zBZzu+UKz
oLx5/fFHv37zg9cf/+N58Sfvv/nw9ccf/8+ffvzpx978H9/05vUvP3rzyaf9PluB/ljv/tpSTw7U
+fMD+icKTP2tgD1Inw3sTzuY6q/p76dYjusz6+xnV/rsryCrPxH1Fd6IbNJbN/TWDb11Q2/d0Fs3
9NYt9daY3jKkd76S6mdVa8NPuqHAbvhJN+xFG/aiDS11Q0vdUksNVLawyraht27UMLASt6HAbrhQ
N9RV63cbRqENnXRDJ93QSTf8pBsa6IYGuuEetZ64UWTJCuOGCcia44YJaEMn3a6BKmB2B4sxHzSA
4V6kCcj65na9PffyaKBhDXRDgd3eeqBvZy6uHzMXxXPhftGdVGDRZM8rTErQwaCDQQeD+Qq6Ewxm
QEjXXYxhAD4AH4APwAfgA/AB1ArCCrDKKyrAKsAqwCrAKsNbwVPBkxuX+epgBVgFWAVYBVgFWANY
89ABo4Gw8eTmr0DYQNhA2EDYQNgYsQawBrAGsAawBrAOsM6IdfB08HTwdPB08HTwdPB08HTwdPB0
aNUk0QHWAdahQ1PLAOEA4WC5CN4+gDqAOnjF8HP8Y6AOWC/gJpMffi67tLyqoqWSln7PJS8XvFzu
crHbYaYw+eTPNP67rDq7rDq7rDq7FM/9a9ySj5QGuksD3eWV2aV47lI8dyme+3vcyaqVnLJLFd2l
iu7/xrcJRqroLlV0l3lnl3lnl3lnfz9vqawJyWi7zDv7D7gsItpl59nlwtl/xLcTDVbB5MVd3p1d
Bp9dBp9dBp/9Z/yWZTHZdf85/2ti91/wP/Obm85d1qFd1qH9l3ybU/Ir/s/xlr1ol71o/4Rvc2Zl
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
MxJByYRF2xKDi+lgQfmkES4kVhIUVAI+gZrgSbKcznJ8MbqWQ1tyaEsObcmhLTm0JYe25NCWHNqS
Q1tyaEsObcmhLTm0JYe25NCWHNqSf1htydu8C9EhRTmkKIcU5ZCiHFKUQ4pySFEOKcohRTmkKIcU
5ZCiHFKUQ4pySFEOKcrbLkX5Unct+nMbqrx6+e4HH7/7x71kvv7TLyGg1399/2eI7HXsw/SZN8z5
r+X7j7Uh01+J/0vYmekvCsKIOhH3fQhKhrv0cMeglAx3yXCXHu4YdZMhOhnc0k/2c7i4GKIL68SD
m0ew6S4gwkUQ4SLu+1BWDG7lI4yxRXaK8bMYNtPXkJ1i/CxyUeSiyEWRiyIXnVx0MHdG3Q6wDrDO
SzvAOsA6xdvB08HTIRHXTgdYB1gHWAfYANgA2ADYANgA2AAYhi+WemCpB16rsMWL1ypsztqAxVad
87zZLmarmG1itojZHlJeq5QZnTKjU2Z0yoxO+ahSRnPKNZWylfO7lBENd7bXlI8q3+GwcpGynlPW
c/4rZydemdEpMzq11pRSvKQs45RlnLKMU5ZxyiOVMn9Tjqj8OQ+fpSDzN+WRSlm9Kas3ZfXmr7ll
lpjM35T5m3JNpVxTKYs2ZdHmK+6chSzTNmXapkzblGmbMm1Tpm1i2iambWLaJqZtYtompm1i2iam
bWLaJqZtYtompm2yAb0DwyQ2bmLjJjZuYuMmNm5i4yY2bmLjJjZuYuMmNm5i4yY2bmLjJjZuYuMm
Nm5i4yY2bmLjJjZuYuMmNm5i4yY2bmLjJksnxMLZjgCsAcwzm/JLQdhA2EDYeE5wcYAwQBggDBAG
CAOEAcKgxAJgAbCgxAI8AZ4AT4AnwZPgSfAkeBI8CZ4ET4KHvuze647qTuWu4pa/Ny2XswuzwFPg
KfAUeAo8BZ4CT4GnwFPgKfAUeAo8xVzUhLe/HYQdCjSeDtTOxR0KNNTuBJg7mDuYO5g7E4ZiDuAM
dnLRyUUnF50O60LoFG8H/KB4B5gHmAfZGUAdQB28ffDkAdRB8Q6ADYANgA2Kd1LOrIlZD7MWZh1M
+p6lXaKcEuWUKKdEOSXKKVFOiXJKlFOinJJ7pr5HwQh1yT1TIpgSwZTcMyVeKfFKiVdKvFLilRKv
lHilxCslXinxSolXSt6UEp2U6KREJyU6KdFJyYlSYpESi5RYpMQi9ZJcqMhLdFJykNQnnJ2FKzop
0Un9nrOzzMUrJV4peKXglYJXCl4pljyI0BWO0FUwTcE0xW7sDt5VUE5BOQXlFJRTeFMKpimYpmCa
gmkKpimYpmCagmkKpimYpmCagmkKpimYpmCagmkKpimYpmCagmkKpimYpmCagmkKpimYpvCmFART
bIxOuLNwuLPCv1LocBwAraCc2t1pHXu8Gw/ggwcGtwfgg4sD8Ha9dBwknezY+dHJV5CvIF9BvoJy
DnIRlHMAPgzezwFzgjkZmjuvSMAn4NNQeXuCOYGavCL9HF8M1ITjO5XSAZ+AT8AnjSTBXGAuyrmA
WkAtytljfefJBdQCqudGnZcyGLjfs/zv0HMFz9XeYd0rGWf3NuYWtbcf2uHwNdDb8MUU+CCDbiRu
G65TV5xrx8U7/GSKxQXeafPDTyY7zukOlZcas6Ea4aAK/C4/edCwB3OVAeb9CCQ9DJ6SHxT4fhc5
3S+GraeskE+O4rGPJIO8z83cH/vYMsj75NRZgnydtMxim21pltQsp2kNdJFr/xp33kio8PrX+f9B
YiGh7HQxcf/mF+r5+zw2rH5DzqBPi4TXZah0GSpdhkr/DiXq+psVJ9Olf4/DsyJlunSZLl2mS5fp
0mW6dJkuXaZLl+nSZbp0mS5dpkuX6dJluvTnvGo2lp/x/2w1Mma6jJkuY6bLmOkyZrqMmS5jpsuY
6TJmuoyZLmOma0rcZcN02TBdM+Eu06XLdOmaCXdZLF0WS8di6VgsHYulY7F0ZsId+6Rjn3Rmwh2z
pGOWdMySjlnSMUs6Edj8yR0f2G2nZp/iCw2+tNuOOAHUGRvG3951TJeO6dIxXTqmS8d06ZguHQkj
n+6FP93rSBj5hi/4hi/4hm+7hgyuZHDaOR07p6Nc5Du/4Du/8Hd+HROoo/rwl3+d8ap7WNpHmeDt
DDcYRR2jqHucYdbd3T0wgfimMPxNYWdp0R8Xdowif2XYsYX6XoOuL1dKAH4uDfFtYvjbxM4Uve/F
m76L7ATZcdElpeEydIm5WIJKcb6cnaRSksJMynBHyKCdVFxSmAZvqMaTZGd/oJ8D1CQ7+wNph0ku
9gTZSbKTZCfJTlEFRRUUCAuEBcICYbnAeUUZKu8qoBZQi1wUCMu3+y4QFt083X7A3MHcKXDnogO+
A77TfpzBTi465dxpLR3MHcwdzJ1OXXQ0l0+nO7igOr3AJQb94w7oWEcd66hjHXUsMX/A2jGTOmZS
x0zyt60dB0HH8ulYPh0HQceq6ZhJHWOmY8zMS+eF87J5EZcoC0M2zMCGmRU+5CkYsk+GPAVDBDxE
wEMEPOQpGKLbIVf0EMsOsewQyw6x7BDLDrHsEMsOsewQyw6x7BDLDrHsEMsOOQiGHARDnDp+AXwV
1hC5DpHrELkOkesQuQ6R6/iQO2eRiWWHWHa85OwsSdHtEN2OTzg7C1i8O8S7Q7w7xLtDvDvg3TF5
N/hCOfyF8iDcqj9VHkRZ9TfLA24ecPOAmwfcPODmQdw2f+k8IOkBSQ/c1f4IeuBEGHDz2Ll59swB
Nw+4eeBNGFDygJIHlDyg5DEpOfyd9UBb6Q+ux07S3bcDfgX8JOABAQ8IeOwE3BndOuXTAG/e7ZRY
IxcNYObdOZoMeHfAuwPeHfDugHcHvDt23vVg1MmFebeTHfNuJ1+NfAUtIchFUAUBePNu912UagA+
AB+AD8AH4APwAdQAYQAseEUCLAGWAEuAJaWa4EnwmC+HnwOwBFgCLAGWAEuAmXKGYYCweHJxqkBY
ICwQFggLhEWJMVh62PEo4gHDYwPsOPZu7t7tTu3u6T7ojuYO4n7h7tDB44bd6USDhj38HBC6+Q0/
Gahuft1l6JeC2bXj4h1g9rv85EHfGWDeE65ucjEYEwbZGRQvvAYFDihwQIFjdwcMF8If71qfzR/n
O/R/6qf047vn4aGfr+rna/r5un6+oZ9v6udb3EkvFpL1mT444Ivs9dm3+f+s/7+jn+/q53v6eUc/
39fPD7jlQuKqE/+qn3/j8E3//1A/P9LPjzl71///rp939fMT/bynn5/q57l+fsadDxKLTvyc/1f9
/wv+byRm6b7Qzy85nCRmef9KP+/r59f6+UA/H+rnI/38Rj8v9fOxfl7p5xP9/FY/v9PP7/XzB/38
h34mAW+JM4kLiSuJ2z9IUK6/0i3zmXZROkQzh2jmEM0coplDNHOIZg7RzCGaOUQzh2jmEM0coplD
NHOIZg7RzCGaeWtEM2/zjkmHWuVQqxxqlUOtcqhVDrXKoVY51CqHWuVQqxxqlUOtcqhVDrXKoVY5
1Cqfr1rlS93f6FO8IE80O6v+TGWfqdfzrKYtsZBYSTQSQSJJFIlOQnY7exU/HRHbbIkTiTPXXDji
BAjn3JkdjrcjQA2gBlADqAHUAOqUz7BB8nYEzNPVzJbJ25ExEwnmBLOzY8wG5ifPLSnZenk74gRQ
ZyyY9bUjYE4wpzGTrwRzUs4J1AJqAbWAKkaKdX9FgblcvLy0KIQCc4GwgFF+ju+iJRQIC4QFwg7C
DsIOwk5hdoB1CrODp4Ong6eDp4Ong6eDp4Ong6eDZ4BngGeAZ4BngGeAZ4BngGeAZ7hOXXG8fYBw
eobXvQYHUOeoz07bse51Omiis3IvetxF2b3oCRe97OJr6V6q//Xix15JUPuz0i9f5X/l7fI1/lcW
L2Ktyzc4TIZnzBpv083u3MHu3OtFFHf5FoeNElRzNZ0tuoMtutfLv+jn2/oR112+y0U07tl0Lt/j
f9XY5R3+n3kUH15+oJ9/5ezM8b/p54ccXkiorV3Eh5cfc3hWhPjwIj68/ISzs35EjBcR40XEePmZ
fn6un1/o5wV3Unyz/V5+yf+UW6fcZjO+iAYvosHLrzk7G4z48PIhh2kbs6VfxJCX33B4Fqao8iKq
vIgqL6LKi6jyIqq8iCovosqLqPICVV6gygszU3Ys345cSfjIncSDxEJiJdFIBIkkUSQ6iTET6zMS
AFsBtl5IgGcFzwqeFTwreFbwrOBZwbOCZwXPCp4VPA08DTwNPA08DTwNPA08DTwNPI0uOSCh4WtA
2Oikw3cBtTEGeSwbvouWN8hgIxdBLoJcBLkIVzctelAawTA0KJZJ9my5HW0vjSDLQXYC8EEVzH0w
2ZY72l50AeZpB7S9MMN4OqfuJPwucprkNMlpgjCpr+Sl6ewsJICafoUxBwnqInl7ktP07VRKkq90
vooEpZpkMJ1BZ4dEka+i5F2nRQahEayHy+SPLUHtQBxmDDii7W2jyPK0/9iSPNiSfLuGfBWlUeQr
/FIyOCmk7Y2kA77z0u53gbCTHYjDjGGqMCtgc1zMAx75Pchjc1w8ZmNzXLA5Lh6sPS5jc1w8Envs
3UfIAR73Zffc4eKljYWPgHC4wIHqLjzAPFy8PiLwVz3lqjuuOntVDq/zEpe/HzJPfJX/lf/r1+b/
sxtdZU9cNQu+ykS4fks/Yv3rt7lFBXYV/V811b1+j7MqxavmvFdx/FUcf9UM9ypqv2piexWRX3+s
H/H3Vfx91Xz2Ktq+iravou3rz3ijqusq/r6Kv6+aq15/qR9R8lWUfP01d6p+r6Lkq6aoVxHwVVPU
q3j3Kt69inev4t2rePcq3r2Kd6/i3at49wrvXuHdK1PUK3R7hW6vxFhmU/3tyIPEQmIl0UgEiSRB
9Xt0Sz+nk6CtJE+elHyFkq/EemTf/u0I4FfAr0Cd3HyFm69w8xVHMNv+B9v+b6fIxeoj5GKy9RW2
vsLWV9iaiNMrkaLX6045yXMaUBtQzSvJKxqYG5gbWW4gbCBsfrJvB2EDYYAwQBggDMowABYAC8ow
wBPgCfAEeAI8AR53exNMGg8Ig3ovEKYTUI65p2gARakWmPP85jY4efZ//+jJuePSeZBYSKwkGokg
kSQKd1UnMTjVSYx5albfMzrFMzrFMzoF0S63IzidVpxOs1M8o1M8o1M8o1M8o1MQIzOIkbmdwvMW
fmBwxE8mX7ObPKObPKObPKObPMOMI9ZmEGtzO4XrzP7IAOGMCeCgm0TWDCJrBpE1g8ia210gxEVJ
53pmjyPGMWE4gzCc2ylekQbPu5JcpDFTCI3KTcrQtZzkYlqBhOrcruGlc993gnduR6jc4F1B+SS5
cO24UoInu3hdmEETdRkmhZA0WpdqOkHxpjNILQd5d8mHT5GvdL5o2EWpJhl0Ybroknwl+UqaTfku
MujSSDLo7CR9MIGaQHUuEqgG5lcU/aJAWCAsEBYIi5IvgBXACmAFsAJYAawAVgArgHWAdYB18HTw
dPB08HTwdPB08HTwdPB08HTwdPB08HTwDPAM8AzwDPAM2nzRaF1iA4TDdeojQB1AHTRRF++g9bqc
WXvxMgsTy2dYriffs5BQEZxo5rNmTrT28gk986QnnubzVBSnr3IRfaPo87PyTlrjOX19Hp5VeZKZ
e5KZe/oWZ1WeJ9m7J3m5TjJzTzJzT1rROcm6PX2fO2mps0GcWOPp1ENn7Jnt4iRT+CRT+CRT+CRT
+CRT+PTv3MKCzWxBJxnHp59weBamrOSTrOTTc87OopWX6yQr+SQr+SQr+SQr+SQr+SQr+aT1m5OM
49OHPI6a6dTVbKqnj/h/VpIM6JMM6JMM6NMrLpoVJEv6JEv6JEv6JEv6JEv6JEv6hCV9wpI+YUmf
sKRPWNInbIUTtsIJW+GErXDCVjhhK5ywFU44rk5YBiccVycMghMGwQnH1Qk74IQdcCIQOjGKgxjF
2ym636DxDN8O5hXMthWGn0yfGmR5JRcruVjJxUouVmjAnX/wrmaEvNRGw6DEGjltQG3gacBolLzX
GQfl3PxkP9C5AHxzglw0ctHIRaMugroISjVAGCAMEAYIA4RB3gNgNnQGrXvw9iAXAcIAYfgaEAYI
E4QJwgRhgjBBmCBMECYIE4RJ0SV4EjwJngRPgifBU+Ap8BR4CjwFngJPgafAU+BhJPcQvo/djP4e
xGHZ077o0AwDhIzR++qDW113AqgdqB2ojK/w7smjJkqKdW+9ndUSN+OOR9btuQOecc4DnAcxKPlE
UPp17wUDzO7dA29rA6G78PBdD64BvHulO6O7lfvOAKob7ayCs/M5F+qcy7kaNle+5iLZvGkuz0ku
cRaVnuUoOrPwZA92w6vMCvQ3+X8+Tc6k879wmFWTYLUpKLvZh88i4LMI+CwCPouAz6wl2avNOvX3
+X8uE/6A/+dqoXj3LN49s7rECvaP+J/VJhayRclneafO73J2Fp/cVGcR8PmnnJ1roPJXnUXAZxHw
WQR8FgGfRcBnEfD5fR4wq4UlJBbKRcln+avO8ledRbdn0e1ZdHuWv+r8CQ+YdSG6PYtuz6Lbs+j2
/B9zpXNhLXZhLXZhLXZhLXZhLXZhLXZhLXZhLXZhbXhh5XVhbXhhwXVhdXZhLXZhbXhl5XUFzwqe
FTwreFbwrKy5WECwAmwF2OpFYr8ChCsIV68f++1AXYG68orGcxoXN6C2yxezZcrhMDkcJofD5HCY
HA6Tw2FyOEwOh8nhMDkcJofD5HCYHA6Tw2FyOEwOh8k/sMPkbd6/5Phy5/hy5/hy5/hy5/hy5/hy
5/hy5/hy5/hy5/hy5/hy5/hy5/hy5/hy5/hy5/hy523/cudL3RHlP0Xreef5e89f/Pb5y6/8/Pmr
fPejd3/y4v0Xr148//iPz3qzHxhdPR55eNl7s7tjYZAUFT43uWoQ95VdJhsMft17YdIEElvF5F4+
hR1SNBM39qQtuHW4LRSttWite83TytwEinw5FwZvzAVmAzOe/YEAK5rtfgSEHYQdhB2EnQLvAOsu
XnLaQdhB2EHYQdhB2EHYQdjB0/1AgA2ADYANgA2ADYANSmyAZ4BngGeAZ4BngGeAZ4Bn2gY3XXpz
c6CTz2K76cYb48MsxNu8W3m5YSTMkr1p7eEm2+Am2+Am2+Am2+Am2+Amj8BNJsFNJsFNawY3WQK3
7/NwFcpNJsFNJsFNJsFNJsFNJsHtx9yi4rvJNrjJNrj9hLMq05uMhJuMhNtzzqqgb5rk32Qk3GQk
3GQk3GQk3GQk3N7nTtXMTQvytw84rHq6fcj/qq6bzIabzIabzIabzIabzIbbJ9wCC86GdpMhcfsd
h2dtyaK4yaK4/QdnVfc3TIsbpsUN0+KGaXHDtLgxk79Ni2J7Dp1tNuUbsR0abfqGsXHD2LhhbNww
Nm5M8m+YFjcm+TcsihsWxY1J/g1D4oYhccOQuGFI3DAkbhgSNyb5N8yGG2bDDbPhhtlww2y4YTbc
MBtumA03zIYbk/wb1sINa+HGJP+GkXDDSLhhJNwwEm4YCTdW5hqLk41x4YbZcGMm3xgpbtgPN+yH
G+tzjUHkts/WBgiD28PX+BTgg3ofkNAgO56xDPLlqYtnNZ66DDIYZDl8hCqwHTJcCGQ5qBTbIQxh
2CE3Zhg3Is/FXl8zBF3sFZdkOclykuUkg5NKA+Mw9lqe7v9gN8/AOIy9upOcJjlNcprka1pcgYsh
cADF3jaSyhXdbqd4YJHBIl9lqLyrwFzktMhpAbWowaJlzkl+4I8IjNUbPuJgjShYFQ6s1hskfYOS
b3DqDW6+mWRwGAdNNPaWCad4/Peo7gHcY7WHXg+2HmUh6ZvHTo+W+8DYQdidL97lkW2QQfdK90F3
NPevATB3GfeUAbABMHeQATA3/tnU77r0rgvvuuyui+7zEpXtXSqAu5j4Lia+i4nvYuK7mPguJr6L
ie9i4ruY+C4mvouJ75qT30XAdxHwXQR8FwHff0S50SnmMHLXLP3+7xxWedxFyfefcJg+MCctd3Hz
Xdx81wT+Lkq+i5LvouT7C+6cZSRuvv+KwzTZ6T4MvIZ3ze3vYuu7pvR3Tenv4ub7b7hllrFI+i6S
vouk75rb30XJd83t72Liu5j4rrn9HQK+Q8B3CPgOAd8h4DsEfGdKf2dKf4dl77DsfbLsBnVwJEkU
iU6Caybd3ifdPt2e9OcE6grUFagrUFegrkBdgboCdQXqCtRJwHcI+A4B3yHgO/q32Af05O3NCK8k
aHMJjAb4Bvjm2wHfAN98F+Ab4BvgG+Ab4BvgG+Ab4BvFGxRvgCfAE+AJ8AR46DnuK0zp7+4dbuxQ
KeFh17ubtxvt3iQSPK7cvXgfJHiXC3wvZ96eQHWB77cDbH+O7/IpMCeYE8wmxaQ979eQiyIX5UbL
7UXxFuCL4i0wF5iL4i2gFlALqAXUAkb5XRRvAawDrFO8HTwdPB08HTwdPB08HTwdPB08HTwdPB08
HTwdPAM8AzwDPAM8AzwDPAM8AzwDPAM8Azwj3pyzZBPAEFBpJWrSStSk9SFMD5XQQ5c9dNFjXqKS
eYgjH+LIhzjyIY58iCMf4siHOPIhjnyIIx/iyMf3aH3z4SLLh8jyIbJ8iCwfIsuHyPKh2epD1PjQ
JPUhRnzIgf0Q/z3Efw/x30P89xD/PcR/D01JH6K9h6akD3HbQ9z2ELc9xG0PcdtD887HS3Ixy0bc
9hC3PcRtD3HbQ9z2ELc9xG0PcdsDbnvAbQ+47QG3PeC2B9z2gNsecNsDbnvAbQ9mkI9JaUE06u1I
kegkZj7gtgdTyQfO6dgHjgLqCtSVwa58BMwrmFcGuyJfK+BXwK+AXwE/2e4B2z0m2wUhsLcjgDfJ
FS9txkyJNcA3oDbwNB7YfLvvAmoDagNqA2oDagNqo3gbCIPiDYo3wBPgCfAEeAI8AZ4AT4AnwBPg
CfAEeAI8AZ4ET4InwZPgSfAkeBI8CZ4ET4InwZPgSfAkeBgD3I32JlrgcWNz03L7cQNwdbuWCzwF
ngJPgafAU+Ap8BR4Ong6eDp4Ong6eDp4Ong6eDp4Ong6eDp4Ong6eDp4OngGeAZ4BngGeAZ4BngG
eAZ4BngGeAZ4BjaEy3AAbABskscca+ZIM03nObjMoWUOLIvIYxF5LCKPReSxiDwWkcci8lhEHovI
YxF5LJDHrNVF5LGIPBaRxyLyWEQeyw+5ZWIViyxikYUJ1mwUi+hkEZ0s73F25ky8sohXFvHKIl5Z
xCuLeGX5JXfiDJhNaxHTLGKaRUyziGkWMc0iplnENIsmT4sIZhHBLCKYRQSziGAWEcwigllEMAsE
s0AwCwSzQDALBLNAMAsEs0AwCwSzQDALBLMwZ1rglQVeWeCVBV5Z4JWFGdICiyzMkBbIY0HoHDja
gw65MGdaiGQTdNEFOlmgk4Xvi4Peu8ArC7yyMItaoJMFN6bjRxA4YnsOXqMOZru8OuAbpNgp1eZT
PkIuGuXcAN9wKHWIs/saZwffVyenjXzZDdV9MXZA9ymy3Jwg70Heg7zb12Rvz/A15H1At4OLB5Ub
FFRQCEHlDp+iNOzYGExSByUWlE9QPsN30SCDQghyOii6IKdBTpNcJDlNGkkC3pO5QYEPCtzTaI+b
g3IeNK0EfAI1wZNkJ/1AP0eGTu7NL8nX/Fw6sWb83TSfQq98Cr1dQy6K5xR3lU9RBUXtFJhnbLqk
PefejOcHr7m357k+mnvDZtz1EOvRFN5dPDjSzXPvDu7v7t1T2JR7T+nkwp1xLkwmVtqy98EOMPem
7uf4YqDOLpMYef4cdNn7TqfAhwucDA4wDwrc3cFtflCYc70g6bnJskXiN078xrn3Sjf+QV0E5RN+
F5US1KD7oJvxIIPD4IERAHP3dMsMv9Sv0APnyDvN+DnYrn7iPOzHUMzTUp0j8PpVDqusV1kPq6yH
9RucnVfLjFhlRqwyI1aZEavMiFVmxPq9eWdSnLPrr+/wP2U410ESI3iVqbHK1FhlaqwyNVbNU9cf
cQuNcHb/VTbH+u8cVnGusjlW2Rzre5xV81xlc6yyOVbZHKtsjlU2xyqbY/0ld1IXc0hZf8X/QYLy
npb4KnNklTmyyhxZZY6sMkfW33DLrAvZJavskvXVZ/hE57NLSf7X//n2hx88/1RxyhexD8vhKjlc
JYer5HCVHK6Sw1VyuEoOV8nhKjlcJYer5HCVHK6Sw1VyuEoOV8nn5Cp5a/dKOb6rOb6rOb6rOb6r
Ob6rOb6rOb6rOb6rOb6rOb6rOb6rOb6rOb6rOb6rOb6rOb6r+Qf4ruZL3Svl5fOPP/zk5XvPP/7n
7eAv3n35wfOPP/6nX378+X/s89++6eXzjz58+eoLed+U7vz0xXuvXnz4wbsv//CVXzx//6PnL7/I
l0kn9Lo26LO81E6uP1cZf66FfHZ10mdzsn16FX3BKP4eddSn1PWbKrvP0AK+YCh/SSe2eXenL10G
1yqDa/3d9P1OWlhlea2yvFZZXiuW14rltWJ5rVheK5bXiuW1YnmtWF7rtLy21/mBjUSQSBJFopNg
saRw4hdO/ALGiuO/wLPyrhXwq+8C6srySYF59e2+xqfIzurssFgyOXAlIEhChisL1QkrrlhwKxbc
+r+9bFI+NWsNwy3RHSQU6qgNhGbYTvkuqqlRPo2li8m3Do7gCAgOc+AABY5MQISBlQgDqyMMOLQA
wQRWggmsDiaQcLujChAyYHXIAMcKcJAA4gFst/suEAYIgwLvfiBQA6hB0XW/C8ysNGHleY95b5Du
XdDZ6nx7DlDTCVbUuhOUajoB+AQ8yzkYd+xQva77enD3XWCmR+/rwZ0Hun8V4N1TOu9yl3FPcXdw
Lyhe6oZdLmfacwdq+QhNws24fATwbqJuh24bruVuzPSL7rsA7/Xg4eeQC5d8p3sOv4LsuDQ6Je/s
OBcdzJ3xZ9DRBk3CK8QDYIM2PyjeQb72u3yxrwH8oM178XiQnUGlePV3P0J2BnWxX+NTZHCQwekn
mZ18dvHZwb1kvT9xnqBO5mO8ks3TtLxRDE/ta/x/JqFiaF/nf5VGk7+lyd/S5G9p8rc0+Vua/C1N
/pYmf0uTv6XJ39Lkb2nytzT5W5r8LU0LHk3elaZ1jianSvsJaFQlTb6UJl9Kky+lyZfS5Etp8qW0
F9x5J6Eaa3KqtF9xWLXV5EJpcqG0DzirptnkS2nypTStczS5UJpcKE0ulPYJd876E7U3+VKaGL39
gYtm7YraG9TeoPYGtTeovU1q325OEsWpO4kHpzpHFhIricY1gyNBIkn4yX4OF09/S8PfUvhPCxdB
Q9JcEEyD7AumaXhgGhzf4PgGxzc4vsHxhcKi4KeGT6bhk2kweoPRGz6Zhk+mYLXG6khzB8Hf0twz
3CXcGvfGFUBtTiycAnwzeKqANuJ2AJG3vU5dg82YqbjgrgB8uC54jkveBb4XXZHgFS5MF4vz5VwY
/A4DYGkYwREKM2iraTxkcH87TcvP8e2+K8lFUhcJ5gRzgjnBnGBOCjwpuqSgEjwJngRPgafAU+Ap
8BR4CjwFngJPgafAU+Ap8BR4CjxTF1As/9Se9wJhp+u5NDpQO30waasunw74zgO7bwd898W053SC
9uxS7T5CdjqNxOXcfcpHyGl3Tn3ETcunyPIgy+UEWR5OUE2DonPFDbI8yPIgy4MsD+prUF+D7JQf
6OeQr0FTLwZqtwTIGVaers/Zj91HitG7KOrZYGafCQpjNp/ZcULrJQG1zzYVWjgJEXmIyENEHiLy
EJHHd7jTSOYLRe3xPQ4bwHyzyD5E9iGyD5F9iOxDZB8i+xDZh8g+RPYhZVaI40McH+L4EMeHOD7E
8SEJQ4jRQxKGEJGHiDy0FhLi7xB/h/g7Xs5cTKM3ROQhIg9NzUP8HeLvEH+HZuQh2g5oO6DtgLYD
2g5m5AFJBzPygJsDbg4m4gElB5QcUHJAyQElB5QcTLKDSXaw4BHQbUC3Ad0GdBvQbbDg8ZRob3SD
5q1OYLLuLFAUK62zO1OUyUqZmOA7+W0ME52MN0qp8YrGA5vvog93Rs9OKTXKrdFdPUR2yq1Rks1H
qNlGdho12+Dj7mvITqOKbWN1bg9yEeQiGJs6Tw6yE+Q9AB9kJ4AaQGV0ws5g3XH1uqNXE71Wx6rb
6lU31r1Wr3ux3LWy3LV6uYvFm9WLN16q8XoMCyqrF1S8auKvHf3BoD/G47O61Z/V+SM6fynnT938
YZu/Z/NXOv4mxl+6+KMWf78SHjeZYYdHSg82MHTsLdzt2Y3WbXVvfjzZ7bADzK3O7ceNxC1hvx1g
HWADYANgA2ADYANgA2CDghrgGeAZ4BngGeAZ4Blu81DKjkcIE8qd+GblJ4PAYKCYaJMnTtCzRcz2
kOLIlKYgmewObOKZrxRZpsgyv8VZZTbFminWTE1/UxyZmv7mO9zC4DCLJcWR+QMOq5BSZJkiyxRZ
psgyRZYpskyRZYosU2SZIssUWabIMkWWKbJMJsSzNlKsmWLNFGumWDPFminWzI+4cxa96DM1/U2x
Zoo1U6yZYs0Ua6ZYM8WaKdZMWDNhzYQ1E9ZMWDNhzYQ1E9ZM/NhFq0roM6HPhD4T+kzoM6HPxFld
mGkJjyY8mvv8ldYJoSaEmnxM1SGYhFkTZk2YNZm2JvSWTFtzstr2nDMJymf12wE/56+5v7SB2Xc1
oDagNkp1clh/7RqgNqA2oDagNqA2SqwBrAEsABYAC4AFwIKXBsACYEHRBXgCPAGeAE+AJ8AT4Anw
JHgSPOnivZHg7QnC6WTuzO/56mD1Vwd8Z7BdA9R0AswJZoYxOMzfCKD8356zkvBd5KLIxRQO9L1S
iuItwBfFW2AuMJcxA6PAXGAu3l5+hS8Gc1HOBcIOwk45d4B1gHWAdYB1gHXKuYOng2fOKfve6jrA
OsC6TwGsAwwegTn63mihEHMHhGe/cZoDIDz7e9NjuYdYj5j70OSxZQ4gs3Bn0c6CncU6C3UWaYm6
StRVmtWViKpEVKVZXYmf6tvkbz5ARFUiqvrePDs7aGkOV+Kn0hyuREslWirRUomWSrRUoqUSLZVo
qURLJVoq0VKJlkq0VKKl0hyuxEYlNiqxUYmNSmxUYqPSHK5EQiUSKpFQiYRKJFQioRIJlUioREIl
EipIqCChgoQKEipIqCChgoQKEipIqDPMFSRUkFBBQgUJFSRULKZ2xKOdwbGY1RWO1s5wWdBSMb0r
lk47I2lNWtqOAH51glys5GJ1LhgXppqxM+wWjFUwVsFYxTys4KeCnwp+8gIEKw8rKw/bK3hyI4ON
XDQ4NXhpA3wDvIfLAE/zA32XTwG1AZVewhyrwyK112mA2bXjunCBu5wDhAFCl6FzOj2lnXCKHaKq
PReBHZCUYYDZFyeYE6h7AswJ5gRzgjnBbA4zKe530RL22ynw/TnkKynwJBdJYSbgkzafVG5SYkVO
TW/72/1S3lWGSmHOyUHfX1rkogBfYC6/nSowsB0GxWI8fun+ZGq51je+89ChKDkUJYei5FCUHIqS
Q1FyKEoORcmhKDkUJYei5FCUHIqSQ1FyKEoORcnbqCh5m3cyOgQohwDlEKAcApRDgHIIUA4ByiFA
OQQohwDlEKAcApRDgHIIUA4ByiFAedsFKF/qTkafFiELD+OGm5FiLwiKzyVSrg9qsWiLe26pTmgK
33XHgsCZs9qZY9eN/TN2y+BpWfG0bM8xZlpVpzUUNb0DA0/322ko3beTnU776NR9Ufeduu/ka5Av
Z2c4Qb4GY5lzOsjgYCB23gc5HZTzoFQHrbxTTS6fQWm4oAYV1/0cMjjI4CCD056yEdX9JhXTLKRZ
RJ1i5bBKd5ZJ/ypn59WyTbpsky7bpMs26bJNumyTrrlz/w4PEM4u26RrEt1lknSZJF0mSZdJ0mWS
dJkkXSZJ/zGPc24nUBkp/d152FU5a7D/hP/p1q7IQQVMC7DLtOkybbpMmy7Tpv+ca+lBgzY8aLGu
Wdejq2/WWv8F/89CecH/s/C1A/4g6teASrusp/4+h9XQusyoLjOqf8hZNcwue6rLnuqyp7rsqS57
qsue6r/lzhsJtcD+O/5X++u/5//Z1mRzddlcHZurY3N1bK4+ba7t1pVEIxFc49cnR+4kHiQWrimO
+IGdxOBUI+FX+Mk1L55GwWBFdmCpDfytg4XYgS3Qse86ToaOk2EQbmJgag1MrYGZ0PE/dAy9jv9h
YEF0/A8d/0PH/zCwlTqGXsfQ6/gfOtZcx5rrWHMd/8NgrXdgEHWUdAOzZWCJdCy+jsVnN0h3M3XD
dBvcm1RSPum7qNxGQaWfQ3Ya2XFrSQoqqZSkfGZYoYHV0/eG1Mhy+l1USvoVZDkpurmQP7B6+t5a
kicH2QnAB4XgZpN+O83GDcmtJSneoE6DQghaeFHybiRuCWE8VGX4XTzZVVA09QJz+gjFW4AvoLp2
kgwmtewqcMm7nIsMFvlK8pXOl4+QLxe4yznJl8vQJeZiKerC+Sqg7tmhup2vHSFvL4MHhhHut/ti
XwPUorqL/lWAL8AXTctHOrno5KIzEBU57WSnU/KdXHRKvlPOGARYAgMDbrz2CrpVp8Q6nWh/F/mC
y/G97CyM7wXe3W6nwI1w8IpBGzPmQXaGL6ZSnJ3hBPka1MWgLgZ1AeOyDjGwLAfmI6y7HdHtw2Wh
p8yHzUdNzp5UPZTx8VVuoaZnGQ0ZTOPrHJ63yXIaspzGtzhLYxhU0DRfhoyqIaNqyM8zZEuN73Et
zWQ6t8Y7/K9SHd/nfxXukL01ZG8N2VtD9taQvTV+zC1Uwyz9IXtrvMth1cWQd2jIhBo/5ayKesiW
GrKlhtxEQ26iITfRkJto/Io7qQsqQY6j8WsOU95Ui2ygIVfSkOkzZPoMmT7jY275Y108DYaTv4aM
ofEJh9VOh7xMQ16m8XvOzkKW6TNk+gxMn4HpMzB9Bu6mMe2b7RlXEjdO3Uk8SCxc41MriUYiSCSJ
IuFMPkgsnJptd5os2ymevJKLlVzILtmu4aUr2VkBv4JwBfzKu1Y/ufGcIAHm1UcAL0tlO9I54lM+
Qi6mOTJcnbMCt9vHTISvoVJcBeG7yI4L3EUXlIbL0CXmYmnUhfPl7DTqIijMoAx3hLw9qJQAhhBu
Ryhe4wmy4wcGbSxoPwHU/YHOF+CDfO0XU19BvvYEGQwyGFRKODtck85OkeDidL7G376lyYrV+PQc
v8tP3k9R8km9JwUlk2VLULxJqSalul9MQSWFud9FgSdluCco56QM0+VDGaaLhTL0XUXrLeeL5xQt
ocBcYC5aVAG1gFrkQtbM9kB6nPGU3073NMICfPliWrjBF3VR9K+iw3ay0znVqaZygvpydrqPUBdF
xRXt2fnqvotC6L6YSum+i6ZelGr3cygfZ7n7Ytqz875nkBLbc+rbKTEMAkwouH+7i1ruVO7wEQqh
04w7pdGp5eG7aBLYATYAJq1vd1EIzjJEP6l9O0WJDSdoG8M59RFyCjFPum3Pmn5CP6kfCnEvsnmC
Qu2+wkeGrpg/X9XP1/Tzdf18Qz/fnLe4aFWQ7dm39PMvHD7r/2/z/0X/f4f/r/r/u/r5nn7e0c/3
9fMD/fyrfv6NO2/6/4f6+ZF+fqyff+eiu/5/Vz8/0c97+vmpfp7r52fc8tD/P9fPL/TzgrOL/v+l
fn6ln/c5u+r/X+vnA/18qJ+P9PMb/bzUz8f6eaWfT/TzW/38Tj+/188f9PMf+plW0ZY4k7iQuJKg
BQ+61ghO3UnQTEdyZCGxkvDtxREaFU1w2klbwtf41GxPWEWnaU9sCcCvPkIuZCdtR64kbpzyNeR0
9SnyJYNpu+tO4sEpMigTajvlI40EBTUNptO0S7YjZHAlgysZlMHUsH/bsz2Dytf2nEaCV+wZpAyV
0+0I72rky7kwZgNrgJ+G4GmaR+3Za0/2AzvXGDyJIBdBpexHyE5QBUEVBFUQQA2gToPp9NoD/RzA
B8USFNT+ZAoqyEWQiyCDAfikjRlPUhfJSxPwySvSFwM+AZ+UcwI1KecEWAIsAZYAS4AVZVjgKfAU
eAo8BZ4CT4GnwFPgKfAU9R60eVdBgXCS62lWSoNlGyzbINftGl7RXXG8qwO+A74DvgO+G4aBAaPT
PV2V3Y2EljlN3tOs0wZfNkixmd1OGKYnDNPTXsvdL/W7yDKMN3mswWPb7WQHCjN3mbTMQeYZs4eJ
YnLC9kBfTFN3YxvOhW8Hs4fcOdKelPOTmt6J0Wm20pOuPs1rlbuTiPwkIj+JyE8i8tM39SPaPv2L
fr6tn+/oR9x8EjefxM0ncfNJ3HwSN5/+DTTO80Qrkj6JpE8i6dO/60fcfPoJt8yciaRPIunTc86q
XE4/049I+vQLzs7sv9CPSPokkj69rx9x80ncfPqQO2l0s7+ePpr/z257+g3/q/eexN8n8fdJ/H0S
f5/E36ffcQstcvbzkxj99AcOqzmdRO0nqP0EtZ+g9hPUfprUviXuJB4kFhIriUYiSCSJItFJ0OuK
V6zPSABsBdgKsBVgK9RVdP4C2ApUc3MBdXUCzCudpGhL5SPkYnWC7KxkZyU7q7NDVymuaQxzcwQ8
+wVqA2c9/qyHn3XbeV47L/nqvEVDZjurj53Vx87qY2f1sbP62Fl97Kw+dlYfO6uPndXHzupjZ/Wx
s/rYWX3s/G/6UY86q0ed1aPO/w4aVdRZXesss/esHnVWjzrL7D2rI51/zp2q2bPM3rM60lkd6ayO
dFZHOqsjndWRzjJyzzJyzzJyz+okZ3WSszrJWZ3k/NvPdcuRL2iXkkP9cag/DvXHof441B+H+uNQ
fxzqj0P9cag/DvXHof441B+H+uNQfxzqj7dd/fE271hy6EsOfcmhLzn0JYe+5NCXHPqSQ19y6EsO
fcmhLzn0JYe+5NCXHPqSQ1/y9+pLvtQdRZ6Ov3z13j+/84N859VH7zx/7/mL3z5/+ZWfP3+VH37w
6uWLn3zy6gnB9z/85OV7zz/+pw3nx3988BcjcPkbwfyv//PtDz94/rfvnvLs/z5Zk6q3h+rtoXp7
qN4eqreH6u2hentocHtocDvTmx4a0x6apTw0lD0Yyh4MZY85lG03dhKDU1cSt3lq9qoHo9yDUe6B
m/hMW38w3D0Y7h4Mdw+GuwfD3YPh7sFwd8ZTcsageTDuPRj3HsxJztg6DwbABwPgg6nIg+HuMYe7
LWHMvgbMK5hXMK9gXsG8gnmlxOZ8Y2Z4ZndmdmZ1ZnTOwRaZAouGqUXD1KJhavkm6O4kBHzRwLVo
4Fo0cC0auBYNXIsGrkUD16KBa9HAtWjgWjRwLRq4Fg1ciwauRabAovFq0Xi1aLxaNF4tGq8WjVeL
iH/RMLVomFo0TC0aphYNU4uGqUXD1KLmvqi5L2rui5r78jHZFhktaveL2v2idr9oUr6ouS9q7oua
+0JzX2juC8y90LgXmHuhTS+06QXmXmjKC015oSkvNOWFprzQlBfm2QsNd6HhLhD2QntdZnvdcsu7
VoCtAFsBtgJs9cUAWwG2AmwF2AqwFWCzvc6b563zxnnbvGnesqq9rmqvq9rrqva6ilZXtc5VrXNV
61y/Q+7mq9RMVzXTVc10VTNd1UxXNdNVzXRVM13VTFc101XNdFUzXdVMVzXT9ae8ceZK7XX9GYdn
Ln/O/zO7asGrWvCqFryqBa9qwata8KoWvKoFr2rBq1rwqha8asBe1XAVt60pbltT3LamcG1N4dqa
wrU1wrU1wrU1wrU1wrU1wrU1wrU1wrU1wrU1wrU1orQ1orQ1orQ1orQ1orS19bUxGE6Y8zKCszVi
sj2dGj4C1BWobtOD7KxgXsG8gnkF8wpmmiULc+c59dsSfgW5oLnOVr5d47f7peRitvvpoGl+PAOt
Zo1bQqCmu0bOmu2wIDa/aj6IcptuPQVQaoqb1BQlqSk4UlNwpKbgSE3BkbY7k4Tyo3BJ2/961wVf
3YXVxQsuOoVUagqp1BRSqSmkUlNIpe3aKwkVioIsNQVZ2g6rXhRtqSnaUlO0pe2sKkthl5rCLjWF
XWoKu9QUbakp2lJTtKXtzoXELLqf8X8jESRmYYtSFJqpKTRTUyCmpkBMTfGXtltmYalnKhBTU/yl
7azatQIxbf+rGSgi09P/05um0ExNoZmaQjM1hWZqisjUFJGpKSLTdqfatUIzNUVkakRkakRk2i48
c+RC4kriRuJO4kFiIbGSaCSCRJIoEp3EzCedlrBLjSBLjdhKjZBKjZBKjZBKjZBKjZBKjZBKjQBK
jQBKjQBKjQBKjQBKjQBKjbhJbfqupjtxuqLm8uwFv+MFv+N0LU4n1AV/ogKYNAUwaYpbsp0VeAUw
aQpg0hTApCmASVMAk6YAJk3hSrY7HySUWwUw2f5fSdBkQa4+pkgmTZFMmiKZNEUyaYpkst2SJFQ8
im3SFNtkOzxzqa6lICdNQU62sypBRTtpinbSFO2kKdpJU7STpmgnTdFOnu6cbtgL3lfFP9n+V0tQ
IJTtfzUIRURpiojSFBGlKSJKU0SUFvSf6ZlTaJSmiChNEVG2s7Oe1JEUGqUpNEpTaJSm0ChNoVEa
oVEaoVEaoVEaoVEaoVEaoVEaoVEaoVEaoVE2DL6mkQgSSaJIdBKztFknueAOJFhKI1hKI1jKdg1v
X4G6AnUFxurn+OKVBAhXEK4gXEG4gnAF4exR0703XXZJW5ue8umNm67w6VhTtIKmaAUt6T9JG+dZ
6kiKVrAdFiiFLWiKVtAUrWA7O9+krqWwBU1hC5rCFjQFKWgKUtAS/kloDnj/Nv+ffr+kI02/n+IX
NMUvaIpf0BS/oCl+QVP8gu0W1ZUCGTQFMmgJEU1noCIaNEU0aPnib98JtZ3VyM9q5Gc18rMa+ZlG
fqaRn2nkZxr5mUZ+ppGfaeRn5tsnFspPzIHPsMWZdcIT89szzf5Msz/PZr9d41d0EtOnBn+cafZn
mv0Z/jhj6532lYQ5bTvvLsgOsJV3rWRn9cW+ppEA8wrm1Zh9DZhXMNuZOO3/iy69zP9wPs5pwEUN
9qLHXPSQi7rGRV3jIvPt8g3unLeIWi7qCBd1hIuo5aL2f1H7v6j9X9T+L2r/F7X/y7/yVPze0+K+
iD8uP5yHp7V9UbO/qNlf8DNOO/ui9n9R+7+ILS5q9hc1+4vY4oKfceATn5b1BRf+XFu5vOB/NaWL
DLGLDLGL2OIitriILS5ii4vY4qKZ0UUkcRFJXGRkXcQNF3HDRd3mom5zUbe5qNtc6DYXus2FbnOh
21zoNhe6zYVuc4EbLnSSC5RwoW9c6BsXKOFCl7jQJS50icu+UD7wrw/etYJwpYsO3r4C1X3Dy1ID
PKsfCLDVT/ZzyMXqu1i6GjTxQS68dD7IzsqEpjGba8bsa5jUNDyFDfCzj51ZHz8zfbgKzZWJ1Zw3
XJnczLXyq1+vbFz1zqvfOB+jfnhVP7yqH16/wUV+iartitvMszVP06bhf1VfvaqvXtVXr+qrV/XV
6/fmLUEWp6l/Ve+9fp/DKq+ruvFVRt/13zirpnnVNOqqTntVp72Kq67qq1f11et73MnkdZq5V9wZ
wRw1mKNOO/Wqjn1Vx76Kxq6isatmT9dfcsssb/Xeq3rv9decncWubnxVN76qG1/Vja/qxld146u6
8VXd+KpufFU3vqobX9WNr+rGV7rxlW583R3R06q+0p+v9Ocr/flKf77Sn6/05yv9+Up/vtKfr/Tn
K/35Sn++0p+vUNyV3nuF4q502isG3RUeu9Izr/TMKz3zSs+8wmNXeOyKQXels12hrysG3U0333Tr
TTfedNuNZh10qzmnuOkht69yWE+/qf/c1H9u9J85p7iJx27qGzf1jZv6xk1946a+caNvJH1jzilu
7/A/bpqkTucU4SbSu6m33NRbbqK4mzrJ7UfcokK+qbfc1Ftu6i039ZabmO0mZrupA9zUAW7qADd1
gJs6wE2sdVO7v6nd38RaNzX3m5r7Tc39puZ+ewkoVfhN7f6mdn9Tu7+p3d/U7m+/5xY1jZs6wE0d
4EYHuNEBbvDYjXZ/o93faPc32v2Ndn+j3d9o9zfa/Y12f6Pd32j3N9r9jXZ/2/15yZNXgK0AWwG2
AmwF2Aqw1bcDbAXYCrAVYCvAVoCtAJsd4K6b77r1rhvvuu2um+665S6WuKuV39XK75q23NW472rc
dzXuuxr3XY37rsZ9l5F21zB/V3u9/4CyWUlMWGrBd8b7OVm6qynfNd7ff8zZiV5N+a6mfFdTvqsp
39WU72rKd5zVCZXNudsdr/WcJd1/wdrdLLUX/K9Wdle7v6vd39Xu74z3RXedU6C7esJdPeGunnBX
T7hr4L+zNjO1Enf1hLt6wl094a6ecBcD3NUB7uoAdzrAnQ5wpwPcZwfYnn7jiBN3Eg8SC4mVRCOB
aVC+K0kUiU5iFiVd4g4V3OkJd3rCnZ5wpyfc6Ql3esKdnnCnJ9zpCXd6wp2ecKcn3Hf3dfk5AJtd
4jGXJufC5FyWnIuSvlsvf8yVSfWNx9c4O5c51Uke6iQPDKepX3uotzzUWx7qLQ/1lod6y0O95cHA
Xy7wiUr956Hx/qHe8tB4/1AneaiTPDTMP9Q3HuobD/WNh/rGQ33job7x0DD/0DD/0DD/0DD/UHN/
qLk/1NwfGuYfH7z1+2gcOoBDB3DoAA4dwKEDOHQAhw7g0AEcOoBDB3DoAA4dwKEDOHQAhw7gS9IB
vLU7QxxKg0NpcCgNDqXBoTQ4lAaH0uBQGhxKg0NpcCgNDqXBoTQ4lAaH0uBLVRp8qTsqvHz+sXYo
+Oft4C/effnB848//qdffvzFaBn+3NtUBB//pzJYr9fL37rHwt+Y75fPP/rw5as3m3u/882Xwaco
SzYPl4aUVNtNtd1U20213dTAnBqYUwNzamBODcwpyyQ1HucnuM80TKUG5tTAnBqYUwNzamBOBuZk
YE4G5sQyScbjZDxOxuNkPE7G42Q8TiyTZBhOhuFkGE6G4WQYTobhZBhOhuFkGE6G4WQYTobhZBhO
huFkGE6G4WQYTibEFxgjsUySYTiZ9V4YoedwOffbKdy6cwSeip+5ec5U75TG45KtUhqG6xvciWOc
J+PW5RXf4n/BLo3QpRG6NEKXRujSCF3vcMuEo4G5NDCXBubSwFwamEsDc2lgLg3MpYG5NDCXBubS
wFwamEsDc/2cN86ca4QujdClVl5q5aVWXmrlpVZeauWlVl5q5fWSp7LQNEVPpXZfrGtMnVPJICm1
+/odZ9WSSh2g1AFKHaDoAEUHKDpAYZlc8Lpe8LoWMqwLztaafWM7cufIg8RCYiXRSAQJWlL3XUWi
k5jtid5S9JaitxS9pegtRW8pekvRW4reUvSWorcUvaXoLYXRUnSSwll0wflbGC3TUzudsdPrOl2o
c5+57nv1akUZagou1DprHzxJRouiDDVFGWqKMtQUZagpylBTcKGm4EJNwYWaggs1BRdqCi7UFFyo
KbhQU3ChpuBCTaGEmkIJNQUOagoK1BQUqCkoUOusWZBZmSgK79M6a36UgXqCYvi0zpo5RaMuoRg+
TTF8mkL3NIXuaQrd0xS6Z7uTNZrpQe50iek67nDCdBYrvE9TMJ+mGD5NoXuaQvc0QvdsN5054sSF
BH1j+MiNxJ0Ey7fTrUzEnkagnkZYnkZYnkZYnkZYnkaAne05fsXMLT2BKDqNKDrbxcBYQbgCY+U5
q695kEAcMQwezCuYVxbkho8AfgW8uWWQwdltCJ7TCJ7T5hXT8Tt3ORy+Hy0GJ1wYKp5BR5p+XoWh
aAo60RR0oinWRFOsiaZYE00BJZoCSjQFlGgKKNEUUKIpfERT1IimYBFNwSKagkU0BYtoChbRFCyi
KTREU2iIpogQTREhmiJCNAWCaAoE0RQIoikQRFMgiKZAEE2BIJrCPjSFfWgK8pBXnNlXnNkK+9AU
9mE7rNpX/Iem+A/b4SuJGwm1BYWGaAoE0RQIoin+Q1P8hzbjP1wJCnDFxa1AENv/ahiKCLH9P6sY
tiE0RCM0RCM0RCM0RCMQxHZ7kEhOPUgsnCqOrCT8Ut/eOeLn+C6fGjMxuxaBIBqBILbnjJkIX3Ph
iC+mgIOcruRr9jpiRDRiRDRiRDTHiLiiPbmiPSFGRHNoiCtuc0JDNEJDNEJDbNfwUvW60A7hoR3C
QzuEh3YID+0HHs98L/U8o3dpG/Dt/5WE4c7nfU0/ivmiHcJDO4SH9gOPuR/4FY/udXp0QxuDh/YD
D20DHtoGPLQNeGgb8NA24KFtwEPbgId2/w7t/h3a/Tu0+3do0+/Qpt+hTb9Dm36HNv2Ouen3lahf
2vQ7tOl3aNPv0F7fob2+Q3t9h7b4Dm3xHdriO7TFd2iL79AW36EtvkNbfIe2+A5t8R3a4ju0xXdo
i+/QFt/BFt/BFt/BFt/BFt/BFt/Bht7Bht7BPt7BPt7BPt7B9t3Brt3Brt3Brt1bkdAgZvQs9vEO
7+N9JXoW23fHs73bpBNgXp0A/Ar4FfAr4FfAr7S6pI+l76IdJmNH0nbTt5PTlZyu5HSGfGP77mD7
7u12v1Qldpo/jC3yhoZ23w1tuhsnSi7nYT1Wu++Gdt8N7b4b2n03tPtuaPfd7c4iIWwnuk3OZ317
/i9vaGiH3tAOvaEdekM79IZ26A3t0LvdoirSVr2hrXrj9MPP1UHxJ7tZfvf585f54QcfPH/v1YsP
P/jKL56//9Hzl5/qFPlLypMtH+oM2ks4tJdwaC/h7awamTYVDm0qHNpLOLSXcGgv4dAWwqEthLc7
aV/yKMTcVPjKRrZXgmFc5wQ4tM1waJvh0DbDoW2GQ9sMxwnm1sw3tN9waHfh0KbCob2EQ3sJh/YS
Du0lHNpLOLSXcGjn4NDOwaENg4MNg4MNg4MNg4MNg4MNg4MNg4MNg4MNg4MNg4MNg4MNg4MNg4MN
g4MNg8MbBl/ZoPdK3F12Dg52Dt5O8ZwVqCtQTaLFK1Ywr2BewbyCeQXzCuaVXlp0yBlz7rSTaDcw
elynDFfytXLXJFFtDxzaFTjOfhQDnSbOoX2C48zLZzw4bRgc2jA4tE/wdlZZ1IbBoQ2DQxsGhzYM
Dm0YHNowOLRh8HanykQ7B4d2Dg7tHBzaOXi7SOWlLYRDWwiHthAObSEc2kI4tIXwdotKVnsJh7YQ
Dm0hHNpCOLSFcGgL4dAWwqEthEM7B4d2Dg7tHBzaOTi0c3Bo5+DQzsGhnYNDOweHdg4O7Rwc2jl4
A6Va1hbCoS2E46y+ITFaSIwWZ8zSGeFPqrRAlRao0gJVWqBKC1Rpcd6t0RkVEHlaIE8LxGiBGC3Q
oAUatECDFkjPAulZID0LpGeB9CyQngXSs0BoFujLAn1ZoC+L886UnbevAFsBtvoUwFaArQCbzV2y
spCsLCQrC6nJQmqykJospCYLqclCarKQmiwkIguJyEIispCILCQiC4nIQiKykIgsJCKLC+zV3U/n
q9WUJSLbDk8oatMSkcWFNj3DC0pNFhKRhURkIRFZSEQWEpHFBcNwMHDNYIMX6GLGcrzAEjOqstRk
IRFZSEQWEpGFRGRxgRNm/GypyUJqspCabDurmpasLCQrC8nKtrOqfunLQvqykL4spC8L6ctC+rJA
XxboywJ9WaAvC/Rlcdk7wAzzjNAsEJoFQrNAaBYIzQKh2Xa7rykSncSsMnoCirNAXxboywJZWSAr
C0RkgXYs0I4F2rFAOxZoxwKlWCAQC+RggRwsLrsZOIMxXuePniGpV0jhFRJ2xRUOHJDPDNQohVdc
Ge9nWE5JvUJSr5jCriuROSXjCsm4QjKukIwrJOMKybhCoq0ni3h6Bm7TMxBTxnWbLoGQjGv7XwUp
PVdIzxWScYVkXCEZV0jGtd2iIpeeK6Tniqnnuk1XQkjGFdJqhbRa21lVjkRbIdFWSLQVEm2FtFoh
rVZMrdZtuhlCWq2QViuk1QpptUJarZBWK6TVCmm1QlqtkFYrpNXanrqSmJWqTiL11nZ4VjK9BRlX
WMZ1m46JQMYVyLgCGVcg4wpkXIGMK5Bxbc8pEp1Tfrtf4WsGR3wxR2b/QeEVKLwChVeg8AoUXoHC
K1B4BQqvQOEVKLwChVeg8AoUXoHCK1B4BQqvkMIrpPAKKbxCCq+Qwiuk5wrpuUIyrpCMKyTjCqm3
QuqtkHorpN4KqbeeCmdqGW/EMpeeK6ae60Zkc8m4QlqtuNElZrhzibZCoq2QaCsk2gpptUJarZBW
a7vzSkKlKvXW9r8K90YnmSHRpecK6blCeq6Qniuk5wrpubZbFhKqDSm8Qgqv7fAsXnUbSb1CUq/t
bJCY5a7+I/FXSPwVEn+FNF8hzdd2C21uekWkAtv+HzORlPd0AEggFhKIhQRiIV1YSBcW6MK2m84k
Lpw6k6CPzSDnSMYCyVggGduu8ZEHiYXESqKRCBJJgmymH+jndI5QCcm4kX7gbLt0P4Rmgb4s0JcF
+rLtdmCsgJ/9EKFZIDQLhGaB0CwQmgVCs0BoFgjNAqFZIDQLCc1CQrOQ0CwkNAsJzUJCs5DQLCQ0
28DOa9UhpTgLKc5CirOQ4izu335rdrn4y+6HN6qP+Czf0xxejcOrcXg1Dq/G4dU4vBqHV+Pwahxe
jcOrcXg1Dq/G4dU4vBqHV+PL9Gq8tbtwHF9WHF9WHF9WHF9WHF9WHF9WHF9WHF9WHF9WHF9WHF9W
HF9WHF9WHF9WHF9WvBVfVnypu3F8itogtC9QaF+g0L5AoX2BQvsChfYFCu0CFNoFKLT5T2jzn9Dm
P6E9f0J7/oT2/Ant+RPa8ye0509oz5/QDj+hjX1C+/mEtvEJbeMT2sYntI1PaNOe0KY9oU17NjeO
HV3T26OxQdv4bIen90eDhLbxiTtOv1nN2s9n+191qI19Qhv7hDb2CW3sE/fd11f4+qYwg61+tiP4
xOQ+2RJ3rvHFVxI3Er7mQQIf3dRn3NBnsB1Q3Hefe/lIkEgSFFM1jnQSs4Tw9bEvULAvULAvUNx3
X1/hgy1esTqnxRF8j8W7VvK1kosVzCvAVsBPRr4hcWAToWAToWDvoKdrOuAnI2sTodAmQqFNhEKb
CIU2EQrtHRTaOyi0d1Boy6DQlkGhLYNCOwWFdgoK7RS0vVPlpC2DQlsGhbYMCm0ZFNogKLRBUGiD
oO1OFax2CgrtFBTaKWg7q9LWlkGhLYNCWwaFtgwKbRkU2jIotGVQaMug0JZBoS2DQlsGhbYMCm0Z
FNoyKLRlUDzUtRT8JxT8JxT8JxT8JxT8JxT8Jx70n05zmFIPhQOKGQ7oho5D4YBC4YDiwXrUFHAQ
FyiICxTEBQqiAAVRgILgP0Hwn+05dJKppHjs3WYKJQgHtB0JjviUjyQJekv3EZzmvTgyWw/dhrhA
2zWdI2RnJTsr2VnJzkp2Vkpj9g3CAQXhgIJwQEE4oCAcUBAOKAgHFIQDipnPmcuZx2mOzEFg5kXh
gGLBRT51B4oLFIoLFIoLFIoCFIoCFIoCFIoCFIoCFIoCFIoCFIoCFIoCFIoCFIoCFIoCFIoCFIoC
FIoCFIoCFIoCFIoCFIoCFIoCFIoCFIoCFIoCFAtrTVMfoXBAoXBAoXBA21k1PcUFCsUFCsUFCsUF
CsUFCsUFCsUFCoUDCoUDCoUDCoUDCoUDCoUDioXmPlUWy04gU2dBgKAgQFAQICgIEBQECIplb/fD
1ywkVhKNRJBIEkWik5j1TFMmUlAQKSiIFBRECgoCBAUBgoIAQUGAoCBAUBAgKAgQFAQICgIEBQGC
ggBBQYCgmDevUM6AaaaMZD5qpddO/ch83nyaYgdtZwVOQYRCQYRCQYRCQYRCQYRCQYRiZbwfjCFT
O7GyRCu3Siis0Pb/BKQOoPhCofhCofhCofhCofhC2y0qBQUaCgUaCgUaCgUaCgUaCgUaCgUaCgUa
CsUXCsUXCoUVCkUTCkUTCkUTCkUTCkUTCkUTCkUTCkUT2tDMolMHUFihUFihUFihUFihUFihUFih
p3mCPCih+EKh+EKh+EKh+EJBfKEgvlAQXyiILxTEFwriCwXxhYL4QkF8oSC+UBBfKIgvFMQXCuIL
BfGFgmhCQTShIIhQEEQoCCIUxA4KYgcFsYO2PJ9J+C4QztnVHWkKYYWCsEJBEKHtGr8CzDRhugSx
g2IqPKaio/kJdxIqK/lxYmowpqfljvxEAYJCAYJCAYJCAYJCAYJCAYK2W1TUihQUigsUivmznZ1w
NPAr+E8o+M92dqJUB1DMn1DMn1Con1Con1Con1CEn+1O1aJC/YRC/YRC/YRC/WwXzUyqJyjmTyjC
TyiMTyiMTyiMz3ZLJ6FyVWCfUGCfp8MxS1mdRIF9tsMnEmonCvWz/a+KV8yfUKifUISfUGCfUGCf
7dorCVW3Qv1s/6thKeZPKOZPKOZPKOZPKNRPKNRPEOonHOrnjhiDUD9BqJ8g1M92zcKROwnftXDN
yhEnGokgkSSKRCdBU5u+rDu+LMIBBeGAgnBAQTigIBxQEA4oCAcUhAMKwgFF2/tY0A0CPCuYJ3fc
cUQRKSiIFBRECtquGRwhMXvdlKXMrEz1yXxZcPfUj9xx3gRFIY9NKGTQ9r9yq9hBEV///Pdg+BTZ
QCg2USg2USg2USg20YaNRpo0GvmAQmGLtv9VD4pfFIpfFDNa0R3/UDAEyOETClIUClIUClIUClIU
M0jRneAvd7xAClK0/U/9zkn/nUm/4heFwhaFwhZtZ1V9il8UwXhRVNCc7SuQUSiQ0XZ41pNGEEU0
CkU02s7OWhOpKpBRKH5RKGxRKGxRKGxRKGzRdidlOj/CUCCj7X9G7YJR5iRfMY5CoY1CoY1CoY1C
EY0iIN6iF8wZvmIchWIchWIchWIcBTGOghhHQYyjIMZREOMoiHEUxDgKYhwFMY6C0EZBaKMgtFEQ
2igIbRSENgpCGwURjYKIRkFEoyCQURDIKAhkFAQyCgIZBYGMgkBGQSCjIJBREMgoCGQUBDIKAhnF
9ErO9jfdjWp0MZvcbFuKXxSKXxSKXxSKVhSKVhQKUhQKUhQKUhSKTRSKTRSKTRRJbylGq+lcUbSi
ULSi7fCEov6jIEWR9J/pbVFsolBsolBsolBsolBsolBsolBIou1OhqrpTUm6RIf4OjwzfRSKXxQK
WxQKWxSpviE9UiSk2mn/01kghVIk7DqdBZIqhaRKkXSS6SyQZimkWQpplkKapZBmKSRVCkmVtjvh
tOkekHhp+39W8x/4f9a3OglypkDOFMiZAjlT5E6q01WArinQNUXupDqdBwicAoFTIHDarukc8QN9
l0/Nxkf/QekUKJ2251CXw9cAfqUiBtU6yODsY6ihAjVUoIYK1FCBGmq73U8OEoBfAb8CfgX87Gzl
p6hM5wdWs+nPpj7b9PQESgQVEkGFRFDbAwR+qqHuTA8lggppn0KSp5DkKSR5CkmeQpKnKPrhYDye
c0Zpn6Loh/MDAImgQiKoKPrhnCVKDRVSQ4XUUCE1VEgNFVJDRdEPB41hTiSLfjhniRJKbf/PYlH3
k1AqJJQKCaVCQqmQUOqJtOcETYqpkGIqpJgKKaZCiqmQYiqkjwrpo0KyqJAsKiSLCqmhQmqokBoq
UEMFaqhADRWooQLtU1jy9EDkj+QpkDwFkqdA8hRIngLJU6B0CpROgdIpUDoFSqdA6RQonQKlU6B0
CpROgdIpUDoFSqdA6RQonQKlU6B0CpROgdIpEDjFHIbm6DPHkTlUzNFgeuKkawrpmraiEmoJnEK6
ppCuaTurrEjgFBI4hQROIYFTSOAUEjiFBE4hgVNI4BQSOIUETiGBU0jgFBI4hQROIYFTSOAUEjiF
BE4hgVNI4BTSNYV0TRtSlbUETiFdU0jXtJ1VBUjgFNI1hXRN21nVigROIYFTSOAUEjiFBE4hOVNI
xRQSL20PUG1KxbT9r0qVnCkkZwrJmQI5U6BiClRMgYopEC9tj2okglN3Eg9OJUcWEiunikTnlB84
OOIn+zlFwneNedf8lODBpwRInrYjZGd6sR/MaRFBBdqnQPsUaJ8C7VOgfdpu9zXka/YWJE+B0ilQ
OgVKp0DgFAicAoFTzFF1utzmADnHxTkcSsUUEi+FxEsh8VJIvBSDTjIn4VIxhVRMIRVTSMUUUjGF
VEwhFVNIxRRSMYVUTCEVU0jFFFIxhVRMIRVTSMUUUjGFVEwhFVNIxRRSMYVUTCEVU0jFFFIxhVRM
IRVTSMUUUjGFNEshzVJIqhSSKoX0SFu2VV8SJoWESTHoEtOJIIVSSKEUU4/0wH0gPVIgQwpkSIEM
KZAhBTKkGPswPx0MqI/C6qMHX3+gPgrUR4H6KBAdBaKjQHQUiI5ivNa4uWsF6grUqTV68C0JWqNA
YhRIjLZreNcK5tm40RoFWqNAWRQoiwJB0fYcoK5OuIuOL2Y/hEMJcCgBDiXAoQQ4lACHEuBQAhxK
gEMJcCgBDiXAoQQ4lACHEuBQArxlSoC3eb+BQzhwCAcO4cAhHDiEA4dw4BAOHMKBQzhwCAcO4cAh
HDiEA4dw4BAOfJnCgbd2pwG2SXlCOV0i2i8ltV9Kar+U1H4pqf1S8hkZk/Mk5zYp2gsltRfKdlZm
qzZFSW2KktoUZTurSpq7o2gvlNReKKm9UFJ7oaT2QknthbLdeSWhMVm7o2z/q061TUpqm5TUNimp
bVJS26SktklJbZOS2iYltU1KapuU1DYpObdJ0e4oqd1RUrujpHZHSe2OktodJbU7Smp3lNTuKKnd
UVK7o6R2R0ntjpLaHSW1O0pqd5TU7iip3VFSu6OkdkdJdkdJdkdJdkdJdkfZCoNBe+4lyn4p+Wzv
r3OvDzZOSTZOyWc7YU3PDTuoJDuoJDuoJDuopHdQYb+UfLb3V028twR3mZWS2+dE5zF9QMnGKcnG
KcnGKcnGKcnGKcnGKdvtNNDpFvJWKt445TEdRck2Kck2Kfls79NF8a7GQ75mtzn5cQI6t0nR7ijb
YapjSkxOfrTQz41THriJtHFKauOU1MYpqY1TUhun5AmaK7I73URzK5W5ccqDuBhz4xTtl5LaL2U7
O5Gqj2njlNTGKTk3TtF+Kan9UvL0Q+505pQZhUTZ/ndmKP8+S0m9bkZLUZCUVJCUVJCUVJCU7RbV
i6KlpKKl5IyWMmOjKABKKgBKKgBKKgBKKgBKzgAoinuSinuSinuSinuSinuSinuSinuSinuSinuS
inuygVJDUACUVACUJABKEgAlCYCSBEBJAqAkAVCSAChJAJQkAEoSACUJgJIEQEkCoCQBUNIBUAh3
kg53QpSTJMpJOsoJwU2S4CZJcJMkuEkS3CQJbpIObuJQJo5gQuCSJHBJnnZK6RDxdBMplEmeGQrk
NMoZ00QRTPJMK5LvKM9uTMKpUCY5Q5kogkkqgkme6RudviH/UJ6hnT4h0Ek0Q0tFOckZ5UTBTVLB
TVLBTfIM/3Ta/wwOoSgnqSgn22FlQOFOUuFO8kwnmT6cGfdE4U5S4U5S4U5S4U5S4U5S4U6e7hwU
63TxKADK9r9qW5FQtv9V7AqJkgqJkgqJkgqJkgqJkgqJst3CODWX7RUkJRUkZTs860IdSdFSUtFS
trOzZtSjFC0lFS0lFS0lFS0lFS0lz9idg3qay/YKm7L9z8A6aCxjthJ6HRFVkogqSUSVJKJKnneu
mxstElEliaiS553r5p6LhFZJQqskoVWeuLT57X6g75pVS4ckxkoSYyWJsZLEWNke6FNgnj2TYCtJ
sJV0sBVirCQxVpIYK0mMlSTGyvaKCwnKZwXq7KsL+yNe5p6XczdK53ruejt3q5x7U84tKb/KRXMr
TfVMBWTZDi8k5hbI3+D/+a5v8v986dwJWV1UQVu2s3PnXHVRRW/ZDheJCUqdVvFctsMTpHrvDOyi
MC5PZ+fsecZzURiXVBiXnGFcFL0lFb0lFb0lFb0lFb0lFb1le9zcUfVn/D83KZ3bJqtDXuZmseqQ
itWSitWy3UJdzSVoRW/JGb1lmZPbVPSWVPSWnNFbLnMj5blr7Nwjdm4Nq354mbslqx8qVksqVkte
9h1hZ9da5qQyCdqyHWHDVG8N602SvTeyd4Rd2GZ19rGF+AILeyoSxiUJ47Kd8hF2S17YJnWhTQf7
pS5sjLqyhfdKLrxH7MrGziuYVzDPzrawME1gl+0IL12NmU1ZV8B7j9gVPKuf49uN2VBJsO1em1fM
Sdh17rY3d4ykic/51nXutjd3KZybVM5QL+p1ivCSRHj5Fg+YOxP+C//PTTfn3nozxpe6lkK95Az1
MgO7zHguV/pPMorNudh1Bkb6IYfn9oTqUdcZGOnfOTv3LFTXUoSXnBFeFNhlu2jufKo+dqVrsU/h
DIz0Cw7PjRFf8P8sSXU2xXxJxXzJGfPlOreY/ZBbZqnPnWVnYKSXnJ37FM4QYTMw0iecnVWjzqYo
MDmjwFznrrFsFruwo+1yfqP7C2ww2eByYdfVhS0mF/bJXegYxdaQC1tMejPahc0iF/aj9B60Jsw5
0VqYTTm4zHXvzGUYAPM+m6tvB6H32fRmtN6DdgX8yraYK5hXMHtXTe+h6ch93mh2pceVH8gOl95o
dnbd2xT2T92jc+3Sm0LQqXt0jqf4eUrjp+7xa5ydIkZ1ZoWkSYWkSYWkSYWkydvUPX6HOxlJ0P7D
k3PWNmPTLEzebjOS04zbNGPTTAn81D3SmcvgJ+qphf/xPDxne7cZwGlGq/kJZ6egdsamUfdWSJq8
zbhN6swKSZM3+vCcfSkSTc5INAuzixvMic59RnKaIWmmWnJ+iqLOfKMzzwnIwlxDIWlyhqRZmHLc
6N4dIujQWae850TiNr9SmeL6Gf9JPf+GyHihTXeaS0cWa+LtiNlNvJ3PKBYE/QsaW/fVQYQc648X
IA8EzVbZ+5sUE+/g05iFzzqssndfHcTKWcCz8lKL61ees3Kxv0lZKfIBdVgp7E9RVsCbeIdPAX4F
vBXH/hTFGmMT74DSB98c+JsUG8BzBnKfS9dzuZYKmvOR+1QpTR3ZXI+fYjH13vtcusbKHS7cKXXC
3J0zkjvkPGcf96nXmqKsqd5UN75PLdYfO+3TwDr5PGe3f6qaaT62aV6NxGgosjCYDgxowImc5fP0
ZI3aRTC6p7FbhnQRa64IKlfEjyvCwRXh4Io4cEUAuM4exkUEtyJYWxF7rYiSVsQ8K4KWFQHJiuBb
RfCtIixWERariIdVBLMqgkwVsaSKWFJFWKgiCFTddqjJcxKoCVTZIeenCy6Xx7PHs/+tqVPxsVvx
CVohditUbIVurZCgFYqyQlFWSMkKKVkhJSt0YYW6qFAXFYqhQgBUCIAK5U+h/CmUP4WMpxDuFBqd
QklTqGIKOUohRynEJ4Xuo1iwLlZ8i8XdYpG2WJ0tllSLBdRidbPwEReu4cLJWzh5C3dt4Ywt3K+F
+7XYtntr4Ot/bo8ncnqhFZ/nHOMpobueyk0F1ZOWVTywzbFzMEOrpOJylsbTAKP54FOxz9IY84FP
HXd2uDGJ+amy1L06BfV0ZFbTmJ3g6Y3zdprE0796cn+tNxTtunyEdl0056I5Fx2l6CjlZkzP6/SY
zgNnsznP4af4qKz43Kv4pqv4Xqv4dKn4vqf4+qb46Kb4fKb4nqT4nqT40mN7qa/hFRpqt1O+i+7Q
aKJziDpTlXwZUHwHUEj1C9V/odkv5PmFrL5Q0PfcO+wctJCy7zWIpn17+4MEzwkQBhcHeAIY+130
yv12H/ljITyVyexf6KoL+XMhdy50zoVKuFAJF6rgQvBbqHk15i23J3NEY16/7s8b3D0ojAFkl8H4
ky6IvKpQSxVqqELjVAhknjqHMtqxtQsJxPYK7gpGgllyrJIXS97F0nSxXLzdztASfg5H0gMSeJJX
JINN8q5kqEvelQx1KkKPKMW6WLEUVKzrFGs1/b6DL4bD2TvPFB1rFYV3vXCcF87vwutd+LILp/X2
HMa8walBlgdPHmD2MD8ANnjXIMuDXBjhfDK+1MIHWngqt1FQI2XNGuzESetEY9kQ9nmNGvhTrQVD
uN4+iKRSRG4rAjg9jYUq54EVXjlHuCec0xcUuIASt1Un5AsssSXOJC4kriRuJO4kHiQWEn5gIxEk
kkSR6CTGTMzQLBcislwIxIItuCXAE+AJ8AR4AjwBngBPgCfAE+AJ8AR4EjwJngRPgifBk+BJ8CR4
EjwJngRPgifBk+BJ8CR4CjwFngJPgaeun78D5un4y1fv/fM7P8h3Xn30zvP3nr/47fOXX/n581ff
ffflu79+/ur5y4//6Jf5YvaU+Kxv/1//59sffvD87/vy5NCRHDqSQ0dy6EgOHcmhIzl0JIeO5NCR
HDqSQ0dy6EgOHcmhIzl0JG9UR/I2705xyE4O2ckhOzlkJ4fs5JCdHLKTQ3ZyyE4O2ckhOzlkJ4fs
5JCdHLKTQ3by/6Ls5EvdF+Tl848//OTle88//uft4C/effnB848//qdffvz5a2H+2ze9fP7Rhy9f
fd7vsyfqz+XuzxX5Z1XMfDY/2Kfn+AvF8Lr+56cv3nv14sMP3n35h6/84vn7Hz1/+YVU73+CvUP9
gl75pxqn/y6Pb6aS/2K+31g9/9cnff/Vu6+2h7z66EuRmf3p6z+Dzuwvacy2AZNxuxi3i3G7GLeL
cbsYt8XgT7xpXivG7WLcLsbtzrjdGbc743Zn3O7wSAdPB08HTwdPB08HT4dHOng6eDp4OngGeAZ4
BngGeAZ4BngGeAZ4BngGeAZ4BngGeDQFbMwXn4ouKcPJfadpBW0Xd065VPONB8o6Gsc/TuP4n2/0
fEYj5OP/VAbr9Xr57APq35jTL8Po+hOz54vN9f6o7z5//jI//OCD5380D96QMfIp732Duf/Czb7P
boO9qdr+471vrpL/5HVvNq9/+qg/fPDeL15++MGL/3h3q4Tvqwd+ibbfX8LzWY3Bf9ix+i8VwP8j
g/ffXwz/o0bzz7M4np79/ecf/FRPznc/evcnL95/8erF8zfW4T/l7W9V937TvenLoeHPwd30KRX6
d7i83tjb/15n0N8K4L/2jNfvf3Pj1J998RvO/f6kL8ED9edf/td85/ijf/nW115tY/dvPnk68Vq7
/unz99/9wz999If/368//r+XZ0+X/5mi/bMP+P2v39/ueKkTX3n14tfPP/zk1Vc+fmKGDz/43Ycv
f/XHGvufZRj9+Tr5n2sF/T15/kc3eT6HvP8DTV8/n5r+R5i8fj453R/01KXef/e95z94+e57v3rD
/PBfXn1YrF/WqPP5Ga7/pVLfnNX6N776s464XwSIP9s3Pv4yNqj4s+/+f7pjfq5t9OMvT8jwtyH4
r63kqWl/8PH0pzw9LD/86fP3vvvy+c+ev3z+wXtvzvPxWWAc7fbvbrefpZjfWBP+u8H8xWZUL15q
9P+SmvF/fv8X137fdGP8f9Ag+tSafaOmyeeA5PMcQ/6K9//pjOm9+bCtHr7y3ocffPzq5Sfvvfrw
5RvprZ/+9v85XPNldLwvh98+vUbfDK19Hhg+j3Hi78DxJxj+OPfpv33+wZvvop/y6r+rf37WXvNG
OveXyWufUsBfNJH8ra/+Tx7Gd1+9+95TyX3w/P2vPP/1R6/+8PSYFx/8/Itvm5/24mOW8nc0jE8r
2DcwgP/Nr3+9cfzixcdPLfnF0/O/+Ib4J+862t7f0fb+pCzfQHP7a974eq2/+ODV85c/e/cN6tH+
2zf+z1Kc/bdZ/J+4mvrXZ/Sd5797+eLV00D4v+Yi+//66N1Xv3gdxw+f/+Tr9a3vvvvyY9mnrz58
/ezTI1/89P3zP7//4iek/xrj66+9/fMp2v/+rV9QK/rHXZ/+GzO83zYf9JWP3vunpzL+YrL55972
xWfu189/+uLd99796NUnL59/5dfvvvjgjWTyv33rF9t0P/jwK39861eeHv0GDJ//+rrD9vm77ZH/
Wqhf6Czwr3zdH1/113/O9AW2xb8RzOG7+Ntb6t9Y5F9MO/4iwPwVDev//+KDnz7//V9uCn8VzLfK
F/xXI/9Sms1fWVtvvDV9yvah2wenfX55OjcWOfGF74n9TdjJZTuyzos71yTfq87dQ1Y+gF35APbM
zilndus4sanKmQ+EV76fZSfpxh5+bdlPze9n2b6uselMY9OZDYZPNRI1X+F3zbvWPV9zo5OVu9bX
7jrznCtHnLhx6s4RJ1x0C0cWjqwcITG3fWE77O2UcxEcCY5Qzq64+a4zzznzrjN3ncnXmXydeTt7
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
HqTgQecdPN7wcSf4uFPwcQcRN9TbCertFNTbBf0PDm4ItlMQbAezdlBqw569Z49cIDQQGhXe4oFA
NaAaVdfiXWBmBRpLEIzMQS0c/MGQBO/PAWqJBCvtLRLUaokE4AvgWebFAMDtmtL5O1GLXGBGo8/f
iRoPDP2qgA9NabwrVCY0JdQhtKDy0hDsGvWMPDeg1jiDSIQY1zgD+BDRkMOQjWjlFpjRixa5AB/f
iXo8h1JEzTfUs8crKE7URqPmozhRigbmRv/TUbSOSMSXow6wjsx3qrdTrnOuuDnuAXxH5uOjUqc4
nUaJr0LnMxSn0xbne+ISBewU0OdSruSu4q7g8Snr/ES/QJv4Y+ILF0/TEmile8o/5v9AQtWQf8J/
1UbWnCxrTpY1J8uak2XNybLmZFlzsqw5WdacLGtOljUny5qTZc3JsuZkWYuiWTOwrLXQrIlXfh80
apKs+VbWfCtrvpU138qab2XNt/JDci4k1GJZE6/8V06rtbKmWVnTrPyIqxLNrPlW1nwray00a5qV
Nc3Kmmblz8np7SfTnjXfyrLo+Utu8taVac+Y9oxpz5j2jGnPbtr3zIVE5dJCYuVS48xGIpHI3NM5
YyQKiXhyPIebfU6WmZNV1lgq04iMq2PFwGSMfcXSZGZpGRufsfEZG5+x8RkbX/nyWrFPmXlbZt6W
segZi56Zt2XmbRWrlllBzaEgzMlyaEaoREjjWbgMqDkSG5cAnwM8TYCMhBxgyPO5TaMFc2Cm4Yxc
BniLtuA5UfNR4eeqqyR4RVRmVEuUK0oR4M8wAFYChnGGyjRktQQeCnh+O6IVz4nskatQikJbFDAX
MBcwFzAXMBcqvFB1hYoq4CngKeCp4KngqeCp4KngqeCp4KngqeCp4KngqeCp4Kng8W+HlSXiei57
BWFD9aI2GlAbOliQ1aifBvjGA1tkB3yLm5HnEgnkOWq1xRmK0xCSqOcWl+IMJW1R0jgTohWXKHKn
yDUSFLlHgmbqVF00XKfInSJ3itwpcqe9Ou3VKU6NB8ZzKFdH1CsddUgCxhmr7MsjrsehI5Xeu1LV
LjCuM0ZluPi44pjWVA3T7jJlWlw1GXKTITcZcpMhNxly+yU5A4m/UKbdfsXpAOBvlrE3GXuTsTcZ
e5OxNxl7k7E3GXuTsTcZe5PHhsnGm2y8ycabbLzJxptsvOkzp8mimz5zmgy5yZCb1ktN9ttkv032
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
lW6s0o1VurFKN1bpxqpuflU3v6qbX9XNrxL3VeK+StxXdfPro1vnkDgWAo6FgGMh4FgIOBYCjoWA
YyHgWAg4FgKOhYBjIeBYCDgWAo6FgGMh4PUtBFwaN8KxX+DYL3DsFzj2Cxz7BY79Asd+gWO/wLFf
4NgvcOwXOPYLHPsFjv0Cx36B17Ff4GLYBO796J8oJVRFdrDIDhYpa5GyFilrkbIWKWvRwLRIR4t0
tMjGlc+pAglqkY4W6WiRjhbpaJGOFnS0oKMFHS3oaEFHCzpa0NGCjhZMW0E1C6pZUM2CahZUs6Ca
BdNW0MiCRhZMW0ERC4pYUMSCIhYUsaCIBUUsKGJBEQufSkfWEgsaWdDIwvfQkbU7X0hzjpGKavra
nK/aOGGIr8BUqWaValYNH+tPyUnnxpNRTV7xLv8Fu0pHq6xelWpWqWaVatZfk8XhSEerdLTKolVZ
tKqhYZX+Velflf5V6V+V/lVZqyq1q1K7KmtV/8wbveRSu6rRXpWUV0l5lZRXSXmVlFdJeZWUV0l5
veKpDBZ84apK7iu2ydeqqmxTldzXL7gqSapSgCoFqFKAigJUFKCiAJU16xF/nJH1qcpS2siSU3Xd
2M8snFlJbCQSiUzCSCBJLXJVEo2EyxPaUtGWirZUtKWiLRVtqWhLRVsq2lLRloq2VLSloi0Vs1VR
koobwcjKTsV++eqAT9l9iu4zc+fWapFXr1Y0lawgKrlhv3iSzJaiqWRFU8mKppIVTSUrmkpWEJWs
ICpZQVSygqhkBVHJCqKSFUQlK4hKVhCVrCAqWSFTskKmZAVIyQp+khX8JCv4SW7YHQoru6MwJrkx
bqMOpAmKVZIb8x6qRiqhWCVZsUqyQpRkhSjJClGSFaJkz4md9Zl9QyV8Ot+wCT51VxiTrKAlWbFK
skKUZIUoyYQo2TMNnInESALd6HFmJrGQYAjuDkdEJskEJMmEH8mEH8mEH8mEH8kEEtmfE6/w0qIJ
RAvJRAvZbwZGAmECRuI5Ke5ZSTDB7QEezAnMiUFVjzOAT4AP29IpoKsNQUIyQUKy3+GLDc7s1iM/
82kuRGWoejqK5B5AotvPItfPItfP4tTP4tTP4tTPIs7PIs7PIs7PIs7PIs7PosnPYsfPIsXPIsXP
IsXPIsXPIsXPIsXPosDPosDPYr7PYr7PYr7PIrzPIrzPIrzPIrzPIrzPIrzPIrzPorfPorfPIrO/
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
L1VUBQADvGbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANFgm0yCDwr0+gAAAGgSAAA5ABgA
AAAAAAEAAACkgce6BgBhY2Nlc3NpYmlsaXR5L21hYy9BT00tZXZlbnQtYWNjZXNzaWJsZXNldHZh
bHVlLXN0ZGVyci50eHRVVAUAA7p041p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADUYJtMovae
6UUBAACeMgAARQAYAAAAAAABAAAApIE0vAYAYWNjZXNzaWJpbGl0eS9tYWMvYXR0YWNobWVudC1l
bGVtZW50LXJlcGxhY2VtZW50LWNoYXJhY3Rlci1zdGRlcnIudHh0VVQFAAPAdONadXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAAz1ibTAAAAAAAAAAAAAAAACQAGAAAAAAAAAAQAO1B+L0GAGFjY2Vz
c2liaWxpdHkvbWFjL2F0dHJpYnV0ZWQtc3RyaW5nL1VUBQADpWbjWnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIANFgm0yWGMpWAgEAAAIXAABuABgAAAAAAAEAAACkgVa+BgBhY2Nlc3NpYmlsaXR5
L21hYy9hdHRyaWJ1dGVkLXN0cmluZy9hdHRyaWJ1dGVkLXN0cmluZy1kb2VzLW5vdC1pbmNsdWRl
cy1taXNzcGVsbGVkLWZvci1ub24tZWRpdGFibGUtc3RkZXJyLnR4dFVUBQADunTjWnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIANVgm0ylzzLNNgEAAAQuAABEABgAAAAAAAEAAACkgQDABgBhY2Nl
c3NpYmlsaXR5L21hYy9hdHRyaWJ1dGVkLXN0cmluZy1pbmNsdWRlcy1oaWdobGlnaHRpbmctc3Rk
ZXJyLnR4dFVUBQADwnTjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAM9Ym0wAAAAAAAAAAAAA
AAAeABgAAAAAAAAAEADtQbTBBgBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3QtdGV4dC9VVAUAA6Vm
41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADRYJtMqrJ1HQoBAACcGwAANgAYAAAAAAABAAAA
pIEMwgYAYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0LXRleHQvc2VsZWN0LXRleHQtMS1zdGRlcnIu
dHh0VVQFAAO6dONadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAz1ibTAAAAAAAAAAAAAAAAB8A
GAAAAAAAAAAQAO1BhsMGAGFjY2Vzc2liaWxpdHkvbWFjL3ZhbHVlLWNoYW5nZS9VVAUAA6Vm41p1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADSYJtM+U2rSAIBAAACFwAASQAYAAAAAAABAAAApIHf
wwYAYWNjZXNzaWJpbGl0eS9tYWMvdmFsdWUtY2hhbmdlL3ZhbHVlLWNoYW5nZS11c2VyLWluZm8t
dGV4dGFyZWEtc3RkZXJyLnR4dFVUBQADu3TjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANxg
m0ynDcCSDwEAAAIXAAAvABgAAAAAAAEAAACkgWTFBgBhY2Nlc3NpYmlsaXR5L21hYy92aWRlby10
YWctaGl0LXRlc3Qtc3RkZXJyLnR4dFVUBQAD0HTjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AN1gm0w20VphCAEAAGgSAABBABgAAAAAAAEAAACkgdzGBgBhY2Nlc3NpYmlsaXR5L21hYy92aXNp
YmxlLXBvc2l0aW9uLWNyYXNoLWZvci10ZXh0LW5vZGUtc3RkZXJyLnR4dFVUBQAD0XTjWnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIANpgm0yj7+ElHgEAAJwbAAAmABgAAAAAAAEAAACkgV/IBgBh
Y2Nlc3NpYmlsaXR5L21lZGlhLWVsZW1lbnQtc3RkZXJyLnR4dFVUBQADy3TjWnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIANpgm0wJJtPjBQEAAGgSAAAoABgAAAAAAAEAAACkgd3JBgBhY2Nlc3Np
YmlsaXR5L21lbnUtaXRlbS1jcmFzaC1zdGRlcnIudHh0VVQFAAPMdONadXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgA22CbTDX+rhbJAAAATQEAADEAGAAAAAAAAQAAAKSBRMsGAGFjY2Vzc2liaWxp
dHkvcG9vcmx5LWZvcm1lZC1hcmlhLXRhYmxlLXN0ZGVyci50eHRVVAUAA85041p1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAAAAADPWJtMAAAAAAAAAAAAAAAAGgAYAAAAAAAAABAA7UF4zAYAYWNjZXNz
aWJpbGl0eS90ZXh0LW1hcmtlci9VVAUAA6Vm41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADS
YJtMRPh3aQ4BAAACFwAAVgAYAAAAAAABAAAApIHMzAYAYWNjZXNzaWJpbGl0eS90ZXh0LW1hcmtl
ci9jaGFyYWN0ZXItb2Zmc2V0LXZpc2libGUtcG9zaXRpb24tY29udmVyc2lvbi1oYW5nLXN0ZGVy
ci50eHRVVAUAA7t041p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAADWZtMAAAAAAAAAAAAAAAA
CwAYAAAAAAAAABAA7UFqzgYAYW5pbWF0aW9ucy9VVAUAAwZn41p1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAADSWJtMAAAAAAAAAAAAAAAADgAYAAAAAAAAABAA7UGvzgYAYW5pbWF0aW9ucy8zZC9V
VAUAA6tm41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADSYJtMWZVm7BYBAACcGwAANgAYAAAA
AAABAAAApIH3zgYAYW5pbWF0aW9ucy8zZC9jaGFuZ2UtdHJhbnNmb3JtLWluLWVuZC1ldmVudC1z
dGRlcnIudHh0VVQFAAO8dONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA02CbTGMroRovAQAA
aikAADgAGAAAAAAAAQAAAKSBfdAGAGFuaW1hdGlvbnMvM2QvbWF0cml4LXRyYW5zZm9ybS10eXBl
LWFuaW1hdGlvbi1zdGRlcnIudHh0VVQFAAO+dONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
1GCbTAfS6LwWAQAAnBsAADUAGAAAAAAAAQAAAKSBHtIGAGFuaW1hdGlvbnMvM2Qvc3RhdGUtYXQt
ZW5kLWV2ZW50LXRyYW5zZm9ybS1zdGRlcnIudHh0VVQFAAPAdONadXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgA1WCbTKJZDOQnAQAA0CQAAC4AGAAAAAAAAQAAAKSBo9MGAGFuaW1hdGlvbnMvM2Qv
dHJhbnNmb3JtLXBlcnNwZWN0aXZlLXN0ZGVyci50eHRVVAUAA8J041p1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADSYJtMZykSBg8BAAACFwAAMAAYAAAAAAABAAAApIEy1QYAYW5pbWF0aW9ucy9D
U1NLZXlmcmFtZXNSdWxlLW5hbWUtbnVsbC1zdGRlcnIudHh0VVQFAAO7dONadXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgA02CbTOukj1VJAQAAnjIAADMAGAAAAAAAAQAAAKSBq9YGAGFuaW1hdGlv
bnMvYWRkaXRpdmUtdHJhbnNmb3JtLWFuaW1hdGlvbnMtc3RkZXJyLnR4dFVUBQADvnTjWnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIANRgm0ywG6oGIAEAADYgAAA1ABgAAAAAAAEAAACkgWHYBgBh
bmltYXRpb25zL2FuaW1hdGlvbi1hZGQtZXZlbnRzLWluLWhhbmRsZXItc3RkZXJyLnR4dFVUBQAD
wHTjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANVgm0ycETDRJgEAANAkAAAvABgAAAAAAAEA
AACkgfDZBgBhbmltYXRpb25zL2FuaW1hdGlvbi1ib3JkZXItb3ZlcmZsb3ctc3RkZXJyLnR4dFVU
BQADwXTjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANZgm0z5isKkLQEAAGopAAAuABgAAAAA
AAEAAACkgX/bBgBhbmltYXRpb25zL2FuaW1hdGlvbi1jc3MtcnVsZS10eXBlcy1zdGRlcnIudHh0
VVQFAAPEdONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2GCbTNxzvrYIAQAAaBIAAEQAGAAA
AAAAAQAAAKSBFN0GAGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWZpbGwt
bW9kZS1oYXJkd2FyZS1zdGRlcnIudHh0VVQFAAPIdONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgA2WCbTASIfPQQAQAAAhcAADsAGAAAAAAAAQAAAKSBmt4GAGFuaW1hdGlvbnMvYW5pbWF0aW9u
LWRpcmVjdGlvbi1yZXZlcnNlLWZpbGwtbW9kZS1zdGRlcnIudHh0VVQFAAPKdONadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgA2mCbTOykTP4YAQAAnBsAAEIAGAAAAAAAAQAAAKSBH+AGAGFuaW1h
dGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWhhcmR3YXJlLW9wYWNpdHktc3RkZXJy
LnR4dFVUBQADy3TjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANxgm0zxYeotJgEAANAkAAAx
ABgAAAAAAAEAAACkgbPhBgBhbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1z
dGRlcnIudHh0VVQFAAPPdONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA3GCbTKTCnqAOAQAA
AhcAACkAGAAAAAAAAQAAAKSBROMGAGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1zdGRl
cnIudHh0VVQFAAPQdONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA3WCbTG7XS+4FAQAAaBIA
ADoAGAAAAAAAAQAAAKSBteQGAGFuaW1hdGlvbnMvYW5pbWF0aW9uLWVuZC1ldmVudC1kZXN0cm95
LXJlbmRlcmVyLXN0ZGVyci50eHRVVAUAA9F041p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADg
YJtMjRY1mfoAAABoEgAANgAYAAAAAAABAAAApIEu5gYAYW5pbWF0aW9ucy9hbmltYXRpb24tZm9s
bG93ZWQtYnktdHJhbnNpdGlvbi1zdGRlcnIudHh0VVQFAAPTdONadXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgA4WCbTD5pbMD6AAAAaBIAACgAGAAAAAAAAQAAAKSBmOcGAGFuaW1hdGlvbnMvYW5p
bWF0aW9uLWhpdC10ZXN0LXN0ZGVyci50eHRVVAUAA9V041p1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADgYJtMX0o0vvAAAADODQAAMgAYAAAAAAABAAAApIH06AYAYW5pbWF0aW9ucy9hbmltYXRp
b24taGl0LXRlc3QtdHJhbnNmb3JtLXN0ZGVyci50eHRVVAUAA9R041p1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADhYJtM45QogvAAAADODQAAMwAYAAAAAAABAAAApIFQ6gYAYW5pbWF0aW9ucy9h
bmltYXRpb24taW5pdGlhbC1pbmhlcml0YW5jZS1zdGRlcnIudHh0VVQFAAPVdONadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgA4mCbTASNWkP8AAAAzg0AADUAGAAAAAAAAQAAAKSBresGAGFuaW1h
dGlvbnMvYW5pbWF0aW9uLW9mZnNjcmVlbi10by1vbnNjcmVlbi1zdGRlcnIudHh0VVQFAAPXdONa
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4mCbTC6H9E3wAAAAzg0AAC8AGAAAAAAAAQAAAKSB
GO0GAGFuaW1hdGlvbnMvYW5pbWF0aW9uLW9uLWlubGluZS1jcmFzaC1zdGRlcnIudHh0VVQFAAPY
dONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA5GCbTE0ymZD8AAAAzg0AADoAGAAAAAAAAQAA
AKSBce4GAGFuaW1hdGlvbnMvY2hhbmdlLWNvbXBsZXRlZC1hbmltYXRpb24tdHJhbnNmb3JtLXN0
ZGVyci50eHRVVAUAA9t041p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADlYJtMf90UBf0AAADO
DQAAJgAYAAAAAAABAAAApIHh7wYAYW5pbWF0aW9ucy9jaGFuZ2Uta2V5ZnJhbWVzLXN0ZGVyci50
eHRVVAUAA95041p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADmYJtMKi/zevAAAADODQAAJQAY
AAAAAAABAAAApIE+8QYAYW5pbWF0aW9ucy9jaGFuZ2Utb25lLWFuaW0tc3RkZXJyLnR4dFVUBQAD
4HTjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOZgm0znPC+18QAAAM4NAAAyABgAAAAAAAEA
AACkgY3yBgBhbmltYXRpb25zL2NvbWJvLXRyYW5zZm9ybS1yb3RhdGUrc2NhbGUtc3RkZXJyLnR4
dFVUBQAD4HTjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOdgm0whtnk/8QAAAM4NAAAkABgA
AAAAAAEAAACkgerzBgBhbmltYXRpb25zL2NvbXB1dGVkLXN0eWxlLXN0ZGVyci50eHRVVAUAA+F0
41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADnYJtMsq+/ZugAAAA0CQAAMQAYAAAAAAABAAAA
pIE59QYAYW5pbWF0aW9ucy9jcmFzaC1vbi1yZW1vdmluZy1hbmltYXRpb24tc3RkZXJyLnR4dFVU
BQAD4XTjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOdgm0x4rM2BBwEAAGgSAAA0ABgAAAAA
AAEAAACkgYz2BgBhbmltYXRpb25zL2Nyb3NzLWZhZGUtYm9yZGVyLWltYWdlLXNvdXJjZS1zdGRl
cnIudHh0VVQFAAPidONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA6GCbTI7KYeD6AAAAaBIA
AC8AGAAAAAAAAQAAAKSBAfgGAGFuaW1hdGlvbnMvZHVwbGljYXRlZC1rZXlmcmFtZXMtbmFtZS1z
dGRlcnIudHh0VVQFAAPjdONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA8GCbTPLHvxXxAAAA
zg0AACUAGAAAAAAAAQAAAKSBZPkGAGFuaW1hdGlvbnMvZ2VuZXJpYy1mcm9tLXRvLXN0ZGVyci50
eHRVVAUAA/N041p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADwYJtMh0DHQ/wAAADODQAAIgAY
AAAAAAABAAAApIG0+gYAYW5pbWF0aW9ucy9pbXBvcnQtY3Jhc2gtc3RkZXJyLnR4dFVUBQAD9HTj
WnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPFgm0wV3s3U+wAAAM4NAAAcABgAAAAAAAEAAACk
gQz8BgBhbmltYXRpb25zL2ltcG9ydC1zdGRlcnIudHh0VVQFAAP1dONadXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgA8WCbTDlaavL8AAAAzg0AAC4AGAAAAAAAAQAAAKSBXf0GAGFuaW1hdGlvbnMv
a2V5ZnJhbWUtYXV0b2Nsb3NlLWJyYWNlLXN0ZGVyci50eHRVVAUAA/Z041p1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACADyYJtM72wg2/EAAADODQAAQgAYAAAAAAABAAAApIHB/gYAYW5pbWF0aW9u
cy9rZXlmcmFtZS1tdWx0aXBsZS10aW1pbmctZnVuY3Rpb25zLXRyYW5zZm9ybS1zdGRlcnIudHh0
VVQFAAP3dONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA8mCbTCnmdlHxAAAAzg0AADsAGAAA
AAAAAQAAAKSBLgAHAGFuaW1hdGlvbnMva2V5ZnJhbWUtc2VsZWN0b3ItbmVnYXRpdmUtcGVyY2Vu
dGFnZS1zdGRlcnIudHh0VVQFAAP3dONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA8mCbTFxh
Dgf8AAAAzg0AADAAGAAAAAAAAQAAAKSBlAEHAGFuaW1hdGlvbnMva2V5ZnJhbWUtdGltaW5nLWZ1
bmN0aW9uczItc3RkZXJyLnR4dFVUBQAD+HTjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPNg
m0zO/wSQ+wAAAM4NAAAnABgAAAAAAAEAAACkgfoCBwBhbmltYXRpb25zL2tleWZyYW1lcy1keW5h
bWljLXN0ZGVyci50eHRVVAUAA/l041p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADzYJtMBGlB
SvwAAADODQAAMwAYAAAAAAABAAAApIFWBAcAYW5pbWF0aW9ucy9rZXlmcmFtZXMtaW5maW5pdGUt
aXRlcmF0aW9ucy1zdGRlcnIudHh0VVQFAAP6dONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
9GCbTG6Og5L8AAAAzg0AADsAGAAAAAAAAQAAAKSBvwUHAGFuaW1hdGlvbnMva2V5ZnJhbWVzLWl0
ZXJhdGlvbi1jb3VudC1ub24taW50ZWdlci1zdGRlcnIudHh0VVQFAAP7dONadXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgA9GCbTOi6fyr5AAAAaBIAACwAGAAAAAAAAQAAAKSBMAcHAGFuaW1hdGlv
bnMva2V5ZnJhbWVzLW91dC1vZi1vcmRlci1zdGRlcnIudHh0VVQFAAP8dONadXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgA9WCbTLRcw538AAAAzg0AACQAGAAAAAAAAQAAAKSBjwgHAGFuaW1hdGlv
bnMva2V5ZnJhbWVzLXJ1bGUtc3RkZXJyLnR4dFVUBQAD/XTjWnV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAPVgm0zr0RXF/AAAAM4NAAAfABgAAAAAAAEAAACkgekJBwBhbmltYXRpb25zL2tleWZy
YW1lcy1zdGRlcnIudHh0VVQFAAP+dONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA9mCbTHlP
H1L8AAAAzg0AACoAGAAAAAAAAQAAAKSBPgsHAGFuaW1hdGlvbnMvbGFyZ2UtbmVnYXRpdmUtZGVs
YXktc3RkZXJyLnR4dFVUBQAD/3TjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPZgm0xVy7h0
/AAAAM4NAAAqABgAAAAAAAEAAACkgZ4MBwBhbmltYXRpb25zL2xpbmVoZWlnaHQtYW5pbWF0aW9u
LXN0ZGVyci50eHRVVAUAAwB141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD3YJtMb30K2fwA
AADODQAAJQAYAAAAAAABAAAApIH+DQcAYW5pbWF0aW9ucy9taXNzaW5nLWZyb20tdG8tc3RkZXJy
LnR4dFVUBQADAXXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPdgm0xFd6TX8QAAAM4NAAA7
ABgAAAAAAAEAAACkgVkPBwBhbmltYXRpb25zL21pc3Npbmcta2V5ZnJhbWUtcHJvcGVydGllcy1y
ZXBlYXRpbmctc3RkZXJyLnR4dFVUBQADAnXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPhg
m0xO7i6S8QAAAM4NAAAiABgAAAAAAAEAAACkgb8QBwBhbmltYXRpb25zL25lZWRzLWxheW91dC1z
dGRlcnIudHh0VVQFAAMDdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+GCbTIhkeBjwAAAA
zg0AACQAGAAAAAAAAQAAAKSBDBIHAGFuaW1hdGlvbnMvbmVnYXRpdmUtZGVsYXktc3RkZXJyLnR4
dFVUBQADA3XjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPhgm0zun6mQ8QAAAM4NAAAxABgA
AAAAAAEAAACkgVoTBwBhbmltYXRpb25zL29wYWNpdHktdHJhbnNmb3JtLWFuaW1hdGlvbi1zdGRl
cnIudHh0VVQFAAMEdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+WCbTAIfURT8AAAAzg0A
ACEAGAAAAAAAAQAAAKSBthQHAGFuaW1hdGlvbnMvcGF1c2UtY3Jhc2gtc3RkZXJyLnR4dFVUBQAD
BXXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPtgm0zx0d3LAQEAAM4NAAAtABgAAAAAAAEA
AACkgQ0WBwBhbmltYXRpb25zL3BsYXktc3RhdGUtaW4tc2hvcnRoYW5kLXN0ZGVyci50eHRVVAUA
Awl141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD8YJtMP8FR8/wAAADODQAALQAYAAAAAAAB
AAAApIF1FwcAYW5pbWF0aW9ucy9wbGF5LXN0YXRlLXN0YXJ0LXBhdXNlZC1zdGRlcnIudHh0VVQF
AAMMdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA/WCbTPAGrFMIAQAAaBIAAC0AGAAAAAAA
AQAAAKSB2BgHAGFuaW1hdGlvbnMvc2ltdWx0YW5lb3VzLXN0YXJ0LWxlZnQtc3RkZXJyLnR4dFVU
BQADDnXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAABhm0wNLtxm/AAAAM4NAAArABgAAAAA
AAEAAACkgUcaBwBhbmltYXRpb25zL3NwcmluZy1jb21wdXRlZC1zdHlsZS1zdGRlcnIudHh0VVQF
AAMPdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAAGGbTCckcmjxAAAAzg0AACUAGAAAAAAA
AQAAAKSBqBsHAGFuaW1hdGlvbnMvc3ByaW5nLWZ1bmN0aW9uLXN0ZGVyci50eHRVVAUAAxB141p1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAAYZtMWHSnFPoAAABoEgAAJAAYAAAAAAABAAAApIH4
HAcAYW5pbWF0aW9ucy9zcHJpbmctcGFyc2luZy1zdGRlcnIudHh0VVQFAAMQdeNadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAAWGbTLlPAiX6AAAAaBIAAD4AGAAAAAAAAQAAAKSBUB4HAGFuaW1h
dGlvbnMvc3RhY2tpbmctY29udGV4dC11bmNoYW5nZWQtd2hpbGUtcnVubmluZy1zdGRlcnIudHh0
VVQFAAMSdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAAmGbTMvGOoIHAQAAaBIAACYAGAAA
AAAAAQAAAKSBwh8HAGFuaW1hdGlvbnMvdGltaW5nLWZ1bmN0aW9ucy1zdGRlcnIudHh0VVQFAAMU
deNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAA2GbTB1BrcnwAAAAzg0AACwAGAAAAAAAAQAA
AKSBKSEHAGFuaW1hdGlvbnMvdHJpZ2dlci1jb21wdXRlZC1zdHlsZS1zdGRlcnIudHh0VVQFAAMW
deNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgABGGbTNvL+0PwAAAAzg0AACYAGAAAAAAAAQAA
AKSBfyIHAGFuaW1hdGlvbnMvdW5hbmltYXRlZC1zdHlsZS1zdGRlcnIudHh0VVQFAAMXdeNadXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgABGGbTDtXEJf9AAAAzg0AADsAGAAAAAAAAQAAAKSBzyMH
AGFuaW1hdGlvbnMvdW5wcmVmaXhlZC1ldmVudHMtbWl4ZWQtd2l0aC1wcmVmaXhlZC1zdGRlcnIu
dHh0VVQFAAMYdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgABWGbTHu6fEHxAAAAzg0AACoA
GAAAAAAAAQAAAKSBQSUHAGFuaW1hdGlvbnMvdW5wcmVmaXhlZC1rZXlmcmFtZXMtc3RkZXJyLnR4
dFVUBQADGXXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAVhm0wpUniiCwEAAGgSAAArABgA
AAAAAAEAAACkgZYmBwBhbmltYXRpb25zL3VucHJlZml4ZWQtcHJvcGVydGllcy1zdGRlcnIudHh0
VVQFAAMadeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgABmGbTD56FBAPAQAAAhcAACUAGAAA
AAAAAQAAAKSBBigHAGFuaW1hdGlvbnMvd2lkdGgtdXNpbmctZW1zLXN0ZGVyci50eHRVVAUAAxt1
41p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADRWJtMAAAAAAAAAAAAAAAAFAAYAAAAAAAAABAA
7UF0KQcAYXBwbGljYXRpb25tYW5pZmVzdC9VVAUAA6pm41p1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADSYJtMyKaJ4AoBAACcGwAAMQAYAAAAAAABAAAApIHCKQcAYXBwbGljYXRpb25tYW5pZmVz
dC9kZXZlbG9wZXItd2FybmluZ3Mtc3RkZXJyLnR4dFVUBQADvHTjWnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIANNgm0ygZ4CNLwEAAGopAAA0ABgAAAAAAAEAAACkgTcrBwBhcHBsaWNhdGlvbm1h
bmlmZXN0L2Rpc3BsYXktbW9kZS1zdWJmcmFtZS1zdGRlcnIudHh0VVQFAAO+dONadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgA1GCbTNjyzJ0CAQAAAhcAAC0AGAAAAAAAAQAAAKSB1CwHAGFwcGxp
Y2F0aW9ubWFuaWZlc3QvbXVsdGlwbGUtbGlua3Mtc3RkZXJyLnR4dFVUBQADv3TjWnV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAAM9Ym0wAAAAAAAAAAAAAAAAHABgAAAAAAAAAEADtQT0uBwBjYW52
YXMvVVQFAAOmZuNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAz1ibTAAAAAAAAAAAAAAAAA4A
GAAAAAAAAAAQAO1Bfi4HAGNhbnZhcy9waGlsaXAvVVQFAAOmZuNadXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAAz1ibTAAAAAAAAAAAAAAAABQAGAAAAAAAAAAQAO1Bxi4HAGNhbnZhcy9waGlsaXAv
dGVzdHMvVVQFAAOmZuNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA0mCbTCq2DjsvAQAAaikA
ADEAGAAAAAAAAQAAAKSBFC8HAGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuY2FudmFzLnJlYWRvbmx5
LXN0ZGVyci50eHRVVAUAA7x041p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABbXJtMPoS/tCFI
AAAGEQEAOAAYAAAAAAABAAAApIGuMAcAY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LkRldmVs
b3BtZW50LTMzMDg0LXNhbXBsZS50eHRVVAUAA01t41p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AADWYJtMAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UFBeQcAY29tcG9zaXRpbmcvVVQFAAPDdONa
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA0mCbTDvYpX0nAQAA0CQAADgAGAAAAAAAAQAAAKSB
h3kHAGNvbXBvc2l0aW5nL2Fic29sdXRlLWluc2lkZS1vdXQtb2Ytdmlldy1maXhlZC1zdGRlcnIu
dHh0VVQFAAO8dONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA02CbTOBOzH1ZAQAA0jsAADQA
GAAAAAAAAQAAAKSBIHsHAGNvbXBvc2l0aW5nL2FjY2VsZXJhdGVkLWxheWVycy1hZnRlci1iYWNr
LXN0ZGVyci50eHRVVAUAA75041p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADUYJtM2hF0LFAB
AACeMgAASQAYAAAAAAABAAAApIHnfAcAY29tcG9zaXRpbmcvYW5jZXN0b3ItY29tcG9zaXRpbmct
bGF5ZXItaXMtb24tc3VicGl4ZWwtcG9zaXRpb24tc3RkZXJyLnR4dFVUBQADwHTjWnV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAANNYm0wAAAAAAAAAAAAAAAAWABgAAAAAAAAAEADtQbp+BwBjb21w
b3NpdGluZy9hbmltYXRpb24vVVQFAAOuZuNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA0mCb
TPwqEiwhAQAANiAAAEIAGAAAAAAAAQAAAKSBCn8HAGNvbXBvc2l0aW5nL2FuaW1hdGlvbi9hbmlt
YXRlZC1jb21wb3NpdGVkLWluc2lkZS1oaWRkZW4tc3RkZXJyLnR4dFVUBQADvHTjWnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIANNgm0wRook2WQEAANI7AAAyABgAAAAAAAEAAACkgaeABwBjb21w
b3NpdGluZy9hbmltYXRpb24vYW5pbWF0aW9uLWJhY2tpbmctc3RkZXJyLnR4dFVUBQADvnTjWnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANVgm0zK6a0oRQEAAJ4yAAA8ABgAAAAAAAEAAACkgWyC
BwBjb21wb3NpdGluZy9hbmltYXRpb24vY29tcHV0ZWQtc3R5bGUtZHVyaW5nLWRlbGF5LXN0ZGVy
ci50eHRVVAUAA8F041p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADVYJtMumlZCjUBAAAELgAA
LwAYAAAAAAABAAAApIEnhAcAY29tcG9zaXRpbmcvYW5pbWF0aW9uL2tleWZyYW1lLW9yZGVyLXN0
ZGVyci50eHRVVAUAA8J041p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADWYJtMUNI2+B8BAAA2
IAAAPAAYAAAAAAABAAAApIHFhQcAY29tcG9zaXRpbmcvYW5pbWF0aW9uL2xheWVyLWZvci1maWxs
aW5nLWFuaW1hdGlvbi1zdGRlcnIudHh0VVQFAAPDdONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgA1mCbTJAubLY2AQAABC4AADEAGAAAAAAAAQAAAKSBWocHAGNvbXBvc2l0aW5nL2FuaW1hdGlv
bi9tYXRyaXgtYW5pbWF0aW9uLXN0ZGVyci50eHRVVAUAA8R041p1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAADQWJtMAAAAAAAAAAAAAAAAIAAYAAAAAAAAABAA7UH7iAcAY29tcG9zaXRpbmcvYmFj
a2ZhY2UtdmlzaWJpbGl0eS9VVAUAA6dm41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADVW5tM
ROmAgyYBAADQJAAAQQAYAAAAAAABAAAApIFViQcAY29tcG9zaXRpbmcvYmFja2ZhY2UtdmlzaWJp
bGl0eS9iYWNrZmFjZS12aXNpYmlsaXR5LTNkLXN0ZGVyci50eHRVVAUAA1Js41p1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAAAAADQWJtMAAAAAAAAAAAAAAAAHQAYAAAAAAAAABAA7UH2igcAY29tcG9z
aXRpbmcvYmFja2dyb3VuZC1jb2xvci9VVAUAA6dm41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CADTYJtM5uzgYh8BAAA2IAAASwAYAAAAAAABAAAApIFNiwcAY29tcG9zaXRpbmcvYmFja2dyb3Vu
ZC1jb2xvci9iYWNrZ3JvdW5kLWNvbG9yLWFscGhhLXdpdGgtb3BhY2l0eS1zdGRlcnIudHh0VVQF
AAO9dONadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA0FibTAAAAAAAAAAAAAAAABgAGAAAAAAA
AAAQAO1B8YwHAGNvbXBvc2l0aW5nL2JhY2tncm91bmRzL1VUBQADp2bjWnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIANNgm0yZpXGkRAEAAAQuAABBABgAAAAAAAEAAACkgUONBwBjb21wb3NpdGlu
Zy9iYWNrZ3JvdW5kcy9maXhlZC1iYWNrZ3JvdW5kLW9uLWRlc2NlbmRhbnQtc3RkZXJyLnR4dFVU
BQADvnTjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAANFYm0wAAAAAAAAAAAAAAAAUABgAAAAA
AAAAEADtQQKPBwBjb21wb3NpdGluZy9iYWNraW5nL1VUBQADqWbjWnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIANNgm0yJ88mEJwEAANAkAAA3ABgAAAAAAAEAAACkgVCPBwBjb21wb3NpdGluZy9i
YWNraW5nL2JhY2tmYWNlLXZpc2liaWxpdHktZmxpcC1zdGRlcnIudHh0VVQFAAO9dONadXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgA02CbTJdbFz5NAQAA0jsAAEMAGAAAAAAAAQAAAKSB6JAHAGNv
bXBvc2l0aW5nL2JhY2tpbmcvYmFja2ZhY2UtdmlzaWJpbGl0eS1pbi0zZHRyYW5zZm9ybWVkLXN0
ZGVyci50eHRVVAUAA75041p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADQWJtMAAAAAAAAAAAA
AAAAEwAYAAAAAAAAABAA7UGykgcAY29tcG9zaXRpbmcvY2FudmFzL1VUBQADqGbjWnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIANZbm0yp4CZUSAEAAJ4yAABHABgAAAAAAAEAAACkgf+SBwBjb21w
b3NpdGluZy9jYW52YXMvYWNjZWxlcmF0ZWQtY2FudmFzLWNvbXBvc2l0aW5nLXNpemUtbGltaXQt
c3RkZXJyLnR4dFVUBQADU2zjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAANBYm0wAAAAAAAAA
AAAAAAAVABgAAAAAAAAAEADtQciUBwBjb21wb3NpdGluZy9jbGlwcGluZy9VVAUAA6hm41p1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACADTYJtM888anS8BAABqKQAATgAYAAAAAAABAAAApIEXlQcA
Y29tcG9zaXRpbmcvY2xpcHBpbmcvYm9yZGVyLXJhZGl1cy1vdmVyZmxvdy1oaWRkZW4tc3RhY2tp
bmctY29udGV4dC1zdGRlcnIudHh0VVQFAAO+dONadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
02CbTAAAAAAAAAAAAAAAABsAGAAAAAAAAAAQAO1BzpYHAGNvbXBvc2l0aW5nL2NvbG9yLW1hdGNo
aW5nL1VUBQADvnTjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANNgm0xGSA7JaQEAAAZFAAA6
ABgAAAAAAAEAAACkgSOXBwBjb21wb3NpdGluZy9jb2xvci1tYXRjaGluZy9pbWFnZS1jb2xvci1t
YXRjaGluZy1zdGRlcnIudHh0VVQFAAO+dONadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA1lub
TAAAAAAAAAAAAAAAABwAGAAAAAAAAAAQAO1BAJkHAGNvbXBvc2l0aW5nL2NvbnRlbnRzLWZvcm1h
dC9VVAUAA1Ns41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADWW5tMJkEiDVIBAABsQAAASAAY
AAAAAAABAAAApIFWmQcAY29tcG9zaXRpbmcvY29udGVudHMtZm9ybWF0L3N1YnBpeGVsLWFudGlh
bGlhc2VkLW5lc3RlZC1sYXllci1zdGRlcnIudHh0VVQFAANTbONadXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAA0VibTAAAAAAAAAAAAAAAABsAGAAAAAAAAAAQAO1BKpsHAGNvbXBvc2l0aW5nL2Nv
bnRlbnRzLXNjYWxlL1VUBQADqWbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANNgm0zvse08
WQEAANI7AAAvABgAAAAAAAEAAACkgX+bBwBjb21wb3NpdGluZy9jb250ZW50cy1zY2FsZS9hbmlt
YXRpbmctc3RkZXJyLnR4dFVUBQADvnTjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANVgm0zL
wuTgVwEAADg3AABaABgAAAAAAAEAAACkgUGdBwBjb21wb3NpdGluZy9jb250ZW50cy1zY2FsZS9o
aWRwaS1jb21wb3NpdGluZy1sYXllci1wb3NpdGlvbmVkLW9uLXNjYWxlZC1jb250ZXh0LXN0ZGVy
ci50eHRVVAUAA8F041p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADSWJtMAAAAAAAAAAAAAAAA
FQAYAAAAAAAAABAA7UEsnwcAY29tcG9zaXRpbmcvZ2VvbWV0cnkvVVQFAAOsZuNadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgA02CbTA/jwrfJAAAATQEAADMAGAAAAAAAAQAAAKSBe58HAGNvbXBv
c2l0aW5nL2dlb21ldHJ5L2ZpeGVkLWluLWNvbXBvc2l0ZWQtc3RkZXJyLnR4dFVUBQADvnTjWnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANRgm0xY4Zk+LwEAADYgAABDABgAAAAAAAEAAACkgbGg
BwBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1mbGlwcGVkLXdyaXRpbmctbW9k
ZS1zdGRlcnIudHh0VVQFAAPAdONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA1WCbTHq+s/I1
AQAABC4AAFAAGAAAAAAAAQAAAKSBXaIHAGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0
aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi1zdGRlcnIudHh0VVQFAAPBdONa
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA0VibTAAAAAAAAAAAAAAAABQAGAAAAAAAAAAQAO1B
HKQHAGNvbXBvc2l0aW5nL2lmcmFtZXMvVVQFAAOpZuNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgA02CbTGaaLIrJAAAATQEAAFUAGAAAAAAAAQAAAKSBaqQHAGNvbXBvc2l0aW5nL2lmcmFtZXMv
aWZyYW1lLXBvc2l0aW9uLWFic29sdXRlLXdpdGgtcGFkZGluZy1wZXJjZW50YWdlLWNyYXNoLXN0
ZGVyci50eHRVVAUAA75041p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADgWJtMAAAAAAAAAAAA
AAAAGwAYAAAAAAAAABAA7UHCpQcAY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vVVQFAAPEZuNa
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA02CbTLJuCLFZAQAA0jsAAEUAGAAAAAAAAQAAAKSB
F6YHAGNvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL2FuaW1hdGlvbi1vdmVybGFwLXdpdGgtY2hp
bGRyZW4tc3RkZXJyLnR4dFVUBQADvnTjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANRgm0yH
H5RBUAEAAJ4yAABPABgAAAAAAAEAAACkge+nBwBjb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9h
c3NlcnQtb24taW5saW5lLWVsZW1lbnQtd2l0aC13aWxsLWNoYW5nZS1zdGRlcnIudHh0VVQFAAPA
dONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA1mCbTCDrNNwSAQAANiAAAFQAGAAAAAAAAQAA
AKSByKkHAGNvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL21pc21hdGNoZWQtcm90YXRlZC10cmFu
c2Zvcm0tYW5pbWF0aW9uLW92ZXJsYXAtc3RkZXJyLnR4dFVUBQADxHTjWnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIANdgm0w+TitoDgEAAAIXAABVABgAAAAAAAEAAACkgWirBwBjb21wb3NpdGlu
Zy9sYXllci1jcmVhdGlvbi9taXNtYXRjaGVkLXJvdGF0ZWQtdHJhbnNmb3JtLXRyYW5zaXRpb24t
b3ZlcmxhcC1zdGRlcnIudHh0VVQFAAPGdONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2GCb
TEzFPrEOAQAAAhcAAEoAGAAAAAAAAQAAAKSBBa0HAGNvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9u
L211bHRpcGxlLWtleWZyYW1lcy1hbmltYXRpb24tb3ZlcmxhcC1zdGRlcnIudHh0VVQFAAPIdONa
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2WCbTFxmkzAPAQAAAhcAAFcAGAAAAAAAAQAAAKSB
l64HAGNvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL25vLWNvbXBvc2l0aW5nLWZvci1maXhlZC1w
b3NpdGlvbi11bmRlci10cmFuc2Zvcm0tc3RkZXJyLnR4dFVUBQADyXTjWnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIANlgm0wtNmzwHQEAAJwbAAA/ABgAAAAAAAEAAACkgTewBwBjb21wb3NpdGlu
Zy9sYXllci1jcmVhdGlvbi9uby1jb21wb3NpdGluZy1mb3Itc3RpY2t5LXN0ZGVyci50eHRVVAUA
A8p041p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADaYJtME0dqWBgBAACcGwAAPQAYAAAAAAAB
AAAApIHNsQcAY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vb3ZlcmZsb3ctc2Nyb2xsLW92ZXJs
YXAtc3RkZXJyLnR4dFVUBQADy3TjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANtgm0xVuHRl
JgEAANAkAABAABgAAAAAAAEAAACkgVyzBwBjb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9vdmVy
bGFwLWFuaW1hdGlvbi1jbGlwcGluZy1zdGRlcnIudHh0VVQFAAPNdONadXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgA22CbTHsbaYwCAQAAAhcAADkAGAAAAAAAAQAAAKSB/LQHAGNvbXBvc2l0aW5n
L2xheWVyLWNyZWF0aW9uL292ZXJsYXAtY2hpbGQtbGF5ZXItc3RkZXJyLnR4dFVUBQADznTjWnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOBgm0ya9Rgv+QAAAGgSAABGABgAAAAAAAEAAACkgXG2
BwBjb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9zY2FsZS1yb3RhdGlvbi1hbmltYXRpb24tb3Zl
cmxhcC1zdGRlcnIudHh0VVQFAAPTdONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4WCbTDDv
hbcUAQAAAhcAAEcAGAAAAAAAAQAAAKSB6rcHAGNvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL3Nj
YWxlLXJvdGF0aW9uLXRyYW5zaXRpb24tb3ZlcmxhcC1zdGRlcnIudHh0VVQFAAPVdONadXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgA4mCbTFfAxmnvAAAAzg0AAEEAGAAAAAAAAQAAAKSBf7kHAGNv
bXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL3RyYW5zbGF0ZS1hbmltYXRpb24tb3ZlcmxhcC1zdGRl
cnIudHh0VVQFAAPXdONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4mCbTMF+a5wFAQAAaBIA
AEgAGAAAAAAAAQAAAKSB6boHAGNvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL3RyYW5zbGF0ZS1z
Y2FsZS10cmFuc2l0aW9uLW92ZXJsYXAtc3RkZXJyLnR4dFVUBQAD2HTjWnV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAANpYm0wAAAAAAAAAAAAAAAAVABgAAAAAAAAAEADtQXC8BwBjb21wb3NpdGlu
Zy9vdmVyZmxvdy9VVAUAA7xm41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADUYJtMXagUpBcB
AACcGwAASwAYAAAAAAABAAAApIG/vAcAY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxs
eS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1zdGRlcnIudHh0VVQFAAPAdONadXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgA1WCbTFawZi41AQAABC4AAEQAGAAAAAAAAQAAAKSBW74HAGNv
bXBvc2l0aW5nL292ZXJmbG93L2NsaXAtY29udGVudC11bmRlci1vdmVyZmxvdy1jb250cm9scy1z
dGRlcnIudHh0VVQFAAPBdONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA1mCbTLxSKI4mAQAA
BC4AAFUAGAAAAAAAAQAAAKSBDsAHAGNvbXBvc2l0aW5nL292ZXJmbG93L2NsaXBwaW5nLWFuY2Vz
dG9yLXdpdGgtYWNjZWxlcmF0ZWQtc2Nyb2xsaW5nLWFuY2VzdG9yLXN0ZGVyci50eHRVVAUAA8N0
41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADWYJtMx/5fHS4BAABqKQAAWwAYAAAAAAABAAAA
pIHDwQcAY29tcG9zaXRpbmcvb3ZlcmZsb3cvY2xpcHBpbmctYmVoYXZpb3VyLWNoYW5nZS1pcy1u
b3QtcHJvcGFnYXRlZC10by1kZXNjZW5kYW50czItc3RkZXJyLnR4dFVUBQADxHTjWnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIANdgm0zTqTpNDwEAAAIXAABRABgAAAAAAAEAAACkgYbDBwBjb21w
b3NpdGluZy9vdmVyZmxvdy9jb21wb3NpdGVkLXNjcm9sbGluZy1jcmVhdGVzLWEtc3RhY2tpbmct
Y29udGFpbmVyLXN0ZGVyci50eHRVVAUAA8V041p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADX
YJtM3scyGwcBAABoEgAAOAAYAAAAAAABAAAApIEgxQcAY29tcG9zaXRpbmcvb3ZlcmZsb3cvY29u
dGVudC1nYWlucy1zY3JvbGxiYXJzLXN0ZGVyci50eHRVVAUAA8Z041p1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADYYJtMa63cmwcBAABoEgAAVwAYAAAAAAABAAAApIGZxgcAY29tcG9zaXRpbmcv
b3ZlcmZsb3cvZG8tbm90LXBhaW50LW91dGxpbmUtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1j
b250ZW50cy1zdGRlcnIudHh0VVQFAAPHdONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2GCb
TKtt7fkIAQAAaBIAADwAGAAAAAAAAQAAAKSBMcgHAGNvbXBvc2l0aW5nL292ZXJmbG93L2ZpeGVk
LXBvc2l0aW9uLWFuY2VzdG9yLWNsaXAtc3RkZXJyLnR4dFVUBQADyHTjWnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIANlgm0xk7FpoCAEAAGgSAAA/ABgAAAAAAAEAAACkga/JBwBjb21wb3NpdGlu
Zy9vdmVyZmxvdy9pZnJhbWUtaW5zaWRlLW92ZXJmbG93LWNsaXBwaW5nLXN0ZGVyci50eHRVVAUA
A8l041p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADZYJtM1Nl+RgwBAABoEgAAPgAYAAAAAAAB
AAAApIEwywcAY29tcG9zaXRpbmcvb3ZlcmZsb3cvaW1hZ2UtbG9hZC1vdmVyZmxvdy1zY3JvbGxi
YXJzLXN0ZGVyci50eHRVVAUAA8p041p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADaYJtMmzix
lg4BAAACFwAAMAAYAAAAAAABAAAApIG0zAcAY29tcG9zaXRpbmcvb3ZlcmZsb3cvbmVzdGVkLXNj
cm9sbGluZy1zdGRlcnIudHh0VVQFAAPLdONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2mCb
TDnCbMsOAQAAAhcAAEQAGAAAAAAAAQAAAKSBLM4HAGNvbXBvc2l0aW5nL292ZXJmbG93L292ZXJm
bG93LWF1dG8td2l0aC10b3VjaC1uby1vdmVyZmxvdy1zdGRlcnIudHh0VVQFAAPMdONadXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgA22CbTJCd0dL5AAAAaBIAAFEAGAAAAAAAAQAAAKSBuM8HAGNv
bXBvc2l0aW5nL292ZXJmbG93L292ZXJmbG93LWNsaXAtd2l0aC1hY2NlbGVyYXRlZC1zY3JvbGxp
bmctYW5jZXN0b3Itc3RkZXJyLnR4dFVUBQADzXTjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ANxgm0yWE9j6BQEAAGgSAAA/ABgAAAAAAAEAAACkgTzRBwBjb21wb3NpdGluZy9vdmVyZmxvdy9v
dmVyZmxvdy1jb21wb3NpdGluZy1kZXNjZW5kYW50LXN0ZGVyci50eHRVVAUAA89041p1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACADcYJtM1gUPd/oAAABoEgAANAAYAAAAAAABAAAApIG60gcAY29t
cG9zaXRpbmcvb3ZlcmZsb3cvb3ZlcmZsb3ctcG9zaXRpb25pbmctc3RkZXJyLnR4dFVUBQAD0HTj
WnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANxgm0yKKaisAgEAAAIXAABGABgAAAAAAAEAAACk
gSLUBwBjb21wb3NpdGluZy9vdmVyZmxvdy9vdmVyZmxvdy1zY2FsZWQtZGVzY2VuZGFudC1vdmVy
bGFwcGluZy1zdGRlcnIudHh0VVQFAAPQdONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA3WCb
TDPsIsACAQAAAhcAAFsAGAAAAAAAAQAAAKSBpNUHAGNvbXBvc2l0aW5nL292ZXJmbG93L3BhaW50
LW5lZy16LW9yZGVyLWRlc2NlbmRhbnRzLWludG8tc2Nyb2xsaW5nLWNvbnRlbnRzLWxheWVyLXN0
ZGVyci50eHRVVAUAA9J041p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADdYJtMuYMic/AAAADO
DQAALwAYAAAAAAABAAAApIE71wcAY29tcG9zaXRpbmcvb3ZlcmZsb3cvcGFyZW50LW92ZXJmbG93
LXN0ZGVyci50eHRVVAUAA9J041p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADUYJtMAAAAAAAA
AAAAAAAAFAAYAAAAAAAAABAA7UGU2AcAY29tcG9zaXRpbmcvcGx1Z2lucy9VVAUAA8B041p1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACADWW5tMZ6HHOMkAAABNAQAANAAYAAAAAAABAAAApIHi2AcA
Y29tcG9zaXRpbmcvcGx1Z2lucy8xeDEtY29tcG9zaXRlZC1wbHVnaW4tc3RkZXJyLnR4dFVUBQAD
VGzjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANRgm0xDtWFjygAAAE0BAAAwABgAAAAAAAEA
AACkgRnaBwBjb21wb3NpdGluZy9wbHVnaW5zL2NvbXBvc2l0ZWQtcGx1Z2luLXN0ZGVyci50eHRV
VAUAA8B041p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADWWJtMAAAAAAAAAAAAAAAAGAAYAAAA
AAAAABAA7UFN2wcAY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvVVQFAAOzZuNadXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgA1WCbTMTc8zVTAQAA0jsAAD4AGAAAAAAAAQAAAKSBn9sHAGNvbXBvc2l0
aW5nL3JlZmxlY3Rpb25zL2FuaW1hdGlvbi1pbnNpZGUtcmVmbGVjdGlvbi1zdGRlcnIudHh0VVQF
AAPBdONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA1WCbTMMhpp5EAQAAODcAAD0AGAAAAAAA
AQAAAKSBat0HAGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL2JhY2tmYWNlLWhpZGRlbi1yZWZsZWN0
aW9uLXN0ZGVyci50eHRVVAUAA8J041p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADWYJtMSrEO
nycBAADQJAAAPQAYAAAAAAABAAAApIEl3wcAY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvbmVzdGVk
LXJlZmxlY3Rpb24tYW5pbWF0ZWQtc3RkZXJyLnR4dFVUBQADxHTjWnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIANdgm0zStaS1DwEAAAIXAABAABgAAAAAAAEAAACkgcPgBwBjb21wb3NpdGluZy9y
ZWZsZWN0aW9ucy9uZXN0ZWQtcmVmbGVjdGlvbi1tYXNrLWNoYW5nZS1zdGRlcnIudHh0VVQFAAPF
dONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2GCbTC0n548PAQAAAhcAADQAGAAAAAAAAQAA
AKSBTOIHAGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL25lc3RlZC1yZWZsZWN0aW9uLXN0ZGVyci50
eHRVVAUAA8d041p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADXYJtM7jtI1AgBAABoEgAAPwAY
AAAAAAABAAAApIHJ4wcAY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvbmVzdGVkLXJlZmxlY3Rpb24t
dHJhbnNpdGlvbi1zdGRlcnIudHh0VVQFAAPGdONadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
1FibTAAAAAAAAAAAAAAAABAAGAAAAAAAAAAQAO1BSuUHAGNvbXBvc2l0aW5nL3J0bC9VVAUAA7Bm
41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADVYJtMWRjhbi4BAACeMgAANgAYAAAAAAABAAAA
pIGU5QcAY29tcG9zaXRpbmcvcnRsL3J0bC1maXhlZC1vdmVyZmxvdy1zY3JvbGxlZC1zdGRlcnIu
dHh0VVQFAAPBdONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA1WCbTJSgquNEAQAAODcAAC0A
GAAAAAAAAQAAAKSBMucHAGNvbXBvc2l0aW5nL3J0bC9ydGwtZml4ZWQtb3ZlcmZsb3ctc3RkZXJy
LnR4dFVUBQADwnTjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANZgm0w+YVD7GAEAAJwbAAAx
ABgAAAAAAAEAAACkgd3oBwBjb21wb3NpdGluZy9ydGwvcnRsLW92ZXJmbG93LXNjcm9sbGluZy1z
dGRlcnIudHh0VVQFAAPDdONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA1mCbTJGlvEotAQAA
aikAACcAGAAAAAAAAQAAAKSBYOoHAGNvbXBvc2l0aW5nL3J0bC9ydGwtcmVsYXRpdmUtc3RkZXJy
LnR4dFVUBQADxHTjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAANNYm0wAAAAAAAAAAAAAAAAY
ABgAAAAAAAAAEADtQe7rBwBjb21wb3NpdGluZy90cmFuc2l0aW9ucy9VVAUAA65m41p1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACADVYJtMbwJjxzsBAACeMgAAPAAYAAAAAAABAAAApIFA7AcAY29t
cG9zaXRpbmcvdHJhbnNpdGlvbnMvc2NhbGUtdHJhbnNpdGlvbi1uby1zdGFydC1zdGRlcnIudHh0
VVQFAAPCdONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA1mCbTFuClMQeAQAANiAAADsAGAAA
AAAAAQAAAKSB8e0HAGNvbXBvc2l0aW5nL3RyYW5zaXRpb25zL3RyYW5zZm9ybS1vbi1sYXJnZS1s
YXllci1zdGRlcnIudHh0VVQFAAPDdONadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA1FibTAAA
AAAAAAAAAAAAABkAGAAAAAAAAAAQAO1BhO8HAGNvbXBvc2l0aW5nL3Zpc2libGUtcmVjdC9VVAUA
A69m41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADSWJtMpHiSDh4BAAA2IAAAMgAYAAAAAAAB
AAAApIHX7wcAY29tcG9zaXRpbmcvdmlzaWJsZS1yZWN0LzJkLXRyYW5zZm9ybWVkLXN0ZGVyci50
eHRVVAUAA6xm41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADWYJtM9k+P6RcBAACcGwAALAAY
AAAAAAABAAAApIFh8QcAY29tcG9zaXRpbmcvdmlzaWJsZS1yZWN0L2FuaW1hdGVkLXN0ZGVyci50
eHRVVAUAA8N041p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADWYJtMwapfFC0BAABqKQAAQwAY
AAAAAAABAAAApIHe8gcAY29tcG9zaXRpbmcvdmlzaWJsZS1yZWN0L2JhY2tpbmctY2hhbmdlLWhl
aWdodC1mcm9tLXplcm8tc3RkZXJyLnR4dFVUBQADxHTjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAANZgm0wAAAAAAAAAAAAAAAASABgAAAAAAAAAEADtQYj0BwBjb21wb3NpdGluZy93ZWJnbC9V
VAUAA8N041p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADWYJtM5SnYNhgBAADQJAAAMwAYAAAA
AAABAAAApIHU9AcAY29tcG9zaXRpbmcvd2ViZ2wvd2ViZ2wtYmFja2dyb3VuZC1jb2xvci1zdGRl
cnIudHh0VVQFAAPDdONadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA2VubTAAAAAAAAAAAAAAA
AAcAGAAAAAAAAAAQAO1BWfYHAGNyeXB0by9VVAUAA1ls41p1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADZW5tMK7XxwmoBAAAGRQAAGwAYAAAAAAABAAAApIGa9gcAY3J5cHRvL2NyeXB0by1nYy1z
dGRlcnIudHh0VVQFAANZbONadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA2libTAAAAAAAAAAA
AAAAAA4AGAAAAAAAAAAQAO1BWfgHAGNyeXB0by9zdWJ0bGUvVVQFAAO7ZuNadXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgACAAAA4GCbTCXg0wgsAAAALAAAAD4AGAAAAAAAAQAAAKSBofgHAGNyeXB0by9z
dWJ0bGUvcnNhLWdlbmVyYXRlLWtleS1tYWxmb3JtZWQtcGFyYW1ldGVycy1zdGRlcnIudHh0VVQF
AAPTdONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4GCbTDA7uLFLAAAAaAAAADwAGAAAAAAA
AQAAAKSBRfkHAGNyeXB0by9zdWJ0bGUvcnNhLWltcG9ydC1rZXktbWFsZm9ybWVkLXBhcmFtZXRl
cnMtc3RkZXJyLnR4dFVUBQAD03TjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAANhYm0wAAAAA
AAAAAAAAAAAPABgAAAAAAAAAEADtQQb6BwBjcnlwdG8vd29ya2Vycy9VVAUAA7dm41p1eAsAAQT1
AQAABBQAAABQSwECHgMKAAAAAADYWJtMAAAAAAAAAAAAAAAAFgAYAAAAAAAAABAA7UFP+gcAY3J5
cHRvL3dvcmtlcnMvc3VidGxlL1VUBQADt2bjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAgAAANxg
m0wl4NMILAAAACwAAAAxABgAAAAAAAEAAACkgZ/6BwBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvcnNh
LWdlbmVyYXRlLWtleS1zdGRlcnIudHh0VVQFAAPPdONadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAA2VibTAAAAAAAAAAAAAAAAAUAGAAAAAAAAAAQAO1BNvsHAGNzczMvVVQFAAO6ZuNadXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAA2FibTAAAAAAAAAAAAAAAAAoAGAAAAAAAAAAQAO1BdfsHAGNz
czMvY2FsYy9VVAUAA7hm41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADbYJtMfv1s8BgBAACc
GwAAIAAYAAAAAAABAAAApIG5+wcAY3NzMy9jYWxjL3RyYW5zaXRpb25zLXN0ZGVyci50eHRVVAUA
A81041p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADbYJtMCRKl0gIBAAACFwAAIwAYAAAAAAAB
AAAApIEr/QcAY3NzMy9jYWxjL3ZlcnRpY2FsLWFsaWduLXN0ZGVyci50eHRVVAUAA85041p1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAADbWJtMAAAAAAAAAAAAAAAADQAYAAAAAAAAABAA7UGK/gcA
Y3NzMy9maWx0ZXJzL1VUBQADvmbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAANlgm0wAAAAA
AAAAAAAAAAAWABgAAAAAAAAAEADtQdH+BwBjc3MzL2ZpbHRlcnMvYmFja2Ryb3AvVVQFAAPJdONa
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2WCbTC+G1D7DdAAA5ZkAAD8AGAAAAAAAAAAAAKSB
If8HAGNzczMvZmlsdGVycy9iYWNrZHJvcC9hZGQtcmVtb3ZlLWFkZC1iYWNrZHJvcC1maWx0ZXIt
YWN0dWFsLnBuZ1VUBQADyXTjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANlgm0xv3zOfIwUA
AMELAAA9ABgAAAAAAAAAAACkgV10CABjc3MzL2ZpbHRlcnMvYmFja2Ryb3AvYWRkLXJlbW92ZS1h
ZGQtYmFja2Ryb3AtZmlsdGVyLWRpZmYucG5nVVQFAAPJdONadXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgA2WCbTPRu1SqZBQAAQhIAAD8AGAAAAAAAAQAAAKSB93kIAGNzczMvZmlsdGVycy9iYWNr
ZHJvcC9hZGQtcmVtb3ZlLWFkZC1iYWNrZHJvcC1maWx0ZXItZGlmZnMuaHRtbFVUBQADyXTjWnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANlgm0zqdKFtbQIAAI4EAABCABgAAAAAAAEAAACkgQmA
CABjc3MzL2ZpbHRlcnMvYmFja2Ryb3AvYWRkLXJlbW92ZS1hZGQtYmFja2Ryb3AtZmlsdGVyLWV4
cGVjdGVkLmh0bWxVVAUAA8l041p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADZYJtMKltvU6J0
AADimQAAQQAYAAAAAAAAAAAApIHygggAY3NzMy9maWx0ZXJzL2JhY2tkcm9wL2FkZC1yZW1vdmUt
YWRkLWJhY2tkcm9wLWZpbHRlci1leHBlY3RlZC5wbmdVVAUAA8l041p1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADZYJtM+6hD0woBAABoEgAAKgAYAAAAAAABAAAApIEP+AgAY3NzMy9maWx0ZXJz
L2JhY2tkcm9wL2FuaW1hdGlvbi1zdGRlcnIudHh0VVQFAAPKdONadXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgA2mCbTLN5WDYGAQAAaBIAAFAAGAAAAAAAAQAAAKSBffkIAGNzczMvZmlsdGVycy9i
YWNrZHJvcC9iYWNrZHJvcC1maWx0ZXItZG9lcy1ub3Qtc2l6ZS1wcm9wZXJseS1hYnNvbHV0ZS1z
dGRlcnIudHh0VVQFAAPLdONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2mCbTMce9TsCAQAA
AhcAADMAGAAAAAAAAQAAAKSBDfsIAGNzczMvZmlsdGVycy9jb21wb3NpdGVkLWR1cmluZy1hbmlt
YXRpb24tc3RkZXJyLnR4dFVUBQADzHTjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANtgm0zZ
D6IfJgEAANAkAAAsABgAAAAAAAEAAACkgXz8CABjc3MzL2ZpbHRlcnMvY29tcG9zaXRlZC1yZWZs
ZWN0ZWQtc3RkZXJyLnR4dFVUBQADzXTjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAN1gm0yp
QDDnAgEAAAIXAAA1ABgAAAAAAAEAAACkgQj+CABjc3MzL2ZpbHRlcnMvZmlsdGVyLWFuaW1hdGlv
bi1mcm9tLW5vbmUtaHctc3RkZXJyLnR4dFVUBQAD0XTjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAN1gm0zmVsV0+gAAAGgSAAA4ABgAAAAAAAEAAACkgXn/CABjc3MzL2ZpbHRlcnMvZmlsdGVy
LWNoYW5nZS1yZXBhaW50LWNvbXBvc2l0ZWQtc3RkZXJyLnR4dFVUBQAD0nTjWnV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAANpYm0wAAAAAAAAAAAAAAAANABgAAAAAAAAAEADtQeUACQBjc3MzL21h
c2tpbmcvVVQFAAO7ZuNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA3GCbTCnHXkb9AAAAzg0A
ACsAGAAAAAAAAQAAAKSBLAEJAGNzczMvbWFza2luZy9jbGlwLXBhdGgtYW5pbWF0aW9uLXN0ZGVy
ci50eHRVVAUAA89041p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADcYJtMENf+uQ8BAAACFwAA
LAAYAAAAAAABAAAApIGOAgkAY3NzMy9tYXNraW5nL2NsaXAtcGF0aC1ib3JkZXItYm94LXN0ZGVy
ci50eHRVVAUAA9B041p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADdWJtMAAAAAAAAAAAAAAAA
DQAYAAAAAAAAABAA7UEDBAkAZGlzcGxheWxpc3RzL1VUBQADwWbjWnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAOJgm0wBacvZVgAAAJQAAAAyABgAAAAAAAEAAACkgUoECQBkaXNwbGF5bGlzdHMv
ZXh0ZW50LWluY2x1ZGVzLXRyYW5zZm9ybXMtc3RkZXJyLnR4dFVUBQAD13TjWnV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAgAAAOJgm0yxUBLFTAAAAEwAAAApABgAAAAAAAEAAACkgQwFCQBkaXNwbGF5
bGlzdHMvbGF5ZXItZGlzcGF5LWxpc3Qtc3RkZXJyLnR4dFVUBQAD13TjWnV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAAOVYm0wAAAAAAAAAAAAAAAAIABgAAAAAAAAAEADtQbsFCQBlZGl0aW5nL1VU
BQADzWbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAOJYm0wAAAAAAAAAAAAAAAAUABgAAAAA
AAAAEADtQf0FCQBlZGl0aW5nL2V4ZWNDb21tYW5kL1VUBQADyGbjWnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAOVgm0yF869WQwAAAIYAAABBABgAAAAAAAEAAACkgUsGCQBlZGl0aW5nL2V4ZWND
b21tYW5kL2NsaXBib2FyZC1hY2Nlc3Mtd2l0aC11c2VyLWdlc3R1cmUtc3RkZXJyLnR4dFVUBQAD
3XTjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAOVYm0wAAAAAAAAAAAAAAAATABgAAAAAAAAA
EADtQQkHCQBlZGl0aW5nL3Bhc3RlYm9hcmQvVVQFAAPOZuNadXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgA6GCbTDakp5r6AAAAaBIAADMAGAAAAAAAAQAAAKSBVgcJAGVkaXRpbmcvcGFzdGVib2Fy
ZC9jb3B5LXBhc3RlLWF0dGFjaG1lbnQtc3RkZXJyLnR4dFVUBQAD43TjWnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAOhgm0zXnwKr+gAAAGgSAAAtABgAAAAAAAEAAACkgb0ICQBlZGl0aW5nL3Bh
c3RlYm9hcmQvY29weS1wYXN0ZS1iaWRpLXN0ZGVyci50eHRVVAUAA+R041p1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACABVYptMVZKlA9kUAADT+QAADQAYAAAAAAABAAAApIEeCgkAZXJyb3JfbG9n
LnR4dFVUBQADknfjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAOxgm0wAAAAAAAAAAAAAAAAF
ABgAAAAAAAAAEADtQT4fCQBmYXN0L1VUBQAD7HTjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
AOdYm0wAAAAAAAAAAAAAAAAPABgAAAAAAAAAEADtQX0fCQBmYXN0L2FuaW1hdGlvbi9VVAUAA9Fm
41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADpYJtMtZinFAUBAABoEgAATwAYAAAAAAABAAAA
pIHGHwkAZmFzdC9hbmltYXRpb24vY3NzLWFuaW1hdGlvbi1yZXN1bWluZy13aGVuLXZpc2libGUt
d2l0aC1zdHlsZS1jaGFuZ2Utc3RkZXJyLnR4dFVUBQAD5XTjWnV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAOpgm0y62SHnBQEAAGgSAAA/ABgAAAAAAAEAAACkgVQhCQBmYXN0L2FuaW1hdGlvbi9o
ZWlnaHQtYXV0by10cmFuc2l0aW9uLWNvbXB1dGVkLXZhbHVlLXN0ZGVyci50eHRVVAUAA+d041p1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADnWJtMAAAAAAAAAAAAAAAAEAAYAAAAAAAAABAA7UHS
IgkAZmFzdC9hdHRhY2htZW50L1VUBQAD0WbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOhg
m0xZpN1zBQEAAGgSAAAsABgAAAAAAAEAAACkgRwjCQBmYXN0L2F0dGFjaG1lbnQvYXR0YWNobWVu
dC1hY3Rpb24tc3RkZXJyLnR4dFVUBQAD43TjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOhg
m0xohuS9DgEAAAIXAAAyABgAAAAAAAEAAACkgYckCQBmYXN0L2F0dGFjaG1lbnQvYXR0YWNobWVu
dC1kaXNhYmxlZC1kb20tc3RkZXJyLnR4dFVUBQAD5HTjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAOlgm0yD0IJf8AAAAM4NAAApABgAAAAAAAEAAACkgQEmCQBmYXN0L2F0dGFjaG1lbnQvYXR0
YWNobWVudC1kb20tc3RkZXJyLnR4dFVUBQAD5XTjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AOpgm0wjoQVd8AAAAM4NAABMABgAAAAAAAEAAACkgVQnCQBmYXN0L2F0dGFjaG1lbnQvYXR0YWNo
bWVudC1zZWxlY3Qtb24tY2xpY2staW5zaWRlLXVzZXItc2VsZWN0LWFsbC1zdGRlcnIudHh0VVQF
AAPndONadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA6VibTAAAAAAAAAAAAAAAAAsAGAAAAAAA
AAAQAO1ByigJAGZhc3QvYmxvY2svVVQFAAPWZuNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
7FibTAAAAAAAAAAAAAAAABcAGAAAAAAAAAAQAO1BDykJAGZhc3QvYmxvY2svcG9zaXRpb25pbmcv
VVQFAAPbZuNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA7mCbTKj2/wf5AAAAaBIAADcAGAAA
AAAAAQAAAKSBYCkJAGZhc3QvYmxvY2svcG9zaXRpb25pbmcvcnRsLWZpeGVkLXBvc2l0aW9uaW5n
LXN0ZGVyci50eHRVVAUAA/B041p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADuYJtMRozcxfoA
AABoEgAARQAYAAAAAAABAAAApIHKKgkAZmFzdC9ibG9jay9wb3NpdGlvbmluZy9ydGwtc3RhdGlj
LXBvc2l0aW9uaW5nLWlubGluZS1ibG9jay1zdGRlcnIudHh0VVQFAAPwdONadXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAA6VibTAAAAAAAAAAAAAAAACMAGAAAAAAAAAAQAO1BQywJAGZhc3QvYmxv
Y2svcG9zaXRpb25pbmcvdmVydGljYWwtcmwvVVQFAAPWZuNadXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgA7GCbTB5oDT78AAAAzg0AAD8AGAAAAAAAAQAAAKSBoCwJAGZhc3QvYmxvY2svcG9zaXRp
b25pbmcvdmVydGljYWwtcmwvZml4ZWQtcG9zaXRpb25pbmctc3RkZXJyLnR4dFVUBQAD63TjWnV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAOxgm0wAAAAAAAAAAAAAAAAQABgAAAAAAAAAEADtQRUu
CQBmYXN0L2JveC1zaGFkb3cvVVQFAAPsdONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA7GCb
TDLsqhj8AAAAzg0AACgAGAAAAAAAAQAAAKSBXy4JAGZhc3QvYm94LXNoYWRvdy9iYXNpYy1zaGFk
b3dzLXN0ZGVyci50eHRVVAUAA+x041p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADqWJtMAAAA
AAAAAAAAAAAAEAAYAAAAAAAAABAA7UG9LwkAZmFzdC9ib3gtc2l6aW5nL1VUBQAD12bjWnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAO5bm0wSfRcE7wAAAM4NAAAlABgAAAAAAAEAAACkgQcwCQBm
YXN0L2JveC1zaXppbmcvYm94LXNpemluZy1zdGRlcnIudHh0VVQFAAOAbONadXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAA9VibTAAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1BVTEJAGZhc3QvY2Fu
dmFzL1VUBQAD7WbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOxgm0xz+fz2PQEAAEwTAAAm
ABgAAAAAAAEAAACkgZsxCQBmYXN0L2NhbnZhcy8yZC5jdXJyZW50UG9pbnQtc3RkZXJyLnR4dFVU
BQAD7HTjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAO1gm0w9OMoW/AAAAM4NAAArABgAAAAA
AAEAAACkgTgzCQBmYXN0L2NhbnZhcy8yZC5maWxsVGV4dC5ncmFkaWVudC1zdGRlcnIudHh0VVQF
AAPtdONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA7WCbTByr7l3xAAAAzg0AAC4AGAAAAAAA
AQAAAKSBmTQJAGZhc3QvY2FudmFzLzJkLmdldFBhdGgubW9kaWZpY2F0aW9uLXN0ZGVyci50eHRV
VAUAA+5041p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADuYJtM8CsW2f0AAADODQAAMwAYAAAA
AAABAAAApIHyNQkAZmFzdC9jYW52YXMvMmQuZ2V0VHJhbnNmb3JtLm1vZGlmaWNhdGlvbi1zdGRl
cnIudHh0VVQFAAPvdONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA7mCbTNVd3HUFAQAAaBIA
ACEAGAAAAAAAAQAAAKSBXDcJAGZhc3QvY2FudmFzLzJkLnNldFBhdGgtc3RkZXJyLnR4dFVUBQAD
8HTjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAO9gm0w3O+znBQEAAGgSAAAtABgAAAAAAAEA
AACkgbw4CQBmYXN0L2NhbnZhcy8yZC5zZXRUcmFuc2Zvcm0ubWF0cml4LXN0ZGVyci50eHRVVAUA
A/F041p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD4YJtM4U7Dy40AAAA0AQAAJgAYAAAAAAAB
AAAApIEoOgkAZmFzdC9jYW52YXMvY2FudmFzLWxpbmVEYXNoLXN0ZGVyci50eHRVVAUAAwN141p1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADxWJtMAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UEV
OwkAZmFzdC9jc3MvVVQFAAPmZuNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA82CbTNsI00I7
AAAAPwAAACkAGAAAAAAAAQAAAKSBWDsJAGZhc3QvY3NzL2NvbXBhcmUtY29udGVudC1zdHlsZS1z
dGRlcnIudHh0VVQFAAP6dONadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAABFmbTAAAAAAAAAAA
AAAAAAkAGAAAAAAAAAAQAO1B9jsJAGZhc3QvZG9tL1VUBQADCGfjWnV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAAO5Ym0wAAAAAAAAAAAAAAAASABgAAAAAAAAAEADtQTk8CQBmYXN0L2RvbS9Eb2N1
bWVudC9VVAUAA+Bm41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADxYJtMvkiKKegAAAA0CQAA
MgAYAAAAAAABAAAApIGFPAkAZmFzdC9kb20vRG9jdW1lbnQvZWFybHktZG9jdW1lbnQtYWNjZXNz
LXN0ZGVyci50eHRVVAUAA/V041p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADwWJtMAAAAAAAA
AAAAAAAAFQAYAAAAAAAAABAA7UHZPQkAZmFzdC9kb20vR2VvbG9jYXRpb24vVVQFAAPjZuNadXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA82CbTKEF+dvoAAAANAkAADIAGAAAAAAAAQAAAKSBKD4J
AGZhc3QvZG9tL0dlb2xvY2F0aW9uL3dpbmRvdy1jbG9zZS1jcmFzaC1zdGRlcnIudHh0VVQFAAP5
dONadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA7libTAAAAAAAAAAAAAAAABkAGAAAAAAAAAAQ
AO1BfD8JAGZhc3QvZG9tL0hUTUxCYXNlRWxlbWVudC9VVAUAA99m41p1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADxYJtMrfsZ/egAAAA0CQAAVAAYAAAAAAABAAAApIHPPwkAZmFzdC9kb20vSFRN
TEJhc2VFbGVtZW50L2hyZWYtYXR0cmlidXRlLXJlc29sdmVzLXdpdGgtcmVzcGVjdC10by1kb2N1
bWVudC1zdGRlcnIudHh0VVQFAAP1dONadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA81ibTAAA
AAAAAAAAAAAAABAAGAAAAAAAAAAQAO1BRUEJAGZhc3QvZG9tL1dpbmRvdy9VVAUAA+pm41p1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAADwWJtMAAAAAAAAAAAAAAAAGQAYAAAAAAAAABAA7UGPQQkA
ZmFzdC9kb20vV2luZG93L0xvY2F0aW9uL1VUBQAD5GbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAPNgm0yhBfnb6AAAADQJAAA8ABgAAAAAAAEAAACkgeJBCQBmYXN0L2RvbS9XaW5kb3cvTG9j
YXRpb24vc2V0LWxvY2F0aW9uLWFmdGVyLWNsb3NlLXN0ZGVyci50eHRVVAUAA/l041p1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACADzYJtMBlJt0+cAAAA0CQAAKQAYAAAAAAABAAAApIFAQwkAZmFz
dC9kb20vV2luZG93L2EtcmVsLW5vb3BlbmVyLXN0ZGVyci50eHRVVAUAA/l041p1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACADzYJtMBlJt0+cAAAA0CQAALAAYAAAAAAABAAAApIGKRAkAZmFzdC9k
b20vV2luZG93L2FyZWEtcmVsLW5vb3BlbmVyLXN0ZGVyci50eHRVVAUAA/p041p1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACADzYJtMbDr56ecAAAA0CQAAQQAYAAAAAAABAAAApIHXRQkAZmFzdC9k
b20vV2luZG93L2Nsb3N1cmUtYWNjZXNzLWFmdGVyLW5hdmlnYXRpb24td2luZG93LXN0ZGVyci50
eHRVVAUAA/p041p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD0YJtMJ6n5gOcAAAA0CQAAOQAY
AAAAAAABAAAApIE5RwkAZmFzdC9kb20vV2luZG93L2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLXdp
bmRvdy1zdGRlcnIudHh0VVQFAAP7dONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA9GCbTCep
+YDnAAAANAkAAEEAGAAAAAAAAQAAAKSBk0gJAGZhc3QvZG9tL1dpbmRvdy9kb20tYWNjZXNzLWZy
b20tY2xvc3VyZS13aW5kb3ctd2l0aC1nYy1zdGRlcnIudHh0VVQFAAP7dONadXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgA9GCbTCd07GDxAAAAzg0AACsAGAAAAAAAAQAAAKSB9UkJAGZhc3QvZG9t
L1dpbmRvdy9vcGVuLWludmFsaWQtdXJsLXN0ZGVyci50eHRVVAUAA/x041p1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAD1YJtMxG263OgAAAA0CQAANAAYAAAAAAABAAAApIFLSwkAZmFzdC9kb20v
V2luZG93L29wZW4temVyby1zaXplLWFzLWRlZmF1bHQtc3RkZXJyLnR4dFVUBQAD/XTjWnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAPVgm0yP/rq15wAAADQJAAA+ABgAAAAAAAEAAACkgaFMCQBm
YXN0L2RvbS9XaW5kb3cvc2V0dGluZy1wcm9wZXJ0aWVzLW9uLWNsb3NlZC13aW5kb3ctc3RkZXJy
LnR4dFVUBQAD/XTjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPZgm0wZ2Ltn5wAAADQJAAAy
ABgAAAAAAAEAAACkgQBOCQBmYXN0L2RvbS9XaW5kb3cvd2luZG93LWVhcmx5LXByb3BlcnRpZXMt
c3RkZXJyLnR4dFVUBQAD/3TjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPZgm0ypJsmj5wAA
ADQJAAAyABgAAAAAAAEAAACkgVNPCQBmYXN0L2RvbS9XaW5kb3cvd2luZG93LW9wZW4tcGVuZGlu
Zy11cmwtc3RkZXJyLnR4dFVUBQADAHXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPZgm0yp
Jsmj5wAAADQJAAA0ABgAAAAAAAEAAACkgaZQCQBmYXN0L2RvbS9XaW5kb3cvd2luZG93LW9wZW5l
ci1zZXQtdG8tbnVsbC1zdGRlcnIudHh0VVQFAAMAdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgA92CbTOK1ycrnAAAANAkAAEUAGAAAAAAAAQAAAKSB+1EJAGZhc3QvZG9tL1dpbmRvdy93aW5k
b3ctcHJvcGVydHktaW52YWxpZC1jaGFyYWN0ZXJzLWlnbm9yZWQtc3RkZXJyLnR4dFVUBQADAXXj
WnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPlgm0zbbk8w+gAAAGgSAAAvABgAAAAAAAEAAACk
gWFTCQBmYXN0L2RvbS9ob3Jpem9udGFsLXNjcm9sbGJhci1pbi1ydGwtc3RkZXJyLnR4dFVUBQAD
BXXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPlgm0zB885GDAEAAGgSAAAoABgAAAAAAAEA
AACkgcRUCQBmYXN0L2RvbS9odG1sLWF0dHJpYnV0ZS10eXBlcy1zdGRlcnIudHh0VVQFAAMGdeNa
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+2CbTDepU+7nAAAANAkAADAAGAAAAAAAAQAAAKSB
MlYJAGZhc3QvZG9tL2xvY2F0aW9uLW5ldy13aW5kb3ctbm8tY3Jhc2gtc3RkZXJyLnR4dFVUBQAD
CXXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAP1gm0xa4iCR6AAAADQJAAApABgAAAAAAAEA
AACkgYNXCQBmYXN0L2RvbS9vcGVuLWFuZC1jbG9zZS1ieS1ET00tc3RkZXJyLnR4dFVUBQADDnXj
WnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAJhm0yulrXr/AAAAM4NAAAvABgAAAAAAAEAAACk
gc5YCQBmYXN0L2RvbS9zY3JvbGwtcmV2ZWFsLWxlZnQtb3ZlcmZsb3ctc3RkZXJyLnR4dFVUBQAD
E3XjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAJhm0yCEhLN/AAAAM4NAAAsABgAAAAAAAEA
AACkgTNaCQBmYXN0L2RvbS9zZWFyY2gtc2hhZG93LWhvc3QtY3Jhc2gtc3RkZXJyLnR4dFVUBQAD
FHXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAdhm0yhpziZ/QAAAM4NAAA2ABgAAAAAAAEA
AACkgZVbCQBmYXN0L2RvbS92ZXJ0aWNhbC1zY3JvbGxiYXItd2hlbi1kaXItY2hhbmdlLXN0ZGVy
ci50eHRVVAUAAx1141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAHYZtMi62Wl/EAAADODQAA
NwAYAAAAAAABAAAApIECXQkAZmFzdC9kb20vd2ViaWRsLW9wZXJhdGlvbnMtb24tbm9kZS1wcm90
b3R5cGUtc3RkZXJyLnR4dFVUBQADHnXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAdhm0wX
wVsG5wAAADQJAAAnABgAAAAAAAEAAACkgWReCQBmYXN0L2RvbS93aW5kb3ctZG9tdXJsLWNyYXNo
LXN0ZGVyci50eHRVVAUAAx5141p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAOWZtMAAAAAAAA
AAAAAAAADAAYAAAAAAAAABAA7UGsXwkAZmFzdC9ldmVudHMvVVQFAAMbZ+NadXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgA92CbTG/EzvLnAAAANAkAAD4AGAAAAAAAAQAAAKSB8l8JAGZhc3QvZXZl
bnRzL2JlZm9yZS11bmxvYWQtbmF2aWdhdGUtZGlmZmVyZW50LXdpbmRvdy1zdGRlcnIudHh0VVQF
AAMBdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA92CbTCRXzpvoAAAANAkAADAAGAAAAAAA
AQAAAKSBUWEJAGZhc3QvZXZlbnRzL2JlZm9yZS11bmxvYWQtb3Blbi13aW5kb3ctc3RkZXJyLnR4
dFVUBQADAXXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPtgm0xYKmd1OQAAAEMAAAAyABgA
AAAAAAEAAACkgaNiCQBmYXN0L2V2ZW50cy9kaXNwbGF5LW5vbmUtb24tZm9jdXMtY3Jhc2gtc3Rk
ZXJyLnR4dFVUBQADCnXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAphm0wwtW3jOQAAAEMA
AAArABgAAAAAAAEAAACkgUhjCQBmYXN0L2V2ZW50cy9tb3VzZS1mb2N1cy1pbWFnZW1hcC1zdGRl
cnIudHh0VVQFAAMjdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgADWGbTLzu04LxAAAAzg0A
ADUAGAAAAAAAAQAAAKSB5mMJAGZhc3QvZXZlbnRzL29wZW4td2luZG93LWZyb20tYW5vdGhlci1m
cmFtZS1zdGRlcnIudHh0VVQFAAMqdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgADmGbTHXQ
C3znAAAANAkAADcAGAAAAAAAAQAAAKSBRmUJAGZhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1p
ZnJhbWUtbW92ZS10ZXN0LXN0ZGVyci50eHRVVAUAAyt141p1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAAPYZtMvD9zkPoAAABoEgAAQQAYAAAAAAABAAAApIGeZgkAZmFzdC9ldmVudHMvcG9wdXAt
YWxsb3dlZC1mcm9tLWdlc3R1cmUtaW5pdGlhdGVkLWV2ZW50LXN0ZGVyci50eHRVVAUAAy5141p1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAPYZtMTrYeWecAAAA0CQAARwAYAAAAAAABAAAApIET
aAkAZmFzdC9ldmVudHMvcG9wdXAtYWxsb3dlZC1mcm9tLWdlc3R1cmUtaW5pdGlhdGVkLWZvcm0t
c3VibWl0LXN0ZGVyci50eHRVVAUAAy5141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAPYZtM
TrYeWecAAAA0CQAAOwAYAAAAAAABAAAApIF7aQkAZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tlZC1m
cm9tLWZha2UtdXNlci1nZXN0dXJlLXN0ZGVyci50eHRVVAUAAy5141p1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAAQYZtMBSUeMOcAAAA0CQAAPwAYAAAAAAABAAAApIHXagkAZmFzdC9ldmVudHMv
cG9wdXAtYmxvY2tlZC1mcm9tLXVudHJ1c3RlZC1tb3VzZS1jbGljay1zdGRlcnIudHh0VVQFAAMv
deNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAEGGbTNiQH4voAAAANAkAADUAGAAAAAAAAQAA
AKSBN2wJAGZhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLWNsaWNrLWluLWlmcmFtZS1zdGRlcnIu
dHh0VVQFAAMwdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAEGGbTNiQH4voAAAANAkAAC0A
GAAAAAAAAQAAAKSBjm0JAGZhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczEtc3RkZXJy
LnR4dFVUBQADMHXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABBhm0zYkB+L6AAAADQJAAAt
ABgAAAAAAAEAAACkgd1uCQBmYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2luZy10aW1lcnMyLXN0ZGVy
ci50eHRVVAUAAzB141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAQYZtM2JAfi+gAAAA0CQAA
LQAYAAAAAAABAAAApIEscAkAZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tpbmctdGltZXJzMy1zdGRl
cnIudHh0VVQFAAMwdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAEWGbTCP9bSboAAAANAkA
AC0AGAAAAAAAAQAAAKSBe3EJAGZhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVyczUtc3Rk
ZXJyLnR4dFVUBQADMnXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAPFYm0wAAAAAAAAAAAAA
AAALABgAAAAAAAAAEADtQcpyCQBmYXN0L2ZpbGVzL1VUBQAD5mbjWnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAPRgm0wCNgel5wAAADQJAAA7ABgAAAAAAAEAAACkgQ9zCQBmYXN0L2ZpbGVzL2Rv
bXVybC1zY3JpcHQtZXhlY3V0aW9uLWNvbnRleHQtY3Jhc2gtc3RkZXJyLnR4dFVUBQAD+3TjWnV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAPJYm0wAAAAAAAAAAAAAAAASABgAAAAAAAAAEADtQWt0
CQBmYXN0L2ZpbHRlci1pbWFnZS9VVAUAA+dm41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD0
YJtM9DhyfvEAAADODQAAMwAYAAAAAAABAAAApIG3dAkAZmFzdC9maWx0ZXItaW1hZ2UvZmlsdGVy
LWltYWdlLWFuaW1hdGlvbi1zdGRlcnIudHh0VVQFAAP8dONadXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgA9WCbTLfuGbr5AAAAaBIAAC4AGAAAAAAAAQAAAKSBFXYJAGZhc3QvZmlsdGVyLWltYWdl
L2ZpbHRlci1pbWFnZS1ibHVyLXN0ZGVyci50eHRVVAUAA/1041p1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAAAMWZtMAAAAAAAAAAAAAAAACwAYAAAAAAAAABAA7UF2dwkAZmFzdC9mb3Jtcy9VVAUA
Axdn41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD4YJtMeTJDbWkAAABrAAAAOwAYAAAAAAAB
AAAApIG7dwkAZmFzdC9mb3Jtcy9jaGVja2JveC1hcHBlYXJhbmNlLWNoYW5nZS1ieS1jaGVja2Vk
LXN0ZGVyci50eHRVVAUAAwN141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAFYZtM+gZSJecA
AAA0CQAAPwAYAAAAAAABAAAApIGZeAkAZmFzdC9mb3Jtcy9tdWx0aXBsZS1mb3JtLXN1Ym1pc3Np
b24tcHJvdGVjdGlvbi1tb3VzZS1zdGRlcnIudHh0VVQFAAMadeNadXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgADWGbTHyjs6gZAQAA0CQAADQAGAAAAAAAAQAAAKSB+XkJAGZhc3QvZm9ybXMvc3Vi
bWl0LXRvLWJsYW5rLW11bHRpcGxlLXRpbWVzLXN0ZGVyci50eHRVVAUAAyp141p1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAAAAAAAWZtMAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UGAewkAZmFzdC9m
cmFtZXMvVVQFAAP/ZuNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+mCbTIlFlfTnAAAANAkA
ADIAGAAAAAAAAQAAAKSBxnsJAGZhc3QvZnJhbWVzL2ZyYW1lLWNyYXNoLXdpdGgtcGFnZS1jYWNo
ZS1zdGRlcnIudHh0VVQFAAMIdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+mCbTNsI00I7
AAAAPwAAAC8AGAAAAAAAAQAAAKSBGX0JAGZhc3QvZnJhbWVzL2ZyYW1lLWRpc3BsYXktbm9uZS1m
b2N1cy1zdGRlcnIudHh0VVQFAAMIdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA/WCbTMwN
PtfIAAAATQEAAD8AGAAAAAAAAQAAAKSBvX0JAGZhc3QvZnJhbWVzL2lmcmFtZS1wbHVnaW4tbG9h
ZC1yZW1vdmUtZG9jdW1lbnQtY3Jhc2gtc3RkZXJyLnR4dFVUBQADDXXjWnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAABhm0xT03MK6QAAADQJAAAuABgAAAAAAAEAAACkgf5+CQBmYXN0L2ZyYW1l
cy9wYWdlLWhpZGUtZG9jdW1lbnQtb3Blbi1zdGRlcnIudHh0VVQFAAMQdeNadXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAAGGbTNnYiFDnAAAANAkAADAAGAAAAAAAAQAAAKSBT4AJAGZhc3QvZnJh
bWVzL3BhZ2UtdW5sb2FkLWRvY3VtZW50LW9wZW4tc3RkZXJyLnR4dFVUBQADEHXjWnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAAFhm0ySS4g55wAAADQJAAA5ABgAAAAAAAEAAACkgaCBCQBmYXN0
L2ZyYW1lcy9zYW5kYm94ZWQtaWZyYW1lLWNsb3NlLXRvcC1ub2Nsb3NlLXN0ZGVyci50eHRVVAUA
AxF141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAABYZtMkkuIOecAAAA0CQAAMQAYAAAAAAAB
AAAApIH6ggkAZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1jbG9zZS10b3Atc3RkZXJyLnR4
dFVUBQADEnXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAJhm0yfpESKbAEAAAhcAAA9ABgA
AAAAAAEAAACkgUyECQBmYXN0L2ZyYW1lcy9zYW5kYm94ZWQtaWZyYW1lLW5hdmlnYXRpb24td2lu
ZG93b3Blbi1zdGRlcnIudHh0VVQFAAMTdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA+Fib
TAAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1BL4YJAGZhc3QvaGlkcGkvVVQFAAPzZuNadXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgA+2CbTJu7f4D6AAAAaBIAAC0AGAAAAAAAAQAAAKSBdIYJAGZh
c3QvaGlkcGkvdmlkZW8tY29udHJvbHMtaW4taGlkcGktc3RkZXJyLnR4dFVUBQADCXXjWnV4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAAPdYm0wAAAAAAAAAAAAAAAANABgAAAAAAAAAEADtQdWHCQBm
YXN0L2hpc3RvcnkvVVQFAAPyZuNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+1ubTAO4Cu/N
AAAATQEAADUAGAAAAAAAAQAAAKSBHIgJAGZhc3QvaGlzdG9yeS9nby1iYWNrLXRvLWlmcmFtZS13
aXRoLXBsdWdpbi1zdGRlcnIudHh0VVQFAAOZbONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
+WCbTFVoXEvnAAAANAkAADIAGAAAAAAAAQAAAKSBWIkJAGZhc3QvaGlzdG9yeS9oaXN0b3J5LXN1
YmZyYW1lLXdpdGgtbmFtZS1zdGRlcnIudHh0VVQFAAMFdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgA+WCbTFVoXEvnAAAANAkAACYAGAAAAAAAAQAAAKSBq4oJAGZhc3QvaGlzdG9yeS9oaXN0
b3J5X3JlbG9hZC1zdGRlcnIudHh0VVQFAAMFdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
+WCbTFVoXEvnAAAANAkAAC0AGAAAAAAAAQAAAKSB8osJAGZhc3QvaGlzdG9yeS9sb2NhdGlvbi1y
ZXBsYWNlLWhhc2gtc3RkZXJyLnR4dFVUBQADBnXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
APlgm0xP9d095wAAADQJAAA0ABgAAAAAAAEAAACkgUCNCQBmYXN0L2hpc3RvcnkvcGFnZS1jYWNo
ZS1hZnRlci13aW5kb3ctb3Blbi1zdGRlcnIudHh0VVQFAAMGdeNadXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgA+WCbTE/13T3nAAAANAkAADgAGAAAAAAAAQAAAKSBlY4JAGZhc3QvaGlzdG9yeS9w
YWdlLWNhY2hlLWJhY2stbmF2aWdhdGlvbi1jcmFzaC1zdGRlcnIudHh0VVQFAAMGdeNadXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgA+mCbTNnT3O/nAAAANAkAAC4AGAAAAAAAAQAAAKSB7o8JAGZh
c3QvaGlzdG9yeS9wYWdlLWNhY2hlLXdpdGgtb3BlbmVyLXN0ZGVyci50eHRVVAUAAwh141p1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAAD4WJtMAAAAAAAAAAAAAAAACgAYAAAAAAAAABAA7UE9kQkA
ZmFzdC9odG1sL1VUBQAD9GbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPpgm0wqQjVG8AAA
AM4NAAAlABgAAAAAAAEAAACkgYGRCQBmYXN0L2h0bWwvbWVudWl0ZW0tZWxlbWVudC1zdGRlcnIu
dHh0VVQFAAMIdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+2CbTMbCzcL8AAAAzg0AACYA
GAAAAAAAAQAAAKSB0JIJAGZhc3QvaHRtbC9tZXRlci11c2VyLW1vZGlmeS1zdGRlcnIudHh0VVQF
AAMJdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAABFmbTAAAAAAAAAAAAAAAAAwAGAAAAAAA
AAAQAO1BLJQJAGZhc3QvaW1hZ2VzL1VUBQADCGfjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
APlgm0zyP8hD5wAAADQJAAAzABgAAAAAAAEAAACkgXKUCQBmYXN0L2ltYWdlcy9hbmltYXRlZC1n
aWYtd2luZG93LXJlc2l6aW5nLXN0ZGVyci50eHRVVAUAAwV141p1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAD9YJtMETLM8soAAABNAQAATQAYAAAAAAABAAAApIHGlQkAZmFzdC9pbWFnZXMvZW1i
ZWQtZG9lcy1ub3QtcHJvcGFnYXRlLWRpbWVuc2lvbnMtdG8tb2JqZWN0LWFuY2VzdG9yLXN0ZGVy
ci50eHRVVAUAAw5141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAHYZtMIY+9ODIAAAAzAAAA
LAAYAAAAAAABAAAApIEXlwkAZmFzdC9pbWFnZXMvcGRmLWFzLWltYWdlLWNyb3AtYm94LXN0ZGVy
ci50eHRVVAUAAx1141p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAD6WJtMAAAAAAAAAAAAAAAA
DAAYAAAAAAAAABAA7UGvlwkAZmFzdC9sYXllcnMvVVQFAAP4ZuNadXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgA+WCbTJwTLB7KAAAATQEAAC0AGAAAAAAAAQAAAKSB9ZcJAGZhc3QvbGF5ZXJzL2Ns
aXAtcmVjdHMtdHJhbnNmb3JtZWQtc3RkZXJyLnR4dFVUBQADBnXjWnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAP1gm0z2p6s5/QAAAM4NAAAiABgAAAAAAAEAAACkgSaZCQBmYXN0L2xheWVycy92
aWRlby1sYXllci1zdGRlcnIudHh0VVQFAAMNdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
/WCbTA8TRTEHAQAAaBIAADcAGAAAAAAAAQAAAKSBf5oJAGZhc3QvbGF5ZXJzL3Zpc2libGUtbGF5
ZXItd2l0aC1oaWRkZW4tcGFyZW50LXN0ZGVyci50eHRVVAUAAw5141p1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAAAAWZtMAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UH3mwkAZmFzdC9sb2FkZXIv
VVQFAAP/ZuNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+mCbTAgvqKrnAAAANAkAADoAGAAA
AAAAAQAAAKSBPZwJAGZhc3QvbG9hZGVyL2NhbmNlbC1sb2FkLWR1cmluZy1wb3J0LWJsb2NrLXRp
bWVyLXN0ZGVyci50eHRVVAUAAwd141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD6YJtM2wjT
QjsAAAA/AAAAUgAYAAAAAAABAAAApIGYnQkAZmFzdC9sb2FkZXIvZGlzcGxheS1pbWFnZS11bnNl
dC1jYW4tYmxvY2staW1hZ2UtYW5kLWNhbi1yZWxvYWQtaW4tcGxhY2Utc3RkZXJyLnR4dFVUBQAD
B3XjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPtgm0xH1M/k+gAAAGgSAAAqABgAAAAAAAEA
AACkgV+eCQBmYXN0L2xvYWRlci9pbWFnZS1pbi1wYWdlLWNhY2hlLXN0ZGVyci50eHRVVAUAAwl1
41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD7YJtM2wjTQjsAAAA/AAAAUwAYAAAAAAABAAAA
pIG9nwkAZmFzdC9sb2FkZXIvaW1hZ2VzLWVuYWJsZWQtdW5zZXQtY2FuLWJsb2NrLWltYWdlLWFu
ZC1jYW4tcmVsb2FkLWluLXBsYWNlLXN0ZGVyci50eHRVVAUAAwp141p1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAD8WJtMhYRK48gAAABLAQAAKwAYAAAAAAABAAAApIGFoAkAZmFzdC9sb2FkZXIv
bG9jYWwtQ1NTLWZyb20tbG9jYWwtc3RkZXJyLnR4dFVUBQAD+2bjWnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAAJhm0yFB7S16AAAADQJAAAhABgAAAAAAAEAAACkgbKhCQBmYXN0L2xvYWRlci9w
aW5nLWVycm9yLXN0ZGVyci50eHRVVAUAAxN141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAC
YZtM2wjTQjsAAAA/AAAALQAYAAAAAAABAAAApIH1ogkAZmFzdC9sb2FkZXIvcmVsb2FkLXBvbGlj
eS1kZWxlZ2F0ZS1zdGRlcnIudHh0VVQFAAMUdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
A2GbTDX5xnHnAAAANAkAAC4AGAAAAAAAAQAAAKSBl6MJAGZhc3QvbG9hZGVyL3JlbG9hZC16ZXJv
LWJ5dGUtcGx1Z2luLXN0ZGVyci50eHRVVAUAAxV141p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AAD5WJtMAAAAAAAAAAAAAAAAGQAYAAAAAAAAABAA7UHmpAkAZmFzdC9sb2FkZXIvc3RhdGVvYmpl
Y3RzL1VUBQAD9WbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPtgm0wvDDAI/AAAAM4NAABZ
ABgAAAAAAAEAAACkgTmlCQBmYXN0L2xvYWRlci9zdGF0ZW9iamVjdHMvZG9jdW1lbnQtZGVzdHJv
eWVkLW5hdmlnYXRlLWJhY2std2l0aC1mcmFnbWVudC1zY3JvbGwtc3RkZXJyLnR4dFVUBQADCnXj
WnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPtgm0z37zrH6AAAADQJAABMABgAAAAAAAEAAACk
gcimCQBmYXN0L2xvYWRlci9zdGF0ZW9iamVjdHMvbm8tcG9wc3RhdGUtd2hlbi1iYWNrLXRvLXN0
YXRlbGVzcy1lbnRyeS1zdGRlcnIudHh0VVQFAAMKdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgA+2CbTPfvOsfoAAAANAkAAFwAGAAAAAAAAQAAAKSBNqgJAGZhc3QvbG9hZGVyL3N0YXRlb2Jq
ZWN0cy9uby1wb3BzdGF0ZS13aGVuLWJhY2stdG8tc3RhdGVsZXNzLWVudHJ5LXdpdGgtcGFnZS1j
YWNoZS1zdGRlcnIudHh0VVQFAAMKdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA/GCbTLx8
Oq7oAAAANAkAAEIAGAAAAAAAAQAAAKSBtKkJAGZhc3QvbG9hZGVyL3N0YXRlb2JqZWN0cy9wb3Bz
dGF0ZS1maXJlcy13aXRoLXBhZ2UtY2FjaGUtc3RkZXJyLnR4dFVUBQADC3XjWnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAPxgm0xhyTsV6AAAADQJAAA9ABgAAAAAAAEAAACkgRirCQBmYXN0L2xv
YWRlci9zdGF0ZW9iamVjdHMvcHVzaHN0YXRlLXdpdGhvdXQtaGlzdG9yeS1zdGRlcnIudHh0VVQF
AAMMdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA/GCbTGHJOxXoAAAANAkAADoAGAAAAAAA
AQAAAKSBd6wJAGZhc3QvbG9hZGVyL3N0YXRlb2JqZWN0cy9yZXBsYWNlc3RhdGUtaW4taWZyYW1l
LXN0ZGVyci50eHRVVAUAAwx141p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAD8WJtMAAAAAAAA
AAAAAAAAEQAYAAAAAAAAABAA7UHTrQkAZmFzdC9tZWRpYXN0cmVhbS9VVAUAA/tm41p1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAAAYZtMYNN9UggBAABoEgAASwAYAAAAAAABAAAApIEergkAZmFz
dC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS12aWRlby1lbGVtZW50LXZpZGVvLXRyYWNrcy1kaXNh
YmxlZC1zdGRlcnIudHh0VVQFAAMQdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA/FibTAAA
AAAAAAAAAAAAAA4AGAAAAAAAAAAQAO1Bq68JAGZhc3QvbXVsdGljb2wvVVQFAAP7ZuNadXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAA/FibTAAAAAAAAAAAAAAAABkAGAAAAAAAAAAQAO1B868JAGZh
c3QvbXVsdGljb2wvcGFnaW5hdGlvbi9VVAUAA/xm41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAABYZtMTLZLgPoAAABoEgAAOgAYAAAAAAABAAAApIFGsAkAZmFzdC9tdWx0aWNvbC9wYWdpbmF0
aW9uL1JpZ2h0VG9MZWZ0LXJsLWhpdHRlc3Qtc3RkZXJyLnR4dFVUBQADEXXjWnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAAFhm0ytje6x+gAAAGgSAAAyABgAAAAAAAEAAACkgbSxCQBmYXN0L211
bHRpY29sL3BhZ2luYXRpb24vUmlnaHRUb0xlZnQtcmwtc3RkZXJyLnR4dFVUBQADEnXjWnV4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAAARZm0wAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQRqzCQBm
YXN0L3BhcnNlci9VVAUAAwhn41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAHYZtM9aDuYecA
AAA0CQAAMAAYAAAAAAABAAAApIFgswkAZmFzdC9wYXJzZXIveGh0bWwtY2xvc2Utd2hpbGUtcGFy
c2luZy1zdGRlcnIudHh0VVQFAAMedeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAAVmbTAAA
AAAAAAAAAAAAAA4AGAAAAAAAAAAQAO1BsbQJAGZhc3QvcmVwbGFjZWQvVVQFAAMCZ+NadXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgABGGbTL/pssHJAAAATQEAADUAGAAAAAAAAQAAAKSB+bQJAGZh
c3QvcmVwbGFjZWQvaW52YWxpZC1vYmplY3Qtd2l0aC1mYWxsYmFjay1zdGRlcnIudHh0VVQFAAMX
deNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAA1mbTAAAAAAAAAAAAAAAAA8AGAAAAAAAAAAQ
AO1BMbYJAGZhc3Qvc2Nyb2xsaW5nL1VUBQADBmfjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AAVhm0ypwzk4+gAAAGgSAABkABgAAAAAAAEAAACkgXq2CQBmYXN0L3Njcm9sbGluZy9ydGwtc2Ny
b2xsYmFycy1hbHRlcm5hdGUtYm9keS1kaXItYXR0ci1kb2VzLW5vdC11cGRhdGUtc2Nyb2xsYmFy
LXBsYWNlbWVudC1zdGRlcnIudHh0VVQFAAMadeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
BWGbTNRW+Ij6AAAAaBIAADsAGAAAAAAAAQAAAKSBErgJAGZhc3Qvc2Nyb2xsaW5nL3J0bC1zY3Jv
bGxiYXJzLWFuaW1hdGlvbi1wcm9wZXJ0eS1zdGRlcnIudHh0VVQFAAMadeNadXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgABmGbTBtjYeIPAQAAAhcAAEAAGAAAAAAAAQAAAKSBgbkJAGZhc3Qvc2Ny
b2xsaW5nL3J0bC1zY3JvbGxiYXJzLWVsZW1lbnRGcm9tUG9pbnQtc3RhdGljLXN0ZGVyci50eHRV
VAUAAxt141p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAADWZtMAAAAAAAAAAAAAAAADAAYAAAA
AAAAABAA7UEKuwkAZmFzdC9zaGFwZXMvVVQFAAMGZ+NadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAAC1mbTAAAAAAAAAAAAAAAACEAGAAAAAAAAAAQAO1BULsJAGZhc3Qvc2hhcGVzL3NoYXBlLW91
dHNpZGUtZmxvYXRzL1VUBQADFmfjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAZhm0wIOUjs
+gAAAGgSAABDABgAAAAAAAEAAACkgau7CQBmYXN0L3NoYXBlcy9zaGFwZS1vdXRzaWRlLWZsb2F0
cy9zaGFwZS1vdXRzaWRlLWFuaW1hdGlvbi1zdGRlcnIudHh0VVQFAAMbdeNadXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgABmGbTNdVrlwCAQAAAhcAAFMAGAAAAAAAAQAAAKSBIr0JAGZhc3Qvc2hh
cGVzL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtYmlnLWJveC1ib3JkZXItcmFk
aXVzLTAwMS1zdGRlcnIudHh0VVQFAAMcdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgADWGb
THbVsiLxAAAAzg0AAFkAGAAAAAAAAQAAAKSBsb4JAGZhc3Qvc2hhcGVzL3NoYXBlLW91dHNpZGUt
ZmxvYXRzL3NoYXBlLW91dHNpZGUtc2hhcGUtaW1hZ2UtdGhyZXNob2xkLWFuaW1hdGlvbi1zdGRl
cnIudHh0VVQFAAMqdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgADmGbTDuso4IHAQAAaBIA
AEwAGAAAAAAAAQAAAKSBNcAJAGZhc3Qvc2hhcGVzL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBl
LW91dHNpZGUtdGV4dC1vdmVybGFwLWZsb2F0LXN0ZGVyci50eHRVVAUAAyt141p1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAAAAAAEWZtMAAAAAAAAAAAAAAAACwAYAAAAAAAAABAA7UHCwQkAZmFzdC90
YWJsZS9VVAUAAwdn41p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAEWZtMAAAAAAAAAAAAAAAA
HQAYAAAAAAAAABAA7UEHwgkAZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9VVAUAAwdn41p1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAGYZtMt08b7P0AAADODQAANAAYAAAAAAABAAAApIFe
wgkAZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy8wMDEtdmVydGljYWwtc3RkZXJyLnR4dFVU
BQADHHXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAACBZm0wAAAAAAAAAAAAAAAAKABgAAAAA
AAAAEADtQcnDCQBmYXN0L3RleHQvVVQFAAM7Z+NadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
CWGbTD5iDMP6AAAAaBIAADoAGAAAAAAAAQAAAKSBDcQJAGZhc3QvdGV4dC9jb21iaW5pbmctY2hh
cmFjdGVyLXNlcXVlbmNlLXZlcnRpY2FsLXN0ZGVyci50eHRVVAUAAyJ141p1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAALYZtMm9HmfwcBAABoEgAAMAAYAAAAAAABAAAApIF7xQkAZmFzdC90ZXh0
L2Rlc2NlbnQtY2xpcC1pbi1zY2FsZWQtcGFnZS1zdGRlcnIudHh0VVQFAAMmdeNadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgADGGbTC67CP8HAQAAaBIAACoAGAAAAAAAAQAAAKSB7MYJAGZhc3Qv
dGV4dC9kaWxhdGlvbi1zYXZlLXJlc3RvcmUtc3RkZXJyLnR4dFVUBQADJ3XjWnV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAAAdZm0wAAAAAAAAAAAAAAAAYABgAAAAAAAAAEADtQVfICQBmYXN0L3Rl
eHQvaW50ZXJuYXRpb25hbC9VVAUAAw1n41p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAJWZtM
AAAAAAAAAAAAAAAAKAAYAAAAAAAAABAA7UGpyAkAZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvc3lz
dGVtLWxhbmd1YWdlL1VUBQADEWfjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAlhm0x6hvHd
/QAAAM4NAABSABgAAAAAAAEAAACkgQvJCQBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9zeXN0ZW0t
bGFuZ3VhZ2UvYXJhYmljLWdseXBoLWNhY2hlLWZpbGwtY29tYmluZS1zdGRlcnIudHh0VVQFAAMi
deNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgACmGbTNr3dt/9AAAAzg0AAEcAGAAAAAAAAQAA
AKSBlMoJAGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL3N5c3RlbS1sYW5ndWFnZS9kZWNsYXJhdGl2
ZS1sYW5ndWFnZS1zdGRlcnIudHh0VVQFAAMjdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
CmGbTPD92NHxAAAAzg0AAD0AGAAAAAAAAQAAAKSBEswJAGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFs
L3N5c3RlbS1sYW5ndWFnZS9oYW4tcXVvdGVzLXN0ZGVyci50eHRVVAUAAyR141p1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAALYZtMfedzwfwAAADODQAAUAAYAAAAAAABAAAApIF6zQkAZmFzdC90
ZXh0L2ludGVybmF0aW9uYWwvc3lzdGVtLWxhbmd1YWdlL2hpbmRpLXN5c3RlbS1mb250LXB1bmN0
dWF0aW9uLXN0ZGVyci50eHRVVAUAAyZ141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAMYZtM
oU8pFggBAABoEgAASgAYAAAAAAABAAAApIEAzwkAZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvc3lz
dGVtLWxhbmd1YWdlL3N5c3RlbS1mb250LXB1bmN0dWF0aW9uLXN0ZGVyci50eHRVVAUAAyd141p1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAhYZtMS0bf6g8BAAACFwAALQAYAAAAAAABAAAApIGM
0AkAZmFzdC90ZXh0L3ZlcnRpY2FsLXF1b3RhdGlvbi1tYXJrcy1zdGRlcnIudHh0VVQFAANOdeNa
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAClmbTAAAAAAAAAAAAAAAAAkAGAAAAAAAAAAQAO1B
AtIJAGZhc3QveHNsL1VUBQADFGfjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAthm0xO+yD4
iAAAAOcAAAAlABgAAAAAAAEAAACkgUXSCQBmYXN0L3hzbC90cmFuc2Zvcm0teGhyLWRvYy1zdGRl
cnIudHh0VVQFAAMmdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAC2GbTP2iLmSPAAAA7gAA
ACcAGAAAAAAAAQAAAKSBLNMJAGZhc3QveHNsL3hzbHQtYmFkLWltcG9ydC11cmktc3RkZXJyLnR4
dFVUBQADJnXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAthm0yyu8ZnhwAAADQBAAAkABgA
AAAAAAEAAACkgRzUCQBmYXN0L3hzbC94c2x0LWNvbnRlbnRUeXBlLXN0ZGVyci50eHRVVAUAAyZ1
41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAMYZtMwuv1xowAAABgAQAANAAYAAAAAAABAAAA
pIEB1QkAZmFzdC94c2wveHNsdC10cmFuc2Zvcm0tdG8tZnJhZ21lbnQtY3Jhc2gtc3RkZXJyLnR4
dFVUBQADKHXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAG1im0wrC/0+qQEAAMcCAAARABgA
AAAAAAEAAACkgfvVCQBmdWxsX3Jlc3VsdHMuanNvblVUBQADvXfjWnV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAAA9cm0wAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQe/XCQBmdWxsc2NyZWVuL1VU
BQADvmzjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAA5cm0zplYSD+wAAAM4NAAAxABgAAAAA
AAEAAACkgTTYCQBmdWxsc2NyZWVuL2Fub255bW91cy1ibG9jay1tZXJnZS1jcmFzaC1zdGRlcnIu
dHh0VVQFAAO8bONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAC2GbTJXqfzvnAAAANAkAADEA
GAAAAAAAAQAAAKSBmtkJAGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4tZXhpdC13aGVuLXBvcHVwLXN0
ZGVyci50eHRVVAUAAyZ141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAPXJtMk+yMHckAAABN
AQAAKAAYAAAAAAABAAAApIHs2gkAZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1wbHVnaW4tc3RkZXJy
LnR4dFVUBQADvmzjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAA1hm0x3EuoQ8AAAAM4NAAAp
ABgAAAAAAAEAAACkgRfcCQBmdWxsc2NyZWVuL3ZpZGVvLWNvbnRyb2xzLWRyYWctc3RkZXJyLnR4
dFVUBQADKnXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAA5hm0w9raZZBwEAAGgSAAAqABgA
AAAAAAEAAACkgWrdCQBmdWxsc2NyZWVuL3ZpZGVvLXNwZWNpZmllZC1zaXplLXN0ZGVyci50eHRV
VAUAAyt141p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAJWZtMAAAAAAAAAAAAAAAACAAYAAAA
AAAAABAA7UHV3gkAZ2FtZXBhZC9VVAUAAxJn41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAJ
WZtMq7UP6vwAAADODQAAHgAYAAAAAAABAAAApIEX3wkAZ2FtZXBhZC9nYW1lcGFkLWFwaS1zdGRl
cnIudHh0VVQFAAMSZ+NadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAADGGbTAAAAAAAAAAAAAAA
AAkAGAAAAAAAAAAQAO1Ba+AJAGh0bWw1bGliL1VUBQADKHXjWnV4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAAAxhm0wAAAAAAAAAAAAAAAATABgAAAAAAAAAEADtQa7gCQBodG1sNWxpYi9nZW5lcmF0
ZWQvVVQFAAModeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgADGGbTJr+AQDxAAAAzg0AADEA
GAAAAAAAAQAAAKSB++AJAGh0bWw1bGliL2dlbmVyYXRlZC9ydW4tYWRvcHRpb24wMS1kYXRhLXN0
ZGVyci50eHRVVAUAAyh141p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAkWZtMAAAAAAAAAAAA
AAAABQAYAAAAAAAAABAA7UFX4gkAaHR0cC9VVAUAA0Rn41p1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAAAWYZtMAAAAAAAAAAAAAAAACwAYAAAAAAAAABAA7UGW4gkAaHR0cC90ZXN0cy9VVAUAAzt1
41p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAMWZtMAAAAAAAAAAAAAAAAFAAYAAAAAAAAABAA
7UHb4gkAaHR0cC90ZXN0cy9hcHBjYWNoZS9VVAUAAxhn41p1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAAMYZtMb8SoUfoAAABoEgAAQwAYAAAAAAABAAAApIEp4wkAaHR0cC90ZXN0cy9hcHBjYWNo
ZS9jcmFzaC13aGVuLW5hdmlnYXRpbmctYXdheS10aGVuLWJhY2stc3RkZXJyLnR4dFVUBQADKHXj
WnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAA5hm0wFUR9V+QAAAGgSAAAuABgAAAAAAAEAAACk
gaDkCQBodHRwL3Rlc3RzL2FwcGNhY2hlL2lkZW50aWZpZXItdGVzdC1zdGRlcnIudHh0VVQFAAMs
deNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAC1mbTAAAAAAAAAAAAAAAABEAGAAAAAAAAAAQ
AO1BAeYJAGh0dHAvdGVzdHMvYmxpbmsvVVQFAAMWZ+NadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAAC1mbTAAAAAAAAAAAAAAAABwAGAAAAAAAAAAQAO1BTOYJAGh0dHAvdGVzdHMvYmxpbmsvc2Vu
ZGJlYWNvbi9VVAUAAxZn41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAOYZtMairtVugAAAA0
CQAAPwAYAAAAAAABAAAApIGi5gkAaHR0cC90ZXN0cy9ibGluay9zZW5kYmVhY29uL2JlYWNvbi1k
ZXRhY2hlZC1uby1jcmFzaC1zdGRlcnIudHh0VVQFAAMsdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAAJlybTAAAAAAAAAAAAAAAABEAGAAAAAAAAAAQAO1BA+gJAGh0dHAvdGVzdHMvY2FjaGUv
VVQFAAPobONadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAJlybTAAAAAAAAAAAAAAAABwAGAAA
AAAAAAAQAO1BTugJAGh0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9VVAUAA+hs41p1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAAkYZtMXogmiwAFAAAoKwAAPgAYAAAAAAAAAAAApIGk6AkAaHR0
cC90ZXN0cy9jYWNoZS9kaXNrLWNhY2hlL3NoYXR0ZXJlZC1kZWR1cGxpY2F0aW9uLWFjdHVhbC5w
bmdVVAUAA1R141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAkYZtMNxA+NqwBAABICQAAPAAY
AAAAAAAAAAAApIEc7gkAaHR0cC90ZXN0cy9jYWNoZS9kaXNrLWNhY2hlL3NoYXR0ZXJlZC1kZWR1
cGxpY2F0aW9uLWRpZmYucG5nVVQFAANUdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJGGb
TEEVkY2cBQAAOhIAAD4AGAAAAAAAAQAAAKSBPvAJAGh0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNo
ZS9zaGF0dGVyZWQtZGVkdXBsaWNhdGlvbi1kaWZmcy5odG1sVVQFAANUdeNadXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAJGGbTKVLwHTCAAAAGQIAAEEAGAAAAAAAAQAAAKSBUvYJAGh0dHAvdGVz
dHMvY2FjaGUvZGlzay1jYWNoZS9zaGF0dGVyZWQtZGVkdXBsaWNhdGlvbi1leHBlY3RlZC5odG1s
VVQFAANUdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJGGbTEaNdzx2BQAAQysAAEAAGAAA
AAAAAAAAAKSBj/cJAGh0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9zaGF0dGVyZWQtZGVkdXBs
aWNhdGlvbi1leHBlY3RlZC5wbmdVVAUAA1R141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAP
YZtMbGEASfoAAABoEgAASAAYAAAAAAABAAAApIF//QkAaHR0cC90ZXN0cy9jYWNoZS9kaXNwbGF5
LWltYWdlLXVuc2V0LWFsbG93cy1jYWNoZWQtaW1hZ2UtbG9hZC1zdGRlcnIudHh0VVQFAAMtdeNa
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAD2GbTNVBonHnAAAANAkAAEcAGAAAAAAAAQAAAKSB
+/4JAGh0dHAvdGVzdHMvY2FjaGUvaGlzdG9yeS1uYXZpZ2F0aW9uLW5vLXJlc291cmNlLXJldmFs
aWRhdGlvbi1zdGRlcnIudHh0VVQFAAMudeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAD2Gb
TM/cIwfnAAAANAkAAEEAGAAAAAAAAQAAAKSBYwAKAGh0dHAvdGVzdHMvY2FjaGUvaGlzdG9yeS1v
bmx5LWNhY2hlZC1zdWJyZXNvdXJjZS1sb2Fkcy1zdGRlcnIudHh0VVQFAAMudeNadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAE2GbTH8iUcPnAAAANAkAAC8AGAAAAAAAAQAAAKSBxQEKAGh0dHAv
dGVzdHMvY2FjaGUvcmVsb2FkLWV4cGlyZWQtb25seS1zdGRlcnIudHh0VVQFAAM1deNadXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAFVybTAAAAAAAAAAAAAAAAB0AGAAAAAAAAAAQAO1BFQMKAGh0
dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvVVQFAAPJbONadXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAFVybTAMHCEzJAAAATQEAADsAGAAAAAAAAQAAAKSBbAMKAGh0dHAvdGVzdHMvY29udGVu
dGV4dGVuc2lvbnMvcGx1Z2luLWRvZXNudC1jcmFzaC1zdGRlcnIudHh0VVQFAAPJbONadXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAEmGbTFxqxdH6AAAAaBIAAC4AGAAAAAAAAQAAAKSBqgQKAGh0
dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvcG9wdXBzLXN0ZGVyci50eHRVVAUAAzN141p1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAAANWZtMAAAAAAAAAAAAAAAADwAYAAAAAAAAABAA7UEMBgoA
aHR0cC90ZXN0cy9kb20vVVQFAAMZZ+NadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAD2GbTJLJ
mH7nAAAANAkAAEUAGAAAAAAAAQAAAKSBVQYKAGh0dHAvdGVzdHMvZG9tL3dpbmRvdy1vcGVuLWFi
b3V0LWJsYW5rLWFuZC1hY2Nlc3MtZG9jdW1lbnQtc3RkZXJyLnR4dFVUBQADLXXjWnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAA9hm0ySyZh+5wAAADQJAABPABgAAAAAAAEAAACkgbsHCgBodHRw
L3Rlc3RzL2RvbS93aW5kb3ctb3Blbi1hYm91dC11cHBlcmNhc2UtYmxhbmstYW5kLWFjY2Vzcy1k
b2N1bWVudC1zdGRlcnIudHh0VVQFAAMudeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAD2Gb
TIhUGQjoAAAANAkAAFoAGAAAAAAAAQAAAKSBKwkKAGh0dHAvdGVzdHMvZG9tL3dpbmRvdy1vcGVu
LWFib3V0LXdlYmtpdC1vcmctYW5kLWFjY2Vzcy1kb2N1bWVudC1hc3luYy1kZWxlZ2F0ZXMtc3Rk
ZXJyLnR4dFVUBQADLnXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAA9hm0yIVBkI6AAAADQJ
AABKABgAAAAAAAEAAACkgacKCgBodHRwL3Rlc3RzL2RvbS93aW5kb3ctb3Blbi1hYm91dC13ZWJr
aXQtb3JnLWFuZC1hY2Nlc3MtZG9jdW1lbnQtc3RkZXJyLnR4dFVUBQADLnXjWnV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAAAxZm0wAAAAAAAAAAAAAAAAUABgAAAAAAAAAEADtQRMMCgBodHRwL3Rl
c3RzL2Rvd25sb2FkL1VUBQADGGfjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAA5hm0zXV/2Y
6AAAADQJAAA5ABgAAAAAAAEAAACkgWEMCgBodHRwL3Rlc3RzL2Rvd25sb2FkL2FuY2hvci1sb2Fk
LWFmdGVyLWRvd25sb2FkLXN0ZGVyci50eHRVVAUAAyx141p1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAAAXWZtMAAAAAAAAAAAAAAAAEQAYAAAAAAAAABAA7UG8DQoAaHR0cC90ZXN0cy9tZWRpYS9V
VAUAAy5n41p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAUYZtMAAAAAAAAAAAAAAAAFQAYAAAA
AAAAABAA7UEHDgoAaHR0cC90ZXN0cy9tZWRpYS9obHMvVVQFAAM4deNadXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAFGGbTPebTQHxAAAAzg0AADoAGAAAAAAAAQAAAKSBVg4KAGh0dHAvdGVzdHMv
bWVkaWEvaGxzL3ZpZGVvLWNvbnRyb2xzLWxpdmUtc3RyZWFtLXN0ZGVyci50eHRVVAUAAzd141p1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAUYZtME0+Tt+EAAABwAQAAPAAYAAAAAAABAAAApIG7
DwoAaHR0cC90ZXN0cy9tZWRpYS9obHMvdmlkZW8tZHVyYXRpb24tYWNjZXNzaWJpbGl0eS1zdGRl
cnIudHh0VVQFAAM4deNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAF2GbTK2QNBfxAAAAzg0A
ACYAGAAAAAAAAQAAAKSBEhEKAGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tYXV0aC1zdGRlcnIudHh0
VVQFAAM9deNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAFmGbTH0odxbwAAAAzg0AAFsAGAAA
AAAAAQAAAKSBYxIKAGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tYXV0aC13aXRoLWFsbG93Q3Jvc3NP
cmlnaW5TdWJyZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzLXN0ZGVyci50eHRVVAUAAzx141p1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAwWZtMAAAAAAAAAAAAAAAAEAAYAAAAAAAAABAA7UHo
EwoAaHR0cC90ZXN0cy9taXNjL1VUBQADW2fjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACFh
m0z4I+pt+gAAAGgSAAA6ABgAAAAAAAEAAACkgTIUCgBodHRwL3Rlc3RzL21pc2MvaWZyYW1lLXJl
cGFyZW50aW5nLWlkLWNvbGxpc2lvbi1zdGRlcnIudHh0VVQFAANNdeNadXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAKGGbTGRJAt/nAAAANAkAAC4AGAAAAAAAAQAAAKSBoBUKAGh0dHAvdGVzdHMv
bWlzYy9zbG93LXByZWxvYWQtY2FuY2VsLXN0ZGVyci50eHRVVAUAA1t141p1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAAyYZtMFTU1knoAAAC8AAAAKgAYAAAAAAABAAAApIHvFgoAaHR0cC90ZXN0
cy9taXNjL3hzbHQtYmFkLWltcG9ydC1zdGRlcnIudHh0VVQFAANwdeNadXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAAKFybTAAAAAAAAAAAAAAAABYAGAAAAAAAAAAQAO1BzRcKAGh0dHAvdGVzdHMv
bmF2aWdhdGlvbi9VVAUAA+xs41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAUYZtMY6UeMmkA
AABrAAAALgAYAAAAAAABAAAApIEdGAoAaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2FuY2hvci1nb2Jh
Y2stc3RkZXJyLnR4dFVUBQADN3XjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABZhm0zbCNNC
OwAAAD8AAAA3ABgAAAAAAAEAAACkge4YCgBodHRwL3Rlc3RzL25hdmlnYXRpb24vZmFsbGJhY2st
YW5jaG9yLXJlbG9hZC1zdGRlcnIudHh0VVQFAAM7deNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAGWGbTJ86WoLoAAAANAkAADwAGAAAAAAAAQAAAKSBmhkKAGh0dHAvdGVzdHMvbmF2aWdhdGlv
bi9uZXctd2luZG93LXJlZGlyZWN0LWhpc3Rvcnktc3RkZXJyLnR4dFVUBQADQXXjWnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIABlhm0y+wc7R6AAAADQJAAAyABgAAAAAAAEAAACkgfgaCgBodHRw
L3Rlc3RzL25hdmlnYXRpb24vbm8tcmVmZXJyZXItcmVzZXQtc3RkZXJyLnR4dFVUBQADQXXjWnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABlhm0y+wc7R6AAAADQJAAA5ABgAAAAAAAEAAACkgUwc
CgBodHRwL3Rlc3RzL25hdmlnYXRpb24vbm8tcmVmZXJyZXItdGFyZ2V0LWJsYW5rLXN0ZGVyci50
eHRVVAUAA0F141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAcYZtMvI2r/wIBAAACFwAAOQAY
AAAAAAABAAAApIGnHQoAaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Byb2Nlc3Mtc3dhcC13aW5kb3ct
b3Blbi1zdGRlcnIudHh0VVQFAANHdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAIGGbTBHd
6uHxAAAAzg0AAEIAGAAAAAAAAQAAAKSBHB8KAGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wdXNoc3Rh
dGUtYXQtdW5pcXVlLW9yaWdpbi1kZW5pZWQtc3RkZXJyLnR4dFVUBQADS3XjWnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIACBhm0wtN7tJaQAAAGsAAAAzABgAAAAAAAEAAACkgYkgCgBodHRwL3Rl
c3RzL25hdmlnYXRpb24vcmVkaXJlY3QzMDItZ29iYWNrLXN0ZGVyci50eHRVVAUAA0t141p1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAAoXJtMpOX7RuIAAABwAQAAQgAYAAAAAAABAAAApIFfIQoA
aHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Njcm9sbHN0YXRlLWFmdGVyLWxvY2F0aW9uLXJlbG9hZC1z
dGRlcnIudHh0VVQFAAPsbONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgALmGbTJ2wr7ToAAAA
NAkAADkAGAAAAAAAAQAAAKSBvSIKAGh0dHAvdGVzdHMvbmF2aWdhdGlvbi90YXJnZXQtYmxhbmst
b3BlbmVyLXBvc3Qtc3RkZXJyLnR4dFVUBQADaHXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AC5hm0ydsK+06AAAADQJAAA0ABgAAAAAAAEAAACkgRgkCgBodHRwL3Rlc3RzL25hdmlnYXRpb24v
dGFyZ2V0LWJsYW5rLW9wZW5lci1zdGRlcnIudHh0VVQFAANodeNadXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAAE1mbTAAAAAAAAAAAAAAAABkAGAAAAAAAAAAQAO1BbiUKAGh0dHAvdGVzdHMvbm90
aWZpY2F0aW9ucy9VVAUAAyVn41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAUYZtMX3wzq+cA
AAA0CQAAOAAYAAAAAAABAAAApIHBJQoAaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3dpbmRvdy1z
aG93LW9uLWNsaWNrLXN0ZGVyci50eHRVVAUAAzh141p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AAATWZtMAAAAAAAAAAAAAAAAFwAYAAAAAAAAABAA7UEaJwoAaHR0cC90ZXN0cy9wZXJmb3JtYW5j
ZS9VVAUAAyZn41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAATWZtMPnG/8vwAAADODQAATAAY
AAAAAAABAAAApIFrJwoAaHR0cC90ZXN0cy9wZXJmb3JtYW5jZS9wZXJmb3JtYW5jZS1yZXNvdXJj
ZS10aW1pbmctY2FjaGVkLWVudHJpZXMtc3RkZXJyLnR4dFVUBQADJmfjWnV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAABZhm0wAAAAAAAAAAAAAAAATABgAAAAAAAAAEADtQe0oCgBodHRwL3Rlc3Rz
L3BsdWdpbnMvVVQFAAM7deNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAFmGbTMHJ9Yr8AAAA
zg0AADYAGAAAAAAAAQAAAKSBOikKAGh0dHAvdGVzdHMvcGx1Z2lucy9jcmVhdGUtdjgtc2NyaXB0
LW9iamVjdHMtc3RkZXJyLnR4dFVUBQADO3XjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAABlc
m0wAAAAAAAAAAAAAAAAiABgAAAAAAAAAEADtQaYqCgBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvVVQFAAPRbONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAGVybTKskki39AAAA
zg0AAGAAGAAAAAAAAQAAAKSBAisKAGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3Mtc3RkZXJy
LnR4dFVUBQAD0WzjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAACFhm0wAAAAAAAAAAAAAAAAU
ABgAAAAAAAAAEADtQZksCgBodHRwL3Rlc3RzL3NlY3VyaXR5L1VUBQADTnXjWnV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAABVZm0wAAAAAAAAAAAAAAAAfABgAAAAAAAAAEADtQecsCgBodHRwL3Rl
c3RzL3NlY3VyaXR5L2Fib3V0QmxhbmsvVVQFAAMpZ+NadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAFmGbTCICFef5AAAAaBIAAEYAGAAAAAAAAQAAAKSBQC0KAGh0dHAvdGVzdHMvc2VjdXJpdHkv
YWJvdXRCbGFuay9zZWN1cml0eS1jb250ZXh0LXdpbmRvdy1vcGVuLXN0ZGVyci50eHRVVAUAAzx1
41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAWYZtMh88LG+cAAAA0CQAARgAYAAAAAAABAAAA
pIG5LgoAaHR0cC90ZXN0cy9zZWN1cml0eS9hYm91dEJsYW5rL3dpbmRvdy1vcGVuLXNlbGYtYWJv
dXQtYmxhbmstc3RkZXJyLnR4dFVUBQADPHXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAB1c
m0wAAAAAAAAAAAAAAAAqABgAAAAAAAAAEADtQSAwCgBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS9VVAUAA9ps41p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAdXJtM
AAAAAAAAAAAAAAAALgAYAAAAAAAAABAA7UGEMAoAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kvMS4xL1VUBQAD2mzjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAB1c
m0wLrWaMyQAAAE0BAABMABgAAAAAAAEAAACkgewwCgBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS8xLjEvcGx1Z2ludHlwZXMtaW52YWxpZC1zdGRlcnIudHh0VVQFAAPa
bONadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAFlmbTAAAAAAAAAAAAAAAAEIAGAAAAAAAAAAQ
AO1BOzIKAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2Jsb2NrLWFs
bC1taXhlZC1jb250ZW50L1VUBQADLGfjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABdhm0z5
0jHw6AAAADQJAABqABgAAAAAAAEAAACkgbcyCgBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9ibG9jay1hbGwtbWl4ZWQtY29udGVudC9kYXRhLXVybC1pZnJhbWUtaW4t
bWFpbi1mcmFtZS1zdGRlcnIudHh0VVQFAAM+deNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
F2GbTBu7o0JVAQAA5QkAAGcAGAAAAAAAAQAAAKSBQzQKAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29u
dGVudFNlY3VyaXR5UG9saWN5L2Jsb2NrLWFsbC1taXhlZC1jb250ZW50L2luc2VjdXJlLWNzcy1p
bi1tYWluLWZyYW1lLXN0ZGVyci50eHRVVAUAAz5141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAAXYZtMJGcwS+gAAAA0CQAAagAYAAAAAAABAAAApIE5NgoAaHR0cC90ZXN0cy9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvYmxvY2stYWxsLW1peGVkLWNvbnRlbnQvaW5zZWN1cmUtaWZy
YW1lLWluLW1haW4tZnJhbWUtc3RkZXJyLnR4dFVUBQADPnXjWnV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIABhhm0xv9DAi6AAAADQJAABpABgAAAAAAAEAAACkgcU3CgBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ibG9jay1hbGwtbWl4ZWQtY29udGVudC9pbnNlY3Vy
ZS1pbWFnZS1pbi1tYWluLWZyYW1lLXN0ZGVyci50eHRVVAUAAz9141p1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAAYYZtMb/QwIugAAAA0CQAAagAYAAAAAAABAAAApIFQOQoAaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvYmxvY2stYWxsLW1peGVkLWNvbnRlbnQvaW5z
ZWN1cmUtcGx1Z2luLWluLW1haW4tZnJhbWUtc3RkZXJyLnR4dFVUBQADP3XjWnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIABhhm0xv9DAi6AAAADQJAABqABgAAAAAAAEAAACkgdw6CgBodHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ibG9jay1hbGwtbWl4ZWQtY29udGVu
dC9pbnNlY3VyZS1zY3JpcHQtaW4tbWFpbi1mcmFtZS1zdGRlcnIudHh0VVQFAAM/deNadXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAGGGbTG/0MCLoAAAANAkAAHQAGAAAAAAAAQAAAKSBaDwKAGh0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2Jsb2NrLWFsbC1taXhlZC1j
b250ZW50L2luc2VjdXJlLXhoci1hc3luY2hyb25vdXMtaW4tbWFpbi1mcmFtZS1zdGRlcnIudHh0
VVQFAAM/deNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAGGGbTG/0MCLoAAAANAkAAHMAGAAA
AAAAAQAAAKSB/j0KAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2Js
b2NrLWFsbC1taXhlZC1jb250ZW50L2luc2VjdXJlLXhoci1zeW5jaHJvbm91cy1pbi1tYWluLWZy
YW1lLXN0ZGVyci50eHRVVAUAAz9141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAXYZtMcZxk
a3EAAAB0AAAAXgAYAAAAAAABAAAApIGTPwoAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvY29ubmVjdC1zcmMtc3Rhci1zZWN1cmUtd2Vic29ja2V0LWFsbG93ZWQtc3Rk
ZXJyLnR4dFVUBQADPXXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABVZm0wAH3g9cAAAAHMA
AABXABgAAAAAAAEAAACkgZxACgBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS9jb25uZWN0LXNyYy1zdGFyLXdlYnNvY2tldC1hbGxvd2VkLXN0ZGVyci50eHRVVAUAAypn
41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAXYZtM6+Gt7oUBAACBCgAAaQAYAAAAAAABAAAA
pIGdQQoAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvY3Jvc3Mtb3Jp
Z2luLXBsdWdpbi1kb2N1bWVudC1hbGxvd2VkLWluLWNoaWxkLXdpbmRvdy1zdGRlcnIudHh0VVQF
AAM+deNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAF2GbTJcWOP9xAAAAdAAAAF4AGAAAAAAA
AQAAAKSBxUMKAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2RlZmF1
bHQtc3JjLXN0YXItc2VjdXJlLXdlYnNvY2tldC1hbGxvd2VkLXN0ZGVyci50eHRVVAUAAz5141p1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAZYZtMe4Ge8+cAAAA0CQAAWAAYAAAAAAABAAAApIHO
RAoAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvaW1hZ2UtYmxvY2tl
ZC1pbi1hYm91dC1ibGFuay13aW5kb3ctc3RkZXJyLnR4dFVUBQADQXXjWnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIABxhm0xHxGyT5wAAADQJAABZABgAAAAAAAEAAACkgUdGCgBodHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9wbHVnaW4tYmxvY2tlZC1pbi1hYm91dC1i
bGFuay13aW5kb3ctc3RkZXJyLnR4dFVUBQADR3XjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ACBhm0zVUadx5wAAADQJAABoABgAAAAAAAEAAACkgcFHCgBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nv
bnRlbnRTZWN1cml0eVBvbGljeS9zYW1lLW9yaWdpbi1wbHVnaW4tZG9jdW1lbnQtYmxvY2tlZC1p
bi1jaGlsZC13aW5kb3ctc3RkZXJyLnR4dFVUBQADTHXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAABhZm0wAAAAAAAAAAAAAAABEABgAAAAAAAAAEADtQUpJCgBodHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS91cGdyYWRlLWluc2VjdXJlLXJlcXVlc3RzL1VUBQADL2fj
WnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABhhm0wFnKQY6AAAADQJAABlABgAAAAAAAEAAACk
gchJCgBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91cGdyYWRlLWlu
c2VjdXJlLXJlcXVlc3RzL2h0dHBzLWhlYWRlci1hdXhpbGlhcnktc3RkZXJyLnR4dFVUBQADQHXj
WnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABlhm0zOIsvlCgEAAJwbAABqABgAAAAAAAEAAACk
gU9LCgBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91cGdyYWRlLWlu
c2VjdXJlLXJlcXVlc3RzL3Byb3Blci1vcGVuLXdpbmRvdy11cGdyYWRlcy1zdGRlcnIudHh0VVQF
AANCdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAGmGbTFSSJQfnAAAANAkAAHkAGAAAAAAA
AQAAAKSB/UwKAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VwZ3Jh
ZGUtaW5zZWN1cmUtcmVxdWVzdHMvdXBncmFkZS1pbnNlY3VyZS1hdWRpby12aWRlby1pbi1tYWlu
LWZyYW1lLXN0ZGVyci50eHRVVAUAA0N141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAaYZtM
HwElbucAAAA0CQAAcwAYAAAAAAABAAAApIGXTgoAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kvdXBncmFkZS1pbnNlY3VyZS1yZXF1ZXN0cy91cGdyYWRlLWluc2VjdXJl
LWltYWdlLWluLW1haW4tZnJhbWUtc3RkZXJyLnR4dFVUBQADQ3XjWnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIABphm0wfASVu5wAAADQJAAB2ABgAAAAAAAEAAACkgStQCgBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91cGdyYWRlLWluc2VjdXJlLXJlcXVlc3RzL3Vw
Z3JhZGUtaW5zZWN1cmUtc3luYy14aHItaW4tbWFpbi1mcmFtZS1zdGRlcnIudHh0VVQFAANDdeNa
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAGmGbTB8BJW7nAAAANAkAAHEAGAAAAAAAAQAAAKSB
wlEKAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VwZ3JhZGUtaW5z
ZWN1cmUtcmVxdWVzdHMvdXBncmFkZS1pbnNlY3VyZS14aHItaW4tbWFpbi1mcmFtZS1zdGRlcnIu
dHh0VVQFAANDdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAGmGbTLD6r9uRAAAAnQAAAH4A
GAAAAAAAAQAAAKSBVFMKAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3VwZ3JhZGUtaW5zZWN1cmUtcmVxdWVzdHMvdXBncmFkZS1yZWRpcmVjdC1odHRwcy10by1odHRw
LXNjcmlwdC1pbi1pZnJhbWUtc3RkZXJyLnR4dFVUBQADQ3XjWnV4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAABlZm0wAAAAAAAAAAAAAAAA9ABgAAAAAAAAAEADtQZ1UCgBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdlbnRTaGFkb3dET00vVVQFAAMyZ+NadXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAG1ybTE2f2q7KAAAATQEAAFoAGAAAAAAAAQAAAKSBFFUK
AGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VzZXJBZ2VudFNoYWRv
d0RPTS9hbGxvdy1lbWJlZC1wbHVnaW4tc3RkZXJyLnR4dFVUBQAD1mzjWnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIABphm0yYmg3p8QAAAM4NAABrABgAAAAAAAEAAACkgXJWCgBodHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdlbnRTaGFkb3dET00vZGVmYXVs
dC1zcmMtb2JqZWN0LWRhdGEtdXJsLWFsbG93ZWQtc3RkZXJyLnR4dFVUBQADQ3XjWnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIABphm0xVidEm8gAAAM4NAABrABgAAAAAAAEAAACkgQhYCgBodHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdlbnRTaGFkb3dET00v
ZGVmYXVsdC1zcmMtb2JqZWN0LWRhdGEtdXJsLWJsb2NrZWQtc3RkZXJyLnR4dFVUBQADRHXjWnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABphm0xeEFtj8QAAAM4NAABsABgAAAAAAAEAAACkgZ9Z
CgBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdlbnRTaGFk
b3dET00vZGVmYXVsdC1zcmMtb2JqZWN0LWRhdGEtdXJsLWJsb2NrZWQzLXN0ZGVyci50eHRVVAUA
A0N141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAlYZtMXsnAkOgAAAA0CQAAYwAYAAAAAAAB
AAAApIE2WwoAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvd2luZG93
LW9wZW4tamF2YXNjcmlwdC11cmwtd2l0aC10YXJnZXQtYmxvY2tlZC1zdGRlcnIudHh0VVQFAANW
deNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJmGbTGOqrGyCAAAAqAAAAEAAGAAAAAAAAQAA
AKSBu1wKAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC1hbGxv
d2VkLXN0ZGVyci50eHRVVAUAA1d141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAmYZtMY6qs
bIIAAACoAAAAUgAYAAAAAAABAAAApIG3XQoAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kveHNsLXVuYWZmZWN0ZWQtYnktc3R5bGUtc3JjLTItc3RkZXJyLnR4dFVUBQAD
WHXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAABdZm0wAAAAAAAAAAAAAAAAcABgAAAAAAAAA
EADtQcVeCgBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMvVVQFAAMuZ+NadXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAGmGbTOOGOjDoAAAANAkAAEcAGAAAAAAAAQAAAKSBG18KAGh0dHAvdGVz
dHMvc2VjdXJpdHkvY29va2llcy9jb29raWUtdGhlZnQtd2l0aC1qYXZhc2NyaXB0LWRvYy1zdGRl
cnIudHh0VVQFAANDdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAGmGbTCHd4GX6AAAAaBIA
AEEAGAAAAAAAAQAAAKSBhGAKAGh0dHAvdGVzdHMvc2VjdXJpdHkvY3JlZGVudGlhbHMtZnJvbS1k
aWZmZXJlbnQtZG9tYWlucy1zdGRlcnIudHh0VVQFAANDdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAGmGbTLFsNg8XAQAAnBsAAGIAGAAAAAAAAQAAAKSB+WEKAGh0dHAvdGVzdHMvc2VjdXJp
dHkvY3JlZGVudGlhbHMtaWZyYW1lcy1hbGxvd0Nyb3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tG
b3JDcmVkZW50aWFscy1zdGRlcnIudHh0VVQFAANEdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAG2GbTJvLrE0KAQAAnBsAADIAGAAAAAAAAQAAAKSBrGMKAGh0dHAvdGVzdHMvc2VjdXJpdHkv
Y3JlZGVudGlhbHMtaWZyYW1lcy1zdGRlcnIudHh0VVQFAANFdeNadXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAHWGbTF7r8drNAAAAKgIAAEIAGAAAAAAAAQAAAKSBImUKAGh0dHAvdGVzdHMvc2Vj
dXJpdHkvY3Jvc3Mtb3JpZ2luLWNhY2hlZC1pbWFnZXMtcGFyYWxsZWwtc3RkZXJyLnR4dFVUBQAD
SnXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACFhm0wDNgvJyQAAAE0BAAA6ABgAAAAAAAEA
AACkgWtmCgBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1wbHVnaW4tYWxsb3dlZC1z
dGRlcnIudHh0VVQFAANOdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAImGbTL0c7QXnAAAA
NAkAAEUAGAAAAAAAAQAAAKSBqGcKAGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdp
bmRvdy1vcGVuLWluc2VydC1zY3JpcHQtc3RkZXJyLnR4dFVUBQADT3XjWnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIACJhm0y9HO0F5wAAADQJAABGABgAAAAAAAEAAACkgQ5pCgBodHRwL3Rlc3Rz
L3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13aW5kb3ctb3Blbi1qYXZhc2NyaXB0LXVybC1zdGRlcnIu
dHh0VVQFAANPdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgACAAAAImGbTHZvmFJFAAAARQAAAE8A
GAAAAAAAAQAAAKSBdWoKAGh0dHAvdGVzdHMvc2VjdXJpdHkvZnJhbWUtbG9hZGluZy12aWEtZG9j
dW1lbnQtd3JpdGUtYXN5bmMtZGVsZWdhdGVzLXN0ZGVyci50eHRVVAUAA1B141p1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAIAAAAiYZtMbrPyc0YAAABGAAAAPwAYAAAAAAABAAAApIFDawoAaHR0cC90
ZXN0cy9zZWN1cml0eS9mcmFtZS1sb2FkaW5nLXZpYS1kb2N1bWVudC13cml0ZS1zdGRlcnIudHh0
VVQFAANQdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAGFmbTAAAAAAAAAAAAAAAACQAGAAA
AAAAAAAQAO1BAmwKAGh0dHAvdGVzdHMvc2VjdXJpdHkvZnJhbWVOYXZpZ2F0aW9uL1VUBQADL2fj
WnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABphm0zG86Ta+QAAAGgSAABCABgAAAAAAAEAAACk
gWBsCgBodHRwL3Rlc3RzL3NlY3VyaXR5L2ZyYW1lTmF2aWdhdGlvbi9jcm9zcy1vcmlnaW4tb3Bl
bmVyLXN0ZGVyci50eHRVVAUAA0R141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAaYZtMPjM7
i+cAAAA0CQAAWAAYAAAAAAABAAAApIHVbQoAaHR0cC90ZXN0cy9zZWN1cml0eS9mcmFtZU5hdmln
YXRpb24vaW5hY3RpdmUtZnVuY3Rpb24taW4tcG9wdXAtbmF2aWdhdGUtY2hpbGQtc3RkZXJyLnR4
dFVUBQADRHXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABphm0xWEhx7CQEAAJwbAAA5ABgA
AAAAAAEAAACkgU5vCgBodHRwL3Rlc3RzL3NlY3VyaXR5L2ZyYW1lTmF2aWdhdGlvbi9ub3Qtb3Bl
bmVyLXN0ZGVyci50eHRVVAUAA0R141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAbYZtMxV5J
JugAAAA0CQAANQAYAAAAAAABAAAApIHKcAoAaHR0cC90ZXN0cy9zZWN1cml0eS9mcmFtZU5hdmln
YXRpb24vb3BlbmVyLXN0ZGVyci50eHRVVAUAA0Z141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAAiYZtMDeKfwegAAAA0CQAAOAAYAAAAAAABAAAApIEhcgoAaHR0cC90ZXN0cy9zZWN1cml0eS9o
aXN0b3J5LXVzZXJuYW1lLXBhc3N3b3JkLXN0ZGVyci50eHRVVAUAA1B141p1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAAjYZtMRnGfqOgAAAA0CQAAMwAYAAAAAAABAAAApIF7cwoAaHR0cC90ZXN0
cy9zZWN1cml0eS9pbnNlY3VyZS1nZW9sb2NhdGlvbi1zdGRlcnIudHh0VVQFAANRdeNadXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAGlmbTAAAAAAAAAAAAAAAACIAGAAAAAAAAAAQAO1B0HQKAGh0
dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9VVAUAAzNn41p1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAAcYZtMWdjNu+gAAAA0CQAAPgAYAAAAAAABAAAApIEsdQoAaHR0cC90ZXN0cy9z
ZWN1cml0eS9pc29sYXRlZFdvcmxkL3VzZXJHZXN0dXJlRXZlbnRzLXN0ZGVyci50eHRVVAUAA0d1
41p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAYWZtMAAAAAAAAAAAAAAAAIgAYAAAAAAAAABAA
7UGMdgoAaHR0cC90ZXN0cy9zZWN1cml0eS9qYXZhc2NyaXB0VVJML1VUBQADMGfjWnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIABthm0yJJyS85wAAADQJAABYABgAAAAAAAEAAACkgeh2CgBodHRw
L3Rlc3RzL3NlY3VyaXR5L2phdmFzY3JpcHRVUkwveHNzLUFMTE9XRUQtZnJvbS1qYXZhc2NyaXB0
LXVybC13aW5kb3ctb3Blbi1zdGRlcnIudHh0VVQFAANFdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAAG2GbTAAAAAAAAAAAAAAAAB0AGAAAAAAAAAAQAO1BYXgKAGh0dHAvdGVzdHMvc2VjdXJp
dHkvbGlzdGVuZXIvVVQFAANFdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAG2GbTLkJKaL9
AAAAzg0AAFEAGAAAAAAAAQAAAKSBuHgKAGh0dHAvdGVzdHMvc2VjdXJpdHkvbGlzdGVuZXIveHNz
LUpTVGFyZ2V0Tm9kZS1vbmNsaWNrLWFkZEV2ZW50TGlzdGVuZXItc3RkZXJyLnR4dFVUBQADRXXj
WnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAABthm0wAAAAAAAAAAAAAAAAhABgAAAAAAAAAEADt
QUB6CgBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9VVAUAA0Z141p1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAbYZtMalrdyOgAAAA0CQAATAAYAAAAAAABAAAApIGbegoAaHR0cC90
ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvYWJvdXQtYmxhbmstaWZyYW1lLWluLW1haW4tZnJh
bWUtc3RkZXJyLnR4dFVUBQADRXXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABthm0xqWt3I
6AAAADQJAABJABgAAAAAAAEAAACkgQl8CgBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVu
dC9kYXRhLXVybC1pZnJhbWUtaW4tbWFpbi1mcmFtZS1zdGRlcnIudHh0VVQFAANFdeNadXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAG2GbTCg8baXJAAAATQEAAEwAGAAAAAAAAQAAAKSBdH0KAGh0
dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2ltcG9ydC1pbnNlY3VyZS1zY3JpcHQtaW4t
aWZyYW1lLXN0ZGVyci50eHRVVAUAA0Z141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAdYZtM
cgMikQIBAAACFwAAewAYAAAAAAABAAAApIHDfgoAaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENv
bnRlbnQvaW5zZWN1cmUtYmFzaWMtYXV0aC1pbWFnZS1hbGxvd0Nyb3NzT3JpZ2luU3VicmVzb3Vy
Y2VzVG9Bc2tGb3JDcmVkZW50aWFscy5odHRwcy1zdGRlcnIudHh0VVQFAANJdeNadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAHWGbTBb1V47xAAAAzg0AAEsAGAAAAAAAAQAAAKSBeoAKAGh0dHAv
dGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLWJhc2ljLWF1dGgtaW1hZ2UuaHR0
cHMtc3RkZXJyLnR4dFVUBQADSnXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACBhm0wm6jrk
6AAAADQJAABGABgAAAAAAAEAAACkgfCBCgBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVu
dC9pbnNlY3VyZS1jc3MtaW4tbWFpbi1mcmFtZS1zdGRlcnIudHh0VVQFAANLdeNadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAIGGbTCbqOuToAAAANAkAAFcAGAAAAAAAAQAAAKSBWIMKAGh0dHAv
dGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLWV4ZWN1dGFibGUtY3NzLXdpdGgt
c2VjdXJlLWNvb2tpZXMtc3RkZXJyLnR4dFVUBQADS3XjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIACBhm0wm6jrk6AAAADQJAABHABgAAAAAAAEAAACkgdGECgBodHRwL3Rlc3RzL3NlY3VyaXR5
L21peGVkQ29udGVudC9pbnNlY3VyZS1mb3JtLWluLW1haW4tZnJhbWUtc3RkZXJyLnR4dFVUBQAD
S3XjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACBhm0wDomSH6AAAADQJAABJABgAAAAAAAEA
AACkgTqGCgBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1pZnJhbWUt
aW4tbWFpbi1mcmFtZS1zdGRlcnIudHh0VVQFAANMdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAIGGbTAOiZIfoAAAANAkAAEgAGAAAAAAAAQAAAKSBpYcKAGh0dHAvdGVzdHMvc2VjdXJpdHkv
bWl4ZWRDb250ZW50L2luc2VjdXJlLWltYWdlLWluLW1haW4tZnJhbWUtc3RkZXJyLnR4dFVUBQAD
THXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACFhm0zAgBP0DgEAAAIXAACPABgAAAAAAAEA
AACkgQ+JCgBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1pbWFnZS1y
ZWRpcmVjdHMtdG8tYmFzaWMtYXV0aC1zZWN1cmUtaW1hZ2UtYWxsb3dDcm9zc09yaWdpblN1YnJl
c291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMtc3RkZXJyLnR4dFVUBQADTXXjWnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIACFhm0ywtuJTHgEAADYgAABfABgAAAAAAAEAAACkgeaKCgBodHRwL3Rl
c3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1pbWFnZS1yZWRpcmVjdHMtdG8tYmFz
aWMtYXV0aC1zZWN1cmUtaW1hZ2Utc3RkZXJyLnR4dFVUBQADTnXjWnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIACFhm0yVhGVV5wAAADQJAABSABgAAAAAAAEAAACkgZ2MCgBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1pbWFnZS13aXRoLXNlY3VyZWNvb2tpZS1ibG9j
ay1zdGRlcnIudHh0VVQFAANOdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAIWGbTJWEZVXn
AAAANAkAAEwAGAAAAAAAAQAAAKSBEI4KAGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50
L2luc2VjdXJlLWltYWdlLXdpdGgtc2VjdXJlY29va2llLXN0ZGVyci50eHRVVAUAA05141p1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAAiYZtM3hdlPOcAAAA0CQAAYAAYAAAAAAABAAAApIF9jwoA
aHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtc2NyaXB0LWluLWRhdGEt
aWZyYW1lLWluLW1haW4tZnJhbWUtYmxvY2tlZC1zdGRlcnIudHh0VVQFAANPdeNadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAImGbTN4XZTznAAAANAkAAGEAGAAAAAAAAQAAAKSB/pAKAGh0dHAv
dGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXNjcmlwdC1yZWRpcmVjdHMtdG8t
YmFzaWMtYXV0aC1zZWN1cmUtc2NyaXB0LXN0ZGVyci50eHRVVAUAA09141p1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAAiYZtM3hdlPOcAAAA0CQAAaQAYAAAAAAABAAAApIGAkgoAaHR0cC90ZXN0
cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtc3R5bGVzaGVldC1yZWRpcmVjdHMtdG8t
YmFzaWMtYXV0aC1zZWN1cmUtc3R5bGVzaGVldC1zdGRlcnIudHh0VVQFAANPdeNadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAI2GbTN4XZTznAAAANAkAAEYAGAAAAAAAAQAAAKSBCpQKAGh0dHAv
dGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXhoci1pbi1tYWluLWZyYW1lLXN0
ZGVyci50eHRVVAUAA1F141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAkYZtMJXoXkecAAAA0
CQAASwAYAAAAAAABAAAApIFxlQoAaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5z
ZWN1cmUteGhyLXN5bmMtaW4tbWFpbi1mcmFtZS1zdGRlcnIudHh0VVQFAANTdeNadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAJGGbTLNcFkPnAAAANAkAAE0AGAAAAAAAAQAAAKSB3ZYKAGh0dHAv
dGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2phdmFzY3JpcHQtdXJsLWZvcm0taW4tbWFpbi1m
cmFtZS1zdGRlcnIudHh0VVQFAANTdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJGGbTLNc
FkPnAAAANAkAAFcAGAAAAAAAAQAAAKSBS5gKAGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250
ZW50L3JlZGlyZWN0LWh0dHAtdG8taHR0cHMtaWZyYW1lLWluLW1haW4tZnJhbWUtc3RkZXJyLnR4
dFVUBQADU3XjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACRhm0yzXBZD5wAAADQJAABXABgA
AAAAAAEAAACkgcOZCgBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZWRpcmVjdC1o
dHRwcy10by1odHRwLWlmcmFtZS1pbi1tYWluLWZyYW1lLXN0ZGVyci50eHRVVAUAA1N141p1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAAkYZtMs1wWQ+cAAAA0CQAAXQAYAAAAAAABAAAApIE7mwoA
aHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cHMtdG8taHR0cC1p
bWFnZS1zZWN1cmUtY29va2llcy1ibG9jay1zdGRlcnIudHh0VVQFAANUdeNadXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAJGGbTNk0gnnnAAAANAkAAFcAGAAAAAAAAQAAAKSBuZwKAGh0dHAvdGVz
dHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3JlZGlyZWN0LWh0dHBzLXRvLWh0dHAtaW1hZ2Utc2Vj
dXJlLWNvb2tpZXMtc3RkZXJyLnR4dFVUBQADVHXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ACVhm0x6kwiz8AAAAM4NAAChABgAAAAAAAEAAACkgTGeCgBodHRwL3Rlc3RzL3NlY3VyaXR5L21p
eGVkQ29udGVudC9zZWN1cmUtcmVkaXJlY3QtdG8taW5zZWN1cmUtcmVkaXJlY3QtdG8tYmFzaWMt
YXV0aC1zZWN1cmUtaW1hZ2UtYWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3Jl
ZGVudGlhbHMuaHR0cHMtc3RkZXJyLnR4dFVUBQADVXXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIACVhm0zTQZVn+QAAAGgSAABxABgAAAAAAAEAAACkgfyfCgBodHRwL3Rlc3RzL3NlY3VyaXR5
L21peGVkQ29udGVudC9zZWN1cmUtcmVkaXJlY3QtdG8taW5zZWN1cmUtcmVkaXJlY3QtdG8tYmFz
aWMtYXV0aC1zZWN1cmUtaW1hZ2UuaHR0cHMtc3RkZXJyLnR4dFVUBQADVnXjWnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIACZhm0zD4RdI8AAAAM4NAAChABgAAAAAAAEAAACkgaChCgBodHRwL3Rl
c3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9zZWN1cmUtcmVkaXJlY3QtdG8tc2VjdXJlLXJlZGly
ZWN0LXRvLWJhc2ljLWF1dGgtaW5zZWN1cmUtaW1hZ2UtYWxsb3dDcm9zc09yaWdpblN1YnJlc291
cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMuaHR0cHMtc3RkZXJyLnR4dFVUBQADV3XjWnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIACZhm0wFa0HC8QAAAM4NAABxABgAAAAAAAEAAACkgWujCgBodHRw
L3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9zZWN1cmUtcmVkaXJlY3QtdG8tc2VjdXJlLXJl
ZGlyZWN0LXRvLWJhc2ljLWF1dGgtaW5zZWN1cmUtaW1hZ2UuaHR0cHMtc3RkZXJyLnR4dFVUBQAD
WHXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACdhm0wO8suH8QAAAM4NAACfABgAAAAAAAEA
AACkgQelCgBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9zZWN1cmUtcmVkaXJlY3Qt
dG8tc2VjdXJlLXJlZGlyZWN0LXRvLWJhc2ljLWF1dGgtc2VjdXJlLWltYWdlLWFsbG93Q3Jvc3NP
cmlnaW5TdWJyZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzLmh0dHBzLXN0ZGVyci50eHRVVAUA
A1l141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAnYZtMzvaUJfwAAADODQAAbwAYAAAAAAAB
AAAApIHRpgoAaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvc2VjdXJlLXJlZGlyZWN0
LXRvLXNlY3VyZS1yZWRpcmVjdC10by1iYXNpYy1hdXRoLXNlY3VyZS1pbWFnZS5odHRwcy1zdGRl
cnIudHh0VVQFAANadeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAGVmbTAAAAAAAAAAAAAAA
ACsAGAAAAAAAAAAQAO1BdqgKAGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3dlYnNv
Y2tldC9VVAUAAzFn41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAbYZtMW86SUugAAAA0CQAA
VgAYAAAAAAABAAAApIHbqAoAaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvd2Vic29j
a2V0L2luc2VjdXJlLXdlYnNvY2tldC1pbi1tYWluLWZyYW1lLXN0ZGVyci50eHRVVAUAA0Z141p1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAjYZtMm8SeE+cAAAA0CQAATgAYAAAAAAABAAAApIFT
qgoAaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZGNvbnRlbnQtZ2VvbG9jYXRpb24tYmxvY2staW5z
ZWN1cmUtY29udGVudC1zdGRlcnIudHh0VVQFAANSdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAI2GbTJvEnhPnAAAANAkAADcAGAAAAAAAAQAAAKSBwqsKAGh0dHAvdGVzdHMvc2VjdXJpdHkv
bWl4ZWRjb250ZW50LWdlb2xvY2F0aW9uLXN0ZGVyci50eHRVVAUAA1J141p1eAsAAQT1AQAABBQA
AABQSwECHgMKAAAAAAAZWZtMAAAAAAAAAAAAAAAAIQAYAAAAAAAAABAA7UEarQoAaHR0cC90ZXN0
cy9zZWN1cml0eS9vcmlnaW5IZWFkZXIvVVQFAAMyZ+NadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAG2GbTLsRPFXoAAAANAkAAEMAGAAAAAAAAQAAAKSBda0KAGh0dHAvdGVzdHMvc2VjdXJpdHkv
b3JpZ2luSGVhZGVyL29yaWdpbi1oZWFkZXItZm9yLWVtcHR5LXN0ZGVyci50eHRVVAUAA0Z141p1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAlYZtM8awKKecAAAA0CQAATAAYAAAAAAABAAAApIHa
rgoAaHR0cC90ZXN0cy9zZWN1cml0eS9wb3B1cC1hbGxvd2VkLWJ5LXNhbmRib3gtaXMtc2FuZGJv
eGVkLWNvbnRyb2wtc3RkZXJyLnR4dFVUBQADVXXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ACVhm0zxrAop5wAAADQJAABEABgAAAAAAAEAAACkgUewCgBodHRwL3Rlc3RzL3NlY3VyaXR5L3Bv
cHVwLWFsbG93ZWQtYnktc2FuZGJveC1pcy1zYW5kYm94ZWQtc3RkZXJyLnR4dFVUBQADVXXjWnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACVhm0zxrAop5wAAADQJAABEABgAAAAAAAEAAACkgayx
CgBodHRwL3Rlc3RzL3NlY3VyaXR5L3BvcHVwLWFsbG93ZWQtYnktc2FuZGJveC13aGVuLWFsbG93
ZWQtc3RkZXJyLnR4dFVUBQADVXXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAACBcm0wAAAAA
AAAAAAAAAAAgABgAAAAAAAAAEADtQRGzCgBodHRwL3Rlc3RzL3NlY3VyaXR5L3Bvc3RNZXNzYWdl
L1VUBQAD3GzjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACBcm0y+UorJ8AAAAM4NAABFABgA
AAAAAAEAAACkgWuzCgBodHRwL3Rlc3RzL3NlY3VyaXR5L3Bvc3RNZXNzYWdlL2RhdGEtdXJsLXNl
bmRzLW51bGwtb3JpZ2luLXN0ZGVyci50eHRVVAUAA9xs41p1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAAlYZtM7zd4jPoAAABoEgAAQQAYAAAAAAABAAAApIHatAoAaHR0cC90ZXN0cy9zZWN1cml0
eS9yZWZlcnJlci1wb2xpY3ktbmVzdGVkLXdpbmRvdy1vcGVuLXN0ZGVyci50eHRVVAUAA1Z141p1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAlYZtM+FpaBPAAAADODQAAPAAYAAAAAAABAAAApIFP
tgoAaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QtbGluay1zdGRl
cnIudHh0VVQFAANWdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJWGbTOsxi1/nAAAANAkA
AEMAGAAAAAAAAQAAAKSBtbcKAGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXN1
YmZyYW1lLXdpbmRvdy1vcGVuLXN0ZGVyci50eHRVVAUAA1Z141p1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAAmYZtMoKKLNukAAAA0CQAAOgAYAAAAAAABAAAApIEZuQoAaHR0cC90ZXN0cy9zZWN1
cml0eS9yZWZlcnJlci1wb2xpY3ktd2luZG93LW9wZW4tc3RkZXJyLnR4dFVUBQADV3XjWnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIACZhm0zrMYtf5wAAADQJAABDABgAAAAAAAEAAACkgXa6CgBo
dHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS13aW5kb3ctb3Blbi1zdWJmcmFtZS1z
dGRlcnIudHh0VVQFAANXdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAKGGbTBBc+fLnAAAA
NAkAADkAGAAAAAAAAQAAAKSB2rsKAGh0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LWV2ZW50cy1j
bGVhci1kb21haW4tc3RkZXJyLnR4dFVUBQADXHXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AChhm0wQXPny5wAAADQJAAA3ABgAAAAAAAEAAACkgTS9CgBodHRwL3Rlc3RzL3NlY3VyaXR5L3dp
bmRvdy1ldmVudHMtY2xlYXItcG9ydC1zdGRlcnIudHh0VVQFAANcdeNadXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAKWGbTBBc+fLnAAAANAkAADEAGAAAAAAAAQAAAKSBjL4KAGh0dHAvdGVzdHMv
c2VjdXJpdHkvd2luZG93LWV2ZW50cy1wYXNzLXN0ZGVyci50eHRVVAUAA11141p1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAApYZtMW8/5m+gAAAA0CQAAUgAYAAAAAAABAAAApIHevwoAaHR0cC90
ZXN0cy9zZWN1cml0eS93aW5kb3ctbmFtZS1hZnRlci1jcm9zcy1vcmlnaW4tYXV4LWZyYW1lLW5h
dmlnYXRpb24tc3RkZXJyLnR4dFVUBQADXXXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAClh
m0xbz/mb6AAAADQJAABRABgAAAAAAAEAAACkgVLBCgBodHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRv
dy1uYW1lLWFmdGVyLXNhbWUtb3JpZ2luLWF1eC1mcmFtZS1uYXZpZ2F0aW9uLXN0ZGVyci50eHRV
VAUAA11141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAApYZtMW8/5m+gAAAA0CQAAMwAYAAAA
AAABAAAApIHFwgoAaHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctbmFtZWQtdmFsdWVPZi1zdGRl
cnIudHh0VVQFAANddeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAKWGbTFvP+ZvoAAAANAkA
AFkAGAAAAAAAAQAAAKSBGsQKAGh0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LW9wZW5lZC1mcm9t
LXNhbmRib3hlZC1pZnJhbWUtc2hvdWxkLWluaGVyaXQtc2FuZGJveC1zdGRlcnIudHh0VVQFAANe
deNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAKmGbTHo0bcjoAAAANAkAAFsAGAAAAAAAAQAA
AKSBlcUKAGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1jbGljay1hbmQtZm9ybS1zdWJt
aXNzaW9uLWZyb20taW5hY3RpdmUtZG9td2luZG93LXN0ZGVyci50eHRVVAUAA19141p1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAArYZtMobhTdecAAAA0CQAATAAYAAAAAAABAAAApIESxwoAaHR0
cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXNjcmlwdC1pbmplY3QtaW50by1pbmFjdGl2ZS13
aW5kb3ctc3RkZXJyLnR4dFVUBQADYnXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACthm0w3
nlKn5wAAADQJAABNABgAAAAAAAEAAACkgX/ICgBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5J
RUQtc2NyaXB0LWluamVjdC1pbnRvLWluYWN0aXZlLXdpbmRvdzItc3RkZXJyLnR4dFVUBQADYXXj
WnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACthm0x8DVLO6QAAADQJAABNABgAAAAAAAEAAACk
ge3JCgBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtc2NyaXB0LWluamVjdC1pbnRvLWlu
YWN0aXZlLXdpbmRvdzMtc3RkZXJyLnR4dFVUBQADYnXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIACthm0yhuFN15wAAADQJAABSABgAAAAAAAEAAACkgV3LCgBodHRwL3Rlc3RzL3NlY3VyaXR5
L3hzcy1ERU5JRUQtc3luY2hyb25vdXMtZnJhbWUtbG9hZC1pbi1qYXZhc2NyaXB0LXVybC1zdGRl
cnIudHh0VVQFAANideNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgALGGbTIlFy+VeAQAALwsA
AEUAGAAAAAAAAQAAAKSB0MwKAGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC14c2wtZG9j
dW1lbnQtc2VjdXJpdHlPcmlnaW4tc3RkZXJyLnR4dFVUBQADY3XjWnV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAAC5cm0wAAAAAAAAAAAAAAAAfABgAAAAAAAAAEADtQa3OCgBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L3hzc0F1ZGl0b3IvVVQFAAP4bONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAImGb
TO+DKqboAAAANAkAAD8AGAAAAAAAAQAAAKSBBs8KAGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVk
aXRvci9saW5rLW9wZW5zLW5ldy13aW5kb3ctc3RkZXJyLnR4dFVUBQADUHXjWnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIACNhm0xvk/FdygAAAE0BAAA7ABgAAAAAAAEAAACkgWfQCgBodHRwL3Rl
c3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Ivb2JqZWN0LXNyYy1pbmplY3Qtc3RkZXJyLnR4dFVUBQAD
UnXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACphm0zV/+fA5wAAADQJAABTABgAAAAAAAEA
AACkgabRCgBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Ivd2luZG93LW9wZW4td2l0aG91
dC11cmwtc2hvdWxkLW5vdC1hc3NlcnQtc3RkZXJyLnR4dFVUBQADYHXjWnV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAABpZm0wAAAAAAAAAAAAAAAAPABgAAAAAAAAAEADtQRrTCgBodHRwL3Rlc3Rz
L3NzbC9VVAUAAzNn41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAaWZtM33x6TvkAAABoEgAA
LgAYAAAAAAABAAAApIFj0woAaHR0cC90ZXN0cy9zc2wvaWZyYW1lLXVwZ3JhZGUuaHR0cHMtc3Rk
ZXJyLnR4dFVUBQADM2fjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAABxZm0wAAAAAAAAAAAAA
AAATABgAAAAAAAAAEADtQcTUCgBodHRwL3Rlc3RzL3dvcmtlcnMvVVQFAAM3Z+NadXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAAJFmbTAAAAAAAAAAAAAAAABsAGAAAAAAAAAAQAO1BEdUKAGh0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL1VUBQADQ2fjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ACBhm0zFl8OQ5wAAADQJAABBABgAAAAAAAEAAACkgWbVCgBodHRwL3Rlc3RzL3dvcmtlcnMvc2Vy
dmljZS9DbGllbnQtcHJvcGVydGllcy1hdXhpbGlhcnktc3RkZXJyLnR4dFVUBQADTHXjWnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIACJhm0w9apxI5wAAADQJAABbABgAAAAAAAEAAACkgcjWCgBo
dHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jbGllbnQtYWRkZWQtdG8tY2xpZW50cy13aGVuLXJl
c3RvcmVkLWZyb20tcGFnZS1jYWNoZS1zdGRlcnIudHh0VVQFAANQdeNadXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAImGbTI2U7oznAAAANAkAAFUAGAAAAAAAAQAAAKSBRNgKAGh0dHAvdGVzdHMv
d29ya2Vycy9zZXJ2aWNlL2NsaWVudC1yZW1vdmVkLWZyb20tY2xpZW50cy13aGlsZS1pbi1wYWdl
LWNhY2hlLXN0ZGVyci50eHRVVAUAA1B141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAjYZtM
xgfu5ecAAAA0CQAASgAYAAAAAAABAAAApIG62QoAaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uv
cmVnaXN0cmF0aW9uLXRhc2stcXVldWUtc2NoZWR1bGluZy0xLXN0ZGVyci50eHRVVAUAA1J141p1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABMWZtMAAAAAAAAAAAAAAAAGgAYAAAAAAAAABAA7UEl
2woAaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9VVAUAA5Bn41p1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAAnYZtMnWBgA+cAAAA0CQAAMQAYAAAAAAABAAAApIF52woAaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9jbG9zZS13aW5kb3ctc3RkZXJyLnR4dFVUBQADWXXjWnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIACdhm0wtnhLH5wAAADQJAAA/ABgAAAAAAAEAAACkgcvcCgBodHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L2Nyb3NzLW9yaWdpbi1hdXRob3JpemF0aW9uLXN0ZGVyci50eHRVVAUA
A1p141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAnYZtMLZ4Sx+cAAAA0CQAAQgAYAAAAAAAB
AAAApIEr3goAaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9jcm9zcy1vcmlnaW4tbm8tYXV0aG9y
aXphdGlvbi1zdGRlcnIudHh0VVQFAANadeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAYmGb
TFM2AinUAAAAdwEAAEYAGAAAAAAAAQAAAKSBjt8KAGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
cmVkaXJlY3QtY3Jvc3Mtb3JpZ2luLXN5bmMtZG91YmxlLXN0ZGVyci50eHRVVAUAA8d141p1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACABjYZtMkPo2nekAAAA0CQAANwAYAAAAAAABAAAApIHi4AoA
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXF1ZXN0LWZyb20tcG9wdXAtc3RkZXJyLnR4dFVU
BQADynXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAACRZm0wAAAAAAAAAAAAAAAAJABgAAAAA
AAAAEADtQTziCgBodHRwL3dwdC9VVAUAA0Rn41p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAk
WZtMAAAAAAAAAAAAAAAAEAAYAAAAAAAAABAA7UF/4goAaHR0cC93cHQvYmVhY29uL1VUBQADRGfj
WnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAACRZm0wAAAAAAAAAAAAAAAAVABgAAAAAAAAAEADt
QcniCgBodHRwL3dwdC9iZWFjb24vY29ycy9VVAUAA0Rn41p1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAAqYZtM8oeopFIBAACDAwAANQAYAAAAAAABAAAApIEY4woAaHR0cC93cHQvYmVhY29uL2Nv
cnMvY29ycy1yZWRpcmVjdC1mYWlsdXJlLXN0ZGVyci50eHRVVAUAA2B141p1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACADNYJtMWwRYDqIFAABNEAAACgAYAAAAAAABAAAApIHZ5AoAaHR0cGQuY29u
ZlVUBQADsXTjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAADJZm0wAAAAAAAAAAAAAAAAJABgA
AAAAAAAAEADtQb/qCgBpbXBvcnRlZC9VVAUAA19n41p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AABsXJtMAAAAAAAAAAAAAAAADwAYAAAAAAAAABAA7UEC6woAaW1wb3J0ZWQvYmxpbmsvVVQFAANs
beNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAJ1mbTAAAAAAAAAAAAAAAABQAGAAAAAAAAAAQ
AO1BS+sKAGltcG9ydGVkL2JsaW5rL2Zhc3QvVVQFAANJZ+NadXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAAJlmbTAAAAAAAAAAAAAAAABgAGAAAAAAAAAAQAO1BmesKAGltcG9ydGVkL2JsaW5rL2Zh
c3QvZG9tL1VUBQADSGfjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAACZZm0wAAAAAAAAAAAAA
AAAfABgAAAAAAAAAEADtQevrCgBpbXBvcnRlZC9ibGluay9mYXN0L2RvbS9XaW5kb3cvVVQFAANI
Z+NadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAKGGbTLkGCHXnAAAANAkAAEMAGAAAAAAAAQAA
AKSBROwKAGltcG9ydGVkL2JsaW5rL2Zhc3QvZG9tL1dpbmRvdy9vcGVuLXdpbmRvdy1mZWF0dXJl
cy1mdXp6LXN0ZGVyci50eHRVVAUAA1x141p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAnWZtM
AAAAAAAAAAAAAAAAGwAYAAAAAAAAABAA7UGo7QoAaW1wb3J0ZWQvYmxpbmsvZmFzdC9ldmVudHMv
VVQFAANJZ+NadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAKWGbTNtDg8fnAAAANAkAAD0AGAAA
AAAAAQAAAKSB/e0KAGltcG9ydGVkL2JsaW5rL2Zhc3QvZXZlbnRzL3BvcHVwLWZvcndhcmRlZC1n
ZXN0dXJlLXN0ZGVyci50eHRVVAUAA11141p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAnWZtM
AAAAAAAAAAAAAAAAGgAYAAAAAAAAABAA7UFb7woAaW1wb3J0ZWQvYmxpbmsvZmFzdC9mb3Jtcy9V
VAUAA0ln41p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAnWZtMAAAAAAAAAAAAAAAAIQAYAAAA
AAAAABAA7UGv7woAaW1wb3J0ZWQvYmxpbmsvZmFzdC9mb3Jtcy9idXR0b24vVVQFAANJZ+NadXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAKWGbTMch79s3AAAAQAAAAEcAGAAAAAAAAQAAAKSBCvAK
AGltcG9ydGVkL2JsaW5rL2Zhc3QvZm9ybXMvYnV0dG9uL2J1dHRvbi1yZXNldC1mb2N1cy1ieS1t
b3VzZS1zdGRlcnIudHh0VVQFAANddeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAJ1mbTAAA
AAAAAAAAAAAAACAAGAAAAAAAAAAQAO1BwvAKAGltcG9ydGVkL2JsaW5rL2Zhc3QvZm9ybXMvcmFu
Z2UvVVQFAANJZ+NadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAKWGbTMch79s3AAAAQAAAAD8A
GAAAAAAAAQAAAKSBHPEKAGltcG9ydGVkL2JsaW5rL2Zhc3QvZm9ybXMvcmFuZ2UvcmFuZ2UtZm9j
dXMtYnktbW91c2Utc3RkZXJyLnR4dFVUBQADXXXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
ACdZm0wAAAAAAAAAAAAAAAAhABgAAAAAAAAAEADtQczxCgBpbXBvcnRlZC9ibGluay9mYXN0L2Zv
cm1zL3N1Ym1pdC9VVAUAA0ln41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAApYZtMxyHv2zcA
AABAAAAAQQAYAAAAAAABAAAApIEn8goAaW1wb3J0ZWQvYmxpbmsvZmFzdC9mb3Jtcy9zdWJtaXQv
c3VibWl0LWZvY3VzLWJ5LW1vdXNlLXN0ZGVyci50eHRVVAUAA11141p1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAABsXJtMAAAAAAAAAAAAAAAAFwAYAAAAAAAAABAA7UHZ8goAaW1wb3J0ZWQvYmxp
bmsvc3RvcmFnZS9VVAUAA2xt41p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABsXJtMAAAAAAAA
AAAAAAAAIQAYAAAAAAAAABAA7UEq8woAaW1wb3J0ZWQvYmxpbmsvc3RvcmFnZS9pbmRleGVkZGIv
VVQFAANsbeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAbFybTPLXPVp+AAAAhwAAAEQAGAAA
AAAAAQAAAKSBhfMKAGltcG9ydGVkL2JsaW5rL3N0b3JhZ2UvaW5kZXhlZGRiL2Jsb2ItdmFsaWQt
YmVmb3JlLWNvbW1pdC1hY3R1YWwudHh0VVQFAANsbeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAbFybTMR77q8PAgAASwQAAEIAGAAAAAAAAQAAAKSBgfQKAGltcG9ydGVkL2JsaW5rL3N0b3Jh
Z2UvaW5kZXhlZGRiL2Jsb2ItdmFsaWQtYmVmb3JlLWNvbW1pdC1kaWZmLnR4dFVUBQADbG3jWnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGxcm0ygjVmxQgEAAIgCAABGABgAAAAAAAEAAACkgQz3
CgBpbXBvcnRlZC9ibGluay9zdG9yYWdlL2luZGV4ZWRkYi9ibG9iLXZhbGlkLWJlZm9yZS1jb21t
aXQtZXhwZWN0ZWQudHh0VVQFAANsbeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAbFybTPbg
n9NSCQAA6SYAAEoAGAAAAAAAAQAAAKSBzvgKAGltcG9ydGVkL2JsaW5rL3N0b3JhZ2UvaW5kZXhl
ZGRiL2Jsb2ItdmFsaWQtYmVmb3JlLWNvbW1pdC1wcmV0dHktZGlmZi5odG1sVVQFAANsbeNadXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAbFybTK0Z6KJcAAAAXgAAAEQAGAAAAAAAAQAAAKSBpAIL
AGltcG9ydGVkL2JsaW5rL3N0b3JhZ2UvaW5kZXhlZGRiL2Jsb2ItdmFsaWQtYmVmb3JlLWNvbW1p
dC1zdGRlcnIudHh0VVQFAANsbeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAK1mbTAAAAAAA
AAAAAAAAABsAGAAAAAAAAAAQAO1BfgMLAGltcG9ydGVkL2JsaW5rL3RyYW5zaXRpb25zL1VUBQAD
UmfjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAC1hm0xBMeSE8QAAAM4NAAA6ABgAAAAAAAEA
AACkgdMDCwBpbXBvcnRlZC9ibGluay90cmFuc2l0aW9ucy91bnByZWZpeGVkLXRyYW5zZm9ybS1z
dGRlcnIudHh0VVQFAANldeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgALWGbTLUcmZ8IAQAA
aBIAAEUAGAAAAAAAAQAAAKSBOAULAGltcG9ydGVkL2JsaW5rL3RyYW5zaXRpb25zL3plcm8tZHVy
YXRpb24tc2hvdWxkLW5vdC1jYW5jZWwtc3RkZXJyLnR4dFVUBQADZnXjWnV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAACtZm0wAAAAAAAAAAAAAAAARABgAAAAAAAAAEADtQb8GCwBpbXBvcnRlZC9t
b3ppbGxhL1VUBQADUmfjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAACtZm0wAAAAAAAAAAAAA
AAAgABgAAAAAAAAAEADtQQoHCwBpbXBvcnRlZC9tb3ppbGxhL2Nzcy1hbmltYXRpb25zL1VUBQAD
UWfjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAC1hm0wpRCMn8AAAAM4NAABJABgAAAAAAAEA
AACkgWQHCwBpbXBvcnRlZC9tb3ppbGxhL2Nzcy1hbmltYXRpb25zL3Rlc3RfYW5pbWF0aW9uLWNv
bXB1dGVkLXRpbWluZy1zdGRlcnIudHh0VVQFAANldeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAAMFybTAAAAAAAAAAAAAAAACEAGAAAAAAAAAAQAO1B1wgLAGltcG9ydGVkL21vemlsbGEvY3Nz
LXRyYW5zaXRpb25zL1VUBQAD+2zjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAC1hm0wGZhz8
+gAAAGgSAAA+ABgAAAAAAAEAAACkgTIJCwBpbXBvcnRlZC9tb3ppbGxhL2Nzcy10cmFuc2l0aW9u
cy90ZXN0X2VmZmVjdC10YXJnZXQtc3RkZXJyLnR4dFVUBQADZXXjWnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIADBcm0yW1kTM5AAAAHABAAA/ABgAAAAAAAEAAACkgaQKCwBpbXBvcnRlZC9tb3pp
bGxhL2Nzcy10cmFuc2l0aW9ucy90ZXN0X2V2ZW50LWRpc3BhdGNoLXN0ZGVyci50eHRVVAUAA/ts
41p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAwXJtMAAAAAAAAAAAAAAAAFQAYAAAAAAAAABAA
7UEBDAsAaW1wb3J0ZWQvbW96aWxsYS9zdmcvVVQFAAP7bONadXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAAMFybTAAAAAAAAAAAAAAAABwAGAAAAAAAAAAQAO1BUAwLAGltcG9ydGVkL21vemlsbGEv
c3ZnL3NpemluZy9VVAUAA/ts41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAwXJtMGQHGEfkA
AABoEgAAQAAYAAAAAAABAAAApIGmDAsAaW1wb3J0ZWQvbW96aWxsYS9zdmcvc2l6aW5nL2lubGlu
ZS0tZGlzcGxheS1ibG9jay0tMDEtc3RkZXJyLnR4dFVUBQAD+2zjWnV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAADBcm0wAAAAAAAAAAAAAAAAaABgAAAAAAAAAEADtQRkOCwBpbXBvcnRlZC9tb3pp
bGxhL3N2Zy9zbWlsL1VUBQAD/GzjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAC1hm0znXbnN
+gAAAGgSAAAyABgAAAAAAAEAAACkgW0OCwBpbXBvcnRlZC9tb3ppbGxhL3N2Zy9zbWlsL2FuaW0t
Y2xhc3MtMDQtc3RkZXJyLnR4dFVUBQADZnXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAACtZ
m0wAAAAAAAAAAAAAAAAkABgAAAAAAAAAEADtQdMPCwBpbXBvcnRlZC9tb3ppbGxhL3N2Zy9zbWls
L2NvbnRhaW5lci9VVAUAA1Jn41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAArWZtMEtvSt/kA
AABoEgAAPQAYAAAAAAABAAAApIExEAsAaW1wb3J0ZWQvbW96aWxsYS9zdmcvc21pbC9jb250YWlu
ZXIvaW52YWxpZC1lbGVtLTEtc3RkZXJyLnR4dFVUBQADUmfjWnV4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAADBcm0wAAAAAAAAAAAAAAAAhABgAAAAAAAAAEADtQaERCwBpbXBvcnRlZC9tb3ppbGxh
L3N2Zy9zbWlsL3JlcGVhdC9VVAUAA/xs41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAtYZtM
1YO8ggUBAABoEgAAPwAYAAAAAAABAAAApIH8EQsAaW1wb3J0ZWQvbW96aWxsYS9zdmcvc21pbC9y
ZXBlYXQvaW5kZWZpbml0ZS1yZXBlYXQtMS1zdGRlcnIudHh0VVQFAANmdeNadXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAMlmbTAAAAAAAAAAAAAAAAA0AGAAAAAAAAAAQAO1BehMLAGltcG9ydGVk
L3czYy9VVAUAA19n41p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACLWZtMAAAAAAAAAAAAAAAA
IAAYAAAAAAAAABAA7UHBEwsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9VVAUAAwVo
41p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAA2WZtMAAAAAAAAAAAAAAAAKgAYAAAAAAAAABAA
7UEbFAsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvVVQFAANnZ+Na
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgANlmbTJNx5rqBAAAAowAAAEwAGAAAAAAAAQAAAKSB
fxQLAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl91
cGRhdGVfaW5kZXgzLWFjdHVhbC50eHRVVAUAA2dn41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAA2WZtMsxuIIAEBAAA2AgAASgAYAAAAAAABAAAApIGGFQsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDMtZGlmZi50eHRVVAUA
A2dn41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA2WZtMNmG8xlUAAABbAAAATgAYAAAAAAAB
AAAApIELFwsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vy
c29yX3VwZGF0ZV9pbmRleDMtZXhwZWN0ZWQudHh0VVQFAANnZ+NadXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgANlmbTFK+ky30BwAA9hkAAFIAGAAAAAAAAQAAAKSB6BcLAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgzLXByZXR0
eS1kaWZmLmh0bWxVVAUAA2dn41p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAyWZtMAAAAAAAA
AAAAAAAALQAYAAAAAAAAABAA7UFoIAsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9X
ZWJDcnlwdG9BUEkvVVQFAANfZ+NadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAQlmbTAAAAAAA
AAAAAAAAADkAGAAAAAAAAAAQAO1BzyALAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
V2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L1VUBQADfGfjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIADNhm0yPNBpwRAAAAKAJAABiABgAAAAAAAEAAACkgUIhCwBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS9mYWlsdXJlc19SU0EtT0FFUC5o
dHRwcy53b3JrZXItc3RkZXJyLnR4dFVUBQADcnXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ADVhm0xUAsmyNgAAAMACAABrABgAAAAAAAEAAACkgSIiCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS9mYWlsdXJlc19SU0FTU0EtUEtDUzEt
djFfNS5odHRwcy53b3JrZXItc3RkZXJyLnR4dFVUBQADdXXjWnV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAEhhm0yPNBpwRAAAAKAJAABgABgAAAAAAAEAAACkgf0iCwBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS90ZXN0X2ZhaWx1cmVzX1JT
QS1PQUVQLmh0dHBzLXN0ZGVyci50eHRVVAUAA5d141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CABJYZtMVALJsjYAAADAAgAAaQAYAAAAAAABAAAApIHbIwsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9mYWlsdXJlc19SU0FTU0Et
UEtDUzEtdjFfNS5odHRwcy1zdGRlcnIudHh0VVQFAAOadeNadXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAAR1mbTAAAAAAAAAAAAAAAAC8AGAAAAAAAAAAQAO1BtCQLAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvVVQFAAOFZ+NadXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAN2GbTMHvBwOrAAAA+QAAAG4AGAAAAAAAAQAAAKSBHSULAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtYmFzaWMtY29y
cy1zYWZlbGlzdGVkLXJlcXVlc3QtaGVhZGVycy1zdGRlcnIudHh0VVQFAAN6deNadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAOGGbTPEL4haoAAAA7wAAAGIAGAAAAAAAAQAAAKSBcCYLAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWNjZXNzLWNvbnRyb2wt
YmFzaWMtZ2V0LWZhaWwtbm9uLXNpbXBsZS1zdGRlcnIudHh0VVQFAAN7deNadXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAOGGbTE2z3eqoAAAA7wAAAHkAGAAAAAAAAQAAAKSBtCcLAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtYmFz
aWMtcG9zdC13aXRoLW5vbi1jb3JzLXNhZmVsaXN0ZWQtY29udGVudC10eXBlLXN0ZGVyci50eHRV
VAUAA3t141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABDYZtMA/+O2+cAAAA0CQAAUQAYAAAA
AAABAAAApIEPKQsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVz
dC9vcGVuLXVybC1tdWx0aS13aW5kb3ctNi1zdGRlcnIudHh0VVQFAAOOdeNadXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAM1mbTAAAAAAAAAAAAAAAAC0AGAAAAAAAAAAQAO1BgSoLAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzLXRpbWluZy0xL1VUBQADYmfjWnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIADVhm0ySXGOqAAEAAM4NAABWABgAAAAAAAEAAACkgegqCwBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy10aW1pbmctMS9mcmFtZXMtdGltaW5nLWZ1bmN0
aW9ucy1vdXRwdXQtc3RkZXJyLnR4dFVUBQADdXXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ADVhm0z5sHI08QAAAM4NAABWABgAAAAAAAEAAACkgXgsCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy10aW1pbmctMS9mcmFtZXMtdGltaW5nLWZ1bmN0aW9ucy1zeW50YXgtc3Rk
ZXJyLnR4dFVUBQADdXXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFJZm0wAAAAAAAAAAAAA
AAAmABgAAAAAAAAAEADtQfktCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L1VUBQADnGfjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFBZm0wAAAAAAAAAAAAAAAAqABgA
AAAAAAAAEADtQVkuCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9V
VAUAA5dn41p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABOXJtMAAAAAAAAAAAAAAAAMAAYAAAA
AAAAABAA7UG9LgsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFz
aWMvVVQFAAMzbeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAT2GbTOwKDhswAQAAGg8AAE8A
GAAAAAAAAQAAAKSBJy8LAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L2Jhc2ljL2Jsb2NrLW1pbWUtYXMtc2NyaXB0LXN0ZGVyci50eHRVVAUAA6V141p1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACABSYZtMvRfL8RkBAABbBAAATwAYAAAAAAABAAAApIHgMAsAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvbW9kZS1zYW1lLW9yaWdp
bi5hbnktc3RkZXJyLnR4dFVUBQADrHXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFRhm0z6
/AdnqgAAAPMDAABLABgAAAAAAAEAAACkgYIyCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9iYXNpYy9zY2hlbWUtYWJvdXQuYW55LXN0ZGVyci50eHRVVAUAA7B141p1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABSWZtMAAAAAAAAAAAAAAAALwAYAAAAAAAAABAA7UGx
MwsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9VVAUAA5xn
41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABRYZtM8BrySRYCAABzCwAASQAYAAAAAAABAAAA
pIEaNAsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3Jz
LW9yaWdpbi5hbnktc3RkZXJyLnR4dFVUBQADqnXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AFNhm0wZBdSJ+gIAADAWAABTABgAAAAAAAEAAACkgbM2CwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtcHJlZmxpZ2h0LXN0YXR1cy5hbnktc3RkZXJy
LnR4dFVUBQADrnXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFRhm0ztwXe4rwEAACAHAABM
ABgAAAAAAAEAAACkgTo6CwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9jb3JzL2NvcnMtcHJlZmxpZ2h0LmFueS1zdGRlcnIudHh0VVQFAAOvdeNadXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAVmGbTCFwlzLtAgAAcRYAAFUAGAAAAAAAAQAAAKSBbzwLAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1yZWRpcmVjdC1wcmVm
bGlnaHQuYW55LXN0ZGVyci50eHRVVAUAA7N141p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABS
XJtMAAAAAAAAAAAAAAAAMwAYAAAAAAAAABAA7UHrPwsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvVVQFAAM7beNadXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAU2GbTLiAeEK0AAAABgQAAEsAGAAAAAAAAQAAAKSBWEALAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0LW1vZGUtc3RkZXJyLnR4
dFVUBQADrnXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFNhm0z42ZMkMwAAAOYAAABSABgA
AAAAAAEAAACkgZFBCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZWRpcmVjdC9yZWRpcmVjdC1tb2RlLXdvcmtlci1zdGRlcnIudHh0VVQFAAOudeNadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAVWGbTPyVgyd1AQAADQUAAFEAGAAAAAAAAQAAAKSBUEILAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0LXRv
LWRhdGF1cmwtc3RkZXJyLnR4dFVUBQADsXXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFJZ
m0wAAAAAAAAAAAAAAAAuABgAAAAAAAAAEADtQVBECwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL25vc25pZmYvVVQFAAOcZ+NadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
VGGbTOYPFCWcAAAAzwAAAEgAGAAAAAAAAQAAAKSBuEQLAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvbm9zbmlmZi9wYXJzaW5nLW5vc25pZmYtc3RkZXJyLnR4dFVUBQADr3Xj
WnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFRhm0wkE4XxxAAAAK4EAAA/ABgAAAAAAAEAAACk
gdZFCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL25vc25pZmYvc2NyaXB0
LXN0ZGVyci50eHRVVAUAA69141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABUYZtM+3VmwNAA
AAAUCQAAQwAYAAAAAAABAAAApIETRwsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9ub3NuaWZmL3N0eWxlc2hlZXQtc3RkZXJyLnR4dFVUBQADr3XjWnV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAAIFZm0wAAAAAAAAAAAAAAAAlABgAAAAAAAAAEADtQWBICwBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvVVQFAAPxZ+NadXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAAo1mbTAAAAAAAAAAAAAAAAC4AGAAAAAAAAAAQAO1Bv0gLAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9VVAUAAzFo41p1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAABUWZtMAAAAAAAAAAAAAAAAPwAYAAAAAAAAABAA7UEnSQsAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIvVVQFAAOgZ+Na
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAcFmbTAAAAAAAAAAAAAAAAFEAGAAAAAAAAAAQAO1B
oEkLAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9icm93c2lu
Zy10aGUtd2ViL2hpc3RvcnktdHJhdmVyc2FsL1VUBQAD1GfjWnV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAFRhm0xKXjoN6AAAADQJAAB+ABgAAAAAAAEAAACkgStKCwBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9oaXN0b3J5LXRy
YXZlcnNhbC9icm93c2luZ19jb250ZXh0X25hbWVfY3Jvc3Nfb3JpZ2luLXN0ZGVyci50eHRVVAUA
A7B141p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABUWZtMAAAAAAAAAAAAAAAAcgAYAAAAAAAA
ABAA7UHLSwsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2Jy
b3dzaW5nLXRoZS13ZWIvaGlzdG9yeS10cmF2ZXJzYWwvcGVyc2lzdGVkLXVzZXItc3RhdGUtcmVz
dG9yYXRpb24vVVQFAAOfZ+NadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVmGbTAJnlA4GAQAA
aBIAAJkAGAAAAAAAAQAAAKSBd0wLAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9icm93c2Vycy9icm93c2luZy10aGUtd2ViL2hpc3RvcnktdHJhdmVyc2FsL3BlcnNpc3RlZC11
c2VyLXN0YXRlLXJlc3RvcmF0aW9uL3Jlc3VtZS10aW1lci1vbi1oaXN0b3J5LWJhY2stc3RkZXJy
LnR4dFVUBQADs3XjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGRhm0xKXjoN6AAAADQJAACT
ABgAAAAAAAEAAACkgVBOCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJv
d3NlcnMvYnJvd3NpbmctdGhlLXdlYi9oaXN0b3J5LXRyYXZlcnNhbC93aW5kb3ctbmFtZS1hZnRl
ci1jcm9zcy1vcmlnaW4tYXV4LWZyYW1lLW5hdmlnYXRpb24uc3ViLXN0ZGVyci50eHRVVAUAA8t1
41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAByYZtMj/xP9ugAAAA0CQAAkgAYAAAAAAABAAAA
pIEFUAsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2Jyb3dz
aW5nLXRoZS13ZWIvaGlzdG9yeS10cmF2ZXJzYWwvd2luZG93LW5hbWUtYWZ0ZXItc2FtZS1vcmln
aW4tYXV4LWZyYW1lLW5hdmlnYXRpb24uc3ViLXN0ZGVyci50eHRVVAUAA+d141p1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAAAAABkWZtMAAAAAAAAAAAAAAAAUwAYAAAAAAAAABAA7UG5UQsAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIv
dW5sb2FkaW5nLWRvY3VtZW50cy9VVAUAA7xn41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABW
YZtMVPUO/egAAAA0CQAAYQAYAAAAAAABAAAApIFGUgsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIvdW5sb2FkaW5nLWRvY3VtZW50
cy8wMDEtc3RkZXJyLnR4dFVUBQADtHXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFZhm0xU
9Q796AAAADQJAABhABgAAAAAAAEAAACkgclTCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi91bmxvYWRpbmctZG9jdW1lbnRzLzAw
Mi1zdGRlcnIudHh0VVQFAAO0deNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAV2GbTFT1Dv3o
AAAANAkAAGEAGAAAAAAAAQAAAKSBTFULAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9icm93c2Vycy9icm93c2luZy10aGUtd2ViL3VubG9hZGluZy1kb2N1bWVudHMvMDAzLXN0
ZGVyci50eHRVVAUAA7V141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABmYZtMH2YOlOgAAAA0
CQAAYQAYAAAAAAABAAAApIHPVgsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIvdW5sb2FkaW5nLWRvY3VtZW50cy8wMDQtc3RkZXJy
LnR4dFVUBQAD0HXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGZhm0wb1cSk5gAAADQJAABh
ABgAAAAAAAEAAACkgVJYCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJv
d3NlcnMvYnJvd3NpbmctdGhlLXdlYi91bmxvYWRpbmctZG9jdW1lbnRzLzAwNS1zdGRlcnIudHh0
VVQFAAPQdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAaFmbTAAAAAAAAAAAAAAAADYAGAAA
AAAAAAAQAO1B01kLAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vy
cy9oaXN0b3J5L1VUBQADw2fjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFFam0wAAAAAAAAA
AAAAAABMABgAAAAAAAAAEADtQUNaCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtaGlzdG9yeS1pbnRlcmZhY2UvVVQFAAN6aeNadXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgA92GbTOJRoGnoAAAANAkAAGUAGAAAAAAAAQAAAKSByVoLAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1o
aXN0b3J5LWludGVyZmFjZS9oaXN0b3J5X2JhY2tfMS1zdGRlcnIudHh0VVQFAAPhduNadXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAB2KbTI8GLX3oAAAANAkAAGgAGAAAAAAAAQAAAKSBUFwLAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1o
aXN0b3J5LWludGVyZmFjZS9oaXN0b3J5X2ZvcndhcmRfMS1zdGRlcnIudHh0VVQFAAP9duNadXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAFWKbTDzWN33nAAAANAkAAG0AGAAAAAAAAQAAAKSB2l0L
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3Ro
ZS1oaXN0b3J5LWludGVyZmFjZS9oaXN0b3J5X2dvX25vX2FyZ3VtZW50LXN0ZGVyci50eHRVVAUA
Axl341p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAlYptM2ZUOlucAAAA0CQAAaAAYAAAAAAAB
AAAApIFoXwsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hp
c3RvcnkvdGhlLWhpc3RvcnktaW50ZXJmYWNlL2hpc3RvcnlfZ29fdG9fdXJpLXN0ZGVyci50eHRV
VAUAAzV341p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAlYptMkgYO/+cAAAA0CQAAawAYAAAA
AAABAAAApIHxYAsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJz
L2hpc3RvcnkvdGhlLWhpc3RvcnktaW50ZXJmYWNlL2hpc3RvcnlfZ29fdW5kZWZpbmVkLXN0ZGVy
ci50eHRVVAUAAzZ341p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAB1WZtMAAAAAAAAAAAAAAAA
YgAYAAAAAAAAABAA7UF9YgsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jy
b3dzZXJzL2hpc3RvcnkvdGhlLWhpc3RvcnktaW50ZXJmYWNlL2pvaW50X3Nlc3Npb25faGlzdG9y
eS9VVAUAA95n41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABpYZtMFMWG8egAAAA0CQAAcAAY
AAAAAAABAAAApIEZYwsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dz
ZXJzL2hpc3RvcnkvdGhlLWhpc3RvcnktaW50ZXJmYWNlL2pvaW50X3Nlc3Npb25faGlzdG9yeS8w
MDEtc3RkZXJyLnR4dFVUBQAD1nXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHdhm0y6Fb9z
6AAAADQJAABwABgAAAAAAAEAAACkgatkCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtaGlzdG9yeS1pbnRlcmZhY2Uvam9pbnRfc2Vzc2lv
bl9oaXN0b3J5LzAwMi1zdGRlcnIudHh0VVQFAAPxdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAM2KbTIibj4nnAAAANAkAAG0AGAAAAAAAAQAAAKSBPWYLAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1oaXN0b3J5LWludGVyZmFjZS90
cmF2ZXJzZV90aGVfaGlzdG9yeV8xLXN0ZGVyci50eHRVVAUAA1F341p1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACABCYptMb1JDVOgAAAA0CQAAbQAYAAAAAAABAAAApIHLZwsAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWhpc3RvcnktaW50
ZXJmYWNlL3RyYXZlcnNlX3RoZV9oaXN0b3J5XzItc3RkZXJyLnR4dFVUBQADbHfjWnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAENim0xQsJ0I5wAAADQJAABtABgAAAAAAAEAAACkgVppCwBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtaGlz
dG9yeS1pbnRlcmZhY2UvdHJhdmVyc2VfdGhlX2hpc3RvcnlfNS1zdGRlcnIudHh0VVQFAANtd+Na
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAQ2KbTMaWnNrnAAAANAkAAHQAGAAAAAAAAQAAAKSB
6GoLAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5
L3RoZS1oaXN0b3J5LWludGVyZmFjZS90cmF2ZXJzZV90aGVfaGlzdG9yeV91bmxvYWRfMS1zdGRl
cnIudHh0VVQFAANud+NadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAUWKbTMaWnNrnAAAANAkA
AH4AGAAAAAAAAQAAAKSBfWwLAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9i
cm93c2Vycy9oaXN0b3J5L3RoZS1oaXN0b3J5LWludGVyZmFjZS90cmF2ZXJzZV90aGVfaGlzdG9y
eV93cml0ZV9hZnRlcl9sb2FkXzEtc3RkZXJyLnR4dFVUBQADiXfjWnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAFFim0w84TY06AAAADQJAAB+ABgAAAAAAAEAAACkgRxuCwBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtaGlzdG9yeS1pbnRl
cmZhY2UvdHJhdmVyc2VfdGhlX2hpc3Rvcnlfd3JpdGVfYWZ0ZXJfbG9hZF8yLXN0ZGVyci50eHRV
VAUAA4p341p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABSYptMjB9E8OcAAAA0CQAAegAYAAAA
AAABAAAApIG8bwsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJz
L2hpc3RvcnkvdGhlLWhpc3RvcnktaW50ZXJmYWNlL3RyYXZlcnNlX3RoZV9oaXN0b3J5X3dyaXRl
X29ubG9hZF8xLXN0ZGVyci50eHRVVAUAA4t341p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABS
YptMx4xEmegAAAA0CQAAegAYAAAAAAABAAAApIFXcQsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWhpc3RvcnktaW50ZXJmYWNlL3RyYXZl
cnNlX3RoZV9oaXN0b3J5X3dyaXRlX29ubG9hZF8yLXN0ZGVyci50eHRVVAUAA4x341p1eAsAAQT1
AQAABBQAAABQSwECHgMKAAAAAABqWZtMAAAAAAAAAAAAAAAATQAYAAAAAAAAABAA7UHzcgsAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWxv
Y2F0aW9uLWludGVyZmFjZS9VVAUAA8hn41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABbYZtM
Of5Iz04AAAB/AAAAewAYAAAAAAABAAAApIF6cwsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWxvY2F0aW9uLWludGVyZmFjZS9sb2NhdGlv
bi1wcm90b2NvbC1zZXR0ZXItbm9uLWJyb2tlbi1zdGRlcnIudHh0VVQFAAO9deNadXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgACAAAAW2GbTCDAbBxAAAAAQAAAAIEAGAAAAAAAAQAAAKSBfXQLAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1sb2Nh
dGlvbi1pbnRlcmZhY2UvbG9jYXRpb24tcHJvdG9jb2wtc2V0dGVyLW5vbi1icm9rZW4td2VpcmQt
c3RkZXJyLnR4dFVUBQADvXXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFxhm0xS5mU16AAA
ADQJAAByABgAAAAAAAEAAACkgXh1CwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtbG9jYXRpb24taW50ZXJmYWNlL3JlbG9hZF9kb2N1bWVu
dF9vcGVuX3dyaXRlLXN0ZGVyci50eHRVVAUAA8B141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CABcYZtMj1NkjucAAAA0CQAAbQAYAAAAAAABAAAApIEMdwsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWxvY2F0aW9uLWludGVyZmFjZS9y
ZWxvYWRfZG9jdW1lbnRfd3JpdGUtc3RkZXJyLnR4dFVUBQADwHXjWnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAFxhm0yPU2SO5wAAADQJAAB0ABgAAAAAAAEAAACkgZp4CwBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtbG9jYXRpb24taW50
ZXJmYWNlL3JlbG9hZF9kb2N1bWVudF93cml0ZV9vbmxvYWQtc3RkZXJyLnR4dFVUBQADwHXjWnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGxhm0yPU2SO5wAAADQJAABlABgAAAAAAAEAAACkgS96
CwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90
aGUtbG9jYXRpb24taW50ZXJmYWNlL3JlbG9hZF9wb3N0XzEtc3RkZXJyLnR4dFVUBQAD23XjWnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGxhm0xK8RF16QAAADQJAAB5ABgAAAAAAAEAAACkgbV7
CwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90
aGUtbG9jYXRpb24taW50ZXJmYWNlL3NjcmlwdGVkX2NsaWNrX2Fzc2lnbl9kdXJpbmdfbG9hZC1z
dGRlcnIudHh0VVQFAAPbdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAbGGbTPoPY7HpAAAA
NAkAAIIAGAAAAAAAAQAAAKSBUX0LAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9icm93c2Vycy9oaXN0b3J5L3RoZS1sb2NhdGlvbi1pbnRlcmZhY2Uvc2NyaXB0ZWRfY2xpY2tf
bG9jYXRpb25fYXNzaWduX2R1cmluZ19sb2FkLXN0ZGVyci50eHRVVAUAA9x141p1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACABsYZtM+g9jsekAAAA0CQAAfwAYAAAAAAABAAAApIH2fgsAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWxvY2F0
aW9uLWludGVyZmFjZS9zY3JpcHRlZF9mb3JtX3N1Ym1pdF9hc3NpZ25fZHVyaW5nX2xvYWQtc3Rk
ZXJyLnR4dFVUBQAD3HXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAKNZm0wAAAAAAAAAAAAA
AAA1ABgAAAAAAAAAEADtQZiACwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
YnJvd3NlcnMvb3JpZ2luL1VUBQADMWjjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAKNZm0wA
AAAAAAAAAAAAAABKABgAAAAAAAAAEADtQQeBCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvYnJvd3NlcnMvb3JpZ2luL2Nyb3NzLW9yaWdpbi1vYmplY3RzL1VUBQADMWjjWnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKZhm0wPJRXD5wAAADQJAAB3ABgAAAAAAAEAAACkgYuB
CwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvb3JpZ2luL2Ny
b3NzLW9yaWdpbi1vYmplY3RzL2Nyb3NzLW9yaWdpbi1vYmplY3RzLW9uLW5ldy13aW5kb3ctc3Rk
ZXJyLnR4dFVUBQADR3bjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAGJZm0wAAAAAAAAAAAAA
AABAABgAAAAAAAAAEADtQSODCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
YnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3QvVVQFAAO4Z+NadXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAAXVmbTAAAAAAAAAAAAAAAAGIAGAAAAAAAAAAQAO1BnYMLAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC9hY2Nlc3Npbmct
b3RoZXItYnJvd3NpbmctY29udGV4dHMvVVQFAAOxZ+NadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAXWGbTKwW673oAAAANAkAAHoAGAAAAAAAAQAAAKSBOYQLAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC9hY2Nlc3Npbmctb3Ro
ZXItYnJvd3NpbmctY29udGV4dHMvd2luZG93X2xlbmd0aC1zdGRlcnIudHh0VVQFAAPCdeNadXgL
AAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAY1mbTAAAAAAAAAAAAAAAAHsAGAAAAAAAAAAQAO1B1YUL
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93
LW9iamVjdC9hcGlzLWZvci1jcmVhdGluZy1hbmQtbmF2aWdhdGluZy1icm93c2luZy1jb250ZXh0
cy1ieS1uYW1lL1VUBQADumfjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGBhm0ysFuu96AAA
ADQJAACYABgAAAAAAAEAAACkgYqGCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3QvYXBpcy1mb3ItY3JlYXRpbmctYW5kLW5hdmln
YXRpbmctYnJvd3NpbmctY29udGV4dHMtYnktbmFtZS9jbG9zZV9iZWZvcmV1bmxvYWQtc3RkZXJy
LnR4dFVUBQADw3XjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGBhm0znhevU5wAAADQJAACY
ABgAAAAAAAEAAACkgUSICwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJv
d3NlcnMvdGhlLXdpbmRvdy1vYmplY3QvYXBpcy1mb3ItY3JlYXRpbmctYW5kLW5hdmlnYXRpbmct
YnJvd3NpbmctY29udGV4dHMtYnktbmFtZS9jbG9zZV9zY3JpcHRfZGVmZXItc3RkZXJyLnR4dFVU
BQADw3XjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGBhm0znhevU5wAAADQJAACSABgAAAAA
AAEAAACkgf2JCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMv
dGhlLXdpbmRvdy1vYmplY3QvYXBpcy1mb3ItY3JlYXRpbmctYW5kLW5hdmlnYXRpbmctYnJvd3Np
bmctY29udGV4dHMtYnktbmFtZS9jbG9zZV91bmxvYWQtc3RkZXJyLnR4dFVUBQADw3XjWnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAGBhm0wZLi+AGAEAANAkAACnABgAAAAAAAEAAACkgbCLCwBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1v
YmplY3QvYXBpcy1mb3ItY3JlYXRpbmctYW5kLW5hdmlnYXRpbmctYnJvd3NpbmctY29udGV4dHMt
YnktbmFtZS9jcmVhdGluZ19icm93c2luZ19jb250ZXh0X3Rlc3RfMDEtc3RkZXJyLnR4dFVUBQAD
w3XjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGBhm0xi1GY7RQEAAGxAAACzABgAAAAAAAEA
AACkgamNCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhl
LXdpbmRvdy1vYmplY3QvYXBpcy1mb3ItY3JlYXRpbmctYW5kLW5hdmlnYXRpbmctYnJvd3Npbmct
Y29udGV4dHMtYnktbmFtZS9vcGVuLWZlYXR1cmVzLW5lZ2F0aXZlLWlubmVyd2lkdGgtaW5uZXJo
ZWlnaHQtc3RkZXJyLnR4dFVUBQADw3XjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGBhm0xi
1GY7RQEAAGxAAACsABgAAAAAAAEAAACkgduPCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3QvYXBpcy1mb3ItY3JlYXRpbmctYW5k
LW5hdmlnYXRpbmctYnJvd3NpbmctY29udGV4dHMtYnktbmFtZS9vcGVuLWZlYXR1cmVzLW5lZ2F0
aXZlLXNjcmVlbngtc2NyZWVueS1zdGRlcnIudHh0VVQFAAPDdeNadXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAYGGbTD8rujRbAQAAbEAAAKUAGAAAAAAAAQAAAKSBBpILAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC9hcGlzLWZv
ci1jcmVhdGluZy1hbmQtbmF2aWdhdGluZy1icm93c2luZy1jb250ZXh0cy1ieS1uYW1lL29wZW4t
ZmVhdHVyZXMtbmVnYXRpdmUtdG9wLWxlZnQtc3RkZXJyLnR4dFVUBQADxHXjWnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAGBhm0zFTUXrRQEAAGxAAACpABgAAAAAAAEAAACkgUCUCwBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qv
YXBpcy1mb3ItY3JlYXRpbmctYW5kLW5hdmlnYXRpbmctYnJvd3NpbmctY29udGV4dHMtYnktbmFt
ZS9vcGVuLWZlYXR1cmVzLW5lZ2F0aXZlLXdpZHRoLWhlaWdodC1zdGRlcnIudHh0VVQFAAPEdeNa
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAYWGbTBNaSgiyAQAADIoAAKYAGAAAAAAAAQAAAKSB
aJYLAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2lu
ZG93LW9iamVjdC9hcGlzLWZvci1jcmVhdGluZy1hbmQtbmF2aWdhdGluZy1icm93c2luZy1jb250
ZXh0cy1ieS1uYW1lL29wZW4tZmVhdHVyZXMtbm9uLWludGVnZXItaGVpZ2h0LXN0ZGVyci50eHRV
VAUAA8V141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABhYZtMXcxrt5UBAACkdwAAqwAYAAAA
AAABAAAApIH6mAsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJz
L3RoZS13aW5kb3ctb2JqZWN0L2FwaXMtZm9yLWNyZWF0aW5nLWFuZC1uYXZpZ2F0aW5nLWJyb3dz
aW5nLWNvbnRleHRzLWJ5LW5hbWUvb3Blbi1mZWF0dXJlcy1ub24taW50ZWdlci1pbm5lcmhlaWdo
dC1zdGRlcnIudHh0VVQFAAPFdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAYWGbTF3Ma7eV
AQAApHcAAKoAGAAAAAAAAQAAAKSBdJsLAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC9hcGlzLWZvci1jcmVhdGluZy1hbmQtbmF2
aWdhdGluZy1icm93c2luZy1jb250ZXh0cy1ieS1uYW1lL29wZW4tZmVhdHVyZXMtbm9uLWludGVn
ZXItaW5uZXJ3aWR0aC1zdGRlcnIudHh0VVQFAAPGdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAYWGbTLjDtl2VAQAApHcAAKQAGAAAAAAAAQAAAKSB7Z0LAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC9hcGlzLWZvci1jcmVh
dGluZy1hbmQtbmF2aWdhdGluZy1icm93c2luZy1jb250ZXh0cy1ieS1uYW1lL29wZW4tZmVhdHVy
ZXMtbm9uLWludGVnZXItbGVmdC1zdGRlcnIudHh0VVQFAAPGdeNadXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAYmGbTLjDtl2VAQAApHcAAKcAGAAAAAAAAQAAAKSBYKALAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC9hcGlzLWZv
ci1jcmVhdGluZy1hbmQtbmF2aWdhdGluZy1icm93c2luZy1jb250ZXh0cy1ieS1uYW1lL29wZW4t
ZmVhdHVyZXMtbm9uLWludGVnZXItc2NyZWVueC1zdGRlcnIudHh0VVQFAAPHdeNadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAYmGbTBs5AgSWAQAApHcAAKcAGAAAAAAAAQAAAKSB1qILAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVj
dC9hcGlzLWZvci1jcmVhdGluZy1hbmQtbmF2aWdhdGluZy1icm93c2luZy1jb250ZXh0cy1ieS1u
YW1lL29wZW4tZmVhdHVyZXMtbm9uLWludGVnZXItc2NyZWVueS1zdGRlcnIudHh0VVQFAAPHdeNa
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAYmGbTBs5AgSWAQAApHcAAKMAGAAAAAAAAQAAAKSB
TaULAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2lu
ZG93LW9iamVjdC9hcGlzLWZvci1jcmVhdGluZy1hbmQtbmF2aWdhdGluZy1icm93c2luZy1jb250
ZXh0cy1ieS1uYW1lL29wZW4tZmVhdHVyZXMtbm9uLWludGVnZXItdG9wLXN0ZGVyci50eHRVVAUA
A8h141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABiYZtMgyeWnLIBAAAMigAApQAYAAAAAAAB
AAAApIHApwsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3Ro
ZS13aW5kb3ctb2JqZWN0L2FwaXMtZm9yLWNyZWF0aW5nLWFuZC1uYXZpZ2F0aW5nLWJyb3dzaW5n
LWNvbnRleHRzLWJ5LW5hbWUvb3Blbi1mZWF0dXJlcy1ub24taW50ZWdlci13aWR0aC1zdGRlcnIu
dHh0VVQFAAPIdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAY2GbTOpt+sGxAQAA2IAAALcA
GAAAAAAAAQAAAKSBUaoLAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93
c2Vycy90aGUtd2luZG93LW9iamVjdC9hcGlzLWZvci1jcmVhdGluZy1hbmQtbmF2aWdhdGluZy1i
cm93c2luZy1jb250ZXh0cy1ieS1uYW1lL29wZW4tZmVhdHVyZXMtdG9rZW5pemF0aW9uLWlubmVy
aGVpZ2h0LWlubmVyd2lkdGgtc3RkZXJyLnR4dFVUBQADyXXjWnV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAGNhm0x0Z7S4/wIAACBwAQCpABgAAAAAAAEAAACkgfOsCwBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3QvYXBpcy1mb3It
Y3JlYXRpbmctYW5kLW5hdmlnYXRpbmctYnJvd3NpbmctY29udGV4dHMtYnktbmFtZS9vcGVuLWZl
YXR1cmVzLXRva2VuaXphdGlvbi1ub29wZW5lci1zdGRlcnIudHh0VVQFAAPKdeNadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAZGGbTHaQbZylAQAA2IAAALAAGAAAAAAAAQAAAKSB1bALAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVj
dC9hcGlzLWZvci1jcmVhdGluZy1hbmQtbmF2aWdhdGluZy1icm93c2luZy1jb250ZXh0cy1ieS1u
YW1lL29wZW4tZmVhdHVyZXMtdG9rZW5pemF0aW9uLXNjcmVlbngtc2NyZWVueS1zdGRlcnIudHh0
VVQFAAPLdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAZGGbTMIKllXBAQAAQJMAAKkAGAAA
AAAAAQAAAKSBZLMLAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vy
cy90aGUtd2luZG93LW9iamVjdC9hcGlzLWZvci1jcmVhdGluZy1hbmQtbmF2aWdhdGluZy1icm93
c2luZy1jb250ZXh0cy1ieS1uYW1lL29wZW4tZmVhdHVyZXMtdG9rZW5pemF0aW9uLXRvcC1sZWZ0
LXN0ZGVyci50eHRVVAUAA8t141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABkYZtMQ25aaOsB
AACopQAArQAYAAAAAAABAAAApIEItgsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L2FwaXMtZm9yLWNyZWF0aW5nLWFuZC1uYXZp
Z2F0aW5nLWJyb3dzaW5nLWNvbnRleHRzLWJ5LW5hbWUvb3Blbi1mZWF0dXJlcy10b2tlbml6YXRp
b24td2lkdGgtaGVpZ2h0LXN0ZGVyci50eHRVVAUAA8x141p1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAABiWZtMAAAAAAAAAAAAAAAAaQAYAAAAAAAAABAA7UHauAsAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L2dhcmJhZ2UtY29s
bGVjdGlvbi1hbmQtYnJvd3NpbmctY29udGV4dHMvVVQFAAO4Z+NadXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAYmGbTGE3wX/oAAAANAkAAIwAGAAAAAAAAQAAAKSBfbkLAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC9nYXJiYWdl
LWNvbGxlY3Rpb24tYW5kLWJyb3dzaW5nLWNvbnRleHRzL2Rpc2NhcmRfaWZyYW1lX2hpc3Rvcnlf
MS1zdGRlcnIudHh0VVQFAAPHdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAYmGbTGE3wX/o
AAAANAkAAIwAGAAAAAAAAQAAAKSBK7sLAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC9nYXJiYWdlLWNvbGxlY3Rpb24tYW5kLWJy
b3dzaW5nLWNvbnRleHRzL2Rpc2NhcmRfaWZyYW1lX2hpc3RvcnlfMi1zdGRlcnIudHh0VVQFAAPI
deNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAYmGbTNHJs7voAAAANAkAAIwAGAAAAAAAAQAA
AKSB2bwLAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUt
d2luZG93LW9iamVjdC9nYXJiYWdlLWNvbGxlY3Rpb24tYW5kLWJyb3dzaW5nLWNvbnRleHRzL2Rp
c2NhcmRfaWZyYW1lX2hpc3RvcnlfMy1zdGRlcnIudHh0VVQFAAPIdeNadXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAYmGbTNHJs7voAAAANAkAAIwAGAAAAAAAAQAAAKSBh74LAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC9nYXJi
YWdlLWNvbGxlY3Rpb24tYW5kLWJyb3dzaW5nLWNvbnRleHRzL2Rpc2NhcmRfaWZyYW1lX2hpc3Rv
cnlfNC1zdGRlcnIudHh0VVQFAAPIdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAXWGbTKTa
p3MKAQAAnBsAAF8AGAAAAAAAAQAAAKSBNcALAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5kb3ctb3Blbi1ub29wZW5lci1z
dGRlcnIudHh0VVQFAAPCdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAcFmbTAAAAAAAAAAA
AAAAADYAGAAAAAAAAAAQAO1B2MELAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9icm93c2Vycy93aW5kb3dzL1VUBQAD1GfjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAGNZ
m0wAAAAAAAAAAAAAAABSABgAAAAAAAAAEADtQUjCCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvYnJvd3NlcnMvd2luZG93cy9hdXhpbGlhcnktYnJvd3NpbmctY29udGV4dHMv
VVQFAAO6Z+NadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAZGGbTH2aCdf6AAAAaBIAAGoAGAAA
AAAAAQAAAKSB1MILAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vy
cy93aW5kb3dzL2F1eGlsaWFyeS1icm93c2luZy1jb250ZXh0cy9vcGVuZXItY2xvc2VkLXN0ZGVy
ci50eHRVVAUAA8x141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABkYZtMfZoJ1/oAAABoEgAA
bAAYAAAAAAABAAAApIFyxAsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jy
b3dzZXJzL3dpbmRvd3MvYXV4aWxpYXJ5LWJyb3dzaW5nLWNvbnRleHRzL29wZW5lci1tdWx0aXBs
ZS1zdGRlcnIudHh0VVQFAAPMdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAZGGbTBhbU0np
AAAANAkAAGwAGAAAAAAAAQAAAKSBEsYLAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9icm93c2Vycy93aW5kb3dzL2F1eGlsaWFyeS1icm93c2luZy1jb250ZXh0cy9vcGVuZXIt
bm9vcGVuZXItc3RkZXJyLnR4dFVUBQADzHXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGRh
m0wYW1NJ6QAAADQJAABuABgAAAAAAAEAAACkgaHHCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvYnJvd3NlcnMvd2luZG93cy9hdXhpbGlhcnktYnJvd3NpbmctY29udGV4dHMv
b3BlbmVyLW5vcmVmZXJyZXItc3RkZXJyLnR4dFVUBQADzHXjWnV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAGVhm0x9mgnX+gAAAGgSAABjABgAAAAAAAEAAACkgTLJCwBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvd2luZG93cy9hdXhpbGlhcnktYnJvd3Npbmct
Y29udGV4dHMvb3BlbmVyLXN0ZGVyci50eHRVVAUAA81141p1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAABzWZtMAAAAAAAAAAAAAAAATQAYAAAAAAAAABAA7UHJygsAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3dpbmRvd3MvYnJvd3NpbmctY29udGV4dC1uYW1l
cy9VVAUAA9pn41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABlYZtMU8hTIOkAAAA0CQAAWwAY
AAAAAAABAAAApIFQywsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dz
ZXJzL3dpbmRvd3MvYnJvd3NpbmctY29udGV4dC1uYW1lcy8wMDEtc3RkZXJyLnR4dFVUBQADznXj
WnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGVhm0xJVdJW5wAAADQJAABbABgAAAAAAAEAAACk
gc7MCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvd2luZG93
cy9icm93c2luZy1jb250ZXh0LW5hbWVzLzAwMi1zdGRlcnIudHh0VVQFAAPOdeNadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAZWGbTBhcUVA2AQAAODcAAG8AGAAAAAAAAQAAAKSBSs4LAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy93aW5kb3dzL2Jyb3dzaW5n
LWNvbnRleHQtbmFtZXMvYnJvd3NpbmctY29udGV4dC1fYmxhbmstc3RkZXJyLnR4dFVUBQADznXj
WnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGVhm0xJVdJW5wAAADQJAAB6ABgAAAAAAAEAAACk
gSnQCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvd2luZG93
cy9icm93c2luZy1jb250ZXh0LW5hbWVzL2Jyb3dzaW5nLWNvbnRleHQtY2hvb3NlLXBhcmVudC0w
MDItc3RkZXJyLnR4dFVUBQADznXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGVhm0xJVdJW
5wAAADQJAAB6ABgAAAAAAAEAAACkgcTRCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvYnJvd3NlcnMvd2luZG93cy9icm93c2luZy1jb250ZXh0LW5hbWVzL2Jyb3dzaW5nLWNv
bnRleHQtY2hvb3NlLXBhcmVudC0wMDMtc3RkZXJyLnR4dFVUBQADznXjWnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAHNhm0xJVdJW5wAAADQJAAB2ABgAAAAAAAEAAACkgV/TCwBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvd2luZG93cy9icm93c2luZy1jb250
ZXh0LW5hbWVzL2Jyb3dzaW5nLWNvbnRleHQtY2hvb3NlLXNlbGYtMi1zdGRlcnIudHh0VVQFAAPp
deNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAc2GbTK6cHovnAAAANAkAAHUAGAAAAAAAAQAA
AKSB9tQLAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy93aW5k
b3dzL2Jyb3dzaW5nLWNvbnRleHQtbmFtZXMvYnJvd3NpbmctY29udGV4dC1kZWZhdWx0LW5hbWUt
c3RkZXJyLnR4dFVUBQAD6nXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHNhm0yr3faYNgEA
ADg3AABpABgAAAAAAAEAAACkgYzWCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvYnJvd3NlcnMvd2luZG93cy9icm93c2luZy1jb250ZXh0LW5hbWVzL2Nob29zZS1fYmxhbmst
MDAxLXN0ZGVyci50eHRVVAUAA+p141p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABzYZtMxPSK
segAAAA0CQAAaQAYAAAAAAABAAAApIFl2AsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Jyb3dzZXJzL3dpbmRvd3MvYnJvd3NpbmctY29udGV4dC1uYW1lcy9jaG9vc2UtX2Js
YW5rLTAwMi1zdGRlcnIudHh0VVQFAAPqdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAc2Gb
TMT0irHoAAAANAkAAGkAGAAAAAAAAQAAAKSB8NkLAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9icm93c2Vycy93aW5kb3dzL2Jyb3dzaW5nLWNvbnRleHQtbmFtZXMvY2hvb3Nl
LV9ibGFuay0wMDMtc3RkZXJyLnR4dFVUBQAD6nXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AHNhm0zE9Iqx6AAAADQJAABqABgAAAAAAAEAAACkgXvbCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvd2luZG93cy9icm93c2luZy1jb250ZXh0LW5hbWVzL2No
b29zZS1fcGFyZW50LTAwMi1zdGRlcnIudHh0VVQFAAPqdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAdGGbTI9nitjoAAAANAkAAGoAGAAAAAAAAQAAAKSBB90LAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy93aW5kb3dzL2Jyb3dzaW5nLWNvbnRleHQtbmFt
ZXMvY2hvb3NlLV9wYXJlbnQtMDAzLXN0ZGVyci50eHRVVAUAA+t141p1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAB0YZtMbKPJhOgAAAA0CQAAZwAYAAAAAAABAAAApIGT3gsAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3dpbmRvd3MvYnJvd3NpbmctY29udGV4
dC1uYW1lcy9jaG9vc2UtX3RvcC0wMDEtc3RkZXJyLnR4dFVUBQAD7HXjWnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAHRhm0xso8mE6AAAADQJAABnABgAAAAAAAEAAACkgRzgCwBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvd2luZG93cy9icm93c2luZy1jb250
ZXh0LW5hbWVzL2Nob29zZS1fdG9wLTAwMi1zdGRlcnIudHh0VVQFAAPsdeNadXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAdGGbTGyjyYToAAAANAkAAGcAGAAAAAAAAQAAAKSBpeELAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy93aW5kb3dzL2Jyb3dzaW5nLWNv
bnRleHQtbmFtZXMvY2hvb3NlLV90b3AtMDAzLXN0ZGVyci50eHRVVAUAA+x141p1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAB0YZtMbKPJhOgAAAA0CQAAagAYAAAAAAABAAAApIEu4wsAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3dpbmRvd3MvYnJvd3Npbmct
Y29udGV4dC1uYW1lcy9jaG9vc2UtZGVmYXVsdC0wMDEtc3RkZXJyLnR4dFVUBQAD7HXjWnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAGNhm0yaWrPS6AAAADQJAABXABgAAAAAAAEAAACkgbrkCwBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvd2luZG93cy9ub3Jl
ZmVycmVyLW51bGwtb3BlbmVyLXN0ZGVyci50eHRVVAUAA8l141p1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACABwYZtM9gsY7ucAAAA0CQAASwAYAAAAAAABAAAApIEz5gsAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3dpbmRvd3Mvbm9yZWZlcnJlci1zdGRlcnIu
dHh0VVQFAAPkdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAcGGbTKiDjM/5AAAAaBIAAFcA
GAAAAAAAAQAAAKSBn+cLAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93
c2Vycy93aW5kb3dzL25vcmVmZXJyZXItd2luZG93LW5hbWUtc3RkZXJyLnR4dFVUBQAD5HXjWnV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAGlZm0wAAAAAAAAAAAAAAAApABgAAAAAAAAAEADtQSnp
CwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL1VUBQADxWfjWnV4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAAG1cm0wAAAAAAAAAAAAAAABCABgAAAAAAAAAEADtQYzpCwBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2R5bmFtaWMtbWFya3VwLWlu
c2VydGlvbi9VVAUAA21t41p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABtXJtMAAAAAAAAAAAA
AAAAWwAYAAAAAAAAABAA7UEI6gsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2RvbS9keW5hbWljLW1hcmt1cC1pbnNlcnRpb24vY2xvc2luZy10aGUtaW5wdXQtc3RyZWFtL1VU
BQADbW3jWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAG1cm0yCY7Ky+wAAAM4NAAB3ABgAAAAA
AAEAAACkgZ3qCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2R5bmFt
aWMtbWFya3VwLWluc2VydGlvbi9jbG9zaW5nLXRoZS1pbnB1dC1zdHJlYW0vZG9jdW1lbnQuY2xv
c2UtMDEtc3RkZXJyLnR4dFVUBQADbW3jWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAGlZm0wA
AAAAAAAAAAAAAABbABgAAAAAAAAAEADtQUnsCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvZG9tL2R5bmFtaWMtbWFya3VwLWluc2VydGlvbi9vcGVuaW5nLXRoZS1pbnB1dC1z
dHJlYW0vVVQFAAPFZ+NadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAamGbTOf8CyPoAAAANAkA
AHYAGAAAAAAAAQAAAKSB3uwLAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9k
b20vZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uL29wZW5pbmctdGhlLWlucHV0LXN0cmVhbS9kb2N1
bWVudC5vcGVuLTAyLXN0ZGVyci50eHRVVAUAA9h141p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AACBWZtMAAAAAAAAAAAAAAAALwAYAAAAAAAAABAA7UF27gsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9VVAUAA/Fn41p1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAACBWZtMAAAAAAAAAAAAAAAAQAAYAAAAAAAAABAA7UHf7gsAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L1VUBQAD8WfjWnV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAIJZm0wAAAAAAAAAAAAAAABTABgAAAAAAAAAEADtQVnv
CwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVk
LWNvbnRlbnQvdGhlLWlmcmFtZS1lbGVtZW50L1VUBQAD9GfjWnV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAIJhm0zeslDq5wAAADQJAACDABgAAAAAAAEAAACkgebvCwBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWlmcmFt
ZS1lbGVtZW50L2lmcmFtZV9zYW5kYm94X2FsbG93X3RvcF9uYXZpZ2F0aW9uLTEtc3RkZXJyLnR4
dFVUBQADA3bjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIJhm0xuTCIu6AAAADQJAACDABgA
AAAAAAEAAACkgYrxCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWlmcmFtZS1lbGVtZW50L2lmcmFtZV9zYW5kYm94X2Fs
bG93X3RvcF9uYXZpZ2F0aW9uLTItc3RkZXJyLnR4dFVUBQADBHbjWnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAIJhm0xuTCIu6AAAADQJAACDABgAAAAAAAEAAACkgS/zCwBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWlm
cmFtZS1lbGVtZW50L2lmcmFtZV9zYW5kYm94X2FsbG93X3RvcF9uYXZpZ2F0aW9uLTMtc3RkZXJy
LnR4dFVUBQADBHbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIJhm0xuTCIu6AAAADQJAAB+
ABgAAAAAAAEAAACkgdT0CwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWlmcmFtZS1lbGVtZW50L2lmcmFtZV9zYW5kYm94
X3BvcHVwc19lc2NhcGluZy0xLXN0ZGVyci50eHRVVAUAAwR241p1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACACDYZtMbkwiLugAAAA0CQAAfgAYAAAAAAABAAAApIF09gsAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1pZnJh
bWUtZWxlbWVudC9pZnJhbWVfc2FuZGJveF9wb3B1cHNfZXNjYXBpbmctMi1zdGRlcnIudHh0VVQF
AAMFduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAg2GbTCXfIkfnAAAANAkAAH4AGAAAAAAA
AQAAAKSBFPgLAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
ZW1iZWRkZWQtY29udGVudC90aGUtaWZyYW1lLWVsZW1lbnQvaWZyYW1lX3NhbmRib3hfcG9wdXBz
X2VzY2FwaW5nLTMtc3RkZXJyLnR4dFVUBQADBXbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AINhm0wl3yJH5wAAADQJAACBABgAAAAAAAEAAACkgbP5CwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWlmcmFtZS1lbGVt
ZW50L2lmcmFtZV9zYW5kYm94X3BvcHVwc19ub25lc2NhcGluZy0xLXN0ZGVyci50eHRVVAUAAwV2
41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACDYZtMJd8iR+cAAAA0CQAAgQAYAAAAAAABAAAA
pIFV+wsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50L3RoZS1pZnJhbWUtZWxlbWVudC9pZnJhbWVfc2FuZGJveF9wb3B1cHNfbm9u
ZXNjYXBpbmctMi1zdGRlcnIudHh0VVQFAAMFduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
g2GbTCXfIkfnAAAANAkAAIEAGAAAAAAAAQAAAKSB9/wLAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtaWZyYW1lLWVsZW1l
bnQvaWZyYW1lX3NhbmRib3hfcG9wdXBzX25vbmVzY2FwaW5nLTMtc3RkZXJyLnR4dFVUBQADBXbj
WnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAINhm0yabnbfSwEAAMICAAB8ABgAAAAAAAEAAACk
gZn+CwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQvdGhlLWlmcmFtZS1lbGVtZW50L3NhbmRib3gtYXNjaWktY2FzZS1pbnNlbnNp
dGl2ZS1zdGRlcnIudHh0VVQFAAMGduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAelmbTAAA
AAAAAAAAAAAAADAAGAAAAAAAAAAQAO1BmgAMAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC93ZWJhcHBhcGlzL1VUBQAD52fjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAHpZ
m0wAAAAAAAAAAAAAAAA6ABgAAAAAAAAAEADtQQQBDABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvVVQFAAPnZ+NadXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAAelmbTAAAAAAAAAAAAAAAAEEAGAAAAAAAAAAQAO1BeAEMAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9ldmVudHMvVVQF
AAPnZ+NadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAe2GbTIjOxnrnAAAANAkAAHIAGAAAAAAA
AQAAAKSB8wEMAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlz
L3NjcmlwdGluZy9ldmVudHMvY29tcGlsZS1ldmVudC1oYW5kbGVyLXNldHRpbmdzLW9iamVjdHMt
c3RkZXJyLnR4dFVUBQAD+nXjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAIFZm0wAAAAAAAAA
AAAAAAAwABgAAAAAAAAAEADtQYYDDABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
Y3VyZS1jb250ZXh0cy9VVAUAA/Fn41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACDYZtMaH+P
MUQBAAA4NwAAVwAYAAAAAAABAAAApIHwAwwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZWN1cmUtY29udGV4dHMvYmFzaWMtcG9wdXAtYW5kLWlmcmFtZS10ZXN0cy1zdGRlcnIudHh0
VVQFAAMGduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAglmbTAAAAAAAAAAAAAAAADAAGAAA
AAAAAAAQAO1BxQUMAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL1VUBQAD9GfjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAIJZm0wAAAAAAAAAAAAAAAA+
ABgAAAAAAAAAEADtQS8GDABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9jYWNoZS1zdG9yYWdlL1VUBQAD9GfjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
AINZm0wAAAAAAAAAAAAAAABFABgAAAAAAAAAEADtQacGDABpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dpbmRvdy9VVAUAA/Vn41p1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACCWZtMxxb2s/QAAACLAgAAYAAYAAAAAAABAAAApIEm
BwwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUt
c3RvcmFnZS93aW5kb3cvY2FjaGUta2V5cy5odHRwcy1hY3R1YWwudHh0VVQFAAP0Z+NadXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAglmbTB6ou3QyAQAAEwMAAF4AGAAAAAAAAQAAAKSBtAgMAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3Jh
Z2Uvd2luZG93L2NhY2hlLWtleXMuaHR0cHMtZGlmZi50eHRVVAUAA/Rn41p1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACACCWZtMFd6fbMEAAABEAgAAYgAYAAAAAAABAAAApIF+CgwAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93aW5k
b3cvY2FjaGUta2V5cy5odHRwcy1leHBlY3RlZC50eHRVVAUAA/Rn41p1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACACDWZtMHWZAHksIAADrHAAAZgAYAAAAAAABAAAApIHbCwwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93aW5kb3cv
Y2FjaGUta2V5cy5odHRwcy1wcmV0dHktZGlmZi5odG1sVVQFAAP1Z+NadXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAApFmbTAAAAAAAAAAAAAAAAD8AGAAAAAAAAAAQAO1BxhQMAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1VUBQAD
NGjjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIRhm0yB42uK6AAAADQJAABnABgAAAAAAAEA
AACkgT8VDABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9hYm91dC1ibGFuay1yZXBsYWNlbWVudC5odHRwcy1zdGRlcnIudHh0VVQF
AAMIduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAiGGbTCtW3D/MAQAA9w4AAGsAGAAAAAAA
AQAAAKSByBYMAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLWNhbnZhcy10YWludGluZy1jYWNoZS5odHRwcy1zdGRlcnIu
dHh0VVQFAAMPduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAiGGbTNx75IfFAQAAtQ4AAGUA
GAAAAAAAAQAAAKSBORkMAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNhbnZhcy10YWludGluZy5odHRwcy1zdGRlcnIu
dHh0VVQFAAMQduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAiGGbTJ3t8BkoAQAAiwsAAF4A
GAAAAAAAAQAAAKSBnRsMAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNvcnMteGhyLmh0dHBzLXN0ZGVyci50eHRVVAUA
AxB241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACRYZtM8vvqygkBAACcGwAAZAAYAAAAAAAB
AAAApIFdHQwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtZnJhbWUtcmVzb3VyY2UuaHR0cHMtc3RkZXJyLnR4dFVUBQAD
InbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJNhm0yBvp9+XwEAAIwZAABkABgAAAAAAAEA
AACkgQQfDABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXNwb25zZS10YWludC5odHRwcy1zdGRlcnIudHh0VVQFAAMm
duNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAlGGbTLtJazb5AAAAaBIAAHMAGAAAAAAAAQAA
AKSBASEMAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2h0dHAtdG8taHR0cHMtcmVkaXJlY3QtYW5kLXJlZ2lzdGVyLmh0dHBzLXN0
ZGVyci50eHRVVAUAAyh241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACWYZtMmAWEZPkAAABo
EgAAXwAYAAAAAAABAAAApIGnIgwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGUtd2luZG93Lmh0dHBzLXN0ZGVyci50
eHRVVAUAAyt241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACYYZtMn+iQTEMBAAC/CQAAZgAY
AAAAAAABAAAApIE5JAwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0ZXItY2xvc2VkLXdpbmRvdy5odHRwcy1zdGRlcnIu
dHh0VVQFAAMwduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAnGGbTFzSEymlAAAABwEAAGsA
GAAAAAAAAQAAAKSBHCYMAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1zZWN1cml0eS1lcnJvci5odHRwcy1z
dGRlcnIudHh0VVQFAAM3duNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgApGGbTA0qYh5wAAAA
dAAAAGsAGAAAAAAAAQAAAKSBZicMAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dlYnNvY2tldC1pbi1zZXJ2aWNlLXdvcmtlci5o
dHRwcy1zdGRlcnIudHh0VVQFAANDduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAl1mbTAAA
AAAAAAAAAAAAAC8AGAAAAAAAAAAQAO1BeygMAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2ViLWFuaW1hdGlvbnMvVVQFAAMeaONadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAiVmb
TAAAAAAAAAAAAAAAADoAGAAAAAAAAAAQAO1B5CgMAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9VVAUAAwFo41p1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAACJWZtMAAAAAAAAAAAAAAAARAAYAAAAAAAAABAA7UFYKQwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy9pbnRlcmZhY2VzL0FuaW1hdGlvbi9V
VAUAAwFo41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACNYZtMd2mERvEAAADODQAAVAAYAAAA
AAABAAAApIHWKQwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9u
cy9pbnRlcmZhY2VzL0FuaW1hdGlvbi9yZWFkeS1zdGRlcnIudHh0VVQFAAMaduNadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAjmGbTHdphEbxAAAAzg0AAFgAGAAAAAAAAQAAAKSBVSsMAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9Bbmlt
YXRpb24vc3RhcnRUaW1lLXN0ZGVyci50eHRVVAUAAxt241p1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAACXWZtMAAAAAAAAAAAAAAAAPAAYAAAAAAAAABAA7UHYLAwAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy90aW1pbmctbW9kZWwvVVQFAAMeaONadXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAl1mbTAAAAAAAAAAAAAAAAEcAGAAAAAAAAAAQAO1BTi0MAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMvdGltaW5nLW1vZGVs
L2FuaW1hdGlvbnMvVVQFAAMeaONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAm2GbTCCegGH9
AAAAzg0AAGYAGAAAAAAAAQAAAKSBzy0MAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2ViLWFuaW1hdGlvbnMvdGltaW5nLW1vZGVsL2FuaW1hdGlvbnMvcGxheWluZy1hbi1hbmltYXRp
b24tc3RkZXJyLnR4dFVUBQADNnbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJxhm0z2qMpI
8AAAAM4NAABuABgAAAAAAAEAAACkgWwvDABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYi1hbmltYXRpb25zL3RpbWluZy1tb2RlbC9hbmltYXRpb25zL3NldC10aGUtYW5pbWF0aW9u
LXN0YXJ0LXRpbWUtc3RkZXJyLnR4dFVUBQADN3bjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
AItZm0wAAAAAAAAAAAAAAAApABgAAAAAAAAAEADtQQQxDABpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYmF1ZGlvL1VUBQADBWjjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAItZ
m0wAAAAAAAAAAAAAAAA3ABgAAAAAAAAAEADtQWcxDABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvVVQFAAMFaONadXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAAi1mbTAAAAAAAAAAAAAAAAFcAGAAAAAAAAAAQAO1B2DEMAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtY2hhbm5lbG1lcmdl
cm5vZGUtaW50ZXJmYWNlL1VUBQADBWjjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI9hm0yw
ugN6owAAAOcAAAB/ABgAAAAAAAEAAACkgWkyDABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWNoYW5uZWxtZXJnZXJub2RlLWludGVyZmFj
ZS9hdWRpb2NoYW5uZWxtZXJnZXItZGlzY29ubmVjdC1zdGRlcnIudHh0VVQFAAMdduNadXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAmVmbTAAAAAAAAAAAAAAAAAoAGAAAAAAAAAAQAO1BxTMMAGlu
c3BlY3Rvci9VVAUAAyFo41p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACWWZtMAAAAAAAAAAAA
AAAAEgAYAAAAAAAAABAA7UEJNAwAaW5zcGVjdG9yL2NvbnNvbGUvVVQFAAMcaONadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAlmGbTBtjH39MAwAAcSAAAD8AGAAAAAAAAQAAAKSBVTQMAGluc3Bl
Y3Rvci9jb25zb2xlL2NvbW1hbmQtbGluZS1hcGktZ2V0RXZlbnRMaXN0ZW5lcnMtc3RkZXJyLnR4
dFVUBQADLHbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJZhm0wFYg4/6AAAADQJAAAsABgA
AAAAAAEAAACkgRo4DABpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLW1lc3NhZ2Utc3RkZXJyLnR4
dFVUBQADLHbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJdhm0wFYg4/6AAAADQJAAAwABgA
AAAAAAEAAACkgWg5DABpbnNwZWN0b3IvY29uc29sZS9qcy1zb3VyY2UtbG9jYXRpb25zLXN0ZGVy
ci50eHRVVAUAAy1241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACXYZtMvq1+jI4BAACmFAAA
LAAYAAAAAAABAAAApIG6OgwAaW5zcGVjdG9yL2NvbnNvbGUvd2ViY29yZS1sb2dnaW5nLXN0ZGVy
ci50eHRVVAUAAy5241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACYYZtMdd0Leg4BAAACFwAA
NAAYAAAAAAABAAAApIGuPAwAaW5zcGVjdG9yL2NvbnNvbGUveC1mcmFtZS1vcHRpb25zLW1lc3Nh
Z2Utc3RkZXJyLnR4dFVUBQADL3bjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJZZm0wAAAAA
AAAAAAAAAAAOABgAAAAAAAAAEADtQSo+DABpbnNwZWN0b3IvY3NzL1VUBQADHGjjWnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAJZhm0xjb78N5wAAADQJAAAyABgAAAAAAAEAAACkgXI+DABpbnNw
ZWN0b3IvY3NzL2dldFN1cHBvcnRlZENTU1Byb3BlcnRpZXMtc3RkZXJyLnR4dFVUBQADK3bjWnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJdhm0xGVCOU8AAAAM4NAAAvABgAAAAAAAEAAACkgcU/
DABpbnNwZWN0b3IvY3NzL3BzZXVkby1lbGVtZW50LW1hdGNoZXMtc3RkZXJyLnR4dFVUBQADLXbj
WnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJdhm0yA3nUe8QAAAM4NAAAsABgAAAAAAAEAAACk
gR5BDABpbnNwZWN0b3IvY3NzL3NoYWRvdy1zY29wZWQtc3R5bGUtc3RkZXJyLnR4dFVUBQADLnbj
WnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJ1Zm0wAAAAAAAAAAAAAAAATABgAAAAAAAAAEADt
QXVCDABpbnNwZWN0b3IvZGVidWdnZXIvVVQFAAMqaONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAl2GbTPm3XvnoAAAANAkAAD8AGAAAAAAAAQAAAKSBwkIMAGluc3BlY3Rvci9kZWJ1Z2dlci9i
cmVhay1pbi1jb25zdHJ1Y3Rvci1iZWZvcmUtc3VwZXItc3RkZXJyLnR4dFVUBQADLnbjWnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAJhhm0wF+csR6AAAADQJAAA5ABgAAAAAAAEAAACkgSNEDABp
bnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24tZGV0YWNoLXN0ZGVyci50eHRV
VAUAAzB241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACYYZtMBfnLEegAAAA0CQAAQgAYAAAA
AAABAAAApIF+RQwAaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLXdpdGgt
YmFkLXNjcmlwdC1zdGRlcnIudHh0VVQFAAMwduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
mGGbTAX5yxHoAAAANAkAAEEAGAAAAAAAAQAAAKSB4kYMAGluc3BlY3Rvci9kZWJ1Z2dlci9icmVh
a3BvaW50LWNvbmRpdGlvbi13aXRoLWV4Y2VwdGlvbi1zdGRlcnIudHh0VVQFAAMwduNadXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAmGGbTAX5yxHoAAAANAkAADwAGAAAAAAAAQAAAKSBRUgMAGlu
c3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24tc3RkZXJyLnR4
dFVUBQADMHbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJhhm0wF+csR6AAAADQJAABFABgA
AAAAAAEAAACkgaNJDABpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNpZGUtY29uZGl0
b25zLWFuZC1hY3Rpb25zLXN0ZGVyci50eHRVVAUAAzB241p1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACACZYZtMTmrLeOgAAAA0CQAAPwAYAAAAAAABAAAApIEKSwwAaW5zcGVjdG9yL2RlYnVnZ2Vy
L2JyZWFrcG9pbnQtc3ludGF4LWVycm9yLXRvcC1sZXZlbC1zdGRlcnIudHh0VVQFAAMxduNadXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAmWGbTE5qy3joAAAANAkAADYAGAAAAAAAAQAAAKSBa0wM
AGluc3BlY3Rvci9kZWJ1Z2dlci9jYWxsLWZyYW1lLWZ1bmN0aW9uLW5hbWUtc3RkZXJyLnR4dFVU
BQADMXbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJlhm0xOast46AAAADQJAAAyABgAAAAA
AAEAAACkgcNNDABpbnNwZWN0b3IvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLWhvc3Qtc3RkZXJy
LnR4dFVUBQADMXbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJlhm0xOast46AAAADQJAAA3
ABgAAAAAAAEAAACkgRdPDABpbnNwZWN0b3IvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLW5vbnN0
cmljdC1zdGRlcnIudHh0VVQFAAMxduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAmWGbTE5q
y3joAAAANAkAADQAGAAAAAAAAQAAAKSBcFAMAGluc3BlY3Rvci9kZWJ1Z2dlci9jYWxsLWZyYW1l
LXRoaXMtc3RyaWN0LXN0ZGVyci50eHRVVAUAAzJ241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CACaYZtMwtFL3OcAAAA0CQAAMAAYAAAAAAABAAAApIHGUQwAaW5zcGVjdG9yL2RlYnVnZ2VyL2Rl
YnVnZ2VyLXN0YXRlbWVudC1zdGRlcnIudHh0VVQFAAM0duNadXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAmmGbTMLRS9znAAAANAkAADgAGAAAAAAAAQAAAKSBF1MMAGluc3BlY3Rvci9kZWJ1Z2dl
ci9ldmFsdWF0ZU9uQ2FsbEZyYW1lLWVycm9ycy1zdGRlcnIudHh0VVQFAAM0duNadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAmmGbTMLRS9znAAAANAkAADkAGAAAAAAAAQAAAKSBcFQMAGluc3Bl
Y3Rvci9kZWJ1Z2dlci9oaXQtYnJlYWtwb2ludC1mcm9tLWNvbnNvbGUtc3RkZXJyLnR4dFVUBQAD
NHbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJthm0yJQku16AAAADQJAAAtABgAAAAAAAEA
AACkgcpVDABpbnNwZWN0b3IvZGVidWdnZXIvcGF1c2Utb24tYXNzZXJ0LXN0ZGVyci50eHRVVAUA
AzV241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACbYZtMObw5cegAAAA0CQAALAAYAAAAAAAB
AAAApIEZVwwAaW5zcGVjdG9yL2RlYnVnZ2VyL3JlZ3Jlc3MtMTMzMTgyLXN0ZGVyci50eHRVVAUA
AzZ241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACcYZtMObw5cegAAAA0CQAALgAYAAAAAAAB
AAAApIFnWAwAaW5zcGVjdG9yL2RlYnVnZ2VyL3JlbW92ZUJyZWFrcG9pbnQtc3RkZXJyLnR4dFVU
BQADN3bjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJxhm0xyLzkY5wAAADQJAAAqABgAAAAA
AAEAAACkgbdZDABpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0UGFyc2VkLXN0ZGVyci50eHRVVAUA
Azd241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACcYZtMci85GOcAAAA0CQAAOAAYAAAAAAAB
AAAApIECWwwAaW5zcGVjdG9yL2RlYnVnZ2VyL3NlYXJjaEluQ29udGVudC1saW5lYnJlYWtzLXN0
ZGVyci50eHRVVAUAAzd241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACcYZtMci85GOcAAAA0
CQAAMwAYAAAAAAABAAAApIFbXAwAaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYWN0
aW9ucy1zdGRlcnIudHh0VVQFAAM3duNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAnGGbTHIv
ORjnAAAANAkAADgAGAAAAAAAAQAAAKSBr10MAGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3Bv
aW50LWF1dG9Db250aW51ZS1zdGRlcnIudHh0VVQFAAM3duNadXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAnGGbTHIvORjnAAAANAkAADIAGAAAAAAAAQAAAKSBCF8MAGluc3BlY3Rvci9kZWJ1Z2dl
ci9zZXRCcmVha3BvaW50LWNvbHVtbi1zdGRlcnIudHh0VVQFAAM3duNadXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAnGGbTK+aOKPoAAAANAkAADUAGAAAAAAAAQAAAKSBW2AMAGluc3BlY3Rvci9k
ZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbmRpdGlvbi1zdGRlcnIudHh0VVQFAAM4duNadXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAnGGbTK+aOKPoAAAANAkAAD0AGAAAAAAAAQAAAKSBsmEMAGlu
c3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LW9wdGlvbnMtZXhjZXB0aW9uLXN0ZGVyci50
eHRVVAUAAzh241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACcYZtMr5o4o+gAAAA0CQAAKwAY
AAAAAAABAAAApIERYwwAaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtc3RkZXJyLnR4
dFVUBQADOHbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJxhm0yvmjij6AAAADQJAAA6ABgA
AAAAAAEAAACkgV5kDABpbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJj
ZVVSTC1zdGRlcnIudHh0VVQFAAM4duNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAnWGbTK+a
OKPoAAAANAkAADYAGAAAAAAAAQAAAKSBumUMAGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRQYXVzZU9u
RXhjZXB0aW9ucy1hbGwtc3RkZXJyLnR4dFVUBQADOXbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAJ1hm0zkCTjK6AAAADQJAAA3ABgAAAAAAAEAAACkgRJnDABpbnNwZWN0b3IvZGVidWdnZXIv
c2V0UGF1c2VPbkV4Y2VwdGlvbnMtbm9uZS1zdGRlcnIudHh0VVQFAAM5duNadXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAnWGbTOQJOMroAAAANAkAADsAGAAAAAAAAQAAAKSBa2gMAGluc3BlY3Rv
ci9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy11bmNhdWdodC1zdGRlcnIudHh0VVQFAAM6
duNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAnWGbTI5hrPDoAAAANAkAACgAGAAAAAAAAQAA
AKSByGkMAGluc3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2VVUkxzLXN0ZGVyci50eHRVVAUAAzp241p1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACZWZtMAAAAAAAAAAAAAAAADgAYAAAAAAAAABAA7UES
awwAaW5zcGVjdG9yL2RvbS9VVAUAAyJo41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACYYZtM
sr+bvucAAAA0CQAAKgAYAAAAAAABAAAApIFaawwAaW5zcGVjdG9yL2RvbS9kb20tcmVtb3ZlLWV2
ZW50cy1zdGRlcnIudHh0VVQFAAMwduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAmGGbTLK/
m77nAAAANAkAACMAGAAAAAAAAQAAAKSBpWwMAGluc3BlY3Rvci9kb20vZG9tLXNlYXJjaC1zdGRl
cnIudHh0VVQFAAMwduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAmGGbTLK/m77nAAAANAkA
ADAAGAAAAAAAAQAAAKSB6W0MAGluc3BlY3Rvci9kb20vZG9tLXNlYXJjaC13aXRoLWNvbnRleHQt
c3RkZXJyLnR4dFVUBQADMHbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJlhm0z5LJvX5wAA
ADQJAAAeABgAAAAAAAEAAACkgTpvDABpbnNwZWN0b3IvZG9tL2ZvY3VzLXN0ZGVyci50eHRVVAUA
AzF241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACZYZtM+Syb1+cAAAA0CQAARgAYAAAAAAAB
AAAApIF5cAwAaW5zcGVjdG9yL2RvbS9nZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllc0Zvck5vZGVf
YXJpYUN1cnJlbnQtc3RkZXJyLnR4dFVUBQADMXbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AJlhm0z5LJvX5wAAADQJAABFABgAAAAAAAEAAACkgeBxDABpbnNwZWN0b3IvZG9tL2dldEFjY2Vz
c2liaWxpdHlQcm9wZXJ0aWVzRm9yTm9kZV9saXZlUmVnaW9uLXN0ZGVyci50eHRVVAUAAzJ241p1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACZYZtM47EaoecAAAA0CQAASwAYAAAAAAABAAAApIFG
cwwAaW5zcGVjdG9yL2RvbS9nZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllc0Zvck5vZGVfbW91c2VF
dmVudE5vZGVJZC1zdGRlcnIudHh0VVQFAAMyduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
mmGbTHWXG3PoAAAANAkAAC4AGAAAAAAAAQAAAKSBsnQMAGluc3BlY3Rvci9kb20vcmVtb3ZlLW11
bHRpcGxlLW5vZGVzLXN0ZGVyci50eHRVVAUAAzR241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CACaYZtMdZcbc+gAAAA0CQAAMgAYAAAAAAABAAAApIECdgwAaW5zcGVjdG9yL2RvbS9yZXF1ZXN0
LWNoaWxkLW5vZGVzLWRlcHRoLXN0ZGVyci50eHRVVAUAAzR241p1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAACXWZtMAAAAAAAAAAAAAAAADwAYAAAAAAAAABAA7UFWdwwAaW5zcGVjdG9yL2hlYXAv
VVQFAAMdaONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAmmGbTMFf3DHnAAAANAkAACIAGAAA
AAAAAQAAAKSBn3cMAGluc3BlY3Rvci9oZWFwL3RyYWNraW5nLXN0ZGVyci50eHRVVAUAAzN241p1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACXWZtMAAAAAAAAAAAAAAAAEQAYAAAAAAAAABAA7UHi
eAwAaW5zcGVjdG9yL2xheWVycy9VVAUAAx5o41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACZ
YZtML99YIecAAAA0CQAALAAYAAAAAAABAAAApIEteQwAaW5zcGVjdG9yL2xheWVycy9sYXllcnMt
YW5vbnltb3VzLXN0ZGVyci50eHRVVAUAAzF241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACZ
YZtML99YIecAAAA0CQAAPwAYAAAAAAABAAAApIF6egwAaW5zcGVjdG9yL2xheWVycy9sYXllcnMt
YmxlbmRpbmctY29tcG9zaXRpbmctcmVhc29ucy1zdGRlcnIudHh0VVQFAAMxduNadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAmWGbTJbgWw3yAAAANAkAADYAGAAAAAAAAQAAAKSB2nsMAGluc3Bl
Y3Rvci9sYXllcnMvbGF5ZXJzLWNvbXBvc2l0aW5nLXJlYXNvbnMtc3RkZXJyLnR4dFVUBQADMnbj
WnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJlhm0w1QtlX6AAAADQJAAArABgAAAAAAAEAAACk
gTx9DABpbnNwZWN0b3IvbGF5ZXJzL2xheWVycy1mb3Itbm9kZS1zdGRlcnIudHh0VVQFAAMyduNa
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAmWGbTDVC2VfoAAAANAkAADQAGAAAAAAAAQAAAKSB
iX4MAGluc3BlY3Rvci9sYXllcnMvbGF5ZXJzLWdlbmVyYXRlZC1jb250ZW50LXN0ZGVyci50eHRV
VAUAAzJ241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACZYZtMNULZV+gAAAA0CQAANAAYAAAA
AAABAAAApIHffwwAaW5zcGVjdG9yL2xheWVycy9sYXllcnMtcmVmbGVjdGVkLWNvbnRlbnQtc3Rk
ZXJyLnR4dFVUBQADMnbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJdZm0wAAAAAAAAAAAAA
AAARABgAAAAAAAAAEADtQTWBDABpbnNwZWN0b3IvbWVtb3J5L1VUBQADHmjjWnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAJlhm0w1QtlX6AAAADQJAAAkABgAAAAAAAEAAACkgYCBDABpbnNwZWN0
b3IvbWVtb3J5L3RyYWNraW5nLXN0ZGVyci50eHRVVAUAAzJ241p1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAACYWZtMAAAAAAAAAAAAAAAADwAYAAAAAAAAABAA7UHGggwAaW5zcGVjdG9yL3BhZ2Uv
VVQFAAMfaONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAmmGbTNvCXUfoAAAANAkAACEAGAAA
AAAAAQAAAKSBD4MMAGluc3BlY3Rvci9wYWdlL2FyY2hpdmUtc3RkZXJyLnR4dFVUBQADM3bjWnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJphm0wGd1z85wAAADQJAABCABgAAAAAAAEAAACkgVKE
DABpbnNwZWN0b3IvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24tYXN5bmMtZGVsZWdhdGVz
LXN0ZGVyci50eHRVVAUAAzR241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACaYZtMBndc/OcA
AAA0CQAAMgAYAAAAAAABAAAApIG1hQwAaW5zcGVjdG9yL3BhZ2UvZnJhbWVTY2hlZHVsZWROYXZp
Z2F0aW9uLXN0ZGVyci50eHRVVAUAAzR241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACaYZtM
Bndc/OcAAAA0CQAALQAYAAAAAAABAAAApIEIhwwAaW5zcGVjdG9yL3BhZ2UvZnJhbWVTdGFydGVk
TG9hZGluZy1zdGRlcnIudHh0VVQFAAM0duNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAmmGb
TAZ3XPznAAAANAkAAD0AGAAAAAAAAQAAAKSBVogMAGluc3BlY3Rvci9wYWdlL21lZGlhLXF1ZXJ5
LWxpc3QtbGlzdGVuZXItZXhjZXB0aW9uLXN0ZGVyci50eHRVVAUAAzR241p1eAsAAQT1AQAABBQA
AABQSwECHgMKAAAAAACYWZtMAAAAAAAAAAAAAAAAEwAYAAAAAAAAABAA7UG0iQwAaW5zcGVjdG9y
L3Byb3RvY29sL1VUBQADH2jjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJphm0wGd1z85wAA
ADQJAABAABgAAAAAAAEAAACkgQGKDABpbnNwZWN0b3IvcHJvdG9jb2wvYmFja2VuZC1kaXNwYXRj
aGVyLWFyZ3VtZW50LWVycm9ycy1zdGRlcnIudHh0VVQFAAM0duNadXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAm2GbTAZ3XPznAAAANAkAAEkAGAAAAAAAAQAAAKSBYosMAGluc3BlY3Rvci9wcm90
b2NvbC9iYWNrZW5kLWRpc3BhdGNoZXItbWFsZm9ybWVkLW1lc3NhZ2UtZXJyb3JzLXN0ZGVyci50
eHRVVAUAAzV241p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACYWZtMAAAAAAAAAAAAAAAAEgAY
AAAAAAAAABAA7UHMjAwAaW5zcGVjdG9yL3J1bnRpbWUvVVQFAAMfaONadXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAm2GbTE3kXJXoAAAANAkAADMAGAAAAAAAAQAAAKSBGI0MAGluc3BlY3Rvci9y
dW50aW1lL0NvbW1hbmRMaW5lQVBJLWluc3BlY3Qtc3RkZXJyLnR4dFVUBQADNXbjWnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAJthm0xN5FyV6AAAADQJAAAqABgAAAAAAAEAAACkgW2ODABpbnNw
ZWN0b3IvcnVudGltZS9nZXRQcm9wZXJ0aWVzLXN0ZGVyci50eHRVVAUAAzV241p1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAAAAACaWZtMAAAAAAAAAAAAAAAAHAAYAAAAAAAAABAA7UG5jwwAaW5zcGVj
dG9yL3NhbXBsaW5nLXByb2ZpbGVyL1VUBQADI2jjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AJthm0zo99js5wAAADQJAAAsABgAAAAAAAEAAACkgQ+QDABpbnNwZWN0b3Ivc2FtcGxpbmctcHJv
ZmlsZXIvYmFzaWMtc3RkZXJyLnR4dFVUBQADNXbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AJxhm0zo99js5wAAADQJAABEABgAAAAAAAEAAACkgVyRDABpbnNwZWN0b3Ivc2FtcGxpbmctcHJv
ZmlsZXIvY2FsbC1mcmFtZS13aXRoLWRvbS1mdW5jdGlvbnMtc3RkZXJyLnR4dFVUBQADN3bjWnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJxhm0wTmqpB5wAAADQJAAA2ABgAAAAAAAEAAACkgcGS
DABpbnNwZWN0b3Ivc2FtcGxpbmctcHJvZmlsZXIvZXZhbC1zb3VyY2UtdXJsLXN0ZGVyci50eHRV
VAUAAzd241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACcYZtME5qqQecAAAA0CQAAPwAYAAAA
AAABAAAApIEYlAwAaW5zcGVjdG9yL3NhbXBsaW5nLXByb2ZpbGVyL2V4cHJlc3Npb24tbG9jYXRp
b24taW5mby1zdGRlcnIudHh0VVQFAAM3duNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAnGGb
TBOaqkHnAAAANAkAADcAGAAAAAAAAQAAAKSBeJUMAGluc3BlY3Rvci9zYW1wbGluZy1wcm9maWxl
ci9tYW55LWNhbGwtZnJhbWVzLXN0ZGVyci50eHRVVAUAAzh241p1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACACcYZtMzi+r+ucAAAA0CQAAQAAYAAAAAAABAAAApIHQlgwAaW5zcGVjdG9yL3NhbXBs
aW5nLXByb2ZpbGVyL25hbWVkLWZ1bmN0aW9uLWV4cHJlc3Npb24tc3RkZXJyLnR4dFVUBQADOHbj
WnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJhZm0wAAAAAAAAAAAAAAAAaABgAAAAAAAAAEADt
QTGYDABpbnNwZWN0b3Ivc2NyaXB0LXByb2ZpbGVyL1VUBQADIGjjWnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAJthm0w+BBsa5wAAADQJAAAzABgAAAAAAAEAAACkgYWYDABpbnNwZWN0b3Ivc2Ny
aXB0LXByb2ZpbGVyL2V2ZW50LXR5cGUtQVBJLXN0ZGVyci50eHRVVAUAAzZ241p1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACACbYZtMjvpp3ucAAAA0CQAAOQAYAAAAAAABAAAApIHZmQwAaW5zcGVj
dG9yL3NjcmlwdC1wcm9maWxlci9ldmVudC10eXBlLU1pY3JvdGFzay1zdGRlcnIudHh0VVQFAAM2
duNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAm2GbTI76ad7nAAAANAkAADUAGAAAAAAAAQAA
AKSBM5sMAGluc3BlY3Rvci9zY3JpcHQtcHJvZmlsZXIvZXZlbnQtdHlwZS1PdGhlci1zdGRlcnIu
dHh0VVQFAAM2duNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAm2GbTI76ad7nAAAANAkAAC0A
GAAAAAAAAQAAAKSBiZwMAGluc3BlY3Rvci9zY3JpcHQtcHJvZmlsZXIvdHJhY2tpbmctc3RkZXJy
LnR4dFVUBQADNnbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJpZm0wAAAAAAAAAAAAAAAAV
ABgAAAAAAAAAEADtQdedDABpbnNwZWN0b3IvdW5pdC10ZXN0cy9VVAUAAyRo41p1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACACbYZtM/RouUegAAAA0CQAAMAAYAAAAAAABAAAApIEmngwAaW5zcGVj
dG9yL3VuaXQtdGVzdHMvYXN5bmMtdGVzdC1zdWl0ZS1zdGRlcnIudHh0VVQFAAM2duNadXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAnWGbTCCvL+roAAAANAkAAEgAGAAAAAAAAQAAAKSBeJ8MAGlu
c3BlY3Rvci91bml0LXRlc3RzL3Byb3RvY29sLXRlc3QtZGlzcGF0Y2gtZXZlbnQtdG8tZnJvbnRl
bmQtc3RkZXJyLnR4dFVUBQADOXbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJ1hm0wgry/q
6AAAADQJAAAvABgAAAAAAAEAAACkgeKgDABpbnNwZWN0b3IvdW5pdC10ZXN0cy9zeW5jLXRlc3Qt
c3VpdGUtc3RkZXJyLnR4dFVUBQADOnbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJlZm0wA
AAAAAAAAAAAAAAARABgAAAAAAAAAEADtQTOiDABpbnNwZWN0b3Ivd29ya2VyL1VUBQADIWjjWnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJthm0yO+mne5wAAADQJAAA3ABgAAAAAAAEAAACkgX6i
DABpbnNwZWN0b3Ivd29ya2VyL3dvcmtlci1jcmVhdGUtYW5kLXRlcm1pbmF0ZS1zdGRlcnIudHh0
VVQFAAM2duNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAmVmbTAAAAAAAAAAAAAAAABYAGAAA
AAAAAAAQAO1B1qMMAGludGVyc2VjdGlvbi1vYnNlcnZlci9VVAUAAyJo41p1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACACcYZtM1z6C6/kAAABoEgAARgAYAAAAAAABAAAApIEmpAwAaW50ZXJzZWN0
aW9uLW9ic2VydmVyL2ludGVyc2VjdGlvbi1vYnNlcnZlci1lbnRyeS1pbnRlcmZhY2Utc3RkZXJy
LnR4dFVUBQADN3bjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJpZm0wAAAAAAAAAAAAAAAAH
ABgAAAAAAAAAEADtQZ+lDABqcXVlcnkvVVQFAAMkaONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAmlmbTOgKxf3vAAAAzg0AABwAGAAAAAAAAQAAAKSB4KUMAGpxdWVyeS9hdHRyaWJ1dGVzLXN0
ZGVyci50eHRVVAUAAyRo41p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACgXJtMAAAAAAAAAAAA
AAAAAwAYAAAAAAAAABAA7UElpwwAanMvVVQFAAPLbeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAAoFybTAAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1BYqcMAGpzL2J1aWx0aW5zL1VUBQADy23j
WnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJxhm0zVWvsx/AAAAM4NAAArABgAAAAAAAEAAACk
gainDABqcy9idWlsdGlucy9zaGllbGRpbmctdHlwZWRhcnJheS1zdGRlcnIudHh0VVQFAAM4duNa
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAApVmbTAAAAAAAAAAAAAAAAAcAGAAAAAAAAAAQAO1B
CakMAGpzL2RvbS9VVAUAAzZo41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACjYZtMrJHQ+OcA
AAA0CQAAMQAYAAAAAAABAAAApIFKqQwAanMvZG9tL2Z1bmN0aW9uLWNvbnN0cnVjdG9yLXRoaXMt
dmFsdWUtc3RkZXJyLnR4dFVUBQADQnbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKVhm0yX
sdeiyAAAAE0BAAAmABgAAAAAAAEAAACkgZyqDABqcy9kb20vcmVmbGVjdC1zZXQtb250by1kb20t
c3RkZXJyLnR4dFVUBQADRnbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKZhm0x+UEnk7wAA
AM4NAAAgABgAAAAAAAEAAACkgcSrDABqcy9kb20vcmVncmVzcy0xNTcyNDYtc3RkZXJyLnR4dFVU
BQADR3bjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKZhm0wL1zGy/AAAAM4NAAAoABgAAAAA
AAEAAACkgQ2tDABqcy9kb20vcmVtb3ZpbmctQ2YtY2hhcmFjdGVycy1zdGRlcnIudHh0VVQFAANI
duNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAumGbTKcJYprnAAAANAkAADUAGAAAAAAAAQAA
AKSBa64MAGpzL2luc3RhbmNlLXByb3BlcnR5LWdldHRlci1vdGhlci1pbnN0YW5jZS1zdGRlcnIu
dHh0VVQFAANvduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAplmbTAAAAAAAAAAAAAAAABgA
GAAAAAAAAAAQAO1Bwa8MAGxlZ2FjeS1hbmltYXRpb24tZW5naW5lL1VUBQADN2jjWnV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAAKZZm0wAAAAAAAAAAAAAAAAjABgAAAAAAAAAEADtQROwDABsZWdh
Y3ktYW5pbWF0aW9uLWVuZ2luZS9hbmltYXRpb25zL1VUBQADN2jjWnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAKlhm0wZhz4C8AAAAM4NAABJABgAAAAAAAEAAACkgXCwDABsZWdhY3ktYW5pbWF0
aW9uLWVuZ2luZS9hbmltYXRpb25zL2NyYXNoLW9uLXJlbW92aW5nLWFuaW1hdGlvbi1zdGRlcnIu
dHh0VVQFAANNduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAo1mbTAAAAAAAAAAAAAAAAAcA
GAAAAAAAAAAQAO1B47EMAGxvYWRlci9VVAUAAzJo41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CACkYZtMkTL18ugAAAA0CQAALgAYAAAAAAABAAAApIEksgwAbG9hZGVyL2dvLWJhY2stY2FjaGVk
LW1haW4tcmVzb3VyY2Utc3RkZXJyLnR4dFVUBQADRHbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAAKNZm0wAAAAAAAAAAAAAAAAZABgAAAAAAAAAEADtQXSzDABsb2FkZXIvbmF2aWdhdGlvbi1w
b2xpY3kvVVQFAAMyaONadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAApFmbTAAAAAAAAAAAAAAA
ADMAGAAAAAAAAAAQAO1Bx7MMAGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1l
eHRlcm5hbC11cmxzL1VUBQADNGjjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKRhm0wQWMis
5wAAADQJAABvABgAAAAAAAEAAACkgTS0DABsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxk
LW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGgtZmxhZy1m
cm9tLXN1YmZyYW1lLXN0ZGVyci50eHRVVAUAA0R241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CACkYZtMEFjIrOcAAAA0CQAAYQAYAAAAAAABAAAApIHEtQwAbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay13
aXRoLWZsYWctc3RkZXJyLnR4dFVUBQADRHbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKVh
m0wQWMis5wAAADQJAAByABgAAAAAAAEAAACkgUa3DABsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kv
c2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGhv
dXQtZmxhZy1mcm9tLXN1YmZyYW1lLXN0ZGVyci50eHRVVAUAA0V241p1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAClYZtMW8vIxecAAAA0CQAAZAAYAAAAAAABAAAApIHZuAwAbG9hZGVyL25hdmln
YXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdl
dC1ibGFuay13aXRob3V0LWZsYWctc3RkZXJyLnR4dFVUBQADRXbjWnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAKVhm0xby8jF5wAAADQJAABuABgAAAAAAAEAAACkgV66DABsb2FkZXIvbmF2aWdh
dGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtd2luZG93
LW9wZW4td2l0aC1mbGFnLWZyb20tc3ViZnJhbWUtc3RkZXJyLnR4dFVUBQADRXbjWnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAKVhm0xby8jF5wAAADQJAABgABgAAAAAAAEAAACkge27DABsb2Fk
ZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1
cmUtd2luZG93LW9wZW4td2l0aC1mbGFnLXN0ZGVyci50eHRVVAUAA0V241p1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAClYZtMW8vIxecAAAA0CQAAcQAYAAAAAAABAAAApIFuvQwAbG9hZGVyL25h
dmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXdp
bmRvdy1vcGVuLXdpdGhvdXQtZmxhZy1mcm9tLXN1YmZyYW1lLXN0ZGVyci50eHRVVAUAA0V241p1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAClYZtMcrHgxvAAAADODQAAYwAYAAAAAAABAAAApIEA
vwwAbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNl
ci1nZXN0dXJlLXdpbmRvdy1vcGVuLXdpdGhvdXQtZmxhZy1zdGRlcnIudHh0VVQFAANFduNadXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgApWGbTFvLyMXnAAAANAkAAGEAGAAAAAAAAQAAAKSBjcAM
AGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3dpbmRv
dy1vcGVuLXdpdGgtZmxhZy1mcm9tLXN1YmZyYW1lLXN0ZGVyci50eHRVVAUAA0V241p1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAClYZtMW8vIxecAAAA0CQAAUwAYAAAAAAABAAAApIEPwgwAbG9h
ZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9w
ZW4td2l0aC1mbGFnLXN0ZGVyci50eHRVVAUAA0V241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAClYZtMW8vIxecAAAA0CQAAZAAYAAAAAAABAAAApIGDwwwAbG9hZGVyL25hdmlnYXRpb24tcG9s
aWN5L3Nob3VsZC1vcGVuLWV4dGVybmFsLXVybHMvd2luZG93LW9wZW4td2l0aG91dC1mbGFnLWZy
b20tc3ViZnJhbWUtc3RkZXJyLnR4dFVUBQADRXbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AKVhm0xby8jF5wAAADQJAABWABgAAAAAAAEAAACkgQjFDABsb2FkZXIvbmF2aWdhdGlvbi1wb2xp
Y3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy93aW5kb3ctb3Blbi13aXRob3V0LWZsYWctc3Rk
ZXJyLnR4dFVUBQADRXbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAKphm0wAAAAAAAAAAAAA
AAAGABgAAAAAAAAAEADtQX/GDABtZWRpYS9VVAUAA09241p1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAClYZtMq3XCFwABAADODQAAPAAYAAAAAAABAAAApIG/xgwAbWVkaWEvYWNjZXNzaWJpbGl0
eS1jbG9zZWQtY2FwdGlvbnMtaGFzLWFyaWEtb3ducy1zdGRlcnIudHh0VVQFAANGduNadXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAp2GbTCzajfz7AAAAzg0AACwAGAAAAAAAAQAAAKSBNcgMAG1l
ZGlhL2FpcnBsYXktdGFyZ2V0LWF2YWlsYWJpbGl0eS1zdGRlcnIudHh0VVQFAANJduNadXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAp2GbTABeKtr8AAAAzg0AACoAGAAAAAAAAQAAAKSBlskMAG1l
ZGlhL2F1ZGlvLWFzLXZpZGVvLWZ1bGxzY3JlZW4tc3RkZXJyLnR4dFVUBQADSnbjWnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAKhhm0zWaGDz8AAAAM4NAAArABgAAAAAAAEAAACkgfbKDABtZWRp
YS9hdWRpby1jb25jdXJyZW50LXN1cHBvcnRlZC1zdGRlcnIudHh0VVQFAANMduNadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAqWGbTEzktPUHAQAAaBIAAC8AGAAAAAAAAQAAAKSBS8wMAG1lZGlh
L2F1ZGlvLWNvbnRyb2xzLWRvLW5vdC1mYWRlLW91dC1zdGRlcnIudHh0VVQFAANNduNadXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAqWGbTAbBnKACAQAAAhcAAB8AGAAAAAAAAQAAAKSBu80MAG1l
ZGlhL2F1ZGlvLWRhdGEtdXJsLXN0ZGVyci50eHRVVAUAA05241p1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACACqYZtMfYBttPEAAADODQAAOAAYAAAAAAABAAAApIEWzwwAbWVkaWEvYXVkaW8tZGVs
ZXRlLXdoaWxlLXNsaWRlci10aHVtYi1jbGlja2VkLXN0ZGVyci50eHRVVAUAA09241p1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACACrYZtMQ+9O7AABAADODQAAJgAYAAAAAAABAAAApIF50AwAbWVk
aWEvYXVkaW8tbXBlZzQtc3VwcG9ydGVkLXN0ZGVyci50eHRVVAUAA1F241p1eAsAAQT1AQAABBQA
AABQSwECHgMKAAAAAACtXJtMAAAAAAAAAAAAAAAADwAYAAAAAAAAABAA7UHZ0QwAbWVkaWEvY29u
dHJvbHMvVVQFAAPlbeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAqGGbTKqUkRfwAAAAzg0A
ACoAGAAAAAAAAQAAAKSBItIMAG1lZGlhL2NvbnRyb2xzL2FpcnBsYXktY29udHJvbHMtc3RkZXJy
LnR4dFVUBQADTHbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKlhm0w3NRCnBwEAAGgSAAA7
ABgAAAAAAAEAAACkgXbTDABtZWRpYS9jb250cm9scy9kZWZhdWx0LXNpemUtc2hvdWxkLXNob3ct
c2NydWJiZXItc3RkZXJyLnR4dFVUBQADTnbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKph
m0zjtKisAgEAAAIXAAAmABgAAAAAAAEAAACkgfLUDABtZWRpYS9jb250cm9scy9lbGVtZW50T3Jk
ZXItc3RkZXJyLnR4dFVUBQADT3bjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAK1cm0ykNmfG
2wAAAGUBAABAABgAAAAAAAEAAACkgVTWDABtZWRpYS9jb250cm9scy9waXAtcGxhY2Vob2xkZXIt
d2l0aG91dC12aWRlby1jb250cm9scy1hY3R1YWwudHh0VVQFAAPlbeNadXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgArVybTHYIBIQfAQAAUQIAAD4AGAAAAAAAAQAAAKSBqdcMAG1lZGlhL2NvbnRy
b2xzL3BpcC1wbGFjZWhvbGRlci13aXRob3V0LXZpZGVvLWNvbnRyb2xzLWRpZmYudHh0VVQFAAPl
beNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgArVybTL9Ss3ncAAAAiwEAAEIAGAAAAAAAAQAA
AKSBQNkMAG1lZGlhL2NvbnRyb2xzL3BpcC1wbGFjZWhvbGRlci13aXRob3V0LXZpZGVvLWNvbnRy
b2xzLWV4cGVjdGVkLnR4dFVUBQAD5W3jWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAK1cm0wu
2j1lKwgAAL4cAABGABgAAAAAAAEAAACkgZjaDABtZWRpYS9jb250cm9scy9waXAtcGxhY2Vob2xk
ZXItd2l0aG91dC12aWRlby1jb250cm9scy1wcmV0dHktZGlmZi5odG1sVVQFAAPlbeNadXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgArWGbTBENvU38AAAAzg0AACYAGAAAAAAAAQAAAKSBQ+MMAG1l
ZGlhL2NvbnRyb2xzLWRyYWctdGltZWJhci1zdGRlcnIudHh0VVQFAANVduNadXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgArWGbTAGxoe7wAAAAzg0AACoAGAAAAAAAAQAAAKSBn+QMAG1lZGlhL2Nv
bnRyb2xzLWxheW91dC1kaXJlY3Rpb24tc3RkZXJyLnR4dFVUBQADVXbjWnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAK5hm0x0Ntm4/AAAAM4NAAAwABgAAAAAAAEAAACkgfPlDABtZWRpYS9jb250
cm9scy1yaWdodC1jbGljay1vbi10aW1lYmFyLXN0ZGVyci50eHRVVAUAA1d241p1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACACuYZtMzKJ9Ie8AAADODQAAPgAYAAAAAAABAAAApIFZ5wwAbWVkaWEv
Y29udHJvbHMtc2hvdWxkLW5vdC10cmlnZ2VyLWlzb2xhdGVzLWJsZW5kaW5nLXN0ZGVyci50eHRV
VAUAA1h241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACuYZtMR292tecAAAA0CQAAQQAYAAAA
AAABAAAApIHA6AwAbWVkaWEvY3Jhc2gtY2xvc2luZy1wYWdlLXdpdGgtbWVkaWEtYXMtcGx1Z2lu
LWZhbGxiYWNrLXN0ZGVyci50eHRVVAUAA1h241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACv
YZtMLtbdCF8AAABmAAAAIgAYAAAAAAABAAAApIEi6gwAbWVkaWEvZXZlbnQtcXVldWUtY3Jhc2gt
c3RkZXJyLnR4dFVUBQADWXbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAKdZm0wAAAAAAAAA
AAAAAAAKABgAAAAAAAAAEADtQd3qDABtZWRpYS9tYWMvVVQFAAM6aONadXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAqWGbTJx3gfz9AAAAzg0AADMAGAAAAAAAAQAAAKSBIesMAG1lZGlhL21hYy9j
b250cm9scy1wYW5lbC1ub3QtY2xpcHBlZC1vdXQtc3RkZXJyLnR4dFVUBQADTnbjWnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIALBhm0zVoeXY8AAAAM4NAAArABgAAAAAAAEAAACkgYvsDABtZWRp
YS9tZWRpYS1jYXB0aW9ucy1uby1jb250cm9scy1zdGRlcnIudHh0VVQFAANcduNadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAs2GbTN44b53wAAAAzg0AAB8AGAAAAAAAAQAAAKSB4O0MAG1lZGlh
L21lZGlhLWNhcHRpb25zLXN0ZGVyci50eHRVVAUAA2J241p1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAC1YZtM4SDddwwBAABoEgAALAAYAAAAAAABAAAApIEp7wwAbWVkaWEvbWVkaWEtY29udHJv
bGxlci1kcmFnLWNyYXNoLXN0ZGVyci50eHRVVAUAA2V241p1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAC2YZtMzLdPCPsAAADODQAALgAYAAAAAAABAAAApIGb8AwAbWVkaWEvbWVkaWEtY29udHJv
bGxlci1wbGF5YmFja3JhdGUtc3RkZXJyLnR4dFVUBQADZ3bjWnV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIALdhm0xIG1AU/AAAAM4NAAAtABgAAAAAAAEAAACkgf7xDABtZWRpYS9tZWRpYS1jb250
cm9scy1hY2Nlc3NpYmlsaXR5LXN0ZGVyci50eHRVVAUAA2l241p1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAC3YZtMaYh0X/AAAADODQAAKwAYAAAAAAABAAAApIFh8wwAbWVkaWEvbWVkaWEtY29u
dHJvbHMtY2xvbmUtY3Jhc2gtc3RkZXJyLnR4dFVUBQADanbjWnV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIALhhm0yFCIzb/AAAAM4NAAAlABgAAAAAAAEAAACkgbb0DABtZWRpYS9tZWRpYS1jb250
cm9scy1jbG9uZS1zdGRlcnIudHh0VVQFAANrduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
uGGbTE+eyQH8AAAAzg0AADkAGAAAAAAAAQAAAKSBEfYMAG1lZGlhL21lZGlhLWNvbnRyb2xzLXNo
YWRvdy1jb25zdHJ1Y3Rpb24tY3Jhc2gtc3RkZXJyLnR4dFVUBQADbHbjWnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIALphm0zJ+fNd8AAAAM4NAAA+ABgAAAAAAAEAAACkgYD3DABtZWRpYS9tZWRp
YS1jb250cm9scy10aW1lbGluZS11cGRhdGVzLWFmdGVyLXBsYXlpbmctc3RkZXJyLnR4dFVUBQAD
b3bjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALphm0y2Abos8QAAAM4NAAAfABgAAAAAAAEA
AACkgej4DABtZWRpYS9tZWRpYS1kaXNhYmxlZC1zdGRlcnIudHh0VVQFAANvduNadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAumGbTKuy3VkHAQAAaBIAADYAGAAAAAAAAQAAAKSBMvoMAG1lZGlh
L21lZGlhLWRvY3VtZW50LWF1ZGlvLWNvbnRyb2xzLXZpc2libGUtc3RkZXJyLnR4dFVUBQADcHbj
WnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALthm0xRGMjt/AAAAM4NAAAqABgAAAAAAAEAAACk
gan7DABtZWRpYS9tZWRpYS1kb2N1bWVudC1hdWRpby1zaXplLXN0ZGVyci50eHRVVAUAA3F241p1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACoWZtMAAAAAAAAAAAAAAAAFgAYAAAAAAAAABAA7UEJ
/QwAbWVkaWEvbWVkaWEtZnJhZ21lbnRzL1VUBQADO2jjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAKpcm0zvMagtFAEAAAIXAAAnABgAAAAAAAEAAACkgVn9DABtZWRpYS9tZWRpYS1mcmFnbWVu
dHMvVEMwMDAxLXN0ZGVyci50eHRVVAUAA+Bt41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADE
YZtMraYpZQIBAADODQAAMgAYAAAAAAABAAAApIHO/gwAbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1y
ZXR1cm4tdG8taW5saW5lLXN0ZGVyci50eHRVVAUAA39241p1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADEYZtMecEniu8AAADODQAAIQAYAAAAAAABAAAApIE8AA0AbWVkaWEvbWVkaWEtbG9hZC1l
dmVudC1zdGRlcnIudHh0VVQFAAN/duNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAqmGbTAAA
AAAAAAAAAAAAABMAGAAAAAAAAAAQAO1BhgENAG1lZGlhL21lZGlhLXNvdXJjZS9VVAUAA09241p1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACqYZtM9pBDJP0AAADODQAAPgAYAAAAAAABAAAApIHT
AQ0AbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hYm9ydC1yZXNldHMtcGFyc2VyLXN0
ZGVyci50eHRVVAUAA09241p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACsYZtMAAAAAAAAAAAA
AAAAHAAYAAAAAAAAABAA7UFIAw0AbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL1VUBQADU3bj
WnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAKxhm0wAAAAAAAAAAAAAAAArABgAAAAAAAAAEADt
QZ4DDQBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvZm9yd2FyZC1idXR0b24vVVQFAANTduNa
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgArGGbTIf/vQX7AAAAzg0AAEQAGAAAAAAAAQAAAKSB
AwQNAG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9mb3J3YXJkLWJ1dHRvbi9mb3J3YXJkLWJ1
dHRvbi1zdGRlcnIudHh0VVQFAANTduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAArlybTAAA
AAAAAAAAAAAAAC0AGAAAAAAAAAAQAO1BfAUNAG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9t
ZWRpYS1jb250cm9sbGVyL1VUBQAD523jWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAK5cm0zQ
d23f7wAAAM4NAAB6ABgAAAAAAAEAAACkgeMFDQBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
bWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWNsaWNrLW9uLXZpZGVvLWJhY2tncm91
bmQtc2hvdWxkLXBhdXNlLWZ1bGxzY3JlZW4tc3RkZXJyLnR4dFVUBQAD523jWnV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAAKpZm0wAAAAAAAAAAAAAAAArABgAAAAAAAAAEADtQYYHDQBtZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbHMvVVQFAANAaONadXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAqlmbTHkAqbb/AAAAzg0AAFYAGAAAAAAAAQAAAKSB6wcNAG1lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9scy1hcHBlYXIt
d2hlbi1mb2N1cy1zdGRlcnIudHh0VVQFAANAaONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
xmGbTErIEX37AAAAzg0AACwAGAAAAAAAAQAAAKSBegkNAG1lZGlhL25vZGVzRnJvbVJlY3Qtc2hh
ZG93Q29udGVudC1zdGRlcnIudHh0VVQFAAODduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
xmGbTBVFxyX7AAAAzg0AADgAGAAAAAAAAQAAAKSB2woNAG1lZGlhL25vbi1leGlzdGVudC12aWRl
by1wbGF5YmFjay1pbnRlcnJ1cHRlZC1zdGRlcnIudHh0VVQFAAOEduNadXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAyWGbTM5kDmH8AAAAzg0AADMAGAAAAAAAAQAAAKSBSAwNAG1lZGlhL3JlcXVp
cmUtdXNlci1nZXN0dXJlLXRvLWxvYWQtdmlkZW8tc3RkZXJyLnR4dFVUBQADiXbjWnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAMlhm0x28Kr48AAAAM4NAABAABgAAAAAAAEAAACkgbENDQBtZWRp
YS9yZXN0cmljdGVkLWF1ZGlvLXBsYXliYWNrLXdpdGgtZG9jdW1lbnQtZ2VzdHVyZS1zdGRlcnIu
dHh0VVQFAAOKduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAzGGbTHoIoqHvAAAAzg0AADAA
GAAAAAAAAQAAAKSBGw8NAG1lZGlhL3RhYi1mb2N1cy1pbnNpZGUtbWVkaWEtZWxlbWVudHMtc3Rk
ZXJyLnR4dFVUBQADj3bjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMxhm0y8gvQr7wAAAM4N
AAAjABgAAAAAAAEAAACkgXQQDQBtZWRpYS90aW1lcmFuZ2VzLW5lYXJlc3Qtc3RkZXJyLnR4dFVU
BQADj3bjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAMVZm0wAAAAAAAAAAAAAAAAMABgAAAAA
AAAAEADtQcARDQBtZWRpYS90cmFjay9VVAUAA3Fo41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CACzYZtMsIoQAPAAAADODQAANQAYAAAAAAABAAAApIEGEg0AbWVkaWEvdHJhY2svdHJhY2stY3Vl
LXJlbmRlcmluZy1ob3Jpem9udGFsLXN0ZGVyci50eHRVVAUAA2F241p1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAC0YZtMEPuXAvEAAADODQAAQwAYAAAAAAABAAAApIFlEw0AbWVkaWEvdHJhY2sv
dHJhY2stY3VlLXJlbmRlcmluZy10cmVlLWlzLXJlbW92ZWQtcHJvcGVybHktc3RkZXJyLnR4dFVU
BQADY3bjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALdhm0xnT5AZAAEAAM4NAAArABgAAAAA
AAEAAACkgdMUDQBtZWRpYS90cmFjay90cmFjay1jdWVzLWN1ZWNoYW5nZS1zdGRlcnIudHh0VVQF
AANqduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAu2GbTHdmOaQHAQAAaBIAACgAGAAAAAAA
AQAAAKSBOBYNAG1lZGlhL3RyYWNrL3RyYWNrLWN1ZXMtbWlzc2VkLXN0ZGVyci50eHRVVAUAA3J2
41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADBYZtM8Goq1vsAAADODQAASQAYAAAAAAABAAAA
pIGhFw0AbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1kdXBsaWNhdGUtdHJhY2tzLXdoZW4tc291
cmNlLWNoYW5nZXMtc3RkZXJyLnR4dFVUBQADeXbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AMJhm0yv5/yO/AAAAM4NAAAkABgAAAAAAAEAAACkgR8ZDQBtZWRpYS90cmFjay90cmFjay1pbi1i
YW5kLXN0ZGVyci50eHRVVAUAA3t241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADEYZtMCtjH
2e8AAADODQAAKAAYAAAAAAABAAAApIF5Gg0AbWVkaWEvdHJhY2svdHJhY2stbWFudWFsLW1vZGUt
c3RkZXJyLnR4dFVUBQADf3bjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMRhm0wsznqH/QAA
AM4NAAAwABgAAAAAAAEAAACkgcobDQBtZWRpYS90cmFjay90cmFjay1tb2RlLWRpc2FibGVkLWNy
YXNoLXN0ZGVyci50eHRVVAUAA4B241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADPYZtMx9K6
bfAAAADODQAAMAAYAAAAAAABAAAApIExHQ0AbWVkaWEvdmlkZW8tY2xpY2stZGJsY2tpY2stc3Rh
bmRhbG9uZS1zdGRlcnIudHh0VVQFAAOWduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA0GGb
TLgq8xzvAAAAzg0AACoAGAAAAAAAAQAAAKSBix4NAG1lZGlhL3ZpZGVvLWNvbmN1cnJlbnQtcGxh
eWJhY2stc3RkZXJyLnR4dFVUBQADl3bjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANJhm0yP
i8Lc/AAAAM4NAAA1ABgAAAAAAAEAAACkgd4fDQBtZWRpYS92aWRlby1jb250cm9scy1hdWRpb3Ry
YWNrcy10cmFja21lbnUtc3RkZXJyLnR4dFVUBQADnHbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIANNhm0ziqdJG+QAAAGgSAAAkABgAAAAAAAEAAACkgUkhDQBtZWRpYS92aWRlby1jb250cm9s
cy1kcmFnLXN0ZGVyci50eHRVVAUAA55241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADYYZtM
B1+puwUBAABoEgAAHwAYAAAAAAABAAAApIGgIg0AbWVkaWEvdmlkZW8tY29udHJvbHMtc3RkZXJy
LnR4dFVUBQADp3bjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANRhm0wOaWGV8AAAAM4NAAAr
ABgAAAAAAAEAAACkgf4jDQBtZWRpYS92aWRlby1jb250cm9scy10cmFuc2Zvcm1lZC1zdGRlcnIu
dHh0VVQFAAOfduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA12GbTCmoG1z5AAAAaBIAADsA
GAAAAAAAAQAAAKSBUyUNAG1lZGlhL3ZpZGVvLWNvbnRyb2xzLXdpdGgtbXV0YXRpb24tZXZlbnQt
aGFuZGxlci1zdGRlcnIudHh0VVQFAAOlduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA12Gb
TMiTvm35AAAAaBIAACYAGAAAAAAAAQAAAKSBwSYNAG1lZGlhL3ZpZGVvLWNvbnRyb2xzLXpvb21l
ZC1zdGRlcnIudHh0VVQFAAOmduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2mGbTB0A+mLx
AAAAzg0AACUAGAAAAAAAAQAAAKSBGigNAG1lZGlhL3ZpZGVvLWRpc3BsYXktdG9nZ2xlLXN0ZGVy
ci50eHRVVAUAA6x241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADbYZtMFplwJ/AAAADODQAA
JQAYAAAAAAABAAAApIFqKQ0AbWVkaWEvdmlkZW8tZG9jdW1lbnQtdHlwZXMtc3RkZXJyLnR4dFVU
BQADrXbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANxhm0wAq2Ws8AAAAM4NAAAjABgAAAAA
AAEAAACkgbkqDQBtZWRpYS92aWRlby1lbXB0eS1zb3VyY2Utc3RkZXJyLnR4dFVUBQADr3bjWnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAN1hm0zGITMm8AAAAM4NAAA0ABgAAAAAAAEAAACkgQYs
DQBtZWRpYS92aWRlby1lbmRlZC1ldmVudC1uZWdhdGl2ZS1wbGF5YmFjay1zdGRlcnIudHh0VVQF
AAOxduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4GGbTNDSTir6AAAAaBIAADAAGAAAAAAA
AQAAAKSBZC0NAG1lZGlhL3ZpZGVvLWZ1bGxzY3JlZWVuLW9ubHktY29udHJvbHMtc3RkZXJyLnR4
dFVUBQADtHbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOFhm0zRFyJd8AAAAM4NAAAuABgA
AAAAAAEAAACkgcguDQBtZWRpYS92aWRlby1mdWxsc2NyZWVuLXJlbG9hZC1jcmFzaC1zdGRlcnIu
dHh0VVQFAAO2duNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4mGbTPCEBhb8AAAAzg0AADgA
GAAAAAAAAQAAAKSBIDANAG1lZGlhL3ZpZGVvLWluaXRpYWxseS1oaWRkZW4tdm9sdW1lLXNsaWRl
ci11cC1zdGRlcnIudHh0VVQFAAO3duNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4mGbTNqO
qBjwAAAAzg0AAD0AGAAAAAAAAQAAAKSBjjENAG1lZGlhL3ZpZGVvLWludGVycnVwdGlvbi13aXRo
LXJlc3VtZS1hbGxvd2luZy1wbGF5LXN0ZGVyci50eHRVVAUAA7h241p1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADlYZtMod7mXvAAAADODQAAHwAYAAAAAAABAAAApIH1Mg0AbWVkaWEvdmlkZW8t
bm8tYXVkaW8tc3RkZXJyLnR4dFVUBQADvXbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOVh
m0wqdE8l+gAAAGgSAAAiABgAAAAAAAEAAACkgT40DQBtZWRpYS92aWRlby1uby1hdXRvcGxheS1z
dGRlcnIudHh0VVQFAAO+duNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA5mGbTBM1c+DwAAAA
zg0AADYAGAAAAAAAAQAAAKSBlDUNAG1lZGlhL3ZpZGVvLXBsYXktYXVkaW8tcmVxdWlyZS11c2Vy
LWdlc3R1cmUtc3RkZXJyLnR4dFVUBQADwHbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOdh
m0z/tYtk/AAAAM4NAAAoABgAAAAAAAEAAACkgfQ2DQBtZWRpYS92aWRlby1wbGF5LWVtcHR5LWV2
ZW50cy1zdGRlcnIudHh0VVQFAAPBduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA52GbTNMx
LEL8AAAAzg0AADAAGAAAAAAAAQAAAKSBUjgNAG1lZGlhL3ZpZGVvLXBsYXktcmVxdWlyZS11c2Vy
LWdlc3R1cmUtc3RkZXJyLnR4dFVUBQADwnbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOhh
m0wFB2Zr8QAAAM4NAAArABgAAAAAAAEAAACkgbg5DQBtZWRpYS92aWRlby1wbGF5YmFjay1pbnRl
cnJ1cHRlZC1zdGRlcnIudHh0VVQFAAPDduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA8GGb
TAbO40DxAAAAzg0AACoAGAAAAAAAAQAAAKSBDjsNAG1lZGlhL3ZpZGVvLXRyYWNrbWVudS1zZWxl
Y3Rpb24tc3RkZXJyLnR4dFVUBQAD1HbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPFhm0wN
V2kF8AAAAM4NAAAiABgAAAAAAAEAAACkgWM8DQBtZWRpYS92aWRlby10cmFuc2Zvcm1lZC1zdGRl
cnIudHh0VVQFAAPVduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA8WGbTMvdP4/wAAAAzg0A
ACQAGAAAAAAAAQAAAKSBrz0NAG1lZGlhL3ZpZGVvLXZvbHVtZS1zbGlkZXItc3RkZXJyLnR4dFVU
BQAD1XbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPFhm0zL3T+P8AAAAM4NAAAdABgAAAAA
AAEAAACkgf0+DQBtZWRpYS92aWRlby12b2x1bWUtc3RkZXJyLnR4dFVUBQAD1nbjWnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAPFhm0wbZXyO8AAAAM4NAAAkABgAAAAAAAEAAACkgURADQBtZWRp
YS92aWRlby16b29tLWNvbnRyb2xzLXN0ZGVyci50eHRVVAUAA9Z241p1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADyYZtM3e8qBPAAAADODQAALgAYAAAAAAABAAAApIGSQQ0AbWVkaWEvd2Via2l0
LW1lZGlhLWNvbnRyb2xzLWRpc3BsYXktc3RkZXJyLnR4dFVUBQAD2HbjWnV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAAK1Zm0wAAAAAAAAAAAAAAAAJABgAAAAAAAAAEADtQepCDQBwbGF0Zm9ybS9V
VAUAA0Zo41p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACxXJtMAAAAAAAAAAAAAAAADQAYAAAA
AAAAABAA7UEtQw0AcGxhdGZvcm0vbWFjL1VUBQAD7W3jWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAALFcm0wAAAAAAAAAAAAAAAASABgAAAAAAAAAEADtQXRDDQBwbGF0Zm9ybS9tYWMvZmFzdC9V
VAUAA+1t41p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACxXJtMAAAAAAAAAAAAAAAAFgAYAAAA
AAAAABAA7UHAQw0AcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL1VUBQAD7W3jWnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIALFcm0y5XW6zyQAAAE0BAAA4ABgAAAAAAAEAAACkgRBEDQBwbGF0Zm9ybS9t
YWMvZmFzdC9jc3MvZGFzaGJvYXJkLXJlZ2lvbi1wYXJzZXItc3RkZXJyLnR4dFVUBQAD7W3jWnV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAK1Zm0wAAAAAAAAAAAAAAAAVABgAAAAAAAAAEADtQUtF
DQBwbGF0Zm9ybS9tYWMvcGx1Z2lucy9VVAUAA0Zo41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CACwYZtMarkzLskAAABNAQAALQAYAAAAAAABAAAApIGaRQ0AcGxhdGZvcm0vbWFjL3BsdWdpbnMv
Y29udmVydC1wb2ludC1zdGRlcnIudHh0VVQFAANcduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAArVmbTAAAAAAAAAAAAAAAABEAGAAAAAAAAAAQAO1BykYNAHBsYXRmb3JtL21hYy13azIvVVQF
AANFaONadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAArVmbTAAAAAAAAAAAAAAAABkAGAAAAAAA
AAAQAO1BFUcNAHBsYXRmb3JtL21hYy13azIvcGx1Z2lucy9VVAUAA0Vo41p1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACACvYZtMfPdvc8oAAABNAQAAUAAYAAAAAAABAAAApIFoRw0AcGxhdGZvcm0v
bWFjLXdrMi9wbHVnaW5zL2FzeWNocm9ub3VzLWRlYWRsb2NrLXdpdGgtdGltZXItYW5kLWV2YWx1
YXRlLXN0ZGVyci50eHRVVAUAA1p241p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACtWZtMAAAA
AAAAAAAAAAAAIwAYAAAAAAAAABAA7UG8SA0AcGxhdGZvcm0vbWFjLXdrMi9wbHVnaW5zL25wcnVu
dGltZS9VVAUAA0Vo41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACvYZtMNGaHhs0AAABNAQAA
TQAYAAAAAAABAAAApIEZSQ0AcGxhdGZvcm0vbWFjLXdrMi9wbHVnaW5zL25wcnVudGltZS9yZW1v
dmUtcHJvcGVydHktZnJvbS1qYXZhc2NyaXB0LXN0ZGVyci50eHRVVAUAA1p241p1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAAAAACxXJtMAAAAAAAAAAAAAAAACAAYAAAAAAAAABAA7UFtSg0AcGx1Z2lu
cy9VVAUAA+5t41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACwYZtMSuyE1+cAAAA0CQAAMAAY
AAAAAAABAAAApIGvSg0AcGx1Z2lucy9hY2Nlc3MtYWZ0ZXItcGFnZS1kZXN0cm95ZWQtMi1zdGRl
cnIudHh0VVQFAANcduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAsGGbTErshNfnAAAANAkA
AC4AGAAAAAAAAQAAAKSBAEwNAHBsdWdpbnMvYWNjZXNzLWFmdGVyLXBhZ2UtZGVzdHJveWVkLXN0
ZGVyci50eHRVVAUAA1x241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACxYZtMAX+EvucAAAA0
CQAAKQAYAAAAAAABAAAApIFPTQ0AcGx1Z2lucy9kZXN0cm95LWR1cmluZy1ucHAtbmV3LXN0ZGVy
ci50eHRVVAUAA11241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACyYZtMJ6f3qOcAAAA0CQAA
KQAYAAAAAAABAAAApIGZTg0AcGx1Z2lucy9uYXZpZ2F0b3ItcGx1Z2luLWNyYXNoLXN0ZGVyci50
eHRVVAUAA2B241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACzYZtM7l1yRYYAAAD2AAAAOwAY
AAAAAAABAAAApIHjTw0AcGx1Z2lucy9ucHAtc2V0LXdpbmRvdy1jYWxsZWQtZHVyaW5nLWRlc3Ry
dWN0aW9uLXN0ZGVyci50eHRVVAUAA2F241p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACxXJtM
AAAAAAAAAAAAAAAAEgAYAAAAAAAAABAA7UHeUA0AcGx1Z2lucy9ucHJ1bnRpbWUvVVQFAAPubeNa
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAsWGbTE+Jpw/JAAAATQEAADQAGAAAAAAAAQAAAKSB
KlENAHBsdWdpbnMvbnBydW50aW1lL2Jyb3dzZXItb2JqZWN0LWlkZW50aXR5LXN0ZGVyci50eHRV
VAUAA11241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC0YZtMTc9jkucAAAA0CQAAHgAYAAAA
AAABAAAApIFhUg0AcGx1Z2lucy93aW5kb3ctb3Blbi1zdGRlcnIudHh0VVQFAANjduNadXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAr1mbTAAAAAAAAAAAAAAAAAkAGAAAAAAAAAAQAO1BoFMNAHBy
aW50aW5nL1VUBQADSmjjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALJhm0yx07ni5wAAADQJ
AAAlABgAAAAAAAEAAACkgeNTDQBwcmludGluZy9wcmludC1jbG9zZS1jcmFzaC1zdGRlcnIudHh0
VVQFAANfduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAKmGbTFy0NsuWAgAA2CQAABoAGAAA
AAAAAQAAAKSBKVUNAHB5d2Vic29ja2V0LndzLmxvZy1lcnIudHh0VVQFAANgdeNadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAKmGbTIEkOmUJAQAAjwIAABoAGAAAAAAAAQAAAKSBE1gNAHB5d2Vi
c29ja2V0LndzLmxvZy1vdXQudHh0VVQFAANgdeNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
zmCbTAAAAAAAAAAAAAAAABsAGAAAAAAAAAAAAKSBcFkNAHB5d2Vic29ja2V0Lndzcy5sb2ctZXJy
LnR4dFVUBQADs3TjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAM5gm0wAAAAAAAAAAAAAAAAb
ABgAAAAAAAAAAACkgcVZDQBweXdlYnNvY2tldC53c3MubG9nLW91dC50eHRVVAUAA7N041p1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACABtYptMj8pSWnEpAADGrwAADAAYAAAAAAABAAAApIEaWg0A
cmVzdWx0cy5odG1sVVQFAAO9d+NadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAU2KbTAAAAAAA
AAAAAAAAAAgAGAAAAAAAAAAQAO1B0YMNAHJldHJpZXMvVVQFAAONd+NadXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAAU2KbTAAAAAAAAAAAAAAAAA0AGAAAAAAAAAAQAO1BE4QNAHJldHJpZXMvY3Nz
My9VVAUAA41341p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABTYptMAAAAAAAAAAAAAAAAFQAY
AAAAAAAAABAA7UFahA0AcmV0cmllcy9jc3MzL2ZpbHRlcnMvVVQFAAONd+NadXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAU2KbTAAAAAAAAAAAAAAAAB4AGAAAAAAAAAAQAO1BqYQNAHJldHJpZXMv
Y3NzMy9maWx0ZXJzL2JhY2tkcm9wL1VUBQADjXfjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AFNim0wdvh/8M3UAAB6aAABHABgAAAAAAAAAAACkgQGFDQByZXRyaWVzL2NzczMvZmlsdGVycy9i
YWNrZHJvcC9hZGQtcmVtb3ZlLWFkZC1iYWNrZHJvcC1maWx0ZXItYWN0dWFsLnBuZ1VUBQADjXfj
WnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFNim0xI62a6awcAAOgNAABFABgAAAAAAAAAAACk
gbX6DQByZXRyaWVzL2NzczMvZmlsdGVycy9iYWNrZHJvcC9hZGQtcmVtb3ZlLWFkZC1iYWNrZHJv
cC1maWx0ZXItZGlmZi5wbmdVVAUAA41341p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABTYptM
9G7VKpkFAABCEgAARwAYAAAAAAABAAAApIGfAg4AcmV0cmllcy9jc3MzL2ZpbHRlcnMvYmFja2Ry
b3AvYWRkLXJlbW92ZS1hZGQtYmFja2Ryb3AtZmlsdGVyLWRpZmZzLmh0bWxVVAUAA41341p1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACABTYptM6nShbW0CAACOBAAASgAYAAAAAAABAAAApIG5CA4A
cmV0cmllcy9jc3MzL2ZpbHRlcnMvYmFja2Ryb3AvYWRkLXJlbW92ZS1hZGQtYmFja2Ryb3AtZmls
dGVyLWV4cGVjdGVkLmh0bWxVVAUAA41341p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABTYptM
L4bUPsN0AADlmQAASQAYAAAAAAAAAAAApIGqCw4AcmV0cmllcy9jc3MzL2ZpbHRlcnMvYmFja2Ry
b3AvYWRkLXJlbW92ZS1hZGQtYmFja2Ryb3AtZmlsdGVyLWV4cGVjdGVkLnBuZ1VUBQADjXfjWnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFNim0zkx+378AAAAM4NAABHABgAAAAAAAEAAACkgfCA
DgByZXRyaWVzL2NzczMvZmlsdGVycy9iYWNrZHJvcC9hZGQtcmVtb3ZlLWFkZC1iYWNrZHJvcC1m
aWx0ZXItc3RkZXJyLnR4dFVUBQADjXfjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFpdm0wA
AAAAAAAAAAAAAAANABgAAAAAAAAAEADtQWGCDgByZXRyaWVzL2h0dHAvVVQFAAMrb+NadXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAWl2bTAAAAAAAAAAAAAAAABMAGAAAAAAAAAAQAO1BqIIOAHJl
dHJpZXMvaHR0cC90ZXN0cy9VVAUAAytv41p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABaXZtM
AAAAAAAAAAAAAAAAGQAYAAAAAAAAABAA7UH1gg4AcmV0cmllcy9odHRwL3Rlc3RzL2NhY2hlL1VU
BQADK2/jWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFpdm0wAAAAAAAAAAAAAAAAkABgAAAAA
AAAAEADtQUiDDgByZXRyaWVzL2h0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9VVAUAAytv41p1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABaXZtMKpOrMfAAAADODQAARgAYAAAAAAABAAAApIGm
gw4AcmV0cmllcy9odHRwL3Rlc3RzL2NhY2hlL2Rpc2stY2FjaGUvc2hhdHRlcmVkLWRlZHVwbGlj
YXRpb24tc3RkZXJyLnR4dFVUBQADK2/jWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFJam0wA
AAAAAAAAAAAAAAARABgAAAAAAAAAEADtQRaFDgByZXRyaWVzL2ltcG9ydGVkL1VUBQADe2njWnV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFJam0wAAAAAAAAAAAAAAAAVABgAAAAAAAAAEADtQWGF
DgByZXRyaWVzL2ltcG9ydGVkL3czYy9VVAUAA3tp41p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AABSWptMAAAAAAAAAAAAAAAAKAAYAAAAAAAAABAA7UGwhQ4AcmV0cmllcy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL1VUBQADe2njWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFJa
m0wAAAAAAAAAAAAAAAAyABgAAAAAAAAAEADtQRKGDgByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL1VUBQADe2njWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAFJam0yFqeVl8AAAAM4NAABUABgAAAAAAAEAAACkgX6GDgByZXRyaWVzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgzLXN0
ZGVyci50eHRVVAUAA3tp41p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABbXZtMAAAAAAAAAAAA
AAAADgAYAAAAAAAAABAA7UH8hw4AcmV0cmllcy9tZWRpYS9VVAUAAy1v41p1eAsAAQT1AQAABBQA
AABQSwECHgMKAAAAAABbXZtMAAAAAAAAAAAAAAAAFwAYAAAAAAAAABAA7UFEiA4AcmV0cmllcy9t
ZWRpYS9jb250cm9scy9VVAUAAy1v41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABbXZtM/oPv
B/EAAADODQAASAAYAAAAAAABAAAApIGViA4AcmV0cmllcy9tZWRpYS9jb250cm9scy9waXAtcGxh
Y2Vob2xkZXItd2l0aG91dC12aWRlby1jb250cm9scy1zdGRlcnIudHh0VVQFAAMtb+NadXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAsVmbTAAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1BCIoOAHNj
cm9sbGJhcnMvVVQFAANOaONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAtWGbTG69I2E5AAAA
QgAAADsAGAAAAAAAAQAAAKSBTYoOAHNjcm9sbGJhcnMvc2Nyb2xsZXZlbnQtaWZyYW1lLW5vLXNj
cm9sbGluZy13aGVlbC1zdGRlcnIudHh0VVQFAANmduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAArlmbTAAAAAAAAAAAAAAAABUAGAAAAAAAAAAQAO1B+4oOAHNjcm9sbGluZ2Nvb3JkaW5hdG9y
L1VUBQADSGjjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALFhm0y9L/QR8AAAAM4NAABIABgA
AAAAAAEAAACkgUqLDgBzY3JvbGxpbmdjb29yZGluYXRvci9ub24tZmFzdC1zY3JvbGxhYmxlLXJl
Z2lvbi1zY2FsZWQtaWZyYW1lLXN0ZGVyci50eHRVVAUAA11241p1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAACyXJtMAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UG8jA4Ac2VjdXJpdHkvVVQFAAPw
beNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAr1mbTEOrC/D8AAAAzg0AADAAGAAAAAAAAQAA
AKSB/4wOAHNlY3VyaXR5L2F1dG9jb21wbGV0ZS1jbGVhcmVkLW9uLWJhY2stc3RkZXJyLnR4dFVU
BQADSWjjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAALJcm0wAAAAAAAAAAAAAAAAfABgAAAAA
AAAAEADtQWWODgBzZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvVVQFAAPwbeNadXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAsWGbTH+oSUUHAQAAaBIAADYAGAAAAAAAAQAAAKSBvo4OAHNl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ibG9ja3MtdmlkZW8tc3RkZXJyLnR4dFVUBQAD
XnbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALFhm0z0FSFkBQEAAGgSAAAsABgAAAAAAAEA
AACkgTWQDgBzZWN1cml0eS9pc1NlY3VyZUNvbnRleHQtZGlzYWJsZWQtc3RkZXJyLnR4dFVUBQAD
XnbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALFhm0xyfN148AAAAM4NAAAzABgAAAAAAAEA
AACkgaCRDgBzZWN1cml0eS9zZXQtZm9ybS1hdXRvY29tcGxldGUtYXR0cmlidXRlLXN0ZGVyci50
eHRVVAUAA15241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABtYptMkZyoH/+oCQALRTQACgAY
AAAAAAABAAAApIH9kg4Ac3RhdHMuanNvblVUBQADvXfjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAAMBZm0wAAAAAAAAAAAAAAAAIABgAAAAAAAAAEADtQUA8GABzdG9yYWdlL1VUBQADaGjjWnV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAL1Zm0wAAAAAAAAAAAAAAAATABgAAAAAAAAAEADtQYI8
GABzdG9yYWdlL2RvbXN0b3JhZ2UvVVQFAANmaONadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
vVmbTAAAAAAAAAAAAAAAACAAGAAAAAAAAAAQAO1BzzwYAHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2Nh
bHN0b3JhZ2UvVVQFAANmaONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAwWGbTCjkaF7oAAAA
NAkAAEwAGAAAAAAAAQAAAKSBKT0YAHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvYWNj
ZXNzLXN0b3JhZ2UtYWZ0ZXItd2luZG93LWNsb3NlLXN0ZGVyci50eHRVVAUAA3p241p1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACADCYZtMY3doN+cAAAA0CQAAZgAYAAAAAAABAAAApIGXPhgAc3Rv
cmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9hY2Nlc3Mtc3RvcmFnZS10aGVuLXNldC12YWx1
ZS1pbi1zdG9yYWdlLWFmdGVyLXdpbmRvdy1jbG9zZS1zdGRlcnIudHh0VVQFAAN7duNadXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAwmGbTNOJGvPoAAAANAkAAEsAGAAAAAAAAQAAAKSBHkAYAHN0
b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvcHJpdmF0ZS1icm93c2luZy1hZmZlY3RzLXN0
b3JhZ2Utc3RkZXJyLnR4dFVUBQADfHbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMJhm0zT
iRrz6AAAADQJAABSABgAAAAAAAEAAACkgYtBGABzdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9y
YWdlL3NldC12YWx1ZS1pbi1zdG9yYWdlLWFmdGVyLXdpbmRvdy1jbG9zZS1zdGRlcnIudHh0VVQF
AAN8duNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAw2GbTJgaGprnAAAANAkAADYAGAAAAAAA
AQAAAKSB/0IYAHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvd2luZG93LW9wZW4tc3Rk
ZXJyLnR4dFVUBQADfXbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAL1Zm0wAAAAAAAAAAAAA
AAAiABgAAAAAAAAAEADtQVZEGABzdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvVVQF
AANmaONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAwmGbTMiTgtDoAAAANAkAADgAGAAAAAAA
AQAAAKSBskQYAHN0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS93aW5kb3ctb3Blbi1z
dGRlcnIudHh0VVQFAAN7duNadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAwFmbTAAAAAAAAAAA
AAAAABIAGAAAAAAAAAAQAO1BDEYYAHN0b3JhZ2UvaW5kZXhlZGRiL1VUBQADaGjjWnV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAAMBZm0wAAAAAAAAAAAAAAAAZABgAAAAAAAAAEADtQVhGGABzdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vVVQFAANoaONadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
w2GbTNEwOLL5AAAAaBIAAC8AGAAAAAAAAQAAAKSBq0YYAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9ibG9iLWN1cnNvci1zdGRlcnIudHh0VVQFAAN9duNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAw2GbTO2+nDgHAQAAaBIAADIAGAAAAAAAAQAAAKSBDUgYAHN0b3JhZ2UvaW5kZXhlZGRiL21v
ZGVybi9ibG9iLXN2Zy1pbWFnZS1zdGRlcnIudHh0VVQFAAN+duNadXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAAxVmbTAAAAAAAAAAAAAAAAAQAGAAAAAAAAAAQAO1BgEkYAHN2Zy9VVAUAA3Jo41p1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADFWZtMAAAAAAAAAAAAAAAADQAYAAAAAAAAABAA7UG+
SRgAc3ZnL2FzLWltYWdlL1VUBQADcmjjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMhhm0zb
CNNCOwAAAD8AAAA/ABgAAAAAAAEAAACkgQVKGABzdmcvYXMtaW1hZ2Uvc3ZnLWltYWdlLXdpdGgt
ZGF0YS11cmktaW1hZ2VzLWRpc2FibGVkLXN0ZGVyci50eHRVVAUAA4h241p1eAsAAQT1AQAABBQA
AABQSwECHgMKAAAAAADRWZtMAAAAAAAAAAAAAAAADgAYAAAAAAAAABAA7UG5ShgAdGlsZWQtZHJh
d2luZy9VVAUAA4lo41p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADRWZtMAAAAAAAAAAAAAAAA
GAAYAAAAAAAAABAA7UEBSxgAdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvVVQFAAOJaONadXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAA0VmbTAAAAAAAAAAAAAAAACgAGAAAAAAAAAAQAO1BU0sYAHRp
bGVkLWRyYXdpbmcvc2Nyb2xsaW5nL25vbi1mYXN0LXJlZ2lvbi9VVAUAA4lo41p1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACADRXJtMe61cWckAAABNAQAARQAYAAAAAAABAAAApIG1SxgAdGlsZWQt
ZHJhd2luZy9zY3JvbGxpbmcvbm9uLWZhc3QtcmVnaW9uL3doZWVsLWV2ZW50LXBsdWdpbi1zdGRl
cnIudHh0VVQFAAMqbuNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA0WGbTKZ8MozoAAAANAkA
AE0AGAAAAAAAAQAAAKSB/UwYAHRpbGVkLWRyYXdpbmcvdGlsZWQtZHJhd2luZy1zY3JvbGwtcG9z
aXRpb24tcGFnZS1jYWNoZS1yZXN0b3JhdGlvbi1zdGRlcnIudHh0VVQFAAOaduNadXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAA5FmbTAAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1BbE4YAHRyYW5z
aXRpb25zL1VUBQADq2jjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANNhm0w7yBAJ8AAAAM4N
AAA2ABgAAAAAAAEAAACkgbJOGAB0cmFuc2l0aW9ucy9iYWNrZ3JvdW5kLXBvc2l0aW9uLXRyYW5z
aXRpb25zLXN0ZGVyci50eHRVVAUAA51241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADTYZtM
/UJGg/AAAADODQAANQAYAAAAAAABAAAApIESUBgAdHJhbnNpdGlvbnMvYmFkLXRyYW5zaXRpb24t
c2hvcnRoYW5kLWNyYXNoLXN0ZGVyci50eHRVVAUAA51241p1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADUYZtMqf+OIAYBAABoEgAALAAYAAAAAAABAAAApIFxURgAdHJhbnNpdGlvbnMvYmxlbmRt
b2RlLXRyYW5zaXRpb25zLXN0ZGVyci50eHRVVAUAA59241p1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADUYZtMXTPBgfAAAADODQAALgAYAAAAAAABAAAApIHdUhgAdHJhbnNpdGlvbnMvY3JlYXRl
ZC13aGlsZS1zdXNwZW5kZWQtc3RkZXJyLnR4dFVUBQADoHbjWnV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIANRhm0xBa9cE8QAAAM4NAAAtABgAAAAAAAEAAACkgTVUGAB0cmFuc2l0aW9ucy9mcmFt
ZXMtdGltaW5nLWZ1bmN0aW9uLXN0ZGVyci50eHRVVAUAA6B241p1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACADVYZtMresvgPsAAADODQAANAAYAAAAAAABAAAApIGNVRgAdHJhbnNpdGlvbnMvaGFu
Zy13aXRoLWJhZC10cmFuc2l0aW9uLWxpc3Qtc3RkZXJyLnR4dFVUBQADoXbjWnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIANZhm0zyZvnY/AAAAM4NAAAxABgAAAAAAAEAAACkgfZWGAB0cmFuc2l0
aW9ucy9pbnRlcnJ1cHRlZC1hbGwtdHJhbnNpdGlvbi1zdGRlcnIudHh0VVQFAAOjduNadXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgA1mGbTEryXUHxAAAAzg0AADkAGAAAAAAAAQAAAKSBXVgYAHRy
YW5zaXRpb25zL2xlbmd0aHNpemUtdHJhbnNpdGlvbi10by1mcm9tLWF1dG8tc3RkZXJyLnR4dFVU
BQADo3bjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANdhm0xu4lRqBQEAAGgSAAAwABgAAAAA
AAEAAACkgcFZGAB0cmFuc2l0aW9ucy9zaGFwZS1vdXRzaWRlLXRyYW5zaXRpb25zLXN0ZGVyci50
eHRVVAUAA6V241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADXYZtMXMBIyvEAAADODQAAMQAY
AAAAAAABAAAApIEwWxgAdHJhbnNpdGlvbnMvc3RhcnQtdHJhbnNmb3JtLXRyYW5zaXRpb24tc3Rk
ZXJyLnR4dFVUBQADpnbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANdhm0xXWcKP8QAAAM4N
AAAsABgAAAAAAAEAAACkgYxcGAB0cmFuc2l0aW9ucy9zdGVwcy10aW1pbmctZnVuY3Rpb24tc3Rk
ZXJyLnR4dFVUBQADpnbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANhhm0wLhubkBwEAAGgS
AAAzABgAAAAAAAEAAACkgeNdGAB0cmFuc2l0aW9ucy9zdXNwZW5kLXRyYW5zZm9ybS10cmFuc2l0
aW9uLXN0ZGVyci50eHRVVAUAA6h241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADYYZtM9yhF
jfIAAADODQAALAAYAAAAAAABAAAApIFXXxgAdHJhbnNpdGlvbnMvc3ZnLWxheW91dC10cmFuc2l0
aW9uLXN0ZGVyci50eHRVVAUAA6h241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADZYZtMG6i9
Cf0AAADODQAANAAYAAAAAAABAAAApIGvYBgAdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1kaXNwbGF5
LXByb3BlcnR5LTItc3RkZXJyLnR4dFVUBQADqXbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AOBhm0x7GPmY+gAAAGgSAAA1ABgAAAAAAAEAAACkgRpiGAB0cmFuc2l0aW9ucy90cmFuc2l0aW9u
LWVuZC1ldmVudC1yZW5kZXJpbmctc3RkZXJyLnR4dFVUBQADtHbjWnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAOFhm0yoRyxH/AAAAM4NAAA0ABgAAAAAAAEAAACkgYNjGAB0cmFuc2l0aW9ucy90
cmFuc2l0aW9uLWVuZC1ldmVudC1zZXQtbm9uZS1zdGRlcnIudHh0VVQFAAO1duNadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgA42GbTHNm5QP8AAAAzg0AACoAGAAAAAAAAQAAAKSB7WQYAHRyYW5z
aXRpb25zL3RyYW5zaXRpb24taGl0LXRlc3Qtc3RkZXJyLnR4dFVUBQADuXbjWnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAONhm0xZbEsN8QAAAM4NAABNABgAAAAAAAEAAACkgU1mGAB0cmFuc2l0
aW9ucy90cmFuc2l0aW9uLXRyYW5zZm9ybS10cmFuc2xhdGUtY2FsY3VsYXRlZC1sZW5ndGgtY3Jh
c2gtc3RkZXJyLnR4dFVUBQADunbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAONhm0xS9cFI
8QAAAM4NAAApABgAAAAAAAEAAACkgcVnGAB0cmFuc2l0aW9ucy92aXNpdGVkLWxpbmstY29sb3It
c3RkZXJyLnR4dFVUBQADunbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAORhm0y+dTnM/AAA
AM4NAAA8ABgAAAAAAAEAAACkgRlpGAB0cmFuc2l0aW9ucy96ZXJvLWR1cmF0aW9uLXdpdGgtbm9u
LXplcm8tZGVsYXktZW5kLXN0ZGVyci50eHRVVAUAA7x241p1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADlYZtM8oRGSvEAAADODQAAPgAYAAAAAAABAAAApIGLahgAdHJhbnNpdGlvbnMvemVyby1k
dXJhdGlvbi13aXRoLW5vbi16ZXJvLWRlbGF5LXN0YXJ0LXN0ZGVyci50eHRVVAUAA71241p1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACADlYZtMNA4QwPEAAADODQAAMgAYAAAAAAABAAAApIH0axgA
dHJhbnNpdGlvbnMvemVyby1kdXJhdGlvbi13aXRob3V0LXVuaXRzLXN0ZGVyci50eHRVVAUAA712
41p1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADSWZtMAAAAAAAAAAAAAAAADgAYAAAAAAAAABAA
7UFRbRgAd2ViYW5pbWF0aW9ucy9VVAUAA4xo41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADT
YZtMYSlQK/oAAABoEgAAJwAYAAAAAAABAAAApIGZbRgAd2ViYW5pbWF0aW9ucy9jc3MtYW5pbWF0
aW9ucy1zdGRlcnIudHh0VVQFAAOeduNadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA02GbTI9T
c+n6AAAAaBIAAEkAGAAAAAAAAQAAAKSB9G4YAHdlYmFuaW1hdGlvbnMvbGVmdC1hbmQtb3BhY2l0
eS1hbmltYXRpb24teWllbGRzLW5vLWNvbXBvc2l0aW5nLXN0ZGVyci50eHRVVAUAA55241p1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAADSWZtMAAAAAAAAAAAAAAAACwAYAAAAAAAAABAA7UFxcBgA
d2ViYXJjaGl2ZS9VVAUAA4xo41p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADTYZtMe8kzN+gA
AAA0CQAAPAAYAAAAAAABAAAApIG2cBgAd2ViYXJjaGl2ZS9hZG9wdC1hdHRyaWJ1dGUtc3R5bGVk
LWJvZHktd2ViYXJjaGl2ZS1zdGRlcnIudHh0VVQFAAOdduNadXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgA02GbTKzkZKnwAAAAzg0AADwAGAAAAAAAAQAAAKSBFHIYAHdlYmFyY2hpdmUvYWRvcHQt
YXR0cmlidXRlLXN0eWxlZC1ub2RlLXdlYmFyY2hpdmUtc3RkZXJyLnR4dFVUBQADnnbjWnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIANNhm0wRoacN6AAAADQJAAA5ABgAAAAAAAEAAACkgXpzGAB3
ZWJhcmNoaXZlL2Fkb3B0LWlubGluZS1zdHlsZWQtbm9kZS13ZWJhcmNoaXZlLXN0ZGVyci50eHRV
VAUAA55241p1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADTYZtM2wjTQjsAAAA/AAAAOgAYAAAA
AAABAAAApIHVdBgAd2ViYXJjaGl2ZS90ZXN0LWxpbmstcmVsLXN1YnJlc291cmNlLWJlZm9yZWxv
YWQtc3RkZXJyLnR4dFVUBQADnnbjWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFlim0x9VnZK
qQEXAJM4CwEZABgAAAAAAAEAAACkgYR1GAB3cHR3a19wcm9jZXNzX2xvZy5vdXQudHh0VVQFAAOa
d+NadXgLAAEE9QEAAAQUAAAAUEsFBgAAAAC3BLcE4l0CAIB3LwAAAA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339022</attachid>
            <date>2018-04-27 13:59:23 -0700</date>
            <delta_ts>2018-04-27 14:17:19 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-hey-This-is-a-combination-of-2-commits.patch</filename>
            <type>text/plain</type>
            <size>468952</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSBjZWUyN2E4MmFkYTk1M2ZiMzMxMGZkZTg5ZGZlNDAxN2RlYzEzMDYwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBXZWQsIDI1IEFwciAyMDE4IDIxOjUwOjI0IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gaGV5ICMg
VGhpcyBpcyBhIGNvbWJpbmF0aW9uIG9mIDIgY29tbWl0cy4KClRlYWNoIFN0cmluZ0J1aWxkZXIg
dGhhdCBpdCBpcyBmYWxsaWJsZQotLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250
ZXh0UmVmLmNwcCAgICAgICAgIHwgICA0ICstCiAuLi4vQVBJL3Rlc3RzL0V4ZWN1dGlvblRpbWVM
aW1pdFRlc3QuY3BwICAgICAgICAgICB8IDMxMCArKysrKysrLS0tLS0tCiAuLi4vQVBJL3Rlc3Rz
L1BpbmdQb25nU3RhY2tPdmVyZmxvd1Rlc3QuY3BwICAgICAgICB8ICAgOSArLQogU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgfCAgOTUgKysrKwogLi4u
L2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCAgICAgICAgICAgICAgfCAgMjMgKy0K
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBTbmFwc2hvdEJ1aWxkZXIuY3BwIHwgICA0
ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcCB8
ICAxMyArLQogLi4uL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0aWVzLmNwcCAgICAgICAg
ICAgfCAgIDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRl
ci5jcHAgIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tW
aXNpdG9yLmNwcCB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgICAgICAg
ICAgICAgICAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bmZpZ0ZpbGUuY3BwICAgICAgIHwgICA5ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db25zb2xlQ2xpZW50LmNwcCAgICB8ICAxNSArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwICAgfCAgIDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwICAgIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcCB8ICAgNCArLQogLi4uL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgfCAgMjQgKy0KIC4uLi9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAgIHwgICA2ICstCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcCAgICAgICB8ICAxOCArLQog
Li4uL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwICAgICAgICAgICAgfCAgMjEg
Ky0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwICAgICAgIHwg
IDE2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2VyLmNwcCAg
ICB8ICAxMCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAgICAg
ICAgICAgfCAgMTAgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3Rv
dHlwZS5jcHAgIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGlu
Z1Byb2ZpbGVyLmNwcCB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Rh
Y2tGcmFtZS5jcHAgICAgICAgfCAgIDQgKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ0NvbnN0cnVjdG9yLmNwcCAgIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdQcm90b3R5cGUuY3BwICB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVHlwZVByb2ZpbGVyLmNwcCAgICAgfCAgIDYgKy0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1R5cGVTZXQuY3BwICAgICAgICAgIHwgIDIzICstCiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAgICAgICAgICAgICAgICB8ICAyMCArLQogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcCAgfCAgIDkgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcCAgICAgICAgIHwgICA3ICstCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmggICAgICAgICAgICB8ICAzMCAr
LQogU291cmNlL1dURi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAx
NDMgKysrKysrCiBTb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcCAgICAgICAgICAgICAgICAg
ICAgICB8ICAgOCArLQogU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuY3BwICAgICAgICAg
ICAgICAgICAgICAgIHwgIDExICstCiBTb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAxMSArLQogU291cmNlL1dURi93dGYvTWVkaWFUaW1lLmNwcCAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XVEYvd3RmL1VVSUQuY3BwICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0
cmluZ0J1aWxkZXIuY3BwICAgICAgICAgICAgICB8IDIzOSArKysrKystLS0tCiBTb3VyY2UvV1RG
L3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaCAgICAgICAgICAgICAgICB8IDI2MSArKysrKysrLS0t
LQogU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVySlNPTi5jcHAgICAgICAgICAgfCAg
MjUgKy0KIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAgICAgICAgICAgICAgICAg
IHwgIDM0ICstCiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaCAgICAgICAgICAgICAg
ICAgICB8ICAxOCArLQogU291cmNlL1dURi93dGYvdGV4dC9UZXh0U3RyZWFtLmNwcCAgICAgICAg
ICAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgNTEwICsrKysrKysrKysrKysrKysrKysrKwogLi4uL01vZHVsZXMvYXBw
bGVwYXkvY29jb2EvUGF5bWVudENvbnRhY3RDb2NvYS5tbSAgfCAgIDUgKy0KIC4uLi9XZWJDb3Jl
L01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcCAgIHwgICA0ICstCiBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcCB8ICAgNSArLQogU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5jcHAgICAgfCAgMTUgKy0K
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBhdGguY3BwICAgIHwgICA0
ICstCiAuLi4vTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0luZGV4VmFsdWVTdG9yZS5jcHAgICB8
ICAgNCArLQogLi4uL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJDdXJzb3IuY3Bw
ICAgfCAgIDggKy0KIC4uLi9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VJbmZv
LmNwcCAgIHwgICA0ICstCiAuLi4vaW5kZXhlZGRiL3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8u
Y3BwICAgICAgICB8ICAgNCArLQogLi4uL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5h
Z2VyLmNwcCAgICAgICAgfCAgIDggKy0KIC4uLi9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25u
ZWN0aW9uQmFja2VuZC5jcHAgIHwgICA4ICstCiAuLi4vTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQ
bHVnaW5SZXBsYWNlbWVudC5jcHAgICB8ICAgNCArLQogLi4uL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VUcmFja2VyLmNwcCAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwICAgIHwgICA4ICstCiAuLi4vd2Vic29ja2V0cy9X
ZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcCAgICB8ICAgOCArLQogLi4uL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwICAgICAgfCAgMjMgKy0KIC4uLi9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCAgICAgIHwgIDE4ICstCiAuLi4v
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwICB8ICAxMCArLQog
Li4uL21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbSAgICAgICAgfCAgMTEg
Ky0KIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFN0cmluZ3MuY3BwIHwg
ICA0ICstCiAuLi4vV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNw
cCB8ICAxNiArLQogLi4uL2NvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5jcHAg
ICAgICAgfCAgIDQgKy0KIC4uLi9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRl
bnNpb24uY3BwIHwgICA3ICstCiAuLi4vY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lv
bkNvbXBpbGVyLmNwcCB8ICAgNSArLQogLi4uL0NvbnRlbnRFeHRlbnNpb25TdHlsZVNoZWV0LmNw
cCAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL1Rlcm0uaCAgICAgICAgICAgIHwgICA4ICstCiAuLi4vV2ViQ29yZS9jc3MvQ1NTQW5pbWF0
aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmNwcCB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NT
U0Jhc2ljU2hhcGVzLmNwcCAgICAgICAgICAgICAgfCAgMjAgKy0KIFNvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDYWxjdWxhdGlvblZhbHVlLmNwcCAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCB8ICAgNCArLQogU291cmNlL1dl
YkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcCAgICAgICAgIHwgICA0ICstCiBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3VzdG9tSWRlbnRWYWx1ZS5jcHAgICAgICAgICB8ICAgNCAr
LQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwICAgICAgICAgfCAg
IDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUuY3BwICAgICAgICAgICAg
IHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAgICAg
ICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGZWF0dXJlVmFsdWUuY3Bw
ICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U3R5bGVSYW5nZVZh
bHVlLmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFN0eWxlVmFs
dWUuY3BwICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYWx1
ZS5jcHAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250
VmFyaWF0aW9uVmFsdWUuY3BwICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
RnVuY3Rpb25WYWx1ZS5jcHAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0dyYWRpZW50VmFsdWUuY3BwICAgICAgICAgICAgfCAgMTIgKy0KIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAgICB8ICAgNCArLQogU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwICAgICAgICAgICAgfCAgIDQgKy0KIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmNwcCAgICAgICAgICAgICAgIHwgICA0ICst
CiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVSdWxlLmNwcCAgICAgICAgICAgICB8ICAg
OCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lc1J1bGUuY3BwICAgICAgICAgICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMaW5lQm94Q29udGFpblZhbHVlLmNwcCAg
ICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWFya3VwLmNwcCAgICAgICAgICAg
ICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5jcHAgICAg
ICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NOYW1lc3BhY2VSdWxl
LmNwcCAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFnZVJ1bGUu
Y3BwICAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1p
dGl2ZVZhbHVlLmNwcCAgICAgICAgICAgfCAgMTIgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
cm9wZXJ0eVNvdXJjZURhdGEuY3BwICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU2VsZWN0b3IuY3BwICAgICAgICAgICAgICAgICB8ICAxNyArLQogU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTaGFkb3dWYWx1ZS5jcHAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmNwcCAgICAgICAgICAgICAgICB8ICAgNCArLQogU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwICAgICAgICAgICAgICAgfCAgIDkgKy0K
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdXBwb3J0c1J1bGUuY3BwICAgICAgICAgICAgIHwgICA0
ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVGltaW5nRnVuY3Rpb25WYWx1ZS5jcHAgICAgICB8
ICAxNiArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAgICAgICAgICAgICAg
ICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYXJpYWJsZURhdGEuY3BwICAgICAg
ICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmNwcCAg
ICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeFJlYWRPbmx5
LmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NT
T01WYWx1ZUxpc3QuY3BwICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2Uu
Y3BwICAgICAgICAgICAgICAgICAgICB8ICAxMiArLQogU291cmNlL1dlYkNvcmUvY3NzL01lZGlh
TGlzdC5jcHAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5LmNwcCAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9j
c3MvTWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwICAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNv
cmUvY3NzL1JlY3QuaCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwICAgICAgICAgICAgIHwgIDMwICstCiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmNwcCAgICAgICAgICAgICB8ICAgNCArLQog
U291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHAgICAgICAgfCAgIDQg
Ky0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcCAgICAgICAgICAgIHwg
IDExICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmNwcCAgICAg
ICB8ICA4NyArKy0tCiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuUmFu
Z2UuY3BwICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBh
cnNlci5jcHAgICAgfCAgMjcgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTVG9rZW5p
emVyLmNwcCAgICAgICAgIHwgIDM4ICstCiBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0
cmluZ01hcC5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmNwcCAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIyICstCiBTb3VyY2UvV2ViQ29yZS9kb20v
UG9zaXRpb24uY3BwICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUv
ZG9tL1JhbmdlLmNwcCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDkgKy0KIFNvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwIHwgICA0ICstCiBTb3VyY2Uv
V2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcCAgICAgICAgICAgICB8ICAgNSArLQogU291
cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDkgKy0K
IFNvdXJjZS9XZWJDb3JlL2RvbS9UZXh0Tm9kZVRyYXZlcnNhbC5jcHAgICAgICAgICAgIHwgICA4
ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcCAgICAgICB8
ICAgNSArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNwcCAgICAgICAgICAgICAg
ICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSFRNTEludGVyY2hhbmdlLmNwcCAg
ICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9y
LmNwcCAgICAgICB8ICAxNyArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3Iu
Y3BwICAgICAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29t
bWFuZC5jcHAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2li
bGVTZWxlY3Rpb24uY3BwICAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9j
b2NvYS9EYXRhRGV0ZWN0aW9uLm1tICAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvY29jb2EvSFRNTENvbnZlcnRlci5tbSAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0gICAgICAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNv
cmUvZWRpdGluZy9tYXJrdXAuY3BwICAgICAgICAgICAgICAgICAgfCAgMjcgKy0KIFNvdXJjZS9X
ZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAgICAgICAgIHwgIDI0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAgICAgICAgICAgICAgICB8ICAgOSArLQog
U291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAgICAgICAgICAgICAgfCAgIDQg
Ky0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgICAgICAgICAgICAgIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmNwcCAgICAgICAgICAg
ICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAgICAg
ICAgICAgfCAgMTIgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3Bw
ICAgICAgICAgIHwgIDIxICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5j
cHAgICAgICAgICAgICB8ICAgNyArLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAgICAgICAgICAgIHwgICA5ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
cHRpb25FbGVtZW50LmNwcCAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgfCAgMTIgKy0KIFNvdXJjZS9XZWJDb3JlL2h0
bWwvTWVkaWFEb2N1bWVudC5jcHAgICAgICAgICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29y
ZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwICAgICAgICB8ICAgNCArLQogU291cmNlL1dl
YkNvcmUvaHRtbC9NZWRpYUZyYWdtZW50VVJJUGFyc2VyLmNwcCAgICAgfCAgIDggKy0KIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcCAgICAgICAgICAgICAgICAgIHwgIDE0ICstCiAu
Li4vaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCAgICAgICB8ICAgNCAr
LQogLi4uL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwICAgfCAg
IDcgKy0KIC4uLi9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCAgICAg
IHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU291cmNlVHJhY2tlci5j
cHAgICB8ICAgNyArLQogU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRva2VuaXplci5j
cHAgICAgICAgfCAgMTIgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVp
bGRlci5jcHAgICAgIHwgIDI3ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRp
dG9yRGVsZWdhdGUuY3BwICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9CdWZm
ZXJlZExpbmVSZWFkZXIuY3BwICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VHJhY2tCYXNlLmNwcCAgICAgICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1ZUVEN1ZS5jcHAgICAgICAgICAgICAgICB8ICAgNiArLQogU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9XZWJWVFRQYXJzZXIuY3BwICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmNwcCAgICAgIHwgIDYzICsrLQogU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwICAgfCAgMTcgKy0KIC4uLi9h
Z2VudHMvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCAgICAgIHwgIDEzICstCiAu
Li4vaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwICAgICB8ICAgNyAr
LQogLi4uL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xlQWdlbnQuY3BwICAgfCAg
IDUgKy0KIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3Bw
IHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5j
cHAgICB8ICAgNCArLQogLi4uL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFn
ZS5jcHAgICAgfCAgMjUgKy0KIC4uLi9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdl
YkFyY2hpdmUuY3BwIHwgIDI1ICstCiAuLi4vV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9N
SFRNTEFyY2hpdmUuY3BwICB8ICAzMSArLQogLi4uL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclBy
ZWZlcmVuY2VzTWVkaWFBRi5jcHAgfCAgNjQgKystCiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
LmNwcCAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVRyZWUuY3BwICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcCAgICAgICAgICAgICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcCAgICAgICAgICAgICB8ICAgNyArLQogU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuY3BwICAgfCAgIDQgKy0KIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcCAgICAgICAgIHwgICA0ICstCiBT
b3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0VHJpZ2dlci5jcHAgICAgICB8ICAgNSAr
LQogU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcCAgfCAg
IDkgKy0KIC4uLi9wYWdlL3Njcm9sbGluZy9BeGlzU2Nyb2xsU25hcE9mZnNldHMuY3BwICAgICAg
IHwgICA4ICstCiAuLi4vcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwICAg
ICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVjaW1hbC5jcHAgICAgICAg
ICAgICAgICAgfCAgMTIgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3Bw
ICAgICAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RJbnRlcnZh
bC5oICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUE9EUmVk
QmxhY2tUcmVlLmggICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VS
TC5jcHAgICAgICAgICAgICAgICAgICAgIHwgIDE4ICstCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9h
bmltYXRpb24vVGltaW5nRnVuY3Rpb24uY3BwICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dsaWIvVXNlckFnZW50R0xpYi5jcHAgICAgIHwgICA0ICstCiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAgICAgICAgICB8ICAgOCArLQogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5jcHAgfCAgIDQgKy0KIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcCAgIHwgICA0ICst
CiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNldHRpbmdzLmNwcCAgICAgICB8ICAg
NSArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAg
fCAgIDQgKy0KIC4uLi9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAg
ICAgIHwgIDEzICstCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3Bw
ICAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGls
ZUdyaWQuY3BwICAgfCAgIDQgKy0KIC4uLi9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVy
V2luLmNwcCAgICAgICAgIHwgICA0ICstCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9U
ZXh0dXJlQ29waWVyQ1YuY3BwICB8ICAxMCArLQogLi4uL29wZW5nbC9HcmFwaGljc0NvbnRleHQz
RE9wZW5HTENvbW1vbi5jcHAgICAgICAgfCAgMTEgKy0KIC4uLi9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwIHwgIDE1ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbSAgICAgfCAgIDYgKy0KIC4uLi9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svU2Nyb2xsQW5pbWF0b3JNb2NrLmNwcCAgIHwgIDE1ICstCiAuLi4vV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tCb3guY3BwICB8ICAgOSArLQogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAgICAgfCAgIDQgKy0K
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJveHlTZXJ2ZXIuY3BwICAgIHwgICA0
ICstCiAuLi4vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmxEYXRhYmFzZS5jcHAgICAgICAgICB8
ICAgNCArLQogLi4uL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQ29va2llSmFyTWFjLm1t
ICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJ
WC5jcHAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9y
bWF0LmNwcCAgICB8ICAyNiArLQogLi4uL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EZWNvZGVFc2Nh
cGVTZXF1ZW5jZXMuaCAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvUGxh
dGZvcm1Mb2NhbGUuY3BwICAgIHwgIDIwICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L1NlZ21lbnRlZFN0cmluZy5jcHAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9UZXh0Q29kZWNJQ1UuY3BwICAgICAgfCAgMTMgKy0KIC4uLi9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvVGV4dENvZGVjVXNlckRlZmluZWQuY3BwIHwgICA0ICstCiAuLi4vV2ViQ29yZS9wbGF0
Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcCB8ICAgNSArLQogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL1VzZXJBZ2VudFdpbi5jcHAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9X
ZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5cGUuY3BwICAgICAgICAgICAgIHwgICA0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwICAgICAgICAgICB8ICAgNCArLQog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgfCAgIDUg
Ky0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcCAgICAgIHwg
ICA5ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAgICAgICAgICAg
ICB8ICAyMyArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tICAg
ICAgICAgfCAgMTAgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5j
cHAgICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFz
VGV4dC5jcHAgICAgICB8ICAgOCArLQogLi4uL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1M
RmVuY2VkLmNwcCAgICAgICAgfCAgIDUgKy0KIC4uLi9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVy
VHJlZUJ1aWxkZXJNYXRoTUwuY3BwIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVu
Z3RoTGlzdFZhbHVlcy5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R051bWJlckxpc3RWYWx1ZXMuY3BwICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXRoU3RyaW5nQnVpbGRlci5jcHAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmNwcCAgICAgICAgIHwgICA0ICstCiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAgICAgICB8ICAgNCAr
LQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmNwcCAgICAgICAgICAgfCAg
MjAgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmgg
IHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgICAgICAgICAg
ICAgICB8ICA2NCArLS0KIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xp
ZW50LmNwcCAgIHwgIDEwICstCiBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExv
YWRlci5jcHAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUveG1sL1hNTEVycm9ycy5jcHAg
ICAgICAgICAgICAgICAgICAgfCAgIDcgKy0KIFNvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdC5jcHAgICAgICAgICAgICAgIHwgIDE1ICstCiBTb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuaCAgICAgICAgICAgICAgICB8ICAgNyArLQogU291cmNlL1dlYkNvcmUveG1sL1hQ
YXRoRnVuY3Rpb25zLmNwcCAgICAgICAgICAgICAgfCAgMjEgKy0KIFNvdXJjZS9XZWJDb3JlL3ht
bC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAgICAgICAgIHwgIDE0ICstCiAuLi4veG1sL3BhcnNl
ci9DaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVzLmggICB8ICAgNSArLQogU291cmNlL1dl
YkRyaXZlci9TZXNzaW9uSG9zdC5jcHAgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQ5ICsrCiAu
Li4vTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcCAgICB8ICAgNCAr
LQogLi4uL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwICAgfCAg
MTggKy0KIC4uLi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVLZXkuY3BwICAgICAg
IHwgICA0ICstCiAuLi4vY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZU1hbmFnZXIuY3BwICAgICAgICAg
ICAgICB8ICAgNiArLQogLi4uL1NoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCL0lEQlV0aWxpdGll
cy5jcHAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0dhbWVwYWQvR2FtZXBhZERh
dGEuY3BwICAgICAgIHwgICA0ICstCiAuLi4vTmV0c2NhcGUvdW5peC9OZXRzY2FwZVBsdWdpbk1v
ZHVsZVVuaXguY3BwICAgICB8ICAgNCArLQogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTWVtb3J5
U2FtcGxlci5jcHAgICAgICAgICAgfCAgIDcgKy0KIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElVc2VyU2NyaXB0LmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJVXNlclN0eWxlU2hlZXQuY3BwICB8ICAgNCArLQogLi4uL1VJUHJvY2Vzcy9Db2Nv
YS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3BwICAgICAgfCAgIDYgKy0KIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAgICAgIHwgICA0ICstCiBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgICAgICAgICB8ICAgNSArLQogU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCAgICAgICAgfCAgIDUgKy0KIC4u
Li9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcCAgIHwgIDIwICst
CiAuLi4vV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeS5jcHAgICAgICAgICB8ICAz
MyArLQogLi4uL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwICAgICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
ICAgIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5j
cHAgICAgICB8ICAgNCArLQogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgfCAgMTIgKwogLi4uL21hYy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlv
bi5tbSAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0FjY2Vzc2li
bGVCYXNlLmNwcCAgICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9QbHVn
aW5zL1BsdWdpblN0cmVhbS5jcHAgICB8ICAgNSArLQogVG9vbHMvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNzggKysrKwogVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRUYXNrLmNwcCAgfCAgIDQgKy0KIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwICAgIHwgIDkyICsrLS0KIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwICAgICAgIHwgIDgwICsrLS0KIC4u
Li9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcCAgICAgICAgICAgIHwgIDg2ICsr
LS0KIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAgIHwg
IDM3ICstCiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTG9nZ2luZy5jcHAgICAg
ICB8ICAzMCArLQogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1RleHRDb2RlYy5j
cHAgICAgfCAgIDQgKy0KIFRvb2xzL1Rlc3RXZWJLaXRBUEkvV1RGU3RyaW5nVXRpbGl0aWVzLmgg
ICAgICAgICAgIHwgICA0ICstCiAuLi4vSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
LmNwcCAgICAgICAgICB8IDE5NiArKysrKystLQogLi4uL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgfCAgMTggKy0KIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwICAgICAgICAgIHwgIDE1ICstCiBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCAgICAgICAgICB8ICAgOSArLQogMzAwIGZpbGVzIGNoYW5n
ZWQsIDM2MTUgaW5zZXJ0aW9ucygrKSwgMTI0OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAKaW5kZXggMDI1ZWJhNC4uNWVkZjY4MSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcApAQCAtMzE0LDcgKzMx
NCw5IEBAIEpTU3RyaW5nUmVmIEpTQ29udGV4dENyZWF0ZUJhY2t0cmFjZShKU0NvbnRleHRSZWYg
Y3R4LCB1bnNpZ25lZCBtYXhTdGFja1NpemUpCiAgICAgQmFja3RyYWNlRnVuY3RvciBmdW5jdG9y
KGJ1aWxkZXIsIG1heFN0YWNrU2l6ZSk7CiAgICAgZnJhbWUtPml0ZXJhdGUoZnVuY3Rvcik7CiAK
LSAgICByZXR1cm4gT3BhcXVlSlNTdHJpbmc6OmNyZWF0ZShidWlsZGVyLnRvU3RyaW5nKCkpLmxl
YWtSZWYoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiBPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKCpzdHJpbmcpLmxlYWtSZWYoKTsKKyAg
ICBDUkFTSCgpOwogfQogCiBib29sIEpTR2xvYmFsQ29udGV4dEdldFJlbW90ZUluc3BlY3Rpb25F
bmFibGVkKEpTR2xvYmFsQ29udGV4dFJlZiBjdHgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL3Rlc3RzL0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcAppbmRleCA2
MzdiMzA0Li4xNjUyODM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rl
c3RzL0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAKQEAgLTE5NCwyMiArMTk0LDI1
IEBAIGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICAgICAgICAgIHNjcmlwdEJ1aWxk
ZXIuYXBwZW5kTnVtYmVyKHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkLnNlY29uZHMo
KSk7CiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoIikgYnJlYWs7IH0g
fSBmb28oKTsiKTsKIAotICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoc2NyaXB0QnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOwotICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKLSAgICAgICAgICAgIHNob3Vs
ZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBhdXRvIHN0
YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLSAgICAgICAgICAgIEpTRXZh
bHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0
aW9uKTsKLSAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJl
YWQoKTsKLQotICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCB0aW1lQWZ0
ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgJiYgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXND
YWxsZWQpCi0gICAgICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiAlcyBzY3JpcHQgdGltZWQgb3V0
IGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICBlbHNlIHsK
LSAgICAgICAgICAgICAgICBpZiAoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldh
dGNoZG9nU2hvdWxkSGF2ZUZpcmVkKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6
ICVzIHNjcmlwdCBkaWQgbm90IHRpbWUgb3V0IGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMu
dGllcik7Ci0gICAgICAgICAgICAgICAgaWYgKCFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0Nh
bGxlZCkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgdGltZW91
dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAg
ICAgICAgICAgIGZhaWxlZCA9IHRydWU7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAo
YXV0byBzdHJpbmcgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAg
ICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJp
bmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7
CisgICAgICAgICAgICAgICAgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxz
ZTsKKyAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRU
aHJlYWQoKTsKKyAgICAgICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNjcmlw
dCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgYXV0
byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworCisgICAgICAgICAgICAg
ICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhh
dmVGaXJlZCkgJiYgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCisgICAgICAgICAg
ICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IHRpbWVkIG91dCBhcyBleHBlY3RlZC5c
biIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAg
ICAgICAgICAgICBpZiAoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9n
U2hvdWxkSGF2ZUZpcmVkKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAl
cyBzY3JpcHQgZGlkIG5vdCB0aW1lIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRp
ZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2Fz
Q2FsbGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQg
dGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwor
ICAgICAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAK
ICAgICAgICAgICAgIGlmICghZXhjZXB0aW9uKSB7CiAgICAgICAgICAgICAgICAgcHJpbnRmKCJG
QUlMOiAlcyBUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uIHdhcyBub3QgdGhyb3duLlxuIiwg
dGllck9wdGlvbnMudGllcik7CkBAIC0yMzcsMjIgKzI0MCwyNSBAQCBpbnQgdGVzdEV4ZWN1dGlv
blRpbWVMaW1pdCgpCiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiAg
ICByZXR1cm4gcmVjdXJzZShpICsgMSk7IH0iKTsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgicmVjdXJzZSgwKTsiKTsKIAotICAgICAgICAgICAgSlNTdHJpbmdSZWYg
c2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc2NyaXB0QnVpbGRlci50b1N0
cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsK
LSAgICAgICAgICAgIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7Ci0g
ICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsK
LSAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBu
dWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKLSAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRp
bWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLQotICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0
YXJ0VGltZSkgPCB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgJiYgc2hvdWxkVGVy
bWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCi0gICAgICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiAl
cyBzY3JpcHQgd2l0aCBpbmZpbml0ZSB0YWlsIGNhbGxzIHRpbWVkIG91dCBhcyBleHBlY3RlZCAu
XG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAg
ICAgIGlmICgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRI
YXZlRmlyZWQpCi0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHdp
dGggaW5maW5pdGUgdGFpbCBjYWxscyBkaWQgbm90IHRpbWUgb3V0IGFzIGV4cGVjdGVkLlxuIiwg
dGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAgaWYgKCFzaG91bGRUZXJtaW5hdGVD
YWxsYmFja1dhc0NhbGxlZCkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBz
Y3JpcHQgd2l0aCBpbmZpbml0ZSB0YWlsIGNhbGxzJyB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3Qg
Y2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAgZmFpbGVkID0g
dHJ1ZTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHNjcmlw
dEJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlw
dCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7
CisgICAgICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBz
aG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOworICAgICAgICAgICAgICAg
IGF1dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAgICAg
ICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRy
LCAxLCAmZXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICBhdXRvIGVuZFRpbWUgPSBDUFVUaW1l
Ojpmb3JDdXJyZW50VGhyZWFkKCk7CisKKyAgICAgICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0g
c3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiBzaG91bGRU
ZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJQ
QVNTOiAlcyBzY3JpcHQgd2l0aCBpbmZpbml0ZSB0YWlsIGNhbGxzIHRpbWVkIG91dCBhcyBleHBl
Y3RlZCAuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJX
YXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50Zigi
RkFJTDogJXMgc2NyaXB0IHdpdGggaW5maW5pdGUgdGFpbCBjYWxscyBkaWQgbm90IHRpbWUgb3V0
IGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAg
IGlmICghc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCisgICAgICAgICAgICAgICAg
ICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB3aXRoIGluZmluaXRlIHRhaWwgY2FsbHMn
IHRpbWVvdXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsK
KyAgICAgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAg
CiAgICAgICAgICAgICBpZiAoIWV4Y2VwdGlvbikgewogICAgICAgICAgICAgICAgIHByaW50Zigi
RkFJTDogJXMgVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbiB3YXMgbm90IHRocm93bi5cbiIs
IHRpZXJPcHRpb25zLnRpZXIpOwpAQCAtMjczLDIxICsyNzksMjQgQEAgaW50IHRlc3RFeGVjdXRp
b25UaW1lTGltaXQoKQogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmROdW1iZXIodGlt
ZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQuc2Vjb25kcygpKTsKICAgICAgICAgICAgIHNj
cmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSBicmVhazsgfSB9IGNhdGNoKGUpIHsgfSB9IGZv
bygpOyIpOwogCi0gICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZyhzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7
Ci0gICAgICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOwotICAgICAgICAgICAgc2hvdWxkVGVy
bWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgICAgIEpTU3Ry
aW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZy0+dXRm
OCgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKKyAgICAg
ICAgICAgICAgICBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOwogCi0g
ICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsK
LSAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBu
dWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKLSAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRp
bWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9
IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAgICBKU0V2YWx1YXRl
U2NyaXB0KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7
CisgICAgICAgICAgICAgICAgYXV0byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVh
ZCgpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1l
KSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgfHwgIXNob3VsZFRlcm1pbmF0
ZUNhbGxiYWNrV2FzQ2FsbGVkKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCEoKGVuZFRpbWUgLSBz
dGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpKQotICAgICAgICAg
ICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCBkaWQgbm90IHRpbWUgb3V0IGFzIGV4
cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAgaWYgKCFzaG91
bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRm
KCJGQUlMOiAlcyBzY3JpcHQgdGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIsIHRp
ZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7Ci0gICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gdGlt
ZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpIHx8ICFzaG91bGRUZXJtaW5hdGVDYWxsYmFj
a1dhc0NhbGxlZCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoISgoZW5kVGltZSAtIHN0YXJ0
VGltZSkgPCB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkpCisgICAgICAgICAgICAg
ICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCBkaWQgbm90IHRpbWUgb3V0IGFzIGV4
cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAgIGlmICgh
c2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCisgICAgICAgICAgICAgICAgICAgICAg
ICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVk
LlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRy
dWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAg
ICAgQ1JBU0goKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbikKICAg
ICAgICAgICAgICAgICBwcmludGYoIlBBU1M6ICVzIFRlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRp
b24gd2FzIG5vdCBjYXRjaGFibGUgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsK
QEAgLTMwOSwyNCArMzE4LDI3IEBAIGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICAg
ICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiZnVuY3Rpb24gZm9vKCkgeyB2YXIg
c3RhcnRUaW1lID0gY3VycmVudENQVVRpbWUoKTsgd2hpbGUgKHRydWUpIHsgZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwOyBpKyspOyBpZiAoY3VycmVudENQVVRpbWUoKSAtIHN0YXJ0VGltZSA+ICIp
OwogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmROdW1iZXIodGltZUFmdGVyV2F0Y2hk
b2dTaG91bGRIYXZlRmlyZWQuc2Vjb25kcygpKTsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiKSBicmVhazsgfSB9IGZvbygpOyIpOwotICAgICAgICAgICAgCi0gICAg
ICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZyhzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBl
eGNlcHRpb24gPSBudWxscHRyOwotICAgICAgICAgICAgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tX
YXNDYWxsZWQgPSBmYWxzZTsKIAotICAgICAgICAgICAgYXV0byBzdGFydFRpbWUgPSBDUFVUaW1l
Ojpmb3JDdXJyZW50VGhyZWFkKCk7Ci0gICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRl
eHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7Ci0gICAgICAgICAg
ICBhdXRvIGVuZFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CisgICAgICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAg
ICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZyhzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51
bGxwdHI7CisgICAgICAgICAgICAgICAgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQg
PSBmYWxzZTsKKworICAgICAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6Zm9y
Q3VycmVudFRocmVhZCgpOworICAgICAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4
dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKKyAgICAgICAgICAg
ICAgICBhdXRvIGVuZFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CiAgICAgICAg
ICAgICAKLSAgICAgICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVy
V2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpICYmICFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0Nh
bGxlZCkKLSAgICAgICAgICAgICAgICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCB0aW1lZCBvdXQg
YXMgZXhwZWN0ZWQgd2hlbiBubyBjYWxsYmFjayBpcyBzcGVjaWZpZWQuXG4iLCB0aWVyT3B0aW9u
cy50aWVyKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGlmICgoZW5kVGlt
ZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpCi0gICAg
ICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IGRpZCBub3QgdGltZSBvdXQg
YXMgZXhwZWN0ZWQgd2hlbiBubyBjYWxsYmFjayBpcyBzcGVjaWZpZWQuXG4iLCB0aWVyT3B0aW9u
cy50aWVyKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHByaW50
ZigiRkFJTDogJXMgc2NyaXB0IGNhbGxlZCBzdGFsZSBjYWxsYmFjayBmdW5jdGlvbi5cbiIsIHRp
ZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7Ci0gICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCB0aW1l
QWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgJiYgIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNr
V2FzQ2FsbGVkKQorICAgICAgICAgICAgICAgICAgICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCB0
aW1lZCBvdXQgYXMgZXhwZWN0ZWQgd2hlbiBubyBjYWxsYmFjayBpcyBzcGVjaWZpZWQuXG4iLCB0
aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3Vs
ZEhhdmVGaXJlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2Ny
aXB0IGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQgd2hlbiBubyBjYWxsYmFjayBpcyBzcGVj
aWZpZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgY2FsbGVkIHN0
YWxlIGNhbGxiYWNrIGZ1bmN0aW9uLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAg
ICAgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIAogICAgICAgICAg
ICAgaWYgKCFleGNlcHRpb24pIHsKICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIFRl
cm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24gd2FzIG5vdCB0aHJvd24uXG4iLCB0aWVyT3B0aW9u
cy50aWVyKTsKQEAgLTM0NywyMyArMzU5LDI2IEBAIGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0
KCkKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRpbWVBZnRlcldhdGNo
ZG9nU2hvdWxkSGF2ZUZpcmVkLnNlY29uZHMoKSk7CiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVy
LmFwcGVuZExpdGVyYWwoIikgYnJlYWs7IH0gfSBmb28oKTsiKTsKIAotICAgICAgICAgICAgSlNT
dHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc2NyaXB0QnVp
bGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgZXhjZXB0aW9uID0g
bnVsbHB0cjsKLSAgICAgICAgICAgIGNhbmNlbFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkID0g
ZmFsc2U7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzY3JpcHRCdWlsZGVyLnRvU3Ry
aW5nKCkpIHsKKyAgICAgICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAg
ICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7CisgICAgICAgICAgICAgICAgY2FuY2VsVGVybWluYXRl
Q2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKIAotICAgICAgICAgICAgYXV0byBzdGFydFRpbWUg
PSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7Ci0gICAgICAgICAgICBKU0V2YWx1YXRlU2Ny
aXB0KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7Ci0g
ICAgICAgICAgICBhdXRvIGVuZFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7Cisg
ICAgICAgICAgICAgICAgYXV0byBzdGFydFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFk
KCk7CisgICAgICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51
bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOworICAgICAgICAgICAgICAgIGF1dG8gZW5k
VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKICAgICAgICAgICAgIAotICAgICAg
ICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFmdGVyV2F0Y2hkb2dTaG91
bGRIYXZlRmlyZWQpICYmIGNhbmNlbFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkICYmICFleGNl
cHRpb24pCi0gICAgICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiAlcyBzY3JpcHQgdGltZW91dCB3
YXMgY2FuY2VsbGVkIGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAg
ICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8
IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSB8fCBleGNlcHRpb24pCi0gICAgICAg
ICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgd2FzIG5vdCBjYW5j
ZWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBpZiAoIWNhbmNl
bFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQotICAgICAgICAgICAgICAgICAgICBwcmludGYo
IkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIiwgdGll
ck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKLSAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1l
QWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgJiYgY2FuY2VsVGVybWluYXRlQ2FsbGJhY2tX
YXNDYWxsZWQgJiYgIWV4Y2VwdGlvbikKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJQQVNT
OiAlcyBzY3JpcHQgdGltZW91dCB3YXMgY2FuY2VsbGVkIGFzIGV4cGVjdGVkLlxuIiwgdGllck9w
dGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAg
IGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZl
RmlyZWQpIHx8IGV4Y2VwdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJ
TDogJXMgc2NyaXB0IHRpbWVvdXQgd2FzIG5vdCBjYW5jZWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50
aWVyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjYW5jZWxUZXJtaW5hdGVDYWxsYmFja1dh
c0NhbGxlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0
IHRpbWVvdXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsK
KyAgICAgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAg
CiAgICAgICAgICAgICBpZiAoZXhjZXB0aW9uKSB7CiAgICAgICAgICAgICAgICAgcHJpbnRmKCJG
QUlMOiAlcyBVbmV4cGVjdGVkIFRlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24gdGhyb3duLlxu
IiwgdGllck9wdGlvbnMudGllcik7CkBAIC0zODQsMzMgKzM5OSwzNiBAQCBpbnQgdGVzdEV4ZWN1
dGlvblRpbWVMaW1pdCgpCiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZE51bWJlciht
YXhCdXN5TG9vcFRpbWUuc2Vjb25kcygpKTsgLy8gaW4gc2Vjb25kcy4KICAgICAgICAgICAgIHNj
cmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSBicmVhazsgfSB9IGZvbygpOyIpOwogCi0gICAg
ICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZyhzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBl
eGNlcHRpb24gPSBudWxscHRyOwotICAgICAgICAgICAgZXh0ZW5kVGVybWluYXRlQ2FsbGJhY2tD
YWxsZWQgPSAwOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc2NyaXB0QnVpbGRlci50
b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAg
ICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOworICAgICAgICAgICAgICAgIGV4dGVuZFRlcm1p
bmF0ZUNhbGxiYWNrQ2FsbGVkID0gMDsKIAotICAgICAgICAgICAgYXV0byBzdGFydFRpbWUgPSBD
UFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7Ci0gICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0
KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7Ci0gICAg
ICAgICAgICBhdXRvIGVuZFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7Ci0gICAg
ICAgICAgICBhdXRvIGRlbHRhVGltZSA9IGVuZFRpbWUgLSBzdGFydFRpbWU7CisgICAgICAgICAg
ICAgICAgYXV0byBzdGFydFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CisgICAg
ICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51
bGxwdHIsIDEsICZleGNlcHRpb24pOworICAgICAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQ
VVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAgICBhdXRvIGRlbHRhVGlt
ZSA9IGVuZFRpbWUgLSBzdGFydFRpbWU7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICgo
ZGVsdGFUaW1lID49IHRpbWVCZWZvcmVFeHRlbmRlZERlYWRsaW5lKSAmJiAoZGVsdGFUaW1lIDwg
dGltZUFmdGVyRXh0ZW5kZWREZWFkbGluZSkgJiYgKGV4dGVuZFRlcm1pbmF0ZUNhbGxiYWNrQ2Fs
bGVkID09IDIpICYmIGV4Y2VwdGlvbikKLSAgICAgICAgICAgICAgICBwcmludGYoIlBBU1M6ICVz
IHNjcmlwdCB0aW1lb3V0IHdhcyBleHRlbmRlZCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25z
LnRpZXIpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKGRlbHRhVGlt
ZSA8IHRpbWVCZWZvcmVFeHRlbmRlZERlYWRsaW5lKQotICAgICAgICAgICAgICAgICAgICBwcmlu
dGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IHdhcyBub3QgZXh0ZW5kZWQgYXMgZXhwZWN0ZWQu
XG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBlbHNlIGlmIChkZWx0YVRp
bWUgPj0gdGltZUFmdGVyRXh0ZW5kZWREZWFkbGluZSkKLSAgICAgICAgICAgICAgICAgICAgcHJp
bnRmKCJGQUlMOiAlcyBzY3JpcHQgZGlkIG5vdCB0aW1lb3V0LlxuIiwgdGllck9wdGlvbnMudGll
cik7CisgICAgICAgICAgICAgICAgaWYgKChkZWx0YVRpbWUgPj0gdGltZUJlZm9yZUV4dGVuZGVk
RGVhZGxpbmUpICYmIChkZWx0YVRpbWUgPCB0aW1lQWZ0ZXJFeHRlbmRlZERlYWRsaW5lKSAmJiAo
ZXh0ZW5kVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQgPT0gMikgJiYgZXhjZXB0aW9uKQorICAgICAg
ICAgICAgICAgICAgICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCB0aW1lb3V0IHdhcyBleHRlbmRl
ZCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgIGVs
c2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoZGVsdGFUaW1lIDwgdGltZUJlZm9yZUV4dGVu
ZGVkRGVhZGxpbmUpCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNj
cmlwdCB0aW1lb3V0IHdhcyBub3QgZXh0ZW5kZWQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9u
cy50aWVyKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZGVsdGFUaW1lID49IHRpbWVB
ZnRlckV4dGVuZGVkRGVhZGxpbmUpCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZB
SUw6ICVzIHNjcmlwdCBkaWQgbm90IHRpbWVvdXQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKICAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAoZXh0ZW5kVGVybWluYXRlQ2FsbGJh
Y2tDYWxsZWQgPCAxKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlw
dCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7
Ci0gICAgICAgICAgICAgICAgaWYgKGV4dGVuZFRlcm1pbmF0ZUNhbGxiYWNrQ2FsbGVkIDwgMikK
LSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgdGltZW91dCBjYWxs
YmFjayB3YXMgbm90IGNhbGxlZCBhZnRlciB0aW1lb3V0IGV4dGVuc2lvbi5cbiIsIHRpZXJPcHRp
b25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoZXh0ZW5kVGVybWluYXRlQ2FsbGJh
Y2tDYWxsZWQgPCAxKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBz
Y3JpcHQgdGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRp
ZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoZXh0ZW5kVGVybWluYXRlQ2FsbGJhY2tDYWxs
ZWQgPCAyKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQg
dGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZCBhZnRlciB0aW1lb3V0IGV4dGVuc2lvbi5c
biIsIHRpZXJPcHRpb25zLnRpZXIpOwogICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAg
IGlmICghZXhjZXB0aW9uKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIFRl
cm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24gd2FzIG5vdCB0aHJvd24gZHVyaW5nIHRpbWVvdXQg
ZXh0ZW5zaW9uIHRlc3QuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKCFleGNlcHRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6
ICVzIFRlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24gd2FzIG5vdCB0aHJvd24gZHVyaW5nIHRp
bWVvdXQgZXh0ZW5zaW9uIHRlc3QuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKICAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOwotICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KIAogI2lm
IEhBVkUoTUFDSF9FWENFUFRJT05TKQpAQCAtNDI1LDU2ICs0NDMsNjIgQEAgaW50IHRlc3RFeGVj
dXRpb25UaW1lTGltaXQoKQogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmROdW1iZXIo
dGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQuc2Vjb25kcygpKTsKICAgICAgICAgICAg
IHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSBicmVhazsgfSB9IGZvbygpOyIpOwogCi0g
ICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZyhzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAg
ICBleGNlcHRpb24gPSBudWxscHRyOwotICAgICAgICAgICAgZGlzcGF0Y2hUZXJtaW5hdGVDYWxs
YmFja0NhbGxlZCA9IGZhbHNlOwotCi0gICAgICAgICAgICAvLyBXZSBoYXZlIHRvIGRvIHRoaXMg
c2luY2UgYmxvY2tzIGNhbiBvbmx5IGNhcHR1cmUgdGhpbmdzIGFzIGNvbnN0LgotICAgICAgICAg
ICAgSlNHbG9iYWxDb250ZXh0UmVmJiBjb250ZXh0UmVmID0gY29udGV4dDsKLSAgICAgICAgICAg
IEpTU3RyaW5nUmVmJiBzY3JpcHRSZWYgPSBzY3JpcHQ7Ci0gICAgICAgICAgICBKU1ZhbHVlUmVm
JiBleGNlcHRpb25SZWYgPSBleGNlcHRpb247Ci0KLSAgICAgICAgICAgIExvY2sgc3luY0xvY2s7
Ci0gICAgICAgICAgICBMb2NrJiBzeW5jTG9ja1JlZiA9IHN5bmNMb2NrOwotICAgICAgICAgICAg
Q29uZGl0aW9uIHN5bmNocm9uaXplOwotICAgICAgICAgICAgQ29uZGl0aW9uJiBzeW5jaHJvbml6
ZVJlZiA9IHN5bmNocm9uaXplOwotICAgICAgICAgICAgYm9vbCBkaWRTeW5jaHJvbml6ZSA9IGZh
bHNlOwotICAgICAgICAgICAgYm9vbCYgZGlkU3luY2hyb25pemVSZWYgPSBkaWRTeW5jaHJvbml6
ZTsKLQotICAgICAgICAgICAgU2Vjb25kcyBzdGFydFRpbWU7Ci0gICAgICAgICAgICBTZWNvbmRz
IGVuZFRpbWU7Ci0KLSAgICAgICAgICAgIFNlY29uZHMmIHN0YXJ0VGltZVJlZiA9IHN0YXJ0VGlt
ZTsKLSAgICAgICAgICAgIFNlY29uZHMmIGVuZFRpbWVSZWYgPSBlbmRUaW1lOwotCi0gICAgICAg
ICAgICBkaXNwYXRjaF9ncm91cF90IGdyb3VwID0gZGlzcGF0Y2hfZ3JvdXBfY3JlYXRlKCk7Ci0g
ICAgICAgICAgICBkaXNwYXRjaF9ncm91cF9hc3luYyhncm91cCwgZGlzcGF0Y2hfZ2V0X2dsb2Jh
bF9xdWV1ZSgwLCAwKSwgXnsKLSAgICAgICAgICAgICAgICBzdGFydFRpbWVSZWYgPSBDUFVUaW1l
Ojpmb3JDdXJyZW50VGhyZWFkKCk7Ci0gICAgICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChj
b250ZXh0UmVmLCBzY3JpcHRSZWYsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb25SZWYp
OwotICAgICAgICAgICAgICAgIGVuZFRpbWVSZWYgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFk
KCk7Ci0gICAgICAgICAgICAgICAgYXV0byBsb2NrZXIgPSBXVEY6OmhvbGRMb2NrKHN5bmNMb2Nr
UmVmKTsKLSAgICAgICAgICAgICAgICBkaWRTeW5jaHJvbml6ZVJlZiA9IHRydWU7Ci0gICAgICAg
ICAgICAgICAgc3luY2hyb25pemVSZWYubm90aWZ5QWxsKCk7Ci0gICAgICAgICAgICB9KTsKLQot
ICAgICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhzeW5jTG9jayk7Ci0gICAgICAgICAg
ICBzeW5jaHJvbml6ZS53YWl0KHN5bmNMb2NrLCBbJl0geyByZXR1cm4gZGlkU3luY2hyb25pemU7
IH0pOwotCi0gICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRl
cldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiBkaXNwYXRjaFRlcm1pbmF0ZUNhbGxiYWNrQ2Fs
bGVkKQotICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IG9uIGRpc3BhdGNo
IHF1ZXVlIHRpbWVkIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAg
ICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKChlbmRUaW1lIC0gc3RhcnRUaW1l
KSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkKLSAgICAgICAgICAgICAgICAg
ICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgb24gZGlzcGF0Y2ggcXVldWUgZGlkIG5vdCB0aW1l
IG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgICAg
IGlmICghc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCi0gICAgICAgICAgICAgICAg
ICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IG9uIGRpc3BhdGNoIHF1ZXVlIHRpbWVvdXQgY2Fs
bGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAg
ICAgICBmYWlsZWQgPSB0cnVlOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgSlNT
dHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyaW5nLT51
dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOworICAg
ICAgICAgICAgICAgIGRpc3BhdGNoVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKKwor
ICAgICAgICAgICAgICAgIC8vIFdlIGhhdmUgdG8gZG8gdGhpcyBzaW5jZSBibG9ja3MgY2FuIG9u
bHkgY2FwdHVyZSB0aGluZ3MgYXMgY29uc3QuCisgICAgICAgICAgICAgICAgSlNHbG9iYWxDb250
ZXh0UmVmJiBjb250ZXh0UmVmID0gY29udGV4dDsKKyAgICAgICAgICAgICAgICBKU1N0cmluZ1Jl
ZiYgc2NyaXB0UmVmID0gc2NyaXB0OworICAgICAgICAgICAgICAgIEpTVmFsdWVSZWYmIGV4Y2Vw
dGlvblJlZiA9IGV4Y2VwdGlvbjsKKworICAgICAgICAgICAgICAgIExvY2sgc3luY0xvY2s7Cisg
ICAgICAgICAgICAgICAgTG9jayYgc3luY0xvY2tSZWYgPSBzeW5jTG9jazsKKyAgICAgICAgICAg
ICAgICBDb25kaXRpb24gc3luY2hyb25pemU7CisgICAgICAgICAgICAgICAgQ29uZGl0aW9uJiBz
eW5jaHJvbml6ZVJlZiA9IHN5bmNocm9uaXplOworICAgICAgICAgICAgICAgIGJvb2wgZGlkU3lu
Y2hyb25pemUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBib29sJiBkaWRTeW5jaHJvbml6ZVJl
ZiA9IGRpZFN5bmNocm9uaXplOworCisgICAgICAgICAgICAgICAgU2Vjb25kcyBzdGFydFRpbWU7
CisgICAgICAgICAgICAgICAgU2Vjb25kcyBlbmRUaW1lOworCisgICAgICAgICAgICAgICAgU2Vj
b25kcyYgc3RhcnRUaW1lUmVmID0gc3RhcnRUaW1lOworICAgICAgICAgICAgICAgIFNlY29uZHMm
IGVuZFRpbWVSZWYgPSBlbmRUaW1lOworCisgICAgICAgICAgICAgICAgZGlzcGF0Y2hfZ3JvdXBf
dCBncm91cCA9IGRpc3BhdGNoX2dyb3VwX2NyZWF0ZSgpOworICAgICAgICAgICAgICAgIGRpc3Bh
dGNoX2dyb3VwX2FzeW5jKGdyb3VwLCBkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKDAsIDApLCBe
eworICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWVSZWYgPSBDUFVUaW1lOjpmb3JDdXJyZW50
VGhyZWFkKCk7CisgICAgICAgICAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dFJl
Ziwgc2NyaXB0UmVmLCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uUmVmKTsKKyAgICAg
ICAgICAgICAgICAgICAgZW5kVGltZVJlZiA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsK
KyAgICAgICAgICAgICAgICAgICAgYXV0byBsb2NrZXIgPSBXVEY6OmhvbGRMb2NrKHN5bmNMb2Nr
UmVmKTsKKyAgICAgICAgICAgICAgICAgICAgZGlkU3luY2hyb25pemVSZWYgPSB0cnVlOworICAg
ICAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZVJlZi5ub3RpZnlBbGwoKTsKKyAgICAgICAgICAg
ICAgICB9KTsKKworICAgICAgICAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soc3luY0xv
Y2spOworICAgICAgICAgICAgICAgIHN5bmNocm9uaXplLndhaXQoc3luY0xvY2ssIFsmXSB7IHJl
dHVybiBkaWRTeW5jaHJvbml6ZTsgfSk7CisKKyAgICAgICAgICAgICAgICBpZiAoKChlbmRUaW1l
IC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiBkaXNw
YXRjaFRlcm1pbmF0ZUNhbGxiYWNrQ2FsbGVkKQorICAgICAgICAgICAgICAgICAgICBwcmludGYo
IlBBU1M6ICVzIHNjcmlwdCBvbiBkaXNwYXRjaCBxdWV1ZSB0aW1lZCBvdXQgYXMgZXhwZWN0ZWQu
XG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRv
Z1Nob3VsZEhhdmVGaXJlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDog
JXMgc2NyaXB0IG9uIGRpc3BhdGNoIHF1ZXVlIGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQu
XG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFzaG91bGRU
ZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50
ZigiRkFJTDogJXMgc2NyaXB0IG9uIGRpc3BhdGNoIHF1ZXVlIHRpbWVvdXQgY2FsbGJhY2sgd2Fz
IG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICAgICAg
ZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAjZW5kaWYKIAogICAgICAgICBKU0ds
b2JhbENvbnRleHRSZWxlYXNlKGNvbnRleHQpOwogCi0gICAgICAgIE9wdGlvbnM6OnNldE9wdGlv
bnMoc2F2ZWRPcHRpb25zQnVpbGRlci50b1N0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gc2F2ZWRPcHRpb25zQnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICAgICAgT3B0aW9uczo6c2V0T3B0aW9ucyhzdHJpbmctPmFzY2lpKCkuZGF0YSgpKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgCiAgICAgcmV0dXJu
IGZhaWxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvUGlu
Z1BvbmdTdGFja092ZXJmbG93VGVzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rl
c3RzL1BpbmdQb25nU3RhY2tPdmVyZmxvd1Rlc3QuY3BwCmluZGV4IDA0MmJlYmYuLjExMjMwOWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvUGluZ1BvbmdTdGFj
a092ZXJmbG93VGVzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9Q
aW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcApAQCAtNjQsOSArNjQsMTIgQEAgc3RhdGljIGJv
b2wgUGluZ1BvbmdTdGFja092ZXJmbG93T2JqZWN0X2hhc0luc3RhbmNlKEpTQ29udGV4dFJlZiBj
b250ZXh0LCBKU09iamUKICAgICAgICAgfQogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwo
Iik7Iik7CiAKLSAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoYnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBy
ZXN1bHQgPSBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNjcmlwdCwgTlVMTCwgTlVMTCwgMSwg
ZXhjZXB0aW9uKTsKLSAgICAgICAgSlNTdHJpbmdSZWxlYXNlKHNjcmlwdCk7CisgICAgICAgIGlm
IChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgSlNTdHJp
bmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyaW5nLT51dGY4
KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IEpTRXZhbHVhdGVTY3JpcHQoY29udGV4
dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCBleGNlcHRpb24pOworICAgICAgICAgICAg
SlNTdHJpbmdSZWxlYXNlKHNjcmlwdCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgQ1JB
U0goKTsKICAgICB9CiAKICAgICAtLW5hdGl2ZVJlY3Vyc2lvbkNvdW50OwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
aGFuZ2VMb2cKaW5kZXggNjVhNTJjMS4uYTdjYWZjOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsOTggQEAKKzIwMTgtMDQtMjYgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBw
bGUuY29tPgorCisgICAgICAgIFN0cmluZ0J1aWxkZXIgaXMgZmFsbGlibGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTA0OAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0cmluZ0J1aWxkZXIgY2FuIGZh
aWwgd2hlbiBhbGxvY2F0aW5nIG1lbW9yeS4gU3RyaW5nQnVpbGRlciBpcworICAgICAgICBtb3N0
bHkgdXNlZCB3aXRoIHVzZXIgaW5wdXQsIHdoaWNoIG9mdGVuIG1lYW5zIHRoYXQganVzdCBjcmFz
aGluZworICAgICAgICBpc24ndCB0aGUgcmlnaHQgb3V0Y29tZS4gT3VyIGZ1enplcnMgb2Z0ZW4g
ZW5jb3VudGVyIHN1Y2ggdGhpbmdzCisgICAgICAgIGZvciBKYXZhU2NyaXB0Q29yZSwgYW5kIHNv
IGZhciB3ZSd2ZSBhcHBsaWVkIHBvaW50IHNvbHV0aW9ucy4gTm8KKyAgICAgICAgbW9yZSEKKwor
ICAgICAgICAqIEFQSS9KU0NvbnRleHRSZWYuY3BwOgorICAgICAgICAoSlNDb250ZXh0Q3JlYXRl
QmFja3RyYWNlKToKKyAgICAgICAgKiBBUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5j
cHA6CisgICAgICAgICh0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KToKKyAgICAgICAgKiBBUEkvdGVz
dHMvUGluZ1BvbmdTdGFja092ZXJmbG93VGVzdC5jcHA6CisgICAgICAgIChQaW5nUG9uZ1N0YWNr
T3ZlcmZsb3dPYmplY3RfaGFzSW5zdGFuY2UpOgorICAgICAgICAqIGRmZy9ERkdTdHJlbmd0aFJl
ZHVjdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTdHJlbmd0aFJlZHVjdGlvblBo
YXNlOjpoYW5kbGVOb2RlKToKKyAgICAgICAgKiBoZWFwL0hlYXBTbmFwc2hvdEJ1aWxkZXIuY3Bw
OgorICAgICAgICAoSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyOjpqc29uKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpDb25zb2xl
TWVzc2FnZTo6Q29uc29sZU1lc3NhZ2UpOgorICAgICAgICAqIGluc3BlY3Rvci9Db250ZW50U2Vh
cmNoVXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6Q29udGVudFNlYXJjaFV0aWxp
dGllczo6Y3JlYXRlU2VhcmNoUmVnZXhTb3VyY2UpOgorICAgICAgICAqIGludGVycHJldGVyL0lu
dGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OnN0YWNrVHJhY2VBc1N0
cmluZyk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcDoKKyAgICAgICAg
KEpTQzo6U3RhY2tWaXNpdG9yOjpGcmFtZTo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAqIGpz
Yy5jcHA6CisgICAgICAgIChyZXNvbHZlUGF0aCk6CisgICAgICAgIChmdW5jdGlvbkpTQ1N0YWNr
KToKKyAgICAgICAgKiBydW50aW1lL0NvbmZpZ0ZpbGUuY3BwOgorICAgICAgICAoSlNDOjpDb25m
aWdGaWxlOjpwYXJzZSk6CisgICAgICAgICogcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcDoKKyAg
ICAgICAgKEpTQzo6Q29uc29sZUNsaWVudDo6cHJpbnRDb25zb2xlTWVzc2FnZSk6CisgICAgICAg
IChKU0M6OkNvbnNvbGVDbGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2VXaXRoQXJndW1lbnRzKToK
KyAgICAgICAgKiBydW50aW1lL0RhdGVDb252ZXJzaW9uLmNwcDoKKyAgICAgICAgKEpTQzo6Zm9y
bWF0RGF0ZVRpbWUpOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHA6CisgICAg
ICAgIChKU0M6OkVycm9ySW5zdGFuY2U6OnNhbml0aXplZFRvU3RyaW5nKToKKyAgICAgICAgKiBy
dW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwOgorICAgICAgICAoSlNDOjpub3RBRnVuY3Rpb25T
b3VyY2VBcHBlbmRlcik6CisgICAgICAgICogcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNw
cDoKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0RnVuY3Rpb25Ta2lwcGluZ0V2YWxFbmFibGVkQ2hl
Y2spOgorICAgICAgICAqIHJ1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcDoKKyAgICAgICAg
KEpTQzo6SW50bERhdGVUaW1lRm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQpOgorICAg
ICAgICAqIHJ1bnRpbWUvSW50bE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OnByaXZhdGVVc2VM
YW5nVGFnKToKKyAgICAgICAgKEpTQzo6Y2Fub25pY2FsTGFuZ1RhZyk6CisgICAgICAgIChKU0M6
OnJlbW92ZVVuaWNvZGVMb2NhbGVFeHRlbnNpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9i
YWxPYmplY3RGdW5jdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjplbmNvZGUpOgorICAgICAgICAo
SlNDOjpkZWNvZGUpOgorICAgICAgICAoSlNDOjpnbG9iYWxGdW5jRXNjYXBlKToKKyAgICAgICAg
KEpTQzo6Z2xvYmFsRnVuY1VuZXNjYXBlKToKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3Qu
Y3BwOgorICAgICAgICAoSlNDOjpTdHJpbmdpZmllcjo6c3RyaW5naWZ5KToKKyAgICAgICAgKEpT
Qzo6U3RyaW5naWZpZXI6OkhvbGRlcjo6YXBwZW5kTmV4dFByb3BlcnR5KToKKyAgICAgICAgKiBy
dW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpMaXRlcmFsUGFyc2VyPENo
YXJUeXBlPjo6TGV4ZXI6OmxleFN0cmluZ1Nsb3cpOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9u
cy5jcHA6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OmR1bXBPcHRpb25zSWZOZWVkZWQpOgorICAg
ICAgICAoSlNDOjpPcHRpb25zOjpkdW1wQWxsT3B0aW9ucyk6CisgICAgICAgICogcnVudGltZS9S
ZWdFeHBQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0dldHRlclNvdXJj
ZUludGVybmFsKToKKyAgICAgICAgKiBydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwOgorICAg
ICAgICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjpzdGFja1RyYWNlc0FzSlNPTik6CisgICAgICAg
ICogcnVudGltZS9TdGFja0ZyYW1lLmNwcDoKKyAgICAgICAgKEpTQzo6U3RhY2tGcmFtZTo6dG9T
dHJpbmcgY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpzdHJpbmdGcm9tQ29kZVBvaW50KToKKyAgICAgICAgKiBydW50aW1lL1N0
cmluZ1Byb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OnN1YnN0aXR1dGVCYWNrcmVmZXJlbmNl
c1Nsb3cpOgorICAgICAgICAqIHJ1bnRpbWUvVHlwZVByb2ZpbGVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6VHlwZVByb2ZpbGVyOjp0eXBlSW5mb3JtYXRpb25Gb3JFeHByZXNzaW9uQXRPZmZzZXQpOgor
ICAgICAgICAqIHJ1bnRpbWUvVHlwZVNldC5jcHA6CisgICAgICAgIChKU0M6OlR5cGVTZXQ6OmR1
bXBUeXBlcyBjb25zdCk6CisgICAgICAgIChKU0M6OlR5cGVTZXQ6OnRvSlNPTlN0cmluZyBjb25z
dCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVNoYXBlOjpwcm9wZXJ0eUhhc2gpOgorICAgICAg
ICAoSlNDOjpTdHJ1Y3R1cmVTaGFwZTo6c3RyaW5nUmVwcmVzZW50YXRpb24pOgorICAgICAgICAo
SlNDOjpTdHJ1Y3R1cmVTaGFwZTo6dG9KU09OU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiB0ZXN0
UmVnRXhwLmNwcDoKKyAgICAgICAgKHBhcnNlUmVnRXhwTGluZSk6CisgICAgICAgIChwYXJzZVRl
c3RMaW5lKToKKyAgICAgICAgKiB0b29scy9GdW5jdGlvbk92ZXJyaWRlcy5jcHA6CisgICAgICAg
IChKU0M6OnBhcnNlQ2xhdXNlKToKKyAgICAgICAgKiB3YXNtL1dhc21CQlFQbGFuLmNwcDoKKyAg
ICAgICAgKEpTQzo6V2FzbTo6QkJRUGxhbjo6cHJlcGFyZSk6CisgICAgICAgICogeWFyci9ZYXJy
UGFyc2VyLmg6CisgICAgICAgIChKU0M6OllhcnI6OlBhcnNlcjo6dHJ5Q29uc3VtZUdyb3VwTmFt
ZSk6CisgICAgICAgIChKU0M6OllhcnI6OlBhcnNlcjo6dHJ5Q29uc3VtZVVuaWNvZGVQcm9wZXJ0
eUV4cHJlc3Npb24pOgorCiAyMDE4LTA0LTI1ICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBh
cHBsZS5jb20+CiAKICAgICAgICAgSW4gRlRMTG93ZXJERkdUb0IzLmNwcDo6Y29tcGlsZUNyZWF0
ZVJlc3QsIGFsd2F5cyB1c2UgYSBjb250aWd1b3VzIGFycmF5IGFzIHRoZSBpbmRleGluZyB0eXBl
IHdoZW4gdW5kZXIgaXNXYXRjaGluZ0hhdmluZ0FCYWRUaW1lV2F0Y2hwb2ludApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5j
cHAKaW5kZXggNWMxYmU2OC4uZjcwYzcxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwCkBAIC0zNjEsOCArMzYx
LDExIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwog
ICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGxlZnRTdHJpbmcpOwogICAgICAgICAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKHJpZ2h0U3RyaW5nKTsKLSAgICAgICAgICAgICAgICBtX25vZGUt
PmNvbnZlcnRUb0xhenlKU0NvbnN0YW50KAotICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLCBM
YXp5SlNWYWx1ZTo6bmV3U3RyaW5nKG1fZ3JhcGgsIGJ1aWxkZXIudG9TdHJpbmcoKSkpOworICAg
ICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAg
ICAgICAgICAgICAgICAgICBtX25vZGUtPmNvbnZlcnRUb0xhenlKU0NvbnN0YW50KAorICAgICAg
ICAgICAgICAgICAgICAgICAgbV9ncmFwaCwgTGF6eUpTVmFsdWU6Om5ld1N0cmluZyhtX2dyYXBo
LCAqc3RyaW5nKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAg
IENSQVNIKCk7CiAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzg5LDggKzM5MiwxMSBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgaWYgKCEhZXh0cmFTdHJpbmcpCiAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBl
bmQoZXh0cmFTdHJpbmcpOwogCi0gICAgICAgICAgICBtX25vZGUtPmNvbnZlcnRUb0xhenlKU0Nv
bnN0YW50KAotICAgICAgICAgICAgICAgIG1fZ3JhcGgsIExhenlKU1ZhbHVlOjpuZXdTdHJpbmco
bV9ncmFwaCwgYnVpbGRlci50b1N0cmluZygpKSk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBtX25vZGUtPmNvbnZl
cnRUb0xhenlKU0NvbnN0YW50KAorICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLCBMYXp5SlNW
YWx1ZTo6bmV3U3RyaW5nKG1fZ3JhcGgsICpzdHJpbmcpKTsKKyAgICAgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTg4Miw5ICs4ODgsMTIgQEAgcHJpdmF0
ZToKICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIGlmIChsYXN0SW5kZXggPCBz
dHJpbmcubGVuZ3RoKCkpCiAgICAgICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHN0cmlu
ZywgbGFzdEluZGV4LCBzdHJpbmcubGVuZ3RoKCkgLSBsYXN0SW5kZXgpOwotICAgICAgICAgICAg
ICAgIAotICAgICAgICAgICAgICAgIG1fbm9kZS0+Y29udmVydFRvTGF6eUpTQ29uc3RhbnQoCi0g
ICAgICAgICAgICAgICAgICAgIG1fZ3JhcGgsIExhenlKU1ZhbHVlOjpuZXdTdHJpbmcobV9ncmFw
aCwgYnVpbGRlci50b1N0cmluZygpKSk7CisKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9ub2RlLT5j
b252ZXJ0VG9MYXp5SlNDb25zdGFudCgKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZ3JhcGgs
IExhenlKU1ZhbHVlOjpuZXdTdHJpbmcobV9ncmFwaCwgKnN0cmluZykpOworICAgICAgICAgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgfQog
CiAgICAgICAgICAgICBtX25vZGUtPm9yaWdpbiA9IG9yaWdpbjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBTbmFwc2hvdEJ1aWxkZXIuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcFNuYXBzaG90QnVpbGRlci5jcHAKaW5kZXggNjVmNjMzZi4u
ZTFhYWQxYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFNuYXBz
aG90QnVpbGRlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFNuYXBz
aG90QnVpbGRlci5jcHAKQEAgLTM4Nyw3ICszODcsOSBAQCBTdHJpbmcgSGVhcFNuYXBzaG90QnVp
bGRlcjo6anNvbihzdGQ6OmZ1bmN0aW9uPGJvb2wgKGNvbnN0IEhlYXBTbmFwc2hvdE5vZGUmKT4g
YQogICAgIGpzb24uYXBwZW5kKCddJyk7CiAKICAgICBqc29uLmFwcGVuZCgnfScpOwotICAgIHJl
dHVybiBqc29uLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0ganNvbi50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
Q29uc29sZU1lc3NhZ2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25z
b2xlTWVzc2FnZS5jcHAKaW5kZXggNWNmYjA0ZC4uNzFlNGZjNSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKQEAgLTExNSw3ICsx
MTUsMTAgQEAgQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291
cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGUKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIEpTT05Mb2dWYWx1ZTo6VHlwZTo6SlNPTjoKICAgICAgICAgICAgIGlmIChidWls
ZGVyLmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICAgICAgbV9qc29uTG9nVmFsdWVzLmFwcGVuZCh7
IEpTT05Mb2dWYWx1ZTo6VHlwZTo6U3RyaW5nLCBKU09OOjpWYWx1ZTo6Y3JlYXRlKGJ1aWxkZXIu
dG9TdHJpbmcoKSktPnRvSlNPTlN0cmluZygpIH0pOworICAgICAgICAgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgbV9qc29u
TG9nVmFsdWVzLmFwcGVuZCh7IEpTT05Mb2dWYWx1ZTo6VHlwZTo6U3RyaW5nLCBKU09OOjpWYWx1
ZTo6Y3JlYXRlKCpzdHJpbmcpLT50b0pTT05TdHJpbmcoKSB9KTsKKyAgICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAgICAgYnVpbGRl
ci5yZXNpemUoMCk7CiAgICAgICAgICAgICB9CiAKQEAgLTEyNCw4ICsxMjcsMTIgQEAgQ29uc29s
ZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlw
ZSB0eXBlLCBNZXNzYWdlTGUKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChidWlsZGVyLmxl
bmd0aCgpKQotICAgICAgICBtX2pzb25Mb2dWYWx1ZXMuYXBwZW5kKHsgSlNPTkxvZ1ZhbHVlOjpU
eXBlOjpTdHJpbmcsIEpTT046OlZhbHVlOjpjcmVhdGUoYnVpbGRlci50b1N0cmluZygpKS0+dG9K
U09OU3RyaW5nKCkgfSk7CisgICAgaWYgKGJ1aWxkZXIubGVuZ3RoKCkpIHsKKyAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgbV9qc29uTG9n
VmFsdWVzLmFwcGVuZCh7IEpTT05Mb2dWYWx1ZTo6VHlwZTo6U3RyaW5nLCBKU09OOjpWYWx1ZTo6
Y3JlYXRlKCpzdHJpbmcpLT50b0pTT05TdHJpbmcoKSB9KTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgQ1JBU0goKTsKKyAgICB9CiAKICAgICBpZiAobV9qc29uTG9nVmFsdWVzLnNpemUoKSkK
ICAgICAgICAgbV9tZXNzYWdlID0gbV9qc29uTG9nVmFsdWVzWzBdLnZhbHVlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0aWVz
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxp
dGllcy5jcHAKaW5kZXggYWFhODFlMi4uYjBjMTk0NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0aWVzLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlsaXRpZXMuY3BwCkBA
IC01NSw3ICs1NSw5IEBAIHN0YXRpYyBTdHJpbmcgY3JlYXRlU2VhcmNoUmVnZXhTb3VyY2UoY29u
c3QgU3RyaW5nJiB0ZXh0KQogICAgICAgICByZXN1bHQuYXBwZW5kKGNoYXJhY3Rlcik7CiAgICAg
fQogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogCiBzdGF0aWMgaW5saW5lIHNpemVfdCBzaXpldEV4dHJhY3Rvcihjb25zdCBzaXplX3Qq
IHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0lu
dGVycHJldGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnBy
ZXRlci5jcHAKaW5kZXggNGY3MjcwOS4uZWQxNzQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCkBAIC01NzcsNyArNTc3LDkgQEAg
SlNTdHJpbmcqIEludGVycHJldGVyOjpzdGFja1RyYWNlQXNTdHJpbmcoVk0mIHZtLCBjb25zdCBW
ZWN0b3I8U3RhY2tGcmFtZT4mIHN0YWMKICAgICAgICAgaWYgKGkgIT0gc3RhY2tUcmFjZS5zaXpl
KCkgLSAxKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7CiAgICAgfQotICAgIHJl
dHVybiBqc1N0cmluZygmdm0sIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4ganNTdHJpbmcoJnZtLCAq
c3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiBBTFdBWVNfSU5MSU5FIHN0YXRpYyBIYW5kbGVy
SW5mbyogZmluZEV4Y2VwdGlvbkhhbmRsZXIoU3RhY2tWaXNpdG9yJiB2aXNpdG9yLCBDb2RlQmxv
Y2sqIGNvZGVCbG9jaywgUmVxdWlyZWRIYW5kbGVyIHJlcXVpcmVkSGFuZGxlcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5jcHAKaW5kZXgg
MWQxZmY3My4uNzBjZDExNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL1N0YWNrVmlzaXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL1N0YWNrVmlzaXRvci5jcHAKQEAgLTM0Nyw3ICszNDcsOSBAQCBTdHJpbmcgU3RhY2tW
aXNpdG9yOjpGcmFtZTo6dG9TdHJpbmcoKSBjb25zdAogICAgICAgICAgICAgdHJhY2VCdWlsZC5h
cHBlbmROdW1iZXIoY29sdW1uKTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gdHJhY2VC
dWlsZC50b1N0cmluZygpLmltcGwoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0cmFjZUJ1aWxk
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBzdHJpbmctPmltcGwoKTsKKyAgICBDUkFTSCgp
OwogfQogCiBpbnRwdHJfdCBTdGFja1Zpc2l0b3I6OkZyYW1lOjpzb3VyY2VJRCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qc2MuY3BwCmluZGV4IDRhNzNlODcuLjNmYTQ2NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBA
IC03NjUsNyArNzY1LDkgQEAgc3RhdGljIFN0cmluZyByZXNvbHZlUGF0aChjb25zdCBEaXJlY3Rv
cnlOYW1lJiBkaXJlY3RvcnlOYW1lLCBjb25zdCBNb2R1bGVOYW1lJgogICAgICAgICBpZiAoaSAr
IDEgIT0gZGlyZWN0b3J5UGllY2VzLnNpemUoKSkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KHBhdGhTZXBhcmF0b3IoKSk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIGFic29sdXRlUGF0
aChjb25zdCBTdHJpbmcmIGZpbGVOYW1lKQpAQCAtMTEyNSw4ICsxMTI3LDExIEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25KU0NTdGFjayhFeGVjU3RhdGUqIGV4ZWMpCiAK
ICAgICBGdW5jdGlvbkpTQ1N0YWNrRnVuY3RvciBmdW5jdG9yKHRyYWNlKTsKICAgICBleGVjLT5p
dGVyYXRlKGZ1bmN0b3IpOwotICAgIGZwcmludGYoc3RkZXJyLCAiJXMiLCB0cmFjZS50b1N0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdHJhY2UudG9TdHJpbmcoKSkgeworICAgICAg
ICBmcHJpbnRmKHN0ZGVyciwgIiVzIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9CisgICAgQ1JBU0go
KTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdDQW5kU3dlZXAo
RXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ29uZmlnRmlsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25maWdG
aWxlLmNwcAppbmRleCBiYjg3NjY2Li5mN2VjZGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db25maWdGaWxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db25maWdGaWxlLmNwcApAQCAtNDY1LDkgKzQ2NSwxMiBAQCB2b2lkIENvbmZp
Z0ZpbGU6OnBhcnNlKCkKICAgICAgICAgICAgIFdURjo6c2V0RGF0YUZpbGUobG9nUGF0aG5hbWUp
OwogCiAgICAgICAgIGlmICghanNjT3B0aW9uc0J1aWxkZXIuaXNFbXB0eSgpKSB7Ci0gICAgICAg
ICAgICBjb25zdCBjaGFyKiBvcHRpb25zU3RyID0ganNjT3B0aW9uc0J1aWxkZXIudG9TdHJpbmco
KS51dGY4KCkuZGF0YSgpOwotICAgICAgICAgICAgT3B0aW9uczo6ZW5hYmxlUmVzdHJpY3RlZE9w
dGlvbnModHJ1ZSk7Ci0gICAgICAgICAgICBPcHRpb25zOjpzZXRPcHRpb25zKG9wdGlvbnNTdHIp
OworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0ganNjT3B0aW9uc0J1aWxkZXIudG9TdHJp
bmcoKSkgeworICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIG9wdGlvbnNTdHIgPSBzdHJpbmct
PnV0ZjgoKS5kYXRhKCk7CisgICAgICAgICAgICAgICAgT3B0aW9uczo6ZW5hYmxlUmVzdHJpY3Rl
ZE9wdGlvbnModHJ1ZSk7CisgICAgICAgICAgICAgICAgT3B0aW9uczo6c2V0T3B0aW9ucyhvcHRp
b25zU3RyKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAg
ICAgICAgIH0KICAgICB9IGVsc2UKICAgICAgICAgV1RGOjpkYXRhTG9nRigiRXJyb3IgaW4gSlND
IENvbmZpZyBmaWxlIG9uIG9yIG5lYXIgbGluZSAldSwgcGFyc2luZyAnJXMnXG4iLCBzY2FubmVy
LmxpbmVOdW1iZXIoKSwgc2Nhbm5lci5jdXJyZW50QnVmZmVyKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcAppbmRleCAyOTE3ZDc2OC4uYjg2
NjQzYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNs
aWVudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVu
dC5jcHAKQEAgLTE0NCw3ICsxNDQsMTAgQEAgdm9pZCBDb25zb2xlQ2xpZW50OjpwcmludENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLAogICAgIGJ1
aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgYnVpbGRlci5hcHBlbmQobWVzc2FnZSk7CiAKLSAgICBX
VEZMb2dBbHdheXMoIiVzIiwgYnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgV1RGTG9nQWx3
YXlzKCIlcyIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgZWxzZQorICAgICAgICBDUkFT
SCgpOwogfQogCiB2b2lkIENvbnNvbGVDbGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2VXaXRoQXJn
dW1lbnRzKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2
ZWwgbGV2ZWwsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFy
Z3VtZW50cykKQEAgLTE3MCw3ICsxNzMsMTAgQEAgdm9pZCBDb25zb2xlQ2xpZW50OjpwcmludENv
bnNvbGVNZXNzYWdlV2l0aEFyZ3VtZW50cyhNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2EKICAg
ICAgICAgc2NvcGUuY2xlYXJFeGNlcHRpb24oKTsKICAgICB9CiAKLSAgICBXVEZMb2dBbHdheXMo
IiVzIiwgYnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgV1RGTG9nQWx3YXlzKCIlcyIsIHN0
cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAg
aWYgKGlzVHJhY2VNZXNzYWdlKSB7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY2Fs
bFN0YWNrLT5zaXplKCk7ICsraSkgewpAQCAtMTg3LDcgKzE5MywxMCBAQCB2b2lkIENvbnNvbGVD
bGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2VXaXRoQXJndW1lbnRzKE1lc3NhZ2VTb3VyY2Ugc291
cmNlLCBNZXNzYQogICAgICAgICAgICAgYXBwZW5kVVJMQW5kUG9zaXRpb24oY2FsbEZyYW1lQnVp
bGRlciwgY2FsbEZyYW1lLnNvdXJjZVVSTCgpLCBjYWxsRnJhbWUubGluZU51bWJlcigpLCBjYWxs
RnJhbWUuY29sdW1uTnVtYmVyKCkpOwogICAgICAgICAgICAgY2FsbEZyYW1lQnVpbGRlci5hcHBl
bmQoJyknKTsKIAotICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCIlcyIsIGNhbGxGcmFtZUJ1aWxk
ZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGNhbGxGcmFtZUJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICBXVEZMb2dB
bHdheXMoIiVzIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwCmluZGV4IDhhODdjYzYu
LjQyM2JlMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVD
b252ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29u
dmVyc2lvbi5jcHAKQEAgLTEyMyw3ICsxMjMsOSBAQCBTdHJpbmcgZm9ybWF0RGF0ZVRpbWUoY29u
c3QgR3JlZ29yaWFuRGF0ZVRpbWUmIHQsIERhdGVUaW1lRm9ybWF0IGZvcm1hdCwgYm9vbCBhcwog
ICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKS5pbXBsKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gc3RyaW5nLT5pbXBsKCk7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlND
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCmlu
ZGV4IGMxNzI0MjguLjc4ZDI5OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9ySW5zdGFuY2UuY3BwCkBAIC0xOTksNyArMTk5LDkgQEAgU3RyaW5nIEVycm9ySW5z
dGFuY2U6OnNhbml0aXplZFRvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKICAgICBidWlsZGVyLmFw
cGVuZChuYW1lU3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjogIik7CiAgICAg
YnVpbGRlci5hcHBlbmQobWVzc2FnZVN0cmluZyk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgRXJyb3JJbnN0YW5jZTo6
bWF0ZXJpYWxpemVFcnJvckluZm9JZk5lZWRlZChWTSYgdm0pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCmluZGV4IDY5OTE0NGIuLjZl
MDFiOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlv
bkhlbHBlcnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlv
bkhlbHBlcnMuY3BwCkBAIC0yMTEsNyArMjExLDkgQEAgc3RhdGljIFN0cmluZyBub3RBRnVuY3Rp
b25Tb3VyY2VBcHBlbmRlcihjb25zdCBTdHJpbmcmIG9yaWdpbmFsTWVzc2FnZSwgY29uc3QgU3QK
ICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKIAotICAgIHJldHVybiBidWlsZGVyLnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIGlu
dmFsaWRQYXJhbWV0ZXJJblNvdXJjZUFwcGVuZGVyKGNvbnN0IFN0cmluZyYgb3JpZ2luYWxNZXNz
YWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVRleHQsIFJ1bnRpbWVUeXBlIHR5cGUsIEVycm9ySW5z
dGFuY2U6OlNvdXJjZVRleHRXaGVyZUVycm9yT2NjdXJyZWQgb2NjdXJyZW5jZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAK
aW5kZXggMDMxZmUzMi4uZGJhNWY4NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKQEAgLTE0MywxNCArMTQzLDE3IEBA
IEpTT2JqZWN0KiBjb25zdHJ1Y3RGdW5jdGlvblNraXBwaW5nRXZhbEVuYWJsZWRDaGVjaygKICAg
ICAgICAgewogICAgICAgICAgICAgLy8gVGhlIHNwZWMgbWFuZGF0ZXMgdGhhdCB0aGUgcGFyYW1l
dGVycyBwYXJzZSBhcyBhIHZhbGlkIHBhcmFtZXRlciBsaXN0CiAgICAgICAgICAgICAvLyBpbmRl
cGVuZGVudCBvZiB0aGUgZnVuY3Rpb24gYm9keS4KLSAgICAgICAgICAgIFN0cmluZyBwcm9ncmFt
ID0gbWFrZVN0cmluZygiKCIsIHByZWZpeCwgIigiLCBwYXJhbWV0ZXJCdWlsZGVyLnRvU3RyaW5n
KCksICIpe1xuXG59KSIpOwotICAgICAgICAgICAgU291cmNlQ29kZSBzb3VyY2UgPSBtYWtlU291
cmNlKHByb2dyYW0sIHNvdXJjZU9yaWdpbiwgc291cmNlVVJMLCBwb3NpdGlvbik7Ci0gICAgICAg
ICAgICBKU1ZhbHVlIGV4Y2VwdGlvbjsKLSAgICAgICAgICAgIGNoZWNrU3ludGF4KGV4ZWMsIHNv
dXJjZSwgJmV4Y2VwdGlvbik7Ci0gICAgICAgICAgICBpZiAoZXhjZXB0aW9uKSB7Ci0gICAgICAg
ICAgICAgICAgc2NvcGUudGhyb3dFeGNlcHRpb24oZXhlYywgZXhjZXB0aW9uKTsKLSAgICAgICAg
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IHBhcmFtZXRlckJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAg
ICAgIFN0cmluZyBwcm9ncmFtID0gbWFrZVN0cmluZygiKCIsIHByZWZpeCwgIigiLCAqc3RyaW5n
LCAiKXtcblxufSkiKTsKKyAgICAgICAgICAgICAgICBTb3VyY2VDb2RlIHNvdXJjZSA9IG1ha2VT
b3VyY2UocHJvZ3JhbSwgc291cmNlT3JpZ2luLCBzb3VyY2VVUkwsIHBvc2l0aW9uKTsKKyAgICAg
ICAgICAgICAgICBKU1ZhbHVlIGV4Y2VwdGlvbjsKKyAgICAgICAgICAgICAgICBjaGVja1N5bnRh
eChleGVjLCBzb3VyY2UsICZleGNlcHRpb24pOworICAgICAgICAgICAgICAgIGlmIChleGNlcHRp
b24pIHsKKyAgICAgICAgICAgICAgICAgICAgc2NvcGUudGhyb3dFeGNlcHRpb24oZXhlYywgZXhj
ZXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAg
ICAgICAgfQogCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHBhcmFtZXRlckJ1aWxkZXIpOwpAQCAt
MTYxLDcgKzE2NCwxMCBAQCBKU09iamVjdCogY29uc3RydWN0RnVuY3Rpb25Ta2lwcGluZ0V2YWxF
bmFibGVkQ2hlY2soCiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIp
OwogICAgICAgICBidWlsZGVyLmFwcGVuZChib2R5KTsKICAgICAgICAgYnVpbGRlci5hcHBlbmRM
aXRlcmFsKCJcbn19Iik7Ci0gICAgICAgIHByb2dyYW0gPSBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAg
IHByb2dyYW0gPSAqc3RyaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwog
ICAgIH0KIAogICAgIFNvdXJjZUNvZGUgc291cmNlID0gbWFrZVNvdXJjZShwcm9ncmFtLCBzb3Vy
Y2VPcmlnaW4sIHNvdXJjZVVSTCwgcG9zaXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAKaW5kZXggYzkyMGFjZi4uMmMy
ZjA0NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVU
aW1lRm9ybWF0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0
ZVRpbWVGb3JtYXQuY3BwCkBAIC02NDYsNyArNjQ2LDExIEBAIHZvaWQgSW50bERhdGVUaW1lRm9y
bWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQoRXhlY1N0YXRlJiBleGVjLCBKU1ZhbHVlIGxv
Y2FsCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTdHJpbmcgc2tlbGV0b24gPSBza2Vs
ZXRvbkJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBTdHJpbmcgc2tlbGV0b247CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gc2tlbGV0b25CdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHNrZWxldG9u
ID0gKnN0cmluZzsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgU3RyaW5nVmlldyBz
a2VsZXRvblZpZXcoc2tlbGV0b24pOwogICAgIFZlY3RvcjxVQ2hhciwgMzI+IHBhdHRlcm5CdWZm
ZXIoMzIpOwogICAgIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKaW5kZXggM2Y1NDM0MC4uYjk2NWRmOSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKQEAgLTI0Nyw3ICsy
NDcsOSBAQCBzdGF0aWMgU3RyaW5nIHByaXZhdGVVc2VMYW5nVGFnKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBwYXJ0cywgc2l6ZV90IHN0YXJ0SW5kZXgpCiAgICAgaWYgKGN1cnJlbnRJbmRleCA8IG51
bVBhcnRzKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKLSAgICByZXR1cm4gcHJpdmF0ZXVz
ZS50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHByaXZhdGV1c2UudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0
cmluZyBjYW5vbmljYWxMYW5nVGFnKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJ0cykKQEAgLTM4
MCw3ICszODIsMTAgQEAgc3RhdGljIFN0cmluZyBjYW5vbmljYWxMYW5nVGFnKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBwYXJ0cykKICAgICAgICAgaWYgKCFudW1FeHRQYXJ0cykKICAgICAgICAgICAg
IHJldHVybiBTdHJpbmcoKTsKIAotICAgICAgICBleHRlbnNpb25zLmFwcGVuZChleHRlbnNpb24u
dG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGV4dGVuc2lvbi50b1N0cmlu
ZygpKQorICAgICAgICAgICAgZXh0ZW5zaW9ucy5hcHBlbmQoKnN0cmluZyk7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgLy8gQWRkIGV4dGVuc2lvbnMg
dG8gY2Fub25pY2FsIHNvcnRlZCBieSBzaW5nbGV0b24uCkBAIC00MDgsNyArNDEzLDkgQEAgc3Rh
dGljIFN0cmluZyBjYW5vbmljYWxMYW5nVGFnKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJ0cykK
IAogICAgIC8vIEZJWE1FOiBSZXBsYWNlIHN1YnRhZ3Mgd2l0aCB0aGVpciBwcmVmZXJyZWQgdmFs
dWVzLgogCi0gICAgcmV0dXJuIGNhbm9uaWNhbC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGNhbm9uaWNhbC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIGdyYW5kZmF0aGVyZWRMYW5nVGFnKGNvbnN0
IFN0cmluZyYgbG9jYWxlKQpAQCAtNjEzLDcgKzYyMCwxMCBAQCBTdHJpbmcgcmVtb3ZlVW5pY29k
ZUxvY2FsZUV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGxvY2FsZSkKICAgICAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKHBhcnRzW3BdKTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOworCisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgTWF0
Y2hlclJlc3VsdCBsb29rdXBNYXRjaGVyKEV4ZWNTdGF0ZSYgc3RhdGUsIGNvbnN0IEhhc2hTZXQ8
U3RyaW5nPiYgYXZhaWxhYmxlTG9jYWxlcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHJlcXVlc3Rl
ZExvY2FsZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKaW5kZXggNzMxMzY3My4uMTliNTJhZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlv
bnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
RnVuY3Rpb25zLmNwcApAQCAtMTUxLDcgKzE1MSw5IEBAIHN0YXRpYyBKU1ZhbHVlIGVuY29kZShF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEJpdG1hcDwyNTY+JiBkb05vdEVzY2FwZSwgY29uc3QgQ2hh
CiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4ganNTdHJpbmcoZXhlYywgYnVpbGRlci50
b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiBqc1N0cmluZyhleGVjLCAqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQog
CiBzdGF0aWMgSlNWYWx1ZSBlbmNvZGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBCaXRtYXA8MjU2
PiYgZG9Ob3RFc2NhcGUpCkBAIC0yMzAsNyArMjMyLDEwIEBAIHN0YXRpYyBKU1ZhbHVlIGRlY29k
ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IENoYXJUeXBlKiBjaGFyYWN0ZXJzLCBpbnQgbGVuZ3Ro
LCBjCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGMpOwogICAgIH0KICAgICBzY29wZS5yZWxlYXNl
KCk7Ci0gICAgcmV0dXJuIGpzU3RyaW5nKCZ2bSwgYnVpbGRlci50b1N0cmluZygpKTsKKworICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIGpz
U3RyaW5nKCZ2bSwgKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIEpTVmFsdWUg
ZGVjb2RlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQml0bWFwPDI1Nj4mIGRvTm90VW5lc2NhcGUs
IGJvb2wgc3RyaWN0KQpAQCAtNjAzLDcgKzYwOCw5IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZ2xvYmFsRnVuY0VzY2FwZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAgICAg
ICAgIGFwcGVuZEJ5dGVBc0hleChzdGF0aWNfY2FzdDxMQ2hhcj4odSksIGJ1aWxkZXIpOwogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBqc1N0cmlu
ZyhleGVjLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHJldHVybiBqc1N0cmluZyhl
eGVjLCAqc3RyaW5nKTsKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KIAogICAgICAg
ICBjb25zdCBVQ2hhciogYyA9IHZpZXcuY2hhcmFjdGVyczE2KCk7CkBAIC02MjIsNyArNjI5LDkg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jRXNjYXBlKEV4ZWNTdGF0
ZSogZXhlYykKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIHJldHVybiBqc1N0
cmluZyhleGVjLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4ganNTdHJpbmcoZXhlYywg
KnN0cmluZyk7CisgICAgICAgIENSQVNIKCk7CiAgICAgfSkpOwogfQogCkBAIC02NzgsNyArNjg3
LDkgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jVW5lc2NhcGUoRXhl
Y1N0YXRlKiBleGVjKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgcmV0dXJu
IGpzU3RyaW5nKGV4ZWMsIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiBqc1N0cmluZyhl
eGVjLCAqc3RyaW5nKTsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9KSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKaW5kZXggYjNhNzgwOC4uZDdj
MDZkZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVj
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAK
QEAgLTI3OCw3ICsyNzgsOSBAQCBKU1ZhbHVlIFN0cmluZ2lmaWVyOjpzdHJpbmdpZnkoSlNWYWx1
ZSB2YWx1ZSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKICAgICBzY29wZS5yZWxl
YXNlKCk7Ci0gICAgcmV0dXJuIGpzU3RyaW5nKG1fZXhlYywgcmVzdWx0LnRvU3RyaW5nKCkpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
anNTdHJpbmcobV9leGVjLCAqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiBBTFdBWVNfSU5M
SU5FIEpTVmFsdWUgU3RyaW5naWZpZXI6OnRvSlNPTihKU1ZhbHVlIHZhbHVlLCBjb25zdCBQcm9w
ZXJ0eU5hbWVGb3JGdW5jdGlvbkNhbGwmIHByb3BlcnR5TmFtZSkKQEAgLTUwNCw4ICs1MDYsMTIg
QEAgYm9vbCBTdHJpbmdpZmllcjo6SG9sZGVyOjphcHBlbmROZXh0UHJvcGVydHkoU3RyaW5naWZp
ZXImIHN0cmluZ2lmaWVyLCBTdHJpbmdCdWkKICAgICAvLyBMYXN0IHRpbWUgdGhyb3VnaCwgZmlu
aXNoIHVwIGFuZCByZXR1cm4gZmFsc2UuCiAgICAgaWYgKG1faW5kZXggPT0gbV9zaXplKSB7CiAg
ICAgICAgIHN0cmluZ2lmaWVyLnVuaW5kZW50KCk7Ci0gICAgICAgIGlmIChtX3NpemUgJiYgYnVp
bGRlcltidWlsZGVyLmxlbmd0aCgpIC0gMV0gIT0gJ3snKQotICAgICAgICAgICAgc3RyaW5naWZp
ZXIuc3RhcnROZXdMaW5lKGJ1aWxkZXIpOworICAgICAgICBpZiAobV9zaXplKSB7CisgICAgICAg
ICAgICBpZiAoYnVpbGRlci5mYWlsZWQoKSkKKyAgICAgICAgICAgICAgICBDUkFTSCgpOworICAg
ICAgICAgICAgaWYgKCpidWlsZGVyW2J1aWxkZXIubGVuZ3RoKCkgLSAxXSAhPSAneycpCisgICAg
ICAgICAgICAgICAgc3RyaW5naWZpZXIuc3RhcnROZXdMaW5lKGJ1aWxkZXIpOworICAgICAgICB9
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG1faXNBcnJheSA/ICddJyA6ICd9Jyk7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CkBAIC01NDgsNyArNTU0LDkgQEAgYm9vbCBTdHJpbmdpZmll
cjo6SG9sZGVyOjphcHBlbmROZXh0UHJvcGVydHkoU3RyaW5naWZpZXImIHN0cmluZ2lmaWVyLCBT
dHJpbmdCdWkKICAgICAgICAgcm9sbEJhY2tQb2ludCA9IGJ1aWxkZXIubGVuZ3RoKCk7CiAKICAg
ICAgICAgLy8gQXBwZW5kIHRoZSBzZXBhcmF0b3Igc3RyaW5nLgotICAgICAgICBpZiAoYnVpbGRl
cltyb2xsQmFja1BvaW50IC0gMV0gIT0gJ3snKQorICAgICAgICBpZiAoYnVpbGRlci5mYWlsZWQo
KSkKKyAgICAgICAgICAgIENSQVNIKCk7CisgICAgICAgIGlmICgqYnVpbGRlcltyb2xsQmFja1Bv
aW50IC0gMV0gIT0gJ3snKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJywnKTsKICAgICAg
ICAgc3RyaW5naWZpZXIuc3RhcnROZXdMaW5lKGJ1aWxkZXIpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwCmluZGV4IGYwMGZlMDcuLmI4Njg2
OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJz
ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIu
Y3BwCkBAIC00NjYsMTAgKzQ2NiwxNiBAQCBzbG93UGF0aEJlZ2luOgogICAgIH0gZWxzZSB7CiAg
ICAgICAgIGlmIChtX2J1aWxkZXIuaXM4Qml0KCkpIHsKICAgICAgICAgICAgIHRva2VuLnN0cmlu
Z0lzOEJpdCA9IDE7Ci0gICAgICAgICAgICB0b2tlbi5zdHJpbmdUb2tlbjggPSBtX2J1aWxkZXIu
Y2hhcmFjdGVyczgoKTsKKyAgICAgICAgICAgIGlmIChhdXRvIGNoYXJzID0gbV9idWlsZGVyLmNo
YXJhY3RlcnM4KCkpCisgICAgICAgICAgICAgICAgdG9rZW4uc3RyaW5nVG9rZW44ID0gKmNoYXJz
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICB0b2tlbi5zdHJpbmdJczhCaXQgPSAwOwotICAgICAgICAgICAg
dG9rZW4uc3RyaW5nVG9rZW4xNiA9IG1fYnVpbGRlci5jaGFyYWN0ZXJzMTYoKTsKKyAgICAgICAg
ICAgIGlmIChhdXRvIGNoYXJzID0gbV9idWlsZGVyLmNoYXJhY3RlcnMxNigpKQorICAgICAgICAg
ICAgICAgIHRva2VuLnN0cmluZ1Rva2VuMTYgPSAqY2hhcnM7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgICAgICB0b2tlbi5zdHJpbmdM
ZW5ndGggPSBtX2J1aWxkZXIubGVuZ3RoKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcHRpb25zLmNwcAppbmRleCAzYzg2MTIzLi45MjdjZDA4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcApAQCAtNTk1LDcgKzU5NSwxMCBAQCB2b2lk
IE9wdGlvbnM6OmR1bXBPcHRpb25zSWZOZWVkZWQoKQogCiAgICAgICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKICAgICAgICAgZHVtcEFsbE9wdGlvbnMoYnVpbGRlciwgbGV2ZWwsIHRpdGxlLCBu
dWxscHRyLCAiICAgIiwgIlxuIiwgRHVtcERlZmF1bHRzKTsKLSAgICAgICAgZGF0YUxvZyhidWls
ZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgICAgICBkYXRhTG9nKCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBDUkFTSCgpOwogICAgIH0KIH0KIApAQCAtODA0LDcgKzgwNywxMCBAQCB2b2lkIE9w
dGlvbnM6OmR1bXBBbGxPcHRpb25zKEZJTEUqIHN0cmVhbSwgRHVtcExldmVsIGxldmVsLCBjb25z
dCBjaGFyKiB0aXRsZSkKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgZHVtcEFs
bE9wdGlvbnMoYnVpbGRlciwgbGV2ZWwsIHRpdGxlLCBudWxscHRyLCAiICAgIiwgIlxuIiwgRHVt
cERlZmF1bHRzKTsKLSAgICBmcHJpbnRmKHN0cmVhbSwgIiVzIiwgYnVpbGRlci50b1N0cmluZygp
LnV0ZjgoKS5kYXRhKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgZnByaW50ZihzdHJlYW0sICIlcyIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7
CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIE9wdGlvbnM6OmR1bXBPcHRp
b24oU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgRHVtcExldmVsIGxldmVsLCBPcHRpb25zOjpJRCBp
ZCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3Rv
dHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUu
Y3BwCmluZGV4IGQzMjFlMmQuLjM2ZmM2YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcApAQCAtNDY2LDcgKzQ2Niw5IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSByZWdFeHBQcm90b0dldHRlclNvdXJjZUludGVybmFsKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgU3RyCiAgICAgICAgICAgICBwcmV2aW91c0NoYXJhY3Rlcldhc0JhY2tz
bGFzaCA9IGNoID09ICdcXCc7CiAgICAgfQogCi0gICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsIHJl
c3VsdC50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsICpzdHJpbmcpOworICAgIENSQVNIKCk7
CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJTb3Vy
Y2UoRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcAppbmRleCA1OTJhZjQxLi5mMDhjNGZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcApAQCAt
OTA0LDcgKzkwNCw5IEBAIFN0cmluZyBTYW1wbGluZ1Byb2ZpbGVyOjpzdGFja1RyYWNlc0FzSlNP
TigpCiAKICAgICBjbGVhckRhdGEobG9ja2VyKTsKIAotICAgIHJldHVybiBqc29uLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0ganNvbi50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIFNhbXBsaW5nUHJvZmlsZXI6OnJl
Z2lzdGVyRm9yUmVwb3J0QXRFeGl0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0YWNrRnJhbWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RhY2tGcmFtZS5jcHAKaW5kZXggOWYyZDYwZC4uNDhhMjJiMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAKQEAgLTEzOSw3ICsxMzksOSBAQCBTdHJp
bmcgU3RhY2tGcmFtZTo6dG9TdHJpbmcoVk0mIHZtKSBjb25zdAogICAgICAgICAgICAgdHJhY2VC
dWlsZC5hcHBlbmROdW1iZXIoY29sdW1uKTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4g
dHJhY2VCdWlsZC50b1N0cmluZygpLmltcGwoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0cmFj
ZUJ1aWxkLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBzdHJpbmctPmltcGwoKTsKKyAgICBD
UkFTSCgpOwogfQogCiB2b2lkIFN0YWNrRnJhbWU6OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3Im
IHZpc2l0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdD
b25zdHJ1Y3Rvci5jcHAKaW5kZXggMTBhYmM3Ni4uNjQ1YTNiZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcApAQCAtMTI1LDcg
KzEyNSw5IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ0Zyb21D
b2RlUG9pbnQoRXhlY1N0YXRlKiBleGVjKQogICAgIH0KIAogICAgIHNjb3BlLnJlbGVhc2UoKTsK
LSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKGV4ZWMsIGJ1aWxkZXIudG9TdHJp
bmcoKSkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyhleGVjLCAqc3RyaW5nKSk7CisgICAg
Q1JBU0goKTsKIH0KIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3Ry
dWN0V2l0aFN0cmluZ0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCmluZGV4IGEwZDM2MDEu
LjU4Y2NkNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmlu
Z1Byb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
UHJvdG90eXBlLmNwcApAQCAtMjgwLDcgKzI4MCw5IEBAIHN0YXRpYyBORVZFUl9JTkxJTkUgU3Ry
aW5nIHN1YnN0aXR1dGVCYWNrcmVmZXJlbmNlc1Nsb3coU3RyaW5nVmlldyByZXBsYWNlbWVudCwK
ICAgICBpZiAocmVwbGFjZW1lbnQubGVuZ3RoKCkgLSBvZmZzZXQpCiAgICAgICAgIHN1YnN0aXR1
dGVkUmVwbGFjZW1lbnQuYXBwZW5kKHJlcGxhY2VtZW50LnN1YnN0cmluZyhvZmZzZXQpKTsKIAot
ICAgIHJldHVybiBzdWJzdGl0dXRlZFJlcGxhY2VtZW50LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gc3Vic3RpdHV0ZWRSZXBsYWNlbWVudC50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBpbmxpbmUgU3RyaW5nIHN1YnN0aXR1
dGVCYWNrcmVmZXJlbmNlc0lubGluZShjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50LCBTdHJpbmdW
aWV3IHNvdXJjZSwgY29uc3QgaW50KiBvdmVjdG9yLCBSZWdFeHAqIHJlZykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQcm9maWxlci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlUHJvZmlsZXIuY3BwCmluZGV4IDBmODVlZjguLjdh
ZTk3NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQcm9m
aWxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVy
LmNwcApAQCAtMTA0LDggKzEwNCwxMCBAQCBTdHJpbmcgVHlwZVByb2ZpbGVyOjp0eXBlSW5mb3Jt
YXRpb25Gb3JFeHByZXNzaW9uQXRPZmZzZXQoVHlwZVByb2ZpbGVyU2VhcmNoRGVzYwogICAgICAg
ICBqc29uLmFwcGVuZExpdGVyYWwoImZhbHNlIik7CiAKICAgICBqc29uLmFwcGVuZCgnfScpOwot
ICAgIAotICAgIHJldHVybiBqc29uLnRvU3RyaW5nKCk7CisKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBqc29uLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIFR5cGVMb2NhdGlvbiogVHlwZVByb2ZpbGVyOjpmaW5kTG9jYXRpb24odW5zaWduZWQg
ZGl2b3QsIGludHB0cl90IHNvdXJjZUlELCBUeXBlUHJvZmlsZXJTZWFyY2hEZXNjcmlwdG9yIGRl
c2NyaXB0b3IsIFZNJiB2bSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1R5cGVTZXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVNldC5j
cHAKaW5kZXggN2E0MTJlNi4uYzNhMDVjNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVHlwZVNldC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVHlwZVNldC5jcHAKQEAgLTEzMSw3ICsxMzEsOSBAQCBTdHJpbmcgVHlwZVNldDo6ZHVtcFR5
cGVzKCkgY29uc3QKICAgICAgICAgc2Vlbi5hcHBlbmQobGVhc3RDb21tb25BbmNlc3RvcigpKTsK
ICAgICB9CiAKLSAgICByZXR1cm4gc2Vlbi50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHNlZW4udG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogYm9vbCBUeXBlU2V0Ojpkb2VzVHlwZUNvbmZvcm1UbyhSdW50aW1lVHlwZU1hc2sg
dGVzdCkgY29uc3QKQEAgLTMxNyw3ICszMTksOSBAQCBTdHJpbmcgVHlwZVNldDo6dG9KU09OU3Ry
aW5nKCkgY29uc3QKICAgICBqc29uLmFwcGVuZCgnXScpOwogCiAgICAganNvbi5hcHBlbmQoJ30n
KTsKLSAgICByZXR1cm4ganNvbi50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGpz
b24udG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogU3RydWN0dXJlU2hhcGU6OlN0cnVjdHVyZVNoYXBlKCkKQEAgLTM2Miw4ICszNjYsMTEgQEAg
U3RyaW5nIFN0cnVjdHVyZVNoYXBlOjpwcm9wZXJ0eUhhc2goKQogICAgICAgICBidWlsZGVyLmFw
cGVuZChtX3Byb3RvLT5wcm9wZXJ0eUhhc2goKSk7CiAgICAgfQogCi0gICAgbV9wcm9wZXJ0eUhh
c2ggPSBzdGQ6Om1ha2VfdW5pcXVlPFN0cmluZz4oYnVpbGRlci50b1N0cmluZygpKTsKLSAgICBy
ZXR1cm4gKm1fcHJvcGVydHlIYXNoOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkgeworICAgICAgICBtX3Byb3BlcnR5SGFzaCA9IHN0ZDo6bWFrZV91bmlxdWU8U3Ry
aW5nPigqc3RyaW5nKTsKKyAgICAgICAgcmV0dXJuICptX3Byb3BlcnR5SGFzaDsKKyAgICB9Cisg
ICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIFN0cnVjdHVyZVNoYXBlOjpsZWFzdENvbW1vbkFuY2Vz
dG9yKGNvbnN0IFZlY3RvcjxSZWY8U3RydWN0dXJlU2hhcGU+PiYgc2hhcGVzKQpAQCAtNDI3LDcg
KzQzNCw5IEBAIFN0cmluZyBTdHJ1Y3R1cmVTaGFwZTo6c3RyaW5nUmVwcmVzZW50YXRpb24oKQog
CiAgICAgcmVwcmVzZW50YXRpb24uYXBwZW5kKCd9Jyk7CiAKLSAgICByZXR1cm4gcmVwcmVzZW50
YXRpb24udG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXByZXNlbnRhdGlvbi50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBT
dHJpbmcgU3RydWN0dXJlU2hhcGU6OnRvSlNPTlN0cmluZygpIGNvbnN0CkBAIC00OTQsNyArNTAz
LDkgQEAgU3RyaW5nIFN0cnVjdHVyZVNoYXBlOjp0b0pTT05TdHJpbmcoKSBjb25zdAogCiAgICAg
anNvbi5hcHBlbmQoJ30nKTsKIAotICAgIHJldHVybiBqc29uLnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0ganNvbi50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6U3Ry
dWN0dXJlRGVzY3JpcHRpb24+IFN0cnVjdHVyZVNoYXBlOjppbnNwZWN0b3JSZXByZXNlbnRhdGlv
bigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAKaW5kZXggZTZjZGQ1MC4uYzRkOGRl
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RSZWdFeHAuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcApAQCAtMzI5LDEyICszMjksMTUg
QEAgc3RhdGljIFJlZ0V4cCogcGFyc2VSZWdFeHBMaW5lKFZNJiB2bSwgY2hhciogbGluZSwgaW50
IGxpbmVMZW5ndGgsIGNvbnN0IGNoYXIqKgogCiAgICAgKytpOwogCi0gICAgUmVnRXhwKiByID0g
UmVnRXhwOjpjcmVhdGUodm0sIHBhdHRlcm4udG9TdHJpbmcoKSwgcmVnRXhwRmxhZ3MobGluZSAr
IGkpKTsKLSAgICBpZiAoIXItPmlzVmFsaWQoKSkgewotICAgICAgICAqcmVnZXhwRXJyb3IgPSBy
LT5lcnJvck1lc3NhZ2UoKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gcGF0dGVybi50b1N0cmluZygpKSB7CisgICAgICAgIFJlZ0V4cCogciA9IFJlZ0V4
cDo6Y3JlYXRlKHZtLCAqc3RyaW5nLCByZWdFeHBGbGFncyhsaW5lICsgaSkpOworICAgICAgICBp
ZiAoIXItPmlzVmFsaWQoKSkgeworICAgICAgICAgICAgKnJlZ2V4cEVycm9yID0gci0+ZXJyb3JN
ZXNzYWdlKCk7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gcjsKICAgICB9Ci0gICAgcmV0dXJuIHI7CisgICAgQ1JBU0goKTsKIH0KIAogc3Rh
dGljIFJlZ0V4cFRlc3QqIHBhcnNlVGVzdExpbmUoY2hhciogbGluZSwgaW50IGxpbmVMZW5ndGgp
CkBAIC0zNzcsOCArMzgwLDExIEBAIHN0YXRpYyBSZWdFeHBUZXN0KiBwYXJzZVRlc3RMaW5lKGNo
YXIqIGxpbmUsIGludCBsaW5lTGVuZ3RoKQogICAgIGludCBzdGFydCwgZW5kOwogICAgIAogICAg
IFJlZ0V4cFRlc3QqIHJlc3VsdCA9IG5ldyBSZWdFeHBUZXN0KCk7Ci0gICAgCi0gICAgcmVzdWx0
LT5zdWJqZWN0ID0gc3ViamVjdFN0cmluZy50b1N0cmluZygpOworCisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gc3ViamVjdFN0cmluZy50b1N0cmluZygpKQorICAgICAgICByZXN1bHQtPnN1YmplY3Qg
PSAqc3RyaW5nOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICByZXN1bHQtPm9mZnNl
dCA9IG9mZnNldDsKICAgICByZXN1bHQtPnJlc3VsdCA9IG1hdGNoUmVzdWx0OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcAppbmRleCBl
ODNiNmVlLi40YWMyN2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMv
RnVuY3Rpb25PdmVycmlkZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9G
dW5jdGlvbk92ZXJyaWRlcy5jcHAKQEAgLTIxOCwxMyArMjE4LDE4IEBAIHN0YXRpYyBTdHJpbmcg
cGFyc2VDbGF1c2UoY29uc3QgY2hhcioga2V5d29yZCwgc2l6ZV90IGtleXdvcmRMZW5ndGgsIEZJ
TEUqIGZpbGUsCiAgICAgICAgICAgICAgICAgRkFJTF9XSVRIX0VSUk9SKFNZTlRBWF9FUlJPUiwg
KCJVbmV4cGVjdGVkIGNoYXJhY3RlcnMgYWZ0ZXIgJyIsIGtleXdvcmQsICInIGNsYXVzZSBlbmQg
ZGVsaW1pdGVyICciLCBkZWxpbWl0ZXIsICInOlxuIiwgbGluZSwgIlxuIikpOwogCiAgICAgICAg
ICAgICBidWlsZGVyLmFwcGVuZChsaW5lLCBwIC0gbGluZSArIDEpOwotICAgICAgICAgICAgcmV0
dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAg
ICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KICAgICAgICAgYnVpbGRlci5hcHBlbmQobGluZSk7
CiAKICAgICB9IHdoaWxlICgobGluZSA9IGZnZXRzKGJ1ZmZlciwgYnVmZmVyU2l6ZSwgZmlsZSkp
KTsKIAotICAgIEZBSUxfV0lUSF9FUlJPUihTWU5UQVhfRVJST1IsICgiJyIsIGtleXdvcmQsICIn
IGNsYXVzZSBlbmQgZGVsaW1pdGVyICciLCBkZWxpbWl0ZXIsICInIG5vdCBmb3VuZDpcbiIsIGJ1
aWxkZXIudG9TdHJpbmcoKSwgIlxuIiwgIkFyZSB5b3UgbWlzc2luZyBhICd9JyBiZWZvcmUgdGhl
IGRlbGltaXRlcj9cbiIpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIEZBSUxfV0lUSF9FUlJPUihTWU5UQVhfRVJST1IsICgiJyIsIGtleXdvcmQs
ICInIGNsYXVzZSBlbmQgZGVsaW1pdGVyICciLCBkZWxpbWl0ZXIsICInIG5vdCBmb3VuZDpcbiIs
ICpzdHJpbmcsICJcbiIsICJBcmUgeW91IG1pc3NpbmcgYSAnfScgYmVmb3JlIHRoZSBkZWxpbWl0
ZXI/XG4iKSk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEZ1bmN0aW9u
T3ZlcnJpZGVzOjpwYXJzZU92ZXJyaWRlc0luRmlsZShjb25zdCBjaGFyKiBmaWxlTmFtZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcAppbmRleCBhNzgyMGM5Li5m
YTAwMzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxh
bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW4uY3BwCkBA
IC0xNTAsOCArMTUwLDExIEBAIHZvaWQgQkJRUGxhbjo6cHJlcGFyZSgpCiAgICAgICAgICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIkZhaWxlZCBhbGxvY2F0aW5nIGVub3VnaCBzcGFjZSBmb3Ig
Iik7CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihzaXplKTsKICAgICAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKHdoYXQpOwotICAgICAgICAgICAgZmFpbChob2xkTG9jayhtX2xvY2sp
LCBidWlsZGVyLnRvU3RyaW5nKCkpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAg
ICAgICAgZmFpbChob2xkTG9jayhtX2xvY2spLCBXVEZNb3ZlKCpzdHJpbmcpKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBDUkFTSCgp
OwogICAgICAgICB9CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUveWFyci9ZYXJyUGFyc2VyLmgKaW5kZXggZjE2ZjExZi4uOGI3NThlYyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhcnNlci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXJzZXIuaApAQCAtMTAzMSw4ICsxMDMxLDExIEBAIHBy
aXZhdGU6CiAKICAgICAgICAgICAgIHdoaWxlICghYXRFbmRPZlBhdHRlcm4oKSkgewogICAgICAg
ICAgICAgICAgIGNoID0gdHJ5Q29uc3VtZUlkZW50aWZpZXJDaGFyYWN0ZXIoKTsKLSAgICAgICAg
ICAgICAgICBpZiAoY2ggPT0gJz4nKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpv
cHRpb25hbDxTdHJpbmc+KGlkZW50aWZpZXJCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICAg
ICAgICAgIGlmIChjaCA9PSAnPicpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gaWRlbnRpZmllckJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFN0cmluZz4oKnN0cmluZyk7CisgICAgICAgICAgICAg
ICAgICAgIENSQVNIKCk7CisgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgaWYg
KCFpc0lkZW50aWZpZXJQYXJ0KGNoKSkKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0x
MDcwLDIzICsxMDczLDMyIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAg
ICAgICAgICAgaWYgKGZvdW5kRXF1YWxzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gcmVz
dWx0ID0gdW5pY29kZU1hdGNoUHJvcGVydHlWYWx1ZSh1bmljb2RlUHJvcGVydHlOYW1lLCBleHBy
ZXNzaW9uQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gZXhwcmVzc2lvbkJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgYXV0byByZXN1bHQgPSB1bmljb2RlTWF0Y2hQcm9wZXJ0eVZhbHVlKHVuaWNvZGVQ
cm9wZXJ0eU5hbWUsICpzdHJpbmcpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXN1
bHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9lcnJvckNvZGUgPSBFcnJvckNvZGU6
OkludmFsaWRVbmljb2RlUHJvcGVydHlFeHByZXNzaW9uOworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICBDUkFTSCgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IGV4cHJlc3Npb25CdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgYXV0byByZXN1bHQgPSB1bmljb2RlTWF0Y2hQcm9wZXJ0eSgqc3RyaW5nKTsKICAg
ICAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgICAgICAgICAgICAgICAgICBt
X2Vycm9yQ29kZSA9IEVycm9yQ29kZTo6SW52YWxpZFVuaWNvZGVQcm9wZXJ0eUV4cHJlc3Npb247
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICAgICAgYXV0byByZXN1bHQgPSB1bmljb2RlTWF0Y2hQcm9wZXJ0eShleHBy
ZXNzaW9uQnVpbGRlci50b1N0cmluZygpKTsKLSAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkK
LSAgICAgICAgICAgICAgICAgICAgbV9lcnJvckNvZGUgPSBFcnJvckNvZGU6OkludmFsaWRVbmlj
b2RlUHJvcGVydHlFeHByZXNzaW9uOwotICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgY29u
c3VtZSgpOwogICAgICAgICAgICAgaWYgKGNoID09ICc9JykgewogICAgICAgICAgICAgICAgIGlm
ICghZm91bmRFcXVhbHMpIHsKICAgICAgICAgICAgICAgICAgICAgZm91bmRFcXVhbHMgPSB0cnVl
OwotICAgICAgICAgICAgICAgICAgICB1bmljb2RlUHJvcGVydHlOYW1lID0gZXhwcmVzc2lvbkJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
ZXhwcmVzc2lvbkJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHVu
aWNvZGVQcm9wZXJ0eU5hbWUgPSAqc3RyaW5nOworICAgICAgICAgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgICAgICAgICBleHBy
ZXNzaW9uQnVpbGRlci5jbGVhcigpOwogICAgICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAg
ICAgICAgICAgICBlcnJvcnMrKzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggMWQyZDIwZC4uNjIwYTVmYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNDYgQEAKKzIwMTgtMDQtMjYgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgor
CisgICAgICAgIFN0cmluZ0J1aWxkZXIgaXMgZmFsbGlibGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTA0OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0cmluZ0J1aWxkZXIgY2FuIGZhaWwgd2hlbiBh
bGxvY2F0aW5nIG1lbW9yeS4gU3RyaW5nQnVpbGRlciBpcworICAgICAgICBtb3N0bHkgdXNlZCB3
aXRoIHVzZXIgaW5wdXQsIHdoaWNoIG9mdGVuIG1lYW5zIHRoYXQganVzdCBjcmFzaGluZworICAg
ICAgICBpc24ndCB0aGUgcmlnaHQgb3V0Y29tZS4gT3VyIGZ1enplcnMgb2Z0ZW4gZW5jb3VudGVy
IHN1Y2ggdGhpbmdzCisgICAgICAgIGZvciBKYXZhU2NyaXB0Q29yZSwgYW5kIHNvIGZhciB3ZSd2
ZSBhcHBsaWVkIHBvaW50IHNvbHV0aW9ucy4gTm8KKyAgICAgICAgbW9yZSEgVGhpcyBwYXRjaCBt
YWtlcyBTdHJpbmdCdWlsZGVyIGZhbGxpYmxlIGFuZCBlbmZvcmNlcyB0aGlzIGluCisgICAgICAg
IHR3byB3YXlzOgorCisgICAgICAgICAgLSBFYWNoIHN0ZXAgb2YgYnVpbGRpbmcgYSBzdHJpbmcg
Y2FuIGJlIGNoZWNrZWQgZm9yIGZhaWx1cmUKKyAgICAgICAgICAgIGJlY2F1c2UgdGhleSBub3cg
cmV0dXJuIGEgIkZhbGxpYmxlPFQ+Ii4gVGhpcyBjYW4gYmUgaWdub3JlZCBhdAorICAgICAgICAg
ICAgZXZlcnkgc3RlcCEKKyAgICAgICAgICAtIFRoZSBmaW5hbCBzdGVwIG9mIFN0cmluZ0J1aWxk
ZXIsIGdldHRpbmcgdGhlIHN0cmluZyBvdXQsCisgICAgICAgICAgICByZXR1cm5zIGEgIkZhbGxp
YmxlPFN0cmluZz4iIHdoaWNoIGlzIG1hcmtlZCB3aXRoCisgICAgICAgICAgICBXQVJOX1VOVVNF
RF9SRVRVUk4uIEZhaWx1cmUgaXMgY29tbXVuaWNhdGVkIGlmIGFueSBvZiB0aGUgYnVpbGRpbmcK
KyAgICAgICAgICAgIHN0ZXBzIGZhaWxlZC4KKworICAgICAgICBEb2luZyB0aGlzIHR3by1zdGVw
IGFwcHJvYWNoIG1lYW5zIHRoYXQgY29kZSBjYW4gY29udGludWUKKyAgICAgICAgb3BlcmF0aW5n
IGFzIGl0IGRpZCBiZWZvcmUgKGFwcGVuZCBhIGJ1bmNoIGFuZCB0aGVuIGdldCBhIHN0cmluZykK
KyAgICAgICAgYW5kIG9ubHkgbmVlZHMgdG8gY2FyZSBhYm91dCB0aGUgc3RyaW5nIHBvdGVudGlh
bGx5IG5vdCBiZWluZworICAgICAgICBhdmFpbGFibGUuIFRoaXMgaXMgZW5mb3JjZWQgYnkgdGhl
IHR5cGUgc3lzdGVtOiBGYWxsaWJsZTxUPiBpcworICAgICAgICBzdGQ6OmV4cGVjdGVkPFQsIFN0
cmluZ0J1aWxkZXI6OkZhaWx1cmU+LgorCisgICAgICAgIFRoZSBmb2xsb3dpbmcgaW50ZXJtZWRp
YXRlIGZ1bmN0aW9ucyBjYW4gbm93IGJlIG9ic2VydmVkIHRvIGZhaWwKKyAgICAgICAgKG9yIGln
bm9yZWQpOgorCisgICAgICAgICAgLSBhcHBlbmQKKyAgICAgICAgICAtIGFwcGVuZFVuaW5pdGlh
bGl6ZWQKKyAgICAgICAgICAtIGFwcGVuZFVuaW5pdGlhbGl6ZWRTbG93CisgICAgICAgICAgLSBh
cHBlbmRRdW90ZWRKU09OU3RyaW5nIHVzZWQgdG8gcmV0dXJuIGZhbHNlIG9uIGZhaWx1cmUsIGl0
IG5vdyByZXR1cm5zIEZhbGxpYmxlPD4KKyAgICAgICAgICAtIHJlc2l6ZQorICAgICAgICAgIC0g
YWxsb2NhdGVCdWZmZXIKKyAgICAgICAgICAtIGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0CisgICAg
ICAgICAgLSByZWFsbG9jYXRlQnVmZmVyCisgICAgICAgICAgLSByZXNlcnZlQ2FwYWNpdHkKKyAg
ICAgICAgICAtIHNocmlua1RvRml0CisgICAgICAgICAgLSBvcGVyYXRvcltdCisgICAgICAgICAg
LSBjaGFyYWN0ZXJzOAorICAgICAgICAgIC0gY2hhcmFjdGVyczE2CisKKyAgICAgICAgRmFpbHVy
ZSBpbiB0aGVzZSBtZXRob2RzIGNvbWVzIGluIHR3byBmb3Jtczogb3V0IG9mIG1lbW9yeSwgYW5k
CisgICAgICAgIHdvdWxkIG92ZXJmbG93LiBXaGVuIGFuIG9wZXJhdGlvbiB3b3VsZCBvdmVyZmxv
dyBpdCBsZWF2ZXMgdGhlCisgICAgICAgIFN0cmluZ0J1aWxkZXIgaW4gaXRzIHByZXZpb3VzIHN0
YXRlLCBhbGxvd2luZyB1c2VycyB0byByZXN1bWUKKyAgICAgICAgd29yaywga2VlcCB0aGUgc3Ry
aW5nIGFzIGl0IGV4aXN0ZWQgYmVmb3JlIGZhaWx1cmUuIFdoZW4gd2UganVzdAorICAgICAgICBm
YWlsIGFsbG9jYXRpbmcgaXQgbWVhbnMgd2UgZXhwZWN0ZWQgdG8gc3VjY2VlZCwgc28gY2xlYXJp
bmcgdGhlCisgICAgICAgIFN0cmluZ0J1aWxkZXIgaXMgdGhlIHJpZ2h0IHRoaW5nIHRvIGRvLgor
CisgICAgICAgIFN1cHBvcnRpbmcgZmFpbHVyZSBpbiBTdHJpbmdCdWlsZGVyIHJlcXVpcmVkIGFk
ZGluZyAidHJ5IiB2YXJpYW50cworICAgICAgICBvZiBzb21lIG1ldGhvZHMgaW4gU3RyaW5nSW1w
bC4KKworICAgICAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgYWxsIFdlYktpdCBjb2RlIHdoaWNoIHVz
ZXMgU3RyaW5nQnVpbGRlci4gSXQKKyAgICAgICAgbGVhdmVzIGFsbCBpbnRlcm1lZGlhdGUgZnVu
Y3Rpb24gdXNhZ2UgYWxvbmUgKGNvZGUgc3RpbGwgYXBwZW5kcworICAgICAgICBiYWNrLXRvLWJh
Y2ssIGJsaXNzZnVsbHkgdW5hd2FyZSBvZiBmYWlsdXJlKSwgYW5kIG9ubHkgY2hlY2tzIGZvcgor
ICAgICAgICBmYWlsdXJlIHdoZW4gcmV0cmlldmluZyB0aGUgc3RyaW5nLiBUaGUgcGF0dGVybiB1
c2VkIGlzIHVzdWFsbHk6CisKKyAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgICAgICBmb28oKnN0cmluZyk7IC8vIFVzZSBzdHJpbmcgYXMgYmVm
b3JlLi4uCisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKKworICAgICAgICBU
aGlzIG1ha2VzIGZhaWx1cmUgZXh0cmVtZWx5IGV4cGxpY2l0LiBUaGVyZSdzIG5vIHRydWUgYmVo
YXZpb3IKKyAgICAgICAgY2hhbmdlOiB3aGF0IHdvdWxkIGhhdmUgY3Jhc2hlZCB3aGVuIGFwcGVu
ZGluZyBub3cgY3Jhc2hlcyB3aGVuCisgICAgICAgIHJldHJpZXZpbmcgdGhlIHN0cmluZy4gUHVs
bGluZyBDUkFTSCgpIG91dCB3aWxsIGdpdmUgc2xpZ2h0bHkKKyAgICAgICAgYmV0dGVyIGNyYXNo
IHNpZ25hdHVyZXMsIGFuZCBpdCBtYWtlcyB0aGUgY29kZSB2ZXJ5IG9idmlvdXMgYWJvdXQKKyAg
ICAgICAgZmFpbHVyZS4gSSBwdXJwb3NlZnVsbHkgZG9uJ3QgImZpeCIgYW55IGZhaWx1cmUgYmVj
YXVzZSB0aGVzZQorICAgICAgICBzaG91bGQgYmUgZG9uZSBpbiBhIHRhcmdldGVkIG1hbm5lciB3
aXRoIHJlcHJvIHRlc3RzIHdoZW5ldmVyCisgICAgICAgIHBvc3NpYmxlLiBJJ20gdmVyeSB3YXJ5
IG9mIGludHJvZHVjaW5nIGJ1Z3MhCisKKyAgICAgICAgV2hlbiBzb21lb25lIGluZXZpdGFibHkg
YmxhbWVzIGNvZGUgYmFjayB0byB0aGlzIGNvbW1pdCAoYmVjYXVzZQorICAgICAgICBoZXkgdGhl
IGNvZGUgaXMgcHJldHR5IHVnbHksIGFuZCB5b3UgbWlnaHQgYmUgc3VycHJpc2VkIGF0IHNlZWlu
ZworICAgICAgICBDUkFTSCgpIGluIHlvdXIgYmVhdXRpZnVsIGNvZGUpIHRoZXJlIGFyZSBhIGZl
dyB0aGluZ3Mgd2hpY2ggdGhleQorICAgICAgICBjYW4gZG86CisKKyAgICAgICAgICAxLiBDaGFu
Z2UgdGhlIGVsc2UgY2xhdXNlIHRvIGhhbmRsZSBmYWlsdXJlIHJhdGhlciB0aGFuIGNyYXNoLiBJ
biBKYXZhU2NyaXB0Q29yZSB0aGF0J3MgdXN1YWxseSB0aHJvd091dE9mTWVtb3J5RXJyb3IuCisg
ICAgICAgICAgMi4gQ2hhbmdlIHRoZSBjb2RlIHRvIGRpcmVjdGx5IHVzZSBGYWxsaWJsZSdzIC52
YWx1ZSgpIG1lbWJlciwgYW5kIGxldCAqdGhhdCogY3Jhc2ggaW5zdGVhZC4gVGhpcyBtYWtlcyB0
aGUgY3Jhc2ggbm9uLW9idmlvdXMgaW4gdGhlIGNvZGUsIHdoaWNoIG1pZ2h0IGJlIHdoYXQgeW91
IHdhbnQuCisgICAgICAgICAgMy4gQ2hhbmdlIHRoZSBjb2RlIHRvIGRldGVjdCBmYWlsdXJlIGF0
IHRoZSBlYXJsaWVzdCBzdGVwIG9mIHN0cmluZyBidWlsZGluZyAobGlrZWx5IHRoZSBhcHBlbmQg
Y2FsbHMpLCBhbmQgZG8gc29tZXRoaW5nIHNlbnNpYmxlIHRoZXJlLgorCisgICAgICAgIEluIG5v
IGNpcmN1bXN0YW5jZSBzaG91bGQgY29kZSBqdXN0IGRlcmVmZXJlbmNlIGEgRmFsbGlibGUgd2l0
aG91dAorICAgICAgICBrbm93aW5nIHRoYXQgaXRzIHN0YXRlIGhvbGRzIGEgdmFsaWQgc3RyaW5n
LiBUaGlzIGNvZGUgaXMKKyAgICAgICAgdW5kZWZpbmVkIGJlaGF2aW9yIGFjY29yZGluZyB0byB0
aGUgc3RkOjpleHBlY3RlZCBzcGVjaWZpY2F0aW9uCisgICAgICAgICh3aGV0aGVyIG91ciBpbXBs
ZW1lbnRhdGlvbiBzaG91bGQgZG8gc29tZXRoaW5nIGVsc2UgaXMgb3V0IG9mCisgICAgICAgIHNj
b3BlIGZvciB0aGlzIHBhdGNoKToKKworICAgICAgICAgIGZvbygqYnVpbGRlci50b1N0cmluZygp
KTsgLy8gVUIgd2hlbiBhbGxvY2F0aW9uIGZhaWxzLgorCisgICAgICAgICogd3RmL0Fzc2VydGlv
bnMuY3BwOgorICAgICAgICAqIHd0Zi9EYXRlTWF0aC5jcHA6CisgICAgICAgIChXVEY6Om1ha2VS
RkMyODIyRGF0ZVN0cmluZyk6CisgICAgICAgICogd3RmL0pTT05WYWx1ZXMuY3BwOgorICAgICAg
ICAoV1RGOjpKU09OSW1wbDo6VmFsdWU6OnRvSlNPTlN0cmluZyBjb25zdCk6CisgICAgICAgICog
d3RmL0xvZ2dlci5oOgorICAgICAgICAoV1RGOjpMb2dBcmd1bWVudDo6dG9TdHJpbmcpOgorICAg
ICAgICAoV1RGOjpMb2dBcmd1bWVudDxMb2dnZXI6OkxvZ1NpdGVJZGVudGlmaWVyPjo6dG9TdHJp
bmcpOgorICAgICAgICAqIHd0Zi9NZWRpYVRpbWUuY3BwOgorICAgICAgICAoV1RGOjpNZWRpYVRp
bWU6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiB3dGYvVVVJRC5jcHA6CisgICAgICAgIChX
VEY6OmNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcpOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuY3BwOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjp3b3VsZE92ZXJmbG93
KToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6b3V0T2ZNZW1vcnkpOgorICAgICAgICAo
V1RGOjpTdHJpbmdCdWlsZGVyOjpyZXNpemUpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVy
OjphbGxvY2F0ZUJ1ZmZlcik6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OmFsbG9jYXRl
QnVmZmVyVXBDb252ZXJ0KToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6cmVhbGxvY2F0
ZUJ1ZmZlcjxMQ2hhcj4pOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpyZWFsbG9jYXRl
QnVmZmVyPFVDaGFyPik6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OnJlc2VydmVDYXBh
Y2l0eSk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OmFwcGVuZCk6CisgICAgICAgIChX
VEY6OlN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcik6CisgICAgICAgIChXVEY6OlN0cmluZ0J1
aWxkZXI6OmFwcGVuZEVDTUFTY3JpcHROdW1iZXIpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWls
ZGVyOjphcHBlbmRGaXhlZFdpZHRoTnVtYmVyKToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRl
cjo6c2hyaW5rVG9GaXQpOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaDoKKyAg
ICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6U3RyaW5nQnVpbGRlcik6CisgICAgICAgIChXVEY6
OlN0cmluZ0J1aWxkZXI6OmFwcGVuZCk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OmFw
cGVuZExpdGVyYWwpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjp0b1N0cmluZyk6Cisg
ICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSBjb25z
dCk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OnRvQXRvbWljU3RyaW5nIGNvbnN0KToK
KyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6aXM4Qml0IGNvbnN0KToKKyAgICAgICAgKFdU
Rjo6U3RyaW5nQnVpbGRlcjo6ZmFpbGVkIGNvbnN0KToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVp
bGRlcjo6b3BlcmF0b3JbXSBjb25zdCk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OiBj
b25zdCk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OmNsZWFyKToKKyAgICAgICAgKFdU
Rjo6U3RyaW5nQnVpbGRlcjo6c3dhcCk6CisgICAgICAgIChXVEY6OmVxdWFsKToKKyAgICAgICAg
KFdURjo6SW50ZWdlclRvU3RyaW5nQ29udmVyc2lvblRyYWl0PFN0cmluZ0J1aWxkZXI+OjpmbHVz
aCk6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nQnVpbGRlckpTT04uY3BwOgorICAgICAgICAo
V1RGOjpTdHJpbmdCdWlsZGVyOjphcHBlbmRRdW90ZWRKU09OU3RyaW5nKToKKyAgICAgICAgKiB3
dGYvdGV4dC9TdHJpbmdJbXBsLmNwcDoKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6cmVhbGxv
Y2F0ZUludGVybmFsKToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6cmVhbGxvY2F0ZSk6Cisg
ICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OnRyeVJlYWxsb2NhdGUpOgorICAgICAgICAqIHd0Zi90
ZXh0L1N0cmluZ0ltcGwuaDoKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6dHJ5Q3JlYXRlU3Vi
c3RyaW5nU2hhcmluZ0ltcGwpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjpjcmVhdGVTdWJz
dHJpbmdTaGFyaW5nSW1wbCk6CisgICAgICAgICogd3RmL3RleHQvVGV4dFN0cmVhbS5jcHA6Cisg
ICAgICAgIChXVEY6OlRleHRTdHJlYW06OnJlbGVhc2UpOgorCiAyMDE4LTA0LTI1ICBNYXJrIExh
bSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBHYXJkZW5pbmc6IFNwZWN1bGF0aXZl
IGJ1aWxkIGZpeCBmb3IgV2luZG93cyAzMi1iaXQgdG8gY29tcGVuc2F0ZSBmb3IgTVNWQydzIGxh
Y2sgb2Ygc21hcnRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAg
Yi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcAppbmRleCBlMTVhMDkyLi5kN2M4MzE5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9Bc3NlcnRpb25zLmNwcApAQCAtMzQyLDkgKzM0MiwxMSBAQCB2b2lkIFdURkxvZ2dpbmdB
Y2N1bXVsYXRvcjo6cmVzZXRBY2N1bXVsYXRlZExvZ3MoKQogU3RyaW5nIFdURkxvZ2dpbmdBY2N1
bXVsYXRvcjo6Z2V0QW5kUmVzZXRBY2N1bXVsYXRlZExvZ3MoKQogewogICAgIExvY2tlcjxMb2Nr
PiBsb2NrZXIoYWNjdW11bGF0b3JMb2NrKTsKLSAgICBTdHJpbmcgcmVzdWx0ID0gbG9nZ2luZ0Fj
Y3VtdWxhdG9yLnRvU3RyaW5nKCk7Ci0gICAgbG9nZ2luZ0FjY3VtdWxhdG9yLmNsZWFyKCk7Ci0g
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICBpZiAoYXV0byByZXN1bHQgPSBsb2dnaW5nQWNjdW11bGF0
b3IudG9TdHJpbmcoKSkgeworICAgICAgICBsb2dnaW5nQWNjdW11bGF0b3IuY2xlYXIoKTsKKyAg
ICAgICAgcmV0dXJuICpyZXN1bHQ7CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBX
VEZMb2dnaW5nQWNjdW11bGF0b3ImIGxvZ2dpbmdBY2N1bXVsYXRvcigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5jcHAK
aW5kZXggNmRiOTJlYi4uYTg0MjVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGF0ZU1h
dGguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcApAQCAtMTE4Nyw3ICsxMTg3
LDkgQEAgU3RyaW5nIG1ha2VSRkMyODIyRGF0ZVN0cmluZyh1bnNpZ25lZCBkYXlPZldlZWssIHVu
c2lnbmVkIGRheSwgdW5zaWduZWQgbW9udGgsIHUKICAgICBhcHBlbmRUd29EaWdpdE51bWJlcihz
dHJpbmdCdWlsZGVyLCBhYnNvbHV0ZVVUQ09mZnNldCAvIDYwKTsKICAgICBhcHBlbmRUd29EaWdp
dE51bWJlcihzdHJpbmdCdWlsZGVyLCBhYnNvbHV0ZVVUQ09mZnNldCAlIDYwKTsKIAotICAgIHJl
dHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L0pTT05WYWx1ZXMuY3BwIGIvU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5jcHAKaW5kZXggYmRl
NDRhYi4uMDhjNjIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5jcHAK
KysrIGIvU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5jcHAKQEAgLTMyNyw4ICszMjcsMTEgQEAg
Ym9vbCBkZWNvZGVTdHJpbmcoY29uc3QgVUNoYXIqIHN0YXJ0LCBjb25zdCBVQ2hhciogZW5kLCBT
dHJpbmcmIG91dHB1dCkKICAgICBpZiAoIWRlY29kZVN0cmluZyhzdGFydCwgZW5kLCBidWZmZXIp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBvdXRwdXQgPSBidWZmZXIudG9TdHJpbmco
KTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWZmZXIudG9TdHJp
bmcoKSkgeworICAgICAgICBvdXRwdXQgPSAqc3RyaW5nOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBSZWZQdHI8SlNPTjo6VmFsdWU+IGJ1aWxk
VmFsdWUoY29uc3QgVUNoYXIqIHN0YXJ0LCBjb25zdCBVQ2hhciogZW5kLCBjb25zdCBVQ2hhcioq
IHZhbHVlVG9rZW5FbmQsIGludCBkZXB0aCkKQEAgLTU1Myw3ICs1NTYsOSBAQCBTdHJpbmcgVmFs
dWU6OnRvSlNPTlN0cmluZygpIGNvbnN0CiAgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CiAgICAg
cmVzdWx0LnJlc2VydmVDYXBhY2l0eSg1MTIpOwogICAgIHdyaXRlSlNPTihyZXN1bHQpOwotICAg
IHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAog
Ym9vbCBWYWx1ZTo6YXNCb29sZWFuKGJvb2wmIG91dHB1dCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL0xvZ2dlci5oIGIvU291cmNlL1dURi93dGYvTG9nZ2VyLmgKaW5kZXggNmIw
MWI1OC4uNDhiOGQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTG9nZ2VyLmgKKysrIGIv
U291cmNlL1dURi93dGYvTG9nZ2VyLmgKQEAgLTQ2LDcgKzQ2LDEyIEBAIHN0cnVjdCBMb2dBcmd1
bWVudCB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVSA9IFQ+IHN0YXRpYyB0eXBlbmFtZSBzdGQ6
OmVuYWJsZV9pZjxzdGQ6OmlzX3NhbWU8VSwgZG91YmxlPjo6dmFsdWUsIFN0cmluZz46OnR5cGUg
dG9TdHJpbmcoZG91YmxlIGFyZ3VtZW50KSB7IHJldHVybiBTdHJpbmc6Om51bWJlcihhcmd1bWVu
dCk7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVID0gVD4gc3RhdGljIHR5cGVuYW1lIHN0ZDo6
ZW5hYmxlX2lmPHN0ZDo6aXNfc2FtZTx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8VT46
OnR5cGUsIEF0b21pY1N0cmluZz46OnZhbHVlLCBTdHJpbmc+Ojp0eXBlIHRvU3RyaW5nKEF0b21p
Y1N0cmluZyBhcmd1bWVudCkgeyByZXR1cm4gYXJndW1lbnQuc3RyaW5nKCk7IH0KICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBVID0gVD4gc3RhdGljIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6
aXNfc2FtZTx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8VT46OnR5cGUsIFN0cmluZz46
OnZhbHVlLCBTdHJpbmc+Ojp0eXBlIHRvU3RyaW5nKFN0cmluZyBhcmd1bWVudCkgeyByZXR1cm4g
YXJndW1lbnQ7IH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVID0gVD4gc3RhdGljIHR5cGVuYW1l
IHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfc2FtZTx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVu
Y2U8VT46OnR5cGUsIFN0cmluZ0J1aWxkZXIqPjo6dmFsdWUsIFN0cmluZz46OnR5cGUgdG9TdHJp
bmcoU3RyaW5nQnVpbGRlciogYXJndW1lbnQpIHsgcmV0dXJuIGFyZ3VtZW50LT50b1N0cmluZygp
OyB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVSA9IFQ+IHN0YXRpYyB0eXBlbmFtZSBzdGQ6OmVu
YWJsZV9pZjxzdGQ6OmlzX3NhbWU8dHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPFU+Ojp0
eXBlLCBTdHJpbmdCdWlsZGVyKj46OnZhbHVlLCBTdHJpbmc+Ojp0eXBlIHRvU3RyaW5nKFN0cmlu
Z0J1aWxkZXIqIGFyZ3VtZW50KQorICAgIHsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYXJn
dW1lbnQtPnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAg
Q1JBU0goKTsKKyAgICB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVSA9IFQ+IHN0YXRpYyB0eXBl
bmFtZSBzdGQ6OmVuYWJsZV9pZjxzdGQ6OmlzX3NhbWU8VSwgY29uc3QgY2hhcio+Ojp2YWx1ZSwg
U3RyaW5nPjo6dHlwZSB0b1N0cmluZyhjb25zdCBjaGFyKiBhcmd1bWVudCkgeyByZXR1cm4gU3Ry
aW5nKGFyZ3VtZW50KTsgfQogICAgIHRlbXBsYXRlPHNpemVfdCBsZW5ndGg+IHN0YXRpYyBTdHJp
bmcgdG9TdHJpbmcoY29uc3QgY2hhciAoJmFyZ3VtZW50KVtsZW5ndGhdKSB7IHJldHVybiBTdHJp
bmcoYXJndW1lbnQpOyB9CiB9OwpAQCAtMjc0LDcgKzI3OSw5IEBAIHN0cnVjdCBMb2dBcmd1bWVu
dDxMb2dnZXI6OkxvZ1NpdGVJZGVudGlmaWVyPiB7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCco
Jyk7CiAgICAgICAgIGFwcGVuZFVuc2lnbmVkNjRBc0hleCh2YWx1ZS5vYmplY3RQdHIsIGJ1aWxk
ZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIikgIik7Ci0gICAgICAgIHJldHVy
biBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgp
OwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01lZGlhVGltZS5jcHAg
Yi9Tb3VyY2UvV1RGL3d0Zi9NZWRpYVRpbWUuY3BwCmluZGV4IDAzMDUwYjUuLjFmNzdiNDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01lZGlhVGltZS5jcHAKKysrIGIvU291cmNlL1dURi93
dGYvTWVkaWFUaW1lLmNwcApAQCAtNTc0LDcgKzU3NCw5IEBAIFN0cmluZyBNZWRpYVRpbWU6OnRv
U3RyaW5nKCkgY29uc3QKICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodG9Eb3VibGUo
KSk7CiAgICAgYnVpbGRlci5hcHBlbmQoJ30nKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIE1lZGlhVGltZTo6dG9K
U09OU3RyaW5nKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1VVSUQuY3BwIGIv
U291cmNlL1dURi93dGYvVVVJRC5jcHAKaW5kZXggZmI1ZmU1Yi4uYjU5OGYwMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvVVVJRC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvVVVJRC5jcHAK
QEAgLTU2LDcgKzU2LDkgQEAgU3RyaW5nIGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKQogICAg
IGJ1aWxkZXIuYXBwZW5kKCctJyk7CiAgICAgYXBwZW5kVW5zaWduZWRBc0hleEZpeGVkU2l6ZShy
YW5kb21EYXRhWzJdICYgMHgwMDAwZmZmZiwgYnVpbGRlciwgNCwgTG93ZXJjYXNlKTsKICAgICBh
cHBlbmRVbnNpZ25lZEFzSGV4Rml4ZWRTaXplKHJhbmRvbURhdGFbM10sIGJ1aWxkZXIsIDgsIExv
d2VyY2FzZSk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5n
QnVpbGRlci5jcHAKaW5kZXggODViMGMyMS4uMjU4NGM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0
cmluZ0J1aWxkZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MCwgMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKQEAgLTYyLDI2ICs2Miw0NCBAQCB2b2lkIFN0cmluZ0J1aWxkZXI6OnJlaWZ5U3Ry
aW5nKCkgY29uc3QKICAgICAgICAgbV9zdHJpbmcgPSBTdHJpbmdJbXBsOjpjcmVhdGVTdWJzdHJp
bmdTaGFyaW5nSW1wbCgqbV9idWZmZXIsIDAsIG1fbGVuZ3RoKTsKIH0KIAotdm9pZCBTdHJpbmdC
dWlsZGVyOjpyZXNpemUodW5zaWduZWQgbmV3U2l6ZSkKK1VuZXhwZWN0ZWQ8U3RyaW5nQnVpbGRl
cjo6RmFpbHVyZT4gU3RyaW5nQnVpbGRlcjo6d291bGRPdmVyZmxvdygpCit7CisgICAgbV9mYWls
ZWQgPSB0cnVlOworICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGYWlsdXJlOjpXb3VsZE92ZXJm
bG93KTsKK30KKworVW5leHBlY3RlZDxTdHJpbmdCdWlsZGVyOjpGYWlsdXJlPiBTdHJpbmdCdWls
ZGVyOjpvdXRPZk1lbW9yeSgpCit7CisgICAgY2xlYXIoKTsKKyAgICBtX2ZhaWxlZCA9IHRydWU7
CisgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZhaWx1cmU6Ok91dE9mTWVtb3J5KTsKK30KKwor
U3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjpyZXNpemUodW5zaWduZWQg
bmV3U2l6ZSkKIHsKICAgICAvLyBDaGVjayBuZXdTaXplIDwgbV9sZW5ndGgsIGhlbmNlIG1fbGVu
Z3RoID4gMC4KICAgICBBU1NFUlQobmV3U2l6ZSA8PSBtX2xlbmd0aCk7CiAgICAgaWYgKG5ld1Np
emUgPT0gbV9sZW5ndGgpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHsgfTsKICAg
ICBBU1NFUlQobV9sZW5ndGgpOwogCiAgICAgLy8gSWYgdGhlcmUgaXMgYSBidWZmZXIsIHdlIG9u
bHkgbmVlZCB0byBkdXBsaWNhdGUgaXQgaWYgaXQgaGFzIG1vcmUgdGhhbiBvbmUgcmVmLgogICAg
IGlmIChtX2J1ZmZlcikgewogICAgICAgICBtX3N0cmluZyA9IFN0cmluZygpOyAvLyBDbGVhciB0
aGUgc3RyaW5nIHRvIHJlbW92ZSB0aGUgcmVmZXJlbmNlIHRvIG1fYnVmZmVyIGlmIGFueSBiZWZv
cmUgY2hlY2tpbmcgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiBtX2J1ZmZlci4KICAgICAgICAgaWYg
KCFtX2J1ZmZlci0+aGFzT25lUmVmKCkpIHsKLSAgICAgICAgICAgIGlmIChtX2J1ZmZlci0+aXM4
Qml0KCkpCi0gICAgICAgICAgICAgICAgYWxsb2NhdGVCdWZmZXIobV9idWZmZXItPmNoYXJhY3Rl
cnM4KCksIG1fYnVmZmVyLT5sZW5ndGgoKSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAgICAgYWxsb2NhdGVCdWZmZXIobV9idWZmZXItPmNoYXJhY3RlcnMxNigpLCBtX2J1ZmZlci0+
bGVuZ3RoKCkpOworICAgICAgICAgICAgaWYgKG1fYnVmZmVyLT5pczhCaXQoKSkgeworICAgICAg
ICAgICAgICAgIGF1dG8gYWxsb2NhdGVkID0gYWxsb2NhdGVCdWZmZXIobV9idWZmZXItPmNoYXJh
Y3RlcnM4KCksIG1fYnVmZmVyLT5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgaWYgKCFhbGxv
Y2F0ZWQpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBhbGxvY2F0ZWQ7CisgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGF1dG8gYWxsb2NhdGVkID0gYWxsb2NhdGVCdWZm
ZXIobV9idWZmZXItPmNoYXJhY3RlcnMxNigpLCBtX2J1ZmZlci0+bGVuZ3RoKCkpOworICAgICAg
ICAgICAgICAgIGlmICghYWxsb2NhdGVkKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWxs
b2NhdGVkOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIG1fbGVuZ3RoID0gbmV3
U2l6ZTsKICAgICAgICAgQVNTRVJUKG1fYnVmZmVyLT5sZW5ndGgoKSA+PSBtX2xlbmd0aCk7Ci0g
ICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKICAgICAvLyBTaW5j
ZSBtX2xlbmd0aCAmJiAhbV9idWZmZXIsIHRoZSBzdHJpbmcgbXVzdCBiZSB2YWxpZCBpbiBtX3N0
cmluZywgYW5kIG1fc3RyaW5nLmxlbmd0aCgpID4gMC4KQEAgLTg5LDQ3ICsxMDcsNjAgQEAgdm9p
ZCBTdHJpbmdCdWlsZGVyOjpyZXNpemUodW5zaWduZWQgbmV3U2l6ZSkKICAgICBBU1NFUlQobV9s
ZW5ndGggPT0gbV9zdHJpbmcubGVuZ3RoKCkpOwogICAgIEFTU0VSVChuZXdTaXplIDwgbV9zdHJp
bmcubGVuZ3RoKCkpOwogICAgIG1fbGVuZ3RoID0gbmV3U2l6ZTsKLSAgICBtX3N0cmluZyA9IFN0
cmluZ0ltcGw6OmNyZWF0ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKCptX3N0cmluZy5pbXBsKCksIDAs
IG5ld1NpemUpOworICAgIGlmIChhdXRvIGNyZWF0ZWQgPSBTdHJpbmdJbXBsOjp0cnlDcmVhdGVT
dWJzdHJpbmdTaGFyaW5nSW1wbCgqbV9zdHJpbmcuaW1wbCgpLCAwLCBuZXdTaXplKSkgeworICAg
ICAgICBtX3N0cmluZyA9ICpjcmVhdGVkOworICAgICAgICByZXR1cm4geyB9OworICAgIH0gZWxz
ZQorICAgICAgICByZXR1cm4gb3V0T2ZNZW1vcnkoKTsKIH0KIAogLy8gQWxsb2NhdGUgYSBuZXcg
OCBiaXQgYnVmZmVyLCBjb3B5aW5nIGluIGN1cnJlbnRDaGFyYWN0ZXJzICh0aGVzZSBtYXkgY29t
ZSBmcm9tIGVpdGhlciBtX3N0cmluZwogLy8gb3IgbV9idWZmZXIsIG5laXRoZXIgd2lsbCBiZSBy
ZWFzc2lnbmVkIHVudGlsIHRoZSBjb3B5IGhhcyBjb21wbGV0ZWQpLgotdm9pZCBTdHJpbmdCdWls
ZGVyOjphbGxvY2F0ZUJ1ZmZlcihjb25zdCBMQ2hhciogY3VycmVudENoYXJhY3RlcnMsIHVuc2ln
bmVkIHJlcXVpcmVkTGVuZ3RoKQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWls
ZGVyOjphbGxvY2F0ZUJ1ZmZlcihjb25zdCBMQ2hhciogY3VycmVudENoYXJhY3RlcnMsIHVuc2ln
bmVkIHJlcXVpcmVkTGVuZ3RoKQogewogICAgIEFTU0VSVChtX2lzOEJpdCk7CiAgICAgLy8gQ29w
eSB0aGUgZXhpc3RpbmcgZGF0YSBpbnRvIGEgbmV3IGJ1ZmZlciwgc2V0IHJlc3VsdCB0byBwb2lu
dCB0byB0aGUgZW5kIG9mIHRoZSBleGlzdGluZyBkYXRhLgotICAgIGF1dG8gYnVmZmVyID0gU3Ry
aW5nSW1wbDo6Y3JlYXRlVW5pbml0aWFsaXplZChyZXF1aXJlZExlbmd0aCwgbV9idWZmZXJDaGFy
YWN0ZXJzOCk7CisgICAgYXV0byBidWZmZXIgPSBTdHJpbmdJbXBsOjp0cnlDcmVhdGVVbmluaXRp
YWxpemVkKHJlcXVpcmVkTGVuZ3RoLCBtX2J1ZmZlckNoYXJhY3RlcnM4KTsKKyAgICBpZiAoIWJ1
ZmZlcikKKyAgICAgICAgcmV0dXJuIG91dE9mTWVtb3J5KCk7CiAgICAgbWVtY3B5KG1fYnVmZmVy
Q2hhcmFjdGVyczgsIGN1cnJlbnRDaGFyYWN0ZXJzLCBzdGF0aWNfY2FzdDxzaXplX3Q+KG1fbGVu
Z3RoKSAqIHNpemVvZihMQ2hhcikpOyAvLyBUaGlzIGNhbid0IG92ZXJmbG93LgogICAgIAogICAg
IC8vIFVwZGF0ZSB0aGUgYnVpbGRlciBzdGF0ZS4KICAgICBtX2J1ZmZlciA9IFdURk1vdmUoYnVm
ZmVyKTsKICAgICBtX3N0cmluZyA9IFN0cmluZygpOwogICAgIEFTU0VSVChtX2J1ZmZlci0+bGVu
Z3RoKCkgPT0gcmVxdWlyZWRMZW5ndGgpOworICAgIHJldHVybiB7IH07CiB9CiAKIC8vIEFsbG9j
YXRlIGEgbmV3IDE2IGJpdCBidWZmZXIsIGNvcHlpbmcgaW4gY3VycmVudENoYXJhY3RlcnMgKHRo
ZXNlIG1heSBjb21lIGZyb20gZWl0aGVyIG1fc3RyaW5nCiAvLyBvciBtX2J1ZmZlciwgIG5laXRo
ZXIgd2lsbCBiZSByZWFzc2lnbmVkIHVudGlsIHRoZSBjb3B5IGhhcyBjb21wbGV0ZWQpLgotdm9p
ZCBTdHJpbmdCdWlsZGVyOjphbGxvY2F0ZUJ1ZmZlcihjb25zdCBVQ2hhciogY3VycmVudENoYXJh
Y3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8
PiBTdHJpbmdCdWlsZGVyOjphbGxvY2F0ZUJ1ZmZlcihjb25zdCBVQ2hhciogY3VycmVudENoYXJh
Y3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQogewogICAgIEFTU0VSVCghbV9pczhCaXQp
OwogICAgIC8vIENvcHkgdGhlIGV4aXN0aW5nIGRhdGEgaW50byBhIG5ldyBidWZmZXIsIHNldCBy
ZXN1bHQgdG8gcG9pbnQgdG8gdGhlIGVuZCBvZiB0aGUgZXhpc3RpbmcgZGF0YS4KLSAgICBhdXRv
IGJ1ZmZlciA9IFN0cmluZ0ltcGw6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQocmVxdWlyZWRMZW5ndGgs
IG1fYnVmZmVyQ2hhcmFjdGVyczE2KTsKKyAgICBhdXRvIGJ1ZmZlciA9IFN0cmluZ0ltcGw6OnRy
eUNyZWF0ZVVuaW5pdGlhbGl6ZWQocmVxdWlyZWRMZW5ndGgsIG1fYnVmZmVyQ2hhcmFjdGVyczE2
KTsKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIG91dE9mTWVtb3J5KCk7CiAgICAg
bWVtY3B5KG1fYnVmZmVyQ2hhcmFjdGVyczE2LCBjdXJyZW50Q2hhcmFjdGVycywgc3RhdGljX2Nh
c3Q8c2l6ZV90PihtX2xlbmd0aCkgKiBzaXplb2YoVUNoYXIpKTsgLy8gVGhpcyBjYW4ndCBvdmVy
Zmxvdy4KICAgICAKICAgICAvLyBVcGRhdGUgdGhlIGJ1aWxkZXIgc3RhdGUuCiAgICAgbV9idWZm
ZXIgPSBXVEZNb3ZlKGJ1ZmZlcik7CiAgICAgbV9zdHJpbmcgPSBTdHJpbmcoKTsKICAgICBBU1NF
UlQobV9idWZmZXItPmxlbmd0aCgpID09IHJlcXVpcmVkTGVuZ3RoKTsKKyAgICByZXR1cm4geyB9
OwogfQogCiAvLyBBbGxvY2F0ZSBhIG5ldyAxNiBiaXQgYnVmZmVyLCBjb3B5aW5nIGluIGN1cnJl
bnRDaGFyYWN0ZXJzICh3aGljaCBpcyA4IGJpdCBhbmQgbWF5IGNvbWUKIC8vIGZyb20gZWl0aGVy
IG1fc3RyaW5nIG9yIG1fYnVmZmVyLCBuZWl0aGVyIHdpbGwgYmUgcmVhc3NpZ25lZCB1bnRpbCB0
aGUgY29weSBoYXMgY29tcGxldGVkKS4KLXZvaWQgU3RyaW5nQnVpbGRlcjo6YWxsb2NhdGVCdWZm
ZXJVcENvbnZlcnQoY29uc3QgTENoYXIqIGN1cnJlbnRDaGFyYWN0ZXJzLCB1bnNpZ25lZCByZXF1
aXJlZExlbmd0aCkKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6YWxs
b2NhdGVCdWZmZXJVcENvbnZlcnQoY29uc3QgTENoYXIqIGN1cnJlbnRDaGFyYWN0ZXJzLCB1bnNp
Z25lZCByZXF1aXJlZExlbmd0aCkKIHsKICAgICBBU1NFUlQobV9pczhCaXQpOwogICAgIEFTU0VS
VChyZXF1aXJlZExlbmd0aCA+PSBtX2xlbmd0aCk7CiAgICAgLy8gQ29weSB0aGUgZXhpc3Rpbmcg
ZGF0YSBpbnRvIGEgbmV3IGJ1ZmZlciwgc2V0IHJlc3VsdCB0byBwb2ludCB0byB0aGUgZW5kIG9m
IHRoZSBleGlzdGluZyBkYXRhLgotICAgIGF1dG8gYnVmZmVyID0gU3RyaW5nSW1wbDo6Y3JlYXRl
VW5pbml0aWFsaXplZChyZXF1aXJlZExlbmd0aCwgbV9idWZmZXJDaGFyYWN0ZXJzMTYpOworICAg
IGF1dG8gYnVmZmVyID0gU3RyaW5nSW1wbDo6dHJ5Q3JlYXRlVW5pbml0aWFsaXplZChyZXF1aXJl
ZExlbmd0aCwgbV9idWZmZXJDaGFyYWN0ZXJzMTYpOworICAgIGlmICghYnVmZmVyKQorICAgICAg
ICByZXR1cm4gb3V0T2ZNZW1vcnkoKTsKKwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBt
X2xlbmd0aDsgKytpKQogICAgICAgICBtX2J1ZmZlckNoYXJhY3RlcnMxNltpXSA9IGN1cnJlbnRD
aGFyYWN0ZXJzW2ldOwogICAgIApAQCAtMTM5LDEwICsxNzAsMTEgQEAgdm9pZCBTdHJpbmdCdWls
ZGVyOjphbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChjb25zdCBMQ2hhciogY3VycmVudENoYXJhY3Rl
cnMsIHVuc2kKICAgICBtX2J1ZmZlciA9IFdURk1vdmUoYnVmZmVyKTsKICAgICBtX3N0cmluZyA9
IFN0cmluZygpOwogICAgIEFTU0VSVChtX2J1ZmZlci0+bGVuZ3RoKCkgPT0gcmVxdWlyZWRMZW5n
dGgpOworICAgIHJldHVybiB7IH07CiB9CiAKIHRlbXBsYXRlIDw+Ci12b2lkIFN0cmluZ0J1aWxk
ZXI6OnJlYWxsb2NhdGVCdWZmZXI8TENoYXI+KHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQorU3Ry
aW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjpyZWFsbG9jYXRlQnVmZmVyPExD
aGFyPih1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKIHsKICAgICAvLyBJZiB0aGUgYnVmZmVyIGhh
cyBvbmx5IG9uZSByZWYgKGJ5IHRoaXMgU3RyaW5nQnVpbGRlciksIHJlYWxsb2NhdGUgaXQsCiAg
ICAgLy8gb3RoZXJ3aXNlIGZhbGwgYmFjayB0byAiYWxsb2NhdGUgYW5kIGNvcHkiIG1ldGhvZC4K
QEAgLTE1MSw2NSArMTgzLDg5IEBAIHZvaWQgU3RyaW5nQnVpbGRlcjo6cmVhbGxvY2F0ZUJ1ZmZl
cjxMQ2hhcj4odW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCiAgICAgQVNTRVJUKG1faXM4Qml0KTsK
ICAgICBBU1NFUlQobV9idWZmZXItPmlzOEJpdCgpKTsKICAgICAKLSAgICBpZiAobV9idWZmZXIt
Pmhhc09uZVJlZigpKQotICAgICAgICBtX2J1ZmZlciA9IFN0cmluZ0ltcGw6OnJlYWxsb2NhdGUo
bV9idWZmZXIucmVsZWFzZU5vbk51bGwoKSwgcmVxdWlyZWRMZW5ndGgsIG1fYnVmZmVyQ2hhcmFj
dGVyczgpOwotICAgIGVsc2UKLSAgICAgICAgYWxsb2NhdGVCdWZmZXIobV9idWZmZXItPmNoYXJh
Y3RlcnM4KCksIHJlcXVpcmVkTGVuZ3RoKTsKKyAgICBpZiAobV9idWZmZXItPmhhc09uZVJlZigp
KSB7CisgICAgICAgIGF1dG8gcmVhbGxvY2F0ZWQgPSBTdHJpbmdJbXBsOjp0cnlSZWFsbG9jYXRl
KG1fYnVmZmVyLnJlbGVhc2VOb25OdWxsKCksIHJlcXVpcmVkTGVuZ3RoLCBtX2J1ZmZlckNoYXJh
Y3RlcnM4KTsKKyAgICAgICAgaWYgKCFyZWFsbG9jYXRlZCkKKyAgICAgICAgICAgIHJldHVybiBv
dXRPZk1lbW9yeSgpOworICAgICAgICBtX2J1ZmZlciA9IHJlYWxsb2NhdGVkLmdldCgpOworICAg
IH0gZWxzZSB7CisgICAgICAgIGF1dG8gYWxsb2NhdGVkID0gYWxsb2NhdGVCdWZmZXIobV9idWZm
ZXItPmNoYXJhY3RlcnM4KCksIHJlcXVpcmVkTGVuZ3RoKTsKKyAgICAgICAgaWYgKCFhbGxvY2F0
ZWQpCisgICAgICAgICAgICByZXR1cm4gYWxsb2NhdGVkOworICAgIH0KICAgICBBU1NFUlQobV9i
dWZmZXItPmxlbmd0aCgpID09IHJlcXVpcmVkTGVuZ3RoKTsKKyAgICByZXR1cm4geyB9OwogfQog
CiB0ZW1wbGF0ZSA8Pgotdm9pZCBTdHJpbmdCdWlsZGVyOjpyZWFsbG9jYXRlQnVmZmVyPFVDaGFy
Pih1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3Ry
aW5nQnVpbGRlcjo6cmVhbGxvY2F0ZUJ1ZmZlcjxVQ2hhcj4odW5zaWduZWQgcmVxdWlyZWRMZW5n
dGgpCiB7CiAgICAgLy8gSWYgdGhlIGJ1ZmZlciBoYXMgb25seSBvbmUgcmVmIChieSB0aGlzIFN0
cmluZ0J1aWxkZXIpLCByZWFsbG9jYXRlIGl0LAogICAgIC8vIG90aGVyd2lzZSBmYWxsIGJhY2sg
dG8gImFsbG9jYXRlIGFuZCBjb3B5IiBtZXRob2QuCiAgICAgbV9zdHJpbmcgPSBTdHJpbmcoKTsK
ICAgICAKLSAgICBpZiAobV9idWZmZXItPmlzOEJpdCgpKQotICAgICAgICBhbGxvY2F0ZUJ1ZmZl
clVwQ29udmVydChtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKSwgcmVxdWlyZWRMZW5ndGgpOworICAg
IGlmIChtX2J1ZmZlci0+aXM4Qml0KCkpIHsKKyAgICAgICAgYXV0byBhbGxvY2F0ZWQgPSBhbGxv
Y2F0ZUJ1ZmZlclVwQ29udmVydChtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKSwgcmVxdWlyZWRMZW5n
dGgpOworICAgICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAgIHJldHVybiBhbGxvY2F0
ZWQ7CisgICAgfQogICAgIGVsc2UgaWYgKG1fYnVmZmVyLT5oYXNPbmVSZWYoKSkKICAgICAgICAg
bV9idWZmZXIgPSBTdHJpbmdJbXBsOjpyZWFsbG9jYXRlKG1fYnVmZmVyLnJlbGVhc2VOb25OdWxs
KCksIHJlcXVpcmVkTGVuZ3RoLCBtX2J1ZmZlckNoYXJhY3RlcnMxNik7CiAgICAgZWxzZQogICAg
ICAgICBhbGxvY2F0ZUJ1ZmZlcihtX2J1ZmZlci0+Y2hhcmFjdGVyczE2KCksIHJlcXVpcmVkTGVu
Z3RoKTsKICAgICBBU1NFUlQobV9idWZmZXItPmxlbmd0aCgpID09IHJlcXVpcmVkTGVuZ3RoKTsK
KyAgICByZXR1cm4geyB9OwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OnJlc2VydmVDYXBhY2l0
eSh1bnNpZ25lZCBuZXdDYXBhY2l0eSkKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5n
QnVpbGRlcjo6cmVzZXJ2ZUNhcGFjaXR5KHVuc2lnbmVkIG5ld0NhcGFjaXR5KQogewogICAgIGlm
IChtX2J1ZmZlcikgewogICAgICAgICAvLyBJZiB0aGVyZSBpcyBhbHJlYWR5IGEgYnVmZmVyLCB0
aGVuIGdyb3cgaWYgbmVjZXNzYXJ5LgogICAgICAgICBpZiAobmV3Q2FwYWNpdHkgPiBtX2J1ZmZl
ci0+bGVuZ3RoKCkpIHsKLSAgICAgICAgICAgIGlmIChtX2J1ZmZlci0+aXM4Qml0KCkpCi0gICAg
ICAgICAgICAgICAgcmVhbGxvY2F0ZUJ1ZmZlcjxMQ2hhcj4obmV3Q2FwYWNpdHkpOwotICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJlYWxsb2NhdGVCdWZmZXI8VUNoYXI+KG5ld0Nh
cGFjaXR5KTsKKyAgICAgICAgICAgIGlmIChtX2J1ZmZlci0+aXM4Qml0KCkpIHsKKyAgICAgICAg
ICAgICAgICBhdXRvIHJlYWxsb2NhdGVkID0gcmVhbGxvY2F0ZUJ1ZmZlcjxMQ2hhcj4obmV3Q2Fw
YWNpdHkpOworICAgICAgICAgICAgICAgIGlmICghcmVhbGxvY2F0ZWQpCisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiByZWFsbG9jYXRlZDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgYXV0byByZWFsbG9jYXRlZCA9IHJlYWxsb2NhdGVCdWZmZXI8VUNoYXI+KG5ld0Nh
cGFjaXR5KTsKKyAgICAgICAgICAgICAgICBpZiAoIXJlYWxsb2NhdGVkKQorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gcmVhbGxvY2F0ZWQ7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAg
ICB9IGVsc2UgewogICAgICAgICAvLyBHcm93IHRoZSBzdHJpbmcsIGlmIG5lY2Vzc2FyeS4KICAg
ICAgICAgaWYgKG5ld0NhcGFjaXR5ID4gbV9sZW5ndGgpIHsKICAgICAgICAgICAgIGlmICghbV9s
ZW5ndGgpIHsKICAgICAgICAgICAgICAgICBMQ2hhciogbnVsbFBsYWNlaG9sZGVyID0gMDsKLSAg
ICAgICAgICAgICAgICBhbGxvY2F0ZUJ1ZmZlcihudWxsUGxhY2Vob2xkZXIsIG5ld0NhcGFjaXR5
KTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAobV9zdHJpbmcuaXM4Qml0KCkpCi0gICAgICAgICAg
ICAgICAgYWxsb2NhdGVCdWZmZXIobV9zdHJpbmcuY2hhcmFjdGVyczgoKSwgbmV3Q2FwYWNpdHkp
OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGFsbG9jYXRlQnVmZmVyKG1fc3Ry
aW5nLmNoYXJhY3RlcnMxNigpLCBuZXdDYXBhY2l0eSk7CisgICAgICAgICAgICAgICAgYXV0byBh
bGxvY2F0ZWQgPSBhbGxvY2F0ZUJ1ZmZlcihudWxsUGxhY2Vob2xkZXIsIG5ld0NhcGFjaXR5KTsK
KyAgICAgICAgICAgICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGFsbG9jYXRlZDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobV9zdHJpbmcuaXM4Qml0KCkp
IHsKKyAgICAgICAgICAgICAgICBhdXRvIGFsbG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVyKG1fc3Ry
aW5nLmNoYXJhY3RlcnM4KCksIG5ld0NhcGFjaXR5KTsKKyAgICAgICAgICAgICAgICBpZiAoIWFs
bG9jYXRlZCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRlZDsKKyAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYXV0byBhbGxvY2F0ZWQgPSBhbGxvY2F0ZUJ1
ZmZlcihtX3N0cmluZy5jaGFyYWN0ZXJzMTYoKSwgbmV3Q2FwYWNpdHkpOworICAgICAgICAgICAg
ICAgIGlmICghYWxsb2NhdGVkKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWxsb2NhdGVk
OworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogICAgIEFTU0VSVCghbmV3Q2FwYWNp
dHkgfHwgbV9idWZmZXItPmxlbmd0aCgpID49IG5ld0NhcGFjaXR5KTsKKyAgICByZXR1cm4geyB9
OwogfQogCiAvLyBNYWtlICdsZW5ndGgnIGFkZGl0aW9uYWwgY2FwYWNpdHkgYmUgYXZhaWxhYmxl
IGluIG1fYnVmZmVyLCB1cGRhdGUgbV9zdHJpbmcgJiBtX2xlbmd0aCwKIC8vIHJldHVybiBhIHBv
aW50ZXIgdG8gdGhlIG5ld2x5IGFsbG9jYXRlZCBzdG9yYWdlLgogdGVtcGxhdGUgPHR5cGVuYW1l
IENoYXJUeXBlPgotQUxXQVlTX0lOTElORSBDaGFyVHlwZSogU3RyaW5nQnVpbGRlcjo6YXBwZW5k
VW5pbml0aWFsaXplZCh1bnNpZ25lZCBsZW5ndGgpCitBTFdBWVNfSU5MSU5FIFN0cmluZ0J1aWxk
ZXI6OkZhbGxpYmxlPENoYXJUeXBlKj4gU3RyaW5nQnVpbGRlcjo6YXBwZW5kVW5pbml0aWFsaXpl
ZCh1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgQVNTRVJUKGxlbmd0aCk7CiAKICAgICAvLyBDYWxj
dWxhdGUgdGhlIG5ldyBzaXplIG9mIHRoZSBidWlsZGVyIGFmdGVyIGFwcGVuZGluZy4KICAgICB1
bnNpZ25lZCByZXF1aXJlZExlbmd0aCA9IGxlbmd0aCArIG1fbGVuZ3RoOwogICAgIGlmIChyZXF1
aXJlZExlbmd0aCA8IGxlbmd0aCkKLSAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgcmV0dXJuIHdv
dWxkT3ZlcmZsb3coKTsKIAogICAgIGlmICgobV9idWZmZXIpICYmIChyZXF1aXJlZExlbmd0aCA8
PSBtX2J1ZmZlci0+bGVuZ3RoKCkpKSB7CiAgICAgICAgIC8vIElmIHRoZSBidWZmZXIgaXMgdmFs
aWQgaXQgbXVzdCBiZSBhdCBsZWFzdCBhcyBsb25nIGFzIHRoZSBjdXJyZW50IGJ1aWxkZXIgY29u
dGVudHMhCkBAIC0yMjYsNyArMjgyLDcgQEAgQUxXQVlTX0lOTElORSBDaGFyVHlwZSogU3RyaW5n
QnVpbGRlcjo6YXBwZW5kVW5pbml0aWFsaXplZCh1bnNpZ25lZCBsZW5ndGgpCiAvLyBNYWtlICds
ZW5ndGgnIGFkZGl0aW9uYWwgY2FwYWNpdHkgYmUgYXZhaWxhYmxlIGluIG1fYnVmZmVyLCB1cGRh
dGUgbV9zdHJpbmcgJiBtX2xlbmd0aCwKIC8vIHJldHVybiBhIHBvaW50ZXIgdG8gdGhlIG5ld2x5
IGFsbG9jYXRlZCBzdG9yYWdlLgogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgotQ2hhclR5
cGUqIFN0cmluZ0J1aWxkZXI6OmFwcGVuZFVuaW5pdGlhbGl6ZWRTbG93KHVuc2lnbmVkIHJlcXVp
cmVkTGVuZ3RoKQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8Q2hhclR5cGUqPiBTdHJpbmdCdWls
ZGVyOjphcHBlbmRVbmluaXRpYWxpemVkU2xvdyh1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKIHsK
ICAgICBBU1NFUlQocmVxdWlyZWRMZW5ndGgpOwogCkBAIC0yMzQsMTAgKzI5MCwxNCBAQCBDaGFy
VHlwZSogU3RyaW5nQnVpbGRlcjo6YXBwZW5kVW5pbml0aWFsaXplZFNsb3codW5zaWduZWQgcmVx
dWlyZWRMZW5ndGgpCiAgICAgICAgIC8vIElmIHRoZSBidWZmZXIgaXMgdmFsaWQgaXQgbXVzdCBi
ZSBhdCBsZWFzdCBhcyBsb25nIGFzIHRoZSBjdXJyZW50IGJ1aWxkZXIgY29udGVudHMhCiAgICAg
ICAgIEFTU0VSVChtX2J1ZmZlci0+bGVuZ3RoKCkgPj0gbV9sZW5ndGgpOwogICAgICAgICAKLSAg
ICAgICAgcmVhbGxvY2F0ZUJ1ZmZlcjxDaGFyVHlwZT4oZXhwYW5kZWRDYXBhY2l0eShjYXBhY2l0
eSgpLCByZXF1aXJlZExlbmd0aCkpOworICAgICAgICBhdXRvIHJlYWxsb2NhdGVkID0gcmVhbGxv
Y2F0ZUJ1ZmZlcjxDaGFyVHlwZT4oZXhwYW5kZWRDYXBhY2l0eShjYXBhY2l0eSgpLCByZXF1aXJl
ZExlbmd0aCkpOworICAgICAgICBpZiAoIXJlYWxsb2NhdGVkKQorICAgICAgICAgICAgcmV0dXJu
IG1ha2VVbmV4cGVjdGVkKHJlYWxsb2NhdGVkLmVycm9yKCkpOwogICAgIH0gZWxzZSB7CiAgICAg
ICAgIEFTU0VSVChtX3N0cmluZy5sZW5ndGgoKSA9PSBtX2xlbmd0aCk7Ci0gICAgICAgIGFsbG9j
YXRlQnVmZmVyKG1fbGVuZ3RoID8gbV9zdHJpbmcuY2hhcmFjdGVyczxDaGFyVHlwZT4oKSA6IDAs
IGV4cGFuZGVkQ2FwYWNpdHkoY2FwYWNpdHkoKSwgcmVxdWlyZWRMZW5ndGgpKTsKKyAgICAgICAg
YXV0byBhbGxvY2F0ZWQgPSBhbGxvY2F0ZUJ1ZmZlcihtX2xlbmd0aCA/IG1fc3RyaW5nLmNoYXJh
Y3RlcnM8Q2hhclR5cGU+KCkgOiAwLCBleHBhbmRlZENhcGFjaXR5KGNhcGFjaXR5KCksIHJlcXVp
cmVkTGVuZ3RoKSk7CisgICAgICAgIGlmICghYWxsb2NhdGVkKQorICAgICAgICAgICAgcmV0dXJu
IG1ha2VVbmV4cGVjdGVkKGFsbG9jYXRlZC5lcnJvcigpKTsKICAgICB9CiAgICAgCiAgICAgQ2hh
clR5cGUqIHJlc3VsdCA9IGdldEJ1ZmZlckNoYXJhY3RlcnM8Q2hhclR5cGU+KCkgKyBtX2xlbmd0
aDsKQEAgLTI0NiwxMCArMzA2LDEwIEBAIENoYXJUeXBlKiBTdHJpbmdCdWlsZGVyOjphcHBlbmRV
bmluaXRpYWxpemVkU2xvdyh1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKICAgICByZXR1cm4gcmVz
dWx0OwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVuZChjb25zdCBVQ2hhciogY2hhcmFj
dGVycywgdW5zaWduZWQgbGVuZ3RoKQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdC
dWlsZGVyOjphcHBlbmQoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkK
IHsKICAgICBpZiAoIWxlbmd0aCkKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4geyB9
OwogCiAgICAgQVNTRVJUKGNoYXJhY3RlcnMpOwogCkBAIC0yNTcsNDAgKzMxNyw1MSBAQCB2b2lk
IFN0cmluZ0J1aWxkZXI6OmFwcGVuZChjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQg
bGVuZ3RoKQogICAgICAgICBpZiAobGVuZ3RoID09IDEgJiYgISgqY2hhcmFjdGVycyAmIH4weGZm
KSkgewogICAgICAgICAgICAgLy8gQXBwZW5kIGFzIDggYml0IGNoYXJhY3RlcgogICAgICAgICAg
ICAgTENoYXIgbENoYXIgPSBzdGF0aWNfY2FzdDxMQ2hhcj4oKmNoYXJhY3RlcnMpOwotICAgICAg
ICAgICAgYXBwZW5kKCZsQ2hhciwgMSk7Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICByZXR1cm4gYXBwZW5kKCZsQ2hhciwgMSk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBDYWxj
dWxhdGUgdGhlIG5ldyBzaXplIG9mIHRoZSBidWlsZGVyIGFmdGVyIGFwcGVuZGluZy4KICAgICAg
ICAgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGggPSBsZW5ndGggKyBtX2xlbmd0aDsKICAgICAgICAg
aWYgKHJlcXVpcmVkTGVuZ3RoIDwgbGVuZ3RoKQotICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAg
ICAgICAgIHJldHVybiB3b3VsZE92ZXJmbG93KCk7CiAgICAgICAgIAogICAgICAgICBpZiAobV9i
dWZmZXIpIHsKICAgICAgICAgICAgIC8vIElmIHRoZSBidWZmZXIgaXMgdmFsaWQgaXQgbXVzdCBi
ZSBhdCBsZWFzdCBhcyBsb25nIGFzIHRoZSBjdXJyZW50IGJ1aWxkZXIgY29udGVudHMhCiAgICAg
ICAgICAgICBBU1NFUlQobV9idWZmZXItPmxlbmd0aCgpID49IG1fbGVuZ3RoKTsKICAgICAgICAg
ICAgIAotICAgICAgICAgICAgYWxsb2NhdGVCdWZmZXJVcENvbnZlcnQobV9idWZmZXItPmNoYXJh
Y3RlcnM4KCksIGV4cGFuZGVkQ2FwYWNpdHkoY2FwYWNpdHkoKSwgcmVxdWlyZWRMZW5ndGgpKTsK
KyAgICAgICAgICAgIGF1dG8gYWxsb2NhdGVkID0gYWxsb2NhdGVCdWZmZXJVcENvbnZlcnQobV9i
dWZmZXItPmNoYXJhY3RlcnM4KCksIGV4cGFuZGVkQ2FwYWNpdHkoY2FwYWNpdHkoKSwgcmVxdWly
ZWRMZW5ndGgpKTsKKyAgICAgICAgICAgIGlmICghYWxsb2NhdGVkKQorICAgICAgICAgICAgICAg
IHJldHVybiBhbGxvY2F0ZWQ7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBBU1NFUlQo
bV9zdHJpbmcubGVuZ3RoKCkgPT0gbV9sZW5ndGgpOwotICAgICAgICAgICAgYWxsb2NhdGVCdWZm
ZXJVcENvbnZlcnQobV9zdHJpbmcuaXNOdWxsKCkgPyAwIDogbV9zdHJpbmcuY2hhcmFjdGVyczgo
KSwgZXhwYW5kZWRDYXBhY2l0eShjYXBhY2l0eSgpLCByZXF1aXJlZExlbmd0aCkpOworICAgICAg
ICAgICAgYXV0byBhbGxvY2F0ZWQgPSBhbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChtX3N0cmluZy5p
c051bGwoKSA/IDAgOiBtX3N0cmluZy5jaGFyYWN0ZXJzOCgpLCBleHBhbmRlZENhcGFjaXR5KGNh
cGFjaXR5KCksIHJlcXVpcmVkTGVuZ3RoKSk7CisgICAgICAgICAgICBpZiAoIWFsbG9jYXRlZCkK
KyAgICAgICAgICAgICAgICByZXR1cm4gYWxsb2NhdGVkOwogICAgICAgICB9CiAKICAgICAgICAg
bWVtY3B5KG1fYnVmZmVyQ2hhcmFjdGVyczE2ICsgbV9sZW5ndGgsIGNoYXJhY3RlcnMsIHN0YXRp
Y19jYXN0PHNpemVfdD4obGVuZ3RoKSAqIHNpemVvZihVQ2hhcikpOwogICAgICAgICBtX2xlbmd0
aCA9IHJlcXVpcmVkTGVuZ3RoOwotICAgIH0gZWxzZQotICAgICAgICBtZW1jcHkoYXBwZW5kVW5p
bml0aWFsaXplZDxVQ2hhcj4obGVuZ3RoKSwgY2hhcmFjdGVycywgc3RhdGljX2Nhc3Q8c2l6ZV90
PihsZW5ndGgpICogc2l6ZW9mKFVDaGFyKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGF1
dG8gYXBwZW5kZWQgPSBhcHBlbmRVbmluaXRpYWxpemVkPFVDaGFyPihsZW5ndGgpKQorICAgICAg
ICAgICAgbWVtY3B5KCphcHBlbmRlZCwgY2hhcmFjdGVycywgc3RhdGljX2Nhc3Q8c2l6ZV90Pihs
ZW5ndGgpICogc2l6ZW9mKFVDaGFyKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVy
biBtYWtlVW5leHBlY3RlZChhcHBlbmRlZC5lcnJvcigpKTsKKyAgICB9CiAgICAgQVNTRVJUKG1f
YnVmZmVyLT5sZW5ndGgoKSA+PSBtX2xlbmd0aCk7CisgICAgcmV0dXJuIHsgfTsKIH0KIAotdm9p
ZCBTdHJpbmdCdWlsZGVyOjphcHBlbmQoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVk
IGxlbmd0aCkKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6YXBwZW5k
KGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgaWYgKCFs
ZW5ndGgpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHsgfTsKICAgICBBU1NFUlQo
Y2hhcmFjdGVycyk7CiAKICAgICBpZiAobV9pczhCaXQpIHsKLSAgICAgICAgTENoYXIqIGRlc3Qg
PSBhcHBlbmRVbmluaXRpYWxpemVkPExDaGFyPihsZW5ndGgpOworICAgICAgICBhdXRvIGFwcGVu
ZGVkID0gYXBwZW5kVW5pbml0aWFsaXplZDxMQ2hhcj4obGVuZ3RoKTsKKyAgICAgICAgaWYgKCFh
cHBlbmRlZCkKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChhcHBlbmRlZC5lcnJv
cigpKTsKKyAgICAgICAgTENoYXIqIGRlc3QgPSAqYXBwZW5kZWQ7CiAgICAgICAgIGlmIChsZW5n
dGggPiA4KQogICAgICAgICAgICAgbWVtY3B5KGRlc3QsIGNoYXJhY3RlcnMsIHN0YXRpY19jYXN0
PHNpemVfdD4obGVuZ3RoKSAqIHNpemVvZihMQ2hhcikpOwogICAgICAgICBlbHNlIHsKQEAgLTI5
OSw3MyArMzcwLDc5IEBAIHZvaWQgU3RyaW5nQnVpbGRlcjo6YXBwZW5kKGNvbnN0IExDaGFyKiBj
aGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgICAgICAgICAgICAgKihkZXN0KyspID0g
KihjaGFyYWN0ZXJzKyspOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAgVUNoYXIq
IGRlc3QgPSBhcHBlbmRVbmluaXRpYWxpemVkPFVDaGFyPihsZW5ndGgpOworICAgICAgICBhdXRv
IGFwcGVuZGVkID0gYXBwZW5kVW5pbml0aWFsaXplZDxVQ2hhcj4obGVuZ3RoKTsKKyAgICAgICAg
aWYgKCFhcHBlbmRlZCkKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChhcHBlbmRl
ZC5lcnJvcigpKTsKKyAgICAgICAgVUNoYXIqIGRlc3QgPSAqYXBwZW5kZWQ7CiAgICAgICAgIGNv
bnN0IExDaGFyKiBlbmQgPSBjaGFyYWN0ZXJzICsgbGVuZ3RoOwogICAgICAgICB3aGlsZSAoY2hh
cmFjdGVycyA8IGVuZCkKICAgICAgICAgICAgICooZGVzdCsrKSA9ICooY2hhcmFjdGVycysrKTsK
ICAgICB9CisgICAgcmV0dXJuIHsgfTsKIH0KIAogI2lmIFVTRShDRikKIAotdm9pZCBTdHJpbmdC
dWlsZGVyOjphcHBlbmQoQ0ZTdHJpbmdSZWYgc3RyaW5nKQorU3RyaW5nQnVpbGRlcjo6RmFsbGli
bGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmQoQ0ZTdHJpbmdSZWYgc3RyaW5nKQogewogICAgIC8v
IEZhc3QgcGF0aDogYXZvaWQgY29uc3RydWN0aW5nIGEgdGVtcG9yYXJ5IFN0cmluZyB3aGVuIHBv
c3NpYmxlLgogICAgIGlmIChhdXRvKiBjaGFyYWN0ZXJzID0gQ0ZTdHJpbmdHZXRDU3RyaW5nUHRy
KHN0cmluZywga0NGU3RyaW5nRW5jb2RpbmdJU09MYXRpbjEpKSB7Ci0gICAgICAgIGFwcGVuZChy
ZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oY2hhcmFjdGVycyksIENGU3RyaW5nR2V0TGVu
Z3RoKHN0cmluZykpOwotICAgICAgICByZXR1cm47CisgICAgICAgIGlmIChhdXRvIGFwcGVuZGVk
ID0gYXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihjaGFyYWN0ZXJzKSwgQ0ZT
dHJpbmdHZXRMZW5ndGgoc3RyaW5nKSkpCisgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAg
ICBlbHNlCisgICAgICAgICAgICByZXR1cm4gYXBwZW5kZWQ7CiAgICAgfQotICAgIGFwcGVuZChT
dHJpbmcoc3RyaW5nKSk7CisgICAgcmV0dXJuIGFwcGVuZChTdHJpbmcoc3RyaW5nKSk7CiB9CiAK
ICNlbmRpZgogCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcihpbnQgbnVtYmVyKQor
U3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIoaW50
IG51bWJlcikKIHsKLSAgICBudW1iZXJUb1N0cmluZ1NpZ25lZDxTdHJpbmdCdWlsZGVyPihudW1i
ZXIsIHRoaXMpOworICAgIHJldHVybiBudW1iZXJUb1N0cmluZ1NpZ25lZDxTdHJpbmdCdWlsZGVy
PihudW1iZXIsIHRoaXMpOwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcih1
bnNpZ25lZCBpbnQgbnVtYmVyKQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWls
ZGVyOjphcHBlbmROdW1iZXIodW5zaWduZWQgaW50IG51bWJlcikKIHsKLSAgICBudW1iZXJUb1N0
cmluZ1Vuc2lnbmVkPFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CisgICAgcmV0dXJuIG51
bWJlclRvU3RyaW5nVW5zaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0aGlzKTsKIH0KIAot
dm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIobG9uZyBudW1iZXIpCitTdHJpbmdCdWls
ZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcihsb25nIG51bWJlcikK
IHsKLSAgICBudW1iZXJUb1N0cmluZ1NpZ25lZDxTdHJpbmdCdWlsZGVyPihudW1iZXIsIHRoaXMp
OworICAgIHJldHVybiBudW1iZXJUb1N0cmluZ1NpZ25lZDxTdHJpbmdCdWlsZGVyPihudW1iZXIs
IHRoaXMpOwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcih1bnNpZ25lZCBs
b25nIG51bWJlcikKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6YXBw
ZW5kTnVtYmVyKHVuc2lnbmVkIGxvbmcgbnVtYmVyKQogewotICAgIG51bWJlclRvU3RyaW5nVW5z
aWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0aGlzKTsKKyAgICByZXR1cm4gbnVtYmVyVG9T
dHJpbmdVbnNpZ25lZDxTdHJpbmdCdWlsZGVyPihudW1iZXIsIHRoaXMpOwogfQogCi12b2lkIFN0
cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcihsb25nIGxvbmcgbnVtYmVyKQorU3RyaW5nQnVpbGRl
cjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIobG9uZyBsb25nIG51bWJl
cikKIHsKLSAgICBudW1iZXJUb1N0cmluZ1NpZ25lZDxTdHJpbmdCdWlsZGVyPihudW1iZXIsIHRo
aXMpOworICAgIHJldHVybiBudW1iZXJUb1N0cmluZ1NpZ25lZDxTdHJpbmdCdWlsZGVyPihudW1i
ZXIsIHRoaXMpOwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcih1bnNpZ25l
ZCBsb25nIGxvbmcgbnVtYmVyKQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWls
ZGVyOjphcHBlbmROdW1iZXIodW5zaWduZWQgbG9uZyBsb25nIG51bWJlcikKIHsKLSAgICBudW1i
ZXJUb1N0cmluZ1Vuc2lnbmVkPFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CisgICAgcmV0
dXJuIG51bWJlclRvU3RyaW5nVW5zaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0aGlzKTsK
IH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIoZG91YmxlIG51bWJlciwgdW5z
aWduZWQgcHJlY2lzaW9uLCBUcmFpbGluZ1plcm9zVHJ1bmNhdGluZ1BvbGljeSB0cmFpbGluZ1pl
cm9zVHJ1bmNhdGluZ1BvbGljeSkKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVp
bGRlcjo6YXBwZW5kTnVtYmVyKGRvdWJsZSBudW1iZXIsIHVuc2lnbmVkIHByZWNpc2lvbiwgVHJh
aWxpbmdaZXJvc1RydW5jYXRpbmdQb2xpY3kgdHJhaWxpbmdaZXJvc1RydW5jYXRpbmdQb2xpY3kp
CiB7CiAgICAgTnVtYmVyVG9TdHJpbmdCdWZmZXIgYnVmZmVyOwotICAgIGFwcGVuZChudW1iZXJU
b0ZpeGVkUHJlY2lzaW9uU3RyaW5nKG51bWJlciwgcHJlY2lzaW9uLCBidWZmZXIsIHRyYWlsaW5n
WmVyb3NUcnVuY2F0aW5nUG9saWN5ID09IFRydW5jYXRlVHJhaWxpbmdaZXJvcykpOworICAgIHJl
dHVybiBhcHBlbmQobnVtYmVyVG9GaXhlZFByZWNpc2lvblN0cmluZyhudW1iZXIsIHByZWNpc2lv
biwgYnVmZmVyLCB0cmFpbGluZ1plcm9zVHJ1bmNhdGluZ1BvbGljeSA9PSBUcnVuY2F0ZVRyYWls
aW5nWmVyb3MpKTsKIH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmRFQ01BU2NyaXB0TnVt
YmVyKGRvdWJsZSBudW1iZXIpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxk
ZXI6OmFwcGVuZEVDTUFTY3JpcHROdW1iZXIoZG91YmxlIG51bWJlcikKIHsKICAgICBOdW1iZXJU
b1N0cmluZ0J1ZmZlciBidWZmZXI7Ci0gICAgYXBwZW5kKG51bWJlclRvU3RyaW5nKG51bWJlciwg
YnVmZmVyKSk7CisgICAgcmV0dXJuIGFwcGVuZChudW1iZXJUb1N0cmluZyhudW1iZXIsIGJ1ZmZl
cikpOwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVuZEZpeGVkV2lkdGhOdW1iZXIoZG91
YmxlIG51bWJlciwgdW5zaWduZWQgZGVjaW1hbFBsYWNlcykKK1N0cmluZ0J1aWxkZXI6OkZhbGxp
YmxlPD4gU3RyaW5nQnVpbGRlcjo6YXBwZW5kRml4ZWRXaWR0aE51bWJlcihkb3VibGUgbnVtYmVy
LCB1bnNpZ25lZCBkZWNpbWFsUGxhY2VzKQogewogICAgIE51bWJlclRvU3RyaW5nQnVmZmVyIGJ1
ZmZlcjsKLSAgICBhcHBlbmQobnVtYmVyVG9GaXhlZFdpZHRoU3RyaW5nKG51bWJlciwgZGVjaW1h
bFBsYWNlcywgYnVmZmVyKSk7CisgICAgcmV0dXJuIGFwcGVuZChudW1iZXJUb0ZpeGVkV2lkdGhT
dHJpbmcobnVtYmVyLCBkZWNpbWFsUGxhY2VzLCBidWZmZXIpKTsKIH0KIAogYm9vbCBTdHJpbmdC
dWlsZGVyOjpjYW5TaHJpbmsoKSBjb25zdApAQCAtMzc0LDE1ICs0NTEsMjEgQEAgYm9vbCBTdHJp
bmdCdWlsZGVyOjpjYW5TaHJpbmsoKSBjb25zdAogICAgIHJldHVybiBtX2J1ZmZlciAmJiBtX2J1
ZmZlci0+bGVuZ3RoKCkgPiAobV9sZW5ndGggKyAobV9sZW5ndGggPj4gMikpOwogfQogCi12b2lk
IFN0cmluZ0J1aWxkZXI6OnNocmlua1RvRml0KCkKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4g
U3RyaW5nQnVpbGRlcjo6c2hyaW5rVG9GaXQoKQogewogICAgIGlmIChjYW5TaHJpbmsoKSkgewot
ICAgICAgICBpZiAobV9pczhCaXQpCi0gICAgICAgICAgICByZWFsbG9jYXRlQnVmZmVyPExDaGFy
PihtX2xlbmd0aCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlYWxsb2NhdGVCdWZmZXI8
VUNoYXI+KG1fbGVuZ3RoKTsKKyAgICAgICAgaWYgKG1faXM4Qml0KSB7CisgICAgICAgICAgICBh
dXRvIHJlYWxsb2NhdGVkID0gcmVhbGxvY2F0ZUJ1ZmZlcjxMQ2hhcj4obV9sZW5ndGgpOworICAg
ICAgICAgICAgaWYgKCFyZWFsbG9jYXRlZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVhbGxv
Y2F0ZWQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhdXRvIHJlYWxsb2NhdGVkID0g
cmVhbGxvY2F0ZUJ1ZmZlcjxVQ2hhcj4obV9sZW5ndGgpOworICAgICAgICAgICAgaWYgKCFyZWFs
bG9jYXRlZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVhbGxvY2F0ZWQ7CisgICAgICAgIH0K
ICAgICAgICAgbV9zdHJpbmcgPSBXVEZNb3ZlKG1fYnVmZmVyKTsKICAgICB9CisgICAgcmV0dXJu
IHsgfTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRl
ci5oCmluZGV4IDhlNGM3MjAuLjJjMGRkY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvU3RyaW5nQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRl
ci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwLCAyMDEy
LTIwMTMsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA5LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJp
Z2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CkBAIC0yNyw2ICsyNyw3IEBACiAjaWZuZGVmIFN0cmluZ0J1aWxkZXJfaAogI2RlZmlu
ZSBTdHJpbmdCdWlsZGVyX2gKIAorI2luY2x1ZGUgPHd0Zi9FeHBlY3RlZC5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0ludGVnZXJUb1N0
cmluZ0NvbnZlcnNpb24uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CkBAIC00
MCwyOCArNDEsMzMgQEAgY2xhc3MgU3RyaW5nQnVpbGRlciB7CiAKIHB1YmxpYzoKICAgICBTdHJp
bmdCdWlsZGVyKCkKLSAgICAgICAgOiBtX2xlbmd0aCgwKQotICAgICAgICAsIG1faXM4Qml0KHRy
dWUpCi0gICAgICAgICwgbV9idWZmZXJDaGFyYWN0ZXJzOChudWxscHRyKQorICAgICAgICA6IG1f
YnVmZmVyQ2hhcmFjdGVyczgobnVsbHB0cikKICAgICB7CiAgICAgfQogICAgIFN0cmluZ0J1aWxk
ZXIoU3RyaW5nQnVpbGRlciYmKSA9IGRlZmF1bHQ7CiAgICAgU3RyaW5nQnVpbGRlciYgb3BlcmF0
b3I9KFN0cmluZ0J1aWxkZXImJikgPSBkZWZhdWx0OwogCi0gICAgV1RGX0VYUE9SVF9QUklWQVRF
IHZvaWQgYXBwZW5kKGNvbnN0IFVDaGFyKiwgdW5zaWduZWQpOwotICAgIFdURl9FWFBPUlRfUFJJ
VkFURSB2b2lkIGFwcGVuZChjb25zdCBMQ2hhciosIHVuc2lnbmVkKTsKKyAgICBlbnVtIGNsYXNz
IEZhaWx1cmUgeworICAgICAgICBXb3VsZE92ZXJmbG93LAorICAgICAgICBPdXRPZk1lbW9yeSwK
KyAgICAgICAgVW5oYW5kbGVkRmFpbHVyZSwKKyAgICB9OworICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEV4cGVjdCA9IHZvaWQ+IHVzaW5nIEZhbGxpYmxlID0gRXhwZWN0ZWQ8RXhwZWN0LCBTdHJpbmdC
dWlsZGVyOjpGYWlsdXJlPjsKKworICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IGFw
cGVuZChjb25zdCBVQ2hhciosIHVuc2lnbmVkKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFs
bGlibGU8PiBhcHBlbmQoY29uc3QgTENoYXIqLCB1bnNpZ25lZCk7CiAKLSAgICBBTFdBWVNfSU5M
SU5FIHZvaWQgYXBwZW5kKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkg
eyBhcHBlbmQocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KGNoYXJhY3RlcnMpLCBsZW5n
dGgpOyB9CisgICAgQUxXQVlTX0lOTElORSBGYWxsaWJsZTw+IGFwcGVuZChjb25zdCBjaGFyKiBj
aGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpIHsgcmV0dXJuIGFwcGVuZChyZWludGVycHJldF9j
YXN0PGNvbnN0IExDaGFyKj4oY2hhcmFjdGVycyksIGxlbmd0aCk7IH0KIAotICAgIHZvaWQgYXBw
ZW5kKGNvbnN0IEF0b21pY1N0cmluZyYgYXRvbWljU3RyaW5nKQorICAgIEZhbGxpYmxlPD4gYXBw
ZW5kKGNvbnN0IEF0b21pY1N0cmluZyYgYXRvbWljU3RyaW5nKQogICAgIHsKLSAgICAgICAgYXBw
ZW5kKGF0b21pY1N0cmluZy5zdHJpbmcoKSk7CisgICAgICAgIHJldHVybiBhcHBlbmQoYXRvbWlj
U3RyaW5nLnN0cmluZygpKTsKICAgICB9CiAKLSAgICB2b2lkIGFwcGVuZChjb25zdCBTdHJpbmcm
IHN0cmluZykKKyAgICBGYWxsaWJsZTw+IGFwcGVuZChjb25zdCBTdHJpbmcmIHN0cmluZykKICAg
ICB7CiAgICAgICAgIGlmICghc3RyaW5nLmxlbmd0aCgpKQotICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgICAgICAvLyBJZiB3ZSdyZSBhcHBlbmRpbmcg
dG8gYW4gZW1wdHkgc3RyaW5nLCBhbmQgdGhlcmUgaXMgbm90IGEgYnVmZmVyIChyZXNlcnZlQ2Fw
YWNpdHkgaGFzIG5vdCBiZWVuIGNhbGxlZCkKICAgICAgICAgLy8gdGhlbiBqdXN0IHJldGFpbiB0
aGUgc3RyaW5nLgpAQCAtNjksMTUxICs3NSwxNjQgQEAgcHVibGljOgogICAgICAgICAgICAgbV9z
dHJpbmcgPSBzdHJpbmc7CiAgICAgICAgICAgICBtX2xlbmd0aCA9IHN0cmluZy5sZW5ndGgoKTsK
ICAgICAgICAgICAgIG1faXM4Qml0ID0gbV9zdHJpbmcuaXM4Qml0KCk7Ci0gICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAKICAgICAgICAgaWYg
KHN0cmluZy5pczhCaXQoKSkKLSAgICAgICAgICAgIGFwcGVuZChzdHJpbmcuY2hhcmFjdGVyczgo
KSwgc3RyaW5nLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIHJldHVybiBhcHBlbmQoc3RyaW5nLmNo
YXJhY3RlcnM4KCksIHN0cmluZy5sZW5ndGgoKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
IGFwcGVuZChzdHJpbmcuY2hhcmFjdGVyczE2KCksIHN0cmluZy5sZW5ndGgoKSk7CisgICAgICAg
ICAgICByZXR1cm4gYXBwZW5kKHN0cmluZy5jaGFyYWN0ZXJzMTYoKSwgc3RyaW5nLmxlbmd0aCgp
KTsKICAgICB9CiAKLSAgICB2b2lkIGFwcGVuZChjb25zdCBTdHJpbmdCdWlsZGVyJiBvdGhlcikK
KyAgICBGYWxsaWJsZTw+IGFwcGVuZChjb25zdCBTdHJpbmdCdWlsZGVyJiBvdGhlcikKICAgICB7
CisgICAgICAgIGlmIChvdGhlci5mYWlsZWQoKSkKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5l
eHBlY3RlZChGYWlsdXJlOjpVbmhhbmRsZWRGYWlsdXJlKTsgICAgICAgICAgICAKICAgICAgICAg
aWYgKCFvdGhlci5tX2xlbmd0aCkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHJl
dHVybiB7IH07CiAKICAgICAgICAgLy8gSWYgd2UncmUgYXBwZW5kaW5nIHRvIGFuIGVtcHR5IHN0
cmluZywgYW5kIHRoZXJlIGlzIG5vdCBhIGJ1ZmZlciAocmVzZXJ2ZUNhcGFjaXR5IGhhcyBub3Qg
YmVlbiBjYWxsZWQpCiAgICAgICAgIC8vIHRoZW4ganVzdCByZXRhaW4gdGhlIHN0cmluZy4KICAg
ICAgICAgaWYgKCFtX2xlbmd0aCAmJiAhbV9idWZmZXIgJiYgIW90aGVyLm1fc3RyaW5nLmlzTnVs
bCgpKSB7CiAgICAgICAgICAgICBtX3N0cmluZyA9IG90aGVyLm1fc3RyaW5nOwogICAgICAgICAg
ICAgbV9sZW5ndGggPSBvdGhlci5tX2xlbmd0aDsKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KIAogICAgICAgICBpZiAob3RoZXIuaXM4Qml0
KCkpCi0gICAgICAgICAgICBhcHBlbmQob3RoZXIuY2hhcmFjdGVyczgoKSwgb3RoZXIubV9sZW5n
dGgpOworICAgICAgICAgICAgcmV0dXJuIGFwcGVuZCgqb3RoZXIuY2hhcmFjdGVyczgoKSwgb3Ro
ZXIubV9sZW5ndGgpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBhcHBlbmQob3RoZXIuY2hh
cmFjdGVyczE2KCksIG90aGVyLm1fbGVuZ3RoKTsKKyAgICAgICAgICAgIHJldHVybiBhcHBlbmQo
Km90aGVyLmNoYXJhY3RlcnMxNigpLCBvdGhlci5tX2xlbmd0aCk7CiAgICAgfQogCi0gICAgdm9p
ZCBhcHBlbmQoU3RyaW5nVmlldyBzdHJpbmdWaWV3KQorICAgIEZhbGxpYmxlPD4gYXBwZW5kKFN0
cmluZ1ZpZXcgc3RyaW5nVmlldykKICAgICB7CiAgICAgICAgIGlmIChzdHJpbmdWaWV3LmlzOEJp
dCgpKQotICAgICAgICAgICAgYXBwZW5kKHN0cmluZ1ZpZXcuY2hhcmFjdGVyczgoKSwgc3RyaW5n
Vmlldy5sZW5ndGgoKSk7CisgICAgICAgICAgICByZXR1cm4gYXBwZW5kKHN0cmluZ1ZpZXcuY2hh
cmFjdGVyczgoKSwgc3RyaW5nVmlldy5sZW5ndGgoKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIGFwcGVuZChzdHJpbmdWaWV3LmNoYXJhY3RlcnMxNigpLCBzdHJpbmdWaWV3Lmxlbmd0aCgp
KTsKKyAgICAgICAgICAgIHJldHVybiBhcHBlbmQoc3RyaW5nVmlldy5jaGFyYWN0ZXJzMTYoKSwg
c3RyaW5nVmlldy5sZW5ndGgoKSk7CiAgICAgfQogCiAjaWYgVVNFKENGKQotICAgIFdURl9FWFBP
UlRfUFJJVkFURSB2b2lkIGFwcGVuZChDRlN0cmluZ1JlZik7CisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIEZhbGxpYmxlPD4gYXBwZW5kKENGU3RyaW5nUmVmKTsKICNlbmRpZgogI2lmIFVTRShDRikg
JiYgZGVmaW5lZChfX09CSkNfXykKLSAgICB2b2lkIGFwcGVuZChOU1N0cmluZyAqc3RyaW5nKSB7
IGFwcGVuZCgoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpc3RyaW5nKTsgfQorICAgIEZhbGxpYmxlPD4g
YXBwZW5kKE5TU3RyaW5nICpzdHJpbmcpIHsgcmV0dXJuIGFwcGVuZCgoX19icmlkZ2UgQ0ZTdHJp
bmdSZWYpc3RyaW5nKTsgfQogI2VuZGlmCiAgICAgCi0gICAgdm9pZCBhcHBlbmQoY29uc3QgU3Ry
aW5nJiBzdHJpbmcsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQorICAgIEZhbGxp
YmxlPD4gYXBwZW5kKGNvbnN0IFN0cmluZyYgc3RyaW5nLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2ln
bmVkIGxlbmd0aCkKICAgICB7CiAgICAgICAgIGlmICghc3RyaW5nLmxlbmd0aCgpKQotICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgICAgICBpZiAoKG9m
ZnNldCArIGxlbmd0aCkgPiBzdHJpbmcubGVuZ3RoKCkpCi0gICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICByZXR1cm4geyB9OwogCiAgICAgICAgIGlmIChzdHJpbmcuaXM4Qml0KCkpCi0g
ICAgICAgICAgICBhcHBlbmQoc3RyaW5nLmNoYXJhY3RlcnM4KCkgKyBvZmZzZXQsIGxlbmd0aCk7
CisgICAgICAgICAgICByZXR1cm4gYXBwZW5kKHN0cmluZy5jaGFyYWN0ZXJzOCgpICsgb2Zmc2V0
LCBsZW5ndGgpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBhcHBlbmQoc3RyaW5nLmNoYXJh
Y3RlcnMxNigpICsgb2Zmc2V0LCBsZW5ndGgpOworICAgICAgICAgICAgcmV0dXJuIGFwcGVuZChz
dHJpbmcuY2hhcmFjdGVyczE2KCkgKyBvZmZzZXQsIGxlbmd0aCk7CiAgICAgfQogCi0gICAgdm9p
ZCBhcHBlbmQoY29uc3QgY2hhciogY2hhcmFjdGVycykKKyAgICBGYWxsaWJsZTw+IGFwcGVuZChj
b25zdCBjaGFyKiBjaGFyYWN0ZXJzKQogICAgIHsKICAgICAgICAgaWYgKGNoYXJhY3RlcnMpCi0g
ICAgICAgICAgICBhcHBlbmQoY2hhcmFjdGVycywgc3RybGVuKGNoYXJhY3RlcnMpKTsKKyAgICAg
ICAgICAgIHJldHVybiBhcHBlbmQoY2hhcmFjdGVycywgc3RybGVuKGNoYXJhY3RlcnMpKTsKKyAg
ICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKLSAgICB2b2lkIGFwcGVuZChVQ2hhciBjKQorICAg
IEZhbGxpYmxlPD4gYXBwZW5kKFVDaGFyIGMpCiAgICAgewogICAgICAgICBpZiAobV9idWZmZXIg
JiYgbV9sZW5ndGggPCBtX2J1ZmZlci0+bGVuZ3RoKCkgJiYgbV9zdHJpbmcuaXNOdWxsKCkpIHsK
ICAgICAgICAgICAgIGlmICghbV9pczhCaXQpIHsKICAgICAgICAgICAgICAgICBtX2J1ZmZlckNo
YXJhY3RlcnMxNlttX2xlbmd0aCsrXSA9IGM7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlm
ICghKGMgJiB+MHhmZikpIHsKICAgICAgICAgICAgICAgICBtX2J1ZmZlckNoYXJhY3RlcnM4W21f
bGVuZ3RoKytdID0gc3RhdGljX2Nhc3Q8TENoYXI+KGMpOwotICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICAgICAgfQogICAgICAgICB9
Ci0gICAgICAgIGFwcGVuZCgmYywgMSk7CisgICAgICAgIHJldHVybiBhcHBlbmQoJmMsIDEpOwog
ICAgIH0KIAotICAgIHZvaWQgYXBwZW5kKExDaGFyIGMpCisgICAgRmFsbGlibGU8PiBhcHBlbmQo
TENoYXIgYykKICAgICB7CiAgICAgICAgIGlmIChtX2J1ZmZlciAmJiBtX2xlbmd0aCA8IG1fYnVm
ZmVyLT5sZW5ndGgoKSAmJiBtX3N0cmluZy5pc051bGwoKSkgewogICAgICAgICAgICAgaWYgKG1f
aXM4Qml0KQogICAgICAgICAgICAgICAgIG1fYnVmZmVyQ2hhcmFjdGVyczhbbV9sZW5ndGgrK10g
PSBjOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG1fYnVmZmVyQ2hhcmFjdGVy
czE2W21fbGVuZ3RoKytdID0gYzsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBhcHBlbmQo
JmMsIDEpOworICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgfQorICAgICAgICByZXR1
cm4gYXBwZW5kKCZjLCAxKTsKICAgICB9CiAKLSAgICB2b2lkIGFwcGVuZChjaGFyIGMpCisgICAg
RmFsbGlibGU8PiBhcHBlbmQoY2hhciBjKQogICAgIHsKLSAgICAgICAgYXBwZW5kKHN0YXRpY19j
YXN0PExDaGFyPihjKSk7CisgICAgICAgIHJldHVybiBhcHBlbmQoc3RhdGljX2Nhc3Q8TENoYXI+
KGMpKTsKICAgICB9CiAKLSAgICB2b2lkIGFwcGVuZChVQ2hhcjMyIGMpCisgICAgRmFsbGlibGU8
PiBhcHBlbmQoVUNoYXIzMiBjKQogICAgIHsKLSAgICAgICAgaWYgKFVfSVNfQk1QKGMpKSB7Ci0g
ICAgICAgICAgICBhcHBlbmQoc3RhdGljX2Nhc3Q8VUNoYXI+KGMpKTsKLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgfQotICAgICAgICBhcHBlbmQoVTE2X0xFQUQoYykpOwotICAgICAgICBh
cHBlbmQoVTE2X1RSQUlMKGMpKTsKKyAgICAgICAgaWYgKFVfSVNfQk1QKGMpKQorICAgICAgICAg
ICAgcmV0dXJuIGFwcGVuZChzdGF0aWNfY2FzdDxVQ2hhcj4oYykpOworICAgICAgICBhdXRvIGFw
cGVuZGVkID0gYXBwZW5kKFUxNl9MRUFEKGMpKTsKKyAgICAgICAgaWYgKCFhcHBlbmRlZCkKKyAg
ICAgICAgICAgIHJldHVybiBhcHBlbmRlZDsKKyAgICAgICAgcmV0dXJuIGFwcGVuZChVMTZfVFJB
SUwoYykpOwogICAgIH0KIAotICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGFwcGVuZFF1b3Rl
ZEpTT05TdHJpbmcoY29uc3QgU3RyaW5nJik7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxp
YmxlPD4gYXBwZW5kUXVvdGVkSlNPTlN0cmluZyhjb25zdCBTdHJpbmcmKTsKIAogICAgIHRlbXBs
YXRlPHVuc2lnbmVkIGNoYXJhY3RlckNvdW50PgotICAgIEFMV0FZU19JTkxJTkUgdm9pZCBhcHBl
bmRMaXRlcmFsKGNvbnN0IGNoYXIgKCZjaGFyYWN0ZXJzKVtjaGFyYWN0ZXJDb3VudF0pIHsgYXBw
ZW5kKGNoYXJhY3RlcnMsIGNoYXJhY3RlckNvdW50IC0gMSk7IH0KLQotICAgIFdURl9FWFBPUlRf
UFJJVkFURSB2b2lkIGFwcGVuZE51bWJlcihpbnQpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2
b2lkIGFwcGVuZE51bWJlcih1bnNpZ25lZCBpbnQpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2
b2lkIGFwcGVuZE51bWJlcihsb25nKTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBl
bmROdW1iZXIodW5zaWduZWQgbG9uZyk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBw
ZW5kTnVtYmVyKGxvbmcgbG9uZyk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5k
TnVtYmVyKHVuc2lnbmVkIGxvbmcgbG9uZyk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQg
YXBwZW5kTnVtYmVyKGRvdWJsZSwgdW5zaWduZWQgcHJlY2lzaW9uID0gNiwgVHJhaWxpbmdaZXJv
c1RydW5jYXRpbmdQb2xpY3kgPSBUcnVuY2F0ZVRyYWlsaW5nWmVyb3MpOwotICAgIFdURl9FWFBP
UlRfUFJJVkFURSB2b2lkIGFwcGVuZEVDTUFTY3JpcHROdW1iZXIoZG91YmxlKTsKLSAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmRGaXhlZFdpZHRoTnVtYmVyKGRvdWJsZSwgdW5zaWdu
ZWQgZGVjaW1hbFBsYWNlcyk7Ci0KLSAgICBTdHJpbmcgdG9TdHJpbmcoKQorICAgIEFMV0FZU19J
TkxJTkUgRmFsbGlibGU8PiBhcHBlbmRMaXRlcmFsKGNvbnN0IGNoYXIgKCZjaGFyYWN0ZXJzKVtj
aGFyYWN0ZXJDb3VudF0pIHsgcmV0dXJuIGFwcGVuZChjaGFyYWN0ZXJzLCBjaGFyYWN0ZXJDb3Vu
dCAtIDEpOyB9CisKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmROdW1i
ZXIoaW50KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmROdW1iZXIo
dW5zaWduZWQgaW50KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmRO
dW1iZXIobG9uZyk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5kTnVt
YmVyKHVuc2lnbmVkIGxvbmcpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IGFw
cGVuZE51bWJlcihsb25nIGxvbmcpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+
IGFwcGVuZE51bWJlcih1bnNpZ25lZCBsb25nIGxvbmcpOworICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBGYWxsaWJsZTw+IGFwcGVuZE51bWJlcihkb3VibGUsIHVuc2lnbmVkIHByZWNpc2lvbiA9IDYs
IFRyYWlsaW5nWmVyb3NUcnVuY2F0aW5nUG9saWN5ID0gVHJ1bmNhdGVUcmFpbGluZ1plcm9zKTsK
KyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmRFQ01BU2NyaXB0TnVtYmVy
KGRvdWJsZSk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5kRml4ZWRX
aWR0aE51bWJlcihkb3VibGUsIHVuc2lnbmVkIGRlY2ltYWxQbGFjZXMpOworCisgICAgV0FSTl9V
TlVTRURfUkVUVVJOIEZhbGxpYmxlPFN0cmluZz4gdG9TdHJpbmcoKQogICAgIHsKLSAgICAgICAg
c2hyaW5rVG9GaXQoKTsKLSAgICAgICAgaWYgKG1fc3RyaW5nLmlzTnVsbCgpKQotICAgICAgICAg
ICAgcmVpZnlTdHJpbmcoKTsKLSAgICAgICAgcmV0dXJuIG1fc3RyaW5nOworICAgICAgICBpZiAo
bV9mYWlsZWQpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmFpbHVyZTo6VW5o
YW5kbGVkRmFpbHVyZSk7CisgICAgICAgIGlmIChhdXRvIHNocmFuayA9IHNocmlua1RvRml0KCkp
IHsKKyAgICAgICAgICAgIGlmIChtX3N0cmluZy5pc051bGwoKSkKKyAgICAgICAgICAgICAgICBy
ZWlmeVN0cmluZygpOworICAgICAgICAgICAgcmV0dXJuIG1fc3RyaW5nOworICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChzaHJhbmsuZXJyb3IoKSk7CiAg
ICAgfQogCi0gICAgY29uc3QgU3RyaW5nJiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBjb25z
dAorICAgIFdBUk5fVU5VU0VEX1JFVFVSTiBGYWxsaWJsZTxTdHJpbmc+IHRvU3RyaW5nUHJlc2Vy
dmVDYXBhY2l0eSgpIGNvbnN0CiAgICAgeworICAgICAgICBpZiAobV9mYWlsZWQpCisgICAgICAg
ICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmFpbHVyZTo6VW5oYW5kbGVkRmFpbHVyZSk7CiAg
ICAgICAgIGlmIChtX3N0cmluZy5pc051bGwoKSkKICAgICAgICAgICAgIHJlaWZ5U3RyaW5nKCk7
CiAgICAgICAgIHJldHVybiBtX3N0cmluZzsKICAgICB9CiAKLSAgICBBdG9taWNTdHJpbmcgdG9B
dG9taWNTdHJpbmcoKSBjb25zdAorICAgIFdBUk5fVU5VU0VEX1JFVFVSTiBGYWxsaWJsZTxBdG9t
aWNTdHJpbmc+IHRvQXRvbWljU3RyaW5nKCkgY29uc3QKICAgICB7CisgICAgICAgIGlmIChtX2Zh
aWxlZCkKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGYWlsdXJlOjpVbmhhbmRs
ZWRGYWlsdXJlKTsKKwogICAgICAgICBpZiAoIW1fbGVuZ3RoKQogICAgICAgICAgICAgcmV0dXJu
IGVtcHR5QXRvbSgpOwogCiAgICAgICAgIC8vIElmIHRoZSBidWZmZXIgaXMgc3VmZmljaWVudGx5
IG92ZXItYWxsb2NhdGVkLCBtYWtlIGEgbmV3IEF0b21pY1N0cmluZyBmcm9tIGEgY29weSBzbyBp
dHMgYnVmZmVyIGlzIG5vdCBzbyBsYXJnZS4KICAgICAgICAgaWYgKGNhblNocmluaygpKSB7CiAg
ICAgICAgICAgICBpZiAoaXM4Qml0KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEF0b21pY1N0
cmluZyhjaGFyYWN0ZXJzOCgpLCBsZW5ndGgoKSk7Ci0gICAgICAgICAgICByZXR1cm4gQXRvbWlj
U3RyaW5nKGNoYXJhY3RlcnMxNigpLCBsZW5ndGgoKSk7ICAgICAgICAgICAgCisgICAgICAgICAg
ICAgICAgcmV0dXJuIEF0b21pY1N0cmluZygqY2hhcmFjdGVyczgoKSwgbGVuZ3RoKCkpOworICAg
ICAgICAgICAgcmV0dXJuIEF0b21pY1N0cmluZygqY2hhcmFjdGVyczE2KCksIGxlbmd0aCgpKTsg
ICAgICAgICAgICAKICAgICAgICAgfQogCiAgICAgICAgIGlmICghbV9zdHJpbmcuaXNOdWxsKCkp
CkBAIC0yMzAsMjkgKzI0OSwzNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzRW1wdHkoKSBjb25z
dCB7IHJldHVybiAhbV9sZW5ndGg7IH0KIAotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHJl
c2VydmVDYXBhY2l0eSh1bnNpZ25lZCBuZXdDYXBhY2l0eSk7CisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIEZhbGxpYmxlPD4gcmVzZXJ2ZUNhcGFjaXR5KHVuc2lnbmVkIG5ld0NhcGFjaXR5KTsKIAog
ICAgIHVuc2lnbmVkIGNhcGFjaXR5KCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX2J1
ZmZlciA/IG1fYnVmZmVyLT5sZW5ndGgoKSA6IG1fbGVuZ3RoOwogICAgIH0KIAotICAgIFdURl9F
WFBPUlRfUFJJVkFURSB2b2lkIHJlc2l6ZSh1bnNpZ25lZCBuZXdTaXplKTsKKyAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgRmFsbGlibGU8PiByZXNpemUodW5zaWduZWQgbmV3U2l6ZSk7CiAKICAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBjYW5TaHJpbmsoKSBjb25zdDsKIAotICAgIFdURl9FWFBP
UlRfUFJJVkFURSB2b2lkIHNocmlua1RvRml0KCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZh
bGxpYmxlPD4gc2hyaW5rVG9GaXQoKTsKIAotICAgIFVDaGFyIG9wZXJhdG9yW10odW5zaWduZWQg
aSkgY29uc3QKKyAgICBib29sIGlzOEJpdCgpIGNvbnN0IHsgcmV0dXJuIG1faXM4Qml0OyB9CisK
KyAgICBib29sIGZhaWxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZmFpbGVkOyB9CisKKyAgICBGYWxs
aWJsZTxVQ2hhcj4gb3BlcmF0b3JbXSh1bnNpZ25lZCBpKSBjb25zdAogICAgIHsKKyAgICAgICAg
aWYgKG1fZmFpbGVkKQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZhaWx1cmU6
OlVuaGFuZGxlZEZhaWx1cmUpOwogICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNB
VElPTihpIDwgbV9sZW5ndGgpOwogICAgICAgICBpZiAobV9pczhCaXQpCi0gICAgICAgICAgICBy
ZXR1cm4gY2hhcmFjdGVyczgoKVtpXTsKLSAgICAgICAgcmV0dXJuIGNoYXJhY3RlcnMxNigpW2ld
OworICAgICAgICAgICAgcmV0dXJuICgqY2hhcmFjdGVyczgoKSlbaV07CisgICAgICAgIHJldHVy
biAoKmNoYXJhY3RlcnMxNigpKVtpXTsKICAgICB9CiAKLSAgICBjb25zdCBMQ2hhciogY2hhcmFj
dGVyczgoKSBjb25zdAorICAgIEZhbGxpYmxlPGNvbnN0IExDaGFyKj4gY2hhcmFjdGVyczgoKSBj
b25zdAogICAgIHsKKyAgICAgICAgaWYgKG1fZmFpbGVkKQorICAgICAgICAgICAgcmV0dXJuIG1h
a2VVbmV4cGVjdGVkKEZhaWx1cmU6OlVuaGFuZGxlZEZhaWx1cmUpOwogICAgICAgICBBU1NFUlQo
bV9pczhCaXQpOwogICAgICAgICBpZiAoIW1fbGVuZ3RoKQogICAgICAgICAgICAgcmV0dXJuIDA7
CkBAIC0yNjIsOCArMjg5LDEwIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fYnVmZmVyLT5j
aGFyYWN0ZXJzOCgpOwogICAgIH0KIAotICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzMTYoKSBj
b25zdAorICAgIEZhbGxpYmxlPGNvbnN0IFVDaGFyKj4gY2hhcmFjdGVyczE2KCkgY29uc3QKICAg
ICB7CisgICAgICAgIGlmIChtX2ZhaWxlZCkKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBl
Y3RlZChGYWlsdXJlOjpVbmhhbmRsZWRGYWlsdXJlKTsKICAgICAgICAgQVNTRVJUKCFtX2lzOEJp
dCk7CiAgICAgICAgIGlmICghbV9sZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4gMDsKQEAgLTI3
MiwxNiArMzAxLDE1IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKG1fYnVmZmVyKTsKICAgICAg
ICAgcmV0dXJuIG1fYnVmZmVyLT5jaGFyYWN0ZXJzMTYoKTsKICAgICB9Ci0gICAgCi0gICAgYm9v
bCBpczhCaXQoKSBjb25zdCB7IHJldHVybiBtX2lzOEJpdDsgfQogCiAgICAgdm9pZCBjbGVhcigp
CiAgICAgewogICAgICAgICBtX2xlbmd0aCA9IDA7CiAgICAgICAgIG1fc3RyaW5nID0gU3RyaW5n
KCk7CiAgICAgICAgIG1fYnVmZmVyID0gbnVsbHB0cjsKLSAgICAgICAgbV9idWZmZXJDaGFyYWN0
ZXJzOCA9IDA7CiAgICAgICAgIG1faXM4Qml0ID0gdHJ1ZTsKKyAgICAgICAgbV9mYWlsZWQgPSBm
YWxzZTsKKyAgICAgICAgbV9idWZmZXJDaGFyYWN0ZXJzOCA9IDA7CiAgICAgfQogCiAgICAgdm9p
ZCBzd2FwKFN0cmluZ0J1aWxkZXImIHN0cmluZ0J1aWxkZXIpCkBAIC0yOTAsMjggKzMxOCwzMiBA
QCBwdWJsaWM6CiAgICAgICAgIG1fc3RyaW5nLnN3YXAoc3RyaW5nQnVpbGRlci5tX3N0cmluZyk7
CiAgICAgICAgIG1fYnVmZmVyLnN3YXAoc3RyaW5nQnVpbGRlci5tX2J1ZmZlcik7CiAgICAgICAg
IHN0ZDo6c3dhcChtX2lzOEJpdCwgc3RyaW5nQnVpbGRlci5tX2lzOEJpdCk7CisgICAgICAgIHN0
ZDo6c3dhcChtX2ZhaWxlZCwgc3RyaW5nQnVpbGRlci5tX2ZhaWxlZCk7CiAgICAgICAgIHN0ZDo6
c3dhcChtX2J1ZmZlckNoYXJhY3RlcnM4LCBzdHJpbmdCdWlsZGVyLm1fYnVmZmVyQ2hhcmFjdGVy
czgpOwogICAgICAgICBBU1NFUlQoIW1fYnVmZmVyIHx8IG1fYnVmZmVyLT5sZW5ndGgoKSA+PSBt
X2xlbmd0aCk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIHZvaWQgYWxsb2NhdGVCdWZmZXIoY29u
c3QgTENoYXIqIGN1cnJlbnRDaGFyYWN0ZXJzLCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCk7Ci0g
ICAgdm9pZCBhbGxvY2F0ZUJ1ZmZlcihjb25zdCBVQ2hhciogY3VycmVudENoYXJhY3RlcnMsIHVu
c2lnbmVkIHJlcXVpcmVkTGVuZ3RoKTsKLSAgICB2b2lkIGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0
KGNvbnN0IExDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGgp
OworICAgIEZhbGxpYmxlPD4gYWxsb2NhdGVCdWZmZXIoY29uc3QgTENoYXIqIGN1cnJlbnRDaGFy
YWN0ZXJzLCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCk7CisgICAgRmFsbGlibGU8PiBhbGxvY2F0
ZUJ1ZmZlcihjb25zdCBVQ2hhciogY3VycmVudENoYXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVk
TGVuZ3RoKTsKKyAgICBGYWxsaWJsZTw+IGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KGNvbnN0IExD
aGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpOwogICAgIHRl
bXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KLSAgICB2b2lkIHJlYWxsb2NhdGVCdWZmZXIodW5z
aWduZWQgcmVxdWlyZWRMZW5ndGgpOworICAgIEZhbGxpYmxlPD4gcmVhbGxvY2F0ZUJ1ZmZlcih1
bnNpZ25lZCByZXF1aXJlZExlbmd0aCk7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBl
PgotICAgIEFMV0FZU19JTkxJTkUgQ2hhclR5cGUqIGFwcGVuZFVuaW5pdGlhbGl6ZWQodW5zaWdu
ZWQgbGVuZ3RoKTsKKyAgICBBTFdBWVNfSU5MSU5FIEZhbGxpYmxlPENoYXJUeXBlKj4gYXBwZW5k
VW5pbml0aWFsaXplZCh1bnNpZ25lZCBsZW5ndGgpOwogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBD
aGFyVHlwZT4KLSAgICBDaGFyVHlwZSogYXBwZW5kVW5pbml0aWFsaXplZFNsb3codW5zaWduZWQg
bGVuZ3RoKTsKKyAgICBGYWxsaWJsZTxDaGFyVHlwZSo+IGFwcGVuZFVuaW5pdGlhbGl6ZWRTbG93
KHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgotICAg
IEFMV0FZU19JTkxJTkUgQ2hhclR5cGUgKiBnZXRCdWZmZXJDaGFyYWN0ZXJzKCk7CisgICAgQUxX
QVlTX0lOTElORSBDaGFyVHlwZSogZ2V0QnVmZmVyQ2hhcmFjdGVycygpOwogICAgIFdURl9FWFBP
UlRfUFJJVkFURSB2b2lkIHJlaWZ5U3RyaW5nKCkgY29uc3Q7CisgICAgV0FSTl9VTlVTRURfUkVU
VVJOIFVuZXhwZWN0ZWQ8RmFpbHVyZT4gd291bGRPdmVyZmxvdygpOworICAgIFdBUk5fVU5VU0VE
X1JFVFVSTiBVbmV4cGVjdGVkPEZhaWx1cmU+IG91dE9mTWVtb3J5KCk7CiAKLSAgICB1bnNpZ25l
ZCBtX2xlbmd0aDsKKyAgICB1bnNpZ25lZCBtX2xlbmd0aCB7IDAgfTsKICAgICBtdXRhYmxlIFN0
cmluZyBtX3N0cmluZzsKICAgICBSZWZQdHI8U3RyaW5nSW1wbD4gbV9idWZmZXI7Ci0gICAgYm9v
bCBtX2lzOEJpdDsKKyAgICBib29sIG1faXM4Qml0IHsgdHJ1ZSB9OworICAgIGJvb2wgbV9mYWls
ZWQgeyBmYWxzZSB9OwogICAgIHVuaW9uIHsKICAgICAgICAgTENoYXIqIG1fYnVmZmVyQ2hhcmFj
dGVyczg7CiAgICAgICAgIFVDaGFyKiBtX2J1ZmZlckNoYXJhY3RlcnMxNjsKQEAgLTMzMywyMCAr
MzY1LDQ4IEBAIEFMV0FZU19JTkxJTkUgVUNoYXIqIFN0cmluZ0J1aWxkZXI6OmdldEJ1ZmZlckNo
YXJhY3RlcnM8VUNoYXI+KCkKIH0gICAgCiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4K
LWJvb2wgZXF1YWwoY29uc3QgU3RyaW5nQnVpbGRlciYgcywgY29uc3QgQ2hhclR5cGUqIGJ1ZmZl
ciwgdW5zaWduZWQgbGVuZ3RoKQoraW5saW5lIGJvb2wgZXF1YWwoY29uc3QgU3RyaW5nQnVpbGRl
ciYgcywgY29uc3QgQ2hhclR5cGUqIGJ1ZmZlciwgdW5zaWduZWQgbGVuZ3RoKQogeworICAgIGlm
IChzLmZhaWxlZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAocy5sZW5ndGgo
KSAhPSBsZW5ndGgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChzLmlzOEJpdCgp
KQotICAgICAgICByZXR1cm4gZXF1YWwocy5jaGFyYWN0ZXJzOCgpLCBidWZmZXIsIGxlbmd0aCk7
CisgICAgICAgIHJldHVybiBlcXVhbCgqcy5jaGFyYWN0ZXJzOCgpLCBidWZmZXIsIGxlbmd0aCk7
CiAKLSAgICByZXR1cm4gZXF1YWwocy5jaGFyYWN0ZXJzMTYoKSwgYnVmZmVyLCBsZW5ndGgpOwor
ICAgIHJldHVybiBlcXVhbCgqcy5jaGFyYWN0ZXJzMTYoKSwgYnVmZmVyLCBsZW5ndGgpOworfQor
CitpbmxpbmUgYm9vbCBlcXVhbChjb25zdCBTdHJpbmdCdWlsZGVyJiBhLCBjb25zdCBTdHJpbmdC
dWlsZGVyJiBiKQoreworICAgIGlmIChhLmZhaWxlZCgpIHx8IGIuZmFpbGVkKCkpCisgICAgICAg
IHJldHVybiBhLmZhaWxlZCgpID09IGIuZmFpbGVkKCk7CisKKyAgICBpZiAoYS5sZW5ndGgoKSAh
PSBiLmxlbmd0aCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWEubGVuZ3Ro
KCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKGEuaXM4Qml0KCkpIHsKKyAgICAg
ICAgaWYgKGIuaXM4Qml0KCkpCisgICAgICAgICAgICByZXR1cm4gZXF1YWwoKmEuY2hhcmFjdGVy
czgoKSwgKmIuY2hhcmFjdGVyczgoKSwgYS5sZW5ndGgoKSk7CisgICAgICAgIHJldHVybiBlcXVh
bCgqYS5jaGFyYWN0ZXJzOCgpLCAqYi5jaGFyYWN0ZXJzMTYoKSwgYS5sZW5ndGgoKSk7CisgICAg
fQorCisgICAgaWYgKGIuaXM4Qml0KCkpCisgICAgICAgIHJldHVybiBlcXVhbCgqYS5jaGFyYWN0
ZXJzMTYoKSwgKmIuY2hhcmFjdGVyczgoKSwgYS5sZW5ndGgoKSk7CisgICAgcmV0dXJuIGVxdWFs
KCphLmNoYXJhY3RlcnMxNigpLCAqYi5jaGFyYWN0ZXJzMTYoKSwgYS5sZW5ndGgoKSk7CiB9CiAK
IHRlbXBsYXRlIDx0eXBlbmFtZSBTdHJpbmdUeXBlPgotYm9vbCBlcXVhbChjb25zdCBTdHJpbmdC
dWlsZGVyJiBhLCBjb25zdCBTdHJpbmdUeXBlJiBiKQoraW5saW5lIGJvb2wgZXF1YWwoY29uc3Qg
U3RyaW5nQnVpbGRlciYgYSwgY29uc3QgU3RyaW5nVHlwZSYgYikKIHsKKyAgICBpZiAoYS5mYWls
ZWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKGEubGVuZ3RoKCkgIT0gYi5s
ZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0zNTUsMTMgKzQxNSwxMyBAQCBi
b29sIGVxdWFsKGNvbnN0IFN0cmluZ0J1aWxkZXImIGEsIGNvbnN0IFN0cmluZ1R5cGUmIGIpCiAK
ICAgICBpZiAoYS5pczhCaXQoKSkgewogICAgICAgICBpZiAoYi5pczhCaXQoKSkKLSAgICAgICAg
ICAgIHJldHVybiBlcXVhbChhLmNoYXJhY3RlcnM4KCksIGIuY2hhcmFjdGVyczgoKSwgYS5sZW5n
dGgoKSk7Ci0gICAgICAgIHJldHVybiBlcXVhbChhLmNoYXJhY3RlcnM4KCksIGIuY2hhcmFjdGVy
czE2KCksIGEubGVuZ3RoKCkpOworICAgICAgICAgICAgcmV0dXJuIGVxdWFsKCphLmNoYXJhY3Rl
cnM4KCksIGIuY2hhcmFjdGVyczgoKSwgYS5sZW5ndGgoKSk7CisgICAgICAgIHJldHVybiBlcXVh
bCgqYS5jaGFyYWN0ZXJzOCgpLCBiLmNoYXJhY3RlcnMxNigpLCBhLmxlbmd0aCgpKTsKICAgICB9
CiAKICAgICBpZiAoYi5pczhCaXQoKSkKLSAgICAgICAgcmV0dXJuIGVxdWFsKGEuY2hhcmFjdGVy
czE2KCksIGIuY2hhcmFjdGVyczgoKSwgYS5sZW5ndGgoKSk7Ci0gICAgcmV0dXJuIGVxdWFsKGEu
Y2hhcmFjdGVyczE2KCksIGIuY2hhcmFjdGVyczE2KCksIGEubGVuZ3RoKCkpOworICAgICAgICBy
ZXR1cm4gZXF1YWwoKmEuY2hhcmFjdGVyczE2KCksIGIuY2hhcmFjdGVyczgoKSwgYS5sZW5ndGgo
KSk7CisgICAgcmV0dXJuIGVxdWFsKCphLmNoYXJhY3RlcnMxNigpLCBiLmNoYXJhY3RlcnMxNigp
LCBhLmxlbmd0aCgpKTsKIH0KIAogaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTdHJpbmdC
dWlsZGVyJiBhLCBjb25zdCBTdHJpbmdCdWlsZGVyJiBiKSB7IHJldHVybiBlcXVhbChhLCBiKTsg
fQpAQCAtMzcyLDkgKzQzMiwxMiBAQCBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFN0cmlu
ZyYgYSwgY29uc3QgU3RyaW5nQnVpbGRlciYgYikgeyByZXR1cm4gZXF1YWwoYgogaW5saW5lIGJv
b2wgb3BlcmF0b3IhPShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0cmluZ0J1aWxkZXImIGIpIHsg
cmV0dXJuICFlcXVhbChiLCBhKTsgfQogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBJbnRlZ2VyVG9TdHJp
bmdDb252ZXJzaW9uVHJhaXQ8U3RyaW5nQnVpbGRlcj4gewotICAgIHVzaW5nIFJldHVyblR5cGUg
PSB2b2lkOworICAgIHVzaW5nIFJldHVyblR5cGUgPSBTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+
OwogICAgIHVzaW5nIEFkZGl0aW9uYWxBcmd1bWVudFR5cGUgPSBTdHJpbmdCdWlsZGVyOwotICAg
IHN0YXRpYyB2b2lkIGZsdXNoKExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIFN0
cmluZ0J1aWxkZXIqIHN0cmluZ0J1aWxkZXIpIHsgc3RyaW5nQnVpbGRlci0+YXBwZW5kKGNoYXJh
Y3RlcnMsIGxlbmd0aCk7IH0KKyAgICBzdGF0aWMgUmV0dXJuVHlwZSBmbHVzaChMQ2hhciogY2hh
cmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBTdHJpbmdCdWlsZGVyKiBzdHJpbmdCdWlsZGVyKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHN0cmluZ0J1aWxkZXItPmFwcGVuZChjaGFyYWN0ZXJzLCBs
ZW5ndGgpOworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVySlNPTi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L1N0cmluZ0J1aWxkZXJKU09OLmNwcAppbmRleCAyMjYyOTVlLi43MGRiYjg2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXJKU09OLmNwcAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXJKU09OLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTMsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTcgWXVzdWtlIFN1enVraSA8dXRhdGFu
ZS50ZWFAZ21haWwuY29tPi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykg
MjAxNyBNb3ppbGxhIEZvdW5kYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC03NCw3ICs3
NCw3IEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIHZvaWQgYXBwZW5kUXVvdGVkSlNPTlN0cmluZ0lu
dGVybmFsKE91dHB1dENoYXJhY3RlclR5cGUqJiBvCiAgICAgfQogfQogCi1ib29sIFN0cmluZ0J1
aWxkZXI6OmFwcGVuZFF1b3RlZEpTT05TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCitTdHJp
bmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZFF1b3RlZEpTT05TdHJp
bmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7CiAgICAgLy8gTWFrZSBzdXJlIHdlIGhhdmUgZW5v
dWdoIGJ1ZmZlciBzcGFjZSB0byBhcHBlbmQgdGhpcyBzdHJpbmcgd2l0aG91dCBoYXZpbmcKICAg
ICAvLyB0byB3b3JyeSBhYm91dCByZWFsbG9jYXRpbmcgaW4gdGhlIG1pZGRsZS4KQEAgLTg1LDIw
ICs4NSwyMSBAQCBib29sIFN0cmluZ0J1aWxkZXI6OmFwcGVuZFF1b3RlZEpTT05TdHJpbmcoY29u
c3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgbWF4aW11bUNhcGFjaXR5UmVxdWlyZWQgKz0gMiArIHN0
cmluZ0xlbmd0aCAqIDY7CiAgICAgdW5zaWduZWQgYWxsb2NhdGlvblNpemU7CiAgICAgaWYgKENo
ZWNrZWRTdGF0ZTo6RGlkT3ZlcmZsb3cgPT0gbWF4aW11bUNhcGFjaXR5UmVxdWlyZWQuc2FmZUdl
dChhbGxvY2F0aW9uU2l6ZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJu
IHdvdWxkT3ZlcmZsb3coKTsKICAgICAvLyBUaGlzIG1heCgpIGlzIGhlcmUgdG8gYWxsb3cgdXMg
dG8gYWxsb2NhdGUgc2l6ZXMgYmV0d2VlbiB0aGUgcmFuZ2UgWzJeMzEsIDJeMzIgLSAyXSBiZWNh
dXNlIHJvdW5kVXBUb1Bvd2VyT2ZUd28oMTw8MzEgKyBzb21lIGludCBzbWFsbGVyIHRoYW4gMTw8
MzEpID09IDAuCiAgICAgLy8gRklYTUU6IHJvdW5kVXBUb1Bvd2VyT2ZUd28gc2hvdWxkIHRha2Ug
Q2hlY2tlZDx1bnNpZ25lZD4gYW5kIGFib3J0IGlmIGl0IGZhaWxzIHRvIHJvdW5kIHVwLgogICAg
IC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwODYKICAgICBh
bGxvY2F0aW9uU2l6ZSA9IHN0ZDo6bWF4KGFsbG9jYXRpb25TaXplLCByb3VuZFVwVG9Qb3dlck9m
VHdvKGFsbG9jYXRpb25TaXplKSk7CiAKLSAgICAvLyBBbGxvY2F0aW5nIHRoaXMgbXVjaCB3aWxs
IGRlZmluaXRlbHkgZmFpbC4KLSAgICBpZiAoYWxsb2NhdGlvblNpemUgPj0gMHg4MDAwMDAwMCkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKGlzOEJpdCgpICYmICFzdHJpbmcuaXM4
Qml0KCkpCi0gICAgICAgIGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KG1fYnVmZmVyQ2hhcmFjdGVy
czgsIGFsbG9jYXRpb25TaXplKTsKLSAgICBlbHNlCi0gICAgICAgIHJlc2VydmVDYXBhY2l0eShh
bGxvY2F0aW9uU2l6ZSk7CisgICAgaWYgKGlzOEJpdCgpICYmICFzdHJpbmcuaXM4Qml0KCkpIHsK
KyAgICAgICAgYXV0byBhbGxvY2F0ZWQgPSBhbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChtX2J1ZmZl
ckNoYXJhY3RlcnM4LCBhbGxvY2F0aW9uU2l6ZSk7CisgICAgICAgIGlmICghYWxsb2NhdGVkKQor
ICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRlZDsKKyAgICB9IGVsc2UgeworICAgICAgICBhdXRv
IHJlc2VydmVkID0gcmVzZXJ2ZUNhcGFjaXR5KGFsbG9jYXRpb25TaXplKTsKKyAgICAgICAgaWYg
KCFyZXNlcnZlZCkKKyAgICAgICAgICAgIHJldHVybiByZXNlcnZlZDsKKyAgICB9CiAgICAgQVNT
RVJUKG1fYnVmZmVyLT5sZW5ndGgoKSA+PSBhbGxvY2F0aW9uU2l6ZSk7CiAKICAgICBpZiAoaXM4
Qml0KCkpIHsKQEAgLTExOSw3ICsxMjAsNyBAQCBib29sIFN0cmluZ0J1aWxkZXI6OmFwcGVuZFF1
b3RlZEpTT05TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgICAgIG1fbGVuZ3RoID0g
b3V0cHV0IC0gbV9idWZmZXJDaGFyYWN0ZXJzMTY7CiAgICAgfQogICAgIEFTU0VSVChtX2J1ZmZl
ci0+bGVuZ3RoKCkgPj0gbV9sZW5ndGgpOwotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiB7
IH07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dGV4dC9TdHJpbmdJbXBsLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAK
aW5kZXggNzc0ODc2Yi4uZWVkMDlhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9T
dHJpbmdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCkBA
IC0yMDYsMjIgKzIwNiwyNCBAQCBSZWY8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6Y3JlYXRlVW5p
bml0aWFsaXplZCh1bnNpZ25lZCBsZW5ndGgsIFVDaGFyKiYgZGF0YSkKICAgICByZXR1cm4gY3Jl
YXRlVW5pbml0aWFsaXplZEludGVybmFsKGxlbmd0aCwgZGF0YSk7CiB9CiAKLXRlbXBsYXRlPHR5
cGVuYW1lIENoYXJhY3RlclR5cGU+IGlubGluZSBSZWY8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6
cmVhbGxvY2F0ZUludGVybmFsKFJlZjxTdHJpbmdJbXBsPiYmIG9yaWdpbmFsU3RyaW5nLCB1bnNp
Z25lZCBsZW5ndGgsIENoYXJhY3RlclR5cGUqJiBkYXRhKQordGVtcGxhdGU8dHlwZW5hbWUgQ2hh
cmFjdGVyVHlwZT4gaW5saW5lIFJlZlB0cjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpyZWFsbG9j
YXRlSW50ZXJuYWwoUmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2lnbmVkIGxl
bmd0aCwgQ2hhcmFjdGVyVHlwZSomIGRhdGEpCiB7CiAgICAgQVNTRVJUKG9yaWdpbmFsU3RyaW5n
LT5oYXNPbmVSZWYoKSk7CiAgICAgQVNTRVJUKG9yaWdpbmFsU3RyaW5nLT5idWZmZXJPd25lcnNo
aXAoKSA9PSBCdWZmZXJJbnRlcm5hbCk7CiAKICAgICBpZiAoIWxlbmd0aCkgewogICAgICAgICBk
YXRhID0gMDsKLSAgICAgICAgcmV0dXJuICplbXB0eSgpOworICAgICAgICByZXR1cm4gZW1wdHko
KTsKICAgICB9CiAKICAgICAvLyBTYW1lIGFzIGNyZWF0ZVVuaW5pdGlhbGl6ZWQoKSBleGNlcHQg
aGVyZSB3ZSB1c2Ugc3RyaW5nUmVhbGxvYy4KLSAgICBpZiAobGVuZ3RoID4gKChzdGQ6Om51bWVy
aWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkgLSBzaXplb2YoU3RyaW5nSW1wbCkpIC8gc2l6ZW9m
KENoYXJhY3RlclR5cGUpKSkKLSAgICAgICAgQ1JBU0goKTsKKyAgICBpZiAoVU5MSUtFTFkobGVu
Z3RoID4gKChzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkgLSBzaXplb2YoU3Ry
aW5nSW1wbCkpIC8gc2l6ZW9mKENoYXJhY3RlclR5cGUpKSkpCisgICAgICAgIHJldHVybiBudWxs
cHRyOwogCiAgICAgb3JpZ2luYWxTdHJpbmctPn5TdHJpbmdJbXBsKCk7CiAgICAgYXV0byogc3Ry
aW5nID0gc3RhdGljX2Nhc3Q8U3RyaW5nSW1wbCo+KHN0cmluZ1JlYWxsb2MoJm9yaWdpbmFsU3Ry
aW5nLmxlYWtSZWYoKSwgYWxsb2NhdGlvblNpemU8Q2hhcmFjdGVyVHlwZT4obGVuZ3RoKSkpOwor
ICAgIGlmIChVTkxJS0VMWSghc3RyaW5nKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAg
ICBkYXRhID0gc3RyaW5nLT50YWlsUG9pbnRlcjxDaGFyYWN0ZXJUeXBlPigpOwogICAgIHJldHVy
biBjb25zdHJ1Y3RJbnRlcm5hbDxDaGFyYWN0ZXJUeXBlPigqc3RyaW5nLCBsZW5ndGgpOwpAQCAt
MjMwLDEzICsyMzIsMzMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gaW5saW5l
IFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpyZWFsbG9jYXRlSW4KIFJlZjxTdHJpbmdJbXBs
PiBTdHJpbmdJbXBsOjpyZWFsbG9jYXRlKFJlZjxTdHJpbmdJbXBsPiYmIG9yaWdpbmFsU3RyaW5n
LCB1bnNpZ25lZCBsZW5ndGgsIExDaGFyKiYgZGF0YSkKIHsKICAgICBBU1NFUlQob3JpZ2luYWxT
dHJpbmctPmlzOEJpdCgpKTsKLSAgICByZXR1cm4gcmVhbGxvY2F0ZUludGVybmFsKFdURk1vdmUo
b3JpZ2luYWxTdHJpbmcpLCBsZW5ndGgsIGRhdGEpOworICAgIGlmIChhdXRvIHJlYWxsb2NhdGVk
ID0gcmVhbGxvY2F0ZUludGVybmFsKFdURk1vdmUob3JpZ2luYWxTdHJpbmcpLCBsZW5ndGgsIGRh
dGEpKQorICAgICAgICByZXR1cm4gKnJlYWxsb2NhdGVkOworICAgIENSQVNIKCk7CiB9CiAKIFJl
ZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpyZWFsbG9jYXRlKFJlZjxTdHJpbmdJbXBsPiYmIG9y
aWdpbmFsU3RyaW5nLCB1bnNpZ25lZCBsZW5ndGgsIFVDaGFyKiYgZGF0YSkKIHsKICAgICBBU1NF
UlQoIW9yaWdpbmFsU3RyaW5nLT5pczhCaXQoKSk7Ci0gICAgcmV0dXJuIHJlYWxsb2NhdGVJbnRl
cm5hbChXVEZNb3ZlKG9yaWdpbmFsU3RyaW5nKSwgbGVuZ3RoLCBkYXRhKTsKKyAgICBpZiAoYXV0
byByZWFsbG9jYXRlZCA9IHJlYWxsb2NhdGVJbnRlcm5hbChXVEZNb3ZlKG9yaWdpbmFsU3RyaW5n
KSwgbGVuZ3RoLCBkYXRhKSkKKyAgICAgICAgcmV0dXJuICpyZWFsbG9jYXRlZDsKKyAgICBDUkFT
SCgpOworfQorCitSZWZQdHI8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6dHJ5UmVhbGxvY2F0ZShS
ZWY8U3RyaW5nSW1wbD4mJiBvcmlnaW5hbFN0cmluZywgdW5zaWduZWQgbGVuZ3RoLCBMQ2hhciom
IGRhdGEpCit7CisgICAgQVNTRVJUKG9yaWdpbmFsU3RyaW5nLT5pczhCaXQoKSk7CisgICAgaWYg
KGF1dG8gcmVhbGxvY2F0ZWQgPSByZWFsbG9jYXRlSW50ZXJuYWwoV1RGTW92ZShvcmlnaW5hbFN0
cmluZyksIGxlbmd0aCwgZGF0YSkpCisgICAgICAgIHJldHVybiByZWFsbG9jYXRlZC5nZXQoKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6
OnRyeVJlYWxsb2NhdGUoUmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2lnbmVk
IGxlbmd0aCwgVUNoYXIqJiBkYXRhKQoreworICAgIEFTU0VSVCghb3JpZ2luYWxTdHJpbmctPmlz
OEJpdCgpKTsKKyAgICBpZiAoYXV0byByZWFsbG9jYXRlZCA9IHJlYWxsb2NhdGVJbnRlcm5hbChX
VEZNb3ZlKG9yaWdpbmFsU3RyaW5nKSwgbGVuZ3RoLCBkYXRhKSkKKyAgICAgICAgcmV0dXJuIHJl
YWxsb2NhdGVkLmdldCgpOworICAgIHJldHVybiBudWxscHRyOwogfQogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBDaGFyYWN0ZXJUeXBlPiBpbmxpbmUgUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OmNy
ZWF0ZUludGVybmFsKGNvbnN0IENoYXJhY3RlclR5cGUqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxl
bmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oIGIvU291
cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmgKaW5kZXggNjE2ZGEyNS4uOGRmOWUzNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9TdHJpbmdJbXBsLmgKQEAgLTIyOSw2ICsyMjksNyBAQCBwdWJsaWM6CiAgICAg
V1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8U3RyaW5nSW1wbD4gY3JlYXRlKGNvbnN0IExD
aGFyKik7CiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0ZShj
b25zdCBjaGFyKiBzdHJpbmcpIHsgcmV0dXJuIGNyZWF0ZShyZWludGVycHJldF9jYXN0PGNvbnN0
IExDaGFyKj4oc3RyaW5nKSk7IH0KIAorICAgIHN0YXRpYyBSZWZQdHI8U3RyaW5nSW1wbD4gdHJ5
Q3JlYXRlU3Vic3RyaW5nU2hhcmluZ0ltcGwoU3RyaW5nSW1wbCYsIHVuc2lnbmVkIG9mZnNldCwg
dW5zaWduZWQgbGVuZ3RoKTsKICAgICBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0ZVN1YnN0
cmluZ1NoYXJpbmdJbXBsKFN0cmluZ0ltcGwmLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxl
bmd0aCk7CiAKICAgICB0ZW1wbGF0ZTx1bnNpZ25lZCBjaGFyYWN0ZXJDb3VudD4gc3RhdGljIFJl
ZjxTdHJpbmdJbXBsPiBjcmVhdGVGcm9tTGl0ZXJhbChjb25zdCBjaGFyICgmKVtjaGFyYWN0ZXJD
b3VudF0pOwpAQCAtMjQ4LDYgKzI0OSw4IEBAIHB1YmxpYzoKICAgICAvLyB0aGUgb3JpZ2luYWxT
dHJpbmcgY2FuJ3QgYmUgdXNlZCBhZnRlciB0aGlzIGZ1bmN0aW9uLgogICAgIHN0YXRpYyBSZWY8
U3RyaW5nSW1wbD4gcmVhbGxvY2F0ZShSZWY8U3RyaW5nSW1wbD4mJiBvcmlnaW5hbFN0cmluZywg
dW5zaWduZWQgbGVuZ3RoLCBMQ2hhciomIGRhdGEpOwogICAgIHN0YXRpYyBSZWY8U3RyaW5nSW1w
bD4gcmVhbGxvY2F0ZShSZWY8U3RyaW5nSW1wbD4mJiBvcmlnaW5hbFN0cmluZywgdW5zaWduZWQg
bGVuZ3RoLCBVQ2hhciomIGRhdGEpOworICAgIHN0YXRpYyBSZWZQdHI8U3RyaW5nSW1wbD4gdHJ5
UmVhbGxvY2F0ZShSZWY8U3RyaW5nSW1wbD4mJiBvcmlnaW5hbFN0cmluZywgdW5zaWduZWQgbGVu
Z3RoLCBMQ2hhciomIGRhdGEpOworICAgIHN0YXRpYyBSZWZQdHI8U3RyaW5nSW1wbD4gdHJ5UmVh
bGxvY2F0ZShSZWY8U3RyaW5nSW1wbD4mJiBvcmlnaW5hbFN0cmluZywgdW5zaWduZWQgbGVuZ3Ro
LCBVQ2hhciomIGRhdGEpOwogCiAgICAgc3RhdGljIHVuc2lnbmVkIGZsYWdzT2Zmc2V0KCkgeyBy
ZXR1cm4gT0JKRUNUX09GRlNFVE9GKFN0cmluZ0ltcGwsIG1faGFzaEFuZEZsYWdzKTsgfQogICAg
IHN0YXRpYyB1bnNpZ25lZCBmbGFnSXM4Qml0KCkgeyByZXR1cm4gc19oYXNoRmxhZzhCaXRCdWZm
ZXI7IH0KQEAgLTUwMyw3ICs1MDYsNyBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IENoYXJhY3RlclR5cGU+IHN0YXRpYyBSZWY8U3RyaW5nSW1wbD4gY29uc3RydWN0SW50ZXJuYWwo
U3RyaW5nSW1wbCYsIHVuc2lnbmVkKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJU
eXBlPiBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0ZVVuaW5pdGlhbGl6ZWRJbnRlcm5hbCh1
bnNpZ25lZCwgQ2hhcmFjdGVyVHlwZSomKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0
ZXJUeXBlPiBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0ZVVuaW5pdGlhbGl6ZWRJbnRlcm5h
bE5vbkVtcHR5KHVuc2lnbmVkLCBDaGFyYWN0ZXJUeXBlKiYpOwotICAgIHRlbXBsYXRlPHR5cGVu
YW1lIENoYXJhY3RlclR5cGU+IHN0YXRpYyBSZWY8U3RyaW5nSW1wbD4gcmVhbGxvY2F0ZUludGVy
bmFsKFJlZjxTdHJpbmdJbXBsPiYmLCB1bnNpZ25lZCwgQ2hhcmFjdGVyVHlwZSomKTsKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBzdGF0aWMgUmVmUHRyPFN0cmluZ0ltcGw+
IHJlYWxsb2NhdGVJbnRlcm5hbChSZWY8U3RyaW5nSW1wbD4mJiwgdW5zaWduZWQsIENoYXJhY3Rl
clR5cGUqJik7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gc3RhdGljIFJl
ZjxTdHJpbmdJbXBsPiBjcmVhdGVJbnRlcm5hbChjb25zdCBDaGFyYWN0ZXJUeXBlKiwgdW5zaWdu
ZWQpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBORVZFUl9JTkxJTkUgdW5zaWduZWQgaGFzaFNs
b3dDYXNlKCkgY29uc3Q7CiAKQEAgLTkxNCwyMiArOTE3LDMxIEBAIHRlbXBsYXRlPHNpemVfdCBp
bmxpbmVDYXBhY2l0eT4gaW5saW5lIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdGU4
Qml0SWZQCiAgICAgcmV0dXJuIGNyZWF0ZThCaXRJZlBvc3NpYmxlKHZlY3Rvci5kYXRhKCksIHZl
Y3Rvci5zaXplKCkpOwogfQogCi1BTFdBWVNfSU5MSU5FIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJ
bXBsOjpjcmVhdGVTdWJzdHJpbmdTaGFyaW5nSW1wbChTdHJpbmdJbXBsJiByZXAsIHVuc2lnbmVk
IG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQorQUxXQVlTX0lOTElORSBSZWZQdHI8U3RyaW5nSW1w
bD4gU3RyaW5nSW1wbDo6dHJ5Q3JlYXRlU3Vic3RyaW5nU2hhcmluZ0ltcGwoU3RyaW5nSW1wbCYg
cmVwLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBBU1NFUlQobGVu
Z3RoIDw9IHJlcC5sZW5ndGgoKSk7CiAKICAgICBpZiAoIWxlbmd0aCkKLSAgICAgICAgcmV0dXJu
ICplbXB0eSgpOworICAgICAgICByZXR1cm4gZW1wdHkoKTsKIAogICAgIGF1dG8qIG93bmVyUmVw
ID0gKChyZXAuYnVmZmVyT3duZXJzaGlwKCkgPT0gQnVmZmVyU3Vic3RyaW5nKSA/IHJlcC5zdWJz
dHJpbmdCdWZmZXIoKSA6ICZyZXApOwogCiAgICAgLy8gV2UgYWxsb2NhdGUgYSBidWZmZXIgdGhh
dCBjb250YWlucyBib3RoIHRoZSBTdHJpbmdJbXBsIHN0cnVjdCBhcyB3ZWxsIGFzIHRoZSBwb2lu
dGVyIHRvIHRoZSBvd25lciBzdHJpbmcuCiAgICAgYXV0byogc3RyaW5nSW1wbCA9IHN0YXRpY19j
YXN0PFN0cmluZ0ltcGwqPihzdHJpbmdNYWxsb2MoYWxsb2NhdGlvblNpemU8U3RyaW5nSW1wbCo+
KDEpKSk7CisgICAgaWYgKCFzdHJpbmdJbXBsKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICBpZiAocmVwLmlzOEJpdCgpKQogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyAoTm90TnVs
bCwgc3RyaW5nSW1wbCkgU3RyaW5nSW1wbChyZXAubV9kYXRhOCArIG9mZnNldCwgbGVuZ3RoLCAq
b3duZXJSZXApKTsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyAoTm90TnVsbCwgc3RyaW5nSW1w
bCkgU3RyaW5nSW1wbChyZXAubV9kYXRhMTYgKyBvZmZzZXQsIGxlbmd0aCwgKm93bmVyUmVwKSk7
CiB9CiAKK0FMV0FZU19JTkxJTkUgUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OmNyZWF0ZVN1
YnN0cmluZ1NoYXJpbmdJbXBsKFN0cmluZ0ltcGwmIHJlcCwgdW5zaWduZWQgb2Zmc2V0LCB1bnNp
Z25lZCBsZW5ndGgpCit7CisgICAgaWYgKGF1dG8gY3JlYXRlZCA9IHRyeUNyZWF0ZVN1YnN0cmlu
Z1NoYXJpbmdJbXBsKHJlcCwgb2Zmc2V0LCBsZW5ndGgpKQorICAgICAgICByZXR1cm4gKmNyZWF0
ZWQ7CisgICAgQ1JBU0goKTsKK30KKwogdGVtcGxhdGU8dW5zaWduZWQgY2hhcmFjdGVyQ291bnQ+
IEFMV0FZU19JTkxJTkUgUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRl
cmFsKGNvbnN0IGNoYXIgKCZjaGFyYWN0ZXJzKVtjaGFyYWN0ZXJDb3VudF0pCiB7CiAgICAgQ09N
UElMRV9BU1NFUlQoY2hhcmFjdGVyQ291bnQgPiAxLCBTdHJpbmdJbXBsRnJvbUxpdGVyYWxOb3RF
bXB0eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRTdHJlYW0uY3BwIGIv
U291cmNlL1dURi93dGYvdGV4dC9UZXh0U3RyZWFtLmNwcAppbmRleCBhYWY2MTk0Li5kM2I1MzE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRTdHJlYW0uY3BwCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvVGV4dFN0cmVhbS5jcHAKQEAgLTEzMiw5ICsxMzIsMTEgQEAgVGV4
dFN0cmVhbSYgVGV4dFN0cmVhbTo6b3BlcmF0b3I8PChjb25zdCBGb3JtYXROdW1iZXJSZXNwZWN0
aW5nSW50ZWdlcnMmIG51bWJlclQKIAogU3RyaW5nIFRleHRTdHJlYW06OnJlbGVhc2UoKQogewot
ICAgIFN0cmluZyByZXN1bHQgPSBtX3RleHQudG9TdHJpbmcoKTsKLSAgICBtX3RleHQuY2xlYXIo
KTsKLSAgICByZXR1cm4gcmVzdWx0OworICAgIGlmIChhdXRvIHJlc3VsdCA9IG1fdGV4dC50b1N0
cmluZygpKSB7CisgICAgICAgIG1fdGV4dC5jbGVhcigpOworICAgICAgICByZXR1cm4gKnJlc3Vs
dDsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBUZXh0U3RyZWFtOjpzdGFydEdyb3Vw
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCA1MWQ4YWQwLi41MTNhMDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NTEzIEBACisyMDE4LTA0LTI2ICBKRiBCYXN0aWVuICA8amZiYXN0aWVuQGFwcGxlLmNvbT4KKwor
ICAgICAgICBTdHJpbmdCdWlsZGVyIGlzIGZhbGxpYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUwNDgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdHJpbmdCdWlsZGVyIGNhbiBmYWlsIHdoZW4gYWxs
b2NhdGluZyBtZW1vcnkuIFN0cmluZ0J1aWxkZXIgaXMKKyAgICAgICAgbW9zdGx5IHVzZWQgd2l0
aCB1c2VyIGlucHV0LCB3aGljaCBvZnRlbiBtZWFucyB0aGF0IGp1c3QgY3Jhc2hpbmcKKyAgICAg
ICAgaXNuJ3QgdGhlIHJpZ2h0IG91dGNvbWUuIE91ciBmdXp6ZXJzIG9mdGVuIGVuY291bnRlciBz
dWNoIHRoaW5ncworICAgICAgICBmb3IgSmF2YVNjcmlwdENvcmUsIGFuZCBzbyBmYXIgd2UndmUg
YXBwbGllZCBwb2ludCBzb2x1dGlvbnMuIE5vCisgICAgICAgIG1vcmUhCisKKworICAgICAgICAq
IE1vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudENvbnRhY3RDb2NvYS5tbToKKyAgICAgICAg
KFdlYkNvcmU6OmNvbnZlcnQpOgorICAgICAgICAqIE1vZHVsZXMvZW50cmllc2FwaS9ET01GaWxl
U3lzdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlc29sdmVSZWxhdGl2ZVZpcnR1YWxQYXRo
KToKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmxvZ0Vycm9yKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJL
ZXlEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQktleURhdGE6OmxvZ2dpbmdTdHJpbmcg
Y29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBhdGguY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6bG9nZ2luZ1N0cmluZyk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL0luZGV4VmFsdWVTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OkluZGV4VmFsdWVTdG9yZTo6bG9nZ2luZ1N0cmluZyBjb25zdCk6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1cnNvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OmJ1aWxkSW5kZXhTdGF0ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
SURCU2VydmVyOjpidWlsZE9iamVjdFN0b3JlU3RhdGVtZW50KToKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VJbmZvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OklEQkRhdGFiYXNlSW5mbzo6bG9nZ2luZ1N0cmluZyBjb25zdCk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvc2hhcmVkL0lEQk9iamVjdFN0b3JlSW5mby5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJREJPYmplY3RTdG9yZUluZm86OmxvZ2dpbmdTdHJpbmcgY29uc3QpOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6bWVkaWFQcm9kdWNlclN0YXRlU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OnRvU3RyaW5nKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpm
aWx0ZXJJQ0VDYW5kaWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGVlckNvbm5lY3Rpb25CYWNr
ZW5kOjpmaWx0ZXJTRFAgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9Zb3VUdWJl
UGx1Z2luUmVwbGFjZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WW91VHViZVBsdWdpblJl
cGxhY2VtZW50Ojp5b3VUdWJlVVJMRnJvbUFic29sdXRlVVJMKToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZW5l
cmF0ZURhdGFiYXNlRmlsZU5hbWUpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZW5jb2RlUHJvdG9jb2xTdHJpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6am9pblN0cmluZ3MpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0
cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OmNyZWF0ZUhlYWRlclZhbHVlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OmFjY2VwdGVkRXh0
ZW5zaW9ucyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhh
bmRzaGFrZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXNvdXJjZU5hbWUpOgorICAgICAgICAo
V2ViQ29yZTo6aG9zdE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNoYWtl
OjpjbGllbnRMb2NhdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRIYW5k
c2hha2U6OmNsaWVudEhhbmRzaGFrZU1lc3NhZ2UgY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2hv
dWxkQWRkU3BhY2VCZWZvcmVBcHBlbmRpbmdOZXh0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dGV4dFVuZGVyRWxlbWVudCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWNjZXNzaWJpbGl0eURlc2Ny
aXB0aW9uRm9yQ2hpbGRyZW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU5vZGVPYmplY3Q6OmFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbkZvckVsZW1lbnRzIGNvbnN0KToK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c3RyaW5nRm9yUmFuZ2UgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c3RyaW5nRm9yVmlzaWJsZVBv
c2l0aW9uUmFuZ2UpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyTWFjLm1tOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlciB2YWx1ZURlc2NyaXB0aW9uRm9yTWV0ZXJdKToKKyAgICAgICAgKGZvcm1hdEZvckRl
YnVnZ2VyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRTdHJpbmdzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnN0cmluZ1RvVVNWU3RyaW5nKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRocm93
QXJndW1lbnRNdXN0QmVFbnVtRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6dGhyb3dBcmd1bWVu
dE11c3RCZUZ1bmN0aW9uRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6dGhyb3dBcmd1bWVudFR5
cGVFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjp0aHJvd1JlcXVpcmVkTWVtYmVyVHlwZUVycm9y
KToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db21iaW5lZFVSTEZpbHRlcnMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OnByZWZpeFRyZWVWZXJ0ZXhUb1N0
cmluZyk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbjo6
Y29tcGlsZUdsb2JhbERpc3BsYXlOb25lU3R5bGVTaGVldCk6CisgICAgICAgICogY29udGVudGV4
dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRFeHRlbnNpb25zOjpyZXNvbHZlUGVuZGluZ0Rpc3BsYXlOb25lQWN0aW9ucyk6Cisg
ICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblN0eWxlU2hlZXQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25T
dHlsZVNoZWV0OjphZGREaXNwbGF5Tm9uZVNlbGVjdG9yKToKKyAgICAgICAgKiBjb250ZW50ZXh0
ZW5zaW9ucy9UZXJtLmg6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6VGVy
bTo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NBbmltYXRpb25UcmlnZ2VyU2Ny
b2xsVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9s
bFZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTQmFzaWNTaGFw
ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRDaXJjbGVTdHJpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6YnVpbGRFbGxpcHNlU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkUGF0
aFN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpidWlsZFBvbHlnb25TdHJpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6YnVpbGRJbnNldFN0cmluZyk6CisgICAgICAgICogY3NzL0NTU0NhbGN1bGF0
aW9uVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRDc3NUZXh0KToKKyAgICAgICAg
KiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICog
Y3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFk
ZVZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTQ3Vyc29ySW1h
Z2VWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDdXJzb3JJbWFnZVZhbHVlOjpjdXN0
b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTQ3VzdG9tSWRlbnRWYWx1ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NDdXN0b21JZGVudFZhbHVlOjpjdXN0b21DU1NUZXh0IGNv
bnN0KToKKyAgICAgICAgKiBjc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NGaWx0ZXJJbWFnZVZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAg
ICAgKiBjc3MvQ1NTRm9udEZhY2VSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRG
YWNlUnVsZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU3JjVmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VTcmNWYWx1ZTo6Y3VzdG9tQ1NT
VGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0ZvbnRGZWF0dXJlVmFsdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTRm9udEZlYXR1cmVWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6
CisgICAgICAgICogY3NzL0NTU0ZvbnRTdHlsZVJhbmdlVmFsdWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTRm9udFN0eWxlUmFuZ2VWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAg
ICAgICogY3NzL0NTU0ZvbnRTdHlsZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Zv
bnRTdHlsZVZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTRm9u
dFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRWYWx1ZTo6Y3VzdG9tQ1NTVGV4
dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NGb250VmFyaWF0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3Qp
OgorICAgICAgICAqIGNzcy9DU1NGdW5jdGlvblZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU0Z1bmN0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9D
U1NHcmFkaWVudFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0xpbmVhckdyYWRpZW50
VmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUmFkaWFs
R3JhZGllbnRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NDb25pY0dyYWRpZW50VmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNz
cy9DU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0dyaWRB
dXRvUmVwZWF0VmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NH
cmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0dyaWRUZW1w
bGF0ZUFyZWFzVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NJ
bWFnZVNldFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltYWdlU2V0VmFsdWU6OmN1
c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NJbXBvcnRSdWxlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU0ltcG9ydFJ1bGU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAq
IGNzcy9DU1NLZXlmcmFtZVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlS2V5
ZnJhbWU6OmtleVRleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlS2V5ZnJh
bWU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NLZXlmcmFtZXNSdWxlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0tleWZyYW1lc1J1bGU6OmNzc1RleHQgY29uc3QpOgorICAg
ICAgICAqIGNzcy9DU1NMaW5lQm94Q29udGFpblZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU0xpbmVCb3hDb250YWluVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAq
IGNzcy9DU1NNYXJrdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2VyaWFsaXplU3RyaW5nKToK
KyAgICAgICAgKFdlYkNvcmU6OnNlcmlhbGl6ZUFzU3RyaW5nT3JDdXN0b21JZGVudCk6CisgICAg
ICAgICogY3NzL0NTU01lZGlhUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NNZWRpYVJ1
bGU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NOYW1lc3BhY2VSdWxlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU05hbWVzcGFjZVJ1bGU6OmNzc1RleHQgY29uc3QpOgorICAg
ICAgICAqIGNzcy9DU1NQYWdlUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYWdlUnVs
ZTo6c2VsZWN0b3JUZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhZ2VSdWxlOjpj
c3NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmZvcm1hdE51bWJlckZvckN1c3RvbUNT
U1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlTb3VyY2VEYXRhOjp0b1N0cmluZyBjb25zdCk6
CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Nl
bGVjdG9yOjpzZWxlY3RvclRleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvckxp
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3JMaXN0OjpzZWxlY3RvcnNUZXh0
IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTU2hhZG93VmFsdWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTU2hhZG93VmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNz
cy9DU1NTdHlsZVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVSdWxlOjpjc3NU
ZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NTdHlsZVNoZWV0OjphZGRSdWxlKToKKyAgICAgICAgKiBjc3MvQ1NTU3VwcG9y
dHNSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N1cHBvcnRzUnVsZTo6Y3NzVGV4dCBj
b25zdCk6CisgICAgICAgICogY3NzL0NTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvblZhbHVlOjpjdXN0b21DU1NU
ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0ZXBzVGltaW5nRnVuY3Rpb25WYWx1
ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGcmFtZXNUaW1p
bmdGdW5jdGlvblZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1NwcmluZ1RpbWluZ0Z1bmN0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAg
ICAgICAqIGNzcy9DU1NWYWx1ZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVM
aXN0OjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTVmFyaWFibGVEYXRh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhcmlhYmxlRGF0YTo6Y29uc3VtZUFuZFVwZGF0
ZVRva2Vucyk6CisgICAgICAgICogY3NzL0RPTUNTU05hbWVzcGFjZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpET01DU1NOYW1lc3BhY2U6OmVzY2FwZSk6CisgICAgICAgICogY3NzL0RPTU1hdHJp
eFJlYWRPbmx5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTU1hdHJpeFJlYWRPbmx5Ojp0b1N0
cmluZyBjb25zdCk6CisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3Q6OmNzc1RleHQgY29u
c3QpOgorICAgICAgICAqIGNzcy9Gb250RmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250
RmFjZTo6c3R5bGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZhY2U6OndlaWdodCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGb250RmFjZTo6c3RyZXRjaCBjb25zdCk6CisgICAg
ICAgICogY3NzL01lZGlhTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5U2V0
OjptZWRpYVRleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnk6OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgICogY3Nz
L01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlF
eHByZXNzaW9uOjpzZXJpYWxpemUgY29uc3QpOgorICAgICAgICAqIGNzcy9SZWN0Lmg6CisgICAg
ICAgICogY3NzL1N0eWxlUHJvcGVydGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVBy
b3BlcnRpZXM6OmZvbnRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3Bl
cnRpZXM6OmdldDRWYWx1ZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0
aWVzOjpnZXRMYXllcmVkU2hvcnRoYW5kVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGVQcm9wZXJ0aWVzOjpnZXRTaG9ydGhhbmRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZVByb3BlcnRpZXM6OmJvcmRlclByb3BlcnR5VmFsdWUgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzOjphc1RleHQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGVQcm9wZXJ0aWVzOjpQcm9wZXJ0eVJlZmVyZW5jZTo6Y3NzVGV4dCBjb25zdCk6
CisgICAgICAgICogY3NzL1dlYktpdENTU01hdHJpeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJLaXRDU1NNYXRyaXg6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBjc3MvV2ViS2l0Q1NT
Vmlld3BvcnRSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdENTU1ZpZXdwb3J0UnVs
ZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUZvbnRGYWNlRGVzY3JpcHRvcik6Cisg
ICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQYXJzZXJUb2tlbjo6c2VyaWFsaXplIGNvbnN0KToKKyAgICAgICAgKiBjc3MvcGFyc2Vy
L0NTU1BhcnNlclRva2VuUmFuZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyVG9r
ZW5SYW5nZTo6c2VyaWFsaXplIGNvbnN0KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3Bl
cnR5UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbmNhdGVuYXRlRmFtaWx5TmFtZSk6
CisgICAgICAgIChXZWJDb3JlOjpwYXJzZUdyaWRUZW1wbGF0ZUFyZWFzQ29sdW1uTmFtZXMpOgor
ICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTVG9rZW5pemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1Rva2VuaXplcjo6Y29uc3VtZVN0cmluZ1Rva2VuVW50aWwpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTVG9rZW5pemVyOjpjb25zdW1lVXJsVG9rZW4pOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
VG9rZW5pemVyOjpjb25zdW1lTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb2tlbml6ZXI6
OmNvbnN1bWVFc2NhcGUpOgorICAgICAgICAqIGRvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRBdHRyaWJ1dGVOYW1lVG9Qcm9wZXJ0eU5hbWUpOgor
ICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmZv
cm1hdEZvckRlYnVnZ2VyIGNvbnN0KToKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpOb2RlOjp0ZXh0Q29udGVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpO
b2RlOjpzaG93Tm9kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjp0cmF2ZXJzZVRyZWVBbmRN
YXJrKToKKyAgICAgICAgKiBkb20vUG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9z
aXRpb246OmZvcm1hdEZvckRlYnVnZ2VyIGNvbnN0KToKKyAgICAgICAgKiBkb20vUmFuZ2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJhbmdlOjpmb3JtYXRGb3JEZWJ1Z2dlciBjb25zdCk6CisgICAgICAgICogZG9tL1Nj
cmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0aHJvdHRs
aW5nUmVhc29uc1RvU3RyaW5nKToKKyAgICAgICAgKiBkb20vU2VjdXJpdHlDb250ZXh0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5Q29udGV4dDo6cGFyc2VTYW5kYm94UG9saWN5KToK
KyAgICAgICAgKiBkb20vVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Ojp3aG9sZVRl
eHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dDo6Zm9ybWF0Rm9yRGVidWdnZXIgY29u
c3QpOgorICAgICAgICAqIGRvbS9UZXh0Tm9kZVRyYXZlcnNhbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0Tm9kZVRyYXZlcnNhbDo6Y29udGVudHNBc1N0cmluZyk6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0Tm9kZVRyYXZlcnNhbDo6Y2hpbGRUZXh0Q29udGVudCk6CisgICAgICAgICogZWRp
dGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxl
Q29tbWFuZDo6YWRkQmxvY2tTdHlsZSk6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnN0cmluZ1dpdGhSZWJhbGFuY2VkV2hpdGVzcGFjZSk6CisgICAg
ICAgICogZWRpdGluZy9IVE1MSW50ZXJjaGFuZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dmVydEhUTUxUZXh0VG9JbnRlcmNoYW5nZUZvcm1hdCk6CisgICAgICAgICogZWRpdGluZy9NYXJr
dXBBY2N1bXVsYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXJrdXBBY2N1bXVsYXRvcjo6
c2VyaWFsaXplTm9kZXMpOgorICAgICAgICAoV2ViQ29yZTo6TWFya3VwQWNjdW11bGF0b3I6Omdl
bmVyYXRlVW5pcXVlUHJlZml4KToKKyAgICAgICAgKiBlZGl0aW5nL1RleHRJdGVyYXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpwbGFpblRleHQpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5n
Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdDb21tYW5kOjppbnB1dEV2ZW50
RGF0YVRyYW5zZmVyIGNvbnN0KToKKyAgICAgICAgKiBlZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VmlzaWJsZVNlbGVjdGlvbjo6Zm9ybWF0Rm9yRGVidWdn
ZXIgY29uc3QpOgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OmRhdGFEZXRlY3RvclN0cmluZ0ZvclBhdGgpOgorICAgICAgICAqIGVk
aXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6Ol9w
cm9jZXNzVGV4dCk6CisgICAgICAgICogZWRpdGluZy9tYXJrdXAuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OndyYXBXaXRoTm9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6d3JhcFdpdGhTdHlsZU5vZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OnRha2VSZXN1bHRzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRUZXh0KToKKyAg
ICAgICAgKFdlYkNvcmU6OnNhbml0aXplZE1hcmt1cEZvckZyYWdtZW50SW5Eb2N1bWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjp1cmxUb01hcmt1cCk6CisgICAgICAgICogZmlsZWFwaS9GaWxlUmVh
ZGVyTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVSZWFkZXJMb2FkZXI6OmNvbnZl
cnRUb0RhdGFVUkwpOgorICAgICAgICAqIGh0bWwvRE9NVG9rZW5MaXN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVRva2VuTGlzdDo6dXBkYXRlQXNzb2NpYXRlZEF0dHJpYnV0ZUZyb21Ub2tl
bnMpOgorICAgICAgICAqIGh0bWwvRW1haWxJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RW1haWxJbnB1dFR5cGU6OnNhbml0aXplVmFsdWUgY29uc3QpOgorICAgICAgICAqIGh0bWwv
RmlsZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpkZWZh
dWx0VG9vbFRpcCBjb25zdCk6CisgICAgICAgICogaHRtbC9Gb3JtQ29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpmb3JtU2lnbmF0dXJlKToKKyAgICAgICAgKiBodG1sL0hUTUxBbmNo
b3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50OjpoYW5k
bGVDbGljayk6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dDJkKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlciBjb25zdCk6Cisg
ICAgICAgICogaHRtbC9IVE1MRm9udEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFy
c2VGb250U2l6ZSk6CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OmNvbXBsZXRlVVJMc0luQXR0cmlidXRlVmFs
dWUgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjphY3Rpb25OYW1lKToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25FbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPcHRpb25FbGVtZW50Ojpjb2xsZWN0T3B0aW9u
SW5uZXJUZXh0IGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpz
dHJpcHBlZFBsYWNlaG9sZGVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmlubmVyVGV4dFZh
bHVlRnJvbSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6
dmFsdWVXaXRoSGFyZExpbmVCcmVha3MgY29uc3QpOgorICAgICAgICAqIGh0bWwvTWVkaWFEb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURvY3VtZW50UGFyc2VyOjpjcmVhdGVE
b2N1bWVudFN0cnVjdHVyZSk6CisgICAgICAgICogaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnJlc3RyaWN0aW9uTmFtZSk6CisgICAgICAgICogaHRtbC9N
ZWRpYUZyYWdtZW50VVJJUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbGxlY3REaWdp
dHMpOgorICAgICAgICAoV2ViQ29yZTo6Y29sbGVjdEZyYWN0aW9uKToKKyAgICAgICAgKiBodG1s
L1R5cGVBaGVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBlQWhlYWQ6OmhhbmRsZUV2ZW50
KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpmb250IGNvbnN0KToK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmdldEltYWdl
RGF0YSBjb25zdCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZS5jcHA6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFNvdXJjZVRyYWNrZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFNvdXJjZVRyYWNrZXI6OnNvdXJjZSk6CisgICAgICAgICog
aHRtbC9wYXJzZXIvSFRNTFRva2VuaXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9r
ZW5pemVyOjpwcm9jZXNzRW50aXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbml6ZXI6
OnByb2Nlc3NUb2tlbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpidWZmZXJl
ZENoYXJhY3RlcnMgY29uc3QpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OmRlZmF1bHRGb3JJblRh
YmxlVGV4dCk6CisgICAgICAgICogaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkQ29uc29sZUVycm9yKToKKyAgICAgICAgKiBodG1sL3Ry
YWNrL0J1ZmZlcmVkTGluZVJlYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCdWZmZXJlZExp
bmVSZWFkZXI6Om5leHRMaW5lKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1RyYWNrQmFzZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpUcmFja0Jhc2U6OnNldExhbmd1YWdlKToKKyAgICAgICAgKiBo
dG1sL3RyYWNrL1ZUVEN1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWVFRDdWU6OmRldGVybWlu
ZVRleHREaXJlY3Rpb24pOgorICAgICAgICAqIGh0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldlYlZUVFBhcnNlcjo6Y3JlYXRlTmV3Q3VlKToKKyAgICAgICAg
KiBodG1sL3RyYWNrL1dlYlZUVFRva2VuaXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJW
VFRUb2tlbml6ZXI6Om5leHRUb2tlbik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclN0
eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGU6OnNob3J0aGFu
ZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFwcGxp
Y2F0aW9uQ2FjaGVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZVJlc291cmNlKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHA6Cisg
ICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xlQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V2ViQ29uc29sZUFnZW50OjpkaWRGYWlsTG9hZGluZyk6CisgICAgICAgICogbG9h
ZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVBY2Nlc3NDb250cm9sUHJlZmxpZ2h0UmVxdWVzdCk6CisgICAgICAgICogbG9hZGVyL1Jlc291
cmNlTG9hZFN0YXRpc3RpY3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljczo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBs
aWNhdGlvbkNhY2hlU3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNh
Y2hlU3RvcmFnZTo6c3RvcmUpOgorICAgICAgICAqIGxvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdl
YkFyY2hpdmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5V2ViQXJjaGl2ZTo6Y3JlYXRl
RnJvbVNlbGVjdGlvbik6CisgICAgICAgICogbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNo
aXZlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdlbmVyYXRlUmFuZG9tQm91bmRhcnkpOgorICAg
ICAgICAoV2ViQ29yZTo6cmVwbGFjZU5vblByaW50YWJsZUNoYXJhY3RlcnMpOgorICAgICAgICAq
IHBhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OndpbmRvd1JvdW5kZWRDb3JuZXJSYWRp
dXNDU1MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01l
ZGlhQUY6OmNvbG9yUHJvcGVydHlDU1MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlv
blVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zVGV4dEVkZ2VDU1MgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zRGVm
YXVsdEZvbnRDU1MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJl
bmNlc01lZGlhQUY6OmNhcHRpb25zU3R5bGVTaGVldE92ZXJyaWRlIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OnRyYWNrRGlzcGxheU5hbWUpOgorICAgICAgICAqIHBhZ2UvRnJhbWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUmVnRXhwRm9yTGFiZWxzKToKKyAgICAgICAgKiBwYWdl
L0ZyYW1lVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6OnVuaXF1ZUNoaWxk
TmFtZSBjb25zdCk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVWaWV3Ojpsb2dNb2NrU2Nyb2xsQW5pbWF0b3JNZXNzYWdlIGNvbnN0KToKKyAg
ICAgICAgKiBwYWdlL1BhZ2VTZXJpYWxpemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VT
ZXJpYWxpemVyOjpzZXJpYWxpemVDU1NTdHlsZVNoZWV0KToKKyAgICAgICAgKiBwYWdlL1BlcmZv
cm1hbmNlTG9nZ2luZ0NsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZUxv
Z2dpbmdDbGllbnQ6OnN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uc0FzU3RyaW5nKToKKyAgICAg
ICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGE6OmRhdGFiYXNlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogcGFn
ZS9XaGVlbEV2ZW50VGVzdFRyaWdnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZHVtcFN0YXRl
KToKKyAgICAgICAgKiBwYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Y29uc29sZU1lc3NhZ2VGb3JWaW9sYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd1J1bm5pbmdPckRpc3BsYXlpbmdJbnNlY3Vy
ZUNvbnRlbnQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0F4aXNTY3JvbGxTbmFwT2Zmc2V0
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzbmFwT2Zmc2V0c1RvU3RyaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OnNuYXBPZmZzZXRSYW5nZXNUb1N0cmluZyk6CisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nQ29vcmRpbmF0b3I6OnN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uc0FzVGV4dCk6CisgICAg
ICAgICogcGxhdGZvcm0vRGVjaW1hbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWNpbWFsOjp0
b1N0cmluZyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtOjplbmNvZGVGb3JGaWxlTmFtZSk6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtOjpkZWNvZGVGcm9tRmlsZW5hbWUpOgorICAgICAgICAqIHBsYXRm
b3JtL1BPREludGVydmFsLmg6CisgICAgICAgICogcGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmg6
CisgICAgICAgIChXZWJDb3JlOjpQT0RSZWRCbGFja1RyZWU6OmR1bXBGcm9tTm9kZSBjb25zdCk6
CisgICAgICAgICogcGxhdGZvcm0vVVJMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVSTDo6c2V0
SG9zdCk6CisgICAgICAgIChXZWJDb3JlOjpVUkw6OnNldEhvc3RBbmRQb3J0KToKKyAgICAgICAg
KFdlYkNvcmU6OnBlcmNlbnRFbmNvZGVDaGFyYWN0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9h
bmltYXRpb24vVGltaW5nRnVuY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltaW5nRnVu
Y3Rpb246OmNyZWF0ZUZyb21DU1NUZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL0ZpbGVT
eXN0ZW1HbGliLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW06OnBhdGhCeUFwcGVu
ZGluZ0NvbXBvbmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvbG9yOjpzZXJpYWxpemVkIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbG9yOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9FeHRlbmRlZENvbG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6OmNz
c1RleHQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Om5vcm1hbGl6ZVNwYWNlc0ludGVybmFsKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250VGFnZ2VkU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NM
YXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjphbmltYXRpb25OYW1l
Rm9yVHJhbnNpdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZUF0dHJpYnV0ZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc05hdGl2ZVNhbXBsZXMpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRpbGVDb250cm9sbGVyOjpjcmVhdGVUaWxlTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnZh
bGlkYXRpb25Qb2xpY3lBc1N0cmluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
d2luL1BsYXRmb3JtQ0FMYXllcldpbi5jcHA6CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJXaW46
OmxheWVyVHJlZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
di9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RleHR1
cmVDb3BpZXJDVjo6aW5pdGlhbGl6ZUNvbnRleHRPYmplY3RzKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Z2VuZXJhdGVIYXNoZWROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEOjpnZXRVbm1hbmdsZWRJbmZvTG9nKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvUGFzdGVib2FyZE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmpvaW5QYXRobmFtZXMp
OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW06CisgICAgICAgIChX
ZWJDb3JlOjp3aWxkY2FyZFJlZ2V4UGF0dGVyblN0cmluZyk6CisgICAgICAgICogcGxhdGZvcm0v
bW9jay9TY3JvbGxBbmltYXRvck1vY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0b3JNb2NrOjptb3VzZUVudGVyZWRTY3JvbGxiYXIgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsQW5pbWF0b3JNb2NrOjptb3VzZUV4aXRlZFNjcm9sbGJhciBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1vY2s6Om1vdXNlSXNEb3duSW5TY3JvbGxiYXIg
Y29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja0JveC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNb2NrQm94OjpwZWVrVHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNb2NrVHJhY2tCb3g6Ok1vY2tUcmFja0JveCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9IVFRQUGFyc2Vycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpleHRyYWN0TUlNRVR5cGVGcm9t
TWVkaWFUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Byb3h5U2VydmVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnRvU3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L21hYy9Db29raWVKYXJNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpjb29raWVzRm9yU2Vzc2lv
bik6CisgICAgICAgICogcGxhdGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudHMpOgorICAg
ICAgICAqIHBsYXRmb3JtL3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmg6CisgICAgICAgIChX
ZWJDb3JlOjpVbmljb2RlMTZCaXRFc2NhcGVTZXF1ZW5jZTo6ZGVjb2RlUnVuKToKKyAgICAgICAg
KFdlYkNvcmU6OmRlY29kZUVzY2FwZVNlcXVlbmNlcyk6CisgICAgICAgICogcGxhdGZvcm0vdGV4
dC9QbGF0Zm9ybUxvY2FsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbGU6OmNvbnZlcnRU
b0xvY2FsaXplZE51bWJlcik6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbGU6OmNvbnZlcnRGcm9t
TG9jYWxpemVkTnVtYmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsZTo6Zm9ybWF0RGF0ZVRp
bWUpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNlZ21lbnRlZFN0cmluZzo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAq
IHBsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRD
b2RlY0lDVTo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VzZXJE
ZWZpbmVkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb2RlY1VzZXJEZWZpbmVkOjpkZWNv
ZGUpOgorICAgICAgICAqIHBsdWdpbnMvRE9NTWltZVR5cGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NTWltZVR5cGU6OnN1ZmZpeGVzIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6Om5hbWUgY29uc3Qp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsb2dMYXllckluZm8pOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omxp
c3RNYXJrZXJUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RNYXJrZXI6OnBhaW50
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpjYXBpdGFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6Om1heFdvcmRGcmFnbWVudFdpZHRoKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpxdW90ZUFuZEVzY2FwZU5vblByaW50YWJsZXMpOgorICAgICAgICAoV2ViQ29yZTo6bm9k
ZVBvc2l0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNl
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXRoTUxGZW5jZWQ6OnVwZGF0ZUZyb21F
bGVtZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJN
YXRoTUwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZUJ1aWxkZXI6Ok1hdGhNTDo6
YXR0YWNoKToKKyAgICAgICAgKiBzdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdMZW5ndGhMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAg
ICAgICAgKiBzdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdOdW1iZXJMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcv
U1ZHUGF0aFN0cmluZ0J1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFN0cmlu
Z0J1aWxkZXI6OnJlc3VsdCk6CisgICAgICAgICogc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6YnVpbGRTdHJpbmdGcm9tUGF0aCk6CisgICAgICAgICogc3ZnL1NW
R1BvaW50TGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExpc3RWYWx1
ZXM6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdTdHJpbmdMaXN0VmFs
dWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0cmluZ0xpc3RWYWx1ZXM6OnZhbHVlQXNT
dHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcg
Y29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdUcmFuc2Zvcm1WYWx1ZTo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAg
ICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UG9pbnQ+Ojp0b1N0cmluZyk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+Ojp0b1N0cmluZyk6CisgICAgICAgICog
dGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpkdW1w
TWFya2VyUmVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpwYXJzZXJNZXRhRGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmdldEN1cnJlbnRDdXJzb3JJbmZvKToK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6bWVkaWFTZXNzaW9uUmVzdHJpY3Rpb25zIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cGFnZU1lZGlhU3RhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzY3JvbGxTbmFwT2Zmc2V0cyk6CisgICAgICAgICog
dGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9j
a1BhZ2VPdmVybGF5Q2xpZW50OjpkcmF3UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUGFn
ZU92ZXJsYXlDbGllbnQ6Om1vdXNlRXZlbnQpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyU2Ny
aXB0TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdExvYWRlcjo6c2Ny
aXB0KToKKyAgICAgICAgKiB4bWwvWE1MRXJyb3JzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhN
TEVycm9yczo6aW5zZXJ0RXJyb3JNZXNzYWdlQmxvY2spOgorICAgICAgICAqIHhtbC9YTUxIdHRw
UmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6Z2V0QWxsUmVz
cG9uc2VIZWFkZXJzIGNvbnN0KToKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuaDoKKyAg
ICAgICAgKiB4bWwvWFBhdGhGdW5jdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6
OmF0b21pY1N1YnN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6RnVuSWQ6OmV2YWx1
YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoOjpGdW5Db25jYXQ6OmV2YWx1YXRl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoOjpGdW5UcmFuc2xhdGU6OmV2YWx1YXRl
IGNvbnN0KToKKyAgICAgICAgKiB4bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6c2F2ZVJlc3VsdFRvU3RyaW5nKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL0No
YXJhY3RlclJlZmVyZW5jZVBhcnNlcklubGluZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OnVuY29u
c3VtZUNoYXJhY3RlcnMpOgorCiAyMDE4LTA0LTI1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBVc2UgTmV0d29ya0xvYWRDaGVja2VyIGZvciBhbGwgc3VicmVz
b3VyY2UgbG9hZHMgZXhjZXB0IGZldGNoL1hIUgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50Q29udGFjdENvY29hLm1tIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50Q29udGFjdENvY29hLm1tCmluZGV4
IDNiZTYyMTAuLjA5Nzg0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvY29jb2EvUGF5bWVudENvbnRhY3RDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRDb250YWN0Q29jb2EubW0KQEAgLTE1NCw3ICsx
NTQsMTAgQEAgc3RhdGljIFJldGFpblB0cjxQS0NvbnRhY3Q+IGNvbnZlcnQodW5zaWduZWQgdmVy
c2lvbiwgY29uc3QgQXBwbGVQYXlQYXltZW50Q29udGEKICAgICAgICAgfQogCiAgICAgICAgIC8v
IEZJWE1FOiBTdHJpbmdCdWlsZGVyIHNob3VsZCBoYXZhIGEgdG9OU1N0cmluZygpIGZ1bmN0aW9u
IHRvIGF2b2lkIHRoZSBleHRyYSBTdHJpbmcgYWxsb2NhdGlvbi4KLSAgICAgICAgW2FkZHJlc3Mg
c2V0U3RyZWV0OmJ1aWxkZXIudG9TdHJpbmcoKV07CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIFthZGRyZXNzIHNldFN0cmVldDoqc3Ry
aW5nXTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKIAogICAgICAgICBpZiAo
IWNvbnRhY3Quc3ViTG9jYWxpdHkuaXNFbXB0eSgpKQogICAgICAgICAgICAgc2V0U3ViTG9jYWxp
dHkoYWRkcmVzcy5nZXQoKSwgY29udGFjdC5zdWJMb2NhbGl0eSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAKaW5kZXggOGU1MDY2
ZC4uOWIzNjBhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBp
L0RPTUZpbGVTeXN0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2Fw
aS9ET01GaWxlU3lzdGVtLmNwcApAQCAtMjE2LDcgKzIxNiw5IEBAIHN0YXRpYyBTdHJpbmcgcmVz
b2x2ZVJlbGF0aXZlVmlydHVhbFBhdGgoU3RyaW5nVmlldyBiYXNlVmlydHVhbFBhdGgsIFN0cmlu
Z1ZpZXcKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJy8nKTsKICAgICAgICAgYnVpbGRlci5hcHBl
bmQoc2VnbWVudCk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiAvLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL2VudHJp
ZXMtYXBpLyNldmFsdWF0ZS1hLXBhdGgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKaW5kZXggZGNiZjcwMy4uNmNhYWM1YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAK
QEAgLTM0MCw3ICszNDAsMTAgQEAgc3RhdGljIHZvaWQgbG9nRXJyb3IoY29uc3QgU3RyaW5nJiB0
YXJnZXQsIGNvbnN0IGJvb2wgaXNTZWN1cmUsIGNvbnN0IGJvb2wgaXNNaXgKICAgICAKICAgICBt
ZXNzYWdlLmFwcGVuZCh0YXJnZXQpOwogICAgIG1lc3NhZ2UuYXBwZW5kKCIuXG4iKTsKLSAgICBk
b2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3Nh
Z2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gbWVzc2FnZS50b1N0cmluZygpKQorICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICpzdHJpbmcp
OworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogLy8gRklYTUU6IHJlbW92ZSB0aGlz
IGZ1bmN0aW9uIHdoZW4gcmRhcjovL3Byb2JsZW0vMzIxMzc4MjEgaXMgZml4ZWQuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwCmluZGV4IDJlOTM2
NDUuLjcyMTI5NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQktleURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QktleURhdGEuY3BwCkBAIC0zMzIsNyArMzMyLDEwIEBAIFN0cmluZyBJREJLZXlEYXRhOjpsb2dn
aW5nU3RyaW5nKCkgY29uc3QKICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwo
IiwgIik7CiAgICAgICAgIH0KICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgfSIpOwot
ICAgICAgICByZXN1bHQgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJlc3VsdCA9ICpzdHJpbmc7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KICAgICBjYXNlIEtleVR5cGU6OkJpbmFyeTogewpAQCAtMzQyLDcgKzM0NSwxMCBAQCBTdHJp
bmcgSURCS2V5RGF0YTo6bG9nZ2luZ1N0cmluZygpIGNvbnN0CiAgICAgICAgIGF1dG8qIGRhdGEg
PSBXVEY6OmdldDxUaHJlYWRTYWZlRGF0YUJ1ZmZlcj4obV92YWx1ZSkuZGF0YSgpOwogICAgICAg
ICBpZiAoIWRhdGEpIHsKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIobnVsbCkiKTsKLSAg
ICAgICAgICAgIHJlc3VsdCA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICByZXN1bHQg
PSAqc3RyaW5nOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCkBAIC0zNTMsNyArMzU5LDEwIEBAIFN0cmlu
ZyBJREJLZXlEYXRhOjpsb2dnaW5nU3RyaW5nKCkgY29uc3QKICAgICAgICAgaWYgKGRhdGEtPnNp
emUoKSA+IDgpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgiLi4uIik7CiAKLSAgICAgICAg
cmVzdWx0ID0gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXN1bHQgPSAqc3RyaW5nOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAg
Y2FzZSBLZXlUeXBlOjpTdHJpbmc6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJLZXlQYXRoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQktleVBhdGguY3BwCmluZGV4IDc2ZWJlYjMuLjhiOWZiMTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBhdGguY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBhdGguY3BwCkBAIC0yNDEsNyArMjQx
LDkgQEAgU3RyaW5nIGxvZ2dpbmdTdHJpbmcoY29uc3QgSURCS2V5UGF0aCYgcGF0aCkKICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoc3RyaW5ncy5sYXN0KCkpOwogICAgICAgICBidWlsZGVyLmFwcGVu
ZCgiID4iKTsKIAotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9KTsKIAogICAgIHJldHVybiBXVEY6OnZp
c2l0KHZpc2l0b3IsIHBhdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL0luZGV4VmFsdWVTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSW5kZXhWYWx1ZVN0b3JlLmNwcAppbmRleCA2OTgzYzlkLi44
MGQ2YjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvSW5kZXhWYWx1ZVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvSW5kZXhWYWx1ZVN0b3JlLmNwcApAQCAtNDA5LDcgKzQwOSw5IEBAIFN0cmlu
ZyBJbmRleFZhbHVlU3RvcmU6OmxvZ2dpbmdTdHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVy
LmFwcGVuZE51bWJlcihtX3JlY29yZHMuZ2V0KGtleSktPmdldENvdW50KCkpOwogICAgICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIiBlbnRyaWVzIik7CiAgICAgfQotICAgIHJldHVybiBidWls
ZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJ
REJDdXJzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NR
TGl0ZUlEQkN1cnNvci5jcHAKaW5kZXggZjIwZGI4Ny4uYTRjMzBmYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1cnNvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1
cnNvci5jcHAKQEAgLTE0MSw3ICsxNDEsOSBAQCBzdGF0aWMgU3RyaW5nIGJ1aWxkSW5kZXhTdGF0
ZW1lbnQoY29uc3QgSURCS2V5UmFuZ2VEYXRhJiBrZXlSYW5nZSwgSW5kZXhlZERCOjpDdQogCiAg
ICAgYnVpbGRlci5hcHBlbmQoJzsnKTsKIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIGJ1aWxkT2JqZWN0
U3RvcmVTdGF0ZW1lbnQoY29uc3QgSURCS2V5UmFuZ2VEYXRhJiBrZXlSYW5nZSwgSW5kZXhlZERC
OjpDdXJzb3JEaXJlY3Rpb24gY3Vyc29yRGlyZWN0aW9uKQpAQCAtMTY5LDcgKzE3MSw5IEBAIHN0
YXRpYyBTdHJpbmcgYnVpbGRPYmplY3RTdG9yZVN0YXRlbWVudChjb25zdCBJREJLZXlSYW5nZURh
dGEmIGtleVJhbmdlLCBJbmRleGVkCiAKICAgICBidWlsZGVyLmFwcGVuZCgnOycpOwogCi0gICAg
cmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IGJvb2wgU1FMaXRlSURCQ3Vyc29yOjplc3RhYmxpc2hTdGF0ZW1lbnQoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VJ
bmZvLmNwcAppbmRleCBlNWRmMTVjLi43NjkzNGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VJbmZvLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VJbmZvLmNwcApA
QCAtMTY5LDcgKzE2OSw5IEBAIFN0cmluZyBJREJEYXRhYmFzZUluZm86OmxvZ2dpbmdTdHJpbmco
KSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKICAgICB9CiAKLSAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCT2JqZWN0U3RvcmVJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8uY3BwCmluZGV4IGIwMDc1ZmUuLjhkOGZhZDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJPYmpl
Y3RTdG9yZUluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3No
YXJlZC9JREJPYmplY3RTdG9yZUluZm8uY3BwCkBAIC0xNDgsNyArMTQ4LDkgQEAgU3RyaW5nIElE
Qk9iamVjdFN0b3JlSW5mbzo6bG9nZ2luZ1N0cmluZyhpbnQgaW5kZW50KSBjb25zdAogICAgICAg
ICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIElEQk9iamVjdFN0
b3JlSW5mbzo6Y29uZGVuc2VkTG9nZ2luZ1N0cmluZygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1h
bmFnZXIuY3BwCmluZGV4IDQyMDlmZmEuLjk2ZmViYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFn
ZXIuY3BwCkBAIC04OSw3ICs4OSw5IEBAIHN0YXRpYyBTdHJpbmcgbWVkaWFQcm9kdWNlclN0YXRl
U3RyaW5nKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBmbGFncykKICAgICBlbHNlCiAg
ICAgICAgIHN0cmluZy5yZXNpemUoc3RyaW5nLmxlbmd0aCgpIC0gMik7CiAKLSAgICByZXR1cm4g
c3RyaW5nLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyID0gc3RyaW5nLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyOworICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApAQCAtMzgx
LDcgKzM4Myw5IEBAIFN0cmluZyBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjp0b1N0cmluZyhDb25m
aWd1cmF0aW9uVGFza3MgdGFza3MpCiAgICAgZWxzZQogICAgICAgICBzdHJpbmcucmVzaXplKHN0
cmluZy5sZW5ndGgoKSAtIDIpOwogICAgIAotICAgIHJldHVybiBzdHJpbmcudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHIgPSBzdHJpbmcudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHI7CisgICAgQ1JBU0goKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKaW5k
ZXggZGM1MWJiNS4uZGJlY2Q1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcApAQCAtNDAzLDcg
KzQwMyw5IEBAIHN0YXRpYyBTdHJpbmcgZmlsdGVySUNFQ2FuZGlkYXRlKFN0cmluZyYmIHNkcCkK
ICAgICAgICAgICAgIGZpbHRlcmVkU0RQLmFwcGVuZCgnICcpOwogICAgICAgICBmaWx0ZXJlZFNE
UC5hcHBlbmQoaXRlbSk7CiAgICAgfSk7Ci0gICAgcmV0dXJuIGZpbHRlcmVkU0RQLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gZmlsdGVyZWRTRFAudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIFBlZXJDb25uZWN0
aW9uQmFja2VuZDo6ZmlsdGVyU0RQKFN0cmluZyYmIHNkcCkgY29uc3QKQEAgLTQyMSw3ICs0MjMs
OSBAQCBTdHJpbmcgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpmaWx0ZXJTRFAoU3RyaW5nJiYgc2Rw
KSBjb25zdAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBmaWx0ZXJlZFNEUC5hcHBlbmQo
J1xuJyk7CiAgICAgfSk7Ci0gICAgcmV0dXJuIGZpbHRlcmVkU0RQLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gZmlsdGVyZWRTRFAudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6
Om5ld0lDRUNhbmRpZGF0ZShTdHJpbmcmJiBzZHAsIFN0cmluZyYmIG1pZCwgdW5zaWduZWQgc2hv
cnQgc2RwTUxpbmVJbmRleCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1
Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAKaW5kZXggYzkxNzFkYy4uNDI3
ZjRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQ
bHVnaW5SZXBsYWNlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5z
L1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAKQEAgLTMzMyw3ICszMzMsOSBAQCBTdHJpbmcg
WW91VHViZVBsdWdpblJlcGxhY2VtZW50Ojp5b3VUdWJlVVJMRnJvbUFic29sdXRlVVJMKGNvbnN0
IFVSTCYgc3JjVVJMLCBjbwogICAgICAgICBmaW5hbFVSTC5hcHBlbmQoJz8nKTsKICAgICAgICAg
ZmluYWxVUkwuYXBwZW5kKHF1ZXJ5KTsKICAgICB9Ci0gICAgcmV0dXJuIGZpbmFsVVJMLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gZmluYWxVUkwudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KICAgICAKIGJvb2wgWW91VHViZVBs
dWdpblJlcGxhY2VtZW50OjpzdXBwb3J0c1VSTChjb25zdCBVUkwmIHVybCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcApp
bmRleCA4ZmRhNjJhLi45OGYzMDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCkBAIC0zMjAsNyArMzIwLDkgQEAg
c3RhdGljIFN0cmluZyBnZW5lcmF0ZURhdGFiYXNlRmlsZU5hbWUoKQogICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kKGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSk7CiAgICAgc3RyaW5nQnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCIuZGIiKTsKIAotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgRGF0YWJh
c2VUcmFja2VyOjpmdWxsUGF0aEZvckRhdGFiYXNlTm9Mb2NrKGNvbnN0IFNlY3VyaXR5T3JpZ2lu
RGF0YSYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOb3RFeGlzdHMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCmlu
ZGV4IDAyNDc3YjkuLmVhYjI1MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXQuY3BwCkBAIC0xMDUsNyArMTA1LDkgQEAgc3RhdGljIFN0cmluZyBl
bmNvZGVQcm90b2NvbFN0cmluZyhjb25zdCBTdHJpbmcmIHByb3RvY29sKQogICAgICAgICBlbHNl
CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChwcm90b2NvbFtpXSk7CiAgICAgfQotICAgIHJl
dHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBz
dGF0aWMgU3RyaW5nIGpvaW5TdHJpbmdzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzdHJpbmdzLCBj
b25zdCBjaGFyKiBzZXBhcmF0b3IpCkBAIC0xMTYsNyArMTE4LDkgQEAgc3RhdGljIFN0cmluZyBq
b2luU3RyaW5ncyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3RyaW5ncywgY29uc3QgY2hhciogc2Vw
YXJhdG9yKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoc2VwYXJhdG9yKTsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoc3RyaW5nc1tpXSk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgdW5zaWduZWQg
c2F0dXJhdGVBZGQodW5zaWduZWQgYSwgdW5zaWduZWQgYikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25E
aXNwYXRjaGVyLmNwcAppbmRleCBmY2M5ZGMzLi42YzQwYzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVu
c2lvbkRpc3BhdGNoZXIuY3BwCkBAIC02OCw3ICs2OCw5IEBAIGNvbnN0IFN0cmluZyBXZWJTb2Nr
ZXRFeHRlbnNpb25EaXNwYXRjaGVyOjpjcmVhdGVIZWFkZXJWYWx1ZSgpIGNvbnN0CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQobV9w
cm9jZXNzb3JzW2ldLT5oYW5kc2hha2VTdHJpbmcoKSk7CiAgICAgfQotICAgIHJldHVybiBidWls
ZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIFdlYlNv
Y2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OmFwcGVuZEFjY2VwdGVkRXh0ZW5zaW9uKGNvbnN0IFN0
cmluZyYgZXh0ZW5zaW9uVG9rZW4sIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBleHRlbnNpb25Q
YXJhbWV0ZXJzKQpAQCAtMTM5LDcgKzE0MSw5IEBAIFN0cmluZyBXZWJTb2NrZXRFeHRlbnNpb25E
aXNwYXRjaGVyOjphY2NlcHRlZEV4dGVuc2lvbnMoKSBjb25zdAogewogICAgIGlmIChtX2FjY2Vw
dGVkRXh0ZW5zaW9uc0J1aWxkZXIuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7
Ci0gICAgcmV0dXJuIG1fYWNjZXB0ZWRFeHRlbnNpb25zQnVpbGRlci50b1N0cmluZ1ByZXNlcnZl
Q2FwYWNpdHkoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtX2FjY2VwdGVkRXh0ZW5zaW9uc0J1
aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVy
OjpmYWlsdXJlUmVhc29uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAKaW5kZXggNTQ1NWNkMS4uMDgz
YTkwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldEhhbmRzaGFrZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldEhhbmRzaGFrZS5jcHAKQEAgLTcyLDEwICs3MiwxMyBAQCBzdGF0aWMgU3RyaW5n
IHJlc291cmNlTmFtZShjb25zdCBVUkwmIHVybCkKICAgICAgICAgbmFtZS5hcHBlbmQoJz8nKTsK
ICAgICAgICAgbmFtZS5hcHBlbmQodXJsLnF1ZXJ5KCkpOwogICAgIH0KLSAgICBTdHJpbmcgcmVz
dWx0ID0gbmFtZS50b1N0cmluZygpOwotICAgIEFTU0VSVCghcmVzdWx0LmlzRW1wdHkoKSk7Ci0g
ICAgQVNTRVJUKCFyZXN1bHQuY29udGFpbnMoJyAnKSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBuYW1lLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgU3RyaW5nIHJl
c3VsdCA9ICpzdHJpbmc7CisgICAgICAgIEFTU0VSVCghcmVzdWx0LmlzRW1wdHkoKSk7CisgICAg
ICAgIEFTU0VSVCghcmVzdWx0LmNvbnRhaW5zKCcgJykpOworICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIGhvc3ROYW1lKGNvbnN0
IFVSTCYgdXJsLCBib29sIHNlY3VyZSkKQEAgLTg3LDcgKzkwLDkgQEAgc3RhdGljIFN0cmluZyBo
b3N0TmFtZShjb25zdCBVUkwmIHVybCwgYm9vbCBzZWN1cmUpCiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCc6Jyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHVybC5wb3J0KCkudmFsdWUo
KSk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBzdGF0aWMgY29uc3Qgc2l6ZV90IG1heElucHV0U2FtcGxlU2l6ZSA9
IDEyODsKQEAgLTE3Niw3ICsxODEsOSBAQCBTdHJpbmcgV2ViU29ja2V0SGFuZHNoYWtlOjpjbGll
bnRMb2NhdGlvbigpIGNvbnN0CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI6Ly8iKTsKICAg
ICBidWlsZGVyLmFwcGVuZChob3N0TmFtZShtX3VybCwgbV9zZWN1cmUpKTsKICAgICBidWlsZGVy
LmFwcGVuZChyZXNvdXJjZU5hbWUobV91cmwpKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogQ1N0cmluZyBXZWJTb2NrZXRIYW5k
c2hha2U6OmNsaWVudEhhbmRzaGFrZU1lc3NhZ2UoKSBjb25zdApAQCAtMjI2LDcgKzIzMyw5IEBA
IENTdHJpbmcgV2ViU29ja2V0SGFuZHNoYWtlOjpjbGllbnRIYW5kc2hha2VNZXNzYWdlKCkgY29u
c3QKIAogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXHJcbiIpOwogCi0gICAgcmV0dXJuIGJ1
aWxkZXIudG9TdHJpbmcoKS51dGY4KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gc3RyaW5nLT51dGY4KCk7CisgICAgQ1JBU0goKTsK
IH0KIAogUmVzb3VyY2VSZXF1ZXN0IFdlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZW50SGFuZHNoYWtl
UmVxdWVzdCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IGRiODU3NWUuLmM0YTI1MjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3QuY3BwCkBAIC0xNzEzLDExICsxNzEzLDEzIEBAIHN0YXRpYyBib29sIHNob3Vs
ZFVzZUFjY2Vzc2liaWxpdHlPYmplY3RJbm5lclRleHQoQWNjZXNzaWJpbGl0eU9iamVjdCogb2Jq
LCBBY2NlCiAKIHN0YXRpYyBib29sIHNob3VsZEFkZFNwYWNlQmVmb3JlQXBwZW5kaW5nTmV4dEVs
ZW1lbnQoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgY29uc3QgU3RyaW5nJiBjaGlsZFRleHQpCiB7
CisgICAgaWYgKGJ1aWxkZXIuZmFpbGVkKCkpCisgICAgICAgIENSQVNIKCk7CisKICAgICBpZiAo
IWJ1aWxkZXIubGVuZ3RoKCkgfHwgIWNoaWxkVGV4dC5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotCiAgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBhZGQgYW4gYWRkaXRpb25hbCBzcGFj
ZSBiZWZvcmUgb3IgYWZ0ZXIgYSBsaW5lIGJyZWFrLgotICAgIHJldHVybiAhKGlzSFRNTExpbmVC
cmVhayhjaGlsZFRleHRbMF0pIHx8IGlzSFRNTExpbmVCcmVhayhidWlsZGVyW2J1aWxkZXIubGVu
Z3RoKCkgLSAxXSkpOworICAgIHJldHVybiAhKGlzSFRNTExpbmVCcmVhayhjaGlsZFRleHRbMF0p
IHx8IGlzSFRNTExpbmVCcmVhaygqYnVpbGRlcltidWlsZGVyLmxlbmd0aCgpIC0gMV0pKTsKIH0K
ICAgICAKIHN0YXRpYyB2b2lkIGFwcGVuZE5hbWVUb1N0cmluZ0J1aWxkZXIoU3RyaW5nQnVpbGRl
ciYgYnVpbGRlciwgY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtMTc2OSw3ICsxNzcxLDkgQEAgU3Ry
aW5nIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50KEFjY2Vzc2liaWxp
dHlUZXh0VW5kZXJFbGVtZW50TW8KICAgICAgICAgICAgIGFwcGVuZE5hbWVUb1N0cmluZ0J1aWxk
ZXIoYnVpbGRlciwgY2hpbGRUZXh0KTsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0
cmluZygpLnN0cmlwV2hpdGVTcGFjZSgpLnNpbXBsaWZ5V2hpdGVTcGFjZShpc0hUTUxTcGFjZUJ1
dE5vdExpbmVCcmVhayk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gc3RyaW5nLT5zdHJpcFdoaXRlU3BhY2UoKS5zaW1wbGlmeVdoaXRl
U3BhY2UoaXNIVE1MU3BhY2VCdXROb3RMaW5lQnJlYWspOworICAgIENSQVNIKCk7CiB9CiAKIFN0
cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dGl0bGUoKSBjb25zdApAQCAtMTk4NSw3ICsx
OTg5LDkgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjphY2Nlc3NpYmlsaXR5RGVz
Y3JpcHRpb25Gb3JDaGlsZHJlbigpIGNvbnN0CiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3Ry
aW5nIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjphY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25Gb3JF
bGVtZW50cyhWZWN0b3I8RWxlbWVudCo+ICZlbGVtZW50cykgY29uc3QKQEAgLTE5OTQsNyArMjAw
MCw5IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWNjZXNzaWJpbGl0eURlc2Ny
aXB0aW9uRm9yRWxlbWVudHMoVmVjdG9yPEVsZW1lCiAgICAgdW5zaWduZWQgc2l6ZSA9IGVsZW1l
bnRzLnNpemUoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQogICAg
ICAgICBhcHBlbmROYW1lVG9TdHJpbmdCdWlsZGVyKGJ1aWxkZXIsIGFjY2Vzc2libGVOYW1lRm9y
Tm9kZShlbGVtZW50c1tpXSwgbm9kZSgpKSk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6YXJpYURlc2NyaWJlZEJ5QXR0cmlidXRlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDE5
MjgxNzIuLjdjOGQ5OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtMTM4OCw4ICsxMzg4LDEwIEBAIFN0cmluZyBB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpzdHJpbmdGb3JSYW5nZShSZWZQdHI8UmFuZ2U+IHJhbmdlKSBj
b25zdAogICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG9iamVjdFJlcGxhY2VtZW50Q2hh
cmFjdGVyKTsKICAgICAgICAgfQogICAgIH0KLSAgICAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0
cmluZygpOworCisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQWNjZXNzaWJp
bGl0eU9iamVjdDo6c3RyaW5nRm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBv
c2l0aW9uUmFuZ2UmIHZpc2libGVQb3NpdGlvblJhbmdlKQpAQCAtMTQxNSw3ICsxNDE3LDkgQEAg
U3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN0cmluZ0ZvclZpc2libGVQb3NpdGlvblJhbmdl
KGNvbnN0IFZpc2libGVQb3NpdGlvblIKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBpbnQgQWNj
ZXNzaWJpbGl0eU9iamVjdDo6bGVuZ3RoRm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlz
aWJsZVBvc2l0aW9uUmFuZ2UmIHZpc2libGVQb3NpdGlvblJhbmdlKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCBhMTAyZDM2Li45MzJkMTFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQpAQCAtMjQwOSw3ICsyNDA5LDkg
QEAgLSAoTlNTdHJpbmcgKil2YWx1ZURlc2NyaXB0aW9uRm9yTWV0ZXIKICAgICAgICAgaWYgKGJ1
aWxkZXIubGVuZ3RoKCkpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgIik7
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGdhdWdlUmVnaW9uVmFsdWUpOwotICAgICAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0go
KTsKICAgICB9CiAjZW5kaWYKICAgICByZXR1cm4gdmFsdWVEZXNjcmlwdGlvbjsKQEAgLTM4NzMs
OCArMzg3NSwxMSBAQCBzdGF0aWMgdm9pZCBmb3JtYXRGb3JEZWJ1Z2dlcihjb25zdCBWaXNpYmxl
UG9zaXRpb25SYW5nZSYgcmFuZ2UsIGNoYXIqIGJ1ZmZlciwgdQogICAgIHJlc3VsdC5hcHBlbmRM
aXRlcmFsKCIgdG8gIik7CiAgICAgcmFuZ2UuZW5kLmZvcm1hdEZvckRlYnVnZ2VyKGZvcm1hdCwg
Rm9ybWF0QnVmZmVyU2l6ZSk7CiAgICAgcmVzdWx0LmFwcGVuZChmb3JtYXQpOwotICAgIAotICAg
IHN0cmxjcHkoYnVmZmVyLCByZXN1bHQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBsZW5ndGgp
OworCisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHN0
cmxjcHkoYnVmZmVyLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCksIGxlbmd0aCk7CisgICAgZWxzZQor
ICAgICAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFN0cmluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01Db252ZXJ0U3RyaW5ncy5jcHAKaW5kZXggN2QyZGUxOC4uMWUwNGExZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0U3RyaW5n
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0U3RyaW5n
cy5jcHAKQEAgLTkxLDcgKzkxLDkgQEAgc3RhdGljIGlubGluZSBTdHJpbmcgc3RyaW5nVG9VU1ZT
dHJpbmcoU3RyaW5nJiYgc3RyaW5nKQogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXN1bHQu
YXBwZW5kKGNvZGVQb2ludCk7CiAgICAgfQotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIGlkZW50aWZpZXJUb1VTVlN0cmlu
ZyhFeGVjU3RhdGUmLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcAppbmRl
eCA4OTVhMzAwLi4wN2ZiNzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcApAQCAtMjExLDcgKzIxMSw5IEBAIEpTQzo6
RW5jb2RlZEpTVmFsdWUgdGhyb3dBcmd1bWVudE11c3RCZUVudW1FcnJvcihKU0M6OkV4ZWNTdGF0
ZSYgc3RhdGUsIEpTQzo6VGhyCiAgICAgYXBwZW5kQXJndW1lbnRNdXN0QmUoYnVpbGRlciwgYXJn
dW1lbnRJbmRleCwgYXJndW1lbnROYW1lLCBmdW5jdGlvbkludGVyZmFjZU5hbWUsIGZ1bmN0aW9u
TmFtZSk7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJvbmUgb2Y6ICIpOwogICAgIGJ1aWxk
ZXIuYXBwZW5kKGV4cGVjdGVkVmFsdWVzKTsKLSAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcigm
c3RhdGUsIHNjb3BlLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoJnN0
YXRlLCBzY29wZSwgKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogSlNDOjpFbmNvZGVkSlNW
YWx1ZSB0aHJvd0FyZ3VtZW50TXVzdEJlRnVuY3Rpb25FcnJvcihKU0M6OkV4ZWNTdGF0ZSYgc3Rh
dGUsIEpTQzo6VGhyb3dTY29wZSYgc2NvcGUsIHVuc2lnbmVkIGFyZ3VtZW50SW5kZXgsIGNvbnN0
IGNoYXIqIGFyZ3VtZW50TmFtZSwgY29uc3QgY2hhciogaW50ZXJmYWNlTmFtZSwgY29uc3QgY2hh
ciogZnVuY3Rpb25OYW1lKQpAQCAtMjE5LDcgKzIyMSw5IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUg
dGhyb3dBcmd1bWVudE11c3RCZUZ1bmN0aW9uRXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBK
U0M6CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGFwcGVuZEFyZ3VtZW50TXVzdEJl
KGJ1aWxkZXIsIGFyZ3VtZW50SW5kZXgsIGFyZ3VtZW50TmFtZSwgaW50ZXJmYWNlTmFtZSwgZnVu
Y3Rpb25OYW1lKTsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoImEgZnVuY3Rpb24iKTsKLSAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcigmc3RhdGUsIHNjb3BlLCBidWlsZGVyLnRvU3RyaW5n
KCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoJnN0YXRlLCBzY29wZSwgKnN0cmluZyk7CisgICAgQ1JB
U0goKTsKIH0KIAogSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd0FyZ3VtZW50VHlwZUVycm9yKEpT
Qzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpUaHJvd1Njb3BlJiBzY29wZSwgdW5zaWduZWQgYXJn
dW1lbnRJbmRleCwgY29uc3QgY2hhciogYXJndW1lbnROYW1lLCBjb25zdCBjaGFyKiBmdW5jdGlv
bkludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgY29uc3QgY2hhciogZXhw
ZWN0ZWRUeXBlKQpAQCAtMjI4LDcgKzIzMiw5IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgdGhyb3dB
cmd1bWVudFR5cGVFcnJvcihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6VGhyb3dTY29wCiAg
ICAgYXBwZW5kQXJndW1lbnRNdXN0QmUoYnVpbGRlciwgYXJndW1lbnRJbmRleCwgYXJndW1lbnRO
YW1lLCBmdW5jdGlvbkludGVyZmFjZU5hbWUsIGZ1bmN0aW9uTmFtZSk7CiAgICAgYnVpbGRlci5h
cHBlbmRMaXRlcmFsKCJhbiBpbnN0YW5jZSBvZiAiKTsKICAgICBidWlsZGVyLmFwcGVuZChleHBl
Y3RlZFR5cGUpOwotICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUsIGJ1
aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcigmc3RhdGUsIHNjb3BlLCAqc3Ry
aW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIHRocm93QXR0cmlidXRlVHlwZUVycm9yKEpT
Qzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpUaHJvd1Njb3BlJiBzY29wZSwgY29uc3QgY2hhciog
aW50ZXJmYWNlTmFtZSwgY29uc3QgY2hhciogYXR0cmlidXRlTmFtZSwgY29uc3QgY2hhciogZXhw
ZWN0ZWRUeXBlKQpAQCAtMjQ1LDcgKzI1MSw5IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgdGhyb3dS
ZXF1aXJlZE1lbWJlclR5cGVFcnJvcihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6VGhyCiAg
ICAgYnVpbGRlci5hcHBlbmQobWVtYmVyTmFtZSk7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFs
KCIgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgIik7CiAgICAgYnVpbGRl
ci5hcHBlbmQoZXhwZWN0ZWRUeXBlKTsKLSAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcigmc3Rh
dGUsIHNjb3BlLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoJnN0YXRl
LCBzY29wZSwgKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogSlNDOjpFbmNvZGVkSlNWYWx1
ZSB0aHJvd0NvbnN0cnVjdG9yU2NyaXB0RXhlY3V0aW9uQ29udGV4dFVuYXZhaWxhYmxlRXJyb3Io
SlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OlRocm93U2NvcGUmIHNjb3BlLCBjb25zdCBjaGFy
KiBpbnRlcmZhY2VOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVu
c2lvbnMvQ29tYmluZWRVUkxGaWx0ZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRl
bnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5jcHAKaW5kZXggNzU1OGIyMi4uMjlkZTUwOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29tYmluZWRVUkxGaWx0
ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db21iaW5lZFVS
TEZpbHRlcnMuY3BwCkBAIC0xMDcsNyArMTA3LDkgQEAgc3RhdGljIFN0cmluZyBwcmVmaXhUcmVl
VmVydGV4VG9TdHJpbmcoY29uc3QgUHJlZml4VHJlZVZlcnRleCYgdmVydGV4LCBjb25zdCBIYXMK
ICAgICAgICAgfQogICAgIH0KICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICByZXR1cm4g
YnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGlj
IHZvaWQgcmVjdXJzaXZlUHJpbnQoY29uc3QgUHJlZml4VHJlZVZlcnRleCYgdmVydGV4LCBjb25z
dCBIYXNoTWFwPGNvbnN0IFByZWZpeFRyZWVWZXJ0ZXgqLCBBY3Rpb25MaXN0PiYgYWN0aW9ucywg
dW5zaWduZWQgZGVwdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5z
aW9ucy9Db250ZW50RXh0ZW5zaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb24uY3BwCmluZGV4IDYxMGUxYjguLjhlNTBmZjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb24u
Y3BwCkBAIC0xMTAsOCArMTEwLDExIEBAIHZvaWQgQ29udGVudEV4dGVuc2lvbjo6Y29tcGlsZUds
b2JhbERpc3BsYXlOb25lU3R5bGVTaGVldCgpCiAKICAgICBtX2dsb2JhbERpc3BsYXlOb25lU3R5
bGVTaGVldCA9IFN0eWxlU2hlZXRDb250ZW50czo6Y3JlYXRlKCk7CiAgICAgbV9nbG9iYWxEaXNw
bGF5Tm9uZVN0eWxlU2hlZXQtPnNldElzVXNlclN0eWxlU2hlZXQodHJ1ZSk7Ci0gICAgaWYgKCFt
X2dsb2JhbERpc3BsYXlOb25lU3R5bGVTaGVldC0+cGFyc2VTdHJpbmcoY3NzLnRvU3RyaW5nKCkp
KQotICAgICAgICBtX2dsb2JhbERpc3BsYXlOb25lU3R5bGVTaGVldCA9IG51bGxwdHI7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gY3NzLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgaWYgKCFtX2dsb2Jh
bERpc3BsYXlOb25lU3R5bGVTaGVldC0+cGFyc2VTdHJpbmcoKnN0cmluZykpCisgICAgICAgICAg
ICBtX2dsb2JhbERpc3BsYXlOb25lU3R5bGVTaGVldCA9IG51bGxwdHI7CisgICAgfSBlbHNlCisg
ICAgICAgIENSQVNIKCk7CiAKICAgICAvLyBUaGVzZSBhY3Rpb25zIGRvbid0IG5lZWQgdG8gYmUg
YXBwbGllZCBpbmRpdmlkdWFsbHkgYW55IG1vcmUuIFRoZXkgd2lsbCBhbGwgYmUgYXBwbGllZCB0
byBldmVyeSBwYWdlIGFzIGEgcHJlY29tcGlsZWQgc3R5bGUgc2hlZXQuCiAgICAgbV91bml2ZXJz
YWxBY3Rpb25zV2l0aG91dENvbmRpdGlvbnMucmVtb3ZlQWxsTWF0Y2hpbmcoaW5HbG9iYWxEaXNw
bGF5Tm9uZVN0eWxlU2hlZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4
dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nv
bnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHAKaW5kZXggNWUwMzVh
Ni4uNWMzN2VmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMv
Q29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50
ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwCkBAIC04MCw3ICs4MCwxMCBA
QCBzdGF0aWMgdm9pZCByZXNvbHZlUGVuZGluZ0Rpc3BsYXlOb25lQWN0aW9ucyhWZWN0b3I8U2Vy
aWFsaXplZEFjdGlvbkJ5dGU+JiBhY3RpbwogICAgIGZvciAoYXV0byYgcGVuZGluZ0Rpc3BsYXlO
b25lQWN0aW9ucyA6IG1hcC52YWx1ZXMoKSkgewogICAgICAgICB1aW50MzJfdCBhY3Rpb25Mb2Nh
dGlvbiA9IGFjdGlvbnMuc2l6ZSgpOwogICAgICAgICBhY3Rpb25zLmFwcGVuZChzdGF0aWNfY2Fz
dDxTZXJpYWxpemVkQWN0aW9uQnl0ZT4oQWN0aW9uVHlwZTo6Q1NTRGlzcGxheU5vbmVTZWxlY3Rv
cikpOwotICAgICAgICBzZXJpYWxpemVTdHJpbmcoYWN0aW9ucywgcGVuZGluZ0Rpc3BsYXlOb25l
QWN0aW9ucy5jb21iaW5lZFNlbGVjdG9ycy50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gcGVuZGluZ0Rpc3BsYXlOb25lQWN0aW9ucy5jb21iaW5lZFNlbGVjdG9ycy50b1N0
cmluZygpKQorICAgICAgICAgICAgc2VyaWFsaXplU3RyaW5nKGFjdGlvbnMsICpzdHJpbmcpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICBmb3IgKHVpbnQzMl90
IGNsaWVudExvY2F0aW9uIDogcGVuZGluZ0Rpc3BsYXlOb25lQWN0aW9ucy5jbGllbnRMb2NhdGlv
bnMpCiAgICAgICAgICAgICBhY3Rpb25Mb2NhdGlvbnNbY2xpZW50TG9jYXRpb25dID0gYWN0aW9u
TG9jYXRpb247CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVu
c2lvbnMvQ29udGVudEV4dGVuc2lvblN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblN0eWxlU2hlZXQuY3BwCmluZGV4IGUyNGEz
NjYuLmRlM2U4NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25z
L0NvbnRlbnRFeHRlbnNpb25TdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250
ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uU3R5bGVTaGVldC5jcHAKQEAgLTYwLDcgKzYw
LDEwIEBAIGJvb2wgQ29udGVudEV4dGVuc2lvblN0eWxlU2hlZXQ6OmFkZERpc3BsYXlOb25lU2Vs
ZWN0b3IoY29uc3QgU3RyaW5nJiBzZWxlY3RvciwKICAgICBjc3MuYXBwZW5kKCd7Jyk7CiAgICAg
Y3NzLmFwcGVuZChDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQ6OmRpc3BsYXlOb25lQ1NTUnVsZSgp
KTsKICAgICBjc3MuYXBwZW5kKCd9Jyk7Ci0gICAgbV9zdHlsZVNoZWV0LT5jb250ZW50cygpLnBh
cnNlU3RyaW5nKGNzcy50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBjc3MudG9T
dHJpbmcoKSkKKyAgICAgICAgbV9zdHlsZVNoZWV0LT5jb250ZW50cygpLnBhcnNlU3RyaW5nKCpz
dHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVGVybS5oIGIv
U291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVGVybS5oCmluZGV4IDBkNTE4MzMuLjZm
MzE5NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1Rlcm0u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9UZXJtLmgKQEAgLTI0Niw3
ICsyNDYsOSBAQCBpbmxpbmUgU3RyaW5nIFRlcm06OnRvU3RyaW5nKCkgY29uc3QKICAgICAgICAg
fQogICAgICAgICBidWlsZGVyLmFwcGVuZCgnXScpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChx
dWFudGlmaWVyVG9TdHJpbmcobV9xdWFudGlmaWVyKSk7Ci0gICAgICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0K
ICAgICBjYXNlIFRlcm1UeXBlOjpHcm91cDogewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7CkBAIC0yNTUsNyArMjU3LDkgQEAgaW5saW5lIFN0cmluZyBUZXJtOjp0b1N0cmluZygpIGNv
bnN0CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCh0ZXJtLnRvU3RyaW5nKCkpOwogICAgICAg
ICBidWlsZGVyLmFwcGVuZCgnKScpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChxdWFudGlmaWVy
VG9TdHJpbmcobV9xdWFudGlmaWVyKSk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICB9CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9s
bFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xs
VmFsdWUuY3BwCmluZGV4IGExYTU5N2IuLjJmMjVjOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuY3BwCkBAIC00Myw3ICs0
Myw5IEBAIFN0cmluZyBDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWU6OmN1c3RvbUNTU1Rl
eHQoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKG1fZW5kVmFsdWUtPmNzc1RleHQoKSk7
CiAgICAgfQogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTQW5pbWF0aW9uVHJp
Z2dlclNjcm9sbFZhbHVlOjplcXVhbHMoY29uc3QgQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZh
bHVlJiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NCYXNp
Y1NoYXBlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQmFzaWNTaGFwZXMuY3BwCmluZGV4
IDI0ZjIzMzQuLjE5MmEwNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NCYXNp
Y1NoYXBlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmNwcApA
QCAtMTA3LDcgKzEwNyw5IEBAIHN0YXRpYyBTdHJpbmcgYnVpbGRDaXJjbGVTdHJpbmcoY29uc3Qg
U3RyaW5nJiByYWRpdXMsIGNvbnN0IFN0cmluZyYgY2VudGVyWCwgY29uCiAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoY2VudGVyWSk7CiAgICAgfQogICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCIpIik7
Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJl
c3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiBTdHJpbmcgQ1NTQmFzaWNTaGFwZUNpcmNsZTo6Y3NzVGV4dCgpIGNvbnN0CkBAIC0xNjQs
NyArMTY2LDkgQEAgc3RhdGljIFN0cmluZyBidWlsZEVsbGlwc2VTdHJpbmcoY29uc3QgU3RyaW5n
JiByYWRpdXNYLCBjb25zdCBTdHJpbmcmIHJhZGl1c1ksIGMKICAgICAgICAgcmVzdWx0LmFwcGVu
ZChjZW50ZXJZKTsKICAgICB9CiAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIikiKTsKLSAgICBy
ZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0
cmluZyBDU1NCYXNpY1NoYXBlRWxsaXBzZTo6Y3NzVGV4dCgpIGNvbnN0CkBAIC0yMjQsNyArMjI4
LDkgQEAgc3RhdGljIFN0cmluZyBidWlsZFBhdGhTdHJpbmcoY29uc3QgV2luZFJ1bGUmIHdpbmRS
dWxlLCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnMKICAgICAgICAgcmVzdWx0LmFwcGVuZChib3gp
OwogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogU3RyaW5nIENTU0Jhc2ljU2hhcGVQYXRoOjpjc3NUZXh0KCkgY29uc3QK
QEAgLTI4MCw3ICsyODYsOSBAQCBzdGF0aWMgU3RyaW5nIGJ1aWxkUG9seWdvblN0cmluZyhjb25z
dCBXaW5kUnVsZSYgd2luZFJ1bGUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JgogCiAgICAgcmVzdWx0
LmFwcGVuZCgnKScpOwogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQ1NTQmFzaWNTaGFwZVBvbHlnb246OmNzc1RleHQo
KSBjb25zdApAQCAtMzc3LDcgKzM4NSw5IEBAIHN0YXRpYyBTdHJpbmcgYnVpbGRJbnNldFN0cmlu
Zyhjb25zdCBTdHJpbmcmIHRvcCwgY29uc3QgU3RyaW5nJiByaWdodCwgY29uc3QgU3RyCiAgICAg
ICAgIH0KICAgICB9CiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwotICAgIHJldHVybiByZXN1bHQu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIGlubGluZSB2
b2lkIHVwZGF0ZUNvcm5lclJhZGl1c1dpZHRoQW5kSGVpZ2h0KENTU1ByaW1pdGl2ZVZhbHVlKiBj
b3JuZXIsIFN0cmluZyYgd2lkdGgsIFN0cmluZyYgaGVpZ2h0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwCmluZGV4IGI3NTgzMDEuLmI5MWMwZjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5jcHAKQEAgLTE2Miw3ICsxNjIsOSBA
QCBzdGF0aWMgU3RyaW5nIGJ1aWxkQ3NzVGV4dChjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24pCiAg
ICAgcmVzdWx0LmFwcGVuZChleHByZXNzaW9uKTsKICAgICBpZiAoZXhwcmVzc2lvbkhhc1Npbmds
ZVRlcm0pCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4gcmVzdWx0LnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBDU1NDYWxjVmFs
dWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdApAQCAtNTYzLDcgKzU2NSw5IEBAIHByaXZhdGU6CiAg
ICAgICAgIH0KICAgICAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwogCi0gICAgICAgIHJldHVybiBy
ZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3Ry
aW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAg
ICB9CiAKICAgICBTdHJpbmcgY3VzdG9tQ1NTVGV4dCgpIGNvbnN0IGZpbmFsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IGVl
YWU0MjYuLjFhNDRkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0xNjkzLDcgKzE2OTMsOSBAQCBTdHJpbmcgQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpjc3NUZXh0KCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFw
cGVuZCgnOycpOwogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uOjpzZXRDc3NUZXh0KGNvbnN0IFN0cmluZyYpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0Nyb3NzZmFkZVZhbHVlLmNwcAppbmRleCA5ZWI2ZjBmLi5hZjkxYzIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHAKQEAgLTEwMiw3ICsxMDIsOSBAQCBTdHJp
bmcgQ1NTQ3Jvc3NmYWRlVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIHJlc3VsdC5h
cHBlbmRMaXRlcmFsKCIsICIpOwogICAgIHJlc3VsdC5hcHBlbmQobV9wZXJjZW50YWdlVmFsdWUt
PmNzc1RleHQoKSk7CiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwotICAgIHJldHVybiByZXN1bHQu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogRmxvYXRTaXplIENTU0Ny
b3NzZmFkZVZhbHVlOjpmaXhlZFNpemUoY29uc3QgUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAKaW5kZXggMWI2ZDdmMi4u
MGVlZWUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFs
dWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcApA
QCAtNjEsNyArNjEsOSBAQCBTdHJpbmcgQ1NTQ3Vyc29ySW1hZ2VWYWx1ZTo6Y3VzdG9tQ1NTVGV4
dCgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAnKTsKICAgICAgICAgcmVzdWx0LmFw
cGVuZE51bWJlcihtX2hvdFNwb3QueSgpKTsKICAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTVkdDdXJzb3JFbGVtZW50KiBD
U1NDdXJzb3JJbWFnZVZhbHVlOjp1cGRhdGVDdXJzb3JFbGVtZW50KGNvbnN0IERvY3VtZW50JiBk
b2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXN0b21JZGVudFZh
bHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXN0b21JZGVudFZhbHVlLmNwcAppbmRl
eCAyNmQ2ZTNiLi5mNWVlYjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vz
dG9tSWRlbnRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1c3RvbUlkZW50
VmFsdWUuY3BwCkBAIC01Niw3ICs1Niw5IEBAIFN0cmluZyBDU1NDdXN0b21JZGVudFZhbHVlOjpj
dXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgcmV0dXJuIGdldFByb3BlcnR5TmFtZUF0b21p
Y1N0cmluZyhtX3Byb3BlcnR5SWQpOwogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBz
ZXJpYWxpemVJZGVudGlmaWVyKG1fc3RyaW5nLCBidWlsZGVyKTsKLSAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdl
VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwCmlu
ZGV4IGVhYWI3MDMuLjIzMGUwNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
aWx0ZXJJbWFnZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1h
Z2VWYWx1ZS5jcHAKQEAgLTUzLDcgKzUzLDkgQEAgU3RyaW5nIENTU0ZpbHRlckltYWdlVmFsdWU6
OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCIsICIpOwog
ICAgIHJlc3VsdC5hcHBlbmQobV9maWx0ZXJWYWx1ZS0+Y3NzVGV4dCgpKTsKICAgICByZXN1bHQu
YXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBGbG9hdFNpemUgQ1NTRmlsdGVySW1hZ2VWYWx1ZTo6Zml4ZWRTaXpl
KGNvbnN0IFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZh
Y2VSdWxlLmNwcAppbmRleCAwZGRhMWIyLi44NTk0NmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTRm9udEZhY2VSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Rm9udEZhY2VSdWxlLmNwcApAQCAtNTcsNyArNTcsOSBAQCBTdHJpbmcgQ1NTRm9udEZhY2VSdWxl
Ojpjc3NUZXh0KCkgY29uc3QKICAgICBpZiAoIWRlc2NzLmlzRW1wdHkoKSkKICAgICAgICAgcmVz
dWx0LmFwcGVuZCgnICcpOwogICAgIHJlc3VsdC5hcHBlbmQoJ30nKTsKLSAgICByZXR1cm4gcmVz
dWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgQ1NTRm9u
dEZhY2VSdWxlOjpyZWF0dGFjaChTdHlsZVJ1bGVCYXNlJiBydWxlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCmluZGV4IDgxZDhhNzUuLjJmMzQ2MWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAKQEAgLTgxLDcgKzgxLDkg
QEAgU3RyaW5nIENTU0ZvbnRGYWNlU3JjVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAg
ICAgICByZXN1bHQuYXBwZW5kKG1fZm9ybWF0KTsKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnKScp
OwogICAgIH0KLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAKIGJvb2wgQ1NTRm9udEZhY2VTcmNWYWx1ZTo6dHJhdmVyc2VTdWJyZXNvdXJj
ZXMoY29uc3QgV1RGOjpGdW5jdGlvbjxib29sIChjb25zdCBDYWNoZWRSZXNvdXJjZSYpPiYgaGFu
ZGxlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmVhdHVy
ZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmVhdHVyZVZhbHVlLmNwcApp
bmRleCA3ZmYwN2YzLi40NzQ2MjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Rm9udEZlYXR1cmVWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGZWF0
dXJlVmFsdWUuY3BwCkBAIC01MCw3ICs1MCw5IEBAIFN0cmluZyBDU1NGb250RmVhdHVyZVZhbHVl
OjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAg
ICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV92YWx1ZSk7CiAgICAgfQotICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENT
U0ZvbnRGZWF0dXJlVmFsdWU6OmVxdWFscyhjb25zdCBDU1NGb250RmVhdHVyZVZhbHVlJiBvdGhl
cikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U3R5bGVSYW5n
ZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U3R5bGVSYW5nZVZhbHVlLmNw
cAppbmRleCAwY2RjZGJmLi5lYTY2NmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udFN0eWxlUmFuZ2VWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Zv
bnRTdHlsZVJhbmdlVmFsdWUuY3BwCkBAIC0zOSw3ICszOSw5IEBAIFN0cmluZyBDU1NGb250U3R5
bGVSYW5nZVZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICBidWlsZGVyLmFwcGVuZChm
b250U3R5bGVWYWx1ZS0+Y3NzVGV4dCgpKTsKICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAg
IGJ1aWxkZXIuYXBwZW5kKG9ibGlxdWVWYWx1ZXMtPmNzc1RleHQoKSk7Ci0gICAgcmV0dXJuIGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NT
Rm9udFN0eWxlUmFuZ2VWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0ZvbnRTdHlsZVJhbmdlVmFsdWUm
IG90aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTdHls
ZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U3R5bGVWYWx1ZS5jcHAKaW5k
ZXggMjg1MGUyMy4uOGM0ZTg1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Zv
bnRTdHlsZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFN0eWxlVmFs
dWUuY3BwCkBAIC0zOSw3ICszOSw5IEBAIFN0cmluZyBDU1NGb250U3R5bGVWYWx1ZTo6Y3VzdG9t
Q1NTVGV4dCgpIGNvbnN0CiAgICAgYnVpbGRlci5hcHBlbmQoZm9udFN0eWxlVmFsdWUtPmNzc1Rl
eHQoKSk7CiAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICBidWlsZGVyLmFwcGVuZChvYmxp
cXVlVmFsdWUtPmNzc1RleHQoKSk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTRm9udFN0eWxlVmFsdWU6OmVxdWFs
cyhjb25zdCBDU1NGb250U3R5bGVWYWx1ZSYgb3RoZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTRm9udFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250VmFsdWUuY3BwCmluZGV4IDc2NmMxMTMuLjFjZjc4YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250VmFsdWUuY3BwCkBAIC02NSw3ICs2NSw5IEBAIFN0cmluZyBDU1NGb250VmFsdWU6OmN1c3Rv
bUNTU1RleHQoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKGZhbWlseS0+Y3NzVGV4dCgp
KTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTRm9udFZhbHVlOjplcXVhbHMoY29uc3QgQ1NTRm9udFZh
bHVlJiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250
VmFyaWF0aW9uVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYXJpYXRpb25W
YWx1ZS5jcHAKaW5kZXggYTIwODI2MS4uY2Q1YjMyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHAKQEAgLTQ4LDcgKzQ4LDkgQEAgU3RyaW5nIENTU0Zv
bnRWYXJpYXRpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKGMpOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiJyAiKTsKICAgICBidWlsZGVy
LmFwcGVuZE51bWJlcihtX3ZhbHVlKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDU1NGb250VmFyaWF0aW9uVmFsdWU6
OmVxdWFscyhjb25zdCBDU1NGb250VmFyaWF0aW9uVmFsdWUmIG90aGVyKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Z1bmN0aW9uVmFsdWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0Z1bmN0aW9uVmFsdWUuY3BwCmluZGV4IDc1ZWYwYzEuLmJiZGRmZjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGdW5jdGlvblZhbHVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHAKQEAgLTM3LDcgKzM3LDkgQEAg
U3RyaW5nIENTU0Z1bmN0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIHJlc3Vs
dC5hcHBlbmQoJygnKTsKICAgICByZXN1bHQuYXBwZW5kKENTU1ZhbHVlTGlzdDo6Y3VzdG9tQ1NT
VGV4dCgpKTsKICAgICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTR3JhZGllbnRWYWx1ZS5jcHAKaW5kZXggZWVmMjk1Yi4uMDgzMzdmZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcApAQCAtNjg0LDcgKzY4NCw5IEBAIFN0cmluZyBD
U1NMaW5lYXJHcmFkaWVudFZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICB9CiAKICAg
ICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiAvLyBDb21wdXRlIHRoZSBlbmRwb2ludHMgc28gdGhh
dCBhIGdyYWRpZW50IG9mIHRoZSBnaXZlbiBhbmdsZSBjb3ZlcnMgYSBib3ggb2YgdGhlIGdpdmVu
IHNpemUuCkBAIC0xMDAyLDcgKzEwMDQsOSBAQCBTdHJpbmcgQ1NTUmFkaWFsR3JhZGllbnRWYWx1
ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgfQogCiAgICAgcmVzdWx0LmFwcGVuZCgnKScp
OwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBy
ZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogZmxvYXQgQ1NTUmFkaWFsR3JhZGllbnRWYWx1ZTo6cmVzb2x2ZVJhZGl1cyhDU1NQcmlt
aXRpdmVWYWx1ZSYgcmFkaXVzLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhJiBjb252
ZXJzaW9uRGF0YSwgZmxvYXQqIHdpZHRoT3JIZWlnaHQpCkBAIC0xMzMwLDcgKzEzMzQsOSBAQCBT
dHJpbmcgQ1NTQ29uaWNHcmFkaWVudFZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICB9
CiAgICAgCiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogUmVmPEdyYWRpZW50PiBDU1NDb25p
Y0dyYWRpZW50VmFsdWU6OmNyZWF0ZUdyYWRpZW50KFJlbmRlckVsZW1lbnQmLCBjb25zdCBGbG9h
dFNpemUmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRBdXRvUmVwZWF0
VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRBdXRvUmVwZWF0VmFsdWUuY3Bw
CmluZGV4IGQ1YmM0NDkuLmZkNzkwZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3Jp
ZEF1dG9SZXBlYXRWYWx1ZS5jcHAKQEAgLTQzLDcgKzQzLDkgQEAgU3RyaW5nIENTU0dyaWRBdXRv
UmVwZWF0VmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIHJlc3VsdC5hcHBlbmQoIiwg
Iik7CiAgICAgcmVzdWx0LmFwcGVuZChDU1NWYWx1ZUxpc3Q6OmN1c3RvbUNTU1RleHQoKSk7CiAg
ICAgcmVzdWx0LmFwcGVuZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwCmluZGV4IGUw
Yjc4NjUuLjhiYzNmZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVt
cGxhdGVBcmVhc1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZFRlbXBs
YXRlQXJlYXNWYWx1ZS5jcHAKQEAgLTgwLDcgKzgwLDkgQEAgU3RyaW5nIENTU0dyaWRUZW1wbGF0
ZUFyZWFzVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAgICBpZiAocm93ICE9IG1f
cm93Q291bnQgLSAxKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICB9Ci0g
ICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIGJvb2wgQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0dyaWRU
ZW1wbGF0ZUFyZWFzVmFsdWUmIG90aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdl
U2V0VmFsdWUuY3BwCmluZGV4IGE5N2RjMjEuLmUzNzUwYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTSW1hZ2VTZXRWYWx1ZS5jcHAKQEAgLTE0Niw3ICsxNDYsOSBAQCBTdHJpbmcgQ1NTSW1hZ2VT
ZXRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgfQogCiAgICAgcmVzdWx0LmFwcGVu
ZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogYm9vbCBDU1NJbWFnZVNldFZhbHVlOjp0cmF2ZXJzZVN1YnJlc291cmNlcyhj
b25zdCBXVEY6OkZ1bmN0aW9uPGJvb2wgKGNvbnN0IENhY2hlZFJlc291cmNlJik+JiBoYW5kbGVy
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUuY3BwCmluZGV4IDRjNjY2MTMuLmY5
YWFlZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVsZS5jcHAKQEAgLTcyLDcgKzcyLDkg
QEAgU3RyaW5nIENTU0ltcG9ydFJ1bGU6OmNzc1RleHQoKSBjb25zdAogICAgIH0KICAgICByZXN1
bHQuYXBwZW5kKCc7Jyk7CiAgICAgCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBDU1NTdHlsZVNoZWV0KiBDU1NJbXBvcnRSdWxlOjpz
dHlsZVNoZWV0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlm
cmFtZVJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lUnVsZS5jcHAKaW5k
ZXggODFlOTk1OC4uZGNhM2Y3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0tl
eWZyYW1lUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lUnVsZS5j
cHAKQEAgLTY3LDcgKzY3LDkgQEAgU3RyaW5nIFN0eWxlUnVsZUtleWZyYW1lOjprZXlUZXh0KCkg
Y29uc3QKICAgICAgICAga2V5VGV4dC5hcHBlbmQoJyUnKTsKICAgICB9CiAKLSAgICByZXR1cm4g
a2V5VGV4dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGtleVRleHQudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KICAgICAKIGJv
b2wgU3R5bGVSdWxlS2V5ZnJhbWU6OnNldEtleVRleHQoY29uc3QgU3RyaW5nJiBrZXlUZXh0KQpA
QCAtOTAsNyArOTIsOSBAQCBTdHJpbmcgU3R5bGVSdWxlS2V5ZnJhbWU6OmNzc1RleHQoKSBjb25z
dAogICAgIGlmICghZGVjbHMuaXNFbXB0eSgpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCcgJyk7
CiAgICAgcmVzdWx0LmFwcGVuZCgnfScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogQ1NTS2V5ZnJhbWVSdWxlOjpDU1NLZXlmcmFt
ZVJ1bGUoU3R5bGVSdWxlS2V5ZnJhbWUmIGtleWZyYW1lLCBDU1NLZXlmcmFtZXNSdWxlKiBwYXJl
bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVzUnVsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVzUnVsZS5jcHAKaW5kZXggOWYwMDBkOS4u
NzdiMTgyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lc1J1bGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZXNSdWxlLmNwcApAQCAtMTk4
LDcgKzE5OCw5IEBAIFN0cmluZyBDU1NLZXlmcmFtZXNSdWxlOjpjc3NUZXh0KCkgY29uc3QKICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnXG4nKTsKICAgICB9CiAgICAgcmVzdWx0LmFwcGVuZCgnfScp
OwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBy
ZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogdW5zaWduZWQgQ1NTS2V5ZnJhbWVzUnVsZTo6bGVuZ3RoKCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMaW5lQm94Q29udGFpblZhbHVlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NMaW5lQm94Q29udGFpblZhbHVlLmNwcAppbmRleCAxOWZkZjhiLi4z
ZGViM2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTGluZUJveENvbnRhaW5W
YWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xpbmVCb3hDb250YWluVmFsdWUu
Y3BwCkBAIC03Myw3ICs3Myw5IEBAIFN0cmluZyBDU1NMaW5lQm94Q29udGFpblZhbHVlOjpjdXN0
b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgdGV4dC5hcHBlbmRMaXRlcmFsKCJpbml0aWFsLWxl
dHRlciIpOwogICAgIH0KIAotICAgIHJldHVybiB0ZXh0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gdGV4dC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWFy
a3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNYXJrdXAuY3BwCmluZGV4IDgxZmU4ODgu
LjYwOWM3MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNYXJrdXAuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNYXJrdXAuY3BwCkBAIC0xODYsNyArMTg2LDkgQEAg
U3RyaW5nIHNlcmlhbGl6ZVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgc2VyaWFsaXplU3RyaW5nKHN0cmluZywgYnVpbGRlcik7
Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIFN0cmluZyBzZXJpYWxpemVVUkwoY29uc3QgU3RyaW5nJiBzdHJpbmcpCkBAIC0yMDQs
NyArMjA2LDkgQEAgU3RyaW5nIHNlcmlhbGl6ZUFzU3RyaW5nT3JDdXN0b21JZGVudChjb25zdCBT
dHJpbmcmIHN0cmluZykKICAgICBpZiAoaXNDU1NUb2tlbml6ZXJJZGVudGlmaWVyKHN0cmluZykp
IHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBzZXJpYWxpemVJZGVu
dGlmaWVyKHN0cmluZywgYnVpbGRlcik7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICByZXR1
cm4gc2VyaWFsaXplU3RyaW5nKHN0cmluZyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTTWVkaWFSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUu
Y3BwCmluZGV4IGIwOTRlZGQuLjE3NGY1YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NNZWRpYVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUu
Y3BwCkBAIC01Nyw3ICs1Nyw5IEBAIFN0cmluZyBDU1NNZWRpYVJ1bGU6OmNzc1RleHQoKSBjb25z
dAogICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCJ7IFxuIik7CiAgICAgYXBwZW5kQ3NzVGV4dEZv
ckl0ZW1zKHJlc3VsdCk7CiAgICAgcmVzdWx0LmFwcGVuZCgnfScpOwotICAgIHJldHVybiByZXN1
bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogTWVkaWFMaXN0KiBD
U1NNZWRpYVJ1bGU6Om1lZGlhKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NOYW1lc3BhY2VSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NOYW1lc3BhY2VS
dWxlLmNwcAppbmRleCAzZDNlYzZmLi43MDY4OTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTTmFtZXNwYWNlUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU05h
bWVzcGFjZVJ1bGUuY3BwCkBAIC02MCw3ICs2MCw5IEBAIFN0cmluZyBDU1NOYW1lc3BhY2VSdWxl
Ojpjc3NUZXh0KCkgY29uc3QKICAgICByZXN1bHQuYXBwZW5kKCJ1cmwoIik7CiAgICAgcmVzdWx0
LmFwcGVuZChzZXJpYWxpemVTdHJpbmcobmFtZXNwYWNlVVJJKCkpKTsKICAgICByZXN1bHQuYXBw
ZW5kKCIpOyIpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogdm9pZCBDU1NOYW1lc3BhY2VSdWxlOjpyZWF0dGFjaChTdHlsZVJ1bGVC
YXNlJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYWdlUnVsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFnZVJ1bGUuY3BwCmluZGV4IDQ3Y2Y0NTYuLmU2OWRhNWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYWdlUnVsZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhZ2VSdWxlLmNwcApAQCAtNjQsNyArNjQsOSBAQCBTdHJpbmcg
Q1NTUGFnZVJ1bGU6OnNlbGVjdG9yVGV4dCgpIGNvbnN0CiAgICAgICAgICAgICB0ZXh0LmFwcGVu
ZChwYWdlU3BlY2lmaWNhdGlvbik7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIHRleHQu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0ZXh0LnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgQ1NTUGFnZVJ1bGU6
OnNldFNlbGVjdG9yVGV4dChjb25zdCBTdHJpbmcmIHNlbGVjdG9yVGV4dCkKQEAgLTkwLDcgKzky
LDkgQEAgU3RyaW5nIENTU1BhZ2VSdWxlOjpjc3NUZXh0KCkgY29uc3QKICAgICBpZiAoIWRlY2xz
LmlzRW1wdHkoKSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICcpOwogICAgIHJlc3VsdC5hcHBl
bmQoJ30nKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAKIHZvaWQgQ1NTUGFnZVJ1bGU6OnJlYXR0YWNoKFN0eWxlUnVsZUJhc2UmIHJ1
bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAppbmRleCBhNzYxMjc2
Li44M2UxNmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFs
dWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKQEAg
LTEwNDUsNyArMTA0NSw5IEBAIEFMV0FZU19JTkxJTkUgU3RyaW5nIENTU1ByaW1pdGl2ZVZhbHVl
Ojpmb3JtYXROdW1iZXJGb3JDdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFw
cGVuZChTdHJpbmcobV92YWx1ZS5zdHJpbmcpKTsKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnKScp
OwogCi0gICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgY2FzZSBDU1NfQ09VTlRFUl9OQU1FOgogICAg
ICAgICByZXR1cm4gImNvdW50ZXIoIiArIFN0cmluZyhtX3ZhbHVlLnN0cmluZykgKyAnKSc7CkBA
IC0xMDY5LDcgKzEwNzEsOSBAQCBBTFdBWVNfSU5MSU5FIFN0cmluZyBDU1NQcmltaXRpdmVWYWx1
ZTo6Zm9ybWF0TnVtYmVyRm9yQ3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIH0KICAgICAg
ICAgcmVzdWx0LmFwcGVuZCgnKScpOwogCi0gICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmco
KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgY2FzZSBD
U1NfUkVDVDoKICAgICAgICAgcmV0dXJuIHJlY3RWYWx1ZSgpLT5jc3NUZXh0KCk7CkBAIC0xMTEy
LDcgKzExMTYsOSBAQCBBTFdBWVNfSU5MSU5FIFN0cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6Zm9y
bWF0TnVtYmVyRm9yQ3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCcpJyk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3Vs
dC50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmco
KSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0K
ICNlbmRpZgogICAgIGNhc2UgQ1NTX0NBTEM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9w
ZXJ0eVNvdXJjZURhdGEuY3BwCmluZGV4IDc1Yjc5OTAuLmZkMmU4MmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3BwCkBAIC05Niw3ICs5Niw5IEBAIFN0
cmluZyBDU1NQcm9wZXJ0eVNvdXJjZURhdGE6OnRvU3RyaW5nKCkgY29uc3QKICAgICBpZiAoaW1w
b3J0YW50KQogICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiICFpbXBvcnRhbnQiKTsKICAg
ICByZXN1bHQuYXBwZW5kKCc7Jyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB1bnNpZ25lZCBDU1NQcm9wZXJ0eVNvdXJjZURhdGE6
Omhhc2goKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKaW5kZXggMWZlNDJjZC4u
NTZiZmMyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCkBAIC03MjYsMjYgKzcyNiwz
MSBAQCBTdHJpbmcgQ1NTU2VsZWN0b3I6OnNlbGVjdG9yVGV4dChjb25zdCBTdHJpbmcmIHJpZ2h0
U2lkZSkgY29uc3QKICAgICAgICAgY3MgPSBjcy0+dGFnSGlzdG9yeSgpOwogICAgIH0KIAorICAg
IFN0cmluZyBzdHJpbmc7CisgICAgaWYgKGF1dG8gcyA9IHN0ci50b1N0cmluZygpKQorICAgICAg
ICBzdHJpbmcgPSAqczsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgaWYgKGNvbnN0
IENTU1NlbGVjdG9yKiB0YWdIaXN0b3J5ID0gY3MtPnRhZ0hpc3RvcnkoKSkgewogICAgICAgICBz
d2l0Y2ggKGNzLT5yZWxhdGlvbigpKSB7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkRlc2Nl
bmRhbnRTcGFjZToKLSAgICAgICAgICAgIHJldHVybiB0YWdIaXN0b3J5LT5zZWxlY3RvclRleHQo
IiAiICsgc3RyLnRvU3RyaW5nKCkgKyByaWdodFNpZGUpOworICAgICAgICAgICAgcmV0dXJuIHRh
Z0hpc3RvcnktPnNlbGVjdG9yVGV4dCgiICIgKyBzdHJpbmcgKyByaWdodFNpZGUpOwogICAgICAg
ICBjYXNlIENTU1NlbGVjdG9yOjpDaGlsZDoKLSAgICAgICAgICAgIHJldHVybiB0YWdIaXN0b3J5
LT5zZWxlY3RvclRleHQoIiA+ICIgKyBzdHIudG9TdHJpbmcoKSArIHJpZ2h0U2lkZSk7CisgICAg
ICAgICAgICByZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0b3JUZXh0KCIgPiAiICsgc3RyaW5nICsg
cmlnaHRTaWRlKTsKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6RGlyZWN0QWRqYWNlbnQ6Ci0g
ICAgICAgICAgICByZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0b3JUZXh0KCIgKyAiICsgc3RyLnRv
U3RyaW5nKCkgKyByaWdodFNpZGUpOworICAgICAgICAgICAgcmV0dXJuIHRhZ0hpc3RvcnktPnNl
bGVjdG9yVGV4dCgiICsgIiArIHN0cmluZyArIHJpZ2h0U2lkZSk7CiAgICAgICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OkluZGlyZWN0QWRqYWNlbnQ6Ci0gICAgICAgICAgICByZXR1cm4gdGFnSGlzdG9y
eS0+c2VsZWN0b3JUZXh0KCIgfiAiICsgc3RyLnRvU3RyaW5nKCkgKyByaWdodFNpZGUpOworICAg
ICAgICAgICAgcmV0dXJuIHRhZ0hpc3RvcnktPnNlbGVjdG9yVGV4dCgiIH4gIiArIHN0cmluZyAr
IHJpZ2h0U2lkZSk7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlN1YnNlbGVjdG9yOgogICAg
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAjaWYgQVNTRVJUX0RJU0FCTEVECiAgICAg
ICAgICAgICBGQUxMVEhST1VHSDsKICNlbmRpZgogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpT
aGFkb3dEZXNjZW5kYW50OgotICAgICAgICAgICAgcmV0dXJuIHRhZ0hpc3RvcnktPnNlbGVjdG9y
VGV4dChzdHIudG9TdHJpbmcoKSArIHJpZ2h0U2lkZSk7CisgICAgICAgICAgICByZXR1cm4gdGFn
SGlzdG9yeS0+c2VsZWN0b3JUZXh0KHN0cmluZyArIHJpZ2h0U2lkZSk7CiAgICAgICAgIH0KICAg
ICB9Ci0gICAgcmV0dXJuIHN0ci50b1N0cmluZygpICsgcmlnaHRTaWRlOworICAgIHJldHVybiBz
dHJpbmcgKyByaWdodFNpZGU7CiB9CiAKIHZvaWQgQ1NTU2VsZWN0b3I6OnNldEF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB2YWx1ZSwgYm9vbCBpc0Nhc2VJbnNlbnNpdGl2ZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxpc3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAKaW5kZXggNTdlZmE2Ny4uYWUzMzAwZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAKQEAgLTEzOCw3ICsxMzgsOSBAQCBT
dHJpbmcgQ1NTU2VsZWN0b3JMaXN0OjpzZWxlY3RvcnNUZXh0KCkgY29uc3QKIHsKICAgICBTdHJp
bmdCdWlsZGVyIHJlc3VsdDsKICAgICBidWlsZFNlbGVjdG9yc1RleHQocmVzdWx0KTsKLSAgICBy
ZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZv
aWQgQ1NTU2VsZWN0b3JMaXN0OjpidWlsZFNlbGVjdG9yc1RleHQoU3RyaW5nQnVpbGRlciYgc3Ry
aW5nQnVpbGRlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTaGFk
b3dWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2hhZG93VmFsdWUuY3BwCmluZGV4
IDk0OTQ3ZDcuLmUyOWM4NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTaGFk
b3dWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NoYWRvd1ZhbHVlLmNwcApA
QCAtNjksNyArNjksOSBAQCBTdHJpbmcgQ1NTU2hhZG93VmFsdWU6OmN1c3RvbUNTU1RleHQoKSBj
b25zdAogICAgICAgICB0ZXh0LmFwcGVuZChzdHlsZS0+Y3NzVGV4dCgpKTsKICAgICB9CiAKLSAg
ICByZXR1cm4gdGV4dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHRleHQudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9v
bCBDU1NTaGFkb3dWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU1NoYWRvd1ZhbHVlJiBvdGhlcikgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAKaW5kZXggYmI4ZDIxYy4uNTgwOGZkMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAKQEAgLTEyMCw3ICsxMjAsOSBAQCBTdHJp
bmcgQ1NTU3R5bGVSdWxlOjpjc3NUZXh0KCkgY29uc3QKICAgICBpZiAoIWRlY2xzLmlzRW1wdHko
KSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICcpOwogICAgIHJlc3VsdC5hcHBlbmQoJ30nKTsK
LSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVz
dWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIHZvaWQgQ1NTU3R5bGVSdWxlOjpyZWF0dGFjaChTdHlsZVJ1bGVCYXNlJiBydWxlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCmluZGV4IDFlY2M1YmEuLjg2OTg0ZmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAKQEAgLTMxNiw5ICszMTYsMTIgQEAgRXhjZXB0
aW9uT3I8aW50PiBDU1NTdHlsZVNoZWV0OjphZGRSdWxlKGNvbnN0IFN0cmluZyYgc2VsZWN0b3Is
IGNvbnN0IFN0cmluZyYgc3QKICAgICBpZiAoIXN0eWxlLmlzRW1wdHkoKSkKICAgICAgICAgdGV4
dC5hcHBlbmQoJyAnKTsKICAgICB0ZXh0LmFwcGVuZCgnfScpOwotICAgIGF1dG8gaW5zZXJ0UnVs
ZVJlc3VsdCA9IGluc2VydFJ1bGUodGV4dC50b1N0cmluZygpLCBpbmRleC52YWx1ZV9vcihsZW5n
dGgoKSkpOwotICAgIGlmIChpbnNlcnRSdWxlUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQotICAgICAg
ICByZXR1cm4gaW5zZXJ0UnVsZVJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gdGV4dC50b1N0cmluZygpKSB7CisgICAgICAgIGF1dG8gaW5zZXJ0UnVsZVJl
c3VsdCA9IGluc2VydFJ1bGUoKnN0cmluZywgaW5kZXgudmFsdWVfb3IobGVuZ3RoKCkpKTsKKyAg
ICAgICAgaWYgKGluc2VydFJ1bGVSZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgICAgICBy
ZXR1cm4gaW5zZXJ0UnVsZVJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CisgICAgfSBlbHNlCisg
ICAgICAgIENSQVNIKCk7CiAgICAgCiAgICAgLy8gQXMgcGVyIE1pY3Jvc29mdCBkb2N1bWVudGF0
aW9uLCBhbHdheXMgcmV0dXJuIC0xLgogICAgIHJldHVybiAtMTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTdXBwb3J0c1J1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1N1cHBvcnRzUnVsZS5jcHAKaW5kZXggZTEzZTEzYi4uZmNiZTMyNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N1cHBvcnRzUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1N1cHBvcnRzUnVsZS5jcHAKQEAgLTUwLDcgKzUwLDkgQEAgU3RyaW5nIENTU1N1cHBv
cnRzUnVsZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgYXBwZW5kQ3NzVGV4dEZvckl0ZW1zKHJlc3Vs
dCk7CiAgICAgcmVzdWx0LmFwcGVuZCgnfScpOwogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQ1NTU3VwcG9ydHNSdWxl
Ojpjb25kaXRpb25UZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NUaW1pbmdGdW5jdGlvblZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUaW1pbmdG
dW5jdGlvblZhbHVlLmNwcAppbmRleCA5MGVmNmNkLi4wOTI4ODJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVGltaW5nRnVuY3Rpb25WYWx1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuY3BwCkBAIC00Miw3ICs0Miw5IEBAIFN0
cmluZyBDU1NDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBj
b25zdAogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKICAgICBidWlsZGVyLmFwcGVu
ZE51bWJlcihtX3kyKTsKICAgICBidWlsZGVyLmFwcGVuZCgnKScpOyAgICAKLSAgICByZXR1cm4g
YnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBD
U1NDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uVmFsdWU6OmVxdWFscyhjb25zdCBDU1NDdWJpY0Jl
emllclRpbWluZ0Z1bmN0aW9uVmFsdWUmIG90aGVyKSBjb25zdApAQCAtNTksNyArNjEsOSBAQCBT
dHJpbmcgQ1NTU3RlcHNUaW1pbmdGdW5jdGlvblZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QK
ICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsIHN0YXJ0KSIpOwogICAgIGVsc2UKICAg
ICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsIGVuZCkiKTsKLSAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDU1NTdGVw
c1RpbWluZ0Z1bmN0aW9uVmFsdWU6OmVxdWFscyhjb25zdCBDU1NTdGVwc1RpbWluZ0Z1bmN0aW9u
VmFsdWUmIG90aGVyKSBjb25zdApAQCAtNzMsNyArNzcsOSBAQCBTdHJpbmcgQ1NTRnJhbWVzVGlt
aW5nRnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJmcmFtZXMoIik7CiAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV9mcmFtZXMp
OwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSIpOwotICAgIHJldHVybiBidWlsZGVyLnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU0ZyYW1lc1Rp
bWluZ0Z1bmN0aW9uVmFsdWU6OmVxdWFscyhjb25zdCBDU1NGcmFtZXNUaW1pbmdGdW5jdGlvblZh
bHVlJiBvdGhlcikgY29uc3QKQEAgLTkzLDcgKzk5LDkgQEAgU3RyaW5nIENTU1NwcmluZ1RpbWlu
Z0Z1bmN0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIGJ1aWxkZXIuYXBwZW5k
KCcgJyk7CiAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV9pbml0aWFsVmVsb2NpdHkpOwogICAg
IGJ1aWxkZXIuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTU3ByaW5nVGltaW5nRnVuY3Rpb25W
YWx1ZTo6ZXF1YWxzKGNvbnN0IENTU1NwcmluZ1RpbWluZ0Z1bmN0aW9uVmFsdWUmIG90aGVyKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0LmNwcAppbmRleCBiNmUwYzJjNS4uMzA5MGUz
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAKQEAgLTEwNyw3ICsxMDcsOSBAQCBT
dHJpbmcgQ1NTVmFsdWVMaXN0OjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgcmVzdWx0
LmFwcGVuZCh2YWx1ZS5nZXQoKS5jc3NUZXh0KCkpOwogICAgIH0KIAotICAgIHJldHVybiByZXN1
bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDU1NWYWx1
ZUxpc3Q6OmVxdWFscyhjb25zdCBDU1NWYWx1ZUxpc3QmIG90aGVyKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhcmlhYmxlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFyaWFibGVEYXRhLmNwcAppbmRleCA5OGM5ZDA5Li4zMTE4ZGU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFyaWFibGVEYXRhLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVmFyaWFibGVEYXRhLmNwcApAQCAtNjgsNyArNjgsMTAgQEAgdm9pZCBD
U1NWYXJpYWJsZURhdGE6OmNvbnN1bWVBbmRVcGRhdGVUb2tlbnMoY29uc3QgQ1NTUGFyc2VyVG9r
ZW5SYW5nZSYgcmFuZ2UpCiAgICAgICAgIGlmICh0b2tlbi5oYXNTdHJpbmdCYWNraW5nKCkpCiAg
ICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b2tlbi52YWx1ZSgpKTsKICAgICB9Ci0g
ICAgbV9iYWNraW5nU3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgbV9iYWNraW5n
U3RyaW5nID0gKnN0cmluZzsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgaWYgKG1f
YmFja2luZ1N0cmluZy5pczhCaXQoKSkKICAgICAgICAgdXBkYXRlVG9rZW5zPExDaGFyPihyYW5n
ZSk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVz
cGFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmNwcAppbmRleCA5
MTM1MjM3Li5jZTE1ZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFt
ZXNwYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmNwcApA
QCAtODQsNyArODQsOSBAQCBTdHJpbmcgRE9NQ1NTTmFtZXNwYWNlOjplc2NhcGUoY29uc3QgU3Ry
aW5nJiBpZGVudCkKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgc2VyaWFsaXpl
SWRlbnRpZmllcihpZGVudCwgYnVpbGRlcik7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9ET01NYXRyaXhSZWFkT25seS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9N
TWF0cml4UmVhZE9ubHkuY3BwCmluZGV4IGY3NGI0NjUuLjc4ODIyOGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXhSZWFkT25seS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0RPTU1hdHJpeFJlYWRPbmx5LmNwcApAQCAtNDUwLDcgKzQ1MCw5IEBAIEV4Y2VwdGlv
bk9yPFN0cmluZz4gRE9NTWF0cml4UmVhZE9ubHk6OnRvU3RyaW5nKCkgY29uc3QKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoU3RyaW5nOjpudW1iZXJUb1N0cmluZ0VDTUFTY3JpcHQobV9tYXRyaXgu
bTQ0KCkpKTsKICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4gYnVp
bGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuIFdURk1vdmUoKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0Rl
cHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRl
ZENTU09NVmFsdWVMaXN0LmNwcAppbmRleCBlNDk2ODg0Li41ZTk4ZTIxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNwcApAQCAtNTQsNyArNTQs
OSBAQCBTdHJpbmcgRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0Ojpjc3NUZXh0KCkgY29uc3QKICAg
ICAgICAgcmVzdWx0LmFwcGVuZCh2YWx1ZS5nZXQoKS5jc3NUZXh0KCkpOwogICAgIH0KICAgICAK
LSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVz
dWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwCmluZGV4IDU4MWY1ZTguLmMyNTg2YTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0ZvbnRGYWNlLmNwcApAQCAtMzI4LDcgKzMyOCw5IEBAIFN0cmluZyBGb250RmFjZTo6
c3R5bGUoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgICAgICBidWls
ZGVyLmFwcGVuZChtYXhpbXVtTm9uS2V5d29yZC0+b2JsaXF1ZVZhbHVlLT5jc3NUZXh0KCkpOwog
ICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogU3RyaW5nIEZvbnRGYWNlOjp3ZWlnaHQoKSBjb25zdApAQCAtMzQ5LDcgKzM1
MSw5IEBAIFN0cmluZyBGb250RmFjZTo6d2VpZ2h0KCkgY29uc3QKICAgICBidWlsZGVyLmFwcGVu
ZChtaW5pbXVtTm9uS2V5d29yZC0+Y3NzVGV4dCgpKTsKICAgICBidWlsZGVyLmFwcGVuZCgnICcp
OwogICAgIGJ1aWxkZXIuYXBwZW5kKG1heGltdW1Ob25LZXl3b3JkLT5jc3NUZXh0KCkpOwotICAg
IHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiBTdHJpbmcgRm9udEZhY2U6OnN0cmV0Y2goKSBjb25zdApAQCAtMzcwLDcgKzM3NCw5IEBAIFN0
cmluZyBGb250RmFjZTo6c3RyZXRjaCgpIGNvbnN0CiAgICAgYnVpbGRlci5hcHBlbmQobWluaW11
bU5vbktleXdvcmQtPmNzc1RleHQoKSk7CiAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICBi
dWlsZGVyLmFwcGVuZChtYXhpbXVtTm9uS2V5d29yZC0+Y3NzVGV4dCgpKTsKLSAgICByZXR1cm4g
YnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5n
IEZvbnRGYWNlOjp1bmljb2RlUmFuZ2UoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL01lZGlhTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcApp
bmRleCA0NTc1MGFmLi40MjY5NDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVk
aWFMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcApAQCAtMTUx
LDcgKzE1MSw5IEBAIFN0cmluZyBNZWRpYVF1ZXJ5U2V0OjptZWRpYVRleHQoKSBjb25zdAogICAg
ICAgICB0ZXh0LmFwcGVuZChxdWVyeS5jc3NUZXh0KCkpOwogICAgICAgICBuZWVkQ29tbWEgPSB0
cnVlOwogICAgIH0KLSAgICByZXR1cm4gdGV4dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IHRleHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogdm9pZCBNZWRpYVF1ZXJ5U2V0OjpzaHJpbmtUb0ZpdCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeS5jcHAKaW5kZXggOWQwYmFkZi4uNDA3MGQ3YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRp
YVF1ZXJ5LmNwcApAQCAtNjYsNyArNjYsOSBAQCBTdHJpbmcgTWVkaWFRdWVyeTo6c2VyaWFsaXpl
KCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZChleHByZXNzaW9uLnNlcmlhbGl6ZSgpKTsK
ICAgICAgICAgbmVlZHNBbmQgPSB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gcmVzdWx0LnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIE1lZGlhUXVlcnk6Ok1lZGlhUXVl
cnkoUmVzdHJpY3RvciByZXN0cmljdG9yLCBjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSwgVmVjdG9y
PE1lZGlhUXVlcnlFeHByZXNzaW9uPiYmIGV4cHJlc3Npb25zKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9NZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAKaW5kZXggMmQ4ZTVmMC4uZTBhMjJmMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwCkBAIC0yNDQsNyArMjQ0
LDEwIEBAIFN0cmluZyBNZWRpYVF1ZXJ5RXhwcmVzc2lvbjo6c2VyaWFsaXplKCkgY29uc3QKICAg
ICB9CiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwogCi0gICAgbV9zZXJpYWxpemF0aW9uQ2FjaGUg
PSByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJp
bmcoKSkKKyAgICAgICAgbV9zZXJpYWxpemF0aW9uQ2FjaGUgPSAqc3RyaW5nOworICAgIGVsc2UK
KyAgICAgICAgQ1JBU0goKTsKICAgICByZXR1cm4gbV9zZXJpYWxpemF0aW9uQ2FjaGU7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvUmVjdC5oCmluZGV4IGVjMWFhZTguLmRmYWUxNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9SZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1JlY3QuaApAQCAtMTAzLDcg
KzEwMyw5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAg
ICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVBy
b3BlcnRpZXMuY3BwCmluZGV4IDNjOGNlNDMuLmJmZjE3MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVByb3BlcnRpZXMuY3BwCkBAIC0zNDMsNyArMzQzLDkgQEAgU3RyaW5nIFN0eWxlUHJvcGVy
dGllczo6Zm9udFZhbHVlKCkgY29uc3QKICAgICByZXN1bHQuYXBwZW5kKGZvbnRGYW1pbHlQcm9w
ZXJ0eS52YWx1ZSgpLT5jc3NUZXh0KCkpOwogICAgIGlmIChpc0luaXRpYWxPckluaGVyaXQoY29t
bW9uVmFsdWUpKQogICAgICAgICByZXR1cm4gY29tbW9uVmFsdWU7Ci0gICAgcmV0dXJuIHJlc3Vs
dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgU3R5bGVQ
cm9wZXJ0aWVzOjpnZXQ0VmFsdWVzKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHNob3J0
aGFuZCkgY29uc3QKQEAgLTM5Nyw3ICszOTksOSBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpn
ZXQ0VmFsdWVzKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHNob3J0aGFuZCkgY29ucwog
ICAgICAgICByZXN1bHQuYXBwZW5kKCcgJyk7CiAgICAgICAgIHJlc3VsdC5hcHBlbmQobGVmdC52
YWx1ZSgpLT5jc3NUZXh0KCkpOwogICAgIH0KLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6Omdl
dExheWVyZWRTaG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBzaG9y
dGhhbmQpIGNvbnN0CkBAIC01NDMsNyArNTQ3LDkgQEAgU3RyaW5nIFN0eWxlUHJvcGVydGllczo6
Z2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHMK
IAogICAgIGlmIChyZXN1bHQuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0g
ICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3Vs
dC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpnZXRTaG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVBy
b3BlcnR5U2hvcnRoYW5kJiBzaG9ydGhhbmQpIGNvbnN0CkBAIC01NzIsNyArNTc4LDkgQEAgU3Ry
aW5nIFN0eWxlUHJvcGVydGllczo6Z2V0U2hvcnRoYW5kVmFsdWUoY29uc3QgU3R5bGVQcm9wZXJ0
eVNob3J0aGFuZCYgc2hvcnRoYW4KICAgICAgICAgcmV0dXJuIGNvbW1vblZhbHVlOwogICAgIGlm
IChyZXN1bHQuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0gICAgcmV0dXJu
IHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiAvLyBvbmx5
IHJldHVybnMgYSBub24tbnVsbCB2YWx1ZSBpZiBhbGwgcHJvcGVydGllcyBoYXZlIHRoZSBzYW1l
LCBub24tbnVsbCB2YWx1ZQpAQCAtNjM0LDcgKzY0MiwxMSBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0
aWVzOjpib3JkZXJQcm9wZXJ0eVZhbHVlKENvbW1vblZhbHVlTW9kZSB2YWx1ZU1vZGUpIGNvbnN0
CiAgICAgfQogICAgIGlmIChpc0luaXRpYWxPckluaGVyaXQoY29tbW9uVmFsdWUpKQogICAgICAg
ICByZXR1cm4gY29tbW9uVmFsdWU7Ci0gICAgcmV0dXJuIHJlc3VsdC5pc0VtcHR5KCkgPyBTdHJp
bmcoKSA6IHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChyZXN1bHQuaXNFbXB0eSgpKQorICAg
ICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFJlZlB0
cjxDU1NWYWx1ZT4gU3R5bGVQcm9wZXJ0aWVzOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3Bl
cnR5SUQgcHJvcGVydHlJRCkgY29uc3QKQEAgLTExNDYsNyArMTE1OCw5IEBAIFN0cmluZyBTdHls
ZVByb3BlcnRpZXM6OmFzVGV4dCgpIGNvbnN0CiAgICAgfQogCiAgICAgQVNTRVJUKCFudW1EZWNs
cyBeICFyZXN1bHQuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgU3R5bGVQcm9wZXJ0aWVzOjpoYXNDU1NP
TVdyYXBwZXIoKSBjb25zdApAQCAtMTQwMyw3ICsxNDE3LDkgQEAgU3RyaW5nIFN0eWxlUHJvcGVy
dGllczo6UHJvcGVydHlSZWZlcmVuY2U6OmNzc1RleHQoKSBjb25zdAogICAgIGlmIChpc0ltcG9y
dGFudCgpKQogICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiICFpbXBvcnRhbnQiKTsKICAg
ICByZXN1bHQuYXBwZW5kKCc7Jyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogICAgIAogUmVmPERlZmVycmVkU3R5bGVQcm9wZXJ0aWVz
PiBEZWZlcnJlZFN0eWxlUHJvcGVydGllczo6Y3JlYXRlKGNvbnN0IENTU1BhcnNlclRva2VuUmFu
Z2UmIHRva2VuUmFuZ2UsIENTU0RlZmVycmVkUGFyc2VyJiBwYXJzZXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9XZWJLaXRDU1NNYXRyaXguY3BwCmluZGV4IDdiZGU2NGQuLjFmNzhkMTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwCkBAIC0yNDksNyArMjQ5LDkgQEAgRXhjZXB0aW9u
T3I8U3RyaW5nPiBXZWJLaXRDU1NNYXRyaXg6OnRvU3RyaW5nKCkgY29uc3QKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoU3RyaW5nOjpudW1iZXJUb1N0cmluZ0VDTUFTY3JpcHQobV9tYXRyaXgubTQ0
KCkpKTsKICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuIFdURk1vdmUoKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktp
dENTU1ZpZXdwb3J0UnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVmlld3Bv
cnRSdWxlLmNwcAppbmRleCBjYmQxNzJmLi5kZTZlYzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcApAQCAtNzIsNyArNzIsOSBAQCBTdHJpbmcgV2Vi
S2l0Q1NTVmlld3BvcnRSdWxlOjpjc3NUZXh0KCkgY29uc3QKIAogICAgIHJlc3VsdC5hcHBlbmQo
J30nKTsKIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogdm9pZCBXZWJLaXRDU1NWaWV3cG9ydFJ1bGU6OnJlYXR0YWNoKFN0eWxlUnVs
ZUJhc2UmIHJ1bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Bh
cnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAKaW5kZXgg
OTU0YWIwOC4uZWNiZmFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNw
cApAQCAtMjk5LDEwICsyOTksMTMgQEAgUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNl
Rm9udEZhY2VEZXNjcmlwdG9yKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgY28KICAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIiA6ICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKHByb3BlcnR5VmFs
dWUpOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiOyB9Iik7Ci0gICAgUmVmUHRyPFN0eWxl
UnVsZUJhc2U+IHJ1bGUgPSBwYXJzZVJ1bGUoY29udGV4dCwgbnVsbHB0ciwgYnVpbGRlci50b1N0
cmluZygpKTsKLSAgICBpZiAoIXJ1bGUgfHwgIXJ1bGUtPmlzRm9udEZhY2VSdWxlKCkpCi0gICAg
ICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBkb3duY2FzdDxTdHlsZVJ1bGVGb250RmFj
ZT4oKnJ1bGUuZ2V0KCkpLnByb3BlcnRpZXMoKS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHByb3BlcnR5
SUQpOworICAgIGlmIChhdXRvIHN0cmluZyAgPSBidWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAg
ICAgUmVmUHRyPFN0eWxlUnVsZUJhc2U+IHJ1bGUgPSBwYXJzZVJ1bGUoY29udGV4dCwgbnVsbHB0
ciwgKnN0cmluZyk7CisgICAgICAgIGlmICghcnVsZSB8fCAhcnVsZS0+aXNGb250RmFjZVJ1bGUo
KSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gZG93bmNhc3Q8
U3R5bGVSdWxlRm9udEZhY2U+KCpydWxlLmdldCgpKS5wcm9wZXJ0aWVzKCkuZ2V0UHJvcGVydHlD
U1NWYWx1ZShwcm9wZXJ0eUlEKTsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmNwcAppbmRleCA3YjhlNjAzLi41
ZDEwMTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRv
a2VuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmNw
cApAQCAtMzkyLDcgKzM5Miw4IEBAIHZvaWQgQ1NTUGFyc2VyVG9rZW46OnNlcmlhbGl6ZShTdHJp
bmdCdWlsZGVyJiBidWlsZGVyKSBjb25zdAogICAgICAgICBicmVhazsKICAgICBjYXNlIEZ1bmN0
aW9uVG9rZW46CiAgICAgICAgIHNlcmlhbGl6ZUlkZW50aWZpZXIodmFsdWUoKS50b1N0cmluZygp
LCBidWlsZGVyKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCcoJyk7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCcoJyk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEF0S2V5d29y
ZFRva2VuOgogICAgICAgICBidWlsZGVyLmFwcGVuZCgnQCcpOwogICAgICAgICBzZXJpYWxpemVJ
ZGVudGlmaWVyKHZhbHVlKCkudG9TdHJpbmcoKSwgYnVpbGRlcik7CkBAIC00MDQsNjkgKzQwNSw5
NyBAQCB2b2lkIENTU1BhcnNlclRva2VuOjpzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYgYnVpbGRl
cikgY29uc3QKICAgICBjYXNlIFVybFRva2VuOgogICAgICAgICBidWlsZGVyLmFwcGVuZCgidXJs
KCIpOwogICAgICAgICBzZXJpYWxpemVJZGVudGlmaWVyKHZhbHVlKCkudG9TdHJpbmcoKSwgYnVp
bGRlcik7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgnKScpOworICAgICAgICBidWls
ZGVyLmFwcGVuZCgnKScpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBEZWxpbWl0ZXJUb2tl
bjoKLSAgICAgICAgaWYgKGRlbGltaXRlcigpID09ICdcXCcpCi0gICAgICAgICAgICByZXR1cm4g
YnVpbGRlci5hcHBlbmQoIlxcXG4iKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKGRl
bGltaXRlcigpKTsKKyAgICAgICAgaWYgKGRlbGltaXRlcigpID09ICdcXCcpIHsKKyAgICAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCJcXFxuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKyAgICAgICAgYnVpbGRlci5hcHBlbmQoZGVsaW1pdGVyKCkpOworICAgICAgICByZXR1cm47
CiAgICAgY2FzZSBOdW1iZXJUb2tlbjoKICAgICAgICAgLy8gVGhlc2Ugd29uJ3QgcHJvcGVybHkg
cHJlc2VydmUgdGhlIE51bWVyaWNWYWx1ZVR5cGUgZmxhZwogICAgICAgICBpZiAobV9udW1lcmlj
U2lnbiA9PSBQbHVzU2lnbikKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcrJyk7Ci0gICAg
ICAgIHJldHVybiBidWlsZGVyLmFwcGVuZE51bWJlcihudW1lcmljVmFsdWUoKSk7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG51bWVyaWNWYWx1ZSgpKTsKKyAgICAgICAgcmV0dXJuOwog
ICAgIGNhc2UgUGVyY2VudGFnZVRva2VuOgogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihu
dW1lcmljVmFsdWUoKSk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgnJScpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZCgnJScpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBEaW1l
bnNpb25Ub2tlbjoKICAgICAgICAgLy8gVGhpcyB3aWxsIGluY29ycmVjdGx5IHNlcmlhbGl6ZSBl
LmcuIDRlM2UyIGFzIDQwMDBlMgogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihudW1lcmlj
VmFsdWUoKSk7CiAgICAgICAgIHNlcmlhbGl6ZUlkZW50aWZpZXIodmFsdWUoKS50b1N0cmluZygp
LCBidWlsZGVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBVbmljb2RlUmFuZ2VUb2tlbjoK
LSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKFN0cmluZzo6Zm9ybWF0KCJVKyVYLSVYIiwg
dW5pY29kZVJhbmdlU3RhcnQoKSwgdW5pY29kZVJhbmdlRW5kKCkpKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQoU3RyaW5nOjpmb3JtYXQoIlUrJVgtJVgiLCB1bmljb2RlUmFuZ2VTdGFydCgpLCB1
bmljb2RlUmFuZ2VFbmQoKSkpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBTdHJpbmdUb2tl
bjoKLSAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVN0cmluZyh2YWx1ZSgpLnRvU3RyaW5nKCksIGJ1
aWxkZXIpOworICAgICAgICBzZXJpYWxpemVTdHJpbmcodmFsdWUoKS50b1N0cmluZygpLCBidWls
ZGVyKTsKKyAgICAgICAgcmV0dXJuOwogCiAgICAgY2FzZSBJbmNsdWRlTWF0Y2hUb2tlbjoKLSAg
ICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCJ+PSIpOworICAgICAgICBidWlsZGVyLmFwcGVu
ZCgifj0iKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRGFzaE1hdGNoVG9rZW46Ci0gICAg
ICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgifD0iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQo
Inw9Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFByZWZpeE1hdGNoVG9rZW46Ci0gICAg
ICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgiXj0iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQo
Il49Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFN1ZmZpeE1hdGNoVG9rZW46Ci0gICAg
ICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgiJD0iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQo
IiQ9Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFN1YnN0cmluZ01hdGNoVG9rZW46Ci0g
ICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgiKj0iKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQoIio9Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIENvbHVtblRva2VuOgotICAgICAg
ICByZXR1cm4gYnVpbGRlci5hcHBlbmQoInx8Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJ8
fCIpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBDRE9Ub2tlbjoKLSAgICAgICAgcmV0dXJu
IGJ1aWxkZXIuYXBwZW5kKCI8IS0tIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCI8IS0tIik7
CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIENEQ1Rva2VuOgotICAgICAgICByZXR1cm4gYnVp
bGRlci5hcHBlbmQoIi0tPiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiLS0+Iik7CisgICAg
ICAgIHJldHVybjsKICAgICBjYXNlIEJhZFN0cmluZ1Rva2VuOgotICAgICAgICByZXR1cm4gYnVp
bGRlci5hcHBlbmQoIidcbiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiJ1xuIik7CisgICAg
ICAgIHJldHVybjsKICAgICBjYXNlIEJhZFVybFRva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRl
ci5hcHBlbmQoInVybCgoKSIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgidXJsKCgpIik7Cisg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIFdoaXRlc3BhY2VUb2tlbjoKLSAgICAgICAgcmV0dXJu
IGJ1aWxkZXIuYXBwZW5kKCcgJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CisgICAg
ICAgIHJldHVybjsKICAgICBjYXNlIENvbG9uVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVy
LmFwcGVuZCgnOicpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnOicpOworICAgICAgICByZXR1
cm47CiAgICAgY2FzZSBTZW1pY29sb25Ub2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBw
ZW5kKCc7Jyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCc7Jyk7CisgICAgICAgIHJldHVybjsK
ICAgICBjYXNlIENvbW1hVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgnLCcp
OworICAgICAgICBidWlsZGVyLmFwcGVuZCgnLCcpOworICAgICAgICByZXR1cm47CiAgICAgY2Fz
ZSBMZWZ0UGFyZW50aGVzaXNUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCco
Jyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcoJyk7CisgICAgICAgIHJldHVybjsKICAgICBj
YXNlIFJpZ2h0UGFyZW50aGVzaXNUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5k
KCcpJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7CisgICAgICAgIHJldHVybjsKICAg
ICBjYXNlIExlZnRCcmFja2V0VG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgn
WycpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnWycpOworICAgICAgICByZXR1cm47CiAgICAg
Y2FzZSBSaWdodEJyYWNrZXRUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCdd
Jyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCddJyk7CisgICAgICAgIHJldHVybjsKICAgICBj
YXNlIExlZnRCcmFjZVRva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJ3snKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmQoJ3snKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2Ug
UmlnaHRCcmFjZVRva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJ30nKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQoJ30nKTsKKyAgICAgICAgcmV0dXJuOwogCiAgICAgY2FzZSBF
T0ZUb2tlbjoKICAgICBjYXNlIENvbW1lbnRUb2tlbjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW5SYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1BhcnNlclRva2VuUmFuZ2UuY3BwCmluZGV4IGNiOWM1ODAuLmVmZTVhMmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW5SYW5n
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlblJhbmdl
LmNwcApAQCAtMTEzLDcgKzExMyw5IEBAIFN0cmluZyBDU1NQYXJzZXJUb2tlblJhbmdlOjpzZXJp
YWxpemUoKSBjb25zdAogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBmb3IgKGNvbnN0
IENTU1BhcnNlclRva2VuKiBpdCA9IG1fZmlyc3Q7IGl0IDwgbV9sYXN0OyArK2l0KQogICAgICAg
ICBpdC0+c2VyaWFsaXplKGJ1aWxkZXIpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCmluZGV4
IGJjZWNlNzAuLjMwOTA3NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUHJvcGVydHlQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UHJvcGVydHlQYXJzZXIuY3BwCkBAIC0xMDE2LDcgKzEwMTYsOSBAQCBzdGF0aWMgU3RyaW5nIGNv
bmNhdGVuYXRlRmFtaWx5TmFtZShDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKICAgICB9CiAg
ICAgaWYgKCFhZGRlZFNwYWNlICYmIGlzQ1NTV2lkZUtleXdvcmQoZmlyc3RUb2tlbi5pZCgpKSkK
ICAgICAgICAgcmV0dXJuIFN0cmluZygpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBj
b25zdW1lRmFtaWx5TmFtZShDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKQEAgLTMyNjQsNyAr
MzI2NiwxMCBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gcGFyc2VHcmlkVGVtcGxhdGVBcmVhc0Nv
bHVtbk5hbWVzKGNvbnN0IFN0cmluZyYgZ3JpZFJvd05hbQogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCB0ZXh0Lmxlbmd0aCgpOyArK2kpIHsKICAgICAgICAgaWYgKGlzQ1NTU3BhY2UodGV4
dFtpXSkpIHsKICAgICAgICAgICAgIGlmICghYXJlYU5hbWUuaXNFbXB0eSgpKSB7Ci0gICAgICAg
ICAgICAgICAgY29sdW1uTmFtZXMuYXBwZW5kKGFyZWFOYW1lLnRvU3RyaW5nKCkpOworICAgICAg
ICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGFyZWFOYW1lLnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICAgICAgICAgIGNvbHVtbk5hbWVzLmFwcGVuZCgqc3RyaW5nKTsKKyAgICAgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAgICAgYXJl
YU5hbWUuY2xlYXIoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAt
MzI3MywxNCArMzI3OCwyMCBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gcGFyc2VHcmlkVGVtcGxh
dGVBcmVhc0NvbHVtbk5hbWVzKGNvbnN0IFN0cmluZyYgZ3JpZFJvd05hbQogICAgICAgICAgICAg
aWYgKGFyZWFOYW1lID09ICIuIikKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
ICAgIGlmICghYXJlYU5hbWUuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgY29sdW1uTmFt
ZXMuYXBwZW5kKGFyZWFOYW1lLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IGFyZWFOYW1lLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbHVt
bk5hbWVzLmFwcGVuZCgqc3RyaW5nKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAgICAgYXJlYU5hbWUuY2xlYXIoKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmICghaXNOYW1lQ29k
ZVBvaW50KHRleHRbaV0pKQogICAgICAgICAgICAgICAgIHJldHVybiBWZWN0b3I8U3RyaW5nPigp
OwogICAgICAgICAgICAgaWYgKGFyZWFOYW1lID09ICIuIikgewotICAgICAgICAgICAgICAgIGNv
bHVtbk5hbWVzLmFwcGVuZChhcmVhTmFtZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBhcmVhTmFtZS50b1N0cmluZygpKQorICAgICAgICAgICAgICAgICAg
ICBjb2x1bW5OYW1lcy5hcHBlbmQoKnN0cmluZyk7CisgICAgICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgICAgIGFyZWFOYW1lLmNsZWFy
KCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTMyODgsOCArMzI5OSwxMiBAQCBzdGF0
aWMgVmVjdG9yPFN0cmluZz4gcGFyc2VHcmlkVGVtcGxhdGVBcmVhc0NvbHVtbk5hbWVzKGNvbnN0
IFN0cmluZyYgZ3JpZFJvd05hbQogICAgICAgICBhcmVhTmFtZS5hcHBlbmQodGV4dFtpXSk7CiAg
ICAgfQogCi0gICAgaWYgKCFhcmVhTmFtZS5pc0VtcHR5KCkpCi0gICAgICAgIGNvbHVtbk5hbWVz
LmFwcGVuZChhcmVhTmFtZS50b1N0cmluZygpKTsKKyAgICBpZiAoIWFyZWFOYW1lLmlzRW1wdHko
KSkgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBhcmVhTmFtZS50b1N0cmluZygpKQorICAg
ICAgICAgICAgY29sdW1uTmFtZXMuYXBwZW5kKCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBDUkFTSCgpOworICAgIH0KIAogICAgIHJldHVybiBjb2x1bW5OYW1lczsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTVG9rZW5pemVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTVG9rZW5pemVyLmNwcAppbmRleCAxZjFhMjNlLi4z
Yjg0ZTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Rva2VuaXpl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NUb2tlbml6ZXIuY3BwCkBA
IC02MDUsOCArNjA1LDExIEBAIENTU1BhcnNlclRva2VuIENTU1Rva2VuaXplcjo6Y29uc3VtZVN0
cmluZ1Rva2VuVW50aWwoVUNoYXIgZW5kaW5nQ29kZVBvaW50KQogICAgIFN0cmluZ0J1aWxkZXIg
b3V0cHV0OwogICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgIFVDaGFyIGNjID0gY29uc3VtZSgp
OwotICAgICAgICBpZiAoY2MgPT0gZW5kaW5nQ29kZVBvaW50IHx8IGNjID09IGtFbmRPZkZpbGVN
YXJrZXIpCi0gICAgICAgICAgICByZXR1cm4gQ1NTUGFyc2VyVG9rZW4oU3RyaW5nVG9rZW4sIHJl
Z2lzdGVyU3RyaW5nKG91dHB1dC50b1N0cmluZygpKSk7CisgICAgICAgIGlmIChjYyA9PSBlbmRp
bmdDb2RlUG9pbnQgfHwgY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgeworICAgICAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gb3V0cHV0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IENTU1BhcnNlclRva2VuKFN0cmluZ1Rva2VuLCByZWdpc3RlclN0cmluZygqc3RyaW5nKSk7Cisg
ICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CiAgICAgICAgIGlmIChpc05ld0xpbmUoY2Mp
KSB7CiAgICAgICAgICAgICByZWNvbnN1bWUoY2MpOwogICAgICAgICAgICAgcmV0dXJuIENTU1Bh
cnNlclRva2VuKEJhZFN0cmluZ1Rva2VuKTsKQEAgLTY4MCwxMyArNjgzLDE5IEBAIENTU1BhcnNl
clRva2VuIENTU1Rva2VuaXplcjo6Y29uc3VtZVVybFRva2VuKCkKICAgICBTdHJpbmdCdWlsZGVy
IHJlc3VsdDsKICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICBVQ2hhciBjYyA9IGNvbnN1bWUo
KTsKLSAgICAgICAgaWYgKGNjID09ICcpJyB8fCBjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKQotICAg
ICAgICAgICAgcmV0dXJuIENTU1BhcnNlclRva2VuKFVybFRva2VuLCByZWdpc3RlclN0cmluZyhy
ZXN1bHQudG9TdHJpbmcoKSkpOworICAgICAgICBpZiAoY2MgPT0gJyknIHx8IGNjID09IGtFbmRP
ZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0
cmluZygpKQorICAgICAgICAgICAgICAgIHJldHVybiBDU1NQYXJzZXJUb2tlbihVcmxUb2tlbiwg
cmVnaXN0ZXJTdHJpbmcoKnN0cmluZykpOworICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAg
fQogCiAgICAgICAgIGlmIChpc0hUTUxTcGFjZShjYykpIHsKICAgICAgICAgICAgIG1faW5wdXQu
YWR2YW5jZVVudGlsTm9uV2hpdGVzcGFjZSgpOwotICAgICAgICAgICAgaWYgKGNvbnN1bWVJZk5l
eHQoJyknKSB8fCBtX2lucHV0Lm5leHRJbnB1dENoYXIoKSA9PSBrRW5kT2ZGaWxlTWFya2VyKQot
ICAgICAgICAgICAgICAgIHJldHVybiBDU1NQYXJzZXJUb2tlbihVcmxUb2tlbiwgcmVnaXN0ZXJT
dHJpbmcocmVzdWx0LnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgIGlmIChjb25zdW1lSWZOZXh0
KCcpJykgfHwgbV9pbnB1dC5uZXh0SW5wdXRDaGFyKCkgPT0ga0VuZE9mRmlsZU1hcmtlcikgewor
ICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUGFyc2VyVG9rZW4oVXJsVG9rZW4sIHJlZ2lzdGVy
U3RyaW5nKCpzdHJpbmcpKTsKKyAgICAgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICAgICAg
fQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApAQCAtNzkxLDcgKzgwMCw5IEBAIFN0
cmluZ1ZpZXcgQ1NTVG9rZW5pemVyOjpjb25zdW1lTmFtZSgpCiAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgfQogICAgICAgICByZWNvbnN1bWUoY2MpOwotICAgICAgICByZXR1cm4gcmVn
aXN0ZXJTdHJpbmcocmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiByZWdpc3RlclN0cmluZygq
c3RyaW5nKTsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9CiAKQEAgLTgxMSwxMSArODIyLDE0
IEBAIFVDaGFyMzIgQ1NTVG9rZW5pemVyOjpjb25zdW1lRXNjYXBlKCkKICAgICAgICAgfTsKICAg
ICAgICAgY29uc3VtZVNpbmdsZVdoaXRlc3BhY2VJZk5leHQoKTsKICAgICAgICAgYm9vbCBvayA9
IGZhbHNlOwotICAgICAgICBVQ2hhcjMyIGNvZGVQb2ludCA9IGhleENoYXJzLnRvU3RyaW5nKCku
dG9VSW50U3RyaWN0KCZvaywgMTYpOwotICAgICAgICBBU1NFUlQob2spOwotICAgICAgICBpZiAo
IWNvZGVQb2ludCB8fCAoMHhEODAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhERkZG
KSB8fCBjb2RlUG9pbnQgPiAweDEwRkZGRikKLSAgICAgICAgICAgIHJldHVybiByZXBsYWNlbWVu
dENoYXJhY3RlcjsKLSAgICAgICAgcmV0dXJuIGNvZGVQb2ludDsKKyAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gaGV4Q2hhcnMudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgVUNoYXIzMiBjb2Rl
UG9pbnQgPSBzdHJpbmctPnRvVUludFN0cmljdCgmb2ssIDE2KTsKKyAgICAgICAgICAgIEFTU0VS
VChvayk7CisgICAgICAgICAgICBpZiAoIWNvZGVQb2ludCB8fCAoMHhEODAwIDw9IGNvZGVQb2lu
dCAmJiBjb2RlUG9pbnQgPD0gMHhERkZGKSB8fCBjb2RlUG9pbnQgPiAweDEwRkZGRikKKyAgICAg
ICAgICAgICAgICByZXR1cm4gcmVwbGFjZW1lbnRDaGFyYWN0ZXI7CisgICAgICAgICAgICByZXR1
cm4gY29kZVBvaW50OworICAgICAgICB9CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAg
aWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRGF0YXNldERPTVN0cmluZ01hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YXNldERP
TVN0cmluZ01hcC5jcHAKaW5kZXggZjJkODQyMC4uZDU2NjdiNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcApAQCAtNjUsNyArNjUsOSBAQCBzdGF0aWMgU3Ry
aW5nIGNvbnZlcnRBdHRyaWJ1dGVOYW1lVG9Qcm9wZXJ0eU5hbWUoY29uc3QgU3RyaW5nJiBuYW1l
KQogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBib29sIHByb3Bl
cnR5TmFtZU1hdGNoZXNBdHRyaWJ1dGVOYW1lKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBj
b25zdCBTdHJpbmcmIGF0dHJpYnV0ZU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggMGEy
MzI2My4uODgxNDU0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMjE5Nyw3ICsyMTk3LDEw
IEBAIHZvaWQgRWxlbWVudDo6Zm9ybWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1bnNpZ25l
ZCBsZW5ndGgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQocyk7CiAgICAgfQogCi0gICAg
c3RybmNweShidWZmZXIsIHJlc3VsdC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAt
IDEpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBz
dHJuY3B5KGJ1ZmZlciwgc3RyaW5nLT51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsKKyAgICBl
bHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDRi
MWU4NzIuLjhmY2JkN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTE1MTksNyArMTUxOSw5IEBAIFN0
cmluZyBOb2RlOjp0ZXh0Q29udGVudChib29sIGNvbnZlcnRCUnNUb05ld2xpbmVzKSBjb25zdAog
ICAgIFN0cmluZ0J1aWxkZXIgY29udGVudDsKICAgICBib29sIGlzTnVsbFN0cmluZyA9IHRydWU7
CiAgICAgYXBwZW5kVGV4dENvbnRlbnQodGhpcywgY29udmVydEJSc1RvTmV3bGluZXMsIGlzTnVs
bFN0cmluZywgY29udGVudCk7Ci0gICAgcmV0dXJuIGlzTnVsbFN0cmluZyA/IFN0cmluZygpIDog
Y29udGVudC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGNvbnRlbnQudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuIGlzTnVsbFN0cmluZyA/IFN0cmluZygpIDogKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBFeGNlcHRpb25Pcjx2b2lkPiBOb2RlOjpzZXRUZXh0Q29udGVu
dChjb25zdCBTdHJpbmcmIHRleHQpCkBAIC0xNzMwLDcgKzE3MzIsMTAgQEAgdm9pZCBOb2RlOjpz
aG93Tm9kZShjb25zdCBjaGFyKiBwcmVmaXgpIGNvbnN0CiAgICAgICAgIFN0cmluZ0J1aWxkZXIg
YXR0cnM7CiAgICAgICAgIGFwcGVuZEF0dHJpYnV0ZURlc2ModGhpcywgYXR0cnMsIGNsYXNzQXR0
ciwgIiBDTEFTUz0iKTsKICAgICAgICAgYXBwZW5kQXR0cmlidXRlRGVzYyh0aGlzLCBhdHRycywg
c3R5bGVBdHRyLCAiIFNUWUxFPSIpOwotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzJXNcdCVw
IChyZW5kZXJlciAlcCkgJXMlcyVzXG4iLCBwcmVmaXgsIG5vZGVOYW1lKCkudXRmOCgpLmRhdGEo
KSwgdGhpcywgcmVuZGVyZXIoKSwgYXR0cnMudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBuZWVk
c1N0eWxlUmVjYWxjKCkgPyAiIChuZWVkcyBzdHlsZSByZWNhbGMpIiA6ICIiLCBjaGlsZE5lZWRz
U3R5bGVSZWNhbGMoKSA/ICIgKGNoaWxkIG5lZWRzIHN0eWxlIHJlY2FsYykiIDogIiIpOworICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSBhdHRycy50b1N0cmluZygpKQorICAgICAgICAgICAgZnBy
aW50ZihzdGRlcnIsICIlcyVzXHQlcCAocmVuZGVyZXIgJXApICVzJXMlc1xuIiwgcHJlZml4LCBu
b2RlTmFtZSgpLnV0ZjgoKS5kYXRhKCksIHRoaXMsIHJlbmRlcmVyKCksIHN0cmluZy0+dXRmOCgp
LmRhdGEoKSwgbmVlZHNTdHlsZVJlY2FsYygpID8gIiAobmVlZHMgc3R5bGUgcmVjYWxjKSIgOiAi
IiwgY2hpbGROZWVkc1N0eWxlUmVjYWxjKCkgPyAiIChjaGlsZCBuZWVkcyBzdHlsZSByZWNhbGMp
IiA6ICIiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9CiAK
QEAgLTE4MDIsMTIgKzE4MDcsMTkgQEAgc3RhdGljIHZvaWQgdHJhdmVyc2VUcmVlQW5kTWFyayhj
b25zdCBTdHJpbmcmIGJhc2VJbmRlbnQsIGNvbnN0IE5vZGUqIHJvb3ROb2RlLAogICAgICAgICBp
bmRlbnQuYXBwZW5kKGJhc2VJbmRlbnQpOwogICAgICAgICBmb3IgKGNvbnN0IE5vZGUqIHRtcE5v
ZGUgPSBub2RlOyB0bXBOb2RlICYmIHRtcE5vZGUgIT0gcm9vdE5vZGU7IHRtcE5vZGUgPSB0bXBO
b2RlLT5wYXJlbnRPclNoYWRvd0hvc3ROb2RlKCkpCiAgICAgICAgICAgICBpbmRlbnQuYXBwZW5k
KCdcdCcpOwotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzIiwgaW5kZW50LnRvU3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGluZGVudC50b1N0cmlu
ZygpKQorICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlcyIsIHN0cmluZy0+dXRmOCgpLmRh
dGEoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIG5vZGUt
PnNob3dOb2RlKCk7CiAgICAgICAgIGluZGVudC5hcHBlbmQoJ1x0Jyk7CiAgICAgICAgIGlmICgh
bm9kZS0+aXNTaGFkb3dSb290KCkpIHsKLSAgICAgICAgICAgIGlmIChTaGFkb3dSb290KiBzaGFk
b3dSb290ID0gbm9kZS0+c2hhZG93Um9vdCgpKQotICAgICAgICAgICAgICAgIHRyYXZlcnNlVHJl
ZUFuZE1hcmsoaW5kZW50LnRvU3RyaW5nKCksIHNoYWRvd1Jvb3QsIG1hcmtlZE5vZGUxLCBtYXJr
ZWRMYWJlbDEsIG1hcmtlZE5vZGUyLCBtYXJrZWRMYWJlbDIpOworICAgICAgICAgICAgaWYgKFNo
YWRvd1Jvb3QqIHNoYWRvd1Jvb3QgPSBub2RlLT5zaGFkb3dSb290KCkpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSBpbmRlbnQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAg
ICAgICAgdHJhdmVyc2VUcmVlQW5kTWFyaygqc3RyaW5nLCBzaGFkb3dSb290LCBtYXJrZWROb2Rl
MSwgbWFya2VkTGFiZWwxLCBtYXJrZWROb2RlMiwgbWFya2VkTGFiZWwyKTsKKyAgICAgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7CisgICAgICAgICAgICB9CiAg
ICAgICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAppbmRleCA4OWE1MDZmLi5h
NTIwMTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKQEAgLTE0MTksNyArMTQxOSwxMCBAQCB2
b2lkIFBvc2l0aW9uOjpmb3JtYXRGb3JEZWJ1Z2dlcihjaGFyKiBidWZmZXIsIHVuc2lnbmVkIGxl
bmd0aCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZChzKTsKICAgICB9CiAKLSAgICBzdHJu
Y3B5KGJ1ZmZlciwgcmVzdWx0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0gMSk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHN0cm5j
cHkoYnVmZmVyLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOworICAgIGVsc2UK
KyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBQb3NpdGlvbjo6c2hvd0FuY2hvclR5cGVBbmRP
ZmZzZXQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKaW5kZXggYTU3YTVlMi4uMTU5ODcwYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vUmFuZ2UuY3BwCkBAIC05NDksNyArOTQ5LDkgQEAgU3RyaW5nIFJhbmdlOjp0b1N0cmlu
ZygpIGNvbnN0CiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIFJhbmdlOjp0b0hUTUwo
KSBjb25zdApAQCAtMTUzNSw3ICsxNTM3LDEwIEBAIHZvaWQgUmFuZ2U6OmZvcm1hdEZvckRlYnVn
Z2VyKGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgbGVuZ3RoKSBjb25zdAogICAgIGVuZENvbnRhaW5l
cigpLmZvcm1hdEZvckRlYnVnZ2VyKHMsIEZvcm1hdEJ1ZmZlclNpemUpOwogICAgIHJlc3VsdC5h
cHBlbmQocyk7CiAKLSAgICBzdHJuY3B5KGJ1ZmZlciwgcmVzdWx0LnRvU3RyaW5nKCkudXRmOCgp
LmRhdGEoKSwgbGVuZ3RoIC0gMSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3Ry
aW5nKCkpCisgICAgICAgIHN0cm5jcHkoYnVmZmVyLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCksIGxl
bmd0aCAtIDEpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCmlu
ZGV4IGM0ZDg1ZDguLmE1MDM5MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0xMTIsNyArMTEyLDkgQEAgc3RhdGljIFN0
cmluZyB0aHJvdHRsaW5nUmVhc29uc1RvU3RyaW5nKE9wdGlvblNldDxTY3JpcHRlZEFuaW1hdGlv
bkNvbnRyb2xsZXI6OlQKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCd8Jyk7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKHRocm90dGxpbmdSZWFzb25Ub1N0cmluZyhyZWFzb24pKTsKICAgICB9
Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcAppbmRleCA0
ZjhmMWE4Li4xNDgyMjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlD
b250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcApA
QCAtMTUyLDcgKzE1MiwxMCBAQCBTYW5kYm94RmxhZ3MgU2VjdXJpdHlDb250ZXh0OjpwYXJzZVNh
bmRib3hQb2xpY3koY29uc3QgU3RyaW5nJiBwb2xpY3ksIFN0cmluZyYgaQogICAgICAgICAgICAg
dG9rZW5FcnJvcnMuYXBwZW5kTGl0ZXJhbCgiIGFyZSBpbnZhbGlkIHNhbmRib3ggZmxhZ3MuIik7
CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHRva2VuRXJyb3JzLmFwcGVuZExpdGVyYWwoIiBp
cyBhbiBpbnZhbGlkIHNhbmRib3ggZmxhZy4iKTsKLSAgICAgICAgaW52YWxpZFRva2Vuc0Vycm9y
TWVzc2FnZSA9IHRva2VuRXJyb3JzLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHRva2VuRXJyb3JzLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbnZhbGlkVG9rZW5zRXJy
b3JNZXNzYWdlID0gKnN0cmluZzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsK
ICAgICB9CiAKICAgICByZXR1cm4gZmxhZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKaW5kZXggNzMxNWQxNi4u
YjMyN2Y1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcApAQCAtMTEzLDcgKzExMyw5IEBAIFN0cmluZyBUZXh0
Ojp3aG9sZVRleHQoKSBjb25zdAogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogICAgIGZvciAo
Y29uc3QgVGV4dCogdGV4dCA9IHN0YXJ0VGV4dDsgdGV4dCAhPSBvbmVQYXN0RW5kVGV4dDsgdGV4
dCA9IFRleHROb2RlVHJhdmVyc2FsOjpuZXh0U2libGluZygqdGV4dCkpCiAgICAgICAgIHJlc3Vs
dC5hcHBlbmQodGV4dC0+ZGF0YSgpKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFJlZlB0cjxUZXh0PiBUZXh0OjpyZXBsYWNlV2hv
bGVUZXh0KGNvbnN0IFN0cmluZyYgbmV3VGV4dCkKQEAgLTI0MCw3ICsyNDIsMTAgQEAgdm9pZCBU
ZXh0Ojpmb3JtYXRGb3JEZWJ1Z2dlcihjaGFyKiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkgY29u
c3QKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnIicpOwogICAgIH0KIAotICAgIHN0cm5jcHkoYnVm
ZmVyLCByZXN1bHQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgc3RybmNweShidWZm
ZXIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0gMSk7CisgICAgZWxzZQorICAgICAg
ICBDUkFTSCgpOwogICAgIGJ1ZmZlcltsZW5ndGggLSAxXSA9ICdcMCc7CiB9CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0Tm9kZVRyYXZlcnNhbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVGV4dE5vZGVUcmF2ZXJzYWwuY3BwCmluZGV4IGI3OGNhNzkuLjZkNDE4
ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0Tm9kZVRyYXZlcnNhbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHROb2RlVHJhdmVyc2FsLmNwcApAQCAtNDIsNyAr
NDIsOSBAQCBTdHJpbmcgY29udGVudHNBc1N0cmluZyhjb25zdCBDb250YWluZXJOb2RlJiByb290
KQogewogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogICAgIGFwcGVuZENvbnRlbnRzKHJvb3Qs
IHJlc3VsdCk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBD
UkFTSCgpOwogfQogCiBTdHJpbmcgY29udGVudHNBc1N0cmluZyhjb25zdCBOb2RlJiByb290KQpA
QCAtNTksNyArNjEsOSBAQCBTdHJpbmcgY2hpbGRUZXh0Q29udGVudChjb25zdCBDb250YWluZXJO
b2RlJiByb290KQogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogICAgIGZvciAoVGV4dCogdGV4
dCA9IFRleHROb2RlVHJhdmVyc2FsOjpmaXJzdENoaWxkKHJvb3QpOyB0ZXh0OyB0ZXh0ID0gVGV4
dE5vZGVUcmF2ZXJzYWw6Om5leHRTaWJsaW5nKCp0ZXh0KSkKICAgICAgICAgcmVzdWx0LmFwcGVu
ZCh0ZXh0LT5kYXRhKCkpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BcHBseVN0eWxlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5
bGVDb21tYW5kLmNwcAppbmRleCA2OWQ4YWYyLi5hZTE2ZjJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcApAQCAtMTM4Miw3ICsxMzgyLDEwIEBAIHZv
aWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmFkZEJsb2NrU3R5bGUoY29uc3QgU3R5bGVDaGFuZ2UmIHN0
eWxlQ2hhbmdlLCBIVE1MRWxlbWVuCiAgICAgICAgICAgICBjc3NUZXh0LmFwcGVuZCgnICcpOwog
ICAgICAgICBjc3NUZXh0LmFwcGVuZChkZWNsLT5hc1RleHQoKSk7CiAgICAgfQotICAgIHNldE5v
ZGVBdHRyaWJ1dGUoYmxvY2ssIHN0eWxlQXR0ciwgY3NzVGV4dC50b1N0cmluZygpKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBjc3NUZXh0LnRvU3RyaW5nKCkpCisgICAgICAgIHNldE5vZGVBdHRy
aWJ1dGUoYmxvY2ssIHN0eWxlQXR0ciwgKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFT
SCgpOwogfQogCiB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjphZGRJbmxpbmVTdHlsZUlmTmVlZGVk
KEVkaXRpbmdTdHlsZSogc3R5bGUsIE5vZGUmIHN0YXJ0LCBOb2RlJiBlbmQsIEVBZGRTdHlsZWRF
bGVtZW50IGFkZFN0eWxlZEVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNwcAppbmRl
eCBlNzliNjQ2Li4zMGMxNjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5jcHAKQEAgLTQy
OSw3ICs0MjksOSBAQCBTdHJpbmcgc3RyaW5nV2l0aFJlYmFsYW5jZWRXaGl0ZXNwYWNlKGNvbnN0
IFN0cmluZyYgc3RyaW5nLCBib29sIHN0YXJ0SXNTdGFydE9mUAogCiAgICAgcmViYWxhbmNlZFN0
cmluZy5yZXNlcnZlQ2FwYWNpdHkobGVuZ3RoKTsKICAgICByZWJhbGFuY2VkU3RyaW5nLmFwcGVu
ZChzdHJpbmcsIHJlYmFsYW5jZWRTdHJpbmcubGVuZ3RoKCksIGxlbmd0aCAtIHJlYmFsYW5jZWRT
dHJpbmcubGVuZ3RoKCkpOwotICAgIHJldHVybiByZWJhbGFuY2VkU3RyaW5nLnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmViYWxhbmNlZFN0cmluZy50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIGlzVGFibGVTdHJ1
Y3R1cmVOb2RlKGNvbnN0IE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0hUTUxJbnRlcmNoYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0hUTUxJ
bnRlcmNoYW5nZS5jcHAKaW5kZXggYjIyMzQzYi4uY2Y4NTIzMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9IVE1MSW50ZXJjaGFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSFRNTEludGVyY2hhbmdlLmNwcApAQCAtOTUsNyArOTUsOSBAQCBTdHJpbmcgY29u
dmVydEhUTUxUZXh0VG9JbnRlcmNoYW5nZUZvcm1hdChjb25zdCBTdHJpbmcmIGluLCBjb25zdCBU
ZXh0KiBub2RlKQogICAgICAgICBpICs9IGNvbnN1bWVkOwogICAgIH0KIAotICAgIHJldHVybiBz
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcy50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCmluZGV4
IDkwNjk2N2YuLjY3ZTc2YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFy
a3VwQWNjdW11bGF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNj
dW11bGF0b3IuY3BwCkBAIC0xMzAsNyArMTMwLDkgQEAgTWFya3VwQWNjdW11bGF0b3I6On5NYXJr
dXBBY2N1bXVsYXRvcigpID0gZGVmYXVsdDsKIFN0cmluZyBNYXJrdXBBY2N1bXVsYXRvcjo6c2Vy
aWFsaXplTm9kZXMoTm9kZSYgdGFyZ2V0Tm9kZSwgRUNoaWxkcmVuT25seSBjaGlsZHJlbk9ubHks
IFZlY3RvcjxRdWFsaWZpZWROYW1lPiogdGFnTmFtZXNUb1NraXApCiB7CiAgICAgc2VyaWFsaXpl
Tm9kZXNXaXRoTmFtZXNwYWNlcyh0YXJnZXROb2RlLCBjaGlsZHJlbk9ubHksIDAsIHRhZ05hbWVz
VG9Ta2lwKTsKLSAgICByZXR1cm4gbV9tYXJrdXAudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBtX21hcmt1cC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiB2b2lkIE1hcmt1cEFjY3VtdWxhdG9yOjpzZXJpYWxpemVOb2Rlc1dp
dGhOYW1lc3BhY2VzKE5vZGUmIHRhcmdldE5vZGUsIEVDaGlsZHJlbk9ubHkgY2hpbGRyZW5Pbmx5
LCBjb25zdCBOYW1lc3BhY2VzKiBuYW1lc3BhY2VzLCBWZWN0b3I8UXVhbGlmaWVkTmFtZT4qIHRh
Z05hbWVzVG9Ta2lwKQpAQCAtNDgzLDExICs0ODUsMTQgQEAgdm9pZCBNYXJrdXBBY2N1bXVsYXRv
cjo6Z2VuZXJhdGVVbmlxdWVQcmVmaXgoUXVhbGlmaWVkTmFtZSYgcHJlZml4ZWROYW1lLCBjb25z
dAogICAgICAgICBidWlsZGVyLmNsZWFyKCk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiTlMiKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoKyttX3ByZWZpeExldmVsKTsK
LSAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lID0gYnVpbGRlci50b0F0b21pY1N0cmlu
ZygpOwotICAgICAgICBpZiAoIW5hbWVzcGFjZXMuZ2V0KG5hbWUuaW1wbCgpKSkgewotICAgICAg
ICAgICAgcHJlZml4ZWROYW1lLnNldFByZWZpeChuYW1lKTsKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQorICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3Ry
aW5nKCkpIHsKKyAgICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9ICpzdHJpbmc7
CisgICAgICAgICAgICBpZiAoIW5hbWVzcGFjZXMuZ2V0KG5hbWUuaW1wbCgpKSkgeworICAgICAg
ICAgICAgICAgIHByZWZpeGVkTmFtZS5zZXRQcmVmaXgobmFtZSk7CisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIENSQVNI
KCk7CiAgICAgfSB3aGlsZSAodHJ1ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0
ZXJhdG9yLmNwcAppbmRleCA2NTc0ZjFlLi5mNTQzMWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UZXh0SXRlcmF0b3IuY3BwCkBAIC0yNjY3LDEyICsyNjY3LDE1IEBAIFN0cmluZyBwbGFpblRl
eHQoY29uc3QgUmFuZ2UqIHIsIFRleHRJdGVyYXRvckJlaGF2aW9yIGRlZmF1bHRCZWhhdmlvciwg
Ym9vbCBpc0RpCiAgICAgaWYgKCFidWZmZXJMZW5ndGgpCiAgICAgICAgIHJldHVybiBlbXB0eVN0
cmluZygpOwogCi0gICAgU3RyaW5nIHJlc3VsdCA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgU3RyaW5nIHJl
c3VsdCA9ICpzdHJpbmc7CiAKLSAgICBpZiAoaXNEaXNwbGF5U3RyaW5nKQotICAgICAgICByLT5v
d25lckRvY3VtZW50KCkuZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhyZXN1bHQpOwor
ICAgICAgICBpZiAoaXNEaXNwbGF5U3RyaW5nKQorICAgICAgICAgICAgci0+b3duZXJEb2N1bWVu
dCgpLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcocmVzdWx0KTsKIAotICAgIHJldHVy
biByZXN1bHQ7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIENSQVNIKCk7CiB9
CiAKIFN0cmluZyBwbGFpblRleHRSZXBsYWNpbmdOb0JyZWFrU3BhY2UoY29uc3QgUmFuZ2UqIHJh
bmdlLCBUZXh0SXRlcmF0b3JCZWhhdmlvciBkZWZhdWx0QmVoYXZpb3IsIGJvb2wgaXNEaXNwbGF5
U3RyaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKaW5kZXggZmQ3
OTA2Ni4uYmVlNjNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdD
b21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3Bw
CkBAIC00MjUsNyArNDI1LDkgQEAgUmVmUHRyPERhdGFUcmFuc2Zlcj4gVHlwaW5nQ29tbWFuZDo6
aW5wdXRFdmVudERhdGFUcmFuc2ZlcigpIGNvbnN0CiAKICAgICBTdHJpbmdCdWlsZGVyIGh0bWxU
ZXh0OwogICAgIE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRDaGFyYWN0ZXJzUmVwbGFjaW5nRW50
aXRpZXMoaHRtbFRleHQsIG1fY3VycmVudFRleHRUb0luc2VydCwgMCwgbV9jdXJyZW50VGV4dFRv
SW5zZXJ0Lmxlbmd0aCgpLCBFbnRpdHlNYXNrSW5IVE1MUENEQVRBKTsKLSAgICByZXR1cm4gRGF0
YVRyYW5zZmVyOjpjcmVhdGVGb3JJbnB1dEV2ZW50KG1fY3VycmVudFRleHRUb0luc2VydCwgaHRt
bFRleHQudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gaHRtbFRleHQudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuIERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9ySW5wdXRFdmVudCht
X2N1cnJlbnRUZXh0VG9JbnNlcnQsICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQg
VHlwaW5nQ29tbWFuZDo6ZGlkQXBwbHlDb21tYW5kKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1Zpc2libGVTZWxlY3Rpb24uY3BwCmluZGV4IDE4NjUwYWIuLjczYWNjYzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcApAQCAtNzA3LDcgKzcwNywxMCBA
QCB2b2lkIFZpc2libGVTZWxlY3Rpb246OmZvcm1hdEZvckRlYnVnZ2VyKGNoYXIqIGJ1ZmZlciwg
dW5zaWduZWQgbGVuZ3RoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKHMpOwogICAgIH0K
IAotICAgIHN0cm5jcHkoYnVmZmVyLCByZXN1bHQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBs
ZW5ndGggLSAxKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAg
ICAgICAgc3RybmNweShidWZmZXIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0gMSk7
CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIFZpc2libGVTZWxlY3Rpb246
OnNob3dUcmVlRm9yVGhpcygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29h
L0RhdGFEZXRlY3Rpb24ubW0KaW5kZXggZjQ0NTYxNi4uZTk4NjQ0YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQpAQCAtMzE5LDcgKzMxOSw5IEBA
IHN0YXRpYyBTdHJpbmcgZGF0YURldGVjdG9yU3RyaW5nRm9yUGF0aChOU0luZGV4UGF0aCAqcGF0
aCkKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIoKHVuc2lnbmVkIGxvbmcpW3Bh
dGggaW5kZXhBdFBvc2l0aW9uOjBdKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJy8n
KTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIoKHVuc2lnbmVkIGxvbmcpW3Bh
dGggaW5kZXhBdFBvc2l0aW9uOjFdKTsKLSAgICAgICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAg
fQogICAgIGRlZmF1bHQ6IHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBzdHJpbmdCdWlsZGVyOwpA
QCAtMzI5LDcgKzMzMSw5IEBAIHN0YXRpYyBTdHJpbmcgZGF0YURldGVjdG9yU3RyaW5nRm9yUGF0
aChOU0luZGV4UGF0aCAqcGF0aCkKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVt
YmVyKCh1bnNpZ25lZCBsb25nKVtwYXRoIGluZGV4QXRQb3NpdGlvbjppXSk7CiAgICAgICAgIH0K
IAotICAgICAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAo
YXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCmluZGV4IDZiMTM5N2UuLjVk
MzI5MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZl
cnRlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIu
bW0KQEAgLTIyNTQsNyArMjI1NCwxMCBAQCB2b2lkIEhUTUxDb252ZXJ0ZXI6Ol9wcm9jZXNzVGV4
dChDaGFyYWN0ZXJEYXRhJiBjaGFyYWN0ZXJEYXRhKQogICAgICAgICB9CiAgICAgICAgIGlmICh3
YXNTcGFjZSkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7Ci0gICAgICAgIG91dHB1
dFN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
YnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgb3V0cHV0U3RyaW5nID0gKnN0cmluZzsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBpZiAob3V0
cHV0U3RyaW5nLmxlbmd0aCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L2lvcy9FZGl0b3JJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1Mu
bW0KaW5kZXggNTYyMTM1NS4uMmZlNTQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9pb3MvRWRpdG9ySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0Vk
aXRvcklPUy5tbQpAQCAtMjg0LDcgKzI4NCwxMCBAQCB2b2lkIEVkaXRvcjo6c2V0RGljdGF0aW9u
UGhyYXNlc0FzQ2hpbGRPZkVsZW1lbnQoY29uc3QgVmVjdG9yPFZlY3RvcjxTdHJpbmc+PiYgZAog
ICAgIGZvciAoYXV0byYgaW50ZXJwcmV0YXRpb25zIDogZGljdGF0aW9uUGhyYXNlcykKICAgICAg
ICAgZGljdGF0aW9uUGhyYXNlc0J1aWxkZXIuYXBwZW5kKGludGVycHJldGF0aW9uc1swXSk7CiAK
LSAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoKmNvbnRleHQs
IGRpY3RhdGlvblBocmFzZXNCdWlsZGVyLnRvU3RyaW5nKCkpKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBkaWN0YXRpb25QaHJhc2VzQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBlbGVtZW50
LmFwcGVuZENoaWxkKGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoKmNvbnRleHQsICpzdHJpbmcpKTsK
KyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAgICAvLyBXZSBuZWVkIGEgbGF5b3V0IGlu
IG9yZGVyIHRvIGFkZCBtYXJrZXJzIGJlbG93LgogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKaW5kZXggNTU1MWVlYy4uZDU2ODgxMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcApAQCAtMjkwLDcgKzI5MCwxMCBAQCB2b2lkIFN0eWxl
ZE1hcmt1cEFjY3VtdWxhdG9yOjp3cmFwV2l0aE5vZGUoTm9kZSYgbm9kZSwgYm9vbCBjb252ZXJ0
QmxvY2tzVG9JbmxpbgogICAgICAgICBhcHBlbmRFbGVtZW50KG1hcmt1cCwgZG93bmNhc3Q8RWxl
bWVudD4obm9kZSksIGNvbnZlcnRCbG9ja3NUb0lubGluZXMgJiYgaXNCbG9jaygmbm9kZSksIHJh
bmdlRnVsbHlTZWxlY3RzTm9kZSk7CiAgICAgZWxzZQogICAgICAgICBhcHBlbmRTdGFydE1hcmt1
cChtYXJrdXAsIG5vZGUsIG51bGxwdHIpOwotICAgIG1fcmV2ZXJzZWRQcmVjZWRpbmdNYXJrdXAu
YXBwZW5kKG1hcmt1cC50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtYXJrdXAu
dG9TdHJpbmcoKSkKKyAgICAgICAgbV9yZXZlcnNlZFByZWNlZGluZ01hcmt1cC5hcHBlbmQoKnN0
cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIGFwcGVuZEVuZFRhZyhub2Rl
KTsKICAgICBpZiAobV9ub2RlcykKICAgICAgICAgbV9ub2Rlcy0+YXBwZW5kKCZub2RlKTsKQEAg
LTMwMCw3ICszMDMsMTAgQEAgdm9pZCBTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6d3JhcFdpdGhT
dHlsZU5vZGUoU3R5bGVQcm9wZXJ0aWVzKiBzdHlsZSwgRG9jdW1lbnQKIHsKICAgICBTdHJpbmdC
dWlsZGVyIG9wZW5UYWc7CiAgICAgYXBwZW5kU3R5bGVOb2RlT3BlblRhZyhvcGVuVGFnLCBzdHls
ZSwgZG9jdW1lbnQsIGlzQmxvY2spOwotICAgIG1fcmV2ZXJzZWRQcmVjZWRpbmdNYXJrdXAuYXBw
ZW5kKG9wZW5UYWcudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gb3BlblRhZy50
b1N0cmluZygpKQorICAgICAgICBtX3JldmVyc2VkUHJlY2VkaW5nTWFya3VwLmFwcGVuZCgqc3Ry
aW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgYXBwZW5kU3RyaW5nKHN0eWxl
Tm9kZUNsb3NlVGFnKGlzQmxvY2spKTsKIH0KIApAQCAtMzM0LDcgKzM0MCw5IEBAIFN0cmluZyBT
dHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6dGFrZVJlc3VsdHMoKQogICAgIGNvbmNhdGVuYXRlTWFy
a3VwKHJlc3VsdCk7CiAKICAgICAvLyBXZSByZW1vdmUgJ1wwJyBjaGFyYWN0ZXJzIGJlY2F1c2Ug
dGhleSBhcmUgbm90IHZpc2libHkgcmVuZGVyZWQgdG8gdGhlIHVzZXIuCi0gICAgcmV0dXJuIHJl
c3VsdC50b1N0cmluZygpLnJlcGxhY2VXaXRoTGl0ZXJhbCgnXDAnLCAiIik7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBzdHJpbmctPnJl
cGxhY2VXaXRoTGl0ZXJhbCgnXDAnLCAiIik7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBTdHls
ZWRNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kVGV4dChTdHJpbmdCdWlsZGVyJiBvdXQsIGNvbnN0
IFRleHQmIHRleHQpCkBAIC0zNTksNyArMzY3LDEwIEBAIHZvaWQgU3R5bGVkTWFya3VwQWNjdW11
bGF0b3I6OmFwcGVuZFRleHQoU3RyaW5nQnVpbGRlciYgb3V0LCBjb25zdCBUZXh0JiB0ZXh0KQog
ICAgICAgICBTdHJpbmcgY29udGVudCA9IHVzZVJlbmRlcmVkVGV4dCA/IHJlbmRlcmVkVGV4dCh0
ZXh0LCBtX3JhbmdlKSA6IHN0cmluZ1ZhbHVlRm9yUmFuZ2UodGV4dCwgbV9yYW5nZSk7CiAgICAg
ICAgIFN0cmluZ0J1aWxkZXIgYnVmZmVyOwogICAgICAgICBhcHBlbmRDaGFyYWN0ZXJzUmVwbGFj
aW5nRW50aXRpZXMoYnVmZmVyLCBjb250ZW50LCAwLCBjb250ZW50Lmxlbmd0aCgpLCBFbnRpdHlN
YXNrSW5QQ0RBVEEpOwotICAgICAgICBvdXQuYXBwZW5kKGNvbnZlcnRIVE1MVGV4dFRvSW50ZXJj
aGFuZ2VGb3JtYXQoYnVmZmVyLnRvU3RyaW5nKCksICZ0ZXh0KSk7CisgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1ZmZlci50b1N0cmluZygpKQorICAgICAgICAgICAgb3V0LmFwcGVuZChjb252
ZXJ0SFRNTFRleHRUb0ludGVyY2hhbmdlRm9ybWF0KCpzdHJpbmcsICZ0ZXh0KSk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgaWYgKHdyYXBwaW5nU3Bh
bikKQEAgLTg3Myw3ICs4ODQsOSBAQCBTdHJpbmcgc2FuaXRpemVkTWFya3VwRm9yRnJhZ21lbnRJ
bkRvY3VtZW50KFJlZjxEb2N1bWVudEZyYWdtZW50PiYmIGZyYWdtZW50LCBEbwogICAgICAgICAg
ICAgInhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MFwiPiIpOwogICAgICAg
ICBidWlsZGVyLmFwcGVuZChyZXN1bHQpOwogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwo
IjwvaHRtbD4iKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIHJlc3VsdDsK
QEAgLTEwOTIsNyArMTEwNSw5IEBAIFN0cmluZyB1cmxUb01hcmt1cChjb25zdCBVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiB0aXRsZSkKICAgICBtYXJrdXAuYXBwZW5kTGl0ZXJhbCgiXCI+Iik7CiAg
ICAgTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZENoYXJhY3RlcnNSZXBsYWNpbmdFbnRpdGllcyht
YXJrdXAsIHRpdGxlLCAwLCB0aXRsZS5sZW5ndGgoKSwgRW50aXR5TWFza0luUENEQVRBKTsKICAg
ICBtYXJrdXAuYXBwZW5kTGl0ZXJhbCgiPC9hPiIpOwotICAgIHJldHVybiBtYXJrdXAudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtYXJrdXAudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogRXhjZXB0aW9uT3I8UmVmPERvY3Vt
ZW50RnJhZ21lbnQ+PiBjcmVhdGVGcmFnbWVudEZvcklubmVyT3V0ZXJIVE1MKEVsZW1lbnQmIGNv
bnRleHRFbGVtZW50LCBjb25zdCBTdHJpbmcmIG1hcmt1cCwgUGFyc2VyQ29udGVudFBvbGljeSBw
YXJzZXJDb250ZW50UG9saWN5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9G
aWxlUmVhZGVyTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxv
YWRlci5jcHAKaW5kZXggOWEyMjM0Zi4uMjgzNDVhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxl
YXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwCkBAIC0zMzcsMjAgKzMzNywyMCBAQCB2b2lkIEZpbGVS
ZWFkZXJMb2FkZXI6OmNvbnZlcnRUb0RhdGFVUkwoKQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoImRhdGE6Iik7CiAKLSAgICBpZiAoIW1fYnl0
ZXNMb2FkZWQpIHsKLSAgICAgICAgbV9zdHJpbmdSZXN1bHQgPSBidWlsZGVyLnRvU3RyaW5nKCk7
Ci0gICAgICAgIHJldHVybjsKKyAgICBpZiAobV9ieXRlc0xvYWRlZCkgeworICAgICAgICBidWls
ZGVyLmFwcGVuZChtX2RhdGFUeXBlKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI7
YmFzZTY0LCIpOworCisgICAgICAgIFZlY3RvcjxjaGFyPiBvdXQ7CisgICAgICAgIGJhc2U2NEVu
Y29kZShtX3Jhd0RhdGEtPmRhdGEoKSwgbV9ieXRlc0xvYWRlZCwgb3V0KTsKKyAgICAgICAgb3V0
LmFwcGVuZCgnXDAnKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQob3V0LmRhdGEoKSk7CiAgICAg
fQogCi0gICAgYnVpbGRlci5hcHBlbmQobV9kYXRhVHlwZSk7Ci0gICAgYnVpbGRlci5hcHBlbmRM
aXRlcmFsKCI7YmFzZTY0LCIpOwotCi0gICAgVmVjdG9yPGNoYXI+IG91dDsKLSAgICBiYXNlNjRF
bmNvZGUobV9yYXdEYXRhLT5kYXRhKCksIG1fYnl0ZXNMb2FkZWQsIG91dCk7Ci0gICAgb3V0LmFw
cGVuZCgnXDAnKTsKLSAgICBidWlsZGVyLmFwcGVuZChvdXQuZGF0YSgpKTsKLQotICAgIG1fc3Ry
aW5nUmVzdWx0ID0gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgbV9zdHJpbmdSZXN1bHQgPSAqc3RyaW5nOworICAg
IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBGaWxlUmVhZGVyTG9hZGVyOjppc0Nv
bXBsZXRlZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2Vu
TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKaW5kZXggYzk1
Zjk2OS4uZGI0Mjk2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxp
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcApAQCAtMjcz
LDEwICsyNzMsMTMgQEAgdm9pZCBET01Ub2tlbkxpc3Q6OnVwZGF0ZUFzc29jaWF0ZWRBdHRyaWJ1
dGVGcm9tVG9rZW5zKCkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKHRva2VuKTsKICAgICB9Ci0gICAgQXRvbWljU3RyaW5nIHNlcmlhbGl6
ZWRWYWx1ZSA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCkpIHsKKyAgICAgICAgQXRvbWljU3RyaW5nIHNlcmlh
bGl6ZWRWYWx1ZSA9ICpzdHJpbmc7CiAKLSAgICBTZXRGb3JTY29wZTxib29sPiBpbkF0dHJpYnV0
ZVVwZGF0ZShtX2luVXBkYXRlQXNzb2NpYXRlZEF0dHJpYnV0ZUZyb21Ub2tlbnMsIHRydWUpOwot
ICAgIG1fZWxlbWVudC5zZXRBdHRyaWJ1dGUobV9hdHRyaWJ1dGVOYW1lLCBzZXJpYWxpemVkVmFs
dWUpOworICAgICAgICBTZXRGb3JTY29wZTxib29sPiBpbkF0dHJpYnV0ZVVwZGF0ZShtX2luVXBk
YXRlQXNzb2NpYXRlZEF0dHJpYnV0ZUZyb21Ub2tlbnMsIHRydWUpOworICAgICAgICBtX2VsZW1l
bnQuc2V0QXR0cmlidXRlKG1fYXR0cmlidXRlTmFtZSwgc2VyaWFsaXplZFZhbHVlKTsKKyAgICB9
IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogVmVjdG9yPEF0b21pY1N0cmluZz4mIERPTVRv
a2VuTGlzdDo6dG9rZW5zKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJ
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAKaW5k
ZXggYjkzZTEyYi4uNTgzNmM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFp
bElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5j
cHAKQEAgLTEwNCw3ICsxMDQsOSBAQCBTdHJpbmcgRW1haWxJbnB1dFR5cGU6OnNhbml0aXplVmFs
dWUoY29uc3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVlKSBjb25zdAogICAgICAgICAgICAgc3RyaXBw
ZWRWYWx1ZS5hcHBlbmQoJywnKTsKICAgICAgICAgc3RyaXBwZWRWYWx1ZS5hcHBlbmQoc3RyaXBM
ZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKGFkZHJlc3Nlc1tpXSkpOwogICAgIH0KLSAgICBy
ZXR1cm4gc3RyaXBwZWRWYWx1ZS50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0
cmlwcGVkVmFsdWUudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlu
cHV0VHlwZS5jcHAKaW5kZXggM2U1NWEwNS4uZmRjNDljNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zp
bGVJbnB1dFR5cGUuY3BwCkBAIC00NjcsNyArNDY3LDkgQEAgU3RyaW5nIEZpbGVJbnB1dFR5cGU6
OmRlZmF1bHRUb29sVGlwKCkgY29uc3QKICAgICAgICAgaWYgKGkgIT0gbGlzdFNpemUgLSAxKQog
ICAgICAgICAgICAgbmFtZXMuYXBwZW5kKCdcbicpOwogICAgIH0KLSAgICByZXR1cm4gbmFtZXMu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBuYW1lcy50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9Gb3JtQ29udHJvbGxlci5jcHAKaW5kZXggMGY1Yjc3NS4uMWEyOWE0NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9Gb3JtQ29udHJvbGxlci5jcHAKQEAgLTMxMiw3ICszMTIsOSBAQCBzdGF0aWMgaW5s
aW5lIFN0cmluZyBmb3JtU2lnbmF0dXJlKGNvbnN0IEhUTUxGb3JtRWxlbWVudCYgZm9ybSkKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoYWN0aW9uVVJMLnN0cmluZygpKTsKIAogICAgIHJlY29yZEZv
cm1TdHJ1Y3R1cmUoZm9ybSwgYnVpbGRlcik7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIEF0b21pY1N0cmluZyBGb3JtS2V5R2Vu
ZXJhdG9yOjpmb3JtS2V5KGNvbnN0IEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUmIGNv
bnRyb2wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCmluZGV4IDcx
NTIzMTcuLmE3MDI2ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hv
ckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQu
Y3BwCkBAIC00MDAsMTAgKzQwMCwxNCBAQCB2b2lkIEhUTUxBbmNob3JFbGVtZW50OjpoYW5kbGVD
bGljayhFdmVudCYgZXZlbnQpCiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgU3RyaW5nQnVpbGRlciB1cmw7Ci0gICAgdXJsLmFwcGVuZChzdHJpcExlYWRpbmdBbmRUcmFp
bGluZ0hUTUxTcGFjZXMoYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihocmVmQXR0cikp
KTsKLSAgICBhcHBlbmRTZXJ2ZXJNYXBNb3VzZVBvc2l0aW9uKHVybCwgZXZlbnQpOwotICAgIFVS
TCBjb21wbGV0ZWRVUkwgPSBkb2N1bWVudCgpLmNvbXBsZXRlVVJMKHVybC50b1N0cmluZygpKTsK
KyAgICBVUkwgY29tcGxldGVkVVJMID0gZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChbJl0gKCkgewor
ICAgICAgICBTdHJpbmdCdWlsZGVyIHVybDsKKyAgICAgICAgdXJsLmFwcGVuZChzdHJpcExlYWRp
bmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbiho
cmVmQXR0cikpKTsKKyAgICAgICAgYXBwZW5kU2VydmVyTWFwTW91c2VQb3NpdGlvbih1cmwsIGV2
ZW50KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gdXJsLnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9KCkpOwogCiAgICAg
U3RyaW5nIGRvd25sb2FkQXR0cmlidXRlOwogI2lmIEVOQUJMRShET1dOTE9BRF9BVFRSSUJVVEUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDY2NGVkZjAu
LmI2N2I0YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBA
IC0zMzYsOCArMzM2LDExIEBAIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCogSFRNTENhbnZhc0Vs
ZW1lbnQ6OmNyZWF0ZUNvbnRleHQyZChjb25zdCBTdHJpbmcmIHR5cGUpCiAgICAgICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiVG90YWwgY2FudmFzIG1lbW9yeSB1c2UgZXhjZWVkcyB0
aGUgbWF4aW11bSBsaW1pdCAoIik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVy
KG1heEFjdGl2ZVBpeGVsTWVtb3J5KCkgLyAxMDI0IC8gMTAyNCk7CiAgICAgICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIE1CKS4iKTsKLSAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25z
b2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCkpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAg
ICBkb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdl
TGV2ZWw6Oldhcm5pbmcsICpzdHJpbmcpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgICAgIH0KKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBtX2NvbnRleHQgPSBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNyZWF0ZSgqdGhpcywgZG9jdW1lbnQoKS5pblF1aXJrc01v
ZGUoKSwgdXNlc0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlKTsKQEAgLTg4OSw4ICs4OTIsMTEg
QEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIoKSBjb25zdAogICAg
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIkNhbnZhcyBhcmVhIGV4Y2VlZHMgdGhl
IG1heGltdW0gbGltaXQgKHdpZHRoICogaGVpZ2h0ID4gIik7CiAgICAgICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kTnVtYmVyKG1heENhbnZhc0FyZWEpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZExpdGVyYWwoIikuIik7Ci0gICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgc3RyaW5nQnVpbGRlci50
b1N0cmluZygpKTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBz
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIGRvY3VtZW50KCkuYWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgKnN0
cmluZyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgQ1JBU0goKTsK
ICAgICB9CiAgICAgCiAgICAgLy8gTWFrZSBzdXJlIHdlIGRvbid0IHVzZSBtb3JlIHBpeGVsIG1l
bW9yeSB0aGFuIHRoZSBzeXN0ZW0gY2FuIHN1cHBvcnQuCkBAIC05MDAsOCArOTA2LDExIEBAIHZv
aWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUltYWdlQnVmZmVyKCkgY29uc3QKICAgICAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJUb3RhbCBjYW52YXMgbWVtb3J5IHVzZSBleGNl
ZWRzIHRoZSBtYXhpbXVtIGxpbWl0ICgiKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRO
dW1iZXIobWF4QWN0aXZlUGl4ZWxNZW1vcnkoKSAvIDEwMjQgLyAxMDI0KTsKICAgICAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgTUIpLiIpOwotICAgICAgICBkb2N1bWVudCgpLmFk
ZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcs
IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICBk
b2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2
ZWw6Oldhcm5pbmcsICpzdHJpbmcpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Cisg
ICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgaWYgKCF3aWR0aCgpIHx8ICFoZWlnaHQoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVtZW50LmNwcAppbmRleCA4ZDZjMzQ3Li5jMzVh
NjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuY3BwCkBAIC0xMTEsMTAg
KzExMSwxMyBAQCBzdGF0aWMgYm9vbCBwYXJzZUZvbnRTaXplKGNvbnN0IENoYXJhY3RlclR5cGUq
IGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgaW50JgogICAgIC8vIFN0ZXAgOAogICAgIGlu
dCB2YWx1ZTsKIAorICAgIGlmIChkaWdpdHMuZmFpbGVkKCkpCisgICAgICAgIENSQVNIKCk7CisK
ICAgICBpZiAoZGlnaXRzLmlzOEJpdCgpKQotICAgICAgICB2YWx1ZSA9IGNoYXJhY3RlcnNUb0lu
dFN0cmljdChkaWdpdHMuY2hhcmFjdGVyczgoKSwgZGlnaXRzLmxlbmd0aCgpKTsKKyAgICAgICAg
dmFsdWUgPSBjaGFyYWN0ZXJzVG9JbnRTdHJpY3QoKmRpZ2l0cy5jaGFyYWN0ZXJzOCgpLCBkaWdp
dHMubGVuZ3RoKCkpOwogICAgIGVsc2UKLSAgICAgICAgdmFsdWUgPSBjaGFyYWN0ZXJzVG9JbnRT
dHJpY3QoZGlnaXRzLmNoYXJhY3RlcnMxNigpLCBkaWdpdHMubGVuZ3RoKCkpOworICAgICAgICB2
YWx1ZSA9IGNoYXJhY3RlcnNUb0ludFN0cmljdCgqZGlnaXRzLmNoYXJhY3RlcnMxNigpLCBkaWdp
dHMubGVuZ3RoKCkpOwogCiAgICAgLy8gU3RlcCA5CiAgICAgaWYgKG1vZGUgPT0gUmVsYXRpdmVQ
bHVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKaW5kZXggNGY2NTk3
Yy4uYTJlMWMxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCkBA
IC00NzQsNyArNDc0LDkgQEAgU3RyaW5nIEhUTUxJbWFnZUVsZW1lbnQ6OmNvbXBsZXRlVVJMc0lu
QXR0cmlidXRlVmFsdWUoY29uc3QgVVJMJiBiYXNlLCBjb25zdCBBdHQKICAgICAgICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKCd3Jyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAg
cmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1
bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFT
SCgpOwogICAgIH0KICAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OmNvbXBsZXRlVVJMc0luQXR0cmli
dXRlVmFsdWUoYmFzZSwgYXR0cmlidXRlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCmluZGV4IGRlMWMyZTguLjM2ZmJjYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMjMyLDkgKzIzMiwxMiBAQCBzdGF0aWMgU3RyaW5n
IGFjdGlvbk5hbWUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpEZWxheWVkQWN0aW9uVHlwZSBhY3Rp
b24pCiAKICN1bmRlZiBBQ1RJT04KIAotICAgIFN0cmluZyBuYW1lID0gYWN0aW9uQnVpbGRlci50
b1N0cmluZygpOwotICAgIEFTU0VSVCghbmFtZS5pc0VtcHR5KCkpOwotICAgIHJldHVybiBuYW1l
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGFjdGlvbkJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAg
ICAgICBTdHJpbmcgbmFtZSA9ICpzdHJpbmc7CisgICAgICAgIEFTU0VSVCghbmFtZS5pc0VtcHR5
KCkpOworICAgICAgICByZXR1cm4gbmFtZTsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCmluZGV4IDlmNmRh
ZDIuLmZhOThhYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3Bw
CkBAIC0zNDksNyArMzQ5LDkgQEAgU3RyaW5nIEhUTUxPcHRpb25FbGVtZW50Ojpjb2xsZWN0T3B0
aW9uSW5uZXJUZXh0KCkgY29uc3QKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbm9kZSA9IE5v
ZGVUcmF2ZXJzYWw6Om5leHQoKm5vZGUsIHRoaXMpOwogICAgIH0KLSAgICByZXR1cm4gdGV4dC50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHRleHQudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAK
aW5kZXggZWQxNDg1Ny4uZDBmYjRiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTE0Myw3ICsxNDMsOSBAQCBTdHJpbmcg
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnN0cmlwcGVkUGxhY2Vob2xkZXIoKSBjb25zdAog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIHN0cmlwcGVkLmFwcGVuZChjaGFyYWN0ZXIp
OwogICAgIH0KLSAgICByZXR1cm4gc3RyaXBwZWQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBzdHJpcHBlZC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBzdGF0aWMgYm9vbCBpc05vdExpbmVCcmVhayhVQ2hhciBjaCkgeyBy
ZXR1cm4gY2ggIT0gbmV3bGluZUNoYXJhY3RlciAmJiBjaCAhPSBjYXJyaWFnZVJldHVybjsgfQpA
QCAtNTUyLDcgKzU1NCw5IEBAIHN0YXRpYyBTdHJpbmcgaW5uZXJUZXh0VmFsdWVGcm9tKFRleHRD
b250cm9sSW5uZXJUZXh0RWxlbWVudCYgaW5uZXJUZXh0KQogICAgICAgICAgICAgcmVzdWx0LmFw
cGVuZChkb3duY2FzdDxUZXh0Pigqbm9kZSkuZGF0YSgpKTsKICAgICB9CiAgICAgc3RyaXBUcmFp
bGluZ05ld2xpbmUocmVzdWx0KTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6
OnNldElubmVyVGV4dFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCkBAIC03MzYsNyArNzQwLDkg
QEAgU3RyaW5nIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojp2YWx1ZVdpdGhIYXJkTGluZUJy
ZWFrcygpIGNvbnN0CiAgICAgICAgICAgICBnZXROZXh0U29mdEJyZWFrKGxpbmUsIGJyZWFrTm9k
ZSwgYnJlYWtPZmZzZXQpOwogICAgIH0KICAgICBzdHJpcFRyYWlsaW5nTmV3bGluZShyZXN1bHQp
OwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBy
ZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQqIGVuY2xvc2luZ1RleHRGb3JtQ29udHJv
bChjb25zdCBQb3NpdGlvbiYgcG9zaXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL01lZGlhRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50
LmNwcAppbmRleCAxMTkzNDBmLi42OTc3MTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL01lZGlhRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1
bWVudC5jcHAKQEAgLTEyMSw3ICsxMjEsMTAgQEAgdm9pZCBNZWRpYURvY3VtZW50UGFyc2VyOjpj
cmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAjaWYgUExBVEZPUk0oSU9TKQogICAgICAgICBlbGVt
ZW50U3R5bGUuYXBwZW5kTGl0ZXJhbCgid2lkdGg6IDEwMCU7IGhlaWdodDogYXV0bzsiKTsKICNl
bmRpZgotICAgICAgICB2aWRlb0VsZW1lbnQtPnNldEF0dHJpYnV0ZShzdHlsZUF0dHIsIGVsZW1l
bnRTdHlsZS50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZWxlbWVudFN0
eWxlLnRvU3RyaW5nKCkpCisgICAgICAgICAgICB2aWRlb0VsZW1lbnQtPnNldEF0dHJpYnV0ZShz
dHlsZUF0dHIsICpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwog
ICAgIH0KIAogICAgIGJvZHktPmFwcGVuZENoaWxkKHZpZGVvRWxlbWVudCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcAppbmRleCA1Y2Q3OTA1Li42ZjRlMGY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKQEAgLTg2
LDcgKzg2LDkgQEAgc3RhdGljIFN0cmluZyByZXN0cmljdGlvbk5hbWUoTWVkaWFFbGVtZW50U2Vz
c2lvbjo6QmVoYXZpb3JSZXN0cmljdGlvbnMgcmVzdHJpY3QKICAgICBDQVNFKEludmlzaWJsZUF1
dG9wbGF5Tm90UGVybWl0dGVkKTsKICAgICBDQVNFKE92ZXJyaWRlVXNlckdlc3R1cmVSZXF1aXJl
bWVudEZvck1haW5Db250ZW50KTsKIAotICAgIHJldHVybiByZXN0cmljdGlvbkJ1aWxkZXIudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN0cmljdGlvbkJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRnJhZ21lbnRVUklQYXJzZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUZyYWdtZW50VVJJUGFyc2VyLmNwcAppbmRl
eCBlN2E1MTZlLi4zMDViNjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlh
RnJhZ21lbnRVUklQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFGcmFn
bWVudFVSSVBhcnNlci5jcHAKQEAgLTUyLDcgKzUyLDkgQEAgc3RhdGljIFN0cmluZyBjb2xsZWN0
RGlnaXRzKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCYgcG9z
aXQKICAgICAvLyBESUdJVCA7IGFueSBwb3NpdGl2ZSBudW1iZXIKICAgICB3aGlsZSAocG9zaXRp
b24gPCBsZW5ndGggJiYgaXNBU0NJSURpZ2l0KGlucHV0W3Bvc2l0aW9uXSkpCiAgICAgICAgIGRp
Z2l0cy5hcHBlbmQoaW5wdXRbcG9zaXRpb24rK10pOwotICAgIHJldHVybiBkaWdpdHMudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBkaWdpdHMudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBjb2xsZWN0
RnJhY3Rpb24oY29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbmVkJiBw
b3NpdGlvbikKQEAgLTY3LDcgKzY5LDkgQEAgc3RhdGljIFN0cmluZyBjb2xsZWN0RnJhY3Rpb24o
Y29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbmVkJiBwb3MKICAgICBk
aWdpdHMuYXBwZW5kKGlucHV0W3Bvc2l0aW9uKytdKTsKICAgICB3aGlsZSAocG9zaXRpb24gPCBs
ZW5ndGggJiYgaXNBU0NJSURpZ2l0KGlucHV0W3Bvc2l0aW9uXSkpCiAgICAgICAgIGRpZ2l0cy5h
cHBlbmQoaW5wdXRbcG9zaXRpb24rK10pOwotICAgIHJldHVybiBkaWdpdHMudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBkaWdpdHMudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogTWVkaWFGcmFnbWVudFVSSVBhcnNlcjo6TWVk
aWFGcmFnbWVudFVSSVBhcnNlcihjb25zdCBVUkwmIHVybCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFk
LmNwcAppbmRleCA3NjRlNTAyLi4zZWVjNDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1R5cGVBaGVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3Bw
CkBAIC04MCw3ICs4MCwxMCBAQCBpbnQgVHlwZUFoZWFkOjpoYW5kbGVFdmVudChLZXlib2FyZEV2
ZW50KiBldmVudCwgTWF0Y2hNb2RlRmxhZ3MgbWF0Y2hNb2RlKQogICAgICAgICBwcmVmaXggPSBT
dHJpbmcoJmMsIDEpOwogICAgICAgICBtX3JlcGVhdGluZ0NoYXIgPSBjOwogICAgIH0gZWxzZSBp
ZiAobWF0Y2hNb2RlICYgTWF0Y2hQcmVmaXgpIHsKLSAgICAgICAgcHJlZml4ID0gbV9idWZmZXIu
dG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gbV9idWZmZXIudG9TdHJpbmco
KSkKKyAgICAgICAgICAgIHByZWZpeCA9ICpzdHJpbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIENSQVNIKCk7CiAgICAgICAgIGlmIChtX2J1ZmZlci5sZW5ndGgoKSA+IDEpIHsKICAgICAg
ICAgICAgIG1fcmVwZWF0aW5nQ2hhciA9IDA7CiAgICAgICAgICAgICBzZWFyY2hTdGFydE9mZnNl
dCA9IDA7CkBAIC0xMDQsOSArMTA3LDEyIEBAIGludCBUeXBlQWhlYWQ6OmhhbmRsZUV2ZW50KEtl
eWJvYXJkRXZlbnQqIGV2ZW50LCBNYXRjaE1vZGVGbGFncyBtYXRjaE1vZGUpCiAKICAgICBpZiAo
bWF0Y2hNb2RlICYgTWF0Y2hJbmRleCkgewogICAgICAgICBib29sIG9rID0gZmFsc2U7Ci0gICAg
ICAgIGludCBpbmRleCA9IG1fYnVmZmVyLnRvU3RyaW5nKCkudG9JbnQoJm9rKTsKLSAgICAgICAg
aWYgKGluZGV4ID4gMCAmJiBpbmRleCA8PSBvcHRpb25Db3VudCkKLSAgICAgICAgICAgIHJldHVy
biBpbmRleCAtIDE7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IG1fYnVmZmVyLnRvU3RyaW5n
KCkpIHsKKyAgICAgICAgICAgIGludCBpbmRleCA9IHN0cmluZy0+dG9JbnQoJm9rKTsKKyAgICAg
ICAgICAgIGlmIChpbmRleCA+IDAgJiYgaW5kZXggPD0gb3B0aW9uQ291bnQpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGluZGV4IC0gMTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBDUkFT
SCgpOwogICAgIH0KICAgICByZXR1cm4gLTE7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAppbmRleCBjMjdhZjIz
Li5kOTRmY2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKQEAgLTExNyw3ICsxMTcsOSBAQCBTdHJpbmcgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpmb250KCkgY29uc3QKICAgICAgICAgc2VyaWFsaXplZEZv
bnQuYXBwZW5kKGZhbWlseSk7CiAgICAgfQogCi0gICAgcmV0dXJuIHNlcmlhbGl6ZWRGb250LnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc2VyaWFsaXplZEZvbnQudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNldEZvbnQoY29uc3QgU3RyaW5nJiBuZXdGb250KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkRCYXNlLmNwcAppbmRleCA3NjhjMGZjLi43YTg4Y2Q0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRC
YXNlLmNwcApAQCAtMjE3Miw4ICsyMTcyLDExIEBAIEV4Y2VwdGlvbk9yPFJlZlB0cjxJbWFnZURh
dGE+PiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpnZXRJbWFnZURhdGEoSW1hZ2VCCiAg
ICAgICAgIGNvbnNvbGVNZXNzYWdlLmFwcGVuZExpdGVyYWwoIiB4ICIpOwogICAgICAgICBjb25z
b2xlTWVzc2FnZS5hcHBlbmROdW1iZXIoaW1hZ2VEYXRhUmVjdC5oZWlnaHQoKSk7CiAKLSAgICAg
ICAgY2FudmFzQmFzZSgpLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+YWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZTo6UmVuZGVyaW5nLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBjb25zb2xl
TWVzc2FnZS50b1N0cmluZygpKTsKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRT
dGF0ZUVycm9yIH07CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGNvbnNvbGVNZXNzYWdlLnRv
U3RyaW5nKCkpIHsKKyAgICAgICAgICAgIGNhbnZhc0Jhc2UoKS5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlJlbmRlcmluZywgTWVzc2Fn
ZUxldmVsOjpFcnJvciwgKnN0cmluZyk7CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IgfTsKKyAgICAgICAgfQorICAgICAgICBDUkFTSCgpOwogICAgIH0K
IAogICAgIHJldHVybiBJbWFnZURhdGE6OmNyZWF0ZShpbWFnZURhdGFSZWN0LnNpemUoKSwgYnl0
ZUFycmF5LnJlbGVhc2VOb25OdWxsKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRleCA3ODc1ZGE4Li5j
ZDVlZTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtMTYyLDcgKzE2Miw5IEBAIG5hbWVzcGFjZSB7
CiAKICAgICAgICAgU3RyaW5nIHJlc3VsdCgpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBtX2J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IG1f
YnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
ICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTb3VyY2VUcmFja2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTb3VyY2VUcmFja2VyLmNwcAppbmRleCAyMmRiYTkw
Li44MGIxZTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU291
cmNlVHJhY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNvdXJj
ZVRyYWNrZXIuY3BwCkBAIC04Myw4ICs4MywxMSBAQCBTdHJpbmcgSFRNTFNvdXJjZVRyYWNrZXI6
OnNvdXJjZShjb25zdCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICBtX2N1cnJlbnRTb3VyY2Uu
YWR2YW5jZSgpOwogICAgIH0KIAotICAgIG1fY2FjaGVkU291cmNlRm9yVG9rZW4gPSBzb3VyY2Uu
dG9TdHJpbmcoKTsKLSAgICByZXR1cm4gbV9jYWNoZWRTb3VyY2VGb3JUb2tlbjsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBzb3VyY2UudG9TdHJpbmcoKSkgeworICAgICAgICBtX2NhY2hlZFNvdXJj
ZUZvclRva2VuID0gKnN0cmluZzsKKyAgICAgICAgcmV0dXJuIG1fY2FjaGVkU291cmNlRm9yVG9r
ZW47CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBIVE1MU291cmNlVHJhY2tlcjo6
c291cmNlKGNvbnN0IEhUTUxUb2tlbiYgdG9rZW4sIHVuc2lnbmVkIGF0dHJpYnV0ZVN0YXJ0LCB1
bnNpZ25lZCBhdHRyaWJ1dGVFbmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MVG9rZW5pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxU
b2tlbml6ZXIuY3BwCmluZGV4IDhhYzJmODUuLjM2NGVjMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwCkBAIC0xNDEsOCArMTQxLDEwIEBAIGlubGlu
ZSBib29sIEhUTUxUb2tlbml6ZXI6OnByb2Nlc3NFbnRpdHkoU2VnbWVudGVkU3RyaW5nJiBzb3Vy
Y2UpCiAgICAgICAgIEFTU0VSVChkZWNvZGVkRW50aXR5LmlzRW1wdHkoKSk7CiAgICAgICAgIGJ1
ZmZlckFTQ0lJQ2hhcmFjdGVyKCcmJyk7CiAgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGRlY29k
ZWRFbnRpdHkuZmFpbGVkKCkpCisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgZGVjb2RlZEVudGl0eS5sZW5ndGgoKTsgKytpKQotICAgICAgICAg
ICAgYnVmZmVyQ2hhcmFjdGVyKGRlY29kZWRFbnRpdHlbaV0pOworICAgICAgICAgICAgYnVmZmVy
Q2hhcmFjdGVyKCpkZWNvZGVkRW50aXR5W2ldKTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CiB9
CkBAIC04NjMsOCArODY1LDEwIEBAIGJvb2wgSFRNTFRva2VuaXplcjo6cHJvY2Vzc1Rva2VuKFNl
Z21lbnRlZFN0cmluZyYgc291cmNlKQogICAgICAgICAgICAgQVNTRVJUKGRlY29kZWRFbnRpdHku
aXNFbXB0eSgpKTsKICAgICAgICAgICAgIG1fdG9rZW4uYXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZSgn
JicpOwogICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKGRlY29kZWRFbnRpdHkuZmFp
bGVkKCkpCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBkZWNvZGVkRW50aXR5Lmxlbmd0aCgpOyArK2kpCi0gICAgICAgICAgICAg
ICAgbV90b2tlbi5hcHBlbmRUb0F0dHJpYnV0ZVZhbHVlKGRlY29kZWRFbnRpdHlbaV0pOworICAg
ICAgICAgICAgICAgIG1fdG9rZW4uYXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZSgqZGVjb2RlZEVudGl0
eVtpXSk7CiAgICAgICAgIH0KICAgICAgICAgLy8gV2UncmUgc3VwcG9zZWQgdG8gc3dpdGNoIGJh
Y2sgdG8gdGhlIGF0dHJpYnV0ZSB2YWx1ZSBzdGF0ZSB0aGF0CiAgICAgICAgIC8vIHdlIHdlcmUg
aW4gd2hlbiB3ZSB3ZXJlIHN3aXRjaGVkIGludG8gdGhpcyBzdGF0ZS4gUmF0aGVyIHRoYW4KQEAg
LTE0MDMsNyArMTQwNyw5IEBAIFN0cmluZyBIVE1MVG9rZW5pemVyOjpidWZmZXJlZENoYXJhY3Rl
cnMoKSBjb25zdAogICAgIGNoYXJhY3RlcnMuYXBwZW5kKCc8Jyk7CiAgICAgY2hhcmFjdGVycy5h
cHBlbmQoJy8nKTsKICAgICBjaGFyYWN0ZXJzLmFwcGVuZChtX3RlbXBvcmFyeUJ1ZmZlci5kYXRh
KCksIG1fdGVtcG9yYXJ5QnVmZmVyLnNpemUoKSk7Ci0gICAgcmV0dXJuIGNoYXJhY3RlcnMudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBjaGFyYWN0ZXJzLnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSFRNTFRva2Vu
aXplcjo6dXBkYXRlU3RhdGVGb3IoY29uc3QgQXRvbWljU3RyaW5nJiB0YWdOYW1lKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKaW5kZXggYjEwYTRj
NC4uODk5ZDRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRy
ZWVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1
aWxkZXIuY3BwCkBAIC0yNTY5LDE5ICsyNTY5LDIyIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpk
ZWZhdWx0Rm9yQWZ0ZXJIZWFkKCkKIAogdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OmRlZmF1bHRGb3JJ
blRhYmxlVGV4dCgpCiB7Ci0gICAgU3RyaW5nIGNoYXJhY3RlcnMgPSBtX3BlbmRpbmdUYWJsZUNo
YXJhY3RlcnMudG9TdHJpbmcoKTsKLSAgICBtX3BlbmRpbmdUYWJsZUNoYXJhY3RlcnMuY2xlYXIo
KTsKLSAgICBpZiAoIWlzQWxsV2hpdGVzcGFjZShjaGFyYWN0ZXJzKSkgewotICAgICAgICAvLyBG
SVhNRTogcGFyc2UgZXJyb3IKLSAgICAgICAgSFRNTENvbnN0cnVjdGlvblNpdGU6OlJlZGlyZWN0
VG9Gb3N0ZXJQYXJlbnRHdWFyZCByZWRpcmVjdGVyKG1fdHJlZSk7Ci0gICAgICAgIG1fdHJlZS5y
ZWNvbnN0cnVjdFRoZUFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpOwotICAgICAgICBtX3RyZWUu
aW5zZXJ0VGV4dE5vZGUoY2hhcmFjdGVycywgTm90QWxsV2hpdGVzcGFjZSk7Ci0gICAgICAgIG1f
ZnJhbWVzZXRPayA9IGZhbHNlOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1fcGVuZGluZ1RhYmxl
Q2hhcmFjdGVycy50b1N0cmluZygpKSB7CisgICAgICAgIFN0cmluZyBjaGFyYWN0ZXJzID0gKnN0
cmluZzsKKyAgICAgICAgbV9wZW5kaW5nVGFibGVDaGFyYWN0ZXJzLmNsZWFyKCk7CisgICAgICAg
IGlmICghaXNBbGxXaGl0ZXNwYWNlKGNoYXJhY3RlcnMpKSB7CisgICAgICAgICAgICAvLyBGSVhN
RTogcGFyc2UgZXJyb3IKKyAgICAgICAgICAgIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpSZWRpcmVj
dFRvRm9zdGVyUGFyZW50R3VhcmQgcmVkaXJlY3RlcihtX3RyZWUpOworICAgICAgICAgICAgbV90
cmVlLnJlY29uc3RydWN0VGhlQWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7CisgICAgICAgICAg
ICBtX3RyZWUuaW5zZXJ0VGV4dE5vZGUoY2hhcmFjdGVycywgTm90QWxsV2hpdGVzcGFjZSk7Cisg
ICAgICAgICAgICBtX2ZyYW1lc2V0T2sgPSBmYWxzZTsKKyAgICAgICAgICAgIG1faW5zZXJ0aW9u
TW9kZSA9IG1fb3JpZ2luYWxJbnNlcnRpb25Nb2RlOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisgICAgICAgIG1fdHJlZS5pbnNlcnRUZXh0Tm9kZShjaGFyYWN0ZXJzKTsKICAgICAg
ICAgbV9pbnNlcnRpb25Nb2RlID0gbV9vcmlnaW5hbEluc2VydGlvbk1vZGU7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0gICAgbV90cmVlLmluc2VydFRleHROb2RlKGNoYXJhY3RlcnMpOwotICAg
IG1faW5zZXJ0aW9uTW9kZSA9IG1fb3JpZ2luYWxJbnNlcnRpb25Nb2RlOworICAgIH0gZWxzZQor
ICAgICAgICBDUkFTSCgpOwogfQogCiBib29sIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0
VGFnRm9ySW5IZWFkKEF0b21pY0hUTUxUb2tlbiYmIHRva2VuKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAKaW5kZXggODBiNDIxMy4uN2Q0
Yzg5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRl
bGVnYXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVs
ZWdhdGUuY3BwCkBAIC02Niw3ICs2Niw5IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIGJ1aWxkQ29u
c29sZUVycm9yKGNvbnN0IFhTU0luZm8mIHhzc0luZm8pCiAgICAgZWxzZQogICAgICAgICBtZXNz
YWdlLmFwcGVuZExpdGVyYWwoIiBUaGUgYXVkaXRvciB3YXMgZW5hYmxlZCBiZWNhdXNlIHRoZSBz
ZXJ2ZXIgZGlkIG5vdCBzZW5kIGFuICdYLVhTUy1Qcm90ZWN0aW9uJyBoZWFkZXIuIik7CiAKLSAg
ICByZXR1cm4gbWVzc2FnZS50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1lc3Nh
Z2UudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogUmVmPEZvcm1EYXRhPiBYU1NBdWRpdG9yRGVsZWdhdGU6OmdlbmVyYXRlVmlvbGF0aW9uUmVw
b3J0KGNvbnN0IFhTU0luZm8mIHhzc0luZm8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL0J1ZmZlcmVkTGluZVJlYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL0J1ZmZlcmVkTGluZVJlYWRlci5jcHAKaW5kZXggOGYyMzYyNS4uZjI5MDhkNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9CdWZmZXJlZExpbmVSZWFkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQnVmZmVyZWRMaW5lUmVhZGVyLmNwcApAQCAt
OTIsOSArOTIsMTEgQEAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IEJ1ZmZlcmVkTGluZVJlYWRlcjo6
bmV4dExpbmUoKQogICAgIH0KIAogICAgIGlmIChzaG91bGRSZXR1cm5MaW5lKSB7Ci0gICAgICAg
IGF1dG8gbGluZSA9IG1fbGluZUJ1ZmZlci50b1N0cmluZygpOwotICAgICAgICBtX2xpbmVCdWZm
ZXIuY2xlYXIoKTsKLSAgICAgICAgcmV0dXJuIFdURk1vdmUobGluZSk7CisgICAgICAgIGlmIChh
dXRvIGxpbmUgPSBtX2xpbmVCdWZmZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgbV9saW5l
QnVmZmVyLmNsZWFyKCk7CisgICAgICAgICAgICByZXR1cm4gV1RGTW92ZSgqbGluZSk7CisgICAg
ICAgIH0KKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBBU1NFUlQobV9idWZmZXIuaXNF
bXB0eSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcAppbmRleCAzMzNh
MmY4Li4yOTQxNmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNr
QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwCkBA
IC0xNTMsNyArMTUzLDEwIEBAIHZvaWQgVHJhY2tCYXNlOjpzZXRMYW5ndWFnZShjb25zdCBBdG9t
aWNTdHJpbmcmIGxhbmd1YWdlKQogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRl
cmFsKCJUaGUgbGFuZ3VhZ2UgJyIpOwogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQo
bGFuZ3VhZ2UpOwogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCInIGlz
IG5vdCBhIHZhbGlkIEJDUCA0NyBsYW5ndWFnZSB0YWcuIik7Ci0gICAgICAgICAgICBtZXNzYWdl
ID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5n
ID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAq
c3RyaW5nOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAg
ICAgIH0KICAgICAgICAgaWYgKGF1dG8gZWxlbWVudCA9IHRoaXMtPmVsZW1lbnQoKSkKICAgICAg
ICAgICAgIGVsZW1lbnQtPmRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJj
ZTo6UmVuZGVyaW5nLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIG1lc3NhZ2UpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9WVFRDdWUuY3BwCmluZGV4IDc4ZjhhZGYuLjNiYmMyNDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAKQEAgLTYyOSw3ICs2MjksMTEgQEAgdm9pZCBWVFRDdWU6
OmRldGVybWluZVRleHREaXJlY3Rpb24oKQogICAgICAgICBwYXJhZ3JhcGhCdWlsZGVyLmFwcGVu
ZChub2RlLT5ub2RlVmFsdWUoKSk7CiAgICAgfQogCi0gICAgU3RyaW5nIHBhcmFncmFwaCA9IHBh
cmFncmFwaEJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBTdHJpbmcgcGFyYWdyYXBoID0gWyZdICgp
IHsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcGFyYWdyYXBoQnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CisgICAgfSgp
OwogICAgIGlmICghcGFyYWdyYXBoLmxlbmd0aCgpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcAppbmRleCA1MThlZDhiLi44MGQw
MmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwCkBAIC00
MDQsNyArNDA0LDEwIEBAIHZvaWQgV2ViVlRUUGFyc2VyOjpjcmVhdGVOZXdDdWUoKQogICAgIFJl
ZlB0cjxXZWJWVFRDdWVEYXRhPiBjdWUgPSBXZWJWVFRDdWVEYXRhOjpjcmVhdGUoKTsKICAgICBj
dWUtPnNldFN0YXJ0VGltZShtX2N1cnJlbnRTdGFydFRpbWUpOwogICAgIGN1ZS0+c2V0RW5kVGlt
ZShtX2N1cnJlbnRFbmRUaW1lKTsKLSAgICBjdWUtPnNldENvbnRlbnQobV9jdXJyZW50Q29udGVu
dC50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtX2N1cnJlbnRDb250ZW50LnRv
U3RyaW5nKCkpCisgICAgICAgIGN1ZS0+c2V0Q29udGVudCgqc3RyaW5nKTsKKyAgICBlbHNlCisg
ICAgICAgIENSQVNIKCk7CiAgICAgY3VlLT5zZXRJZChtX2N1cnJlbnRJZCk7CiAgICAgY3VlLT5z
ZXRTZXR0aW5ncyhtX2N1cnJlbnRTZXR0aW5ncyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svV2ViVlRUVG9rZW5pemVyLmNwcAppbmRleCAwMjRjMDRhLi5mZTNkZGE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFRva2VuaXplci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3BwCkBAIC0xMDgsMTEg
KzEwOCwxNSBAQCBEYXRhU3RhdGU6CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgLy8gV2Ug
ZG9uJ3Qgd2FudCB0byBhZHZhbmNlIGlucHV0IG9yIHBlcmZvcm0gYSBzdGF0ZSB0cmFuc2l0aW9u
IC0ganVzdCByZXR1cm4gYSAobmV3KSB0b2tlbi4KICAgICAgICAgICAgIC8vIChPbiB0aGUgbmV4
dCBjYWxsIHRvIG5leHRUb2tlbiB3ZSB3aWxsIHNlZSAnPCcgYWdhaW4sIGJ1dCB0YWtlIHRoZSBv
dGhlciBicmFuY2ggaW4gdGhpcyBpZiBpbnN0ZWFkLikKLSAgICAgICAgICAgIHJldHVybiBlbWl0
VG9rZW4odG9rZW4sIFdlYlZUVFRva2VuOjpTdHJpbmdUb2tlbihyZXN1bHQudG9TdHJpbmcoKSkp
OworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIGVtaXRUb2tlbih0b2tlbiwgV2ViVlRUVG9rZW46OlN0cmluZ1Rv
a2VuKCpzdHJpbmcpKTsKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KLSAgICB9IGVs
c2UgaWYgKGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKQotICAgICAgICByZXR1cm4gYWR2
YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OlN0cmluZ1Rva2Vu
KHJlc3VsdC50b1N0cmluZygpKSk7Ci0gICAgZWxzZSB7CisgICAgfSBlbHNlIGlmIChjaGFyYWN0
ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1
bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1f
aW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6U3RyaW5nVG9rZW4oKnN0cmluZykpOworICAgICAg
ICBDUkFTSCgpOworICAgIH0gZWxzZSB7CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2hhcmFjdGVy
KTsKICAgICAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oRGF0YVN0YXRlKTsKICAgICB9CkBAIC0xNDIs
MTAgKzE0NiwxNCBAQCBFc2NhcGVTdGF0ZToKICAgICAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oRXNj
YXBlU3RhdGUpOwogICAgIH0gZWxzZSBpZiAoY2hhcmFjdGVyID09ICc8JykgewogICAgICAgICBy
ZXN1bHQuYXBwZW5kKGJ1ZmZlcik7Ci0gICAgICAgIHJldHVybiBlbWl0VG9rZW4odG9rZW4sIFdl
YlZUVFRva2VuOjpTdHJpbmdUb2tlbihyZXN1bHQudG9TdHJpbmcoKSkpOworICAgICAgICBpZiAo
YXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiBlbWl0
VG9rZW4odG9rZW4sIFdlYlZUVFRva2VuOjpTdHJpbmdUb2tlbigqc3RyaW5nKSk7CisgICAgICAg
IENSQVNIKCk7CiAgICAgfSBlbHNlIGlmIChjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikg
ewogICAgICAgICByZXN1bHQuYXBwZW5kKGJ1ZmZlcik7Ci0gICAgICAgIHJldHVybiBhZHZhbmNl
QW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6U3RyaW5nVG9rZW4ocmVz
dWx0LnRvU3RyaW5nKCkpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3Ry
aW5nKCkpCisgICAgICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0
b2tlbiwgV2ViVlRUVG9rZW46OlN0cmluZ1Rva2VuKCpzdHJpbmcpKTsKKyAgICAgICAgQ1JBU0go
KTsKICAgICB9IGVsc2UgewogICAgICAgICByZXN1bHQuYXBwZW5kKGJ1ZmZlcik7CiAgICAgICAg
IGJ1ZmZlci5jbGVhcigpOwpAQCAtMTcyLDcgKzE4MCw5IEBAIFRhZ1N0YXRlOgogICAgICAgICBX
RUJWVFRfQURWQU5DRV9UTyhUaW1lc3RhbXBUYWdTdGF0ZSk7CiAgICAgfSBlbHNlIGlmIChjaGFy
YWN0ZXIgPT0gJz4nIHx8IGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAg
IEFTU0VSVChyZXN1bHQuaXNFbXB0eSgpKTsKLSAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0
VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpTdGFydFRhZyhyZXN1bHQudG9TdHJp
bmcoKSkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJW
VFRUb2tlbjo6U3RhcnRUYWcoKnN0cmluZykpOworICAgICAgICBDUkFTSCgpOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2hhcmFjdGVyKTsKICAgICAgICAgV0VCVlRUX0FE
VkFOQ0VfVE8oU3RhcnRUYWdTdGF0ZSk7CkBAIC0xODMsOSArMTkzLDExIEBAIFN0YXJ0VGFnU3Rh
dGU6CiAgICAgICAgIFdFQlZUVF9BRFZBTkNFX1RPKFN0YXJ0VGFnQW5ub3RhdGlvblN0YXRlKTsK
ICAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gJy4nKQogICAgICAgICBXRUJWVFRfQURWQU5DRV9U
TyhTdGFydFRhZ0NsYXNzU3RhdGUpOwotICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSAnPicgfHwg
Y2hhcmFjdGVyID09IGtFbmRPZkZpbGVNYXJrZXIpCi0gICAgICAgIHJldHVybiBhZHZhbmNlQW5k
RW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6U3RhcnRUYWcocmVzdWx0LnRv
U3RyaW5nKCkpKTsKLSAgICBlbHNlIHsKKyAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gJz4nIHx8
IGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0
VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpTdGFydFRhZygqc3RyaW5nKSk7Cisg
ICAgICAgIENSQVNIKCk7CisgICAgfSBlbHNlIHsKICAgICAgICAgcmVzdWx0LmFwcGVuZChjaGFy
YWN0ZXIpOwogICAgICAgICBXRUJWVFRfQURWQU5DRV9UTyhTdGFydFRhZ1N0YXRlKTsKICAgICB9
CkBAIC0yMDIsMjcgKzIxNCw0NCBAQCBTdGFydFRhZ0NsYXNzU3RhdGU6CiAgICAgfSBlbHNlIGlm
IChjaGFyYWN0ZXIgPT0gJz4nIHx8IGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAg
ICAgICAgIGFkZE5ld0NsYXNzKGNsYXNzZXMsIGJ1ZmZlcik7CiAgICAgICAgIGJ1ZmZlci5jbGVh
cigpOwotICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwg
V2ViVlRUVG9rZW46OlN0YXJ0VGFnKHJlc3VsdC50b1N0cmluZygpLCBjbGFzc2VzLnRvQXRvbWlj
U3RyaW5nKCkpKTsKKyAgICAgICAgaWYgKGF1dG8gcmVzdWx0U3RyaW5nID0gcmVzdWx0LnRvU3Ry
aW5nKCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIGNsYXNzZXNTdHJpbmcgPSBjbGFzc2VzLnRv
QXRvbWljU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9r
ZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpTdGFydFRhZygqcmVzdWx0U3RyaW5nLCAq
Y2xhc3Nlc1N0cmluZykpOworICAgICAgICB9CisgICAgICAgIENSQVNIKCk7CiAgICAgfSBlbHNl
IHsKICAgICAgICAgYnVmZmVyLmFwcGVuZChjaGFyYWN0ZXIpOwogICAgICAgICBXRUJWVFRfQURW
QU5DRV9UTyhTdGFydFRhZ0NsYXNzU3RhdGUpOwogICAgIH0KIAogU3RhcnRUYWdBbm5vdGF0aW9u
U3RhdGU6Ci0gICAgaWYgKGNoYXJhY3RlciA9PSAnPicgfHwgY2hhcmFjdGVyID09IGtFbmRPZkZp
bGVNYXJrZXIpCi0gICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRv
a2VuLCBXZWJWVFRUb2tlbjo6U3RhcnRUYWcocmVzdWx0LnRvU3RyaW5nKCksIGNsYXNzZXMudG9B
dG9taWNTdHJpbmcoKSwgYnVmZmVyLnRvQXRvbWljU3RyaW5nKCkpKTsKKyAgICBpZiAoY2hhcmFj
dGVyID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikgeworICAgICAgICBp
ZiAoYXV0byByZXN1bHRTdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkgeworICAgICAgICAgICAg
aWYgKGF1dG8gY2xhc3Nlc1N0cmluZyA9IGNsYXNzZXMudG9BdG9taWNTdHJpbmcoKSkgeworICAg
ICAgICAgICAgICAgIGlmIChhdXRvIGJ1ZmZlclN0cmluZyA9IGJ1ZmZlci50b0F0b21pY1N0cmlu
ZygpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lu
cHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OlN0YXJ0VGFnKCpyZXN1bHRTdHJpbmcsICpjbGFzc2Vz
U3RyaW5nLCAqYnVmZmVyU3RyaW5nKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAg
ICAgQ1JBU0goKTsKKyAgICB9CiAgICAgYnVmZmVyLmFwcGVuZChjaGFyYWN0ZXIpOwogICAgIFdF
QlZUVF9BRFZBTkNFX1RPKFN0YXJ0VGFnQW5ub3RhdGlvblN0YXRlKTsKIAogRW5kVGFnU3RhdGU6
Ci0gICAgaWYgKGNoYXJhY3RlciA9PSAnPicgfHwgY2hhcmFjdGVyID09IGtFbmRPZkZpbGVNYXJr
ZXIpCi0gICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBX
ZWJWVFRUb2tlbjo6RW5kVGFnKHJlc3VsdC50b1N0cmluZygpKSk7CisgICAgaWYgKGNoYXJhY3Rl
ciA9PSAnPicgfHwgY2hhcmFjdGVyID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gYWR2
YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OkVuZFRhZygqc3Ry
aW5nKSk7CisgICAgICAgIENSQVNIKCk7CisgICAgfQogICAgIHJlc3VsdC5hcHBlbmQoY2hhcmFj
dGVyKTsKICAgICBXRUJWVFRfQURWQU5DRV9UTyhFbmRUYWdTdGF0ZSk7CiAKIFRpbWVzdGFtcFRh
Z1N0YXRlOgotICAgIGlmIChjaGFyYWN0ZXIgPT0gJz4nIHx8IGNoYXJhY3RlciA9PSBrRW5kT2ZG
aWxlTWFya2VyKQotICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0
b2tlbiwgV2ViVlRUVG9rZW46OlRpbWVzdGFtcFRhZyhyZXN1bHQudG9TdHJpbmcoKSkpOworICAg
IGlmIChjaGFyYWN0ZXIgPT0gJz4nIHx8IGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7
CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAg
ICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2Vu
OjpUaW1lc3RhbXBUYWcoKnN0cmluZykpOworICAgICAgICBDUkFTSCgpOworICAgIH0KICAgICBy
ZXN1bHQuYXBwZW5kKGNoYXJhY3Rlcik7CiAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oVGltZXN0YW1w
VGFnU3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0
eWxlU2hlZXQuY3BwCmluZGV4IDlkOTg1ODEuLjY1MWQyZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKQEAgLTc3MSw3ICs3NzEsOSBA
QCBTdHJpbmcgSW5zcGVjdG9yU3R5bGU6OnNob3J0aGFuZFZhbHVlKGNvbnN0IFN0cmluZyYgc2hv
cnRoYW5kUHJvcGVydHkpIGNvbnN0CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwog
ICAgICAgICBidWlsZGVyLmFwcGVuZChpbmRpdmlkdWFsVmFsdWUpOwogICAgIH0KLSAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3Ry
aW5nIEluc3BlY3RvclN0eWxlOjpzaG9ydGhhbmRQcmlvcml0eShjb25zdCBTdHJpbmcmIHNob3J0
aGFuZFByb3BlcnR5KSBjb25zdApAQCAtOTQzLDEzICs5NDUsMjAgQEAgRXhjZXB0aW9uT3I8Q1NT
U3R5bGVSdWxlKj4gSW5zcGVjdG9yU3R5bGVTaGVldDo6YWRkUnVsZShjb25zdCBTdHJpbmcmIHNl
bGVjdG9yKQogICAgIHN0eWxlU2hlZXRUZXh0LmFwcGVuZExpdGVyYWwoIiB7fSIpOwogCiAgICAg
Ly8gVXNpbmcgc2V0VGV4dCgpIGFzIHRoaXMgb3BlcmF0aW9uIGNoYW5nZXMgdGhlIHN0eWxlc2hl
ZXQgcnVsZSBzZXQuCi0gICAgc2V0VGV4dChzdHlsZVNoZWV0VGV4dC50b1N0cmluZygpKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBzdHlsZVNoZWV0VGV4dC50b1N0cmluZygpKQorICAgICAgICBz
ZXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIC8vIElu
c3BlY3RvciBTdHlsZSBTaGVldHMgYXJlIGFsd2F5cyB0cmVhdGVkIGFzIHRob3VnaCB0aGVpciBw
YXJzZWQgZGF0YSBpcyByZWFkeS4KICAgICBpZiAobV9vcmlnaW4gPT0gSW5zcGVjdG9yOjpQcm90
b2NvbDo6Q1NTOjpTdHlsZVNoZWV0T3JpZ2luOjpJbnNwZWN0b3IpCiAgICAgICAgIGZpcmVTdHls
ZVNoZWV0Q2hhbmdlZCgpOwotICAgIGVsc2UKLSAgICAgICAgcmVwYXJzZVN0eWxlU2hlZXQoc3R5
bGVTaGVldFRleHQudG9TdHJpbmcoKSk7CisgICAgZWxzZSB7CisgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IHN0eWxlU2hlZXRUZXh0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXBhcnNlU3R5
bGVTaGVldCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKKyAg
ICB9CiAKICAgICBBU1NFUlQobV9wYWdlU3R5bGVTaGVldC0+bGVuZ3RoKCkpOwogICAgIHVuc2ln
bmVkIGxhc3RSdWxlSW5kZXggPSBtX3BhZ2VTdHlsZVNoZWV0LT5sZW5ndGgoKSAtIDE7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFwcGxpY2F0
aW9uQ2FjaGVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAKaW5kZXggMTlhZjRlOS4uYmY5YjRmZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcApAQCAtMTcyLDExICsxNzIsMTQgQEAg
UmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFwcGxpY2F0aW9uQ2FjaGU6OkFwcGxpY2F0aW9uQ2Fj
aGVSZXNvdXJjZT4gSW5zcGVjdG9yQXAKICAgICBpZiAocmVzb3VyY2VJbmZvLmlzRXhwbGljaXQp
CiAgICAgICAgIHR5cGVzLmFwcGVuZExpdGVyYWwoIkV4cGxpY2l0ICIpOwogCi0gICAgcmV0dXJu
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFwcGxpY2F0aW9uQ2FjaGU6OkFwcGxpY2F0aW9uQ2FjaGVS
ZXNvdXJjZTo6Y3JlYXRlKCkKLSAgICAgICAgLnNldFVybChyZXNvdXJjZUluZm8ucmVzb3VyY2Uu
c3RyaW5nKCkpCi0gICAgICAgIC5zZXRTaXplKHN0YXRpY19jYXN0PGludD4ocmVzb3VyY2VJbmZv
LnNpemUpKQotICAgICAgICAuc2V0VHlwZSh0eXBlcy50b1N0cmluZygpKQotICAgICAgICAucmVs
ZWFzZSgpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHR5cGVzLnRvU3RyaW5nKCkpIHsKKyAgICAg
ICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFwcGxpY2F0aW9uQ2FjaGU6OkFwcGxpY2F0
aW9uQ2FjaGVSZXNvdXJjZTo6Y3JlYXRlKCkKKyAgICAgICAgICAgIC5zZXRVcmwocmVzb3VyY2VJ
bmZvLnJlc291cmNlLnN0cmluZygpKQorICAgICAgICAgICAgLnNldFNpemUoc3RhdGljX2Nhc3Q8
aW50PihyZXNvdXJjZUluZm8uc2l6ZSkpCisgICAgICAgICAgICAuc2V0VHlwZSgqc3RyaW5nKQor
ICAgICAgICAgICAgLnJlbGVhc2UoKTsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCmluZGV4IDQ2ZTRhZmUuLmFmMTcwNDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0
d29ya0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3Rvck5ldHdvcmtBZ2VudC5jcHAKQEAgLTEzNCw4ICsxMzQsMTEgQEAgcHVibGljOgogICAgICAg
ICBpZiAobV9kZWNvZGVyKQogICAgICAgICAgICAgbV9yZXNwb25zZVRleHQuYXBwZW5kKG1fZGVj
b2Rlci0+Zmx1c2goKSk7CiAKLSAgICAgICAgbV9jYWxsYmFjay0+c2VuZFN1Y2Nlc3MobV9yZXNw
b25zZVRleHQudG9TdHJpbmcoKSwgbV9taW1lVHlwZSwgbV9zdGF0dXNDb2RlKTsKLSAgICAgICAg
ZGlzcG9zZSgpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBtX3Jlc3BvbnNlVGV4dC50b1N0
cmluZygpKSB7CisgICAgICAgICAgICBtX2NhbGxiYWNrLT5zZW5kU3VjY2Vzcygqc3RyaW5nLCBt
X21pbWVUeXBlLCBtX3N0YXR1c0NvZGUpOworICAgICAgICAgICAgZGlzcG9zZSgpOworICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgdm9pZCBkaWRGYWls
KGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKSBvdmVycmlkZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xlQWdlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xlQWdlbnQuY3BwCmluZGV4IGRjOTY0ODYu
LjYzODM4YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2Vi
Q29uc29sZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dl
YkNvbnNvbGVBZ2VudC5jcHAKQEAgLTE2OSw3ICsxNjksMTAgQEAgdm9pZCBXZWJDb25zb2xlQWdl
bnQ6OmRpZEZhaWxMb2FkaW5nKHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0
IFJlc28KICAgICAgICAgbWVzc2FnZS5hcHBlbmQoZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24o
KSk7CiAgICAgfQogCi0gICAgYWRkTWVzc2FnZVRvQ29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPENv
bnNvbGVNZXNzYWdlPihNZXNzYWdlU291cmNlOjpOZXR3b3JrLCBNZXNzYWdlVHlwZTo6TG9nLCBN
ZXNzYWdlTGV2ZWw6OkVycm9yLCBtZXNzYWdlLnRvU3RyaW5nKCksIGVycm9yLmZhaWxpbmdVUkwo
KSwgMCwgMCwgbnVsbHB0ciwgcmVxdWVzdElkZW50aWZpZXIpKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBtZXNzYWdlLnRvU3RyaW5nKCkpCisgICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUoc3Rk
OjptYWtlX3VuaXF1ZTxDb25zb2xlTWVzc2FnZT4oTWVzc2FnZVNvdXJjZTo6TmV0d29yaywgTWVz
c2FnZVR5cGU6OkxvZywgTWVzc2FnZUxldmVsOjpFcnJvciwgKnN0cmluZywgZXJyb3IuZmFpbGlu
Z1VSTCgpLCAwLCAwLCBudWxscHRyLCByZXF1ZXN0SWRlbnRpZmllcikpOworICAgIGVsc2UKKyAg
ICAgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcAppbmRleCA2ODgw
NGYyLi5mODhhNDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmln
aW5BY2Nlc3NDb250cm9sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmln
aW5BY2Nlc3NDb250cm9sLmNwcApAQCAtMTEyLDggKzExMiwxMiBAQCBSZXNvdXJjZVJlcXVlc3Qg
Y3JlYXRlQWNjZXNzQ29udHJvbFByZWZsaWdodFJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZQogCiAgICAgICAgICAgICBoZWFkZXJCdWZmZXIuYXBwZW5kKGhlYWRlckZpZWxkKTsK
ICAgICAgICAgfQotICAgICAgICBpZiAoIWhlYWRlckJ1ZmZlci5pc0VtcHR5KCkpCi0gICAgICAg
ICAgICBwcmVmbGlnaHRSZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6
QWNjZXNzQ29udHJvbFJlcXVlc3RIZWFkZXJzLCBoZWFkZXJCdWZmZXIudG9TdHJpbmcoKSk7Cisg
ICAgICAgIGlmICghaGVhZGVyQnVmZmVyLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gaGVhZGVyQnVmZmVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgcHJl
ZmxpZ2h0UmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkFjY2Vzc0Nv
bnRyb2xSZXF1ZXN0SGVhZGVycywgKnN0cmluZyk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIHJldHVybiBwcmVmbGln
aHRSZXF1ZXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3MuY3BwCmluZGV4IDRkZjI1ZGEuLjk4NmZlNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5jcHAKQEAgLTI2OCw3ICsyNjgsOSBAQCBT
dHJpbmcgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6dG9TdHJpbmcoKSBjb25zdAogCiAgICAgYnVp
bGRlci5hcHBlbmQoJ1xuJyk7CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3Jh
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVT
dG9yYWdlLmNwcAppbmRleCBmZjI5Mzg5Li40ZjIyZDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAK
QEAgLTg0MSwxNyArODQxLDIwIEBAIGJvb2wgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OnN0b3Jl
KEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZSogcmVzb3VyY2UsIHVuc2lnbmVkCiAKICAgICAvLyBU
aGVuLCBpbnNlcnQgdGhlIHJlc291cmNlCiAgICAgCi0gICAgLy8gU2VyaWFsaXplIHRoZSBoZWFk
ZXJzCi0gICAgU3RyaW5nQnVpbGRlciBzdHJpbmdCdWlsZGVyOwotICAgIAotICAgIGZvciAoY29u
c3QgYXV0byYgaGVhZGVyIDogcmVzb3VyY2UtPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkcygp
KSB7Ci0gICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGhlYWRlci5rZXkpOwotICAgICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZCgnOicpOwotICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCho
ZWFkZXIudmFsdWUpOwotICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICB9
Ci0gICAgCi0gICAgU3RyaW5nIGhlYWRlcnMgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgU3RyaW5nIGhlYWRlcnMgPSBbJl0gKCkgeworICAgICAgICAvLyBTZXJpYWxpemUgdGhlIGhl
YWRlcnMKKyAgICAgICAgU3RyaW5nQnVpbGRlciBzdHJpbmdCdWlsZGVyOworICAgIAorICAgICAg
ICBmb3IgKGNvbnN0IGF1dG8mIGhlYWRlciA6IHJlc291cmNlLT5yZXNwb25zZSgpLmh0dHBIZWFk
ZXJGaWVsZHMoKSkgeworICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoaGVhZGVyLmtl
eSk7CisgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnOicpOworICAgICAgICAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmQoaGVhZGVyLnZhbHVlKTsKKyAgICAgICAgICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kKCdcbicpOworICAgICAgICB9CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgICAgICBDUkFTSCgpOworICAgIH0oKTsKICAgICAKICAgICBTUUxpdGVTdGF0ZW1lbnQgcmVz
b3VyY2VTdGF0ZW1lbnQobV9kYXRhYmFzZSwgIklOU0VSVCBJTlRPIENhY2hlUmVzb3VyY2VzICh1
cmwsIHN0YXR1c0NvZGUsIHJlc3BvbnNlVVJMLCBoZWFkZXJzLCBkYXRhLCBtaW1lVHlwZSwgdGV4
dEVuY29kaW5nTmFtZSkgVkFMVUVTICg/LCA/LCA/LCA/LCA/LCA/LCA/KSIpOwogICAgIGlmIChy
ZXNvdXJjZVN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcAppbmRleCAx
MmEzMGNjLi5jZmU3Mzg2M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNo
aXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9h
cmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwCkBAIC01NTcsMjEgKzU1NywyNCBAQCBSZWZQ
dHI8TGVnYWN5V2ViQXJjaGl2ZT4gTGVnYWN5V2ViQXJjaGl2ZTo6Y3JlYXRlRnJvbVNlbGVjdGlv
bihGcmFtZSogZnJhbWUpCiAgICAgaWYgKGF1dG8gc2VsZWN0aW9uUmFuZ2UgPSBmcmFtZS0+c2Vs
ZWN0aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKSkKICAgICAgICAgYnVpbGRlci5hcHBlbmQoY3Jl
YXRlTWFya3VwKCpzZWxlY3Rpb25SYW5nZSwgJm5vZGVMaXN0LCBBbm5vdGF0ZUZvckludGVyY2hh
bmdlKSk7CiAKLSAgICBhdXRvIGFyY2hpdmUgPSBjcmVhdGUoYnVpbGRlci50b1N0cmluZygpLCAq
ZnJhbWUsIG5vZGVMaXN0LCBudWxscHRyKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCkpIHsKKyAgICAgICAgYXV0byBhcmNoaXZlID0gY3JlYXRlKCpzdHJpbmcsICpm
cmFtZSwgbm9kZUxpc3QsIG51bGxwdHIpOwogICAgIAotICAgIGlmICghZG9jdW1lbnQtPmlzRnJh
bWVTZXQoKSkKLSAgICAgICAgcmV0dXJuIGFyY2hpdmU7CisgICAgICAgIGlmICghZG9jdW1lbnQt
PmlzRnJhbWVTZXQoKSkKKyAgICAgICAgICAgIHJldHVybiBhcmNoaXZlOwogICAgICAgICAKLSAg
ICAvLyBXcmFwIHRoZSBmcmFtZXNldCBkb2N1bWVudCBpbiBhbiBpZnJhbWUgc28gaXQgY2FuIGJl
IHBhc3RlZCBpbnRvCi0gICAgLy8gYW5vdGhlciBkb2N1bWVudCAod2hpY2ggd2lsbCBoYXZlIGEg
Ym9keSBvciBmcmFtZXNldCBvZiBpdHMgb3duKS4gCi0gICAgU3RyaW5nIGlmcmFtZU1hcmt1cCA9
ICI8aWZyYW1lIGZyYW1lYm9yZGVyPVwibm9cIiBtYXJnaW53aWR0aD1cIjBcIiBtYXJnaW5oZWln
aHQ9XCIwXCIgd2lkdGg9XCI5OCUlXCIgaGVpZ2h0PVwiOTglJVwiIHNyYz1cIiIgKyBmcmFtZS0+
bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2UoKS51cmwoKS5zdHJpbmcoKSArICJc
Ij48L2lmcmFtZT4iOwotICAgIGF1dG8gaWZyYW1lUmVzb3VyY2UgPSBBcmNoaXZlUmVzb3VyY2U6
OmNyZWF0ZSh1dGY4QnVmZmVyKGlmcmFtZU1hcmt1cCksIGJsYW5rVVJMKCksICJ0ZXh0L2h0bWwi
LCAiVVRGLTgiLCBTdHJpbmcoKSk7CisgICAgICAgIC8vIFdyYXAgdGhlIGZyYW1lc2V0IGRvY3Vt
ZW50IGluIGFuIGlmcmFtZSBzbyBpdCBjYW4gYmUgcGFzdGVkIGludG8KKyAgICAgICAgLy8gYW5v
dGhlciBkb2N1bWVudCAod2hpY2ggd2lsbCBoYXZlIGEgYm9keSBvciBmcmFtZXNldCBvZiBpdHMg
b3duKS4gCisgICAgICAgIFN0cmluZyBpZnJhbWVNYXJrdXAgPSAiPGlmcmFtZSBmcmFtZWJvcmRl
cj1cIm5vXCIgbWFyZ2lud2lkdGg9XCIwXCIgbWFyZ2luaGVpZ2h0PVwiMFwiIHdpZHRoPVwiOTgl
JVwiIGhlaWdodD1cIjk4JSVcIiBzcmM9XCIiICsgZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9h
ZGVyKCktPnJlc3BvbnNlKCkudXJsKCkuc3RyaW5nKCkgKyAiXCI+PC9pZnJhbWU+IjsKKyAgICAg
ICAgYXV0byBpZnJhbWVSZXNvdXJjZSA9IEFyY2hpdmVSZXNvdXJjZTo6Y3JlYXRlKHV0ZjhCdWZm
ZXIoaWZyYW1lTWFya3VwKSwgYmxhbmtVUkwoKSwgInRleHQvaHRtbCIsICJVVEYtOCIsIFN0cmlu
ZygpKTsKIAotICAgIFZlY3RvcjxSZWY8TGVnYWN5V2ViQXJjaGl2ZT4+IHN1YmZyYW1lQXJjaGl2
ZXM7Ci0gICAgc3ViZnJhbWVBcmNoaXZlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KDEpOwotICAg
IHN1YmZyYW1lQXJjaGl2ZXMudW5jaGVja2VkQXBwZW5kKGFyY2hpdmUucmVsZWFzZU5vbk51bGwo
KSk7CisgICAgICAgIFZlY3RvcjxSZWY8TGVnYWN5V2ViQXJjaGl2ZT4+IHN1YmZyYW1lQXJjaGl2
ZXM7CisgICAgICAgIHN1YmZyYW1lQXJjaGl2ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSgxKTsK
KyAgICAgICAgc3ViZnJhbWVBcmNoaXZlcy51bmNoZWNrZWRBcHBlbmQoYXJjaGl2ZS5yZWxlYXNl
Tm9uTnVsbCgpKTsKIAotICAgIHJldHVybiBjcmVhdGUoaWZyYW1lUmVzb3VyY2UucmVsZWFzZU5v
bk51bGwoKSwgeyB9LCBXVEZNb3ZlKHN1YmZyYW1lQXJjaGl2ZXMpKTsKKyAgICAgICAgcmV0dXJu
IGNyZWF0ZShpZnJhbWVSZXNvdXJjZS5yZWxlYXNlTm9uTnVsbCgpLCB7IH0sIFdURk1vdmUoc3Vi
ZnJhbWVBcmNoaXZlcykpOworICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcAppbmRl
eCA3MDVjNmRjLi44Y2M2OGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJj
aGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9h
cmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHAKQEAgLTc2LDcgKzc2LDkgQEAgc3RhdGljIFN0
cmluZyBnZW5lcmF0ZVJhbmRvbUJvdW5kYXJ5KCkKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmQobG93ZXJOaWJibGVUb0FTQ0lJSGV4RGlnaXQocmFuZG9tVmFsdWVzW2ldKSk7CiAgICAgICAg
IHN0cmluZ0J1aWxkZXIuYXBwZW5kKHVwcGVyTmliYmxlVG9BU0NJSUhleERpZ2l0KHJhbmRvbVZh
bHVlc1tpXSkpOwogICAgIH0KLSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyByZXBsYWNl
Tm9uUHJpbnRhYmxlQ2hhcmFjdGVycyhjb25zdCBTdHJpbmcmIHRleHQpCkBAIC04OCw3ICs5MCw5
IEBAIHN0YXRpYyBTdHJpbmcgcmVwbGFjZU5vblByaW50YWJsZUNoYXJhY3RlcnMoY29uc3QgU3Ry
aW5nJiB0ZXh0KQogICAgICAgICBlbHNlCiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
ZCgnPycpOwogICAgIH0KLSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogTUhUTUxBcmNoaXZlOjpNSFRNTEFyY2hp
dmUoKQpAQCAtMTYwLDEwICsxNjQsMTYgQEAgUmVmPFNoYXJlZEJ1ZmZlcj4gTUhUTUxBcmNoaXZl
OjpnZW5lcmF0ZU1IVE1MRGF0YShQYWdlKiBwYWdlKQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5k
KCJcIlxyXG5cclxuIik7CiAKICAgICAvLyBXZSB1c2UgdXRmOCgpIGJlbG93IGluc3RlYWQgb2Yg
YXNjaWkoKSBhcyBhc2NpaSgpIHJlcGxhY2VzIENSTEZzIHdpdGggPz8gKHdlIHN0aWxsIG9ubHkg
aGF2ZSBwdXQgQVNDSUkgY2hhcmFjdGVycyBpbiBpdCkuCi0gICAgQVNTRVJUKHN0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKS5pc0FsbEFTQ0lJKCkpOwotICAgIENTdHJpbmcgYXNjaWlTdHJpbmcgPSBz
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpOwotICAgIGF1dG8gbWh0bWxEYXRhID0gU2hh
cmVkQnVmZmVyOjpjcmVhdGUoKTsKLSAgICBtaHRtbERhdGEtPmFwcGVuZChhc2NpaVN0cmluZy5k
YXRhKCksIGFzY2lpU3RyaW5nLmxlbmd0aCgpKTsKKyAgICBhdXRvIG1odG1sRGF0YSA9IFsmXSAo
KSB7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkg
eworICAgICAgICAgICAgQVNTRVJUKHN0cmluZy0+aXNBbGxBU0NJSSgpKTsKKyAgICAgICAgICAg
IENTdHJpbmcgYXNjaWlTdHJpbmcgPSBzdHJpbmctPnV0ZjgoKTsKKyAgICAgICAgICAgIGF1dG8g
cmVzdWx0ID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoKTsKKyAgICAgICAgICAgIHJlc3VsdC0+YXBw
ZW5kKGFzY2lpU3RyaW5nLmRhdGEoKSwgYXNjaWlTdHJpbmcubGVuZ3RoKCkpOworICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICBDUkFTSCgpOworICAgIH0oKTsK
IAogICAgIGZvciAoYXV0byYgcmVzb3VyY2UgOiByZXNvdXJjZXMpIHsKICAgICAgICAgc3RyaW5n
QnVpbGRlci5jbGVhcigpOwpAQCAtMTgzLDggKzE5MywxMCBAQCBSZWY8U2hhcmVkQnVmZmVyPiBN
SFRNTEFyY2hpdmU6OmdlbmVyYXRlTUhUTUxEYXRhKFBhZ2UqIHBhZ2UpCiAgICAgICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kKHJlc291cmNlLnVybCk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kKCJcclxuXHJcbiIpOwogCi0gICAgICAgIGFzY2lpU3RyaW5nID0gc3RyaW5nQnVpbGRlci50
b1N0cmluZygpLnV0ZjgoKTsKLSAgICAgICAgbWh0bWxEYXRhLT5hcHBlbmQoYXNjaWlTdHJpbmcu
ZGF0YSgpLCBhc2NpaVN0cmluZy5sZW5ndGgoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgQ1N0cmluZyBhc2NpaVN0
cmluZyA9IHN0cmluZy0+dXRmOCgpOworICAgICAgICAgICAgbWh0bWxEYXRhLT5hcHBlbmQoYXNj
aWlTdHJpbmcuZGF0YSgpLCBhc2NpaVN0cmluZy5sZW5ndGgoKSk7CisgICAgICAgIH0KIAogICAg
ICAgICAvLyBGSVhNRTogaWRlYWxseSB3ZSB3b3VsZCBlbmNvZGUgdGhlIGNvbnRlbnQgYXMgYSBz
dHJlYW0gd2l0aG91dCBoYXZpbmcgdG8gZmV0Y2ggaXQgYWxsLgogICAgICAgICBjb25zdCBjaGFy
KiBkYXRhID0gcmVzb3VyY2UuZGF0YS0+ZGF0YSgpOwpAQCAtMjEwLDggKzIyMiw3IEBAIFJlZjxT
aGFyZWRCdWZmZXI+IE1IVE1MQXJjaGl2ZTo6Z2VuZXJhdGVNSFRNTERhdGEoUGFnZSogcGFnZSkK
ICAgICAgICAgfQogICAgIH0KIAotICAgIGFzY2lpU3RyaW5nID0gbWFrZVN0cmluZygiLS0iLCBi
b3VuZGFyeSwgIi0tXHJcbiIpLnV0ZjgoKTsKLSAgICBtaHRtbERhdGEtPmFwcGVuZChhc2NpaVN0
cmluZy5kYXRhKCksIGFzY2lpU3RyaW5nLmxlbmd0aCgpKTsKKyAgICBtaHRtbERhdGEtPmFwcGVu
ZChtYWtlU3RyaW5nKCItLSIsIGJvdW5kYXJ5LCAiLS1cclxuIikudXRmOCgpLmRhdGEoKSwgYXNj
aWlTdHJpbmcubGVuZ3RoKCkpOwogCiAgICAgcmV0dXJuIG1odG1sRGF0YTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAK
aW5kZXggYzEzOTA3Ni4uZDgzZTI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
YXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAKQEAgLTM0NywxNCArMzQ3LDE4IEBA
IFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6d2luZG93Um91bmRlZENvcm5l
clJhZGl1c0NTUygpIGNvbnN0CiAKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYXBw
ZW5kQ1NTKGJ1aWxkZXIsIENTU1Byb3BlcnR5Qm9yZGVyUmFkaXVzLCBTdHJpbmc6OmZvcm1hdCgi
JS4wMmZweCIsIHJhZGl1cyksIGJlaGF2aW9yID09IGtNQUNhcHRpb25BcHBlYXJhbmNlQmVoYXZp
b3JVc2VWYWx1ZSk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6
Y29sb3JQcm9wZXJ0eUNTUyhDU1NQcm9wZXJ0eUlEIGlkLCBjb25zdCBDb2xvciYgY29sb3IsIGJv
b2wgaW1wb3J0YW50KSBjb25zdAogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBh
cHBlbmRDU1MoYnVpbGRlciwgaWQsIGNvbG9yLnNlcmlhbGl6ZWQoKSwgaW1wb3J0YW50KTsKLSAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogYm9vbCBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y2FwdGlvblN0cm9rZVdpZHRo
Rm9yRm9udChmbG9hdCBmb250U2l6ZSwgY29uc3QgU3RyaW5nJiBsYW5ndWFnZSwgZmxvYXQmIHN0
cm9rZVdpZHRoLCBib29sJiBpbXBvcnRhbnQpIGNvbnN0CkBAIC00MDYsNyArNDEwLDkgQEAgU3Ry
aW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc1RleHRFZGdlQ1NTKCkg
Y29uc3QKICAgICAgICAgYXBwZW5kQ1NTKGJ1aWxkZXIsIENTU1Byb3BlcnR5U3Ryb2tlTGluZWNh
cCwgZ2V0VmFsdWVOYW1lKENTU1ZhbHVlUm91bmQpLCBpbXBvcnRhbnQpOwogICAgIH0KICAgICAK
LSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc0RlZmF1
bHRGb250Q1NTKCkgY29uc3QKQEAgLTQ0OCw3ICs0NTQsOSBAQCBTdHJpbmcgQ2FwdGlvblVzZXJQ
cmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zRGVmYXVsdEZvbnRDU1MoKSBjb25zdAogICAgICAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiAhaW1wb3J0YW50Iik7CiAgICAgYnVpbGRlci5hcHBl
bmQoJzsnKTsKICAgICAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogZmxvYXQgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6
OmNhcHRpb25Gb250U2l6ZVNjYWxlQW5kSW1wb3J0YW5jZShib29sJiBpbXBvcnRhbnQpIGNvbnN0
CkBAIC01OTUsOSArNjAzLDExIEBAIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFB
Rjo6Y2FwdGlvbnNTdHlsZVNoZWV0T3ZlcnJpZGUoKSBjb25zdAogICAgIH0KICNlbmRpZiAvLyBI
QVZFKE1FRElBX0FDQ0VTU0lCSUxJVFlfRlJBTUVXT1JLKQogCi0gICAgTE9HKE1lZGlhLCAiQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zU3R5bGVTaGVldE92ZXJyaWRlU2V0
dGluZyBzdHlsZSB0bzpcbiVzIiwgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQudG9TdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKLQotICAgIHJldHVybiBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVl
dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGNhcHRpb25zT3ZlcnJpZGVTdHls
ZVNoZWV0LnRvU3RyaW5nKCkpIHsKKyAgICAgICAgTE9HKE1lZGlhLCAiQ2FwdGlvblVzZXJQcmVm
ZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zU3R5bGVTaGVldE92ZXJyaWRlU2V0dGluZyBzdHlsZSB0
bzpcbiVzIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgbGFuZ3VhZ2VJZGVudGlm
aWVyKGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2VDb2RlKQpAQCAtNjY0LDEwICs2NzQsMTMgQEAgc3Rh
dGljIFN0cmluZyB0cmFja0Rpc3BsYXlOYW1lKEF1ZGlvVHJhY2sqIHRyYWNrKQogICAgIGlmIChk
aXNwbGF5TmFtZS5pc0VtcHR5KCkpCiAgICAgICAgIGRpc3BsYXlOYW1lLmFwcGVuZChhdWRpb1Ry
YWNrTm9MYWJlbFRleHQoKSk7CiAKLSAgICBpZiAodHJhY2stPmtpbmQoKSAhPSBBdWRpb1RyYWNr
OjpkZXNjcmlwdGlvbktleXdvcmQoKSkKLSAgICAgICAgcmV0dXJuIGRpc3BsYXlOYW1lLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gZGlzcGxheU5hbWUudG9TdHJpbmcoKSkgewor
ICAgICAgICBpZiAodHJhY2stPmtpbmQoKSAhPSBBdWRpb1RyYWNrOjpkZXNjcmlwdGlvbktleXdv
cmQoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOwogCi0gICAgcmV0dXJuIGF1ZGlvRGVz
Y3JpcHRpb25UcmFja1N1ZmZpeFRleHQoZGlzcGxheU5hbWUudG9TdHJpbmcoKSk7CisgICAgICAg
IHJldHVybiBhdWRpb0Rlc2NyaXB0aW9uVHJhY2tTdWZmaXhUZXh0KCpzdHJpbmcpOworICAgIH0K
KyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6
OmRpc3BsYXlOYW1lRm9yVHJhY2soQXVkaW9UcmFjayogdHJhY2spIGNvbnN0CkBAIC02ODgsMjYg
KzcwMSwyOSBAQCBzdGF0aWMgU3RyaW5nIHRyYWNrRGlzcGxheU5hbWUoVGV4dFRyYWNrKiB0cmFj
aykKICAgICBpZiAoZGlzcGxheU5hbWVCdWlsZGVyLmlzRW1wdHkoKSkKICAgICAgICAgZGlzcGxh
eU5hbWVCdWlsZGVyLmFwcGVuZCh0ZXh0VHJhY2tOb0xhYmVsVGV4dCgpKTsKIAotICAgIFN0cmlu
ZyBkaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1lQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGRpc3BsYXlOYW1lQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIFN0
cmluZyBkaXNwbGF5TmFtZSA9ICpzdHJpbmc7CiAKLSAgICBpZiAodHJhY2stPmlzQ2xvc2VkQ2Fw
dGlvbnMoKSkgewotICAgICAgICBkaXNwbGF5TmFtZSA9IGNsb3NlZENhcHRpb25UcmFja01lbnVJ
dGVtVGV4dChkaXNwbGF5TmFtZSk7Ci0gICAgICAgIGlmICh0cmFjay0+aXNFYXN5VG9SZWFkKCkp
Ci0gICAgICAgICAgICBkaXNwbGF5TmFtZSA9IGVhc3lSZWFkZXJUcmFja01lbnVJdGVtVGV4dChk
aXNwbGF5TmFtZSk7CisgICAgICAgIGlmICh0cmFjay0+aXNDbG9zZWRDYXB0aW9ucygpKSB7Cisg
ICAgICAgICAgICBkaXNwbGF5TmFtZSA9IGNsb3NlZENhcHRpb25UcmFja01lbnVJdGVtVGV4dChk
aXNwbGF5TmFtZSk7CisgICAgICAgICAgICBpZiAodHJhY2stPmlzRWFzeVRvUmVhZCgpKQorICAg
ICAgICAgICAgICAgIGRpc3BsYXlOYW1lID0gZWFzeVJlYWRlclRyYWNrTWVudUl0ZW1UZXh0KGRp
c3BsYXlOYW1lKTsKIAotICAgICAgICByZXR1cm4gZGlzcGxheU5hbWU7Ci0gICAgfQorICAgICAg
ICAgICAgcmV0dXJuIGRpc3BsYXlOYW1lOworICAgICAgICB9CiAKLSAgICBpZiAodHJhY2stPmlz
U0RIKCkpCi0gICAgICAgIGRpc3BsYXlOYW1lID0gc2RoVHJhY2tNZW51SXRlbVRleHQoZGlzcGxh
eU5hbWUpOworICAgICAgICBpZiAodHJhY2stPmlzU0RIKCkpCisgICAgICAgICAgICBkaXNwbGF5
TmFtZSA9IHNkaFRyYWNrTWVudUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsKIAotICAgIGlmICh0cmFj
ay0+Y29udGFpbnNPbmx5Rm9yY2VkU3VidGl0bGVzKCkpCi0gICAgICAgIGRpc3BsYXlOYW1lID0g
Zm9yY2VkVHJhY2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOworICAgICAgICBpZiAodHJhY2st
PmNvbnRhaW5zT25seUZvcmNlZFN1YnRpdGxlcygpKQorICAgICAgICAgICAgZGlzcGxheU5hbWUg
PSBmb3JjZWRUcmFja01lbnVJdGVtVGV4dChkaXNwbGF5TmFtZSk7CiAKLSAgICBpZiAodHJhY2st
PmlzRWFzeVRvUmVhZCgpKQotICAgICAgICBkaXNwbGF5TmFtZSA9IGVhc3lSZWFkZXJUcmFja01l
bnVJdGVtVGV4dChkaXNwbGF5TmFtZSk7CisgICAgICAgIGlmICh0cmFjay0+aXNFYXN5VG9SZWFk
KCkpCisgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IGVhc3lSZWFkZXJUcmFja01lbnVJdGVtVGV4
dChkaXNwbGF5TmFtZSk7CiAKLSAgICByZXR1cm4gZGlzcGxheU5hbWU7CisgICAgICAgIHJldHVy
biBkaXNwbGF5TmFtZTsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIENhcHRpb25V
c2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpkaXNwbGF5TmFtZUZvclRyYWNrKFRleHRUcmFjayogdHJh
Y2spIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IGE4NDI2NWEuLjNlNDI0NmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWUuY3BwCkBAIC0zNjksNyArMzY5LDkgQEAgc3RhdGljIEpTQzo6WWFycjo6UmVn
dWxhckV4cHJlc3Npb24gY3JlYXRlUmVnRXhwRm9yTGFiZWxzKGNvbnN0IFZlY3RvcjxTdHJpbmc+
JgogICAgICAgICAgICAgcGF0dGVybi5hcHBlbmRMaXRlcmFsKCJcXGIiKTsKICAgICB9CiAgICAg
cGF0dGVybi5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4gSlNDOjpZYXJyOjpSZWd1bGFyRXhwcmVz
c2lvbihwYXR0ZXJuLnRvU3RyaW5nKCksIEpTQzo6WWFycjo6VGV4dENhc2VJbnNlbnNpdGl2ZSk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcGF0dGVybi50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gSlNDOjpZYXJyOjpSZWd1bGFyRXhwcmVzc2lvbigqc3RyaW5nLCBKU0M6OllhcnI6OlRleHRD
YXNlSW5zZW5zaXRpdmUpOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBGcmFtZTo6c2VhcmNo
Rm9yTGFiZWxzQWJvdmVDZWxsKGNvbnN0IEpTQzo6WWFycjo6UmVndWxhckV4cHJlc3Npb24mIHJl
Z0V4cCwgSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIGNlbGwsIHNpemVfdCogcmVzdWx0RGlzdGFuY2VG
cm9tU3RhcnRPZkNlbGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJl
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKaW5kZXggMjZjY2M3YS4u
NGRjZWYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcApAQCAtMTUwLDcgKzE1MCw5IEBA
IEF0b21pY1N0cmluZyBGcmFtZVRyZWU6OnVuaXF1ZUNoaWxkTmFtZShjb25zdCBBdG9taWNTdHJp
bmcmIHJlcXVlc3RlZE5hbWUpIGNvbnN0CiAgICAgbmFtZS5hcHBlbmROdW1iZXIoY2hpbGRDb3Vu
dCgpKTsKICAgICBuYW1lLmFwcGVuZExpdGVyYWwoIi0tPi0tPiIpOwogCi0gICAgcmV0dXJuIG5h
bWUudG9BdG9taWNTdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBuYW1lLnRvQXRvbWlj
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0
YXRpYyBib29sIGluU2NvcGUoRnJhbWUmIGZyYW1lLCBUcmVlU2NvcGUmIHNjb3BlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IGZmM2I4YWEuLjJhMzYwZjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKQEAgLTE0NTIsNyArMTQ1MiwxMCBAQCB2b2lkIEZyYW1lVmlldzo6bG9n
TW9ja1Njcm9sbEFuaW1hdG9yTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0CiAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiTWFpbiIpOwogICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiRnJhbWVWaWV3OiAiKTsKICAgICBidWlsZGVyLmFwcGVuZChtZXNzYWdlKTsKLSAg
ICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3Nh
Z2VMZXZlbDo6RGVidWcsIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6RGVidWcsICpzdHJpbmcpOwor
ICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6OnNldENhbm5v
dEJsaXRUb1dpbmRvdygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJp
YWxpemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCmluZGV4
IDVmNjQyMjQuLjlhYTlmMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNl
cmlhbGl6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3Bw
CkBAIC0yNjMsOCArMjYzLDExIEBAIHZvaWQgUGFnZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZUNTU1N0
eWxlU2hlZXQoQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCwgY29uc3QgVVJMCiAgICAgICAgIC8v
IEZJWE1FOiBXZSBzaG91bGQgY2hlY2sgd2hldGhlciBhIGNoYXJzZXQgaGFzIGJlZW4gc3BlY2lm
aWVkIGFuZCBpZiBub25lIHdhcyBmb3VuZCBhZGQgb25lLgogICAgICAgICBUZXh0RW5jb2Rpbmcg
dGV4dEVuY29kaW5nKHN0eWxlU2hlZXQtPmNvbnRlbnRzKCkuY2hhcnNldCgpKTsKICAgICAgICAg
QVNTRVJUKHRleHRFbmNvZGluZy5pc1ZhbGlkKCkpOwotICAgICAgICBtX3Jlc291cmNlcy5hcHBl
bmQoeyB1cmwsIEFTQ0lJTGl0ZXJhbCB7ICJ0ZXh0L2NzcyIgfSwgU2hhcmVkQnVmZmVyOjpjcmVh
dGUodGV4dEVuY29kaW5nLmVuY29kZShjc3NUZXh0LnRvU3RyaW5nKCksIFVuZW5jb2RhYmxlSGFu
ZGxpbmc6OkVudGl0aWVzKSkgfSk7Ci0gICAgICAgIG1fcmVzb3VyY2VVUkxzLmFkZCh1cmwpOwor
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBjc3NUZXh0LnRvU3RyaW5nKCkpIHsKKyAgICAgICAg
ICAgIG1fcmVzb3VyY2VzLmFwcGVuZCh7IHVybCwgQVNDSUlMaXRlcmFsIHsgInRleHQvY3NzIiB9
LCBTaGFyZWRCdWZmZXI6OmNyZWF0ZSh0ZXh0RW5jb2RpbmcuZW5jb2RlKCpzdHJpbmcsIFVuZW5j
b2RhYmxlSGFuZGxpbmc6OkVudGl0aWVzKSkgfSk7CisgICAgICAgICAgICBtX3Jlc291cmNlVVJM
cy5hZGQodXJsKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmdD
bGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQu
Y3BwCmluZGV4IDlkNDRkOTQuLjNiNDRmZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5jcHAKQEAgLTUwLDcgKzUwLDkgQEAgU3RyaW5nIFBl
cmZvcm1hbmNlTG9nZ2luZ0NsaWVudDo6c3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zQXNTdHJp
bmcoU3luY2hyb25vdXMKICAgICAgICAgcmVhc29ucy5hcHBlbmRMaXRlcmFsKCJpbWFnZSBkb2N1
bWVudCwiKTsKIAogICAgIC8vIFN0cmlwIHRoZSB0cmFpbGluZyBjb21tYS4KLSAgICByZXR1cm4g
cmVhc29ucy50b1N0cmluZygpLmxlZnQocmVhc29ucy5sZW5ndGgoKSAtIDEpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IHJlYXNvbnMudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0cmluZy0+
bGVmdChyZWFzb25zLmxlbmd0aCgpIC0gMSk7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9y
aWdpbkRhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuY3Bw
CmluZGV4IDJhYWM4ZWUuLmUzYWM4ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2VjdXJpdHlPcmlnaW5EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5
T3JpZ2luRGF0YS5jcHAKQEAgLTg0LDcgKzg0LDkgQEAgU3RyaW5nIFNlY3VyaXR5T3JpZ2luRGF0
YTo6ZGF0YWJhc2VJZGVudGlmaWVyKCkgY29uc3QKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChz
ZXBhcmF0b3JDaGFyYWN0ZXIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKHBvcnQu
dmFsdWVfb3IoMCkpOwogICAgIAotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGQ6Om9wdGlvbmFsPFNlY3Vy
aXR5T3JpZ2luRGF0YT4gU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRGF0YWJhc2VJZGVudGlmaWVy
KGNvbnN0IFN0cmluZyYgZGF0YWJhc2VJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdFRyaWdnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9XaGVlbEV2ZW50VGVzdFRyaWdnZXIuY3BwCmluZGV4IGVkNTQ5Y2YuLmZjNTAyNTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0VHJpZ2dlci5jcHAKQEAgLTEwMCw3
ICsxMDAsMTAgQEAgc3RhdGljIHZvaWQgZHVtcFN0YXRlKFdURjo6SGFzaE1hcDxXaGVlbEV2ZW50
VGVzdFRyaWdnZXI6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmkKICAgICAgICAgICAgICAgICByZWFz
b25zLmFwcGVuZCgiLCAiKTsKICAgICAgICAgICAgIHJlYXNvbnMuYXBwZW5kKFN0cmluZzo6bnVt
YmVyKHJlYXNvbikpOwogICAgICAgICB9Ci0gICAgICAgIExPRyhXaGVlbEV2ZW50VGVzdFRyaWdn
ZXJzLCAiICAgICBSZWFzb25zOiAlcyIsIHJlYXNvbnMudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgp
KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVhc29ucy50b1N0cmluZygpKQorICAgICAg
ICAgICAgTE9HKFdoZWVsRXZlbnRUZXN0VHJpZ2dlcnMsICIgICAgIFJlYXNvbnM6ICVzIiwgc3Ry
aW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsK
ICAgICB9CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0Nv
bnRlbnRTZWN1cml0eVBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50
U2VjdXJpdHlQb2xpY3kuY3BwCmluZGV4IGZjMmZkMTIuLjNjOTE4NzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcApAQCAtODUsNyAr
ODUsOSBAQCBzdGF0aWMgU3RyaW5nIGNvbnNvbGVNZXNzYWdlRm9yVmlvbGF0aW9uKGNvbnN0IGNo
YXIqIGVmZmVjdGl2ZVZpb2xhdGVkRGlyZWN0aXZlLAogICAgICAgICByZXN1bHQuYXBwZW5kKGVm
ZmVjdGl2ZVZpb2xhdGVkRGlyZWN0aXZlKTsKICAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwo
IiBkaXJlY3RpdmUgb2YgdGhlIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5LiIpOwogICAgIH0KLSAg
ICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IENvbnRlbnRTZWN1cml0eVBvbGljeTo6Q29udGVudFNlY3VyaXR5UG9saWN5KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCkBAIC0xMzcsNyArMTM5LDEwIEBA
IGJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd1J1bm5pbmdPckRpc3BsYXlpbmdJbnNl
Y3VyZUNvbnRlbnQoY29uc3QgVVJMJiB1CiAgICAgICAgIGNvbnNvbGVNZXNzYWdlLmFwcGVuZCh1
cmwuc3RyaW5nQ2VudGVyRWxsaXBzaXplZFRvTGVuZ3RoKCkpOwogICAgICAgICBjb25zb2xlTWVz
c2FnZS5hcHBlbmRMaXRlcmFsKCIgYmVjYXVzZSAiKTsKICAgICAgICAgY29uc29sZU1lc3NhZ2Uu
YXBwZW5kKCInYmxvY2stYWxsLW1peGVkLWNvbnRlbnQnIGFwcGVhcnMgaW4gdGhlIENvbnRlbnQg
U2VjdXJpdHkgUG9saWN5LiIpOwotICAgICAgICByZXBvcnRWaW9sYXRpb24oQ29udGVudFNlY3Vy
aXR5UG9saWN5RGlyZWN0aXZlTmFtZXM6OmJsb2NrQWxsTWl4ZWRDb250ZW50LCBDb250ZW50U2Vj
dXJpdHlQb2xpY3lEaXJlY3RpdmVOYW1lczo6YmxvY2tBbGxNaXhlZENvbnRlbnQsICpwb2xpY3ks
IHVybCwgY29uc29sZU1lc3NhZ2UudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGNvbnNvbGVNZXNzYWdlLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXBvcnRWaW9sYXRp
b24oQ29udGVudFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXM6OmJsb2NrQWxsTWl4ZWRDb250
ZW50LCBDb250ZW50U2VjdXJpdHlQb2xpY3lEaXJlY3RpdmVOYW1lczo6YmxvY2tBbGxNaXhlZENv
bnRlbnQsICpwb2xpY3ksIHVybCwgKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IENSQVNIKCk7CiAKICAgICAgICAgaWYgKCFpc1JlcG9ydE9ubHkpCiAgICAgICAgICAgICBhbGxv
dyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXhp
c1Njcm9sbFNuYXBPZmZzZXRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0F4
aXNTY3JvbGxTbmFwT2Zmc2V0cy5jcHAKaW5kZXggMDIwNzUzOC4uZDhkM2YyOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXhpc1Njcm9sbFNuYXBPZmZzZXRzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9BeGlzU2Nyb2xsU25hcE9mZnNl
dHMuY3BwCkBAIC04MSw3ICs4MSw5IEBAIHN0YXRpYyBTdHJpbmcgc25hcE9mZnNldHNUb1N0cmlu
Zyhjb25zdCBWZWN0b3I8TGF5b3V0VW5pdD4mIHNuYXBPZmZzZXRzKQogICAgICAgICBzLmFwcGVu
ZChTdHJpbmc6OmZvcm1hdCgiJS4xZiAiLCBvZmZzZXQudG9GbG9hdCgpKSk7CiAKICAgICBzLmFw
cGVuZCgiXSIpOwotICAgIHJldHVybiBzLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gcy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiBzdGF0aWMgU3RyaW5nIHNuYXBPZmZzZXRSYW5nZXNUb1N0cmluZyhjb25zdCBWZWN0b3I8
U2Nyb2xsT2Zmc2V0UmFuZ2U8TGF5b3V0VW5pdD4+JiByYW5nZXMpCkBAIC05MSw3ICs5Myw5IEBA
IHN0YXRpYyBTdHJpbmcgc25hcE9mZnNldFJhbmdlc1RvU3RyaW5nKGNvbnN0IFZlY3RvcjxTY3Jv
bGxPZmZzZXRSYW5nZTxMYXlvdXRVbml0CiAgICAgZm9yIChhdXRvIHJhbmdlIDogcmFuZ2VzKQog
ICAgICAgICBzLmFwcGVuZChTdHJpbmc6OmZvcm1hdCgiKCUuMWYsICUuMWYpICIsIHJhbmdlLnN0
YXJ0LnRvRmxvYXQoKSwgcmFuZ2UuZW5kLnRvRmxvYXQoKSkpOwogICAgIHMuYXBwZW5kKCJdIik7
Ci0gICAgcmV0dXJuIHMudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzLnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRp
YyBTdHJpbmcgc25hcFBvcnRPckFyZWFUb1N0cmluZyhjb25zdCBMYXlvdXRSZWN0JiByZWN0KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwCmluZGV4IGY1MDIyMWEuLjNjMWM2ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAgLTM4OSw3
ICszODksOSBAQCBTdHJpbmcgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnN5bmNocm9ub3VzU2Nyb2xs
aW5nUmVhc29uc0FzVGV4dChTeW5jaHJvbm91c1Njcm9sbAogCiAgICAgaWYgKHN0cmluZ0J1aWxk
ZXIubGVuZ3RoKCkpCiAgICAgICAgIHN0cmluZ0J1aWxkZXIucmVzaXplKHN0cmluZ0J1aWxkZXIu
bGVuZ3RoKCkgLSAyKTsKLSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIFNjcm9sbGluZ0Nvb3JkaW5h
dG9yOjpzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNBc1RleHQoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVjaW1hbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9EZWNpbWFsLmNwcAppbmRleCAzZDUyNWNmLi4xYTE5MmE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EZWNpbWFsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9EZWNpbWFsLmNwcApAQCAtOTk0LDcgKzk5NCw5IEBAIFN0cmluZyBEZWNpbWFsOjp0
b1N0cmluZygpIGNvbnN0CiAgICAgaWYgKG9yaWdpbmFsRXhwb25lbnQgPD0gMCAmJiBhZGp1c3Rl
ZEV4cG9uZW50ID49IC02KSB7CiAgICAgICAgIGlmICghb3JpZ2luYWxFeHBvbmVudCkgewogICAg
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoZGlnaXRzKTsKLSAgICAgICAgICAgIHJldHVybiBidWls
ZGVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgICAgICBD
UkFTSCgpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKGFkanVzdGVkRXhwb25lbnQgPj0gMCkg
ewpAQCAtMTAwMyw3ICsxMDA1LDkgQEAgU3RyaW5nIERlY2ltYWw6OnRvU3RyaW5nKCkgY29uc3QK
ICAgICAgICAgICAgICAgICBpZiAoaSA9PSBhZGp1c3RlZEV4cG9uZW50KQogICAgICAgICAgICAg
ICAgICAgICBidWlsZGVyLmFwcGVuZCgnLicpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAg
cmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KIAogICAgICAgICBidWlsZGVyLmFwcGVuZExp
dGVyYWwoIjAuIik7CkBAIC0xMDI3LDcgKzEwMzEsOSBAQCBTdHJpbmcgRGVjaW1hbDo6dG9TdHJp
bmcoKSBjb25zdAogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoYWRqdXN0ZWRFeHBv
bmVudCk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIERlY2ltYWwgRGVjaW1hbDo6emVybyhTaWdu
IHNpZ24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwCmluZGV4IDJmZGIyNjAu
LmU2N2Q2NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwCkBAIC0xMzAs
NyArMTMwLDkgQEAgU3RyaW5nIGVuY29kZUZvckZpbGVOYW1lKGNvbnN0IFN0cmluZyYgaW5wdXRT
dHJpbmcpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGNoYXJhY3Rlcik7CiAgICAgfQogCi0g
ICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3Vs
dC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiBTdHJpbmcgZGVjb2RlRnJvbUZpbGVuYW1lKGNvbnN0IFN0cmluZyYgaW5wdXRTdHJpbmcpCkBA
IC0xODEsNyArMTgzLDkgQEAgU3RyaW5nIGRlY29kZUZyb21GaWxlbmFtZShjb25zdCBTdHJpbmcm
IGlucHV0U3RyaW5nKQogICAgICAgICBpICs9IDU7CiAgICAgfQogCi0gICAgcmV0dXJuIHJlc3Vs
dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgbGFzdENv
bXBvbmVudE9mUGF0aElnbm9yaW5nVHJhaWxpbmdTbGFzaChjb25zdCBTdHJpbmcmIHBhdGgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RJbnRlcnZhbC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUE9ESW50ZXJ2YWwuaAppbmRleCAwNDhkYTk4Li42NDYzNjJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RJbnRlcnZhbC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPREludGVydmFsLmgKQEAgLTE0NSw3ICsxNDUsOSBAQCBw
dWJsaWM6CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCBtYXhIaWdoPSIpOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZChWYWx1ZVRvU3RyaW5nPFQ+OjpzdHJpbmcobWF4SGlnaCgpKSk7
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCddJyk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRv
U3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RSZWRCbGFja1Ry
ZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPRFJlZEJsYWNrVHJlZS5oCmluZGV4IDEz
MWYzMWEuLjQ5NjBlZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPRFJl
ZEJsYWNrVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPRFJlZEJsYWNrVHJl
ZS5oCkBAIC03NDQsNyArNzQ0LDEwIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBidWlsZGVyLmFw
cGVuZChWYWx1ZVRvU3RyaW5nPFQ+OjpzdHJpbmcobm9kZS0+ZGF0YSgpKSk7CiAgICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZCgobm9kZS0+Y29sb3IoKSA9PSBCbGFjaykgPyAiIChibGFjaykiIDog
IiAocmVkKSIpOwogICAgICAgICB9Ci0gICAgICAgIExPR19FUlJPUigiJXMiLCBidWlsZGVyLnRv
U3RyaW5nKCkuYXNjaWkoKS5kYXRhKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBMT0dfRVJST1IoIiVzIiwgc3RyaW5nLT5hc2Np
aSgpLmRhdGEoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAg
IGlmIChub2RlKSB7CiAgICAgICAgICAgICBkdW1wRnJvbU5vZGUobm9kZS0+bGVmdCgpLCBpbmRl
bnRhdGlvbiArIDIpOwogICAgICAgICAgICAgZHVtcEZyb21Ob2RlKG5vZGUtPnJpZ2h0KCksIGlu
ZGVudGF0aW9uICsgMik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcAppbmRleCAxNTllN2ZhLi4zZGI4
MmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAKQEAgLTQ1NSw4ICs0NTUsMTEgQEAgdm9pZCBV
Ukw6OnNldEhvc3QoY29uc3QgU3RyaW5nJiBzKQogICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZ1Zp
ZXcoZW5jb2RlZEhvc3ROYW1lLmRhdGEoKSwgZW5jb2RlZEhvc3ROYW1lLnNpemUoKSkpOwogICAg
IGJ1aWxkZXIuYXBwZW5kKG1fc3RyaW5nLnN1YnN0cmluZyhtX2hvc3RFbmQpKTsKIAotICAgIFVS
TFBhcnNlciBwYXJzZXIoYnVpbGRlci50b1N0cmluZygpKTsKLSAgICAqdGhpcyA9IHBhcnNlci5y
ZXN1bHQoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAg
ICAgICAgVVJMUGFyc2VyIHBhcnNlcigqc3RyaW5nKTsKKyAgICAgICAgKnRoaXMgPSBwYXJzZXIu
cmVzdWx0KCk7CisgICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgVVJMOjpy
ZW1vdmVQb3J0KCkKQEAgLTUxNyw4ICs1MjAsMTEgQEAgdm9pZCBVUkw6OnNldEhvc3RBbmRQb3J0
KGNvbnN0IFN0cmluZyYgaG9zdEFuZFBvcnQpCiAgICAgfQogICAgIGJ1aWxkZXIuYXBwZW5kKG1f
c3RyaW5nLnN1YnN0cmluZyhtX3BvcnRFbmQpKTsKIAotICAgIFVSTFBhcnNlciBwYXJzZXIoYnVp
bGRlci50b1N0cmluZygpKTsKLSAgICAqdGhpcyA9IHBhcnNlci5yZXN1bHQoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgVVJMUGFyc2VyIHBh
cnNlcigqc3RyaW5nKTsKKyAgICAgICAgKnRoaXMgPSBwYXJzZXIucmVzdWx0KCk7CisgICAgfSBl
bHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgcGVyY2VudEVuY29kZUNo
YXJhY3RlcnMoY29uc3QgU3RyaW5nJiBpbnB1dCwgYm9vbCgqc2hvdWxkRW5jb2RlKShVQ2hhcikp
CkBAIC01MzcsNyArNTQzLDkgQEAgc3RhdGljIFN0cmluZyBwZXJjZW50RW5jb2RlQ2hhcmFjdGVy
cyhjb25zdCBTdHJpbmcmIGlucHV0LCBib29sKCpzaG91bGRFbmNvZGUpKFUKICAgICAgICAgICAg
IH0gZWxzZQogICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGMpOwogICAgICAgICB9Ci0g
ICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
ICAgICBDUkFTSCgpOwogICAgIH07CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlucHV0
Lmxlbmd0aCgpOyArK2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Fu
aW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmlt
YXRpb24vVGltaW5nRnVuY3Rpb24uY3BwCmluZGV4IDhjOTcyZDYuLmVkYmZlZDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmNw
cApAQCAtMTI5LDcgKzEyOSwxMCBAQCBFeGNlcHRpb25PcjxSZWZQdHI8VGltaW5nRnVuY3Rpb24+
PiBUaW1pbmdGdW5jdGlvbjo6Y3JlYXRlRnJvbUNTU1RleHQoY29uc3QgU3RyaQogICAgIGNzc1N0
cmluZy5hcHBlbmRMaXRlcmFsKCI6ICIpOwogICAgIGNzc1N0cmluZy5hcHBlbmQoY3NzVGV4dCk7
CiAgICAgYXV0byBzdHlsZVByb3BlcnRpZXMgPSBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOjpjcmVh
dGUoKTsKLSAgICBzdHlsZVByb3BlcnRpZXMtPnBhcnNlRGVjbGFyYXRpb24oY3NzU3RyaW5nLnRv
U3RyaW5nKCksIENTU1BhcnNlckNvbnRleHQoSFRNTFN0YW5kYXJkTW9kZSkpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGNzc1N0cmluZy50b1N0cmluZygpKQorICAgICAgICBzdHlsZVByb3BlcnRp
ZXMtPnBhcnNlRGVjbGFyYXRpb24oKnN0cmluZywgQ1NTUGFyc2VyQ29udGV4dChIVE1MU3RhbmRh
cmRNb2RlKSk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgaWYgKGF1dG8gY3Nz
VmFsdWUgPSBzdHlsZVByb3BlcnRpZXMtPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlB
bmltYXRpb25UaW1pbmdGdW5jdGlvbikpIHsKICAgICAgICAgaWYgKGF1dG8gdGltaW5nRnVuY3Rp
b24gPSBjcmVhdGVGcm9tQ1NTVmFsdWUoKmNzc1ZhbHVlLmdldCgpKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAKaW5kZXggZjk0MDgxNS4uMmIz
MGIyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVt
R2xpYi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xp
Yi5jcHAKQEAgLTIxOCw3ICsyMTgsOSBAQCBTdHJpbmcgcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50
cyhTdHJpbmdWaWV3IHBhdGgsIGNvbnN0IFZlY3RvcjxTdHJpbmdWaWV3PiYgY29tcAogICAgICAg
ICBidWlsZGVyLmFwcGVuZChHX0RJUl9TRVBBUkFUT1JfUyk7CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKGNvbXBvbmVudCk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIG1ha2VBbGxEaXJlY3Rvcmllcyhjb25z
dCBTdHJpbmcmIHBhdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGli
L1VzZXJBZ2VudEdMaWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9Vc2VyQWdl
bnRHTGliLmNwcAppbmRleCAxNjIxYTg4Li4zODA3N2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9nbGliL1VzZXJBZ2VudEdMaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dsaWIvVXNlckFnZW50R0xpYi5jcHAKQEAgLTEwNiw3ICsxMDYsOSBAQCBzdGF0
aWMgU3RyaW5nIGJ1aWxkVXNlckFnZW50U3RyaW5nKGNvbnN0IFVzZXJBZ2VudFF1aXJrcyYgcXVp
cmtzKQogICAgIHVhU3RyaW5nLmFwcGVuZExpdGVyYWwoIlZlcnNpb24vMTEuMCBTYWZhcmkvIik7
CiAgICAgdWFTdHJpbmcuYXBwZW5kKHZlcnNpb25Gb3JVQVN0cmluZygpKTsKIAotICAgIHJldHVy
biB1YVN0cmluZy50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHVhU3RyaW5nLnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0
YXRpYyBjb25zdCBTdHJpbmcgc3RhbmRhcmRVc2VyQWdlbnRTdGF0aWMoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCmluZGV4IDVkZDE1MGYuLmVlMWJlNzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKQEAgLTM0OCw3ICsz
NDgsOSBAQCBTdHJpbmcgQ29sb3I6OnNlcmlhbGl6ZWQoKSBjb25zdAogICAgICAgICBhcHBlbmRC
eXRlQXNIZXgocmVkKCksIGJ1aWxkZXIsIExvd2VyY2FzZSk7CiAgICAgICAgIGFwcGVuZEJ5dGVB
c0hleChncmVlbigpLCBidWlsZGVyLCBMb3dlcmNhc2UpOwogICAgICAgICBhcHBlbmRCeXRlQXNI
ZXgoYmx1ZSgpLCBidWlsZGVyLCBMb3dlcmNhc2UpOwotICAgICAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAK
ICAgICByZXR1cm4gY3NzVGV4dCgpOwpAQCAtMzg0LDcgKzM4Niw5IEBAIFN0cmluZyBDb2xvcjo6
Y3NzVGV4dCgpIGNvbnN0CiAgICAgfQogICAgICAgICAKICAgICBidWlsZGVyLmFwcGVuZCgnKScp
OwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
YnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogCiBTdHJpbmcgQ29sb3I6Om5hbWVGb3JSZW5kZXJUcmVlQXNUZXh0KCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5jcHAK
aW5kZXggNTBlM2M1Yy4uNDQ4ZGZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5jcHAKQEAgLTcyLDcgKzcyLDkgQEAgU3RyaW5nIEV4
dGVuZGVkQ29sb3I6OmNzc1RleHQoKSBjb25zdAogICAgIH0KICAgICBidWlsZGVyLmFwcGVuZCgn
KScpOwogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYXNjYWRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRDYXNjYWRlLmNwcAppbmRleCA4NDc4NjFmLi41NTQ4MjkzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwCkBAIC01NDksNyArNTQ5LDkg
QEAgc3RhdGljIGlubGluZSBTdHJpbmcgbm9ybWFsaXplU3BhY2VzSW50ZXJuYWwoY29uc3QgQ2hh
cmFjdGVyVHlwZSogY2hhcmFjdGVycywgdW4KICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
bGVuZ3RoOyArK2kpCiAgICAgICAgIG5vcm1hbGl6ZWQuYXBwZW5kKEZvbnRDYXNjYWRlOjpub3Jt
YWxpemVTcGFjZXMoY2hhcmFjdGVyc1tpXSkpOwogCi0gICAgcmV0dXJuIG5vcm1hbGl6ZWQudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBub3JtYWxpemVkLnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBGb250Q2Fz
Y2FkZTo6bm9ybWFsaXplU3BhY2VzKGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBs
ZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
VGFnZ2VkU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dFRhZ2dlZFNldHRpbmdzLmNwcAppbmRleCA2MWIyZWJlLi41YzQ2NzI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250VGFnZ2VkU2V0dGluZ3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRUYWdnZWRTZXR0aW5ncy5j
cHAKQEAgLTcyLDcgKzcyLDEwIEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYg
dHMsIGNvbnN0IEZvbnRWYXJpYXRpb25TZXR0aW5ncyYgaXRlbSkKICAgICAgICAgcy5hcHBlbmQo
dmFyaWF0aW9uLnRhZygpWzFdKTsKICAgICAgICAgcy5hcHBlbmQodmFyaWF0aW9uLnRhZygpWzJd
KTsKICAgICAgICAgcy5hcHBlbmQodmFyaWF0aW9uLnRhZygpWzNdKTsKLSAgICAgICAgdHMuZHVt
cFByb3BlcnR5KHMudG9TdHJpbmcoKSwgaXRlbS5hdChpKS52YWx1ZSgpKTsKKyAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gcy50b1N0cmluZygpKQorICAgICAgICAgICAgdHMuZHVtcFByb3BlcnR5
KCpzdHJpbmcsIGl0ZW0uYXQoaSkudmFsdWUoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IENSQVNIKCk7CiAgICAgfQogICAgIHJldHVybiB0czsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggNjk4MTgwZS4uMTVj
ZTg5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllci5jcHAKQEAgLTQ0MSw3ICs0NDEsOSBAQCBTdHJpbmcgR3JhcGhpY3NMYXllcjo6YW5p
bWF0aW9uTmFtZUZvclRyYW5zaXRpb24oQW5pbWF0ZWRQcm9wZXJ0eUlEIHByb3BlcnR5KQogICAg
IGlkLmFwcGVuZExpdGVyYWwoIi18dHJhbnNpdGlvbiIpOwogICAgIGlkLmFwcGVuZE51bWJlcihz
dGF0aWNfY2FzdDxpbnQ+KHByb3BlcnR5KSk7CiAgICAgaWQuYXBwZW5kKCctJyk7Ci0gICAgcmV0
dXJuIGlkLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gaWQudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBHcmFwaGlj
c0xheWVyOjpzdXNwZW5kQW5pbWF0aW9ucyhNb25vdG9uaWNUaW1lKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFj
a1ByaXZhdGVBVkYuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCmluZGV4IDZmMmIzODcuLjk1M2M0
OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5j
cHAKQEAgLTMwMCw4ICszMDAsMTIgQEAgdm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpw
cm9jZXNzQ3VlQXR0cmlidXRlcyhDRkF0dHJpYnV0ZWRTdHJpbmdSZWYgYXR0cmkKICAgICAgICAg
Y29udGVudC5hcHBlbmQodGFnRW5kKTsKICAgICB9CiAKLSAgICBpZiAoY29udGVudC5sZW5ndGgo
KSkKLSAgICAgICAgY3VlRGF0YS5zZXRDb250ZW50KGNvbnRlbnQudG9TdHJpbmcoKSk7CisgICAg
aWYgKGNvbnRlbnQubGVuZ3RoKCkpIHsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gY29udGVu
dC50b1N0cmluZygpKQorICAgICAgICAgICAgY3VlRGF0YS5zZXRDb250ZW50KCpzdHJpbmcpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOworICAgIH0KIH0KIAogdm9pZCBJbmJh
bmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQ3VlKENGQXJyYXlSZWYgYXR0cmlidXRlZFN0
cmluZ3MsIENGQXJyYXlSZWYgbmF0aXZlU2FtcGxlcywgY29uc3QgTWVkaWFUaW1lJiB0aW1lKQpA
QCAtNTMwLDcgKzUzNCwxMCBAQCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nl
c3NOYXRpdmVTYW1wbGVzKENGQXJyYXlSZWYgbmF0aXZlU2FtcGxlcywgYwogICAgICAgICAgICAg
aGVhZGVyLmFwcGVuZCgiXG5cbiIpOwogCiAgICAgICAgICAgICBERUJVR19MT0coTE9HSURFTlRJ
RklFUiwgIlZUVCBoZWFkZXIgIiwgJmhlYWRlcik7Ci0gICAgICAgICAgICBjbGllbnQoKS0+cGFy
c2VXZWJWVFRGaWxlSGVhZGVyKGhlYWRlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IGhlYWRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIGNsaWVudCgp
LT5wYXJzZVdlYlZUVEZpbGVIZWFkZXIoV1RGTW92ZSgqc3RyaW5nKSk7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIG1faGF2ZVJlcG9ydGVk
VlRUSGVhZGVyID0gdHJ1ZTsKICAgICAgICAgfSB3aGlsZSAoMCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcAppbmRl
eCBlYzNhZTRmLi5hMzdkODQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwCkBAIC03MzUsNyArNzM1LDEwIEBAIFJl
ZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IFRpbGVDb250cm9sbGVyOjpjcmVhdGVUaWxlTGF5ZXIoY29u
c3QgSW50UmVjdCYgdGlsZVJlY3QsCiAgICAgbmFtZUJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRpbGVS
ZWN0LmxvY2F0aW9uKCkueCgpKTsKICAgICBuYW1lQnVpbGRlci5hcHBlbmQoJywnKTsKICAgICBu
YW1lQnVpbGRlci5hcHBlbmROdW1iZXIodGlsZVJlY3QubG9jYXRpb24oKS55KCkpOwotICAgIGxh
eWVyLT5zZXROYW1lKG5hbWVCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IG5hbWVCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGxheWVyLT5zZXROYW1lKCpzdHJp
bmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIGZsb2F0IHRlbXBvcmFyeVNj
YWxlRmFjdG9yID0gb3duaW5nR3JhcGhpY3NMYXllcigpLT5wbGF0Zm9ybUNBTGF5ZXJDb250ZW50
c1NjYWxlTXVsdGlwbGllckZvck5ld1RpbGVzKG1fdGlsZUNhY2hlTGF5ZXIpOwogICAgIG1faGFz
VGlsZXNXaXRoVGVtcG9yYXJ5U2NhbGVGYWN0b3IgfD0gdGVtcG9yYXJ5U2NhbGVGYWN0b3IgIT0g
MTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVH
cmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNw
cAppbmRleCA1OTE5Zjk3Li5lODY2NTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9UaWxlR3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvVGlsZUdyaWQuY3BwCkBAIC01OSw3ICs1OSw5IEBAIHN0YXRpYyBTdHJp
bmcgdmFsaWRhdGlvblBvbGljeUFzU3RyaW5nKFRpbGVHcmlkOjpUaWxlVmFsaWRhdGlvblBvbGlj
eSB2YWxpZGF0aW9uCiAgICAgfQogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXSIpOwogCi0g
ICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmNwcAppbmRleCBjMDAwYjQzLi5mYTY0
MGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4v
UGxhdGZvcm1DQUxheWVyV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmNwcApAQCAtOTM0LDcgKzkzNCw5IEBAIFN0
cmluZyBQbGF0Zm9ybUNBTGF5ZXJXaW46OmxheWVyVHJlZUFzU3RyaW5nKCkgY29uc3QKICAgICAv
LyBQcmludCBsYXllciB0cmVlIGZyb20gdGhlIHJvb3QKICAgICBwcmludExheWVyKGJ1aWxkZXIs
IHRoaXMsIDApOwogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKIFJlZjxQbGF0Zm9ybUNBTGF5ZXI+IFBsYXRmb3JtQ0FMYXllcldp
bjo6Y3JlYXRlQ29tcGF0aWJsZUxheWVyKFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlIGxheWVy
VHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBjbGllbnQpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3Bp
ZXJDVi5jcHAKaW5kZXggZGZmY2RjYi4uNDdmMzIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNw
cApAQCAtNTEyLDcgKzUxMiwxMCBAQCBib29sIFZpZGVvVGV4dHVyZUNvcGllckNWOjppbml0aWFs
aXplQ29udGV4dE9iamVjdHMoKQogICAgIHZlcnRleFNoYWRlclNvdXJjZS5hcHBlbmRMaXRlcmFs
KCJ9XG4iKTsKIAogICAgIFBsYXRmb3JtM0RPYmplY3QgdmVydGV4U2hhZGVyID0gbV9jb250ZXh0
LT5jcmVhdGVTaGFkZXIoR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9TSEFERVIpOwotICAgIG1f
Y29udGV4dC0+c2hhZGVyU291cmNlKHZlcnRleFNoYWRlciwgdmVydGV4U2hhZGVyU291cmNlLnRv
U3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHZlcnRleFNoYWRlclNvdXJjZS50b1N0
cmluZygpKQorICAgICAgICBtX2NvbnRleHQtPnNoYWRlclNvdXJjZSh2ZXJ0ZXhTaGFkZXIsICpz
dHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICBtX2NvbnRleHQtPmNvbXBp
bGVTaGFkZXJEaXJlY3QodmVydGV4U2hhZGVyKTsKIAogICAgIEdDM0RpbnQgdmFsdWUgPSAwOwpA
QCAtNTUzLDcgKzU1NiwxMCBAQCBib29sIFZpZGVvVGV4dHVyZUNvcGllckNWOjppbml0aWFsaXpl
Q29udGV4dE9iamVjdHMoKQogICAgIGZyYWdtZW50U2hhZGVyU291cmNlLmFwcGVuZExpdGVyYWwo
In1cbiIpOwogCiAgICAgUGxhdGZvcm0zRE9iamVjdCBmcmFnbWVudFNoYWRlciA9IG1fY29udGV4
dC0+Y3JlYXRlU2hhZGVyKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFHTUVOVF9TSEFERVIpOwotICAg
IG1fY29udGV4dC0+c2hhZGVyU291cmNlKGZyYWdtZW50U2hhZGVyLCBmcmFnbWVudFNoYWRlclNv
dXJjZS50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBmcmFnbWVudFNoYWRlclNv
dXJjZS50b1N0cmluZygpKQorICAgICAgICBtX2NvbnRleHQtPnNoYWRlclNvdXJjZShmcmFnbWVu
dFNoYWRlciwgKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIG1fY29u
dGV4dC0+Y29tcGlsZVNoYWRlckRpcmVjdChmcmFnbWVudFNoYWRlcik7CiAKICAgICBtX2NvbnRl
eHQtPmdldFNoYWRlcml2KGZyYWdtZW50U2hhZGVyLCBHcmFwaGljc0NvbnRleHQzRDo6Q09NUElM
RV9TVEFUVVMsICZ2YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdM
Q29tbW9uLmNwcAppbmRleCA1YmRkNjYzLi4wMjVlY2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21t
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFw
aGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKQEAgLTk1Myw3ICs5NTMsOSBAQCBzdGF0aWMg
U3RyaW5nIGdlbmVyYXRlSGFzaGVkTmFtZShjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgid2ViZ2xfIik7CiAg
ICAgYXBwZW5kVW5zaWduZWQ2NEFzSGV4KG51bWJlciwgYnVpbGRlciwgTG93ZXJjYXNlKTsKLSAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogc3RkOjpvcHRpb25hbDxTdHJpbmc+IEdyYXBoaWNzQ29udGV4dDNEOjptYXBwZWRTeW1ib2xJ
blNoYWRlclNvdXJjZU1hcChQbGF0Zm9ybTNET2JqZWN0IHNoYWRlciwgQU5HTEVTaGFkZXJTeW1i
b2xUeXBlIHN5bWJvbFR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSkKQEAgLTE2ODUsOCArMTY4Nywx
MSBAQCBTdHJpbmcgR3JhcGhpY3NDb250ZXh0M0Q6OmdldFVubWFuZ2xlZEluZm9Mb2coUGxhdGZv
cm0zRE9iamVjdCBzaGFkZXJzWzJdLCBHQzNEcwogCiAgICAgcHJvY2Vzc2VkTG9nLmFwcGVuZChs
b2cuc3Vic3RyaW5nKHN0YXJ0RnJvbSwgbG9nLmxlbmd0aCgpIC0gc3RhcnRGcm9tKSk7CiAKLSAg
ICBMT0coV2ViR0wsICJVbm1hbmdsZWQgU2hhZGVySW5mb0xvZzpcbiVzIiwgcHJvY2Vzc2VkTG9n
LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgcmV0dXJuIHByb2Nlc3NlZExvZy50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHByb2Nlc3NlZExvZy50b1N0cmluZygpKSB7
CisgICAgICAgIExPRyhXZWJHTCwgIlVubWFuZ2xlZCBTaGFkZXJJbmZvTG9nOlxuJXMiLCBzdHJp
bmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICB9CisgICAg
Q1JBU0goKTsKIH0KIAogU3RyaW5nIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRQcm9ncmFtSW5mb0xv
ZyhQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFk
ZXJQcm9ncmFtLmNwcAppbmRleCAyZTZjNTJjLi4yNGE4OGYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dy
YW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAKQEAgLTM5Nyw3ICszOTcsMTAgQEAgUmVmPFRleHR1
cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Y3JlYXRl
KFRleHR1cmVNYXBwZXIKICNlbmRpZgogCiAgICAgLy8gQXBwZW5kIHRoZSBvcHRpb25zLgotICAg
IHZlcnRleFNoYWRlckJ1aWxkZXIuYXBwZW5kKG9wdGlvbnNBcHBsaWVyQnVpbGRlci50b1N0cmlu
ZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBvcHRpb25zQXBwbGllckJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgdmVydGV4U2hhZGVyQnVpbGRlci5hcHBlbmQoKnN0cmluZyk7CisgICAg
ZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgLy8gQXBwZW5kIHRoZSBhcHByb3ByaWF0ZSBp
bnB1dC9vdXRwdXQgdmFyaWFibGUgZGVmaW5pdGlvbnMuCiAjaWYgVVNFKE9QRU5HTF9FUykKQEAg
LTQyMSw3ICs0MjQsMTAgQEAgUmVmPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiBUZXh0dXJl
TWFwcGVyU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKFRleHR1cmVNYXBwZXIKICNlbmRpZgogCiAgICAg
Ly8gQXBwZW5kIHRoZSBvcHRpb25zLgotICAgIGZyYWdtZW50U2hhZGVyQnVpbGRlci5hcHBlbmQo
b3B0aW9uc0FwcGxpZXJCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IG9wdGlvbnNBcHBsaWVyQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBmcmFnbWVudFNoYWRl
ckJ1aWxkZXIuYXBwZW5kKCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAog
ICAgIC8vIEFwcGVuZCB0aGUgY29tbW9uIGhlYWRlci4KICAgICBmcmFnbWVudFNoYWRlckJ1aWxk
ZXIuYXBwZW5kKGZyYWdtZW50VGVtcGxhdGVIZWFkZXJDb21tb24pOwpAQCAtNDM5LDcgKzQ0NSwx
MCBAQCBSZWY8VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0+IFRleHR1cmVNYXBwZXJTaGFkZXJQ
cm9ncmFtOjpjcmVhdGUoVGV4dHVyZU1hcHBlcgogICAgIC8vIEFwcGVuZCB0aGUgY29tbW9uIGNv
ZGUuCiAgICAgZnJhZ21lbnRTaGFkZXJCdWlsZGVyLmFwcGVuZChmcmFnbWVudFRlbXBsYXRlQ29t
bW9uKTsKIAotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9n
cmFtKHZlcnRleFNoYWRlckJ1aWxkZXIudG9TdHJpbmcoKSwgZnJhZ21lbnRTaGFkZXJCdWlsZGVy
LnRvU3RyaW5nKCkpKTsKKyAgICBpZiAoYXV0byB2ZXJ0ZXhTdHJpbmcgPSB2ZXJ0ZXhTaGFkZXJC
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGlmIChhdXRvIGZyYWdtZW50U3RyaW5nID0gZnJh
Z21lbnRTaGFkZXJCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbSgqdmVydGV4U3RyaW5nLCAqZnJhZ21l
bnRTdHJpbmcpKTsKKyAgICBDUkFTSCgpOwogfQogCiAjaWYgIUxPR19ESVNBQkxFRApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQppbmRleCAzNjU4ZGQxLi5h
MTJjYjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2Fy
ZE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5t
bQpAQCAtMjg4LDcgKzI4OCw5IEBAIHN0YXRpYyBTdHJpbmcgam9pblBhdGhuYW1lcyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgcGF0aG5hbWVzKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1xu
Jyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHBhdGgpOwogICAgIH0KLSAgICByZXR1cm4gYnVp
bGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBQYXN0
ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRQbGFpblRleHQmIHRleHQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbQppbmRleCA3Y2QxYmQ4Li45ZjM4ZmI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVz
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0K
QEAgLTUwLDggKzUwLDEwIEBAIHN0YXRpYyBTdHJpbmcgd2lsZGNhcmRSZWdleFBhdHRlcm5TdHJp
bmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGNo
YXJhY3Rlcik7CiAgICAgfQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCckJyk7Ci0gICAgICAg
IAotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAgICAgCiBib29sIHN0cmluZ01hdGNoZXNXaWxkY2FyZFN0cmlu
Zyhjb25zdCBTdHJpbmcmIHN0cmluZywgY29uc3QgU3RyaW5nJiB3aWxkY2FyZFN0cmluZykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Nyb2xsQW5pbWF0b3JNb2Nr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Nyb2xsQW5pbWF0b3JNb2NrLmNw
cAppbmRleCAzY2MwZmU5Li4zMWJkM2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL1Njcm9sbEFuaW1hdG9yTW9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9TY3JvbGxBbmltYXRvck1vY2suY3BwCkBAIC0xMDEsNyArMTAxLDEwIEBAIHZv
aWQgU2Nyb2xsQW5pbWF0b3JNb2NrOjptb3VzZUVudGVyZWRTY3JvbGxiYXIoU2Nyb2xsYmFyKiBz
Y3JvbGxiYXIpIGNvbnN0CiAgICAgZWxzZQogICAgICAgICBtZXNzYWdlLmFwcGVuZExpdGVyYWwo
IlVua25vd24iKTsKICAgICBtZXNzYWdlLmFwcGVuZExpdGVyYWwoIlNjcm9sbGJhciIpOwotICAg
IG1fbG9nZ2VyKG1lc3NhZ2UudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWVz
c2FnZS50b1N0cmluZygpKQorICAgICAgICBtX2xvZ2dlcigqc3RyaW5nKTsKKyAgICBlbHNlCisg
ICAgICAgIENSQVNIKCk7CiAgICAgU2Nyb2xsQW5pbWF0b3I6Om1vdXNlRW50ZXJlZFNjcm9sbGJh
cihzY3JvbGxiYXIpOwogfQogCkBAIC0xMTYsNyArMTE5LDEwIEBAIHZvaWQgU2Nyb2xsQW5pbWF0
b3JNb2NrOjptb3VzZUV4aXRlZFNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhcikgY29uc3QK
ICAgICBlbHNlCiAgICAgICAgIG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiVW5rbm93biIpOwogICAg
IG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiU2Nyb2xsYmFyIik7Ci0gICAgbV9sb2dnZXIobWVzc2Fn
ZS50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtZXNzYWdlLnRvU3RyaW5nKCkp
CisgICAgICAgIG1fbG9nZ2VyKCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsK
ICAgICBTY3JvbGxBbmltYXRvcjo6bW91c2VFeGl0ZWRTY3JvbGxiYXIoc2Nyb2xsYmFyKTsKIH0K
IApAQCAtMTM2LDcgKzE0MiwxMCBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTW9jazo6bW91c2VJc0Rv
d25JblNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhciwgYm9vbCBpc1ByZQogICAgIGVsc2UK
ICAgICAgICAgbWVzc2FnZS5hcHBlbmRMaXRlcmFsKCJVbmtub3duIik7CiAgICAgbWVzc2FnZS5h
cHBlbmRMaXRlcmFsKCJTY3JvbGxiYXIiKTsKLSAgICBtX2xvZ2dlcihtZXNzYWdlLnRvU3RyaW5n
KCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1lc3NhZ2UudG9TdHJpbmcoKSkKKyAgICAgICAg
bV9sb2dnZXIoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIFNjcm9s
bEFuaW1hdG9yOjptb3VzZUlzRG93bkluU2Nyb2xsYmFyKHNjcm9sbGJhciwgaXNQcmVzc2VkKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJj
ZS9Nb2NrQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2Uv
TW9ja0JveC5jcHAKaW5kZXggZDRhYTIwNS4uZmI2NWE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrQm94LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tCb3guY3BwCkBAIC01Miw3ICs1
Miw5IEBAIFN0cmluZyBNb2NrQm94OjpwZWVrVHlwZShBcnJheUJ1ZmZlciogZGF0YSkKICAgICBS
ZWZQdHI8SW50OEFycmF5PiBhcnJheSA9IEpTQzo6SW50OEFycmF5OjpjcmVhdGUoZGF0YSwgMCwg
NCk7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyArK2kpCiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKGFycmF5LT5pdGVtKGkpKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc2l6ZV90IE1vY2tCb3g6OnBlZWtMZW5ndGgoQXJy
YXlCdWZmZXIqIGRhdGEpCkBAIC03Myw3ICs3NSwxMCBAQCBNb2NrVHJhY2tCb3g6Ok1vY2tUcmFj
a0JveChBcnJheUJ1ZmZlciogZGF0YSkKICAgICBSZWZQdHI8SW50OEFycmF5PiBhcnJheSA9IEpT
Qzo6SW50OEFycmF5OjpjcmVhdGUoZGF0YSwgMTIsIDQpOwogICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgNDsgKytpKQogICAgICAgICBidWlsZGVyLmFwcGVuZChhcnJheS0+aXRlbShpKSk7Ci0gICAg
bV9jb2RlYyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIG1fY29kZWMgPSAqc3RyaW5nOworICAgIGVsc2UKKyAg
ICAgICAgQ1JBU0goKTsKIAogICAgIG1fa2luZCA9IHN0YXRpY19jYXN0PFRyYWNrS2luZD4odmll
dy0+Z2V0PHVpbnQ4X3Q+KDE2LCB0cnVlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwCmluZGV4IGM4ZjQ1ZTUuLjhkMzBkODcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwCkBAIC0z
MjgsNyArMzI4LDkgQEAgU3RyaW5nIGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29uc3Qg
U3RyaW5nJiBtZWRpYVR5cGUpCiAKICAgICBpZiAobWltZVR5cGUubGVuZ3RoKCkgPT0gbGVuZ3Ro
KQogICAgICAgICByZXR1cm4gbWVkaWFUeXBlOwotICAgIHJldHVybiBtaW1lVHlwZS50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1pbWVUeXBlLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBleHRyYWN0Q2hhcnNl
dEZyb21NZWRpYVR5cGUoY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3h5U2VydmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUHJveHlTZXJ2ZXIuY3BwCmluZGV4IGM2ZDY3YzIuLjBjNjlm
NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJveHlTZXJ2
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJveHlTZXJ2ZXIu
Y3BwCkBAIC02OCw3ICs2OCw5IEBAIFN0cmluZyB0b1N0cmluZyhjb25zdCBWZWN0b3I8UHJveHlT
ZXJ2ZXI+JiBwcm94eVNlcnZlcnMpCiAgICAgICAgIGFwcGVuZFByb3h5U2VydmVyU3RyaW5nKHN0
cmluZ0J1aWxkZXIsIHByb3h5U2VydmVyc1tpXSk7CiAgICAgfQogCi0gICAgcmV0dXJuIHN0cmlu
Z0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tp
ZUphckN1cmxEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQ29va2llSmFyQ3VybERhdGFiYXNlLmNwcAppbmRleCA2NzJiMjUxLi5hNGU3NGIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3Vy
bERhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
Q29va2llSmFyQ3VybERhdGFiYXNlLmNwcApAQCAtNTcsNyArNTcsOSBAQCBzdGF0aWMgU3RyaW5n
IGNvb2tpZXNGb3JTZXNzaW9uKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwg
Y29uc3QgVVJMJgogICAgICAgICAgICAgY29va2llcy5hcHBlbmQocmVzdWx0LnZhbHVlKTsKICAg
ICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gY29va2llcy50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGNvb2tpZXMudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBDb29raWVKYXJDdXJsRGF0YWJhc2U6OnNldENvb2tp
ZXNGcm9tRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgc3RkOjpv
cHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlE
LCBjb25zdCBTdHJpbmcmIHZhbHVlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvQ29va2llSmFyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9tYWMvQ29va2llSmFyTWFjLm1tCmluZGV4IGMyNjQwYmQuLjAwMDVkZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZUph
ck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVK
YXJNYWMubW0KQEAgLTI2MSw3ICsyNjEsMTAgQEAgc3RhdGljIHN0ZDo6cGFpcjxTdHJpbmcsIGJv
b2w+IGNvb2tpZXNGb3JTZXNzaW9uKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2UKICAg
ICAgICAgY29va2llc0J1aWxkZXIuYXBwZW5kKCc9Jyk7CiAgICAgICAgIGNvb2tpZXNCdWlsZGVy
LmFwcGVuZChbY29va2llIHZhbHVlXSk7CiAgICAgfQotICAgIHJldHVybiB7IGNvb2tpZXNCdWls
ZGVyLnRvU3RyaW5nKCksIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMgfTsKKworICAgIGlmIChhdXRv
IHN0cmluZyA9IGNvb2tpZXNCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiB7ICpz
dHJpbmcsIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMgfTsKKyAgICBDUkFTSCgpOwogCiAgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKICAgICByZXR1cm4geyBTdHJpbmcoKSwgZmFsc2UgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJ
WC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3Bw
CmluZGV4IDRkYTdjZjYuLjM4OWQyZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcApAQCAtMzEwLDcgKzMxMCw5IEBAIFN0cmluZyBw
YXRoQnlBcHBlbmRpbmdDb21wb25lbnRzKFN0cmluZ1ZpZXcgcGF0aCwgY29uc3QgVmVjdG9yPFN0
cmluZ1ZpZXc+JiBjb21wCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcvJyk7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKGNvbXBvbmVudCk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIG1ha2VBbGxEaXJlY3Rv
cmllcyhjb25zdCBTdHJpbmcmIHBhdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvRGF0ZVRpbWVGb3JtYXQuY3BwCmluZGV4IGM3NWQzM2QuLmExZWZjMmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRGF0ZVRpbWVGb3JtYXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRGF0ZVRpbWVGb3JtYXQuY3BwCkBAIC0xNDUsNyAr
MTQ1LDEwIEBAIGJvb2wgRGF0ZVRpbWVGb3JtYXQ6OnBhcnNlKGNvbnN0IFN0cmluZyYgc291cmNl
LCBUb2tlbkhhbmRsZXImIHRva2VuSGFuZGxlcikKICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgaWYgKGxpdGVyYWxCdWZmZXIubGVuZ3RoKCkpIHsKLSAgICAgICAgICAgICAgICB0b2tlbkhh
bmRsZXIudmlzaXRMaXRlcmFsKGxpdGVyYWxCdWZmZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAg
ICAgICAgaWYgKGF1dG8gc3RyaW5nID0gbGl0ZXJhbEJ1ZmZlci50b1N0cmluZygpKQorICAgICAg
ICAgICAgICAgICAgICB0b2tlbkhhbmRsZXIudmlzaXRMaXRlcmFsKCpzdHJpbmcpOworICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAg
ICAgICBsaXRlcmFsQnVmZmVyLmNsZWFyKCk7CiAgICAgICAgICAgICB9CiAKQEAgLTE2OSw3ICsx
NzIsMTAgQEAgYm9vbCBEYXRlVGltZUZvcm1hdDo6cGFyc2UoY29uc3QgU3RyaW5nJiBzb3VyY2Us
IFRva2VuSGFuZGxlciYgdG9rZW5IYW5kbGVyKQogICAgICAgICAgICAgfQogCiAgICAgICAgICAg
ICBpZiAobGl0ZXJhbEJ1ZmZlci5sZW5ndGgoKSkgewotICAgICAgICAgICAgICAgIHRva2VuSGFu
ZGxlci52aXNpdExpdGVyYWwobGl0ZXJhbEJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAgICAgICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSBsaXRlcmFsQnVmZmVyLnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICAgICAgICAgIHRva2VuSGFuZGxlci52aXNpdExpdGVyYWwoKnN0cmluZyk7CisgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAg
ICAgIGxpdGVyYWxCdWZmZXIuY2xlYXIoKTsKICAgICAgICAgICAgIH0KIApAQCAtMjIwLDE0ICsy
MjYsMjIgQEAgYm9vbCBEYXRlVGltZUZvcm1hdDo6cGFyc2UoY29uc3QgU3RyaW5nJiBzb3VyY2Us
IFRva2VuSGFuZGxlciYgdG9rZW5IYW5kbGVyKQogICAgIHN3aXRjaCAoc3RhdGUpIHsKICAgICBj
YXNlIFN0YXRlTGl0ZXJhbDoKICAgICBjYXNlIFN0YXRlSW5RdW90ZVF1b3RlOgotICAgICAgICBp
ZiAobGl0ZXJhbEJ1ZmZlci5sZW5ndGgoKSkKLSAgICAgICAgICAgIHRva2VuSGFuZGxlci52aXNp
dExpdGVyYWwobGl0ZXJhbEJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGxpdGVyYWxC
dWZmZXIubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGxpdGVyYWxC
dWZmZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICB0b2tlbkhhbmRsZXIudmlzaXRMaXRl
cmFsKCpzdHJpbmcpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7
CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBjYXNlIFN0YXRlUXVvdGU6
CiAgICAgY2FzZSBTdGF0ZUluUXVvdGU6Ci0gICAgICAgIGlmIChsaXRlcmFsQnVmZmVyLmxlbmd0
aCgpKQotICAgICAgICAgICAgdG9rZW5IYW5kbGVyLnZpc2l0TGl0ZXJhbChsaXRlcmFsQnVmZmVy
LnRvU3RyaW5nKCkpOworICAgICAgICBpZiAobGl0ZXJhbEJ1ZmZlci5sZW5ndGgoKSkgeworICAg
ICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gbGl0ZXJhbEJ1ZmZlci50b1N0cmluZygpKQorICAg
ICAgICAgICAgICAgIHRva2VuSGFuZGxlci52aXNpdExpdGVyYWwoKnN0cmluZyk7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgfQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBjYXNlIFN0YXRlU3ltYm9sOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EZWNvZGVFc2NhcGVTZXF1ZW5jZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmgKaW5kZXggMTRjZjQx
NS4uNzJhMGE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EZWNv
ZGVFc2NhcGVTZXF1ZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Rl
Y29kZUVzY2FwZVNlcXVlbmNlcy5oCkBAIC02NCw3ICs2NCw5IEBAIHN0cnVjdCBVbmljb2RlMTZC
aXRFc2NhcGVTZXF1ZW5jZSB7CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChjb2RlVW5pdCk7
CiAgICAgICAgICAgICBydW4gPSBydW4uc3Vic3RyaW5nKHNlcXVlbmNlU2l6ZSk7CiAgICAgICAg
IH0KLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogfTsKIApAQCAtMTUxLDcgKzE1Myw5IEBAIFN0cmlu
ZyBkZWNvZGVFc2NhcGVTZXF1ZW5jZXMoU3RyaW5nVmlldyBzdHJpbmcsIGNvbnN0IFRleHRFbmNv
ZGluZyYgZW5jb2RpbmcpCiAgICAgICAgIGRlY29kZWRQb3NpdGlvbiA9IGVuY29kZWRSdW5FbmQ7
CiAgICAgfQogICAgIHJlc3VsdC5hcHBlbmQoc3RyaW5nLnN1YnN0cmluZyhkZWNvZGVkUG9zaXRp
b24sIGxlbmd0aCAtIGRlY29kZWRQb3NpdGlvbikpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogaW5saW5lIFZlY3Rvcjx1aW50OF90
PiBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXNBc0RhdGEoU3RyaW5nVmlldyBzdHJpbmcsIGNvbnN0
IFRleHRFbmNvZGluZyYgZW5jb2RpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvUGxhdGZvcm1Mb2NhbGUuY3BwCmluZGV4IDA4NzQzMjUuLmE5ZTU4ZTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvUGxhdGZvcm1Mb2NhbGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvUGxhdGZvcm1Mb2NhbGUuY3BwCkBAIC04Myw3ICs4
Myw5IEBAIFN0cmluZyBEYXRlVGltZVN0cmluZ0J1aWxkZXI6Onplcm9QYWRTdHJpbmcoY29uc3Qg
U3RyaW5nJiBzdHJpbmcsIHNpemVfdCB3aWR0aCkKICAgICBmb3IgKHNpemVfdCBpID0gc3RyaW5n
Lmxlbmd0aCgpOyBpIDwgd2lkdGg7ICsraSkKICAgICAgICAgemVyb1BhZGRlZFN0cmluZ0J1aWxk
ZXIuYXBwZW5kKCcwJyk7CiAgICAgemVyb1BhZGRlZFN0cmluZ0J1aWxkZXIuYXBwZW5kKHN0cmlu
Zyk7Ci0gICAgcmV0dXJuIHplcm9QYWRkZWRTdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gemVyb1BhZGRlZFN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBEYXRlVGltZVN0
cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcihpbnQgbnVtYmVyLCBzaXplX3Qgd2lkdGgpCkBAIC0x
NzUsNyArMTc3LDkgQEAgdm9pZCBEYXRlVGltZVN0cmluZ0J1aWxkZXI6OnZpc2l0TGl0ZXJhbChj
b25zdCBTdHJpbmcmIHRleHQpCiAKIFN0cmluZyBEYXRlVGltZVN0cmluZ0J1aWxkZXI6OnRvU3Ry
aW5nKCkKIHsKLSAgICByZXR1cm4gbV9idWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gbV9idWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKICNlbmRpZgpAQCAtMjM4LDcgKzI0Miw5IEBAIFN0cmluZyBMb2Nh
bGU6OmNvbnZlcnRUb0xvY2FsaXplZE51bWJlcihjb25zdCBTdHJpbmcmIGlucHV0KQogCiAgICAg
YnVpbGRlci5hcHBlbmQoaXNOZWdhdGl2ZSA/IG1fbmVnYXRpdmVTdWZmaXggOiBtX3Bvc2l0aXZl
U3VmZml4KTsKIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBzdGF0aWMgYm9vbCBtYXRjaGVzKGNvbnN0IFN0cmluZyYgdGV4dCwg
dW5zaWduZWQgcG9zaXRpb24sIGNvbnN0IFN0cmluZyYgcGFydCkKQEAgLTMyMSw3ICszMjcsOSBA
QCBTdHJpbmcgTG9jYWxlOjpjb252ZXJ0RnJvbUxvY2FsaXplZE51bWJlcihjb25zdCBTdHJpbmcm
IGxvY2FsaXplZCkKICAgICAgICAgZWxzZQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoc3Rh
dGljX2Nhc3Q8VUNoYXI+KCcwJyArIHN5bWJvbEluZGV4KSk7CiAgICAgfQotICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiAjaWYgRU5B
QkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCkBAIC0zNjAsNyArMzY4LDkgQEAgU3RyaW5n
IExvY2FsZTo6Zm9ybWF0RGF0ZVRpbWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUsIEZvcm1h
dFR5cGUgZm9ybWF0VHlwZSkKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmluZy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmluZy5jcHAKaW5kZXggZmYzMWIy
YS4uNDhjYmEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdt
ZW50ZWRTdHJpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVu
dGVkU3RyaW5nLmNwcApAQCAtMTU5LDcgKzE1OSw5IEBAIFN0cmluZyBTZWdtZW50ZWRTdHJpbmc6
OnRvU3RyaW5nKCkgY29uc3QKICAgICBtX2N1cnJlbnRTdWJzdHJpbmcuYXBwZW5kVG8ocmVzdWx0
KTsKICAgICBmb3IgKGF1dG8mIHN1YnN0cmluZyA6IG1fb3RoZXJTdWJzdHJpbmdzKQogICAgICAg
ICBzdWJzdHJpbmcuYXBwZW5kVG8ocmVzdWx0KTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgU2VnbWVudGVkU3RyaW5nOjph
ZHZhbmNlV2l0aG91dFVwZGF0aW5nTGluZU51bWJlcjE2KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcAppbmRleCBkMmUyYWU3Li43NjIyY2IxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNJQ1UuY3BwCkBAIC0zMTgs
MTMgKzMxOCwxNCBAQCBTdHJpbmcgVGV4dENvZGVjSUNVOjpkZWNvZGUoY29uc3QgY2hhciogYnl0
ZXMsIHNpemVfdCBsZW5ndGgsIGJvb2wgZmx1c2gsIGJvb2wgcwogICAgICAgICBzYXdFcnJvciA9
IHRydWU7CiAgICAgfQogCi0gICAgU3RyaW5nIHJlc3VsdFN0cmluZyA9IHJlc3VsdC50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHJlc3VsdFN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKSB7Cisg
ICAgICAgIC8vIFNpbXBsaWZpZWQgQ2hpbmVzZSBwYWdlcyB1c2UgdGhlIGNvZGUgQTNBMCB0byBt
ZWFuICJmdWxsLXdpZHRoIHNwYWNlIiwgYnV0IElDVSBkZWNvZGVzIGl0IGFzIFUrRTVFNS4KKyAg
ICAgICAgaWYgKCFzdHJjbXAobV9lbmNvZGluZ05hbWUsICJHQksiKSB8fCBlcXVhbExldHRlcnNJ
Z25vcmluZ0FTQ0lJQ2FzZShtX2VuY29kaW5nTmFtZSwgImdiMTgwMzAiKSkKKyAgICAgICAgICAg
IHJlc3VsdFN0cmluZy0+cmVwbGFjZSgweEU1RTUsIGlkZW9ncmFwaGljU3BhY2UpOwogCi0gICAg
Ly8gU2ltcGxpZmllZCBDaGluZXNlIHBhZ2VzIHVzZSB0aGUgY29kZSBBM0EwIHRvIG1lYW4gImZ1
bGwtd2lkdGggc3BhY2UiLCBidXQgSUNVIGRlY29kZXMgaXQgYXMgVStFNUU1LgotICAgIGlmICgh
c3RyY21wKG1fZW5jb2RpbmdOYW1lLCAiR0JLIikgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJ
SUNhc2UobV9lbmNvZGluZ05hbWUsICJnYjE4MDMwIikpCi0gICAgICAgIHJlc3VsdFN0cmluZy5y
ZXBsYWNlKDB4RTVFNSwgaWRlb2dyYXBoaWNTcGFjZSk7Ci0KLSAgICByZXR1cm4gcmVzdWx0U3Ry
aW5nOworICAgICAgICByZXR1cm4gKnJlc3VsdFN0cmluZzsKKyAgICB9CisgICAgQ1JBU0goKTsK
IH0KIAogLy8gV2UgbmVlZCB0byBhcHBseSB0aGVzZSBmYWxsYmFja3Mgb3Vyc2VsdmVzIGFzIHRo
ZXkgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIGJ5IElDVSBhbmQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjVXNlckRlZmluZWQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVc2VyRGVmaW5lZC5jcHAKaW5kZXgg
Mjk2YzQ2OS4uY2I3MGU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9UZXh0Q29kZWNVc2VyRGVmaW5lZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9UZXh0Q29kZWNVc2VyRGVmaW5lZC5jcHAKQEAgLTUzLDcgKzUzLDkgQEAgU3RyaW5nIFRl
eHRDb2RlY1VzZXJEZWZpbmVkOjpkZWNvZGUoY29uc3QgY2hhciogYnl0ZXMsIHNpemVfdCBsZW5n
dGgsIGJvb2wsIGJvb2wKICAgICAgICAgc2lnbmVkIGNoYXIgYyA9IGJ5dGVzW2ldOwogICAgICAg
ICByZXN1bHQuYXBwZW5kKHN0YXRpY19jYXN0PFVDaGFyPihjICYgMHhGN0ZGKSk7CiAgICAgfQot
ICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1
bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogc3RhdGljIFZlY3Rvcjx1aW50OF90PiBlbmNvZGVDb21wbGV4VXNlckRlZmluZWQoU3RyaW5n
VmlldyBzdHJpbmcsIFVuZW5jb2RhYmxlSGFuZGxpbmcgaGFuZGxpbmcpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCmluZGV4
IDZmZjg5ZWMuLjJiYzZkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCkBAIC0zMTQsNyArMzE0LDEwIEBAIHZvaWQg
cmVwbGFjZU5ld2xpbmVzV2l0aFdpbmRvd3NTdHlsZU5ld2xpbmVzKFN0cmluZyYgc3RyKQogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiXHJcbiIpOwogICAg
IH0KLSAgICBzdHIgPSByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBy
ZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgc3RyID0gKnN0cmluZzsKKyAgICBlbHNlCisgICAg
ICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgcmVwbGFjZU5CU1BXaXRoU3BhY2UoU3RyaW5nJiBzdHIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vVXNlckFnZW50V2luLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Vc2VyQWdlbnRXaW4uY3BwCmluZGV4IDgy
MDFmNGUuLmQzZDY5NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9V
c2VyQWdlbnRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Vc2VyQWdl
bnRXaW4uY3BwCkBAIC00Niw3ICs0Niw5IEBAIFN0cmluZyBzdGFuZGFyZFVzZXJBZ2VudChjb25z
dCBTdHJpbmcmIGFwcGxpY2F0aW9uTmFtZSwgY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvCiAgICAg
ICAgICAgICB1YVN0cmluZy5hcHBlbmQoYXBwbGljYXRpb25WZXJzaW9uKTsKICAgICAgICAgfQog
ICAgIH0KLSAgICByZXR1cm4gdWFTdHJpbmcudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSB1YVN0cmluZy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBD
UkFTSCgpOwogfQogCiBTdHJpbmcgc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoY29uc3QgVVJMJiB1
cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5cGUuY3BwCmluZGV4IDFiMmQ3NTIuLjJm
ZTU4NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5cGUuY3BwCkBAIC01Nyw3ICs1
Nyw5IEBAIFN0cmluZyBET01NaW1lVHlwZTo6c3VmZml4ZXMoKSBjb25zdAogICAgICAgICAgICAg
YnVpbGRlci5hcHBlbmQoJywnKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoZXh0ZW5zaW9uc1tp
XSk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBTdHJpbmcgRE9NTWltZVR5cGU6OmRlc2NyaXB0aW9uKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IGZhMGU1N2EuLmJh
OWNkNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtNDI4
LDcgKzQyOCw5IEBAIFN0cmluZyBSZW5kZXJMYXllcjo6bmFtZSgpIGNvbnN0CiAgICAgaWYgKGlz
UmVmbGVjdGlvbigpKQogICAgICAgICBuYW1lLmFwcGVuZExpdGVyYWwoIiAocmVmbGVjdGlvbiki
KTsKIAotICAgIHJldHVybiBuYW1lLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
bmFtZS50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiBSZW5kZXJMYXllckNvbXBvc2l0b3ImIFJlbmRlckxheWVyOjpjb21wb3NpdG9yKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAKaW5kZXggMWM0MDQ3ZC4uNTczMzBlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTg2Myw3ICs4NjMsMTAgQEAg
dm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmxvZ0xheWVySW5mbyhjb25zdCBSZW5kZXJMYXll
ciYgbGF5ZXIsIGludCBkZXB0aCkKIAogICAgIGxvZ1N0cmluZy5hcHBlbmQobGF5ZXIubmFtZSgp
KTsKIAotICAgIExPRyhDb21wb3NpdGluZywgIiVzIiwgbG9nU3RyaW5nLnRvU3RyaW5nKCkudXRm
OCgpLmRhdGEoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbG9nU3RyaW5nLnRvU3RyaW5nKCkp
CisgICAgICAgIExPRyhDb21wb3NpdGluZywgIiVzIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsK
KyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCmluZGV4IDkwNGY5OTQuLjU3YjAwMzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKQEAg
LTExMTcsNyArMTExNyw5IEBAIFN0cmluZyBsaXN0TWFya2VyVGV4dChFTGlzdFN0eWxlVHlwZSB0
eXBlLCBpbnQgdmFsdWUpCiAgICAgICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICByZXR1cm4g
YnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogUmVuZGVy
TGlzdE1hcmtlcjo6UmVuZGVyTGlzdE1hcmtlcihSZW5kZXJMaXN0SXRlbSYgbGlzdEl0ZW0sIFJl
bmRlclN0eWxlJiYgc3R5bGUpCkBAIC0xMzYzLDcgKzEzNjUsMTAgQEAgdm9pZCBSZW5kZXJMaXN0
TWFya2VyOjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBh
aW50T2Zmc2UKICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHN1ZmZpeCk7CiAgICAgICAg
ICAgICAgICAgYnVmZmVyLmFwcGVuZChzcGFjZSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICB0b0RyYXcgPSBidWZmZXIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGJ1ZmZlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHRvRHJhdyA9ICpzdHJpbmc7
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgIGlmIChzdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSkK
ICAgICAgICAgICAgICAgICB0b0RyYXcgPSBtX3RleHQgKyBTdHJpbmcoJnN1ZmZpeCwgMSkgKyBT
dHJpbmcoJnNwYWNlLCAxKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcApp
bmRleCA4ZmE1MWUyLi4xMDUyMGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHQuY3BwCkBAIC0xODEsNyArMTgxLDkgQEAgU3RyaW5nIGNhcGl0YWxpemUoY29uc3QgU3RyaW5n
JiBzdHJpbmcsIFVDaGFyIHByZXZpb3VzQ2hhcmFjdGVyKQogICAgICAgICAgICAgcmVzdWx0LmFw
cGVuZChzdHJpbmdJbXBsW2kgLSAxXSk7CiAgICAgfQogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBpbmxpbmUgUmVuZGVyVGV4dDo6
UmVuZGVyVGV4dChOb2RlJiBub2RlLCBjb25zdCBTdHJpbmcmIHRleHQpCkBAIC03NTYsMTYgKzc1
OCwxOSBAQCBzdGF0aWMgZmxvYXQgbWF4V29yZEZyYWdtZW50V2lkdGgoUmVuZGVyVGV4dCYgcmVu
ZGVyZXIsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZQogICAgICAgICBmcmFnbWVudFdpdGhIeXBo
ZW4uYXBwZW5kKHdvcmQuc3Vic3RyaW5nKHN1ZmZpeFN0YXJ0LCBmcmFnbWVudExlbmd0aCkpOwog
ICAgICAgICBmcmFnbWVudFdpdGhIeXBoZW4uYXBwZW5kKHN0eWxlLmh5cGhlblN0cmluZygpKTsK
IAotICAgICAgICBUZXh0UnVuIHJ1biA9IFJlbmRlckJsb2NrOjpjb25zdHJ1Y3RUZXh0UnVuKGZy
YWdtZW50V2l0aEh5cGhlbi50b1N0cmluZygpLCBzdHlsZSk7Ci0gICAgICAgIHJ1bi5zZXRDaGFy
YWN0ZXJTY2FuRm9yQ29kZVBhdGgoIXJlbmRlcmVyLmNhblVzZVNpbXBsZUZvbnRDb2RlUGF0aCgp
KTsKLSAgICAgICAgZmxvYXQgZnJhZ21lbnRXaWR0aCA9IGZvbnQud2lkdGgocnVuLCAmZmFsbGJh
Y2tGb250cywgJmdseXBoT3ZlcmZsb3cpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBmcmFn
bWVudFdpdGhIeXBoZW4udG9TdHJpbmcoKSkgeworICAgICAgICAgICAgVGV4dFJ1biBydW4gPSBS
ZW5kZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1bigqc3RyaW5nLCBzdHlsZSk7CisgICAgICAgICAg
ICBydW4uc2V0Q2hhcmFjdGVyU2NhbkZvckNvZGVQYXRoKCFyZW5kZXJlci5jYW5Vc2VTaW1wbGVG
b250Q29kZVBhdGgoKSk7CisgICAgICAgICAgICBmbG9hdCBmcmFnbWVudFdpZHRoID0gZm9udC53
aWR0aChydW4sICZmYWxsYmFja0ZvbnRzLCAmZ2x5cGhPdmVyZmxvdyk7CiAKLSAgICAgICAgLy8g
TmFycm93IHByZWZpeGVzIGFyZSBpZ25vcmVkLiBTZWUgdHJ5SHlwaGVuYXRpbmcgaW4gUmVuZGVy
QmxvY2tMaW5lTGF5b3V0LmNwcC4KLSAgICAgICAgaWYgKGZyYWdtZW50V2lkdGggPD0gbWluaW11
bUZyYWdtZW50V2lkdGhUb0NvbnNpZGVyKQotICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
ICAgICAvLyBOYXJyb3cgcHJlZml4ZXMgYXJlIGlnbm9yZWQuIFNlZSB0cnlIeXBoZW5hdGluZyBp
biBSZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwLgorICAgICAgICAgICAgaWYgKGZyYWdtZW50V2lk
dGggPD0gbWluaW11bUZyYWdtZW50V2lkdGhUb0NvbnNpZGVyKQorICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwogCi0gICAgICAgIHN1ZmZpeFN0YXJ0ICs9IGZyYWdtZW50TGVuZ3RoOwotICAgICAg
ICBtYXhGcmFnbWVudFdpZHRoID0gc3RkOjptYXgobWF4RnJhZ21lbnRXaWR0aCwgZnJhZ21lbnRX
aWR0aCk7CisgICAgICAgICAgICBzdWZmaXhTdGFydCArPSBmcmFnbWVudExlbmd0aDsKKyAgICAg
ICAgICAgIG1heEZyYWdtZW50V2lkdGggPSBzdGQ6Om1heChtYXhGcmFnbWVudFdpZHRoLCBmcmFn
bWVudFdpZHRoKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0K
IAogICAgIHJldHVybiBtYXhGcmFnbWVudFdpZHRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lSU9TLm1tCmluZGV4IDRmZTgzZTAuLjI1NzhmNTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KQEAgLTEzNjAsNyArMTM2MCwxMCBAQCBT
dHJpbmcgUmVuZGVyVGhlbWVJT1M6Om1lZGlhQ29udHJvbHNTY3JpcHQoKQogICAgICAgICAgICAg
U3RyaW5nQnVpbGRlciBzY3JpcHRCdWlsZGVyOwogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5h
cHBlbmQoW05TU3RyaW5nIHN0cmluZ1dpdGhDb250ZW50c09mRmlsZTpbYnVuZGxlIHBhdGhGb3JS
ZXNvdXJjZTpAIm1vZGVybi1tZWRpYS1jb250cm9scy1sb2NhbGl6ZWQtc3RyaW5ncyIgb2ZUeXBl
OkAianMiXSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZyBlcnJvcjpuaWxdKTsKICAgICAg
ICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kKFtOU1N0cmluZyBzdHJpbmdXaXRoQ29udGVudHNP
ZkZpbGU6W2J1bmRsZSBwYXRoRm9yUmVzb3VyY2U6QCJtb2Rlcm4tbWVkaWEtY29udHJvbHMiIG9m
VHlwZTpAImpzIiBpbkRpcmVjdG9yeTpAIm1vZGVybi1tZWRpYS1jb250cm9scyJdIGVuY29kaW5n
Ok5TVVRGOFN0cmluZ0VuY29kaW5nIGVycm9yOm5pbF0pOwotICAgICAgICAgICAgbV9tZWRpYUNv
bnRyb2xzU2NyaXB0ID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpOworICAgICAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAg
IG1fbWVkaWFDb250cm9sc1NjcmlwdCA9ICpzdHJpbmc7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9tZWRpYUNv
bnRyb2xzU2NyaXB0OwogICAgIH0KQEAgLTEzNzMsNyArMTM3NiwxMCBAQCBTdHJpbmcgUmVuZGVy
VGhlbWVJT1M6Om1lZGlhQ29udHJvbHNTY3JpcHQoKQogICAgICAgICBzY3JpcHRCdWlsZGVyLmFw
cGVuZChbTlNTdHJpbmcgc3RyaW5nV2l0aENvbnRlbnRzT2ZGaWxlOltidW5kbGUgcGF0aEZvclJl
c291cmNlOkAibWVkaWFDb250cm9sc0FwcGxlIiBvZlR5cGU6QCJqcyJdIGVuY29kaW5nOk5TVVRG
OFN0cmluZ0VuY29kaW5nIGVycm9yOm5pbF0pOwogICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVu
ZChbTlNTdHJpbmcgc3RyaW5nV2l0aENvbnRlbnRzT2ZGaWxlOltidW5kbGUgcGF0aEZvclJlc291
cmNlOkAibWVkaWFDb250cm9sc2lPUyIgb2ZUeXBlOkAianMiXSBlbmNvZGluZzpOU1VURjhTdHJp
bmdFbmNvZGluZyBlcnJvcjpuaWxdKTsKIAotICAgICAgICBtX2xlZ2FjeU1lZGlhQ29udHJvbHNT
Y3JpcHQgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIG1fbGVnYWN5TWVkaWFD
b250cm9sc1NjcmlwdCA9ICpzdHJpbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNI
KCk7CiAgICAgfQogICAgIHJldHVybiBtX2xlZ2FjeU1lZGlhQ29udHJvbHNTY3JpcHQ7CiAjZWxz
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAKaW5kZXggZGVl
YTFhOS4uODM2ZDAxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVX
aW4uY3BwCkBAIC0xMDk0LDcgKzEwOTQsMTAgQEAgU3RyaW5nIFJlbmRlclRoZW1lV2luOjptZWRp
YUNvbnRyb2xzU2NyaXB0KCkKICAgICAgICAgU3RyaW5nQnVpbGRlciBzY3JpcHRCdWlsZGVyOwog
ICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZChzdHJpbmdXaXRoQ29udGVudHNPZkZpbGUoQ0ZT
VFIoIm1lZGlhQ29udHJvbHNMb2NhbGl6ZWRTdHJpbmdzIiksIENGU1RSKCJqcyIpKSk7CiAgICAg
ICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kKHN0cmluZ1dpdGhDb250ZW50c09mRmlsZShDRlNUUigi
bWVkaWFDb250cm9sc0FwcGxlIiksIENGU1RSKCJqcyIpKSk7Ci0gICAgICAgIG1fbWVkaWFDb250
cm9sc1NjcmlwdCA9IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgbV9tZWRpYUNv
bnRyb2xzU2NyaXB0ID0gKnN0cmluZzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0go
KTsKICAgICB9CiAgICAgcmV0dXJuIG1fbWVkaWFDb250cm9sc1NjcmlwdDsKICNlbHNlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKaW5kZXggNTVjZGI0
Yi4uODVjNzhlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRy
ZWVBc1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNU
ZXh0LmNwcApAQCAtMTcwLDcgKzE3MCw5IEBAIFN0cmluZyBxdW90ZUFuZEVzY2FwZU5vblByaW50
YWJsZXMoU3RyaW5nVmlldyBzKQogICAgICAgICB9CiAgICAgfQogICAgIHJlc3VsdC5hcHBlbmQo
JyInKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIHZvaWQgUmVuZGVyVHJlZUFzVGV4dDo6d3JpdGVSZW5kZXJPYmplY3QoVGV4dFN0
cmVhbSYgdHMsIGNvbnN0IFJlbmRlck9iamVjdCYgbywgUmVuZGVyQXNUZXh0QmVoYXZpb3IgYmVo
YXZpb3IpCkBAIC04MDcsNyArODA5LDkgQEAgc3RhdGljIFN0cmluZyBub2RlUG9zaXRpb24oTm9k
ZSogbm9kZSkKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCJkb2N1bWVudCIpOwog
ICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogc3RhdGljIHZvaWQgd3JpdGVTZWxlY3Rpb24oVGV4dFN0cmVhbSYgdHMsIGNv
bnN0IFJlbmRlckJveCYgcmVuZGVyZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5jcHAKaW5kZXggODliYjA0MC4uOGM3ODRl
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRo
TUxGZW5jZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MRmVuY2VkLmNwcApAQCAtNzEsNyArNzEsMTAgQEAgdm9pZCBSZW5kZXJNYXRoTUxGZW5j
ZWQ6OnVwZGF0ZUZyb21FbGVtZW50KCkKICAgICAgICAgICAgIGlmICghaXNTcGFjZU9yTmV3bGlu
ZShzZXBhcmF0b3JzW2ldKSkKICAgICAgICAgICAgICAgICBjaGFyYWN0ZXJzLmFwcGVuZChzZXBh
cmF0b3JzW2ldKTsKICAgICAgICAgfQotICAgICAgICBtX3NlcGFyYXRvcnMgPSAhY2hhcmFjdGVy
cy5sZW5ndGgoKSA/IDAgOiBjaGFyYWN0ZXJzLnRvU3RyaW5nKCkuaW1wbCgpOworICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBjaGFyYWN0ZXJzLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBtX3Nl
cGFyYXRvcnMgPSAhY2hhcmFjdGVycy5sZW5ndGgoKSA/IDAgOiBzdHJpbmctPmltcGwoKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9IGVsc2UgewogICAgICAgICAv
LyBUaGUgc2VwYXJhdG9yIGRlZmF1bHRzIHRvIGEgc2luZ2xlIGNvbW1hLgogICAgICAgICBtX3Nl
cGFyYXRvcnMgPSBTdHJpbmdJbXBsOjpjcmVhdGUoIiwiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlck1hdGhNTC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNYXRoTUwu
Y3BwCmluZGV4IDVjYjQ3OGIuLjIwZDI1MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlck1hdGhNTC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTWF0aE1MLmNwcApA
QCAtOTAsNyArOTAsMTAgQEAgdm9pZCBSZW5kZXJUcmVlQnVpbGRlcjo6TWF0aE1MOjphdHRhY2go
UmVuZGVyTWF0aE1MRmVuY2VkJiBwYXJlbnQsIFJlbmRlclB0cjxSZW4KIAogICAgICAgICAgICAg
U3RyaW5nQnVpbGRlciBzdHJpbmdCdWlsZGVyOwogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmQoc2VwYXJhdG9yKTsKLSAgICAgICAgICAgIHNlcGFyYXRvclJlbmRlcmVyID0gY3JlYXRl
TWF0aE1MT3BlcmF0b3IocGFyZW50LCBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCksIE1hdGhNTE9w
ZXJhdG9yRGljdGlvbmFyeTo6SW5maXgsIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6U2VwYXJh
dG9yKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgICAgICAgICBzZXBhcmF0b3JSZW5kZXJlciA9IGNyZWF0ZU1hdGhNTE9w
ZXJhdG9yKHBhcmVudCwgKnN0cmluZywgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpJbmZpeCwg
TWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpTZXBhcmF0b3IpOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmNwcAppbmRleCBiYTIwNjQ4Li4yMGVhM2UxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3BwCkBAIC02Myw3ICs2
Myw5IEBAIFN0cmluZyBTVkdMZW5ndGhMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nKCkgY29uc3QK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoYXQoaSkudmFsdWVBc1N0cmluZygpKTsKICAgICB9CiAK
LSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1
ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuY3BwCmluZGV4
IDZkZmQ5OTMuLjg3NWJlNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1i
ZXJMaXN0VmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdFZh
bHVlcy5jcHAKQEAgLTU1LDcgKzU1LDkgQEAgU3RyaW5nIFNWR051bWJlckxpc3RWYWx1ZXM6OnZh
bHVlQXNTdHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihhdChpKSk7
CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRo
U3RyaW5nQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFN0cmluZ0J1aWxk
ZXIuY3BwCmluZGV4IDEwNTM5MWMuLjljNTc3ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoU3RyaW5nQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1BhdGhTdHJpbmdCdWlsZGVyLmNwcApAQCAtMzcsNyArMzcsOSBAQCBTdHJpbmcgU1ZHUGF0aFN0
cmluZ0J1aWxkZXI6OnJlc3VsdCgpCiAKICAgICAvLyBSZW1vdmUgdHJhaWxpbmcgc3BhY2UuCiAg
ICAgbV9zdHJpbmdCdWlsZGVyLnJlc2l6ZShzaXplIC0gMSk7Ci0gICAgcmV0dXJuIG1fc3RyaW5n
QnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1fc3RyaW5nQnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiB2b2lkIFNWR1BhdGhTdHJpbmdCdWlsZGVyOjppbmNyZW1lbnRQYXRoU2VnbWVudENvdW50KCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcAppbmRleCBjZjlmMDE0Li5jYzU0
MzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwCkBAIC0xMDEsNyAr
MTAxLDkgQEAgU3RyaW5nIGJ1aWxkU3RyaW5nRnJvbVBhdGgoY29uc3QgUGF0aCYgcGF0aCkKICAg
ICAgICAgfSk7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgYnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21T
VkdQYXRoU2VnTGlzdFZhbHVlcyhjb25zdCBTVkdQYXRoU2VnTGlzdFZhbHVlcyYgbGlzdCwgU1ZH
UGF0aEJ5dGVTdHJlYW0mIHJlc3VsdCwgUGF0aFBhcnNpbmdNb2RlIHBhcnNpbmdNb2RlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmNwcAppbmRleCBkODFlNmEyLi5kOGJk
ZWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmNwcApAQCAtNDEs
NyArNDEsOSBAQCBTdHJpbmcgU1ZHUG9pbnRMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nKCkgY29u
c3QKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIocG9pbnQueSgpKTsKICAgICB9CiAKLSAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuY3BwCmluZGV4IDNm
Zjg5OGEuLjhjNjFmMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdM
aXN0VmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdFZhbHVl
cy5jcHAKQEAgLTczLDcgKzczLDkgQEAgU3RyaW5nIFNWR1N0cmluZ0xpc3RWYWx1ZXM6OnZhbHVl
QXNTdHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZChhdChpKSk7CiAgICAgfQog
Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0
VmFsdWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmNw
cAppbmRleCAyNWIzYzMxLi42YjQyZDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Ry
YW5zZm9ybUxpc3RWYWx1ZXMuY3BwCkBAIC02OCw3ICs2OCw5IEBAIFN0cmluZyBTVkdUcmFuc2Zv
cm1MaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBl
bmQoYXQoaSkudmFsdWVBc1N0cmluZygpKTsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBTVkdUcmFuc2Zv
cm1MaXN0VmFsdWVzOjpwYXJzZShjb25zdCBTdHJpbmcmIHRyYW5zZm9ybSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVHJhbnNmb3JtVmFsdWUuY3BwCmluZGV4IDYzZDQ1YTUuLmVhMTQ2M2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmNwcApAQCAtMTc5LDcgKzE3OSw5IEBA
IFN0cmluZyBTVkdUcmFuc2Zvcm1WYWx1ZTo6dmFsdWVBc1N0cmluZygpIGNvbnN0CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fbWF0
cml4LmYoKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Ci0gICAgICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwog
ICAgIH0KICAgICBjYXNlIFNWR19UUkFOU0ZPUk1fVFJBTlNMQVRFOiB7CiAgICAgICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKQEAgLTE4OCw3ICsxOTAsOSBAQCBTdHJpbmcgU1ZHVHJhbnNmb3Jt
VmFsdWU6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcp
OwogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX21hdHJpeC5mKCkpOwogICAgICAgICBi
dWlsZGVyLmFwcGVuZCgnKScpOwotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwor
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgY2FzZSBTVkdf
VFJBTlNGT1JNX1NDQUxFOiB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKQEAgLTE5
Nyw3ICsyMDEsOSBAQCBTdHJpbmcgU1ZHVHJhbnNmb3JtVmFsdWU6OnZhbHVlQXNTdHJpbmcoKSBj
b25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgICAgICBidWlsZGVyLmFwcGVu
ZE51bWJlcihtX21hdHJpeC55U2NhbGUoKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7
Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICBjYXNlIFNWR19UUkFOU0ZPUk1fUk9UQVRFOiB7
CiAgICAgICAgIGRvdWJsZSBhbmdsZUluUmFkID0gZGVnMnJhZChtX2FuZ2xlKTsKQEAgLTIxNSw3
ICsyMjEsOSBAQCBTdHJpbmcgU1ZHVHJhbnNmb3JtVmFsdWU6OnZhbHVlQXNTdHJpbmcoKSBjb25z
dAogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoY3kpOwogICAgICAgICB9CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICBjYXNl
IFNWR19UUkFOU0ZPUk1fU0tFV1g6CiAgICAgY2FzZSBTVkdfVFJBTlNGT1JNX1NLRVdZOiB7CkBA
IC0yMjMsNyArMjMxLDkgQEAgU3RyaW5nIFNWR1RyYW5zZm9ybVZhbHVlOjp2YWx1ZUFzU3RyaW5n
KCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQocHJlZml4KTsKICAgICAgICAgYnVpbGRl
ci5hcHBlbmROdW1iZXIobV9hbmdsZSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Ci0g
ICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
ICAgICBDUkFTSCgpOwogICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCmluZGV4IGEyMzI3ZTYuLjgwMGFiZDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMu
aApAQCAtMTQzLDcgKzE0Myw5IEBAIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFBvaW50
PiB7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUueCgpKTsKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoJyAnKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS55KCkp
OwotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9OwogCkBAIC0xNzQsNyArMTc2LDkgQEAgc3RydWN0
IFNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD4gewogICAgICAgICBidWlsZGVyLmFwcGVuZE51
bWJlcih0eXBlLndpZHRoKCkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgICAg
ICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLmhlaWdodCgpKTsKLSAgICAgICAgcmV0dXJuIGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAg
ICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDgxYTQwMDku
LjBjMjQwNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTE1NDAsNyAr
MTU0MCw5IEBAIEV4Y2VwdGlvbk9yPFN0cmluZz4gSW50ZXJuYWxzOjpkdW1wTWFya2VyUmVjdHMo
Y29uc3QgU3RyaW5nJiBtYXJrZXJUeXBlU3RyaW5nKQogICAgICAgICByZWN0U3RyaW5nLmFwcGVu
ZE51bWJlcihyZWN0LmhlaWdodCgpKTsKICAgICAgICAgcmVjdFN0cmluZy5hcHBlbmRMaXRlcmFs
KCIpICIpOwogICAgIH0KLSAgICByZXR1cm4gcmVjdFN0cmluZy50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IHJlY3RTdHJpbmcudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIFdU
Rk1vdmUoKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbnRlcm5hbHM6OmFkZFRl
eHRNYXRjaE1hcmtlcihjb25zdCBSYW5nZSYgcmFuZ2UsIGJvb2wgaXNBY3RpdmUpCkBAIC0yMDc5
LDcgKzIwODEsOSBAQCBTdHJpbmcgSW50ZXJuYWxzOjpwYXJzZXJNZXRhRGF0YShKU0M6OkpTVmFs
dWUgY29kZSkKICAgICByZXN1bHQuYXBwZW5kTnVtYmVyKGVuZENvbHVtbik7CiAgICAgcmVzdWx0
LmFwcGVuZExpdGVyYWwoIiB9Iik7CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW50ZXJuYWxzOjp1cGRhdGVFZGl0b3JV
SU5vd0lmU2NoZWR1bGVkKCkKQEAgLTMwNzEsNyArMzA3NSw5IEBAIEV4Y2VwdGlvbk9yPFN0cmlu
Zz4gSW50ZXJuYWxzOjpnZXRDdXJyZW50Q3Vyc29ySW5mbygpCiAgICAgICAgIHJlc3VsdC5hcHBl
bmQobnVtYmVyVG9GaXhlZFByZWNpc2lvblN0cmluZyhjdXJzb3IuaW1hZ2VTY2FsZUZhY3Rvcigp
LCA4LCBidWZmZXIsIHRydWUpKTsKICAgICB9CiAjZW5kaWYKLSAgICByZXR1cm4gcmVzdWx0LnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiBXVEZNb3ZlKCpzdHJpbmcpOworICAgIENSQVNIKCk7CiAjZWxzZQogICAgIHJl
dHVybiBTdHJpbmcgeyAiRkFJTDogQ3Vyc29yIGRldGFpbHMgbm90IGF2YWlsYWJsZSBvbiB0aGlz
IHBsYXRmb3JtLiIgfTsKICNlbmRpZgpAQCAtMzUxNCw3ICszNTIwLDkgQEAgRXhjZXB0aW9uT3I8
U3RyaW5nPiBJbnRlcm5hbHM6Om1lZGlhU2Vzc2lvblJlc3RyaWN0aW9ucyhjb25zdCBTdHJpbmcm
IG1lZGlhVHlwZVMKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcsJyk7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCJpbnRlcnJ1cHRlZHBsYXliYWNrbm90cGVybWl0dGVkIik7CiAgICAgfQot
ICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gV1RGTW92ZSgqc3RyaW5nKTsKKyAgICBD
UkFTSCgpOwogfQogCiB2b2lkIEludGVybmFsczo6c2V0TWVkaWFFbGVtZW50UmVzdHJpY3Rpb25z
KEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQsIFN0cmluZ1ZpZXcgcmVzdHJpY3Rpb25zU3RyaW5n
KQpAQCAtMzc1NSw0OCArMzc2Myw1MCBAQCBTdHJpbmcgSW50ZXJuYWxzOjpwYWdlTWVkaWFTdGF0
ZSgpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogCiAgICAgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlID0gZG9jdW1lbnQtPnBhZ2UoKS0+bWVkaWFT
dGF0ZSgpOwotICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nOworICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdBdWRpbykKLSAg
ICAgICAgc3RyaW5nLmFwcGVuZCgiSXNQbGF5aW5nQXVkaW8sIik7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCJJc1BsYXlpbmdBdWRpbywiKTsKICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2Vy
OjpJc1BsYXlpbmdWaWRlbykKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNQbGF5aW5nVmlkZW8s
Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJJc1BsYXlpbmdWaWRlbywiKTsKICAgICBpZiAo
c3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKQotICAgICAg
ICBzdHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlLCIpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZCgiSXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSwiKTsKICAgICBpZiAoc3Rh
dGUgJiBNZWRpYVByb2R1Y2VyOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZykKLSAg
ICAgICAgc3RyaW5nLmFwcGVuZCgiUmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcsIik7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmlu
ZywiKTsKICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpFeHRlcm5hbERldmljZUF1dG9Q
bGF5Q2FuZGlkYXRlKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJFeHRlcm5hbERldmljZUF1dG9Q
bGF5Q2FuZGlkYXRlLCIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiRXh0ZXJuYWxEZXZpY2VB
dXRvUGxheUNhbmRpZGF0ZSwiKTsKICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpEaWRQ
bGF5VG9FbmQpCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIkRpZFBsYXlUb0VuZCwiKTsKKyAgICAg
ICAgYnVpbGRlci5hcHBlbmQoIkRpZFBsYXlUb0VuZCwiKTsKICAgICBpZiAoc3RhdGUgJiBNZWRp
YVByb2R1Y2VyOjpJc1NvdXJjZUVsZW1lbnRQbGF5aW5nKQotICAgICAgICBzdHJpbmcuYXBwZW5k
KCJJc1NvdXJjZUVsZW1lbnRQbGF5aW5nLCIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiSXNT
b3VyY2VFbGVtZW50UGxheWluZywiKTsKIAogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6
OklzTmV4dFRyYWNrQ29udHJvbEVuYWJsZWQpCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIklzTmV4
dFRyYWNrQ29udHJvbEVuYWJsZWQsIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJJc05leHRU
cmFja0NvbnRyb2xFbmFibGVkLCIpOwogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6Oklz
UHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVkKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc1By
ZXZpb3VzVHJhY2tDb250cm9sRW5hYmxlZCwiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIklz
UHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVkLCIpOwogCiAgICAgaWYgKHN0YXRlICYgTWVkaWFQ
cm9kdWNlcjo6SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lcikKLSAgICAgICAg
c3RyaW5nLmFwcGVuZCgiSGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lciwiKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmQoIkhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlz
dGVuZXIsIik7CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SGFzQXVkaW9PclZpZGVv
KQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNBdWRpb09yVmlkZW8sIik7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCJIYXNBdWRpb09yVmlkZW8sIik7CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQ
cm9kdWNlcjo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKQotICAgICAgICBzdHJpbmcuYXBw
ZW5kKCJIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UsIik7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCJIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UsIik7CiAgICAgaWYgKHN0YXRlICYgTWVk
aWFQcm9kdWNlcjo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKQotICAgICAgICBzdHJpbmcu
YXBwZW5kKCJIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UsIik7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCJIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UsIik7CiAgICAgaWYgKHN0YXRlICYg
TWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UpCi0gICAgICAgIHN0cmlu
Zy5hcHBlbmQoIkhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlLCIpOworICAgICAgICBidWlsZGVy
LmFwcGVuZCgiSGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UsIik7CiAgICAgaWYgKHN0YXRlICYg
TWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpCi0gICAgICAgIHN0cmlu
Zy5hcHBlbmQoIkhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlLCIpOworICAgICAgICBidWlsZGVy
LmFwcGVuZCgiSGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UsIik7CiAgICAgaWYgKHN0YXRlICYg
TWVkaWFQcm9kdWNlcjo6SGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50KQotICAgICAg
ICBzdHJpbmcuYXBwZW5kKCJIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQsIik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQs
Iik7CiAKLSAgICBpZiAoc3RyaW5nLmlzRW1wdHkoKSkKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgi
SXNOb3RQbGF5aW5nIik7CisgICAgaWYgKGJ1aWxkZXIuaXNFbXB0eSgpKQorICAgICAgICBidWls
ZGVyLmFwcGVuZCgiSXNOb3RQbGF5aW5nIik7CiAgICAgZWxzZQotICAgICAgICBzdHJpbmcucmVz
aXplKHN0cmluZy5sZW5ndGgoKSAtIDEpOworICAgICAgICBidWlsZGVyLnJlc2l6ZShidWlsZGVy
Lmxlbmd0aCgpIC0gMSk7CiAKLSAgICByZXR1cm4gc3RyaW5nLnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIEludGVybmFsczo6c2V0UGFnZURlZmVyc0xvYWRp
bmcoYm9vbCBkZWZlcnNMb2FkaW5nKQpAQCAtMzkxOCw3ICszOTI4LDkgQEAgRXhjZXB0aW9uT3I8
U3RyaW5nPiBJbnRlcm5hbHM6OnNjcm9sbFNuYXBPZmZzZXRzKEVsZW1lbnQmIGVsZW1lbnQpCiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBXVEZNb3Zl
KCpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwCmluZGV4IGU1YTZjZmUuLmY0YTNj
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVu
dC5jcHAKQEAgLTk4LDcgKzk4LDEwIEBAIHZvaWQgTW9ja1BhZ2VPdmVybGF5Q2xpZW50OjpkcmF3
UmVjdChQYWdlT3ZlcmxheSYgb3ZlcmxheSwgR3JhcGhpY3NDb250ZXh0JiBjb250CiAgICAgbWVz
c2FnZS5hcHBlbmRMaXRlcmFsKCIsICIpOwogICAgIG1lc3NhZ2UuYXBwZW5kTnVtYmVyKGRpcnR5
UmVjdC5oZWlnaHQoKSk7CiAgICAgbWVzc2FnZS5hcHBlbmRMaXRlcmFsKCIpIik7Ci0gICAgb3Zl
cmxheS5wYWdlKCktPm1haW5GcmFtZSgpLmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdlTGV2ZWw6OkRlYnVnLCBtZXNzYWdlLnRvU3RyaW5n
KCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1lc3NhZ2UudG9TdHJpbmcoKSkKKyAgICAgICAg
b3ZlcmxheS5wYWdlKCktPm1haW5GcmFtZSgpLmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdlTGV2ZWw6OkRlYnVnLCAqc3RyaW5nKTsKKyAg
ICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVy
IHN0YXRlU2F2ZXIoY29udGV4dCk7CiAKQEAgLTEyMyw3ICsxMjYsMTAgQEAgYm9vbCBNb2NrUGFn
ZU92ZXJsYXlDbGllbnQ6Om1vdXNlRXZlbnQoUGFnZU92ZXJsYXkmIG92ZXJsYXksIGNvbnN0IFBs
YXRmb3JtTW91c2UKICAgICBtZXNzYWdlLmFwcGVuZExpdGVyYWwoIiwgIik7CiAgICAgbWVzc2Fn
ZS5hcHBlbmROdW1iZXIoZXZlbnQucG9zaXRpb24oKS55KCkpOwogICAgIG1lc3NhZ2UuYXBwZW5k
TGl0ZXJhbCgiKSIpOwotICAgIG92ZXJsYXkucGFnZSgpLT5tYWluRnJhbWUoKS5kb2N1bWVudCgp
LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpPdGhlciwgTWVzc2FnZUxldmVsOjpE
ZWJ1ZywgbWVzc2FnZS50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtZXNzYWdl
LnRvU3RyaW5nKCkpCisgICAgICAgIG92ZXJsYXkucGFnZSgpLT5tYWluRnJhbWUoKS5kb2N1bWVu
dCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpPdGhlciwgTWVzc2FnZUxldmVs
OjpEZWJ1ZywgKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgcmV0
dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJT
Y3JpcHRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2Fk
ZXIuY3BwCmluZGV4IDViMzQwZmYuLjQ0ZTRlMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAKQEAgLTIwMiw3ICsyMDIsOSBAQCB2b2lkIFdvcmtl
clNjcmlwdExvYWRlcjo6bm90aWZ5RXJyb3IoKQogCiBTdHJpbmcgV29ya2VyU2NyaXB0TG9hZGVy
OjpzY3JpcHQoKQogewotICAgIHJldHVybiBtX3NjcmlwdC50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IG1fc2NyaXB0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgV29ya2VyU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5p
c2hlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MRXJyb3JzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3htbC9YTUxFcnJvcnMuY3BwCmluZGV4IGIxNDMyZDEuLjE1MzE5ZjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxFcnJvcnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxFcnJvcnMuY3BwCkBAIC0xNDgsOCArMTQ4LDExIEBAIHZvaWQgWE1MRXJy
b3JzOjppbnNlcnRFcnJvck1lc3NhZ2VCbG9jaygpCiAgICAgICAgIGRvY3VtZW50RWxlbWVudCA9
IFdURk1vdmUoYm9keSk7CiAgICAgfQogCi0gICAgU3RyaW5nIGVycm9yTWVzc2FnZXMgPSBtX2Vy
cm9yTWVzc2FnZXMudG9TdHJpbmcoKTsKLSAgICBhdXRvIHJlcG9ydEVsZW1lbnQgPSBjcmVhdGVY
SFRNTFBhcnNlckVycm9ySGVhZGVyKG1fZG9jdW1lbnQsIGVycm9yTWVzc2FnZXMpOworICAgIGF1
dG8gcmVwb3J0RWxlbWVudCA9IGNyZWF0ZVhIVE1MUGFyc2VyRXJyb3JIZWFkZXIobV9kb2N1bWVu
dCwgWyZdICgpIHsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gbV9lcnJvck1lc3NhZ2VzLnRv
U3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsK
KyAgICB9KCkpOwogCiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgaWYgKG1fZG9jdW1lbnQudHJhbnNm
b3JtU291cmNlRG9jdW1lbnQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAK
aW5kZXggMTllNWFlNC4uNzZiOWZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3Qu
Y3BwCkBAIC0xOTUsNyArMTk1LDEwIEBAIEV4Y2VwdGlvbk9yPERvY3VtZW50Kj4gWE1MSHR0cFJl
cXVlc3Q6OnJlc3BvbnNlWE1MKCkKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBt
X3Jlc3BvbnNlRG9jdW1lbnQgPSBYTUxEb2N1bWVudDo6Y3JlYXRlKDAsIG1fdXJsKTsKICAgICAg
ICAgICAgIC8vIEZJWE1FOiBTZXQgTGFzdC1Nb2RpZmllZC4KLSAgICAgICAgICAgIG1fcmVzcG9u
c2VEb2N1bWVudC0+c2V0Q29udGVudChtX3Jlc3BvbnNlQnVpbGRlci50b1N0cmluZ1ByZXNlcnZl
Q2FwYWNpdHkoKSk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBtX3Jlc3BvbnNlQnVp
bGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSkKKyAgICAgICAgICAgICAgICBtX3Jlc3Bv
bnNlRG9jdW1lbnQtPnNldENvbnRlbnQoKnN0cmluZyk7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudC0+c2V0
Q29udGV4dERvY3VtZW50KGRvd25jYXN0PERvY3VtZW50Pigqc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKSk7CiAgICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQtPnNldFNlY3VyaXR5T3JpZ2lu
UG9saWN5KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2VjdXJpdHlPcmlnaW5Qb2xpY3koKSk7
CiAgICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQtPm92ZXJyaWRlTUlNRVR5cGUobWltZVR5
cGUpOwpAQCAtODE3LDE0ICs4MjAsMjAgQEAgU3RyaW5nIFhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxS
ZXNwb25zZUhlYWRlcnMoKSBjb25zdAogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRM
aXRlcmFsKCI6ICIpOwogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoaGVhZGVyLnZh
bHVlKTsKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXHJcbiIpOwot
ICAgICAgICAgICAgaGVhZGVycy51bmNoZWNrZWRBcHBlbmQoc3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgICAgICAgICBoZWFkZXJzLnVuY2hlY2tlZEFwcGVuZCgqc3RyaW5nKTsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAg
ICAgICAgIHN0ZDo6c29ydChoZWFkZXJzLmJlZ2luKCksIGhlYWRlcnMuZW5kKCksIFdURjo6Y29k
ZVBvaW50Q29tcGFyZUxlc3NUaGFuKTsKIAogICAgICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1
aWxkZXI7CiAgICAgICAgIGZvciAoYXV0byYgaGVhZGVyIDogaGVhZGVycykKICAgICAgICAgICAg
IHN0cmluZ0J1aWxkZXIuYXBwZW5kKGhlYWRlcik7Ci0gICAgICAgIG1fYWxsUmVzcG9uc2VIZWFk
ZXJzID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBtX2FsbFJlc3BvbnNlSGVh
ZGVycyA9ICpzdHJpbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAg
fQogCiAgICAgcmV0dXJuIG1fYWxsUmVzcG9uc2VIZWFkZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuaAppbmRleCAxZWVjMTU4Li41M2I0Zjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuaApAQCAtODcsNyArODcsMTIgQEAgcHVibGljOgogICAgIFN0cmluZyBnZXRBbGxS
ZXNwb25zZUhlYWRlcnMoKSBjb25zdDsKICAgICBTdHJpbmcgZ2V0UmVzcG9uc2VIZWFkZXIoY29u
c3QgU3RyaW5nJiBuYW1lKSBjb25zdDsKICAgICBFeGNlcHRpb25PcjxPd25lZFN0cmluZz4gcmVz
cG9uc2VUZXh0KCk7Ci0gICAgU3RyaW5nIHJlc3BvbnNlVGV4dElnbm9yaW5nUmVzcG9uc2VUeXBl
KCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZUJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFj
aXR5KCk7IH0KKyAgICBTdHJpbmcgcmVzcG9uc2VUZXh0SWdub3JpbmdSZXNwb25zZVR5cGUoKSBj
b25zdAorICAgIHsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gbV9yZXNwb25zZUJ1aWxkZXIu
dG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICAgICAgQ1JBU0goKTsKKyAgICB9CiAgICAgU3RyaW5nIHJlc3BvbnNlTUlNRVR5cGUoKSBj
b25zdDsKIAogICAgIERvY3VtZW50KiBvcHRpb25hbFJlc3BvbnNlWE1MKCkgY29uc3QgeyByZXR1
cm4gbV9yZXNwb25zZURvY3VtZW50LmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS94bWwvWFBhdGhGdW5jdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRnVuY3Rp
b25zLmNwcAppbmRleCA3MzUzNGE0Li5mN2RjYTlhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUveG1sL1hQYXRoRnVuY3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhG
dW5jdGlvbnMuY3BwCkBAIC0zMDgsOSArMzA4LDExIEBAIHN0YXRpYyBBdG9taWNTdHJpbmcgYXRv
bWljU3Vic3RyaW5nKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIHVuc2lnbmVkIHN0YXJ0LCB1bnNp
CiB7CiAgICAgQVNTRVJUKHN0YXJ0IDw9IGJ1aWxkZXIubGVuZ3RoKCkpOwogICAgIEFTU0VSVChs
ZW5ndGggPD0gYnVpbGRlci5sZW5ndGgoKSAtIHN0YXJ0KTsKKyAgICBpZiAoYnVpbGRlci5mYWls
ZWQoKSkKKyAgICAgICAgQ1JBU0goKTsKICAgICBpZiAoYnVpbGRlci5pczhCaXQoKSkKLSAgICAg
ICAgcmV0dXJuIEF0b21pY1N0cmluZyhidWlsZGVyLmNoYXJhY3RlcnM4KCkgKyBzdGFydCwgbGVu
Z3RoKTsKLSAgICByZXR1cm4gQXRvbWljU3RyaW5nKGJ1aWxkZXIuY2hhcmFjdGVyczE2KCkgKyBz
dGFydCwgbGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIEF0b21pY1N0cmluZygqYnVpbGRlci5jaGFy
YWN0ZXJzOCgpICsgc3RhcnQsIGxlbmd0aCk7CisgICAgcmV0dXJuIEF0b21pY1N0cmluZygqYnVp
bGRlci5jaGFyYWN0ZXJzMTYoKSArIHN0YXJ0LCBsZW5ndGgpOwogfQogCiBWYWx1ZSBGdW5JZDo6
ZXZhbHVhdGUoKSBjb25zdApAQCAtMzM0LDE0ICszMzYsMTcgQEAgVmFsdWUgRnVuSWQ6OmV2YWx1
YXRlKCkgY29uc3QKICAgICB1bnNpZ25lZCBzdGFydFBvcyA9IDA7CiAgICAgdW5zaWduZWQgbGVu
Z3RoID0gaWRMaXN0Lmxlbmd0aCgpOwogICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIHdoaWxl
IChzdGFydFBvcyA8IGxlbmd0aCAmJiBpc1doaXRlc3BhY2UoaWRMaXN0W3N0YXJ0UG9zXSkpCisg
ICAgICAgIGlmIChpZExpc3QuZmFpbGVkKCkpCisgICAgICAgICAgICBDUkFTSCgpOworCisgICAg
ICAgIHdoaWxlIChzdGFydFBvcyA8IGxlbmd0aCAmJiBpc1doaXRlc3BhY2UoKmlkTGlzdFtzdGFy
dFBvc10pKQogICAgICAgICAgICAgKytzdGFydFBvczsKICAgICAgICAgCiAgICAgICAgIGlmIChz
dGFydFBvcyA9PSBsZW5ndGgpCiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBzaXplX3Qg
ZW5kUG9zID0gc3RhcnRQb3M7Ci0gICAgICAgIHdoaWxlIChlbmRQb3MgPCBsZW5ndGggJiYgIWlz
V2hpdGVzcGFjZShpZExpc3RbZW5kUG9zXSkpCisgICAgICAgIHdoaWxlIChlbmRQb3MgPCBsZW5n
dGggJiYgIWlzV2hpdGVzcGFjZSgqaWRMaXN0W2VuZFBvc10pKQogICAgICAgICAgICAgKytlbmRQ
b3M7CiAKICAgICAgICAgLy8gSWYgdGhlcmUgYXJlIHNldmVyYWwgbm9kZXMgd2l0aCB0aGUgc2Ft
ZSBpZCwgaWQoKSBzaG91bGQgcmV0dXJuIHRoZSBmaXJzdCBvbmUuCkBAIC00MzcsNyArNDQyLDkg
QEAgVmFsdWUgRnVuQ29uY2F0OjpldmFsdWF0ZSgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBl
bmQoc3RyKTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIFZhbHVlIEZ1blN0YXJ0c1dpdGg6OmV2YWx1YXRlKCkgY29u
c3QKQEAgLTU1Niw3ICs1NjMsOSBAQCBWYWx1ZSBGdW5UcmFuc2xhdGU6OmV2YWx1YXRlKCkgY29u
c3QKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoczNbaTJdKTsKICAgICB9CiAKLSAgICByZXR1
cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFZhbHVl
IEZ1bkJvb2xlYW46OmV2YWx1YXRlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFBy
b2Nlc3NvckxpYnhzbHQuY3BwCmluZGV4IDY2YWQxNWYuLjhlNWUwNWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcApAQCAtMTk3LDEyICsxOTcsMTggQEAg
c3RhdGljIGJvb2wgc2F2ZVJlc3VsdFRvU3RyaW5nKHhtbERvY1B0ciByZXN1bHREb2MsIHhzbHRT
dHlsZXNoZWV0UHRyIHNoZWV0LCBTdHIKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8g
V29ya2Fyb3VuZCBmb3IgPGh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lk
PTQ5NTY2OD46IGxpYnhzbHQgYXBwZW5kcyBhbiBleHRyYSBsaW5lIGZlZWQgdG8gdGhlIHJlc3Vs
dC4KLSAgICBpZiAocmVzdWx0QnVpbGRlci5sZW5ndGgoKSA+IDAgJiYgcmVzdWx0QnVpbGRlclty
ZXN1bHRCdWlsZGVyLmxlbmd0aCgpIC0gMV0gPT0gJ1xuJykKKyAgICBpZiAocmVzdWx0QnVpbGRl
ci5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgaWYgKHJlc3VsdEJ1aWxkZXIuZmFpbGVkKCkpCisg
ICAgICAgICAgICBDUkFTSCgpOworICAgICAgICBpZiAoKnJlc3VsdEJ1aWxkZXJbcmVzdWx0QnVp
bGRlci5sZW5ndGgoKSAtIDFdID09ICdcbicpCiAgICAgICAgIHJlc3VsdEJ1aWxkZXIucmVzaXpl
KHJlc3VsdEJ1aWxkZXIubGVuZ3RoKCkgLSAxKTsKKyAgICB9CiAKLSAgICByZXN1bHRTdHJpbmcg
PSByZXN1bHRCdWlsZGVyLnRvU3RyaW5nKCk7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSByZXN1bHRCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgcmVzdWx0
U3RyaW5nID0gKnN0cmluZzsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIENSQVNI
KCk7CiB9CiAKIHN0YXRpYyBjb25zdCBjaGFyKiogeHNsdFBhcmFtQXJyYXlGcm9tUGFyYW1ldGVy
TWFwKFhTTFRQcm9jZXNzb3I6OlBhcmFtZXRlck1hcCYgcGFyYW1ldGVycykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VySW5saW5l
cy5oIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9DaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJ
bmxpbmVzLmgKaW5kZXggNzY4NjI2OC4uNjcyYmFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUveG1sL3BhcnNlci9DaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUveG1sL3BhcnNlci9DaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVzLmgK
QEAgLTMyLDcgKzMyLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogaW5saW5lIHZvaWQgdW5j
b25zdW1lQ2hhcmFjdGVycyhTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgU3RyaW5nQnVpbGRlciYg
Y29uc3VtZWRDaGFyYWN0ZXJzKQogewotICAgIHNvdXJjZS5wdXNoQmFjayhjb25zdW1lZENoYXJh
Y3RlcnMudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gY29uc3VtZWRDaGFyYWN0
ZXJzLnRvU3RyaW5nKCkpCisgICAgICAgIHNvdXJjZS5wdXNoQmFjayhXVEZNb3ZlKCpzdHJpbmcp
KTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBQ
YXJzZXJGdW5jdGlvbnM+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb25Ib3N0
LmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbkhvc3QuY3BwCmluZGV4IGYxNjQ5MjkuLmIx
Y2NjYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbkhvc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbkhvc3QuY3BwCkBAIC01NSw3ICs1NSwxMCBAQCBsb25n
IFNlc3Npb25Ib3N0OjpzZW5kQ29tbWFuZFRvQmFja2VuZChjb25zdCBTdHJpbmcmIGNvbW1hbmQs
IFJlZlB0cjxKU09OOjpPYmplYwogICAgICAgICBtZXNzYWdlQnVpbGRlci5hcHBlbmQocGFyYW1l
dGVycy0+dG9KU09OU3RyaW5nKCkpOwogICAgIH0KICAgICBtZXNzYWdlQnVpbGRlci5hcHBlbmQo
J30nKTsKLSAgICBzZW5kTWVzc2FnZVRvQmFja2VuZChzZXF1ZW5jZUlELCBtZXNzYWdlQnVpbGRl
ci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtZXNzYWdlQnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICBzZW5kTWVzc2FnZVRvQmFja2VuZChzZXF1ZW5jZUlELCAqc3RyaW5n
KTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAgICByZXR1cm4gc2VxdWVuY2VJRDsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggOGExZGQxNy4uODhiOTZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MiBA
QAorMjAxOC0wNC0yNiAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgU3RyaW5nQnVpbGRlciBpcyBmYWxsaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVhY2ggU3RyaW5nQnVpbGRlciB0aGF0IGl0IGlzIGZhbGxp
YmxlCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVuZ2luZTo6cmVwcmVzZW50YXRp
b24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6OmR1bXBDb250ZW50c1RvRmlsZSk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlS2V5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpLZXk6Omhhc2hBc1N0cmluZyk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FwdHVyZTo6TWFuYWdlcjo6aGFzaFRvUGF0aCk6CisgICAg
ICAgICogU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIvSURCVXRpbGl0aWVzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6dW5pcXVlRGF0YWJhc2VJZGVudGlmaWVyKToKKyAgICAgICAgKiBTaGFyZWQv
R2FtZXBhZC9HYW1lcGFkRGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdhbWVwYWREYXRhOjps
b2dnaW5nU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS91
bml4L05ldHNjYXBlUGx1Z2luTW9kdWxlVW5peC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNj
YXBlUGx1Z2luTW9kdWxlOjpidWlsZE1JTUVEZXNjcmlwdGlvbik6CisgICAgICAgICogU2hhcmVk
L1dlYk1lbW9yeVNhbXBsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNZW1vcnlTYW1wbGVy
OjphcHBlbmRDdXJyZW50TWVtb3J5VXNhZ2VUb0ZpbGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQVBJVXNlclNjcmlwdC5jcHA6CisgICAgICAgIChBUEk6OlVzZXJTY3JpcHQ6OmdlbmVyYXRl
VW5pcXVlVVJMKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVzZXJTdHlsZVNoZWV0LmNw
cDoKKyAgICAgICAgKEFQSTo6VXNlclN0eWxlU2hlZXQ6OmdlbmVyYXRlVW5pcXVlVVJMKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpTbmFwc2hvdFJlbW92YWxUcmFja2Vy
OjpldmVudHNEZXNjcmlwdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJk
TGlzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkJhY2tGb3J3YXJkTGlzdDo6bG9nZ2luZ1N0
cmluZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVtb3ZlRGF0YVJlY29yZHMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnVwZGF0ZUNvb2tpZVBhcnRp
dGlvbmluZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NU
ZWxlbWV0cnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpzdWJtaXRUb3BMaXN0KToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpjYXBpdGFsaXplUkZDODIySGVhZGVyRmllbGROYW1lKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OmJ1aWxkSFRUUEhlYWRlcnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFt
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpjb250ZW50c0FzU3RyaW5nIGNvbnN0
KToKKwogMjAxOC0wNC0yNSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBkbG9wZW4gdGhlIGJ1bmRsZSdzIGV4ZWN1dGFibGUgYmVmb3JlIGNhbGxpbmcgLVtOU0J1
bmRsZSBsb2FkXSBzaW5jZSB0aGF0IHdpbGwgYWxzbyBkbyBhIGJ1bmNoIG9mIG90aGVyIHRoaW5n
cyB3ZSBkb24ndCBuZWVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAKaW5kZXggNDVjNDdhMS4uOGQ3OTU4MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3Jh
Z2VFbmdpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2Fj
aGVTdG9yYWdlRW5naW5lLmNwcApAQCAtNTI0LDcgKzUyNCw5IEBAIFN0cmluZyBFbmdpbmU6OnJl
cHJlc2VudGF0aW9uKCkKICAgICAgICAgYnVpbGRlci5hcHBlbmQoIn0iKTsKICAgICB9CiAgICAg
YnVpbGRlci5hcHBlbmQoIl19Iik7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIENhY2hlU3RvcmFnZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUu
Y3BwCmluZGV4IDczYTI1ZjQuLjBjYTdmOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKQEAgLTU3MCwxMCArNTcwLDEzIEBA
IHZvaWQgQ2FjaGU6OmR1bXBDb250ZW50c1RvRmlsZSgpCiAgICAgICAgICAgICBlcGlsb2d1ZS5h
cHBlbmROdW1iZXIodG90YWxzLmNvdW50ID8gdG90YWxzLndvcnRoIC8gdG90YWxzLmNvdW50IDog
MCk7CiAgICAgICAgICAgICBlcGlsb2d1ZS5hcHBlbmRMaXRlcmFsKCJcbiIpOwogICAgICAgICAg
ICAgZXBpbG9ndWUuYXBwZW5kTGl0ZXJhbCgifVxufVxuIik7Ci0gICAgICAgICAgICBhdXRvIHdy
aXRlRGF0YSA9IGVwaWxvZ3VlLnRvU3RyaW5nKCkudXRmOCgpOwotICAgICAgICAgICAgd3JpdGVU
b0ZpbGUoZmQsIHdyaXRlRGF0YS5kYXRhKCksIHdyaXRlRGF0YS5sZW5ndGgoKSk7Ci0gICAgICAg
ICAgICBjbG9zZUZpbGUoZmQpOwotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gZXBpbG9ndWUudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgICAgIGF1
dG8gd3JpdGVEYXRhID0gc3RyaW5nLT51dGY4KCk7CisgICAgICAgICAgICAgICAgd3JpdGVUb0Zp
bGUoZmQsIHdyaXRlRGF0YS5kYXRhKCksIHdyaXRlRGF0YS5sZW5ndGgoKSk7CisgICAgICAgICAg
ICAgICAgY2xvc2VGaWxlKGZkKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAgICAgICAgIGF1dG8gZW50cnkg
PSBFbnRyeTo6ZGVjb2RlU3RvcmFnZVJlY29yZCgqcmVjb3JkKTsKICAgICAgICAgaWYgKCFlbnRy
eSkKQEAgLTU4NSw4ICs1ODgsMTEgQEAgdm9pZCBDYWNoZTo6ZHVtcENvbnRlbnRzVG9GaWxlKCkK
ICAgICAgICAgU3RyaW5nQnVpbGRlciBqc29uOwogICAgICAgICBlbnRyeS0+YXNKU09OKGpzb24s
IGluZm8pOwogICAgICAgICBqc29uLmFwcGVuZExpdGVyYWwoIixcbiIpOwotICAgICAgICBhdXRv
IHdyaXRlRGF0YSA9IGpzb24udG9TdHJpbmcoKS51dGY4KCk7Ci0gICAgICAgIHdyaXRlVG9GaWxl
KGZkLCB3cml0ZURhdGEuZGF0YSgpLCB3cml0ZURhdGEubGVuZ3RoKCkpOworICAgICAgICBpZiAo
YXV0byBzdHJpbmcgPSBqc29uLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIGF1dG8gd3JpdGVE
YXRhID0gc3RyaW5nLT51dGY4KCk7CisgICAgICAgICAgICB3cml0ZVRvRmlsZShmZCwgd3JpdGVE
YXRhLmRhdGEoKSwgd3JpdGVEYXRhLmxlbmd0aCgpKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICBDUkFTSCgpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUtleS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUtleS5jcHAKaW5kZXggOGZhODFkMS4uMGI0
MjJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVLZXkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlS2V5LmNwcApAQCAtMTM0LDcgKzEzNCw5IEBAIFN0cmluZyBLZXk6Omhhc2hB
c1N0cmluZyhjb25zdCBIYXNoVHlwZSYgaGFzaCkKICAgICAgICAgYnVpbGRlci5hcHBlbmQodXBw
ZXJOaWJibGVUb0FTQ0lJSGV4RGlnaXQoYnl0ZSkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChs
b3dlck5pYmJsZVRvQVNDSUlIZXhEaWdpdChieXRlKSk7CiAgICAgfQotICAgIHJldHVybiBidWls
ZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB0ZW1wbGF0ZSA8
dHlwZW5hbWUgQ2hhclR5cGU+IGJvb2wgaGV4RGlnaXRzVG9IYXNoKENoYXJUeXBlKiBjaGFyYWN0
ZXJzLCBLZXk6Okhhc2hUeXBlJiBoYXNoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVNYW5hZ2VyLmNwcAppbmRl
eCA1NjEzYmU4Li4zNDczZTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVNYW5hZ2VyLmNwcApAQCAtNDE1
LDkgKzQxNSw5IEBAIFN0cmluZyBNYW5hZ2VyOjpoYXNoVG9QYXRoKGNvbnN0IFN0cmluZyYgaGFz
aCkKIAogICAgIGF1dG8gcGF0aCA9IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChtX3JlY29yZFJl
cGxheUNhY2hlTG9jYXRpb24sIGtEaXJOYW1lUmVzb3VyY2VzKTsKICAgICBwYXRoID0gcGF0aEJ5
QXBwZW5kaW5nQ29tcG9uZW50KHBhdGgsIGhhc2hIZWFkKTsKLSAgICBwYXRoID0gcGF0aEJ5QXBw
ZW5kaW5nQ29tcG9uZW50KHBhdGgsIGZpbGVOYW1lLnRvU3RyaW5nKCkpOwotCi0gICAgcmV0dXJu
IHBhdGg7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gZmlsZU5hbWUudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChwYXRoLCAqc3RyaW5nKTsKKyAgICBD
UkFTSCgpOwogfQogCiBTdHJpbmcgTWFuYWdlcjo6dXJsSWRlbnRpZnlpbmdDb21tb25Eb21haW4o
Y29uc3QgV2ViQ29yZTo6VVJMJiB1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9EYXRhYmFzZXMvSW5kZXhlZERCL0lEQlV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCL0lEQlV0aWxpdGllcy5jcHAKaW5kZXggOWVjNzZmZi4u
N2MxYzI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRGF0YWJhc2VzL0luZGV4
ZWREQi9JREJVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0RhdGFiYXNl
cy9JbmRleGVkREIvSURCVXRpbGl0aWVzLmNwcApAQCAtNTIsNyArNTIsOSBAQCBTdHJpbmcgdW5p
cXVlRGF0YWJhc2VJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBX
ZWJDb3JlOjpTZWN1cgogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdfJyk7CiAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmQoZGF0YWJhc2VOYW1lKTsKIAotICAgIHJldHVybiBzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dhbWVwYWQv
R2FtZXBhZERhdGEuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0
YS5jcHAKaW5kZXggOTA1ZDgyNy4uMWZiZDdkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
R2FtZXBhZC9HYW1lcGFkRGF0YS5jcHAKQEAgLTExMSw3ICsxMTEsOSBAQCBTdHJpbmcgR2FtZXBh
ZERhdGE6OmxvZ2dpbmdTdHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJl
cihtX2J1dHRvblZhbHVlc1tpXSk7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS91bml4L05ldHNjYXBlUGx1Z2lu
TW9kdWxlVW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL3Vu
aXgvTmV0c2NhcGVQbHVnaW5Nb2R1bGVVbml4LmNwcAppbmRleCBmOWViMDZlLi45NzJkY2I1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL3VuaXgvTmV0
c2NhcGVQbHVnaW5Nb2R1bGVVbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QbHVn
aW5zL05ldHNjYXBlL3VuaXgvTmV0c2NhcGVQbHVnaW5Nb2R1bGVVbml4LmNwcApAQCAtMTIwLDcg
KzEyMCw5IEBAIFN0cmluZyBOZXRzY2FwZVBsdWdpbk1vZHVsZTo6YnVpbGRNSU1FRGVzY3JpcHRp
b24oY29uc3QgVmVjdG9yPE1pbWVDbGFzc0luZm8+JiBtCiAgICAgICAgICAgICBidWlsZGVyLmFw
cGVuZCgnOycpOwogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIE5ldHNjYXBlUGx1Z2luTW9kdWxlOjpnZXRQ
bHVnaW5JbmZvRm9yTG9hZGVkUGx1Z2luKFJhd1BsdWdpbk1ldGFEYXRhJiBtZXRhRGF0YSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAKaW5kZXggOTI3NzE4OS4uNjc1
OGFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAKQEAgLTE4
MSw4ICsxODEsMTEgQEAgdm9pZCBXZWJNZW1vcnlTYW1wbGVyOjphcHBlbmRDdXJyZW50TWVtb3J5
VXNhZ2VUb0ZpbGUoRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGEKICAgICB9CiAgICAgc3RhdFN0
cmluZy5hcHBlbmQoJ1xuJyk7CiAKLSAgICBDU3RyaW5nIHV0ZjhTdHJpbmcgPSBzdGF0U3RyaW5n
LnRvU3RyaW5nKCkudXRmOCgpOwotICAgIEZpbGVTeXN0ZW06OndyaXRlVG9GaWxlKG1fc2FtcGxl
TG9nRmlsZSwgdXRmOFN0cmluZy5kYXRhKCksIHV0ZjhTdHJpbmcubGVuZ3RoKCkpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IHN0YXRTdHJpbmcudG9TdHJpbmcoKSkgeworICAgICAgICBDU3RyaW5n
IHV0ZjhTdHJpbmcgPSBzdHJpbmctPnV0ZjgoKTsKKyAgICAgICAgRmlsZVN5c3RlbTo6d3JpdGVU
b0ZpbGUobV9zYW1wbGVMb2dGaWxlLCB1dGY4U3RyaW5nLmRhdGEoKSwgdXRmOFN0cmluZy5sZW5n
dGgoKSk7CisgICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVc2VyU2NyaXB0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVc2VyU2NyaXB0LmNwcAppbmRleCA3NTg0ZTYzLi5hOTM5
YjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVXNlclNjcmlw
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJTY3JpcHQuY3Bw
CkBAIC0zNyw3ICszNyw5IEBAIFdlYkNvcmU6OlVSTCBVc2VyU2NyaXB0OjpnZW5lcmF0ZVVuaXF1
ZVVSTCgpCiAgICAgU3RyaW5nQnVpbGRlciB1cmxTdHJpbmdCdWlsZGVyOwogICAgIHVybFN0cmlu
Z0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgidXNlci1zY3JpcHQ6Iik7CiAgICAgdXJsU3RyaW5nQnVp
bGRlci5hcHBlbmROdW1iZXIoKytpZGVudGlmaWVyKTsKLSAgICByZXR1cm4geyB7IH0sIHVybFN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKSB9OworICAgIGlmIChhdXRvIHN0cmluZyA9IHVybFN0cmlu
Z0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHsgeyB9LCAqc3RyaW5nIH07Cisg
ICAgQ1JBU0goKTsKIH0KIAogVXNlclNjcmlwdDo6VXNlclNjcmlwdChXZWJDb3JlOjpVc2VyU2Ny
aXB0IHVzZXJTY3JpcHQsIEFQSTo6VXNlckNvbnRlbnRXb3JsZCYgd29ybGQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVXNlclN0eWxlU2hlZXQuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJTdHlsZVNoZWV0LmNwcAppbmRleCAxZDU5
NWJiLi42M2FjMGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
VXNlclN0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElV
c2VyU3R5bGVTaGVldC5jcHAKQEAgLTM3LDcgKzM3LDkgQEAgV2ViQ29yZTo6VVJMIFVzZXJTdHls
ZVNoZWV0OjpnZW5lcmF0ZVVuaXF1ZVVSTCgpCiAgICAgU3RyaW5nQnVpbGRlciB1cmxTdHJpbmdC
dWlsZGVyOwogICAgIHVybFN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgidXNlci1zdHlsZS1z
aGVldDoiKTsKICAgICB1cmxTdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcigrK2lkZW50aWZpZXIp
OwotICAgIHJldHVybiB7IHsgfSwgdXJsU3RyaW5nQnVpbGRlci50b1N0cmluZygpIH07CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gdXJsU3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4geyB7IH0sICpzdHJpbmcgfTsKKyAgICBDUkFTSCgpOwogfQogCiBVc2VyU3R5bGVTaGVl
dDo6VXNlclN0eWxlU2hlZXQoV2ViQ29yZTo6VXNlclN0eWxlU2hlZXQgdXNlclN0eWxlU2hlZXQs
IEFQSTo6VXNlckNvbnRlbnRXb3JsZCYgd29ybGQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcAppbmRleCA4YzIxYzI0
Li45MTZkZDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWV3
R2VzdHVyZUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKQEAgLTIzMiw4ICsyMzIsMTAgQEAgU3RyaW5nIFZp
ZXdHZXN0dXJlQ29udHJvbGxlcjo6U25hcHNob3RSZW1vdmFsVHJhY2tlcjo6ZXZlbnRzRGVzY3Jp
cHRpb24oRXZlbnRzIGUKIAogICAgIGlmIChldmVudCAmIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6
U25hcHNob3RSZW1vdmFsVHJhY2tlcjo6U2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbikKICAgICAg
ICAgZGVzY3JpcHRpb24uYXBwZW5kKCJTY3JvbGxQb3NpdGlvblJlc3RvcmF0aW9uICIpOwotICAg
IAotICAgIHJldHVybiBkZXNjcmlwdGlvbi50b1N0cmluZygpOworCisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gZGVzY3JpcHRpb24udG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJCYWNrRm9yd2FyZExpc3QuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQmFja0Zv
cndhcmRMaXN0LmNwcAppbmRleCA2MDA2YTAyLi4xMjhmNTY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAKQEAgLTQ5Myw3ICs0OTMsOSBAQCBj
b25zdCBjaGFyKiBXZWJCYWNrRm9yd2FyZExpc3Q6OmxvZ2dpbmdTdHJpbmcoKQogICAgICAgICBi
dWlsZGVyLmFwcGVuZChtX2VudHJpZXNbaV0tPmxvZ2dpbmdTdHJpbmcoKSk7CiAgICAgfQogCi0g
ICAgcmV0dXJuIGRlYnVnU3RyaW5nKCJcbiIsIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gZGVidWdT
dHJpbmcoIlxuIiwgKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KICNlbmRpZiAvLyAhTE9HX0RJ
U0FCTEVECiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRl
eCA3YzAwMGFiLi5lMDNlMGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwCkBAIC03MTAsNyArNzEwLDEwIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmRpZFJl
Y2VpdmVJbnZhbGlkTWVzc2FnZShjb25zdCBJUEM6OlN0cmluZ1JlZmVyZW5jZSYgbWVzc2FnCiAg
ICAgbWVzc2FnZU5hbWVTdHJpbmdCdWlsZGVyLmFwcGVuZCgnLicpOwogICAgIG1lc3NhZ2VOYW1l
U3RyaW5nQnVpbGRlci5hcHBlbmQobWVzc2FnZU5hbWUuZGF0YSgpLCBtZXNzYWdlTmFtZS5zaXpl
KCkpOwogCi0gICAgc19pbnZhbGlkTWVzc2FnZUNhbGxiYWNrKHRvQVBJKEFQSTo6U3RyaW5nOjpj
cmVhdGUobWVzc2FnZU5hbWVTdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpLnB0cigpKSk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gbWVzc2FnZU5hbWVTdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgIHNfaW52YWxpZE1lc3NhZ2VDYWxsYmFjayh0b0FQSShBUEk6OlN0cmluZzo6Y3JlYXRl
KCpzdHJpbmcpLnB0cigpKSk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lk
IFdlYlByb2Nlc3NQb29sOjpwcm9jZXNzRGlkQ2FjaGVQYWdlKFdlYlByb2Nlc3NQcm94eSogcHJv
Y2VzcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4
IDQxNTZkODMuLmVmMDlkYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcApAQCAtMTcwLDcgKzE3MCwxMCBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Z2V0
TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE9wdAog
ICAgICAgICAgICAgICAgIGxhbmd1YWdlU3RyaW5nLmFwcGVuZCgnLCcpOwogICAgICAgICAgICAg
bGFuZ3VhZ2VTdHJpbmcuYXBwZW5kKG92ZXJyaWRlTGFuZ3VhZ2VzW2ldKTsKICAgICAgICAgfQot
ICAgICAgICBsYXVuY2hPcHRpb25zLmV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmFkZChBU0NJSUxp
dGVyYWwoIk92ZXJyaWRlTGFuZ3VhZ2VzIiksIGxhbmd1YWdlU3RyaW5nLnRvU3RyaW5nKCkpOwor
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBsYW5ndWFnZVN0cmluZy50b1N0cmluZygpKQorICAg
ICAgICAgICAgbGF1bmNoT3B0aW9ucy5leHRyYUluaXRpYWxpemF0aW9uRGF0YS5hZGQoQVNDSUlM
aXRlcmFsKCJPdmVycmlkZUxhbmd1YWdlcyIpLCAqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBsYXVuY2hPcHRpb25zLm5vblZhbGlkSW5q
ZWN0ZWRDb2RlQWxsb3dlZCA9IHNob3VsZEFsbG93Tm9uVmFsaWRJbmplY3RlZENvZGUoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUuY3BwCmluZGV4IDdmYTg5MTAuLjVkOWI3NjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmNwcApAQCAtMjI3LDcgKzIyNywxMCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6cmVtb3ZlRGF0YVJlY29yZHMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPgogICAgICAg
ICAgICAgYXBwZW5kV2l0aERlbGltaXRlcihkb21haW5zVG9SZW1vdmVEYXRhUmVjb3Jkc0ZvckJ1
aWxkZXIsIGRvbWFpbiwgaXNGaXJzdEl0ZW0pOwogICAgICAgICAgICAgaXNGaXJzdEl0ZW0gPSBm
YWxzZTsKICAgICAgICAgfQotICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEZWJ1ZywgIkFib3V0IHRvIHJlbW92ZSBkYXRhIHJlY29yZHMgZm9yICV7cHVibGlj
fXMuIiwgZG9tYWluc1RvUmVtb3ZlRGF0YVJlY29yZHNGb3JCdWlsZGVyLnRvU3RyaW5nKCkudXRm
OCgpLmRhdGEoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGRvbWFpbnNUb1JlbW92ZURh
dGFSZWNvcmRzRm9yQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgUkVMRUFTRV9MT0df
SU5GTyhSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWcsICJBYm91dCB0byByZW1vdmUgZGF0YSBy
ZWNvcmRzIGZvciAle3B1YmxpY31zLiIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogI2VuZGlmCiAKQEAgLTEwNDQsNyAr
MTA0NywxMCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6dXBkYXRlQ29v
a2llUGFydGl0aW9uaW5nKENvbXBsZXRpb25IYW5kbGVyPAogICAgICAgICAgICAgICAgIGFwcGVu
ZFdpdGhEZWxpbWl0ZXIoZG9tYWluc1RvUGFydGl0aW9uQnVpbGRlciwgZG9tYWluLCBpc0ZpcnN0
RG9tYWluKTsKICAgICAgICAgICAgICAgICBpc0ZpcnN0RG9tYWluID0gZmFsc2U7CiAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEZWJ1ZywgIkFib3V0IHRvIHBhcnRpdGlvbiBjb29raWVzIGluIHRoaXJkLXBhcnR5IGNvbnRl
eHRzIGZvciAle3B1YmxpY31zLiIsIGRvbWFpbnNUb1BhcnRpdGlvbkJ1aWxkZXIudG9TdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGRvbWFpbnNU
b1BhcnRpdGlvbkJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0xP
R19JTkZPKFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1ZywgIkFib3V0IHRvIHBhcnRpdGlvbiBj
b29raWVzIGluIHRoaXJkLXBhcnR5IGNvbnRleHRzIGZvciAle3B1YmxpY31zLiIsIHN0cmluZy0+
dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0go
KTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICghZG9tYWluc1RvQmxvY2suaXNFbXB0eSgpKSB7
CkBAIC0xMDU0LDcgKzEwNjAsMTAgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OnVwZGF0ZUNvb2tpZVBhcnRpdGlvbmluZyhDb21wbGV0aW9uSGFuZGxlcjwKICAgICAgICAg
ICAgICAgICBhcHBlbmRXaXRoRGVsaW1pdGVyKGRvbWFpbnNUb0Jsb2NrQnVpbGRlciwgZG9tYWlu
LCBpc0ZpcnN0RG9tYWluKTsKICAgICAgICAgICAgICAgICBpc0ZpcnN0RG9tYWluID0gZmFsc2U7
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEZWJ1ZywgIkFib3V0IHRvIGJsb2NrIGNvb2tpZXMgaW4gdGhpcmQtcGFydHkg
Y29udGV4dHMgZm9yICV7cHVibGljfXMuIiwgZG9tYWluc1RvQmxvY2tCdWlsZGVyLnRvU3RyaW5n
KCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBkb21haW5z
VG9CbG9ja0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19J
TkZPKFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1ZywgIkFib3V0IHRvIGJsb2NrIGNvb2tpZXMg
aW4gdGhpcmQtcGFydHkgY29udGV4dHMgZm9yICV7cHVibGljfXMuIiwgc3RyaW5nLT51dGY4KCku
ZGF0YSgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAg
ICAgICB9CiAKICAgICAgICAgaWYgKCFkb21haW5zVG9OZWl0aGVyUGFydGl0aW9uTm9yQmxvY2su
aXNFbXB0eSgpKSB7CkBAIC0xMDY0LDcgKzEwNzMsMTAgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU6OnVwZGF0ZUNvb2tpZVBhcnRpdGlvbmluZyhDb21wbGV0aW9uSGFuZGxl
cjwKICAgICAgICAgICAgICAgICBhcHBlbmRXaXRoRGVsaW1pdGVyKGRvbWFpbnNUb05laXRoZXJQ
YXJ0aXRpb25Ob3JCbG9ja0J1aWxkZXIsIGRvbWFpbiwgaXNGaXJzdERvbWFpbik7CiAgICAgICAg
ICAgICAgICAgaXNGaXJzdERvbWFpbiA9IGZhbHNlOwogICAgICAgICAgICAgfQotICAgICAgICAg
ICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWcsICJBYm91dCB0
byBuZWl0aGVyIHBhcnRpdGlvbiBub3IgYmxvY2sgY29va2llcyBpbiB0aGlyZC1wYXJ0eSBjb250
ZXh0cyBmb3IgJXtwdWJsaWN9cy4iLCBkb21haW5zVG9OZWl0aGVyUGFydGl0aW9uTm9yQmxvY2tC
dWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBkb21haW5zVG9OZWl0aGVyUGFydGl0aW9uTm9yQmxvY2tCdWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGVidWcsICJBYm91dCB0byBuZWl0aGVyIHBhcnRpdGlvbiBub3IgYmxvY2sgY29va2llcyBp
biB0aGlyZC1wYXJ0eSBjb250ZXh0cyBmb3IgJXtwdWJsaWN9cy4iLCBzdHJpbmctPnV0ZjgoKS5k
YXRhKCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAg
ICAgIH0KICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeS5jcHAKaW5kZXggYmI3
NDQwYy4uNTIwYWI3NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnkuY3BwCkBAIC0xNzksMjIg
KzE3OSwyMyBAQCBzdGF0aWMgdm9pZCBzdWJtaXRUb3BMaXN0KHVuc2lnbmVkIG51bWJlck9mUmVz
b3VyY2VzRnJvbVRoZVRvcCwgY29uc3QgVmVjdG9yPFByZQogICAgIFN0cmluZ0J1aWxkZXIgcHJl
YW1ibGVCdWlsZGVyOwogICAgIHByZWFtYmxlQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJ0b3AiKTsK
ICAgICBwcmVhbWJsZUJ1aWxkZXIuYXBwZW5kTnVtYmVyKG51bWJlck9mUmVzb3VyY2VzRnJvbVRo
ZVRvcCk7Ci0gICAgU3RyaW5nIGRlc2NyaXB0aW9uUHJlYW1ibGUgPSBwcmVhbWJsZUJ1aWxkZXIu
dG9TdHJpbmcoKTsKLSAgICAKLSAgICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3RpY01lc3NhZ2VX
aXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVs
ZW1ldHJ5S2V5KCksIGRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiUHJldmFsZW50UmVzb3VyY2VzV2l0
aFVzZXJJbnRlcmFjdGlvbiIsCi0gICAgICAgIHRvcFByZXZhbGVudFJlc291cmNlc1dpdGhVc2Vy
SW50ZXJhY3Rpb24sIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2Ft
cGxlOjpObyk7Ci0gICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVl
KERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtl
eSgpLCBkZXNjcmlwdGlvblByZWFtYmxlICsgIlN1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbnMi
LAotICAgICAgICB0b3BTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5zLCBzaWduaWZpY2FudEZp
Z3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOwotICAgIHdlYlBhZ2VQcm94
eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJl
c291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgZGVzY3JpcHRpb25QcmVhbWJsZSAr
ICJTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW5zIiwKLSAgICAgICAgdG9wU3VicmVzb3Vy
Y2VVbmRlclRvcEZyYW1lT3JpZ2lucywgc2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9nZ2VkVmFsdWVz
LCBTaG91bGRTYW1wbGU6Ok5vKTsKLSAgICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3RpY01lc3Nh
Z2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNz
VGVsZW1ldHJ5S2V5KCksIGRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiU3VicmVzb3VyY2VVbmlxdWVS
ZWRpcmVjdHNUbyIsCi0gICAgICAgIHRvcFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8sIHNp
Z25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2FtcGxlOjpObyk7Ci0gICAg
d2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dn
aW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgpLCBkZXNjcmlwdGlv
blByZWFtYmxlICsgIk51bWJlck9mVGltZXNEYXRhUmVjb3Jkc1JlbW92ZWQiLAotICAgICAgICB0
b3BOdW1iZXJPZlRpbWVzRGF0YVJlY29yZHNSZW1vdmVkLCBzaWduaWZpY2FudEZpZ3VyZXNGb3JM
b2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOwotICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFn
bm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlTG9h
ZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgZGVzY3JpcHRpb25QcmVhbWJsZSArICJOdW1iZXJP
ZlRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1VzZXJJbnRlcmFjdGlvbiIsCi0gICAgICAg
IHRvcE51bWJlck9mVGltZXNBY2Nlc3NlZEFzRmlyc3RQYXJ0eUR1ZVRvVXNlckludGVyYWN0aW9u
LCBzaWduaWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOwot
ICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgZGVzY3Jp
cHRpb25QcmVhbWJsZSArICJOdW1iZXJPZlRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1N0
b3JhZ2VBY2Nlc3NBUEkiLAotICAgICAgICB0b3BOdW1iZXJPZlRpbWVzQWNjZXNzZWRBc0ZpcnN0
UGFydHlEdWVUb1N0b3JhZ2VBY2Nlc3NBUEksIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZh
bHVlcywgU2hvdWxkU2FtcGxlOjpObyk7CisgICAgaWYgKGF1dG8gZGVzY3JpcHRpb25QcmVhbWJs
ZSA9IHByZWFtYmxlQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIHdlYlBhZ2VQcm94eS5s
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291
cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgKmRlc2NyaXB0aW9uUHJlYW1ibGUgKyAi
UHJldmFsZW50UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbiIsCisgICAgICAgICAgICB0b3BQ
cmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uLCBzaWduaWZpY2FudEZpZ3VyZXNG
b3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOworICAgICAgICB3ZWJQYWdlUHJveHku
bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNv
dXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCksICpkZXNjcmlwdGlvblByZWFtYmxlICsg
IlN1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbnMiLAorICAgICAgICAgICAgdG9wU3ViZnJhbWVV
bmRlclRvcEZyYW1lT3JpZ2lucywgc2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9nZ2VkVmFsdWVzLCBT
aG91bGRTYW1wbGU6Ok5vKTsKKyAgICAgICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNz
YWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1RlbGVtZXRyeUtleSgpLCAqZGVzY3JpcHRpb25QcmVhbWJsZSArICJTdWJyZXNvdXJjZVVuZGVy
VG9wRnJhbWVPcmlnaW5zIiwKKyAgICAgICAgICAgIHRvcFN1YnJlc291cmNlVW5kZXJUb3BGcmFt
ZU9yaWdpbnMsIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2FtcGxl
OjpObyk7CisgICAgICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1
ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlL
ZXkoKSwgKmRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNU
byIsCisgICAgICAgICAgICB0b3BTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvLCBzaWduaWZp
Y2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOworICAgICAgICB3
ZWJQYWdlUHJveHkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCksICpkZXNjcmlwdGlv
blByZWFtYmxlICsgIk51bWJlck9mVGltZXNEYXRhUmVjb3Jkc1JlbW92ZWQiLAorICAgICAgICAg
ICAgdG9wTnVtYmVyT2ZUaW1lc0RhdGFSZWNvcmRzUmVtb3ZlZCwgc2lnbmlmaWNhbnRGaWd1cmVz
Rm9yTG9nZ2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICAgICAgd2ViUGFnZVByb3h5
LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVz
b3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgpLCAqZGVzY3JpcHRpb25QcmVhbWJsZSAr
ICJOdW1iZXJPZlRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1VzZXJJbnRlcmFjdGlvbiIs
CisgICAgICAgICAgICB0b3BOdW1iZXJPZlRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1Vz
ZXJJbnRlcmFjdGlvbiwgc2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9nZ2VkVmFsdWVzLCBTaG91bGRT
YW1wbGU6Ok5vKTsKKyAgICAgICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0
aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVt
ZXRyeUtleSgpLCAqZGVzY3JpcHRpb25QcmVhbWJsZSArICJOdW1iZXJPZlRpbWVzQWNjZXNzZWRB
c0ZpcnN0UGFydHlEdWVUb1N0b3JhZ2VBY2Nlc3NBUEkiLAorICAgICAgICAgICAgdG9wTnVtYmVy
T2ZUaW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9TdG9yYWdlQWNjZXNzQVBJLCBzaWduaWZp
Y2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOworICAgIH0gZWxz
ZQorICAgICAgICBDUkFTSCgpOwogfQogICAgIAogc3RhdGljIHZvaWQgc3VibWl0VG9wTGlzdHMo
Y29uc3QgVmVjdG9yPFByZXZhbGVudFJlc291cmNlVGVsZW1ldHJ5PiYgc29ydGVkUHJldmFsZW50
UmVzb3VyY2VzLCBjb25zdCBWZWN0b3I8UHJldmFsZW50UmVzb3VyY2VUZWxlbWV0cnk+JiBzb3J0
ZWRQcmV2YWxlbnRSZXNvdXJjZXNXaXRob3V0VXNlckludGVyYWN0aW9uLCBXZWJQYWdlUHJveHkm
IHdlYlBhZ2VQcm94eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcAppbmRleCAw
YmNjZmFmLi5hZGE1ZjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwCkBA
IC0xMzgsNyArMTM4LDkgQEAgc3RhdGljIFN0cmluZyBjYXBpdGFsaXplUkZDODIySGVhZGVyRmll
bGROYW1lKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICAgICAgZWxzZQogICAgICAgICAgICAgY2Fw
aXRhbGl6ZUNoYXJhY3RlciA9IGZhbHNlOwogICAgIH0KLSAgICByZXR1cm4gcmVzdWx0LnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBIVFRQSGVhZGVyTWFw
IHBhcnNlUkZDODIySGVhZGVyRmllbGRzKGNvbnN0IGNoYXIqIGJ5dGVzLCB1bnNpZ25lZCBsZW5n
dGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5W
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CmluZGV4IGE3ZmNhY2UuLjc5OWFkOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC0yMTIsNyArMjEyLDkgQEAgc3RhdGljIFN0cmlu
ZyBidWlsZEhUVFBIZWFkZXJzKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBsb25n
IGxvbmcmIGV4cGUKICAgICBpZiAoIWNvbnRlbnRFbmNvZGluZy5pc051bGwoKSAmJiBjb250ZW50
RW5jb2RpbmcgIT0gImlkZW50aXR5IikKICAgICAgICAgZXhwZWN0ZWRDb250ZW50TGVuZ3RoID0g
LTE7CiAKLSAgICByZXR1cm4gaGVhZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gaGVhZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIHN0YXRpYyB1aW50MzJfdCBsYXN0TW9kaWZpZWREYXRlTVMoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJGcmFtZS5jcHAKaW5kZXggMTZhYmU1NS4uNDg5YzhjZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAtMzUxLDcgKzM1MSw5IEBAIFN0
cmluZyBXZWJGcmFtZTo6Y29udGVudHNBc1N0cmluZygpIGNvbnN0CiAgICAgICAgICAgICBidWls
ZGVyLmFwcGVuZCh3ZWJGcmFtZS0+Y29udGVudHNBc1N0cmluZygpKTsKICAgICAgICAgfQogICAg
ICAgICAvLyBGSVhNRTogSXQgbWF5IG1ha2Ugc2Vuc2UgdG8gdXNlIHRvU3RyaW5nUHJlc2VydmVD
YXBhY2l0eSgpIGhlcmUuCi0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
ICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIERvY3VtZW50KiBk
b2N1bWVudCA9IG1fY29yZUZyYW1lLT5kb2N1bWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCmluZGV4IDA3ZDQ4Y2QuLmQ0MTMxNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxOC0wNC0yNiAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgU3RyaW5nQnVpbGRlciBpcyBmYWxsaWJsZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MDQ4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVhY2ggU3RyaW5nQnVpbGRlciB0
aGF0IGl0IGlzIGZhbGxpYmxlCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRh
dGlvbi5tbToKKyAgICAgICAgKHJlZ0V4cEZvckxhYmVscyk6CisKIDIwMTgtMDQtMjUgIEppZXdl
biBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgYWNjZXNzIHRv
IGtleWNoYWluIGZyb20gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubW0gYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbQppbmRl
eCAxOTE4MzYzLi4yYjI3YTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbQpAQCAtMzk0LDcgKzM5NCwxMCBA
QCBzdGF0aWMgUmVndWxhckV4cHJlc3Npb24qIHJlZ0V4cEZvckxhYmVscyhOU0FycmF5ICpsYWJl
bHMpCiAgICAgICAgICAgICAgICAgcGF0dGVybi5hcHBlbmRMaXRlcmFsKCJcXGIiKTsKICAgICAg
ICAgfQogICAgICAgICBwYXR0ZXJuLmFwcGVuZCgnKScpOwotICAgICAgICByZXN1bHQgPSBuZXcg
UmVndWxhckV4cHJlc3Npb24ocGF0dGVybi50b1N0cmluZygpLCBKU0M6OllhcnI6OlRleHRDYXNl
SW5zZW5zaXRpdmUpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBwYXR0ZXJuLnRvU3RyaW5n
KCkpCisgICAgICAgICAgICByZXN1bHQgPSBuZXcgUmVndWxhckV4cHJlc3Npb24oKnN0cmluZywg
SlNDOjpZYXJyOjpUZXh0Q2FzZUluc2Vuc2l0aXZlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgQ1JBU0goKTsKICAgICB9CiAKICAgICAvLyBhZGQgcmVnZXhwIHRvIHRoZSBjYWNoZSwgbWFr
aW5nIHN1cmUgaXQgaXMgYXQgdGhlIGZyb250IGZvciBMUlUgb3JkZXJpbmcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0FjY2Vzc2libGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL0FjY2Vzc2libGVCYXNlLmNwcAppbmRleCA3ZTNiMTgzLi5hODFlMzM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nlc3NpYmxlQmFzZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQWNjZXNzaWJsZUJhc2UuY3BwCkBAIC02MDksNyAr
NjA5LDEwIEBAIEhSRVNVTFQgQWNjZXNzaWJsZUJhc2U6OmdldF9hY2NLZXlib2FyZFNob3J0Y3V0
KFZBUklBTlQgdkNoaWxkLCBfX2RlcmVmX29wdF9vdXQKICAgICAgICAgICAgIGFjY2Vzc0tleU1v
ZGlmaWVyc0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiU2hpZnQrIik7CiAgICAgICAgIGlmIChtb2Rp
ZmllcnMuY29udGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6Ok1ldGFLZXkpKQogICAgICAg
ICAgICAgYWNjZXNzS2V5TW9kaWZpZXJzQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJXaW4rIik7Ci0g
ICAgICAgIGFjY2Vzc0tleU1vZGlmaWVycyA9IGFjY2Vzc0tleU1vZGlmaWVyc0J1aWxkZXIudG9T
dHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYWNjZXNzS2V5TW9kaWZpZXJzQnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgYWNjZXNzS2V5TW9kaWZpZXJzID0gKnN0cmlu
ZzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgKnNob3J0
Y3V0ID0gQlN0cmluZyhTdHJpbmcoYWNjZXNzS2V5TW9kaWZpZXJzICsgYWNjZXNzS2V5KSkucmVs
ZWFzZSgpOwogICAgIHJldHVybiBTX09LOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vUGx1Z2lucy9QbHVnaW5TdHJlYW0uY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
UGx1Z2lucy9QbHVnaW5TdHJlYW0uY3BwCmluZGV4IGYyNTY2NGQuLmM5OTgwNWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1BsdWdpbnMvUGx1Z2luU3RyZWFtLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9QbHVnaW5zL1BsdWdpblN0cmVhbS5jcHAKQEAgLTE2
Nyw3ICsxNjcsMTAgQEAgdm9pZCBQbHVnaW5TdHJlYW06OnN0YXJ0U3RyZWFtKCkKICAgICAgICAg
ICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwogICAgICAgICB9CiAKLSAgICAgICAgbV9o
ZWFkZXJzID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpLnV0ZjgoKTsKKyAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgbV9oZWFk
ZXJzID0gc3RyaW5nLT51dGY4KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7
CiAKICAgICAgICAgLy8gSWYgdGhlIGNvbnRlbnQgaXMgZW5jb2RlZCAobW9zdCBsaWtlbHkgY29t
cHJlc3NlZCksIHRoZW4gZG9uJ3Qgc2VuZCBpdHMgbGVuZ3RoIHRvIHRoZSBwbHVnaW4sCiAgICAg
ICAgIC8vIHdoaWNoIGlzIG9ubHkgaW50ZXJlc3RlZCBpbiB0aGUgZGVjb2RlZCBsZW5ndGgsIG5v
dCB5ZXQga25vd24gYXQgdGhlIG1vbWVudC4KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmNTc2MWFhLi40MjA5NWIwIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODEgQEAKKzIwMTgt
MDQtMjYgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgorCisgICAgICAgIFN0cmlu
Z0J1aWxkZXIgaXMgZmFsbGlibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4NTA0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFN0cmluZ0J1aWxkZXIgY2FuIGZhaWwgd2hlbiBhbGxvY2F0aW5nIG1lbW9y
eS4gU3RyaW5nQnVpbGRlciBpcworICAgICAgICBtb3N0bHkgdXNlZCB3aXRoIHVzZXIgaW5wdXQs
IHdoaWNoIG9mdGVuIG1lYW5zIHRoYXQganVzdCBjcmFzaGluZworICAgICAgICBpc24ndCB0aGUg
cmlnaHQgb3V0Y29tZS4gT3VyIGZ1enplcnMgb2Z0ZW4gZW5jb3VudGVyIHN1Y2ggdGhpbmdzCisg
ICAgICAgIGZvciBKYXZhU2NyaXB0Q29yZSwgYW5kIHNvIGZhciB3ZSd2ZSBhcHBsaWVkIHBvaW50
IHNvbHV0aW9ucy4gTm8KKyAgICAgICAgbW9yZSEKKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZXhw
ZWN0QnVpbGRlckNvbnRlbnQpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZXhwZWN0RW1wdHkp
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lv
bnMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6Y3JlYXRlQ29tbWFuZCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0Yp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Mb2dnaW5nLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OkxvZ2dpbmdUZXN0OjpvdXRwdXQpOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkxvZ09ic2VydmVy
Ojpsb2cpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9UZXh0Q29kZWMu
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6dGVzdERlY29kZSk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9XVEZTdHJpbmdVdGlsaXRpZXMuaDoKKyAgICAgICAgKHV0ZjE2U3RyaW5nKToK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZS5jcHA6CisgICAgICAgIChXVFI6OmR1bXBQYXRoKToKKyAgICAgICAgKFdUUjo6cmFuZ2VU
b1N0cik6CisgICAgICAgIChXVFI6OnN0eWxlRGVjVG9TdHIpOgorICAgICAgICAoV1RSOjpzZWN1
cml0eU9yaWdpblRvU3RyKToKKyAgICAgICAgKFdUUjo6ZnJhbWVUb1N0cik6CisgICAgICAgIChX
VFI6OmR1bXBMb2FkRXZlbnQpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmR1
bXApOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVUaXRsZUZv
ckZyYW1lKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUGVyZm9ybUNs
aWVudFJlZGlyZWN0Rm9yRnJhbWUpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6
OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRC
dW5kbGVQYWdlOjp3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZSk6CisgICAgICAgIChXVFI6OkluamVj
dGVkQnVuZGxlUGFnZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2UpOgorICAgICAgICAo
V1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZpbmlzaExvYWRGb3JSZXNvdXJjZSk6CisgICAg
ICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmFpbExvYWRGb3JSZXNvdXJjZSk6Cisg
ICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkQ2FjaGVSZXNwb25zZSk6Cisg
ICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbik6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxBZGRN
ZXNzYWdlVG9Db25zb2xlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxs
U2V0U3RhdHVzYmFyVGV4dCk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6d2ls
bFJ1bkphdmFTY3JpcHRBbGVydCk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6
d2lsbFJ1bkphdmFTY3JpcHRDb25maXJtKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQ
YWdlOjp3aWxsUnVuSmF2YVNjcmlwdFByb21wdCk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVu
ZGxlUGFnZTo6ZGlkUmVhY2hBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEpOgorICAgICAgICAo
V1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEV4Y2VlZERhdGFiYXNlUXVvdGEpOgorICAgICAg
ICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEJlZ2luRWRpdGluZyk6CisgICAgICAg
IChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkRW5kRWRpdGluZyk6CisgICAgICAgIChX
VFI6OkluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkSW5zZXJ0Tm9kZSk6CisgICAgICAgIChXVFI6
OkluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkSW5zZXJ0VGV4dCk6CisgICAgICAgIChXVFI6Oklu
amVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkRGVsZXRlUmFuZ2UpOgorICAgICAgICAoV1RSOjpJbmpl
Y3RlZEJ1bmRsZVBhZ2U6OnNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UpOgorICAgICAgICAoV1RS
OjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEFwcGx5U3R5bGUpOgorICAgICAgICAoV1RSOjpJ
bmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEJlZ2luRWRpdGluZyk6CisgICAgICAgIChXVFI6OkluamVj
dGVkQnVuZGxlUGFnZTo6ZGlkRW5kRWRpdGluZyk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVu
ZGxlUGFnZTo6ZGlkQ2hhbmdlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpk
aWRDaGFuZ2VTZWxlY3Rpb24pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnN0YXRpc3Rp
Y3NEaWRSdW5UZWxlbWV0cnlDYWxsYmFjayk6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OmNh
bGxEaWRSZWNlaXZlQWxsU3RvcmFnZUFjY2Vzc0VudHJpZXNDYWxsYmFjayk6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RD
b250cm9sbGVyOjpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZSk6CisgICAg
ICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dFRvVVJMKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlkRmFpbCk6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAg
IChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkdW1wUmVzdWx0cyk6CisKIDIwMTgtMDQtMjUgIEpvbmF0
aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIy
MzA5OTgpOiBCb3Qgd2F0Y2hlcidzIGRhc2hib2FyZCBkb2Vzbid0IGRpc3BsYXkgbnVtYmVyIG9m
IEFQSSB0ZXN0IGZhaWx1cmVzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9Dcm9zc1RocmVhZFRhc2suY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
Q3Jvc3NUaHJlYWRUYXNrLmNwcAppbmRleCA1MmMwYmNkLi5mNjFmYTMyIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZFRhc2suY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkVGFzay5jcHAKQEAgLTg4LDcg
Kzg4LDkgQEAgc3RydWN0IExpZmV0aW1lTG9nZ2VyIHsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
Ii0iKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nOjpudW1iZXIobW92ZUdlbmVyYXRp
b24pKTsKIAotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAo
YXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBjb25zdCBjaGFyJiBuYW1lIHsg
KiI8ZGVmYXVsdD4iIH07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9TdHJpbmdCdWlsZGVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmlu
Z0J1aWxkZXIuY3BwCmluZGV4IDZiOGUwNWMuLjc4Njc1MDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMy0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTM5LDE2ICszOSwxNiBAQCBz
dGF0aWMgdm9pZCBleHBlY3RCdWlsZGVyQ29udGVudChjb25zdCBTdHJpbmcmIGV4cGVjdGVkLCBj
b25zdCBTdHJpbmdCdWlsZGVyJiBidQogICAgIC8vIE5vdCB1c2luZyBidWlsZGVyLnRvU3RyaW5n
KCkgb3IgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBiZWNhdXNlIHRoZXkgYWxs
CiAgICAgLy8gY2hhbmdlIGludGVybmFsIHN0YXRlIG9mIGJ1aWxkZXIuCiAgICAgaWYgKGJ1aWxk
ZXIuaXM4Qml0KCkpCi0gICAgICAgIEVYUEVDVF9FUShleHBlY3RlZCwgU3RyaW5nKGJ1aWxkZXIu
Y2hhcmFjdGVyczgoKSwgYnVpbGRlci5sZW5ndGgoKSkpOworICAgICAgICBFWFBFQ1RfRVEoZXhw
ZWN0ZWQsIFN0cmluZyhidWlsZGVyLmNoYXJhY3RlcnM4KCkudmFsdWUoKSwgYnVpbGRlci5sZW5n
dGgoKSkpOwogICAgIGVsc2UKLSAgICAgICAgRVhQRUNUX0VRKGV4cGVjdGVkLCBTdHJpbmcoYnVp
bGRlci5jaGFyYWN0ZXJzMTYoKSwgYnVpbGRlci5sZW5ndGgoKSkpOworICAgICAgICBFWFBFQ1Rf
RVEoZXhwZWN0ZWQsIFN0cmluZyhidWlsZGVyLmNoYXJhY3RlcnMxNigpLnZhbHVlKCksIGJ1aWxk
ZXIubGVuZ3RoKCkpKTsKIH0KIAogdm9pZCBleHBlY3RFbXB0eShjb25zdCBTdHJpbmdCdWlsZGVy
JiBidWlsZGVyKQogewogICAgIEVYUEVDVF9FUSgwVSwgYnVpbGRlci5sZW5ndGgoKSk7CiAgICAg
RVhQRUNUX1RSVUUoYnVpbGRlci5pc0VtcHR5KCkpOwotICAgIEVYUEVDVF9FUSgwLCBidWlsZGVy
LmNoYXJhY3RlcnM4KCkpOworICAgIEVYUEVDVF9FUSgwLCBidWlsZGVyLmNoYXJhY3RlcnM4KCku
dmFsdWUoKSk7CiB9CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIERlZmF1bHRDb25zdHJ1Y3Rv
cikKQEAgLTcxLDI0ICs3MSwyNCBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBBcHBlbmQpCiAg
ICAgYnVpbGRlci5hcHBlbmQoJyMnKTsKICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CiAKLSAgICBidWlsZGVyLnRvU3RyaW5nKCk7IC8vIFRl
c3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KKyAgICBidWlsZGVyLnRvU3RyaW5nKCkudmFsdWUoKTsg
Ly8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjE7
CiAgICAgYnVpbGRlci5hcHBlbmQoIiIsIDApOwogICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKLSAgICBidWlsZGVyMS5hcHBlbmQoYnVpbGRl
ci5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmxlbmd0aCgpKTsKKyAgICBidWlsZGVyMS5hcHBlbmQo
YnVpbGRlci5jaGFyYWN0ZXJzOCgpLnZhbHVlKCksIGJ1aWxkZXIubGVuZ3RoKCkpOwogICAgIGJ1
aWxkZXIxLmFwcGVuZCgiWFlaIik7Ci0gICAgYnVpbGRlci5hcHBlbmQoYnVpbGRlcjEuY2hhcmFj
dGVyczgoKSwgYnVpbGRlcjEubGVuZ3RoKCkpOworICAgIGJ1aWxkZXIuYXBwZW5kKGJ1aWxkZXIx
LmNoYXJhY3RlcnM4KCkudmFsdWUoKSwgYnVpbGRlcjEubGVuZ3RoKCkpOwogICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMwMTIzNDU2Nzg5YWJjZGVmZyNYWVoiLCBi
dWlsZGVyKTsKIAogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjI7CiAgICAgYnVpbGRlcjIucmVz
ZXJ2ZUNhcGFjaXR5KDEwMCk7CiAgICAgYnVpbGRlcjIuYXBwZW5kKCJ4eXoiKTsKLSAgICBjb25z
dCBMQ2hhciogY2hhcmFjdGVycyA9IGJ1aWxkZXIyLmNoYXJhY3RlcnM4KCk7CisgICAgY29uc3Qg
TENoYXIqIGNoYXJhY3RlcnMgPSBidWlsZGVyMi5jaGFyYWN0ZXJzOCgpLnZhbHVlKCk7CiAgICAg
YnVpbGRlcjIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7Ci0gICAgQVNTRVJUX0VRKGNoYXJhY3RlcnMs
IGJ1aWxkZXIyLmNoYXJhY3RlcnM4KCkpOwotICAgIGJ1aWxkZXIyLnRvU3RyaW5nUHJlc2VydmVD
YXBhY2l0eSgpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nIHdpdGggYnVmZmVyIHByZXNlcnZl
ZC4KKyAgICBBU1NFUlRfRVEoY2hhcmFjdGVycywgYnVpbGRlcjIuY2hhcmFjdGVyczgoKS52YWx1
ZSgpKTsKKyAgICBidWlsZGVyMi50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS52YWx1ZSgpOyAv
LyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nIHdpdGggYnVmZmVyIHByZXNlcnZlZC4KICAgICBidWls
ZGVyMi5hcHBlbmQoImFiY2QiKTsKLSAgICBBU1NFUlRfRVEoY2hhcmFjdGVycywgYnVpbGRlcjIu
Y2hhcmFjdGVyczgoKSk7CisgICAgQVNTRVJUX0VRKGNoYXJhY3RlcnMsIGJ1aWxkZXIyLmNoYXJh
Y3RlcnM4KCkudmFsdWUoKSk7CiAKICAgICAvLyBUZXN0IGFwcGVuZGluZyBVQ2hhcjMyIGNoYXJh
Y3RlcnMgdG8gU3RyaW5nQnVpbGRlci4KICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXJGb3JVQ2hh
cjMyQXBwZW5kOwpAQCAtMTA1LDkgKzEwNSw5IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRv
U3RyaW5nKQogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVu
ZCgiMDEyMzQ1Njc4OSIpOwotICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7
CisgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKS52YWx1ZSgpOwogICAgIEFT
U0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKLSAgICBBU1NFUlRfRVEoc3Ry
aW5nLmltcGwoKSwgYnVpbGRlci50b1N0cmluZygpLmltcGwoKSk7CisgICAgQVNTRVJUX0VRKHN0
cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmcoKS52YWx1ZSgpLmltcGwoKSk7CiAKICAgICAv
LyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2lu
YWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCiAgICAgYnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6Iik7CkBAIC0xMTUsMjAgKzExNSwyMCBAQCBURVNUKFN0cmluZ0J1aWxk
ZXJUZXN0LCBUb1N0cmluZykKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNo
b3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKSBpbiBjYXNl
IHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0
eSgyMDApOwotICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkudmFsdWUoKTsKICAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKICAgICBidWlsZGVyLmFw
cGVuZCgiQUJDIik7CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgb3JpZ2lu
YWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGNvbnRlbnQgb2Yg
dGhlIFN0cmluZ0J1aWxkZXIuCi0gICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nKCkudmFsdWUoKTsKICAg
ICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpB
QkMiKSwgc3RyaW5nMSk7CiAgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiIpOwotICAgIEFTU0VSVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBidWls
ZGVyLnRvU3RyaW5nKCkpOworICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nKCkudmFsdWUoKSk7CiAg
ICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
QUJDREVGIiksIHN0cmluZzEpOwogCiAgICAgLy8gUmVzaXppbmcgdGhlIFN0cmluZ0J1aWxkZXIg
c2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpLgotICAg
IHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgc3RyaW5nMSA9IGJ1aWxkZXIudG9T
dHJpbmcoKS52YWx1ZSgpOwogICAgIGJ1aWxkZXIucmVzaXplKDEwKTsKICAgICBidWlsZGVyLmFw
cGVuZCgiIyMjIik7CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOwpAQCAtMTM5LDExICsxMzksMTEgQEAgVEVT
VChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwogICAg
IHVuc2lnbmVkIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwotICAgIFN0cmluZyBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOworICAgIFN0cmluZyBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLnZhbHVlKCk7CiAgICAgQVNT
RVJUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwogICAgIEFTU0VSVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKLSAgICBBU1NFUlRfRVEoc3RyaW5nLmltcGwoKSwg
YnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS5pbXBsKCkpOwotICAgIEFTU0VSVF9F
UShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKKyAgICBBU1NF
UlRfRVEoc3RyaW5nLmltcGwoKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS52
YWx1ZSgpLmltcGwoKSk7CisgICAgQVNTRVJUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWls
ZGVyLmNoYXJhY3RlcnM4KCkudmFsdWUoKSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5n
QnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5n
UHJlc2VydmVDYXBhY2l0eSgpLgogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5eiIpOwpAQCAtMTUyLDI4ICsxNTIsMjggQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVz
dCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdC
dWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQ
cmVzZXJ2ZUNhcGFjaXR5KCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkgaXMgbm90IGNoYW5nZWQuCiAg
ICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIu
Y2FwYWNpdHkoKTsKLSAgICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0
eSgpOworICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkudmFs
dWUoKTsKICAgICBBU1NFUlRfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7Ci0gICAg
QVNTRVJUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwor
ICAgIEFTU0VSVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgp
LnZhbHVlKCkpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsKICAg
ICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoi
KSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9T
dHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGNvbnRlbnQgb2Yg
dGhlIFN0cmluZ0J1aWxkZXIuCiAgICAgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7Ci0g
ICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwor
ICAgIFN0cmluZyBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS52
YWx1ZSgpOwogICAgIEFTU0VSVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKLSAg
ICBBU1NFUlRfRVEoc3RyaW5nMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkp
OworICAgIEFTU0VSVF9FUShzdHJpbmcxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVy
czgoKS52YWx1ZSgpKTsKICAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CiAgICAgc3RyaW5nMS5hcHBlbmQoIkRF
RiIpOwotICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKKyAgICBB
U1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMi
KSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS52YWx1ZSgpKTsKICAgICBBU1NF
UlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYi
KSwgc3RyaW5nMSk7CiAKICAgICAvLyBSZXNpemluZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQg
bm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0
eSgpLgogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwotICAgIHN0cmluZzEgPSBi
dWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOworICAgIHN0cmluZzEgPSBidWlsZGVy
LnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLnZhbHVlKCk7CiAgICAgQVNTRVJUX0VRKGNhcGFj
aXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwotICAgIEFTU0VSVF9FUShzdHJpbmcuY2hhcmFjdGVy
czgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKKyAgICBBU1NFUlRfRVEoc3RyaW5nLmNoYXJh
Y3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKS52YWx1ZSgpKTsKICAgICBidWlsZGVyLnJl
c2l6ZSgxMCk7CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIpOwogICAgIEFTU0VSVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsK
QEAgLTE5MSwxMSArMTkxLDExIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFycmF5KQogewog
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4
OSIpOwotICAgIEVYUEVDVF9FUSgnMCcsIHN0YXRpY19jYXN0PGNoYXI+KGJ1aWxkZXJbMF0pKTsK
LSAgICBFWFBFQ1RfRVEoJzknLCBzdGF0aWNfY2FzdDxjaGFyPihidWlsZGVyWzldKSk7Ci0gICAg
YnVpbGRlci50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCi0gICAgRVhQ
RUNUX0VRKCcwJywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRlclswXSkpOwotICAgIEVYUEVDVF9F
USgnOScsIHN0YXRpY19jYXN0PGNoYXI+KGJ1aWxkZXJbOV0pKTsKKyAgICBFWFBFQ1RfRVEoJzAn
LCBzdGF0aWNfY2FzdDxjaGFyPihidWlsZGVyWzBdLnZhbHVlKCkpKTsKKyAgICBFWFBFQ1RfRVEo
JzknLCBzdGF0aWNfY2FzdDxjaGFyPihidWlsZGVyWzldLnZhbHVlKCkpKTsKKyAgICBidWlsZGVy
LnRvU3RyaW5nKCkudmFsdWUoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgorICAgIEVY
UEVDVF9FUSgnMCcsIHN0YXRpY19jYXN0PGNoYXI+KGJ1aWxkZXJbMF0udmFsdWUoKSkpOworICAg
IEVYUEVDVF9FUSgnOScsIHN0YXRpY19jYXN0PGNoYXI+KGJ1aWxkZXJbOV0udmFsdWUoKSkpOwog
fQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBSZXNpemUpCkBAIC0yMDksNyArMjA5LDcgQEAg
VEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgUmVzaXplKQogICAgIEVYUEVDVF9FUSg4VSwgYnVpbGRl
ci5sZW5ndGgoKSk7CiAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3IiwgYnVpbGRl
cik7CiAKLSAgICBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgYnVpbGRlci50b1N0cmluZygpLnZh
bHVlKCk7CiAgICAgYnVpbGRlci5yZXNpemUoNyk7CiAgICAgRVhQRUNUX0VRKDdVLCBidWlsZGVy
Lmxlbmd0aCgpKTsKICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NiIsIGJ1aWxkZXIp
OwpAQCAtMjQwLDEzICsyNDAsMTMgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRXF1YWwpCiAg
ICAgQVNTRVJUX1RSVUUoYnVpbGRlcjIgIT0gYnVpbGRlcjEpOwogICAgIEFTU0VSVF9UUlVFKFN0
cmluZygiMTIzIikgIT0gYnVpbGRlcjIpOwogICAgIEFTU0VSVF9UUlVFKGJ1aWxkZXIyICE9IFN0
cmluZygiMTIzIikpOwotICAgIGJ1aWxkZXIyLnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0ZXIgcmVp
ZnlTdHJpbmcoKS4KKyAgICBidWlsZGVyMi50b1N0cmluZygpLnZhbHVlKCk7IC8vIFRlc3QgYWZ0
ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBBU1NFUlRfVFJVRShidWlsZGVyMSAhPSBidWlsZGVyMik7
CiAKICAgICBidWlsZGVyMi5yZXNpemUoMyk7CiAgICAgQVNTRVJUX1RSVUUoYnVpbGRlcjEgPT0g
YnVpbGRlcjIpOwogCi0gICAgYnVpbGRlcjEudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlm
eVN0cmluZygpLgorICAgIGJ1aWxkZXIxLnRvU3RyaW5nKCkudmFsdWUoKTsgLy8gVGVzdCBhZnRl
ciByZWlmeVN0cmluZygpLgogICAgIEFTU0VSVF9UUlVFKGJ1aWxkZXIxID09IGJ1aWxkZXIyKTsK
IH0KIApAQCAtMjY1LDE0ICsyNjUsMTQgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9BdG9t
aWNTdHJpbmcpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBw
ZW5kKCIxMjMiKTsKLSAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0
b21pY1N0cmluZygpOworICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRv
QXRvbWljU3RyaW5nKCkudmFsdWUoKTsKICAgICBBU1NFUlRfRVEoU3RyaW5nKCIxMjMiKSwgYXRv
bWljU3RyaW5nKTsKIAogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDI1Nik7CiAgICAgQVNT
RVJUX1RSVUUoYnVpbGRlci5jYW5TaHJpbmsoKSk7CiAgICAgZm9yIChpbnQgaSA9IGJ1aWxkZXIu
bGVuZ3RoKCk7IGkgPCAxMjg7IGkrKykKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ3gnKTsKLSAg
ICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nMSA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKTsK
KyAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nMSA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmco
KS52YWx1ZSgpOwogICAgIEFTU0VSVF9FUSgxMjh1LCBhdG9taWNTdHJpbmcxLmxlbmd0aCgpKTsK
ICAgICBBU1NFUlRfRVEoJ3gnLCBhdG9taWNTdHJpbmcxWzEyN10pOwogCkBAIC0yODIsOCArMjgy
LDggQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9BdG9taWNTdHJpbmcpCiAgICAgQVNTRVJU
X0VRKDEyOHUsIGF0b21pY1N0cmluZzEubGVuZ3RoKCkpOwogCiAgICAgQVNTRVJUX0ZBTFNFKGJ1
aWxkZXIuY2FuU2hyaW5rKCkpOwotICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCk7Ci0gICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZzIgPSBidWlsZGVyLnRvQXRvbWljU3Ry
aW5nKCk7CisgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKS52YWx1ZSgpOwor
ICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcyID0gYnVpbGRlci50b0F0b21pY1N0cmluZygp
LnZhbHVlKCk7CiAgICAgLy8gVGhleSBzaG91bGQgc2hhcmUgdGhlIHNhbWUgU3RyaW5nSW1wbC4K
ICAgICBBU1NFUlRfRVEoYXRvbWljU3RyaW5nMi5pbXBsKCksIHN0cmluZy5pbXBsKCkpOwogfQpA
QCAtMjkyLDQ1ICsyOTIsNDUgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9BdG9taWNTdHJp
bmdPbkVtcHR5KQogewogICAgIHsgLy8gRGVmYXVsdCBjb25zdHJ1Y3RlZC4KICAgICAgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0g
YnVpbGRlci50b0F0b21pY1N0cmluZygpOworICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3Ry
aW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpLnZhbHVlKCk7CiAgICAgICAgIEFTU0VSVF9F
UShlbXB0eUF0b20oKSwgYXRvbWljU3RyaW5nKTsKICAgICB9CiAgICAgeyAvLyBXaXRoIGNhcGFj
aXR5LgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIucmVz
ZXJ2ZUNhcGFjaXR5KDY0KTsKLSAgICAgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1
aWxkZXIudG9BdG9taWNTdHJpbmcoKTsKKyAgICAgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmlu
ZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKS52YWx1ZSgpOwogICAgICAgICBBU1NFUlRfRVEo
ZW1wdHlBdG9tKCksIGF0b21pY1N0cmluZyk7CiAgICAgfQogICAgIHsgLy8gQXRvbWljU3RyaW5n
IGNvbnN0cnVjdGVkIGZyb20gYSBudWxsIHN0cmluZy4KICAgICAgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoKSk7Ci0gICAgICAgIEF0b21p
Y1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7CisgICAgICAg
IEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCkudmFs
dWUoKTsKICAgICAgICAgQVNTRVJUX0VRKGVtcHR5QXRvbSgpLCBhdG9taWNTdHJpbmcpOwogICAg
IH0KICAgICB7IC8vIEF0b21pY1N0cmluZyBjb25zdHJ1Y3RlZCBmcm9tIGFuIGVtcHR5IHN0cmlu
Zy4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVu
ZChlbXB0eVN0cmluZygpKTsKLSAgICAgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1
aWxkZXIudG9BdG9taWNTdHJpbmcoKTsKKyAgICAgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmlu
ZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKS52YWx1ZSgpOwogICAgICAgICBBU1NFUlRfRVEo
ZW1wdHlBdG9tKCksIGF0b21pY1N0cmluZyk7CiAgICAgfQogICAgIHsgLy8gQXRvbWljU3RyaW5n
IGNvbnN0cnVjdGVkIGZyb20gYW4gZW1wdHkgU3RyaW5nQnVpbGRlci4KICAgICAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOwogICAgICAgICBTdHJpbmdCdWlsZGVyIGVtcHR5QnVpbGRlcjsKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoZW1wdHlCdWlsZGVyKTsKLSAgICAgICAgQXRvbWljU3RyaW5n
IGF0b21pY1N0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKTsKKyAgICAgICAgQXRvbWlj
U3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKS52YWx1ZSgpOwog
ICAgICAgICBBU1NFUlRfRVEoZW1wdHlBdG9tKCksIGF0b21pY1N0cmluZyk7CiAgICAgfQogICAg
IHsgLy8gQXRvbWljU3RyaW5nIGNvbnN0cnVjdGVkIGZyb20gYW4gZW1wdHkgY2hhciogc3RyaW5n
LgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCIiLCAwKTsKLSAgICAgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxkZXIudG9B
dG9taWNTdHJpbmcoKTsKKyAgICAgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxk
ZXIudG9BdG9taWNTdHJpbmcoKS52YWx1ZSgpOwogICAgICAgICBBU1NFUlRfRVEoZW1wdHlBdG9t
KCksIGF0b21pY1N0cmluZyk7CiAgICAgfQogICAgIHsgLy8gQ2xlYXJlZCBTdHJpbmdCdWlsZGVy
LgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiV2ViS2l0Iik7CiAgICAgICAgIGJ1aWxkZXIuY2xlYXIoKTsKLSAgICAgICAgQXRv
bWljU3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKTsKKyAgICAg
ICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKS52
YWx1ZSgpOwogICAgICAgICBBU1NFUlRfRVEoZW1wdHlBdG9tKCksIGF0b21pY1N0cmluZyk7CiAg
ICAgfQogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5n
Vmlldy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcApp
bmRleCBmYzI4YjAwLi44YjI4MzA5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9TdHJpbmdWaWV3LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9TdHJpbmdWaWV3LmNwcApAQCAtMTY0LDY1ICsxNjQsNjUgQEAgVEVTVChXVEYsIFN0cmluZ1Zp
ZXdJdGVyYXRvcnMpCiAKICAgICBTdHJpbmdCdWlsZGVyIGI7CiAgICAgYnVpbGQoYiwgezB4RDgw
MCwgMHhERDU1fSk7IC8vIFN1cnJvZ2F0ZXMgZm9yIHVuaWNvZGUgY29kZSBwb2ludCBVKzEwMTU1
Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0
cmluZygpKS5jb2RlUG9pbnRzKCksIHsweDEwMTU1fSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBh
cmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRzKCksIHsw
eEQ4MDAsIDB4REQ1NX0pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMo
U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXco
Yi50b1N0cmluZygpKX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMo
U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVBvaW50cygpLCB7MHgxMDE1NX0p
KTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRv
U3RyaW5nKCkudmFsdWUoKSkuY29kZVVuaXRzKCksIHsweEQ4MDAsIDB4REQ1NX0pKTsKKyAgICBF
WFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCku
dmFsdWUoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFs
dWUoKSl9KSk7CiAKICAgICBidWlsZChiLCB7MHhEODAwfSk7IC8vIExlYWRpbmcgc3Vycm9nYXRl
IG9ubHkKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhi
LnRvU3RyaW5nKCkpLmNvZGVQb2ludHMoKSwgezB4RDgwMH0pKTsKLSAgICBFWFBFQ1RfVFJVRShj
b21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVVbml0cygp
LCB7MHhEODAwfSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJp
bmdWaWV3KGIudG9TdHJpbmcoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhiLnRv
U3RyaW5nKCkpfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJp
bmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlUG9pbnRzKCksIHsweEQ4MDB9KSk7Cisg
ICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmlu
ZygpLnZhbHVlKCkpLmNvZGVVbml0cygpLCB7MHhEODAwfSkpOworICAgIEVYUEVDVF9UUlVFKGNv
bXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5ncmFw
aGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKX0pKTsKIAog
ICAgIGJ1aWxkKGIsIHsweEQ4MDAsIDB4RDgwMX0pOyAvLyBUd28gbGVhZGluZyBzdXJyb2dhdGVz
Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0
cmluZygpKS5jb2RlUG9pbnRzKCksIHsweEQ4MDAsIDB4RDgwMX0pKTsKLSAgICBFWFBFQ1RfVFJV
RShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVVbml0
cygpLCB7MHhEODAwLCAweEQ4MDF9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVy
YXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJp
bmdWaWV3KGIuY2hhcmFjdGVyczE2KCksIDEpLCBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkg
KyAxLCAxKX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5n
VmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVBvaW50cygpLCB7MHhEODAwLCAweEQ4MDF9
KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50
b1N0cmluZygpLnZhbHVlKCkpLmNvZGVVbml0cygpLCB7MHhEODAwLCAweEQ4MDF9KSk7CisgICAg
RVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygp
LnZhbHVlKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYo
KS52YWx1ZSgpLCAxKSwgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCkgKyAxLCAx
KX0pKTsKIAogICAgIGJ1aWxkKGIsIHsweERENTV9KTsgLy8gVHJhaWxpbmcgc3Vycm9nYXRlIG9u
bHkKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRv
U3RyaW5nKCkpLmNvZGVQb2ludHMoKSwgezB4REQ1NX0pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21w
YXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVVbml0cygpLCB7
MHhERDU1fSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdW
aWV3KGIudG9TdHJpbmcoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhiLnRvU3Ry
aW5nKCkpfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdW
aWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlUG9pbnRzKCksIHsweERENTV9KSk7CisgICAg
RVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygp
LnZhbHVlKCkpLmNvZGVVbml0cygpLCB7MHhERDU1fSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBh
cmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5ncmFwaGVt
ZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKX0pKTsKIAogICAg
IGJ1aWxkKGIsIHsweEQ4MDAsICdoJ30pOyAvLyBMZWFkaW5nIHN1cnJvZ2F0ZSBmb2xsb3dlZCBi
eSBub24tc3Vycm9nYXRlCi0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0
cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlUG9pbnRzKCksIHsweEQ4MDAsICdoJ30pKTsKLSAg
ICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5n
KCkpLmNvZGVVbml0cygpLCB7MHhEODAwLCAnaCd9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFy
ZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5ncmFwaGVtZUNsdXN0ZXJz
KCksIHtTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCksIDEpLCBTdHJpbmdWaWV3KGIuY2hhcmFj
dGVyczE2KCkgKyAxLCAxKX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlv
bnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVBvaW50cygpLCB7MHhEODAw
LCAnaCd9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1Zp
ZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVVbml0cygpLCB7MHhEODAwLCAnaCd9KSk7Cisg
ICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmlu
ZygpLnZhbHVlKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJz
MTYoKS52YWx1ZSgpLCAxKSwgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCkgKyAx
LCAxKX0pKTsKIAogICAgIGJ1aWxkKGIsIHsweDAzMDZ9KTsgLy8gIkNPTUJJTklORyBCUkVWRSIK
LSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3Ry
aW5nKCkpLmNvZGVQb2ludHMoKSwgezB4MDMwNn0pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJl
TG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVVbml0cygpLCB7MHgw
MzA2fSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3
KGIudG9TdHJpbmcoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhiLnRvU3RyaW5n
KCkpfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3
KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlUG9pbnRzKCksIHsweDAzMDZ9KSk7CisgICAgRVhQ
RUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZh
bHVlKCkpLmNvZGVVbml0cygpLCB7MHgwMzA2fSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVM
b29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5ncmFwaGVtZUNs
dXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKX0pKTsKIAogICAgIGJ1
aWxkKGIsIHsweDAzMDYsIDB4RDgwMCwgMHhERDU1LCAnaCcsICdlJywgJ2wnLCAnbyd9KTsgLy8g
TWl4IG9mIHNpbmdsZSBjb2RlIHVuaXQgYW5kIG11bHRpIGNvZGUgdW5pdCBjb2RlIHBvaW50cwot
ICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJp
bmcoKSkuY29kZVBvaW50cygpLCB7MHgwMzA2LCAweDEwMTU1LCAnaCcsICdlJywgJ2wnLCAnbyd9
KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50
b1N0cmluZygpKS5jb2RlVW5pdHMoKSwgezB4MDMwNiwgMHhEODAwLCAweERENTUsICdoJywgJ2Un
LCAnbCcsICdvJ30pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3Ry
aW5nVmlldyhiLnRvU3RyaW5nKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwgewotICAgICAgICBTdHJp
bmdWaWV3KGIuY2hhcmFjdGVyczE2KCksIDEpLAotICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFj
dGVyczE2KCkgKyAxLCAyKSwKLSAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpICsg
MywgMSksCi0gICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSArIDQsIDEpLAotICAg
ICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkgKyA1LCAxKSwKLSAgICAgICAgU3RyaW5n
VmlldyhiLmNoYXJhY3RlcnMxNigpICsgNiwgMSl9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFy
ZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVQb2lu
dHMoKSwgezB4MDMwNiwgMHgxMDE1NSwgJ2gnLCAnZScsICdsJywgJ28nfSkpOworICAgIEVYUEVD
VF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1
ZSgpKS5jb2RlVW5pdHMoKSwgezB4MDMwNiwgMHhEODAwLCAweERENTUsICdoJywgJ2UnLCAnbCcs
ICdvJ30pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmll
dyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7CisgICAgICAgIFN0
cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKS52YWx1ZSgpLCAxKSwKKyAgICAgICAgU3RyaW5nVmll
dyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCkgKyAxLCAyKSwKKyAgICAgICAgU3RyaW5nVmlldyhi
LmNoYXJhY3RlcnMxNigpLnZhbHVlKCkgKyAzLCAxKSwKKyAgICAgICAgU3RyaW5nVmlldyhiLmNo
YXJhY3RlcnMxNigpLnZhbHVlKCkgKyA0LCAxKSwKKyAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJh
Y3RlcnMxNigpLnZhbHVlKCkgKyA1LCAxKSwKKyAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3Rl
cnMxNigpLnZhbHVlKCkgKyA2LCAxKX0pKTsKIAogICAgIGJ1aWxkKGIsIHsnZScsIDB4MDMwMX0p
OyAvLyAiQ09NQklOSU5HIEFDVVRFIgotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0
aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVBvaW50cygpLCB7J2UnLCAweDAzMDF9
KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50
b1N0cmluZygpKS5jb2RlVW5pdHMoKSwgeydlJywgMHgwMzAxfSkpOwotICAgIEVYUEVDVF9UUlVF
KGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuZ3JhcGhlbWVD
bHVzdGVycygpLCB7U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpfSkpOworICAgIEVYUEVDVF9UUlVF
KGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5j
b2RlUG9pbnRzKCksIHsnZScsIDB4MDMwMX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9v
cEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVVuaXRzKCks
IHsnZScsIDB4MDMwMX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMo
U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7U3Ry
aW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSl9KSk7CiAKICAgICBidWlsZChiLCB7J2UnLCAw
eDAzMDEsIDB4MDMwNiwgJ2EnfSk7IC8vICJDT01CSU5JTkcgQUNVVEUiICJDT01CSU5JTkcgQlJF
VkUiCi0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50
b1N0cmluZygpKS5jb2RlUG9pbnRzKCksIHsnZScsIDB4MDMwMSwgMHgwMzA2LCAnYSd9KSk7Ci0g
ICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmlu
ZygpKS5jb2RlVW5pdHMoKSwgeydlJywgMHgwMzAxLCAweDAzMDYsICdhJ30pKTsKLSAgICBFWFBF
Q1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmdy
YXBoZW1lQ2x1c3RlcnMoKSwgewotICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCks
IDMpLAotICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkgKyAzLCAxKSwKKyAgICBF
WFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCku
dmFsdWUoKSkuY29kZVBvaW50cygpLCB7J2UnLCAweDAzMDEsIDB4MDMwNiwgJ2EnfSkpOworICAg
IEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmco
KS52YWx1ZSgpKS5jb2RlVW5pdHMoKSwgeydlJywgMHgwMzAxLCAweDAzMDYsICdhJ30pKTsKKyAg
ICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5n
KCkudmFsdWUoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7CisgICAgICAgIFN0cmluZ1ZpZXcoYi5j
aGFyYWN0ZXJzMTYoKS52YWx1ZSgpLCAzKSwKKyAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3Rl
cnMxNigpLnZhbHVlKCkgKyAzLCAxKSwKICAgICAgICAgfSkpOwogCiAgICAgYnVpbGQoYiwgezB4
MTExMiwgMHgxMTZmLCAweDExYjYsIDB4MTEwNywgMHgxMTYxLCAweDExQjh9KTsgLy8gS29yZWFu
IGNvbWJpbmluZyBKYW1vCi0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0
cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlUG9pbnRzKCksIHsweDExMTIsIDB4MTE2ZiwgMHgx
MWI2LCAweDExMDcsIDB4MTE2MSwgMHgxMUI4fSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVM
b29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRzKCksIHsweDEx
MTIsIDB4MTE2ZiwgMHgxMWI2LCAweDExMDcsIDB4MTE2MSwgMHgxMUI4fSkpOwotICAgIEVYUEVD
VF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuZ3Jh
cGhlbWVDbHVzdGVycygpLCB7Ci0gICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSwg
MyksCi0gICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSArIDMsIDMpfSkpOworICAg
IEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmco
KS52YWx1ZSgpKS5jb2RlUG9pbnRzKCksIHsweDExMTIsIDB4MTE2ZiwgMHgxMWI2LCAweDExMDcs
IDB4MTE2MSwgMHgxMUI4fSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9u
cyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlVW5pdHMoKSwgezB4MTExMiwg
MHgxMTZmLCAweDExYjYsIDB4MTEwNywgMHgxMTYxLCAweDExQjh9KSk7CisgICAgRVhQRUNUX1RS
VUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkp
LmdyYXBoZW1lQ2x1c3RlcnMoKSwgeworICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2
KCkudmFsdWUoKSwgMyksCisgICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKS52YWx1
ZSgpICsgMywgMyl9KSk7CiB9CiAKIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiB2ZWN0b3JGcm9tU3Bs
aXRSZXN1bHQoY29uc3QgU3RyaW5nVmlldzo6U3BsaXRSZXN1bHQmIHN1YnN0cmluZ3MpCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lv
bnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNp
b25zLmNwcAppbmRleCBkY2NlNDY4Li4wMzgzODY0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKQEAgLTEyMDks
MTUgKzEyMDksMTggQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBXaWRlTkZBKQogICAg
ICAgICB9CiAgICAgfQogICAgIHJ1bGVMaXN0LmFwcGVuZCgnXScpOwotICAgIAotICAgIGF1dG8g
YmFja2VuZCA9IG1ha2VCYWNrZW5kKHJ1bGVMaXN0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7
CiAKLSAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8v
d2Via2l0Lm9yZy9BQUEiKSwgeyBDb250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6Q1NTRGlz
cGxheU5vbmVTZWxlY3RvciB9KTsKLSAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1l
bnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy9ZQUEiKSwgeyBDb250ZW50RXh0ZW5zaW9uczo6
QWN0aW9uVHlwZTo6Q1NTRGlzcGxheU5vbmVTZWxlY3RvciB9KTsKLSAgICB0ZXN0UmVxdWVzdChi
YWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy9aQUEiKSwgeyB9
LCAwKTsKLSAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRw
Oi8vd2Via2l0Lm9yZy9MQUEvQUFBIiksIHsgfSwgMCk7Ci0gICAgdGVzdFJlcXVlc3QoYmFja2Vu
ZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvTEFBL01BQSIpLCB7IENv
bnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpDU1NEaXNwbGF5Tm9uZVNlbGVjdG9yIH0sIDAp
OwotICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93
ZWJraXQub3JnLyIpLCB7IH0pOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJ1bGVMaXN0LnRvU3Ry
aW5nKCkpIHsKKyAgICAgICAgYXV0byBiYWNrZW5kID0gbWFrZUJhY2tlbmQoc3RyaW5nLT51dGY4
KCkuZGF0YSgpKTsKKworICAgICAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRS
ZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy9BQUEiKSwgeyBDb250ZW50RXh0ZW5zaW9uczo6QWN0
aW9uVHlwZTo6Q1NTRGlzcGxheU5vbmVTZWxlY3RvciB9KTsKKyAgICAgICAgdGVzdFJlcXVlc3Qo
YmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvWUFBIiksIHsg
Q29udGVudEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6OkNTU0Rpc3BsYXlOb25lU2VsZWN0b3IgfSk7
CisgICAgICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6
Ly93ZWJraXQub3JnL1pBQSIpLCB7IH0sIDApOworICAgICAgICB0ZXN0UmVxdWVzdChiYWNrZW5k
LCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy9MQUEvQUFBIiksIHsgfSwg
MCk7CisgICAgICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0
dHA6Ly93ZWJraXQub3JnL0xBQS9NQUEiKSwgeyBDb250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlw
ZTo6Q1NTRGlzcGxheU5vbmVTZWxlY3RvciB9LCAwKTsKKyAgICAgICAgdGVzdFJlcXVlc3QoYmFj
a2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvIiksIHsgfSk7Cisg
ICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAgICAgCiAjaWZkZWYgTkRFQlVHCkBAIC0x
MjQ3LDcgKzEyNTAsMTAgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBMYXJnZUp1bXBz
KQogICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZChjMik7CiAgICAgICAgICAgICAg
ICAgICAgIHBhdHRlcm4uYXBwZW5kKGMzKTsKICAgICAgICAgICAgICAgICAgICAgcGF0dGVybi5h
cHBlbmQoYzQpOwotICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoQ29udGVudEV4dGVuc2lv
bnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rLCBwYXJzZXIuYWRkUGF0dGVybihw
YXR0ZXJuLnRvU3RyaW5nKCksIHRydWUsIHBhdHRlcm5JZCsrKSk7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChhdXRvIHN0cmluZyA9IHBhdHRlcm4udG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIEVYUEVDVF9FUShDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQ
YXJzZVN0YXR1czo6T2ssIHBhcnNlci5hZGRQYXR0ZXJuKCpzdHJpbmcsIHRydWUsIHBhdHRlcm5J
ZCsrKSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAg
IENSQVNIKCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CkBA
IC0xMzA4LDE3ICsxMzE0LDIwIEBAIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgTGFyZ2VK
dW1wcykKICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kKCd4Jyk7CiAgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgICAgICBhdXRvIG1hdGNoZXMgPSBpbnRlcnByZXRlci5pbnRlcnByZXQocGF0dGVy
bi50b1N0cmluZygpLnV0ZjgoKSwgMCk7Ci0gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoKGMx
ICsgYzIgKyBjMyArIGM0KSAlIDQpIHsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgotICAg
ICAgICAgICAgICAgICAgICAgICAgY29tcGFyZUNvbnRlbnRzKG1hdGNoZXMsIHsgfSk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgot
ICAgICAgICAgICAgICAgICAgICBjYXNlIDI6Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgMzoK
LSAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhcmVDb250ZW50cyhtYXRjaGVzLCB7cGF0dGVy
bklkfSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBwYXR0ZXJuLnRvU3Ry
aW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gbWF0Y2hlcyA9IGludGVycHJl
dGVyLmludGVycHJldChzdHJpbmctPnV0ZjgoKSwgMCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBzd2l0Y2ggKChjMSArIGMyICsgYzMgKyBjNCkgJSA0KSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGFyZUNvbnRlbnRz
KG1hdGNoZXMsIHsgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNl
IDI6CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29tcGFyZUNvbnRlbnRzKG1hdGNoZXMsIHtwYXR0ZXJuSWR9KTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBDUkFTSCgp
OwogICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuSWQrKzsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9CkBAIC0xMzQ4LDEzICsxMzU3LDE5IEBAIFRFU1RfRihDb250ZW50RXh0ZW5z
aW9uVGVzdCwgRGVlcE5GQSkKICAgICBTdHJpbmdCdWlsZGVyIGxvdHNPZkFzOwogICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpCiAgICAgICAgIGxvdHNPZkFzLmFwcGVuZCgn
QScpOwotICAgIEVYUEVDVF9FUShDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQ
YXJzZVN0YXR1czo6T2ssIHBhcnNlci5hZGRQYXR0ZXJuKGxvdHNPZkFzLnRvU3RyaW5nKCkudXRm
OCgpLmRhdGEoKSwgZmFsc2UsIDApKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBsb3RzT2ZBcy50
b1N0cmluZygpKQorICAgICAgICBFWFBFQ1RfRVEoQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRl
clBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rLCBwYXJzZXIuYWRkUGF0dGVybihzdHJpbmctPnV0Zjgo
KS5kYXRhKCksIGZhbHNlLCAwKSk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIAog
ICAgIC8vIEZJWE1FOiBZYXJyIG91Z2h0IHRvIGJlIGFibGUgdG8gaGFuZGxlIDJNQiByZWd1bGFy
IGV4cHJlc3Npb25zLgogICAgIFN0cmluZ0J1aWxkZXIgdG9vTWFueUFzOwogICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBzaXplICogMjA7ICsraSkKICAgICAgICAgdG9vTWFueUFzLmFwcGVu
ZCgnQScpOwotICAgIEVYUEVDVF9FUShDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2Vy
OjpQYXJzZVN0YXR1czo6WWFyckVycm9yLCBwYXJzZXIuYWRkUGF0dGVybih0b29NYW55QXMudG9T
dHJpbmcoKS51dGY4KCkuZGF0YSgpLCBmYWxzZSwgMCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHRvb01hbnlBcy50b1N0cmluZygpKQorICAgICAgICBFWFBFQ1RfRVEoQ29udGVudEV4dGVuc2lv
bnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6OllhcnJFcnJvciwgcGFyc2VyLmFkZFBh
dHRlcm4oc3RyaW5nLT51dGY4KCkuZGF0YSgpLCBmYWxzZSwgMCkpOworICAgIGVsc2UKKyAgICAg
ICAgQ1JBU0goKTsKICAgICAKICAgICBTdHJpbmdCdWlsZGVyIG5lc3RlZEdyb3VwczsKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQpAQCAtMTQ5MCwxNyArMTUwNSwyMiBA
QCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIEludmFsaWRKU09OKQogICAgIGNoZWNrQ29t
cGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcIm5vdGlmeVwiLFwibm90aWZpY2F0
aW9uXCI6W119LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIi4qXCJ9fV0iLCBDb250ZW50
RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZE5vdGlmaWNhdGlv
bik7CiAgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwibm90
aWZ5XCIsXCJub3RpZmljYXRpb25cIjpcImhlcmUncyBteSBub3RpZmljYXRpb25cIn0sXCJ0cmln
Z2VyXCI6e1widXJsLWZpbHRlclwiOlwiLipcIn19XSIsIHsgfSk7CiAgICAgY2hlY2tDb21waWxl
ckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwibm90aWZ5XCIsXCJub3RpZmljYXRpb25c
IjpcIlxcdTEyMzRcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiLipcIn19XSIsIHsg
fSk7Ci0gICAgCi0gICAgU3RyaW5nQnVpbGRlciBydWxlczsKLSAgICBydWxlcy5hcHBlbmQoIlsi
KTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgNDk5OTk7ICsraSkKLSAgICAgICAgcnVs
ZXMuYXBwZW5kKCJ7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7
XCJ1cmwtZmlsdGVyXCI6XCJhXCJ9fSwiKTsKLSAgICBTdHJpbmcgcnVsZXM1MDAwMCA9IHJ1bGVz
LnRvU3RyaW5nKCk7Ci0gICAgU3RyaW5nIHJ1bGVzNTAwMDEgPSBydWxlcy50b1N0cmluZygpOwot
ICAgIHJ1bGVzNTAwMDAuYXBwZW5kKCJ7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxc
InRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJhXCJ9fV0iKTsKLSAgICBydWxlczUwMDAxLmFw
cGVuZCgie1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJs
LWZpbHRlclwiOlwiYVwifX0se1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmln
Z2VyXCI6e1widXJsLWZpbHRlclwiOlwiYVwifX1dIik7Ci0gICAgY2hlY2tDb21waWxlckVycm9y
KHJ1bGVzNTAwMDAudXRmOCgpLmRhdGEoKSwgeyB9KTsKLSAgICBjaGVja0NvbXBpbGVyRXJyb3Io
cnVsZXM1MDAwMS51dGY4KCkuZGF0YSgpLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVu
c2lvbkVycm9yOjpKU09OVG9vTWFueVJ1bGVzKTsKKworICAgIHsKKyAgICAgICAgU3RyaW5nQnVp
bGRlciBydWxlczsKKyAgICAgICAgcnVsZXMuYXBwZW5kKCJbIik7CisgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCA0OTk5OTsgKytpKQorICAgICAgICAgICAgcnVsZXMuYXBwZW5kKCJ7
XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVy
XCI6XCJhXCJ9fSwiKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcnVsZXMudG9TdHJpbmco
KSkgeworICAgICAgICAgICAgU3RyaW5nIHJ1bGVzNTAwMDAgPSAqc3RyaW5nOworICAgICAgICAg
ICAgU3RyaW5nIHJ1bGVzNTAwMDEgPSAqc3RyaW5nOworICAgICAgICAgICAgcnVsZXM1MDAwMC5h
cHBlbmQoIntcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVy
bC1maWx0ZXJcIjpcImFcIn19XSIpOworICAgICAgICAgICAgcnVsZXM1MDAwMS5hcHBlbmQoIntc
ImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJc
IjpcImFcIn19LHtcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntc
InVybC1maWx0ZXJcIjpcImFcIn19XSIpOworICAgICAgICAgICAgY2hlY2tDb21waWxlckVycm9y
KHJ1bGVzNTAwMDAudXRmOCgpLmRhdGEoKSwgeyB9KTsKKyAgICAgICAgICAgIGNoZWNrQ29tcGls
ZXJFcnJvcihydWxlczUwMDAxLnV0ZjgoKS5kYXRhKCksIENvbnRlbnRFeHRlbnNpb25zOjpDb250
ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Ub29NYW55UnVsZXMpOworICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgIENSQVNIKCk7CisgICAgfQogICAgIAogICAgIGNoZWNrQ29tcGlsZXJFcnJvcigi
W3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0
ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLWRvbWFpblwiOnt9fX1dIiwgQ29udGVudEV4dGVuc2lv
bnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRDb25kaXRpb25MaXN0KTsKICAg
ICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxc
InRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJpZi1kb21haW5cIjpb
NV19fV0iLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52
YWxpZENvbmRpdGlvbkxpc3QpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9GaWxlTW9uaXRvci5jcHAKaW5kZXggNWYxZGM4Yi4uZTk0ZWZjNCAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCkBAIC0xMDcs
NyArMTA3LDkgQEAgc3RhdGljIFN0cmluZyBjcmVhdGVDb21tYW5kKGNvbnN0IFN0cmluZyYgcGF0
aCwgY29uc3QgU3RyaW5nJiBwYXlsb2FkKQogICAgIGNvbW1hbmQuYXBwZW5kTGl0ZXJhbCgiXCIg
PiAiKTsKICAgICBjb21tYW5kLmFwcGVuZChwYXRoKTsKIAotICAgIHJldHVybiBjb21tYW5kLnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gY29tbWFuZC50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIHJl
YWRDb250ZW50c09mRmlsZShjb25zdCBTdHJpbmcmIHBhdGgpCkBAIC0yNjcsMTAgKzI2OSwxMyBA
QCBURVNUX0YoRmlsZU1vbml0b3JUZXN0LCBEZXRlY3REZWxldGlvbikKICAgICAgICAgY29tbWFu
ZC5hcHBlbmRMaXRlcmFsKCJybSAtZiAiKTsKICAgICAgICAgY29tbWFuZC5hcHBlbmQodGVtcEZp
bGVQYXRoKCkpOwogCi0gICAgICAgIGF1dG8gcmMgPSBzeXN0ZW0oY29tbWFuZC50b1N0cmluZygp
LnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBBU1NFUlRfTkUocmMsIC0xKTsKLSAgICAgICAgaWYg
KHJjID09IC0xKQotICAgICAgICAgICAgZGlkRmluaXNoID0gdHJ1ZTsKKyAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gY29tbWFuZC50b1N0cmluZygpKSB7CisgICAgICAgICAgICBhdXRvIHJjID0g
c3lzdGVtKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBBU1NFUlRfTkUocmMs
IC0xKTsKKyAgICAgICAgICAgIGlmIChyYyA9PSAtMSkKKyAgICAgICAgICAgICAgICBkaWRGaW5p
c2ggPSB0cnVlOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfSk7
CiAKICAgICBVdGlsOjpydW4oJmRpZEZpbmlzaCk7CkBAIC0zMjQsMTAgKzMyOSwxMyBAQCBURVNU
X0YoRmlsZU1vbml0b3JUZXN0LCBEZXRlY3RDaGFuZ2VBbmRUaGVuRGVsZXRlKQogICAgICAgICBj
b21tYW5kLmFwcGVuZExpdGVyYWwoInJtIC1mICIpOwogICAgICAgICBjb21tYW5kLmFwcGVuZCh0
ZW1wRmlsZVBhdGgoKSk7CiAKLSAgICAgICAgYXV0byByYyA9IHN5c3RlbShjb21tYW5kLnRvU3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIEFTU0VSVF9ORShyYywgLTEpOwotICAgICAg
ICBpZiAocmMgPT0gLTEpCi0gICAgICAgICAgICBkaWRGaW5pc2ggPSB0cnVlOworICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBjb21tYW5kLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIGF1dG8g
cmMgPSBzeXN0ZW0oc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIEFTU0VSVF9O
RShyYywgLTEpOworICAgICAgICAgICAgaWYgKHJjID09IC0xKQorICAgICAgICAgICAgICAgIGRp
ZEZpbmlzaCA9IHRydWU7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAg
ICB9KTsKIAogICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoKTsKQEAgLTM2MywxMCArMzcxLDEzIEBA
IFRFU1RfRihGaWxlTW9uaXRvclRlc3QsIERldGVjdERlbGV0ZUJ1dE5vdFN1YnNlcXVlbnRDaGFu
Z2UpCiAgICAgICAgIGNvbW1hbmQuYXBwZW5kTGl0ZXJhbCgicm0gLWYgIik7CiAgICAgICAgIGNv
bW1hbmQuYXBwZW5kKHRlbXBGaWxlUGF0aCgpKTsKIAotICAgICAgICBhdXRvIHJjID0gc3lzdGVt
KGNvbW1hbmQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgQVNTRVJUX05FKHJj
LCAtMSk7Ci0gICAgICAgIGlmIChyYyA9PSAtMSkKLSAgICAgICAgICAgIGRpZEZpbmlzaCA9IHRy
dWU7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGNvbW1hbmQudG9TdHJpbmcoKSkgeworICAg
ICAgICAgICAgYXV0byByYyA9IHN5c3RlbShzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAg
ICAgICAgQVNTRVJUX05FKHJjLCAtMSk7CisgICAgICAgICAgICBpZiAocmMgPT0gLTEpCisgICAg
ICAgICAgICAgICAgZGlkRmluaXNoID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICBDUkFTSCgpOwogICAgIH0pOwogCiAgICAgVXRpbDo6cnVuKCZkaWRGaW5pc2gpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0xvZ2dpbmcuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0xvZ2dpbmcuY3BwCmluZGV4IDFlNGMzNDIu
LjdkZWRhZDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9M
b2dnaW5nLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTG9nZ2lu
Zy5jcHAKQEAgLTk1LDcgKzk1LDkgQEAgcHVibGljOgogICAgICAgICB3aGlsZSAoKGxpbmUgPSBm
Z2V0cyhidWZmZXIsIHNpemVvZihidWZmZXIpLCBtX3N0ZGVycikpKQogICAgICAgICAgICAgcmVz
dWx0LmFwcGVuZChsaW5lKTsKIAotICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7Cisg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgY29uc3QgTG9n
Z2VyJiBsb2dnZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xvZ2dlci5nZXQoKTsgfQpAQCAt
MzQwLDE1ICszNDIsMTggQEAgVEVTVF9GKExvZ2dpbmdUZXN0LCBMb2dnZXJIZWxwZXIpCiAgICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKCJMb2dnaW5nVGVzdDo6VGVzdEJvZHkoIik7CiAgICAgYXBw
ZW5kVW5zaWduZWQ2NEFzSGV4KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihsb2dJZGVudGlm
aWVyKCkpLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIikiKTsKLSAgICBT
dHJpbmcgc2lnbmF0dXJlID0gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICBTdHJpbmcgc2lnbmF0dXJlID0gKnN0
cmluZzsKIAotICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7Ci0gICAgRVhQRUNUX1RSVUUo
dGhpcy0+b3V0cHV0KCkuY29udGFpbnMoc2lnbmF0dXJlLCBmYWxzZSkpOworICAgICAgICBBTFdB
WVNfTE9HKExPR0lERU5USUZJRVIpOworICAgICAgICBFWFBFQ1RfVFJVRSh0aGlzLT5vdXRwdXQo
KS5jb250YWlucyhzaWduYXR1cmUsIGZhbHNlKSk7CiAKLSAgICBBTFdBWVNfTE9HKExPR0lERU5U
SUZJRVIsICJXZWxjb21lIGJhY2siLCAiIG15IGZyaWVuZHMiLCAiIHRvIHRoZSBzaG93IiwgIiB0
aGF0IG5ldmVyIGVuZHMiKTsKLSAgICBTdHJpbmcgcmVzdWx0ID0gdGhpcy0+b3V0cHV0KCk7Ci0g
ICAgRVhQRUNUX1RSVUUocmVzdWx0LmNvbnRhaW5zKHNpZ25hdHVyZSwgZmFsc2UpKTsKLSAgICBF
WFBFQ1RfVFJVRShyZXN1bHQuY29udGFpbnMoInRvIHRoZSBzaG93IHRoYXQgbmV2ZXIiLCBmYWxz
ZSkpOworICAgICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICJXZWxjb21lIGJhY2siLCAi
IG15IGZyaWVuZHMiLCAiIHRvIHRoZSBzaG93IiwgIiB0aGF0IG5ldmVyIGVuZHMiKTsKKyAgICAg
ICAgU3RyaW5nIHJlc3VsdCA9IHRoaXMtPm91dHB1dCgpOworICAgICAgICBFWFBFQ1RfVFJVRShy
ZXN1bHQuY29udGFpbnMoc2lnbmF0dXJlLCBmYWxzZSkpOworICAgICAgICBFWFBFQ1RfVFJVRShy
ZXN1bHQuY29udGFpbnMoInRvIHRoZSBzaG93IHRoYXQgbmV2ZXIiLCBmYWxzZSkpOworICAgIH0g
ZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgV1RGU2V0TG9nQ2hhbm5lbExldmVsKCZUZXN0
Q2hhbm5lbDEsIFdURkxvZ0xldmVsV2FybmluZyk7CiAKQEAgLTM3MSwxMCArMzc2LDExIEBAIHB1
YmxpYzoKIAogICAgIFN0cmluZyBsb2coKQogICAgIHsKLSAgICAgICAgU3RyaW5nIGxvZyA9IG1f
bG9nQnVmZmVyLnRvU3RyaW5nKCk7Ci0gICAgICAgIG1fbG9nQnVmZmVyLmNsZWFyKCk7Ci0KLSAg
ICAgICAgcmV0dXJuIGxvZzsKKyAgICAgICAgaWYgKGF1dG8gbG9nID0gbV9sb2dCdWZmZXIudG9T
dHJpbmcoKSkgeworICAgICAgICAgICAgbV9sb2dCdWZmZXIuY2xlYXIoKTsKKyAgICAgICAgICAg
IHJldHVybiBsb2c7CisgICAgICAgIH0KKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBX
VEZMb2dDaGFubmVsIGNoYW5uZWwoKSBjb25zdCB7IHJldHVybiBtX2xhc3RDaGFubmVsOyB9CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVGV4dENvZGVjLmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9UZXh0Q29kZWMuY3BwCmluZGV4
IGZkMDUwNTAuLjllNTU1MzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9UZXh0Q29kZWMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9UZXh0Q29kZWMuY3BwCkBAIC05OCw3ICs5OCw5IEBAIHN0YXRpYyBjb25zdCBjaGFyKiB0
ZXN0RGVjb2RlKGNvbnN0IGNoYXIqIGVuY29kaW5nTmFtZSwgc3RkOjppbml0aWFsaXplcl9saXN0
PGNvCiAgICAgICAgIGlmIChzYXdFcnJvcikKICAgICAgICAgICAgIHJlc3VsdEJ1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiIEVSUk9SIik7CiAgICAgfQotICAgIHJldHVybiBlc2NhcGVOb25BU0NJSVBy
aW50YWJsZUNoYXJhY3RlcnMocmVzdWx0QnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSByZXN1bHRCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBlc2Nh
cGVOb25BU0NJSVByaW50YWJsZUNoYXJhY3RlcnMoKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0K
IAogVEVTVChUZXh0Q29kZWMsIFVURjgpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1dURlN0cmluZ1V0aWxpdGllcy5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9XVEZTdHJpbmdVdGls
aXRpZXMuaAppbmRleCBlY2JhOWM0Li5mNWQ0MWVkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1dURlN0cmluZ1V0aWxpdGllcy5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvV1RG
U3RyaW5nVXRpbGl0aWVzLmgKQEAgLTUxLDUgKzUxLDcgQEAgc3RhdGljIFN0cmluZyB1dGYxNlN0
cmluZyhjb25zdCBjaGFyMTZfdCAoJnVybClbbGVuZ3RoXSkKICAgICBidWlsZGVyLnJlc2VydmVD
YXBhY2l0eShsZW5ndGggLSAxKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbmd0aCAt
IDE7ICsraSkKICAgICAgICAgYnVpbGRlci5hcHBlbmQoc3RhdGljX2Nhc3Q8VUNoYXI+KHVybFtp
XSkpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCmluZGV4IDA1NTU0MTguLjUwYjEyMTQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZS5jcHAKQEAgLTEwNiw3ICsxMDYsOSBAQCBzdGF0aWMgV1RGOjpT
dHJpbmcgZHVtcFBhdGgoSlNHbG9iYWxDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIG5v
ZGVWYWx1ZSkKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoZHVtcFBhdGgoY29udGV4dCwg
KEpTT2JqZWN0UmVmKXBhcmVudE5vZGUpKTsKICAgICB9CiAKLSAgICByZXR1cm4gc3RyaW5nQnVp
bGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3Rh
dGljIFdURjo6U3RyaW5nIGR1bXBQYXRoKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZVNj
cmlwdFdvcmxkUmVmIHdvcmxkLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgbm9kZSkKQEAgLTE1Niw3
ICsxNTgsOSBAQCBzdGF0aWMgV1RGOjpTdHJpbmcgcmFuZ2VUb1N0cihXS0J1bmRsZVBhZ2VSZWYg
cGFnZSwgV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiB3b3JsZAogICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kTnVtYmVyKGVuZE9mZnNldCk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIg
b2YgIik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoZHVtcFBhdGgoY29udGV4dCwgZW5kTm9k
ZU9iamVjdCkpOwotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IE5hdmlnYXRpb25UeXBlVG9TdHJpbmcoV0tGcmFtZU5hdmlnYXRpb25UeXBlIHR5cGUpCkBA
IC0xODUsNyArMTg5LDkgQEAgc3RhdGljIFdURjo6U3RyaW5nIHN0eWxlRGVjVG9TdHIoV0tCdW5k
bGVDU1NTdHlsZURlY2xhcmF0aW9uUmVmIHN0eWxlKQogICAgIC8vIHRoZSBlZGl0aW5nIGNsaWVu
dCBpZiB0aGUgc3R5bGluZyBvcGVyYXRpb24gc291cmNlIGlzIENvbW1hbmRGcm9tRE9NIG9yIENv
bW1hbmRGcm9tRE9NV2l0aFVzZXJJbnRlcmZhY2UuCiAgICAgU3RyaW5nQnVpbGRlciBzdHJpbmdC
dWlsZGVyOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPERPTUNTU1N0eWxlRGVj
bGFyYXRpb24gQUREUkVTUz4iKTsKLSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFdURjo6U3RyaW5n
IHNlY3VyaXR5T3JpZ2luVG9TdHIoV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4pCkBAIC0xOTks
NyArMjA1LDkgQEAgc3RhdGljIFdURjo6U3RyaW5nIHNlY3VyaXR5T3JpZ2luVG9TdHIoV0tTZWN1
cml0eU9yaWdpblJlZiBvcmlnaW4pCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIoV0tT
ZWN1cml0eU9yaWdpbkdldFBvcnQob3JpZ2luKSk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQo
J30nKTsKIAotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgV1RGOjpTdHJpbmcgZnJhbWVUb1N0cihX
S0J1bmRsZUZyYW1lUmVmIGZyYW1lKQpAQCAtMjIzLDcgKzIzMSw5IEBAIHN0YXRpYyBXVEY6OlN0
cmluZyBmcmFtZVRvU3RyKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUpCiAgICAgICAgICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoImZyYW1lIChhbm9ueW1vdXMpIik7CiAgICAgfQogICAg
IAotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgaXNMb2NhbEZpbGVTY2hlbWUo
V0tTdHJpbmdSZWYgc2NoZW1lKQpAQCAtNDc2LDcgKzQ4NiwxMCBAQCBzdGF0aWMgdm9pZCBkdW1w
TG9hZEV2ZW50KFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IGNoYXIqIGV2ZW50TmFtZSkK
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiAtICIpOwogICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kKGV2ZW50TmFtZSk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0g
ICAgSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50
b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5vdXRwdXRUZXh0KCpzdHJp
bmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lk
IGR1bXBSZXF1ZXN0RGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQoV0tVUkxSZXF1ZXN0
UmVmIHJlcXVlc3QsIFN0cmluZ0J1aWxkZXImIHN0cmluZ0J1aWxkZXIpCkBAIC05NDAsNyArOTUz
LDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkdW1wKCkKICAgICAgICAgICAgIGluamVj
dGVkQnVuZGxlLnNldFJlcGFpbnRSZWN0cyhhZG9wdFdLKFdLQnVuZGxlUGFnZUNvcHlUcmFja2Vk
UmVwYWludFJlY3RzKG1fcGFnZSkpLmdldCgpKTsKICAgICB9CiAKLSAgICBpbmplY3RlZEJ1bmRs
ZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5v
dXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICBpbmpl
Y3RlZEJ1bmRsZS5kb25lKCk7CiB9CiAKQEAgLTk4OCw3ICsxMDA0LDEwIEBAIHZvaWQgSW5qZWN0
ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXS1N0cmluZ1JlZiB0aXRsZSwg
V0tCdW5kbGVGcmFtCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiJ1xuIik7
CiAgICAgfQogCi0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNl
CisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRDbGVh
cldpbmRvd0ZvckZyYW1lKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLQnVuZGxlU2NyaXB0V29y
bGRSZWYgd29ybGQpCkBAIC0xMDQzLDcgKzEwNjIsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBh
Z2U6OndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdL
QnUKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiAtIHdpbGxQZXJmb3JtQ2xpZW50
UmVkaXJlY3RUb1VSTDogIik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQocGF0aFN1aXRhYmxl
Rm9yVGVzdFJlc3VsdCh1cmwpKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiBc
biIpOwotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAg
ICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkU2FtZURvY3Vt
ZW50TmF2aWdhdGlvbkZvckZyYW1lKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLU2FtZURvY3Vt
ZW50TmF2aWdhdGlvblR5cGUgdHlwZSkKQEAgLTEwNzcsNyArMTA5OSwxMCBAQCB2b2lkIEluamVj
dGVkQnVuZGxlUGFnZTo6ZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUoV0tCdW5kbGVGcmFt
ZVJlZiBmcmFtZSkKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgLSBoYXMg
Iik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKHBlbmRpbmdGcmFtZVVubG9h
ZEV2ZW50cyk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIG9udW5sb2Fk
IGhhbmRsZXIocylcbiIpOwotICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmlu
Z0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQo
KnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogfQog
CkBAIC0xMTUwLDcgKzExNzUsMTAgQEAgV0tVUkxSZXF1ZXN0UmVmIEluamVjdGVkQnVuZGxlUGFn
ZTo6d2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UKICAgICAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgcmVkaXJlY3RSZXNwb25zZSAiKTsKICAgICAg
ICAgZHVtcFJlc3BvbnNlRGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQocmVzcG9uc2Us
IHN0cmluZ0J1aWxkZXIsIGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcEFs
bEhUVFBSZWRpcmVjdGVkUmVzcG9uc2VIZWFkZXJzKCkpOwogICAgICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpz
dHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAg
IGlmIChpbmplY3RlZEJ1bmRsZS5pc1Rlc3RSdW5uaW5nKCkgJiYgaW5qZWN0ZWRCdW5kbGUudGVz
dFJ1bm5lcigpLT53aWxsU2VuZFJlcXVlc3RSZXR1cm5zTnVsbCgpKQpAQCAtMTE4Niw3ICsxMjE0
LDEwIEBAIFdLVVJMUmVxdWVzdFJlZiBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxTZW5kUmVxdWVz
dEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlCiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZExpdGVyYWwoIkJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCAiKTsKICAgICAg
ICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5nKHVybFN0cmluZykpOwogICAg
ICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgICAgICBpbmplY3Rl
ZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAg
ICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgICAgIH0KICAgICB9CkBAIC0xMjE1LDcgKzEyNDYsMTAgQEAgdm9pZCBJbmplY3RlZEJ1
bmRsZVBhZ2U6OmRpZFJlY2VpdmVSZXNwb25zZUZvclJlc291cmNlKFdLQnVuZGxlUGFnZVJlZiBw
YWdlLCBXS0IKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgLSBkaWRSZWNl
aXZlUmVzcG9uc2UgIik7CiAgICAgICAgIGR1bXBSZXNwb25zZURlc2NyaXB0aW9uU3VpdGFibGVG
b3JUZXN0UmVzdWx0KHJlc3BvbnNlLCBzdHJpbmdCdWlsZGVyKTsKICAgICAgICAgc3RyaW5nQnVp
bGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5n
QnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4
dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAK
IApAQCAtMTIzOSw3ICsxMjczLDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNl
aXZlUmVzcG9uc2VGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCCiAKICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKIAotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRl
eHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQo
KnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEluamVjdGVk
QnVuZGxlUGFnZTo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGhGb3JSZXNvdXJjZShXS0J1bmRsZVBh
Z2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIHVpbnQ2NF90LCB1aW50NjRfdCkKQEAgLTEyNTgsNyAr
MTI5NSwxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmluaXNoTG9hZEZvclJlc291
cmNlKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZQogICAgIFN0cmluZ0J1aWxkZXIgc3Ry
aW5nQnVpbGRlcjsKICAgICBkdW1wUmVzb3VyY2VVUkwoaWRlbnRpZmllciwgc3RyaW5nQnVpbGRl
cik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgLSBkaWRGaW5pc2hMb2FkaW5n
XG4iKTsKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAg
ICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZhaWxMb2Fk
Rm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCB1aW50NjRfdCBp
ZGVudGlmaWVyLCBXS0Vycm9yUmVmIGVycm9yKQpAQCAtMTI3Niw3ICsxMzE2LDEwIEBAIHZvaWQg
SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRGYWlsTG9hZEZvclJlc291cmNlKFdLQnVuZGxlUGFnZVJl
ZiwgV0tCdW5kbGVGcmFtZVJlCiAKICAgICBkdW1wRXJyb3JEZXNjcmlwdGlvblN1aXRhYmxlRm9y
VGVzdFJlc3VsdChlcnJvciwgc3RyaW5nQnVpbGRlcik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmQoJ1xuJyk7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNl
CisgICAgICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRD
YWNoZVJlc3BvbnNlKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgdWludDY0X3Qg
aWRlbnRpZmllcikKQEAgLTEyOTEsNyArMTMzNCwxMCBAQCBib29sIEluamVjdGVkQnVuZGxlUGFn
ZTo6c2hvdWxkQ2FjaGVSZXNwb25zZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYs
CiAgICAgU3RyaW5nQnVpbGRlciBzdHJpbmdCdWlsZGVyOwogICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kTnVtYmVyKGlkZW50aWZpZXIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
IC0gd2lsbENhY2hlUmVzcG9uc2U6IGNhbGxlZFxuIik7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0
cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0
VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAgICAvLyBUaGUg
ZGVmYXVsdCBiZWhhdmlvciBpcyB0aGUgY2FjaGUgdGhlIHJlc3BvbnNlLgogICAgIHJldHVybiB0
cnVlOwpAQCAtMTMzNSw3ICsxMzgxLDEwIEBAIFdLQnVuZGxlUGFnZVBvbGljeUFjdGlvbiBJbmpl
Y3RlZEJ1bmRsZVBhZ2U6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV0tCCiAgICAg
ICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIHNob3VsZCBvcGVuIFVSTHMgZXh0ZXJu
YWxseSAtICIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChXS0J1bmRsZU5hdmlnYXRp
b25BY3Rpb25HZXRTaG91bGRPcGVuRXh0ZXJuYWxVUkxzKG5hdmlnYXRpb25BY3Rpb24pID8gInll
cyIgOiAibm8iKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAg
IGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAg
ICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBpZiAoIWluamVjdGVkQnVuZGxlLnRl
c3RSdW5uZXIoKS0+aXNQb2xpY3lEZWxlZ2F0ZUVuYWJsZWQoKSkKQEAgLTEzNjMsNyArMTQxMiwx
MCBAQCBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb24gSW5qZWN0ZWRCdW5kbGVQYWdlOjpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdLQgogICAgIH0KIAogICAgIHN0cmluZ0J1aWxkZXIu
YXBwZW5kKCdcbicpOwotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRl
ci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAg
ZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigp
LT5ub3RpZnlEb25lKCk7CiAKQEAgLTEzODQsNyArMTQzNiwxMCBAQCBXS0J1bmRsZVBhZ2VQb2xp
Y3lBY3Rpb24gSW5qZWN0ZWRCdW5kbGVQYWdlOjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXS0J1
bmRsZVBhZwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIlBvbGljeSBkZWxl
Z2F0ZTogcmVzb3VyY2UgaXMgYW4gYXR0YWNobWVudCwgc3VnZ2VzdGVkIGZpbGUgbmFtZSBcJyIp
OwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhmaWxlbmFtZSkpOwog
ICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIlwnXG4iKTsKLSAgICAgICAgSW5q
ZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICAgICAgSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLm91dHB1dFRleHQoKnN0
cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAg
aWYgKGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKSAmJiBpbmplY3RlZEJ1bmRsZS50ZXN0UnVu
bmVyKCktPnNob3VsZERlY2lkZVJlc3BvbnNlUG9saWN5QWZ0ZXJEZWxheSgpKQpAQCAtMTQ4MSwx
MCArMTUzNiwxMyBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6d2lsbEFkZE1lc3NhZ2VUb0Nv
bnNvbGUoV0tTdHJpbmdSZWYgbWVzc2FnZSwgdWludDMyX3QgbAogICAgIHN0cmluZ0J1aWxkZXIu
YXBwZW5kKG1lc3NhZ2VTdHJpbmcpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwog
Ci0gICAgaWYgKGluamVjdGVkQnVuZGxlLmR1bXBKU0NvbnNvbGVMb2dJblN0ZEVycigpKQotICAg
ICAgICBpbmplY3RlZEJ1bmRsZS5kdW1wVG9TdGRFcnIoc3RyaW5nQnVpbGRlci50b1N0cmluZygp
KTsKLSAgICBlbHNlCi0gICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVp
bGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCkpIHsKKyAgICAgICAgaWYgKGluamVjdGVkQnVuZGxlLmR1bXBKU0NvbnNvbGVMb2dJ
blN0ZEVycigpKQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUuZHVtcFRvU3RkRXJyKCpzdHJp
bmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0
KCpzdHJpbmcpOworICAgIH0gZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEluamVj
dGVkQnVuZGxlUGFnZTo6d2lsbFNldFN0YXR1c2JhclRleHQoV0tTdHJpbmdSZWYgc3RhdHVzYmFy
VGV4dCkKQEAgLTE1MDAsNyArMTU1OCwxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6d2ls
bFNldFN0YXR1c2JhclRleHQoV0tTdHJpbmdSZWYgc3RhdHVzYmFyVGV4dCkKICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZExpdGVyYWwoIlVJIERFTEVHQVRFIFNUQVRVUyBDQUxMQkFDSzogc2V0U3Rh
dHVzVGV4dDoiKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhzdGF0dXNi
YXJUZXh0KSk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgaW5qZWN0ZWRC
dW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5k
bGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAK
IHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUnVuSmF2YVNjcmlwdEFsZXJ0KFdLU3RyaW5n
UmVmIG1lc3NhZ2UsIFdLQnVuZGxlRnJhbWVSZWYpCkBAIC0xNTEzLDcgKzE1NzQsMTAgQEAgdm9p
ZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxSdW5KYXZhU2NyaXB0QWxlcnQoV0tTdHJpbmdSZWYg
bWVzc2FnZSwgV0tCdW5kbGVGcmEKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIkFM
RVJUOiAiKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhtZXNzYWdlKSk7
CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0
cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0
VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW5q
ZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUnVuSmF2YVNjcmlwdENvbmZpcm0oV0tTdHJpbmdSZWYgbWVz
c2FnZSwgV0tCdW5kbGVGcmFtZVJlZikKQEAgLTE1MjYsNyArMTU5MCwxMCBAQCB2b2lkIEluamVj
dGVkQnVuZGxlUGFnZTo6d2lsbFJ1bkphdmFTY3JpcHRDb25maXJtKFdLU3RyaW5nUmVmIG1lc3Nh
Z2UsIFdLQnVuZGxlRgogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiQ09ORklSTTog
Iik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQodG9XVEZTdHJpbmcobWVzc2FnZSkpOwogICAg
IHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRl
eHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQo
KnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEluamVjdGVk
QnVuZGxlUGFnZTo6d2lsbFJ1bkphdmFTY3JpcHRQcm9tcHQoV0tTdHJpbmdSZWYgbWVzc2FnZSwg
V0tTdHJpbmdSZWYgZGVmYXVsdFZhbHVlLCBXS0J1bmRsZUZyYW1lUmVmKQpAQCAtMTUzNyw3ICsx
NjA0LDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUnVuSmF2YVNjcmlwdFByb21w
dChXS1N0cmluZ1JlZiBtZXNzYWdlLCBXS1N0cmluZ1JlCiAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmRMaXRlcmFsKCIsIGRlZmF1bHQgdGV4dDogIik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQo
dG9XVEZTdHJpbmcoZGVmYXVsdFZhbHVlKSk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xu
Jyk7Ci0gICAgSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLm91dHB1dFRleHQoc3RyaW5nQnVp
bGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgIEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5vdXRwdXRUZXh0
KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbmplY3Rl
ZEJ1bmRsZVBhZ2U6OmRpZFJlYWNoQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdLU2VjdXJp
dHlPcmlnaW5SZWYgb3JpZ2luLCBpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQpCkBAIC0xNTU2LDcg
KzE2MjYsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlYWNoQXBwbGljYXRpb25D
YWNoZU9yaWdpblF1b3RhKFdLU2VjdXJpdHlPcmlnaW5SZWYKICAgICAgICAgc3RyaW5nQnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCIgdG90YWxTcGFjZU5lZWRlZDp+Iik7CiAgICAgICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kTnVtYmVyKHRydW5jYXRlZFNwYWNlTmVlZGVkKTsKICAgICAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQo
c3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0
VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9
CiAKICAgICBpZiAoaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGREaXNhbGxvd0lu
Y3JlYXNlRm9yQXBwbGljYXRpb25DYWNoZVF1b3RhKCkpCkBAIC0xNTc2LDcgKzE2NDksMTAgQEAg
dWludDY0X3QgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRFeGNlZWREYXRhYmFzZVF1b3RhKFdLU2Vj
dXJpdHlPcmlnaW5SZWYgb3JpZ2luLAogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVy
YWwoIiBkYXRhYmFzZToiKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQodG9XVEZTdHJp
bmcoZGF0YWJhc2VOYW1lKSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwot
ICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmco
KSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgdWludDY0X3QgZGVmYXVs
dFF1b3RhID0gNSAqIDEwMjQgKiAxMDI0OwpAQCAtMTU5NSw3ICsxNjcxLDEwIEBAIHVpbnQ2NF90
IEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRXhjZWVkRGF0YWJhc2VRdW90YShXS1NlY3VyaXR5T3Jp
Z2luUmVmIG9yaWdpbiwKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
VUkgREVMRUdBVEUgREFUQUJBU0UgQ0FMTEJBQ0s6IGluY3JlYXNlZCBxdW90YSB0byAiKTsKICAg
ICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKG5ld1F1b3RhKTsKICAgICAgICAg
ICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICAgICAgaW5qZWN0ZWRCdW5k
bGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAg
IGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gbmV3
UXVvdGE7CkBAIC0xNjY5LDcgKzE3NDgsMTAgQEAgYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNo
b3VsZEJlZ2luRWRpdGluZyhXS0J1bmRsZVJhbmdlSGFuZGxlUmVmIHJhbmdlKQogICAgICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIkVESVRJTkcgREVMRUdBVEU6IHNob3VsZEJlZ2lu
RWRpdGluZ0luRE9NUmFuZ2U6Iik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHJhbmdl
VG9TdHIobV9wYWdlLCBtX3dvcmxkLmdldCgpLCByYW5nZSkpOwogICAgICAgICBzdHJpbmdCdWls
ZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0
KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KICAg
ICByZXR1cm4gaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGRBbGxvd0VkaXRpbmco
KTsKIH0KQEAgLTE2ODUsNyArMTc2NywxMCBAQCBib29sIEluamVjdGVkQnVuZGxlUGFnZTo6c2hv
dWxkRW5kRWRpdGluZyhXS0J1bmRsZVJhbmdlSGFuZGxlUmVmIHJhbmdlKQogICAgICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIkVESVRJTkcgREVMRUdBVEU6IHNob3VsZEVuZEVkaXRp
bmdJbkRPTVJhbmdlOiIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChyYW5nZVRvU3Ry
KG1fcGFnZSwgbV93b3JsZC5nZXQoKSwgcmFuZ2UpKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmQoJ1xuJyk7Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVp
bGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3Ry
aW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgcmV0
dXJuIGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkQWxsb3dFZGl0aW5nKCk7CiB9
CkBAIC0xNzExLDcgKzE3OTYsMTAgQEAgYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZElu
c2VydE5vZGUoV0tCdW5kbGVOb2RlSGFuZGxlUmVmIG5vZGUsIFdLQnVuZGxlUmEKICAgICAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgZ2l2ZW5BY3Rpb246Iik7CiAgICAgICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kKGluc2VydGFjdGlvbnN0cmluZ1thY3Rpb25dKTsKICAgICAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1
dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5n
ID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUu
b3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsK
ICAgICB9CiAgICAgcmV0dXJuIGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkQWxs
b3dFZGl0aW5nKCk7CiB9CkBAIC0xNzM3LDcgKzE4MjUsMTAgQEAgYm9vbCBJbmplY3RlZEJ1bmRs
ZVBhZ2U6OnNob3VsZEluc2VydFRleHQoV0tTdHJpbmdSZWYgdGV4dCwgV0tCdW5kbGVSYW5nZUhh
bmRsZVIKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgZ2l2ZW5BY3Rpb246
Iik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGluc2VydGFjdGlvbnN0cmluZ1thY3Rp
b25dKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGluamVj
dGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAg
aW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgcmV0dXJuIGluamVjdGVkQnVuZGxlLnRlc3RSdW5u
ZXIoKS0+c2hvdWxkQWxsb3dFZGl0aW5nKCk7CiB9CkBAIC0xNzUzLDcgKzE4NDQsMTAgQEAgYm9v
bCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZERlbGV0ZVJhbmdlKFdLQnVuZGxlUmFuZ2VIYW5k
bGVSZWYgcmFuZ2UpCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRURJVElO
RyBERUxFR0FURTogc2hvdWxkRGVsZXRlRE9NUmFuZ2U6Iik7CiAgICAgICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kKHJhbmdlVG9TdHIobV9wYWdlLCBtX3dvcmxkLmdldCgpLCByYW5nZSkpOwogICAg
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUu
b3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1
bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFT
SCgpOwogICAgIH0KICAgICByZXR1cm4gaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91
bGRBbGxvd0VkaXRpbmcoKTsKIH0KQEAgLTE3ODQsNyArMTg3OCwxMCBAQCBib29sIEluamVjdGVk
QnVuZGxlUGFnZTo6c2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZShXS0J1bmRsZVJhbmdlSGFuZGxl
UmVmIGZyb21SYQogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiBzdGlsbFNl
bGVjdGluZzoiKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoYm9vbHN0cmluZ1tzdGls
bFNlbGVjdGluZ10pOyAKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAg
ICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsK
KyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgcmV0dXJuIGluamVjdGVkQnVuZGxl
LnRlc3RSdW5uZXIoKS0+c2hvdWxkQWxsb3dFZGl0aW5nKCk7CiB9CkBAIC0xODAyLDcgKzE4OTks
MTAgQEAgYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEFwcGx5U3R5bGUoV0tCdW5kbGVD
U1NTdHlsZURlY2xhcmF0aW9uUmVmIHN0eWxlLAogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
ZExpdGVyYWwoIiB0b0VsZW1lbnRzSW5ET01SYW5nZToiKTsKICAgICAgICAgc3RyaW5nQnVpbGRl
ci5hcHBlbmQocmFuZ2VUb1N0cihtX3BhZ2UsIG1fd29ybGQuZ2V0KCksIHJhbmdlKSk7CiAgICAg
ICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBpbmplY3RlZEJ1bmRsZS5v
dXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGluamVjdGVkQnVu
ZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNI
KCk7CiAgICAgfQogICAgIHJldHVybiBpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3Vs
ZEFsbG93RWRpdGluZygpOwogfQpAQCAtMTgxOSw3ICsxOTE5LDEwIEBAIHZvaWQgSW5qZWN0ZWRC
dW5kbGVQYWdlOjpkaWRCZWdpbkVkaXRpbmcoV0tTdHJpbmdSZWYgbm90aWZpY2F0aW9uTmFtZSkK
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIkVESVRJTkcgREVMRUdBVEU6IHdlYlZp
ZXdEaWRCZWdpbkVkaXRpbmc6Iik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQodG9XVEZTdHJp
bmcobm90aWZpY2F0aW9uTmFtZSkpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwot
ICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBD
UkFTSCgpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRW5kRWRpdGluZyhXS1N0
cmluZ1JlZiBub3RpZmljYXRpb25OYW1lKQpAQCAtMTgzNCw3ICsxOTM3LDEwIEBAIHZvaWQgSW5q
ZWN0ZWRCdW5kbGVQYWdlOjpkaWRFbmRFZGl0aW5nKFdLU3RyaW5nUmVmIG5vdGlmaWNhdGlvbk5h
bWUpCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJFRElUSU5HIERFTEVHQVRFOiB3
ZWJWaWV3RGlkRW5kRWRpdGluZzoiKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0
cmluZyhub3RpZmljYXRpb25OYW1lKSk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7
Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAg
IENSQVNIKCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRDaGFuZ2UoV0tTdHJp
bmdSZWYgbm90aWZpY2F0aW9uTmFtZSkKQEAgLTE4NDksNyArMTk1NSwxMCBAQCB2b2lkIEluamVj
dGVkQnVuZGxlUGFnZTo6ZGlkQ2hhbmdlKFdLU3RyaW5nUmVmIG5vdGlmaWNhdGlvbk5hbWUpCiAg
ICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3
RGlkQ2hhbmdlOiIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5nKG5vdGlm
aWNhdGlvbk5hbWUpKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBpbmpl
Y3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpbmplY3Rl
ZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsK
IH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZENoYW5nZVNlbGVjdGlvbihXS1N0cmlu
Z1JlZiBub3RpZmljYXRpb25OYW1lKQpAQCAtMTg2NCw3ICsxOTczLDEwIEBAIHZvaWQgSW5qZWN0
ZWRCdW5kbGVQYWdlOjpkaWRDaGFuZ2VTZWxlY3Rpb24oV0tTdHJpbmdSZWYgbm90aWZpY2F0aW9u
TmFtZSkKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIkVESVRJTkcgREVMRUdBVEU6
IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246Iik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQo
dG9XVEZTdHJpbmcobm90aWZpY2F0aW9uTmFtZSkpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5k
KCdcbicpOwotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0
cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQor
ICAgICAgICBDUkFTSCgpOwogfQogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAK
aW5kZXggZTYyZWI5My4uOTI2ODg0OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xNjc4LDEwICsxNjc4LDEzIEBA
IHZvaWQgVGVzdFJ1bm5lcjo6c3RhdGlzdGljc0RpZFJ1blRlbGVtZXRyeUNhbGxiYWNrKHVuc2ln
bmVkIHRvdGFsUHJldmFsZW50UmVzb3VyCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFs
KCIsIFwidG9wM1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbnNcIiA6ICIpOwogICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kTnVtYmVyKHRvcDNTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5zKTsK
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiB9Iik7CisKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgSlNWYWx1ZVJlZiBy
ZXN1bHQgPSBKU1ZhbHVlTWFrZUZyb21KU09OU3RyaW5nKGNvbnRleHQsIEpTU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKHN0cmluZy0+dXRmOCgpLmRhdGEoKSkpOwogICAgIAotICAgIEpTVmFs
dWVSZWYgcmVzdWx0ID0gSlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmluZyhjb250ZXh0LCBKU1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRh
dGEoKSkpOwotICAgIAotICAgIGNhbGxUZXN0UnVubmVyQ2FsbGJhY2soU3RhdGlzdGljc0RpZFJ1
blRlbGVtZXRyeUNhbGxiYWNrSUQsIDEsICZyZXN1bHQpOworICAgICAgICBjYWxsVGVzdFJ1bm5l
ckNhbGxiYWNrKFN0YXRpc3RpY3NEaWRSdW5UZWxlbWV0cnlDYWxsYmFja0lELCAxLCAmcmVzdWx0
KTsKKyAgICB9IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBUZXN0UnVubmVyOjpz
dGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKQpAQCAtMTg5MSwxMCArMTg5NCwxMyBAQCB2b2lkIFRl
c3RSdW5uZXI6OmNhbGxEaWRSZWNlaXZlQWxsU3RvcmFnZUFjY2Vzc0VudHJpZXNDYWxsYmFjayhW
ZWN0b3I8U3RyaW5nPiYgZAogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIlwi
Iik7CiAgICAgfQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXSIpOwotICAgIAot
ICAgIEpTVmFsdWVSZWYgcmVzdWx0ID0gSlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmluZyhjb250ZXh0
LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCku
dXRmOCgpLmRhdGEoKSkpOwogCi0gICAgY2FsbFRlc3RSdW5uZXJDYWxsYmFjayhBbGxTdG9yYWdl
QWNjZXNzRW50cmllc0NhbGxiYWNrSUQsIDEsICZyZXN1bHQpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICBKU1ZhbHVlUmVmIHJlc3Vs
dCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmcoY29udGV4dCwgSlNTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoc3RyaW5nLT51dGY4KCkuZGF0YSgpKSk7CisKKyAgICAgICAgY2FsbFRlc3RS
dW5uZXJDYWxsYmFjayhBbGxTdG9yYWdlQWNjZXNzRW50cmllc0NhbGxiYWNrSUQsIDEsICZyZXN1
bHQpOworICAgIH0gZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiAjaWYgUExBVEZPUk0oTUFD
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCA2OGM0OWM4
Li5mM2JhN2ZkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApA
QCAtMTg4MSw3ICsxODgxLDEwIEBAIFdLU3RyaW5nUmVmIFRlc3RDb250cm9sbGVyOjpkZWNpZGVE
ZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShXS0NvbnRleHRSZWYsCiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCJEb3dubG9hZGluZyBVUkwgd2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgXCIi
KTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoc3VnZ2VzdGVkRmlsZW5hbWUpOwogICAgICAgICBi
dWlsZGVyLmFwcGVuZCgiXCJcbiIpOwotICAgICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRw
dXRUZXh0KGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPm91dHB1
dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAg
fQogCiAgICAgY29uc3QgY2hhciogZHVtcFJlbmRlclRyZWVUZW1wID0gbGlicmFyeVBhdGhGb3JU
ZXN0aW5nKCk7CkBAIC0xOTExLDcgKzE5MTQsMTAgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6ZG93
bmxvYWREaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RUb1VSTChXS0NvbnRleHRSZWYsIFdLRG93bmwK
ICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHVybFN0cmluZ1dLID0gYWRvcHRXSyhX
S1VSTENvcHlTdHJpbmcodXJsKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHRvU1REKHVybFN0
cmluZ1dLKS5jX3N0cigpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcIi5cbiIp
OwotICAgICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KGJ1aWxkZXIudG9TdHJp
bmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPm91dHB1dFRleHQoKnN0cmluZyk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogfQogCkBAIC0xOTM0LDcgKzE5
NDAsMTAgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRGYWlsKFdLQ29udGV4dFJl
ZiwgV0tEb3dubG9hZFJlZiwgV0tFcnJvclJlZiBlcnIKICAgICAgICAgZXJyb3JCdWlsZGVyLmFw
cGVuZCh0b1dURlN0cmluZyhlcnJvckRlc2NyaXB0aW9uKSk7CiAgICAgICAgIGVycm9yQnVpbGRl
ci5hcHBlbmQoIlxuIik7CiAKLSAgICAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+b3V0cHV0VGV4
dChlcnJvckJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGVy
cm9yQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+
b3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsK
ICAgICB9CiAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+bm90aWZ5RG93bmxvYWREb25lKCk7CiB9
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IGNkNWRiMGEu
LmVlMmY1NTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRp
b24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBA
IC0yNDgsOSArMjQ4LDEyIEBAIHZvaWQgVGVzdEludm9jYXRpb246OmZvcmNlUmVwYWludERvbmVD
YWxsYmFjayhXS0Vycm9yUmVmIGVycm9yLCB2b2lkKiBjb250ZXh0KQogCiB2b2lkIFRlc3RJbnZv
Y2F0aW9uOjpkdW1wUmVzdWx0cygpCiB7Ci0gICAgaWYgKG1fdGV4dE91dHB1dC5sZW5ndGgoKSB8
fCAhbV9hdWRpb1Jlc3VsdCkKLSAgICAgICAgZHVtcChtX3RleHRPdXRwdXQudG9TdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKLSAgICBlbHNlCisgICAgaWYgKG1fdGV4dE91dHB1dC5sZW5ndGgoKSB8
fCAhbV9hdWRpb1Jlc3VsdCkgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBtX3RleHRPdXRw
dXQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGR1bXAoc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKKyAgICB9IGVsc2UKICAgICAgICAg
ZHVtcEF1ZGlvKG1fYXVkaW9SZXN1bHQuZ2V0KCkpOwogCiAgICAgaWYgKG1fZHVtcFBpeGVscykg
ewotLSAKMi45LjMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339026</attachid>
            <date>2018-04-27 14:17:19 -0700</date>
            <delta_ts>2018-04-30 15:03:12 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Teach-StringBuilder-that-it-is-fallible.patch</filename>
            <type>text/plain</type>
            <size>471161</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSA4ODQwMGEzYTY0OWE4NTcwMjkyMjNiYTU2ZjJmZmNjZTMzMmI2MTk3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBXZWQsIDI1IEFwciAyMDE4IDIxOjUwOjI0IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gVGVhY2gg
U3RyaW5nQnVpbGRlciB0aGF0IGl0IGlzIGZhbGxpYmxlCgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcCAgICAgICAgIHwgICA0ICstCiAuLi4vQVBJL3Rlc3Rz
L0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwICAgICAgICAgICB8IDMxMCArKysrKysrLS0tLS0t
CiAuLi4vQVBJL3Rlc3RzL1BpbmdQb25nU3RhY2tPdmVyZmxvd1Rlc3QuY3BwICAgICAgICB8ICAg
OSArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
fCAgOTUgKysrKwogLi4uL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCAgICAgICAg
ICAgICAgfCAgMjMgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBTbmFwc2hvdEJ1
aWxkZXIuY3BwIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNv
bGVNZXNzYWdlLmNwcCB8ICAxMyArLQogLi4uL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0
aWVzLmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9JbnRlcnByZXRlci5jcHAgIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcCB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAgICAgICAgICAgICAgICAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwICAgICAgIHwgICA5ICstCiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcCAgICB8ICAxNSArLQogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwICAgfCAgIDQgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwICAgIHwgICA0ICstCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcCB8ICAgNCAr
LQogLi4uL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgfCAg
MjQgKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAg
IHwgICA2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcCAg
ICAgICB8ICAxOCArLQogLi4uL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwICAg
ICAgICAgICAgfCAgMjEgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmpl
Y3QuY3BwICAgICAgIHwgIDE2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRl
cmFsUGFyc2VyLmNwcCAgICB8ICAxMCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3B0aW9ucy5jcHAgICAgICAgICAgfCAgMTAgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAgIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcCB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAgICAgICAgfCAgIDQgKy0KIC4uLi9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcCAgIHwgICA0ICstCiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwICB8ICAgNCArLQogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmNwcCAgICAgfCAgIDYgKy0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVTZXQuY3BwICAgICAgICAgIHwgIDIzICst
CiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAgICAgICAgICAgICAgICB8ICAy
MCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcCAg
fCAgIDkgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcCAgICAg
ICAgIHwgICA3ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmggICAg
ICAgICAgICB8ICAzMCArLQogU291cmNlL1dURi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAxNDMgKysrKysrCiBTb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcCAg
ICAgICAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3Bw
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XVEYvd3RmL0pTT05WYWx1
ZXMuY3BwICAgICAgICAgICAgICAgICAgICAgIHwgIDExICstCiBTb3VyY2UvV1RGL3d0Zi9Mb2dn
ZXIuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMSArLQogU291cmNlL1dURi93dGYv
TWVkaWFUaW1lLmNwcCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XVEYv
d3RmL1VVSUQuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuY3BwICAgICAgICAgICAgICB8IDIzOSArKysrKyst
LS0tCiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaCAgICAgICAgICAgICAgICB8
IDI2MSArKysrKysrLS0tLQogU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVySlNPTi5j
cHAgICAgICAgICAgfCAgMjUgKy0KIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAg
ICAgICAgICAgICAgICAgIHwgIDM0ICstCiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwu
aCAgICAgICAgICAgICAgICAgICB8ICAxOCArLQogU291cmNlL1dURi93dGYvdGV4dC9UZXh0U3Ry
ZWFtLmNwcCAgICAgICAgICAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNTEwICsrKysrKysrKysrKysrKysrKysrKwog
Li4uL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudENvbnRhY3RDb2NvYS5tbSAgfCAgIDUg
Ky0KIC4uLi9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcCAgIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNw
cCB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5j
cHAgICAgfCAgMTUgKy0KIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBh
dGguY3BwICAgIHwgICA0ICstCiAuLi4vTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0luZGV4VmFs
dWVTdG9yZS5jcHAgICB8ICAgNCArLQogLi4uL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxp
dGVJREJDdXJzb3IuY3BwICAgfCAgIDggKy0KIC4uLi9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCRGF0YWJhc2VJbmZvLmNwcCAgIHwgICA0ICstCiAuLi4vaW5kZXhlZGRiL3NoYXJlZC9JREJP
YmplY3RTdG9yZUluZm8uY3BwICAgICAgICB8ICAgNCArLQogLi4uL21lZGlhc2Vzc2lvbi9XZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCAgICAgICAgfCAgIDggKy0KIC4uLi9Nb2R1bGVzL21lZGlh
c3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgIHwgICA4ICstCiAuLi4vTW9kdWxlcy9w
bHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAgICB8ICAgNCArLQogLi4uL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcCAgICAgICAgfCAgIDQgKy0KIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwICAgIHwgICA4ICstCiAu
Li4vd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcCAgICB8ICAgOCAr
LQogLi4uL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwICAgICAgfCAg
MjMgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCAgICAg
IHwgIDE4ICstCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
Y3BwICB8ICAxMCArLQogLi4uL21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bSAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVy
dFN0cmluZ3MuY3BwIHwgICA0ICstCiAuLi4vV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2Vw
dGlvbkhhbmRsaW5nLmNwcCB8ICAxNiArLQogLi4uL2NvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVk
VVJMRmlsdGVycy5jcHAgICAgICAgfCAgIDQgKy0KIC4uLi9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb24uY3BwIHwgICA3ICstCiAuLi4vY29udGVudGV4dGVuc2lvbnMv
Q29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcCB8ICAgNSArLQogLi4uL0NvbnRlbnRFeHRlbnNp
b25TdHlsZVNoZWV0LmNwcCAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3Jl
L2NvbnRlbnRleHRlbnNpb25zL1Rlcm0uaCAgICAgICAgICAgIHwgICA4ICstCiAuLi4vV2ViQ29y
ZS9jc3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmNwcCB8ICAgNCArLQogU291cmNl
L1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmNwcCAgICAgICAgICAgICAgfCAgMjAgKy0KIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmNwcCAgICAgICAgIHwgICA4ICst
CiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCB8ICAg
NCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcCAgICAgICAgICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcCAgICAg
ICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3VzdG9tSWRlbnRWYWx1ZS5jcHAg
ICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUu
Y3BwICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUu
Y3BwICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VT
cmNWYWx1ZS5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRG
ZWF0dXJlVmFsdWUuY3BwICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250U3R5bGVSYW5nZVZhbHVlLmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udFN0eWxlVmFsdWUuY3BwICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRWYWx1ZS5jcHAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUuY3BwICAgICAgIHwgICA0ICstCiBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHAgICAgICAgICAgICB8ICAgNCArLQogU291
cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwICAgICAgICAgICAgfCAgMTIgKy0K
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNwcCAgICAgIHwgICA0
ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAgICB8
ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwICAgICAgICAg
ICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmNwcCAgICAgICAg
ICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVSdWxlLmNwcCAg
ICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lc1J1bGUu
Y3BwICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMaW5lQm94Q29u
dGFpblZhbHVlLmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWFya3Vw
LmNwcCAgICAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU01l
ZGlhUnVsZS5jcHAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NOYW1lc3BhY2VSdWxlLmNwcCAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFnZVJ1bGUuY3BwICAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcCAgICAgICAgICAgfCAgMTIgKy0KIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3BwICAgICAgIHwgICA0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwICAgICAgICAgICAgICAgICB8ICAxNyArLQog
U291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAgICAgICAgICAgICAgfCAgIDQg
Ky0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTaGFkb3dWYWx1ZS5jcHAgICAgICAgICAgICAgIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmNwcCAgICAgICAgICAgICAg
ICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwICAgICAgICAg
ICAgICAgfCAgIDkgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdXBwb3J0c1J1bGUuY3BwICAg
ICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVGltaW5nRnVuY3Rpb25W
YWx1ZS5jcHAgICAgICB8ICAxNiArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5j
cHAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYXJpYWJs
ZURhdGEuY3BwICAgICAgICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NT
TmFtZXNwYWNlLmNwcCAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0RP
TU1hdHJpeFJlYWRPbmx5LmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nz
cy9EZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9jc3MvRm9udEZhY2UuY3BwICAgICAgICAgICAgICAgICAgICB8ICAxMiArLQogU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhTGlzdC5jcHAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcCAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBT
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwICAgICAgICB8ICAgNSAr
LQogU291cmNlL1dlYkNvcmUvY3NzL1JlY3QuaCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwICAgICAgICAgICAg
IHwgIDMwICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmNwcCAgICAgICAg
ICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5j
cHAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNw
cCAgICAgICAgICAgIHwgIDExICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNl
clRva2VuLmNwcCAgICAgICB8ICA4NyArKy0tCiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlclRva2VuUmFuZ2UuY3BwICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAgICAgfCAgMjcgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTVG9rZW5pemVyLmNwcCAgICAgICAgIHwgIDM4ICstCiBTb3VyY2UvV2ViQ29yZS9k
b20vRGF0YXNldERPTVN0cmluZ01hcC5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcCAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIyICstCiBTb3Vy
Y2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQog
U291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDkg
Ky0KIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcCAgICAgICAgICAg
ICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDkgKy0KIFNvdXJjZS9XZWJDb3JlL2RvbS9UZXh0Tm9kZVRyYXZlcnNhbC5jcHAg
ICAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21t
YW5kLmNwcCAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNw
cCAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSFRNTElu
dGVyY2hhbmdlLmNwcCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01h
cmt1cEFjY3VtdWxhdG9yLmNwcCAgICAgICB8ICAxNyArLQogU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UZXh0SXRlcmF0b3IuY3BwICAgICAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwICAgICAgICB8ICAgNSArLQogU291cmNlL1dl
YkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tICAgICAgfCAgIDggKy0KIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbSAgICAgIHwgICA1ICstCiBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0gICAgICAgICAgICB8ICAgNSAr
LQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwICAgICAgICAgICAgICAgICAgfCAg
MjcgKy0KIFNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAgICAgICAg
IHwgIDI0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAgICAgICAgICAg
ICAgICB8ICAgOSArLQogU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAgICAg
ICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAg
ICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVy
LmNwcCAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9y
RWxlbWVudC5jcHAgICAgICAgICAgfCAgMTIgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuY3BwICAgICAgICAgIHwgIDIxICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb250RWxlbWVudC5jcHAgICAgICAgICAgICB8ICAgNyArLQogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW1hZ2VFbGVtZW50LmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgICAgICAgICAgIHwgICA5ICstCiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcCAgICAgICAgICB8ICAgNCArLQogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgfCAgMTIgKy0KIFNv
dXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAgICAgICAgICAgICAgIHwgICA1ICst
CiBTb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwICAgICAgICB8ICAg
NCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUZyYWdtZW50VVJJUGFyc2VyLmNwcCAgICAg
fCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcCAgICAgICAgICAgICAg
ICAgIHwgIDE0ICstCiAuLi4vaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNw
cCAgICAgICB8ICAgNCArLQogLi4uL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REJhc2UuY3BwICAgfCAgIDcgKy0KIC4uLi9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlLmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
U291cmNlVHJhY2tlci5jcHAgICB8ICAgNyArLQogU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFRva2VuaXplci5jcHAgICAgICAgfCAgMTIgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxUcmVlQnVpbGRlci5jcHAgICAgIHwgIDI3ICstCiBTb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9CdWZmZXJlZExpbmVSZWFkZXIuY3BwICAgfCAgIDggKy0KIFNvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcCAgICAgICAgICAgIHwgICA1ICstCiBTb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAgICAgICAgICAgICAgICB8ICAgNiArLQogU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwICAgICAgICAgfCAgIDUgKy0K
IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmNwcCAgICAgIHwgIDYz
ICsrLQogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwICAg
fCAgMTcgKy0KIC4uLi9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCAg
ICAgIHwgIDEzICstCiAuLi4vaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQu
Y3BwICAgICB8ICAgNyArLQogLi4uL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xl
QWdlbnQuY3BwICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFj
Y2Vzc0NvbnRyb2wuY3BwIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljcy5jcHAgICB8ICAgNCArLQogLi4uL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZS5jcHAgICAgfCAgMjUgKy0KIC4uLi9XZWJDb3JlL2xvYWRlci9hcmNo
aXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwIHwgIDI1ICstCiAuLi4vV2ViQ29yZS9sb2FkZXIv
YXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwICB8ICAzNCArLQogLi4uL1dlYkNvcmUvcGFn
ZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAgfCAgNjQgKystCiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcCAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCAgICAgICAgICAgICAgICAgIHwgICA1ICst
CiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcCAgICAgICAgICAgICB8ICAg
NyArLQogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuY3BwICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcCAgICAg
ICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0VHJpZ2dlci5j
cHAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5
UG9saWN5LmNwcCAgfCAgIDkgKy0KIC4uLi9wYWdlL3Njcm9sbGluZy9BeGlzU2Nyb2xsU25hcE9m
ZnNldHMuY3BwICAgICAgIHwgICA4ICstCiAuLi4vcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuY3BwICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVj
aW1hbC5jcHAgICAgICAgICAgICAgICAgfCAgMTIgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0ZpbGVTeXN0ZW0uY3BwICAgICAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QT0RJbnRlcnZhbC5oICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmggICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1VSTC5jcHAgICAgICAgICAgICAgICAgICAgIHwgIDE4ICstCiAuLi4vV2Vi
Q29yZS9wbGF0Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uY3BwICB8ICAgNSArLQogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAgICAgfCAgIDQgKy0K
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvVXNlckFnZW50R0xpYi5jcHAgICAgIHwgICA0
ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAgICAgICAgICB8
ICAgOCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5j
cHAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRl
LmNwcCAgIHwgICA0ICstCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNldHRpbmdz
LmNwcCAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NMYXllci5jcHAgfCAgIDQgKy0KIC4uLi9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZUFWRi5jcHAgICAgIHwgIDEzICstCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGls
ZUNvbnRyb2xsZXIuY3BwICAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvVGlsZUdyaWQuY3BwICAgfCAgIDQgKy0KIC4uLi9ncmFwaGljcy9jYS93aW4v
UGxhdGZvcm1DQUxheWVyV2luLmNwcCAgICAgICAgIHwgICA0ICstCiAuLi4vcGxhdGZvcm0vZ3Jh
cGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwICB8ICAxMCArLQogLi4uL29wZW5nbC9H
cmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAgICAgICAgfCAgMTEgKy0KIC4uLi9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwIHwgIDE1ICstCiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VsZWN0aW9uRGF0YS5jcHAgICAgICB8ICAgNSArLQog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0gICAgICAgfCAgIDQg
Ky0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0gICAgIHwg
ICA2ICstCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1Njcm9sbEFuaW1hdG9yTW9jay5jcHAg
ICB8ICAxNSArLQogLi4uL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrQm94
LmNwcCAgfCAgIDkgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNl
cnMuY3BwICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL01JTUVI
ZWFkZXIuY3BwICAgICB8ICAxMyArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Q
cm94eVNlcnZlci5jcHAgICAgfCAgIDQgKy0KIC4uLi9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3Vy
bERhdGFiYXNlLmNwcCAgICAgICAgIHwgICA0ICstCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL21hYy9Db29raWVKYXJNYWMubW0gICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcCAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvRGF0ZVRpbWVGb3JtYXQuY3BwICAgIHwgIDI2ICstCiAuLi4vV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0RlY29kZUVzY2FwZVNlcXVlbmNlcy5oICB8ICAgOCArLQogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5jcHAgICAgfCAgMjAgKy0KIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNwcCAgIHwgICA0ICstCiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAgICAgICB8ICAxMyAr
LQogLi4uL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVc2VyRGVmaW5lZC5jcHAgfCAg
IDQgKy0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3Bw
IHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vVXNlckFnZW50V2luLmNwcCAg
ICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZS5jcHAgICAg
ICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmNwcCB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpc3RNYXJrZXIuY3BwICAgICAgfCAgIDkgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0LmNwcCAgICAgICAgICAgIHwgIDIzICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVJT1MubW0gICAgICAgICB8ICAxMCArLQogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcCAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcCAgICAgIHwgICA4ICstCiAuLi4vcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuY3BwICAgICAgICB8ICAgNSArLQogLi4uL3Jl
bmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlck1hdGhNTC5jcHAgfCAgIDUgKy0KIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmNwcCAgICAgICAgIHwgICA0ICst
CiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5jcHAgICAgICAgICB8ICAg
NCArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTdHJpbmdCdWlsZGVyLmNwcCAgICAgICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcCAgICAgICAg
ICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmNwcCAg
ICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMu
Y3BwICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0
VmFsdWVzLmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3Jt
VmFsdWUuY3BwICAgICAgICAgICB8ICAyMCArLQogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHUHJvcGVydHlUcmFpdHMuaCAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcCAgICAgICAgICAgICAgIHwgIDY0ICstLQogU291cmNlL1dlYkNvcmUvdGVz
dGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwICAgfCAgMTAgKy0KIFNvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2Vi
Q29yZS94bWwvWE1MRXJyb3JzLmNwcCAgICAgICAgICAgICAgICAgICB8ICAgNyArLQogU291cmNl
L1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCAgICAgICAgICAgICAgfCAgMTUgKy0KIFNv
dXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oICAgICAgICAgICAgICAgIHwgICA3ICst
CiBTb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhGdW5jdGlvbnMuY3BwICAgICAgICAgICAgICB8ICAy
MSArLQogU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCAgICAgICAg
fCAgMTQgKy0KIC4uLi94bWwvcGFyc2VyL0NoYXJhY3RlclJlZmVyZW5jZVBhcnNlcklubGluZXMu
aCAgIHwgICA1ICstCiBTb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb25Ib3N0LmNwcCAgICAgICAgICAg
ICAgICAgICB8ICAgNSArLQogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgNDkgKysKIC4uLi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3Jh
Z2VFbmdpbmUuY3BwICAgIHwgICA0ICstCiAuLi4vV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hl
L05ldHdvcmtDYWNoZS5jcHAgICB8ICAxOCArLQogLi4uL05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZUtleS5jcHAgICAgICAgfCAgIDQgKy0KIC4uLi9jYXB0dXJlL05ldHdvcmtDYXB0
dXJlTWFuYWdlci5jcHAgICAgICAgICAgICAgIHwgICA2ICstCiAuLi4vU2hhcmVkL0RhdGFiYXNl
cy9JbmRleGVkREIvSURCVXRpbGl0aWVzLmNwcCAgICB8ICAgNCArLQogU291cmNlL1dlYktpdC9T
aGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5jcHAgICAgICAgfCAgIDQgKy0KIC4uLi9OZXRzY2Fw
ZS91bml4L05ldHNjYXBlUGx1Z2luTW9kdWxlVW5peC5jcHAgICAgIHwgICA0ICstCiBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcCAgICAgICAgICB8ICAgNyArLQogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJTY3JpcHQuY3BwICAgICAgfCAgIDQgKy0K
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVc2VyU3R5bGVTaGVldC5jcHAgIHwgICA0
ICstCiAuLi4vVUlQcm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAgICAgICB8
ICAgNiArLQogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcCAg
ICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCAg
ICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwICAgICAgICB8ICAgNSArLQogLi4uL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUuY3BwICAgfCAgMjAgKy0KIC4uLi9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVs
ZW1ldHJ5LmNwcCAgICAgICAgIHwgIDMzICstCiAuLi4vUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2Fw
ZUJyb3dzZXJGdW5jcy5jcHAgICAgICB8ICAgNCArLQogU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICB8ICAxMiArCiAuLi4vbWFjL1dlYlZp
ZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tICAgICAgICAgICB8ICAgNSArLQogU291cmNlL1dl
YktpdExlZ2FjeS93aW4vQWNjZXNzaWJsZUJhc2UuY3BwICAgICAgICAgfCAgIDUgKy0KIFNvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1BsdWdpbnMvUGx1Z2luU3RyZWFtLmNwcCAgIHwgICA1ICstCiBU
b29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA3OCAr
KysrCiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZFRhc2suY3BwICB8
ICAgNCArLQogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAg
ICAgfCAgOTIgKystLQogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5j
cHAgICAgICAgfCAgODAgKystLQogLi4uL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMu
Y3BwICAgICAgICAgICAgfCAgODYgKystLQogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0ZpbGVNb25pdG9yLmNwcCAgfCAgMzcgKy0KIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9Mb2dnaW5nLmNwcCAgICAgIHwgIDMwICstCiBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvVGV4dENvZGVjLmNwcCAgICB8ICAgNCArLQogVG9vbHMvVGVzdFdlYktpdEFQ
SS9XVEZTdHJpbmdVdGlsaXRpZXMuaCAgICAgICAgICAgfCAgIDQgKy0KIC4uLi9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwICAgICAgICAgIHwgMTk2ICsrKysrKy0tCiAuLi4v
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCB8ICAxOCArLQog
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgICAgICAgICAgfCAgMTUg
Ky0KIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwICAgICAgICAgIHwg
ICA5ICstCiAzMDIgZmlsZXMgY2hhbmdlZCwgMzYzMiBpbnNlcnRpb25zKCspLCAxMjUyIGRlbGV0
aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0
UmVmLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcAppbmRl
eCAwMjVlYmE0Li41ZWRmNjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTQ29udGV4dFJlZi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRl
eHRSZWYuY3BwCkBAIC0zMTQsNyArMzE0LDkgQEAgSlNTdHJpbmdSZWYgSlNDb250ZXh0Q3JlYXRl
QmFja3RyYWNlKEpTQ29udGV4dFJlZiBjdHgsIHVuc2lnbmVkIG1heFN0YWNrU2l6ZSkKICAgICBC
YWNrdHJhY2VGdW5jdG9yIGZ1bmN0b3IoYnVpbGRlciwgbWF4U3RhY2tTaXplKTsKICAgICBmcmFt
ZS0+aXRlcmF0ZShmdW5jdG9yKTsKIAotICAgIHJldHVybiBPcGFxdWVKU1N0cmluZzo6Y3JlYXRl
KGJ1aWxkZXIudG9TdHJpbmcoKSkubGVha1JlZigpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUo
KnN0cmluZykubGVha1JlZigpOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgSlNHbG9iYWxDb250
ZXh0R2V0UmVtb3RlSW5zcGVjdGlvbkVuYWJsZWQoSlNHbG9iYWxDb250ZXh0UmVmIGN0eCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxp
bWl0VGVzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0V4ZWN1dGlvblRp
bWVMaW1pdFRlc3QuY3BwCmluZGV4IDYzN2IzMDQuLjE2NTI4MzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0
LmNwcApAQCAtMTk0LDIyICsxOTQsMjUgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQog
ICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmROdW1iZXIodGltZUFmdGVyV2F0Y2hkb2dT
aG91bGRIYXZlRmlyZWQuc2Vjb25kcygpKTsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiKSBicmVhazsgfSB9IGZvbygpOyIpOwogCi0gICAgICAgICAgICBKU1N0cmlu
Z1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzY3JpcHRCdWlsZGVy
LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBleGNlcHRpb24gPSBudWxs
cHRyOwotICAgICAgICAgICAgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxz
ZTsKLSAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVh
ZCgpOwotICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxw
dHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOwotICAgICAgICAgICAgYXV0byBlbmRUaW1lID0g
Q1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwotCi0gICAgICAgICAgICBpZiAoKChlbmRUaW1l
IC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiBzaG91
bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKLSAgICAgICAgICAgICAgICBwcmludGYoIlBB
U1M6ICVzIHNjcmlwdCB0aW1lZCBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVy
KTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGlmICgoZW5kVGltZSAtIHN0
YXJ0VGltZSkgPj0gdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpCi0gICAgICAgICAg
ICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IGRpZCBub3QgdGltZSBvdXQgYXMgZXhw
ZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBpZiAoIXNob3Vs
ZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQotICAgICAgICAgICAgICAgICAgICBwcmludGYo
IkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIiwgdGll
ck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKLSAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHNjcmlwdEJ1aWxkZXIudG9TdHJp
bmcoKSkgeworICAgICAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICAg
ICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBzaG91bGRUZXJtaW5hdGVD
YWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOworICAgICAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1l
ID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAgICAgICAgICAgIEpTRXZhbHVh
dGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9u
KTsKKyAgICAgICAgICAgICAgICBhdXRvIGVuZFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhy
ZWFkKCk7CisKKyAgICAgICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRp
bWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiBzaG91bGRUZXJtaW5hdGVDYWxsYmFj
a1dhc0NhbGxlZCkKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiAlcyBzY3JpcHQg
dGltZWQgb3V0IGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAg
ICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgoZW5kVGltZSAtIHN0YXJ0VGlt
ZSkgPj0gdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpCisgICAgICAgICAgICAgICAg
ICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCBkaWQgbm90IHRpbWUgb3V0IGFzIGV4cGVj
dGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAgIGlmICghc2hv
dWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCisgICAgICAgICAgICAgICAgICAgICAgICBw
cmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxu
IiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAg
Q1JBU0goKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKCFleGNlcHRpb24pIHsKICAg
ICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIFRlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRp
b24gd2FzIG5vdCB0aHJvd24uXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKQEAgLTIzNywyMiArMjQw
LDI1IEBAIGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICAgICAgICAgIHNjcmlwdEJ1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgIHJldHVybiByZWN1cnNlKGkgKyAxKTsgfSIpOwogICAg
ICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCJyZWN1cnNlKDApOyIpOwogCi0g
ICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZyhzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAg
ICBleGNlcHRpb24gPSBudWxscHRyOwotICAgICAgICAgICAgc2hvdWxkVGVybWluYXRlQ2FsbGJh
Y2tXYXNDYWxsZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BVVGlt
ZTo6Zm9yQ3VycmVudFRocmVhZCgpOwotICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250
ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOwotICAgICAgICAg
ICAgYXV0byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwotCi0gICAgICAg
ICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxk
SGF2ZUZpcmVkKSAmJiBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKLSAgICAgICAg
ICAgICAgICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCB3aXRoIGluZmluaXRlIHRhaWwgY2FsbHMg
dGltZWQgb3V0IGFzIGV4cGVjdGVkIC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0
aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkKLSAgICAgICAgICAgICAgICAgICAgcHJp
bnRmKCJGQUlMOiAlcyBzY3JpcHQgd2l0aCBpbmZpbml0ZSB0YWlsIGNhbGxzIGRpZCBub3QgdGlt
ZSBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAg
ICBpZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQotICAgICAgICAgICAgICAg
ICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB3aXRoIGluZmluaXRlIHRhaWwgY2FsbHMnIHRp
bWVvdXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAg
ICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOwotICAgICAgICAgICAgfQorICAgICAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAg
ICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
c3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICBleGNlcHRpb24gPSBudWxs
cHRyOworICAgICAgICAgICAgICAgIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkID0g
ZmFsc2U7CisgICAgICAgICAgICAgICAgYXV0byBzdGFydFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJy
ZW50VGhyZWFkKCk7CisgICAgICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBz
Y3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOworICAgICAgICAgICAgICAg
IGF1dG8gZW5kVGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKworICAgICAgICAg
ICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91
bGRIYXZlRmlyZWQpICYmIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQorICAgICAg
ICAgICAgICAgICAgICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCB3aXRoIGluZmluaXRlIHRhaWwg
Y2FsbHMgdGltZWQgb3V0IGFzIGV4cGVjdGVkIC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAg
ICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoKGVuZFRpbWUgLSBz
dGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKQorICAgICAgICAg
ICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgd2l0aCBpbmZpbml0ZSB0YWls
IGNhbGxzIGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVy
KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0Nh
bGxlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHdp
dGggaW5maW5pdGUgdGFpbCBjYWxscycgdGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5c
biIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVl
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAg
IENSQVNIKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmICghZXhjZXB0aW9uKSB7CiAg
ICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0
aW9uIHdhcyBub3QgdGhyb3duLlxuIiwgdGllck9wdGlvbnMudGllcik7CkBAIC0yNzMsMjEgKzI3
OSwyNCBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgICAgICAgICBzY3JpcHRC
dWlsZGVyLmFwcGVuZE51bWJlcih0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZC5zZWNv
bmRzKCkpOwogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpIGJyZWFr
OyB9IH0gY2F0Y2goZSkgeyB9IH0gZm9vKCk7Iik7CiAKLSAgICAgICAgICAgIEpTU3RyaW5nUmVm
IHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHNjcmlwdEJ1aWxkZXIudG9T
dHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7
Ci0gICAgICAgICAgICBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOwor
ICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpKSB7
CisgICAgICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICBleGNl
cHRpb24gPSBudWxscHRyOworICAgICAgICAgICAgICAgIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNr
V2FzQ2FsbGVkID0gZmFsc2U7CiAKLSAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BVVGlt
ZTo6Zm9yQ3VycmVudFRocmVhZCgpOwotICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250
ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOwotICAgICAgICAg
ICAgYXV0byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAgICAg
ICAgICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAg
ICAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBu
dWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICBhdXRvIGVuZFRpbWUgPSBD
UFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGlm
ICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZp
cmVkKSB8fCAhc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpIHsKLSAgICAgICAgICAg
ICAgICBpZiAoISgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3Vs
ZEhhdmVGaXJlZCkpCi0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0
IGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAg
ICAgICAgICAgICAgICBpZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQotICAg
ICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNr
IHdhcyBub3QgY2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAg
ZmFpbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoKChlbmRU
aW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgfHwg
IXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKSB7CisgICAgICAgICAgICAgICAgICAg
IGlmICghKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2
ZUZpcmVkKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0
IGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQg
Y2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAg
ICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgCiAgICAgICAg
ICAgICBpZiAoZXhjZXB0aW9uKQogICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgVGVy
bWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbiB3YXMgbm90IGNhdGNoYWJsZSBhcyBleHBlY3RlZC5c
biIsIHRpZXJPcHRpb25zLnRpZXIpOwpAQCAtMzA5LDI0ICszMTgsMjcgQEAgaW50IHRlc3RFeGVj
dXRpb25UaW1lTGltaXQoKQogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFs
KCJmdW5jdGlvbiBmb28oKSB7IHZhciBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOyB3aGls
ZSAodHJ1ZSkgeyBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKyk7IGlmIChjdXJyZW50Q1BV
VGltZSgpIC0gc3RhcnRUaW1lID4gIik7CiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVu
ZE51bWJlcih0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZC5zZWNvbmRzKCkpOwogICAg
ICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpIGJyZWFrOyB9IH0gZm9vKCk7
Iik7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKLSAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgICAgICBz
aG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOwogCi0gICAgICAgICAgICBh
dXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLSAgICAgICAgICAg
IEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAm
ZXhjZXB0aW9uKTsKLSAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRpbWU6OmZvckN1cnJl
bnRUaHJlYWQoKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHNjcmlwdEJ1aWxkZXIu
dG9TdHJpbmcoKSkgeworICAgICAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAg
ICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBzaG91bGRUZXJt
aW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOworCisgICAgICAgICAgICAgICAgYXV0byBz
dGFydFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CisgICAgICAgICAgICAgICAg
SlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZl
eGNlcHRpb24pOworICAgICAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRpbWU6OmZvckN1
cnJlbnRUaHJlYWQoKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAt
IHN0YXJ0VGltZSkgPCB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgJiYgIXNob3Vs
ZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQotICAgICAgICAgICAgICAgIHByaW50ZigiUEFT
UzogJXMgc2NyaXB0IHRpbWVkIG91dCBhcyBleHBlY3RlZCB3aGVuIG5vIGNhbGxiYWNrIGlzIHNw
ZWNpZmllZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRv
Z1Nob3VsZEhhdmVGaXJlZCkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBz
Y3JpcHQgZGlkIG5vdCB0aW1lIG91dCBhcyBleHBlY3RlZCB3aGVuIG5vIGNhbGxiYWNrIGlzIHNw
ZWNpZmllZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgY2FsbGVkIHN0YWxlIGNh
bGxiYWNrIGZ1bmN0aW9uLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAg
ZmFpbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoKChlbmRU
aW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiAh
c2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCisgICAgICAgICAgICAgICAgICAgIHBy
aW50ZigiUEFTUzogJXMgc2NyaXB0IHRpbWVkIG91dCBhcyBleHBlY3RlZCB3aGVuIG5vIGNhbGxi
YWNrIGlzIHNwZWNpZmllZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAg
IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49
IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKQorICAgICAgICAgICAgICAgICAgICAg
ICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgZGlkIG5vdCB0aW1lIG91dCBhcyBleHBlY3RlZCB3
aGVuIG5vIGNhbGxiYWNrIGlzIHNwZWNpZmllZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAg
ICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZB
SUw6ICVzIHNjcmlwdCBjYWxsZWQgc3RhbGUgY2FsbGJhY2sgZnVuY3Rpb24uXG4iLCB0aWVyT3B0
aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwog
ICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoIWV4Y2VwdGlvbikgewogICAgICAgICAgICAg
ICAgIHByaW50ZigiRkFJTDogJXMgVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbiB3YXMgbm90
IHRocm93bi5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwpAQCAtMzQ3LDIzICszNTksMjYgQEAgaW50
IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBl
bmROdW1iZXIodGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQuc2Vjb25kcygpKTsKICAg
ICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSBicmVhazsgfSB9IGZvbygp
OyIpOwogCi0gICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZyhzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0g
ICAgICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOwotICAgICAgICAgICAgY2FuY2VsVGVybWlu
YXRlQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgICAgIEpTU3RyaW5n
UmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZy0+dXRmOCgp
LmRhdGEoKSk7CisgICAgICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKKyAgICAgICAg
ICAgICAgICBjYW5jZWxUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOwogCi0gICAg
ICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLSAg
ICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxs
cHRyLCAxLCAmZXhjZXB0aW9uKTsKLSAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRpbWU6
OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQ
VVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAgICBKU0V2YWx1YXRlU2Ny
aXB0KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7Cisg
ICAgICAgICAgICAgICAgYXV0byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgp
OwogICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+
PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgJiYgY2FuY2VsVGVybWluYXRlQ2Fs
bGJhY2tXYXNDYWxsZWQgJiYgIWV4Y2VwdGlvbikKLSAgICAgICAgICAgICAgICBwcmludGYoIlBB
U1M6ICVzIHNjcmlwdCB0aW1lb3V0IHdhcyBjYW5jZWxsZWQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVy
T3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGlmICgo
KGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQp
IHx8IGV4Y2VwdGlvbikKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3Jp
cHQgdGltZW91dCB3YXMgbm90IGNhbmNlbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAg
ICAgICAgICAgICAgIGlmICghY2FuY2VsVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCi0gICAg
ICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgY2FsbGJhY2sg
d2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBm
YWlsZWQgPSB0cnVlOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgoKGVuZFRp
bWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiBj
YW5jZWxUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCAmJiAhZXhjZXB0aW9uKQorICAgICAgICAg
ICAgICAgICAgICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCB0aW1lb3V0IHdhcyBjYW5jZWxsZWQg
YXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICBlbHNl
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCB0aW1l
QWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgfHwgZXhjZXB0aW9uKQorICAgICAgICAgICAg
ICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgdGltZW91dCB3YXMgbm90IGNhbmNl
bGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoIWNh
bmNlbFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQorICAgICAgICAgICAgICAgICAgICAgICAg
cHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgdGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5c
biIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVl
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAg
IENSQVNIKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChleGNlcHRpb24pIHsKICAg
ICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIFVuZXhwZWN0ZWQgVGVybWluYXRlZEV4ZWN1
dGlvbkV4Y2VwdGlvbiB0aHJvd24uXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKQEAgLTM4NCwzMyAr
Mzk5LDM2IEBAIGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICAgICAgICAgIHNjcmlw
dEJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1heEJ1c3lMb29wVGltZS5zZWNvbmRzKCkpOyAvLyBpbiBz
ZWNvbmRzLgogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpIGJyZWFr
OyB9IH0gZm9vKCk7Iik7CiAKLSAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKLSAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgICAgICBl
eHRlbmRUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA9IDA7CisgICAgICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBKU1N0
cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmctPnV0
ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7CisgICAg
ICAgICAgICAgICAgZXh0ZW5kVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQgPSAwOwogCi0gICAgICAg
ICAgICBhdXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLSAgICAg
ICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRy
LCAxLCAmZXhjZXB0aW9uKTsKLSAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRpbWU6OmZv
ckN1cnJlbnRUaHJlYWQoKTsKLSAgICAgICAgICAgIGF1dG8gZGVsdGFUaW1lID0gZW5kVGltZSAt
IHN0YXJ0VGltZTsKKyAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZv
ckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRl
eHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7CisgICAgICAgICAg
ICAgICAgYXV0byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAg
ICAgICAgICAgIGF1dG8gZGVsdGFUaW1lID0gZW5kVGltZSAtIHN0YXJ0VGltZTsKICAgICAgICAg
ICAgIAotICAgICAgICAgICAgaWYgKChkZWx0YVRpbWUgPj0gdGltZUJlZm9yZUV4dGVuZGVkRGVh
ZGxpbmUpICYmIChkZWx0YVRpbWUgPCB0aW1lQWZ0ZXJFeHRlbmRlZERlYWRsaW5lKSAmJiAoZXh0
ZW5kVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQgPT0gMikgJiYgZXhjZXB0aW9uKQotICAgICAgICAg
ICAgICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IHRpbWVvdXQgd2FzIGV4dGVuZGVkIGFzIGV4
cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAg
ICAgICAgICAgICBpZiAoZGVsdGFUaW1lIDwgdGltZUJlZm9yZUV4dGVuZGVkRGVhZGxpbmUpCi0g
ICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgd2FzIG5v
dCBleHRlbmRlZCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAg
ICAgICAgIGVsc2UgaWYgKGRlbHRhVGltZSA+PSB0aW1lQWZ0ZXJFeHRlbmRlZERlYWRsaW5lKQot
ICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCBkaWQgbm90IHRpbWVv
dXQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICBpZiAoKGRlbHRhVGlt
ZSA+PSB0aW1lQmVmb3JlRXh0ZW5kZWREZWFkbGluZSkgJiYgKGRlbHRhVGltZSA8IHRpbWVBZnRl
ckV4dGVuZGVkRGVhZGxpbmUpICYmIChleHRlbmRUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA9PSAy
KSAmJiBleGNlcHRpb24pCisgICAgICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgc2Ny
aXB0IHRpbWVvdXQgd2FzIGV4dGVuZGVkIGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGll
cik7CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChkZWx0
YVRpbWUgPCB0aW1lQmVmb3JlRXh0ZW5kZWREZWFkbGluZSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgd2FzIG5vdCBleHRlbmRlZCBhcyBl
eHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBlbHNl
IGlmIChkZWx0YVRpbWUgPj0gdGltZUFmdGVyRXh0ZW5kZWREZWFkbGluZSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IGRpZCBub3QgdGltZW91dC5cbiIs
IHRpZXJPcHRpb25zLnRpZXIpOwogICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlm
IChleHRlbmRUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA8IDEpCi0gICAgICAgICAgICAgICAgICAg
IHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQu
XG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBpZiAoZXh0ZW5kVGVybWlu
YXRlQ2FsbGJhY2tDYWxsZWQgPCAyKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6
ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkIGFmdGVyIHRpbWVvdXQg
ZXh0ZW5zaW9uLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAgIGlm
IChleHRlbmRUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA8IDEpCisgICAgICAgICAgICAgICAgICAg
ICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2Fs
bGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAgIGlmIChleHRl
bmRUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA8IDIpCisgICAgICAgICAgICAgICAgICAgICAgICBw
cmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkIGFm
dGVyIHRpbWVvdXQgZXh0ZW5zaW9uLlxuIiwgdGllck9wdGlvbnMudGllcik7CiAgICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKCFleGNlcHRpb24pCi0gICAgICAgICAgICAgICAg
ICAgIHByaW50ZigiRkFJTDogJXMgVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbiB3YXMgbm90
IHRocm93biBkdXJpbmcgdGltZW91dCBleHRlbnNpb24gdGVzdC5cbiIsIHRpZXJPcHRpb25zLnRp
ZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoIWV4Y2VwdGlvbikKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbiB3
YXMgbm90IHRocm93biBkdXJpbmcgdGltZW91dCBleHRlbnNpb24gdGVzdC5cbiIsIHRpZXJPcHRp
b25zLnRpZXIpOwogICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRy
dWU7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgQ1JB
U0goKTsKICAgICAgICAgfQogCiAjaWYgSEFWRShNQUNIX0VYQ0VQVElPTlMpCkBAIC00MjUsNTYg
KzQ0Myw2MiBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgICAgICAgICBzY3Jp
cHRCdWlsZGVyLmFwcGVuZE51bWJlcih0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZC5z
ZWNvbmRzKCkpOwogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpIGJy
ZWFrOyB9IH0gZm9vKCk7Iik7CiAKLSAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpT
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKS51dGY4
KCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgICAg
ICBkaXNwYXRjaFRlcm1pbmF0ZUNhbGxiYWNrQ2FsbGVkID0gZmFsc2U7Ci0KLSAgICAgICAgICAg
IC8vIFdlIGhhdmUgdG8gZG8gdGhpcyBzaW5jZSBibG9ja3MgY2FuIG9ubHkgY2FwdHVyZSB0aGlu
Z3MgYXMgY29uc3QuCi0gICAgICAgICAgICBKU0dsb2JhbENvbnRleHRSZWYmIGNvbnRleHRSZWYg
PSBjb250ZXh0OwotICAgICAgICAgICAgSlNTdHJpbmdSZWYmIHNjcmlwdFJlZiA9IHNjcmlwdDsK
LSAgICAgICAgICAgIEpTVmFsdWVSZWYmIGV4Y2VwdGlvblJlZiA9IGV4Y2VwdGlvbjsKLQotICAg
ICAgICAgICAgTG9jayBzeW5jTG9jazsKLSAgICAgICAgICAgIExvY2smIHN5bmNMb2NrUmVmID0g
c3luY0xvY2s7Ci0gICAgICAgICAgICBDb25kaXRpb24gc3luY2hyb25pemU7Ci0gICAgICAgICAg
ICBDb25kaXRpb24mIHN5bmNocm9uaXplUmVmID0gc3luY2hyb25pemU7Ci0gICAgICAgICAgICBi
b29sIGRpZFN5bmNocm9uaXplID0gZmFsc2U7Ci0gICAgICAgICAgICBib29sJiBkaWRTeW5jaHJv
bml6ZVJlZiA9IGRpZFN5bmNocm9uaXplOwotCi0gICAgICAgICAgICBTZWNvbmRzIHN0YXJ0VGlt
ZTsKLSAgICAgICAgICAgIFNlY29uZHMgZW5kVGltZTsKLQotICAgICAgICAgICAgU2Vjb25kcyYg
c3RhcnRUaW1lUmVmID0gc3RhcnRUaW1lOwotICAgICAgICAgICAgU2Vjb25kcyYgZW5kVGltZVJl
ZiA9IGVuZFRpbWU7Ci0KLSAgICAgICAgICAgIGRpc3BhdGNoX2dyb3VwX3QgZ3JvdXAgPSBkaXNw
YXRjaF9ncm91cF9jcmVhdGUoKTsKLSAgICAgICAgICAgIGRpc3BhdGNoX2dyb3VwX2FzeW5jKGdy
b3VwLCBkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKDAsIDApLCBeewotICAgICAgICAgICAgICAg
IHN0YXJ0VGltZVJlZiA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLSAgICAgICAgICAg
ICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHRSZWYsIHNjcmlwdFJlZiwgbnVsbHB0ciwgbnVs
bHB0ciwgMSwgJmV4Y2VwdGlvblJlZik7Ci0gICAgICAgICAgICAgICAgZW5kVGltZVJlZiA9IENQ
VVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLSAgICAgICAgICAgICAgICBhdXRvIGxvY2tlciA9
IFdURjo6aG9sZExvY2soc3luY0xvY2tSZWYpOwotICAgICAgICAgICAgICAgIGRpZFN5bmNocm9u
aXplUmVmID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZVJlZi5ub3RpZnlBbGwo
KTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2Nr
KHN5bmNMb2NrKTsKLSAgICAgICAgICAgIHN5bmNocm9uaXplLndhaXQoc3luY0xvY2ssIFsmXSB7
IHJldHVybiBkaWRTeW5jaHJvbml6ZTsgfSk7Ci0KLSAgICAgICAgICAgIGlmICgoKGVuZFRpbWUg
LSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpICYmIGRpc3Bh
dGNoVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQpCi0gICAgICAgICAgICAgICAgcHJpbnRmKCJQQVNT
OiAlcyBzY3JpcHQgb24gZGlzcGF0Y2ggcXVldWUgdGltZWQgb3V0IGFzIGV4cGVjdGVkLlxuIiwg
dGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBp
ZiAoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZp
cmVkKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCBvbiBkaXNw
YXRjaCBxdWV1ZSBkaWQgbm90IHRpbWUgb3V0IGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMu
dGllcik7Ci0gICAgICAgICAgICAgICAgaWYgKCFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0Nh
bGxlZCkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgb24gZGlz
cGF0Y2ggcXVldWUgdGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJPcHRp
b25zLnRpZXIpOwotICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7Ci0gICAgICAgICAgICB9
CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkp
IHsKKyAgICAgICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZyhzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgICAgIGV4
Y2VwdGlvbiA9IG51bGxwdHI7CisgICAgICAgICAgICAgICAgZGlzcGF0Y2hUZXJtaW5hdGVDYWxs
YmFja0NhbGxlZCA9IGZhbHNlOworCisgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byBkbyB0
aGlzIHNpbmNlIGJsb2NrcyBjYW4gb25seSBjYXB0dXJlIHRoaW5ncyBhcyBjb25zdC4KKyAgICAg
ICAgICAgICAgICBKU0dsb2JhbENvbnRleHRSZWYmIGNvbnRleHRSZWYgPSBjb250ZXh0OworICAg
ICAgICAgICAgICAgIEpTU3RyaW5nUmVmJiBzY3JpcHRSZWYgPSBzY3JpcHQ7CisgICAgICAgICAg
ICAgICAgSlNWYWx1ZVJlZiYgZXhjZXB0aW9uUmVmID0gZXhjZXB0aW9uOworCisgICAgICAgICAg
ICAgICAgTG9jayBzeW5jTG9jazsKKyAgICAgICAgICAgICAgICBMb2NrJiBzeW5jTG9ja1JlZiA9
IHN5bmNMb2NrOworICAgICAgICAgICAgICAgIENvbmRpdGlvbiBzeW5jaHJvbml6ZTsKKyAgICAg
ICAgICAgICAgICBDb25kaXRpb24mIHN5bmNocm9uaXplUmVmID0gc3luY2hyb25pemU7CisgICAg
ICAgICAgICAgICAgYm9vbCBkaWRTeW5jaHJvbml6ZSA9IGZhbHNlOworICAgICAgICAgICAgICAg
IGJvb2wmIGRpZFN5bmNocm9uaXplUmVmID0gZGlkU3luY2hyb25pemU7CisKKyAgICAgICAgICAg
ICAgICBTZWNvbmRzIHN0YXJ0VGltZTsKKyAgICAgICAgICAgICAgICBTZWNvbmRzIGVuZFRpbWU7
CisKKyAgICAgICAgICAgICAgICBTZWNvbmRzJiBzdGFydFRpbWVSZWYgPSBzdGFydFRpbWU7Cisg
ICAgICAgICAgICAgICAgU2Vjb25kcyYgZW5kVGltZVJlZiA9IGVuZFRpbWU7CisKKyAgICAgICAg
ICAgICAgICBkaXNwYXRjaF9ncm91cF90IGdyb3VwID0gZGlzcGF0Y2hfZ3JvdXBfY3JlYXRlKCk7
CisgICAgICAgICAgICAgICAgZGlzcGF0Y2hfZ3JvdXBfYXN5bmMoZ3JvdXAsIGRpc3BhdGNoX2dl
dF9nbG9iYWxfcXVldWUoMCwgMCksIF57CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZVJl
ZiA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAgICAgICAgSlNF
dmFsdWF0ZVNjcmlwdChjb250ZXh0UmVmLCBzY3JpcHRSZWYsIG51bGxwdHIsIG51bGxwdHIsIDEs
ICZleGNlcHRpb25SZWYpOworICAgICAgICAgICAgICAgICAgICBlbmRUaW1lUmVmID0gQ1BVVGlt
ZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAgICAgICAgICAgICAgICBhdXRvIGxvY2tlciA9
IFdURjo6aG9sZExvY2soc3luY0xvY2tSZWYpOworICAgICAgICAgICAgICAgICAgICBkaWRTeW5j
aHJvbml6ZVJlZiA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIHN5bmNocm9uaXplUmVmLm5v
dGlmeUFsbCgpOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgYXV0byBs
b2NrZXIgPSBob2xkTG9jayhzeW5jTG9jayk7CisgICAgICAgICAgICAgICAgc3luY2hyb25pemUu
d2FpdChzeW5jTG9jaywgWyZdIHsgcmV0dXJuIGRpZFN5bmNocm9uaXplOyB9KTsKKworICAgICAg
ICAgICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dT
aG91bGRIYXZlRmlyZWQpICYmIGRpc3BhdGNoVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQpCisgICAg
ICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IG9uIGRpc3BhdGNoIHF1ZXVl
IHRpbWVkIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAg
ICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoKGVuZFRpbWUgLSBzdGFydFRp
bWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKQorICAgICAgICAgICAgICAg
ICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgb24gZGlzcGF0Y2ggcXVldWUgZGlkIG5v
dCB0aW1lIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAg
ICAgICAgICAgICBpZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQorICAgICAg
ICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgb24gZGlzcGF0Y2ggcXVl
dWUgdGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIp
OworICAgICAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0K
ICNlbmRpZgogCiAgICAgICAgIEpTR2xvYmFsQ29udGV4dFJlbGVhc2UoY29udGV4dCk7CiAKLSAg
ICAgICAgT3B0aW9uczo6c2V0T3B0aW9ucyhzYXZlZE9wdGlvbnNCdWlsZGVyLnRvU3RyaW5nKCku
YXNjaWkoKS5kYXRhKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzYXZlZE9wdGlvbnNC
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBPcHRpb25zOjpzZXRPcHRpb25zKHN0cmlu
Zy0+YXNjaWkoKS5kYXRhKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwog
ICAgIH0KICAgICAKICAgICByZXR1cm4gZmFpbGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS90ZXN0cy9QaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvUGluZ1BvbmdTdGFja092ZXJmbG93VGVzdC5jcHAK
aW5kZXggMDQyYmViZi4uMTEyMzA5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS90ZXN0cy9QaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL3Rlc3RzL1BpbmdQb25nU3RhY2tPdmVyZmxvd1Rlc3QuY3BwCkBAIC02
NCw5ICs2NCwxMiBAQCBzdGF0aWMgYm9vbCBQaW5nUG9uZ1N0YWNrT3ZlcmZsb3dPYmplY3RfaGFz
SW5zdGFuY2UoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZQogICAgICAgICB9CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKTsiKTsKIAotICAgICAgICBKU1N0cmluZ1JlZiBzY3Jp
cHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhidWlsZGVyLnRvU3RyaW5nKCkudXRm
OCgpLmRhdGEoKSk7Ci0gICAgICAgIHJlc3VsdCA9IEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwg
c2NyaXB0LCBOVUxMLCBOVUxMLCAxLCBleGNlcHRpb24pOwotICAgICAgICBKU1N0cmluZ1JlbGVh
c2Uoc2NyaXB0KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygp
KSB7CisgICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZyhzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgcmVzdWx0ID0g
SlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsIGV4
Y2VwdGlvbik7CisgICAgICAgICAgICBKU1N0cmluZ1JlbGVhc2Uoc2NyaXB0KTsKKyAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIC0tbmF0aXZlUmVjdXJz
aW9uQ291bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2NWE1MmMxLi5hN2NhZmM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5OCBAQAorMjAxOC0wNC0yNiAgSkYg
QmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3RyaW5nQnVpbGRlciBp
cyBmYWxsaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTg1MDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgU3RyaW5nQnVpbGRlciBjYW4gZmFpbCB3aGVuIGFsbG9jYXRpbmcgbWVtb3J5LiBTdHJpbmdC
dWlsZGVyIGlzCisgICAgICAgIG1vc3RseSB1c2VkIHdpdGggdXNlciBpbnB1dCwgd2hpY2ggb2Z0
ZW4gbWVhbnMgdGhhdCBqdXN0IGNyYXNoaW5nCisgICAgICAgIGlzbid0IHRoZSByaWdodCBvdXRj
b21lLiBPdXIgZnV6emVycyBvZnRlbiBlbmNvdW50ZXIgc3VjaCB0aGluZ3MKKyAgICAgICAgZm9y
IEphdmFTY3JpcHRDb3JlLCBhbmQgc28gZmFyIHdlJ3ZlIGFwcGxpZWQgcG9pbnQgc29sdXRpb25z
LiBObworICAgICAgICBtb3JlIQorCisgICAgICAgICogQVBJL0pTQ29udGV4dFJlZi5jcHA6Cisg
ICAgICAgIChKU0NvbnRleHRDcmVhdGVCYWNrdHJhY2UpOgorICAgICAgICAqIEFQSS90ZXN0cy9F
eGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcDoKKyAgICAgICAgKHRlc3RFeGVjdXRpb25UaW1lTGlt
aXQpOgorICAgICAgICAqIEFQSS90ZXN0cy9QaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcDoK
KyAgICAgICAgKFBpbmdQb25nU3RhY2tPdmVyZmxvd09iamVjdF9oYXNJbnN0YW5jZSk6CisgICAg
ICAgICogZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OlN0cmVuZ3RoUmVkdWN0aW9uUGhhc2U6OmhhbmRsZU5vZGUpOgorICAgICAgICAqIGhlYXAv
SGVhcFNuYXBzaG90QnVpbGRlci5jcHA6CisgICAgICAgIChKU0M6OkhlYXBTbmFwc2hvdEJ1aWxk
ZXI6Ompzb24pOgorICAgICAgICAqIGluc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHA6CisgICAg
ICAgIChJbnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZSk6CisgICAgICAg
ICogaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlsaXRpZXMuY3BwOgorICAgICAgICAoSW5zcGVj
dG9yOjpDb250ZW50U2VhcmNoVXRpbGl0aWVzOjpjcmVhdGVTZWFyY2hSZWdleFNvdXJjZSk6Cisg
ICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpJbnRl
cnByZXRlcjo6c3RhY2tUcmFjZUFzU3RyaW5nKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9TdGFj
a1Zpc2l0b3IuY3BwOgorICAgICAgICAoSlNDOjpTdGFja1Zpc2l0b3I6OkZyYW1lOjp0b1N0cmlu
ZyBjb25zdCk6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKHJlc29sdmVQYXRoKToKKyAg
ICAgICAgKGZ1bmN0aW9uSlNDU3RhY2spOgorICAgICAgICAqIHJ1bnRpbWUvQ29uZmlnRmlsZS5j
cHA6CisgICAgICAgIChKU0M6OkNvbmZpZ0ZpbGU6OnBhcnNlKToKKyAgICAgICAgKiBydW50aW1l
L0NvbnNvbGVDbGllbnQuY3BwOgorICAgICAgICAoSlNDOjpDb25zb2xlQ2xpZW50OjpwcmludENv
bnNvbGVNZXNzYWdlKToKKyAgICAgICAgKEpTQzo6Q29uc29sZUNsaWVudDo6cHJpbnRDb25zb2xl
TWVzc2FnZVdpdGhBcmd1bWVudHMpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUNvbnZlcnNpb24u
Y3BwOgorICAgICAgICAoSlNDOjpmb3JtYXREYXRlVGltZSk6CisgICAgICAgICogcnVudGltZS9F
cnJvckluc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6c2FuaXRpemVk
VG9TdHJpbmcpOgorICAgICAgICAqIHJ1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHA6CisgICAg
ICAgIChKU0M6Om5vdEFGdW5jdGlvblNvdXJjZUFwcGVuZGVyKToKKyAgICAgICAgKiBydW50aW1l
L0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RGdW5jdGlv
blNraXBwaW5nRXZhbEVuYWJsZWRDaGVjayk6CisgICAgICAgICogcnVudGltZS9JbnRsRGF0ZVRp
bWVGb3JtYXQuY3BwOgorICAgICAgICAoSlNDOjpJbnRsRGF0ZVRpbWVGb3JtYXQ6OmluaXRpYWxp
emVEYXRlVGltZUZvcm1hdCk6CisgICAgICAgICogcnVudGltZS9JbnRsT2JqZWN0LmNwcDoKKyAg
ICAgICAgKEpTQzo6cHJpdmF0ZVVzZUxhbmdUYWcpOgorICAgICAgICAoSlNDOjpjYW5vbmljYWxM
YW5nVGFnKToKKyAgICAgICAgKEpTQzo6cmVtb3ZlVW5pY29kZUxvY2FsZUV4dGVuc2lvbik6Cisg
ICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChK
U0M6OmVuY29kZSk6CisgICAgICAgIChKU0M6OmRlY29kZSk6CisgICAgICAgIChKU0M6Omdsb2Jh
bEZ1bmNFc2NhcGUpOgorICAgICAgICAoSlNDOjpnbG9iYWxGdW5jVW5lc2NhcGUpOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ2lmaWVyOjpz
dHJpbmdpZnkpOgorICAgICAgICAoSlNDOjpTdHJpbmdpZmllcjo6SG9sZGVyOjphcHBlbmROZXh0
UHJvcGVydHkpOgorICAgICAgICAqIHJ1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHA6CisgICAgICAg
IChKU0M6OkxpdGVyYWxQYXJzZXI8Q2hhclR5cGU+OjpMZXhlcjo6bGV4U3RyaW5nU2xvdyk6Cisg
ICAgICAgICogcnVudGltZS9PcHRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6ZHVt
cE9wdGlvbnNJZk5lZWRlZCk6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OmR1bXBBbGxPcHRpb25z
KToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6
OnJlZ0V4cFByb3RvR2V0dGVyU291cmNlSW50ZXJuYWwpOgorICAgICAgICAqIHJ1bnRpbWUvU2Ft
cGxpbmdQcm9maWxlci5jcHA6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6OnN0YWNr
VHJhY2VzQXNKU09OKToKKyAgICAgICAgKiBydW50aW1lL1N0YWNrRnJhbWUuY3BwOgorICAgICAg
ICAoSlNDOjpTdGFja0ZyYW1lOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgICogcnVudGltZS9T
dHJpbmdDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OnN0cmluZ0Zyb21Db2RlUG9pbnQp
OgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6
c3Vic3RpdHV0ZUJhY2tyZWZlcmVuY2VzU2xvdyk6CisgICAgICAgICogcnVudGltZS9UeXBlUHJv
ZmlsZXIuY3BwOgorICAgICAgICAoSlNDOjpUeXBlUHJvZmlsZXI6OnR5cGVJbmZvcm1hdGlvbkZv
ckV4cHJlc3Npb25BdE9mZnNldCk6CisgICAgICAgICogcnVudGltZS9UeXBlU2V0LmNwcDoKKyAg
ICAgICAgKEpTQzo6VHlwZVNldDo6ZHVtcFR5cGVzIGNvbnN0KToKKyAgICAgICAgKEpTQzo6VHlw
ZVNldDo6dG9KU09OU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlU2hhcGU6
OnByb3BlcnR5SGFzaCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVNoYXBlOjpzdHJpbmdSZXBy
ZXNlbnRhdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVNoYXBlOjp0b0pTT05TdHJpbmcg
Y29uc3QpOgorICAgICAgICAqIHRlc3RSZWdFeHAuY3BwOgorICAgICAgICAocGFyc2VSZWdFeHBM
aW5lKToKKyAgICAgICAgKHBhcnNlVGVzdExpbmUpOgorICAgICAgICAqIHRvb2xzL0Z1bmN0aW9u
T3ZlcnJpZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6cGFyc2VDbGF1c2UpOgorICAgICAgICAqIHdh
c20vV2FzbUJCUVBsYW4uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpCQlFQbGFuOjpwcmVwYXJl
KToKKyAgICAgICAgKiB5YXJyL1lhcnJQYXJzZXIuaDoKKyAgICAgICAgKEpTQzo6WWFycjo6UGFy
c2VyOjp0cnlDb25zdW1lR3JvdXBOYW1lKToKKyAgICAgICAgKEpTQzo6WWFycjo6UGFyc2VyOjp0
cnlDb25zdW1lVW5pY29kZVByb3BlcnR5RXhwcmVzc2lvbik6CisKIDIwMTgtMDQtMjUgIFJvYmlu
IE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KIAogICAgICAgICBJbiBGVExMb3dlckRG
R1RvQjMuY3BwOjpjb21waWxlQ3JlYXRlUmVzdCwgYWx3YXlzIHVzZSBhIGNvbnRpZ3VvdXMgYXJy
YXkgYXMgdGhlIGluZGV4aW5nIHR5cGUgd2hlbiB1bmRlciBpc1dhdGNoaW5nSGF2aW5nQUJhZFRp
bWVXYXRjaHBvaW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0
cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
dHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcAppbmRleCA1YzFiZTY4Li5mNzBjNzE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25Q
aGFzZS5jcHAKQEAgLTM2MSw4ICszNjEsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQobGVm
dFN0cmluZyk7CiAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQocmlnaHRTdHJpbmcpOwot
ICAgICAgICAgICAgICAgIG1fbm9kZS0+Y29udmVydFRvTGF6eUpTQ29uc3RhbnQoCi0gICAgICAg
ICAgICAgICAgICAgIG1fZ3JhcGgsIExhenlKU1ZhbHVlOjpuZXdTdHJpbmcobV9ncmFwaCwgYnVp
bGRlci50b1N0cmluZygpKSk7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgIG1fbm9kZS0+Y29udmVydFRv
TGF6eUpTQ29uc3RhbnQoCisgICAgICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLCBMYXp5SlNW
YWx1ZTo6bmV3U3RyaW5nKG1fZ3JhcGgsICpzdHJpbmcpKTsKKyAgICAgICAgICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgICAgICBtX2NoYW5n
ZWQgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC0zODksOCAr
MzkyLDExIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBpZiAoISFleHRyYVN0cmluZykKICAgICAg
ICAgICAgICAgICBidWlsZGVyLmFwcGVuZChleHRyYVN0cmluZyk7CiAKLSAgICAgICAgICAgIG1f
bm9kZS0+Y29udmVydFRvTGF6eUpTQ29uc3RhbnQoCi0gICAgICAgICAgICAgICAgbV9ncmFwaCwg
TGF6eUpTVmFsdWU6Om5ld1N0cmluZyhtX2dyYXBoLCBidWlsZGVyLnRvU3RyaW5nKCkpKTsKKyAg
ICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAg
ICAgICAgICAgIG1fbm9kZS0+Y29udmVydFRvTGF6eUpTQ29uc3RhbnQoCisgICAgICAgICAgICAg
ICAgICAgIG1fZ3JhcGgsIExhenlKU1ZhbHVlOjpuZXdTdHJpbmcobV9ncmFwaCwgKnN0cmluZykp
OworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAg
ICAgIG1fY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAt
ODgyLDkgKzg4OCwxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAg
ICAgICAgaWYgKGxhc3RJbmRleCA8IHN0cmluZy5sZW5ndGgoKSkKICAgICAgICAgICAgICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoc3RyaW5nLCBsYXN0SW5kZXgsIHN0cmluZy5sZW5ndGgoKSAtIGxh
c3RJbmRleCk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgbV9ub2RlLT5jb252
ZXJ0VG9MYXp5SlNDb25zdGFudCgKLSAgICAgICAgICAgICAgICAgICAgbV9ncmFwaCwgTGF6eUpT
VmFsdWU6Om5ld1N0cmluZyhtX2dyYXBoLCBidWlsZGVyLnRvU3RyaW5nKCkpKTsKKworICAgICAg
ICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAg
ICAgICAgICAgICAgICBtX25vZGUtPmNvbnZlcnRUb0xhenlKU0NvbnN0YW50KAorICAgICAgICAg
ICAgICAgICAgICAgICAgbV9ncmFwaCwgTGF6eUpTVmFsdWU6Om5ld1N0cmluZyhtX2dyYXBoLCAq
c3RyaW5nKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIENS
QVNIKCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIG1fbm9kZS0+b3JpZ2luID0gb3Jp
Z2luOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFNuYXBzaG90
QnVpbGRlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3RCdWls
ZGVyLmNwcAppbmRleCA2NWY2MzNmLi5lMWFhZDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3RCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3RCdWlsZGVyLmNwcApAQCAtMzg3LDcgKzM4Nyw5IEBA
IFN0cmluZyBIZWFwU25hcHNob3RCdWlsZGVyOjpqc29uKHN0ZDo6ZnVuY3Rpb248Ym9vbCAoY29u
c3QgSGVhcFNuYXBzaG90Tm9kZSYpPiBhCiAgICAganNvbi5hcHBlbmQoJ10nKTsKIAogICAgIGpz
b24uYXBwZW5kKCd9Jyk7Ci0gICAgcmV0dXJuIGpzb24udG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBqc29uLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcAppbmRleCA1Y2ZiMDRkLi43MWU0
ZmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNvbGVN
ZXNzYWdlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNvbGVN
ZXNzYWdlLmNwcApAQCAtMTE1LDcgKzExNSwxMCBAQCBDb25zb2xlTWVzc2FnZTo6Q29uc29sZU1l
c3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZQog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgSlNPTkxvZ1ZhbHVlOjpUeXBlOjpKU09O
OgogICAgICAgICAgICAgaWYgKGJ1aWxkZXIubGVuZ3RoKCkpIHsKLSAgICAgICAgICAgICAgICBt
X2pzb25Mb2dWYWx1ZXMuYXBwZW5kKHsgSlNPTkxvZ1ZhbHVlOjpUeXBlOjpTdHJpbmcsIEpTT046
OlZhbHVlOjpjcmVhdGUoYnVpbGRlci50b1N0cmluZygpKS0+dG9KU09OU3RyaW5nKCkgfSk7Cisg
ICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICAgICAgICAgICAgICBtX2pzb25Mb2dWYWx1ZXMuYXBwZW5kKHsgSlNPTkxvZ1ZhbHVlOjpU
eXBlOjpTdHJpbmcsIEpTT046OlZhbHVlOjpjcmVhdGUoKnN0cmluZyktPnRvSlNPTlN0cmluZygp
IH0pOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgQ1JBU0goKTsK
ICAgICAgICAgICAgICAgICBidWlsZGVyLnJlc2l6ZSgwKTsKICAgICAgICAgICAgIH0KIApAQCAt
MTI0LDggKzEyNywxMiBAQCBDb25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZQogICAgICAgICB9CiAgICAg
fQogCi0gICAgaWYgKGJ1aWxkZXIubGVuZ3RoKCkpCi0gICAgICAgIG1fanNvbkxvZ1ZhbHVlcy5h
cHBlbmQoeyBKU09OTG9nVmFsdWU6OlR5cGU6OlN0cmluZywgSlNPTjo6VmFsdWU6OmNyZWF0ZShi
dWlsZGVyLnRvU3RyaW5nKCkpLT50b0pTT05TdHJpbmcoKSB9KTsKKyAgICBpZiAoYnVpbGRlci5s
ZW5ndGgoKSkgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgICAgICBtX2pzb25Mb2dWYWx1ZXMuYXBwZW5kKHsgSlNPTkxvZ1ZhbHVlOjpUeXBl
OjpTdHJpbmcsIEpTT046OlZhbHVlOjpjcmVhdGUoKnN0cmluZyktPnRvSlNPTlN0cmluZygpIH0p
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOworICAgIH0KIAogICAgIGlmICht
X2pzb25Mb2dWYWx1ZXMuc2l6ZSgpKQogICAgICAgICBtX21lc3NhZ2UgPSBtX2pzb25Mb2dWYWx1
ZXNbMF0udmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0NvbnRlbnRTZWFyY2hVdGlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9Db250ZW50U2VhcmNoVXRpbGl0aWVzLmNwcAppbmRleCBhYWE4MWUyLi5iMGMxOTQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hV
dGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29udGVu
dFNlYXJjaFV0aWxpdGllcy5jcHAKQEAgLTU1LDcgKzU1LDkgQEAgc3RhdGljIFN0cmluZyBjcmVh
dGVTZWFyY2hSZWdleFNvdXJjZShjb25zdCBTdHJpbmcmIHRleHQpCiAgICAgICAgIHJlc3VsdC5h
cHBlbmQoY2hhcmFjdGVyKTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgc2l6ZV90IHNpemV0
RXh0cmFjdG9yKGNvbnN0IHNpemVfdCogdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAppbmRleCA0ZjcyNzA5Li5lZDE3NDk0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5j
cHAKQEAgLTU3Nyw3ICs1NzcsOSBAQCBKU1N0cmluZyogSW50ZXJwcmV0ZXI6OnN0YWNrVHJhY2VB
c1N0cmluZyhWTSYgdm0sIGNvbnN0IFZlY3RvcjxTdGFja0ZyYW1lPiYgc3RhYwogICAgICAgICBp
ZiAoaSAhPSBzdGFja1RyYWNlLnNpemUoKSAtIDEpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZCgnXG4nKTsKICAgICB9Ci0gICAgcmV0dXJuIGpzU3RyaW5nKCZ2bSwgYnVpbGRlci50b1N0cmlu
ZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiBqc1N0cmluZygmdm0sICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIEFMV0FZ
U19JTkxJTkUgc3RhdGljIEhhbmRsZXJJbmZvKiBmaW5kRXhjZXB0aW9uSGFuZGxlcihTdGFja1Zp
c2l0b3ImIHZpc2l0b3IsIENvZGVCbG9jayogY29kZUJsb2NrLCBSZXF1aXJlZEhhbmRsZXIgcmVx
dWlyZWRIYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL1N0YWNrVmlzaXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
U3RhY2tWaXNpdG9yLmNwcAppbmRleCAxZDFmZjczLi43MGNkMTE3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcApAQCAtMzQ3LDcg
KzM0Nyw5IEBAIFN0cmluZyBTdGFja1Zpc2l0b3I6OkZyYW1lOjp0b1N0cmluZygpIGNvbnN0CiAg
ICAgICAgICAgICB0cmFjZUJ1aWxkLmFwcGVuZE51bWJlcihjb2x1bW4pOwogICAgICAgICB9CiAg
ICAgfQotICAgIHJldHVybiB0cmFjZUJ1aWxkLnRvU3RyaW5nKCkuaW1wbCgpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IHRyYWNlQnVpbGQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0cmlu
Zy0+aW1wbCgpOworICAgIENSQVNIKCk7CiB9CiAKIGludHB0cl90IFN0YWNrVmlzaXRvcjo6RnJh
bWU6OnNvdXJjZUlEKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggNGE3M2U4Ny4uM2ZhNDY2NCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTc2NSw3ICs3NjUsOSBAQCBzdGF0aWMgU3RyaW5nIHJl
c29sdmVQYXRoKGNvbnN0IERpcmVjdG9yeU5hbWUmIGRpcmVjdG9yeU5hbWUsIGNvbnN0IE1vZHVs
ZU5hbWUmCiAgICAgICAgIGlmIChpICsgMSAhPSBkaXJlY3RvcnlQaWVjZXMuc2l6ZSgpKQogICAg
ICAgICAgICAgYnVpbGRlci5hcHBlbmQocGF0aFNlcGFyYXRvcigpKTsKICAgICB9Ci0gICAgcmV0
dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0
YXRpYyBTdHJpbmcgYWJzb2x1dGVQYXRoKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUpCkBAIC0xMTI1
LDggKzExMjcsMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkpTQ1N0
YWNrKEV4ZWNTdGF0ZSogZXhlYykKIAogICAgIEZ1bmN0aW9uSlNDU3RhY2tGdW5jdG9yIGZ1bmN0
b3IodHJhY2UpOwogICAgIGV4ZWMtPml0ZXJhdGUoZnVuY3Rvcik7Ci0gICAgZnByaW50ZihzdGRl
cnIsICIlcyIsIHRyYWNlLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0cmFj
ZS50b1N0cmluZygpKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMiLCBzdHJpbmctPnV0
ZjgoKS5kYXRhKCkpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOworICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uR0NBbmRTd2VlcChFeGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25maWdGaWxlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwCmluZGV4IGJiODc2NjYuLmY3ZWNkYWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwCkBAIC00NjUs
OSArNDY1LDEyIEBAIHZvaWQgQ29uZmlnRmlsZTo6cGFyc2UoKQogICAgICAgICAgICAgV1RGOjpz
ZXREYXRhRmlsZShsb2dQYXRobmFtZSk7CiAKICAgICAgICAgaWYgKCFqc2NPcHRpb25zQnVpbGRl
ci5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGNvbnN0IGNoYXIqIG9wdGlvbnNTdHIgPSBqc2NP
cHRpb25zQnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCk7Ci0gICAgICAgICAgICBPcHRp
b25zOjplbmFibGVSZXN0cmljdGVkT3B0aW9ucyh0cnVlKTsKLSAgICAgICAgICAgIE9wdGlvbnM6
OnNldE9wdGlvbnMob3B0aW9uc1N0cik7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBq
c2NPcHRpb25zQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgY29uc3QgY2hh
ciogb3B0aW9uc1N0ciA9IHN0cmluZy0+dXRmOCgpLmRhdGEoKTsKKyAgICAgICAgICAgICAgICBP
cHRpb25zOjplbmFibGVSZXN0cmljdGVkT3B0aW9ucyh0cnVlKTsKKyAgICAgICAgICAgICAgICBP
cHRpb25zOjpzZXRPcHRpb25zKG9wdGlvbnNTdHIpOworICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgIH0gZWxzZQogICAgICAgICBXVEY6
OmRhdGFMb2dGKCJFcnJvciBpbiBKU0MgQ29uZmlnIGZpbGUgb24gb3IgbmVhciBsaW5lICV1LCBw
YXJzaW5nICclcydcbiIsIHNjYW5uZXIubGluZU51bWJlcigpLCBzY2FubmVyLmN1cnJlbnRCdWZm
ZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xl
Q2xpZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVDbGllbnQu
Y3BwCmluZGV4IDI5MTdkNzY4Li5iODY2NDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcApAQCAtMTQ0LDcgKzE0NCwxMCBAQCB2b2lkIENv
bnNvbGVDbGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1l
c3NhZ2VUeXBlIHR5cGUsCiAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICBidWlsZGVyLmFw
cGVuZChtZXNzYWdlKTsKIAotICAgIFdURkxvZ0Fsd2F5cygiJXMiLCBidWlsZGVyLnRvU3RyaW5n
KCkudXRmOCgpLmRhdGEoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICBXVEZMb2dBbHdheXMoIiVzIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsK
KyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgQ29uc29sZUNsaWVudDo6cHJp
bnRDb25zb2xlTWVzc2FnZVdpdGhBcmd1bWVudHMoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3Nh
Z2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFJl
ZjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQpAQCAtMTcwLDcgKzE3MywxMCBAQCB2b2lk
IENvbnNvbGVDbGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2VXaXRoQXJndW1lbnRzKE1lc3NhZ2VT
b3VyY2Ugc291cmNlLCBNZXNzYQogICAgICAgICBzY29wZS5jbGVhckV4Y2VwdGlvbigpOwogICAg
IH0KIAotICAgIFdURkxvZ0Fsd2F5cygiJXMiLCBidWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRh
dGEoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICBXVEZMb2dBbHdheXMoIiVzIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICBlbHNlCisg
ICAgICAgIENSQVNIKCk7CiAKICAgICBpZiAoaXNUcmFjZU1lc3NhZ2UpIHsKICAgICAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBjYWxsU3RhY2stPnNpemUoKTsgKytpKSB7CkBAIC0xODcsNyAr
MTkzLDEwIEBAIHZvaWQgQ29uc29sZUNsaWVudDo6cHJpbnRDb25zb2xlTWVzc2FnZVdpdGhBcmd1
bWVudHMoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhCiAgICAgICAgICAgICBhcHBlbmRVUkxB
bmRQb3NpdGlvbihjYWxsRnJhbWVCdWlsZGVyLCBjYWxsRnJhbWUuc291cmNlVVJMKCksIGNhbGxG
cmFtZS5saW5lTnVtYmVyKCksIGNhbGxGcmFtZS5jb2x1bW5OdW1iZXIoKSk7CiAgICAgICAgICAg
ICBjYWxsRnJhbWVCdWlsZGVyLmFwcGVuZCgnKScpOwogCi0gICAgICAgICAgICBXVEZMb2dBbHdh
eXMoIiVzIiwgY2FsbEZyYW1lQnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAg
ICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gY2FsbEZyYW1lQnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiJXMiLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCkp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0K
ICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRl
Q29udmVyc2lvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29udmVy
c2lvbi5jcHAKaW5kZXggOGE4N2NjNi4uNDIzYmUyNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0RhdGVDb252ZXJzaW9uLmNwcApAQCAtMTIzLDcgKzEyMyw5IEBAIFN0
cmluZyBmb3JtYXREYXRlVGltZShjb25zdCBHcmVnb3JpYW5EYXRlVGltZSYgdCwgRGF0ZVRpbWVG
b3JtYXQgZm9ybWF0LCBib29sIGFzCiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gYnVp
bGRlci50b1N0cmluZygpLmltcGwoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiBzdHJpbmctPmltcGwoKTsKKyAgICBDUkFTSCgpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXJyb3JJbnN0YW5jZS5jcHAKaW5kZXggYzE3MjQyOC4uNzhkMjk5NyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKQEAgLTE5OSw3ICsx
OTksOSBAQCBTdHJpbmcgRXJyb3JJbnN0YW5jZTo6c2FuaXRpemVkVG9TdHJpbmcoRXhlY1N0YXRl
KiBleGVjKQogICAgIGJ1aWxkZXIuYXBwZW5kKG5hbWVTdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiOiAiKTsKICAgICBidWlsZGVyLmFwcGVuZChtZXNzYWdlU3RyaW5nKTsKLSAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogYm9vbCBFcnJvckluc3RhbmNlOjptYXRlcmlhbGl6ZUVycm9ySW5mb0lmTmVlZGVkKFZNJiB2
bSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhl
bHBlcnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVy
cy5jcHAKaW5kZXggNjk5MTQ0Yi4uNmUwMWI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKQEAgLTIxMSw3ICsyMTEsOSBAQCBz
dGF0aWMgU3RyaW5nIG5vdEFGdW5jdGlvblNvdXJjZUFwcGVuZGVyKGNvbnN0IFN0cmluZyYgb3Jp
Z2luYWxNZXNzYWdlLCBjb25zdCBTdAogICAgIH0KICAgICBidWlsZGVyLmFwcGVuZCgnKScpOwog
Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIHN0YXRpYyBTdHJpbmcgaW52YWxpZFBhcmFtZXRlckluU291cmNlQXBwZW5kZXIoY29u
c3QgU3RyaW5nJiBvcmlnaW5hbE1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVGV4dCwgUnVu
dGltZVR5cGUgdHlwZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlVGV4dFdoZXJlRXJyb3JPY2N1cnJl
ZCBvY2N1cnJlbmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9G
dW5jdGlvbkNvbnN0cnVjdG9yLmNwcAppbmRleCAwMzFmZTMyLi5kYmE1Zjg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNw
cApAQCAtMTQzLDE0ICsxNDMsMTcgQEAgSlNPYmplY3QqIGNvbnN0cnVjdEZ1bmN0aW9uU2tpcHBp
bmdFdmFsRW5hYmxlZENoZWNrKAogICAgICAgICB7CiAgICAgICAgICAgICAvLyBUaGUgc3BlYyBt
YW5kYXRlcyB0aGF0IHRoZSBwYXJhbWV0ZXJzIHBhcnNlIGFzIGEgdmFsaWQgcGFyYW1ldGVyIGxp
c3QKICAgICAgICAgICAgIC8vIGluZGVwZW5kZW50IG9mIHRoZSBmdW5jdGlvbiBib2R5LgotICAg
ICAgICAgICAgU3RyaW5nIHByb2dyYW0gPSBtYWtlU3RyaW5nKCIoIiwgcHJlZml4LCAiKCIsIHBh
cmFtZXRlckJ1aWxkZXIudG9TdHJpbmcoKSwgIil7XG5cbn0pIik7Ci0gICAgICAgICAgICBTb3Vy
Y2VDb2RlIHNvdXJjZSA9IG1ha2VTb3VyY2UocHJvZ3JhbSwgc291cmNlT3JpZ2luLCBzb3VyY2VV
UkwsIHBvc2l0aW9uKTsKLSAgICAgICAgICAgIEpTVmFsdWUgZXhjZXB0aW9uOwotICAgICAgICAg
ICAgY2hlY2tTeW50YXgoZXhlYywgc291cmNlLCAmZXhjZXB0aW9uKTsKLSAgICAgICAgICAgIGlm
IChleGNlcHRpb24pIHsKLSAgICAgICAgICAgICAgICBzY29wZS50aHJvd0V4Y2VwdGlvbihleGVj
LCBleGNlcHRpb24pOwotICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICAg
ICAgfQorICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcGFyYW1ldGVyQnVpbGRlci50b1N0
cmluZygpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHByb2dyYW0gPSBtYWtlU3RyaW5nKCIo
IiwgcHJlZml4LCAiKCIsICpzdHJpbmcsICIpe1xuXG59KSIpOworICAgICAgICAgICAgICAgIFNv
dXJjZUNvZGUgc291cmNlID0gbWFrZVNvdXJjZShwcm9ncmFtLCBzb3VyY2VPcmlnaW4sIHNvdXJj
ZVVSTCwgcG9zaXRpb24pOworICAgICAgICAgICAgICAgIEpTVmFsdWUgZXhjZXB0aW9uOworICAg
ICAgICAgICAgICAgIGNoZWNrU3ludGF4KGV4ZWMsIHNvdXJjZSwgJmV4Y2VwdGlvbik7CisgICAg
ICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbikgeworICAgICAgICAgICAgICAgICAgICBzY29wZS50
aHJvd0V4Y2VwdGlvbihleGVjLCBleGNlcHRpb24pOworICAgICAgICAgICAgICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UKKyAgICAg
ICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
cGFyYW1ldGVyQnVpbGRlcik7CkBAIC0xNjEsNyArMTY0LDEwIEBAIEpTT2JqZWN0KiBjb25zdHJ1
Y3RGdW5jdGlvblNraXBwaW5nRXZhbEVuYWJsZWRDaGVjaygKICAgICAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGJvZHkpOwog
ICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxufX0iKTsKLSAgICAgICAgcHJvZ3JhbSA9
IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICAgICAgcHJvZ3JhbSA9ICpzdHJpbmc7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgU291cmNlQ29kZSBzb3VyY2UgPSBt
YWtlU291cmNlKHByb2dyYW0sIHNvdXJjZU9yaWdpbiwgc291cmNlVVJMLCBwb3NpdGlvbik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3Jt
YXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0
LmNwcAppbmRleCBjOTIwYWNmLi4yYzJmMDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAKQEAgLTY0Niw3ICs2NDYsMTEg
QEAgdm9pZCBJbnRsRGF0ZVRpbWVGb3JtYXQ6OmluaXRpYWxpemVEYXRlVGltZUZvcm1hdChFeGVj
U3RhdGUmIGV4ZWMsIEpTVmFsdWUgbG9jYWwKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IFN0cmluZyBza2VsZXRvbiA9IHNrZWxldG9uQnVpbGRlci50b1N0cmluZygpOworICAgIFN0cmlu
ZyBza2VsZXRvbjsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBza2VsZXRvbkJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgc2tlbGV0b24gPSAqc3RyaW5nOworICAgIGVsc2UKKyAgICAgICAgQ1JB
U0goKTsKICAgICBTdHJpbmdWaWV3IHNrZWxldG9uVmlldyhza2VsZXRvbik7CiAgICAgVmVjdG9y
PFVDaGFyLCAzMj4gcGF0dGVybkJ1ZmZlcigzMik7CiAgICAgc3RhdHVzID0gVV9aRVJPX0VSUk9S
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcAppbmRleCAz
ZjU0MzQwLi5iOTY1ZGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
T2JqZWN0LmNwcApAQCAtMjQ3LDcgKzI0Nyw5IEBAIHN0YXRpYyBTdHJpbmcgcHJpdmF0ZVVzZUxh
bmdUYWcoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcnRzLCBzaXplX3Qgc3RhcnRJbmRleCkKICAg
ICBpZiAoY3VycmVudEluZGV4IDwgbnVtUGFydHMpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsK
IAotICAgIHJldHVybiBwcml2YXRldXNlLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gcHJpdmF0ZXVzZS50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBD
UkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIGNhbm9uaWNhbExhbmdUYWcoY29uc3QgVmVjdG9y
PFN0cmluZz4mIHBhcnRzKQpAQCAtMzgwLDcgKzM4MiwxMCBAQCBzdGF0aWMgU3RyaW5nIGNhbm9u
aWNhbExhbmdUYWcoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcnRzKQogICAgICAgICBpZiAoIW51
bUV4dFBhcnRzKQogICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgICAgIGV4dGVu
c2lvbnMuYXBwZW5kKGV4dGVuc2lvbi50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gZXh0ZW5zaW9uLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBleHRlbnNpb25zLmFwcGVu
ZCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAK
ICAgICAvLyBBZGQgZXh0ZW5zaW9ucyB0byBjYW5vbmljYWwgc29ydGVkIGJ5IHNpbmdsZXRvbi4K
QEAgLTQwOCw3ICs0MTMsOSBAQCBzdGF0aWMgU3RyaW5nIGNhbm9uaWNhbExhbmdUYWcoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHBhcnRzKQogCiAgICAgLy8gRklYTUU6IFJlcGxhY2Ugc3VidGFncyB3
aXRoIHRoZWlyIHByZWZlcnJlZCB2YWx1ZXMuCiAKLSAgICByZXR1cm4gY2Fub25pY2FsLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gY2Fub25pY2FsLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgZ3Jh
bmRmYXRoZXJlZExhbmdUYWcoY29uc3QgU3RyaW5nJiBsb2NhbGUpCkBAIC02MTMsNyArNjIwLDEw
IEBAIFN0cmluZyByZW1vdmVVbmljb2RlTG9jYWxlRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbG9j
YWxlKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQocGFydHNbcF0pOwogICAgICAgICB9CiAg
ICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAKIHN0YXRpYyBNYXRjaGVyUmVzdWx0IGxvb2t1cE1hdGNoZXIoRXhlY1N0YXRl
JiBzdGF0ZSwgY29uc3QgSGFzaFNldDxTdHJpbmc+JiBhdmFpbGFibGVMb2NhbGVzLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgcmVxdWVzdGVkTG9jYWxlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcAppbmRleCA3
MzEzNjczLi4xOWI1MmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCkBAIC0xNTEsNyArMTUxLDkgQEAg
c3RhdGljIEpTVmFsdWUgZW5jb2RlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQml0bWFwPDI1Nj4m
IGRvTm90RXNjYXBlLCBjb25zdCBDaGEKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBq
c1N0cmluZyhleGVjLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsICpzdHJp
bmcpOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBKU1ZhbHVlIGVuY29kZShFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IEJpdG1hcDwyNTY+JiBkb05vdEVzY2FwZSkKQEAgLTIzMCw3ICsyMzIsMTAg
QEAgc3RhdGljIEpTVmFsdWUgZGVjb2RlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQ2hhclR5cGUq
IGNoYXJhY3RlcnMsIGludCBsZW5ndGgsIGMKICAgICAgICAgYnVpbGRlci5hcHBlbmQoYyk7CiAg
ICAgfQogICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICByZXR1cm4ganNTdHJpbmcoJnZtLCBidWls
ZGVyLnRvU3RyaW5nKCkpOworCisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4ganNTdHJpbmcoJnZtLCAqc3RyaW5nKTsKKyAgICBDUkFTSCgp
OwogfQogCiBzdGF0aWMgSlNWYWx1ZSBkZWNvZGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBCaXRt
YXA8MjU2PiYgZG9Ob3RVbmVzY2FwZSwgYm9vbCBzdHJpY3QpCkBAIC02MDMsNyArNjA4LDkgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jRXNjYXBlKEV4ZWNTdGF0ZSog
ZXhlYykKICAgICAgICAgICAgICAgICAgICAgYXBwZW5kQnl0ZUFzSGV4KHN0YXRpY19jYXN0PExD
aGFyPih1KSwgYnVpbGRlcik7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotICAg
ICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAg
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsICpzdHJpbmcpOworICAgICAgICAgICAgQ1JBU0go
KTsKICAgICAgICAgfQogCiAgICAgICAgIGNvbnN0IFVDaGFyKiBjID0gdmlldy5jaGFyYWN0ZXJz
MTYoKTsKQEAgLTYyMiw3ICs2MjksOSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGds
b2JhbEZ1bmNFc2NhcGUoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgfQogICAgICAgICB9
CiAKLSAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsIGJ1aWxkZXIudG9TdHJpbmcoKSk7Cisg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAg
IHJldHVybiBqc1N0cmluZyhleGVjLCAqc3RyaW5nKTsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9
KSk7CiB9CiAKQEAgLTY3OCw3ICs2ODcsOSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGdsb2JhbEZ1bmNVbmVzY2FwZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KIAotICAgICAgICByZXR1cm4ganNTdHJpbmcoZXhlYywgYnVpbGRlci50b1N0cmluZygp
KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsICpzdHJpbmcpOworICAgICAgICBDUkFTSCgpOwog
ICAgIH0pKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPTk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0
LmNwcAppbmRleCBiM2E3ODA4Li5kN2MwNmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09OT2JqZWN0LmNwcApAQCAtMjc4LDcgKzI3OCw5IEBAIEpTVmFsdWUgU3RyaW5n
aWZpZXI6OnN0cmluZ2lmeShKU1ZhbHVlIHZhbHVlKQogICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKIAogICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICByZXR1cm4ganNTdHJpbmcobV9leGVj
LCByZXN1bHQudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiBqc1N0cmluZyhtX2V4ZWMsICpzdHJpbmcpOworICAgIENS
QVNIKCk7CiB9CiAKIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBTdHJpbmdpZmllcjo6dG9KU09OKEpT
VmFsdWUgdmFsdWUsIGNvbnN0IFByb3BlcnR5TmFtZUZvckZ1bmN0aW9uQ2FsbCYgcHJvcGVydHlO
YW1lKQpAQCAtNTA0LDggKzUwNiwxMiBAQCBib29sIFN0cmluZ2lmaWVyOjpIb2xkZXI6OmFwcGVu
ZE5leHRQcm9wZXJ0eShTdHJpbmdpZmllciYgc3RyaW5naWZpZXIsIFN0cmluZ0J1aQogICAgIC8v
IExhc3QgdGltZSB0aHJvdWdoLCBmaW5pc2ggdXAgYW5kIHJldHVybiBmYWxzZS4KICAgICBpZiAo
bV9pbmRleCA9PSBtX3NpemUpIHsKICAgICAgICAgc3RyaW5naWZpZXIudW5pbmRlbnQoKTsKLSAg
ICAgICAgaWYgKG1fc2l6ZSAmJiBidWlsZGVyW2J1aWxkZXIubGVuZ3RoKCkgLSAxXSAhPSAneycp
Ci0gICAgICAgICAgICBzdHJpbmdpZmllci5zdGFydE5ld0xpbmUoYnVpbGRlcik7CisgICAgICAg
IGlmIChtX3NpemUpIHsKKyAgICAgICAgICAgIGlmIChidWlsZGVyLmZhaWxlZCgpKQorICAgICAg
ICAgICAgICAgIENSQVNIKCk7CisgICAgICAgICAgICBpZiAoKmJ1aWxkZXJbYnVpbGRlci5sZW5n
dGgoKSAtIDFdICE9ICd7JykKKyAgICAgICAgICAgICAgICBzdHJpbmdpZmllci5zdGFydE5ld0xp
bmUoYnVpbGRlcik7CisgICAgICAgIH0KICAgICAgICAgYnVpbGRlci5hcHBlbmQobV9pc0FycmF5
ID8gJ10nIDogJ30nKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTU0OCw3ICs1
NTQsOSBAQCBib29sIFN0cmluZ2lmaWVyOjpIb2xkZXI6OmFwcGVuZE5leHRQcm9wZXJ0eShTdHJp
bmdpZmllciYgc3RyaW5naWZpZXIsIFN0cmluZ0J1aQogICAgICAgICByb2xsQmFja1BvaW50ID0g
YnVpbGRlci5sZW5ndGgoKTsKIAogICAgICAgICAvLyBBcHBlbmQgdGhlIHNlcGFyYXRvciBzdHJp
bmcuCi0gICAgICAgIGlmIChidWlsZGVyW3JvbGxCYWNrUG9pbnQgLSAxXSAhPSAneycpCisgICAg
ICAgIGlmIChidWlsZGVyLmZhaWxlZCgpKQorICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAg
aWYgKCpidWlsZGVyW3JvbGxCYWNrUG9pbnQgLSAxXSAhPSAneycpCiAgICAgICAgICAgICBidWls
ZGVyLmFwcGVuZCgnLCcpOwogICAgICAgICBzdHJpbmdpZmllci5zdGFydE5ld0xpbmUoYnVpbGRl
cik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQ
YXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5j
cHAKaW5kZXggZjAwZmUwNy4uYjg2ODY4YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAKQEAgLTQ2NiwxMCArNDY2LDE2IEBAIHNsb3dQYXRo
QmVnaW46CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKG1fYnVpbGRlci5pczhCaXQoKSkgewog
ICAgICAgICAgICAgdG9rZW4uc3RyaW5nSXM4Qml0ID0gMTsKLSAgICAgICAgICAgIHRva2VuLnN0
cmluZ1Rva2VuOCA9IG1fYnVpbGRlci5jaGFyYWN0ZXJzOCgpOworICAgICAgICAgICAgaWYgKGF1
dG8gY2hhcnMgPSBtX2J1aWxkZXIuY2hhcmFjdGVyczgoKSkKKyAgICAgICAgICAgICAgICB0b2tl
bi5zdHJpbmdUb2tlbjggPSAqY2hhcnM7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgQ1JBU0goKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHRva2VuLnN0cmluZ0lz
OEJpdCA9IDA7Ci0gICAgICAgICAgICB0b2tlbi5zdHJpbmdUb2tlbjE2ID0gbV9idWlsZGVyLmNo
YXJhY3RlcnMxNigpOworICAgICAgICAgICAgaWYgKGF1dG8gY2hhcnMgPSBtX2J1aWxkZXIuY2hh
cmFjdGVyczE2KCkpCisgICAgICAgICAgICAgICAgdG9rZW4uc3RyaW5nVG9rZW4xNiA9ICpjaGFy
czsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9
CiAgICAgICAgIHRva2VuLnN0cmluZ0xlbmd0aCA9IG1fYnVpbGRlci5sZW5ndGgoKTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCmluZGV4IDNjODYxMjMu
LjkyN2NkMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlv
bnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCkBA
IC01OTUsNyArNTk1LDEwIEBAIHZvaWQgT3B0aW9uczo6ZHVtcE9wdGlvbnNJZk5lZWRlZCgpCiAK
ICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBkdW1wQWxsT3B0aW9ucyhi
dWlsZGVyLCBsZXZlbCwgdGl0bGUsIG51bGxwdHIsICIgICAiLCAiXG4iLCBEdW1wRGVmYXVsdHMp
OwotICAgICAgICBkYXRhTG9nKGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGRhdGFMb2coKnN0cmlu
Zyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogfQogCkBAIC04
MDQsNyArODA3LDEwIEBAIHZvaWQgT3B0aW9uczo6ZHVtcEFsbE9wdGlvbnMoRklMRSogc3RyZWFt
LCBEdW1wTGV2ZWwgbGV2ZWwsIGNvbnN0IGNoYXIqIHRpdGxlKQogewogICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKICAgICBkdW1wQWxsT3B0aW9ucyhidWlsZGVyLCBsZXZlbCwgdGl0bGUsIG51
bGxwdHIsICIgICAiLCAiXG4iLCBEdW1wRGVmYXVsdHMpOwotICAgIGZwcmludGYoc3RyZWFtLCAi
JXMiLCBidWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBmcHJpbnRmKHN0cmVhbSwgIiVzIiwg
c3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAK
IHZvaWQgT3B0aW9uczo6ZHVtcE9wdGlvbihTdHJpbmdCdWlsZGVyJiBidWlsZGVyLCBEdW1wTGV2
ZWwgbGV2ZWwsIE9wdGlvbnM6OklEIGlkLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKaW5kZXggZDMyMWUyZC4uMzZmYzZhYiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCkBA
IC00NjYsNyArNDY2LDkgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIHJlZ0V4cFByb3RvR2V0dGVy
U291cmNlSW50ZXJuYWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHIKICAgICAgICAgICAgIHBy
ZXZpb3VzQ2hhcmFjdGVyV2FzQmFja3NsYXNoID0gY2ggPT0gJ1xcJzsKICAgICB9CiAKLSAgICBy
ZXR1cm4ganNTdHJpbmcoZXhlYywgcmVzdWx0LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4ganNTdHJpbmcoZXhlYywg
KnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCByZWdFeHBQcm90b0dldHRlclNvdXJjZShFeGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCmluZGV4IDU5MmFm
NDEuLmYwOGM0ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Nh
bXBsaW5nUHJvZmlsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Nh
bXBsaW5nUHJvZmlsZXIuY3BwCkBAIC05MDQsNyArOTA0LDkgQEAgU3RyaW5nIFNhbXBsaW5nUHJv
ZmlsZXI6OnN0YWNrVHJhY2VzQXNKU09OKCkKIAogICAgIGNsZWFyRGF0YShsb2NrZXIpOwogCi0g
ICAgcmV0dXJuIGpzb24udG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBqc29uLnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZv
aWQgU2FtcGxpbmdQcm9maWxlcjo6cmVnaXN0ZXJGb3JSZXBvcnRBdEV4aXQoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0ZyYW1lLmNwcAppbmRleCA5ZjJkNjBkLi40OGEy
MmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0ZyYW1l
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0ZyYW1lLmNwcApA
QCAtMTM5LDcgKzEzOSw5IEBAIFN0cmluZyBTdGFja0ZyYW1lOjp0b1N0cmluZyhWTSYgdm0pIGNv
bnN0CiAgICAgICAgICAgICB0cmFjZUJ1aWxkLmFwcGVuZE51bWJlcihjb2x1bW4pOwogICAgICAg
ICB9CiAgICAgfQotICAgIHJldHVybiB0cmFjZUJ1aWxkLnRvU3RyaW5nKCkuaW1wbCgpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHRyYWNlQnVpbGQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
IHN0cmluZy0+aW1wbCgpOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgU3RhY2tGcmFtZTo6dmlz
aXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAppbmRleCAxMGFiYzc2Li42NDVh
M2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25z
dHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29u
c3RydWN0b3IuY3BwCkBAIC0xMjUsNyArMTI1LDkgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgc3RyaW5nRnJvbUNvZGVQb2ludChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgfQog
CiAgICAgc2NvcGUucmVsZWFzZSgpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJp
bmcoZXhlYywgYnVpbGRlci50b1N0cmluZygpKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5n
KGV4ZWMsICpzdHJpbmcpKTsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoU3RyaW5nQ29uc3RydWN0b3IoRXhlY1N0YXRl
KiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3Rv
dHlwZS5jcHAKaW5kZXggYTBkMzYwMS4uNThjY2Q1NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCkBAIC0yODAsNyArMjgwLDkgQEAg
c3RhdGljIE5FVkVSX0lOTElORSBTdHJpbmcgc3Vic3RpdHV0ZUJhY2tyZWZlcmVuY2VzU2xvdyhT
dHJpbmdWaWV3IHJlcGxhY2VtZW50LAogICAgIGlmIChyZXBsYWNlbWVudC5sZW5ndGgoKSAtIG9m
ZnNldCkKICAgICAgICAgc3Vic3RpdHV0ZWRSZXBsYWNlbWVudC5hcHBlbmQocmVwbGFjZW1lbnQu
c3Vic3RyaW5nKG9mZnNldCkpOwogCi0gICAgcmV0dXJuIHN1YnN0aXR1dGVkUmVwbGFjZW1lbnQu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdWJzdGl0dXRlZFJlcGxhY2VtZW50
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IGlubGluZSBTdHJpbmcgc3Vic3RpdHV0ZUJhY2tyZWZlcmVuY2VzSW5saW5lKGNvbnN0IFN0cmlu
ZyYgcmVwbGFjZW1lbnQsIFN0cmluZ1ZpZXcgc291cmNlLCBjb25zdCBpbnQqIG92ZWN0b3IsIFJl
Z0V4cCogcmVnKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlw
ZVByb2ZpbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQcm9maWxl
ci5jcHAKaW5kZXggMGY4NWVmOC4uN2FlOTc0NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9UeXBlUHJvZmlsZXIuY3BwCkBAIC0xMDQsOCArMTA0LDEwIEBAIFN0cmluZyBU
eXBlUHJvZmlsZXI6OnR5cGVJbmZvcm1hdGlvbkZvckV4cHJlc3Npb25BdE9mZnNldChUeXBlUHJv
ZmlsZXJTZWFyY2hEZXNjCiAgICAgICAgIGpzb24uYXBwZW5kTGl0ZXJhbCgiZmFsc2UiKTsKIAog
ICAgIGpzb24uYXBwZW5kKCd9Jyk7Ci0gICAgCi0gICAgcmV0dXJuIGpzb24udG9TdHJpbmcoKTsK
KworICAgIGlmIChhdXRvIHN0cmluZyA9IGpzb24udG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogVHlwZUxvY2F0aW9uKiBUeXBlUHJvZmlsZXI6
OmZpbmRMb2NhdGlvbih1bnNpZ25lZCBkaXZvdCwgaW50cHRyX3Qgc291cmNlSUQsIFR5cGVQcm9m
aWxlclNlYXJjaERlc2NyaXB0b3IgZGVzY3JpcHRvciwgVk0mIHZtKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVNldC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9UeXBlU2V0LmNwcAppbmRleCA3YTQxMmU2Li5jM2EwNWM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlU2V0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlU2V0LmNwcApAQCAtMTMxLDcgKzEzMSw5IEBA
IFN0cmluZyBUeXBlU2V0OjpkdW1wVHlwZXMoKSBjb25zdAogICAgICAgICBzZWVuLmFwcGVuZChs
ZWFzdENvbW1vbkFuY2VzdG9yKCkpOwogICAgIH0KIAotICAgIHJldHVybiBzZWVuLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc2Vlbi50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIFR5cGVTZXQ6OmRvZXNUeXBlQ29u
Zm9ybVRvKFJ1bnRpbWVUeXBlTWFzayB0ZXN0KSBjb25zdApAQCAtMzE3LDcgKzMxOSw5IEBAIFN0
cmluZyBUeXBlU2V0Ojp0b0pTT05TdHJpbmcoKSBjb25zdAogICAgIGpzb24uYXBwZW5kKCddJyk7
CiAKICAgICBqc29uLmFwcGVuZCgnfScpOwotICAgIHJldHVybiBqc29uLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0ganNvbi50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJ1Y3R1cmVTaGFwZTo6U3RydWN0dXJlU2hhcGUo
KQpAQCAtMzYyLDggKzM2NiwxMSBAQCBTdHJpbmcgU3RydWN0dXJlU2hhcGU6OnByb3BlcnR5SGFz
aCgpCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG1fcHJvdG8tPnByb3BlcnR5SGFzaCgpKTsKICAg
ICB9CiAKLSAgICBtX3Byb3BlcnR5SGFzaCA9IHN0ZDo6bWFrZV91bmlxdWU8U3RyaW5nPihidWls
ZGVyLnRvU3RyaW5nKCkpOwotICAgIHJldHVybiAqbV9wcm9wZXJ0eUhhc2g7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIG1fcHJvcGVydHlIYXNo
ID0gc3RkOjptYWtlX3VuaXF1ZTxTdHJpbmc+KCpzdHJpbmcpOworICAgICAgICByZXR1cm4gKm1f
cHJvcGVydHlIYXNoOworICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgU3RydWN0dXJl
U2hhcGU6OmxlYXN0Q29tbW9uQW5jZXN0b3IoY29uc3QgVmVjdG9yPFJlZjxTdHJ1Y3R1cmVTaGFw
ZT4+JiBzaGFwZXMpCkBAIC00MjcsNyArNDM0LDkgQEAgU3RyaW5nIFN0cnVjdHVyZVNoYXBlOjpz
dHJpbmdSZXByZXNlbnRhdGlvbigpCiAKICAgICByZXByZXNlbnRhdGlvbi5hcHBlbmQoJ30nKTsK
IAotICAgIHJldHVybiByZXByZXNlbnRhdGlvbi50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IHJlcHJlc2VudGF0aW9uLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBTdHJ1Y3R1cmVTaGFwZTo6dG9KU09OU3RyaW5n
KCkgY29uc3QKQEAgLTQ5NCw3ICs1MDMsOSBAQCBTdHJpbmcgU3RydWN0dXJlU2hhcGU6OnRvSlNP
TlN0cmluZygpIGNvbnN0CiAKICAgICBqc29uLmFwcGVuZCgnfScpOwogCi0gICAgcmV0dXJuIGpz
b24udG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBqc29uLnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFJlZjxJbnNwZWN0b3I6
OlByb3RvY29sOjpSdW50aW1lOjpTdHJ1Y3R1cmVEZXNjcmlwdGlvbj4gU3RydWN0dXJlU2hhcGU6
Omluc3BlY3RvclJlcHJlc2VudGF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0UmVnRXhwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNw
cAppbmRleCBlNmNkZDUwLi5jNGQ4ZGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdFJlZ0V4cC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RSZWdFeHAu
Y3BwCkBAIC0zMjksMTIgKzMyOSwxNSBAQCBzdGF0aWMgUmVnRXhwKiBwYXJzZVJlZ0V4cExpbmUo
Vk0mIHZtLCBjaGFyKiBsaW5lLCBpbnQgbGluZUxlbmd0aCwgY29uc3QgY2hhcioqCiAKICAgICAr
K2k7CiAKLSAgICBSZWdFeHAqIHIgPSBSZWdFeHA6OmNyZWF0ZSh2bSwgcGF0dGVybi50b1N0cmlu
ZygpLCByZWdFeHBGbGFncyhsaW5lICsgaSkpOwotICAgIGlmICghci0+aXNWYWxpZCgpKSB7Ci0g
ICAgICAgICpyZWdleHBFcnJvciA9IHItPmVycm9yTWVzc2FnZSgpOwotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBwYXR0ZXJuLnRvU3RyaW5nKCkpIHsKKyAg
ICAgICAgUmVnRXhwKiByID0gUmVnRXhwOjpjcmVhdGUodm0sICpzdHJpbmcsIHJlZ0V4cEZsYWdz
KGxpbmUgKyBpKSk7CisgICAgICAgIGlmICghci0+aXNWYWxpZCgpKSB7CisgICAgICAgICAgICAq
cmVnZXhwRXJyb3IgPSByLT5lcnJvck1lc3NhZ2UoKTsKKyAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgICAgICB9CisgICAgICAgIHJldHVybiByOwogICAgIH0KLSAgICByZXR1cm4gcjsK
KyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgUmVnRXhwVGVzdCogcGFyc2VUZXN0TGluZShjaGFy
KiBsaW5lLCBpbnQgbGluZUxlbmd0aCkKQEAgLTM3Nyw4ICszODAsMTEgQEAgc3RhdGljIFJlZ0V4
cFRlc3QqIHBhcnNlVGVzdExpbmUoY2hhciogbGluZSwgaW50IGxpbmVMZW5ndGgpCiAgICAgaW50
IHN0YXJ0LCBlbmQ7CiAgICAgCiAgICAgUmVnRXhwVGVzdCogcmVzdWx0ID0gbmV3IFJlZ0V4cFRl
c3QoKTsKLSAgICAKLSAgICByZXN1bHQtPnN1YmplY3QgPSBzdWJqZWN0U3RyaW5nLnRvU3RyaW5n
KCk7CisKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdWJqZWN0U3RyaW5nLnRvU3RyaW5nKCkpCisg
ICAgICAgIHJlc3VsdC0+c3ViamVjdCA9ICpzdHJpbmc7CisgICAgZWxzZQorICAgICAgICBDUkFT
SCgpOwogICAgIHJlc3VsdC0+b2Zmc2V0ID0gb2Zmc2V0OwogICAgIHJlc3VsdC0+cmVzdWx0ID0g
bWF0Y2hSZXN1bHQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9G
dW5jdGlvbk92ZXJyaWRlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rp
b25PdmVycmlkZXMuY3BwCmluZGV4IGU4M2I2ZWUuLjRhYzI3YzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90b29scy9GdW5jdGlvbk92ZXJyaWRlcy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcApAQCAtMjE4LDEzICsy
MTgsMTggQEAgc3RhdGljIFN0cmluZyBwYXJzZUNsYXVzZShjb25zdCBjaGFyKiBrZXl3b3JkLCBz
aXplX3Qga2V5d29yZExlbmd0aCwgRklMRSogZmlsZSwKICAgICAgICAgICAgICAgICBGQUlMX1dJ
VEhfRVJST1IoU1lOVEFYX0VSUk9SLCAoIlVuZXhwZWN0ZWQgY2hhcmFjdGVycyBhZnRlciAnIiwg
a2V5d29yZCwgIicgY2xhdXNlIGVuZCBkZWxpbWl0ZXIgJyIsIGRlbGltaXRlciwgIic6XG4iLCBs
aW5lLCAiXG4iKSk7CiAKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGxpbmUsIHAgLSBsaW5l
ICsgMSk7Ci0gICAgICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgICAg
ICBidWlsZGVyLmFwcGVuZChsaW5lKTsKIAogICAgIH0gd2hpbGUgKChsaW5lID0gZmdldHMoYnVm
ZmVyLCBidWZmZXJTaXplLCBmaWxlKSkpOwogCi0gICAgRkFJTF9XSVRIX0VSUk9SKFNZTlRBWF9F
UlJPUiwgKCInIiwga2V5d29yZCwgIicgY2xhdXNlIGVuZCBkZWxpbWl0ZXIgJyIsIGRlbGltaXRl
ciwgIicgbm90IGZvdW5kOlxuIiwgYnVpbGRlci50b1N0cmluZygpLCAiXG4iLCAiQXJlIHlvdSBt
aXNzaW5nIGEgJ30nIGJlZm9yZSB0aGUgZGVsaW1pdGVyP1xuIikpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgRkFJTF9XSVRIX0VSUk9SKFNZTlRB
WF9FUlJPUiwgKCInIiwga2V5d29yZCwgIicgY2xhdXNlIGVuZCBkZWxpbWl0ZXIgJyIsIGRlbGlt
aXRlciwgIicgbm90IGZvdW5kOlxuIiwgKnN0cmluZywgIlxuIiwgIkFyZSB5b3UgbWlzc2luZyBh
ICd9JyBiZWZvcmUgdGhlIGRlbGltaXRlcj9cbiIpKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNI
KCk7CiB9CiAKIHZvaWQgRnVuY3Rpb25PdmVycmlkZXM6OnBhcnNlT3ZlcnJpZGVzSW5GaWxlKGNv
bnN0IGNoYXIqIGZpbGVOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUJCUVBsYW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBs
YW4uY3BwCmluZGV4IGE3ODIwYzkuLmZhMDAzNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtQkJRUGxhbi5jcHAKQEAgLTE1MCw4ICsxNTAsMTEgQEAgdm9pZCBCQlFQbGFuOjpw
cmVwYXJlKCkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRmFpbGVkIGFsbG9j
YXRpbmcgZW5vdWdoIHNwYWNlIGZvciAiKTsKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVt
YmVyKHNpemUpOwogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQod2hhdCk7Ci0gICAgICAgICAg
ICBmYWlsKGhvbGRMb2NrKG1fbG9jayksIGJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBmYWlsKGhvbGRMb2NrKG1fbG9jayksIFdURk1v
dmUoKnN0cmluZykpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXJz
ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXJzZXIuaAppbmRleCBmMTZm
MTFmLi44Yjc1OGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJy
UGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhcnNlci5oCkBA
IC0xMDMxLDggKzEwMzEsMTEgQEAgcHJpdmF0ZToKIAogICAgICAgICAgICAgd2hpbGUgKCFhdEVu
ZE9mUGF0dGVybigpKSB7CiAgICAgICAgICAgICAgICAgY2ggPSB0cnlDb25zdW1lSWRlbnRpZmll
ckNoYXJhY3RlcigpOwotICAgICAgICAgICAgICAgIGlmIChjaCA9PSAnPicpCi0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFN0cmluZz4oaWRlbnRpZmllckJ1aWxkZXIu
dG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgaWYgKGNoID09ICc+JykgeworICAgICAgICAg
ICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBpZGVudGlmaWVyQnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPigq
c3RyaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgICAgICAgICB9
CiAKICAgICAgICAgICAgICAgICBpZiAoIWlzSWRlbnRpZmllclBhcnQoY2gpKQogICAgICAgICAg
ICAgICAgICAgICBicmVhazsKQEAgLTEwNzAsMjMgKzEwNzMsMzIgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBpZiAoZm91bmRFcXVhbHMpIHsKLSAgICAg
ICAgICAgICAgICAgICAgYXV0byByZXN1bHQgPSB1bmljb2RlTWF0Y2hQcm9wZXJ0eVZhbHVlKHVu
aWNvZGVQcm9wZXJ0eU5hbWUsIGV4cHJlc3Npb25CdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAg
ICAgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBleHByZXNzaW9uQnVpbGRlci50b1N0cmlu
ZygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IHVuaWNvZGVNYXRj
aFByb3BlcnR5VmFsdWUodW5pY29kZVByb3BlcnR5TmFtZSwgKnN0cmluZyk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
X2Vycm9yQ29kZSA9IEVycm9yQ29kZTo6SW52YWxpZFVuaWNvZGVQcm9wZXJ0eUV4cHJlc3Npb247
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7CisgICAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZXhwcmVzc2lvbkJ1aWxkZXIudG9T
dHJpbmcoKSkgeworICAgICAgICAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IHVuaWNvZGVNYXRj
aFByb3BlcnR5KCpzdHJpbmcpOwogICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkKICAg
ICAgICAgICAgICAgICAgICAgICAgIG1fZXJyb3JDb2RlID0gRXJyb3JDb2RlOjpJbnZhbGlkVW5p
Y29kZVByb3BlcnR5RXhwcmVzc2lvbjsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IHVu
aWNvZGVNYXRjaFByb3BlcnR5KGV4cHJlc3Npb25CdWlsZGVyLnRvU3RyaW5nKCkpOwotICAgICAg
ICAgICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgICAgICAgICBtX2Vycm9yQ29kZSA9
IEVycm9yQ29kZTo6SW52YWxpZFVuaWNvZGVQcm9wZXJ0eUV4cHJlc3Npb247Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAg
ICAgfQogCiAgICAgICAgICAgICBjb25zdW1lKCk7CiAgICAgICAgICAgICBpZiAoY2ggPT0gJz0n
KSB7CiAgICAgICAgICAgICAgICAgaWYgKCFmb3VuZEVxdWFscykgewogICAgICAgICAgICAgICAg
ICAgICBmb3VuZEVxdWFscyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIHVuaWNvZGVQcm9w
ZXJ0eU5hbWUgPSBleHByZXNzaW9uQnVpbGRlci50b1N0cmluZygpOworICAgICAgICAgICAgICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSBleHByZXNzaW9uQnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgdW5pY29kZVByb3BlcnR5TmFtZSA9ICpzdHJpbmc7CisgICAg
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7CiAg
ICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb25CdWlsZGVyLmNsZWFyKCk7CiAgICAgICAgICAg
ICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgICAgIGVycm9ycysrOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCAxZDJkMjBk
Li42MjBhNWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0NiBAQAorMjAxOC0wNC0yNiAgSkYgQmFzdGllbiAg
PGpmYmFzdGllbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3RyaW5nQnVpbGRlciBpcyBmYWxsaWJs
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MDQ4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RyaW5n
QnVpbGRlciBjYW4gZmFpbCB3aGVuIGFsbG9jYXRpbmcgbWVtb3J5LiBTdHJpbmdCdWlsZGVyIGlz
CisgICAgICAgIG1vc3RseSB1c2VkIHdpdGggdXNlciBpbnB1dCwgd2hpY2ggb2Z0ZW4gbWVhbnMg
dGhhdCBqdXN0IGNyYXNoaW5nCisgICAgICAgIGlzbid0IHRoZSByaWdodCBvdXRjb21lLiBPdXIg
ZnV6emVycyBvZnRlbiBlbmNvdW50ZXIgc3VjaCB0aGluZ3MKKyAgICAgICAgZm9yIEphdmFTY3Jp
cHRDb3JlLCBhbmQgc28gZmFyIHdlJ3ZlIGFwcGxpZWQgcG9pbnQgc29sdXRpb25zLiBObworICAg
ICAgICBtb3JlISBUaGlzIHBhdGNoIG1ha2VzIFN0cmluZ0J1aWxkZXIgZmFsbGlibGUgYW5kIGVu
Zm9yY2VzIHRoaXMgaW4KKyAgICAgICAgdHdvIHdheXM6CisKKyAgICAgICAgICAtIEVhY2ggc3Rl
cCBvZiBidWlsZGluZyBhIHN0cmluZyBjYW4gYmUgY2hlY2tlZCBmb3IgZmFpbHVyZQorICAgICAg
ICAgICAgYmVjYXVzZSB0aGV5IG5vdyByZXR1cm4gYSAiRmFsbGlibGU8VD4iLiBUaGlzIGNhbiBi
ZSBpZ25vcmVkIGF0CisgICAgICAgICAgICBldmVyeSBzdGVwIQorICAgICAgICAgIC0gVGhlIGZp
bmFsIHN0ZXAgb2YgU3RyaW5nQnVpbGRlciwgZ2V0dGluZyB0aGUgc3RyaW5nIG91dCwKKyAgICAg
ICAgICAgIHJldHVybnMgYSAiRmFsbGlibGU8U3RyaW5nPiIgd2hpY2ggaXMgbWFya2VkIHdpdGgK
KyAgICAgICAgICAgIFdBUk5fVU5VU0VEX1JFVFVSTi4gRmFpbHVyZSBpcyBjb21tdW5pY2F0ZWQg
aWYgYW55IG9mIHRoZSBidWlsZGluZworICAgICAgICAgICAgc3RlcHMgZmFpbGVkLgorCisgICAg
ICAgIERvaW5nIHRoaXMgdHdvLXN0ZXAgYXBwcm9hY2ggbWVhbnMgdGhhdCBjb2RlIGNhbiBjb250
aW51ZQorICAgICAgICBvcGVyYXRpbmcgYXMgaXQgZGlkIGJlZm9yZSAoYXBwZW5kIGEgYnVuY2gg
YW5kIHRoZW4gZ2V0IGEgc3RyaW5nKQorICAgICAgICBhbmQgb25seSBuZWVkcyB0byBjYXJlIGFi
b3V0IHRoZSBzdHJpbmcgcG90ZW50aWFsbHkgbm90IGJlaW5nCisgICAgICAgIGF2YWlsYWJsZS4g
VGhpcyBpcyBlbmZvcmNlZCBieSB0aGUgdHlwZSBzeXN0ZW06IEZhbGxpYmxlPFQ+IGlzCisgICAg
ICAgIHN0ZDo6ZXhwZWN0ZWQ8VCwgU3RyaW5nQnVpbGRlcjo6RmFpbHVyZT4uCisKKyAgICAgICAg
VGhlIGZvbGxvd2luZyBpbnRlcm1lZGlhdGUgZnVuY3Rpb25zIGNhbiBub3cgYmUgb2JzZXJ2ZWQg
dG8gZmFpbAorICAgICAgICAob3IgaWdub3JlZCk6CisKKyAgICAgICAgICAtIGFwcGVuZAorICAg
ICAgICAgIC0gYXBwZW5kVW5pbml0aWFsaXplZAorICAgICAgICAgIC0gYXBwZW5kVW5pbml0aWFs
aXplZFNsb3cKKyAgICAgICAgICAtIGFwcGVuZFF1b3RlZEpTT05TdHJpbmcgdXNlZCB0byByZXR1
cm4gZmFsc2Ugb24gZmFpbHVyZSwgaXQgbm93IHJldHVybnMgRmFsbGlibGU8PgorICAgICAgICAg
IC0gcmVzaXplCisgICAgICAgICAgLSBhbGxvY2F0ZUJ1ZmZlcgorICAgICAgICAgIC0gYWxsb2Nh
dGVCdWZmZXJVcENvbnZlcnQKKyAgICAgICAgICAtIHJlYWxsb2NhdGVCdWZmZXIKKyAgICAgICAg
ICAtIHJlc2VydmVDYXBhY2l0eQorICAgICAgICAgIC0gc2hyaW5rVG9GaXQKKyAgICAgICAgICAt
IG9wZXJhdG9yW10KKyAgICAgICAgICAtIGNoYXJhY3RlcnM4CisgICAgICAgICAgLSBjaGFyYWN0
ZXJzMTYKKworICAgICAgICBGYWlsdXJlIGluIHRoZXNlIG1ldGhvZHMgY29tZXMgaW4gdHdvIGZv
cm1zOiBvdXQgb2YgbWVtb3J5LCBhbmQKKyAgICAgICAgd291bGQgb3ZlcmZsb3cuIFdoZW4gYW4g
b3BlcmF0aW9uIHdvdWxkIG92ZXJmbG93IGl0IGxlYXZlcyB0aGUKKyAgICAgICAgU3RyaW5nQnVp
bGRlciBpbiBpdHMgcHJldmlvdXMgc3RhdGUsIGFsbG93aW5nIHVzZXJzIHRvIHJlc3VtZQorICAg
ICAgICB3b3JrLCBrZWVwIHRoZSBzdHJpbmcgYXMgaXQgZXhpc3RlZCBiZWZvcmUgZmFpbHVyZS4g
V2hlbiB3ZSBqdXN0CisgICAgICAgIGZhaWwgYWxsb2NhdGluZyBpdCBtZWFucyB3ZSBleHBlY3Rl
ZCB0byBzdWNjZWVkLCBzbyBjbGVhcmluZyB0aGUKKyAgICAgICAgU3RyaW5nQnVpbGRlciBpcyB0
aGUgcmlnaHQgdGhpbmcgdG8gZG8uCisKKyAgICAgICAgU3VwcG9ydGluZyBmYWlsdXJlIGluIFN0
cmluZ0J1aWxkZXIgcmVxdWlyZWQgYWRkaW5nICJ0cnkiIHZhcmlhbnRzCisgICAgICAgIG9mIHNv
bWUgbWV0aG9kcyBpbiBTdHJpbmdJbXBsLgorCisgICAgICAgIFRoaXMgcGF0Y2ggdXBkYXRlcyBh
bGwgV2ViS2l0IGNvZGUgd2hpY2ggdXNlcyBTdHJpbmdCdWlsZGVyLiBJdAorICAgICAgICBsZWF2
ZXMgYWxsIGludGVybWVkaWF0ZSBmdW5jdGlvbiB1c2FnZSBhbG9uZSAoY29kZSBzdGlsbCBhcHBl
bmRzCisgICAgICAgIGJhY2stdG8tYmFjaywgYmxpc3NmdWxseSB1bmF3YXJlIG9mIGZhaWx1cmUp
LCBhbmQgb25seSBjaGVja3MgZm9yCisgICAgICAgIGZhaWx1cmUgd2hlbiByZXRyaWV2aW5nIHRo
ZSBzdHJpbmcuIFRoZSBwYXR0ZXJuIHVzZWQgaXMgdXN1YWxseToKKworICAgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGZvbygqc3RyaW5n
KTsgLy8gVXNlIHN0cmluZyBhcyBiZWZvcmUuLi4KKyAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICBDUkFTSCgpOworCisgICAgICAgIFRoaXMgbWFrZXMgZmFpbHVyZSBleHRyZW1lbHkgZXhwbGlj
aXQuIFRoZXJlJ3Mgbm8gdHJ1ZSBiZWhhdmlvcgorICAgICAgICBjaGFuZ2U6IHdoYXQgd291bGQg
aGF2ZSBjcmFzaGVkIHdoZW4gYXBwZW5kaW5nIG5vdyBjcmFzaGVzIHdoZW4KKyAgICAgICAgcmV0
cmlldmluZyB0aGUgc3RyaW5nLiBQdWxsaW5nIENSQVNIKCkgb3V0IHdpbGwgZ2l2ZSBzbGlnaHRs
eQorICAgICAgICBiZXR0ZXIgY3Jhc2ggc2lnbmF0dXJlcywgYW5kIGl0IG1ha2VzIHRoZSBjb2Rl
IHZlcnkgb2J2aW91cyBhYm91dAorICAgICAgICBmYWlsdXJlLiBJIHB1cnBvc2VmdWxseSBkb24n
dCAiZml4IiBhbnkgZmFpbHVyZSBiZWNhdXNlIHRoZXNlCisgICAgICAgIHNob3VsZCBiZSBkb25l
IGluIGEgdGFyZ2V0ZWQgbWFubmVyIHdpdGggcmVwcm8gdGVzdHMgd2hlbmV2ZXIKKyAgICAgICAg
cG9zc2libGUuIEknbSB2ZXJ5IHdhcnkgb2YgaW50cm9kdWNpbmcgYnVncyEKKworICAgICAgICBX
aGVuIHNvbWVvbmUgaW5ldml0YWJseSBibGFtZXMgY29kZSBiYWNrIHRvIHRoaXMgY29tbWl0IChi
ZWNhdXNlCisgICAgICAgIGhleSB0aGUgY29kZSBpcyBwcmV0dHkgdWdseSwgYW5kIHlvdSBtaWdo
dCBiZSBzdXJwcmlzZWQgYXQgc2VlaW5nCisgICAgICAgIENSQVNIKCkgaW4geW91ciBiZWF1dGlm
dWwgY29kZSkgdGhlcmUgYXJlIGEgZmV3IHRoaW5ncyB3aGljaCB0aGV5CisgICAgICAgIGNhbiBk
bzoKKworICAgICAgICAgIDEuIENoYW5nZSB0aGUgZWxzZSBjbGF1c2UgdG8gaGFuZGxlIGZhaWx1
cmUgcmF0aGVyIHRoYW4gY3Jhc2guIEluIEphdmFTY3JpcHRDb3JlIHRoYXQncyB1c3VhbGx5IHRo
cm93T3V0T2ZNZW1vcnlFcnJvci4KKyAgICAgICAgICAyLiBDaGFuZ2UgdGhlIGNvZGUgdG8gZGly
ZWN0bHkgdXNlIEZhbGxpYmxlJ3MgLnZhbHVlKCkgbWVtYmVyLCBhbmQgbGV0ICp0aGF0KiBjcmFz
aCBpbnN0ZWFkLiBUaGlzIG1ha2VzIHRoZSBjcmFzaCBub24tb2J2aW91cyBpbiB0aGUgY29kZSwg
d2hpY2ggbWlnaHQgYmUgd2hhdCB5b3Ugd2FudC4KKyAgICAgICAgICAzLiBDaGFuZ2UgdGhlIGNv
ZGUgdG8gZGV0ZWN0IGZhaWx1cmUgYXQgdGhlIGVhcmxpZXN0IHN0ZXAgb2Ygc3RyaW5nIGJ1aWxk
aW5nIChsaWtlbHkgdGhlIGFwcGVuZCBjYWxscyksIGFuZCBkbyBzb21ldGhpbmcgc2Vuc2libGUg
dGhlcmUuCisKKyAgICAgICAgSW4gbm8gY2lyY3Vtc3RhbmNlIHNob3VsZCBjb2RlIGp1c3QgZGVy
ZWZlcmVuY2UgYSBGYWxsaWJsZSB3aXRob3V0CisgICAgICAgIGtub3dpbmcgdGhhdCBpdHMgc3Rh
dGUgaG9sZHMgYSB2YWxpZCBzdHJpbmcuIFRoaXMgY29kZSBpcworICAgICAgICB1bmRlZmluZWQg
YmVoYXZpb3IgYWNjb3JkaW5nIHRvIHRoZSBzdGQ6OmV4cGVjdGVkIHNwZWNpZmljYXRpb24KKyAg
ICAgICAgKHdoZXRoZXIgb3VyIGltcGxlbWVudGF0aW9uIHNob3VsZCBkbyBzb21ldGhpbmcgZWxz
ZSBpcyBvdXQgb2YKKyAgICAgICAgc2NvcGUgZm9yIHRoaXMgcGF0Y2gpOgorCisgICAgICAgICAg
Zm9vKCpidWlsZGVyLnRvU3RyaW5nKCkpOyAvLyBVQiB3aGVuIGFsbG9jYXRpb24gZmFpbHMuCisK
KyAgICAgICAgKiB3dGYvQXNzZXJ0aW9ucy5jcHA6CisgICAgICAgICogd3RmL0RhdGVNYXRoLmNw
cDoKKyAgICAgICAgKFdURjo6bWFrZVJGQzI4MjJEYXRlU3RyaW5nKToKKyAgICAgICAgKiB3dGYv
SlNPTlZhbHVlcy5jcHA6CisgICAgICAgIChXVEY6OkpTT05JbXBsOjpWYWx1ZTo6dG9KU09OU3Ry
aW5nIGNvbnN0KToKKyAgICAgICAgKiB3dGYvTG9nZ2VyLmg6CisgICAgICAgIChXVEY6OkxvZ0Fy
Z3VtZW50Ojp0b1N0cmluZyk6CisgICAgICAgIChXVEY6OkxvZ0FyZ3VtZW50PExvZ2dlcjo6TG9n
U2l0ZUlkZW50aWZpZXI+Ojp0b1N0cmluZyk6CisgICAgICAgICogd3RmL01lZGlhVGltZS5jcHA6
CisgICAgICAgIChXVEY6Ok1lZGlhVGltZTo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAqIHd0
Zi9VVUlELmNwcDoKKyAgICAgICAgKFdURjo6Y3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZyk6Cisg
ICAgICAgICogd3RmL3RleHQvU3RyaW5nQnVpbGRlci5jcHA6CisgICAgICAgIChXVEY6OlN0cmlu
Z0J1aWxkZXI6OndvdWxkT3ZlcmZsb3cpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpv
dXRPZk1lbW9yeSk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OnJlc2l6ZSk6CisgICAg
ICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OmFsbG9jYXRlQnVmZmVyKToKKyAgICAgICAgKFdURjo6
U3RyaW5nQnVpbGRlcjo6YWxsb2NhdGVCdWZmZXJVcENvbnZlcnQpOgorICAgICAgICAoV1RGOjpT
dHJpbmdCdWlsZGVyOjpyZWFsbG9jYXRlQnVmZmVyPExDaGFyPik6CisgICAgICAgIChXVEY6OlN0
cmluZ0J1aWxkZXI6OnJlYWxsb2NhdGVCdWZmZXI8VUNoYXI+KToKKyAgICAgICAgKFdURjo6U3Ry
aW5nQnVpbGRlcjo6cmVzZXJ2ZUNhcGFjaXR5KToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRl
cjo6YXBwZW5kKToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKToK
KyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6YXBwZW5kRUNNQVNjcmlwdE51bWJlcik6Cisg
ICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OmFwcGVuZEZpeGVkV2lkdGhOdW1iZXIpOgorICAg
ICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpzaHJpbmtUb0ZpdCk6CisgICAgICAgICogd3RmL3Rl
eHQvU3RyaW5nQnVpbGRlci5oOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpTdHJpbmdC
dWlsZGVyKToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6YXBwZW5kKToKKyAgICAgICAg
KFdURjo6U3RyaW5nQnVpbGRlcjo6YXBwZW5kTGl0ZXJhbCk6CisgICAgICAgIChXVEY6OlN0cmlu
Z0J1aWxkZXI6OnRvU3RyaW5nKToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6dG9TdHJp
bmdQcmVzZXJ2ZUNhcGFjaXR5IGNvbnN0KToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6
dG9BdG9taWNTdHJpbmcgY29uc3QpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjppczhC
aXQgY29uc3QpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpmYWlsZWQgY29uc3QpOgor
ICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpvcGVyYXRvcltdIGNvbnN0KToKKyAgICAgICAg
KFdURjo6U3RyaW5nQnVpbGRlcjo6IGNvbnN0KToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRl
cjo6Y2xlYXIpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpzd2FwKToKKyAgICAgICAg
KFdURjo6ZXF1YWwpOgorICAgICAgICAoV1RGOjpJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uVHJh
aXQ8U3RyaW5nQnVpbGRlcj46OmZsdXNoKToKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdCdWls
ZGVySlNPTi5jcHA6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OmFwcGVuZFF1b3RlZEpT
T05TdHJpbmcpOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwOgorICAgICAgICAo
V1RGOjpTdHJpbmdJbXBsOjpyZWFsbG9jYXRlSW50ZXJuYWwpOgorICAgICAgICAoV1RGOjpTdHJp
bmdJbXBsOjpyZWFsbG9jYXRlKToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6dHJ5UmVhbGxv
Y2F0ZSk6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nSW1wbC5oOgorICAgICAgICAoV1RGOjpT
dHJpbmdJbXBsOjp0cnlDcmVhdGVTdWJzdHJpbmdTaGFyaW5nSW1wbCk6CisgICAgICAgIChXVEY6
OlN0cmluZ0ltcGw6OmNyZWF0ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKToKKyAgICAgICAgKiB3dGYv
dGV4dC9UZXh0U3RyZWFtLmNwcDoKKyAgICAgICAgKFdURjo6VGV4dFN0cmVhbTo6cmVsZWFzZSk6
CisKIDIwMTgtMDQtMjUgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAg
IEdhcmRlbmluZzogU3BlY3VsYXRpdmUgYnVpbGQgZml4IGZvciBXaW5kb3dzIDMyLWJpdCB0byBj
b21wZW5zYXRlIGZvciBNU1ZDJ3MgbGFjayBvZiBzbWFydHMuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9Bc3NlcnRpb25zLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwCmlu
ZGV4IGUxNWEwOTIuLmQ3YzgzMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlv
bnMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwCkBAIC0zNDIsOSArMzQy
LDExIEBAIHZvaWQgV1RGTG9nZ2luZ0FjY3VtdWxhdG9yOjpyZXNldEFjY3VtdWxhdGVkTG9ncygp
CiBTdHJpbmcgV1RGTG9nZ2luZ0FjY3VtdWxhdG9yOjpnZXRBbmRSZXNldEFjY3VtdWxhdGVkTG9n
cygpCiB7CiAgICAgTG9ja2VyPExvY2s+IGxvY2tlcihhY2N1bXVsYXRvckxvY2spOwotICAgIFN0
cmluZyByZXN1bHQgPSBsb2dnaW5nQWNjdW11bGF0b3IudG9TdHJpbmcoKTsKLSAgICBsb2dnaW5n
QWNjdW11bGF0b3IuY2xlYXIoKTsKLSAgICByZXR1cm4gcmVzdWx0OworICAgIGlmIChhdXRvIHJl
c3VsdCA9IGxvZ2dpbmdBY2N1bXVsYXRvci50b1N0cmluZygpKSB7CisgICAgICAgIGxvZ2dpbmdB
Y2N1bXVsYXRvci5jbGVhcigpOworICAgICAgICByZXR1cm4gKnJlc3VsdDsKKyAgICB9CisgICAg
Q1JBU0goKTsKIH0KIAogc3RhdGljIFdURkxvZ2dpbmdBY2N1bXVsYXRvciYgbG9nZ2luZ0FjY3Vt
dWxhdG9yKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcCBiL1NvdXJj
ZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAppbmRleCA2ZGI5MmViLi5hODQyNWYwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvRGF0ZU1h
dGguY3BwCkBAIC0xMTg3LDcgKzExODcsOSBAQCBTdHJpbmcgbWFrZVJGQzI4MjJEYXRlU3RyaW5n
KHVuc2lnbmVkIGRheU9mV2VlaywgdW5zaWduZWQgZGF5LCB1bnNpZ25lZCBtb250aCwgdQogICAg
IGFwcGVuZFR3b0RpZ2l0TnVtYmVyKHN0cmluZ0J1aWxkZXIsIGFic29sdXRlVVRDT2Zmc2V0IC8g
NjApOwogICAgIGFwcGVuZFR3b0RpZ2l0TnVtYmVyKHN0cmluZ0J1aWxkZXIsIGFic29sdXRlVVRD
T2Zmc2V0ICUgNjApOwogCi0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9K
U09OVmFsdWVzLmNwcAppbmRleCBiZGU0NGFiLi4wOGM2MjI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9KU09OVmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmNw
cApAQCAtMzI3LDggKzMyNywxMSBAQCBib29sIGRlY29kZVN0cmluZyhjb25zdCBVQ2hhciogc3Rh
cnQsIGNvbnN0IFVDaGFyKiBlbmQsIFN0cmluZyYgb3V0cHV0KQogICAgIGlmICghZGVjb2RlU3Ry
aW5nKHN0YXJ0LCBlbmQsIGJ1ZmZlcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIG91
dHB1dCA9IGJ1ZmZlci50b1N0cmluZygpOwotICAgIHJldHVybiB0cnVlOworICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1ZmZlci50b1N0cmluZygpKSB7CisgICAgICAgIG91dHB1dCA9ICpzdHJpbmc7
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIFJl
ZlB0cjxKU09OOjpWYWx1ZT4gYnVpbGRWYWx1ZShjb25zdCBVQ2hhciogc3RhcnQsIGNvbnN0IFVD
aGFyKiBlbmQsIGNvbnN0IFVDaGFyKiogdmFsdWVUb2tlbkVuZCwgaW50IGRlcHRoKQpAQCAtNTUz
LDcgKzU1Niw5IEBAIFN0cmluZyBWYWx1ZTo6dG9KU09OU3RyaW5nKCkgY29uc3QKICAgICBTdHJp
bmdCdWlsZGVyIHJlc3VsdDsKICAgICByZXN1bHQucmVzZXJ2ZUNhcGFjaXR5KDUxMik7CiAgICAg
d3JpdGVKU09OKHJlc3VsdCk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIFZhbHVlOjphc0Jvb2xlYW4oYm9vbCYgb3V0cHV0
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTG9nZ2VyLmggYi9Tb3VyY2UvV1RG
L3d0Zi9Mb2dnZXIuaAppbmRleCA2YjAxYjU4Li40OGI4ZDgyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9Mb2dnZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaApAQCAtNDYsNyAr
NDYsMTIgQEAgc3RydWN0IExvZ0FyZ3VtZW50IHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVID0g
VD4gc3RhdGljIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfc2FtZTxVLCBkb3VibGU+
Ojp2YWx1ZSwgU3RyaW5nPjo6dHlwZSB0b1N0cmluZyhkb3VibGUgYXJndW1lbnQpIHsgcmV0dXJu
IFN0cmluZzo6bnVtYmVyKGFyZ3VtZW50KTsgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFUgPSBU
PiBzdGF0aWMgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19zYW1lPHR5cGVuYW1lIHN0
ZDo6cmVtb3ZlX3JlZmVyZW5jZTxVPjo6dHlwZSwgQXRvbWljU3RyaW5nPjo6dmFsdWUsIFN0cmlu
Zz46OnR5cGUgdG9TdHJpbmcoQXRvbWljU3RyaW5nIGFyZ3VtZW50KSB7IHJldHVybiBhcmd1bWVu
dC5zdHJpbmcoKTsgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFUgPSBUPiBzdGF0aWMgdHlwZW5h
bWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19zYW1lPHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVy
ZW5jZTxVPjo6dHlwZSwgU3RyaW5nPjo6dmFsdWUsIFN0cmluZz46OnR5cGUgdG9TdHJpbmcoU3Ry
aW5nIGFyZ3VtZW50KSB7IHJldHVybiBhcmd1bWVudDsgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFUgPSBUPiBzdGF0aWMgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19zYW1lPHR5cGVu
YW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxVPjo6dHlwZSwgU3RyaW5nQnVpbGRlcio+Ojp2YWx1
ZSwgU3RyaW5nPjo6dHlwZSB0b1N0cmluZyhTdHJpbmdCdWlsZGVyKiBhcmd1bWVudCkgeyByZXR1
cm4gYXJndW1lbnQtPnRvU3RyaW5nKCk7IH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVID0gVD4g
c3RhdGljIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfc2FtZTx0eXBlbmFtZSBzdGQ6
OnJlbW92ZV9yZWZlcmVuY2U8VT46OnR5cGUsIFN0cmluZ0J1aWxkZXIqPjo6dmFsdWUsIFN0cmlu
Zz46OnR5cGUgdG9TdHJpbmcoU3RyaW5nQnVpbGRlciogYXJndW1lbnQpCisgICAgeworICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSBhcmd1bWVudC0+dG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOworICAgIH0KICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBVID0gVD4gc3RhdGljIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfc2FtZTxV
LCBjb25zdCBjaGFyKj46OnZhbHVlLCBTdHJpbmc+Ojp0eXBlIHRvU3RyaW5nKGNvbnN0IGNoYXIq
IGFyZ3VtZW50KSB7IHJldHVybiBTdHJpbmcoYXJndW1lbnQpOyB9CiAgICAgdGVtcGxhdGU8c2l6
ZV90IGxlbmd0aD4gc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBjaGFyICgmYXJndW1lbnQp
W2xlbmd0aF0pIHsgcmV0dXJuIFN0cmluZyhhcmd1bWVudCk7IH0KIH07CkBAIC0yNzQsNyArMjc5
LDkgQEAgc3RydWN0IExvZ0FyZ3VtZW50PExvZ2dlcjo6TG9nU2l0ZUlkZW50aWZpZXI+IHsKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoJygnKTsKICAgICAgICAgYXBwZW5kVW5zaWduZWQ2NEFzSGV4
KHZhbHVlLm9iamVjdFB0ciwgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiKSAiKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvTWVkaWFUaW1lLmNwcCBiL1NvdXJjZS9XVEYvd3RmL01lZGlhVGltZS5jcHAKaW5k
ZXggMDMwNTBiNS4uMWY3N2I0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWVkaWFUaW1l
LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZWRpYVRpbWUuY3BwCkBAIC01NzQsNyArNTc0LDkg
QEAgU3RyaW5nIE1lZGlhVGltZTo6dG9TdHJpbmcoKSBjb25zdAogICAgIH0KICAgICBidWlsZGVy
LmFwcGVuZE51bWJlcih0b0RvdWJsZSgpKTsKICAgICBidWlsZGVyLmFwcGVuZCgnfScpOwotICAg
IHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiBTdHJpbmcgTWVkaWFUaW1lOjp0b0pTT05TdHJpbmcoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvVVVJRC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9VVUlELmNwcAppbmRleCBmYjVm
ZTViLi5iNTk4ZjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9VVUlELmNwcAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9VVUlELmNwcApAQCAtNTYsNyArNTYsOSBAQCBTdHJpbmcgY3JlYXRlQ2Fu
b25pY2FsVVVJRFN0cmluZygpCiAgICAgYnVpbGRlci5hcHBlbmQoJy0nKTsKICAgICBhcHBlbmRV
bnNpZ25lZEFzSGV4Rml4ZWRTaXplKHJhbmRvbURhdGFbMl0gJiAweDAwMDBmZmZmLCBidWlsZGVy
LCA0LCBMb3dlcmNhc2UpOwogICAgIGFwcGVuZFVuc2lnbmVkQXNIZXhGaXhlZFNpemUocmFuZG9t
RGF0YVszXSwgYnVpbGRlciwgOCwgTG93ZXJjYXNlKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RG
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuY3BwIGIvU291
cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmNwcAppbmRleCA4NWIwYzIxLi4yNTg0YzU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuY3BwCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlci5jcHAKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtNjIsMjYgKzYyLDQ0IEBAIHZvaWQg
U3RyaW5nQnVpbGRlcjo6cmVpZnlTdHJpbmcoKSBjb25zdAogICAgICAgICBtX3N0cmluZyA9IFN0
cmluZ0ltcGw6OmNyZWF0ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKCptX2J1ZmZlciwgMCwgbV9sZW5n
dGgpOwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OnJlc2l6ZSh1bnNpZ25lZCBuZXdTaXplKQor
VW5leHBlY3RlZDxTdHJpbmdCdWlsZGVyOjpGYWlsdXJlPiBTdHJpbmdCdWlsZGVyOjp3b3VsZE92
ZXJmbG93KCkKK3sKKyAgICBtX2ZhaWxlZCA9IHRydWU7CisgICAgcmV0dXJuIG1ha2VVbmV4cGVj
dGVkKEZhaWx1cmU6OldvdWxkT3ZlcmZsb3cpOworfQorCitVbmV4cGVjdGVkPFN0cmluZ0J1aWxk
ZXI6OkZhaWx1cmU+IFN0cmluZ0J1aWxkZXI6Om91dE9mTWVtb3J5KCkKK3sKKyAgICBjbGVhcigp
OworICAgIG1fZmFpbGVkID0gdHJ1ZTsKKyAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmFpbHVy
ZTo6T3V0T2ZNZW1vcnkpOworfQorCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1
aWxkZXI6OnJlc2l6ZSh1bnNpZ25lZCBuZXdTaXplKQogewogICAgIC8vIENoZWNrIG5ld1NpemUg
PCBtX2xlbmd0aCwgaGVuY2UgbV9sZW5ndGggPiAwLgogICAgIEFTU0VSVChuZXdTaXplIDw9IG1f
bGVuZ3RoKTsKICAgICBpZiAobmV3U2l6ZSA9PSBtX2xlbmd0aCkKLSAgICAgICAgcmV0dXJuOwor
ICAgICAgICByZXR1cm4geyB9OwogICAgIEFTU0VSVChtX2xlbmd0aCk7CiAKICAgICAvLyBJZiB0
aGVyZSBpcyBhIGJ1ZmZlciwgd2Ugb25seSBuZWVkIHRvIGR1cGxpY2F0ZSBpdCBpZiBpdCBoYXMg
bW9yZSB0aGFuIG9uZSByZWYuCiAgICAgaWYgKG1fYnVmZmVyKSB7CiAgICAgICAgIG1fc3RyaW5n
ID0gU3RyaW5nKCk7IC8vIENsZWFyIHRoZSBzdHJpbmcgdG8gcmVtb3ZlIHRoZSByZWZlcmVuY2Ug
dG8gbV9idWZmZXIgaWYgYW55IGJlZm9yZSBjaGVja2luZyB0aGUgcmVmZXJlbmNlIGNvdW50IG9m
IG1fYnVmZmVyLgogICAgICAgICBpZiAoIW1fYnVmZmVyLT5oYXNPbmVSZWYoKSkgewotICAgICAg
ICAgICAgaWYgKG1fYnVmZmVyLT5pczhCaXQoKSkKLSAgICAgICAgICAgICAgICBhbGxvY2F0ZUJ1
ZmZlcihtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKSwgbV9idWZmZXItPmxlbmd0aCgpKTsKLSAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBhbGxvY2F0ZUJ1ZmZlcihtX2J1ZmZlci0+Y2hh
cmFjdGVyczE2KCksIG1fYnVmZmVyLT5sZW5ndGgoKSk7CisgICAgICAgICAgICBpZiAobV9idWZm
ZXItPmlzOEJpdCgpKSB7CisgICAgICAgICAgICAgICAgYXV0byBhbGxvY2F0ZWQgPSBhbGxvY2F0
ZUJ1ZmZlcihtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKSwgbV9idWZmZXItPmxlbmd0aCgpKTsKKyAg
ICAgICAgICAgICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGFsbG9jYXRlZDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYXV0byBh
bGxvY2F0ZWQgPSBhbGxvY2F0ZUJ1ZmZlcihtX2J1ZmZlci0+Y2hhcmFjdGVyczE2KCksIG1fYnVm
ZmVyLT5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgaWYgKCFhbGxvY2F0ZWQpCisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBhbGxvY2F0ZWQ7CisgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICAgICAgbV9sZW5ndGggPSBuZXdTaXplOwogICAgICAgICBBU1NFUlQobV9idWZmZXItPmxl
bmd0aCgpID49IG1fbGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4geyB9
OwogICAgIH0KIAogICAgIC8vIFNpbmNlIG1fbGVuZ3RoICYmICFtX2J1ZmZlciwgdGhlIHN0cmlu
ZyBtdXN0IGJlIHZhbGlkIGluIG1fc3RyaW5nLCBhbmQgbV9zdHJpbmcubGVuZ3RoKCkgPiAwLgpA
QCAtODksNDcgKzEwNyw2MCBAQCB2b2lkIFN0cmluZ0J1aWxkZXI6OnJlc2l6ZSh1bnNpZ25lZCBu
ZXdTaXplKQogICAgIEFTU0VSVChtX2xlbmd0aCA9PSBtX3N0cmluZy5sZW5ndGgoKSk7CiAgICAg
QVNTRVJUKG5ld1NpemUgPCBtX3N0cmluZy5sZW5ndGgoKSk7CiAgICAgbV9sZW5ndGggPSBuZXdT
aXplOwotICAgIG1fc3RyaW5nID0gU3RyaW5nSW1wbDo6Y3JlYXRlU3Vic3RyaW5nU2hhcmluZ0lt
cGwoKm1fc3RyaW5nLmltcGwoKSwgMCwgbmV3U2l6ZSk7CisgICAgaWYgKGF1dG8gY3JlYXRlZCA9
IFN0cmluZ0ltcGw6OnRyeUNyZWF0ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKCptX3N0cmluZy5pbXBs
KCksIDAsIG5ld1NpemUpKSB7CisgICAgICAgIG1fc3RyaW5nID0gKmNyZWF0ZWQ7CisgICAgICAg
IHJldHVybiB7IH07CisgICAgfSBlbHNlCisgICAgICAgIHJldHVybiBvdXRPZk1lbW9yeSgpOwog
fQogCiAvLyBBbGxvY2F0ZSBhIG5ldyA4IGJpdCBidWZmZXIsIGNvcHlpbmcgaW4gY3VycmVudENo
YXJhY3RlcnMgKHRoZXNlIG1heSBjb21lIGZyb20gZWl0aGVyIG1fc3RyaW5nCiAvLyBvciBtX2J1
ZmZlciwgbmVpdGhlciB3aWxsIGJlIHJlYXNzaWduZWQgdW50aWwgdGhlIGNvcHkgaGFzIGNvbXBs
ZXRlZCkuCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFsbG9jYXRlQnVmZmVyKGNvbnN0IExDaGFyKiBj
dXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCitTdHJpbmdCdWlsZGVy
OjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFsbG9jYXRlQnVmZmVyKGNvbnN0IExDaGFyKiBj
dXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCiB7CiAgICAgQVNTRVJU
KG1faXM4Qml0KTsKICAgICAvLyBDb3B5IHRoZSBleGlzdGluZyBkYXRhIGludG8gYSBuZXcgYnVm
ZmVyLCBzZXQgcmVzdWx0IHRvIHBvaW50IHRvIHRoZSBlbmQgb2YgdGhlIGV4aXN0aW5nIGRhdGEu
Ci0gICAgYXV0byBidWZmZXIgPSBTdHJpbmdJbXBsOjpjcmVhdGVVbmluaXRpYWxpemVkKHJlcXVp
cmVkTGVuZ3RoLCBtX2J1ZmZlckNoYXJhY3RlcnM4KTsKKyAgICBhdXRvIGJ1ZmZlciA9IFN0cmlu
Z0ltcGw6OnRyeUNyZWF0ZVVuaW5pdGlhbGl6ZWQocmVxdWlyZWRMZW5ndGgsIG1fYnVmZmVyQ2hh
cmFjdGVyczgpOworICAgIGlmICghYnVmZmVyKQorICAgICAgICByZXR1cm4gb3V0T2ZNZW1vcnko
KTsKICAgICBtZW1jcHkobV9idWZmZXJDaGFyYWN0ZXJzOCwgY3VycmVudENoYXJhY3RlcnMsIHN0
YXRpY19jYXN0PHNpemVfdD4obV9sZW5ndGgpICogc2l6ZW9mKExDaGFyKSk7IC8vIFRoaXMgY2Fu
J3Qgb3ZlcmZsb3cuCiAgICAgCiAgICAgLy8gVXBkYXRlIHRoZSBidWlsZGVyIHN0YXRlLgogICAg
IG1fYnVmZmVyID0gV1RGTW92ZShidWZmZXIpOwogICAgIG1fc3RyaW5nID0gU3RyaW5nKCk7CiAg
ICAgQVNTRVJUKG1fYnVmZmVyLT5sZW5ndGgoKSA9PSByZXF1aXJlZExlbmd0aCk7CisgICAgcmV0
dXJuIHsgfTsKIH0KIAogLy8gQWxsb2NhdGUgYSBuZXcgMTYgYml0IGJ1ZmZlciwgY29weWluZyBp
biBjdXJyZW50Q2hhcmFjdGVycyAodGhlc2UgbWF5IGNvbWUgZnJvbSBlaXRoZXIgbV9zdHJpbmcK
IC8vIG9yIG1fYnVmZmVyLCAgbmVpdGhlciB3aWxsIGJlIHJlYXNzaWduZWQgdW50aWwgdGhlIGNv
cHkgaGFzIGNvbXBsZXRlZCkuCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFsbG9jYXRlQnVmZmVyKGNv
bnN0IFVDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCitT
dHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFsbG9jYXRlQnVmZmVyKGNv
bnN0IFVDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCiB7
CiAgICAgQVNTRVJUKCFtX2lzOEJpdCk7CiAgICAgLy8gQ29weSB0aGUgZXhpc3RpbmcgZGF0YSBp
bnRvIGEgbmV3IGJ1ZmZlciwgc2V0IHJlc3VsdCB0byBwb2ludCB0byB0aGUgZW5kIG9mIHRoZSBl
eGlzdGluZyBkYXRhLgotICAgIGF1dG8gYnVmZmVyID0gU3RyaW5nSW1wbDo6Y3JlYXRlVW5pbml0
aWFsaXplZChyZXF1aXJlZExlbmd0aCwgbV9idWZmZXJDaGFyYWN0ZXJzMTYpOworICAgIGF1dG8g
YnVmZmVyID0gU3RyaW5nSW1wbDo6dHJ5Q3JlYXRlVW5pbml0aWFsaXplZChyZXF1aXJlZExlbmd0
aCwgbV9idWZmZXJDaGFyYWN0ZXJzMTYpOworICAgIGlmICghYnVmZmVyKQorICAgICAgICByZXR1
cm4gb3V0T2ZNZW1vcnkoKTsKICAgICBtZW1jcHkobV9idWZmZXJDaGFyYWN0ZXJzMTYsIGN1cnJl
bnRDaGFyYWN0ZXJzLCBzdGF0aWNfY2FzdDxzaXplX3Q+KG1fbGVuZ3RoKSAqIHNpemVvZihVQ2hh
cikpOyAvLyBUaGlzIGNhbid0IG92ZXJmbG93LgogICAgIAogICAgIC8vIFVwZGF0ZSB0aGUgYnVp
bGRlciBzdGF0ZS4KICAgICBtX2J1ZmZlciA9IFdURk1vdmUoYnVmZmVyKTsKICAgICBtX3N0cmlu
ZyA9IFN0cmluZygpOwogICAgIEFTU0VSVChtX2J1ZmZlci0+bGVuZ3RoKCkgPT0gcmVxdWlyZWRM
ZW5ndGgpOworICAgIHJldHVybiB7IH07CiB9CiAKIC8vIEFsbG9jYXRlIGEgbmV3IDE2IGJpdCBi
dWZmZXIsIGNvcHlpbmcgaW4gY3VycmVudENoYXJhY3RlcnMgKHdoaWNoIGlzIDggYml0IGFuZCBt
YXkgY29tZQogLy8gZnJvbSBlaXRoZXIgbV9zdHJpbmcgb3IgbV9idWZmZXIsIG5laXRoZXIgd2ls
bCBiZSByZWFzc2lnbmVkIHVudGlsIHRoZSBjb3B5IGhhcyBjb21wbGV0ZWQpLgotdm9pZCBTdHJp
bmdCdWlsZGVyOjphbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChjb25zdCBMQ2hhciogY3VycmVudENo
YXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQorU3RyaW5nQnVpbGRlcjo6RmFsbGli
bGU8PiBTdHJpbmdCdWlsZGVyOjphbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChjb25zdCBMQ2hhciog
Y3VycmVudENoYXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQogewogICAgIEFTU0VS
VChtX2lzOEJpdCk7CiAgICAgQVNTRVJUKHJlcXVpcmVkTGVuZ3RoID49IG1fbGVuZ3RoKTsKICAg
ICAvLyBDb3B5IHRoZSBleGlzdGluZyBkYXRhIGludG8gYSBuZXcgYnVmZmVyLCBzZXQgcmVzdWx0
IHRvIHBvaW50IHRvIHRoZSBlbmQgb2YgdGhlIGV4aXN0aW5nIGRhdGEuCi0gICAgYXV0byBidWZm
ZXIgPSBTdHJpbmdJbXBsOjpjcmVhdGVVbmluaXRpYWxpemVkKHJlcXVpcmVkTGVuZ3RoLCBtX2J1
ZmZlckNoYXJhY3RlcnMxNik7CisgICAgYXV0byBidWZmZXIgPSBTdHJpbmdJbXBsOjp0cnlDcmVh
dGVVbmluaXRpYWxpemVkKHJlcXVpcmVkTGVuZ3RoLCBtX2J1ZmZlckNoYXJhY3RlcnMxNik7Cisg
ICAgaWYgKCFidWZmZXIpCisgICAgICAgIHJldHVybiBvdXRPZk1lbW9yeSgpOworCiAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fbGVuZ3RoOyArK2kpCiAgICAgICAgIG1fYnVmZmVyQ2hh
cmFjdGVyczE2W2ldID0gY3VycmVudENoYXJhY3RlcnNbaV07CiAgICAgCkBAIC0xMzksMTAgKzE3
MCwxMSBAQCB2b2lkIFN0cmluZ0J1aWxkZXI6OmFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KGNvbnN0
IExDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaQogICAgIG1fYnVmZmVyID0gV1RGTW92ZShi
dWZmZXIpOwogICAgIG1fc3RyaW5nID0gU3RyaW5nKCk7CiAgICAgQVNTRVJUKG1fYnVmZmVyLT5s
ZW5ndGgoKSA9PSByZXF1aXJlZExlbmd0aCk7CisgICAgcmV0dXJuIHsgfTsKIH0KIAogdGVtcGxh
dGUgPD4KLXZvaWQgU3RyaW5nQnVpbGRlcjo6cmVhbGxvY2F0ZUJ1ZmZlcjxMQ2hhcj4odW5zaWdu
ZWQgcmVxdWlyZWRMZW5ndGgpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxk
ZXI6OnJlYWxsb2NhdGVCdWZmZXI8TENoYXI+KHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQogewog
ICAgIC8vIElmIHRoZSBidWZmZXIgaGFzIG9ubHkgb25lIHJlZiAoYnkgdGhpcyBTdHJpbmdCdWls
ZGVyKSwgcmVhbGxvY2F0ZSBpdCwKICAgICAvLyBvdGhlcndpc2UgZmFsbCBiYWNrIHRvICJhbGxv
Y2F0ZSBhbmQgY29weSIgbWV0aG9kLgpAQCAtMTUxLDY1ICsxODMsODkgQEAgdm9pZCBTdHJpbmdC
dWlsZGVyOjpyZWFsbG9jYXRlQnVmZmVyPExDaGFyPih1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkK
ICAgICBBU1NFUlQobV9pczhCaXQpOwogICAgIEFTU0VSVChtX2J1ZmZlci0+aXM4Qml0KCkpOwog
ICAgIAotICAgIGlmIChtX2J1ZmZlci0+aGFzT25lUmVmKCkpCi0gICAgICAgIG1fYnVmZmVyID0g
U3RyaW5nSW1wbDo6cmVhbGxvY2F0ZShtX2J1ZmZlci5yZWxlYXNlTm9uTnVsbCgpLCByZXF1aXJl
ZExlbmd0aCwgbV9idWZmZXJDaGFyYWN0ZXJzOCk7Ci0gICAgZWxzZQotICAgICAgICBhbGxvY2F0
ZUJ1ZmZlcihtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKSwgcmVxdWlyZWRMZW5ndGgpOworICAgIGlm
IChtX2J1ZmZlci0+aGFzT25lUmVmKCkpIHsKKyAgICAgICAgYXV0byByZWFsbG9jYXRlZCA9IFN0
cmluZ0ltcGw6OnRyeVJlYWxsb2NhdGUobV9idWZmZXIucmVsZWFzZU5vbk51bGwoKSwgcmVxdWly
ZWRMZW5ndGgsIG1fYnVmZmVyQ2hhcmFjdGVyczgpOworICAgICAgICBpZiAoIXJlYWxsb2NhdGVk
KQorICAgICAgICAgICAgcmV0dXJuIG91dE9mTWVtb3J5KCk7CisgICAgICAgIG1fYnVmZmVyID0g
cmVhbGxvY2F0ZWQuZ2V0KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byBhbGxvY2F0ZWQg
PSBhbGxvY2F0ZUJ1ZmZlcihtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKSwgcmVxdWlyZWRMZW5ndGgp
OworICAgICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAgIHJldHVybiBhbGxvY2F0ZWQ7
CisgICAgfQogICAgIEFTU0VSVChtX2J1ZmZlci0+bGVuZ3RoKCkgPT0gcmVxdWlyZWRMZW5ndGgp
OworICAgIHJldHVybiB7IH07CiB9CiAKIHRlbXBsYXRlIDw+Ci12b2lkIFN0cmluZ0J1aWxkZXI6
OnJlYWxsb2NhdGVCdWZmZXI8VUNoYXI+KHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQorU3RyaW5n
QnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjpyZWFsbG9jYXRlQnVmZmVyPFVDaGFy
Pih1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKIHsKICAgICAvLyBJZiB0aGUgYnVmZmVyIGhhcyBv
bmx5IG9uZSByZWYgKGJ5IHRoaXMgU3RyaW5nQnVpbGRlciksIHJlYWxsb2NhdGUgaXQsCiAgICAg
Ly8gb3RoZXJ3aXNlIGZhbGwgYmFjayB0byAiYWxsb2NhdGUgYW5kIGNvcHkiIG1ldGhvZC4KICAg
ICBtX3N0cmluZyA9IFN0cmluZygpOwogICAgIAotICAgIGlmIChtX2J1ZmZlci0+aXM4Qml0KCkp
Ci0gICAgICAgIGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KG1fYnVmZmVyLT5jaGFyYWN0ZXJzOCgp
LCByZXF1aXJlZExlbmd0aCk7CisgICAgaWYgKG1fYnVmZmVyLT5pczhCaXQoKSkgeworICAgICAg
ICBhdXRvIGFsbG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KG1fYnVmZmVyLT5jaGFy
YWN0ZXJzOCgpLCByZXF1aXJlZExlbmd0aCk7CisgICAgICAgIGlmICghYWxsb2NhdGVkKQorICAg
ICAgICAgICAgcmV0dXJuIGFsbG9jYXRlZDsKKyAgICB9CiAgICAgZWxzZSBpZiAobV9idWZmZXIt
Pmhhc09uZVJlZigpKQogICAgICAgICBtX2J1ZmZlciA9IFN0cmluZ0ltcGw6OnJlYWxsb2NhdGUo
bV9idWZmZXIucmVsZWFzZU5vbk51bGwoKSwgcmVxdWlyZWRMZW5ndGgsIG1fYnVmZmVyQ2hhcmFj
dGVyczE2KTsKICAgICBlbHNlCiAgICAgICAgIGFsbG9jYXRlQnVmZmVyKG1fYnVmZmVyLT5jaGFy
YWN0ZXJzMTYoKSwgcmVxdWlyZWRMZW5ndGgpOwogICAgIEFTU0VSVChtX2J1ZmZlci0+bGVuZ3Ro
KCkgPT0gcmVxdWlyZWRMZW5ndGgpOworICAgIHJldHVybiB7IH07CiB9CiAKLXZvaWQgU3RyaW5n
QnVpbGRlcjo6cmVzZXJ2ZUNhcGFjaXR5KHVuc2lnbmVkIG5ld0NhcGFjaXR5KQorU3RyaW5nQnVp
bGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjpyZXNlcnZlQ2FwYWNpdHkodW5zaWduZWQg
bmV3Q2FwYWNpdHkpCiB7CiAgICAgaWYgKG1fYnVmZmVyKSB7CiAgICAgICAgIC8vIElmIHRoZXJl
IGlzIGFscmVhZHkgYSBidWZmZXIsIHRoZW4gZ3JvdyBpZiBuZWNlc3NhcnkuCiAgICAgICAgIGlm
IChuZXdDYXBhY2l0eSA+IG1fYnVmZmVyLT5sZW5ndGgoKSkgewotICAgICAgICAgICAgaWYgKG1f
YnVmZmVyLT5pczhCaXQoKSkKLSAgICAgICAgICAgICAgICByZWFsbG9jYXRlQnVmZmVyPExDaGFy
PihuZXdDYXBhY2l0eSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmVhbGxv
Y2F0ZUJ1ZmZlcjxVQ2hhcj4obmV3Q2FwYWNpdHkpOworICAgICAgICAgICAgaWYgKG1fYnVmZmVy
LT5pczhCaXQoKSkgeworICAgICAgICAgICAgICAgIGF1dG8gcmVhbGxvY2F0ZWQgPSByZWFsbG9j
YXRlQnVmZmVyPExDaGFyPihuZXdDYXBhY2l0eSk7CisgICAgICAgICAgICAgICAgaWYgKCFyZWFs
bG9jYXRlZCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlYWxsb2NhdGVkOworICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBhdXRvIHJlYWxsb2NhdGVkID0gcmVhbGxv
Y2F0ZUJ1ZmZlcjxVQ2hhcj4obmV3Q2FwYWNpdHkpOworICAgICAgICAgICAgICAgIGlmICghcmVh
bGxvY2F0ZWQpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWFsbG9jYXRlZDsKKyAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIEdyb3cgdGhlIHN0
cmluZywgaWYgbmVjZXNzYXJ5LgogICAgICAgICBpZiAobmV3Q2FwYWNpdHkgPiBtX2xlbmd0aCkg
ewogICAgICAgICAgICAgaWYgKCFtX2xlbmd0aCkgewogICAgICAgICAgICAgICAgIExDaGFyKiBu
dWxsUGxhY2Vob2xkZXIgPSAwOwotICAgICAgICAgICAgICAgIGFsbG9jYXRlQnVmZmVyKG51bGxQ
bGFjZWhvbGRlciwgbmV3Q2FwYWNpdHkpOwotICAgICAgICAgICAgfSBlbHNlIGlmIChtX3N0cmlu
Zy5pczhCaXQoKSkKLSAgICAgICAgICAgICAgICBhbGxvY2F0ZUJ1ZmZlcihtX3N0cmluZy5jaGFy
YWN0ZXJzOCgpLCBuZXdDYXBhY2l0eSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgYWxsb2NhdGVCdWZmZXIobV9zdHJpbmcuY2hhcmFjdGVyczE2KCksIG5ld0NhcGFjaXR5KTsK
KyAgICAgICAgICAgICAgICBhdXRvIGFsbG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVyKG51bGxQbGFj
ZWhvbGRlciwgbmV3Q2FwYWNpdHkpOworICAgICAgICAgICAgICAgIGlmICghYWxsb2NhdGVkKQor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWxsb2NhdGVkOworICAgICAgICAgICAgfSBlbHNl
IGlmIChtX3N0cmluZy5pczhCaXQoKSkgeworICAgICAgICAgICAgICAgIGF1dG8gYWxsb2NhdGVk
ID0gYWxsb2NhdGVCdWZmZXIobV9zdHJpbmcuY2hhcmFjdGVyczgoKSwgbmV3Q2FwYWNpdHkpOwor
ICAgICAgICAgICAgICAgIGlmICghYWxsb2NhdGVkKQorICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYWxsb2NhdGVkOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBhdXRv
IGFsbG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVyKG1fc3RyaW5nLmNoYXJhY3RlcnMxNigpLCBuZXdD
YXBhY2l0eSk7CisgICAgICAgICAgICAgICAgaWYgKCFhbGxvY2F0ZWQpCisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBhbGxvY2F0ZWQ7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9
CiAgICAgQVNTRVJUKCFuZXdDYXBhY2l0eSB8fCBtX2J1ZmZlci0+bGVuZ3RoKCkgPj0gbmV3Q2Fw
YWNpdHkpOworICAgIHJldHVybiB7IH07CiB9CiAKIC8vIE1ha2UgJ2xlbmd0aCcgYWRkaXRpb25h
bCBjYXBhY2l0eSBiZSBhdmFpbGFibGUgaW4gbV9idWZmZXIsIHVwZGF0ZSBtX3N0cmluZyAmIG1f
bGVuZ3RoLAogLy8gcmV0dXJuIGEgcG9pbnRlciB0byB0aGUgbmV3bHkgYWxsb2NhdGVkIHN0b3Jh
Z2UuCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci1BTFdBWVNfSU5MSU5FIENoYXJUeXBl
KiBTdHJpbmdCdWlsZGVyOjphcHBlbmRVbmluaXRpYWxpemVkKHVuc2lnbmVkIGxlbmd0aCkKK0FM
V0FZU19JTkxJTkUgU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8Q2hhclR5cGUqPiBTdHJpbmdCdWls
ZGVyOjphcHBlbmRVbmluaXRpYWxpemVkKHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBBU1NFUlQo
bGVuZ3RoKTsKIAogICAgIC8vIENhbGN1bGF0ZSB0aGUgbmV3IHNpemUgb2YgdGhlIGJ1aWxkZXIg
YWZ0ZXIgYXBwZW5kaW5nLgogICAgIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoID0gbGVuZ3RoICsg
bV9sZW5ndGg7CiAgICAgaWYgKHJlcXVpcmVkTGVuZ3RoIDwgbGVuZ3RoKQotICAgICAgICBDUkFT
SCgpOworICAgICAgICByZXR1cm4gd291bGRPdmVyZmxvdygpOwogCiAgICAgaWYgKChtX2J1ZmZl
cikgJiYgKHJlcXVpcmVkTGVuZ3RoIDw9IG1fYnVmZmVyLT5sZW5ndGgoKSkpIHsKICAgICAgICAg
Ly8gSWYgdGhlIGJ1ZmZlciBpcyB2YWxpZCBpdCBtdXN0IGJlIGF0IGxlYXN0IGFzIGxvbmcgYXMg
dGhlIGN1cnJlbnQgYnVpbGRlciBjb250ZW50cyEKQEAgLTIyNiw3ICsyODIsNyBAQCBBTFdBWVNf
SU5MSU5FIENoYXJUeXBlKiBTdHJpbmdCdWlsZGVyOjphcHBlbmRVbmluaXRpYWxpemVkKHVuc2ln
bmVkIGxlbmd0aCkKIC8vIE1ha2UgJ2xlbmd0aCcgYWRkaXRpb25hbCBjYXBhY2l0eSBiZSBhdmFp
bGFibGUgaW4gbV9idWZmZXIsIHVwZGF0ZSBtX3N0cmluZyAmIG1fbGVuZ3RoLAogLy8gcmV0dXJu
IGEgcG9pbnRlciB0byB0aGUgbmV3bHkgYWxsb2NhdGVkIHN0b3JhZ2UuCiB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgQ2hhclR5cGU+Ci1DaGFyVHlwZSogU3RyaW5nQnVpbGRlcjo6YXBwZW5kVW5pbml0aWFs
aXplZFNsb3codW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJs
ZTxDaGFyVHlwZSo+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZFVuaW5pdGlhbGl6ZWRTbG93KHVuc2ln
bmVkIHJlcXVpcmVkTGVuZ3RoKQogewogICAgIEFTU0VSVChyZXF1aXJlZExlbmd0aCk7CiAKQEAg
LTIzNCwxMCArMjkwLDE0IEBAIENoYXJUeXBlKiBTdHJpbmdCdWlsZGVyOjphcHBlbmRVbmluaXRp
YWxpemVkU2xvdyh1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKICAgICAgICAgLy8gSWYgdGhlIGJ1
ZmZlciBpcyB2YWxpZCBpdCBtdXN0IGJlIGF0IGxlYXN0IGFzIGxvbmcgYXMgdGhlIGN1cnJlbnQg
YnVpbGRlciBjb250ZW50cyEKICAgICAgICAgQVNTRVJUKG1fYnVmZmVyLT5sZW5ndGgoKSA+PSBt
X2xlbmd0aCk7CiAgICAgICAgIAotICAgICAgICByZWFsbG9jYXRlQnVmZmVyPENoYXJUeXBlPihl
eHBhbmRlZENhcGFjaXR5KGNhcGFjaXR5KCksIHJlcXVpcmVkTGVuZ3RoKSk7CisgICAgICAgIGF1
dG8gcmVhbGxvY2F0ZWQgPSByZWFsbG9jYXRlQnVmZmVyPENoYXJUeXBlPihleHBhbmRlZENhcGFj
aXR5KGNhcGFjaXR5KCksIHJlcXVpcmVkTGVuZ3RoKSk7CisgICAgICAgIGlmICghcmVhbGxvY2F0
ZWQpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQocmVhbGxvY2F0ZWQuZXJyb3Io
KSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgQVNTRVJUKG1fc3RyaW5nLmxlbmd0aCgpID09IG1f
bGVuZ3RoKTsKLSAgICAgICAgYWxsb2NhdGVCdWZmZXIobV9sZW5ndGggPyBtX3N0cmluZy5jaGFy
YWN0ZXJzPENoYXJUeXBlPigpIDogMCwgZXhwYW5kZWRDYXBhY2l0eShjYXBhY2l0eSgpLCByZXF1
aXJlZExlbmd0aCkpOworICAgICAgICBhdXRvIGFsbG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVyKG1f
bGVuZ3RoID8gbV9zdHJpbmcuY2hhcmFjdGVyczxDaGFyVHlwZT4oKSA6IDAsIGV4cGFuZGVkQ2Fw
YWNpdHkoY2FwYWNpdHkoKSwgcmVxdWlyZWRMZW5ndGgpKTsKKyAgICAgICAgaWYgKCFhbGxvY2F0
ZWQpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoYWxsb2NhdGVkLmVycm9yKCkp
OwogICAgIH0KICAgICAKICAgICBDaGFyVHlwZSogcmVzdWx0ID0gZ2V0QnVmZmVyQ2hhcmFjdGVy
czxDaGFyVHlwZT4oKSArIG1fbGVuZ3RoOwpAQCAtMjQ2LDEwICszMDYsMTAgQEAgQ2hhclR5cGUq
IFN0cmluZ0J1aWxkZXI6OmFwcGVuZFVuaW5pdGlhbGl6ZWRTbG93KHVuc2lnbmVkIHJlcXVpcmVk
TGVuZ3RoKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQgU3RyaW5nQnVpbGRlcjo6YXBw
ZW5kKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCitTdHJpbmdCdWls
ZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZChjb25zdCBVQ2hhciogY2hhcmFj
dGVycywgdW5zaWduZWQgbGVuZ3RoKQogewogICAgIGlmICghbGVuZ3RoKQotICAgICAgICByZXR1
cm47CisgICAgICAgIHJldHVybiB7IH07CiAKICAgICBBU1NFUlQoY2hhcmFjdGVycyk7CiAKQEAg
LTI1Nyw0MCArMzE3LDUxIEBAIHZvaWQgU3RyaW5nQnVpbGRlcjo6YXBwZW5kKGNvbnN0IFVDaGFy
KiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgICAgIGlmIChsZW5ndGggPT0gMSAm
JiAhKCpjaGFyYWN0ZXJzICYgfjB4ZmYpKSB7CiAgICAgICAgICAgICAvLyBBcHBlbmQgYXMgOCBi
aXQgY2hhcmFjdGVyCiAgICAgICAgICAgICBMQ2hhciBsQ2hhciA9IHN0YXRpY19jYXN0PExDaGFy
PigqY2hhcmFjdGVycyk7Ci0gICAgICAgICAgICBhcHBlbmQoJmxDaGFyLCAxKTsKLSAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIHJldHVybiBhcHBlbmQoJmxDaGFyLCAxKTsKICAgICAg
ICAgfQogCiAgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgbmV3IHNpemUgb2YgdGhlIGJ1aWxkZXIg
YWZ0ZXIgYXBwZW5kaW5nLgogICAgICAgICB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCA9IGxlbmd0
aCArIG1fbGVuZ3RoOwogICAgICAgICBpZiAocmVxdWlyZWRMZW5ndGggPCBsZW5ndGgpCi0gICAg
ICAgICAgICBDUkFTSCgpOworICAgICAgICAgICAgcmV0dXJuIHdvdWxkT3ZlcmZsb3coKTsKICAg
ICAgICAgCiAgICAgICAgIGlmIChtX2J1ZmZlcikgewogICAgICAgICAgICAgLy8gSWYgdGhlIGJ1
ZmZlciBpcyB2YWxpZCBpdCBtdXN0IGJlIGF0IGxlYXN0IGFzIGxvbmcgYXMgdGhlIGN1cnJlbnQg
YnVpbGRlciBjb250ZW50cyEKICAgICAgICAgICAgIEFTU0VSVChtX2J1ZmZlci0+bGVuZ3RoKCkg
Pj0gbV9sZW5ndGgpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBhbGxvY2F0ZUJ1ZmZlclVw
Q29udmVydChtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKSwgZXhwYW5kZWRDYXBhY2l0eShjYXBhY2l0
eSgpLCByZXF1aXJlZExlbmd0aCkpOworICAgICAgICAgICAgYXV0byBhbGxvY2F0ZWQgPSBhbGxv
Y2F0ZUJ1ZmZlclVwQ29udmVydChtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKSwgZXhwYW5kZWRDYXBh
Y2l0eShjYXBhY2l0eSgpLCByZXF1aXJlZExlbmd0aCkpOworICAgICAgICAgICAgaWYgKCFhbGxv
Y2F0ZWQpCisgICAgICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRlZDsKICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgIEFTU0VSVChtX3N0cmluZy5sZW5ndGgoKSA9PSBtX2xlbmd0aCk7Ci0g
ICAgICAgICAgICBhbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChtX3N0cmluZy5pc051bGwoKSA/IDAg
OiBtX3N0cmluZy5jaGFyYWN0ZXJzOCgpLCBleHBhbmRlZENhcGFjaXR5KGNhcGFjaXR5KCksIHJl
cXVpcmVkTGVuZ3RoKSk7CisgICAgICAgICAgICBhdXRvIGFsbG9jYXRlZCA9IGFsbG9jYXRlQnVm
ZmVyVXBDb252ZXJ0KG1fc3RyaW5nLmlzTnVsbCgpID8gMCA6IG1fc3RyaW5nLmNoYXJhY3RlcnM4
KCksIGV4cGFuZGVkQ2FwYWNpdHkoY2FwYWNpdHkoKSwgcmVxdWlyZWRMZW5ndGgpKTsKKyAgICAg
ICAgICAgIGlmICghYWxsb2NhdGVkKQorICAgICAgICAgICAgICAgIHJldHVybiBhbGxvY2F0ZWQ7
CiAgICAgICAgIH0KIAogICAgICAgICBtZW1jcHkobV9idWZmZXJDaGFyYWN0ZXJzMTYgKyBtX2xl
bmd0aCwgY2hhcmFjdGVycywgc3RhdGljX2Nhc3Q8c2l6ZV90PihsZW5ndGgpICogc2l6ZW9mKFVD
aGFyKSk7CiAgICAgICAgIG1fbGVuZ3RoID0gcmVxdWlyZWRMZW5ndGg7Ci0gICAgfSBlbHNlCi0g
ICAgICAgIG1lbWNweShhcHBlbmRVbmluaXRpYWxpemVkPFVDaGFyPihsZW5ndGgpLCBjaGFyYWN0
ZXJzLCBzdGF0aWNfY2FzdDxzaXplX3Q+KGxlbmd0aCkgKiBzaXplb2YoVUNoYXIpKTsKKyAgICB9
IGVsc2UgeworICAgICAgICBpZiAoYXV0byBhcHBlbmRlZCA9IGFwcGVuZFVuaW5pdGlhbGl6ZWQ8
VUNoYXI+KGxlbmd0aCkpCisgICAgICAgICAgICBtZW1jcHkoKmFwcGVuZGVkLCBjaGFyYWN0ZXJz
LCBzdGF0aWNfY2FzdDxzaXplX3Q+KGxlbmd0aCkgKiBzaXplb2YoVUNoYXIpKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKGFwcGVuZGVkLmVycm9yKCkp
OworICAgIH0KICAgICBBU1NFUlQobV9idWZmZXItPmxlbmd0aCgpID49IG1fbGVuZ3RoKTsKKyAg
ICByZXR1cm4geyB9OwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVuZChjb25zdCBMQ2hh
ciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8
PiBTdHJpbmdCdWlsZGVyOjphcHBlbmQoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVk
IGxlbmd0aCkKIHsKICAgICBpZiAoIWxlbmd0aCkKLSAgICAgICAgcmV0dXJuOworICAgICAgICBy
ZXR1cm4geyB9OwogICAgIEFTU0VSVChjaGFyYWN0ZXJzKTsKIAogICAgIGlmIChtX2lzOEJpdCkg
ewotICAgICAgICBMQ2hhciogZGVzdCA9IGFwcGVuZFVuaW5pdGlhbGl6ZWQ8TENoYXI+KGxlbmd0
aCk7CisgICAgICAgIGF1dG8gYXBwZW5kZWQgPSBhcHBlbmRVbmluaXRpYWxpemVkPExDaGFyPihs
ZW5ndGgpOworICAgICAgICBpZiAoIWFwcGVuZGVkKQorICAgICAgICAgICAgcmV0dXJuIG1ha2VV
bmV4cGVjdGVkKGFwcGVuZGVkLmVycm9yKCkpOworICAgICAgICBMQ2hhciogZGVzdCA9ICphcHBl
bmRlZDsKICAgICAgICAgaWYgKGxlbmd0aCA+IDgpCiAgICAgICAgICAgICBtZW1jcHkoZGVzdCwg
Y2hhcmFjdGVycywgc3RhdGljX2Nhc3Q8c2l6ZV90PihsZW5ndGgpICogc2l6ZW9mKExDaGFyKSk7
CiAgICAgICAgIGVsc2UgewpAQCAtMjk5LDczICszNzAsNzkgQEAgdm9pZCBTdHJpbmdCdWlsZGVy
OjphcHBlbmQoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKICAgICAg
ICAgICAgICAgICAqKGRlc3QrKykgPSAqKGNoYXJhY3RlcnMrKyk7CiAgICAgICAgIH0KICAgICB9
IGVsc2UgewotICAgICAgICBVQ2hhciogZGVzdCA9IGFwcGVuZFVuaW5pdGlhbGl6ZWQ8VUNoYXI+
KGxlbmd0aCk7CisgICAgICAgIGF1dG8gYXBwZW5kZWQgPSBhcHBlbmRVbmluaXRpYWxpemVkPFVD
aGFyPihsZW5ndGgpOworICAgICAgICBpZiAoIWFwcGVuZGVkKQorICAgICAgICAgICAgcmV0dXJu
IG1ha2VVbmV4cGVjdGVkKGFwcGVuZGVkLmVycm9yKCkpOworICAgICAgICBVQ2hhciogZGVzdCA9
ICphcHBlbmRlZDsKICAgICAgICAgY29uc3QgTENoYXIqIGVuZCA9IGNoYXJhY3RlcnMgKyBsZW5n
dGg7CiAgICAgICAgIHdoaWxlIChjaGFyYWN0ZXJzIDwgZW5kKQogICAgICAgICAgICAgKihkZXN0
KyspID0gKihjaGFyYWN0ZXJzKyspOwogICAgIH0KKyAgICByZXR1cm4geyB9OwogfQogCiAjaWYg
VVNFKENGKQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVuZChDRlN0cmluZ1JlZiBzdHJpbmcp
CitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZChDRlN0cmlu
Z1JlZiBzdHJpbmcpCiB7CiAgICAgLy8gRmFzdCBwYXRoOiBhdm9pZCBjb25zdHJ1Y3RpbmcgYSB0
ZW1wb3JhcnkgU3RyaW5nIHdoZW4gcG9zc2libGUuCiAgICAgaWYgKGF1dG8qIGNoYXJhY3RlcnMg
PSBDRlN0cmluZ0dldENTdHJpbmdQdHIoc3RyaW5nLCBrQ0ZTdHJpbmdFbmNvZGluZ0lTT0xhdGlu
MSkpIHsKLSAgICAgICAgYXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihjaGFy
YWN0ZXJzKSwgQ0ZTdHJpbmdHZXRMZW5ndGgoc3RyaW5nKSk7Ci0gICAgICAgIHJldHVybjsKKyAg
ICAgICAgaWYgKGF1dG8gYXBwZW5kZWQgPSBhcHBlbmQocmVpbnRlcnByZXRfY2FzdDxjb25zdCBM
Q2hhcio+KGNoYXJhY3RlcnMpLCBDRlN0cmluZ0dldExlbmd0aChzdHJpbmcpKSkKKyAgICAgICAg
ICAgIHJldHVybiB7IH07CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBhcHBlbmRl
ZDsKICAgICB9Ci0gICAgYXBwZW5kKFN0cmluZyhzdHJpbmcpKTsKKyAgICByZXR1cm4gYXBwZW5k
KFN0cmluZyhzdHJpbmcpKTsKIH0KIAogI2VuZGlmCiAKLXZvaWQgU3RyaW5nQnVpbGRlcjo6YXBw
ZW5kTnVtYmVyKGludCBudW1iZXIpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1
aWxkZXI6OmFwcGVuZE51bWJlcihpbnQgbnVtYmVyKQogewotICAgIG51bWJlclRvU3RyaW5nU2ln
bmVkPFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CisgICAgcmV0dXJuIG51bWJlclRvU3Ry
aW5nU2lnbmVkPFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CiB9CiAKLXZvaWQgU3RyaW5n
QnVpbGRlcjo6YXBwZW5kTnVtYmVyKHVuc2lnbmVkIGludCBudW1iZXIpCitTdHJpbmdCdWlsZGVy
OjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcih1bnNpZ25lZCBpbnQgbnVt
YmVyKQogewotICAgIG51bWJlclRvU3RyaW5nVW5zaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVy
LCB0aGlzKTsKKyAgICByZXR1cm4gbnVtYmVyVG9TdHJpbmdVbnNpZ25lZDxTdHJpbmdCdWlsZGVy
PihudW1iZXIsIHRoaXMpOwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcihs
b25nIG51bWJlcikKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6YXBw
ZW5kTnVtYmVyKGxvbmcgbnVtYmVyKQogewotICAgIG51bWJlclRvU3RyaW5nU2lnbmVkPFN0cmlu
Z0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CisgICAgcmV0dXJuIG51bWJlclRvU3RyaW5nU2lnbmVk
PFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CiB9CiAKLXZvaWQgU3RyaW5nQnVpbGRlcjo6
YXBwZW5kTnVtYmVyKHVuc2lnbmVkIGxvbmcgbnVtYmVyKQorU3RyaW5nQnVpbGRlcjo6RmFsbGli
bGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIodW5zaWduZWQgbG9uZyBudW1iZXIpCiB7
Ci0gICAgbnVtYmVyVG9TdHJpbmdVbnNpZ25lZDxTdHJpbmdCdWlsZGVyPihudW1iZXIsIHRoaXMp
OworICAgIHJldHVybiBudW1iZXJUb1N0cmluZ1Vuc2lnbmVkPFN0cmluZ0J1aWxkZXI+KG51bWJl
ciwgdGhpcyk7CiB9CiAKLXZvaWQgU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKGxvbmcgbG9u
ZyBudW1iZXIpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFwcGVu
ZE51bWJlcihsb25nIGxvbmcgbnVtYmVyKQogewotICAgIG51bWJlclRvU3RyaW5nU2lnbmVkPFN0
cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CisgICAgcmV0dXJuIG51bWJlclRvU3RyaW5nU2ln
bmVkPFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CiB9CiAKLXZvaWQgU3RyaW5nQnVpbGRl
cjo6YXBwZW5kTnVtYmVyKHVuc2lnbmVkIGxvbmcgbG9uZyBudW1iZXIpCitTdHJpbmdCdWlsZGVy
OjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcih1bnNpZ25lZCBsb25nIGxv
bmcgbnVtYmVyKQogewotICAgIG51bWJlclRvU3RyaW5nVW5zaWduZWQ8U3RyaW5nQnVpbGRlcj4o
bnVtYmVyLCB0aGlzKTsKKyAgICByZXR1cm4gbnVtYmVyVG9TdHJpbmdVbnNpZ25lZDxTdHJpbmdC
dWlsZGVyPihudW1iZXIsIHRoaXMpOwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51
bWJlcihkb3VibGUgbnVtYmVyLCB1bnNpZ25lZCBwcmVjaXNpb24sIFRyYWlsaW5nWmVyb3NUcnVu
Y2F0aW5nUG9saWN5IHRyYWlsaW5nWmVyb3NUcnVuY2F0aW5nUG9saWN5KQorU3RyaW5nQnVpbGRl
cjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIoZG91YmxlIG51bWJlciwg
dW5zaWduZWQgcHJlY2lzaW9uLCBUcmFpbGluZ1plcm9zVHJ1bmNhdGluZ1BvbGljeSB0cmFpbGlu
Z1plcm9zVHJ1bmNhdGluZ1BvbGljeSkKIHsKICAgICBOdW1iZXJUb1N0cmluZ0J1ZmZlciBidWZm
ZXI7Ci0gICAgYXBwZW5kKG51bWJlclRvRml4ZWRQcmVjaXNpb25TdHJpbmcobnVtYmVyLCBwcmVj
aXNpb24sIGJ1ZmZlciwgdHJhaWxpbmdaZXJvc1RydW5jYXRpbmdQb2xpY3kgPT0gVHJ1bmNhdGVU
cmFpbGluZ1plcm9zKSk7CisgICAgcmV0dXJuIGFwcGVuZChudW1iZXJUb0ZpeGVkUHJlY2lzaW9u
U3RyaW5nKG51bWJlciwgcHJlY2lzaW9uLCBidWZmZXIsIHRyYWlsaW5nWmVyb3NUcnVuY2F0aW5n
UG9saWN5ID09IFRydW5jYXRlVHJhaWxpbmdaZXJvcykpOwogfQogCi12b2lkIFN0cmluZ0J1aWxk
ZXI6OmFwcGVuZEVDTUFTY3JpcHROdW1iZXIoZG91YmxlIG51bWJlcikKK1N0cmluZ0J1aWxkZXI6
OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6YXBwZW5kRUNNQVNjcmlwdE51bWJlcihkb3VibGUg
bnVtYmVyKQogewogICAgIE51bWJlclRvU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKLSAgICBhcHBlbmQo
bnVtYmVyVG9TdHJpbmcobnVtYmVyLCBidWZmZXIpKTsKKyAgICByZXR1cm4gYXBwZW5kKG51bWJl
clRvU3RyaW5nKG51bWJlciwgYnVmZmVyKSk7CiB9CiAKLXZvaWQgU3RyaW5nQnVpbGRlcjo6YXBw
ZW5kRml4ZWRXaWR0aE51bWJlcihkb3VibGUgbnVtYmVyLCB1bnNpZ25lZCBkZWNpbWFsUGxhY2Vz
KQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmRGaXhlZFdp
ZHRoTnVtYmVyKGRvdWJsZSBudW1iZXIsIHVuc2lnbmVkIGRlY2ltYWxQbGFjZXMpCiB7CiAgICAg
TnVtYmVyVG9TdHJpbmdCdWZmZXIgYnVmZmVyOwotICAgIGFwcGVuZChudW1iZXJUb0ZpeGVkV2lk
dGhTdHJpbmcobnVtYmVyLCBkZWNpbWFsUGxhY2VzLCBidWZmZXIpKTsKKyAgICByZXR1cm4gYXBw
ZW5kKG51bWJlclRvRml4ZWRXaWR0aFN0cmluZyhudW1iZXIsIGRlY2ltYWxQbGFjZXMsIGJ1ZmZl
cikpOwogfQogCiBib29sIFN0cmluZ0J1aWxkZXI6OmNhblNocmluaygpIGNvbnN0CkBAIC0zNzQs
MTUgKzQ1MSwyMSBAQCBib29sIFN0cmluZ0J1aWxkZXI6OmNhblNocmluaygpIGNvbnN0CiAgICAg
cmV0dXJuIG1fYnVmZmVyICYmIG1fYnVmZmVyLT5sZW5ndGgoKSA+IChtX2xlbmd0aCArIChtX2xl
bmd0aCA+PiAyKSk7CiB9CiAKLXZvaWQgU3RyaW5nQnVpbGRlcjo6c2hyaW5rVG9GaXQoKQorU3Ry
aW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjpzaHJpbmtUb0ZpdCgpCiB7CiAg
ICAgaWYgKGNhblNocmluaygpKSB7Ci0gICAgICAgIGlmIChtX2lzOEJpdCkKLSAgICAgICAgICAg
IHJlYWxsb2NhdGVCdWZmZXI8TENoYXI+KG1fbGVuZ3RoKTsKLSAgICAgICAgZWxzZQotICAgICAg
ICAgICAgcmVhbGxvY2F0ZUJ1ZmZlcjxVQ2hhcj4obV9sZW5ndGgpOworICAgICAgICBpZiAobV9p
czhCaXQpIHsKKyAgICAgICAgICAgIGF1dG8gcmVhbGxvY2F0ZWQgPSByZWFsbG9jYXRlQnVmZmVy
PExDaGFyPihtX2xlbmd0aCk7CisgICAgICAgICAgICBpZiAoIXJlYWxsb2NhdGVkKQorICAgICAg
ICAgICAgICAgIHJldHVybiByZWFsbG9jYXRlZDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIGF1dG8gcmVhbGxvY2F0ZWQgPSByZWFsbG9jYXRlQnVmZmVyPFVDaGFyPihtX2xlbmd0aCk7
CisgICAgICAgICAgICBpZiAoIXJlYWxsb2NhdGVkKQorICAgICAgICAgICAgICAgIHJldHVybiBy
ZWFsbG9jYXRlZDsKKyAgICAgICAgfQogICAgICAgICBtX3N0cmluZyA9IFdURk1vdmUobV9idWZm
ZXIpOwogICAgIH0KKyAgICByZXR1cm4geyB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlci5oIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmgKaW5kZXggOGU0YzcyMC4uMmMwZGRjYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDA5LTIwMTAsIDIwMTItMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTI3LDYgKzI3LDcgQEAKICNpZm5kZWYg
U3RyaW5nQnVpbGRlcl9oCiAjZGVmaW5lIFN0cmluZ0J1aWxkZXJfaAogCisjaW5jbHVkZSA8d3Rm
L0V4cGVjdGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ1ZpZXcuaD4KQEAgLTQwLDI4ICs0MSwzMyBAQCBjbGFzcyBTdHJpbmdCdWlsZGVy
IHsKIAogcHVibGljOgogICAgIFN0cmluZ0J1aWxkZXIoKQotICAgICAgICA6IG1fbGVuZ3RoKDAp
Ci0gICAgICAgICwgbV9pczhCaXQodHJ1ZSkKLSAgICAgICAgLCBtX2J1ZmZlckNoYXJhY3RlcnM4
KG51bGxwdHIpCisgICAgICAgIDogbV9idWZmZXJDaGFyYWN0ZXJzOChudWxscHRyKQogICAgIHsK
ICAgICB9CiAgICAgU3RyaW5nQnVpbGRlcihTdHJpbmdCdWlsZGVyJiYpID0gZGVmYXVsdDsKICAg
ICBTdHJpbmdCdWlsZGVyJiBvcGVyYXRvcj0oU3RyaW5nQnVpbGRlciYmKSA9IGRlZmF1bHQ7CiAK
LSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmQoY29uc3QgVUNoYXIqLCB1bnNpZ25l
ZCk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kKGNvbnN0IExDaGFyKiwgdW5z
aWduZWQpOworICAgIGVudW0gY2xhc3MgRmFpbHVyZSB7CisgICAgICAgIFdvdWxkT3ZlcmZsb3cs
CisgICAgICAgIE91dE9mTWVtb3J5LAorICAgICAgICBVbmhhbmRsZWRGYWlsdXJlLAorICAgIH07
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRXhwZWN0ID0gdm9pZD4gdXNpbmcgRmFsbGlibGUgPSBF
eHBlY3RlZDxFeHBlY3QsIFN0cmluZ0J1aWxkZXI6OkZhaWx1cmU+OworCisgICAgV1RGX0VYUE9S
VF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5kKGNvbnN0IFVDaGFyKiwgdW5zaWduZWQpOworICAg
IFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IGFwcGVuZChjb25zdCBMQ2hhciosIHVuc2ln
bmVkKTsKIAotICAgIEFMV0FZU19JTkxJTkUgdm9pZCBhcHBlbmQoY29uc3QgY2hhciogY2hhcmFj
dGVycywgdW5zaWduZWQgbGVuZ3RoKSB7IGFwcGVuZChyZWludGVycHJldF9jYXN0PGNvbnN0IExD
aGFyKj4oY2hhcmFjdGVycyksIGxlbmd0aCk7IH0KKyAgICBBTFdBWVNfSU5MSU5FIEZhbGxpYmxl
PD4gYXBwZW5kKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkgeyByZXR1
cm4gYXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihjaGFyYWN0ZXJzKSwgbGVu
Z3RoKTsgfQogCi0gICAgdm9pZCBhcHBlbmQoY29uc3QgQXRvbWljU3RyaW5nJiBhdG9taWNTdHJp
bmcpCisgICAgRmFsbGlibGU8PiBhcHBlbmQoY29uc3QgQXRvbWljU3RyaW5nJiBhdG9taWNTdHJp
bmcpCiAgICAgewotICAgICAgICBhcHBlbmQoYXRvbWljU3RyaW5nLnN0cmluZygpKTsKKyAgICAg
ICAgcmV0dXJuIGFwcGVuZChhdG9taWNTdHJpbmcuc3RyaW5nKCkpOwogICAgIH0KIAotICAgIHZv
aWQgYXBwZW5kKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIEZhbGxpYmxlPD4gYXBwZW5kKGNv
bnN0IFN0cmluZyYgc3RyaW5nKQogICAgIHsKICAgICAgICAgaWYgKCFzdHJpbmcubGVuZ3RoKCkp
Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4geyB9OwogCiAgICAgICAg
IC8vIElmIHdlJ3JlIGFwcGVuZGluZyB0byBhbiBlbXB0eSBzdHJpbmcsIGFuZCB0aGVyZSBpcyBu
b3QgYSBidWZmZXIgKHJlc2VydmVDYXBhY2l0eSBoYXMgbm90IGJlZW4gY2FsbGVkKQogICAgICAg
ICAvLyB0aGVuIGp1c3QgcmV0YWluIHRoZSBzdHJpbmcuCkBAIC02OSwxNTEgKzc1LDE2NCBAQCBw
dWJsaWM6CiAgICAgICAgICAgICBtX3N0cmluZyA9IHN0cmluZzsKICAgICAgICAgICAgIG1fbGVu
Z3RoID0gc3RyaW5nLmxlbmd0aCgpOwogICAgICAgICAgICAgbV9pczhCaXQgPSBtX3N0cmluZy5p
czhCaXQoKTsKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHJldHVybiB7IH07CiAg
ICAgICAgIH0KIAogICAgICAgICBpZiAoc3RyaW5nLmlzOEJpdCgpKQotICAgICAgICAgICAgYXBw
ZW5kKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBzdHJpbmcubGVuZ3RoKCkpOworICAgICAgICAgICAg
cmV0dXJuIGFwcGVuZChzdHJpbmcuY2hhcmFjdGVyczgoKSwgc3RyaW5nLmxlbmd0aCgpKTsKICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgYXBwZW5kKHN0cmluZy5jaGFyYWN0ZXJzMTYoKSwgc3Ry
aW5nLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIHJldHVybiBhcHBlbmQoc3RyaW5nLmNoYXJhY3Rl
cnMxNigpLCBzdHJpbmcubGVuZ3RoKCkpOwogICAgIH0KIAotICAgIHZvaWQgYXBwZW5kKGNvbnN0
IFN0cmluZ0J1aWxkZXImIG90aGVyKQorICAgIEZhbGxpYmxlPD4gYXBwZW5kKGNvbnN0IFN0cmlu
Z0J1aWxkZXImIG90aGVyKQogICAgIHsKKyAgICAgICAgaWYgKG90aGVyLmZhaWxlZCgpKQorICAg
ICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZhaWx1cmU6OlVuaGFuZGxlZEZhaWx1cmUp
OyAgICAgICAgICAgIAogICAgICAgICBpZiAoIW90aGVyLm1fbGVuZ3RoKQotICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgICAgICAvLyBJZiB3ZSdyZSBh
cHBlbmRpbmcgdG8gYW4gZW1wdHkgc3RyaW5nLCBhbmQgdGhlcmUgaXMgbm90IGEgYnVmZmVyIChy
ZXNlcnZlQ2FwYWNpdHkgaGFzIG5vdCBiZWVuIGNhbGxlZCkKICAgICAgICAgLy8gdGhlbiBqdXN0
IHJldGFpbiB0aGUgc3RyaW5nLgogICAgICAgICBpZiAoIW1fbGVuZ3RoICYmICFtX2J1ZmZlciAm
JiAhb3RoZXIubV9zdHJpbmcuaXNOdWxsKCkpIHsKICAgICAgICAgICAgIG1fc3RyaW5nID0gb3Ro
ZXIubV9zdHJpbmc7CiAgICAgICAgICAgICBtX2xlbmd0aCA9IG90aGVyLm1fbGVuZ3RoOwotICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogCiAg
ICAgICAgIGlmIChvdGhlci5pczhCaXQoKSkKLSAgICAgICAgICAgIGFwcGVuZChvdGhlci5jaGFy
YWN0ZXJzOCgpLCBvdGhlci5tX2xlbmd0aCk7CisgICAgICAgICAgICByZXR1cm4gYXBwZW5kKCpv
dGhlci5jaGFyYWN0ZXJzOCgpLCBvdGhlci5tX2xlbmd0aCk7CiAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIGFwcGVuZChvdGhlci5jaGFyYWN0ZXJzMTYoKSwgb3RoZXIubV9sZW5ndGgpOworICAg
ICAgICAgICAgcmV0dXJuIGFwcGVuZCgqb3RoZXIuY2hhcmFjdGVyczE2KCksIG90aGVyLm1fbGVu
Z3RoKTsKICAgICB9CiAKLSAgICB2b2lkIGFwcGVuZChTdHJpbmdWaWV3IHN0cmluZ1ZpZXcpCisg
ICAgRmFsbGlibGU8PiBhcHBlbmQoU3RyaW5nVmlldyBzdHJpbmdWaWV3KQogICAgIHsKICAgICAg
ICAgaWYgKHN0cmluZ1ZpZXcuaXM4Qml0KCkpCi0gICAgICAgICAgICBhcHBlbmQoc3RyaW5nVmll
dy5jaGFyYWN0ZXJzOCgpLCBzdHJpbmdWaWV3Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgIHJldHVy
biBhcHBlbmQoc3RyaW5nVmlldy5jaGFyYWN0ZXJzOCgpLCBzdHJpbmdWaWV3Lmxlbmd0aCgpKTsK
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgYXBwZW5kKHN0cmluZ1ZpZXcuY2hhcmFjdGVyczE2
KCksIHN0cmluZ1ZpZXcubGVuZ3RoKCkpOworICAgICAgICAgICAgcmV0dXJuIGFwcGVuZChzdHJp
bmdWaWV3LmNoYXJhY3RlcnMxNigpLCBzdHJpbmdWaWV3Lmxlbmd0aCgpKTsKICAgICB9CiAKICNp
ZiBVU0UoQ0YpCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kKENGU3RyaW5nUmVm
KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmQoQ0ZTdHJpbmdSZWYp
OwogI2VuZGlmCiAjaWYgVVNFKENGKSAmJiBkZWZpbmVkKF9fT0JKQ19fKQotICAgIHZvaWQgYXBw
ZW5kKE5TU3RyaW5nICpzdHJpbmcpIHsgYXBwZW5kKChfX2JyaWRnZSBDRlN0cmluZ1JlZilzdHJp
bmcpOyB9CisgICAgRmFsbGlibGU8PiBhcHBlbmQoTlNTdHJpbmcgKnN0cmluZykgeyByZXR1cm4g
YXBwZW5kKChfX2JyaWRnZSBDRlN0cmluZ1JlZilzdHJpbmcpOyB9CiAjZW5kaWYKICAgICAKLSAg
ICB2b2lkIGFwcGVuZChjb25zdCBTdHJpbmcmIHN0cmluZywgdW5zaWduZWQgb2Zmc2V0LCB1bnNp
Z25lZCBsZW5ndGgpCisgICAgRmFsbGlibGU8PiBhcHBlbmQoY29uc3QgU3RyaW5nJiBzdHJpbmcs
IHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQogICAgIHsKICAgICAgICAgaWYgKCFz
dHJpbmcubGVuZ3RoKCkpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4g
eyB9OwogCiAgICAgICAgIGlmICgob2Zmc2V0ICsgbGVuZ3RoKSA+IHN0cmluZy5sZW5ndGgoKSkK
LSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHJldHVybiB7IH07CiAKICAgICAgICAg
aWYgKHN0cmluZy5pczhCaXQoKSkKLSAgICAgICAgICAgIGFwcGVuZChzdHJpbmcuY2hhcmFjdGVy
czgoKSArIG9mZnNldCwgbGVuZ3RoKTsKKyAgICAgICAgICAgIHJldHVybiBhcHBlbmQoc3RyaW5n
LmNoYXJhY3RlcnM4KCkgKyBvZmZzZXQsIGxlbmd0aCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIGFwcGVuZChzdHJpbmcuY2hhcmFjdGVyczE2KCkgKyBvZmZzZXQsIGxlbmd0aCk7CisgICAg
ICAgICAgICByZXR1cm4gYXBwZW5kKHN0cmluZy5jaGFyYWN0ZXJzMTYoKSArIG9mZnNldCwgbGVu
Z3RoKTsKICAgICB9CiAKLSAgICB2b2lkIGFwcGVuZChjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKQor
ICAgIEZhbGxpYmxlPD4gYXBwZW5kKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpCiAgICAgewogICAg
ICAgICBpZiAoY2hhcmFjdGVycykKLSAgICAgICAgICAgIGFwcGVuZChjaGFyYWN0ZXJzLCBzdHJs
ZW4oY2hhcmFjdGVycykpOworICAgICAgICAgICAgcmV0dXJuIGFwcGVuZChjaGFyYWN0ZXJzLCBz
dHJsZW4oY2hhcmFjdGVycykpOworICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAotICAgIHZv
aWQgYXBwZW5kKFVDaGFyIGMpCisgICAgRmFsbGlibGU8PiBhcHBlbmQoVUNoYXIgYykKICAgICB7
CiAgICAgICAgIGlmIChtX2J1ZmZlciAmJiBtX2xlbmd0aCA8IG1fYnVmZmVyLT5sZW5ndGgoKSAm
JiBtX3N0cmluZy5pc051bGwoKSkgewogICAgICAgICAgICAgaWYgKCFtX2lzOEJpdCkgewogICAg
ICAgICAgICAgICAgIG1fYnVmZmVyQ2hhcmFjdGVyczE2W21fbGVuZ3RoKytdID0gYzsKLSAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAg
ICAgIH0KIAogICAgICAgICAgICAgaWYgKCEoYyAmIH4weGZmKSkgewogICAgICAgICAgICAgICAg
IG1fYnVmZmVyQ2hhcmFjdGVyczhbbV9sZW5ndGgrK10gPSBzdGF0aWNfY2FzdDxMQ2hhcj4oYyk7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIHJldHVybiB7IH07CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgYXBwZW5kKCZjLCAxKTsKKyAgICAgICAg
cmV0dXJuIGFwcGVuZCgmYywgMSk7CiAgICAgfQogCi0gICAgdm9pZCBhcHBlbmQoTENoYXIgYykK
KyAgICBGYWxsaWJsZTw+IGFwcGVuZChMQ2hhciBjKQogICAgIHsKICAgICAgICAgaWYgKG1fYnVm
ZmVyICYmIG1fbGVuZ3RoIDwgbV9idWZmZXItPmxlbmd0aCgpICYmIG1fc3RyaW5nLmlzTnVsbCgp
KSB7CiAgICAgICAgICAgICBpZiAobV9pczhCaXQpCiAgICAgICAgICAgICAgICAgbV9idWZmZXJD
aGFyYWN0ZXJzOFttX2xlbmd0aCsrXSA9IGM7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAg
ICAgICAgbV9idWZmZXJDaGFyYWN0ZXJzMTZbbV9sZW5ndGgrK10gPSBjOwotICAgICAgICB9IGVs
c2UKLSAgICAgICAgICAgIGFwcGVuZCgmYywgMSk7CisgICAgICAgICAgICByZXR1cm4geyB9Owor
ICAgICAgICB9CisgICAgICAgIHJldHVybiBhcHBlbmQoJmMsIDEpOwogICAgIH0KIAotICAgIHZv
aWQgYXBwZW5kKGNoYXIgYykKKyAgICBGYWxsaWJsZTw+IGFwcGVuZChjaGFyIGMpCiAgICAgewot
ICAgICAgICBhcHBlbmQoc3RhdGljX2Nhc3Q8TENoYXI+KGMpKTsKKyAgICAgICAgcmV0dXJuIGFw
cGVuZChzdGF0aWNfY2FzdDxMQ2hhcj4oYykpOwogICAgIH0KIAotICAgIHZvaWQgYXBwZW5kKFVD
aGFyMzIgYykKKyAgICBGYWxsaWJsZTw+IGFwcGVuZChVQ2hhcjMyIGMpCiAgICAgewotICAgICAg
ICBpZiAoVV9JU19CTVAoYykpIHsKLSAgICAgICAgICAgIGFwcGVuZChzdGF0aWNfY2FzdDxVQ2hh
cj4oYykpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGFwcGVuZChV
MTZfTEVBRChjKSk7Ci0gICAgICAgIGFwcGVuZChVMTZfVFJBSUwoYykpOworICAgICAgICBpZiAo
VV9JU19CTVAoYykpCisgICAgICAgICAgICByZXR1cm4gYXBwZW5kKHN0YXRpY19jYXN0PFVDaGFy
PihjKSk7CisgICAgICAgIGF1dG8gYXBwZW5kZWQgPSBhcHBlbmQoVTE2X0xFQUQoYykpOworICAg
ICAgICBpZiAoIWFwcGVuZGVkKQorICAgICAgICAgICAgcmV0dXJuIGFwcGVuZGVkOworICAgICAg
ICByZXR1cm4gYXBwZW5kKFUxNl9UUkFJTChjKSk7CiAgICAgfQogCi0gICAgV1RGX0VYUE9SVF9Q
UklWQVRFIGJvb2wgYXBwZW5kUXVvdGVkSlNPTlN0cmluZyhjb25zdCBTdHJpbmcmKTsKKyAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmRRdW90ZWRKU09OU3RyaW5nKGNvbnN0
IFN0cmluZyYpOwogCiAgICAgdGVtcGxhdGU8dW5zaWduZWQgY2hhcmFjdGVyQ291bnQ+Ci0gICAg
QUxXQVlTX0lOTElORSB2b2lkIGFwcGVuZExpdGVyYWwoY29uc3QgY2hhciAoJmNoYXJhY3RlcnMp
W2NoYXJhY3RlckNvdW50XSkgeyBhcHBlbmQoY2hhcmFjdGVycywgY2hhcmFjdGVyQ291bnQgLSAx
KTsgfQotCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kTnVtYmVyKGludCk7Ci0g
ICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kTnVtYmVyKHVuc2lnbmVkIGludCk7Ci0g
ICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kTnVtYmVyKGxvbmcpOwotICAgIFdURl9F
WFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZE51bWJlcih1bnNpZ25lZCBsb25nKTsKLSAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmROdW1iZXIobG9uZyBsb25nKTsKLSAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgdm9pZCBhcHBlbmROdW1iZXIodW5zaWduZWQgbG9uZyBsb25nKTsKLSAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmROdW1iZXIoZG91YmxlLCB1bnNpZ25lZCBwcmVj
aXNpb24gPSA2LCBUcmFpbGluZ1plcm9zVHJ1bmNhdGluZ1BvbGljeSA9IFRydW5jYXRlVHJhaWxp
bmdaZXJvcyk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kRUNNQVNjcmlwdE51
bWJlcihkb3VibGUpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZEZpeGVkV2lk
dGhOdW1iZXIoZG91YmxlLCB1bnNpZ25lZCBkZWNpbWFsUGxhY2VzKTsKLQotICAgIFN0cmluZyB0
b1N0cmluZygpCisgICAgQUxXQVlTX0lOTElORSBGYWxsaWJsZTw+IGFwcGVuZExpdGVyYWwoY29u
c3QgY2hhciAoJmNoYXJhY3RlcnMpW2NoYXJhY3RlckNvdW50XSkgeyByZXR1cm4gYXBwZW5kKGNo
YXJhY3RlcnMsIGNoYXJhY3RlckNvdW50IC0gMSk7IH0KKworICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBGYWxsaWJsZTw+IGFwcGVuZE51bWJlcihpbnQpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBG
YWxsaWJsZTw+IGFwcGVuZE51bWJlcih1bnNpZ25lZCBpbnQpOworICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBGYWxsaWJsZTw+IGFwcGVuZE51bWJlcihsb25nKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZB
VEUgRmFsbGlibGU8PiBhcHBlbmROdW1iZXIodW5zaWduZWQgbG9uZyk7CisgICAgV1RGX0VYUE9S
VF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5kTnVtYmVyKGxvbmcgbG9uZyk7CisgICAgV1RGX0VY
UE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5kTnVtYmVyKHVuc2lnbmVkIGxvbmcgbG9uZyk7
CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5kTnVtYmVyKGRvdWJsZSwg
dW5zaWduZWQgcHJlY2lzaW9uID0gNiwgVHJhaWxpbmdaZXJvc1RydW5jYXRpbmdQb2xpY3kgPSBU
cnVuY2F0ZVRyYWlsaW5nWmVyb3MpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+
IGFwcGVuZEVDTUFTY3JpcHROdW1iZXIoZG91YmxlKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUg
RmFsbGlibGU8PiBhcHBlbmRGaXhlZFdpZHRoTnVtYmVyKGRvdWJsZSwgdW5zaWduZWQgZGVjaW1h
bFBsYWNlcyk7CisKKyAgICBXQVJOX1VOVVNFRF9SRVRVUk4gRmFsbGlibGU8U3RyaW5nPiB0b1N0
cmluZygpCiAgICAgewotICAgICAgICBzaHJpbmtUb0ZpdCgpOwotICAgICAgICBpZiAobV9zdHJp
bmcuaXNOdWxsKCkpCi0gICAgICAgICAgICByZWlmeVN0cmluZygpOwotICAgICAgICByZXR1cm4g
bV9zdHJpbmc7CisgICAgICAgIGlmIChtX2ZhaWxlZCkKKyAgICAgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZChGYWlsdXJlOjpVbmhhbmRsZWRGYWlsdXJlKTsKKyAgICAgICAgaWYgKGF1dG8g
c2hyYW5rID0gc2hyaW5rVG9GaXQoKSkgeworICAgICAgICAgICAgaWYgKG1fc3RyaW5nLmlzTnVs
bCgpKQorICAgICAgICAgICAgICAgIHJlaWZ5U3RyaW5nKCk7CisgICAgICAgICAgICByZXR1cm4g
bV9zdHJpbmc7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVj
dGVkKHNocmFuay5lcnJvcigpKTsKICAgICB9CiAKLSAgICBjb25zdCBTdHJpbmcmIHRvU3RyaW5n
UHJlc2VydmVDYXBhY2l0eSgpIGNvbnN0CisgICAgV0FSTl9VTlVTRURfUkVUVVJOIEZhbGxpYmxl
PFN0cmluZz4gdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgY29uc3QKICAgICB7CisgICAgICAg
IGlmIChtX2ZhaWxlZCkKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGYWlsdXJl
OjpVbmhhbmRsZWRGYWlsdXJlKTsKICAgICAgICAgaWYgKG1fc3RyaW5nLmlzTnVsbCgpKQogICAg
ICAgICAgICAgcmVpZnlTdHJpbmcoKTsKICAgICAgICAgcmV0dXJuIG1fc3RyaW5nOwogICAgIH0K
IAotICAgIEF0b21pY1N0cmluZyB0b0F0b21pY1N0cmluZygpIGNvbnN0CisgICAgV0FSTl9VTlVT
RURfUkVUVVJOIEZhbGxpYmxlPEF0b21pY1N0cmluZz4gdG9BdG9taWNTdHJpbmcoKSBjb25zdAog
ICAgIHsKKyAgICAgICAgaWYgKG1fZmFpbGVkKQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4
cGVjdGVkKEZhaWx1cmU6OlVuaGFuZGxlZEZhaWx1cmUpOworCiAgICAgICAgIGlmICghbV9sZW5n
dGgpCiAgICAgICAgICAgICByZXR1cm4gZW1wdHlBdG9tKCk7CiAKICAgICAgICAgLy8gSWYgdGhl
IGJ1ZmZlciBpcyBzdWZmaWNpZW50bHkgb3Zlci1hbGxvY2F0ZWQsIG1ha2UgYSBuZXcgQXRvbWlj
U3RyaW5nIGZyb20gYSBjb3B5IHNvIGl0cyBidWZmZXIgaXMgbm90IHNvIGxhcmdlLgogICAgICAg
ICBpZiAoY2FuU2hyaW5rKCkpIHsKICAgICAgICAgICAgIGlmIChpczhCaXQoKSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gQXRvbWljU3RyaW5nKGNoYXJhY3RlcnM4KCksIGxlbmd0aCgpKTsKLSAg
ICAgICAgICAgIHJldHVybiBBdG9taWNTdHJpbmcoY2hhcmFjdGVyczE2KCksIGxlbmd0aCgpKTsg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICByZXR1cm4gQXRvbWljU3RyaW5nKCpjaGFyYWN0
ZXJzOCgpLCBsZW5ndGgoKSk7CisgICAgICAgICAgICByZXR1cm4gQXRvbWljU3RyaW5nKCpjaGFy
YWN0ZXJzMTYoKSwgbGVuZ3RoKCkpOyAgICAgICAgICAgIAogICAgICAgICB9CiAKICAgICAgICAg
aWYgKCFtX3N0cmluZy5pc051bGwoKSkKQEAgLTIzMCwyOSArMjQ5LDM3IEBAIHB1YmxpYzoKIAog
ICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFtX2xlbmd0aDsgfQogCi0gICAgV1RG
X0VYUE9SVF9QUklWQVRFIHZvaWQgcmVzZXJ2ZUNhcGFjaXR5KHVuc2lnbmVkIG5ld0NhcGFjaXR5
KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiByZXNlcnZlQ2FwYWNpdHkodW5z
aWduZWQgbmV3Q2FwYWNpdHkpOwogCiAgICAgdW5zaWduZWQgY2FwYWNpdHkoKSBjb25zdAogICAg
IHsKICAgICAgICAgcmV0dXJuIG1fYnVmZmVyID8gbV9idWZmZXItPmxlbmd0aCgpIDogbV9sZW5n
dGg7CiAgICAgfQogCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVzaXplKHVuc2lnbmVk
IG5ld1NpemUpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IHJlc2l6ZSh1bnNp
Z25lZCBuZXdTaXplKTsKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGNhblNocmluaygp
IGNvbnN0OwogCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc2hyaW5rVG9GaXQoKTsKKyAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiBzaHJpbmtUb0ZpdCgpOwogCi0gICAgVUNo
YXIgb3BlcmF0b3JbXSh1bnNpZ25lZCBpKSBjb25zdAorICAgIGJvb2wgaXM4Qml0KCkgY29uc3Qg
eyByZXR1cm4gbV9pczhCaXQ7IH0KKworICAgIGJvb2wgZmFpbGVkKCkgY29uc3QgeyByZXR1cm4g
bV9mYWlsZWQ7IH0KKworICAgIEZhbGxpYmxlPFVDaGFyPiBvcGVyYXRvcltdKHVuc2lnbmVkIGkp
IGNvbnN0CiAgICAgeworICAgICAgICBpZiAobV9mYWlsZWQpCisgICAgICAgICAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQoRmFpbHVyZTo6VW5oYW5kbGVkRmFpbHVyZSk7CiAgICAgICAgIEFTU0VS
VF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGkgPCBtX2xlbmd0aCk7CiAgICAgICAgIGlmICht
X2lzOEJpdCkKLSAgICAgICAgICAgIHJldHVybiBjaGFyYWN0ZXJzOCgpW2ldOwotICAgICAgICBy
ZXR1cm4gY2hhcmFjdGVyczE2KClbaV07CisgICAgICAgICAgICByZXR1cm4gKCpjaGFyYWN0ZXJz
OCgpKVtpXTsKKyAgICAgICAgcmV0dXJuICgqY2hhcmFjdGVyczE2KCkpW2ldOwogICAgIH0KIAot
ICAgIGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzOCgpIGNvbnN0CisgICAgRmFsbGlibGU8Y29uc3Qg
TENoYXIqPiBjaGFyYWN0ZXJzOCgpIGNvbnN0CiAgICAgeworICAgICAgICBpZiAobV9mYWlsZWQp
CisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmFpbHVyZTo6VW5oYW5kbGVkRmFp
bHVyZSk7CiAgICAgICAgIEFTU0VSVChtX2lzOEJpdCk7CiAgICAgICAgIGlmICghbV9sZW5ndGgp
CiAgICAgICAgICAgICByZXR1cm4gMDsKQEAgLTI2Miw4ICsyODksMTAgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gbV9idWZmZXItPmNoYXJhY3RlcnM4KCk7CiAgICAgfQogCi0gICAgY29uc3Qg
VUNoYXIqIGNoYXJhY3RlcnMxNigpIGNvbnN0CisgICAgRmFsbGlibGU8Y29uc3QgVUNoYXIqPiBj
aGFyYWN0ZXJzMTYoKSBjb25zdAogICAgIHsKKyAgICAgICAgaWYgKG1fZmFpbGVkKQorICAgICAg
ICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZhaWx1cmU6OlVuaGFuZGxlZEZhaWx1cmUpOwog
ICAgICAgICBBU1NFUlQoIW1faXM4Qml0KTsKICAgICAgICAgaWYgKCFtX2xlbmd0aCkKICAgICAg
ICAgICAgIHJldHVybiAwOwpAQCAtMjcyLDE2ICszMDEsMTUgQEAgcHVibGljOgogICAgICAgICBB
U1NFUlQobV9idWZmZXIpOwogICAgICAgICByZXR1cm4gbV9idWZmZXItPmNoYXJhY3RlcnMxNigp
OwogICAgIH0KLSAgICAKLSAgICBib29sIGlzOEJpdCgpIGNvbnN0IHsgcmV0dXJuIG1faXM4Qml0
OyB9CiAKICAgICB2b2lkIGNsZWFyKCkKICAgICB7CiAgICAgICAgIG1fbGVuZ3RoID0gMDsKICAg
ICAgICAgbV9zdHJpbmcgPSBTdHJpbmcoKTsKICAgICAgICAgbV9idWZmZXIgPSBudWxscHRyOwot
ICAgICAgICBtX2J1ZmZlckNoYXJhY3RlcnM4ID0gMDsKICAgICAgICAgbV9pczhCaXQgPSB0cnVl
OworICAgICAgICBtX2ZhaWxlZCA9IGZhbHNlOworICAgICAgICBtX2J1ZmZlckNoYXJhY3RlcnM4
ID0gMDsKICAgICB9CiAKICAgICB2b2lkIHN3YXAoU3RyaW5nQnVpbGRlciYgc3RyaW5nQnVpbGRl
cikKQEAgLTI5MCwyOCArMzE4LDMyIEBAIHB1YmxpYzoKICAgICAgICAgbV9zdHJpbmcuc3dhcChz
dHJpbmdCdWlsZGVyLm1fc3RyaW5nKTsKICAgICAgICAgbV9idWZmZXIuc3dhcChzdHJpbmdCdWls
ZGVyLm1fYnVmZmVyKTsKICAgICAgICAgc3RkOjpzd2FwKG1faXM4Qml0LCBzdHJpbmdCdWlsZGVy
Lm1faXM4Qml0KTsKKyAgICAgICAgc3RkOjpzd2FwKG1fZmFpbGVkLCBzdHJpbmdCdWlsZGVyLm1f
ZmFpbGVkKTsKICAgICAgICAgc3RkOjpzd2FwKG1fYnVmZmVyQ2hhcmFjdGVyczgsIHN0cmluZ0J1
aWxkZXIubV9idWZmZXJDaGFyYWN0ZXJzOCk7CiAgICAgICAgIEFTU0VSVCghbV9idWZmZXIgfHwg
bV9idWZmZXItPmxlbmd0aCgpID49IG1fbGVuZ3RoKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAg
dm9pZCBhbGxvY2F0ZUJ1ZmZlcihjb25zdCBMQ2hhciogY3VycmVudENoYXJhY3RlcnMsIHVuc2ln
bmVkIHJlcXVpcmVkTGVuZ3RoKTsKLSAgICB2b2lkIGFsbG9jYXRlQnVmZmVyKGNvbnN0IFVDaGFy
KiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpOwotICAgIHZvaWQg
YWxsb2NhdGVCdWZmZXJVcENvbnZlcnQoY29uc3QgTENoYXIqIGN1cnJlbnRDaGFyYWN0ZXJzLCB1
bnNpZ25lZCByZXF1aXJlZExlbmd0aCk7CisgICAgRmFsbGlibGU8PiBhbGxvY2F0ZUJ1ZmZlcihj
b25zdCBMQ2hhciogY3VycmVudENoYXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKTsK
KyAgICBGYWxsaWJsZTw+IGFsbG9jYXRlQnVmZmVyKGNvbnN0IFVDaGFyKiBjdXJyZW50Q2hhcmFj
dGVycywgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpOworICAgIEZhbGxpYmxlPD4gYWxsb2NhdGVC
dWZmZXJVcENvbnZlcnQoY29uc3QgTENoYXIqIGN1cnJlbnRDaGFyYWN0ZXJzLCB1bnNpZ25lZCBy
ZXF1aXJlZExlbmd0aCk7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgotICAgIHZv
aWQgcmVhbGxvY2F0ZUJ1ZmZlcih1bnNpZ25lZCByZXF1aXJlZExlbmd0aCk7CisgICAgRmFsbGli
bGU8PiByZWFsbG9jYXRlQnVmZmVyKHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKTsKICAgICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci0gICAgQUxXQVlTX0lOTElORSBDaGFyVHlwZSogYXBw
ZW5kVW5pbml0aWFsaXplZCh1bnNpZ25lZCBsZW5ndGgpOworICAgIEFMV0FZU19JTkxJTkUgRmFs
bGlibGU8Q2hhclR5cGUqPiBhcHBlbmRVbmluaXRpYWxpemVkKHVuc2lnbmVkIGxlbmd0aCk7CiAg
ICAgdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgotICAgIENoYXJUeXBlKiBhcHBlbmRVbmlu
aXRpYWxpemVkU2xvdyh1bnNpZ25lZCBsZW5ndGgpOworICAgIEZhbGxpYmxlPENoYXJUeXBlKj4g
YXBwZW5kVW5pbml0aWFsaXplZFNsb3codW5zaWduZWQgbGVuZ3RoKTsKICAgICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgQ2hhclR5cGU+Ci0gICAgQUxXQVlTX0lOTElORSBDaGFyVHlwZSAqIGdldEJ1ZmZl
ckNoYXJhY3RlcnMoKTsKKyAgICBBTFdBWVNfSU5MSU5FIENoYXJUeXBlKiBnZXRCdWZmZXJDaGFy
YWN0ZXJzKCk7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVpZnlTdHJpbmcoKSBjb25z
dDsKKyAgICBXQVJOX1VOVVNFRF9SRVRVUk4gVW5leHBlY3RlZDxGYWlsdXJlPiB3b3VsZE92ZXJm
bG93KCk7CisgICAgV0FSTl9VTlVTRURfUkVUVVJOIFVuZXhwZWN0ZWQ8RmFpbHVyZT4gb3V0T2ZN
ZW1vcnkoKTsKIAotICAgIHVuc2lnbmVkIG1fbGVuZ3RoOworICAgIHVuc2lnbmVkIG1fbGVuZ3Ro
IHsgMCB9OwogICAgIG11dGFibGUgU3RyaW5nIG1fc3RyaW5nOwogICAgIFJlZlB0cjxTdHJpbmdJ
bXBsPiBtX2J1ZmZlcjsKLSAgICBib29sIG1faXM4Qml0OworICAgIGJvb2wgbV9pczhCaXQgeyB0
cnVlIH07CisgICAgYm9vbCBtX2ZhaWxlZCB7IGZhbHNlIH07CiAgICAgdW5pb24gewogICAgICAg
ICBMQ2hhciogbV9idWZmZXJDaGFyYWN0ZXJzODsKICAgICAgICAgVUNoYXIqIG1fYnVmZmVyQ2hh
cmFjdGVyczE2OwpAQCAtMzMzLDIwICszNjUsNDggQEAgQUxXQVlTX0lOTElORSBVQ2hhciogU3Ry
aW5nQnVpbGRlcjo6Z2V0QnVmZmVyQ2hhcmFjdGVyczxVQ2hhcj4oKQogfSAgICAKIAogdGVtcGxh
dGUgPHR5cGVuYW1lIENoYXJUeXBlPgotYm9vbCBlcXVhbChjb25zdCBTdHJpbmdCdWlsZGVyJiBz
LCBjb25zdCBDaGFyVHlwZSogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpCitpbmxpbmUgYm9vbCBl
cXVhbChjb25zdCBTdHJpbmdCdWlsZGVyJiBzLCBjb25zdCBDaGFyVHlwZSogYnVmZmVyLCB1bnNp
Z25lZCBsZW5ndGgpCiB7CisgICAgaWYgKHMuZmFpbGVkKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKwogICAgIGlmIChzLmxlbmd0aCgpICE9IGxlbmd0aCkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgaWYgKHMuaXM4Qml0KCkpCi0gICAgICAgIHJldHVybiBlcXVhbChzLmNoYXJhY3Rl
cnM4KCksIGJ1ZmZlciwgbGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIGVxdWFsKCpzLmNoYXJhY3Rl
cnM4KCksIGJ1ZmZlciwgbGVuZ3RoKTsKIAotICAgIHJldHVybiBlcXVhbChzLmNoYXJhY3RlcnMx
NigpLCBidWZmZXIsIGxlbmd0aCk7CisgICAgcmV0dXJuIGVxdWFsKCpzLmNoYXJhY3RlcnMxNigp
LCBidWZmZXIsIGxlbmd0aCk7Cit9CisKK2lubGluZSBib29sIGVxdWFsKGNvbnN0IFN0cmluZ0J1
aWxkZXImIGEsIGNvbnN0IFN0cmluZ0J1aWxkZXImIGIpCit7CisgICAgaWYgKGEuZmFpbGVkKCkg
fHwgYi5mYWlsZWQoKSkKKyAgICAgICAgcmV0dXJuIGEuZmFpbGVkKCkgPT0gYi5mYWlsZWQoKTsK
KworICAgIGlmIChhLmxlbmd0aCgpICE9IGIubGVuZ3RoKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGlmICghYS5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBp
ZiAoYS5pczhCaXQoKSkgeworICAgICAgICBpZiAoYi5pczhCaXQoKSkKKyAgICAgICAgICAgIHJl
dHVybiBlcXVhbCgqYS5jaGFyYWN0ZXJzOCgpLCAqYi5jaGFyYWN0ZXJzOCgpLCBhLmxlbmd0aCgp
KTsKKyAgICAgICAgcmV0dXJuIGVxdWFsKCphLmNoYXJhY3RlcnM4KCksICpiLmNoYXJhY3RlcnMx
NigpLCBhLmxlbmd0aCgpKTsKKyAgICB9CisKKyAgICBpZiAoYi5pczhCaXQoKSkKKyAgICAgICAg
cmV0dXJuIGVxdWFsKCphLmNoYXJhY3RlcnMxNigpLCAqYi5jaGFyYWN0ZXJzOCgpLCBhLmxlbmd0
aCgpKTsKKyAgICByZXR1cm4gZXF1YWwoKmEuY2hhcmFjdGVyczE2KCksICpiLmNoYXJhY3RlcnMx
NigpLCBhLmxlbmd0aCgpKTsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFN0cmluZ1R5cGU+Ci1i
b29sIGVxdWFsKGNvbnN0IFN0cmluZ0J1aWxkZXImIGEsIGNvbnN0IFN0cmluZ1R5cGUmIGIpCitp
bmxpbmUgYm9vbCBlcXVhbChjb25zdCBTdHJpbmdCdWlsZGVyJiBhLCBjb25zdCBTdHJpbmdUeXBl
JiBiKQogeworICAgIGlmIChhLmZhaWxlZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAg
ICBpZiAoYS5sZW5ndGgoKSAhPSBiLmxlbmd0aCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
QEAgLTM1NSwxMyArNDE1LDEzIEBAIGJvb2wgZXF1YWwoY29uc3QgU3RyaW5nQnVpbGRlciYgYSwg
Y29uc3QgU3RyaW5nVHlwZSYgYikKIAogICAgIGlmIChhLmlzOEJpdCgpKSB7CiAgICAgICAgIGlm
IChiLmlzOEJpdCgpKQotICAgICAgICAgICAgcmV0dXJuIGVxdWFsKGEuY2hhcmFjdGVyczgoKSwg
Yi5jaGFyYWN0ZXJzOCgpLCBhLmxlbmd0aCgpKTsKLSAgICAgICAgcmV0dXJuIGVxdWFsKGEuY2hh
cmFjdGVyczgoKSwgYi5jaGFyYWN0ZXJzMTYoKSwgYS5sZW5ndGgoKSk7CisgICAgICAgICAgICBy
ZXR1cm4gZXF1YWwoKmEuY2hhcmFjdGVyczgoKSwgYi5jaGFyYWN0ZXJzOCgpLCBhLmxlbmd0aCgp
KTsKKyAgICAgICAgcmV0dXJuIGVxdWFsKCphLmNoYXJhY3RlcnM4KCksIGIuY2hhcmFjdGVyczE2
KCksIGEubGVuZ3RoKCkpOwogICAgIH0KIAogICAgIGlmIChiLmlzOEJpdCgpKQotICAgICAgICBy
ZXR1cm4gZXF1YWwoYS5jaGFyYWN0ZXJzMTYoKSwgYi5jaGFyYWN0ZXJzOCgpLCBhLmxlbmd0aCgp
KTsKLSAgICByZXR1cm4gZXF1YWwoYS5jaGFyYWN0ZXJzMTYoKSwgYi5jaGFyYWN0ZXJzMTYoKSwg
YS5sZW5ndGgoKSk7CisgICAgICAgIHJldHVybiBlcXVhbCgqYS5jaGFyYWN0ZXJzMTYoKSwgYi5j
aGFyYWN0ZXJzOCgpLCBhLmxlbmd0aCgpKTsKKyAgICByZXR1cm4gZXF1YWwoKmEuY2hhcmFjdGVy
czE2KCksIGIuY2hhcmFjdGVyczE2KCksIGEubGVuZ3RoKCkpOwogfQogCiBpbmxpbmUgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IFN0cmluZ0J1aWxkZXImIGEsIGNvbnN0IFN0cmluZ0J1aWxkZXImIGIp
IHsgcmV0dXJuIGVxdWFsKGEsIGIpOyB9CkBAIC0zNzIsOSArNDMyLDEyIEBAIGlubGluZSBib29s
IG9wZXJhdG9yPT0oY29uc3QgU3RyaW5nJiBhLCBjb25zdCBTdHJpbmdCdWlsZGVyJiBiKSB7IHJl
dHVybiBlcXVhbChiCiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFN0cmluZyYgYSwgY29u
c3QgU3RyaW5nQnVpbGRlciYgYikgeyByZXR1cm4gIWVxdWFsKGIsIGEpOyB9CiAKIHRlbXBsYXRl
PD4gc3RydWN0IEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb25UcmFpdDxTdHJpbmdCdWlsZGVyPiB7
Ci0gICAgdXNpbmcgUmV0dXJuVHlwZSA9IHZvaWQ7CisgICAgdXNpbmcgUmV0dXJuVHlwZSA9IFN0
cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD47CiAgICAgdXNpbmcgQWRkaXRpb25hbEFyZ3VtZW50VHlw
ZSA9IFN0cmluZ0J1aWxkZXI7Ci0gICAgc3RhdGljIHZvaWQgZmx1c2goTENoYXIqIGNoYXJhY3Rl
cnMsIHVuc2lnbmVkIGxlbmd0aCwgU3RyaW5nQnVpbGRlciogc3RyaW5nQnVpbGRlcikgeyBzdHJp
bmdCdWlsZGVyLT5hcHBlbmQoY2hhcmFjdGVycywgbGVuZ3RoKTsgfQorICAgIHN0YXRpYyBSZXR1
cm5UeXBlIGZsdXNoKExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIFN0cmluZ0J1
aWxkZXIqIHN0cmluZ0J1aWxkZXIpCisgICAgeworICAgICAgICByZXR1cm4gc3RyaW5nQnVpbGRl
ci0+YXBwZW5kKGNoYXJhY3RlcnMsIGxlbmd0aCk7CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXJKU09O
LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlckpTT04uY3BwCmluZGV4IDIy
NjI5NWUuLjcwZGJiODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVp
bGRlckpTT04uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlckpTT04u
Y3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMywgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAt
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAx
NyBZdXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+LiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICogQ29weXJpZ2h0IChDKSAyMDE3IE1vemlsbGEgRm91bmRhdGlvbi4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KQEAgLTc0LDcgKzc0LDcgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgdm9pZCBh
cHBlbmRRdW90ZWRKU09OU3RyaW5nSW50ZXJuYWwoT3V0cHV0Q2hhcmFjdGVyVHlwZSomIG8KICAg
ICB9CiB9CiAKLWJvb2wgU3RyaW5nQnVpbGRlcjo6YXBwZW5kUXVvdGVkSlNPTlN0cmluZyhjb25z
dCBTdHJpbmcmIHN0cmluZykKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRl
cjo6YXBwZW5kUXVvdGVkSlNPTlN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKICAgICAv
LyBNYWtlIHN1cmUgd2UgaGF2ZSBlbm91Z2ggYnVmZmVyIHNwYWNlIHRvIGFwcGVuZCB0aGlzIHN0
cmluZyB3aXRob3V0IGhhdmluZwogICAgIC8vIHRvIHdvcnJ5IGFib3V0IHJlYWxsb2NhdGluZyBp
biB0aGUgbWlkZGxlLgpAQCAtODUsMjAgKzg1LDIxIEBAIGJvb2wgU3RyaW5nQnVpbGRlcjo6YXBw
ZW5kUXVvdGVkSlNPTlN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKICAgICBtYXhpbXVtQ2Fw
YWNpdHlSZXF1aXJlZCArPSAyICsgc3RyaW5nTGVuZ3RoICogNjsKICAgICB1bnNpZ25lZCBhbGxv
Y2F0aW9uU2l6ZTsKICAgICBpZiAoQ2hlY2tlZFN0YXRlOjpEaWRPdmVyZmxvdyA9PSBtYXhpbXVt
Q2FwYWNpdHlSZXF1aXJlZC5zYWZlR2V0KGFsbG9jYXRpb25TaXplKSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICByZXR1cm4gd291bGRPdmVyZmxvdygpOwogICAgIC8vIFRoaXMgbWF4
KCkgaXMgaGVyZSB0byBhbGxvdyB1cyB0byBhbGxvY2F0ZSBzaXplcyBiZXR3ZWVuIHRoZSByYW5n
ZSBbMl4zMSwgMl4zMiAtIDJdIGJlY2F1c2Ugcm91bmRVcFRvUG93ZXJPZlR3bygxPDwzMSArIHNv
bWUgaW50IHNtYWxsZXIgdGhhbiAxPDwzMSkgPT0gMC4KICAgICAvLyBGSVhNRTogcm91bmRVcFRv
UG93ZXJPZlR3byBzaG91bGQgdGFrZSBDaGVja2VkPHVuc2lnbmVkPiBhbmQgYWJvcnQgaWYgaXQg
ZmFpbHMgdG8gcm91bmQgdXAuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3NjA4NgogICAgIGFsbG9jYXRpb25TaXplID0gc3RkOjptYXgoYWxsb2NhdGlv
blNpemUsIHJvdW5kVXBUb1Bvd2VyT2ZUd28oYWxsb2NhdGlvblNpemUpKTsKIAotICAgIC8vIEFs
bG9jYXRpbmcgdGhpcyBtdWNoIHdpbGwgZGVmaW5pdGVseSBmYWlsLgotICAgIGlmIChhbGxvY2F0
aW9uU2l6ZSA+PSAweDgwMDAwMDAwKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAo
aXM4Qml0KCkgJiYgIXN0cmluZy5pczhCaXQoKSkKLSAgICAgICAgYWxsb2NhdGVCdWZmZXJVcENv
bnZlcnQobV9idWZmZXJDaGFyYWN0ZXJzOCwgYWxsb2NhdGlvblNpemUpOwotICAgIGVsc2UKLSAg
ICAgICAgcmVzZXJ2ZUNhcGFjaXR5KGFsbG9jYXRpb25TaXplKTsKKyAgICBpZiAoaXM4Qml0KCkg
JiYgIXN0cmluZy5pczhCaXQoKSkgeworICAgICAgICBhdXRvIGFsbG9jYXRlZCA9IGFsbG9jYXRl
QnVmZmVyVXBDb252ZXJ0KG1fYnVmZmVyQ2hhcmFjdGVyczgsIGFsbG9jYXRpb25TaXplKTsKKyAg
ICAgICAgaWYgKCFhbGxvY2F0ZWQpCisgICAgICAgICAgICByZXR1cm4gYWxsb2NhdGVkOworICAg
IH0gZWxzZSB7CisgICAgICAgIGF1dG8gcmVzZXJ2ZWQgPSByZXNlcnZlQ2FwYWNpdHkoYWxsb2Nh
dGlvblNpemUpOworICAgICAgICBpZiAoIXJlc2VydmVkKQorICAgICAgICAgICAgcmV0dXJuIHJl
c2VydmVkOworICAgIH0KICAgICBBU1NFUlQobV9idWZmZXItPmxlbmd0aCgpID49IGFsbG9jYXRp
b25TaXplKTsKIAogICAgIGlmIChpczhCaXQoKSkgewpAQCAtMTE5LDcgKzEyMCw3IEBAIGJvb2wg
U3RyaW5nQnVpbGRlcjo6YXBwZW5kUXVvdGVkSlNPTlN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmlu
ZykKICAgICAgICAgbV9sZW5ndGggPSBvdXRwdXQgLSBtX2J1ZmZlckNoYXJhY3RlcnMxNjsKICAg
ICB9CiAgICAgQVNTRVJUKG1fYnVmZmVyLT5sZW5ndGgoKSA+PSBtX2xlbmd0aCk7Ci0gICAgcmV0
dXJuIHRydWU7CisgICAgcmV0dXJuIHsgfTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwIGIvU291cmNlL1dURi93
dGYvdGV4dC9TdHJpbmdJbXBsLmNwcAppbmRleCA3NzQ4NzZiLi5lZWQwOWFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvU3RyaW5nSW1wbC5jcHAKQEAgLTIwNiwyMiArMjA2LDI0IEBAIFJlZjxTdHJpbmdJbXBs
PiBTdHJpbmdJbXBsOjpjcmVhdGVVbmluaXRpYWxpemVkKHVuc2lnbmVkIGxlbmd0aCwgVUNoYXIq
JiBkYXRhKQogICAgIHJldHVybiBjcmVhdGVVbmluaXRpYWxpemVkSW50ZXJuYWwobGVuZ3RoLCBk
YXRhKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gaW5saW5lIFJlZjxT
dHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpyZWFsbG9jYXRlSW50ZXJuYWwoUmVmPFN0cmluZ0ltcGw+
JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2lnbmVkIGxlbmd0aCwgQ2hhcmFjdGVyVHlwZSomIGRhdGEp
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBpbmxpbmUgUmVmUHRyPFN0cmluZ0lt
cGw+IFN0cmluZ0ltcGw6OnJlYWxsb2NhdGVJbnRlcm5hbChSZWY8U3RyaW5nSW1wbD4mJiBvcmln
aW5hbFN0cmluZywgdW5zaWduZWQgbGVuZ3RoLCBDaGFyYWN0ZXJUeXBlKiYgZGF0YSkKIHsKICAg
ICBBU1NFUlQob3JpZ2luYWxTdHJpbmctPmhhc09uZVJlZigpKTsKICAgICBBU1NFUlQob3JpZ2lu
YWxTdHJpbmctPmJ1ZmZlck93bmVyc2hpcCgpID09IEJ1ZmZlckludGVybmFsKTsKIAogICAgIGlm
ICghbGVuZ3RoKSB7CiAgICAgICAgIGRhdGEgPSAwOwotICAgICAgICByZXR1cm4gKmVtcHR5KCk7
CisgICAgICAgIHJldHVybiBlbXB0eSgpOwogICAgIH0KIAogICAgIC8vIFNhbWUgYXMgY3JlYXRl
VW5pbml0aWFsaXplZCgpIGV4Y2VwdCBoZXJlIHdlIHVzZSBzdHJpbmdSZWFsbG9jLgotICAgIGlm
IChsZW5ndGggPiAoKHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSAtIHNpemVv
ZihTdHJpbmdJbXBsKSkgLyBzaXplb2YoQ2hhcmFjdGVyVHlwZSkpKQotICAgICAgICBDUkFTSCgp
OworICAgIGlmIChVTkxJS0VMWShsZW5ndGggPiAoKHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWdu
ZWQ+OjptYXgoKSAtIHNpemVvZihTdHJpbmdJbXBsKSkgLyBzaXplb2YoQ2hhcmFjdGVyVHlwZSkp
KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBvcmlnaW5hbFN0cmluZy0+flN0cmlu
Z0ltcGwoKTsKICAgICBhdXRvKiBzdHJpbmcgPSBzdGF0aWNfY2FzdDxTdHJpbmdJbXBsKj4oc3Ry
aW5nUmVhbGxvYygmb3JpZ2luYWxTdHJpbmcubGVha1JlZigpLCBhbGxvY2F0aW9uU2l6ZTxDaGFy
YWN0ZXJUeXBlPihsZW5ndGgpKSk7CisgICAgaWYgKFVOTElLRUxZKCFzdHJpbmcpKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGRhdGEgPSBzdHJpbmctPnRhaWxQb2ludGVyPENoYXJh
Y3RlclR5cGU+KCk7CiAgICAgcmV0dXJuIGNvbnN0cnVjdEludGVybmFsPENoYXJhY3RlclR5cGU+
KCpzdHJpbmcsIGxlbmd0aCk7CkBAIC0yMzAsMTMgKzIzMiwzMyBAQCB0ZW1wbGF0ZTx0eXBlbmFt
ZSBDaGFyYWN0ZXJUeXBlPiBpbmxpbmUgUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OnJlYWxs
b2NhdGVJbgogUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OnJlYWxsb2NhdGUoUmVmPFN0cmlu
Z0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2lnbmVkIGxlbmd0aCwgTENoYXIqJiBkYXRhKQog
ewogICAgIEFTU0VSVChvcmlnaW5hbFN0cmluZy0+aXM4Qml0KCkpOwotICAgIHJldHVybiByZWFs
bG9jYXRlSW50ZXJuYWwoV1RGTW92ZShvcmlnaW5hbFN0cmluZyksIGxlbmd0aCwgZGF0YSk7Cisg
ICAgaWYgKGF1dG8gcmVhbGxvY2F0ZWQgPSByZWFsbG9jYXRlSW50ZXJuYWwoV1RGTW92ZShvcmln
aW5hbFN0cmluZyksIGxlbmd0aCwgZGF0YSkpCisgICAgICAgIHJldHVybiAqcmVhbGxvY2F0ZWQ7
CisgICAgQ1JBU0goKTsKIH0KIAogUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OnJlYWxsb2Nh
dGUoUmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2lnbmVkIGxlbmd0aCwgVUNo
YXIqJiBkYXRhKQogewogICAgIEFTU0VSVCghb3JpZ2luYWxTdHJpbmctPmlzOEJpdCgpKTsKLSAg
ICByZXR1cm4gcmVhbGxvY2F0ZUludGVybmFsKFdURk1vdmUob3JpZ2luYWxTdHJpbmcpLCBsZW5n
dGgsIGRhdGEpOworICAgIGlmIChhdXRvIHJlYWxsb2NhdGVkID0gcmVhbGxvY2F0ZUludGVybmFs
KFdURk1vdmUob3JpZ2luYWxTdHJpbmcpLCBsZW5ndGgsIGRhdGEpKQorICAgICAgICByZXR1cm4g
KnJlYWxsb2NhdGVkOworICAgIENSQVNIKCk7Cit9CisKK1JlZlB0cjxTdHJpbmdJbXBsPiBTdHJp
bmdJbXBsOjp0cnlSZWFsbG9jYXRlKFJlZjxTdHJpbmdJbXBsPiYmIG9yaWdpbmFsU3RyaW5nLCB1
bnNpZ25lZCBsZW5ndGgsIExDaGFyKiYgZGF0YSkKK3sKKyAgICBBU1NFUlQob3JpZ2luYWxTdHJp
bmctPmlzOEJpdCgpKTsKKyAgICBpZiAoYXV0byByZWFsbG9jYXRlZCA9IHJlYWxsb2NhdGVJbnRl
cm5hbChXVEZNb3ZlKG9yaWdpbmFsU3RyaW5nKSwgbGVuZ3RoLCBkYXRhKSkKKyAgICAgICAgcmV0
dXJuIHJlYWxsb2NhdGVkLmdldCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8
U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6dHJ5UmVhbGxvY2F0ZShSZWY8U3RyaW5nSW1wbD4mJiBv
cmlnaW5hbFN0cmluZywgdW5zaWduZWQgbGVuZ3RoLCBVQ2hhciomIGRhdGEpCit7CisgICAgQVNT
RVJUKCFvcmlnaW5hbFN0cmluZy0+aXM4Qml0KCkpOworICAgIGlmIChhdXRvIHJlYWxsb2NhdGVk
ID0gcmVhbGxvY2F0ZUludGVybmFsKFdURk1vdmUob3JpZ2luYWxTdHJpbmcpLCBsZW5ndGgsIGRh
dGEpKQorICAgICAgICByZXR1cm4gcmVhbGxvY2F0ZWQuZ2V0KCk7CisgICAgcmV0dXJuIG51bGxw
dHI7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IGlubGluZSBSZWY8U3Ry
aW5nSW1wbD4gU3RyaW5nSW1wbDo6Y3JlYXRlSW50ZXJuYWwoY29uc3QgQ2hhcmFjdGVyVHlwZSog
Y2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dGV4dC9TdHJpbmdJbXBsLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAppbmRl
eCA2MTZkYTI1Li44ZGY5ZTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmlu
Z0ltcGwuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaApAQCAtMjI5LDYg
KzIyOSw3IEBAIHB1YmxpYzoKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJlZjxTdHJp
bmdJbXBsPiBjcmVhdGUoY29uc3QgTENoYXIqKTsKICAgICBBTFdBWVNfSU5MSU5FIHN0YXRpYyBS
ZWY8U3RyaW5nSW1wbD4gY3JlYXRlKGNvbnN0IGNoYXIqIHN0cmluZykgeyByZXR1cm4gY3JlYXRl
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihzdHJpbmcpKTsgfQogCisgICAgc3RhdGlj
IFJlZlB0cjxTdHJpbmdJbXBsPiB0cnlDcmVhdGVTdWJzdHJpbmdTaGFyaW5nSW1wbChTdHJpbmdJ
bXBsJiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpOwogICAgIHN0YXRpYyBSZWY8
U3RyaW5nSW1wbD4gY3JlYXRlU3Vic3RyaW5nU2hhcmluZ0ltcGwoU3RyaW5nSW1wbCYsIHVuc2ln
bmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKIAogICAgIHRlbXBsYXRlPHVuc2lnbmVkIGNo
YXJhY3RlckNvdW50PiBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0ZUZyb21MaXRlcmFsKGNv
bnN0IGNoYXIgKCYpW2NoYXJhY3RlckNvdW50XSk7CkBAIC0yNDgsNiArMjQ5LDggQEAgcHVibGlj
OgogICAgIC8vIHRoZSBvcmlnaW5hbFN0cmluZyBjYW4ndCBiZSB1c2VkIGFmdGVyIHRoaXMgZnVu
Y3Rpb24uCiAgICAgc3RhdGljIFJlZjxTdHJpbmdJbXBsPiByZWFsbG9jYXRlKFJlZjxTdHJpbmdJ
bXBsPiYmIG9yaWdpbmFsU3RyaW5nLCB1bnNpZ25lZCBsZW5ndGgsIExDaGFyKiYgZGF0YSk7CiAg
ICAgc3RhdGljIFJlZjxTdHJpbmdJbXBsPiByZWFsbG9jYXRlKFJlZjxTdHJpbmdJbXBsPiYmIG9y
aWdpbmFsU3RyaW5nLCB1bnNpZ25lZCBsZW5ndGgsIFVDaGFyKiYgZGF0YSk7CisgICAgc3RhdGlj
IFJlZlB0cjxTdHJpbmdJbXBsPiB0cnlSZWFsbG9jYXRlKFJlZjxTdHJpbmdJbXBsPiYmIG9yaWdp
bmFsU3RyaW5nLCB1bnNpZ25lZCBsZW5ndGgsIExDaGFyKiYgZGF0YSk7CisgICAgc3RhdGljIFJl
ZlB0cjxTdHJpbmdJbXBsPiB0cnlSZWFsbG9jYXRlKFJlZjxTdHJpbmdJbXBsPiYmIG9yaWdpbmFs
U3RyaW5nLCB1bnNpZ25lZCBsZW5ndGgsIFVDaGFyKiYgZGF0YSk7CiAKICAgICBzdGF0aWMgdW5z
aWduZWQgZmxhZ3NPZmZzZXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoU3RyaW5nSW1wbCwg
bV9oYXNoQW5kRmxhZ3MpOyB9CiAgICAgc3RhdGljIHVuc2lnbmVkIGZsYWdJczhCaXQoKSB7IHJl
dHVybiBzX2hhc2hGbGFnOEJpdEJ1ZmZlcjsgfQpAQCAtNTAzLDcgKzUwNiw3IEBAIHByaXZhdGU6
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gc3RhdGljIFJlZjxTdHJpbmdJ
bXBsPiBjb25zdHJ1Y3RJbnRlcm5hbChTdHJpbmdJbXBsJiwgdW5zaWduZWQpOwogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHN0YXRpYyBSZWY8U3RyaW5nSW1wbD4gY3JlYXRl
VW5pbml0aWFsaXplZEludGVybmFsKHVuc2lnbmVkLCBDaGFyYWN0ZXJUeXBlKiYpOwogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHN0YXRpYyBSZWY8U3RyaW5nSW1wbD4gY3Jl
YXRlVW5pbml0aWFsaXplZEludGVybmFsTm9uRW1wdHkodW5zaWduZWQsIENoYXJhY3RlclR5cGUq
Jik7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gc3RhdGljIFJlZjxTdHJp
bmdJbXBsPiByZWFsbG9jYXRlSW50ZXJuYWwoUmVmPFN0cmluZ0ltcGw+JiYsIHVuc2lnbmVkLCBD
aGFyYWN0ZXJUeXBlKiYpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHN0
YXRpYyBSZWZQdHI8U3RyaW5nSW1wbD4gcmVhbGxvY2F0ZUludGVybmFsKFJlZjxTdHJpbmdJbXBs
PiYmLCB1bnNpZ25lZCwgQ2hhcmFjdGVyVHlwZSomKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBD
aGFyYWN0ZXJUeXBlPiBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0ZUludGVybmFsKGNvbnN0
IENoYXJhY3RlclR5cGUqLCB1bnNpZ25lZCk7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIE5FVkVS
X0lOTElORSB1bnNpZ25lZCBoYXNoU2xvd0Nhc2UoKSBjb25zdDsKIApAQCAtOTE0LDIyICs5MTcs
MzEgQEAgdGVtcGxhdGU8c2l6ZV90IGlubGluZUNhcGFjaXR5PiBpbmxpbmUgUmVmPFN0cmluZ0lt
cGw+IFN0cmluZ0ltcGw6OmNyZWF0ZThCaXRJZlAKICAgICByZXR1cm4gY3JlYXRlOEJpdElmUG9z
c2libGUodmVjdG9yLmRhdGEoKSwgdmVjdG9yLnNpemUoKSk7CiB9CiAKLUFMV0FZU19JTkxJTkUg
UmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OmNyZWF0ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKFN0
cmluZ0ltcGwmIHJlcCwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCitBTFdBWVNf
SU5MSU5FIFJlZlB0cjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjp0cnlDcmVhdGVTdWJzdHJpbmdT
aGFyaW5nSW1wbChTdHJpbmdJbXBsJiByZXAsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVu
Z3RoKQogewogICAgIEFTU0VSVChsZW5ndGggPD0gcmVwLmxlbmd0aCgpKTsKIAogICAgIGlmICgh
bGVuZ3RoKQotICAgICAgICByZXR1cm4gKmVtcHR5KCk7CisgICAgICAgIHJldHVybiBlbXB0eSgp
OwogCiAgICAgYXV0byogb3duZXJSZXAgPSAoKHJlcC5idWZmZXJPd25lcnNoaXAoKSA9PSBCdWZm
ZXJTdWJzdHJpbmcpID8gcmVwLnN1YnN0cmluZ0J1ZmZlcigpIDogJnJlcCk7CiAKICAgICAvLyBX
ZSBhbGxvY2F0ZSBhIGJ1ZmZlciB0aGF0IGNvbnRhaW5zIGJvdGggdGhlIFN0cmluZ0ltcGwgc3Ry
dWN0IGFzIHdlbGwgYXMgdGhlIHBvaW50ZXIgdG8gdGhlIG93bmVyIHN0cmluZy4KICAgICBhdXRv
KiBzdHJpbmdJbXBsID0gc3RhdGljX2Nhc3Q8U3RyaW5nSW1wbCo+KHN0cmluZ01hbGxvYyhhbGxv
Y2F0aW9uU2l6ZTxTdHJpbmdJbXBsKj4oMSkpKTsKKyAgICBpZiAoIXN0cmluZ0ltcGwpCisgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIGlmIChyZXAuaXM4Qml0KCkpCiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IChOb3ROdWxsLCBzdHJpbmdJbXBsKSBTdHJpbmdJbXBsKHJlcC5tX2Rh
dGE4ICsgb2Zmc2V0LCBsZW5ndGgsICpvd25lclJlcCkpOwogICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IChOb3ROdWxsLCBzdHJpbmdJbXBsKSBTdHJpbmdJbXBsKHJlcC5tX2RhdGExNiArIG9mZnNl
dCwgbGVuZ3RoLCAqb3duZXJSZXApKTsKIH0KIAorQUxXQVlTX0lOTElORSBSZWY8U3RyaW5nSW1w
bD4gU3RyaW5nSW1wbDo6Y3JlYXRlU3Vic3RyaW5nU2hhcmluZ0ltcGwoU3RyaW5nSW1wbCYgcmVw
LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICBpZiAoYXV0byBjcmVh
dGVkID0gdHJ5Q3JlYXRlU3Vic3RyaW5nU2hhcmluZ0ltcGwocmVwLCBvZmZzZXQsIGxlbmd0aCkp
CisgICAgICAgIHJldHVybiAqY3JlYXRlZDsKKyAgICBDUkFTSCgpOworfQorCiB0ZW1wbGF0ZTx1
bnNpZ25lZCBjaGFyYWN0ZXJDb3VudD4gQUxXQVlTX0lOTElORSBSZWY8U3RyaW5nSW1wbD4gU3Ry
aW5nSW1wbDo6Y3JlYXRlRnJvbUxpdGVyYWwoY29uc3QgY2hhciAoJmNoYXJhY3RlcnMpW2NoYXJh
Y3RlckNvdW50XSkKIHsKICAgICBDT01QSUxFX0FTU0VSVChjaGFyYWN0ZXJDb3VudCA+IDEsIFN0
cmluZ0ltcGxGcm9tTGl0ZXJhbE5vdEVtcHR5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvVGV4dFN0cmVhbS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRTdHJlYW0uY3Bw
CmluZGV4IGFhZjYxOTQuLmQzYjUzMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
VGV4dFN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0U3RyZWFtLmNwcApA
QCAtMTMyLDkgKzEzMiwxMSBAQCBUZXh0U3RyZWFtJiBUZXh0U3RyZWFtOjpvcGVyYXRvcjw8KGNv
bnN0IEZvcm1hdE51bWJlclJlc3BlY3RpbmdJbnRlZ2VycyYgbnVtYmVyVAogCiBTdHJpbmcgVGV4
dFN0cmVhbTo6cmVsZWFzZSgpCiB7Ci0gICAgU3RyaW5nIHJlc3VsdCA9IG1fdGV4dC50b1N0cmlu
ZygpOwotICAgIG1fdGV4dC5jbGVhcigpOwotICAgIHJldHVybiByZXN1bHQ7CisgICAgaWYgKGF1
dG8gcmVzdWx0ID0gbV90ZXh0LnRvU3RyaW5nKCkpIHsKKyAgICAgICAgbV90ZXh0LmNsZWFyKCk7
CisgICAgICAgIHJldHVybiAqcmVzdWx0OworICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiB2b2lk
IFRleHRTdHJlYW06OnN0YXJ0R3JvdXAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDUxZDhhZDAuLjUxM2EwMmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MTMgQEAKKzIwMTgtMDQtMjYgIEpGIEJhc3RpZW4gIDxq
ZmJhc3RpZW5AYXBwbGUuY29tPgorCisgICAgICAgIFN0cmluZ0J1aWxkZXIgaXMgZmFsbGlibGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTA0OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0cmluZ0J1
aWxkZXIgY2FuIGZhaWwgd2hlbiBhbGxvY2F0aW5nIG1lbW9yeS4gU3RyaW5nQnVpbGRlciBpcwor
ICAgICAgICBtb3N0bHkgdXNlZCB3aXRoIHVzZXIgaW5wdXQsIHdoaWNoIG9mdGVuIG1lYW5zIHRo
YXQganVzdCBjcmFzaGluZworICAgICAgICBpc24ndCB0aGUgcmlnaHQgb3V0Y29tZS4gT3VyIGZ1
enplcnMgb2Z0ZW4gZW5jb3VudGVyIHN1Y2ggdGhpbmdzCisgICAgICAgIGZvciBKYXZhU2NyaXB0
Q29yZSwgYW5kIHNvIGZhciB3ZSd2ZSBhcHBsaWVkIHBvaW50IHNvbHV0aW9ucy4gTm8KKyAgICAg
ICAgbW9yZSEKKworCisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50Q29u
dGFjdENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydCk6CisgICAgICAgICogTW9k
dWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVz
b2x2ZVJlbGF0aXZlVmlydHVhbFBhdGgpOgorICAgICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24v
R2VvbG9jYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6bG9nRXJyb3IpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
S2V5RGF0YTo6bG9nZ2luZ1N0cmluZyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCS2V5UGF0aC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsb2dnaW5nU3RyaW5nKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSW5kZXhWYWx1ZVN0b3JlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SW5kZXhWYWx1ZVN0b3JlOjpsb2dnaW5nU3RyaW5n
IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQ3Vy
c29yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6YnVpbGRJbmRleFN0YXRlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OmJ1aWxkT2JqZWN0U3RvcmVTdGF0ZW1l
bnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJEYXRhYmFzZUluZm8u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VJbmZvOjpsb2dnaW5nU3RyaW5nIGNv
bnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCT2JqZWN0U3RvcmVJ
bmZvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlSW5mbzo6bG9nZ2luZ1N0
cmluZyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNz
aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjptZWRpYVByb2R1Y2VyU3RhdGVTdHJp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6dG9TdHJpbmcp
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbHRlcklDRUNhbmRpZGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmZpbHRlclNEUCBjb25zdCk6CisgICAgICAgICog
TW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQ6OnlvdVR1YmVVUkxGcm9tQWJzb2x1dGVV
UkwpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmdlbmVyYXRlRGF0YWJhc2VGaWxlTmFtZSk6CisgICAgICAgICog
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjplbmNv
ZGVQcm90b2NvbFN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpqb2luU3RyaW5ncyk6CisgICAg
ICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlcjo6Y3JlYXRl
SGVhZGVyVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0RXh0ZW5zaW9u
RGlzcGF0Y2hlcjo6YWNjZXB0ZWRFeHRlbnNpb25zIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJl
c291cmNlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpob3N0TmFtZSk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudExvY2F0aW9uIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OldlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZW50SGFuZHNoYWtlTWVzc2FnZSBjb25z
dCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpzaG91bGRBZGRTcGFjZUJlZm9yZUFwcGVuZGluZ05leHRFbGVt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp0ZXh0VW5k
ZXJFbGVtZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0OjphY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25Gb3JDaGlsZHJlbiBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWNjZXNzaWJpbGl0eURlc2NyaXB0
aW9uRm9yRWxlbWVudHMgY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpz
dHJpbmdGb3JSYW5nZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpzdHJpbmdGb3JWaXNpYmxlUG9zaXRpb25SYW5nZSk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06CisgICAgICAgICgt
W1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIHZhbHVlRGVzY3JpcHRpb25Gb3JNZXRlcl0p
OgorICAgICAgICAoZm9ybWF0Rm9yRGVidWdnZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
RE9NQ29udmVydFN0cmluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RyaW5nVG9VU1ZTdHJp
bmcpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6dGhyb3dBcmd1bWVudE11c3RCZUVudW1FcnJvcik6CisgICAgICAg
IChXZWJDb3JlOjp0aHJvd0FyZ3VtZW50TXVzdEJlRnVuY3Rpb25FcnJvcik6CisgICAgICAgIChX
ZWJDb3JlOjp0aHJvd0FyZ3VtZW50VHlwZUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OnRocm93
UmVxdWlyZWRNZW1iZXJUeXBlRXJyb3IpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0Nv
bWJpbmVkVVJMRmlsdGVycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9u
czo6cHJlZml4VHJlZVZlcnRleFRvU3RyaW5nKToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9u
cy9Db250ZW50RXh0ZW5zaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNp
b25zOjpDb250ZW50RXh0ZW5zaW9uOjpjb21waWxlR2xvYmFsRGlzcGxheU5vbmVTdHlsZVNoZWV0
KToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OnJlc29sdmVQZW5kaW5n
RGlzcGxheU5vbmVBY3Rpb25zKToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50
RXh0ZW5zaW9uU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5z
aW9uczo6Q29udGVudEV4dGVuc2lvblN0eWxlU2hlZXQ6OmFkZERpc3BsYXlOb25lU2VsZWN0b3Ip
OgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL1Rlcm0uaDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRFeHRlbnNpb25zOjpUZXJtOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgICogY3Nz
L0NTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
U1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAg
ICAgICAqIGNzcy9DU1NCYXNpY1NoYXBlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpidWlsZENp
cmNsZVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpidWlsZEVsbGlwc2VTdHJpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6YnVpbGRQYXRoU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxk
UG9seWdvblN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpidWlsZEluc2V0U3RyaW5nKToKKyAg
ICAgICAgKiBjc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpi
dWlsZENzc1RleHQpOgorICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpjc3NU
ZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAg
ICAgICAqIGNzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0N1cnNvckltYWdlVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9D
U1NDdXN0b21JZGVudFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0N1c3RvbUlkZW50
VmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NGaWx0ZXJJbWFn
ZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZpbHRlckltYWdlVmFsdWU6OmN1c3Rv
bUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZVJ1bGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VSdWxlOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAg
KiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250
RmFjZVNyY1ZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTRm9u
dEZlYXR1cmVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmVhdHVyZVZhbHVl
OjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTRm9udFN0eWxlUmFuZ2VW
YWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250U3R5bGVSYW5nZVZhbHVlOjpjdXN0
b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTRm9udFN0eWxlVmFsdWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udFN0eWxlVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3Qp
OgorICAgICAgICAqIGNzcy9DU1NGb250VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
Rm9udFZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTRm9udFZh
cmlhdGlvblZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRWYXJpYXRpb25WYWx1
ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0Z1bmN0aW9uVmFsdWUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBj
b25zdCk6CisgICAgICAgICogY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTTGluZWFyR3JhZGllbnRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NSYWRpYWxHcmFkaWVudFZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbmljR3JhZGllbnRWYWx1ZTo6Y3VzdG9tQ1NTVGV4
dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0dyaWRBdXRvUmVwZWF0VmFsdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTR3JpZEF1dG9SZXBlYXRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25z
dCk6CisgICAgICAgICogY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25z
dCk6CisgICAgICAgICogY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTSW1hZ2VTZXRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3Nz
L0NTU0ltcG9ydFJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1wb3J0UnVsZTo6Y3Nz
VGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0tleWZyYW1lUnVsZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZVJ1bGVLZXlmcmFtZTo6a2V5VGV4dCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZVJ1bGVLZXlmcmFtZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogY3Nz
L0NTU0tleWZyYW1lc1J1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTS2V5ZnJhbWVzUnVs
ZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0xpbmVCb3hDb250YWluVmFsdWUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTGluZUJveENvbnRhaW5WYWx1ZTo6Y3VzdG9tQ1NT
VGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU01hcmt1cC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpzZXJpYWxpemVTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6c2VyaWFsaXplQXNTdHJp
bmdPckN1c3RvbUlkZW50KToKKyAgICAgICAgKiBjc3MvQ1NTTWVkaWFSdWxlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU01lZGlhUnVsZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogY3Nz
L0NTU05hbWVzcGFjZVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTmFtZXNwYWNlUnVs
ZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU1BhZ2VSdWxlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1BhZ2VSdWxlOjpzZWxlY3RvclRleHQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUGFnZVJ1bGU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NQ
cmltaXRpdmVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
Zm9ybWF0TnVtYmVyRm9yQ3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU1By
b3BlcnR5U291cmNlRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVNvdXJj
ZURhdGE6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnNlbGVjdG9yVGV4dCBjb25zdCk6CisgICAg
ICAgICogY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxl
Y3Rvckxpc3Q6OnNlbGVjdG9yc1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NTaGFkb3dW
YWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTaGFkb3dWYWx1ZTo6Y3VzdG9tQ1NTVGV4
dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU1N0eWxlUnVsZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NTdHlsZVJ1bGU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NTdHls
ZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2hlZXQ6OmFkZFJ1bGUpOgor
ICAgICAgICAqIGNzcy9DU1NTdXBwb3J0c1J1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
U3VwcG9ydHNSdWxlOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTVGltaW5nRnVu
Y3Rpb25WYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDdWJpY0JlemllclRpbWluZ0Z1
bmN0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
U3RlcHNUaW1pbmdGdW5jdGlvblZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU0ZyYW1lc1RpbWluZ0Z1bmN0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3ByaW5nVGltaW5nRnVuY3Rpb25WYWx1ZTo6Y3Vz
dG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU1ZhbHVlTGlzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NWYWx1ZUxpc3Q6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAg
ICAqIGNzcy9DU1NWYXJpYWJsZURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFyaWFi
bGVEYXRhOjpjb25zdW1lQW5kVXBkYXRlVG9rZW5zKToKKyAgICAgICAgKiBjc3MvRE9NQ1NTTmFt
ZXNwYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNTU05hbWVzcGFjZTo6ZXNjYXBlKToK
KyAgICAgICAgKiBjc3MvRE9NTWF0cml4UmVhZE9ubHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RE9NTWF0cml4UmVhZE9ubHk6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBjc3MvRGVwcmVj
YXRlZENTU09NVmFsdWVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NP
TVZhbHVlTGlzdDo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0ZvbnRGYWNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZvbnRGYWNlOjpzdHlsZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpGb250RmFjZTo6d2VpZ2h0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGYWNl
OjpzdHJldGNoIGNvbnN0KToKKyAgICAgICAgKiBjc3MvTWVkaWFMaXN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUXVlcnlTZXQ6Om1lZGlhVGV4dCBjb25zdCk6CisgICAgICAgICogY3Nz
L01lZGlhUXVlcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeTo6c2VyaWFsaXpl
IGNvbnN0KToKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFRdWVyeUV4cHJlc3Npb246OnNlcmlhbGl6ZSBjb25zdCk6CisgICAg
ICAgICogY3NzL1JlY3QuaDoKKyAgICAgICAgKiBjc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6Zm9udFZhbHVlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6Z2V0NFZhbHVlcyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OmdldExheWVyZWRTaG9ydGhhbmRWYWx1ZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OmdldFNob3J0aGFuZFZhbHVl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6Ym9yZGVyUHJvcGVy
dHlWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OmFzVGV4
dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OlByb3BlcnR5UmVm
ZXJlbmNlOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvV2ViS2l0Q1NTTWF0cml4LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdENTU01hdHJpeDo6dG9TdHJpbmcgY29uc3QpOgor
ICAgICAgICAqIGNzcy9XZWJLaXRDU1NWaWV3cG9ydFJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViS2l0Q1NTVmlld3BvcnRSdWxlOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3Mv
cGFyc2VyL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNl
Rm9udEZhY2VEZXNjcmlwdG9yKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlclRva2Vu
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlclRva2VuOjpzZXJpYWxpemUgY29uc3Qp
OgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW5SYW5nZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQYXJzZXJUb2tlblJhbmdlOjpzZXJpYWxpemUgY29uc3QpOgorICAgICAg
ICAqIGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Y29uY2F0ZW5hdGVGYW1pbHlOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlR3JpZFRlbXBs
YXRlQXJlYXNDb2x1bW5OYW1lcyk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NUb2tlbml6ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9rZW5pemVyOjpjb25zdW1lU3RyaW5nVG9rZW5V
bnRpbCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb2tlbml6ZXI6OmNvbnN1bWVVcmxUb2tlbik6
CisgICAgICAgIChXZWJDb3JlOjpDU1NUb2tlbml6ZXI6OmNvbnN1bWVOYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1Rva2VuaXplcjo6Y29uc3VtZUVzY2FwZSk6CisgICAgICAgICogZG9tL0Rh
dGFzZXRET01TdHJpbmdNYXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEF0dHJpYnV0
ZU5hbWVUb1Byb3BlcnR5TmFtZSk6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RWxlbWVudDo6Zm9ybWF0Rm9yRGVidWdnZXIgY29uc3QpOgorICAgICAgICAq
IGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnRleHRDb250ZW50IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnNob3dOb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OnRyYXZlcnNlVHJlZUFuZE1hcmspOgorICAgICAgICAqIGRvbS9Qb3NpdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6Zm9ybWF0Rm9yRGVidWdnZXIgY29uc3QpOgor
ICAgICAgICAqIGRvbS9SYW5nZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6dG9TdHJp
bmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OmZvcm1hdEZvckRlYnVnZ2VyIGNv
bnN0KToKKyAgICAgICAgKiBkb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnRocm90dGxpbmdSZWFzb25zVG9TdHJpbmcpOgorICAgICAgICAqIGRv
bS9TZWN1cml0eUNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlDb250ZXh0
OjpwYXJzZVNhbmRib3hQb2xpY3kpOgorICAgICAgICAqIGRvbS9UZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlRleHQ6Ondob2xlVGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
Ojpmb3JtYXRGb3JEZWJ1Z2dlciBjb25zdCk6CisgICAgICAgICogZG9tL1RleHROb2RlVHJhdmVy
c2FsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHROb2RlVHJhdmVyc2FsOjpjb250ZW50c0Fz
U3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHROb2RlVHJhdmVyc2FsOjpjaGlsZFRleHRD
b250ZW50KToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjphZGRCbG9ja1N0eWxlKToKKyAgICAgICAg
KiBlZGl0aW5nL0VkaXRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RyaW5nV2l0aFJlYmFs
YW5jZWRXaGl0ZXNwYWNlKToKKyAgICAgICAgKiBlZGl0aW5nL0hUTUxJbnRlcmNoYW5nZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0SFRNTFRleHRUb0ludGVyY2hhbmdlRm9ybWF0KToK
KyAgICAgICAgKiBlZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1hcmt1cEFjY3VtdWxhdG9yOjpzZXJpYWxpemVOb2Rlcyk6CisgICAgICAgIChXZWJDb3Jl
OjpNYXJrdXBBY2N1bXVsYXRvcjo6Z2VuZXJhdGVVbmlxdWVQcmVmaXgpOgorICAgICAgICAqIGVk
aXRpbmcvVGV4dEl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBsYWluVGV4dCk6Cisg
ICAgICAgICogZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlR5
cGluZ0NvbW1hbmQ6OmlucHV0RXZlbnREYXRhVHJhbnNmZXIgY29uc3QpOgorICAgICAgICAqIGVk
aXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWaXNpYmxlU2Vs
ZWN0aW9uOjpmb3JtYXRGb3JEZWJ1Z2dlciBjb25zdCk6CisgICAgICAgICogZWRpdGluZy9jb2Nv
YS9EYXRhRGV0ZWN0aW9uLm1tOgorICAgICAgICAoV2ViQ29yZTo6ZGF0YURldGVjdG9yU3RyaW5n
Rm9yUGF0aCk6CisgICAgICAgICogZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tOgorICAg
ICAgICAoSFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NUZXh0KToKKyAgICAgICAgKiBlZGl0aW5nL21h
cmt1cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6d3Jh
cFdpdGhOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjp3
cmFwV2l0aFN0eWxlTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRNYXJrdXBBY2N1bXVs
YXRvcjo6dGFrZVJlc3VsdHMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkTWFya3VwQWNjdW11
bGF0b3I6OmFwcGVuZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6c2FuaXRpemVkTWFya3VwRm9y
RnJhZ21lbnRJbkRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnVybFRvTWFya3VwKToKKyAg
ICAgICAgKiBmaWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RmlsZVJlYWRlckxvYWRlcjo6Y29udmVydFRvRGF0YVVSTCk6CisgICAgICAgICogaHRtbC9ET01U
b2tlbkxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NVG9rZW5MaXN0Ojp1cGRhdGVBc3Nv
Y2lhdGVkQXR0cmlidXRlRnJvbVRva2Vucyk6CisgICAgICAgICogaHRtbC9FbWFpbElucHV0VHlw
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbWFpbElucHV0VHlwZTo6c2FuaXRpemVWYWx1ZSBj
b25zdCk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZpbGVJbnB1dFR5cGU6OmRlZmF1bHRUb29sVGlwIGNvbnN0KToKKyAgICAgICAgKiBodG1s
L0Zvcm1Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZvcm1TaWduYXR1cmUpOgor
ICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTEFuY2hvckVsZW1lbnQ6OmhhbmRsZUNsaWNrKToKKyAgICAgICAgKiBodG1sL0hUTUxDYW52
YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVh
dGVDb250ZXh0MmQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0
ZUltYWdlQnVmZmVyIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxGb250RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpwYXJzZUZvbnRTaXplKToKKyAgICAgICAgKiBodG1sL0hUTUxJ
bWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6Y29t
cGxldGVVUkxzSW5BdHRyaWJ1dGVWYWx1ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFjdGlvbk5hbWUpOgorICAgICAgICAq
IGh0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdGlv
bkVsZW1lbnQ6OmNvbGxlY3RPcHRpb25Jbm5lclRleHQgY29uc3QpOgorICAgICAgICAqIGh0bWwv
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQ6OnN0cmlwcGVkUGxhY2Vob2xkZXIgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6aW5uZXJUZXh0VmFsdWVGcm9tKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojp2YWx1ZVdpdGhIYXJkTGluZUJyZWFrcyBjb25zdCk6Cisg
ICAgICAgICogaHRtbC9NZWRpYURvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
RG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKToKKyAgICAgICAgKiBodG1s
L01lZGlhRWxlbWVudFNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVzdHJpY3Rpb25O
YW1lKToKKyAgICAgICAgKiBodG1sL01lZGlhRnJhZ21lbnRVUklQYXJzZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Y29sbGVjdERpZ2l0cyk6CisgICAgICAgIChXZWJDb3JlOjpjb2xsZWN0RnJh
Y3Rpb24pOgorICAgICAgICAqIGh0bWwvVHlwZUFoZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlR5cGVBaGVhZDo6aGFuZGxlRXZlbnQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ6OmZvbnQgY29uc3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyREJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEQmFzZTo6Z2V0SW1hZ2VEYXRhIGNvbnN0KToKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAgKiBodG1sL3BhcnNlci9I
VE1MU291cmNlVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU291cmNlVHJhY2tl
cjo6c291cmNlKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbml6ZXI6OnByb2Nlc3NFbnRpdHkpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFRva2VuaXplcjo6cHJvY2Vzc1Rva2VuKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxUb2tlbml6ZXI6OmJ1ZmZlcmVkQ2hhcmFjdGVycyBjb25zdCk6CisgICAgICAgICogaHRt
bC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVl
QnVpbGRlcjo6ZGVmYXVsdEZvckluVGFibGVUZXh0KToKKyAgICAgICAgKiBodG1sL3BhcnNlci9Y
U1NBdWRpdG9yRGVsZWdhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRDb25zb2xlRXJy
b3IpOgorICAgICAgICAqIGh0bWwvdHJhY2svQnVmZmVyZWRMaW5lUmVhZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkJ1ZmZlcmVkTGluZVJlYWRlcjo6bmV4dExpbmUpOgorICAgICAgICAqIGh0
bWwvdHJhY2svVHJhY2tCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrQmFzZTo6c2V0
TGFuZ3VhZ2UpOgorICAgICAgICAqIGh0bWwvdHJhY2svVlRUQ3VlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlZUVEN1ZTo6ZGV0ZXJtaW5lVGV4dERpcmVjdGlvbik6CisgICAgICAgICogaHRtbC90
cmFjay9XZWJWVFRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViVlRUUGFyc2VyOjpj
cmVhdGVOZXdDdWUpOgorICAgICAgICAqIGh0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldlYlZUVFRva2VuaXplcjo6bmV4dFRva2VuKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JTdHlsZTo6c2hvcnRoYW5kVmFsdWUgY29uc3QpOgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6YnVpbGRPYmplY3RGb3JBcHBs
aWNhdGlvbkNhY2hlUmVzb3VyY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yTmV0d29ya0FnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL1dlYkNvbnNv
bGVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb25zb2xlQWdlbnQ6OmRpZEZhaWxM
b2FkaW5nKToKKyAgICAgICAgKiBsb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUFjY2Vzc0NvbnRyb2xQcmVmbGlnaHRSZXF1ZXN0KToK
KyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAg
ICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpzdG9yZSk6CisgICAgICAgICogbG9h
ZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
ZWdhY3lXZWJBcmNoaXZlOjpjcmVhdGVGcm9tU2VsZWN0aW9uKToKKyAgICAgICAgKiBsb2FkZXIv
YXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2VuZXJh
dGVSYW5kb21Cb3VuZGFyeSk6CisgICAgICAgIChXZWJDb3JlOjpyZXBsYWNlTm9uUHJpbnRhYmxl
Q2hhcmFjdGVycyk6CisgICAgICAgICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFB
Ri5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6
d2luZG93Um91bmRlZENvcm5lclJhZGl1c0NTUyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpD
YXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y29sb3JQcm9wZXJ0eUNTUyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y2FwdGlvbnNU
ZXh0RWRnZUNTUyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVu
Y2VzTWVkaWFBRjo6Y2FwdGlvbnNEZWZhdWx0Rm9udENTUyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y2FwdGlvbnNTdHlsZVNoZWV0T3Zl
cnJpZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6dHJhY2tEaXNwbGF5TmFtZSk6CisgICAg
ICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVSZWdFeHBGb3JM
YWJlbHMpOgorICAgICAgICAqIHBhZ2UvRnJhbWVUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lVHJlZTo6dW5pcXVlQ2hpbGROYW1lIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0ZyYW1l
Vmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmxvZ01vY2tTY3JvbGxBbmlt
YXRvck1lc3NhZ2UgY29uc3QpOgorICAgICAgICAqIHBhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZUNTU1N0eWxlU2hlZXQp
OgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudDo6c3luY2hyb25vdXNTY3JvbGxpbmdS
ZWFzb25zQXNTdHJpbmcpOgorICAgICAgICAqIHBhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YTo6ZGF0YWJhc2VJZGVudGlmaWVy
IGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1doZWVsRXZlbnRUZXN0VHJpZ2dlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpkdW1wU3RhdGUpOgorICAgICAgICAqIHBhZ2UvY3NwL0NvbnRlbnRTZWN1
cml0eVBvbGljeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb25zb2xlTWVzc2FnZUZvclZpb2xh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93UnVu
bmluZ09yRGlzcGxheWluZ0luc2VjdXJlQ29udGVudCk6CisgICAgICAgICogcGFnZS9zY3JvbGxp
bmcvQXhpc1Njcm9sbFNuYXBPZmZzZXRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNuYXBPZmZz
ZXRzVG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6c25hcE9mZnNldFJhbmdlc1RvU3RyaW5n
KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6c3luY2hyb25vdXNTY3JvbGxp
bmdSZWFzb25zQXNUZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9EZWNpbWFsLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRlY2ltYWw6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW06OmVuY29kZUZv
ckZpbGVOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW06OmRlY29kZUZyb21GaWxl
bmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vUE9ESW50ZXJ2YWwuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9QT0RSZWRCbGFja1RyZWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBPRFJlZEJsYWNrVHJl
ZTo6ZHVtcEZyb21Ob2RlIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9VUkwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VVJMOjpzZXRIb3N0KToKKyAgICAgICAgKFdlYkNvcmU6OlVSTDo6c2V0
SG9zdEFuZFBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6cGVyY2VudEVuY29kZUNoYXJhY3RlcnMp
OgorICAgICAgICAqIHBsYXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUaW1pbmdGdW5jdGlvbjo6Y3JlYXRlRnJvbUNTU1RleHQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50cyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3I6OnNlcmlhbGl6
ZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3I6OmNzc1RleHQgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RXh0ZW5kZWRDb2xvcjo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udENhc2NhZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bm9ybWFsaXplU3Bh
Y2VzSW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRUYWdnZWRTZXR0
aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI6OmFuaW1hdGlvbk5hbWVGb3JUcmFuc2l0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQ3VlQXR0
cmlidXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpw
cm9jZXNzTmF0aXZlU2FtcGxlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGls
ZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGlsZUNvbnRyb2xsZXI6OmNyZWF0
ZVRpbGVMYXllcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUdyaWQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvblBvbGljeUFzU3RyaW5nKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmNwcDoKKyAgICAg
ICAgKFBsYXRmb3JtQ0FMYXllcldpbjo6bGF5ZXJUcmVlQXNTdHJpbmcgY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNvcGllckNWOjppbml0aWFsaXplQ29udGV4dE9iamVj
dHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQz
RE9wZW5HTENvbW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZW5lcmF0ZUhhc2hlZE5hbWUp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldFVubWFuZ2xlZEluZm9M
b2cpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tOgorICAgICAgICAo
V2ViQ29yZTo6am9pblBhdGhuYW1lcyk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1N0cmluZ1V0
aWxpdGllcy5tbToKKyAgICAgICAgKFdlYkNvcmU6OndpbGRjYXJkUmVnZXhQYXR0ZXJuU3RyaW5n
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL1Njcm9sbEFuaW1hdG9yTW9jay5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1vY2s6Om1vdXNlRW50ZXJlZFNjcm9sbGJhciBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1vY2s6Om1vdXNlRXhpdGVk
U2Nyb2xsYmFyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTW9jazo6
bW91c2VJc0Rvd25JblNjcm9sbGJhciBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9t
ZWRpYXNvdXJjZS9Nb2NrQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tCb3g6OnBlZWtU
eXBlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tUcmFja0JveDo6TW9ja1RyYWNrQm94KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvUHJveHlTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9TdHJpbmcpOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZUphck1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OmNvb2tpZXNGb3JTZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9wb3NpeC9GaWxl
U3lzdGVtUE9TSVguY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbTo6cGF0aEJ5QXBw
ZW5kaW5nQ29tcG9uZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9EZWNvZGVFc2NhcGVT
ZXF1ZW5jZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlVuaWNvZGUxNkJpdEVzY2FwZVNlcXVlbmNl
OjpkZWNvZGVSdW4pOgorICAgICAgICAoV2ViQ29yZTo6ZGVjb2RlRXNjYXBlU2VxdWVuY2VzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkxvY2FsZTo6Y29udmVydFRvTG9jYWxpemVkTnVtYmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkxvY2FsZTo6Y29udmVydEZyb21Mb2NhbGl6ZWROdW1iZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6TG9jYWxlOjpmb3JtYXREYXRlVGltZSk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9TZWdt
ZW50ZWRTdHJpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VnbWVudGVkU3RyaW5nOjp0b1N0
cmluZyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNJQ1UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dENvZGVjSUNVOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRm
b3JtL3RleHQvVGV4dENvZGVjVXNlckRlZmluZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dENvZGVjVXNlckRlZmluZWQ6OmRlY29kZSk6CisgICAgICAgICogcGx1Z2lucy9ET01NaW1lVHlw
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01NaW1lVHlwZTo6c3VmZml4ZXMgY29uc3QpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllcjo6bmFtZSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6
OmxvZ0xheWVySW5mbyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6bGlzdE1hcmtlclRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGlzdE1hcmtlcjo6cGFpbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhcGl0YWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6
bWF4V29yZEZyYWdtZW50V2lkdGgpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUcmVlQXNU
ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnF1b3RlQW5kRXNjYXBlTm9uUHJpbnRhYmxlcyk6
CisgICAgICAgIChXZWJDb3JlOjpub2RlUG9zaXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9t
YXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1h
dGhNTEZlbmNlZDo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAqIHJlbmRlcmluZy91cGRh
dGluZy9SZW5kZXJUcmVlQnVpbGRlck1hdGhNTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUcmVlQnVpbGRlcjo6TWF0aE1MOjphdHRhY2gpOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGhM
aXN0VmFsdWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aExpc3RWYWx1ZXM6OnZh
bHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR051bWJlckxpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcg
Y29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU3RyaW5nQnVpbGRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQYXRoU3RyaW5nQnVpbGRlcjo6cmVzdWx0KToKKyAgICAgICAgKiBzdmcv
U1ZHUGF0aFV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpidWlsZFN0cmluZ0Zyb21Q
YXRoKToKKyAgICAgICAgKiBzdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1BvaW50TGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAg
ICogc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3Ry
aW5nTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR1Ry
YW5zZm9ybUxpc3RWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtTGlz
dFZhbHVlczo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9y
bVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybVZhbHVlOjp2YWx1ZUFz
U3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0
cy5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRQb2ludD46OnRv
U3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46
OnRvU3RyaW5nKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbHM6OmR1bXBNYXJrZXJSZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnRlcm5hbHM6OnBhcnNlck1ldGFEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6
Z2V0Q3VycmVudEN1cnNvckluZm8pOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjptZWRp
YVNlc3Npb25SZXN0cmljdGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxz
OjpwYWdlTWVkaWFTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNjcm9sbFNu
YXBPZmZzZXRzKToKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNb2NrUGFnZU92ZXJsYXlDbGllbnQ6OmRyYXdSZWN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1vY2tQYWdlT3ZlcmxheUNsaWVudDo6bW91c2VFdmVudCk6CisgICAg
ICAgICogd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2VyU2NyaXB0TG9hZGVyOjpzY3JpcHQpOgorICAgICAgICAqIHhtbC9YTUxFcnJvcnMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6WE1MRXJyb3JzOjppbnNlcnRFcnJvck1lc3NhZ2VCbG9jayk6
CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhN
TEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25zZUhlYWRlcnMgY29uc3QpOgorICAgICAgICAqIHht
bC9YTUxIdHRwUmVxdWVzdC5oOgorICAgICAgICAqIHhtbC9YUGF0aEZ1bmN0aW9ucy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpYUGF0aDo6YXRvbWljU3Vic3RyaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlhQYXRoOjpGdW5JZDo6ZXZhbHVhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFBh
dGg6OkZ1bkNvbmNhdDo6ZXZhbHVhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6
OkZ1blRyYW5zbGF0ZTo6ZXZhbHVhdGUgY29uc3QpOgorICAgICAgICAqIHhtbC9YU0xUUHJvY2Vz
c29yTGlieHNsdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzYXZlUmVzdWx0VG9TdHJpbmcpOgor
ICAgICAgICAqIHhtbC9wYXJzZXIvQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VySW5saW5lcy5oOgor
ICAgICAgICAoV2ViQ29yZTo6dW5jb25zdW1lQ2hhcmFjdGVycyk6CisKIDIwMTgtMDQtMjUgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBOZXR3b3JrTG9h
ZENoZWNrZXIgZm9yIGFsbCBzdWJyZXNvdXJjZSBsb2FkcyBleGNlcHQgZmV0Y2gvWEhSCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRDb250
YWN0Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1l
bnRDb250YWN0Q29jb2EubW0KaW5kZXggM2JlNjIxMC4uMDk3ODRmMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50Q29udGFjdENvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudENvbnRh
Y3RDb2NvYS5tbQpAQCAtMTU0LDcgKzE1NCwxMCBAQCBzdGF0aWMgUmV0YWluUHRyPFBLQ29udGFj
dD4gY29udmVydCh1bnNpZ25lZCB2ZXJzaW9uLCBjb25zdCBBcHBsZVBheVBheW1lbnRDb250YQog
ICAgICAgICB9CiAKICAgICAgICAgLy8gRklYTUU6IFN0cmluZ0J1aWxkZXIgc2hvdWxkIGhhdmEg
YSB0b05TU3RyaW5nKCkgZnVuY3Rpb24gdG8gYXZvaWQgdGhlIGV4dHJhIFN0cmluZyBhbGxvY2F0
aW9uLgotICAgICAgICBbYWRkcmVzcyBzZXRTdHJlZXQ6YnVpbGRlci50b1N0cmluZygpXTsKKyAg
ICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAg
W2FkZHJlc3Mgc2V0U3RyZWV0OipzdHJpbmddOworICAgICAgICBlbHNlCisgICAgICAgICAgICBD
UkFTSCgpOwogCiAgICAgICAgIGlmICghY29udGFjdC5zdWJMb2NhbGl0eS5pc0VtcHR5KCkpCiAg
ICAgICAgICAgICBzZXRTdWJMb2NhbGl0eShhZGRyZXNzLmdldCgpLCBjb250YWN0LnN1YkxvY2Fs
aXR5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01G
aWxlU3lzdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxl
U3lzdGVtLmNwcAppbmRleCA4ZTUwNjZkLi45YjM2MGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwCkBAIC0yMTYsNyArMjE2
LDkgQEAgc3RhdGljIFN0cmluZyByZXNvbHZlUmVsYXRpdmVWaXJ0dWFsUGF0aChTdHJpbmdWaWV3
IGJhc2VWaXJ0dWFsUGF0aCwgU3RyaW5nVmlldwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnLycp
OwogICAgICAgICBidWlsZGVyLmFwcGVuZChzZWdtZW50KTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIC8vIGh0dHBz
Oi8vd2ljZy5naXRodWIuaW8vZW50cmllcy1hcGkvI2V2YWx1YXRlLWEtcGF0aApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcAppbmRleCBk
Y2JmNzAzLi42Y2FhYzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uLmNwcApAQCAtMzQwLDcgKzM0MCwxMCBAQCBzdGF0aWMgdm9pZCBs
b2dFcnJvcihjb25zdCBTdHJpbmcmIHRhcmdldCwgY29uc3QgYm9vbCBpc1NlY3VyZSwgY29uc3Qg
Ym9vbCBpc01peAogICAgIAogICAgIG1lc3NhZ2UuYXBwZW5kKHRhcmdldCk7CiAgICAgbWVzc2Fn
ZS5hcHBlbmQoIi5cbiIpOwotICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgbWVzc2FnZS50b1N0cmluZygp
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtZXNzYWdlLnRvU3RyaW5nKCkpCisgICAgICAgIGRv
Y3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2Fn
ZUxldmVsOjpFcnJvciwgKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQog
CiAvLyBGSVhNRTogcmVtb3ZlIHRoaXMgZnVuY3Rpb24gd2hlbiByZGFyOi8vcHJvYmxlbS8zMjEz
NzgyMSBpcyBmaXhlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQktleURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
S2V5RGF0YS5jcHAKaW5kZXggMmU5MzY0NS4uNzIxMjk3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5jcHAKQEAgLTMzMiw3ICszMzIsMTAgQEAg
U3RyaW5nIElEQktleURhdGE6OmxvZ2dpbmdTdHJpbmcoKSBjb25zdAogICAgICAgICAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKICAgICAgICAgfQogICAgICAgICBidWlsZGVy
LmFwcGVuZExpdGVyYWwoIiB9Iik7Ci0gICAgICAgIHJlc3VsdCA9IGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICAgICAgcmVzdWx0ID0gKnN0cmluZzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0go
KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgS2V5VHlwZTo6QmluYXJ5OiB7CkBA
IC0zNDIsNyArMzQ1LDEwIEBAIFN0cmluZyBJREJLZXlEYXRhOjpsb2dnaW5nU3RyaW5nKCkgY29u
c3QKICAgICAgICAgYXV0byogZGF0YSA9IFdURjo6Z2V0PFRocmVhZFNhZmVEYXRhQnVmZmVyPiht
X3ZhbHVlKS5kYXRhKCk7CiAgICAgICAgIGlmICghZGF0YSkgewogICAgICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoIihudWxsKSIpOwotICAgICAgICAgICAgcmVzdWx0ID0gYnVpbGRlci50b1N0cmlu
ZygpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICAgICAgICAgIHJlc3VsdCA9ICpzdHJpbmc7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKQEAg
LTM1Myw3ICszNTksMTAgQEAgU3RyaW5nIElEQktleURhdGE6OmxvZ2dpbmdTdHJpbmcoKSBjb25z
dAogICAgICAgICBpZiAoZGF0YS0+c2l6ZSgpID4gOCkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCIuLi4iKTsKIAotICAgICAgICByZXN1bHQgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
ICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJl
c3VsdCA9ICpzdHJpbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEtleVR5cGU6OlN0cmluZzoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBhdGguY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UGF0aC5jcHAKaW5kZXggNzZlYmViMy4u
OGI5ZmIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
S2V5UGF0aC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5
UGF0aC5jcHAKQEAgLTI0MSw3ICsyNDEsOSBAQCBTdHJpbmcgbG9nZ2luZ1N0cmluZyhjb25zdCBJ
REJLZXlQYXRoJiBwYXRoKQogICAgICAgICBidWlsZGVyLmFwcGVuZChzdHJpbmdzLmxhc3QoKSk7
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIgPiIpOwogCi0gICAgICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0p
OwogCiAgICAgcmV0dXJuIFdURjo6dmlzaXQodmlzaXRvciwgcGF0aCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSW5kZXhWYWx1ZVN0b3JlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRleFZhbHVlU3Rv
cmUuY3BwCmluZGV4IDY5ODNjOWQuLjgwZDZiM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRleFZhbHVlU3RvcmUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRleFZhbHVlU3RvcmUuY3BwCkBA
IC00MDksNyArNDA5LDkgQEAgU3RyaW5nIEluZGV4VmFsdWVTdG9yZTo6bG9nZ2luZ1N0cmluZygp
IGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fcmVjb3Jkcy5nZXQoa2V5KS0+
Z2V0Q291bnQoKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIGVudHJpZXMiKTsK
ICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1cnNvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQ3Vyc29yLmNwcAppbmRleCBmMjBkYjg3Li5h
NGMzMGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvU1FMaXRlSURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQ3Vyc29yLmNwcApAQCAtMTQxLDcgKzE0MSw5IEBAIHN0YXRp
YyBTdHJpbmcgYnVpbGRJbmRleFN0YXRlbWVudChjb25zdCBJREJLZXlSYW5nZURhdGEmIGtleVJh
bmdlLCBJbmRleGVkREI6OkN1CiAKICAgICBidWlsZGVyLmFwcGVuZCgnOycpOwogCi0gICAgcmV0
dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0
YXRpYyBTdHJpbmcgYnVpbGRPYmplY3RTdG9yZVN0YXRlbWVudChjb25zdCBJREJLZXlSYW5nZURh
dGEmIGtleVJhbmdlLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbiBjdXJzb3JEaXJlY3Rpb24p
CkBAIC0xNjksNyArMTcxLDkgQEAgc3RhdGljIFN0cmluZyBidWlsZE9iamVjdFN0b3JlU3RhdGVt
ZW50KGNvbnN0IElEQktleVJhbmdlRGF0YSYga2V5UmFuZ2UsIEluZGV4ZWQKIAogICAgIGJ1aWxk
ZXIuYXBwZW5kKCc7Jyk7CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBTUUxpdGVJREJDdXJzb3I6OmVzdGFibGlzaFN0
YXRlbWVudCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
aGFyZWQvSURCRGF0YWJhc2VJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JREJEYXRhYmFzZUluZm8uY3BwCmluZGV4IGU1ZGYxNWMuLjc2OTM0ZDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJEYXRh
YmFzZUluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JREJEYXRhYmFzZUluZm8uY3BwCkBAIC0xNjksNyArMTY5LDkgQEAgU3RyaW5nIElEQkRhdGFi
YXNlSW5mbzo6bG9nZ2luZ1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdc
bicpOwogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8uY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9iamVjdFN0b3JlSW5mby5jcHAKaW5k
ZXggYjAwNzVmZS4uOGQ4ZmFkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2hhcmVkL0lEQk9iamVjdFN0b3JlSW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9iamVjdFN0b3JlSW5mby5jcHAKQEAgLTE0
OCw3ICsxNDgsOSBAQCBTdHJpbmcgSURCT2JqZWN0U3RvcmVJbmZvOjpsb2dnaW5nU3RyaW5nKGlu
dCBpbmRlbnQpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwogICAgIH0KIAot
ICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiBTdHJpbmcgSURCT2JqZWN0U3RvcmVJbmZvOjpjb25kZW5zZWRMb2dnaW5nU3RyaW5nKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL1dl
Yk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNl
c3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKaW5kZXggNDIwOWZmYS4uOTZmZWJjOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFT
ZXNzaW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKQEAgLTg5LDcgKzg5LDkgQEAgc3RhdGljIFN0
cmluZyBtZWRpYVByb2R1Y2VyU3RhdGVTdHJpbmcoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIGZsYWdzKQogICAgIGVsc2UKICAgICAgICAgc3RyaW5nLnJlc2l6ZShzdHJpbmcubGVuZ3Ro
KCkgLSAyKTsKIAotICAgIHJldHVybiBzdHJpbmcudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHIgPSBzdHJpbmcudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHI7CisgICAgQ1JBU0go
KTsKIH0KICNlbmRpZgogCkBAIC0zODEsNyArMzgzLDkgQEAgU3RyaW5nIFdlYk1lZGlhU2Vzc2lv
bk1hbmFnZXI6OnRvU3RyaW5nKENvbmZpZ3VyYXRpb25UYXNrcyB0YXNrcykKICAgICBlbHNlCiAg
ICAgICAgIHN0cmluZy5yZXNpemUoc3RyaW5nLmxlbmd0aCgpIC0gMik7CiAgICAgCi0gICAgcmV0
dXJuIHN0cmluZy50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0ciA9IHN0cmluZy50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cjsKKyAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rp
b25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNv
bm5lY3Rpb25CYWNrZW5kLmNwcAppbmRleCBkYzUxYmI1Li5kYmVjZDVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlv
bkJhY2tlbmQuY3BwCkBAIC00MDMsNyArNDAzLDkgQEAgc3RhdGljIFN0cmluZyBmaWx0ZXJJQ0VD
YW5kaWRhdGUoU3RyaW5nJiYgc2RwKQogICAgICAgICAgICAgZmlsdGVyZWRTRFAuYXBwZW5kKCcg
Jyk7CiAgICAgICAgIGZpbHRlcmVkU0RQLmFwcGVuZChpdGVtKTsKICAgICB9KTsKLSAgICByZXR1
cm4gZmlsdGVyZWRTRFAudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBmaWx0ZXJl
ZFNEUC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiBTdHJpbmcgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpmaWx0ZXJTRFAoU3RyaW5nJiYgc2Rw
KSBjb25zdApAQCAtNDIxLDcgKzQyMyw5IEBAIFN0cmluZyBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6
OmZpbHRlclNEUChTdHJpbmcmJiBzZHApIGNvbnN0CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIGZpbHRlcmVkU0RQLmFwcGVuZCgnXG4nKTsKICAgICB9KTsKLSAgICByZXR1cm4gZmlsdGVy
ZWRTRFAudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBmaWx0ZXJlZFNEUC50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lk
IFBlZXJDb25uZWN0aW9uQmFja2VuZDo6bmV3SUNFQ2FuZGlkYXRlKFN0cmluZyYmIHNkcCwgU3Ry
aW5nJiYgbWlkLCB1bnNpZ25lZCBzaG9ydCBzZHBNTGluZUluZGV4KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50
LmNwcAppbmRleCBjOTE3MWRjLi40MjdmNGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcApAQCAt
MzMzLDcgKzMzMyw5IEBAIFN0cmluZyBZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQ6OnlvdVR1YmVV
UkxGcm9tQWJzb2x1dGVVUkwoY29uc3QgVVJMJiBzcmNVUkwsIGNvCiAgICAgICAgIGZpbmFsVVJM
LmFwcGVuZCgnPycpOwogICAgICAgICBmaW5hbFVSTC5hcHBlbmQocXVlcnkpOwogICAgIH0KLSAg
ICByZXR1cm4gZmluYWxVUkwudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBmaW5h
bFVSTC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogICAgIAogYm9vbCBZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQ6OnN1cHBvcnRzVVJMKGNvbnN0
IFVSTCYgdXJsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZVRyYWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZVRyYWNrZXIuY3BwCmluZGV4IDhmZGE2MmEuLjk4ZjMwOGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5j
cHAKQEAgLTMyMCw3ICszMjAsOSBAQCBzdGF0aWMgU3RyaW5nIGdlbmVyYXRlRGF0YWJhc2VGaWxl
TmFtZSgpCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmlu
ZygpKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIi5kYiIpOwogCi0gICAgcmV0
dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIFN0cmluZyBEYXRhYmFzZVRyYWNrZXI6OmZ1bGxQYXRoRm9yRGF0YWJhc2VOb0xv
Y2soY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwg
Ym9vbCBjcmVhdGVJZk5vdEV4aXN0cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldC5jcHAKaW5kZXggMDI0NzdiOS4uZWFiMjUzMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKQEAgLTEwNSw3ICsx
MDUsOSBAQCBzdGF0aWMgU3RyaW5nIGVuY29kZVByb3RvY29sU3RyaW5nKGNvbnN0IFN0cmluZyYg
cHJvdG9jb2wpCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHByb3Rv
Y29sW2ldKTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgam9pblN0cmluZ3MoY29uc3QgVmVj
dG9yPFN0cmluZz4mIHN0cmluZ3MsIGNvbnN0IGNoYXIqIHNlcGFyYXRvcikKQEAgLTExNiw3ICsx
MTgsOSBAQCBzdGF0aWMgU3RyaW5nIGpvaW5TdHJpbmdzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBz
dHJpbmdzLCBjb25zdCBjaGFyKiBzZXBhcmF0b3IpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZChzZXBhcmF0b3IpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChzdHJpbmdzW2ldKTsKICAgICB9
Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBzYXR1cmF0ZUFkZCh1bnNpZ25lZCBhLCB1bnNpZ25lZCBi
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwCmluZGV4IGZjYzlkYzMuLjZjNDBj
NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHAKQEAgLTY4LDcgKzY4LDkg
QEAgY29uc3QgU3RyaW5nIFdlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OmNyZWF0ZUhlYWRl
clZhbHVlKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsICIpOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZChtX3Byb2Nlc3NvcnNbaV0tPmhhbmRzaGFrZVN0cmluZygpKTsK
ICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAKIHZvaWQgV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlcjo6YXBwZW5kQWNj
ZXB0ZWRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb25Ub2tlbiwgSGFzaE1hcDxTdHJp
bmcsIFN0cmluZz4mIGV4dGVuc2lvblBhcmFtZXRlcnMpCkBAIC0xMzksNyArMTQxLDkgQEAgU3Ry
aW5nIFdlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OmFjY2VwdGVkRXh0ZW5zaW9ucygpIGNv
bnN0CiB7CiAgICAgaWYgKG1fYWNjZXB0ZWRFeHRlbnNpb25zQnVpbGRlci5pc0VtcHR5KCkpCiAg
ICAgICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICByZXR1cm4gbV9hY2NlcHRlZEV4dGVuc2lvbnNC
dWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IG1fYWNjZXB0ZWRFeHRlbnNpb25zQnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIFdlYlNv
Y2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OmZhaWx1cmVSZWFzb24oKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtl
LmNwcAppbmRleCA1NDU1Y2QxLi4wODNhOTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcApAQCAtNzIsMTAg
KzcyLDEzIEBAIHN0YXRpYyBTdHJpbmcgcmVzb3VyY2VOYW1lKGNvbnN0IFVSTCYgdXJsKQogICAg
ICAgICBuYW1lLmFwcGVuZCgnPycpOwogICAgICAgICBuYW1lLmFwcGVuZCh1cmwucXVlcnkoKSk7
CiAgICAgfQotICAgIFN0cmluZyByZXN1bHQgPSBuYW1lLnRvU3RyaW5nKCk7Ci0gICAgQVNTRVJU
KCFyZXN1bHQuaXNFbXB0eSgpKTsKLSAgICBBU1NFUlQoIXJlc3VsdC5jb250YWlucygnICcpKTsK
LSAgICByZXR1cm4gcmVzdWx0OworICAgIGlmIChhdXRvIHN0cmluZyA9IG5hbWUudG9TdHJpbmco
KSkgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gKnN0cmluZzsKKyAgICAgICAgQVNTRVJUKCFy
ZXN1bHQuaXNFbXB0eSgpKTsKKyAgICAgICAgQVNTRVJUKCFyZXN1bHQuY29udGFpbnMoJyAnKSk7
CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIHN0YXRp
YyBTdHJpbmcgaG9zdE5hbWUoY29uc3QgVVJMJiB1cmwsIGJvb2wgc2VjdXJlKQpAQCAtODcsNyAr
OTAsOSBAQCBzdGF0aWMgU3RyaW5nIGhvc3ROYW1lKGNvbnN0IFVSTCYgdXJsLCBib29sIHNlY3Vy
ZSkKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJzonKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmRO
dW1iZXIodXJsLnBvcnQoKS52YWx1ZSgpKTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBjb25zdCBzaXpl
X3QgbWF4SW5wdXRTYW1wbGVTaXplID0gMTI4OwpAQCAtMTc2LDcgKzE4MSw5IEBAIFN0cmluZyBX
ZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudExvY2F0aW9uKCkgY29uc3QKICAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwoIjovLyIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKGhvc3ROYW1lKG1fdXJsLCBt
X3NlY3VyZSkpOwogICAgIGJ1aWxkZXIuYXBwZW5kKHJlc291cmNlTmFtZShtX3VybCkpOwotICAg
IHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiBDU3RyaW5nIFdlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZW50SGFuZHNoYWtlTWVzc2FnZSgpIGNv
bnN0CkBAIC0yMjYsNyArMjMzLDkgQEAgQ1N0cmluZyBXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVu
dEhhbmRzaGFrZU1lc3NhZ2UoKSBjb25zdAogCiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJc
clxuIik7CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpLnV0ZjgoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBzdHJpbmct
PnV0ZjgoKTsKKyAgICBDUkFTSCgpOwogfQogCiBSZXNvdXJjZVJlcXVlc3QgV2ViU29ja2V0SGFu
ZHNoYWtlOjpjbGllbnRIYW5kc2hha2VSZXF1ZXN0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5k
ZXggZGI4NTc1ZS4uYzRhMjUyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTE3MTMsMTEgKzE3MTMs
MTMgQEAgc3RhdGljIGJvb2wgc2hvdWxkVXNlQWNjZXNzaWJpbGl0eU9iamVjdElubmVyVGV4dChB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFjY2UKIAogc3RhdGljIGJvb2wgc2hvdWxkQWRkU3Bh
Y2VCZWZvcmVBcHBlbmRpbmdOZXh0RWxlbWVudChTdHJpbmdCdWlsZGVyJiBidWlsZGVyLCBjb25z
dCBTdHJpbmcmIGNoaWxkVGV4dCkKIHsKKyAgICBpZiAoYnVpbGRlci5mYWlsZWQoKSkKKyAgICAg
ICAgQ1JBU0goKTsKKwogICAgIGlmICghYnVpbGRlci5sZW5ndGgoKSB8fCAhY2hpbGRUZXh0Lmxl
bmd0aCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0KICAgICAvLyBXZSBkb24ndCBuZWVkIHRv
IGFkZCBhbiBhZGRpdGlvbmFsIHNwYWNlIGJlZm9yZSBvciBhZnRlciBhIGxpbmUgYnJlYWsuCi0g
ICAgcmV0dXJuICEoaXNIVE1MTGluZUJyZWFrKGNoaWxkVGV4dFswXSkgfHwgaXNIVE1MTGluZUJy
ZWFrKGJ1aWxkZXJbYnVpbGRlci5sZW5ndGgoKSAtIDFdKSk7CisgICAgcmV0dXJuICEoaXNIVE1M
TGluZUJyZWFrKGNoaWxkVGV4dFswXSkgfHwgaXNIVE1MTGluZUJyZWFrKCpidWlsZGVyW2J1aWxk
ZXIubGVuZ3RoKCkgLSAxXSkpOwogfQogICAgIAogc3RhdGljIHZvaWQgYXBwZW5kTmFtZVRvU3Ry
aW5nQnVpbGRlcihTdHJpbmdCdWlsZGVyJiBidWlsZGVyLCBjb25zdCBTdHJpbmcmIHRleHQpCkBA
IC0xNzY5LDcgKzE3NzEsOSBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRleHRV
bmRlckVsZW1lbnQoQWNjZXNzaWJpbGl0eVRleHRVbmRlckVsZW1lbnRNbwogICAgICAgICAgICAg
YXBwZW5kTmFtZVRvU3RyaW5nQnVpbGRlcihidWlsZGVyLCBjaGlsZFRleHQpOwogICAgIH0KIAot
ICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCkuc3RyaXBXaGl0ZVNwYWNlKCkuc2ltcGxpZnlX
aGl0ZVNwYWNlKGlzSFRNTFNwYWNlQnV0Tm90TGluZUJyZWFrKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBzdHJpbmctPnN0cmlwV2hp
dGVTcGFjZSgpLnNpbXBsaWZ5V2hpdGVTcGFjZShpc0hUTUxTcGFjZUJ1dE5vdExpbmVCcmVhayk7
CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp0aXRs
ZSgpIGNvbnN0CkBAIC0xOTg1LDcgKzE5ODksOSBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3Q6OmFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbkZvckNoaWxkcmVuKCkgY29uc3QKICAgICAg
ICAgfQogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmFjY2Vz
c2liaWxpdHlEZXNjcmlwdGlvbkZvckVsZW1lbnRzKFZlY3RvcjxFbGVtZW50Kj4gJmVsZW1lbnRz
KSBjb25zdApAQCAtMTk5NCw3ICsyMDAwLDkgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0OjphY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25Gb3JFbGVtZW50cyhWZWN0b3I8RWxlbWUKICAg
ICB1bnNpZ25lZCBzaXplID0gZWxlbWVudHMuc2l6ZSgpOwogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBzaXplOyArK2kpCiAgICAgICAgIGFwcGVuZE5hbWVUb1N0cmluZ0J1aWxkZXIoYnVp
bGRlciwgYWNjZXNzaWJsZU5hbWVGb3JOb2RlKGVsZW1lbnRzW2ldLCBub2RlKCkpKTsKLSAgICBy
ZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAog
U3RyaW5nIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjphcmlhRGVzY3JpYmVkQnlBdHRyaWJ1dGUo
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5jcHAKaW5kZXggMTkyODE3Mi4uN2M4ZDk4YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0xMzg4
LDggKzEzODgsMTAgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN0cmluZ0ZvclJhbmdl
KFJlZlB0cjxSYW5nZT4gcmFuZ2UpIGNvbnN0CiAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBl
bmQob2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXIpOwogICAgICAgICB9CiAgICAgfQotICAgIAot
ICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdHJpbmdGb3JWaXNpYmxlUG9zaXRp
b25SYW5nZShjb25zdCBWaXNpYmxlUG9zaXRpb25SYW5nZSYgdmlzaWJsZVBvc2l0aW9uUmFuZ2Up
CkBAIC0xNDE1LDcgKzE0MTcsOSBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3RyaW5n
Rm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBvc2l0aW9uUgogICAgICAgICB9
CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIGludCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpsZW5ndGhGb3JWaXNpYmxl
UG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zaXRpb25SYW5nZSYgdmlzaWJsZVBvc2l0aW9u
UmFuZ2UpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCmluZGV4
IGExMDJkMzYuLjkzMmQxMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFj
Lm1tCkBAIC0yNDA5LDcgKzI0MDksOSBAQCAtIChOU1N0cmluZyAqKXZhbHVlRGVzY3JpcHRpb25G
b3JNZXRlcgogICAgICAgICBpZiAoYnVpbGRlci5sZW5ndGgoKSkKICAgICAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoZ2F1Z2VSZWdp
b25WYWx1ZSk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlm
IChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KICNlbmRpZgogICAgIHJldHVybiB2YWx1
ZURlc2NyaXB0aW9uOwpAQCAtMzg3Myw4ICszODc1LDExIEBAIHN0YXRpYyB2b2lkIGZvcm1hdEZv
ckRlYnVnZ2VyKGNvbnN0IFZpc2libGVQb3NpdGlvblJhbmdlJiByYW5nZSwgY2hhciogYnVmZmVy
LCB1CiAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIiB0byAiKTsKICAgICByYW5nZS5lbmQuZm9y
bWF0Rm9yRGVidWdnZXIoZm9ybWF0LCBGb3JtYXRCdWZmZXJTaXplKTsKICAgICByZXN1bHQuYXBw
ZW5kKGZvcm1hdCk7Ci0gICAgCi0gICAgc3RybGNweShidWZmZXIsIHJlc3VsdC50b1N0cmluZygp
LnV0ZjgoKS5kYXRhKCksIGxlbmd0aCk7CisKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQu
dG9TdHJpbmcoKSkKKyAgICAgICAgc3RybGNweShidWZmZXIsIHN0cmluZy0+dXRmOCgpLmRhdGEo
KSwgbGVuZ3RoKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0U3RyaW5ncy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRTdHJpbmdzLmNwcApp
bmRleCA3ZDJkZTE4Li4xZTA0YTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUNvbnZlcnRTdHJpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUNvbnZlcnRTdHJpbmdzLmNwcApAQCAtOTEsNyArOTEsOSBAQCBzdGF0aWMgaW5s
aW5lIFN0cmluZyBzdHJpbmdUb1VTVlN0cmluZyhTdHJpbmcmJiBzdHJpbmcpCiAgICAgICAgIGVs
c2UKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY29kZVBvaW50KTsKICAgICB9Ci0gICAgcmV0
dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJp
bmcgaWRlbnRpZmllclRvVVNWU3RyaW5nKEV4ZWNTdGF0ZSYsIGNvbnN0IElkZW50aWZpZXImIGlk
ZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4
Y2VwdGlvbkhhbmRsaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhj
ZXB0aW9uSGFuZGxpbmcuY3BwCmluZGV4IDg5NWEzMDAuLjA3ZmI3MzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuY3BwCkBA
IC0yMTEsNyArMjExLDkgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd0FyZ3VtZW50TXVzdEJl
RW51bUVycm9yKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpUaHIKICAgICBhcHBlbmRBcmd1
bWVudE11c3RCZShidWlsZGVyLCBhcmd1bWVudEluZGV4LCBhcmd1bWVudE5hbWUsIGZ1bmN0aW9u
SW50ZXJmYWNlTmFtZSwgZnVuY3Rpb25OYW1lKTsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwo
Im9uZSBvZjogIik7CiAgICAgYnVpbGRlci5hcHBlbmQoZXhwZWN0ZWRWYWx1ZXMpOwotICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUsIGJ1aWxkZXIudG9TdHJpbmcoKSk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcigmc3RhdGUsIHNjb3BlLCAqc3RyaW5nKTsKKyAgICBDUkFTSCgp
OwogfQogCiBKU0M6OkVuY29kZWRKU1ZhbHVlIHRocm93QXJndW1lbnRNdXN0QmVGdW5jdGlvbkVy
cm9yKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpUaHJvd1Njb3BlJiBzY29wZSwgdW5zaWdu
ZWQgYXJndW1lbnRJbmRleCwgY29uc3QgY2hhciogYXJndW1lbnROYW1lLCBjb25zdCBjaGFyKiBp
bnRlcmZhY2VOYW1lLCBjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUpCkBAIC0yMTksNyArMjIxLDkg
QEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd0FyZ3VtZW50TXVzdEJlRnVuY3Rpb25FcnJvcihK
U0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzoKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAg
ICAgYXBwZW5kQXJndW1lbnRNdXN0QmUoYnVpbGRlciwgYXJndW1lbnRJbmRleCwgYXJndW1lbnRO
YW1lLCBpbnRlcmZhY2VOYW1lLCBmdW5jdGlvbk5hbWUpOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiYSBmdW5jdGlvbiIpOwotICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKCZzdGF0ZSwg
c2NvcGUsIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcigmc3RhdGUsIHNj
b3BlLCAqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiBKU0M6OkVuY29kZWRKU1ZhbHVlIHRo
cm93QXJndW1lbnRUeXBlRXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OlRocm93U2Nv
cGUmIHNjb3BlLCB1bnNpZ25lZCBhcmd1bWVudEluZGV4LCBjb25zdCBjaGFyKiBhcmd1bWVudE5h
bWUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uSW50ZXJmYWNlTmFtZSwgY29uc3QgY2hhciogZnVuY3Rp
b25OYW1lLCBjb25zdCBjaGFyKiBleHBlY3RlZFR5cGUpCkBAIC0yMjgsNyArMjMyLDkgQEAgSlND
OjpFbmNvZGVkSlNWYWx1ZSB0aHJvd0FyZ3VtZW50VHlwZUVycm9yKEpTQzo6RXhlY1N0YXRlJiBz
dGF0ZSwgSlNDOjpUaHJvd1Njb3AKICAgICBhcHBlbmRBcmd1bWVudE11c3RCZShidWlsZGVyLCBh
cmd1bWVudEluZGV4LCBhcmd1bWVudE5hbWUsIGZ1bmN0aW9uSW50ZXJmYWNlTmFtZSwgZnVuY3Rp
b25OYW1lKTsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoImFuIGluc3RhbmNlIG9mICIpOwog
ICAgIGJ1aWxkZXIuYXBwZW5kKGV4cGVjdGVkVHlwZSk7Ci0gICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoJnN0YXRlLCBzY29wZSwgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKCZzdGF0ZSwgc2NvcGUsICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgdGhy
b3dBdHRyaWJ1dGVUeXBlRXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OlRocm93U2Nv
cGUmIHNjb3BlLCBjb25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lLCBjb25zdCBjaGFyKiBhdHRyaWJ1
dGVOYW1lLCBjb25zdCBjaGFyKiBleHBlY3RlZFR5cGUpCkBAIC0yNDUsNyArMjUxLDkgQEAgSlND
OjpFbmNvZGVkSlNWYWx1ZSB0aHJvd1JlcXVpcmVkTWVtYmVyVHlwZUVycm9yKEpTQzo6RXhlY1N0
YXRlJiBzdGF0ZSwgSlNDOjpUaHIKICAgICBidWlsZGVyLmFwcGVuZChtZW1iZXJOYW1lKTsKICAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiBpcyByZXF1aXJlZCBhbmQgbXVzdCBiZSBhbiBpbnN0
YW5jZSBvZiAiKTsKICAgICBidWlsZGVyLmFwcGVuZChleHBlY3RlZFR5cGUpOwotICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUsIGJ1aWxkZXIudG9TdHJpbmcoKSk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcigmc3RhdGUsIHNjb3BlLCAqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwog
fQogCiBKU0M6OkVuY29kZWRKU1ZhbHVlIHRocm93Q29uc3RydWN0b3JTY3JpcHRFeGVjdXRpb25D
b250ZXh0VW5hdmFpbGFibGVFcnJvcihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6VGhyb3dT
Y29wZSYgc2NvcGUsIGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db21iaW5lZFVSTEZpbHRlcnMuY3BwIGIvU291
cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29tYmluZWRVUkxGaWx0ZXJzLmNwcAppbmRl
eCA3NTU4YjIyLi4yOWRlNTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9Db21iaW5lZFVSTEZpbHRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5jcHAKQEAgLTEwNyw3ICsxMDcsOSBAQCBz
dGF0aWMgU3RyaW5nIHByZWZpeFRyZWVWZXJ0ZXhUb1N0cmluZyhjb25zdCBQcmVmaXhUcmVlVmVy
dGV4JiB2ZXJ0ZXgsIGNvbnN0IEhhcwogICAgICAgICB9CiAgICAgfQogICAgIGJ1aWxkZXIuYXBw
ZW5kKCdcbicpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBzdGF0aWMgdm9pZCByZWN1cnNpdmVQcmludChjb25zdCBQcmVmaXhU
cmVlVmVydGV4JiB2ZXJ0ZXgsIGNvbnN0IEhhc2hNYXA8Y29uc3QgUHJlZml4VHJlZVZlcnRleCos
IEFjdGlvbkxpc3Q+JiBhY3Rpb25zLCB1bnNpZ25lZCBkZXB0aCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbi5jcHAKaW5kZXggNjEw
ZTFiOC4uOGU1MGZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lv
bnMvQ29udGVudEV4dGVuc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVu
c2lvbnMvQ29udGVudEV4dGVuc2lvbi5jcHAKQEAgLTExMCw4ICsxMTAsMTEgQEAgdm9pZCBDb250
ZW50RXh0ZW5zaW9uOjpjb21waWxlR2xvYmFsRGlzcGxheU5vbmVTdHlsZVNoZWV0KCkKIAogICAg
IG1fZ2xvYmFsRGlzcGxheU5vbmVTdHlsZVNoZWV0ID0gU3R5bGVTaGVldENvbnRlbnRzOjpjcmVh
dGUoKTsKICAgICBtX2dsb2JhbERpc3BsYXlOb25lU3R5bGVTaGVldC0+c2V0SXNVc2VyU3R5bGVT
aGVldCh0cnVlKTsKLSAgICBpZiAoIW1fZ2xvYmFsRGlzcGxheU5vbmVTdHlsZVNoZWV0LT5wYXJz
ZVN0cmluZyhjc3MudG9TdHJpbmcoKSkpCi0gICAgICAgIG1fZ2xvYmFsRGlzcGxheU5vbmVTdHls
ZVNoZWV0ID0gbnVsbHB0cjsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBjc3MudG9TdHJpbmcoKSkg
eworICAgICAgICBpZiAoIW1fZ2xvYmFsRGlzcGxheU5vbmVTdHlsZVNoZWV0LT5wYXJzZVN0cmlu
Zygqc3RyaW5nKSkKKyAgICAgICAgICAgIG1fZ2xvYmFsRGlzcGxheU5vbmVTdHlsZVNoZWV0ID0g
bnVsbHB0cjsKKyAgICB9IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIC8vIFRoZXNlIGFj
dGlvbnMgZG9uJ3QgbmVlZCB0byBiZSBhcHBsaWVkIGluZGl2aWR1YWxseSBhbnkgbW9yZS4gVGhl
eSB3aWxsIGFsbCBiZSBhcHBsaWVkIHRvIGV2ZXJ5IHBhZ2UgYXMgYSBwcmVjb21waWxlZCBzdHls
ZSBzaGVldC4KICAgICBtX3VuaXZlcnNhbEFjdGlvbnNXaXRob3V0Q29uZGl0aW9ucy5yZW1vdmVB
bGxNYXRjaGluZyhpbkdsb2JhbERpc3BsYXlOb25lU3R5bGVTaGVldCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNv
bXBpbGVyLmNwcAppbmRleCA1ZTAzNWE2Li41YzM3ZWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxl
ci5jcHAKQEAgLTgwLDcgKzgwLDEwIEBAIHN0YXRpYyB2b2lkIHJlc29sdmVQZW5kaW5nRGlzcGxh
eU5vbmVBY3Rpb25zKFZlY3RvcjxTZXJpYWxpemVkQWN0aW9uQnl0ZT4mIGFjdGlvCiAgICAgZm9y
IChhdXRvJiBwZW5kaW5nRGlzcGxheU5vbmVBY3Rpb25zIDogbWFwLnZhbHVlcygpKSB7CiAgICAg
ICAgIHVpbnQzMl90IGFjdGlvbkxvY2F0aW9uID0gYWN0aW9ucy5zaXplKCk7CiAgICAgICAgIGFj
dGlvbnMuYXBwZW5kKHN0YXRpY19jYXN0PFNlcmlhbGl6ZWRBY3Rpb25CeXRlPihBY3Rpb25UeXBl
OjpDU1NEaXNwbGF5Tm9uZVNlbGVjdG9yKSk7Ci0gICAgICAgIHNlcmlhbGl6ZVN0cmluZyhhY3Rp
b25zLCBwZW5kaW5nRGlzcGxheU5vbmVBY3Rpb25zLmNvbWJpbmVkU2VsZWN0b3JzLnRvU3RyaW5n
KCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBwZW5kaW5nRGlzcGxheU5vbmVBY3Rpb25z
LmNvbWJpbmVkU2VsZWN0b3JzLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBzZXJpYWxpemVTdHJp
bmcoYWN0aW9ucywgKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7
CiAgICAgICAgIGZvciAodWludDMyX3QgY2xpZW50TG9jYXRpb24gOiBwZW5kaW5nRGlzcGxheU5v
bmVBY3Rpb25zLmNsaWVudExvY2F0aW9ucykKICAgICAgICAgICAgIGFjdGlvbkxvY2F0aW9uc1tj
bGllbnRMb2NhdGlvbl0gPSBhY3Rpb25Mb2NhdGlvbjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uU3R5bGVTaGVldC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uU3R5
bGVTaGVldC5jcHAKaW5kZXggZTI0YTM2Ni4uZGUzZTg1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblN0eWxlU2hlZXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25TdHls
ZVNoZWV0LmNwcApAQCAtNjAsNyArNjAsMTAgQEAgYm9vbCBDb250ZW50RXh0ZW5zaW9uU3R5bGVT
aGVldDo6YWRkRGlzcGxheU5vbmVTZWxlY3Rvcihjb25zdCBTdHJpbmcmIHNlbGVjdG9yLAogICAg
IGNzcy5hcHBlbmQoJ3snKTsKICAgICBjc3MuYXBwZW5kKENvbnRlbnRFeHRlbnNpb25zQmFja2Vu
ZDo6ZGlzcGxheU5vbmVDU1NSdWxlKCkpOwogICAgIGNzcy5hcHBlbmQoJ30nKTsKLSAgICBtX3N0
eWxlU2hlZXQtPmNvbnRlbnRzKCkucGFyc2VTdHJpbmcoY3NzLnRvU3RyaW5nKCkpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IGNzcy50b1N0cmluZygpKQorICAgICAgICBtX3N0eWxlU2hlZXQtPmNv
bnRlbnRzKCkucGFyc2VTdHJpbmcoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgp
OwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250
ZW50ZXh0ZW5zaW9ucy9UZXJtLmggYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9U
ZXJtLmgKaW5kZXggMGQ1MTgzMy4uNmYzMTk0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y29udGVudGV4dGVuc2lvbnMvVGVybS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRl
bnNpb25zL1Rlcm0uaApAQCAtMjQ2LDcgKzI0Niw5IEBAIGlubGluZSBTdHJpbmcgVGVybTo6dG9T
dHJpbmcoKSBjb25zdAogICAgICAgICB9CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCddJyk7CiAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKHF1YW50aWZpZXJUb1N0cmluZyhtX3F1YW50aWZpZXIpKTsK
LSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIGNhc2UgVGVybVR5cGU6Okdyb3VwOiB7CiAgICAg
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKQEAgLTI1NSw3ICsyNTcsOSBAQCBpbmxpbmUgU3Ry
aW5nIFRlcm06OnRvU3RyaW5nKCkgY29uc3QKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHRl
cm0udG9TdHJpbmcoKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKHF1YW50aWZpZXJUb1N0cmluZyhtX3F1YW50aWZpZXIpKTsKLSAgICAgICAg
cmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENS
QVNIKCk7CiAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5jcHAKaW5kZXggYTFhNTk3Yi4uMmYyNWM5ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxW
YWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0FuaW1hdGlvblRyaWdnZXJTY3Jv
bGxWYWx1ZS5jcHAKQEAgLTQzLDcgKzQzLDkgQEAgU3RyaW5nIENTU0FuaW1hdGlvblRyaWdnZXJT
Y3JvbGxWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQo
bV9lbmRWYWx1ZS0+Y3NzVGV4dCgpKTsKICAgICB9CiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwot
ICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1
bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogYm9vbCBDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWU6OmVxdWFscyhjb25zdCBDU1NB
bmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUmIG90aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NCYXNpY1NoYXBlcy5jcHAKaW5kZXggMjRmMjMzNC4uMTkyYTA0ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQmFzaWNTaGFwZXMuY3BwCkBAIC0xMDcsNyArMTA3LDkgQEAgc3RhdGljIFN0cmluZyBi
dWlsZENpcmNsZVN0cmluZyhjb25zdCBTdHJpbmcmIHJhZGl1cywgY29uc3QgU3RyaW5nJiBjZW50
ZXJYLCBjb24KICAgICAgICAgcmVzdWx0LmFwcGVuZChjZW50ZXJZKTsKICAgICB9CiAgICAgcmVz
dWx0LmFwcGVuZExpdGVyYWwoIikiKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBDU1NCYXNpY1NoYXBlQ2lyY2xlOjpj
c3NUZXh0KCkgY29uc3QKQEAgLTE2NCw3ICsxNjYsOSBAQCBzdGF0aWMgU3RyaW5nIGJ1aWxkRWxs
aXBzZVN0cmluZyhjb25zdCBTdHJpbmcmIHJhZGl1c1gsIGNvbnN0IFN0cmluZyYgcmFkaXVzWSwg
YwogICAgICAgICByZXN1bHQuYXBwZW5kKGNlbnRlclkpOwogICAgIH0KICAgICByZXN1bHQuYXBw
ZW5kTGl0ZXJhbCgiKSIpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIENTU0Jhc2ljU2hhcGVFbGxpcHNlOjpjc3NUZXh0
KCkgY29uc3QKQEAgLTIyNCw3ICsyMjgsOSBAQCBzdGF0aWMgU3RyaW5nIGJ1aWxkUGF0aFN0cmlu
Zyhjb25zdCBXaW5kUnVsZSYgd2luZFJ1bGUsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29ucwogICAg
ICAgICByZXN1bHQuYXBwZW5kKGJveCk7CiAgICAgfQogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQ1NTQmFzaWNTaGFw
ZVBhdGg6OmNzc1RleHQoKSBjb25zdApAQCAtMjgwLDcgKzI4Niw5IEBAIHN0YXRpYyBTdHJpbmcg
YnVpbGRQb2x5Z29uU3RyaW5nKGNvbnN0IFdpbmRSdWxlJiB3aW5kUnVsZSwgY29uc3QgVmVjdG9y
PFN0cmluZz4mCiAKICAgICByZXN1bHQuYXBwZW5kKCcpJyk7CiAKLSAgICByZXR1cm4gcmVzdWx0
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBDU1NCYXNp
Y1NoYXBlUG9seWdvbjo6Y3NzVGV4dCgpIGNvbnN0CkBAIC0zNzcsNyArMzg1LDkgQEAgc3RhdGlj
IFN0cmluZyBidWlsZEluc2V0U3RyaW5nKGNvbnN0IFN0cmluZyYgdG9wLCBjb25zdCBTdHJpbmcm
IHJpZ2h0LCBjb25zdCBTdHIKICAgICAgICAgfQogICAgIH0KICAgICByZXN1bHQuYXBwZW5kKCcp
Jyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgdXBkYXRlQ29ybmVyUmFkaXVzV2lkdGhBbmRIZWln
aHQoQ1NTUHJpbWl0aXZlVmFsdWUqIGNvcm5lciwgU3RyaW5nJiB3aWR0aCwgU3RyaW5nJiBoZWln
aHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5jcHAKaW5kZXggYjc1
ODMwMS4uYjkxYzBmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0
aW9uVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVl
LmNwcApAQCAtMTYyLDcgKzE2Miw5IEBAIHN0YXRpYyBTdHJpbmcgYnVpbGRDc3NUZXh0KGNvbnN0
IFN0cmluZyYgZXhwcmVzc2lvbikKICAgICByZXN1bHQuYXBwZW5kKGV4cHJlc3Npb24pOwogICAg
IGlmIChleHByZXNzaW9uSGFzU2luZ2xlVGVybSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnKScp
OwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBy
ZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogU3RyaW5nIENTU0NhbGNWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CkBAIC01NjMs
NyArNTY1LDkgQEAgcHJpdmF0ZToKICAgICAgICAgfQogICAgICAgICByZXN1bHQuYXBwZW5kKCcp
Jyk7CiAKLSAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0
byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIFN0cmluZyBjdXN0b21DU1NUZXh0KCkg
Y29uc3QgZmluYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbi5jcHAKaW5kZXggZWVhZTQyNi4uMWE0NGQ5NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTE2OTMsNyAr
MTY5Myw5IEBAIFN0cmluZyBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmNzc1RleHQoKSBj
b25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKCc7Jyk7CiAgICAgfQogCi0gICAgcmV0dXJuIHJl
c3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBFeGNlcHRpb25P
cjx2b2lkPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OnNldENzc1RleHQoY29uc3QgU3Ry
aW5nJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCmluZGV4IDllYjZm
MGYuLmFmOTFjMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVW
YWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcApA
QCAtMTAyLDcgKzEwMiw5IEBAIFN0cmluZyBDU1NDcm9zc2ZhZGVWYWx1ZTo6Y3VzdG9tQ1NTVGV4
dCgpIGNvbnN0CiAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIiwgIik7CiAgICAgcmVzdWx0LmFw
cGVuZChtX3BlcmNlbnRhZ2VWYWx1ZS0+Y3NzVGV4dCgpKTsKICAgICByZXN1bHQuYXBwZW5kKCcp
Jyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogCiBGbG9hdFNpemUgQ1NTQ3Jvc3NmYWRlVmFsdWU6OmZpeGVkU2l6ZShjb25zdCBSZW5k
ZXJFbGVtZW50JiByZW5kZXJlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
dXJzb3JJbWFnZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZh
bHVlLmNwcAppbmRleCAxYjZkN2YyLi4wZWVlZTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0N1cnNvckltYWdlVmFsdWUuY3BwCkBAIC02MSw3ICs2MSw5IEBAIFN0cmluZyBDU1NDdXJzb3JJ
bWFnZVZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZCgn
ICcpOwogICAgICAgICByZXN1bHQuYXBwZW5kTnVtYmVyKG1faG90U3BvdC55KCkpOwogICAgIH0K
LSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVz
dWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIFNWR0N1cnNvckVsZW1lbnQqIENTU0N1cnNvckltYWdlVmFsdWU6OnVwZGF0ZUN1cnNvckVs
ZW1lbnQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0N1c3RvbUlkZW50VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1
c3RvbUlkZW50VmFsdWUuY3BwCmluZGV4IDI2ZDZlM2IuLmY1ZWViNzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXN0b21JZGVudFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ3VzdG9tSWRlbnRWYWx1ZS5jcHAKQEAgLTU2LDcgKzU2LDkgQEAgU3RyaW5n
IENTU0N1c3RvbUlkZW50VmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAgICByZXR1
cm4gZ2V0UHJvcGVydHlOYW1lQXRvbWljU3RyaW5nKG1fcHJvcGVydHlJZCk7CiAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOwogICAgIHNlcmlhbGl6ZUlkZW50aWZpZXIobV9zdHJpbmcsIGJ1aWxk
ZXIpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
RmlsdGVySW1hZ2VWYWx1ZS5jcHAKaW5kZXggZWFhYjcwMy4uMjMwZTA3MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcApAQCAtNTMsNyArNTMsOSBAQCBTdHJp
bmcgQ1NTRmlsdGVySW1hZ2VWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgcmVzdWx0
LmFwcGVuZExpdGVyYWwoIiwgIik7CiAgICAgcmVzdWx0LmFwcGVuZChtX2ZpbHRlclZhbHVlLT5j
c3NUZXh0KCkpOwogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4gcmVzdWx0LnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIEZsb2F0U2l6ZSBDU1NGaWx0
ZXJJbWFnZVZhbHVlOjpmaXhlZFNpemUoY29uc3QgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VSdWxlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUuY3BwCmluZGV4IDBkZGExYjIuLjg1OTQ2ZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUuY3BwCkBAIC01Nyw3ICs1Nyw5IEBA
IFN0cmluZyBDU1NGb250RmFjZVJ1bGU6OmNzc1RleHQoKSBjb25zdAogICAgIGlmICghZGVzY3Mu
aXNFbXB0eSgpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCcgJyk7CiAgICAgcmVzdWx0LmFwcGVu
ZCgnfScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogdm9pZCBDU1NGb250RmFjZVJ1bGU6OnJlYXR0YWNoKFN0eWxlUnVsZUJhc2Um
IHJ1bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAKaW5kZXgg
ODFkOGE3NS4uMmYzNDYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRG
YWNlU3JjVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1Zh
bHVlLmNwcApAQCAtODEsNyArODEsOSBAQCBTdHJpbmcgQ1NTRm9udEZhY2VTcmNWYWx1ZTo6Y3Vz
dG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQobV9mb3JtYXQpOwogICAg
ICAgICByZXN1bHQuYXBwZW5kKCcpJyk7CiAgICAgfQotICAgIHJldHVybiByZXN1bHQudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDU1NGb250RmFjZVNyY1Zh
bHVlOjp0cmF2ZXJzZVN1YnJlc291cmNlcyhjb25zdCBXVEY6OkZ1bmN0aW9uPGJvb2wgKGNvbnN0
IENhY2hlZFJlc291cmNlJik+JiBoYW5kbGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRGZWF0dXJlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ZvbnRGZWF0dXJlVmFsdWUuY3BwCmluZGV4IDdmZjA3ZjMuLjQ3NDYyMmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmVhdHVyZVZhbHVlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udEZlYXR1cmVWYWx1ZS5jcHAKQEAgLTUwLDcgKzUwLDkgQEAgU3Ry
aW5nIENTU0ZvbnRGZWF0dXJlVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAgICBi
dWlsZGVyLmFwcGVuZCgnICcpOwogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX3ZhbHVl
KTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTRm9udEZlYXR1cmVWYWx1ZTo6ZXF1YWxzKGNvbnN0IENT
U0ZvbnRGZWF0dXJlVmFsdWUmIG90aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ZvbnRTdHlsZVJhbmdlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ZvbnRTdHlsZVJhbmdlVmFsdWUuY3BwCmluZGV4IDBjZGNkYmYuLmVhNjY2YjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U3R5bGVSYW5nZVZhbHVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFN0eWxlUmFuZ2VWYWx1ZS5jcHAKQEAgLTM5LDcgKzM5
LDkgQEAgU3RyaW5nIENTU0ZvbnRTdHlsZVJhbmdlVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25z
dAogICAgIGJ1aWxkZXIuYXBwZW5kKGZvbnRTdHlsZVZhbHVlLT5jc3NUZXh0KCkpOwogICAgIGJ1
aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgYnVpbGRlci5hcHBlbmQob2JsaXF1ZVZhbHVlcy0+Y3Nz
VGV4dCgpKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogYm9vbCBDU1NGb250U3R5bGVSYW5nZVZhbHVlOjplcXVhbHMoY29uc3Qg
Q1NTRm9udFN0eWxlUmFuZ2VWYWx1ZSYgb3RoZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udFN0eWxlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ZvbnRTdHlsZVZhbHVlLmNwcAppbmRleCAyODUwZTIzLi44YzRlODU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFN0eWxlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250U3R5bGVWYWx1ZS5jcHAKQEAgLTM5LDcgKzM5LDkgQEAgU3RyaW5nIENT
U0ZvbnRTdHlsZVZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICBidWlsZGVyLmFwcGVu
ZChmb250U3R5bGVWYWx1ZS0+Y3NzVGV4dCgpKTsKICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwog
ICAgIGJ1aWxkZXIuYXBwZW5kKG9ibGlxdWVWYWx1ZS0+Y3NzVGV4dCgpKTsKLSAgICByZXR1cm4g
YnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBD
U1NGb250U3R5bGVWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0ZvbnRTdHlsZVZhbHVlJiBvdGhlcikg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250VmFsdWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYWx1ZS5jcHAKaW5kZXggNzY2YzExMy4uMWNmNzhh
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYWx1ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYWx1ZS5jcHAKQEAgLTY1LDcgKzY1LDkgQEAgU3Ry
aW5nIENTU0ZvbnRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5h
cHBlbmQoZmFtaWx5LT5jc3NUZXh0KCkpOwogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDU1NGb250VmFsdWU6
OmVxdWFscyhjb25zdCBDU1NGb250VmFsdWUmIG90aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRm9udFZhcmlhdGlvblZhbHVlLmNwcAppbmRleCBhMjA4MjYxLi5jZDViMzJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFZhcmlhdGlvblZhbHVlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFZhcmlhdGlvblZhbHVlLmNwcApAQCAtNDgs
NyArNDgsOSBAQCBTdHJpbmcgQ1NTRm9udFZhcmlhdGlvblZhbHVlOjpjdXN0b21DU1NUZXh0KCkg
Y29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoYyk7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKCInICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fdmFsdWUpOwotICAgIHJldHVy
biBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29s
IENTU0ZvbnRWYXJpYXRpb25WYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0ZvbnRWYXJpYXRpb25WYWx1
ZSYgb3RoZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRnVuY3Rp
b25WYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHAKaW5k
ZXggNzVlZjBjMS4uYmJkZGZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Z1
bmN0aW9uVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGdW5jdGlvblZhbHVl
LmNwcApAQCAtMzcsNyArMzcsOSBAQCBTdHJpbmcgQ1NTRnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NT
VGV4dCgpIGNvbnN0CiAgICAgcmVzdWx0LmFwcGVuZCgnKCcpOwogICAgIHJlc3VsdC5hcHBlbmQo
Q1NTVmFsdWVMaXN0OjpjdXN0b21DU1NUZXh0KCkpOwogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsK
LSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVz
dWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAppbmRleCBlZWYyOTVi
Li4wODMzN2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCkBAIC02
ODQsNyArNjg0LDkgQEAgU3RyaW5nIENTU0xpbmVhckdyYWRpZW50VmFsdWU6OmN1c3RvbUNTU1Rl
eHQoKSBjb25zdAogICAgIH0KIAogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4g
cmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIC8vIENvbXB1
dGUgdGhlIGVuZHBvaW50cyBzbyB0aGF0IGEgZ3JhZGllbnQgb2YgdGhlIGdpdmVuIGFuZ2xlIGNv
dmVycyBhIGJveCBvZiB0aGUgZ2l2ZW4gc2l6ZS4KQEAgLTEwMDIsNyArMTAwNCw5IEBAIFN0cmlu
ZyBDU1NSYWRpYWxHcmFkaWVudFZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICB9CiAK
ICAgICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBmbG9hdCBDU1NSYWRpYWxHcmFkaWVudFZhbHVl
OjpyZXNvbHZlUmFkaXVzKENTU1ByaW1pdGl2ZVZhbHVlJiByYWRpdXMsIGNvbnN0IENTU1RvTGVu
Z3RoQ29udmVyc2lvbkRhdGEmIGNvbnZlcnNpb25EYXRhLCBmbG9hdCogd2lkdGhPckhlaWdodCkK
QEAgLTEzMzAsNyArMTMzNCw5IEBAIFN0cmluZyBDU1NDb25pY0dyYWRpZW50VmFsdWU6OmN1c3Rv
bUNTU1RleHQoKSBjb25zdAogICAgIH0KICAgICAKICAgICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0g
ICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3Vs
dC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiBSZWY8R3JhZGllbnQ+IENTU0NvbmljR3JhZGllbnRWYWx1ZTo6Y3JlYXRlR3JhZGllbnQoUmVu
ZGVyRWxlbWVudCYsIGNvbnN0IEZsb2F0U2l6ZSYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTR3JpZEF1dG9SZXBlYXRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
R3JpZEF1dG9SZXBlYXRWYWx1ZS5jcHAKaW5kZXggZDViYzQ0OS4uZmQ3OTBkYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRBdXRvUmVwZWF0VmFsdWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNwcApAQCAtNDMsNyArNDMs
OSBAQCBTdHJpbmcgQ1NTR3JpZEF1dG9SZXBlYXRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0
CiAgICAgcmVzdWx0LmFwcGVuZCgiLCAiKTsKICAgICByZXN1bHQuYXBwZW5kKENTU1ZhbHVlTGlz
dDo6Y3VzdG9tQ1NTVGV4dCgpKTsKICAgICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJu
IHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZFRl
bXBsYXRlQXJlYXNWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRl
QXJlYXNWYWx1ZS5jcHAKaW5kZXggZTBiNzg2NS4uOGJjM2ZmYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcApAQCAtODAsNyArODAsOSBA
QCBTdHJpbmcgQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0
CiAgICAgICAgIGlmIChyb3cgIT0gbV9yb3dDb3VudCAtIDEpCiAgICAgICAgICAgICBidWlsZGVy
LmFwcGVuZCgnICcpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVl
OjplcXVhbHMoY29uc3QgQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZSYgb3RoZXIpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKaW5kZXggYTk3ZGMyMS4uZTM3NTBh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcApAQCAtMTQ2LDcgKzE0
Niw5IEBAIFN0cmluZyBDU1NJbWFnZVNldFZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAg
ICB9CiAKICAgICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU0ltYWdlU2V0VmFsdWU6
OnRyYXZlcnNlU3VicmVzb3VyY2VzKGNvbnN0IFdURjo6RnVuY3Rpb248Ym9vbCAoY29uc3QgQ2Fj
aGVkUmVzb3VyY2UmKT4mIGhhbmRsZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTSW1wb3J0UnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVs
ZS5jcHAKaW5kZXggNGM2NjYxMy4uZjlhYWVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ltcG9ydFJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRS
dWxlLmNwcApAQCAtNzIsNyArNzIsOSBAQCBTdHJpbmcgQ1NTSW1wb3J0UnVsZTo6Y3NzVGV4dCgp
IGNvbnN0CiAgICAgfQogICAgIHJlc3VsdC5hcHBlbmQoJzsnKTsKICAgICAKLSAgICByZXR1cm4g
cmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIENTU1N0eWxl
U2hlZXQqIENTU0ltcG9ydFJ1bGU6OnN0eWxlU2hlZXQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTS2V5ZnJhbWVSdWxlLmNwcAppbmRleCA4MWU5OTU4Li5kY2EzZjczIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTS2V5ZnJhbWVSdWxlLmNwcApAQCAtNjcsNyArNjcsOSBAQCBTdHJpbmcgU3R5bGVS
dWxlS2V5ZnJhbWU6OmtleVRleHQoKSBjb25zdAogICAgICAgICBrZXlUZXh0LmFwcGVuZCgnJScp
OwogICAgIH0KIAotICAgIHJldHVybiBrZXlUZXh0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0ga2V5VGV4dC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogICAgIAogYm9vbCBTdHlsZVJ1bGVLZXlmcmFtZTo6c2V0S2V5VGV4dChj
b25zdCBTdHJpbmcmIGtleVRleHQpCkBAIC05MCw3ICs5Miw5IEBAIFN0cmluZyBTdHlsZVJ1bGVL
ZXlmcmFtZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgaWYgKCFkZWNscy5pc0VtcHR5KCkpCiAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoJyAnKTsKICAgICByZXN1bHQuYXBwZW5kKCd9Jyk7Ci0gICAgcmV0
dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBDU1NL
ZXlmcmFtZVJ1bGU6OkNTU0tleWZyYW1lUnVsZShTdHlsZVJ1bGVLZXlmcmFtZSYga2V5ZnJhbWUs
IENTU0tleWZyYW1lc1J1bGUqIHBhcmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NLZXlmcmFtZXNSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZXNS
dWxlLmNwcAppbmRleCA5ZjAwMGQ5Li43N2IxODI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTS2V5ZnJhbWVzUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0tl
eWZyYW1lc1J1bGUuY3BwCkBAIC0xOTgsNyArMTk4LDkgQEAgU3RyaW5nIENTU0tleWZyYW1lc1J1
bGU6OmNzc1RleHQoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKCdcbicpOwogICAgIH0K
ICAgICByZXN1bHQuYXBwZW5kKCd9Jyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB1bnNpZ25lZCBDU1NLZXlmcmFtZXNSdWxlOjps
ZW5ndGgoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xpbmVCb3hD
b250YWluVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xpbmVCb3hDb250YWluVmFs
dWUuY3BwCmluZGV4IDE5ZmRmOGIuLjNkZWIzYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NMaW5lQm94Q29udGFpblZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTTGluZUJveENvbnRhaW5WYWx1ZS5jcHAKQEAgLTczLDcgKzczLDkgQEAgU3RyaW5nIENTU0xp
bmVCb3hDb250YWluVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAgICB0ZXh0LmFw
cGVuZExpdGVyYWwoImluaXRpYWwtbGV0dGVyIik7CiAgICAgfQogCi0gICAgcmV0dXJuIHRleHQu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0ZXh0LnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NNYXJrdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU01h
cmt1cC5jcHAKaW5kZXggODFmZTg4OC4uNjA5YzcxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU01hcmt1cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU01hcmt1cC5j
cHAKQEAgLTE4Niw3ICsxODYsOSBAQCBTdHJpbmcgc2VyaWFsaXplU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKQogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBzZXJpYWxpemVT
dHJpbmcoc3RyaW5nLCBidWlsZGVyKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIHNlcmlhbGl6ZVVSTChjb25zdCBT
dHJpbmcmIHN0cmluZykKQEAgLTIwNCw3ICsyMDYsOSBAQCBTdHJpbmcgc2VyaWFsaXplQXNTdHJp
bmdPckN1c3RvbUlkZW50KGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgIGlmIChpc0NTU1Rva2Vu
aXplcklkZW50aWZpZXIoc3RyaW5nKSkgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7
CiAgICAgICAgIHNlcmlhbGl6ZUlkZW50aWZpZXIoc3RyaW5nLCBidWlsZGVyKTsKLSAgICAgICAg
cmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENS
QVNIKCk7CiAgICAgfQogICAgIHJldHVybiBzZXJpYWxpemVTdHJpbmcoc3RyaW5nKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU01lZGlhUnVsZS5jcHAKaW5kZXggYjA5NGVkZC4uMTc0ZjVhNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU01lZGlhUnVsZS5jcHAKQEAgLTU3LDcgKzU3LDkgQEAgU3RyaW5nIENTU01l
ZGlhUnVsZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoInsgXG4i
KTsKICAgICBhcHBlbmRDc3NUZXh0Rm9ySXRlbXMocmVzdWx0KTsKICAgICByZXN1bHQuYXBwZW5k
KCd9Jyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBNZWRpYUxpc3QqIENTU01lZGlhUnVsZTo6bWVkaWEoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU05hbWVzcGFjZVJ1bGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU05hbWVzcGFjZVJ1bGUuY3BwCmluZGV4IDNkM2VjNmYuLjcwNjg5NzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NOYW1lc3BhY2VSdWxlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTTmFtZXNwYWNlUnVsZS5jcHAKQEAgLTYwLDcgKzYwLDkgQEAg
U3RyaW5nIENTU05hbWVzcGFjZVJ1bGU6OmNzc1RleHQoKSBjb25zdAogICAgIHJlc3VsdC5hcHBl
bmQoInVybCgiKTsKICAgICByZXN1bHQuYXBwZW5kKHNlcmlhbGl6ZVN0cmluZyhuYW1lc3BhY2VV
UkkoKSkpOwogICAgIHJlc3VsdC5hcHBlbmQoIik7Iik7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIENTU05hbWVzcGFjZVJ1
bGU6OnJlYXR0YWNoKFN0eWxlUnVsZUJhc2UmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhZ2VSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYWdlUnVsZS5jcHAK
aW5kZXggNDdjZjQ1Ni4uZTY5ZGE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhZ2VSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFnZVJ1bGUuY3BwCkBA
IC02NCw3ICs2NCw5IEBAIFN0cmluZyBDU1NQYWdlUnVsZTo6c2VsZWN0b3JUZXh0KCkgY29uc3QK
ICAgICAgICAgICAgIHRleHQuYXBwZW5kKHBhZ2VTcGVjaWZpY2F0aW9uKTsKICAgICAgICAgfQog
ICAgIH0KLSAgICByZXR1cm4gdGV4dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHRleHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogdm9pZCBDU1NQYWdlUnVsZTo6c2V0U2VsZWN0b3JUZXh0KGNvbnN0IFN0cmluZyYgc2Vs
ZWN0b3JUZXh0KQpAQCAtOTAsNyArOTIsOSBAQCBTdHJpbmcgQ1NTUGFnZVJ1bGU6OmNzc1RleHQo
KSBjb25zdAogICAgIGlmICghZGVjbHMuaXNFbXB0eSgpKQogICAgICAgICByZXN1bHQuYXBwZW5k
KCcgJyk7CiAgICAgcmVzdWx0LmFwcGVuZCgnfScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBDU1NQYWdlUnVsZTo6cmVh
dHRhY2goU3R5bGVSdWxlQmFzZSYgcnVsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZl
VmFsdWUuY3BwCmluZGV4IGE3NjEyNzYuLjgzZTE2ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlLmNwcApAQCAtMTA0NSw3ICsxMDQ1LDkgQEAgQUxXQVlTX0lOTElORSBT
dHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6OmZvcm1hdE51bWJlckZvckN1c3RvbUNTU1RleHQoKSBj
b25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKFN0cmluZyhtX3ZhbHVlLnN0cmluZykpOwogICAg
ICAgICByZXN1bHQuYXBwZW5kKCcpJyk7CiAKLSAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmlu
ZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICBjYXNl
IENTU19DT1VOVEVSX05BTUU6CiAgICAgICAgIHJldHVybiAiY291bnRlcigiICsgU3RyaW5nKG1f
dmFsdWUuc3RyaW5nKSArICcpJzsKQEAgLTEwNjksNyArMTA3MSw5IEBAIEFMV0FZU19JTkxJTkUg
U3RyaW5nIENTU1ByaW1pdGl2ZVZhbHVlOjpmb3JtYXROdW1iZXJGb3JDdXN0b21DU1NUZXh0KCkg
Y29uc3QKICAgICAgICAgfQogICAgICAgICByZXN1bHQuYXBwZW5kKCcpJyk7CiAKLSAgICAgICAg
cmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1
bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFT
SCgpOwogICAgIH0KICAgICBjYXNlIENTU19SRUNUOgogICAgICAgICByZXR1cm4gcmVjdFZhbHVl
KCktPmNzc1RleHQoKTsKQEAgLTExMTIsNyArMTExNiw5IEBAIEFMV0FZU19JTkxJTkUgU3RyaW5n
IENTU1ByaW1pdGl2ZVZhbHVlOjpmb3JtYXROdW1iZXJGb3JDdXN0b21DU1NUZXh0KCkgY29uc3QK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKICAgICAgICAg
fQotICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgICAgIENSQVNIKCk7CiAgICAgfQogI2VuZGlmCiAgICAgY2FzZSBDU1NfQ0FMQzoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5U291cmNlRGF0YS5jcHAKaW5kZXggNzViNzk5MC4u
ZmQyZTgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5U291cmNl
RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5U291cmNlRGF0YS5j
cHAKQEAgLTk2LDcgKzk2LDkgQEAgU3RyaW5nIENTU1Byb3BlcnR5U291cmNlRGF0YTo6dG9TdHJp
bmcoKSBjb25zdAogICAgIGlmIChpbXBvcnRhbnQpCiAgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRl
cmFsKCIgIWltcG9ydGFudCIpOwogICAgIHJlc3VsdC5hcHBlbmQoJzsnKTsKLSAgICByZXR1cm4g
cmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHVuc2lnbmVk
IENTU1Byb3BlcnR5U291cmNlRGF0YTo6aGFzaCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVj
dG9yLmNwcAppbmRleCAxZmU0MmNkLi41NmJmYzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rv
ci5jcHAKQEAgLTcyNiwyNiArNzI2LDMxIEBAIFN0cmluZyBDU1NTZWxlY3Rvcjo6c2VsZWN0b3JU
ZXh0KGNvbnN0IFN0cmluZyYgcmlnaHRTaWRlKSBjb25zdAogICAgICAgICBjcyA9IGNzLT50YWdI
aXN0b3J5KCk7CiAgICAgfQogCisgICAgU3RyaW5nIHN0cmluZzsKKyAgICBpZiAoYXV0byBzID0g
c3RyLnRvU3RyaW5nKCkpCisgICAgICAgIHN0cmluZyA9ICpzOworICAgIGVsc2UKKyAgICAgICAg
Q1JBU0goKTsKICAgICBpZiAoY29uc3QgQ1NTU2VsZWN0b3IqIHRhZ0hpc3RvcnkgPSBjcy0+dGFn
SGlzdG9yeSgpKSB7CiAgICAgICAgIHN3aXRjaCAoY3MtPnJlbGF0aW9uKCkpIHsKICAgICAgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6RGVzY2VuZGFudFNwYWNlOgotICAgICAgICAgICAgcmV0dXJuIHRh
Z0hpc3RvcnktPnNlbGVjdG9yVGV4dCgiICIgKyBzdHIudG9TdHJpbmcoKSArIHJpZ2h0U2lkZSk7
CisgICAgICAgICAgICByZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0b3JUZXh0KCIgIiArIHN0cmlu
ZyArIHJpZ2h0U2lkZSk7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkNoaWxkOgotICAgICAg
ICAgICAgcmV0dXJuIHRhZ0hpc3RvcnktPnNlbGVjdG9yVGV4dCgiID4gIiArIHN0ci50b1N0cmlu
ZygpICsgcmlnaHRTaWRlKTsKKyAgICAgICAgICAgIHJldHVybiB0YWdIaXN0b3J5LT5zZWxlY3Rv
clRleHQoIiA+ICIgKyBzdHJpbmcgKyByaWdodFNpZGUpOwogICAgICAgICBjYXNlIENTU1NlbGVj
dG9yOjpEaXJlY3RBZGphY2VudDoKLSAgICAgICAgICAgIHJldHVybiB0YWdIaXN0b3J5LT5zZWxl
Y3RvclRleHQoIiArICIgKyBzdHIudG9TdHJpbmcoKSArIHJpZ2h0U2lkZSk7CisgICAgICAgICAg
ICByZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0b3JUZXh0KCIgKyAiICsgc3RyaW5nICsgcmlnaHRT
aWRlKTsKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6SW5kaXJlY3RBZGphY2VudDoKLSAgICAg
ICAgICAgIHJldHVybiB0YWdIaXN0b3J5LT5zZWxlY3RvclRleHQoIiB+ICIgKyBzdHIudG9TdHJp
bmcoKSArIHJpZ2h0U2lkZSk7CisgICAgICAgICAgICByZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0
b3JUZXh0KCIgfiAiICsgc3RyaW5nICsgcmlnaHRTaWRlKTsKICAgICAgICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6U3Vic2VsZWN0b3I6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICNp
ZiBBU1NFUlRfRElTQUJMRUQKICAgICAgICAgICAgIEZBTExUSFJPVUdIOwogI2VuZGlmCiAgICAg
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRhbnQ6Ci0gICAgICAgICAgICByZXR1
cm4gdGFnSGlzdG9yeS0+c2VsZWN0b3JUZXh0KHN0ci50b1N0cmluZygpICsgcmlnaHRTaWRlKTsK
KyAgICAgICAgICAgIHJldHVybiB0YWdIaXN0b3J5LT5zZWxlY3RvclRleHQoc3RyaW5nICsgcmln
aHRTaWRlKTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gc3RyLnRvU3RyaW5nKCkgKyBy
aWdodFNpZGU7CisgICAgcmV0dXJuIHN0cmluZyArIHJpZ2h0U2lkZTsKIH0KIAogdm9pZCBDU1NT
ZWxlY3Rvcjo6c2V0QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHZhbHVlLCBib29sIGlz
Q2FzZUluc2Vuc2l0aXZlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVj
dG9yTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0LmNwcAppbmRl
eCA1N2VmYTY3Li5hZTMzMDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2Vs
ZWN0b3JMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0LmNw
cApAQCAtMTM4LDcgKzEzOCw5IEBAIFN0cmluZyBDU1NTZWxlY3Rvckxpc3Q6OnNlbGVjdG9yc1Rl
eHQoKSBjb25zdAogewogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogICAgIGJ1aWxkU2VsZWN0
b3JzVGV4dChyZXN1bHQpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBDU1NTZWxlY3Rvckxpc3Q6OmJ1aWxkU2VsZWN0b3Jz
VGV4dChTdHJpbmdCdWlsZGVyJiBzdHJpbmdCdWlsZGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1NoYWRvd1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTaGFkb3dWYWx1ZS5jcHAKaW5kZXggOTQ5NDdkNy4uZTI5Yzg1ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1NoYWRvd1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU2hhZG93VmFsdWUuY3BwCkBAIC02OSw3ICs2OSw5IEBAIFN0cmluZyBDU1NTaGFkb3dW
YWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIHRleHQuYXBwZW5kKHN0eWxlLT5j
c3NUZXh0KCkpOwogICAgIH0KIAotICAgIHJldHVybiB0ZXh0LnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gdGV4dC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU1NoYWRvd1ZhbHVlOjplcXVhbHMoY29uc3QgQ1NT
U2hhZG93VmFsdWUmIG90aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmNwcApp
bmRleCBiYjhkMjFjLi41ODA4ZmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmNwcApA
QCAtMTIwLDcgKzEyMCw5IEBAIFN0cmluZyBDU1NTdHlsZVJ1bGU6OmNzc1RleHQoKSBjb25zdAog
ICAgIGlmICghZGVjbHMuaXNFbXB0eSgpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCcgJyk7CiAg
ICAgcmVzdWx0LmFwcGVuZCgnfScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBDU1NTdHlsZVJ1bGU6OnJlYXR0YWNoKFN0
eWxlUnVsZUJhc2UmIHJ1bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAKaW5kZXgg
MWVjYzViYS4uODY5ODRmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxl
U2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcApAQCAt
MzE2LDkgKzMxNiwxMiBAQCBFeGNlcHRpb25PcjxpbnQ+IENTU1N0eWxlU2hlZXQ6OmFkZFJ1bGUo
Y29uc3QgU3RyaW5nJiBzZWxlY3RvciwgY29uc3QgU3RyaW5nJiBzdAogICAgIGlmICghc3R5bGUu
aXNFbXB0eSgpKQogICAgICAgICB0ZXh0LmFwcGVuZCgnICcpOwogICAgIHRleHQuYXBwZW5kKCd9
Jyk7Ci0gICAgYXV0byBpbnNlcnRSdWxlUmVzdWx0ID0gaW5zZXJ0UnVsZSh0ZXh0LnRvU3RyaW5n
KCksIGluZGV4LnZhbHVlX29yKGxlbmd0aCgpKSk7Ci0gICAgaWYgKGluc2VydFJ1bGVSZXN1bHQu
aGFzRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBpbnNlcnRSdWxlUmVzdWx0LnJlbGVhc2VF
eGNlcHRpb24oKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0ZXh0LnRvU3RyaW5nKCkpIHsKKyAg
ICAgICAgYXV0byBpbnNlcnRSdWxlUmVzdWx0ID0gaW5zZXJ0UnVsZSgqc3RyaW5nLCBpbmRleC52
YWx1ZV9vcihsZW5ndGgoKSkpOworICAgICAgICBpZiAoaW5zZXJ0UnVsZVJlc3VsdC5oYXNFeGNl
cHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBpbnNlcnRSdWxlUmVzdWx0LnJlbGVhc2VFeGNl
cHRpb24oKTsKKyAgICB9IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICAKICAgICAvLyBBcyBw
ZXIgTWljcm9zb2Z0IGRvY3VtZW50YXRpb24sIGFsd2F5cyByZXR1cm4gLTEuCiAgICAgcmV0dXJu
IC0xOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1cHBvcnRzUnVsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3VwcG9ydHNSdWxlLmNwcAppbmRleCBlMTNlMTNiLi5m
Y2JlMzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3VwcG9ydHNSdWxlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3VwcG9ydHNSdWxlLmNwcApAQCAtNTAsNyAr
NTAsOSBAQCBTdHJpbmcgQ1NTU3VwcG9ydHNSdWxlOjpjc3NUZXh0KCkgY29uc3QKICAgICBhcHBl
bmRDc3NUZXh0Rm9ySXRlbXMocmVzdWx0KTsKICAgICByZXN1bHQuYXBwZW5kKCd9Jyk7CiAKLSAg
ICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IFN0cmluZyBDU1NTdXBwb3J0c1J1bGU6OmNvbmRpdGlvblRleHQoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuY3BwCmluZGV4IDkwZWY2Y2QuLjA5
Mjg4MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUaW1pbmdGdW5jdGlvblZh
bHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVGltaW5nRnVuY3Rpb25WYWx1ZS5j
cHAKQEAgLTQyLDcgKzQyLDkgQEAgU3RyaW5nIENTU0N1YmljQmV6aWVyVGltaW5nRnVuY3Rpb25W
YWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIs
ICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1feTIpOwogICAgIGJ1aWxkZXIuYXBwZW5k
KCcpJyk7ICAgIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBib29sIENTU0N1YmljQmV6aWVyVGltaW5nRnVuY3Rpb25WYWx1ZTo6
ZXF1YWxzKGNvbnN0IENTU0N1YmljQmV6aWVyVGltaW5nRnVuY3Rpb25WYWx1ZSYgb3RoZXIpIGNv
bnN0CkBAIC01OSw3ICs2MSw5IEBAIFN0cmluZyBDU1NTdGVwc1RpbWluZ0Z1bmN0aW9uVmFsdWU6
OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwg
c3RhcnQpIik7CiAgICAgZWxzZQogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgZW5k
KSIpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBib29sIENTU1N0ZXBzVGltaW5nRnVuY3Rpb25WYWx1ZTo6ZXF1YWxzKGNvbnN0
IENTU1N0ZXBzVGltaW5nRnVuY3Rpb25WYWx1ZSYgb3RoZXIpIGNvbnN0CkBAIC03Myw3ICs3Nyw5
IEBAIFN0cmluZyBDU1NGcmFtZXNUaW1pbmdGdW5jdGlvblZhbHVlOjpjdXN0b21DU1NUZXh0KCkg
Y29uc3QKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoImZyYW1lcygiKTsKICAgICBidWlsZGVy
LmFwcGVuZE51bWJlcihtX2ZyYW1lcyk7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpIik7
Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIGJvb2wgQ1NTRnJhbWVzVGltaW5nRnVuY3Rpb25WYWx1ZTo6ZXF1YWxzKGNvbnN0IENT
U0ZyYW1lc1RpbWluZ0Z1bmN0aW9uVmFsdWUmIG90aGVyKSBjb25zdApAQCAtOTMsNyArOTksOSBA
QCBTdHJpbmcgQ1NTU3ByaW5nVGltaW5nRnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNv
bnN0CiAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICBidWlsZGVyLmFwcGVuZE51bWJlciht
X2luaXRpYWxWZWxvY2l0eSk7CiAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4g
YnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBD
U1NTcHJpbmdUaW1pbmdGdW5jdGlvblZhbHVlOjplcXVhbHMoY29uc3QgQ1NTU3ByaW5nVGltaW5n
RnVuY3Rpb25WYWx1ZSYgb3RoZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVmFsdWVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuY3Bw
CmluZGV4IGI2ZTBjMmM1Li4zMDkwZTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0LmNw
cApAQCAtMTA3LDcgKzEwNyw5IEBAIFN0cmluZyBDU1NWYWx1ZUxpc3Q6OmN1c3RvbUNTU1RleHQo
KSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKHZhbHVlLmdldCgpLmNzc1RleHQoKSk7CiAg
ICAgfQogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBib29sIENTU1ZhbHVlTGlzdDo6ZXF1YWxzKGNvbnN0IENTU1ZhbHVlTGlzdCYg
b3RoZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFyaWFibGVE
YXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYXJpYWJsZURhdGEuY3BwCmluZGV4IDk4
YzlkMDkuLjMxMThkZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYXJpYWJs
ZURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYXJpYWJsZURhdGEuY3BwCkBA
IC02OCw3ICs2OCwxMCBAQCB2b2lkIENTU1ZhcmlhYmxlRGF0YTo6Y29uc3VtZUFuZFVwZGF0ZVRv
a2Vucyhjb25zdCBDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKICAgICAgICAgaWYgKHRva2Vu
Lmhhc1N0cmluZ0JhY2tpbmcoKSkKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHRv
a2VuLnZhbHVlKCkpOwogICAgIH0KLSAgICBtX2JhY2tpbmdTdHJpbmcgPSBzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICBtX2JhY2tpbmdTdHJpbmcgPSAqc3RyaW5nOworICAgIGVsc2UKKyAgICAg
ICAgQ1JBU0goKTsKICAgICBpZiAobV9iYWNraW5nU3RyaW5nLmlzOEJpdCgpKQogICAgICAgICB1
cGRhdGVUb2tlbnM8TENoYXI+KHJhbmdlKTsKICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01D
U1NOYW1lc3BhY2UuY3BwCmluZGV4IDkxMzUyMzcuLmNlMTVkNmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9ET01DU1NOYW1lc3BhY2UuY3BwCkBAIC04NCw3ICs4NCw5IEBAIFN0cmluZyBET01DU1NOYW1l
c3BhY2U6OmVzY2FwZShjb25zdCBTdHJpbmcmIGlkZW50KQogewogICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKICAgICBzZXJpYWxpemVJZGVudGlmaWVyKGlkZW50LCBidWlsZGVyKTsKLSAgICBy
ZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeFJlYWRPbmx5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXhSZWFkT25seS5jcHAKaW5kZXggZjc0YjQ2NS4u
Nzg4MjI4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeFJlYWRPbmx5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NTWF0cml4UmVhZE9ubHkuY3BwCkBAIC00
NTAsNyArNDUwLDkgQEAgRXhjZXB0aW9uT3I8U3RyaW5nPiBET01NYXRyaXhSZWFkT25seTo6dG9T
dHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmc6Om51bWJlclRvU3Ry
aW5nRUNNQVNjcmlwdChtX21hdHJpeC5tNDQoKSkpOwogICAgIH0KICAgICBidWlsZGVyLmFwcGVu
ZCgnKScpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gV1RGTW92ZSgqc3RyaW5n
KTsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwCmluZGV4IGU0OTY4ODQu
LjVlOThlMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01W
YWx1ZUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1
ZUxpc3QuY3BwCkBAIC01NCw3ICs1NCw5IEBAIFN0cmluZyBEZXByZWNhdGVkQ1NTT01WYWx1ZUxp
c3Q6OmNzc1RleHQoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKHZhbHVlLmdldCgpLmNz
c1RleHQoKSk7CiAgICAgfQogICAgIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0ZvbnRGYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAKaW5kZXgg
NTgxZjVlOC4uYzI1ODZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwCkBAIC0zMjgsNyArMzI4
LDkgQEAgU3RyaW5nIEZvbnRGYWNlOjpzdHlsZSgpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCcgJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG1heGltdW1Ob25LZXl3b3JkLT5vYmxp
cXVlVmFsdWUtPmNzc1RleHQoKSk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgRm9udEZhY2U6OndlaWdo
dCgpIGNvbnN0CkBAIC0zNDksNyArMzUxLDkgQEAgU3RyaW5nIEZvbnRGYWNlOjp3ZWlnaHQoKSBj
b25zdAogICAgIGJ1aWxkZXIuYXBwZW5kKG1pbmltdW1Ob25LZXl3b3JkLT5jc3NUZXh0KCkpOwog
ICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgYnVpbGRlci5hcHBlbmQobWF4aW11bU5vbktl
eXdvcmQtPmNzc1RleHQoKSk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBGb250RmFjZTo6c3RyZXRjaCgpIGNvbnN0
CkBAIC0zNzAsNyArMzc0LDkgQEAgU3RyaW5nIEZvbnRGYWNlOjpzdHJldGNoKCkgY29uc3QKICAg
ICBidWlsZGVyLmFwcGVuZChtaW5pbXVtTm9uS2V5d29yZC0+Y3NzVGV4dCgpKTsKICAgICBidWls
ZGVyLmFwcGVuZCgnICcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG1heGltdW1Ob25LZXl3b3JkLT5j
c3NUZXh0KCkpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBTdHJpbmcgRm9udEZhY2U6OnVuaWNvZGVSYW5nZSgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9NZWRpYUxpc3QuY3BwCmluZGV4IDQ1NzUwYWYuLjQyNjk0MDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9NZWRpYUxpc3QuY3BwCkBAIC0xNTEsNyArMTUxLDkgQEAgU3RyaW5nIE1lZGlhUXVlcnlTZXQ6
Om1lZGlhVGV4dCgpIGNvbnN0CiAgICAgICAgIHRleHQuYXBwZW5kKHF1ZXJ5LmNzc1RleHQoKSk7
CiAgICAgICAgIG5lZWRDb21tYSA9IHRydWU7CiAgICAgfQotICAgIHJldHVybiB0ZXh0LnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdGV4dC50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIE1lZGlhUXVlcnlTZXQ6OnNo
cmlua1RvRml0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcAppbmRleCA5ZDBiYWRmLi40MDcw
ZDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwCkBAIC02Niw3ICs2Niw5IEBAIFN0cmlu
ZyBNZWRpYVF1ZXJ5OjpzZXJpYWxpemUoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKGV4
cHJlc3Npb24uc2VyaWFsaXplKCkpOwogICAgICAgICBuZWVkc0FuZCA9IHRydWU7CiAgICAgfQot
ICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1
bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogTWVkaWFRdWVyeTo6TWVkaWFRdWVyeShSZXN0cmljdG9yIHJlc3RyaWN0b3IsIGNvbnN0IFN0
cmluZyYgbWVkaWFUeXBlLCBWZWN0b3I8TWVkaWFRdWVyeUV4cHJlc3Npb24+JiYgZXhwcmVzc2lv
bnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcAppbmRleCAy
ZDhlNWYwLi5lMGEyMmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUV4cHJlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwcmVz
c2lvbi5jcHAKQEAgLTI0NCw3ICsyNDQsMTAgQEAgU3RyaW5nIE1lZGlhUXVlcnlFeHByZXNzaW9u
OjpzZXJpYWxpemUoKSBjb25zdAogICAgIH0KICAgICByZXN1bHQuYXBwZW5kKCcpJyk7CiAKLSAg
ICBtX3NlcmlhbGl6YXRpb25DYWNoZSA9IHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBtX3NlcmlhbGl6YXRpb25DYWNo
ZSA9ICpzdHJpbmc7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIHJldHVybiBtX3Nl
cmlhbGl6YXRpb25DYWNoZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1Jl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SZWN0LmgKaW5kZXggZWMxYWFlOC4uZGZhZTE3NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1JlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvUmVjdC5oCkBAIC0xMDMsNyArMTAzLDkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0
cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKaW5kZXggM2M4Y2U0My4uYmZmMTcy
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKQEAgLTM0Myw3ICszNDMs
OSBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpmb250VmFsdWUoKSBjb25zdAogICAgIHJlc3Vs
dC5hcHBlbmQoZm9udEZhbWlseVByb3BlcnR5LnZhbHVlKCktPmNzc1RleHQoKSk7CiAgICAgaWYg
KGlzSW5pdGlhbE9ySW5oZXJpdChjb21tb25WYWx1ZSkpCiAgICAgICAgIHJldHVybiBjb21tb25W
YWx1ZTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldDRWYWx1ZXMoY29uc3QgU3R5bGVQ
cm9wZXJ0eVNob3J0aGFuZCYgc2hvcnRoYW5kKSBjb25zdApAQCAtMzk3LDcgKzM5OSw5IEBAIFN0
cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldDRWYWx1ZXMoY29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0
aGFuZCYgc2hvcnRoYW5kKSBjb25zCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAnKTsKICAgICAg
ICAgcmVzdWx0LmFwcGVuZChsZWZ0LnZhbHVlKCktPmNzc1RleHQoKSk7CiAgICAgfQotICAgIHJl
dHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3Ry
aW5nIFN0eWxlUHJvcGVydGllczo6Z2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlKGNvbnN0IFN0eWxl
UHJvcGVydHlTaG9ydGhhbmQmIHNob3J0aGFuZCkgY29uc3QKQEAgLTU0Myw3ICs1NDcsOSBAQCBT
dHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpnZXRMYXllcmVkU2hvcnRoYW5kVmFsdWUoY29uc3QgU3R5
bGVQcm9wZXJ0eVNob3J0aGFuZCYgcwogCiAgICAgaWYgKHJlc3VsdC5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldFNob3J0
aGFuZFZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHNob3J0aGFuZCkgY29uc3QK
QEAgLTU3Miw3ICs1NzgsOSBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpnZXRTaG9ydGhhbmRW
YWx1ZShjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBzaG9ydGhhbgogICAgICAgICByZXR1
cm4gY29tbW9uVmFsdWU7CiAgICAgaWYgKHJlc3VsdC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
biBTdHJpbmcoKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIC8vIG9ubHkgcmV0dXJucyBhIG5vbi1udWxsIHZhbHVlIGlmIGFsbCBw
cm9wZXJ0aWVzIGhhdmUgdGhlIHNhbWUsIG5vbi1udWxsIHZhbHVlCkBAIC02MzQsNyArNjQyLDEx
IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmJvcmRlclByb3BlcnR5VmFsdWUoQ29tbW9uVmFs
dWVNb2RlIHZhbHVlTW9kZSkgY29uc3QKICAgICB9CiAgICAgaWYgKGlzSW5pdGlhbE9ySW5oZXJp
dChjb21tb25WYWx1ZSkpCiAgICAgICAgIHJldHVybiBjb21tb25WYWx1ZTsKLSAgICByZXR1cm4g
cmVzdWx0LmlzRW1wdHkoKSA/IFN0cmluZygpIDogcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYg
KHJlc3VsdC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KIAogUmVmUHRyPENTU1ZhbHVlPiBTdHlsZVByb3BlcnRpZXM6OmdldFBy
b3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKSBjb25zdApAQCAtMTE0Niw3
ICsxMTU4LDkgQEAgU3RyaW5nIFN0eWxlUHJvcGVydGllczo6YXNUZXh0KCkgY29uc3QKICAgICB9
CiAKICAgICBBU1NFUlQoIW51bURlY2xzIF4gIXJlc3VsdC5pc0VtcHR5KCkpOwotICAgIHJldHVy
biByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBT
dHlsZVByb3BlcnRpZXM6Omhhc0NTU09NV3JhcHBlcigpIGNvbnN0CkBAIC0xNDAzLDcgKzE0MTcs
OSBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpQcm9wZXJ0eVJlZmVyZW5jZTo6Y3NzVGV4dCgp
IGNvbnN0CiAgICAgaWYgKGlzSW1wb3J0YW50KCkpCiAgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRl
cmFsKCIgIWltcG9ydGFudCIpOwogICAgIHJlc3VsdC5hcHBlbmQoJzsnKTsKLSAgICByZXR1cm4g
cmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAgICAgCiBSZWY8
RGVmZXJyZWRTdHlsZVByb3BlcnRpZXM+IERlZmVycmVkU3R5bGVQcm9wZXJ0aWVzOjpjcmVhdGUo
Y29uc3QgQ1NTUGFyc2VyVG9rZW5SYW5nZSYgdG9rZW5SYW5nZSwgQ1NTRGVmZXJyZWRQYXJzZXIm
IHBhcnNlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXgu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5jcHAKaW5kZXggN2JkZTY0
ZC4uMWY3OGQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJp
eC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5jcHAKQEAgLTI0
OSw3ICsyNDksOSBAQCBFeGNlcHRpb25PcjxTdHJpbmc+IFdlYktpdENTU01hdHJpeDo6dG9TdHJp
bmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmc6Om51bWJlclRvU3RyaW5n
RUNNQVNjcmlwdChtX21hdHJpeC5tNDQoKSkpOwogICAgIH0KICAgICBidWlsZGVyLmFwcGVuZCgn
KScpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gV1RGTW92ZSgqc3RyaW5nKTsK
KyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9XZWJLaXRDU1NWaWV3cG9ydFJ1bGUuY3BwCmluZGV4IGNiZDE3MmYuLmRlNmVjOTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NWaWV3cG9ydFJ1bGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NWaWV3cG9ydFJ1bGUuY3BwCkBAIC03
Miw3ICs3Miw5IEBAIFN0cmluZyBXZWJLaXRDU1NWaWV3cG9ydFJ1bGU6OmNzc1RleHQoKSBjb25z
dAogCiAgICAgcmVzdWx0LmFwcGVuZCgnfScpOwogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIFdlYktpdENTU1ZpZXdwb3J0
UnVsZTo6cmVhdHRhY2goU3R5bGVSdWxlQmFzZSYgcnVsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUGFyc2VyLmNwcAppbmRleCA5NTRhYjA4Li5lY2JmYWJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwCkBAIC0yOTksMTAgKzI5OSwxMyBAQCBSZWZQdHI8Q1NT
VmFsdWU+IENTU1BhcnNlcjo6cGFyc2VGb250RmFjZURlc2NyaXB0b3IoQ1NTUHJvcGVydHlJRCBw
cm9wZXJ0eUlELCBjbwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIDogIik7CiAgICAgYnVp
bGRlci5hcHBlbmQocHJvcGVydHlWYWx1ZSk7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI7
IH0iKTsKLSAgICBSZWZQdHI8U3R5bGVSdWxlQmFzZT4gcnVsZSA9IHBhcnNlUnVsZShjb250ZXh0
LCBudWxscHRyLCBidWlsZGVyLnRvU3RyaW5nKCkpOwotICAgIGlmICghcnVsZSB8fCAhcnVsZS0+
aXNGb250RmFjZVJ1bGUoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGRv
d25jYXN0PFN0eWxlUnVsZUZvbnRGYWNlPigqcnVsZS5nZXQoKSkucHJvcGVydGllcygpLmdldFBy
b3BlcnR5Q1NTVmFsdWUocHJvcGVydHlJRCk7CisgICAgaWYgKGF1dG8gc3RyaW5nICA9IGJ1aWxk
ZXIudG9TdHJpbmcoKSkgeworICAgICAgICBSZWZQdHI8U3R5bGVSdWxlQmFzZT4gcnVsZSA9IHBh
cnNlUnVsZShjb250ZXh0LCBudWxscHRyLCAqc3RyaW5nKTsKKyAgICAgICAgaWYgKCFydWxlIHx8
ICFydWxlLT5pc0ZvbnRGYWNlUnVsZSgpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgICAgIHJldHVybiBkb3duY2FzdDxTdHlsZVJ1bGVGb250RmFjZT4oKnJ1bGUuZ2V0KCkpLnBy
b3BlcnRpZXMoKS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHByb3BlcnR5SUQpOworICAgIH0KKyAgICBD
UkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlclRva2VuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9r
ZW4uY3BwCmluZGV4IDdiOGU2MDMuLjVkMTAxNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUGFyc2VyVG9rZW4uY3BwCkBAIC0zOTIsNyArMzkyLDggQEAgdm9pZCBDU1NQYXJz
ZXJUb2tlbjo6c2VyaWFsaXplKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIpIGNvbnN0CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgRnVuY3Rpb25Ub2tlbjoKICAgICAgICAgc2VyaWFsaXplSWRlbnRp
Zmllcih2YWx1ZSgpLnRvU3RyaW5nKCksIGJ1aWxkZXIpOwotICAgICAgICByZXR1cm4gYnVpbGRl
ci5hcHBlbmQoJygnKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJygnKTsKKyAgICAgICAgcmV0
dXJuOwogICAgIGNhc2UgQXRLZXl3b3JkVG9rZW46CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdA
Jyk7CiAgICAgICAgIHNlcmlhbGl6ZUlkZW50aWZpZXIodmFsdWUoKS50b1N0cmluZygpLCBidWls
ZGVyKTsKQEAgLTQwNCw2OSArNDA1LDk3IEBAIHZvaWQgQ1NTUGFyc2VyVG9rZW46OnNlcmlhbGl6
ZShTdHJpbmdCdWlsZGVyJiBidWlsZGVyKSBjb25zdAogICAgIGNhc2UgVXJsVG9rZW46CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCJ1cmwoIik7CiAgICAgICAgIHNlcmlhbGl6ZUlkZW50aWZpZXIo
dmFsdWUoKS50b1N0cmluZygpLCBidWlsZGVyKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBw
ZW5kKCcpJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7CisgICAgICAgIHJldHVybjsK
ICAgICBjYXNlIERlbGltaXRlclRva2VuOgotICAgICAgICBpZiAoZGVsaW1pdGVyKCkgPT0gJ1xc
JykKLSAgICAgICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgiXFxcbiIpOwotICAgICAgICBy
ZXR1cm4gYnVpbGRlci5hcHBlbmQoZGVsaW1pdGVyKCkpOworICAgICAgICBpZiAoZGVsaW1pdGVy
KCkgPT0gJ1xcJykgeworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIlxcXG4iKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBidWlsZGVyLmFwcGVuZChkZWxpbWl0
ZXIoKSk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIE51bWJlclRva2VuOgogICAgICAgICAv
LyBUaGVzZSB3b24ndCBwcm9wZXJseSBwcmVzZXJ2ZSB0aGUgTnVtZXJpY1ZhbHVlVHlwZSBmbGFn
CiAgICAgICAgIGlmIChtX251bWVyaWNTaWduID09IFBsdXNTaWduKQogICAgICAgICAgICAgYnVp
bGRlci5hcHBlbmQoJysnKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG51
bWVyaWNWYWx1ZSgpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobnVtZXJpY1ZhbHVl
KCkpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBQZXJjZW50YWdlVG9rZW46CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG51bWVyaWNWYWx1ZSgpKTsKLSAgICAgICAgcmV0dXJuIGJ1
aWxkZXIuYXBwZW5kKCclJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCclJyk7CisgICAgICAg
IHJldHVybjsKICAgICBjYXNlIERpbWVuc2lvblRva2VuOgogICAgICAgICAvLyBUaGlzIHdpbGwg
aW5jb3JyZWN0bHkgc2VyaWFsaXplIGUuZy4gNGUzZTIgYXMgNDAwMGUyCiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kTnVtYmVyKG51bWVyaWNWYWx1ZSgpKTsKICAgICAgICAgc2VyaWFsaXplSWRlbnRp
Zmllcih2YWx1ZSgpLnRvU3RyaW5nKCksIGJ1aWxkZXIpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFVuaWNvZGVSYW5nZVRva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoU3Ry
aW5nOjpmb3JtYXQoIlUrJVgtJVgiLCB1bmljb2RlUmFuZ2VTdGFydCgpLCB1bmljb2RlUmFuZ2VF
bmQoKSkpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmc6OmZvcm1hdCgiVSslWC0lWCIs
IHVuaWNvZGVSYW5nZVN0YXJ0KCksIHVuaWNvZGVSYW5nZUVuZCgpKSk7CisgICAgICAgIHJldHVy
bjsKICAgICBjYXNlIFN0cmluZ1Rva2VuOgotICAgICAgICByZXR1cm4gc2VyaWFsaXplU3RyaW5n
KHZhbHVlKCkudG9TdHJpbmcoKSwgYnVpbGRlcik7CisgICAgICAgIHNlcmlhbGl6ZVN0cmluZyh2
YWx1ZSgpLnRvU3RyaW5nKCksIGJ1aWxkZXIpOworICAgICAgICByZXR1cm47CiAKICAgICBjYXNl
IEluY2x1ZGVNYXRjaFRva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoIn49Iik7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJ+PSIpOworICAgICAgICByZXR1cm47CiAgICAgY2Fz
ZSBEYXNoTWF0Y2hUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCJ8PSIpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZCgifD0iKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2Ug
UHJlZml4TWF0Y2hUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCJePSIpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZCgiXj0iKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2Ug
U3VmZml4TWF0Y2hUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCIkPSIpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZCgiJD0iKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2Ug
U3Vic3RyaW5nTWF0Y2hUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCIqPSIp
OworICAgICAgICBidWlsZGVyLmFwcGVuZCgiKj0iKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgQ29sdW1uVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgifHwiKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQoInx8Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIENE
T1Rva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoIjwhLS0iKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQoIjwhLS0iKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQ0RDVG9r
ZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgiLS0+Iik7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCItLT4iKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQmFkU3RyaW5nVG9r
ZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgiJ1xuIik7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCInXG4iKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQmFkVXJsVG9rZW46
Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgidXJsKCgpIik7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCJ1cmwoKCkiKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgV2hpdGVzcGFj
ZVRva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmQoJyAnKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQ29sb25Ub2tlbjoK
LSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCc6Jyk7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCc6Jyk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFNlbWljb2xvblRva2VuOgotICAg
ICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJzsnKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQo
JzsnKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQ29tbWFUb2tlbjoKLSAgICAgICAgcmV0
dXJuIGJ1aWxkZXIuYXBwZW5kKCcsJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcsJyk7Cisg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIExlZnRQYXJlbnRoZXNpc1Rva2VuOgotICAgICAgICBy
ZXR1cm4gYnVpbGRlci5hcHBlbmQoJygnKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJygnKTsK
KyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgUmlnaHRQYXJlbnRoZXNpc1Rva2VuOgotICAgICAg
ICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJyknKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJykn
KTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgTGVmdEJyYWNrZXRUb2tlbjoKLSAgICAgICAg
cmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCdbJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdbJyk7
CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFJpZ2h0QnJhY2tldFRva2VuOgotICAgICAgICBy
ZXR1cm4gYnVpbGRlci5hcHBlbmQoJ10nKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJ10nKTsK
KyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgTGVmdEJyYWNlVG9rZW46Ci0gICAgICAgIHJldHVy
biBidWlsZGVyLmFwcGVuZCgneycpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgneycpOworICAg
ICAgICByZXR1cm47CiAgICAgY2FzZSBSaWdodEJyYWNlVG9rZW46Ci0gICAgICAgIHJldHVybiBi
dWlsZGVyLmFwcGVuZCgnfScpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnfScpOworICAgICAg
ICByZXR1cm47CiAKICAgICBjYXNlIEVPRlRva2VuOgogICAgIGNhc2UgQ29tbWVudFRva2VuOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlblJhbmdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW5SYW5nZS5jcHAK
aW5kZXggY2I5YzU4MC4uZWZlNWEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQYXJzZXJUb2tlblJhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1BhcnNlclRva2VuUmFuZ2UuY3BwCkBAIC0xMTMsNyArMTEzLDkgQEAgU3RyaW5nIENT
U1BhcnNlclRva2VuUmFuZ2U6OnNlcmlhbGl6ZSgpIGNvbnN0CiAgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOwogICAgIGZvciAoY29uc3QgQ1NTUGFyc2VyVG9rZW4qIGl0ID0gbV9maXJzdDsgaXQg
PCBtX2xhc3Q7ICsraXQpCiAgICAgICAgIGl0LT5zZXJpYWxpemUoYnVpbGRlcik7Ci0gICAgcmV0
dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
cm9wZXJ0eVBhcnNlci5jcHAKaW5kZXggYmNlY2U3MC4uMzA5MDc1ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKQEAgLTEwMTYsNyArMTAx
Niw5IEBAIHN0YXRpYyBTdHJpbmcgY29uY2F0ZW5hdGVGYW1pbHlOYW1lKENTU1BhcnNlclRva2Vu
UmFuZ2UmIHJhbmdlKQogICAgIH0KICAgICBpZiAoIWFkZGVkU3BhY2UgJiYgaXNDU1NXaWRlS2V5
d29yZChmaXJzdFRva2VuLmlkKCkpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0gICAgcmV0
dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0
YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVGYW1pbHlOYW1lKENTU1BhcnNlclRva2VuUmFu
Z2UmIHJhbmdlKQpAQCAtMzI2NCw3ICszMjY2LDEwIEBAIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiBw
YXJzZUdyaWRUZW1wbGF0ZUFyZWFzQ29sdW1uTmFtZXMoY29uc3QgU3RyaW5nJiBncmlkUm93TmFt
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRleHQubGVuZ3RoKCk7ICsraSkgewogICAg
ICAgICBpZiAoaXNDU1NTcGFjZSh0ZXh0W2ldKSkgewogICAgICAgICAgICAgaWYgKCFhcmVhTmFt
ZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBjb2x1bW5OYW1lcy5hcHBlbmQoYXJlYU5h
bWUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYXJlYU5h
bWUudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgY29sdW1uTmFtZXMuYXBwZW5kKCpz
dHJpbmcpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgQ1JBU0go
KTsKICAgICAgICAgICAgICAgICBhcmVhTmFtZS5jbGVhcigpOwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgY29udGludWU7CkBAIC0zMjczLDE0ICszMjc4LDIwIEBAIHN0YXRpYyBWZWN0b3I8
U3RyaW5nPiBwYXJzZUdyaWRUZW1wbGF0ZUFyZWFzQ29sdW1uTmFtZXMoY29uc3QgU3RyaW5nJiBn
cmlkUm93TmFtCiAgICAgICAgICAgICBpZiAoYXJlYU5hbWUgPT0gIi4iKQogICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgaWYgKCFhcmVhTmFtZS5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgICAgICAgICBjb2x1bW5OYW1lcy5hcHBlbmQoYXJlYU5hbWUudG9TdHJpbmcoKSk7Cisg
ICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYXJlYU5hbWUudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgICAgICAgICAgY29sdW1uTmFtZXMuYXBwZW5kKCpzdHJpbmcpOworICAgICAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgICAg
ICBhcmVhTmFtZS5jbGVhcigpOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewogICAg
ICAgICAgICAgaWYgKCFpc05hbWVDb2RlUG9pbnQodGV4dFtpXSkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIFZlY3RvcjxTdHJpbmc+KCk7CiAgICAgICAgICAgICBpZiAoYXJlYU5hbWUgPT0gIi4i
KSB7Ci0gICAgICAgICAgICAgICAgY29sdW1uTmFtZXMuYXBwZW5kKGFyZWFOYW1lLnRvU3RyaW5n
KCkpOworICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGFyZWFOYW1lLnRvU3RyaW5n
KCkpCisgICAgICAgICAgICAgICAgICAgIGNvbHVtbk5hbWVzLmFwcGVuZCgqc3RyaW5nKTsKKyAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAg
ICAgICAgICAgYXJlYU5hbWUuY2xlYXIoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAt
MzI4OCw4ICszMjk5LDEyIEBAIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiBwYXJzZUdyaWRUZW1wbGF0
ZUFyZWFzQ29sdW1uTmFtZXMoY29uc3QgU3RyaW5nJiBncmlkUm93TmFtCiAgICAgICAgIGFyZWFO
YW1lLmFwcGVuZCh0ZXh0W2ldKTsKICAgICB9CiAKLSAgICBpZiAoIWFyZWFOYW1lLmlzRW1wdHko
KSkKLSAgICAgICAgY29sdW1uTmFtZXMuYXBwZW5kKGFyZWFOYW1lLnRvU3RyaW5nKCkpOworICAg
IGlmICghYXJlYU5hbWUuaXNFbXB0eSgpKSB7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGFy
ZWFOYW1lLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBjb2x1bW5OYW1lcy5hcHBlbmQoKnN0cmlu
Zyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CisgICAgfQogCiAgICAgcmV0
dXJuIGNvbHVtbk5hbWVzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NUb2tlbml6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NUb2tlbml6
ZXIuY3BwCmluZGV4IDFmMWEyM2UuLjNiODRlMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTVG9rZW5pemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1Rva2VuaXplci5jcHAKQEAgLTYwNSw4ICs2MDUsMTEgQEAgQ1NTUGFyc2VyVG9rZW4g
Q1NTVG9rZW5pemVyOjpjb25zdW1lU3RyaW5nVG9rZW5VbnRpbChVQ2hhciBlbmRpbmdDb2RlUG9p
bnQpCiAgICAgU3RyaW5nQnVpbGRlciBvdXRwdXQ7CiAgICAgd2hpbGUgKHRydWUpIHsKICAgICAg
ICAgVUNoYXIgY2MgPSBjb25zdW1lKCk7Ci0gICAgICAgIGlmIChjYyA9PSBlbmRpbmdDb2RlUG9p
bnQgfHwgY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikKLSAgICAgICAgICAgIHJldHVybiBDU1NQYXJz
ZXJUb2tlbihTdHJpbmdUb2tlbiwgcmVnaXN0ZXJTdHJpbmcob3V0cHV0LnRvU3RyaW5nKCkpKTsK
KyAgICAgICAgaWYgKGNjID09IGVuZGluZ0NvZGVQb2ludCB8fCBjYyA9PSBrRW5kT2ZGaWxlTWFy
a2VyKSB7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBvdXRwdXQudG9TdHJpbmcoKSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUGFyc2VyVG9rZW4oU3RyaW5nVG9rZW4sIHJlZ2lz
dGVyU3RyaW5nKCpzdHJpbmcpKTsKKyAgICAgICAgICAgIENSQVNIKCk7CisgICAgICAgIH0KICAg
ICAgICAgaWYgKGlzTmV3TGluZShjYykpIHsKICAgICAgICAgICAgIHJlY29uc3VtZShjYyk7CiAg
ICAgICAgICAgICByZXR1cm4gQ1NTUGFyc2VyVG9rZW4oQmFkU3RyaW5nVG9rZW4pOwpAQCAtNjgw
LDEzICs2ODMsMTkgQEAgQ1NTUGFyc2VyVG9rZW4gQ1NTVG9rZW5pemVyOjpjb25zdW1lVXJsVG9r
ZW4oKQogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogICAgIHdoaWxlICh0cnVlKSB7CiAgICAg
ICAgIFVDaGFyIGNjID0gY29uc3VtZSgpOwotICAgICAgICBpZiAoY2MgPT0gJyknIHx8IGNjID09
IGtFbmRPZkZpbGVNYXJrZXIpCi0gICAgICAgICAgICByZXR1cm4gQ1NTUGFyc2VyVG9rZW4oVXJs
VG9rZW4sIHJlZ2lzdGVyU3RyaW5nKHJlc3VsdC50b1N0cmluZygpKSk7CisgICAgICAgIGlmIChj
YyA9PSAnKScgfHwgY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgeworICAgICAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIENT
U1BhcnNlclRva2VuKFVybFRva2VuLCByZWdpc3RlclN0cmluZygqc3RyaW5nKSk7CisgICAgICAg
ICAgICBDUkFTSCgpOworICAgICAgICB9CiAKICAgICAgICAgaWYgKGlzSFRNTFNwYWNlKGNjKSkg
ewogICAgICAgICAgICAgbV9pbnB1dC5hZHZhbmNlVW50aWxOb25XaGl0ZXNwYWNlKCk7Ci0gICAg
ICAgICAgICBpZiAoY29uc3VtZUlmTmV4dCgnKScpIHx8IG1faW5wdXQubmV4dElucHV0Q2hhcigp
ID09IGtFbmRPZkZpbGVNYXJrZXIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIENTU1BhcnNlclRv
a2VuKFVybFRva2VuLCByZWdpc3RlclN0cmluZyhyZXN1bHQudG9TdHJpbmcoKSkpOworICAgICAg
ICAgICAgaWYgKGNvbnN1bWVJZk5leHQoJyknKSB8fCBtX2lucHV0Lm5leHRJbnB1dENoYXIoKSA9
PSBrRW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
cmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NQYXJzZXJU
b2tlbihVcmxUb2tlbiwgcmVnaXN0ZXJTdHJpbmcoKnN0cmluZykpOworICAgICAgICAgICAgICAg
IENSQVNIKCk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
CkBAIC03OTEsNyArODAwLDkgQEAgU3RyaW5nVmlldyBDU1NUb2tlbml6ZXI6OmNvbnN1bWVOYW1l
KCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAgICAgICAgIHJlY29uc3VtZShj
Yyk7Ci0gICAgICAgIHJldHVybiByZWdpc3RlclN0cmluZyhyZXN1bHQudG9TdHJpbmcoKSk7Cisg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAg
cmV0dXJuIHJlZ2lzdGVyU3RyaW5nKCpzdHJpbmcpOworICAgICAgICBDUkFTSCgpOwogICAgIH0K
IH0KIApAQCAtODExLDExICs4MjIsMTQgQEAgVUNoYXIzMiBDU1NUb2tlbml6ZXI6OmNvbnN1bWVF
c2NhcGUoKQogICAgICAgICB9OwogICAgICAgICBjb25zdW1lU2luZ2xlV2hpdGVzcGFjZUlmTmV4
dCgpOwogICAgICAgICBib29sIG9rID0gZmFsc2U7Ci0gICAgICAgIFVDaGFyMzIgY29kZVBvaW50
ID0gaGV4Q2hhcnMudG9TdHJpbmcoKS50b1VJbnRTdHJpY3QoJm9rLCAxNik7Ci0gICAgICAgIEFT
U0VSVChvayk7Ci0gICAgICAgIGlmICghY29kZVBvaW50IHx8ICgweEQ4MDAgPD0gY29kZVBvaW50
ICYmIGNvZGVQb2ludCA8PSAweERGRkYpIHx8IGNvZGVQb2ludCA+IDB4MTBGRkZGKQotICAgICAg
ICAgICAgcmV0dXJuIHJlcGxhY2VtZW50Q2hhcmFjdGVyOwotICAgICAgICByZXR1cm4gY29kZVBv
aW50OworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBoZXhDaGFycy50b1N0cmluZygpKSB7Cisg
ICAgICAgICAgICBVQ2hhcjMyIGNvZGVQb2ludCA9IHN0cmluZy0+dG9VSW50U3RyaWN0KCZvaywg
MTYpOworICAgICAgICAgICAgQVNTRVJUKG9rKTsKKyAgICAgICAgICAgIGlmICghY29kZVBvaW50
IHx8ICgweEQ4MDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweERGRkYpIHx8IGNvZGVQ
b2ludCA+IDB4MTBGRkZGKQorICAgICAgICAgICAgICAgIHJldHVybiByZXBsYWNlbWVudENoYXJh
Y3RlcjsKKyAgICAgICAgICAgIHJldHVybiBjb2RlUG9pbnQ7CisgICAgICAgIH0KKyAgICAgICAg
Q1JBU0goKTsKICAgICB9CiAKICAgICBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcAppbmRleCBmMmQ4NDIwLi5kNTY2
N2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0cmluZ01hcC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuY3BwCkBAIC02
NSw3ICs2NSw5IEBAIHN0YXRpYyBTdHJpbmcgY29udmVydEF0dHJpYnV0ZU5hbWVUb1Byb3BlcnR5
TmFtZShjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4g
c3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogc3RhdGljIGJvb2wgcHJvcGVydHlOYW1lTWF0Y2hlc0F0dHJpYnV0ZU5hbWUoY29uc3Qg
U3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFN0cmluZyYgYXR0cmlidXRlTmFtZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcAppbmRleCAwYTIzMjYzLi44ODE0NTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCkBAIC0yMTk3LDcgKzIxOTcsMTAgQEAgdm9pZCBFbGVtZW50Ojpmb3JtYXRGb3JEZWJ1Z2dl
cihjaGFyKiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFw
cGVuZChzKTsKICAgICB9CiAKLSAgICBzdHJuY3B5KGJ1ZmZlciwgcmVzdWx0LnRvU3RyaW5nKCku
dXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0gMSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgIHN0cm5jcHkoYnVmZmVyLCBzdHJpbmctPnV0ZjgoKS5kYXRh
KCksIGxlbmd0aCAtIDEpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5jcHAKaW5kZXggNGIxZTg3Mi4uOGZjYmQ3YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApA
QCAtMTUxOSw3ICsxNTE5LDkgQEAgU3RyaW5nIE5vZGU6OnRleHRDb250ZW50KGJvb2wgY29udmVy
dEJSc1RvTmV3bGluZXMpIGNvbnN0CiAgICAgU3RyaW5nQnVpbGRlciBjb250ZW50OwogICAgIGJv
b2wgaXNOdWxsU3RyaW5nID0gdHJ1ZTsKICAgICBhcHBlbmRUZXh0Q29udGVudCh0aGlzLCBjb252
ZXJ0QlJzVG9OZXdsaW5lcywgaXNOdWxsU3RyaW5nLCBjb250ZW50KTsKLSAgICByZXR1cm4gaXNO
dWxsU3RyaW5nID8gU3RyaW5nKCkgOiBjb250ZW50LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gY29udGVudC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gaXNOdWxsU3RyaW5n
ID8gU3RyaW5nKCkgOiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZv
aWQ+IE5vZGU6OnNldFRleHRDb250ZW50KGNvbnN0IFN0cmluZyYgdGV4dCkKQEAgLTE3MzAsNyAr
MTczMiwxMCBAQCB2b2lkIE5vZGU6OnNob3dOb2RlKGNvbnN0IGNoYXIqIHByZWZpeCkgY29uc3QK
ICAgICAgICAgU3RyaW5nQnVpbGRlciBhdHRyczsKICAgICAgICAgYXBwZW5kQXR0cmlidXRlRGVz
Yyh0aGlzLCBhdHRycywgY2xhc3NBdHRyLCAiIENMQVNTPSIpOwogICAgICAgICBhcHBlbmRBdHRy
aWJ1dGVEZXNjKHRoaXMsIGF0dHJzLCBzdHlsZUF0dHIsICIgU1RZTEU9Iik7Ci0gICAgICAgIGZw
cmludGYoc3RkZXJyLCAiJXMlc1x0JXAgKHJlbmRlcmVyICVwKSAlcyVzJXNcbiIsIHByZWZpeCwg
bm9kZU5hbWUoKS51dGY4KCkuZGF0YSgpLCB0aGlzLCByZW5kZXJlcigpLCBhdHRycy50b1N0cmlu
ZygpLnV0ZjgoKS5kYXRhKCksIG5lZWRzU3R5bGVSZWNhbGMoKSA/ICIgKG5lZWRzIHN0eWxlIHJl
Y2FsYykiIDogIiIsIGNoaWxkTmVlZHNTdHlsZVJlY2FsYygpID8gIiAoY2hpbGQgbmVlZHMgc3R5
bGUgcmVjYWxjKSIgOiAiIik7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGF0dHJzLnRvU3Ry
aW5nKCkpCisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzJXNcdCVwIChyZW5kZXJlciAl
cCkgJXMlcyVzXG4iLCBwcmVmaXgsIG5vZGVOYW1lKCkudXRmOCgpLmRhdGEoKSwgdGhpcywgcmVu
ZGVyZXIoKSwgc3RyaW5nLT51dGY4KCkuZGF0YSgpLCBuZWVkc1N0eWxlUmVjYWxjKCkgPyAiIChu
ZWVkcyBzdHlsZSByZWNhbGMpIiA6ICIiLCBjaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSA/ICIgKGNo
aWxkIG5lZWRzIHN0eWxlIHJlY2FsYykiIDogIiIpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBDUkFTSCgpOwogICAgIH0KIH0KIApAQCAtMTgwMiwxMiArMTgwNywxOSBAQCBzdGF0aWMgdm9p
ZCB0cmF2ZXJzZVRyZWVBbmRNYXJrKGNvbnN0IFN0cmluZyYgYmFzZUluZGVudCwgY29uc3QgTm9k
ZSogcm9vdE5vZGUsCiAgICAgICAgIGluZGVudC5hcHBlbmQoYmFzZUluZGVudCk7CiAgICAgICAg
IGZvciAoY29uc3QgTm9kZSogdG1wTm9kZSA9IG5vZGU7IHRtcE5vZGUgJiYgdG1wTm9kZSAhPSBy
b290Tm9kZTsgdG1wTm9kZSA9IHRtcE5vZGUtPnBhcmVudE9yU2hhZG93SG9zdE5vZGUoKSkKICAg
ICAgICAgICAgIGluZGVudC5hcHBlbmQoJ1x0Jyk7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAi
JXMiLCBpbmRlbnQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gaW5kZW50LnRvU3RyaW5nKCkpCisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwg
IiVzIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
Q1JBU0goKTsKICAgICAgICAgbm9kZS0+c2hvd05vZGUoKTsKICAgICAgICAgaW5kZW50LmFwcGVu
ZCgnXHQnKTsKICAgICAgICAgaWYgKCFub2RlLT5pc1NoYWRvd1Jvb3QoKSkgewotICAgICAgICAg
ICAgaWYgKFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QgPSBub2RlLT5zaGFkb3dSb290KCkpCi0gICAg
ICAgICAgICAgICAgdHJhdmVyc2VUcmVlQW5kTWFyayhpbmRlbnQudG9TdHJpbmcoKSwgc2hhZG93
Um9vdCwgbWFya2VkTm9kZTEsIG1hcmtlZExhYmVsMSwgbWFya2VkTm9kZTIsIG1hcmtlZExhYmVs
Mik7CisgICAgICAgICAgICBpZiAoU2hhZG93Um9vdCogc2hhZG93Um9vdCA9IG5vZGUtPnNoYWRv
d1Jvb3QoKSkgeworICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGluZGVudC50b1N0
cmluZygpKQorICAgICAgICAgICAgICAgICAgICB0cmF2ZXJzZVRyZWVBbmRNYXJrKCpzdHJpbmcs
IHNoYWRvd1Jvb3QsIG1hcmtlZE5vZGUxLCBtYXJrZWRMYWJlbDEsIG1hcmtlZE5vZGUyLCBtYXJr
ZWRMYWJlbDIpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgQ1JB
U0goKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRp
b24uY3BwCmluZGV4IDg5YTUwNmYuLmE1MjAxNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Qb3NpdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcApA
QCAtMTQxOSw3ICsxNDE5LDEwIEBAIHZvaWQgUG9zaXRpb246OmZvcm1hdEZvckRlYnVnZ2VyKGNo
YXIqIGJ1ZmZlciwgdW5zaWduZWQgbGVuZ3RoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5k
KHMpOwogICAgIH0KIAotICAgIHN0cm5jcHkoYnVmZmVyLCByZXN1bHQudG9TdHJpbmcoKS51dGY4
KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9T
dHJpbmcoKSkKKyAgICAgICAgc3RybmNweShidWZmZXIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSwg
bGVuZ3RoIC0gMSk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIFBvc2l0
aW9uOjpzaG93QW5jaG9yVHlwZUFuZE9mZnNldCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vUmFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAppbmRl
eCBhNTdhNWUyLi4xNTk4NzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKQEAgLTk0OSw3ICs5NDksOSBA
QCBTdHJpbmcgUmFuZ2U6OnRvU3RyaW5nKCkgY29uc3QKICAgICAgICAgfQogICAgIH0KIAotICAg
IHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiBTdHJpbmcgUmFuZ2U6OnRvSFRNTCgpIGNvbnN0CkBAIC0xNTM1LDcgKzE1MzcsMTAgQEAgdm9p
ZCBSYW5nZTo6Zm9ybWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgp
IGNvbnN0CiAgICAgZW5kQ29udGFpbmVyKCkuZm9ybWF0Rm9yRGVidWdnZXIocywgRm9ybWF0QnVm
ZmVyU2l6ZSk7CiAgICAgcmVzdWx0LmFwcGVuZChzKTsKIAotICAgIHN0cm5jcHkoYnVmZmVyLCBy
ZXN1bHQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgc3RybmNweShidWZmZXIsIHN0
cmluZy0+dXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0gMSk7CisgICAgZWxzZQorICAgICAgICBDUkFT
SCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRl
ZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5p
bWF0aW9uQ29udHJvbGxlci5jcHAKaW5kZXggYzRkODVkOC4uYTUwMzkwYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKQEAgLTEx
Miw3ICsxMTIsOSBAQCBzdGF0aWMgU3RyaW5nIHRocm90dGxpbmdSZWFzb25zVG9TdHJpbmcoT3B0
aW9uU2V0PFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6VAogICAgICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoJ3wnKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQodGhyb3R0bGluZ1JlYXNvblRv
U3RyaW5nKHJlYXNvbikpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1
cml0eUNvbnRleHQuY3BwCmluZGV4IDRmOGYxYTguLjE0ODIyMWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TZWN1cml0eUNvbnRleHQuY3BwCkBAIC0xNTIsNyArMTUyLDEwIEBAIFNhbmRib3hGbGFncyBT
ZWN1cml0eUNvbnRleHQ6OnBhcnNlU2FuZGJveFBvbGljeShjb25zdCBTdHJpbmcmIHBvbGljeSwg
U3RyaW5nJiBpCiAgICAgICAgICAgICB0b2tlbkVycm9ycy5hcHBlbmRMaXRlcmFsKCIgYXJlIGlu
dmFsaWQgc2FuZGJveCBmbGFncy4iKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgdG9rZW5F
cnJvcnMuYXBwZW5kTGl0ZXJhbCgiIGlzIGFuIGludmFsaWQgc2FuZGJveCBmbGFnLiIpOwotICAg
ICAgICBpbnZhbGlkVG9rZW5zRXJyb3JNZXNzYWdlID0gdG9rZW5FcnJvcnMudG9TdHJpbmcoKTsK
KyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gdG9rZW5FcnJvcnMudG9TdHJpbmcoKSkKKyAgICAg
ICAgICAgIGludmFsaWRUb2tlbnNFcnJvck1lc3NhZ2UgPSAqc3RyaW5nOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIHJldHVybiBmbGFnczsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9U
ZXh0LmNwcAppbmRleCA3MzE1ZDE2Li5iMzI3ZjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCkBAIC0xMTMs
NyArMTEzLDkgQEAgU3RyaW5nIFRleHQ6Ondob2xlVGV4dCgpIGNvbnN0CiAgICAgU3RyaW5nQnVp
bGRlciByZXN1bHQ7CiAgICAgZm9yIChjb25zdCBUZXh0KiB0ZXh0ID0gc3RhcnRUZXh0OyB0ZXh0
ICE9IG9uZVBhc3RFbmRUZXh0OyB0ZXh0ID0gVGV4dE5vZGVUcmF2ZXJzYWw6Om5leHRTaWJsaW5n
KCp0ZXh0KSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCh0ZXh0LT5kYXRhKCkpOwotICAgIHJldHVy
biByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogUmVmUHRy
PFRleHQ+IFRleHQ6OnJlcGxhY2VXaG9sZVRleHQoY29uc3QgU3RyaW5nJiBuZXdUZXh0KQpAQCAt
MjQwLDcgKzI0MiwxMCBAQCB2b2lkIFRleHQ6OmZvcm1hdEZvckRlYnVnZ2VyKGNoYXIqIGJ1ZmZl
ciwgdW5zaWduZWQgbGVuZ3RoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKCciJyk7CiAg
ICAgfQogCi0gICAgc3RybmNweShidWZmZXIsIHJlc3VsdC50b1N0cmluZygpLnV0ZjgoKS5kYXRh
KCksIGxlbmd0aCAtIDEpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygp
KQorICAgICAgICBzdHJuY3B5KGJ1ZmZlciwgc3RyaW5nLT51dGY4KCkuZGF0YSgpLCBsZW5ndGgg
LSAxKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgYnVmZmVyW2xlbmd0aCAtIDFd
ID0gJ1wwJzsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHRO
b2RlVHJhdmVyc2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0Tm9kZVRyYXZlcnNhbC5j
cHAKaW5kZXggYjc4Y2E3OS4uNmQ0MThkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1RleHROb2RlVHJhdmVyc2FsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dE5vZGVU
cmF2ZXJzYWwuY3BwCkBAIC00Miw3ICs0Miw5IEBAIFN0cmluZyBjb250ZW50c0FzU3RyaW5nKGNv
bnN0IENvbnRhaW5lck5vZGUmIHJvb3QpCiB7CiAgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CiAg
ICAgYXBwZW5kQ29udGVudHMocm9vdCwgcmVzdWx0KTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBjb250ZW50c0FzU3Ry
aW5nKGNvbnN0IE5vZGUmIHJvb3QpCkBAIC01OSw3ICs2MSw5IEBAIFN0cmluZyBjaGlsZFRleHRD
b250ZW50KGNvbnN0IENvbnRhaW5lck5vZGUmIHJvb3QpCiAgICAgU3RyaW5nQnVpbGRlciByZXN1
bHQ7CiAgICAgZm9yIChUZXh0KiB0ZXh0ID0gVGV4dE5vZGVUcmF2ZXJzYWw6OmZpcnN0Q2hpbGQo
cm9vdCk7IHRleHQ7IHRleHQgPSBUZXh0Tm9kZVRyYXZlcnNhbDo6bmV4dFNpYmxpbmcoKnRleHQp
KQogICAgICAgICByZXN1bHQuYXBwZW5kKHRleHQtPmRhdGEoKSk7Ci0gICAgcmV0dXJuIHJlc3Vs
dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCmluZGV4IDY5ZDhhZjIuLmFlMTZm
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCkBA
IC0xMzgyLDcgKzEzODIsMTAgQEAgdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6YWRkQmxvY2tTdHls
ZShjb25zdCBTdHlsZUNoYW5nZSYgc3R5bGVDaGFuZ2UsIEhUTUxFbGVtZW4KICAgICAgICAgICAg
IGNzc1RleHQuYXBwZW5kKCcgJyk7CiAgICAgICAgIGNzc1RleHQuYXBwZW5kKGRlY2wtPmFzVGV4
dCgpKTsKICAgICB9Ci0gICAgc2V0Tm9kZUF0dHJpYnV0ZShibG9jaywgc3R5bGVBdHRyLCBjc3NU
ZXh0LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGNzc1RleHQudG9TdHJpbmco
KSkKKyAgICAgICAgc2V0Tm9kZUF0dHJpYnV0ZShibG9jaywgc3R5bGVBdHRyLCAqc3RyaW5nKTsK
KyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6
OmFkZElubGluZVN0eWxlSWZOZWVkZWQoRWRpdGluZ1N0eWxlKiBzdHlsZSwgTm9kZSYgc3RhcnQs
IE5vZGUmIGVuZCwgRUFkZFN0eWxlZEVsZW1lbnQgYWRkU3R5bGVkRWxlbWVudCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRpbmcuY3BwCmluZGV4IGU3OWI2NDYuLjMwYzE2ODAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0aW5nLmNwcApAQCAtNDI5LDcgKzQyOSw5IEBAIFN0cmluZyBzdHJpbmdXaXRoUmVi
YWxhbmNlZFdoaXRlc3BhY2UoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGJvb2wgc3RhcnRJc1N0YXJ0
T2ZQCiAKICAgICByZWJhbGFuY2VkU3RyaW5nLnJlc2VydmVDYXBhY2l0eShsZW5ndGgpOwogICAg
IHJlYmFsYW5jZWRTdHJpbmcuYXBwZW5kKHN0cmluZywgcmViYWxhbmNlZFN0cmluZy5sZW5ndGgo
KSwgbGVuZ3RoIC0gcmViYWxhbmNlZFN0cmluZy5sZW5ndGgoKSk7Ci0gICAgcmV0dXJuIHJlYmFs
YW5jZWRTdHJpbmcudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZWJhbGFuY2Vk
U3RyaW5nLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIGJvb2wgaXNUYWJsZVN0cnVjdHVyZU5vZGUoY29uc3QgTm9kZSogbm9kZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSFRNTEludGVyY2hhbmdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSFRNTEludGVyY2hhbmdlLmNwcAppbmRleCBiMjIzNDNiLi5jZjg1
MjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0hUTUxJbnRlcmNoYW5nZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9IVE1MSW50ZXJjaGFuZ2UuY3BwCkBAIC05
NSw3ICs5NSw5IEBAIFN0cmluZyBjb252ZXJ0SFRNTFRleHRUb0ludGVyY2hhbmdlRm9ybWF0KGNv
bnN0IFN0cmluZyYgaW4sIGNvbnN0IFRleHQqIG5vZGUpCiAgICAgICAgIGkgKz0gY29uc3VtZWQ7
CiAgICAgfQogCi0gICAgcmV0dXJuIHMudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBzLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJr
dXBBY2N1bXVsYXRvci5jcHAKaW5kZXggOTA2OTY3Zi4uNjdlNzZjMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKQEAgLTEzMCw3ICsxMzAsOSBAQCBN
YXJrdXBBY2N1bXVsYXRvcjo6fk1hcmt1cEFjY3VtdWxhdG9yKCkgPSBkZWZhdWx0OwogU3RyaW5n
IE1hcmt1cEFjY3VtdWxhdG9yOjpzZXJpYWxpemVOb2RlcyhOb2RlJiB0YXJnZXROb2RlLCBFQ2hp
bGRyZW5Pbmx5IGNoaWxkcmVuT25seSwgVmVjdG9yPFF1YWxpZmllZE5hbWU+KiB0YWdOYW1lc1Rv
U2tpcCkKIHsKICAgICBzZXJpYWxpemVOb2Rlc1dpdGhOYW1lc3BhY2VzKHRhcmdldE5vZGUsIGNo
aWxkcmVuT25seSwgMCwgdGFnTmFtZXNUb1NraXApOwotICAgIHJldHVybiBtX21hcmt1cC50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1fbWFya3VwLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgTWFya3VwQWNjdW11
bGF0b3I6OnNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMoTm9kZSYgdGFyZ2V0Tm9kZSwgRUNo
aWxkcmVuT25seSBjaGlsZHJlbk9ubHksIGNvbnN0IE5hbWVzcGFjZXMqIG5hbWVzcGFjZXMsIFZl
Y3RvcjxRdWFsaWZpZWROYW1lPiogdGFnTmFtZXNUb1NraXApCkBAIC00ODMsMTEgKzQ4NSwxNCBA
QCB2b2lkIE1hcmt1cEFjY3VtdWxhdG9yOjpnZW5lcmF0ZVVuaXF1ZVByZWZpeChRdWFsaWZpZWRO
YW1lJiBwcmVmaXhlZE5hbWUsIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuY2xlYXIoKTsKICAgICAg
ICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJOUyIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZE51
bWJlcigrK21fcHJlZml4TGV2ZWwpOwotICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUg
PSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7Ci0gICAgICAgIGlmICghbmFtZXNwYWNlcy5nZXQo
bmFtZS5pbXBsKCkpKSB7Ci0gICAgICAgICAgICBwcmVmaXhlZE5hbWUuc2V0UHJlZml4KG5hbWUp
OwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKSkgeworICAgICAgICAgICAgY29uc3QgQXRvbWlj
U3RyaW5nJiBuYW1lID0gKnN0cmluZzsKKyAgICAgICAgICAgIGlmICghbmFtZXNwYWNlcy5nZXQo
bmFtZS5pbXBsKCkpKSB7CisgICAgICAgICAgICAgICAgcHJlZml4ZWROYW1lLnNldFByZWZpeChu
YW1lKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9IHdoaWxlICh0cnVlKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCmluZGV4IDY1NzRmMWUuLmY1NDMxZWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKQEAgLTI2NjcsMTIgKzI2
NjcsMTUgQEAgU3RyaW5nIHBsYWluVGV4dChjb25zdCBSYW5nZSogciwgVGV4dEl0ZXJhdG9yQmVo
YXZpb3IgZGVmYXVsdEJlaGF2aW9yLCBib29sIGlzRGkKICAgICBpZiAoIWJ1ZmZlckxlbmd0aCkK
ICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAKLSAgICBTdHJpbmcgcmVzdWx0ID0gYnVp
bGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gKnN0cmluZzsKIAotICAgIGlmIChpc0Rpc3Bs
YXlTdHJpbmcpCi0gICAgICAgIHItPm93bmVyRG9jdW1lbnQoKS5kaXNwbGF5U3RyaW5nTW9kaWZp
ZWRCeUVuY29kaW5nKHJlc3VsdCk7CisgICAgICAgIGlmIChpc0Rpc3BsYXlTdHJpbmcpCisgICAg
ICAgICAgICByLT5vd25lckRvY3VtZW50KCkuZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGlu
ZyhyZXN1bHQpOwogCi0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIHBsYWluVGV4dFJlcGxhY2luZ05vQnJl
YWtTcGFjZShjb25zdCBSYW5nZSogcmFuZ2UsIFRleHRJdGVyYXRvckJlaGF2aW9yIGRlZmF1bHRC
ZWhhdmlvciwgYm9vbCBpc0Rpc3BsYXlTdHJpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBp
bmdDb21tYW5kLmNwcAppbmRleCBmZDc5MDY2Li5iZWU2M2RkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKQEAgLTQyNSw3ICs0MjUsOSBAQCBSZWZQdHI8RGF0YVRy
YW5zZmVyPiBUeXBpbmdDb21tYW5kOjppbnB1dEV2ZW50RGF0YVRyYW5zZmVyKCkgY29uc3QKIAog
ICAgIFN0cmluZ0J1aWxkZXIgaHRtbFRleHQ7CiAgICAgTWFya3VwQWNjdW11bGF0b3I6OmFwcGVu
ZENoYXJhY3RlcnNSZXBsYWNpbmdFbnRpdGllcyhodG1sVGV4dCwgbV9jdXJyZW50VGV4dFRvSW5z
ZXJ0LCAwLCBtX2N1cnJlbnRUZXh0VG9JbnNlcnQubGVuZ3RoKCksIEVudGl0eU1hc2tJbkhUTUxQ
Q0RBVEEpOwotICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvcklucHV0RXZlbnQobV9j
dXJyZW50VGV4dFRvSW5zZXJ0LCBodG1sVGV4dC50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBodG1sVGV4dC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gRGF0YVRyYW5zZmVy
OjpjcmVhdGVGb3JJbnB1dEV2ZW50KG1fY3VycmVudFRleHRUb0luc2VydCwgKnN0cmluZyk7Cisg
ICAgQ1JBU0goKTsKIH0KIAogdm9pZCBUeXBpbmdDb21tYW5kOjpkaWRBcHBseUNvbW1hbmQoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKaW5kZXggMTg2NTBh
Yi4uNzNhY2NjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2Vs
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24u
Y3BwCkBAIC03MDcsNyArNzA3LDEwIEBAIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6Zm9ybWF0Rm9y
RGVidWdnZXIoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0CiAgICAgICAgIHJl
c3VsdC5hcHBlbmQocyk7CiAgICAgfQogCi0gICAgc3RybmNweShidWZmZXIsIHJlc3VsdC50b1N0
cmluZygpLnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBzdHJuY3B5KGJ1ZmZlciwgc3RyaW5nLT51dGY4
KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAK
IHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6c2hvd1RyZWVGb3JUaGlzKCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQppbmRleCBmNDQ1NjE2Li5l
OTg2NDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRl
Y3Rpb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9u
Lm1tCkBAIC0zMTksNyArMzE5LDkgQEAgc3RhdGljIFN0cmluZyBkYXRhRGV0ZWN0b3JTdHJpbmdG
b3JQYXRoKE5TSW5kZXhQYXRoICpwYXRoKQogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51
bWJlcigodW5zaWduZWQgbG9uZylbcGF0aCBpbmRleEF0UG9zaXRpb246MF0pOwogICAgICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZCgnLycpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51
bWJlcigodW5zaWduZWQgbG9uZylbcGF0aCBpbmRleEF0UG9zaXRpb246MV0pOwotICAgICAgICBy
ZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgZGVmYXVsdDogewogICAgICAgICBTdHJpbmdC
dWlsZGVyIHN0cmluZ0J1aWxkZXI7CkBAIC0zMjksNyArMzMxLDkgQEAgc3RhdGljIFN0cmluZyBk
YXRhRGV0ZWN0b3JTdHJpbmdGb3JQYXRoKE5TSW5kZXhQYXRoICpwYXRoKQogICAgICAgICAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIoKHVuc2lnbmVkIGxvbmcpW3BhdGggaW5kZXhBdFBv
c2l0aW9uOmldKTsKICAgICAgICAgfQogCi0gICAgICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAg
IH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hU
TUxDb252ZXJ0ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0
ZXIubW0KaW5kZXggNmIxMzk3ZS4uNWQzMjkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvY29jb2EvSFRNTENvbnZlcnRlci5tbQpAQCAtMjI1NCw3ICsyMjU0LDEwIEBAIHZvaWQgSFRN
TENvbnZlcnRlcjo6X3Byb2Nlc3NUZXh0KENoYXJhY3RlckRhdGEmIGNoYXJhY3RlckRhdGEpCiAg
ICAgICAgIH0KICAgICAgICAgaWYgKHdhc1NwYWNlKQogICAgICAgICAgICAgYnVpbGRlci5hcHBl
bmQoJyAnKTsKLSAgICAgICAgb3V0cHV0U3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOworICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBv
dXRwdXRTdHJpbmcgPSAqc3RyaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgp
OwogICAgIH0KIAogICAgIGlmIChvdXRwdXRTdHJpbmcubGVuZ3RoKCkpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbQppbmRleCA1NjIxMzU1Li4yZmU1NDYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tCkBAIC0yODQsNyArMjg0LDEwIEBAIHZv
aWQgRWRpdG9yOjpzZXREaWN0YXRpb25QaHJhc2VzQXNDaGlsZE9mRWxlbWVudChjb25zdCBWZWN0
b3I8VmVjdG9yPFN0cmluZz4+JiBkCiAgICAgZm9yIChhdXRvJiBpbnRlcnByZXRhdGlvbnMgOiBk
aWN0YXRpb25QaHJhc2VzKQogICAgICAgICBkaWN0YXRpb25QaHJhc2VzQnVpbGRlci5hcHBlbmQo
aW50ZXJwcmV0YXRpb25zWzBdKTsKIAotICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRnJh
Z21lbnRGcm9tVGV4dCgqY29udGV4dCwgZGljdGF0aW9uUGhyYXNlc0J1aWxkZXIudG9TdHJpbmco
KSkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGRpY3RhdGlvblBocmFzZXNCdWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRnJhZ21lbnRGcm9tVGV4
dCgqY29udGV4dCwgKnN0cmluZykpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAg
IC8vIFdlIG5lZWQgYSBsYXlvdXQgaW4gb3JkZXIgdG8gYWRkIG1hcmtlcnMgYmVsb3cuCiAgICAg
ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvbWFya3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAppbmRl
eCA1NTUxZWVjLi5kNTY4ODEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21h
cmt1cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCkBAIC0yOTAs
NyArMjkwLDEwIEBAIHZvaWQgU3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OndyYXBXaXRoTm9kZShO
b2RlJiBub2RlLCBib29sIGNvbnZlcnRCbG9ja3NUb0lubGluCiAgICAgICAgIGFwcGVuZEVsZW1l
bnQobWFya3VwLCBkb3duY2FzdDxFbGVtZW50Pihub2RlKSwgY29udmVydEJsb2Nrc1RvSW5saW5l
cyAmJiBpc0Jsb2NrKCZub2RlKSwgcmFuZ2VGdWxseVNlbGVjdHNOb2RlKTsKICAgICBlbHNlCiAg
ICAgICAgIGFwcGVuZFN0YXJ0TWFya3VwKG1hcmt1cCwgbm9kZSwgbnVsbHB0cik7Ci0gICAgbV9y
ZXZlcnNlZFByZWNlZGluZ01hcmt1cC5hcHBlbmQobWFya3VwLnRvU3RyaW5nKCkpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IG1hcmt1cC50b1N0cmluZygpKQorICAgICAgICBtX3JldmVyc2VkUHJl
Y2VkaW5nTWFya3VwLmFwcGVuZCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7
CiAgICAgYXBwZW5kRW5kVGFnKG5vZGUpOwogICAgIGlmIChtX25vZGVzKQogICAgICAgICBtX25v
ZGVzLT5hcHBlbmQoJm5vZGUpOwpAQCAtMzAwLDcgKzMwMywxMCBAQCB2b2lkIFN0eWxlZE1hcmt1
cEFjY3VtdWxhdG9yOjp3cmFwV2l0aFN0eWxlTm9kZShTdHlsZVByb3BlcnRpZXMqIHN0eWxlLCBE
b2N1bWVudAogewogICAgIFN0cmluZ0J1aWxkZXIgb3BlblRhZzsKICAgICBhcHBlbmRTdHlsZU5v
ZGVPcGVuVGFnKG9wZW5UYWcsIHN0eWxlLCBkb2N1bWVudCwgaXNCbG9jayk7Ci0gICAgbV9yZXZl
cnNlZFByZWNlZGluZ01hcmt1cC5hcHBlbmQob3BlblRhZy50b1N0cmluZygpKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBvcGVuVGFnLnRvU3RyaW5nKCkpCisgICAgICAgIG1fcmV2ZXJzZWRQcmVj
ZWRpbmdNYXJrdXAuYXBwZW5kKCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsK
ICAgICBhcHBlbmRTdHJpbmcoc3R5bGVOb2RlQ2xvc2VUYWcoaXNCbG9jaykpOwogfQogCkBAIC0z
MzQsNyArMzQwLDkgQEAgU3RyaW5nIFN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjp0YWtlUmVzdWx0
cygpCiAgICAgY29uY2F0ZW5hdGVNYXJrdXAocmVzdWx0KTsKIAogICAgIC8vIFdlIHJlbW92ZSAn
XDAnIGNoYXJhY3RlcnMgYmVjYXVzZSB0aGV5IGFyZSBub3QgdmlzaWJseSByZW5kZXJlZCB0byB0
aGUgdXNlci4KLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCkucmVwbGFjZVdpdGhMaXRlcmFs
KCdcMCcsICIiKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuIHN0cmluZy0+cmVwbGFjZVdpdGhMaXRlcmFsKCdcMCcsICIiKTsKKyAgICBD
UkFTSCgpOwogfQogCiB2b2lkIFN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRUZXh0KFN0
cmluZ0J1aWxkZXImIG91dCwgY29uc3QgVGV4dCYgdGV4dCkKQEAgLTM1OSw3ICszNjcsMTAgQEAg
dm9pZCBTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kVGV4dChTdHJpbmdCdWlsZGVyJiBv
dXQsIGNvbnN0IFRleHQmIHRleHQpCiAgICAgICAgIFN0cmluZyBjb250ZW50ID0gdXNlUmVuZGVy
ZWRUZXh0ID8gcmVuZGVyZWRUZXh0KHRleHQsIG1fcmFuZ2UpIDogc3RyaW5nVmFsdWVGb3JSYW5n
ZSh0ZXh0LCBtX3JhbmdlKTsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWZmZXI7CiAgICAgICAg
IGFwcGVuZENoYXJhY3RlcnNSZXBsYWNpbmdFbnRpdGllcyhidWZmZXIsIGNvbnRlbnQsIDAsIGNv
bnRlbnQubGVuZ3RoKCksIEVudGl0eU1hc2tJblBDREFUQSk7Ci0gICAgICAgIG91dC5hcHBlbmQo
Y29udmVydEhUTUxUZXh0VG9JbnRlcmNoYW5nZUZvcm1hdChidWZmZXIudG9TdHJpbmcoKSwgJnRl
eHQpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVmZmVyLnRvU3RyaW5nKCkpCisgICAg
ICAgICAgICBvdXQuYXBwZW5kKGNvbnZlcnRIVE1MVGV4dFRvSW50ZXJjaGFuZ2VGb3JtYXQoKnN0
cmluZywgJnRleHQpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9
CiAKICAgICBpZiAod3JhcHBpbmdTcGFuKQpAQCAtODczLDcgKzg4NCw5IEBAIFN0cmluZyBzYW5p
dGl6ZWRNYXJrdXBGb3JGcmFnbWVudEluRG9jdW1lbnQoUmVmPERvY3VtZW50RnJhZ21lbnQ+JiYg
ZnJhZ21lbnQsIERvCiAgICAgICAgICAgICAieG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy9UUi9S
RUMtaHRtbDQwXCI+Iik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHJlc3VsdCk7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPC9odG1sPiIpOwotICAgICAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9
CiAKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMTA5Miw3ICsxMTA1LDkgQEAgU3RyaW5nIHVybFRv
TWFya3VwKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKQogICAgIG1hcmt1cC5h
cHBlbmRMaXRlcmFsKCJcIj4iKTsKICAgICBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kQ2hhcmFj
dGVyc1JlcGxhY2luZ0VudGl0aWVzKG1hcmt1cCwgdGl0bGUsIDAsIHRpdGxlLmxlbmd0aCgpLCBF
bnRpdHlNYXNrSW5QQ0RBVEEpOwogICAgIG1hcmt1cC5hcHBlbmRMaXRlcmFsKCI8L2E+Iik7Ci0g
ICAgcmV0dXJuIG1hcmt1cC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1hcmt1
cC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiBFeGNlcHRpb25PcjxSZWY8RG9jdW1lbnRGcmFnbWVudD4+IGNyZWF0ZUZyYWdtZW50Rm9ySW5u
ZXJPdXRlckhUTUwoRWxlbWVudCYgY29udGV4dEVsZW1lbnQsIGNvbnN0IFN0cmluZyYgbWFya3Vw
LCBQYXJzZXJDb250ZW50UG9saWN5IHBhcnNlckNvbnRlbnRQb2xpY3kpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcAppbmRleCA5YTIyMzRmLi4yODM0NWFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAKQEAgLTMzNywy
MCArMzM3LDIwIEBAIHZvaWQgRmlsZVJlYWRlckxvYWRlcjo6Y29udmVydFRvRGF0YVVSTCgpCiAg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiZGF0
YToiKTsKIAotICAgIGlmICghbV9ieXRlc0xvYWRlZCkgewotICAgICAgICBtX3N0cmluZ1Jlc3Vs
dCA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICAgICAgcmV0dXJuOworICAgIGlmIChtX2J5dGVz
TG9hZGVkKSB7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG1fZGF0YVR5cGUpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIjtiYXNlNjQsIik7CisKKyAgICAgICAgVmVjdG9yPGNoYXI+
IG91dDsKKyAgICAgICAgYmFzZTY0RW5jb2RlKG1fcmF3RGF0YS0+ZGF0YSgpLCBtX2J5dGVzTG9h
ZGVkLCBvdXQpOworICAgICAgICBvdXQuYXBwZW5kKCdcMCcpOworICAgICAgICBidWlsZGVyLmFw
cGVuZChvdXQuZGF0YSgpKTsKICAgICB9CiAKLSAgICBidWlsZGVyLmFwcGVuZChtX2RhdGFUeXBl
KTsKLSAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjtiYXNlNjQsIik7Ci0KLSAgICBWZWN0b3I8
Y2hhcj4gb3V0OwotICAgIGJhc2U2NEVuY29kZShtX3Jhd0RhdGEtPmRhdGEoKSwgbV9ieXRlc0xv
YWRlZCwgb3V0KTsKLSAgICBvdXQuYXBwZW5kKCdcMCcpOwotICAgIGJ1aWxkZXIuYXBwZW5kKG91
dC5kYXRhKCkpOwotCi0gICAgbV9zdHJpbmdSZXN1bHQgPSBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBtX3N0cmlu
Z1Jlc3VsdCA9ICpzdHJpbmc7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiBib29s
IEZpbGVSZWFkZXJMb2FkZXI6OmlzQ29tcGxldGVkKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9N
VG9rZW5MaXN0LmNwcAppbmRleCBjOTVmOTY5Li5kYjQyOTY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9E
T01Ub2tlbkxpc3QuY3BwCkBAIC0yNzMsMTAgKzI3MywxMyBAQCB2b2lkIERPTVRva2VuTGlzdDo6
dXBkYXRlQXNzb2NpYXRlZEF0dHJpYnV0ZUZyb21Ub2tlbnMoKQogICAgICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoJyAnKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQodG9rZW4pOwogICAgIH0KLSAg
ICBBdG9taWNTdHJpbmcgc2VyaWFsaXplZFZhbHVlID0gYnVpbGRlci50b0F0b21pY1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKSkgeworICAg
ICAgICBBdG9taWNTdHJpbmcgc2VyaWFsaXplZFZhbHVlID0gKnN0cmluZzsKIAotICAgIFNldEZv
clNjb3BlPGJvb2w+IGluQXR0cmlidXRlVXBkYXRlKG1faW5VcGRhdGVBc3NvY2lhdGVkQXR0cmli
dXRlRnJvbVRva2VucywgdHJ1ZSk7Ci0gICAgbV9lbGVtZW50LnNldEF0dHJpYnV0ZShtX2F0dHJp
YnV0ZU5hbWUsIHNlcmlhbGl6ZWRWYWx1ZSk7CisgICAgICAgIFNldEZvclNjb3BlPGJvb2w+IGlu
QXR0cmlidXRlVXBkYXRlKG1faW5VcGRhdGVBc3NvY2lhdGVkQXR0cmlidXRlRnJvbVRva2Vucywg
dHJ1ZSk7CisgICAgICAgIG1fZWxlbWVudC5zZXRBdHRyaWJ1dGUobV9hdHRyaWJ1dGVOYW1lLCBz
ZXJpYWxpemVkVmFsdWUpOworICAgIH0gZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiBWZWN0
b3I8QXRvbWljU3RyaW5nPiYgRE9NVG9rZW5MaXN0Ojp0b2tlbnMoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0VtYWlsSW5wdXRUeXBlLmNwcAppbmRleCBiOTNlMTJiLi41ODM2YzdmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcApAQCAtMTA0LDcgKzEwNCw5IEBAIFN0cmluZyBFbWFp
bElucHV0VHlwZTo6c2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmIHByb3Bvc2VkVmFsdWUpIGNv
bnN0CiAgICAgICAgICAgICBzdHJpcHBlZFZhbHVlLmFwcGVuZCgnLCcpOwogICAgICAgICBzdHJp
cHBlZFZhbHVlLmFwcGVuZChzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoYWRkcmVz
c2VzW2ldKSk7CiAgICAgfQotICAgIHJldHVybiBzdHJpcHBlZFZhbHVlLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaXBwZWRWYWx1ZS50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAppbmRleCAzZTU1YTA1Li5mZGM0OWM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTQ2Nyw3ICs0NjcsOSBA
QCBTdHJpbmcgRmlsZUlucHV0VHlwZTo6ZGVmYXVsdFRvb2xUaXAoKSBjb25zdAogICAgICAgICBp
ZiAoaSAhPSBsaXN0U2l6ZSAtIDEpCiAgICAgICAgICAgICBuYW1lcy5hcHBlbmQoJ1xuJyk7CiAg
ICAgfQotICAgIHJldHVybiBuYW1lcy50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IG5hbWVzLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmNwcAppbmRleCAwZjViNzc1
Li4xYTI5YTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmNwcApAQCAtMzEy
LDcgKzMxMiw5IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIGZvcm1TaWduYXR1cmUoY29uc3QgSFRN
TEZvcm1FbGVtZW50JiBmb3JtKQogICAgICAgICBidWlsZGVyLmFwcGVuZChhY3Rpb25VUkwuc3Ry
aW5nKCkpOwogCiAgICAgcmVjb3JkRm9ybVN0cnVjdHVyZShmb3JtLCBidWlsZGVyKTsKLSAgICBy
ZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAog
QXRvbWljU3RyaW5nIEZvcm1LZXlHZW5lcmF0b3I6OmZvcm1LZXkoY29uc3QgSFRNTEZvcm1Db250
cm9sRWxlbWVudFdpdGhTdGF0ZSYgY29udHJvbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5j
aG9yRWxlbWVudC5jcHAKaW5kZXggNzE1MjMxNy4uYTcwMjZmMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTQwMCwxMCArNDAwLDE0IEBAIHZvaWQgSFRN
TEFuY2hvckVsZW1lbnQ6OmhhbmRsZUNsaWNrKEV2ZW50JiBldmVudCkKICAgICBpZiAoIWZyYW1l
KQogICAgICAgICByZXR1cm47CiAKLSAgICBTdHJpbmdCdWlsZGVyIHVybDsKLSAgICB1cmwuYXBw
ZW5kKHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhhdHRyaWJ1dGVXaXRob3V0U3lu
Y2hyb25pemF0aW9uKGhyZWZBdHRyKSkpOwotICAgIGFwcGVuZFNlcnZlck1hcE1vdXNlUG9zaXRp
b24odXJsLCBldmVudCk7Ci0gICAgVVJMIGNvbXBsZXRlZFVSTCA9IGRvY3VtZW50KCkuY29tcGxl
dGVVUkwodXJsLnRvU3RyaW5nKCkpOworICAgIFVSTCBjb21wbGV0ZWRVUkwgPSBkb2N1bWVudCgp
LmNvbXBsZXRlVVJMKFsmXSAoKSB7CisgICAgICAgIFN0cmluZ0J1aWxkZXIgdXJsOworICAgICAg
ICB1cmwuYXBwZW5kKHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhhdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKGhyZWZBdHRyKSkpOworICAgICAgICBhcHBlbmRTZXJ2ZXJN
YXBNb3VzZVBvc2l0aW9uKHVybCwgZXZlbnQpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSB1
cmwudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFT
SCgpOworICAgIH0oKSk7CiAKICAgICBTdHJpbmcgZG93bmxvYWRBdHRyaWJ1dGU7CiAjaWYgRU5B
QkxFKERPV05MT0FEX0FUVFJJQlVURSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxl
bWVudC5jcHAKaW5kZXggNjY0ZWRmMC4uYjY3YjRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTMzNiw4ICszMzYsMTEgQEAgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEKiBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dDJkKGNvbnN0IFN0cmlu
ZyYgdHlwZSkKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJUb3RhbCBjYW52
YXMgbWVtb3J5IHVzZSBleGNlZWRzIHRoZSBtYXhpbXVtIGxpbWl0ICgiKTsKICAgICAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmROdW1iZXIobWF4QWN0aXZlUGl4ZWxNZW1vcnkoKSAvIDEwMjQgLyAx
MDI0KTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgTUIpLiIpOwotICAg
ICAgICBkb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNz
YWdlTGV2ZWw6Oldhcm5pbmcsIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgICAgIHJl
dHVybiBudWxscHRyOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCkpIHsKKyAgICAgICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVz
c2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgKnN0cmluZyk7CisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorICAgICAgICBDUkFTSCgpOwogICAgIH0K
IAogICAgIG1fY29udGV4dCA9IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y3JlYXRlKCp0aGlz
LCBkb2N1bWVudCgpLmluUXVpcmtzTW9kZSgpLCB1c2VzRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1v
ZGUpOwpAQCAtODg5LDggKzg5MiwxMSBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJ
bWFnZUJ1ZmZlcigpIGNvbnN0CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
Q2FudmFzIGFyZWEgZXhjZWVkcyB0aGUgbWF4aW11bSBsaW1pdCAod2lkdGggKiBoZWlnaHQgPiAi
KTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIobWF4Q2FudmFzQXJlYSk7CiAg
ICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKS4iKTsKLSAgICAgICAgZG9jdW1l
bnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpX
YXJuaW5nLCBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOwotICAgICAgICByZXR1cm47CisgICAg
ICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAg
ICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVz
c2FnZUxldmVsOjpXYXJuaW5nLCAqc3RyaW5nKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICAKICAgICAvLyBNYWtlIHN1cmUgd2Ug
ZG9uJ3QgdXNlIG1vcmUgcGl4ZWwgbWVtb3J5IHRoYW4gdGhlIHN5c3RlbSBjYW4gc3VwcG9ydC4K
QEAgLTkwMCw4ICs5MDYsMTEgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VC
dWZmZXIoKSBjb25zdAogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIlRvdGFs
IGNhbnZhcyBtZW1vcnkgdXNlIGV4Y2VlZHMgdGhlIG1heGltdW0gbGltaXQgKCIpOwogICAgICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcihtYXhBY3RpdmVQaXhlbE1lbW9yeSgpIC8gMTAy
NCAvIDEwMjQpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiBNQikuIik7
Ci0gICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMs
IE1lc3NhZ2VMZXZlbDo6V2FybmluZywgc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKLSAgICAg
ICAgcmV0dXJuOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3Ry
aW5nKCkpIHsKKyAgICAgICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgKnN0cmluZyk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBpZiAo
IXdpZHRoKCkgfHwgIWhlaWdodCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9udEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1lbnQu
Y3BwCmluZGV4IDhkNmMzNDcuLmMzNWE2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb250
RWxlbWVudC5jcHAKQEAgLTExMSwxMCArMTExLDEzIEBAIHN0YXRpYyBib29sIHBhcnNlRm9udFNp
emUoY29uc3QgQ2hhcmFjdGVyVHlwZSogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBpbnQm
CiAgICAgLy8gU3RlcCA4CiAgICAgaW50IHZhbHVlOwogCisgICAgaWYgKGRpZ2l0cy5mYWlsZWQo
KSkKKyAgICAgICAgQ1JBU0goKTsKKwogICAgIGlmIChkaWdpdHMuaXM4Qml0KCkpCi0gICAgICAg
IHZhbHVlID0gY2hhcmFjdGVyc1RvSW50U3RyaWN0KGRpZ2l0cy5jaGFyYWN0ZXJzOCgpLCBkaWdp
dHMubGVuZ3RoKCkpOworICAgICAgICB2YWx1ZSA9IGNoYXJhY3RlcnNUb0ludFN0cmljdCgqZGln
aXRzLmNoYXJhY3RlcnM4KCksIGRpZ2l0cy5sZW5ndGgoKSk7CiAgICAgZWxzZQotICAgICAgICB2
YWx1ZSA9IGNoYXJhY3RlcnNUb0ludFN0cmljdChkaWdpdHMuY2hhcmFjdGVyczE2KCksIGRpZ2l0
cy5sZW5ndGgoKSk7CisgICAgICAgIHZhbHVlID0gY2hhcmFjdGVyc1RvSW50U3RyaWN0KCpkaWdp
dHMuY2hhcmFjdGVyczE2KCksIGRpZ2l0cy5sZW5ndGgoKSk7CiAKICAgICAvLyBTdGVwIDkKICAg
ICBpZiAobW9kZSA9PSBSZWxhdGl2ZVBsdXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VF
bGVtZW50LmNwcAppbmRleCA0ZjY1OTdjLi5hMmUxYzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEltYWdlRWxlbWVudC5jcHAKQEAgLTQ3NCw3ICs0NzQsOSBAQCBTdHJpbmcgSFRNTEltYWdl
RWxlbWVudDo6Y29tcGxldGVVUkxzSW5BdHRyaWJ1dGVWYWx1ZShjb25zdCBVUkwmIGJhc2UsIGNv
bnN0IEF0dAogICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3cnKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIHJldHVybiBIVE1MRWxlbWVu
dDo6Y29tcGxldGVVUkxzSW5BdHRyaWJ1dGVWYWx1ZShiYXNlLCBhdHRyaWJ1dGUpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggZGUxYzJlOC4uMzZmYmNh
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0yMzIsOSAr
MjMyLDEyIEBAIHN0YXRpYyBTdHJpbmcgYWN0aW9uTmFtZShIVE1MTWVkaWFFbGVtZW50RW51bXM6
OkRlbGF5ZWRBY3Rpb25UeXBlIGFjdGlvbikKIAogI3VuZGVmIEFDVElPTgogCi0gICAgU3RyaW5n
IG5hbWUgPSBhY3Rpb25CdWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgQVNTRVJUKCFuYW1lLmlzRW1w
dHkoKSk7Ci0gICAgcmV0dXJuIG5hbWU7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYWN0aW9uQnVp
bGRlci50b1N0cmluZygpKSB7CisgICAgICAgIFN0cmluZyBuYW1lID0gKnN0cmluZzsKKyAgICAg
ICAgQVNTRVJUKCFuYW1lLmlzRW1wdHkoKSk7CisgICAgICAgIHJldHVybiBuYW1lOworICAgIH0K
KyAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9u
RWxlbWVudC5jcHAKaW5kZXggOWY2ZGFkMi4uZmE5OGFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKQEAgLTM0OSw3ICszNDksOSBAQCBTdHJpbmcgSFRNTE9w
dGlvbkVsZW1lbnQ6OmNvbGxlY3RPcHRpb25Jbm5lclRleHQoKSBjb25zdAogICAgICAgICBlbHNl
CiAgICAgICAgICAgICBub2RlID0gTm9kZVRyYXZlcnNhbDo6bmV4dCgqbm9kZSwgdGhpcyk7CiAg
ICAgfQotICAgIHJldHVybiB0ZXh0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
dGV4dC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCBlZDE0ODU3Li5kMGZiNGI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAt
MTQzLDcgKzE0Myw5IEBAIFN0cmluZyBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c3RyaXBw
ZWRQbGFjZWhvbGRlcigpIGNvbnN0CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgc3Ry
aXBwZWQuYXBwZW5kKGNoYXJhY3Rlcik7CiAgICAgfQotICAgIHJldHVybiBzdHJpcHBlZC50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmlwcGVkLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBib29sIGlzTm90
TGluZUJyZWFrKFVDaGFyIGNoKSB7IHJldHVybiBjaCAhPSBuZXdsaW5lQ2hhcmFjdGVyICYmIGNo
ICE9IGNhcnJpYWdlUmV0dXJuOyB9CkBAIC01NTIsNyArNTU0LDkgQEAgc3RhdGljIFN0cmluZyBp
bm5lclRleHRWYWx1ZUZyb20oVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50JiBpbm5lclRleHQp
CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGRvd25jYXN0PFRleHQ+KCpub2RlKS5kYXRhKCkp
OwogICAgIH0KICAgICBzdHJpcFRyYWlsaW5nTmV3bGluZShyZXN1bHQpOwotICAgIHJldHVybiBy
ZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBIVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0VmFsdWUoY29uc3QgU3RyaW5nJiB2
YWx1ZSkKQEAgLTczNiw3ICs3NDAsOSBAQCBTdHJpbmcgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQ6OnZhbHVlV2l0aEhhcmRMaW5lQnJlYWtzKCkgY29uc3QKICAgICAgICAgICAgIGdldE5leHRT
b2Z0QnJlYWsobGluZSwgYnJlYWtOb2RlLCBicmVha09mZnNldCk7CiAgICAgfQogICAgIHN0cmlw
VHJhaWxpbmdOZXdsaW5lKHJlc3VsdCk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCog
ZW5jbG9zaW5nVGV4dEZvcm1Db250cm9sKGNvbnN0IFBvc2l0aW9uJiBwb3NpdGlvbikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCmluZGV4IDExOTM0MGYuLjY5NzcxMjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcApAQCAtMTIxLDcgKzEyMSwxMCBAQCB2b2lk
IE1lZGlhRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKICNpZiBQTEFU
Rk9STShJT1MpCiAgICAgICAgIGVsZW1lbnRTdHlsZS5hcHBlbmRMaXRlcmFsKCJ3aWR0aDogMTAw
JTsgaGVpZ2h0OiBhdXRvOyIpOwogI2VuZGlmCi0gICAgICAgIHZpZGVvRWxlbWVudC0+c2V0QXR0
cmlidXRlKHN0eWxlQXR0ciwgZWxlbWVudFN0eWxlLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAo
YXV0byBzdHJpbmcgPSBlbGVtZW50U3R5bGUudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHZpZGVv
RWxlbWVudC0+c2V0QXR0cmlidXRlKHN0eWxlQXR0ciwgKnN0cmluZyk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgYm9keS0+YXBwZW5kQ2hpbGQodmlk
ZW9FbGVtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50
U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3Bw
CmluZGV4IDVjZDc5MDUuLjZmNGUwZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
TWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVs
ZW1lbnRTZXNzaW9uLmNwcApAQCAtODYsNyArODYsOSBAQCBzdGF0aWMgU3RyaW5nIHJlc3RyaWN0
aW9uTmFtZShNZWRpYUVsZW1lbnRTZXNzaW9uOjpCZWhhdmlvclJlc3RyaWN0aW9ucyByZXN0cmlj
dAogICAgIENBU0UoSW52aXNpYmxlQXV0b3BsYXlOb3RQZXJtaXR0ZWQpOwogICAgIENBU0UoT3Zl
cnJpZGVVc2VyR2VzdHVyZVJlcXVpcmVtZW50Rm9yTWFpbkNvbnRlbnQpOwogCi0gICAgcmV0dXJu
IHJlc3RyaWN0aW9uQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJl
c3RyaWN0aW9uQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
TWVkaWFGcmFnbWVudFVSSVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRnJh
Z21lbnRVUklQYXJzZXIuY3BwCmluZGV4IGU3YTUxNmUuLjMwNWI2NjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFGcmFnbWVudFVSSVBhcnNlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9NZWRpYUZyYWdtZW50VVJJUGFyc2VyLmNwcApAQCAtNTIsNyArNTIsOSBA
QCBzdGF0aWMgU3RyaW5nIGNvbGxlY3REaWdpdHMoY29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25l
ZCBsZW5ndGgsIHVuc2lnbmVkJiBwb3NpdAogICAgIC8vIERJR0lUIDsgYW55IHBvc2l0aXZlIG51
bWJlcgogICAgIHdoaWxlIChwb3NpdGlvbiA8IGxlbmd0aCAmJiBpc0FTQ0lJRGlnaXQoaW5wdXRb
cG9zaXRpb25dKSkKICAgICAgICAgZGlnaXRzLmFwcGVuZChpbnB1dFtwb3NpdGlvbisrXSk7Ci0g
ICAgcmV0dXJuIGRpZ2l0cy50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGRpZ2l0
cy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiBzdGF0aWMgU3RyaW5nIGNvbGxlY3RGcmFjdGlvbihjb25zdCBMQ2hhciogaW5wdXQsIHVuc2ln
bmVkIGxlbmd0aCwgdW5zaWduZWQmIHBvc2l0aW9uKQpAQCAtNjcsNyArNjksOSBAQCBzdGF0aWMg
U3RyaW5nIGNvbGxlY3RGcmFjdGlvbihjb25zdCBMQ2hhciogaW5wdXQsIHVuc2lnbmVkIGxlbmd0
aCwgdW5zaWduZWQmIHBvcwogICAgIGRpZ2l0cy5hcHBlbmQoaW5wdXRbcG9zaXRpb24rK10pOwog
ICAgIHdoaWxlIChwb3NpdGlvbiA8IGxlbmd0aCAmJiBpc0FTQ0lJRGlnaXQoaW5wdXRbcG9zaXRp
b25dKSkKICAgICAgICAgZGlnaXRzLmFwcGVuZChpbnB1dFtwb3NpdGlvbisrXSk7Ci0gICAgcmV0
dXJuIGRpZ2l0cy50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGRpZ2l0cy50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBNZWRp
YUZyYWdtZW50VVJJUGFyc2VyOjpNZWRpYUZyYWdtZW50VVJJUGFyc2VyKGNvbnN0IFVSTCYgdXJs
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3BwCmluZGV4IDc2NGU1MDIuLjNlZWM0ODQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1R5cGVBaGVhZC5jcHAKQEAgLTgwLDcgKzgwLDEwIEBAIGludCBUeXBlQWhlYWQ6
OmhhbmRsZUV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50LCBNYXRjaE1vZGVGbGFncyBtYXRjaE1v
ZGUpCiAgICAgICAgIHByZWZpeCA9IFN0cmluZygmYywgMSk7CiAgICAgICAgIG1fcmVwZWF0aW5n
Q2hhciA9IGM7CiAgICAgfSBlbHNlIGlmIChtYXRjaE1vZGUgJiBNYXRjaFByZWZpeCkgewotICAg
ICAgICBwcmVmaXggPSBtX2J1ZmZlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBtX2J1ZmZlci50b1N0cmluZygpKQorICAgICAgICAgICAgcHJlZml4ID0gKnN0cmluZzsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgaWYgKG1fYnVmZmVy
Lmxlbmd0aCgpID4gMSkgewogICAgICAgICAgICAgbV9yZXBlYXRpbmdDaGFyID0gMDsKICAgICAg
ICAgICAgIHNlYXJjaFN0YXJ0T2Zmc2V0ID0gMDsKQEAgLTEwNCw5ICsxMDcsMTIgQEAgaW50IFR5
cGVBaGVhZDo6aGFuZGxlRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQsIE1hdGNoTW9kZUZsYWdz
IG1hdGNoTW9kZSkKIAogICAgIGlmIChtYXRjaE1vZGUgJiBNYXRjaEluZGV4KSB7CiAgICAgICAg
IGJvb2wgb2sgPSBmYWxzZTsKLSAgICAgICAgaW50IGluZGV4ID0gbV9idWZmZXIudG9TdHJpbmco
KS50b0ludCgmb2spOwotICAgICAgICBpZiAoaW5kZXggPiAwICYmIGluZGV4IDw9IG9wdGlvbkNv
dW50KQotICAgICAgICAgICAgcmV0dXJuIGluZGV4IC0gMTsKKyAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gbV9idWZmZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgaW50IGluZGV4ID0gc3Ry
aW5nLT50b0ludCgmb2spOworICAgICAgICAgICAgaWYgKGluZGV4ID4gMCAmJiBpbmRleCA8PSBv
cHRpb25Db3VudCkKKyAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXggLSAxOworICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIHJldHVybiAtMTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuY3BwCmluZGV4IGMyN2FmMjMuLmQ5NGZjZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcApAQCAtMTE3
LDcgKzExNyw5IEBAIFN0cmluZyBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmZvbnQoKSBjb25z
dAogICAgICAgICBzZXJpYWxpemVkRm9udC5hcHBlbmQoZmFtaWx5KTsKICAgICB9CiAKLSAgICBy
ZXR1cm4gc2VyaWFsaXplZEZvbnQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBz
ZXJpYWxpemVkRm9udC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBD
UkFTSCgpOwogfQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0Rm9udChjb25z
dCBTdHJpbmcmIG5ld0ZvbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCmluZGV4IDc2OGMwZmMuLjdh
ODhjZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyREJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCkBAIC0yMTcyLDggKzIxNzIsMTEgQEAgRXhj
ZXB0aW9uT3I8UmVmUHRyPEltYWdlRGF0YT4+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6
OmdldEltYWdlRGF0YShJbWFnZUIKICAgICAgICAgY29uc29sZU1lc3NhZ2UuYXBwZW5kTGl0ZXJh
bCgiIHggIik7CiAgICAgICAgIGNvbnNvbGVNZXNzYWdlLmFwcGVuZE51bWJlcihpbWFnZURhdGFS
ZWN0LmhlaWdodCgpKTsKIAotICAgICAgICBjYW52YXNCYXNlKCkuc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpSZW5kZXJpbmcsIE1lc3Nh
Z2VMZXZlbDo6RXJyb3IsIGNvbnNvbGVNZXNzYWdlLnRvU3RyaW5nKCkpOwotICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKyAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gY29uc29sZU1lc3NhZ2UudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgY2FudmFzQmFz
ZSgpLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZTo6UmVuZGVyaW5nLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAqc3RyaW5nKTsKKyAgICAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworICAgICAgICB9Cisg
ICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIEltYWdlRGF0YTo6Y3JlYXRlKGlt
YWdlRGF0YVJlY3Quc2l6ZSgpLCBieXRlQXJyYXkucmVsZWFzZU5vbk51bGwoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UuY3BwCmluZGV4IDc4NzVkYTguLmNkNWVlMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC0xNjIs
NyArMTYyLDkgQEAgbmFtZXNwYWNlIHsKIAogICAgICAgICBTdHJpbmcgcmVzdWx0KCkKICAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIG1fYnVpbGRlci50b1N0cmluZygpOworICAgICAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gbV9idWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAKICAg
ICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNv
dXJjZVRyYWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNvdXJjZVRy
YWNrZXIuY3BwCmluZGV4IDIyZGJhOTAuLjgwYjFlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxTb3VyY2VUcmFja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MU291cmNlVHJhY2tlci5jcHAKQEAgLTgzLDggKzgzLDExIEBAIFN0
cmluZyBIVE1MU291cmNlVHJhY2tlcjo6c291cmNlKGNvbnN0IEhUTUxUb2tlbiYgdG9rZW4pCiAg
ICAgICAgIG1fY3VycmVudFNvdXJjZS5hZHZhbmNlKCk7CiAgICAgfQogCi0gICAgbV9jYWNoZWRT
b3VyY2VGb3JUb2tlbiA9IHNvdXJjZS50b1N0cmluZygpOwotICAgIHJldHVybiBtX2NhY2hlZFNv
dXJjZUZvclRva2VuOworICAgIGlmIChhdXRvIHN0cmluZyA9IHNvdXJjZS50b1N0cmluZygpKSB7
CisgICAgICAgIG1fY2FjaGVkU291cmNlRm9yVG9rZW4gPSAqc3RyaW5nOworICAgICAgICByZXR1
cm4gbV9jYWNoZWRTb3VyY2VGb3JUb2tlbjsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogU3Ry
aW5nIEhUTUxTb3VyY2VUcmFja2VyOjpzb3VyY2UoY29uc3QgSFRNTFRva2VuJiB0b2tlbiwgdW5z
aWduZWQgYXR0cmlidXRlU3RhcnQsIHVuc2lnbmVkIGF0dHJpYnV0ZUVuZCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRva2VuaXplci5jcHAKaW5kZXggOGFjMmY4NS4uMzY0ZWMw
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRva2VuaXplci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRva2VuaXplci5jcHAKQEAg
LTE0MSw4ICsxNDEsMTAgQEAgaW5saW5lIGJvb2wgSFRNTFRva2VuaXplcjo6cHJvY2Vzc0VudGl0
eShTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKICAgICAgICAgQVNTRVJUKGRlY29kZWRFbnRpdHku
aXNFbXB0eSgpKTsKICAgICAgICAgYnVmZmVyQVNDSUlDaGFyYWN0ZXIoJyYnKTsKICAgICB9IGVs
c2UgeworICAgICAgICBpZiAoZGVjb2RlZEVudGl0eS5mYWlsZWQoKSkKKyAgICAgICAgICAgIENS
QVNIKCk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkZWNvZGVkRW50aXR5Lmxl
bmd0aCgpOyArK2kpCi0gICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoZGVjb2RlZEVudGl0eVtp
XSk7CisgICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoKmRlY29kZWRFbnRpdHlbaV0pOwogICAg
IH0KICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTg2Myw4ICs4NjUsMTAgQEAgYm9vbCBIVE1MVG9r
ZW5pemVyOjpwcm9jZXNzVG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UpCiAgICAgICAgICAg
ICBBU1NFUlQoZGVjb2RlZEVudGl0eS5pc0VtcHR5KCkpOwogICAgICAgICAgICAgbV90b2tlbi5h
cHBlbmRUb0F0dHJpYnV0ZVZhbHVlKCcmJyk7CiAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICBpZiAoZGVjb2RlZEVudGl0eS5mYWlsZWQoKSkKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwog
ICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlY29kZWRFbnRpdHkubGVuZ3Ro
KCk7ICsraSkKLSAgICAgICAgICAgICAgICBtX3Rva2VuLmFwcGVuZFRvQXR0cmlidXRlVmFsdWUo
ZGVjb2RlZEVudGl0eVtpXSk7CisgICAgICAgICAgICAgICAgbV90b2tlbi5hcHBlbmRUb0F0dHJp
YnV0ZVZhbHVlKCpkZWNvZGVkRW50aXR5W2ldKTsKICAgICAgICAgfQogICAgICAgICAvLyBXZSdy
ZSBzdXBwb3NlZCB0byBzd2l0Y2ggYmFjayB0byB0aGUgYXR0cmlidXRlIHZhbHVlIHN0YXRlIHRo
YXQKICAgICAgICAgLy8gd2Ugd2VyZSBpbiB3aGVuIHdlIHdlcmUgc3dpdGNoZWQgaW50byB0aGlz
IHN0YXRlLiBSYXRoZXIgdGhhbgpAQCAtMTQwMyw3ICsxNDA3LDkgQEAgU3RyaW5nIEhUTUxUb2tl
bml6ZXI6OmJ1ZmZlcmVkQ2hhcmFjdGVycygpIGNvbnN0CiAgICAgY2hhcmFjdGVycy5hcHBlbmQo
JzwnKTsKICAgICBjaGFyYWN0ZXJzLmFwcGVuZCgnLycpOwogICAgIGNoYXJhY3RlcnMuYXBwZW5k
KG1fdGVtcG9yYXJ5QnVmZmVyLmRhdGEoKSwgbV90ZW1wb3JhcnlCdWZmZXIuc2l6ZSgpKTsKLSAg
ICByZXR1cm4gY2hhcmFjdGVycy50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGNo
YXJhY3RlcnMudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogdm9pZCBIVE1MVG9rZW5pemVyOjp1cGRhdGVTdGF0ZUZvcihjb25zdCBBdG9taWNT
dHJpbmcmIHRhZ05hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MVHJlZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVC
dWlsZGVyLmNwcAppbmRleCBiMTBhNGM0Li44OTlkNGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKQEAgLTI1NjksMTkgKzI1NjksMjIgQEAg
dm9pZCBIVE1MVHJlZUJ1aWxkZXI6OmRlZmF1bHRGb3JBZnRlckhlYWQoKQogCiB2b2lkIEhUTUxU
cmVlQnVpbGRlcjo6ZGVmYXVsdEZvckluVGFibGVUZXh0KCkKIHsKLSAgICBTdHJpbmcgY2hhcmFj
dGVycyA9IG1fcGVuZGluZ1RhYmxlQ2hhcmFjdGVycy50b1N0cmluZygpOwotICAgIG1fcGVuZGlu
Z1RhYmxlQ2hhcmFjdGVycy5jbGVhcigpOwotICAgIGlmICghaXNBbGxXaGl0ZXNwYWNlKGNoYXJh
Y3RlcnMpKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBwYXJzZSBlcnJvcgotICAgICAgICBIVE1MQ29u
c3RydWN0aW9uU2l0ZTo6UmVkaXJlY3RUb0Zvc3RlclBhcmVudEd1YXJkIHJlZGlyZWN0ZXIobV90
cmVlKTsKLSAgICAgICAgbV90cmVlLnJlY29uc3RydWN0VGhlQWN0aXZlRm9ybWF0dGluZ0VsZW1l
bnRzKCk7Ci0gICAgICAgIG1fdHJlZS5pbnNlcnRUZXh0Tm9kZShjaGFyYWN0ZXJzLCBOb3RBbGxX
aGl0ZXNwYWNlKTsKLSAgICAgICAgbV9mcmFtZXNldE9rID0gZmFsc2U7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gbV9wZW5kaW5nVGFibGVDaGFyYWN0ZXJzLnRvU3RyaW5nKCkpIHsKKyAgICAgICAg
U3RyaW5nIGNoYXJhY3RlcnMgPSAqc3RyaW5nOworICAgICAgICBtX3BlbmRpbmdUYWJsZUNoYXJh
Y3RlcnMuY2xlYXIoKTsKKyAgICAgICAgaWYgKCFpc0FsbFdoaXRlc3BhY2UoY2hhcmFjdGVycykp
IHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBwYXJzZSBlcnJvcgorICAgICAgICAgICAgSFRNTENv
bnN0cnVjdGlvblNpdGU6OlJlZGlyZWN0VG9Gb3N0ZXJQYXJlbnRHdWFyZCByZWRpcmVjdGVyKG1f
dHJlZSk7CisgICAgICAgICAgICBtX3RyZWUucmVjb25zdHJ1Y3RUaGVBY3RpdmVGb3JtYXR0aW5n
RWxlbWVudHMoKTsKKyAgICAgICAgICAgIG1fdHJlZS5pbnNlcnRUZXh0Tm9kZShjaGFyYWN0ZXJz
LCBOb3RBbGxXaGl0ZXNwYWNlKTsKKyAgICAgICAgICAgIG1fZnJhbWVzZXRPayA9IGZhbHNlOwor
ICAgICAgICAgICAgbV9pbnNlcnRpb25Nb2RlID0gbV9vcmlnaW5hbEluc2VydGlvbk1vZGU7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV90cmVlLmluc2VydFRleHRO
b2RlKGNoYXJhY3RlcnMpOwogICAgICAgICBtX2luc2VydGlvbk1vZGUgPSBtX29yaWdpbmFsSW5z
ZXJ0aW9uTW9kZTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBtX3RyZWUuaW5zZXJ0VGV4
dE5vZGUoY2hhcmFjdGVycyk7Ci0gICAgbV9pbnNlcnRpb25Nb2RlID0gbV9vcmlnaW5hbEluc2Vy
dGlvbk1vZGU7CisgICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgSFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkhlYWQoQXRvbWljSFRNTFRva2VuJiYgdG9r
ZW4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVs
ZWdhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRl
LmNwcAppbmRleCA4MGI0MjEzLi43ZDRjODliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAKQEAgLTY2LDcgKzY2LDkgQEAgc3RhdGlj
IGlubGluZSBTdHJpbmcgYnVpbGRDb25zb2xlRXJyb3IoY29uc3QgWFNTSW5mbyYgeHNzSW5mbykK
ICAgICBlbHNlCiAgICAgICAgIG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiIFRoZSBhdWRpdG9yIHdh
cyBlbmFibGVkIGJlY2F1c2UgdGhlIHNlcnZlciBkaWQgbm90IHNlbmQgYW4gJ1gtWFNTLVByb3Rl
Y3Rpb24nIGhlYWRlci4iKTsKIAotICAgIHJldHVybiBtZXNzYWdlLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gbWVzc2FnZS50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBSZWY8Rm9ybURhdGE+IFhTU0F1ZGl0b3JEZWxlZ2F0
ZTo6Z2VuZXJhdGVWaW9sYXRpb25SZXBvcnQoY29uc3QgWFNTSW5mbyYgeHNzSW5mbykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQnVmZmVyZWRMaW5lUmVhZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQnVmZmVyZWRMaW5lUmVhZGVyLmNwcAppbmRleCA4
ZjIzNjI1Li5mMjkwOGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0J1
ZmZlcmVkTGluZVJlYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9CdWZm
ZXJlZExpbmVSZWFkZXIuY3BwCkBAIC05Miw5ICs5MiwxMSBAQCBzdGQ6Om9wdGlvbmFsPFN0cmlu
Zz4gQnVmZmVyZWRMaW5lUmVhZGVyOjpuZXh0TGluZSgpCiAgICAgfQogCiAgICAgaWYgKHNob3Vs
ZFJldHVybkxpbmUpIHsKLSAgICAgICAgYXV0byBsaW5lID0gbV9saW5lQnVmZmVyLnRvU3RyaW5n
KCk7Ci0gICAgICAgIG1fbGluZUJ1ZmZlci5jbGVhcigpOwotICAgICAgICByZXR1cm4gV1RGTW92
ZShsaW5lKTsKKyAgICAgICAgaWYgKGF1dG8gbGluZSA9IG1fbGluZUJ1ZmZlci50b1N0cmluZygp
KSB7CisgICAgICAgICAgICBtX2xpbmVCdWZmZXIuY2xlYXIoKTsKKyAgICAgICAgICAgIHJldHVy
biBXVEZNb3ZlKCpsaW5lKTsKKyAgICAgICAgfQorICAgICAgICBDUkFTSCgpOwogICAgIH0KIAog
ICAgIEFTU0VSVChtX2J1ZmZlci5pc0VtcHR5KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
cmFja0Jhc2UuY3BwCmluZGV4IDMzM2EyZjguLjI5NDE2YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RyYWNrQmFzZS5jcHAKQEAgLTE1Myw3ICsxNTMsMTAgQEAgdm9pZCBUcmFja0Jhc2U6
OnNldExhbmd1YWdlKGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UpCiAgICAgICAgICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIlRoZSBsYW5ndWFnZSAnIik7CiAgICAgICAgICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZChsYW5ndWFnZSk7CiAgICAgICAgICAgICBzdHJpbmdCdWls
ZGVyLmFwcGVuZExpdGVyYWwoIicgaXMgbm90IGEgdmFsaWQgQkNQIDQ3IGxhbmd1YWdlIHRhZy4i
KTsKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgICAgICAgICAgbWVzc2FnZSA9ICpzdHJpbmc7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgICAgICBpZiAoYXV0byBlbGVtZW50ID0g
dGhpcy0+ZWxlbWVudCgpKQogICAgICAgICAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS5hZGRDb25z
b2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpSZW5kZXJpbmcsIE1lc3NhZ2VMZXZlbDo6V2Fybmlu
ZywgbWVzc2FnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAKaW5kZXggNzhmOGFk
Zi4uM2JiYzI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcApAQCAtNjI5LDcg
KzYyOSwxMSBAQCB2b2lkIFZUVEN1ZTo6ZGV0ZXJtaW5lVGV4dERpcmVjdGlvbigpCiAgICAgICAg
IHBhcmFncmFwaEJ1aWxkZXIuYXBwZW5kKG5vZGUtPm5vZGVWYWx1ZSgpKTsKICAgICB9CiAKLSAg
ICBTdHJpbmcgcGFyYWdyYXBoID0gcGFyYWdyYXBoQnVpbGRlci50b1N0cmluZygpOworICAgIFN0
cmluZyBwYXJhZ3JhcGggPSBbJl0gKCkgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBwYXJh
Z3JhcGhCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICAgICAgQ1JBU0goKTsKKyAgICB9KCk7CiAgICAgaWYgKCFwYXJhZ3JhcGgubGVuZ3RoKCkpCiAg
ICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9X
ZWJWVFRQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIu
Y3BwCmluZGV4IDUxOGVkOGIuLjgwZDAyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1dlYlZUVFBhcnNlci5jcHAKQEAgLTQwNCw3ICs0MDQsMTAgQEAgdm9pZCBXZWJWVFRQYXJzZXI6
OmNyZWF0ZU5ld0N1ZSgpCiAgICAgUmVmUHRyPFdlYlZUVEN1ZURhdGE+IGN1ZSA9IFdlYlZUVEN1
ZURhdGE6OmNyZWF0ZSgpOwogICAgIGN1ZS0+c2V0U3RhcnRUaW1lKG1fY3VycmVudFN0YXJ0VGlt
ZSk7CiAgICAgY3VlLT5zZXRFbmRUaW1lKG1fY3VycmVudEVuZFRpbWUpOwotICAgIGN1ZS0+c2V0
Q29udGVudChtX2N1cnJlbnRDb250ZW50LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IG1fY3VycmVudENvbnRlbnQudG9TdHJpbmcoKSkKKyAgICAgICAgY3VlLT5zZXRDb250ZW50
KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICBjdWUtPnNldElkKG1f
Y3VycmVudElkKTsKICAgICBjdWUtPnNldFNldHRpbmdzKG1fY3VycmVudFNldHRpbmdzKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3BwCmluZGV4IDAy
NGMwNGEuLmZlM2RkYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2Vi
VlRUVG9rZW5pemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFRv
a2VuaXplci5jcHAKQEAgLTEwOCwxMSArMTA4LDE1IEBAIERhdGFTdGF0ZToKICAgICAgICAgZWxz
ZSB7CiAgICAgICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRvIGFkdmFuY2UgaW5wdXQgb3IgcGVy
Zm9ybSBhIHN0YXRlIHRyYW5zaXRpb24gLSBqdXN0IHJldHVybiBhIChuZXcpIHRva2VuLgogICAg
ICAgICAgICAgLy8gKE9uIHRoZSBuZXh0IGNhbGwgdG8gbmV4dFRva2VuIHdlIHdpbGwgc2VlICc8
JyBhZ2FpbiwgYnV0IHRha2UgdGhlIG90aGVyIGJyYW5jaCBpbiB0aGlzIGlmIGluc3RlYWQuKQot
ICAgICAgICAgICAgcmV0dXJuIGVtaXRUb2tlbih0b2tlbiwgV2ViVlRUVG9rZW46OlN0cmluZ1Rv
a2VuKHJlc3VsdC50b1N0cmluZygpKSk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBy
ZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZW1pdFRva2VuKHRva2Vu
LCBXZWJWVFRUb2tlbjo6U3RyaW5nVG9rZW4oKnN0cmluZykpOworICAgICAgICAgICAgQ1JBU0go
KTsKICAgICAgICAgfQotICAgIH0gZWxzZSBpZiAoY2hhcmFjdGVyID09IGtFbmRPZkZpbGVNYXJr
ZXIpCi0gICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBX
ZWJWVFRUb2tlbjo6U3RyaW5nVG9rZW4ocmVzdWx0LnRvU3RyaW5nKCkpKTsKLSAgICBlbHNlIHsK
KyAgICB9IGVsc2UgaWYgKGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJu
IGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpTdHJpbmdU
b2tlbigqc3RyaW5nKSk7CisgICAgICAgIENSQVNIKCk7CisgICAgfSBlbHNlIHsKICAgICAgICAg
cmVzdWx0LmFwcGVuZChjaGFyYWN0ZXIpOwogICAgICAgICBXRUJWVFRfQURWQU5DRV9UTyhEYXRh
U3RhdGUpOwogICAgIH0KQEAgLTE0MiwxMCArMTQ2LDE0IEBAIEVzY2FwZVN0YXRlOgogICAgICAg
ICBXRUJWVFRfQURWQU5DRV9UTyhFc2NhcGVTdGF0ZSk7CiAgICAgfSBlbHNlIGlmIChjaGFyYWN0
ZXIgPT0gJzwnKSB7CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoYnVmZmVyKTsKLSAgICAgICAgcmV0
dXJuIGVtaXRUb2tlbih0b2tlbiwgV2ViVlRUVG9rZW46OlN0cmluZ1Rva2VuKHJlc3VsdC50b1N0
cmluZygpKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQor
ICAgICAgICAgICAgcmV0dXJuIGVtaXRUb2tlbih0b2tlbiwgV2ViVlRUVG9rZW46OlN0cmluZ1Rv
a2VuKCpzdHJpbmcpKTsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9IGVsc2UgaWYgKGNoYXJhY3Rl
ciA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoYnVmZmVyKTsK
LSAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZU
VFRva2VuOjpTdHJpbmdUb2tlbihyZXN1bHQudG9TdHJpbmcoKSkpOworICAgICAgICBpZiAoYXV0
byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiBhZHZhbmNl
QW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6U3RyaW5nVG9rZW4oKnN0
cmluZykpOworICAgICAgICBDUkFTSCgpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHJlc3VsdC5h
cHBlbmQoYnVmZmVyKTsKICAgICAgICAgYnVmZmVyLmNsZWFyKCk7CkBAIC0xNzIsNyArMTgwLDkg
QEAgVGFnU3RhdGU6CiAgICAgICAgIFdFQlZUVF9BRFZBTkNFX1RPKFRpbWVzdGFtcFRhZ1N0YXRl
KTsKICAgICB9IGVsc2UgaWYgKGNoYXJhY3RlciA9PSAnPicgfHwgY2hhcmFjdGVyID09IGtFbmRP
ZkZpbGVNYXJrZXIpIHsKICAgICAgICAgQVNTRVJUKHJlc3VsdC5pc0VtcHR5KCkpOwotICAgICAg
ICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46
OlN0YXJ0VGFnKHJlc3VsdC50b1N0cmluZygpKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9r
ZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpTdGFydFRhZygqc3RyaW5nKSk7CisgICAg
ICAgIENSQVNIKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgcmVzdWx0LmFwcGVuZChjaGFyYWN0
ZXIpOwogICAgICAgICBXRUJWVFRfQURWQU5DRV9UTyhTdGFydFRhZ1N0YXRlKTsKQEAgLTE4Myw5
ICsxOTMsMTEgQEAgU3RhcnRUYWdTdGF0ZToKICAgICAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oU3Rh
cnRUYWdBbm5vdGF0aW9uU3RhdGUpOwogICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSAnLicpCiAg
ICAgICAgIFdFQlZUVF9BRFZBTkNFX1RPKFN0YXJ0VGFnQ2xhc3NTdGF0ZSk7Ci0gICAgZWxzZSBp
ZiAoY2hhcmFjdGVyID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikKLSAg
ICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRv
a2VuOjpTdGFydFRhZyhyZXN1bHQudG9TdHJpbmcoKSkpOwotICAgIGVsc2UgeworICAgIGVsc2Ug
aWYgKGNoYXJhY3RlciA9PSAnPicgfHwgY2hhcmFjdGVyID09IGtFbmRPZkZpbGVNYXJrZXIpIHsK
KyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAg
ICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46
OlN0YXJ0VGFnKCpzdHJpbmcpKTsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9IGVsc2UgewogICAg
ICAgICByZXN1bHQuYXBwZW5kKGNoYXJhY3Rlcik7CiAgICAgICAgIFdFQlZUVF9BRFZBTkNFX1RP
KFN0YXJ0VGFnU3RhdGUpOwogICAgIH0KQEAgLTIwMiwyNyArMjE0LDQ0IEBAIFN0YXJ0VGFnQ2xh
c3NTdGF0ZToKICAgICB9IGVsc2UgaWYgKGNoYXJhY3RlciA9PSAnPicgfHwgY2hhcmFjdGVyID09
IGtFbmRPZkZpbGVNYXJrZXIpIHsKICAgICAgICAgYWRkTmV3Q2xhc3MoY2xhc3NlcywgYnVmZmVy
KTsKICAgICAgICAgYnVmZmVyLmNsZWFyKCk7Ci0gICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1p
dFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6U3RhcnRUYWcocmVzdWx0LnRvU3Ry
aW5nKCksIGNsYXNzZXMudG9BdG9taWNTdHJpbmcoKSkpOworICAgICAgICBpZiAoYXV0byByZXN1
bHRTdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8gY2xh
c3Nlc1N0cmluZyA9IGNsYXNzZXMudG9BdG9taWNTdHJpbmcoKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OlN0
YXJ0VGFnKCpyZXN1bHRTdHJpbmcsICpjbGFzc2VzU3RyaW5nKSk7CisgICAgICAgIH0KKyAgICAg
ICAgQ1JBU0goKTsKICAgICB9IGVsc2UgewogICAgICAgICBidWZmZXIuYXBwZW5kKGNoYXJhY3Rl
cik7CiAgICAgICAgIFdFQlZUVF9BRFZBTkNFX1RPKFN0YXJ0VGFnQ2xhc3NTdGF0ZSk7CiAgICAg
fQogCiBTdGFydFRhZ0Fubm90YXRpb25TdGF0ZToKLSAgICBpZiAoY2hhcmFjdGVyID09ICc+JyB8
fCBjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikKLSAgICAgICAgcmV0dXJuIGFkdmFuY2VB
bmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpTdGFydFRhZyhyZXN1bHQu
dG9TdHJpbmcoKSwgY2xhc3Nlcy50b0F0b21pY1N0cmluZygpLCBidWZmZXIudG9BdG9taWNTdHJp
bmcoKSkpOworICAgIGlmIChjaGFyYWN0ZXIgPT0gJz4nIHx8IGNoYXJhY3RlciA9PSBrRW5kT2ZG
aWxlTWFya2VyKSB7CisgICAgICAgIGlmIChhdXRvIHJlc3VsdFN0cmluZyA9IHJlc3VsdC50b1N0
cmluZygpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBjbGFzc2VzU3RyaW5nID0gY2xhc3Nlcy50
b0F0b21pY1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gYnVmZmVyU3RyaW5n
ID0gYnVmZmVyLnRvQXRvbWljU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBh
ZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6U3RhcnRUYWco
KnJlc3VsdFN0cmluZywgKmNsYXNzZXNTdHJpbmcsICpidWZmZXJTdHJpbmcpKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgICAgICBDUkFTSCgpOworICAgIH0KICAgICBidWZmZXIuYXBw
ZW5kKGNoYXJhY3Rlcik7CiAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oU3RhcnRUYWdBbm5vdGF0aW9u
U3RhdGUpOwogCiBFbmRUYWdTdGF0ZToKLSAgICBpZiAoY2hhcmFjdGVyID09ICc+JyB8fCBjaGFy
YWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikKLSAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0
VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpFbmRUYWcocmVzdWx0LnRvU3RyaW5n
KCkpKTsKKyAgICBpZiAoY2hhcmFjdGVyID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0ga0VuZE9mRmls
ZU1hcmtlcikgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkK
KyAgICAgICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBX
ZWJWVFRUb2tlbjo6RW5kVGFnKCpzdHJpbmcpKTsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9CiAg
ICAgcmVzdWx0LmFwcGVuZChjaGFyYWN0ZXIpOwogICAgIFdFQlZUVF9BRFZBTkNFX1RPKEVuZFRh
Z1N0YXRlKTsKIAogVGltZXN0YW1wVGFnU3RhdGU6Ci0gICAgaWYgKGNoYXJhY3RlciA9PSAnPicg
fHwgY2hhcmFjdGVyID09IGtFbmRPZkZpbGVNYXJrZXIpCi0gICAgICAgIHJldHVybiBhZHZhbmNl
QW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6VGltZXN0YW1wVGFnKHJl
c3VsdC50b1N0cmluZygpKSk7CisgICAgaWYgKGNoYXJhY3RlciA9PSAnPicgfHwgY2hhcmFjdGVy
ID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lu
cHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OlRpbWVzdGFtcFRhZygqc3RyaW5nKSk7CisgICAgICAg
IENSQVNIKCk7CisgICAgfQogICAgIHJlc3VsdC5hcHBlbmQoY2hhcmFjdGVyKTsKICAgICBXRUJW
VFRfQURWQU5DRV9UTyhUaW1lc3RhbXBUYWdTdGF0ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKaW5kZXggOWQ5ODU4MS4uNjUxZDJl
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hl
ZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0
LmNwcApAQCAtNzcxLDcgKzc3MSw5IEBAIFN0cmluZyBJbnNwZWN0b3JTdHlsZTo6c2hvcnRoYW5k
VmFsdWUoY29uc3QgU3RyaW5nJiBzaG9ydGhhbmRQcm9wZXJ0eSkgY29uc3QKICAgICAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGluZGl2aWR1YWxW
YWx1ZSk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgSW5zcGVjdG9yU3R5bGU6OnNob3J0aGFuZFByaW9y
aXR5KGNvbnN0IFN0cmluZyYgc2hvcnRoYW5kUHJvcGVydHkpIGNvbnN0CkBAIC05NDMsMTMgKzk0
NSwyMCBAQCBFeGNlcHRpb25PcjxDU1NTdHlsZVJ1bGUqPiBJbnNwZWN0b3JTdHlsZVNoZWV0Ojph
ZGRSdWxlKGNvbnN0IFN0cmluZyYgc2VsZWN0b3IpCiAgICAgc3R5bGVTaGVldFRleHQuYXBwZW5k
TGl0ZXJhbCgiIHt9Iik7CiAKICAgICAvLyBVc2luZyBzZXRUZXh0KCkgYXMgdGhpcyBvcGVyYXRp
b24gY2hhbmdlcyB0aGUgc3R5bGVzaGVldCBydWxlIHNldC4KLSAgICBzZXRUZXh0KHN0eWxlU2hl
ZXRUZXh0LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0eWxlU2hlZXRUZXh0
LnRvU3RyaW5nKCkpCisgICAgICAgIHNldFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAg
ICBDUkFTSCgpOwogCiAgICAgLy8gSW5zcGVjdG9yIFN0eWxlIFNoZWV0cyBhcmUgYWx3YXlzIHRy
ZWF0ZWQgYXMgdGhvdWdoIHRoZWlyIHBhcnNlZCBkYXRhIGlzIHJlYWR5LgogICAgIGlmIChtX29y
aWdpbiA9PSBJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OlN0eWxlU2hlZXRPcmlnaW46Okluc3Bl
Y3RvcikKICAgICAgICAgZmlyZVN0eWxlU2hlZXRDaGFuZ2VkKCk7Ci0gICAgZWxzZQotICAgICAg
ICByZXBhcnNlU3R5bGVTaGVldChzdHlsZVNoZWV0VGV4dC50b1N0cmluZygpKTsKKyAgICBlbHNl
IHsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3R5bGVTaGVldFRleHQudG9TdHJpbmcoKSkK
KyAgICAgICAgICAgIHJlcGFyc2VTdHlsZVNoZWV0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBDUkFTSCgpOworICAgIH0KIAogICAgIEFTU0VSVChtX3BhZ2VTdHlsZVNoZWV0
LT5sZW5ndGgoKSk7CiAgICAgdW5zaWduZWQgbGFzdFJ1bGVJbmRleCA9IG1fcGFnZVN0eWxlU2hl
ZXQtPmxlbmd0aCgpIC0gMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcAppbmRl
eCAxOWFmNGU5Li5iZjliNGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3Bw
CkBAIC0xNzIsMTEgKzE3MiwxNCBAQCBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXBwbGljYXRp
b25DYWNoZTo6QXBwbGljYXRpb25DYWNoZVJlc291cmNlPiBJbnNwZWN0b3JBcAogICAgIGlmIChy
ZXNvdXJjZUluZm8uaXNFeHBsaWNpdCkKICAgICAgICAgdHlwZXMuYXBwZW5kTGl0ZXJhbCgiRXhw
bGljaXQgIik7CiAKLSAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXBwbGljYXRpb25D
YWNoZTo6QXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpjcmVhdGUoKQotICAgICAgICAuc2V0VXJs
KHJlc291cmNlSW5mby5yZXNvdXJjZS5zdHJpbmcoKSkKLSAgICAgICAgLnNldFNpemUoc3RhdGlj
X2Nhc3Q8aW50PihyZXNvdXJjZUluZm8uc2l6ZSkpCi0gICAgICAgIC5zZXRUeXBlKHR5cGVzLnRv
U3RyaW5nKCkpCi0gICAgICAgIC5yZWxlYXNlKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdHlw
ZXMudG9TdHJpbmcoKSkgeworICAgICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXBw
bGljYXRpb25DYWNoZTo6QXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpjcmVhdGUoKQorICAgICAg
ICAgICAgLnNldFVybChyZXNvdXJjZUluZm8ucmVzb3VyY2Uuc3RyaW5nKCkpCisgICAgICAgICAg
ICAuc2V0U2l6ZShzdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlSW5mby5zaXplKSkKKyAgICAgICAg
ICAgIC5zZXRUeXBlKCpzdHJpbmcpCisgICAgICAgICAgICAucmVsZWFzZSgpOworICAgIH0KKyAg
ICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAK
aW5kZXggNDZlNGFmZS4uYWYxNzA0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcApAQCAtMTM0LDggKzEz
NCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChtX2RlY29kZXIpCiAgICAgICAgICAgICBtX3Jl
c3BvbnNlVGV4dC5hcHBlbmQobV9kZWNvZGVyLT5mbHVzaCgpKTsKIAotICAgICAgICBtX2NhbGxi
YWNrLT5zZW5kU3VjY2VzcyhtX3Jlc3BvbnNlVGV4dC50b1N0cmluZygpLCBtX21pbWVUeXBlLCBt
X3N0YXR1c0NvZGUpOwotICAgICAgICBkaXNwb3NlKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IG1fcmVzcG9uc2VUZXh0LnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIG1fY2FsbGJhY2st
PnNlbmRTdWNjZXNzKCpzdHJpbmcsIG1fbWltZVR5cGUsIG1fc3RhdHVzQ29kZSk7CisgICAgICAg
ICAgICBkaXNwb3NlKCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAg
ICB9CiAKICAgICB2b2lkIGRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpIG92ZXJy
aWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkNvbnNv
bGVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkNvbnNvbGVB
Z2VudC5jcHAKaW5kZXggZGM5NjQ4Ni4uNjM4MzhhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50LmNwcApAQCAtMTY5LDcgKzE2OSwx
MCBAQCB2b2lkIFdlYkNvbnNvbGVBZ2VudDo6ZGlkRmFpbExvYWRpbmcodW5zaWduZWQgbG9uZyBy
ZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgUmVzbwogICAgICAgICBtZXNzYWdlLmFwcGVuZChlcnJv
ci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpKTsKICAgICB9CiAKLSAgICBhZGRNZXNzYWdlVG9Db25z
b2xlKHN0ZDo6bWFrZV91bmlxdWU8Q29uc29sZU1lc3NhZ2U+KE1lc3NhZ2VTb3VyY2U6Ok5ldHdv
cmssIE1lc3NhZ2VUeXBlOjpMb2csIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UudG9TdHJp
bmcoKSwgZXJyb3IuZmFpbGluZ1VSTCgpLCAwLCAwLCBudWxscHRyLCByZXF1ZXN0SWRlbnRpZmll
cikpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1lc3NhZ2UudG9TdHJpbmcoKSkKKyAgICAgICAg
YWRkTWVzc2FnZVRvQ29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNzYWdlPihNZXNz
YWdlU291cmNlOjpOZXR3b3JrLCBNZXNzYWdlVHlwZTo6TG9nLCBNZXNzYWdlTGV2ZWw6OkVycm9y
LCAqc3RyaW5nLCBlcnJvci5mYWlsaW5nVVJMKCksIDAsIDAsIG51bGxwdHIsIHJlcXVlc3RJZGVu
dGlmaWVyKSk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5B
Y2Nlc3NDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vz
c0NvbnRyb2wuY3BwCmluZGV4IDY4ODA0ZjIuLmY4OGE0NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCkBAIC0xMTIsOCArMTEy
LDEyIEBAIFJlc291cmNlUmVxdWVzdCBjcmVhdGVBY2Nlc3NDb250cm9sUHJlZmxpZ2h0UmVxdWVz
dChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlCiAKICAgICAgICAgICAgIGhlYWRlckJ1ZmZl
ci5hcHBlbmQoaGVhZGVyRmllbGQpOwogICAgICAgICB9Ci0gICAgICAgIGlmICghaGVhZGVyQnVm
ZmVyLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHByZWZsaWdodFJlcXVlc3Quc2V0SFRUUEhlYWRl
ckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpBY2Nlc3NDb250cm9sUmVxdWVzdEhlYWRlcnMsIGhlYWRl
ckJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKCFoZWFkZXJCdWZmZXIuaXNFbXB0eSgp
KSB7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBoZWFkZXJCdWZmZXIudG9TdHJpbmco
KSkKKyAgICAgICAgICAgICAgICBwcmVmbGlnaHRSZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChI
VFRQSGVhZGVyTmFtZTo6QWNjZXNzQ29udHJvbFJlcXVlc3RIZWFkZXJzLCAqc3RyaW5nKTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CiAgICAg
fQogCiAgICAgcmV0dXJuIHByZWZsaWdodFJlcXVlc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5jcHAKaW5kZXggNGRmMjVkYS4uOTg2ZmU1MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNw
cApAQCAtMjY4LDcgKzI2OCw5IEBAIFN0cmluZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjp0b1N0
cmluZygpIGNvbnN0CiAKICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKIAotICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBw
Y2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCmluZGV4IGZmMjkzODkuLjRmMjJkNDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlU3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVTdG9yYWdlLmNwcApAQCAtODQxLDE3ICs4NDEsMjAgQEAgYm9vbCBBcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZTo6c3RvcmUoQXBwbGljYXRpb25DYWNoZVJlc291cmNlKiByZXNvdXJj
ZSwgdW5zaWduZWQKIAogICAgIC8vIFRoZW4sIGluc2VydCB0aGUgcmVzb3VyY2UKICAgICAKLSAg
ICAvLyBTZXJpYWxpemUgdGhlIGhlYWRlcnMKLSAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxk
ZXI7Ci0gICAgCi0gICAgZm9yIChjb25zdCBhdXRvJiBoZWFkZXIgOiByZXNvdXJjZS0+cmVzcG9u
c2UoKS5odHRwSGVhZGVyRmllbGRzKCkpIHsKLSAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQo
aGVhZGVyLmtleSk7Ci0gICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCc6Jyk7Ci0gICAgICAg
IHN0cmluZ0J1aWxkZXIuYXBwZW5kKGhlYWRlci52YWx1ZSk7Ci0gICAgICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kKCdcbicpOwotICAgIH0KLSAgICAKLSAgICBTdHJpbmcgaGVhZGVycyA9IHN0cmlu
Z0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBTdHJpbmcgaGVhZGVycyA9IFsmXSAoKSB7CisgICAg
ICAgIC8vIFNlcmlhbGl6ZSB0aGUgaGVhZGVycworICAgICAgICBTdHJpbmdCdWlsZGVyIHN0cmlu
Z0J1aWxkZXI7CisgICAgCisgICAgICAgIGZvciAoY29uc3QgYXV0byYgaGVhZGVyIDogcmVzb3Vy
Y2UtPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkcygpKSB7CisgICAgICAgICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZChoZWFkZXIua2V5KTsKKyAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kKCc6Jyk7CisgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChoZWFkZXIudmFsdWUp
OworICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7CisgICAgICAgIH0KKyAg
ICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CisgICAgfSgpOwogICAgIAog
ICAgIFNRTGl0ZVN0YXRlbWVudCByZXNvdXJjZVN0YXRlbWVudChtX2RhdGFiYXNlLCAiSU5TRVJU
IElOVE8gQ2FjaGVSZXNvdXJjZXMgKHVybCwgc3RhdHVzQ29kZSwgcmVzcG9uc2VVUkwsIGhlYWRl
cnMsIGRhdGEsIG1pbWVUeXBlLCB0ZXh0RW5jb2RpbmdOYW1lKSBWQUxVRVMgKD8sID8sID8sID8s
ID8sID8sID8pIik7CiAgICAgaWYgKHJlc291cmNlU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJ
VEVfT0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdh
Y3lXZWJBcmNoaXZlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL2NmL0xlZ2Fj
eVdlYkFyY2hpdmUuY3BwCmluZGV4IDEyYTMwY2MuLmNmZTczODYzZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAKQEAg
LTU1NywyMSArNTU3LDI0IEBAIFJlZlB0cjxMZWdhY3lXZWJBcmNoaXZlPiBMZWdhY3lXZWJBcmNo
aXZlOjpjcmVhdGVGcm9tU2VsZWN0aW9uKEZyYW1lKiBmcmFtZSkKICAgICBpZiAoYXV0byBzZWxl
Y3Rpb25SYW5nZSA9IGZyYW1lLT5zZWxlY3Rpb24oKS50b05vcm1hbGl6ZWRSYW5nZSgpKQogICAg
ICAgICBidWlsZGVyLmFwcGVuZChjcmVhdGVNYXJrdXAoKnNlbGVjdGlvblJhbmdlLCAmbm9kZUxp
c3QsIEFubm90YXRlRm9ySW50ZXJjaGFuZ2UpKTsKIAotICAgIGF1dG8gYXJjaGl2ZSA9IGNyZWF0
ZShidWlsZGVyLnRvU3RyaW5nKCksICpmcmFtZSwgbm9kZUxpc3QsIG51bGxwdHIpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICBhdXRvIGFyY2hp
dmUgPSBjcmVhdGUoKnN0cmluZywgKmZyYW1lLCBub2RlTGlzdCwgbnVsbHB0cik7CiAgICAgCi0g
ICAgaWYgKCFkb2N1bWVudC0+aXNGcmFtZVNldCgpKQotICAgICAgICByZXR1cm4gYXJjaGl2ZTsK
KyAgICAgICAgaWYgKCFkb2N1bWVudC0+aXNGcmFtZVNldCgpKQorICAgICAgICAgICAgcmV0dXJu
IGFyY2hpdmU7CiAgICAgICAgIAotICAgIC8vIFdyYXAgdGhlIGZyYW1lc2V0IGRvY3VtZW50IGlu
IGFuIGlmcmFtZSBzbyBpdCBjYW4gYmUgcGFzdGVkIGludG8KLSAgICAvLyBhbm90aGVyIGRvY3Vt
ZW50ICh3aGljaCB3aWxsIGhhdmUgYSBib2R5IG9yIGZyYW1lc2V0IG9mIGl0cyBvd24pLiAKLSAg
ICBTdHJpbmcgaWZyYW1lTWFya3VwID0gIjxpZnJhbWUgZnJhbWVib3JkZXI9XCJub1wiIG1hcmdp
bndpZHRoPVwiMFwiIG1hcmdpbmhlaWdodD1cIjBcIiB3aWR0aD1cIjk4JSVcIiBoZWlnaHQ9XCI5
OCUlXCIgc3JjPVwiIiArIGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5yZXNwb25z
ZSgpLnVybCgpLnN0cmluZygpICsgIlwiPjwvaWZyYW1lPiI7Ci0gICAgYXV0byBpZnJhbWVSZXNv
dXJjZSA9IEFyY2hpdmVSZXNvdXJjZTo6Y3JlYXRlKHV0ZjhCdWZmZXIoaWZyYW1lTWFya3VwKSwg
YmxhbmtVUkwoKSwgInRleHQvaHRtbCIsICJVVEYtOCIsIFN0cmluZygpKTsKKyAgICAgICAgLy8g
V3JhcCB0aGUgZnJhbWVzZXQgZG9jdW1lbnQgaW4gYW4gaWZyYW1lIHNvIGl0IGNhbiBiZSBwYXN0
ZWQgaW50bworICAgICAgICAvLyBhbm90aGVyIGRvY3VtZW50ICh3aGljaCB3aWxsIGhhdmUgYSBi
b2R5IG9yIGZyYW1lc2V0IG9mIGl0cyBvd24pLiAKKyAgICAgICAgU3RyaW5nIGlmcmFtZU1hcmt1
cCA9ICI8aWZyYW1lIGZyYW1lYm9yZGVyPVwibm9cIiBtYXJnaW53aWR0aD1cIjBcIiBtYXJnaW5o
ZWlnaHQ9XCIwXCIgd2lkdGg9XCI5OCUlXCIgaGVpZ2h0PVwiOTglJVwiIHNyYz1cIiIgKyBmcmFt
ZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2UoKS51cmwoKS5zdHJpbmcoKSAr
ICJcIj48L2lmcmFtZT4iOworICAgICAgICBhdXRvIGlmcmFtZVJlc291cmNlID0gQXJjaGl2ZVJl
c291cmNlOjpjcmVhdGUodXRmOEJ1ZmZlcihpZnJhbWVNYXJrdXApLCBibGFua1VSTCgpLCAidGV4
dC9odG1sIiwgIlVURi04IiwgU3RyaW5nKCkpOwogCi0gICAgVmVjdG9yPFJlZjxMZWdhY3lXZWJB
cmNoaXZlPj4gc3ViZnJhbWVBcmNoaXZlczsKLSAgICBzdWJmcmFtZUFyY2hpdmVzLnJlc2VydmVJ
bml0aWFsQ2FwYWNpdHkoMSk7Ci0gICAgc3ViZnJhbWVBcmNoaXZlcy51bmNoZWNrZWRBcHBlbmQo
YXJjaGl2ZS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgVmVjdG9yPFJlZjxMZWdhY3lXZWJB
cmNoaXZlPj4gc3ViZnJhbWVBcmNoaXZlczsKKyAgICAgICAgc3ViZnJhbWVBcmNoaXZlcy5yZXNl
cnZlSW5pdGlhbENhcGFjaXR5KDEpOworICAgICAgICBzdWJmcmFtZUFyY2hpdmVzLnVuY2hlY2tl
ZEFwcGVuZChhcmNoaXZlLnJlbGVhc2VOb25OdWxsKCkpOwogCi0gICAgcmV0dXJuIGNyZWF0ZShp
ZnJhbWVSZXNvdXJjZS5yZWxlYXNlTm9uTnVsbCgpLCB7IH0sIFdURk1vdmUoc3ViZnJhbWVBcmNo
aXZlcykpOworICAgICAgICByZXR1cm4gY3JlYXRlKGlmcmFtZVJlc291cmNlLnJlbGVhc2VOb25O
dWxsKCksIHsgfSwgV1RGTW92ZShzdWJmcmFtZUFyY2hpdmVzKSk7CisgICAgfQorICAgIENSQVNI
KCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21o
dG1sL01IVE1MQXJjaGl2ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9taHRt
bC9NSFRNTEFyY2hpdmUuY3BwCmluZGV4IDcwNWM2ZGMuLmYyYzRlY2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcApAQCAt
NzYsNyArNzYsOSBAQCBzdGF0aWMgU3RyaW5nIGdlbmVyYXRlUmFuZG9tQm91bmRhcnkoKQogICAg
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChsb3dlck5pYmJsZVRvQVNDSUlIZXhEaWdpdChyYW5k
b21WYWx1ZXNbaV0pKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQodXBwZXJOaWJibGVU
b0FTQ0lJSGV4RGlnaXQocmFuZG9tVmFsdWVzW2ldKSk7CiAgICAgfQotICAgIHJldHVybiBzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiBzdGF0aWMgU3RyaW5nIHJlcGxhY2VOb25QcmludGFibGVDaGFyYWN0ZXJzKGNvbnN0IFN0cmlu
ZyYgdGV4dCkKQEAgLTg4LDcgKzkwLDkgQEAgc3RhdGljIFN0cmluZyByZXBsYWNlTm9uUHJpbnRh
YmxlQ2hhcmFjdGVycyhjb25zdCBTdHJpbmcmIHRleHQpCiAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCc/Jyk7CiAgICAgfQotICAgIHJldHVybiBzdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBN
SFRNTEFyY2hpdmU6Ok1IVE1MQXJjaGl2ZSgpCkBAIC0xNjAsMTAgKzE2NCwxNiBAQCBSZWY8U2hh
cmVkQnVmZmVyPiBNSFRNTEFyY2hpdmU6OmdlbmVyYXRlTUhUTUxEYXRhKFBhZ2UqIHBhZ2UpCiAg
ICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoIlwiXHJcblxyXG4iKTsKIAogICAgIC8vIFdlIHVzZSB1
dGY4KCkgYmVsb3cgaW5zdGVhZCBvZiBhc2NpaSgpIGFzIGFzY2lpKCkgcmVwbGFjZXMgQ1JMRnMg
d2l0aCA/PyAod2Ugc3RpbGwgb25seSBoYXZlIHB1dCBBU0NJSSBjaGFyYWN0ZXJzIGluIGl0KS4K
LSAgICBBU1NFUlQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpLmlzQWxsQVNDSUkoKSk7Ci0gICAg
Q1N0cmluZyBhc2NpaVN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKS51dGY4KCk7Ci0g
ICAgYXV0byBtaHRtbERhdGEgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZSgpOwotICAgIG1odG1sRGF0
YS0+YXBwZW5kKGFzY2lpU3RyaW5nLmRhdGEoKSwgYXNjaWlTdHJpbmcubGVuZ3RoKCkpOworICAg
IGF1dG8gbWh0bWxEYXRhID0gWyZdICgpIHsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICBBU1NFUlQoc3RyaW5nLT5pc0Fs
bEFTQ0lJKCkpOworICAgICAgICAgICAgQ1N0cmluZyBhc2NpaVN0cmluZyA9IHN0cmluZy0+dXRm
OCgpOworICAgICAgICAgICAgYXV0byByZXN1bHQgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZSgpOwor
ICAgICAgICAgICAgcmVzdWx0LT5hcHBlbmQoYXNjaWlTdHJpbmcuZGF0YSgpLCBhc2NpaVN0cmlu
Zy5sZW5ndGgoKSk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAg
ICAgIENSQVNIKCk7CisgICAgfSgpOwogCiAgICAgZm9yIChhdXRvJiByZXNvdXJjZSA6IHJlc291
cmNlcykgewogICAgICAgICBzdHJpbmdCdWlsZGVyLmNsZWFyKCk7CkBAIC0xODMsOCArMTkzLDEw
IEBAIFJlZjxTaGFyZWRCdWZmZXI+IE1IVE1MQXJjaGl2ZTo6Z2VuZXJhdGVNSFRNTERhdGEoUGFn
ZSogcGFnZSkKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQocmVzb3VyY2UudXJsKTsKICAg
ICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoIlxyXG5cclxuIik7CiAKLSAgICAgICAgYXNjaWlT
dHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpOwotICAgICAgICBtaHRtbERh
dGEtPmFwcGVuZChhc2NpaVN0cmluZy5kYXRhKCksIGFzY2lpU3RyaW5nLmxlbmd0aCgpKTsKKyAg
ICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKSB7CisgICAg
ICAgICAgICBDU3RyaW5nIGFzY2lpU3RyaW5nID0gc3RyaW5nLT51dGY4KCk7CisgICAgICAgICAg
ICBtaHRtbERhdGEtPmFwcGVuZChhc2NpaVN0cmluZy5kYXRhKCksIGFzY2lpU3RyaW5nLmxlbmd0
aCgpKTsKKyAgICAgICAgfQogCiAgICAgICAgIC8vIEZJWE1FOiBpZGVhbGx5IHdlIHdvdWxkIGVu
Y29kZSB0aGUgY29udGVudCBhcyBhIHN0cmVhbSB3aXRob3V0IGhhdmluZyB0byBmZXRjaCBpdCBh
bGwuCiAgICAgICAgIGNvbnN0IGNoYXIqIGRhdGEgPSByZXNvdXJjZS5kYXRhLT5kYXRhKCk7CkBA
IC0yMTAsOCArMjIyLDEwIEBAIFJlZjxTaGFyZWRCdWZmZXI+IE1IVE1MQXJjaGl2ZTo6Z2VuZXJh
dGVNSFRNTERhdGEoUGFnZSogcGFnZSkKICAgICAgICAgfQogICAgIH0KIAotICAgIGFzY2lpU3Ry
aW5nID0gbWFrZVN0cmluZygiLS0iLCBib3VuZGFyeSwgIi0tXHJcbiIpLnV0ZjgoKTsKLSAgICBt
aHRtbERhdGEtPmFwcGVuZChhc2NpaVN0cmluZy5kYXRhKCksIGFzY2lpU3RyaW5nLmxlbmd0aCgp
KTsKKyAgICB7CisgICAgICAgIENTdHJpbmcgYXNjaWlTdHJpbmcgPSBtYWtlU3RyaW5nKCItLSIs
IGJvdW5kYXJ5LCAiLS1cclxuIikudXRmOCgpOworICAgICAgICBtaHRtbERhdGEtPmFwcGVuZChh
c2NpaVN0cmluZy0+ZGF0YSgpLCBhc2NpaVN0cmluZy0+bGVuZ3RoKCkpOworICAgIH0KIAogICAg
IHJldHVybiBtaHRtbERhdGE7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nh
cHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwCmluZGV4IGMxMzkwNzYuLmQ4M2UyNTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlh
QUYuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01l
ZGlhQUYuY3BwCkBAIC0zNDcsMTQgKzM0NywxOCBAQCBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJl
bmNlc01lZGlhQUY6OndpbmRvd1JvdW5kZWRDb3JuZXJSYWRpdXNDU1MoKSBjb25zdAogCiAgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGFwcGVuZENTUyhidWlsZGVyLCBDU1NQcm9wZXJ0
eUJvcmRlclJhZGl1cywgU3RyaW5nOjpmb3JtYXQoIiUuMDJmcHgiLCByYWRpdXMpLCBiZWhhdmlv
ciA9PSBrTUFDYXB0aW9uQXBwZWFyYW5jZUJlaGF2aW9yVXNlVmFsdWUpOwotICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcg
Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNvbG9yUHJvcGVydHlDU1MoQ1NTUHJvcGVy
dHlJRCBpZCwgY29uc3QgQ29sb3ImIGNvbG9yLCBib29sIGltcG9ydGFudCkgY29uc3QKIHsKICAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYXBwZW5kQ1NTKGJ1aWxkZXIsIGlkLCBjb2xv
ci5zZXJpYWxpemVkKCksIGltcG9ydGFudCk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ2FwdGlvblVzZXJQcmVmZXJl
bmNlc01lZGlhQUY6OmNhcHRpb25TdHJva2VXaWR0aEZvckZvbnQoZmxvYXQgZm9udFNpemUsIGNv
bnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGZsb2F0JiBzdHJva2VXaWR0aCwgYm9vbCYgaW1wb3J0YW50
KSBjb25zdApAQCAtNDA2LDcgKzQxMCw5IEBAIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2Vz
TWVkaWFBRjo6Y2FwdGlvbnNUZXh0RWRnZUNTUygpIGNvbnN0CiAgICAgICAgIGFwcGVuZENTUyhi
dWlsZGVyLCBDU1NQcm9wZXJ0eVN0cm9rZUxpbmVjYXAsIGdldFZhbHVlTmFtZShDU1NWYWx1ZVJv
dW5kKSwgaW1wb3J0YW50KTsKICAgICB9CiAgICAgCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBDYXB0aW9uVXNlclBy
ZWZlcmVuY2VzTWVkaWFBRjo6Y2FwdGlvbnNEZWZhdWx0Rm9udENTUygpIGNvbnN0CkBAIC00NDgs
NyArNDU0LDkgQEAgU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9u
c0RlZmF1bHRGb250Q1NTKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIg
IWltcG9ydGFudCIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCc7Jyk7CiAgICAgCi0gICAgcmV0dXJu
IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGZsb2F0
IENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uRm9udFNpemVTY2FsZUFuZElt
cG9ydGFuY2UoYm9vbCYgaW1wb3J0YW50KSBjb25zdApAQCAtNTk1LDkgKzYwMywxMSBAQCBTdHJp
bmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zU3R5bGVTaGVldE92ZXJy
aWRlKCkgY29uc3QKICAgICB9CiAjZW5kaWYgLy8gSEFWRShNRURJQV9BQ0NFU1NJQklMSVRZX0ZS
QU1FV09SSykKIAotICAgIExPRyhNZWRpYSwgIkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFG
OjpjYXB0aW9uc1N0eWxlU2hlZXRPdmVycmlkZVNldHRpbmcgc3R5bGUgdG86XG4lcyIsIGNhcHRp
b25zT3ZlcnJpZGVTdHlsZVNoZWV0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0KLSAgICBy
ZXR1cm4gY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC50b1N0cmluZygpKSB7CisgICAg
ICAgIExPRyhNZWRpYSwgIkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc1N0
eWxlU2hlZXRPdmVycmlkZVNldHRpbmcgc3R5bGUgdG86XG4lcyIsIHN0cmluZy0+dXRmOCgpLmRh
dGEoKSk7CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIH0KKyAgICBDUkFTSCgpOwogfQog
CiBzdGF0aWMgU3RyaW5nIGxhbmd1YWdlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGxhbmd1YWdl
Q29kZSkKQEAgLTY2NCwxMCArNjc0LDEzIEBAIHN0YXRpYyBTdHJpbmcgdHJhY2tEaXNwbGF5TmFt
ZShBdWRpb1RyYWNrKiB0cmFjaykKICAgICBpZiAoZGlzcGxheU5hbWUuaXNFbXB0eSgpKQogICAg
ICAgICBkaXNwbGF5TmFtZS5hcHBlbmQoYXVkaW9UcmFja05vTGFiZWxUZXh0KCkpOwogCi0gICAg
aWYgKHRyYWNrLT5raW5kKCkgIT0gQXVkaW9UcmFjazo6ZGVzY3JpcHRpb25LZXl3b3JkKCkpCi0g
ICAgICAgIHJldHVybiBkaXNwbGF5TmFtZS50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGRpc3BsYXlOYW1lLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgaWYgKHRyYWNrLT5raW5kKCkg
IT0gQXVkaW9UcmFjazo6ZGVzY3JpcHRpb25LZXl3b3JkKCkpCisgICAgICAgICAgICByZXR1cm4g
KnN0cmluZzsKIAotICAgIHJldHVybiBhdWRpb0Rlc2NyaXB0aW9uVHJhY2tTdWZmaXhUZXh0KGRp
c3BsYXlOYW1lLnRvU3RyaW5nKCkpOworICAgICAgICByZXR1cm4gYXVkaW9EZXNjcmlwdGlvblRy
YWNrU3VmZml4VGV4dCgqc3RyaW5nKTsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5n
IENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpkaXNwbGF5TmFtZUZvclRyYWNrKEF1ZGlv
VHJhY2sqIHRyYWNrKSBjb25zdApAQCAtNjg4LDI2ICs3MDEsMjkgQEAgc3RhdGljIFN0cmluZyB0
cmFja0Rpc3BsYXlOYW1lKFRleHRUcmFjayogdHJhY2spCiAgICAgaWYgKGRpc3BsYXlOYW1lQnVp
bGRlci5pc0VtcHR5KCkpCiAgICAgICAgIGRpc3BsYXlOYW1lQnVpbGRlci5hcHBlbmQodGV4dFRy
YWNrTm9MYWJlbFRleHQoKSk7CiAKLSAgICBTdHJpbmcgZGlzcGxheU5hbWUgPSBkaXNwbGF5TmFt
ZUJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBkaXNwbGF5TmFtZUJ1
aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICBTdHJpbmcgZGlzcGxheU5hbWUgPSAqc3RyaW5n
OwogCi0gICAgaWYgKHRyYWNrLT5pc0Nsb3NlZENhcHRpb25zKCkpIHsKLSAgICAgICAgZGlzcGxh
eU5hbWUgPSBjbG9zZWRDYXB0aW9uVHJhY2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOwotICAg
ICAgICBpZiAodHJhY2stPmlzRWFzeVRvUmVhZCgpKQotICAgICAgICAgICAgZGlzcGxheU5hbWUg
PSBlYXN5UmVhZGVyVHJhY2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOworICAgICAgICBpZiAo
dHJhY2stPmlzQ2xvc2VkQ2FwdGlvbnMoKSkgeworICAgICAgICAgICAgZGlzcGxheU5hbWUgPSBj
bG9zZWRDYXB0aW9uVHJhY2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOworICAgICAgICAgICAg
aWYgKHRyYWNrLT5pc0Vhc3lUb1JlYWQoKSkKKyAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZSA9
IGVhc3lSZWFkZXJUcmFja01lbnVJdGVtVGV4dChkaXNwbGF5TmFtZSk7CiAKLSAgICAgICAgcmV0
dXJuIGRpc3BsYXlOYW1lOwotICAgIH0KKyAgICAgICAgICAgIHJldHVybiBkaXNwbGF5TmFtZTsK
KyAgICAgICAgfQogCi0gICAgaWYgKHRyYWNrLT5pc1NESCgpKQotICAgICAgICBkaXNwbGF5TmFt
ZSA9IHNkaFRyYWNrTWVudUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsKKyAgICAgICAgaWYgKHRyYWNr
LT5pc1NESCgpKQorICAgICAgICAgICAgZGlzcGxheU5hbWUgPSBzZGhUcmFja01lbnVJdGVtVGV4
dChkaXNwbGF5TmFtZSk7CiAKLSAgICBpZiAodHJhY2stPmNvbnRhaW5zT25seUZvcmNlZFN1YnRp
dGxlcygpKQotICAgICAgICBkaXNwbGF5TmFtZSA9IGZvcmNlZFRyYWNrTWVudUl0ZW1UZXh0KGRp
c3BsYXlOYW1lKTsKKyAgICAgICAgaWYgKHRyYWNrLT5jb250YWluc09ubHlGb3JjZWRTdWJ0aXRs
ZXMoKSkKKyAgICAgICAgICAgIGRpc3BsYXlOYW1lID0gZm9yY2VkVHJhY2tNZW51SXRlbVRleHQo
ZGlzcGxheU5hbWUpOwogCi0gICAgaWYgKHRyYWNrLT5pc0Vhc3lUb1JlYWQoKSkKLSAgICAgICAg
ZGlzcGxheU5hbWUgPSBlYXN5UmVhZGVyVHJhY2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOwor
ICAgICAgICBpZiAodHJhY2stPmlzRWFzeVRvUmVhZCgpKQorICAgICAgICAgICAgZGlzcGxheU5h
bWUgPSBlYXN5UmVhZGVyVHJhY2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOwogCi0gICAgcmV0
dXJuIGRpc3BsYXlOYW1lOworICAgICAgICByZXR1cm4gZGlzcGxheU5hbWU7CisgICAgfQorICAg
IENSQVNIKCk7CiB9CiAKIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6ZGlz
cGxheU5hbWVGb3JUcmFjayhUZXh0VHJhY2sqIHRyYWNrKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNw
cAppbmRleCBhODQyNjVhLi4zZTQyNDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtMzY5LDcg
KzM2OSw5IEBAIHN0YXRpYyBKU0M6OllhcnI6OlJlZ3VsYXJFeHByZXNzaW9uIGNyZWF0ZVJlZ0V4
cEZvckxhYmVscyhjb25zdCBWZWN0b3I8U3RyaW5nPiYKICAgICAgICAgICAgIHBhdHRlcm4uYXBw
ZW5kTGl0ZXJhbCgiXFxiIik7CiAgICAgfQogICAgIHBhdHRlcm4uYXBwZW5kKCcpJyk7Ci0gICAg
cmV0dXJuIEpTQzo6WWFycjo6UmVndWxhckV4cHJlc3Npb24ocGF0dGVybi50b1N0cmluZygpLCBK
U0M6OllhcnI6OlRleHRDYXNlSW5zZW5zaXRpdmUpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHBh
dHRlcm4udG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIEpTQzo6WWFycjo6UmVndWxhckV4cHJl
c3Npb24oKnN0cmluZywgSlNDOjpZYXJyOjpUZXh0Q2FzZUluc2Vuc2l0aXZlKTsKKyAgICBDUkFT
SCgpOwogfQogCiBTdHJpbmcgRnJhbWU6OnNlYXJjaEZvckxhYmVsc0Fib3ZlQ2VsbChjb25zdCBK
U0M6OllhcnI6OlJlZ3VsYXJFeHByZXNzaW9uJiByZWdFeHAsIEhUTUxUYWJsZUNlbGxFbGVtZW50
KiBjZWxsLCBzaXplX3QqIHJlc3VsdERpc3RhbmNlRnJvbVN0YXJ0T2ZDZWxsKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVRyZWUuY3BwCmluZGV4IDI2Y2NjN2EuLjRkY2VmMDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVHJlZS5jcHAKQEAgLTE1MCw3ICsxNTAsOSBAQCBBdG9taWNTdHJpbmcgRnJhbWVUcmVlOjp1
bmlxdWVDaGlsZE5hbWUoY29uc3QgQXRvbWljU3RyaW5nJiByZXF1ZXN0ZWROYW1lKSBjb25zdAog
ICAgIG5hbWUuYXBwZW5kTnVtYmVyKGNoaWxkQ291bnQoKSk7CiAgICAgbmFtZS5hcHBlbmRMaXRl
cmFsKCItLT4tLT4iKTsKIAotICAgIHJldHVybiBuYW1lLnRvQXRvbWljU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gbmFtZS50b0F0b21pY1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgYm9vbCBpblNjb3BlKEZyYW1lJiBm
cmFtZSwgVHJlZVNjb3BlJiBzY29wZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBm
ZjNiOGFhLi4yYTM2MGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0xNDUyLDcg
KzE0NTIsMTAgQEAgdm9pZCBGcmFtZVZpZXc6OmxvZ01vY2tTY3JvbGxBbmltYXRvck1lc3NhZ2Uo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVy
YWwoIk1haW4iKTsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIkZyYW1lVmlldzogIik7CiAg
ICAgYnVpbGRlci5hcHBlbmQobWVzc2FnZSk7Ci0gICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNz
YWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdlTGV2ZWw6OkRlYnVnLCBidWlsZGVyLnRv
U3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBN
ZXNzYWdlTGV2ZWw6OkRlYnVnLCAqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7
CiB9CiAKIHZvaWQgRnJhbWVWaWV3OjpzZXRDYW5ub3RCbGl0VG9XaW5kb3coKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcAppbmRleCA1ZjY0MjI0Li45YWE5ZjIwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcApAQCAtMjYzLDggKzI2MywxMSBAQCB2b2lk
IFBhZ2VTZXJpYWxpemVyOjpzZXJpYWxpemVDU1NTdHlsZVNoZWV0KENTU1N0eWxlU2hlZXQqIHN0
eWxlU2hlZXQsIGNvbnN0IFVSTAogICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNoZWNrIHdo
ZXRoZXIgYSBjaGFyc2V0IGhhcyBiZWVuIHNwZWNpZmllZCBhbmQgaWYgbm9uZSB3YXMgZm91bmQg
YWRkIG9uZS4KICAgICAgICAgVGV4dEVuY29kaW5nIHRleHRFbmNvZGluZyhzdHlsZVNoZWV0LT5j
b250ZW50cygpLmNoYXJzZXQoKSk7CiAgICAgICAgIEFTU0VSVCh0ZXh0RW5jb2RpbmcuaXNWYWxp
ZCgpKTsKLSAgICAgICAgbV9yZXNvdXJjZXMuYXBwZW5kKHsgdXJsLCBBU0NJSUxpdGVyYWwgeyAi
dGV4dC9jc3MiIH0sIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHRleHRFbmNvZGluZy5lbmNvZGUoY3Nz
VGV4dC50b1N0cmluZygpLCBVbmVuY29kYWJsZUhhbmRsaW5nOjpFbnRpdGllcykpIH0pOwotICAg
ICAgICBtX3Jlc291cmNlVVJMcy5hZGQodXJsKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
Y3NzVGV4dC50b1N0cmluZygpKSB7CisgICAgICAgICAgICBtX3Jlc291cmNlcy5hcHBlbmQoeyB1
cmwsIEFTQ0lJTGl0ZXJhbCB7ICJ0ZXh0L2NzcyIgfSwgU2hhcmVkQnVmZmVyOjpjcmVhdGUodGV4
dEVuY29kaW5nLmVuY29kZSgqc3RyaW5nLCBVbmVuY29kYWJsZUhhbmRsaW5nOjpFbnRpdGllcykp
IH0pOworICAgICAgICAgICAgbV9yZXNvdXJjZVVSTHMuYWRkKHVybCk7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50LmNwcAppbmRleCA5ZDQ0ZDk0Li4zYjQ0ZmY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZ0NsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQu
Y3BwCkBAIC01MCw3ICs1MCw5IEBAIFN0cmluZyBQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQ6OnN5
bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uc0FzU3RyaW5nKFN5bmNocm9ub3VzCiAgICAgICAgIHJl
YXNvbnMuYXBwZW5kTGl0ZXJhbCgiaW1hZ2UgZG9jdW1lbnQsIik7CiAKICAgICAvLyBTdHJpcCB0
aGUgdHJhaWxpbmcgY29tbWEuCi0gICAgcmV0dXJuIHJlYXNvbnMudG9TdHJpbmcoKS5sZWZ0KHJl
YXNvbnMubGVuZ3RoKCkgLSAxKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZWFzb25zLnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiBzdHJpbmctPmxlZnQocmVhc29ucy5sZW5ndGgoKSAtIDEp
OworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcAppbmRleCAyYWFjOGVlLi5lM2FjOGQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luRGF0YS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuY3BwCkBAIC04NCw3ICs4
NCw5IEBAIFN0cmluZyBTZWN1cml0eU9yaWdpbkRhdGE6OmRhdGFiYXNlSWRlbnRpZmllcigpIGNv
bnN0CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoc2VwYXJhdG9yQ2hhcmFjdGVyKTsKICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcihwb3J0LnZhbHVlX29yKDApKTsKICAgICAKLSAgICBy
ZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogc3RkOjpvcHRpb25hbDxTZWN1cml0eU9yaWdpbkRhdGE+IFNlY3VyaXR5T3Jp
Z2luRGF0YTo6ZnJvbURhdGFiYXNlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWRl
bnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RU
cmlnZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmNw
cAppbmRleCBlZDU0OWNmLi5mYzUwMjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1doZWVsRXZlbnRUZXN0VHJpZ2dlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVl
bEV2ZW50VGVzdFRyaWdnZXIuY3BwCkBAIC0xMDAsNyArMTAwLDEwIEBAIHN0YXRpYyB2b2lkIGR1
bXBTdGF0ZShXVEY6Okhhc2hNYXA8V2hlZWxFdmVudFRlc3RUcmlnZ2VyOjpTY3JvbGxhYmxlQXJl
YUlkZW50aWZpCiAgICAgICAgICAgICAgICAgcmVhc29ucy5hcHBlbmQoIiwgIik7CiAgICAgICAg
ICAgICByZWFzb25zLmFwcGVuZChTdHJpbmc6Om51bWJlcihyZWFzb24pKTsKICAgICAgICAgfQot
ICAgICAgICBMT0coV2hlZWxFdmVudFRlc3RUcmlnZ2VycywgIiAgICAgUmVhc29uczogJXMiLCBy
ZWFzb25zLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHJlYXNvbnMudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIExPRyhXaGVlbEV2ZW50VGVzdFRy
aWdnZXJzLCAiICAgICBSZWFzb25zOiAlcyIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogfQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAppbmRleCBm
YzJmZDEyLi4zYzkxODcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250
ZW50U2VjdXJpdHlQb2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRl
bnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTg1LDcgKzg1LDkgQEAgc3RhdGljIFN0cmluZyBjb25z
b2xlTWVzc2FnZUZvclZpb2xhdGlvbihjb25zdCBjaGFyKiBlZmZlY3RpdmVWaW9sYXRlZERpcmVj
dGl2ZSwKICAgICAgICAgcmVzdWx0LmFwcGVuZChlZmZlY3RpdmVWaW9sYXRlZERpcmVjdGl2ZSk7
CiAgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCIgZGlyZWN0aXZlIG9mIHRoZSBDb250ZW50
IFNlY3VyaXR5IFBvbGljeS4iKTsKICAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkNv
bnRlbnRTZWN1cml0eVBvbGljeShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KQpAQCAtMTM3LDcgKzEzOSwxMCBAQCBib29sIENvbnRlbnRTZWN1cml0eVBvbGlj
eTo6YWxsb3dSdW5uaW5nT3JEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KGNvbnN0IFVSTCYgdQog
ICAgICAgICBjb25zb2xlTWVzc2FnZS5hcHBlbmQodXJsLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRU
b0xlbmd0aCgpKTsKICAgICAgICAgY29uc29sZU1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiIGJlY2F1
c2UgIik7CiAgICAgICAgIGNvbnNvbGVNZXNzYWdlLmFwcGVuZCgiJ2Jsb2NrLWFsbC1taXhlZC1j
b250ZW50JyBhcHBlYXJzIGluIHRoZSBDb250ZW50IFNlY3VyaXR5IFBvbGljeS4iKTsKLSAgICAg
ICAgcmVwb3J0VmlvbGF0aW9uKENvbnRlbnRTZWN1cml0eVBvbGljeURpcmVjdGl2ZU5hbWVzOjpi
bG9ja0FsbE1peGVkQ29udGVudCwgQ29udGVudFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXM6
OmJsb2NrQWxsTWl4ZWRDb250ZW50LCAqcG9saWN5LCB1cmwsIGNvbnNvbGVNZXNzYWdlLnRvU3Ry
aW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBjb25zb2xlTWVzc2FnZS50b1N0cmlu
ZygpKQorICAgICAgICAgICAgcmVwb3J0VmlvbGF0aW9uKENvbnRlbnRTZWN1cml0eVBvbGljeURp
cmVjdGl2ZU5hbWVzOjpibG9ja0FsbE1peGVkQ29udGVudCwgQ29udGVudFNlY3VyaXR5UG9saWN5
RGlyZWN0aXZlTmFtZXM6OmJsb2NrQWxsTWl4ZWRDb250ZW50LCAqcG9saWN5LCB1cmwsICpzdHJp
bmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogCiAgICAgICAgIGlmICgh
aXNSZXBvcnRPbmx5KQogICAgICAgICAgICAgYWxsb3cgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0F4aXNTY3JvbGxTbmFwT2Zmc2V0cy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9BeGlzU2Nyb2xsU25hcE9mZnNldHMuY3BwCmlu
ZGV4IDAyMDc1MzguLmQ4ZDNmMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL0F4aXNTY3JvbGxTbmFwT2Zmc2V0cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvQXhpc1Njcm9sbFNuYXBPZmZzZXRzLmNwcApAQCAtODEsNyArODEsOSBAQCBz
dGF0aWMgU3RyaW5nIHNuYXBPZmZzZXRzVG9TdHJpbmcoY29uc3QgVmVjdG9yPExheW91dFVuaXQ+
JiBzbmFwT2Zmc2V0cykKICAgICAgICAgcy5hcHBlbmQoU3RyaW5nOjpmb3JtYXQoIiUuMWYgIiwg
b2Zmc2V0LnRvRmxvYXQoKSkpOwogCiAgICAgcy5hcHBlbmQoIl0iKTsKLSAgICByZXR1cm4gcy50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHMudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBzbmFwT2Zm
c2V0UmFuZ2VzVG9TdHJpbmcoY29uc3QgVmVjdG9yPFNjcm9sbE9mZnNldFJhbmdlPExheW91dFVu
aXQ+PiYgcmFuZ2VzKQpAQCAtOTEsNyArOTMsOSBAQCBzdGF0aWMgU3RyaW5nIHNuYXBPZmZzZXRS
YW5nZXNUb1N0cmluZyhjb25zdCBWZWN0b3I8U2Nyb2xsT2Zmc2V0UmFuZ2U8TGF5b3V0VW5pdAog
ICAgIGZvciAoYXV0byByYW5nZSA6IHJhbmdlcykKICAgICAgICAgcy5hcHBlbmQoU3RyaW5nOjpm
b3JtYXQoIiglLjFmLCAlLjFmKSAiLCByYW5nZS5zdGFydC50b0Zsb2F0KCksIHJhbmdlLmVuZC50
b0Zsb2F0KCkpKTsKICAgICBzLmFwcGVuZCgiXSIpOwotICAgIHJldHVybiBzLnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIHNuYXBQb3J0T3JBcmVhVG9T
dHJpbmcoY29uc3QgTGF5b3V0UmVjdCYgcmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCBmNTAyMjFhLi4z
YzFjNmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0zODksNyArMzg5LDkgQEAgU3RyaW5nIFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yOjpzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNBc1RleHQoU3luY2hyb25v
dXNTY3JvbGwKIAogICAgIGlmIChzdHJpbmdCdWlsZGVyLmxlbmd0aCgpKQogICAgICAgICBzdHJp
bmdCdWlsZGVyLnJlc2l6ZShzdHJpbmdCdWlsZGVyLmxlbmd0aCgpIC0gMik7Ci0gICAgcmV0dXJu
IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIFN0cmluZyBTY3JvbGxpbmdDb29yZGluYXRvcjo6c3luY2hyb25vdXNTY3JvbGxpbmdS
ZWFzb25zQXNUZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0RlY2ltYWwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVjaW1hbC5jcHAKaW5kZXgg
M2Q1MjVjZi4uMWExOTJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVj
aW1hbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVjaW1hbC5jcHAKQEAgLTk5
NCw3ICs5OTQsOSBAQCBTdHJpbmcgRGVjaW1hbDo6dG9TdHJpbmcoKSBjb25zdAogICAgIGlmIChv
cmlnaW5hbEV4cG9uZW50IDw9IDAgJiYgYWRqdXN0ZWRFeHBvbmVudCA+PSAtNikgewogICAgICAg
ICBpZiAoIW9yaWdpbmFsRXhwb25lbnQpIHsKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGRp
Z2l0cyk7Ci0gICAgICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogCiAgICAg
ICAgIGlmIChhZGp1c3RlZEV4cG9uZW50ID49IDApIHsKQEAgLTEwMDMsNyArMTAwNSw5IEBAIFN0
cmluZyBEZWNpbWFsOjp0b1N0cmluZygpIGNvbnN0CiAgICAgICAgICAgICAgICAgaWYgKGkgPT0g
YWRqdXN0ZWRFeHBvbmVudCkKICAgICAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJy4n
KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7
CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAg
ICB9CiAKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIwLiIpOwpAQCAtMTAyNyw3ICsx
MDMxLDkgQEAgU3RyaW5nIERlY2ltYWw6OnRvU3RyaW5nKCkgY29uc3QKICAgICAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kTnVtYmVyKGFkanVzdGVkRXhwb25lbnQpOwogICAgICAgICB9CiAgICAgfQot
ICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiBEZWNpbWFsIERlY2ltYWw6Onplcm8oU2lnbiBzaWduKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9GaWxlU3lzdGVtLmNwcAppbmRleCAyZmRiMjYwLi5lNjdkNjc5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9GaWxlU3lzdGVtLmNwcApAQCAtMTMwLDcgKzEzMCw5IEBAIFN0cmluZyBlbmNvZGVG
b3JGaWxlTmFtZShjb25zdCBTdHJpbmcmIGlucHV0U3RyaW5nKQogICAgICAgICAgICAgcmVzdWx0
LmFwcGVuZChjaGFyYWN0ZXIpOwogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIGRlY29kZUZyb21GaWxlbmFt
ZShjb25zdCBTdHJpbmcmIGlucHV0U3RyaW5nKQpAQCAtMTgxLDcgKzE4Myw5IEBAIFN0cmluZyBk
ZWNvZGVGcm9tRmlsZW5hbWUoY29uc3QgU3RyaW5nJiBpbnB1dFN0cmluZykKICAgICAgICAgaSAr
PSA1OwogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIGxhc3RDb21wb25lbnRPZlBhdGhJZ25vcmluZ1RyYWls
aW5nU2xhc2goY29uc3QgU3RyaW5nJiBwYXRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUE9ESW50ZXJ2YWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPREludGVy
dmFsLmgKaW5kZXggMDQ4ZGE5OC4uNjQ2MzYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUE9ESW50ZXJ2YWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RJ
bnRlcnZhbC5oCkBAIC0xNDUsNyArMTQ1LDkgQEAgcHVibGljOgogICAgICAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwoIiwgbWF4SGlnaD0iKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoVmFsdWVU
b1N0cmluZzxUPjo6c3RyaW5nKG1heEhpZ2goKSkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgn
XScpOwotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0
byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QT0RSZWRCbGFja1RyZWUuaAppbmRleCAxMzFmMzFhLi40OTYwZWZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RSZWRCbGFja1RyZWUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QT0RSZWRCbGFja1RyZWUuaApAQCAtNzQ0LDcgKzc0NCwxMCBAQCBw
cml2YXRlOgogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoVmFsdWVUb1N0cmluZzxUPjo6c3Ry
aW5nKG5vZGUtPmRhdGEoKSkpOwogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoKG5vZGUtPmNv
bG9yKCkgPT0gQmxhY2spID8gIiAoYmxhY2spIiA6ICIgKHJlZCkiKTsKICAgICAgICAgfQotICAg
ICAgICBMT0dfRVJST1IoIiVzIiwgYnVpbGRlci50b1N0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsK
KyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAg
ICAgTE9HX0VSUk9SKCIlcyIsIHN0cmluZy0+YXNjaWkoKS5kYXRhKCkpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICBpZiAobm9kZSkgewogICAgICAgICAgICAg
ZHVtcEZyb21Ob2RlKG5vZGUtPmxlZnQoKSwgaW5kZW50YXRpb24gKyAyKTsKICAgICAgICAgICAg
IGR1bXBGcm9tTm9kZShub2RlLT5yaWdodCgpLCBpbmRlbnRhdGlvbiArIDIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1VSTC5jcHAKaW5kZXggMTU5ZTdmYS4uM2RiODJkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVVJMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwu
Y3BwCkBAIC00NTUsOCArNDU1LDExIEBAIHZvaWQgVVJMOjpzZXRIb3N0KGNvbnN0IFN0cmluZyYg
cykKICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmdWaWV3KGVuY29kZWRIb3N0TmFtZS5kYXRhKCks
IGVuY29kZWRIb3N0TmFtZS5zaXplKCkpKTsKICAgICBidWlsZGVyLmFwcGVuZChtX3N0cmluZy5z
dWJzdHJpbmcobV9ob3N0RW5kKSk7CiAKLSAgICBVUkxQYXJzZXIgcGFyc2VyKGJ1aWxkZXIudG9T
dHJpbmcoKSk7Ci0gICAgKnRoaXMgPSBwYXJzZXIucmVzdWx0KCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIFVSTFBhcnNlciBwYXJzZXIoKnN0
cmluZyk7CisgICAgICAgICp0aGlzID0gcGFyc2VyLnJlc3VsdCgpOworICAgIH0gZWxzZQorICAg
ICAgICBDUkFTSCgpOwogfQogCiB2b2lkIFVSTDo6cmVtb3ZlUG9ydCgpCkBAIC01MTcsOCArNTIw
LDExIEBAIHZvaWQgVVJMOjpzZXRIb3N0QW5kUG9ydChjb25zdCBTdHJpbmcmIGhvc3RBbmRQb3J0
KQogICAgIH0KICAgICBidWlsZGVyLmFwcGVuZChtX3N0cmluZy5zdWJzdHJpbmcobV9wb3J0RW5k
KSk7CiAKLSAgICBVUkxQYXJzZXIgcGFyc2VyKGJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgKnRo
aXMgPSBwYXJzZXIucmVzdWx0KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpKSB7CisgICAgICAgIFVSTFBhcnNlciBwYXJzZXIoKnN0cmluZyk7CisgICAgICAgICp0
aGlzID0gcGFyc2VyLnJlc3VsdCgpOworICAgIH0gZWxzZQorICAgICAgICBDUkFTSCgpOwogfQog
CiBzdGF0aWMgU3RyaW5nIHBlcmNlbnRFbmNvZGVDaGFyYWN0ZXJzKGNvbnN0IFN0cmluZyYgaW5w
dXQsIGJvb2woKnNob3VsZEVuY29kZSkoVUNoYXIpKQpAQCAtNTM3LDcgKzU0Myw5IEBAIHN0YXRp
YyBTdHJpbmcgcGVyY2VudEVuY29kZUNoYXJhY3RlcnMoY29uc3QgU3RyaW5nJiBpbnB1dCwgYm9v
bCgqc2hvdWxkRW5jb2RlKShVCiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBi
dWlsZGVyLmFwcGVuZChjKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0
cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9OwogCiAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpbnB1dC5sZW5ndGgoKTsgKytpKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmNwcApp
bmRleCA4Yzk3MmQ2Li5lZGJmZWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5jcHAKQEAgLTEyOSw3ICsxMjksMTAgQEAgRXhj
ZXB0aW9uT3I8UmVmUHRyPFRpbWluZ0Z1bmN0aW9uPj4gVGltaW5nRnVuY3Rpb246OmNyZWF0ZUZy
b21DU1NUZXh0KGNvbnN0IFN0cmkKICAgICBjc3NTdHJpbmcuYXBwZW5kTGl0ZXJhbCgiOiAiKTsK
ICAgICBjc3NTdHJpbmcuYXBwZW5kKGNzc1RleHQpOwogICAgIGF1dG8gc3R5bGVQcm9wZXJ0aWVz
ID0gTXV0YWJsZVN0eWxlUHJvcGVydGllczo6Y3JlYXRlKCk7Ci0gICAgc3R5bGVQcm9wZXJ0aWVz
LT5wYXJzZURlY2xhcmF0aW9uKGNzc1N0cmluZy50b1N0cmluZygpLCBDU1NQYXJzZXJDb250ZXh0
KEhUTUxTdGFuZGFyZE1vZGUpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBjc3NTdHJpbmcudG9T
dHJpbmcoKSkKKyAgICAgICAgc3R5bGVQcm9wZXJ0aWVzLT5wYXJzZURlY2xhcmF0aW9uKCpzdHJp
bmcsIENTU1BhcnNlckNvbnRleHQoSFRNTFN0YW5kYXJkTW9kZSkpOworICAgIGVsc2UKKyAgICAg
ICAgQ1JBU0goKTsKIAogICAgIGlmIChhdXRvIGNzc1ZhbHVlID0gc3R5bGVQcm9wZXJ0aWVzLT5n
ZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5QW5pbWF0aW9uVGltaW5nRnVuY3Rpb24pKSB7
CiAgICAgICAgIGlmIChhdXRvIHRpbWluZ0Z1bmN0aW9uID0gY3JlYXRlRnJvbUNTU1ZhbHVlKCpj
c3NWYWx1ZS5nZXQoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGli
L0ZpbGVTeXN0ZW1HbGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5
c3RlbUdsaWIuY3BwCmluZGV4IGY5NDA4MTUuLjJiMzBiMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwCkBAIC0yMTgsNyArMjE4LDkgQEAg
U3RyaW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudHMoU3RyaW5nVmlldyBwYXRoLCBjb25zdCBW
ZWN0b3I8U3RyaW5nVmlldz4mIGNvbXAKICAgICAgICAgYnVpbGRlci5hcHBlbmQoR19ESVJfU0VQ
QVJBVE9SX1MpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChjb21wb25lbnQpOwogICAgIH0KLSAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogYm9vbCBtYWtlQWxsRGlyZWN0b3JpZXMoY29uc3QgU3RyaW5nJiBwYXRoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9Vc2VyQWdlbnRHTGliLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvVXNlckFnZW50R0xpYi5jcHAKaW5kZXggMTYyMWE4OC4u
MzgwNzdmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9Vc2VyQWdl
bnRHTGliLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL1VzZXJBZ2VudEdM
aWIuY3BwCkBAIC0xMDYsNyArMTA2LDkgQEAgc3RhdGljIFN0cmluZyBidWlsZFVzZXJBZ2VudFN0
cmluZyhjb25zdCBVc2VyQWdlbnRRdWlya3MmIHF1aXJrcykKICAgICB1YVN0cmluZy5hcHBlbmRM
aXRlcmFsKCJWZXJzaW9uLzExLjAgU2FmYXJpLyIpOwogICAgIHVhU3RyaW5nLmFwcGVuZCh2ZXJz
aW9uRm9yVUFTdHJpbmcoKSk7CiAKLSAgICByZXR1cm4gdWFTdHJpbmcudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSB1YVN0cmluZy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5nIHN0YW5kYXJk
VXNlckFnZW50U3RhdGljKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0NvbG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9y
LmNwcAppbmRleCA1ZGQxNTBmLi5lZTFiZTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29sb3IuY3BwCkBAIC0zNDgsNyArMzQ4LDkgQEAgU3RyaW5nIENvbG9yOjpzZXJp
YWxpemVkKCkgY29uc3QKICAgICAgICAgYXBwZW5kQnl0ZUFzSGV4KHJlZCgpLCBidWlsZGVyLCBM
b3dlcmNhc2UpOwogICAgICAgICBhcHBlbmRCeXRlQXNIZXgoZ3JlZW4oKSwgYnVpbGRlciwgTG93
ZXJjYXNlKTsKICAgICAgICAgYXBwZW5kQnl0ZUFzSGV4KGJsdWUoKSwgYnVpbGRlciwgTG93ZXJj
YXNlKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIGNzc1RleHQoKTsKQEAg
LTM4NCw3ICszODYsOSBAQCBTdHJpbmcgQ29sb3I6OmNzc1RleHQoKSBjb25zdAogICAgIH0KICAg
ICAgICAgCiAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIENvbG9yOjpuYW1l
Rm9yUmVuZGVyVHJlZUFzVGV4dCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwCmluZGV4IDUwZTNjNWMuLjQ0OGRmZDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3Iu
Y3BwCkBAIC03Miw3ICs3Miw5IEBAIFN0cmluZyBFeHRlbmRlZENvbG9yOjpjc3NUZXh0KCkgY29u
c3QKICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKIAotICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAKaW5kZXggODQ3ODYx
Zi4uNTU0ODI5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udENhc2NhZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRDYXNjYWRlLmNwcApAQCAtNTQ5LDcgKzU0OSw5IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIG5v
cm1hbGl6ZVNwYWNlc0ludGVybmFsKGNvbnN0IENoYXJhY3RlclR5cGUqIGNoYXJhY3RlcnMsIHVu
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQogICAgICAgICBub3Jt
YWxpemVkLmFwcGVuZChGb250Q2FzY2FkZTo6bm9ybWFsaXplU3BhY2VzKGNoYXJhY3RlcnNbaV0p
KTsKIAotICAgIHJldHVybiBub3JtYWxpemVkLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gbm9ybWFsaXplZC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBTdHJpbmcgRm9udENhc2NhZGU6Om5vcm1hbGl6ZVNwYWNlcyhjb25z
dCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNldHRpbmdzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRUYWdnZWRTZXR0aW5ncy5jcHAKaW5kZXgg
NjFiMmViZS4uNWM0NjcyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udFRhZ2dlZFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250VGFnZ2VkU2V0dGluZ3MuY3BwCkBAIC03Miw3ICs3MiwxMCBAQCBUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBGb250VmFyaWF0aW9uU2V0
dGluZ3MmIGl0ZW0pCiAgICAgICAgIHMuYXBwZW5kKHZhcmlhdGlvbi50YWcoKVsxXSk7CiAgICAg
ICAgIHMuYXBwZW5kKHZhcmlhdGlvbi50YWcoKVsyXSk7CiAgICAgICAgIHMuYXBwZW5kKHZhcmlh
dGlvbi50YWcoKVszXSk7Ci0gICAgICAgIHRzLmR1bXBQcm9wZXJ0eShzLnRvU3RyaW5nKCksIGl0
ZW0uYXQoaSkudmFsdWUoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHMudG9TdHJpbmco
KSkKKyAgICAgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgqc3RyaW5nLCBpdGVtLmF0KGkpLnZhbHVl
KCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICByZXR1
cm4gdHM7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXIuY3BwCmluZGV4IDY5ODE4MGUuLjE1Y2U4OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCkBAIC00NDEsNyArNDQx
LDkgQEAgU3RyaW5nIEdyYXBoaWNzTGF5ZXI6OmFuaW1hdGlvbk5hbWVGb3JUcmFuc2l0aW9uKEFu
aW1hdGVkUHJvcGVydHlJRCBwcm9wZXJ0eSkKICAgICBpZC5hcHBlbmRMaXRlcmFsKCItfHRyYW5z
aXRpb24iKTsKICAgICBpZC5hcHBlbmROdW1iZXIoc3RhdGljX2Nhc3Q8aW50Pihwcm9wZXJ0eSkp
OwogICAgIGlkLmFwcGVuZCgnLScpOwotICAgIHJldHVybiBpZC50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IGlkLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgR3JhcGhpY3NMYXllcjo6c3VzcGVuZEFuaW1hdGlvbnMo
TW9ub3RvbmljVGltZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2
YXRlQVZGLmNwcAppbmRleCA2ZjJiMzg3Li45NTNjNDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUFWRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCkBAIC0zMDAsOCArMzAwLDEyIEBAIHZv
aWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZUF0dHJpYnV0ZXMoQ0ZBdHRy
aWJ1dGVkU3RyaW5nUmVmIGF0dHJpCiAgICAgICAgIGNvbnRlbnQuYXBwZW5kKHRhZ0VuZCk7CiAg
ICAgfQogCi0gICAgaWYgKGNvbnRlbnQubGVuZ3RoKCkpCi0gICAgICAgIGN1ZURhdGEuc2V0Q29u
dGVudChjb250ZW50LnRvU3RyaW5nKCkpOworICAgIGlmIChjb250ZW50Lmxlbmd0aCgpKSB7Cisg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGNvbnRlbnQudG9TdHJpbmcoKSkKKyAgICAgICAgICAg
IGN1ZURhdGEuc2V0Q29udGVudCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
Q1JBU0goKTsKKyAgICB9CiB9CiAKIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJv
Y2Vzc0N1ZShDRkFycmF5UmVmIGF0dHJpYnV0ZWRTdHJpbmdzLCBDRkFycmF5UmVmIG5hdGl2ZVNh
bXBsZXMsIGNvbnN0IE1lZGlhVGltZSYgdGltZSkKQEAgLTUzMCw3ICs1MzQsMTAgQEAgdm9pZCBJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzTmF0aXZlU2FtcGxlcyhDRkFycmF5UmVm
IG5hdGl2ZVNhbXBsZXMsIGMKICAgICAgICAgICAgIGhlYWRlci5hcHBlbmQoIlxuXG4iKTsKIAog
ICAgICAgICAgICAgREVCVUdfTE9HKExPR0lERU5USUZJRVIsICJWVFQgaGVhZGVyICIsICZoZWFk
ZXIpOwotICAgICAgICAgICAgY2xpZW50KCktPnBhcnNlV2ViVlRURmlsZUhlYWRlcihoZWFkZXIu
dG9TdHJpbmcoKSk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBoZWFkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgICAgICAgICBjbGllbnQoKS0+cGFyc2VXZWJWVFRGaWxlSGVhZGVyKFdU
Rk1vdmUoKnN0cmluZykpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNI
KCk7CiAgICAgICAgICAgICBtX2hhdmVSZXBvcnRlZFZUVEhlYWRlciA9IHRydWU7CiAgICAgICAg
IH0gd2hpbGUgKDApOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9UaWxlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9UaWxlQ29udHJvbGxlci5jcHAKaW5kZXggZWMzYWU0Zi4uYTM3ZDg0NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9s
bGVyLmNwcApAQCAtNzM1LDcgKzczNSwxMCBAQCBSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBUaWxl
Q29udHJvbGxlcjo6Y3JlYXRlVGlsZUxheWVyKGNvbnN0IEludFJlY3QmIHRpbGVSZWN0LAogICAg
IG5hbWVCdWlsZGVyLmFwcGVuZE51bWJlcih0aWxlUmVjdC5sb2NhdGlvbigpLngoKSk7CiAgICAg
bmFtZUJ1aWxkZXIuYXBwZW5kKCcsJyk7CiAgICAgbmFtZUJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRp
bGVSZWN0LmxvY2F0aW9uKCkueSgpKTsKLSAgICBsYXllci0+c2V0TmFtZShuYW1lQnVpbGRlci50
b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBuYW1lQnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICBsYXllci0+c2V0TmFtZSgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENS
QVNIKCk7CiAKICAgICBmbG9hdCB0ZW1wb3JhcnlTY2FsZUZhY3RvciA9IG93bmluZ0dyYXBoaWNz
TGF5ZXIoKS0+cGxhdGZvcm1DQUxheWVyQ29udGVudHNTY2FsZU11bHRpcGxpZXJGb3JOZXdUaWxl
cyhtX3RpbGVDYWNoZUxheWVyKTsKICAgICBtX2hhc1RpbGVzV2l0aFRlbXBvcmFyeVNjYWxlRmFj
dG9yIHw9IHRlbXBvcmFyeVNjYWxlRmFjdG9yICE9IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlR3JpZC5jcHAKaW5kZXggNTkxOWY5Ny4uZTg2NjU5NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUdyaWQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNw
cApAQCAtNTksNyArNTksOSBAQCBzdGF0aWMgU3RyaW5nIHZhbGlkYXRpb25Qb2xpY3lBc1N0cmlu
ZyhUaWxlR3JpZDo6VGlsZVZhbGlkYXRpb25Qb2xpY3kgdmFsaWRhdGlvbgogICAgIH0KICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIl0iKTsKIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FM
YXllcldpbi5jcHAKaW5kZXggYzAwMGI0My4uZmE2NDBmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXll
cldpbi5jcHAKQEAgLTkzNCw3ICs5MzQsOSBAQCBTdHJpbmcgUGxhdGZvcm1DQUxheWVyV2luOjps
YXllclRyZWVBc1N0cmluZygpIGNvbnN0CiAgICAgLy8gUHJpbnQgbGF5ZXIgdHJlZSBmcm9tIHRo
ZSByb290CiAgICAgcHJpbnRMYXllcihidWlsZGVyLCB0aGlzLCAwKTsKIAotICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBSZWY8UGxh
dGZvcm1DQUxheWVyPiBQbGF0Zm9ybUNBTGF5ZXJXaW46OmNyZWF0ZUNvbXBhdGlibGVMYXllcihQ
bGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZSBsYXllclR5cGUsIFBsYXRmb3JtQ0FMYXllckNsaWVu
dCogY2xpZW50KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwCmluZGV4IGRmZmNkY2IuLjQ3
ZjMyMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1Zp
ZGVvVGV4dHVyZUNvcGllckNWLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAKQEAgLTUxMiw3ICs1MTIsMTAgQEAgYm9v
bCBWaWRlb1RleHR1cmVDb3BpZXJDVjo6aW5pdGlhbGl6ZUNvbnRleHRPYmplY3RzKCkKICAgICB2
ZXJ0ZXhTaGFkZXJTb3VyY2UuYXBwZW5kTGl0ZXJhbCgifVxuIik7CiAKICAgICBQbGF0Zm9ybTNE
T2JqZWN0IHZlcnRleFNoYWRlciA9IG1fY29udGV4dC0+Y3JlYXRlU2hhZGVyKEdyYXBoaWNzQ29u
dGV4dDNEOjpWRVJURVhfU0hBREVSKTsKLSAgICBtX2NvbnRleHQtPnNoYWRlclNvdXJjZSh2ZXJ0
ZXhTaGFkZXIsIHZlcnRleFNoYWRlclNvdXJjZS50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSB2ZXJ0ZXhTaGFkZXJTb3VyY2UudG9TdHJpbmcoKSkKKyAgICAgICAgbV9jb250ZXh0
LT5zaGFkZXJTb3VyY2UodmVydGV4U2hhZGVyLCAqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAg
IENSQVNIKCk7CiAgICAgbV9jb250ZXh0LT5jb21waWxlU2hhZGVyRGlyZWN0KHZlcnRleFNoYWRl
cik7CiAKICAgICBHQzNEaW50IHZhbHVlID0gMDsKQEAgLTU1Myw3ICs1NTYsMTAgQEAgYm9vbCBW
aWRlb1RleHR1cmVDb3BpZXJDVjo6aW5pdGlhbGl6ZUNvbnRleHRPYmplY3RzKCkKICAgICBmcmFn
bWVudFNoYWRlclNvdXJjZS5hcHBlbmRMaXRlcmFsKCJ9XG4iKTsKIAogICAgIFBsYXRmb3JtM0RP
YmplY3QgZnJhZ21lbnRTaGFkZXIgPSBtX2NvbnRleHQtPmNyZWF0ZVNoYWRlcihHcmFwaGljc0Nv
bnRleHQzRDo6RlJBR01FTlRfU0hBREVSKTsKLSAgICBtX2NvbnRleHQtPnNoYWRlclNvdXJjZShm
cmFnbWVudFNoYWRlciwgZnJhZ21lbnRTaGFkZXJTb3VyY2UudG9TdHJpbmcoKSk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gZnJhZ21lbnRTaGFkZXJTb3VyY2UudG9TdHJpbmcoKSkKKyAgICAgICAg
bV9jb250ZXh0LT5zaGFkZXJTb3VyY2UoZnJhZ21lbnRTaGFkZXIsICpzdHJpbmcpOworICAgIGVs
c2UKKyAgICAgICAgQ1JBU0goKTsKICAgICBtX2NvbnRleHQtPmNvbXBpbGVTaGFkZXJEaXJlY3Qo
ZnJhZ21lbnRTaGFkZXIpOwogCiAgICAgbV9jb250ZXh0LT5nZXRTaGFkZXJpdihmcmFnbWVudFNo
YWRlciwgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBJTEVfU1RBVFVTLCAmdmFsdWUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dDNET3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKaW5kZXggNWJkZDY2My4u
MDI1ZWNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24u
Y3BwCkBAIC05NTMsNyArOTUzLDkgQEAgc3RhdGljIFN0cmluZyBnZW5lcmF0ZUhhc2hlZE5hbWUo
Y29uc3QgU3RyaW5nJiBuYW1lKQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIndlYmdsXyIpOwogICAgIGFwcGVuZFVuc2lnbmVkNjRBc0hleChu
dW1iZXIsIGJ1aWxkZXIsIExvd2VyY2FzZSk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBH
cmFwaGljc0NvbnRleHQzRDo6bWFwcGVkU3ltYm9sSW5TaGFkZXJTb3VyY2VNYXAoUGxhdGZvcm0z
RE9iamVjdCBzaGFkZXIsIEFOR0xFU2hhZGVyU3ltYm9sVHlwZSBzeW1ib2xUeXBlLCBjb25zdCBT
dHJpbmcmIG5hbWUpCkBAIC0xNjg1LDggKzE2ODcsMTEgQEAgU3RyaW5nIEdyYXBoaWNzQ29udGV4
dDNEOjpnZXRVbm1hbmdsZWRJbmZvTG9nKFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyc1syXSwgR0Mz
RHMKIAogICAgIHByb2Nlc3NlZExvZy5hcHBlbmQobG9nLnN1YnN0cmluZyhzdGFydEZyb20sIGxv
Zy5sZW5ndGgoKSAtIHN0YXJ0RnJvbSkpOwogCi0gICAgTE9HKFdlYkdMLCAiVW5tYW5nbGVkIFNo
YWRlckluZm9Mb2c6XG4lcyIsIHByb2Nlc3NlZExvZy50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkp
OwotICAgIHJldHVybiBwcm9jZXNzZWRMb2cudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBwcm9jZXNzZWRMb2cudG9TdHJpbmcoKSkgeworICAgICAgICBMT0coV2ViR0wsICJVbm1h
bmdsZWQgU2hhZGVySW5mb0xvZzpcbiVzIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBHcmFw
aGljc0NvbnRleHQzRDo6Z2V0UHJvZ3JhbUluZm9Mb2coUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFt
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAKaW5kZXggMmU2YzUy
Yy4uMjRhODhmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3Bw
CkBAIC0zOTcsNyArMzk3LDEwIEBAIFJlZjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gVGV4
dHVyZU1hcHBlclNoYWRlclByb2dyYW06OmNyZWF0ZShUZXh0dXJlTWFwcGVyCiAjZW5kaWYKIAog
ICAgIC8vIEFwcGVuZCB0aGUgb3B0aW9ucy4KLSAgICB2ZXJ0ZXhTaGFkZXJCdWlsZGVyLmFwcGVu
ZChvcHRpb25zQXBwbGllckJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gb3B0aW9uc0FwcGxpZXJCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHZlcnRleFNoYWRl
ckJ1aWxkZXIuYXBwZW5kKCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAog
ICAgIC8vIEFwcGVuZCB0aGUgYXBwcm9wcmlhdGUgaW5wdXQvb3V0cHV0IHZhcmlhYmxlIGRlZmlu
aXRpb25zLgogI2lmIFVTRShPUEVOR0xfRVMpCkBAIC00MjEsNyArNDI0LDEwIEBAIFJlZjxUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OmNyZWF0
ZShUZXh0dXJlTWFwcGVyCiAjZW5kaWYKIAogICAgIC8vIEFwcGVuZCB0aGUgb3B0aW9ucy4KLSAg
ICBmcmFnbWVudFNoYWRlckJ1aWxkZXIuYXBwZW5kKG9wdGlvbnNBcHBsaWVyQnVpbGRlci50b1N0
cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBvcHRpb25zQXBwbGllckJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgZnJhZ21lbnRTaGFkZXJCdWlsZGVyLmFwcGVuZCgqc3RyaW5nKTsK
KyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAgICAvLyBBcHBlbmQgdGhlIGNvbW1vbiBo
ZWFkZXIuCiAgICAgZnJhZ21lbnRTaGFkZXJCdWlsZGVyLmFwcGVuZChmcmFnbWVudFRlbXBsYXRl
SGVhZGVyQ29tbW9uKTsKQEAgLTQzOSw3ICs0NDUsMTAgQEAgUmVmPFRleHR1cmVNYXBwZXJTaGFk
ZXJQcm9ncmFtPiBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKFRleHR1cmVNYXBw
ZXIKICAgICAvLyBBcHBlbmQgdGhlIGNvbW1vbiBjb2RlLgogICAgIGZyYWdtZW50U2hhZGVyQnVp
bGRlci5hcHBlbmQoZnJhZ21lbnRUZW1wbGF0ZUNvbW1vbik7CiAKLSAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbSh2ZXJ0ZXhTaGFkZXJCdWlsZGVyLnRv
U3RyaW5nKCksIGZyYWdtZW50U2hhZGVyQnVpbGRlci50b1N0cmluZygpKSk7CisgICAgaWYgKGF1
dG8gdmVydGV4U3RyaW5nID0gdmVydGV4U2hhZGVyQnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICBpZiAoYXV0byBmcmFnbWVudFN0cmluZyA9IGZyYWdtZW50U2hhZGVyQnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dHVyZU1hcHBlclNoYWRl
clByb2dyYW0oKnZlcnRleFN0cmluZywgKmZyYWdtZW50U3RyaW5nKSk7CisgICAgQ1JBU0goKTsK
IH0KIAogI2lmICFMT0dfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9TZWxlY3Rpb25EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9T
ZWxlY3Rpb25EYXRhLmNwcAppbmRleCAxZTI3OTliLi5mZmM3ZTFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VsZWN0aW9uRGF0YS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1NlbGVjdGlvbkRhdGEuY3BwCkBAIC05Niw3ICs5NiwxMCBAQCB2
b2lkIFNlbGVjdGlvbkRhdGE6OnNldFVSTChjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBs
YWJlbCkKICAgICBHVW5pcXVlUHRyPGdjaGFyPiBlc2NhcGVkKGdfbWFya3VwX2VzY2FwZV90ZXh0
KGFjdHVhbExhYmVsLnV0ZjgoKS5kYXRhKCksIC0xKSk7CiAgICAgbWFya3VwLmFwcGVuZChTdHJp
bmc6OmZyb21VVEY4KGVzY2FwZWQuZ2V0KCkpKTsKICAgICBtYXJrdXAuYXBwZW5kKCI8L2E+Iik7
Ci0gICAgc2V0TWFya3VwKG1hcmt1cC50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBtYXJrdXAudG9TdHJpbmcoKSkKKyAgICAgICAgc2V0TWFya3VwKCpzdHJpbmcpOworICAgIGVs
c2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogY29uc3QgU3RyaW5nJiBTZWxlY3Rpb25EYXRhOjp1
cmxMYWJlbCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
UGFzdGVib2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJk
TWFjLm1tCmluZGV4IDM2NThkZDEuLmExMmNiMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCkBAIC0yODgsNyArMjg4LDkgQEAgc3RhdGljIFN0cmlu
ZyBqb2luUGF0aG5hbWVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXRobmFtZXMpCiAgICAgICAg
ICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQocGF0aCk7
CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBD
UkFTSCgpOwogfQogCiB2b2lkIFBhc3RlYm9hcmQ6OnJlYWQoUGFzdGVib2FyZFBsYWluVGV4dCYg
dGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGls
aXRpZXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1t
CmluZGV4IDdjZDFiZDguLjlmMzhmYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1N0cmluZ1V0aWxpdGllcy5tbQpAQCAtNTAsOCArNTAsMTAgQEAgc3RhdGljIFN0cmluZyB3
aWxkY2FyZFJlZ2V4UGF0dGVyblN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKICAgICAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmQoY2hhcmFjdGVyKTsKICAgICB9CiAgICAgc3RyaW5nQnVpbGRl
ci5hcHBlbmQoJyQnKTsKLSAgICAgICAgCi0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKTsKKworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KICAgICAKIGJvb2wgc3Ry
aW5nTWF0Y2hlc1dpbGRjYXJkU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBTdHJp
bmcmIHdpbGRjYXJkU3RyaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9TY3JvbGxBbmltYXRvck1vY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9TY3JvbGxBbmltYXRvck1vY2suY3BwCmluZGV4IDNjYzBmZTkuLjMxYmQzZDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Nyb2xsQW5pbWF0b3JNb2NrLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1Njcm9sbEFuaW1hdG9yTW9jay5jcHAK
QEAgLTEwMSw3ICsxMDEsMTAgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1vY2s6Om1vdXNlRW50ZXJl
ZFNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhcikgY29uc3QKICAgICBlbHNlCiAgICAgICAg
IG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiVW5rbm93biIpOwogICAgIG1lc3NhZ2UuYXBwZW5kTGl0
ZXJhbCgiU2Nyb2xsYmFyIik7Ci0gICAgbV9sb2dnZXIobWVzc2FnZS50b1N0cmluZygpKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBtZXNzYWdlLnRvU3RyaW5nKCkpCisgICAgICAgIG1fbG9nZ2Vy
KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICBTY3JvbGxBbmltYXRv
cjo6bW91c2VFbnRlcmVkU2Nyb2xsYmFyKHNjcm9sbGJhcik7CiB9CiAKQEAgLTExNiw3ICsxMTks
MTAgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1vY2s6Om1vdXNlRXhpdGVkU2Nyb2xsYmFyKFNjcm9s
bGJhciogc2Nyb2xsYmFyKSBjb25zdAogICAgIGVsc2UKICAgICAgICAgbWVzc2FnZS5hcHBlbmRM
aXRlcmFsKCJVbmtub3duIik7CiAgICAgbWVzc2FnZS5hcHBlbmRMaXRlcmFsKCJTY3JvbGxiYXIi
KTsKLSAgICBtX2xvZ2dlcihtZXNzYWdlLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IG1lc3NhZ2UudG9TdHJpbmcoKSkKKyAgICAgICAgbV9sb2dnZXIoKnN0cmluZyk7CisgICAg
ZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIFNjcm9sbEFuaW1hdG9yOjptb3VzZUV4aXRlZFNj
cm9sbGJhcihzY3JvbGxiYXIpOwogfQogCkBAIC0xMzYsNyArMTQyLDEwIEBAIHZvaWQgU2Nyb2xs
QW5pbWF0b3JNb2NrOjptb3VzZUlzRG93bkluU2Nyb2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFy
LCBib29sIGlzUHJlCiAgICAgZWxzZQogICAgICAgICBtZXNzYWdlLmFwcGVuZExpdGVyYWwoIlVu
a25vd24iKTsKICAgICBtZXNzYWdlLmFwcGVuZExpdGVyYWwoIlNjcm9sbGJhciIpOwotICAgIG1f
bG9nZ2VyKG1lc3NhZ2UudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWVzc2Fn
ZS50b1N0cmluZygpKQorICAgICAgICBtX2xvZ2dlcigqc3RyaW5nKTsKKyAgICBlbHNlCisgICAg
ICAgIENSQVNIKCk7CiAgICAgU2Nyb2xsQW5pbWF0b3I6Om1vdXNlSXNEb3duSW5TY3JvbGxiYXIo
c2Nyb2xsYmFyLCBpc1ByZXNzZWQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrQm94LmNwcAppbmRleCBkNGFhMjA1Li5mYjY1YTll
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01v
Y2tCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2Uv
TW9ja0JveC5jcHAKQEAgLTUyLDcgKzUyLDkgQEAgU3RyaW5nIE1vY2tCb3g6OnBlZWtUeXBlKEFy
cmF5QnVmZmVyKiBkYXRhKQogICAgIFJlZlB0cjxJbnQ4QXJyYXk+IGFycmF5ID0gSlNDOjpJbnQ4
QXJyYXk6OmNyZWF0ZShkYXRhLCAwLCA0KTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7ICsr
aSkKICAgICAgICAgYnVpbGRlci5hcHBlbmQoYXJyYXktPml0ZW0oaSkpOwotICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzaXplX3Qg
TW9ja0JveDo6cGVla0xlbmd0aChBcnJheUJ1ZmZlciogZGF0YSkKQEAgLTczLDcgKzc1LDEwIEBA
IE1vY2tUcmFja0JveDo6TW9ja1RyYWNrQm94KEFycmF5QnVmZmVyKiBkYXRhKQogICAgIFJlZlB0
cjxJbnQ4QXJyYXk+IGFycmF5ID0gSlNDOjpJbnQ4QXJyYXk6OmNyZWF0ZShkYXRhLCAxMiwgNCk7
CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyArK2kpCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KGFycmF5LT5pdGVtKGkpKTsKLSAgICBtX2NvZGVjID0gYnVpbGRlci50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgbV9jb2RlYyA9
ICpzdHJpbmc7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgbV9raW5kID0gc3Rh
dGljX2Nhc3Q8VHJhY2tLaW5kPih2aWV3LT5nZXQ8dWludDhfdD4oMTYsIHRydWUpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAKaW5kZXgg
YzhmNDVlNS4uOGQzMGQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9IVFRQUGFyc2Vycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9IVFRQUGFyc2Vycy5jcHAKQEAgLTMyOCw3ICszMjgsOSBAQCBTdHJpbmcgZXh0cmFjdE1JTUVU
eXBlRnJvbU1lZGlhVHlwZShjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSkKIAogICAgIGlmIChtaW1l
VHlwZS5sZW5ndGgoKSA9PSBsZW5ndGgpCiAgICAgICAgIHJldHVybiBtZWRpYVR5cGU7Ci0gICAg
cmV0dXJuIG1pbWVUeXBlLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWltZVR5
cGUudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogU3RyaW5nIGV4dHJhY3RDaGFyc2V0RnJvbU1lZGlhVHlwZShjb25zdCBTdHJpbmcmIG1lZGlh
VHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTUlNRUhl
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL01JTUVIZWFkZXIuY3Bw
CmluZGV4IDI1MTY5M2UuLjc3NjcwOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvTUlNRUhlYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9NSU1FSGVhZGVyLmNwcApAQCAtNjMsNyArNjMsMTAgQEAgc3RhdGljIEtleVZhbHVl
TWFwIHJldHJpZXZlS2V5VmFsdWVQYWlycyhXZWJDb3JlOjpTaGFyZWRCdWZmZXJDaHVua1JlYWRl
ciYgYnVmZmUKICAgICAgICAgaWYgKCFrZXkuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBpZiAo
a2V5VmFsdWVQYWlycy5maW5kKGtleSkgIT0ga2V5VmFsdWVQYWlycy5lbmQoKSkKICAgICAgICAg
ICAgICAgICBMT0dfRVJST1IoIktleSBkdXBsaWNhdGUgZm91bmQgaW4gTUlNRSBoZWFkZXIuIEtl
eSBpcyAnJXMnLCBwcmV2aW91cyB2YWx1ZSByZXBsYWNlZC4iLCBrZXkuYXNjaWkoKS5kYXRhKCkp
OwotICAgICAgICAgICAga2V5VmFsdWVQYWlycy5hZGQoa2V5LCB2YWx1ZS50b1N0cmluZygpLnN0
cmlwV2hpdGVTcGFjZSgpKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHZhbHVlLnRv
U3RyaW5nKCkpCisgICAgICAgICAgICAgICAga2V5VmFsdWVQYWlycy5hZGQoa2V5LCBzdHJpbmct
PnN0cmlwV2hpdGVTcGFjZSgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBD
UkFTSCgpOwogICAgICAgICAgICAga2V5ID0gU3RyaW5nKCk7CiAgICAgICAgICAgICB2YWx1ZS5j
bGVhcigpOwogICAgICAgICB9CkBAIC03Niw4ICs3OSwxMiBAQCBzdGF0aWMgS2V5VmFsdWVNYXAg
cmV0cmlldmVLZXlWYWx1ZVBhaXJzKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlckNodW5rUmVhZGVyJiBi
dWZmZQogICAgICAgICB2YWx1ZS5hcHBlbmQobGluZS5zdWJzdHJpbmcoc2VtaUNvbG9uSW5kZXgg
KyAxKSk7CiAgICAgfQogICAgIC8vIFN0b3JlIHRoZSBsYXN0IHByb3BlcnR5IGlmIHRoZXJlIGlz
IG9uZS4KLSAgICBpZiAoIWtleS5pc0VtcHR5KCkpCi0gICAgICAgIGtleVZhbHVlUGFpcnMuc2V0
KGtleSwgdmFsdWUudG9TdHJpbmcoKS5zdHJpcFdoaXRlU3BhY2UoKSk7CisgICAgaWYgKCFrZXku
aXNFbXB0eSgpKSB7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHZhbHVlLnRvU3RyaW5nKCkp
CisgICAgICAgICAgICBrZXlWYWx1ZVBhaXJzLnNldChrZXksIHN0cmluZy0+c3RyaXBXaGl0ZVNw
YWNlKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOworICAgIH0KICAgICBy
ZXR1cm4ga2V5VmFsdWVQYWlyczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Byb3h5U2VydmVyLmNwcAppbmRleCBjNmQ2N2MyLi4wYzY5ZjRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3h5U2VydmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3h5U2VydmVyLmNwcApAQCAtNjgsNyAr
NjgsOSBAQCBTdHJpbmcgdG9TdHJpbmcoY29uc3QgVmVjdG9yPFByb3h5U2VydmVyPiYgcHJveHlT
ZXJ2ZXJzKQogICAgICAgICBhcHBlbmRQcm94eVNlcnZlclN0cmluZyhzdHJpbmdCdWlsZGVyLCBw
cm94eVNlcnZlcnNbaV0pOwogICAgIH0KIAotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsRGF0YWJh
c2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1
cmxEYXRhYmFzZS5jcHAKaW5kZXggNjcyYjI1MS4uYTRlNzRiMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmxEYXRhYmFzZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmxE
YXRhYmFzZS5jcHAKQEAgLTU3LDcgKzU3LDkgQEAgc3RhdGljIFN0cmluZyBjb29raWVzRm9yU2Vz
c2lvbihjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYKICAg
ICAgICAgICAgIGNvb2tpZXMuYXBwZW5kKHJlc3VsdC52YWx1ZSk7CiAgICAgICAgIH0KICAgICB9
Ci0gICAgcmV0dXJuIGNvb2tpZXMudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBj
b29raWVzLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIHZvaWQgQ29va2llSmFyQ3VybERhdGFiYXNlOjpzZXRDb29raWVzRnJvbURPTShjb25z
dCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgY29uc3QgU3RyaW5n
JiB2YWx1ZSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvbWFjL0Nvb2tpZUphck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
bWFjL0Nvb2tpZUphck1hYy5tbQppbmRleCBjMjY0MGJkLi4wMDA1ZGZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVKYXJNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQ29va2llSmFyTWFjLm1tCkBAIC0y
NjEsNyArMjYxLDEwIEBAIHN0YXRpYyBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9y
U2Vzc2lvbihjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlCiAgICAgICAgIGNvb2tpZXNC
dWlsZGVyLmFwcGVuZCgnPScpOwogICAgICAgICBjb29raWVzQnVpbGRlci5hcHBlbmQoW2Nvb2tp
ZSB2YWx1ZV0pOwogICAgIH0KLSAgICByZXR1cm4geyBjb29raWVzQnVpbGRlci50b1N0cmluZygp
LCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzIH07CisKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBjb29r
aWVzQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4geyAqc3RyaW5nLCBkaWRBY2Nl
c3NTZWN1cmVDb29raWVzIH07CisgICAgQ1JBU0goKTsKIAogICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CiAgICAgcmV0dXJuIHsgU3RyaW5nKCksIGZhbHNlIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcAppbmRleCA0ZGE3Y2Y2
Li4zODlkMmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9GaWxl
U3lzdGVtUE9TSVguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L0ZpbGVT
eXN0ZW1QT1NJWC5jcHAKQEAgLTMxMCw3ICszMTAsOSBAQCBTdHJpbmcgcGF0aEJ5QXBwZW5kaW5n
Q29tcG9uZW50cyhTdHJpbmdWaWV3IHBhdGgsIGNvbnN0IFZlY3RvcjxTdHJpbmdWaWV3PiYgY29t
cAogICAgICAgICBidWlsZGVyLmFwcGVuZCgnLycpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChj
b21wb25lbnQpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBtYWtlQWxsRGlyZWN0b3JpZXMoY29uc3QgU3Ry
aW5nJiBwYXRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EYXRl
VGltZUZvcm1hdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9y
bWF0LmNwcAppbmRleCBjNzVkMzNkLi5hMWVmYzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0LmNwcApAQCAtMTQ1LDcgKzE0NSwxMCBAQCBib29s
IERhdGVUaW1lRm9ybWF0OjpwYXJzZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgVG9rZW5IYW5kbGVy
JiB0b2tlbkhhbmRsZXIpCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChsaXRlcmFs
QnVmZmVyLmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICAgICAgdG9rZW5IYW5kbGVyLnZpc2l0TGl0
ZXJhbChsaXRlcmFsQnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IGxpdGVyYWxCdWZmZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAg
dG9rZW5IYW5kbGVyLnZpc2l0TGl0ZXJhbCgqc3RyaW5nKTsKKyAgICAgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAgICAgbGl0ZXJhbEJ1
ZmZlci5jbGVhcigpOwogICAgICAgICAgICAgfQogCkBAIC0xNjksNyArMTcyLDEwIEBAIGJvb2wg
RGF0ZVRpbWVGb3JtYXQ6OnBhcnNlKGNvbnN0IFN0cmluZyYgc291cmNlLCBUb2tlbkhhbmRsZXIm
IHRva2VuSGFuZGxlcikKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKGxpdGVyYWxC
dWZmZXIubGVuZ3RoKCkpIHsKLSAgICAgICAgICAgICAgICB0b2tlbkhhbmRsZXIudmlzaXRMaXRl
cmFsKGxpdGVyYWxCdWZmZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gbGl0ZXJhbEJ1ZmZlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgICAgICB0
b2tlbkhhbmRsZXIudmlzaXRMaXRlcmFsKCpzdHJpbmcpOworICAgICAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgICAgICBsaXRlcmFsQnVm
ZmVyLmNsZWFyKCk7CiAgICAgICAgICAgICB9CiAKQEAgLTIyMCwxNCArMjI2LDIyIEBAIGJvb2wg
RGF0ZVRpbWVGb3JtYXQ6OnBhcnNlKGNvbnN0IFN0cmluZyYgc291cmNlLCBUb2tlbkhhbmRsZXIm
IHRva2VuSGFuZGxlcikKICAgICBzd2l0Y2ggKHN0YXRlKSB7CiAgICAgY2FzZSBTdGF0ZUxpdGVy
YWw6CiAgICAgY2FzZSBTdGF0ZUluUXVvdGVRdW90ZToKLSAgICAgICAgaWYgKGxpdGVyYWxCdWZm
ZXIubGVuZ3RoKCkpCi0gICAgICAgICAgICB0b2tlbkhhbmRsZXIudmlzaXRMaXRlcmFsKGxpdGVy
YWxCdWZmZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChsaXRlcmFsQnVmZmVyLmxlbmd0aCgp
KSB7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBsaXRlcmFsQnVmZmVyLnRvU3RyaW5n
KCkpCisgICAgICAgICAgICAgICAgdG9rZW5IYW5kbGVyLnZpc2l0TGl0ZXJhbCgqc3RyaW5nKTsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CiAg
ICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgY2FzZSBTdGF0ZVF1b3RlOgogICAgIGNhc2UgU3Rh
dGVJblF1b3RlOgotICAgICAgICBpZiAobGl0ZXJhbEJ1ZmZlci5sZW5ndGgoKSkKLSAgICAgICAg
ICAgIHRva2VuSGFuZGxlci52aXNpdExpdGVyYWwobGl0ZXJhbEJ1ZmZlci50b1N0cmluZygpKTsK
KyAgICAgICAgaWYgKGxpdGVyYWxCdWZmZXIubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IGxpdGVyYWxCdWZmZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICB0
b2tlbkhhbmRsZXIudmlzaXRMaXRlcmFsKCpzdHJpbmcpOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIENSQVNIKCk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgY2FzZSBTdGF0ZVN5bWJvbDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L0RlY29kZUVzY2FwZVNlcXVlbmNlcy5oCmluZGV4IDE0Y2Y0MTUuLjcyYTBhNWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRGVjb2RlRXNjYXBlU2VxdWVu
Y2VzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EZWNvZGVFc2NhcGVTZXF1
ZW5jZXMuaApAQCAtNjQsNyArNjQsOSBAQCBzdHJ1Y3QgVW5pY29kZTE2Qml0RXNjYXBlU2VxdWVu
Y2UgewogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoY29kZVVuaXQpOwogICAgICAgICAgICAg
cnVuID0gcnVuLnN1YnN0cmluZyhzZXF1ZW5jZVNpemUpOwogICAgICAgICB9Ci0gICAgICAgIHJl
dHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFT
SCgpOwogICAgIH0KIH07CiAKQEAgLTE1MSw3ICsxNTMsOSBAQCBTdHJpbmcgZGVjb2RlRXNjYXBl
U2VxdWVuY2VzKFN0cmluZ1ZpZXcgc3RyaW5nLCBjb25zdCBUZXh0RW5jb2RpbmcmIGVuY29kaW5n
KQogICAgICAgICBkZWNvZGVkUG9zaXRpb24gPSBlbmNvZGVkUnVuRW5kOwogICAgIH0KICAgICBy
ZXN1bHQuYXBwZW5kKHN0cmluZy5zdWJzdHJpbmcoZGVjb2RlZFBvc2l0aW9uLCBsZW5ndGggLSBk
ZWNvZGVkUG9zaXRpb24pKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIGlubGluZSBWZWN0b3I8dWludDhfdD4gZGVjb2RlVVJMRXNj
YXBlU2VxdWVuY2VzQXNEYXRhKFN0cmluZ1ZpZXcgc3RyaW5nLCBjb25zdCBUZXh0RW5jb2Rpbmcm
IGVuY29kaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0
Zm9ybUxvY2FsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9j
YWxlLmNwcAppbmRleCAwODc0MzI1Li5hOWU1OGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxlLmNwcApAQCAtODMsNyArODMsOSBAQCBTdHJpbmcg
RGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjp6ZXJvUGFkU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5n
LCBzaXplX3Qgd2lkdGgpCiAgICAgZm9yIChzaXplX3QgaSA9IHN0cmluZy5sZW5ndGgoKTsgaSA8
IHdpZHRoOyArK2kpCiAgICAgICAgIHplcm9QYWRkZWRTdHJpbmdCdWlsZGVyLmFwcGVuZCgnMCcp
OwogICAgIHplcm9QYWRkZWRTdHJpbmdCdWlsZGVyLmFwcGVuZChzdHJpbmcpOwotICAgIHJldHVy
biB6ZXJvUGFkZGVkU3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHplcm9QYWRkZWRTdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjph
cHBlbmROdW1iZXIoaW50IG51bWJlciwgc2l6ZV90IHdpZHRoKQpAQCAtMTc1LDcgKzE3Nyw5IEBA
IHZvaWQgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjp2aXNpdExpdGVyYWwoY29uc3QgU3RyaW5nJiB0
ZXh0KQogCiBTdHJpbmcgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjp0b1N0cmluZygpCiB7Ci0gICAg
cmV0dXJuIG1fYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1fYnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiAjZW5kaWYKQEAgLTIzOCw3ICsyNDIsOSBAQCBTdHJpbmcgTG9jYWxlOjpjb252ZXJ0VG9M
b2NhbGl6ZWROdW1iZXIoY29uc3QgU3RyaW5nJiBpbnB1dCkKIAogICAgIGJ1aWxkZXIuYXBwZW5k
KGlzTmVnYXRpdmUgPyBtX25lZ2F0aXZlU3VmZml4IDogbV9wb3NpdGl2ZVN1ZmZpeCk7CiAKLSAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogc3RhdGljIGJvb2wgbWF0Y2hlcyhjb25zdCBTdHJpbmcmIHRleHQsIHVuc2lnbmVkIHBvc2l0
aW9uLCBjb25zdCBTdHJpbmcmIHBhcnQpCkBAIC0zMjEsNyArMzI3LDkgQEAgU3RyaW5nIExvY2Fs
ZTo6Y29udmVydEZyb21Mb2NhbGl6ZWROdW1iZXIoY29uc3QgU3RyaW5nJiBsb2NhbGl6ZWQpCiAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHN0YXRpY19jYXN0PFVDaGFy
PignMCcgKyBzeW1ib2xJbmRleCkpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogI2lmIEVOQUJMRShEQVRFX0FORF9U
SU1FX0lOUFVUX1RZUEVTKQpAQCAtMzYwLDcgKzM2OCw5IEBAIFN0cmluZyBMb2NhbGU6OmZvcm1h
dERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlLCBGb3JtYXRUeXBlIGZvcm1hdFR5
cGUpCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKICAgICB9
Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwCmluZGV4IGZmMzFiMmEuLjQ4Y2JhMGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmluZy5jcHAK
QEAgLTE1OSw3ICsxNTksOSBAQCBTdHJpbmcgU2VnbWVudGVkU3RyaW5nOjp0b1N0cmluZygpIGNv
bnN0CiAgICAgbV9jdXJyZW50U3Vic3RyaW5nLmFwcGVuZFRvKHJlc3VsdCk7CiAgICAgZm9yIChh
dXRvJiBzdWJzdHJpbmcgOiBtX290aGVyU3Vic3RyaW5ncykKICAgICAgICAgc3Vic3RyaW5nLmFw
cGVuZFRvKHJlc3VsdCk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiB2b2lkIFNlZ21lbnRlZFN0cmluZzo6YWR2YW5jZVdpdGhvdXRV
cGRhdGluZ0xpbmVOdW1iZXIxNigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L1RleHRDb2RlY0lDVS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1Rl
eHRDb2RlY0lDVS5jcHAKaW5kZXggZDJlMmFlNy4uNzYyMmNiMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNJQ1UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcApAQCAtMzE4LDEzICszMTgsMTQgQEAg
U3RyaW5nIFRleHRDb2RlY0lDVTo6ZGVjb2RlKGNvbnN0IGNoYXIqIGJ5dGVzLCBzaXplX3QgbGVu
Z3RoLCBib29sIGZsdXNoLCBib29sIHMKICAgICAgICAgc2F3RXJyb3IgPSB0cnVlOwogICAgIH0K
IAotICAgIFN0cmluZyByZXN1bHRTdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byByZXN1bHRTdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkgeworICAgICAgICAvLyBTaW1w
bGlmaWVkIENoaW5lc2UgcGFnZXMgdXNlIHRoZSBjb2RlIEEzQTAgdG8gbWVhbiAiZnVsbC13aWR0
aCBzcGFjZSIsIGJ1dCBJQ1UgZGVjb2RlcyBpdCBhcyBVK0U1RTUuCisgICAgICAgIGlmICghc3Ry
Y21wKG1fZW5jb2RpbmdOYW1lLCAiR0JLIikgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNh
c2UobV9lbmNvZGluZ05hbWUsICJnYjE4MDMwIikpCisgICAgICAgICAgICByZXN1bHRTdHJpbmct
PnJlcGxhY2UoMHhFNUU1LCBpZGVvZ3JhcGhpY1NwYWNlKTsKIAotICAgIC8vIFNpbXBsaWZpZWQg
Q2hpbmVzZSBwYWdlcyB1c2UgdGhlIGNvZGUgQTNBMCB0byBtZWFuICJmdWxsLXdpZHRoIHNwYWNl
IiwgYnV0IElDVSBkZWNvZGVzIGl0IGFzIFUrRTVFNS4KLSAgICBpZiAoIXN0cmNtcChtX2VuY29k
aW5nTmFtZSwgIkdCSyIpIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKG1fZW5jb2Rp
bmdOYW1lLCAiZ2IxODAzMCIpKQotICAgICAgICByZXN1bHRTdHJpbmcucmVwbGFjZSgweEU1RTUs
IGlkZW9ncmFwaGljU3BhY2UpOwotCi0gICAgcmV0dXJuIHJlc3VsdFN0cmluZzsKKyAgICAgICAg
cmV0dXJuICpyZXN1bHRTdHJpbmc7CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIC8vIFdlIG5l
ZWQgdG8gYXBwbHkgdGhlc2UgZmFsbGJhY2tzIG91cnNlbHZlcyBhcyB0aGV5IGFyZSBub3QgY3Vy
cmVudGx5IHN1cHBvcnRlZCBieSBJQ1UgYW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VzZXJEZWZpbmVkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvVGV4dENvZGVjVXNlckRlZmluZWQuY3BwCmluZGV4IDI5NmM0NjkuLmNiNzBl
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjVXNl
ckRlZmluZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVj
VXNlckRlZmluZWQuY3BwCkBAIC01Myw3ICs1Myw5IEBAIFN0cmluZyBUZXh0Q29kZWNVc2VyRGVm
aW5lZDo6ZGVjb2RlKGNvbnN0IGNoYXIqIGJ5dGVzLCBzaXplX3QgbGVuZ3RoLCBib29sLCBib29s
CiAgICAgICAgIHNpZ25lZCBjaGFyIGMgPSBieXRlc1tpXTsKICAgICAgICAgcmVzdWx0LmFwcGVu
ZChzdGF0aWNfY2FzdDxVQ2hhcj4oYyAmIDB4RjdGRikpOwogICAgIH0KLSAgICByZXR1cm4gcmVz
dWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBWZWN0
b3I8dWludDhfdD4gZW5jb2RlQ29tcGxleFVzZXJEZWZpbmVkKFN0cmluZ1ZpZXcgc3RyaW5nLCBV
bmVuY29kYWJsZUhhbmRsaW5nIGhhbmRsaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcAppbmRleCA2ZmY4OWVjLi4yYmM2
ZDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRp
bGl0aWVzV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJk
VXRpbGl0aWVzV2luLmNwcApAQCAtMzE0LDcgKzMxNCwxMCBAQCB2b2lkIHJlcGxhY2VOZXdsaW5l
c1dpdGhXaW5kb3dzU3R5bGVOZXdsaW5lcyhTdHJpbmcmIHN0cikKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIlxyXG4iKTsKICAgICB9Ci0gICAgc3RyID0g
cmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5n
KCkpCisgICAgICAgIHN0ciA9ICpzdHJpbmc7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwog
fQogCiB2b2lkIHJlcGxhY2VOQlNQV2l0aFNwYWNlKFN0cmluZyYgc3RyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1VzZXJBZ2VudFdpbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vVXNlckFnZW50V2luLmNwcAppbmRleCA4MjAxZjRlLi5kM2Q2OTRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vVXNlckFnZW50V2luLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vVXNlckFnZW50V2luLmNwcApAQCAt
NDYsNyArNDYsOSBAQCBTdHJpbmcgc3RhbmRhcmRVc2VyQWdlbnQoY29uc3QgU3RyaW5nJiBhcHBs
aWNhdGlvbk5hbWUsIGNvbnN0IFN0cmluZyYgYXBwbGljYXRpbwogICAgICAgICAgICAgdWFTdHJp
bmcuYXBwZW5kKGFwcGxpY2F0aW9uVmVyc2lvbik7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0
dXJuIHVhU3RyaW5nLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdWFTdHJpbmcu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAog
U3RyaW5nIHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKGNvbnN0IFVSTCYgdXJsKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcAppbmRleCAxYjJkNzUyLi4yZmU1ODYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcApAQCAtNTcsNyArNTcsOSBAQCBTdHJpbmcg
RE9NTWltZVR5cGU6OnN1ZmZpeGVzKCkgY29uc3QKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCcsJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGV4dGVuc2lvbnNbaV0pOwogICAgIH0KLSAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogU3RyaW5nIERPTU1pbWVUeXBlOjpkZXNjcmlwdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCBmYTBlNTdhLi5iYTljZDYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTQyOCw3ICs0MjgsOSBAQCBT
dHJpbmcgUmVuZGVyTGF5ZXI6Om5hbWUoKSBjb25zdAogICAgIGlmIChpc1JlZmxlY3Rpb24oKSkK
ICAgICAgICAgbmFtZS5hcHBlbmRMaXRlcmFsKCIgKHJlZmxlY3Rpb24pIik7CiAKLSAgICByZXR1
cm4gbmFtZS50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG5hbWUudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogUmVuZGVyTGF5
ZXJDb21wb3NpdG9yJiBSZW5kZXJMYXllcjo6Y29tcG9zaXRvcigpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDFj
NDA0N2QuLjU3MzMwZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC04NjMsNyArODYzLDEwIEBAIHZvaWQgUmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpsb2dMYXllckluZm8oY29uc3QgUmVuZGVyTGF5ZXImIGxheWVyLCBpbnQg
ZGVwdGgpCiAKICAgICBsb2dTdHJpbmcuYXBwZW5kKGxheWVyLm5hbWUoKSk7CiAKLSAgICBMT0co
Q29tcG9zaXRpbmcsICIlcyIsIGxvZ1N0cmluZy50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IGxvZ1N0cmluZy50b1N0cmluZygpKQorICAgICAgICBMT0co
Q29tcG9zaXRpbmcsICIlcyIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgZWxzZQorICAg
ICAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0TWFya2VyLmNwcAppbmRleCA5MDRmOTk0Li41N2IwMDMyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCkBAIC0xMTE3LDcgKzExMTcs
OSBAQCBTdHJpbmcgbGlzdE1hcmtlclRleHQoRUxpc3RTdHlsZVR5cGUgdHlwZSwgaW50IHZhbHVl
KQogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFJlbmRlckxpc3RNYXJrZXI6OlJl
bmRlckxpc3RNYXJrZXIoUmVuZGVyTGlzdEl0ZW0mIGxpc3RJdGVtLCBSZW5kZXJTdHlsZSYmIHN0
eWxlKQpAQCAtMTM2Myw3ICsxMzY1LDEwIEBAIHZvaWQgUmVuZGVyTGlzdE1hcmtlcjo6cGFpbnQo
UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNlCiAgICAg
ICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChzdWZmaXgpOwogICAgICAgICAgICAgICAgIGJ1ZmZl
ci5hcHBlbmQoc3BhY2UpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgdG9EcmF3ID0gYnVm
ZmVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWZmZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgICAgICAgICB0b0RyYXcgPSAqc3RyaW5nOworICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICBpZiAoc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCiAgICAgICAgICAgICAg
ICAgdG9EcmF3ID0gbV90ZXh0ICsgU3RyaW5nKCZzdWZmaXgsIDEpICsgU3RyaW5nKCZzcGFjZSwg
MSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKaW5kZXggOGZhNTFlMi4u
MTA1MjBmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcApAQCAtMTgx
LDcgKzE4MSw5IEBAIFN0cmluZyBjYXBpdGFsaXplKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBVQ2hh
ciBwcmV2aW91c0NoYXJhY3RlcikKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc3RyaW5nSW1w
bFtpIC0gMV0pOwogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KIAogaW5saW5lIFJlbmRlclRleHQ6OlJlbmRlclRleHQoTm9k
ZSYgbm9kZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtNzU2LDE2ICs3NTgsMTkgQEAgc3RhdGlj
IGZsb2F0IG1heFdvcmRGcmFnbWVudFdpZHRoKFJlbmRlclRleHQmIHJlbmRlcmVyLCBjb25zdCBS
ZW5kZXJTdHlsZSYgc3R5bGUKICAgICAgICAgZnJhZ21lbnRXaXRoSHlwaGVuLmFwcGVuZCh3b3Jk
LnN1YnN0cmluZyhzdWZmaXhTdGFydCwgZnJhZ21lbnRMZW5ndGgpKTsKICAgICAgICAgZnJhZ21l
bnRXaXRoSHlwaGVuLmFwcGVuZChzdHlsZS5oeXBoZW5TdHJpbmcoKSk7CiAKLSAgICAgICAgVGV4
dFJ1biBydW4gPSBSZW5kZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1bihmcmFnbWVudFdpdGhIeXBo
ZW4udG9TdHJpbmcoKSwgc3R5bGUpOwotICAgICAgICBydW4uc2V0Q2hhcmFjdGVyU2NhbkZvckNv
ZGVQYXRoKCFyZW5kZXJlci5jYW5Vc2VTaW1wbGVGb250Q29kZVBhdGgoKSk7Ci0gICAgICAgIGZs
b2F0IGZyYWdtZW50V2lkdGggPSBmb250LndpZHRoKHJ1biwgJmZhbGxiYWNrRm9udHMsICZnbHlw
aE92ZXJmbG93KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZnJhZ21lbnRXaXRoSHlwaGVu
LnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIFRleHRSdW4gcnVuID0gUmVuZGVyQmxvY2s6OmNv
bnN0cnVjdFRleHRSdW4oKnN0cmluZywgc3R5bGUpOworICAgICAgICAgICAgcnVuLnNldENoYXJh
Y3RlclNjYW5Gb3JDb2RlUGF0aCghcmVuZGVyZXIuY2FuVXNlU2ltcGxlRm9udENvZGVQYXRoKCkp
OworICAgICAgICAgICAgZmxvYXQgZnJhZ21lbnRXaWR0aCA9IGZvbnQud2lkdGgocnVuLCAmZmFs
bGJhY2tGb250cywgJmdseXBoT3ZlcmZsb3cpOwogCi0gICAgICAgIC8vIE5hcnJvdyBwcmVmaXhl
cyBhcmUgaWdub3JlZC4gU2VlIHRyeUh5cGhlbmF0aW5nIGluIFJlbmRlckJsb2NrTGluZUxheW91
dC5jcHAuCi0gICAgICAgIGlmIChmcmFnbWVudFdpZHRoIDw9IG1pbmltdW1GcmFnbWVudFdpZHRo
VG9Db25zaWRlcikKLSAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgLy8gTmFycm93
IHByZWZpeGVzIGFyZSBpZ25vcmVkLiBTZWUgdHJ5SHlwaGVuYXRpbmcgaW4gUmVuZGVyQmxvY2tM
aW5lTGF5b3V0LmNwcC4KKyAgICAgICAgICAgIGlmIChmcmFnbWVudFdpZHRoIDw9IG1pbmltdW1G
cmFnbWVudFdpZHRoVG9Db25zaWRlcikKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAg
ICAgICBzdWZmaXhTdGFydCArPSBmcmFnbWVudExlbmd0aDsKLSAgICAgICAgbWF4RnJhZ21lbnRX
aWR0aCA9IHN0ZDo6bWF4KG1heEZyYWdtZW50V2lkdGgsIGZyYWdtZW50V2lkdGgpOworICAgICAg
ICAgICAgc3VmZml4U3RhcnQgKz0gZnJhZ21lbnRMZW5ndGg7CisgICAgICAgICAgICBtYXhGcmFn
bWVudFdpZHRoID0gc3RkOjptYXgobWF4RnJhZ21lbnRXaWR0aCwgZnJhZ21lbnRXaWR0aCk7Cisg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICByZXR1cm4g
bWF4RnJhZ21lbnRXaWR0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlP
Uy5tbQppbmRleCA0ZmU4M2UwLi4yNTc4ZjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lSU9TLm1tCkBAIC0xMzYwLDcgKzEzNjAsMTAgQEAgU3RyaW5nIFJlbmRlclRo
ZW1lSU9TOjptZWRpYUNvbnRyb2xzU2NyaXB0KCkKICAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIg
c2NyaXB0QnVpbGRlcjsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kKFtOU1N0cmlu
ZyBzdHJpbmdXaXRoQ29udGVudHNPZkZpbGU6W2J1bmRsZSBwYXRoRm9yUmVzb3VyY2U6QCJtb2Rl
cm4tbWVkaWEtY29udHJvbHMtbG9jYWxpemVkLXN0cmluZ3MiIG9mVHlwZTpAImpzIl0gZW5jb2Rp
bmc6TlNVVEY4U3RyaW5nRW5jb2RpbmcgZXJyb3I6bmlsXSk7CiAgICAgICAgICAgICBzY3JpcHRC
dWlsZGVyLmFwcGVuZChbTlNTdHJpbmcgc3RyaW5nV2l0aENvbnRlbnRzT2ZGaWxlOltidW5kbGUg
cGF0aEZvclJlc291cmNlOkAibW9kZXJuLW1lZGlhLWNvbnRyb2xzIiBvZlR5cGU6QCJqcyIgaW5E
aXJlY3Rvcnk6QCJtb2Rlcm4tbWVkaWEtY29udHJvbHMiXSBlbmNvZGluZzpOU1VURjhTdHJpbmdF
bmNvZGluZyBlcnJvcjpuaWxdKTsKLSAgICAgICAgICAgIG1fbWVkaWFDb250cm9sc1NjcmlwdCA9
IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICBtX21lZGlhQ29udHJv
bHNTY3JpcHQgPSAqc3RyaW5nOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENS
QVNIKCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fbWVkaWFDb250cm9sc1NjcmlwdDsK
ICAgICB9CkBAIC0xMzczLDcgKzEzNzYsMTAgQEAgU3RyaW5nIFJlbmRlclRoZW1lSU9TOjptZWRp
YUNvbnRyb2xzU2NyaXB0KCkKICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQoW05TU3RyaW5n
IHN0cmluZ1dpdGhDb250ZW50c09mRmlsZTpbYnVuZGxlIHBhdGhGb3JSZXNvdXJjZTpAIm1lZGlh
Q29udHJvbHNBcHBsZSIgb2ZUeXBlOkAianMiXSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGlu
ZyBlcnJvcjpuaWxdKTsKICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQoW05TU3RyaW5nIHN0
cmluZ1dpdGhDb250ZW50c09mRmlsZTpbYnVuZGxlIHBhdGhGb3JSZXNvdXJjZTpAIm1lZGlhQ29u
dHJvbHNpT1MiIG9mVHlwZTpAImpzIl0gZW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmcgZXJy
b3I6bmlsXSk7CiAKLSAgICAgICAgbV9sZWdhY3lNZWRpYUNvbnRyb2xzU2NyaXB0ID0gc2NyaXB0
QnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzY3JpcHRCdWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBtX2xlZ2FjeU1lZGlhQ29udHJvbHNTY3JpcHQg
PSAqc3RyaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KICAg
ICByZXR1cm4gbV9sZWdhY3lNZWRpYUNvbnRyb2xzU2NyaXB0OwogI2Vsc2UKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwCmluZGV4IGRlZWExYTkuLjgzNmQwMWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcApAQCAtMTA5
NCw3ICsxMDk0LDEwIEBAIFN0cmluZyBSZW5kZXJUaGVtZVdpbjo6bWVkaWFDb250cm9sc1Njcmlw
dCgpCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgc2NyaXB0QnVpbGRlcjsKICAgICAgICAgc2NyaXB0
QnVpbGRlci5hcHBlbmQoc3RyaW5nV2l0aENvbnRlbnRzT2ZGaWxlKENGU1RSKCJtZWRpYUNvbnRy
b2xzTG9jYWxpemVkU3RyaW5ncyIpLCBDRlNUUigianMiKSkpOwogICAgICAgICBzY3JpcHRCdWls
ZGVyLmFwcGVuZChzdHJpbmdXaXRoQ29udGVudHNPZkZpbGUoQ0ZTVFIoIm1lZGlhQ29udHJvbHNB
cHBsZSIpLCBDRlNUUigianMiKSkpOwotICAgICAgICBtX21lZGlhQ29udHJvbHNTY3JpcHQgPSBz
Y3JpcHRCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHNjcmlw
dEJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIG1fbWVkaWFDb250cm9sc1NjcmlwdCA9
ICpzdHJpbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAg
IHJldHVybiBtX21lZGlhQ29udHJvbHNTY3JpcHQ7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCmluZGV4IDU1Y2RiNGIuLjg1Yzc4ZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKQEAgLTE3
MCw3ICsxNzAsOSBAQCBTdHJpbmcgcXVvdGVBbmRFc2NhcGVOb25QcmludGFibGVzKFN0cmluZ1Zp
ZXcgcykKICAgICAgICAgfQogICAgIH0KICAgICByZXN1bHQuYXBwZW5kKCciJyk7Ci0gICAgcmV0
dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lk
IFJlbmRlclRyZWVBc1RleHQ6OndyaXRlUmVuZGVyT2JqZWN0KFRleHRTdHJlYW0mIHRzLCBjb25z
dCBSZW5kZXJPYmplY3QmIG8sIFJlbmRlckFzVGV4dEJlaGF2aW9yIGJlaGF2aW9yKQpAQCAtODA3
LDcgKzgwOSw5IEBAIHN0YXRpYyBTdHJpbmcgbm9kZVBvc2l0aW9uKE5vZGUqIG5vZGUpCiAgICAg
ICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiZG9jdW1lbnQiKTsKICAgICB9CiAKLSAgICBy
ZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0
YXRpYyB2b2lkIHdyaXRlU2VsZWN0aW9uKFRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW5kZXJCb3gm
IHJlbmRlcmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9S
ZW5kZXJNYXRoTUxGZW5jZWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9S
ZW5kZXJNYXRoTUxGZW5jZWQuY3BwCmluZGV4IDg5YmIwNDAuLjhjNzg0ZTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5j
cHAKQEAgLTcxLDcgKzcxLDEwIEBAIHZvaWQgUmVuZGVyTWF0aE1MRmVuY2VkOjp1cGRhdGVGcm9t
RWxlbWVudCgpCiAgICAgICAgICAgICBpZiAoIWlzU3BhY2VPck5ld2xpbmUoc2VwYXJhdG9yc1tp
XSkpCiAgICAgICAgICAgICAgICAgY2hhcmFjdGVycy5hcHBlbmQoc2VwYXJhdG9yc1tpXSk7CiAg
ICAgICAgIH0KLSAgICAgICAgbV9zZXBhcmF0b3JzID0gIWNoYXJhY3RlcnMubGVuZ3RoKCkgPyAw
IDogY2hhcmFjdGVycy50b1N0cmluZygpLmltcGwoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5n
ID0gY2hhcmFjdGVycy50b1N0cmluZygpKQorICAgICAgICAgICAgbV9zZXBhcmF0b3JzID0gIWNo
YXJhY3RlcnMubGVuZ3RoKCkgPyAwIDogc3RyaW5nLT5pbXBsKCk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIENSQVNIKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gVGhlIHNlcGFyYXRv
ciBkZWZhdWx0cyB0byBhIHNpbmdsZSBjb21tYS4KICAgICAgICAgbV9zZXBhcmF0b3JzID0gU3Ry
aW5nSW1wbDo6Y3JlYXRlKCIsIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNYXRoTUwuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTWF0aE1MLmNwcAppbmRleCA1Y2I0
NzhiLi4yMGQyNTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRp
bmcvUmVuZGVyVHJlZUJ1aWxkZXJNYXRoTUwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlck1hdGhNTC5jcHAKQEAgLTkwLDcgKzkwLDEw
IEBAIHZvaWQgUmVuZGVyVHJlZUJ1aWxkZXI6Ok1hdGhNTDo6YXR0YWNoKFJlbmRlck1hdGhNTEZl
bmNlZCYgcGFyZW50LCBSZW5kZXJQdHI8UmVuCiAKICAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIg
c3RyaW5nQnVpbGRlcjsKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHNlcGFyYXRv
cik7Ci0gICAgICAgICAgICBzZXBhcmF0b3JSZW5kZXJlciA9IGNyZWF0ZU1hdGhNTE9wZXJhdG9y
KHBhcmVudCwgc3RyaW5nQnVpbGRlci50b1N0cmluZygpLCBNYXRoTUxPcGVyYXRvckRpY3Rpb25h
cnk6OkluZml4LCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OlNlcGFyYXRvcik7CisgICAgICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICAgICAgc2VwYXJhdG9yUmVuZGVyZXIgPSBjcmVhdGVNYXRoTUxPcGVyYXRvcihwYXJlbnQs
ICpzdHJpbmcsIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6SW5maXgsIE1hdGhNTE9wZXJhdG9y
RGljdGlvbmFyeTo6U2VwYXJhdG9yKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICBDUkFTSCgpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVu
Z3RoTGlzdFZhbHVlcy5jcHAKaW5kZXggYmEyMDY0OC4uMjBlYTNlMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmNwcApAQCAtNjMsNyArNjMsOSBAQCBTdHJpbmcg
U1ZHTGVuZ3RoTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKGF0KGkpLnZhbHVlQXNTdHJpbmcoKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmNwcAppbmRleCA2ZGZkOTkzLi44NzVi
ZTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuY3BwCkBAIC01
NSw3ICs1NSw5IEBAIFN0cmluZyBTVkdOdW1iZXJMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nKCkg
Y29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoYXQoaSkpOwogICAgIH0KIAotICAg
IHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFN0cmluZ0J1aWxkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTdHJpbmdCdWlsZGVyLmNwcAppbmRleCAx
MDUzOTFjLi45YzU3N2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFN0
cmluZ0J1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU3RyaW5nQnVp
bGRlci5jcHAKQEAgLTM3LDcgKzM3LDkgQEAgU3RyaW5nIFNWR1BhdGhTdHJpbmdCdWlsZGVyOjpy
ZXN1bHQoKQogCiAgICAgLy8gUmVtb3ZlIHRyYWlsaW5nIHNwYWNlLgogICAgIG1fc3RyaW5nQnVp
bGRlci5yZXNpemUoc2l6ZSAtIDEpOwotICAgIHJldHVybiBtX3N0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtX3N0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBTVkdQYXRo
U3RyaW5nQnVpbGRlcjo6aW5jcmVtZW50UGF0aFNlZ21lbnRDb3VudCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAKaW5kZXggY2Y5ZjAxNC4uY2M1NDMwNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcApAQCAtMTAxLDcgKzEwMSw5IEBAIFN0cmlu
ZyBidWlsZFN0cmluZ0Zyb21QYXRoKGNvbnN0IFBhdGgmIHBhdGgpCiAgICAgICAgIH0pOwogICAg
IH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBib29sIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZ0xpc3RW
YWx1ZXMoY29uc3QgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmIGxpc3QsIFNWR1BhdGhCeXRlU3RyZWFt
JiByZXN1bHQsIFBhdGhQYXJzaW5nTW9kZSBwYXJzaW5nTW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BvaW50TGlzdFZhbHVlcy5jcHAKaW5kZXggZDgxZTZhMi4uZDhiZGVlNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHAKQEAgLTQxLDcgKzQxLDkgQEAgU3Ry
aW5nIFNWR1BvaW50TGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kTnVtYmVyKHBvaW50LnkoKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmNwcAppbmRleCAzZmY4OThhLi44YzYxZjE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdFZhbHVlcy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuY3BwCkBAIC03Myw3
ICs3Myw5IEBAIFN0cmluZyBTVkdTdHJpbmdMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nKCkgY29u
c3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoYXQoaSkpOwogICAgIH0KIAotICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAKaW5kZXggMjViM2Mz
MS4uNmI0MmQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxp
c3RWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFs
dWVzLmNwcApAQCAtNjgsNyArNjgsOSBAQCBTdHJpbmcgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlczo6
dmFsdWVBc1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGF0KGkpLnZhbHVl
QXNTdHJpbmcoKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlczo6
cGFyc2UoY29uc3QgU3RyaW5nJiB0cmFuc2Zvcm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVHJhbnNmb3JtVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5z
Zm9ybVZhbHVlLmNwcAppbmRleCA2M2Q0NWE1Li5lYTE0NjNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5jcHAKQEAgLTE3OSw3ICsxNzksOSBAQCBTdHJpbmcgU1ZHVHJh
bnNmb3JtVmFsdWU6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVu
ZCgnICcpOwogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX21hdHJpeC5mKCkpOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZCgnKScpOwotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmlu
ZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgY2Fz
ZSBTVkdfVFJBTlNGT1JNX1RSQU5TTEFURTogewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7CkBAIC0xODgsNyArMTkwLDkgQEAgU3RyaW5nIFNWR1RyYW5zZm9ybVZhbHVlOjp2YWx1ZUFz
U3RyaW5nKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICAgICAgYnVp
bGRlci5hcHBlbmROdW1iZXIobV9tYXRyaXguZigpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
JyknKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIGNhc2UgU1ZHX1RSQU5TRk9STV9TQ0FM
RTogewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CkBAIC0xOTcsNyArMjAxLDkgQEAg
U3RyaW5nIFNWR1RyYW5zZm9ybVZhbHVlOjp2YWx1ZUFzU3RyaW5nKCkgY29uc3QKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV9tYXRy
aXgueVNjYWxlKCkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnKScpOwotICAgICAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0go
KTsKICAgICB9CiAgICAgY2FzZSBTVkdfVFJBTlNGT1JNX1JPVEFURTogewogICAgICAgICBkb3Vi
bGUgYW5nbGVJblJhZCA9IGRlZzJyYWQobV9hbmdsZSk7CkBAIC0yMTUsNyArMjIxLDkgQEAgU3Ry
aW5nIFNWR1RyYW5zZm9ybVZhbHVlOjp2YWx1ZUFzU3RyaW5nKCkgY29uc3QKICAgICAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGN5KTsKICAgICAgICAgfQogICAgICAgICBidWlsZGVyLmFw
cGVuZCgnKScpOwotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgY2FzZSBTVkdfVFJBTlNGT1JN
X1NLRVdYOgogICAgIGNhc2UgU1ZHX1RSQU5TRk9STV9TS0VXWTogewpAQCAtMjIzLDcgKzIzMSw5
IEBAIFN0cmluZyBTVkdUcmFuc2Zvcm1WYWx1ZTo6dmFsdWVBc1N0cmluZygpIGNvbnN0CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKHByZWZpeCk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVy
KG1fYW5nbGUpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnKScpOwotICAgICAgICByZXR1cm4g
YnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsK
ICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdQcm9wZXJ0eVRyYWl0cy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
UHJvcGVydHlUcmFpdHMuaAppbmRleCBhMjMyN2U2Li44MDBhYmQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmgKQEAgLTE0Myw3ICsx
NDMsOSBAQCBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRQb2ludD4gewogICAgICAgICBi
dWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLngoKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcg
Jyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUueSgpKTsKLSAgICAgICAgcmV0
dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNI
KCk7CiAgICAgfQogfTsKIApAQCAtMTc0LDcgKzE3Niw5IEBAIHN0cnVjdCBTVkdQcm9wZXJ0eVRy
YWl0czxGbG9hdFJlY3Q+IHsKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS53aWR0
aCgpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICAgICAgYnVpbGRlci5hcHBl
bmROdW1iZXIodHlwZS5oZWlnaHQoKSk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA4MWE0MDA5Li4wYzI0MDQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xNTQwLDcgKzE1NDAsOSBAQCBFeGNl
cHRpb25PcjxTdHJpbmc+IEludGVybmFsczo6ZHVtcE1hcmtlclJlY3RzKGNvbnN0IFN0cmluZyYg
bWFya2VyVHlwZVN0cmluZykKICAgICAgICAgcmVjdFN0cmluZy5hcHBlbmROdW1iZXIocmVjdC5o
ZWlnaHQoKSk7CiAgICAgICAgIHJlY3RTdHJpbmcuYXBwZW5kTGl0ZXJhbCgiKSAiKTsKICAgICB9
Ci0gICAgcmV0dXJuIHJlY3RTdHJpbmcudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSByZWN0U3RyaW5nLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBXVEZNb3ZlKCpzdHJpbmcp
OworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW50ZXJuYWxzOjphZGRUZXh0TWF0Y2hNYXJrZXIo
Y29uc3QgUmFuZ2UmIHJhbmdlLCBib29sIGlzQWN0aXZlKQpAQCAtMjA3OSw3ICsyMDgxLDkgQEAg
U3RyaW5nIEludGVybmFsczo6cGFyc2VyTWV0YURhdGEoSlNDOjpKU1ZhbHVlIGNvZGUpCiAgICAg
cmVzdWx0LmFwcGVuZE51bWJlcihlbmRDb2x1bW4pOwogICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFs
KCIgfSIpOwogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBD
UkFTSCgpOwogfQogCiB2b2lkIEludGVybmFsczo6dXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxl
ZCgpCkBAIC0zMDcxLDcgKzMwNzUsOSBAQCBFeGNlcHRpb25PcjxTdHJpbmc+IEludGVybmFsczo6
Z2V0Q3VycmVudEN1cnNvckluZm8oKQogICAgICAgICByZXN1bHQuYXBwZW5kKG51bWJlclRvRml4
ZWRQcmVjaXNpb25TdHJpbmcoY3Vyc29yLmltYWdlU2NhbGVGYWN0b3IoKSwgOCwgYnVmZmVyLCB0
cnVlKSk7CiAgICAgfQogI2VuZGlmCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gV1RG
TW92ZSgqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogI2Vsc2UKICAgICByZXR1cm4gU3RyaW5nIHsg
IkZBSUw6IEN1cnNvciBkZXRhaWxzIG5vdCBhdmFpbGFibGUgb24gdGhpcyBwbGF0Zm9ybS4iIH07
CiAjZW5kaWYKQEAgLTM1MTQsNyArMzUyMCw5IEBAIEV4Y2VwdGlvbk9yPFN0cmluZz4gSW50ZXJu
YWxzOjptZWRpYVNlc3Npb25SZXN0cmljdGlvbnMoY29uc3QgU3RyaW5nJiBtZWRpYVR5cGVTCiAg
ICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnLCcpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgi
aW50ZXJydXB0ZWRwbGF5YmFja25vdHBlcm1pdHRlZCIpOwogICAgIH0KLSAgICByZXR1cm4gYnVp
bGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuIFdURk1vdmUoKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAog
dm9pZCBJbnRlcm5hbHM6OnNldE1lZGlhRWxlbWVudFJlc3RyaWN0aW9ucyhIVE1MTWVkaWFFbGVt
ZW50JiBlbGVtZW50LCBTdHJpbmdWaWV3IHJlc3RyaWN0aW9uc1N0cmluZykKQEAgLTM3NTUsNDgg
KzM3NjMsNTAgQEAgU3RyaW5nIEludGVybmFsczo6cGFnZU1lZGlhU3RhdGUoKQogICAgICAgICBy
ZXR1cm4gZW1wdHlTdHJpbmcoKTsKIAogICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGVGbGFncyBzdGF0ZSA9IGRvY3VtZW50LT5wYWdlKCktPm1lZGlhU3RhdGUoKTsKLSAgICBT
dHJpbmdCdWlsZGVyIHN0cmluZzsKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgaWYg
KHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5nQXVkaW8pCi0gICAgICAgIHN0cmluZy5h
cHBlbmQoIklzUGxheWluZ0F1ZGlvLCIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiSXNQbGF5
aW5nQXVkaW8sIik7CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5nVmlk
ZW8pCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIklzUGxheWluZ1ZpZGVvLCIpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZCgiSXNQbGF5aW5nVmlkZW8sIik7CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQ
cm9kdWNlcjo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSkKLSAgICAgICAgc3RyaW5nLmFwcGVu
ZCgiSXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSwiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQo
IklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UsIik7CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9k
dWNlcjo6UmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcpCi0gICAgICAgIHN0cmluZy5h
cHBlbmQoIlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nLCIpOworICAgICAgICBidWls
ZGVyLmFwcGVuZCgiUmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcsIik7CiAgICAgaWYg
KHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSkK
LSAgICAgICAgc3RyaW5nLmFwcGVuZCgiRXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSwi
KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRh
dGUsIik7CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6RGlkUGxheVRvRW5kKQotICAg
ICAgICBzdHJpbmcuYXBwZW5kKCJEaWRQbGF5VG9FbmQsIik7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCJEaWRQbGF5VG9FbmQsIik7CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SXNT
b3VyY2VFbGVtZW50UGxheWluZykKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNTb3VyY2VFbGVt
ZW50UGxheWluZywiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIklzU291cmNlRWxlbWVudFBs
YXlpbmcsIik7CiAKICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpJc05leHRUcmFja0Nv
bnRyb2xFbmFibGVkKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc05leHRUcmFja0NvbnRyb2xF
bmFibGVkLCIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiSXNOZXh0VHJhY2tDb250cm9sRW5h
YmxlZCwiKTsKICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpJc1ByZXZpb3VzVHJhY2tD
b250cm9sRW5hYmxlZCkKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNQcmV2aW91c1RyYWNrQ29u
dHJvbEVuYWJsZWQsIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJJc1ByZXZpb3VzVHJhY2tD
b250cm9sRW5hYmxlZCwiKTsKIAogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6Okhhc1Bs
YXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpCi0gICAgICAgIHN0cmluZy5hcHBlbmQo
Ikhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIsIik7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCJIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyLCIpOwogICAg
IGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6Okhhc0F1ZGlvT3JWaWRlbykKLSAgICAgICAgc3Ry
aW5nLmFwcGVuZCgiSGFzQXVkaW9PclZpZGVvLCIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgi
SGFzQXVkaW9PclZpZGVvLCIpOwogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6Okhhc0Fj
dGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzQWN0aXZl
QXVkaW9DYXB0dXJlRGV2aWNlLCIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiSGFzQWN0aXZl
QXVkaW9DYXB0dXJlRGV2aWNlLCIpOwogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6Okhh
c0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSkKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzQWN0
aXZlVmlkZW9DYXB0dXJlRGV2aWNlLCIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiSGFzQWN0
aXZlVmlkZW9DYXB0dXJlRGV2aWNlLCIpOwogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6
Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNN
dXRlZEF1ZGlvQ2FwdHVyZURldmljZSwiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIkhhc011
dGVkQXVkaW9DYXB0dXJlRGV2aWNlLCIpOwogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6
Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNN
dXRlZFZpZGVvQ2FwdHVyZURldmljZSwiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIkhhc011
dGVkVmlkZW9DYXB0dXJlRGV2aWNlLCIpOwogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6
Okhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCkKLSAgICAgICAgc3RyaW5nLmFwcGVu
ZCgiSGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50LCIpOworICAgICAgICBidWlsZGVy
LmFwcGVuZCgiSGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50LCIpOwogCi0gICAgaWYg
KHN0cmluZy5pc0VtcHR5KCkpCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIklzTm90UGxheWluZyIp
OworICAgIGlmIChidWlsZGVyLmlzRW1wdHkoKSkKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIklz
Tm90UGxheWluZyIpOwogICAgIGVsc2UKLSAgICAgICAgc3RyaW5nLnJlc2l6ZShzdHJpbmcubGVu
Z3RoKCkgLSAxKTsKKyAgICAgICAgYnVpbGRlci5yZXNpemUoYnVpbGRlci5sZW5ndGgoKSAtIDEp
OwogCi0gICAgcmV0dXJuIHN0cmluZy50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogdm9pZCBJbnRlcm5hbHM6OnNldFBhZ2VEZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJz
TG9hZGluZykKQEAgLTM5MTgsNyArMzkyOCw5IEBAIEV4Y2VwdGlvbk9yPFN0cmluZz4gSW50ZXJu
YWxzOjpzY3JvbGxTbmFwT2Zmc2V0cyhFbGVtZW50JiBlbGVtZW50KQogICAgICAgICB9CiAgICAg
fQogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gV1RGTW92ZSgqc3RyaW5nKTsKKyAg
ICBDUkFTSCgpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9j
a1BhZ2VPdmVybGF5Q2xpZW50LmNwcAppbmRleCBlNWE2Y2ZlLi5mNGEzY2U3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwCkBAIC05OCw3
ICs5OCwxMCBAQCB2b2lkIE1vY2tQYWdlT3ZlcmxheUNsaWVudDo6ZHJhd1JlY3QoUGFnZU92ZXJs
YXkmIG92ZXJsYXksIEdyYXBoaWNzQ29udGV4dCYgY29udAogICAgIG1lc3NhZ2UuYXBwZW5kTGl0
ZXJhbCgiLCAiKTsKICAgICBtZXNzYWdlLmFwcGVuZE51bWJlcihkaXJ0eVJlY3QuaGVpZ2h0KCkp
OwogICAgIG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiKSIpOwotICAgIG92ZXJsYXkucGFnZSgpLT5t
YWluRnJhbWUoKS5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpP
dGhlciwgTWVzc2FnZUxldmVsOjpEZWJ1ZywgbWVzc2FnZS50b1N0cmluZygpKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBtZXNzYWdlLnRvU3RyaW5nKCkpCisgICAgICAgIG92ZXJsYXkucGFnZSgp
LT5tYWluRnJhbWUoKS5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNl
OjpPdGhlciwgTWVzc2FnZUxldmVsOjpEZWJ1ZywgKnN0cmluZyk7CisgICAgZWxzZQorICAgICAg
ICBDUkFTSCgpOwogCiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNv
bnRleHQpOwogCkBAIC0xMjMsNyArMTI2LDEwIEBAIGJvb2wgTW9ja1BhZ2VPdmVybGF5Q2xpZW50
Ojptb3VzZUV2ZW50KFBhZ2VPdmVybGF5JiBvdmVybGF5LCBjb25zdCBQbGF0Zm9ybU1vdXNlCiAg
ICAgbWVzc2FnZS5hcHBlbmRMaXRlcmFsKCIsICIpOwogICAgIG1lc3NhZ2UuYXBwZW5kTnVtYmVy
KGV2ZW50LnBvc2l0aW9uKCkueSgpKTsKICAgICBtZXNzYWdlLmFwcGVuZExpdGVyYWwoIikiKTsK
LSAgICBvdmVybGF5LnBhZ2UoKS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1l
c3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6RGVidWcsIG1lc3NhZ2Uu
dG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWVzc2FnZS50b1N0cmluZygpKQor
ICAgICAgICBvdmVybGF5LnBhZ2UoKS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKS0+YWRkQ29uc29s
ZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6RGVidWcsICpzdHJp
bmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIHJldHVybiBmYWxzZTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcAppbmRleCA1
YjM0MGZmLi40NGU0ZTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clNjcmlwdExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3Jp
cHRMb2FkZXIuY3BwCkBAIC0yMDIsNyArMjAyLDkgQEAgdm9pZCBXb3JrZXJTY3JpcHRMb2FkZXI6
Om5vdGlmeUVycm9yKCkKIAogU3RyaW5nIFdvcmtlclNjcmlwdExvYWRlcjo6c2NyaXB0KCkKIHsK
LSAgICByZXR1cm4gbV9zY3JpcHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBt
X3NjcmlwdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogCiB2b2lkIFdvcmtlclNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEVycm9ycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MRXJyb3JzLmNwcAppbmRleCBiMTQzMmQxLi4xNTMxOWY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MRXJyb3JzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1M
RXJyb3JzLmNwcApAQCAtMTQ4LDggKzE0OCwxMSBAQCB2b2lkIFhNTEVycm9yczo6aW5zZXJ0RXJy
b3JNZXNzYWdlQmxvY2soKQogICAgICAgICBkb2N1bWVudEVsZW1lbnQgPSBXVEZNb3ZlKGJvZHkp
OwogICAgIH0KIAotICAgIFN0cmluZyBlcnJvck1lc3NhZ2VzID0gbV9lcnJvck1lc3NhZ2VzLnRv
U3RyaW5nKCk7Ci0gICAgYXV0byByZXBvcnRFbGVtZW50ID0gY3JlYXRlWEhUTUxQYXJzZXJFcnJv
ckhlYWRlcihtX2RvY3VtZW50LCBlcnJvck1lc3NhZ2VzKTsKKyAgICBhdXRvIHJlcG9ydEVsZW1l
bnQgPSBjcmVhdGVYSFRNTFBhcnNlckVycm9ySGVhZGVyKG1fZG9jdW1lbnQsIFsmXSAoKSB7Cisg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IG1fZXJyb3JNZXNzYWdlcy50b1N0cmluZygpKQorICAg
ICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CisgICAgfSgpKTsKIAog
I2lmIEVOQUJMRShYU0xUKQogICAgIGlmIChtX2RvY3VtZW50LnRyYW5zZm9ybVNvdXJjZURvY3Vt
ZW50KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IDE5ZTVhZTQu
Ljc2YjlmZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtMTk1LDcg
KzE5NSwxMCBAQCBFeGNlcHRpb25PcjxEb2N1bWVudCo+IFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25z
ZVhNTCgpCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbV9yZXNwb25zZURvY3Vt
ZW50ID0gWE1MRG9jdW1lbnQ6OmNyZWF0ZSgwLCBtX3VybCk7CiAgICAgICAgICAgICAvLyBGSVhN
RTogU2V0IExhc3QtTW9kaWZpZWQuCi0gICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQtPnNl
dENvbnRlbnQobV9yZXNwb25zZUJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOwor
ICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gbV9yZXNwb25zZUJ1aWxkZXIudG9TdHJpbmdQ
cmVzZXJ2ZUNhcGFjaXR5KCkpCisgICAgICAgICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50LT5z
ZXRDb250ZW50KCpzdHJpbmcpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENS
QVNIKCk7CiAgICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQtPnNldENvbnRleHREb2N1bWVu
dChkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpOwogICAgICAg
ICAgICAgbV9yZXNwb25zZURvY3VtZW50LT5zZXRTZWN1cml0eU9yaWdpblBvbGljeShzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luUG9saWN5KCkpOwogICAgICAgICAgICAg
bV9yZXNwb25zZURvY3VtZW50LT5vdmVycmlkZU1JTUVUeXBlKG1pbWVUeXBlKTsKQEAgLTgxNywx
NCArODIwLDIwIEBAIFN0cmluZyBYTUxIdHRwUmVxdWVzdDo6Z2V0QWxsUmVzcG9uc2VIZWFkZXJz
KCkgY29uc3QKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiOiAiKTsK
ICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGhlYWRlci52YWx1ZSk7CiAgICAgICAg
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIlxyXG4iKTsKLSAgICAgICAgICAgIGhl
YWRlcnMudW5jaGVja2VkQXBwZW5kKHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICAgICAgaGVhZGVycy51bmNoZWNrZWRBcHBlbmQoKnN0cmluZyk7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgICAgICBzdGQ6OnNv
cnQoaGVhZGVycy5iZWdpbigpLCBoZWFkZXJzLmVuZCgpLCBXVEY6OmNvZGVQb2ludENvbXBhcmVM
ZXNzVGhhbik7CiAKICAgICAgICAgU3RyaW5nQnVpbGRlciBzdHJpbmdCdWlsZGVyOwogICAgICAg
ICBmb3IgKGF1dG8mIGhlYWRlciA6IGhlYWRlcnMpCiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZChoZWFkZXIpOwotICAgICAgICBtX2FsbFJlc3BvbnNlSGVhZGVycyA9IHN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICAgICAgbV9hbGxSZXNwb25zZUhlYWRlcnMgPSAqc3RyaW5n
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIHJldHVy
biBtX2FsbFJlc3BvbnNlSGVhZGVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKaW5k
ZXggMWVlYzE1OC4uNTNiNGY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKQEAg
LTg3LDcgKzg3LDEyIEBAIHB1YmxpYzoKICAgICBTdHJpbmcgZ2V0QWxsUmVzcG9uc2VIZWFkZXJz
KCkgY29uc3Q7CiAgICAgU3RyaW5nIGdldFJlc3BvbnNlSGVhZGVyKGNvbnN0IFN0cmluZyYgbmFt
ZSkgY29uc3Q7CiAgICAgRXhjZXB0aW9uT3I8T3duZWRTdHJpbmc+IHJlc3BvbnNlVGV4dCgpOwot
ICAgIFN0cmluZyByZXNwb25zZVRleHRJZ25vcmluZ1Jlc3BvbnNlVHlwZSgpIGNvbnN0IHsgcmV0
dXJuIG1fcmVzcG9uc2VCdWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOyB9CisgICAg
U3RyaW5nIHJlc3BvbnNlVGV4dElnbm9yaW5nUmVzcG9uc2VUeXBlKCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IG1fcmVzcG9uc2VCdWlsZGVyLnRvU3RyaW5nUHJlc2Vy
dmVDYXBhY2l0eSgpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNI
KCk7CisgICAgfQogICAgIFN0cmluZyByZXNwb25zZU1JTUVUeXBlKCkgY29uc3Q7CiAKICAgICBE
b2N1bWVudCogb3B0aW9uYWxSZXNwb25zZVhNTCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VE
b2N1bWVudC5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRnVu
Y3Rpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEZ1bmN0aW9ucy5jcHAKaW5kZXgg
NzM1MzRhNC4uZjdkY2E5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEZ1
bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRnVuY3Rpb25zLmNwcApA
QCAtMzA4LDkgKzMwOCwxMSBAQCBzdGF0aWMgQXRvbWljU3RyaW5nIGF0b21pY1N1YnN0cmluZyhT
dHJpbmdCdWlsZGVyJiBidWlsZGVyLCB1bnNpZ25lZCBzdGFydCwgdW5zaQogewogICAgIEFTU0VS
VChzdGFydCA8PSBidWlsZGVyLmxlbmd0aCgpKTsKICAgICBBU1NFUlQobGVuZ3RoIDw9IGJ1aWxk
ZXIubGVuZ3RoKCkgLSBzdGFydCk7CisgICAgaWYgKGJ1aWxkZXIuZmFpbGVkKCkpCisgICAgICAg
IENSQVNIKCk7CiAgICAgaWYgKGJ1aWxkZXIuaXM4Qml0KCkpCi0gICAgICAgIHJldHVybiBBdG9t
aWNTdHJpbmcoYnVpbGRlci5jaGFyYWN0ZXJzOCgpICsgc3RhcnQsIGxlbmd0aCk7Ci0gICAgcmV0
dXJuIEF0b21pY1N0cmluZyhidWlsZGVyLmNoYXJhY3RlcnMxNigpICsgc3RhcnQsIGxlbmd0aCk7
CisgICAgICAgIHJldHVybiBBdG9taWNTdHJpbmcoKmJ1aWxkZXIuY2hhcmFjdGVyczgoKSArIHN0
YXJ0LCBsZW5ndGgpOworICAgIHJldHVybiBBdG9taWNTdHJpbmcoKmJ1aWxkZXIuY2hhcmFjdGVy
czE2KCkgKyBzdGFydCwgbGVuZ3RoKTsKIH0KIAogVmFsdWUgRnVuSWQ6OmV2YWx1YXRlKCkgY29u
c3QKQEAgLTMzNCwxNCArMzM2LDE3IEBAIFZhbHVlIEZ1bklkOjpldmFsdWF0ZSgpIGNvbnN0CiAg
ICAgdW5zaWduZWQgc3RhcnRQb3MgPSAwOwogICAgIHVuc2lnbmVkIGxlbmd0aCA9IGlkTGlzdC5s
ZW5ndGgoKTsKICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICB3aGlsZSAoc3RhcnRQb3MgPCBs
ZW5ndGggJiYgaXNXaGl0ZXNwYWNlKGlkTGlzdFtzdGFydFBvc10pKQorICAgICAgICBpZiAoaWRM
aXN0LmZhaWxlZCgpKQorICAgICAgICAgICAgQ1JBU0goKTsKKworICAgICAgICB3aGlsZSAoc3Rh
cnRQb3MgPCBsZW5ndGggJiYgaXNXaGl0ZXNwYWNlKCppZExpc3Rbc3RhcnRQb3NdKSkKICAgICAg
ICAgICAgICsrc3RhcnRQb3M7CiAgICAgICAgIAogICAgICAgICBpZiAoc3RhcnRQb3MgPT0gbGVu
Z3RoKQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgc2l6ZV90IGVuZFBvcyA9IHN0YXJ0
UG9zOwotICAgICAgICB3aGlsZSAoZW5kUG9zIDwgbGVuZ3RoICYmICFpc1doaXRlc3BhY2UoaWRM
aXN0W2VuZFBvc10pKQorICAgICAgICB3aGlsZSAoZW5kUG9zIDwgbGVuZ3RoICYmICFpc1doaXRl
c3BhY2UoKmlkTGlzdFtlbmRQb3NdKSkKICAgICAgICAgICAgICsrZW5kUG9zOwogCiAgICAgICAg
IC8vIElmIHRoZXJlIGFyZSBzZXZlcmFsIG5vZGVzIHdpdGggdGhlIHNhbWUgaWQsIGlkKCkgc2hv
dWxkIHJldHVybiB0aGUgZmlyc3Qgb25lLgpAQCAtNDM3LDcgKzQ0Miw5IEBAIFZhbHVlIEZ1bkNv
bmNhdDo6ZXZhbHVhdGUoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKHN0cik7CiAgICAg
fQogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogCiBWYWx1ZSBGdW5TdGFydHNXaXRoOjpldmFsdWF0ZSgpIGNvbnN0CkBAIC01NTYsNyAr
NTYzLDkgQEAgVmFsdWUgRnVuVHJhbnNsYXRlOjpldmFsdWF0ZSgpIGNvbnN0CiAgICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKHMzW2kyXSk7CiAgICAgfQogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBWYWx1ZSBGdW5Cb29sZWFuOjpl
dmFsdWF0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nl
c3NvckxpYnhzbHQuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0
LmNwcAppbmRleCA2NmFkMTVmLi44ZTVlMDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xU
UHJvY2Vzc29yTGlieHNsdC5jcHAKQEAgLTE5NywxMiArMTk3LDE4IEBAIHN0YXRpYyBib29sIHNh
dmVSZXN1bHRUb1N0cmluZyh4bWxEb2NQdHIgcmVzdWx0RG9jLCB4c2x0U3R5bGVzaGVldFB0ciBz
aGVldCwgU3RyCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIFdvcmthcm91bmQgZm9y
IDxodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD00OTU2Njg+OiBsaWJ4
c2x0IGFwcGVuZHMgYW4gZXh0cmEgbGluZSBmZWVkIHRvIHRoZSByZXN1bHQuCi0gICAgaWYgKHJl
c3VsdEJ1aWxkZXIubGVuZ3RoKCkgPiAwICYmIHJlc3VsdEJ1aWxkZXJbcmVzdWx0QnVpbGRlci5s
ZW5ndGgoKSAtIDFdID09ICdcbicpCisgICAgaWYgKHJlc3VsdEJ1aWxkZXIubGVuZ3RoKCkgPiAw
KSB7CisgICAgICAgIGlmIChyZXN1bHRCdWlsZGVyLmZhaWxlZCgpKQorICAgICAgICAgICAgQ1JB
U0goKTsKKyAgICAgICAgaWYgKCpyZXN1bHRCdWlsZGVyW3Jlc3VsdEJ1aWxkZXIubGVuZ3RoKCkg
LSAxXSA9PSAnXG4nKQogICAgICAgICByZXN1bHRCdWlsZGVyLnJlc2l6ZShyZXN1bHRCdWlsZGVy
Lmxlbmd0aCgpIC0gMSk7CisgICAgfQogCi0gICAgcmVzdWx0U3RyaW5nID0gcmVzdWx0QnVpbGRl
ci50b1N0cmluZygpOwotCi0gICAgcmV0dXJuIHRydWU7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
cmVzdWx0QnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIHJlc3VsdFN0cmluZyA9ICpzdHJp
bmc7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiBzdGF0
aWMgY29uc3QgY2hhcioqIHhzbHRQYXJhbUFycmF5RnJvbVBhcmFtZXRlck1hcChYU0xUUHJvY2Vz
c29yOjpQYXJhbWV0ZXJNYXAmIHBhcmFtZXRlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS94bWwvcGFyc2VyL0NoYXJhY3RlclJlZmVyZW5jZVBhcnNlcklubGluZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9wYXJzZXIvQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VySW5saW5lcy5oCmluZGV4
IDc2ODYyNjguLjY3MmJhZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIv
Q2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VySW5saW5lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9wYXJzZXIvQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VySW5saW5lcy5oCkBAIC0zMiw3ICszMiwx
MCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGlubGluZSB2b2lkIHVuY29uc3VtZUNoYXJhY3Rl
cnMoU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIFN0cmluZ0J1aWxkZXImIGNvbnN1bWVkQ2hhcmFj
dGVycykKIHsKLSAgICBzb3VyY2UucHVzaEJhY2soY29uc3VtZWRDaGFyYWN0ZXJzLnRvU3RyaW5n
KCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGNvbnN1bWVkQ2hhcmFjdGVycy50b1N0cmluZygp
KQorICAgICAgICBzb3VyY2UucHVzaEJhY2soV1RGTW92ZSgqc3RyaW5nKSk7CisgICAgZWxzZQor
ICAgICAgICBDUkFTSCgpOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgUGFyc2VyRnVuY3Rpb25z
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uSG9zdC5jcHAgYi9Tb3VyY2Uv
V2ViRHJpdmVyL1Nlc3Npb25Ib3N0LmNwcAppbmRleCBmMTY0OTI5Li5iMWNjY2IzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb25Ib3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViRHJp
dmVyL1Nlc3Npb25Ib3N0LmNwcApAQCAtNTUsNyArNTUsMTAgQEAgbG9uZyBTZXNzaW9uSG9zdDo6
c2VuZENvbW1hbmRUb0JhY2tlbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kLCBSZWZQdHI8SlNPTjo6
T2JqZWMKICAgICAgICAgbWVzc2FnZUJ1aWxkZXIuYXBwZW5kKHBhcmFtZXRlcnMtPnRvSlNPTlN0
cmluZygpKTsKICAgICB9CiAgICAgbWVzc2FnZUJ1aWxkZXIuYXBwZW5kKCd9Jyk7Ci0gICAgc2Vu
ZE1lc3NhZ2VUb0JhY2tlbmQoc2VxdWVuY2VJRCwgbWVzc2FnZUJ1aWxkZXIudG9TdHJpbmcoKSk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWVzc2FnZUJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgc2VuZE1lc3NhZ2VUb0JhY2tlbmQoc2VxdWVuY2VJRCwgKnN0cmluZyk7CisgICAgZWxzZQor
ICAgICAgICBDUkFTSCgpOwogCiAgICAgcmV0dXJuIHNlcXVlbmNlSUQ7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDhhMWRkMTcuLjg4Yjk2YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTgtMDQtMjYg
IEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgorCisgICAgICAgIFN0cmluZ0J1aWxk
ZXIgaXMgZmFsbGlibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4NTA0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRlYWNoIFN0cmluZ0J1aWxkZXIgdGhhdCBpdCBpcyBmYWxsaWJsZQorCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpFbmdpbmU6OnJlcHJlc2VudGF0aW9uKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrQ2FjaGU6OkNhY2hlOjpkdW1wQ29udGVudHNUb0ZpbGUpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUtleS5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDYWNoZTo6S2V5OjpoYXNoQXNTdHJpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0NhcHR1cmU6Ok1hbmFnZXI6Omhhc2hUb1BhdGgpOgorICAgICAgICAqIFNoYXJlZC9E
YXRhYmFzZXMvSW5kZXhlZERCL0lEQlV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OnVu
aXF1ZURhdGFiYXNlSWRlbnRpZmllcik6CisgICAgICAgICogU2hhcmVkL0dhbWVwYWQvR2FtZXBh
ZERhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpHYW1lcGFkRGF0YTo6bG9nZ2luZ1N0cmluZyBj
b25zdCk6CisgICAgICAgICogU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvdW5peC9OZXRzY2FwZVBs
dWdpbk1vZHVsZVVuaXguY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbk1vZHVs
ZTo6YnVpbGRNSU1FRGVzY3JpcHRpb24pOgorICAgICAgICAqIFNoYXJlZC9XZWJNZW1vcnlTYW1w
bGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVtb3J5U2FtcGxlcjo6YXBwZW5kQ3VycmVu
dE1lbW9yeVVzYWdlVG9GaWxlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVzZXJTY3Jp
cHQuY3BwOgorICAgICAgICAoQVBJOjpVc2VyU2NyaXB0OjpnZW5lcmF0ZVVuaXF1ZVVSTCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVc2VyU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChB
UEk6OlVzZXJTdHlsZVNoZWV0OjpnZW5lcmF0ZVVuaXF1ZVVSTCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlZp
ZXdHZXN0dXJlQ29udHJvbGxlcjo6U25hcHNob3RSZW1vdmFsVHJhY2tlcjo6ZXZlbnRzRGVzY3Jp
cHRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJCYWNrRm9yd2FyZExpc3Q6OmxvZ2dpbmdTdHJpbmcpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6
OmdldExhdW5jaE9wdGlvbnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OnJlbW92ZURhdGFSZWNvcmRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjp1cGRhdGVDb29raWVQYXJ0aXRpb25pbmcpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6c3VibWl0VG9wTGlzdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Y2FwaXRhbGl6ZVJGQzgyMkhlYWRlckZpZWxkTmFtZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpidWlsZEhUVFBIZWFk
ZXJzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGcmFtZTo6Y29udGVudHNBc1N0cmluZyBjb25zdCk6CisKIDIwMTgtMDQt
MjUgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgZGxvcGVuIHRo
ZSBidW5kbGUncyBleGVjdXRhYmxlIGJlZm9yZSBjYWxsaW5nIC1bTlNCdW5kbGUgbG9hZF0gc2lu
Y2UgdGhhdCB3aWxsIGFsc28gZG8gYSBidW5jaCBvZiBvdGhlciB0aGluZ3Mgd2UgZG9uJ3QgbmVl
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0
b3JhZ2VFbmdpbmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNo
ZVN0b3JhZ2VFbmdpbmUuY3BwCmluZGV4IDQ1YzQ3YTEuLjhkNzk1ODMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2lu
ZS5jcHAKQEAgLTUyNCw3ICs1MjQsOSBAQCBTdHJpbmcgRW5naW5lOjpyZXByZXNlbnRhdGlvbigp
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJ9Iik7CiAgICAgfQogICAgIGJ1aWxkZXIuYXBwZW5k
KCJdfSIpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBD
UkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBDYWNoZVN0b3JhZ2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAppbmRleCA3M2Ey
NWY0Li4wY2E3Zjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGUuY3BwCkBAIC01NzAsMTAgKzU3MCwxMyBAQCB2b2lkIENhY2hlOjpk
dW1wQ29udGVudHNUb0ZpbGUoKQogICAgICAgICAgICAgZXBpbG9ndWUuYXBwZW5kTnVtYmVyKHRv
dGFscy5jb3VudCA/IHRvdGFscy53b3J0aCAvIHRvdGFscy5jb3VudCA6IDApOwogICAgICAgICAg
ICAgZXBpbG9ndWUuYXBwZW5kTGl0ZXJhbCgiXG4iKTsKICAgICAgICAgICAgIGVwaWxvZ3VlLmFw
cGVuZExpdGVyYWwoIn1cbn1cbiIpOwotICAgICAgICAgICAgYXV0byB3cml0ZURhdGEgPSBlcGls
b2d1ZS50b1N0cmluZygpLnV0ZjgoKTsKLSAgICAgICAgICAgIHdyaXRlVG9GaWxlKGZkLCB3cml0
ZURhdGEuZGF0YSgpLCB3cml0ZURhdGEubGVuZ3RoKCkpOwotICAgICAgICAgICAgY2xvc2VGaWxl
KGZkKTsKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IGVwaWxvZ3VlLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBhdXRvIHdyaXRlRGF0YSA9
IHN0cmluZy0+dXRmOCgpOworICAgICAgICAgICAgICAgIHdyaXRlVG9GaWxlKGZkLCB3cml0ZURh
dGEuZGF0YSgpLCB3cml0ZURhdGEubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIGNsb3NlRmls
ZShmZCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgICAgICBhdXRvIGVudHJ5ID0gRW50cnk6OmRlY29k
ZVN0b3JhZ2VSZWNvcmQoKnJlY29yZCk7CiAgICAgICAgIGlmICghZW50cnkpCkBAIC01ODUsOCAr
NTg4LDExIEBAIHZvaWQgQ2FjaGU6OmR1bXBDb250ZW50c1RvRmlsZSgpCiAgICAgICAgIFN0cmlu
Z0J1aWxkZXIganNvbjsKICAgICAgICAgZW50cnktPmFzSlNPTihqc29uLCBpbmZvKTsKICAgICAg
ICAganNvbi5hcHBlbmRMaXRlcmFsKCIsXG4iKTsKLSAgICAgICAgYXV0byB3cml0ZURhdGEgPSBq
c29uLnRvU3RyaW5nKCkudXRmOCgpOwotICAgICAgICB3cml0ZVRvRmlsZShmZCwgd3JpdGVEYXRh
LmRhdGEoKSwgd3JpdGVEYXRhLmxlbmd0aCgpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
anNvbi50b1N0cmluZygpKSB7CisgICAgICAgICAgICBhdXRvIHdyaXRlRGF0YSA9IHN0cmluZy0+
dXRmOCgpOworICAgICAgICAgICAgd3JpdGVUb0ZpbGUoZmQsIHdyaXRlRGF0YS5kYXRhKCksIHdy
aXRlRGF0YS5sZW5ndGgoKSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsK
ICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGVLZXkuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGVLZXkuY3BwCmluZGV4IDhmYTgxZDEuLjBiNDIyZWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlS2V5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUtl
eS5jcHAKQEAgLTEzNCw3ICsxMzQsOSBAQCBTdHJpbmcgS2V5OjpoYXNoQXNTdHJpbmcoY29uc3Qg
SGFzaFR5cGUmIGhhc2gpCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHVwcGVyTmliYmxlVG9BU0NJ
SUhleERpZ2l0KGJ5dGUpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQobG93ZXJOaWJibGVUb0FT
Q0lJSGV4RGlnaXQoYnl0ZSkpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJU
eXBlPiBib29sIGhleERpZ2l0c1RvSGFzaChDaGFyVHlwZSogY2hhcmFjdGVycywgS2V5OjpIYXNo
VHlwZSYgaGFzaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fw
dHVyZS9OZXR3b3JrQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggNTYxM2JlOC4uMzQ3
M2U1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05l
dHdvcmtDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTQxNSw5ICs0MTUsOSBAQCBT
dHJpbmcgTWFuYWdlcjo6aGFzaFRvUGF0aChjb25zdCBTdHJpbmcmIGhhc2gpCiAKICAgICBhdXRv
IHBhdGggPSBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9yZWNvcmRSZXBsYXlDYWNoZUxvY2F0
aW9uLCBrRGlyTmFtZVJlc291cmNlcyk7CiAgICAgcGF0aCA9IHBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudChwYXRoLCBoYXNoSGVhZCk7Ci0gICAgcGF0aCA9IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVu
dChwYXRoLCBmaWxlTmFtZS50b1N0cmluZygpKTsKLQotICAgIHJldHVybiBwYXRoOworICAgIGlm
IChhdXRvIHN0cmluZyA9IGZpbGVOYW1lLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnQocGF0aCwgKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAog
U3RyaW5nIE1hbmFnZXI6OnVybElkZW50aWZ5aW5nQ29tbW9uRG9tYWluKGNvbnN0IFdlYkNvcmU6
OlVSTCYgdXJsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRGF0YWJhc2VzL0lu
ZGV4ZWREQi9JREJVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRGF0YWJhc2Vz
L0luZGV4ZWREQi9JREJVdGlsaXRpZXMuY3BwCmluZGV4IDllYzc2ZmYuLjdjMWMyNGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIvSURCVXRpbGl0
aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCL0lE
QlV0aWxpdGllcy5jcHAKQEAgLTUyLDcgKzUyLDkgQEAgU3RyaW5nIHVuaXF1ZURhdGFiYXNlSWRl
bnRpZmllcihjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgV2ViQ29yZTo6U2VjdXIK
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXycpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5k
KGRhdGFiYXNlTmFtZSk7CiAKLSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9HYW1lcGFkL0dhbWVwYWREYXRhLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dhbWVwYWQvR2FtZXBhZERhdGEuY3BwCmluZGV4IDkw
NWQ4MjcuLjFmYmQ3ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dhbWVwYWQv
R2FtZXBhZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dhbWVwYWQvR2FtZXBh
ZERhdGEuY3BwCkBAIC0xMTEsNyArMTExLDkgQEAgU3RyaW5nIEdhbWVwYWREYXRhOjpsb2dnaW5n
U3RyaW5nKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV9idXR0b25WYWx1
ZXNbaV0pOwogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvdW5peC9OZXRzY2FwZVBsdWdpbk1vZHVsZVVuaXguY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS91bml4L05ldHNjYXBlUGx1
Z2luTW9kdWxlVW5peC5jcHAKaW5kZXggZjllYjA2ZS4uOTcyZGNiNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS91bml4L05ldHNjYXBlUGx1Z2luTW9k
dWxlVW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS91
bml4L05ldHNjYXBlUGx1Z2luTW9kdWxlVW5peC5jcHAKQEAgLTEyMCw3ICsxMjAsOSBAQCBTdHJp
bmcgTmV0c2NhcGVQbHVnaW5Nb2R1bGU6OmJ1aWxkTUlNRURlc2NyaXB0aW9uKGNvbnN0IFZlY3Rv
cjxNaW1lQ2xhc3NJbmZvPiYgbQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJzsnKTsKICAg
ICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogYm9vbCBOZXRzY2FwZVBsdWdpbk1vZHVsZTo6Z2V0UGx1Z2luSW5mb0Zvckxv
YWRlZFBsdWdpbihSYXdQbHVnaW5NZXRhRGF0YSYgbWV0YURhdGEpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwCmluZGV4IDkyNzcxODkuLjY3NThhYjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwCkBAIC0xODEsOCArMTgxLDExIEBA
IHZvaWQgV2ViTWVtb3J5U2FtcGxlcjo6YXBwZW5kQ3VycmVudE1lbW9yeVVzYWdlVG9GaWxlKEZp
bGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhCiAgICAgfQogICAgIHN0YXRTdHJpbmcuYXBwZW5kKCdc
bicpOwogCi0gICAgQ1N0cmluZyB1dGY4U3RyaW5nID0gc3RhdFN0cmluZy50b1N0cmluZygpLnV0
ZjgoKTsKLSAgICBGaWxlU3lzdGVtOjp3cml0ZVRvRmlsZShtX3NhbXBsZUxvZ0ZpbGUsIHV0ZjhT
dHJpbmcuZGF0YSgpLCB1dGY4U3RyaW5nLmxlbmd0aCgpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBzdGF0U3RyaW5nLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgQ1N0cmluZyB1dGY4U3RyaW5nID0g
c3RyaW5nLT51dGY4KCk7CisgICAgICAgIEZpbGVTeXN0ZW06OndyaXRlVG9GaWxlKG1fc2FtcGxl
TG9nRmlsZSwgdXRmOFN0cmluZy5kYXRhKCksIHV0ZjhTdHJpbmcubGVuZ3RoKCkpOworICAgIH0g
ZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJVXNlclNjcmlwdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJVXNlclNjcmlwdC5jcHAKaW5kZXggNzU4NGU2My4uYTkzOWI1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJTY3JpcHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVc2VyU2NyaXB0LmNwcApAQCAtMzcsNyArMzcs
OSBAQCBXZWJDb3JlOjpVUkwgVXNlclNjcmlwdDo6Z2VuZXJhdGVVbmlxdWVVUkwoKQogICAgIFN0
cmluZ0J1aWxkZXIgdXJsU3RyaW5nQnVpbGRlcjsKICAgICB1cmxTdHJpbmdCdWlsZGVyLmFwcGVu
ZExpdGVyYWwoInVzZXItc2NyaXB0OiIpOwogICAgIHVybFN0cmluZ0J1aWxkZXIuYXBwZW5kTnVt
YmVyKCsraWRlbnRpZmllcik7Ci0gICAgcmV0dXJuIHsgeyB9LCB1cmxTdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCkgfTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB1cmxTdHJpbmdCdWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiB7IHsgfSwgKnN0cmluZyB9OworICAgIENSQVNIKCk7CiB9
CiAKIFVzZXJTY3JpcHQ6OlVzZXJTY3JpcHQoV2ViQ29yZTo6VXNlclNjcmlwdCB1c2VyU2NyaXB0
LCBBUEk6OlVzZXJDb250ZW50V29ybGQmIHdvcmxkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElVc2VyU3R5bGVTaGVldC5jcHAKaW5kZXggMWQ1OTViYi4uNjNhYzBmNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJTdHlsZVNoZWV0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVXNlclN0eWxlU2hlZXQu
Y3BwCkBAIC0zNyw3ICszNyw5IEBAIFdlYkNvcmU6OlVSTCBVc2VyU3R5bGVTaGVldDo6Z2VuZXJh
dGVVbmlxdWVVUkwoKQogICAgIFN0cmluZ0J1aWxkZXIgdXJsU3RyaW5nQnVpbGRlcjsKICAgICB1
cmxTdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoInVzZXItc3R5bGUtc2hlZXQ6Iik7CiAgICAg
dXJsU3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIoKytpZGVudGlmaWVyKTsKLSAgICByZXR1cm4g
eyB7IH0sIHVybFN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSB9OworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHVybFN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHsgeyB9LCAq
c3RyaW5nIH07CisgICAgQ1JBU0goKTsKIH0KIAogVXNlclN0eWxlU2hlZXQ6OlVzZXJTdHlsZVNo
ZWV0KFdlYkNvcmU6OlVzZXJTdHlsZVNoZWV0IHVzZXJTdHlsZVNoZWV0LCBBUEk6OlVzZXJDb250
ZW50V29ybGQmIHdvcmxkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKaW5kZXggOGMyMWMyNC4uOTE2ZGQ0NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNv
bnRyb2xsZXIuY3BwCkBAIC0yMzIsOCArMjMyLDEwIEBAIFN0cmluZyBWaWV3R2VzdHVyZUNvbnRy
b2xsZXI6OlNuYXBzaG90UmVtb3ZhbFRyYWNrZXI6OmV2ZW50c0Rlc2NyaXB0aW9uKEV2ZW50cyBl
CiAKICAgICBpZiAoZXZlbnQgJiBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlNuYXBzaG90UmVtb3Zh
bFRyYWNrZXI6OlNjcm9sbFBvc2l0aW9uUmVzdG9yYXRpb24pCiAgICAgICAgIGRlc2NyaXB0aW9u
LmFwcGVuZCgiU2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbiAiKTsKLSAgICAKLSAgICByZXR1cm4g
ZGVzY3JpcHRpb24udG9TdHJpbmcoKTsKKworICAgIGlmIChhdXRvIHN0cmluZyA9IGRlc2NyaXB0
aW9uLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRM
aXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAK
aW5kZXggNjAwNmEwMi4uMTI4ZjU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJCYWNrRm9yd2FyZExpc3QuY3BwCkBAIC00OTMsNyArNDkzLDkgQEAgY29uc3QgY2hhciogV2Vi
QmFja0ZvcndhcmRMaXN0Ojpsb2dnaW5nU3RyaW5nKCkKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
bV9lbnRyaWVzW2ldLT5sb2dnaW5nU3RyaW5nKCkpOwogICAgIH0KIAotICAgIHJldHVybiBkZWJ1
Z1N0cmluZygiXG4iLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIGRlYnVnU3RyaW5nKCJcbiIsICpz
dHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAjZW5kaWYgLy8gIUxPR19ESVNBQkxFRAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggN2MwMDBhYi4uZTAz
ZTBmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAt
NzEwLDcgKzcxMCwxMCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpkaWRSZWNlaXZlSW52YWxpZE1l
c3NhZ2UoY29uc3QgSVBDOjpTdHJpbmdSZWZlcmVuY2UmIG1lc3NhZwogICAgIG1lc3NhZ2VOYW1l
U3RyaW5nQnVpbGRlci5hcHBlbmQoJy4nKTsKICAgICBtZXNzYWdlTmFtZVN0cmluZ0J1aWxkZXIu
YXBwZW5kKG1lc3NhZ2VOYW1lLmRhdGEoKSwgbWVzc2FnZU5hbWUuc2l6ZSgpKTsKIAotICAgIHNf
aW52YWxpZE1lc3NhZ2VDYWxsYmFjayh0b0FQSShBUEk6OlN0cmluZzo6Y3JlYXRlKG1lc3NhZ2VO
YW1lU3RyaW5nQnVpbGRlci50b1N0cmluZygpKS5wdHIoKSkpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IG1lc3NhZ2VOYW1lU3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBzX2ludmFs
aWRNZXNzYWdlQ2FsbGJhY2sodG9BUEkoQVBJOjpTdHJpbmc6OmNyZWF0ZSgqc3RyaW5nKS5wdHIo
KSkpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9v
bDo6cHJvY2Vzc0RpZENhY2hlUGFnZShXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA0MTU2ZDgzLi5lZjA5
ZGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAg
LTE3MCw3ICsxNzAsMTAgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMo
UHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHQKICAgICAgICAgICAgICAg
ICBsYW5ndWFnZVN0cmluZy5hcHBlbmQoJywnKTsKICAgICAgICAgICAgIGxhbmd1YWdlU3RyaW5n
LmFwcGVuZChvdmVycmlkZUxhbmd1YWdlc1tpXSk7CiAgICAgICAgIH0KLSAgICAgICAgbGF1bmNo
T3B0aW9ucy5leHRyYUluaXRpYWxpemF0aW9uRGF0YS5hZGQoQVNDSUlMaXRlcmFsKCJPdmVycmlk
ZUxhbmd1YWdlcyIpLCBsYW5ndWFnZVN0cmluZy50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gbGFuZ3VhZ2VTdHJpbmcudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGxhdW5j
aE9wdGlvbnMuZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuYWRkKEFTQ0lJTGl0ZXJhbCgiT3ZlcnJp
ZGVMYW5ndWFnZXMiKSwgKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNI
KCk7CiAgICAgfQogCiAgICAgbGF1bmNoT3B0aW9ucy5ub25WYWxpZEluamVjdGVkQ29kZUFsbG93
ZWQgPSBzaG91bGRBbGxvd05vblZhbGlkSW5qZWN0ZWRDb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNw
cAppbmRleCA3ZmE4OTEwLi41ZDliNzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTIyNyw3
ICsyMjcsMTAgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlbW92ZURh
dGFSZWNvcmRzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4KICAgICAgICAgICAgIGFwcGVuZFdp
dGhEZWxpbWl0ZXIoZG9tYWluc1RvUmVtb3ZlRGF0YVJlY29yZHNGb3JCdWlsZGVyLCBkb21haW4s
IGlzRmlyc3RJdGVtKTsKICAgICAgICAgICAgIGlzRmlyc3RJdGVtID0gZmFsc2U7CiAgICAgICAg
IH0KLSAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWcs
ICJBYm91dCB0byByZW1vdmUgZGF0YSByZWNvcmRzIGZvciAle3B1YmxpY31zLiIsIGRvbWFpbnNU
b1JlbW92ZURhdGFSZWNvcmRzRm9yQnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwor
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBkb21haW5zVG9SZW1vdmVEYXRhUmVjb3Jkc0ZvckJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RlYnVnLCAiQWJvdXQgdG8gcmVtb3ZlIGRhdGEgcmVjb3JkcyBmb3IgJXtw
dWJsaWN9cy4iLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBDUkFTSCgpOwogICAgIH0KICNlbmRpZgogCkBAIC0xMDQ0LDcgKzEwNDcsMTAgQEAgdm9p
ZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnVwZGF0ZUNvb2tpZVBhcnRpdGlvbmlu
ZyhDb21wbGV0aW9uSGFuZGxlcjwKICAgICAgICAgICAgICAgICBhcHBlbmRXaXRoRGVsaW1pdGVy
KGRvbWFpbnNUb1BhcnRpdGlvbkJ1aWxkZXIsIGRvbWFpbiwgaXNGaXJzdERvbWFpbik7CiAgICAg
ICAgICAgICAgICAgaXNGaXJzdERvbWFpbiA9IGZhbHNlOwogICAgICAgICAgICAgfQotICAgICAg
ICAgICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWcsICJBYm91
dCB0byBwYXJ0aXRpb24gY29va2llcyBpbiB0aGlyZC1wYXJ0eSBjb250ZXh0cyBmb3IgJXtwdWJs
aWN9cy4iLCBkb21haW5zVG9QYXJ0aXRpb25CdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBkb21haW5zVG9QYXJ0aXRpb25CdWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGVidWcsICJBYm91dCB0byBwYXJ0aXRpb24gY29va2llcyBpbiB0aGly
ZC1wYXJ0eSBjb250ZXh0cyBmb3IgJXtwdWJsaWN9cy4iLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCkp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0K
IAogICAgICAgICBpZiAoIWRvbWFpbnNUb0Jsb2NrLmlzRW1wdHkoKSkgewpAQCAtMTA1NCw3ICsx
MDYwLDEwIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjp1cGRhdGVDb29r
aWVQYXJ0aXRpb25pbmcoQ29tcGxldGlvbkhhbmRsZXI8CiAgICAgICAgICAgICAgICAgYXBwZW5k
V2l0aERlbGltaXRlcihkb21haW5zVG9CbG9ja0J1aWxkZXIsIGRvbWFpbiwgaXNGaXJzdERvbWFp
bik7CiAgICAgICAgICAgICAgICAgaXNGaXJzdERvbWFpbiA9IGZhbHNlOwogICAgICAgICAgICAg
fQotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVi
dWcsICJBYm91dCB0byBibG9jayBjb29raWVzIGluIHRoaXJkLXBhcnR5IGNvbnRleHRzIGZvciAl
e3B1YmxpY31zLiIsIGRvbWFpbnNUb0Jsb2NrQnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZG9tYWluc1RvQmxvY2tCdWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGVidWcsICJBYm91dCB0byBibG9jayBjb29raWVzIGluIHRoaXJkLXBhcnR5
IGNvbnRleHRzIGZvciAle3B1YmxpY31zLiIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogCiAgICAg
ICAgIGlmICghZG9tYWluc1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrLmlzRW1wdHkoKSkgewpA
QCAtMTA2NCw3ICsxMDczLDEwIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
Ojp1cGRhdGVDb29raWVQYXJ0aXRpb25pbmcoQ29tcGxldGlvbkhhbmRsZXI8CiAgICAgICAgICAg
ICAgICAgYXBwZW5kV2l0aERlbGltaXRlcihkb21haW5zVG9OZWl0aGVyUGFydGl0aW9uTm9yQmxv
Y2tCdWlsZGVyLCBkb21haW4sIGlzRmlyc3REb21haW4pOwogICAgICAgICAgICAgICAgIGlzRmly
c3REb21haW4gPSBmYWxzZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFJFTEVBU0VfTE9H
X0lORk8oUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnLCAiQWJvdXQgdG8gbmVpdGhlciBwYXJ0
aXRpb24gbm9yIGJsb2NrIGNvb2tpZXMgaW4gdGhpcmQtcGFydHkgY29udGV4dHMgZm9yICV7cHVi
bGljfXMuIiwgZG9tYWluc1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrQnVpbGRlci50b1N0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZG9tYWlu
c1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAg
ICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnLCAiQWJv
dXQgdG8gbmVpdGhlciBwYXJ0aXRpb24gbm9yIGJsb2NrIGNvb2tpZXMgaW4gdGhpcmQtcGFydHkg
Y29udGV4dHMgZm9yICV7cHVibGljfXMuIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAgICAgfQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzVGVsZW1ldHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnkuY3BwCmluZGV4IGJiNzQ0MGMuLjUyMGFiNzc4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzVGVsZW1ldHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5LmNwcApAQCAtMTc5LDIyICsxNzksMjMgQEAgc3Rh
dGljIHZvaWQgc3VibWl0VG9wTGlzdCh1bnNpZ25lZCBudW1iZXJPZlJlc291cmNlc0Zyb21UaGVU
b3AsIGNvbnN0IFZlY3RvcjxQcmUKICAgICBTdHJpbmdCdWlsZGVyIHByZWFtYmxlQnVpbGRlcjsK
ICAgICBwcmVhbWJsZUJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgidG9wIik7CiAgICAgcHJlYW1ibGVC
dWlsZGVyLmFwcGVuZE51bWJlcihudW1iZXJPZlJlc291cmNlc0Zyb21UaGVUb3ApOwotICAgIFN0
cmluZyBkZXNjcmlwdGlvblByZWFtYmxlID0gcHJlYW1ibGVCdWlsZGVyLnRvU3RyaW5nKCk7Ci0g
ICAgCi0gICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdu
b3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgpLCBk
ZXNjcmlwdGlvblByZWFtYmxlICsgIlByZXZhbGVudFJlc291cmNlc1dpdGhVc2VySW50ZXJhY3Rp
b24iLAotICAgICAgICB0b3BQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uLCBz
aWduaWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOwotICAg
IHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9n
Z2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgZGVzY3JpcHRp
b25QcmVhbWJsZSArICJTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5zIiwKLSAgICAgICAgdG9w
U3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lucywgc2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9nZ2Vk
VmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKLSAgICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0
aXN0aWNzVGVsZW1ldHJ5S2V5KCksIGRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiU3VicmVzb3VyY2VV
bmRlclRvcEZyYW1lT3JpZ2lucyIsCi0gICAgICAgIHRvcFN1YnJlc291cmNlVW5kZXJUb3BGcmFt
ZU9yaWdpbnMsIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2FtcGxl
OjpObyk7Ci0gICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERp
YWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgp
LCBkZXNjcmlwdGlvblByZWFtYmxlICsgIlN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8iLAot
ICAgICAgICB0b3BTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvLCBzaWduaWZpY2FudEZpZ3Vy
ZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOwotICAgIHdlYlBhZ2VQcm94eS5s
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291
cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgZGVzY3JpcHRpb25QcmVhbWJsZSArICJO
dW1iZXJPZlRpbWVzRGF0YVJlY29yZHNSZW1vdmVkIiwKLSAgICAgICAgdG9wTnVtYmVyT2ZUaW1l
c0RhdGFSZWNvcmRzUmVtb3ZlZCwgc2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9nZ2VkVmFsdWVzLCBT
aG91bGRTYW1wbGU6Ok5vKTsKLSAgICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3RpY01lc3NhZ2VX
aXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVs
ZW1ldHJ5S2V5KCksIGRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiTnVtYmVyT2ZUaW1lc0FjY2Vzc2Vk
QXNGaXJzdFBhcnR5RHVlVG9Vc2VySW50ZXJhY3Rpb24iLAotICAgICAgICB0b3BOdW1iZXJPZlRp
bWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1VzZXJJbnRlcmFjdGlvbiwgc2lnbmlmaWNhbnRG
aWd1cmVzRm9yTG9nZ2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKLSAgICB3ZWJQYWdlUHJv
eHkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCksIGRlc2NyaXB0aW9uUHJlYW1ibGUg
KyAiTnVtYmVyT2ZUaW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9TdG9yYWdlQWNjZXNzQVBJ
IiwKLSAgICAgICAgdG9wTnVtYmVyT2ZUaW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9TdG9y
YWdlQWNjZXNzQVBJLCBzaWduaWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNh
bXBsZTo6Tm8pOworICAgIGlmIChhdXRvIGRlc2NyaXB0aW9uUHJlYW1ibGUgPSBwcmVhbWJsZUJ1
aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3RpY01l
c3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0aXN0
aWNzVGVsZW1ldHJ5S2V5KCksICpkZXNjcmlwdGlvblByZWFtYmxlICsgIlByZXZhbGVudFJlc291
cmNlc1dpdGhVc2VySW50ZXJhY3Rpb24iLAorICAgICAgICAgICAgdG9wUHJldmFsZW50UmVzb3Vy
Y2VzV2l0aFVzZXJJbnRlcmFjdGlvbiwgc2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9nZ2VkVmFsdWVz
LCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICAgICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNN
ZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlz
dGljc1RlbGVtZXRyeUtleSgpLCAqZGVzY3JpcHRpb25QcmVhbWJsZSArICJTdWJmcmFtZVVuZGVy
VG9wRnJhbWVPcmlnaW5zIiwKKyAgICAgICAgICAgIHRvcFN1YmZyYW1lVW5kZXJUb3BGcmFtZU9y
aWdpbnMsIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2FtcGxlOjpO
byk7CisgICAgICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShE
aWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXko
KSwgKmRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2lu
cyIsCisgICAgICAgICAgICB0b3BTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW5zLCBzaWdu
aWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOworICAgICAg
ICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xv
Z2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCksICpkZXNjcmlw
dGlvblByZWFtYmxlICsgIlN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8iLAorICAgICAgICAg
ICAgdG9wU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbywgc2lnbmlmaWNhbnRGaWd1cmVzRm9y
TG9nZ2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICAgICAgd2ViUGFnZVByb3h5Lmxv
Z0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgpLCAqZGVzY3JpcHRpb25QcmVhbWJsZSArICJO
dW1iZXJPZlRpbWVzRGF0YVJlY29yZHNSZW1vdmVkIiwKKyAgICAgICAgICAgIHRvcE51bWJlck9m
VGltZXNEYXRhUmVjb3Jkc1JlbW92ZWQsIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVl
cywgU2hvdWxkU2FtcGxlOjpObyk7CisgICAgICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGlj
TWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRp
c3RpY3NUZWxlbWV0cnlLZXkoKSwgKmRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiTnVtYmVyT2ZUaW1l
c0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9Vc2VySW50ZXJhY3Rpb24iLAorICAgICAgICAgICAg
dG9wTnVtYmVyT2ZUaW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9Vc2VySW50ZXJhY3Rpb24s
IHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2FtcGxlOjpObyk7Cisg
ICAgICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9z
dGljTG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgKmRl
c2NyaXB0aW9uUHJlYW1ibGUgKyAiTnVtYmVyT2ZUaW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVl
VG9TdG9yYWdlQWNjZXNzQVBJIiwKKyAgICAgICAgICAgIHRvcE51bWJlck9mVGltZXNBY2Nlc3Nl
ZEFzRmlyc3RQYXJ0eUR1ZVRvU3RvcmFnZUFjY2Vzc0FQSSwgc2lnbmlmaWNhbnRGaWd1cmVzRm9y
TG9nZ2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICB9IGVsc2UKKyAgICAgICAgQ1JB
U0goKTsKIH0KICAgICAKIHN0YXRpYyB2b2lkIHN1Ym1pdFRvcExpc3RzKGNvbnN0IFZlY3RvcjxQ
cmV2YWxlbnRSZXNvdXJjZVRlbGVtZXRyeT4mIHNvcnRlZFByZXZhbGVudFJlc291cmNlcywgY29u
c3QgVmVjdG9yPFByZXZhbGVudFJlc291cmNlVGVsZW1ldHJ5PiYgc29ydGVkUHJldmFsZW50UmVz
b3VyY2VzV2l0aG91dFVzZXJJbnRlcmFjdGlvbiwgV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9O
ZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAKaW5kZXggMGJjY2ZhZi4uYWRhNWY0
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
TmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcApAQCAtMTM4LDcgKzEzOCw5
IEBAIHN0YXRpYyBTdHJpbmcgY2FwaXRhbGl6ZVJGQzgyMkhlYWRlckZpZWxkTmFtZShjb25zdCBT
dHJpbmcmIG5hbWUpCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGNhcGl0YWxpemVDaGFyYWN0
ZXIgPSBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgSFRUUEhlYWRlck1hcCBwYXJzZVJGQzgyMkhl
YWRlckZpZWxkcyhjb25zdCBjaGFyKiBieXRlcywgdW5zaWduZWQgbGVuZ3RoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCBhN2ZjYWNl
Li43OTlhZDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5WaWV3LmNwcApAQCAtMjEyLDcgKzIxMiw5IEBAIHN0YXRpYyBTdHJpbmcgYnVpbGRIVFRQSGVh
ZGVycyhjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgbG9uZyBsb25nJiBleHBlCiAg
ICAgaWYgKCFjb250ZW50RW5jb2RpbmcuaXNOdWxsKCkgJiYgY29udGVudEVuY29kaW5nICE9ICJp
ZGVudGl0eSIpCiAgICAgICAgIGV4cGVjdGVkQ29udGVudExlbmd0aCA9IC0xOwogCi0gICAgcmV0
dXJuIGhlYWRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGhlYWRlci50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0
aWMgdWludDMyX3QgbGFzdE1vZGlmaWVkRGF0ZU1TKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
RnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3Bw
CmluZGV4IDE2YWJlNTUuLjQ4OWM4Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJGcmFtZS5jcHAKQEAgLTM1MSw3ICszNTEsOSBAQCBTdHJpbmcgV2ViRnJhbWU6
OmNvbnRlbnRzQXNTdHJpbmcoKSBjb25zdAogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQod2Vi
RnJhbWUtPmNvbnRlbnRzQXNTdHJpbmcoKSk7CiAgICAgICAgIH0KICAgICAgICAgLy8gRklYTUU6
IEl0IG1heSBtYWtlIHNlbnNlIHRvIHVzZSB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBoZXJl
LgotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2Nv
cmVGcmFtZS0+ZG9jdW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCAwN2Q0
OGNkLi5kNDEzMTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTgtMDQtMjYgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgorCisgICAg
ICAgIFN0cmluZ0J1aWxkZXIgaXMgZmFsbGlibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTA0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlYWNoIFN0cmluZ0J1aWxkZXIgdGhhdCBpdCBpcyBmYWxs
aWJsZQorCisgICAgICAgICogV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubW06CisgICAg
ICAgIChyZWdFeHBGb3JMYWJlbHMpOgorCiAyMDE4LTA0LTI1ICBKaWV3ZW4gVGFuICA8amlld2Vu
X3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGFjY2VzcyB0byBrZXljaGFpbiBmcm9t
IHRoZSBXZWJDb250ZW50IHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubW0KaW5kZXggMTkxODM2My4uMmIy
N2E1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1M
UmVwcmVzZW50YXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJIVE1MUmVwcmVzZW50YXRpb24ubW0KQEAgLTM5NCw3ICszOTQsMTAgQEAgc3RhdGljIFJlZ3Vs
YXJFeHByZXNzaW9uKiByZWdFeHBGb3JMYWJlbHMoTlNBcnJheSAqbGFiZWxzKQogICAgICAgICAg
ICAgICAgIHBhdHRlcm4uYXBwZW5kTGl0ZXJhbCgiXFxiIik7CiAgICAgICAgIH0KICAgICAgICAg
cGF0dGVybi5hcHBlbmQoJyknKTsKLSAgICAgICAgcmVzdWx0ID0gbmV3IFJlZ3VsYXJFeHByZXNz
aW9uKHBhdHRlcm4udG9TdHJpbmcoKSwgSlNDOjpZYXJyOjpUZXh0Q2FzZUluc2Vuc2l0aXZlKTsK
KyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcGF0dGVybi50b1N0cmluZygpKQorICAgICAgICAg
ICAgcmVzdWx0ID0gbmV3IFJlZ3VsYXJFeHByZXNzaW9uKCpzdHJpbmcsIEpTQzo6WWFycjo6VGV4
dENhc2VJbnNlbnNpdGl2ZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAg
ICAgfQogCiAgICAgLy8gYWRkIHJlZ2V4cCB0byB0aGUgY2FjaGUsIG1ha2luZyBzdXJlIGl0IGlz
IGF0IHRoZSBmcm9udCBmb3IgTFJVIG9yZGVyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9BY2Nlc3NpYmxlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9B
Y2Nlc3NpYmxlQmFzZS5jcHAKaW5kZXggN2UzYjE4My4uYTgxZTMzNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vQWNjZXNzaWJsZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL0FjY2Vzc2libGVCYXNlLmNwcApAQCAtNjA5LDcgKzYwOSwxMCBAQCBIUkVT
VUxUIEFjY2Vzc2libGVCYXNlOjpnZXRfYWNjS2V5Ym9hcmRTaG9ydGN1dChWQVJJQU5UIHZDaGls
ZCwgX19kZXJlZl9vcHRfb3V0CiAgICAgICAgICAgICBhY2Nlc3NLZXlNb2RpZmllcnNCdWlsZGVy
LmFwcGVuZExpdGVyYWwoIlNoaWZ0KyIpOwogICAgICAgICBpZiAobW9kaWZpZXJzLmNvbnRhaW5z
KFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpNZXRhS2V5KSkKICAgICAgICAgICAgIGFjY2Vzc0tl
eU1vZGlmaWVyc0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiV2luKyIpOwotICAgICAgICBhY2Nlc3NL
ZXlNb2RpZmllcnMgPSBhY2Nlc3NLZXlNb2RpZmllcnNCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
ICAgIGlmIChhdXRvIHN0cmluZyA9IGFjY2Vzc0tleU1vZGlmaWVyc0J1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgICAgIGFjY2Vzc0tleU1vZGlmaWVycyA9ICpzdHJpbmc7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgICpzaG9ydGN1dCA9IEJTdHJpbmco
U3RyaW5nKGFjY2Vzc0tleU1vZGlmaWVycyArIGFjY2Vzc0tleSkpLnJlbGVhc2UoKTsKICAgICBy
ZXR1cm4gU19PSzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1BsdWdpbnMv
UGx1Z2luU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1BsdWdpbnMvUGx1Z2lu
U3RyZWFtLmNwcAppbmRleCBmMjU2NjRkLi5jOTk4MDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9QbHVnaW5zL1BsdWdpblN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vUGx1Z2lucy9QbHVnaW5TdHJlYW0uY3BwCkBAIC0xNjcsNyArMTY3LDEwIEBA
IHZvaWQgUGx1Z2luU3RyZWFtOjpzdGFydFN0cmVhbSgpCiAgICAgICAgICAgICBzdHJpbmdCdWls
ZGVyLmFwcGVuZCgnXG4nKTsKICAgICAgICAgfQogCi0gICAgICAgIG1faGVhZGVycyA9IHN0cmlu
Z0J1aWxkZXIudG9TdHJpbmcoKS51dGY4KCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIG1faGVhZGVycyA9IHN0cmluZy0+
dXRmOCgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogCiAgICAgICAgIC8v
IElmIHRoZSBjb250ZW50IGlzIGVuY29kZWQgKG1vc3QgbGlrZWx5IGNvbXByZXNzZWQpLCB0aGVu
IGRvbid0IHNlbmQgaXRzIGxlbmd0aCB0byB0aGUgcGx1Z2luLAogICAgICAgICAvLyB3aGljaCBp
cyBvbmx5IGludGVyZXN0ZWQgaW4gdGhlIGRlY29kZWQgbGVuZ3RoLCBub3QgeWV0IGtub3duIGF0
IHRoZSBtb21lbnQuCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggZjU3NjFhYS4uNDIwOTViMCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDE4LTA0LTI2ICBKRiBCYXN0
aWVuICA8amZiYXN0aWVuQGFwcGxlLmNvbT4KKworICAgICAgICBTdHJpbmdCdWlsZGVyIGlzIGZh
bGxpYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODUwNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
dHJpbmdCdWlsZGVyIGNhbiBmYWlsIHdoZW4gYWxsb2NhdGluZyBtZW1vcnkuIFN0cmluZ0J1aWxk
ZXIgaXMKKyAgICAgICAgbW9zdGx5IHVzZWQgd2l0aCB1c2VyIGlucHV0LCB3aGljaCBvZnRlbiBt
ZWFucyB0aGF0IGp1c3QgY3Jhc2hpbmcKKyAgICAgICAgaXNuJ3QgdGhlIHJpZ2h0IG91dGNvbWUu
IE91ciBmdXp6ZXJzIG9mdGVuIGVuY291bnRlciBzdWNoIHRoaW5ncworICAgICAgICBmb3IgSmF2
YVNjcmlwdENvcmUsIGFuZCBzbyBmYXIgd2UndmUgYXBwbGllZCBwb2ludCBzb2x1dGlvbnMuIE5v
CisgICAgICAgIG1vcmUhCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJp
bmdCdWlsZGVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmV4cGVjdEJ1aWxkZXJDb250
ZW50KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmV4cGVjdEVtcHR5KToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0
cmluZ1ZpZXcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmNyZWF0
ZUNvbW1hbmQpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTG9nZ2luZy5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpMb2dnaW5nVGVzdDo6b3V0cHV0KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1RfRik6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpMb2dPYnNlcnZlcjo6bG9nKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVGV4dENvZGVjLmNwcDoKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OnRlc3REZWNvZGUpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvV1RG
U3RyaW5nVXRpbGl0aWVzLmg6CisgICAgICAgICh1dGYxNlN0cmluZyk6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwOgorICAg
ICAgICAoV1RSOjpkdW1wUGF0aCk6CisgICAgICAgIChXVFI6OnJhbmdlVG9TdHIpOgorICAgICAg
ICAoV1RSOjpzdHlsZURlY1RvU3RyKToKKyAgICAgICAgKFdUUjo6c2VjdXJpdHlPcmlnaW5Ub1N0
cik6CisgICAgICAgIChXVFI6OmZyYW1lVG9TdHIpOgorICAgICAgICAoV1RSOjpkdW1wTG9hZEV2
ZW50KToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkdW1wKToKKyAgICAgICAg
KFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSk6CisgICAg
ICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZv
ckZyYW1lKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRGaW5pc2hEb2N1
bWVudExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6d2ls
bFNlbmRSZXF1ZXN0Rm9yRnJhbWUpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6
OmRpZFJlY2VpdmVSZXNwb25zZUZvclJlc291cmNlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRC
dW5kbGVQYWdlOjpkaWRGaW5pc2hMb2FkRm9yUmVzb3VyY2UpOgorICAgICAgICAoV1RSOjpJbmpl
Y3RlZEJ1bmRsZVBhZ2U6OmRpZEZhaWxMb2FkRm9yUmVzb3VyY2UpOgorICAgICAgICAoV1RSOjpJ
bmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZENhY2hlUmVzcG9uc2UpOgorICAgICAgICAoV1RSOjpJ
bmplY3RlZEJ1bmRsZVBhZ2U6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAg
ICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKToK
KyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsQWRkTWVzc2FnZVRvQ29uc29s
ZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFNldFN0YXR1c2JhclRl
eHQpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxSdW5KYXZhU2NyaXB0
QWxlcnQpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxSdW5KYXZhU2Ny
aXB0Q29uZmlybSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFJ1bkph
dmFTY3JpcHRQcm9tcHQpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJl
YWNoQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRC
dW5kbGVQYWdlOjpkaWRFeGNlZWREYXRhYmFzZVF1b3RhKToKKyAgICAgICAgKFdUUjo6SW5qZWN0
ZWRCdW5kbGVQYWdlOjpzaG91bGRCZWdpbkVkaXRpbmcpOgorICAgICAgICAoV1RSOjpJbmplY3Rl
ZEJ1bmRsZVBhZ2U6OnNob3VsZEVuZEVkaXRpbmcpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1
bmRsZVBhZ2U6OnNob3VsZEluc2VydE5vZGUpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRs
ZVBhZ2U6OnNob3VsZEluc2VydFRleHQpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBh
Z2U6OnNob3VsZERlbGV0ZVJhbmdlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdl
OjpzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5k
bGVQYWdlOjpzaG91bGRBcHBseVN0eWxlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQ
YWdlOjpkaWRCZWdpbkVkaXRpbmcpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6
OmRpZEVuZEVkaXRpbmcpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZENo
YW5nZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2hhbmdlU2VsZWN0
aW9uKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzdGF0aXN0aWNzRGlkUnVuVGVsZW1l
dHJ5Q2FsbGJhY2spOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpjYWxsRGlkUmVjZWl2ZUFs
bFN0b3JhZ2VBY2Nlc3NFbnRyaWVzQ2FsbGJhY2spOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6ZGVj
aWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUpOgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6ZG93bmxvYWREaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RUb1VSTCk6CisgICAg
ICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZEZhaWwpOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52
b2NhdGlvbjo6ZHVtcFJlc3VsdHMpOgorCiAyMDE4LTA0LTI1ICBKb25hdGhhbiBCZWRhcmQgIDxq
YmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjMwOTk4KTogQm90IHdh
dGNoZXIncyBkYXNoYm9hcmQgZG9lc24ndCBkaXNwbGF5IG51bWJlciBvZiBBUEkgdGVzdCBmYWls
dXJlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJl
YWRUYXNrLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkVGFz
ay5jcHAKaW5kZXggNTJjMGJjZC4uZjYxZmEzMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRUYXNrLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZFRhc2suY3BwCkBAIC04OCw3ICs4OCw5IEBAIHN0cnVj
dCBMaWZldGltZUxvZ2dlciB7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCItIik7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKFN0cmluZzo6bnVtYmVyKG1vdmVHZW5lcmF0aW9uKSk7CiAKLSAgICAg
ICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
YnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAg
IENSQVNIKCk7CiAgICAgfQogCiAgICAgY29uc3QgY2hhciYgbmFtZSB7ICoiPGRlZmF1bHQ+IiB9
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRl
ci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcApp
bmRleCA2YjhlMDVjLi43ODY3NTAwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9TdHJpbmdCdWlsZGVyLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAo
QykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zOSwxNiArMzksMTYgQEAgc3RhdGljIHZvaWQgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoY29uc3QgU3RyaW5nJiBleHBlY3RlZCwgY29uc3QgU3RyaW5nQnVp
bGRlciYgYnUKICAgICAvLyBOb3QgdXNpbmcgYnVpbGRlci50b1N0cmluZygpIG9yIGJ1aWxkZXIu
dG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgYmVjYXVzZSB0aGV5IGFsbAogICAgIC8vIGNoYW5n
ZSBpbnRlcm5hbCBzdGF0ZSBvZiBidWlsZGVyLgogICAgIGlmIChidWlsZGVyLmlzOEJpdCgpKQot
ICAgICAgICBFWFBFQ1RfRVEoZXhwZWN0ZWQsIFN0cmluZyhidWlsZGVyLmNoYXJhY3RlcnM4KCks
IGJ1aWxkZXIubGVuZ3RoKCkpKTsKKyAgICAgICAgRVhQRUNUX0VRKGV4cGVjdGVkLCBTdHJpbmco
YnVpbGRlci5jaGFyYWN0ZXJzOCgpLnZhbHVlKCksIGJ1aWxkZXIubGVuZ3RoKCkpKTsKICAgICBl
bHNlCi0gICAgICAgIEVYUEVDVF9FUShleHBlY3RlZCwgU3RyaW5nKGJ1aWxkZXIuY2hhcmFjdGVy
czE2KCksIGJ1aWxkZXIubGVuZ3RoKCkpKTsKKyAgICAgICAgRVhQRUNUX0VRKGV4cGVjdGVkLCBT
dHJpbmcoYnVpbGRlci5jaGFyYWN0ZXJzMTYoKS52YWx1ZSgpLCBidWlsZGVyLmxlbmd0aCgpKSk7
CiB9CiAKIHZvaWQgZXhwZWN0RW1wdHkoY29uc3QgU3RyaW5nQnVpbGRlciYgYnVpbGRlcikKIHsK
ICAgICBFWFBFQ1RfRVEoMFUsIGJ1aWxkZXIubGVuZ3RoKCkpOwogICAgIEVYUEVDVF9UUlVFKGJ1
aWxkZXIuaXNFbXB0eSgpKTsKLSAgICBFWFBFQ1RfRVEoMCwgYnVpbGRlci5jaGFyYWN0ZXJzOCgp
KTsKKyAgICBFWFBFQ1RfRVEoMCwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpLnZhbHVlKCkpOwogfQog
CiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBEZWZhdWx0Q29uc3RydWN0b3IpCkBAIC03MSwyNCAr
NzEsMjQgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQXBwZW5kKQogICAgIGJ1aWxkZXIuYXBw
ZW5kKCcjJyk7CiAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIs
IGJ1aWxkZXIpOwogCi0gICAgYnVpbGRlci50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5
U3RyaW5nKCkuCisgICAgYnVpbGRlci50b1N0cmluZygpLnZhbHVlKCk7IC8vIFRlc3QgYWZ0ZXIg
cmVpZnlTdHJpbmcoKS4KICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXIxOwogICAgIGJ1aWxkZXIu
YXBwZW5kKCIiLCAwKTsKICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2Rl
ZmcjIiwgYnVpbGRlcik7Ci0gICAgYnVpbGRlcjEuYXBwZW5kKGJ1aWxkZXIuY2hhcmFjdGVyczgo
KSwgYnVpbGRlci5sZW5ndGgoKSk7CisgICAgYnVpbGRlcjEuYXBwZW5kKGJ1aWxkZXIuY2hhcmFj
dGVyczgoKS52YWx1ZSgpLCBidWlsZGVyLmxlbmd0aCgpKTsKICAgICBidWlsZGVyMS5hcHBlbmQo
IlhZWiIpOwotICAgIGJ1aWxkZXIuYXBwZW5kKGJ1aWxkZXIxLmNoYXJhY3RlcnM4KCksIGJ1aWxk
ZXIxLmxlbmd0aCgpKTsKKyAgICBidWlsZGVyLmFwcGVuZChidWlsZGVyMS5jaGFyYWN0ZXJzOCgp
LnZhbHVlKCksIGJ1aWxkZXIxLmxlbmd0aCgpKTsKICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcjWFlaIiwgYnVpbGRlcik7CiAKICAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXIyOwogICAgIGJ1aWxkZXIyLnJlc2VydmVDYXBhY2l0eSgx
MDApOwogICAgIGJ1aWxkZXIyLmFwcGVuZCgieHl6Iik7Ci0gICAgY29uc3QgTENoYXIqIGNoYXJh
Y3RlcnMgPSBidWlsZGVyMi5jaGFyYWN0ZXJzOCgpOworICAgIGNvbnN0IExDaGFyKiBjaGFyYWN0
ZXJzID0gYnVpbGRlcjIuY2hhcmFjdGVyczgoKS52YWx1ZSgpOwogICAgIGJ1aWxkZXIyLmFwcGVu
ZCgiMDEyMzQ1Njc4OSIpOwotICAgIEFTU0VSVF9FUShjaGFyYWN0ZXJzLCBidWlsZGVyMi5jaGFy
YWN0ZXJzOCgpKTsKLSAgICBidWlsZGVyMi50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsgLy8g
VGVzdCBhZnRlciByZWlmeVN0cmluZyB3aXRoIGJ1ZmZlciBwcmVzZXJ2ZWQuCisgICAgQVNTRVJU
X0VRKGNoYXJhY3RlcnMsIGJ1aWxkZXIyLmNoYXJhY3RlcnM4KCkudmFsdWUoKSk7CisgICAgYnVp
bGRlcjIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkudmFsdWUoKTsgLy8gVGVzdCBhZnRlciBy
ZWlmeVN0cmluZyB3aXRoIGJ1ZmZlciBwcmVzZXJ2ZWQuCiAgICAgYnVpbGRlcjIuYXBwZW5kKCJh
YmNkIik7Ci0gICAgQVNTRVJUX0VRKGNoYXJhY3RlcnMsIGJ1aWxkZXIyLmNoYXJhY3RlcnM4KCkp
OworICAgIEFTU0VSVF9FUShjaGFyYWN0ZXJzLCBidWlsZGVyMi5jaGFyYWN0ZXJzOCgpLnZhbHVl
KCkpOwogCiAgICAgLy8gVGVzdCBhcHBlbmRpbmcgVUNoYXIzMiBjaGFyYWN0ZXJzIHRvIFN0cmlu
Z0J1aWxkZXIuCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyRm9yVUNoYXIzMkFwcGVuZDsKQEAg
LTEwNSw5ICsxMDUsOSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZykKIHsKICAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODki
KTsKLSAgICBTdHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOworICAgIFN0cmluZyBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkudmFsdWUoKTsKICAgICBBU1NFUlRfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7Ci0gICAgQVNTRVJUX0VRKHN0cmluZy5pbXBsKCksIGJ1
aWxkZXIudG9TdHJpbmcoKS5pbXBsKCkpOworICAgIEFTU0VSVF9FUShzdHJpbmcuaW1wbCgpLCBi
dWlsZGVyLnRvU3RyaW5nKCkudmFsdWUoKS5pbXBsKCkpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhl
IFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0
b1N0cmluZygpLgogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
eiIpOwpAQCAtMTE1LDIwICsxMTUsMjAgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJp
bmcpCiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVj
dCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkg
aXMgbm90IGNoYW5nZWQuCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKLSAgICBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpLnZhbHVlKCk7CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CiAgICAgYnVpbGRlci5hcHBlbmQoIkFCQyIpOwog
ICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
eiIpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0
b1N0cmluZygpIHNob3VsZCBub3QgYWZmZWN0IHRoZSBjb250ZW50IG9mIHRoZSBTdHJpbmdCdWls
ZGVyLgotICAgIFN0cmluZyBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZygpOworICAgIFN0cmlu
ZyBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZygpLnZhbHVlKCk7CiAgICAgQVNTRVJUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEp
OwogICAgIHN0cmluZzEuYXBwZW5kKCJERUYiKTsKLSAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZygp
KTsKKyAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZygpLnZhbHVlKCkpOwogICAgIEFTU0VSVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBzdHJp
bmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZm
ZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKS4KLSAgICBzdHJpbmcxID0gYnVp
bGRlci50b1N0cmluZygpOworICAgIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nKCkudmFsdWUo
KTsKICAgICBidWlsZGVyLnJlc2l6ZSgxMCk7CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIpOwog
ICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
ekFCQyIpLCBzdHJpbmcxKTsKQEAgLTEzOSwxMSArMTM5LDExIEBAIFRFU1QoU3RyaW5nQnVpbGRl
clRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKICAgICB1bnNpZ25lZCBjYXBh
Y2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKLSAgICBTdHJpbmcgc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKKyAgICBTdHJpbmcgc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS52YWx1ZSgpOwogICAgIEFTU0VSVF9FUShjYXBhY2l0
eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKICAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5
IiksIHN0cmluZyk7Ci0gICAgQVNTRVJUX0VRKHN0cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJp
bmdQcmVzZXJ2ZUNhcGFjaXR5KCkuaW1wbCgpKTsKLSAgICBBU1NFUlRfRVEoc3RyaW5nLmNoYXJh
Y3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CisgICAgQVNTRVJUX0VRKHN0cmluZy5p
bXBsKCksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkudmFsdWUoKS5pbXBsKCkp
OworICAgIEFTU0VSVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJz
OCgpLnZhbHVlKCkpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxk
IG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNp
dHkoKS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKTsK
QEAgLTE1MiwyOCArMTUyLDI4IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJl
c2VydmVDYXBhY2l0eSkKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQg
bm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0
eSgpIGluIGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFuZ2VkLgogICAgIGJ1aWxkZXIucmVz
ZXJ2ZUNhcGFjaXR5KDIwMCk7CiAgICAgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7Ci0g
ICAgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKKyAgICBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLnZhbHVlKCk7CiAgICAgQVNT
RVJUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwotICAgIEFTU0VSVF9FUShzdHJp
bmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKKyAgICBBU1NFUlRfRVEo
c3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKS52YWx1ZSgpKTsKICAg
ICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoi
KSwgc3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7CiAgICAgQVNTRVJUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CiAK
ICAgICAvLyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVD
YXBhY2l0eSgpIHNob3VsZCBub3QgYWZmZWN0IHRoZSBjb250ZW50IG9mIHRoZSBTdHJpbmdCdWls
ZGVyLgogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwotICAgIFN0cmluZyBzdHJp
bmcxID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKKyAgICBTdHJpbmcgc3Ry
aW5nMSA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkudmFsdWUoKTsKICAgICBB
U1NFUlRfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7Ci0gICAgQVNTRVJUX0VRKHN0
cmluZzEuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKKyAgICBBU1NFUlRf
RVEoc3RyaW5nMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkudmFsdWUoKSk7
CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6QUJDIiksIHN0cmluZzEpOwogICAgIHN0cmluZzEuYXBwZW5kKCJERUYiKTsKLSAgICBBU1NF
UlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwg
YnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSk7CisgICAgQVNTRVJUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxkZXIudG9T
dHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkudmFsdWUoKSk7CiAgICAgQVNTRVJUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOwog
CiAgICAgLy8gUmVzaXppbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhl
IG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBjYXBh
Y2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKLSAgICBzdHJpbmcxID0gYnVpbGRlci50b1N0cmlu
Z1ByZXNlcnZlQ2FwYWNpdHkoKTsKKyAgICBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZ1ByZXNl
cnZlQ2FwYWNpdHkoKS52YWx1ZSgpOwogICAgIEFTU0VSVF9FUShjYXBhY2l0eSwgYnVpbGRlci5j
YXBhY2l0eSgpKTsKLSAgICBBU1NFUlRfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIu
Y2hhcmFjdGVyczgoKSk7CisgICAgQVNTRVJUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWls
ZGVyLmNoYXJhY3RlcnM4KCkudmFsdWUoKSk7CiAgICAgYnVpbGRlci5yZXNpemUoMTApOwogICAg
IGJ1aWxkZXIuYXBwZW5kKCIjIyMiKTsKICAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CkBAIC0xOTEsMTEgKzE5
MSwxMSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBBcnJheSkKIHsKICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKLSAgICBFWFBF
Q1RfRVEoJzAnLCBzdGF0aWNfY2FzdDxjaGFyPihidWlsZGVyWzBdKSk7Ci0gICAgRVhQRUNUX0VR
KCc5Jywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRlcls5XSkpOwotICAgIGJ1aWxkZXIudG9TdHJp
bmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgotICAgIEVYUEVDVF9FUSgnMCcsIHN0
YXRpY19jYXN0PGNoYXI+KGJ1aWxkZXJbMF0pKTsKLSAgICBFWFBFQ1RfRVEoJzknLCBzdGF0aWNf
Y2FzdDxjaGFyPihidWlsZGVyWzldKSk7CisgICAgRVhQRUNUX0VRKCcwJywgc3RhdGljX2Nhc3Q8
Y2hhcj4oYnVpbGRlclswXS52YWx1ZSgpKSk7CisgICAgRVhQRUNUX0VRKCc5Jywgc3RhdGljX2Nh
c3Q8Y2hhcj4oYnVpbGRlcls5XS52YWx1ZSgpKSk7CisgICAgYnVpbGRlci50b1N0cmluZygpLnZh
bHVlKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KKyAgICBFWFBFQ1RfRVEoJzAnLCBz
dGF0aWNfY2FzdDxjaGFyPihidWlsZGVyWzBdLnZhbHVlKCkpKTsKKyAgICBFWFBFQ1RfRVEoJzkn
LCBzdGF0aWNfY2FzdDxjaGFyPihidWlsZGVyWzldLnZhbHVlKCkpKTsKIH0KIAogVEVTVChTdHJp
bmdCdWlsZGVyVGVzdCwgUmVzaXplKQpAQCAtMjA5LDcgKzIwOSw3IEBAIFRFU1QoU3RyaW5nQnVp
bGRlclRlc3QsIFJlc2l6ZSkKICAgICBFWFBFQ1RfRVEoOFUsIGJ1aWxkZXIubGVuZ3RoKCkpOwog
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2NyIsIGJ1aWxkZXIpOwogCi0gICAgYnVp
bGRlci50b1N0cmluZygpOworICAgIGJ1aWxkZXIudG9TdHJpbmcoKS52YWx1ZSgpOwogICAgIGJ1
aWxkZXIucmVzaXplKDcpOwogICAgIEVYUEVDVF9FUSg3VSwgYnVpbGRlci5sZW5ndGgoKSk7CiAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTYiLCBidWlsZGVyKTsKQEAgLTI0MCwxMyAr
MjQwLDEzIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEVxdWFsKQogICAgIEFTU0VSVF9UUlVF
KGJ1aWxkZXIyICE9IGJ1aWxkZXIxKTsKICAgICBBU1NFUlRfVFJVRShTdHJpbmcoIjEyMyIpICE9
IGJ1aWxkZXIyKTsKICAgICBBU1NFUlRfVFJVRShidWlsZGVyMiAhPSBTdHJpbmcoIjEyMyIpKTsK
LSAgICBidWlsZGVyMi50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCisg
ICAgYnVpbGRlcjIudG9TdHJpbmcoKS52YWx1ZSgpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5n
KCkuCiAgICAgQVNTRVJUX1RSVUUoYnVpbGRlcjEgIT0gYnVpbGRlcjIpOwogCiAgICAgYnVpbGRl
cjIucmVzaXplKDMpOwogICAgIEFTU0VSVF9UUlVFKGJ1aWxkZXIxID09IGJ1aWxkZXIyKTsKIAot
ICAgIGJ1aWxkZXIxLnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KKyAg
ICBidWlsZGVyMS50b1N0cmluZygpLnZhbHVlKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmco
KS4KICAgICBBU1NFUlRfVFJVRShidWlsZGVyMSA9PSBidWlsZGVyMik7CiB9CiAKQEAgLTI2NSwx
NCArMjY1LDE0IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvQXRvbWljU3RyaW5nKQogewog
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVuZCgiMTIzIik7Ci0g
ICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKTsK
KyAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygp
LnZhbHVlKCk7CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMTIzIiksIGF0b21pY1N0cmluZyk7CiAK
ICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyNTYpOwogICAgIEFTU0VSVF9UUlVFKGJ1aWxk
ZXIuY2FuU2hyaW5rKCkpOwogICAgIGZvciAoaW50IGkgPSBidWlsZGVyLmxlbmd0aCgpOyBpIDwg
MTI4OyBpKyspCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCd4Jyk7Ci0gICAgQXRvbWljU3RyaW5n
IGF0b21pY1N0cmluZzEgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7CisgICAgQXRvbWljU3Ry
aW5nIGF0b21pY1N0cmluZzEgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCkudmFsdWUoKTsKICAg
ICBBU1NFUlRfRVEoMTI4dSwgYXRvbWljU3RyaW5nMS5sZW5ndGgoKSk7CiAgICAgQVNTRVJUX0VR
KCd4JywgYXRvbWljU3RyaW5nMVsxMjddKTsKIApAQCAtMjgyLDggKzI4Miw4IEBAIFRFU1QoU3Ry
aW5nQnVpbGRlclRlc3QsIFRvQXRvbWljU3RyaW5nKQogICAgIEFTU0VSVF9FUSgxMjh1LCBhdG9t
aWNTdHJpbmcxLmxlbmd0aCgpKTsKIAogICAgIEFTU0VSVF9GQUxTRShidWlsZGVyLmNhblNocmlu
aygpKTsKLSAgICBTdHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOwotICAgIEF0b21p
Y1N0cmluZyBhdG9taWNTdHJpbmcyID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpOworICAgIFN0
cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkudmFsdWUoKTsKKyAgICBBdG9taWNTdHJp
bmcgYXRvbWljU3RyaW5nMiA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKS52YWx1ZSgpOwogICAg
IC8vIFRoZXkgc2hvdWxkIHNoYXJlIHRoZSBzYW1lIFN0cmluZ0ltcGwuCiAgICAgQVNTRVJUX0VR
KGF0b21pY1N0cmluZzIuaW1wbCgpLCBzdHJpbmcuaW1wbCgpKTsKIH0KQEAgLTI5Miw0NSArMjky
LDQ1IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvQXRvbWljU3RyaW5nT25FbXB0eSkKIHsK
ICAgICB7IC8vIERlZmF1bHQgY29uc3RydWN0ZWQuCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKLSAgICAgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxkZXIudG9BdG9t
aWNTdHJpbmcoKTsKKyAgICAgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxkZXIu
dG9BdG9taWNTdHJpbmcoKS52YWx1ZSgpOwogICAgICAgICBBU1NFUlRfRVEoZW1wdHlBdG9tKCks
IGF0b21pY1N0cmluZyk7CiAgICAgfQogICAgIHsgLy8gV2l0aCBjYXBhY2l0eS4KICAgICAgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSg2
NCk7Ci0gICAgICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWlj
U3RyaW5nKCk7CisgICAgICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRv
QXRvbWljU3RyaW5nKCkudmFsdWUoKTsKICAgICAgICAgQVNTRVJUX0VRKGVtcHR5QXRvbSgpLCBh
dG9taWNTdHJpbmcpOwogICAgIH0KICAgICB7IC8vIEF0b21pY1N0cmluZyBjb25zdHJ1Y3RlZCBm
cm9tIGEgbnVsbCBzdHJpbmcuCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCkpOwotICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWlj
U3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpOworICAgICAgICBBdG9taWNTdHJpbmcg
YXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpLnZhbHVlKCk7CiAgICAgICAg
IEFTU0VSVF9FUShlbXB0eUF0b20oKSwgYXRvbWljU3RyaW5nKTsKICAgICB9CiAgICAgeyAvLyBB
dG9taWNTdHJpbmcgY29uc3RydWN0ZWQgZnJvbSBhbiBlbXB0eSBzdHJpbmcuCiAgICAgICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoZW1wdHlTdHJpbmco
KSk7Ci0gICAgICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWlj
U3RyaW5nKCk7CisgICAgICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRv
QXRvbWljU3RyaW5nKCkudmFsdWUoKTsKICAgICAgICAgQVNTRVJUX0VRKGVtcHR5QXRvbSgpLCBh
dG9taWNTdHJpbmcpOwogICAgIH0KICAgICB7IC8vIEF0b21pY1N0cmluZyBjb25zdHJ1Y3RlZCBm
cm9tIGFuIGVtcHR5IFN0cmluZ0J1aWxkZXIuCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKICAgICAgICAgU3RyaW5nQnVpbGRlciBlbXB0eUJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKGVtcHR5QnVpbGRlcik7Ci0gICAgICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcg
PSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7CisgICAgICAgIEF0b21pY1N0cmluZyBhdG9taWNT
dHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCkudmFsdWUoKTsKICAgICAgICAgQVNTRVJU
X0VRKGVtcHR5QXRvbSgpLCBhdG9taWNTdHJpbmcpOwogICAgIH0KICAgICB7IC8vIEF0b21pY1N0
cmluZyBjb25zdHJ1Y3RlZCBmcm9tIGFuIGVtcHR5IGNoYXIqIHN0cmluZy4KICAgICAgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgiIiwgMCk7Ci0gICAg
ICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7
CisgICAgICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3Ry
aW5nKCkudmFsdWUoKTsKICAgICAgICAgQVNTRVJUX0VRKGVtcHR5QXRvbSgpLCBhdG9taWNTdHJp
bmcpOwogICAgIH0KICAgICB7IC8vIENsZWFyZWQgU3RyaW5nQnVpbGRlci4KICAgICAgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIldlYktp
dCIpOwogICAgICAgICBidWlsZGVyLmNsZWFyKCk7Ci0gICAgICAgIEF0b21pY1N0cmluZyBhdG9t
aWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7CisgICAgICAgIEF0b21pY1N0cmlu
ZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCkudmFsdWUoKTsKICAgICAg
ICAgQVNTRVJUX0VRKGVtcHR5QXRvbSgpLCBhdG9taWNTdHJpbmcpOwogICAgIH0KIH0KZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKaW5kZXggZmMyOGIwMC4u
OGIyODMwOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5n
Vmlldy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5j
cHAKQEAgLTE2NCw2NSArMTY0LDY1IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXRlcmF0b3JzKQog
CiAgICAgU3RyaW5nQnVpbGRlciBiOwogICAgIGJ1aWxkKGIsIHsweEQ4MDAsIDB4REQ1NX0pOyAv
LyBTdXJyb2dhdGVzIGZvciB1bmljb2RlIGNvZGUgcG9pbnQgVSsxMDE1NQotICAgIEVYUEVDVF9U
UlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVBv
aW50cygpLCB7MHgxMDE1NX0pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlv
bnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVVbml0cygpLCB7MHhEODAwLCAweERENTV9
KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50
b1N0cmluZygpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSl9
KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50
b1N0cmluZygpLnZhbHVlKCkpLmNvZGVQb2ludHMoKSwgezB4MTAxNTV9KSk7CisgICAgRVhQRUNU
X1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVl
KCkpLmNvZGVVbml0cygpLCB7MHhEODAwLCAweERENTV9KSk7CisgICAgRVhQRUNUX1RSVUUoY29t
cGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmdyYXBo
ZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpfSkpOwogCiAg
ICAgYnVpbGQoYiwgezB4RDgwMH0pOyAvLyBMZWFkaW5nIHN1cnJvZ2F0ZSBvbmx5Ci0gICAgRVhQ
RUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5j
b2RlUG9pbnRzKCksIHsweEQ4MDB9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVy
YXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlVW5pdHMoKSwgezB4RDgwMH0pKTsK
LSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3Ry
aW5nKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi50b1N0cmluZygpKX0pKTsK
KyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3Ry
aW5nKCkudmFsdWUoKSkuY29kZVBvaW50cygpLCB7MHhEODAwfSkpOworICAgIEVYUEVDVF9UUlVF
KGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5j
b2RlVW5pdHMoKSwgezB4RDgwMH0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJh
dGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuZ3JhcGhlbWVDbHVzdGVycygp
LCB7U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSl9KSk7CiAKICAgICBidWlsZChiLCB7
MHhEODAwLCAweEQ4MDF9KTsgLy8gVHdvIGxlYWRpbmcgc3Vycm9nYXRlcwotICAgIEVYUEVDVF9U
UlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVBv
aW50cygpLCB7MHhEODAwLCAweEQ4MDF9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJ
dGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlVW5pdHMoKSwgezB4RDgwMCwg
MHhEODAxfSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdW
aWV3KGIudG9TdHJpbmcoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhiLmNoYXJh
Y3RlcnMxNigpLCAxKSwgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpICsgMSwgMSl9KSk7Cisg
ICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmlu
ZygpLnZhbHVlKCkpLmNvZGVQb2ludHMoKSwgezB4RDgwMCwgMHhEODAxfSkpOworICAgIEVYUEVD
VF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1
ZSgpKS5jb2RlVW5pdHMoKSwgezB4RDgwMCwgMHhEODAxfSkpOworICAgIEVYUEVDVF9UUlVFKGNv
bXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5ncmFw
aGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSwgMSks
IFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKS52YWx1ZSgpICsgMSwgMSl9KSk7CiAKICAgICBi
dWlsZChiLCB7MHhERDU1fSk7IC8vIFRyYWlsaW5nIHN1cnJvZ2F0ZSBvbmx5Ci0gICAgRVhQRUNU
X1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2Rl
UG9pbnRzKCksIHsweERENTV9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRp
b25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlVW5pdHMoKSwgezB4REQ1NX0pKTsKLSAg
ICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5n
KCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi50b1N0cmluZygpKX0pKTsKKyAg
ICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5n
KCkudmFsdWUoKSkuY29kZVBvaW50cygpLCB7MHhERDU1fSkpOworICAgIEVYUEVDVF9UUlVFKGNv
bXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2Rl
VW5pdHMoKSwgezB4REQ1NX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlv
bnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7
U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSl9KSk7CiAKICAgICBidWlsZChiLCB7MHhE
ODAwLCAnaCd9KTsgLy8gTGVhZGluZyBzdXJyb2dhdGUgZm9sbG93ZWQgYnkgbm9uLXN1cnJvZ2F0
ZQotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9T
dHJpbmcoKSkuY29kZVBvaW50cygpLCB7MHhEODAwLCAnaCd9KSk7Ci0gICAgRVhQRUNUX1RSVUUo
Y29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlVW5pdHMo
KSwgezB4RDgwMCwgJ2gnfSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9u
cyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmll
dyhiLmNoYXJhY3RlcnMxNigpLCAxKSwgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpICsgMSwg
MSl9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXco
Yi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVQb2ludHMoKSwgezB4RDgwMCwgJ2gnfSkpOworICAg
IEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmco
KS52YWx1ZSgpKS5jb2RlVW5pdHMoKSwgezB4RDgwMCwgJ2gnfSkpOworICAgIEVYUEVDVF9UUlVF
KGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5n
cmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSwg
MSksIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKS52YWx1ZSgpICsgMSwgMSl9KSk7CiAKICAg
ICBidWlsZChiLCB7MHgwMzA2fSk7IC8vICJDT01CSU5JTkcgQlJFVkUiCi0gICAgRVhQRUNUX1RS
VUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlUG9p
bnRzKCksIHsweDAzMDZ9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25z
KFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlVW5pdHMoKSwgezB4MDMwNn0pKTsKLSAgICBF
WFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkp
LmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi50b1N0cmluZygpKX0pKTsKKyAgICBF
WFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCku
dmFsdWUoKSkuY29kZVBvaW50cygpLCB7MHgwMzA2fSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBh
cmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlVW5p
dHMoKSwgezB4MDMwNn0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMo
U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7U3Ry
aW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSl9KSk7CiAKICAgICBidWlsZChiLCB7MHgwMzA2
LCAweEQ4MDAsIDB4REQ1NSwgJ2gnLCAnZScsICdsJywgJ28nfSk7IC8vIE1peCBvZiBzaW5nbGUg
Y29kZSB1bml0IGFuZCBtdWx0aSBjb2RlIHVuaXQgY29kZSBwb2ludHMKLSAgICBFWFBFQ1RfVFJV
RShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVQb2lu
dHMoKSwgezB4MDMwNiwgMHgxMDE1NSwgJ2gnLCAnZScsICdsJywgJ28nfSkpOwotICAgIEVYUEVD
VF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29k
ZVVuaXRzKCksIHsweDAzMDYsIDB4RDgwMCwgMHhERDU1LCAnaCcsICdlJywgJ2wnLCAnbyd9KSk7
Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0
cmluZygpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHsKLSAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJh
Y3RlcnMxNigpLCAxKSwKLSAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpICsgMSwg
MiksCi0gICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSArIDMsIDEpLAotICAgICAg
ICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkgKyA0LCAxKSwKLSAgICAgICAgU3RyaW5nVmll
dyhiLmNoYXJhY3RlcnMxNigpICsgNSwgMSksCi0gICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0
ZXJzMTYoKSArIDYsIDEpfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9u
cyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlUG9pbnRzKCksIHsweDAzMDYs
IDB4MTAxNTUsICdoJywgJ2UnLCAnbCcsICdvJ30pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJl
TG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVVuaXRz
KCksIHsweDAzMDYsIDB4RDgwMCwgMHhERDU1LCAnaCcsICdlJywgJ2wnLCAnbyd9KSk7CisgICAg
RVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygp
LnZhbHVlKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwgeworICAgICAgICBTdHJpbmdWaWV3KGIuY2hh
cmFjdGVyczE2KCkudmFsdWUoKSwgMSksCisgICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJz
MTYoKS52YWx1ZSgpICsgMSwgMiksCisgICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYo
KS52YWx1ZSgpICsgMywgMSksCisgICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKS52
YWx1ZSgpICsgNCwgMSksCisgICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKS52YWx1
ZSgpICsgNSwgMSksCisgICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKS52YWx1ZSgp
ICsgNiwgMSl9KSk7CiAKICAgICBidWlsZChiLCB7J2UnLCAweDAzMDF9KTsgLy8gIkNPTUJJTklO
RyBBQ1VURSIKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmll
dyhiLnRvU3RyaW5nKCkpLmNvZGVQb2ludHMoKSwgeydlJywgMHgwMzAxfSkpOwotICAgIEVYUEVD
VF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29k
ZVVuaXRzKCksIHsnZScsIDB4MDMwMX0pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0
ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0
cmluZ1ZpZXcoYi50b1N0cmluZygpKX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0
ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVBvaW50cygpLCB7
J2UnLCAweDAzMDF9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0
cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVVbml0cygpLCB7J2UnLCAweDAzMDF9
KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50
b1N0cmluZygpLnZhbHVlKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi50b1N0
cmluZygpLnZhbHVlKCkpfSkpOwogCiAgICAgYnVpbGQoYiwgeydlJywgMHgwMzAxLCAweDAzMDYs
ICdhJ30pOyAvLyAiQ09NQklOSU5HIEFDVVRFIiAiQ09NQklOSU5HIEJSRVZFIgotICAgIEVYUEVD
VF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29k
ZVBvaW50cygpLCB7J2UnLCAweDAzMDEsIDB4MDMwNiwgJ2EnfSkpOwotICAgIEVYUEVDVF9UUlVF
KGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRz
KCksIHsnZScsIDB4MDMwMSwgMHgwMzA2LCAnYSd9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFy
ZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5ncmFwaGVtZUNsdXN0ZXJz
KCksIHsKLSAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLCAzKSwKLSAgICAgICAg
U3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpICsgMywgMSksCisgICAgRVhQRUNUX1RSVUUoY29t
cGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVQ
b2ludHMoKSwgeydlJywgMHgwMzAxLCAweDAzMDYsICdhJ30pKTsKKyAgICBFWFBFQ1RfVFJVRShj
b21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29k
ZVVuaXRzKCksIHsnZScsIDB4MDMwMSwgMHgwMzA2LCAnYSd9KSk7CisgICAgRVhQRUNUX1RSVUUo
Y29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmdy
YXBoZW1lQ2x1c3RlcnMoKSwgeworICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCku
dmFsdWUoKSwgMyksCisgICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKS52YWx1ZSgp
ICsgMywgMSksCiAgICAgICAgIH0pKTsKIAogICAgIGJ1aWxkKGIsIHsweDExMTIsIDB4MTE2Ziwg
MHgxMWI2LCAweDExMDcsIDB4MTE2MSwgMHgxMUI4fSk7IC8vIEtvcmVhbiBjb21iaW5pbmcgSmFt
bwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9T
dHJpbmcoKSkuY29kZVBvaW50cygpLCB7MHgxMTEyLCAweDExNmYsIDB4MTFiNiwgMHgxMTA3LCAw
eDExNjEsIDB4MTFCOH0pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMo
U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVVbml0cygpLCB7MHgxMTEyLCAweDExNmYsIDB4
MTFiNiwgMHgxMTA3LCAweDExNjEsIDB4MTFCOH0pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJl
TG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmdyYXBoZW1lQ2x1c3RlcnMo
KSwgewotICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCksIDMpLAotICAgICAgICBT
dHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkgKyAzLCAzKX0pKTsKKyAgICBFWFBFQ1RfVFJVRShj
b21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29k
ZVBvaW50cygpLCB7MHgxMTEyLCAweDExNmYsIDB4MTFiNiwgMHgxMTA3LCAweDExNjEsIDB4MTFC
OH0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhi
LnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVVuaXRzKCksIHsweDExMTIsIDB4MTE2ZiwgMHgxMWI2
LCAweDExMDcsIDB4MTE2MSwgMHgxMUI4fSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29w
SXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5ncmFwaGVtZUNsdXN0
ZXJzKCksIHsKKyAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCksIDMp
LAorICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSArIDMsIDMpfSkp
OwogfQogCiBzdGF0aWMgVmVjdG9yPFN0cmluZz4gdmVjdG9yRnJvbVNwbGl0UmVzdWx0KGNvbnN0
IFN0cmluZ1ZpZXc6OlNwbGl0UmVzdWx0JiBzdWJzdHJpbmdzKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKaW5kZXgg
ZGNjZTQ2OC4uMDM4Mzg2NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCkBAIC0xMjA5LDE1ICsxMjA5LDE4IEBA
IFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgV2lkZU5GQSkKICAgICAgICAgfQogICAgIH0K
ICAgICBydWxlTGlzdC5hcHBlbmQoJ10nKTsKLSAgICAKLSAgICBhdXRvIGJhY2tlbmQgPSBtYWtl
QmFja2VuZChydWxlTGlzdC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogCi0gICAgdGVzdFJl
cXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvQUFB
IiksIHsgQ29udGVudEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6OkNTU0Rpc3BsYXlOb25lU2VsZWN0
b3IgfSk7Ci0gICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0
cDovL3dlYmtpdC5vcmcvWUFBIiksIHsgQ29udGVudEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6OkNT
U0Rpc3BsYXlOb25lU2VsZWN0b3IgfSk7Ci0gICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRv
Y3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvWkFBIiksIHsgfSwgMCk7Ci0gICAgdGVz
dFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcv
TEFBL0FBQSIpLCB7IH0sIDApOwotICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVu
dFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL0xBQS9NQUEiKSwgeyBDb250ZW50RXh0ZW5zaW9u
czo6QWN0aW9uVHlwZTo6Q1NTRGlzcGxheU5vbmVTZWxlY3RvciB9LCAwKTsKLSAgICB0ZXN0UmVx
dWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy8iKSwg
eyB9KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBydWxlTGlzdC50b1N0cmluZygpKSB7CisgICAg
ICAgIGF1dG8gYmFja2VuZCA9IG1ha2VCYWNrZW5kKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisK
KyAgICAgICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDov
L3dlYmtpdC5vcmcvQUFBIiksIHsgQ29udGVudEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6OkNTU0Rp
c3BsYXlOb25lU2VsZWN0b3IgfSk7CisgICAgICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5E
b2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL1lBQSIpLCB7IENvbnRlbnRFeHRlbnNp
b25zOjpBY3Rpb25UeXBlOjpDU1NEaXNwbGF5Tm9uZVNlbGVjdG9yIH0pOworICAgICAgICB0ZXN0
UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy9a
QUEiKSwgeyB9LCAwKTsKKyAgICAgICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50
UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvTEFBL0FBQSIpLCB7IH0sIDApOworICAgICAgICB0
ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9y
Zy9MQUEvTUFBIiksIHsgQ29udGVudEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6OkNTU0Rpc3BsYXlO
b25lU2VsZWN0b3IgfSwgMCk7CisgICAgICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1
bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnLyIpLCB7IH0pOworICAgIH0gZWxzZQorICAg
ICAgICBDUkFTSCgpOwogfQogICAgIAogI2lmZGVmIE5ERUJVRwpAQCAtMTI0Nyw3ICsxMjUwLDEw
IEBAIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgTGFyZ2VKdW1wcykKICAgICAgICAgICAg
ICAgICAgICAgcGF0dGVybi5hcHBlbmQoYzIpOwogICAgICAgICAgICAgICAgICAgICBwYXR0ZXJu
LmFwcGVuZChjMyk7CiAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kKGM0KTsKLSAg
ICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQ
YXJzZXI6OlBhcnNlU3RhdHVzOjpPaywgcGFyc2VyLmFkZFBhdHRlcm4ocGF0dGVybi50b1N0cmlu
ZygpLCB0cnVlLCBwYXR0ZXJuSWQrKykpOworICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBwYXR0ZXJuLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBFWFBF
Q1RfRVEoQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9r
LCBwYXJzZXIuYWRkUGF0dGVybigqc3RyaW5nLCB0cnVlLCBwYXR0ZXJuSWQrKykpOworICAgICAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMTMwOCwxNyArMTMx
NCwyMCBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIExhcmdlSnVtcHMpCiAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZCgneCcpOwogICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAg
YXV0byBtYXRjaGVzID0gaW50ZXJwcmV0ZXIuaW50ZXJwcmV0KHBhdHRlcm4udG9TdHJpbmcoKS51
dGY4KCksIDApOwotICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKChjMSArIGMyICsgYzMgKyBj
NCkgJSA0KSB7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbXBhcmVDb250ZW50cyhtYXRjaGVzLCB7IH0pOwotICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgMToKLSAgICAgICAgICAgICAg
ICAgICAgY2FzZSAyOgotICAgICAgICAgICAgICAgICAgICBjYXNlIDM6Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBjb21wYXJlQ29udGVudHMobWF0Y2hlcywge3BhdHRlcm5JZH0pOwotICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcGF0dGVybi50b1N0cmluZygpKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBhdXRvIG1hdGNoZXMgPSBpbnRlcnByZXRlci5pbnRlcnByZXQo
c3RyaW5nLT51dGY4KCksIDApOworICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoICgoYzEg
KyBjMiArIGMzICsgYzQpICUgNCkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhcmVDb250ZW50cyhtYXRjaGVzLCB7IH0p
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAg
ICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAg
ICAgICAgICAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBh
cmVDb250ZW50cyhtYXRjaGVzLCB7cGF0dGVybklkfSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAg
ICAgICAgICAgcGF0dGVybklkKys7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpA
QCAtMTM0OCwxMyArMTM1NywxOSBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIERlZXBO
RkEpCiAgICAgU3RyaW5nQnVpbGRlciBsb3RzT2ZBczsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgc2l6ZTsgKytpKQogICAgICAgICBsb3RzT2ZBcy5hcHBlbmQoJ0EnKTsKLSAgICBFWFBF
Q1RfRVEoQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9r
LCBwYXJzZXIuYWRkUGF0dGVybihsb3RzT2ZBcy50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGZh
bHNlLCAwKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbG90c09mQXMudG9TdHJpbmcoKSkKKyAg
ICAgICAgRVhQRUNUX0VRKENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNl
U3RhdHVzOjpPaywgcGFyc2VyLmFkZFBhdHRlcm4oc3RyaW5nLT51dGY4KCkuZGF0YSgpLCBmYWxz
ZSwgMCkpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICAKICAgICAvLyBGSVhNRTog
WWFyciBvdWdodCB0byBiZSBhYmxlIHRvIGhhbmRsZSAyTUIgcmVndWxhciBleHByZXNzaW9ucy4K
ICAgICBTdHJpbmdCdWlsZGVyIHRvb01hbnlBczsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgc2l6ZSAqIDIwOyArK2kpCiAgICAgICAgIHRvb01hbnlBcy5hcHBlbmQoJ0EnKTsKLSAgICBF
WFBFQ1RfRVEoQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6
OllhcnJFcnJvciwgcGFyc2VyLmFkZFBhdHRlcm4odG9vTWFueUFzLnRvU3RyaW5nKCkudXRmOCgp
LmRhdGEoKSwgZmFsc2UsIDApKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0b29NYW55QXMudG9T
dHJpbmcoKSkKKyAgICAgICAgRVhQRUNUX0VRKENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQ
YXJzZXI6OlBhcnNlU3RhdHVzOjpZYXJyRXJyb3IsIHBhcnNlci5hZGRQYXR0ZXJuKHN0cmluZy0+
dXRmOCgpLmRhdGEoKSwgZmFsc2UsIDApKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAg
ICAgCiAgICAgU3RyaW5nQnVpbGRlciBuZXN0ZWRHcm91cHM7CiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IHNpemU7ICsraSkKQEAgLTE0OTAsMTcgKzE1MDUsMjIgQEAgVEVTVF9GKENvbnRl
bnRFeHRlbnNpb25UZXN0LCBJbnZhbGlkSlNPTikKICAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7
XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJub3RpZnlcIixcIm5vdGlmaWNhdGlvblwiOltdfSxcInRy
aWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCIuKlwifX1dIiwgQ29udGVudEV4dGVuc2lvbnM6OkNv
bnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWROb3RpZmljYXRpb24pOwogICAgIGNoZWNr
Q29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcIm5vdGlmeVwiLFwibm90aWZp
Y2F0aW9uXCI6XCJoZXJlJ3MgbXkgbm90aWZpY2F0aW9uXCJ9LFwidHJpZ2dlclwiOntcInVybC1m
aWx0ZXJcIjpcIi4qXCJ9fV0iLCB7IH0pOwogICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFj
dGlvblwiOntcInR5cGVcIjpcIm5vdGlmeVwiLFwibm90aWZpY2F0aW9uXCI6XCJcXHUxMjM0XCJ9
LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIi4qXCJ9fV0iLCB7IH0pOwotICAgIAotICAg
IFN0cmluZ0J1aWxkZXIgcnVsZXM7Ci0gICAgcnVsZXMuYXBwZW5kKCJbIik7Ci0gICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IDQ5OTk5OyArK2kpCi0gICAgICAgIHJ1bGVzLmFwcGVuZCgie1wi
YWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwi
OlwiYVwifX0sIik7Ci0gICAgU3RyaW5nIHJ1bGVzNTAwMDAgPSBydWxlcy50b1N0cmluZygpOwot
ICAgIFN0cmluZyBydWxlczUwMDAxID0gcnVsZXMudG9TdHJpbmcoKTsKLSAgICBydWxlczUwMDAw
LmFwcGVuZCgie1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1wi
dXJsLWZpbHRlclwiOlwiYVwifX1dIik7Ci0gICAgcnVsZXM1MDAwMS5hcHBlbmQoIntcImFjdGlv
blwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcImFc
In19LHtcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1m
aWx0ZXJcIjpcImFcIn19XSIpOwotICAgIGNoZWNrQ29tcGlsZXJFcnJvcihydWxlczUwMDAwLnV0
ZjgoKS5kYXRhKCksIHsgfSk7Ci0gICAgY2hlY2tDb21waWxlckVycm9yKHJ1bGVzNTAwMDEudXRm
OCgpLmRhdGEoKSwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNP
TlRvb01hbnlSdWxlcyk7CisKKyAgICB7CisgICAgICAgIFN0cmluZ0J1aWxkZXIgcnVsZXM7Cisg
ICAgICAgIHJ1bGVzLmFwcGVuZCgiWyIpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgNDk5OTk7ICsraSkKKyAgICAgICAgICAgIHJ1bGVzLmFwcGVuZCgie1wiYWN0aW9uXCI6e1wi
dHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiYVwifX0sIik7
CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJ1bGVzLnRvU3RyaW5nKCkpIHsKKyAgICAgICAg
ICAgIFN0cmluZyBydWxlczUwMDAwID0gKnN0cmluZzsKKyAgICAgICAgICAgIFN0cmluZyBydWxl
czUwMDAxID0gKnN0cmluZzsKKyAgICAgICAgICAgIHJ1bGVzNTAwMDAuYXBwZW5kKCJ7XCJhY3Rp
b25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJh
XCJ9fV0iKTsKKyAgICAgICAgICAgIHJ1bGVzNTAwMDEuYXBwZW5kKCJ7XCJhY3Rpb25cIjp7XCJ0
eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJhXCJ9fSx7XCJh
Y3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6
XCJhXCJ9fV0iKTsKKyAgICAgICAgICAgIGNoZWNrQ29tcGlsZXJFcnJvcihydWxlczUwMDAwLnV0
ZjgoKS5kYXRhKCksIHsgfSk7CisgICAgICAgICAgICBjaGVja0NvbXBpbGVyRXJyb3IocnVsZXM1
MDAwMS51dGY4KCkuZGF0YSgpLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVy
cm9yOjpKU09OVG9vTWFueVJ1bGVzKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBDUkFT
SCgpOworICAgIH0KICAgICAKICAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7
XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQu
b3JnXCIsXCJpZi1kb21haW5cIjp7fX19XSIsIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0
ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQ29uZGl0aW9uTGlzdCk7CiAgICAgY2hlY2tDb21waWxl
ckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1wi
dXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwiaWYtZG9tYWluXCI6WzVdfX1dIiwgQ29udGVu
dEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRDb25kaXRpb25M
aXN0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxl
TW9uaXRvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0
b3IuY3BwCmluZGV4IDVmMWRjOGIuLmU5NGVmYzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcApAQCAtMTA3LDcgKzEwNyw5IEBAIHN0
YXRpYyBTdHJpbmcgY3JlYXRlQ29tbWFuZChjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmlu
ZyYgcGF5bG9hZCkKICAgICBjb21tYW5kLmFwcGVuZExpdGVyYWwoIlwiID4gIik7CiAgICAgY29t
bWFuZC5hcHBlbmQocGF0aCk7CiAKLSAgICByZXR1cm4gY29tbWFuZC50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IGNvbW1hbmQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyByZWFkQ29udGVudHNPZkZp
bGUoY29uc3QgU3RyaW5nJiBwYXRoKQpAQCAtMjY3LDEwICsyNjksMTMgQEAgVEVTVF9GKEZpbGVN
b25pdG9yVGVzdCwgRGV0ZWN0RGVsZXRpb24pCiAgICAgICAgIGNvbW1hbmQuYXBwZW5kTGl0ZXJh
bCgicm0gLWYgIik7CiAgICAgICAgIGNvbW1hbmQuYXBwZW5kKHRlbXBGaWxlUGF0aCgpKTsKIAot
ICAgICAgICBhdXRvIHJjID0gc3lzdGVtKGNvbW1hbmQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgp
KTsKLSAgICAgICAgQVNTRVJUX05FKHJjLCAtMSk7Ci0gICAgICAgIGlmIChyYyA9PSAtMSkKLSAg
ICAgICAgICAgIGRpZEZpbmlzaCA9IHRydWU7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGNv
bW1hbmQudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgYXV0byByYyA9IHN5c3RlbShzdHJpbmct
PnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgQVNTRVJUX05FKHJjLCAtMSk7CisgICAgICAg
ICAgICBpZiAocmMgPT0gLTEpCisgICAgICAgICAgICAgICAgZGlkRmluaXNoID0gdHJ1ZTsKKyAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0pOwogCiAgICAgVXRpbDo6
cnVuKCZkaWRGaW5pc2gpOwpAQCAtMzI0LDEwICszMjksMTMgQEAgVEVTVF9GKEZpbGVNb25pdG9y
VGVzdCwgRGV0ZWN0Q2hhbmdlQW5kVGhlbkRlbGV0ZSkKICAgICAgICAgY29tbWFuZC5hcHBlbmRM
aXRlcmFsKCJybSAtZiAiKTsKICAgICAgICAgY29tbWFuZC5hcHBlbmQodGVtcEZpbGVQYXRoKCkp
OwogCi0gICAgICAgIGF1dG8gcmMgPSBzeXN0ZW0oY29tbWFuZC50b1N0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOwotICAgICAgICBBU1NFUlRfTkUocmMsIC0xKTsKLSAgICAgICAgaWYgKHJjID09IC0x
KQotICAgICAgICAgICAgZGlkRmluaXNoID0gdHJ1ZTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5n
ID0gY29tbWFuZC50b1N0cmluZygpKSB7CisgICAgICAgICAgICBhdXRvIHJjID0gc3lzdGVtKHN0
cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBBU1NFUlRfTkUocmMsIC0xKTsKKyAg
ICAgICAgICAgIGlmIChyYyA9PSAtMSkKKyAgICAgICAgICAgICAgICBkaWRGaW5pc2ggPSB0cnVl
OworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfSk7CiAKICAgICBV
dGlsOjpydW4oJmRpZEZpbmlzaCk7CkBAIC0zNjMsMTAgKzM3MSwxMyBAQCBURVNUX0YoRmlsZU1v
bml0b3JUZXN0LCBEZXRlY3REZWxldGVCdXROb3RTdWJzZXF1ZW50Q2hhbmdlKQogICAgICAgICBj
b21tYW5kLmFwcGVuZExpdGVyYWwoInJtIC1mICIpOwogICAgICAgICBjb21tYW5kLmFwcGVuZCh0
ZW1wRmlsZVBhdGgoKSk7CiAKLSAgICAgICAgYXV0byByYyA9IHN5c3RlbShjb21tYW5kLnRvU3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIEFTU0VSVF9ORShyYywgLTEpOwotICAgICAg
ICBpZiAocmMgPT0gLTEpCi0gICAgICAgICAgICBkaWRGaW5pc2ggPSB0cnVlOworICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBjb21tYW5kLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIGF1dG8g
cmMgPSBzeXN0ZW0oc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIEFTU0VSVF9O
RShyYywgLTEpOworICAgICAgICAgICAgaWYgKHJjID09IC0xKQorICAgICAgICAgICAgICAgIGRp
ZEZpbmlzaCA9IHRydWU7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAg
ICB9KTsKIAogICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Mb2dnaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9Mb2dnaW5nLmNwcAppbmRleCAxZTRjMzQyLi43ZGVkYWQyIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTG9nZ2luZy5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0xvZ2dpbmcuY3BwCkBAIC05NSw3
ICs5NSw5IEBAIHB1YmxpYzoKICAgICAgICAgd2hpbGUgKChsaW5lID0gZmdldHMoYnVmZmVyLCBz
aXplb2YoYnVmZmVyKSwgbV9zdGRlcnIpKSkKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQobGlu
ZSk7CiAKLSAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0
byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9sb2dnZXIuZ2V0KCk7IH0KQEAgLTM0MCwxNSArMzQyLDE4
IEBAIFRFU1RfRihMb2dnaW5nVGVzdCwgTG9nZ2VySGVscGVyKQogICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiTG9nZ2luZ1Rlc3Q6OlRlc3RCb2R5KCIpOwogICAgIGFwcGVuZFVuc2lnbmVkNjRB
c0hleChyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4obG9nSWRlbnRpZmllcigpKSwgYnVpbGRl
cik7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpIik7Ci0gICAgU3RyaW5nIHNpZ25hdHVy
ZSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCkpIHsKKyAgICAgICAgU3RyaW5nIHNpZ25hdHVyZSA9ICpzdHJpbmc7CiAKLSAgICBB
TFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwotICAgIEVYUEVDVF9UUlVFKHRoaXMtPm91dHB1dCgp
LmNvbnRhaW5zKHNpZ25hdHVyZSwgZmFsc2UpKTsKKyAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVO
VElGSUVSKTsKKyAgICAgICAgRVhQRUNUX1RSVUUodGhpcy0+b3V0cHV0KCkuY29udGFpbnMoc2ln
bmF0dXJlLCBmYWxzZSkpOwogCi0gICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAiV2VsY29t
ZSBiYWNrIiwgIiBteSBmcmllbmRzIiwgIiB0byB0aGUgc2hvdyIsICIgdGhhdCBuZXZlciBlbmRz
Iik7Ci0gICAgU3RyaW5nIHJlc3VsdCA9IHRoaXMtPm91dHB1dCgpOwotICAgIEVYUEVDVF9UUlVF
KHJlc3VsdC5jb250YWlucyhzaWduYXR1cmUsIGZhbHNlKSk7Ci0gICAgRVhQRUNUX1RSVUUocmVz
dWx0LmNvbnRhaW5zKCJ0byB0aGUgc2hvdyB0aGF0IG5ldmVyIiwgZmFsc2UpKTsKKyAgICAgICAg
QUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAiV2VsY29tZSBiYWNrIiwgIiBteSBmcmllbmRzIiwg
IiB0byB0aGUgc2hvdyIsICIgdGhhdCBuZXZlciBlbmRzIik7CisgICAgICAgIFN0cmluZyByZXN1
bHQgPSB0aGlzLT5vdXRwdXQoKTsKKyAgICAgICAgRVhQRUNUX1RSVUUocmVzdWx0LmNvbnRhaW5z
KHNpZ25hdHVyZSwgZmFsc2UpKTsKKyAgICAgICAgRVhQRUNUX1RSVUUocmVzdWx0LmNvbnRhaW5z
KCJ0byB0aGUgc2hvdyB0aGF0IG5ldmVyIiwgZmFsc2UpKTsKKyAgICB9IGVsc2UKKyAgICAgICAg
Q1JBU0goKTsKIAogICAgIFdURlNldExvZ0NoYW5uZWxMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZM
b2dMZXZlbFdhcm5pbmcpOwogCkBAIC0zNzEsMTAgKzM3NiwxMSBAQCBwdWJsaWM6CiAKICAgICBT
dHJpbmcgbG9nKCkKICAgICB7Ci0gICAgICAgIFN0cmluZyBsb2cgPSBtX2xvZ0J1ZmZlci50b1N0
cmluZygpOwotICAgICAgICBtX2xvZ0J1ZmZlci5jbGVhcigpOwotCi0gICAgICAgIHJldHVybiBs
b2c7CisgICAgICAgIGlmIChhdXRvIGxvZyA9IG1fbG9nQnVmZmVyLnRvU3RyaW5nKCkpIHsKKyAg
ICAgICAgICAgIG1fbG9nQnVmZmVyLmNsZWFyKCk7CisgICAgICAgICAgICByZXR1cm4gbG9nOwor
ICAgICAgICB9CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgV1RGTG9nQ2hhbm5lbCBj
aGFubmVsKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0Q2hhbm5lbDsgfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1RleHRDb2RlYy5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVGV4dENvZGVjLmNwcAppbmRleCBmZDA1MDUwLi45ZTU1
NTMwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVGV4dENv
ZGVjLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVGV4dENvZGVj
LmNwcApAQCAtOTgsNyArOTgsOSBAQCBzdGF0aWMgY29uc3QgY2hhciogdGVzdERlY29kZShjb25z
dCBjaGFyKiBlbmNvZGluZ05hbWUsIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxjbwogICAgICAgICBp
ZiAoc2F3RXJyb3IpCiAgICAgICAgICAgICByZXN1bHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiBF
UlJPUiIpOwogICAgIH0KLSAgICByZXR1cm4gZXNjYXBlTm9uQVNDSUlQcmludGFibGVDaGFyYWN0
ZXJzKHJlc3VsdEJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVz
dWx0QnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gZXNjYXBlTm9uQVNDSUlQcmlu
dGFibGVDaGFyYWN0ZXJzKCpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIFRFU1QoVGV4dENv
ZGVjLCBVVEY4KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9XVEZTdHJpbmdVdGls
aXRpZXMuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvV1RGU3RyaW5nVXRpbGl0aWVzLmgKaW5kZXgg
ZWNiYTljNC4uZjVkNDFlZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9XVEZTdHJp
bmdVdGlsaXRpZXMuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1dURlN0cmluZ1V0aWxpdGll
cy5oCkBAIC01MSw1ICs1MSw3IEBAIHN0YXRpYyBTdHJpbmcgdXRmMTZTdHJpbmcoY29uc3QgY2hh
cjE2X3QgKCZ1cmwpW2xlbmd0aF0pCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkobGVuZ3Ro
IC0gMSk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW5ndGggLSAxOyArK2kpCiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKHN0YXRpY19jYXN0PFVDaGFyPih1cmxbaV0pKTsKLSAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlLmNwcAppbmRleCAwNTU1NDE4Li41MGIxMjE0IDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2UuY3BwCkBAIC0xMDYsNyArMTA2LDkgQEAgc3RhdGljIFdURjo6U3RyaW5nIGR1bXBQYXRo
KEpTR2xvYmFsQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBub2RlVmFsdWUpCiAgICAg
ICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGR1bXBQYXRoKGNvbnRleHQsIChKU09iamVjdFJlZilw
YXJlbnROb2RlKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBXVEY6OlN0cmlu
ZyBkdW1wUGF0aChXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiB3
b3JsZCwgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIG5vZGUpCkBAIC0xNTYsNyArMTU4LDkgQEAgc3Rh
dGljIFdURjo6U3RyaW5nIHJhbmdlVG9TdHIoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxl
U2NyaXB0V29ybGRSZWYgd29ybGQKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcihlbmRP
ZmZzZXQpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIG9mICIpOwogICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kKGR1bXBQYXRoKGNvbnRleHQsIGVuZE5vZGVPYmplY3QpKTsKLSAg
ICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogc3RhdGljIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBOYXZpZ2F0aW9u
VHlwZVRvU3RyaW5nKFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSB0eXBlKQpAQCAtMTg1LDcgKzE4OSw5
IEBAIHN0YXRpYyBXVEY6OlN0cmluZyBzdHlsZURlY1RvU3RyKFdLQnVuZGxlQ1NTU3R5bGVEZWNs
YXJhdGlvblJlZiBzdHlsZSkKICAgICAvLyB0aGUgZWRpdGluZyBjbGllbnQgaWYgdGhlIHN0eWxp
bmcgb3BlcmF0aW9uIHNvdXJjZSBpcyBDb21tYW5kRnJvbURPTSBvciBDb21tYW5kRnJvbURPTVdp
dGhVc2VySW50ZXJmYWNlLgogICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsKICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIjxET01DU1NTdHlsZURlY2xhcmF0aW9uIEFERFJF
U1M+Iik7Ci0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBXVEY6OlN0cmluZyBzZWN1cml0eU9yaWdp
blRvU3RyKFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luKQpAQCAtMTk5LDcgKzIwNSw5IEBAIHN0
YXRpYyBXVEY6OlN0cmluZyBzZWN1cml0eU9yaWdpblRvU3RyKFdLU2VjdXJpdHlPcmlnaW5SZWYg
b3JpZ2luKQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKFdLU2VjdXJpdHlPcmlnaW5H
ZXRQb3J0KG9yaWdpbikpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCd9Jyk7CiAKLSAgICBy
ZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogc3RhdGljIFdURjo6U3RyaW5nIGZyYW1lVG9TdHIoV0tCdW5kbGVGcmFtZVJl
ZiBmcmFtZSkKQEAgLTIyMyw3ICsyMzEsOSBAQCBzdGF0aWMgV1RGOjpTdHJpbmcgZnJhbWVUb1N0
cihXS0J1bmRsZUZyYW1lUmVmIGZyYW1lKQogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJmcmFtZSAoYW5vbnltb3VzKSIpOwogICAgIH0KICAgICAKLSAgICByZXR1cm4g
c3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogc3RhdGljIGlubGluZSBib29sIGlzTG9jYWxGaWxlU2NoZW1lKFdLU3RyaW5nUmVmIHNj
aGVtZSkKQEAgLTQ3Niw3ICs0ODYsMTAgQEAgc3RhdGljIHZvaWQgZHVtcExvYWRFdmVudChXS0J1
bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCBjaGFyKiBldmVudE5hbWUpCiAgICAgc3RyaW5nQnVp
bGRlci5hcHBlbmRMaXRlcmFsKCIgLSAiKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChldmVu
dE5hbWUpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIEluamVjdGVkQnVu
ZGxlOjpzaW5nbGV0b24oKS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBJ
bmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNl
CisgICAgICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBkdW1wUmVxdWVzdERl
c2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0LCBT
dHJpbmdCdWlsZGVyJiBzdHJpbmdCdWlsZGVyKQpAQCAtOTQwLDcgKzk1MywxMCBAQCB2b2lkIElu
amVjdGVkQnVuZGxlUGFnZTo6ZHVtcCgpCiAgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5zZXRS
ZXBhaW50UmVjdHMoYWRvcHRXSyhXS0J1bmRsZVBhZ2VDb3B5VHJhY2tlZFJlcGFpbnRSZWN0cyht
X3BhZ2UpKS5nZXQoKSk7CiAgICAgfQogCi0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChz
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3Ry
aW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgaW5qZWN0ZWRCdW5kbGUuZG9u
ZSgpOwogfQogCkBAIC05ODgsNyArMTAwNCwxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6
ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV0tTdHJpbmdSZWYgdGl0bGUsIFdLQnVuZGxlRnJhbQog
ICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIidcbiIpOwogICAgIH0KIAotICAg
IGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGlu
amVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFT
SCgpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2xlYXJXaW5kb3dGb3JGcmFt
ZShXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIHdvcmxkKQpA
QCAtMTA0Myw3ICsxMDYyLDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUGVyZm9y
bUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1CiAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgLSB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkw6
ICIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHBhdGhTdWl0YWJsZUZvclRlc3RSZXN1bHQo
dXJsKSk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgXG4iKTsKLSAgICBpbmpl
Y3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpbmplY3Rl
ZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsK
IH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25G
b3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1NhbWVEb2N1bWVudE5hdmlnYXRpb25U
eXBlIHR5cGUpCkBAIC0xMDc3LDcgKzEwOTksMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6
OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUpCiAg
ICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIC0gaGFzICIpOwogICAgICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcihwZW5kaW5nRnJhbWVVbmxvYWRFdmVudHMpOwogICAg
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiBvbnVubG9hZCBoYW5kbGVyKHMpXG4i
KTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3Ry
aW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIH0KIApAQCAtMTE1MCw3ICsx
MTc1LDEwIEBAIFdLVVJMUmVxdWVzdFJlZiBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxTZW5kUmVx
dWVzdEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlCiAgICAgICAgIHN0cmluZ0J1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiIHJlZGlyZWN0UmVzcG9uc2UgIik7CiAgICAgICAgIGR1bXBSZXNwb25z
ZURlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KHJlc3BvbnNlLCBzdHJpbmdCdWlsZGVy
LCBpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZER1bXBBbGxIVFRQUmVkaXJlY3Rl
ZFJlc3BvbnNlSGVhZGVycygpKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7
Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBpZiAoaW5qZWN0ZWRC
dW5kbGUuaXNUZXN0UnVubmluZygpICYmIGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+d2ls
bFNlbmRSZXF1ZXN0UmV0dXJuc051bGwoKSkKQEAgLTExODYsNyArMTIxNCwxMCBAQCBXS1VSTFJl
cXVlc3RSZWYgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZShXS0J1
bmRsZVBhZ2VSZWYgcGFnZQogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFs
KCJCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgIik7CiAgICAgICAgICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyh1cmxTdHJpbmcpKTsKICAgICAgICAgICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0
VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIGluamVjdGVk
QnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9CiAg
ICAgfQpAQCAtMTIxNSw3ICsxMjQ2LDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRS
ZWNlaXZlUmVzcG9uc2VGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCCiAgICAg
ICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIC0gZGlkUmVjZWl2ZVJlc3BvbnNlICIp
OwogICAgICAgICBkdW1wUmVzcG9uc2VEZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChy
ZXNwb25zZSwgc3RyaW5nQnVpbGRlcik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdc
bicpOwotICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAKQEAgLTEyMzksNyAr
MTI3MywxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlRm9y
UmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQgogCiAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmQoJ1xuJyk7CiAKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAg
IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRp
ZFJlY2VpdmVDb250ZW50TGVuZ3RoRm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRs
ZUZyYW1lUmVmLCB1aW50NjRfdCwgdWludDY0X3QpCkBAIC0xMjU4LDcgKzEyOTUsMTAgQEAgdm9p
ZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZpbmlzaExvYWRGb3JSZXNvdXJjZShXS0J1bmRsZVBh
Z2VSZWYsIFdLQnVuZGxlRnJhbWUKICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7CiAg
ICAgZHVtcFJlc291cmNlVVJMKGlkZW50aWZpZXIsIHN0cmluZ0J1aWxkZXIpOwogICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIC0gZGlkRmluaXNoTG9hZGluZ1xuIik7Ci0gICAgaW5q
ZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0
ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7
CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRGYWlsTG9hZEZvclJlc291cmNlKFdL
QnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgdWludDY0X3QgaWRlbnRpZmllciwgV0tF
cnJvclJlZiBlcnJvcikKQEAgLTEyNzYsNyArMTMxNiwxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxl
UGFnZTo6ZGlkRmFpbExvYWRGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJh
bWVSZQogCiAgICAgZHVtcEVycm9yRGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQoZXJy
b3IsIHN0cmluZ0J1aWxkZXIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAg
IGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGlu
amVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFT
SCgpOwogfQogCiBib29sIEluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkQ2FjaGVSZXNwb25zZShX
S0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIHVpbnQ2NF90IGlkZW50aWZpZXIpCkBA
IC0xMjkxLDcgKzEzMzQsMTAgQEAgYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZENhY2hl
UmVzcG9uc2UoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLAogICAgIFN0cmluZ0J1
aWxkZXIgc3RyaW5nQnVpbGRlcjsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcihpZGVu
dGlmaWVyKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiAtIHdpbGxDYWNoZVJl
c3BvbnNlOiBjYWxsZWRcbiIpOwotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5n
QnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7
CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgLy8gVGhlIGRlZmF1bHQgYmVoYXZp
b3IgaXMgdGhlIGNhY2hlIHRoZSByZXNwb25zZS4KICAgICByZXR1cm4gdHJ1ZTsKQEAgLTEzMzUs
NyArMTM4MSwxMCBAQCBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb24gSW5qZWN0ZWRCdW5kbGVQYWdl
OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdLQgogICAgICAgICBzdHJpbmdCdWls
ZGVyLmFwcGVuZExpdGVyYWwoIiBzaG91bGQgb3BlbiBVUkxzIGV4dGVybmFsbHkgLSAiKTsKICAg
ICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoV0tCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uR2V0U2hv
dWxkT3BlbkV4dGVybmFsVVJMcyhuYXZpZ2F0aW9uQWN0aW9uKSA/ICJ5ZXMiIDogIm5vIik7CiAg
ICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBpbmplY3RlZEJ1bmRs
ZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGluamVjdGVk
QnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENS
QVNIKCk7CiAgICAgfQogCiAgICAgaWYgKCFpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPmlz
UG9saWN5RGVsZWdhdGVFbmFibGVkKCkpCkBAIC0xMzYzLDcgKzE0MTIsMTAgQEAgV0tCdW5kbGVQ
YWdlUG9saWN5QWN0aW9uIEluamVjdGVkQnVuZGxlUGFnZTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbihXS0IKICAgICB9CiAKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsK
LSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAg
Q1JBU0goKTsKIAogICAgIGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+bm90aWZ5RG9uZSgp
OwogCkBAIC0xMzg0LDcgKzE0MzYsMTAgQEAgV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uIEluamVj
dGVkQnVuZGxlUGFnZTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV0tCdW5kbGVQYWcKICAgICAg
ICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJQb2xpY3kgZGVsZWdhdGU6IHJlc291cmNl
IGlzIGFuIGF0dGFjaG1lbnQsIHN1Z2dlc3RlZCBmaWxlIG5hbWUgXCciKTsKICAgICAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmQodG9XVEZTdHJpbmcoZmlsZW5hbWUpKTsKICAgICAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcJ1xuIik7Ci0gICAgICAgIEluamVjdGVkQnVuZGxlOjpz
aW5nbGV0b24oKS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAg
IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIGlmIChpbmplY3RlZEJ1
bmRsZS50ZXN0UnVubmVyKCkgJiYgaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGRE
ZWNpZGVSZXNwb25zZVBvbGljeUFmdGVyRGVsYXkoKSkKQEAgLTE0ODEsMTAgKzE1MzYsMTMgQEAg
dm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxBZGRNZXNzYWdlVG9Db25zb2xlKFdLU3RyaW5n
UmVmIG1lc3NhZ2UsIHVpbnQzMl90IGwKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChtZXNzYWdl
U3RyaW5nKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKIAotICAgIGlmIChpbmpl
Y3RlZEJ1bmRsZS5kdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIoKSkKLSAgICAgICAgaW5qZWN0ZWRC
dW5kbGUuZHVtcFRvU3RkRXJyKHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgZWxzZQot
ICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmco
KSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKSB7Cisg
ICAgICAgIGlmIChpbmplY3RlZEJ1bmRsZS5kdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIoKSkKKyAg
ICAgICAgICAgIGluamVjdGVkQnVuZGxlLmR1bXBUb1N0ZEVycigqc3RyaW5nKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAg
ICB9IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6
OndpbGxTZXRTdGF0dXNiYXJUZXh0KFdLU3RyaW5nUmVmIHN0YXR1c2JhclRleHQpCkBAIC0xNTAw
LDcgKzE1NTgsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxTZXRTdGF0dXNiYXJU
ZXh0KFdLU3RyaW5nUmVmIHN0YXR1c2JhclRleHQpCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRM
aXRlcmFsKCJVSSBERUxFR0FURSBTVEFUVVMgQ0FMTEJBQ0s6IHNldFN0YXR1c1RleHQ6Iik7CiAg
ICAgc3RyaW5nQnVpbGRlci5hcHBlbmQodG9XVEZTdHJpbmcoc3RhdHVzYmFyVGV4dCkpOwogICAg
IHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRl
eHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQo
KnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEluamVjdGVk
QnVuZGxlUGFnZTo6d2lsbFJ1bkphdmFTY3JpcHRBbGVydChXS1N0cmluZ1JlZiBtZXNzYWdlLCBX
S0J1bmRsZUZyYW1lUmVmKQpAQCAtMTUxMyw3ICsxNTc0LDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5k
bGVQYWdlOjp3aWxsUnVuSmF2YVNjcmlwdEFsZXJ0KFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLQnVu
ZGxlRnJhCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJBTEVSVDogIik7CiAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmQodG9XVEZTdHJpbmcobWVzc2FnZSkpOwogICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5n
QnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7
CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFn
ZTo6d2lsbFJ1bkphdmFTY3JpcHRDb25maXJtKFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLQnVuZGxl
RnJhbWVSZWYpCkBAIC0xNTI2LDcgKzE1OTAsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6
OndpbGxSdW5KYXZhU2NyaXB0Q29uZmlybShXS1N0cmluZ1JlZiBtZXNzYWdlLCBXS0J1bmRsZUYK
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIkNPTkZJUk06ICIpOwogICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5nKG1lc3NhZ2UpKTsKICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZCgnXG4nKTsKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAg
IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6Ondp
bGxSdW5KYXZhU2NyaXB0UHJvbXB0KFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLU3RyaW5nUmVmIGRl
ZmF1bHRWYWx1ZSwgV0tCdW5kbGVGcmFtZVJlZikKQEAgLTE1MzcsNyArMTYwNCwxMCBAQCB2b2lk
IEluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFJ1bkphdmFTY3JpcHRQcm9tcHQoV0tTdHJpbmdSZWYg
bWVzc2FnZSwgV0tTdHJpbmdSZQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCBk
ZWZhdWx0IHRleHQ6ICIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5nKGRl
ZmF1bHRWYWx1ZSkpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIEluamVj
dGVkQnVuZGxlOjpzaW5nbGV0b24oKS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmco
KSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAg
ICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpk
aWRSZWFjaEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXS1NlY3VyaXR5T3JpZ2luUmVmIG9y
aWdpbiwgaW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVkKQpAQCAtMTU1Niw3ICsxNjI2LDEwIEBAIHZv
aWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWFjaEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90
YShXS1NlY3VyaXR5T3JpZ2luUmVmCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiIHRvdGFsU3BhY2VOZWVkZWQ6fiIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51
bWJlcih0cnVuY2F0ZWRTcGFjZU5lZWRlZCk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5k
KCdcbicpOwotICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIu
dG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgaWYgKGlu
amVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkRGlzYWxsb3dJbmNyZWFzZUZvckFwcGxp
Y2F0aW9uQ2FjaGVRdW90YSgpKQpAQCAtMTU3Niw3ICsxNjQ5LDEwIEBAIHVpbnQ2NF90IEluamVj
dGVkQnVuZGxlUGFnZTo6ZGlkRXhjZWVkRGF0YWJhc2VRdW90YShXS1NlY3VyaXR5T3JpZ2luUmVm
IG9yaWdpbiwKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgZGF0YWJhc2U6
Iik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5nKGRhdGFiYXNlTmFt
ZSkpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0
ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBp
bmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIHVpbnQ2NF90IGRlZmF1bHRRdW90YSA9IDUgKiAx
MDI0ICogMTAyNDsKQEAgLTE1OTUsNyArMTY3MSwxMCBAQCB1aW50NjRfdCBJbmplY3RlZEJ1bmRs
ZVBhZ2U6OmRpZEV4Y2VlZERhdGFiYXNlUXVvdGEoV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4s
CiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIlVJIERFTEVHQVRFIERB
VEFCQVNFIENBTExCQUNLOiBpbmNyZWFzZWQgcXVvdGEgdG8gIik7CiAgICAgICAgICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZE51bWJlcihuZXdRdW90YSk7CiAgICAgICAgICAgICBzdHJpbmdCdWls
ZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQo
c3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICBpbmplY3RlZEJ1bmRs
ZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IENSQVNIKCk7CiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIG5ld1F1b3RhOwpAQCAtMTY2
OSw3ICsxNzQ4LDEwIEBAIGJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRCZWdpbkVkaXRp
bmcoV0tCdW5kbGVSYW5nZUhhbmRsZVJlZiByYW5nZSkKICAgICAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmRMaXRlcmFsKCJFRElUSU5HIERFTEVHQVRFOiBzaG91bGRCZWdpbkVkaXRpbmdJbkRPTVJh
bmdlOiIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChyYW5nZVRvU3RyKG1fcGFnZSwg
bV93b3JsZC5nZXQoKSwgcmFuZ2UpKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xu
Jyk7Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0
cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgcmV0dXJuIGluamVj
dGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkQWxsb3dFZGl0aW5nKCk7CiB9CkBAIC0xNjg1
LDcgKzE3NjcsMTAgQEAgYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEVuZEVkaXRpbmco
V0tCdW5kbGVSYW5nZUhhbmRsZVJlZiByYW5nZSkKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJFRElUSU5HIERFTEVHQVRFOiBzaG91bGRFbmRFZGl0aW5nSW5ET01SYW5nZToi
KTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQocmFuZ2VUb1N0cihtX3BhZ2UsIG1fd29y
bGQuZ2V0KCksIHJhbmdlKSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwot
ICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmco
KSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIHJldHVybiBpbmplY3RlZEJ1
bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZEFsbG93RWRpdGluZygpOwogfQpAQCAtMTcxMSw3ICsx
Nzk2LDEwIEBAIGJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRJbnNlcnROb2RlKFdLQnVu
ZGxlTm9kZUhhbmRsZVJlZiBub2RlLCBXS0J1bmRsZVJhCiAgICAgICAgIHN0cmluZ0J1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiIGdpdmVuQWN0aW9uOiIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZChpbnNlcnRhY3Rpb25zdHJpbmdbYWN0aW9uXSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIu
YXBwZW5kKCdcbicpOwotICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0
cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIHJl
dHVybiBpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZEFsbG93RWRpdGluZygpOwog
fQpAQCAtMTczNyw3ICsxODI1LDEwIEBAIGJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRJ
bnNlcnRUZXh0KFdLU3RyaW5nUmVmIHRleHQsIFdLQnVuZGxlUmFuZ2VIYW5kbGVSCiAgICAgICAg
IHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIGdpdmVuQWN0aW9uOiIpOwogICAgICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZChpbnNlcnRhY3Rpb25zdHJpbmdbYWN0aW9uXSk7CiAgICAgICAg
IHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRw
dXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGluamVjdGVkQnVuZGxl
Lm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7
CiAgICAgfQogICAgIHJldHVybiBpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZEFs
bG93RWRpdGluZygpOwogfQpAQCAtMTc1Myw3ICsxODQ0LDEwIEBAIGJvb2wgSW5qZWN0ZWRCdW5k
bGVQYWdlOjpzaG91bGREZWxldGVSYW5nZShXS0J1bmRsZVJhbmdlSGFuZGxlUmVmIHJhbmdlKQog
ICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIkVESVRJTkcgREVMRUdBVEU6IHNo
b3VsZERlbGV0ZURPTVJhbmdlOiIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChyYW5n
ZVRvU3RyKG1fcGFnZSwgbV93b3JsZC5nZXQoKSwgcmFuZ2UpKTsKICAgICAgICAgc3RyaW5nQnVp
bGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5n
QnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4
dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAg
ICAgcmV0dXJuIGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkQWxsb3dFZGl0aW5n
KCk7CiB9CkBAIC0xNzg0LDcgKzE4NzgsMTAgQEAgYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNo
b3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UoV0tCdW5kbGVSYW5nZUhhbmRsZVJlZiBmcm9tUmEKICAg
ICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgc3RpbGxTZWxlY3Rpbmc6Iik7CiAg
ICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGJvb2xzdHJpbmdbc3RpbGxTZWxlY3RpbmddKTsg
CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBpbmplY3RlZEJ1
bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGluamVj
dGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IENSQVNIKCk7CiAgICAgfQogICAgIHJldHVybiBpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCkt
PnNob3VsZEFsbG93RWRpdGluZygpOwogfQpAQCAtMTgwMiw3ICsxODk5LDEwIEBAIGJvb2wgSW5q
ZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRBcHBseVN0eWxlKFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJh
dGlvblJlZiBzdHlsZSwKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgdG9F
bGVtZW50c0luRE9NUmFuZ2U6Iik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHJhbmdl
VG9TdHIobV9wYWdlLCBtX3dvcmxkLmdldCgpLCByYW5nZSkpOwogICAgICAgICBzdHJpbmdCdWls
ZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0
KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KICAg
ICByZXR1cm4gaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGRBbGxvd0VkaXRpbmco
KTsKIH0KQEAgLTE4MTksNyArMTkxOSwxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlk
QmVnaW5FZGl0aW5nKFdLU3RyaW5nUmVmIG5vdGlmaWNhdGlvbk5hbWUpCiAgICAgc3RyaW5nQnVp
bGRlci5hcHBlbmRMaXRlcmFsKCJFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQmVnaW5FZGl0
aW5nOiIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5nKG5vdGlmaWNhdGlv
bk5hbWUpKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBpbmplY3RlZEJ1
bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRs
ZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAog
dm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEVuZEVkaXRpbmcoV0tTdHJpbmdSZWYgbm90aWZp
Y2F0aW9uTmFtZSkKQEAgLTE4MzQsNyArMTkzNywxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFn
ZTo6ZGlkRW5kRWRpdGluZyhXS1N0cmluZ1JlZiBub3RpZmljYXRpb25OYW1lKQogICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZEVuZEVk
aXRpbmc6Iik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQodG9XVEZTdHJpbmcobm90aWZpY2F0
aW9uTmFtZSkpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIGluamVjdGVk
QnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGluamVjdGVkQnVu
ZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQog
CiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2hhbmdlKFdLU3RyaW5nUmVmIG5vdGlmaWNh
dGlvbk5hbWUpCkBAIC0xODQ5LDcgKzE5NTUsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6
OmRpZENoYW5nZShXS1N0cmluZ1JlZiBub3RpZmljYXRpb25OYW1lKQogICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZToiKTsK
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhub3RpZmljYXRpb25OYW1lKSk7
CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0
cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0
VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW5q
ZWN0ZWRCdW5kbGVQYWdlOjpkaWRDaGFuZ2VTZWxlY3Rpb24oV0tTdHJpbmdSZWYgbm90aWZpY2F0
aW9uTmFtZSkKQEAgLTE4NjQsNyArMTk3MywxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6
ZGlkQ2hhbmdlU2VsZWN0aW9uKFdLU3RyaW5nUmVmIG5vdGlmaWNhdGlvbk5hbWUpCiAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hh
bmdlU2VsZWN0aW9uOiIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5nKG5v
dGlmaWNhdGlvbk5hbWUpKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBp
bmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpbmpl
Y3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0go
KTsKIH0KIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGU2MmViOTMu
LjkyNjg4NDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMTY3OCwxMCArMTY3OCwxMyBAQCB2b2lkIFRlc3RSdW5u
ZXI6OnN0YXRpc3RpY3NEaWRSdW5UZWxlbWV0cnlDYWxsYmFjayh1bnNpZ25lZCB0b3RhbFByZXZh
bGVudFJlc291cgogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCBcInRvcDNTdWJm
cmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5zXCIgOiAiKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
ZE51bWJlcih0b3AzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lucyk7CiAgICAgc3RyaW5nQnVp
bGRlci5hcHBlbmRMaXRlcmFsKCIgfSIpOworCisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5n
QnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIEpTVmFsdWVSZWYgcmVzdWx0ID0gSlNWYWx1
ZU1ha2VGcm9tSlNPTlN0cmluZyhjb250ZXh0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZyhzdHJpbmctPnV0ZjgoKS5kYXRhKCkpKTsKICAgICAKLSAgICBKU1ZhbHVlUmVmIHJlc3VsdCA9
IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmcoY29udGV4dCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoc3RyaW5nQnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKLSAgICAK
LSAgICBjYWxsVGVzdFJ1bm5lckNhbGxiYWNrKFN0YXRpc3RpY3NEaWRSdW5UZWxlbWV0cnlDYWxs
YmFja0lELCAxLCAmcmVzdWx0KTsKKyAgICAgICAgY2FsbFRlc3RSdW5uZXJDYWxsYmFjayhTdGF0
aXN0aWNzRGlkUnVuVGVsZW1ldHJ5Q2FsbGJhY2tJRCwgMSwgJnJlc3VsdCk7CisgICAgfSBlbHNl
CisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgVGVzdFJ1bm5lcjo6c3RhdGlzdGljc05vdGlm
eU9ic2VydmVyKCkKQEAgLTE4OTEsMTAgKzE4OTQsMTMgQEAgdm9pZCBUZXN0UnVubmVyOjpjYWxs
RGlkUmVjZWl2ZUFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzQ2FsbGJhY2soVmVjdG9yPFN0cmluZz4m
IGQKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcIiIpOwogICAgIH0KICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIl0iKTsKLSAgICAKLSAgICBKU1ZhbHVlUmVm
IHJlc3VsdCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmcoY29udGV4dCwgSlNTdHJpbmdDcmVh
dGVXaXRoVVRGOENTdHJpbmcoc3RyaW5nQnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkp
KTsKIAotICAgIGNhbGxUZXN0UnVubmVyQ2FsbGJhY2soQWxsU3RvcmFnZUFjY2Vzc0VudHJpZXND
YWxsYmFja0lELCAxLCAmcmVzdWx0KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWls
ZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgSlNWYWx1ZVJlZiByZXN1bHQgPSBKU1ZhbHVlTWFr
ZUZyb21KU09OU3RyaW5nKGNvbnRleHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0
cmluZy0+dXRmOCgpLmRhdGEoKSkpOworCisgICAgICAgIGNhbGxUZXN0UnVubmVyQ2FsbGJhY2so
QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXNDYWxsYmFja0lELCAxLCAmcmVzdWx0KTsKKyAgICB9IGVs
c2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggNjhjNDljOC4uZjNiYTdmZCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTE4ODEsNyArMTg4
MSwxMCBAQCBXS1N0cmluZ1JlZiBUZXN0Q29udHJvbGxlcjo6ZGVjaWRlRGVzdGluYXRpb25XaXRo
U3VnZ2VzdGVkRmlsZW5hbWUoV0tDb250ZXh0UmVmLAogICAgICAgICBidWlsZGVyLmFwcGVuZCgi
RG93bmxvYWRpbmcgVVJMIHdpdGggc3VnZ2VzdGVkIGZpbGVuYW1lIFwiIik7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKHN1Z2dlc3RlZEZpbGVuYW1lKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
IlwiXG4iKTsKLSAgICAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+b3V0cHV0VGV4dChidWlsZGVy
LnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KCpzdHJpbmcp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIGNvbnN0
IGNoYXIqIGR1bXBSZW5kZXJUcmVlVGVtcCA9IGxpYnJhcnlQYXRoRm9yVGVzdGluZygpOwpAQCAt
MTkxMSw3ICsxOTE0LDEwIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlkUmVjZWl2
ZVNlcnZlclJlZGlyZWN0VG9VUkwoV0tDb250ZXh0UmVmLCBXS0Rvd25sCiAgICAgICAgIFdLUmV0
YWluUHRyPFdLU3RyaW5nUmVmPiB1cmxTdHJpbmdXSyA9IGFkb3B0V0soV0tVUkxDb3B5U3RyaW5n
KHVybCkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCh0b1NURCh1cmxTdHJpbmdXSykuY19zdHIo
KSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCIuXG4iKTsKLSAgICAgICAgbV9j
dXJyZW50SW52b2NhdGlvbi0+b3V0cHV0VGV4dChidWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBtX2N1
cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBDUkFTSCgpOwogICAgIH0KIH0KIApAQCAtMTkzNCw3ICsxOTQwLDEwIEBAIHZvaWQg
VGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlkRmFpbChXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRS
ZWYsIFdLRXJyb3JSZWYgZXJyCiAgICAgICAgIGVycm9yQnVpbGRlci5hcHBlbmQodG9XVEZTdHJp
bmcoZXJyb3JEZXNjcmlwdGlvbikpOwogICAgICAgICBlcnJvckJ1aWxkZXIuYXBwZW5kKCJcbiIp
OwogCi0gICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPm91dHB1dFRleHQoZXJyb3JCdWlsZGVy
LnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBlcnJvckJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPm91dHB1dFRleHQoKnN0
cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIG1f
Y3VycmVudEludm9jYXRpb24tPm5vdGlmeURvd25sb2FkRG9uZSgpOwogfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCBjZDVkYjBhLi5lZTJmNTUyIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMjQ4LDkgKzI0OCwx
MiBAQCB2b2lkIFRlc3RJbnZvY2F0aW9uOjpmb3JjZVJlcGFpbnREb25lQ2FsbGJhY2soV0tFcnJv
clJlZiBlcnJvciwgdm9pZCogY29udGV4dCkKIAogdm9pZCBUZXN0SW52b2NhdGlvbjo6ZHVtcFJl
c3VsdHMoKQogewotICAgIGlmIChtX3RleHRPdXRwdXQubGVuZ3RoKCkgfHwgIW1fYXVkaW9SZXN1
bHQpCi0gICAgICAgIGR1bXAobV90ZXh0T3V0cHV0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7
Ci0gICAgZWxzZQorICAgIGlmIChtX3RleHRPdXRwdXQubGVuZ3RoKCkgfHwgIW1fYXVkaW9SZXN1
bHQpIHsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gbV90ZXh0T3V0cHV0LnRvU3RyaW5nKCkp
CisgICAgICAgICAgICBkdW1wKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIENSQVNIKCk7CisgICAgfSBlbHNlCiAgICAgICAgIGR1bXBBdWRpbyhtX2F1
ZGlvUmVzdWx0LmdldCgpKTsKIAogICAgIGlmIChtX2R1bXBQaXhlbHMpIHsKLS0gCjIuOS4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339151</attachid>
            <date>2018-04-30 15:03:12 -0700</date>
            <delta_ts>2018-05-01 13:54:43 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Teach-StringBuilder-that-it-is-fallible.patch</filename>
            <type>text/plain</type>
            <size>473298</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSA3NGU1NGU5NzM4M2E5NDVhNTI0YjNiZDYxN2M4NGQwNTIzMmFhYzdjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBXZWQsIDI1IEFwciAyMDE4IDIxOjUwOjI0IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gVGVhY2gg
U3RyaW5nQnVpbGRlciB0aGF0IGl0IGlzIGZhbGxpYmxlCgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcCAgICAgICAgIHwgICA0ICstCiAuLi4vQVBJL3Rlc3Rz
L0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwICAgICAgICAgICB8IDMxMCArKysrKysrLS0tLS0t
CiAuLi4vQVBJL3Rlc3RzL1BpbmdQb25nU3RhY2tPdmVyZmxvd1Rlc3QuY3BwICAgICAgICB8ICAg
OSArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
fCAgOTUgKysrKwogLi4uL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCAgICAgICAg
ICAgICAgfCAgMjMgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBTbmFwc2hvdEJ1
aWxkZXIuY3BwIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNv
bGVNZXNzYWdlLmNwcCB8ICAxMyArLQogLi4uL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0
aWVzLmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9JbnRlcnByZXRlci5jcHAgIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcCB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAgICAgICAgICAgICAgICAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwICAgICAgIHwgICA5ICstCiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcCAgICB8ICAxNSArLQogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwICAgfCAgIDQgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwICAgIHwgICA0ICstCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcCB8ICAgNCAr
LQogLi4uL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgfCAg
MjQgKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAg
IHwgICA2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcCAg
ICAgICB8ICAxOCArLQogLi4uL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwICAg
ICAgICAgICAgfCAgMjEgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmpl
Y3QuY3BwICAgICAgIHwgIDE2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRl
cmFsUGFyc2VyLmNwcCAgICB8ICAxMCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3B0aW9ucy5jcHAgICAgICAgICAgfCAgMTAgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAgIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcCB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAgICAgICAgfCAgIDQgKy0KIC4uLi9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcCAgIHwgICA0ICstCiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwICB8ICAgNCArLQogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmNwcCAgICAgfCAgIDYgKy0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVTZXQuY3BwICAgICAgICAgIHwgIDIzICst
CiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAgICAgICAgICAgICAgICB8ICAy
MCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcCAg
fCAgIDkgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcCAgICAg
ICAgIHwgICA3ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmggICAg
ICAgICAgICB8ICAzMCArLQogU291cmNlL1dURi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAxNDMgKysrKysrCiBTb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcCAg
ICAgICAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3Bw
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XVEYvd3RmL0pTT05WYWx1
ZXMuY3BwICAgICAgICAgICAgICAgICAgICAgIHwgIDExICstCiBTb3VyY2UvV1RGL3d0Zi9Mb2dn
ZXIuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMSArLQogU291cmNlL1dURi93dGYv
TWVkaWFUaW1lLmNwcCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XVEYv
d3RmL1VVSUQuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuY3BwICAgICAgICAgICAgICB8IDIzOSArKysrKyst
LS0tCiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaCAgICAgICAgICAgICAgICB8
IDI2MSArKysrKysrLS0tLQogU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVySlNPTi5j
cHAgICAgICAgICAgfCAgMjUgKy0KIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAg
ICAgICAgICAgICAgICAgIHwgIDM0ICstCiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwu
aCAgICAgICAgICAgICAgICAgICB8ICAxOCArLQogU291cmNlL1dURi93dGYvdGV4dC9UZXh0U3Ry
ZWFtLmNwcCAgICAgICAgICAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNTEwICsrKysrKysrKysrKysrKysrKysrKwog
Li4uL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudENvbnRhY3RDb2NvYS5tbSAgfCAgIDUg
Ky0KIC4uLi9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcCAgIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNw
cCB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5j
cHAgICAgfCAgMTUgKy0KIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBh
dGguY3BwICAgIHwgICA0ICstCiAuLi4vTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0luZGV4VmFs
dWVTdG9yZS5jcHAgICB8ICAgNCArLQogLi4uL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxp
dGVJREJDdXJzb3IuY3BwICAgfCAgIDggKy0KIC4uLi9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCRGF0YWJhc2VJbmZvLmNwcCAgIHwgICA0ICstCiAuLi4vaW5kZXhlZGRiL3NoYXJlZC9JREJP
YmplY3RTdG9yZUluZm8uY3BwICAgICAgICB8ICAgNCArLQogLi4uL21lZGlhc2Vzc2lvbi9XZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCAgICAgICAgfCAgIDggKy0KIC4uLi9Nb2R1bGVzL21lZGlh
c3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgIHwgICA4ICstCiAuLi4vTW9kdWxlcy9w
bHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAgICB8ICAgNCArLQogLi4uL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcCAgICAgICAgfCAgIDQgKy0KIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwICAgIHwgICA4ICstCiAu
Li4vd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcCAgICB8ICAgOCAr
LQogLi4uL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwICAgICAgfCAg
MjMgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCAgICAg
IHwgIDE4ICstCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
Y3BwICB8ICAxMCArLQogLi4uL21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bSAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVy
dFN0cmluZ3MuY3BwIHwgICA0ICstCiAuLi4vV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2Vw
dGlvbkhhbmRsaW5nLmNwcCB8ICAxNiArLQogLi4uL2NvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVk
VVJMRmlsdGVycy5jcHAgICAgICAgfCAgIDQgKy0KIC4uLi9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb24uY3BwIHwgICA3ICstCiAuLi4vY29udGVudGV4dGVuc2lvbnMv
Q29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcCB8ICAgNSArLQogLi4uL0NvbnRlbnRFeHRlbnNp
b25TdHlsZVNoZWV0LmNwcCAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3Jl
L2NvbnRlbnRleHRlbnNpb25zL1Rlcm0uaCAgICAgICAgICAgIHwgICA4ICstCiAuLi4vV2ViQ29y
ZS9jc3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmNwcCB8ICAgNCArLQogU291cmNl
L1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmNwcCAgICAgICAgICAgICAgfCAgMjAgKy0KIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmNwcCAgICAgICAgIHwgICA4ICst
CiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCB8ICAg
NCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcCAgICAgICAgICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcCAgICAg
ICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3VzdG9tSWRlbnRWYWx1ZS5jcHAg
ICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUu
Y3BwICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUu
Y3BwICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VT
cmNWYWx1ZS5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRG
ZWF0dXJlVmFsdWUuY3BwICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250U3R5bGVSYW5nZVZhbHVlLmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udFN0eWxlVmFsdWUuY3BwICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRWYWx1ZS5jcHAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUuY3BwICAgICAgIHwgICA0ICstCiBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHAgICAgICAgICAgICB8ICAgNCArLQogU291
cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwICAgICAgICAgICAgfCAgMTIgKy0K
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNwcCAgICAgIHwgICA0
ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAgICB8
ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwICAgICAgICAg
ICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmNwcCAgICAgICAg
ICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVSdWxlLmNwcCAg
ICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lc1J1bGUu
Y3BwICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMaW5lQm94Q29u
dGFpblZhbHVlLmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWFya3Vw
LmNwcCAgICAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU01l
ZGlhUnVsZS5jcHAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NOYW1lc3BhY2VSdWxlLmNwcCAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFnZVJ1bGUuY3BwICAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcCAgICAgICAgICAgfCAgMTIgKy0KIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3BwICAgICAgIHwgICA0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwICAgICAgICAgICAgICAgICB8ICAxNyArLQog
U291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAgICAgICAgICAgICAgfCAgIDQg
Ky0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTaGFkb3dWYWx1ZS5jcHAgICAgICAgICAgICAgIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmNwcCAgICAgICAgICAgICAg
ICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwICAgICAgICAg
ICAgICAgfCAgIDkgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdXBwb3J0c1J1bGUuY3BwICAg
ICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVGltaW5nRnVuY3Rpb25W
YWx1ZS5jcHAgICAgICB8ICAxNiArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5j
cHAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYXJpYWJs
ZURhdGEuY3BwICAgICAgICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NT
TmFtZXNwYWNlLmNwcCAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0RP
TU1hdHJpeFJlYWRPbmx5LmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nz
cy9EZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9jc3MvRm9udEZhY2UuY3BwICAgICAgICAgICAgICAgICAgICB8ICAxMiArLQogU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhTGlzdC5jcHAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcCAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBT
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwICAgICAgICB8ICAgNSAr
LQogU291cmNlL1dlYkNvcmUvY3NzL1JlY3QuaCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwICAgICAgICAgICAg
IHwgIDMwICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmNwcCAgICAgICAg
ICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5j
cHAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNw
cCAgICAgICAgICAgIHwgIDExICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNl
clRva2VuLmNwcCAgICAgICB8ICA4NyArKy0tCiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlclRva2VuUmFuZ2UuY3BwICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAgICAgfCAgMjcgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTVG9rZW5pemVyLmNwcCAgICAgICAgIHwgIDM4ICstCiBTb3VyY2UvV2ViQ29yZS9k
b20vRGF0YXNldERPTVN0cmluZ01hcC5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcCAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIyICstCiBTb3Vy
Y2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQog
U291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDkg
Ky0KIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcCAgICAgICAgICAg
ICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDkgKy0KIFNvdXJjZS9XZWJDb3JlL2RvbS9UZXh0Tm9kZVRyYXZlcnNhbC5jcHAg
ICAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21t
YW5kLmNwcCAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNw
cCAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSFRNTElu
dGVyY2hhbmdlLmNwcCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01h
cmt1cEFjY3VtdWxhdG9yLmNwcCAgICAgICB8ICAxNyArLQogU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UZXh0SXRlcmF0b3IuY3BwICAgICAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwICAgICAgICB8ICAgNSArLQogU291cmNlL1dl
YkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tICAgICAgfCAgIDggKy0KIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbSAgICAgIHwgICA1ICstCiBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0gICAgICAgICAgICB8ICAgNSAr
LQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwICAgICAgICAgICAgICAgICAgfCAg
MjcgKy0KIFNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAgICAgICAg
IHwgIDI0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAgICAgICAgICAg
ICAgICB8ICAgOSArLQogU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAgICAg
ICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAg
ICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVy
LmNwcCAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9y
RWxlbWVudC5jcHAgICAgICAgICAgfCAgMTIgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuY3BwICAgICAgICAgIHwgIDIxICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb250RWxlbWVudC5jcHAgICAgICAgICAgICB8ICAgNyArLQogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW1hZ2VFbGVtZW50LmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgICAgICAgICAgIHwgICA5ICstCiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcCAgICAgICAgICB8ICAgNCArLQogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgfCAgMTIgKy0KIFNv
dXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAgICAgICAgICAgICAgIHwgICA1ICst
CiBTb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwICAgICAgICB8ICAg
NCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUZyYWdtZW50VVJJUGFyc2VyLmNwcCAgICAg
fCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcCAgICAgICAgICAgICAg
ICAgIHwgIDE0ICstCiAuLi4vaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNw
cCAgICAgICB8ICAgNCArLQogLi4uL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REJhc2UuY3BwICAgfCAgIDcgKy0KIC4uLi9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlLmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
U291cmNlVHJhY2tlci5jcHAgICB8ICAgNyArLQogU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFRva2VuaXplci5jcHAgICAgICAgfCAgMTIgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxUcmVlQnVpbGRlci5jcHAgICAgIHwgIDI3ICstCiBTb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9CdWZmZXJlZExpbmVSZWFkZXIuY3BwICAgfCAgIDggKy0KIFNvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcCAgICAgICAgICAgIHwgICA1ICstCiBTb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAgICAgICAgICAgICAgICB8ICAgNiArLQogU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwICAgICAgICAgfCAgIDUgKy0K
IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmNwcCAgICAgIHwgIDYz
ICsrLQogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwICAg
fCAgMTcgKy0KIC4uLi9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCAg
ICAgIHwgIDEzICstCiAuLi4vaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQu
Y3BwICAgICB8ICAgNyArLQogLi4uL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xl
QWdlbnQuY3BwICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFj
Y2Vzc0NvbnRyb2wuY3BwIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljcy5jcHAgICB8ICAgNCArLQogLi4uL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZS5jcHAgICAgfCAgMjUgKy0KIC4uLi9XZWJDb3JlL2xvYWRlci9hcmNo
aXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwIHwgIDI1ICstCiAuLi4vV2ViQ29yZS9sb2FkZXIv
YXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwICB8ICAzNCArLQogLi4uL1dlYkNvcmUvcGFn
ZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAgfCAgNjQgKystCiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcCAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCAgICAgICAgICAgICAgICAgIHwgICA1ICst
CiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcCAgICAgICAgICAgICB8ICAg
NyArLQogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuY3BwICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcCAgICAg
ICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0VHJpZ2dlci5j
cHAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5
UG9saWN5LmNwcCAgfCAgIDkgKy0KIC4uLi9wYWdlL3Njcm9sbGluZy9BeGlzU2Nyb2xsU25hcE9m
ZnNldHMuY3BwICAgICAgIHwgICA4ICstCiAuLi4vcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuY3BwICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVj
aW1hbC5jcHAgICAgICAgICAgICAgICAgfCAgMTIgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0ZpbGVTeXN0ZW0uY3BwICAgICAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QT0RJbnRlcnZhbC5oICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmggICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1VSTC5jcHAgICAgICAgICAgICAgICAgICAgIHwgIDE4ICstCiAuLi4vV2Vi
Q29yZS9wbGF0Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uY3BwICB8ICAgNSArLQogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAgICAgfCAgIDQgKy0K
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvVXNlckFnZW50R0xpYi5jcHAgICAgIHwgICA0
ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAgICAgICAgICB8
ICAgOCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5j
cHAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRl
LmNwcCAgIHwgICA0ICstCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNldHRpbmdz
LmNwcCAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NMYXllci5jcHAgfCAgIDQgKy0KIC4uLi9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZUFWRi5jcHAgICAgIHwgIDEzICstCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGls
ZUNvbnRyb2xsZXIuY3BwICAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvVGlsZUdyaWQuY3BwICAgfCAgIDQgKy0KIC4uLi9ncmFwaGljcy9jYS93aW4v
UGxhdGZvcm1DQUxheWVyV2luLmNwcCAgICAgICAgIHwgICA0ICstCiAuLi4vcGxhdGZvcm0vZ3Jh
cGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwICB8ICAxMCArLQogLi4uL29wZW5nbC9H
cmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAgICAgICAgfCAgMTEgKy0KIC4uLi9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwIHwgIDE1ICstCiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VsZWN0aW9uRGF0YS5jcHAgICAgICB8ICAgNSArLQog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0gICAgICAgfCAgIDQg
Ky0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0gICAgIHwg
ICA2ICstCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1Njcm9sbEFuaW1hdG9yTW9jay5jcHAg
ICB8ICAxNSArLQogLi4uL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrQm94
LmNwcCAgfCAgIDkgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNl
cnMuY3BwICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL01JTUVI
ZWFkZXIuY3BwICAgICB8ICAxMyArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Q
cm94eVNlcnZlci5jcHAgICAgfCAgIDQgKy0KIC4uLi9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3Vy
bERhdGFiYXNlLmNwcCAgICAgICAgIHwgICA0ICstCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL21hYy9Db29raWVKYXJNYWMubW0gICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcCAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvRGF0ZVRpbWVGb3JtYXQuY3BwICAgIHwgIDI2ICstCiAuLi4vV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0RlY29kZUVzY2FwZVNlcXVlbmNlcy5oICB8ICAgOCArLQogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5jcHAgICAgfCAgMjAgKy0KIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNwcCAgIHwgICA0ICstCiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAgICAgICB8ICAxMyAr
LQogLi4uL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVc2VyRGVmaW5lZC5jcHAgfCAg
IDQgKy0KIC4uLi9wbGF0Zm9ybS92ci9vcGVudnIvVlJQbGF0Zm9ybURpc3BsYXlPcGVuVlIuY3Bw
IHwgICA1ICstCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2lu
LmNwcCB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1VzZXJBZ2VudFdpbi5j
cHAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVt
ZVdQRS5jcHAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBl
LmNwcCAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGlzdE1hcmtlci5jcHAgICAgICB8ICAgOSArLQogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHQuY3BwICAgICAgICAgICAgfCAgMjMgKy0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbSAgICAgICAgIHwgIDEwICstCiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwICAgICAgICB8ICAgNSArLQogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwICAgICAgfCAgIDggKy0KIC4u
Li9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5jcHAgICAgICAgIHwgICA1ICst
CiAuLi4vcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTWF0aE1MLmNwcCB8ICAg
NSArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3BwICAgICAgICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmNwcCAgICAg
ICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFN0cmluZ0J1aWxkZXIuY3Bw
ICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3Bw
ICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1
ZXMuY3BwICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlz
dFZhbHVlcy5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5z
Zm9ybUxpc3RWYWx1ZXMuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
cmFuc2Zvcm1WYWx1ZS5jcHAgICAgICAgICAgIHwgIDIwICstCiBTb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwICAgICAgICAgICAgICAgfCAgNjQgKy0tCiBTb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAgICB8ICAxMCArLQogU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwICAgICAgfCAgIDQgKy0KIFNv
dXJjZS9XZWJDb3JlL3htbC9YTUxFcnJvcnMuY3BwICAgICAgICAgICAgICAgICAgIHwgICA3ICst
CiBTb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwICAgICAgICAgICAgICB8ICAx
NSArLQogU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmggICAgICAgICAgICAgICAg
fCAgIDcgKy0KIFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEZ1bmN0aW9ucy5jcHAgICAgICAgICAg
ICAgIHwgIDIxICstCiBTb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3Bw
ICAgICAgICB8ICAxNCArLQogLi4uL3htbC9wYXJzZXIvQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2Vy
SW5saW5lcy5oICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbkhvc3QuY3BwICAg
ICAgICAgICAgICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICA0OSArKwogLi4uL05ldHdvcmtQcm9jZXNzL2NhY2hlL0Nh
Y2hlU3RvcmFnZUVuZ2luZS5jcHAgICAgfCAgIDQgKy0KIC4uLi9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcCAgIHwgIDE4ICstCiAuLi4vTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlS2V5LmNwcCAgICAgICB8ICAgNCArLQogLi4uL2NhcHR1cmUvTmV0
d29ya0NhcHR1cmVNYW5hZ2VyLmNwcCAgICAgICAgICAgICAgfCAgIDYgKy0KIC4uLi9TaGFyZWQv
RGF0YWJhc2VzL0luZGV4ZWREQi9JREJVdGlsaXRpZXMuY3BwICAgIHwgICA0ICstCiBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9HYW1lcGFkL0dhbWVwYWREYXRhLmNwcCAgICAgICB8ICAgNCArLQogLi4u
L05ldHNjYXBlL3VuaXgvTmV0c2NhcGVQbHVnaW5Nb2R1bGVVbml4LmNwcCAgICAgfCAgIDQgKy0K
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwICAgICAgICAgIHwgICA3
ICstCiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVXNlclNjcmlwdC5jcHAgICAgICB8
ICAgNCArLQogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJTdHlsZVNoZWV0LmNw
cCAgfCAgIDQgKy0KIC4uLi9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNw
cCAgICAgIHwgICA2ICstCiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExp
c3QuY3BwICAgICB8ICAgNCArLQogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAgICAgICAgIHwgICA1ICstCiAuLi4vVUlQcm9jZXNzL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHAgICB8ICAyMCArLQogLi4uL1dlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NUZWxlbWV0cnkuY3BwICAgICAgICAgfCAgMzMgKy0KIC4uLi9QbHVnaW5zL05ldHNjYXBl
L05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCAgICB8ICAgNCArLQogU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgIHwgIDEyICsKIC4uLi9t
YWMvV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubW0gICAgICAgICAgIHwgICA1ICstCiBT
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nlc3NpYmxlQmFzZS5jcHAgICAgICAgICB8ICAgNSAr
LQogU291cmNlL1dlYktpdExlZ2FjeS93aW4vUGx1Z2lucy9QbHVnaW5TdHJlYW0uY3BwICAgfCAg
IDUgKy0KIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFN0YXRpc3RpY3MuY3BwICAgICAg
IHwgICA3ICstCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICA3OCArKysrCiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVh
ZFRhc2suY3BwICB8ICAgNCArLQogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5n
QnVpbGRlci5jcHAgICAgfCAgOTIgKystLQogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nVmlldy5jcHAgICAgICAgfCAgODAgKystLQogLi4uL1Rlc3RzL1dlYkNvcmUvQ29udGVu
dEV4dGVuc2lvbnMuY3BwICAgICAgICAgICAgfCAgODYgKystLQogVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcCAgfCAgMzcgKy0KIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9Mb2dnaW5nLmNwcCAgICAgIHwgIDMwICstCiBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVGV4dENvZGVjLmNwcCAgICB8ICAgNCArLQogVG9vbHMv
VGVzdFdlYktpdEFQSS9XVEZTdHJpbmdVdGlsaXRpZXMuaCAgICAgICAgICAgfCAgIDQgKy0KIC4u
Li9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwICAgICAgICAgIHwgMTk2ICsr
KysrKy0tCiAuLi4vV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNw
cCB8ICAxOCArLQogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgICAg
ICAgICAgfCAgMTUgKy0KIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3Bw
ICAgICAgICAgIHwgICA5ICstCiAzMDUgZmlsZXMgY2hhbmdlZCwgMzY0NCBpbnNlcnRpb25zKCsp
LCAxMjU2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDb250ZXh0UmVmLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0
UmVmLmNwcAppbmRleCAwMjVlYmE0Li41ZWRmNjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU0NvbnRleHRSZWYuY3BwCkBAIC0zMTQsNyArMzE0LDkgQEAgSlNTdHJpbmdSZWYgSlND
b250ZXh0Q3JlYXRlQmFja3RyYWNlKEpTQ29udGV4dFJlZiBjdHgsIHVuc2lnbmVkIG1heFN0YWNr
U2l6ZSkKICAgICBCYWNrdHJhY2VGdW5jdG9yIGZ1bmN0b3IoYnVpbGRlciwgbWF4U3RhY2tTaXpl
KTsKICAgICBmcmFtZS0+aXRlcmF0ZShmdW5jdG9yKTsKIAotICAgIHJldHVybiBPcGFxdWVKU1N0
cmluZzo6Y3JlYXRlKGJ1aWxkZXIudG9TdHJpbmcoKSkubGVha1JlZigpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIE9wYXF1ZUpTU3Ry
aW5nOjpjcmVhdGUoKnN0cmluZykubGVha1JlZigpOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wg
SlNHbG9iYWxDb250ZXh0R2V0UmVtb3RlSW5zcGVjdGlvbkVuYWJsZWQoSlNHbG9iYWxDb250ZXh0
UmVmIGN0eCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvRXhl
Y3V0aW9uVGltZUxpbWl0VGVzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3Rz
L0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwCmluZGV4IDYzN2IzMDQuLjE2NTI4MzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0
VGVzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9FeGVjdXRpb25U
aW1lTGltaXRUZXN0LmNwcApAQCAtMTk0LDIyICsxOTQsMjUgQEAgaW50IHRlc3RFeGVjdXRpb25U
aW1lTGltaXQoKQogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmROdW1iZXIodGltZUFm
dGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQuc2Vjb25kcygpKTsKICAgICAgICAgICAgIHNjcmlw
dEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSBicmVhazsgfSB9IGZvbygpOyIpOwogCi0gICAgICAg
ICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhz
Y3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBleGNl
cHRpb24gPSBudWxscHRyOwotICAgICAgICAgICAgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXND
YWxsZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6Zm9y
Q3VycmVudFRocmVhZCgpOwotICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBz
Y3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOwotICAgICAgICAgICAgYXV0
byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwotCi0gICAgICAgICAgICBp
ZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZp
cmVkKSAmJiBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKLSAgICAgICAgICAgICAg
ICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCB0aW1lZCBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVy
T3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGlmICgo
ZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQp
Ci0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IGRpZCBub3QgdGlt
ZSBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAg
ICBpZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQotICAgICAgICAgICAgICAg
ICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2Fs
bGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1
ZTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHNjcmlwdEJ1
aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9
IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7Cisg
ICAgICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBzaG91
bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOworICAgICAgICAgICAgICAgIGF1
dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAgICAgICAg
ICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAx
LCAmZXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICBhdXRvIGVuZFRpbWUgPSBDUFVUaW1lOjpm
b3JDdXJyZW50VGhyZWFkKCk7CisKKyAgICAgICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3Rh
cnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiBzaG91bGRUZXJt
aW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJQQVNT
OiAlcyBzY3JpcHQgdGltZWQgb3V0IGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7
CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgoZW5kVGlt
ZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpCisgICAg
ICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCBkaWQgbm90IHRpbWUg
b3V0IGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAg
ICAgIGlmICghc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCisgICAgICAgICAgICAg
ICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBu
b3QgY2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAgIGZh
aWxlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKCFleGNl
cHRpb24pIHsKICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIFRlcm1pbmF0ZWRFeGVj
dXRpb25FeGNlcHRpb24gd2FzIG5vdCB0aHJvd24uXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKQEAg
LTIzNywyMiArMjQwLDI1IEBAIGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICAgICAg
ICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgIHJldHVybiByZWN1cnNlKGkgKyAx
KTsgfSIpOwogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCJyZWN1cnNl
KDApOyIpOwogCi0gICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZyhzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7
Ci0gICAgICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOwotICAgICAgICAgICAgc2hvdWxkVGVy
bWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGF1dG8gc3RhcnRU
aW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwotICAgICAgICAgICAgSlNFdmFsdWF0
ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24p
OwotICAgICAgICAgICAgYXV0byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgp
OwotCi0gICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldh
dGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxl
ZCkKLSAgICAgICAgICAgICAgICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCB3aXRoIGluZmluaXRl
IHRhaWwgY2FsbHMgdGltZWQgb3V0IGFzIGV4cGVjdGVkIC5cbiIsIHRpZXJPcHRpb25zLnRpZXIp
OwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKChlbmRUaW1lIC0gc3Rh
cnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkKLSAgICAgICAgICAg
ICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgd2l0aCBpbmZpbml0ZSB0YWlsIGNhbGxz
IGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAg
ICAgICAgICAgICAgICBpZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQotICAg
ICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB3aXRoIGluZmluaXRlIHRh
aWwgY2FsbHMnIHRpbWVvdXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9u
cy50aWVyKTsKLSAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOwotICAgICAgICAgICAgfQor
ICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpKSB7
CisgICAgICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICBleGNl
cHRpb24gPSBudWxscHRyOworICAgICAgICAgICAgICAgIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNr
V2FzQ2FsbGVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgYXV0byBzdGFydFRpbWUgPSBDUFVU
aW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CisgICAgICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlw
dChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOworICAg
ICAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsK
KworICAgICAgICAgICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVy
V2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpICYmIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2Fs
bGVkKQorICAgICAgICAgICAgICAgICAgICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCB3aXRoIGlu
ZmluaXRlIHRhaWwgY2FsbHMgdGltZWQgb3V0IGFzIGV4cGVjdGVkIC5cbiIsIHRpZXJPcHRpb25z
LnRpZXIpOworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAo
KGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVk
KQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgd2l0aCBp
bmZpbml0ZSB0YWlsIGNhbGxzIGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVy
T3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFzaG91bGRUZXJtaW5hdGVD
YWxsYmFja1dhc0NhbGxlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDog
JXMgc2NyaXB0IHdpdGggaW5maW5pdGUgdGFpbCBjYWxscycgdGltZW91dCBjYWxsYmFjayB3YXMg
bm90IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBm
YWlsZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmICghZXhj
ZXB0aW9uKSB7CiAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBUZXJtaW5hdGVkRXhl
Y3V0aW9uRXhjZXB0aW9uIHdhcyBub3QgdGhyb3duLlxuIiwgdGllck9wdGlvbnMudGllcik7CkBA
IC0yNzMsMjEgKzI3OSwyNCBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgICAg
ICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZE51bWJlcih0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhh
dmVGaXJlZC5zZWNvbmRzKCkpOwogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRl
cmFsKCIpIGJyZWFrOyB9IH0gY2F0Y2goZSkgeyB9IH0gZm9vKCk7Iik7CiAKLSAgICAgICAgICAg
IEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHNjcmlw
dEJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGV4Y2VwdGlv
biA9IG51bGxwdHI7Ci0gICAgICAgICAgICBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxl
ZCA9IGZhbHNlOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc2NyaXB0QnVpbGRlci50
b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAg
ICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOworICAgICAgICAgICAgICAgIHNob3VsZFRlcm1p
bmF0ZUNhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CiAKLSAgICAgICAgICAgIGF1dG8gc3RhcnRU
aW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwotICAgICAgICAgICAgSlNFdmFsdWF0
ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24p
OwotICAgICAgICAgICAgYXV0byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgp
OworICAgICAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRo
cmVhZCgpOworICAgICAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0
LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICBhdXRv
IGVuZFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CiAgICAgICAgICAgICAKLSAg
ICAgICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9n
U2hvdWxkSGF2ZUZpcmVkKSB8fCAhc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpIHsK
LSAgICAgICAgICAgICAgICBpZiAoISgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCB0aW1lQWZ0ZXJX
YXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkpCi0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJ
TDogJXMgc2NyaXB0IGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9u
cy50aWVyKTsKLSAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2Fz
Q2FsbGVkKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1l
b3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAg
ICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhh
dmVGaXJlZCkgfHwgIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKSB7CisgICAgICAg
ICAgICAgICAgICAgIGlmICghKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNo
ZG9nU2hvdWxkSGF2ZUZpcmVkKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJ
TDogJXMgc2NyaXB0IGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9u
cy50aWVyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFzaG91bGRUZXJtaW5hdGVDYWxsYmFj
a1dhc0NhbGxlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2Ny
aXB0IHRpbWVvdXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVy
KTsKKyAgICAgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAg
ICAgCiAgICAgICAgICAgICBpZiAoZXhjZXB0aW9uKQogICAgICAgICAgICAgICAgIHByaW50Zigi
UEFTUzogJXMgVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbiB3YXMgbm90IGNhdGNoYWJsZSBh
cyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwpAQCAtMzA5LDI0ICszMTgsMjcgQEAg
aW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5h
cHBlbmRMaXRlcmFsKCJmdW5jdGlvbiBmb28oKSB7IHZhciBzdGFydFRpbWUgPSBjdXJyZW50Q1BV
VGltZSgpOyB3aGlsZSAodHJ1ZSkgeyBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKyk7IGlm
IChjdXJyZW50Q1BVVGltZSgpIC0gc3RhcnRUaW1lID4gIik7CiAgICAgICAgICAgICBzY3JpcHRC
dWlsZGVyLmFwcGVuZE51bWJlcih0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZC5zZWNv
bmRzKCkpOwogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpIGJyZWFr
OyB9IH0gZm9vKCk7Iik7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNj
cmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHNjcmlwdEJ1aWxkZXIudG9TdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7Ci0g
ICAgICAgICAgICBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOwogCi0g
ICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsK
LSAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBu
dWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKLSAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRp
bWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHNj
cmlwdEJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNj
cmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZy0+dXRmOCgpLmRhdGEo
KSk7CisgICAgICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAg
ICBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOworCisgICAgICAgICAg
ICAgICAgYXV0byBzdGFydFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CisgICAg
ICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51
bGxwdHIsIDEsICZleGNlcHRpb24pOworICAgICAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQ
VVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYg
KCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJl
ZCkgJiYgIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQotICAgICAgICAgICAgICAg
IHByaW50ZigiUEFTUzogJXMgc2NyaXB0IHRpbWVkIG91dCBhcyBleHBlY3RlZCB3aGVuIG5vIGNh
bGxiYWNrIGlzIHNwZWNpZmllZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAg
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1l
QWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRm
KCJGQUlMOiAlcyBzY3JpcHQgZGlkIG5vdCB0aW1lIG91dCBhcyBleHBlY3RlZCB3aGVuIG5vIGNh
bGxiYWNrIGlzIHNwZWNpZmllZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgY2Fs
bGVkIHN0YWxlIGNhbGxiYWNrIGZ1bmN0aW9uLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAg
ICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2
ZUZpcmVkKSAmJiAhc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCisgICAgICAgICAg
ICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IHRpbWVkIG91dCBhcyBleHBlY3RlZCB3
aGVuIG5vIGNhbGxiYWNrIGlzIHNwZWNpZmllZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAg
ICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoKGVuZFRpbWUgLSBz
dGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKQorICAgICAgICAg
ICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgZGlkIG5vdCB0aW1lIG91dCBh
cyBleHBlY3RlZCB3aGVuIG5vIGNhbGxiYWNrIGlzIHNwZWNpZmllZC5cbiIsIHRpZXJPcHRpb25z
LnRpZXIpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAg
ICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCBjYWxsZWQgc3RhbGUgY2FsbGJhY2sgZnVuY3Rpb24u
XG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1
ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAg
ICBDUkFTSCgpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoIWV4Y2VwdGlvbikgewog
ICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2Vw
dGlvbiB3YXMgbm90IHRocm93bi5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwpAQCAtMzQ3LDIzICsz
NTksMjYgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgICAgICAgICAgc2NyaXB0
QnVpbGRlci5hcHBlbmROdW1iZXIodGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQuc2Vj
b25kcygpKTsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSBicmVh
azsgfSB9IGZvbygpOyIpOwogCi0gICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgp
LmRhdGEoKSk7Ci0gICAgICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOwotICAgICAgICAgICAg
Y2FuY2VsVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIGlm
IChhdXRvIHN0cmluZyA9IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAg
ICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0
cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0
cjsKKyAgICAgICAgICAgICAgICBjYW5jZWxUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZh
bHNlOwogCi0gICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRU
aHJlYWQoKTsKLSAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBu
dWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKLSAgICAgICAgICAgIGF1dG8gZW5kVGlt
ZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAgICBhdXRvIHN0
YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAgICBK
U0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4
Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgYXV0byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3Vy
cmVudFRocmVhZCgpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0g
c3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgJiYgY2FuY2Vs
VGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgJiYgIWV4Y2VwdGlvbikKLSAgICAgICAgICAgICAg
ICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCB0aW1lb3V0IHdhcyBjYW5jZWxsZWQgYXMgZXhwZWN0
ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAg
ICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91
bGRIYXZlRmlyZWQpIHx8IGV4Y2VwdGlvbikKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJG
QUlMOiAlcyBzY3JpcHQgdGltZW91dCB3YXMgbm90IGNhbmNlbGxlZC5cbiIsIHRpZXJPcHRpb25z
LnRpZXIpOwotICAgICAgICAgICAgICAgIGlmICghY2FuY2VsVGVybWluYXRlQ2FsbGJhY2tXYXND
YWxsZWQpCi0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVv
dXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAg
ICAgICAgICAgICBmYWlsZWQgPSB0cnVlOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2
ZUZpcmVkKSAmJiBjYW5jZWxUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCAmJiAhZXhjZXB0aW9u
KQorICAgICAgICAgICAgICAgICAgICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCB0aW1lb3V0IHdh
cyBjYW5jZWxsZWQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAg
ICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0
VGltZSkgPCB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgfHwgZXhjZXB0aW9uKQor
ICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgdGltZW91dCB3
YXMgbm90IGNhbmNlbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAg
ICAgICBpZiAoIWNhbmNlbFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQorICAgICAgICAgICAg
ICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgdGltZW91dCBjYWxsYmFjayB3YXMg
bm90IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBm
YWlsZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChleGNl
cHRpb24pIHsKICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIFVuZXhwZWN0ZWQgVGVy
bWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbiB0aHJvd24uXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsK
QEAgLTM4NCwzMyArMzk5LDM2IEBAIGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICAg
ICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1heEJ1c3lMb29wVGltZS5zZWNvbmRz
KCkpOyAvLyBpbiBzZWNvbmRzLgogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRl
cmFsKCIpIGJyZWFrOyB9IH0gZm9vKCk7Iik7CiAKLSAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNj
cmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHNjcmlwdEJ1aWxkZXIudG9TdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7Ci0g
ICAgICAgICAgICBleHRlbmRUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA9IDA7CisgICAgICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAg
ICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZyhzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51
bGxwdHI7CisgICAgICAgICAgICAgICAgZXh0ZW5kVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQgPSAw
OwogCi0gICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJl
YWQoKTsKLSAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxs
cHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKLSAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9
IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLSAgICAgICAgICAgIGF1dG8gZGVsdGFUaW1l
ID0gZW5kVGltZSAtIHN0YXJ0VGltZTsKKyAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9
IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAgICBKU0V2YWx1YXRl
U2NyaXB0KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7
CisgICAgICAgICAgICAgICAgYXV0byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVh
ZCgpOworICAgICAgICAgICAgICAgIGF1dG8gZGVsdGFUaW1lID0gZW5kVGltZSAtIHN0YXJ0VGlt
ZTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKChkZWx0YVRpbWUgPj0gdGltZUJlZm9y
ZUV4dGVuZGVkRGVhZGxpbmUpICYmIChkZWx0YVRpbWUgPCB0aW1lQWZ0ZXJFeHRlbmRlZERlYWRs
aW5lKSAmJiAoZXh0ZW5kVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQgPT0gMikgJiYgZXhjZXB0aW9u
KQotICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IHRpbWVvdXQgd2FzIGV4
dGVuZGVkIGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoZGVsdGFUaW1lIDwgdGltZUJlZm9yZUV4dGVuZGVk
RGVhZGxpbmUpCi0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRp
bWVvdXQgd2FzIG5vdCBleHRlbmRlZCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIp
OwotICAgICAgICAgICAgICAgIGVsc2UgaWYgKGRlbHRhVGltZSA+PSB0aW1lQWZ0ZXJFeHRlbmRl
ZERlYWRsaW5lKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCBk
aWQgbm90IHRpbWVvdXQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICBp
ZiAoKGRlbHRhVGltZSA+PSB0aW1lQmVmb3JlRXh0ZW5kZWREZWFkbGluZSkgJiYgKGRlbHRhVGlt
ZSA8IHRpbWVBZnRlckV4dGVuZGVkRGVhZGxpbmUpICYmIChleHRlbmRUZXJtaW5hdGVDYWxsYmFj
a0NhbGxlZCA9PSAyKSAmJiBleGNlcHRpb24pCisgICAgICAgICAgICAgICAgICAgIHByaW50Zigi
UEFTUzogJXMgc2NyaXB0IHRpbWVvdXQgd2FzIGV4dGVuZGVkIGFzIGV4cGVjdGVkLlxuIiwgdGll
ck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChkZWx0YVRpbWUgPCB0aW1lQmVmb3JlRXh0ZW5kZWREZWFkbGluZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgd2FzIG5vdCBl
eHRlbmRlZCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAg
ICAgICAgICBlbHNlIGlmIChkZWx0YVRpbWUgPj0gdGltZUFmdGVyRXh0ZW5kZWREZWFkbGluZSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IGRpZCBub3Qg
dGltZW91dC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwogICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgIGlmIChleHRlbmRUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA8IDEpCi0gICAgICAg
ICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgY2FsbGJhY2sgd2Fz
IG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBpZiAo
ZXh0ZW5kVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQgPCAyKQotICAgICAgICAgICAgICAgICAgICBw
cmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkIGFm
dGVyIHRpbWVvdXQgZXh0ZW5zaW9uLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAg
ICAgICAgICAgIGlmIChleHRlbmRUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA8IDEpCisgICAgICAg
ICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNr
IHdhcyBub3QgY2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChleHRlbmRUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA8IDIpCisgICAgICAgICAgICAg
ICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBu
b3QgY2FsbGVkIGFmdGVyIHRpbWVvdXQgZXh0ZW5zaW9uLlxuIiwgdGllck9wdGlvbnMudGllcik7
CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKCFleGNlcHRpb24pCi0gICAg
ICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2Vw
dGlvbiB3YXMgbm90IHRocm93biBkdXJpbmcgdGltZW91dCBleHRlbnNpb24gdGVzdC5cbiIsIHRp
ZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoIWV4Y2VwdGlvbikKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgVGVybWluYXRlZEV4ZWN1dGlv
bkV4Y2VwdGlvbiB3YXMgbm90IHRocm93biBkdXJpbmcgdGltZW91dCBleHRlbnNpb24gdGVzdC5c
biIsIHRpZXJPcHRpb25zLnRpZXIpOwogICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAg
IGZhaWxlZCA9IHRydWU7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGZhaWxl
ZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogCiAjaWYgSEFWRShNQUNIX0VYQ0VQVElPTlMp
CkBAIC00MjUsNTYgKzQ0Myw2MiBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAg
ICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZE51bWJlcih0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3Vs
ZEhhdmVGaXJlZC5zZWNvbmRzKCkpOwogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRM
aXRlcmFsKCIpIGJyZWFrOyB9IH0gZm9vKCk7Iik7CiAKLSAgICAgICAgICAgIEpTU3RyaW5nUmVm
IHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHNjcmlwdEJ1aWxkZXIudG9T
dHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7
Ci0gICAgICAgICAgICBkaXNwYXRjaFRlcm1pbmF0ZUNhbGxiYWNrQ2FsbGVkID0gZmFsc2U7Ci0K
LSAgICAgICAgICAgIC8vIFdlIGhhdmUgdG8gZG8gdGhpcyBzaW5jZSBibG9ja3MgY2FuIG9ubHkg
Y2FwdHVyZSB0aGluZ3MgYXMgY29uc3QuCi0gICAgICAgICAgICBKU0dsb2JhbENvbnRleHRSZWYm
IGNvbnRleHRSZWYgPSBjb250ZXh0OwotICAgICAgICAgICAgSlNTdHJpbmdSZWYmIHNjcmlwdFJl
ZiA9IHNjcmlwdDsKLSAgICAgICAgICAgIEpTVmFsdWVSZWYmIGV4Y2VwdGlvblJlZiA9IGV4Y2Vw
dGlvbjsKLQotICAgICAgICAgICAgTG9jayBzeW5jTG9jazsKLSAgICAgICAgICAgIExvY2smIHN5
bmNMb2NrUmVmID0gc3luY0xvY2s7Ci0gICAgICAgICAgICBDb25kaXRpb24gc3luY2hyb25pemU7
Ci0gICAgICAgICAgICBDb25kaXRpb24mIHN5bmNocm9uaXplUmVmID0gc3luY2hyb25pemU7Ci0g
ICAgICAgICAgICBib29sIGRpZFN5bmNocm9uaXplID0gZmFsc2U7Ci0gICAgICAgICAgICBib29s
JiBkaWRTeW5jaHJvbml6ZVJlZiA9IGRpZFN5bmNocm9uaXplOwotCi0gICAgICAgICAgICBTZWNv
bmRzIHN0YXJ0VGltZTsKLSAgICAgICAgICAgIFNlY29uZHMgZW5kVGltZTsKLQotICAgICAgICAg
ICAgU2Vjb25kcyYgc3RhcnRUaW1lUmVmID0gc3RhcnRUaW1lOwotICAgICAgICAgICAgU2Vjb25k
cyYgZW5kVGltZVJlZiA9IGVuZFRpbWU7Ci0KLSAgICAgICAgICAgIGRpc3BhdGNoX2dyb3VwX3Qg
Z3JvdXAgPSBkaXNwYXRjaF9ncm91cF9jcmVhdGUoKTsKLSAgICAgICAgICAgIGRpc3BhdGNoX2dy
b3VwX2FzeW5jKGdyb3VwLCBkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKDAsIDApLCBeewotICAg
ICAgICAgICAgICAgIHN0YXJ0VGltZVJlZiA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsK
LSAgICAgICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHRSZWYsIHNjcmlwdFJlZiwg
bnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvblJlZik7Ci0gICAgICAgICAgICAgICAgZW5k
VGltZVJlZiA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLSAgICAgICAgICAgICAgICBh
dXRvIGxvY2tlciA9IFdURjo6aG9sZExvY2soc3luY0xvY2tSZWYpOwotICAgICAgICAgICAgICAg
IGRpZFN5bmNocm9uaXplUmVmID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZVJl
Zi5ub3RpZnlBbGwoKTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICBhdXRvIGxvY2tl
ciA9IGhvbGRMb2NrKHN5bmNMb2NrKTsKLSAgICAgICAgICAgIHN5bmNocm9uaXplLndhaXQoc3lu
Y0xvY2ssIFsmXSB7IHJldHVybiBkaWRTeW5jaHJvbml6ZTsgfSk7Ci0KLSAgICAgICAgICAgIGlm
ICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmly
ZWQpICYmIGRpc3BhdGNoVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQpCi0gICAgICAgICAgICAgICAg
cHJpbnRmKCJQQVNTOiAlcyBzY3JpcHQgb24gZGlzcGF0Y2ggcXVldWUgdGltZWQgb3V0IGFzIGV4
cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAg
ICAgICAgICAgICBpZiAoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9n
U2hvdWxkSGF2ZUZpcmVkKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNj
cmlwdCBvbiBkaXNwYXRjaCBxdWV1ZSBkaWQgbm90IHRpbWUgb3V0IGFzIGV4cGVjdGVkLlxuIiwg
dGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAgaWYgKCFzaG91bGRUZXJtaW5hdGVD
YWxsYmFja1dhc0NhbGxlZCkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBz
Y3JpcHQgb24gZGlzcGF0Y2ggcXVldWUgdGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5c
biIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7Ci0g
ICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzY3JpcHRCdWlsZGVy
LnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAg
ICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7CisgICAgICAgICAgICAgICAgZGlzcGF0Y2hU
ZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA9IGZhbHNlOworCisgICAgICAgICAgICAgICAgLy8gV2Ug
aGF2ZSB0byBkbyB0aGlzIHNpbmNlIGJsb2NrcyBjYW4gb25seSBjYXB0dXJlIHRoaW5ncyBhcyBj
b25zdC4KKyAgICAgICAgICAgICAgICBKU0dsb2JhbENvbnRleHRSZWYmIGNvbnRleHRSZWYgPSBj
b250ZXh0OworICAgICAgICAgICAgICAgIEpTU3RyaW5nUmVmJiBzY3JpcHRSZWYgPSBzY3JpcHQ7
CisgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZiYgZXhjZXB0aW9uUmVmID0gZXhjZXB0aW9uOwor
CisgICAgICAgICAgICAgICAgTG9jayBzeW5jTG9jazsKKyAgICAgICAgICAgICAgICBMb2NrJiBz
eW5jTG9ja1JlZiA9IHN5bmNMb2NrOworICAgICAgICAgICAgICAgIENvbmRpdGlvbiBzeW5jaHJv
bml6ZTsKKyAgICAgICAgICAgICAgICBDb25kaXRpb24mIHN5bmNocm9uaXplUmVmID0gc3luY2hy
b25pemU7CisgICAgICAgICAgICAgICAgYm9vbCBkaWRTeW5jaHJvbml6ZSA9IGZhbHNlOworICAg
ICAgICAgICAgICAgIGJvb2wmIGRpZFN5bmNocm9uaXplUmVmID0gZGlkU3luY2hyb25pemU7CisK
KyAgICAgICAgICAgICAgICBTZWNvbmRzIHN0YXJ0VGltZTsKKyAgICAgICAgICAgICAgICBTZWNv
bmRzIGVuZFRpbWU7CisKKyAgICAgICAgICAgICAgICBTZWNvbmRzJiBzdGFydFRpbWVSZWYgPSBz
dGFydFRpbWU7CisgICAgICAgICAgICAgICAgU2Vjb25kcyYgZW5kVGltZVJlZiA9IGVuZFRpbWU7
CisKKyAgICAgICAgICAgICAgICBkaXNwYXRjaF9ncm91cF90IGdyb3VwID0gZGlzcGF0Y2hfZ3Jv
dXBfY3JlYXRlKCk7CisgICAgICAgICAgICAgICAgZGlzcGF0Y2hfZ3JvdXBfYXN5bmMoZ3JvdXAs
IGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoMCwgMCksIF57CisgICAgICAgICAgICAgICAgICAg
IHN0YXJ0VGltZVJlZiA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAg
ICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0UmVmLCBzY3JpcHRSZWYsIG51bGxwdHIs
IG51bGxwdHIsIDEsICZleGNlcHRpb25SZWYpOworICAgICAgICAgICAgICAgICAgICBlbmRUaW1l
UmVmID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAgICAgICAgICAgICAgICBh
dXRvIGxvY2tlciA9IFdURjo6aG9sZExvY2soc3luY0xvY2tSZWYpOworICAgICAgICAgICAgICAg
ICAgICBkaWRTeW5jaHJvbml6ZVJlZiA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIHN5bmNo
cm9uaXplUmVmLm5vdGlmeUFsbCgpOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAg
ICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhzeW5jTG9jayk7CisgICAgICAgICAgICAgICAg
c3luY2hyb25pemUud2FpdChzeW5jTG9jaywgWyZdIHsgcmV0dXJuIGRpZFN5bmNocm9uaXplOyB9
KTsKKworICAgICAgICAgICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFm
dGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpICYmIGRpc3BhdGNoVGVybWluYXRlQ2FsbGJhY2tD
YWxsZWQpCisgICAgICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IG9uIGRp
c3BhdGNoIHF1ZXVlIHRpbWVkIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIp
OworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoKGVuZFRp
bWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKQorICAg
ICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgb24gZGlzcGF0Y2gg
cXVldWUgZGlkIG5vdCB0aW1lIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIp
OworICAgICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2Fs
bGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgb24g
ZGlzcGF0Y2ggcXVldWUgdGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJP
cHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7
CiAgICAgICAgIH0KICNlbmRpZgogCiAgICAgICAgIEpTR2xvYmFsQ29udGV4dFJlbGVhc2UoY29u
dGV4dCk7CiAKLSAgICAgICAgT3B0aW9uczo6c2V0T3B0aW9ucyhzYXZlZE9wdGlvbnNCdWlsZGVy
LnRvU3RyaW5nKCkuYXNjaWkoKS5kYXRhKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBz
YXZlZE9wdGlvbnNCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBPcHRpb25zOjpzZXRP
cHRpb25zKHN0cmluZy0+YXNjaWkoKS5kYXRhKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBDUkFTSCgpOwogICAgIH0KICAgICAKICAgICByZXR1cm4gZmFpbGVkOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9QaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvUGluZ1BvbmdTdGFja092ZXJm
bG93VGVzdC5jcHAKaW5kZXggMDQyYmViZi4uMTEyMzA5YiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9QaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL1BpbmdQb25nU3RhY2tPdmVyZmxvd1Rl
c3QuY3BwCkBAIC02NCw5ICs2NCwxMiBAQCBzdGF0aWMgYm9vbCBQaW5nUG9uZ1N0YWNrT3ZlcmZs
b3dPYmplY3RfaGFzSW5zdGFuY2UoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZQogICAgICAg
ICB9CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKTsiKTsKIAotICAgICAgICBKU1N0
cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhidWlsZGVyLnRv
U3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIHJlc3VsdCA9IEpTRXZhbHVhdGVTY3Jp
cHQoY29udGV4dCwgc2NyaXB0LCBOVUxMLCBOVUxMLCAxLCBleGNlcHRpb24pOwotICAgICAgICBK
U1N0cmluZ1JlbGVhc2Uoc2NyaXB0KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKSB7CisgICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAg
ICAgcmVzdWx0ID0gSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51
bGxwdHIsIDEsIGV4Y2VwdGlvbik7CisgICAgICAgICAgICBKU1N0cmluZ1JlbGVhc2Uoc2NyaXB0
KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIC0t
bmF0aXZlUmVjdXJzaW9uQ291bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBmYzE5MDQ4
Li5mOTAwNjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5OCBAQAorMjAx
OC0wNC0yNiAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3Ry
aW5nQnVpbGRlciBpcyBmYWxsaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTg1MDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU3RyaW5nQnVpbGRlciBjYW4gZmFpbCB3aGVuIGFsbG9jYXRpbmcgbWVt
b3J5LiBTdHJpbmdCdWlsZGVyIGlzCisgICAgICAgIG1vc3RseSB1c2VkIHdpdGggdXNlciBpbnB1
dCwgd2hpY2ggb2Z0ZW4gbWVhbnMgdGhhdCBqdXN0IGNyYXNoaW5nCisgICAgICAgIGlzbid0IHRo
ZSByaWdodCBvdXRjb21lLiBPdXIgZnV6emVycyBvZnRlbiBlbmNvdW50ZXIgc3VjaCB0aGluZ3MK
KyAgICAgICAgZm9yIEphdmFTY3JpcHRDb3JlLCBhbmQgc28gZmFyIHdlJ3ZlIGFwcGxpZWQgcG9p
bnQgc29sdXRpb25zLiBObworICAgICAgICBtb3JlIQorCisgICAgICAgICogQVBJL0pTQ29udGV4
dFJlZi5jcHA6CisgICAgICAgIChKU0NvbnRleHRDcmVhdGVCYWNrdHJhY2UpOgorICAgICAgICAq
IEFQSS90ZXN0cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcDoKKyAgICAgICAgKHRlc3RFeGVj
dXRpb25UaW1lTGltaXQpOgorICAgICAgICAqIEFQSS90ZXN0cy9QaW5nUG9uZ1N0YWNrT3ZlcmZs
b3dUZXN0LmNwcDoKKyAgICAgICAgKFBpbmdQb25nU3RhY2tPdmVyZmxvd09iamVjdF9oYXNJbnN0
YW5jZSk6CisgICAgICAgICogZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OlN0cmVuZ3RoUmVkdWN0aW9uUGhhc2U6OmhhbmRsZU5vZGUpOgorICAg
ICAgICAqIGhlYXAvSGVhcFNuYXBzaG90QnVpbGRlci5jcHA6CisgICAgICAgIChKU0M6OkhlYXBT
bmFwc2hvdEJ1aWxkZXI6Ompzb24pOgorICAgICAgICAqIGluc3BlY3Rvci9Db25zb2xlTWVzc2Fn
ZS5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2Fn
ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlsaXRpZXMuY3BwOgorICAg
ICAgICAoSW5zcGVjdG9yOjpDb250ZW50U2VhcmNoVXRpbGl0aWVzOjpjcmVhdGVTZWFyY2hSZWdl
eFNvdXJjZSk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAg
ICAoSlNDOjpJbnRlcnByZXRlcjo6c3RhY2tUcmFjZUFzU3RyaW5nKToKKyAgICAgICAgKiBpbnRl
cnByZXRlci9TdGFja1Zpc2l0b3IuY3BwOgorICAgICAgICAoSlNDOjpTdGFja1Zpc2l0b3I6OkZy
YW1lOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKHJlc29s
dmVQYXRoKToKKyAgICAgICAgKGZ1bmN0aW9uSlNDU3RhY2spOgorICAgICAgICAqIHJ1bnRpbWUv
Q29uZmlnRmlsZS5jcHA6CisgICAgICAgIChKU0M6OkNvbmZpZ0ZpbGU6OnBhcnNlKToKKyAgICAg
ICAgKiBydW50aW1lL0NvbnNvbGVDbGllbnQuY3BwOgorICAgICAgICAoSlNDOjpDb25zb2xlQ2xp
ZW50OjpwcmludENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKEpTQzo6Q29uc29sZUNsaWVudDo6
cHJpbnRDb25zb2xlTWVzc2FnZVdpdGhBcmd1bWVudHMpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0
ZUNvbnZlcnNpb24uY3BwOgorICAgICAgICAoSlNDOjpmb3JtYXREYXRlVGltZSk6CisgICAgICAg
ICogcnVudGltZS9FcnJvckluc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5j
ZTo6c2FuaXRpemVkVG9TdHJpbmcpOgorICAgICAgICAqIHJ1bnRpbWUvRXhjZXB0aW9uSGVscGVy
cy5jcHA6CisgICAgICAgIChKU0M6Om5vdEFGdW5jdGlvblNvdXJjZUFwcGVuZGVyKToKKyAgICAg
ICAgKiBydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25z
dHJ1Y3RGdW5jdGlvblNraXBwaW5nRXZhbEVuYWJsZWRDaGVjayk6CisgICAgICAgICogcnVudGlt
ZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwOgorICAgICAgICAoSlNDOjpJbnRsRGF0ZVRpbWVGb3Jt
YXQ6OmluaXRpYWxpemVEYXRlVGltZUZvcm1hdCk6CisgICAgICAgICogcnVudGltZS9JbnRsT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6cHJpdmF0ZVVzZUxhbmdUYWcpOgorICAgICAgICAoSlND
OjpjYW5vbmljYWxMYW5nVGFnKToKKyAgICAgICAgKEpTQzo6cmVtb3ZlVW5pY29kZUxvY2FsZUV4
dGVuc2lvbik6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHA6
CisgICAgICAgIChKU0M6OmVuY29kZSk6CisgICAgICAgIChKU0M6OmRlY29kZSk6CisgICAgICAg
IChKU0M6Omdsb2JhbEZ1bmNFc2NhcGUpOgorICAgICAgICAoSlNDOjpnbG9iYWxGdW5jVW5lc2Nh
cGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlN0
cmluZ2lmaWVyOjpzdHJpbmdpZnkpOgorICAgICAgICAoSlNDOjpTdHJpbmdpZmllcjo6SG9sZGVy
OjphcHBlbmROZXh0UHJvcGVydHkpOgorICAgICAgICAqIHJ1bnRpbWUvTGl0ZXJhbFBhcnNlci5j
cHA6CisgICAgICAgIChKU0M6OkxpdGVyYWxQYXJzZXI8Q2hhclR5cGU+OjpMZXhlcjo6bGV4U3Ry
aW5nU2xvdyk6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6
T3B0aW9uczo6ZHVtcE9wdGlvbnNJZk5lZWRlZCk6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OmR1
bXBBbGxPcHRpb25zKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHA6Cisg
ICAgICAgIChKU0M6OnJlZ0V4cFByb3RvR2V0dGVyU291cmNlSW50ZXJuYWwpOgorICAgICAgICAq
IHJ1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHA6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJv
ZmlsZXI6OnN0YWNrVHJhY2VzQXNKU09OKToKKyAgICAgICAgKiBydW50aW1lL1N0YWNrRnJhbWUu
Y3BwOgorICAgICAgICAoSlNDOjpTdGFja0ZyYW1lOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAg
ICogcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OnN0cmluZ0Zy
b21Db2RlUG9pbnQpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcDoKKyAg
ICAgICAgKEpTQzo6c3Vic3RpdHV0ZUJhY2tyZWZlcmVuY2VzU2xvdyk6CisgICAgICAgICogcnVu
dGltZS9UeXBlUHJvZmlsZXIuY3BwOgorICAgICAgICAoSlNDOjpUeXBlUHJvZmlsZXI6OnR5cGVJ
bmZvcm1hdGlvbkZvckV4cHJlc3Npb25BdE9mZnNldCk6CisgICAgICAgICogcnVudGltZS9UeXBl
U2V0LmNwcDoKKyAgICAgICAgKEpTQzo6VHlwZVNldDo6ZHVtcFR5cGVzIGNvbnN0KToKKyAgICAg
ICAgKEpTQzo6VHlwZVNldDo6dG9KU09OU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U3Ry
dWN0dXJlU2hhcGU6OnByb3BlcnR5SGFzaCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVNoYXBl
OjpzdHJpbmdSZXByZXNlbnRhdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVNoYXBlOjp0
b0pTT05TdHJpbmcgY29uc3QpOgorICAgICAgICAqIHRlc3RSZWdFeHAuY3BwOgorICAgICAgICAo
cGFyc2VSZWdFeHBMaW5lKToKKyAgICAgICAgKHBhcnNlVGVzdExpbmUpOgorICAgICAgICAqIHRv
b2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6cGFyc2VDbGF1c2UpOgor
ICAgICAgICAqIHdhc20vV2FzbUJCUVBsYW4uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpCQlFQ
bGFuOjpwcmVwYXJlKToKKyAgICAgICAgKiB5YXJyL1lhcnJQYXJzZXIuaDoKKyAgICAgICAgKEpT
Qzo6WWFycjo6UGFyc2VyOjp0cnlDb25zdW1lR3JvdXBOYW1lKToKKyAgICAgICAgKEpTQzo6WWFy
cjo6UGFyc2VyOjp0cnlDb25zdW1lVW5pY29kZVByb3BlcnR5RXhwcmVzc2lvbik6CisKIDIwMTgt
MDQtMzAgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVtb3ZlIHVubmVlZGVkIGV4Y2VwdGlvbiBjaGVjayBmcm9tIFN0cmluZy5mcm9tQ2hhckNvZGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rp
b25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0
aW9uUGhhc2UuY3BwCmluZGV4IDVjMWJlNjguLmY3MGM3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcApAQCAt
MzYxLDggKzM2MSwxMSBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChsZWZ0U3RyaW5nKTsKICAg
ICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChyaWdodFN0cmluZyk7Ci0gICAgICAgICAgICAg
ICAgbV9ub2RlLT5jb252ZXJ0VG9MYXp5SlNDb25zdGFudCgKLSAgICAgICAgICAgICAgICAgICAg
bV9ncmFwaCwgTGF6eUpTVmFsdWU6Om5ld1N0cmluZyhtX2dyYXBoLCBidWlsZGVyLnRvU3RyaW5n
KCkpKTsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9ub2RlLT5jb252ZXJ0VG9MYXp5SlNDb25zdGFu
dCgKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZ3JhcGgsIExhenlKU1ZhbHVlOjpuZXdTdHJp
bmcobV9ncmFwaCwgKnN0cmluZykpOworICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKQEAgLTM4OSw4ICszOTIsMTEgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgIGlmICghIWV4dHJhU3RyaW5nKQogICAgICAgICAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKGV4dHJhU3RyaW5nKTsKIAotICAgICAgICAgICAgbV9ub2RlLT5jb252ZXJ0
VG9MYXp5SlNDb25zdGFudCgKLSAgICAgICAgICAgICAgICBtX2dyYXBoLCBMYXp5SlNWYWx1ZTo6
bmV3U3RyaW5nKG1fZ3JhcGgsIGJ1aWxkZXIudG9TdHJpbmcoKSkpOworICAgICAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgbV9u
b2RlLT5jb252ZXJ0VG9MYXp5SlNDb25zdGFudCgKKyAgICAgICAgICAgICAgICAgICAgbV9ncmFw
aCwgTGF6eUpTVmFsdWU6Om5ld1N0cmluZyhtX2dyYXBoLCAqc3RyaW5nKSk7CisgICAgICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgbV9jaGFuZ2Vk
ID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC04ODIsOSArODg4LDEy
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICBpZiAobGFz
dEluZGV4IDwgc3RyaW5nLmxlbmd0aCgpKQogICAgICAgICAgICAgICAgICAgICBidWlsZGVyLmFw
cGVuZChzdHJpbmcsIGxhc3RJbmRleCwgc3RyaW5nLmxlbmd0aCgpIC0gbGFzdEluZGV4KTsKLSAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBtX25vZGUtPmNvbnZlcnRUb0xhenlKU0Nv
bnN0YW50KAotICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLCBMYXp5SlNWYWx1ZTo6bmV3U3Ry
aW5nKG1fZ3JhcGgsIGJ1aWxkZXIudG9TdHJpbmcoKSkpOworCisgICAgICAgICAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgICAg
IG1fbm9kZS0+Y29udmVydFRvTGF6eUpTQ29uc3RhbnQoCisgICAgICAgICAgICAgICAgICAgICAg
ICBtX2dyYXBoLCBMYXp5SlNWYWx1ZTo6bmV3U3RyaW5nKG1fZ3JhcGgsICpzdHJpbmcpKTsKKyAg
ICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAg
ICAgICAgIH0KIAogICAgICAgICAgICAgbV9ub2RlLT5vcmlnaW4gPSBvcmlnaW47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3RCdWlsZGVyLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBTbmFwc2hvdEJ1aWxkZXIuY3BwCmluZGV4
IDY1ZjYzM2YuLmUxYWFkMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0hlYXBTbmFwc2hvdEJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0hlYXBTbmFwc2hvdEJ1aWxkZXIuY3BwCkBAIC0zODcsNyArMzg3LDkgQEAgU3RyaW5nIEhlYXBT
bmFwc2hvdEJ1aWxkZXI6Ompzb24oc3RkOjpmdW5jdGlvbjxib29sIChjb25zdCBIZWFwU25hcHNo
b3ROb2RlJik+IGEKICAgICBqc29uLmFwcGVuZCgnXScpOwogCiAgICAganNvbi5hcHBlbmQoJ30n
KTsKLSAgICByZXR1cm4ganNvbi50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGpz
b24udG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCmluZGV4IDVjZmIwNGQuLjcxZTRmYzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCkBA
IC0xMTUsNyArMTE1LDEwIEBAIENvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxlCiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBKU09OTG9nVmFsdWU6OlR5cGU6OkpTT046CiAgICAgICAgICAg
ICBpZiAoYnVpbGRlci5sZW5ndGgoKSkgewotICAgICAgICAgICAgICAgIG1fanNvbkxvZ1ZhbHVl
cy5hcHBlbmQoeyBKU09OTG9nVmFsdWU6OlR5cGU6OlN0cmluZywgSlNPTjo6VmFsdWU6OmNyZWF0
ZShidWlsZGVyLnRvU3RyaW5nKCkpLT50b0pTT05TdHJpbmcoKSB9KTsKKyAgICAgICAgICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAg
ICAgIG1fanNvbkxvZ1ZhbHVlcy5hcHBlbmQoeyBKU09OTG9nVmFsdWU6OlR5cGU6OlN0cmluZywg
SlNPTjo6VmFsdWU6OmNyZWF0ZSgqc3RyaW5nKS0+dG9KU09OU3RyaW5nKCkgfSk7CisgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAg
ICAgIGJ1aWxkZXIucmVzaXplKDApOwogICAgICAgICAgICAgfQogCkBAIC0xMjQsOCArMTI3LDEy
IEBAIENvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwg
TWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxlCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAo
YnVpbGRlci5sZW5ndGgoKSkKLSAgICAgICAgbV9qc29uTG9nVmFsdWVzLmFwcGVuZCh7IEpTT05M
b2dWYWx1ZTo6VHlwZTo6U3RyaW5nLCBKU09OOjpWYWx1ZTo6Y3JlYXRlKGJ1aWxkZXIudG9TdHJp
bmcoKSktPnRvSlNPTlN0cmluZygpIH0pOworICAgIGlmIChidWlsZGVyLmxlbmd0aCgpKSB7Cisg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAg
IG1fanNvbkxvZ1ZhbHVlcy5hcHBlbmQoeyBKU09OTG9nVmFsdWU6OlR5cGU6OlN0cmluZywgSlNP
Tjo6VmFsdWU6OmNyZWF0ZSgqc3RyaW5nKS0+dG9KU09OU3RyaW5nKCkgfSk7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIENSQVNIKCk7CisgICAgfQogCiAgICAgaWYgKG1fanNvbkxvZ1ZhbHVl
cy5zaXplKCkpCiAgICAgICAgIG1fbWVzc2FnZSA9IG1fanNvbkxvZ1ZhbHVlc1swXS52YWx1ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29udGVudFNlYXJj
aFV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnRlbnRT
ZWFyY2hVdGlsaXRpZXMuY3BwCmluZGV4IGFhYTgxZTIuLmIwYzE5NDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxpdGllcy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0
aWVzLmNwcApAQCAtNTUsNyArNTUsOSBAQCBzdGF0aWMgU3RyaW5nIGNyZWF0ZVNlYXJjaFJlZ2V4
U291cmNlKGNvbnN0IFN0cmluZyYgdGV4dCkKICAgICAgICAgcmVzdWx0LmFwcGVuZChjaGFyYWN0
ZXIpOwogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIGlubGluZSBzaXplX3Qgc2l6ZXRFeHRyYWN0b3IoY29u
c3Qgc2l6ZV90KiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9JbnRlcnByZXRlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvSW50ZXJwcmV0ZXIuY3BwCmluZGV4IDRmNzI3MDkuLmVkMTc0OTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcApAQCAtNTc3LDcg
KzU3Nyw5IEBAIEpTU3RyaW5nKiBJbnRlcnByZXRlcjo6c3RhY2tUcmFjZUFzU3RyaW5nKFZNJiB2
bSwgY29uc3QgVmVjdG9yPFN0YWNrRnJhbWU+JiBzdGFjCiAgICAgICAgIGlmIChpICE9IHN0YWNr
VHJhY2Uuc2l6ZSgpIC0gMSkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwogICAg
IH0KLSAgICByZXR1cm4ganNTdHJpbmcoJnZtLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIGpzU3Ry
aW5nKCZ2bSwgKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogQUxXQVlTX0lOTElORSBzdGF0
aWMgSGFuZGxlckluZm8qIGZpbmRFeGNlcHRpb25IYW5kbGVyKFN0YWNrVmlzaXRvciYgdmlzaXRv
ciwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFJlcXVpcmVkSGFuZGxlciByZXF1aXJlZEhhbmRsZXIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNp
dG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0b3Iu
Y3BwCmluZGV4IDFkMWZmNzMuLjcwY2QxMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0b3IuY3BwCkBAIC0zNDcsNyArMzQ3LDkgQEAgU3Ry
aW5nIFN0YWNrVmlzaXRvcjo6RnJhbWU6OnRvU3RyaW5nKCkgY29uc3QKICAgICAgICAgICAgIHRy
YWNlQnVpbGQuYXBwZW5kTnVtYmVyKGNvbHVtbik7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0
dXJuIHRyYWNlQnVpbGQudG9TdHJpbmcoKS5pbXBsKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
dHJhY2VCdWlsZC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gc3RyaW5nLT5pbXBsKCk7Cisg
ICAgQ1JBU0goKTsKIH0KIAogaW50cHRyX3QgU3RhY2tWaXNpdG9yOjpGcmFtZTo6c291cmNlSUQo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCA0YTczZTg3Li4zZmE0NjY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
anNjLmNwcApAQCAtNzY1LDcgKzc2NSw5IEBAIHN0YXRpYyBTdHJpbmcgcmVzb2x2ZVBhdGgoY29u
c3QgRGlyZWN0b3J5TmFtZSYgZGlyZWN0b3J5TmFtZSwgY29uc3QgTW9kdWxlTmFtZSYKICAgICAg
ICAgaWYgKGkgKyAxICE9IGRpcmVjdG9yeVBpZWNlcy5zaXplKCkpCiAgICAgICAgICAgICBidWls
ZGVyLmFwcGVuZChwYXRoU2VwYXJhdG9yKCkpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBh
YnNvbHV0ZVBhdGgoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSkKQEAgLTExMjUsOCArMTEyNywxMSBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSlNDU3RhY2soRXhlY1N0YXRl
KiBleGVjKQogCiAgICAgRnVuY3Rpb25KU0NTdGFja0Z1bmN0b3IgZnVuY3Rvcih0cmFjZSk7CiAg
ICAgZXhlYy0+aXRlcmF0ZShmdW5jdG9yKTsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIiVzIiwgdHJh
Y2UudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHRyYWNlLnRvU3RyaW5nKCkp
IHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICIlcyIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7
CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfQor
ICAgIENSQVNIKCk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25H
Q0FuZFN3ZWVwKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ29uZmlnRmlsZS5jcHAKaW5kZXggYmI4NzY2Ni4uZjdlY2RhYSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uZmlnRmlsZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uZmlnRmlsZS5jcHAKQEAgLTQ2NSw5ICs0NjUsMTIgQEAg
dm9pZCBDb25maWdGaWxlOjpwYXJzZSgpCiAgICAgICAgICAgICBXVEY6OnNldERhdGFGaWxlKGxv
Z1BhdGhuYW1lKTsKIAogICAgICAgICBpZiAoIWpzY09wdGlvbnNCdWlsZGVyLmlzRW1wdHkoKSkg
ewotICAgICAgICAgICAgY29uc3QgY2hhciogb3B0aW9uc1N0ciA9IGpzY09wdGlvbnNCdWlsZGVy
LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKTsKLSAgICAgICAgICAgIE9wdGlvbnM6OmVuYWJsZVJl
c3RyaWN0ZWRPcHRpb25zKHRydWUpOwotICAgICAgICAgICAgT3B0aW9uczo6c2V0T3B0aW9ucyhv
cHRpb25zU3RyKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGpzY09wdGlvbnNCdWls
ZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBvcHRpb25zU3Ry
ID0gc3RyaW5nLT51dGY4KCkuZGF0YSgpOworICAgICAgICAgICAgICAgIE9wdGlvbnM6OmVuYWJs
ZVJlc3RyaWN0ZWRPcHRpb25zKHRydWUpOworICAgICAgICAgICAgICAgIE9wdGlvbnM6OnNldE9w
dGlvbnMob3B0aW9uc1N0cik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBD
UkFTSCgpOwogICAgICAgICB9CiAgICAgfSBlbHNlCiAgICAgICAgIFdURjo6ZGF0YUxvZ0YoIkVy
cm9yIGluIEpTQyBDb25maWcgZmlsZSBvbiBvciBuZWFyIGxpbmUgJXUsIHBhcnNpbmcgJyVzJ1xu
Iiwgc2Nhbm5lci5saW5lTnVtYmVyKCksIHNjYW5uZXIuY3VycmVudEJ1ZmZlcigpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVDbGllbnQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5jcHAKaW5kZXggMjkx
N2Q3NjguLmI4NjY0M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbnNvbGVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bnNvbGVDbGllbnQuY3BwCkBAIC0xNDQsNyArMTQ0LDEwIEBAIHZvaWQgQ29uc29sZUNsaWVudDo6
cHJpbnRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlw
ZSwKICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG1lc3NhZ2Up
OwogCi0gICAgV1RGTG9nQWx3YXlzKCIlcyIsIGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IFdURkxvZ0Fsd2F5cygiJXMiLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgIGVsc2UKKyAg
ICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBDb25zb2xlQ2xpZW50OjpwcmludENvbnNvbGVNZXNz
YWdlV2l0aEFyZ3VtZW50cyhNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwg
TWVzc2FnZUxldmVsIGxldmVsLCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgUmVmPFNjcmlwdEFyZ3Vt
ZW50cz4mJiBhcmd1bWVudHMpCkBAIC0xNzAsNyArMTczLDEwIEBAIHZvaWQgQ29uc29sZUNsaWVu
dDo6cHJpbnRDb25zb2xlTWVzc2FnZVdpdGhBcmd1bWVudHMoTWVzc2FnZVNvdXJjZSBzb3VyY2Us
IE1lc3NhCiAgICAgICAgIHNjb3BlLmNsZWFyRXhjZXB0aW9uKCk7CiAgICAgfQogCi0gICAgV1RG
TG9nQWx3YXlzKCIlcyIsIGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIFdURkxvZ0Fsd2F5
cygiJXMiLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0go
KTsKIAogICAgIGlmIChpc1RyYWNlTWVzc2FnZSkgewogICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGNhbGxTdGFjay0+c2l6ZSgpOyArK2kpIHsKQEAgLTE4Nyw3ICsxOTMsMTAgQEAgdm9p
ZCBDb25zb2xlQ2xpZW50OjpwcmludENvbnNvbGVNZXNzYWdlV2l0aEFyZ3VtZW50cyhNZXNzYWdl
U291cmNlIHNvdXJjZSwgTWVzc2EKICAgICAgICAgICAgIGFwcGVuZFVSTEFuZFBvc2l0aW9uKGNh
bGxGcmFtZUJ1aWxkZXIsIGNhbGxGcmFtZS5zb3VyY2VVUkwoKSwgY2FsbEZyYW1lLmxpbmVOdW1i
ZXIoKSwgY2FsbEZyYW1lLmNvbHVtbk51bWJlcigpKTsKICAgICAgICAgICAgIGNhbGxGcmFtZUJ1
aWxkZXIuYXBwZW5kKCcpJyk7CiAKLSAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiJXMiLCBjYWxs
RnJhbWVCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBpZiAo
YXV0byBzdHJpbmcgPSBjYWxsRnJhbWVCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAg
ICAgV1RGTG9nQWx3YXlzKCIlcyIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb252ZXJzaW9uLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb252ZXJzaW9uLmNwcAppbmRl
eCA4YTg3Y2M2Li40MjNiZTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EYXRlQ29udmVyc2lvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRGF0ZUNvbnZlcnNpb24uY3BwCkBAIC0xMjMsNyArMTIzLDkgQEAgU3RyaW5nIGZvcm1hdERh
dGVUaW1lKGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lJiB0LCBEYXRlVGltZUZvcm1hdCBmb3JtYXQs
IGJvb2wgYXMKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5n
KCkuaW1wbCgpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuIHN0cmluZy0+aW1wbCgpOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JJbnN0YW5jZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3Rh
bmNlLmNwcAppbmRleCBjMTcyNDI4Li43OGQyOTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcApAQCAtMTk5LDcgKzE5OSw5IEBAIFN0cmlu
ZyBFcnJvckluc3RhbmNlOjpzYW5pdGl6ZWRUb1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAg
YnVpbGRlci5hcHBlbmQobmFtZVN0cmluZyk7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI6
ICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG1lc3NhZ2VTdHJpbmcpOwotICAgIHJldHVybiBidWls
ZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIEVycm9y
SW5zdGFuY2U6Om1hdGVyaWFsaXplRXJyb3JJbmZvSWZOZWVkZWQoVk0mIHZtKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcAppbmRleCA2
OTkxNDRiLi42ZTAxYjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FeGNlcHRpb25IZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FeGNlcHRpb25IZWxwZXJzLmNwcApAQCAtMjExLDcgKzIxMSw5IEBAIHN0YXRpYyBTdHJpbmcg
bm90QUZ1bmN0aW9uU291cmNlQXBwZW5kZXIoY29uc3QgU3RyaW5nJiBvcmlnaW5hbE1lc3NhZ2Us
IGNvbnN0IFN0CiAgICAgfQogICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7CiAKLSAgICByZXR1cm4g
YnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGlj
IFN0cmluZyBpbnZhbGlkUGFyYW1ldGVySW5Tb3VyY2VBcHBlbmRlcihjb25zdCBTdHJpbmcmIG9y
aWdpbmFsTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VUZXh0LCBSdW50aW1lVHlwZSB0eXBl
LCBFcnJvckluc3RhbmNlOjpTb3VyY2VUZXh0V2hlcmVFcnJvck9jY3VycmVkIG9jY3VycmVuY2Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0
cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3Ry
dWN0b3IuY3BwCmluZGV4IDAzMWZlMzIuLmRiYTVmODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCkBAIC0xNDMsMTQg
KzE0MywxNyBAQCBKU09iamVjdCogY29uc3RydWN0RnVuY3Rpb25Ta2lwcGluZ0V2YWxFbmFibGVk
Q2hlY2soCiAgICAgICAgIHsKICAgICAgICAgICAgIC8vIFRoZSBzcGVjIG1hbmRhdGVzIHRoYXQg
dGhlIHBhcmFtZXRlcnMgcGFyc2UgYXMgYSB2YWxpZCBwYXJhbWV0ZXIgbGlzdAogICAgICAgICAg
ICAgLy8gaW5kZXBlbmRlbnQgb2YgdGhlIGZ1bmN0aW9uIGJvZHkuCi0gICAgICAgICAgICBTdHJp
bmcgcHJvZ3JhbSA9IG1ha2VTdHJpbmcoIigiLCBwcmVmaXgsICIoIiwgcGFyYW1ldGVyQnVpbGRl
ci50b1N0cmluZygpLCAiKXtcblxufSkiKTsKLSAgICAgICAgICAgIFNvdXJjZUNvZGUgc291cmNl
ID0gbWFrZVNvdXJjZShwcm9ncmFtLCBzb3VyY2VPcmlnaW4sIHNvdXJjZVVSTCwgcG9zaXRpb24p
OwotICAgICAgICAgICAgSlNWYWx1ZSBleGNlcHRpb247Ci0gICAgICAgICAgICBjaGVja1N5bnRh
eChleGVjLCBzb3VyY2UsICZleGNlcHRpb24pOwotICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbikg
ewotICAgICAgICAgICAgICAgIHNjb3BlLnRocm93RXhjZXB0aW9uKGV4ZWMsIGV4Y2VwdGlvbik7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgICAgICB9CisgICAgICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSBwYXJhbWV0ZXJCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAg
ICAgICAgICAgICAgICBTdHJpbmcgcHJvZ3JhbSA9IG1ha2VTdHJpbmcoIigiLCBwcmVmaXgsICIo
IiwgKnN0cmluZywgIil7XG5cbn0pIik7CisgICAgICAgICAgICAgICAgU291cmNlQ29kZSBzb3Vy
Y2UgPSBtYWtlU291cmNlKHByb2dyYW0sIHNvdXJjZU9yaWdpbiwgc291cmNlVVJMLCBwb3NpdGlv
bik7CisgICAgICAgICAgICAgICAgSlNWYWx1ZSBleGNlcHRpb247CisgICAgICAgICAgICAgICAg
Y2hlY2tTeW50YXgoZXhlYywgc291cmNlLCAmZXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICBp
ZiAoZXhjZXB0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIHNjb3BlLnRocm93RXhjZXB0aW9u
KGV4ZWMsIGV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIENS
QVNIKCk7CiAgICAgICAgIH0KIAogICAgICAgICBidWlsZGVyLmFwcGVuZChwYXJhbWV0ZXJCdWls
ZGVyKTsKQEAgLTE2MSw3ICsxNjQsMTAgQEAgSlNPYmplY3QqIGNvbnN0cnVjdEZ1bmN0aW9uU2tp
cHBpbmdFdmFsRW5hYmxlZENoZWNrKAogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBudWxscHRyKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoYm9keSk7CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiXG59fSIpOwotICAgICAgICBwcm9ncmFtID0gYnVpbGRlci50b1N0
cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICBwcm9ncmFtID0gKnN0cmluZzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
Q1JBU0goKTsKICAgICB9CiAKICAgICBTb3VyY2VDb2RlIHNvdXJjZSA9IG1ha2VTb3VyY2UocHJv
Z3JhbSwgc291cmNlT3JpZ2luLCBzb3VyY2VVUkwsIHBvc2l0aW9uKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCmluZGV4IGM5
MjBhY2YuLjJjMmYwNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxEYXRlVGltZUZvcm1hdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcApAQCAtNjQ2LDcgKzY0NiwxMSBAQCB2b2lkIEludGxE
YXRlVGltZUZvcm1hdDo6aW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0KEV4ZWNTdGF0ZSYgZXhlYywg
SlNWYWx1ZSBsb2NhbAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU3RyaW5nIHNrZWxl
dG9uID0gc2tlbGV0b25CdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgU3RyaW5nIHNrZWxldG9uOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHNrZWxldG9uQnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICBza2VsZXRvbiA9ICpzdHJpbmc7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIFN0
cmluZ1ZpZXcgc2tlbGV0b25WaWV3KHNrZWxldG9uKTsKICAgICBWZWN0b3I8VUNoYXIsIDMyPiBw
YXR0ZXJuQnVmZmVyKDMyKTsKICAgICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCmluZGV4IDJiNGMwN2YuLmI3MmU4
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3Qu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCkBA
IC0yNTgsNyArMjU4LDkgQEAgc3RhdGljIFN0cmluZyBwcml2YXRlVXNlTGFuZ1RhZyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgcGFydHMsIHNpemVfdCBzdGFydEluZGV4KQogICAgIGlmIChjdXJyZW50
SW5kZXggPCBudW1QYXJ0cykKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgcmV0dXJu
IHByaXZhdGV1c2UudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBwcml2YXRldXNl
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IHN0YXRpYyBTdHJpbmcgY2Fub25pY2FsTGFuZ1RhZyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFy
dHMpCkBAIC0zOTEsNyArMzkzLDEwIEBAIHN0YXRpYyBTdHJpbmcgY2Fub25pY2FsTGFuZ1RhZyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYgcGFydHMpCiAgICAgICAgIGlmICghbnVtRXh0UGFydHMpCiAg
ICAgICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKLSAgICAgICAgZXh0ZW5zaW9ucy5hcHBlbmQo
ZXh0ZW5zaW9uLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBleHRlbnNp
b24udG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGV4dGVuc2lvbnMuYXBwZW5kKCpzdHJpbmcpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIC8vIEFkZCBl
eHRlbnNpb25zIHRvIGNhbm9uaWNhbCBzb3J0ZWQgYnkgc2luZ2xldG9uLgpAQCAtNDE5LDcgKzQy
NCw5IEBAIHN0YXRpYyBTdHJpbmcgY2Fub25pY2FsTGFuZ1RhZyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYgcGFydHMpCiAKICAgICAvLyBGSVhNRTogUmVwbGFjZSBzdWJ0YWdzIHdpdGggdGhlaXIgcHJl
ZmVycmVkIHZhbHVlcy4KIAotICAgIHJldHVybiBjYW5vbmljYWwudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBjYW5vbmljYWwudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBncmFuZGZhdGhlcmVkTGFu
Z1RhZyhjb25zdCBTdHJpbmcmIGxvY2FsZSkKQEAgLTYyNCw3ICs2MzEsMTAgQEAgU3RyaW5nIHJl
bW92ZVVuaWNvZGVMb2NhbGVFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBsb2NhbGUpCiAgICAgICAg
ICAgICBidWlsZGVyLmFwcGVuZChwYXJ0c1twXSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0
dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAog
c3RhdGljIE1hdGNoZXJSZXN1bHQgbG9va3VwTWF0Y2hlcihFeGVjU3RhdGUmIHN0YXRlLCBjb25z
dCBIYXNoU2V0PFN0cmluZz4mIGF2YWlsYWJsZUxvY2FsZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiByZXF1ZXN0ZWRMb2NhbGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCmluZGV4IDczMTM2NzMuLjE5YjUy
YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0RnVuY3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKQEAgLTE1MSw3ICsxNTEsOSBAQCBzdGF0aWMgSlNWYWx1
ZSBlbmNvZGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBCaXRtYXA8MjU2PiYgZG9Ob3RFc2NhcGUs
IGNvbnN0IENoYQogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMs
IGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4ganNTdHJpbmcoZXhlYywgKnN0cmluZyk7CisgICAgQ1JB
U0goKTsKIH0KIAogc3RhdGljIEpTVmFsdWUgZW5jb2RlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
Qml0bWFwPDI1Nj4mIGRvTm90RXNjYXBlKQpAQCAtMjMwLDcgKzIzMiwxMCBAQCBzdGF0aWMgSlNW
YWx1ZSBkZWNvZGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBDaGFyVHlwZSogY2hhcmFjdGVycywg
aW50IGxlbmd0aCwgYwogICAgICAgICBidWlsZGVyLmFwcGVuZChjKTsKICAgICB9CiAgICAgc2Nv
cGUucmVsZWFzZSgpOwotICAgIHJldHVybiBqc1N0cmluZygmdm0sIGJ1aWxkZXIudG9TdHJpbmco
KSk7CisKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiBqc1N0cmluZygmdm0sICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRp
YyBKU1ZhbHVlIGRlY29kZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEJpdG1hcDwyNTY+JiBkb05v
dFVuZXNjYXBlLCBib29sIHN0cmljdCkKQEAgLTYwMyw3ICs2MDgsOSBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNFc2NhcGUoRXhlY1N0YXRlKiBleGVjKQogICAgICAg
ICAgICAgICAgICAgICBhcHBlbmRCeXRlQXNIZXgoc3RhdGljX2Nhc3Q8TENoYXI+KHUpLCBidWls
ZGVyKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1
cm4ganNTdHJpbmcoZXhlYywgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
anNTdHJpbmcoZXhlYywgKnN0cmluZyk7CisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9
CiAKICAgICAgICAgY29uc3QgVUNoYXIqIGMgPSB2aWV3LmNoYXJhY3RlcnMxNigpOwpAQCAtNjIy
LDcgKzYyOSw5IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0VzY2Fw
ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBy
ZXR1cm4ganNTdHJpbmcoZXhlYywgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuIGpzU3Ry
aW5nKGV4ZWMsICpzdHJpbmcpOworICAgICAgICBDUkFTSCgpOwogICAgIH0pKTsKIH0KIApAQCAt
Njc4LDcgKzY4Nyw5IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1Vu
ZXNjYXBlKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAg
ICAgIHJldHVybiBqc1N0cmluZyhleGVjLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4g
anNTdHJpbmcoZXhlYywgKnN0cmluZyk7CisgICAgICAgIENSQVNIKCk7CiAgICAgfSkpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCmluZGV4IGIz
YTc4MDguLmQ3YzA2ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT05PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05P
YmplY3QuY3BwCkBAIC0yNzgsNyArMjc4LDkgQEAgSlNWYWx1ZSBTdHJpbmdpZmllcjo6c3RyaW5n
aWZ5KEpTVmFsdWUgdmFsdWUpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCiAgICAg
c2NvcGUucmVsZWFzZSgpOwotICAgIHJldHVybiBqc1N0cmluZyhtX2V4ZWMsIHJlc3VsdC50b1N0
cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuIGpzU3RyaW5nKG1fZXhlYywgKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAog
QUxXQVlTX0lOTElORSBKU1ZhbHVlIFN0cmluZ2lmaWVyOjp0b0pTT04oSlNWYWx1ZSB2YWx1ZSwg
Y29uc3QgUHJvcGVydHlOYW1lRm9yRnVuY3Rpb25DYWxsJiBwcm9wZXJ0eU5hbWUpCkBAIC01MDQs
OCArNTA2LDEyIEBAIGJvb2wgU3RyaW5naWZpZXI6OkhvbGRlcjo6YXBwZW5kTmV4dFByb3BlcnR5
KFN0cmluZ2lmaWVyJiBzdHJpbmdpZmllciwgU3RyaW5nQnVpCiAgICAgLy8gTGFzdCB0aW1lIHRo
cm91Z2gsIGZpbmlzaCB1cCBhbmQgcmV0dXJuIGZhbHNlLgogICAgIGlmIChtX2luZGV4ID09IG1f
c2l6ZSkgewogICAgICAgICBzdHJpbmdpZmllci51bmluZGVudCgpOwotICAgICAgICBpZiAobV9z
aXplICYmIGJ1aWxkZXJbYnVpbGRlci5sZW5ndGgoKSAtIDFdICE9ICd7JykKLSAgICAgICAgICAg
IHN0cmluZ2lmaWVyLnN0YXJ0TmV3TGluZShidWlsZGVyKTsKKyAgICAgICAgaWYgKG1fc2l6ZSkg
eworICAgICAgICAgICAgaWYgKGJ1aWxkZXIuZmFpbGVkKCkpCisgICAgICAgICAgICAgICAgQ1JB
U0goKTsKKyAgICAgICAgICAgIGlmICgqYnVpbGRlcltidWlsZGVyLmxlbmd0aCgpIC0gMV0gIT0g
J3snKQorICAgICAgICAgICAgICAgIHN0cmluZ2lmaWVyLnN0YXJ0TmV3TGluZShidWlsZGVyKTsK
KyAgICAgICAgfQogICAgICAgICBidWlsZGVyLmFwcGVuZChtX2lzQXJyYXkgPyAnXScgOiAnfScp
OwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtNTQ4LDcgKzU1NCw5IEBAIGJvb2wg
U3RyaW5naWZpZXI6OkhvbGRlcjo6YXBwZW5kTmV4dFByb3BlcnR5KFN0cmluZ2lmaWVyJiBzdHJp
bmdpZmllciwgU3RyaW5nQnVpCiAgICAgICAgIHJvbGxCYWNrUG9pbnQgPSBidWlsZGVyLmxlbmd0
aCgpOwogCiAgICAgICAgIC8vIEFwcGVuZCB0aGUgc2VwYXJhdG9yIHN0cmluZy4KLSAgICAgICAg
aWYgKGJ1aWxkZXJbcm9sbEJhY2tQb2ludCAtIDFdICE9ICd7JykKKyAgICAgICAgaWYgKGJ1aWxk
ZXIuZmFpbGVkKCkpCisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICBpZiAoKmJ1aWxkZXJb
cm9sbEJhY2tQb2ludCAtIDFdICE9ICd7JykKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcs
Jyk7CiAgICAgICAgIHN0cmluZ2lmaWVyLnN0YXJ0TmV3TGluZShidWlsZGVyKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2VyLmNwcAppbmRleCBmMDBm
ZTA3Li5iODY4NjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9M
aXRlcmFsUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRl
cmFsUGFyc2VyLmNwcApAQCAtNDY2LDEwICs0NjYsMTYgQEAgc2xvd1BhdGhCZWdpbjoKICAgICB9
IGVsc2UgewogICAgICAgICBpZiAobV9idWlsZGVyLmlzOEJpdCgpKSB7CiAgICAgICAgICAgICB0
b2tlbi5zdHJpbmdJczhCaXQgPSAxOwotICAgICAgICAgICAgdG9rZW4uc3RyaW5nVG9rZW44ID0g
bV9idWlsZGVyLmNoYXJhY3RlcnM4KCk7CisgICAgICAgICAgICBpZiAoYXV0byBjaGFycyA9IG1f
YnVpbGRlci5jaGFyYWN0ZXJzOCgpKQorICAgICAgICAgICAgICAgIHRva2VuLnN0cmluZ1Rva2Vu
OCA9ICpjaGFyczsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwog
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgdG9rZW4uc3RyaW5nSXM4Qml0ID0gMDsKLSAg
ICAgICAgICAgIHRva2VuLnN0cmluZ1Rva2VuMTYgPSBtX2J1aWxkZXIuY2hhcmFjdGVyczE2KCk7
CisgICAgICAgICAgICBpZiAoYXV0byBjaGFycyA9IG1fYnVpbGRlci5jaGFyYWN0ZXJzMTYoKSkK
KyAgICAgICAgICAgICAgICB0b2tlbi5zdHJpbmdUb2tlbjE2ID0gKmNoYXJzOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KICAgICAgICAgdG9r
ZW4uc3RyaW5nTGVuZ3RoID0gbV9idWlsZGVyLmxlbmd0aCgpOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKaW5kZXggZGY5ODIyMC4uNWI0ZGMxNSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKQEAgLTU5NSw3ICs1OTUs
MTAgQEAgdm9pZCBPcHRpb25zOjpkdW1wT3B0aW9uc0lmTmVlZGVkKCkKIAogICAgICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGR1bXBBbGxPcHRpb25zKGJ1aWxkZXIsIGxldmVs
LCB0aXRsZSwgbnVsbHB0ciwgIiAgICIsICJcbiIsIER1bXBEZWZhdWx0cyk7Ci0gICAgICAgIGRh
dGFMb2coYnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgZGF0YUxvZygqc3RyaW5nKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9CiAKQEAgLTgwNCw3ICs4MDcsMTAg
QEAgdm9pZCBPcHRpb25zOjpkdW1wQWxsT3B0aW9ucyhGSUxFKiBzdHJlYW0sIER1bXBMZXZlbCBs
ZXZlbCwgY29uc3QgY2hhciogdGl0bGUpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwog
ICAgIGR1bXBBbGxPcHRpb25zKGJ1aWxkZXIsIGxldmVsLCB0aXRsZSwgbnVsbHB0ciwgIiAgICIs
ICJcbiIsIER1bXBEZWZhdWx0cyk7Ci0gICAgZnByaW50ZihzdHJlYW0sICIlcyIsIGJ1aWxkZXIu
dG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIGZwcmludGYoc3RyZWFtLCAiJXMiLCBzdHJpbmctPnV0Zjgo
KS5kYXRhKCkpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBPcHRpb25z
OjpkdW1wT3B0aW9uKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIER1bXBMZXZlbCBsZXZlbCwgT3B0
aW9uczo6SUQgaWQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
UHJvdG90eXBlLmNwcAppbmRleCA3NjMxMDQ3Li44YmRkMmQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKQEAgLTQ2Nyw3ICs0Njcs
OSBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUgcmVnRXhwUHJvdG9HZXR0ZXJTb3VyY2VJbnRlcm5h
bChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cgogICAgICAgICAgICAgcHJldmlvdXNDaGFyYWN0
ZXJXYXNCYWNrc2xhc2ggPSBjaCA9PSAnXFwnOwogICAgIH0KIAotICAgIHJldHVybiBqc1N0cmlu
ZyhleGVjLCByZXN1bHQudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBqc1N0cmluZyhleGVjLCAqc3RyaW5nKTsKKyAg
ICBDUkFTSCgpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3Rv
R2V0dGVyU291cmNlKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKaW5kZXggNTkyYWY0MS4uZjA4YzRmZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxl
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxl
ci5jcHAKQEAgLTkwNCw3ICs5MDQsOSBAQCBTdHJpbmcgU2FtcGxpbmdQcm9maWxlcjo6c3RhY2tU
cmFjZXNBc0pTT04oKQogCiAgICAgY2xlYXJEYXRhKGxvY2tlcik7CiAKLSAgICByZXR1cm4ganNv
bi50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGpzb24udG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBTYW1wbGluZ1By
b2ZpbGVyOjpyZWdpc3RlckZvclJlcG9ydEF0RXhpdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0ZyYW1lLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0YWNrRnJhbWUuY3BwCmluZGV4IDlmMmQ2MGQuLjQ4YTIyYjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuY3BwCkBAIC0xMzksNyArMTM5
LDkgQEAgU3RyaW5nIFN0YWNrRnJhbWU6OnRvU3RyaW5nKFZNJiB2bSkgY29uc3QKICAgICAgICAg
ICAgIHRyYWNlQnVpbGQuYXBwZW5kTnVtYmVyKGNvbHVtbik7CiAgICAgICAgIH0KICAgICB9Ci0g
ICAgcmV0dXJuIHRyYWNlQnVpbGQudG9TdHJpbmcoKS5pbXBsKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gdHJhY2VCdWlsZC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gc3RyaW5nLT5pbXBs
KCk7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBTdGFja0ZyYW1lOjp2aXNpdENoaWxkcmVuKFNs
b3RWaXNpdG9yJiB2aXNpdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCmluZGV4IDBiMTBkOGYuLjVlZDJlYWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAK
QEAgLTEyNSw3ICsxMjUsOSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBz
dHJpbmdGcm9tQ29kZVBvaW50KEV4ZWNTdGF0ZSogZXhlYykKICAgICB9CiAKICAgICBzY29wZS5y
ZWxlYXNlKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyhleGVjLCBidWls
ZGVyLnRvU3RyaW5nKCkpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcoZXhlYywgKnN0cmlu
ZykpOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNvbnN0cnVjdFdpdGhTdHJpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAppbmRl
eCBhMGQzNjAxLi41OGNjZDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKQEAgLTI4MCw3ICsyODAsOSBAQCBzdGF0aWMgTkVWRVJf
SU5MSU5FIFN0cmluZyBzdWJzdGl0dXRlQmFja3JlZmVyZW5jZXNTbG93KFN0cmluZ1ZpZXcgcmVw
bGFjZW1lbnQsCiAgICAgaWYgKHJlcGxhY2VtZW50Lmxlbmd0aCgpIC0gb2Zmc2V0KQogICAgICAg
ICBzdWJzdGl0dXRlZFJlcGxhY2VtZW50LmFwcGVuZChyZXBsYWNlbWVudC5zdWJzdHJpbmcob2Zm
c2V0KSk7CiAKLSAgICByZXR1cm4gc3Vic3RpdHV0ZWRSZXBsYWNlbWVudC50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHN1YnN0aXR1dGVkUmVwbGFjZW1lbnQudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogaW5saW5lIFN0cmlu
ZyBzdWJzdGl0dXRlQmFja3JlZmVyZW5jZXNJbmxpbmUoY29uc3QgU3RyaW5nJiByZXBsYWNlbWVu
dCwgU3RyaW5nVmlldyBzb3VyY2UsIGNvbnN0IGludCogb3ZlY3RvciwgUmVnRXhwKiByZWcpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlUHJvZmlsZXIuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmNwcAppbmRleCAw
Zjg1ZWY4Li43YWU5NzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9UeXBlUHJvZmlsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5
cGVQcm9maWxlci5jcHAKQEAgLTEwNCw4ICsxMDQsMTAgQEAgU3RyaW5nIFR5cGVQcm9maWxlcjo6
dHlwZUluZm9ybWF0aW9uRm9yRXhwcmVzc2lvbkF0T2Zmc2V0KFR5cGVQcm9maWxlclNlYXJjaERl
c2MKICAgICAgICAganNvbi5hcHBlbmRMaXRlcmFsKCJmYWxzZSIpOwogCiAgICAganNvbi5hcHBl
bmQoJ30nKTsKLSAgICAKLSAgICByZXR1cm4ganNvbi50b1N0cmluZygpOworCisgICAgaWYgKGF1
dG8gc3RyaW5nID0ganNvbi50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBUeXBlTG9jYXRpb24qIFR5cGVQcm9maWxlcjo6ZmluZExvY2F0aW9u
KHVuc2lnbmVkIGRpdm90LCBpbnRwdHJfdCBzb3VyY2VJRCwgVHlwZVByb2ZpbGVyU2VhcmNoRGVz
Y3JpcHRvciBkZXNjcmlwdG9yLCBWTSYgdm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9UeXBlU2V0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1R5cGVTZXQuY3BwCmluZGV4IDdhNDEyZTYuLmMzYTA1YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVTZXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1R5cGVTZXQuY3BwCkBAIC0xMzEsNyArMTMxLDkgQEAgU3RyaW5nIFR5cGVT
ZXQ6OmR1bXBUeXBlcygpIGNvbnN0CiAgICAgICAgIHNlZW4uYXBwZW5kKGxlYXN0Q29tbW9uQW5j
ZXN0b3IoKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIHNlZW4udG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBzZWVuLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgVHlwZVNldDo6ZG9lc1R5cGVDb25mb3JtVG8oUnVudGlt
ZVR5cGVNYXNrIHRlc3QpIGNvbnN0CkBAIC0zMTcsNyArMzE5LDkgQEAgU3RyaW5nIFR5cGVTZXQ6
OnRvSlNPTlN0cmluZygpIGNvbnN0CiAgICAganNvbi5hcHBlbmQoJ10nKTsKIAogICAgIGpzb24u
YXBwZW5kKCd9Jyk7Ci0gICAgcmV0dXJuIGpzb24udG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBqc29uLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAKIFN0cnVjdHVyZVNoYXBlOjpTdHJ1Y3R1cmVTaGFwZSgpCkBAIC0zNjIsOCAr
MzY2LDExIEBAIFN0cmluZyBTdHJ1Y3R1cmVTaGFwZTo6cHJvcGVydHlIYXNoKCkKICAgICAgICAg
YnVpbGRlci5hcHBlbmQobV9wcm90by0+cHJvcGVydHlIYXNoKCkpOwogICAgIH0KIAotICAgIG1f
cHJvcGVydHlIYXNoID0gc3RkOjptYWtlX3VuaXF1ZTxTdHJpbmc+KGJ1aWxkZXIudG9TdHJpbmco
KSk7Ci0gICAgcmV0dXJuICptX3Byb3BlcnR5SGFzaDsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgbV9wcm9wZXJ0eUhhc2ggPSBzdGQ6Om1ha2Vf
dW5pcXVlPFN0cmluZz4oKnN0cmluZyk7CisgICAgICAgIHJldHVybiAqbV9wcm9wZXJ0eUhhc2g7
CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBTdHJ1Y3R1cmVTaGFwZTo6bGVhc3RD
b21tb25BbmNlc3Rvcihjb25zdCBWZWN0b3I8UmVmPFN0cnVjdHVyZVNoYXBlPj4mIHNoYXBlcykK
QEAgLTQyNyw3ICs0MzQsOSBAQCBTdHJpbmcgU3RydWN0dXJlU2hhcGU6OnN0cmluZ1JlcHJlc2Vu
dGF0aW9uKCkKIAogICAgIHJlcHJlc2VudGF0aW9uLmFwcGVuZCgnfScpOwogCi0gICAgcmV0dXJu
IHJlcHJlc2VudGF0aW9uLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVwcmVz
ZW50YXRpb24udG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogU3RyaW5nIFN0cnVjdHVyZVNoYXBlOjp0b0pTT05TdHJpbmcoKSBjb25zdApAQCAt
NDk0LDcgKzUwMyw5IEBAIFN0cmluZyBTdHJ1Y3R1cmVTaGFwZTo6dG9KU09OU3RyaW5nKCkgY29u
c3QKIAogICAgIGpzb24uYXBwZW5kKCd9Jyk7CiAKLSAgICByZXR1cm4ganNvbi50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGpzb24udG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlJ1
bnRpbWU6OlN0cnVjdHVyZURlc2NyaXB0aW9uPiBTdHJ1Y3R1cmVTaGFwZTo6aW5zcGVjdG9yUmVw
cmVzZW50YXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RSZWdF
eHAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RSZWdFeHAuY3BwCmluZGV4IGU2Y2Rk
NTAuLmM0ZDhkZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhw
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAKQEAgLTMyOSwx
MiArMzI5LDE1IEBAIHN0YXRpYyBSZWdFeHAqIHBhcnNlUmVnRXhwTGluZShWTSYgdm0sIGNoYXIq
IGxpbmUsIGludCBsaW5lTGVuZ3RoLCBjb25zdCBjaGFyKioKIAogICAgICsraTsKIAotICAgIFJl
Z0V4cCogciA9IFJlZ0V4cDo6Y3JlYXRlKHZtLCBwYXR0ZXJuLnRvU3RyaW5nKCksIHJlZ0V4cEZs
YWdzKGxpbmUgKyBpKSk7Ci0gICAgaWYgKCFyLT5pc1ZhbGlkKCkpIHsKLSAgICAgICAgKnJlZ2V4
cEVycm9yID0gci0+ZXJyb3JNZXNzYWdlKCk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHBhdHRlcm4udG9TdHJpbmcoKSkgeworICAgICAgICBSZWdFeHAq
IHIgPSBSZWdFeHA6OmNyZWF0ZSh2bSwgKnN0cmluZywgcmVnRXhwRmxhZ3MobGluZSArIGkpKTsK
KyAgICAgICAgaWYgKCFyLT5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgICpyZWdleHBFcnJvciA9
IHItPmVycm9yTWVzc2FnZSgpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAg
IH0KKyAgICAgICAgcmV0dXJuIHI7CiAgICAgfQotICAgIHJldHVybiByOworICAgIENSQVNIKCk7
CiB9CiAKIHN0YXRpYyBSZWdFeHBUZXN0KiBwYXJzZVRlc3RMaW5lKGNoYXIqIGxpbmUsIGludCBs
aW5lTGVuZ3RoKQpAQCAtMzc3LDggKzM4MCwxMSBAQCBzdGF0aWMgUmVnRXhwVGVzdCogcGFyc2VU
ZXN0TGluZShjaGFyKiBsaW5lLCBpbnQgbGluZUxlbmd0aCkKICAgICBpbnQgc3RhcnQsIGVuZDsK
ICAgICAKICAgICBSZWdFeHBUZXN0KiByZXN1bHQgPSBuZXcgUmVnRXhwVGVzdCgpOwotICAgIAot
ICAgIHJlc3VsdC0+c3ViamVjdCA9IHN1YmplY3RTdHJpbmcudG9TdHJpbmcoKTsKKworICAgIGlm
IChhdXRvIHN0cmluZyA9IHN1YmplY3RTdHJpbmcudG9TdHJpbmcoKSkKKyAgICAgICAgcmVzdWx0
LT5zdWJqZWN0ID0gKnN0cmluZzsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgcmVz
dWx0LT5vZmZzZXQgPSBvZmZzZXQ7CiAgICAgcmVzdWx0LT5yZXN1bHQgPSBtYXRjaFJlc3VsdDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJp
ZGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9GdW5jdGlvbk92ZXJyaWRlcy5j
cHAKaW5kZXggZTgzYjZlZS4uNGFjMjdjNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuY3BwCkBAIC0yMTgsMTMgKzIxOCwxOCBAQCBzdGF0
aWMgU3RyaW5nIHBhcnNlQ2xhdXNlKGNvbnN0IGNoYXIqIGtleXdvcmQsIHNpemVfdCBrZXl3b3Jk
TGVuZ3RoLCBGSUxFKiBmaWxlLAogICAgICAgICAgICAgICAgIEZBSUxfV0lUSF9FUlJPUihTWU5U
QVhfRVJST1IsICgiVW5leHBlY3RlZCBjaGFyYWN0ZXJzIGFmdGVyICciLCBrZXl3b3JkLCAiJyBj
bGF1c2UgZW5kIGRlbGltaXRlciAnIiwgZGVsaW1pdGVyLCAiJzpcbiIsIGxpbmUsICJcbiIpKTsK
IAogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQobGluZSwgcCAtIGxpbmUgKyAxKTsKLSAgICAg
ICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKGxpbmUpOwogCiAgICAgfSB3aGlsZSAoKGxpbmUgPSBmZ2V0cyhidWZmZXIsIGJ1ZmZlclNp
emUsIGZpbGUpKSk7CiAKLSAgICBGQUlMX1dJVEhfRVJST1IoU1lOVEFYX0VSUk9SLCAoIiciLCBr
ZXl3b3JkLCAiJyBjbGF1c2UgZW5kIGRlbGltaXRlciAnIiwgZGVsaW1pdGVyLCAiJyBub3QgZm91
bmQ6XG4iLCBidWlsZGVyLnRvU3RyaW5nKCksICJcbiIsICJBcmUgeW91IG1pc3NpbmcgYSAnfScg
YmVmb3JlIHRoZSBkZWxpbWl0ZXI/XG4iKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICBGQUlMX1dJVEhfRVJST1IoU1lOVEFYX0VSUk9SLCAoIici
LCBrZXl3b3JkLCAiJyBjbGF1c2UgZW5kIGRlbGltaXRlciAnIiwgZGVsaW1pdGVyLCAiJyBub3Qg
Zm91bmQ6XG4iLCAqc3RyaW5nLCAiXG4iLCAiQXJlIHlvdSBtaXNzaW5nIGEgJ30nIGJlZm9yZSB0
aGUgZGVsaW1pdGVyP1xuIikpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9p
ZCBGdW5jdGlvbk92ZXJyaWRlczo6cGFyc2VPdmVycmlkZXNJbkZpbGUoY29uc3QgY2hhciogZmls
ZU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxh
bi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbi5jcHAKaW5kZXgg
YTc4MjBjOS4uZmEwMDM0MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUJCUVBsYW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQ
bGFuLmNwcApAQCAtMTUwLDggKzE1MCwxMSBAQCB2b2lkIEJCUVBsYW46OnByZXBhcmUoKQogICAg
ICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJGYWlsZWQgYWxsb2NhdGluZyBlbm91Z2gg
c3BhY2UgZm9yICIpOwogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoc2l6ZSk7CiAg
ICAgICAgICAgICBidWlsZGVyLmFwcGVuZCh3aGF0KTsKLSAgICAgICAgICAgIGZhaWwoaG9sZExv
Y2sobV9sb2NrKSwgYnVpbGRlci50b1N0cmluZygpKTsKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkgewor
ICAgICAgICAgICAgICAgIGZhaWwoaG9sZExvY2sobV9sb2NrKSwgV1RGTW92ZSgqc3RyaW5nKSk7
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhcnNlci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhcnNlci5oCmluZGV4IGYxNmYxMWYuLjhiNzU4ZWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXJzZXIuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmgKQEAgLTEwMzEsOCArMTAz
MSwxMSBAQCBwcml2YXRlOgogCiAgICAgICAgICAgICB3aGlsZSAoIWF0RW5kT2ZQYXR0ZXJuKCkp
IHsKICAgICAgICAgICAgICAgICBjaCA9IHRyeUNvbnN1bWVJZGVudGlmaWVyQ2hhcmFjdGVyKCk7
Ci0gICAgICAgICAgICAgICAgaWYgKGNoID09ICc+JykKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPihpZGVudGlmaWVyQnVpbGRlci50b1N0cmluZygpKTsK
KyAgICAgICAgICAgICAgICBpZiAoY2ggPT0gJz4nKSB7CisgICAgICAgICAgICAgICAgICAgIGlm
IChhdXRvIHN0cmluZyA9IGlkZW50aWZpZXJCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxTdHJpbmc+KCpzdHJpbmcpOworICAg
ICAgICAgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgICAgIGlmICghaXNJZGVudGlmaWVyUGFydChjaCkpCiAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwpAQCAtMTA3MCwyMyArMTA3MywzMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIH0K
IAogICAgICAgICAgICAgICAgIGlmIChmb3VuZEVxdWFscykgewotICAgICAgICAgICAgICAgICAg
ICBhdXRvIHJlc3VsdCA9IHVuaWNvZGVNYXRjaFByb3BlcnR5VmFsdWUodW5pY29kZVByb3BlcnR5
TmFtZSwgZXhwcmVzc2lvbkJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IGV4cHJlc3Npb25CdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gdW5pY29kZU1hdGNoUHJvcGVydHlWYWx1
ZSh1bmljb2RlUHJvcGVydHlOYW1lLCAqc3RyaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGlmICghcmVzdWx0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZXJyb3JDb2RlID0g
RXJyb3JDb2RlOjpJbnZhbGlkVW5pY29kZVByb3BlcnR5RXhwcmVzc2lvbjsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSBleHByZXNzaW9uQnVpbGRlci50b1N0cmluZygpKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gdW5pY29kZU1hdGNoUHJvcGVydHkoKnN0
cmluZyk7CiAgICAgICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KQogICAgICAgICAgICAgICAg
ICAgICAgICAgbV9lcnJvckNvZGUgPSBFcnJvckNvZGU6OkludmFsaWRVbmljb2RlUHJvcGVydHlF
eHByZXNzaW9uOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gdW5pY29kZU1hdGNoUHJv
cGVydHkoZXhwcmVzc2lvbkJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgaWYg
KCFyZXN1bHQpCi0gICAgICAgICAgICAgICAgICAgIG1fZXJyb3JDb2RlID0gRXJyb3JDb2RlOjpJ
bnZhbGlkVW5pY29kZVByb3BlcnR5RXhwcmVzc2lvbjsKLSAgICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgIGNvbnN1bWUoKTsKICAgICAgICAgICAgIGlmIChjaCA9PSAnPScpIHsKICAgICAgICAg
ICAgICAgICBpZiAoIWZvdW5kRXF1YWxzKSB7CiAgICAgICAgICAgICAgICAgICAgIGZvdW5kRXF1
YWxzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgdW5pY29kZVByb3BlcnR5TmFtZSA9IGV4
cHJlc3Npb25CdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IGV4cHJlc3Npb25CdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICB1bmljb2RlUHJvcGVydHlOYW1lID0gKnN0cmluZzsKKyAgICAgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgICAg
ICAgICAgZXhwcmVzc2lvbkJ1aWxkZXIuY2xlYXIoKTsKICAgICAgICAgICAgICAgICB9IGVsc2UK
ICAgICAgICAgICAgICAgICAgICAgZXJyb3JzKys7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDVmMDA0YTUuLjExNTUxMzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQ2IEBACisyMDE4LTA0LTI2ICBKRiBCYXN0aWVuICA8amZiYXN0aWVuQGFw
cGxlLmNvbT4KKworICAgICAgICBTdHJpbmdCdWlsZGVyIGlzIGZhbGxpYmxlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUwNDgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdHJpbmdCdWlsZGVyIGNhbiBm
YWlsIHdoZW4gYWxsb2NhdGluZyBtZW1vcnkuIFN0cmluZ0J1aWxkZXIgaXMKKyAgICAgICAgbW9z
dGx5IHVzZWQgd2l0aCB1c2VyIGlucHV0LCB3aGljaCBvZnRlbiBtZWFucyB0aGF0IGp1c3QgY3Jh
c2hpbmcKKyAgICAgICAgaXNuJ3QgdGhlIHJpZ2h0IG91dGNvbWUuIE91ciBmdXp6ZXJzIG9mdGVu
IGVuY291bnRlciBzdWNoIHRoaW5ncworICAgICAgICBmb3IgSmF2YVNjcmlwdENvcmUsIGFuZCBz
byBmYXIgd2UndmUgYXBwbGllZCBwb2ludCBzb2x1dGlvbnMuIE5vCisgICAgICAgIG1vcmUhIFRo
aXMgcGF0Y2ggbWFrZXMgU3RyaW5nQnVpbGRlciBmYWxsaWJsZSBhbmQgZW5mb3JjZXMgdGhpcyBp
bgorICAgICAgICB0d28gd2F5czoKKworICAgICAgICAgIC0gRWFjaCBzdGVwIG9mIGJ1aWxkaW5n
IGEgc3RyaW5nIGNhbiBiZSBjaGVja2VkIGZvciBmYWlsdXJlCisgICAgICAgICAgICBiZWNhdXNl
IHRoZXkgbm93IHJldHVybiBhICJGYWxsaWJsZTxUPiIuIFRoaXMgY2FuIGJlIGlnbm9yZWQgYXQK
KyAgICAgICAgICAgIGV2ZXJ5IHN0ZXAhCisgICAgICAgICAgLSBUaGUgZmluYWwgc3RlcCBvZiBT
dHJpbmdCdWlsZGVyLCBnZXR0aW5nIHRoZSBzdHJpbmcgb3V0LAorICAgICAgICAgICAgcmV0dXJu
cyBhICJGYWxsaWJsZTxTdHJpbmc+IiB3aGljaCBpcyBtYXJrZWQgd2l0aAorICAgICAgICAgICAg
V0FSTl9VTlVTRURfUkVUVVJOLiBGYWlsdXJlIGlzIGNvbW11bmljYXRlZCBpZiBhbnkgb2YgdGhl
IGJ1aWxkaW5nCisgICAgICAgICAgICBzdGVwcyBmYWlsZWQuCisKKyAgICAgICAgRG9pbmcgdGhp
cyB0d28tc3RlcCBhcHByb2FjaCBtZWFucyB0aGF0IGNvZGUgY2FuIGNvbnRpbnVlCisgICAgICAg
IG9wZXJhdGluZyBhcyBpdCBkaWQgYmVmb3JlIChhcHBlbmQgYSBidW5jaCBhbmQgdGhlbiBnZXQg
YSBzdHJpbmcpCisgICAgICAgIGFuZCBvbmx5IG5lZWRzIHRvIGNhcmUgYWJvdXQgdGhlIHN0cmlu
ZyBwb3RlbnRpYWxseSBub3QgYmVpbmcKKyAgICAgICAgYXZhaWxhYmxlLiBUaGlzIGlzIGVuZm9y
Y2VkIGJ5IHRoZSB0eXBlIHN5c3RlbTogRmFsbGlibGU8VD4gaXMKKyAgICAgICAgc3RkOjpleHBl
Y3RlZDxULCBTdHJpbmdCdWlsZGVyOjpGYWlsdXJlPi4KKworICAgICAgICBUaGUgZm9sbG93aW5n
IGludGVybWVkaWF0ZSBmdW5jdGlvbnMgY2FuIG5vdyBiZSBvYnNlcnZlZCB0byBmYWlsCisgICAg
ICAgIChvciBpZ25vcmVkKToKKworICAgICAgICAgIC0gYXBwZW5kCisgICAgICAgICAgLSBhcHBl
bmRVbmluaXRpYWxpemVkCisgICAgICAgICAgLSBhcHBlbmRVbmluaXRpYWxpemVkU2xvdworICAg
ICAgICAgIC0gYXBwZW5kUXVvdGVkSlNPTlN0cmluZyB1c2VkIHRvIHJldHVybiBmYWxzZSBvbiBm
YWlsdXJlLCBpdCBub3cgcmV0dXJucyBGYWxsaWJsZTw+CisgICAgICAgICAgLSByZXNpemUKKyAg
ICAgICAgICAtIGFsbG9jYXRlQnVmZmVyCisgICAgICAgICAgLSBhbGxvY2F0ZUJ1ZmZlclVwQ29u
dmVydAorICAgICAgICAgIC0gcmVhbGxvY2F0ZUJ1ZmZlcgorICAgICAgICAgIC0gcmVzZXJ2ZUNh
cGFjaXR5CisgICAgICAgICAgLSBzaHJpbmtUb0ZpdAorICAgICAgICAgIC0gb3BlcmF0b3JbXQor
ICAgICAgICAgIC0gY2hhcmFjdGVyczgKKyAgICAgICAgICAtIGNoYXJhY3RlcnMxNgorCisgICAg
ICAgIEZhaWx1cmUgaW4gdGhlc2UgbWV0aG9kcyBjb21lcyBpbiB0d28gZm9ybXM6IG91dCBvZiBt
ZW1vcnksIGFuZAorICAgICAgICB3b3VsZCBvdmVyZmxvdy4gV2hlbiBhbiBvcGVyYXRpb24gd291
bGQgb3ZlcmZsb3cgaXQgbGVhdmVzIHRoZQorICAgICAgICBTdHJpbmdCdWlsZGVyIGluIGl0cyBw
cmV2aW91cyBzdGF0ZSwgYWxsb3dpbmcgdXNlcnMgdG8gcmVzdW1lCisgICAgICAgIHdvcmssIGtl
ZXAgdGhlIHN0cmluZyBhcyBpdCBleGlzdGVkIGJlZm9yZSBmYWlsdXJlLiBXaGVuIHdlIGp1c3QK
KyAgICAgICAgZmFpbCBhbGxvY2F0aW5nIGl0IG1lYW5zIHdlIGV4cGVjdGVkIHRvIHN1Y2NlZWQs
IHNvIGNsZWFyaW5nIHRoZQorICAgICAgICBTdHJpbmdCdWlsZGVyIGlzIHRoZSByaWdodCB0aGlu
ZyB0byBkby4KKworICAgICAgICBTdXBwb3J0aW5nIGZhaWx1cmUgaW4gU3RyaW5nQnVpbGRlciBy
ZXF1aXJlZCBhZGRpbmcgInRyeSIgdmFyaWFudHMKKyAgICAgICAgb2Ygc29tZSBtZXRob2RzIGlu
IFN0cmluZ0ltcGwuCisKKyAgICAgICAgVGhpcyBwYXRjaCB1cGRhdGVzIGFsbCBXZWJLaXQgY29k
ZSB3aGljaCB1c2VzIFN0cmluZ0J1aWxkZXIuIEl0CisgICAgICAgIGxlYXZlcyBhbGwgaW50ZXJt
ZWRpYXRlIGZ1bmN0aW9uIHVzYWdlIGFsb25lIChjb2RlIHN0aWxsIGFwcGVuZHMKKyAgICAgICAg
YmFjay10by1iYWNrLCBibGlzc2Z1bGx5IHVuYXdhcmUgb2YgZmFpbHVyZSksIGFuZCBvbmx5IGNo
ZWNrcyBmb3IKKyAgICAgICAgZmFpbHVyZSB3aGVuIHJldHJpZXZpbmcgdGhlIHN0cmluZy4gVGhl
IHBhdHRlcm4gdXNlZCBpcyB1c3VhbGx5OgorCisgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
YnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgZm9vKCpzdHJpbmcpOyAvLyBVc2Ugc3Ry
aW5nIGFzIGJlZm9yZS4uLgorICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CisK
KyAgICAgICAgVGhpcyBtYWtlcyBmYWlsdXJlIGV4dHJlbWVseSBleHBsaWNpdC4gVGhlcmUncyBu
byB0cnVlIGJlaGF2aW9yCisgICAgICAgIGNoYW5nZTogd2hhdCB3b3VsZCBoYXZlIGNyYXNoZWQg
d2hlbiBhcHBlbmRpbmcgbm93IGNyYXNoZXMgd2hlbgorICAgICAgICByZXRyaWV2aW5nIHRoZSBz
dHJpbmcuIFB1bGxpbmcgQ1JBU0goKSBvdXQgd2lsbCBnaXZlIHNsaWdodGx5CisgICAgICAgIGJl
dHRlciBjcmFzaCBzaWduYXR1cmVzLCBhbmQgaXQgbWFrZXMgdGhlIGNvZGUgdmVyeSBvYnZpb3Vz
IGFib3V0CisgICAgICAgIGZhaWx1cmUuIEkgcHVycG9zZWZ1bGx5IGRvbid0ICJmaXgiIGFueSBm
YWlsdXJlIGJlY2F1c2UgdGhlc2UKKyAgICAgICAgc2hvdWxkIGJlIGRvbmUgaW4gYSB0YXJnZXRl
ZCBtYW5uZXIgd2l0aCByZXBybyB0ZXN0cyB3aGVuZXZlcgorICAgICAgICBwb3NzaWJsZS4gSSdt
IHZlcnkgd2FyeSBvZiBpbnRyb2R1Y2luZyBidWdzIQorCisgICAgICAgIFdoZW4gc29tZW9uZSBp
bmV2aXRhYmx5IGJsYW1lcyBjb2RlIGJhY2sgdG8gdGhpcyBjb21taXQgKGJlY2F1c2UKKyAgICAg
ICAgaGV5IHRoZSBjb2RlIGlzIHByZXR0eSB1Z2x5LCBhbmQgeW91IG1pZ2h0IGJlIHN1cnByaXNl
ZCBhdCBzZWVpbmcKKyAgICAgICAgQ1JBU0goKSBpbiB5b3VyIGJlYXV0aWZ1bCBjb2RlKSB0aGVy
ZSBhcmUgYSBmZXcgdGhpbmdzIHdoaWNoIHRoZXkKKyAgICAgICAgY2FuIGRvOgorCisgICAgICAg
ICAgMS4gQ2hhbmdlIHRoZSBlbHNlIGNsYXVzZSB0byBoYW5kbGUgZmFpbHVyZSByYXRoZXIgdGhh
biBjcmFzaC4gSW4gSmF2YVNjcmlwdENvcmUgdGhhdCdzIHVzdWFsbHkgdGhyb3dPdXRPZk1lbW9y
eUVycm9yLgorICAgICAgICAgIDIuIENoYW5nZSB0aGUgY29kZSB0byBkaXJlY3RseSB1c2UgRmFs
bGlibGUncyAudmFsdWUoKSBtZW1iZXIsIGFuZCBsZXQgKnRoYXQqIGNyYXNoIGluc3RlYWQuIFRo
aXMgbWFrZXMgdGhlIGNyYXNoIG5vbi1vYnZpb3VzIGluIHRoZSBjb2RlLCB3aGljaCBtaWdodCBi
ZSB3aGF0IHlvdSB3YW50LgorICAgICAgICAgIDMuIENoYW5nZSB0aGUgY29kZSB0byBkZXRlY3Qg
ZmFpbHVyZSBhdCB0aGUgZWFybGllc3Qgc3RlcCBvZiBzdHJpbmcgYnVpbGRpbmcgKGxpa2VseSB0
aGUgYXBwZW5kIGNhbGxzKSwgYW5kIGRvIHNvbWV0aGluZyBzZW5zaWJsZSB0aGVyZS4KKworICAg
ICAgICBJbiBubyBjaXJjdW1zdGFuY2Ugc2hvdWxkIGNvZGUganVzdCBkZXJlZmVyZW5jZSBhIEZh
bGxpYmxlIHdpdGhvdXQKKyAgICAgICAga25vd2luZyB0aGF0IGl0cyBzdGF0ZSBob2xkcyBhIHZh
bGlkIHN0cmluZy4gVGhpcyBjb2RlIGlzCisgICAgICAgIHVuZGVmaW5lZCBiZWhhdmlvciBhY2Nv
cmRpbmcgdG8gdGhlIHN0ZDo6ZXhwZWN0ZWQgc3BlY2lmaWNhdGlvbgorICAgICAgICAod2hldGhl
ciBvdXIgaW1wbGVtZW50YXRpb24gc2hvdWxkIGRvIHNvbWV0aGluZyBlbHNlIGlzIG91dCBvZgor
ICAgICAgICBzY29wZSBmb3IgdGhpcyBwYXRjaCk6CisKKyAgICAgICAgICBmb28oKmJ1aWxkZXIu
dG9TdHJpbmcoKSk7IC8vIFVCIHdoZW4gYWxsb2NhdGlvbiBmYWlscy4KKworICAgICAgICAqIHd0
Zi9Bc3NlcnRpb25zLmNwcDoKKyAgICAgICAgKiB3dGYvRGF0ZU1hdGguY3BwOgorICAgICAgICAo
V1RGOjptYWtlUkZDMjgyMkRhdGVTdHJpbmcpOgorICAgICAgICAqIHd0Zi9KU09OVmFsdWVzLmNw
cDoKKyAgICAgICAgKFdURjo6SlNPTkltcGw6OlZhbHVlOjp0b0pTT05TdHJpbmcgY29uc3QpOgor
ICAgICAgICAqIHd0Zi9Mb2dnZXIuaDoKKyAgICAgICAgKFdURjo6TG9nQXJndW1lbnQ6OnRvU3Ry
aW5nKToKKyAgICAgICAgKFdURjo6TG9nQXJndW1lbnQ8TG9nZ2VyOjpMb2dTaXRlSWRlbnRpZmll
cj46OnRvU3RyaW5nKToKKyAgICAgICAgKiB3dGYvTWVkaWFUaW1lLmNwcDoKKyAgICAgICAgKFdU
Rjo6TWVkaWFUaW1lOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgICogd3RmL1VVSUQuY3BwOgor
ICAgICAgICAoV1RGOjpjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKToKKyAgICAgICAgKiB3dGYv
dGV4dC9TdHJpbmdCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6d291
bGRPdmVyZmxvdyk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6Om91dE9mTWVtb3J5KToK
KyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6cmVzaXplKToKKyAgICAgICAgKFdURjo6U3Ry
aW5nQnVpbGRlcjo6YWxsb2NhdGVCdWZmZXIpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVy
OjphbGxvY2F0ZUJ1ZmZlclVwQ29udmVydCk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6
OnJlYWxsb2NhdGVCdWZmZXI8TENoYXI+KToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6
cmVhbGxvY2F0ZUJ1ZmZlcjxVQ2hhcj4pOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpy
ZXNlcnZlQ2FwYWNpdHkpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjphcHBlbmQpOgor
ICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIpOgorICAgICAgICAoV1RG
OjpTdHJpbmdCdWlsZGVyOjphcHBlbmRFQ01BU2NyaXB0TnVtYmVyKToKKyAgICAgICAgKFdURjo6
U3RyaW5nQnVpbGRlcjo6YXBwZW5kRml4ZWRXaWR0aE51bWJlcik6CisgICAgICAgIChXVEY6OlN0
cmluZ0J1aWxkZXI6OnNocmlua1RvRml0KToKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmg6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OlN0cmluZ0J1aWxkZXIpOgorICAg
ICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjphcHBlbmQpOgorICAgICAgICAoV1RGOjpTdHJpbmdC
dWlsZGVyOjphcHBlbmRMaXRlcmFsKToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6dG9T
dHJpbmcpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjp0b1N0cmluZ1ByZXNlcnZlQ2Fw
YWNpdHkgY29uc3QpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjp0b0F0b21pY1N0cmlu
ZyBjb25zdCk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OmlzOEJpdCBjb25zdCk6Cisg
ICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OmZhaWxlZCBjb25zdCk6CisgICAgICAgIChXVEY6
OlN0cmluZ0J1aWxkZXI6Om9wZXJhdG9yW10gY29uc3QpOgorICAgICAgICAoV1RGOjpTdHJpbmdC
dWlsZGVyOjogY29uc3QpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpjbGVhcik6Cisg
ICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OnN3YXApOgorICAgICAgICAoV1RGOjplcXVhbCk6
CisgICAgICAgIChXVEY6OkludGVnZXJUb1N0cmluZ0NvbnZlcnNpb25UcmFpdDxTdHJpbmdCdWls
ZGVyPjo6Zmx1c2gpOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXJKU09OLmNwcDoK
KyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6YXBwZW5kUXVvdGVkSlNPTlN0cmluZyk6Cisg
ICAgICAgICogd3RmL3RleHQvU3RyaW5nSW1wbC5jcHA6CisgICAgICAgIChXVEY6OlN0cmluZ0lt
cGw6OnJlYWxsb2NhdGVJbnRlcm5hbCk6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OnJlYWxs
b2NhdGUpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjp0cnlSZWFsbG9jYXRlKToKKyAgICAg
ICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmg6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OnRy
eUNyZWF0ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6
Y3JlYXRlU3Vic3RyaW5nU2hhcmluZ0ltcGwpOgorICAgICAgICAqIHd0Zi90ZXh0L1RleHRTdHJl
YW0uY3BwOgorICAgICAgICAoV1RGOjpUZXh0U3RyZWFtOjpyZWxlYXNlKToKKwogMjAxOC0wNC0z
MCAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIHNvbWUg
QysrMTcgZmVhdHVyZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3Bw
IGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKaW5kZXggZTE1YTA5Mi4uZDdjODMxOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKKysrIGIvU291cmNlL1dU
Ri93dGYvQXNzZXJ0aW9ucy5jcHAKQEAgLTM0Miw5ICszNDIsMTEgQEAgdm9pZCBXVEZMb2dnaW5n
QWNjdW11bGF0b3I6OnJlc2V0QWNjdW11bGF0ZWRMb2dzKCkKIFN0cmluZyBXVEZMb2dnaW5nQWNj
dW11bGF0b3I6OmdldEFuZFJlc2V0QWNjdW11bGF0ZWRMb2dzKCkKIHsKICAgICBMb2NrZXI8TG9j
az4gbG9ja2VyKGFjY3VtdWxhdG9yTG9jayk7Ci0gICAgU3RyaW5nIHJlc3VsdCA9IGxvZ2dpbmdB
Y2N1bXVsYXRvci50b1N0cmluZygpOwotICAgIGxvZ2dpbmdBY2N1bXVsYXRvci5jbGVhcigpOwot
ICAgIHJldHVybiByZXN1bHQ7CisgICAgaWYgKGF1dG8gcmVzdWx0ID0gbG9nZ2luZ0FjY3VtdWxh
dG9yLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgbG9nZ2luZ0FjY3VtdWxhdG9yLmNsZWFyKCk7Cisg
ICAgICAgIHJldHVybiAqcmVzdWx0OworICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMg
V1RGTG9nZ2luZ0FjY3VtdWxhdG9yJiBsb2dnaW5nQWNjdW11bGF0b3IoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3Bw
CmluZGV4IDZkYjkyZWIuLmE4NDI1ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVN
YXRoLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5jcHAKQEAgLTExODcsNyArMTE4
Nyw5IEBAIFN0cmluZyBtYWtlUkZDMjgyMkRhdGVTdHJpbmcodW5zaWduZWQgZGF5T2ZXZWVrLCB1
bnNpZ25lZCBkYXksIHVuc2lnbmVkIG1vbnRoLCB1CiAgICAgYXBwZW5kVHdvRGlnaXROdW1iZXIo
c3RyaW5nQnVpbGRlciwgYWJzb2x1dGVVVENPZmZzZXQgLyA2MCk7CiAgICAgYXBwZW5kVHdvRGln
aXROdW1iZXIoc3RyaW5nQnVpbGRlciwgYWJzb2x1dGVVVENPZmZzZXQgJSA2MCk7CiAKLSAgICBy
ZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9KU09OVmFsdWVzLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuY3BwCmluZGV4IGJk
ZTQ0YWIuLjA4YzYyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuY3BwCkBAIC0zMjcsOCArMzI3LDExIEBA
IGJvb2wgZGVjb2RlU3RyaW5nKGNvbnN0IFVDaGFyKiBzdGFydCwgY29uc3QgVUNoYXIqIGVuZCwg
U3RyaW5nJiBvdXRwdXQpCiAgICAgaWYgKCFkZWNvZGVTdHJpbmcoc3RhcnQsIGVuZCwgYnVmZmVy
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgb3V0cHV0ID0gYnVmZmVyLnRvU3RyaW5n
KCk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVmZmVyLnRvU3Ry
aW5nKCkpIHsKKyAgICAgICAgb3V0cHV0ID0gKnN0cmluZzsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKIH0KIAogUmVmUHRyPEpTT046OlZhbHVlPiBidWls
ZFZhbHVlKGNvbnN0IFVDaGFyKiBzdGFydCwgY29uc3QgVUNoYXIqIGVuZCwgY29uc3QgVUNoYXIq
KiB2YWx1ZVRva2VuRW5kLCBpbnQgZGVwdGgpCkBAIC01NTMsNyArNTU2LDkgQEAgU3RyaW5nIFZh
bHVlOjp0b0pTT05TdHJpbmcoKSBjb25zdAogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogICAg
IHJlc3VsdC5yZXNlcnZlQ2FwYWNpdHkoNTEyKTsKICAgICB3cml0ZUpTT04ocmVzdWx0KTsKLSAg
ICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IGJvb2wgVmFsdWU6OmFzQm9vbGVhbihib29sJiBvdXRwdXQpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaCBiL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCmluZGV4IDZi
MDFiNTguLjQ4YjhkODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCkBAIC00Niw3ICs0NiwxMiBAQCBzdHJ1Y3QgTG9nQXJn
dW1lbnQgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFUgPSBUPiBzdGF0aWMgdHlwZW5hbWUgc3Rk
OjplbmFibGVfaWY8c3RkOjppc19zYW1lPFUsIGRvdWJsZT46OnZhbHVlLCBTdHJpbmc+Ojp0eXBl
IHRvU3RyaW5nKGRvdWJsZSBhcmd1bWVudCkgeyByZXR1cm4gU3RyaW5nOjpudW1iZXIoYXJndW1l
bnQpOyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVSA9IFQ+IHN0YXRpYyB0eXBlbmFtZSBzdGQ6
OmVuYWJsZV9pZjxzdGQ6OmlzX3NhbWU8dHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPFU+
Ojp0eXBlLCBBdG9taWNTdHJpbmc+Ojp2YWx1ZSwgU3RyaW5nPjo6dHlwZSB0b1N0cmluZyhBdG9t
aWNTdHJpbmcgYXJndW1lbnQpIHsgcmV0dXJuIGFyZ3VtZW50LnN0cmluZygpOyB9CiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVSA9IFQ+IHN0YXRpYyB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxzdGQ6
OmlzX3NhbWU8dHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPFU+Ojp0eXBlLCBTdHJpbmc+
Ojp2YWx1ZSwgU3RyaW5nPjo6dHlwZSB0b1N0cmluZyhTdHJpbmcgYXJndW1lbnQpIHsgcmV0dXJu
IGFyZ3VtZW50OyB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVSA9IFQ+IHN0YXRpYyB0eXBlbmFt
ZSBzdGQ6OmVuYWJsZV9pZjxzdGQ6OmlzX3NhbWU8dHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJl
bmNlPFU+Ojp0eXBlLCBTdHJpbmdCdWlsZGVyKj46OnZhbHVlLCBTdHJpbmc+Ojp0eXBlIHRvU3Ry
aW5nKFN0cmluZ0J1aWxkZXIqIGFyZ3VtZW50KSB7IHJldHVybiBhcmd1bWVudC0+dG9TdHJpbmco
KTsgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFUgPSBUPiBzdGF0aWMgdHlwZW5hbWUgc3RkOjpl
bmFibGVfaWY8c3RkOjppc19zYW1lPHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxVPjo6
dHlwZSwgU3RyaW5nQnVpbGRlcio+Ojp2YWx1ZSwgU3RyaW5nPjo6dHlwZSB0b1N0cmluZyhTdHJp
bmdCdWlsZGVyKiBhcmd1bWVudCkKKyAgICB7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGFy
Z3VtZW50LT50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAg
IENSQVNIKCk7CisgICAgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFUgPSBUPiBzdGF0aWMgdHlw
ZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19zYW1lPFUsIGNvbnN0IGNoYXIqPjo6dmFsdWUs
IFN0cmluZz46OnR5cGUgdG9TdHJpbmcoY29uc3QgY2hhciogYXJndW1lbnQpIHsgcmV0dXJuIFN0
cmluZyhhcmd1bWVudCk7IH0KICAgICB0ZW1wbGF0ZTxzaXplX3QgbGVuZ3RoPiBzdGF0aWMgU3Ry
aW5nIHRvU3RyaW5nKGNvbnN0IGNoYXIgKCZhcmd1bWVudClbbGVuZ3RoXSkgeyByZXR1cm4gU3Ry
aW5nKGFyZ3VtZW50KTsgfQogfTsKQEAgLTI3NCw3ICsyNzksOSBAQCBzdHJ1Y3QgTG9nQXJndW1l
bnQ8TG9nZ2VyOjpMb2dTaXRlSWRlbnRpZmllcj4gewogICAgICAgICBidWlsZGVyLmFwcGVuZCgn
KCcpOwogICAgICAgICBhcHBlbmRVbnNpZ25lZDY0QXNIZXgodmFsdWUub2JqZWN0UHRyLCBidWls
ZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpICIpOwotICAgICAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0go
KTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZWRpYVRpbWUuY3Bw
IGIvU291cmNlL1dURi93dGYvTWVkaWFUaW1lLmNwcAppbmRleCAwMzA1MGI1Li4xZjc3YjQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NZWRpYVRpbWUuY3BwCisrKyBiL1NvdXJjZS9XVEYv
d3RmL01lZGlhVGltZS5jcHAKQEAgLTU3NCw3ICs1NzQsOSBAQCBTdHJpbmcgTWVkaWFUaW1lOjp0
b1N0cmluZygpIGNvbnN0CiAgICAgfQogICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRvRG91Ymxl
KCkpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCd9Jyk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBNZWRpYVRpbWU6OnRv
SlNPTlN0cmluZygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9VVUlELmNwcCBi
L1NvdXJjZS9XVEYvd3RmL1VVSUQuY3BwCmluZGV4IGZiNWZlNWIuLmI1OThmMDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1VVSUQuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1VVSUQuY3Bw
CkBAIC01Niw3ICs1Niw5IEBAIFN0cmluZyBjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkKICAg
ICBidWlsZGVyLmFwcGVuZCgnLScpOwogICAgIGFwcGVuZFVuc2lnbmVkQXNIZXhGaXhlZFNpemUo
cmFuZG9tRGF0YVsyXSAmIDB4MDAwMGZmZmYsIGJ1aWxkZXIsIDQsIExvd2VyY2FzZSk7CiAgICAg
YXBwZW5kVW5zaWduZWRBc0hleEZpeGVkU2l6ZShyYW5kb21EYXRhWzNdLCBidWlsZGVyLCA4LCBM
b3dlcmNhc2UpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuY3BwCmluZGV4IDg1YjBjMjEuLjI1ODRjNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9T
dHJpbmdCdWlsZGVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTAsIDIwMTMsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEwLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CkBAIC02MiwyNiArNjIsNDQgQEAgdm9pZCBTdHJpbmdCdWlsZGVyOjpyZWlmeVN0
cmluZygpIGNvbnN0CiAgICAgICAgIG1fc3RyaW5nID0gU3RyaW5nSW1wbDo6Y3JlYXRlU3Vic3Ry
aW5nU2hhcmluZ0ltcGwoKm1fYnVmZmVyLCAwLCBtX2xlbmd0aCk7CiB9CiAKLXZvaWQgU3RyaW5n
QnVpbGRlcjo6cmVzaXplKHVuc2lnbmVkIG5ld1NpemUpCitVbmV4cGVjdGVkPFN0cmluZ0J1aWxk
ZXI6OkZhaWx1cmU+IFN0cmluZ0J1aWxkZXI6OndvdWxkT3ZlcmZsb3coKQoreworICAgIG1fZmFp
bGVkID0gdHJ1ZTsKKyAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmFpbHVyZTo6V291bGRPdmVy
Zmxvdyk7Cit9CisKK1VuZXhwZWN0ZWQ8U3RyaW5nQnVpbGRlcjo6RmFpbHVyZT4gU3RyaW5nQnVp
bGRlcjo6b3V0T2ZNZW1vcnkoKQoreworICAgIGNsZWFyKCk7CisgICAgbV9mYWlsZWQgPSB0cnVl
OworICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGYWlsdXJlOjpPdXRPZk1lbW9yeSk7Cit9CisK
K1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6cmVzaXplKHVuc2lnbmVk
IG5ld1NpemUpCiB7CiAgICAgLy8gQ2hlY2sgbmV3U2l6ZSA8IG1fbGVuZ3RoLCBoZW5jZSBtX2xl
bmd0aCA+IDAuCiAgICAgQVNTRVJUKG5ld1NpemUgPD0gbV9sZW5ndGgpOwogICAgIGlmIChuZXdT
aXplID09IG1fbGVuZ3RoKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB7IH07CiAg
ICAgQVNTRVJUKG1fbGVuZ3RoKTsKIAogICAgIC8vIElmIHRoZXJlIGlzIGEgYnVmZmVyLCB3ZSBv
bmx5IG5lZWQgdG8gZHVwbGljYXRlIGl0IGlmIGl0IGhhcyBtb3JlIHRoYW4gb25lIHJlZi4KICAg
ICBpZiAobV9idWZmZXIpIHsKICAgICAgICAgbV9zdHJpbmcgPSBTdHJpbmcoKTsgLy8gQ2xlYXIg
dGhlIHN0cmluZyB0byByZW1vdmUgdGhlIHJlZmVyZW5jZSB0byBtX2J1ZmZlciBpZiBhbnkgYmVm
b3JlIGNoZWNraW5nIHRoZSByZWZlcmVuY2UgY291bnQgb2YgbV9idWZmZXIuCiAgICAgICAgIGlm
ICghbV9idWZmZXItPmhhc09uZVJlZigpKSB7Ci0gICAgICAgICAgICBpZiAobV9idWZmZXItPmlz
OEJpdCgpKQotICAgICAgICAgICAgICAgIGFsbG9jYXRlQnVmZmVyKG1fYnVmZmVyLT5jaGFyYWN0
ZXJzOCgpLCBtX2J1ZmZlci0+bGVuZ3RoKCkpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgICAgIGFsbG9jYXRlQnVmZmVyKG1fYnVmZmVyLT5jaGFyYWN0ZXJzMTYoKSwgbV9idWZmZXIt
Pmxlbmd0aCgpKTsKKyAgICAgICAgICAgIGlmIChtX2J1ZmZlci0+aXM4Qml0KCkpIHsKKyAgICAg
ICAgICAgICAgICBhdXRvIGFsbG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVyKG1fYnVmZmVyLT5jaGFy
YWN0ZXJzOCgpLCBtX2J1ZmZlci0+bGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIGlmICghYWxs
b2NhdGVkKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWxsb2NhdGVkOworICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBhdXRvIGFsbG9jYXRlZCA9IGFsbG9jYXRlQnVm
ZmVyKG1fYnVmZmVyLT5jaGFyYWN0ZXJzMTYoKSwgbV9idWZmZXItPmxlbmd0aCgpKTsKKyAgICAg
ICAgICAgICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFs
bG9jYXRlZDsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBtX2xlbmd0aCA9IG5l
d1NpemU7CiAgICAgICAgIEFTU0VSVChtX2J1ZmZlci0+bGVuZ3RoKCkgPj0gbV9sZW5ndGgpOwot
ICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCiAgICAgLy8gU2lu
Y2UgbV9sZW5ndGggJiYgIW1fYnVmZmVyLCB0aGUgc3RyaW5nIG11c3QgYmUgdmFsaWQgaW4gbV9z
dHJpbmcsIGFuZCBtX3N0cmluZy5sZW5ndGgoKSA+IDAuCkBAIC04OSw0NyArMTA3LDYwIEBAIHZv
aWQgU3RyaW5nQnVpbGRlcjo6cmVzaXplKHVuc2lnbmVkIG5ld1NpemUpCiAgICAgQVNTRVJUKG1f
bGVuZ3RoID09IG1fc3RyaW5nLmxlbmd0aCgpKTsKICAgICBBU1NFUlQobmV3U2l6ZSA8IG1fc3Ry
aW5nLmxlbmd0aCgpKTsKICAgICBtX2xlbmd0aCA9IG5ld1NpemU7Ci0gICAgbV9zdHJpbmcgPSBT
dHJpbmdJbXBsOjpjcmVhdGVTdWJzdHJpbmdTaGFyaW5nSW1wbCgqbV9zdHJpbmcuaW1wbCgpLCAw
LCBuZXdTaXplKTsKKyAgICBpZiAoYXV0byBjcmVhdGVkID0gU3RyaW5nSW1wbDo6dHJ5Q3JlYXRl
U3Vic3RyaW5nU2hhcmluZ0ltcGwoKm1fc3RyaW5nLmltcGwoKSwgMCwgbmV3U2l6ZSkpIHsKKyAg
ICAgICAgbV9zdHJpbmcgPSAqY3JlYXRlZDsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9IGVs
c2UKKyAgICAgICAgcmV0dXJuIG91dE9mTWVtb3J5KCk7CiB9CiAKIC8vIEFsbG9jYXRlIGEgbmV3
IDggYml0IGJ1ZmZlciwgY29weWluZyBpbiBjdXJyZW50Q2hhcmFjdGVycyAodGhlc2UgbWF5IGNv
bWUgZnJvbSBlaXRoZXIgbV9zdHJpbmcKIC8vIG9yIG1fYnVmZmVyLCBuZWl0aGVyIHdpbGwgYmUg
cmVhc3NpZ25lZCB1bnRpbCB0aGUgY29weSBoYXMgY29tcGxldGVkKS4KLXZvaWQgU3RyaW5nQnVp
bGRlcjo6YWxsb2NhdGVCdWZmZXIoY29uc3QgTENoYXIqIGN1cnJlbnRDaGFyYWN0ZXJzLCB1bnNp
Z25lZCByZXF1aXJlZExlbmd0aCkKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVp
bGRlcjo6YWxsb2NhdGVCdWZmZXIoY29uc3QgTENoYXIqIGN1cnJlbnRDaGFyYWN0ZXJzLCB1bnNp
Z25lZCByZXF1aXJlZExlbmd0aCkKIHsKICAgICBBU1NFUlQobV9pczhCaXQpOwogICAgIC8vIENv
cHkgdGhlIGV4aXN0aW5nIGRhdGEgaW50byBhIG5ldyBidWZmZXIsIHNldCByZXN1bHQgdG8gcG9p
bnQgdG8gdGhlIGVuZCBvZiB0aGUgZXhpc3RpbmcgZGF0YS4KLSAgICBhdXRvIGJ1ZmZlciA9IFN0
cmluZ0ltcGw6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQocmVxdWlyZWRMZW5ndGgsIG1fYnVmZmVyQ2hh
cmFjdGVyczgpOworICAgIGF1dG8gYnVmZmVyID0gU3RyaW5nSW1wbDo6dHJ5Q3JlYXRlVW5pbml0
aWFsaXplZChyZXF1aXJlZExlbmd0aCwgbV9idWZmZXJDaGFyYWN0ZXJzOCk7CisgICAgaWYgKCFi
dWZmZXIpCisgICAgICAgIHJldHVybiBvdXRPZk1lbW9yeSgpOwogICAgIG1lbWNweShtX2J1ZmZl
ckNoYXJhY3RlcnM4LCBjdXJyZW50Q2hhcmFjdGVycywgc3RhdGljX2Nhc3Q8c2l6ZV90PihtX2xl
bmd0aCkgKiBzaXplb2YoTENoYXIpKTsgLy8gVGhpcyBjYW4ndCBvdmVyZmxvdy4KICAgICAKICAg
ICAvLyBVcGRhdGUgdGhlIGJ1aWxkZXIgc3RhdGUuCiAgICAgbV9idWZmZXIgPSBXVEZNb3ZlKGJ1
ZmZlcik7CiAgICAgbV9zdHJpbmcgPSBTdHJpbmcoKTsKICAgICBBU1NFUlQobV9idWZmZXItPmxl
bmd0aCgpID09IHJlcXVpcmVkTGVuZ3RoKTsKKyAgICByZXR1cm4geyB9OwogfQogCiAvLyBBbGxv
Y2F0ZSBhIG5ldyAxNiBiaXQgYnVmZmVyLCBjb3B5aW5nIGluIGN1cnJlbnRDaGFyYWN0ZXJzICh0
aGVzZSBtYXkgY29tZSBmcm9tIGVpdGhlciBtX3N0cmluZwogLy8gb3IgbV9idWZmZXIsICBuZWl0
aGVyIHdpbGwgYmUgcmVhc3NpZ25lZCB1bnRpbCB0aGUgY29weSBoYXMgY29tcGxldGVkKS4KLXZv
aWQgU3RyaW5nQnVpbGRlcjo6YWxsb2NhdGVCdWZmZXIoY29uc3QgVUNoYXIqIGN1cnJlbnRDaGFy
YWN0ZXJzLCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxl
PD4gU3RyaW5nQnVpbGRlcjo6YWxsb2NhdGVCdWZmZXIoY29uc3QgVUNoYXIqIGN1cnJlbnRDaGFy
YWN0ZXJzLCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKIHsKICAgICBBU1NFUlQoIW1faXM4Qml0
KTsKICAgICAvLyBDb3B5IHRoZSBleGlzdGluZyBkYXRhIGludG8gYSBuZXcgYnVmZmVyLCBzZXQg
cmVzdWx0IHRvIHBvaW50IHRvIHRoZSBlbmQgb2YgdGhlIGV4aXN0aW5nIGRhdGEuCi0gICAgYXV0
byBidWZmZXIgPSBTdHJpbmdJbXBsOjpjcmVhdGVVbmluaXRpYWxpemVkKHJlcXVpcmVkTGVuZ3Ro
LCBtX2J1ZmZlckNoYXJhY3RlcnMxNik7CisgICAgYXV0byBidWZmZXIgPSBTdHJpbmdJbXBsOjp0
cnlDcmVhdGVVbmluaXRpYWxpemVkKHJlcXVpcmVkTGVuZ3RoLCBtX2J1ZmZlckNoYXJhY3RlcnMx
Nik7CisgICAgaWYgKCFidWZmZXIpCisgICAgICAgIHJldHVybiBvdXRPZk1lbW9yeSgpOwogICAg
IG1lbWNweShtX2J1ZmZlckNoYXJhY3RlcnMxNiwgY3VycmVudENoYXJhY3RlcnMsIHN0YXRpY19j
YXN0PHNpemVfdD4obV9sZW5ndGgpICogc2l6ZW9mKFVDaGFyKSk7IC8vIFRoaXMgY2FuJ3Qgb3Zl
cmZsb3cuCiAgICAgCiAgICAgLy8gVXBkYXRlIHRoZSBidWlsZGVyIHN0YXRlLgogICAgIG1fYnVm
ZmVyID0gV1RGTW92ZShidWZmZXIpOwogICAgIG1fc3RyaW5nID0gU3RyaW5nKCk7CiAgICAgQVNT
RVJUKG1fYnVmZmVyLT5sZW5ndGgoKSA9PSByZXF1aXJlZExlbmd0aCk7CisgICAgcmV0dXJuIHsg
fTsKIH0KIAogLy8gQWxsb2NhdGUgYSBuZXcgMTYgYml0IGJ1ZmZlciwgY29weWluZyBpbiBjdXJy
ZW50Q2hhcmFjdGVycyAod2hpY2ggaXMgOCBiaXQgYW5kIG1heSBjb21lCiAvLyBmcm9tIGVpdGhl
ciBtX3N0cmluZyBvciBtX2J1ZmZlciwgbmVpdGhlciB3aWxsIGJlIHJlYXNzaWduZWQgdW50aWwg
dGhlIGNvcHkgaGFzIGNvbXBsZXRlZCkuCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFsbG9jYXRlQnVm
ZmVyVXBDb252ZXJ0KGNvbnN0IExDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVx
dWlyZWRMZW5ndGgpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFs
bG9jYXRlQnVmZmVyVXBDb252ZXJ0KGNvbnN0IExDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5z
aWduZWQgcmVxdWlyZWRMZW5ndGgpCiB7CiAgICAgQVNTRVJUKG1faXM4Qml0KTsKICAgICBBU1NF
UlQocmVxdWlyZWRMZW5ndGggPj0gbV9sZW5ndGgpOwogICAgIC8vIENvcHkgdGhlIGV4aXN0aW5n
IGRhdGEgaW50byBhIG5ldyBidWZmZXIsIHNldCByZXN1bHQgdG8gcG9pbnQgdG8gdGhlIGVuZCBv
ZiB0aGUgZXhpc3RpbmcgZGF0YS4KLSAgICBhdXRvIGJ1ZmZlciA9IFN0cmluZ0ltcGw6OmNyZWF0
ZVVuaW5pdGlhbGl6ZWQocmVxdWlyZWRMZW5ndGgsIG1fYnVmZmVyQ2hhcmFjdGVyczE2KTsKKyAg
ICBhdXRvIGJ1ZmZlciA9IFN0cmluZ0ltcGw6OnRyeUNyZWF0ZVVuaW5pdGlhbGl6ZWQocmVxdWly
ZWRMZW5ndGgsIG1fYnVmZmVyQ2hhcmFjdGVyczE2KTsKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAg
ICAgcmV0dXJuIG91dE9mTWVtb3J5KCk7CisKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
bV9sZW5ndGg7ICsraSkKICAgICAgICAgbV9idWZmZXJDaGFyYWN0ZXJzMTZbaV0gPSBjdXJyZW50
Q2hhcmFjdGVyc1tpXTsKICAgICAKQEAgLTEzOSwxMCArMTcwLDExIEBAIHZvaWQgU3RyaW5nQnVp
bGRlcjo6YWxsb2NhdGVCdWZmZXJVcENvbnZlcnQoY29uc3QgTENoYXIqIGN1cnJlbnRDaGFyYWN0
ZXJzLCB1bnNpCiAgICAgbV9idWZmZXIgPSBXVEZNb3ZlKGJ1ZmZlcik7CiAgICAgbV9zdHJpbmcg
PSBTdHJpbmcoKTsKICAgICBBU1NFUlQobV9idWZmZXItPmxlbmd0aCgpID09IHJlcXVpcmVkTGVu
Z3RoKTsKKyAgICByZXR1cm4geyB9OwogfQogCiB0ZW1wbGF0ZSA8Pgotdm9pZCBTdHJpbmdCdWls
ZGVyOjpyZWFsbG9jYXRlQnVmZmVyPExDaGFyPih1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKK1N0
cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6cmVhbGxvY2F0ZUJ1ZmZlcjxM
Q2hhcj4odW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCiB7CiAgICAgLy8gSWYgdGhlIGJ1ZmZlciBo
YXMgb25seSBvbmUgcmVmIChieSB0aGlzIFN0cmluZ0J1aWxkZXIpLCByZWFsbG9jYXRlIGl0LAog
ICAgIC8vIG90aGVyd2lzZSBmYWxsIGJhY2sgdG8gImFsbG9jYXRlIGFuZCBjb3B5IiBtZXRob2Qu
CkBAIC0xNTEsNjUgKzE4Myw4OSBAQCB2b2lkIFN0cmluZ0J1aWxkZXI6OnJlYWxsb2NhdGVCdWZm
ZXI8TENoYXI+KHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQogICAgIEFTU0VSVChtX2lzOEJpdCk7
CiAgICAgQVNTRVJUKG1fYnVmZmVyLT5pczhCaXQoKSk7CiAgICAgCi0gICAgaWYgKG1fYnVmZmVy
LT5oYXNPbmVSZWYoKSkKLSAgICAgICAgbV9idWZmZXIgPSBTdHJpbmdJbXBsOjpyZWFsbG9jYXRl
KG1fYnVmZmVyLnJlbGVhc2VOb25OdWxsKCksIHJlcXVpcmVkTGVuZ3RoLCBtX2J1ZmZlckNoYXJh
Y3RlcnM4KTsKLSAgICBlbHNlCi0gICAgICAgIGFsbG9jYXRlQnVmZmVyKG1fYnVmZmVyLT5jaGFy
YWN0ZXJzOCgpLCByZXF1aXJlZExlbmd0aCk7CisgICAgaWYgKG1fYnVmZmVyLT5oYXNPbmVSZWYo
KSkgeworICAgICAgICBhdXRvIHJlYWxsb2NhdGVkID0gU3RyaW5nSW1wbDo6dHJ5UmVhbGxvY2F0
ZShtX2J1ZmZlci5yZWxlYXNlTm9uTnVsbCgpLCByZXF1aXJlZExlbmd0aCwgbV9idWZmZXJDaGFy
YWN0ZXJzOCk7CisgICAgICAgIGlmICghcmVhbGxvY2F0ZWQpCisgICAgICAgICAgICByZXR1cm4g
b3V0T2ZNZW1vcnkoKTsKKyAgICAgICAgbV9idWZmZXIgPSByZWFsbG9jYXRlZC5nZXQoKTsKKyAg
ICB9IGVsc2UgeworICAgICAgICBhdXRvIGFsbG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVyKG1fYnVm
ZmVyLT5jaGFyYWN0ZXJzOCgpLCByZXF1aXJlZExlbmd0aCk7CisgICAgICAgIGlmICghYWxsb2Nh
dGVkKQorICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRlZDsKKyAgICB9CiAgICAgQVNTRVJUKG1f
YnVmZmVyLT5sZW5ndGgoKSA9PSByZXF1aXJlZExlbmd0aCk7CisgICAgcmV0dXJuIHsgfTsKIH0K
IAogdGVtcGxhdGUgPD4KLXZvaWQgU3RyaW5nQnVpbGRlcjo6cmVhbGxvY2F0ZUJ1ZmZlcjxVQ2hh
cj4odW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0
cmluZ0J1aWxkZXI6OnJlYWxsb2NhdGVCdWZmZXI8VUNoYXI+KHVuc2lnbmVkIHJlcXVpcmVkTGVu
Z3RoKQogewogICAgIC8vIElmIHRoZSBidWZmZXIgaGFzIG9ubHkgb25lIHJlZiAoYnkgdGhpcyBT
dHJpbmdCdWlsZGVyKSwgcmVhbGxvY2F0ZSBpdCwKICAgICAvLyBvdGhlcndpc2UgZmFsbCBiYWNr
IHRvICJhbGxvY2F0ZSBhbmQgY29weSIgbWV0aG9kLgogICAgIG1fc3RyaW5nID0gU3RyaW5nKCk7
CiAgICAgCi0gICAgaWYgKG1fYnVmZmVyLT5pczhCaXQoKSkKLSAgICAgICAgYWxsb2NhdGVCdWZm
ZXJVcENvbnZlcnQobV9idWZmZXItPmNoYXJhY3RlcnM4KCksIHJlcXVpcmVkTGVuZ3RoKTsKKyAg
ICBpZiAobV9idWZmZXItPmlzOEJpdCgpKSB7CisgICAgICAgIGF1dG8gYWxsb2NhdGVkID0gYWxs
b2NhdGVCdWZmZXJVcENvbnZlcnQobV9idWZmZXItPmNoYXJhY3RlcnM4KCksIHJlcXVpcmVkTGVu
Z3RoKTsKKyAgICAgICAgaWYgKCFhbGxvY2F0ZWQpCisgICAgICAgICAgICByZXR1cm4gYWxsb2Nh
dGVkOworICAgIH0KICAgICBlbHNlIGlmIChtX2J1ZmZlci0+aGFzT25lUmVmKCkpCiAgICAgICAg
IG1fYnVmZmVyID0gU3RyaW5nSW1wbDo6cmVhbGxvY2F0ZShtX2J1ZmZlci5yZWxlYXNlTm9uTnVs
bCgpLCByZXF1aXJlZExlbmd0aCwgbV9idWZmZXJDaGFyYWN0ZXJzMTYpOwogICAgIGVsc2UKICAg
ICAgICAgYWxsb2NhdGVCdWZmZXIobV9idWZmZXItPmNoYXJhY3RlcnMxNigpLCByZXF1aXJlZExl
bmd0aCk7CiAgICAgQVNTRVJUKG1fYnVmZmVyLT5sZW5ndGgoKSA9PSByZXF1aXJlZExlbmd0aCk7
CisgICAgcmV0dXJuIHsgfTsKIH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjpyZXNlcnZlQ2FwYWNp
dHkodW5zaWduZWQgbmV3Q2FwYWNpdHkpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmlu
Z0J1aWxkZXI6OnJlc2VydmVDYXBhY2l0eSh1bnNpZ25lZCBuZXdDYXBhY2l0eSkKIHsKICAgICBp
ZiAobV9idWZmZXIpIHsKICAgICAgICAgLy8gSWYgdGhlcmUgaXMgYWxyZWFkeSBhIGJ1ZmZlciwg
dGhlbiBncm93IGlmIG5lY2Vzc2FyeS4KICAgICAgICAgaWYgKG5ld0NhcGFjaXR5ID4gbV9idWZm
ZXItPmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICBpZiAobV9idWZmZXItPmlzOEJpdCgpKQotICAg
ICAgICAgICAgICAgIHJlYWxsb2NhdGVCdWZmZXI8TENoYXI+KG5ld0NhcGFjaXR5KTsKLSAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZWFsbG9jYXRlQnVmZmVyPFVDaGFyPihuZXdD
YXBhY2l0eSk7CisgICAgICAgICAgICBpZiAobV9idWZmZXItPmlzOEJpdCgpKSB7CisgICAgICAg
ICAgICAgICAgYXV0byByZWFsbG9jYXRlZCA9IHJlYWxsb2NhdGVCdWZmZXI8TENoYXI+KG5ld0Nh
cGFjaXR5KTsKKyAgICAgICAgICAgICAgICBpZiAoIXJlYWxsb2NhdGVkKQorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gcmVhbGxvY2F0ZWQ7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgIGF1dG8gcmVhbGxvY2F0ZWQgPSByZWFsbG9jYXRlQnVmZmVyPFVDaGFyPihuZXdD
YXBhY2l0eSk7CisgICAgICAgICAgICAgICAgaWYgKCFyZWFsbG9jYXRlZCkKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHJlYWxsb2NhdGVkOworICAgICAgICAgICAgfQogICAgICAgICB9CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgLy8gR3JvdyB0aGUgc3RyaW5nLCBpZiBuZWNlc3NhcnkuCiAg
ICAgICAgIGlmIChuZXdDYXBhY2l0eSA+IG1fbGVuZ3RoKSB7CiAgICAgICAgICAgICBpZiAoIW1f
bGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgTENoYXIqIG51bGxQbGFjZWhvbGRlciA9IDA7Ci0g
ICAgICAgICAgICAgICAgYWxsb2NhdGVCdWZmZXIobnVsbFBsYWNlaG9sZGVyLCBuZXdDYXBhY2l0
eSk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKG1fc3RyaW5nLmlzOEJpdCgpKQotICAgICAgICAg
ICAgICAgIGFsbG9jYXRlQnVmZmVyKG1fc3RyaW5nLmNoYXJhY3RlcnM4KCksIG5ld0NhcGFjaXR5
KTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBhbGxvY2F0ZUJ1ZmZlcihtX3N0
cmluZy5jaGFyYWN0ZXJzMTYoKSwgbmV3Q2FwYWNpdHkpOworICAgICAgICAgICAgICAgIGF1dG8g
YWxsb2NhdGVkID0gYWxsb2NhdGVCdWZmZXIobnVsbFBsYWNlaG9sZGVyLCBuZXdDYXBhY2l0eSk7
CisgICAgICAgICAgICAgICAgaWYgKCFhbGxvY2F0ZWQpCisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBhbGxvY2F0ZWQ7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG1fc3RyaW5nLmlzOEJpdCgp
KSB7CisgICAgICAgICAgICAgICAgYXV0byBhbGxvY2F0ZWQgPSBhbGxvY2F0ZUJ1ZmZlcihtX3N0
cmluZy5jaGFyYWN0ZXJzOCgpLCBuZXdDYXBhY2l0eSk7CisgICAgICAgICAgICAgICAgaWYgKCFh
bGxvY2F0ZWQpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBhbGxvY2F0ZWQ7CisgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGF1dG8gYWxsb2NhdGVkID0gYWxsb2NhdGVC
dWZmZXIobV9zdHJpbmcuY2hhcmFjdGVyczE2KCksIG5ld0NhcGFjaXR5KTsKKyAgICAgICAgICAg
ICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRl
ZDsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KICAgICBBU1NFUlQoIW5ld0NhcGFj
aXR5IHx8IG1fYnVmZmVyLT5sZW5ndGgoKSA+PSBuZXdDYXBhY2l0eSk7CisgICAgcmV0dXJuIHsg
fTsKIH0KIAogLy8gTWFrZSAnbGVuZ3RoJyBhZGRpdGlvbmFsIGNhcGFjaXR5IGJlIGF2YWlsYWJs
ZSBpbiBtX2J1ZmZlciwgdXBkYXRlIG1fc3RyaW5nICYgbV9sZW5ndGgsCiAvLyByZXR1cm4gYSBw
b2ludGVyIHRvIHRoZSBuZXdseSBhbGxvY2F0ZWQgc3RvcmFnZS4KIHRlbXBsYXRlIDx0eXBlbmFt
ZSBDaGFyVHlwZT4KLUFMV0FZU19JTkxJTkUgQ2hhclR5cGUqIFN0cmluZ0J1aWxkZXI6OmFwcGVu
ZFVuaW5pdGlhbGl6ZWQodW5zaWduZWQgbGVuZ3RoKQorQUxXQVlTX0lOTElORSBTdHJpbmdCdWls
ZGVyOjpGYWxsaWJsZTxDaGFyVHlwZSo+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZFVuaW5pdGlhbGl6
ZWQodW5zaWduZWQgbGVuZ3RoKQogewogICAgIEFTU0VSVChsZW5ndGgpOwogCiAgICAgLy8gQ2Fs
Y3VsYXRlIHRoZSBuZXcgc2l6ZSBvZiB0aGUgYnVpbGRlciBhZnRlciBhcHBlbmRpbmcuCiAgICAg
dW5zaWduZWQgcmVxdWlyZWRMZW5ndGggPSBsZW5ndGggKyBtX2xlbmd0aDsKICAgICBpZiAocmVx
dWlyZWRMZW5ndGggPCBsZW5ndGgpCi0gICAgICAgIENSQVNIKCk7CisgICAgICAgIHJldHVybiB3
b3VsZE92ZXJmbG93KCk7CiAKICAgICBpZiAoKG1fYnVmZmVyKSAmJiAocmVxdWlyZWRMZW5ndGgg
PD0gbV9idWZmZXItPmxlbmd0aCgpKSkgewogICAgICAgICAvLyBJZiB0aGUgYnVmZmVyIGlzIHZh
bGlkIGl0IG11c3QgYmUgYXQgbGVhc3QgYXMgbG9uZyBhcyB0aGUgY3VycmVudCBidWlsZGVyIGNv
bnRlbnRzIQpAQCAtMjI2LDcgKzI4Miw3IEBAIEFMV0FZU19JTkxJTkUgQ2hhclR5cGUqIFN0cmlu
Z0J1aWxkZXI6OmFwcGVuZFVuaW5pdGlhbGl6ZWQodW5zaWduZWQgbGVuZ3RoKQogLy8gTWFrZSAn
bGVuZ3RoJyBhZGRpdGlvbmFsIGNhcGFjaXR5IGJlIGF2YWlsYWJsZSBpbiBtX2J1ZmZlciwgdXBk
YXRlIG1fc3RyaW5nICYgbV9sZW5ndGgsCiAvLyByZXR1cm4gYSBwb2ludGVyIHRvIHRoZSBuZXds
eSBhbGxvY2F0ZWQgc3RvcmFnZS4KIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KLUNoYXJU
eXBlKiBTdHJpbmdCdWlsZGVyOjphcHBlbmRVbmluaXRpYWxpemVkU2xvdyh1bnNpZ25lZCByZXF1
aXJlZExlbmd0aCkKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPENoYXJUeXBlKj4gU3RyaW5nQnVp
bGRlcjo6YXBwZW5kVW5pbml0aWFsaXplZFNsb3codW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCiB7
CiAgICAgQVNTRVJUKHJlcXVpcmVkTGVuZ3RoKTsKIApAQCAtMjM0LDEwICsyOTAsMTQgQEAgQ2hh
clR5cGUqIFN0cmluZ0J1aWxkZXI6OmFwcGVuZFVuaW5pdGlhbGl6ZWRTbG93KHVuc2lnbmVkIHJl
cXVpcmVkTGVuZ3RoKQogICAgICAgICAvLyBJZiB0aGUgYnVmZmVyIGlzIHZhbGlkIGl0IG11c3Qg
YmUgYXQgbGVhc3QgYXMgbG9uZyBhcyB0aGUgY3VycmVudCBidWlsZGVyIGNvbnRlbnRzIQogICAg
ICAgICBBU1NFUlQobV9idWZmZXItPmxlbmd0aCgpID49IG1fbGVuZ3RoKTsKICAgICAgICAgCi0g
ICAgICAgIHJlYWxsb2NhdGVCdWZmZXI8Q2hhclR5cGU+KGV4cGFuZGVkQ2FwYWNpdHkoY2FwYWNp
dHkoKSwgcmVxdWlyZWRMZW5ndGgpKTsKKyAgICAgICAgYXV0byByZWFsbG9jYXRlZCA9IHJlYWxs
b2NhdGVCdWZmZXI8Q2hhclR5cGU+KGV4cGFuZGVkQ2FwYWNpdHkoY2FwYWNpdHkoKSwgcmVxdWly
ZWRMZW5ndGgpKTsKKyAgICAgICAgaWYgKCFyZWFsbG9jYXRlZCkKKyAgICAgICAgICAgIHJldHVy
biBtYWtlVW5leHBlY3RlZChyZWFsbG9jYXRlZC5lcnJvcigpKTsKICAgICB9IGVsc2UgewogICAg
ICAgICBBU1NFUlQobV9zdHJpbmcubGVuZ3RoKCkgPT0gbV9sZW5ndGgpOwotICAgICAgICBhbGxv
Y2F0ZUJ1ZmZlcihtX2xlbmd0aCA/IG1fc3RyaW5nLmNoYXJhY3RlcnM8Q2hhclR5cGU+KCkgOiAw
LCBleHBhbmRlZENhcGFjaXR5KGNhcGFjaXR5KCksIHJlcXVpcmVkTGVuZ3RoKSk7CisgICAgICAg
IGF1dG8gYWxsb2NhdGVkID0gYWxsb2NhdGVCdWZmZXIobV9sZW5ndGggPyBtX3N0cmluZy5jaGFy
YWN0ZXJzPENoYXJUeXBlPigpIDogMCwgZXhwYW5kZWRDYXBhY2l0eShjYXBhY2l0eSgpLCByZXF1
aXJlZExlbmd0aCkpOworICAgICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAgIHJldHVy
biBtYWtlVW5leHBlY3RlZChhbGxvY2F0ZWQuZXJyb3IoKSk7CiAgICAgfQogICAgIAogICAgIENo
YXJUeXBlKiByZXN1bHQgPSBnZXRCdWZmZXJDaGFyYWN0ZXJzPENoYXJUeXBlPigpICsgbV9sZW5n
dGg7CkBAIC0yNDYsMTAgKzMwNiwxMCBAQCBDaGFyVHlwZSogU3RyaW5nQnVpbGRlcjo6YXBwZW5k
VW5pbml0aWFsaXplZFNsb3codW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmQoY29uc3QgVUNoYXIqIGNoYXJh
Y3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5n
QnVpbGRlcjo6YXBwZW5kKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgp
CiB7CiAgICAgaWYgKCFsZW5ndGgpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHsg
fTsKIAogICAgIEFTU0VSVChjaGFyYWN0ZXJzKTsKIApAQCAtMjU3LDQwICszMTcsNTEgQEAgdm9p
ZCBTdHJpbmdCdWlsZGVyOjphcHBlbmQoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVk
IGxlbmd0aCkKICAgICAgICAgaWYgKGxlbmd0aCA9PSAxICYmICEoKmNoYXJhY3RlcnMgJiB+MHhm
ZikpIHsKICAgICAgICAgICAgIC8vIEFwcGVuZCBhcyA4IGJpdCBjaGFyYWN0ZXIKICAgICAgICAg
ICAgIExDaGFyIGxDaGFyID0gc3RhdGljX2Nhc3Q8TENoYXI+KCpjaGFyYWN0ZXJzKTsKLSAgICAg
ICAgICAgIGFwcGVuZCgmbENoYXIsIDEpOwotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgcmV0dXJuIGFwcGVuZCgmbENoYXIsIDEpOwogICAgICAgICB9CiAKICAgICAgICAgLy8gQ2Fs
Y3VsYXRlIHRoZSBuZXcgc2l6ZSBvZiB0aGUgYnVpbGRlciBhZnRlciBhcHBlbmRpbmcuCiAgICAg
ICAgIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoID0gbGVuZ3RoICsgbV9sZW5ndGg7CiAgICAgICAg
IGlmIChyZXF1aXJlZExlbmd0aCA8IGxlbmd0aCkKLSAgICAgICAgICAgIENSQVNIKCk7CisgICAg
ICAgICAgICByZXR1cm4gd291bGRPdmVyZmxvdygpOwogICAgICAgICAKICAgICAgICAgaWYgKG1f
YnVmZmVyKSB7CiAgICAgICAgICAgICAvLyBJZiB0aGUgYnVmZmVyIGlzIHZhbGlkIGl0IG11c3Qg
YmUgYXQgbGVhc3QgYXMgbG9uZyBhcyB0aGUgY3VycmVudCBidWlsZGVyIGNvbnRlbnRzIQogICAg
ICAgICAgICAgQVNTRVJUKG1fYnVmZmVyLT5sZW5ndGgoKSA+PSBtX2xlbmd0aCk7CiAgICAgICAg
ICAgICAKLSAgICAgICAgICAgIGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KG1fYnVmZmVyLT5jaGFy
YWN0ZXJzOCgpLCBleHBhbmRlZENhcGFjaXR5KGNhcGFjaXR5KCksIHJlcXVpcmVkTGVuZ3RoKSk7
CisgICAgICAgICAgICBhdXRvIGFsbG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KG1f
YnVmZmVyLT5jaGFyYWN0ZXJzOCgpLCBleHBhbmRlZENhcGFjaXR5KGNhcGFjaXR5KCksIHJlcXVp
cmVkTGVuZ3RoKSk7CisgICAgICAgICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gYWxsb2NhdGVkOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgQVNTRVJU
KG1fc3RyaW5nLmxlbmd0aCgpID09IG1fbGVuZ3RoKTsKLSAgICAgICAgICAgIGFsbG9jYXRlQnVm
ZmVyVXBDb252ZXJ0KG1fc3RyaW5nLmlzTnVsbCgpID8gMCA6IG1fc3RyaW5nLmNoYXJhY3RlcnM4
KCksIGV4cGFuZGVkQ2FwYWNpdHkoY2FwYWNpdHkoKSwgcmVxdWlyZWRMZW5ndGgpKTsKKyAgICAg
ICAgICAgIGF1dG8gYWxsb2NhdGVkID0gYWxsb2NhdGVCdWZmZXJVcENvbnZlcnQobV9zdHJpbmcu
aXNOdWxsKCkgPyAwIDogbV9zdHJpbmcuY2hhcmFjdGVyczgoKSwgZXhwYW5kZWRDYXBhY2l0eShj
YXBhY2l0eSgpLCByZXF1aXJlZExlbmd0aCkpOworICAgICAgICAgICAgaWYgKCFhbGxvY2F0ZWQp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRlZDsKICAgICAgICAgfQogCiAgICAgICAg
IG1lbWNweShtX2J1ZmZlckNoYXJhY3RlcnMxNiArIG1fbGVuZ3RoLCBjaGFyYWN0ZXJzLCBzdGF0
aWNfY2FzdDxzaXplX3Q+KGxlbmd0aCkgKiBzaXplb2YoVUNoYXIpKTsKICAgICAgICAgbV9sZW5n
dGggPSByZXF1aXJlZExlbmd0aDsKLSAgICB9IGVsc2UKLSAgICAgICAgbWVtY3B5KGFwcGVuZFVu
aW5pdGlhbGl6ZWQ8VUNoYXI+KGxlbmd0aCksIGNoYXJhY3RlcnMsIHN0YXRpY19jYXN0PHNpemVf
dD4obGVuZ3RoKSAqIHNpemVvZihVQ2hhcikpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChh
dXRvIGFwcGVuZGVkID0gYXBwZW5kVW5pbml0aWFsaXplZDxVQ2hhcj4obGVuZ3RoKSkKKyAgICAg
ICAgICAgIG1lbWNweSgqYXBwZW5kZWQsIGNoYXJhY3RlcnMsIHN0YXRpY19jYXN0PHNpemVfdD4o
bGVuZ3RoKSAqIHNpemVvZihVQ2hhcikpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1
cm4gbWFrZVVuZXhwZWN0ZWQoYXBwZW5kZWQuZXJyb3IoKSk7CisgICAgfQogICAgIEFTU0VSVCht
X2J1ZmZlci0+bGVuZ3RoKCkgPj0gbV9sZW5ndGgpOworICAgIHJldHVybiB7IH07CiB9CiAKLXZv
aWQgU3RyaW5nQnVpbGRlcjo6YXBwZW5kKGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25l
ZCBsZW5ndGgpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFwcGVu
ZChjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQogewogICAgIGlmICgh
bGVuZ3RoKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB7IH07CiAgICAgQVNTRVJU
KGNoYXJhY3RlcnMpOwogCiAgICAgaWYgKG1faXM4Qml0KSB7Ci0gICAgICAgIExDaGFyKiBkZXN0
ID0gYXBwZW5kVW5pbml0aWFsaXplZDxMQ2hhcj4obGVuZ3RoKTsKKyAgICAgICAgYXV0byBhcHBl
bmRlZCA9IGFwcGVuZFVuaW5pdGlhbGl6ZWQ8TENoYXI+KGxlbmd0aCk7CisgICAgICAgIGlmICgh
YXBwZW5kZWQpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoYXBwZW5kZWQuZXJy
b3IoKSk7CisgICAgICAgIExDaGFyKiBkZXN0ID0gKmFwcGVuZGVkOwogICAgICAgICBpZiAobGVu
Z3RoID4gOCkKICAgICAgICAgICAgIG1lbWNweShkZXN0LCBjaGFyYWN0ZXJzLCBzdGF0aWNfY2Fz
dDxzaXplX3Q+KGxlbmd0aCkgKiBzaXplb2YoTENoYXIpKTsKICAgICAgICAgZWxzZSB7CkBAIC0y
OTksNzMgKzM3MCw3OSBAQCB2b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVuZChjb25zdCBMQ2hhciog
Y2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQogICAgICAgICAgICAgICAgICooZGVzdCsrKSA9
ICooY2hhcmFjdGVycysrKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICAgIFVDaGFy
KiBkZXN0ID0gYXBwZW5kVW5pbml0aWFsaXplZDxVQ2hhcj4obGVuZ3RoKTsKKyAgICAgICAgYXV0
byBhcHBlbmRlZCA9IGFwcGVuZFVuaW5pdGlhbGl6ZWQ8VUNoYXI+KGxlbmd0aCk7CisgICAgICAg
IGlmICghYXBwZW5kZWQpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoYXBwZW5k
ZWQuZXJyb3IoKSk7CisgICAgICAgIFVDaGFyKiBkZXN0ID0gKmFwcGVuZGVkOwogICAgICAgICBj
b25zdCBMQ2hhciogZW5kID0gY2hhcmFjdGVycyArIGxlbmd0aDsKICAgICAgICAgd2hpbGUgKGNo
YXJhY3RlcnMgPCBlbmQpCiAgICAgICAgICAgICAqKGRlc3QrKykgPSAqKGNoYXJhY3RlcnMrKyk7
CiAgICAgfQorICAgIHJldHVybiB7IH07CiB9CiAKICNpZiBVU0UoQ0YpCiAKLXZvaWQgU3RyaW5n
QnVpbGRlcjo6YXBwZW5kKENGU3RyaW5nUmVmIHN0cmluZykKK1N0cmluZ0J1aWxkZXI6OkZhbGxp
YmxlPD4gU3RyaW5nQnVpbGRlcjo6YXBwZW5kKENGU3RyaW5nUmVmIHN0cmluZykKIHsKICAgICAv
LyBGYXN0IHBhdGg6IGF2b2lkIGNvbnN0cnVjdGluZyBhIHRlbXBvcmFyeSBTdHJpbmcgd2hlbiBw
b3NzaWJsZS4KICAgICBpZiAoYXV0byogY2hhcmFjdGVycyA9IENGU3RyaW5nR2V0Q1N0cmluZ1B0
cihzdHJpbmcsIGtDRlN0cmluZ0VuY29kaW5nSVNPTGF0aW4xKSkgewotICAgICAgICBhcHBlbmQo
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KGNoYXJhY3RlcnMpLCBDRlN0cmluZ0dldExl
bmd0aChzdHJpbmcpKTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoYXV0byBhcHBlbmRl
ZCA9IGFwcGVuZChyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oY2hhcmFjdGVycyksIENG
U3RyaW5nR2V0TGVuZ3RoKHN0cmluZykpKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGFwcGVuZGVkOwogICAgIH0KLSAgICBhcHBlbmQo
U3RyaW5nKHN0cmluZykpOworICAgIHJldHVybiBhcHBlbmQoU3RyaW5nKHN0cmluZykpOwogfQog
CiAjZW5kaWYKIAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIoaW50IG51bWJlcikK
K1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKGlu
dCBudW1iZXIpCiB7Ci0gICAgbnVtYmVyVG9TdHJpbmdTaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVt
YmVyLCB0aGlzKTsKKyAgICByZXR1cm4gbnVtYmVyVG9TdHJpbmdTaWduZWQ8U3RyaW5nQnVpbGRl
cj4obnVtYmVyLCB0aGlzKTsKIH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIo
dW5zaWduZWQgaW50IG51bWJlcikKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVp
bGRlcjo6YXBwZW5kTnVtYmVyKHVuc2lnbmVkIGludCBudW1iZXIpCiB7Ci0gICAgbnVtYmVyVG9T
dHJpbmdVbnNpZ25lZDxTdHJpbmdCdWlsZGVyPihudW1iZXIsIHRoaXMpOworICAgIHJldHVybiBu
dW1iZXJUb1N0cmluZ1Vuc2lnbmVkPFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CiB9CiAK
LXZvaWQgU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKGxvbmcgbnVtYmVyKQorU3RyaW5nQnVp
bGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIobG9uZyBudW1iZXIp
CiB7Ci0gICAgbnVtYmVyVG9TdHJpbmdTaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0aGlz
KTsKKyAgICByZXR1cm4gbnVtYmVyVG9TdHJpbmdTaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVy
LCB0aGlzKTsKIH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIodW5zaWduZWQg
bG9uZyBudW1iZXIpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFw
cGVuZE51bWJlcih1bnNpZ25lZCBsb25nIG51bWJlcikKIHsKLSAgICBudW1iZXJUb1N0cmluZ1Vu
c2lnbmVkPFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CisgICAgcmV0dXJuIG51bWJlclRv
U3RyaW5nVW5zaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0aGlzKTsKIH0KIAotdm9pZCBT
dHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIobG9uZyBsb25nIG51bWJlcikKK1N0cmluZ0J1aWxk
ZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKGxvbmcgbG9uZyBudW1i
ZXIpCiB7Ci0gICAgbnVtYmVyVG9TdHJpbmdTaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0
aGlzKTsKKyAgICByZXR1cm4gbnVtYmVyVG9TdHJpbmdTaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVt
YmVyLCB0aGlzKTsKIH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIodW5zaWdu
ZWQgbG9uZyBsb25nIG51bWJlcikKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVp
bGRlcjo6YXBwZW5kTnVtYmVyKHVuc2lnbmVkIGxvbmcgbG9uZyBudW1iZXIpCiB7Ci0gICAgbnVt
YmVyVG9TdHJpbmdVbnNpZ25lZDxTdHJpbmdCdWlsZGVyPihudW1iZXIsIHRoaXMpOworICAgIHJl
dHVybiBudW1iZXJUb1N0cmluZ1Vuc2lnbmVkPFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7
CiB9CiAKLXZvaWQgU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKGRvdWJsZSBudW1iZXIsIHVu
c2lnbmVkIHByZWNpc2lvbiwgVHJhaWxpbmdaZXJvc1RydW5jYXRpbmdQb2xpY3kgdHJhaWxpbmda
ZXJvc1RydW5jYXRpbmdQb2xpY3kpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1
aWxkZXI6OmFwcGVuZE51bWJlcihkb3VibGUgbnVtYmVyLCB1bnNpZ25lZCBwcmVjaXNpb24sIFRy
YWlsaW5nWmVyb3NUcnVuY2F0aW5nUG9saWN5IHRyYWlsaW5nWmVyb3NUcnVuY2F0aW5nUG9saWN5
KQogewogICAgIE51bWJlclRvU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKLSAgICBhcHBlbmQobnVtYmVy
VG9GaXhlZFByZWNpc2lvblN0cmluZyhudW1iZXIsIHByZWNpc2lvbiwgYnVmZmVyLCB0cmFpbGlu
Z1plcm9zVHJ1bmNhdGluZ1BvbGljeSA9PSBUcnVuY2F0ZVRyYWlsaW5nWmVyb3MpKTsKKyAgICBy
ZXR1cm4gYXBwZW5kKG51bWJlclRvRml4ZWRQcmVjaXNpb25TdHJpbmcobnVtYmVyLCBwcmVjaXNp
b24sIGJ1ZmZlciwgdHJhaWxpbmdaZXJvc1RydW5jYXRpbmdQb2xpY3kgPT0gVHJ1bmNhdGVUcmFp
bGluZ1plcm9zKSk7CiB9CiAKLXZvaWQgU3RyaW5nQnVpbGRlcjo6YXBwZW5kRUNNQVNjcmlwdE51
bWJlcihkb3VibGUgbnVtYmVyKQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWls
ZGVyOjphcHBlbmRFQ01BU2NyaXB0TnVtYmVyKGRvdWJsZSBudW1iZXIpCiB7CiAgICAgTnVtYmVy
VG9TdHJpbmdCdWZmZXIgYnVmZmVyOwotICAgIGFwcGVuZChudW1iZXJUb1N0cmluZyhudW1iZXIs
IGJ1ZmZlcikpOworICAgIHJldHVybiBhcHBlbmQobnVtYmVyVG9TdHJpbmcobnVtYmVyLCBidWZm
ZXIpKTsKIH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmRGaXhlZFdpZHRoTnVtYmVyKGRv
dWJsZSBudW1iZXIsIHVuc2lnbmVkIGRlY2ltYWxQbGFjZXMpCitTdHJpbmdCdWlsZGVyOjpGYWxs
aWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZEZpeGVkV2lkdGhOdW1iZXIoZG91YmxlIG51bWJl
ciwgdW5zaWduZWQgZGVjaW1hbFBsYWNlcykKIHsKICAgICBOdW1iZXJUb1N0cmluZ0J1ZmZlciBi
dWZmZXI7Ci0gICAgYXBwZW5kKG51bWJlclRvRml4ZWRXaWR0aFN0cmluZyhudW1iZXIsIGRlY2lt
YWxQbGFjZXMsIGJ1ZmZlcikpOworICAgIHJldHVybiBhcHBlbmQobnVtYmVyVG9GaXhlZFdpZHRo
U3RyaW5nKG51bWJlciwgZGVjaW1hbFBsYWNlcywgYnVmZmVyKSk7CiB9CiAKIGJvb2wgU3RyaW5n
QnVpbGRlcjo6Y2FuU2hyaW5rKCkgY29uc3QKQEAgLTM3NCwxNSArNDUxLDIxIEBAIGJvb2wgU3Ry
aW5nQnVpbGRlcjo6Y2FuU2hyaW5rKCkgY29uc3QKICAgICByZXR1cm4gbV9idWZmZXIgJiYgbV9i
dWZmZXItPmxlbmd0aCgpID4gKG1fbGVuZ3RoICsgKG1fbGVuZ3RoID4+IDIpKTsKIH0KIAotdm9p
ZCBTdHJpbmdCdWlsZGVyOjpzaHJpbmtUb0ZpdCgpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+
IFN0cmluZ0J1aWxkZXI6OnNocmlua1RvRml0KCkKIHsKICAgICBpZiAoY2FuU2hyaW5rKCkpIHsK
LSAgICAgICAgaWYgKG1faXM4Qml0KQotICAgICAgICAgICAgcmVhbGxvY2F0ZUJ1ZmZlcjxMQ2hh
cj4obV9sZW5ndGgpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZWFsbG9jYXRlQnVmZmVy
PFVDaGFyPihtX2xlbmd0aCk7CisgICAgICAgIGlmIChtX2lzOEJpdCkgeworICAgICAgICAgICAg
YXV0byByZWFsbG9jYXRlZCA9IHJlYWxsb2NhdGVCdWZmZXI8TENoYXI+KG1fbGVuZ3RoKTsKKyAg
ICAgICAgICAgIGlmICghcmVhbGxvY2F0ZWQpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlYWxs
b2NhdGVkOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYXV0byByZWFsbG9jYXRlZCA9
IHJlYWxsb2NhdGVCdWZmZXI8VUNoYXI+KG1fbGVuZ3RoKTsKKyAgICAgICAgICAgIGlmICghcmVh
bGxvY2F0ZWQpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlYWxsb2NhdGVkOworICAgICAgICB9
CiAgICAgICAgIG1fc3RyaW5nID0gV1RGTW92ZShtX2J1ZmZlcik7CiAgICAgfQorICAgIHJldHVy
biB7IH07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxk
ZXIuaAppbmRleCA4ZTRjNzIwLi4yYzBkZGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L1N0cmluZ0J1aWxkZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxk
ZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCwgMjAx
Mi0yMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dApAQCAtMjcsNiArMjcsNyBAQAogI2lmbmRlZiBTdHJpbmdCdWlsZGVyX2gKICNkZWZp
bmUgU3RyaW5nQnVpbGRlcl9oCiAKKyNpbmNsdWRlIDx3dGYvRXhwZWN0ZWQuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9JbnRlZ2VyVG9T
dHJpbmdDb252ZXJzaW9uLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgpAQCAt
NDAsMjggKzQxLDMzIEBAIGNsYXNzIFN0cmluZ0J1aWxkZXIgewogCiBwdWJsaWM6CiAgICAgU3Ry
aW5nQnVpbGRlcigpCi0gICAgICAgIDogbV9sZW5ndGgoMCkKLSAgICAgICAgLCBtX2lzOEJpdCh0
cnVlKQotICAgICAgICAsIG1fYnVmZmVyQ2hhcmFjdGVyczgobnVsbHB0cikKKyAgICAgICAgOiBt
X2J1ZmZlckNoYXJhY3RlcnM4KG51bGxwdHIpCiAgICAgewogICAgIH0KICAgICBTdHJpbmdCdWls
ZGVyKFN0cmluZ0J1aWxkZXImJikgPSBkZWZhdWx0OwogICAgIFN0cmluZ0J1aWxkZXImIG9wZXJh
dG9yPShTdHJpbmdCdWlsZGVyJiYpID0gZGVmYXVsdDsKIAotICAgIFdURl9FWFBPUlRfUFJJVkFU
RSB2b2lkIGFwcGVuZChjb25zdCBVQ2hhciosIHVuc2lnbmVkKTsKLSAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgdm9pZCBhcHBlbmQoY29uc3QgTENoYXIqLCB1bnNpZ25lZCk7CisgICAgZW51bSBjbGFz
cyBGYWlsdXJlIHsKKyAgICAgICAgV291bGRPdmVyZmxvdywKKyAgICAgICAgT3V0T2ZNZW1vcnks
CisgICAgICAgIFVuaGFuZGxlZEZhaWx1cmUsCisgICAgfTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBFeHBlY3QgPSB2b2lkPiB1c2luZyBGYWxsaWJsZSA9IEV4cGVjdGVkPEV4cGVjdCwgU3RyaW5n
QnVpbGRlcjo6RmFpbHVyZT47CisKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiBh
cHBlbmQoY29uc3QgVUNoYXIqLCB1bnNpZ25lZCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZh
bGxpYmxlPD4gYXBwZW5kKGNvbnN0IExDaGFyKiwgdW5zaWduZWQpOwogCi0gICAgQUxXQVlTX0lO
TElORSB2b2lkIGFwcGVuZChjb25zdCBjaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgp
IHsgYXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihjaGFyYWN0ZXJzKSwgbGVu
Z3RoKTsgfQorICAgIEFMV0FZU19JTkxJTkUgRmFsbGlibGU8PiBhcHBlbmQoY29uc3QgY2hhciog
Y2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKSB7IHJldHVybiBhcHBlbmQocmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBMQ2hhcio+KGNoYXJhY3RlcnMpLCBsZW5ndGgpOyB9CiAKLSAgICB2b2lkIGFw
cGVuZChjb25zdCBBdG9taWNTdHJpbmcmIGF0b21pY1N0cmluZykKKyAgICBGYWxsaWJsZTw+IGFw
cGVuZChjb25zdCBBdG9taWNTdHJpbmcmIGF0b21pY1N0cmluZykKICAgICB7Ci0gICAgICAgIGFw
cGVuZChhdG9taWNTdHJpbmcuc3RyaW5nKCkpOworICAgICAgICByZXR1cm4gYXBwZW5kKGF0b21p
Y1N0cmluZy5zdHJpbmcoKSk7CiAgICAgfQogCi0gICAgdm9pZCBhcHBlbmQoY29uc3QgU3RyaW5n
JiBzdHJpbmcpCisgICAgRmFsbGlibGU8PiBhcHBlbmQoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAg
ICAgewogICAgICAgICBpZiAoIXN0cmluZy5sZW5ndGgoKSkKLSAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIHJldHVybiB7IH07CiAKICAgICAgICAgLy8gSWYgd2UncmUgYXBwZW5kaW5n
IHRvIGFuIGVtcHR5IHN0cmluZywgYW5kIHRoZXJlIGlzIG5vdCBhIGJ1ZmZlciAocmVzZXJ2ZUNh
cGFjaXR5IGhhcyBub3QgYmVlbiBjYWxsZWQpCiAgICAgICAgIC8vIHRoZW4ganVzdCByZXRhaW4g
dGhlIHN0cmluZy4KQEAgLTY5LDE1MSArNzUsMTY0IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1f
c3RyaW5nID0gc3RyaW5nOwogICAgICAgICAgICAgbV9sZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7
CiAgICAgICAgICAgICBtX2lzOEJpdCA9IG1fc3RyaW5nLmlzOEJpdCgpOwotICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogCiAgICAgICAgIGlm
IChzdHJpbmcuaXM4Qml0KCkpCi0gICAgICAgICAgICBhcHBlbmQoc3RyaW5nLmNoYXJhY3RlcnM4
KCksIHN0cmluZy5sZW5ndGgoKSk7CisgICAgICAgICAgICByZXR1cm4gYXBwZW5kKHN0cmluZy5j
aGFyYWN0ZXJzOCgpLCBzdHJpbmcubGVuZ3RoKCkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBhcHBlbmQoc3RyaW5nLmNoYXJhY3RlcnMxNigpLCBzdHJpbmcubGVuZ3RoKCkpOworICAgICAg
ICAgICAgcmV0dXJuIGFwcGVuZChzdHJpbmcuY2hhcmFjdGVyczE2KCksIHN0cmluZy5sZW5ndGgo
KSk7CiAgICAgfQogCi0gICAgdm9pZCBhcHBlbmQoY29uc3QgU3RyaW5nQnVpbGRlciYgb3RoZXIp
CisgICAgRmFsbGlibGU8PiBhcHBlbmQoY29uc3QgU3RyaW5nQnVpbGRlciYgb3RoZXIpCiAgICAg
eworICAgICAgICBpZiAob3RoZXIuZmFpbGVkKCkpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVu
ZXhwZWN0ZWQoRmFpbHVyZTo6VW5oYW5kbGVkRmFpbHVyZSk7ICAgICAgICAgICAgCiAgICAgICAg
IGlmICghb3RoZXIubV9sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBy
ZXR1cm4geyB9OwogCiAgICAgICAgIC8vIElmIHdlJ3JlIGFwcGVuZGluZyB0byBhbiBlbXB0eSBz
dHJpbmcsIGFuZCB0aGVyZSBpcyBub3QgYSBidWZmZXIgKHJlc2VydmVDYXBhY2l0eSBoYXMgbm90
IGJlZW4gY2FsbGVkKQogICAgICAgICAvLyB0aGVuIGp1c3QgcmV0YWluIHRoZSBzdHJpbmcuCiAg
ICAgICAgIGlmICghbV9sZW5ndGggJiYgIW1fYnVmZmVyICYmICFvdGhlci5tX3N0cmluZy5pc051
bGwoKSkgewogICAgICAgICAgICAgbV9zdHJpbmcgPSBvdGhlci5tX3N0cmluZzsKICAgICAgICAg
ICAgIG1fbGVuZ3RoID0gb3RoZXIubV9sZW5ndGg7Ci0gICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAKICAgICAgICAgaWYgKG90aGVyLmlzOEJp
dCgpKQotICAgICAgICAgICAgYXBwZW5kKG90aGVyLmNoYXJhY3RlcnM4KCksIG90aGVyLm1fbGVu
Z3RoKTsKKyAgICAgICAgICAgIHJldHVybiBhcHBlbmQoKm90aGVyLmNoYXJhY3RlcnM4KCksIG90
aGVyLm1fbGVuZ3RoKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgYXBwZW5kKG90aGVyLmNo
YXJhY3RlcnMxNigpLCBvdGhlci5tX2xlbmd0aCk7CisgICAgICAgICAgICByZXR1cm4gYXBwZW5k
KCpvdGhlci5jaGFyYWN0ZXJzMTYoKSwgb3RoZXIubV9sZW5ndGgpOwogICAgIH0KIAotICAgIHZv
aWQgYXBwZW5kKFN0cmluZ1ZpZXcgc3RyaW5nVmlldykKKyAgICBGYWxsaWJsZTw+IGFwcGVuZChT
dHJpbmdWaWV3IHN0cmluZ1ZpZXcpCiAgICAgewogICAgICAgICBpZiAoc3RyaW5nVmlldy5pczhC
aXQoKSkKLSAgICAgICAgICAgIGFwcGVuZChzdHJpbmdWaWV3LmNoYXJhY3RlcnM4KCksIHN0cmlu
Z1ZpZXcubGVuZ3RoKCkpOworICAgICAgICAgICAgcmV0dXJuIGFwcGVuZChzdHJpbmdWaWV3LmNo
YXJhY3RlcnM4KCksIHN0cmluZ1ZpZXcubGVuZ3RoKCkpOwogICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBhcHBlbmQoc3RyaW5nVmlldy5jaGFyYWN0ZXJzMTYoKSwgc3RyaW5nVmlldy5sZW5ndGgo
KSk7CisgICAgICAgICAgICByZXR1cm4gYXBwZW5kKHN0cmluZ1ZpZXcuY2hhcmFjdGVyczE2KCks
IHN0cmluZ1ZpZXcubGVuZ3RoKCkpOwogICAgIH0KIAogI2lmIFVTRShDRikKLSAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgdm9pZCBhcHBlbmQoQ0ZTdHJpbmdSZWYpOworICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBGYWxsaWJsZTw+IGFwcGVuZChDRlN0cmluZ1JlZik7CiAjZW5kaWYKICNpZiBVU0UoQ0Yp
ICYmIGRlZmluZWQoX19PQkpDX18pCi0gICAgdm9pZCBhcHBlbmQoTlNTdHJpbmcgKnN0cmluZykg
eyBhcHBlbmQoKF9fYnJpZGdlIENGU3RyaW5nUmVmKXN0cmluZyk7IH0KKyAgICBGYWxsaWJsZTw+
IGFwcGVuZChOU1N0cmluZyAqc3RyaW5nKSB7IHJldHVybiBhcHBlbmQoKF9fYnJpZGdlIENGU3Ry
aW5nUmVmKXN0cmluZyk7IH0KICNlbmRpZgogICAgIAotICAgIHZvaWQgYXBwZW5kKGNvbnN0IFN0
cmluZyYgc3RyaW5nLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKKyAgICBGYWxs
aWJsZTw+IGFwcGVuZChjb25zdCBTdHJpbmcmIHN0cmluZywgdW5zaWduZWQgb2Zmc2V0LCB1bnNp
Z25lZCBsZW5ndGgpCiAgICAgewogICAgICAgICBpZiAoIXN0cmluZy5sZW5ndGgoKSkKLSAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHJldHVybiB7IH07CiAKICAgICAgICAgaWYgKChv
ZmZzZXQgKyBsZW5ndGgpID4gc3RyaW5nLmxlbmd0aCgpKQotICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgICAgICBpZiAoc3RyaW5nLmlzOEJpdCgpKQot
ICAgICAgICAgICAgYXBwZW5kKHN0cmluZy5jaGFyYWN0ZXJzOCgpICsgb2Zmc2V0LCBsZW5ndGgp
OworICAgICAgICAgICAgcmV0dXJuIGFwcGVuZChzdHJpbmcuY2hhcmFjdGVyczgoKSArIG9mZnNl
dCwgbGVuZ3RoKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgYXBwZW5kKHN0cmluZy5jaGFy
YWN0ZXJzMTYoKSArIG9mZnNldCwgbGVuZ3RoKTsKKyAgICAgICAgICAgIHJldHVybiBhcHBlbmQo
c3RyaW5nLmNoYXJhY3RlcnMxNigpICsgb2Zmc2V0LCBsZW5ndGgpOwogICAgIH0KIAotICAgIHZv
aWQgYXBwZW5kKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpCisgICAgRmFsbGlibGU8PiBhcHBlbmQo
Y29uc3QgY2hhciogY2hhcmFjdGVycykKICAgICB7CiAgICAgICAgIGlmIChjaGFyYWN0ZXJzKQot
ICAgICAgICAgICAgYXBwZW5kKGNoYXJhY3RlcnMsIHN0cmxlbihjaGFyYWN0ZXJzKSk7CisgICAg
ICAgICAgICByZXR1cm4gYXBwZW5kKGNoYXJhY3RlcnMsIHN0cmxlbihjaGFyYWN0ZXJzKSk7Cisg
ICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCi0gICAgdm9pZCBhcHBlbmQoVUNoYXIgYykKKyAg
ICBGYWxsaWJsZTw+IGFwcGVuZChVQ2hhciBjKQogICAgIHsKICAgICAgICAgaWYgKG1fYnVmZmVy
ICYmIG1fbGVuZ3RoIDwgbV9idWZmZXItPmxlbmd0aCgpICYmIG1fc3RyaW5nLmlzTnVsbCgpKSB7
CiAgICAgICAgICAgICBpZiAoIW1faXM4Qml0KSB7CiAgICAgICAgICAgICAgICAgbV9idWZmZXJD
aGFyYWN0ZXJzMTZbbV9sZW5ndGgrK10gPSBjOwotICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBp
ZiAoIShjICYgfjB4ZmYpKSB7CiAgICAgICAgICAgICAgICAgbV9idWZmZXJDaGFyYWN0ZXJzOFtt
X2xlbmd0aCsrXSA9IHN0YXRpY19jYXN0PExDaGFyPihjKTsKLSAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQotICAgICAgICBhcHBlbmQoJmMsIDEpOworICAgICAgICByZXR1cm4gYXBwZW5kKCZjLCAxKTsK
ICAgICB9CiAKLSAgICB2b2lkIGFwcGVuZChMQ2hhciBjKQorICAgIEZhbGxpYmxlPD4gYXBwZW5k
KExDaGFyIGMpCiAgICAgewogICAgICAgICBpZiAobV9idWZmZXIgJiYgbV9sZW5ndGggPCBtX2J1
ZmZlci0+bGVuZ3RoKCkgJiYgbV9zdHJpbmcuaXNOdWxsKCkpIHsKICAgICAgICAgICAgIGlmICht
X2lzOEJpdCkKICAgICAgICAgICAgICAgICBtX2J1ZmZlckNoYXJhY3RlcnM4W21fbGVuZ3RoKytd
ID0gYzsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBtX2J1ZmZlckNoYXJhY3Rl
cnMxNlttX2xlbmd0aCsrXSA9IGM7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgYXBwZW5k
KCZjLCAxKTsKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIGFwcGVuZCgmYywgMSk7CiAgICAgfQogCi0gICAgdm9pZCBhcHBlbmQoY2hhciBjKQorICAg
IEZhbGxpYmxlPD4gYXBwZW5kKGNoYXIgYykKICAgICB7Ci0gICAgICAgIGFwcGVuZChzdGF0aWNf
Y2FzdDxMQ2hhcj4oYykpOworICAgICAgICByZXR1cm4gYXBwZW5kKHN0YXRpY19jYXN0PExDaGFy
PihjKSk7CiAgICAgfQogCi0gICAgdm9pZCBhcHBlbmQoVUNoYXIzMiBjKQorICAgIEZhbGxpYmxl
PD4gYXBwZW5kKFVDaGFyMzIgYykKICAgICB7Ci0gICAgICAgIGlmIChVX0lTX0JNUChjKSkgewot
ICAgICAgICAgICAgYXBwZW5kKHN0YXRpY19jYXN0PFVDaGFyPihjKSk7Ci0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgYXBwZW5kKFUxNl9MRUFEKGMpKTsKLSAgICAgICAg
YXBwZW5kKFUxNl9UUkFJTChjKSk7CisgICAgICAgIGlmIChVX0lTX0JNUChjKSkKKyAgICAgICAg
ICAgIHJldHVybiBhcHBlbmQoc3RhdGljX2Nhc3Q8VUNoYXI+KGMpKTsKKyAgICAgICAgYXV0byBh
cHBlbmRlZCA9IGFwcGVuZChVMTZfTEVBRChjKSk7CisgICAgICAgIGlmICghYXBwZW5kZWQpCisg
ICAgICAgICAgICByZXR1cm4gYXBwZW5kZWQ7CisgICAgICAgIHJldHVybiBhcHBlbmQoVTE2X1RS
QUlMKGMpKTsKICAgICB9CiAKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBhcHBlbmRRdW90
ZWRKU09OU3RyaW5nKGNvbnN0IFN0cmluZyYpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxs
aWJsZTw+IGFwcGVuZFF1b3RlZEpTT05TdHJpbmcoY29uc3QgU3RyaW5nJik7CiAKICAgICB0ZW1w
bGF0ZTx1bnNpZ25lZCBjaGFyYWN0ZXJDb3VudD4KLSAgICBBTFdBWVNfSU5MSU5FIHZvaWQgYXBw
ZW5kTGl0ZXJhbChjb25zdCBjaGFyICgmY2hhcmFjdGVycylbY2hhcmFjdGVyQ291bnRdKSB7IGFw
cGVuZChjaGFyYWN0ZXJzLCBjaGFyYWN0ZXJDb3VudCAtIDEpOyB9Ci0KLSAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgdm9pZCBhcHBlbmROdW1iZXIoaW50KTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUg
dm9pZCBhcHBlbmROdW1iZXIodW5zaWduZWQgaW50KTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUg
dm9pZCBhcHBlbmROdW1iZXIobG9uZyk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBw
ZW5kTnVtYmVyKHVuc2lnbmVkIGxvbmcpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGFw
cGVuZE51bWJlcihsb25nIGxvbmcpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGFwcGVu
ZE51bWJlcih1bnNpZ25lZCBsb25nIGxvbmcpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lk
IGFwcGVuZE51bWJlcihkb3VibGUsIHVuc2lnbmVkIHByZWNpc2lvbiA9IDYsIFRyYWlsaW5nWmVy
b3NUcnVuY2F0aW5nUG9saWN5ID0gVHJ1bmNhdGVUcmFpbGluZ1plcm9zKTsKLSAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgdm9pZCBhcHBlbmRFQ01BU2NyaXB0TnVtYmVyKGRvdWJsZSk7Ci0gICAgV1RG
X0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kRml4ZWRXaWR0aE51bWJlcihkb3VibGUsIHVuc2ln
bmVkIGRlY2ltYWxQbGFjZXMpOwotCi0gICAgU3RyaW5nIHRvU3RyaW5nKCkKKyAgICBBTFdBWVNf
SU5MSU5FIEZhbGxpYmxlPD4gYXBwZW5kTGl0ZXJhbChjb25zdCBjaGFyICgmY2hhcmFjdGVycylb
Y2hhcmFjdGVyQ291bnRdKSB7IHJldHVybiBhcHBlbmQoY2hhcmFjdGVycywgY2hhcmFjdGVyQ291
bnQgLSAxKTsgfQorCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5kTnVt
YmVyKGludCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5kTnVtYmVy
KHVuc2lnbmVkIGludCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5k
TnVtYmVyKGxvbmcpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IGFwcGVuZE51
bWJlcih1bnNpZ25lZCBsb25nKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiBh
cHBlbmROdW1iZXIobG9uZyBsb25nKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8
PiBhcHBlbmROdW1iZXIodW5zaWduZWQgbG9uZyBsb25nKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZB
VEUgRmFsbGlibGU8PiBhcHBlbmROdW1iZXIoZG91YmxlLCB1bnNpZ25lZCBwcmVjaXNpb24gPSA2
LCBUcmFpbGluZ1plcm9zVHJ1bmNhdGluZ1BvbGljeSA9IFRydW5jYXRlVHJhaWxpbmdaZXJvcyk7
CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5kRUNNQVNjcmlwdE51bWJl
cihkb3VibGUpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IGFwcGVuZEZpeGVk
V2lkdGhOdW1iZXIoZG91YmxlLCB1bnNpZ25lZCBkZWNpbWFsUGxhY2VzKTsKKworICAgIFdBUk5f
VU5VU0VEX1JFVFVSTiBGYWxsaWJsZTxTdHJpbmc+IHRvU3RyaW5nKCkKICAgICB7Ci0gICAgICAg
IHNocmlua1RvRml0KCk7Ci0gICAgICAgIGlmIChtX3N0cmluZy5pc051bGwoKSkKLSAgICAgICAg
ICAgIHJlaWZ5U3RyaW5nKCk7Ci0gICAgICAgIHJldHVybiBtX3N0cmluZzsKKyAgICAgICAgaWYg
KG1fZmFpbGVkKQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZhaWx1cmU6OlVu
aGFuZGxlZEZhaWx1cmUpOworICAgICAgICBpZiAoYXV0byBzaHJhbmsgPSBzaHJpbmtUb0ZpdCgp
KSB7CisgICAgICAgICAgICBpZiAobV9zdHJpbmcuaXNOdWxsKCkpCisgICAgICAgICAgICAgICAg
cmVpZnlTdHJpbmcoKTsKKyAgICAgICAgICAgIHJldHVybiBtX3N0cmluZzsKKyAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoc2hyYW5rLmVycm9yKCkpOwog
ICAgIH0KIAotICAgIGNvbnN0IFN0cmluZyYgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgY29u
c3QKKyAgICBXQVJOX1VOVVNFRF9SRVRVUk4gRmFsbGlibGU8U3RyaW5nPiB0b1N0cmluZ1ByZXNl
cnZlQ2FwYWNpdHkoKSBjb25zdAogICAgIHsKKyAgICAgICAgaWYgKG1fZmFpbGVkKQorICAgICAg
ICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZhaWx1cmU6OlVuaGFuZGxlZEZhaWx1cmUpOwog
ICAgICAgICBpZiAobV9zdHJpbmcuaXNOdWxsKCkpCiAgICAgICAgICAgICByZWlmeVN0cmluZygp
OwogICAgICAgICByZXR1cm4gbV9zdHJpbmc7CiAgICAgfQogCi0gICAgQXRvbWljU3RyaW5nIHRv
QXRvbWljU3RyaW5nKCkgY29uc3QKKyAgICBXQVJOX1VOVVNFRF9SRVRVUk4gRmFsbGlibGU8QXRv
bWljU3RyaW5nPiB0b0F0b21pY1N0cmluZygpIGNvbnN0CiAgICAgeworICAgICAgICBpZiAobV9m
YWlsZWQpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmFpbHVyZTo6VW5oYW5k
bGVkRmFpbHVyZSk7CisKICAgICAgICAgaWYgKCFtX2xlbmd0aCkKICAgICAgICAgICAgIHJldHVy
biBlbXB0eUF0b20oKTsKIAogICAgICAgICAvLyBJZiB0aGUgYnVmZmVyIGlzIHN1ZmZpY2llbnRs
eSBvdmVyLWFsbG9jYXRlZCwgbWFrZSBhIG5ldyBBdG9taWNTdHJpbmcgZnJvbSBhIGNvcHkgc28g
aXRzIGJ1ZmZlciBpcyBub3Qgc28gbGFyZ2UuCiAgICAgICAgIGlmIChjYW5TaHJpbmsoKSkgewog
ICAgICAgICAgICAgaWYgKGlzOEJpdCgpKQotICAgICAgICAgICAgICAgIHJldHVybiBBdG9taWNT
dHJpbmcoY2hhcmFjdGVyczgoKSwgbGVuZ3RoKCkpOwotICAgICAgICAgICAgcmV0dXJuIEF0b21p
Y1N0cmluZyhjaGFyYWN0ZXJzMTYoKSwgbGVuZ3RoKCkpOyAgICAgICAgICAgIAorICAgICAgICAg
ICAgICAgIHJldHVybiBBdG9taWNTdHJpbmcoKmNoYXJhY3RlcnM4KCksIGxlbmd0aCgpKTsKKyAg
ICAgICAgICAgIHJldHVybiBBdG9taWNTdHJpbmcoKmNoYXJhY3RlcnMxNigpLCBsZW5ndGgoKSk7
ICAgICAgICAgICAgCiAgICAgICAgIH0KIAogICAgICAgICBpZiAoIW1fc3RyaW5nLmlzTnVsbCgp
KQpAQCAtMjMwLDI5ICsyNDksMzcgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc0VtcHR5KCkgY29u
c3QgeyByZXR1cm4gIW1fbGVuZ3RoOyB9CiAKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBy
ZXNlcnZlQ2FwYWNpdHkodW5zaWduZWQgbmV3Q2FwYWNpdHkpOworICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBGYWxsaWJsZTw+IHJlc2VydmVDYXBhY2l0eSh1bnNpZ25lZCBuZXdDYXBhY2l0eSk7CiAK
ICAgICB1bnNpZ25lZCBjYXBhY2l0eSgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9i
dWZmZXIgPyBtX2J1ZmZlci0+bGVuZ3RoKCkgOiBtX2xlbmd0aDsKICAgICB9CiAKLSAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgdm9pZCByZXNpemUodW5zaWduZWQgbmV3U2l6ZSk7CisgICAgV1RGX0VY
UE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gcmVzaXplKHVuc2lnbmVkIG5ld1NpemUpOwogCiAgICAg
V1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgY2FuU2hyaW5rKCkgY29uc3Q7CiAKLSAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgdm9pZCBzaHJpbmtUb0ZpdCgpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBG
YWxsaWJsZTw+IHNocmlua1RvRml0KCk7CiAKLSAgICBVQ2hhciBvcGVyYXRvcltdKHVuc2lnbmVk
IGkpIGNvbnN0CisgICAgYm9vbCBpczhCaXQoKSBjb25zdCB7IHJldHVybiBtX2lzOEJpdDsgfQor
CisgICAgYm9vbCBmYWlsZWQoKSBjb25zdCB7IHJldHVybiBtX2ZhaWxlZDsgfQorCisgICAgRmFs
bGlibGU8VUNoYXI+IG9wZXJhdG9yW10odW5zaWduZWQgaSkgY29uc3QKICAgICB7CisgICAgICAg
IGlmIChtX2ZhaWxlZCkKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGYWlsdXJl
OjpVbmhhbmRsZWRGYWlsdXJlKTsKICAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElD
QVRJT04oaSA8IG1fbGVuZ3RoKTsKICAgICAgICAgaWYgKG1faXM4Qml0KQotICAgICAgICAgICAg
cmV0dXJuIGNoYXJhY3RlcnM4KClbaV07Ci0gICAgICAgIHJldHVybiBjaGFyYWN0ZXJzMTYoKVtp
XTsKKyAgICAgICAgICAgIHJldHVybiAoKmNoYXJhY3RlcnM4KCkpW2ldOworICAgICAgICByZXR1
cm4gKCpjaGFyYWN0ZXJzMTYoKSlbaV07CiAgICAgfQogCi0gICAgY29uc3QgTENoYXIqIGNoYXJh
Y3RlcnM4KCkgY29uc3QKKyAgICBGYWxsaWJsZTxjb25zdCBMQ2hhcio+IGNoYXJhY3RlcnM4KCkg
Y29uc3QKICAgICB7CisgICAgICAgIGlmIChtX2ZhaWxlZCkKKyAgICAgICAgICAgIHJldHVybiBt
YWtlVW5leHBlY3RlZChGYWlsdXJlOjpVbmhhbmRsZWRGYWlsdXJlKTsKICAgICAgICAgQVNTRVJU
KG1faXM4Qml0KTsKICAgICAgICAgaWYgKCFtX2xlbmd0aCkKICAgICAgICAgICAgIHJldHVybiAw
OwpAQCAtMjYyLDggKzI4OSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX2J1ZmZlci0+
Y2hhcmFjdGVyczgoKTsKICAgICB9CiAKLSAgICBjb25zdCBVQ2hhciogY2hhcmFjdGVyczE2KCkg
Y29uc3QKKyAgICBGYWxsaWJsZTxjb25zdCBVQ2hhcio+IGNoYXJhY3RlcnMxNigpIGNvbnN0CiAg
ICAgeworICAgICAgICBpZiAobV9mYWlsZWQpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhw
ZWN0ZWQoRmFpbHVyZTo6VW5oYW5kbGVkRmFpbHVyZSk7CiAgICAgICAgIEFTU0VSVCghbV9pczhC
aXQpOwogICAgICAgICBpZiAoIW1fbGVuZ3RoKQogICAgICAgICAgICAgcmV0dXJuIDA7CkBAIC0y
NzIsMTYgKzMwMSwxNSBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChtX2J1ZmZlcik7CiAgICAg
ICAgIHJldHVybiBtX2J1ZmZlci0+Y2hhcmFjdGVyczE2KCk7CiAgICAgfQotICAgIAotICAgIGJv
b2wgaXM4Qml0KCkgY29uc3QgeyByZXR1cm4gbV9pczhCaXQ7IH0KIAogICAgIHZvaWQgY2xlYXIo
KQogICAgIHsKICAgICAgICAgbV9sZW5ndGggPSAwOwogICAgICAgICBtX3N0cmluZyA9IFN0cmlu
ZygpOwogICAgICAgICBtX2J1ZmZlciA9IG51bGxwdHI7Ci0gICAgICAgIG1fYnVmZmVyQ2hhcmFj
dGVyczggPSAwOwogICAgICAgICBtX2lzOEJpdCA9IHRydWU7CisgICAgICAgIG1fZmFpbGVkID0g
ZmFsc2U7CisgICAgICAgIG1fYnVmZmVyQ2hhcmFjdGVyczggPSAwOwogICAgIH0KIAogICAgIHZv
aWQgc3dhcChTdHJpbmdCdWlsZGVyJiBzdHJpbmdCdWlsZGVyKQpAQCAtMjkwLDI4ICszMTgsMzIg
QEAgcHVibGljOgogICAgICAgICBtX3N0cmluZy5zd2FwKHN0cmluZ0J1aWxkZXIubV9zdHJpbmcp
OwogICAgICAgICBtX2J1ZmZlci5zd2FwKHN0cmluZ0J1aWxkZXIubV9idWZmZXIpOwogICAgICAg
ICBzdGQ6OnN3YXAobV9pczhCaXQsIHN0cmluZ0J1aWxkZXIubV9pczhCaXQpOworICAgICAgICBz
dGQ6OnN3YXAobV9mYWlsZWQsIHN0cmluZ0J1aWxkZXIubV9mYWlsZWQpOwogICAgICAgICBzdGQ6
OnN3YXAobV9idWZmZXJDaGFyYWN0ZXJzOCwgc3RyaW5nQnVpbGRlci5tX2J1ZmZlckNoYXJhY3Rl
cnM4KTsKICAgICAgICAgQVNTRVJUKCFtX2J1ZmZlciB8fCBtX2J1ZmZlci0+bGVuZ3RoKCkgPj0g
bV9sZW5ndGgpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICB2b2lkIGFsbG9jYXRlQnVmZmVyKGNv
bnN0IExDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpOwot
ICAgIHZvaWQgYWxsb2NhdGVCdWZmZXIoY29uc3QgVUNoYXIqIGN1cnJlbnRDaGFyYWN0ZXJzLCB1
bnNpZ25lZCByZXF1aXJlZExlbmd0aCk7Ci0gICAgdm9pZCBhbGxvY2F0ZUJ1ZmZlclVwQ29udmVy
dChjb25zdCBMQ2hhciogY3VycmVudENoYXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3Ro
KTsKKyAgICBGYWxsaWJsZTw+IGFsbG9jYXRlQnVmZmVyKGNvbnN0IExDaGFyKiBjdXJyZW50Q2hh
cmFjdGVycywgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpOworICAgIEZhbGxpYmxlPD4gYWxsb2Nh
dGVCdWZmZXIoY29uc3QgVUNoYXIqIGN1cnJlbnRDaGFyYWN0ZXJzLCB1bnNpZ25lZCByZXF1aXJl
ZExlbmd0aCk7CisgICAgRmFsbGlibGU8PiBhbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChjb25zdCBM
Q2hhciogY3VycmVudENoYXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKTsKICAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci0gICAgdm9pZCByZWFsbG9jYXRlQnVmZmVyKHVu
c2lnbmVkIHJlcXVpcmVkTGVuZ3RoKTsKKyAgICBGYWxsaWJsZTw+IHJlYWxsb2NhdGVCdWZmZXIo
dW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpOwogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlw
ZT4KLSAgICBBTFdBWVNfSU5MSU5FIENoYXJUeXBlKiBhcHBlbmRVbmluaXRpYWxpemVkKHVuc2ln
bmVkIGxlbmd0aCk7CisgICAgQUxXQVlTX0lOTElORSBGYWxsaWJsZTxDaGFyVHlwZSo+IGFwcGVu
ZFVuaW5pdGlhbGl6ZWQodW5zaWduZWQgbGVuZ3RoKTsKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
Q2hhclR5cGU+Ci0gICAgQ2hhclR5cGUqIGFwcGVuZFVuaW5pdGlhbGl6ZWRTbG93KHVuc2lnbmVk
IGxlbmd0aCk7CisgICAgRmFsbGlibGU8Q2hhclR5cGUqPiBhcHBlbmRVbmluaXRpYWxpemVkU2xv
dyh1bnNpZ25lZCBsZW5ndGgpOwogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KLSAg
ICBBTFdBWVNfSU5MSU5FIENoYXJUeXBlICogZ2V0QnVmZmVyQ2hhcmFjdGVycygpOworICAgIEFM
V0FZU19JTkxJTkUgQ2hhclR5cGUqIGdldEJ1ZmZlckNoYXJhY3RlcnMoKTsKICAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgdm9pZCByZWlmeVN0cmluZygpIGNvbnN0OworICAgIFdBUk5fVU5VU0VEX1JF
VFVSTiBVbmV4cGVjdGVkPEZhaWx1cmU+IHdvdWxkT3ZlcmZsb3coKTsKKyAgICBXQVJOX1VOVVNF
RF9SRVRVUk4gVW5leHBlY3RlZDxGYWlsdXJlPiBvdXRPZk1lbW9yeSgpOwogCi0gICAgdW5zaWdu
ZWQgbV9sZW5ndGg7CisgICAgdW5zaWduZWQgbV9sZW5ndGggeyAwIH07CiAgICAgbXV0YWJsZSBT
dHJpbmcgbV9zdHJpbmc7CiAgICAgUmVmUHRyPFN0cmluZ0ltcGw+IG1fYnVmZmVyOwotICAgIGJv
b2wgbV9pczhCaXQ7CisgICAgYm9vbCBtX2lzOEJpdCB7IHRydWUgfTsKKyAgICBib29sIG1fZmFp
bGVkIHsgZmFsc2UgfTsKICAgICB1bmlvbiB7CiAgICAgICAgIExDaGFyKiBtX2J1ZmZlckNoYXJh
Y3RlcnM4OwogICAgICAgICBVQ2hhciogbV9idWZmZXJDaGFyYWN0ZXJzMTY7CkBAIC0zMzMsMjAg
KzM2NSw0OCBAQCBBTFdBWVNfSU5MSU5FIFVDaGFyKiBTdHJpbmdCdWlsZGVyOjpnZXRCdWZmZXJD
aGFyYWN0ZXJzPFVDaGFyPigpCiB9ICAgIAogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+
Ci1ib29sIGVxdWFsKGNvbnN0IFN0cmluZ0J1aWxkZXImIHMsIGNvbnN0IENoYXJUeXBlKiBidWZm
ZXIsIHVuc2lnbmVkIGxlbmd0aCkKK2lubGluZSBib29sIGVxdWFsKGNvbnN0IFN0cmluZ0J1aWxk
ZXImIHMsIGNvbnN0IENoYXJUeXBlKiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkKIHsKKyAgICBp
ZiAocy5mYWlsZWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKHMubGVuZ3Ro
KCkgIT0gbGVuZ3RoKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAocy5pczhCaXQo
KSkKLSAgICAgICAgcmV0dXJuIGVxdWFsKHMuY2hhcmFjdGVyczgoKSwgYnVmZmVyLCBsZW5ndGgp
OworICAgICAgICByZXR1cm4gZXF1YWwoKnMuY2hhcmFjdGVyczgoKSwgYnVmZmVyLCBsZW5ndGgp
OwogCi0gICAgcmV0dXJuIGVxdWFsKHMuY2hhcmFjdGVyczE2KCksIGJ1ZmZlciwgbGVuZ3RoKTsK
KyAgICByZXR1cm4gZXF1YWwoKnMuY2hhcmFjdGVyczE2KCksIGJ1ZmZlciwgbGVuZ3RoKTsKK30K
KworaW5saW5lIGJvb2wgZXF1YWwoY29uc3QgU3RyaW5nQnVpbGRlciYgYSwgY29uc3QgU3RyaW5n
QnVpbGRlciYgYikKK3sKKyAgICBpZiAoYS5mYWlsZWQoKSB8fCBiLmZhaWxlZCgpKQorICAgICAg
ICByZXR1cm4gYS5mYWlsZWQoKSA9PSBiLmZhaWxlZCgpOworCisgICAgaWYgKGEubGVuZ3RoKCkg
IT0gYi5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFhLmxlbmd0
aCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChhLmlzOEJpdCgpKSB7CisgICAg
ICAgIGlmIChiLmlzOEJpdCgpKQorICAgICAgICAgICAgcmV0dXJuIGVxdWFsKCphLmNoYXJhY3Rl
cnM4KCksICpiLmNoYXJhY3RlcnM4KCksIGEubGVuZ3RoKCkpOworICAgICAgICByZXR1cm4gZXF1
YWwoKmEuY2hhcmFjdGVyczgoKSwgKmIuY2hhcmFjdGVyczE2KCksIGEubGVuZ3RoKCkpOworICAg
IH0KKworICAgIGlmIChiLmlzOEJpdCgpKQorICAgICAgICByZXR1cm4gZXF1YWwoKmEuY2hhcmFj
dGVyczE2KCksICpiLmNoYXJhY3RlcnM4KCksIGEubGVuZ3RoKCkpOworICAgIHJldHVybiBlcXVh
bCgqYS5jaGFyYWN0ZXJzMTYoKSwgKmIuY2hhcmFjdGVyczE2KCksIGEubGVuZ3RoKCkpOwogfQog
CiB0ZW1wbGF0ZSA8dHlwZW5hbWUgU3RyaW5nVHlwZT4KLWJvb2wgZXF1YWwoY29uc3QgU3RyaW5n
QnVpbGRlciYgYSwgY29uc3QgU3RyaW5nVHlwZSYgYikKK2lubGluZSBib29sIGVxdWFsKGNvbnN0
IFN0cmluZ0J1aWxkZXImIGEsIGNvbnN0IFN0cmluZ1R5cGUmIGIpCiB7CisgICAgaWYgKGEuZmFp
bGVkKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGlmIChhLmxlbmd0aCgpICE9IGIu
bGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMzU1LDEzICs0MTUsMTMgQEAg
Ym9vbCBlcXVhbChjb25zdCBTdHJpbmdCdWlsZGVyJiBhLCBjb25zdCBTdHJpbmdUeXBlJiBiKQog
CiAgICAgaWYgKGEuaXM4Qml0KCkpIHsKICAgICAgICAgaWYgKGIuaXM4Qml0KCkpCi0gICAgICAg
ICAgICByZXR1cm4gZXF1YWwoYS5jaGFyYWN0ZXJzOCgpLCBiLmNoYXJhY3RlcnM4KCksIGEubGVu
Z3RoKCkpOwotICAgICAgICByZXR1cm4gZXF1YWwoYS5jaGFyYWN0ZXJzOCgpLCBiLmNoYXJhY3Rl
cnMxNigpLCBhLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIHJldHVybiBlcXVhbCgqYS5jaGFyYWN0
ZXJzOCgpLCBiLmNoYXJhY3RlcnM4KCksIGEubGVuZ3RoKCkpOworICAgICAgICByZXR1cm4gZXF1
YWwoKmEuY2hhcmFjdGVyczgoKSwgYi5jaGFyYWN0ZXJzMTYoKSwgYS5sZW5ndGgoKSk7CiAgICAg
fQogCiAgICAgaWYgKGIuaXM4Qml0KCkpCi0gICAgICAgIHJldHVybiBlcXVhbChhLmNoYXJhY3Rl
cnMxNigpLCBiLmNoYXJhY3RlcnM4KCksIGEubGVuZ3RoKCkpOwotICAgIHJldHVybiBlcXVhbChh
LmNoYXJhY3RlcnMxNigpLCBiLmNoYXJhY3RlcnMxNigpLCBhLmxlbmd0aCgpKTsKKyAgICAgICAg
cmV0dXJuIGVxdWFsKCphLmNoYXJhY3RlcnMxNigpLCBiLmNoYXJhY3RlcnM4KCksIGEubGVuZ3Ro
KCkpOworICAgIHJldHVybiBlcXVhbCgqYS5jaGFyYWN0ZXJzMTYoKSwgYi5jaGFyYWN0ZXJzMTYo
KSwgYS5sZW5ndGgoKSk7CiB9CiAKIGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgU3RyaW5n
QnVpbGRlciYgYSwgY29uc3QgU3RyaW5nQnVpbGRlciYgYikgeyByZXR1cm4gZXF1YWwoYSwgYik7
IH0KQEAgLTM3Miw5ICs0MzIsMTIgQEAgaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTdHJp
bmcmIGEsIGNvbnN0IFN0cmluZ0J1aWxkZXImIGIpIHsgcmV0dXJuIGVxdWFsKGIKIGlubGluZSBi
b29sIG9wZXJhdG9yIT0oY29uc3QgU3RyaW5nJiBhLCBjb25zdCBTdHJpbmdCdWlsZGVyJiBiKSB7
IHJldHVybiAhZXF1YWwoYiwgYSk7IH0KIAogdGVtcGxhdGU8PiBzdHJ1Y3QgSW50ZWdlclRvU3Ry
aW5nQ29udmVyc2lvblRyYWl0PFN0cmluZ0J1aWxkZXI+IHsKLSAgICB1c2luZyBSZXR1cm5UeXBl
ID0gdm9pZDsKKyAgICB1c2luZyBSZXR1cm5UeXBlID0gU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8
PjsKICAgICB1c2luZyBBZGRpdGlvbmFsQXJndW1lbnRUeXBlID0gU3RyaW5nQnVpbGRlcjsKLSAg
ICBzdGF0aWMgdm9pZCBmbHVzaChMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBT
dHJpbmdCdWlsZGVyKiBzdHJpbmdCdWlsZGVyKSB7IHN0cmluZ0J1aWxkZXItPmFwcGVuZChjaGFy
YWN0ZXJzLCBsZW5ndGgpOyB9CisgICAgc3RhdGljIFJldHVyblR5cGUgZmx1c2goTENoYXIqIGNo
YXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgU3RyaW5nQnVpbGRlciogc3RyaW5nQnVpbGRlcikK
KyAgICB7CisgICAgICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLT5hcHBlbmQoY2hhcmFjdGVycywg
bGVuZ3RoKTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlckpTT04uY3BwIGIvU291cmNlL1dURi93dGYv
dGV4dC9TdHJpbmdCdWlsZGVySlNPTi5jcHAKaW5kZXggMjI2Mjk1ZS4uNzBkYmI4NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVySlNPTi5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVySlNPTi5jcHAKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDE3IFl1c3VrZSBTdXp1a2kgPHV0YXRh
bmUudGVhQGdtYWlsLmNvbT4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTcgTW96aWxsYSBGb3VuZGF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtNzQsNyAr
NzQsNyBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyB2b2lkIGFwcGVuZFF1b3RlZEpTT05TdHJpbmdJ
bnRlcm5hbChPdXRwdXRDaGFyYWN0ZXJUeXBlKiYgbwogICAgIH0KIH0KIAotYm9vbCBTdHJpbmdC
dWlsZGVyOjphcHBlbmRRdW90ZWRKU09OU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorU3Ry
aW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmRRdW90ZWRKU09OU3Ry
aW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewogICAgIC8vIE1ha2Ugc3VyZSB3ZSBoYXZlIGVu
b3VnaCBidWZmZXIgc3BhY2UgdG8gYXBwZW5kIHRoaXMgc3RyaW5nIHdpdGhvdXQgaGF2aW5nCiAg
ICAgLy8gdG8gd29ycnkgYWJvdXQgcmVhbGxvY2F0aW5nIGluIHRoZSBtaWRkbGUuCkBAIC04NSwy
MCArODUsMjEgQEAgYm9vbCBTdHJpbmdCdWlsZGVyOjphcHBlbmRRdW90ZWRKU09OU3RyaW5nKGNv
bnN0IFN0cmluZyYgc3RyaW5nKQogICAgIG1heGltdW1DYXBhY2l0eVJlcXVpcmVkICs9IDIgKyBz
dHJpbmdMZW5ndGggKiA2OwogICAgIHVuc2lnbmVkIGFsbG9jYXRpb25TaXplOwogICAgIGlmIChD
aGVja2VkU3RhdGU6OkRpZE92ZXJmbG93ID09IG1heGltdW1DYXBhY2l0eVJlcXVpcmVkLnNhZmVH
ZXQoYWxsb2NhdGlvblNpemUpKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVy
biB3b3VsZE92ZXJmbG93KCk7CiAgICAgLy8gVGhpcyBtYXgoKSBpcyBoZXJlIHRvIGFsbG93IHVz
IHRvIGFsbG9jYXRlIHNpemVzIGJldHdlZW4gdGhlIHJhbmdlIFsyXjMxLCAyXjMyIC0gMl0gYmVj
YXVzZSByb3VuZFVwVG9Qb3dlck9mVHdvKDE8PDMxICsgc29tZSBpbnQgc21hbGxlciB0aGFuIDE8
PDMxKSA9PSAwLgogICAgIC8vIEZJWE1FOiByb3VuZFVwVG9Qb3dlck9mVHdvIHNob3VsZCB0YWtl
IENoZWNrZWQ8dW5zaWduZWQ+IGFuZCBhYm9ydCBpZiBpdCBmYWlscyB0byByb3VuZCB1cC4KICAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDg2CiAgICAg
YWxsb2NhdGlvblNpemUgPSBzdGQ6Om1heChhbGxvY2F0aW9uU2l6ZSwgcm91bmRVcFRvUG93ZXJP
ZlR3byhhbGxvY2F0aW9uU2l6ZSkpOwogCi0gICAgLy8gQWxsb2NhdGluZyB0aGlzIG11Y2ggd2ls
bCBkZWZpbml0ZWx5IGZhaWwuCi0gICAgaWYgKGFsbG9jYXRpb25TaXplID49IDB4ODAwMDAwMDAp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChpczhCaXQoKSAmJiAhc3RyaW5nLmlz
OEJpdCgpKQotICAgICAgICBhbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChtX2J1ZmZlckNoYXJhY3Rl
cnM4LCBhbGxvY2F0aW9uU2l6ZSk7Ci0gICAgZWxzZQotICAgICAgICByZXNlcnZlQ2FwYWNpdHko
YWxsb2NhdGlvblNpemUpOworICAgIGlmIChpczhCaXQoKSAmJiAhc3RyaW5nLmlzOEJpdCgpKSB7
CisgICAgICAgIGF1dG8gYWxsb2NhdGVkID0gYWxsb2NhdGVCdWZmZXJVcENvbnZlcnQobV9idWZm
ZXJDaGFyYWN0ZXJzOCwgYWxsb2NhdGlvblNpemUpOworICAgICAgICBpZiAoIWFsbG9jYXRlZCkK
KyAgICAgICAgICAgIHJldHVybiBhbGxvY2F0ZWQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXV0
byByZXNlcnZlZCA9IHJlc2VydmVDYXBhY2l0eShhbGxvY2F0aW9uU2l6ZSk7CisgICAgICAgIGlm
ICghcmVzZXJ2ZWQpCisgICAgICAgICAgICByZXR1cm4gcmVzZXJ2ZWQ7CisgICAgfQogICAgIEFT
U0VSVChtX2J1ZmZlci0+bGVuZ3RoKCkgPj0gYWxsb2NhdGlvblNpemUpOwogCiAgICAgaWYgKGlz
OEJpdCgpKSB7CkBAIC0xMTksNyArMTIwLDcgQEAgYm9vbCBTdHJpbmdCdWlsZGVyOjphcHBlbmRR
dW90ZWRKU09OU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgICAgICBtX2xlbmd0aCA9
IG91dHB1dCAtIG1fYnVmZmVyQ2hhcmFjdGVyczE2OwogICAgIH0KICAgICBBU1NFUlQobV9idWZm
ZXItPmxlbmd0aCgpID49IG1fbGVuZ3RoKTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4g
eyB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvU3RyaW5nSW1wbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3Bw
CmluZGV4IDc3NDg3NmIuLmVlZDA5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nSW1wbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcApA
QCAtMjA2LDIyICsyMDYsMjQgQEAgUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OmNyZWF0ZVVu
aW5pdGlhbGl6ZWQodW5zaWduZWQgbGVuZ3RoLCBVQ2hhciomIGRhdGEpCiAgICAgcmV0dXJuIGNy
ZWF0ZVVuaW5pdGlhbGl6ZWRJbnRlcm5hbChsZW5ndGgsIGRhdGEpOwogfQogCi10ZW1wbGF0ZTx0
eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBpbmxpbmUgUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6
OnJlYWxsb2NhdGVJbnRlcm5hbChSZWY8U3RyaW5nSW1wbD4mJiBvcmlnaW5hbFN0cmluZywgdW5z
aWduZWQgbGVuZ3RoLCBDaGFyYWN0ZXJUeXBlKiYgZGF0YSkKK3RlbXBsYXRlPHR5cGVuYW1lIENo
YXJhY3RlclR5cGU+IGlubGluZSBSZWZQdHI8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6cmVhbGxv
Y2F0ZUludGVybmFsKFJlZjxTdHJpbmdJbXBsPiYmIG9yaWdpbmFsU3RyaW5nLCB1bnNpZ25lZCBs
ZW5ndGgsIENoYXJhY3RlclR5cGUqJiBkYXRhKQogewogICAgIEFTU0VSVChvcmlnaW5hbFN0cmlu
Zy0+aGFzT25lUmVmKCkpOwogICAgIEFTU0VSVChvcmlnaW5hbFN0cmluZy0+YnVmZmVyT3duZXJz
aGlwKCkgPT0gQnVmZmVySW50ZXJuYWwpOwogCiAgICAgaWYgKCFsZW5ndGgpIHsKICAgICAgICAg
ZGF0YSA9IDA7Ci0gICAgICAgIHJldHVybiAqZW1wdHkoKTsKKyAgICAgICAgcmV0dXJuIGVtcHR5
KCk7CiAgICAgfQogCiAgICAgLy8gU2FtZSBhcyBjcmVhdGVVbmluaXRpYWxpemVkKCkgZXhjZXB0
IGhlcmUgd2UgdXNlIHN0cmluZ1JlYWxsb2MuCi0gICAgaWYgKGxlbmd0aCA+ICgoc3RkOjpudW1l
cmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpIC0gc2l6ZW9mKFN0cmluZ0ltcGwpKSAvIHNpemVv
ZihDaGFyYWN0ZXJUeXBlKSkpCi0gICAgICAgIENSQVNIKCk7CisgICAgaWYgKFVOTElLRUxZKGxl
bmd0aCA+ICgoc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpIC0gc2l6ZW9mKFN0
cmluZ0ltcGwpKSAvIHNpemVvZihDaGFyYWN0ZXJUeXBlKSkpKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAogICAgIG9yaWdpbmFsU3RyaW5nLT5+U3RyaW5nSW1wbCgpOwogICAgIGF1dG8qIHN0
cmluZyA9IHN0YXRpY19jYXN0PFN0cmluZ0ltcGwqPihzdHJpbmdSZWFsbG9jKCZvcmlnaW5hbFN0
cmluZy5sZWFrUmVmKCksIGFsbG9jYXRpb25TaXplPENoYXJhY3RlclR5cGU+KGxlbmd0aCkpKTsK
KyAgICBpZiAoVU5MSUtFTFkoIXN0cmluZykpCisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAg
ICAgZGF0YSA9IHN0cmluZy0+dGFpbFBvaW50ZXI8Q2hhcmFjdGVyVHlwZT4oKTsKICAgICByZXR1
cm4gY29uc3RydWN0SW50ZXJuYWw8Q2hhcmFjdGVyVHlwZT4oKnN0cmluZywgbGVuZ3RoKTsKQEAg
LTIzMCwxMyArMjMyLDMzIEBAIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IGlubGlu
ZSBSZWY8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6cmVhbGxvY2F0ZUluCiBSZWY8U3RyaW5nSW1w
bD4gU3RyaW5nSW1wbDo6cmVhbGxvY2F0ZShSZWY8U3RyaW5nSW1wbD4mJiBvcmlnaW5hbFN0cmlu
ZywgdW5zaWduZWQgbGVuZ3RoLCBMQ2hhciomIGRhdGEpCiB7CiAgICAgQVNTRVJUKG9yaWdpbmFs
U3RyaW5nLT5pczhCaXQoKSk7Ci0gICAgcmV0dXJuIHJlYWxsb2NhdGVJbnRlcm5hbChXVEZNb3Zl
KG9yaWdpbmFsU3RyaW5nKSwgbGVuZ3RoLCBkYXRhKTsKKyAgICBpZiAoYXV0byByZWFsbG9jYXRl
ZCA9IHJlYWxsb2NhdGVJbnRlcm5hbChXVEZNb3ZlKG9yaWdpbmFsU3RyaW5nKSwgbGVuZ3RoLCBk
YXRhKSkKKyAgICAgICAgcmV0dXJuICpyZWFsbG9jYXRlZDsKKyAgICBDUkFTSCgpOwogfQogCiBS
ZWY8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6cmVhbGxvY2F0ZShSZWY8U3RyaW5nSW1wbD4mJiBv
cmlnaW5hbFN0cmluZywgdW5zaWduZWQgbGVuZ3RoLCBVQ2hhciomIGRhdGEpCiB7CiAgICAgQVNT
RVJUKCFvcmlnaW5hbFN0cmluZy0+aXM4Qml0KCkpOwotICAgIHJldHVybiByZWFsbG9jYXRlSW50
ZXJuYWwoV1RGTW92ZShvcmlnaW5hbFN0cmluZyksIGxlbmd0aCwgZGF0YSk7CisgICAgaWYgKGF1
dG8gcmVhbGxvY2F0ZWQgPSByZWFsbG9jYXRlSW50ZXJuYWwoV1RGTW92ZShvcmlnaW5hbFN0cmlu
ZyksIGxlbmd0aCwgZGF0YSkpCisgICAgICAgIHJldHVybiAqcmVhbGxvY2F0ZWQ7CisgICAgQ1JB
U0goKTsKK30KKworUmVmUHRyPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OnRyeVJlYWxsb2NhdGUo
UmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2lnbmVkIGxlbmd0aCwgTENoYXIq
JiBkYXRhKQoreworICAgIEFTU0VSVChvcmlnaW5hbFN0cmluZy0+aXM4Qml0KCkpOworICAgIGlm
IChhdXRvIHJlYWxsb2NhdGVkID0gcmVhbGxvY2F0ZUludGVybmFsKFdURk1vdmUob3JpZ2luYWxT
dHJpbmcpLCBsZW5ndGgsIGRhdGEpKQorICAgICAgICByZXR1cm4gcmVhbGxvY2F0ZWQuZ2V0KCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBs
Ojp0cnlSZWFsbG9jYXRlKFJlZjxTdHJpbmdJbXBsPiYmIG9yaWdpbmFsU3RyaW5nLCB1bnNpZ25l
ZCBsZW5ndGgsIFVDaGFyKiYgZGF0YSkKK3sKKyAgICBBU1NFUlQoIW9yaWdpbmFsU3RyaW5nLT5p
czhCaXQoKSk7CisgICAgaWYgKGF1dG8gcmVhbGxvY2F0ZWQgPSByZWFsbG9jYXRlSW50ZXJuYWwo
V1RGTW92ZShvcmlnaW5hbFN0cmluZyksIGxlbmd0aCwgZGF0YSkpCisgICAgICAgIHJldHVybiBy
ZWFsbG9jYXRlZC5nZXQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogdGVtcGxhdGU8dHlw
ZW5hbWUgQ2hhcmFjdGVyVHlwZT4gaW5saW5lIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpj
cmVhdGVJbnRlcm5hbChjb25zdCBDaGFyYWN0ZXJUeXBlKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBs
ZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCmluZGV4IDYxNmRhMjUuLjhkZjllMzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCkBAIC0yMjksNiArMjI5LDcgQEAgcHVibGljOgogICAg
IFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0ZShjb25zdCBM
Q2hhciopOwogICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGUo
Y29uc3QgY2hhciogc3RyaW5nKSB7IHJldHVybiBjcmVhdGUocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBMQ2hhcio+KHN0cmluZykpOyB9CiAKKyAgICBzdGF0aWMgUmVmUHRyPFN0cmluZ0ltcGw+IHRy
eUNyZWF0ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKFN0cmluZ0ltcGwmLCB1bnNpZ25lZCBvZmZzZXQs
IHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGVTdWJz
dHJpbmdTaGFyaW5nSW1wbChTdHJpbmdJbXBsJiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBs
ZW5ndGgpOwogCiAgICAgdGVtcGxhdGU8dW5zaWduZWQgY2hhcmFjdGVyQ291bnQ+IHN0YXRpYyBS
ZWY8U3RyaW5nSW1wbD4gY3JlYXRlRnJvbUxpdGVyYWwoY29uc3QgY2hhciAoJilbY2hhcmFjdGVy
Q291bnRdKTsKQEAgLTI0OCw2ICsyNDksOCBAQCBwdWJsaWM6CiAgICAgLy8gdGhlIG9yaWdpbmFs
U3RyaW5nIGNhbid0IGJlIHVzZWQgYWZ0ZXIgdGhpcyBmdW5jdGlvbi4KICAgICBzdGF0aWMgUmVm
PFN0cmluZ0ltcGw+IHJlYWxsb2NhdGUoUmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcs
IHVuc2lnbmVkIGxlbmd0aCwgTENoYXIqJiBkYXRhKTsKICAgICBzdGF0aWMgUmVmPFN0cmluZ0lt
cGw+IHJlYWxsb2NhdGUoUmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2lnbmVk
IGxlbmd0aCwgVUNoYXIqJiBkYXRhKTsKKyAgICBzdGF0aWMgUmVmUHRyPFN0cmluZ0ltcGw+IHRy
eVJlYWxsb2NhdGUoUmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2lnbmVkIGxl
bmd0aCwgTENoYXIqJiBkYXRhKTsKKyAgICBzdGF0aWMgUmVmUHRyPFN0cmluZ0ltcGw+IHRyeVJl
YWxsb2NhdGUoUmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2lnbmVkIGxlbmd0
aCwgVUNoYXIqJiBkYXRhKTsKIAogICAgIHN0YXRpYyB1bnNpZ25lZCBmbGFnc09mZnNldCgpIHsg
cmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTdHJpbmdJbXBsLCBtX2hhc2hBbmRGbGFncyk7IH0KICAg
ICBzdGF0aWMgdW5zaWduZWQgZmxhZ0lzOEJpdCgpIHsgcmV0dXJuIHNfaGFzaEZsYWc4Qml0QnVm
ZmVyOyB9CkBAIC01MDMsNyArNTA2LDcgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBDaGFyYWN0ZXJUeXBlPiBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNvbnN0cnVjdEludGVybmFs
KFN0cmluZ0ltcGwmLCB1bnNpZ25lZCk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVy
VHlwZT4gc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGVVbmluaXRpYWxpemVkSW50ZXJuYWwo
dW5zaWduZWQsIENoYXJhY3RlclR5cGUqJik7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFj
dGVyVHlwZT4gc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGVVbmluaXRpYWxpemVkSW50ZXJu
YWxOb25FbXB0eSh1bnNpZ25lZCwgQ2hhcmFjdGVyVHlwZSomKTsKLSAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBDaGFyYWN0ZXJUeXBlPiBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IHJlYWxsb2NhdGVJbnRl
cm5hbChSZWY8U3RyaW5nSW1wbD4mJiwgdW5zaWduZWQsIENoYXJhY3RlclR5cGUqJik7CisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gc3RhdGljIFJlZlB0cjxTdHJpbmdJbXBs
PiByZWFsbG9jYXRlSW50ZXJuYWwoUmVmPFN0cmluZ0ltcGw+JiYsIHVuc2lnbmVkLCBDaGFyYWN0
ZXJUeXBlKiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHN0YXRpYyBS
ZWY8U3RyaW5nSW1wbD4gY3JlYXRlSW50ZXJuYWwoY29uc3QgQ2hhcmFjdGVyVHlwZSosIHVuc2ln
bmVkKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgTkVWRVJfSU5MSU5FIHVuc2lnbmVkIGhhc2hT
bG93Q2FzZSgpIGNvbnN0OwogCkBAIC05MTQsMjIgKzkxNywzMSBAQCB0ZW1wbGF0ZTxzaXplX3Qg
aW5saW5lQ2FwYWNpdHk+IGlubGluZSBSZWY8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6Y3JlYXRl
OEJpdElmUAogICAgIHJldHVybiBjcmVhdGU4Qml0SWZQb3NzaWJsZSh2ZWN0b3IuZGF0YSgpLCB2
ZWN0b3Iuc2l6ZSgpKTsKIH0KIAotQUxXQVlTX0lOTElORSBSZWY8U3RyaW5nSW1wbD4gU3RyaW5n
SW1wbDo6Y3JlYXRlU3Vic3RyaW5nU2hhcmluZ0ltcGwoU3RyaW5nSW1wbCYgcmVwLCB1bnNpZ25l
ZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKK0FMV0FZU19JTkxJTkUgUmVmUHRyPFN0cmluZ0lt
cGw+IFN0cmluZ0ltcGw6OnRyeUNyZWF0ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKFN0cmluZ0ltcGwm
IHJlcCwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgQVNTRVJUKGxl
bmd0aCA8PSByZXAubGVuZ3RoKCkpOwogCiAgICAgaWYgKCFsZW5ndGgpCi0gICAgICAgIHJldHVy
biAqZW1wdHkoKTsKKyAgICAgICAgcmV0dXJuIGVtcHR5KCk7CiAKICAgICBhdXRvKiBvd25lclJl
cCA9ICgocmVwLmJ1ZmZlck93bmVyc2hpcCgpID09IEJ1ZmZlclN1YnN0cmluZykgPyByZXAuc3Vi
c3RyaW5nQnVmZmVyKCkgOiAmcmVwKTsKIAogICAgIC8vIFdlIGFsbG9jYXRlIGEgYnVmZmVyIHRo
YXQgY29udGFpbnMgYm90aCB0aGUgU3RyaW5nSW1wbCBzdHJ1Y3QgYXMgd2VsbCBhcyB0aGUgcG9p
bnRlciB0byB0aGUgb3duZXIgc3RyaW5nLgogICAgIGF1dG8qIHN0cmluZ0ltcGwgPSBzdGF0aWNf
Y2FzdDxTdHJpbmdJbXBsKj4oc3RyaW5nTWFsbG9jKGFsbG9jYXRpb25TaXplPFN0cmluZ0ltcGwq
PigxKSkpOworICAgIGlmICghc3RyaW5nSW1wbCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgaWYgKHJlcC5pczhCaXQoKSkKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgKE5vdE51
bGwsIHN0cmluZ0ltcGwpIFN0cmluZ0ltcGwocmVwLm1fZGF0YTggKyBvZmZzZXQsIGxlbmd0aCwg
Km93bmVyUmVwKSk7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgKE5vdE51bGwsIHN0cmluZ0lt
cGwpIFN0cmluZ0ltcGwocmVwLm1fZGF0YTE2ICsgb2Zmc2V0LCBsZW5ndGgsICpvd25lclJlcCkp
OwogfQogCitBTFdBWVNfSU5MSU5FIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdGVT
dWJzdHJpbmdTaGFyaW5nSW1wbChTdHJpbmdJbXBsJiByZXAsIHVuc2lnbmVkIG9mZnNldCwgdW5z
aWduZWQgbGVuZ3RoKQoreworICAgIGlmIChhdXRvIGNyZWF0ZWQgPSB0cnlDcmVhdGVTdWJzdHJp
bmdTaGFyaW5nSW1wbChyZXAsIG9mZnNldCwgbGVuZ3RoKSkKKyAgICAgICAgcmV0dXJuICpjcmVh
dGVkOworICAgIENSQVNIKCk7Cit9CisKIHRlbXBsYXRlPHVuc2lnbmVkIGNoYXJhY3RlckNvdW50
PiBBTFdBWVNfSU5MSU5FIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0
ZXJhbChjb25zdCBjaGFyICgmY2hhcmFjdGVycylbY2hhcmFjdGVyQ291bnRdKQogewogICAgIENP
TVBJTEVfQVNTRVJUKGNoYXJhY3RlckNvdW50ID4gMSwgU3RyaW5nSW1wbEZyb21MaXRlcmFsTm90
RW1wdHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0U3RyZWFtLmNwcCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dFN0cmVhbS5jcHAKaW5kZXggYWFmNjE5NC4uZDNiNTMx
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0U3RyZWFtLmNwcAorKysgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRTdHJlYW0uY3BwCkBAIC0xMzIsOSArMTMyLDExIEBAIFRl
eHRTdHJlYW0mIFRleHRTdHJlYW06Om9wZXJhdG9yPDwoY29uc3QgRm9ybWF0TnVtYmVyUmVzcGVj
dGluZ0ludGVnZXJzJiBudW1iZXJUCiAKIFN0cmluZyBUZXh0U3RyZWFtOjpyZWxlYXNlKCkKIHsK
LSAgICBTdHJpbmcgcmVzdWx0ID0gbV90ZXh0LnRvU3RyaW5nKCk7Ci0gICAgbV90ZXh0LmNsZWFy
KCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICBpZiAoYXV0byByZXN1bHQgPSBtX3RleHQudG9T
dHJpbmcoKSkgeworICAgICAgICBtX3RleHQuY2xlYXIoKTsKKyAgICAgICAgcmV0dXJuICpyZXN1
bHQ7CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgVGV4dFN0cmVhbTo6c3RhcnRHcm91
cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggODk1ZTJlZi4uNmRjNzNlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDUxMyBAQAorMjAxOC0wNC0yNiAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CisK
KyAgICAgICAgU3RyaW5nQnVpbGRlciBpcyBmYWxsaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RyaW5nQnVpbGRlciBjYW4gZmFpbCB3aGVuIGFs
bG9jYXRpbmcgbWVtb3J5LiBTdHJpbmdCdWlsZGVyIGlzCisgICAgICAgIG1vc3RseSB1c2VkIHdp
dGggdXNlciBpbnB1dCwgd2hpY2ggb2Z0ZW4gbWVhbnMgdGhhdCBqdXN0IGNyYXNoaW5nCisgICAg
ICAgIGlzbid0IHRoZSByaWdodCBvdXRjb21lLiBPdXIgZnV6emVycyBvZnRlbiBlbmNvdW50ZXIg
c3VjaCB0aGluZ3MKKyAgICAgICAgZm9yIEphdmFTY3JpcHRDb3JlLCBhbmQgc28gZmFyIHdlJ3Zl
IGFwcGxpZWQgcG9pbnQgc29sdXRpb25zLiBObworICAgICAgICBtb3JlIQorCisKKyAgICAgICAg
KiBNb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRDb250YWN0Q29jb2EubW06CisgICAgICAg
IChXZWJDb3JlOjpjb252ZXJ0KToKKyAgICAgICAgKiBNb2R1bGVzL2VudHJpZXNhcGkvRE9NRmls
ZVN5c3RlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXNvbHZlUmVsYXRpdmVWaXJ0dWFsUGF0
aCk6CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpsb2dFcnJvcik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
S2V5RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlEYXRhOjpsb2dnaW5nU3RyaW5n
IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlQYXRoLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmxvZ2dpbmdTdHJpbmcpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JbmRleFZhbHVlU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2Vy
dmVyOjpJbmRleFZhbHVlU3RvcmU6OmxvZ2dpbmdTdHJpbmcgY29uc3QpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJDdXJzb3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SURCU2VydmVyOjpidWlsZEluZGV4U3RhdGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6YnVpbGRPYmplY3RTdG9yZVN0YXRlbWVudCk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJEYXRhYmFzZUluZm86OmxvZ2dpbmdTdHJpbmcgY29uc3QpOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SURCT2JqZWN0U3RvcmVJbmZvOjpsb2dnaW5nU3RyaW5nIGNvbnN0KToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJTdGF0ZVN0cmluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjp0b1N0cmluZyk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
ZmlsdGVySUNFQ2FuZGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25uZWN0aW9uQmFj
a2VuZDo6ZmlsdGVyU0RQIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdpbnMvWW91VHVi
ZVBsdWdpblJlcGxhY2VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OllvdVR1YmVQbHVnaW5S
ZXBsYWNlbWVudDo6eW91VHViZVVSTEZyb21BYnNvbHV0ZVVSTCk6CisgICAgICAgICogTW9kdWxl
cy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2Vu
ZXJhdGVEYXRhYmFzZUZpbGVOYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmVuY29kZVByb3RvY29sU3RyaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpvaW5TdHJpbmdzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyOjpjcmVhdGVIZWFkZXJWYWx1ZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyOjphY2NlcHRlZEV4
dGVuc2lvbnMgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRI
YW5kc2hha2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVzb3VyY2VOYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6Omhvc3ROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEhhbmRzaGFr
ZTo6Y2xpZW50TG9jYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0SGFu
ZHNoYWtlOjpjbGllbnRIYW5kc2hha2VNZXNzYWdlIGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNo
b3VsZEFkZFNwYWNlQmVmb3JlQXBwZW5kaW5nTmV4dEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRleHRVbmRlckVsZW1lbnQgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmFjY2Vzc2liaWxpdHlEZXNj
cmlwdGlvbkZvckNoaWxkcmVuIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0OjphY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25Gb3JFbGVtZW50cyBjb25zdCk6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN0cmluZ0ZvclJhbmdlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN0cmluZ0ZvclZpc2libGVQ
b3NpdGlvblJhbmdlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXIgdmFsdWVEZXNjcmlwdGlvbkZvck1ldGVyXSk6CisgICAgICAgIChmb3JtYXRGb3JE
ZWJ1Z2dlcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01Db252ZXJ0U3RyaW5ncy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpzdHJpbmdUb1VTVlN0cmluZyk6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0aHJv
d0FyZ3VtZW50TXVzdEJlRW51bUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OnRocm93QXJndW1l
bnRNdXN0QmVGdW5jdGlvbkVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OnRocm93QXJndW1lbnRU
eXBlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6dGhyb3dSZXF1aXJlZE1lbWJlclR5cGVFcnJv
cik6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29tYmluZWRVUkxGaWx0ZXJzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpwcmVmaXhUcmVlVmVydGV4VG9T
dHJpbmcpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb246
OmNvbXBpbGVHbG9iYWxEaXNwbGF5Tm9uZVN0eWxlU2hlZXQpOgorICAgICAgICAqIGNvbnRlbnRl
eHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZW50RXh0ZW5zaW9uczo6cmVzb2x2ZVBlbmRpbmdEaXNwbGF5Tm9uZUFjdGlvbnMpOgor
ICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25TdHlsZVNoZWV0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9u
U3R5bGVTaGVldDo6YWRkRGlzcGxheU5vbmVTZWxlY3Rvcik6CisgICAgICAgICogY29udGVudGV4
dGVuc2lvbnMvVGVybS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlRl
cm06OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNj
cm9sbFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0FuaW1hdGlvblRyaWdnZXJTY3Jv
bGxWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0Jhc2ljU2hh
cGVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkQ2lyY2xlU3RyaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OmJ1aWxkRWxsaXBzZVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpidWlsZFBh
dGhTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRQb2x5Z29uU3RyaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OmJ1aWxkSW5zZXRTdHJpbmcpOgorICAgICAgICAqIGNzcy9DU1NDYWxjdWxh
dGlvblZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkQ3NzVGV4dCk6CisgICAgICAg
ICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmNzc1RleHQgY29uc3QpOgorICAgICAgICAq
IGNzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDcm9zc2Zh
ZGVWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0N1cnNvcklt
YWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Vyc29ySW1hZ2VWYWx1ZTo6Y3Vz
dG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0N1c3RvbUlkZW50VmFsdWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3VzdG9tSWRlbnRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBj
b25zdCk6CisgICAgICAgICogY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTRmlsdGVySW1hZ2VWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAg
ICAgICogY3NzL0NTU0ZvbnRGYWNlUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250
RmFjZVJ1bGU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZVNyY1Zh
bHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU3JjVmFsdWU6OmN1c3RvbUNT
U1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NGb250RmVhdHVyZVZhbHVlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGZWF0dXJlVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3Qp
OgorICAgICAgICAqIGNzcy9DU1NGb250U3R5bGVSYW5nZVZhbHVlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU0ZvbnRTdHlsZVJhbmdlVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAg
ICAgICAqIGNzcy9DU1NGb250U3R5bGVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NG
b250U3R5bGVWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0Zv
bnRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250VmFsdWU6OmN1c3RvbUNTU1Rl
eHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTRm9udFZhcmlhdGlvblZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0
KToKKyAgICAgICAgKiBjc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NGdW5jdGlvblZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3Mv
Q1NTR3JhZGllbnRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NMaW5lYXJHcmFkaWVu
dFZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1JhZGlh
bEdyYWRpZW50VmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTQ29uaWNHcmFkaWVudFZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBj
c3MvQ1NTR3JpZEF1dG9SZXBlYXRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NHcmlk
QXV0b1JlcGVhdFZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NT
R3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NHcmlkVGVt
cGxhdGVBcmVhc1ZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NT
SW1hZ2VTZXRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVNldFZhbHVlOjpj
dXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTSW1wb3J0UnVsZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NJbXBvcnRSdWxlOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAg
KiBjc3MvQ1NTS2V5ZnJhbWVSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUtl
eWZyYW1lOjprZXlUZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUtleWZy
YW1lOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTS2V5ZnJhbWVzUnVsZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NLZXlmcmFtZXNSdWxlOjpjc3NUZXh0IGNvbnN0KToKKyAg
ICAgICAgKiBjc3MvQ1NTTGluZUJveENvbnRhaW5WYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NMaW5lQm94Q29udGFpblZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAg
KiBjc3MvQ1NTTWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNlcmlhbGl6ZVN0cmluZyk6
CisgICAgICAgIChXZWJDb3JlOjpzZXJpYWxpemVBc1N0cmluZ09yQ3VzdG9tSWRlbnQpOgorICAg
ICAgICAqIGNzcy9DU1NNZWRpYVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTWVkaWFS
dWxlOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTTmFtZXNwYWNlUnVsZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NOYW1lc3BhY2VSdWxlOjpjc3NUZXh0IGNvbnN0KToKKyAg
ICAgICAgKiBjc3MvQ1NTUGFnZVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFnZVJ1
bGU6OnNlbGVjdG9yVGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYWdlUnVsZTo6
Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpmb3JtYXROdW1iZXJGb3JDdXN0b21D
U1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5U291cmNlRGF0YTo6dG9TdHJpbmcgY29uc3Qp
OgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NT
ZWxlY3Rvcjo6c2VsZWN0b3JUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3JM
aXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yTGlzdDo6c2VsZWN0b3JzVGV4
dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU1NoYWRvd1ZhbHVlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1NoYWRvd1ZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBj
c3MvQ1NTU3R5bGVSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlUnVsZTo6Y3Nz
VGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU1N0eWxlU2hlZXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTU3R5bGVTaGVldDo6YWRkUnVsZSk6CisgICAgICAgICogY3NzL0NTU1N1cHBv
cnRzUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdXBwb3J0c1J1bGU6OmNzc1RleHQg
Y29uc3QpOgorICAgICAgICAqIGNzcy9DU1NUaW1pbmdGdW5jdGlvblZhbHVlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0N1YmljQmV6aWVyVGltaW5nRnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NT
VGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdGVwc1RpbWluZ0Z1bmN0aW9uVmFs
dWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRnJhbWVzVGlt
aW5nRnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NTcHJpbmdUaW1pbmdGdW5jdGlvblZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAg
ICAgICAgKiBjc3MvQ1NTVmFsdWVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVl
TGlzdDo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU1ZhcmlhYmxlRGF0
YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYXJpYWJsZURhdGE6OmNvbnN1bWVBbmRVcGRh
dGVUb2tlbnMpOgorICAgICAgICAqIGNzcy9ET01DU1NOYW1lc3BhY2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RE9NQ1NTTmFtZXNwYWNlOjplc2NhcGUpOgorICAgICAgICAqIGNzcy9ET01NYXRy
aXhSZWFkT25seS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01NYXRyaXhSZWFkT25seTo6dG9T
dHJpbmcgY29uc3QpOgorICAgICAgICAqIGNzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFsdWVMaXN0Ojpjc3NUZXh0IGNv
bnN0KToKKyAgICAgICAgKiBjc3MvRm9udEZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dEZhY2U6OnN0eWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGYWNlOjp3ZWlnaHQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZhY2U6OnN0cmV0Y2ggY29uc3QpOgorICAg
ICAgICAqIGNzcy9NZWRpYUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeVNl
dDo6bWVkaWFUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5OjpzZXJpYWxpemUgY29uc3QpOgorICAgICAgICAqIGNz
cy9NZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5
RXhwcmVzc2lvbjo6c2VyaWFsaXplIGNvbnN0KToKKyAgICAgICAgKiBjc3MvUmVjdC5oOgorICAg
ICAgICAqIGNzcy9TdHlsZVByb3BlcnRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQ
cm9wZXJ0aWVzOjpmb250VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9w
ZXJ0aWVzOjpnZXQ0VmFsdWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVy
dGllczo6Z2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlUHJvcGVydGllczo6Z2V0U2hvcnRoYW5kVmFsdWUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGVQcm9wZXJ0aWVzOjpib3JkZXJQcm9wZXJ0eVZhbHVlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6YXNUZXh0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlUHJvcGVydGllczo6UHJvcGVydHlSZWZlcmVuY2U6OmNzc1RleHQgY29uc3Qp
OgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NNYXRyaXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViS2l0Q1NTTWF0cml4Ojp0b1N0cmluZyBjb25zdCk6CisgICAgICAgICogY3NzL1dlYktpdENT
U1ZpZXdwb3J0UnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NWaWV3cG9ydFJ1
bGU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VGb250RmFjZURlc2NyaXB0b3IpOgor
ICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUGFyc2VyVG9rZW46OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgICogY3NzL3BhcnNl
ci9DU1NQYXJzZXJUb2tlblJhbmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlclRv
a2VuUmFuZ2U6OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9w
ZXJ0eVBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb25jYXRlbmF0ZUZhbWlseU5hbWUp
OgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VHcmlkVGVtcGxhdGVBcmVhc0NvbHVtbk5hbWVzKToK
KyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Rva2VuaXplci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NUb2tlbml6ZXI6OmNvbnN1bWVTdHJpbmdUb2tlblVudGlsKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1Rva2VuaXplcjo6Y29uc3VtZVVybFRva2VuKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1Rva2VuaXplcjo6Y29uc3VtZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9rZW5pemVy
Ojpjb25zdW1lRXNjYXBlKToKKyAgICAgICAgKiBkb20vRGF0YXNldERPTVN0cmluZ01hcC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0QXR0cmlidXRlTmFtZVRvUHJvcGVydHlOYW1lKToK
KyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpm
b3JtYXRGb3JEZWJ1Z2dlciBjb25zdCk6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Tm9kZTo6dGV4dENvbnRlbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZTo6c2hvd05vZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6dHJhdmVyc2VUcmVlQW5k
TWFyayk6CisgICAgICAgICogZG9tL1Bvc2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBv
c2l0aW9uOjpmb3JtYXRGb3JEZWJ1Z2dlciBjb25zdCk6CisgICAgICAgICogZG9tL1JhbmdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSYW5nZTo6Zm9ybWF0Rm9yRGVidWdnZXIgY29uc3QpOgorICAgICAgICAqIGRvbS9T
Y3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dGhyb3R0
bGluZ1JlYXNvbnNUb1N0cmluZyk6CisgICAgICAgICogZG9tL1NlY3VyaXR5Q29udGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eUNvbnRleHQ6OnBhcnNlU2FuZGJveFBvbGljeSk6
CisgICAgICAgICogZG9tL1RleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dDo6d2hvbGVU
ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHQ6OmZvcm1hdEZvckRlYnVnZ2VyIGNv
bnN0KToKKyAgICAgICAgKiBkb20vVGV4dE5vZGVUcmF2ZXJzYWwuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dE5vZGVUcmF2ZXJzYWw6OmNvbnRlbnRzQXNTdHJpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dE5vZGVUcmF2ZXJzYWw6OmNoaWxkVGV4dENvbnRlbnQpOgorICAgICAgICAqIGVk
aXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlTdHls
ZUNvbW1hbmQ6OmFkZEJsb2NrU3R5bGUpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdGluZy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpzdHJpbmdXaXRoUmViYWxhbmNlZFdoaXRlc3BhY2UpOgorICAg
ICAgICAqIGVkaXRpbmcvSFRNTEludGVyY2hhbmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnZlcnRIVE1MVGV4dFRvSW50ZXJjaGFuZ2VGb3JtYXQpOgorICAgICAgICAqIGVkaXRpbmcvTWFy
a3VwQWNjdW11bGF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWFya3VwQWNjdW11bGF0b3I6
OnNlcmlhbGl6ZU5vZGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1hcmt1cEFjY3VtdWxhdG9yOjpn
ZW5lcmF0ZVVuaXF1ZVByZWZpeCk6CisgICAgICAgICogZWRpdGluZy9UZXh0SXRlcmF0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6cGxhaW5UZXh0KToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGlu
Z0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6aW5wdXRFdmVu
dERhdGFUcmFuc2ZlciBjb25zdCk6CisgICAgICAgICogZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpc2libGVTZWxlY3Rpb246OmZvcm1hdEZvckRlYnVn
Z2VyIGNvbnN0KToKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW06Cisg
ICAgICAgIChXZWJDb3JlOjpkYXRhRGV0ZWN0b3JTdHJpbmdGb3JQYXRoKToKKyAgICAgICAgKiBl
ZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW06CisgICAgICAgIChIVE1MQ29udmVydGVyOjpf
cHJvY2Vzc1RleHQpOgorICAgICAgICAqIGVkaXRpbmcvbWFya3VwLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjp3cmFwV2l0aE5vZGUpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OndyYXBXaXRoU3R5bGVOb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjp0YWtlUmVzdWx0cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpzYW5pdGl6ZWRNYXJrdXBGb3JGcmFnbWVudEluRG9jdW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6dXJsVG9NYXJrdXApOgorICAgICAgICAqIGZpbGVhcGkvRmlsZVJl
YWRlckxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlUmVhZGVyTG9hZGVyOjpjb252
ZXJ0VG9EYXRhVVJMKToKKyAgICAgICAgKiBodG1sL0RPTVRva2VuTGlzdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpET01Ub2tlbkxpc3Q6OnVwZGF0ZUFzc29jaWF0ZWRBdHRyaWJ1dGVGcm9tVG9r
ZW5zKToKKyAgICAgICAgKiBodG1sL0VtYWlsSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkVtYWlsSW5wdXRUeXBlOjpzYW5pdGl6ZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBodG1s
L0ZpbGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6ZGVm
YXVsdFRvb2xUaXAgY29uc3QpOgorICAgICAgICAqIGh0bWwvRm9ybUNvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Zm9ybVNpZ25hdHVyZSk6CisgICAgICAgICogaHRtbC9IVE1MQW5j
aG9yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6aGFu
ZGxlQ2xpY2spOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUNvbnRleHQyZCk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIgY29uc3QpOgor
ICAgICAgICAqIGh0bWwvSFRNTEZvbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBh
cnNlRm9udFNpemUpOgorICAgICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50Ojpjb21wbGV0ZVVSTHNJbkF0dHJpYnV0ZVZh
bHVlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6YWN0aW9uTmFtZSk6CisgICAgICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6Y29sbGVjdE9wdGlv
bklubmVyVGV4dCBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6
c3RyaXBwZWRQbGFjZWhvbGRlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjppbm5lclRleHRW
YWx1ZUZyb20pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6
OnZhbHVlV2l0aEhhcmRMaW5lQnJlYWtzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL01lZGlhRG9j
dW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFEb2N1bWVudFBhcnNlcjo6Y3JlYXRl
RG9jdW1lbnRTdHJ1Y3R1cmUpOgorICAgICAgICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpyZXN0cmljdGlvbk5hbWUpOgorICAgICAgICAqIGh0bWwv
TWVkaWFGcmFnbWVudFVSSVBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb2xsZWN0RGln
aXRzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbGxlY3RGcmFjdGlvbik6CisgICAgICAgICogaHRt
bC9UeXBlQWhlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwZUFoZWFkOjpoYW5kbGVFdmVu
dCk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Zm9udCBjb25zdCk6
CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpnZXRJbWFn
ZURhdGEgY29uc3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuY3BwOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxTb3VyY2VUcmFja2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxTb3VyY2VUcmFja2VyOjpzb3VyY2UpOgorICAgICAgICAq
IGh0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRv
a2VuaXplcjo6cHJvY2Vzc0VudGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVy
Ojpwcm9jZXNzVG9rZW4pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXplcjo6YnVmZmVy
ZWRDaGFyYWN0ZXJzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpkZWZhdWx0Rm9ySW5U
YWJsZVRleHQpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpidWlsZENvbnNvbGVFcnJvcik6CisgICAgICAgICogaHRtbC90
cmFjay9CdWZmZXJlZExpbmVSZWFkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QnVmZmVyZWRM
aW5lUmVhZGVyOjpuZXh0TGluZSk6CisgICAgICAgICogaHRtbC90cmFjay9UcmFja0Jhc2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VHJhY2tCYXNlOjpzZXRMYW5ndWFnZSk6CisgICAgICAgICog
aHRtbC90cmFjay9WVFRDdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VlRUQ3VlOjpkZXRlcm1p
bmVUZXh0RGlyZWN0aW9uKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXZWJWVFRQYXJzZXI6OmNyZWF0ZU5ld0N1ZSk6CisgICAgICAg
ICogaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
VlRUVG9rZW5pemVyOjpuZXh0VG9rZW4pOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JT
dHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjpzaG9ydGhh
bmRWYWx1ZSBjb25zdCk6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBcHBs
aWNhdGlvbkNhY2hlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQXBwbGlj
YXRpb25DYWNoZUFnZW50OjpidWlsZE9iamVjdEZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZSk6
CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwOgor
ICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldlYkNvbnNvbGVBZ2VudDo6ZGlkRmFpbExvYWRpbmcpOgorICAgICAgICAqIGxv
YWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlQWNjZXNzQ29udHJvbFByZWZsaWdodFJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFN0
YXRpc3RpY3M6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25D
YWNoZVN0b3JhZ2U6OnN0b3JlKToKKyAgICAgICAgKiBsb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lX
ZWJBcmNoaXZlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0
ZUZyb21TZWxlY3Rpb24pOgorICAgICAgICAqIGxvYWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJj
aGl2ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZW5lcmF0ZVJhbmRvbUJvdW5kYXJ5KToKKyAg
ICAgICAgKFdlYkNvcmU6OnJlcGxhY2VOb25QcmludGFibGVDaGFyYWN0ZXJzKToKKyAgICAgICAg
KiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjp3aW5kb3dSb3VuZGVkQ29ybmVyUmFk
aXVzQ1NTIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNN
ZWRpYUFGOjpjb2xvclByb3BlcnR5Q1NTIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRp
b25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc1RleHRFZGdlQ1NTIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc0Rl
ZmF1bHRGb250Q1NTIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVy
ZW5jZXNNZWRpYUFGOjpjYXB0aW9uc1N0eWxlU2hlZXRPdmVycmlkZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjp0cmFja0Rpc3BsYXlOYW1lKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVJlZ0V4cEZvckxhYmVscyk6CisgICAgICAgICogcGFn
ZS9GcmFtZVRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVUcmVlOjp1bmlxdWVDaGls
ZE5hbWUgY29uc3QpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlldzo6bG9nTW9ja1Njcm9sbEFuaW1hdG9yTWVzc2FnZSBjb25zdCk6Cisg
ICAgICAgICogcGFnZS9QYWdlU2VyaWFsaXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
U2VyaWFsaXplcjo6c2VyaWFsaXplQ1NTU3R5bGVTaGVldCk6CisgICAgICAgICogcGFnZS9QZXJm
b3JtYW5jZUxvZ2dpbmdDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VM
b2dnaW5nQ2xpZW50OjpzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNBc1N0cmluZyk6CisgICAg
ICAgICogcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhOjpkYXRhYmFzZUlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIHBh
Z2UvV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmR1bXBTdGF0
ZSk6CisgICAgICAgICogcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnNvbGVNZXNzYWdlRm9yVmlvbGF0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dSdW5uaW5nT3JEaXNwbGF5aW5nSW5zZWN1
cmVDb250ZW50KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9BeGlzU2Nyb2xsU25hcE9mZnNl
dHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c25hcE9mZnNldHNUb1N0cmluZyk6CisgICAgICAg
IChXZWJDb3JlOjpzbmFwT2Zmc2V0UmFuZ2VzVG9TdHJpbmcpOgorICAgICAgICAqIHBhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ0Nvb3JkaW5hdG9yOjpzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNBc1RleHQpOgorICAg
ICAgICAqIHBsYXRmb3JtL0RlY2ltYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVjaW1hbDo6
dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbTo6ZW5jb2RlRm9yRmlsZU5hbWUpOgorICAgICAgICAo
V2ViQ29yZTo6RmlsZVN5c3RlbTo6ZGVjb2RlRnJvbUZpbGVuYW1lKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9QT0RJbnRlcnZhbC5oOgorICAgICAgICAqIHBsYXRmb3JtL1BPRFJlZEJsYWNrVHJlZS5o
OgorICAgICAgICAoV2ViQ29yZTo6UE9EUmVkQmxhY2tUcmVlOjpkdW1wRnJvbU5vZGUgY29uc3Qp
OgorICAgICAgICAqIHBsYXRmb3JtL1VSTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVUkw6OnNl
dEhvc3QpOgorICAgICAgICAoV2ViQ29yZTo6VVJMOjpzZXRIb3N0QW5kUG9ydCk6CisgICAgICAg
IChXZWJDb3JlOjpwZXJjZW50RW5jb2RlQ2hhcmFjdGVycyk6CisgICAgICAgICogcGxhdGZvcm0v
YW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWluZ0Z1
bmN0aW9uOjpjcmVhdGVGcm9tQ1NTVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ2xpYi9GaWxl
U3lzdGVtR2xpYi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtOjpwYXRoQnlBcHBl
bmRpbmdDb21wb25lbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb2xvcjo6c2VyaWFsaXplZCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpDb2xvcjo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvRXh0ZW5kZWRDb2xvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbmRlZENvbG9yOjpj
c3NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpub3JtYWxpemVTcGFjZXNJbnRlcm5hbCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNldHRpbmdzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6YW5pbWF0aW9uTmFt
ZUZvclRyYW5zaXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFu
ZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NDdWVBdHRyaWJ1dGVzKToKKyAgICAgICAgKFdl
YkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NOYXRpdmVTYW1wbGVzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUaWxlQ29udHJvbGxlcjo6Y3JlYXRlVGlsZUxheWVyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlR3JpZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2
YWxpZGF0aW9uUG9saWN5QXNTdHJpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
L3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyV2lu
OjpsYXllclRyZWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UZXh0
dXJlQ29waWVyQ1Y6OmluaXRpYWxpemVDb250ZXh0T2JqZWN0cyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmdlbmVyYXRlSGFzaGVkTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQzRDo6Z2V0VW5tYW5nbGVkSW5mb0xvZyk6CisgICAgICAgICogcGxhdGZv
cm0vbWFjL1Bhc3RlYm9hcmRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpqb2luUGF0aG5hbWVz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tOgorICAgICAgICAo
V2ViQ29yZTo6d2lsZGNhcmRSZWdleFBhdHRlcm5TdHJpbmcpOgorICAgICAgICAqIHBsYXRmb3Jt
L21vY2svU2Nyb2xsQW5pbWF0b3JNb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFu
aW1hdG9yTW9jazo6bW91c2VFbnRlcmVkU2Nyb2xsYmFyIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbEFuaW1hdG9yTW9jazo6bW91c2VFeGl0ZWRTY3JvbGxiYXIgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNb2NrOjptb3VzZUlzRG93bkluU2Nyb2xsYmFy
IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tCb3guY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TW9ja0JveDo6cGVla1R5cGUpOgorICAgICAgICAoV2ViQ29y
ZTo6TW9ja1RyYWNrQm94OjpNb2NrVHJhY2tCb3gpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvSFRUUFBhcnNlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXh0cmFjdE1JTUVUeXBlRnJv
bU1lZGlhVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjp0b1N0cmluZyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9tYWMvQ29va2llSmFyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29va2llc0ZvclNlc3Np
b24pOgorICAgICAgICAqIHBsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnRzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS90ZXh0L0RlY29kZUVzY2FwZVNlcXVlbmNlcy5oOgorICAgICAgICAo
V2ViQ29yZTo6VW5pY29kZTE2Qml0RXNjYXBlU2VxdWVuY2U6OmRlY29kZVJ1bik6CisgICAgICAg
IChXZWJDb3JlOjpkZWNvZGVFc2NhcGVTZXF1ZW5jZXMpOgorICAgICAgICAqIHBsYXRmb3JtL3Rl
eHQvUGxhdGZvcm1Mb2NhbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlOjpjb252ZXJ0
VG9Mb2NhbGl6ZWROdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlOjpjb252ZXJ0RnJv
bUxvY2FsaXplZE51bWJlcik6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbGU6OmZvcm1hdERhdGVU
aW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmluZy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
Q29kZWNJQ1U6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVc2Vy
RGVmaW5lZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q29kZWNVc2VyRGVmaW5lZDo6ZGVj
b2RlKToKKyAgICAgICAgKiBwbHVnaW5zL0RPTU1pbWVUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRPTU1pbWVUeXBlOjpzdWZmaXhlcyBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpuYW1lIGNvbnN0
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6bG9nTGF5ZXJJbmZvKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjps
aXN0TWFya2VyVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0TWFya2VyOjpwYWlu
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y2FwaXRhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjptYXhXb3JkRnJhZ21lbnRXaWR0aCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6cXVvdGVBbmRFc2NhcGVOb25QcmludGFibGVzKToKKyAgICAgICAgKFdlYkNvcmU6Om5v
ZGVQb3NpdGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5j
ZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWF0aE1MRmVuY2VkOjp1cGRhdGVGcm9t
RWxlbWVudCk6CisgICAgICAgICogcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVy
TWF0aE1MLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVCdWlsZGVyOjpNYXRoTUw6
OmF0dGFjaCk6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTGVuZ3RoTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZyBjb25zdCk6Cisg
ICAgICAgICogc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTnVtYmVyTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgICogc3Zn
L1NWR1BhdGhTdHJpbmdCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTdHJp
bmdCdWlsZGVyOjpyZXN1bHQpOgorICAgICAgICAqIHN2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkU3RyaW5nRnJvbVBhdGgpOgorICAgICAgICAqIHN2Zy9T
VkdQb2ludExpc3RWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9pbnRMaXN0VmFs
dWVzOjp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHU3RyaW5nTGlzdFZh
bHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHJpbmdMaXN0VmFsdWVzOjp2YWx1ZUFz
U3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5n
IGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtVmFsdWUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHVHJhbnNmb3JtVmFsdWU6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAg
ICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFBvaW50Pjo6dG9TdHJpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0Pjo6dG9TdHJpbmcpOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZHVt
cE1hcmtlclJlY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cGFyc2VyTWV0YURh
dGEpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpnZXRDdXJyZW50Q3Vyc29ySW5mbyk6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om1lZGlhU2Vzc2lvblJlc3RyaWN0aW9ucyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnBhZ2VNZWRpYVN0YXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2Nyb2xsU25hcE9mZnNldHMpOgorICAgICAgICAq
IHRlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1v
Y2tQYWdlT3ZlcmxheUNsaWVudDo6ZHJhd1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1Bh
Z2VPdmVybGF5Q2xpZW50Ojptb3VzZUV2ZW50KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclNj
cmlwdExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRMb2FkZXI6OnNj
cmlwdCk6CisgICAgICAgICogeG1sL1hNTEVycm9ycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpY
TUxFcnJvcnM6Omluc2VydEVycm9yTWVzc2FnZUJsb2NrKToKKyAgICAgICAgKiB4bWwvWE1MSHR0
cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmdldEFsbFJl
c3BvbnNlSGVhZGVycyBjb25zdCk6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0Lmg6Cisg
ICAgICAgICogeG1sL1hQYXRoRnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRo
OjphdG9taWNTdWJzdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OkZ1bklkOjpldmFs
dWF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6RnVuQ29uY2F0OjpldmFsdWF0
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6RnVuVHJhbnNsYXRlOjpldmFsdWF0
ZSBjb25zdCk6CisgICAgICAgICogeG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnNhdmVSZXN1bHRUb1N0cmluZyk6CisgICAgICAgICogeG1sL3BhcnNlci9D
aGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVzLmg6CisgICAgICAgIChXZWJDb3JlOjp1bmNv
bnN1bWVDaGFyYWN0ZXJzKToKKwogMjAxOC0wNC0zMCAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBh
cHBsZS5jb20+CiAKICAgICAgICAgVXNlIHNvbWUgQysrMTcgZmVhdHVyZXMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudENvbnRhY3RDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudENvbnRh
Y3RDb2NvYS5tbQppbmRleCAzYmU2MjEwLi4wOTc4NGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRDb250YWN0Q29jb2EubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50Q29udGFjdENvY29h
Lm1tCkBAIC0xNTQsNyArMTU0LDEwIEBAIHN0YXRpYyBSZXRhaW5QdHI8UEtDb250YWN0PiBjb252
ZXJ0KHVuc2lnbmVkIHZlcnNpb24sIGNvbnN0IEFwcGxlUGF5UGF5bWVudENvbnRhCiAgICAgICAg
IH0KIAogICAgICAgICAvLyBGSVhNRTogU3RyaW5nQnVpbGRlciBzaG91bGQgaGF2YSBhIHRvTlNT
dHJpbmcoKSBmdW5jdGlvbiB0byBhdm9pZCB0aGUgZXh0cmEgU3RyaW5nIGFsbG9jYXRpb24uCi0g
ICAgICAgIFthZGRyZXNzIHNldFN0cmVldDpidWlsZGVyLnRvU3RyaW5nKCldOworICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBbYWRkcmVz
cyBzZXRTdHJlZXQ6KnN0cmluZ107CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7
CiAKICAgICAgICAgaWYgKCFjb250YWN0LnN1YkxvY2FsaXR5LmlzRW1wdHkoKSkKICAgICAgICAg
ICAgIHNldFN1YkxvY2FsaXR5KGFkZHJlc3MuZ2V0KCksIGNvbnRhY3Quc3ViTG9jYWxpdHkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0
ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0u
Y3BwCmluZGV4IDhlNTA2NmQuLjliMzYwYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VudHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAKQEAgLTIxNiw3ICsyMTYsOSBAQCBz
dGF0aWMgU3RyaW5nIHJlc29sdmVSZWxhdGl2ZVZpcnR1YWxQYXRoKFN0cmluZ1ZpZXcgYmFzZVZp
cnR1YWxQYXRoLCBTdHJpbmdWaWV3CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcvJyk7CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKHNlZ21lbnQpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogLy8gaHR0cHM6Ly93aWNn
LmdpdGh1Yi5pby9lbnRyaWVzLWFwaS8jZXZhbHVhdGUtYS1wYXRoCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCmluZGV4IGRjYmY3MDMu
LjZjYWFjNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24v
R2VvbG9jYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24v
R2VvbG9jYXRpb24uY3BwCkBAIC0zNDAsNyArMzQwLDEwIEBAIHN0YXRpYyB2b2lkIGxvZ0Vycm9y
KGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBjb25zdCBib29sIGlzU2VjdXJlLCBjb25zdCBib29sIGlz
TWl4CiAgICAgCiAgICAgbWVzc2FnZS5hcHBlbmQodGFyZ2V0KTsKICAgICBtZXNzYWdlLmFwcGVu
ZCgiLlxuIik7Ci0gICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6
OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBtZXNzYWdlLnRvU3RyaW5nKCkpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IG1lc3NhZ2UudG9TdHJpbmcoKSkKKyAgICAgICAgZG9jdW1lbnQt
PmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6
OkVycm9yLCAqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIC8vIEZJ
WE1FOiByZW1vdmUgdGhpcyBmdW5jdGlvbiB3aGVuIHJkYXI6Ly9wcm9ibGVtLzMyMTM3ODIxIGlz
IGZpeGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
S2V5RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRh
LmNwcAppbmRleCAyZTkzNjQ1Li43MjEyOTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmNwcApAQCAtMzMyLDcgKzMzMiwxMCBAQCBTdHJpbmcg
SURCS2V5RGF0YTo6bG9nZ2luZ1N0cmluZygpIGNvbnN0CiAgICAgICAgICAgICAgICAgYnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCIsICIpOwogICAgICAgICB9CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiIH0iKTsKLSAgICAgICAgcmVzdWx0ID0gYnVpbGRlci50b1N0cmluZygpOworICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBy
ZXN1bHQgPSAqc3RyaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAg
ICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBLZXlUeXBlOjpCaW5hcnk6IHsKQEAgLTM0Miw3
ICszNDUsMTAgQEAgU3RyaW5nIElEQktleURhdGE6OmxvZ2dpbmdTdHJpbmcoKSBjb25zdAogICAg
ICAgICBhdXRvKiBkYXRhID0gV1RGOjpnZXQ8VGhyZWFkU2FmZURhdGFCdWZmZXI+KG1fdmFsdWUp
LmRhdGEoKTsKICAgICAgICAgaWYgKCFkYXRhKSB7CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZCgiKG51bGwpIik7Ci0gICAgICAgICAgICByZXN1bHQgPSBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICAgICAgcmVzdWx0ID0gKnN0cmluZzsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICBDUkFTSCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApAQCAtMzUzLDcg
KzM1OSwxMCBAQCBTdHJpbmcgSURCS2V5RGF0YTo6bG9nZ2luZ1N0cmluZygpIGNvbnN0CiAgICAg
ICAgIGlmIChkYXRhLT5zaXplKCkgPiA4KQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIi4u
LiIpOwogCi0gICAgICAgIHJlc3VsdCA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmVzdWx0ID0g
KnN0cmluZzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgYnJl
YWs7CiAgICAgfQogICAgIGNhc2UgS2V5VHlwZTo6U3RyaW5nOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UGF0aC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlQYXRoLmNwcAppbmRleCA3NmViZWIzLi44YjlmYjE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlQYXRo
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlQYXRoLmNw
cApAQCAtMjQxLDcgKzI0MSw5IEBAIFN0cmluZyBsb2dnaW5nU3RyaW5nKGNvbnN0IElEQktleVBh
dGgmIHBhdGgpCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHN0cmluZ3MubGFzdCgpKTsKICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoIiA+Iik7CiAKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfSk7CiAKICAg
ICByZXR1cm4gV1RGOjp2aXNpdCh2aXNpdG9yLCBwYXRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRleFZhbHVlU3RvcmUuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0luZGV4VmFsdWVTdG9yZS5jcHAK
aW5kZXggNjk4M2M5ZC4uODBkNmIzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL0luZGV4VmFsdWVTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0luZGV4VmFsdWVTdG9yZS5jcHAKQEAgLTQwOSw3
ICs0MDksOSBAQCBTdHJpbmcgSW5kZXhWYWx1ZVN0b3JlOjpsb2dnaW5nU3RyaW5nKCkgY29uc3QK
ICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV9yZWNvcmRzLmdldChrZXkpLT5nZXRDb3Vu
dCgpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgZW50cmllcyIpOwogICAgIH0K
LSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvU1FMaXRlSURCQ3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9TUUxpdGVJREJDdXJzb3IuY3BwCmluZGV4IGYyMGRiODcuLmE0YzMwZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxp
dGVJREJDdXJzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9TUUxpdGVJREJDdXJzb3IuY3BwCkBAIC0xNDEsNyArMTQxLDkgQEAgc3RhdGljIFN0cmlu
ZyBidWlsZEluZGV4U3RhdGVtZW50KGNvbnN0IElEQktleVJhbmdlRGF0YSYga2V5UmFuZ2UsIElu
ZGV4ZWREQjo6Q3UKIAogICAgIGJ1aWxkZXIuYXBwZW5kKCc7Jyk7CiAKLSAgICByZXR1cm4gYnVp
bGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0
cmluZyBidWlsZE9iamVjdFN0b3JlU3RhdGVtZW50KGNvbnN0IElEQktleVJhbmdlRGF0YSYga2V5
UmFuZ2UsIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uIGN1cnNvckRpcmVjdGlvbikKQEAgLTE2
OSw3ICsxNzEsOSBAQCBzdGF0aWMgU3RyaW5nIGJ1aWxkT2JqZWN0U3RvcmVTdGF0ZW1lbnQoY29u
c3QgSURCS2V5UmFuZ2VEYXRhJiBrZXlSYW5nZSwgSW5kZXhlZAogCiAgICAgYnVpbGRlci5hcHBl
bmQoJzsnKTsKIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBib29sIFNRTGl0ZUlEQkN1cnNvcjo6ZXN0YWJsaXNoU3RhdGVtZW50
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9J
REJEYXRhYmFzZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0lEQkRhdGFiYXNlSW5mby5jcHAKaW5kZXggZTVkZjE1Yy4uNzY5MzRkNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5m
by5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRh
dGFiYXNlSW5mby5jcHAKQEAgLTE2OSw3ICsxNjksOSBAQCBTdHJpbmcgSURCRGF0YWJhc2VJbmZv
Ojpsb2dnaW5nU3RyaW5nKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7CiAg
ICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2hhcmVkL0lEQk9iamVjdFN0b3JlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCT2JqZWN0U3RvcmVJbmZvLmNwcAppbmRleCBiMDA3
NWZlLi44ZDhmYWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zaGFyZWQvSURCT2JqZWN0U3RvcmVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCT2JqZWN0U3RvcmVJbmZvLmNwcApAQCAtMTQ4LDcgKzE0
OCw5IEBAIFN0cmluZyBJREJPYmplY3RTdG9yZUluZm86OmxvZ2dpbmdTdHJpbmcoaW50IGluZGVu
dCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7CiAgICAgfQogCi0gICAgcmV0
dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0
cmluZyBJREJPYmplY3RTdG9yZUluZm86OmNvbmRlbnNlZExvZ2dpbmdTdHJpbmcoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFT
ZXNzaW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9X
ZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAppbmRleCA0MjA5ZmZhLi45NmZlYmM4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25N
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyLmNwcApAQCAtODksNyArODksOSBAQCBzdGF0aWMgU3RyaW5nIG1l
ZGlhUHJvZHVjZXJTdGF0ZVN0cmluZyhNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgZmxh
Z3MpCiAgICAgZWxzZQogICAgICAgICBzdHJpbmcucmVzaXplKHN0cmluZy5sZW5ndGgoKSAtIDIp
OwogCi0gICAgcmV0dXJuIHN0cmluZy50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0ciA9IHN0
cmluZy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cjsKKyAgICBDUkFTSCgpOwogfQog
I2VuZGlmCiAKQEAgLTM4MSw3ICszODMsOSBAQCBTdHJpbmcgV2ViTWVkaWFTZXNzaW9uTWFuYWdl
cjo6dG9TdHJpbmcoQ29uZmlndXJhdGlvblRhc2tzIHRhc2tzKQogICAgIGVsc2UKICAgICAgICAg
c3RyaW5nLnJlc2l6ZShzdHJpbmcubGVuZ3RoKCkgLSAyKTsKICAgICAKLSAgICByZXR1cm4gc3Ry
aW5nLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyID0gc3RyaW5nLnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiAqc3RyOworICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tl
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlv
bkJhY2tlbmQuY3BwCmluZGV4IGRjNTFiYjUuLmRiZWNkNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5jcHAKQEAgLTQwMyw3ICs0MDMsOSBAQCBzdGF0aWMgU3RyaW5nIGZpbHRlcklDRUNhbmRpZGF0
ZShTdHJpbmcmJiBzZHApCiAgICAgICAgICAgICBmaWx0ZXJlZFNEUC5hcHBlbmQoJyAnKTsKICAg
ICAgICAgZmlsdGVyZWRTRFAuYXBwZW5kKGl0ZW0pOwogICAgIH0pOwotICAgIHJldHVybiBmaWx0
ZXJlZFNEUC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGZpbHRlcmVkU0RQLnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0
cmluZyBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmZpbHRlclNEUChTdHJpbmcmJiBzZHApIGNvbnN0
CkBAIC00MjEsNyArNDIzLDkgQEAgU3RyaW5nIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6ZmlsdGVy
U0RQKFN0cmluZyYmIHNkcCkgY29uc3QKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgZmls
dGVyZWRTRFAuYXBwZW5kKCdcbicpOwogICAgIH0pOwotICAgIHJldHVybiBmaWx0ZXJlZFNEUC50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGZpbHRlcmVkU0RQLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgUGVlckNv
bm5lY3Rpb25CYWNrZW5kOjpuZXdJQ0VDYW5kaWRhdGUoU3RyaW5nJiYgc2RwLCBTdHJpbmcmJiBt
aWQsIHVuc2lnbmVkIHNob3J0IHNkcE1MaW5lSW5kZXgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCmlu
ZGV4IGM5MTcxZGMuLjQyN2Y0ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
cGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCkBAIC0zMzMsNyAr
MzMzLDkgQEAgU3RyaW5nIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6eW91VHViZVVSTEZyb21B
YnNvbHV0ZVVSTChjb25zdCBVUkwmIHNyY1VSTCwgY28KICAgICAgICAgZmluYWxVUkwuYXBwZW5k
KCc/Jyk7CiAgICAgICAgIGZpbmFsVVJMLmFwcGVuZChxdWVyeSk7CiAgICAgfQotICAgIHJldHVy
biBmaW5hbFVSTC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGZpbmFsVVJMLnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAgICAg
CiBib29sIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6c3VwcG9ydHNVUkwoY29uc3QgVVJMJiB1
cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFi
YXNlVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFi
YXNlVHJhY2tlci5jcHAKaW5kZXggOGZkYTYyYS4uOThmMzA4ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcApAQCAt
MzIwLDcgKzMyMCw5IEBAIHN0YXRpYyBTdHJpbmcgZ2VuZXJhdGVEYXRhYmFzZUZpbGVOYW1lKCkK
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkpOwog
ICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLmRiIik7CiAKLSAgICByZXR1cm4gc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogU3RyaW5nIERhdGFiYXNlVHJhY2tlcjo6ZnVsbFBhdGhGb3JEYXRhYmFzZU5vTG9jayhjb25z
dCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNy
ZWF0ZUlmTm90RXhpc3RzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0LmNwcAppbmRleCAwMjQ3N2I5Li5lYWIyNTMxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApAQCAtMTA1LDcgKzEwNSw5IEBA
IHN0YXRpYyBTdHJpbmcgZW5jb2RlUHJvdG9jb2xTdHJpbmcoY29uc3QgU3RyaW5nJiBwcm90b2Nv
bCkKICAgICAgICAgZWxzZQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQocHJvdG9jb2xbaV0p
OwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBqb2luU3RyaW5ncyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgc3RyaW5ncywgY29uc3QgY2hhciogc2VwYXJhdG9yKQpAQCAtMTE2LDcgKzExOCw5IEBA
IHN0YXRpYyBTdHJpbmcgam9pblN0cmluZ3MoY29uc3QgVmVjdG9yPFN0cmluZz4mIHN0cmluZ3Ms
IGNvbnN0IGNoYXIqIHNlcGFyYXRvcikKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHNlcGFy
YXRvcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHN0cmluZ3NbaV0pOwogICAgIH0KLSAgICBy
ZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAog
c3RhdGljIHVuc2lnbmVkIHNhdHVyYXRlQWRkKHVuc2lnbmVkIGEsIHVuc2lnbmVkIGIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5z
aW9uRGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHAKaW5kZXggZmNjOWRjMy4uNmM0MGM0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVu
c2lvbkRpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcApAQCAtNjgsNyArNjgsOSBAQCBjb25z
dCBTdHJpbmcgV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlcjo6Y3JlYXRlSGVhZGVyVmFsdWUo
KSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgIik7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKG1fcHJvY2Vzc29yc1tpXS0+aGFuZHNoYWtlU3RyaW5nKCkpOwogICAgIH0K
LSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogdm9pZCBXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyOjphcHBlbmRBY2NlcHRlZEV4
dGVuc2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lvblRva2VuLCBIYXNoTWFwPFN0cmluZywgU3Ry
aW5nPiYgZXh0ZW5zaW9uUGFyYW1ldGVycykKQEAgLTEzOSw3ICsxNDEsOSBAQCBTdHJpbmcgV2Vi
U29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlcjo6YWNjZXB0ZWRFeHRlbnNpb25zKCkgY29uc3QKIHsK
ICAgICBpZiAobV9hY2NlcHRlZEV4dGVuc2lvbnNCdWlsZGVyLmlzRW1wdHkoKSkKICAgICAgICAg
cmV0dXJuIFN0cmluZygpOwotICAgIHJldHVybiBtX2FjY2VwdGVkRXh0ZW5zaW9uc0J1aWxkZXIu
dG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbV9hY2Nl
cHRlZEV4dGVuc2lvbnNCdWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgV2ViU29ja2V0RXh0
ZW5zaW9uRGlzcGF0Y2hlcjo6ZmFpbHVyZVJlYXNvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCmlu
ZGV4IDU0NTVjZDEuLjA4M2E5MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCkBAIC03MiwxMCArNzIsMTMg
QEAgc3RhdGljIFN0cmluZyByZXNvdXJjZU5hbWUoY29uc3QgVVJMJiB1cmwpCiAgICAgICAgIG5h
bWUuYXBwZW5kKCc/Jyk7CiAgICAgICAgIG5hbWUuYXBwZW5kKHVybC5xdWVyeSgpKTsKICAgICB9
Ci0gICAgU3RyaW5nIHJlc3VsdCA9IG5hbWUudG9TdHJpbmcoKTsKLSAgICBBU1NFUlQoIXJlc3Vs
dC5pc0VtcHR5KCkpOwotICAgIEFTU0VSVCghcmVzdWx0LmNvbnRhaW5zKCcgJykpOwotICAgIHJl
dHVybiByZXN1bHQ7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbmFtZS50b1N0cmluZygpKSB7Cisg
ICAgICAgIFN0cmluZyByZXN1bHQgPSAqc3RyaW5nOworICAgICAgICBBU1NFUlQoIXJlc3VsdC5p
c0VtcHR5KCkpOworICAgICAgICBBU1NFUlQoIXJlc3VsdC5jb250YWlucygnICcpKTsKKyAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmlu
ZyBob3N0TmFtZShjb25zdCBVUkwmIHVybCwgYm9vbCBzZWN1cmUpCkBAIC04Nyw3ICs5MCw5IEBA
IHN0YXRpYyBTdHJpbmcgaG9zdE5hbWUoY29uc3QgVVJMJiB1cmwsIGJvb2wgc2VjdXJlKQogICAg
ICAgICBidWlsZGVyLmFwcGVuZCgnOicpOwogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih1
cmwucG9ydCgpLnZhbHVlKCkpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIGNvbnN0IHNpemVfdCBtYXhJ
bnB1dFNhbXBsZVNpemUgPSAxMjg7CkBAIC0xNzYsNyArMTgxLDkgQEAgU3RyaW5nIFdlYlNvY2tl
dEhhbmRzaGFrZTo6Y2xpZW50TG9jYXRpb24oKSBjb25zdAogICAgIGJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiOi8vIik7CiAgICAgYnVpbGRlci5hcHBlbmQoaG9zdE5hbWUobV91cmwsIG1fc2VjdXJl
KSk7CiAgICAgYnVpbGRlci5hcHBlbmQocmVzb3VyY2VOYW1lKG1fdXJsKSk7Ci0gICAgcmV0dXJu
IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIENTdHJp
bmcgV2ViU29ja2V0SGFuZHNoYWtlOjpjbGllbnRIYW5kc2hha2VNZXNzYWdlKCkgY29uc3QKQEAg
LTIyNiw3ICsyMzMsOSBAQCBDU3RyaW5nIFdlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZW50SGFuZHNo
YWtlTWVzc2FnZSgpIGNvbnN0CiAKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxyXG4iKTsK
IAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0cmluZy0+dXRmOCgp
OworICAgIENSQVNIKCk7CiB9CiAKIFJlc291cmNlUmVxdWVzdCBXZWJTb2NrZXRIYW5kc2hha2U6
OmNsaWVudEhhbmRzaGFrZVJlcXVlc3QoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCBkYjg1
NzVlLi5jNGEyNTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcApAQCAtMTcxMywxMSArMTcxMywxMyBAQCBz
dGF0aWMgYm9vbCBzaG91bGRVc2VBY2Nlc3NpYmlsaXR5T2JqZWN0SW5uZXJUZXh0KEFjY2Vzc2li
aWxpdHlPYmplY3QqIG9iaiwgQWNjZQogCiBzdGF0aWMgYm9vbCBzaG91bGRBZGRTcGFjZUJlZm9y
ZUFwcGVuZGluZ05leHRFbGVtZW50KFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIGNvbnN0IFN0cmlu
ZyYgY2hpbGRUZXh0KQogeworICAgIGlmIChidWlsZGVyLmZhaWxlZCgpKQorICAgICAgICBDUkFT
SCgpOworCiAgICAgaWYgKCFidWlsZGVyLmxlbmd0aCgpIHx8ICFjaGlsZFRleHQubGVuZ3RoKCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKLQogICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gYWRkIGFu
IGFkZGl0aW9uYWwgc3BhY2UgYmVmb3JlIG9yIGFmdGVyIGEgbGluZSBicmVhay4KLSAgICByZXR1
cm4gIShpc0hUTUxMaW5lQnJlYWsoY2hpbGRUZXh0WzBdKSB8fCBpc0hUTUxMaW5lQnJlYWsoYnVp
bGRlcltidWlsZGVyLmxlbmd0aCgpIC0gMV0pKTsKKyAgICByZXR1cm4gIShpc0hUTUxMaW5lQnJl
YWsoY2hpbGRUZXh0WzBdKSB8fCBpc0hUTUxMaW5lQnJlYWsoKmJ1aWxkZXJbYnVpbGRlci5sZW5n
dGgoKSAtIDFdKSk7CiB9CiAgICAgCiBzdGF0aWMgdm9pZCBhcHBlbmROYW1lVG9TdHJpbmdCdWls
ZGVyKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIGNvbnN0IFN0cmluZyYgdGV4dCkKQEAgLTE3Njks
NyArMTc3MSw5IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dGV4dFVuZGVyRWxl
bWVudChBY2Nlc3NpYmlsaXR5VGV4dFVuZGVyRWxlbWVudE1vCiAgICAgICAgICAgICBhcHBlbmRO
YW1lVG9TdHJpbmdCdWlsZGVyKGJ1aWxkZXIsIGNoaWxkVGV4dCk7CiAgICAgfQogCi0gICAgcmV0
dXJuIGJ1aWxkZXIudG9TdHJpbmcoKS5zdHJpcFdoaXRlU3BhY2UoKS5zaW1wbGlmeVdoaXRlU3Bh
Y2UoaXNIVE1MU3BhY2VCdXROb3RMaW5lQnJlYWspOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0cmluZy0+c3RyaXBXaGl0ZVNwYWNl
KCkuc2ltcGxpZnlXaGl0ZVNwYWNlKGlzSFRNTFNwYWNlQnV0Tm90TGluZUJyZWFrKTsKKyAgICBD
UkFTSCgpOwogfQogCiBTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRpdGxlKCkgY29u
c3QKQEAgLTE5ODUsNyArMTk4OSw5IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6
YWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uRm9yQ2hpbGRyZW4oKSBjb25zdAogICAgICAgICB9CiAg
ICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAKIFN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWNjZXNzaWJpbGl0
eURlc2NyaXB0aW9uRm9yRWxlbWVudHMoVmVjdG9yPEVsZW1lbnQqPiAmZWxlbWVudHMpIGNvbnN0
CkBAIC0xOTk0LDcgKzIwMDAsOSBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmFj
Y2Vzc2liaWxpdHlEZXNjcmlwdGlvbkZvckVsZW1lbnRzKFZlY3RvcjxFbGVtZQogICAgIHVuc2ln
bmVkIHNpemUgPSBlbGVtZW50cy5zaXplKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IHNpemU7ICsraSkKICAgICAgICAgYXBwZW5kTmFtZVRvU3RyaW5nQnVpbGRlcihidWlsZGVyLCBh
Y2Nlc3NpYmxlTmFtZUZvck5vZGUoZWxlbWVudHNbaV0sIG5vZGUoKSkpOwotICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcg
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmFyaWFEZXNjcmliZWRCeUF0dHJpYnV0ZSgpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcAppbmRleCAxOTI4MTcyLi43YzhkOThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTEzODgsOCArMTM4
OCwxMCBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3RyaW5nRm9yUmFuZ2UoUmVmUHRy
PFJhbmdlPiByYW5nZSkgY29uc3QKICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChvYmpl
Y3RSZXBsYWNlbWVudENoYXJhY3Rlcik7CiAgICAgICAgIH0KICAgICB9Ci0gICAgCi0gICAgcmV0
dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAog
U3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN0cmluZ0ZvclZpc2libGVQb3NpdGlvblJhbmdl
KGNvbnN0IFZpc2libGVQb3NpdGlvblJhbmdlJiB2aXNpYmxlUG9zaXRpb25SYW5nZSkKQEAgLTE0
MTUsNyArMTQxNyw5IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdHJpbmdGb3JWaXNp
YmxlUG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zaXRpb25SCiAgICAgICAgIH0KICAgICB9
CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogaW50IEFjY2Vzc2liaWxpdHlPYmplY3Q6Omxlbmd0aEZvclZpc2libGVQb3NpdGlv
blJhbmdlKGNvbnN0IFZpc2libGVQb3NpdGlvblJhbmdlJiB2aXNpYmxlUG9zaXRpb25SYW5nZSkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KaW5kZXggYTEwMmQz
Ni4uOTMyZDExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KQEAg
LTI0MDksNyArMjQwOSw5IEBAIC0gKE5TU3RyaW5nICopdmFsdWVEZXNjcmlwdGlvbkZvck1ldGVy
CiAgICAgICAgIGlmIChidWlsZGVyLmxlbmd0aCgpKQogICAgICAgICAgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCIsICIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChnYXVnZVJlZ2lvblZhbHVl
KTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogI2VuZGlmCiAgICAgcmV0dXJuIHZhbHVlRGVzY3Jp
cHRpb247CkBAIC0zODczLDggKzM4NzUsMTEgQEAgc3RhdGljIHZvaWQgZm9ybWF0Rm9yRGVidWdn
ZXIoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2UmIHJhbmdlLCBjaGFyKiBidWZmZXIsIHUKICAg
ICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiIHRvICIpOwogICAgIHJhbmdlLmVuZC5mb3JtYXRGb3JE
ZWJ1Z2dlcihmb3JtYXQsIEZvcm1hdEJ1ZmZlclNpemUpOwogICAgIHJlc3VsdC5hcHBlbmQoZm9y
bWF0KTsKLSAgICAKLSAgICBzdHJsY3B5KGJ1ZmZlciwgcmVzdWx0LnRvU3RyaW5nKCkudXRmOCgp
LmRhdGEoKSwgbGVuZ3RoKTsKKworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmlu
ZygpKQorICAgICAgICBzdHJsY3B5KGJ1ZmZlciwgc3RyaW5nLT51dGY4KCkuZGF0YSgpLCBsZW5n
dGgpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRTdHJpbmdzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFN0cmluZ3MuY3BwCmluZGV4IDdk
MmRlMTguLjFlMDRhMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NQ29udmVydFN0cmluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NQ29udmVydFN0cmluZ3MuY3BwCkBAIC05MSw3ICs5MSw5IEBAIHN0YXRpYyBpbmxpbmUgU3Ry
aW5nIHN0cmluZ1RvVVNWU3RyaW5nKFN0cmluZyYmIHN0cmluZykKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgcmVzdWx0LmFwcGVuZChjb2RlUG9pbnQpOwogICAgIH0KLSAgICByZXR1cm4gcmVz
dWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBpZGVu
dGlmaWVyVG9VU1ZTdHJpbmcoRXhlY1N0YXRlJiwgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmll
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9u
SGFuZGxpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25I
YW5kbGluZy5jcHAKaW5kZXggODk1YTMwMC4uMDdmYjczOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAKQEAgLTIxMSw3
ICsyMTEsOSBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIHRocm93QXJndW1lbnRNdXN0QmVFbnVtRXJy
b3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OlRocgogICAgIGFwcGVuZEFyZ3VtZW50TXVz
dEJlKGJ1aWxkZXIsIGFyZ3VtZW50SW5kZXgsIGFyZ3VtZW50TmFtZSwgZnVuY3Rpb25JbnRlcmZh
Y2VOYW1lLCBmdW5jdGlvbk5hbWUpOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgib25lIG9m
OiAiKTsKICAgICBidWlsZGVyLmFwcGVuZChleHBlY3RlZFZhbHVlcyk7Ci0gICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoJnN0YXRlLCBzY29wZSwgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUsICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAK
IEpTQzo6RW5jb2RlZEpTVmFsdWUgdGhyb3dBcmd1bWVudE11c3RCZUZ1bmN0aW9uRXJyb3IoSlND
OjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OlRocm93U2NvcGUmIHNjb3BlLCB1bnNpZ25lZCBhcmd1
bWVudEluZGV4LCBjb25zdCBjaGFyKiBhcmd1bWVudE5hbWUsIGNvbnN0IGNoYXIqIGludGVyZmFj
ZU5hbWUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSkKQEAgLTIxOSw3ICsyMjEsOSBAQCBKU0M6
OkVuY29kZWRKU1ZhbHVlIHRocm93QXJndW1lbnRNdXN0QmVGdW5jdGlvbkVycm9yKEpTQzo6RXhl
Y1N0YXRlJiBzdGF0ZSwgSlNDOgogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBhcHBl
bmRBcmd1bWVudE11c3RCZShidWlsZGVyLCBhcmd1bWVudEluZGV4LCBhcmd1bWVudE5hbWUsIGlu
dGVyZmFjZU5hbWUsIGZ1bmN0aW9uTmFtZSk7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJh
IGZ1bmN0aW9uIik7Ci0gICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoJnN0YXRlLCBzY29wZSwg
YnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUsICpz
dHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIEpTQzo6RW5jb2RlZEpTVmFsdWUgdGhyb3dBcmd1
bWVudFR5cGVFcnJvcihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6VGhyb3dTY29wZSYgc2Nv
cGUsIHVuc2lnbmVkIGFyZ3VtZW50SW5kZXgsIGNvbnN0IGNoYXIqIGFyZ3VtZW50TmFtZSwgY29u
c3QgY2hhciogZnVuY3Rpb25JbnRlcmZhY2VOYW1lLCBjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUs
IGNvbnN0IGNoYXIqIGV4cGVjdGVkVHlwZSkKQEAgLTIyOCw3ICsyMzIsOSBAQCBKU0M6OkVuY29k
ZWRKU1ZhbHVlIHRocm93QXJndW1lbnRUeXBlRXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBK
U0M6OlRocm93U2NvcAogICAgIGFwcGVuZEFyZ3VtZW50TXVzdEJlKGJ1aWxkZXIsIGFyZ3VtZW50
SW5kZXgsIGFyZ3VtZW50TmFtZSwgZnVuY3Rpb25JbnRlcmZhY2VOYW1lLCBmdW5jdGlvbk5hbWUp
OwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiYW4gaW5zdGFuY2Ugb2YgIik7CiAgICAgYnVp
bGRlci5hcHBlbmQoZXhwZWN0ZWRUeXBlKTsKLSAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcigm
c3RhdGUsIHNjb3BlLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoJnN0
YXRlLCBzY29wZSwgKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCB0aHJvd0F0dHJp
YnV0ZVR5cGVFcnJvcihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6VGhyb3dTY29wZSYgc2Nv
cGUsIGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIGF0dHJpYnV0ZU5hbWUs
IGNvbnN0IGNoYXIqIGV4cGVjdGVkVHlwZSkKQEAgLTI0NSw3ICsyNTEsOSBAQCBKU0M6OkVuY29k
ZWRKU1ZhbHVlIHRocm93UmVxdWlyZWRNZW1iZXJUeXBlRXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0
YXRlLCBKU0M6OlRocgogICAgIGJ1aWxkZXIuYXBwZW5kKG1lbWJlck5hbWUpOwogICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiIGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9m
ICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKGV4cGVjdGVkVHlwZSk7Ci0gICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoJnN0YXRlLCBzY29wZSwgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUsICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIEpT
Qzo6RW5jb2RlZEpTVmFsdWUgdGhyb3dDb25zdHJ1Y3RvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHRV
bmF2YWlsYWJsZUVycm9yKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpUaHJvd1Njb3BlJiBz
Y29wZSwgY29uc3QgY2hhciogaW50ZXJmYWNlTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db21iaW5lZFVSTEZpbHRlcnMuY3BwCmluZGV4IDc1NThi
MjIuLjI5ZGU1MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25z
L0NvbWJpbmVkVVJMRmlsdGVycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVu
c2lvbnMvQ29tYmluZWRVUkxGaWx0ZXJzLmNwcApAQCAtMTA3LDcgKzEwNyw5IEBAIHN0YXRpYyBT
dHJpbmcgcHJlZml4VHJlZVZlcnRleFRvU3RyaW5nKGNvbnN0IFByZWZpeFRyZWVWZXJ0ZXgmIHZl
cnRleCwgY29uc3QgSGFzCiAgICAgICAgIH0KICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmQoJ1xu
Jyk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIHN0YXRpYyB2b2lkIHJlY3Vyc2l2ZVByaW50KGNvbnN0IFByZWZpeFRyZWVWZXJ0
ZXgmIHZlcnRleCwgY29uc3QgSGFzaE1hcDxjb25zdCBQcmVmaXhUcmVlVmVydGV4KiwgQWN0aW9u
TGlzdD4mIGFjdGlvbnMsIHVuc2lnbmVkIGRlcHRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uLmNwcAppbmRleCA2MTBlMWI4Li44
ZTUwZmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250
ZW50RXh0ZW5zaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9D
b250ZW50RXh0ZW5zaW9uLmNwcApAQCAtMTEwLDggKzExMCwxMSBAQCB2b2lkIENvbnRlbnRFeHRl
bnNpb246OmNvbXBpbGVHbG9iYWxEaXNwbGF5Tm9uZVN0eWxlU2hlZXQoKQogCiAgICAgbV9nbG9i
YWxEaXNwbGF5Tm9uZVN0eWxlU2hlZXQgPSBTdHlsZVNoZWV0Q29udGVudHM6OmNyZWF0ZSgpOwog
ICAgIG1fZ2xvYmFsRGlzcGxheU5vbmVTdHlsZVNoZWV0LT5zZXRJc1VzZXJTdHlsZVNoZWV0KHRy
dWUpOwotICAgIGlmICghbV9nbG9iYWxEaXNwbGF5Tm9uZVN0eWxlU2hlZXQtPnBhcnNlU3RyaW5n
KGNzcy50b1N0cmluZygpKSkKLSAgICAgICAgbV9nbG9iYWxEaXNwbGF5Tm9uZVN0eWxlU2hlZXQg
PSBudWxscHRyOworICAgIGlmIChhdXRvIHN0cmluZyA9IGNzcy50b1N0cmluZygpKSB7CisgICAg
ICAgIGlmICghbV9nbG9iYWxEaXNwbGF5Tm9uZVN0eWxlU2hlZXQtPnBhcnNlU3RyaW5nKCpzdHJp
bmcpKQorICAgICAgICAgICAgbV9nbG9iYWxEaXNwbGF5Tm9uZVN0eWxlU2hlZXQgPSBudWxscHRy
OworICAgIH0gZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgLy8gVGhlc2UgYWN0aW9ucyBk
b24ndCBuZWVkIHRvIGJlIGFwcGxpZWQgaW5kaXZpZHVhbGx5IGFueSBtb3JlLiBUaGV5IHdpbGwg
YWxsIGJlIGFwcGxpZWQgdG8gZXZlcnkgcGFnZSBhcyBhIHByZWNvbXBpbGVkIHN0eWxlIHNoZWV0
LgogICAgIG1fdW5pdmVyc2FsQWN0aW9uc1dpdGhvdXRDb25kaXRpb25zLnJlbW92ZUFsbE1hdGNo
aW5nKGluR2xvYmFsRGlzcGxheU5vbmVTdHlsZVNoZWV0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIu
Y3BwCmluZGV4IDVlMDM1YTYuLjVjMzdlZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nv
bnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcApA
QCAtODAsNyArODAsMTAgQEAgc3RhdGljIHZvaWQgcmVzb2x2ZVBlbmRpbmdEaXNwbGF5Tm9uZUFj
dGlvbnMoVmVjdG9yPFNlcmlhbGl6ZWRBY3Rpb25CeXRlPiYgYWN0aW8KICAgICBmb3IgKGF1dG8m
IHBlbmRpbmdEaXNwbGF5Tm9uZUFjdGlvbnMgOiBtYXAudmFsdWVzKCkpIHsKICAgICAgICAgdWlu
dDMyX3QgYWN0aW9uTG9jYXRpb24gPSBhY3Rpb25zLnNpemUoKTsKICAgICAgICAgYWN0aW9ucy5h
cHBlbmQoc3RhdGljX2Nhc3Q8U2VyaWFsaXplZEFjdGlvbkJ5dGU+KEFjdGlvblR5cGU6OkNTU0Rp
c3BsYXlOb25lU2VsZWN0b3IpKTsKLSAgICAgICAgc2VyaWFsaXplU3RyaW5nKGFjdGlvbnMsIHBl
bmRpbmdEaXNwbGF5Tm9uZUFjdGlvbnMuY29tYmluZWRTZWxlY3RvcnMudG9TdHJpbmcoKSk7Cisg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHBlbmRpbmdEaXNwbGF5Tm9uZUFjdGlvbnMuY29tYmlu
ZWRTZWxlY3RvcnMudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHNlcmlhbGl6ZVN0cmluZyhhY3Rp
b25zLCAqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICAg
ICAgZm9yICh1aW50MzJfdCBjbGllbnRMb2NhdGlvbiA6IHBlbmRpbmdEaXNwbGF5Tm9uZUFjdGlv
bnMuY2xpZW50TG9jYXRpb25zKQogICAgICAgICAgICAgYWN0aW9uTG9jYXRpb25zW2NsaWVudExv
Y2F0aW9uXSA9IGFjdGlvbkxvY2F0aW9uOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25TdHlsZVNoZWV0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25TdHlsZVNoZWV0
LmNwcAppbmRleCBlMjRhMzY2Li5kZTNlODU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uU3R5bGVTaGVldC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblN0eWxlU2hlZXQu
Y3BwCkBAIC02MCw3ICs2MCwxMCBAQCBib29sIENvbnRlbnRFeHRlbnNpb25TdHlsZVNoZWV0Ojph
ZGREaXNwbGF5Tm9uZVNlbGVjdG9yKGNvbnN0IFN0cmluZyYgc2VsZWN0b3IsCiAgICAgY3NzLmFw
cGVuZCgneycpOwogICAgIGNzcy5hcHBlbmQoQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kOjpkaXNw
bGF5Tm9uZUNTU1J1bGUoKSk7CiAgICAgY3NzLmFwcGVuZCgnfScpOwotICAgIG1fc3R5bGVTaGVl
dC0+Y29udGVudHMoKS5wYXJzZVN0cmluZyhjc3MudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gY3NzLnRvU3RyaW5nKCkpCisgICAgICAgIG1fc3R5bGVTaGVldC0+Y29udGVudHMo
KS5wYXJzZVN0cmluZygqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRl
bnNpb25zL1Rlcm0uaCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1Rlcm0uaApp
bmRleCAwZDUxODMzLi42ZjMxOTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50
ZXh0ZW5zaW9ucy9UZXJtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMv
VGVybS5oCkBAIC0yNDYsNyArMjQ2LDkgQEAgaW5saW5lIFN0cmluZyBUZXJtOjp0b1N0cmluZygp
IGNvbnN0CiAgICAgICAgIH0KICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ10nKTsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQocXVhbnRpZmllclRvU3RyaW5nKG1fcXVhbnRpZmllcikpOwotICAgICAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAg
Q1JBU0goKTsKICAgICB9CiAgICAgY2FzZSBUZXJtVHlwZTo6R3JvdXA6IHsKICAgICAgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOwpAQCAtMjU1LDcgKzI1Nyw5IEBAIGlubGluZSBTdHJpbmcgVGVy
bTo6dG9TdHJpbmcoKSBjb25zdAogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQodGVybS50b1N0
cmluZygpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKICAgICAgICAgYnVpbGRlci5h
cHBlbmQocXVhbnRpZmllclRvU3RyaW5nKG1fcXVhbnRpZmllcikpOwotICAgICAgICByZXR1cm4g
YnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsK
ICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0FuaW1h
dGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQW5pbWF0
aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmNwcAppbmRleCBhMWE1OTdiLi4yZjI1YzlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVl
LmNwcApAQCAtNDMsNyArNDMsOSBAQCBTdHJpbmcgQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZh
bHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZChtX2VuZFZh
bHVlLT5jc3NUZXh0KCkpOwogICAgIH0KICAgICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0gICAgcmV0
dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29s
IENTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0FuaW1hdGlv
blRyaWdnZXJTY3JvbGxWYWx1ZSYgb3RoZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQmFzaWNTaGFwZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2lj
U2hhcGVzLmNwcAppbmRleCAyNGYyMzM0Li4xOTJhMDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQmFzaWNTaGFwZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NC
YXNpY1NoYXBlcy5jcHAKQEAgLTEwNyw3ICsxMDcsOSBAQCBzdGF0aWMgU3RyaW5nIGJ1aWxkQ2ly
Y2xlU3RyaW5nKGNvbnN0IFN0cmluZyYgcmFkaXVzLCBjb25zdCBTdHJpbmcmIGNlbnRlclgsIGNv
bgogICAgICAgICByZXN1bHQuYXBwZW5kKGNlbnRlclkpOwogICAgIH0KICAgICByZXN1bHQuYXBw
ZW5kTGl0ZXJhbCgiKSIpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIENTU0Jhc2ljU2hhcGVDaXJjbGU6OmNzc1RleHQo
KSBjb25zdApAQCAtMTY0LDcgKzE2Niw5IEBAIHN0YXRpYyBTdHJpbmcgYnVpbGRFbGxpcHNlU3Ry
aW5nKGNvbnN0IFN0cmluZyYgcmFkaXVzWCwgY29uc3QgU3RyaW5nJiByYWRpdXNZLCBjCiAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoY2VudGVyWSk7CiAgICAgfQogICAgIHJlc3VsdC5hcHBlbmRMaXRl
cmFsKCIpIik7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBD
UkFTSCgpOwogfQogCiBTdHJpbmcgQ1NTQmFzaWNTaGFwZUVsbGlwc2U6OmNzc1RleHQoKSBjb25z
dApAQCAtMjI0LDcgKzIyOCw5IEBAIHN0YXRpYyBTdHJpbmcgYnVpbGRQYXRoU3RyaW5nKGNvbnN0
IFdpbmRSdWxlJiB3aW5kUnVsZSwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zCiAgICAgICAgIHJl
c3VsdC5hcHBlbmQoYm94KTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBDU1NCYXNpY1NoYXBlUGF0aDo6
Y3NzVGV4dCgpIGNvbnN0CkBAIC0yODAsNyArMjg2LDkgQEAgc3RhdGljIFN0cmluZyBidWlsZFBv
bHlnb25TdHJpbmcoY29uc3QgV2luZFJ1bGUmIHdpbmRSdWxlLCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYKIAogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKIAotICAgIHJldHVybiByZXN1bHQudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIENTU0Jhc2ljU2hhcGVQ
b2x5Z29uOjpjc3NUZXh0KCkgY29uc3QKQEAgLTM3Nyw3ICszODUsOSBAQCBzdGF0aWMgU3RyaW5n
IGJ1aWxkSW5zZXRTdHJpbmcoY29uc3QgU3RyaW5nJiB0b3AsIGNvbnN0IFN0cmluZyYgcmlnaHQs
IGNvbnN0IFN0cgogICAgICAgICB9CiAgICAgfQogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKLSAg
ICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IHN0YXRpYyBpbmxpbmUgdm9pZCB1cGRhdGVDb3JuZXJSYWRpdXNXaWR0aEFuZEhlaWdodChDU1NQ
cmltaXRpdmVWYWx1ZSogY29ybmVyLCBTdHJpbmcmIHdpZHRoLCBTdHJpbmcmIGhlaWdodCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmNwcAppbmRleCBiNzU4MzAxLi5i
OTFjMGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FsY3VsYXRpb25WYWx1
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwCkBA
IC0xNjIsNyArMTYyLDkgQEAgc3RhdGljIFN0cmluZyBidWlsZENzc1RleHQoY29uc3QgU3RyaW5n
JiBleHByZXNzaW9uKQogICAgIHJlc3VsdC5hcHBlbmQoZXhwcmVzc2lvbik7CiAgICAgaWYgKGV4
cHJlc3Npb25IYXNTaW5nbGVUZXJtKQogICAgICAgICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0gICAg
cmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBT
dHJpbmcgQ1NTQ2FsY1ZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKQEAgLTU2Myw3ICs1NjUs
OSBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKIAot
ICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
ICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgU3RyaW5nIGN1c3RvbUNTU1RleHQoKSBjb25zdCBm
aW5hbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uLmNwcAppbmRleCBlZWFlNDI2Li4xYTQ0ZDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMTY5Myw3ICsxNjkzLDkg
QEAgU3RyaW5nIENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Y3NzVGV4dCgpIGNvbnN0CiAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoJzsnKTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+
IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6c2V0Q3NzVGV4dChjb25zdCBTdHJpbmcmKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHAKaW5kZXggMTcyYzk0NS4uMzQz
YTAyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCkBAIC0xMDIs
NyArMTAyLDkgQEAgU3RyaW5nIENTU0Nyb3NzZmFkZVZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29u
c3QKICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKICAgICByZXN1bHQuYXBwZW5kKG1f
cGVyY2VudGFnZVZhbHVlLT5jc3NUZXh0KCkpOwogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKLSAg
ICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IEZsb2F0U2l6ZSBDU1NDcm9zc2ZhZGVWYWx1ZTo6Zml4ZWRTaXplKGNvbnN0IFJlbmRlckVsZW1l
bnQmIHJlbmRlcmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvcklt
YWdlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3Bw
CmluZGV4IDFiNmQ3ZjIuLjBlZWVlMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDdXJzb3JJbWFnZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29y
SW1hZ2VWYWx1ZS5jcHAKQEAgLTYxLDcgKzYxLDkgQEAgU3RyaW5nIENTU0N1cnNvckltYWdlVmFs
dWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKCcgJyk7CiAg
ICAgICAgIHJlc3VsdC5hcHBlbmROdW1iZXIobV9ob3RTcG90LnkoKSk7CiAgICAgfQotICAgIHJl
dHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU1ZH
Q3Vyc29yRWxlbWVudCogQ1NTQ3Vyc29ySW1hZ2VWYWx1ZTo6dXBkYXRlQ3Vyc29yRWxlbWVudChj
b25zdCBEb2N1bWVudCYgZG9jdW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTQ3VzdG9tSWRlbnRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3VzdG9tSWRl
bnRWYWx1ZS5jcHAKaW5kZXggMjZkNmUzYi4uZjVlZWI3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0N1c3RvbUlkZW50VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDdXN0b21JZGVudFZhbHVlLmNwcApAQCAtNTYsNyArNTYsOSBAQCBTdHJpbmcgQ1NTQ3Vz
dG9tSWRlbnRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIHJldHVybiBnZXRQ
cm9wZXJ0eU5hbWVBdG9taWNTdHJpbmcobV9wcm9wZXJ0eUlkKTsKICAgICBTdHJpbmdCdWlsZGVy
IGJ1aWxkZXI7CiAgICAgc2VyaWFsaXplSWRlbnRpZmllcihtX3N0cmluZywgYnVpbGRlcik7Ci0g
ICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJ
bWFnZVZhbHVlLmNwcAppbmRleCA2YWNmNzQ0Li4yMDMxNDAwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwCkBAIC01Myw3ICs1Myw5IEBAIFN0cmluZyBDU1NG
aWx0ZXJJbWFnZVZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICByZXN1bHQuYXBwZW5k
TGl0ZXJhbCgiLCAiKTsKICAgICByZXN1bHQuYXBwZW5kKG1fZmlsdGVyVmFsdWUtPmNzc1RleHQo
KSk7CiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogRmxvYXRTaXplIENTU0ZpbHRlckltYWdl
VmFsdWU6OmZpeGVkU2l6ZShjb25zdCBSZW5kZXJFbGVtZW50KiByZW5kZXJlcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5jcHAKaW5kZXggMGRkYTFiMi4uODU5NDZmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5jcHAKQEAgLTU3LDcgKzU3LDkgQEAgU3RyaW5n
IENTU0ZvbnRGYWNlUnVsZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgaWYgKCFkZXNjcy5pc0VtcHR5
KCkpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAnKTsKICAgICByZXN1bHQuYXBwZW5kKCd9Jyk7
Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJl
c3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiB2b2lkIENTU0ZvbnRGYWNlUnVsZTo6cmVhdHRhY2goU3R5bGVSdWxlQmFzZSYgcnVsZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcAppbmRleCA4MWQ4YTc1
Li4yZjM0NjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNW
YWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3Bw
CkBAIC04MSw3ICs4MSw5IEBAIFN0cmluZyBDU1NGb250RmFjZVNyY1ZhbHVlOjpjdXN0b21DU1NU
ZXh0KCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZChtX2Zvcm1hdCk7CiAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJyknKTsKICAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU0ZvbnRGYWNlU3JjVmFsdWU6OnRy
YXZlcnNlU3VicmVzb3VyY2VzKGNvbnN0IFdURjo6RnVuY3Rpb248Ym9vbCAoY29uc3QgQ2FjaGVk
UmVzb3VyY2UmKT4mIGhhbmRsZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTRm9udEZlYXR1cmVWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZl
YXR1cmVWYWx1ZS5jcHAKaW5kZXggN2ZmMDdmMy4uNDc0NjIyZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZvbnRGZWF0dXJlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGb250RmVhdHVyZVZhbHVlLmNwcApAQCAtNTAsNyArNTAsOSBAQCBTdHJpbmcgQ1NT
Rm9udEZlYXR1cmVWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCcgJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fdmFsdWUpOwogICAg
IH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogYm9vbCBDU1NGb250RmVhdHVyZVZhbHVlOjplcXVhbHMoY29uc3QgQ1NTRm9udEZl
YXR1cmVWYWx1ZSYgb3RoZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udFN0eWxlUmFuZ2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFN0
eWxlUmFuZ2VWYWx1ZS5jcHAKaW5kZXggMGNkY2RiZi4uZWE2NjZiNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTdHlsZVJhbmdlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250U3R5bGVSYW5nZVZhbHVlLmNwcApAQCAtMzksNyArMzksOSBAQCBT
dHJpbmcgQ1NTRm9udFN0eWxlUmFuZ2VWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAg
YnVpbGRlci5hcHBlbmQoZm9udFN0eWxlVmFsdWUtPmNzc1RleHQoKSk7CiAgICAgYnVpbGRlci5h
cHBlbmQoJyAnKTsKICAgICBidWlsZGVyLmFwcGVuZChvYmxpcXVlVmFsdWVzLT5jc3NUZXh0KCkp
OwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
YnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogCiBib29sIENTU0ZvbnRTdHlsZVJhbmdlVmFsdWU6OmVxdWFscyhjb25zdCBDU1NGb250
U3R5bGVSYW5nZVZhbHVlJiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGb250U3R5bGVWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFN0
eWxlVmFsdWUuY3BwCmluZGV4IDI4NTBlMjMuLjhjNGU4NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250U3R5bGVWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ZvbnRTdHlsZVZhbHVlLmNwcApAQCAtMzksNyArMzksOSBAQCBTdHJpbmcgQ1NTRm9udFN0
eWxlVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIGJ1aWxkZXIuYXBwZW5kKGZvbnRT
dHlsZVZhbHVlLT5jc3NUZXh0KCkpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgYnVp
bGRlci5hcHBlbmQob2JsaXF1ZVZhbHVlLT5jc3NUZXh0KCkpOwotICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU0ZvbnRT
dHlsZVZhbHVlOjplcXVhbHMoY29uc3QgQ1NTRm9udFN0eWxlVmFsdWUmIG90aGVyKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYWx1ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udFZhbHVlLmNwcAppbmRleCA3NjZjMTEzLi4xY2Y3OGFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFZhbHVlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udFZhbHVlLmNwcApAQCAtNjUsNyArNjUsOSBAQCBTdHJpbmcgQ1NT
Rm9udFZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZChm
YW1pbHktPmNzc1RleHQoKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU0ZvbnRWYWx1ZTo6ZXF1YWxz
KGNvbnN0IENTU0ZvbnRWYWx1ZSYgb3RoZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTRm9udFZhcmlhdGlvblZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NGb250VmFyaWF0aW9uVmFsdWUuY3BwCmluZGV4IDcyZGRjMWEuLjRmOTI1YWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUuY3BwCkBAIC00OCw3ICs0OCw5
IEBAIFN0cmluZyBDU1NGb250VmFyaWF0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAog
ICAgICAgICBidWlsZGVyLmFwcGVuZChjKTsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlwi
ICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fdmFsdWUpOwotICAgIHJldHVybiBidWls
ZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU0Zv
bnRWYXJpYXRpb25WYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0ZvbnRWYXJpYXRpb25WYWx1ZSYgb3Ro
ZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRnVuY3Rpb25WYWx1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHAKaW5kZXggNzVl
ZjBjMS4uYmJkZGZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Z1bmN0aW9u
VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGdW5jdGlvblZhbHVlLmNwcApA
QCAtMzcsNyArMzcsOSBAQCBTdHJpbmcgQ1NTRnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgp
IGNvbnN0CiAgICAgcmVzdWx0LmFwcGVuZCgnKCcpOwogICAgIHJlc3VsdC5hcHBlbmQoQ1NTVmFs
dWVMaXN0OjpjdXN0b21DU1NUZXh0KCkpOwogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKLSAgICBy
ZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAppbmRleCAxNzFkNDcyNi4uZTE0
NDNjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcApAQCAtNzAxLDcg
KzcwMSw5IEBAIFN0cmluZyBDU1NMaW5lYXJHcmFkaWVudFZhbHVlOjpjdXN0b21DU1NUZXh0KCkg
Y29uc3QKICAgICB9CiAKICAgICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIHJlc3Vs
dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiAvLyBDb21wdXRlIHRo
ZSBlbmRwb2ludHMgc28gdGhhdCBhIGdyYWRpZW50IG9mIHRoZSBnaXZlbiBhbmdsZSBjb3ZlcnMg
YSBib3ggb2YgdGhlIGdpdmVuIHNpemUuCkBAIC0xMDE5LDcgKzEwMjEsOSBAQCBTdHJpbmcgQ1NT
UmFkaWFsR3JhZGllbnRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgfQogCiAgICAg
cmVzdWx0LmFwcGVuZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KIAogZmxvYXQgQ1NTUmFkaWFsR3JhZGllbnRWYWx1ZTo6cmVz
b2x2ZVJhZGl1cyhDU1NQcmltaXRpdmVWYWx1ZSYgcmFkaXVzLCBjb25zdCBDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhJiBjb252ZXJzaW9uRGF0YSwgZmxvYXQqIHdpZHRoT3JIZWlnaHQpCkBAIC0x
MzQ3LDcgKzEzNTEsOSBAQCBTdHJpbmcgQ1NTQ29uaWNHcmFkaWVudFZhbHVlOjpjdXN0b21DU1NU
ZXh0KCkgY29uc3QKICAgICB9CiAgICAgCiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwotICAgIHJl
dHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogUmVm
PEdyYWRpZW50PiBDU1NDb25pY0dyYWRpZW50VmFsdWU6OmNyZWF0ZUdyYWRpZW50KFJlbmRlckVs
ZW1lbnQmLCBjb25zdCBGbG9hdFNpemUmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0dyaWRBdXRvUmVwZWF0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRB
dXRvUmVwZWF0VmFsdWUuY3BwCmluZGV4IGQ1YmM0NDkuLmZkNzkwZGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTR3JpZEF1dG9SZXBlYXRWYWx1ZS5jcHAKQEAgLTQzLDcgKzQzLDkgQEAg
U3RyaW5nIENTU0dyaWRBdXRvUmVwZWF0VmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAg
IHJlc3VsdC5hcHBlbmQoIiwgIik7CiAgICAgcmVzdWx0LmFwcGVuZChDU1NWYWx1ZUxpc3Q6OmN1
c3RvbUNTU1RleHQoKSk7CiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwotICAgIHJldHVybiByZXN1
bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0
ZUFyZWFzVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFz
VmFsdWUuY3BwCmluZGV4IGUwYjc4NjUuLjhiYzNmZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAKQEAgLTgwLDcgKzgwLDkgQEAgU3Ry
aW5nIENTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAg
ICAgICBpZiAocm93ICE9IG1fcm93Q291bnQgLSAxKQogICAgICAgICAgICAgYnVpbGRlci5hcHBl
bmQoJyAnKTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZTo6ZXF1
YWxzKGNvbnN0IENTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUmIG90aGVyKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCmluZGV4IGE5N2RjMjEuLmUzNzUwYTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKQEAgLTE0Niw3ICsxNDYsOSBA
QCBTdHJpbmcgQ1NTSW1hZ2VTZXRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgfQog
CiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDU1NJbWFnZVNldFZhbHVlOjp0cmF2
ZXJzZVN1YnJlc291cmNlcyhjb25zdCBXVEY6OkZ1bmN0aW9uPGJvb2wgKGNvbnN0IENhY2hlZFJl
c291cmNlJik+JiBoYW5kbGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ltcG9ydFJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUuY3Bw
CmluZGV4IDRjNjY2MTMuLmY5YWFlZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NJbXBvcnRSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVsZS5j
cHAKQEAgLTcyLDcgKzcyLDkgQEAgU3RyaW5nIENTU0ltcG9ydFJ1bGU6OmNzc1RleHQoKSBjb25z
dAogICAgIH0KICAgICByZXN1bHQuYXBwZW5kKCc7Jyk7CiAgICAgCi0gICAgcmV0dXJuIHJlc3Vs
dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBDU1NTdHlsZVNoZWV0
KiBDU1NJbXBvcnRSdWxlOjpzdHlsZVNoZWV0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZVJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0tl
eWZyYW1lUnVsZS5jcHAKaW5kZXggODFlOTk1OC4uZGNhM2Y3MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0tleWZyYW1lUnVsZS5jcHAKQEAgLTY3LDcgKzY3LDkgQEAgU3RyaW5nIFN0eWxlUnVsZUtl
eWZyYW1lOjprZXlUZXh0KCkgY29uc3QKICAgICAgICAga2V5VGV4dC5hcHBlbmQoJyUnKTsKICAg
ICB9CiAKLSAgICByZXR1cm4ga2V5VGV4dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGtleVRleHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KICAgICAKIGJvb2wgU3R5bGVSdWxlS2V5ZnJhbWU6OnNldEtleVRleHQoY29uc3Qg
U3RyaW5nJiBrZXlUZXh0KQpAQCAtOTAsNyArOTIsOSBAQCBTdHJpbmcgU3R5bGVSdWxlS2V5ZnJh
bWU6OmNzc1RleHQoKSBjb25zdAogICAgIGlmICghZGVjbHMuaXNFbXB0eSgpKQogICAgICAgICBy
ZXN1bHQuYXBwZW5kKCcgJyk7CiAgICAgcmVzdWx0LmFwcGVuZCgnfScpOwotICAgIHJldHVybiBy
ZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogQ1NTS2V5ZnJh
bWVSdWxlOjpDU1NLZXlmcmFtZVJ1bGUoU3R5bGVSdWxlS2V5ZnJhbWUmIGtleWZyYW1lLCBDU1NL
ZXlmcmFtZXNSdWxlKiBwYXJlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
S2V5ZnJhbWVzUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVzUnVsZS5j
cHAKaW5kZXggOWYwMDBkOS4uNzdiMTgyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0tleWZyYW1lc1J1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFt
ZXNSdWxlLmNwcApAQCAtMTk4LDcgKzE5OCw5IEBAIFN0cmluZyBDU1NLZXlmcmFtZXNSdWxlOjpj
c3NUZXh0KCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnXG4nKTsKICAgICB9CiAgICAg
cmVzdWx0LmFwcGVuZCgnfScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KIAogdW5zaWduZWQgQ1NTS2V5ZnJhbWVzUnVsZTo6bGVuZ3Ro
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMaW5lQm94Q29udGFp
blZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMaW5lQm94Q29udGFpblZhbHVlLmNw
cAppbmRleCAxOWZkZjhiLi4zZGViM2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTTGluZUJveENvbnRhaW5WYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xp
bmVCb3hDb250YWluVmFsdWUuY3BwCkBAIC03Myw3ICs3Myw5IEBAIFN0cmluZyBDU1NMaW5lQm94
Q29udGFpblZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgdGV4dC5hcHBlbmRM
aXRlcmFsKCJpbml0aWFsLWxldHRlciIpOwogICAgIH0KIAotICAgIHJldHVybiB0ZXh0LnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdGV4dC50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTTWFya3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNYXJrdXAu
Y3BwCmluZGV4IDgxZmU4ODguLjYwOWM3MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NNYXJrdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNYXJrdXAuY3BwCkBA
IC0xODYsNyArMTg2LDkgQEAgU3RyaW5nIHNlcmlhbGl6ZVN0cmluZyhjb25zdCBTdHJpbmcmIHN0
cmluZykKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgc2VyaWFsaXplU3RyaW5n
KHN0cmluZywgYnVpbGRlcik7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBzZXJpYWxpemVVUkwoY29uc3QgU3RyaW5n
JiBzdHJpbmcpCkBAIC0yMDQsNyArMjA2LDkgQEAgU3RyaW5nIHNlcmlhbGl6ZUFzU3RyaW5nT3JD
dXN0b21JZGVudChjb25zdCBTdHJpbmcmIHN0cmluZykKICAgICBpZiAoaXNDU1NUb2tlbml6ZXJJ
ZGVudGlmaWVyKHN0cmluZykpIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAg
ICAgICBzZXJpYWxpemVJZGVudGlmaWVyKHN0cmluZywgYnVpbGRlcik7Ci0gICAgICAgIHJldHVy
biBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgp
OwogICAgIH0KICAgICByZXR1cm4gc2VyaWFsaXplU3RyaW5nKHN0cmluZyk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NNZWRpYVJ1bGUuY3BwCmluZGV4IGIwOTRlZGQuLjE3NGY1YTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NNZWRpYVJ1bGUuY3BwCkBAIC01Nyw3ICs1Nyw5IEBAIFN0cmluZyBDU1NNZWRpYVJ1
bGU6OmNzc1RleHQoKSBjb25zdAogICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCJ7IFxuIik7CiAg
ICAgYXBwZW5kQ3NzVGV4dEZvckl0ZW1zKHJlc3VsdCk7CiAgICAgcmVzdWx0LmFwcGVuZCgnfScp
OwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBy
ZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogTWVkaWFMaXN0KiBDU1NNZWRpYVJ1bGU6Om1lZGlhKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NOYW1lc3BhY2VSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NOYW1lc3BhY2VSdWxlLmNwcAppbmRleCAzZDNlYzZmLi43MDY4OTcxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTmFtZXNwYWNlUnVsZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU05hbWVzcGFjZVJ1bGUuY3BwCkBAIC02MCw3ICs2MCw5IEBAIFN0cmlu
ZyBDU1NOYW1lc3BhY2VSdWxlOjpjc3NUZXh0KCkgY29uc3QKICAgICByZXN1bHQuYXBwZW5kKCJ1
cmwoIik7CiAgICAgcmVzdWx0LmFwcGVuZChzZXJpYWxpemVTdHJpbmcobmFtZXNwYWNlVVJJKCkp
KTsKICAgICByZXN1bHQuYXBwZW5kKCIpOyIpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBDU1NOYW1lc3BhY2VSdWxlOjpy
ZWF0dGFjaChTdHlsZVJ1bGVCYXNlJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYWdlUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFnZVJ1bGUuY3BwCmluZGV4
IDQ3Y2Y0NTYuLmU2OWRhNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYWdl
UnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhZ2VSdWxlLmNwcApAQCAtNjQs
NyArNjQsOSBAQCBTdHJpbmcgQ1NTUGFnZVJ1bGU6OnNlbGVjdG9yVGV4dCgpIGNvbnN0CiAgICAg
ICAgICAgICB0ZXh0LmFwcGVuZChwYWdlU3BlY2lmaWNhdGlvbik7CiAgICAgICAgIH0KICAgICB9
Ci0gICAgcmV0dXJuIHRleHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0ZXh0
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IHZvaWQgQ1NTUGFnZVJ1bGU6OnNldFNlbGVjdG9yVGV4dChjb25zdCBTdHJpbmcmIHNlbGVjdG9y
VGV4dCkKQEAgLTkwLDcgKzkyLDkgQEAgU3RyaW5nIENTU1BhZ2VSdWxlOjpjc3NUZXh0KCkgY29u
c3QKICAgICBpZiAoIWRlY2xzLmlzRW1wdHkoKSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICcp
OwogICAgIHJlc3VsdC5hcHBlbmQoJ30nKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgQ1NTUGFnZVJ1bGU6OnJlYXR0YWNo
KFN0eWxlUnVsZUJhc2UmIHJ1bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVl
LmNwcAppbmRleCBhNzYxMjc2Li44M2UxNmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmlt
aXRpdmVWYWx1ZS5jcHAKQEAgLTEwNDUsNyArMTA0NSw5IEBAIEFMV0FZU19JTkxJTkUgU3RyaW5n
IENTU1ByaW1pdGl2ZVZhbHVlOjpmb3JtYXROdW1iZXJGb3JDdXN0b21DU1NUZXh0KCkgY29uc3QK
ICAgICAgICAgcmVzdWx0LmFwcGVuZChTdHJpbmcobV92YWx1ZS5zdHJpbmcpKTsKICAgICAgICAg
cmVzdWx0LmFwcGVuZCgnKScpOwogCi0gICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsK
KyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgY2FzZSBDU1Nf
Q09VTlRFUl9OQU1FOgogICAgICAgICByZXR1cm4gImNvdW50ZXIoIiArIFN0cmluZyhtX3ZhbHVl
LnN0cmluZykgKyAnKSc7CkBAIC0xMDY5LDcgKzEwNzEsOSBAQCBBTFdBWVNfSU5MSU5FIFN0cmlu
ZyBDU1NQcmltaXRpdmVWYWx1ZTo6Zm9ybWF0TnVtYmVyRm9yQ3VzdG9tQ1NTVGV4dCgpIGNvbnN0
CiAgICAgICAgIH0KICAgICAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwogCi0gICAgICAgIHJldHVy
biByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRv
U3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsK
ICAgICB9CiAgICAgY2FzZSBDU1NfUkVDVDoKICAgICAgICAgcmV0dXJuIHJlY3RWYWx1ZSgpLT5j
c3NUZXh0KCk7CkBAIC0xMTEyLDcgKzExMTYsOSBAQCBBTFdBWVNfSU5MSU5FIFN0cmluZyBDU1NQ
cmltaXRpdmVWYWx1ZTo6Zm9ybWF0TnVtYmVyRm9yQ3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcpJyk7CiAgICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAg
ICBDUkFTSCgpOwogICAgIH0KICNlbmRpZgogICAgIGNhc2UgQ1NTX0NBTEM6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3BwCmluZGV4IDc1Yjc5OTAuLmZkMmU4
MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3BwCkBA
IC05Niw3ICs5Niw5IEBAIFN0cmluZyBDU1NQcm9wZXJ0eVNvdXJjZURhdGE6OnRvU3RyaW5nKCkg
Y29uc3QKICAgICBpZiAoaW1wb3J0YW50KQogICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgi
ICFpbXBvcnRhbnQiKTsKICAgICByZXN1bHQuYXBwZW5kKCc7Jyk7Ci0gICAgcmV0dXJuIHJlc3Vs
dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB1bnNpZ25lZCBDU1NQ
cm9wZXJ0eVNvdXJjZURhdGE6Omhhc2goKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1NlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5j
cHAKaW5kZXggMWZlNDJjZC4uNTZiZmMyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1NlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3Bw
CkBAIC03MjYsMjYgKzcyNiwzMSBAQCBTdHJpbmcgQ1NTU2VsZWN0b3I6OnNlbGVjdG9yVGV4dChj
b25zdCBTdHJpbmcmIHJpZ2h0U2lkZSkgY29uc3QKICAgICAgICAgY3MgPSBjcy0+dGFnSGlzdG9y
eSgpOwogICAgIH0KIAorICAgIFN0cmluZyBzdHJpbmc7CisgICAgaWYgKGF1dG8gcyA9IHN0ci50
b1N0cmluZygpKQorICAgICAgICBzdHJpbmcgPSAqczsKKyAgICBlbHNlCisgICAgICAgIENSQVNI
KCk7CiAgICAgaWYgKGNvbnN0IENTU1NlbGVjdG9yKiB0YWdIaXN0b3J5ID0gY3MtPnRhZ0hpc3Rv
cnkoKSkgewogICAgICAgICBzd2l0Y2ggKGNzLT5yZWxhdGlvbigpKSB7CiAgICAgICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OkRlc2NlbmRhbnRTcGFjZToKLSAgICAgICAgICAgIHJldHVybiB0YWdIaXN0
b3J5LT5zZWxlY3RvclRleHQoIiAiICsgc3RyLnRvU3RyaW5nKCkgKyByaWdodFNpZGUpOworICAg
ICAgICAgICAgcmV0dXJuIHRhZ0hpc3RvcnktPnNlbGVjdG9yVGV4dCgiICIgKyBzdHJpbmcgKyBy
aWdodFNpZGUpOwogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpDaGlsZDoKLSAgICAgICAgICAg
IHJldHVybiB0YWdIaXN0b3J5LT5zZWxlY3RvclRleHQoIiA+ICIgKyBzdHIudG9TdHJpbmcoKSAr
IHJpZ2h0U2lkZSk7CisgICAgICAgICAgICByZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0b3JUZXh0
KCIgPiAiICsgc3RyaW5nICsgcmlnaHRTaWRlKTsKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6
RGlyZWN0QWRqYWNlbnQ6Ci0gICAgICAgICAgICByZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0b3JU
ZXh0KCIgKyAiICsgc3RyLnRvU3RyaW5nKCkgKyByaWdodFNpZGUpOworICAgICAgICAgICAgcmV0
dXJuIHRhZ0hpc3RvcnktPnNlbGVjdG9yVGV4dCgiICsgIiArIHN0cmluZyArIHJpZ2h0U2lkZSk7
CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkluZGlyZWN0QWRqYWNlbnQ6Ci0gICAgICAgICAg
ICByZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0b3JUZXh0KCIgfiAiICsgc3RyLnRvU3RyaW5nKCkg
KyByaWdodFNpZGUpOworICAgICAgICAgICAgcmV0dXJuIHRhZ0hpc3RvcnktPnNlbGVjdG9yVGV4
dCgiIH4gIiArIHN0cmluZyArIHJpZ2h0U2lkZSk7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlN1YnNlbGVjdG9yOgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAjaWYgQVNT
RVJUX0RJU0FCTEVECiAgICAgICAgICAgICBGQUxMVEhST1VHSDsKICNlbmRpZgogICAgICAgICBj
YXNlIENTU1NlbGVjdG9yOjpTaGFkb3dEZXNjZW5kYW50OgotICAgICAgICAgICAgcmV0dXJuIHRh
Z0hpc3RvcnktPnNlbGVjdG9yVGV4dChzdHIudG9TdHJpbmcoKSArIHJpZ2h0U2lkZSk7CisgICAg
ICAgICAgICByZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0b3JUZXh0KHN0cmluZyArIHJpZ2h0U2lk
ZSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIHN0ci50b1N0cmluZygpICsgcmlnaHRT
aWRlOworICAgIHJldHVybiBzdHJpbmcgKyByaWdodFNpZGU7CiB9CiAKIHZvaWQgQ1NTU2VsZWN0
b3I6OnNldEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB2YWx1ZSwgYm9vbCBpc0Nhc2VJ
bnNlbnNpdGl2ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxp
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAKaW5kZXggNTdl
ZmE2Ny4uYWUzMzAwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9y
TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAKQEAg
LTEzOCw3ICsxMzgsOSBAQCBTdHJpbmcgQ1NTU2VsZWN0b3JMaXN0OjpzZWxlY3RvcnNUZXh0KCkg
Y29uc3QKIHsKICAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKICAgICBidWlsZFNlbGVjdG9yc1Rl
eHQocmVzdWx0KTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIHZvaWQgQ1NTU2VsZWN0b3JMaXN0OjpidWlsZFNlbGVjdG9yc1RleHQo
U3RyaW5nQnVpbGRlciYgc3RyaW5nQnVpbGRlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTaGFkb3dWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2hh
ZG93VmFsdWUuY3BwCmluZGV4IDk0OTQ3ZDcuLmUyOWM4NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTaGFkb3dWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1NoYWRvd1ZhbHVlLmNwcApAQCAtNjksNyArNjksOSBAQCBTdHJpbmcgQ1NTU2hhZG93VmFsdWU6
OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAgICB0ZXh0LmFwcGVuZChzdHlsZS0+Y3NzVGV4
dCgpKTsKICAgICB9CiAKLSAgICByZXR1cm4gdGV4dC50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHRleHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogYm9vbCBDU1NTaGFkb3dWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU1NoYWRv
d1ZhbHVlJiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NT
dHlsZVJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAKaW5kZXgg
YmI4ZDIxYy4uNTgwOGZkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxl
UnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAKQEAgLTEy
MCw3ICsxMjAsOSBAQCBTdHJpbmcgQ1NTU3R5bGVSdWxlOjpjc3NUZXh0KCkgY29uc3QKICAgICBp
ZiAoIWRlY2xzLmlzRW1wdHkoKSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICcpOwogICAgIHJl
c3VsdC5hcHBlbmQoJ30nKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgQ1NTU3R5bGVSdWxlOjpyZWF0dGFjaChTdHlsZVJ1
bGVCYXNlJiBydWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hl
ZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCmluZGV4IDFlY2M1
YmEuLjg2OTg0ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAKQEAgLTMxNiw5
ICszMTYsMTIgQEAgRXhjZXB0aW9uT3I8aW50PiBDU1NTdHlsZVNoZWV0OjphZGRSdWxlKGNvbnN0
IFN0cmluZyYgc2VsZWN0b3IsIGNvbnN0IFN0cmluZyYgc3QKICAgICBpZiAoIXN0eWxlLmlzRW1w
dHkoKSkKICAgICAgICAgdGV4dC5hcHBlbmQoJyAnKTsKICAgICB0ZXh0LmFwcGVuZCgnfScpOwot
ICAgIGF1dG8gaW5zZXJ0UnVsZVJlc3VsdCA9IGluc2VydFJ1bGUodGV4dC50b1N0cmluZygpLCBp
bmRleC52YWx1ZV9vcihsZW5ndGgoKSkpOwotICAgIGlmIChpbnNlcnRSdWxlUmVzdWx0Lmhhc0V4
Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4gaW5zZXJ0UnVsZVJlc3VsdC5yZWxlYXNlRXhjZXB0
aW9uKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdGV4dC50b1N0cmluZygpKSB7CisgICAgICAg
IGF1dG8gaW5zZXJ0UnVsZVJlc3VsdCA9IGluc2VydFJ1bGUoKnN0cmluZywgaW5kZXgudmFsdWVf
b3IobGVuZ3RoKCkpKTsKKyAgICAgICAgaWYgKGluc2VydFJ1bGVSZXN1bHQuaGFzRXhjZXB0aW9u
KCkpCisgICAgICAgICAgICByZXR1cm4gaW5zZXJ0UnVsZVJlc3VsdC5yZWxlYXNlRXhjZXB0aW9u
KCk7CisgICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgCiAgICAgLy8gQXMgcGVyIE1p
Y3Jvc29mdCBkb2N1bWVudGF0aW9uLCBhbHdheXMgcmV0dXJuIC0xLgogICAgIHJldHVybiAtMTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdXBwb3J0c1J1bGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N1cHBvcnRzUnVsZS5jcHAKaW5kZXggZTEzZTEzYi4uZmNiZTMy
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1cHBvcnRzUnVsZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1cHBvcnRzUnVsZS5jcHAKQEAgLTUwLDcgKzUwLDkg
QEAgU3RyaW5nIENTU1N1cHBvcnRzUnVsZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgYXBwZW5kQ3Nz
VGV4dEZvckl0ZW1zKHJlc3VsdCk7CiAgICAgcmVzdWx0LmFwcGVuZCgnfScpOwogCi0gICAgcmV0
dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJp
bmcgQ1NTU3VwcG9ydHNSdWxlOjpjb25kaXRpb25UZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NUaW1pbmdGdW5jdGlvblZhbHVlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NUaW1pbmdGdW5jdGlvblZhbHVlLmNwcAppbmRleCA5MGVmNmNkLi4wOTI4ODJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVGltaW5nRnVuY3Rpb25WYWx1ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuY3BwCkBA
IC00Miw3ICs0Miw5IEBAIFN0cmluZyBDU1NDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uVmFsdWU6
OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsK
ICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX3kyKTsKICAgICBidWlsZGVyLmFwcGVuZCgnKScp
OyAgICAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogYm9vbCBDU1NDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uVmFsdWU6OmVxdWFs
cyhjb25zdCBDU1NDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uVmFsdWUmIG90aGVyKSBjb25zdApA
QCAtNTksNyArNjEsOSBAQCBTdHJpbmcgQ1NTU3RlcHNUaW1pbmdGdW5jdGlvblZhbHVlOjpjdXN0
b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsIHN0YXJ0
KSIpOwogICAgIGVsc2UKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsIGVuZCkiKTsK
LSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogYm9vbCBDU1NTdGVwc1RpbWluZ0Z1bmN0aW9uVmFsdWU6OmVxdWFscyhjb25zdCBDU1NT
dGVwc1RpbWluZ0Z1bmN0aW9uVmFsdWUmIG90aGVyKSBjb25zdApAQCAtNzMsNyArNzcsOSBAQCBT
dHJpbmcgQ1NTRnJhbWVzVGltaW5nRnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0
CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJmcmFtZXMoIik7CiAgICAgYnVpbGRlci5hcHBl
bmROdW1iZXIobV9mcmFtZXMpOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSIpOwotICAg
IHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiBib29sIENTU0ZyYW1lc1RpbWluZ0Z1bmN0aW9uVmFsdWU6OmVxdWFscyhjb25zdCBDU1NGcmFt
ZXNUaW1pbmdGdW5jdGlvblZhbHVlJiBvdGhlcikgY29uc3QKQEAgLTkzLDcgKzk5LDkgQEAgU3Ry
aW5nIENTU1NwcmluZ1RpbWluZ0Z1bmN0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAog
ICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV9pbml0
aWFsVmVsb2NpdHkpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTU3By
aW5nVGltaW5nRnVuY3Rpb25WYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU1NwcmluZ1RpbWluZ0Z1bmN0
aW9uVmFsdWUmIG90aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0LmNwcAppbmRl
eCBiNmUwYzJjNS4uMzA5MGUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Zh
bHVlTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAKQEAg
LTEwNyw3ICsxMDcsOSBAQCBTdHJpbmcgQ1NTVmFsdWVMaXN0OjpjdXN0b21DU1NUZXh0KCkgY29u
c3QKICAgICAgICAgcmVzdWx0LmFwcGVuZCh2YWx1ZS5nZXQoKS5jc3NUZXh0KCkpOwogICAgIH0K
IAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBy
ZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogYm9vbCBDU1NWYWx1ZUxpc3Q6OmVxdWFscyhjb25zdCBDU1NWYWx1ZUxpc3QmIG90aGVy
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhcmlhYmxlRGF0YS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFyaWFibGVEYXRhLmNwcAppbmRleCA5OGM5ZDA5
Li4zMTE4ZGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFyaWFibGVEYXRh
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFyaWFibGVEYXRhLmNwcApAQCAtNjgs
NyArNjgsMTAgQEAgdm9pZCBDU1NWYXJpYWJsZURhdGE6OmNvbnN1bWVBbmRVcGRhdGVUb2tlbnMo
Y29uc3QgQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiAgICAgICAgIGlmICh0b2tlbi5oYXNT
dHJpbmdCYWNraW5nKCkpCiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b2tlbi52
YWx1ZSgpKTsKICAgICB9Ci0gICAgbV9iYWNraW5nU3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgbV9iYWNraW5nU3RyaW5nID0gKnN0cmluZzsKKyAgICBlbHNlCisgICAgICAgIENS
QVNIKCk7CiAgICAgaWYgKG1fYmFja2luZ1N0cmluZy5pczhCaXQoKSkKICAgICAgICAgdXBkYXRl
VG9rZW5zPExDaGFyPihyYW5nZSk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0RPTUNTU05hbWVzcGFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFt
ZXNwYWNlLmNwcAppbmRleCA5MTM1MjM3Li5jZTE1ZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9N
Q1NTTmFtZXNwYWNlLmNwcApAQCAtODQsNyArODQsOSBAQCBTdHJpbmcgRE9NQ1NTTmFtZXNwYWNl
Ojplc2NhcGUoY29uc3QgU3RyaW5nJiBpZGVudCkKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7CiAgICAgc2VyaWFsaXplSWRlbnRpZmllcihpZGVudCwgYnVpbGRlcik7Ci0gICAgcmV0dXJu
IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXhSZWFkT25seS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvRE9NTWF0cml4UmVhZE9ubHkuY3BwCmluZGV4IGY3NGI0NjUuLjc4ODIy
OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXhSZWFkT25seS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeFJlYWRPbmx5LmNwcApAQCAtNDUwLDcg
KzQ1MCw5IEBAIEV4Y2VwdGlvbk9yPFN0cmluZz4gRE9NTWF0cml4UmVhZE9ubHk6OnRvU3RyaW5n
KCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nOjpudW1iZXJUb1N0cmluZ0VD
TUFTY3JpcHQobV9tYXRyaXgubTQ0KCkpKTsKICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmQoJykn
KTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIFdURk1vdmUoKnN0cmluZyk7Cisg
ICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNwcAppbmRleCBlNDk2ODg0Li41ZTk4
ZTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWVM
aXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0
LmNwcApAQCAtNTQsNyArNTQsOSBAQCBTdHJpbmcgRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0Ojpj
c3NUZXh0KCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZCh2YWx1ZS5nZXQoKS5jc3NUZXh0
KCkpOwogICAgIH0KICAgICAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9G
b250RmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwCmluZGV4IDU4MWY1
ZTguLmMyNTg2YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmNwcApAQCAtMzI4LDcgKzMyOCw5IEBA
IFN0cmluZyBGb250RmFjZTo6c3R5bGUoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZCgn
ICcpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChtYXhpbXVtTm9uS2V5d29yZC0+b2JsaXF1ZVZh
bHVlLT5jc3NUZXh0KCkpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIEZvbnRGYWNlOjp3ZWlnaHQoKSBj
b25zdApAQCAtMzQ5LDcgKzM1MSw5IEBAIFN0cmluZyBGb250RmFjZTo6d2VpZ2h0KCkgY29uc3QK
ICAgICBidWlsZGVyLmFwcGVuZChtaW5pbXVtTm9uS2V5d29yZC0+Y3NzVGV4dCgpKTsKICAgICBi
dWlsZGVyLmFwcGVuZCgnICcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG1heGltdW1Ob25LZXl3b3Jk
LT5jc3NUZXh0KCkpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgRm9udEZhY2U6OnN0cmV0Y2goKSBjb25zdApAQCAt
MzcwLDcgKzM3NCw5IEBAIFN0cmluZyBGb250RmFjZTo6c3RyZXRjaCgpIGNvbnN0CiAgICAgYnVp
bGRlci5hcHBlbmQobWluaW11bU5vbktleXdvcmQtPmNzc1RleHQoKSk7CiAgICAgYnVpbGRlci5h
cHBlbmQoJyAnKTsKICAgICBidWlsZGVyLmFwcGVuZChtYXhpbXVtTm9uS2V5d29yZC0+Y3NzVGV4
dCgpKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogU3RyaW5nIEZvbnRGYWNlOjp1bmljb2RlUmFuZ2UoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvTWVkaWFMaXN0LmNwcAppbmRleCA0NTc1MGFmLi40MjY5NDA0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVk
aWFMaXN0LmNwcApAQCAtMTUxLDcgKzE1MSw5IEBAIFN0cmluZyBNZWRpYVF1ZXJ5U2V0OjptZWRp
YVRleHQoKSBjb25zdAogICAgICAgICB0ZXh0LmFwcGVuZChxdWVyeS5jc3NUZXh0KCkpOwogICAg
ICAgICBuZWVkQ29tbWEgPSB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gdGV4dC50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IHRleHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBNZWRpYVF1ZXJ5U2V0OjpzaHJpbmtU
b0ZpdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5jcHAKaW5kZXggOWQwYmFkZi4uNDA3MGQ3YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcApAQCAtNjYsNyArNjYsOSBAQCBTdHJpbmcgTWVk
aWFRdWVyeTo6c2VyaWFsaXplKCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZChleHByZXNz
aW9uLnNlcmlhbGl6ZSgpKTsKICAgICAgICAgbmVlZHNBbmQgPSB0cnVlOwogICAgIH0KLSAgICBy
ZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIE1l
ZGlhUXVlcnk6Ok1lZGlhUXVlcnkoUmVzdHJpY3RvciByZXN0cmljdG9yLCBjb25zdCBTdHJpbmcm
IG1lZGlhVHlwZSwgVmVjdG9yPE1lZGlhUXVlcnlFeHByZXNzaW9uPiYmIGV4cHJlc3Npb25zKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAKaW5kZXggMmQ4ZTVm
MC4uZTBhMjJmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHBy
ZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24u
Y3BwCkBAIC0yNDQsNyArMjQ0LDEwIEBAIFN0cmluZyBNZWRpYVF1ZXJ5RXhwcmVzc2lvbjo6c2Vy
aWFsaXplKCkgY29uc3QKICAgICB9CiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwogCi0gICAgbV9z
ZXJpYWxpemF0aW9uQ2FjaGUgPSByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgbV9zZXJpYWxpemF0aW9uQ2FjaGUgPSAq
c3RyaW5nOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICByZXR1cm4gbV9zZXJpYWxp
emF0aW9uQ2FjaGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SZWN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvUmVjdC5oCmluZGV4IGVjMWFhZTguLmRmYWUxNzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1JlY3QuaApAQCAtMTAzLDcgKzEwMyw5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmco
KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCmluZGV4IDNjOGNlNDMuLmJmZjE3MmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCkBAIC0zNDMsNyArMzQzLDkgQEAg
U3RyaW5nIFN0eWxlUHJvcGVydGllczo6Zm9udFZhbHVlKCkgY29uc3QKICAgICByZXN1bHQuYXBw
ZW5kKGZvbnRGYW1pbHlQcm9wZXJ0eS52YWx1ZSgpLT5jc3NUZXh0KCkpOwogICAgIGlmIChpc0lu
aXRpYWxPckluaGVyaXQoY29tbW9uVmFsdWUpKQogICAgICAgICByZXR1cm4gY29tbW9uVmFsdWU7
Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJl
c3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpnZXQ0VmFsdWVzKGNvbnN0IFN0eWxlUHJvcGVy
dHlTaG9ydGhhbmQmIHNob3J0aGFuZCkgY29uc3QKQEAgLTM5Nyw3ICszOTksOSBAQCBTdHJpbmcg
U3R5bGVQcm9wZXJ0aWVzOjpnZXQ0VmFsdWVzKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQm
IHNob3J0aGFuZCkgY29ucwogICAgICAgICByZXN1bHQuYXBwZW5kKCcgJyk7CiAgICAgICAgIHJl
c3VsdC5hcHBlbmQobGVmdC52YWx1ZSgpLT5jc3NUZXh0KCkpOwogICAgIH0KLSAgICByZXR1cm4g
cmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBT
dHlsZVByb3BlcnRpZXM6OmdldExheWVyZWRTaG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVByb3Bl
cnR5U2hvcnRoYW5kJiBzaG9ydGhhbmQpIGNvbnN0CkBAIC01NDMsNyArNTQ3LDkgQEAgU3RyaW5n
IFN0eWxlUHJvcGVydGllczo6Z2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlKGNvbnN0IFN0eWxlUHJv
cGVydHlTaG9ydGhhbmQmIHMKIAogICAgIGlmIChyZXN1bHQuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpnZXRTaG9ydGhhbmRW
YWx1ZShjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBzaG9ydGhhbmQpIGNvbnN0CkBAIC01
NzIsNyArNTc4LDkgQEAgU3RyaW5nIFN0eWxlUHJvcGVydGllczo6Z2V0U2hvcnRoYW5kVmFsdWUo
Y29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYgc2hvcnRoYW4KICAgICAgICAgcmV0dXJuIGNv
bW1vblZhbHVlOwogICAgIGlmIChyZXN1bHQuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gU3Ry
aW5nKCk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiAvLyBvbmx5IHJldHVybnMgYSBub24tbnVsbCB2YWx1ZSBpZiBhbGwgcHJvcGVy
dGllcyBoYXZlIHRoZSBzYW1lLCBub24tbnVsbCB2YWx1ZQpAQCAtNjM0LDcgKzY0MiwxMSBAQCBT
dHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpib3JkZXJQcm9wZXJ0eVZhbHVlKENvbW1vblZhbHVlTW9k
ZSB2YWx1ZU1vZGUpIGNvbnN0CiAgICAgfQogICAgIGlmIChpc0luaXRpYWxPckluaGVyaXQoY29t
bW9uVmFsdWUpKQogICAgICAgICByZXR1cm4gY29tbW9uVmFsdWU7Ci0gICAgcmV0dXJuIHJlc3Vs
dC5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6IHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChyZXN1
bHQuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAKIFJlZlB0cjxDU1NWYWx1ZT4gU3R5bGVQcm9wZXJ0aWVzOjpnZXRQcm9wZXJ0
eUNTU1ZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkgY29uc3QKQEAgLTExNDYsNyArMTE1
OCw5IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmFzVGV4dCgpIGNvbnN0CiAgICAgfQogCiAg
ICAgQVNTRVJUKCFudW1EZWNscyBeICFyZXN1bHQuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gcmVz
dWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgU3R5bGVQ
cm9wZXJ0aWVzOjpoYXNDU1NPTVdyYXBwZXIoKSBjb25zdApAQCAtMTQwMyw3ICsxNDE3LDkgQEAg
U3RyaW5nIFN0eWxlUHJvcGVydGllczo6UHJvcGVydHlSZWZlcmVuY2U6OmNzc1RleHQoKSBjb25z
dAogICAgIGlmIChpc0ltcG9ydGFudCgpKQogICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgi
ICFpbXBvcnRhbnQiKTsKICAgICByZXN1bHQuYXBwZW5kKCc7Jyk7Ci0gICAgcmV0dXJuIHJlc3Vs
dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogICAgIAogUmVmPERlZmVy
cmVkU3R5bGVQcm9wZXJ0aWVzPiBEZWZlcnJlZFN0eWxlUHJvcGVydGllczo6Y3JlYXRlKGNvbnN0
IENTU1BhcnNlclRva2VuUmFuZ2UmIHRva2VuUmFuZ2UsIENTU0RlZmVycmVkUGFyc2VyJiBwYXJz
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwCmluZGV4IDdiZGU2NGQuLjFm
NzhkMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwCkBAIC0yNDksNyAr
MjQ5LDkgQEAgRXhjZXB0aW9uT3I8U3RyaW5nPiBXZWJLaXRDU1NNYXRyaXg6OnRvU3RyaW5nKCkg
Y29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nOjpudW1iZXJUb1N0cmluZ0VDTUFT
Y3JpcHQobV9tYXRyaXgubTQ0KCkpKTsKICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsK
LSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIFdURk1vdmUoKnN0cmluZyk7CisgICAg
Q1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcAppbmRleCBjYmQxNzJmLi5kZTZlYzk1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcApAQCAtNzIsNyAr
NzIsOSBAQCBTdHJpbmcgV2ViS2l0Q1NTVmlld3BvcnRSdWxlOjpjc3NUZXh0KCkgY29uc3QKIAog
ICAgIHJlc3VsdC5hcHBlbmQoJ30nKTsKIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBXZWJLaXRDU1NWaWV3cG9ydFJ1bGU6
OnJlYXR0YWNoKFN0eWxlUnVsZUJhc2UmIHJ1bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlci5jcHAKaW5kZXggOTU0YWIwOC4uZWNiZmFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUGFyc2VyLmNwcApAQCAtMjk5LDEwICsyOTksMTMgQEAgUmVmUHRyPENTU1ZhbHVl
PiBDU1NQYXJzZXI6OnBhcnNlRm9udEZhY2VEZXNjcmlwdG9yKENTU1Byb3BlcnR5SUQgcHJvcGVy
dHlJRCwgY28KICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiA6ICIpOwogICAgIGJ1aWxkZXIu
YXBwZW5kKHByb3BlcnR5VmFsdWUpOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiOyB9Iik7
Ci0gICAgUmVmUHRyPFN0eWxlUnVsZUJhc2U+IHJ1bGUgPSBwYXJzZVJ1bGUoY29udGV4dCwgbnVs
bHB0ciwgYnVpbGRlci50b1N0cmluZygpKTsKLSAgICBpZiAoIXJ1bGUgfHwgIXJ1bGUtPmlzRm9u
dEZhY2VSdWxlKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBkb3duY2Fz
dDxTdHlsZVJ1bGVGb250RmFjZT4oKnJ1bGUuZ2V0KCkpLnByb3BlcnRpZXMoKS5nZXRQcm9wZXJ0
eUNTU1ZhbHVlKHByb3BlcnR5SUQpOworICAgIGlmIChhdXRvIHN0cmluZyAgPSBidWlsZGVyLnRv
U3RyaW5nKCkpIHsKKyAgICAgICAgUmVmUHRyPFN0eWxlUnVsZUJhc2U+IHJ1bGUgPSBwYXJzZVJ1
bGUoY29udGV4dCwgbnVsbHB0ciwgKnN0cmluZyk7CisgICAgICAgIGlmICghcnVsZSB8fCAhcnVs
ZS0+aXNGb250RmFjZVJ1bGUoKSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAg
ICByZXR1cm4gZG93bmNhc3Q8U3R5bGVSdWxlRm9udEZhY2U+KCpydWxlLmdldCgpKS5wcm9wZXJ0
aWVzKCkuZ2V0UHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0eUlEKTsKKyAgICB9CisgICAgQ1JBU0go
KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJz
ZXJUb2tlbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmNw
cAppbmRleCA3YjhlNjAzLi41ZDEwMTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1BhcnNlclRva2VuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1BhcnNlclRva2VuLmNwcApAQCAtMzkyLDcgKzM5Miw4IEBAIHZvaWQgQ1NTUGFyc2VyVG9r
ZW46OnNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiBidWlsZGVyKSBjb25zdAogICAgICAgICBicmVh
azsKICAgICBjYXNlIEZ1bmN0aW9uVG9rZW46CiAgICAgICAgIHNlcmlhbGl6ZUlkZW50aWZpZXIo
dmFsdWUoKS50b1N0cmluZygpLCBidWlsZGVyKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBw
ZW5kKCcoJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcoJyk7CisgICAgICAgIHJldHVybjsK
ICAgICBjYXNlIEF0S2V5d29yZFRva2VuOgogICAgICAgICBidWlsZGVyLmFwcGVuZCgnQCcpOwog
ICAgICAgICBzZXJpYWxpemVJZGVudGlmaWVyKHZhbHVlKCkudG9TdHJpbmcoKSwgYnVpbGRlcik7
CkBAIC00MDQsNjkgKzQwNSw5NyBAQCB2b2lkIENTU1BhcnNlclRva2VuOjpzZXJpYWxpemUoU3Ry
aW5nQnVpbGRlciYgYnVpbGRlcikgY29uc3QKICAgICBjYXNlIFVybFRva2VuOgogICAgICAgICBi
dWlsZGVyLmFwcGVuZCgidXJsKCIpOwogICAgICAgICBzZXJpYWxpemVJZGVudGlmaWVyKHZhbHVl
KCkudG9TdHJpbmcoKSwgYnVpbGRlcik7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgn
KScpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnKScpOworICAgICAgICByZXR1cm47CiAgICAg
Y2FzZSBEZWxpbWl0ZXJUb2tlbjoKLSAgICAgICAgaWYgKGRlbGltaXRlcigpID09ICdcXCcpCi0g
ICAgICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoIlxcXG4iKTsKLSAgICAgICAgcmV0dXJu
IGJ1aWxkZXIuYXBwZW5kKGRlbGltaXRlcigpKTsKKyAgICAgICAgaWYgKGRlbGltaXRlcigpID09
ICdcXCcpIHsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJcXFxuIik7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgYnVpbGRlci5hcHBlbmQoZGVsaW1pdGVyKCkp
OworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBOdW1iZXJUb2tlbjoKICAgICAgICAgLy8gVGhl
c2Ugd29uJ3QgcHJvcGVybHkgcHJlc2VydmUgdGhlIE51bWVyaWNWYWx1ZVR5cGUgZmxhZwogICAg
ICAgICBpZiAobV9udW1lcmljU2lnbiA9PSBQbHVzU2lnbikKICAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCcrJyk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZE51bWJlcihudW1lcmlj
VmFsdWUoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG51bWVyaWNWYWx1ZSgpKTsK
KyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgUGVyY2VudGFnZVRva2VuOgogICAgICAgICBidWls
ZGVyLmFwcGVuZE51bWJlcihudW1lcmljVmFsdWUoKSk7Ci0gICAgICAgIHJldHVybiBidWlsZGVy
LmFwcGVuZCgnJScpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnJScpOworICAgICAgICByZXR1
cm47CiAgICAgY2FzZSBEaW1lbnNpb25Ub2tlbjoKICAgICAgICAgLy8gVGhpcyB3aWxsIGluY29y
cmVjdGx5IHNlcmlhbGl6ZSBlLmcuIDRlM2UyIGFzIDQwMDBlMgogICAgICAgICBidWlsZGVyLmFw
cGVuZE51bWJlcihudW1lcmljVmFsdWUoKSk7CiAgICAgICAgIHNlcmlhbGl6ZUlkZW50aWZpZXIo
dmFsdWUoKS50b1N0cmluZygpLCBidWlsZGVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBV
bmljb2RlUmFuZ2VUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKFN0cmluZzo6
Zm9ybWF0KCJVKyVYLSVYIiwgdW5pY29kZVJhbmdlU3RhcnQoKSwgdW5pY29kZVJhbmdlRW5kKCkp
KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nOjpmb3JtYXQoIlUrJVgtJVgiLCB1bmlj
b2RlUmFuZ2VTdGFydCgpLCB1bmljb2RlUmFuZ2VFbmQoKSkpOworICAgICAgICByZXR1cm47CiAg
ICAgY2FzZSBTdHJpbmdUb2tlbjoKLSAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVN0cmluZyh2YWx1
ZSgpLnRvU3RyaW5nKCksIGJ1aWxkZXIpOworICAgICAgICBzZXJpYWxpemVTdHJpbmcodmFsdWUo
KS50b1N0cmluZygpLCBidWlsZGVyKTsKKyAgICAgICAgcmV0dXJuOwogCiAgICAgY2FzZSBJbmNs
dWRlTWF0Y2hUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCJ+PSIpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZCgifj0iKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRGFz
aE1hdGNoVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgifD0iKTsKKyAgICAg
ICAgYnVpbGRlci5hcHBlbmQoInw9Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFByZWZp
eE1hdGNoVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgiXj0iKTsKKyAgICAg
ICAgYnVpbGRlci5hcHBlbmQoIl49Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFN1ZmZp
eE1hdGNoVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgiJD0iKTsKKyAgICAg
ICAgYnVpbGRlci5hcHBlbmQoIiQ9Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFN1YnN0
cmluZ01hdGNoVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgiKj0iKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQoIio9Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIENv
bHVtblRva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoInx8Iik7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCJ8fCIpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBDRE9Ub2tl
bjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCI8IS0tIik7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCI8IS0tIik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIENEQ1Rva2VuOgot
ICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoIi0tPiIpOworICAgICAgICBidWlsZGVyLmFw
cGVuZCgiLS0+Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEJhZFN0cmluZ1Rva2VuOgot
ICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoIidcbiIpOworICAgICAgICBidWlsZGVyLmFw
cGVuZCgiJ1xuIik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEJhZFVybFRva2VuOgotICAg
ICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoInVybCgoKSIpOworICAgICAgICBidWlsZGVyLmFw
cGVuZCgidXJsKCgpIik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFdoaXRlc3BhY2VUb2tl
bjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCcgJyk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIENvbG9uVG9rZW46Ci0gICAg
ICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgnOicpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgn
OicpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBTZW1pY29sb25Ub2tlbjoKLSAgICAgICAg
cmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCc7Jyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCc7Jyk7
CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIENvbW1hVG9rZW46Ci0gICAgICAgIHJldHVybiBi
dWlsZGVyLmFwcGVuZCgnLCcpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnLCcpOworICAgICAg
ICByZXR1cm47CiAgICAgY2FzZSBMZWZ0UGFyZW50aGVzaXNUb2tlbjoKLSAgICAgICAgcmV0dXJu
IGJ1aWxkZXIuYXBwZW5kKCcoJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcoJyk7CisgICAg
ICAgIHJldHVybjsKICAgICBjYXNlIFJpZ2h0UGFyZW50aGVzaXNUb2tlbjoKLSAgICAgICAgcmV0
dXJuIGJ1aWxkZXIuYXBwZW5kKCcpJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Cisg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIExlZnRCcmFja2V0VG9rZW46Ci0gICAgICAgIHJldHVy
biBidWlsZGVyLmFwcGVuZCgnWycpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnWycpOworICAg
ICAgICByZXR1cm47CiAgICAgY2FzZSBSaWdodEJyYWNrZXRUb2tlbjoKLSAgICAgICAgcmV0dXJu
IGJ1aWxkZXIuYXBwZW5kKCddJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCddJyk7CisgICAg
ICAgIHJldHVybjsKICAgICBjYXNlIExlZnRCcmFjZVRva2VuOgotICAgICAgICByZXR1cm4gYnVp
bGRlci5hcHBlbmQoJ3snKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJ3snKTsKKyAgICAgICAg
cmV0dXJuOwogICAgIGNhc2UgUmlnaHRCcmFjZVRva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRl
ci5hcHBlbmQoJ30nKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJ30nKTsKKyAgICAgICAgcmV0
dXJuOwogCiAgICAgY2FzZSBFT0ZUb2tlbjoKICAgICBjYXNlIENvbW1lbnRUb2tlbjoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW5SYW5nZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuUmFuZ2UuY3BwCmluZGV4
IGNiOWM1ODAuLmVmZTVhMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUGFyc2VyVG9rZW5SYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQYXJzZXJUb2tlblJhbmdlLmNwcApAQCAtMTEzLDcgKzExMyw5IEBAIFN0cmluZyBDU1NQYXJz
ZXJUb2tlblJhbmdlOjpzZXJpYWxpemUoKSBjb25zdAogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKICAgICBmb3IgKGNvbnN0IENTU1BhcnNlclRva2VuKiBpdCA9IG1fZmlyc3Q7IGl0IDwgbV9s
YXN0OyArK2l0KQogICAgICAgICBpdC0+c2VyaWFsaXplKGJ1aWxkZXIpOwotICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1Byb3BlcnR5UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVy
dHlQYXJzZXIuY3BwCmluZGV4IGJjZWNlNzAuLjMwOTA3NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCkBAIC0xMDE2LDcgKzEwMTYsOSBA
QCBzdGF0aWMgU3RyaW5nIGNvbmNhdGVuYXRlRmFtaWx5TmFtZShDU1NQYXJzZXJUb2tlblJhbmdl
JiByYW5nZSkKICAgICB9CiAgICAgaWYgKCFhZGRlZFNwYWNlICYmIGlzQ1NTV2lkZUtleXdvcmQo
Zmlyc3RUb2tlbi5pZCgpKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwotICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMg
UmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lRmFtaWx5TmFtZShDU1NQYXJzZXJUb2tlblJhbmdlJiBy
YW5nZSkKQEAgLTMyNjQsNyArMzI2NiwxMCBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gcGFyc2VH
cmlkVGVtcGxhdGVBcmVhc0NvbHVtbk5hbWVzKGNvbnN0IFN0cmluZyYgZ3JpZFJvd05hbQogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aCgpOyArK2kpIHsKICAgICAgICAg
aWYgKGlzQ1NTU3BhY2UodGV4dFtpXSkpIHsKICAgICAgICAgICAgIGlmICghYXJlYU5hbWUuaXNF
bXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgY29sdW1uTmFtZXMuYXBwZW5kKGFyZWFOYW1lLnRv
U3RyaW5nKCkpOworICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGFyZWFOYW1lLnRv
U3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbHVtbk5hbWVzLmFwcGVuZCgqc3RyaW5n
KTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7CiAg
ICAgICAgICAgICAgICAgYXJlYU5hbWUuY2xlYXIoKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIGNvbnRpbnVlOwpAQCAtMzI3MywxNCArMzI3OCwyMCBAQCBzdGF0aWMgVmVjdG9yPFN0cmlu
Zz4gcGFyc2VHcmlkVGVtcGxhdGVBcmVhc0NvbHVtbk5hbWVzKGNvbnN0IFN0cmluZyYgZ3JpZFJv
d05hbQogICAgICAgICAgICAgaWYgKGFyZWFOYW1lID09ICIuIikKICAgICAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgICAgIGlmICghYXJlYU5hbWUuaXNFbXB0eSgpKSB7Ci0gICAgICAg
ICAgICAgICAgY29sdW1uTmFtZXMuYXBwZW5kKGFyZWFOYW1lLnRvU3RyaW5nKCkpOworICAgICAg
ICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGFyZWFOYW1lLnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICAgICAgICAgIGNvbHVtbk5hbWVzLmFwcGVuZCgqc3RyaW5nKTsKKyAgICAgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAgICAgYXJl
YU5hbWUuY2xlYXIoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgIGlmICghaXNOYW1lQ29kZVBvaW50KHRleHRbaV0pKQogICAgICAgICAgICAgICAgIHJldHVy
biBWZWN0b3I8U3RyaW5nPigpOwogICAgICAgICAgICAgaWYgKGFyZWFOYW1lID09ICIuIikgewot
ICAgICAgICAgICAgICAgIGNvbHVtbk5hbWVzLmFwcGVuZChhcmVhTmFtZS50b1N0cmluZygpKTsK
KyAgICAgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBhcmVhTmFtZS50b1N0cmluZygpKQor
ICAgICAgICAgICAgICAgICAgICBjb2x1bW5OYW1lcy5hcHBlbmQoKnN0cmluZyk7CisgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAg
ICAgIGFyZWFOYW1lLmNsZWFyKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTMyODgs
OCArMzI5OSwxMiBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gcGFyc2VHcmlkVGVtcGxhdGVBcmVh
c0NvbHVtbk5hbWVzKGNvbnN0IFN0cmluZyYgZ3JpZFJvd05hbQogICAgICAgICBhcmVhTmFtZS5h
cHBlbmQodGV4dFtpXSk7CiAgICAgfQogCi0gICAgaWYgKCFhcmVhTmFtZS5pc0VtcHR5KCkpCi0g
ICAgICAgIGNvbHVtbk5hbWVzLmFwcGVuZChhcmVhTmFtZS50b1N0cmluZygpKTsKKyAgICBpZiAo
IWFyZWFOYW1lLmlzRW1wdHkoKSkgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBhcmVhTmFt
ZS50b1N0cmluZygpKQorICAgICAgICAgICAgY29sdW1uTmFtZXMuYXBwZW5kKCpzdHJpbmcpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOworICAgIH0KIAogICAgIHJldHVybiBj
b2x1bW5OYW1lczsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
VG9rZW5pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTVG9rZW5pemVyLmNw
cAppbmRleCAxZjFhMjNlLi4zYjg0ZTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1Rva2VuaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NUb2tlbml6ZXIuY3BwCkBAIC02MDUsOCArNjA1LDExIEBAIENTU1BhcnNlclRva2VuIENTU1Rv
a2VuaXplcjo6Y29uc3VtZVN0cmluZ1Rva2VuVW50aWwoVUNoYXIgZW5kaW5nQ29kZVBvaW50KQog
ICAgIFN0cmluZ0J1aWxkZXIgb3V0cHV0OwogICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgIFVD
aGFyIGNjID0gY29uc3VtZSgpOwotICAgICAgICBpZiAoY2MgPT0gZW5kaW5nQ29kZVBvaW50IHx8
IGNjID09IGtFbmRPZkZpbGVNYXJrZXIpCi0gICAgICAgICAgICByZXR1cm4gQ1NTUGFyc2VyVG9r
ZW4oU3RyaW5nVG9rZW4sIHJlZ2lzdGVyU3RyaW5nKG91dHB1dC50b1N0cmluZygpKSk7CisgICAg
ICAgIGlmIChjYyA9PSBlbmRpbmdDb2RlUG9pbnQgfHwgY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikg
eworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gb3V0cHV0LnRvU3RyaW5nKCkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIENTU1BhcnNlclRva2VuKFN0cmluZ1Rva2VuLCByZWdpc3RlclN0
cmluZygqc3RyaW5nKSk7CisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CiAgICAgICAg
IGlmIChpc05ld0xpbmUoY2MpKSB7CiAgICAgICAgICAgICByZWNvbnN1bWUoY2MpOwogICAgICAg
ICAgICAgcmV0dXJuIENTU1BhcnNlclRva2VuKEJhZFN0cmluZ1Rva2VuKTsKQEAgLTY4MCwxMyAr
NjgzLDE5IEBAIENTU1BhcnNlclRva2VuIENTU1Rva2VuaXplcjo6Y29uc3VtZVVybFRva2VuKCkK
ICAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICBV
Q2hhciBjYyA9IGNvbnN1bWUoKTsKLSAgICAgICAgaWYgKGNjID09ICcpJyB8fCBjYyA9PSBrRW5k
T2ZGaWxlTWFya2VyKQotICAgICAgICAgICAgcmV0dXJuIENTU1BhcnNlclRva2VuKFVybFRva2Vu
LCByZWdpc3RlclN0cmluZyhyZXN1bHQudG9TdHJpbmcoKSkpOworICAgICAgICBpZiAoY2MgPT0g
JyknIHx8IGNjID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHJldHVybiBDU1NQYXJz
ZXJUb2tlbihVcmxUb2tlbiwgcmVnaXN0ZXJTdHJpbmcoKnN0cmluZykpOworICAgICAgICAgICAg
Q1JBU0goKTsKKyAgICAgICAgfQogCiAgICAgICAgIGlmIChpc0hUTUxTcGFjZShjYykpIHsKICAg
ICAgICAgICAgIG1faW5wdXQuYWR2YW5jZVVudGlsTm9uV2hpdGVzcGFjZSgpOwotICAgICAgICAg
ICAgaWYgKGNvbnN1bWVJZk5leHQoJyknKSB8fCBtX2lucHV0Lm5leHRJbnB1dENoYXIoKSA9PSBr
RW5kT2ZGaWxlTWFya2VyKQotICAgICAgICAgICAgICAgIHJldHVybiBDU1NQYXJzZXJUb2tlbihV
cmxUb2tlbiwgcmVnaXN0ZXJTdHJpbmcocmVzdWx0LnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAg
IGlmIChjb25zdW1lSWZOZXh0KCcpJykgfHwgbV9pbnB1dC5uZXh0SW5wdXRDaGFyKCkgPT0ga0Vu
ZE9mRmlsZU1hcmtlcikgeworICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3Vs
dC50b1N0cmluZygpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUGFyc2VyVG9rZW4o
VXJsVG9rZW4sIHJlZ2lzdGVyU3RyaW5nKCpzdHJpbmcpKTsKKyAgICAgICAgICAgICAgICBDUkFT
SCgpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApAQCAt
NzkxLDcgKzgwMCw5IEBAIFN0cmluZ1ZpZXcgQ1NTVG9rZW5pemVyOjpjb25zdW1lTmFtZSgpCiAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogICAgICAgICByZWNvbnN1bWUoY2MpOwot
ICAgICAgICByZXR1cm4gcmVnaXN0ZXJTdHJpbmcocmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVy
biByZWdpc3RlclN0cmluZygqc3RyaW5nKTsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9CiAK
QEAgLTgxMSwxMSArODIyLDE0IEBAIFVDaGFyMzIgQ1NTVG9rZW5pemVyOjpjb25zdW1lRXNjYXBl
KCkKICAgICAgICAgfTsKICAgICAgICAgY29uc3VtZVNpbmdsZVdoaXRlc3BhY2VJZk5leHQoKTsK
ICAgICAgICAgYm9vbCBvayA9IGZhbHNlOwotICAgICAgICBVQ2hhcjMyIGNvZGVQb2ludCA9IGhl
eENoYXJzLnRvU3RyaW5nKCkudG9VSW50U3RyaWN0KCZvaywgMTYpOwotICAgICAgICBBU1NFUlQo
b2spOwotICAgICAgICBpZiAoIWNvZGVQb2ludCB8fCAoMHhEODAwIDw9IGNvZGVQb2ludCAmJiBj
b2RlUG9pbnQgPD0gMHhERkZGKSB8fCBjb2RlUG9pbnQgPiAweDEwRkZGRikKLSAgICAgICAgICAg
IHJldHVybiByZXBsYWNlbWVudENoYXJhY3RlcjsKLSAgICAgICAgcmV0dXJuIGNvZGVQb2ludDsK
KyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gaGV4Q2hhcnMudG9TdHJpbmcoKSkgeworICAgICAg
ICAgICAgVUNoYXIzMiBjb2RlUG9pbnQgPSBzdHJpbmctPnRvVUludFN0cmljdCgmb2ssIDE2KTsK
KyAgICAgICAgICAgIEFTU0VSVChvayk7CisgICAgICAgICAgICBpZiAoIWNvZGVQb2ludCB8fCAo
MHhEODAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhERkZGKSB8fCBjb2RlUG9pbnQg
PiAweDEwRkZGRikKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVwbGFjZW1lbnRDaGFyYWN0ZXI7
CisgICAgICAgICAgICByZXR1cm4gY29kZVBvaW50OworICAgICAgICB9CisgICAgICAgIENSQVNI
KCk7CiAgICAgfQogCiAgICAgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0cmluZ01hcC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGF0YXNldERPTVN0cmluZ01hcC5jcHAKaW5kZXggZjJkODQyMC4uZDU2NjdiNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcApAQCAtNjUsNyAr
NjUsOSBAQCBzdGF0aWMgU3RyaW5nIGNvbnZlcnRBdHRyaWJ1dGVOYW1lVG9Qcm9wZXJ0eU5hbWUo
Y29uc3QgU3RyaW5nJiBuYW1lKQogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIHN0cmlu
Z0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IHN0YXRpYyBib29sIHByb3BlcnR5TmFtZU1hdGNoZXNBdHRyaWJ1dGVOYW1lKGNvbnN0IFN0cmlu
ZyYgcHJvcGVydHlOYW1lLCBjb25zdCBTdHJpbmcmIGF0dHJpYnV0ZU5hbWUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAKaW5kZXggYTQzMjM5Ny4uNGY2YzdiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApA
QCAtMjE5Nyw3ICsyMTk3LDEwIEBAIHZvaWQgRWxlbWVudDo6Zm9ybWF0Rm9yRGVidWdnZXIoY2hh
ciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQo
cyk7CiAgICAgfQogCi0gICAgc3RybmNweShidWZmZXIsIHJlc3VsdC50b1N0cmluZygpLnV0Zjgo
KS5kYXRhKCksIGxlbmd0aCAtIDEpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0
cmluZygpKQorICAgICAgICBzdHJuY3B5KGJ1ZmZlciwgc3RyaW5nLT51dGY4KCkuZGF0YSgpLCBs
ZW5ndGggLSAxKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuY3BwCmluZGV4IGJiYTY3OGEyLi43NTNkZjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0x
NTIwLDcgKzE1MjAsOSBAQCBTdHJpbmcgTm9kZTo6dGV4dENvbnRlbnQoYm9vbCBjb252ZXJ0QlJz
VG9OZXdsaW5lcykgY29uc3QKICAgICBTdHJpbmdCdWlsZGVyIGNvbnRlbnQ7CiAgICAgYm9vbCBp
c051bGxTdHJpbmcgPSB0cnVlOwogICAgIGFwcGVuZFRleHRDb250ZW50KHRoaXMsIGNvbnZlcnRC
UnNUb05ld2xpbmVzLCBpc051bGxTdHJpbmcsIGNvbnRlbnQpOwotICAgIHJldHVybiBpc051bGxT
dHJpbmcgPyBTdHJpbmcoKSA6IGNvbnRlbnQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBjb250ZW50LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBpc051bGxTdHJpbmcgPyBT
dHJpbmcoKSA6ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4g
Tm9kZTo6c2V0VGV4dENvbnRlbnQoY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtMTczMSw3ICsxNzMz
LDEwIEBAIHZvaWQgTm9kZTo6c2hvd05vZGUoY29uc3QgY2hhciogcHJlZml4KSBjb25zdAogICAg
ICAgICBTdHJpbmdCdWlsZGVyIGF0dHJzOwogICAgICAgICBhcHBlbmRBdHRyaWJ1dGVEZXNjKHRo
aXMsIGF0dHJzLCBjbGFzc0F0dHIsICIgQ0xBU1M9Iik7CiAgICAgICAgIGFwcGVuZEF0dHJpYnV0
ZURlc2ModGhpcywgYXR0cnMsIHN0eWxlQXR0ciwgIiBTVFlMRT0iKTsKLSAgICAgICAgZnByaW50
ZihzdGRlcnIsICIlcyVzXHQlcCAocmVuZGVyZXIgJXApICVzJXMlc1xuIiwgcHJlZml4LCBub2Rl
TmFtZSgpLnV0ZjgoKS5kYXRhKCksIHRoaXMsIHJlbmRlcmVyKCksIGF0dHJzLnRvU3RyaW5nKCku
dXRmOCgpLmRhdGEoKSwgbmVlZHNTdHlsZVJlY2FsYygpID8gIiAobmVlZHMgc3R5bGUgcmVjYWxj
KSIgOiAiIiwgY2hpbGROZWVkc1N0eWxlUmVjYWxjKCkgPyAiIChjaGlsZCBuZWVkcyBzdHlsZSBy
ZWNhbGMpIiA6ICIiKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYXR0cnMudG9TdHJpbmco
KSkKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMlc1x0JXAgKHJlbmRlcmVyICVwKSAl
cyVzJXNcbiIsIHByZWZpeCwgbm9kZU5hbWUoKS51dGY4KCkuZGF0YSgpLCB0aGlzLCByZW5kZXJl
cigpLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCksIG5lZWRzU3R5bGVSZWNhbGMoKSA/ICIgKG5lZWRz
IHN0eWxlIHJlY2FsYykiIDogIiIsIGNoaWxkTmVlZHNTdHlsZVJlY2FsYygpID8gIiAoY2hpbGQg
bmVlZHMgc3R5bGUgcmVjYWxjKSIgOiAiIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENS
QVNIKCk7CiAgICAgfQogfQogCkBAIC0xODAzLDEyICsxODA4LDE5IEBAIHN0YXRpYyB2b2lkIHRy
YXZlcnNlVHJlZUFuZE1hcmsoY29uc3QgU3RyaW5nJiBiYXNlSW5kZW50LCBjb25zdCBOb2RlKiBy
b290Tm9kZSwKICAgICAgICAgaW5kZW50LmFwcGVuZChiYXNlSW5kZW50KTsKICAgICAgICAgZm9y
IChjb25zdCBOb2RlKiB0bXBOb2RlID0gbm9kZTsgdG1wTm9kZSAmJiB0bXBOb2RlICE9IHJvb3RO
b2RlOyB0bXBOb2RlID0gdG1wTm9kZS0+cGFyZW50T3JTaGFkb3dIb3N0Tm9kZSgpKQogICAgICAg
ICAgICAgaW5kZW50LmFwcGVuZCgnXHQnKTsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICIlcyIs
IGluZGVudC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBpbmRlbnQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMi
LCBzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFT
SCgpOwogICAgICAgICBub2RlLT5zaG93Tm9kZSgpOwogICAgICAgICBpbmRlbnQuYXBwZW5kKCdc
dCcpOwogICAgICAgICBpZiAoIW5vZGUtPmlzU2hhZG93Um9vdCgpKSB7Ci0gICAgICAgICAgICBp
ZiAoU2hhZG93Um9vdCogc2hhZG93Um9vdCA9IG5vZGUtPnNoYWRvd1Jvb3QoKSkKLSAgICAgICAg
ICAgICAgICB0cmF2ZXJzZVRyZWVBbmRNYXJrKGluZGVudC50b1N0cmluZygpLCBzaGFkb3dSb290
LCBtYXJrZWROb2RlMSwgbWFya2VkTGFiZWwxLCBtYXJrZWROb2RlMiwgbWFya2VkTGFiZWwyKTsK
KyAgICAgICAgICAgIGlmIChTaGFkb3dSb290KiBzaGFkb3dSb290ID0gbm9kZS0+c2hhZG93Um9v
dCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gaW5kZW50LnRvU3RyaW5n
KCkpCisgICAgICAgICAgICAgICAgICAgIHRyYXZlcnNlVHJlZUFuZE1hcmsoKnN0cmluZywgc2hh
ZG93Um9vdCwgbWFya2VkTm9kZTEsIG1hcmtlZExhYmVsMSwgbWFya2VkTm9kZTIsIG1hcmtlZExh
YmVsMik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBDUkFTSCgp
OworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5j
cHAKaW5kZXggODlhNTA2Zi4uYTUyMDE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1Bvc2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCkBAIC0x
NDE5LDcgKzE0MTksMTAgQEAgdm9pZCBQb3NpdGlvbjo6Zm9ybWF0Rm9yRGVidWdnZXIoY2hhciog
YnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQocyk7
CiAgICAgfQogCi0gICAgc3RybmNweShidWZmZXIsIHJlc3VsdC50b1N0cmluZygpLnV0ZjgoKS5k
YXRhKCksIGxlbmd0aCAtIDEpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmlu
ZygpKQorICAgICAgICBzdHJuY3B5KGJ1ZmZlciwgc3RyaW5nLT51dGY4KCkuZGF0YSgpLCBsZW5n
dGggLSAxKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgUG9zaXRpb246
OnNob3dBbmNob3JUeXBlQW5kT2Zmc2V0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9SYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCmluZGV4IGE1
N2E1ZTIuLjE1OTg3MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcApAQCAtOTQ5LDcgKzk0OSw5IEBAIFN0
cmluZyBSYW5nZTo6dG9TdHJpbmcoKSBjb25zdAogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0
dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0
cmluZyBSYW5nZTo6dG9IVE1MKCkgY29uc3QKQEAgLTE1MzUsNyArMTUzNywxMCBAQCB2b2lkIFJh
bmdlOjpmb3JtYXRGb3JEZWJ1Z2dlcihjaGFyKiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkgY29u
c3QKICAgICBlbmRDb250YWluZXIoKS5mb3JtYXRGb3JEZWJ1Z2dlcihzLCBGb3JtYXRCdWZmZXJT
aXplKTsKICAgICByZXN1bHQuYXBwZW5kKHMpOwogCi0gICAgc3RybmNweShidWZmZXIsIHJlc3Vs
dC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBzdHJuY3B5KGJ1ZmZlciwgc3RyaW5n
LT51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7
CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5p
bWF0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0ZWRBbmltYXRp
b25Db250cm9sbGVyLmNwcAppbmRleCBjNGQ4NWQ4Li5hNTAzOTBjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcApAQCAtMTEyLDcg
KzExMiw5IEBAIHN0YXRpYyBTdHJpbmcgdGhyb3R0bGluZ1JlYXNvbnNUb1N0cmluZyhPcHRpb25T
ZXQ8U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpUCiAgICAgICAgICAgICBidWlsZGVyLmFw
cGVuZCgnfCcpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCh0aHJvdHRsaW5nUmVhc29uVG9TdHJp
bmcocmVhc29uKSk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TZWN1cml0eUNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5
Q29udGV4dC5jcHAKaW5kZXggNGY4ZjFhOC4uMTQ4MjIxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Nl
Y3VyaXR5Q29udGV4dC5jcHAKQEAgLTE1Miw3ICsxNTIsMTAgQEAgU2FuZGJveEZsYWdzIFNlY3Vy
aXR5Q29udGV4dDo6cGFyc2VTYW5kYm94UG9saWN5KGNvbnN0IFN0cmluZyYgcG9saWN5LCBTdHJp
bmcmIGkKICAgICAgICAgICAgIHRva2VuRXJyb3JzLmFwcGVuZExpdGVyYWwoIiBhcmUgaW52YWxp
ZCBzYW5kYm94IGZsYWdzLiIpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB0b2tlbkVycm9y
cy5hcHBlbmRMaXRlcmFsKCIgaXMgYW4gaW52YWxpZCBzYW5kYm94IGZsYWcuIik7Ci0gICAgICAg
IGludmFsaWRUb2tlbnNFcnJvck1lc3NhZ2UgPSB0b2tlbkVycm9ycy50b1N0cmluZygpOworICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSB0b2tlbkVycm9ycy50b1N0cmluZygpKQorICAgICAgICAg
ICAgaW52YWxpZFRva2Vuc0Vycm9yTWVzc2FnZSA9ICpzdHJpbmc7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIGZsYWdzOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQu
Y3BwCmluZGV4IDczMTVkMTYuLmIzMjdmNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKQEAgLTExMyw3ICsx
MTMsOSBAQCBTdHJpbmcgVGV4dDo6d2hvbGVUZXh0KCkgY29uc3QKICAgICBTdHJpbmdCdWlsZGVy
IHJlc3VsdDsKICAgICBmb3IgKGNvbnN0IFRleHQqIHRleHQgPSBzdGFydFRleHQ7IHRleHQgIT0g
b25lUGFzdEVuZFRleHQ7IHRleHQgPSBUZXh0Tm9kZVRyYXZlcnNhbDo6bmV4dFNpYmxpbmcoKnRl
eHQpKQogICAgICAgICByZXN1bHQuYXBwZW5kKHRleHQtPmRhdGEoKSk7Ci0gICAgcmV0dXJuIHJl
c3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBSZWZQdHI8VGV4
dD4gVGV4dDo6cmVwbGFjZVdob2xlVGV4dChjb25zdCBTdHJpbmcmIG5ld1RleHQpCkBAIC0yNDAs
NyArMjQyLDEwIEBAIHZvaWQgVGV4dDo6Zm9ybWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1
bnNpZ25lZCBsZW5ndGgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyInKTsKICAgICB9
CiAKLSAgICBzdHJuY3B5KGJ1ZmZlciwgcmVzdWx0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwg
bGVuZ3RoIC0gMSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisg
ICAgICAgIHN0cm5jcHkoYnVmZmVyLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEp
OworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICBidWZmZXJbbGVuZ3RoIC0gMV0gPSAn
XDAnOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dE5vZGVU
cmF2ZXJzYWwuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHROb2RlVHJhdmVyc2FsLmNwcApp
bmRleCBiNzhjYTc5Li42ZDQxOGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4
dE5vZGVUcmF2ZXJzYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0Tm9kZVRyYXZl
cnNhbC5jcHAKQEAgLTQyLDcgKzQyLDkgQEAgU3RyaW5nIGNvbnRlbnRzQXNTdHJpbmcoY29uc3Qg
Q29udGFpbmVyTm9kZSYgcm9vdCkKIHsKICAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKICAgICBh
cHBlbmRDb250ZW50cyhyb290LCByZXN1bHQpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIGNvbnRlbnRzQXNTdHJpbmco
Y29uc3QgTm9kZSYgcm9vdCkKQEAgLTU5LDcgKzYxLDkgQEAgU3RyaW5nIGNoaWxkVGV4dENvbnRl
bnQoY29uc3QgQ29udGFpbmVyTm9kZSYgcm9vdCkKICAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsK
ICAgICBmb3IgKFRleHQqIHRleHQgPSBUZXh0Tm9kZVRyYXZlcnNhbDo6Zmlyc3RDaGlsZChyb290
KTsgdGV4dDsgdGV4dCA9IFRleHROb2RlVHJhdmVyc2FsOjpuZXh0U2libGluZygqdGV4dCkpCiAg
ICAgICAgIHJlc3VsdC5hcHBlbmQodGV4dC0+ZGF0YSgpKTsKLSAgICByZXR1cm4gcmVzdWx0LnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKaW5kZXggNjlkOGFmMi4uYWUxNmYyZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKQEAgLTEz
ODIsNyArMTM4MiwxMCBAQCB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjphZGRCbG9ja1N0eWxlKGNv
bnN0IFN0eWxlQ2hhbmdlJiBzdHlsZUNoYW5nZSwgSFRNTEVsZW1lbgogICAgICAgICAgICAgY3Nz
VGV4dC5hcHBlbmQoJyAnKTsKICAgICAgICAgY3NzVGV4dC5hcHBlbmQoZGVjbC0+YXNUZXh0KCkp
OwogICAgIH0KLSAgICBzZXROb2RlQXR0cmlidXRlKGJsb2NrLCBzdHlsZUF0dHIsIGNzc1RleHQu
dG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gY3NzVGV4dC50b1N0cmluZygpKQor
ICAgICAgICBzZXROb2RlQXR0cmlidXRlKGJsb2NrLCBzdHlsZUF0dHIsICpzdHJpbmcpOworICAg
IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6YWRk
SW5saW5lU3R5bGVJZk5lZWRlZChFZGl0aW5nU3R5bGUqIHN0eWxlLCBOb2RlJiBzdGFydCwgTm9k
ZSYgZW5kLCBFQWRkU3R5bGVkRWxlbWVudCBhZGRTdHlsZWRFbGVtZW50KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdGluZy5jcHAKaW5kZXggZTc5YjY0Ni4uMzBjMTY4MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRpbmcuY3BwCkBAIC00MjksNyArNDI5LDkgQEAgU3RyaW5nIHN0cmluZ1dpdGhSZWJhbGFu
Y2VkV2hpdGVzcGFjZShjb25zdCBTdHJpbmcmIHN0cmluZywgYm9vbCBzdGFydElzU3RhcnRPZlAK
IAogICAgIHJlYmFsYW5jZWRTdHJpbmcucmVzZXJ2ZUNhcGFjaXR5KGxlbmd0aCk7CiAgICAgcmVi
YWxhbmNlZFN0cmluZy5hcHBlbmQoc3RyaW5nLCByZWJhbGFuY2VkU3RyaW5nLmxlbmd0aCgpLCBs
ZW5ndGggLSByZWJhbGFuY2VkU3RyaW5nLmxlbmd0aCgpKTsKLSAgICByZXR1cm4gcmViYWxhbmNl
ZFN0cmluZy50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlYmFsYW5jZWRTdHJp
bmcudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogYm9vbCBpc1RhYmxlU3RydWN0dXJlTm9kZShjb25zdCBOb2RlKiBub2RlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9IVE1MSW50ZXJjaGFuZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9IVE1MSW50ZXJjaGFuZ2UuY3BwCmluZGV4IGIyMjM0M2IuLmNmODUyMzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSFRNTEludGVyY2hhbmdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0hUTUxJbnRlcmNoYW5nZS5jcHAKQEAgLTk1LDcg
Kzk1LDkgQEAgU3RyaW5nIGNvbnZlcnRIVE1MVGV4dFRvSW50ZXJjaGFuZ2VGb3JtYXQoY29uc3Qg
U3RyaW5nJiBpbiwgY29uc3QgVGV4dCogbm9kZSkKICAgICAgICAgaSArPSBjb25zdW1lZDsKICAg
ICB9CiAKLSAgICByZXR1cm4gcy50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHMu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9NYXJrdXBBY2N1bXVsYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFj
Y3VtdWxhdG9yLmNwcAppbmRleCA5MDY5NjdmLi42N2U3NmMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcApAQCAtMTMwLDcgKzEzMCw5IEBAIE1hcmt1
cEFjY3VtdWxhdG9yOjp+TWFya3VwQWNjdW11bGF0b3IoKSA9IGRlZmF1bHQ7CiBTdHJpbmcgTWFy
a3VwQWNjdW11bGF0b3I6OnNlcmlhbGl6ZU5vZGVzKE5vZGUmIHRhcmdldE5vZGUsIEVDaGlsZHJl
bk9ubHkgY2hpbGRyZW5Pbmx5LCBWZWN0b3I8UXVhbGlmaWVkTmFtZT4qIHRhZ05hbWVzVG9Ta2lw
KQogewogICAgIHNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXModGFyZ2V0Tm9kZSwgY2hpbGRy
ZW5Pbmx5LCAwLCB0YWdOYW1lc1RvU2tpcCk7Ci0gICAgcmV0dXJuIG1fbWFya3VwLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbV9tYXJrdXAudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBNYXJrdXBBY2N1bXVsYXRv
cjo6c2VyaWFsaXplTm9kZXNXaXRoTmFtZXNwYWNlcyhOb2RlJiB0YXJnZXROb2RlLCBFQ2hpbGRy
ZW5Pbmx5IGNoaWxkcmVuT25seSwgY29uc3QgTmFtZXNwYWNlcyogbmFtZXNwYWNlcywgVmVjdG9y
PFF1YWxpZmllZE5hbWU+KiB0YWdOYW1lc1RvU2tpcCkKQEAgLTQ4MywxMSArNDg1LDE0IEBAIHZv
aWQgTWFya3VwQWNjdW11bGF0b3I6OmdlbmVyYXRlVW5pcXVlUHJlZml4KFF1YWxpZmllZE5hbWUm
IHByZWZpeGVkTmFtZSwgY29uc3QKICAgICAgICAgYnVpbGRlci5jbGVhcigpOwogICAgICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIk5TIik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVy
KCsrbV9wcmVmaXhMZXZlbCk7Ci0gICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGJ1
aWxkZXIudG9BdG9taWNTdHJpbmcoKTsKLSAgICAgICAgaWYgKCFuYW1lc3BhY2VzLmdldChuYW1l
LmltcGwoKSkpIHsKLSAgICAgICAgICAgIHByZWZpeGVkTmFtZS5zZXRQcmVmaXgobmFtZSk7Ci0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
YnVpbGRlci50b0F0b21pY1N0cmluZygpKSB7CisgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWUgPSAqc3RyaW5nOworICAgICAgICAgICAgaWYgKCFuYW1lc3BhY2VzLmdldChuYW1l
LmltcGwoKSkpIHsKKyAgICAgICAgICAgICAgICBwcmVmaXhlZE5hbWUuc2V0UHJlZml4KG5hbWUp
OworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0gd2hpbGUgKHRydWUpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKaW5kZXggNjU3NGYxZS4uZjU0MzFlZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcApAQCAtMjY2NywxMiArMjY2Nywx
NSBAQCBTdHJpbmcgcGxhaW5UZXh0KGNvbnN0IFJhbmdlKiByLCBUZXh0SXRlcmF0b3JCZWhhdmlv
ciBkZWZhdWx0QmVoYXZpb3IsIGJvb2wgaXNEaQogICAgIGlmICghYnVmZmVyTGVuZ3RoKQogICAg
ICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIAotICAgIFN0cmluZyByZXN1bHQgPSBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKSB7
CisgICAgICAgIFN0cmluZyByZXN1bHQgPSAqc3RyaW5nOwogCi0gICAgaWYgKGlzRGlzcGxheVN0
cmluZykKLSAgICAgICAgci0+b3duZXJEb2N1bWVudCgpLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5
RW5jb2RpbmcocmVzdWx0KTsKKyAgICAgICAgaWYgKGlzRGlzcGxheVN0cmluZykKKyAgICAgICAg
ICAgIHItPm93bmVyRG9jdW1lbnQoKS5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKHJl
c3VsdCk7CiAKLSAgICByZXR1cm4gcmVzdWx0OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
IH0KKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgcGxhaW5UZXh0UmVwbGFjaW5nTm9CcmVha1Nw
YWNlKGNvbnN0IFJhbmdlKiByYW5nZSwgVGV4dEl0ZXJhdG9yQmVoYXZpb3IgZGVmYXVsdEJlaGF2
aW9yLCBib29sIGlzRGlzcGxheVN0cmluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0Nv
bW1hbmQuY3BwCmluZGV4IGZkNzkwNjYuLmJlZTYzZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdDb21tYW5kLmNwcApAQCAtNDI1LDcgKzQyNSw5IEBAIFJlZlB0cjxEYXRhVHJhbnNm
ZXI+IFR5cGluZ0NvbW1hbmQ6OmlucHV0RXZlbnREYXRhVHJhbnNmZXIoKSBjb25zdAogCiAgICAg
U3RyaW5nQnVpbGRlciBodG1sVGV4dDsKICAgICBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kQ2hh
cmFjdGVyc1JlcGxhY2luZ0VudGl0aWVzKGh0bWxUZXh0LCBtX2N1cnJlbnRUZXh0VG9JbnNlcnQs
IDAsIG1fY3VycmVudFRleHRUb0luc2VydC5sZW5ndGgoKSwgRW50aXR5TWFza0luSFRNTFBDREFU
QSk7Ci0gICAgcmV0dXJuIERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9ySW5wdXRFdmVudChtX2N1cnJl
bnRUZXh0VG9JbnNlcnQsIGh0bWxUZXh0LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGh0bWxUZXh0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNy
ZWF0ZUZvcklucHV0RXZlbnQobV9jdXJyZW50VGV4dFRvSW5zZXJ0LCAqc3RyaW5nKTsKKyAgICBD
UkFTSCgpOwogfQogCiB2b2lkIFR5cGluZ0NvbW1hbmQ6OmRpZEFwcGx5Q29tbWFuZCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcAppbmRleCAxODY1MGFiLi43
M2FjY2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAK
QEAgLTcwNyw3ICs3MDcsMTAgQEAgdm9pZCBWaXNpYmxlU2VsZWN0aW9uOjpmb3JtYXRGb3JEZWJ1
Z2dlcihjaGFyKiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3QKICAgICAgICAgcmVzdWx0
LmFwcGVuZChzKTsKICAgICB9CiAKLSAgICBzdHJuY3B5KGJ1ZmZlciwgcmVzdWx0LnRvU3RyaW5n
KCkudXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0gMSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVz
dWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHN0cm5jcHkoYnVmZmVyLCBzdHJpbmctPnV0ZjgoKS5k
YXRhKCksIGxlbmd0aCAtIDEpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9p
ZCBWaXNpYmxlU2VsZWN0aW9uOjpzaG93VHJlZUZvclRoaXMoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tCmluZGV4IGY0NDU2MTYuLmU5ODY0
NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlv
bi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0K
QEAgLTMxOSw3ICszMTksOSBAQCBzdGF0aWMgU3RyaW5nIGRhdGFEZXRlY3RvclN0cmluZ0ZvclBh
dGgoTlNJbmRleFBhdGggKnBhdGgpCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVy
KCh1bnNpZ25lZCBsb25nKVtwYXRoIGluZGV4QXRQb3NpdGlvbjowXSk7CiAgICAgICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kKCcvJyk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVy
KCh1bnNpZ25lZCBsb25nKVtwYXRoIGluZGV4QXRQb3NpdGlvbjoxXSk7Ci0gICAgICAgIHJldHVy
biBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
ICAgICBDUkFTSCgpOwogICAgIH0KICAgICBkZWZhdWx0OiB7CiAgICAgICAgIFN0cmluZ0J1aWxk
ZXIgc3RyaW5nQnVpbGRlcjsKQEAgLTMyOSw3ICszMzEsOSBAQCBzdGF0aWMgU3RyaW5nIGRhdGFE
ZXRlY3RvclN0cmluZ0ZvclBhdGgoTlNJbmRleFBhdGggKnBhdGgpCiAgICAgICAgICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZE51bWJlcigodW5zaWduZWQgbG9uZylbcGF0aCBpbmRleEF0UG9zaXRp
b246aV0pOwogICAgICAgICB9CiAKLSAgICAgICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQog
ICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENv
bnZlcnRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5t
bQppbmRleCA2YjEzOTdlLi41ZDMyOTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9j
b2NvYS9IVE1MQ29udmVydGVyLm1tCkBAIC0yMjU0LDcgKzIyNTQsMTAgQEAgdm9pZCBIVE1MQ29u
dmVydGVyOjpfcHJvY2Vzc1RleHQoQ2hhcmFjdGVyRGF0YSYgY2hhcmFjdGVyRGF0YSkKICAgICAg
ICAgfQogICAgICAgICBpZiAod2FzU3BhY2UpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgn
ICcpOwotICAgICAgICBvdXRwdXRTdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIG91dHB1
dFN0cmluZyA9ICpzdHJpbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAg
ICAgfQogCiAgICAgaWYgKG91dHB1dFN0cmluZy5sZW5ndGgoKSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9pb3MvRWRpdG9ySU9TLm1tCmluZGV4IDU2MjEzNTUuLjJmZTU0NjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0KQEAgLTI4NCw3ICsyODQsMTAgQEAgdm9pZCBF
ZGl0b3I6OnNldERpY3RhdGlvblBocmFzZXNBc0NoaWxkT2ZFbGVtZW50KGNvbnN0IFZlY3RvcjxW
ZWN0b3I8U3RyaW5nPj4mIGQKICAgICBmb3IgKGF1dG8mIGludGVycHJldGF0aW9ucyA6IGRpY3Rh
dGlvblBocmFzZXMpCiAgICAgICAgIGRpY3RhdGlvblBocmFzZXNCdWlsZGVyLmFwcGVuZChpbnRl
cnByZXRhdGlvbnNbMF0pOwogCi0gICAgZWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVGcmFnbWVu
dEZyb21UZXh0KCpjb250ZXh0LCBkaWN0YXRpb25QaHJhc2VzQnVpbGRlci50b1N0cmluZygpKSk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gZGljdGF0aW9uUGhyYXNlc0J1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpj
b250ZXh0LCAqc3RyaW5nKSk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgLy8g
V2UgbmVlZCBhIGxheW91dCBpbiBvcmRlciB0byBhZGQgbWFya2VycyBiZWxvdy4KICAgICBkb2N1
bWVudCgpLnVwZGF0ZUxheW91dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9tYXJrdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCmluZGV4IDU1
NTFlZWMuLmQ1Njg4MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3Vw
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKQEAgLTI5MCw3ICsy
OTAsMTAgQEAgdm9pZCBTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6d3JhcFdpdGhOb2RlKE5vZGUm
IG5vZGUsIGJvb2wgY29udmVydEJsb2Nrc1RvSW5saW4KICAgICAgICAgYXBwZW5kRWxlbWVudCht
YXJrdXAsIGRvd25jYXN0PEVsZW1lbnQ+KG5vZGUpLCBjb252ZXJ0QmxvY2tzVG9JbmxpbmVzICYm
IGlzQmxvY2soJm5vZGUpLCByYW5nZUZ1bGx5U2VsZWN0c05vZGUpOwogICAgIGVsc2UKICAgICAg
ICAgYXBwZW5kU3RhcnRNYXJrdXAobWFya3VwLCBub2RlLCBudWxscHRyKTsKLSAgICBtX3JldmVy
c2VkUHJlY2VkaW5nTWFya3VwLmFwcGVuZChtYXJrdXAudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gbWFya3VwLnRvU3RyaW5nKCkpCisgICAgICAgIG1fcmV2ZXJzZWRQcmVjZWRp
bmdNYXJrdXAuYXBwZW5kKCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAg
ICBhcHBlbmRFbmRUYWcobm9kZSk7CiAgICAgaWYgKG1fbm9kZXMpCiAgICAgICAgIG1fbm9kZXMt
PmFwcGVuZCgmbm9kZSk7CkBAIC0zMDAsNyArMzAzLDEwIEBAIHZvaWQgU3R5bGVkTWFya3VwQWNj
dW11bGF0b3I6OndyYXBXaXRoU3R5bGVOb2RlKFN0eWxlUHJvcGVydGllcyogc3R5bGUsIERvY3Vt
ZW50CiB7CiAgICAgU3RyaW5nQnVpbGRlciBvcGVuVGFnOwogICAgIGFwcGVuZFN0eWxlTm9kZU9w
ZW5UYWcob3BlblRhZywgc3R5bGUsIGRvY3VtZW50LCBpc0Jsb2NrKTsKLSAgICBtX3JldmVyc2Vk
UHJlY2VkaW5nTWFya3VwLmFwcGVuZChvcGVuVGFnLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IG9wZW5UYWcudG9TdHJpbmcoKSkKKyAgICAgICAgbV9yZXZlcnNlZFByZWNlZGlu
Z01hcmt1cC5hcHBlbmQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAg
IGFwcGVuZFN0cmluZyhzdHlsZU5vZGVDbG9zZVRhZyhpc0Jsb2NrKSk7CiB9CiAKQEAgLTMzNCw3
ICszNDAsOSBAQCBTdHJpbmcgU3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OnRha2VSZXN1bHRzKCkK
ICAgICBjb25jYXRlbmF0ZU1hcmt1cChyZXN1bHQpOwogCiAgICAgLy8gV2UgcmVtb3ZlICdcMCcg
Y2hhcmFjdGVycyBiZWNhdXNlIHRoZXkgYXJlIG5vdCB2aXNpYmx5IHJlbmRlcmVkIHRvIHRoZSB1
c2VyLgotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKS5yZXBsYWNlV2l0aExpdGVyYWwoJ1ww
JywgIiIpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gc3RyaW5nLT5yZXBsYWNlV2l0aExpdGVyYWwoJ1wwJywgIiIpOworICAgIENSQVNI
KCk7CiB9CiAKIHZvaWQgU3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZFRleHQoU3RyaW5n
QnVpbGRlciYgb3V0LCBjb25zdCBUZXh0JiB0ZXh0KQpAQCAtMzU5LDcgKzM2NywxMCBAQCB2b2lk
IFN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRUZXh0KFN0cmluZ0J1aWxkZXImIG91dCwg
Y29uc3QgVGV4dCYgdGV4dCkKICAgICAgICAgU3RyaW5nIGNvbnRlbnQgPSB1c2VSZW5kZXJlZFRl
eHQgPyByZW5kZXJlZFRleHQodGV4dCwgbV9yYW5nZSkgOiBzdHJpbmdWYWx1ZUZvclJhbmdlKHRl
eHQsIG1fcmFuZ2UpOwogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1ZmZlcjsKICAgICAgICAgYXBw
ZW5kQ2hhcmFjdGVyc1JlcGxhY2luZ0VudGl0aWVzKGJ1ZmZlciwgY29udGVudCwgMCwgY29udGVu
dC5sZW5ndGgoKSwgRW50aXR5TWFza0luUENEQVRBKTsKLSAgICAgICAgb3V0LmFwcGVuZChjb252
ZXJ0SFRNTFRleHRUb0ludGVyY2hhbmdlRm9ybWF0KGJ1ZmZlci50b1N0cmluZygpLCAmdGV4dCkp
OworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWZmZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
ICAgIG91dC5hcHBlbmQoY29udmVydEhUTUxUZXh0VG9JbnRlcmNoYW5nZUZvcm1hdCgqc3RyaW5n
LCAmdGV4dCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAog
ICAgIGlmICh3cmFwcGluZ1NwYW4pCkBAIC04NzMsNyArODg0LDkgQEAgU3RyaW5nIHNhbml0aXpl
ZE1hcmt1cEZvckZyYWdtZW50SW5Eb2N1bWVudChSZWY8RG9jdW1lbnRGcmFnbWVudD4mJiBmcmFn
bWVudCwgRG8KICAgICAgICAgICAgICJ4bWxucz1cImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1o
dG1sNDBcIj4iKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQocmVzdWx0KTsKICAgICAgICAgYnVp
bGRlci5hcHBlbmRMaXRlcmFsKCI8L2h0bWw+Iik7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRv
U3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KIAog
ICAgIHJldHVybiByZXN1bHQ7CkBAIC0xMDkyLDcgKzExMDUsOSBAQCBTdHJpbmcgdXJsVG9NYXJr
dXAoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUpCiAgICAgbWFya3VwLmFwcGVu
ZExpdGVyYWwoIlwiPiIpOwogICAgIE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRDaGFyYWN0ZXJz
UmVwbGFjaW5nRW50aXRpZXMobWFya3VwLCB0aXRsZSwgMCwgdGl0bGUubGVuZ3RoKCksIEVudGl0
eU1hc2tJblBDREFUQSk7CiAgICAgbWFya3VwLmFwcGVuZExpdGVyYWwoIjwvYT4iKTsKLSAgICBy
ZXR1cm4gbWFya3VwLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWFya3VwLnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIEV4
Y2VwdGlvbk9yPFJlZjxEb2N1bWVudEZyYWdtZW50Pj4gY3JlYXRlRnJhZ21lbnRGb3JJbm5lck91
dGVySFRNTChFbGVtZW50JiBjb250ZXh0RWxlbWVudCwgY29uc3QgU3RyaW5nJiBtYXJrdXAsIFBh
cnNlckNvbnRlbnRQb2xpY3kgcGFyc2VyQ29udGVudFBvbGljeSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9m
aWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwCmluZGV4IDlhMjIzNGYuLjI4MzQ1YWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcApAQCAtMzM3LDIwICsz
MzcsMjAgQEAgdm9pZCBGaWxlUmVhZGVyTG9hZGVyOjpjb252ZXJ0VG9EYXRhVVJMKCkKICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJkYXRhOiIp
OwogCi0gICAgaWYgKCFtX2J5dGVzTG9hZGVkKSB7Ci0gICAgICAgIG1fc3RyaW5nUmVzdWx0ID0g
YnVpbGRlci50b1N0cmluZygpOwotICAgICAgICByZXR1cm47CisgICAgaWYgKG1fYnl0ZXNMb2Fk
ZWQpIHsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQobV9kYXRhVHlwZSk7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiO2Jhc2U2NCwiKTsKKworICAgICAgICBWZWN0b3I8Y2hhcj4gb3V0
OworICAgICAgICBiYXNlNjRFbmNvZGUobV9yYXdEYXRhLT5kYXRhKCksIG1fYnl0ZXNMb2FkZWQs
IG91dCk7CisgICAgICAgIG91dC5hcHBlbmQoJ1wwJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KG91dC5kYXRhKCkpOwogICAgIH0KIAotICAgIGJ1aWxkZXIuYXBwZW5kKG1fZGF0YVR5cGUpOwot
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiO2Jhc2U2NCwiKTsKLQotICAgIFZlY3RvcjxjaGFy
PiBvdXQ7Ci0gICAgYmFzZTY0RW5jb2RlKG1fcmF3RGF0YS0+ZGF0YSgpLCBtX2J5dGVzTG9hZGVk
LCBvdXQpOwotICAgIG91dC5hcHBlbmQoJ1wwJyk7Ci0gICAgYnVpbGRlci5hcHBlbmQob3V0LmRh
dGEoKSk7Ci0KLSAgICBtX3N0cmluZ1Jlc3VsdCA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIG1fc3RyaW5nUmVz
dWx0ID0gKnN0cmluZzsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgRmls
ZVJlYWRlckxvYWRlcjo6aXNDb21wbGV0ZWQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tl
bkxpc3QuY3BwCmluZGV4IGM5NWY5NjkuLmRiNDI5NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRv
a2VuTGlzdC5jcHAKQEAgLTI3MywxMCArMjczLDEzIEBAIHZvaWQgRE9NVG9rZW5MaXN0Ojp1cGRh
dGVBc3NvY2lhdGVkQXR0cmlidXRlRnJvbVRva2VucygpCiAgICAgICAgICAgICBidWlsZGVyLmFw
cGVuZCgnICcpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCh0b2tlbik7CiAgICAgfQotICAgIEF0
b21pY1N0cmluZyBzZXJpYWxpemVkVmFsdWUgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpKSB7CisgICAgICAg
IEF0b21pY1N0cmluZyBzZXJpYWxpemVkVmFsdWUgPSAqc3RyaW5nOwogCi0gICAgU2V0Rm9yU2Nv
cGU8Ym9vbD4gaW5BdHRyaWJ1dGVVcGRhdGUobV9pblVwZGF0ZUFzc29jaWF0ZWRBdHRyaWJ1dGVG
cm9tVG9rZW5zLCB0cnVlKTsKLSAgICBtX2VsZW1lbnQuc2V0QXR0cmlidXRlKG1fYXR0cmlidXRl
TmFtZSwgc2VyaWFsaXplZFZhbHVlKTsKKyAgICAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaW5BdHRy
aWJ1dGVVcGRhdGUobV9pblVwZGF0ZUFzc29jaWF0ZWRBdHRyaWJ1dGVGcm9tVG9rZW5zLCB0cnVl
KTsKKyAgICAgICAgbV9lbGVtZW50LnNldEF0dHJpYnV0ZShtX2F0dHJpYnV0ZU5hbWUsIHNlcmlh
bGl6ZWRWYWx1ZSk7CisgICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIFZlY3RvcjxB
dG9taWNTdHJpbmc+JiBET01Ub2tlbkxpc3Q6OnRva2VucygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1h
aWxJbnB1dFR5cGUuY3BwCmluZGV4IGI5M2UxMmIuLjU4MzZjN2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRW1haWxJbnB1dFR5cGUuY3BwCkBAIC0xMDQsNyArMTA0LDkgQEAgU3RyaW5nIEVtYWlsSW5w
dXRUeXBlOjpzYW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcG9zZWRWYWx1ZSkgY29uc3QK
ICAgICAgICAgICAgIHN0cmlwcGVkVmFsdWUuYXBwZW5kKCcsJyk7CiAgICAgICAgIHN0cmlwcGVk
VmFsdWUuYXBwZW5kKHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhhZGRyZXNzZXNb
aV0pKTsKICAgICB9Ci0gICAgcmV0dXJuIHN0cmlwcGVkVmFsdWUudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBzdHJpcHBlZFZhbHVlLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IDNlNTVhMDUuLmZkYzQ5YzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtNDY3LDcgKzQ2Nyw5IEBAIFN0
cmluZyBGaWxlSW5wdXRUeXBlOjpkZWZhdWx0VG9vbFRpcCgpIGNvbnN0CiAgICAgICAgIGlmIChp
ICE9IGxpc3RTaXplIC0gMSkKICAgICAgICAgICAgIG5hbWVzLmFwcGVuZCgnXG4nKTsKICAgICB9
Ci0gICAgcmV0dXJuIG5hbWVzLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbmFt
ZXMudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwCmluZGV4IDBmNWI3NzUuLjFh
MjlhNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwCkBAIC0zMTIsNyAr
MzEyLDkgQEAgc3RhdGljIGlubGluZSBTdHJpbmcgZm9ybVNpZ25hdHVyZShjb25zdCBIVE1MRm9y
bUVsZW1lbnQmIGZvcm0pCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGFjdGlvblVSTC5zdHJpbmco
KSk7CiAKICAgICByZWNvcmRGb3JtU3RydWN0dXJlKGZvcm0sIGJ1aWxkZXIpOwotICAgIHJldHVy
biBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBBdG9t
aWNTdHJpbmcgRm9ybUtleUdlbmVyYXRvcjo6Zm9ybUtleShjb25zdCBIVE1MRm9ybUNvbnRyb2xF
bGVtZW50V2l0aFN0YXRlJiBjb250cm9sKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQW5jaG9yRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JF
bGVtZW50LmNwcAppbmRleCA3MTUyMzE3Li5hNzAyNmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcApAQCAtNDAwLDEwICs0MDAsMTQgQEAgdm9pZCBIVE1MQW5j
aG9yRWxlbWVudDo6aGFuZGxlQ2xpY2soRXZlbnQmIGV2ZW50KQogICAgIGlmICghZnJhbWUpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIFN0cmluZ0J1aWxkZXIgdXJsOwotICAgIHVybC5hcHBlbmQo
c3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJv
bml6YXRpb24oaHJlZkF0dHIpKSk7Ci0gICAgYXBwZW5kU2VydmVyTWFwTW91c2VQb3NpdGlvbih1
cmwsIGV2ZW50KTsKLSAgICBVUkwgY29tcGxldGVkVVJMID0gZG9jdW1lbnQoKS5jb21wbGV0ZVVS
TCh1cmwudG9TdHJpbmcoKSk7CisgICAgVVJMIGNvbXBsZXRlZFVSTCA9IGRvY3VtZW50KCkuY29t
cGxldGVVUkwoWyZdICgpIHsKKyAgICAgICAgU3RyaW5nQnVpbGRlciB1cmw7CisgICAgICAgIHVy
bC5hcHBlbmQoc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKGF0dHJpYnV0ZVdpdGhv
dXRTeW5jaHJvbml6YXRpb24oaHJlZkF0dHIpKSk7CisgICAgICAgIGFwcGVuZFNlcnZlck1hcE1v
dXNlUG9zaXRpb24odXJsLCBldmVudCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHVybC50
b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7
CisgICAgfSgpKTsKIAogICAgIFN0cmluZyBkb3dubG9hZEF0dHJpYnV0ZTsKICNpZiBFTkFCTEUo
RE9XTkxPQURfQVRUUklCVVRFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50
LmNwcAppbmRleCA2NjRlZGYwLi5iNjdiNGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
YW52YXNFbGVtZW50LmNwcApAQCAtMzM2LDggKzMzNiwxMSBAQCBDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQqIEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0MmQoY29uc3QgU3RyaW5nJiB0
eXBlKQogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIlRvdGFsIGNhbnZhcyBt
ZW1vcnkgdXNlIGV4Y2VlZHMgdGhlIG1heGltdW0gbGltaXQgKCIpOwogICAgICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZE51bWJlcihtYXhBY3RpdmVQaXhlbE1lbW9yeSgpIC8gMTAyNCAvIDEwMjQp
OwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiBNQikuIik7Ci0gICAgICAg
IGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VM
ZXZlbDo6V2FybmluZywgc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKLSAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKSkgeworICAgICAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAqc3RyaW5nKTsKKyAgICAgICAgICAg
IHJldHVybiBudWxscHRyOworICAgICAgICB9CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAg
ICAgbV9jb250ZXh0ID0gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjcmVhdGUoKnRoaXMsIGRv
Y3VtZW50KCkuaW5RdWlya3NNb2RlKCksIHVzZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSk7
CkBAIC04ODksOCArODkyLDExIEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUltYWdl
QnVmZmVyKCkgY29uc3QKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJDYW52
YXMgYXJlYSBleGNlZWRzIHRoZSBtYXhpbXVtIGxpbWl0ICh3aWR0aCAqIGhlaWdodCA+ICIpOwog
ICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcihtYXhDYW52YXNBcmVhKTsKICAgICAg
ICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpLiIpOwotICAgICAgICBkb2N1bWVudCgp
LmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5p
bmcsIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAg
ICBkb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdl
TGV2ZWw6Oldhcm5pbmcsICpzdHJpbmcpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIAogICAgIC8vIE1ha2Ugc3VyZSB3ZSBkb24n
dCB1c2UgbW9yZSBwaXhlbCBtZW1vcnkgdGhhbiB0aGUgc3lzdGVtIGNhbiBzdXBwb3J0LgpAQCAt
OTAwLDggKzkwNiwxMSBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZl
cigpIGNvbnN0CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiVG90YWwgY2Fu
dmFzIG1lbW9yeSB1c2UgZXhjZWVkcyB0aGUgbWF4aW11bSBsaW1pdCAoIik7CiAgICAgICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKG1heEFjdGl2ZVBpeGVsTWVtb3J5KCkgLyAxMDI0IC8g
MTAyNCk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIE1CKS4iKTsKLSAg
ICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVz
c2FnZUxldmVsOjpXYXJuaW5nLCBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOwotICAgICAgICBy
ZXR1cm47CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmco
KSkgeworICAgICAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291
cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAqc3RyaW5nKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIGlmICghd2lk
dGgoKSB8fCAhaGVpZ2h0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
b250RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5jcHAK
aW5kZXggOGQ2YzM0Ny4uYzM1YTY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9udEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVt
ZW50LmNwcApAQCAtMTExLDEwICsxMTEsMTMgQEAgc3RhdGljIGJvb2wgcGFyc2VGb250U2l6ZShj
b25zdCBDaGFyYWN0ZXJUeXBlKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIGludCYKICAg
ICAvLyBTdGVwIDgKICAgICBpbnQgdmFsdWU7CiAKKyAgICBpZiAoZGlnaXRzLmZhaWxlZCgpKQor
ICAgICAgICBDUkFTSCgpOworCiAgICAgaWYgKGRpZ2l0cy5pczhCaXQoKSkKLSAgICAgICAgdmFs
dWUgPSBjaGFyYWN0ZXJzVG9JbnRTdHJpY3QoZGlnaXRzLmNoYXJhY3RlcnM4KCksIGRpZ2l0cy5s
ZW5ndGgoKSk7CisgICAgICAgIHZhbHVlID0gY2hhcmFjdGVyc1RvSW50U3RyaWN0KCpkaWdpdHMu
Y2hhcmFjdGVyczgoKSwgZGlnaXRzLmxlbmd0aCgpKTsKICAgICBlbHNlCi0gICAgICAgIHZhbHVl
ID0gY2hhcmFjdGVyc1RvSW50U3RyaWN0KGRpZ2l0cy5jaGFyYWN0ZXJzMTYoKSwgZGlnaXRzLmxl
bmd0aCgpKTsKKyAgICAgICAgdmFsdWUgPSBjaGFyYWN0ZXJzVG9JbnRTdHJpY3QoKmRpZ2l0cy5j
aGFyYWN0ZXJzMTYoKSwgZGlnaXRzLmxlbmd0aCgpKTsKIAogICAgIC8vIFN0ZXAgOQogICAgIGlm
IChtb2RlID09IFJlbGF0aXZlUGx1cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1l
bnQuY3BwCmluZGV4IDRmNjU5N2MuLmEyZTFjMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW1hZ2VFbGVtZW50LmNwcApAQCAtNDc0LDcgKzQ3NCw5IEBAIFN0cmluZyBIVE1MSW1hZ2VFbGVt
ZW50Ojpjb21wbGV0ZVVSTHNJbkF0dHJpYnV0ZVZhbHVlKGNvbnN0IFVSTCYgYmFzZSwgY29uc3Qg
QXR0CiAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgndycpOwogICAgICAgICAgICAgfQog
ICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgcmV0dXJuIEhUTUxFbGVtZW50Ojpj
b21wbGV0ZVVSTHNJbkF0dHJpYnV0ZVZhbHVlKGJhc2UsIGF0dHJpYnV0ZSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA1MjFmY2EyLi43MjE0NDZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTIzMiw5ICsyMzIs
MTIgQEAgc3RhdGljIFN0cmluZyBhY3Rpb25OYW1lKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6RGVs
YXllZEFjdGlvblR5cGUgYWN0aW9uKQogCiAjdW5kZWYgQUNUSU9OCiAKLSAgICBTdHJpbmcgbmFt
ZSA9IGFjdGlvbkJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBBU1NFUlQoIW5hbWUuaXNFbXB0eSgp
KTsKLSAgICByZXR1cm4gbmFtZTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBhY3Rpb25CdWlsZGVy
LnRvU3RyaW5nKCkpIHsKKyAgICAgICAgU3RyaW5nIG5hbWUgPSAqc3RyaW5nOworICAgICAgICBB
U1NFUlQoIW5hbWUuaXNFbXB0eSgpKTsKKyAgICAgICAgcmV0dXJuIG5hbWU7CisgICAgfQorICAg
IENSQVNIKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT3B0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVt
ZW50LmNwcAppbmRleCA5ZjZkYWQyLi5mYTk4YWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPcHRpb25FbGVtZW50LmNwcApAQCAtMzQ5LDcgKzM0OSw5IEBAIFN0cmluZyBIVE1MT3B0aW9u
RWxlbWVudDo6Y29sbGVjdE9wdGlvbklubmVyVGV4dCgpIGNvbnN0CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIG5vZGUgPSBOb2RlVHJhdmVyc2FsOjpuZXh0KCpub2RlLCB0aGlzKTsKICAgICB9
Ci0gICAgcmV0dXJuIHRleHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0ZXh0
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDU4ZjkxYWEuLjNhZjM0NGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC0xNDMs
NyArMTQzLDkgQEAgU3RyaW5nIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzdHJpcHBlZFBs
YWNlaG9sZGVyKCkgY29uc3QKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBzdHJpcHBl
ZC5hcHBlbmQoY2hhcmFjdGVyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN0cmlwcGVkLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaXBwZWQudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIGJvb2wgaXNOb3RMaW5l
QnJlYWsoVUNoYXIgY2gpIHsgcmV0dXJuIGNoICE9IG5ld2xpbmVDaGFyYWN0ZXIgJiYgY2ggIT0g
Y2FycmlhZ2VSZXR1cm47IH0KQEAgLTU1Miw3ICs1NTQsOSBAQCBzdGF0aWMgU3RyaW5nIGlubmVy
VGV4dFZhbHVlRnJvbShUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQmIGlubmVyVGV4dCkKICAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmQoZG93bmNhc3Q8VGV4dD4oKm5vZGUpLmRhdGEoKSk7CiAg
ICAgfQogICAgIHN0cmlwVHJhaWxpbmdOZXdsaW5lKHJlc3VsdCk7Ci0gICAgcmV0dXJuIHJlc3Vs
dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIEhUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRJbm5lclRleHRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVl
KQpAQCAtNzM2LDcgKzc0MCw5IEBAIFN0cmluZyBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6
dmFsdWVXaXRoSGFyZExpbmVCcmVha3MoKSBjb25zdAogICAgICAgICAgICAgZ2V0TmV4dFNvZnRC
cmVhayhsaW5lLCBicmVha05vZGUsIGJyZWFrT2Zmc2V0KTsKICAgICB9CiAgICAgc3RyaXBUcmFp
bGluZ05ld2xpbmUocmVzdWx0KTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50KiBlbmNs
b3NpbmdUZXh0Rm9ybUNvbnRyb2woY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKaW5kZXggMTE5MzQwZi4uNjk3NzEyMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCkBAIC0xMjEsNyArMTIxLDEwIEBAIHZvaWQgTWVk
aWFEb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQogI2lmIFBMQVRGT1JN
KElPUykKICAgICAgICAgZWxlbWVudFN0eWxlLmFwcGVuZExpdGVyYWwoIndpZHRoOiAxMDAlOyBo
ZWlnaHQ6IGF1dG87Iik7CiAjZW5kaWYKLSAgICAgICAgdmlkZW9FbGVtZW50LT5zZXRBdHRyaWJ1
dGUoc3R5bGVBdHRyLCBlbGVtZW50U3R5bGUudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IGVsZW1lbnRTdHlsZS50b1N0cmluZygpKQorICAgICAgICAgICAgdmlkZW9FbGVt
ZW50LT5zZXRBdHRyaWJ1dGUoc3R5bGVBdHRyLCAqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBib2R5LT5hcHBlbmRDaGlsZCh2aWRlb0Vs
ZW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNz
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKaW5k
ZXggNWNkNzkwNS4uNmY0ZTBmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRp
YUVsZW1lbnRTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVu
dFNlc3Npb24uY3BwCkBAIC04Niw3ICs4Niw5IEBAIHN0YXRpYyBTdHJpbmcgcmVzdHJpY3Rpb25O
YW1lKE1lZGlhRWxlbWVudFNlc3Npb246OkJlaGF2aW9yUmVzdHJpY3Rpb25zIHJlc3RyaWN0CiAg
ICAgQ0FTRShJbnZpc2libGVBdXRvcGxheU5vdFBlcm1pdHRlZCk7CiAgICAgQ0FTRShPdmVycmlk
ZVVzZXJHZXN0dXJlUmVxdWlyZW1lbnRGb3JNYWluQ29udGVudCk7CiAKLSAgICByZXR1cm4gcmVz
dHJpY3Rpb25CdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdHJp
Y3Rpb25CdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRp
YUZyYWdtZW50VVJJUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFGcmFnbWVu
dFVSSVBhcnNlci5jcHAKaW5kZXggZTdhNTE2ZS4uMzA1YjY2MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9NZWRpYUZyYWdtZW50VVJJUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL01lZGlhRnJhZ21lbnRVUklQYXJzZXIuY3BwCkBAIC01Miw3ICs1Miw5IEBAIHN0
YXRpYyBTdHJpbmcgY29sbGVjdERpZ2l0cyhjb25zdCBMQ2hhciogaW5wdXQsIHVuc2lnbmVkIGxl
bmd0aCwgdW5zaWduZWQmIHBvc2l0CiAgICAgLy8gRElHSVQgOyBhbnkgcG9zaXRpdmUgbnVtYmVy
CiAgICAgd2hpbGUgKHBvc2l0aW9uIDwgbGVuZ3RoICYmIGlzQVNDSUlEaWdpdChpbnB1dFtwb3Np
dGlvbl0pKQogICAgICAgICBkaWdpdHMuYXBwZW5kKGlucHV0W3Bvc2l0aW9uKytdKTsKLSAgICBy
ZXR1cm4gZGlnaXRzLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gZGlnaXRzLnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0
YXRpYyBTdHJpbmcgY29sbGVjdEZyYWN0aW9uKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQg
bGVuZ3RoLCB1bnNpZ25lZCYgcG9zaXRpb24pCkBAIC02Nyw3ICs2OSw5IEBAIHN0YXRpYyBTdHJp
bmcgY29sbGVjdEZyYWN0aW9uKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgbGVuZ3RoLCB1
bnNpZ25lZCYgcG9zCiAgICAgZGlnaXRzLmFwcGVuZChpbnB1dFtwb3NpdGlvbisrXSk7CiAgICAg
d2hpbGUgKHBvc2l0aW9uIDwgbGVuZ3RoICYmIGlzQVNDSUlEaWdpdChpbnB1dFtwb3NpdGlvbl0p
KQogICAgICAgICBkaWdpdHMuYXBwZW5kKGlucHV0W3Bvc2l0aW9uKytdKTsKLSAgICByZXR1cm4g
ZGlnaXRzLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gZGlnaXRzLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIE1lZGlhRnJh
Z21lbnRVUklQYXJzZXI6Ok1lZGlhRnJhZ21lbnRVUklQYXJzZXIoY29uc3QgVVJMJiB1cmwpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1R5cGVBaGVhZC5jcHAKaW5kZXggNzY0ZTUwMi4uM2VlYzQ4NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVHlwZUFoZWFkLmNwcApAQCAtODAsNyArODAsMTAgQEAgaW50IFR5cGVBaGVhZDo6aGFu
ZGxlRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQsIE1hdGNoTW9kZUZsYWdzIG1hdGNoTW9kZSkK
ICAgICAgICAgcHJlZml4ID0gU3RyaW5nKCZjLCAxKTsKICAgICAgICAgbV9yZXBlYXRpbmdDaGFy
ID0gYzsKICAgICB9IGVsc2UgaWYgKG1hdGNoTW9kZSAmIE1hdGNoUHJlZml4KSB7Ci0gICAgICAg
IHByZWZpeCA9IG1fYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IG1fYnVmZmVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBwcmVmaXggPSAqc3RyaW5nOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICBpZiAobV9idWZmZXIubGVu
Z3RoKCkgPiAxKSB7CiAgICAgICAgICAgICBtX3JlcGVhdGluZ0NoYXIgPSAwOwogICAgICAgICAg
ICAgc2VhcmNoU3RhcnRPZmZzZXQgPSAwOwpAQCAtMTA0LDkgKzEwNywxMiBAQCBpbnQgVHlwZUFo
ZWFkOjpoYW5kbGVFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCwgTWF0Y2hNb2RlRmxhZ3MgbWF0
Y2hNb2RlKQogCiAgICAgaWYgKG1hdGNoTW9kZSAmIE1hdGNoSW5kZXgpIHsKICAgICAgICAgYm9v
bCBvayA9IGZhbHNlOwotICAgICAgICBpbnQgaW5kZXggPSBtX2J1ZmZlci50b1N0cmluZygpLnRv
SW50KCZvayk7Ci0gICAgICAgIGlmIChpbmRleCA+IDAgJiYgaW5kZXggPD0gb3B0aW9uQ291bnQp
Ci0gICAgICAgICAgICByZXR1cm4gaW5kZXggLSAxOworICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSBtX2J1ZmZlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICBpbnQgaW5kZXggPSBzdHJpbmct
PnRvSW50KCZvayk7CisgICAgICAgICAgICBpZiAoaW5kZXggPiAwICYmIGluZGV4IDw9IG9wdGlv
bkNvdW50KQorICAgICAgICAgICAgICAgIHJldHVybiBpbmRleCAtIDE7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgcmV0dXJuIC0xOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5jcHAKaW5kZXggYzI3YWYyMy4uZDk0ZmNlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCkBAIC0xMTcsNyAr
MTE3LDkgQEAgU3RyaW5nIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Zm9udCgpIGNvbnN0CiAg
ICAgICAgIHNlcmlhbGl6ZWRGb250LmFwcGVuZChmYW1pbHkpOwogICAgIH0KIAotICAgIHJldHVy
biBzZXJpYWxpemVkRm9udC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHNlcmlh
bGl6ZWRGb250LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRGb250KGNvbnN0IFN0
cmluZyYgbmV3Rm9udCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKaW5kZXggNzY4YzBmYy4uN2E4OGNk
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKQEAgLTIxNzIsOCArMjE3MiwxMSBAQCBFeGNlcHRp
b25PcjxSZWZQdHI8SW1hZ2VEYXRhPj4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6Z2V0
SW1hZ2VEYXRhKEltYWdlQgogICAgICAgICBjb25zb2xlTWVzc2FnZS5hcHBlbmRMaXRlcmFsKCIg
eCAiKTsKICAgICAgICAgY29uc29sZU1lc3NhZ2UuYXBwZW5kTnVtYmVyKGltYWdlRGF0YVJlY3Qu
aGVpZ2h0KCkpOwogCi0gICAgICAgIGNhbnZhc0Jhc2UoKS5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlJlbmRlcmluZywgTWVzc2FnZUxl
dmVsOjpFcnJvciwgY29uc29sZU1lc3NhZ2UudG9TdHJpbmcoKSk7Ci0gICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSBjb25zb2xlTWVzc2FnZS50b1N0cmluZygpKSB7CisgICAgICAgICAgICBjYW52YXNCYXNlKCku
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNl
OjpSZW5kZXJpbmcsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICpzdHJpbmcpOworICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisgICAgICAgIH0KKyAgICAg
ICAgQ1JBU0goKTsKICAgICB9CiAKICAgICByZXR1cm4gSW1hZ2VEYXRhOjpjcmVhdGUoaW1hZ2VE
YXRhUmVjdC5zaXplKCksIGJ5dGVBcnJheS5yZWxlYXNlTm9uTnVsbCgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5j
cHAKaW5kZXggNzg3NWRhOC4uY2Q1ZWUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTE2Miw3ICsx
NjIsOSBAQCBuYW1lc3BhY2UgewogCiAgICAgICAgIFN0cmluZyByZXN1bHQoKQogICAgICAgICB7
Ci0gICAgICAgICAgICByZXR1cm4gbV9idWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBtX2J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KIAogICAgIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU291cmNl
VHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU291cmNlVHJhY2tl
ci5jcHAKaW5kZXggMjJkYmE5MC4uODBiMWU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFNvdXJjZVRyYWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxTb3VyY2VUcmFja2VyLmNwcApAQCAtODMsOCArODMsMTEgQEAgU3RyaW5n
IEhUTUxTb3VyY2VUcmFja2VyOjpzb3VyY2UoY29uc3QgSFRNTFRva2VuJiB0b2tlbikKICAgICAg
ICAgbV9jdXJyZW50U291cmNlLmFkdmFuY2UoKTsKICAgICB9CiAKLSAgICBtX2NhY2hlZFNvdXJj
ZUZvclRva2VuID0gc291cmNlLnRvU3RyaW5nKCk7Ci0gICAgcmV0dXJuIG1fY2FjaGVkU291cmNl
Rm9yVG9rZW47CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc291cmNlLnRvU3RyaW5nKCkpIHsKKyAg
ICAgICAgbV9jYWNoZWRTb3VyY2VGb3JUb2tlbiA9ICpzdHJpbmc7CisgICAgICAgIHJldHVybiBt
X2NhY2hlZFNvdXJjZUZvclRva2VuOworICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcg
SFRNTFNvdXJjZVRyYWNrZXI6OnNvdXJjZShjb25zdCBIVE1MVG9rZW4mIHRva2VuLCB1bnNpZ25l
ZCBhdHRyaWJ1dGVTdGFydCwgdW5zaWduZWQgYXR0cmlidXRlRW5kKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRva2VuaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmNwcAppbmRleCA4YWMyZjg1Li4zNjRlYzBlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmNwcApAQCAtMTQx
LDggKzE0MSwxMCBAQCBpbmxpbmUgYm9vbCBIVE1MVG9rZW5pemVyOjpwcm9jZXNzRW50aXR5KFNl
Z21lbnRlZFN0cmluZyYgc291cmNlKQogICAgICAgICBBU1NFUlQoZGVjb2RlZEVudGl0eS5pc0Vt
cHR5KCkpOwogICAgICAgICBidWZmZXJBU0NJSUNoYXJhY3RlcignJicpOwogICAgIH0gZWxzZSB7
CisgICAgICAgIGlmIChkZWNvZGVkRW50aXR5LmZhaWxlZCgpKQorICAgICAgICAgICAgQ1JBU0go
KTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlY29kZWRFbnRpdHkubGVuZ3Ro
KCk7ICsraSkKLSAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcihkZWNvZGVkRW50aXR5W2ldKTsK
KyAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcigqZGVjb2RlZEVudGl0eVtpXSk7CiAgICAgfQog
ICAgIHJldHVybiB0cnVlOwogfQpAQCAtODYzLDggKzg2NSwxMCBAQCBib29sIEhUTUxUb2tlbml6
ZXI6OnByb2Nlc3NUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKICAgICAgICAgICAgIEFT
U0VSVChkZWNvZGVkRW50aXR5LmlzRW1wdHkoKSk7CiAgICAgICAgICAgICBtX3Rva2VuLmFwcGVu
ZFRvQXR0cmlidXRlVmFsdWUoJyYnKTsKICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlm
IChkZWNvZGVkRW50aXR5LmZhaWxlZCgpKQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAg
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZGVjb2RlZEVudGl0eS5sZW5ndGgoKTsg
KytpKQotICAgICAgICAgICAgICAgIG1fdG9rZW4uYXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZShkZWNv
ZGVkRW50aXR5W2ldKTsKKyAgICAgICAgICAgICAgICBtX3Rva2VuLmFwcGVuZFRvQXR0cmlidXRl
VmFsdWUoKmRlY29kZWRFbnRpdHlbaV0pOwogICAgICAgICB9CiAgICAgICAgIC8vIFdlJ3JlIHN1
cHBvc2VkIHRvIHN3aXRjaCBiYWNrIHRvIHRoZSBhdHRyaWJ1dGUgdmFsdWUgc3RhdGUgdGhhdAog
ICAgICAgICAvLyB3ZSB3ZXJlIGluIHdoZW4gd2Ugd2VyZSBzd2l0Y2hlZCBpbnRvIHRoaXMgc3Rh
dGUuIFJhdGhlciB0aGFuCkBAIC0xNDAzLDcgKzE0MDcsOSBAQCBTdHJpbmcgSFRNTFRva2VuaXpl
cjo6YnVmZmVyZWRDaGFyYWN0ZXJzKCkgY29uc3QKICAgICBjaGFyYWN0ZXJzLmFwcGVuZCgnPCcp
OwogICAgIGNoYXJhY3RlcnMuYXBwZW5kKCcvJyk7CiAgICAgY2hhcmFjdGVycy5hcHBlbmQobV90
ZW1wb3JhcnlCdWZmZXIuZGF0YSgpLCBtX3RlbXBvcmFyeUJ1ZmZlci5zaXplKCkpOwotICAgIHJl
dHVybiBjaGFyYWN0ZXJzLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gY2hhcmFj
dGVycy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiB2b2lkIEhUTUxUb2tlbml6ZXI6OnVwZGF0ZVN0YXRlRm9yKGNvbnN0IEF0b21pY1N0cmlu
ZyYgdGFnTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxU
cmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxk
ZXIuY3BwCmluZGV4IGIxMGE0YzQuLjg5OWQ0YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcApAQCAtMjU2OSwxOSArMjU2OSwyMiBAQCB2b2lk
IEhUTUxUcmVlQnVpbGRlcjo6ZGVmYXVsdEZvckFmdGVySGVhZCgpCiAKIHZvaWQgSFRNTFRyZWVC
dWlsZGVyOjpkZWZhdWx0Rm9ySW5UYWJsZVRleHQoKQogewotICAgIFN0cmluZyBjaGFyYWN0ZXJz
ID0gbV9wZW5kaW5nVGFibGVDaGFyYWN0ZXJzLnRvU3RyaW5nKCk7Ci0gICAgbV9wZW5kaW5nVGFi
bGVDaGFyYWN0ZXJzLmNsZWFyKCk7Ci0gICAgaWYgKCFpc0FsbFdoaXRlc3BhY2UoY2hhcmFjdGVy
cykpIHsKLSAgICAgICAgLy8gRklYTUU6IHBhcnNlIGVycm9yCi0gICAgICAgIEhUTUxDb25zdHJ1
Y3Rpb25TaXRlOjpSZWRpcmVjdFRvRm9zdGVyUGFyZW50R3VhcmQgcmVkaXJlY3RlcihtX3RyZWUp
OwotICAgICAgICBtX3RyZWUucmVjb25zdHJ1Y3RUaGVBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMo
KTsKLSAgICAgICAgbV90cmVlLmluc2VydFRleHROb2RlKGNoYXJhY3RlcnMsIE5vdEFsbFdoaXRl
c3BhY2UpOwotICAgICAgICBtX2ZyYW1lc2V0T2sgPSBmYWxzZTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBtX3BlbmRpbmdUYWJsZUNoYXJhY3RlcnMudG9TdHJpbmcoKSkgeworICAgICAgICBTdHJp
bmcgY2hhcmFjdGVycyA9ICpzdHJpbmc7CisgICAgICAgIG1fcGVuZGluZ1RhYmxlQ2hhcmFjdGVy
cy5jbGVhcigpOworICAgICAgICBpZiAoIWlzQWxsV2hpdGVzcGFjZShjaGFyYWN0ZXJzKSkgewor
ICAgICAgICAgICAgLy8gRklYTUU6IHBhcnNlIGVycm9yCisgICAgICAgICAgICBIVE1MQ29uc3Ry
dWN0aW9uU2l0ZTo6UmVkaXJlY3RUb0Zvc3RlclBhcmVudEd1YXJkIHJlZGlyZWN0ZXIobV90cmVl
KTsKKyAgICAgICAgICAgIG1fdHJlZS5yZWNvbnN0cnVjdFRoZUFjdGl2ZUZvcm1hdHRpbmdFbGVt
ZW50cygpOworICAgICAgICAgICAgbV90cmVlLmluc2VydFRleHROb2RlKGNoYXJhY3RlcnMsIE5v
dEFsbFdoaXRlc3BhY2UpOworICAgICAgICAgICAgbV9mcmFtZXNldE9rID0gZmFsc2U7CisgICAg
ICAgICAgICBtX2luc2VydGlvbk1vZGUgPSBtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBtX3RyZWUuaW5zZXJ0VGV4dE5vZGUo
Y2hhcmFjdGVycyk7CiAgICAgICAgIG1faW5zZXJ0aW9uTW9kZSA9IG1fb3JpZ2luYWxJbnNlcnRp
b25Nb2RlOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIG1fdHJlZS5pbnNlcnRUZXh0Tm9k
ZShjaGFyYWN0ZXJzKTsKLSAgICBtX2luc2VydGlvbk1vZGUgPSBtX29yaWdpbmFsSW5zZXJ0aW9u
TW9kZTsKKyAgICB9IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluSGVhZChBdG9taWNIVE1MVG9rZW4mJiB0b2tlbikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3Bw
CmluZGV4IDgwYjQyMTMuLjdkNGM4OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcApAQCAtNjYsNyArNjYsOSBAQCBzdGF0aWMgaW5s
aW5lIFN0cmluZyBidWlsZENvbnNvbGVFcnJvcihjb25zdCBYU1NJbmZvJiB4c3NJbmZvKQogICAg
IGVsc2UKICAgICAgICAgbWVzc2FnZS5hcHBlbmRMaXRlcmFsKCIgVGhlIGF1ZGl0b3Igd2FzIGVu
YWJsZWQgYmVjYXVzZSB0aGUgc2VydmVyIGRpZCBub3Qgc2VuZCBhbiAnWC1YU1MtUHJvdGVjdGlv
bicgaGVhZGVyLiIpOwogCi0gICAgcmV0dXJuIG1lc3NhZ2UudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBtZXNzYWdlLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIFJlZjxGb3JtRGF0YT4gWFNTQXVkaXRvckRlbGVnYXRlOjpn
ZW5lcmF0ZVZpb2xhdGlvblJlcG9ydChjb25zdCBYU1NJbmZvJiB4c3NJbmZvKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9CdWZmZXJlZExpbmVSZWFkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9CdWZmZXJlZExpbmVSZWFkZXIuY3BwCmluZGV4IDhmMjM2
MjUuLmYyOTA4ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQnVmZmVy
ZWRMaW5lUmVhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0J1ZmZlcmVk
TGluZVJlYWRlci5jcHAKQEAgLTkyLDkgKzkyLDExIEBAIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBC
dWZmZXJlZExpbmVSZWFkZXI6Om5leHRMaW5lKCkKICAgICB9CiAKICAgICBpZiAoc2hvdWxkUmV0
dXJuTGluZSkgewotICAgICAgICBhdXRvIGxpbmUgPSBtX2xpbmVCdWZmZXIudG9TdHJpbmcoKTsK
LSAgICAgICAgbV9saW5lQnVmZmVyLmNsZWFyKCk7Ci0gICAgICAgIHJldHVybiBXVEZNb3ZlKGxp
bmUpOworICAgICAgICBpZiAoYXV0byBsaW5lID0gbV9saW5lQnVmZmVyLnRvU3RyaW5nKCkpIHsK
KyAgICAgICAgICAgIG1fbGluZUJ1ZmZlci5jbGVhcigpOworICAgICAgICAgICAgcmV0dXJuIFdU
Rk1vdmUoKmxpbmUpOworICAgICAgICB9CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAg
QVNTRVJUKG1fYnVmZmVyLmlzRW1wdHkoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNr
QmFzZS5jcHAKaW5kZXggMzMzYTJmOC4uMjk0MTZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVHJhY2tCYXNlLmNwcApAQCAtMTUzLDcgKzE1MywxMCBAQCB2b2lkIFRyYWNrQmFzZTo6c2V0
TGFuZ3VhZ2UoY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKICAgICAgICAgICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiVGhlIGxhbmd1YWdlICciKTsKICAgICAgICAgICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kKGxhbmd1YWdlKTsKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiJyBpcyBub3QgYSB2YWxpZCBCQ1AgNDcgbGFuZ3VhZ2UgdGFnLiIpOwot
ICAgICAgICAgICAgbWVzc2FnZSA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAg
ICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
ICAgICAgICBtZXNzYWdlID0gKnN0cmluZzsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICBDUkFTSCgpOwogICAgICAgICB9CiAgICAgICAgIGlmIChhdXRvIGVsZW1lbnQgPSB0aGlz
LT5lbGVtZW50KCkpCiAgICAgICAgICAgICBlbGVtZW50LT5kb2N1bWVudCgpLmFkZENvbnNvbGVN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlJlbmRlcmluZywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBt
ZXNzYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAppbmRleCA3OGY4YWRmLi4z
YmJjMjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwCkBAIC02MjksNyArNjI5
LDExIEBAIHZvaWQgVlRUQ3VlOjpkZXRlcm1pbmVUZXh0RGlyZWN0aW9uKCkKICAgICAgICAgcGFy
YWdyYXBoQnVpbGRlci5hcHBlbmQobm9kZS0+bm9kZVZhbHVlKCkpOwogICAgIH0KIAotICAgIFN0
cmluZyBwYXJhZ3JhcGggPSBwYXJhZ3JhcGhCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgU3RyaW5n
IHBhcmFncmFwaCA9IFsmXSAoKSB7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHBhcmFncmFw
aEJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAg
ICBDUkFTSCgpOworICAgIH0oKTsKICAgICBpZiAoIXBhcmFncmFwaC5sZW5ndGgoKSkKICAgICAg
ICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZU
VFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAK
aW5kZXggNTE4ZWQ4Yi4uODBkMDJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9XZWJWVFRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2Vi
VlRUUGFyc2VyLmNwcApAQCAtNDA0LDcgKzQwNCwxMCBAQCB2b2lkIFdlYlZUVFBhcnNlcjo6Y3Jl
YXRlTmV3Q3VlKCkKICAgICBSZWZQdHI8V2ViVlRUQ3VlRGF0YT4gY3VlID0gV2ViVlRUQ3VlRGF0
YTo6Y3JlYXRlKCk7CiAgICAgY3VlLT5zZXRTdGFydFRpbWUobV9jdXJyZW50U3RhcnRUaW1lKTsK
ICAgICBjdWUtPnNldEVuZFRpbWUobV9jdXJyZW50RW5kVGltZSk7Ci0gICAgY3VlLT5zZXRDb250
ZW50KG1fY3VycmVudENvbnRlbnQudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
bV9jdXJyZW50Q29udGVudC50b1N0cmluZygpKQorICAgICAgICBjdWUtPnNldENvbnRlbnQoKnN0
cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIGN1ZS0+c2V0SWQobV9jdXJy
ZW50SWQpOwogICAgIGN1ZS0+c2V0U2V0dGluZ3MobV9jdXJyZW50U2V0dGluZ3MpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFRva2VuaXplci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFRva2VuaXplci5jcHAKaW5kZXggMDI0YzA0
YS4uZmUzZGRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRU
b2tlbml6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5p
emVyLmNwcApAQCAtMTA4LDExICsxMDgsMTUgQEAgRGF0YVN0YXRlOgogICAgICAgICBlbHNlIHsK
ICAgICAgICAgICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gYWR2YW5jZSBpbnB1dCBvciBwZXJmb3Jt
IGEgc3RhdGUgdHJhbnNpdGlvbiAtIGp1c3QgcmV0dXJuIGEgKG5ldykgdG9rZW4uCiAgICAgICAg
ICAgICAvLyAoT24gdGhlIG5leHQgY2FsbCB0byBuZXh0VG9rZW4gd2Ugd2lsbCBzZWUgJzwnIGFn
YWluLCBidXQgdGFrZSB0aGUgb3RoZXIgYnJhbmNoIGluIHRoaXMgaWYgaW5zdGVhZC4pCi0gICAg
ICAgICAgICByZXR1cm4gZW1pdFRva2VuKHRva2VuLCBXZWJWVFRUb2tlbjo6U3RyaW5nVG9rZW4o
cmVzdWx0LnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3Vs
dC50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHJldHVybiBlbWl0VG9rZW4odG9rZW4sIFdl
YlZUVFRva2VuOjpTdHJpbmdUb2tlbigqc3RyaW5nKSk7CisgICAgICAgICAgICBDUkFTSCgpOwog
ICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikK
LSAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZU
VFRva2VuOjpTdHJpbmdUb2tlbihyZXN1bHQudG9TdHJpbmcoKSkpOwotICAgIGVsc2UgeworICAg
IH0gZWxzZSBpZiAoY2hhcmFjdGVyID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gYWR2
YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OlN0cmluZ1Rva2Vu
KCpzdHJpbmcpKTsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9IGVsc2UgewogICAgICAgICByZXN1
bHQuYXBwZW5kKGNoYXJhY3Rlcik7CiAgICAgICAgIFdFQlZUVF9BRFZBTkNFX1RPKERhdGFTdGF0
ZSk7CiAgICAgfQpAQCAtMTQyLDEwICsxNDYsMTQgQEAgRXNjYXBlU3RhdGU6CiAgICAgICAgIFdF
QlZUVF9BRFZBTkNFX1RPKEVzY2FwZVN0YXRlKTsKICAgICB9IGVsc2UgaWYgKGNoYXJhY3RlciA9
PSAnPCcpIHsKICAgICAgICAgcmVzdWx0LmFwcGVuZChidWZmZXIpOwotICAgICAgICByZXR1cm4g
ZW1pdFRva2VuKHRva2VuLCBXZWJWVFRUb2tlbjo6U3RyaW5nVG9rZW4ocmVzdWx0LnRvU3RyaW5n
KCkpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAg
ICAgICAgICByZXR1cm4gZW1pdFRva2VuKHRva2VuLCBXZWJWVFRUb2tlbjo6U3RyaW5nVG9rZW4o
KnN0cmluZykpOworICAgICAgICBDUkFTSCgpOwogICAgIH0gZWxzZSBpZiAoY2hhcmFjdGVyID09
IGtFbmRPZkZpbGVNYXJrZXIpIHsKICAgICAgICAgcmVzdWx0LmFwcGVuZChidWZmZXIpOwotICAg
ICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9r
ZW46OlN0cmluZ1Rva2VuKHJlc3VsdC50b1N0cmluZygpKSk7CisgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRF
bWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpTdHJpbmdUb2tlbigqc3RyaW5n
KSk7CisgICAgICAgIENSQVNIKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgcmVzdWx0LmFwcGVu
ZChidWZmZXIpOwogICAgICAgICBidWZmZXIuY2xlYXIoKTsKQEAgLTE3Miw3ICsxODAsOSBAQCBU
YWdTdGF0ZToKICAgICAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oVGltZXN0YW1wVGFnU3RhdGUpOwog
ICAgIH0gZWxzZSBpZiAoY2hhcmFjdGVyID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0ga0VuZE9mRmls
ZU1hcmtlcikgewogICAgICAgICBBU1NFUlQocmVzdWx0LmlzRW1wdHkoKSk7Ci0gICAgICAgIHJl
dHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6U3Rh
cnRUYWcocmVzdWx0LnRvU3RyaW5nKCkpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVz
dWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbiht
X2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OlN0YXJ0VGFnKCpzdHJpbmcpKTsKKyAgICAgICAg
Q1JBU0goKTsKICAgICB9IGVsc2UgewogICAgICAgICByZXN1bHQuYXBwZW5kKGNoYXJhY3Rlcik7
CiAgICAgICAgIFdFQlZUVF9BRFZBTkNFX1RPKFN0YXJ0VGFnU3RhdGUpOwpAQCAtMTgzLDkgKzE5
MywxMSBAQCBTdGFydFRhZ1N0YXRlOgogICAgICAgICBXRUJWVFRfQURWQU5DRV9UTyhTdGFydFRh
Z0Fubm90YXRpb25TdGF0ZSk7CiAgICAgZWxzZSBpZiAoY2hhcmFjdGVyID09ICcuJykKICAgICAg
ICAgV0VCVlRUX0FEVkFOQ0VfVE8oU3RhcnRUYWdDbGFzc1N0YXRlKTsKLSAgICBlbHNlIGlmIChj
aGFyYWN0ZXIgPT0gJz4nIHx8IGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKQotICAgICAg
ICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46
OlN0YXJ0VGFnKHJlc3VsdC50b1N0cmluZygpKSk7Ci0gICAgZWxzZSB7CisgICAgZWxzZSBpZiAo
Y2hhcmFjdGVyID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikgeworICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJl
dHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6U3Rh
cnRUYWcoKnN0cmluZykpOworICAgICAgICBDUkFTSCgpOworICAgIH0gZWxzZSB7CiAgICAgICAg
IHJlc3VsdC5hcHBlbmQoY2hhcmFjdGVyKTsKICAgICAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oU3Rh
cnRUYWdTdGF0ZSk7CiAgICAgfQpAQCAtMjAyLDI3ICsyMTQsNDQgQEAgU3RhcnRUYWdDbGFzc1N0
YXRlOgogICAgIH0gZWxzZSBpZiAoY2hhcmFjdGVyID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0ga0Vu
ZE9mRmlsZU1hcmtlcikgewogICAgICAgICBhZGROZXdDbGFzcyhjbGFzc2VzLCBidWZmZXIpOwog
ICAgICAgICBidWZmZXIuY2xlYXIoKTsKLSAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9r
ZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpTdGFydFRhZyhyZXN1bHQudG9TdHJpbmco
KSwgY2xhc3Nlcy50b0F0b21pY1N0cmluZygpKSk7CisgICAgICAgIGlmIChhdXRvIHJlc3VsdFN0
cmluZyA9IHJlc3VsdC50b1N0cmluZygpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBjbGFzc2Vz
U3RyaW5nID0gY2xhc3Nlcy50b0F0b21pY1N0cmluZygpKQorICAgICAgICAgICAgICAgIHJldHVy
biBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6U3RhcnRU
YWcoKnJlc3VsdFN0cmluZywgKmNsYXNzZXNTdHJpbmcpKTsKKyAgICAgICAgfQorICAgICAgICBD
UkFTSCgpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGJ1ZmZlci5hcHBlbmQoY2hhcmFjdGVyKTsK
ICAgICAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oU3RhcnRUYWdDbGFzc1N0YXRlKTsKICAgICB9CiAK
IFN0YXJ0VGFnQW5ub3RhdGlvblN0YXRlOgotICAgIGlmIChjaGFyYWN0ZXIgPT0gJz4nIHx8IGNo
YXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKQotICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVt
aXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OlN0YXJ0VGFnKHJlc3VsdC50b1N0
cmluZygpLCBjbGFzc2VzLnRvQXRvbWljU3RyaW5nKCksIGJ1ZmZlci50b0F0b21pY1N0cmluZygp
KSk7CisgICAgaWYgKGNoYXJhY3RlciA9PSAnPicgfHwgY2hhcmFjdGVyID09IGtFbmRPZkZpbGVN
YXJrZXIpIHsKKyAgICAgICAgaWYgKGF1dG8gcmVzdWx0U3RyaW5nID0gcmVzdWx0LnRvU3RyaW5n
KCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIGNsYXNzZXNTdHJpbmcgPSBjbGFzc2VzLnRvQXRv
bWljU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBidWZmZXJTdHJpbmcgPSBi
dWZmZXIudG9BdG9taWNTdHJpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFkdmFu
Y2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpTdGFydFRhZygqcmVz
dWx0U3RyaW5nLCAqY2xhc3Nlc1N0cmluZywgKmJ1ZmZlclN0cmluZykpOworICAgICAgICAgICAg
fQorICAgICAgICB9CisgICAgICAgIENSQVNIKCk7CisgICAgfQogICAgIGJ1ZmZlci5hcHBlbmQo
Y2hhcmFjdGVyKTsKICAgICBXRUJWVFRfQURWQU5DRV9UTyhTdGFydFRhZ0Fubm90YXRpb25TdGF0
ZSk7CiAKIEVuZFRhZ1N0YXRlOgotICAgIGlmIChjaGFyYWN0ZXIgPT0gJz4nIHx8IGNoYXJhY3Rl
ciA9PSBrRW5kT2ZGaWxlTWFya2VyKQotICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tl
bihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OkVuZFRhZyhyZXN1bHQudG9TdHJpbmcoKSkp
OworICAgIGlmIChjaGFyYWN0ZXIgPT0gJz4nIHx8IGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFy
a2VyKSB7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAg
ICAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZU
VFRva2VuOjpFbmRUYWcoKnN0cmluZykpOworICAgICAgICBDUkFTSCgpOworICAgIH0KICAgICBy
ZXN1bHQuYXBwZW5kKGNoYXJhY3Rlcik7CiAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oRW5kVGFnU3Rh
dGUpOwogCiBUaW1lc3RhbXBUYWdTdGF0ZToKLSAgICBpZiAoY2hhcmFjdGVyID09ICc+JyB8fCBj
aGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikKLSAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRF
bWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpUaW1lc3RhbXBUYWcocmVzdWx0
LnRvU3RyaW5nKCkpKTsKKyAgICBpZiAoY2hhcmFjdGVyID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0g
a0VuZE9mRmlsZU1hcmtlcikgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9T
dHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQs
IHRva2VuLCBXZWJWVFRUb2tlbjo6VGltZXN0YW1wVGFnKCpzdHJpbmcpKTsKKyAgICAgICAgQ1JB
U0goKTsKKyAgICB9CiAgICAgcmVzdWx0LmFwcGVuZChjaGFyYWN0ZXIpOwogICAgIFdFQlZUVF9B
RFZBTkNFX1RPKFRpbWVzdGFtcFRhZ1N0YXRlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAppbmRleCA5ZDk4NTgxLi42NTFkMmU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3Bw
CkBAIC03NzEsNyArNzcxLDkgQEAgU3RyaW5nIEluc3BlY3RvclN0eWxlOjpzaG9ydGhhbmRWYWx1
ZShjb25zdCBTdHJpbmcmIHNob3J0aGFuZFByb3BlcnR5KSBjb25zdAogICAgICAgICAgICAgYnVp
bGRlci5hcHBlbmQoJyAnKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaW5kaXZpZHVhbFZhbHVl
KTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIFN0cmluZyBJbnNwZWN0b3JTdHlsZTo6c2hvcnRoYW5kUHJpb3JpdHko
Y29uc3QgU3RyaW5nJiBzaG9ydGhhbmRQcm9wZXJ0eSkgY29uc3QKQEAgLTk0MywxMyArOTQ1LDIw
IEBAIEV4Y2VwdGlvbk9yPENTU1N0eWxlUnVsZSo+IEluc3BlY3RvclN0eWxlU2hlZXQ6OmFkZFJ1
bGUoY29uc3QgU3RyaW5nJiBzZWxlY3RvcikKICAgICBzdHlsZVNoZWV0VGV4dC5hcHBlbmRMaXRl
cmFsKCIge30iKTsKIAogICAgIC8vIFVzaW5nIHNldFRleHQoKSBhcyB0aGlzIG9wZXJhdGlvbiBj
aGFuZ2VzIHRoZSBzdHlsZXNoZWV0IHJ1bGUgc2V0LgotICAgIHNldFRleHQoc3R5bGVTaGVldFRl
eHQudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3R5bGVTaGVldFRleHQudG9T
dHJpbmcoKSkKKyAgICAgICAgc2V0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENS
QVNIKCk7CiAKICAgICAvLyBJbnNwZWN0b3IgU3R5bGUgU2hlZXRzIGFyZSBhbHdheXMgdHJlYXRl
ZCBhcyB0aG91Z2ggdGhlaXIgcGFyc2VkIGRhdGEgaXMgcmVhZHkuCiAgICAgaWYgKG1fb3JpZ2lu
ID09IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6U3R5bGVTaGVldE9yaWdpbjo6SW5zcGVjdG9y
KQogICAgICAgICBmaXJlU3R5bGVTaGVldENoYW5nZWQoKTsKLSAgICBlbHNlCi0gICAgICAgIHJl
cGFyc2VTdHlsZVNoZWV0KHN0eWxlU2hlZXRUZXh0LnRvU3RyaW5nKCkpOworICAgIGVsc2Ugewor
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHlsZVNoZWV0VGV4dC50b1N0cmluZygpKQorICAg
ICAgICAgICAgcmVwYXJzZVN0eWxlU2hlZXQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIENSQVNIKCk7CisgICAgfQogCiAgICAgQVNTRVJUKG1fcGFnZVN0eWxlU2hlZXQtPmxl
bmd0aCgpKTsKICAgICB1bnNpZ25lZCBsYXN0UnVsZUluZGV4ID0gbV9wYWdlU3R5bGVTaGVldC0+
bGVuZ3RoKCkgLSAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCmluZGV4IDE5
YWY0ZTkuLmJmOWI0ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAKQEAg
LTE3MiwxMSArMTcyLDE0IEBAIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcHBsaWNhdGlvbkNh
Y2hlOjpBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U+IEluc3BlY3RvckFwCiAgICAgaWYgKHJlc291
cmNlSW5mby5pc0V4cGxpY2l0KQogICAgICAgICB0eXBlcy5hcHBlbmRMaXRlcmFsKCJFeHBsaWNp
dCAiKTsKIAotICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpBcHBsaWNhdGlvbkNhY2hl
OjpBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OmNyZWF0ZSgpCi0gICAgICAgIC5zZXRVcmwocmVz
b3VyY2VJbmZvLnJlc291cmNlLnN0cmluZygpKQotICAgICAgICAuc2V0U2l6ZShzdGF0aWNfY2Fz
dDxpbnQ+KHJlc291cmNlSW5mby5zaXplKSkKLSAgICAgICAgLnNldFR5cGUodHlwZXMudG9TdHJp
bmcoKSkKLSAgICAgICAgLnJlbGVhc2UoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0eXBlcy50
b1N0cmluZygpKSB7CisgICAgICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpBcHBsaWNh
dGlvbkNhY2hlOjpBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OmNyZWF0ZSgpCisgICAgICAgICAg
ICAuc2V0VXJsKHJlc291cmNlSW5mby5yZXNvdXJjZS5zdHJpbmcoKSkKKyAgICAgICAgICAgIC5z
ZXRTaXplKHN0YXRpY19jYXN0PGludD4ocmVzb3VyY2VJbmZvLnNpemUpKQorICAgICAgICAgICAg
LnNldFR5cGUoKnN0cmluZykKKyAgICAgICAgICAgIC5yZWxlYXNlKCk7CisgICAgfQorICAgIENS
QVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAppbmRl
eCA0NmU0YWZlLi5hZjE3MDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCkBAIC0xMzQsOCArMTM0LDEx
IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKG1fZGVjb2RlcikKICAgICAgICAgICAgIG1fcmVzcG9u
c2VUZXh0LmFwcGVuZChtX2RlY29kZXItPmZsdXNoKCkpOwogCi0gICAgICAgIG1fY2FsbGJhY2st
PnNlbmRTdWNjZXNzKG1fcmVzcG9uc2VUZXh0LnRvU3RyaW5nKCksIG1fbWltZVR5cGUsIG1fc3Rh
dHVzQ29kZSk7Ci0gICAgICAgIGRpc3Bvc2UoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
bV9yZXNwb25zZVRleHQudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgbV9jYWxsYmFjay0+c2Vu
ZFN1Y2Nlc3MoKnN0cmluZywgbV9taW1lVHlwZSwgbV9zdGF0dXNDb2RlKTsKKyAgICAgICAgICAg
IGRpc3Bvc2UoKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0K
IAogICAgIHZvaWQgZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikgb3ZlcnJpZGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFn
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50
LmNwcAppbmRleCBkYzk2NDg2Li42MzgzOGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL1dlYkNvbnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xlQWdlbnQuY3BwCkBAIC0xNjksNyArMTY5LDEwIEBA
IHZvaWQgV2ViQ29uc29sZUFnZW50OjpkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25nIHJlcXVl
c3RJZGVudGlmaWVyLCBjb25zdCBSZXNvCiAgICAgICAgIG1lc3NhZ2UuYXBwZW5kKGVycm9yLmxv
Y2FsaXplZERlc2NyaXB0aW9uKCkpOwogICAgIH0KIAotICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUo
c3RkOjptYWtlX3VuaXF1ZTxDb25zb2xlTWVzc2FnZT4oTWVzc2FnZVNvdXJjZTo6TmV0d29yaywg
TWVzc2FnZVR5cGU6OkxvZywgTWVzc2FnZUxldmVsOjpFcnJvciwgbWVzc2FnZS50b1N0cmluZygp
LCBlcnJvci5mYWlsaW5nVVJMKCksIDAsIDAsIG51bGxwdHIsIHJlcXVlc3RJZGVudGlmaWVyKSk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWVzc2FnZS50b1N0cmluZygpKQorICAgICAgICBhZGRN
ZXNzYWdlVG9Db25zb2xlKHN0ZDo6bWFrZV91bmlxdWU8Q29uc29sZU1lc3NhZ2U+KE1lc3NhZ2VT
b3VyY2U6Ok5ldHdvcmssIE1lc3NhZ2VUeXBlOjpMb2csIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICpz
dHJpbmcsIGVycm9yLmZhaWxpbmdVUkwoKSwgMCwgMCwgbnVsbHB0ciwgcmVxdWVzdElkZW50aWZp
ZXIpKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vz
c0NvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29u
dHJvbC5jcHAKaW5kZXggNjg4MDRmMi4uZjg4YTQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHAKQEAgLTExMiw4ICsxMTIsMTIg
QEAgUmVzb3VyY2VSZXF1ZXN0IGNyZWF0ZUFjY2Vzc0NvbnRyb2xQcmVmbGlnaHRSZXF1ZXN0KGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWUKIAogICAgICAgICAgICAgaGVhZGVyQnVmZmVyLmFw
cGVuZChoZWFkZXJGaWVsZCk7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKCFoZWFkZXJCdWZmZXIu
aXNFbXB0eSgpKQotICAgICAgICAgICAgcHJlZmxpZ2h0UmVxdWVzdC5zZXRIVFRQSGVhZGVyRmll
bGQoSFRUUEhlYWRlck5hbWU6OkFjY2Vzc0NvbnRyb2xSZXF1ZXN0SGVhZGVycywgaGVhZGVyQnVm
ZmVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoIWhlYWRlckJ1ZmZlci5pc0VtcHR5KCkpIHsK
KyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGhlYWRlckJ1ZmZlci50b1N0cmluZygpKQor
ICAgICAgICAgICAgICAgIHByZWZsaWdodFJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBI
ZWFkZXJOYW1lOjpBY2Nlc3NDb250cm9sUmVxdWVzdEhlYWRlcnMsICpzdHJpbmcpOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CisgICAgICAgIH0KICAgICB9CiAK
ICAgICByZXR1cm4gcHJlZmxpZ2h0UmVxdWVzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcAppbmRleCA0ZGYyNWRhLi45ODZmZTUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuY3BwCkBA
IC0yNjgsNyArMjY4LDkgQEAgU3RyaW5nIFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OnRvU3RyaW5n
KCkgY29uc3QKIAogICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwogCi0gICAgcmV0dXJuIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHRlbXBsYXRlIDx0
eXBlbmFtZSBUPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0Fw
cGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAKaW5kZXggZmYyOTM4OS4uNGYyMmQ0OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVT
dG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZVN0b3JhZ2UuY3BwCkBAIC04NDEsMTcgKzg0MSwyMCBAQCBib29sIEFwcGxpY2F0aW9u
Q2FjaGVTdG9yYWdlOjpzdG9yZShBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UqIHJlc291cmNlLCB1
bnNpZ25lZAogCiAgICAgLy8gVGhlbiwgaW5zZXJ0IHRoZSByZXNvdXJjZQogICAgIAotICAgIC8v
IFNlcmlhbGl6ZSB0aGUgaGVhZGVycwotICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsK
LSAgICAKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGhlYWRlciA6IHJlc291cmNlLT5yZXNwb25zZSgp
Lmh0dHBIZWFkZXJGaWVsZHMoKSkgewotICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChoZWFk
ZXIua2V5KTsKLSAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJzonKTsKLSAgICAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmQoaGVhZGVyLnZhbHVlKTsKLSAgICAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmQoJ1xuJyk7Ci0gICAgfQotICAgIAotICAgIFN0cmluZyBoZWFkZXJzID0gc3RyaW5nQnVp
bGRlci50b1N0cmluZygpOworICAgIFN0cmluZyBoZWFkZXJzID0gWyZdICgpIHsKKyAgICAgICAg
Ly8gU2VyaWFsaXplIHRoZSBoZWFkZXJzCisgICAgICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVp
bGRlcjsKKyAgICAKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBoZWFkZXIgOiByZXNvdXJjZS0+
cmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGRzKCkpIHsKKyAgICAgICAgICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kKGhlYWRlci5rZXkpOworICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQo
JzonKTsKKyAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGhlYWRlci52YWx1ZSk7Cisg
ICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKKyAgICAgICAgfQorICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9KCk7CiAgICAgCiAgICAg
U1FMaXRlU3RhdGVtZW50IHJlc291cmNlU3RhdGVtZW50KG1fZGF0YWJhc2UsICJJTlNFUlQgSU5U
TyBDYWNoZVJlc291cmNlcyAodXJsLCBzdGF0dXNDb2RlLCByZXNwb25zZVVSTCwgaGVhZGVycywg
ZGF0YSwgbWltZVR5cGUsIHRleHRFbmNvZGluZ05hbWUpIFZBTFVFUyAoPywgPywgPywgPywgPywg
PywgPykiKTsKICAgICBpZiAocmVzb3VyY2VTdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9P
SykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdl
YkFyY2hpdmUuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2Vi
QXJjaGl2ZS5jcHAKaW5kZXggMTJhMzBjYy4uY2ZlNzM4NjNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcApAQCAtNTU3
LDIxICs1NTcsMjQgQEAgUmVmUHRyPExlZ2FjeVdlYkFyY2hpdmU+IExlZ2FjeVdlYkFyY2hpdmU6
OmNyZWF0ZUZyb21TZWxlY3Rpb24oRnJhbWUqIGZyYW1lKQogICAgIGlmIChhdXRvIHNlbGVjdGlv
blJhbmdlID0gZnJhbWUtPnNlbGVjdGlvbigpLnRvTm9ybWFsaXplZFJhbmdlKCkpCiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKGNyZWF0ZU1hcmt1cCgqc2VsZWN0aW9uUmFuZ2UsICZub2RlTGlzdCwg
QW5ub3RhdGVGb3JJbnRlcmNoYW5nZSkpOwogCi0gICAgYXV0byBhcmNoaXZlID0gY3JlYXRlKGJ1
aWxkZXIudG9TdHJpbmcoKSwgKmZyYW1lLCBub2RlTGlzdCwgbnVsbHB0cik7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIGF1dG8gYXJjaGl2ZSA9
IGNyZWF0ZSgqc3RyaW5nLCAqZnJhbWUsIG5vZGVMaXN0LCBudWxscHRyKTsKICAgICAKLSAgICBp
ZiAoIWRvY3VtZW50LT5pc0ZyYW1lU2V0KCkpCi0gICAgICAgIHJldHVybiBhcmNoaXZlOworICAg
ICAgICBpZiAoIWRvY3VtZW50LT5pc0ZyYW1lU2V0KCkpCisgICAgICAgICAgICByZXR1cm4gYXJj
aGl2ZTsKICAgICAgICAgCi0gICAgLy8gV3JhcCB0aGUgZnJhbWVzZXQgZG9jdW1lbnQgaW4gYW4g
aWZyYW1lIHNvIGl0IGNhbiBiZSBwYXN0ZWQgaW50bwotICAgIC8vIGFub3RoZXIgZG9jdW1lbnQg
KHdoaWNoIHdpbGwgaGF2ZSBhIGJvZHkgb3IgZnJhbWVzZXQgb2YgaXRzIG93bikuIAotICAgIFN0
cmluZyBpZnJhbWVNYXJrdXAgPSAiPGlmcmFtZSBmcmFtZWJvcmRlcj1cIm5vXCIgbWFyZ2lud2lk
dGg9XCIwXCIgbWFyZ2luaGVpZ2h0PVwiMFwiIHdpZHRoPVwiOTglJVwiIGhlaWdodD1cIjk4JSVc
IiBzcmM9XCIiICsgZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnJlc3BvbnNlKCku
dXJsKCkuc3RyaW5nKCkgKyAiXCI+PC9pZnJhbWU+IjsKLSAgICBhdXRvIGlmcmFtZVJlc291cmNl
ID0gQXJjaGl2ZVJlc291cmNlOjpjcmVhdGUodXRmOEJ1ZmZlcihpZnJhbWVNYXJrdXApLCBibGFu
a1VSTCgpLCAidGV4dC9odG1sIiwgIlVURi04IiwgU3RyaW5nKCkpOworICAgICAgICAvLyBXcmFw
IHRoZSBmcmFtZXNldCBkb2N1bWVudCBpbiBhbiBpZnJhbWUgc28gaXQgY2FuIGJlIHBhc3RlZCBp
bnRvCisgICAgICAgIC8vIGFub3RoZXIgZG9jdW1lbnQgKHdoaWNoIHdpbGwgaGF2ZSBhIGJvZHkg
b3IgZnJhbWVzZXQgb2YgaXRzIG93bikuIAorICAgICAgICBTdHJpbmcgaWZyYW1lTWFya3VwID0g
IjxpZnJhbWUgZnJhbWVib3JkZXI9XCJub1wiIG1hcmdpbndpZHRoPVwiMFwiIG1hcmdpbmhlaWdo
dD1cIjBcIiB3aWR0aD1cIjk4JSVcIiBoZWlnaHQ9XCI5OCUlXCIgc3JjPVwiIiArIGZyYW1lLT5s
b2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5yZXNwb25zZSgpLnVybCgpLnN0cmluZygpICsgIlwi
PjwvaWZyYW1lPiI7CisgICAgICAgIGF1dG8gaWZyYW1lUmVzb3VyY2UgPSBBcmNoaXZlUmVzb3Vy
Y2U6OmNyZWF0ZSh1dGY4QnVmZmVyKGlmcmFtZU1hcmt1cCksIGJsYW5rVVJMKCksICJ0ZXh0L2h0
bWwiLCAiVVRGLTgiLCBTdHJpbmcoKSk7CiAKLSAgICBWZWN0b3I8UmVmPExlZ2FjeVdlYkFyY2hp
dmU+PiBzdWJmcmFtZUFyY2hpdmVzOwotICAgIHN1YmZyYW1lQXJjaGl2ZXMucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eSgxKTsKLSAgICBzdWJmcmFtZUFyY2hpdmVzLnVuY2hlY2tlZEFwcGVuZChhcmNo
aXZlLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICBWZWN0b3I8UmVmPExlZ2FjeVdlYkFyY2hp
dmU+PiBzdWJmcmFtZUFyY2hpdmVzOworICAgICAgICBzdWJmcmFtZUFyY2hpdmVzLnJlc2VydmVJ
bml0aWFsQ2FwYWNpdHkoMSk7CisgICAgICAgIHN1YmZyYW1lQXJjaGl2ZXMudW5jaGVja2VkQXBw
ZW5kKGFyY2hpdmUucmVsZWFzZU5vbk51bGwoKSk7CiAKLSAgICByZXR1cm4gY3JlYXRlKGlmcmFt
ZVJlc291cmNlLnJlbGVhc2VOb25OdWxsKCksIHsgfSwgV1RGTW92ZShzdWJmcmFtZUFyY2hpdmVz
KSk7CisgICAgICAgIHJldHVybiBjcmVhdGUoaWZyYW1lUmVzb3VyY2UucmVsZWFzZU5vbk51bGwo
KSwgeyB9LCBXVEZNb3ZlKHN1YmZyYW1lQXJjaGl2ZXMpKTsKKyAgICB9CisgICAgQ1JBU0goKTsK
IH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwv
TUhUTUxBcmNoaXZlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01I
VE1MQXJjaGl2ZS5jcHAKaW5kZXggNzA1YzZkYy4uYWEwYTU3MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwCkBAIC03Niw3
ICs3Niw5IEBAIHN0YXRpYyBTdHJpbmcgZ2VuZXJhdGVSYW5kb21Cb3VuZGFyeSgpCiAgICAgICAg
IHN0cmluZ0J1aWxkZXIuYXBwZW5kKGxvd2VyTmliYmxlVG9BU0NJSUhleERpZ2l0KHJhbmRvbVZh
bHVlc1tpXSkpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh1cHBlck5pYmJsZVRvQVND
SUlIZXhEaWdpdChyYW5kb21WYWx1ZXNbaV0pKTsKICAgICB9Ci0gICAgcmV0dXJuIHN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0
YXRpYyBTdHJpbmcgcmVwbGFjZU5vblByaW50YWJsZUNoYXJhY3RlcnMoY29uc3QgU3RyaW5nJiB0
ZXh0KQpAQCAtODgsNyArOTAsOSBAQCBzdGF0aWMgU3RyaW5nIHJlcGxhY2VOb25QcmludGFibGVD
aGFyYWN0ZXJzKGNvbnN0IFN0cmluZyYgdGV4dCkKICAgICAgICAgZWxzZQogICAgICAgICAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmQoJz8nKTsKICAgICB9Ci0gICAgcmV0dXJuIHN0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIE1IVE1M
QXJjaGl2ZTo6TUhUTUxBcmNoaXZlKCkKQEAgLTE2MCwxMCArMTY0LDE2IEBAIFJlZjxTaGFyZWRC
dWZmZXI+IE1IVE1MQXJjaGl2ZTo6Z2VuZXJhdGVNSFRNTERhdGEoUGFnZSogcGFnZSkKICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZCgiXCJcclxuXHJcbiIpOwogCiAgICAgLy8gV2UgdXNlIHV0Zjgo
KSBiZWxvdyBpbnN0ZWFkIG9mIGFzY2lpKCkgYXMgYXNjaWkoKSByZXBsYWNlcyBDUkxGcyB3aXRo
ID8/ICh3ZSBzdGlsbCBvbmx5IGhhdmUgcHV0IEFTQ0lJIGNoYXJhY3RlcnMgaW4gaXQpLgotICAg
IEFTU0VSVChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkuaXNBbGxBU0NJSSgpKTsKLSAgICBDU3Ry
aW5nIGFzY2lpU3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpLnV0ZjgoKTsKLSAgICBh
dXRvIG1odG1sRGF0YSA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCk7Ci0gICAgbWh0bWxEYXRhLT5h
cHBlbmQoYXNjaWlTdHJpbmcuZGF0YSgpLCBhc2NpaVN0cmluZy5sZW5ndGgoKSk7CisgICAgYXV0
byBtaHRtbERhdGEgPSBbJl0gKCkgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIEFTU0VSVChzdHJpbmctPmlzQWxsQVND
SUkoKSk7CisgICAgICAgICAgICBDU3RyaW5nIGFzY2lpU3RyaW5nID0gc3RyaW5nLT51dGY4KCk7
CisgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCk7CisgICAg
ICAgICAgICByZXN1bHQtPmFwcGVuZChhc2NpaVN0cmluZy5kYXRhKCksIGFzY2lpU3RyaW5nLmxl
bmd0aCgpKTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAg
Q1JBU0goKTsKKyAgICB9KCk7CiAKICAgICBmb3IgKGF1dG8mIHJlc291cmNlIDogcmVzb3VyY2Vz
KSB7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuY2xlYXIoKTsKQEAgLTE4Myw4ICsxOTMsMTAgQEAg
UmVmPFNoYXJlZEJ1ZmZlcj4gTUhUTUxBcmNoaXZlOjpnZW5lcmF0ZU1IVE1MRGF0YShQYWdlKiBw
YWdlKQogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChyZXNvdXJjZS51cmwpOwogICAgICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgiXHJcblxyXG4iKTsKIAotICAgICAgICBhc2NpaVN0cmlu
ZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKS51dGY4KCk7Ci0gICAgICAgIG1odG1sRGF0YS0+
YXBwZW5kKGFzY2lpU3RyaW5nLmRhdGEoKSwgYXNjaWlTdHJpbmcubGVuZ3RoKCkpOworICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAg
ICAgIENTdHJpbmcgYXNjaWlTdHJpbmcgPSBzdHJpbmctPnV0ZjgoKTsKKyAgICAgICAgICAgIG1o
dG1sRGF0YS0+YXBwZW5kKGFzY2lpU3RyaW5nLmRhdGEoKSwgYXNjaWlTdHJpbmcubGVuZ3RoKCkp
OworICAgICAgICB9CiAKICAgICAgICAgLy8gRklYTUU6IGlkZWFsbHkgd2Ugd291bGQgZW5jb2Rl
IHRoZSBjb250ZW50IGFzIGEgc3RyZWFtIHdpdGhvdXQgaGF2aW5nIHRvIGZldGNoIGl0IGFsbC4K
ICAgICAgICAgY29uc3QgY2hhciogZGF0YSA9IHJlc291cmNlLmRhdGEtPmRhdGEoKTsKQEAgLTIx
MCw4ICsyMjIsMTAgQEAgUmVmPFNoYXJlZEJ1ZmZlcj4gTUhUTUxBcmNoaXZlOjpnZW5lcmF0ZU1I
VE1MRGF0YShQYWdlKiBwYWdlKQogICAgICAgICB9CiAgICAgfQogCi0gICAgYXNjaWlTdHJpbmcg
PSBtYWtlU3RyaW5nKCItLSIsIGJvdW5kYXJ5LCAiLS1cclxuIikudXRmOCgpOwotICAgIG1odG1s
RGF0YS0+YXBwZW5kKGFzY2lpU3RyaW5nLmRhdGEoKSwgYXNjaWlTdHJpbmcubGVuZ3RoKCkpOwor
ICAgIHsKKyAgICAgICAgQ1N0cmluZyBhc2NpaVN0cmluZyA9IG1ha2VTdHJpbmcoIi0tIiwgYm91
bmRhcnksICItLVxyXG4iKS51dGY4KCk7CisgICAgICAgIG1odG1sRGF0YS0+YXBwZW5kKGFzY2lp
U3RyaW5nLmRhdGEoKSwgYXNjaWlTdHJpbmcubGVuZ3RoKCkpOworICAgIH0KIAogICAgIHJldHVy
biBtaHRtbERhdGE7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25V
c2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVz
ZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwCmluZGV4IGMxMzkwNzYuLmQ4M2UyNTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYu
Y3BwCkBAIC0zNDcsMTQgKzM0NywxOCBAQCBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01l
ZGlhQUY6OndpbmRvd1JvdW5kZWRDb3JuZXJSYWRpdXNDU1MoKSBjb25zdAogCiAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOwogICAgIGFwcGVuZENTUyhidWlsZGVyLCBDU1NQcm9wZXJ0eUJvcmRl
clJhZGl1cywgU3RyaW5nOjpmb3JtYXQoIiUuMDJmcHgiLCByYWRpdXMpLCBiZWhhdmlvciA9PSBr
TUFDYXB0aW9uQXBwZWFyYW5jZUJlaGF2aW9yVXNlVmFsdWUpOwotICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQ2FwdGlv
blVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNvbG9yUHJvcGVydHlDU1MoQ1NTUHJvcGVydHlJRCBp
ZCwgY29uc3QgQ29sb3ImIGNvbG9yLCBib29sIGltcG9ydGFudCkgY29uc3QKIHsKICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYXBwZW5kQ1NTKGJ1aWxkZXIsIGlkLCBjb2xvci5zZXJp
YWxpemVkKCksIGltcG9ydGFudCk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01l
ZGlhQUY6OmNhcHRpb25TdHJva2VXaWR0aEZvckZvbnQoZmxvYXQgZm9udFNpemUsIGNvbnN0IFN0
cmluZyYgbGFuZ3VhZ2UsIGZsb2F0JiBzdHJva2VXaWR0aCwgYm9vbCYgaW1wb3J0YW50KSBjb25z
dApAQCAtNDA2LDcgKzQxMCw5IEBAIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFB
Rjo6Y2FwdGlvbnNUZXh0RWRnZUNTUygpIGNvbnN0CiAgICAgICAgIGFwcGVuZENTUyhidWlsZGVy
LCBDU1NQcm9wZXJ0eVN0cm9rZUxpbmVjYXAsIGdldFZhbHVlTmFtZShDU1NWYWx1ZVJvdW5kKSwg
aW1wb3J0YW50KTsKICAgICB9CiAgICAgCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVu
Y2VzTWVkaWFBRjo6Y2FwdGlvbnNEZWZhdWx0Rm9udENTUygpIGNvbnN0CkBAIC00NDgsNyArNDU0
LDkgQEAgU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc0RlZmF1
bHRGb250Q1NTKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgIWltcG9y
dGFudCIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCc7Jyk7CiAgICAgCi0gICAgcmV0dXJuIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGZsb2F0IENhcHRp
b25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uRm9udFNpemVTY2FsZUFuZEltcG9ydGFu
Y2UoYm9vbCYgaW1wb3J0YW50KSBjb25zdApAQCAtNTk1LDkgKzYwMywxMSBAQCBTdHJpbmcgQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zU3R5bGVTaGVldE92ZXJyaWRlKCkg
Y29uc3QKICAgICB9CiAjZW5kaWYgLy8gSEFWRShNRURJQV9BQ0NFU1NJQklMSVRZX0ZSQU1FV09S
SykKIAotICAgIExPRyhNZWRpYSwgIkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0
aW9uc1N0eWxlU2hlZXRPdmVycmlkZVNldHRpbmcgc3R5bGUgdG86XG4lcyIsIGNhcHRpb25zT3Zl
cnJpZGVTdHlsZVNoZWV0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0KLSAgICByZXR1cm4g
Y2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC50b1N0cmluZygpKSB7CisgICAgICAgIExP
RyhNZWRpYSwgIkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc1N0eWxlU2hl
ZXRPdmVycmlkZVNldHRpbmcgc3R5bGUgdG86XG4lcyIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiBzdGF0
aWMgU3RyaW5nIGxhbmd1YWdlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGxhbmd1YWdlQ29kZSkK
QEAgLTY2NCwxMCArNjc0LDEzIEBAIHN0YXRpYyBTdHJpbmcgdHJhY2tEaXNwbGF5TmFtZShBdWRp
b1RyYWNrKiB0cmFjaykKICAgICBpZiAoZGlzcGxheU5hbWUuaXNFbXB0eSgpKQogICAgICAgICBk
aXNwbGF5TmFtZS5hcHBlbmQoYXVkaW9UcmFja05vTGFiZWxUZXh0KCkpOwogCi0gICAgaWYgKHRy
YWNrLT5raW5kKCkgIT0gQXVkaW9UcmFjazo6ZGVzY3JpcHRpb25LZXl3b3JkKCkpCi0gICAgICAg
IHJldHVybiBkaXNwbGF5TmFtZS50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGRp
c3BsYXlOYW1lLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgaWYgKHRyYWNrLT5raW5kKCkgIT0gQXVk
aW9UcmFjazo6ZGVzY3JpcHRpb25LZXl3b3JkKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKIAotICAgIHJldHVybiBhdWRpb0Rlc2NyaXB0aW9uVHJhY2tTdWZmaXhUZXh0KGRpc3BsYXlO
YW1lLnRvU3RyaW5nKCkpOworICAgICAgICByZXR1cm4gYXVkaW9EZXNjcmlwdGlvblRyYWNrU3Vm
Zml4VGV4dCgqc3RyaW5nKTsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIENhcHRp
b25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpkaXNwbGF5TmFtZUZvclRyYWNrKEF1ZGlvVHJhY2sq
IHRyYWNrKSBjb25zdApAQCAtNjg4LDI2ICs3MDEsMjkgQEAgc3RhdGljIFN0cmluZyB0cmFja0Rp
c3BsYXlOYW1lKFRleHRUcmFjayogdHJhY2spCiAgICAgaWYgKGRpc3BsYXlOYW1lQnVpbGRlci5p
c0VtcHR5KCkpCiAgICAgICAgIGRpc3BsYXlOYW1lQnVpbGRlci5hcHBlbmQodGV4dFRyYWNrTm9M
YWJlbFRleHQoKSk7CiAKLSAgICBTdHJpbmcgZGlzcGxheU5hbWUgPSBkaXNwbGF5TmFtZUJ1aWxk
ZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBkaXNwbGF5TmFtZUJ1aWxkZXIu
dG9TdHJpbmcoKSkgeworICAgICAgICBTdHJpbmcgZGlzcGxheU5hbWUgPSAqc3RyaW5nOwogCi0g
ICAgaWYgKHRyYWNrLT5pc0Nsb3NlZENhcHRpb25zKCkpIHsKLSAgICAgICAgZGlzcGxheU5hbWUg
PSBjbG9zZWRDYXB0aW9uVHJhY2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOwotICAgICAgICBp
ZiAodHJhY2stPmlzRWFzeVRvUmVhZCgpKQotICAgICAgICAgICAgZGlzcGxheU5hbWUgPSBlYXN5
UmVhZGVyVHJhY2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOworICAgICAgICBpZiAodHJhY2st
PmlzQ2xvc2VkQ2FwdGlvbnMoKSkgeworICAgICAgICAgICAgZGlzcGxheU5hbWUgPSBjbG9zZWRD
YXB0aW9uVHJhY2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOworICAgICAgICAgICAgaWYgKHRy
YWNrLT5pc0Vhc3lUb1JlYWQoKSkKKyAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IGVhc3lS
ZWFkZXJUcmFja01lbnVJdGVtVGV4dChkaXNwbGF5TmFtZSk7CiAKLSAgICAgICAgcmV0dXJuIGRp
c3BsYXlOYW1lOwotICAgIH0KKyAgICAgICAgICAgIHJldHVybiBkaXNwbGF5TmFtZTsKKyAgICAg
ICAgfQogCi0gICAgaWYgKHRyYWNrLT5pc1NESCgpKQotICAgICAgICBkaXNwbGF5TmFtZSA9IHNk
aFRyYWNrTWVudUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsKKyAgICAgICAgaWYgKHRyYWNrLT5pc1NE
SCgpKQorICAgICAgICAgICAgZGlzcGxheU5hbWUgPSBzZGhUcmFja01lbnVJdGVtVGV4dChkaXNw
bGF5TmFtZSk7CiAKLSAgICBpZiAodHJhY2stPmNvbnRhaW5zT25seUZvcmNlZFN1YnRpdGxlcygp
KQotICAgICAgICBkaXNwbGF5TmFtZSA9IGZvcmNlZFRyYWNrTWVudUl0ZW1UZXh0KGRpc3BsYXlO
YW1lKTsKKyAgICAgICAgaWYgKHRyYWNrLT5jb250YWluc09ubHlGb3JjZWRTdWJ0aXRsZXMoKSkK
KyAgICAgICAgICAgIGRpc3BsYXlOYW1lID0gZm9yY2VkVHJhY2tNZW51SXRlbVRleHQoZGlzcGxh
eU5hbWUpOwogCi0gICAgaWYgKHRyYWNrLT5pc0Vhc3lUb1JlYWQoKSkKLSAgICAgICAgZGlzcGxh
eU5hbWUgPSBlYXN5UmVhZGVyVHJhY2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOworICAgICAg
ICBpZiAodHJhY2stPmlzRWFzeVRvUmVhZCgpKQorICAgICAgICAgICAgZGlzcGxheU5hbWUgPSBl
YXN5UmVhZGVyVHJhY2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOwogCi0gICAgcmV0dXJuIGRp
c3BsYXlOYW1lOworICAgICAgICByZXR1cm4gZGlzcGxheU5hbWU7CisgICAgfQorICAgIENSQVNI
KCk7CiB9CiAKIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6ZGlzcGxheU5h
bWVGb3JUcmFjayhUZXh0VHJhY2sqIHRyYWNrKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRl
eCBhODQyNjVhLi4zZTQyNDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtMzY5LDcgKzM2OSw5
IEBAIHN0YXRpYyBKU0M6OllhcnI6OlJlZ3VsYXJFeHByZXNzaW9uIGNyZWF0ZVJlZ0V4cEZvckxh
YmVscyhjb25zdCBWZWN0b3I8U3RyaW5nPiYKICAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kTGl0
ZXJhbCgiXFxiIik7CiAgICAgfQogICAgIHBhdHRlcm4uYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJu
IEpTQzo6WWFycjo6UmVndWxhckV4cHJlc3Npb24ocGF0dGVybi50b1N0cmluZygpLCBKU0M6Ollh
cnI6OlRleHRDYXNlSW5zZW5zaXRpdmUpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHBhdHRlcm4u
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIEpTQzo6WWFycjo6UmVndWxhckV4cHJlc3Npb24o
KnN0cmluZywgSlNDOjpZYXJyOjpUZXh0Q2FzZUluc2Vuc2l0aXZlKTsKKyAgICBDUkFTSCgpOwog
fQogCiBTdHJpbmcgRnJhbWU6OnNlYXJjaEZvckxhYmVsc0Fib3ZlQ2VsbChjb25zdCBKU0M6Ollh
cnI6OlJlZ3VsYXJFeHByZXNzaW9uJiByZWdFeHAsIEhUTUxUYWJsZUNlbGxFbGVtZW50KiBjZWxs
LCBzaXplX3QqIHJlc3VsdERpc3RhbmNlRnJvbVN0YXJ0T2ZDZWxsKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVRyZWUuY3BwCmluZGV4IDI2Y2NjN2EuLjRkY2VmMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJl
ZS5jcHAKQEAgLTE1MCw3ICsxNTAsOSBAQCBBdG9taWNTdHJpbmcgRnJhbWVUcmVlOjp1bmlxdWVD
aGlsZE5hbWUoY29uc3QgQXRvbWljU3RyaW5nJiByZXF1ZXN0ZWROYW1lKSBjb25zdAogICAgIG5h
bWUuYXBwZW5kTnVtYmVyKGNoaWxkQ291bnQoKSk7CiAgICAgbmFtZS5hcHBlbmRMaXRlcmFsKCIt
LT4tLT4iKTsKIAotICAgIHJldHVybiBuYW1lLnRvQXRvbWljU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gbmFtZS50b0F0b21pY1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgYm9vbCBpblNjb3BlKEZyYW1lJiBmcmFtZSwg
VHJlZVNjb3BlJiBzY29wZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAzYmQwMjJm
Li5hZGNjMmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0xNDUyLDcgKzE0NTIs
MTAgQEAgdm9pZCBGcmFtZVZpZXc6OmxvZ01vY2tTY3JvbGxBbmltYXRvck1lc3NhZ2UoY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIk1h
aW4iKTsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIkZyYW1lVmlldzogIik7CiAgICAgYnVp
bGRlci5hcHBlbmQobWVzc2FnZSk7Ci0gICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdlTGV2ZWw6OkRlYnVnLCBidWlsZGVyLnRvU3RyaW5n
KCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
ZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdl
TGV2ZWw6OkRlYnVnLCAqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAK
IHZvaWQgRnJhbWVWaWV3OjpzZXRDYW5ub3RCbGl0VG9XaW5kb3coKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VTZXJpYWxpemVyLmNwcAppbmRleCA1ZjY0MjI0Li45YWE5ZjIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcApAQCAtMjYzLDggKzI2MywxMSBAQCB2b2lkIFBhZ2VT
ZXJpYWxpemVyOjpzZXJpYWxpemVDU1NTdHlsZVNoZWV0KENTU1N0eWxlU2hlZXQqIHN0eWxlU2hl
ZXQsIGNvbnN0IFVSTAogICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNoZWNrIHdoZXRoZXIg
YSBjaGFyc2V0IGhhcyBiZWVuIHNwZWNpZmllZCBhbmQgaWYgbm9uZSB3YXMgZm91bmQgYWRkIG9u
ZS4KICAgICAgICAgVGV4dEVuY29kaW5nIHRleHRFbmNvZGluZyhzdHlsZVNoZWV0LT5jb250ZW50
cygpLmNoYXJzZXQoKSk7CiAgICAgICAgIEFTU0VSVCh0ZXh0RW5jb2RpbmcuaXNWYWxpZCgpKTsK
LSAgICAgICAgbV9yZXNvdXJjZXMuYXBwZW5kKHsgdXJsLCBBU0NJSUxpdGVyYWwgeyAidGV4dC9j
c3MiIH0sIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHRleHRFbmNvZGluZy5lbmNvZGUoY3NzVGV4dC50
b1N0cmluZygpLCBVbmVuY29kYWJsZUhhbmRsaW5nOjpFbnRpdGllcykpIH0pOwotICAgICAgICBt
X3Jlc291cmNlVVJMcy5hZGQodXJsKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gY3NzVGV4
dC50b1N0cmluZygpKSB7CisgICAgICAgICAgICBtX3Jlc291cmNlcy5hcHBlbmQoeyB1cmwsIEFT
Q0lJTGl0ZXJhbCB7ICJ0ZXh0L2NzcyIgfSwgU2hhcmVkQnVmZmVyOjpjcmVhdGUodGV4dEVuY29k
aW5nLmVuY29kZSgqc3RyaW5nLCBVbmVuY29kYWJsZUhhbmRsaW5nOjpFbnRpdGllcykpIH0pOwor
ICAgICAgICAgICAgbV9yZXNvdXJjZVVSTHMuYWRkKHVybCk7CisgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50LmNwcAppbmRleCA5ZDQ0ZDk0Li4zYjQ0ZmY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuY3BwCkBA
IC01MCw3ICs1MCw5IEBAIFN0cmluZyBQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQ6OnN5bmNocm9u
b3VzU2Nyb2xsaW5nUmVhc29uc0FzU3RyaW5nKFN5bmNocm9ub3VzCiAgICAgICAgIHJlYXNvbnMu
YXBwZW5kTGl0ZXJhbCgiaW1hZ2UgZG9jdW1lbnQsIik7CiAKICAgICAvLyBTdHJpcCB0aGUgdHJh
aWxpbmcgY29tbWEuCi0gICAgcmV0dXJuIHJlYXNvbnMudG9TdHJpbmcoKS5sZWZ0KHJlYXNvbnMu
bGVuZ3RoKCkgLSAxKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZWFzb25zLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiBzdHJpbmctPmxlZnQocmVhc29ucy5sZW5ndGgoKSAtIDEpOworICAg
IENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcAppbmRleCAyYWFjOGVlLi5lM2FjOGQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuY3BwCkBAIC04NCw3ICs4NCw5IEBA
IFN0cmluZyBTZWN1cml0eU9yaWdpbkRhdGE6OmRhdGFiYXNlSWRlbnRpZmllcigpIGNvbnN0CiAg
ICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoc2VwYXJhdG9yQ2hhcmFjdGVyKTsKICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZE51bWJlcihwb3J0LnZhbHVlX29yKDApKTsKICAgICAKLSAgICByZXR1cm4g
c3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogc3RkOjpvcHRpb25hbDxTZWN1cml0eU9yaWdpbkRhdGE+IFNlY3VyaXR5T3JpZ2luRGF0
YTo6ZnJvbURhdGFiYXNlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWRlbnRpZmll
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RUcmlnZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmNwcAppbmRl
eCBlZDU0OWNmLi5mYzUwMjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVs
RXZlbnRUZXN0VHJpZ2dlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50
VGVzdFRyaWdnZXIuY3BwCkBAIC0xMDAsNyArMTAwLDEwIEBAIHN0YXRpYyB2b2lkIGR1bXBTdGF0
ZShXVEY6Okhhc2hNYXA8V2hlZWxFdmVudFRlc3RUcmlnZ2VyOjpTY3JvbGxhYmxlQXJlYUlkZW50
aWZpCiAgICAgICAgICAgICAgICAgcmVhc29ucy5hcHBlbmQoIiwgIik7CiAgICAgICAgICAgICBy
ZWFzb25zLmFwcGVuZChTdHJpbmc6Om51bWJlcihyZWFzb24pKTsKICAgICAgICAgfQotICAgICAg
ICBMT0coV2hlZWxFdmVudFRlc3RUcmlnZ2VycywgIiAgICAgUmVhc29uczogJXMiLCByZWFzb25z
LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJl
YXNvbnMudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIExPRyhXaGVlbEV2ZW50VGVzdFRyaWdnZXJz
LCAiICAgICBSZWFzb25zOiAlcyIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAppbmRleCBmYzJmZDEy
Li4zYzkxODcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2Vj
dXJpdHlQb2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1
cml0eVBvbGljeS5jcHAKQEAgLTg1LDcgKzg1LDkgQEAgc3RhdGljIFN0cmluZyBjb25zb2xlTWVz
c2FnZUZvclZpb2xhdGlvbihjb25zdCBjaGFyKiBlZmZlY3RpdmVWaW9sYXRlZERpcmVjdGl2ZSwK
ICAgICAgICAgcmVzdWx0LmFwcGVuZChlZmZlY3RpdmVWaW9sYXRlZERpcmVjdGl2ZSk7CiAgICAg
ICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCIgZGlyZWN0aXZlIG9mIHRoZSBDb250ZW50IFNlY3Vy
aXR5IFBvbGljeS4iKTsKICAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkNvbnRlbnRT
ZWN1cml0eVBvbGljeShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KQpAQCAtMTM3LDcgKzEzOSwxMCBAQCBib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxs
b3dSdW5uaW5nT3JEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KGNvbnN0IFVSTCYgdQogICAgICAg
ICBjb25zb2xlTWVzc2FnZS5hcHBlbmQodXJsLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0
aCgpKTsKICAgICAgICAgY29uc29sZU1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiIGJlY2F1c2UgIik7
CiAgICAgICAgIGNvbnNvbGVNZXNzYWdlLmFwcGVuZCgiJ2Jsb2NrLWFsbC1taXhlZC1jb250ZW50
JyBhcHBlYXJzIGluIHRoZSBDb250ZW50IFNlY3VyaXR5IFBvbGljeS4iKTsKLSAgICAgICAgcmVw
b3J0VmlvbGF0aW9uKENvbnRlbnRTZWN1cml0eVBvbGljeURpcmVjdGl2ZU5hbWVzOjpibG9ja0Fs
bE1peGVkQ29udGVudCwgQ29udGVudFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXM6OmJsb2Nr
QWxsTWl4ZWRDb250ZW50LCAqcG9saWN5LCB1cmwsIGNvbnNvbGVNZXNzYWdlLnRvU3RyaW5nKCkp
OworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBjb25zb2xlTWVzc2FnZS50b1N0cmluZygpKQor
ICAgICAgICAgICAgcmVwb3J0VmlvbGF0aW9uKENvbnRlbnRTZWN1cml0eVBvbGljeURpcmVjdGl2
ZU5hbWVzOjpibG9ja0FsbE1peGVkQ29udGVudCwgQ29udGVudFNlY3VyaXR5UG9saWN5RGlyZWN0
aXZlTmFtZXM6OmJsb2NrQWxsTWl4ZWRDb250ZW50LCAqcG9saWN5LCB1cmwsICpzdHJpbmcpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogCiAgICAgICAgIGlmICghaXNSZXBv
cnRPbmx5KQogICAgICAgICAgICAgYWxsb3cgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0F4aXNTY3JvbGxTbmFwT2Zmc2V0cy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9BeGlzU2Nyb2xsU25hcE9mZnNldHMuY3BwCmluZGV4IDAy
MDc1MzguLmQ4ZDNmMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L0F4aXNTY3JvbGxTbmFwT2Zmc2V0cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvQXhpc1Njcm9sbFNuYXBPZmZzZXRzLmNwcApAQCAtODEsNyArODEsOSBAQCBzdGF0aWMg
U3RyaW5nIHNuYXBPZmZzZXRzVG9TdHJpbmcoY29uc3QgVmVjdG9yPExheW91dFVuaXQ+JiBzbmFw
T2Zmc2V0cykKICAgICAgICAgcy5hcHBlbmQoU3RyaW5nOjpmb3JtYXQoIiUuMWYgIiwgb2Zmc2V0
LnRvRmxvYXQoKSkpOwogCiAgICAgcy5hcHBlbmQoIl0iKTsKLSAgICByZXR1cm4gcy50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHMudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBzbmFwT2Zmc2V0UmFu
Z2VzVG9TdHJpbmcoY29uc3QgVmVjdG9yPFNjcm9sbE9mZnNldFJhbmdlPExheW91dFVuaXQ+PiYg
cmFuZ2VzKQpAQCAtOTEsNyArOTMsOSBAQCBzdGF0aWMgU3RyaW5nIHNuYXBPZmZzZXRSYW5nZXNU
b1N0cmluZyhjb25zdCBWZWN0b3I8U2Nyb2xsT2Zmc2V0UmFuZ2U8TGF5b3V0VW5pdAogICAgIGZv
ciAoYXV0byByYW5nZSA6IHJhbmdlcykKICAgICAgICAgcy5hcHBlbmQoU3RyaW5nOjpmb3JtYXQo
IiglLjFmLCAlLjFmKSAiLCByYW5nZS5zdGFydC50b0Zsb2F0KCksIHJhbmdlLmVuZC50b0Zsb2F0
KCkpKTsKICAgICBzLmFwcGVuZCgiXSIpOwotICAgIHJldHVybiBzLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gcy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIHNuYXBQb3J0T3JBcmVhVG9TdHJpbmco
Y29uc3QgTGF5b3V0UmVjdCYgcmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCBmNTAyMjFhLi4zYzFjNmUy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29y
ZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuY3BwCkBAIC0zODksNyArMzg5LDkgQEAgU3RyaW5nIFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yOjpzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNBc1RleHQoU3luY2hyb25vdXNTY3Jv
bGwKIAogICAgIGlmIChzdHJpbmdCdWlsZGVyLmxlbmd0aCgpKQogICAgICAgICBzdHJpbmdCdWls
ZGVyLnJlc2l6ZShzdHJpbmdCdWlsZGVyLmxlbmd0aCgpIC0gMik7Ci0gICAgcmV0dXJuIHN0cmlu
Z0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IFN0cmluZyBTY3JvbGxpbmdDb29yZGluYXRvcjo6c3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25z
QXNUZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RlY2lt
YWwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVjaW1hbC5jcHAKaW5kZXggM2Q1MjVj
Zi4uMWExOTJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVjaW1hbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVjaW1hbC5jcHAKQEAgLTk5NCw3ICs5
OTQsOSBAQCBTdHJpbmcgRGVjaW1hbDo6dG9TdHJpbmcoKSBjb25zdAogICAgIGlmIChvcmlnaW5h
bEV4cG9uZW50IDw9IDAgJiYgYWRqdXN0ZWRFeHBvbmVudCA+PSAtNikgewogICAgICAgICBpZiAo
IW9yaWdpbmFsRXhwb25lbnQpIHsKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGRpZ2l0cyk7
Ci0gICAgICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogCiAgICAgICAgIGlm
IChhZGp1c3RlZEV4cG9uZW50ID49IDApIHsKQEAgLTEwMDMsNyArMTAwNSw5IEBAIFN0cmluZyBE
ZWNpbWFsOjp0b1N0cmluZygpIGNvbnN0CiAgICAgICAgICAgICAgICAgaWYgKGkgPT0gYWRqdXN0
ZWRFeHBvbmVudCkKICAgICAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJy4nKTsKICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAK
ICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIwLiIpOwpAQCAtMTAyNyw3ICsxMDMxLDkg
QEAgU3RyaW5nIERlY2ltYWw6OnRvU3RyaW5nKCkgY29uc3QKICAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kTnVtYmVyKGFkanVzdGVkRXhwb25lbnQpOwogICAgICAgICB9CiAgICAgfQotICAgIHJl
dHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBE
ZWNpbWFsIERlY2ltYWw6Onplcm8oU2lnbiBzaWduKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxl
U3lzdGVtLmNwcAppbmRleCAyZmRiMjYwLi5lNjdkNjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9GaWxlU3lzdGVtLmNwcApAQCAtMTMwLDcgKzEzMCw5IEBAIFN0cmluZyBlbmNvZGVGb3JGaWxl
TmFtZShjb25zdCBTdHJpbmcmIGlucHV0U3RyaW5nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVu
ZChjaGFyYWN0ZXIpOwogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIGRlY29kZUZyb21GaWxlbmFtZShjb25z
dCBTdHJpbmcmIGlucHV0U3RyaW5nKQpAQCAtMTgxLDcgKzE4Myw5IEBAIFN0cmluZyBkZWNvZGVG
cm9tRmlsZW5hbWUoY29uc3QgU3RyaW5nJiBpbnB1dFN0cmluZykKICAgICAgICAgaSArPSA1Owog
ICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogU3RyaW5nIGxhc3RDb21wb25lbnRPZlBhdGhJZ25vcmluZ1RyYWlsaW5nU2xh
c2goY29uc3QgU3RyaW5nJiBwYXRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUE9ESW50ZXJ2YWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPREludGVydmFsLmgK
aW5kZXggMDQ4ZGE5OC4uNjQ2MzYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUE9ESW50ZXJ2YWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RJbnRlcnZh
bC5oCkBAIC0xNDUsNyArMTQ1LDkgQEAgcHVibGljOgogICAgICAgICBidWlsZGVyLmFwcGVuZExp
dGVyYWwoIiwgbWF4SGlnaD0iKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoVmFsdWVUb1N0cmlu
ZzxUPjo6c3RyaW5nKG1heEhpZ2goKSkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnXScpOwot
ICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICAgICAgQ1JBU0goKTsKICAgICB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
T0RSZWRCbGFja1RyZWUuaAppbmRleCAxMzFmMzFhLi40OTYwZWZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RSZWRCbGFja1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QT0RSZWRCbGFja1RyZWUuaApAQCAtNzQ0LDcgKzc0NCwxMCBAQCBwcml2YXRl
OgogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoVmFsdWVUb1N0cmluZzxUPjo6c3RyaW5nKG5v
ZGUtPmRhdGEoKSkpOwogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoKG5vZGUtPmNvbG9yKCkg
PT0gQmxhY2spID8gIiAoYmxhY2spIiA6ICIgKHJlZCkiKTsKICAgICAgICAgfQotICAgICAgICBM
T0dfRVJST1IoIiVzIiwgYnVpbGRlci50b1N0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgTE9H
X0VSUk9SKCIlcyIsIHN0cmluZy0+YXNjaWkoKS5kYXRhKCkpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBDUkFTSCgpOwogICAgICAgICBpZiAobm9kZSkgewogICAgICAgICAgICAgZHVtcEZy
b21Ob2RlKG5vZGUtPmxlZnQoKSwgaW5kZW50YXRpb24gKyAyKTsKICAgICAgICAgICAgIGR1bXBG
cm9tTm9kZShub2RlLT5yaWdodCgpLCBpbmRlbnRhdGlvbiArIDIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VS
TC5jcHAKaW5kZXggOTkwMGU1NS4uMDMzNWE1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vVVJMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwCkBA
IC00NDgsOCArNDQ4LDExIEBAIHZvaWQgVVJMOjpzZXRIb3N0KGNvbnN0IFN0cmluZyYgcykKICAg
ICBidWlsZGVyLmFwcGVuZChTdHJpbmdWaWV3KGVuY29kZWRIb3N0TmFtZS5kYXRhKCksIGVuY29k
ZWRIb3N0TmFtZS5zaXplKCkpKTsKICAgICBidWlsZGVyLmFwcGVuZChtX3N0cmluZy5zdWJzdHJp
bmcobV9ob3N0RW5kKSk7CiAKLSAgICBVUkxQYXJzZXIgcGFyc2VyKGJ1aWxkZXIudG9TdHJpbmco
KSk7Ci0gICAgKnRoaXMgPSBwYXJzZXIucmVzdWx0KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
YnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIFVSTFBhcnNlciBwYXJzZXIoKnN0cmluZyk7
CisgICAgICAgICp0aGlzID0gcGFyc2VyLnJlc3VsdCgpOworICAgIH0gZWxzZQorICAgICAgICBD
UkFTSCgpOwogfQogCiB2b2lkIFVSTDo6cmVtb3ZlUG9ydCgpCkBAIC01MTAsOCArNTEzLDExIEBA
IHZvaWQgVVJMOjpzZXRIb3N0QW5kUG9ydChjb25zdCBTdHJpbmcmIGhvc3RBbmRQb3J0KQogICAg
IH0KICAgICBidWlsZGVyLmFwcGVuZChtX3N0cmluZy5zdWJzdHJpbmcobV9wb3J0RW5kKSk7CiAK
LSAgICBVUkxQYXJzZXIgcGFyc2VyKGJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgKnRoaXMgPSBw
YXJzZXIucmVzdWx0KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygp
KSB7CisgICAgICAgIFVSTFBhcnNlciBwYXJzZXIoKnN0cmluZyk7CisgICAgICAgICp0aGlzID0g
cGFyc2VyLnJlc3VsdCgpOworICAgIH0gZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiBzdGF0
aWMgU3RyaW5nIHBlcmNlbnRFbmNvZGVDaGFyYWN0ZXJzKGNvbnN0IFN0cmluZyYgaW5wdXQsIGJv
b2woKnNob3VsZEVuY29kZSkoVUNoYXIpKQpAQCAtNTMwLDcgKzUzNiw5IEBAIHN0YXRpYyBTdHJp
bmcgcGVyY2VudEVuY29kZUNoYXJhY3RlcnMoY29uc3QgU3RyaW5nJiBpbnB1dCwgYm9vbCgqc2hv
dWxkRW5jb2RlKShVCiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBidWlsZGVy
LmFwcGVuZChjKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9OwogCiAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBpbnB1dC5sZW5ndGgoKTsgKytpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmNwcAppbmRleCA4
Yzk3MmQ2Li5lZGJmZWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmlt
YXRpb24vVGltaW5nRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Fu
aW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5jcHAKQEAgLTEyOSw3ICsxMjksMTAgQEAgRXhjZXB0aW9u
T3I8UmVmUHRyPFRpbWluZ0Z1bmN0aW9uPj4gVGltaW5nRnVuY3Rpb246OmNyZWF0ZUZyb21DU1NU
ZXh0KGNvbnN0IFN0cmkKICAgICBjc3NTdHJpbmcuYXBwZW5kTGl0ZXJhbCgiOiAiKTsKICAgICBj
c3NTdHJpbmcuYXBwZW5kKGNzc1RleHQpOwogICAgIGF1dG8gc3R5bGVQcm9wZXJ0aWVzID0gTXV0
YWJsZVN0eWxlUHJvcGVydGllczo6Y3JlYXRlKCk7Ci0gICAgc3R5bGVQcm9wZXJ0aWVzLT5wYXJz
ZURlY2xhcmF0aW9uKGNzc1N0cmluZy50b1N0cmluZygpLCBDU1NQYXJzZXJDb250ZXh0KEhUTUxT
dGFuZGFyZE1vZGUpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBjc3NTdHJpbmcudG9TdHJpbmco
KSkKKyAgICAgICAgc3R5bGVQcm9wZXJ0aWVzLT5wYXJzZURlY2xhcmF0aW9uKCpzdHJpbmcsIENT
U1BhcnNlckNvbnRleHQoSFRNTFN0YW5kYXJkTW9kZSkpOworICAgIGVsc2UKKyAgICAgICAgQ1JB
U0goKTsKIAogICAgIGlmIChhdXRvIGNzc1ZhbHVlID0gc3R5bGVQcm9wZXJ0aWVzLT5nZXRQcm9w
ZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5QW5pbWF0aW9uVGltaW5nRnVuY3Rpb24pKSB7CiAgICAg
ICAgIGlmIChhdXRvIHRpbWluZ0Z1bmN0aW9uID0gY3JlYXRlRnJvbUNTU1ZhbHVlKCpjc3NWYWx1
ZS5nZXQoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVT
eXN0ZW1HbGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUds
aWIuY3BwCmluZGV4IGY5NDA4MTUuLjJiMzBiMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwCkBAIC0yMTgsNyArMjE4LDkgQEAgU3RyaW5n
IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudHMoU3RyaW5nVmlldyBwYXRoLCBjb25zdCBWZWN0b3I8
U3RyaW5nVmlldz4mIGNvbXAKICAgICAgICAgYnVpbGRlci5hcHBlbmQoR19ESVJfU0VQQVJBVE9S
X1MpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChjb21wb25lbnQpOwogICAgIH0KLSAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9v
bCBtYWtlQWxsRGlyZWN0b3JpZXMoY29uc3QgU3RyaW5nJiBwYXRoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9Vc2VyQWdlbnRHTGliLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dsaWIvVXNlckFnZW50R0xpYi5jcHAKaW5kZXggMTYyMWE4OC4uMzgwNzdm
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9Vc2VyQWdlbnRHTGli
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL1VzZXJBZ2VudEdMaWIuY3Bw
CkBAIC0xMDYsNyArMTA2LDkgQEAgc3RhdGljIFN0cmluZyBidWlsZFVzZXJBZ2VudFN0cmluZyhj
b25zdCBVc2VyQWdlbnRRdWlya3MmIHF1aXJrcykKICAgICB1YVN0cmluZy5hcHBlbmRMaXRlcmFs
KCJWZXJzaW9uLzExLjAgU2FmYXJpLyIpOwogICAgIHVhU3RyaW5nLmFwcGVuZCh2ZXJzaW9uRm9y
VUFTdHJpbmcoKSk7CiAKLSAgICByZXR1cm4gdWFTdHJpbmcudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSB1YVN0cmluZy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5nIHN0YW5kYXJkVXNlckFn
ZW50U3RhdGljKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0NvbG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcApp
bmRleCA1ZGQxNTBmLi5lZTFiZTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Db2xvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29sb3IuY3BwCkBAIC0zNDgsNyArMzQ4LDkgQEAgU3RyaW5nIENvbG9yOjpzZXJpYWxpemVk
KCkgY29uc3QKICAgICAgICAgYXBwZW5kQnl0ZUFzSGV4KHJlZCgpLCBidWlsZGVyLCBMb3dlcmNh
c2UpOwogICAgICAgICBhcHBlbmRCeXRlQXNIZXgoZ3JlZW4oKSwgYnVpbGRlciwgTG93ZXJjYXNl
KTsKICAgICAgICAgYXBwZW5kQnl0ZUFzSGV4KGJsdWUoKSwgYnVpbGRlciwgTG93ZXJjYXNlKTsK
LSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIGNzc1RleHQoKTsKQEAgLTM4NCw3
ICszODYsOSBAQCBTdHJpbmcgQ29sb3I6OmNzc1RleHQoKSBjb25zdAogICAgIH0KICAgICAgICAg
CiAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIENvbG9yOjpuYW1lRm9yUmVu
ZGVyVHJlZUFzVGV4dCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwCmluZGV4IDUwZTNjNWMuLjQ0OGRmZDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwCkBA
IC03Miw3ICs3Miw5IEBAIFN0cmluZyBFeHRlbmRlZENvbG9yOjpjc3NUZXh0KCkgY29uc3QKICAg
ICB9CiAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKIAotICAgIHJldHVybiBidWlsZGVyLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAKaW5kZXggODQ3ODYxZi4uNTU0
ODI5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENh
c2NhZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNj
YWRlLmNwcApAQCAtNTQ5LDcgKzU0OSw5IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIG5vcm1hbGl6
ZVNwYWNlc0ludGVybmFsKGNvbnN0IENoYXJhY3RlclR5cGUqIGNoYXJhY3RlcnMsIHVuCiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQogICAgICAgICBub3JtYWxpemVk
LmFwcGVuZChGb250Q2FzY2FkZTo6bm9ybWFsaXplU3BhY2VzKGNoYXJhY3RlcnNbaV0pKTsKIAot
ICAgIHJldHVybiBub3JtYWxpemVkLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
bm9ybWFsaXplZC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBTdHJpbmcgRm9udENhc2NhZGU6Om5vcm1hbGl6ZVNwYWNlcyhjb25zdCBMQ2hh
ciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRUYWdnZWRTZXR0aW5ncy5jcHAKaW5kZXggNjFiMmVi
ZS4uNWM0NjcyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udFRhZ2dlZFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250VGFnZ2VkU2V0dGluZ3MuY3BwCkBAIC03Miw3ICs3MiwxMCBAQCBUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBGb250VmFyaWF0aW9uU2V0dGluZ3Mm
IGl0ZW0pCiAgICAgICAgIHMuYXBwZW5kKHZhcmlhdGlvbi50YWcoKVsxXSk7CiAgICAgICAgIHMu
YXBwZW5kKHZhcmlhdGlvbi50YWcoKVsyXSk7CiAgICAgICAgIHMuYXBwZW5kKHZhcmlhdGlvbi50
YWcoKVszXSk7Ci0gICAgICAgIHRzLmR1bXBQcm9wZXJ0eShzLnRvU3RyaW5nKCksIGl0ZW0uYXQo
aSkudmFsdWUoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHMudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgqc3RyaW5nLCBpdGVtLmF0KGkpLnZhbHVlKCkpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICByZXR1cm4gdHM7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuY3BwCmluZGV4IDY5ODE4MGUuLjE1Y2U4OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCkBAIC00NDEsNyArNDQxLDkgQEAg
U3RyaW5nIEdyYXBoaWNzTGF5ZXI6OmFuaW1hdGlvbk5hbWVGb3JUcmFuc2l0aW9uKEFuaW1hdGVk
UHJvcGVydHlJRCBwcm9wZXJ0eSkKICAgICBpZC5hcHBlbmRMaXRlcmFsKCItfHRyYW5zaXRpb24i
KTsKICAgICBpZC5hcHBlbmROdW1iZXIoc3RhdGljX2Nhc3Q8aW50Pihwcm9wZXJ0eSkpOwogICAg
IGlkLmFwcGVuZCgnLScpOwotICAgIHJldHVybiBpZC50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IGlkLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAKIHZvaWQgR3JhcGhpY3NMYXllcjo6c3VzcGVuZEFuaW1hdGlvbnMoTW9ub3Rv
bmljVGltZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZG
LmNwcAppbmRleCA2ZjJiMzg3Li45NTNjNDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0lu
YmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCkBAIC0zMDAsOCArMzAwLDEyIEBAIHZvaWQgSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZUF0dHJpYnV0ZXMoQ0ZBdHRyaWJ1dGVk
U3RyaW5nUmVmIGF0dHJpCiAgICAgICAgIGNvbnRlbnQuYXBwZW5kKHRhZ0VuZCk7CiAgICAgfQog
Ci0gICAgaWYgKGNvbnRlbnQubGVuZ3RoKCkpCi0gICAgICAgIGN1ZURhdGEuc2V0Q29udGVudChj
b250ZW50LnRvU3RyaW5nKCkpOworICAgIGlmIChjb250ZW50Lmxlbmd0aCgpKSB7CisgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IGNvbnRlbnQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGN1ZURh
dGEuc2V0Q29udGVudCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0go
KTsKKyAgICB9CiB9CiAKIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1
ZShDRkFycmF5UmVmIGF0dHJpYnV0ZWRTdHJpbmdzLCBDRkFycmF5UmVmIG5hdGl2ZVNhbXBsZXMs
IGNvbnN0IE1lZGlhVGltZSYgdGltZSkKQEAgLTUzMCw3ICs1MzQsMTAgQEAgdm9pZCBJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzTmF0aXZlU2FtcGxlcyhDRkFycmF5UmVmIG5hdGl2
ZVNhbXBsZXMsIGMKICAgICAgICAgICAgIGhlYWRlci5hcHBlbmQoIlxuXG4iKTsKIAogICAgICAg
ICAgICAgREVCVUdfTE9HKExPR0lERU5USUZJRVIsICJWVFQgaGVhZGVyICIsICZoZWFkZXIpOwot
ICAgICAgICAgICAgY2xpZW50KCktPnBhcnNlV2ViVlRURmlsZUhlYWRlcihoZWFkZXIudG9TdHJp
bmcoKSk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBoZWFkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgICAgICAgICBjbGllbnQoKS0+cGFyc2VXZWJWVFRGaWxlSGVhZGVyKFdURk1vdmUo
KnN0cmluZykpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAg
ICAgICAgICAgICBtX2hhdmVSZXBvcnRlZFZUVEhlYWRlciA9IHRydWU7CiAgICAgICAgIH0gd2hp
bGUgKDApOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9UaWxlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9UaWxlQ29udHJvbGxlci5jcHAKaW5kZXggZWMzYWU0Zi4uYTM3ZDg0NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNw
cApAQCAtNzM1LDcgKzczNSwxMCBAQCBSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBUaWxlQ29udHJv
bGxlcjo6Y3JlYXRlVGlsZUxheWVyKGNvbnN0IEludFJlY3QmIHRpbGVSZWN0LAogICAgIG5hbWVC
dWlsZGVyLmFwcGVuZE51bWJlcih0aWxlUmVjdC5sb2NhdGlvbigpLngoKSk7CiAgICAgbmFtZUJ1
aWxkZXIuYXBwZW5kKCcsJyk7CiAgICAgbmFtZUJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRpbGVSZWN0
LmxvY2F0aW9uKCkueSgpKTsKLSAgICBsYXllci0+c2V0TmFtZShuYW1lQnVpbGRlci50b1N0cmlu
ZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBuYW1lQnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICBsYXllci0+c2V0TmFtZSgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7
CiAKICAgICBmbG9hdCB0ZW1wb3JhcnlTY2FsZUZhY3RvciA9IG93bmluZ0dyYXBoaWNzTGF5ZXIo
KS0+cGxhdGZvcm1DQUxheWVyQ29udGVudHNTY2FsZU11bHRpcGxpZXJGb3JOZXdUaWxlcyhtX3Rp
bGVDYWNoZUxheWVyKTsKICAgICBtX2hhc1RpbGVzV2l0aFRlbXBvcmFyeVNjYWxlRmFjdG9yIHw9
IHRlbXBvcmFyeVNjYWxlRmFjdG9yICE9IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9UaWxlR3JpZC5jcHAKaW5kZXggNTkxOWY5Ny4uZTg2NjU5NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUdyaWQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNwcApAQCAt
NTksNyArNTksOSBAQCBzdGF0aWMgU3RyaW5nIHZhbGlkYXRpb25Qb2xpY3lBc1N0cmluZyhUaWxl
R3JpZDo6VGlsZVZhbGlkYXRpb25Qb2xpY3kgdmFsaWRhdGlvbgogICAgIH0KICAgICBidWlsZGVy
LmFwcGVuZExpdGVyYWwoIl0iKTsKIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldp
bi5jcHAKaW5kZXggYzAwMGI0My4uZmE2NDBmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5j
cHAKQEAgLTkzNCw3ICs5MzQsOSBAQCBTdHJpbmcgUGxhdGZvcm1DQUxheWVyV2luOjpsYXllclRy
ZWVBc1N0cmluZygpIGNvbnN0CiAgICAgLy8gUHJpbnQgbGF5ZXIgdHJlZSBmcm9tIHRoZSByb290
CiAgICAgcHJpbnRMYXllcihidWlsZGVyLCB0aGlzLCAwKTsKIAotICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBSZWY8UGxhdGZvcm1D
QUxheWVyPiBQbGF0Zm9ybUNBTGF5ZXJXaW46OmNyZWF0ZUNvbXBhdGlibGVMYXllcihQbGF0Zm9y
bUNBTGF5ZXI6OkxheWVyVHlwZSBsYXllclR5cGUsIFBsYXRmb3JtQ0FMYXllckNsaWVudCogY2xp
ZW50KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwCmluZGV4IGRmZmNkY2IuLjQ3ZjMyMzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4
dHVyZUNvcGllckNWLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAKQEAgLTUxMiw3ICs1MTIsMTAgQEAgYm9vbCBWaWRl
b1RleHR1cmVDb3BpZXJDVjo6aW5pdGlhbGl6ZUNvbnRleHRPYmplY3RzKCkKICAgICB2ZXJ0ZXhT
aGFkZXJTb3VyY2UuYXBwZW5kTGl0ZXJhbCgifVxuIik7CiAKICAgICBQbGF0Zm9ybTNET2JqZWN0
IHZlcnRleFNoYWRlciA9IG1fY29udGV4dC0+Y3JlYXRlU2hhZGVyKEdyYXBoaWNzQ29udGV4dDNE
OjpWRVJURVhfU0hBREVSKTsKLSAgICBtX2NvbnRleHQtPnNoYWRlclNvdXJjZSh2ZXJ0ZXhTaGFk
ZXIsIHZlcnRleFNoYWRlclNvdXJjZS50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSB2ZXJ0ZXhTaGFkZXJTb3VyY2UudG9TdHJpbmcoKSkKKyAgICAgICAgbV9jb250ZXh0LT5zaGFk
ZXJTb3VyY2UodmVydGV4U2hhZGVyLCAqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNI
KCk7CiAgICAgbV9jb250ZXh0LT5jb21waWxlU2hhZGVyRGlyZWN0KHZlcnRleFNoYWRlcik7CiAK
ICAgICBHQzNEaW50IHZhbHVlID0gMDsKQEAgLTU1Myw3ICs1NTYsMTAgQEAgYm9vbCBWaWRlb1Rl
eHR1cmVDb3BpZXJDVjo6aW5pdGlhbGl6ZUNvbnRleHRPYmplY3RzKCkKICAgICBmcmFnbWVudFNo
YWRlclNvdXJjZS5hcHBlbmRMaXRlcmFsKCJ9XG4iKTsKIAogICAgIFBsYXRmb3JtM0RPYmplY3Qg
ZnJhZ21lbnRTaGFkZXIgPSBtX2NvbnRleHQtPmNyZWF0ZVNoYWRlcihHcmFwaGljc0NvbnRleHQz
RDo6RlJBR01FTlRfU0hBREVSKTsKLSAgICBtX2NvbnRleHQtPnNoYWRlclNvdXJjZShmcmFnbWVu
dFNoYWRlciwgZnJhZ21lbnRTaGFkZXJTb3VyY2UudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gZnJhZ21lbnRTaGFkZXJTb3VyY2UudG9TdHJpbmcoKSkKKyAgICAgICAgbV9jb250
ZXh0LT5zaGFkZXJTb3VyY2UoZnJhZ21lbnRTaGFkZXIsICpzdHJpbmcpOworICAgIGVsc2UKKyAg
ICAgICAgQ1JBU0goKTsKICAgICBtX2NvbnRleHQtPmNvbXBpbGVTaGFkZXJEaXJlY3QoZnJhZ21l
bnRTaGFkZXIpOwogCiAgICAgbV9jb250ZXh0LT5nZXRTaGFkZXJpdihmcmFnbWVudFNoYWRlciwg
R3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBJTEVfU1RBVFVTLCAmdmFsdWUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNE
T3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKaW5kZXggNWJkZDY2My4uMDI1ZWNj
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dy
YXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCkBA
IC05NTMsNyArOTUzLDkgQEAgc3RhdGljIFN0cmluZyBnZW5lcmF0ZUhhc2hlZE5hbWUoY29uc3Qg
U3RyaW5nJiBuYW1lKQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwoIndlYmdsXyIpOwogICAgIGFwcGVuZFVuc2lnbmVkNjRBc0hleChudW1iZXIs
IGJ1aWxkZXIsIExvd2VyY2FzZSk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBHcmFwaGlj
c0NvbnRleHQzRDo6bWFwcGVkU3ltYm9sSW5TaGFkZXJTb3VyY2VNYXAoUGxhdGZvcm0zRE9iamVj
dCBzaGFkZXIsIEFOR0xFU2hhZGVyU3ltYm9sVHlwZSBzeW1ib2xUeXBlLCBjb25zdCBTdHJpbmcm
IG5hbWUpCkBAIC0xNjg1LDggKzE2ODcsMTEgQEAgU3RyaW5nIEdyYXBoaWNzQ29udGV4dDNEOjpn
ZXRVbm1hbmdsZWRJbmZvTG9nKFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyc1syXSwgR0MzRHMKIAog
ICAgIHByb2Nlc3NlZExvZy5hcHBlbmQobG9nLnN1YnN0cmluZyhzdGFydEZyb20sIGxvZy5sZW5n
dGgoKSAtIHN0YXJ0RnJvbSkpOwogCi0gICAgTE9HKFdlYkdMLCAiVW5tYW5nbGVkIFNoYWRlcklu
Zm9Mb2c6XG4lcyIsIHByb2Nlc3NlZExvZy50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAg
IHJldHVybiBwcm9jZXNzZWRMb2cudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBw
cm9jZXNzZWRMb2cudG9TdHJpbmcoKSkgeworICAgICAgICBMT0coV2ViR0wsICJVbm1hbmdsZWQg
U2hhZGVySW5mb0xvZzpcbiVzIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBHcmFwaGljc0Nv
bnRleHQzRDo6Z2V0UHJvZ3JhbUluZm9Mb2coUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJTaGFkZXJQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAKaW5kZXggMmU2YzUyYy4uMjRh
ODhmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwCkBAIC0z
OTcsNyArMzk3LDEwIEBAIFJlZjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gVGV4dHVyZU1h
cHBlclNoYWRlclByb2dyYW06OmNyZWF0ZShUZXh0dXJlTWFwcGVyCiAjZW5kaWYKIAogICAgIC8v
IEFwcGVuZCB0aGUgb3B0aW9ucy4KLSAgICB2ZXJ0ZXhTaGFkZXJCdWlsZGVyLmFwcGVuZChvcHRp
b25zQXBwbGllckJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gb3B0
aW9uc0FwcGxpZXJCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHZlcnRleFNoYWRlckJ1aWxk
ZXIuYXBwZW5kKCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIC8v
IEFwcGVuZCB0aGUgYXBwcm9wcmlhdGUgaW5wdXQvb3V0cHV0IHZhcmlhYmxlIGRlZmluaXRpb25z
LgogI2lmIFVTRShPUEVOR0xfRVMpCkBAIC00MjEsNyArNDI0LDEwIEBAIFJlZjxUZXh0dXJlTWFw
cGVyU2hhZGVyUHJvZ3JhbT4gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OmNyZWF0ZShUZXh0
dXJlTWFwcGVyCiAjZW5kaWYKIAogICAgIC8vIEFwcGVuZCB0aGUgb3B0aW9ucy4KLSAgICBmcmFn
bWVudFNoYWRlckJ1aWxkZXIuYXBwZW5kKG9wdGlvbnNBcHBsaWVyQnVpbGRlci50b1N0cmluZygp
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBvcHRpb25zQXBwbGllckJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgZnJhZ21lbnRTaGFkZXJCdWlsZGVyLmFwcGVuZCgqc3RyaW5nKTsKKyAgICBl
bHNlCisgICAgICAgIENSQVNIKCk7CiAKICAgICAvLyBBcHBlbmQgdGhlIGNvbW1vbiBoZWFkZXIu
CiAgICAgZnJhZ21lbnRTaGFkZXJCdWlsZGVyLmFwcGVuZChmcmFnbWVudFRlbXBsYXRlSGVhZGVy
Q29tbW9uKTsKQEAgLTQzOSw3ICs0NDUsMTAgQEAgUmVmPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9n
cmFtPiBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKFRleHR1cmVNYXBwZXIKICAg
ICAvLyBBcHBlbmQgdGhlIGNvbW1vbiBjb2RlLgogICAgIGZyYWdtZW50U2hhZGVyQnVpbGRlci5h
cHBlbmQoZnJhZ21lbnRUZW1wbGF0ZUNvbW1vbik7CiAKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbSh2ZXJ0ZXhTaGFkZXJCdWlsZGVyLnRvU3RyaW5n
KCksIGZyYWdtZW50U2hhZGVyQnVpbGRlci50b1N0cmluZygpKSk7CisgICAgaWYgKGF1dG8gdmVy
dGV4U3RyaW5nID0gdmVydGV4U2hhZGVyQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpZiAo
YXV0byBmcmFnbWVudFN0cmluZyA9IGZyYWdtZW50U2hhZGVyQnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dHVyZU1hcHBlclNoYWRlclByb2dy
YW0oKnZlcnRleFN0cmluZywgKmZyYWdtZW50U3RyaW5nKSk7CisgICAgQ1JBU0goKTsKIH0KIAog
I2lmICFMT0dfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9TZWxlY3Rpb25EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWxlY3Rp
b25EYXRhLmNwcAppbmRleCAxZTI3OTliLi5mZmM3ZTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvU2VsZWN0aW9uRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1NlbGVjdGlvbkRhdGEuY3BwCkBAIC05Niw3ICs5NiwxMCBAQCB2b2lkIFNl
bGVjdGlvbkRhdGE6OnNldFVSTChjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBsYWJlbCkK
ICAgICBHVW5pcXVlUHRyPGdjaGFyPiBlc2NhcGVkKGdfbWFya3VwX2VzY2FwZV90ZXh0KGFjdHVh
bExhYmVsLnV0ZjgoKS5kYXRhKCksIC0xKSk7CiAgICAgbWFya3VwLmFwcGVuZChTdHJpbmc6OmZy
b21VVEY4KGVzY2FwZWQuZ2V0KCkpKTsKICAgICBtYXJrdXAuYXBwZW5kKCI8L2E+Iik7Ci0gICAg
c2V0TWFya3VwKG1hcmt1cC50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtYXJr
dXAudG9TdHJpbmcoKSkKKyAgICAgICAgc2V0TWFya3VwKCpzdHJpbmcpOworICAgIGVsc2UKKyAg
ICAgICAgQ1JBU0goKTsKIH0KIAogY29uc3QgU3RyaW5nJiBTZWxlY3Rpb25EYXRhOjp1cmxMYWJl
bCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVi
b2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1t
CmluZGV4IDM2NThkZDEuLmExMmNiMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9QYXN0ZWJvYXJkTWFjLm1tCkBAIC0yODgsNyArMjg4LDkgQEAgc3RhdGljIFN0cmluZyBqb2lu
UGF0aG5hbWVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXRobmFtZXMpCiAgICAgICAgICAgICBi
dWlsZGVyLmFwcGVuZCgnXG4nKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQocGF0aCk7CiAgICAg
fQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
YnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogCiB2b2lkIFBhc3RlYm9hcmQ6OnJlYWQoUGFzdGVib2FyZFBsYWluVGV4dCYgdGV4dCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tCmluZGV4
IDdjZDFiZDguLjlmMzhmYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TdHJpbmdVdGlsaXRpZXMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0
cmluZ1V0aWxpdGllcy5tbQpAQCAtNTAsOCArNTAsMTAgQEAgc3RhdGljIFN0cmluZyB3aWxkY2Fy
ZFJlZ2V4UGF0dGVyblN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKICAgICAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmQoY2hhcmFjdGVyKTsKICAgICB9CiAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmQoJyQnKTsKLSAgICAgICAgCi0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsK
KworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KICAgICAKIGJvb2wgc3RyaW5nTWF0
Y2hlc1dpbGRjYXJkU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBTdHJpbmcmIHdp
bGRjYXJkU3RyaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9T
Y3JvbGxBbmltYXRvck1vY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3Jv
bGxBbmltYXRvck1vY2suY3BwCmluZGV4IDNjYzBmZTkuLjMxYmQzZDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Nyb2xsQW5pbWF0b3JNb2NrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1Njcm9sbEFuaW1hdG9yTW9jay5jcHAKQEAgLTEw
MSw3ICsxMDEsMTAgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1vY2s6Om1vdXNlRW50ZXJlZFNjcm9s
bGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhcikgY29uc3QKICAgICBlbHNlCiAgICAgICAgIG1lc3Nh
Z2UuYXBwZW5kTGl0ZXJhbCgiVW5rbm93biIpOwogICAgIG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgi
U2Nyb2xsYmFyIik7Ci0gICAgbV9sb2dnZXIobWVzc2FnZS50b1N0cmluZygpKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBtZXNzYWdlLnRvU3RyaW5nKCkpCisgICAgICAgIG1fbG9nZ2VyKCpzdHJp
bmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICBTY3JvbGxBbmltYXRvcjo6bW91
c2VFbnRlcmVkU2Nyb2xsYmFyKHNjcm9sbGJhcik7CiB9CiAKQEAgLTExNiw3ICsxMTksMTAgQEAg
dm9pZCBTY3JvbGxBbmltYXRvck1vY2s6Om1vdXNlRXhpdGVkU2Nyb2xsYmFyKFNjcm9sbGJhciog
c2Nyb2xsYmFyKSBjb25zdAogICAgIGVsc2UKICAgICAgICAgbWVzc2FnZS5hcHBlbmRMaXRlcmFs
KCJVbmtub3duIik7CiAgICAgbWVzc2FnZS5hcHBlbmRMaXRlcmFsKCJTY3JvbGxiYXIiKTsKLSAg
ICBtX2xvZ2dlcihtZXNzYWdlLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1l
c3NhZ2UudG9TdHJpbmcoKSkKKyAgICAgICAgbV9sb2dnZXIoKnN0cmluZyk7CisgICAgZWxzZQor
ICAgICAgICBDUkFTSCgpOwogICAgIFNjcm9sbEFuaW1hdG9yOjptb3VzZUV4aXRlZFNjcm9sbGJh
cihzY3JvbGxiYXIpOwogfQogCkBAIC0xMzYsNyArMTQyLDEwIEBAIHZvaWQgU2Nyb2xsQW5pbWF0
b3JNb2NrOjptb3VzZUlzRG93bkluU2Nyb2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyLCBib29s
IGlzUHJlCiAgICAgZWxzZQogICAgICAgICBtZXNzYWdlLmFwcGVuZExpdGVyYWwoIlVua25vd24i
KTsKICAgICBtZXNzYWdlLmFwcGVuZExpdGVyYWwoIlNjcm9sbGJhciIpOwotICAgIG1fbG9nZ2Vy
KG1lc3NhZ2UudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWVzc2FnZS50b1N0
cmluZygpKQorICAgICAgICBtX2xvZ2dlcigqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENS
QVNIKCk7CiAgICAgU2Nyb2xsQW5pbWF0b3I6Om1vdXNlSXNEb3duSW5TY3JvbGxiYXIoc2Nyb2xs
YmFyLCBpc1ByZXNzZWQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL21lZGlhc291cmNlL01vY2tCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9tZWRpYXNvdXJjZS9Nb2NrQm94LmNwcAppbmRleCBkNGFhMjA1Li5mYjY1YTllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tCb3gu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja0Jv
eC5jcHAKQEAgLTUyLDcgKzUyLDkgQEAgU3RyaW5nIE1vY2tCb3g6OnBlZWtUeXBlKEFycmF5QnVm
ZmVyKiBkYXRhKQogICAgIFJlZlB0cjxJbnQ4QXJyYXk+IGFycmF5ID0gSlNDOjpJbnQ4QXJyYXk6
OmNyZWF0ZShkYXRhLCAwLCA0KTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7ICsraSkKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoYXJyYXktPml0ZW0oaSkpOwotICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzaXplX3QgTW9ja0Jv
eDo6cGVla0xlbmd0aChBcnJheUJ1ZmZlciogZGF0YSkKQEAgLTczLDcgKzc1LDEwIEBAIE1vY2tU
cmFja0JveDo6TW9ja1RyYWNrQm94KEFycmF5QnVmZmVyKiBkYXRhKQogICAgIFJlZlB0cjxJbnQ4
QXJyYXk+IGFycmF5ID0gSlNDOjpJbnQ4QXJyYXk6OmNyZWF0ZShkYXRhLCAxMiwgNCk7CiAgICAg
Zm9yIChpbnQgaSA9IDA7IGkgPCA0OyArK2kpCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGFycmF5
LT5pdGVtKGkpKTsKLSAgICBtX2NvZGVjID0gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgbV9jb2RlYyA9ICpzdHJp
bmc7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgbV9raW5kID0gc3RhdGljX2Nh
c3Q8VHJhY2tLaW5kPih2aWV3LT5nZXQ8dWludDhfdD4oMTYsIHRydWUpKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAKaW5kZXggYzhmNDVl
NS4uOGQzMGQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9I
VFRQUGFyc2Vycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQ
UGFyc2Vycy5jcHAKQEAgLTMyOCw3ICszMjgsOSBAQCBTdHJpbmcgZXh0cmFjdE1JTUVUeXBlRnJv
bU1lZGlhVHlwZShjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSkKIAogICAgIGlmIChtaW1lVHlwZS5s
ZW5ndGgoKSA9PSBsZW5ndGgpCiAgICAgICAgIHJldHVybiBtZWRpYVR5cGU7Ci0gICAgcmV0dXJu
IG1pbWVUeXBlLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWltZVR5cGUudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3Ry
aW5nIGV4dHJhY3RDaGFyc2V0RnJvbU1lZGlhVHlwZShjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTUlNRUhlYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL01JTUVIZWFkZXIuY3BwCmluZGV4
IDI1MTY5M2UuLjc3NjcwOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvTUlNRUhlYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9NSU1FSGVhZGVyLmNwcApAQCAtNjMsNyArNjMsMTAgQEAgc3RhdGljIEtleVZhbHVlTWFwIHJl
dHJpZXZlS2V5VmFsdWVQYWlycyhXZWJDb3JlOjpTaGFyZWRCdWZmZXJDaHVua1JlYWRlciYgYnVm
ZmUKICAgICAgICAgaWYgKCFrZXkuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBpZiAoa2V5VmFs
dWVQYWlycy5maW5kKGtleSkgIT0ga2V5VmFsdWVQYWlycy5lbmQoKSkKICAgICAgICAgICAgICAg
ICBMT0dfRVJST1IoIktleSBkdXBsaWNhdGUgZm91bmQgaW4gTUlNRSBoZWFkZXIuIEtleSBpcyAn
JXMnLCBwcmV2aW91cyB2YWx1ZSByZXBsYWNlZC4iLCBrZXkuYXNjaWkoKS5kYXRhKCkpOwotICAg
ICAgICAgICAga2V5VmFsdWVQYWlycy5hZGQoa2V5LCB2YWx1ZS50b1N0cmluZygpLnN0cmlwV2hp
dGVTcGFjZSgpKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHZhbHVlLnRvU3RyaW5n
KCkpCisgICAgICAgICAgICAgICAga2V5VmFsdWVQYWlycy5hZGQoa2V5LCBzdHJpbmctPnN0cmlw
V2hpdGVTcGFjZSgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgp
OwogICAgICAgICAgICAga2V5ID0gU3RyaW5nKCk7CiAgICAgICAgICAgICB2YWx1ZS5jbGVhcigp
OwogICAgICAgICB9CkBAIC03Niw4ICs3OSwxMiBAQCBzdGF0aWMgS2V5VmFsdWVNYXAgcmV0cmll
dmVLZXlWYWx1ZVBhaXJzKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlckNodW5rUmVhZGVyJiBidWZmZQog
ICAgICAgICB2YWx1ZS5hcHBlbmQobGluZS5zdWJzdHJpbmcoc2VtaUNvbG9uSW5kZXggKyAxKSk7
CiAgICAgfQogICAgIC8vIFN0b3JlIHRoZSBsYXN0IHByb3BlcnR5IGlmIHRoZXJlIGlzIG9uZS4K
LSAgICBpZiAoIWtleS5pc0VtcHR5KCkpCi0gICAgICAgIGtleVZhbHVlUGFpcnMuc2V0KGtleSwg
dmFsdWUudG9TdHJpbmcoKS5zdHJpcFdoaXRlU3BhY2UoKSk7CisgICAgaWYgKCFrZXkuaXNFbXB0
eSgpKSB7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHZhbHVlLnRvU3RyaW5nKCkpCisgICAg
ICAgICAgICBrZXlWYWx1ZVBhaXJzLnNldChrZXksIHN0cmluZy0+c3RyaXBXaGl0ZVNwYWNlKCkp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOworICAgIH0KICAgICByZXR1cm4g
a2V5VmFsdWVQYWlyczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9Qcm94eVNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Byb3h5U2VydmVyLmNwcAppbmRleCBjNmQ2N2MyLi4wYzY5ZjRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3h5U2VydmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3h5U2VydmVyLmNwcApAQCAtNjgsNyArNjgsOSBA
QCBTdHJpbmcgdG9TdHJpbmcoY29uc3QgVmVjdG9yPFByb3h5U2VydmVyPiYgcHJveHlTZXJ2ZXJz
KQogICAgICAgICBhcHBlbmRQcm94eVNlcnZlclN0cmluZyhzdHJpbmdCdWlsZGVyLCBwcm94eVNl
cnZlcnNbaV0pOwogICAgIH0KIAotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsRGF0YWJhc2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmxEYXRh
YmFzZS5jcHAKaW5kZXggNjcyYjI1MS4uYTRlNzRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmxEYXRhYmFzZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmxEYXRhYmFz
ZS5jcHAKQEAgLTU3LDcgKzU3LDkgQEAgc3RhdGljIFN0cmluZyBjb29raWVzRm9yU2Vzc2lvbihj
b25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYKICAgICAgICAg
ICAgIGNvb2tpZXMuYXBwZW5kKHJlc3VsdC52YWx1ZSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAg
cmV0dXJuIGNvb2tpZXMudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBjb29raWVz
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IHZvaWQgQ29va2llSmFyQ3VybERhdGFiYXNlOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBOZXR3
b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiB2YWx1
ZSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFj
L0Nvb2tpZUphck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0Nv
b2tpZUphck1hYy5tbQppbmRleCBjMjY0MGJkLi4wMDA1ZGZhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVKYXJNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQ29va2llSmFyTWFjLm1tCkBAIC0yNjEsNyAr
MjYxLDEwIEBAIHN0YXRpYyBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yU2Vzc2lv
bihjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlCiAgICAgICAgIGNvb2tpZXNCdWlsZGVy
LmFwcGVuZCgnPScpOwogICAgICAgICBjb29raWVzQnVpbGRlci5hcHBlbmQoW2Nvb2tpZSB2YWx1
ZV0pOwogICAgIH0KLSAgICByZXR1cm4geyBjb29raWVzQnVpbGRlci50b1N0cmluZygpLCBkaWRB
Y2Nlc3NTZWN1cmVDb29raWVzIH07CisKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBjb29raWVzQnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4geyAqc3RyaW5nLCBkaWRBY2Nlc3NTZWN1
cmVDb29raWVzIH07CisgICAgQ1JBU0goKTsKIAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElP
TlM7CiAgICAgcmV0dXJuIHsgU3RyaW5nKCksIGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcAppbmRleCA0ZGE3Y2Y2Li4zODlk
MmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9GaWxlU3lzdGVt
UE9TSVguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1Q
T1NJWC5jcHAKQEAgLTMxMCw3ICszMTAsOSBAQCBTdHJpbmcgcGF0aEJ5QXBwZW5kaW5nQ29tcG9u
ZW50cyhTdHJpbmdWaWV3IHBhdGgsIGNvbnN0IFZlY3RvcjxTdHJpbmdWaWV3PiYgY29tcAogICAg
ICAgICBidWlsZGVyLmFwcGVuZCgnLycpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChjb21wb25l
bnQpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KIAogYm9vbCBtYWtlQWxsRGlyZWN0b3JpZXMoY29uc3QgU3RyaW5nJiBw
YXRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZv
cm1hdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0LmNw
cAppbmRleCBjNzVkMzNkLi5hMWVmYzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L0RhdGVUaW1lRm9ybWF0LmNwcApAQCAtMTQ1LDcgKzE0NSwxMCBAQCBib29sIERhdGVU
aW1lRm9ybWF0OjpwYXJzZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgVG9rZW5IYW5kbGVyJiB0b2tl
bkhhbmRsZXIpCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChsaXRlcmFsQnVmZmVy
Lmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICAgICAgdG9rZW5IYW5kbGVyLnZpc2l0TGl0ZXJhbChs
aXRlcmFsQnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGxpdGVyYWxCdWZmZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgdG9rZW5I
YW5kbGVyLnZpc2l0TGl0ZXJhbCgqc3RyaW5nKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAgICAgbGl0ZXJhbEJ1ZmZlci5j
bGVhcigpOwogICAgICAgICAgICAgfQogCkBAIC0xNjksNyArMTcyLDEwIEBAIGJvb2wgRGF0ZVRp
bWVGb3JtYXQ6OnBhcnNlKGNvbnN0IFN0cmluZyYgc291cmNlLCBUb2tlbkhhbmRsZXImIHRva2Vu
SGFuZGxlcikKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKGxpdGVyYWxCdWZmZXIu
bGVuZ3RoKCkpIHsKLSAgICAgICAgICAgICAgICB0b2tlbkhhbmRsZXIudmlzaXRMaXRlcmFsKGxp
dGVyYWxCdWZmZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5n
ID0gbGl0ZXJhbEJ1ZmZlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgICAgICB0b2tlbkhh
bmRsZXIudmlzaXRMaXRlcmFsKCpzdHJpbmcpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgICAgICBsaXRlcmFsQnVmZmVyLmNs
ZWFyKCk7CiAgICAgICAgICAgICB9CiAKQEAgLTIyMCwxNCArMjI2LDIyIEBAIGJvb2wgRGF0ZVRp
bWVGb3JtYXQ6OnBhcnNlKGNvbnN0IFN0cmluZyYgc291cmNlLCBUb2tlbkhhbmRsZXImIHRva2Vu
SGFuZGxlcikKICAgICBzd2l0Y2ggKHN0YXRlKSB7CiAgICAgY2FzZSBTdGF0ZUxpdGVyYWw6CiAg
ICAgY2FzZSBTdGF0ZUluUXVvdGVRdW90ZToKLSAgICAgICAgaWYgKGxpdGVyYWxCdWZmZXIubGVu
Z3RoKCkpCi0gICAgICAgICAgICB0b2tlbkhhbmRsZXIudmlzaXRMaXRlcmFsKGxpdGVyYWxCdWZm
ZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChsaXRlcmFsQnVmZmVyLmxlbmd0aCgpKSB7Cisg
ICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBsaXRlcmFsQnVmZmVyLnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICAgICAgdG9rZW5IYW5kbGVyLnZpc2l0TGl0ZXJhbCgqc3RyaW5nKTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CiAgICAgICAg
IHJldHVybiB0cnVlOwogCiAgICAgY2FzZSBTdGF0ZVF1b3RlOgogICAgIGNhc2UgU3RhdGVJblF1
b3RlOgotICAgICAgICBpZiAobGl0ZXJhbEJ1ZmZlci5sZW5ndGgoKSkKLSAgICAgICAgICAgIHRv
a2VuSGFuZGxlci52aXNpdExpdGVyYWwobGl0ZXJhbEJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAg
ICAgaWYgKGxpdGVyYWxCdWZmZXIubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IGxpdGVyYWxCdWZmZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICB0b2tlbkhh
bmRsZXIudmlzaXRMaXRlcmFsKCpzdHJpbmcpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIENSQVNIKCk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
Y2FzZSBTdGF0ZVN5bWJvbDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L0RlY29kZUVzY2FwZVNlcXVlbmNlcy5oCmluZGV4IDE0Y2Y0MTUuLjcyYTBhNWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EZWNvZGVFc2NhcGVTZXF1ZW5jZXMu
aApAQCAtNjQsNyArNjQsOSBAQCBzdHJ1Y3QgVW5pY29kZTE2Qml0RXNjYXBlU2VxdWVuY2Ugewog
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoY29kZVVuaXQpOwogICAgICAgICAgICAgcnVuID0g
cnVuLnN1YnN0cmluZyhzZXF1ZW5jZVNpemUpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwog
ICAgIH0KIH07CiAKQEAgLTE1MSw3ICsxNTMsOSBAQCBTdHJpbmcgZGVjb2RlRXNjYXBlU2VxdWVu
Y2VzKFN0cmluZ1ZpZXcgc3RyaW5nLCBjb25zdCBUZXh0RW5jb2RpbmcmIGVuY29kaW5nKQogICAg
ICAgICBkZWNvZGVkUG9zaXRpb24gPSBlbmNvZGVkUnVuRW5kOwogICAgIH0KICAgICByZXN1bHQu
YXBwZW5kKHN0cmluZy5zdWJzdHJpbmcoZGVjb2RlZFBvc2l0aW9uLCBsZW5ndGggLSBkZWNvZGVk
UG9zaXRpb24pKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIGlubGluZSBWZWN0b3I8dWludDhfdD4gZGVjb2RlVVJMRXNjYXBlU2Vx
dWVuY2VzQXNEYXRhKFN0cmluZ1ZpZXcgc3RyaW5nLCBjb25zdCBUZXh0RW5jb2RpbmcmIGVuY29k
aW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9ybUxv
Y2FsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxlLmNw
cAppbmRleCAwODc0MzI1Li5hOWU1OGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L1BsYXRmb3JtTG9jYWxlLmNwcApAQCAtODMsNyArODMsOSBAQCBTdHJpbmcgRGF0ZVRp
bWVTdHJpbmdCdWlsZGVyOjp6ZXJvUGFkU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBzaXpl
X3Qgd2lkdGgpCiAgICAgZm9yIChzaXplX3QgaSA9IHN0cmluZy5sZW5ndGgoKTsgaSA8IHdpZHRo
OyArK2kpCiAgICAgICAgIHplcm9QYWRkZWRTdHJpbmdCdWlsZGVyLmFwcGVuZCgnMCcpOwogICAg
IHplcm9QYWRkZWRTdHJpbmdCdWlsZGVyLmFwcGVuZChzdHJpbmcpOwotICAgIHJldHVybiB6ZXJv
UGFkZGVkU3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHpl
cm9QYWRkZWRTdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjphcHBlbmRO
dW1iZXIoaW50IG51bWJlciwgc2l6ZV90IHdpZHRoKQpAQCAtMTc1LDcgKzE3Nyw5IEBAIHZvaWQg
RGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjp2aXNpdExpdGVyYWwoY29uc3QgU3RyaW5nJiB0ZXh0KQog
CiBTdHJpbmcgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjp0b1N0cmluZygpCiB7Ci0gICAgcmV0dXJu
IG1fYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1fYnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiAj
ZW5kaWYKQEAgLTIzOCw3ICsyNDIsOSBAQCBTdHJpbmcgTG9jYWxlOjpjb252ZXJ0VG9Mb2NhbGl6
ZWROdW1iZXIoY29uc3QgU3RyaW5nJiBpbnB1dCkKIAogICAgIGJ1aWxkZXIuYXBwZW5kKGlzTmVn
YXRpdmUgPyBtX25lZ2F0aXZlU3VmZml4IDogbV9wb3NpdGl2ZVN1ZmZpeCk7CiAKLSAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3Rh
dGljIGJvb2wgbWF0Y2hlcyhjb25zdCBTdHJpbmcmIHRleHQsIHVuc2lnbmVkIHBvc2l0aW9uLCBj
b25zdCBTdHJpbmcmIHBhcnQpCkBAIC0zMjEsNyArMzI3LDkgQEAgU3RyaW5nIExvY2FsZTo6Y29u
dmVydEZyb21Mb2NhbGl6ZWROdW1iZXIoY29uc3QgU3RyaW5nJiBsb2NhbGl6ZWQpCiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHN0YXRpY19jYXN0PFVDaGFyPignMCcg
KyBzeW1ib2xJbmRleCkpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lO
UFVUX1RZUEVTKQpAQCAtMzYwLDcgKzM2OCw5IEBAIFN0cmluZyBMb2NhbGU6OmZvcm1hdERhdGVU
aW1lKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlLCBGb3JtYXRUeXBlIGZvcm1hdFR5cGUpCiAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAg
cmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAj
ZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwCmluZGV4IGZmMzFiMmEuLjQ4Y2JhMGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmluZy5jcHAKQEAgLTE1
OSw3ICsxNTksOSBAQCBTdHJpbmcgU2VnbWVudGVkU3RyaW5nOjp0b1N0cmluZygpIGNvbnN0CiAg
ICAgbV9jdXJyZW50U3Vic3RyaW5nLmFwcGVuZFRvKHJlc3VsdCk7CiAgICAgZm9yIChhdXRvJiBz
dWJzdHJpbmcgOiBtX290aGVyU3Vic3RyaW5ncykKICAgICAgICAgc3Vic3RyaW5nLmFwcGVuZFRv
KHJlc3VsdCk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBD
UkFTSCgpOwogfQogCiB2b2lkIFNlZ21lbnRlZFN0cmluZzo6YWR2YW5jZVdpdGhvdXRVcGRhdGlu
Z0xpbmVOdW1iZXIxNigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L1RleHRDb2RlY0lDVS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2Rl
Y0lDVS5jcHAKaW5kZXggZDJlMmFlNy4uNzYyMmNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNJQ1UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcApAQCAtMzE4LDEzICszMTgsMTQgQEAgU3RyaW5n
IFRleHRDb2RlY0lDVTo6ZGVjb2RlKGNvbnN0IGNoYXIqIGJ5dGVzLCBzaXplX3QgbGVuZ3RoLCBi
b29sIGZsdXNoLCBib29sIHMKICAgICAgICAgc2F3RXJyb3IgPSB0cnVlOwogICAgIH0KIAotICAg
IFN0cmluZyByZXN1bHRTdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBy
ZXN1bHRTdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkgeworICAgICAgICAvLyBTaW1wbGlmaWVk
IENoaW5lc2UgcGFnZXMgdXNlIHRoZSBjb2RlIEEzQTAgdG8gbWVhbiAiZnVsbC13aWR0aCBzcGFj
ZSIsIGJ1dCBJQ1UgZGVjb2RlcyBpdCBhcyBVK0U1RTUuCisgICAgICAgIGlmICghc3RyY21wKG1f
ZW5jb2RpbmdOYW1lLCAiR0JLIikgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobV9l
bmNvZGluZ05hbWUsICJnYjE4MDMwIikpCisgICAgICAgICAgICByZXN1bHRTdHJpbmctPnJlcGxh
Y2UoMHhFNUU1LCBpZGVvZ3JhcGhpY1NwYWNlKTsKIAotICAgIC8vIFNpbXBsaWZpZWQgQ2hpbmVz
ZSBwYWdlcyB1c2UgdGhlIGNvZGUgQTNBMCB0byBtZWFuICJmdWxsLXdpZHRoIHNwYWNlIiwgYnV0
IElDVSBkZWNvZGVzIGl0IGFzIFUrRTVFNS4KLSAgICBpZiAoIXN0cmNtcChtX2VuY29kaW5nTmFt
ZSwgIkdCSyIpIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKG1fZW5jb2RpbmdOYW1l
LCAiZ2IxODAzMCIpKQotICAgICAgICByZXN1bHRTdHJpbmcucmVwbGFjZSgweEU1RTUsIGlkZW9n
cmFwaGljU3BhY2UpOwotCi0gICAgcmV0dXJuIHJlc3VsdFN0cmluZzsKKyAgICAgICAgcmV0dXJu
ICpyZXN1bHRTdHJpbmc7CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIC8vIFdlIG5lZWQgdG8g
YXBwbHkgdGhlc2UgZmFsbGJhY2tzIG91cnNlbHZlcyBhcyB0aGV5IGFyZSBub3QgY3VycmVudGx5
IHN1cHBvcnRlZCBieSBJQ1UgYW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L1RleHRDb2RlY1VzZXJEZWZpbmVkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvVGV4dENvZGVjVXNlckRlZmluZWQuY3BwCmluZGV4IDI5NmM0NjkuLmNiNzBlNDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjVXNlckRlZmlu
ZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjVXNlckRl
ZmluZWQuY3BwCkBAIC01Myw3ICs1Myw5IEBAIFN0cmluZyBUZXh0Q29kZWNVc2VyRGVmaW5lZDo6
ZGVjb2RlKGNvbnN0IGNoYXIqIGJ5dGVzLCBzaXplX3QgbGVuZ3RoLCBib29sLCBib29sCiAgICAg
ICAgIHNpZ25lZCBjaGFyIGMgPSBieXRlc1tpXTsKICAgICAgICAgcmVzdWx0LmFwcGVuZChzdGF0
aWNfY2FzdDxVQ2hhcj4oYyAmIDB4RjdGRikpOwogICAgIH0KLSAgICByZXR1cm4gcmVzdWx0LnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBWZWN0b3I8dWlu
dDhfdD4gZW5jb2RlQ29tcGxleFVzZXJEZWZpbmVkKFN0cmluZ1ZpZXcgc3RyaW5nLCBVbmVuY29k
YWJsZUhhbmRsaW5nIGhhbmRsaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdnIvb3BlbnZyL1ZSUGxhdGZvcm1EaXNwbGF5T3BlblZSLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3ZyL29wZW52ci9WUlBsYXRmb3JtRGlzcGxheU9wZW5WUi5jcHAKaW5kZXggZGQ2
Mjg4ZS4uZWMyOGVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvb3Bl
bnZyL1ZSUGxhdGZvcm1EaXNwbGF5T3BlblZSLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS92ci9vcGVudnIvVlJQbGF0Zm9ybURpc3BsYXlPcGVuVlIuY3BwCkBAIC00NSw3ICs0NSwx
MCBAQCBWUlBsYXRmb3JtRGlzcGxheU9wZW5WUjo6VlJQbGF0Zm9ybURpc3BsYXlPcGVuVlIodnI6
OklWUlN5c3RlbSogc3lzdGVtLCB2cjo6SVZSQwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
ZChITUROYW1lLCBsZW5ndGgpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnKScpOwog
ICAgIH0KLSAgICBtX2Rpc3BsYXlJbmZvLnNldERpc3BsYXlOYW1lKHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICBtX2Rpc3BsYXlJbmZvLnNldERpc3BsYXlOYW1lKCpzdHJpbmcpOworICAgIGVs
c2UKKyAgICAgICAgQ1JBU0goKTsKICAgICBtX2Rpc3BsYXlJbmZvLnNldElzTW91bnRlZChmYWxz
ZSk7CiAgICAgLy8gRklYTUU6IFdlJ3JlIGFzc3VtaW5nIGFuIEhUQyBWaXZlIEhNRCBoZXJlLiBH
ZXQgdGhpcyBpbmZvIGZyb20gT3BlblZSPy4KICAgICBtX2Rpc3BsYXlJbmZvLnNldENhcGFiaWxp
dHlGbGFncyhWUkRpc3BsYXlDYXBhYmlsaXR5RmxhZ05vbmUgfCBWUkRpc3BsYXlDYXBhYmlsaXR5
RmxhZ1Bvc2l0aW9uIHwgVlJEaXNwbGF5Q2FwYWJpbGl0eUZsYWdPcmllbnRhdGlvbiB8IFZSRGlz
cGxheUNhcGFiaWxpdHlGbGFnRXh0ZXJuYWxEaXNwbGF5IHwgVlJEaXNwbGF5Q2FwYWJpbGl0eUZs
YWdQcmVzZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlw
Ym9hcmRVdGlsaXRpZXNXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBi
b2FyZFV0aWxpdGllc1dpbi5jcHAKaW5kZXggNmZmODllYy4uMmJjNmQ1ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAK
QEAgLTMxNCw3ICszMTQsMTAgQEAgdm9pZCByZXBsYWNlTmV3bGluZXNXaXRoV2luZG93c1N0eWxl
TmV3bGluZXMoU3RyaW5nJiBzdHIpCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJlc3VsdC5h
cHBlbmRMaXRlcmFsKCJcclxuIik7CiAgICAgfQotICAgIHN0ciA9IHJlc3VsdC50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBzdHIg
PSAqc3RyaW5nOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCByZXBsYWNl
TkJTUFdpdGhTcGFjZShTdHJpbmcmIHN0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9Vc2VyQWdlbnRXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L1VzZXJBZ2VudFdpbi5jcHAKaW5kZXggODIwMWY0ZS4uZDNkNjk0ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1VzZXJBZ2VudFdpbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL1VzZXJBZ2VudFdpbi5jcHAKQEAgLTQ2LDcgKzQ2LDkgQEAgU3Ry
aW5nIHN0YW5kYXJkVXNlckFnZW50KGNvbnN0IFN0cmluZyYgYXBwbGljYXRpb25OYW1lLCBjb25z
dCBTdHJpbmcmIGFwcGxpY2F0aW8KICAgICAgICAgICAgIHVhU3RyaW5nLmFwcGVuZChhcHBsaWNh
dGlvblZlcnNpb24pOwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiB1YVN0cmluZy50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHVhU3RyaW5nLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBzdGFuZGFyZFVz
ZXJBZ2VudEZvclVSTChjb25zdCBVUkwmIHVybCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93cGUvUmVuZGVyVGhlbWVXUEUuY3BwCmluZGV4IGU1ZDgwMjcuLjY2OTFiZTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmNwcApAQCAtNjAsNyAr
NjAsOSBAQCBTdHJpbmcgUmVuZGVyVGhlbWVXUEU6Om1lZGlhQ29udHJvbHNTY3JpcHQoKQogICAg
IFN0cmluZ0J1aWxkZXIgc2NyaXB0QnVpbGRlcjsKICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZCht
ZWRpYUNvbnRyb2xzTG9jYWxpemVkU3RyaW5nc0phdmFTY3JpcHQsIHNpemVvZihtZWRpYUNvbnRy
b2xzTG9jYWxpemVkU3RyaW5nc0phdmFTY3JpcHQpKTsKICAgICBzY3JpcHRCdWlsZGVyLmFwcGVu
ZChtZWRpYUNvbnRyb2xzQmFzZUphdmFTY3JpcHQsIHNpemVvZihtZWRpYUNvbnRyb2xzQmFzZUph
dmFTY3JpcHQpKTsKLSAgICByZXR1cm4gc2NyaXB0QnVpbGRlci50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KICNlbmRpZgogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcAppbmRleCAxYjJkNzUyLi4yZmU1
ODYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcApAQCAtNTcsNyArNTcs
OSBAQCBTdHJpbmcgRE9NTWltZVR5cGU6OnN1ZmZpeGVzKCkgY29uc3QKICAgICAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCcsJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGV4dGVuc2lvbnNbaV0p
OwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogU3RyaW5nIERPTU1pbWVUeXBlOjpkZXNjcmlwdGlvbigpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCBmYTBlNTdhLi5iYTlj
ZDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTQyOCw3
ICs0MjgsOSBAQCBTdHJpbmcgUmVuZGVyTGF5ZXI6Om5hbWUoKSBjb25zdAogICAgIGlmIChpc1Jl
ZmxlY3Rpb24oKSkKICAgICAgICAgbmFtZS5hcHBlbmRMaXRlcmFsKCIgKHJlZmxlY3Rpb24pIik7
CiAKLSAgICByZXR1cm4gbmFtZS50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG5h
bWUudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogUmVuZGVyTGF5ZXJDb21wb3NpdG9yJiBSZW5kZXJMYXllcjo6Y29tcG9zaXRvcigpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwCmluZGV4IDBlOTA4ODguLmM3OWI2NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC04NjMsNyArODYzLDEwIEBAIHZv
aWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsb2dMYXllckluZm8oY29uc3QgUmVuZGVyTGF5ZXIm
IGxheWVyLCBpbnQgZGVwdGgpCiAKICAgICBsb2dTdHJpbmcuYXBwZW5kKGxheWVyLm5hbWUoKSk7
CiAKLSAgICBMT0coQ29tcG9zaXRpbmcsICIlcyIsIGxvZ1N0cmluZy50b1N0cmluZygpLnV0Zjgo
KS5kYXRhKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGxvZ1N0cmluZy50b1N0cmluZygpKQor
ICAgICAgICBMT0coQ29tcG9zaXRpbmcsICIlcyIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7Cisg
ICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcAppbmRleCA2NDk2OTc4Li5lNDhhMjllIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCkBAIC0x
MTE3LDcgKzExMTcsOSBAQCBTdHJpbmcgbGlzdE1hcmtlclRleHQoRUxpc3RTdHlsZVR5cGUgdHlw
ZSwgaW50IHZhbHVlKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFJlbmRlckxp
c3RNYXJrZXI6OlJlbmRlckxpc3RNYXJrZXIoUmVuZGVyTGlzdEl0ZW0mIGxpc3RJdGVtLCBSZW5k
ZXJTdHlsZSYmIHN0eWxlKQpAQCAtMTM2Myw3ICsxMzY1LDEwIEBAIHZvaWQgUmVuZGVyTGlzdE1h
cmtlcjo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWlu
dE9mZnNlCiAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChzdWZmaXgpOwogICAgICAgICAg
ICAgICAgIGJ1ZmZlci5hcHBlbmQoc3BhY2UpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAg
dG9EcmF3ID0gYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSBidWZmZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICB0b0RyYXcgPSAqc3RyaW5nOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICBpZiAoc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCiAg
ICAgICAgICAgICAgICAgdG9EcmF3ID0gbV90ZXh0ICsgU3RyaW5nKCZzdWZmaXgsIDEpICsgU3Ry
aW5nKCZzcGFjZSwgMSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKaW5k
ZXggOGZhNTFlMi4uMTA1MjBmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
LmNwcApAQCAtMTgxLDcgKzE4MSw5IEBAIFN0cmluZyBjYXBpdGFsaXplKGNvbnN0IFN0cmluZyYg
c3RyaW5nLCBVQ2hhciBwcmV2aW91c0NoYXJhY3RlcikKICAgICAgICAgICAgIHJlc3VsdC5hcHBl
bmQoc3RyaW5nSW1wbFtpIC0gMV0pOwogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogaW5saW5lIFJlbmRlclRleHQ6OlJl
bmRlclRleHQoTm9kZSYgbm9kZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtNzU2LDE2ICs3NTgs
MTkgQEAgc3RhdGljIGZsb2F0IG1heFdvcmRGcmFnbWVudFdpZHRoKFJlbmRlclRleHQmIHJlbmRl
cmVyLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUKICAgICAgICAgZnJhZ21lbnRXaXRoSHlwaGVu
LmFwcGVuZCh3b3JkLnN1YnN0cmluZyhzdWZmaXhTdGFydCwgZnJhZ21lbnRMZW5ndGgpKTsKICAg
ICAgICAgZnJhZ21lbnRXaXRoSHlwaGVuLmFwcGVuZChzdHlsZS5oeXBoZW5TdHJpbmcoKSk7CiAK
LSAgICAgICAgVGV4dFJ1biBydW4gPSBSZW5kZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1bihmcmFn
bWVudFdpdGhIeXBoZW4udG9TdHJpbmcoKSwgc3R5bGUpOwotICAgICAgICBydW4uc2V0Q2hhcmFj
dGVyU2NhbkZvckNvZGVQYXRoKCFyZW5kZXJlci5jYW5Vc2VTaW1wbGVGb250Q29kZVBhdGgoKSk7
Ci0gICAgICAgIGZsb2F0IGZyYWdtZW50V2lkdGggPSBmb250LndpZHRoKHJ1biwgJmZhbGxiYWNr
Rm9udHMsICZnbHlwaE92ZXJmbG93KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZnJhZ21l
bnRXaXRoSHlwaGVuLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIFRleHRSdW4gcnVuID0gUmVu
ZGVyQmxvY2s6OmNvbnN0cnVjdFRleHRSdW4oKnN0cmluZywgc3R5bGUpOworICAgICAgICAgICAg
cnVuLnNldENoYXJhY3RlclNjYW5Gb3JDb2RlUGF0aCghcmVuZGVyZXIuY2FuVXNlU2ltcGxlRm9u
dENvZGVQYXRoKCkpOworICAgICAgICAgICAgZmxvYXQgZnJhZ21lbnRXaWR0aCA9IGZvbnQud2lk
dGgocnVuLCAmZmFsbGJhY2tGb250cywgJmdseXBoT3ZlcmZsb3cpOwogCi0gICAgICAgIC8vIE5h
cnJvdyBwcmVmaXhlcyBhcmUgaWdub3JlZC4gU2VlIHRyeUh5cGhlbmF0aW5nIGluIFJlbmRlckJs
b2NrTGluZUxheW91dC5jcHAuCi0gICAgICAgIGlmIChmcmFnbWVudFdpZHRoIDw9IG1pbmltdW1G
cmFnbWVudFdpZHRoVG9Db25zaWRlcikKLSAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgLy8gTmFycm93IHByZWZpeGVzIGFyZSBpZ25vcmVkLiBTZWUgdHJ5SHlwaGVuYXRpbmcgaW4g
UmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcC4KKyAgICAgICAgICAgIGlmIChmcmFnbWVudFdpZHRo
IDw9IG1pbmltdW1GcmFnbWVudFdpZHRoVG9Db25zaWRlcikKKyAgICAgICAgICAgICAgICBjb250
aW51ZTsKIAotICAgICAgICBzdWZmaXhTdGFydCArPSBmcmFnbWVudExlbmd0aDsKLSAgICAgICAg
bWF4RnJhZ21lbnRXaWR0aCA9IHN0ZDo6bWF4KG1heEZyYWdtZW50V2lkdGgsIGZyYWdtZW50V2lk
dGgpOworICAgICAgICAgICAgc3VmZml4U3RhcnQgKz0gZnJhZ21lbnRMZW5ndGg7CisgICAgICAg
ICAgICBtYXhGcmFnbWVudFdpZHRoID0gc3RkOjptYXgobWF4RnJhZ21lbnRXaWR0aCwgZnJhZ21l
bnRXaWR0aCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAK
ICAgICByZXR1cm4gbWF4RnJhZ21lbnRXaWR0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZUlPUy5tbQppbmRleCA0ZmU4M2UwLi4yNTc4ZjUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCkBAIC0xMzYwLDcgKzEzNjAsMTAgQEAgU3Ry
aW5nIFJlbmRlclRoZW1lSU9TOjptZWRpYUNvbnRyb2xzU2NyaXB0KCkKICAgICAgICAgICAgIFN0
cmluZ0J1aWxkZXIgc2NyaXB0QnVpbGRlcjsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBw
ZW5kKFtOU1N0cmluZyBzdHJpbmdXaXRoQ29udGVudHNPZkZpbGU6W2J1bmRsZSBwYXRoRm9yUmVz
b3VyY2U6QCJtb2Rlcm4tbWVkaWEtY29udHJvbHMtbG9jYWxpemVkLXN0cmluZ3MiIG9mVHlwZTpA
ImpzIl0gZW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmcgZXJyb3I6bmlsXSk7CiAgICAgICAg
ICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZChbTlNTdHJpbmcgc3RyaW5nV2l0aENvbnRlbnRzT2ZG
aWxlOltidW5kbGUgcGF0aEZvclJlc291cmNlOkAibW9kZXJuLW1lZGlhLWNvbnRyb2xzIiBvZlR5
cGU6QCJqcyIgaW5EaXJlY3Rvcnk6QCJtb2Rlcm4tbWVkaWEtY29udHJvbHMiXSBlbmNvZGluZzpO
U1VURjhTdHJpbmdFbmNvZGluZyBlcnJvcjpuaWxdKTsKLSAgICAgICAgICAgIG1fbWVkaWFDb250
cm9sc1NjcmlwdCA9IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICBt
X21lZGlhQ29udHJvbHNTY3JpcHQgPSAqc3RyaW5nOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fbWVkaWFDb250
cm9sc1NjcmlwdDsKICAgICB9CkBAIC0xMzczLDcgKzEzNzYsMTAgQEAgU3RyaW5nIFJlbmRlclRo
ZW1lSU9TOjptZWRpYUNvbnRyb2xzU2NyaXB0KCkKICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBl
bmQoW05TU3RyaW5nIHN0cmluZ1dpdGhDb250ZW50c09mRmlsZTpbYnVuZGxlIHBhdGhGb3JSZXNv
dXJjZTpAIm1lZGlhQ29udHJvbHNBcHBsZSIgb2ZUeXBlOkAianMiXSBlbmNvZGluZzpOU1VURjhT
dHJpbmdFbmNvZGluZyBlcnJvcjpuaWxdKTsKICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQo
W05TU3RyaW5nIHN0cmluZ1dpdGhDb250ZW50c09mRmlsZTpbYnVuZGxlIHBhdGhGb3JSZXNvdXJj
ZTpAIm1lZGlhQ29udHJvbHNpT1MiIG9mVHlwZTpAImpzIl0gZW5jb2Rpbmc6TlNVVEY4U3RyaW5n
RW5jb2RpbmcgZXJyb3I6bmlsXSk7CiAKLSAgICAgICAgbV9sZWdhY3lNZWRpYUNvbnRyb2xzU2Ny
aXB0ID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBtX2xlZ2FjeU1lZGlhQ29u
dHJvbHNTY3JpcHQgPSAqc3RyaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgp
OwogICAgIH0KICAgICByZXR1cm4gbV9sZWdhY3lNZWRpYUNvbnRyb2xzU2NyaXB0OwogI2Vsc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwCmluZGV4IGRlZWEx
YTkuLjgzNmQwMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2lu
LmNwcApAQCAtMTA5NCw3ICsxMDk0LDEwIEBAIFN0cmluZyBSZW5kZXJUaGVtZVdpbjo6bWVkaWFD
b250cm9sc1NjcmlwdCgpCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgc2NyaXB0QnVpbGRlcjsKICAg
ICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQoc3RyaW5nV2l0aENvbnRlbnRzT2ZGaWxlKENGU1RS
KCJtZWRpYUNvbnRyb2xzTG9jYWxpemVkU3RyaW5ncyIpLCBDRlNUUigianMiKSkpOwogICAgICAg
ICBzY3JpcHRCdWlsZGVyLmFwcGVuZChzdHJpbmdXaXRoQ29udGVudHNPZkZpbGUoQ0ZTVFIoIm1l
ZGlhQ29udHJvbHNBcHBsZSIpLCBDRlNUUigianMiKSkpOwotICAgICAgICBtX21lZGlhQ29udHJv
bHNTY3JpcHQgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIG1fbWVkaWFDb250
cm9sc1NjcmlwdCA9ICpzdHJpbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7
CiAgICAgfQogICAgIHJldHVybiBtX21lZGlhQ29udHJvbHNTY3JpcHQ7CiAjZWxzZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCmluZGV4IDU1Y2RiNGIu
Ljg1Yzc4ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVl
QXNUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4
dC5jcHAKQEAgLTE3MCw3ICsxNzAsOSBAQCBTdHJpbmcgcXVvdGVBbmRFc2NhcGVOb25QcmludGFi
bGVzKFN0cmluZ1ZpZXcgcykKICAgICAgICAgfQogICAgIH0KICAgICByZXN1bHQuYXBwZW5kKCci
Jyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogCiB2b2lkIFJlbmRlclRyZWVBc1RleHQ6OndyaXRlUmVuZGVyT2JqZWN0KFRleHRTdHJl
YW0mIHRzLCBjb25zdCBSZW5kZXJPYmplY3QmIG8sIFJlbmRlckFzVGV4dEJlaGF2aW9yIGJlaGF2
aW9yKQpAQCAtODA3LDcgKzgwOSw5IEBAIHN0YXRpYyBTdHJpbmcgbm9kZVBvc2l0aW9uKE5vZGUq
IG5vZGUpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiZG9jdW1lbnQiKTsKICAg
ICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIHN0YXRpYyB2b2lkIHdyaXRlU2VsZWN0aW9uKFRleHRTdHJlYW0mIHRzLCBjb25z
dCBSZW5kZXJCb3gmIHJlbmRlcmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuY3BwCmluZGV4IDg5YmIwNDAuLjhjNzg0ZTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1M
RmVuY2VkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1h
dGhNTEZlbmNlZC5jcHAKQEAgLTcxLDcgKzcxLDEwIEBAIHZvaWQgUmVuZGVyTWF0aE1MRmVuY2Vk
Ojp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgICAgICAgICBpZiAoIWlzU3BhY2VPck5ld2xpbmUo
c2VwYXJhdG9yc1tpXSkpCiAgICAgICAgICAgICAgICAgY2hhcmFjdGVycy5hcHBlbmQoc2VwYXJh
dG9yc1tpXSk7CiAgICAgICAgIH0KLSAgICAgICAgbV9zZXBhcmF0b3JzID0gIWNoYXJhY3RlcnMu
bGVuZ3RoKCkgPyAwIDogY2hhcmFjdGVycy50b1N0cmluZygpLmltcGwoKTsKKyAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gY2hhcmFjdGVycy50b1N0cmluZygpKQorICAgICAgICAgICAgbV9zZXBh
cmF0b3JzID0gIWNoYXJhY3RlcnMubGVuZ3RoKCkgPyAwIDogc3RyaW5nLT5pbXBsKCk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8g
VGhlIHNlcGFyYXRvciBkZWZhdWx0cyB0byBhIHNpbmdsZSBjb21tYS4KICAgICAgICAgbV9zZXBh
cmF0b3JzID0gU3RyaW5nSW1wbDo6Y3JlYXRlKCIsIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNYXRoTUwuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTWF0aE1MLmNw
cAppbmRleCA1Y2I0NzhiLi4yMGQyNTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNYXRoTUwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlck1hdGhNTC5jcHAKQEAg
LTkwLDcgKzkwLDEwIEBAIHZvaWQgUmVuZGVyVHJlZUJ1aWxkZXI6Ok1hdGhNTDo6YXR0YWNoKFJl
bmRlck1hdGhNTEZlbmNlZCYgcGFyZW50LCBSZW5kZXJQdHI8UmVuCiAKICAgICAgICAgICAgIFN0
cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kKHNlcGFyYXRvcik7Ci0gICAgICAgICAgICBzZXBhcmF0b3JSZW5kZXJlciA9IGNyZWF0ZU1h
dGhNTE9wZXJhdG9yKHBhcmVudCwgc3RyaW5nQnVpbGRlci50b1N0cmluZygpLCBNYXRoTUxPcGVy
YXRvckRpY3Rpb25hcnk6OkluZml4LCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OlNlcGFyYXRv
cik7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgICAgICAgICAgc2VwYXJhdG9yUmVuZGVyZXIgPSBjcmVhdGVNYXRoTUxPcGVy
YXRvcihwYXJlbnQsICpzdHJpbmcsIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6SW5maXgsIE1h
dGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6U2VwYXJhdG9yKTsKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5jcHAKaW5kZXggYmEyMDY0OC4uMjBlYTNlMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmNwcApAQCAtNjMsNyArNjMs
OSBAQCBTdHJpbmcgU1ZHTGVuZ3RoTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZygpIGNvbnN0CiAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKGF0KGkpLnZhbHVlQXNTdHJpbmcoKSk7CiAgICAgfQogCi0g
ICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmNwcAppbmRleCA2
ZGZkOTkzLi44NzViZTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVy
TGlzdFZhbHVlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1
ZXMuY3BwCkBAIC01NSw3ICs1NSw5IEBAIFN0cmluZyBTVkdOdW1iZXJMaXN0VmFsdWVzOjp2YWx1
ZUFzU3RyaW5nKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoYXQoaSkpOwog
ICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBD
UkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFN0
cmluZ0J1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTdHJpbmdCdWlsZGVy
LmNwcAppbmRleCAxMDUzOTFjLi45YzU3N2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0aFN0cmluZ0J1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoU3RyaW5nQnVpbGRlci5jcHAKQEAgLTM3LDcgKzM3LDkgQEAgU3RyaW5nIFNWR1BhdGhTdHJp
bmdCdWlsZGVyOjpyZXN1bHQoKQogCiAgICAgLy8gUmVtb3ZlIHRyYWlsaW5nIHNwYWNlLgogICAg
IG1fc3RyaW5nQnVpbGRlci5yZXNpemUoc2l6ZSAtIDEpOwotICAgIHJldHVybiBtX3N0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtX3N0cmluZ0J1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAog
dm9pZCBTVkdQYXRoU3RyaW5nQnVpbGRlcjo6aW5jcmVtZW50UGF0aFNlZ21lbnRDb3VudCgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAKaW5kZXggY2Y5ZjAxNC4uY2M1NDMw
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcApAQCAtMTAxLDcgKzEw
MSw5IEBAIFN0cmluZyBidWlsZFN0cmluZ0Zyb21QYXRoKGNvbnN0IFBhdGgmIHBhdGgpCiAgICAg
ICAgIH0pOwogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZH
UGF0aFNlZ0xpc3RWYWx1ZXMoY29uc3QgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmIGxpc3QsIFNWR1Bh
dGhCeXRlU3RyZWFtJiByZXN1bHQsIFBhdGhQYXJzaW5nTW9kZSBwYXJzaW5nTW9kZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1ZXMuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHAKaW5kZXggZDgxZTZhMi4uZDhiZGVl
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHAKQEAgLTQxLDcg
KzQxLDkgQEAgU3RyaW5nIFNWR1BvaW50TGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZygpIGNvbnN0
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHBvaW50LnkoKSk7CiAgICAgfQogCi0gICAg
cmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmNwcAppbmRleCAzZmY4
OThhLi44YzYxZjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlz
dFZhbHVlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMu
Y3BwCkBAIC03Myw3ICs3Myw5IEBAIFN0cmluZyBTVkdTdHJpbmdMaXN0VmFsdWVzOjp2YWx1ZUFz
U3RyaW5nKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoYXQoaSkpOwogICAgIH0KIAot
ICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZh
bHVlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAK
aW5kZXggMjViM2MzMS4uNmI0MmQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RyYW5zZm9ybUxpc3RWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFu
c2Zvcm1MaXN0VmFsdWVzLmNwcApAQCAtNjgsNyArNjgsOSBAQCBTdHJpbmcgU1ZHVHJhbnNmb3Jt
TGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KGF0KGkpLnZhbHVlQXNTdHJpbmcoKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgU1ZHVHJhbnNmb3Jt
TGlzdFZhbHVlczo6cGFyc2UoY29uc3QgU3RyaW5nJiB0cmFuc2Zvcm0pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmNwcAppbmRleCA2M2Q0NWE1Li5lYTE0NjNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtVmFsdWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5jcHAKQEAgLTE3OSw3ICsxNzksOSBAQCBT
dHJpbmcgU1ZHVHJhbnNmb3JtVmFsdWU6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogICAgICAgICBi
dWlsZGVyLmFwcGVuZCgnICcpOwogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX21hdHJp
eC5mKCkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnKScpOwotICAgICAgICByZXR1cm4gYnVp
bGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAg
ICB9CiAgICAgY2FzZSBTVkdfVFJBTlNGT1JNX1RSQU5TTEFURTogewogICAgICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7CkBAIC0xODgsNyArMTkwLDkgQEAgU3RyaW5nIFNWR1RyYW5zZm9ybVZh
bHVlOjp2YWx1ZUFzU3RyaW5nKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV9tYXRyaXguZigpKTsKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoJyknKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAg
ICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIGNhc2UgU1ZHX1RS
QU5TRk9STV9TQ0FMRTogewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CkBAIC0xOTcs
NyArMjAxLDkgQEAgU3RyaW5nIFNWR1RyYW5zZm9ybVZhbHVlOjp2YWx1ZUFzU3RyaW5nKCkgY29u
c3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmRO
dW1iZXIobV9tYXRyaXgueVNjYWxlKCkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnKScpOwot
ICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgY2FzZSBTVkdfVFJBTlNGT1JNX1JPVEFURTogewog
ICAgICAgICBkb3VibGUgYW5nbGVJblJhZCA9IGRlZzJyYWQobV9hbmdsZSk7CkBAIC0yMTUsNyAr
MjIxLDkgQEAgU3RyaW5nIFNWR1RyYW5zZm9ybVZhbHVlOjp2YWx1ZUFzU3RyaW5nKCkgY29uc3QK
ICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGN5KTsKICAgICAgICAgfQogICAgICAg
ICBidWlsZGVyLmFwcGVuZCgnKScpOwotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgY2FzZSBT
VkdfVFJBTlNGT1JNX1NLRVdYOgogICAgIGNhc2UgU1ZHX1RSQU5TRk9STV9TS0VXWTogewpAQCAt
MjIzLDcgKzIzMSw5IEBAIFN0cmluZyBTVkdUcmFuc2Zvcm1WYWx1ZTo6dmFsdWVBc1N0cmluZygp
IGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHByZWZpeCk7CiAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kTnVtYmVyKG1fYW5nbGUpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnKScpOwotICAg
ICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAg
ICAgQ1JBU0goKTsKICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaAppbmRleCBhMjMyN2U2Li44MDBhYmQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmgK
QEAgLTE0Myw3ICsxNDMsOSBAQCBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRQb2ludD4g
ewogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLngoKSk7CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCcgJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUueSgpKTsK
LSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgICAgIENSQVNIKCk7CiAgICAgfQogfTsKIApAQCAtMTc0LDcgKzE3Niw5IEBAIHN0cnVjdCBT
VkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+IHsKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1i
ZXIodHlwZS53aWR0aCgpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICAgICAg
YnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS5oZWlnaHQoKSk7Ci0gICAgICAgIHJldHVybiBidWls
ZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAg
IH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA4MWE0MDA5Li4w
YzI0MDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xNTQwLDcgKzE1
NDAsOSBAQCBFeGNlcHRpb25PcjxTdHJpbmc+IEludGVybmFsczo6ZHVtcE1hcmtlclJlY3RzKGNv
bnN0IFN0cmluZyYgbWFya2VyVHlwZVN0cmluZykKICAgICAgICAgcmVjdFN0cmluZy5hcHBlbmRO
dW1iZXIocmVjdC5oZWlnaHQoKSk7CiAgICAgICAgIHJlY3RTdHJpbmcuYXBwZW5kTGl0ZXJhbCgi
KSAiKTsKICAgICB9Ci0gICAgcmV0dXJuIHJlY3RTdHJpbmcudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSByZWN0U3RyaW5nLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBXVEZN
b3ZlKCpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW50ZXJuYWxzOjphZGRUZXh0
TWF0Y2hNYXJrZXIoY29uc3QgUmFuZ2UmIHJhbmdlLCBib29sIGlzQWN0aXZlKQpAQCAtMjA3OSw3
ICsyMDgxLDkgQEAgU3RyaW5nIEludGVybmFsczo6cGFyc2VyTWV0YURhdGEoSlNDOjpKU1ZhbHVl
IGNvZGUpCiAgICAgcmVzdWx0LmFwcGVuZE51bWJlcihlbmRDb2x1bW4pOwogICAgIHJlc3VsdC5h
cHBlbmRMaXRlcmFsKCIgfSIpOwogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIEludGVybmFsczo6dXBkYXRlRWRpdG9yVUlO
b3dJZlNjaGVkdWxlZCgpCkBAIC0zMDcxLDcgKzMwNzUsOSBAQCBFeGNlcHRpb25PcjxTdHJpbmc+
IEludGVybmFsczo6Z2V0Q3VycmVudEN1cnNvckluZm8oKQogICAgICAgICByZXN1bHQuYXBwZW5k
KG51bWJlclRvRml4ZWRQcmVjaXNpb25TdHJpbmcoY3Vyc29yLmltYWdlU2NhbGVGYWN0b3IoKSwg
OCwgYnVmZmVyLCB0cnVlKSk7CiAgICAgfQogI2VuZGlmCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gV1RGTW92ZSgqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogI2Vsc2UKICAgICByZXR1
cm4gU3RyaW5nIHsgIkZBSUw6IEN1cnNvciBkZXRhaWxzIG5vdCBhdmFpbGFibGUgb24gdGhpcyBw
bGF0Zm9ybS4iIH07CiAjZW5kaWYKQEAgLTM1MTQsNyArMzUyMCw5IEBAIEV4Y2VwdGlvbk9yPFN0
cmluZz4gSW50ZXJuYWxzOjptZWRpYVNlc3Npb25SZXN0cmljdGlvbnMoY29uc3QgU3RyaW5nJiBt
ZWRpYVR5cGVTCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnLCcpOwogICAgICAgICBidWls
ZGVyLmFwcGVuZCgiaW50ZXJydXB0ZWRwbGF5YmFja25vdHBlcm1pdHRlZCIpOwogICAgIH0KLSAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIFdURk1vdmUoKnN0cmluZyk7CisgICAgQ1JB
U0goKTsKIH0KIAogdm9pZCBJbnRlcm5hbHM6OnNldE1lZGlhRWxlbWVudFJlc3RyaWN0aW9ucyhI
VE1MTWVkaWFFbGVtZW50JiBlbGVtZW50LCBTdHJpbmdWaWV3IHJlc3RyaWN0aW9uc1N0cmluZykK
QEAgLTM3NTUsNDggKzM3NjMsNTAgQEAgU3RyaW5nIEludGVybmFsczo6cGFnZU1lZGlhU3RhdGUo
KQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIAogICAgIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSA9IGRvY3VtZW50LT5wYWdlKCktPm1lZGlhU3Rh
dGUoKTsKLSAgICBTdHJpbmdCdWlsZGVyIHN0cmluZzsKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5nQXVkaW8pCi0gICAg
ICAgIHN0cmluZy5hcHBlbmQoIklzUGxheWluZ0F1ZGlvLCIpOworICAgICAgICBidWlsZGVyLmFw
cGVuZCgiSXNQbGF5aW5nQXVkaW8sIik7CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6
SXNQbGF5aW5nVmlkZW8pCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIklzUGxheWluZ1ZpZGVvLCIp
OworICAgICAgICBidWlsZGVyLmFwcGVuZCgiSXNQbGF5aW5nVmlkZW8sIik7CiAgICAgaWYgKHN0
YXRlICYgTWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSkKLSAgICAgICAg
c3RyaW5nLmFwcGVuZCgiSXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSwiKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmQoIklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UsIik7CiAgICAgaWYgKHN0YXRl
ICYgTWVkaWFQcm9kdWNlcjo6UmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcpCi0gICAg
ICAgIHN0cmluZy5hcHBlbmQoIlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nLCIpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZCgiUmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3Jpbmcs
Iik7CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6RXh0ZXJuYWxEZXZpY2VBdXRvUGxh
eUNhbmRpZGF0ZSkKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiRXh0ZXJuYWxEZXZpY2VBdXRvUGxh
eUNhbmRpZGF0ZSwiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIkV4dGVybmFsRGV2aWNlQXV0
b1BsYXlDYW5kaWRhdGUsIik7CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6RGlkUGxh
eVRvRW5kKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJEaWRQbGF5VG9FbmQsIik7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCJEaWRQbGF5VG9FbmQsIik7CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQ
cm9kdWNlcjo6SXNTb3VyY2VFbGVtZW50UGxheWluZykKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgi
SXNTb3VyY2VFbGVtZW50UGxheWluZywiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIklzU291
cmNlRWxlbWVudFBsYXlpbmcsIik7CiAKICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpJ
c05leHRUcmFja0NvbnRyb2xFbmFibGVkKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc05leHRU
cmFja0NvbnRyb2xFbmFibGVkLCIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiSXNOZXh0VHJh
Y2tDb250cm9sRW5hYmxlZCwiKTsKICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpJc1By
ZXZpb3VzVHJhY2tDb250cm9sRW5hYmxlZCkKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNQcmV2
aW91c1RyYWNrQ29udHJvbEVuYWJsZWQsIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJJc1By
ZXZpb3VzVHJhY2tDb250cm9sRW5hYmxlZCwiKTsKIAogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJv
ZHVjZXI6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpCi0gICAgICAgIHN0
cmluZy5hcHBlbmQoIkhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIsIik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3Rl
bmVyLCIpOwogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6Okhhc0F1ZGlvT3JWaWRlbykK
LSAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzQXVkaW9PclZpZGVvLCIpOworICAgICAgICBidWls
ZGVyLmFwcGVuZCgiSGFzQXVkaW9PclZpZGVvLCIpOwogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJv
ZHVjZXI6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkKLSAgICAgICAgc3RyaW5nLmFwcGVu
ZCgiSGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlLCIpOworICAgICAgICBidWlsZGVyLmFwcGVu
ZCgiSGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlLCIpOwogICAgIGlmIChzdGF0ZSAmIE1lZGlh
UHJvZHVjZXI6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSkKLSAgICAgICAgc3RyaW5nLmFw
cGVuZCgiSGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlLCIpOworICAgICAgICBidWlsZGVyLmFw
cGVuZCgiSGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlLCIpOwogICAgIGlmIChzdGF0ZSAmIE1l
ZGlhUHJvZHVjZXI6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQotICAgICAgICBzdHJpbmcu
YXBwZW5kKCJIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSwiKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQoIkhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlLCIpOwogICAgIGlmIChzdGF0ZSAmIE1l
ZGlhUHJvZHVjZXI6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlKQotICAgICAgICBzdHJpbmcu
YXBwZW5kKCJIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSwiKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQoIkhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlLCIpOwogICAgIGlmIChzdGF0ZSAmIE1l
ZGlhUHJvZHVjZXI6Okhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCkKLSAgICAgICAg
c3RyaW5nLmFwcGVuZCgiSGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50LCIpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZCgiSGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50LCIp
OwogCi0gICAgaWYgKHN0cmluZy5pc0VtcHR5KCkpCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIklz
Tm90UGxheWluZyIpOworICAgIGlmIChidWlsZGVyLmlzRW1wdHkoKSkKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQoIklzTm90UGxheWluZyIpOwogICAgIGVsc2UKLSAgICAgICAgc3RyaW5nLnJlc2l6
ZShzdHJpbmcubGVuZ3RoKCkgLSAxKTsKKyAgICAgICAgYnVpbGRlci5yZXNpemUoYnVpbGRlci5s
ZW5ndGgoKSAtIDEpOwogCi0gICAgcmV0dXJuIHN0cmluZy50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbnRlcm5hbHM6OnNldFBhZ2VEZWZlcnNMb2FkaW5n
KGJvb2wgZGVmZXJzTG9hZGluZykKQEAgLTM5MTgsNyArMzkyOCw5IEBAIEV4Y2VwdGlvbk9yPFN0
cmluZz4gSW50ZXJuYWxzOjpzY3JvbGxTbmFwT2Zmc2V0cyhFbGVtZW50JiBlbGVtZW50KQogICAg
ICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gV1RGTW92ZSgq
c3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcAppbmRleCBlNWE2Y2ZlLi5mNGEzY2U3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQu
Y3BwCkBAIC05OCw3ICs5OCwxMCBAQCB2b2lkIE1vY2tQYWdlT3ZlcmxheUNsaWVudDo6ZHJhd1Jl
Y3QoUGFnZU92ZXJsYXkmIG92ZXJsYXksIEdyYXBoaWNzQ29udGV4dCYgY29udAogICAgIG1lc3Nh
Z2UuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKICAgICBtZXNzYWdlLmFwcGVuZE51bWJlcihkaXJ0eVJl
Y3QuaGVpZ2h0KCkpOwogICAgIG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiKSIpOwotICAgIG92ZXJs
YXkucGFnZSgpLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNz
YWdlU291cmNlOjpPdGhlciwgTWVzc2FnZUxldmVsOjpEZWJ1ZywgbWVzc2FnZS50b1N0cmluZygp
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtZXNzYWdlLnRvU3RyaW5nKCkpCisgICAgICAgIG92
ZXJsYXkucGFnZSgpLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShN
ZXNzYWdlU291cmNlOjpPdGhlciwgTWVzc2FnZUxldmVsOjpEZWJ1ZywgKnN0cmluZyk7CisgICAg
ZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBz
dGF0ZVNhdmVyKGNvbnRleHQpOwogCkBAIC0xMjMsNyArMTI2LDEwIEBAIGJvb2wgTW9ja1BhZ2VP
dmVybGF5Q2xpZW50Ojptb3VzZUV2ZW50KFBhZ2VPdmVybGF5JiBvdmVybGF5LCBjb25zdCBQbGF0
Zm9ybU1vdXNlCiAgICAgbWVzc2FnZS5hcHBlbmRMaXRlcmFsKCIsICIpOwogICAgIG1lc3NhZ2Uu
YXBwZW5kTnVtYmVyKGV2ZW50LnBvc2l0aW9uKCkueSgpKTsKICAgICBtZXNzYWdlLmFwcGVuZExp
dGVyYWwoIikiKTsKLSAgICBvdmVybGF5LnBhZ2UoKS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKS0+
YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6RGVi
dWcsIG1lc3NhZ2UudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWVzc2FnZS50
b1N0cmluZygpKQorICAgICAgICBvdmVybGF5LnBhZ2UoKS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQo
KS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6
RGVidWcsICpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIHJldHVy
biBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2Ny
aXB0TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVy
LmNwcAppbmRleCA1YjM0MGZmLi40NGU0ZTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwCkBAIC0yMDIsNyArMjAyLDkgQEAgdm9pZCBXb3JrZXJT
Y3JpcHRMb2FkZXI6Om5vdGlmeUVycm9yKCkKIAogU3RyaW5nIFdvcmtlclNjcmlwdExvYWRlcjo6
c2NyaXB0KCkKIHsKLSAgICByZXR1cm4gbV9zY3JpcHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBtX3NjcmlwdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiB2b2lkIFdvcmtlclNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNo
ZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEVycm9ycy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MRXJyb3JzLmNwcAppbmRleCBiMTQzMmQxLi4xNTMxOWY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MRXJyb3JzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS94bWwvWE1MRXJyb3JzLmNwcApAQCAtMTQ4LDggKzE0OCwxMSBAQCB2b2lkIFhNTEVycm9y
czo6aW5zZXJ0RXJyb3JNZXNzYWdlQmxvY2soKQogICAgICAgICBkb2N1bWVudEVsZW1lbnQgPSBX
VEZNb3ZlKGJvZHkpOwogICAgIH0KIAotICAgIFN0cmluZyBlcnJvck1lc3NhZ2VzID0gbV9lcnJv
ck1lc3NhZ2VzLnRvU3RyaW5nKCk7Ci0gICAgYXV0byByZXBvcnRFbGVtZW50ID0gY3JlYXRlWEhU
TUxQYXJzZXJFcnJvckhlYWRlcihtX2RvY3VtZW50LCBlcnJvck1lc3NhZ2VzKTsKKyAgICBhdXRv
IHJlcG9ydEVsZW1lbnQgPSBjcmVhdGVYSFRNTFBhcnNlckVycm9ySGVhZGVyKG1fZG9jdW1lbnQs
IFsmXSAoKSB7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IG1fZXJyb3JNZXNzYWdlcy50b1N0
cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7Cisg
ICAgfSgpKTsKIAogI2lmIEVOQUJMRShYU0xUKQogICAgIGlmIChtX2RvY3VtZW50LnRyYW5zZm9y
bVNvdXJjZURvY3VtZW50KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmlu
ZGV4IDE5ZTVhZTQuLjc2YjlmZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNw
cApAQCAtMTk1LDcgKzE5NSwxMCBAQCBFeGNlcHRpb25PcjxEb2N1bWVudCo+IFhNTEh0dHBSZXF1
ZXN0OjpyZXNwb25zZVhNTCgpCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbV9y
ZXNwb25zZURvY3VtZW50ID0gWE1MRG9jdW1lbnQ6OmNyZWF0ZSgwLCBtX3VybCk7CiAgICAgICAg
ICAgICAvLyBGSVhNRTogU2V0IExhc3QtTW9kaWZpZWQuCi0gICAgICAgICAgICBtX3Jlc3BvbnNl
RG9jdW1lbnQtPnNldENvbnRlbnQobV9yZXNwb25zZUJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNh
cGFjaXR5KCkpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gbV9yZXNwb25zZUJ1aWxk
ZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpCisgICAgICAgICAgICAgICAgbV9yZXNwb25z
ZURvY3VtZW50LT5zZXRDb250ZW50KCpzdHJpbmcpOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQtPnNldENv
bnRleHREb2N1bWVudChkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSkpOwogICAgICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50LT5zZXRTZWN1cml0eU9yaWdpblBv
bGljeShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luUG9saWN5KCkpOwog
ICAgICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50LT5vdmVycmlkZU1JTUVUeXBlKG1pbWVUeXBl
KTsKQEAgLTgxNywxNCArODIwLDIwIEBAIFN0cmluZyBYTUxIdHRwUmVxdWVzdDo6Z2V0QWxsUmVz
cG9uc2VIZWFkZXJzKCkgY29uc3QKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiOiAiKTsKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGhlYWRlci52YWx1
ZSk7CiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIlxyXG4iKTsKLSAg
ICAgICAgICAgIGhlYWRlcnMudW5jaGVja2VkQXBwZW5kKHN0cmluZ0J1aWxkZXIudG9TdHJpbmco
KSk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgICAgICAgICAgaGVhZGVycy51bmNoZWNrZWRBcHBlbmQoKnN0cmluZyk7Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAg
ICAgICBzdGQ6OnNvcnQoaGVhZGVycy5iZWdpbigpLCBoZWFkZXJzLmVuZCgpLCBXVEY6OmNvZGVQ
b2ludENvbXBhcmVMZXNzVGhhbik7CiAKICAgICAgICAgU3RyaW5nQnVpbGRlciBzdHJpbmdCdWls
ZGVyOwogICAgICAgICBmb3IgKGF1dG8mIGhlYWRlciA6IGhlYWRlcnMpCiAgICAgICAgICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZChoZWFkZXIpOwotICAgICAgICBtX2FsbFJlc3BvbnNlSGVhZGVy
cyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
c3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgbV9hbGxSZXNwb25zZUhlYWRl
cnMgPSAqc3RyaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0K
IAogICAgIHJldHVybiBtX2FsbFJlc3BvbnNlSGVhZGVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBS
ZXF1ZXN0LmgKaW5kZXggMWVlYzE1OC4uNTNiNGY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBS
ZXF1ZXN0LmgKQEAgLTg3LDcgKzg3LDEyIEBAIHB1YmxpYzoKICAgICBTdHJpbmcgZ2V0QWxsUmVz
cG9uc2VIZWFkZXJzKCkgY29uc3Q7CiAgICAgU3RyaW5nIGdldFJlc3BvbnNlSGVhZGVyKGNvbnN0
IFN0cmluZyYgbmFtZSkgY29uc3Q7CiAgICAgRXhjZXB0aW9uT3I8T3duZWRTdHJpbmc+IHJlc3Bv
bnNlVGV4dCgpOwotICAgIFN0cmluZyByZXNwb25zZVRleHRJZ25vcmluZ1Jlc3BvbnNlVHlwZSgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VCdWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0
eSgpOyB9CisgICAgU3RyaW5nIHJlc3BvbnNlVGV4dElnbm9yaW5nUmVzcG9uc2VUeXBlKCkgY29u
c3QKKyAgICB7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IG1fcmVzcG9uc2VCdWlsZGVyLnRv
U3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgICAgIENSQVNIKCk7CisgICAgfQogICAgIFN0cmluZyByZXNwb25zZU1JTUVUeXBlKCkgY29u
c3Q7CiAKICAgICBEb2N1bWVudCogb3B0aW9uYWxSZXNwb25zZVhNTCgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVzcG9uc2VEb2N1bWVudC5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
eG1sL1hQYXRoRnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEZ1bmN0aW9u
cy5jcHAKaW5kZXggNzM1MzRhNC4uZjdkY2E5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9YUGF0aEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRnVu
Y3Rpb25zLmNwcApAQCAtMzA4LDkgKzMwOCwxMSBAQCBzdGF0aWMgQXRvbWljU3RyaW5nIGF0b21p
Y1N1YnN0cmluZyhTdHJpbmdCdWlsZGVyJiBidWlsZGVyLCB1bnNpZ25lZCBzdGFydCwgdW5zaQog
ewogICAgIEFTU0VSVChzdGFydCA8PSBidWlsZGVyLmxlbmd0aCgpKTsKICAgICBBU1NFUlQobGVu
Z3RoIDw9IGJ1aWxkZXIubGVuZ3RoKCkgLSBzdGFydCk7CisgICAgaWYgKGJ1aWxkZXIuZmFpbGVk
KCkpCisgICAgICAgIENSQVNIKCk7CiAgICAgaWYgKGJ1aWxkZXIuaXM4Qml0KCkpCi0gICAgICAg
IHJldHVybiBBdG9taWNTdHJpbmcoYnVpbGRlci5jaGFyYWN0ZXJzOCgpICsgc3RhcnQsIGxlbmd0
aCk7Ci0gICAgcmV0dXJuIEF0b21pY1N0cmluZyhidWlsZGVyLmNoYXJhY3RlcnMxNigpICsgc3Rh
cnQsIGxlbmd0aCk7CisgICAgICAgIHJldHVybiBBdG9taWNTdHJpbmcoKmJ1aWxkZXIuY2hhcmFj
dGVyczgoKSArIHN0YXJ0LCBsZW5ndGgpOworICAgIHJldHVybiBBdG9taWNTdHJpbmcoKmJ1aWxk
ZXIuY2hhcmFjdGVyczE2KCkgKyBzdGFydCwgbGVuZ3RoKTsKIH0KIAogVmFsdWUgRnVuSWQ6OmV2
YWx1YXRlKCkgY29uc3QKQEAgLTMzNCwxNCArMzM2LDE3IEBAIFZhbHVlIEZ1bklkOjpldmFsdWF0
ZSgpIGNvbnN0CiAgICAgdW5zaWduZWQgc3RhcnRQb3MgPSAwOwogICAgIHVuc2lnbmVkIGxlbmd0
aCA9IGlkTGlzdC5sZW5ndGgoKTsKICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICB3aGlsZSAo
c3RhcnRQb3MgPCBsZW5ndGggJiYgaXNXaGl0ZXNwYWNlKGlkTGlzdFtzdGFydFBvc10pKQorICAg
ICAgICBpZiAoaWRMaXN0LmZhaWxlZCgpKQorICAgICAgICAgICAgQ1JBU0goKTsKKworICAgICAg
ICB3aGlsZSAoc3RhcnRQb3MgPCBsZW5ndGggJiYgaXNXaGl0ZXNwYWNlKCppZExpc3Rbc3RhcnRQ
b3NdKSkKICAgICAgICAgICAgICsrc3RhcnRQb3M7CiAgICAgICAgIAogICAgICAgICBpZiAoc3Rh
cnRQb3MgPT0gbGVuZ3RoKQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgc2l6ZV90IGVu
ZFBvcyA9IHN0YXJ0UG9zOwotICAgICAgICB3aGlsZSAoZW5kUG9zIDwgbGVuZ3RoICYmICFpc1do
aXRlc3BhY2UoaWRMaXN0W2VuZFBvc10pKQorICAgICAgICB3aGlsZSAoZW5kUG9zIDwgbGVuZ3Ro
ICYmICFpc1doaXRlc3BhY2UoKmlkTGlzdFtlbmRQb3NdKSkKICAgICAgICAgICAgICsrZW5kUG9z
OwogCiAgICAgICAgIC8vIElmIHRoZXJlIGFyZSBzZXZlcmFsIG5vZGVzIHdpdGggdGhlIHNhbWUg
aWQsIGlkKCkgc2hvdWxkIHJldHVybiB0aGUgZmlyc3Qgb25lLgpAQCAtNDM3LDcgKzQ0Miw5IEBA
IFZhbHVlIEZ1bkNvbmNhdDo6ZXZhbHVhdGUoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5k
KHN0cik7CiAgICAgfQogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBWYWx1ZSBGdW5TdGFydHNXaXRoOjpldmFsdWF0ZSgpIGNvbnN0
CkBAIC01NTYsNyArNTYzLDkgQEAgVmFsdWUgRnVuVHJhbnNsYXRlOjpldmFsdWF0ZSgpIGNvbnN0
CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHMzW2kyXSk7CiAgICAgfQogCi0gICAgcmV0dXJu
IHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBWYWx1ZSBG
dW5Cb29sZWFuOjpldmFsdWF0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9j
ZXNzb3JMaWJ4c2x0LmNwcAppbmRleCA2NmFkMTVmLi44ZTVlMDVlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAKQEAgLTE5NywxMiArMTk3LDE4IEBAIHN0
YXRpYyBib29sIHNhdmVSZXN1bHRUb1N0cmluZyh4bWxEb2NQdHIgcmVzdWx0RG9jLCB4c2x0U3R5
bGVzaGVldFB0ciBzaGVldCwgU3RyCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIFdv
cmthcm91bmQgZm9yIDxodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD00
OTU2Njg+OiBsaWJ4c2x0IGFwcGVuZHMgYW4gZXh0cmEgbGluZSBmZWVkIHRvIHRoZSByZXN1bHQu
Ci0gICAgaWYgKHJlc3VsdEJ1aWxkZXIubGVuZ3RoKCkgPiAwICYmIHJlc3VsdEJ1aWxkZXJbcmVz
dWx0QnVpbGRlci5sZW5ndGgoKSAtIDFdID09ICdcbicpCisgICAgaWYgKHJlc3VsdEJ1aWxkZXIu
bGVuZ3RoKCkgPiAwKSB7CisgICAgICAgIGlmIChyZXN1bHRCdWlsZGVyLmZhaWxlZCgpKQorICAg
ICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgaWYgKCpyZXN1bHRCdWlsZGVyW3Jlc3VsdEJ1aWxk
ZXIubGVuZ3RoKCkgLSAxXSA9PSAnXG4nKQogICAgICAgICByZXN1bHRCdWlsZGVyLnJlc2l6ZShy
ZXN1bHRCdWlsZGVyLmxlbmd0aCgpIC0gMSk7CisgICAgfQogCi0gICAgcmVzdWx0U3RyaW5nID0g
cmVzdWx0QnVpbGRlci50b1N0cmluZygpOwotCi0gICAgcmV0dXJuIHRydWU7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gcmVzdWx0QnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIHJlc3VsdFN0
cmluZyA9ICpzdHJpbmc7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBDUkFTSCgp
OwogfQogCiBzdGF0aWMgY29uc3QgY2hhcioqIHhzbHRQYXJhbUFycmF5RnJvbVBhcmFtZXRlck1h
cChYU0xUUHJvY2Vzc29yOjpQYXJhbWV0ZXJNYXAmIHBhcmFtZXRlcnMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL0NoYXJhY3RlclJlZmVyZW5jZVBhcnNlcklubGluZXMu
aCBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VySW5s
aW5lcy5oCmluZGV4IDc2ODYyNjguLjY3MmJhZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9wYXJzZXIvQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VySW5saW5lcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9wYXJzZXIvQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VySW5saW5lcy5oCkBA
IC0zMiw3ICszMiwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGlubGluZSB2b2lkIHVuY29u
c3VtZUNoYXJhY3RlcnMoU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIFN0cmluZ0J1aWxkZXImIGNv
bnN1bWVkQ2hhcmFjdGVycykKIHsKLSAgICBzb3VyY2UucHVzaEJhY2soY29uc3VtZWRDaGFyYWN0
ZXJzLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGNvbnN1bWVkQ2hhcmFjdGVy
cy50b1N0cmluZygpKQorICAgICAgICBzb3VyY2UucHVzaEJhY2soV1RGTW92ZSgqc3RyaW5nKSk7
CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgUGFy
c2VyRnVuY3Rpb25zPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uSG9zdC5j
cHAgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb25Ib3N0LmNwcAppbmRleCBmMTY0OTI5Li5iMWNj
Y2IzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb25Ib3N0LmNwcAorKysgYi9T
b3VyY2UvV2ViRHJpdmVyL1Nlc3Npb25Ib3N0LmNwcApAQCAtNTUsNyArNTUsMTAgQEAgbG9uZyBT
ZXNzaW9uSG9zdDo6c2VuZENvbW1hbmRUb0JhY2tlbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kLCBS
ZWZQdHI8SlNPTjo6T2JqZWMKICAgICAgICAgbWVzc2FnZUJ1aWxkZXIuYXBwZW5kKHBhcmFtZXRl
cnMtPnRvSlNPTlN0cmluZygpKTsKICAgICB9CiAgICAgbWVzc2FnZUJ1aWxkZXIuYXBwZW5kKCd9
Jyk7Ci0gICAgc2VuZE1lc3NhZ2VUb0JhY2tlbmQoc2VxdWVuY2VJRCwgbWVzc2FnZUJ1aWxkZXIu
dG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWVzc2FnZUJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgc2VuZE1lc3NhZ2VUb0JhY2tlbmQoc2VxdWVuY2VJRCwgKnN0cmluZyk7
CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgcmV0dXJuIHNlcXVlbmNlSUQ7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDJmZGE1MDQuLjZkYzEyYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAK
KzIwMTgtMDQtMjYgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgorCisgICAgICAg
IFN0cmluZ0J1aWxkZXIgaXMgZmFsbGlibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4NTA0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRlYWNoIFN0cmluZ0J1aWxkZXIgdGhhdCBpdCBpcyBmYWxsaWJs
ZQorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpFbmdpbmU6OnJlcHJlc2VudGF0aW9u
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkNhY2hlOjpkdW1wQ29udGVudHNUb0ZpbGUpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUtleS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6S2V5OjpoYXNoQXNTdHJpbmcpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0NhcHR1cmU6Ok1hbmFnZXI6Omhhc2hUb1BhdGgpOgorICAgICAg
ICAqIFNoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCL0lEQlV0aWxpdGllcy5jcHA6CisgICAgICAg
IChXZWJLaXQ6OnVuaXF1ZURhdGFiYXNlSWRlbnRpZmllcik6CisgICAgICAgICogU2hhcmVkL0dh
bWVwYWQvR2FtZXBhZERhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpHYW1lcGFkRGF0YTo6bG9n
Z2luZ1N0cmluZyBjb25zdCk6CisgICAgICAgICogU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvdW5p
eC9OZXRzY2FwZVBsdWdpbk1vZHVsZVVuaXguY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2Fw
ZVBsdWdpbk1vZHVsZTo6YnVpbGRNSU1FRGVzY3JpcHRpb24pOgorICAgICAgICAqIFNoYXJlZC9X
ZWJNZW1vcnlTYW1wbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVtb3J5U2FtcGxlcjo6
YXBwZW5kQ3VycmVudE1lbW9yeVVzYWdlVG9GaWxlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0FQSVVzZXJTY3JpcHQuY3BwOgorICAgICAgICAoQVBJOjpVc2VyU2NyaXB0OjpnZW5lcmF0ZVVu
aXF1ZVVSTCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVc2VyU3R5bGVTaGVldC5jcHA6
CisgICAgICAgIChBUEk6OlVzZXJTdHlsZVNoZWV0OjpnZW5lcmF0ZVVuaXF1ZVVSTCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6U25hcHNob3RSZW1vdmFsVHJhY2tlcjo6
ZXZlbnRzRGVzY3JpcHRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExp
c3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJCYWNrRm9yd2FyZExpc3Q6OmxvZ2dpbmdTdHJp
bmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlbW92ZURhdGFSZWNvcmRzKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjp1cGRhdGVDb29raWVQYXJ0aXRp
b25pbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVs
ZW1ldHJ5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6c3VibWl0VG9wTGlzdCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6Y2FwaXRhbGl6ZVJGQzgyMkhlYWRlckZpZWxkTmFtZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0Ojpi
dWlsZEhUVFBIZWFkZXJzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6Y29udGVudHNBc1N0cmluZyBjb25zdCk6
CisKIDIwMTgtMDQtMzAgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFVzZSBzb21lIEMrKzE3IGZlYXR1cmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAKaW5kZXggNDVjNDdh
MS4uOGQ3OTU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcApAQCAtNTI0LDcgKzUyNCw5IEBAIFN0cmlu
ZyBFbmdpbmU6OnJlcHJlc2VudGF0aW9uKCkKICAgICAgICAgYnVpbGRlci5hcHBlbmQoIn0iKTsK
ICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmQoIl19Iik7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIENh
Y2hlU3RvcmFnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9OZXR3b3JrQ2FjaGUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGUuY3BwCmluZGV4IDczYTI1ZjQuLjBjYTdmOTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKQEAgLTU3MCwx
MCArNTcwLDEzIEBAIHZvaWQgQ2FjaGU6OmR1bXBDb250ZW50c1RvRmlsZSgpCiAgICAgICAgICAg
ICBlcGlsb2d1ZS5hcHBlbmROdW1iZXIodG90YWxzLmNvdW50ID8gdG90YWxzLndvcnRoIC8gdG90
YWxzLmNvdW50IDogMCk7CiAgICAgICAgICAgICBlcGlsb2d1ZS5hcHBlbmRMaXRlcmFsKCJcbiIp
OwogICAgICAgICAgICAgZXBpbG9ndWUuYXBwZW5kTGl0ZXJhbCgifVxufVxuIik7Ci0gICAgICAg
ICAgICBhdXRvIHdyaXRlRGF0YSA9IGVwaWxvZ3VlLnRvU3RyaW5nKCkudXRmOCgpOwotICAgICAg
ICAgICAgd3JpdGVUb0ZpbGUoZmQsIHdyaXRlRGF0YS5kYXRhKCksIHdyaXRlRGF0YS5sZW5ndGgo
KSk7Ci0gICAgICAgICAgICBjbG9zZUZpbGUoZmQpOwotICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZXBpbG9ndWUudG9TdHJpbmcoKSkgeworICAgICAg
ICAgICAgICAgIGF1dG8gd3JpdGVEYXRhID0gc3RyaW5nLT51dGY4KCk7CisgICAgICAgICAgICAg
ICAgd3JpdGVUb0ZpbGUoZmQsIHdyaXRlRGF0YS5kYXRhKCksIHdyaXRlRGF0YS5sZW5ndGgoKSk7
CisgICAgICAgICAgICAgICAgY2xvc2VGaWxlKGZkKTsKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAgICAgICAg
IGF1dG8gZW50cnkgPSBFbnRyeTo6ZGVjb2RlU3RvcmFnZVJlY29yZCgqcmVjb3JkKTsKICAgICAg
ICAgaWYgKCFlbnRyeSkKQEAgLTU4NSw4ICs1ODgsMTEgQEAgdm9pZCBDYWNoZTo6ZHVtcENvbnRl
bnRzVG9GaWxlKCkKICAgICAgICAgU3RyaW5nQnVpbGRlciBqc29uOwogICAgICAgICBlbnRyeS0+
YXNKU09OKGpzb24sIGluZm8pOwogICAgICAgICBqc29uLmFwcGVuZExpdGVyYWwoIixcbiIpOwot
ICAgICAgICBhdXRvIHdyaXRlRGF0YSA9IGpzb24udG9TdHJpbmcoKS51dGY4KCk7Ci0gICAgICAg
IHdyaXRlVG9GaWxlKGZkLCB3cml0ZURhdGEuZGF0YSgpLCB3cml0ZURhdGEubGVuZ3RoKCkpOwor
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBqc29uLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAg
IGF1dG8gd3JpdGVEYXRhID0gc3RyaW5nLT51dGY4KCk7CisgICAgICAgICAgICB3cml0ZVRvRmls
ZShmZCwgd3JpdGVEYXRhLmRhdGEoKSwgd3JpdGVEYXRhLmxlbmd0aCgpKTsKKyAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUtleS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUtleS5jcHAKaW5kZXgg
OGZhODFkMS4uMGI0MjJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGVLZXkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlS2V5LmNwcApAQCAtMTM0LDcgKzEzNCw5IEBAIFN0cmlu
ZyBLZXk6Omhhc2hBc1N0cmluZyhjb25zdCBIYXNoVHlwZSYgaGFzaCkKICAgICAgICAgYnVpbGRl
ci5hcHBlbmQodXBwZXJOaWJibGVUb0FTQ0lJSGV4RGlnaXQoYnl0ZSkpOwogICAgICAgICBidWls
ZGVyLmFwcGVuZChsb3dlck5pYmJsZVRvQVNDSUlIZXhEaWdpdChieXRlKSk7CiAgICAgfQotICAg
IHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+IGJvb2wgaGV4RGlnaXRzVG9IYXNoKENoYXJU
eXBlKiBjaGFyYWN0ZXJzLCBLZXk6Okhhc2hUeXBlJiBoYXNoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVNYW5h
Z2VyLmNwcAppbmRleCA1NjEzYmU4Li4zNDczZTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVNYW5hZ2Vy
LmNwcApAQCAtNDE1LDkgKzQxNSw5IEBAIFN0cmluZyBNYW5hZ2VyOjpoYXNoVG9QYXRoKGNvbnN0
IFN0cmluZyYgaGFzaCkKIAogICAgIGF1dG8gcGF0aCA9IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVu
dChtX3JlY29yZFJlcGxheUNhY2hlTG9jYXRpb24sIGtEaXJOYW1lUmVzb3VyY2VzKTsKICAgICBw
YXRoID0gcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHBhdGgsIGhhc2hIZWFkKTsKLSAgICBwYXRo
ID0gcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHBhdGgsIGZpbGVOYW1lLnRvU3RyaW5nKCkpOwot
Ci0gICAgcmV0dXJuIHBhdGg7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gZmlsZU5hbWUudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChwYXRoLCAqc3Ry
aW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgTWFuYWdlcjo6dXJsSWRlbnRpZnlpbmdD
b21tb25Eb21haW4oY29uc3QgV2ViQ29yZTo6VVJMJiB1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCL0lEQlV0aWxpdGllcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCL0lEQlV0aWxpdGllcy5jcHAKaW5k
ZXggOWVjNzZmZi4uN2MxYzI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRGF0
YWJhc2VzL0luZGV4ZWREQi9JREJVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0RhdGFiYXNlcy9JbmRleGVkREIvSURCVXRpbGl0aWVzLmNwcApAQCAtNTIsNyArNTIsOSBA
QCBTdHJpbmcgdW5pcXVlRGF0YWJhc2VJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VO
YW1lLCBjb25zdCBXZWJDb3JlOjpTZWN1cgogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdfJyk7
CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoZGF0YWJhc2VOYW1lKTsKIAotICAgIHJldHVybiBz
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0dhbWVwYWQvR2FtZXBhZERhdGEuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvR2FtZXBh
ZC9HYW1lcGFkRGF0YS5jcHAKaW5kZXggOTA1ZDgyNy4uMWZiZDdkMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5jcHAKQEAgLTExMSw3ICsxMTEsOSBAQCBT
dHJpbmcgR2FtZXBhZERhdGE6OmxvZ2dpbmdTdHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVy
LmFwcGVuZE51bWJlcihtX2J1dHRvblZhbHVlc1tpXSk7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS91bml4L05l
dHNjYXBlUGx1Z2luTW9kdWxlVW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5z
L05ldHNjYXBlL3VuaXgvTmV0c2NhcGVQbHVnaW5Nb2R1bGVVbml4LmNwcAppbmRleCBmOWViMDZl
Li45NzJkY2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5zL05ldHNj
YXBlL3VuaXgvTmV0c2NhcGVQbHVnaW5Nb2R1bGVVbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL3VuaXgvTmV0c2NhcGVQbHVnaW5Nb2R1bGVVbml4LmNw
cApAQCAtMTIwLDcgKzEyMCw5IEBAIFN0cmluZyBOZXRzY2FwZVBsdWdpbk1vZHVsZTo6YnVpbGRN
SU1FRGVzY3JpcHRpb24oY29uc3QgVmVjdG9yPE1pbWVDbGFzc0luZm8+JiBtCiAgICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZCgnOycpOwogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIE5ldHNjYXBlUGx1Z2lu
TW9kdWxlOjpnZXRQbHVnaW5JbmZvRm9yTG9hZGVkUGx1Z2luKFJhd1BsdWdpbk1ldGFEYXRhJiBt
ZXRhRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYk1lbW9yeVNhbXBs
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAKaW5kZXgg
OTI3NzE4OS4uNjc1OGFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTWVt
b3J5U2FtcGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTWVtb3J5U2FtcGxl
ci5jcHAKQEAgLTE4MSw4ICsxODEsMTEgQEAgdm9pZCBXZWJNZW1vcnlTYW1wbGVyOjphcHBlbmRD
dXJyZW50TWVtb3J5VXNhZ2VUb0ZpbGUoRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGEKICAgICB9
CiAgICAgc3RhdFN0cmluZy5hcHBlbmQoJ1xuJyk7CiAKLSAgICBDU3RyaW5nIHV0ZjhTdHJpbmcg
PSBzdGF0U3RyaW5nLnRvU3RyaW5nKCkudXRmOCgpOwotICAgIEZpbGVTeXN0ZW06OndyaXRlVG9G
aWxlKG1fc2FtcGxlTG9nRmlsZSwgdXRmOFN0cmluZy5kYXRhKCksIHV0ZjhTdHJpbmcubGVuZ3Ro
KCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0YXRTdHJpbmcudG9TdHJpbmcoKSkgeworICAg
ICAgICBDU3RyaW5nIHV0ZjhTdHJpbmcgPSBzdHJpbmctPnV0ZjgoKTsKKyAgICAgICAgRmlsZVN5
c3RlbTo6d3JpdGVUb0ZpbGUobV9zYW1wbGVMb2dGaWxlLCB1dGY4U3RyaW5nLmRhdGEoKSwgdXRm
OFN0cmluZy5sZW5ndGgoKSk7CisgICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVc2VyU2NyaXB0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVc2VyU2NyaXB0LmNwcAppbmRleCA3
NTg0ZTYzLi5hOTM5YjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJVXNlclNjcmlwdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVz
ZXJTY3JpcHQuY3BwCkBAIC0zNyw3ICszNyw5IEBAIFdlYkNvcmU6OlVSTCBVc2VyU2NyaXB0Ojpn
ZW5lcmF0ZVVuaXF1ZVVSTCgpCiAgICAgU3RyaW5nQnVpbGRlciB1cmxTdHJpbmdCdWlsZGVyOwog
ICAgIHVybFN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgidXNlci1zY3JpcHQ6Iik7CiAgICAg
dXJsU3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIoKytpZGVudGlmaWVyKTsKLSAgICByZXR1cm4g
eyB7IH0sIHVybFN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSB9OworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHVybFN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHsgeyB9LCAq
c3RyaW5nIH07CisgICAgQ1JBU0goKTsKIH0KIAogVXNlclNjcmlwdDo6VXNlclNjcmlwdChXZWJD
b3JlOjpVc2VyU2NyaXB0IHVzZXJTY3JpcHQsIEFQSTo6VXNlckNvbnRlbnRXb3JsZCYgd29ybGQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVXNlclN0eWxlU2hl
ZXQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJTdHlsZVNoZWV0LmNw
cAppbmRleCAxZDU5NWJiLi42M2FjMGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJVXNlclN0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElVc2VyU3R5bGVTaGVldC5jcHAKQEAgLTM3LDcgKzM3LDkgQEAgV2ViQ29yZTo6
VVJMIFVzZXJTdHlsZVNoZWV0OjpnZW5lcmF0ZVVuaXF1ZVVSTCgpCiAgICAgU3RyaW5nQnVpbGRl
ciB1cmxTdHJpbmdCdWlsZGVyOwogICAgIHVybFN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
dXNlci1zdHlsZS1zaGVldDoiKTsKICAgICB1cmxTdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcigr
K2lkZW50aWZpZXIpOwotICAgIHJldHVybiB7IHsgfSwgdXJsU3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpIH07CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdXJsU3RyaW5nQnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4geyB7IH0sICpzdHJpbmcgfTsKKyAgICBDUkFTSCgpOwogfQogCiBV
c2VyU3R5bGVTaGVldDo6VXNlclN0eWxlU2hlZXQoV2ViQ29yZTo6VXNlclN0eWxlU2hlZXQgdXNl
clN0eWxlU2hlZXQsIEFQSTo6VXNlckNvbnRlbnRXb3JsZCYgd29ybGQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcApp
bmRleCA4YzIxYzI0Li45MTZkZDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKQEAgLTIzMiw4ICsyMzIsMTAg
QEAgU3RyaW5nIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6U25hcHNob3RSZW1vdmFsVHJhY2tlcjo6
ZXZlbnRzRGVzY3JpcHRpb24oRXZlbnRzIGUKIAogICAgIGlmIChldmVudCAmIFZpZXdHZXN0dXJl
Q29udHJvbGxlcjo6U25hcHNob3RSZW1vdmFsVHJhY2tlcjo6U2Nyb2xsUG9zaXRpb25SZXN0b3Jh
dGlvbikKICAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kKCJTY3JvbGxQb3NpdGlvblJlc3RvcmF0
aW9uICIpOwotICAgIAotICAgIHJldHVybiBkZXNjcmlwdGlvbi50b1N0cmluZygpOworCisgICAg
aWYgKGF1dG8gc3RyaW5nID0gZGVzY3JpcHRpb24udG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcAppbmRleCA2MDA2YTAyLi4xMjhmNTY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAKQEAgLTQ5Myw3
ICs0OTMsOSBAQCBjb25zdCBjaGFyKiBXZWJCYWNrRm9yd2FyZExpc3Q6OmxvZ2dpbmdTdHJpbmco
KQogICAgICAgICBidWlsZGVyLmFwcGVuZChtX2VudHJpZXNbaV0tPmxvZ2dpbmdTdHJpbmcoKSk7
CiAgICAgfQogCi0gICAgcmV0dXJuIGRlYnVnU3RyaW5nKCJcbiIsIGJ1aWxkZXIudG9TdHJpbmco
KSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gZGVidWdTdHJpbmcoIlxuIiwgKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KICNlbmRp
ZiAvLyAhTE9HX0RJU0FCTEVECiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcAppbmRleCBjYTU0OGJlLi4xN2JjMzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC03MTAsNyArNzEwLDEwIEBAIHZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShjb25zdCBJUEM6OlN0cmluZ1JlZmVyZW5j
ZSYgbWVzc2FnCiAgICAgbWVzc2FnZU5hbWVTdHJpbmdCdWlsZGVyLmFwcGVuZCgnLicpOwogICAg
IG1lc3NhZ2VOYW1lU3RyaW5nQnVpbGRlci5hcHBlbmQobWVzc2FnZU5hbWUuZGF0YSgpLCBtZXNz
YWdlTmFtZS5zaXplKCkpOwogCi0gICAgc19pbnZhbGlkTWVzc2FnZUNhbGxiYWNrKHRvQVBJKEFQ
STo6U3RyaW5nOjpjcmVhdGUobWVzc2FnZU5hbWVTdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpLnB0
cigpKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWVzc2FnZU5hbWVTdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgIHNfaW52YWxpZE1lc3NhZ2VDYWxsYmFjayh0b0FQSShBUEk6OlN0
cmluZzo6Y3JlYXRlKCpzdHJpbmcpLnB0cigpKSk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgp
OwogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpwcm9jZXNzRGlkQ2FjaGVQYWdlKFdlYlByb2Nl
c3NQcm94eSogcHJvY2VzcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwCmluZGV4IDQxNTZkODMuLmVmMDlkYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTcwLDcgKzE3MCwxMCBAQCB2b2lkIFdlYlByb2Nl
c3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMm
IGxhdW5jaE9wdAogICAgICAgICAgICAgICAgIGxhbmd1YWdlU3RyaW5nLmFwcGVuZCgnLCcpOwog
ICAgICAgICAgICAgbGFuZ3VhZ2VTdHJpbmcuYXBwZW5kKG92ZXJyaWRlTGFuZ3VhZ2VzW2ldKTsK
ICAgICAgICAgfQotICAgICAgICBsYXVuY2hPcHRpb25zLmV4dHJhSW5pdGlhbGl6YXRpb25EYXRh
LmFkZChBU0NJSUxpdGVyYWwoIk92ZXJyaWRlTGFuZ3VhZ2VzIiksIGxhbmd1YWdlU3RyaW5nLnRv
U3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBsYW5ndWFnZVN0cmluZy50b1N0
cmluZygpKQorICAgICAgICAgICAgbGF1bmNoT3B0aW9ucy5leHRyYUluaXRpYWxpemF0aW9uRGF0
YS5hZGQoQVNDSUlMaXRlcmFsKCJPdmVycmlkZUxhbmd1YWdlcyIpLCAqc3RyaW5nKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBsYXVuY2hPcHRpb25z
Lm5vblZhbGlkSW5qZWN0ZWRDb2RlQWxsb3dlZCA9IHNob3VsZEFsbG93Tm9uVmFsaWRJbmplY3Rl
ZENvZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmluZGV4IDdmYTg5MTAuLjVkOWI3NjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlLmNwcApAQCAtMjI3LDcgKzIyNywxMCBAQCB2b2lkIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6cmVtb3ZlRGF0YVJlY29yZHMoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPgogICAgICAgICAgICAgYXBwZW5kV2l0aERlbGltaXRlcihkb21haW5zVG9SZW1vdmVEYXRh
UmVjb3Jkc0ZvckJ1aWxkZXIsIGRvbWFpbiwgaXNGaXJzdEl0ZW0pOwogICAgICAgICAgICAgaXNG
aXJzdEl0ZW0gPSBmYWxzZTsKICAgICAgICAgfQotICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1ZywgIkFib3V0IHRvIHJlbW92ZSBkYXRhIHJlY29yZHMg
Zm9yICV7cHVibGljfXMuIiwgZG9tYWluc1RvUmVtb3ZlRGF0YVJlY29yZHNGb3JCdWlsZGVyLnRv
U3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGRvbWFp
bnNUb1JlbW92ZURhdGFSZWNvcmRzRm9yQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAg
UkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWcsICJBYm91dCB0byBy
ZW1vdmUgZGF0YSByZWNvcmRzIGZvciAle3B1YmxpY31zLiIsIHN0cmluZy0+dXRmOCgpLmRhdGEo
KSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogI2VuZGlmCiAK
QEAgLTEwNDQsNyArMTA0NywxMCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZTo6dXBkYXRlQ29va2llUGFydGl0aW9uaW5nKENvbXBsZXRpb25IYW5kbGVyPAogICAgICAgICAg
ICAgICAgIGFwcGVuZFdpdGhEZWxpbWl0ZXIoZG9tYWluc1RvUGFydGl0aW9uQnVpbGRlciwgZG9t
YWluLCBpc0ZpcnN0RG9tYWluKTsKICAgICAgICAgICAgICAgICBpc0ZpcnN0RG9tYWluID0gZmFs
c2U7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEZWJ1ZywgIkFib3V0IHRvIHBhcnRpdGlvbiBjb29raWVzIGluIHRoaXJk
LXBhcnR5IGNvbnRleHRzIGZvciAle3B1YmxpY31zLiIsIGRvbWFpbnNUb1BhcnRpdGlvbkJ1aWxk
ZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGRvbWFpbnNUb1BhcnRpdGlvbkJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAg
ICBSRUxFQVNFX0xPR19JTkZPKFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1ZywgIkFib3V0IHRv
IHBhcnRpdGlvbiBjb29raWVzIGluIHRoaXJkLXBhcnR5IGNvbnRleHRzIGZvciAle3B1YmxpY31z
LiIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICghZG9tYWluc1RvQmxvY2su
aXNFbXB0eSgpKSB7CkBAIC0xMDU0LDcgKzEwNjAsMTAgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU6OnVwZGF0ZUNvb2tpZVBhcnRpdGlvbmluZyhDb21wbGV0aW9uSGFuZGxl
cjwKICAgICAgICAgICAgICAgICBhcHBlbmRXaXRoRGVsaW1pdGVyKGRvbWFpbnNUb0Jsb2NrQnVp
bGRlciwgZG9tYWluLCBpc0ZpcnN0RG9tYWluKTsKICAgICAgICAgICAgICAgICBpc0ZpcnN0RG9t
YWluID0gZmFsc2U7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZP
KFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1ZywgIkFib3V0IHRvIGJsb2NrIGNvb2tpZXMgaW4g
dGhpcmQtcGFydHkgY29udGV4dHMgZm9yICV7cHVibGljfXMuIiwgZG9tYWluc1RvQmxvY2tCdWls
ZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBkb21haW5zVG9CbG9ja0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICBS
RUxFQVNFX0xPR19JTkZPKFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1ZywgIkFib3V0IHRvIGJs
b2NrIGNvb2tpZXMgaW4gdGhpcmQtcGFydHkgY29udGV4dHMgZm9yICV7cHVibGljfXMuIiwgc3Ry
aW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBD
UkFTSCgpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKCFkb21haW5zVG9OZWl0aGVyUGFydGl0
aW9uTm9yQmxvY2suaXNFbXB0eSgpKSB7CkBAIC0xMDY0LDcgKzEwNzMsMTAgQEAgdm9pZCBXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnVwZGF0ZUNvb2tpZVBhcnRpdGlvbmluZyhDb21w
bGV0aW9uSGFuZGxlcjwKICAgICAgICAgICAgICAgICBhcHBlbmRXaXRoRGVsaW1pdGVyKGRvbWFp
bnNUb05laXRoZXJQYXJ0aXRpb25Ob3JCbG9ja0J1aWxkZXIsIGRvbWFpbiwgaXNGaXJzdERvbWFp
bik7CiAgICAgICAgICAgICAgICAgaXNGaXJzdERvbWFpbiA9IGZhbHNlOwogICAgICAgICAgICAg
fQotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVi
dWcsICJBYm91dCB0byBuZWl0aGVyIHBhcnRpdGlvbiBub3IgYmxvY2sgY29va2llcyBpbiB0aGly
ZC1wYXJ0eSBjb250ZXh0cyBmb3IgJXtwdWJsaWN9cy4iLCBkb21haW5zVG9OZWl0aGVyUGFydGl0
aW9uTm9yQmxvY2tCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSBkb21haW5zVG9OZWl0aGVyUGFydGl0aW9uTm9yQmxvY2tCdWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGVidWcsICJBYm91dCB0byBuZWl0aGVyIHBhcnRpdGlvbiBub3IgYmxv
Y2sgY29va2llcyBpbiB0aGlyZC1wYXJ0eSBjb250ZXh0cyBmb3IgJXtwdWJsaWN9cy4iLCBzdHJp
bmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENS
QVNIKCk7CiAgICAgICAgIH0KICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeS5j
cHAKaW5kZXggYmI3NDQwYy4uNTIwYWI3NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnkuY3Bw
CkBAIC0xNzksMjIgKzE3OSwyMyBAQCBzdGF0aWMgdm9pZCBzdWJtaXRUb3BMaXN0KHVuc2lnbmVk
IG51bWJlck9mUmVzb3VyY2VzRnJvbVRoZVRvcCwgY29uc3QgVmVjdG9yPFByZQogICAgIFN0cmlu
Z0J1aWxkZXIgcHJlYW1ibGVCdWlsZGVyOwogICAgIHByZWFtYmxlQnVpbGRlci5hcHBlbmRMaXRl
cmFsKCJ0b3AiKTsKICAgICBwcmVhbWJsZUJ1aWxkZXIuYXBwZW5kTnVtYmVyKG51bWJlck9mUmVz
b3VyY2VzRnJvbVRoZVRvcCk7Ci0gICAgU3RyaW5nIGRlc2NyaXB0aW9uUHJlYW1ibGUgPSBwcmVh
bWJsZUJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICAKLSAgICB3ZWJQYWdlUHJveHkubG9nRGlhZ25v
c3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRT
dGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCksIGRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiUHJldmFsZW50
UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbiIsCi0gICAgICAgIHRvcFByZXZhbGVudFJlc291
cmNlc1dpdGhVc2VySW50ZXJhY3Rpb24sIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVl
cywgU2hvdWxkU2FtcGxlOjpObyk7Ci0gICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNz
YWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1RlbGVtZXRyeUtleSgpLCBkZXNjcmlwdGlvblByZWFtYmxlICsgIlN1YmZyYW1lVW5kZXJUb3BG
cmFtZU9yaWdpbnMiLAotICAgICAgICB0b3BTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5zLCBz
aWduaWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOwotICAg
IHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9n
Z2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgZGVzY3JpcHRp
b25QcmVhbWJsZSArICJTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW5zIiwKLSAgICAgICAg
dG9wU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2lucywgc2lnbmlmaWNhbnRGaWd1cmVzRm9y
TG9nZ2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKLSAgICB3ZWJQYWdlUHJveHkubG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxv
YWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCksIGRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiU3VicmVz
b3VyY2VVbmlxdWVSZWRpcmVjdHNUbyIsCi0gICAgICAgIHRvcFN1YnJlc291cmNlVW5pcXVlUmVk
aXJlY3RzVG8sIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2FtcGxl
OjpObyk7Ci0gICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERp
YWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgp
LCBkZXNjcmlwdGlvblByZWFtYmxlICsgIk51bWJlck9mVGltZXNEYXRhUmVjb3Jkc1JlbW92ZWQi
LAotICAgICAgICB0b3BOdW1iZXJPZlRpbWVzRGF0YVJlY29yZHNSZW1vdmVkLCBzaWduaWZpY2Fu
dEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOwotICAgIHdlYlBhZ2VQ
cm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6
OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgZGVzY3JpcHRpb25QcmVhbWJs
ZSArICJOdW1iZXJPZlRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1VzZXJJbnRlcmFjdGlv
biIsCi0gICAgICAgIHRvcE51bWJlck9mVGltZXNBY2Nlc3NlZEFzRmlyc3RQYXJ0eUR1ZVRvVXNl
ckludGVyYWN0aW9uLCBzaWduaWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNh
bXBsZTo6Tm8pOwotICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1
ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlL
ZXkoKSwgZGVzY3JpcHRpb25QcmVhbWJsZSArICJOdW1iZXJPZlRpbWVzQWNjZXNzZWRBc0ZpcnN0
UGFydHlEdWVUb1N0b3JhZ2VBY2Nlc3NBUEkiLAotICAgICAgICB0b3BOdW1iZXJPZlRpbWVzQWNj
ZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1N0b3JhZ2VBY2Nlc3NBUEksIHNpZ25pZmljYW50RmlndXJl
c0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2FtcGxlOjpObyk7CisgICAgaWYgKGF1dG8gZGVzY3Jp
cHRpb25QcmVhbWJsZSA9IHByZWFtYmxlQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIHdl
YlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2lu
Z0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgKmRlc2NyaXB0aW9u
UHJlYW1ibGUgKyAiUHJldmFsZW50UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbiIsCisgICAg
ICAgICAgICB0b3BQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uLCBzaWduaWZp
Y2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOworICAgICAgICB3
ZWJQYWdlUHJveHkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCksICpkZXNjcmlwdGlv
blByZWFtYmxlICsgIlN1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbnMiLAorICAgICAgICAgICAg
dG9wU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lucywgc2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9n
Z2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICAgICAgd2ViUGFnZVByb3h5LmxvZ0Rp
YWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VM
b2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgpLCAqZGVzY3JpcHRpb25QcmVhbWJsZSArICJTdWJy
ZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW5zIiwKKyAgICAgICAgICAgIHRvcFN1YnJlc291cmNl
VW5kZXJUb3BGcmFtZU9yaWdpbnMsIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywg
U2hvdWxkU2FtcGxlOjpObyk7CisgICAgICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NUZWxlbWV0cnlLZXkoKSwgKmRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiU3VicmVzb3VyY2VVbmlx
dWVSZWRpcmVjdHNUbyIsCisgICAgICAgICAgICB0b3BTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0
c1RvLCBzaWduaWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8p
OworICAgICAgICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlh
Z25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCks
ICpkZXNjcmlwdGlvblByZWFtYmxlICsgIk51bWJlck9mVGltZXNEYXRhUmVjb3Jkc1JlbW92ZWQi
LAorICAgICAgICAgICAgdG9wTnVtYmVyT2ZUaW1lc0RhdGFSZWNvcmRzUmVtb3ZlZCwgc2lnbmlm
aWNhbnRGaWd1cmVzRm9yTG9nZ2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICAgICAg
d2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dn
aW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgpLCAqZGVzY3JpcHRp
b25QcmVhbWJsZSArICJOdW1iZXJPZlRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1VzZXJJ
bnRlcmFjdGlvbiIsCisgICAgICAgICAgICB0b3BOdW1iZXJPZlRpbWVzQWNjZXNzZWRBc0ZpcnN0
UGFydHlEdWVUb1VzZXJJbnRlcmFjdGlvbiwgc2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9nZ2VkVmFs
dWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICAgICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1RlbGVtZXRyeUtleSgpLCAqZGVzY3JpcHRpb25QcmVhbWJsZSArICJOdW1iZXJPZlRp
bWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1N0b3JhZ2VBY2Nlc3NBUEkiLAorICAgICAgICAg
ICAgdG9wTnVtYmVyT2ZUaW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9TdG9yYWdlQWNjZXNz
QVBJLCBzaWduaWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8p
OworICAgIH0gZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogICAgIAogc3RhdGljIHZvaWQgc3Vi
bWl0VG9wTGlzdHMoY29uc3QgVmVjdG9yPFByZXZhbGVudFJlc291cmNlVGVsZW1ldHJ5PiYgc29y
dGVkUHJldmFsZW50UmVzb3VyY2VzLCBjb25zdCBWZWN0b3I8UHJldmFsZW50UmVzb3VyY2VUZWxl
bWV0cnk+JiBzb3J0ZWRQcmV2YWxlbnRSZXNvdXJjZXNXaXRob3V0VXNlckludGVyYWN0aW9uLCBX
ZWJQYWdlUHJveHkmIHdlYlBhZ2VQcm94eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNz
LmNwcAppbmRleCAwYmNjZmFmLi5hZGE1ZjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2Vy
RnVuY3MuY3BwCkBAIC0xMzgsNyArMTM4LDkgQEAgc3RhdGljIFN0cmluZyBjYXBpdGFsaXplUkZD
ODIySGVhZGVyRmllbGROYW1lKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgY2FwaXRhbGl6ZUNoYXJhY3RlciA9IGZhbHNlOwogICAgIH0KLSAgICByZXR1cm4g
cmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBI
VFRQSGVhZGVyTWFwIHBhcnNlUkZDODIySGVhZGVyRmllbGRzKGNvbnN0IGNoYXIqIGJ5dGVzLCB1
bnNpZ25lZCBsZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblZpZXcuY3BwCmluZGV4IGE3ZmNhY2UuLjc5OWFkOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC0yMTIsNyArMjEyLDkgQEAg
c3RhdGljIFN0cmluZyBidWlsZEhUVFBIZWFkZXJzKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBsb25nIGxvbmcmIGV4cGUKICAgICBpZiAoIWNvbnRlbnRFbmNvZGluZy5pc051bGwo
KSAmJiBjb250ZW50RW5jb2RpbmcgIT0gImlkZW50aXR5IikKICAgICAgICAgZXhwZWN0ZWRDb250
ZW50TGVuZ3RoID0gLTE7CiAKLSAgICByZXR1cm4gaGVhZGVyLnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gaGVhZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyB1aW50MzJfdCBsYXN0TW9kaWZpZWREYXRlTVMo
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggMTZhYmU1NS4uNDg5YzhjZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAtMzUxLDcg
KzM1MSw5IEBAIFN0cmluZyBXZWJGcmFtZTo6Y29udGVudHNBc1N0cmluZygpIGNvbnN0CiAgICAg
ICAgICAgICBidWlsZGVyLmFwcGVuZCh3ZWJGcmFtZS0+Y29udGVudHNBc1N0cmluZygpKTsKICAg
ICAgICAgfQogICAgICAgICAvLyBGSVhNRTogSXQgbWF5IG1ha2Ugc2Vuc2UgdG8gdXNlIHRvU3Ry
aW5nUHJlc2VydmVDYXBhY2l0eSgpIGhlcmUuCi0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3Ry
aW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAg
IERvY3VtZW50KiBkb2N1bWVudCA9IG1fY29yZUZyYW1lLT5kb2N1bWVudCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCmluZGV4IDI1MmViMTAuLjJiNzI2ZDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOC0wNC0yNiAgSkYgQmFzdGllbiAgPGpm
YmFzdGllbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3RyaW5nQnVpbGRlciBpcyBmYWxsaWJsZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MDQ4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVhY2ggU3Ry
aW5nQnVpbGRlciB0aGF0IGl0IGlzIGZhbGxpYmxlCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhU
TUxSZXByZXNlbnRhdGlvbi5tbToKKyAgICAgICAgKHJlZ0V4cEZvckxhYmVscyk6CisKIDIwMTgt
MDQtMzAgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBz
b21lIEMrKzE3IGZlYXR1cmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tCmluZGV4IDE5MTgzNjMuLjJiMjdhNTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFJlcHJl
c2VudGF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRN
TFJlcHJlc2VudGF0aW9uLm1tCkBAIC0zOTQsNyArMzk0LDEwIEBAIHN0YXRpYyBSZWd1bGFyRXhw
cmVzc2lvbiogcmVnRXhwRm9yTGFiZWxzKE5TQXJyYXkgKmxhYmVscykKICAgICAgICAgICAgICAg
ICBwYXR0ZXJuLmFwcGVuZExpdGVyYWwoIlxcYiIpOwogICAgICAgICB9CiAgICAgICAgIHBhdHRl
cm4uYXBwZW5kKCcpJyk7Ci0gICAgICAgIHJlc3VsdCA9IG5ldyBSZWd1bGFyRXhwcmVzc2lvbihw
YXR0ZXJuLnRvU3RyaW5nKCksIEpTQzo6WWFycjo6VGV4dENhc2VJbnNlbnNpdGl2ZSk7CisgICAg
ICAgIGlmIChhdXRvIHN0cmluZyA9IHBhdHRlcm4udG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJl
c3VsdCA9IG5ldyBSZWd1bGFyRXhwcmVzc2lvbigqc3RyaW5nLCBKU0M6OllhcnI6OlRleHRDYXNl
SW5zZW5zaXRpdmUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0K
IAogICAgIC8vIGFkZCByZWdleHAgdG8gdGhlIGNhY2hlLCBtYWtpbmcgc3VyZSBpdCBpcyBhdCB0
aGUgZnJvbnQgZm9yIExSVSBvcmRlcmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vQWNjZXNzaWJsZUJhc2UuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQWNjZXNz
aWJsZUJhc2UuY3BwCmluZGV4IDdlM2IxODMuLmE4MWUzMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0FjY2Vzc2libGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9BY2Nlc3NpYmxlQmFzZS5jcHAKQEAgLTYwOSw3ICs2MDksMTAgQEAgSFJFU1VMVCBB
Y2Nlc3NpYmxlQmFzZTo6Z2V0X2FjY0tleWJvYXJkU2hvcnRjdXQoVkFSSUFOVCB2Q2hpbGQsIF9f
ZGVyZWZfb3B0X291dAogICAgICAgICAgICAgYWNjZXNzS2V5TW9kaWZpZXJzQnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJTaGlmdCsiKTsKICAgICAgICAgaWYgKG1vZGlmaWVycy5jb250YWlucyhQbGF0
Zm9ybUV2ZW50OjpNb2RpZmllcjo6TWV0YUtleSkpCiAgICAgICAgICAgICBhY2Nlc3NLZXlNb2Rp
ZmllcnNCdWlsZGVyLmFwcGVuZExpdGVyYWwoIldpbisiKTsKLSAgICAgICAgYWNjZXNzS2V5TW9k
aWZpZXJzID0gYWNjZXNzS2V5TW9kaWZpZXJzQnVpbGRlci50b1N0cmluZygpOworICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBhY2Nlc3NLZXlNb2RpZmllcnNCdWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICBhY2Nlc3NLZXlNb2RpZmllcnMgPSAqc3RyaW5nOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICAqc2hvcnRjdXQgPSBCU3RyaW5nKFN0cmlu
ZyhhY2Nlc3NLZXlNb2RpZmllcnMgKyBhY2Nlc3NLZXkpKS5yZWxlYXNlKCk7CiAgICAgcmV0dXJu
IFNfT0s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9QbHVnaW5zL1BsdWdp
blN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9QbHVnaW5zL1BsdWdpblN0cmVh
bS5jcHAKaW5kZXggZjI1NjY0ZC4uYzk5ODA1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vUGx1Z2lucy9QbHVnaW5TdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1BsdWdpbnMvUGx1Z2luU3RyZWFtLmNwcApAQCAtMTY3LDcgKzE2NywxMCBAQCB2b2lk
IFBsdWdpblN0cmVhbTo6c3RhcnRTdHJlYW0oKQogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmQoJ1xuJyk7CiAgICAgICAgIH0KIAotICAgICAgICBtX2hlYWRlcnMgPSBzdHJpbmdCdWls
ZGVyLnRvU3RyaW5nKCkudXRmOCgpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBtX2hlYWRlcnMgPSBzdHJpbmctPnV0Zjgo
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKIAogICAgICAgICAvLyBJZiB0
aGUgY29udGVudCBpcyBlbmNvZGVkIChtb3N0IGxpa2VseSBjb21wcmVzc2VkKSwgdGhlbiBkb24n
dCBzZW5kIGl0cyBsZW5ndGggdG8gdGhlIHBsdWdpbiwKICAgICAgICAgLy8gd2hpY2ggaXMgb25s
eSBpbnRlcmVzdGVkIGluIHRoZSBkZWNvZGVkIGxlbmd0aCwgbm90IHlldCBrbm93biBhdCB0aGUg
bW9tZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0U3RhdGlz
dGljcy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJLaXRTdGF0aXN0aWNzLmNwcApp
bmRleCA5MDAyYzkyLi5jNGI4YmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJLaXRTdGF0aXN0aWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJL
aXRTdGF0aXN0aWNzLmNwcApAQCAtMTU2LDYgKzE1Niw5IEBAIEhSRVNVTFQgV2ViS2l0U3RhdGlz
dGljczo6Y29tQ2xhc3NOYW1lQ291bnRzKF9fZGVyZWZfb3V0X29wdCBCU1RSKiBvdXRwdXQpCiAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKHNsb3Qua2V5KTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
J1xuJyk7CiAgICAgfQotICAgICpvdXRwdXQgPSBCU3RyaW5nKGJ1aWxkZXIudG9TdHJpbmcoKSku
cmVsZWFzZSgpOwotICAgIHJldHVybiBTX09LOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmcoKSkgeworICAgICAgICAqb3V0cHV0ID0gQlN0cmluZygqc3RyaW5nKS5yZWxl
YXNlKCk7CisgICAgICAgIHJldHVybiBTX09LOworICAgIH0KKyAgICBDUkFTSCgpOwogfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGZhZWQ1NzIu
LmM4ZDU1NDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw4MSBAQAorMjAxOC0wNC0yNiAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBh
cHBsZS5jb20+CisKKyAgICAgICAgU3RyaW5nQnVpbGRlciBpcyBmYWxsaWJsZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MDQ4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RyaW5nQnVpbGRlciBjYW4g
ZmFpbCB3aGVuIGFsbG9jYXRpbmcgbWVtb3J5LiBTdHJpbmdCdWlsZGVyIGlzCisgICAgICAgIG1v
c3RseSB1c2VkIHdpdGggdXNlciBpbnB1dCwgd2hpY2ggb2Z0ZW4gbWVhbnMgdGhhdCBqdXN0IGNy
YXNoaW5nCisgICAgICAgIGlzbid0IHRoZSByaWdodCBvdXRjb21lLiBPdXIgZnV6emVycyBvZnRl
biBlbmNvdW50ZXIgc3VjaCB0aGluZ3MKKyAgICAgICAgZm9yIEphdmFTY3JpcHRDb3JlLCBhbmQg
c28gZmFyIHdlJ3ZlIGFwcGxpZWQgcG9pbnQgc29sdXRpb25zLiBObworICAgICAgICBtb3JlIQor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHA6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpleHBlY3RCdWlsZGVyQ29udGVudCk6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpleHBlY3RFbXB0eSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9u
aXRvci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpjcmVhdGVDb21tYW5kKToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0xvZ2dpbmcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6TG9nZ2luZ1Rl
c3Q6Om91dHB1dCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6TG9nT2JzZXJ2ZXI6OmxvZyk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL1RleHRDb2RlYy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjp0
ZXN0RGVjb2RlKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1dURlN0cmluZ1V0aWxpdGllcy5o
OgorICAgICAgICAodXRmMTZTdHJpbmcpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdUUjo6ZHVtcFBh
dGgpOgorICAgICAgICAoV1RSOjpyYW5nZVRvU3RyKToKKyAgICAgICAgKFdUUjo6c3R5bGVEZWNU
b1N0cik6CisgICAgICAgIChXVFI6OnNlY3VyaXR5T3JpZ2luVG9TdHIpOgorICAgICAgICAoV1RS
OjpmcmFtZVRvU3RyKToKKyAgICAgICAgKFdUUjo6ZHVtcExvYWRFdmVudCk6CisgICAgICAgIChX
VFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZHVtcCk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVu
ZGxlUGFnZTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUpOgorICAgICAgICAoV1RSOjpJbmplY3Rl
ZEJ1bmRsZVBhZ2U6OndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSk6CisgICAgICAg
IChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUp
OgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxTZW5kUmVxdWVzdEZvckZy
YW1lKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlUmVzcG9u
c2VGb3JSZXNvdXJjZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmlu
aXNoTG9hZEZvclJlc291cmNlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpk
aWRGYWlsTG9hZEZvclJlc291cmNlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdl
OjpzaG91bGRDYWNoZVJlc3BvbnNlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdl
OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKFdUUjo6SW5qZWN0
ZWRCdW5kbGVQYWdlOjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CisgICAgICAgIChXVFI6Oklu
amVjdGVkQnVuZGxlUGFnZTo6d2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUpOgorICAgICAgICAoV1RS
OjpJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxTZXRTdGF0dXNiYXJUZXh0KToKKyAgICAgICAgKFdU
Ujo6SW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUnVuSmF2YVNjcmlwdEFsZXJ0KToKKyAgICAgICAg
KFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUnVuSmF2YVNjcmlwdENvbmZpcm0pOgorICAg
ICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxSdW5KYXZhU2NyaXB0UHJvbXB0KToK
KyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWFjaEFwcGxpY2F0aW9uQ2Fj
aGVPcmlnaW5RdW90YSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRXhj
ZWVkRGF0YWJhc2VRdW90YSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6c2hv
dWxkQmVnaW5FZGl0aW5nKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91
bGRFbmRFZGl0aW5nKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRJ
bnNlcnROb2RlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRJbnNl
cnRUZXh0KToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGREZWxldGVS
YW5nZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkQ2hhbmdlU2Vs
ZWN0ZWRSYW5nZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkQXBw
bHlTdHlsZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQmVnaW5FZGl0
aW5nKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRFbmRFZGl0aW5nKToK
KyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRDaGFuZ2UpOgorICAgICAgICAo
V1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZENoYW5nZVNlbGVjdGlvbik6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAg
KFdUUjo6VGVzdFJ1bm5lcjo6c3RhdGlzdGljc0RpZFJ1blRlbGVtZXRyeUNhbGxiYWNrKToKKyAg
ICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6Y2FsbERpZFJlY2VpdmVBbGxTdG9yYWdlQWNjZXNzRW50
cmllc0NhbGxiYWNrKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmRlY2lkZURlc3RpbmF0aW9uV2l0
aFN1Z2dlc3RlZEZpbGVuYW1lKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmRvd25s
b2FkRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0VG9VUkwpOgorICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6ZG93bmxvYWREaWRGYWlsKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rl
c3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmR1bXBSZXN1
bHRzKToKKwogMjAxOC0wNC0zMCAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgVXNlIHNvbWUgQysrMTcgZmVhdHVyZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkVGFzay5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZFRhc2suY3BwCmluZGV4IDUyYzBiY2QuLmY2MWZhMzIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkVGFz
ay5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRUYXNr
LmNwcApAQCAtODgsNyArODgsOSBAQCBzdHJ1Y3QgTGlmZXRpbWVMb2dnZXIgewogICAgICAgICBi
dWlsZGVyLmFwcGVuZCgiLSIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmc6Om51bWJl
cihtb3ZlR2VuZXJhdGlvbikpOwogCi0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7
CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIGNvbnN0
IGNoYXImIG5hbWUgeyAqIjxkZWZhdWx0PiIgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKaW5kZXggNmI4ZTA1Yy4uNzg2NzUwMCAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKQEAgLTEs
NiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzks
MTYgKzM5LDE2IEBAIHN0YXRpYyB2b2lkIGV4cGVjdEJ1aWxkZXJDb250ZW50KGNvbnN0IFN0cmlu
ZyYgZXhwZWN0ZWQsIGNvbnN0IFN0cmluZ0J1aWxkZXImIGJ1CiAgICAgLy8gTm90IHVzaW5nIGJ1
aWxkZXIudG9TdHJpbmcoKSBvciBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIGJl
Y2F1c2UgdGhleSBhbGwKICAgICAvLyBjaGFuZ2UgaW50ZXJuYWwgc3RhdGUgb2YgYnVpbGRlci4K
ICAgICBpZiAoYnVpbGRlci5pczhCaXQoKSkKLSAgICAgICAgRVhQRUNUX0VRKGV4cGVjdGVkLCBT
dHJpbmcoYnVpbGRlci5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmxlbmd0aCgpKSk7CisgICAgICAg
IEVYUEVDVF9FUShleHBlY3RlZCwgU3RyaW5nKGJ1aWxkZXIuY2hhcmFjdGVyczgoKS52YWx1ZSgp
LCBidWlsZGVyLmxlbmd0aCgpKSk7CiAgICAgZWxzZQotICAgICAgICBFWFBFQ1RfRVEoZXhwZWN0
ZWQsIFN0cmluZyhidWlsZGVyLmNoYXJhY3RlcnMxNigpLCBidWlsZGVyLmxlbmd0aCgpKSk7Cisg
ICAgICAgIEVYUEVDVF9FUShleHBlY3RlZCwgU3RyaW5nKGJ1aWxkZXIuY2hhcmFjdGVyczE2KCku
dmFsdWUoKSwgYnVpbGRlci5sZW5ndGgoKSkpOwogfQogCiB2b2lkIGV4cGVjdEVtcHR5KGNvbnN0
IFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIpCiB7CiAgICAgRVhQRUNUX0VRKDBVLCBidWlsZGVyLmxl
bmd0aCgpKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLmlzRW1wdHkoKSk7Ci0gICAgRVhQRUNU
X0VRKDAsIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CisgICAgRVhQRUNUX0VRKDAsIGJ1aWxkZXIu
Y2hhcmFjdGVyczgoKS52YWx1ZSgpKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRGVm
YXVsdENvbnN0cnVjdG9yKQpAQCAtNzEsMjQgKzcxLDI0IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRl
c3QsIEFwcGVuZCkKICAgICBidWlsZGVyLmFwcGVuZCgnIycpOwogICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKIAotICAgIGJ1aWxkZXIudG9T
dHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgorICAgIGJ1aWxkZXIudG9TdHJp
bmcoKS52YWx1ZSgpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyMTsKICAgICBidWlsZGVyLmFwcGVuZCgiIiwgMCk7CiAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1aWxkZXIpOwotICAgIGJ1aWxkZXIx
LmFwcGVuZChidWlsZGVyLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIubGVuZ3RoKCkpOworICAgIGJ1
aWxkZXIxLmFwcGVuZChidWlsZGVyLmNoYXJhY3RlcnM4KCkudmFsdWUoKSwgYnVpbGRlci5sZW5n
dGgoKSk7CiAgICAgYnVpbGRlcjEuYXBwZW5kKCJYWVoiKTsKLSAgICBidWlsZGVyLmFwcGVuZChi
dWlsZGVyMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyMS5sZW5ndGgoKSk7CisgICAgYnVpbGRlci5h
cHBlbmQoYnVpbGRlcjEuY2hhcmFjdGVyczgoKS52YWx1ZSgpLCBidWlsZGVyMS5sZW5ndGgoKSk7
CiAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3ODlh
YmNkZWZnI1hZWiIsIGJ1aWxkZXIpOwogCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyMjsKICAg
ICBidWlsZGVyMi5yZXNlcnZlQ2FwYWNpdHkoMTAwKTsKICAgICBidWlsZGVyMi5hcHBlbmQoInh5
eiIpOwotICAgIGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzID0gYnVpbGRlcjIuY2hhcmFjdGVyczgo
KTsKKyAgICBjb25zdCBMQ2hhciogY2hhcmFjdGVycyA9IGJ1aWxkZXIyLmNoYXJhY3RlcnM4KCku
dmFsdWUoKTsKICAgICBidWlsZGVyMi5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKLSAgICBBU1NFUlRf
RVEoY2hhcmFjdGVycywgYnVpbGRlcjIuY2hhcmFjdGVyczgoKSk7Ci0gICAgYnVpbGRlcjIudG9T
dHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcgd2l0aCBi
dWZmZXIgcHJlc2VydmVkLgorICAgIEFTU0VSVF9FUShjaGFyYWN0ZXJzLCBidWlsZGVyMi5jaGFy
YWN0ZXJzOCgpLnZhbHVlKCkpOworICAgIGJ1aWxkZXIyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0
eSgpLnZhbHVlKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcgd2l0aCBidWZmZXIgcHJlc2Vy
dmVkLgogICAgIGJ1aWxkZXIyLmFwcGVuZCgiYWJjZCIpOwotICAgIEFTU0VSVF9FUShjaGFyYWN0
ZXJzLCBidWlsZGVyMi5jaGFyYWN0ZXJzOCgpKTsKKyAgICBBU1NFUlRfRVEoY2hhcmFjdGVycywg
YnVpbGRlcjIuY2hhcmFjdGVyczgoKS52YWx1ZSgpKTsKIAogICAgIC8vIFRlc3QgYXBwZW5kaW5n
IFVDaGFyMzIgY2hhcmFjdGVycyB0byBTdHJpbmdCdWlsZGVyLgogICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlckZvclVDaGFyMzJBcHBlbmQ7CkBAIC0xMDUsOSArMTA1LDkgQEAgVEVTVChTdHJpbmdC
dWlsZGVyVGVzdCwgVG9TdHJpbmcpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAg
IGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7Ci0gICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmcoKTsKKyAgICBTdHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpLnZh
bHVlKCk7CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOwotICAg
IEFTU0VSVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nKCkuaW1wbCgpKTsKKyAg
ICBBU1NFUlRfRVEoc3RyaW5nLmltcGwoKSwgYnVpbGRlci50b1N0cmluZygpLnZhbHVlKCkuaW1w
bCgpKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZm
ZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKS4KICAgICBidWlsZGVyLmFwcGVu
ZCgiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKTsKQEAgLTExNSwyMCArMTE1LDIwIEBAIFRF
U1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nKQogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0
cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0
cmluZygpIGluIGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFuZ2VkLgogICAgIGJ1aWxkZXIu
cmVzZXJ2ZUNhcGFjaXR5KDIwMCk7Ci0gICAgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOwor
ICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKS52YWx1ZSgpOwogICAgIEFTU0VSVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOwog
ICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsKICAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5n
aW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKSBzaG91bGQgbm90IGFmZmVjdCB0
aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4KLSAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmco
KS52YWx1ZSgpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKICAgICBzdHJpbmcxLmFwcGVuZCgiREVGIik7
Ci0gICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6QUJDIiksIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgQVNTRVJUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxkZXIudG9TdHJpbmco
KS52YWx1ZSgpKTsKICAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXpBQkNERUYiKSwgc3RyaW5nMSk7CiAKICAgICAvLyBSZXNpemluZyB0aGUg
U3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRv
U3RyaW5nKCkuCi0gICAgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBzdHJpbmcx
ID0gYnVpbGRlci50b1N0cmluZygpLnZhbHVlKCk7CiAgICAgYnVpbGRlci5yZXNpemUoMTApOwog
ICAgIGJ1aWxkZXIuYXBwZW5kKCIjIyMiKTsKICAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CkBAIC0xMzksMTEg
KzEzOSwxMSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNp
dHkpCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIz
NDU2Nzg5Iik7CiAgICAgdW5zaWduZWQgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7Ci0g
ICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7Cisg
ICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkudmFs
dWUoKTsKICAgICBBU1NFUlRfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7CiAgICAg
QVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOwotICAgIEFTU0VSVF9FUShz
dHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLmltcGwoKSk7
Ci0gICAgQVNTRVJUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4
KCkpOworICAgIEFTU0VSVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2Vy
dmVDYXBhY2l0eSgpLnZhbHVlKCkuaW1wbCgpKTsKKyAgICBBU1NFUlRfRVEoc3RyaW5nLmNoYXJh
Y3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKS52YWx1ZSgpKTsKIAogICAgIC8vIENoYW5n
aW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1
bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuCiAgICAgYnVpbGRlci5hcHBlbmQoImFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7CkBAIC0xNTIsMjggKzE1MiwyOCBAQCBURVNUKFN0
cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgLy8gQ2hhbmdp
bmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3Vs
dCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBu
b3QgY2hhbmdlZC4KICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyMDApOwogICAgIGNhcGFj
aXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwotICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQ
cmVzZXJ2ZUNhcGFjaXR5KCk7CisgICAgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZl
Q2FwYWNpdHkoKS52YWx1ZSgpOwogICAgIEFTU0VSVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBh
Y2l0eSgpKTsKLSAgICBBU1NFUlRfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hh
cmFjdGVyczgoKSk7CisgICAgQVNTRVJUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVy
LmNoYXJhY3RlcnM4KCkudmFsdWUoKSk7CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CiAgICAgYnVpbGRlci5hcHBl
bmQoIkFCQyIpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIG9yaWdpbmFs
IHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBzaG91bGQgbm90IGFmZmVjdCB0
aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4KICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIu
Y2FwYWNpdHkoKTsKLSAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2
ZUNhcGFjaXR5KCk7CisgICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2Vy
dmVDYXBhY2l0eSgpLnZhbHVlKCk7CiAgICAgQVNTRVJUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNh
cGFjaXR5KCkpOwotICAgIEFTU0VSVF9FUShzdHJpbmcxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIu
Y2hhcmFjdGVyczgoKSk7CisgICAgQVNTRVJUX0VRKHN0cmluZzEuY2hhcmFjdGVyczgoKSwgYnVp
bGRlci5jaGFyYWN0ZXJzOCgpLnZhbHVlKCkpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKICAgICBzdHJp
bmcxLmFwcGVuZCgiREVGIik7Ci0gICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFj
aXR5KCkpOworICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLnZhbHVl
KCkpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdC
dWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQ
cmVzZXJ2ZUNhcGFjaXR5KCkuCiAgICAgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7Ci0g
ICAgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CisgICAgc3Ry
aW5nMSA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkudmFsdWUoKTsKICAgICBB
U1NFUlRfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7Ci0gICAgQVNTRVJUX0VRKHN0
cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOworICAgIEFTU0VSVF9F
UShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpLnZhbHVlKCkpOwog
ICAgIGJ1aWxkZXIucmVzaXplKDEwKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIyMjIik7CiAgICAg
QVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJD
IiksIHN0cmluZzEpOwpAQCAtMTkxLDExICsxOTEsMTEgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVz
dCwgQXJyYXkpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBw
ZW5kKCIwMTIzNDU2Nzg5Iik7Ci0gICAgRVhQRUNUX0VRKCcwJywgc3RhdGljX2Nhc3Q8Y2hhcj4o
YnVpbGRlclswXSkpOwotICAgIEVYUEVDVF9FUSgnOScsIHN0YXRpY19jYXN0PGNoYXI+KGJ1aWxk
ZXJbOV0pKTsKLSAgICBidWlsZGVyLnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJp
bmcoKS4KLSAgICBFWFBFQ1RfRVEoJzAnLCBzdGF0aWNfY2FzdDxjaGFyPihidWlsZGVyWzBdKSk7
Ci0gICAgRVhQRUNUX0VRKCc5Jywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRlcls5XSkpOworICAg
IEVYUEVDVF9FUSgnMCcsIHN0YXRpY19jYXN0PGNoYXI+KGJ1aWxkZXJbMF0udmFsdWUoKSkpOwor
ICAgIEVYUEVDVF9FUSgnOScsIHN0YXRpY19jYXN0PGNoYXI+KGJ1aWxkZXJbOV0udmFsdWUoKSkp
OworICAgIGJ1aWxkZXIudG9TdHJpbmcoKS52YWx1ZSgpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3Ry
aW5nKCkuCisgICAgRVhQRUNUX0VRKCcwJywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRlclswXS52
YWx1ZSgpKSk7CisgICAgRVhQRUNUX0VRKCc5Jywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRlcls5
XS52YWx1ZSgpKSk7CiB9CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFJlc2l6ZSkKQEAgLTIw
OSw3ICsyMDksNyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBSZXNpemUpCiAgICAgRVhQRUNU
X0VRKDhVLCBidWlsZGVyLmxlbmd0aCgpKTsKICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1NjciLCBidWlsZGVyKTsKIAotICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBidWlsZGVy
LnRvU3RyaW5nKCkudmFsdWUoKTsKICAgICBidWlsZGVyLnJlc2l6ZSg3KTsKICAgICBFWFBFQ1Rf
RVEoN1UsIGJ1aWxkZXIubGVuZ3RoKCkpOwogICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2IiwgYnVpbGRlcik7CkBAIC0yNDAsMTMgKzI0MCwxMyBAQCBURVNUKFN0cmluZ0J1aWxkZXJU
ZXN0LCBFcXVhbCkKICAgICBBU1NFUlRfVFJVRShidWlsZGVyMiAhPSBidWlsZGVyMSk7CiAgICAg
QVNTRVJUX1RSVUUoU3RyaW5nKCIxMjMiKSAhPSBidWlsZGVyMik7CiAgICAgQVNTRVJUX1RSVUUo
YnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiKSk7Ci0gICAgYnVpbGRlcjIudG9TdHJpbmcoKTsgLy8g
VGVzdCBhZnRlciByZWlmeVN0cmluZygpLgorICAgIGJ1aWxkZXIyLnRvU3RyaW5nKCkudmFsdWUo
KTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgogICAgIEFTU0VSVF9UUlVFKGJ1aWxkZXIx
ICE9IGJ1aWxkZXIyKTsKIAogICAgIGJ1aWxkZXIyLnJlc2l6ZSgzKTsKICAgICBBU1NFUlRfVFJV
RShidWlsZGVyMSA9PSBidWlsZGVyMik7CiAKLSAgICBidWlsZGVyMS50b1N0cmluZygpOyAvLyBU
ZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCisgICAgYnVpbGRlcjEudG9TdHJpbmcoKS52YWx1ZSgp
OyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAgICAgQVNTRVJUX1RSVUUoYnVpbGRlcjEg
PT0gYnVpbGRlcjIpOwogfQogCkBAIC0yNjUsMTQgKzI2NSwxNCBAQCBURVNUKFN0cmluZ0J1aWxk
ZXJUZXN0LCBUb0F0b21pY1N0cmluZykKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAg
ICAgYnVpbGRlci5hcHBlbmQoIjEyMyIpOwotICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcg
PSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7CisgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmlu
ZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKS52YWx1ZSgpOwogICAgIEFTU0VSVF9FUShTdHJp
bmcoIjEyMyIpLCBhdG9taWNTdHJpbmcpOwogCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHko
MjU2KTsKICAgICBBU1NFUlRfVFJVRShidWlsZGVyLmNhblNocmluaygpKTsKICAgICBmb3IgKGlu
dCBpID0gYnVpbGRlci5sZW5ndGgoKTsgaSA8IDEyODsgaSsrKQogICAgICAgICBidWlsZGVyLmFw
cGVuZCgneCcpOwotICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcxID0gYnVpbGRlci50b0F0
b21pY1N0cmluZygpOworICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcxID0gYnVpbGRlci50
b0F0b21pY1N0cmluZygpLnZhbHVlKCk7CiAgICAgQVNTRVJUX0VRKDEyOHUsIGF0b21pY1N0cmlu
ZzEubGVuZ3RoKCkpOwogICAgIEFTU0VSVF9FUSgneCcsIGF0b21pY1N0cmluZzFbMTI3XSk7CiAK
QEAgLTI4Miw4ICsyODIsOCBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb0F0b21pY1N0cmlu
ZykKICAgICBBU1NFUlRfRVEoMTI4dSwgYXRvbWljU3RyaW5nMS5sZW5ndGgoKSk7CiAKICAgICBB
U1NFUlRfRkFMU0UoYnVpbGRlci5jYW5TaHJpbmsoKSk7Ci0gICAgU3RyaW5nIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKTsKLSAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nMiA9IGJ1aWxk
ZXIudG9BdG9taWNTdHJpbmcoKTsKKyAgICBTdHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpLnZhbHVlKCk7CisgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZzIgPSBidWlsZGVyLnRv
QXRvbWljU3RyaW5nKCkudmFsdWUoKTsKICAgICAvLyBUaGV5IHNob3VsZCBzaGFyZSB0aGUgc2Ft
ZSBTdHJpbmdJbXBsLgogICAgIEFTU0VSVF9FUShhdG9taWNTdHJpbmcyLmltcGwoKSwgc3RyaW5n
LmltcGwoKSk7CiB9CkBAIC0yOTIsNDUgKzI5Miw0NSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0
LCBUb0F0b21pY1N0cmluZ09uRW1wdHkpCiB7CiAgICAgeyAvLyBEZWZhdWx0IGNvbnN0cnVjdGVk
LgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIEF0b21pY1N0cmluZyBh
dG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7CisgICAgICAgIEF0b21pY1N0
cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCkudmFsdWUoKTsKICAg
ICAgICAgQVNTRVJUX0VRKGVtcHR5QXRvbSgpLCBhdG9taWNTdHJpbmcpOwogICAgIH0KICAgICB7
IC8vIFdpdGggY2FwYWNpdHkuCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAg
ICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoNjQpOwotICAgICAgICBBdG9taWNTdHJpbmcgYXRv
bWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpOworICAgICAgICBBdG9taWNTdHJp
bmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpLnZhbHVlKCk7CiAgICAg
ICAgIEFTU0VSVF9FUShlbXB0eUF0b20oKSwgYXRvbWljU3RyaW5nKTsKICAgICB9CiAgICAgeyAv
LyBBdG9taWNTdHJpbmcgY29uc3RydWN0ZWQgZnJvbSBhIG51bGwgc3RyaW5nLgogICAgICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygpKTsK
LSAgICAgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJp
bmcoKTsKKyAgICAgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxkZXIudG9BdG9t
aWNTdHJpbmcoKS52YWx1ZSgpOwogICAgICAgICBBU1NFUlRfRVEoZW1wdHlBdG9tKCksIGF0b21p
Y1N0cmluZyk7CiAgICAgfQogICAgIHsgLy8gQXRvbWljU3RyaW5nIGNvbnN0cnVjdGVkIGZyb20g
YW4gZW1wdHkgc3RyaW5nLgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKGVtcHR5U3RyaW5nKCkpOwotICAgICAgICBBdG9taWNTdHJpbmcgYXRv
bWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpOworICAgICAgICBBdG9taWNTdHJp
bmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpLnZhbHVlKCk7CiAgICAg
ICAgIEFTU0VSVF9FUShlbXB0eUF0b20oKSwgYXRvbWljU3RyaW5nKTsKICAgICB9CiAgICAgeyAv
LyBBdG9taWNTdHJpbmcgY29uc3RydWN0ZWQgZnJvbSBhbiBlbXB0eSBTdHJpbmdCdWlsZGVyLgog
ICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgZW1w
dHlCdWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChlbXB0eUJ1aWxkZXIpOwotICAgICAg
ICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpOwor
ICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmlu
ZygpLnZhbHVlKCk7CiAgICAgICAgIEFTU0VSVF9FUShlbXB0eUF0b20oKSwgYXRvbWljU3RyaW5n
KTsKICAgICB9CiAgICAgeyAvLyBBdG9taWNTdHJpbmcgY29uc3RydWN0ZWQgZnJvbSBhbiBlbXB0
eSBjaGFyKiBzdHJpbmcuCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoIiIsIDApOwotICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5n
ID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpOworICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWlj
U3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpLnZhbHVlKCk7CiAgICAgICAgIEFTU0VS
VF9FUShlbXB0eUF0b20oKSwgYXRvbWljU3RyaW5nKTsKICAgICB9CiAgICAgeyAvLyBDbGVhcmVk
IFN0cmluZ0J1aWxkZXIuCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKCJXZWJLaXQiKTsKICAgICAgICAgYnVpbGRlci5jbGVhcigp
OwotICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0
cmluZygpOworICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0
b21pY1N0cmluZygpLnZhbHVlKCk7CiAgICAgICAgIEFTU0VSVF9FUShlbXB0eUF0b20oKSwgYXRv
bWljU3RyaW5nKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9TdHJpbmdWaWV3LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0
cmluZ1ZpZXcuY3BwCmluZGV4IGZjMjhiMDAuLjhiMjgzMDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCkBAIC0xNjQsNjUgKzE2NCw2NSBAQCBURVNU
KFdURiwgU3RyaW5nVmlld0l0ZXJhdG9ycykKIAogICAgIFN0cmluZ0J1aWxkZXIgYjsKICAgICBi
dWlsZChiLCB7MHhEODAwLCAweERENTV9KTsgLy8gU3Vycm9nYXRlcyBmb3IgdW5pY29kZSBjb2Rl
IHBvaW50IFUrMTAxNTUKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3Ry
aW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVQb2ludHMoKSwgezB4MTAxNTV9KSk7Ci0gICAgRVhQ
RUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5j
b2RlVW5pdHMoKSwgezB4RDgwMCwgMHhERDU1fSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVM
b29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuZ3JhcGhlbWVDbHVzdGVycygp
LCB7U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVM
b29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlUG9pbnRz
KCksIHsweDEwMTU1fSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhT
dHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlVW5pdHMoKSwgezB4RDgwMCwgMHhE
RDU1fSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3
KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIu
dG9TdHJpbmcoKS52YWx1ZSgpKX0pKTsKIAogICAgIGJ1aWxkKGIsIHsweEQ4MDB9KTsgLy8gTGVh
ZGluZyBzdXJyb2dhdGUgb25seQotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9u
cyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVBvaW50cygpLCB7MHhEODAwfSkpOwotICAg
IEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmco
KSkuY29kZVVuaXRzKCksIHsweEQ4MDB9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJ
dGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtT
dHJpbmdWaWV3KGIudG9TdHJpbmcoKSl9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJ
dGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVQb2ludHMoKSwg
ezB4RDgwMH0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5n
VmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVVuaXRzKCksIHsweEQ4MDB9KSk7CisgICAg
RVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygp
LnZhbHVlKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZh
bHVlKCkpfSkpOwogCiAgICAgYnVpbGQoYiwgezB4RDgwMCwgMHhEODAxfSk7IC8vIFR3byBsZWFk
aW5nIHN1cnJvZ2F0ZXMKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3Ry
aW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVQb2ludHMoKSwgezB4RDgwMCwgMHhEODAxfSkpOwot
ICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJp
bmcoKSkuY29kZVVuaXRzKCksIHsweEQ4MDAsIDB4RDgwMX0pKTsKLSAgICBFWFBFQ1RfVFJVRShj
b21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmdyYXBoZW1lQ2x1
c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSwgMSksIFN0cmluZ1ZpZXcoYi5j
aGFyYWN0ZXJzMTYoKSArIDEsIDEpfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRl
cmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlUG9pbnRzKCksIHsw
eEQ4MDAsIDB4RDgwMX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMo
U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVVuaXRzKCksIHsweEQ4MDAsIDB4
RDgwMX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmll
dyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhi
LmNoYXJhY3RlcnMxNigpLnZhbHVlKCksIDEpLCBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCku
dmFsdWUoKSArIDEsIDEpfSkpOwogCiAgICAgYnVpbGQoYiwgezB4REQ1NX0pOyAvLyBUcmFpbGlu
ZyBzdXJyb2dhdGUgb25seQotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhT
dHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVBvaW50cygpLCB7MHhERDU1fSkpOwotICAgIEVY
UEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSku
Y29kZVVuaXRzKCksIHsweERENTV9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVy
YXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJp
bmdWaWV3KGIudG9TdHJpbmcoKSl9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVy
YXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVQb2ludHMoKSwgezB4
REQ1NX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmll
dyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVVuaXRzKCksIHsweERENTV9KSk7CisgICAgRVhQ
RUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZh
bHVlKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVl
KCkpfSkpOwogCiAgICAgYnVpbGQoYiwgezB4RDgwMCwgJ2gnfSk7IC8vIExlYWRpbmcgc3Vycm9n
YXRlIGZvbGxvd2VkIGJ5IG5vbi1zdXJyb2dhdGUKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9v
cEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVQb2ludHMoKSwgezB4RDgw
MCwgJ2gnfSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdW
aWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRzKCksIHsweEQ4MDAsICdoJ30pKTsKLSAgICBFWFBF
Q1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmdy
YXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSwgMSksIFN0cmlu
Z1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSArIDEsIDEpfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBh
cmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlUG9p
bnRzKCksIHsweEQ4MDAsICdoJ30pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJh
dGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVVuaXRzKCksIHsweEQ4
MDAsICdoJ30pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5n
VmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmll
dyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCksIDEpLCBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2
KCkudmFsdWUoKSArIDEsIDEpfSkpOwogCiAgICAgYnVpbGQoYiwgezB4MDMwNn0pOyAvLyAiQ09N
QklOSU5HIEJSRVZFIgotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJp
bmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVBvaW50cygpLCB7MHgwMzA2fSkpOwotICAgIEVYUEVD
VF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29k
ZVVuaXRzKCksIHsweDAzMDZ9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRp
b25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdW
aWV3KGIudG9TdHJpbmcoKSl9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRp
b25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVQb2ludHMoKSwgezB4MDMw
Nn0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhi
LnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVVuaXRzKCksIHsweDAzMDZ9KSk7CisgICAgRVhQRUNU
X1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVl
KCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkp
fSkpOwogCiAgICAgYnVpbGQoYiwgezB4MDMwNiwgMHhEODAwLCAweERENTUsICdoJywgJ2UnLCAn
bCcsICdvJ30pOyAvLyBNaXggb2Ygc2luZ2xlIGNvZGUgdW5pdCBhbmQgbXVsdGkgY29kZSB1bml0
IGNvZGUgcG9pbnRzCi0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmlu
Z1ZpZXcoYi50b1N0cmluZygpKS5jb2RlUG9pbnRzKCksIHsweDAzMDYsIDB4MTAxNTUsICdoJywg
J2UnLCAnbCcsICdvJ30pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMo
U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVVbml0cygpLCB7MHgwMzA2LCAweEQ4MDAsIDB4
REQ1NSwgJ2gnLCAnZScsICdsJywgJ28nfSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29w
SXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7
Ci0gICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSwgMSksCi0gICAgICAgIFN0cmlu
Z1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSArIDEsIDIpLAotICAgICAgICBTdHJpbmdWaWV3KGIuY2hh
cmFjdGVyczE2KCkgKyAzLCAxKSwKLSAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigp
ICsgNCwgMSksCi0gICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSArIDUsIDEpLAot
ICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkgKyA2LCAxKX0pKTsKKyAgICBFWFBF
Q1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFs
dWUoKSkuY29kZVBvaW50cygpLCB7MHgwMzA2LCAweDEwMTU1LCAnaCcsICdlJywgJ2wnLCAnbyd9
KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50
b1N0cmluZygpLnZhbHVlKCkpLmNvZGVVbml0cygpLCB7MHgwMzA2LCAweEQ4MDAsIDB4REQ1NSwg
J2gnLCAnZScsICdsJywgJ28nfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0
aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5ncmFwaGVtZUNsdXN0ZXJzKCks
IHsKKyAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCksIDEpLAorICAg
ICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSArIDEsIDIpLAorICAgICAg
ICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSArIDMsIDEpLAorICAgICAgICBT
dHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSArIDQsIDEpLAorICAgICAgICBTdHJp
bmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSArIDUsIDEpLAorICAgICAgICBTdHJpbmdW
aWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSArIDYsIDEpfSkpOwogCiAgICAgYnVpbGQoYiwg
eydlJywgMHgwMzAxfSk7IC8vICJDT01CSU5JTkcgQUNVVEUiCi0gICAgRVhQRUNUX1RSVUUoY29t
cGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlUG9pbnRzKCks
IHsnZScsIDB4MDMwMX0pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMo
U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVVbml0cygpLCB7J2UnLCAweDAzMDF9KSk7Ci0g
ICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmlu
ZygpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSl9KSk7Cisg
ICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmlu
ZygpLnZhbHVlKCkpLmNvZGVQb2ludHMoKSwgeydlJywgMHgwMzAxfSkpOworICAgIEVYUEVDVF9U
UlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgp
KS5jb2RlVW5pdHMoKSwgeydlJywgMHgwMzAxfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVM
b29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5ncmFwaGVtZUNs
dXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKX0pKTsKIAogICAgIGJ1
aWxkKGIsIHsnZScsIDB4MDMwMSwgMHgwMzA2LCAnYSd9KTsgLy8gIkNPTUJJTklORyBBQ1VURSIg
IkNPTUJJTklORyBCUkVWRSIKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMo
U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVQb2ludHMoKSwgeydlJywgMHgwMzAxLCAweDAz
MDYsICdhJ30pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5n
VmlldyhiLnRvU3RyaW5nKCkpLmNvZGVVbml0cygpLCB7J2UnLCAweDAzMDEsIDB4MDMwNiwgJ2En
fSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIu
dG9TdHJpbmcoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7Ci0gICAgICAgIFN0cmluZ1ZpZXcoYi5j
aGFyYWN0ZXJzMTYoKSwgMyksCi0gICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSAr
IDMsIDEpLAorICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3
KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlUG9pbnRzKCksIHsnZScsIDB4MDMwMSwgMHgwMzA2
LCAnYSd9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1Zp
ZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVVbml0cygpLCB7J2UnLCAweDAzMDEsIDB4MDMw
NiwgJ2EnfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdW
aWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHsKKyAgICAgICAg
U3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCksIDMpLAorICAgICAgICBTdHJpbmdW
aWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSArIDMsIDEpLAogICAgICAgICB9KSk7CiAKICAg
ICBidWlsZChiLCB7MHgxMTEyLCAweDExNmYsIDB4MTFiNiwgMHgxMTA3LCAweDExNjEsIDB4MTFC
OH0pOyAvLyBLb3JlYW4gY29tYmluaW5nIEphbW8KLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9v
cEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVQb2ludHMoKSwgezB4MTEx
MiwgMHgxMTZmLCAweDExYjYsIDB4MTEwNywgMHgxMTYxLCAweDExQjh9KSk7Ci0gICAgRVhQRUNU
X1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2Rl
VW5pdHMoKSwgezB4MTExMiwgMHgxMTZmLCAweDExYjYsIDB4MTEwNywgMHgxMTYxLCAweDExQjh9
KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50
b1N0cmluZygpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHsKLSAgICAgICAgU3RyaW5nVmlldyhiLmNo
YXJhY3RlcnMxNigpLCAzKSwKLSAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpICsg
MywgMyl9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1Zp
ZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVQb2ludHMoKSwgezB4MTExMiwgMHgxMTZmLCAw
eDExYjYsIDB4MTEwNywgMHgxMTYxLCAweDExQjh9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFy
ZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVVbml0
cygpLCB7MHgxMTEyLCAweDExNmYsIDB4MTFiNiwgMHgxMTA3LCAweDExNjEsIDB4MTFCOH0pKTsK
KyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3Ry
aW5nKCkudmFsdWUoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7CisgICAgICAgIFN0cmluZ1ZpZXco
Yi5jaGFyYWN0ZXJzMTYoKS52YWx1ZSgpLCAzKSwKKyAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJh
Y3RlcnMxNigpLnZhbHVlKCkgKyAzLCAzKX0pKTsKIH0KIAogc3RhdGljIFZlY3RvcjxTdHJpbmc+
IHZlY3RvckZyb21TcGxpdFJlc3VsdChjb25zdCBTdHJpbmdWaWV3OjpTcGxpdFJlc3VsdCYgc3Vi
c3RyaW5ncykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9D
b250ZW50RXh0ZW5zaW9ucy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Q29udGVudEV4dGVuc2lvbnMuY3BwCmluZGV4IGRjY2U0NjguLjAzODM4NjQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25z
LmNwcApAQCAtMTIwOSwxNSArMTIwOSwxOCBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3Qs
IFdpZGVORkEpCiAgICAgICAgIH0KICAgICB9CiAgICAgcnVsZUxpc3QuYXBwZW5kKCddJyk7Ci0g
ICAgCi0gICAgYXV0byBiYWNrZW5kID0gbWFrZUJhY2tlbmQocnVsZUxpc3QudG9TdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKIAotICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJl
cXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL0FBQSIpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rp
b25UeXBlOjpDU1NEaXNwbGF5Tm9uZVNlbGVjdG9yIH0pOwotICAgIHRlc3RSZXF1ZXN0KGJhY2tl
bmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL1lBQSIpLCB7IENvbnRl
bnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpDU1NEaXNwbGF5Tm9uZVNlbGVjdG9yIH0pOwotICAg
IHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQu
b3JnL1pBQSIpLCB7IH0sIDApOwotICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVu
dFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL0xBQS9BQUEiKSwgeyB9LCAwKTsKLSAgICB0ZXN0
UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy9M
QUEvTUFBIiksIHsgQ29udGVudEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6OkNTU0Rpc3BsYXlOb25l
U2VsZWN0b3IgfSwgMCk7Ci0gICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVx
dWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvIiksIHsgfSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
cnVsZUxpc3QudG9TdHJpbmcoKSkgeworICAgICAgICBhdXRvIGJhY2tlbmQgPSBtYWtlQmFja2Vu
ZChzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworCisgICAgICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQs
IG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL0FBQSIpLCB7IENvbnRlbnRF
eHRlbnNpb25zOjpBY3Rpb25UeXBlOjpDU1NEaXNwbGF5Tm9uZVNlbGVjdG9yIH0pOworICAgICAg
ICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0
Lm9yZy9ZQUEiKSwgeyBDb250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6Q1NTRGlzcGxheU5v
bmVTZWxlY3RvciB9KTsKKyAgICAgICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50
UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvWkFBIiksIHsgfSwgMCk7CisgICAgICAgIHRlc3RS
ZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL0xB
QS9BQUEiKSwgeyB9LCAwKTsKKyAgICAgICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3Vt
ZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvTEFBL01BQSIpLCB7IENvbnRlbnRFeHRlbnNp
b25zOjpBY3Rpb25UeXBlOjpDU1NEaXNwbGF5Tm9uZVNlbGVjdG9yIH0sIDApOworICAgICAgICB0
ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9y
Zy8iKSwgeyB9KTsKKyAgICB9IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KICAgICAKICNpZmRl
ZiBOREVCVUcKQEAgLTEyNDcsNyArMTI1MCwxMCBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRl
c3QsIExhcmdlSnVtcHMpCiAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kKGMyKTsK
ICAgICAgICAgICAgICAgICAgICAgcGF0dGVybi5hcHBlbmQoYzMpOwogICAgICAgICAgICAgICAg
ICAgICBwYXR0ZXJuLmFwcGVuZChjNCk7Ci0gICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUShD
b250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2ssIHBhcnNl
ci5hZGRQYXR0ZXJuKHBhdHRlcm4udG9TdHJpbmcoKSwgdHJ1ZSwgcGF0dGVybklkKyspKTsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcGF0dGVybi50b1N0cmluZygpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKENvbnRlbnRFeHRlbnNpb25zOjpVUkxG
aWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPaywgcGFyc2VyLmFkZFBhdHRlcm4oKnN0cmluZywg
dHJ1ZSwgcGF0dGVybklkKyspKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KQEAgLTEzMDgsMTcgKzEzMTQsMjAgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNp
b25UZXN0LCBMYXJnZUp1bXBzKQogICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybi5hcHBl
bmQoJ3gnKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gbWF0Y2hlcyA9IGludGVycHJldGVyLmlu
dGVycHJldChwYXR0ZXJuLnRvU3RyaW5nKCkudXRmOCgpLCAwKTsKLSAgICAgICAgICAgICAgICAg
ICAgc3dpdGNoICgoYzEgKyBjMiArIGMzICsgYzQpICUgNCkgewotICAgICAgICAgICAgICAgICAg
ICBjYXNlIDA6Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb21wYXJlQ29udGVudHMobWF0Y2hl
cywgeyB9KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAg
ICAgICBjYXNlIDE6Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAgICAg
ICAgICAgY2FzZSAzOgotICAgICAgICAgICAgICAgICAgICAgICAgY29tcGFyZUNvbnRlbnRzKG1h
dGNoZXMsIHtwYXR0ZXJuSWR9KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IHBhdHRlcm4udG9TdHJpbmcoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBtYXRj
aGVzID0gaW50ZXJwcmV0ZXIuaW50ZXJwcmV0KHN0cmluZy0+dXRmOCgpLCAwKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHN3aXRjaCAoKGMxICsgYzIgKyBjMyArIGM0KSAlIDQpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b21wYXJlQ29udGVudHMobWF0Y2hlcywgeyB9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMzoKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb21wYXJlQ29udGVudHMobWF0Y2hlcywge3BhdHRlcm5J
ZH0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm5JZCsrOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTEzNDgsMTMgKzEzNTcsMTkgQEAgVEVTVF9G
KENvbnRlbnRFeHRlbnNpb25UZXN0LCBEZWVwTkZBKQogICAgIFN0cmluZ0J1aWxkZXIgbG90c09m
QXM7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkKICAgICAgICAgbG90
c09mQXMuYXBwZW5kKCdBJyk7Ci0gICAgRVhQRUNUX0VRKENvbnRlbnRFeHRlbnNpb25zOjpVUkxG
aWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPaywgcGFyc2VyLmFkZFBhdHRlcm4obG90c09mQXMu
dG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBmYWxzZSwgMCkpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGxvdHNPZkFzLnRvU3RyaW5nKCkpCisgICAgICAgIEVYUEVDVF9FUShDb250ZW50RXh0ZW5z
aW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2ssIHBhcnNlci5hZGRQYXR0ZXJu
KHN0cmluZy0+dXRmOCgpLmRhdGEoKSwgZmFsc2UsIDApKTsKKyAgICBlbHNlCisgICAgICAgIENS
QVNIKCk7CiAgICAgCiAgICAgLy8gRklYTUU6IFlhcnIgb3VnaHQgdG8gYmUgYWJsZSB0byBoYW5k
bGUgMk1CIHJlZ3VsYXIgZXhwcmVzc2lvbnMuCiAgICAgU3RyaW5nQnVpbGRlciB0b29NYW55QXM7
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemUgKiAyMDsgKytpKQogICAgICAgICB0
b29NYW55QXMuYXBwZW5kKCdBJyk7Ci0gICAgRVhQRUNUX0VRKENvbnRlbnRFeHRlbnNpb25zOjpV
UkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpZYXJyRXJyb3IsIHBhcnNlci5hZGRQYXR0ZXJu
KHRvb01hbnlBcy50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGZhbHNlLCAwKSk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gdG9vTWFueUFzLnRvU3RyaW5nKCkpCisgICAgICAgIEVYUEVDVF9FUShD
b250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6WWFyckVycm9y
LCBwYXJzZXIuYWRkUGF0dGVybihzdHJpbmctPnV0ZjgoKS5kYXRhKCksIGZhbHNlLCAwKSk7Cisg
ICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIAogICAgIFN0cmluZ0J1aWxkZXIgbmVzdGVk
R3JvdXBzOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpCkBAIC0xNDkw
LDE3ICsxNTA1LDIyIEBAIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgSW52YWxpZEpTT04p
CiAgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwibm90aWZ5
XCIsXCJub3RpZmljYXRpb25cIjpbXX0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiLipc
In19XSIsIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZh
bGlkTm90aWZpY2F0aW9uKTsKICAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7
XCJ0eXBlXCI6XCJub3RpZnlcIixcIm5vdGlmaWNhdGlvblwiOlwiaGVyZSdzIG15IG5vdGlmaWNh
dGlvblwifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCIuKlwifX1dIiwgeyB9KTsKICAg
ICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJub3RpZnlcIixc
Im5vdGlmaWNhdGlvblwiOlwiXFx1MTIzNFwifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6
XCIuKlwifX1dIiwgeyB9KTsKLSAgICAKLSAgICBTdHJpbmdCdWlsZGVyIHJ1bGVzOwotICAgIHJ1
bGVzLmFwcGVuZCgiWyIpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCA0OTk5OTsgKytp
KQotICAgICAgICBydWxlcy5hcHBlbmQoIntcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9
LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcImFcIn19LCIpOwotICAgIFN0cmluZyBydWxl
czUwMDAwID0gcnVsZXMudG9TdHJpbmcoKTsKLSAgICBTdHJpbmcgcnVsZXM1MDAwMSA9IHJ1bGVz
LnRvU3RyaW5nKCk7Ci0gICAgcnVsZXM1MDAwMC5hcHBlbmQoIntcImFjdGlvblwiOntcInR5cGVc
IjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcImFcIn19XSIpOwotICAg
IHJ1bGVzNTAwMDEuYXBwZW5kKCJ7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRy
aWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJhXCJ9fSx7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJi
bG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJhXCJ9fV0iKTsKLSAgICBjaGVj
a0NvbXBpbGVyRXJyb3IocnVsZXM1MDAwMC51dGY4KCkuZGF0YSgpLCB7IH0pOwotICAgIGNoZWNr
Q29tcGlsZXJFcnJvcihydWxlczUwMDAxLnV0ZjgoKS5kYXRhKCksIENvbnRlbnRFeHRlbnNpb25z
OjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Ub29NYW55UnVsZXMpOworCisgICAgeworICAg
ICAgICBTdHJpbmdCdWlsZGVyIHJ1bGVzOworICAgICAgICBydWxlcy5hcHBlbmQoIlsiKTsKKyAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDQ5OTk5OyArK2kpCisgICAgICAgICAgICBy
dWxlcy5hcHBlbmQoIntcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwi
OntcInVybC1maWx0ZXJcIjpcImFcIn19LCIpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBy
dWxlcy50b1N0cmluZygpKSB7CisgICAgICAgICAgICBTdHJpbmcgcnVsZXM1MDAwMCA9ICpzdHJp
bmc7CisgICAgICAgICAgICBTdHJpbmcgcnVsZXM1MDAwMSA9ICpzdHJpbmc7CisgICAgICAgICAg
ICBydWxlczUwMDAwLmFwcGVuZCgie1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0
cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiYVwifX1dIik7CisgICAgICAgICAgICBydWxlczUw
MDAxLmFwcGVuZCgie1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6
e1widXJsLWZpbHRlclwiOlwiYVwifX0se1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0s
XCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiYVwifX1dIik7CisgICAgICAgICAgICBjaGVj
a0NvbXBpbGVyRXJyb3IocnVsZXM1MDAwMC51dGY4KCkuZGF0YSgpLCB7IH0pOworICAgICAgICAg
ICAgY2hlY2tDb21waWxlckVycm9yKHJ1bGVzNTAwMDEudXRmOCgpLmRhdGEoKSwgQ29udGVudEV4
dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlRvb01hbnlSdWxlcyk7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKKyAgICB9CiAgICAgCiAgICAgY2hlY2tD
b21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2Vy
XCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwiaWYtZG9tYWluXCI6e319fV0iLCBD
b250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZENvbmRp
dGlvbkxpc3QpOwogICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVc
IjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixc
ImlmLWRvbWFpblwiOls1XX19XSIsIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9u
RXJyb3I6OkpTT05JbnZhbGlkQ29uZGl0aW9uTGlzdCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAppbmRleCA1ZjFkYzhiLi5lOTRlZmM0
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0
b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRv
ci5jcHAKQEAgLTEwNyw3ICsxMDcsOSBAQCBzdGF0aWMgU3RyaW5nIGNyZWF0ZUNvbW1hbmQoY29u
c3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIHBheWxvYWQpCiAgICAgY29tbWFuZC5hcHBl
bmRMaXRlcmFsKCJcIiA+ICIpOwogICAgIGNvbW1hbmQuYXBwZW5kKHBhdGgpOwogCi0gICAgcmV0
dXJuIGNvbW1hbmQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBjb21tYW5kLnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0
YXRpYyBTdHJpbmcgcmVhZENvbnRlbnRzT2ZGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCkKQEAgLTI2
NywxMCArMjY5LDEzIEBAIFRFU1RfRihGaWxlTW9uaXRvclRlc3QsIERldGVjdERlbGV0aW9uKQog
ICAgICAgICBjb21tYW5kLmFwcGVuZExpdGVyYWwoInJtIC1mICIpOwogICAgICAgICBjb21tYW5k
LmFwcGVuZCh0ZW1wRmlsZVBhdGgoKSk7CiAKLSAgICAgICAgYXV0byByYyA9IHN5c3RlbShjb21t
YW5kLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIEFTU0VSVF9ORShyYywgLTEp
OwotICAgICAgICBpZiAocmMgPT0gLTEpCi0gICAgICAgICAgICBkaWRGaW5pc2ggPSB0cnVlOwor
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBjb21tYW5kLnRvU3RyaW5nKCkpIHsKKyAgICAgICAg
ICAgIGF1dG8gcmMgPSBzeXN0ZW0oc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAg
IEFTU0VSVF9ORShyYywgLTEpOworICAgICAgICAgICAgaWYgKHJjID09IC0xKQorICAgICAgICAg
ICAgICAgIGRpZEZpbmlzaCA9IHRydWU7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgQ1JB
U0goKTsKICAgICB9KTsKIAogICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoKTsKQEAgLTMyNCwxMCAr
MzI5LDEzIEBAIFRFU1RfRihGaWxlTW9uaXRvclRlc3QsIERldGVjdENoYW5nZUFuZFRoZW5EZWxl
dGUpCiAgICAgICAgIGNvbW1hbmQuYXBwZW5kTGl0ZXJhbCgicm0gLWYgIik7CiAgICAgICAgIGNv
bW1hbmQuYXBwZW5kKHRlbXBGaWxlUGF0aCgpKTsKIAotICAgICAgICBhdXRvIHJjID0gc3lzdGVt
KGNvbW1hbmQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgQVNTRVJUX05FKHJj
LCAtMSk7Ci0gICAgICAgIGlmIChyYyA9PSAtMSkKLSAgICAgICAgICAgIGRpZEZpbmlzaCA9IHRy
dWU7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGNvbW1hbmQudG9TdHJpbmcoKSkgeworICAg
ICAgICAgICAgYXV0byByYyA9IHN5c3RlbShzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAg
ICAgICAgQVNTRVJUX05FKHJjLCAtMSk7CisgICAgICAgICAgICBpZiAocmMgPT0gLTEpCisgICAg
ICAgICAgICAgICAgZGlkRmluaXNoID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICBDUkFTSCgpOwogICAgIH0pOwogCiAgICAgVXRpbDo6cnVuKCZkaWRGaW5pc2gpOwpAQCAtMzYz
LDEwICszNzEsMTMgQEAgVEVTVF9GKEZpbGVNb25pdG9yVGVzdCwgRGV0ZWN0RGVsZXRlQnV0Tm90
U3Vic2VxdWVudENoYW5nZSkKICAgICAgICAgY29tbWFuZC5hcHBlbmRMaXRlcmFsKCJybSAtZiAi
KTsKICAgICAgICAgY29tbWFuZC5hcHBlbmQodGVtcEZpbGVQYXRoKCkpOwogCi0gICAgICAgIGF1
dG8gcmMgPSBzeXN0ZW0oY29tbWFuZC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAg
ICBBU1NFUlRfTkUocmMsIC0xKTsKLSAgICAgICAgaWYgKHJjID09IC0xKQotICAgICAgICAgICAg
ZGlkRmluaXNoID0gdHJ1ZTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gY29tbWFuZC50b1N0
cmluZygpKSB7CisgICAgICAgICAgICBhdXRvIHJjID0gc3lzdGVtKHN0cmluZy0+dXRmOCgpLmRh
dGEoKSk7CisgICAgICAgICAgICBBU1NFUlRfTkUocmMsIC0xKTsKKyAgICAgICAgICAgIGlmIChy
YyA9PSAtMSkKKyAgICAgICAgICAgICAgICBkaWRGaW5pc2ggPSB0cnVlOworICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfSk7CiAKICAgICBVdGlsOjpydW4oJmRpZEZp
bmlzaCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTG9n
Z2luZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTG9nZ2luZy5jcHAK
aW5kZXggMWU0YzM0Mi4uN2RlZGFkMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0xvZ2dpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9Mb2dnaW5nLmNwcApAQCAtOTUsNyArOTUsOSBAQCBwdWJsaWM6CiAgICAgICAgIHdo
aWxlICgobGluZSA9IGZnZXRzKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksIG1fc3RkZXJyKSkpCiAg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKGxpbmUpOwogCi0gICAgICAgIHJldHVybiByZXN1bHQu
dG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkp
CisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAK
ICAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbG9nZ2Vy
LmdldCgpOyB9CkBAIC0zNDAsMTUgKzM0MiwxOCBAQCBURVNUX0YoTG9nZ2luZ1Rlc3QsIExvZ2dl
ckhlbHBlcikKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIkxvZ2dpbmdUZXN0OjpUZXN0Qm9k
eSgiKTsKICAgICBhcHBlbmRVbnNpZ25lZDY0QXNIZXgocmVpbnRlcnByZXRfY2FzdDx1aW50cHRy
X3Q+KGxvZ0lkZW50aWZpZXIoKSksIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiKSIpOwotICAgIFN0cmluZyBzaWduYXR1cmUgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIFN0cmluZyBz
aWduYXR1cmUgPSAqc3RyaW5nOwogCi0gICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKLSAg
ICBFWFBFQ1RfVFJVRSh0aGlzLT5vdXRwdXQoKS5jb250YWlucyhzaWduYXR1cmUsIGZhbHNlKSk7
CisgICAgICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisgICAgICAgIEVYUEVDVF9UUlVF
KHRoaXMtPm91dHB1dCgpLmNvbnRhaW5zKHNpZ25hdHVyZSwgZmFsc2UpKTsKIAotICAgIEFMV0FZ
U19MT0coTE9HSURFTlRJRklFUiwgIldlbGNvbWUgYmFjayIsICIgbXkgZnJpZW5kcyIsICIgdG8g
dGhlIHNob3ciLCAiIHRoYXQgbmV2ZXIgZW5kcyIpOwotICAgIFN0cmluZyByZXN1bHQgPSB0aGlz
LT5vdXRwdXQoKTsKLSAgICBFWFBFQ1RfVFJVRShyZXN1bHQuY29udGFpbnMoc2lnbmF0dXJlLCBm
YWxzZSkpOwotICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5jb250YWlucygidG8gdGhlIHNob3cgdGhh
dCBuZXZlciIsIGZhbHNlKSk7CisgICAgICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgIldl
bGNvbWUgYmFjayIsICIgbXkgZnJpZW5kcyIsICIgdG8gdGhlIHNob3ciLCAiIHRoYXQgbmV2ZXIg
ZW5kcyIpOworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gdGhpcy0+b3V0cHV0KCk7CisgICAgICAg
IEVYUEVDVF9UUlVFKHJlc3VsdC5jb250YWlucyhzaWduYXR1cmUsIGZhbHNlKSk7CisgICAgICAg
IEVYUEVDVF9UUlVFKHJlc3VsdC5jb250YWlucygidG8gdGhlIHNob3cgdGhhdCBuZXZlciIsIGZh
bHNlKSk7CisgICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAgICBXVEZTZXRMb2dDaGFu
bmVsTGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWxXYXJuaW5nKTsKIApAQCAtMzcxLDEw
ICszNzYsMTEgQEAgcHVibGljOgogCiAgICAgU3RyaW5nIGxvZygpCiAgICAgewotICAgICAgICBT
dHJpbmcgbG9nID0gbV9sb2dCdWZmZXIudG9TdHJpbmcoKTsKLSAgICAgICAgbV9sb2dCdWZmZXIu
Y2xlYXIoKTsKLQotICAgICAgICByZXR1cm4gbG9nOworICAgICAgICBpZiAoYXV0byBsb2cgPSBt
X2xvZ0J1ZmZlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICBtX2xvZ0J1ZmZlci5jbGVhcigp
OworICAgICAgICAgICAgcmV0dXJuIGxvZzsKKyAgICAgICAgfQorICAgICAgICBDUkFTSCgpOwog
ICAgIH0KIAogICAgIFdURkxvZ0NoYW5uZWwgY2hhbm5lbCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFz
dENoYW5uZWw7IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9UZXh0Q29kZWMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1RleHRD
b2RlYy5jcHAKaW5kZXggZmQwNTA1MC4uOWU1NTUzMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL1RleHRDb2RlYy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL1RleHRDb2RlYy5jcHAKQEAgLTk4LDcgKzk4LDkgQEAgc3RhdGlj
IGNvbnN0IGNoYXIqIHRlc3REZWNvZGUoY29uc3QgY2hhciogZW5jb2RpbmdOYW1lLCBzdGQ6Omlu
aXRpYWxpemVyX2xpc3Q8Y28KICAgICAgICAgaWYgKHNhd0Vycm9yKQogICAgICAgICAgICAgcmVz
dWx0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgRVJST1IiKTsKICAgICB9Ci0gICAgcmV0dXJuIGVz
Y2FwZU5vbkFTQ0lJUHJpbnRhYmxlQ2hhcmFjdGVycyhyZXN1bHRCdWlsZGVyLnRvU3RyaW5nKCkp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdEJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuIGVzY2FwZU5vbkFTQ0lJUHJpbnRhYmxlQ2hhcmFjdGVycygqc3RyaW5nKTsKKyAg
ICBDUkFTSCgpOwogfQogCiBURVNUKFRleHRDb2RlYywgVVRGOCkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvV1RGU3RyaW5nVXRpbGl0aWVzLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1dURlN0cmluZ1V0aWxpdGllcy5oCmluZGV4IGVjYmE5YzQuLmY1ZDQxZWQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvV1RGU3RyaW5nVXRpbGl0aWVzLmgKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9XVEZTdHJpbmdVdGlsaXRpZXMuaApAQCAtNTEsNSArNTEsNyBAQCBzdGF0aWMg
U3RyaW5nIHV0ZjE2U3RyaW5nKGNvbnN0IGNoYXIxNl90ICgmdXJsKVtsZW5ndGhdKQogICAgIGJ1
aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KGxlbmd0aCAtIDEpOwogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbGVuZ3RoIC0gMTsgKytpKQogICAgICAgICBidWlsZGVyLmFwcGVuZChzdGF0aWNfY2Fz
dDxVQ2hhcj4odXJsW2ldKSk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKaW5kZXggMDU1NTQx
OC4uNTBiMTIxNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcApAQCAtMTA2LDcgKzEwNiw5IEBA
IHN0YXRpYyBXVEY6OlN0cmluZyBkdW1wUGF0aChKU0dsb2JhbENvbnRleHRSZWYgY29udGV4dCwg
SlNPYmplY3RSZWYgbm9kZVZhbHVlKQogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChkdW1w
UGF0aChjb250ZXh0LCAoSlNPYmplY3RSZWYpcGFyZW50Tm9kZSkpOwogICAgIH0KIAotICAgIHJl
dHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBzdGF0aWMgV1RGOjpTdHJpbmcgZHVtcFBhdGgoV0tCdW5kbGVQYWdlUmVmIHBh
Z2UsIFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgd29ybGQsIFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBu
b2RlKQpAQCAtMTU2LDcgKzE1OCw5IEBAIHN0YXRpYyBXVEY6OlN0cmluZyByYW5nZVRvU3RyKFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIHdvcmxkCiAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmROdW1iZXIoZW5kT2Zmc2V0KTsKICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZExpdGVyYWwoIiBvZiAiKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChkdW1wUGF0aChj
b250ZXh0LCBlbmROb2RlT2JqZWN0KSk7Ci0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBXS1JldGFp
blB0cjxXS1N0cmluZ1JlZj4gTmF2aWdhdGlvblR5cGVUb1N0cmluZyhXS0ZyYW1lTmF2aWdhdGlv
blR5cGUgdHlwZSkKQEAgLTE4NSw3ICsxODksOSBAQCBzdGF0aWMgV1RGOjpTdHJpbmcgc3R5bGVE
ZWNUb1N0cihXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25SZWYgc3R5bGUpCiAgICAgLy8gdGhl
IGVkaXRpbmcgY2xpZW50IGlmIHRoZSBzdHlsaW5nIG9wZXJhdGlvbiBzb3VyY2UgaXMgQ29tbWFu
ZEZyb21ET00gb3IgQ29tbWFuZEZyb21ET01XaXRoVXNlckludGVyZmFjZS4KICAgICBTdHJpbmdC
dWlsZGVyIHN0cmluZ0J1aWxkZXI7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8
RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiBBRERSRVNTPiIpOwotICAgIHJldHVybiBzdHJpbmdCdWls
ZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0
aWMgV1RGOjpTdHJpbmcgc2VjdXJpdHlPcmlnaW5Ub1N0cihXS1NlY3VyaXR5T3JpZ2luUmVmIG9y
aWdpbikKQEAgLTE5OSw3ICsyMDUsOSBAQCBzdGF0aWMgV1RGOjpTdHJpbmcgc2VjdXJpdHlPcmln
aW5Ub1N0cihXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbikKICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZE51bWJlcihXS1NlY3VyaXR5T3JpZ2luR2V0UG9ydChvcmlnaW4pKTsKICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZCgnfScpOwogCi0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBXVEY6OlN0cmlu
ZyBmcmFtZVRvU3RyKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUpCkBAIC0yMjMsNyArMjMxLDkgQEAg
c3RhdGljIFdURjo6U3RyaW5nIGZyYW1lVG9TdHIoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSkKICAg
ICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiZnJhbWUgKGFub255bW91cyki
KTsKICAgICB9CiAgICAgCi0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0xv
Y2FsRmlsZVNjaGVtZShXS1N0cmluZ1JlZiBzY2hlbWUpCkBAIC00NzYsNyArNDg2LDEwIEBAIHN0
YXRpYyB2b2lkIGR1bXBMb2FkRXZlbnQoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3QgY2hh
ciogZXZlbnROYW1lKQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIC0gIik7CiAg
ICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoZXZlbnROYW1lKTsKICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZCgnXG4nKTsKLSAgICBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkub3V0cHV0VGV4dChz
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLm91
dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiBzdGF0
aWMgaW5saW5lIHZvaWQgZHVtcFJlcXVlc3REZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3Vs
dChXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgU3RyaW5nQnVpbGRlciYgc3RyaW5nQnVpbGRlcikK
QEAgLTk0MCw3ICs5NTMsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmR1bXAoKQogICAg
ICAgICAgICAgaW5qZWN0ZWRCdW5kbGUuc2V0UmVwYWludFJlY3RzKGFkb3B0V0soV0tCdW5kbGVQ
YWdlQ29weVRyYWNrZWRSZXBhaW50UmVjdHMobV9wYWdlKSkuZ2V0KCkpOwogICAgIH0KIAotICAg
IGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGlu
amVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFT
SCgpOwogICAgIGluamVjdGVkQnVuZGxlLmRvbmUoKTsKIH0KIApAQCAtOTg4LDcgKzEwMDQsMTAg
QEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdLU3Ry
aW5nUmVmIHRpdGxlLCBXS0J1bmRsZUZyYW0KICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRM
aXRlcmFsKCInXG4iKTsKICAgICB9CiAKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJp
bmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRs
ZVBhZ2U6OmRpZENsZWFyV2luZG93Rm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tC
dW5kbGVTY3JpcHRXb3JsZFJlZiB3b3JsZCkKQEAgLTEwNDMsNyArMTA2MiwxMCBAQCB2b2lkIElu
amVjdGVkQnVuZGxlUGFnZTo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKFdLQnVu
ZGxlUGFnZVJlZiwgV0tCdQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIC0gd2ls
bFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMOiAiKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
ZChwYXRoU3VpdGFibGVGb3JUZXN0UmVzdWx0KHVybCkpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiIFxuIik7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsK
KyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdl
OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJlZiBmcmFt
ZSwgV0tTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSB0eXBlKQpAQCAtMTA3Nyw3ICsxMDk5LDEw
IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFt
ZShXS0J1bmRsZUZyYW1lUmVmIGZyYW1lKQogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExp
dGVyYWwoIiAtIGhhcyAiKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIocGVu
ZGluZ0ZyYW1lVW5sb2FkRXZlbnRzKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRl
cmFsKCIgb251bmxvYWQgaGFuZGxlcihzKVxuIik7Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91
dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5k
bGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0go
KTsKICAgICB9CiB9CiAKQEAgLTExNTAsNyArMTE3NSwxMCBAQCBXS1VSTFJlcXVlc3RSZWYgSW5q
ZWN0ZWRCdW5kbGVQYWdlOjp3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYg
cGFnZQogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiByZWRpcmVjdFJlc3Bv
bnNlICIpOwogICAgICAgICBkdW1wUmVzcG9uc2VEZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJl
c3VsdChyZXNwb25zZSwgc3RyaW5nQnVpbGRlciwgaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigp
LT5zaG91bGREdW1wQWxsSFRUUFJlZGlyZWN0ZWRSZXNwb25zZUhlYWRlcnMoKSk7CiAgICAgICAg
IHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRw
dXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGluamVjdGVkQnVuZGxl
Lm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7
CiAgICAgfQogCiAgICAgaWYgKGluamVjdGVkQnVuZGxlLmlzVGVzdFJ1bm5pbmcoKSAmJiBpbmpl
Y3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPndpbGxTZW5kUmVxdWVzdFJldHVybnNOdWxsKCkpCkBA
IC0xMTg2LDcgKzEyMTQsMTAgQEAgV0tVUkxSZXF1ZXN0UmVmIEluamVjdGVkQnVuZGxlUGFnZTo6
d2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UKICAgICAgICAgICAg
IHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwg
VVJMICIpOwogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQodG9XVEZTdHJpbmcodXJs
U3RyaW5nKSk7CiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAg
ICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygp
KTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KQEAgLTEyMTUsNyArMTI0NiwxMCBAQCB2
b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2UoV0tC
dW5kbGVQYWdlUmVmIHBhZ2UsIFdLQgogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVy
YWwoIiAtIGRpZFJlY2VpdmVSZXNwb25zZSAiKTsKICAgICAgICAgZHVtcFJlc3BvbnNlRGVzY3Jp
cHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQocmVzcG9uc2UsIHN0cmluZ0J1aWxkZXIpOwogICAg
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUu
b3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1
bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFT
SCgpOwogICAgIH0KIAogCkBAIC0xMjM5LDcgKzEyNzMsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRs
ZVBhZ2U6OmRpZFJlY2VpdmVSZXNwb25zZUZvclJlc291cmNlKFdLQnVuZGxlUGFnZVJlZiBwYWdl
LCBXS0IKIAogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwogCi0gICAgaW5qZWN0ZWRC
dW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5k
bGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAK
IHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlQ29udGVudExlbmd0aEZvclJlc291
cmNlKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgdWludDY0X3QsIHVpbnQ2NF90
KQpAQCAtMTI1OCw3ICsxMjk1LDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRGaW5p
c2hMb2FkRm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lCiAgICAgU3Ry
aW5nQnVpbGRlciBzdHJpbmdCdWlsZGVyOwogICAgIGR1bXBSZXNvdXJjZVVSTChpZGVudGlmaWVy
LCBzdHJpbmdCdWlsZGVyKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiAtIGRp
ZEZpbmlzaExvYWRpbmdcbiIpOwotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5n
QnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7
CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFn
ZTo6ZGlkRmFpbExvYWRGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVS
ZWYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIFdLRXJyb3JSZWYgZXJyb3IpCkBAIC0xMjc2LDcgKzEz
MTYsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZhaWxMb2FkRm9yUmVzb3VyY2Uo
V0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmUKIAogICAgIGR1bXBFcnJvckRlc2NyaXB0
aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KGVycm9yLCBzdHJpbmdCdWlsZGVyKTsKICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJp
bmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBJbmplY3RlZEJ1bmRs
ZVBhZ2U6OnNob3VsZENhY2hlUmVzcG9uc2UoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1l
UmVmLCB1aW50NjRfdCBpZGVudGlmaWVyKQpAQCAtMTI5MSw3ICsxMzM0LDEwIEBAIGJvb2wgSW5q
ZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRDYWNoZVJlc3BvbnNlKFdLQnVuZGxlUGFnZVJlZiwgV0tC
dW5kbGVGcmFtZVJlZiwKICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7CiAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmROdW1iZXIoaWRlbnRpZmllcik7CiAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmRMaXRlcmFsKCIgLSB3aWxsQ2FjaGVSZXNwb25zZTogY2FsbGVkXG4iKTsKLSAgICBpbmpl
Y3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpbmplY3Rl
ZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsK
IAogICAgIC8vIFRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIHRoZSBjYWNoZSB0aGUgcmVzcG9uc2Uu
CiAgICAgcmV0dXJuIHRydWU7CkBAIC0xMzM1LDcgKzEzODEsMTAgQEAgV0tCdW5kbGVQYWdlUG9s
aWN5QWN0aW9uIEluamVjdGVkQnVuZGxlUGFnZTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbihXS0IKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgc2hvdWxkIG9w
ZW4gVVJMcyBleHRlcm5hbGx5IC0gIik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKFdL
QnVuZGxlTmF2aWdhdGlvbkFjdGlvbkdldFNob3VsZE9wZW5FeHRlcm5hbFVSTHMobmF2aWdhdGlv
bkFjdGlvbikgPyAieWVzIiA6ICJubyIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgn
XG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIGlmICghaW5q
ZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5pc1BvbGljeURlbGVnYXRlRW5hYmxlZCgpKQpAQCAt
MTM2Myw3ICsxNDEyLDEwIEBAIFdLQnVuZGxlUGFnZVBvbGljeUFjdGlvbiBJbmplY3RlZEJ1bmRs
ZVBhZ2U6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV0tCCiAgICAgfQogCiAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4
dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmlu
Z0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgq
c3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAgICBpbmplY3RlZEJ1bmRs
ZS50ZXN0UnVubmVyKCktPm5vdGlmeURvbmUoKTsKIApAQCAtMTM4NCw3ICsxNDM2LDEwIEBAIFdL
QnVuZGxlUGFnZVBvbGljeUFjdGlvbiBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRlY2lkZVBvbGljeUZv
clJlc3BvbnNlKFdLQnVuZGxlUGFnCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiUG9saWN5IGRlbGVnYXRlOiByZXNvdXJjZSBpcyBhbiBhdHRhY2htZW50LCBzdWdnZXN0ZWQg
ZmlsZSBuYW1lIFwnIik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5n
KGZpbGVuYW1lKSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCdcbiIp
OwotICAgICAgICBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkub3V0cHV0VGV4dChzdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCku
b3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsK
ICAgICB9CiAKICAgICBpZiAoaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpICYmIGluamVjdGVk
QnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkRGVjaWRlUmVzcG9uc2VQb2xpY3lBZnRlckRlbGF5
KCkpCkBAIC0xNDgxLDEwICsxNTM2LDEzIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxs
QWRkTWVzc2FnZVRvQ29uc29sZShXS1N0cmluZ1JlZiBtZXNzYWdlLCB1aW50MzJfdCBsCiAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmQobWVzc2FnZVN0cmluZyk7CiAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmQoJ1xuJyk7CiAKLSAgICBpZiAoaW5qZWN0ZWRCdW5kbGUuZHVtcEpTQ29uc29sZUxvZ0lu
U3RkRXJyKCkpCi0gICAgICAgIGluamVjdGVkQnVuZGxlLmR1bXBUb1N0ZEVycihzdHJpbmdCdWls
ZGVyLnRvU3RyaW5nKCkpOwotICAgIGVsc2UKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0
VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICBpZiAoaW5qZWN0ZWRCdW5kbGUuZHVt
cEpTQ29uc29sZUxvZ0luU3RkRXJyKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5kdW1w
VG9TdGRFcnIoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGluamVjdGVkQnVu
ZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9
CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsU2V0U3RhdHVzYmFyVGV4dChXS1N0cmlu
Z1JlZiBzdGF0dXNiYXJUZXh0KQpAQCAtMTUwMCw3ICsxNTU4LDEwIEBAIHZvaWQgSW5qZWN0ZWRC
dW5kbGVQYWdlOjp3aWxsU2V0U3RhdHVzYmFyVGV4dChXS1N0cmluZ1JlZiBzdGF0dXNiYXJUZXh0
KQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiVUkgREVMRUdBVEUgU1RBVFVTIENB
TExCQUNLOiBzZXRTdGF0dXNUZXh0OiIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHRvV1RG
U3RyaW5nKHN0YXR1c2JhclRleHQpKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsK
LSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAg
Q1JBU0goKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxSdW5KYXZhU2NyaXB0
QWxlcnQoV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tCdW5kbGVGcmFtZVJlZikKQEAgLTE1MTMsNyAr
MTU3NCwxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFJ1bkphdmFTY3JpcHRBbGVy
dChXS1N0cmluZ1JlZiBtZXNzYWdlLCBXS0J1bmRsZUZyYQogICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiQUxFUlQ6ICIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHRvV1RGU3Ry
aW5nKG1lc3NhZ2UpKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBpbmpl
Y3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpbmplY3Rl
ZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsK
IH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxSdW5KYXZhU2NyaXB0Q29uZmlybShX
S1N0cmluZ1JlZiBtZXNzYWdlLCBXS0J1bmRsZUZyYW1lUmVmKQpAQCAtMTUyNiw3ICsxNTkwLDEw
IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUnVuSmF2YVNjcmlwdENvbmZpcm0oV0tT
dHJpbmdSZWYgbWVzc2FnZSwgV0tCdW5kbGVGCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRl
cmFsKCJDT05GSVJNOiAiKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyht
ZXNzYWdlKSk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgaW5qZWN0ZWRC
dW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5k
bGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAK
IHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUnVuSmF2YVNjcmlwdFByb21wdChXS1N0cmlu
Z1JlZiBtZXNzYWdlLCBXS1N0cmluZ1JlZiBkZWZhdWx0VmFsdWUsIFdLQnVuZGxlRnJhbWVSZWYp
CkBAIC0xNTM3LDcgKzE2MDQsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxSdW5K
YXZhU2NyaXB0UHJvbXB0KFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLU3RyaW5nUmUKICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgZGVmYXVsdCB0ZXh0OiAiKTsKICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhkZWZhdWx0VmFsdWUpKTsKICAgICBzdHJpbmdCdWls
ZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkub3V0cHV0
VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRv
bigpLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQog
CiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVhY2hBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
UXVvdGEoV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIGludDY0X3QgdG90YWxCeXRlc05lZWRl
ZCkKQEAgLTE1NTYsNyArMTYyNiwxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVh
Y2hBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV0tTZWN1cml0eU9yaWdpblJlZgogICAgICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiB0b3RhbFNwYWNlTmVlZGVkOn4iKTsKICAg
ICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIodHJ1bmNhdGVkU3BhY2VOZWVkZWQpOwog
ICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5k
bGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0
byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3Rl
ZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBD
UkFTSCgpOwogICAgIH0KIAogICAgIGlmIChpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNo
b3VsZERpc2FsbG93SW5jcmVhc2VGb3JBcHBsaWNhdGlvbkNhY2hlUXVvdGEoKSkKQEAgLTE1NzYs
NyArMTY0OSwxMCBAQCB1aW50NjRfdCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEV4Y2VlZERhdGFi
YXNlUXVvdGEoV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sCiAgICAgICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiIGRhdGFiYXNlOiIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZCh0b1dURlN0cmluZyhkYXRhYmFzZU5hbWUpKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmQoJ1xuJyk7Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVp
bGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3Ry
aW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICB1
aW50NjRfdCBkZWZhdWx0UXVvdGEgPSA1ICogMTAyNCAqIDEwMjQ7CkBAIC0xNTk1LDcgKzE2NzEs
MTAgQEAgdWludDY0X3QgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRFeGNlZWREYXRhYmFzZVF1b3Rh
KFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLAogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmRMaXRlcmFsKCJVSSBERUxFR0FURSBEQVRBQkFTRSBDQUxMQkFDSzogaW5jcmVhc2VkIHF1
b3RhIHRvICIpOwogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIobmV3UXVv
dGEpOwogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgICAg
ICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7Cisg
ICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAgICAgfQog
ICAgIHJldHVybiBuZXdRdW90YTsKQEAgLTE2NjksNyArMTc0OCwxMCBAQCBib29sIEluamVjdGVk
QnVuZGxlUGFnZTo6c2hvdWxkQmVnaW5FZGl0aW5nKFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYgcmFu
Z2UpCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRURJVElORyBERUxFR0FU
RTogc2hvdWxkQmVnaW5FZGl0aW5nSW5ET01SYW5nZToiKTsKICAgICAgICAgc3RyaW5nQnVpbGRl
ci5hcHBlbmQocmFuZ2VUb1N0cihtX3BhZ2UsIG1fd29ybGQuZ2V0KCksIHJhbmdlKSk7CiAgICAg
ICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBpbmplY3RlZEJ1bmRsZS5v
dXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGluamVjdGVkQnVu
ZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNI
KCk7CiAgICAgfQogICAgIHJldHVybiBpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3Vs
ZEFsbG93RWRpdGluZygpOwogfQpAQCAtMTY4NSw3ICsxNzY3LDEwIEBAIGJvb2wgSW5qZWN0ZWRC
dW5kbGVQYWdlOjpzaG91bGRFbmRFZGl0aW5nKFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYgcmFuZ2Up
CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRURJVElORyBERUxFR0FURTog
c2hvdWxkRW5kRWRpdGluZ0luRE9NUmFuZ2U6Iik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kKHJhbmdlVG9TdHIobV9wYWdlLCBtX3dvcmxkLmdldCgpLCByYW5nZSkpOwogICAgICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0
VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5v
dXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwog
ICAgIH0KICAgICByZXR1cm4gaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGRBbGxv
d0VkaXRpbmcoKTsKIH0KQEAgLTE3MTEsNyArMTc5NiwxMCBAQCBib29sIEluamVjdGVkQnVuZGxl
UGFnZTo6c2hvdWxkSW5zZXJ0Tm9kZShXS0J1bmRsZU5vZGVIYW5kbGVSZWYgbm9kZSwgV0tCdW5k
bGVSYQogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiBnaXZlbkFjdGlvbjoi
KTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoaW5zZXJ0YWN0aW9uc3RyaW5nW2FjdGlv
bl0pOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0
ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBp
bmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBDUkFTSCgpOwogICAgIH0KICAgICByZXR1cm4gaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5l
cigpLT5zaG91bGRBbGxvd0VkaXRpbmcoKTsKIH0KQEAgLTE3MzcsNyArMTgyNSwxMCBAQCBib29s
IEluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkSW5zZXJ0VGV4dChXS1N0cmluZ1JlZiB0ZXh0LCBX
S0J1bmRsZVJhbmdlSGFuZGxlUgogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwo
IiBnaXZlbkFjdGlvbjoiKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoaW5zZXJ0YWN0
aW9uc3RyaW5nW2FjdGlvbl0pOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsK
LSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICByZXR1cm4gaW5qZWN0ZWRC
dW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGRBbGxvd0VkaXRpbmcoKTsKIH0KQEAgLTE3NTMsNyAr
MTg0NCwxMCBAQCBib29sIEluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkRGVsZXRlUmFuZ2UoV0tC
dW5kbGVSYW5nZUhhbmRsZVJlZiByYW5nZSkKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRM
aXRlcmFsKCJFRElUSU5HIERFTEVHQVRFOiBzaG91bGREZWxldGVET01SYW5nZToiKTsKICAgICAg
ICAgc3RyaW5nQnVpbGRlci5hcHBlbmQocmFuZ2VUb1N0cihtX3BhZ2UsIG1fd29ybGQuZ2V0KCks
IHJhbmdlKSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBp
bmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAg
ICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
ICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIHJldHVybiBpbmplY3RlZEJ1bmRsZS50ZXN0
UnVubmVyKCktPnNob3VsZEFsbG93RWRpdGluZygpOwogfQpAQCAtMTc4NCw3ICsxODc4LDEwIEBA
IGJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKFdLQnVu
ZGxlUmFuZ2VIYW5kbGVSZWYgZnJvbVJhCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiIHN0aWxsU2VsZWN0aW5nOiIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChi
b29sc3RyaW5nW3N0aWxsU2VsZWN0aW5nXSk7IAogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
ZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICByZXR1cm4g
aW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGRBbGxvd0VkaXRpbmcoKTsKIH0KQEAg
LTE4MDIsNyArMTg5OSwxMCBAQCBib29sIEluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkQXBwbHlT
dHlsZShXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25SZWYgc3R5bGUsCiAgICAgICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIHRvRWxlbWVudHNJbkRPTVJhbmdlOiIpOwogICAgICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZChyYW5nZVRvU3RyKG1fcGFnZSwgbV93b3JsZC5nZXQoKSwg
cmFuZ2UpKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGlu
amVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAg
ICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgcmV0dXJuIGluamVjdGVkQnVuZGxlLnRlc3RS
dW5uZXIoKS0+c2hvdWxkQWxsb3dFZGl0aW5nKCk7CiB9CkBAIC0xODE5LDcgKzE5MTksMTAgQEAg
dm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEJlZ2luRWRpdGluZyhXS1N0cmluZ1JlZiBub3Rp
ZmljYXRpb25OYW1lKQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRURJVElORyBE
RUxFR0FURTogd2ViVmlld0RpZEJlZ2luRWRpdGluZzoiKTsKICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZCh0b1dURlN0cmluZyhub3RpZmljYXRpb25OYW1lKSk7CiAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmQoJ1xuJyk7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBl
bHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRF
bmRFZGl0aW5nKFdLU3RyaW5nUmVmIG5vdGlmaWNhdGlvbk5hbWUpCkBAIC0xODM0LDcgKzE5Mzcs
MTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEVuZEVkaXRpbmcoV0tTdHJpbmdSZWYg
bm90aWZpY2F0aW9uTmFtZSkKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIkVESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRFbmRFZGl0aW5nOiIpOwogICAgIHN0cmluZ0J1aWxkZXIu
YXBwZW5kKHRvV1RGU3RyaW5nKG5vdGlmaWNhdGlvbk5hbWUpKTsKICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZCgnXG4nKTsKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAg
IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRp
ZENoYW5nZShXS1N0cmluZ1JlZiBub3RpZmljYXRpb25OYW1lKQpAQCAtMTg0OSw3ICsxOTU1LDEw
IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRDaGFuZ2UoV0tTdHJpbmdSZWYgbm90aWZp
Y2F0aW9uTmFtZSkKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIkVESVRJTkcgREVM
RUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6Iik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQodG9X
VEZTdHJpbmcobm90aWZpY2F0aW9uTmFtZSkpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdc
bicpOwotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAg
ICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2hhbmdlU2Vs
ZWN0aW9uKFdLU3RyaW5nUmVmIG5vdGlmaWNhdGlvbk5hbWUpCkBAIC0xODY0LDcgKzE5NzMsMTAg
QEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZENoYW5nZVNlbGVjdGlvbihXS1N0cmluZ1Jl
ZiBub3RpZmljYXRpb25OYW1lKQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRURJ
VElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjoiKTsKICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhub3RpZmljYXRpb25OYW1lKSk7CiAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5n
KTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVF
Tl9BUEkpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmNwcAppbmRleCBlNjJlYjkzLi45MjY4ODQ5IDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTE2Nzgs
MTAgKzE2NzgsMTMgQEAgdm9pZCBUZXN0UnVubmVyOjpzdGF0aXN0aWNzRGlkUnVuVGVsZW1ldHJ5
Q2FsbGJhY2sodW5zaWduZWQgdG90YWxQcmV2YWxlbnRSZXNvdXIKICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZExpdGVyYWwoIiwgXCJ0b3AzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luc1wiIDog
Iik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIodG9wM1N1YmZyYW1lVW5kZXJUb3BG
cmFtZU9yaWdpbnMpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIH0iKTsKKwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAg
ICBKU1ZhbHVlUmVmIHJlc3VsdCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmcoY29udGV4dCwg
SlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyaW5nLT51dGY4KCkuZGF0YSgpKSk7CiAg
ICAgCi0gICAgSlNWYWx1ZVJlZiByZXN1bHQgPSBKU1ZhbHVlTWFrZUZyb21KU09OU3RyaW5nKGNv
bnRleHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKS51dGY4KCkuZGF0YSgpKSk7Ci0gICAgCi0gICAgY2FsbFRlc3RSdW5uZXJDYWxsYmFjayhT
dGF0aXN0aWNzRGlkUnVuVGVsZW1ldHJ5Q2FsbGJhY2tJRCwgMSwgJnJlc3VsdCk7CisgICAgICAg
IGNhbGxUZXN0UnVubmVyQ2FsbGJhY2soU3RhdGlzdGljc0RpZFJ1blRlbGVtZXRyeUNhbGxiYWNr
SUQsIDEsICZyZXN1bHQpOworICAgIH0gZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lk
IFRlc3RSdW5uZXI6OnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpCkBAIC0xODkxLDEwICsxODk0
LDEzIEBAIHZvaWQgVGVzdFJ1bm5lcjo6Y2FsbERpZFJlY2VpdmVBbGxTdG9yYWdlQWNjZXNzRW50
cmllc0NhbGxiYWNrKFZlY3RvcjxTdHJpbmc+JiBkCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiXCIiKTsKICAgICB9CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFs
KCJdIik7Ci0gICAgCi0gICAgSlNWYWx1ZVJlZiByZXN1bHQgPSBKU1ZhbHVlTWFrZUZyb21KU09O
U3RyaW5nKGNvbnRleHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CiAKLSAgICBjYWxsVGVzdFJ1bm5lckNhbGxi
YWNrKEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzQ2FsbGJhY2tJRCwgMSwgJnJlc3VsdCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIEpT
VmFsdWVSZWYgcmVzdWx0ID0gSlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmluZyhjb250ZXh0LCBKU1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmctPnV0ZjgoKS5kYXRhKCkpKTsKKworICAg
ICAgICBjYWxsVGVzdFJ1bm5lckNhbGxiYWNrKEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzQ2FsbGJh
Y2tJRCwgMSwgJnJlc3VsdCk7CisgICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKICNp
ZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
CmluZGV4IDY4YzQ5YzguLmYzYmE3ZmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwCkBAIC0xODgxLDcgKzE4ODEsMTAgQEAgV0tTdHJpbmdSZWYgVGVzdENvbnRy
b2xsZXI6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lKFdLQ29udGV4dFJl
ZiwKICAgICAgICAgYnVpbGRlci5hcHBlbmQoIkRvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3Rl
ZCBmaWxlbmFtZSBcIiIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChzdWdnZXN0ZWRGaWxlbmFt
ZSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJcIlxuIik7Ci0gICAgICAgIG1fY3VycmVudElu
dm9jYXRpb24tPm91dHB1dFRleHQoYnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgbV9jdXJyZW50SW52
b2NhdGlvbi0+b3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
Q1JBU0goKTsKICAgICB9CiAKICAgICBjb25zdCBjaGFyKiBkdW1wUmVuZGVyVHJlZVRlbXAgPSBs
aWJyYXJ5UGF0aEZvclRlc3RpbmcoKTsKQEAgLTE5MTEsNyArMTkxNCwxMCBAQCB2b2lkIFRlc3RD
b250cm9sbGVyOjpkb3dubG9hZERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdFRvVVJMKFdLQ29udGV4
dFJlZiwgV0tEb3dubAogICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gdXJsU3RyaW5n
V0sgPSBhZG9wdFdLKFdLVVJMQ29weVN0cmluZyh1cmwpKTsKICAgICAgICAgYnVpbGRlci5hcHBl
bmQodG9TVEQodXJsU3RyaW5nV0spLmNfc3RyKCkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZExp
dGVyYWwoIlwiLlxuIik7Ci0gICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPm91dHB1dFRleHQo
YnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+b3V0cHV0VGV4dCgq
c3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9CiAK
QEAgLTE5MzQsNyArMTk0MCwxMCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZEZh
aWwoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmLCBXS0Vycm9yUmVmIGVycgogICAgICAgICBl
cnJvckJ1aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5nKGVycm9yRGVzY3JpcHRpb24pKTsKICAgICAg
ICAgZXJyb3JCdWlsZGVyLmFwcGVuZCgiXG4iKTsKIAotICAgICAgICBtX2N1cnJlbnRJbnZvY2F0
aW9uLT5vdXRwdXRUZXh0KGVycm9yQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gZXJyb3JCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBtX2N1cnJl
bnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBDUkFTSCgpOwogICAgIH0KICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5ub3RpZnlEb3du
bG9hZERvbmUoKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdElu
dm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAK
aW5kZXggY2Q1ZGIwYS4uZWUyZjU1MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHAKQEAgLTI0OCw5ICsyNDgsMTIgQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6Zm9y
Y2VSZXBhaW50RG9uZUNhbGxiYWNrKFdLRXJyb3JSZWYgZXJyb3IsIHZvaWQqIGNvbnRleHQpCiAK
IHZvaWQgVGVzdEludm9jYXRpb246OmR1bXBSZXN1bHRzKCkKIHsKLSAgICBpZiAobV90ZXh0T3V0
cHV0Lmxlbmd0aCgpIHx8ICFtX2F1ZGlvUmVzdWx0KQotICAgICAgICBkdW1wKG1fdGV4dE91dHB1
dC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIGVsc2UKKyAgICBpZiAobV90ZXh0T3V0
cHV0Lmxlbmd0aCgpIHx8ICFtX2F1ZGlvUmVzdWx0KSB7CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IG1fdGV4dE91dHB1dC50b1N0cmluZygpKQorICAgICAgICAgICAgZHVtcChzdHJpbmctPnV0
ZjgoKS5kYXRhKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOworICAgIH0g
ZWxzZQogICAgICAgICBkdW1wQXVkaW8obV9hdWRpb1Jlc3VsdC5nZXQoKSk7CiAKICAgICBpZiAo
bV9kdW1wUGl4ZWxzKSB7Ci0tIAoyLjkuMwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339222</attachid>
            <date>2018-05-01 13:54:43 -0700</date>
            <delta_ts>2018-05-01 15:02:48 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Teach-StringBuilder-that-it-is-fallible.patch</filename>
            <type>text/plain</type>
            <size>477612</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSBkNWIxOGJlMzRjYjU1ODg5YWZjMjM0YTk1YTIyNjYzYzg1YmVjNGU5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBXZWQsIDI1IEFwciAyMDE4IDIxOjUwOjI0IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gVGVhY2gg
U3RyaW5nQnVpbGRlciB0aGF0IGl0IGlzIGZhbGxpYmxlCgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcCAgICAgICAgIHwgICA0ICstCiAuLi4vQVBJL3Rlc3Rz
L0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwICAgICAgICAgICB8IDMxMCArKysrKysrLS0tLS0t
CiAuLi4vQVBJL3Rlc3RzL1BpbmdQb25nU3RhY2tPdmVyZmxvd1Rlc3QuY3BwICAgICAgICB8ICAg
OSArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
fCAgOTUgKysrKwogLi4uL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCAgICAgICAg
ICAgICAgfCAgMTcgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBTbmFwc2hvdEJ1
aWxkZXIuY3BwIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNv
bGVNZXNzYWdlLmNwcCB8ICAxMyArLQogLi4uL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0
aWVzLmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9JbnRlcnByZXRlci5jcHAgIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcCB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAgICAgICAgICAgICAgICAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwICAgICAgIHwgICA5ICstCiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcCAgICB8ICAxNSArLQogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwICAgfCAgIDQgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwICAgIHwgICA0ICstCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcCB8ICAgNCAr
LQogLi4uL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgfCAg
MzQgKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAg
IHwgICA2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcCAg
ICAgICB8ICAxOCArLQogLi4uL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwICAg
ICAgICAgICAgfCAgMjEgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmpl
Y3QuY3BwICAgICAgIHwgIDE4ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRl
cmFsUGFyc2VyLmNwcCAgICB8ICAxMCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3B0aW9ucy5jcHAgICAgICAgICAgfCAgMTAgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAgIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcCB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAgICAgICAgfCAgIDQgKy0KIC4uLi9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcCAgIHwgICA0ICstCiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwICB8ICAgNCArLQogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmNwcCAgICAgfCAgIDYgKy0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVTZXQuY3BwICAgICAgICAgIHwgIDIzICst
CiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAgICAgICAgICAgICAgICB8ICAy
MCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcCAg
fCAgIDkgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcCAgICAg
ICAgIHwgICA3ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmggICAg
ICAgICAgICB8ICAzMCArLQogU291cmNlL1dURi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAxNDMgKysrKysrCiBTb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcCAg
ICAgICAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3Bw
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XVEYvd3RmL0pTT05WYWx1
ZXMuY3BwICAgICAgICAgICAgICAgICAgICAgIHwgIDExICstCiBTb3VyY2UvV1RGL3d0Zi9Mb2dn
ZXIuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMSArLQogU291cmNlL1dURi93dGYv
TWVkaWFUaW1lLmNwcCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XVEYv
d3RmL1VVSUQuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuY3BwICAgICAgICAgICAgICB8IDI2NSArKysrKyst
LS0tLQogU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmggICAgICAgICAgICAgICAg
fCAyOTcgKysrKysrLS0tLS0tCiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXJKU09O
LmNwcCAgICAgICAgICB8ICAzMSArLQogU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNw
cCAgICAgICAgICAgICAgICAgfCAgMzQgKy0KIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1w
bC5oICAgICAgICAgICAgICAgICAgIHwgIDE4ICstCiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRT
dHJlYW0uY3BwICAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA1MTAgKysrKysrKysrKysrKysrKysrKysr
CiAuLi4vTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50Q29udGFjdENvY29hLm1tICB8ICAg
NSArLQogLi4uL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24u
Y3BwIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRh
LmNwcCAgICB8ICAxNSArLQogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5
UGF0aC5jcHAgICAgfCAgIDQgKy0KIC4uLi9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSW5kZXhW
YWx1ZVN0b3JlLmNwcCAgIHwgICA0ICstCiAuLi4vTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NR
TGl0ZUlEQkN1cnNvci5jcHAgICB8ICAgOCArLQogLi4uL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JREJEYXRhYmFzZUluZm8uY3BwICAgfCAgIDQgKy0KIC4uLi9pbmRleGVkZGIvc2hhcmVkL0lE
Qk9iamVjdFN0b3JlSW5mby5jcHAgICAgICAgIHwgICA0ICstCiAuLi4vbWVkaWFzZXNzaW9uL1dl
Yk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwICAgICAgICB8ICAgOCArLQogLi4uL01vZHVsZXMvbWVk
aWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCAgfCAgIDggKy0KIC4uLi9Nb2R1bGVz
L3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcCAgIHwgICA0ICstCiAuLi4vTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwICAgICAgICB8ICAgNCArLQogU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAgICAgfCAgIDggKy0K
IC4uLi93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwICAgIHwgICA4
ICstCiAuLi4vTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAgICAgICB8
ICAyMyArLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwICAg
ICAgfCAgMTggKy0KIC4uLi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5jcHAgIHwgIDEwICstCiAuLi4vbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFj
Lm1tICAgICAgICB8ICAxMSArLQogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252
ZXJ0U3RyaW5ncy5jcHAgfCAgIDQgKy0KIC4uLi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhj
ZXB0aW9uSGFuZGxpbmcuY3BwIHwgIDE2ICstCiAuLi4vY29udGVudGV4dGVuc2lvbnMvQ29tYmlu
ZWRVUkxGaWx0ZXJzLmNwcCAgICAgICB8ICAgNCArLQogLi4uL1dlYkNvcmUvY29udGVudGV4dGVu
c2lvbnMvQ29udGVudEV4dGVuc2lvbi5jcHAgfCAgIDcgKy0KIC4uLi9jb250ZW50ZXh0ZW5zaW9u
cy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwIHwgICA1ICstCiAuLi4vQ29udGVudEV4dGVu
c2lvblN0eWxlU2hlZXQuY3BwICAgICAgICAgICAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNv
cmUvY29udGVudGV4dGVuc2lvbnMvVGVybS5oICAgICAgICAgICAgfCAgIDggKy0KIC4uLi9XZWJD
b3JlL2Nzcy9DU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuY3BwIHwgICA0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQmFzaWNTaGFwZXMuY3BwICAgICAgICAgICAgICB8ICAyMCArLQog
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwICAgICAgICAgfCAgIDgg
Ky0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwICAgICAgICAg
ICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwICAg
ICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXN0b21JZGVudFZhbHVlLmNw
cCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1
ZS5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVs
ZS5jcHAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFj
ZVNyY1ZhbHVlLmNwcCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dEZlYXR1cmVWYWx1ZS5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ZvbnRTdHlsZVJhbmdlVmFsdWUuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250U3R5bGVWYWx1ZS5jcHAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRm9udFZhbHVlLmNwcCAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHAgICAgICAgfCAgIDQgKy0KIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGdW5jdGlvblZhbHVlLmNwcCAgICAgICAgICAgIHwgICA0ICstCiBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAgICAgICAgICAgICB8ICAxMiAr
LQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRBdXRvUmVwZWF0VmFsdWUuY3BwICAgICAgfCAg
IDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcCAg
IHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAgICAgICAg
ICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUuY3BwICAgICAg
ICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZVJ1bGUuY3Bw
ICAgICAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVzUnVs
ZS5jcHAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0xpbmVCb3hD
b250YWluVmFsdWUuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNYXJr
dXAuY3BwICAgICAgICAgICAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
TWVkaWFSdWxlLmNwcCAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3Nz
L0NTU05hbWVzcGFjZVJ1bGUuY3BwICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYWdlUnVsZS5jcHAgICAgICAgICAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwICAgICAgICAgICB8ICAxMiArLQogU291cmNl
L1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5U291cmNlRGF0YS5jcHAgICAgICAgfCAgIDQgKy0KIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAgICAgICAgICAgICAgICAgIHwgIDE3ICst
CiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0LmNwcCAgICAgICAgICAgICB8ICAg
NCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU1NoYWRvd1ZhbHVlLmNwcCAgICAgICAgICAgICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUuY3BwICAgICAgICAgICAg
ICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAgICAgICAg
ICAgICAgICB8ICAgOSArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1cHBvcnRzUnVsZS5jcHAg
ICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUaW1pbmdGdW5jdGlv
blZhbHVlLmNwcCAgICAgIHwgIDE2ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0
LmNwcCAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU1Zhcmlh
YmxlRGF0YS5jcHAgICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9ET01D
U1NOYW1lc3BhY2UuY3BwICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3Mv
RE9NTWF0cml4UmVhZE9ubHkuY3BwICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUv
Y3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJD
b3JlL2Nzcy9Gb250RmFjZS5jcHAgICAgICAgICAgICAgICAgICAgIHwgIDEyICstCiBTb3VyY2Uv
V2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcCAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogU291
cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwICAgICAgICAgICAgICAgICAgfCAgIDQgKy0K
IFNvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAgICAgICAgIHwgICA1
ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvUmVjdC5oICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAgICAgICAgICAg
ICAgfCAgMzAgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwICAgICAg
ICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxl
LmNwcCAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIu
Y3BwICAgICAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFy
c2VyVG9rZW4uY3BwICAgICAgIHwgIDg3ICsrLS0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUGFyc2VyVG9rZW5SYW5nZS5jcHAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcCAgICB8ICAyNyArLQogU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NUb2tlbml6ZXIuY3BwICAgICAgICAgfCAgMzggKy0KIFNvdXJjZS9XZWJDb3Jl
L2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAgICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQogU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuY3BwICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjIgKy0KIFNv
dXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAgICAgICAgICAgICAgICAgICAgIHwgICA1ICst
CiBTb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwICAgICAgICAgICAgICAgICAgICAgICB8ICAg
OSArLQogU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRleHQuY3BwICAgICAgICAg
ICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgOSArLQogU291cmNlL1dlYkNvcmUvZG9tL1RleHROb2RlVHJhdmVyc2FsLmNw
cCAgICAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNv
bW1hbmQuY3BwICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcu
Y3BwICAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9IVE1M
SW50ZXJjaGFuZ2UuY3BwICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
TWFya3VwQWNjdW11bGF0b3IuY3BwICAgICAgIHwgIDE3ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1RleHRJdGVyYXRvci5jcHAgICAgICAgICAgICB8ICAxMSArLQogU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAgICAgICAgIHwgICA1ICstCiBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0gICAgICB8ICAgOCArLQogU291
cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tICAgICAgfCAgIDUgKy0K
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbSAgICAgICAgICAgIHwgICA1
ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAgICAgICAgICAgICAgICAgICB8
ICAyNyArLQogU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcCAgICAg
ICAgfCAgMjQgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcCAgICAgICAg
ICAgICAgIHwgICA5ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcCAg
ICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNw
cCAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xs
ZXIuY3BwICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNo
b3JFbGVtZW50LmNwcCAgICAgICAgICB8ICAxMiArLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5jcHAgICAgICAgICAgfCAgMjEgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZvbnRFbGVtZW50LmNwcCAgICAgICAgICAgIHwgICA3ICstCiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCAgICAgICAgICAgfCAgIDkgKy0KIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwICAgICAgICAgIHwgICA0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCB8ICAxMiArLQog
U291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcCAgICAgICAgICAgICAgfCAgIDUg
Ky0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAgICAgICAgIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRnJhZ21lbnRVUklQYXJzZXIuY3BwICAg
ICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3BwICAgICAgICAgICAg
ICAgICAgfCAgMTQgKy0KIC4uLi9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
Y3BwICAgICAgIHwgICA0ICstCiAuLi4vaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQmFzZS5jcHAgICB8ICAgNyArLQogLi4uL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxTb3VyY2VUcmFja2VyLmNwcCAgIHwgICA3ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MVG9rZW5pemVyLmNwcCAgICAgICB8ICAxMiArLQogU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcCAgICAgfCAgMjcgKy0KIFNvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL0J1ZmZlcmVkTGluZVJlYWRlci5jcHAgICB8ICAgOCArLQogU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcCAgICAgICAgICAgICAgIHwgICA2ICstCiBT
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAgICAgICAgICB8ICAgNSAr
LQogU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3BwICAgICAgfCAg
NjMgKystCiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAg
ICB8ICAxNyArLQogLi4uL2FnZW50cy9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3Bw
ICAgICAgfCAgMTMgKy0KIC4uLi9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2Vu
dC5jcHAgICAgIHwgICA3ICstCiAuLi4vV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkNvbnNv
bGVBZ2VudC5jcHAgICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2lu
QWNjZXNzQ29udHJvbC5jcHAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzLmNwcCAgIHwgICA0ICstCiAuLi4vbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVTdG9yYWdlLmNwcCAgICB8ICAyNSArLQogLi4uL1dlYkNvcmUvbG9hZGVyL2Fy
Y2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAgfCAgMjUgKy0KIC4uLi9XZWJDb3JlL2xvYWRl
ci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHAgIHwgIDM0ICstCiAuLi4vV2ViQ29yZS9w
YWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcCB8ICA2NCArKy0KIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAgICAgICAgICAgICAgICAgICB8ICAgNCArLQog
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwICAgICAgICAgICAgICAgICAgfCAgIDUg
Ky0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwICAgICAgICAgICAgIHwg
ICA3ICstCiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5jcHAg
ICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuY3BwICAg
ICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RUcmlnZ2Vy
LmNwcCAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJp
dHlQb2xpY3kuY3BwICB8ICAgOSArLQogLi4uL3BhZ2Uvc2Nyb2xsaW5nL0F4aXNTY3JvbGxTbmFw
T2Zmc2V0cy5jcHAgICAgICAgfCAgIDggKy0KIC4uLi9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdD
b29yZGluYXRvci5jcHAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9E
ZWNpbWFsLmNwcCAgICAgICAgICAgICAgICB8ICAxMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRmlsZVN5c3RlbS5jcHAgICAgICAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BPREludGVydmFsLmggICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QT0RSZWRCbGFja1RyZWUuaCAgICAgICAgICB8ICAgNSArLQogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVVJMLmNwcCAgICAgICAgICAgICAgICAgICAgfCAgMTggKy0KIC4uLi9X
ZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5jcHAgIHwgICA1ICstCiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcCAgICB8ICAgNCAr
LQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9Vc2VyQWdlbnRHTGliLmNwcCAgICAgfCAg
IDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcCAgICAgICAg
IHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9y
LmNwcCB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2Nh
ZGUuY3BwICAgfCAgIDQgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9Gb250VGFnZ2VkU2V0dGlu
Z3MuY3BwICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0xheWVyLmNwcCB8ICAgNCArLQogLi4uL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQVZGLmNwcCAgICAgfCAgMTMgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9jYS9U
aWxlQ29udHJvbGxlci5jcHAgICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9UaWxlR3JpZC5jcHAgICB8ICAgNCArLQogLi4uL2dyYXBoaWNzL2NhL3dp
bi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwICAgICAgICAgfCAgIDQgKy0KIC4uLi9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAgIHwgIDEwICstCiAuLi4vb3Blbmds
L0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcCAgICAgICB8ICAxMSArLQogLi4uL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAgfCAgMTUgKy0KIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWxlY3Rpb25EYXRhLmNwcCAgICAgIHwgICA1ICst
CiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSAgICAgICB8ICAg
NCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbSAgICAg
fCAgIDYgKy0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Nyb2xsQW5pbWF0b3JNb2NrLmNw
cCAgIHwgIDE1ICstCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tC
b3guY3BwICB8ICAgOSArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFy
c2Vycy5jcHAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTUlN
RUhlYWRlci5jcHAgICAgIHwgIDEzICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Byb3h5U2VydmVyLmNwcCAgICB8ICAgNCArLQogLi4uL25ldHdvcmsvY3VybC9Db29raWVKYXJD
dXJsRGF0YWJhc2UuY3BwICAgICAgICAgfCAgIDQgKy0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL0Nvb2tpZUphck1hYy5tbSAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5jcHAgICAgfCAgMjYgKy0KIC4uLi9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmggIHwgICA4ICstCiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxlLmNwcCAgICB8ICAyMCArLQogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwICAgfCAgIDQgKy0K
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcCAgICAgIHwgIDEz
ICstCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VzZXJEZWZpbmVkLmNwcCB8
ICAgNCArLQogLi4uL3BsYXRmb3JtL3ZyL29wZW52ci9WUlBsYXRmb3JtRGlzcGxheU9wZW5WUi5j
cHAgfCAgIDUgKy0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNX
aW4uY3BwIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vVXNlckFnZW50V2lu
LmNwcCAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRo
ZW1lV1BFLmNwcCAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5
cGUuY3BwICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcCAgICAgIHwgICA5ICstCiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAgICAgICAgICAgICB8ICAyMyArLQogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tICAgICAgICAgfCAgMTAgKy0KIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAgICAgICAgIHwgICA1ICstCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAgICAgICB8ICAgOCArLQog
Li4uL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmNwcCAgICAgICAgfCAgIDUg
Ky0KIC4uLi9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNYXRoTUwuY3BwIHwg
ICA1ICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5jcHAgICAgICAg
ICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuY3BwICAg
ICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU3RyaW5nQnVpbGRlci5j
cHAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5j
cHAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZh
bHVlcy5jcHAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdM
aXN0VmFsdWVzLmNwcCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJh
bnNmb3JtTGlzdFZhbHVlcy5jcHAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RyYW5zZm9ybVZhbHVlLmNwcCAgICAgICAgICAgfCAgMjAgKy0KIFNvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmggIHwgICA4ICstCiBTb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAgICAgICAgICAgICAgICB8ICA2NCArLS0KIFNvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcCAgIHwgIDEwICstCiBTb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAgICAgICB8ICAgNCArLQog
U291cmNlL1dlYkNvcmUveG1sL1hNTEVycm9ycy5jcHAgICAgICAgICAgICAgICAgICAgfCAgIDcg
Ky0KIFNvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgICAgICAgICAgICAgIHwg
IDE1ICstCiBTb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaCAgICAgICAgICAgICAg
ICB8ICAgNyArLQogU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRnVuY3Rpb25zLmNwcCAgICAgICAg
ICAgICAgfCAgMjEgKy0KIFNvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5j
cHAgICAgICAgIHwgIDE0ICstCiAuLi4veG1sL3BhcnNlci9DaGFyYWN0ZXJSZWZlcmVuY2VQYXJz
ZXJJbmxpbmVzLmggICB8ICAgNSArLQogU291cmNlL1dlYkRyaXZlci9TZXNzaW9uSG9zdC5jcHAg
ICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgIDQ5ICsrCiAuLi4vTmV0d29ya1Byb2Nlc3MvY2FjaGUv
Q2FjaGVTdG9yYWdlRW5naW5lLmNwcCAgICB8ICAgNCArLQogLi4uL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwICAgfCAgMTggKy0KIC4uLi9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGVLZXkuY3BwICAgICAgIHwgICA0ICstCiAuLi4vY2FwdHVyZS9O
ZXR3b3JrQ2FwdHVyZU1hbmFnZXIuY3BwICAgICAgICAgICAgICB8ICAgNiArLQogLi4uL1NoYXJl
ZC9EYXRhYmFzZXMvSW5kZXhlZERCL0lEQlV0aWxpdGllcy5jcHAgICAgfCAgIDQgKy0KIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL0dhbWVwYWQvR2FtZXBhZERhdGEuY3BwICAgICAgIHwgICA0ICstCiAu
Li4vTmV0c2NhcGUvdW5peC9OZXRzY2FwZVBsdWdpbk1vZHVsZVVuaXguY3BwICAgICB8ICAgNCAr
LQogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAgICAgICAgICAgfCAg
IDcgKy0KIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVc2VyU2NyaXB0LmNwcCAgICAg
IHwgICA0ICstCiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVXNlclN0eWxlU2hlZXQu
Y3BwICB8ICAgNCArLQogLi4uL1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIu
Y3BwICAgICAgfCAgIDYgKy0KIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJk
TGlzdC5jcHAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAgICAgICAgICB8ICAgNSArLQogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcCAgICAgICAgfCAgIDUgKy0KIC4uLi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmNwcCAgIHwgIDIwICstCiAuLi4vV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1RlbGVtZXRyeS5jcHAgICAgICAgICB8ICAzMyArLQogLi4uL1BsdWdpbnMvTmV0c2Nh
cGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwICAgIHwgICA0ICstCiBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgICAgICB8ICAgNCArLQogU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgfCAgMTIgKwogLi4u
L21hYy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbSAgICAgICAgICAgfCAgIDUgKy0K
IFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0FjY2Vzc2libGVCYXNlLmNwcCAgICAgICAgIHwgICA1
ICstCiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9QbHVnaW5zL1BsdWdpblN0cmVhbS5jcHAgICB8
ICAgNSArLQogU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0U3RhdGlzdGljcy5jcHAgICAg
ICAgfCAgIDcgKy0KIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgIDc4ICsrKysKIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhy
ZWFkVGFzay5jcHAgIHwgICA0ICstCiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJp
bmdCdWlsZGVyLmNwcCAgICB8ICA5MiArKy0tCiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9TdHJpbmdWaWV3LmNwcCAgICAgICB8ICA4MCArKy0tCiAuLi4vVGVzdHMvV2ViQ29yZS9Db250
ZW50RXh0ZW5zaW9ucy5jcHAgICAgICAgICAgICB8ICA4NiArKy0tCiBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwICB8ICAzNyArLQogVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0xvZ2dpbmcuY3BwICAgICAgfCAgMzAgKy0KIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9UZXh0Q29kZWMuY3BwICAgIHwgICA0ICstCiBUb29s
cy9UZXN0V2ViS2l0QVBJL1dURlN0cmluZ1V0aWxpdGllcy5oICAgICAgICAgICB8ICAgNCArLQog
Li4uL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAgICAgICAgICAgfCAxOTYg
KysrKysrLS0KIC4uLi9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
Y3BwIHwgIDE4ICstCiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCAg
ICAgICAgICB8ICAxNSArLQogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5j
cHAgICAgICAgICAgfCAgIDkgKy0KIDMwNSBmaWxlcyBjaGFuZ2VkLCAzNjQzIGluc2VydGlvbnMo
KyksIDEzMzEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU0NvbnRleHRSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRl
eHRSZWYuY3BwCmluZGV4IDAyNWViYTQuLjVlZGY2ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQ29udGV4dFJlZi5jcHAKQEAgLTMxNCw3ICszMTQsOSBAQCBKU1N0cmluZ1JlZiBK
U0NvbnRleHRDcmVhdGVCYWNrdHJhY2UoSlNDb250ZXh0UmVmIGN0eCwgdW5zaWduZWQgbWF4U3Rh
Y2tTaXplKQogICAgIEJhY2t0cmFjZUZ1bmN0b3IgZnVuY3RvcihidWlsZGVyLCBtYXhTdGFja1Np
emUpOwogICAgIGZyYW1lLT5pdGVyYXRlKGZ1bmN0b3IpOwogCi0gICAgcmV0dXJuIE9wYXF1ZUpT
U3RyaW5nOjpjcmVhdGUoYnVpbGRlci50b1N0cmluZygpKS5sZWFrUmVmKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gT3BhcXVlSlNT
dHJpbmc6OmNyZWF0ZSgqc3RyaW5nKS5sZWFrUmVmKCk7CisgICAgQ1JBU0goKTsKIH0KIAogYm9v
bCBKU0dsb2JhbENvbnRleHRHZXRSZW1vdGVJbnNwZWN0aW9uRW5hYmxlZChKU0dsb2JhbENvbnRl
eHRSZWYgY3R4KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9F
eGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVz
dHMvRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAKaW5kZXggNjM3YjMwNC4uMTY1MjgzOSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9FeGVjdXRpb25UaW1lTGlt
aXRUZXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0V4ZWN1dGlv
blRpbWVMaW1pdFRlc3QuY3BwCkBAIC0xOTQsMjIgKzE5NCwyNSBAQCBpbnQgdGVzdEV4ZWN1dGlv
blRpbWVMaW1pdCgpCiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZE51bWJlcih0aW1l
QWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZC5zZWNvbmRzKCkpOwogICAgICAgICAgICAgc2Ny
aXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpIGJyZWFrOyB9IH0gZm9vKCk7Iik7CiAKLSAgICAg
ICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGV4
Y2VwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgICAgICBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dh
c0NhbGxlZCA9IGZhbHNlOwotICAgICAgICAgICAgYXV0byBzdGFydFRpbWUgPSBDUFVUaW1lOjpm
b3JDdXJyZW50VGhyZWFkKCk7Ci0gICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQs
IHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7Ci0gICAgICAgICAgICBh
dXRvIGVuZFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7Ci0KLSAgICAgICAgICAg
IGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZl
RmlyZWQpICYmIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQotICAgICAgICAgICAg
ICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IHRpbWVkIG91dCBhcyBleHBlY3RlZC5cbiIsIHRp
ZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYg
KChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJl
ZCkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgZGlkIG5vdCB0
aW1lIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAg
ICAgIGlmICghc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCi0gICAgICAgICAgICAg
ICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgY2FsbGJhY2sgd2FzIG5vdCBj
YWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBmYWlsZWQgPSB0
cnVlOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc2NyaXB0
QnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0
ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsK
KyAgICAgICAgICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOworICAgICAgICAgICAgICAgIHNo
b3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAg
YXV0byBzdGFydFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CisgICAgICAgICAg
ICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIs
IDEsICZleGNlcHRpb24pOworICAgICAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRpbWU6
OmZvckN1cnJlbnRUaHJlYWQoKTsKKworICAgICAgICAgICAgICAgIGlmICgoKGVuZFRpbWUgLSBz
dGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpICYmIHNob3VsZFRl
cm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQorICAgICAgICAgICAgICAgICAgICBwcmludGYoIlBB
U1M6ICVzIHNjcmlwdCB0aW1lZCBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVy
KTsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChlbmRU
aW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IGRpZCBub3QgdGlt
ZSBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKCFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgY2FsbGJhY2sgd2Fz
IG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICAgICAg
ZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoIWV4
Y2VwdGlvbikgewogICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgVGVybWluYXRlZEV4
ZWN1dGlvbkV4Y2VwdGlvbiB3YXMgbm90IHRocm93bi5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwpA
QCAtMjM3LDIyICsyNDAsMjUgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgICAg
ICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgICAgcmV0dXJuIHJlY3Vyc2UoaSAr
IDEpOyB9Iik7CiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoInJlY3Vy
c2UoMCk7Iik7CiAKLSAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgp
KTsKLSAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgICAgICBzaG91bGRU
ZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOwotICAgICAgICAgICAgYXV0byBzdGFy
dFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7Ci0gICAgICAgICAgICBKU0V2YWx1
YXRlU2NyaXB0KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlv
bik7Ci0gICAgICAgICAgICBhdXRvIGVuZFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFk
KCk7Ci0KLSAgICAgICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVy
V2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpICYmIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2Fs
bGVkKQotICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IHdpdGggaW5maW5p
dGUgdGFpbCBjYWxscyB0aW1lZCBvdXQgYXMgZXhwZWN0ZWQgLlxuIiwgdGllck9wdGlvbnMudGll
cik7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoKGVuZFRpbWUgLSBz
dGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKQotICAgICAgICAg
ICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB3aXRoIGluZmluaXRlIHRhaWwgY2Fs
bHMgZGlkIG5vdCB0aW1lIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwot
ICAgICAgICAgICAgICAgIGlmICghc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCi0g
ICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHdpdGggaW5maW5pdGUg
dGFpbCBjYWxscycgdGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJPcHRp
b25zLnRpZXIpOwotICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7Ci0gICAgICAgICAgICB9
CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkp
IHsKKyAgICAgICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZyhzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgICAgIGV4
Y2VwdGlvbiA9IG51bGxwdHI7CisgICAgICAgICAgICAgICAgc2hvdWxkVGVybWluYXRlQ2FsbGJh
Y2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQ
VVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAgICBKU0V2YWx1YXRlU2Ny
aXB0KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7Cisg
ICAgICAgICAgICAgICAgYXV0byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgp
OworCisgICAgICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCB0aW1lQWZ0
ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgJiYgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXND
YWxsZWQpCisgICAgICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IHdpdGgg
aW5maW5pdGUgdGFpbCBjYWxscyB0aW1lZCBvdXQgYXMgZXhwZWN0ZWQgLlxuIiwgdGllck9wdGlv
bnMudGllcik7CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlm
ICgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmly
ZWQpCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB3aXRo
IGluZmluaXRlIHRhaWwgY2FsbHMgZGlkIG5vdCB0aW1lIG91dCBhcyBleHBlY3RlZC5cbiIsIHRp
ZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFRlcm1pbmF0
ZUNhbGxiYWNrV2FzQ2FsbGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlM
OiAlcyBzY3JpcHQgd2l0aCBpbmZpbml0ZSB0YWlsIGNhbGxzJyB0aW1lb3V0IGNhbGxiYWNrIHdh
cyBub3QgY2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAg
IGZhaWxlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKCFl
eGNlcHRpb24pIHsKICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIFRlcm1pbmF0ZWRF
eGVjdXRpb25FeGNlcHRpb24gd2FzIG5vdCB0aHJvd24uXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsK
QEAgLTI3MywyMSArMjc5LDI0IEBAIGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICAg
ICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRpbWVBZnRlcldhdGNoZG9nU2hvdWxk
SGF2ZUZpcmVkLnNlY29uZHMoKSk7CiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExp
dGVyYWwoIikgYnJlYWs7IH0gfSBjYXRjaChlKSB7IH0gfSBmb28oKTsiKTsKIAotICAgICAgICAg
ICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc2Ny
aXB0QnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgZXhjZXB0
aW9uID0gbnVsbHB0cjsKLSAgICAgICAgICAgIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2Fs
bGVkID0gZmFsc2U7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzY3JpcHRCdWlsZGVy
LnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAg
ICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7CisgICAgICAgICAgICAgICAgc2hvdWxkVGVy
bWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKIAotICAgICAgICAgICAgYXV0byBzdGFy
dFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7Ci0gICAgICAgICAgICBKU0V2YWx1
YXRlU2NyaXB0KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlv
bik7Ci0gICAgICAgICAgICBhdXRvIGVuZFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFk
KCk7CisgICAgICAgICAgICAgICAgYXV0byBzdGFydFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50
VGhyZWFkKCk7CisgICAgICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3Jp
cHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOworICAgICAgICAgICAgICAgIGF1
dG8gZW5kVGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKICAgICAgICAgICAgIAot
ICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFmdGVyV2F0Y2hk
b2dTaG91bGRIYXZlRmlyZWQpIHx8ICFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkg
ewotICAgICAgICAgICAgICAgIGlmICghKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRl
cldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJG
QUlMOiAlcyBzY3JpcHQgZGlkIG5vdCB0aW1lIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRp
b25zLnRpZXIpOwotICAgICAgICAgICAgICAgIGlmICghc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tX
YXNDYWxsZWQpCi0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRp
bWVvdXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAg
ICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOwotICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxk
SGF2ZUZpcmVkKSB8fCAhc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpIHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKCEoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0
Y2hkb2dTaG91bGRIYXZlRmlyZWQpKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJG
QUlMOiAlcyBzY3JpcHQgZGlkIG5vdCB0aW1lIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRp
b25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxi
YWNrV2FzQ2FsbGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBz
Y3JpcHQgdGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRp
ZXIpOworICAgICAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAg
ICAgICAKICAgICAgICAgICAgIGlmIChleGNlcHRpb24pCiAgICAgICAgICAgICAgICAgcHJpbnRm
KCJQQVNTOiAlcyBUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uIHdhcyBub3QgY2F0Y2hhYmxl
IGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CkBAIC0zMDksMjQgKzMxOCwyNyBA
QCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVy
LmFwcGVuZExpdGVyYWwoImZ1bmN0aW9uIGZvbygpIHsgdmFyIHN0YXJ0VGltZSA9IGN1cnJlbnRD
UFVUaW1lKCk7IHdoaWxlICh0cnVlKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgaSsrKTsg
aWYgKGN1cnJlbnRDUFVUaW1lKCkgLSBzdGFydFRpbWUgPiAiKTsKICAgICAgICAgICAgIHNjcmlw
dEJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkLnNl
Y29uZHMoKSk7CiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoIikgYnJl
YWs7IH0gfSBmb28oKTsiKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgSlNTdHJpbmdSZWYg
c2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc2NyaXB0QnVpbGRlci50b1N0
cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsK
LSAgICAgICAgICAgIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CiAK
LSAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgp
OwotICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIs
IG51bGxwdHIsIDEsICZleGNlcHRpb24pOwotICAgICAgICAgICAgYXV0byBlbmRUaW1lID0gQ1BV
VGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
c2NyaXB0QnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgSlNTdHJpbmdSZWYg
c2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyaW5nLT51dGY4KCkuZGF0
YSgpKTsKKyAgICAgICAgICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOworICAgICAgICAgICAg
ICAgIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CisKKyAgICAgICAg
ICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAg
ICAgICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwg
bnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgYXV0byBlbmRUaW1lID0g
Q1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBp
ZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZp
cmVkKSAmJiAhc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCi0gICAgICAgICAgICAg
ICAgcHJpbnRmKCJQQVNTOiAlcyBzY3JpcHQgdGltZWQgb3V0IGFzIGV4cGVjdGVkIHdoZW4gbm8g
Y2FsbGJhY2sgaXMgc3BlY2lmaWVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAg
ICBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRp
bWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKQotICAgICAgICAgICAgICAgICAgICBwcmlu
dGYoIkZBSUw6ICVzIHNjcmlwdCBkaWQgbm90IHRpbWUgb3V0IGFzIGV4cGVjdGVkIHdoZW4gbm8g
Y2FsbGJhY2sgaXMgc3BlY2lmaWVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCBj
YWxsZWQgc3RhbGUgY2FsbGJhY2sgZnVuY3Rpb24uXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAg
ICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOwotICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRI
YXZlRmlyZWQpICYmICFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKKyAgICAgICAg
ICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiAlcyBzY3JpcHQgdGltZWQgb3V0IGFzIGV4cGVjdGVk
IHdoZW4gbm8gY2FsbGJhY2sgaXMgc3BlY2lmaWVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Cisg
ICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgoZW5kVGltZSAt
IHN0YXJ0VGltZSkgPj0gdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpCisgICAgICAg
ICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCBkaWQgbm90IHRpbWUgb3V0
IGFzIGV4cGVjdGVkIHdoZW4gbm8gY2FsbGJhY2sgaXMgc3BlY2lmaWVkLlxuIiwgdGllck9wdGlv
bnMudGllcik7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IGNhbGxlZCBzdGFsZSBjYWxsYmFjayBmdW5jdGlv
bi5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBmYWlsZWQgPSB0
cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
ICAgIENSQVNIKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmICghZXhjZXB0aW9uKSB7
CiAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBUZXJtaW5hdGVkRXhlY3V0aW9uRXhj
ZXB0aW9uIHdhcyBub3QgdGhyb3duLlxuIiwgdGllck9wdGlvbnMudGllcik7CkBAIC0zNDcsMjMg
KzM1OSwyNiBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgICAgICAgICBzY3Jp
cHRCdWlsZGVyLmFwcGVuZE51bWJlcih0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZC5z
ZWNvbmRzKCkpOwogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpIGJy
ZWFrOyB9IH0gZm9vKCk7Iik7CiAKLSAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpT
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKS51dGY4
KCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgICAg
ICBjYW5jZWxUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOworICAgICAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAg
ICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
c3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICBleGNlcHRpb24gPSBudWxs
cHRyOworICAgICAgICAgICAgICAgIGNhbmNlbFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkID0g
ZmFsc2U7CiAKLSAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVu
dFRocmVhZCgpOwotICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQs
IG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOwotICAgICAgICAgICAgYXV0byBlbmRU
aW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAgICAgICAgICAgIGF1dG8g
c3RhcnRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAgICAgICAgICAg
IEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAm
ZXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICBhdXRvIGVuZFRpbWUgPSBDUFVUaW1lOjpmb3JD
dXJyZW50VGhyZWFkKCk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICgoKGVuZFRpbWUg
LSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiBjYW5j
ZWxUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCAmJiAhZXhjZXB0aW9uKQotICAgICAgICAgICAg
ICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IHRpbWVvdXQgd2FzIGNhbmNlbGxlZCBhcyBleHBl
Y3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCB0aW1lQWZ0ZXJXYXRjaGRvZ1No
b3VsZEhhdmVGaXJlZCkgfHwgZXhjZXB0aW9uKQotICAgICAgICAgICAgICAgICAgICBwcmludGYo
IkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IHdhcyBub3QgY2FuY2VsbGVkLlxuIiwgdGllck9wdGlv
bnMudGllcik7Ci0gICAgICAgICAgICAgICAgaWYgKCFjYW5jZWxUZXJtaW5hdGVDYWxsYmFja1dh
c0NhbGxlZCkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgdGlt
ZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAg
ICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRI
YXZlRmlyZWQpICYmIGNhbmNlbFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkICYmICFleGNlcHRp
b24pCisgICAgICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IHRpbWVvdXQg
d2FzIGNhbmNlbGxlZCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAg
ICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3Rh
cnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSB8fCBleGNlcHRpb24p
CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0
IHdhcyBub3QgY2FuY2VsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAg
ICAgICAgIGlmICghY2FuY2VsVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCisgICAgICAgICAg
ICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdh
cyBub3QgY2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAg
IGZhaWxlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKGV4
Y2VwdGlvbikgewogICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgVW5leHBlY3RlZCBU
ZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uIHRocm93bi5cbiIsIHRpZXJPcHRpb25zLnRpZXIp
OwpAQCAtMzg0LDMzICszOTksMzYgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAg
ICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmROdW1iZXIobWF4QnVzeUxvb3BUaW1lLnNlY29u
ZHMoKSk7IC8vIGluIHNlY29uZHMuCiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExp
dGVyYWwoIikgYnJlYWs7IH0gfSBmb28oKTsiKTsKIAotICAgICAgICAgICAgSlNTdHJpbmdSZWYg
c2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc2NyaXB0QnVpbGRlci50b1N0
cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsK
LSAgICAgICAgICAgIGV4dGVuZFRlcm1pbmF0ZUNhbGxiYWNrQ2FsbGVkID0gMDsKKyAgICAgICAg
ICAgIGlmIChhdXRvIHN0cmluZyA9IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAg
ICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgZXhjZXB0aW9uID0g
bnVsbHB0cjsKKyAgICAgICAgICAgICAgICBleHRlbmRUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA9
IDA7CiAKLSAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRo
cmVhZCgpOwotICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51
bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOwotICAgICAgICAgICAgYXV0byBlbmRUaW1l
ID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwotICAgICAgICAgICAgYXV0byBkZWx0YVRp
bWUgPSBlbmRUaW1lIC0gc3RhcnRUaW1lOworICAgICAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1l
ID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAgICAgICAgICAgIEpTRXZhbHVh
dGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9u
KTsKKyAgICAgICAgICAgICAgICBhdXRvIGVuZFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhy
ZWFkKCk7CisgICAgICAgICAgICAgICAgYXV0byBkZWx0YVRpbWUgPSBlbmRUaW1lIC0gc3RhcnRU
aW1lOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoKGRlbHRhVGltZSA+PSB0aW1lQmVm
b3JlRXh0ZW5kZWREZWFkbGluZSkgJiYgKGRlbHRhVGltZSA8IHRpbWVBZnRlckV4dGVuZGVkRGVh
ZGxpbmUpICYmIChleHRlbmRUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA9PSAyKSAmJiBleGNlcHRp
b24pCi0gICAgICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiAlcyBzY3JpcHQgdGltZW91dCB3YXMg
ZXh0ZW5kZWQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAg
IGVsc2UgewotICAgICAgICAgICAgICAgIGlmIChkZWx0YVRpbWUgPCB0aW1lQmVmb3JlRXh0ZW5k
ZWREZWFkbGluZSkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQg
dGltZW91dCB3YXMgbm90IGV4dGVuZGVkIGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGll
cik7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAoZGVsdGFUaW1lID49IHRpbWVBZnRlckV4dGVu
ZGVkRGVhZGxpbmUpCi0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0
IGRpZCBub3QgdGltZW91dC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAg
IGlmICgoZGVsdGFUaW1lID49IHRpbWVCZWZvcmVFeHRlbmRlZERlYWRsaW5lKSAmJiAoZGVsdGFU
aW1lIDwgdGltZUFmdGVyRXh0ZW5kZWREZWFkbGluZSkgJiYgKGV4dGVuZFRlcm1pbmF0ZUNhbGxi
YWNrQ2FsbGVkID09IDIpICYmIGV4Y2VwdGlvbikKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRm
KCJQQVNTOiAlcyBzY3JpcHQgdGltZW91dCB3YXMgZXh0ZW5kZWQgYXMgZXhwZWN0ZWQuXG4iLCB0
aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKGRlbHRhVGltZSA8IHRpbWVCZWZvcmVFeHRlbmRlZERlYWRsaW5lKQorICAgICAg
ICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgdGltZW91dCB3YXMgbm90
IGV4dGVuZGVkIGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAg
ICAgICAgICAgIGVsc2UgaWYgKGRlbHRhVGltZSA+PSB0aW1lQWZ0ZXJFeHRlbmRlZERlYWRsaW5l
KQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgZGlkIG5v
dCB0aW1lb3V0LlxuIiwgdGllck9wdGlvbnMudGllcik7CiAgICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgaWYgKGV4dGVuZFRlcm1pbmF0ZUNhbGxiYWNrQ2FsbGVkIDwgMSkKLSAgICAg
ICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgdGltZW91dCBjYWxsYmFjayB3
YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgICAgIGlm
IChleHRlbmRUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA8IDIpCi0gICAgICAgICAgICAgICAgICAg
IHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQg
YWZ0ZXIgdGltZW91dCBleHRlbnNpb24uXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKGV4dGVuZFRlcm1pbmF0ZUNhbGxiYWNrQ2FsbGVkIDwgMSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgY2FsbGJh
Y2sgd2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKGV4dGVuZFRlcm1pbmF0ZUNhbGxiYWNrQ2FsbGVkIDwgMikKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgY2FsbGJhY2sgd2Fz
IG5vdCBjYWxsZWQgYWZ0ZXIgdGltZW91dCBleHRlbnNpb24uXG4iLCB0aWVyT3B0aW9ucy50aWVy
KTsKICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAoIWV4Y2VwdGlvbikKLSAg
ICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBUZXJtaW5hdGVkRXhlY3V0aW9uRXhj
ZXB0aW9uIHdhcyBub3QgdGhyb3duIGR1cmluZyB0aW1lb3V0IGV4dGVuc2lvbiB0ZXN0LlxuIiwg
dGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAgIGlmICghZXhjZXB0aW9uKQor
ICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBUZXJtaW5hdGVkRXhlY3V0
aW9uRXhjZXB0aW9uIHdhcyBub3QgdGhyb3duIGR1cmluZyB0aW1lb3V0IGV4dGVuc2lvbiB0ZXN0
LlxuIiwgdGllck9wdGlvbnMudGllcik7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAg
ICAgZmFpbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZmFp
bGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UKKyAgICAg
ICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAKICNpZiBIQVZFKE1BQ0hfRVhDRVBUSU9O
UykKQEAgLTQyNSw1NiArNDQzLDYyIEBAIGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAg
ICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRpbWVBZnRlcldhdGNoZG9nU2hv
dWxkSGF2ZUZpcmVkLnNlY29uZHMoKSk7CiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVu
ZExpdGVyYWwoIikgYnJlYWs7IH0gfSBmb28oKTsiKTsKIAotICAgICAgICAgICAgSlNTdHJpbmdS
ZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc2NyaXB0QnVpbGRlci50
b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0
cjsKLSAgICAgICAgICAgIGRpc3BhdGNoVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsK
LQotICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byBkbyB0aGlzIHNpbmNlIGJsb2NrcyBjYW4gb25s
eSBjYXB0dXJlIHRoaW5ncyBhcyBjb25zdC4KLSAgICAgICAgICAgIEpTR2xvYmFsQ29udGV4dFJl
ZiYgY29udGV4dFJlZiA9IGNvbnRleHQ7Ci0gICAgICAgICAgICBKU1N0cmluZ1JlZiYgc2NyaXB0
UmVmID0gc2NyaXB0OwotICAgICAgICAgICAgSlNWYWx1ZVJlZiYgZXhjZXB0aW9uUmVmID0gZXhj
ZXB0aW9uOwotCi0gICAgICAgICAgICBMb2NrIHN5bmNMb2NrOwotICAgICAgICAgICAgTG9jayYg
c3luY0xvY2tSZWYgPSBzeW5jTG9jazsKLSAgICAgICAgICAgIENvbmRpdGlvbiBzeW5jaHJvbml6
ZTsKLSAgICAgICAgICAgIENvbmRpdGlvbiYgc3luY2hyb25pemVSZWYgPSBzeW5jaHJvbml6ZTsK
LSAgICAgICAgICAgIGJvb2wgZGlkU3luY2hyb25pemUgPSBmYWxzZTsKLSAgICAgICAgICAgIGJv
b2wmIGRpZFN5bmNocm9uaXplUmVmID0gZGlkU3luY2hyb25pemU7Ci0KLSAgICAgICAgICAgIFNl
Y29uZHMgc3RhcnRUaW1lOwotICAgICAgICAgICAgU2Vjb25kcyBlbmRUaW1lOwotCi0gICAgICAg
ICAgICBTZWNvbmRzJiBzdGFydFRpbWVSZWYgPSBzdGFydFRpbWU7Ci0gICAgICAgICAgICBTZWNv
bmRzJiBlbmRUaW1lUmVmID0gZW5kVGltZTsKLQotICAgICAgICAgICAgZGlzcGF0Y2hfZ3JvdXBf
dCBncm91cCA9IGRpc3BhdGNoX2dyb3VwX2NyZWF0ZSgpOwotICAgICAgICAgICAgZGlzcGF0Y2hf
Z3JvdXBfYXN5bmMoZ3JvdXAsIGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoMCwgMCksIF57Ci0g
ICAgICAgICAgICAgICAgc3RhcnRUaW1lUmVmID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgp
OwotICAgICAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dFJlZiwgc2NyaXB0UmVm
LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uUmVmKTsKLSAgICAgICAgICAgICAgICBl
bmRUaW1lUmVmID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwotICAgICAgICAgICAgICAg
IGF1dG8gbG9ja2VyID0gV1RGOjpob2xkTG9jayhzeW5jTG9ja1JlZik7Ci0gICAgICAgICAgICAg
ICAgZGlkU3luY2hyb25pemVSZWYgPSB0cnVlOwotICAgICAgICAgICAgICAgIHN5bmNocm9uaXpl
UmVmLm5vdGlmeUFsbCgpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgIGF1dG8gbG9j
a2VyID0gaG9sZExvY2soc3luY0xvY2spOwotICAgICAgICAgICAgc3luY2hyb25pemUud2FpdChz
eW5jTG9jaywgWyZdIHsgcmV0dXJuIGRpZFN5bmNocm9uaXplOyB9KTsKLQotICAgICAgICAgICAg
aWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVG
aXJlZCkgJiYgZGlzcGF0Y2hUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCkKLSAgICAgICAgICAgICAg
ICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCBvbiBkaXNwYXRjaCBxdWV1ZSB0aW1lZCBvdXQgYXMg
ZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgIGVsc2UgewotICAg
ICAgICAgICAgICAgIGlmICgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFmdGVyV2F0Y2hk
b2dTaG91bGRIYXZlRmlyZWQpCi0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMg
c2NyaXB0IG9uIGRpc3BhdGNoIHF1ZXVlIGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQuXG4i
LCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFRlcm1pbmF0
ZUNhbGxiYWNrV2FzQ2FsbGVkKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVz
IHNjcmlwdCBvbiBkaXNwYXRjaCBxdWV1ZSB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVk
LlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsK
LSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHNjcmlwdEJ1aWxk
ZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpT
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAg
ICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBkaXNwYXRj
aFRlcm1pbmF0ZUNhbGxiYWNrQ2FsbGVkID0gZmFsc2U7CisKKyAgICAgICAgICAgICAgICAvLyBX
ZSBoYXZlIHRvIGRvIHRoaXMgc2luY2UgYmxvY2tzIGNhbiBvbmx5IGNhcHR1cmUgdGhpbmdzIGFz
IGNvbnN0LgorICAgICAgICAgICAgICAgIEpTR2xvYmFsQ29udGV4dFJlZiYgY29udGV4dFJlZiA9
IGNvbnRleHQ7CisgICAgICAgICAgICAgICAgSlNTdHJpbmdSZWYmIHNjcmlwdFJlZiA9IHNjcmlw
dDsKKyAgICAgICAgICAgICAgICBKU1ZhbHVlUmVmJiBleGNlcHRpb25SZWYgPSBleGNlcHRpb247
CisKKyAgICAgICAgICAgICAgICBMb2NrIHN5bmNMb2NrOworICAgICAgICAgICAgICAgIExvY2sm
IHN5bmNMb2NrUmVmID0gc3luY0xvY2s7CisgICAgICAgICAgICAgICAgQ29uZGl0aW9uIHN5bmNo
cm9uaXplOworICAgICAgICAgICAgICAgIENvbmRpdGlvbiYgc3luY2hyb25pemVSZWYgPSBzeW5j
aHJvbml6ZTsKKyAgICAgICAgICAgICAgICBib29sIGRpZFN5bmNocm9uaXplID0gZmFsc2U7Cisg
ICAgICAgICAgICAgICAgYm9vbCYgZGlkU3luY2hyb25pemVSZWYgPSBkaWRTeW5jaHJvbml6ZTsK
KworICAgICAgICAgICAgICAgIFNlY29uZHMgc3RhcnRUaW1lOworICAgICAgICAgICAgICAgIFNl
Y29uZHMgZW5kVGltZTsKKworICAgICAgICAgICAgICAgIFNlY29uZHMmIHN0YXJ0VGltZVJlZiA9
IHN0YXJ0VGltZTsKKyAgICAgICAgICAgICAgICBTZWNvbmRzJiBlbmRUaW1lUmVmID0gZW5kVGlt
ZTsKKworICAgICAgICAgICAgICAgIGRpc3BhdGNoX2dyb3VwX3QgZ3JvdXAgPSBkaXNwYXRjaF9n
cm91cF9jcmVhdGUoKTsKKyAgICAgICAgICAgICAgICBkaXNwYXRjaF9ncm91cF9hc3luYyhncm91
cCwgZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1ZSgwLCAwKSwgXnsKKyAgICAgICAgICAgICAgICAg
ICAgc3RhcnRUaW1lUmVmID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAgICAg
ICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHRSZWYsIHNjcmlwdFJlZiwgbnVsbHB0
ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvblJlZik7CisgICAgICAgICAgICAgICAgICAgIGVuZFRp
bWVSZWYgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CisgICAgICAgICAgICAgICAgICAg
IGF1dG8gbG9ja2VyID0gV1RGOjpob2xkTG9jayhzeW5jTG9ja1JlZik7CisgICAgICAgICAgICAg
ICAgICAgIGRpZFN5bmNocm9uaXplUmVmID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgc3lu
Y2hyb25pemVSZWYubm90aWZ5QWxsKCk7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAg
ICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKHN5bmNMb2NrKTsKKyAgICAgICAgICAgICAg
ICBzeW5jaHJvbml6ZS53YWl0KHN5bmNMb2NrLCBbJl0geyByZXR1cm4gZGlkU3luY2hyb25pemU7
IH0pOworCisgICAgICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCB0aW1l
QWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgJiYgZGlzcGF0Y2hUZXJtaW5hdGVDYWxsYmFj
a0NhbGxlZCkKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiAlcyBzY3JpcHQgb24g
ZGlzcGF0Y2ggcXVldWUgdGltZWQgb3V0IGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGll
cik7CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgoZW5k
VGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpCisg
ICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCBvbiBkaXNwYXRj
aCBxdWV1ZSBkaWQgbm90IHRpbWUgb3V0IGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGll
cik7CisgICAgICAgICAgICAgICAgICAgIGlmICghc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXND
YWxsZWQpCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCBv
biBkaXNwYXRjaCBxdWV1ZSB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIiwgdGll
ck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0go
KTsKICAgICAgICAgfQogI2VuZGlmCiAKICAgICAgICAgSlNHbG9iYWxDb250ZXh0UmVsZWFzZShj
b250ZXh0KTsKIAotICAgICAgICBPcHRpb25zOjpzZXRPcHRpb25zKHNhdmVkT3B0aW9uc0J1aWxk
ZXIudG9TdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IHNhdmVkT3B0aW9uc0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIE9wdGlvbnM6OnNl
dE9wdGlvbnMoc3RyaW5nLT5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIENSQVNIKCk7CiAgICAgfQogICAgIAogICAgIHJldHVybiBmYWlsZWQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL1BpbmdQb25nU3RhY2tPdmVyZmxvd1Rl
c3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9QaW5nUG9uZ1N0YWNrT3Zl
cmZsb3dUZXN0LmNwcAppbmRleCAwNDJiZWJmLi4xMTIzMDliIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL1BpbmdQb25nU3RhY2tPdmVyZmxvd1Rlc3QuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvUGluZ1BvbmdTdGFja092ZXJmbG93
VGVzdC5jcHAKQEAgLTY0LDkgKzY0LDEyIEBAIHN0YXRpYyBib29sIFBpbmdQb25nU3RhY2tPdmVy
Zmxvd09iamVjdF9oYXNJbnN0YW5jZShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplCiAgICAg
ICAgIH0KICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpOyIpOwogCi0gICAgICAgIEpT
U3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGJ1aWxkZXIu
dG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgcmVzdWx0ID0gSlNFdmFsdWF0ZVNj
cmlwdChjb250ZXh0LCBzY3JpcHQsIE5VTEwsIE5VTEwsIDEsIGV4Y2VwdGlvbik7Ci0gICAgICAg
IEpTU3RyaW5nUmVsZWFzZShzY3JpcHQpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAg
ICAgICByZXN1bHQgPSBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwg
bnVsbHB0ciwgMSwgZXhjZXB0aW9uKTsKKyAgICAgICAgICAgIEpTU3RyaW5nUmVsZWFzZShzY3Jp
cHQpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAg
LS1uYXRpdmVSZWN1cnNpb25Db3VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGUxYzNk
MjEuLjQzNjc2YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisy
MDE4LTA0LTI2ICBKRiBCYXN0aWVuICA8amZiYXN0aWVuQGFwcGxlLmNvbT4KKworICAgICAgICBT
dHJpbmdCdWlsZGVyIGlzIGZhbGxpYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODUwNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTdHJpbmdCdWlsZGVyIGNhbiBmYWlsIHdoZW4gYWxsb2NhdGluZyBt
ZW1vcnkuIFN0cmluZ0J1aWxkZXIgaXMKKyAgICAgICAgbW9zdGx5IHVzZWQgd2l0aCB1c2VyIGlu
cHV0LCB3aGljaCBvZnRlbiBtZWFucyB0aGF0IGp1c3QgY3Jhc2hpbmcKKyAgICAgICAgaXNuJ3Qg
dGhlIHJpZ2h0IG91dGNvbWUuIE91ciBmdXp6ZXJzIG9mdGVuIGVuY291bnRlciBzdWNoIHRoaW5n
cworICAgICAgICBmb3IgSmF2YVNjcmlwdENvcmUsIGFuZCBzbyBmYXIgd2UndmUgYXBwbGllZCBw
b2ludCBzb2x1dGlvbnMuIE5vCisgICAgICAgIG1vcmUhCisKKyAgICAgICAgKiBBUEkvSlNDb250
ZXh0UmVmLmNwcDoKKyAgICAgICAgKEpTQ29udGV4dENyZWF0ZUJhY2t0cmFjZSk6CisgICAgICAg
ICogQVBJL3Rlc3RzL0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwOgorICAgICAgICAodGVzdEV4
ZWN1dGlvblRpbWVMaW1pdCk6CisgICAgICAgICogQVBJL3Rlc3RzL1BpbmdQb25nU3RhY2tPdmVy
Zmxvd1Rlc3QuY3BwOgorICAgICAgICAoUGluZ1BvbmdTdGFja092ZXJmbG93T2JqZWN0X2hhc0lu
c3RhbmNlKToKKyAgICAgICAgKiBkZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3RyZW5ndGhSZWR1Y3Rpb25QaGFzZTo6aGFuZGxlTm9kZSk6Cisg
ICAgICAgICogaGVhcC9IZWFwU25hcHNob3RCdWlsZGVyLmNwcDoKKyAgICAgICAgKEpTQzo6SGVh
cFNuYXBzaG90QnVpbGRlcjo6anNvbik6CisgICAgICAgICogaW5zcGVjdG9yL0NvbnNvbGVNZXNz
YWdlLmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6Q29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNz
YWdlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxpdGllcy5jcHA6Cisg
ICAgICAgIChJbnNwZWN0b3I6OkNvbnRlbnRTZWFyY2hVdGlsaXRpZXM6OmNyZWF0ZVNlYXJjaFJl
Z2V4U291cmNlKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHA6CisgICAg
ICAgIChKU0M6OkludGVycHJldGVyOjpzdGFja1RyYWNlQXNTdHJpbmcpOgorICAgICAgICAqIGlu
dGVycHJldGVyL1N0YWNrVmlzaXRvci5jcHA6CisgICAgICAgIChKU0M6OlN0YWNrVmlzaXRvcjo6
RnJhbWU6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAocmVz
b2x2ZVBhdGgpOgorICAgICAgICAoZnVuY3Rpb25KU0NTdGFjayk6CisgICAgICAgICogcnVudGlt
ZS9Db25maWdGaWxlLmNwcDoKKyAgICAgICAgKEpTQzo6Q29uZmlnRmlsZTo6cGFyc2UpOgorICAg
ICAgICAqIHJ1bnRpbWUvQ29uc29sZUNsaWVudC5jcHA6CisgICAgICAgIChKU0M6OkNvbnNvbGVD
bGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2UpOgorICAgICAgICAoSlNDOjpDb25zb2xlQ2xpZW50
OjpwcmludENvbnNvbGVNZXNzYWdlV2l0aEFyZ3VtZW50cyk6CisgICAgICAgICogcnVudGltZS9E
YXRlQ29udmVyc2lvbi5jcHA6CisgICAgICAgIChKU0M6OmZvcm1hdERhdGVUaW1lKToKKyAgICAg
ICAgKiBydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwOgorICAgICAgICAoSlNDOjpFcnJvckluc3Rh
bmNlOjpzYW5pdGl6ZWRUb1N0cmluZyk6CisgICAgICAgICogcnVudGltZS9FeGNlcHRpb25IZWxw
ZXJzLmNwcDoKKyAgICAgICAgKEpTQzo6bm90QUZ1bmN0aW9uU291cmNlQXBwZW5kZXIpOgorICAg
ICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNv
bnN0cnVjdEZ1bmN0aW9uU2tpcHBpbmdFdmFsRW5hYmxlZENoZWNrKToKKyAgICAgICAgKiBydW50
aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHA6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZv
cm1hdDo6aW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0KToKKyAgICAgICAgKiBydW50aW1lL0ludGxP
YmplY3QuY3BwOgorICAgICAgICAoSlNDOjpwcml2YXRlVXNlTGFuZ1RhZyk6CisgICAgICAgIChK
U0M6OmNhbm9uaWNhbExhbmdUYWcpOgorICAgICAgICAoSlNDOjpyZW1vdmVVbmljb2RlTG9jYWxl
RXh0ZW5zaW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNw
cDoKKyAgICAgICAgKEpTQzo6ZW5jb2RlKToKKyAgICAgICAgKEpTQzo6ZGVjb2RlKToKKyAgICAg
ICAgKEpTQzo6Z2xvYmFsRnVuY0VzY2FwZSk6CisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNVbmVz
Y2FwZSk6CisgICAgICAgICogcnVudGltZS9KU09OT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6
U3RyaW5naWZpZXI6OnN0cmluZ2lmeSk6CisgICAgICAgIChKU0M6OlN0cmluZ2lmaWVyOjpIb2xk
ZXI6OmFwcGVuZE5leHRQcm9wZXJ0eSk6CisgICAgICAgICogcnVudGltZS9MaXRlcmFsUGFyc2Vy
LmNwcDoKKyAgICAgICAgKEpTQzo6TGl0ZXJhbFBhcnNlcjxDaGFyVHlwZT46OkxleGVyOjpsZXhT
dHJpbmdTbG93KToKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuY3BwOgorICAgICAgICAoSlND
OjpPcHRpb25zOjpkdW1wT3B0aW9uc0lmTmVlZGVkKToKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6
ZHVtcEFsbE9wdGlvbnMpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcDoK
KyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9HZXR0ZXJTb3VyY2VJbnRlcm5hbCk6CisgICAgICAg
ICogcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQ
cm9maWxlcjo6c3RhY2tUcmFjZXNBc0pTT04pOgorICAgICAgICAqIHJ1bnRpbWUvU3RhY2tGcmFt
ZS5jcHA6CisgICAgICAgIChKU0M6OlN0YWNrRnJhbWU6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAg
ICAgKiBydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6c3RyaW5n
RnJvbUNvZGVQb2ludCk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwOgor
ICAgICAgICAoSlNDOjpzdWJzdGl0dXRlQmFja3JlZmVyZW5jZXNTbG93KToKKyAgICAgICAgKiBy
dW50aW1lL1R5cGVQcm9maWxlci5jcHA6CisgICAgICAgIChKU0M6OlR5cGVQcm9maWxlcjo6dHlw
ZUluZm9ybWF0aW9uRm9yRXhwcmVzc2lvbkF0T2Zmc2V0KToKKyAgICAgICAgKiBydW50aW1lL1R5
cGVTZXQuY3BwOgorICAgICAgICAoSlNDOjpUeXBlU2V0OjpkdW1wVHlwZXMgY29uc3QpOgorICAg
ICAgICAoSlNDOjpUeXBlU2V0Ojp0b0pTT05TdHJpbmcgY29uc3QpOgorICAgICAgICAoSlNDOjpT
dHJ1Y3R1cmVTaGFwZTo6cHJvcGVydHlIYXNoKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlU2hh
cGU6OnN0cmluZ1JlcHJlc2VudGF0aW9uKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlU2hhcGU6
OnRvSlNPTlN0cmluZyBjb25zdCk6CisgICAgICAgICogdGVzdFJlZ0V4cC5jcHA6CisgICAgICAg
IChwYXJzZVJlZ0V4cExpbmUpOgorICAgICAgICAocGFyc2VUZXN0TGluZSk6CisgICAgICAgICog
dG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuY3BwOgorICAgICAgICAoSlNDOjpwYXJzZUNsYXVzZSk6
CisgICAgICAgICogd2FzbS9XYXNtQkJRUGxhbi5jcHA6CisgICAgICAgIChKU0M6Oldhc206OkJC
UVBsYW46OnByZXBhcmUpOgorICAgICAgICAqIHlhcnIvWWFyclBhcnNlci5oOgorICAgICAgICAo
SlNDOjpZYXJyOjpQYXJzZXI6OnRyeUNvbnN1bWVHcm91cE5hbWUpOgorICAgICAgICAoSlNDOjpZ
YXJyOjpQYXJzZXI6OnRyeUNvbnN1bWVVbmljb2RlUHJvcGVydHlFeHByZXNzaW9uKToKKwogMjAx
OC0wNS0wMSAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBwbGUuY29tPgogCiAgICAgICAg
IFVzZSBDaGVja2VkQXJpdGhtZXRpYyBmb3IgbGVuZ3RoIGNvbXB1dGF0aW9uIGluIEpTQXJyYXk6
OnVuc2hpZnRDb3VudFdpdGhBbnlJbmRleGluZ1R5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwCmluZGV4IDkxZWUx
YzMuLmYxZWNlYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Ry
ZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcApAQCAtMzYxLDcgKzM2MSwxMCBAQCBwcml2YXRl
OgogICAgICAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZChsZWZ0U3RyaW5nKTsKICAgICAgICAgICAgICAgICBidWlsZGVyLmFw
cGVuZChyaWdodFN0cmluZyk7Ci0gICAgICAgICAgICAgICAgY29udmVydFRvTGF6eUpTVmFsdWUo
bV9ub2RlLCBMYXp5SlNWYWx1ZTo6bmV3U3RyaW5nKG1fZ3JhcGgsIGJ1aWxkZXIudG9TdHJpbmco
KSkpOworICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgICAgICAgICAgICAgY29udmVydFRvTGF6eUpTVmFsdWUobV9ub2RlLCBMYXp5
SlNWYWx1ZTo6bmV3U3RyaW5nKG1fZ3JhcGgsICpzdHJpbmcpKTsKKyAgICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAgICAgbV9jaGFu
Z2VkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzg3LDgg
KzM5MCwxMCBAQCBwcml2YXRlOgogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQocmlnaHRTdHJp
bmcpOwogICAgICAgICAgICAgaWYgKCEhZXh0cmFTdHJpbmcpCiAgICAgICAgICAgICAgICAgYnVp
bGRlci5hcHBlbmQoZXh0cmFTdHJpbmcpOwotCi0gICAgICAgICAgICBjb252ZXJ0VG9MYXp5SlNW
YWx1ZShtX25vZGUsIExhenlKU1ZhbHVlOjpuZXdTdHJpbmcobV9ncmFwaCwgYnVpbGRlci50b1N0
cmluZygpKSk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgICAgICAgICAgY29udmVydFRvTGF6eUpTVmFsdWUobV9ub2RlLCBMYXp5SlNW
YWx1ZTo6bmV3U3RyaW5nKG1fZ3JhcGgsICpzdHJpbmcpKTsKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC04ODQsOCArODg5LDEwIEBAIHByaXZhdGU6
CiAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICBpZiAobGFzdEluZGV4IDwgc3Ry
aW5nLmxlbmd0aCgpKQogICAgICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChzdHJpbmcs
IGxhc3RJbmRleCwgc3RyaW5nLmxlbmd0aCgpIC0gbGFzdEluZGV4KTsKLSAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgICBtX25vZGUtPmNvbnZlcnRUb0xhenlKU0NvbnN0YW50KG1fZ3Jh
cGgsIExhenlKU1ZhbHVlOjpuZXdTdHJpbmcobV9ncmFwaCwgYnVpbGRlci50b1N0cmluZygpKSk7
CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICAgICAgICAgICAgICBtX25vZGUtPmNvbnZlcnRUb0xhenlKU0NvbnN0YW50KG1fZ3Jh
cGgsIExhenlKU1ZhbHVlOjpuZXdTdHJpbmcobV9ncmFwaCwgKnN0cmluZykpOworICAgICAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIH0K
IAogICAgICAgICAgICAgbV9ub2RlLT5vcmlnaW4gPSBvcmlnaW47CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3RCdWlsZGVyLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBTbmFwc2hvdEJ1aWxkZXIuY3BwCmluZGV4IDY1ZjYzM2Yu
LmUxYWFkMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBTbmFw
c2hvdEJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBTbmFw
c2hvdEJ1aWxkZXIuY3BwCkBAIC0zODcsNyArMzg3LDkgQEAgU3RyaW5nIEhlYXBTbmFwc2hvdEJ1
aWxkZXI6Ompzb24oc3RkOjpmdW5jdGlvbjxib29sIChjb25zdCBIZWFwU25hcHNob3ROb2RlJik+
IGEKICAgICBqc29uLmFwcGVuZCgnXScpOwogCiAgICAganNvbi5hcHBlbmQoJ30nKTsKLSAgICBy
ZXR1cm4ganNvbi50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGpzb24udG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0NvbnNvbGVNZXNzYWdlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29u
c29sZU1lc3NhZ2UuY3BwCmluZGV4IDVjZmIwNGQuLjcxZTRmYzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCkBAIC0xMTUsNyAr
MTE1LDEwIEBAIENvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHNv
dXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxlCiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBKU09OTG9nVmFsdWU6OlR5cGU6OkpTT046CiAgICAgICAgICAgICBpZiAoYnVp
bGRlci5sZW5ndGgoKSkgewotICAgICAgICAgICAgICAgIG1fanNvbkxvZ1ZhbHVlcy5hcHBlbmQo
eyBKU09OTG9nVmFsdWU6OlR5cGU6OlN0cmluZywgSlNPTjo6VmFsdWU6OmNyZWF0ZShidWlsZGVy
LnRvU3RyaW5nKCkpLT50b0pTT05TdHJpbmcoKSB9KTsKKyAgICAgICAgICAgICAgICBpZiAoYXV0
byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICAgIG1fanNv
bkxvZ1ZhbHVlcy5hcHBlbmQoeyBKU09OTG9nVmFsdWU6OlR5cGU6OlN0cmluZywgSlNPTjo6VmFs
dWU6OmNyZWF0ZSgqc3RyaW5nKS0+dG9KU09OU3RyaW5nKCkgfSk7CisgICAgICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgICAgIGJ1aWxk
ZXIucmVzaXplKDApOwogICAgICAgICAgICAgfQogCkBAIC0xMjQsOCArMTI3LDEyIEBAIENvbnNv
bGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5
cGUgdHlwZSwgTWVzc2FnZUxlCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoYnVpbGRlci5s
ZW5ndGgoKSkKLSAgICAgICAgbV9qc29uTG9nVmFsdWVzLmFwcGVuZCh7IEpTT05Mb2dWYWx1ZTo6
VHlwZTo6U3RyaW5nLCBKU09OOjpWYWx1ZTo6Y3JlYXRlKGJ1aWxkZXIudG9TdHJpbmcoKSktPnRv
SlNPTlN0cmluZygpIH0pOworICAgIGlmIChidWlsZGVyLmxlbmd0aCgpKSB7CisgICAgICAgIGlm
IChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIG1fanNvbkxv
Z1ZhbHVlcy5hcHBlbmQoeyBKU09OTG9nVmFsdWU6OlR5cGU6OlN0cmluZywgSlNPTjo6VmFsdWU6
OmNyZWF0ZSgqc3RyaW5nKS0+dG9KU09OU3RyaW5nKCkgfSk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIENSQVNIKCk7CisgICAgfQogCiAgICAgaWYgKG1fanNvbkxvZ1ZhbHVlcy5zaXplKCkp
CiAgICAgICAgIG1fbWVzc2FnZSA9IG1fanNvbkxvZ1ZhbHVlc1swXS52YWx1ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxpdGll
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGls
aXRpZXMuY3BwCmluZGV4IGFhYTgxZTIuLmIwYzE5NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxpdGllcy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0aWVzLmNwcApA
QCAtNTUsNyArNTUsOSBAQCBzdGF0aWMgU3RyaW5nIGNyZWF0ZVNlYXJjaFJlZ2V4U291cmNlKGNv
bnN0IFN0cmluZyYgdGV4dCkKICAgICAgICAgcmVzdWx0LmFwcGVuZChjaGFyYWN0ZXIpOwogICAg
IH0KIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogc3RhdGljIGlubGluZSBzaXplX3Qgc2l6ZXRFeHRyYWN0b3IoY29uc3Qgc2l6ZV90
KiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9J
bnRlcnByZXRlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJw
cmV0ZXIuY3BwCmluZGV4IDRmNzI3MDkuLmVkMTc0OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcApAQCAtNTc3LDcgKzU3Nyw5IEBA
IEpTU3RyaW5nKiBJbnRlcnByZXRlcjo6c3RhY2tUcmFjZUFzU3RyaW5nKFZNJiB2bSwgY29uc3Qg
VmVjdG9yPFN0YWNrRnJhbWU+JiBzdGFjCiAgICAgICAgIGlmIChpICE9IHN0YWNrVHJhY2Uuc2l6
ZSgpIC0gMSkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwogICAgIH0KLSAgICBy
ZXR1cm4ganNTdHJpbmcoJnZtLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIGpzU3RyaW5nKCZ2bSwg
KnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogQUxXQVlTX0lOTElORSBzdGF0aWMgSGFuZGxl
ckluZm8qIGZpbmRFeGNlcHRpb25IYW5kbGVyKFN0YWNrVmlzaXRvciYgdmlzaXRvciwgQ29kZUJs
b2NrKiBjb2RlQmxvY2ssIFJlcXVpcmVkSGFuZGxlciByZXF1aXJlZEhhbmRsZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0b3IuY3BwCmluZGV4
IDFkMWZmNzMuLjcwY2QxMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9TdGFja1Zpc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9TdGFja1Zpc2l0b3IuY3BwCkBAIC0zNDcsNyArMzQ3LDkgQEAgU3RyaW5nIFN0YWNr
VmlzaXRvcjo6RnJhbWU6OnRvU3RyaW5nKCkgY29uc3QKICAgICAgICAgICAgIHRyYWNlQnVpbGQu
YXBwZW5kTnVtYmVyKGNvbHVtbik7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIHRyYWNl
QnVpbGQudG9TdHJpbmcoKS5pbXBsKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdHJhY2VCdWls
ZC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gc3RyaW5nLT5pbXBsKCk7CisgICAgQ1JBU0go
KTsKIH0KIAogaW50cHRyX3QgU3RhY2tWaXNpdG9yOjpGcmFtZTo6c291cmNlSUQoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvanNjLmNwcAppbmRleCAzYjE3MjQ4Li5iZTkzOTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApA
QCAtNzY3LDcgKzc2Nyw5IEBAIHN0YXRpYyBTdHJpbmcgcmVzb2x2ZVBhdGgoY29uc3QgRGlyZWN0
b3J5TmFtZSYgZGlyZWN0b3J5TmFtZSwgY29uc3QgTW9kdWxlTmFtZSYKICAgICAgICAgaWYgKGkg
KyAxICE9IGRpcmVjdG9yeVBpZWNlcy5zaXplKCkpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZChwYXRoU2VwYXJhdG9yKCkpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBhYnNvbHV0ZVBh
dGgoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSkKQEAgLTExMjcsOCArMTEyOSwxMSBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSlNDU3RhY2soRXhlY1N0YXRlKiBleGVjKQog
CiAgICAgRnVuY3Rpb25KU0NTdGFja0Z1bmN0b3IgZnVuY3Rvcih0cmFjZSk7CiAgICAgZXhlYy0+
aXRlcmF0ZShmdW5jdG9yKTsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIiVzIiwgdHJhY2UudG9TdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHRyYWNlLnRvU3RyaW5nKCkpIHsKKyAgICAg
ICAgZnByaW50ZihzdGRlcnIsICIlcyIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfQorICAgIENSQVNI
KCk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25HQ0FuZFN3ZWVw
KEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NvbmZpZ0ZpbGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uZmln
RmlsZS5jcHAKaW5kZXggYmI4NzY2Ni4uZjdlY2RhYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29uZmlnRmlsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29uZmlnRmlsZS5jcHAKQEAgLTQ2NSw5ICs0NjUsMTIgQEAgdm9pZCBDb25m
aWdGaWxlOjpwYXJzZSgpCiAgICAgICAgICAgICBXVEY6OnNldERhdGFGaWxlKGxvZ1BhdGhuYW1l
KTsKIAogICAgICAgICBpZiAoIWpzY09wdGlvbnNCdWlsZGVyLmlzRW1wdHkoKSkgewotICAgICAg
ICAgICAgY29uc3QgY2hhciogb3B0aW9uc1N0ciA9IGpzY09wdGlvbnNCdWlsZGVyLnRvU3RyaW5n
KCkudXRmOCgpLmRhdGEoKTsKLSAgICAgICAgICAgIE9wdGlvbnM6OmVuYWJsZVJlc3RyaWN0ZWRP
cHRpb25zKHRydWUpOwotICAgICAgICAgICAgT3B0aW9uczo6c2V0T3B0aW9ucyhvcHRpb25zU3Ry
KTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGpzY09wdGlvbnNCdWlsZGVyLnRvU3Ry
aW5nKCkpIHsKKyAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBvcHRpb25zU3RyID0gc3RyaW5n
LT51dGY4KCkuZGF0YSgpOworICAgICAgICAgICAgICAgIE9wdGlvbnM6OmVuYWJsZVJlc3RyaWN0
ZWRPcHRpb25zKHRydWUpOworICAgICAgICAgICAgICAgIE9wdGlvbnM6OnNldE9wdGlvbnMob3B0
aW9uc1N0cik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwog
ICAgICAgICB9CiAgICAgfSBlbHNlCiAgICAgICAgIFdURjo6ZGF0YUxvZ0YoIkVycm9yIGluIEpT
QyBDb25maWcgZmlsZSBvbiBvciBuZWFyIGxpbmUgJXUsIHBhcnNpbmcgJyVzJ1xuIiwgc2Nhbm5l
ci5saW5lTnVtYmVyKCksIHNjYW5uZXIuY3VycmVudEJ1ZmZlcigpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVDbGllbnQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5jcHAKaW5kZXggMjkxN2Q3NjguLmI4
NjY0M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVDbGll
bnQuY3BwCkBAIC0xNDQsNyArMTQ0LDEwIEBAIHZvaWQgQ29uc29sZUNsaWVudDo6cHJpbnRDb25z
b2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwKICAgICBi
dWlsZGVyLmFwcGVuZCgnICcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG1lc3NhZ2UpOwogCi0gICAg
V1RGTG9nQWx3YXlzKCIlcyIsIGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIFdURkxvZ0Fs
d2F5cygiJXMiLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgIGVsc2UKKyAgICAgICAgQ1JB
U0goKTsKIH0KIAogdm9pZCBDb25zb2xlQ2xpZW50OjpwcmludENvbnNvbGVNZXNzYWdlV2l0aEFy
Z3VtZW50cyhNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxl
dmVsIGxldmVsLCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBh
cmd1bWVudHMpCkBAIC0xNzAsNyArMTczLDEwIEBAIHZvaWQgQ29uc29sZUNsaWVudDo6cHJpbnRD
b25zb2xlTWVzc2FnZVdpdGhBcmd1bWVudHMoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhCiAg
ICAgICAgIHNjb3BlLmNsZWFyRXhjZXB0aW9uKCk7CiAgICAgfQogCi0gICAgV1RGTG9nQWx3YXlz
KCIlcyIsIGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIFdURkxvZ0Fsd2F5cygiJXMiLCBz
dHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAg
IGlmIChpc1RyYWNlTWVzc2FnZSkgewogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNh
bGxTdGFjay0+c2l6ZSgpOyArK2kpIHsKQEAgLTE4Nyw3ICsxOTMsMTAgQEAgdm9pZCBDb25zb2xl
Q2xpZW50OjpwcmludENvbnNvbGVNZXNzYWdlV2l0aEFyZ3VtZW50cyhNZXNzYWdlU291cmNlIHNv
dXJjZSwgTWVzc2EKICAgICAgICAgICAgIGFwcGVuZFVSTEFuZFBvc2l0aW9uKGNhbGxGcmFtZUJ1
aWxkZXIsIGNhbGxGcmFtZS5zb3VyY2VVUkwoKSwgY2FsbEZyYW1lLmxpbmVOdW1iZXIoKSwgY2Fs
bEZyYW1lLmNvbHVtbk51bWJlcigpKTsKICAgICAgICAgICAgIGNhbGxGcmFtZUJ1aWxkZXIuYXBw
ZW5kKCcpJyk7CiAKLSAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiJXMiLCBjYWxsRnJhbWVCdWls
ZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBjYWxsRnJhbWVCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgV1RGTG9n
QWx3YXlzKCIlcyIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb252ZXJzaW9uLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb252ZXJzaW9uLmNwcAppbmRleCA4YTg3Y2M2
Li40MjNiZTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRl
Q29udmVyc2lvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNv
bnZlcnNpb24uY3BwCkBAIC0xMjMsNyArMTIzLDkgQEAgU3RyaW5nIGZvcm1hdERhdGVUaW1lKGNv
bnN0IEdyZWdvcmlhbkRhdGVUaW1lJiB0LCBEYXRlVGltZUZvcm1hdCBmb3JtYXQsIGJvb2wgYXMK
ICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCkuaW1wbCgp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuIHN0cmluZy0+aW1wbCgpOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5j
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcApp
bmRleCBjMTcyNDI4Li43OGQyOTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FcnJvckluc3RhbmNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FcnJvckluc3RhbmNlLmNwcApAQCAtMTk5LDcgKzE5OSw5IEBAIFN0cmluZyBFcnJvcklu
c3RhbmNlOjpzYW5pdGl6ZWRUb1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgYnVpbGRlci5h
cHBlbmQobmFtZVN0cmluZyk7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI6ICIpOwogICAg
IGJ1aWxkZXIuYXBwZW5kKG1lc3NhZ2VTdHJpbmcpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIEVycm9ySW5zdGFuY2U6
Om1hdGVyaWFsaXplRXJyb3JJbmZvSWZOZWVkZWQoVk0mIHZtKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcAppbmRleCA2OTkxNDRiLi42
ZTAxYjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRp
b25IZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRp
b25IZWxwZXJzLmNwcApAQCAtMjExLDcgKzIxMSw5IEBAIHN0YXRpYyBTdHJpbmcgbm90QUZ1bmN0
aW9uU291cmNlQXBwZW5kZXIoY29uc3QgU3RyaW5nJiBvcmlnaW5hbE1lc3NhZ2UsIGNvbnN0IFN0
CiAgICAgfQogICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7CiAKLSAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBp
bnZhbGlkUGFyYW1ldGVySW5Tb3VyY2VBcHBlbmRlcihjb25zdCBTdHJpbmcmIG9yaWdpbmFsTWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VUZXh0LCBSdW50aW1lVHlwZSB0eXBlLCBFcnJvcklu
c3RhbmNlOjpTb3VyY2VUZXh0V2hlcmVFcnJvck9jY3VycmVkIG9jY3VycmVuY2UpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3Bw
CmluZGV4IDFiNzJhZjUuLmFhYmZmNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCkBAIC0xMjUsMjIgKzEyNSwyMiBA
QCBKU09iamVjdCogY29uc3RydWN0RnVuY3Rpb25Ta2lwcGluZ0V2YWxFbmFibGVkQ2hlY2soCiAg
ICAgICAgIHByb2dyYW0gPSBtYWtlU3RyaW5nKCJ7IiwgcHJlZml4LCBmdW5jdGlvbk5hbWUuc3Ry
aW5nKCksICIoKSB7XG4iLCBib2R5LCAiXG59fSIpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYm9vbCBzdWNjZXNzID0gdHJ1ZTsKLSAgICAg
ICAgc3VjY2VzcyAmPSBidWlsZGVyLnRyeUFwcGVuZCgneycpOwotICAgICAgICBzdWNjZXNzICY9
IGJ1aWxkZXIudHJ5QXBwZW5kKHByZWZpeCk7Ci0gICAgICAgIHN1Y2Nlc3MgJj0gYnVpbGRlci50
cnlBcHBlbmQoZnVuY3Rpb25OYW1lLnN0cmluZygpKTsKLSAgICAgICAgc3VjY2VzcyAmPSBidWls
ZGVyLnRyeUFwcGVuZCgnKCcpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgneycpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZChwcmVmaXgpOworICAgICAgICBidWlsZGVyLmFwcGVuZChmdW5jdGlv
bk5hbWUuc3RyaW5nKCkpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnKCcpOwogICAgICAgICBT
dHJpbmdCdWlsZGVyIHBhcmFtZXRlckJ1aWxkZXI7CiAgICAgICAgIGF1dG8gdmlld1dpdGhTdHJp
bmcgPSBhcmdzLmF0KDApLnRvU3RyaW5nKGV4ZWMpLT52aWV3V2l0aFVuZGVybHlpbmdTdHJpbmco
ZXhlYyk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwotICAg
ICAgICBzdWNjZXNzICY9IHBhcmFtZXRlckJ1aWxkZXIudHJ5QXBwZW5kKHZpZXdXaXRoU3RyaW5n
LnZpZXcpOworICAgICAgICBwYXJhbWV0ZXJCdWlsZGVyLmFwcGVuZCh2aWV3V2l0aFN0cmluZy52
aWV3KTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDE7IGkgPCBhcmdzLnNpemUoKSAtIDE7IGkr
KykgewotICAgICAgICAgICAgc3VjY2VzcyAmPSBwYXJhbWV0ZXJCdWlsZGVyLnRyeUFwcGVuZExp
dGVyYWwoIiwgIik7CisgICAgICAgICAgICBwYXJhbWV0ZXJCdWlsZGVyLmFwcGVuZExpdGVyYWwo
IiwgIik7CiAgICAgICAgICAgICBhdXRvIHZpZXdXaXRoU3RyaW5nID0gYXJncy5hdChpKS50b1N0
cmluZyhleGVjKS0+dmlld1dpdGhVbmRlcmx5aW5nU3RyaW5nKGV4ZWMpOwogICAgICAgICAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7Ci0gICAgICAgICAgICBzdWNjZXNz
ICY9IHBhcmFtZXRlckJ1aWxkZXIudHJ5QXBwZW5kKHZpZXdXaXRoU3RyaW5nLnZpZXcpOworICAg
ICAgICAgICAgcGFyYW1ldGVyQnVpbGRlci5hcHBlbmQodmlld1dpdGhTdHJpbmcudmlldyk7CiAg
ICAgICAgIH0KLSAgICAgICAgaWYgKCFzdWNjZXNzKSB7CisKKyAgICAgICAgaWYgKGJ1aWxkZXIu
ZmFpbGVkKCkgfHwgcGFyYW1ldGVyQnVpbGRlci5mYWlsZWQoKSkgewogICAgICAgICAgICAgdGhy
b3dPdXRPZk1lbW9yeUVycm9yKGV4ZWMsIHNjb3BlKTsKICAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgICAgICB9CkBAIC0xNDgsNyArMTQ4LDggQEAgSlNPYmplY3QqIGNvbnN0cnVjdEZ1
bmN0aW9uU2tpcHBpbmdFdmFsRW5hYmxlZENoZWNrKAogICAgICAgICB7CiAgICAgICAgICAgICAv
LyBUaGUgc3BlYyBtYW5kYXRlcyB0aGF0IHRoZSBwYXJhbWV0ZXJzIHBhcnNlIGFzIGEgdmFsaWQg
cGFyYW1ldGVyIGxpc3QKICAgICAgICAgICAgIC8vIGluZGVwZW5kZW50IG9mIHRoZSBmdW5jdGlv
biBib2R5LgotICAgICAgICAgICAgU3RyaW5nIHByb2dyYW0gPSBtYWtlU3RyaW5nKCIoIiwgcHJl
Zml4LCAiKCIsIHBhcmFtZXRlckJ1aWxkZXIudG9TdHJpbmcoKSwgIil7XG5cbn0pIik7CisgICAg
ICAgICAgICBhdXRvIHN0cmluZyA9IHBhcmFtZXRlckJ1aWxkZXIudG9TdHJpbmcoKS52YWx1ZSgp
OworICAgICAgICAgICAgU3RyaW5nIHByb2dyYW0gPSBtYWtlU3RyaW5nKCIoIiwgcHJlZml4LCAi
KCIsIHN0cmluZywgIil7XG5cbn0pIik7CiAgICAgICAgICAgICBTb3VyY2VDb2RlIHNvdXJjZSA9
IG1ha2VTb3VyY2UocHJvZ3JhbSwgc291cmNlT3JpZ2luLCBzb3VyY2VVUkwsIHBvc2l0aW9uKTsK
ICAgICAgICAgICAgIEpTVmFsdWUgZXhjZXB0aW9uOwogICAgICAgICAgICAgY2hlY2tTeW50YXgo
ZXhlYywgc291cmNlLCAmZXhjZXB0aW9uKTsKQEAgLTE1OCwxOSArMTU5LDIwIEBAIEpTT2JqZWN0
KiBjb25zdHJ1Y3RGdW5jdGlvblNraXBwaW5nRXZhbEVuYWJsZWRDaGVjaygKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogCi0gICAgICAgIHN1Y2Nlc3MgJj0gYnVpbGRlci50cnlBcHBlbmQocGFy
YW1ldGVyQnVpbGRlcik7Ci0gICAgICAgIHN1Y2Nlc3MgJj0gYnVpbGRlci50cnlBcHBlbmRMaXRl
cmFsKCIpIHtcbiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChwYXJhbWV0ZXJCdWlsZGVyKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpIHtcbiIpOwogICAgICAgICBhdXRvIGJv
ZHkgPSBhcmdzLmF0KGFyZ3Muc2l6ZSgpIC0gMSkudG9XVEZTdHJpbmcoZXhlYyk7CiAgICAgICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogICAgICAgICBjaGVja0JvZHko
Ym9keSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwotICAg
ICAgICBzdWNjZXNzICY9IGJ1aWxkZXIudHJ5QXBwZW5kKGJvZHkpOwotICAgICAgICBzdWNjZXNz
ICY9IGJ1aWxkZXIudHJ5QXBwZW5kTGl0ZXJhbCgiXG59fSIpOwotICAgICAgICBpZiAoIXN1Y2Nl
c3MpIHsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoYm9keSk7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiXG59fSIpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgICAgICBwcm9ncmFtID0gKnN0cmluZzsKKyAgICAgICAgZWxzZSB7
CiAgICAgICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZXhlYywgc2NvcGUpOwogICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0KLSAgICAgICAgcHJvZ3JhbSA9IGJ1aWxk
ZXIudG9TdHJpbmcoKTsKICAgICB9CiAKICAgICBTb3VyY2VDb2RlIHNvdXJjZSA9IG1ha2VTb3Vy
Y2UocHJvZ3JhbSwgc291cmNlT3JpZ2luLCBzb3VyY2VVUkwsIHBvc2l0aW9uKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCmlu
ZGV4IGM5MjBhY2YuLjJjMmYwNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcApAQCAtNjQ2LDcgKzY0NiwxMSBAQCB2b2lk
IEludGxEYXRlVGltZUZvcm1hdDo6aW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0KEV4ZWNTdGF0ZSYg
ZXhlYywgSlNWYWx1ZSBsb2NhbAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU3RyaW5n
IHNrZWxldG9uID0gc2tlbGV0b25CdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgU3RyaW5nIHNrZWxl
dG9uOworICAgIGlmIChhdXRvIHN0cmluZyA9IHNrZWxldG9uQnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICBza2VsZXRvbiA9ICpzdHJpbmc7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwog
ICAgIFN0cmluZ1ZpZXcgc2tlbGV0b25WaWV3KHNrZWxldG9uKTsKICAgICBWZWN0b3I8VUNoYXIs
IDMyPiBwYXR0ZXJuQnVmZmVyKDMyKTsKICAgICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCmluZGV4IDRhN2Y2ZGUu
LmY2OTc4ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3Qu
Y3BwCkBAIC0yNTgsNyArMjU4LDkgQEAgc3RhdGljIFN0cmluZyBwcml2YXRlVXNlTGFuZ1RhZyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYgcGFydHMsIHNpemVfdCBzdGFydEluZGV4KQogICAgIGlmIChj
dXJyZW50SW5kZXggPCBudW1QYXJ0cykKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAg
cmV0dXJuIHByaXZhdGV1c2UudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBwcml2
YXRldXNlLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIHN0YXRpYyBTdHJpbmcgY2Fub25pY2FsTGFuZ1RhZyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYgcGFydHMpCkBAIC0zOTEsNyArMzkzLDEwIEBAIHN0YXRpYyBTdHJpbmcgY2Fub25pY2FsTGFu
Z1RhZyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFydHMpCiAgICAgICAgIGlmICghbnVtRXh0UGFy
dHMpCiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKLSAgICAgICAgZXh0ZW5zaW9ucy5h
cHBlbmQoZXh0ZW5zaW9uLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBl
eHRlbnNpb24udG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGV4dGVuc2lvbnMuYXBwZW5kKCpzdHJp
bmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIC8v
IEFkZCBleHRlbnNpb25zIHRvIGNhbm9uaWNhbCBzb3J0ZWQgYnkgc2luZ2xldG9uLgpAQCAtNDE5
LDcgKzQyNCw5IEBAIHN0YXRpYyBTdHJpbmcgY2Fub25pY2FsTGFuZ1RhZyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYgcGFydHMpCiAKICAgICAvLyBGSVhNRTogUmVwbGFjZSBzdWJ0YWdzIHdpdGggdGhl
aXIgcHJlZmVycmVkIHZhbHVlcy4KIAotICAgIHJldHVybiBjYW5vbmljYWwudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBjYW5vbmljYWwudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBncmFuZGZhdGhl
cmVkTGFuZ1RhZyhjb25zdCBTdHJpbmcmIGxvY2FsZSkKQEAgLTYyNCw3ICs2MzEsMTAgQEAgU3Ry
aW5nIHJlbW92ZVVuaWNvZGVMb2NhbGVFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBsb2NhbGUpCiAg
ICAgICAgICAgICBidWlsZGVyLmFwcGVuZChwYXJ0c1twXSk7CiAgICAgICAgIH0KICAgICB9Ci0g
ICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogc3RhdGljIE1hdGNoZXJSZXN1bHQgbG9va3VwTWF0Y2hlcihFeGVjU3RhdGUmIHN0YXRl
LCBjb25zdCBIYXNoU2V0PFN0cmluZz4mIGF2YWlsYWJsZUxvY2FsZXMsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiByZXF1ZXN0ZWRMb2NhbGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCmluZGV4IDczMTM2NzMu
LjE5YjUyYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0RnVuY3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKQEAgLTE1MSw3ICsxNTEsOSBAQCBzdGF0aWMg
SlNWYWx1ZSBlbmNvZGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBCaXRtYXA8MjU2PiYgZG9Ob3RF
c2NhcGUsIGNvbnN0IENoYQogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIGpzU3RyaW5n
KGV4ZWMsIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4ganNTdHJpbmcoZXhlYywgKnN0cmluZyk7Cisg
ICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIEpTVmFsdWUgZW5jb2RlKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgQml0bWFwPDI1Nj4mIGRvTm90RXNjYXBlKQpAQCAtMjMwLDcgKzIzMiwxMCBAQCBzdGF0
aWMgSlNWYWx1ZSBkZWNvZGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBDaGFyVHlwZSogY2hhcmFj
dGVycywgaW50IGxlbmd0aCwgYwogICAgICAgICBidWlsZGVyLmFwcGVuZChjKTsKICAgICB9CiAg
ICAgc2NvcGUucmVsZWFzZSgpOwotICAgIHJldHVybiBqc1N0cmluZygmdm0sIGJ1aWxkZXIudG9T
dHJpbmcoKSk7CisKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiBqc1N0cmluZygmdm0sICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAK
IHN0YXRpYyBKU1ZhbHVlIGRlY29kZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEJpdG1hcDwyNTY+
JiBkb05vdFVuZXNjYXBlLCBib29sIHN0cmljdCkKQEAgLTYwMyw3ICs2MDgsOSBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNFc2NhcGUoRXhlY1N0YXRlKiBleGVjKQog
ICAgICAgICAgICAgICAgICAgICBhcHBlbmRCeXRlQXNIZXgoc3RhdGljX2Nhc3Q8TENoYXI+KHUp
LCBidWlsZGVyKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICByZXR1cm4ganNTdHJpbmcoZXhlYywgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4ganNTdHJpbmcoZXhlYywgKnN0cmluZyk7CisgICAgICAgICAgICBDUkFTSCgpOwogICAg
ICAgICB9CiAKICAgICAgICAgY29uc3QgVUNoYXIqIGMgPSB2aWV3LmNoYXJhY3RlcnMxNigpOwpA
QCAtNjIyLDcgKzYyOSw5IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVu
Y0VzY2FwZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAg
ICAgICByZXR1cm4ganNTdHJpbmcoZXhlYywgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJu
IGpzU3RyaW5nKGV4ZWMsICpzdHJpbmcpOworICAgICAgICBDUkFTSCgpOwogICAgIH0pKTsKIH0K
IApAQCAtNjc4LDcgKzY4Nyw5IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFs
RnVuY1VuZXNjYXBlKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIH0KICAgICAgICAgfQog
Ci0gICAgICAgIHJldHVybiBqc1N0cmluZyhleGVjLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBy
ZXR1cm4ganNTdHJpbmcoZXhlYywgKnN0cmluZyk7CisgICAgICAgIENSQVNIKCk7CiAgICAgfSkp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCmlu
ZGV4IDdlOWIzZDZhLi5kN2MwNmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09OT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09OT2JqZWN0LmNwcApAQCAtMjc4LDcgKzI3OCw5IEBAIEpTVmFsdWUgU3RyaW5naWZpZXI6
OnN0cmluZ2lmeShKU1ZhbHVlIHZhbHVlKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
IAogICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICByZXR1cm4ganNTdHJpbmcobV9leGVjLCByZXN1
bHQudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiBqc1N0cmluZyhtX2V4ZWMsICpzdHJpbmcpOworICAgIENSQVNIKCk7
CiB9CiAKIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBTdHJpbmdpZmllcjo6dG9KU09OKEpTVmFsdWUg
dmFsdWUsIGNvbnN0IFByb3BlcnR5TmFtZUZvckZ1bmN0aW9uQ2FsbCYgcHJvcGVydHlOYW1lKQpA
QCAtMzU3LDcgKzM1OSw3IEBAIFN0cmluZ2lmaWVyOjpTdHJpbmdpZnlSZXN1bHQgU3RyaW5naWZp
ZXI6OmFwcGVuZFN0cmluZ2lmaWVkVmFsdWUoU3RyaW5nQnVpbGRlciYKICAgICBpZiAodmFsdWUu
aXNTdHJpbmcoKSkgewogICAgICAgICBjb25zdCBTdHJpbmcmIHN0cmluZyA9IGFzU3RyaW5nKHZh
bHVlKS0+dmFsdWUobV9leGVjKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
U3RyaW5naWZ5RmFpbGVkKTsKLSAgICAgICAgaWYgKGJ1aWxkZXIudHJ5QXBwZW5kUXVvdGVkSlNP
TlN0cmluZyhzdHJpbmcpKQorICAgICAgICBpZiAoYnVpbGRlci5hcHBlbmRRdW90ZWRKU09OU3Ry
aW5nKHN0cmluZykpCiAgICAgICAgICAgICByZXR1cm4gU3RyaW5naWZ5U3VjY2VlZGVkOwogICAg
ICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IobV9leGVjLCBzY29wZSk7CiAgICAgICAgIHJldHVy
biBTdHJpbmdpZnlGYWlsZWQ7CkBAIC01MDQsOCArNTA2LDEyIEBAIGJvb2wgU3RyaW5naWZpZXI6
OkhvbGRlcjo6YXBwZW5kTmV4dFByb3BlcnR5KFN0cmluZ2lmaWVyJiBzdHJpbmdpZmllciwgU3Ry
aW5nQnVpCiAgICAgLy8gTGFzdCB0aW1lIHRocm91Z2gsIGZpbmlzaCB1cCBhbmQgcmV0dXJuIGZh
bHNlLgogICAgIGlmIChtX2luZGV4ID09IG1fc2l6ZSkgewogICAgICAgICBzdHJpbmdpZmllci51
bmluZGVudCgpOwotICAgICAgICBpZiAobV9zaXplICYmIGJ1aWxkZXJbYnVpbGRlci5sZW5ndGgo
KSAtIDFdICE9ICd7JykKLSAgICAgICAgICAgIHN0cmluZ2lmaWVyLnN0YXJ0TmV3TGluZShidWls
ZGVyKTsKKyAgICAgICAgaWYgKG1fc2l6ZSkgeworICAgICAgICAgICAgaWYgKGJ1aWxkZXIuZmFp
bGVkKCkpCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgICAgIGlmICgqYnVpbGRl
cltidWlsZGVyLmxlbmd0aCgpIC0gMV0gIT0gJ3snKQorICAgICAgICAgICAgICAgIHN0cmluZ2lm
aWVyLnN0YXJ0TmV3TGluZShidWlsZGVyKTsKKyAgICAgICAgfQogICAgICAgICBidWlsZGVyLmFw
cGVuZChtX2lzQXJyYXkgPyAnXScgOiAnfScpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQpAQCAtNTQ4LDcgKzU1NCw5IEBAIGJvb2wgU3RyaW5naWZpZXI6OkhvbGRlcjo6YXBwZW5kTmV4
dFByb3BlcnR5KFN0cmluZ2lmaWVyJiBzdHJpbmdpZmllciwgU3RyaW5nQnVpCiAgICAgICAgIHJv
bGxCYWNrUG9pbnQgPSBidWlsZGVyLmxlbmd0aCgpOwogCiAgICAgICAgIC8vIEFwcGVuZCB0aGUg
c2VwYXJhdG9yIHN0cmluZy4KLSAgICAgICAgaWYgKGJ1aWxkZXJbcm9sbEJhY2tQb2ludCAtIDFd
ICE9ICd7JykKKyAgICAgICAgaWYgKGJ1aWxkZXIuZmFpbGVkKCkpCisgICAgICAgICAgICBDUkFT
SCgpOworICAgICAgICBpZiAoKmJ1aWxkZXJbcm9sbEJhY2tQb2ludCAtIDFdICE9ICd7JykKICAg
ICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcsJyk7CiAgICAgICAgIHN0cmluZ2lmaWVyLnN0YXJ0
TmV3TGluZShidWlsZGVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9M
aXRlcmFsUGFyc2VyLmNwcAppbmRleCBmMDBmZTA3Li5iODY4NjhhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2VyLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2VyLmNwcApAQCAtNDY2LDEwICs0NjYs
MTYgQEAgc2xvd1BhdGhCZWdpbjoKICAgICB9IGVsc2UgewogICAgICAgICBpZiAobV9idWlsZGVy
LmlzOEJpdCgpKSB7CiAgICAgICAgICAgICB0b2tlbi5zdHJpbmdJczhCaXQgPSAxOwotICAgICAg
ICAgICAgdG9rZW4uc3RyaW5nVG9rZW44ID0gbV9idWlsZGVyLmNoYXJhY3RlcnM4KCk7CisgICAg
ICAgICAgICBpZiAoYXV0byBjaGFycyA9IG1fYnVpbGRlci5jaGFyYWN0ZXJzOCgpKQorICAgICAg
ICAgICAgICAgIHRva2VuLnN0cmluZ1Rva2VuOCA9ICpjaGFyczsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
dG9rZW4uc3RyaW5nSXM4Qml0ID0gMDsKLSAgICAgICAgICAgIHRva2VuLnN0cmluZ1Rva2VuMTYg
PSBtX2J1aWxkZXIuY2hhcmFjdGVyczE2KCk7CisgICAgICAgICAgICBpZiAoYXV0byBjaGFycyA9
IG1fYnVpbGRlci5jaGFyYWN0ZXJzMTYoKSkKKyAgICAgICAgICAgICAgICB0b2tlbi5zdHJpbmdU
b2tlbjE2ID0gKmNoYXJzOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNI
KCk7CiAgICAgICAgIH0KICAgICAgICAgdG9rZW4uc3RyaW5nTGVuZ3RoID0gbV9idWlsZGVyLmxl
bmd0aCgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09wdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAK
aW5kZXggZGY5ODIyMC4uNWI0ZGMxNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3B0aW9ucy5jcHAKQEAgLTU5NSw3ICs1OTUsMTAgQEAgdm9pZCBPcHRpb25zOjpkdW1wT3B0aW9u
c0lmTmVlZGVkKCkKIAogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGR1
bXBBbGxPcHRpb25zKGJ1aWxkZXIsIGxldmVsLCB0aXRsZSwgbnVsbHB0ciwgIiAgICIsICJcbiIs
IER1bXBEZWZhdWx0cyk7Ci0gICAgICAgIGRhdGFMb2coYnVpbGRlci50b1N0cmluZygpKTsKKyAg
ICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAg
ZGF0YUxvZygqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAg
ICB9CiB9CiAKQEAgLTgwNCw3ICs4MDcsMTAgQEAgdm9pZCBPcHRpb25zOjpkdW1wQWxsT3B0aW9u
cyhGSUxFKiBzdHJlYW0sIER1bXBMZXZlbCBsZXZlbCwgY29uc3QgY2hhciogdGl0bGUpCiB7CiAg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGR1bXBBbGxPcHRpb25zKGJ1aWxkZXIsIGxl
dmVsLCB0aXRsZSwgbnVsbHB0ciwgIiAgICIsICJcbiIsIER1bXBEZWZhdWx0cyk7Ci0gICAgZnBy
aW50ZihzdHJlYW0sICIlcyIsIGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGZwcmludGYo
c3RyZWFtLCAiJXMiLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgIGVsc2UKKyAgICAgICAg
Q1JBU0goKTsKIH0KIAogdm9pZCBPcHRpb25zOjpkdW1wT3B0aW9uKFN0cmluZ0J1aWxkZXImIGJ1
aWxkZXIsIER1bXBMZXZlbCBsZXZlbCwgT3B0aW9uczo6SUQgaWQsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAppbmRleCA3NjMxMDQ3Li44
YmRkMmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQ
cm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFBy
b3RvdHlwZS5jcHAKQEAgLTQ2Nyw3ICs0NjcsOSBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUgcmVn
RXhwUHJvdG9HZXR0ZXJTb3VyY2VJbnRlcm5hbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cgog
ICAgICAgICAgICAgcHJldmlvdXNDaGFyYWN0ZXJXYXNCYWNrc2xhc2ggPSBjaCA9PSAnXFwnOwog
ICAgIH0KIAotICAgIHJldHVybiBqc1N0cmluZyhleGVjLCByZXN1bHQudG9TdHJpbmcoKSk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBq
c1N0cmluZyhleGVjLCAqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyU291cmNlKEV4ZWNTdGF0ZSogZXhlYykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmls
ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5j
cHAKaW5kZXggNTkyYWY0MS4uZjA4YzRmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKQEAgLTkwNCw3ICs5MDQsOSBAQCBTdHJp
bmcgU2FtcGxpbmdQcm9maWxlcjo6c3RhY2tUcmFjZXNBc0pTT04oKQogCiAgICAgY2xlYXJEYXRh
KGxvY2tlcik7CiAKLSAgICByZXR1cm4ganNvbi50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGpzb24udG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogdm9pZCBTYW1wbGluZ1Byb2ZpbGVyOjpyZWdpc3RlckZvclJlcG9ydEF0RXhp
dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0ZyYW1l
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuY3BwCmluZGV4
IDlmMmQ2MGQuLjQ4YTIyYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0YWNrRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
YWNrRnJhbWUuY3BwCkBAIC0xMzksNyArMTM5LDkgQEAgU3RyaW5nIFN0YWNrRnJhbWU6OnRvU3Ry
aW5nKFZNJiB2bSkgY29uc3QKICAgICAgICAgICAgIHRyYWNlQnVpbGQuYXBwZW5kTnVtYmVyKGNv
bHVtbik7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIHRyYWNlQnVpbGQudG9TdHJpbmco
KS5pbXBsKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdHJhY2VCdWlsZC50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gc3RyaW5nLT5pbXBsKCk7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBT
dGFja0ZyYW1lOjp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCmluZGV4
IDBiMTBkOGYuLjVlZDJlYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKQEAgLTEyNSw3ICsxMjUsOSBAQCBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdGcm9tQ29kZVBvaW50KEV4ZWNTdGF0ZSog
ZXhlYykKICAgICB9CiAKICAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1N0cmluZyhleGVjLCBidWlsZGVyLnRvU3RyaW5nKCkpKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNTdHJpbmcoZXhlYywgKnN0cmluZykpOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhTdHJpbmdDb25zdHJ1
Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RyaW5nUHJvdG90eXBlLmNwcAppbmRleCBhMGQzNjAxLi41OGNjZDU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKQEAgLTI4
MCw3ICsyODAsOSBAQCBzdGF0aWMgTkVWRVJfSU5MSU5FIFN0cmluZyBzdWJzdGl0dXRlQmFja3Jl
ZmVyZW5jZXNTbG93KFN0cmluZ1ZpZXcgcmVwbGFjZW1lbnQsCiAgICAgaWYgKHJlcGxhY2VtZW50
Lmxlbmd0aCgpIC0gb2Zmc2V0KQogICAgICAgICBzdWJzdGl0dXRlZFJlcGxhY2VtZW50LmFwcGVu
ZChyZXBsYWNlbWVudC5zdWJzdHJpbmcob2Zmc2V0KSk7CiAKLSAgICByZXR1cm4gc3Vic3RpdHV0
ZWRSZXBsYWNlbWVudC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN1YnN0aXR1
dGVkUmVwbGFjZW1lbnQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogaW5saW5lIFN0cmluZyBzdWJzdGl0dXRlQmFja3JlZmVyZW5jZXNJbmxp
bmUoY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudCwgU3RyaW5nVmlldyBzb3VyY2UsIGNvbnN0IGlu
dCogb3ZlY3RvciwgUmVnRXhwKiByZWcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9UeXBlUHJvZmlsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVHlwZVByb2ZpbGVyLmNwcAppbmRleCAwZjg1ZWY4Li43YWU5NzQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlUHJvZmlsZXIuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQcm9maWxlci5jcHAKQEAgLTEwNCw4ICsxMDQs
MTAgQEAgU3RyaW5nIFR5cGVQcm9maWxlcjo6dHlwZUluZm9ybWF0aW9uRm9yRXhwcmVzc2lvbkF0
T2Zmc2V0KFR5cGVQcm9maWxlclNlYXJjaERlc2MKICAgICAgICAganNvbi5hcHBlbmRMaXRlcmFs
KCJmYWxzZSIpOwogCiAgICAganNvbi5hcHBlbmQoJ30nKTsKLSAgICAKLSAgICByZXR1cm4ganNv
bi50b1N0cmluZygpOworCisgICAgaWYgKGF1dG8gc3RyaW5nID0ganNvbi50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBUeXBlTG9jYXRpb24q
IFR5cGVQcm9maWxlcjo6ZmluZExvY2F0aW9uKHVuc2lnbmVkIGRpdm90LCBpbnRwdHJfdCBzb3Vy
Y2VJRCwgVHlwZVByb2ZpbGVyU2VhcmNoRGVzY3JpcHRvciBkZXNjcmlwdG9yLCBWTSYgdm0pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlU2V0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVTZXQuY3BwCmluZGV4IDdhNDEyZTYuLmMz
YTA1YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVTZXQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVTZXQuY3BwCkBAIC0x
MzEsNyArMTMxLDkgQEAgU3RyaW5nIFR5cGVTZXQ6OmR1bXBUeXBlcygpIGNvbnN0CiAgICAgICAg
IHNlZW4uYXBwZW5kKGxlYXN0Q29tbW9uQW5jZXN0b3IoKSk7CiAgICAgfQogCi0gICAgcmV0dXJu
IHNlZW4udG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzZWVuLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgVHlwZVNl
dDo6ZG9lc1R5cGVDb25mb3JtVG8oUnVudGltZVR5cGVNYXNrIHRlc3QpIGNvbnN0CkBAIC0zMTcs
NyArMzE5LDkgQEAgU3RyaW5nIFR5cGVTZXQ6OnRvSlNPTlN0cmluZygpIGNvbnN0CiAgICAganNv
bi5hcHBlbmQoJ10nKTsKIAogICAgIGpzb24uYXBwZW5kKCd9Jyk7Ci0gICAgcmV0dXJuIGpzb24u
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBqc29uLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cnVjdHVyZVNoYXBlOjpT
dHJ1Y3R1cmVTaGFwZSgpCkBAIC0zNjIsOCArMzY2LDExIEBAIFN0cmluZyBTdHJ1Y3R1cmVTaGFw
ZTo6cHJvcGVydHlIYXNoKCkKICAgICAgICAgYnVpbGRlci5hcHBlbmQobV9wcm90by0+cHJvcGVy
dHlIYXNoKCkpOwogICAgIH0KIAotICAgIG1fcHJvcGVydHlIYXNoID0gc3RkOjptYWtlX3VuaXF1
ZTxTdHJpbmc+KGJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgcmV0dXJuICptX3Byb3BlcnR5SGFz
aDsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAg
bV9wcm9wZXJ0eUhhc2ggPSBzdGQ6Om1ha2VfdW5pcXVlPFN0cmluZz4oKnN0cmluZyk7CisgICAg
ICAgIHJldHVybiAqbV9wcm9wZXJ0eUhhc2g7CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIFN0
cmluZyBTdHJ1Y3R1cmVTaGFwZTo6bGVhc3RDb21tb25BbmNlc3Rvcihjb25zdCBWZWN0b3I8UmVm
PFN0cnVjdHVyZVNoYXBlPj4mIHNoYXBlcykKQEAgLTQyNyw3ICs0MzQsOSBAQCBTdHJpbmcgU3Ry
dWN0dXJlU2hhcGU6OnN0cmluZ1JlcHJlc2VudGF0aW9uKCkKIAogICAgIHJlcHJlc2VudGF0aW9u
LmFwcGVuZCgnfScpOwogCi0gICAgcmV0dXJuIHJlcHJlc2VudGF0aW9uLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gcmVwcmVzZW50YXRpb24udG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIFN0cnVjdHVyZVNoYXBl
Ojp0b0pTT05TdHJpbmcoKSBjb25zdApAQCAtNDk0LDcgKzUwMyw5IEBAIFN0cmluZyBTdHJ1Y3R1
cmVTaGFwZTo6dG9KU09OU3RyaW5nKCkgY29uc3QKIAogICAgIGpzb24uYXBwZW5kKCd9Jyk7CiAK
LSAgICByZXR1cm4ganNvbi50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGpzb24u
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAog
UmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlJ1bnRpbWU6OlN0cnVjdHVyZURlc2NyaXB0aW9uPiBT
dHJ1Y3R1cmVTaGFwZTo6aW5zcGVjdG9yUmVwcmVzZW50YXRpb24oKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RSZWdFeHAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RSZWdFeHAuY3BwCmluZGV4IGU2Y2RkNTAuLmM0ZDhkZWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdFJlZ0V4cC5jcHAKQEAgLTMyOSwxMiArMzI5LDE1IEBAIHN0YXRpYyBSZWdFeHAqIHBh
cnNlUmVnRXhwTGluZShWTSYgdm0sIGNoYXIqIGxpbmUsIGludCBsaW5lTGVuZ3RoLCBjb25zdCBj
aGFyKioKIAogICAgICsraTsKIAotICAgIFJlZ0V4cCogciA9IFJlZ0V4cDo6Y3JlYXRlKHZtLCBw
YXR0ZXJuLnRvU3RyaW5nKCksIHJlZ0V4cEZsYWdzKGxpbmUgKyBpKSk7Ci0gICAgaWYgKCFyLT5p
c1ZhbGlkKCkpIHsKLSAgICAgICAgKnJlZ2V4cEVycm9yID0gci0+ZXJyb3JNZXNzYWdlKCk7Ci0g
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlmIChhdXRvIHN0cmluZyA9IHBhdHRlcm4udG9T
dHJpbmcoKSkgeworICAgICAgICBSZWdFeHAqIHIgPSBSZWdFeHA6OmNyZWF0ZSh2bSwgKnN0cmlu
ZywgcmVnRXhwRmxhZ3MobGluZSArIGkpKTsKKyAgICAgICAgaWYgKCFyLT5pc1ZhbGlkKCkpIHsK
KyAgICAgICAgICAgICpyZWdleHBFcnJvciA9IHItPmVycm9yTWVzc2FnZSgpOworICAgICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHI7CiAgICAgfQot
ICAgIHJldHVybiByOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBSZWdFeHBUZXN0KiBwYXJz
ZVRlc3RMaW5lKGNoYXIqIGxpbmUsIGludCBsaW5lTGVuZ3RoKQpAQCAtMzc3LDggKzM4MCwxMSBA
QCBzdGF0aWMgUmVnRXhwVGVzdCogcGFyc2VUZXN0TGluZShjaGFyKiBsaW5lLCBpbnQgbGluZUxl
bmd0aCkKICAgICBpbnQgc3RhcnQsIGVuZDsKICAgICAKICAgICBSZWdFeHBUZXN0KiByZXN1bHQg
PSBuZXcgUmVnRXhwVGVzdCgpOwotICAgIAotICAgIHJlc3VsdC0+c3ViamVjdCA9IHN1YmplY3RT
dHJpbmcudG9TdHJpbmcoKTsKKworICAgIGlmIChhdXRvIHN0cmluZyA9IHN1YmplY3RTdHJpbmcu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmVzdWx0LT5zdWJqZWN0ID0gKnN0cmluZzsKKyAgICBlbHNl
CisgICAgICAgIENSQVNIKCk7CiAgICAgcmVzdWx0LT5vZmZzZXQgPSBvZmZzZXQ7CiAgICAgcmVz
dWx0LT5yZXN1bHQgPSBtYXRjaFJlc3VsdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90b29scy9GdW5jdGlvbk92ZXJyaWRlcy5jcHAKaW5kZXggZTgzYjZlZS4uNGFjMjdjNSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuY3Bw
CkBAIC0yMTgsMTMgKzIxOCwxOCBAQCBzdGF0aWMgU3RyaW5nIHBhcnNlQ2xhdXNlKGNvbnN0IGNo
YXIqIGtleXdvcmQsIHNpemVfdCBrZXl3b3JkTGVuZ3RoLCBGSUxFKiBmaWxlLAogICAgICAgICAg
ICAgICAgIEZBSUxfV0lUSF9FUlJPUihTWU5UQVhfRVJST1IsICgiVW5leHBlY3RlZCBjaGFyYWN0
ZXJzIGFmdGVyICciLCBrZXl3b3JkLCAiJyBjbGF1c2UgZW5kIGRlbGltaXRlciAnIiwgZGVsaW1p
dGVyLCAiJzpcbiIsIGxpbmUsICJcbiIpKTsKIAogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQo
bGluZSwgcCAtIGxpbmUgKyAxKTsKLSAgICAgICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgICAgICBDUkFTSCgpOwogICAg
ICAgICB9CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGxpbmUpOwogCiAgICAgfSB3aGlsZSAoKGxp
bmUgPSBmZ2V0cyhidWZmZXIsIGJ1ZmZlclNpemUsIGZpbGUpKSk7CiAKLSAgICBGQUlMX1dJVEhf
RVJST1IoU1lOVEFYX0VSUk9SLCAoIiciLCBrZXl3b3JkLCAiJyBjbGF1c2UgZW5kIGRlbGltaXRl
ciAnIiwgZGVsaW1pdGVyLCAiJyBub3QgZm91bmQ6XG4iLCBidWlsZGVyLnRvU3RyaW5nKCksICJc
biIsICJBcmUgeW91IG1pc3NpbmcgYSAnfScgYmVmb3JlIHRoZSBkZWxpbWl0ZXI/XG4iKSk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBGQUlMX1dJ
VEhfRVJST1IoU1lOVEFYX0VSUk9SLCAoIiciLCBrZXl3b3JkLCAiJyBjbGF1c2UgZW5kIGRlbGlt
aXRlciAnIiwgZGVsaW1pdGVyLCAiJyBub3QgZm91bmQ6XG4iLCAqc3RyaW5nLCAiXG4iLCAiQXJl
IHlvdSBtaXNzaW5nIGEgJ30nIGJlZm9yZSB0aGUgZGVsaW1pdGVyP1xuIikpOworICAgIGVsc2UK
KyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBGdW5jdGlvbk92ZXJyaWRlczo6cGFyc2VPdmVy
cmlkZXNJbkZpbGUoY29uc3QgY2hhciogZmlsZU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtQkJRUGxhbi5jcHAKaW5kZXggYTc4MjBjOS4uZmEwMDM0MSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW4uY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcApAQCAtMTUwLDggKzE1MCwxMSBAQCB2
b2lkIEJCUVBsYW46OnByZXBhcmUoKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFs
KCJGYWlsZWQgYWxsb2NhdGluZyBlbm91Z2ggc3BhY2UgZm9yICIpOwogICAgICAgICAgICAgYnVp
bGRlci5hcHBlbmROdW1iZXIoc2l6ZSk7CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCh3aGF0
KTsKLSAgICAgICAgICAgIGZhaWwoaG9sZExvY2sobV9sb2NrKSwgYnVpbGRlci50b1N0cmluZygp
KTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgICAgIGZhaWwoaG9sZExvY2so
bV9sb2NrKSwgV1RGTW92ZSgqc3RyaW5nKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3lhcnIvWWFyclBhcnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhcnNl
ci5oCmluZGV4IGYxNmYxMWYuLjhiNzU4ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS95YXJyL1lhcnJQYXJzZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9Z
YXJyUGFyc2VyLmgKQEAgLTEwMzEsOCArMTAzMSwxMSBAQCBwcml2YXRlOgogCiAgICAgICAgICAg
ICB3aGlsZSAoIWF0RW5kT2ZQYXR0ZXJuKCkpIHsKICAgICAgICAgICAgICAgICBjaCA9IHRyeUNv
bnN1bWVJZGVudGlmaWVyQ2hhcmFjdGVyKCk7Ci0gICAgICAgICAgICAgICAgaWYgKGNoID09ICc+
JykKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPihpZGVu
dGlmaWVyQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICBpZiAoY2ggPT0gJz4n
KSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGlkZW50aWZpZXJCdWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRp
b25hbDxTdHJpbmc+KCpzdHJpbmcpOworICAgICAgICAgICAgICAgICAgICBDUkFTSCgpOworICAg
ICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGlmICghaXNJZGVudGlmaWVyUGFydChj
aCkpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTA3MCwyMyArMTA3MywzMiBAQCBw
cml2YXRlOgogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGlmIChmb3VuZEVx
dWFscykgewotICAgICAgICAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IHVuaWNvZGVNYXRjaFBy
b3BlcnR5VmFsdWUodW5pY29kZVByb3BlcnR5TmFtZSwgZXhwcmVzc2lvbkJ1aWxkZXIudG9TdHJp
bmcoKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGV4cHJlc3Npb25C
dWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gcmVzdWx0
ID0gdW5pY29kZU1hdGNoUHJvcGVydHlWYWx1ZSh1bmljb2RlUHJvcGVydHlOYW1lLCAqc3RyaW5n
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1fZXJyb3JDb2RlID0gRXJyb3JDb2RlOjpJbnZhbGlkVW5pY29kZVByb3Bl
cnR5RXhwcmVzc2lvbjsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBleHByZXNz
aW9uQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgIGF1dG8gcmVzdWx0
ID0gdW5pY29kZU1hdGNoUHJvcGVydHkoKnN0cmluZyk7CiAgICAgICAgICAgICAgICAgICAgIGlm
ICghcmVzdWx0KQogICAgICAgICAgICAgICAgICAgICAgICAgbV9lcnJvckNvZGUgPSBFcnJvckNv
ZGU6OkludmFsaWRVbmljb2RlUHJvcGVydHlFeHByZXNzaW9uOwogICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGF1
dG8gcmVzdWx0ID0gdW5pY29kZU1hdGNoUHJvcGVydHkoZXhwcmVzc2lvbkJ1aWxkZXIudG9TdHJp
bmcoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAgICAgICAgICAgICAg
IG1fZXJyb3JDb2RlID0gRXJyb3JDb2RlOjpJbnZhbGlkVW5pY29kZVByb3BlcnR5RXhwcmVzc2lv
bjsKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgIENSQVNI
KCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGNvbnN1bWUoKTsKICAgICAgICAgICAg
IGlmIChjaCA9PSAnPScpIHsKICAgICAgICAgICAgICAgICBpZiAoIWZvdW5kRXF1YWxzKSB7CiAg
ICAgICAgICAgICAgICAgICAgIGZvdW5kRXF1YWxzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAg
ICAgdW5pY29kZVByb3BlcnR5TmFtZSA9IGV4cHJlc3Npb25CdWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGV4cHJlc3Npb25CdWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICAgICAgICB1bmljb2RlUHJvcGVydHlOYW1lID0g
KnN0cmluZzsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAg
ICAgQ1JBU0goKTsKICAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbkJ1aWxkZXIuY2xlYXIo
KTsKICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICAgZXJyb3JzKys7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CmluZGV4IDg4MWIxNjQuLjhmZTE1NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQ2IEBACisyMDE4LTA0LTI2
ICBKRiBCYXN0aWVuICA8amZiYXN0aWVuQGFwcGxlLmNvbT4KKworICAgICAgICBTdHJpbmdCdWls
ZGVyIGlzIGZhbGxpYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODUwNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBTdHJpbmdCdWlsZGVyIGNhbiBmYWlsIHdoZW4gYWxsb2NhdGluZyBtZW1vcnkuIFN0
cmluZ0J1aWxkZXIgaXMKKyAgICAgICAgbW9zdGx5IHVzZWQgd2l0aCB1c2VyIGlucHV0LCB3aGlj
aCBvZnRlbiBtZWFucyB0aGF0IGp1c3QgY3Jhc2hpbmcKKyAgICAgICAgaXNuJ3QgdGhlIHJpZ2h0
IG91dGNvbWUuIE91ciBmdXp6ZXJzIG9mdGVuIGVuY291bnRlciBzdWNoIHRoaW5ncworICAgICAg
ICBmb3IgSmF2YVNjcmlwdENvcmUsIGFuZCBzbyBmYXIgd2UndmUgYXBwbGllZCBwb2ludCBzb2x1
dGlvbnMuIE5vCisgICAgICAgIG1vcmUhIFRoaXMgcGF0Y2ggbWFrZXMgU3RyaW5nQnVpbGRlciBm
YWxsaWJsZSBhbmQgZW5mb3JjZXMgdGhpcyBpbgorICAgICAgICB0d28gd2F5czoKKworICAgICAg
ICAgIC0gRWFjaCBzdGVwIG9mIGJ1aWxkaW5nIGEgc3RyaW5nIGNhbiBiZSBjaGVja2VkIGZvciBm
YWlsdXJlCisgICAgICAgICAgICBiZWNhdXNlIHRoZXkgbm93IHJldHVybiBhICJGYWxsaWJsZTxU
PiIuIFRoaXMgY2FuIGJlIGlnbm9yZWQgYXQKKyAgICAgICAgICAgIGV2ZXJ5IHN0ZXAhCisgICAg
ICAgICAgLSBUaGUgZmluYWwgc3RlcCBvZiBTdHJpbmdCdWlsZGVyLCBnZXR0aW5nIHRoZSBzdHJp
bmcgb3V0LAorICAgICAgICAgICAgcmV0dXJucyBhICJGYWxsaWJsZTxTdHJpbmc+IiB3aGljaCBp
cyBtYXJrZWQgd2l0aAorICAgICAgICAgICAgV0FSTl9VTlVTRURfUkVUVVJOLiBGYWlsdXJlIGlz
IGNvbW11bmljYXRlZCBpZiBhbnkgb2YgdGhlIGJ1aWxkaW5nCisgICAgICAgICAgICBzdGVwcyBm
YWlsZWQuCisKKyAgICAgICAgRG9pbmcgdGhpcyB0d28tc3RlcCBhcHByb2FjaCBtZWFucyB0aGF0
IGNvZGUgY2FuIGNvbnRpbnVlCisgICAgICAgIG9wZXJhdGluZyBhcyBpdCBkaWQgYmVmb3JlIChh
cHBlbmQgYSBidW5jaCBhbmQgdGhlbiBnZXQgYSBzdHJpbmcpCisgICAgICAgIGFuZCBvbmx5IG5l
ZWRzIHRvIGNhcmUgYWJvdXQgdGhlIHN0cmluZyBwb3RlbnRpYWxseSBub3QgYmVpbmcKKyAgICAg
ICAgYXZhaWxhYmxlLiBUaGlzIGlzIGVuZm9yY2VkIGJ5IHRoZSB0eXBlIHN5c3RlbTogRmFsbGli
bGU8VD4gaXMKKyAgICAgICAgc3RkOjpleHBlY3RlZDxULCBTdHJpbmdCdWlsZGVyOjpGYWlsdXJl
Pi4KKworICAgICAgICBUaGUgZm9sbG93aW5nIGludGVybWVkaWF0ZSBmdW5jdGlvbnMgY2FuIG5v
dyBiZSBvYnNlcnZlZCB0byBmYWlsCisgICAgICAgIChvciBpZ25vcmVkKToKKworICAgICAgICAg
IC0gYXBwZW5kCisgICAgICAgICAgLSBhcHBlbmRVbmluaXRpYWxpemVkCisgICAgICAgICAgLSBh
cHBlbmRVbmluaXRpYWxpemVkU2xvdworICAgICAgICAgIC0gYXBwZW5kUXVvdGVkSlNPTlN0cmlu
ZyB1c2VkIHRvIHJldHVybiBmYWxzZSBvbiBmYWlsdXJlLCBpdCBub3cgcmV0dXJucyBGYWxsaWJs
ZTw+CisgICAgICAgICAgLSByZXNpemUKKyAgICAgICAgICAtIGFsbG9jYXRlQnVmZmVyCisgICAg
ICAgICAgLSBhbGxvY2F0ZUJ1ZmZlclVwQ29udmVydAorICAgICAgICAgIC0gcmVhbGxvY2F0ZUJ1
ZmZlcgorICAgICAgICAgIC0gcmVzZXJ2ZUNhcGFjaXR5CisgICAgICAgICAgLSBzaHJpbmtUb0Zp
dAorICAgICAgICAgIC0gb3BlcmF0b3JbXQorICAgICAgICAgIC0gY2hhcmFjdGVyczgKKyAgICAg
ICAgICAtIGNoYXJhY3RlcnMxNgorCisgICAgICAgIEZhaWx1cmUgaW4gdGhlc2UgbWV0aG9kcyBj
b21lcyBpbiB0d28gZm9ybXM6IG91dCBvZiBtZW1vcnksIGFuZAorICAgICAgICB3b3VsZCBvdmVy
Zmxvdy4gV2hlbiBhbiBvcGVyYXRpb24gd291bGQgb3ZlcmZsb3cgaXQgbGVhdmVzIHRoZQorICAg
ICAgICBTdHJpbmdCdWlsZGVyIGluIGl0cyBwcmV2aW91cyBzdGF0ZSwgYWxsb3dpbmcgdXNlcnMg
dG8gcmVzdW1lCisgICAgICAgIHdvcmssIGtlZXAgdGhlIHN0cmluZyBhcyBpdCBleGlzdGVkIGJl
Zm9yZSBmYWlsdXJlLiBXaGVuIHdlIGp1c3QKKyAgICAgICAgZmFpbCBhbGxvY2F0aW5nIGl0IG1l
YW5zIHdlIGV4cGVjdGVkIHRvIHN1Y2NlZWQsIHNvIGNsZWFyaW5nIHRoZQorICAgICAgICBTdHJp
bmdCdWlsZGVyIGlzIHRoZSByaWdodCB0aGluZyB0byBkby4KKworICAgICAgICBTdXBwb3J0aW5n
IGZhaWx1cmUgaW4gU3RyaW5nQnVpbGRlciByZXF1aXJlZCBhZGRpbmcgInRyeSIgdmFyaWFudHMK
KyAgICAgICAgb2Ygc29tZSBtZXRob2RzIGluIFN0cmluZ0ltcGwuCisKKyAgICAgICAgVGhpcyBw
YXRjaCB1cGRhdGVzIGFsbCBXZWJLaXQgY29kZSB3aGljaCB1c2VzIFN0cmluZ0J1aWxkZXIuIEl0
CisgICAgICAgIGxlYXZlcyBhbGwgaW50ZXJtZWRpYXRlIGZ1bmN0aW9uIHVzYWdlIGFsb25lIChj
b2RlIHN0aWxsIGFwcGVuZHMKKyAgICAgICAgYmFjay10by1iYWNrLCBibGlzc2Z1bGx5IHVuYXdh
cmUgb2YgZmFpbHVyZSksIGFuZCBvbmx5IGNoZWNrcyBmb3IKKyAgICAgICAgZmFpbHVyZSB3aGVu
IHJldHJpZXZpbmcgdGhlIHN0cmluZy4gVGhlIHBhdHRlcm4gdXNlZCBpcyB1c3VhbGx5OgorCisg
ICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAg
ICAgZm9vKCpzdHJpbmcpOyAvLyBVc2Ugc3RyaW5nIGFzIGJlZm9yZS4uLgorICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIENSQVNIKCk7CisKKyAgICAgICAgVGhpcyBtYWtlcyBmYWlsdXJlIGV4
dHJlbWVseSBleHBsaWNpdC4gVGhlcmUncyBubyB0cnVlIGJlaGF2aW9yCisgICAgICAgIGNoYW5n
ZTogd2hhdCB3b3VsZCBoYXZlIGNyYXNoZWQgd2hlbiBhcHBlbmRpbmcgbm93IGNyYXNoZXMgd2hl
bgorICAgICAgICByZXRyaWV2aW5nIHRoZSBzdHJpbmcuIFB1bGxpbmcgQ1JBU0goKSBvdXQgd2ls
bCBnaXZlIHNsaWdodGx5CisgICAgICAgIGJldHRlciBjcmFzaCBzaWduYXR1cmVzLCBhbmQgaXQg
bWFrZXMgdGhlIGNvZGUgdmVyeSBvYnZpb3VzIGFib3V0CisgICAgICAgIGZhaWx1cmUuIEkgcHVy
cG9zZWZ1bGx5IGRvbid0ICJmaXgiIGFueSBmYWlsdXJlIGJlY2F1c2UgdGhlc2UKKyAgICAgICAg
c2hvdWxkIGJlIGRvbmUgaW4gYSB0YXJnZXRlZCBtYW5uZXIgd2l0aCByZXBybyB0ZXN0cyB3aGVu
ZXZlcgorICAgICAgICBwb3NzaWJsZS4gSSdtIHZlcnkgd2FyeSBvZiBpbnRyb2R1Y2luZyBidWdz
IQorCisgICAgICAgIFdoZW4gc29tZW9uZSBpbmV2aXRhYmx5IGJsYW1lcyBjb2RlIGJhY2sgdG8g
dGhpcyBjb21taXQgKGJlY2F1c2UKKyAgICAgICAgaGV5IHRoZSBjb2RlIGlzIHByZXR0eSB1Z2x5
LCBhbmQgeW91IG1pZ2h0IGJlIHN1cnByaXNlZCBhdCBzZWVpbmcKKyAgICAgICAgQ1JBU0goKSBp
biB5b3VyIGJlYXV0aWZ1bCBjb2RlKSB0aGVyZSBhcmUgYSBmZXcgdGhpbmdzIHdoaWNoIHRoZXkK
KyAgICAgICAgY2FuIGRvOgorCisgICAgICAgICAgMS4gQ2hhbmdlIHRoZSBlbHNlIGNsYXVzZSB0
byBoYW5kbGUgZmFpbHVyZSByYXRoZXIgdGhhbiBjcmFzaC4gSW4gSmF2YVNjcmlwdENvcmUgdGhh
dCdzIHVzdWFsbHkgdGhyb3dPdXRPZk1lbW9yeUVycm9yLgorICAgICAgICAgIDIuIENoYW5nZSB0
aGUgY29kZSB0byBkaXJlY3RseSB1c2UgRmFsbGlibGUncyAudmFsdWUoKSBtZW1iZXIsIGFuZCBs
ZXQgKnRoYXQqIGNyYXNoIGluc3RlYWQuIFRoaXMgbWFrZXMgdGhlIGNyYXNoIG5vbi1vYnZpb3Vz
IGluIHRoZSBjb2RlLCB3aGljaCBtaWdodCBiZSB3aGF0IHlvdSB3YW50LgorICAgICAgICAgIDMu
IENoYW5nZSB0aGUgY29kZSB0byBkZXRlY3QgZmFpbHVyZSBhdCB0aGUgZWFybGllc3Qgc3RlcCBv
ZiBzdHJpbmcgYnVpbGRpbmcgKGxpa2VseSB0aGUgYXBwZW5kIGNhbGxzKSwgYW5kIGRvIHNvbWV0
aGluZyBzZW5zaWJsZSB0aGVyZS4KKworICAgICAgICBJbiBubyBjaXJjdW1zdGFuY2Ugc2hvdWxk
IGNvZGUganVzdCBkZXJlZmVyZW5jZSBhIEZhbGxpYmxlIHdpdGhvdXQKKyAgICAgICAga25vd2lu
ZyB0aGF0IGl0cyBzdGF0ZSBob2xkcyBhIHZhbGlkIHN0cmluZy4gVGhpcyBjb2RlIGlzCisgICAg
ICAgIHVuZGVmaW5lZCBiZWhhdmlvciBhY2NvcmRpbmcgdG8gdGhlIHN0ZDo6ZXhwZWN0ZWQgc3Bl
Y2lmaWNhdGlvbgorICAgICAgICAod2hldGhlciBvdXIgaW1wbGVtZW50YXRpb24gc2hvdWxkIGRv
IHNvbWV0aGluZyBlbHNlIGlzIG91dCBvZgorICAgICAgICBzY29wZSBmb3IgdGhpcyBwYXRjaCk6
CisKKyAgICAgICAgICBmb28oKmJ1aWxkZXIudG9TdHJpbmcoKSk7IC8vIFVCIHdoZW4gYWxsb2Nh
dGlvbiBmYWlscy4KKworICAgICAgICAqIHd0Zi9Bc3NlcnRpb25zLmNwcDoKKyAgICAgICAgKiB3
dGYvRGF0ZU1hdGguY3BwOgorICAgICAgICAoV1RGOjptYWtlUkZDMjgyMkRhdGVTdHJpbmcpOgor
ICAgICAgICAqIHd0Zi9KU09OVmFsdWVzLmNwcDoKKyAgICAgICAgKFdURjo6SlNPTkltcGw6OlZh
bHVlOjp0b0pTT05TdHJpbmcgY29uc3QpOgorICAgICAgICAqIHd0Zi9Mb2dnZXIuaDoKKyAgICAg
ICAgKFdURjo6TG9nQXJndW1lbnQ6OnRvU3RyaW5nKToKKyAgICAgICAgKFdURjo6TG9nQXJndW1l
bnQ8TG9nZ2VyOjpMb2dTaXRlSWRlbnRpZmllcj46OnRvU3RyaW5nKToKKyAgICAgICAgKiB3dGYv
TWVkaWFUaW1lLmNwcDoKKyAgICAgICAgKFdURjo6TWVkaWFUaW1lOjp0b1N0cmluZyBjb25zdCk6
CisgICAgICAgICogd3RmL1VVSUQuY3BwOgorICAgICAgICAoV1RGOjpjcmVhdGVDYW5vbmljYWxV
VUlEU3RyaW5nKToKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmNwcDoKKyAgICAg
ICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6d291bGRPdmVyZmxvdyk6CisgICAgICAgIChXVEY6OlN0
cmluZ0J1aWxkZXI6Om91dE9mTWVtb3J5KToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6
cmVzaXplKToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6YWxsb2NhdGVCdWZmZXIpOgor
ICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjphbGxvY2F0ZUJ1ZmZlclVwQ29udmVydCk6Cisg
ICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OnJlYWxsb2NhdGVCdWZmZXI8TENoYXI+KToKKyAg
ICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6cmVhbGxvY2F0ZUJ1ZmZlcjxVQ2hhcj4pOgorICAg
ICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpyZXNlcnZlQ2FwYWNpdHkpOgorICAgICAgICAoV1RG
OjpTdHJpbmdCdWlsZGVyOjphcHBlbmQpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjph
cHBlbmROdW1iZXIpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjphcHBlbmRFQ01BU2Ny
aXB0TnVtYmVyKToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6YXBwZW5kRml4ZWRXaWR0
aE51bWJlcik6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OnNocmlua1RvRml0KToKKyAg
ICAgICAgKiB3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg6CisgICAgICAgIChXVEY6OlN0cmluZ0J1
aWxkZXI6OlN0cmluZ0J1aWxkZXIpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjphcHBl
bmQpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjphcHBlbmRMaXRlcmFsKToKKyAgICAg
ICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6dG9TdHJpbmcpOgorICAgICAgICAoV1RGOjpTdHJpbmdC
dWlsZGVyOjp0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkgY29uc3QpOgorICAgICAgICAoV1RGOjpT
dHJpbmdCdWlsZGVyOjp0b0F0b21pY1N0cmluZyBjb25zdCk6CisgICAgICAgIChXVEY6OlN0cmlu
Z0J1aWxkZXI6OmlzOEJpdCBjb25zdCk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OmZh
aWxlZCBjb25zdCk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6Om9wZXJhdG9yW10gY29u
c3QpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjogY29uc3QpOgorICAgICAgICAoV1RG
OjpTdHJpbmdCdWlsZGVyOjpjbGVhcik6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OnN3
YXApOgorICAgICAgICAoV1RGOjplcXVhbCk6CisgICAgICAgIChXVEY6OkludGVnZXJUb1N0cmlu
Z0NvbnZlcnNpb25UcmFpdDxTdHJpbmdCdWlsZGVyPjo6Zmx1c2gpOgorICAgICAgICAqIHd0Zi90
ZXh0L1N0cmluZ0J1aWxkZXJKU09OLmNwcDoKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6
YXBwZW5kUXVvdGVkSlNPTlN0cmluZyk6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nSW1wbC5j
cHA6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OnJlYWxsb2NhdGVJbnRlcm5hbCk6CisgICAg
ICAgIChXVEY6OlN0cmluZ0ltcGw6OnJlYWxsb2NhdGUpOgorICAgICAgICAoV1RGOjpTdHJpbmdJ
bXBsOjp0cnlSZWFsbG9jYXRlKToKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmg6Cisg
ICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OnRyeUNyZWF0ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKToK
KyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6Y3JlYXRlU3Vic3RyaW5nU2hhcmluZ0ltcGwpOgor
ICAgICAgICAqIHd0Zi90ZXh0L1RleHRTdHJlYW0uY3BwOgorICAgICAgICAoV1RGOjpUZXh0U3Ry
ZWFtOjpyZWxlYXNlKToKKwogMjAxOC0wNS0wMSAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNzZXRA
YXBwbGUuY29tPgogCiAgICAgICAgIENvcnJlY3RseSBkZXRlY3Qgc3RyaW5nIG92ZXJmbG93IHdo
ZW4gdXNpbmcgdGhlICdGdW5jdGlvbicgY29uc3RydWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL0Fzc2VydGlvbnMuY3BwIGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKaW5k
ZXggZTE1YTA5Mi4uZDdjODMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9u
cy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKQEAgLTM0Miw5ICszNDIs
MTEgQEAgdm9pZCBXVEZMb2dnaW5nQWNjdW11bGF0b3I6OnJlc2V0QWNjdW11bGF0ZWRMb2dzKCkK
IFN0cmluZyBXVEZMb2dnaW5nQWNjdW11bGF0b3I6OmdldEFuZFJlc2V0QWNjdW11bGF0ZWRMb2dz
KCkKIHsKICAgICBMb2NrZXI8TG9jaz4gbG9ja2VyKGFjY3VtdWxhdG9yTG9jayk7Ci0gICAgU3Ry
aW5nIHJlc3VsdCA9IGxvZ2dpbmdBY2N1bXVsYXRvci50b1N0cmluZygpOwotICAgIGxvZ2dpbmdB
Y2N1bXVsYXRvci5jbGVhcigpOwotICAgIHJldHVybiByZXN1bHQ7CisgICAgaWYgKGF1dG8gcmVz
dWx0ID0gbG9nZ2luZ0FjY3VtdWxhdG9yLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgbG9nZ2luZ0Fj
Y3VtdWxhdG9yLmNsZWFyKCk7CisgICAgICAgIHJldHVybiAqcmVzdWx0OworICAgIH0KKyAgICBD
UkFTSCgpOwogfQogCiBzdGF0aWMgV1RGTG9nZ2luZ0FjY3VtdWxhdG9yJiBsb2dnaW5nQWNjdW11
bGF0b3IoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291cmNl
L1dURi93dGYvRGF0ZU1hdGguY3BwCmluZGV4IDZkYjkyZWIuLmE4NDI1ZjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9EYXRlTWF0
aC5jcHAKQEAgLTExODcsNyArMTE4Nyw5IEBAIFN0cmluZyBtYWtlUkZDMjgyMkRhdGVTdHJpbmco
dW5zaWduZWQgZGF5T2ZXZWVrLCB1bnNpZ25lZCBkYXksIHVuc2lnbmVkIG1vbnRoLCB1CiAgICAg
YXBwZW5kVHdvRGlnaXROdW1iZXIoc3RyaW5nQnVpbGRlciwgYWJzb2x1dGVVVENPZmZzZXQgLyA2
MCk7CiAgICAgYXBwZW5kVHdvRGlnaXROdW1iZXIoc3RyaW5nQnVpbGRlciwgYWJzb2x1dGVVVENP
ZmZzZXQgJSA2MCk7CiAKLSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0pT
T05WYWx1ZXMuY3BwCmluZGV4IGJkZTQ0YWIuLjA4YzYyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL0pTT05WYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuY3Bw
CkBAIC0zMjcsOCArMzI3LDExIEBAIGJvb2wgZGVjb2RlU3RyaW5nKGNvbnN0IFVDaGFyKiBzdGFy
dCwgY29uc3QgVUNoYXIqIGVuZCwgU3RyaW5nJiBvdXRwdXQpCiAgICAgaWYgKCFkZWNvZGVTdHJp
bmcoc3RhcnQsIGVuZCwgYnVmZmVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgb3V0
cHV0ID0gYnVmZmVyLnRvU3RyaW5nKCk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVmZmVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgb3V0cHV0ID0gKnN0cmluZzsK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKIH0KIAogUmVm
UHRyPEpTT046OlZhbHVlPiBidWlsZFZhbHVlKGNvbnN0IFVDaGFyKiBzdGFydCwgY29uc3QgVUNo
YXIqIGVuZCwgY29uc3QgVUNoYXIqKiB2YWx1ZVRva2VuRW5kLCBpbnQgZGVwdGgpCkBAIC01NTMs
NyArNTU2LDkgQEAgU3RyaW5nIFZhbHVlOjp0b0pTT05TdHJpbmcoKSBjb25zdAogICAgIFN0cmlu
Z0J1aWxkZXIgcmVzdWx0OwogICAgIHJlc3VsdC5yZXNlcnZlQ2FwYWNpdHkoNTEyKTsKICAgICB3
cml0ZUpTT04ocmVzdWx0KTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgVmFsdWU6OmFzQm9vbGVhbihib29sJiBvdXRwdXQp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaCBiL1NvdXJjZS9XVEYv
d3RmL0xvZ2dlci5oCmluZGV4IDZiMDFiNTguLjQ4YjhkODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL0xvZ2dlci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCkBAIC00Niw3ICs0
NiwxMiBAQCBzdHJ1Y3QgTG9nQXJndW1lbnQgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFUgPSBU
PiBzdGF0aWMgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19zYW1lPFUsIGRvdWJsZT46
OnZhbHVlLCBTdHJpbmc+Ojp0eXBlIHRvU3RyaW5nKGRvdWJsZSBhcmd1bWVudCkgeyByZXR1cm4g
U3RyaW5nOjpudW1iZXIoYXJndW1lbnQpOyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVSA9IFQ+
IHN0YXRpYyB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxzdGQ6OmlzX3NhbWU8dHlwZW5hbWUgc3Rk
OjpyZW1vdmVfcmVmZXJlbmNlPFU+Ojp0eXBlLCBBdG9taWNTdHJpbmc+Ojp2YWx1ZSwgU3RyaW5n
Pjo6dHlwZSB0b1N0cmluZyhBdG9taWNTdHJpbmcgYXJndW1lbnQpIHsgcmV0dXJuIGFyZ3VtZW50
LnN0cmluZygpOyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVSA9IFQ+IHN0YXRpYyB0eXBlbmFt
ZSBzdGQ6OmVuYWJsZV9pZjxzdGQ6OmlzX3NhbWU8dHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJl
bmNlPFU+Ojp0eXBlLCBTdHJpbmc+Ojp2YWx1ZSwgU3RyaW5nPjo6dHlwZSB0b1N0cmluZyhTdHJp
bmcgYXJndW1lbnQpIHsgcmV0dXJuIGFyZ3VtZW50OyB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUg
VSA9IFQ+IHN0YXRpYyB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxzdGQ6OmlzX3NhbWU8dHlwZW5h
bWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPFU+Ojp0eXBlLCBTdHJpbmdCdWlsZGVyKj46OnZhbHVl
LCBTdHJpbmc+Ojp0eXBlIHRvU3RyaW5nKFN0cmluZ0J1aWxkZXIqIGFyZ3VtZW50KSB7IHJldHVy
biBhcmd1bWVudC0+dG9TdHJpbmcoKTsgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFUgPSBUPiBz
dGF0aWMgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19zYW1lPHR5cGVuYW1lIHN0ZDo6
cmVtb3ZlX3JlZmVyZW5jZTxVPjo6dHlwZSwgU3RyaW5nQnVpbGRlcio+Ojp2YWx1ZSwgU3RyaW5n
Pjo6dHlwZSB0b1N0cmluZyhTdHJpbmdCdWlsZGVyKiBhcmd1bWVudCkKKyAgICB7CisgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IGFyZ3VtZW50LT50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CisgICAgfQogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFUgPSBUPiBzdGF0aWMgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19zYW1lPFUs
IGNvbnN0IGNoYXIqPjo6dmFsdWUsIFN0cmluZz46OnR5cGUgdG9TdHJpbmcoY29uc3QgY2hhciog
YXJndW1lbnQpIHsgcmV0dXJuIFN0cmluZyhhcmd1bWVudCk7IH0KICAgICB0ZW1wbGF0ZTxzaXpl
X3QgbGVuZ3RoPiBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IGNoYXIgKCZhcmd1bWVudClb
bGVuZ3RoXSkgeyByZXR1cm4gU3RyaW5nKGFyZ3VtZW50KTsgfQogfTsKQEAgLTI3NCw3ICsyNzks
OSBAQCBzdHJ1Y3QgTG9nQXJndW1lbnQ8TG9nZ2VyOjpMb2dTaXRlSWRlbnRpZmllcj4gewogICAg
ICAgICBidWlsZGVyLmFwcGVuZCgnKCcpOwogICAgICAgICBhcHBlbmRVbnNpZ25lZDY0QXNIZXgo
dmFsdWUub2JqZWN0UHRyLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFs
KCIpICIpOwotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAo
YXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9NZWRpYVRpbWUuY3BwIGIvU291cmNlL1dURi93dGYvTWVkaWFUaW1lLmNwcAppbmRl
eCAwMzA1MGI1Li4xZjc3YjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NZWRpYVRpbWUu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL01lZGlhVGltZS5jcHAKQEAgLTU3NCw3ICs1NzQsOSBA
QCBTdHJpbmcgTWVkaWFUaW1lOjp0b1N0cmluZygpIGNvbnN0CiAgICAgfQogICAgIGJ1aWxkZXIu
YXBwZW5kTnVtYmVyKHRvRG91YmxlKCkpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCd9Jyk7Ci0gICAg
cmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IFN0cmluZyBNZWRpYVRpbWU6OnRvSlNPTlN0cmluZygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9VVUlELmNwcCBiL1NvdXJjZS9XVEYvd3RmL1VVSUQuY3BwCmluZGV4IGZiNWZl
NWIuLmI1OThmMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1VVSUQuY3BwCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL1VVSUQuY3BwCkBAIC01Niw3ICs1Niw5IEBAIFN0cmluZyBjcmVhdGVDYW5v
bmljYWxVVUlEU3RyaW5nKCkKICAgICBidWlsZGVyLmFwcGVuZCgnLScpOwogICAgIGFwcGVuZFVu
c2lnbmVkQXNIZXhGaXhlZFNpemUocmFuZG9tRGF0YVsyXSAmIDB4MDAwMGZmZmYsIGJ1aWxkZXIs
IDQsIExvd2VyY2FzZSk7CiAgICAgYXBwZW5kVW5zaWduZWRBc0hleEZpeGVkU2l6ZShyYW5kb21E
YXRhWzNdLCBidWlsZGVyLCA4LCBMb3dlcmNhc2UpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXVEYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlci5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuY3BwCmluZGV4IGQ3OWQ0YzUuLjI1ODRjNTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlci5jcHAKKysrIGIv
U291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTMsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC02MiwyNiArNjIsNDQgQEAgdm9pZCBT
dHJpbmdCdWlsZGVyOjpyZWlmeVN0cmluZygpIGNvbnN0CiAgICAgICAgIG1fc3RyaW5nID0gU3Ry
aW5nSW1wbDo6Y3JlYXRlU3Vic3RyaW5nU2hhcmluZ0ltcGwoKm1fYnVmZmVyLCAwLCBtX2xlbmd0
aCk7CiB9CiAKLXZvaWQgU3RyaW5nQnVpbGRlcjo6cmVzaXplKHVuc2lnbmVkIG5ld1NpemUpCitV
bmV4cGVjdGVkPFN0cmluZ0J1aWxkZXI6OkZhaWx1cmU+IFN0cmluZ0J1aWxkZXI6OndvdWxkT3Zl
cmZsb3coKQoreworICAgIG1fZmFpbGVkID0gdHJ1ZTsKKyAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQoRmFpbHVyZTo6V291bGRPdmVyZmxvdyk7Cit9CisKK1VuZXhwZWN0ZWQ8U3RyaW5nQnVpbGRl
cjo6RmFpbHVyZT4gU3RyaW5nQnVpbGRlcjo6b3V0T2ZNZW1vcnkoKQoreworICAgIGNsZWFyKCk7
CisgICAgbV9mYWlsZWQgPSB0cnVlOworICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGYWlsdXJl
OjpPdXRPZk1lbW9yeSk7Cit9CisKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVp
bGRlcjo6cmVzaXplKHVuc2lnbmVkIG5ld1NpemUpCiB7CiAgICAgLy8gQ2hlY2sgbmV3U2l6ZSA8
IG1fbGVuZ3RoLCBoZW5jZSBtX2xlbmd0aCA+IDAuCiAgICAgQVNTRVJUKG5ld1NpemUgPD0gbV9s
ZW5ndGgpOwogICAgIGlmIChuZXdTaXplID09IG1fbGVuZ3RoKQotICAgICAgICByZXR1cm47Cisg
ICAgICAgIHJldHVybiB7IH07CiAgICAgQVNTRVJUKG1fbGVuZ3RoKTsKIAogICAgIC8vIElmIHRo
ZXJlIGlzIGEgYnVmZmVyLCB3ZSBvbmx5IG5lZWQgdG8gZHVwbGljYXRlIGl0IGlmIGl0IGhhcyBt
b3JlIHRoYW4gb25lIHJlZi4KICAgICBpZiAobV9idWZmZXIpIHsKICAgICAgICAgbV9zdHJpbmcg
PSBTdHJpbmcoKTsgLy8gQ2xlYXIgdGhlIHN0cmluZyB0byByZW1vdmUgdGhlIHJlZmVyZW5jZSB0
byBtX2J1ZmZlciBpZiBhbnkgYmVmb3JlIGNoZWNraW5nIHRoZSByZWZlcmVuY2UgY291bnQgb2Yg
bV9idWZmZXIuCiAgICAgICAgIGlmICghbV9idWZmZXItPmhhc09uZVJlZigpKSB7Ci0gICAgICAg
ICAgICBpZiAobV9idWZmZXItPmlzOEJpdCgpKQotICAgICAgICAgICAgICAgIGFsbG9jYXRlQnVm
ZmVyKG1fYnVmZmVyLT5jaGFyYWN0ZXJzOCgpLCBtX2J1ZmZlci0+bGVuZ3RoKCkpOwotICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGFsbG9jYXRlQnVmZmVyKG1fYnVmZmVyLT5jaGFy
YWN0ZXJzMTYoKSwgbV9idWZmZXItPmxlbmd0aCgpKTsKKyAgICAgICAgICAgIGlmIChtX2J1ZmZl
ci0+aXM4Qml0KCkpIHsKKyAgICAgICAgICAgICAgICBhdXRvIGFsbG9jYXRlZCA9IGFsbG9jYXRl
QnVmZmVyKG1fYnVmZmVyLT5jaGFyYWN0ZXJzOCgpLCBtX2J1ZmZlci0+bGVuZ3RoKCkpOworICAg
ICAgICAgICAgICAgIGlmICghYWxsb2NhdGVkKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
YWxsb2NhdGVkOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBhdXRvIGFs
bG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVyKG1fYnVmZmVyLT5jaGFyYWN0ZXJzMTYoKSwgbV9idWZm
ZXItPmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRlZDsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQog
ICAgICAgICBtX2xlbmd0aCA9IG5ld1NpemU7CiAgICAgICAgIEFTU0VSVChtX2J1ZmZlci0+bGVu
Z3RoKCkgPj0gbV9sZW5ndGgpOwotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB7IH07
CiAgICAgfQogCiAgICAgLy8gU2luY2UgbV9sZW5ndGggJiYgIW1fYnVmZmVyLCB0aGUgc3RyaW5n
IG11c3QgYmUgdmFsaWQgaW4gbV9zdHJpbmcsIGFuZCBtX3N0cmluZy5sZW5ndGgoKSA+IDAuCkBA
IC04OSw1NCArMTA3LDYwIEBAIHZvaWQgU3RyaW5nQnVpbGRlcjo6cmVzaXplKHVuc2lnbmVkIG5l
d1NpemUpCiAgICAgQVNTRVJUKG1fbGVuZ3RoID09IG1fc3RyaW5nLmxlbmd0aCgpKTsKICAgICBB
U1NFUlQobmV3U2l6ZSA8IG1fc3RyaW5nLmxlbmd0aCgpKTsKICAgICBtX2xlbmd0aCA9IG5ld1Np
emU7Ci0gICAgbV9zdHJpbmcgPSBTdHJpbmdJbXBsOjpjcmVhdGVTdWJzdHJpbmdTaGFyaW5nSW1w
bCgqbV9zdHJpbmcuaW1wbCgpLCAwLCBuZXdTaXplKTsKKyAgICBpZiAoYXV0byBjcmVhdGVkID0g
U3RyaW5nSW1wbDo6dHJ5Q3JlYXRlU3Vic3RyaW5nU2hhcmluZ0ltcGwoKm1fc3RyaW5nLmltcGwo
KSwgMCwgbmV3U2l6ZSkpIHsKKyAgICAgICAgbV9zdHJpbmcgPSAqY3JlYXRlZDsKKyAgICAgICAg
cmV0dXJuIHsgfTsKKyAgICB9IGVsc2UKKyAgICAgICAgcmV0dXJuIG91dE9mTWVtb3J5KCk7CiB9
CiAKIC8vIEFsbG9jYXRlIGEgbmV3IDggYml0IGJ1ZmZlciwgY29weWluZyBpbiBjdXJyZW50Q2hh
cmFjdGVycyAodGhlc2UgbWF5IGNvbWUgZnJvbSBlaXRoZXIgbV9zdHJpbmcKIC8vIG9yIG1fYnVm
ZmVyLCBuZWl0aGVyIHdpbGwgYmUgcmVhc3NpZ25lZCB1bnRpbCB0aGUgY29weSBoYXMgY29tcGxl
dGVkKS4KLXZvaWQgU3RyaW5nQnVpbGRlcjo6YWxsb2NhdGVCdWZmZXIoY29uc3QgTENoYXIqIGN1
cnJlbnRDaGFyYWN0ZXJzLCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKK1N0cmluZ0J1aWxkZXI6
OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6YWxsb2NhdGVCdWZmZXIoY29uc3QgTENoYXIqIGN1
cnJlbnRDaGFyYWN0ZXJzLCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKIHsKICAgICBBU1NFUlQo
bV9pczhCaXQpOwogICAgIC8vIENvcHkgdGhlIGV4aXN0aW5nIGRhdGEgaW50byBhIG5ldyBidWZm
ZXIsIHNldCByZXN1bHQgdG8gcG9pbnQgdG8gdGhlIGVuZCBvZiB0aGUgZXhpc3RpbmcgZGF0YS4K
LSAgICBhdXRvIGJ1ZmZlciA9IFN0cmluZ0ltcGw6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQocmVxdWly
ZWRMZW5ndGgsIG1fYnVmZmVyQ2hhcmFjdGVyczgpOworICAgIGF1dG8gYnVmZmVyID0gU3RyaW5n
SW1wbDo6dHJ5Q3JlYXRlVW5pbml0aWFsaXplZChyZXF1aXJlZExlbmd0aCwgbV9idWZmZXJDaGFy
YWN0ZXJzOCk7CisgICAgaWYgKCFidWZmZXIpCisgICAgICAgIHJldHVybiBvdXRPZk1lbW9yeSgp
OwogICAgIG1lbWNweShtX2J1ZmZlckNoYXJhY3RlcnM4LCBjdXJyZW50Q2hhcmFjdGVycywgc3Rh
dGljX2Nhc3Q8c2l6ZV90PihtX2xlbmd0aCkgKiBzaXplb2YoTENoYXIpKTsgLy8gVGhpcyBjYW4n
dCBvdmVyZmxvdy4KICAgICAKICAgICAvLyBVcGRhdGUgdGhlIGJ1aWxkZXIgc3RhdGUuCiAgICAg
bV9idWZmZXIgPSBXVEZNb3ZlKGJ1ZmZlcik7CiAgICAgbV9zdHJpbmcgPSBTdHJpbmcoKTsKICAg
ICBBU1NFUlQobV9idWZmZXItPmxlbmd0aCgpID09IHJlcXVpcmVkTGVuZ3RoKTsKKyAgICByZXR1
cm4geyB9OwogfQogCiAvLyBBbGxvY2F0ZSBhIG5ldyAxNiBiaXQgYnVmZmVyLCBjb3B5aW5nIGlu
IGN1cnJlbnRDaGFyYWN0ZXJzICh0aGVzZSBtYXkgY29tZSBmcm9tIGVpdGhlciBtX3N0cmluZwog
Ly8gb3IgbV9idWZmZXIsICBuZWl0aGVyIHdpbGwgYmUgcmVhc3NpZ25lZCB1bnRpbCB0aGUgY29w
eSBoYXMgY29tcGxldGVkKS4KLXZvaWQgU3RyaW5nQnVpbGRlcjo6YWxsb2NhdGVCdWZmZXIoY29u
c3QgVUNoYXIqIGN1cnJlbnRDaGFyYWN0ZXJzLCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKK1N0
cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6YWxsb2NhdGVCdWZmZXIoY29u
c3QgVUNoYXIqIGN1cnJlbnRDaGFyYWN0ZXJzLCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKIHsK
ICAgICBBU1NFUlQoIW1faXM4Qml0KTsKICAgICAvLyBDb3B5IHRoZSBleGlzdGluZyBkYXRhIGlu
dG8gYSBuZXcgYnVmZmVyLCBzZXQgcmVzdWx0IHRvIHBvaW50IHRvIHRoZSBlbmQgb2YgdGhlIGV4
aXN0aW5nIGRhdGEuCi0gICAgYXV0byBidWZmZXIgPSBTdHJpbmdJbXBsOjpjcmVhdGVVbmluaXRp
YWxpemVkKHJlcXVpcmVkTGVuZ3RoLCBtX2J1ZmZlckNoYXJhY3RlcnMxNik7CisgICAgYXV0byBi
dWZmZXIgPSBTdHJpbmdJbXBsOjp0cnlDcmVhdGVVbmluaXRpYWxpemVkKHJlcXVpcmVkTGVuZ3Ro
LCBtX2J1ZmZlckNoYXJhY3RlcnMxNik7CisgICAgaWYgKCFidWZmZXIpCisgICAgICAgIHJldHVy
biBvdXRPZk1lbW9yeSgpOwogICAgIG1lbWNweShtX2J1ZmZlckNoYXJhY3RlcnMxNiwgY3VycmVu
dENoYXJhY3RlcnMsIHN0YXRpY19jYXN0PHNpemVfdD4obV9sZW5ndGgpICogc2l6ZW9mKFVDaGFy
KSk7IC8vIFRoaXMgY2FuJ3Qgb3ZlcmZsb3cuCiAgICAgCiAgICAgLy8gVXBkYXRlIHRoZSBidWls
ZGVyIHN0YXRlLgogICAgIG1fYnVmZmVyID0gV1RGTW92ZShidWZmZXIpOwogICAgIG1fc3RyaW5n
ID0gU3RyaW5nKCk7CiAgICAgQVNTRVJUKG1fYnVmZmVyLT5sZW5ndGgoKSA9PSByZXF1aXJlZExl
bmd0aCk7CisgICAgcmV0dXJuIHsgfTsKIH0KIAogLy8gQWxsb2NhdGUgYSBuZXcgMTYgYml0IGJ1
ZmZlciwgY29weWluZyBpbiBjdXJyZW50Q2hhcmFjdGVycyAod2hpY2ggaXMgOCBiaXQgYW5kIG1h
eSBjb21lCiAvLyBmcm9tIGVpdGhlciBtX3N0cmluZyBvciBtX2J1ZmZlciwgbmVpdGhlciB3aWxs
IGJlIHJlYXNzaWduZWQgdW50aWwgdGhlIGNvcHkgaGFzIGNvbXBsZXRlZCkuCi12b2lkIFN0cmlu
Z0J1aWxkZXI6OmFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KGNvbnN0IExDaGFyKiBjdXJyZW50Q2hh
cmFjdGVycywgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCi17Ci0gICAgaWYgKCF0cnlBbGxvY2F0
ZUJ1ZmZlclVwQ29udmVydChjdXJyZW50Q2hhcmFjdGVycywgcmVxdWlyZWRMZW5ndGgpKQotICAg
ICAgICBDUkFTSCgpOwotfQotYm9vbCBTdHJpbmdCdWlsZGVyOjp0cnlBbGxvY2F0ZUJ1ZmZlclVw
Q29udmVydChjb25zdCBMQ2hhciogY3VycmVudENoYXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVk
TGVuZ3RoKQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphbGxvY2F0
ZUJ1ZmZlclVwQ29udmVydChjb25zdCBMQ2hhciogY3VycmVudENoYXJhY3RlcnMsIHVuc2lnbmVk
IHJlcXVpcmVkTGVuZ3RoKQogewogICAgIEFTU0VSVChtX2lzOEJpdCk7CiAgICAgQVNTRVJUKHJl
cXVpcmVkTGVuZ3RoID49IG1fbGVuZ3RoKTsKICAgICAvLyBDb3B5IHRoZSBleGlzdGluZyBkYXRh
IGludG8gYSBuZXcgYnVmZmVyLCBzZXQgcmVzdWx0IHRvIHBvaW50IHRvIHRoZSBlbmQgb2YgdGhl
IGV4aXN0aW5nIGRhdGEuCiAgICAgYXV0byBidWZmZXIgPSBTdHJpbmdJbXBsOjp0cnlDcmVhdGVV
bmluaXRpYWxpemVkKHJlcXVpcmVkTGVuZ3RoLCBtX2J1ZmZlckNoYXJhY3RlcnMxNik7CiAgICAg
aWYgKCFidWZmZXIpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIG91dE9m
TWVtb3J5KCk7CisKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9sZW5ndGg7ICsraSkK
ICAgICAgICAgbV9idWZmZXJDaGFyYWN0ZXJzMTZbaV0gPSBjdXJyZW50Q2hhcmFjdGVyc1tpXTsK
ICAgICAKQEAgLTE0NiwxMSArMTcwLDExIEBAIGJvb2wgU3RyaW5nQnVpbGRlcjo6dHJ5QWxsb2Nh
dGVCdWZmZXJVcENvbnZlcnQoY29uc3QgTENoYXIqIGN1cnJlbnRDaGFyYWN0ZXJzLCB1CiAgICAg
bV9idWZmZXIgPSBXVEZNb3ZlKGJ1ZmZlcik7CiAgICAgbV9zdHJpbmcgPSBTdHJpbmcoKTsKICAg
ICBBU1NFUlQobV9idWZmZXItPmxlbmd0aCgpID09IHJlcXVpcmVkTGVuZ3RoKTsKLSAgICByZXR1
cm4gdHJ1ZTsKKyAgICByZXR1cm4geyB9OwogfQogCiB0ZW1wbGF0ZSA8Pgotdm9pZCBTdHJpbmdC
dWlsZGVyOjpyZWFsbG9jYXRlQnVmZmVyPExDaGFyPih1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkK
K1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6cmVhbGxvY2F0ZUJ1ZmZl
cjxMQ2hhcj4odW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCiB7CiAgICAgLy8gSWYgdGhlIGJ1ZmZl
ciBoYXMgb25seSBvbmUgcmVmIChieSB0aGlzIFN0cmluZ0J1aWxkZXIpLCByZWFsbG9jYXRlIGl0
LAogICAgIC8vIG90aGVyd2lzZSBmYWxsIGJhY2sgdG8gImFsbG9jYXRlIGFuZCBjb3B5IiBtZXRo
b2QuCkBAIC0xNTksNjYgKzE4Myw4OSBAQCB2b2lkIFN0cmluZ0J1aWxkZXI6OnJlYWxsb2NhdGVC
dWZmZXI8TENoYXI+KHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQogICAgIEFTU0VSVChtX2lzOEJp
dCk7CiAgICAgQVNTRVJUKG1fYnVmZmVyLT5pczhCaXQoKSk7CiAgICAgCi0gICAgaWYgKG1fYnVm
ZmVyLT5oYXNPbmVSZWYoKSkKLSAgICAgICAgbV9idWZmZXIgPSBTdHJpbmdJbXBsOjpyZWFsbG9j
YXRlKG1fYnVmZmVyLnJlbGVhc2VOb25OdWxsKCksIHJlcXVpcmVkTGVuZ3RoLCBtX2J1ZmZlckNo
YXJhY3RlcnM4KTsKLSAgICBlbHNlCi0gICAgICAgIGFsbG9jYXRlQnVmZmVyKG1fYnVmZmVyLT5j
aGFyYWN0ZXJzOCgpLCByZXF1aXJlZExlbmd0aCk7CisgICAgaWYgKG1fYnVmZmVyLT5oYXNPbmVS
ZWYoKSkgeworICAgICAgICBhdXRvIHJlYWxsb2NhdGVkID0gU3RyaW5nSW1wbDo6dHJ5UmVhbGxv
Y2F0ZShtX2J1ZmZlci5yZWxlYXNlTm9uTnVsbCgpLCByZXF1aXJlZExlbmd0aCwgbV9idWZmZXJD
aGFyYWN0ZXJzOCk7CisgICAgICAgIGlmICghcmVhbGxvY2F0ZWQpCisgICAgICAgICAgICByZXR1
cm4gb3V0T2ZNZW1vcnkoKTsKKyAgICAgICAgbV9idWZmZXIgPSByZWFsbG9jYXRlZC5nZXQoKTsK
KyAgICB9IGVsc2UgeworICAgICAgICBhdXRvIGFsbG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVyKG1f
YnVmZmVyLT5jaGFyYWN0ZXJzOCgpLCByZXF1aXJlZExlbmd0aCk7CisgICAgICAgIGlmICghYWxs
b2NhdGVkKQorICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRlZDsKKyAgICB9CiAgICAgQVNTRVJU
KG1fYnVmZmVyLT5sZW5ndGgoKSA9PSByZXF1aXJlZExlbmd0aCk7CisgICAgcmV0dXJuIHsgfTsK
IH0KIAogdGVtcGxhdGUgPD4KLXZvaWQgU3RyaW5nQnVpbGRlcjo6cmVhbGxvY2F0ZUJ1ZmZlcjxV
Q2hhcj4odW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+
IFN0cmluZ0J1aWxkZXI6OnJlYWxsb2NhdGVCdWZmZXI8VUNoYXI+KHVuc2lnbmVkIHJlcXVpcmVk
TGVuZ3RoKQogewogICAgIC8vIElmIHRoZSBidWZmZXIgaGFzIG9ubHkgb25lIHJlZiAoYnkgdGhp
cyBTdHJpbmdCdWlsZGVyKSwgcmVhbGxvY2F0ZSBpdCwKICAgICAvLyBvdGhlcndpc2UgZmFsbCBi
YWNrIHRvICJhbGxvY2F0ZSBhbmQgY29weSIgbWV0aG9kLgogICAgIG1fc3RyaW5nID0gU3RyaW5n
KCk7CiAgICAgCi0gICAgaWYgKG1fYnVmZmVyLT5pczhCaXQoKSkKLSAgICAgICAgYWxsb2NhdGVC
dWZmZXJVcENvbnZlcnQobV9idWZmZXItPmNoYXJhY3RlcnM4KCksIHJlcXVpcmVkTGVuZ3RoKTsK
KyAgICBpZiAobV9idWZmZXItPmlzOEJpdCgpKSB7CisgICAgICAgIGF1dG8gYWxsb2NhdGVkID0g
YWxsb2NhdGVCdWZmZXJVcENvbnZlcnQobV9idWZmZXItPmNoYXJhY3RlcnM4KCksIHJlcXVpcmVk
TGVuZ3RoKTsKKyAgICAgICAgaWYgKCFhbGxvY2F0ZWQpCisgICAgICAgICAgICByZXR1cm4gYWxs
b2NhdGVkOworICAgIH0KICAgICBlbHNlIGlmIChtX2J1ZmZlci0+aGFzT25lUmVmKCkpCiAgICAg
ICAgIG1fYnVmZmVyID0gU3RyaW5nSW1wbDo6cmVhbGxvY2F0ZShtX2J1ZmZlci5yZWxlYXNlTm9u
TnVsbCgpLCByZXF1aXJlZExlbmd0aCwgbV9idWZmZXJDaGFyYWN0ZXJzMTYpOwogICAgIGVsc2UK
ICAgICAgICAgYWxsb2NhdGVCdWZmZXIobV9idWZmZXItPmNoYXJhY3RlcnMxNigpLCByZXF1aXJl
ZExlbmd0aCk7CiAgICAgQVNTRVJUKG1fYnVmZmVyLT5sZW5ndGgoKSA9PSByZXF1aXJlZExlbmd0
aCk7CisgICAgcmV0dXJuIHsgfTsKIH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjpyZXNlcnZlQ2Fw
YWNpdHkodW5zaWduZWQgbmV3Q2FwYWNpdHkpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0
cmluZ0J1aWxkZXI6OnJlc2VydmVDYXBhY2l0eSh1bnNpZ25lZCBuZXdDYXBhY2l0eSkKIHsKICAg
ICBpZiAobV9idWZmZXIpIHsKICAgICAgICAgLy8gSWYgdGhlcmUgaXMgYWxyZWFkeSBhIGJ1ZmZl
ciwgdGhlbiBncm93IGlmIG5lY2Vzc2FyeS4KICAgICAgICAgaWYgKG5ld0NhcGFjaXR5ID4gbV9i
dWZmZXItPmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICBpZiAobV9idWZmZXItPmlzOEJpdCgpKQot
ICAgICAgICAgICAgICAgIHJlYWxsb2NhdGVCdWZmZXI8TENoYXI+KG5ld0NhcGFjaXR5KTsKLSAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZWFsbG9jYXRlQnVmZmVyPFVDaGFyPihu
ZXdDYXBhY2l0eSk7CisgICAgICAgICAgICBpZiAobV9idWZmZXItPmlzOEJpdCgpKSB7CisgICAg
ICAgICAgICAgICAgYXV0byByZWFsbG9jYXRlZCA9IHJlYWxsb2NhdGVCdWZmZXI8TENoYXI+KG5l
d0NhcGFjaXR5KTsKKyAgICAgICAgICAgICAgICBpZiAoIXJlYWxsb2NhdGVkKQorICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gcmVhbGxvY2F0ZWQ7CisgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgIGF1dG8gcmVhbGxvY2F0ZWQgPSByZWFsbG9jYXRlQnVmZmVyPFVDaGFyPihu
ZXdDYXBhY2l0eSk7CisgICAgICAgICAgICAgICAgaWYgKCFyZWFsbG9jYXRlZCkKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHJlYWxsb2NhdGVkOworICAgICAgICAgICAgfQogICAgICAgICB9
CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gR3JvdyB0aGUgc3RyaW5nLCBpZiBuZWNlc3Nhcnku
CiAgICAgICAgIGlmIChuZXdDYXBhY2l0eSA+IG1fbGVuZ3RoKSB7CiAgICAgICAgICAgICBpZiAo
IW1fbGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgTENoYXIqIG51bGxQbGFjZWhvbGRlciA9IDA7
Ci0gICAgICAgICAgICAgICAgYWxsb2NhdGVCdWZmZXIobnVsbFBsYWNlaG9sZGVyLCBuZXdDYXBh
Y2l0eSk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKG1fc3RyaW5nLmlzOEJpdCgpKQotICAgICAg
ICAgICAgICAgIGFsbG9jYXRlQnVmZmVyKG1fc3RyaW5nLmNoYXJhY3RlcnM4KCksIG5ld0NhcGFj
aXR5KTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBhbGxvY2F0ZUJ1ZmZlciht
X3N0cmluZy5jaGFyYWN0ZXJzMTYoKSwgbmV3Q2FwYWNpdHkpOworICAgICAgICAgICAgICAgIGF1
dG8gYWxsb2NhdGVkID0gYWxsb2NhdGVCdWZmZXIobnVsbFBsYWNlaG9sZGVyLCBuZXdDYXBhY2l0
eSk7CisgICAgICAgICAgICAgICAgaWYgKCFhbGxvY2F0ZWQpCisgICAgICAgICAgICAgICAgICAg
IHJldHVybiBhbGxvY2F0ZWQ7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG1fc3RyaW5nLmlzOEJp
dCgpKSB7CisgICAgICAgICAgICAgICAgYXV0byBhbGxvY2F0ZWQgPSBhbGxvY2F0ZUJ1ZmZlciht
X3N0cmluZy5jaGFyYWN0ZXJzOCgpLCBuZXdDYXBhY2l0eSk7CisgICAgICAgICAgICAgICAgaWYg
KCFhbGxvY2F0ZWQpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBhbGxvY2F0ZWQ7CisgICAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGF1dG8gYWxsb2NhdGVkID0gYWxsb2Nh
dGVCdWZmZXIobV9zdHJpbmcuY2hhcmFjdGVyczE2KCksIG5ld0NhcGFjaXR5KTsKKyAgICAgICAg
ICAgICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFsbG9j
YXRlZDsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KICAgICBBU1NFUlQoIW5ld0Nh
cGFjaXR5IHx8IG1fYnVmZmVyLT5sZW5ndGgoKSA+PSBuZXdDYXBhY2l0eSk7CisgICAgcmV0dXJu
IHsgfTsKIH0KIAogLy8gTWFrZSAnbGVuZ3RoJyBhZGRpdGlvbmFsIGNhcGFjaXR5IGJlIGF2YWls
YWJsZSBpbiBtX2J1ZmZlciwgdXBkYXRlIG1fc3RyaW5nICYgbV9sZW5ndGgsCiAvLyByZXR1cm4g
YSBwb2ludGVyIHRvIHRoZSBuZXdseSBhbGxvY2F0ZWQgc3RvcmFnZS4KLS8vIFJldHVybnMgbnVs
bHB0ciBpZiB0aGUgc2l6ZSBvZiB0aGUgbmV3IGJ1aWxkZXIgd291bGQgaGF2ZSBvdmVyZmxvd2Vk
CiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci1BTFdBWVNfSU5MSU5FIENoYXJUeXBlKiBT
dHJpbmdCdWlsZGVyOjphcHBlbmRVbmluaXRpYWxpemVkKHVuc2lnbmVkIGxlbmd0aCkKK0FMV0FZ
U19JTkxJTkUgU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8Q2hhclR5cGUqPiBTdHJpbmdCdWlsZGVy
OjphcHBlbmRVbmluaXRpYWxpemVkKHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBBU1NFUlQobGVu
Z3RoKTsKIAogICAgIC8vIENhbGN1bGF0ZSB0aGUgbmV3IHNpemUgb2YgdGhlIGJ1aWxkZXIgYWZ0
ZXIgYXBwZW5kaW5nLgogICAgIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoID0gbGVuZ3RoICsgbV9s
ZW5ndGg7CiAgICAgaWYgKHJlcXVpcmVkTGVuZ3RoIDwgbGVuZ3RoKQotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIHdvdWxkT3ZlcmZsb3coKTsKIAogICAgIGlmICgobV9i
dWZmZXIpICYmIChyZXF1aXJlZExlbmd0aCA8PSBtX2J1ZmZlci0+bGVuZ3RoKCkpKSB7CiAgICAg
ICAgIC8vIElmIHRoZSBidWZmZXIgaXMgdmFsaWQgaXQgbXVzdCBiZSBhdCBsZWFzdCBhcyBsb25n
IGFzIHRoZSBjdXJyZW50IGJ1aWxkZXIgY29udGVudHMhCkBAIC0yMzUsNyArMjgyLDcgQEAgQUxX
QVlTX0lOTElORSBDaGFyVHlwZSogU3RyaW5nQnVpbGRlcjo6YXBwZW5kVW5pbml0aWFsaXplZCh1
bnNpZ25lZCBsZW5ndGgpCiAvLyBNYWtlICdsZW5ndGgnIGFkZGl0aW9uYWwgY2FwYWNpdHkgYmUg
YXZhaWxhYmxlIGluIG1fYnVmZmVyLCB1cGRhdGUgbV9zdHJpbmcgJiBtX2xlbmd0aCwKIC8vIHJl
dHVybiBhIHBvaW50ZXIgdG8gdGhlIG5ld2x5IGFsbG9jYXRlZCBzdG9yYWdlLgogdGVtcGxhdGUg
PHR5cGVuYW1lIENoYXJUeXBlPgotQ2hhclR5cGUqIFN0cmluZ0J1aWxkZXI6OmFwcGVuZFVuaW5p
dGlhbGl6ZWRTbG93KHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQorU3RyaW5nQnVpbGRlcjo6RmFs
bGlibGU8Q2hhclR5cGUqPiBTdHJpbmdCdWlsZGVyOjphcHBlbmRVbmluaXRpYWxpemVkU2xvdyh1
bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKIHsKICAgICBBU1NFUlQocmVxdWlyZWRMZW5ndGgpOwog
CkBAIC0yNDMsMTAgKzI5MCwxNCBAQCBDaGFyVHlwZSogU3RyaW5nQnVpbGRlcjo6YXBwZW5kVW5p
bml0aWFsaXplZFNsb3codW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCiAgICAgICAgIC8vIElmIHRo
ZSBidWZmZXIgaXMgdmFsaWQgaXQgbXVzdCBiZSBhdCBsZWFzdCBhcyBsb25nIGFzIHRoZSBjdXJy
ZW50IGJ1aWxkZXIgY29udGVudHMhCiAgICAgICAgIEFTU0VSVChtX2J1ZmZlci0+bGVuZ3RoKCkg
Pj0gbV9sZW5ndGgpOwogICAgICAgICAKLSAgICAgICAgcmVhbGxvY2F0ZUJ1ZmZlcjxDaGFyVHlw
ZT4oZXhwYW5kZWRDYXBhY2l0eShjYXBhY2l0eSgpLCByZXF1aXJlZExlbmd0aCkpOworICAgICAg
ICBhdXRvIHJlYWxsb2NhdGVkID0gcmVhbGxvY2F0ZUJ1ZmZlcjxDaGFyVHlwZT4oZXhwYW5kZWRD
YXBhY2l0eShjYXBhY2l0eSgpLCByZXF1aXJlZExlbmd0aCkpOworICAgICAgICBpZiAoIXJlYWxs
b2NhdGVkKQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHJlYWxsb2NhdGVkLmVy
cm9yKCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIEFTU0VSVChtX3N0cmluZy5sZW5ndGgoKSA9
PSBtX2xlbmd0aCk7Ci0gICAgICAgIGFsbG9jYXRlQnVmZmVyKG1fbGVuZ3RoID8gbV9zdHJpbmcu
Y2hhcmFjdGVyczxDaGFyVHlwZT4oKSA6IDAsIGV4cGFuZGVkQ2FwYWNpdHkoY2FwYWNpdHkoKSwg
cmVxdWlyZWRMZW5ndGgpKTsKKyAgICAgICAgYXV0byBhbGxvY2F0ZWQgPSBhbGxvY2F0ZUJ1ZmZl
cihtX2xlbmd0aCA/IG1fc3RyaW5nLmNoYXJhY3RlcnM8Q2hhclR5cGU+KCkgOiAwLCBleHBhbmRl
ZENhcGFjaXR5KGNhcGFjaXR5KCksIHJlcXVpcmVkTGVuZ3RoKSk7CisgICAgICAgIGlmICghYWxs
b2NhdGVkKQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKGFsbG9jYXRlZC5lcnJv
cigpKTsKICAgICB9CiAgICAgCiAgICAgQ2hhclR5cGUqIHJlc3VsdCA9IGdldEJ1ZmZlckNoYXJh
Y3RlcnM8Q2hhclR5cGU+KCkgKyBtX2xlbmd0aDsKQEAgLTI1NSwxNiArMzA2LDEwIEBAIENoYXJU
eXBlKiBTdHJpbmdCdWlsZGVyOjphcHBlbmRVbmluaXRpYWxpemVkU2xvdyh1bnNpZ25lZCByZXF1
aXJlZExlbmd0aCkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6
OmFwcGVuZChjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQotewotICAg
IGlmICghdHJ5QXBwZW5kKGNoYXJhY3RlcnMsIGxlbmd0aCkpCi0gICAgICAgIENSQVNIKCk7Ci19
Ci0KLWJvb2wgU3RyaW5nQnVpbGRlcjo6dHJ5QXBwZW5kKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJz
LCB1bnNpZ25lZCBsZW5ndGgpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxk
ZXI6OmFwcGVuZChjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQogewog
ICAgIGlmICghbGVuZ3RoKQotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIHsg
fTsKIAogICAgIEFTU0VSVChjaGFyYWN0ZXJzKTsKIApAQCAtMjcyLDU0ICszMTcsNTEgQEAgYm9v
bCBTdHJpbmdCdWlsZGVyOjp0cnlBcHBlbmQoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2ln
bmVkIGxlbmd0aCkKICAgICAgICAgaWYgKGxlbmd0aCA9PSAxICYmICEoKmNoYXJhY3RlcnMgJiB+
MHhmZikpIHsKICAgICAgICAgICAgIC8vIEFwcGVuZCBhcyA4IGJpdCBjaGFyYWN0ZXIKICAgICAg
ICAgICAgIExDaGFyIGxDaGFyID0gc3RhdGljX2Nhc3Q8TENoYXI+KCpjaGFyYWN0ZXJzKTsKLSAg
ICAgICAgICAgIHJldHVybiB0cnlBcHBlbmQoJmxDaGFyLCAxKTsKKyAgICAgICAgICAgIHJldHVy
biBhcHBlbmQoJmxDaGFyLCAxKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIENhbGN1bGF0ZSB0
aGUgbmV3IHNpemUgb2YgdGhlIGJ1aWxkZXIgYWZ0ZXIgYXBwZW5kaW5nLgogICAgICAgICB1bnNp
Z25lZCByZXF1aXJlZExlbmd0aCA9IGxlbmd0aCArIG1fbGVuZ3RoOwogICAgICAgICBpZiAocmVx
dWlyZWRMZW5ndGggPCBsZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
ICAgICByZXR1cm4gd291bGRPdmVyZmxvdygpOwogICAgICAgICAKICAgICAgICAgaWYgKG1fYnVm
ZmVyKSB7CiAgICAgICAgICAgICAvLyBJZiB0aGUgYnVmZmVyIGlzIHZhbGlkIGl0IG11c3QgYmUg
YXQgbGVhc3QgYXMgbG9uZyBhcyB0aGUgY3VycmVudCBidWlsZGVyIGNvbnRlbnRzIQogICAgICAg
ICAgICAgQVNTRVJUKG1fYnVmZmVyLT5sZW5ndGgoKSA+PSBtX2xlbmd0aCk7Ci0gICAgICAgICAg
ICBpZiAoIXRyeUFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KG1fYnVmZmVyLT5jaGFyYWN0ZXJzOCgp
LCBleHBhbmRlZENhcGFjaXR5KGNhcGFjaXR5KCksIHJlcXVpcmVkTGVuZ3RoKSkpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgCisgICAgICAgICAgICBhdXRvIGFs
bG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KG1fYnVmZmVyLT5jaGFyYWN0ZXJzOCgp
LCBleHBhbmRlZENhcGFjaXR5KGNhcGFjaXR5KCksIHJlcXVpcmVkTGVuZ3RoKSk7CisgICAgICAg
ICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gYWxsb2NhdGVkOwog
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgQVNTRVJUKG1fc3RyaW5nLmxlbmd0aCgpID09
IG1fbGVuZ3RoKTsKLSAgICAgICAgICAgIGlmICghdHJ5QWxsb2NhdGVCdWZmZXJVcENvbnZlcnQo
bV9zdHJpbmcuaXNOdWxsKCkgPyAwIDogbV9zdHJpbmcuY2hhcmFjdGVyczgoKSwgZXhwYW5kZWRD
YXBhY2l0eShjYXBhY2l0eSgpLCByZXF1aXJlZExlbmd0aCkpKQotICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgICAgIGF1dG8gYWxsb2NhdGVkID0gYWxsb2NhdGVCdWZmZXJV
cENvbnZlcnQobV9zdHJpbmcuaXNOdWxsKCkgPyAwIDogbV9zdHJpbmcuY2hhcmFjdGVyczgoKSwg
ZXhwYW5kZWRDYXBhY2l0eShjYXBhY2l0eSgpLCByZXF1aXJlZExlbmd0aCkpOworICAgICAgICAg
ICAgaWYgKCFhbGxvY2F0ZWQpCisgICAgICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRlZDsKICAg
ICAgICAgfQogCiAgICAgICAgIG1lbWNweShtX2J1ZmZlckNoYXJhY3RlcnMxNiArIG1fbGVuZ3Ro
LCBjaGFyYWN0ZXJzLCBzdGF0aWNfY2FzdDxzaXplX3Q+KGxlbmd0aCkgKiBzaXplb2YoVUNoYXIp
KTsKICAgICAgICAgbV9sZW5ndGggPSByZXF1aXJlZExlbmd0aDsKICAgICB9IGVsc2UgewotICAg
ICAgICBVQ2hhciogZGVzdCA9IGFwcGVuZFVuaW5pdGlhbGl6ZWQ8VUNoYXI+KGxlbmd0aCk7Ci0g
ICAgICAgIGlmICghZGVzdCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgbWVt
Y3B5KGRlc3QsIGNoYXJhY3RlcnMsIHN0YXRpY19jYXN0PHNpemVfdD4obGVuZ3RoKSAqIHNpemVv
ZihVQ2hhcikpOworICAgICAgICBpZiAoYXV0byBhcHBlbmRlZCA9IGFwcGVuZFVuaW5pdGlhbGl6
ZWQ8VUNoYXI+KGxlbmd0aCkpCisgICAgICAgICAgICBtZW1jcHkoKmFwcGVuZGVkLCBjaGFyYWN0
ZXJzLCBzdGF0aWNfY2FzdDxzaXplX3Q+KGxlbmd0aCkgKiBzaXplb2YoVUNoYXIpKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKGFwcGVuZGVkLmVycm9y
KCkpOwogICAgIH0KICAgICBBU1NFUlQobV9idWZmZXItPmxlbmd0aCgpID49IG1fbGVuZ3RoKTsK
LSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4geyB9OwogfQogCi12b2lkIFN0cmluZ0J1aWxk
ZXI6OmFwcGVuZChjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQotewot
ICAgIGlmICghdHJ5QXBwZW5kKGNoYXJhY3RlcnMsIGxlbmd0aCkpCi0gICAgICAgIENSQVNIKCk7
Ci19Ci0KLWJvb2wgU3RyaW5nQnVpbGRlcjo6dHJ5QXBwZW5kKGNvbnN0IExDaGFyKiBjaGFyYWN0
ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1
aWxkZXI6OmFwcGVuZChjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQog
ewogICAgIGlmICghbGVuZ3RoKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQorICAgICAgICByZXR1
cm4geyB9OwogICAgIEFTU0VSVChjaGFyYWN0ZXJzKTsKIAogICAgIGlmIChtX2lzOEJpdCkgewot
ICAgICAgICBMQ2hhciogZGVzdCA9IGFwcGVuZFVuaW5pdGlhbGl6ZWQ8TENoYXI+KGxlbmd0aCk7
Ci0gICAgICAgIGlmICghZGVzdCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
YXV0byBhcHBlbmRlZCA9IGFwcGVuZFVuaW5pdGlhbGl6ZWQ8TENoYXI+KGxlbmd0aCk7CisgICAg
ICAgIGlmICghYXBwZW5kZWQpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoYXBw
ZW5kZWQuZXJyb3IoKSk7CisgICAgICAgIExDaGFyKiBkZXN0ID0gKmFwcGVuZGVkOwogICAgICAg
ICBpZiAobGVuZ3RoID4gOCkKICAgICAgICAgICAgIG1lbWNweShkZXN0LCBjaGFyYWN0ZXJzLCBz
dGF0aWNfY2FzdDxzaXplX3Q+KGxlbmd0aCkgKiBzaXplb2YoTENoYXIpKTsKICAgICAgICAgZWxz
ZSB7CkBAIC0zMjgsNzYgKzM3MCw3OSBAQCBib29sIFN0cmluZ0J1aWxkZXI6OnRyeUFwcGVuZChj
b25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQogICAgICAgICAgICAgICAg
ICooZGVzdCsrKSA9ICooY2hhcmFjdGVycysrKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0g
ICAgICAgIFVDaGFyKiBkZXN0ID0gYXBwZW5kVW5pbml0aWFsaXplZDxVQ2hhcj4obGVuZ3RoKTsK
LSAgICAgICAgaWYgKCFkZXN0KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBh
dXRvIGFwcGVuZGVkID0gYXBwZW5kVW5pbml0aWFsaXplZDxVQ2hhcj4obGVuZ3RoKTsKKyAgICAg
ICAgaWYgKCFhcHBlbmRlZCkKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChhcHBl
bmRlZC5lcnJvcigpKTsKKyAgICAgICAgVUNoYXIqIGRlc3QgPSAqYXBwZW5kZWQ7CiAgICAgICAg
IGNvbnN0IExDaGFyKiBlbmQgPSBjaGFyYWN0ZXJzICsgbGVuZ3RoOwogICAgICAgICB3aGlsZSAo
Y2hhcmFjdGVycyA8IGVuZCkKICAgICAgICAgICAgICooZGVzdCsrKSA9ICooY2hhcmFjdGVycysr
KTsKICAgICB9Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHsgfTsKIH0KIAogI2lmIFVT
RShDRikKIAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmQoQ0ZTdHJpbmdSZWYgc3RyaW5nKQor
U3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmQoQ0ZTdHJpbmdS
ZWYgc3RyaW5nKQogewogICAgIC8vIEZhc3QgcGF0aDogYXZvaWQgY29uc3RydWN0aW5nIGEgdGVt
cG9yYXJ5IFN0cmluZyB3aGVuIHBvc3NpYmxlLgogICAgIGlmIChhdXRvKiBjaGFyYWN0ZXJzID0g
Q0ZTdHJpbmdHZXRDU3RyaW5nUHRyKHN0cmluZywga0NGU3RyaW5nRW5jb2RpbmdJU09MYXRpbjEp
KSB7Ci0gICAgICAgIGFwcGVuZChyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oY2hhcmFj
dGVycyksIENGU3RyaW5nR2V0TGVuZ3RoKHN0cmluZykpOwotICAgICAgICByZXR1cm47CisgICAg
ICAgIGlmIChhdXRvIGFwcGVuZGVkID0gYXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENo
YXIqPihjaGFyYWN0ZXJzKSwgQ0ZTdHJpbmdHZXRMZW5ndGgoc3RyaW5nKSkpCisgICAgICAgICAg
ICByZXR1cm4geyB9OworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gYXBwZW5kZWQ7
CiAgICAgfQotICAgIGFwcGVuZChTdHJpbmcoc3RyaW5nKSk7CisgICAgcmV0dXJuIGFwcGVuZChT
dHJpbmcoc3RyaW5nKSk7CiB9CiAKICNlbmRpZgogCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVu
ZE51bWJlcihpbnQgbnVtYmVyKQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWls
ZGVyOjphcHBlbmROdW1iZXIoaW50IG51bWJlcikKIHsKLSAgICBudW1iZXJUb1N0cmluZ1NpZ25l
ZDxTdHJpbmdCdWlsZGVyPihudW1iZXIsIHRoaXMpOworICAgIHJldHVybiBudW1iZXJUb1N0cmlu
Z1NpZ25lZDxTdHJpbmdCdWlsZGVyPihudW1iZXIsIHRoaXMpOwogfQogCi12b2lkIFN0cmluZ0J1
aWxkZXI6OmFwcGVuZE51bWJlcih1bnNpZ25lZCBpbnQgbnVtYmVyKQorU3RyaW5nQnVpbGRlcjo6
RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIodW5zaWduZWQgaW50IG51bWJl
cikKIHsKLSAgICBudW1iZXJUb1N0cmluZ1Vuc2lnbmVkPFN0cmluZ0J1aWxkZXI+KG51bWJlciwg
dGhpcyk7CisgICAgcmV0dXJuIG51bWJlclRvU3RyaW5nVW5zaWduZWQ8U3RyaW5nQnVpbGRlcj4o
bnVtYmVyLCB0aGlzKTsKIH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIobG9u
ZyBudW1iZXIpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFwcGVu
ZE51bWJlcihsb25nIG51bWJlcikKIHsKLSAgICBudW1iZXJUb1N0cmluZ1NpZ25lZDxTdHJpbmdC
dWlsZGVyPihudW1iZXIsIHRoaXMpOworICAgIHJldHVybiBudW1iZXJUb1N0cmluZ1NpZ25lZDxT
dHJpbmdCdWlsZGVyPihudW1iZXIsIHRoaXMpOwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFw
cGVuZE51bWJlcih1bnNpZ25lZCBsb25nIG51bWJlcikKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxl
PD4gU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKHVuc2lnbmVkIGxvbmcgbnVtYmVyKQogewot
ICAgIG51bWJlclRvU3RyaW5nVW5zaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0aGlzKTsK
KyAgICByZXR1cm4gbnVtYmVyVG9TdHJpbmdVbnNpZ25lZDxTdHJpbmdCdWlsZGVyPihudW1iZXIs
IHRoaXMpOwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcihsb25nIGxvbmcg
bnVtYmVyKQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmRO
dW1iZXIobG9uZyBsb25nIG51bWJlcikKIHsKLSAgICBudW1iZXJUb1N0cmluZ1NpZ25lZDxTdHJp
bmdCdWlsZGVyPihudW1iZXIsIHRoaXMpOworICAgIHJldHVybiBudW1iZXJUb1N0cmluZ1NpZ25l
ZDxTdHJpbmdCdWlsZGVyPihudW1iZXIsIHRoaXMpOwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6
OmFwcGVuZE51bWJlcih1bnNpZ25lZCBsb25nIGxvbmcgbnVtYmVyKQorU3RyaW5nQnVpbGRlcjo6
RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIodW5zaWduZWQgbG9uZyBsb25n
IG51bWJlcikKIHsKLSAgICBudW1iZXJUb1N0cmluZ1Vuc2lnbmVkPFN0cmluZ0J1aWxkZXI+KG51
bWJlciwgdGhpcyk7CisgICAgcmV0dXJuIG51bWJlclRvU3RyaW5nVW5zaWduZWQ8U3RyaW5nQnVp
bGRlcj4obnVtYmVyLCB0aGlzKTsKIH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1i
ZXIoZG91YmxlIG51bWJlciwgdW5zaWduZWQgcHJlY2lzaW9uLCBUcmFpbGluZ1plcm9zVHJ1bmNh
dGluZ1BvbGljeSB0cmFpbGluZ1plcm9zVHJ1bmNhdGluZ1BvbGljeSkKK1N0cmluZ0J1aWxkZXI6
OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKGRvdWJsZSBudW1iZXIsIHVu
c2lnbmVkIHByZWNpc2lvbiwgVHJhaWxpbmdaZXJvc1RydW5jYXRpbmdQb2xpY3kgdHJhaWxpbmda
ZXJvc1RydW5jYXRpbmdQb2xpY3kpCiB7CiAgICAgTnVtYmVyVG9TdHJpbmdCdWZmZXIgYnVmZmVy
OwotICAgIGFwcGVuZChudW1iZXJUb0ZpeGVkUHJlY2lzaW9uU3RyaW5nKG51bWJlciwgcHJlY2lz
aW9uLCBidWZmZXIsIHRyYWlsaW5nWmVyb3NUcnVuY2F0aW5nUG9saWN5ID09IFRydW5jYXRlVHJh
aWxpbmdaZXJvcykpOworICAgIHJldHVybiBhcHBlbmQobnVtYmVyVG9GaXhlZFByZWNpc2lvblN0
cmluZyhudW1iZXIsIHByZWNpc2lvbiwgYnVmZmVyLCB0cmFpbGluZ1plcm9zVHJ1bmNhdGluZ1Bv
bGljeSA9PSBUcnVuY2F0ZVRyYWlsaW5nWmVyb3MpKTsKIH0KIAotdm9pZCBTdHJpbmdCdWlsZGVy
OjphcHBlbmRFQ01BU2NyaXB0TnVtYmVyKGRvdWJsZSBudW1iZXIpCitTdHJpbmdCdWlsZGVyOjpG
YWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZEVDTUFTY3JpcHROdW1iZXIoZG91YmxlIG51
bWJlcikKIHsKICAgICBOdW1iZXJUb1N0cmluZ0J1ZmZlciBidWZmZXI7Ci0gICAgYXBwZW5kKG51
bWJlclRvU3RyaW5nKG51bWJlciwgYnVmZmVyKSk7CisgICAgcmV0dXJuIGFwcGVuZChudW1iZXJU
b1N0cmluZyhudW1iZXIsIGJ1ZmZlcikpOwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVu
ZEZpeGVkV2lkdGhOdW1iZXIoZG91YmxlIG51bWJlciwgdW5zaWduZWQgZGVjaW1hbFBsYWNlcykK
K1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6YXBwZW5kRml4ZWRXaWR0
aE51bWJlcihkb3VibGUgbnVtYmVyLCB1bnNpZ25lZCBkZWNpbWFsUGxhY2VzKQogewogICAgIE51
bWJlclRvU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKLSAgICBhcHBlbmQobnVtYmVyVG9GaXhlZFdpZHRo
U3RyaW5nKG51bWJlciwgZGVjaW1hbFBsYWNlcywgYnVmZmVyKSk7CisgICAgcmV0dXJuIGFwcGVu
ZChudW1iZXJUb0ZpeGVkV2lkdGhTdHJpbmcobnVtYmVyLCBkZWNpbWFsUGxhY2VzLCBidWZmZXIp
KTsKIH0KIAogYm9vbCBTdHJpbmdCdWlsZGVyOjpjYW5TaHJpbmsoKSBjb25zdApAQCAtNDA2LDE1
ICs0NTEsMjEgQEAgYm9vbCBTdHJpbmdCdWlsZGVyOjpjYW5TaHJpbmsoKSBjb25zdAogICAgIHJl
dHVybiBtX2J1ZmZlciAmJiBtX2J1ZmZlci0+bGVuZ3RoKCkgPiAobV9sZW5ndGggKyAobV9sZW5n
dGggPj4gMikpOwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OnNocmlua1RvRml0KCkKK1N0cmlu
Z0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6c2hyaW5rVG9GaXQoKQogewogICAg
IGlmIChjYW5TaHJpbmsoKSkgewotICAgICAgICBpZiAobV9pczhCaXQpCi0gICAgICAgICAgICBy
ZWFsbG9jYXRlQnVmZmVyPExDaGFyPihtX2xlbmd0aCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIHJlYWxsb2NhdGVCdWZmZXI8VUNoYXI+KG1fbGVuZ3RoKTsKKyAgICAgICAgaWYgKG1faXM4
Qml0KSB7CisgICAgICAgICAgICBhdXRvIHJlYWxsb2NhdGVkID0gcmVhbGxvY2F0ZUJ1ZmZlcjxM
Q2hhcj4obV9sZW5ndGgpOworICAgICAgICAgICAgaWYgKCFyZWFsbG9jYXRlZCkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gcmVhbGxvY2F0ZWQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICBhdXRvIHJlYWxsb2NhdGVkID0gcmVhbGxvY2F0ZUJ1ZmZlcjxVQ2hhcj4obV9sZW5ndGgpOwor
ICAgICAgICAgICAgaWYgKCFyZWFsbG9jYXRlZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVh
bGxvY2F0ZWQ7CisgICAgICAgIH0KICAgICAgICAgbV9zdHJpbmcgPSBXVEZNb3ZlKG1fYnVmZmVy
KTsKICAgICB9CisgICAgcmV0dXJuIHsgfTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaCBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oCmluZGV4IDdlOTc0YzEuLjJjMGRkY2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwOS0yMDEwLCAyMDEyLTIwMTMsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0yNyw2ICsyNyw3IEBACiAjaWZuZGVmIFN0
cmluZ0J1aWxkZXJfaAogI2RlZmluZSBTdHJpbmdCdWlsZGVyX2gKIAorI2luY2x1ZGUgPHd0Zi9F
eHBlY3RlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0ludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdWaWV3Lmg+CkBAIC00MCwzNiArNDEsMzMgQEAgY2xhc3MgU3RyaW5nQnVpbGRlciB7
CiAKIHB1YmxpYzoKICAgICBTdHJpbmdCdWlsZGVyKCkKLSAgICAgICAgOiBtX2xlbmd0aCgwKQot
ICAgICAgICAsIG1faXM4Qml0KHRydWUpCi0gICAgICAgICwgbV9idWZmZXJDaGFyYWN0ZXJzOChu
dWxscHRyKQorICAgICAgICA6IG1fYnVmZmVyQ2hhcmFjdGVyczgobnVsbHB0cikKICAgICB7CiAg
ICAgfQogICAgIFN0cmluZ0J1aWxkZXIoU3RyaW5nQnVpbGRlciYmKSA9IGRlZmF1bHQ7CiAgICAg
U3RyaW5nQnVpbGRlciYgb3BlcmF0b3I9KFN0cmluZ0J1aWxkZXImJikgPSBkZWZhdWx0OwogCi0g
ICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kKGNvbnN0IFVDaGFyKiwgdW5zaWduZWQp
OwotICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIHRyeUFwcGVuZChjb25zdCBVQ2hhciosIHVu
c2lnbmVkKTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmQoY29uc3QgTENoYXIq
LCB1bnNpZ25lZCk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgdHJ5QXBwZW5kKGNvbnN0
IExDaGFyKiwgdW5zaWduZWQpOworICAgIGVudW0gY2xhc3MgRmFpbHVyZSB7CisgICAgICAgIFdv
dWxkT3ZlcmZsb3csCisgICAgICAgIE91dE9mTWVtb3J5LAorICAgICAgICBVbmhhbmRsZWRGYWls
dXJlLAorICAgIH07CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRXhwZWN0ID0gdm9pZD4gdXNpbmcg
RmFsbGlibGUgPSBFeHBlY3RlZDxFeHBlY3QsIFN0cmluZ0J1aWxkZXI6OkZhaWx1cmU+OwogCi0g
ICAgQUxXQVlTX0lOTElORSB2b2lkIGFwcGVuZChjb25zdCBjaGFyKiBjaGFyYWN0ZXJzLCB1bnNp
Z25lZCBsZW5ndGgpIHsgYXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihjaGFy
YWN0ZXJzKSwgbGVuZ3RoKTsgfQotICAgIEFMV0FZU19JTkxJTkUgYm9vbCB0cnlBcHBlbmQoY29u
c3QgY2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKSB7IHJldHVybiB0cnlBcHBlbmQo
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KGNoYXJhY3RlcnMpLCBsZW5ndGgpOyB9Cisg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5kKGNvbnN0IFVDaGFyKiwgdW5z
aWduZWQpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IGFwcGVuZChjb25zdCBM
Q2hhciosIHVuc2lnbmVkKTsKIAotICAgIHZvaWQgYXBwZW5kKGNvbnN0IEF0b21pY1N0cmluZyYg
YXRvbWljU3RyaW5nKQotICAgIHsKLSAgICAgICAgYXBwZW5kKGF0b21pY1N0cmluZy5zdHJpbmco
KSk7Ci0gICAgfQorICAgIEFMV0FZU19JTkxJTkUgRmFsbGlibGU8PiBhcHBlbmQoY29uc3QgY2hh
ciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKSB7IHJldHVybiBhcHBlbmQocmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBMQ2hhcio+KGNoYXJhY3RlcnMpLCBsZW5ndGgpOyB9CiAKLSAgICB2b2lk
IGFwcGVuZChjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICBGYWxsaWJsZTw+IGFwcGVuZChjb25z
dCBBdG9taWNTdHJpbmcmIGF0b21pY1N0cmluZykKICAgICB7Ci0gICAgICAgIGlmICghdHJ5QXBw
ZW5kKHN0cmluZykpCi0gICAgICAgICAgICBDUkFTSCgpOworICAgICAgICByZXR1cm4gYXBwZW5k
KGF0b21pY1N0cmluZy5zdHJpbmcoKSk7CiAgICAgfQotICAgIGJvb2wgdHJ5QXBwZW5kKGNvbnN0
IFN0cmluZyYgc3RyaW5nKQorCisgICAgRmFsbGlibGU8PiBhcHBlbmQoY29uc3QgU3RyaW5nJiBz
dHJpbmcpCiAgICAgewogICAgICAgICBpZiAoIXN0cmluZy5sZW5ndGgoKSkKLSAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgICAgICAvLyBJZiB3
ZSdyZSBhcHBlbmRpbmcgdG8gYW4gZW1wdHkgc3RyaW5nLCBhbmQgdGhlcmUgaXMgbm90IGEgYnVm
ZmVyIChyZXNlcnZlQ2FwYWNpdHkgaGFzIG5vdCBiZWVuIGNhbGxlZCkKICAgICAgICAgLy8gdGhl
biBqdXN0IHJldGFpbiB0aGUgc3RyaW5nLgpAQCAtNzcsMTc0ICs3NSwxNjQgQEAgcHVibGljOgog
ICAgICAgICAgICAgbV9zdHJpbmcgPSBzdHJpbmc7CiAgICAgICAgICAgICBtX2xlbmd0aCA9IHN0
cmluZy5sZW5ndGgoKTsKICAgICAgICAgICAgIG1faXM4Qml0ID0gbV9zdHJpbmcuaXM4Qml0KCk7
Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAg
ICAgIH0KIAogICAgICAgICBpZiAoc3RyaW5nLmlzOEJpdCgpKQotICAgICAgICAgICAgcmV0dXJu
IHRyeUFwcGVuZChzdHJpbmcuY2hhcmFjdGVyczgoKSwgc3RyaW5nLmxlbmd0aCgpKTsKKyAgICAg
ICAgICAgIHJldHVybiBhcHBlbmQoc3RyaW5nLmNoYXJhY3RlcnM4KCksIHN0cmluZy5sZW5ndGgo
KSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJldHVybiB0cnlBcHBlbmQoc3RyaW5nLmNo
YXJhY3RlcnMxNigpLCBzdHJpbmcubGVuZ3RoKCkpOworICAgICAgICAgICAgcmV0dXJuIGFwcGVu
ZChzdHJpbmcuY2hhcmFjdGVyczE2KCksIHN0cmluZy5sZW5ndGgoKSk7CiAgICAgfQogCi0gICAg
dm9pZCBhcHBlbmQoY29uc3QgU3RyaW5nQnVpbGRlciYgb3RoZXIpCi0gICAgewotICAgICAgICBp
ZiAoIXRyeUFwcGVuZChvdGhlcikpCi0gICAgICAgICAgICBDUkFTSCgpOwotICAgIH0KLSAgICBi
b29sIHRyeUFwcGVuZChjb25zdCBTdHJpbmdCdWlsZGVyJiBvdGhlcikKKyAgICBGYWxsaWJsZTw+
IGFwcGVuZChjb25zdCBTdHJpbmdCdWlsZGVyJiBvdGhlcikKICAgICB7CisgICAgICAgIGlmIChv
dGhlci5mYWlsZWQoKSkKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGYWlsdXJl
OjpVbmhhbmRsZWRGYWlsdXJlKTsgICAgICAgICAgICAKICAgICAgICAgaWYgKCFvdGhlci5tX2xl
bmd0aCkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgcmV0dXJuIHsgfTsK
IAogICAgICAgICAvLyBJZiB3ZSdyZSBhcHBlbmRpbmcgdG8gYW4gZW1wdHkgc3RyaW5nLCBhbmQg
dGhlcmUgaXMgbm90IGEgYnVmZmVyIChyZXNlcnZlQ2FwYWNpdHkgaGFzIG5vdCBiZWVuIGNhbGxl
ZCkKICAgICAgICAgLy8gdGhlbiBqdXN0IHJldGFpbiB0aGUgc3RyaW5nLgogICAgICAgICBpZiAo
IW1fbGVuZ3RoICYmICFtX2J1ZmZlciAmJiAhb3RoZXIubV9zdHJpbmcuaXNOdWxsKCkpIHsKICAg
ICAgICAgICAgIG1fc3RyaW5nID0gb3RoZXIubV9zdHJpbmc7CiAgICAgICAgICAgICBtX2xlbmd0
aCA9IG90aGVyLm1fbGVuZ3RoOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAg
ICByZXR1cm4geyB9OwogICAgICAgICB9CiAKICAgICAgICAgaWYgKG90aGVyLmlzOEJpdCgpKQot
ICAgICAgICAgICAgcmV0dXJuIHRyeUFwcGVuZChvdGhlci5jaGFyYWN0ZXJzOCgpLCBvdGhlci5t
X2xlbmd0aCk7CisgICAgICAgICAgICByZXR1cm4gYXBwZW5kKCpvdGhlci5jaGFyYWN0ZXJzOCgp
LCBvdGhlci5tX2xlbmd0aCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJldHVybiB0cnlB
cHBlbmQob3RoZXIuY2hhcmFjdGVyczE2KCksIG90aGVyLm1fbGVuZ3RoKTsKKyAgICAgICAgICAg
IHJldHVybiBhcHBlbmQoKm90aGVyLmNoYXJhY3RlcnMxNigpLCBvdGhlci5tX2xlbmd0aCk7CiAg
ICAgfQogCi0gICAgdm9pZCBhcHBlbmQoU3RyaW5nVmlldyBzdHJpbmdWaWV3KQotICAgIHsKLSAg
ICAgICAgaWYgKCF0cnlBcHBlbmQoc3RyaW5nVmlldykpCi0gICAgICAgICAgICBDUkFTSCgpOwot
ICAgIH0KLSAgICBib29sIHRyeUFwcGVuZChTdHJpbmdWaWV3IHN0cmluZ1ZpZXcpCisgICAgRmFs
bGlibGU8PiBhcHBlbmQoU3RyaW5nVmlldyBzdHJpbmdWaWV3KQogICAgIHsKICAgICAgICAgaWYg
KHN0cmluZ1ZpZXcuaXM4Qml0KCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ5QXBwZW5kKHN0cmlu
Z1ZpZXcuY2hhcmFjdGVyczgoKSwgc3RyaW5nVmlldy5sZW5ndGgoKSk7CisgICAgICAgICAgICBy
ZXR1cm4gYXBwZW5kKHN0cmluZ1ZpZXcuY2hhcmFjdGVyczgoKSwgc3RyaW5nVmlldy5sZW5ndGgo
KSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJldHVybiB0cnlBcHBlbmQoc3RyaW5nVmll
dy5jaGFyYWN0ZXJzMTYoKSwgc3RyaW5nVmlldy5sZW5ndGgoKSk7CisgICAgICAgICAgICByZXR1
cm4gYXBwZW5kKHN0cmluZ1ZpZXcuY2hhcmFjdGVyczE2KCksIHN0cmluZ1ZpZXcubGVuZ3RoKCkp
OwogICAgIH0KIAogI2lmIFVTRShDRikKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBl
bmQoQ0ZTdHJpbmdSZWYpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IGFwcGVu
ZChDRlN0cmluZ1JlZik7CiAjZW5kaWYKICNpZiBVU0UoQ0YpICYmIGRlZmluZWQoX19PQkpDX18p
Ci0gICAgdm9pZCBhcHBlbmQoTlNTdHJpbmcgKnN0cmluZykgeyBhcHBlbmQoKF9fYnJpZGdlIENG
U3RyaW5nUmVmKXN0cmluZyk7IH0KKyAgICBGYWxsaWJsZTw+IGFwcGVuZChOU1N0cmluZyAqc3Ry
aW5nKSB7IHJldHVybiBhcHBlbmQoKF9fYnJpZGdlIENGU3RyaW5nUmVmKXN0cmluZyk7IH0KICNl
bmRpZgogICAgIAotICAgIHZvaWQgYXBwZW5kKGNvbnN0IFN0cmluZyYgc3RyaW5nLCB1bnNpZ25l
ZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKKyAgICBGYWxsaWJsZTw+IGFwcGVuZChjb25zdCBT
dHJpbmcmIHN0cmluZywgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgewog
ICAgICAgICBpZiAoIXN0cmluZy5sZW5ndGgoKSkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIHJldHVybiB7IH07CiAKICAgICAgICAgaWYgKChvZmZzZXQgKyBsZW5ndGgpID4gc3Ry
aW5nLmxlbmd0aCgpKQotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIHsg
fTsKIAogICAgICAgICBpZiAoc3RyaW5nLmlzOEJpdCgpKQotICAgICAgICAgICAgYXBwZW5kKHN0
cmluZy5jaGFyYWN0ZXJzOCgpICsgb2Zmc2V0LCBsZW5ndGgpOworICAgICAgICAgICAgcmV0dXJu
IGFwcGVuZChzdHJpbmcuY2hhcmFjdGVyczgoKSArIG9mZnNldCwgbGVuZ3RoKTsKICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgYXBwZW5kKHN0cmluZy5jaGFyYWN0ZXJzMTYoKSArIG9mZnNldCwg
bGVuZ3RoKTsKKyAgICAgICAgICAgIHJldHVybiBhcHBlbmQoc3RyaW5nLmNoYXJhY3RlcnMxNigp
ICsgb2Zmc2V0LCBsZW5ndGgpOwogICAgIH0KIAotICAgIHZvaWQgYXBwZW5kKGNvbnN0IGNoYXIq
IGNoYXJhY3RlcnMpCisgICAgRmFsbGlibGU8PiBhcHBlbmQoY29uc3QgY2hhciogY2hhcmFjdGVy
cykKICAgICB7CiAgICAgICAgIGlmIChjaGFyYWN0ZXJzKQotICAgICAgICAgICAgYXBwZW5kKGNo
YXJhY3RlcnMsIHN0cmxlbihjaGFyYWN0ZXJzKSk7Ci0gICAgfQotICAgIGJvb2wgdHJ5QXBwZW5k
KGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpCi0gICAgewotICAgICAgICBpZiAoY2hhcmFjdGVycykK
LSAgICAgICAgICAgIHJldHVybiB0cnlBcHBlbmQoY2hhcmFjdGVycywgc3RybGVuKGNoYXJhY3Rl
cnMpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICByZXR1cm4gYXBwZW5kKGNo
YXJhY3RlcnMsIHN0cmxlbihjaGFyYWN0ZXJzKSk7CisgICAgICAgIHJldHVybiB7IH07CiAgICAg
fQogCi0gICAgdm9pZCBhcHBlbmQoVUNoYXIgYykKKyAgICBGYWxsaWJsZTw+IGFwcGVuZChVQ2hh
ciBjKQogICAgIHsKICAgICAgICAgaWYgKG1fYnVmZmVyICYmIG1fbGVuZ3RoIDwgbV9idWZmZXIt
Pmxlbmd0aCgpICYmIG1fc3RyaW5nLmlzTnVsbCgpKSB7CiAgICAgICAgICAgICBpZiAoIW1faXM4
Qml0KSB7CiAgICAgICAgICAgICAgICAgbV9idWZmZXJDaGFyYWN0ZXJzMTZbbV9sZW5ndGgrK10g
PSBjOwotICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICByZXR1cm4geyB9
OwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoIShjICYgfjB4ZmYpKSB7CiAgICAg
ICAgICAgICAgICAgbV9idWZmZXJDaGFyYWN0ZXJzOFttX2xlbmd0aCsrXSA9IHN0YXRpY19jYXN0
PExDaGFyPihjKTsKLSAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgcmV0
dXJuIHsgfTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBhcHBlbmQoJmMsIDEp
OworICAgICAgICByZXR1cm4gYXBwZW5kKCZjLCAxKTsKICAgICB9CiAKLSAgICB2b2lkIGFwcGVu
ZChMQ2hhciBjKQotICAgIHsKLSAgICAgICAgaWYgKCF0cnlBcHBlbmQoYykpCi0gICAgICAgICAg
ICBDUkFTSCgpOwotICAgIH0KLSAgICBib29sIHRyeUFwcGVuZChMQ2hhciBjKQorICAgIEZhbGxp
YmxlPD4gYXBwZW5kKExDaGFyIGMpCiAgICAgewogICAgICAgICBpZiAobV9idWZmZXIgJiYgbV9s
ZW5ndGggPCBtX2J1ZmZlci0+bGVuZ3RoKCkgJiYgbV9zdHJpbmcuaXNOdWxsKCkpIHsKICAgICAg
ICAgICAgIGlmIChtX2lzOEJpdCkKICAgICAgICAgICAgICAgICBtX2J1ZmZlckNoYXJhY3RlcnM4
W21fbGVuZ3RoKytdID0gYzsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBtX2J1
ZmZlckNoYXJhY3RlcnMxNlttX2xlbmd0aCsrXSA9IGM7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICByZXR1cm4gdHJ5QXBwZW5kKCZjLCAxKTsK
KyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGFwcGVu
ZCgmYywgMSk7CiAgICAgfQogCi0gICAgdm9pZCBhcHBlbmQoY2hhciBjKSB7IGFwcGVuZChzdGF0
aWNfY2FzdDxMQ2hhcj4oYykpOyB9Ci0gICAgYm9vbCB0cnlBcHBlbmQoY2hhciBjKSB7IHJldHVy
biB0cnlBcHBlbmQoc3RhdGljX2Nhc3Q8TENoYXI+KGMpKTsgfQorICAgIEZhbGxpYmxlPD4gYXBw
ZW5kKGNoYXIgYykKKyAgICB7CisgICAgICAgIHJldHVybiBhcHBlbmQoc3RhdGljX2Nhc3Q8TENo
YXI+KGMpKTsKKyAgICB9CiAKLSAgICB2b2lkIGFwcGVuZChVQ2hhcjMyIGMpCisgICAgRmFsbGli
bGU8PiBhcHBlbmQoVUNoYXIzMiBjKQogICAgIHsKLSAgICAgICAgaWYgKFVfSVNfQk1QKGMpKSB7
Ci0gICAgICAgICAgICBhcHBlbmQoc3RhdGljX2Nhc3Q8VUNoYXI+KGMpKTsKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBhcHBlbmQoVTE2X0xFQUQoYykpOwotICAgICAg
ICBhcHBlbmQoVTE2X1RSQUlMKGMpKTsKKyAgICAgICAgaWYgKFVfSVNfQk1QKGMpKQorICAgICAg
ICAgICAgcmV0dXJuIGFwcGVuZChzdGF0aWNfY2FzdDxVQ2hhcj4oYykpOworICAgICAgICBhdXRv
IGFwcGVuZGVkID0gYXBwZW5kKFUxNl9MRUFEKGMpKTsKKyAgICAgICAgaWYgKCFhcHBlbmRlZCkK
KyAgICAgICAgICAgIHJldHVybiBhcHBlbmRlZDsKKyAgICAgICAgcmV0dXJuIGFwcGVuZChVMTZf
VFJBSUwoYykpOwogICAgIH0KIAotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZFF1
b3RlZEpTT05TdHJpbmcoY29uc3QgU3RyaW5nJik7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIGJv
b2wgdHJ5QXBwZW5kUXVvdGVkSlNPTlN0cmluZyhjb25zdCBTdHJpbmcmKTsKKyAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmRRdW90ZWRKU09OU3RyaW5nKGNvbnN0IFN0cmlu
ZyYpOwogCiAgICAgdGVtcGxhdGU8dW5zaWduZWQgY2hhcmFjdGVyQ291bnQ+Ci0gICAgQUxXQVlT
X0lOTElORSB2b2lkIGFwcGVuZExpdGVyYWwoY29uc3QgY2hhciAoJmNoYXJhY3RlcnMpW2NoYXJh
Y3RlckNvdW50XSkgeyBhcHBlbmQoY2hhcmFjdGVycywgY2hhcmFjdGVyQ291bnQgLSAxKTsgfQot
ICAgIHRlbXBsYXRlPHVuc2lnbmVkIGNoYXJhY3RlckNvdW50PgotICAgIEFMV0FZU19JTkxJTkUg
Ym9vbCB0cnlBcHBlbmRMaXRlcmFsKGNvbnN0IGNoYXIgKCZjaGFyYWN0ZXJzKVtjaGFyYWN0ZXJD
b3VudF0pIHsgcmV0dXJuIHRyeUFwcGVuZChjaGFyYWN0ZXJzLCBjaGFyYWN0ZXJDb3VudCAtIDEp
OyB9Ci0KLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmROdW1iZXIoaW50KTsKLSAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmROdW1iZXIodW5zaWduZWQgaW50KTsKLSAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmROdW1iZXIobG9uZyk7Ci0gICAgV1RGX0VY
UE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kTnVtYmVyKHVuc2lnbmVkIGxvbmcpOwotICAgIFdURl9F
WFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZE51bWJlcihsb25nIGxvbmcpOwotICAgIFdURl9FWFBP
UlRfUFJJVkFURSB2b2lkIGFwcGVuZE51bWJlcih1bnNpZ25lZCBsb25nIGxvbmcpOwotICAgIFdU
Rl9FWFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZE51bWJlcihkb3VibGUsIHVuc2lnbmVkIHByZWNp
c2lvbiA9IDYsIFRyYWlsaW5nWmVyb3NUcnVuY2F0aW5nUG9saWN5ID0gVHJ1bmNhdGVUcmFpbGlu
Z1plcm9zKTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmRFQ01BU2NyaXB0TnVt
YmVyKGRvdWJsZSk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kRml4ZWRXaWR0
aE51bWJlcihkb3VibGUsIHVuc2lnbmVkIGRlY2ltYWxQbGFjZXMpOwotCi0gICAgU3RyaW5nIHRv
U3RyaW5nKCkKKyAgICBBTFdBWVNfSU5MSU5FIEZhbGxpYmxlPD4gYXBwZW5kTGl0ZXJhbChjb25z
dCBjaGFyICgmY2hhcmFjdGVycylbY2hhcmFjdGVyQ291bnRdKSB7IHJldHVybiBhcHBlbmQoY2hh
cmFjdGVycywgY2hhcmFjdGVyQ291bnQgLSAxKTsgfQorCisgICAgV1RGX0VYUE9SVF9QUklWQVRF
IEZhbGxpYmxlPD4gYXBwZW5kTnVtYmVyKGludCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZh
bGxpYmxlPD4gYXBwZW5kTnVtYmVyKHVuc2lnbmVkIGludCk7CisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIEZhbGxpYmxlPD4gYXBwZW5kTnVtYmVyKGxvbmcpOworICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBGYWxsaWJsZTw+IGFwcGVuZE51bWJlcih1bnNpZ25lZCBsb25nKTsKKyAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmROdW1iZXIobG9uZyBsb25nKTsKKyAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmROdW1iZXIodW5zaWduZWQgbG9uZyBsb25nKTsK
KyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmROdW1iZXIoZG91YmxlLCB1
bnNpZ25lZCBwcmVjaXNpb24gPSA2LCBUcmFpbGluZ1plcm9zVHJ1bmNhdGluZ1BvbGljeSA9IFRy
dW5jYXRlVHJhaWxpbmdaZXJvcyk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4g
YXBwZW5kRUNNQVNjcmlwdE51bWJlcihkb3VibGUpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBG
YWxsaWJsZTw+IGFwcGVuZEZpeGVkV2lkdGhOdW1iZXIoZG91YmxlLCB1bnNpZ25lZCBkZWNpbWFs
UGxhY2VzKTsKKworICAgIFdBUk5fVU5VU0VEX1JFVFVSTiBGYWxsaWJsZTxTdHJpbmc+IHRvU3Ry
aW5nKCkKICAgICB7Ci0gICAgICAgIHNocmlua1RvRml0KCk7Ci0gICAgICAgIGlmIChtX3N0cmlu
Zy5pc051bGwoKSkKLSAgICAgICAgICAgIHJlaWZ5U3RyaW5nKCk7Ci0gICAgICAgIHJldHVybiBt
X3N0cmluZzsKKyAgICAgICAgaWYgKG1fZmFpbGVkKQorICAgICAgICAgICAgcmV0dXJuIG1ha2VV
bmV4cGVjdGVkKEZhaWx1cmU6OlVuaGFuZGxlZEZhaWx1cmUpOworICAgICAgICBpZiAoYXV0byBz
aHJhbmsgPSBzaHJpbmtUb0ZpdCgpKSB7CisgICAgICAgICAgICBpZiAobV9zdHJpbmcuaXNOdWxs
KCkpCisgICAgICAgICAgICAgICAgcmVpZnlTdHJpbmcoKTsKKyAgICAgICAgICAgIHJldHVybiBt
X3N0cmluZzsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQoc2hyYW5rLmVycm9yKCkpOwogICAgIH0KIAotICAgIGNvbnN0IFN0cmluZyYgdG9TdHJpbmdQ
cmVzZXJ2ZUNhcGFjaXR5KCkgY29uc3QKKyAgICBXQVJOX1VOVVNFRF9SRVRVUk4gRmFsbGlibGU8
U3RyaW5nPiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBjb25zdAogICAgIHsKKyAgICAgICAg
aWYgKG1fZmFpbGVkKQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZhaWx1cmU6
OlVuaGFuZGxlZEZhaWx1cmUpOwogICAgICAgICBpZiAobV9zdHJpbmcuaXNOdWxsKCkpCiAgICAg
ICAgICAgICByZWlmeVN0cmluZygpOwogICAgICAgICByZXR1cm4gbV9zdHJpbmc7CiAgICAgfQog
Ci0gICAgQXRvbWljU3RyaW5nIHRvQXRvbWljU3RyaW5nKCkgY29uc3QKKyAgICBXQVJOX1VOVVNF
RF9SRVRVUk4gRmFsbGlibGU8QXRvbWljU3RyaW5nPiB0b0F0b21pY1N0cmluZygpIGNvbnN0CiAg
ICAgeworICAgICAgICBpZiAobV9mYWlsZWQpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhw
ZWN0ZWQoRmFpbHVyZTo6VW5oYW5kbGVkRmFpbHVyZSk7CisKICAgICAgICAgaWYgKCFtX2xlbmd0
aCkKICAgICAgICAgICAgIHJldHVybiBlbXB0eUF0b20oKTsKIAogICAgICAgICAvLyBJZiB0aGUg
YnVmZmVyIGlzIHN1ZmZpY2llbnRseSBvdmVyLWFsbG9jYXRlZCwgbWFrZSBhIG5ldyBBdG9taWNT
dHJpbmcgZnJvbSBhIGNvcHkgc28gaXRzIGJ1ZmZlciBpcyBub3Qgc28gbGFyZ2UuCiAgICAgICAg
IGlmIChjYW5TaHJpbmsoKSkgewogICAgICAgICAgICAgaWYgKGlzOEJpdCgpKQotICAgICAgICAg
ICAgICAgIHJldHVybiBBdG9taWNTdHJpbmcoY2hhcmFjdGVyczgoKSwgbGVuZ3RoKCkpOwotICAg
ICAgICAgICAgcmV0dXJuIEF0b21pY1N0cmluZyhjaGFyYWN0ZXJzMTYoKSwgbGVuZ3RoKCkpOyAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgIHJldHVybiBBdG9taWNTdHJpbmcoKmNoYXJhY3Rl
cnM4KCksIGxlbmd0aCgpKTsKKyAgICAgICAgICAgIHJldHVybiBBdG9taWNTdHJpbmcoKmNoYXJh
Y3RlcnMxNigpLCBsZW5ndGgoKSk7ICAgICAgICAgICAgCiAgICAgICAgIH0KIAogICAgICAgICBp
ZiAoIW1fc3RyaW5nLmlzTnVsbCgpKQpAQCAtMjYxLDI5ICsyNDksMzcgQEAgcHVibGljOgogCiAg
ICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gIW1fbGVuZ3RoOyB9CiAKLSAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgdm9pZCByZXNlcnZlQ2FwYWNpdHkodW5zaWduZWQgbmV3Q2FwYWNpdHkp
OworICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IHJlc2VydmVDYXBhY2l0eSh1bnNp
Z25lZCBuZXdDYXBhY2l0eSk7CiAKICAgICB1bnNpZ25lZCBjYXBhY2l0eSgpIGNvbnN0CiAgICAg
ewogICAgICAgICByZXR1cm4gbV9idWZmZXIgPyBtX2J1ZmZlci0+bGVuZ3RoKCkgOiBtX2xlbmd0
aDsKICAgICB9CiAKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCByZXNpemUodW5zaWduZWQg
bmV3U2l6ZSk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gcmVzaXplKHVuc2ln
bmVkIG5ld1NpemUpOwogCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgY2FuU2hyaW5rKCkg
Y29uc3Q7CiAKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzaHJpbmtUb0ZpdCgpOworICAg
IFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IHNocmlua1RvRml0KCk7CisKKyAgICBib29s
IGlzOEJpdCgpIGNvbnN0IHsgcmV0dXJuIG1faXM4Qml0OyB9CiAKLSAgICBVQ2hhciBvcGVyYXRv
cltdKHVuc2lnbmVkIGkpIGNvbnN0CisgICAgYm9vbCBmYWlsZWQoKSBjb25zdCB7IHJldHVybiBt
X2ZhaWxlZDsgfQorCisgICAgRmFsbGlibGU8VUNoYXI+IG9wZXJhdG9yW10odW5zaWduZWQgaSkg
Y29uc3QKICAgICB7CisgICAgICAgIGlmIChtX2ZhaWxlZCkKKyAgICAgICAgICAgIHJldHVybiBt
YWtlVW5leHBlY3RlZChGYWlsdXJlOjpVbmhhbmRsZWRGYWlsdXJlKTsKICAgICAgICAgQVNTRVJU
X1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaSA8IG1fbGVuZ3RoKTsKICAgICAgICAgaWYgKG1f
aXM4Qml0KQotICAgICAgICAgICAgcmV0dXJuIGNoYXJhY3RlcnM4KClbaV07Ci0gICAgICAgIHJl
dHVybiBjaGFyYWN0ZXJzMTYoKVtpXTsKKyAgICAgICAgICAgIHJldHVybiAoKmNoYXJhY3RlcnM4
KCkpW2ldOworICAgICAgICByZXR1cm4gKCpjaGFyYWN0ZXJzMTYoKSlbaV07CiAgICAgfQogCi0g
ICAgY29uc3QgTENoYXIqIGNoYXJhY3RlcnM4KCkgY29uc3QKKyAgICBGYWxsaWJsZTxjb25zdCBM
Q2hhcio+IGNoYXJhY3RlcnM4KCkgY29uc3QKICAgICB7CisgICAgICAgIGlmIChtX2ZhaWxlZCkK
KyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGYWlsdXJlOjpVbmhhbmRsZWRGYWls
dXJlKTsKICAgICAgICAgQVNTRVJUKG1faXM4Qml0KTsKICAgICAgICAgaWYgKCFtX2xlbmd0aCkK
ICAgICAgICAgICAgIHJldHVybiAwOwpAQCAtMjkzLDggKzI4OSwxMCBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKTsKICAgICB9CiAKLSAgICBjb25zdCBV
Q2hhciogY2hhcmFjdGVyczE2KCkgY29uc3QKKyAgICBGYWxsaWJsZTxjb25zdCBVQ2hhcio+IGNo
YXJhY3RlcnMxNigpIGNvbnN0CiAgICAgeworICAgICAgICBpZiAobV9mYWlsZWQpCisgICAgICAg
ICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmFpbHVyZTo6VW5oYW5kbGVkRmFpbHVyZSk7CiAg
ICAgICAgIEFTU0VSVCghbV9pczhCaXQpOwogICAgICAgICBpZiAoIW1fbGVuZ3RoKQogICAgICAg
ICAgICAgcmV0dXJuIDA7CkBAIC0zMDMsMTYgKzMwMSwxNSBAQCBwdWJsaWM6CiAgICAgICAgIEFT
U0VSVChtX2J1ZmZlcik7CiAgICAgICAgIHJldHVybiBtX2J1ZmZlci0+Y2hhcmFjdGVyczE2KCk7
CiAgICAgfQotICAgIAotICAgIGJvb2wgaXM4Qml0KCkgY29uc3QgeyByZXR1cm4gbV9pczhCaXQ7
IH0KIAogICAgIHZvaWQgY2xlYXIoKQogICAgIHsKICAgICAgICAgbV9sZW5ndGggPSAwOwogICAg
ICAgICBtX3N0cmluZyA9IFN0cmluZygpOwogICAgICAgICBtX2J1ZmZlciA9IG51bGxwdHI7Ci0g
ICAgICAgIG1fYnVmZmVyQ2hhcmFjdGVyczggPSAwOwogICAgICAgICBtX2lzOEJpdCA9IHRydWU7
CisgICAgICAgIG1fZmFpbGVkID0gZmFsc2U7CisgICAgICAgIG1fYnVmZmVyQ2hhcmFjdGVyczgg
PSAwOwogICAgIH0KIAogICAgIHZvaWQgc3dhcChTdHJpbmdCdWlsZGVyJiBzdHJpbmdCdWlsZGVy
KQpAQCAtMzIxLDI5ICszMTgsMzIgQEAgcHVibGljOgogICAgICAgICBtX3N0cmluZy5zd2FwKHN0
cmluZ0J1aWxkZXIubV9zdHJpbmcpOwogICAgICAgICBtX2J1ZmZlci5zd2FwKHN0cmluZ0J1aWxk
ZXIubV9idWZmZXIpOwogICAgICAgICBzdGQ6OnN3YXAobV9pczhCaXQsIHN0cmluZ0J1aWxkZXIu
bV9pczhCaXQpOworICAgICAgICBzdGQ6OnN3YXAobV9mYWlsZWQsIHN0cmluZ0J1aWxkZXIubV9m
YWlsZWQpOwogICAgICAgICBzdGQ6OnN3YXAobV9idWZmZXJDaGFyYWN0ZXJzOCwgc3RyaW5nQnVp
bGRlci5tX2J1ZmZlckNoYXJhY3RlcnM4KTsKICAgICAgICAgQVNTRVJUKCFtX2J1ZmZlciB8fCBt
X2J1ZmZlci0+bGVuZ3RoKCkgPj0gbV9sZW5ndGgpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICB2
b2lkIGFsbG9jYXRlQnVmZmVyKGNvbnN0IExDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWdu
ZWQgcmVxdWlyZWRMZW5ndGgpOwotICAgIHZvaWQgYWxsb2NhdGVCdWZmZXIoY29uc3QgVUNoYXIq
IGN1cnJlbnRDaGFyYWN0ZXJzLCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCk7Ci0gICAgdm9pZCBh
bGxvY2F0ZUJ1ZmZlclVwQ29udmVydChjb25zdCBMQ2hhciogY3VycmVudENoYXJhY3RlcnMsIHVu
c2lnbmVkIHJlcXVpcmVkTGVuZ3RoKTsKLSAgICBib29sIHRyeUFsbG9jYXRlQnVmZmVyVXBDb252
ZXJ0KGNvbnN0IExDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVxdWlyZWRMZW5n
dGgpOworICAgIEZhbGxpYmxlPD4gYWxsb2NhdGVCdWZmZXIoY29uc3QgTENoYXIqIGN1cnJlbnRD
aGFyYWN0ZXJzLCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCk7CisgICAgRmFsbGlibGU8PiBhbGxv
Y2F0ZUJ1ZmZlcihjb25zdCBVQ2hhciogY3VycmVudENoYXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVp
cmVkTGVuZ3RoKTsKKyAgICBGYWxsaWJsZTw+IGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KGNvbnN0
IExDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpOwogICAg
IHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KLSAgICB2b2lkIHJlYWxsb2NhdGVCdWZmZXIo
dW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpOworICAgIEZhbGxpYmxlPD4gcmVhbGxvY2F0ZUJ1ZmZl
cih1bnNpZ25lZCByZXF1aXJlZExlbmd0aCk7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJU
eXBlPgotICAgIEFMV0FZU19JTkxJTkUgQ2hhclR5cGUqIGFwcGVuZFVuaW5pdGlhbGl6ZWQodW5z
aWduZWQgbGVuZ3RoKTsKKyAgICBBTFdBWVNfSU5MSU5FIEZhbGxpYmxlPENoYXJUeXBlKj4gYXBw
ZW5kVW5pbml0aWFsaXplZCh1bnNpZ25lZCBsZW5ndGgpOwogICAgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBDaGFyVHlwZT4KLSAgICBDaGFyVHlwZSogYXBwZW5kVW5pbml0aWFsaXplZFNsb3codW5zaWdu
ZWQgbGVuZ3RoKTsKKyAgICBGYWxsaWJsZTxDaGFyVHlwZSo+IGFwcGVuZFVuaW5pdGlhbGl6ZWRT
bG93KHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgot
ICAgIEFMV0FZU19JTkxJTkUgQ2hhclR5cGUgKiBnZXRCdWZmZXJDaGFyYWN0ZXJzKCk7CisgICAg
QUxXQVlTX0lOTElORSBDaGFyVHlwZSogZ2V0QnVmZmVyQ2hhcmFjdGVycygpOwogICAgIFdURl9F
WFBPUlRfUFJJVkFURSB2b2lkIHJlaWZ5U3RyaW5nKCkgY29uc3Q7CisgICAgV0FSTl9VTlVTRURf
UkVUVVJOIFVuZXhwZWN0ZWQ8RmFpbHVyZT4gd291bGRPdmVyZmxvdygpOworICAgIFdBUk5fVU5V
U0VEX1JFVFVSTiBVbmV4cGVjdGVkPEZhaWx1cmU+IG91dE9mTWVtb3J5KCk7CiAKLSAgICB1bnNp
Z25lZCBtX2xlbmd0aDsKKyAgICB1bnNpZ25lZCBtX2xlbmd0aCB7IDAgfTsKICAgICBtdXRhYmxl
IFN0cmluZyBtX3N0cmluZzsKICAgICBSZWZQdHI8U3RyaW5nSW1wbD4gbV9idWZmZXI7Ci0gICAg
Ym9vbCBtX2lzOEJpdDsKKyAgICBib29sIG1faXM4Qml0IHsgdHJ1ZSB9OworICAgIGJvb2wgbV9m
YWlsZWQgeyBmYWxzZSB9OwogICAgIHVuaW9uIHsKICAgICAgICAgTENoYXIqIG1fYnVmZmVyQ2hh
cmFjdGVyczg7CiAgICAgICAgIFVDaGFyKiBtX2J1ZmZlckNoYXJhY3RlcnMxNjsKQEAgLTM2NSwy
MCArMzY1LDQ4IEBAIEFMV0FZU19JTkxJTkUgVUNoYXIqIFN0cmluZ0J1aWxkZXI6OmdldEJ1ZmZl
ckNoYXJhY3RlcnM8VUNoYXI+KCkKIH0gICAgCiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlw
ZT4KLWJvb2wgZXF1YWwoY29uc3QgU3RyaW5nQnVpbGRlciYgcywgY29uc3QgQ2hhclR5cGUqIGJ1
ZmZlciwgdW5zaWduZWQgbGVuZ3RoKQoraW5saW5lIGJvb2wgZXF1YWwoY29uc3QgU3RyaW5nQnVp
bGRlciYgcywgY29uc3QgQ2hhclR5cGUqIGJ1ZmZlciwgdW5zaWduZWQgbGVuZ3RoKQogeworICAg
IGlmIChzLmZhaWxlZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAocy5sZW5n
dGgoKSAhPSBsZW5ndGgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChzLmlzOEJp
dCgpKQotICAgICAgICByZXR1cm4gZXF1YWwocy5jaGFyYWN0ZXJzOCgpLCBidWZmZXIsIGxlbmd0
aCk7CisgICAgICAgIHJldHVybiBlcXVhbCgqcy5jaGFyYWN0ZXJzOCgpLCBidWZmZXIsIGxlbmd0
aCk7CisKKyAgICByZXR1cm4gZXF1YWwoKnMuY2hhcmFjdGVyczE2KCksIGJ1ZmZlciwgbGVuZ3Ro
KTsKK30KKworaW5saW5lIGJvb2wgZXF1YWwoY29uc3QgU3RyaW5nQnVpbGRlciYgYSwgY29uc3Qg
U3RyaW5nQnVpbGRlciYgYikKK3sKKyAgICBpZiAoYS5mYWlsZWQoKSB8fCBiLmZhaWxlZCgpKQor
ICAgICAgICByZXR1cm4gYS5mYWlsZWQoKSA9PSBiLmZhaWxlZCgpOworCisgICAgaWYgKGEubGVu
Z3RoKCkgIT0gYi5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFh
Lmxlbmd0aCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIHJldHVybiBlcXVhbChzLmNo
YXJhY3RlcnMxNigpLCBidWZmZXIsIGxlbmd0aCk7CisgICAgaWYgKGEuaXM4Qml0KCkpIHsKKyAg
ICAgICAgaWYgKGIuaXM4Qml0KCkpCisgICAgICAgICAgICByZXR1cm4gZXF1YWwoKmEuY2hhcmFj
dGVyczgoKSwgKmIuY2hhcmFjdGVyczgoKSwgYS5sZW5ndGgoKSk7CisgICAgICAgIHJldHVybiBl
cXVhbCgqYS5jaGFyYWN0ZXJzOCgpLCAqYi5jaGFyYWN0ZXJzMTYoKSwgYS5sZW5ndGgoKSk7Cisg
ICAgfQorCisgICAgaWYgKGIuaXM4Qml0KCkpCisgICAgICAgIHJldHVybiBlcXVhbCgqYS5jaGFy
YWN0ZXJzMTYoKSwgKmIuY2hhcmFjdGVyczgoKSwgYS5sZW5ndGgoKSk7CisgICAgcmV0dXJuIGVx
dWFsKCphLmNoYXJhY3RlcnMxNigpLCAqYi5jaGFyYWN0ZXJzMTYoKSwgYS5sZW5ndGgoKSk7CiB9
CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBTdHJpbmdUeXBlPgotYm9vbCBlcXVhbChjb25zdCBTdHJp
bmdCdWlsZGVyJiBhLCBjb25zdCBTdHJpbmdUeXBlJiBiKQoraW5saW5lIGJvb2wgZXF1YWwoY29u
c3QgU3RyaW5nQnVpbGRlciYgYSwgY29uc3QgU3RyaW5nVHlwZSYgYikKIHsKKyAgICBpZiAoYS5m
YWlsZWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKGEubGVuZ3RoKCkgIT0g
Yi5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0zODcsMTMgKzQxNSwxMyBA
QCBib29sIGVxdWFsKGNvbnN0IFN0cmluZ0J1aWxkZXImIGEsIGNvbnN0IFN0cmluZ1R5cGUmIGIp
CiAKICAgICBpZiAoYS5pczhCaXQoKSkgewogICAgICAgICBpZiAoYi5pczhCaXQoKSkKLSAgICAg
ICAgICAgIHJldHVybiBlcXVhbChhLmNoYXJhY3RlcnM4KCksIGIuY2hhcmFjdGVyczgoKSwgYS5s
ZW5ndGgoKSk7Ci0gICAgICAgIHJldHVybiBlcXVhbChhLmNoYXJhY3RlcnM4KCksIGIuY2hhcmFj
dGVyczE2KCksIGEubGVuZ3RoKCkpOworICAgICAgICAgICAgcmV0dXJuIGVxdWFsKCphLmNoYXJh
Y3RlcnM4KCksIGIuY2hhcmFjdGVyczgoKSwgYS5sZW5ndGgoKSk7CisgICAgICAgIHJldHVybiBl
cXVhbCgqYS5jaGFyYWN0ZXJzOCgpLCBiLmNoYXJhY3RlcnMxNigpLCBhLmxlbmd0aCgpKTsKICAg
ICB9CiAKICAgICBpZiAoYi5pczhCaXQoKSkKLSAgICAgICAgcmV0dXJuIGVxdWFsKGEuY2hhcmFj
dGVyczE2KCksIGIuY2hhcmFjdGVyczgoKSwgYS5sZW5ndGgoKSk7Ci0gICAgcmV0dXJuIGVxdWFs
KGEuY2hhcmFjdGVyczE2KCksIGIuY2hhcmFjdGVyczE2KCksIGEubGVuZ3RoKCkpOworICAgICAg
ICByZXR1cm4gZXF1YWwoKmEuY2hhcmFjdGVyczE2KCksIGIuY2hhcmFjdGVyczgoKSwgYS5sZW5n
dGgoKSk7CisgICAgcmV0dXJuIGVxdWFsKCphLmNoYXJhY3RlcnMxNigpLCBiLmNoYXJhY3RlcnMx
NigpLCBhLmxlbmd0aCgpKTsKIH0KIAogaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTdHJp
bmdCdWlsZGVyJiBhLCBjb25zdCBTdHJpbmdCdWlsZGVyJiBiKSB7IHJldHVybiBlcXVhbChhLCBi
KTsgfQpAQCAtNDA0LDkgKzQzMiwxMiBAQCBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFN0
cmluZyYgYSwgY29uc3QgU3RyaW5nQnVpbGRlciYgYikgeyByZXR1cm4gZXF1YWwoYgogaW5saW5l
IGJvb2wgb3BlcmF0b3IhPShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0cmluZ0J1aWxkZXImIGIp
IHsgcmV0dXJuICFlcXVhbChiLCBhKTsgfQogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBJbnRlZ2VyVG9T
dHJpbmdDb252ZXJzaW9uVHJhaXQ8U3RyaW5nQnVpbGRlcj4gewotICAgIHVzaW5nIFJldHVyblR5
cGUgPSB2b2lkOworICAgIHVzaW5nIFJldHVyblR5cGUgPSBTdHJpbmdCdWlsZGVyOjpGYWxsaWJs
ZTw+OwogICAgIHVzaW5nIEFkZGl0aW9uYWxBcmd1bWVudFR5cGUgPSBTdHJpbmdCdWlsZGVyOwot
ICAgIHN0YXRpYyB2b2lkIGZsdXNoKExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgs
IFN0cmluZ0J1aWxkZXIqIHN0cmluZ0J1aWxkZXIpIHsgc3RyaW5nQnVpbGRlci0+YXBwZW5kKGNo
YXJhY3RlcnMsIGxlbmd0aCk7IH0KKyAgICBzdGF0aWMgUmV0dXJuVHlwZSBmbHVzaChMQ2hhciog
Y2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBTdHJpbmdCdWlsZGVyKiBzdHJpbmdCdWlsZGVy
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0cmluZ0J1aWxkZXItPmFwcGVuZChjaGFyYWN0ZXJz
LCBsZW5ndGgpOworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVySlNPTi5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L1N0cmluZ0J1aWxkZXJKU09OLmNwcAppbmRleCA0YzI3NjZjLi43MGRiYjg2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXJKU09OLmNwcAorKysgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXJKU09OLmNwcApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTMsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTcgWXVzdWtlIFN1enVraSA8dXRh
dGFuZS50ZWFAZ21haWwuY29tPi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAo
QykgMjAxNyBNb3ppbGxhIEZvdW5kYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC03NCwx
MyArNzQsNyBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyB2b2lkIGFwcGVuZFF1b3RlZEpTT05TdHJp
bmdJbnRlcm5hbChPdXRwdXRDaGFyYWN0ZXJUeXBlKiYgbwogICAgIH0KIH0KIAotdm9pZCBTdHJp
bmdCdWlsZGVyOjphcHBlbmRRdW90ZWRKU09OU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQot
ewotICAgIGlmICghdHJ5QXBwZW5kUXVvdGVkSlNPTlN0cmluZyhzdHJpbmcpKQotICAgICAgICBD
UkFTSCgpOwotfQotCi1ib29sIFN0cmluZ0J1aWxkZXI6OnRyeUFwcGVuZFF1b3RlZEpTT05TdHJp
bmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmlu
Z0J1aWxkZXI6OmFwcGVuZFF1b3RlZEpTT05TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7
CiAgICAgLy8gTWFrZSBzdXJlIHdlIGhhdmUgZW5vdWdoIGJ1ZmZlciBzcGFjZSB0byBhcHBlbmQg
dGhpcyBzdHJpbmcgd2l0aG91dCBoYXZpbmcKICAgICAvLyB0byB3b3JyeSBhYm91dCByZWFsbG9j
YXRpbmcgaW4gdGhlIG1pZGRsZS4KQEAgLTkxLDIwICs4NSwyMSBAQCBib29sIFN0cmluZ0J1aWxk
ZXI6OnRyeUFwcGVuZFF1b3RlZEpTT05TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAg
bWF4aW11bUNhcGFjaXR5UmVxdWlyZWQgKz0gMiArIHN0cmluZ0xlbmd0aCAqIDY7CiAgICAgdW5z
aWduZWQgYWxsb2NhdGlvblNpemU7CiAgICAgaWYgKENoZWNrZWRTdGF0ZTo6RGlkT3ZlcmZsb3cg
PT0gbWF4aW11bUNhcGFjaXR5UmVxdWlyZWQuc2FmZUdldChhbGxvY2F0aW9uU2l6ZSkpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHdvdWxkT3ZlcmZsb3coKTsKICAgICAv
LyBUaGlzIG1heCgpIGlzIGhlcmUgdG8gYWxsb3cgdXMgdG8gYWxsb2NhdGUgc2l6ZXMgYmV0d2Vl
biB0aGUgcmFuZ2UgWzJeMzEsIDJeMzIgLSAyXSBiZWNhdXNlIHJvdW5kVXBUb1Bvd2VyT2ZUd28o
MTw8MzEgKyBzb21lIGludCBzbWFsbGVyIHRoYW4gMTw8MzEpID09IDAuCiAgICAgLy8gRklYTUU6
IHJvdW5kVXBUb1Bvd2VyT2ZUd28gc2hvdWxkIHRha2UgQ2hlY2tlZDx1bnNpZ25lZD4gYW5kIGFi
b3J0IGlmIGl0IGZhaWxzIHRvIHJvdW5kIHVwLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwODYKICAgICBhbGxvY2F0aW9uU2l6ZSA9IHN0ZDo6bWF4
KGFsbG9jYXRpb25TaXplLCByb3VuZFVwVG9Qb3dlck9mVHdvKGFsbG9jYXRpb25TaXplKSk7CiAK
LSAgICAvLyBBbGxvY2F0aW5nIHRoaXMgbXVjaCB3aWxsIGRlZmluaXRlbHkgZmFpbC4KLSAgICBp
ZiAoYWxsb2NhdGlvblNpemUgPj0gMHg4MDAwMDAwMCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgaWYgKGlzOEJpdCgpICYmICFzdHJpbmcuaXM4Qml0KCkpCi0gICAgICAgIGFsbG9jYXRl
QnVmZmVyVXBDb252ZXJ0KG1fYnVmZmVyQ2hhcmFjdGVyczgsIGFsbG9jYXRpb25TaXplKTsKLSAg
ICBlbHNlCi0gICAgICAgIHJlc2VydmVDYXBhY2l0eShhbGxvY2F0aW9uU2l6ZSk7CisgICAgaWYg
KGlzOEJpdCgpICYmICFzdHJpbmcuaXM4Qml0KCkpIHsKKyAgICAgICAgYXV0byBhbGxvY2F0ZWQg
PSBhbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChtX2J1ZmZlckNoYXJhY3RlcnM4LCBhbGxvY2F0aW9u
U2l6ZSk7CisgICAgICAgIGlmICghYWxsb2NhdGVkKQorICAgICAgICAgICAgcmV0dXJuIGFsbG9j
YXRlZDsKKyAgICB9IGVsc2UgeworICAgICAgICBhdXRvIHJlc2VydmVkID0gcmVzZXJ2ZUNhcGFj
aXR5KGFsbG9jYXRpb25TaXplKTsKKyAgICAgICAgaWYgKCFyZXNlcnZlZCkKKyAgICAgICAgICAg
IHJldHVybiByZXNlcnZlZDsKKyAgICB9CiAgICAgQVNTRVJUKG1fYnVmZmVyLT5sZW5ndGgoKSA+
PSBhbGxvY2F0aW9uU2l6ZSk7CiAKICAgICBpZiAoaXM4Qml0KCkpIHsKQEAgLTEyNSw3ICsxMjAs
NyBAQCBib29sIFN0cmluZ0J1aWxkZXI6OnRyeUFwcGVuZFF1b3RlZEpTT05TdHJpbmcoY29uc3Qg
U3RyaW5nJiBzdHJpbmcpCiAgICAgICAgIG1fbGVuZ3RoID0gb3V0cHV0IC0gbV9idWZmZXJDaGFy
YWN0ZXJzMTY7CiAgICAgfQogICAgIEFTU0VSVChtX2J1ZmZlci0+bGVuZ3RoKCkgPj0gbV9sZW5n
dGgpOwotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiB7IH07CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAKaW5kZXggNzc0ODc2Yi4uZWVkMDlh
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcAorKysgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCkBAIC0yMDYsMjIgKzIwNiwyNCBAQCBS
ZWY8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6Y3JlYXRlVW5pbml0aWFsaXplZCh1bnNpZ25lZCBs
ZW5ndGgsIFVDaGFyKiYgZGF0YSkKICAgICByZXR1cm4gY3JlYXRlVW5pbml0aWFsaXplZEludGVy
bmFsKGxlbmd0aCwgZGF0YSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+
IGlubGluZSBSZWY8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6cmVhbGxvY2F0ZUludGVybmFsKFJl
ZjxTdHJpbmdJbXBsPiYmIG9yaWdpbmFsU3RyaW5nLCB1bnNpZ25lZCBsZW5ndGgsIENoYXJhY3Rl
clR5cGUqJiBkYXRhKQordGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gaW5saW5lIFJl
ZlB0cjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpyZWFsbG9jYXRlSW50ZXJuYWwoUmVmPFN0cmlu
Z0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2lnbmVkIGxlbmd0aCwgQ2hhcmFjdGVyVHlwZSom
IGRhdGEpCiB7CiAgICAgQVNTRVJUKG9yaWdpbmFsU3RyaW5nLT5oYXNPbmVSZWYoKSk7CiAgICAg
QVNTRVJUKG9yaWdpbmFsU3RyaW5nLT5idWZmZXJPd25lcnNoaXAoKSA9PSBCdWZmZXJJbnRlcm5h
bCk7CiAKICAgICBpZiAoIWxlbmd0aCkgewogICAgICAgICBkYXRhID0gMDsKLSAgICAgICAgcmV0
dXJuICplbXB0eSgpOworICAgICAgICByZXR1cm4gZW1wdHkoKTsKICAgICB9CiAKICAgICAvLyBT
YW1lIGFzIGNyZWF0ZVVuaW5pdGlhbGl6ZWQoKSBleGNlcHQgaGVyZSB3ZSB1c2Ugc3RyaW5nUmVh
bGxvYy4KLSAgICBpZiAobGVuZ3RoID4gKChzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6
bWF4KCkgLSBzaXplb2YoU3RyaW5nSW1wbCkpIC8gc2l6ZW9mKENoYXJhY3RlclR5cGUpKSkKLSAg
ICAgICAgQ1JBU0goKTsKKyAgICBpZiAoVU5MSUtFTFkobGVuZ3RoID4gKChzdGQ6Om51bWVyaWNf
bGltaXRzPHVuc2lnbmVkPjo6bWF4KCkgLSBzaXplb2YoU3RyaW5nSW1wbCkpIC8gc2l6ZW9mKENo
YXJhY3RlclR5cGUpKSkpCisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgb3JpZ2luYWxT
dHJpbmctPn5TdHJpbmdJbXBsKCk7CiAgICAgYXV0byogc3RyaW5nID0gc3RhdGljX2Nhc3Q8U3Ry
aW5nSW1wbCo+KHN0cmluZ1JlYWxsb2MoJm9yaWdpbmFsU3RyaW5nLmxlYWtSZWYoKSwgYWxsb2Nh
dGlvblNpemU8Q2hhcmFjdGVyVHlwZT4obGVuZ3RoKSkpOworICAgIGlmIChVTkxJS0VMWSghc3Ry
aW5nKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBkYXRhID0gc3RyaW5nLT50YWls
UG9pbnRlcjxDaGFyYWN0ZXJUeXBlPigpOwogICAgIHJldHVybiBjb25zdHJ1Y3RJbnRlcm5hbDxD
aGFyYWN0ZXJUeXBlPigqc3RyaW5nLCBsZW5ndGgpOwpAQCAtMjMwLDEzICsyMzIsMzMgQEAgdGVt
cGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gaW5saW5lIFJlZjxTdHJpbmdJbXBsPiBTdHJp
bmdJbXBsOjpyZWFsbG9jYXRlSW4KIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpyZWFsbG9j
YXRlKFJlZjxTdHJpbmdJbXBsPiYmIG9yaWdpbmFsU3RyaW5nLCB1bnNpZ25lZCBsZW5ndGgsIExD
aGFyKiYgZGF0YSkKIHsKICAgICBBU1NFUlQob3JpZ2luYWxTdHJpbmctPmlzOEJpdCgpKTsKLSAg
ICByZXR1cm4gcmVhbGxvY2F0ZUludGVybmFsKFdURk1vdmUob3JpZ2luYWxTdHJpbmcpLCBsZW5n
dGgsIGRhdGEpOworICAgIGlmIChhdXRvIHJlYWxsb2NhdGVkID0gcmVhbGxvY2F0ZUludGVybmFs
KFdURk1vdmUob3JpZ2luYWxTdHJpbmcpLCBsZW5ndGgsIGRhdGEpKQorICAgICAgICByZXR1cm4g
KnJlYWxsb2NhdGVkOworICAgIENSQVNIKCk7CiB9CiAKIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJ
bXBsOjpyZWFsbG9jYXRlKFJlZjxTdHJpbmdJbXBsPiYmIG9yaWdpbmFsU3RyaW5nLCB1bnNpZ25l
ZCBsZW5ndGgsIFVDaGFyKiYgZGF0YSkKIHsKICAgICBBU1NFUlQoIW9yaWdpbmFsU3RyaW5nLT5p
czhCaXQoKSk7Ci0gICAgcmV0dXJuIHJlYWxsb2NhdGVJbnRlcm5hbChXVEZNb3ZlKG9yaWdpbmFs
U3RyaW5nKSwgbGVuZ3RoLCBkYXRhKTsKKyAgICBpZiAoYXV0byByZWFsbG9jYXRlZCA9IHJlYWxs
b2NhdGVJbnRlcm5hbChXVEZNb3ZlKG9yaWdpbmFsU3RyaW5nKSwgbGVuZ3RoLCBkYXRhKSkKKyAg
ICAgICAgcmV0dXJuICpyZWFsbG9jYXRlZDsKKyAgICBDUkFTSCgpOworfQorCitSZWZQdHI8U3Ry
aW5nSW1wbD4gU3RyaW5nSW1wbDo6dHJ5UmVhbGxvY2F0ZShSZWY8U3RyaW5nSW1wbD4mJiBvcmln
aW5hbFN0cmluZywgdW5zaWduZWQgbGVuZ3RoLCBMQ2hhciomIGRhdGEpCit7CisgICAgQVNTRVJU
KG9yaWdpbmFsU3RyaW5nLT5pczhCaXQoKSk7CisgICAgaWYgKGF1dG8gcmVhbGxvY2F0ZWQgPSBy
ZWFsbG9jYXRlSW50ZXJuYWwoV1RGTW92ZShvcmlnaW5hbFN0cmluZyksIGxlbmd0aCwgZGF0YSkp
CisgICAgICAgIHJldHVybiByZWFsbG9jYXRlZC5nZXQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworUmVmUHRyPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OnRyeVJlYWxsb2NhdGUoUmVmPFN0
cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2lnbmVkIGxlbmd0aCwgVUNoYXIqJiBkYXRh
KQoreworICAgIEFTU0VSVCghb3JpZ2luYWxTdHJpbmctPmlzOEJpdCgpKTsKKyAgICBpZiAoYXV0
byByZWFsbG9jYXRlZCA9IHJlYWxsb2NhdGVJbnRlcm5hbChXVEZNb3ZlKG9yaWdpbmFsU3RyaW5n
KSwgbGVuZ3RoLCBkYXRhKSkKKyAgICAgICAgcmV0dXJuIHJlYWxsb2NhdGVkLmdldCgpOworICAg
IHJldHVybiBudWxscHRyOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBp
bmxpbmUgUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OmNyZWF0ZUludGVybmFsKGNvbnN0IENo
YXJhY3RlclR5cGUqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJp
bmdJbXBsLmgKaW5kZXggNjE2ZGEyNS4uOGRmOWUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvdGV4dC9TdHJpbmdJbXBsLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBs
LmgKQEAgLTIyOSw2ICsyMjksNyBAQCBwdWJsaWM6CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0
YXRpYyBSZWY8U3RyaW5nSW1wbD4gY3JlYXRlKGNvbnN0IExDaGFyKik7CiAgICAgQUxXQVlTX0lO
TElORSBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0ZShjb25zdCBjaGFyKiBzdHJpbmcpIHsg
cmV0dXJuIGNyZWF0ZShyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oc3RyaW5nKSk7IH0K
IAorICAgIHN0YXRpYyBSZWZQdHI8U3RyaW5nSW1wbD4gdHJ5Q3JlYXRlU3Vic3RyaW5nU2hhcmlu
Z0ltcGwoU3RyaW5nSW1wbCYsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKICAg
ICBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKFN0cmlu
Z0ltcGwmLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7CiAKICAgICB0ZW1wbGF0
ZTx1bnNpZ25lZCBjaGFyYWN0ZXJDb3VudD4gc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGVG
cm9tTGl0ZXJhbChjb25zdCBjaGFyICgmKVtjaGFyYWN0ZXJDb3VudF0pOwpAQCAtMjQ4LDYgKzI0
OSw4IEBAIHB1YmxpYzoKICAgICAvLyB0aGUgb3JpZ2luYWxTdHJpbmcgY2FuJ3QgYmUgdXNlZCBh
ZnRlciB0aGlzIGZ1bmN0aW9uLgogICAgIHN0YXRpYyBSZWY8U3RyaW5nSW1wbD4gcmVhbGxvY2F0
ZShSZWY8U3RyaW5nSW1wbD4mJiBvcmlnaW5hbFN0cmluZywgdW5zaWduZWQgbGVuZ3RoLCBMQ2hh
ciomIGRhdGEpOwogICAgIHN0YXRpYyBSZWY8U3RyaW5nSW1wbD4gcmVhbGxvY2F0ZShSZWY8U3Ry
aW5nSW1wbD4mJiBvcmlnaW5hbFN0cmluZywgdW5zaWduZWQgbGVuZ3RoLCBVQ2hhciomIGRhdGEp
OworICAgIHN0YXRpYyBSZWZQdHI8U3RyaW5nSW1wbD4gdHJ5UmVhbGxvY2F0ZShSZWY8U3RyaW5n
SW1wbD4mJiBvcmlnaW5hbFN0cmluZywgdW5zaWduZWQgbGVuZ3RoLCBMQ2hhciomIGRhdGEpOwor
ICAgIHN0YXRpYyBSZWZQdHI8U3RyaW5nSW1wbD4gdHJ5UmVhbGxvY2F0ZShSZWY8U3RyaW5nSW1w
bD4mJiBvcmlnaW5hbFN0cmluZywgdW5zaWduZWQgbGVuZ3RoLCBVQ2hhciomIGRhdGEpOwogCiAg
ICAgc3RhdGljIHVuc2lnbmVkIGZsYWdzT2Zmc2V0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9G
KFN0cmluZ0ltcGwsIG1faGFzaEFuZEZsYWdzKTsgfQogICAgIHN0YXRpYyB1bnNpZ25lZCBmbGFn
SXM4Qml0KCkgeyByZXR1cm4gc19oYXNoRmxhZzhCaXRCdWZmZXI7IH0KQEAgLTUwMyw3ICs1MDYs
NyBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHN0YXRp
YyBSZWY8U3RyaW5nSW1wbD4gY29uc3RydWN0SW50ZXJuYWwoU3RyaW5nSW1wbCYsIHVuc2lnbmVk
KTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBzdGF0aWMgUmVmPFN0cmlu
Z0ltcGw+IGNyZWF0ZVVuaW5pdGlhbGl6ZWRJbnRlcm5hbCh1bnNpZ25lZCwgQ2hhcmFjdGVyVHlw
ZSomKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBzdGF0aWMgUmVmPFN0
cmluZ0ltcGw+IGNyZWF0ZVVuaW5pdGlhbGl6ZWRJbnRlcm5hbE5vbkVtcHR5KHVuc2lnbmVkLCBD
aGFyYWN0ZXJUeXBlKiYpOwotICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHN0
YXRpYyBSZWY8U3RyaW5nSW1wbD4gcmVhbGxvY2F0ZUludGVybmFsKFJlZjxTdHJpbmdJbXBsPiYm
LCB1bnNpZ25lZCwgQ2hhcmFjdGVyVHlwZSomKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFy
YWN0ZXJUeXBlPiBzdGF0aWMgUmVmUHRyPFN0cmluZ0ltcGw+IHJlYWxsb2NhdGVJbnRlcm5hbChS
ZWY8U3RyaW5nSW1wbD4mJiwgdW5zaWduZWQsIENoYXJhY3RlclR5cGUqJik7CiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGVJ
bnRlcm5hbChjb25zdCBDaGFyYWN0ZXJUeXBlKiwgdW5zaWduZWQpOwogICAgIFdURl9FWFBPUlRf
UFJJVkFURSBORVZFUl9JTkxJTkUgdW5zaWduZWQgaGFzaFNsb3dDYXNlKCkgY29uc3Q7CiAKQEAg
LTkxNCwyMiArOTE3LDMxIEBAIHRlbXBsYXRlPHNpemVfdCBpbmxpbmVDYXBhY2l0eT4gaW5saW5l
IFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdGU4Qml0SWZQCiAgICAgcmV0dXJuIGNy
ZWF0ZThCaXRJZlBvc3NpYmxlKHZlY3Rvci5kYXRhKCksIHZlY3Rvci5zaXplKCkpOwogfQogCi1B
TFdBWVNfSU5MSU5FIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdGVTdWJzdHJpbmdT
aGFyaW5nSW1wbChTdHJpbmdJbXBsJiByZXAsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVu
Z3RoKQorQUxXQVlTX0lOTElORSBSZWZQdHI8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6dHJ5Q3Jl
YXRlU3Vic3RyaW5nU2hhcmluZ0ltcGwoU3RyaW5nSW1wbCYgcmVwLCB1bnNpZ25lZCBvZmZzZXQs
IHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBBU1NFUlQobGVuZ3RoIDw9IHJlcC5sZW5ndGgoKSk7
CiAKICAgICBpZiAoIWxlbmd0aCkKLSAgICAgICAgcmV0dXJuICplbXB0eSgpOworICAgICAgICBy
ZXR1cm4gZW1wdHkoKTsKIAogICAgIGF1dG8qIG93bmVyUmVwID0gKChyZXAuYnVmZmVyT3duZXJz
aGlwKCkgPT0gQnVmZmVyU3Vic3RyaW5nKSA/IHJlcC5zdWJzdHJpbmdCdWZmZXIoKSA6ICZyZXAp
OwogCiAgICAgLy8gV2UgYWxsb2NhdGUgYSBidWZmZXIgdGhhdCBjb250YWlucyBib3RoIHRoZSBT
dHJpbmdJbXBsIHN0cnVjdCBhcyB3ZWxsIGFzIHRoZSBwb2ludGVyIHRvIHRoZSBvd25lciBzdHJp
bmcuCiAgICAgYXV0byogc3RyaW5nSW1wbCA9IHN0YXRpY19jYXN0PFN0cmluZ0ltcGwqPihzdHJp
bmdNYWxsb2MoYWxsb2NhdGlvblNpemU8U3RyaW5nSW1wbCo+KDEpKSk7CisgICAgaWYgKCFzdHJp
bmdJbXBsKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAocmVwLmlzOEJpdCgpKQog
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyAoTm90TnVsbCwgc3RyaW5nSW1wbCkgU3RyaW5n
SW1wbChyZXAubV9kYXRhOCArIG9mZnNldCwgbGVuZ3RoLCAqb3duZXJSZXApKTsKICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyAoTm90TnVsbCwgc3RyaW5nSW1wbCkgU3RyaW5nSW1wbChyZXAubV9k
YXRhMTYgKyBvZmZzZXQsIGxlbmd0aCwgKm93bmVyUmVwKSk7CiB9CiAKK0FMV0FZU19JTkxJTkUg
UmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OmNyZWF0ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKFN0
cmluZ0ltcGwmIHJlcCwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAg
aWYgKGF1dG8gY3JlYXRlZCA9IHRyeUNyZWF0ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKHJlcCwgb2Zm
c2V0LCBsZW5ndGgpKQorICAgICAgICByZXR1cm4gKmNyZWF0ZWQ7CisgICAgQ1JBU0goKTsKK30K
KwogdGVtcGxhdGU8dW5zaWduZWQgY2hhcmFjdGVyQ291bnQ+IEFMV0FZU19JTkxJTkUgUmVmPFN0
cmluZ0ltcGw+IFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKGNvbnN0IGNoYXIgKCZjaGFy
YWN0ZXJzKVtjaGFyYWN0ZXJDb3VudF0pCiB7CiAgICAgQ09NUElMRV9BU1NFUlQoY2hhcmFjdGVy
Q291bnQgPiAxLCBTdHJpbmdJbXBsRnJvbUxpdGVyYWxOb3RFbXB0eSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRTdHJlYW0uY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9U
ZXh0U3RyZWFtLmNwcAppbmRleCBhYWY2MTk0Li5kM2I1MzE4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1RleHRTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4
dFN0cmVhbS5jcHAKQEAgLTEzMiw5ICsxMzIsMTEgQEAgVGV4dFN0cmVhbSYgVGV4dFN0cmVhbTo6
b3BlcmF0b3I8PChjb25zdCBGb3JtYXROdW1iZXJSZXNwZWN0aW5nSW50ZWdlcnMmIG51bWJlclQK
IAogU3RyaW5nIFRleHRTdHJlYW06OnJlbGVhc2UoKQogewotICAgIFN0cmluZyByZXN1bHQgPSBt
X3RleHQudG9TdHJpbmcoKTsKLSAgICBtX3RleHQuY2xlYXIoKTsKLSAgICByZXR1cm4gcmVzdWx0
OworICAgIGlmIChhdXRvIHJlc3VsdCA9IG1fdGV4dC50b1N0cmluZygpKSB7CisgICAgICAgIG1f
dGV4dC5jbGVhcigpOworICAgICAgICByZXR1cm4gKnJlc3VsdDsKKyAgICB9CisgICAgQ1JBU0go
KTsKIH0KIAogdm9pZCBUZXh0U3RyZWFtOjpzdGFydEdyb3VwKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyYTVh
YjczLi4xYjczMjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEzIEBACisyMDE4LTA0LTI2ICBK
RiBCYXN0aWVuICA8amZiYXN0aWVuQGFwcGxlLmNvbT4KKworICAgICAgICBTdHJpbmdCdWlsZGVy
IGlzIGZhbGxpYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODUwNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTdHJpbmdCdWlsZGVyIGNhbiBmYWlsIHdoZW4gYWxsb2NhdGluZyBtZW1vcnkuIFN0cmlu
Z0J1aWxkZXIgaXMKKyAgICAgICAgbW9zdGx5IHVzZWQgd2l0aCB1c2VyIGlucHV0LCB3aGljaCBv
ZnRlbiBtZWFucyB0aGF0IGp1c3QgY3Jhc2hpbmcKKyAgICAgICAgaXNuJ3QgdGhlIHJpZ2h0IG91
dGNvbWUuIE91ciBmdXp6ZXJzIG9mdGVuIGVuY291bnRlciBzdWNoIHRoaW5ncworICAgICAgICBm
b3IgSmF2YVNjcmlwdENvcmUsIGFuZCBzbyBmYXIgd2UndmUgYXBwbGllZCBwb2ludCBzb2x1dGlv
bnMuIE5vCisgICAgICAgIG1vcmUhCisKKworICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvY29j
b2EvUGF5bWVudENvbnRhY3RDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnQpOgor
ICAgICAgICAqIE1vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnJlc29sdmVSZWxhdGl2ZVZpcnR1YWxQYXRoKToKKyAgICAgICAgKiBNb2R1bGVz
L2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxvZ0Vycm9y
KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OklEQktleURhdGE6OmxvZ2dpbmdTdHJpbmcgY29uc3QpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQktleVBhdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6bG9nZ2lu
Z1N0cmluZyk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0luZGV4VmFsdWVT
dG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OkluZGV4VmFsdWVTdG9yZTo6
bG9nZ2luZ1N0cmluZyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L1NRTGl0ZUlEQkN1cnNvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OmJ1aWxk
SW5kZXhTdGF0ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpidWlsZE9iamVj
dFN0b3JlU3RhdGVtZW50KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURC
RGF0YWJhc2VJbmZvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlSW5mbzo6bG9n
Z2luZ1N0cmluZyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lE
Qk9iamVjdFN0b3JlSW5mby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUlu
Zm86OmxvZ2dpbmdTdHJpbmcgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9u
L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWVkaWFQcm9k
dWNlclN0YXRlU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OldlYk1lZGlhU2Vzc2lvbk1hbmFn
ZXI6OnRvU3RyaW5nKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0
aW9uQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaWx0ZXJJQ0VDYW5kaWRhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6UGVlckNvbm5lY3Rpb25CYWNrZW5kOjpmaWx0ZXJTRFAgY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6WW91VHViZVBsdWdpblJlcGxhY2VtZW50Ojp5b3VUdWJlVVJM
RnJvbUFic29sdXRlVVJMKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
VHJhY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZW5lcmF0ZURhdGFiYXNlRmlsZU5hbWUp
OgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6ZW5jb2RlUHJvdG9jb2xTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6am9pblN0
cmluZ3MpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25E
aXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEV4dGVuc2lvbkRpc3Bh
dGNoZXI6OmNyZWF0ZUhlYWRlclZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNv
Y2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OmFjY2VwdGVkRXh0ZW5zaW9ucyBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpyZXNvdXJjZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6aG9zdE5hbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNoYWtlOjpjbGllbnRMb2NhdGlvbiBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudEhhbmRzaGFr
ZU1lc3NhZ2UgY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkQWRkU3BhY2VCZWZvcmVBcHBl
bmRpbmdOZXh0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdDo6dGV4dFVuZGVyRWxlbWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdDo6YWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uRm9yQ2hpbGRyZW4gY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmFjY2Vzc2li
aWxpdHlEZXNjcmlwdGlvbkZvckVsZW1lbnRzIGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU9iamVjdDo6c3RyaW5nRm9yUmFuZ2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eU9iamVjdDo6c3RyaW5nRm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2UpOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1t
OgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciB2YWx1ZURlc2NyaXB0
aW9uRm9yTWV0ZXJdKToKKyAgICAgICAgKGZvcm1hdEZvckRlYnVnZ2VyKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN0
cmluZ1RvVVNWU3RyaW5nKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhh
bmRsaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRocm93QXJndW1lbnRNdXN0QmVFbnVtRXJy
b3IpOgorICAgICAgICAoV2ViQ29yZTo6dGhyb3dBcmd1bWVudE11c3RCZUZ1bmN0aW9uRXJyb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6dGhyb3dBcmd1bWVudFR5cGVFcnJvcik6CisgICAgICAgIChX
ZWJDb3JlOjp0aHJvd1JlcXVpcmVkTWVtYmVyVHlwZUVycm9yKToKKyAgICAgICAgKiBjb250ZW50
ZXh0ZW5zaW9ucy9Db21iaW5lZFVSTEZpbHRlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGVudEV4dGVuc2lvbnM6OnByZWZpeFRyZWVWZXJ0ZXhUb1N0cmluZyk6CisgICAgICAgICogY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbjo6Y29tcGlsZUdsb2JhbERpc3BsYXlO
b25lU3R5bGVTaGVldCk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVu
c2lvbkNvbXBpbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpy
ZXNvbHZlUGVuZGluZ0Rpc3BsYXlOb25lQWN0aW9ucyk6CisgICAgICAgICogY29udGVudGV4dGVu
c2lvbnMvQ29udGVudEV4dGVuc2lvblN0eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25TdHlsZVNoZWV0OjphZGREaXNwbGF5
Tm9uZVNlbGVjdG9yKToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9UZXJtLmg6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6VGVybTo6dG9TdHJpbmcgY29uc3QpOgor
ICAgICAgICAqIGNzcy9DU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlOjpjdXN0b21DU1NUZXh0
IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTQmFzaWNTaGFwZXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6YnVpbGRDaXJjbGVTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRFbGxpcHNl
U3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkUGF0aFN0cmluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpidWlsZFBvbHlnb25TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRJbnNl
dFN0cmluZyk6CisgICAgICAgICogY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6YnVpbGRDc3NUZXh0KToKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbjo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0Nyb3NzZmFkZVZhbHVl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZhbHVlOjpjdXN0b21DU1NUZXh0
IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NDdXJzb3JJbWFnZVZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAg
ICAgICAgKiBjc3MvQ1NTQ3VzdG9tSWRlbnRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
U1NDdXN0b21JZGVudFZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3Mv
Q1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGaWx0ZXJJbWFn
ZVZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VS
dWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlUnVsZTo6Y3NzVGV4dCBjb25z
dCk6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTRm9udEZhY2VTcmNWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAg
ICogY3NzL0NTU0ZvbnRGZWF0dXJlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9u
dEZlYXR1cmVWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0Zv
bnRTdHlsZVJhbmdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udFN0eWxlUmFu
Z2VWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0ZvbnRTdHls
ZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRTdHlsZVZhbHVlOjpjdXN0b21D
U1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTRm9udFZhbHVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU0ZvbnRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICog
Y3NzL0NTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250
VmFyaWF0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NG
dW5jdGlvblZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Z1bmN0aW9uVmFsdWU6OmN1
c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NHcmFkaWVudFZhbHVlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0xpbmVhckdyYWRpZW50VmFsdWU6OmN1c3RvbUNTU1RleHQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUmFkaWFsR3JhZGllbnRWYWx1ZTo6Y3VzdG9t
Q1NTVGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDb25pY0dyYWRpZW50VmFsdWU6
OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NHcmlkQXV0b1JlcGVhdFZh
bHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0dyaWRBdXRvUmVwZWF0VmFsdWU6OmN1c3Rv
bUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWU6OmN1c3Rv
bUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NJbWFnZVNldFZhbHVlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU0ltYWdlU2V0VmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgor
ICAgICAgICAqIGNzcy9DU1NJbXBvcnRSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0lt
cG9ydFJ1bGU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NLZXlmcmFtZVJ1bGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlS2V5ZnJhbWU6OmtleVRleHQgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlS2V5ZnJhbWU6OmNzc1RleHQgY29uc3QpOgor
ICAgICAgICAqIGNzcy9DU1NLZXlmcmFtZXNSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0tleWZyYW1lc1J1bGU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NMaW5lQm94
Q29udGFpblZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0xpbmVCb3hDb250YWluVmFs
dWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NNYXJrdXAuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6c2VyaWFsaXplU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OnNl
cmlhbGl6ZUFzU3RyaW5nT3JDdXN0b21JZGVudCk6CisgICAgICAgICogY3NzL0NTU01lZGlhUnVs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NNZWRpYVJ1bGU6OmNzc1RleHQgY29uc3QpOgor
ICAgICAgICAqIGNzcy9DU1NOYW1lc3BhY2VSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U05hbWVzcGFjZVJ1bGU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NQYWdlUnVs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYWdlUnVsZTo6c2VsZWN0b3JUZXh0IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhZ2VSdWxlOjpjc3NUZXh0IGNvbnN0KToKKyAgICAg
ICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJp
bWl0aXZlVmFsdWU6OmZvcm1hdE51bWJlckZvckN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAg
ICAqIGNzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UHJvcGVydHlTb3VyY2VEYXRhOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgICogY3NzL0NTU1Nl
bGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpzZWxlY3RvclRleHQg
Y29uc3QpOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvckxpc3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTU2VsZWN0b3JMaXN0OjpzZWxlY3RvcnNUZXh0IGNvbnN0KToKKyAgICAgICAgKiBj
c3MvQ1NTU2hhZG93VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2hhZG93VmFsdWU6
OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVJ1bGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVSdWxlOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAg
KiBjc3MvQ1NTU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNoZWV0
OjphZGRSdWxlKToKKyAgICAgICAgKiBjc3MvQ1NTU3VwcG9ydHNSdWxlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1N1cHBvcnRzUnVsZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogY3Nz
L0NTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3ViaWNC
ZXppZXJUaW1pbmdGdW5jdGlvblZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1N0ZXBzVGltaW5nRnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGcmFtZXNUaW1pbmdGdW5jdGlvblZhbHVlOjpjdXN0
b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NwcmluZ1RpbWluZ0Z1bmN0
aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUxp
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVMaXN0OjpjdXN0b21DU1NUZXh0IGNv
bnN0KToKKyAgICAgICAgKiBjc3MvQ1NTVmFyaWFibGVEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ZhcmlhYmxlRGF0YTo6Y29uc3VtZUFuZFVwZGF0ZVRva2Vucyk6CisgICAgICAgICog
Y3NzL0RPTUNTU05hbWVzcGFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01DU1NOYW1lc3Bh
Y2U6OmVzY2FwZSk6CisgICAgICAgICogY3NzL0RPTU1hdHJpeFJlYWRPbmx5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTU1hdHJpeFJlYWRPbmx5Ojp0b1N0cmluZyBjb25zdCk6CisgICAgICAg
ICogY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
ZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3Q6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9G
b250RmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250RmFjZTo6c3R5bGUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udEZhY2U6OndlaWdodCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpGb250RmFjZTo6c3RyZXRjaCBjb25zdCk6CisgICAgICAgICogY3NzL01lZGlhTGlzdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5U2V0OjptZWRpYVRleHQgY29uc3QpOgor
ICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVl
cnk6OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgICogY3NzL01lZGlhUXVlcnlFeHByZXNzaW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlFeHByZXNzaW9uOjpzZXJpYWxpemUg
Y29uc3QpOgorICAgICAgICAqIGNzcy9SZWN0Lmg6CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVy
dGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OmZvbnRWYWx1ZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OmdldDRWYWx1ZXMgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzOjpnZXRMYXllcmVkU2hvcnRo
YW5kVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzOjpnZXRT
aG9ydGhhbmRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6
OmJvcmRlclByb3BlcnR5VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9w
ZXJ0aWVzOjphc1RleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVz
OjpQcm9wZXJ0eVJlZmVyZW5jZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL1dlYktp
dENTU01hdHJpeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NNYXRyaXg6OnRvU3Ry
aW5nIGNvbnN0KToKKyAgICAgICAgKiBjc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYktpdENTU1ZpZXdwb3J0UnVsZTo6Y3NzVGV4dCBjb25zdCk6Cisg
ICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpwYXJzZUZvbnRGYWNlRGVzY3JpcHRvcik6CisgICAgICAgICogY3NzL3BhcnNlci9D
U1NQYXJzZXJUb2tlbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJUb2tlbjo6c2Vy
aWFsaXplIGNvbnN0KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuUmFuZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyVG9rZW5SYW5nZTo6c2VyaWFsaXplIGNv
bnN0KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbmNhdGVuYXRlRmFtaWx5TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpw
YXJzZUdyaWRUZW1wbGF0ZUFyZWFzQ29sdW1uTmFtZXMpOgorICAgICAgICAqIGNzcy9wYXJzZXIv
Q1NTVG9rZW5pemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Rva2VuaXplcjo6Y29uc3Vt
ZVN0cmluZ1Rva2VuVW50aWwpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9rZW5pemVyOjpjb25z
dW1lVXJsVG9rZW4pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9rZW5pemVyOjpjb25zdW1lTmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb2tlbml6ZXI6OmNvbnN1bWVFc2NhcGUpOgorICAg
ICAgICAqIGRvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnZlcnRBdHRyaWJ1dGVOYW1lVG9Qcm9wZXJ0eU5hbWUpOgorICAgICAgICAqIGRvbS9FbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmZvcm1hdEZvckRlYnVnZ2VyIGNvbnN0
KToKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjp0ZXh0
Q29udGVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzaG93Tm9kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjp0cmF2ZXJzZVRyZWVBbmRNYXJrKToKKyAgICAgICAgKiBkb20v
UG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OmZvcm1hdEZvckRlYnVn
Z2VyIGNvbnN0KToKKyAgICAgICAgKiBkb20vUmFuZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmFuZ2U6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpmb3JtYXRG
b3JEZWJ1Z2dlciBjb25zdCk6CisgICAgICAgICogZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0aHJvdHRsaW5nUmVhc29uc1RvU3RyaW5nKToK
KyAgICAgICAgKiBkb20vU2VjdXJpdHlDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
Y3VyaXR5Q29udGV4dDo6cGFyc2VTYW5kYm94UG9saWN5KToKKyAgICAgICAgKiBkb20vVGV4dC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Ojp3aG9sZVRleHQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dDo6Zm9ybWF0Rm9yRGVidWdnZXIgY29uc3QpOgorICAgICAgICAqIGRvbS9U
ZXh0Tm9kZVRyYXZlcnNhbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Tm9kZVRyYXZlcnNh
bDo6Y29udGVudHNBc1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Tm9kZVRyYXZlcnNh
bDo6Y2hpbGRUZXh0Q29udGVudCk6CisgICAgICAgICogZWRpdGluZy9BcHBseVN0eWxlQ29tbWFu
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6YWRkQmxvY2tTdHls
ZSk6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN0
cmluZ1dpdGhSZWJhbGFuY2VkV2hpdGVzcGFjZSk6CisgICAgICAgICogZWRpdGluZy9IVE1MSW50
ZXJjaGFuZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEhUTUxUZXh0VG9JbnRlcmNo
YW5nZUZvcm1hdCk6CisgICAgICAgICogZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNYXJrdXBBY2N1bXVsYXRvcjo6c2VyaWFsaXplTm9kZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6TWFya3VwQWNjdW11bGF0b3I6OmdlbmVyYXRlVW5pcXVlUHJlZml4KToK
KyAgICAgICAgKiBlZGl0aW5nL1RleHRJdGVyYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpw
bGFpblRleHQpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpUeXBpbmdDb21tYW5kOjppbnB1dEV2ZW50RGF0YVRyYW5zZmVyIGNvbnN0KToK
KyAgICAgICAgKiBlZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VmlzaWJsZVNlbGVjdGlvbjo6Zm9ybWF0Rm9yRGVidWdnZXIgY29uc3QpOgorICAgICAgICAq
IGVkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbToKKyAgICAgICAgKFdlYkNvcmU6OmRhdGFE
ZXRlY3RvclN0cmluZ0ZvclBhdGgpOgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvSFRNTENvbnZl
cnRlci5tbToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6Ol9wcm9jZXNzVGV4dCk6CisgICAgICAg
ICogZWRpdGluZy9tYXJrdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkTWFya3VwQWNj
dW11bGF0b3I6OndyYXBXaXRoTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRNYXJrdXBB
Y2N1bXVsYXRvcjo6d3JhcFdpdGhTdHlsZU5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVk
TWFya3VwQWNjdW11bGF0b3I6OnRha2VSZXN1bHRzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
ZE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnNhbml0
aXplZE1hcmt1cEZvckZyYWdtZW50SW5Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjp1cmxU
b01hcmt1cCk6CisgICAgICAgICogZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGVSZWFkZXJMb2FkZXI6OmNvbnZlcnRUb0RhdGFVUkwpOgorICAgICAg
ICAqIGh0bWwvRE9NVG9rZW5MaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRva2VuTGlz
dDo6dXBkYXRlQXNzb2NpYXRlZEF0dHJpYnV0ZUZyb21Ub2tlbnMpOgorICAgICAgICAqIGh0bWwv
RW1haWxJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RW1haWxJbnB1dFR5cGU6OnNh
bml0aXplVmFsdWUgY29uc3QpOgorICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpkZWZhdWx0VG9vbFRpcCBjb25zdCk6Cisg
ICAgICAgICogaHRtbC9Gb3JtQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmb3Jt
U2lnbmF0dXJlKToKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50OjpoYW5kbGVDbGljayk6CisgICAgICAgICog
aHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFz
RWxlbWVudDo6Y3JlYXRlQ29udGV4dDJkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNF
bGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlciBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MRm9u
dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VGb250U2l6ZSk6CisgICAgICAg
ICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFn
ZUVsZW1lbnQ6OmNvbXBsZXRlVVJMc0luQXR0cmlidXRlVmFsdWUgY29uc3QpOgorICAgICAgICAq
IGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjphY3Rpb25OYW1l
KToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxPcHRpb25FbGVtZW50Ojpjb2xsZWN0T3B0aW9uSW5uZXJUZXh0IGNvbnN0KToKKyAg
ICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzdHJpcHBlZFBsYWNlaG9sZGVyIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmlubmVyVGV4dFZhbHVlRnJvbSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6dmFsdWVXaXRoSGFyZExpbmVCcmVh
a3MgY29uc3QpOgorICAgICAgICAqIGh0bWwvTWVkaWFEb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYURvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSk6Cisg
ICAgICAgICogaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnJlc3RyaWN0aW9uTmFtZSk6CisgICAgICAgICogaHRtbC9NZWRpYUZyYWdtZW50VVJJUGFyc2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbGxlY3REaWdpdHMpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29sbGVjdEZyYWN0aW9uKToKKyAgICAgICAgKiBodG1sL1R5cGVBaGVhZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUeXBlQWhlYWQ6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpmb250IGNvbnN0KToKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmdldEltYWdlRGF0YSBjb25zdCk6CisgICAgICAg
ICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAgICog
aHRtbC9wYXJzZXIvSFRNTFNvdXJjZVRyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFNvdXJjZVRyYWNrZXI6OnNvdXJjZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRva2Vu
aXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpwcm9jZXNzRW50aXR5
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbml6ZXI6OnByb2Nlc3NUb2tlbik6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpidWZmZXJlZENoYXJhY3RlcnMgY29uc3QpOgor
ICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MVHJlZUJ1aWxkZXI6OmRlZmF1bHRGb3JJblRhYmxlVGV4dCk6CisgICAgICAgICog
aHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1
aWxkQ29uc29sZUVycm9yKToKKyAgICAgICAgKiBodG1sL3RyYWNrL0J1ZmZlcmVkTGluZVJlYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCdWZmZXJlZExpbmVSZWFkZXI6Om5leHRMaW5lKToK
KyAgICAgICAgKiBodG1sL3RyYWNrL1RyYWNrQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpU
cmFja0Jhc2U6OnNldExhbmd1YWdlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1ZUVEN1ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpWVFRDdWU6OmRldGVybWluZVRleHREaXJlY3Rpb24pOgorICAg
ICAgICAqIGh0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YlZUVFBhcnNlcjo6Y3JlYXRlTmV3Q3VlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1dlYlZUVFRv
a2VuaXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJWVFRUb2tlbml6ZXI6Om5leHRUb2tl
bik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGU6OnNob3J0aGFuZFZhbHVlIGNvbnN0KToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmJ1aWxk
T2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZVJlc291cmNlKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2Fn
ZW50cy9XZWJDb25zb2xlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29uc29sZUFn
ZW50OjpkaWRGYWlsTG9hZGluZyk6CisgICAgICAgICogbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNz
Q29udHJvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBY2Nlc3NDb250cm9sUHJlZmxp
Z2h0UmVxdWVzdCk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6dG9TdHJpbmcgY29u
c3QpOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6c3RvcmUpOgor
ICAgICAgICAqIGxvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TGVnYWN5V2ViQXJjaGl2ZTo6Y3JlYXRlRnJvbVNlbGVjdGlvbik6CisgICAg
ICAgICogbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmdlbmVyYXRlUmFuZG9tQm91bmRhcnkpOgorICAgICAgICAoV2ViQ29yZTo6cmVwbGFj
ZU5vblByaW50YWJsZUNoYXJhY3RlcnMpOgorICAgICAgICAqIHBhZ2UvQ2FwdGlvblVzZXJQcmVm
ZXJlbmNlc01lZGlhQUYuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJl
bmNlc01lZGlhQUY6OndpbmRvd1JvdW5kZWRDb3JuZXJSYWRpdXNDU1MgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNvbG9yUHJvcGVydHlD
U1MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlh
QUY6OmNhcHRpb25zVGV4dEVkZ2VDU1MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlv
blVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zRGVmYXVsdEZvbnRDU1MgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25z
U3R5bGVTaGVldE92ZXJyaWRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OnRyYWNrRGlzcGxh
eU5hbWUpOgorICAgICAgICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlUmVnRXhwRm9yTGFiZWxzKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVHJlZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6OnVuaXF1ZUNoaWxkTmFtZSBjb25zdCk6CisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpsb2dN
b2NrU2Nyb2xsQW5pbWF0b3JNZXNzYWdlIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1BhZ2VTZXJp
YWxpemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVyOjpzZXJpYWxpemVD
U1NTdHlsZVNoZWV0KToKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQ6OnN5bmNocm9u
b3VzU2Nyb2xsaW5nUmVhc29uc0FzU3RyaW5nKToKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3Jp
Z2luRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE6OmRhdGFi
YXNlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogcGFnZS9XaGVlbEV2ZW50VGVzdFRyaWdn
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZHVtcFN0YXRlKToKKyAgICAgICAgKiBwYWdlL2Nz
cC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29uc29sZU1l
c3NhZ2VGb3JWaW9sYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9s
aWN5OjphbGxvd1J1bm5pbmdPckRpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAq
IHBhZ2Uvc2Nyb2xsaW5nL0F4aXNTY3JvbGxTbmFwT2Zmc2V0cy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpzbmFwT2Zmc2V0c1RvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OnNuYXBPZmZzZXRS
YW5nZXNUb1N0cmluZyk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnN5bmNo
cm9ub3VzU2Nyb2xsaW5nUmVhc29uc0FzVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vRGVjaW1h
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWNpbWFsOjp0b1N0cmluZyBjb25zdCk6CisgICAg
ICAgICogcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lz
dGVtOjplbmNvZGVGb3JGaWxlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtOjpk
ZWNvZGVGcm9tRmlsZW5hbWUpOgorICAgICAgICAqIHBsYXRmb3JtL1BPREludGVydmFsLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpQ
T0RSZWRCbGFja1RyZWU6OmR1bXBGcm9tTm9kZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0v
VVJMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVSTDo6c2V0SG9zdCk6CisgICAgICAgIChXZWJD
b3JlOjpVUkw6OnNldEhvc3RBbmRQb3J0KToKKyAgICAgICAgKFdlYkNvcmU6OnBlcmNlbnRFbmNv
ZGVDaGFyYWN0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltaW5nRnVuY3Rpb246OmNyZWF0ZUZyb21DU1NU
ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudHMpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNv
bG9yOjpzZXJpYWxpemVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yOjpjc3NUZXh0
IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6OmNzc1RleHQgY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Om5vcm1hbGl6ZVNwYWNlc0ludGVybmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9G
b250VGFnZ2VkU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyOjphbmltYXRpb25OYW1lRm9yVHJhbnNpdGlvbik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZh
dGVBVkYuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6
cHJvY2Vzc0N1ZUF0dHJpYnV0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZUFWRjo6cHJvY2Vzc05hdGl2ZVNhbXBsZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVDb250
cm9sbGVyOjpjcmVhdGVUaWxlTGF5ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
L1RpbGVHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25Qb2xpY3lBc1N0cmlu
Zyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldp
bi5jcHA6CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJXaW46OmxheWVyVHJlZUFzU3RyaW5nIGNv
bnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJD
Vi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RleHR1cmVDb3BpZXJDVjo6aW5pdGlhbGl6
ZUNvbnRleHRPYmplY3RzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2VuZXJh
dGVIYXNoZWROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRV
bm1hbmdsZWRJbmZvTG9nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5t
bToKKyAgICAgICAgKFdlYkNvcmU6OmpvaW5QYXRobmFtZXMpOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9TdHJpbmdVdGlsaXRpZXMubW06CisgICAgICAgIChXZWJDb3JlOjp3aWxkY2FyZFJlZ2V4
UGF0dGVyblN0cmluZyk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9TY3JvbGxBbmltYXRvck1v
Y2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNb2NrOjptb3VzZUVudGVy
ZWRTY3JvbGxiYXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNb2Nr
Ojptb3VzZUV4aXRlZFNjcm9sbGJhciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxB
bmltYXRvck1vY2s6Om1vdXNlSXNEb3duSW5TY3JvbGxiYXIgY29uc3QpOgorICAgICAgICAqIHBs
YXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
b2NrQm94OjpwZWVrVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrVHJhY2tCb3g6Ok1vY2tU
cmFja0JveCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL1Byb3h5U2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRv
U3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVKYXJNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpjb29raWVzRm9yU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZv
cm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0
ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQv
RGVjb2RlRXNjYXBlU2VxdWVuY2VzLmg6CisgICAgICAgIChXZWJDb3JlOjpVbmljb2RlMTZCaXRF
c2NhcGVTZXF1ZW5jZTo6ZGVjb2RlUnVuKToKKyAgICAgICAgKFdlYkNvcmU6OmRlY29kZUVzY2Fw
ZVNlcXVlbmNlcyk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpMb2NhbGU6OmNvbnZlcnRUb0xvY2FsaXplZE51bWJlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpMb2NhbGU6OmNvbnZlcnRGcm9tTG9jYWxpemVkTnVtYmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxvY2FsZTo6Zm9ybWF0RGF0ZVRpbWUpOgorICAgICAgICAqIHBsYXRm
b3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlZ21lbnRl
ZFN0cmluZzo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dENv
ZGVjSUNVLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb2RlY0lDVTo6ZGVjb2RlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VzZXJEZWZpbmVkLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlRleHRDb2RlY1VzZXJEZWZpbmVkOjpkZWNvZGUpOgorICAgICAgICAqIHBsdWdp
bnMvRE9NTWltZVR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NTWltZVR5cGU6OnN1ZmZp
eGVzIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6Om5hbWUgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpsb2dMYXllckluZm8pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJM
aXN0TWFya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omxpc3RNYXJrZXJUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxpc3RNYXJrZXI6OnBhaW50KToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjYXBpdGFsaXplKToKKyAgICAg
ICAgKFdlYkNvcmU6Om1heFdvcmRGcmFnbWVudFdpZHRoKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVHJlZUFzVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpxdW90ZUFuZEVzY2FwZU5v
blByaW50YWJsZXMpOgorICAgICAgICAoV2ViQ29yZTo6bm9kZVBvc2l0aW9uKToKKyAgICAgICAg
KiByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJNYXRoTUxGZW5jZWQ6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNYXRoTUwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVHJlZUJ1aWxkZXI6Ok1hdGhNTDo6YXR0YWNoKToKKyAgICAgICAgKiBz
dmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGhM
aXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHTnVtYmVy
TGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0VmFsdWVzOjp2
YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFN0cmluZ0J1aWxkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFN0cmluZ0J1aWxkZXI6OnJlc3VsdCk6Cisg
ICAgICAgICogc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YnVp
bGRTdHJpbmdGcm9tUGF0aCk6CisgICAgICAgICogc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcgY29u
c3QpOgorICAgICAgICAqIHN2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1N0cmluZ0xpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAg
ICAqIHN2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1RyYW5zZm9ybUxpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2
Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1W
YWx1ZTo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZH
UHJvcGVydHlUcmFpdHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPEZs
b2F0UG9pbnQ+Ojp0b1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0
czxGbG9hdFJlY3Q+Ojp0b1N0cmluZyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpkdW1wTWFya2VyUmVjdHMpOgorICAgICAg
ICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpwYXJzZXJNZXRhRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OmdldEN1cnJlbnRDdXJzb3JJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsczo6bWVkaWFTZXNzaW9uUmVzdHJpY3Rpb25zIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6cGFnZU1lZGlhU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJu
YWxzOjpzY3JvbGxTbmFwT2Zmc2V0cyk6CisgICAgICAgICogdGVzdGluZy9Nb2NrUGFnZU92ZXJs
YXlDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1BhZ2VPdmVybGF5Q2xpZW50Ojpk
cmF3UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUGFnZU92ZXJsYXlDbGllbnQ6Om1vdXNl
RXZlbnQpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdExvYWRlcjo6c2NyaXB0KToKKyAgICAgICAgKiB4bWwv
WE1MRXJyb3JzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEVycm9yczo6aW5zZXJ0RXJyb3JN
ZXNzYWdlQmxvY2spOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6Z2V0QWxsUmVzcG9uc2VIZWFkZXJzIGNvbnN0KToK
KyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuaDoKKyAgICAgICAgKiB4bWwvWFBhdGhGdW5j
dGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OmF0b21pY1N1YnN0cmluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpYUGF0aDo6RnVuSWQ6OmV2YWx1YXRlIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlhQYXRoOjpGdW5Db25jYXQ6OmV2YWx1YXRlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlhQYXRoOjpGdW5UcmFuc2xhdGU6OmV2YWx1YXRlIGNvbnN0KToKKyAgICAgICAgKiB4
bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2F2ZVJlc3Vs
dFRvU3RyaW5nKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL0NoYXJhY3RlclJlZmVyZW5jZVBhcnNl
cklubGluZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OnVuY29uc3VtZUNoYXJhY3RlcnMpOgorCiAy
MDE4LTA1LTAxICBPbGVrc2FuZHIgU2thY2hrb3YgIDxnc2thY2hrb3ZAZ21haWwuY29tPgogCiAg
ICAgICAgIFdlYkFzc2VtYmx5OiBhZGQgc3VwcG9ydCBmb3Igc3RyZWFtIEFQSXMgLSBKYXZhU2Ny
aXB0IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2Nv
YS9QYXltZW50Q29udGFjdENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBh
eS9jb2NvYS9QYXltZW50Q29udGFjdENvY29hLm1tCmluZGV4IDNiZTYyMTAuLjA5Nzg0ZjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudENv
bnRhY3RDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L2NvY29h
L1BheW1lbnRDb250YWN0Q29jb2EubW0KQEAgLTE1NCw3ICsxNTQsMTAgQEAgc3RhdGljIFJldGFp
blB0cjxQS0NvbnRhY3Q+IGNvbnZlcnQodW5zaWduZWQgdmVyc2lvbiwgY29uc3QgQXBwbGVQYXlQ
YXltZW50Q29udGEKICAgICAgICAgfQogCiAgICAgICAgIC8vIEZJWE1FOiBTdHJpbmdCdWlsZGVy
IHNob3VsZCBoYXZhIGEgdG9OU1N0cmluZygpIGZ1bmN0aW9uIHRvIGF2b2lkIHRoZSBleHRyYSBT
dHJpbmcgYWxsb2NhdGlvbi4KLSAgICAgICAgW2FkZHJlc3Mgc2V0U3RyZWV0OmJ1aWxkZXIudG9T
dHJpbmcoKV07CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgICAgIFthZGRyZXNzIHNldFN0cmVldDoqc3RyaW5nXTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgQ1JBU0goKTsKIAogICAgICAgICBpZiAoIWNvbnRhY3Quc3ViTG9jYWxpdHku
aXNFbXB0eSgpKQogICAgICAgICAgICAgc2V0U3ViTG9jYWxpdHkoYWRkcmVzcy5nZXQoKSwgY29u
dGFjdC5zdWJMb2NhbGl0eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
dHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJp
ZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAKaW5kZXggOGU1MDY2ZC4uOWIzNjBhZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcApA
QCAtMjE2LDcgKzIxNiw5IEBAIHN0YXRpYyBTdHJpbmcgcmVzb2x2ZVJlbGF0aXZlVmlydHVhbFBh
dGgoU3RyaW5nVmlldyBiYXNlVmlydHVhbFBhdGgsIFN0cmluZ1ZpZXcKICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoJy8nKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoc2VnbWVudCk7CiAgICAgfQot
ICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiAvLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL2VudHJpZXMtYXBpLyNldmFsdWF0ZS1hLXBh
dGgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9j
YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlv
bi5jcHAKaW5kZXggZGNiZjcwMy4uNmNhYWM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKQEAgLTM0MCw3ICszNDAsMTAgQEAg
c3RhdGljIHZvaWQgbG9nRXJyb3IoY29uc3QgU3RyaW5nJiB0YXJnZXQsIGNvbnN0IGJvb2wgaXNT
ZWN1cmUsIGNvbnN0IGJvb2wgaXNNaXgKICAgICAKICAgICBtZXNzYWdlLmFwcGVuZCh0YXJnZXQp
OwogICAgIG1lc3NhZ2UuYXBwZW5kKCIuXG4iKTsKLSAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1l
c3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3Nh
Z2UudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWVzc2FnZS50b1N0cmluZygp
KQorICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2Vj
dXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAg
Q1JBU0goKTsKIH0KIAogLy8gRklYTUU6IHJlbW92ZSB0aGlzIGZ1bmN0aW9uIHdoZW4gcmRhcjov
L3Byb2JsZW0vMzIxMzc4MjEgaXMgZml4ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQktleURhdGEuY3BwCmluZGV4IDJlOTM2NDUuLjcyMTI5NzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwCkBAIC0zMzIs
NyArMzMyLDEwIEBAIFN0cmluZyBJREJLZXlEYXRhOjpsb2dnaW5nU3RyaW5nKCkgY29uc3QKICAg
ICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgIik7CiAgICAgICAgIH0KICAg
ICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgfSIpOwotICAgICAgICByZXN1bHQgPSBidWls
ZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgICAgIHJlc3VsdCA9ICpzdHJpbmc7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIENSQVNIKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEtleVR5cGU6
OkJpbmFyeTogewpAQCAtMzQyLDcgKzM0NSwxMCBAQCBTdHJpbmcgSURCS2V5RGF0YTo6bG9nZ2lu
Z1N0cmluZygpIGNvbnN0CiAgICAgICAgIGF1dG8qIGRhdGEgPSBXVEY6OmdldDxUaHJlYWRTYWZl
RGF0YUJ1ZmZlcj4obV92YWx1ZSkuZGF0YSgpOwogICAgICAgICBpZiAoIWRhdGEpIHsKICAgICAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIobnVsbCkiKTsKLSAgICAgICAgICAgIHJlc3VsdCA9IGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICByZXN1bHQgPSAqc3RyaW5nOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogCkBAIC0zNTMsNyArMzU5LDEwIEBAIFN0cmluZyBJREJLZXlEYXRhOjpsb2dnaW5n
U3RyaW5nKCkgY29uc3QKICAgICAgICAgaWYgKGRhdGEtPnNpemUoKSA+IDgpCiAgICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZCgiLi4uIik7CiAKLSAgICAgICAgcmVzdWx0ID0gYnVpbGRlci50b1N0
cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICByZXN1bHQgPSAqc3RyaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBD
UkFTSCgpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBLZXlUeXBlOjpTdHJpbmc6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlQYXRo
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBhdGguY3BwCmlu
ZGV4IDc2ZWJlYjMuLjhiOWZiMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQktleVBhdGguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQktleVBhdGguY3BwCkBAIC0yNDEsNyArMjQxLDkgQEAgU3RyaW5nIGxvZ2dpbmdT
dHJpbmcoY29uc3QgSURCS2V5UGF0aCYgcGF0aCkKICAgICAgICAgYnVpbGRlci5hcHBlbmQoc3Ry
aW5ncy5sYXN0KCkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgiID4iKTsKIAotICAgICAgICBy
ZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JB
U0goKTsKICAgICB9KTsKIAogICAgIHJldHVybiBXVEY6OnZpc2l0KHZpc2l0b3IsIHBhdGgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0luZGV4
VmFsdWVTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
SW5kZXhWYWx1ZVN0b3JlLmNwcAppbmRleCA2OTgzYzlkLi44MGQ2YjNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSW5kZXhWYWx1ZVN0b3JlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSW5kZXhWYWx1
ZVN0b3JlLmNwcApAQCAtNDA5LDcgKzQwOSw5IEBAIFN0cmluZyBJbmRleFZhbHVlU3RvcmU6Omxv
Z2dpbmdTdHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX3JlY29y
ZHMuZ2V0KGtleSktPmdldENvdW50KCkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwo
IiBlbnRyaWVzIik7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJDdXJzb3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1cnNvci5jcHAKaW5k
ZXggZjIwZGI4Ny4uYTRjMzBmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1cnNvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1cnNvci5jcHAKQEAgLTE0MSw3ICsx
NDEsOSBAQCBzdGF0aWMgU3RyaW5nIGJ1aWxkSW5kZXhTdGF0ZW1lbnQoY29uc3QgSURCS2V5UmFu
Z2VEYXRhJiBrZXlSYW5nZSwgSW5kZXhlZERCOjpDdQogCiAgICAgYnVpbGRlci5hcHBlbmQoJzsn
KTsKIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIGJ1aWxkT2JqZWN0U3RvcmVTdGF0ZW1lbnQoY29uc3Qg
SURCS2V5UmFuZ2VEYXRhJiBrZXlSYW5nZSwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24gY3Vy
c29yRGlyZWN0aW9uKQpAQCAtMTY5LDcgKzE3MSw5IEBAIHN0YXRpYyBTdHJpbmcgYnVpbGRPYmpl
Y3RTdG9yZVN0YXRlbWVudChjb25zdCBJREJLZXlSYW5nZURhdGEmIGtleVJhbmdlLCBJbmRleGVk
CiAKICAgICBidWlsZGVyLmFwcGVuZCgnOycpOwogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgU1FMaXRlSURCQ3Vyc29y
Ojplc3RhYmxpc2hTdGF0ZW1lbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VJbmZvLmNwcAppbmRleCBlNWRmMTVj
Li43NjkzNGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
aGFyZWQvSURCRGF0YWJhc2VJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VJbmZvLmNwcApAQCAtMTY5LDcgKzE2OSw5IEBAIFN0
cmluZyBJREJEYXRhYmFzZUluZm86OmxvZ2dpbmdTdHJpbmcoKSBjb25zdAogICAgICAgICBidWls
ZGVyLmFwcGVuZCgnXG4nKTsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCT2JqZWN0U3RvcmVJbmZvLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJPYmplY3RTdG9y
ZUluZm8uY3BwCmluZGV4IGIwMDc1ZmUuLjhkOGZhZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJPYmplY3RTdG9yZUlu
Zm8uY3BwCkBAIC0xNDgsNyArMTQ4LDkgQEAgU3RyaW5nIElEQk9iamVjdFN0b3JlSW5mbzo6bG9n
Z2luZ1N0cmluZyhpbnQgaW5kZW50KSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4n
KTsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIElEQk9iamVjdFN0b3JlSW5mbzo6Y29uZGVuc2VkTG9n
Z2luZ1N0cmluZygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCmluZGV4IDQyMDlm
ZmEuLjk2ZmViYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNz
aW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCkBAIC04OSw3ICs4OSw5
IEBAIHN0YXRpYyBTdHJpbmcgbWVkaWFQcm9kdWNlclN0YXRlU3RyaW5nKE1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGVGbGFncyBmbGFncykKICAgICBlbHNlCiAgICAgICAgIHN0cmluZy5yZXNpemUo
c3RyaW5nLmxlbmd0aCgpIC0gMik7CiAKLSAgICByZXR1cm4gc3RyaW5nLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyID0gc3RyaW5nLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
OworICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApAQCAtMzgxLDcgKzM4Myw5IEBAIFN0cmluZyBX
ZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjp0b1N0cmluZyhDb25maWd1cmF0aW9uVGFza3MgdGFza3Mp
CiAgICAgZWxzZQogICAgICAgICBzdHJpbmcucmVzaXplKHN0cmluZy5sZW5ndGgoKSAtIDIpOwog
ICAgIAotICAgIHJldHVybiBzdHJpbmcudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHIgPSBz
dHJpbmcudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHI7CisgICAgQ1JBU0goKTsKIH0K
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKaW5kZXggZGM1MWJiNS4uZGJlY2Q1ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVj
dGlvbkJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcApAQCAtNDAzLDcgKzQwMyw5IEBAIHN0YXRpYyBTdHJp
bmcgZmlsdGVySUNFQ2FuZGlkYXRlKFN0cmluZyYmIHNkcCkKICAgICAgICAgICAgIGZpbHRlcmVk
U0RQLmFwcGVuZCgnICcpOwogICAgICAgICBmaWx0ZXJlZFNEUC5hcHBlbmQoaXRlbSk7CiAgICAg
fSk7Ci0gICAgcmV0dXJuIGZpbHRlcmVkU0RQLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gZmlsdGVyZWRTRFAudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6ZmlsdGVyU0RQ
KFN0cmluZyYmIHNkcCkgY29uc3QKQEAgLTQyMSw3ICs0MjMsOSBAQCBTdHJpbmcgUGVlckNvbm5l
Y3Rpb25CYWNrZW5kOjpmaWx0ZXJTRFAoU3RyaW5nJiYgc2RwKSBjb25zdAogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICBmaWx0ZXJlZFNEUC5hcHBlbmQoJ1xuJyk7CiAgICAgfSk7Ci0gICAg
cmV0dXJuIGZpbHRlcmVkU0RQLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gZmls
dGVyZWRTRFAudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogdm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6Om5ld0lDRUNhbmRpZGF0ZShTdHJp
bmcmJiBzZHAsIFN0cmluZyYmIG1pZCwgdW5zaWduZWQgc2hvcnQgc2RwTUxpbmVJbmRleCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVw
bGFjZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVn
aW5SZXBsYWNlbWVudC5jcHAKaW5kZXggYzkxNzFkYy4uNDI3ZjRmZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNl
bWVudC5jcHAKQEAgLTMzMyw3ICszMzMsOSBAQCBTdHJpbmcgWW91VHViZVBsdWdpblJlcGxhY2Vt
ZW50Ojp5b3VUdWJlVVJMRnJvbUFic29sdXRlVVJMKGNvbnN0IFVSTCYgc3JjVVJMLCBjbwogICAg
ICAgICBmaW5hbFVSTC5hcHBlbmQoJz8nKTsKICAgICAgICAgZmluYWxVUkwuYXBwZW5kKHF1ZXJ5
KTsKICAgICB9Ci0gICAgcmV0dXJuIGZpbmFsVVJMLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gZmluYWxVUkwudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KICAgICAKIGJvb2wgWW91VHViZVBsdWdpblJlcGxhY2VtZW50OjpzdXBw
b3J0c1VSTChjb25zdCBVUkwmIHVybCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcAppbmRleCA4ZmRhNjJhLi45OGYzMDhk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
VHJhY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZVRyYWNrZXIuY3BwCkBAIC0zMjAsNyArMzIwLDkgQEAgc3RhdGljIFN0cmluZyBnZW5lcmF0
ZURhdGFiYXNlRmlsZU5hbWUoKQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGNyZWF0ZUNhbm9u
aWNhbFVVSURTdHJpbmcoKSk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIuZGIi
KTsKIAotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgRGF0YWJhc2VUcmFja2VyOjpmdWxsUGF0aEZv
ckRhdGFiYXNlTm9Mb2NrKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luLCBjb25zdCBT
dHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOb3RFeGlzdHMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCmluZGV4IDAyNDc3YjkuLmVhYjI1MzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3Bw
CkBAIC0xMDUsNyArMTA1LDkgQEAgc3RhdGljIFN0cmluZyBlbmNvZGVQcm90b2NvbFN0cmluZyhj
b25zdCBTdHJpbmcmIHByb3RvY29sKQogICAgICAgICBlbHNlCiAgICAgICAgICAgICBidWlsZGVy
LmFwcGVuZChwcm90b2NvbFtpXSk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIGpvaW5TdHJp
bmdzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzdHJpbmdzLCBjb25zdCBjaGFyKiBzZXBhcmF0b3Ip
CkBAIC0xMTYsNyArMTE4LDkgQEAgc3RhdGljIFN0cmluZyBqb2luU3RyaW5ncyhjb25zdCBWZWN0
b3I8U3RyaW5nPiYgc3RyaW5ncywgY29uc3QgY2hhciogc2VwYXJhdG9yKQogICAgICAgICAgICAg
YnVpbGRlci5hcHBlbmQoc2VwYXJhdG9yKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoc3RyaW5n
c1tpXSk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgdW5zaWduZWQgc2F0dXJhdGVBZGQodW5zaWduZWQg
YSwgdW5zaWduZWQgYikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcAppbmRleCBm
Y2M5ZGMzLi42YzQwYzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwCkBA
IC02OCw3ICs2OCw5IEBAIGNvbnN0IFN0cmluZyBXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVy
OjpjcmVhdGVIZWFkZXJWYWx1ZSgpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiLCAiKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQobV9wcm9jZXNzb3JzW2ldLT5oYW5kc2hh
a2VTdHJpbmcoKSk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIFdlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNo
ZXI6OmFwcGVuZEFjY2VwdGVkRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uVG9rZW4s
IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBleHRlbnNpb25QYXJhbWV0ZXJzKQpAQCAtMTM5LDcg
KzE0MSw5IEBAIFN0cmluZyBXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyOjphY2NlcHRlZEV4
dGVuc2lvbnMoKSBjb25zdAogewogICAgIGlmIChtX2FjY2VwdGVkRXh0ZW5zaW9uc0J1aWxkZXIu
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0gICAgcmV0dXJuIG1fYWNjZXB0
ZWRFeHRlbnNpb25zQnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBtX2FjY2VwdGVkRXh0ZW5zaW9uc0J1aWxkZXIudG9TdHJpbmdQcmVzZXJ2
ZUNhcGFjaXR5KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IFN0cmluZyBXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyOjpmYWlsdXJlUmVhc29uKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRIYW5kc2hha2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldEhhbmRzaGFrZS5jcHAKaW5kZXggNTQ1NWNkMS4uMDgzYTkwNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5j
cHAKQEAgLTcyLDEwICs3MiwxMyBAQCBzdGF0aWMgU3RyaW5nIHJlc291cmNlTmFtZShjb25zdCBV
UkwmIHVybCkKICAgICAgICAgbmFtZS5hcHBlbmQoJz8nKTsKICAgICAgICAgbmFtZS5hcHBlbmQo
dXJsLnF1ZXJ5KCkpOwogICAgIH0KLSAgICBTdHJpbmcgcmVzdWx0ID0gbmFtZS50b1N0cmluZygp
OwotICAgIEFTU0VSVCghcmVzdWx0LmlzRW1wdHkoKSk7Ci0gICAgQVNTRVJUKCFyZXN1bHQuY29u
dGFpbnMoJyAnKSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBu
YW1lLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9ICpzdHJpbmc7CisgICAg
ICAgIEFTU0VSVCghcmVzdWx0LmlzRW1wdHkoKSk7CisgICAgICAgIEFTU0VSVCghcmVzdWx0LmNv
bnRhaW5zKCcgJykpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICBDUkFTSCgp
OwogfQogCiBzdGF0aWMgU3RyaW5nIGhvc3ROYW1lKGNvbnN0IFVSTCYgdXJsLCBib29sIHNlY3Vy
ZSkKQEAgLTg3LDcgKzkwLDkgQEAgc3RhdGljIFN0cmluZyBob3N0TmFtZShjb25zdCBVUkwmIHVy
bCwgYm9vbCBzZWN1cmUpCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCc6Jyk7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kTnVtYmVyKHVybC5wb3J0KCkudmFsdWUoKSk7CiAgICAgfQotICAgIHJldHVy
biBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0
aWMgY29uc3Qgc2l6ZV90IG1heElucHV0U2FtcGxlU2l6ZSA9IDEyODsKQEAgLTE3Niw3ICsxODEs
OSBAQCBTdHJpbmcgV2ViU29ja2V0SGFuZHNoYWtlOjpjbGllbnRMb2NhdGlvbigpIGNvbnN0CiAg
ICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI6Ly8iKTsKICAgICBidWlsZGVyLmFwcGVuZChob3N0
TmFtZShtX3VybCwgbV9zZWN1cmUpKTsKICAgICBidWlsZGVyLmFwcGVuZChyZXNvdXJjZU5hbWUo
bV91cmwpKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogQ1N0cmluZyBXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudEhhbmRzaGFr
ZU1lc3NhZ2UoKSBjb25zdApAQCAtMjI2LDcgKzIzMyw5IEBAIENTdHJpbmcgV2ViU29ja2V0SGFu
ZHNoYWtlOjpjbGllbnRIYW5kc2hha2VNZXNzYWdlKCkgY29uc3QKIAogICAgIGJ1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiXHJcbiIpOwogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gc3RyaW5nLT51dGY4KCk7CisgICAgQ1JBU0goKTsKIH0KIAogUmVzb3VyY2VSZXF1ZXN0
IFdlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZW50SGFuZHNoYWtlUmVxdWVzdCgpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuY3BwCmluZGV4IGRiODU3NWUuLmM0YTI1MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCkBAIC0x
NzEzLDExICsxNzEzLDEzIEBAIHN0YXRpYyBib29sIHNob3VsZFVzZUFjY2Vzc2liaWxpdHlPYmpl
Y3RJbm5lclRleHQoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBY2NlCiAKIHN0YXRpYyBib29s
IHNob3VsZEFkZFNwYWNlQmVmb3JlQXBwZW5kaW5nTmV4dEVsZW1lbnQoU3RyaW5nQnVpbGRlciYg
YnVpbGRlciwgY29uc3QgU3RyaW5nJiBjaGlsZFRleHQpCiB7CisgICAgaWYgKGJ1aWxkZXIuZmFp
bGVkKCkpCisgICAgICAgIENSQVNIKCk7CisKICAgICBpZiAoIWJ1aWxkZXIubGVuZ3RoKCkgfHwg
IWNoaWxkVGV4dC5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAgLy8gV2Ug
ZG9uJ3QgbmVlZCB0byBhZGQgYW4gYWRkaXRpb25hbCBzcGFjZSBiZWZvcmUgb3IgYWZ0ZXIgYSBs
aW5lIGJyZWFrLgotICAgIHJldHVybiAhKGlzSFRNTExpbmVCcmVhayhjaGlsZFRleHRbMF0pIHx8
IGlzSFRNTExpbmVCcmVhayhidWlsZGVyW2J1aWxkZXIubGVuZ3RoKCkgLSAxXSkpOworICAgIHJl
dHVybiAhKGlzSFRNTExpbmVCcmVhayhjaGlsZFRleHRbMF0pIHx8IGlzSFRNTExpbmVCcmVhaygq
YnVpbGRlcltidWlsZGVyLmxlbmd0aCgpIC0gMV0pKTsKIH0KICAgICAKIHN0YXRpYyB2b2lkIGFw
cGVuZE5hbWVUb1N0cmluZ0J1aWxkZXIoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgY29uc3QgU3Ry
aW5nJiB0ZXh0KQpAQCAtMTc2OSw3ICsxNzcxLDkgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50KEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVtZW50TW8K
ICAgICAgICAgICAgIGFwcGVuZE5hbWVUb1N0cmluZ0J1aWxkZXIoYnVpbGRlciwgY2hpbGRUZXh0
KTsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpLnN0cmlwV2hpdGVTcGFj
ZSgpLnNpbXBsaWZ5V2hpdGVTcGFjZShpc0hUTUxTcGFjZUJ1dE5vdExpbmVCcmVhayk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gc3Ry
aW5nLT5zdHJpcFdoaXRlU3BhY2UoKS5zaW1wbGlmeVdoaXRlU3BhY2UoaXNIVE1MU3BhY2VCdXRO
b3RMaW5lQnJlYWspOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6dGl0bGUoKSBjb25zdApAQCAtMTk4NSw3ICsxOTg5LDkgQEAgU3RyaW5nIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0OjphY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25Gb3JDaGlsZHJlbigp
IGNvbnN0CiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIEFjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0OjphY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25Gb3JFbGVtZW50cyhWZWN0b3I8RWxlbWVu
dCo+ICZlbGVtZW50cykgY29uc3QKQEAgLTE5OTQsNyArMjAwMCw5IEBAIFN0cmluZyBBY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdDo6YWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uRm9yRWxlbWVudHMoVmVj
dG9yPEVsZW1lCiAgICAgdW5zaWduZWQgc2l6ZSA9IGVsZW1lbnRzLnNpemUoKTsKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQogICAgICAgICBhcHBlbmROYW1lVG9TdHJp
bmdCdWlsZGVyKGJ1aWxkZXIsIGFjY2Vzc2libGVOYW1lRm9yTm9kZShlbGVtZW50c1tpXSwgbm9k
ZSgpKSk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAKIFN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YXJpYURlc2NyaWJl
ZEJ5QXR0cmlidXRlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDE5MjgxNzIuLjdjOGQ5OGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmNwcApAQCAtMTM4OCw4ICsxMzg4LDEwIEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpz
dHJpbmdGb3JSYW5nZShSZWZQdHI8UmFuZ2U+IHJhbmdlKSBjb25zdAogICAgICAgICAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyKTsKICAgICAgICAgfQog
ICAgIH0KLSAgICAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworCisgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3RyaW5nRm9y
VmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2UmIHZpc2libGVQ
b3NpdGlvblJhbmdlKQpAQCAtMTQxNSw3ICsxNDE3LDkgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlP
YmplY3Q6OnN0cmluZ0ZvclZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3NpdGlv
blIKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBpbnQgQWNjZXNzaWJpbGl0eU9iamVjdDo6bGVu
Z3RoRm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2UmIHZp
c2libGVQb3NpdGlvblJhbmdlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ck1hYy5tbQppbmRleCBhMTAyZDM2Li45MzJkMTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYy5tbQpAQCAtMjQwOSw3ICsyNDA5LDkgQEAgLSAoTlNTdHJpbmcgKil2YWx1
ZURlc2NyaXB0aW9uRm9yTWV0ZXIKICAgICAgICAgaWYgKGJ1aWxkZXIubGVuZ3RoKCkpCiAgICAg
ICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgIik7CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKGdhdWdlUmVnaW9uVmFsdWUpOwotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAjZW5kaWYKICAg
ICByZXR1cm4gdmFsdWVEZXNjcmlwdGlvbjsKQEAgLTM4NzMsOCArMzg3NSwxMSBAQCBzdGF0aWMg
dm9pZCBmb3JtYXRGb3JEZWJ1Z2dlcihjb25zdCBWaXNpYmxlUG9zaXRpb25SYW5nZSYgcmFuZ2Us
IGNoYXIqIGJ1ZmZlciwgdQogICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCIgdG8gIik7CiAgICAg
cmFuZ2UuZW5kLmZvcm1hdEZvckRlYnVnZ2VyKGZvcm1hdCwgRm9ybWF0QnVmZmVyU2l6ZSk7CiAg
ICAgcmVzdWx0LmFwcGVuZChmb3JtYXQpOwotICAgIAotICAgIHN0cmxjcHkoYnVmZmVyLCByZXN1
bHQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBsZW5ndGgpOworCisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHN0cmxjcHkoYnVmZmVyLCBzdHJpbmct
PnV0ZjgoKS5kYXRhKCksIGxlbmd0aCk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29u
dmVydFN0cmluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0
U3RyaW5ncy5jcHAKaW5kZXggN2QyZGUxOC4uMWUwNGExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0U3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0U3RyaW5ncy5jcHAKQEAgLTkxLDcgKzkxLDkg
QEAgc3RhdGljIGlubGluZSBTdHJpbmcgc3RyaW5nVG9VU1ZTdHJpbmcoU3RyaW5nJiYgc3RyaW5n
KQogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGNvZGVQb2ludCk7CiAg
ICAgfQotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogU3RyaW5nIGlkZW50aWZpZXJUb1VTVlN0cmluZyhFeGVjU3RhdGUmLCBjb25zdCBJ
ZGVudGlmaWVyJiBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcAppbmRleCA4OTVhMzAwLi4wN2ZiNzM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRs
aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhh
bmRsaW5nLmNwcApAQCAtMjExLDcgKzIxMSw5IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgdGhyb3dB
cmd1bWVudE11c3RCZUVudW1FcnJvcihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6VGhyCiAg
ICAgYXBwZW5kQXJndW1lbnRNdXN0QmUoYnVpbGRlciwgYXJndW1lbnRJbmRleCwgYXJndW1lbnRO
YW1lLCBmdW5jdGlvbkludGVyZmFjZU5hbWUsIGZ1bmN0aW9uTmFtZSk7CiAgICAgYnVpbGRlci5h
cHBlbmRMaXRlcmFsKCJvbmUgb2Y6ICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKGV4cGVjdGVkVmFs
dWVzKTsKLSAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcigmc3RhdGUsIHNjb3BlLCBidWlsZGVy
LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoJnN0YXRlLCBzY29wZSwgKnN0cmluZyk7
CisgICAgQ1JBU0goKTsKIH0KIAogSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd0FyZ3VtZW50TXVz
dEJlRnVuY3Rpb25FcnJvcihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6VGhyb3dTY29wZSYg
c2NvcGUsIHVuc2lnbmVkIGFyZ3VtZW50SW5kZXgsIGNvbnN0IGNoYXIqIGFyZ3VtZW50TmFtZSwg
Y29uc3QgY2hhciogaW50ZXJmYWNlTmFtZSwgY29uc3QgY2hhciogZnVuY3Rpb25OYW1lKQpAQCAt
MjE5LDcgKzIyMSw5IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgdGhyb3dBcmd1bWVudE11c3RCZUZ1
bmN0aW9uRXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6CiAgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOwogICAgIGFwcGVuZEFyZ3VtZW50TXVzdEJlKGJ1aWxkZXIsIGFyZ3VtZW50SW5k
ZXgsIGFyZ3VtZW50TmFtZSwgaW50ZXJmYWNlTmFtZSwgZnVuY3Rpb25OYW1lKTsKICAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoImEgZnVuY3Rpb24iKTsKLSAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcigmc3RhdGUsIHNjb3BlLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoJnN0YXRlLCBzY29wZSwgKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogSlNDOjpFbmNv
ZGVkSlNWYWx1ZSB0aHJvd0FyZ3VtZW50VHlwZUVycm9yKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwg
SlNDOjpUaHJvd1Njb3BlJiBzY29wZSwgdW5zaWduZWQgYXJndW1lbnRJbmRleCwgY29uc3QgY2hh
ciogYXJndW1lbnROYW1lLCBjb25zdCBjaGFyKiBmdW5jdGlvbkludGVyZmFjZU5hbWUsIGNvbnN0
IGNoYXIqIGZ1bmN0aW9uTmFtZSwgY29uc3QgY2hhciogZXhwZWN0ZWRUeXBlKQpAQCAtMjI4LDcg
KzIzMiw5IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgdGhyb3dBcmd1bWVudFR5cGVFcnJvcihKU0M6
OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6VGhyb3dTY29wCiAgICAgYXBwZW5kQXJndW1lbnRNdXN0
QmUoYnVpbGRlciwgYXJndW1lbnRJbmRleCwgYXJndW1lbnROYW1lLCBmdW5jdGlvbkludGVyZmFj
ZU5hbWUsIGZ1bmN0aW9uTmFtZSk7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJhbiBpbnN0
YW5jZSBvZiAiKTsKICAgICBidWlsZGVyLmFwcGVuZChleHBlY3RlZFR5cGUpOwotICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUsIGJ1aWxkZXIudG9TdHJpbmcoKSk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcigmc3RhdGUsIHNjb3BlLCAqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwog
fQogCiB2b2lkIHRocm93QXR0cmlidXRlVHlwZUVycm9yKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwg
SlNDOjpUaHJvd1Njb3BlJiBzY29wZSwgY29uc3QgY2hhciogaW50ZXJmYWNlTmFtZSwgY29uc3Qg
Y2hhciogYXR0cmlidXRlTmFtZSwgY29uc3QgY2hhciogZXhwZWN0ZWRUeXBlKQpAQCAtMjQ1LDcg
KzI1MSw5IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgdGhyb3dSZXF1aXJlZE1lbWJlclR5cGVFcnJv
cihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6VGhyCiAgICAgYnVpbGRlci5hcHBlbmQobWVt
YmVyTmFtZSk7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgaXMgcmVxdWlyZWQgYW5kIG11
c3QgYmUgYW4gaW5zdGFuY2Ugb2YgIik7CiAgICAgYnVpbGRlci5hcHBlbmQoZXhwZWN0ZWRUeXBl
KTsKLSAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcigmc3RhdGUsIHNjb3BlLCBidWlsZGVyLnRv
U3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoJnN0YXRlLCBzY29wZSwgKnN0cmluZyk7Cisg
ICAgQ1JBU0goKTsKIH0KIAogSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd0NvbnN0cnVjdG9yU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dFVuYXZhaWxhYmxlRXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRl
LCBKU0M6OlRocm93U2NvcGUmIHNjb3BlLCBjb25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29tYmluZWRVUkxGaWx0
ZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmls
dGVycy5jcHAKaW5kZXggNzU1OGIyMi4uMjlkZTUwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY29udGVudGV4dGVuc2lvbnMvQ29tYmluZWRVUkxGaWx0ZXJzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db21iaW5lZFVSTEZpbHRlcnMuY3BwCkBAIC0xMDcs
NyArMTA3LDkgQEAgc3RhdGljIFN0cmluZyBwcmVmaXhUcmVlVmVydGV4VG9TdHJpbmcoY29uc3Qg
UHJlZml4VHJlZVZlcnRleCYgdmVydGV4LCBjb25zdCBIYXMKICAgICAgICAgfQogICAgIH0KICAg
ICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIHZvaWQgcmVjdXJzaXZlUHJpbnQo
Y29uc3QgUHJlZml4VHJlZVZlcnRleCYgdmVydGV4LCBjb25zdCBIYXNoTWFwPGNvbnN0IFByZWZp
eFRyZWVWZXJ0ZXgqLCBBY3Rpb25MaXN0PiYgYWN0aW9ucywgdW5zaWduZWQgZGVwdGgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb24u
Y3BwCmluZGV4IDYxMGUxYjguLjhlNTBmZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nv
bnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb24uY3BwCkBAIC0xMTAsOCArMTEwLDEx
IEBAIHZvaWQgQ29udGVudEV4dGVuc2lvbjo6Y29tcGlsZUdsb2JhbERpc3BsYXlOb25lU3R5bGVT
aGVldCgpCiAKICAgICBtX2dsb2JhbERpc3BsYXlOb25lU3R5bGVTaGVldCA9IFN0eWxlU2hlZXRD
b250ZW50czo6Y3JlYXRlKCk7CiAgICAgbV9nbG9iYWxEaXNwbGF5Tm9uZVN0eWxlU2hlZXQtPnNl
dElzVXNlclN0eWxlU2hlZXQodHJ1ZSk7Ci0gICAgaWYgKCFtX2dsb2JhbERpc3BsYXlOb25lU3R5
bGVTaGVldC0+cGFyc2VTdHJpbmcoY3NzLnRvU3RyaW5nKCkpKQotICAgICAgICBtX2dsb2JhbERp
c3BsYXlOb25lU3R5bGVTaGVldCA9IG51bGxwdHI7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gY3Nz
LnRvU3RyaW5nKCkpIHsKKyAgICAgICAgaWYgKCFtX2dsb2JhbERpc3BsYXlOb25lU3R5bGVTaGVl
dC0+cGFyc2VTdHJpbmcoKnN0cmluZykpCisgICAgICAgICAgICBtX2dsb2JhbERpc3BsYXlOb25l
U3R5bGVTaGVldCA9IG51bGxwdHI7CisgICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAg
ICAvLyBUaGVzZSBhY3Rpb25zIGRvbid0IG5lZWQgdG8gYmUgYXBwbGllZCBpbmRpdmlkdWFsbHkg
YW55IG1vcmUuIFRoZXkgd2lsbCBhbGwgYmUgYXBwbGllZCB0byBldmVyeSBwYWdlIGFzIGEgcHJl
Y29tcGlsZWQgc3R5bGUgc2hlZXQuCiAgICAgbV91bml2ZXJzYWxBY3Rpb25zV2l0aG91dENvbmRp
dGlvbnMucmVtb3ZlQWxsTWF0Y2hpbmcoaW5HbG9iYWxEaXNwbGF5Tm9uZVN0eWxlU2hlZXQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVu
c2lvbkNvbXBpbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRl
bnRFeHRlbnNpb25Db21waWxlci5jcHAKaW5kZXggNWUwMzVhNi4uNWMzN2VmYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBp
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0
ZW5zaW9uQ29tcGlsZXIuY3BwCkBAIC04MCw3ICs4MCwxMCBAQCBzdGF0aWMgdm9pZCByZXNvbHZl
UGVuZGluZ0Rpc3BsYXlOb25lQWN0aW9ucyhWZWN0b3I8U2VyaWFsaXplZEFjdGlvbkJ5dGU+JiBh
Y3RpbwogICAgIGZvciAoYXV0byYgcGVuZGluZ0Rpc3BsYXlOb25lQWN0aW9ucyA6IG1hcC52YWx1
ZXMoKSkgewogICAgICAgICB1aW50MzJfdCBhY3Rpb25Mb2NhdGlvbiA9IGFjdGlvbnMuc2l6ZSgp
OwogICAgICAgICBhY3Rpb25zLmFwcGVuZChzdGF0aWNfY2FzdDxTZXJpYWxpemVkQWN0aW9uQnl0
ZT4oQWN0aW9uVHlwZTo6Q1NTRGlzcGxheU5vbmVTZWxlY3RvcikpOwotICAgICAgICBzZXJpYWxp
emVTdHJpbmcoYWN0aW9ucywgcGVuZGluZ0Rpc3BsYXlOb25lQWN0aW9ucy5jb21iaW5lZFNlbGVj
dG9ycy50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcGVuZGluZ0Rpc3Bs
YXlOb25lQWN0aW9ucy5jb21iaW5lZFNlbGVjdG9ycy50b1N0cmluZygpKQorICAgICAgICAgICAg
c2VyaWFsaXplU3RyaW5nKGFjdGlvbnMsICpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBDUkFTSCgpOwogICAgICAgICBmb3IgKHVpbnQzMl90IGNsaWVudExvY2F0aW9uIDogcGVu
ZGluZ0Rpc3BsYXlOb25lQWN0aW9ucy5jbGllbnRMb2NhdGlvbnMpCiAgICAgICAgICAgICBhY3Rp
b25Mb2NhdGlvbnNbY2xpZW50TG9jYXRpb25dID0gYWN0aW9uTG9jYXRpb247CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lv
blN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVu
dEV4dGVuc2lvblN0eWxlU2hlZXQuY3BwCmluZGV4IGUyNGEzNjYuLmRlM2U4NTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25TdHls
ZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50
RXh0ZW5zaW9uU3R5bGVTaGVldC5jcHAKQEAgLTYwLDcgKzYwLDEwIEBAIGJvb2wgQ29udGVudEV4
dGVuc2lvblN0eWxlU2hlZXQ6OmFkZERpc3BsYXlOb25lU2VsZWN0b3IoY29uc3QgU3RyaW5nJiBz
ZWxlY3RvciwKICAgICBjc3MuYXBwZW5kKCd7Jyk7CiAgICAgY3NzLmFwcGVuZChDb250ZW50RXh0
ZW5zaW9uc0JhY2tlbmQ6OmRpc3BsYXlOb25lQ1NTUnVsZSgpKTsKICAgICBjc3MuYXBwZW5kKCd9
Jyk7Ci0gICAgbV9zdHlsZVNoZWV0LT5jb250ZW50cygpLnBhcnNlU3RyaW5nKGNzcy50b1N0cmlu
ZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBjc3MudG9TdHJpbmcoKSkKKyAgICAgICAgbV9z
dHlsZVNoZWV0LT5jb250ZW50cygpLnBhcnNlU3RyaW5nKCpzdHJpbmcpOworICAgIGVsc2UKKyAg
ICAgICAgQ1JBU0goKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVGVybS5oIGIvU291cmNlL1dlYkNvcmUvY29udGVu
dGV4dGVuc2lvbnMvVGVybS5oCmluZGV4IDBkNTE4MzMuLjZmMzE5NGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1Rlcm0uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jb250ZW50ZXh0ZW5zaW9ucy9UZXJtLmgKQEAgLTI0Niw3ICsyNDYsOSBAQCBpbmxpbmUgU3Ry
aW5nIFRlcm06OnRvU3RyaW5nKCkgY29uc3QKICAgICAgICAgfQogICAgICAgICBidWlsZGVyLmFw
cGVuZCgnXScpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChxdWFudGlmaWVyVG9TdHJpbmcobV9x
dWFudGlmaWVyKSk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICBjYXNlIFRlcm1UeXBlOjpH
cm91cDogewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CkBAIC0yNTUsNyArMjU3LDkg
QEAgaW5saW5lIFN0cmluZyBUZXJtOjp0b1N0cmluZygpIGNvbnN0CiAgICAgICAgICAgICBidWls
ZGVyLmFwcGVuZCh0ZXJtLnRvU3RyaW5nKCkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnKScp
OwogICAgICAgICBidWlsZGVyLmFwcGVuZChxdWFudGlmaWVyVG9TdHJpbmcobV9xdWFudGlmaWVy
KSk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuY3BwCmluZGV4IGExYTU5
N2IuLjJmMjVjOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NBbmltYXRpb25U
cmlnZ2VyU2Nyb2xsVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NBbmltYXRp
b25UcmlnZ2VyU2Nyb2xsVmFsdWUuY3BwCkBAIC00Myw3ICs0Myw5IEBAIFN0cmluZyBDU1NBbmlt
YXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAgICBy
ZXN1bHQuYXBwZW5kKG1fZW5kVmFsdWUtPmNzc1RleHQoKSk7CiAgICAgfQogICAgIHJlc3VsdC5h
cHBlbmQoJyknKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlOjplcXVh
bHMoY29uc3QgQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlJiBvdGhlcikgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQmFzaWNTaGFwZXMuY3BwCmluZGV4IDI0ZjIzMzQuLjE5MmEwNGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmNwcApAQCAtMTA3LDcgKzEwNyw5IEBAIHN0
YXRpYyBTdHJpbmcgYnVpbGRDaXJjbGVTdHJpbmcoY29uc3QgU3RyaW5nJiByYWRpdXMsIGNvbnN0
IFN0cmluZyYgY2VudGVyWCwgY29uCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2VudGVyWSk7CiAg
ICAgfQogICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCIpIik7Ci0gICAgcmV0dXJuIHJlc3VsdC50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQ1NTQmFzaWNT
aGFwZUNpcmNsZTo6Y3NzVGV4dCgpIGNvbnN0CkBAIC0xNjQsNyArMTY2LDkgQEAgc3RhdGljIFN0
cmluZyBidWlsZEVsbGlwc2VTdHJpbmcoY29uc3QgU3RyaW5nJiByYWRpdXNYLCBjb25zdCBTdHJp
bmcmIHJhZGl1c1ksIGMKICAgICAgICAgcmVzdWx0LmFwcGVuZChjZW50ZXJZKTsKICAgICB9CiAg
ICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIikiKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBDU1NCYXNpY1NoYXBlRWxs
aXBzZTo6Y3NzVGV4dCgpIGNvbnN0CkBAIC0yMjQsNyArMjI4LDkgQEAgc3RhdGljIFN0cmluZyBi
dWlsZFBhdGhTdHJpbmcoY29uc3QgV2luZFJ1bGUmIHdpbmRSdWxlLCBjb25zdCBTdHJpbmcmIHBh
dGgsIGNvbnMKICAgICAgICAgcmVzdWx0LmFwcGVuZChib3gpOwogICAgIH0KIAotICAgIHJldHVy
biByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5n
IENTU0Jhc2ljU2hhcGVQYXRoOjpjc3NUZXh0KCkgY29uc3QKQEAgLTI4MCw3ICsyODYsOSBAQCBz
dGF0aWMgU3RyaW5nIGJ1aWxkUG9seWdvblN0cmluZyhjb25zdCBXaW5kUnVsZSYgd2luZFJ1bGUs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JgogCiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwogCi0gICAg
cmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBT
dHJpbmcgQ1NTQmFzaWNTaGFwZVBvbHlnb246OmNzc1RleHQoKSBjb25zdApAQCAtMzc3LDcgKzM4
NSw5IEBAIHN0YXRpYyBTdHJpbmcgYnVpbGRJbnNldFN0cmluZyhjb25zdCBTdHJpbmcmIHRvcCwg
Y29uc3QgU3RyaW5nJiByaWdodCwgY29uc3QgU3RyCiAgICAgICAgIH0KICAgICB9CiAgICAgcmVz
dWx0LmFwcGVuZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIHVwZGF0ZUNvcm5lclJhZGl1
c1dpZHRoQW5kSGVpZ2h0KENTU1ByaW1pdGl2ZVZhbHVlKiBjb3JuZXIsIFN0cmluZyYgd2lkdGgs
IFN0cmluZyYgaGVpZ2h0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1
bGF0aW9uVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUu
Y3BwCmluZGV4IGI3NTgzMDEuLmI5MWMwZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDYWxjdWxhdGlvblZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2Fs
Y3VsYXRpb25WYWx1ZS5jcHAKQEAgLTE2Miw3ICsxNjIsOSBAQCBzdGF0aWMgU3RyaW5nIGJ1aWxk
Q3NzVGV4dChjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24pCiAgICAgcmVzdWx0LmFwcGVuZChleHBy
ZXNzaW9uKTsKICAgICBpZiAoZXhwcmVzc2lvbkhhc1NpbmdsZVRlcm0pCiAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBDU1NDYWxjVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBj
b25zdApAQCAtNTYzLDcgKzU2NSw5IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICAgICAgcmVz
dWx0LmFwcGVuZCgnKScpOwogCi0gICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAg
ICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBTdHJpbmcgY3Vz
dG9tQ1NTVGV4dCgpIGNvbnN0IGZpbmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IGVlYWU0MjYuLjFhNDRkOTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
CkBAIC0xNjkzLDcgKzE2OTMsOSBAQCBTdHJpbmcgQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
Ojpjc3NUZXh0KCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnOycpOwogICAgIH0KIAot
ICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1
bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogRXhjZXB0aW9uT3I8dm9pZD4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpzZXRDc3NU
ZXh0KGNvbnN0IFN0cmluZyYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jv
c3NmYWRlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNw
cAppbmRleCAxNzJjOTQ1Li4zNDNhMDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2Zh
ZGVWYWx1ZS5jcHAKQEAgLTEwMiw3ICsxMDIsOSBAQCBTdHJpbmcgQ1NTQ3Jvc3NmYWRlVmFsdWU6
OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCIsICIpOwog
ICAgIHJlc3VsdC5hcHBlbmQobV9wZXJjZW50YWdlVmFsdWUtPmNzc1RleHQoKSk7CiAgICAgcmVz
dWx0LmFwcGVuZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogRmxvYXRTaXplIENTU0Nyb3NzZmFkZVZhbHVlOjpmaXhlZFNp
emUoY29uc3QgUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q3Vyc29ySW1hZ2VWYWx1ZS5jcHAKaW5kZXggMWI2ZDdmMi4uMGVlZWUwOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcApAQCAtNjEsNyArNjEsOSBAQCBTdHJp
bmcgQ1NTQ3Vyc29ySW1hZ2VWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJyAnKTsKICAgICAgICAgcmVzdWx0LmFwcGVuZE51bWJlcihtX2hvdFNwb3Qu
eSgpKTsKICAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBTVkdDdXJzb3JFbGVtZW50KiBDU1NDdXJzb3JJbWFnZVZhbHVlOjp1
cGRhdGVDdXJzb3JFbGVtZW50KGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXN0b21JZGVudFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDdXN0b21JZGVudFZhbHVlLmNwcAppbmRleCAyNmQ2ZTNiLi5mNWVlYjc0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3VzdG9tSWRlbnRWYWx1ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1c3RvbUlkZW50VmFsdWUuY3BwCkBAIC01Niw3ICs1
Niw5IEBAIFN0cmluZyBDU1NDdXN0b21JZGVudFZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QK
ICAgICAgICAgcmV0dXJuIGdldFByb3BlcnR5TmFtZUF0b21pY1N0cmluZyhtX3Byb3BlcnR5SWQp
OwogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBzZXJpYWxpemVJZGVudGlmaWVyKG1f
c3RyaW5nLCBidWlsZGVyKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwCmluZGV4IDZhY2Y3NDQuLjIwMzE0MDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHAKQEAgLTUzLDcg
KzUzLDkgQEAgU3RyaW5nIENTU0ZpbHRlckltYWdlVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25z
dAogICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCIsICIpOwogICAgIHJlc3VsdC5hcHBlbmQobV9m
aWx0ZXJWYWx1ZS0+Y3NzVGV4dCgpKTsKICAgICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0gICAgcmV0
dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBGbG9h
dFNpemUgQ1NTRmlsdGVySW1hZ2VWYWx1ZTo6Zml4ZWRTaXplKGNvbnN0IFJlbmRlckVsZW1lbnQq
IHJlbmRlcmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVs
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VSdWxlLmNwcAppbmRleCAwZGRh
MWIyLi44NTk0NmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VS
dWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VSdWxlLmNwcApAQCAt
NTcsNyArNTcsOSBAQCBTdHJpbmcgQ1NTRm9udEZhY2VSdWxlOjpjc3NUZXh0KCkgY29uc3QKICAg
ICBpZiAoIWRlc2NzLmlzRW1wdHkoKSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICcpOwogICAg
IHJlc3VsdC5hcHBlbmQoJ30nKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgQ1NTRm9udEZhY2VSdWxlOjpyZWF0dGFjaChT
dHlsZVJ1bGVCYXNlJiBydWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Zv
bnRGYWNlU3JjVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFs
dWUuY3BwCmluZGV4IDgxZDhhNzUuLjJmMzQ2MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Rm9udEZhY2VTcmNWYWx1ZS5jcHAKQEAgLTgxLDcgKzgxLDkgQEAgU3RyaW5nIENTU0ZvbnRGYWNl
U3JjVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKG1f
Zm9ybWF0KTsKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwogICAgIH0KLSAgICByZXR1cm4g
cmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NT
Rm9udEZhY2VTcmNWYWx1ZTo6dHJhdmVyc2VTdWJyZXNvdXJjZXMoY29uc3QgV1RGOjpGdW5jdGlv
bjxib29sIChjb25zdCBDYWNoZWRSZXNvdXJjZSYpPiYgaGFuZGxlcikgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmVhdHVyZVZhbHVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250RmVhdHVyZVZhbHVlLmNwcAppbmRleCA3ZmYwN2YzLi40NzQ2MjJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZlYXR1cmVWYWx1ZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGZWF0dXJlVmFsdWUuY3BwCkBAIC01MCw3
ICs1MCw5IEBAIFN0cmluZyBDU1NGb250RmVhdHVyZVZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29u
c3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmRO
dW1iZXIobV92YWx1ZSk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU0ZvbnRGZWF0dXJlVmFsdWU6OmVx
dWFscyhjb25zdCBDU1NGb250RmVhdHVyZVZhbHVlJiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U3R5bGVSYW5nZVZhbHVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250U3R5bGVSYW5nZVZhbHVlLmNwcAppbmRleCAwY2RjZGJmLi5lYTY2
NmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFN0eWxlUmFuZ2VWYWx1
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTdHlsZVJhbmdlVmFsdWUuY3Bw
CkBAIC0zOSw3ICszOSw5IEBAIFN0cmluZyBDU1NGb250U3R5bGVSYW5nZVZhbHVlOjpjdXN0b21D
U1NUZXh0KCkgY29uc3QKICAgICBidWlsZGVyLmFwcGVuZChmb250U3R5bGVWYWx1ZS0+Y3NzVGV4
dCgpKTsKICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG9ibGlx
dWVWYWx1ZXMtPmNzc1RleHQoKSk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTRm9udFN0eWxlUmFuZ2VWYWx1ZTo6
ZXF1YWxzKGNvbnN0IENTU0ZvbnRTdHlsZVJhbmdlVmFsdWUmIG90aGVyKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTdHlsZVZhbHVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250U3R5bGVWYWx1ZS5jcHAKaW5kZXggMjg1MGUyMy4uOGM0ZTg1NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTdHlsZVZhbHVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFN0eWxlVmFsdWUuY3BwCkBAIC0zOSw3ICszOSw5
IEBAIFN0cmluZyBDU1NGb250U3R5bGVWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAg
YnVpbGRlci5hcHBlbmQoZm9udFN0eWxlVmFsdWUtPmNzc1RleHQoKSk7CiAgICAgYnVpbGRlci5h
cHBlbmQoJyAnKTsKICAgICBidWlsZGVyLmFwcGVuZChvYmxpcXVlVmFsdWUtPmNzc1RleHQoKSk7
Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIGJvb2wgQ1NTRm9udFN0eWxlVmFsdWU6OmVxdWFscyhjb25zdCBDU1NGb250U3R5bGVW
YWx1ZSYgb3RoZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250VmFsdWUuY3BwCmluZGV4IDc2
NmMxMTMuLjFjZjc4YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250VmFs
dWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250VmFsdWUuY3BwCkBAIC02NSw3
ICs2NSw5IEBAIFN0cmluZyBDU1NGb250VmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAg
ICAgICByZXN1bHQuYXBwZW5kKGZhbWlseS0+Y3NzVGV4dCgpKTsKICAgICB9CiAKLSAgICByZXR1
cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wg
Q1NTRm9udFZhbHVlOjplcXVhbHMoY29uc3QgQ1NTRm9udFZhbHVlJiBvdGhlcikgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHAKaW5kZXggNzJkZGMx
YS4uNGY5MjVhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYXJpYXRp
b25WYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYXJpYXRpb25WYWx1
ZS5jcHAKQEAgLTQ4LDcgKzQ4LDkgQEAgU3RyaW5nIENTU0ZvbnRWYXJpYXRpb25WYWx1ZTo6Y3Vz
dG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGMpOwogICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiXCIgIik7CiAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV92YWx1
ZSk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIGJvb2wgQ1NTRm9udFZhcmlhdGlvblZhbHVlOjplcXVhbHMoY29uc3QgQ1NTRm9u
dFZhcmlhdGlvblZhbHVlJiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGdW5jdGlvblZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGdW5jdGlv
blZhbHVlLmNwcAppbmRleCA3NWVmMGMxLi5iYmRkZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0Z1bmN0aW9uVmFsdWUuY3BwCkBAIC0zNyw3ICszNyw5IEBAIFN0cmluZyBDU1NGdW5jdGlvblZh
bHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICByZXN1bHQuYXBwZW5kKCcoJyk7CiAgICAg
cmVzdWx0LmFwcGVuZChDU1NWYWx1ZUxpc3Q6OmN1c3RvbUNTU1RleHQoKSk7CiAgICAgcmVzdWx0
LmFwcGVuZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dy
YWRpZW50VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3Bw
CmluZGV4IDE3MWQ0NzI2Li5lMTQ0M2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTR3JhZGllbnRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50
VmFsdWUuY3BwCkBAIC03MDEsNyArNzAxLDkgQEAgU3RyaW5nIENTU0xpbmVhckdyYWRpZW50VmFs
dWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIH0KIAogICAgIHJlc3VsdC5hcHBlbmQoJykn
KTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
cmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIC8vIENvbXB1dGUgdGhlIGVuZHBvaW50cyBzbyB0aGF0IGEgZ3JhZGllbnQgb2YgdGhl
IGdpdmVuIGFuZ2xlIGNvdmVycyBhIGJveCBvZiB0aGUgZ2l2ZW4gc2l6ZS4KQEAgLTEwMTksNyAr
MTAyMSw5IEBAIFN0cmluZyBDU1NSYWRpYWxHcmFkaWVudFZhbHVlOjpjdXN0b21DU1NUZXh0KCkg
Y29uc3QKICAgICB9CiAKICAgICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIHJlc3Vs
dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBmbG9hdCBDU1NSYWRp
YWxHcmFkaWVudFZhbHVlOjpyZXNvbHZlUmFkaXVzKENTU1ByaW1pdGl2ZVZhbHVlJiByYWRpdXMs
IGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmIGNvbnZlcnNpb25EYXRhLCBmbG9hdCog
d2lkdGhPckhlaWdodCkKQEAgLTEzNDcsNyArMTM1MSw5IEBAIFN0cmluZyBDU1NDb25pY0dyYWRp
ZW50VmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIH0KICAgICAKICAgICByZXN1bHQu
YXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBSZWY8R3JhZGllbnQ+IENTU0NvbmljR3JhZGllbnRWYWx1ZTo6Y3Jl
YXRlR3JhZGllbnQoUmVuZGVyRWxlbWVudCYsIGNvbnN0IEZsb2F0U2l6ZSYpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZEF1dG9SZXBlYXRWYWx1ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTR3JpZEF1dG9SZXBlYXRWYWx1ZS5jcHAKaW5kZXggZDViYzQ0OS4uZmQ3
OTBkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRBdXRvUmVwZWF0VmFs
dWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNw
cApAQCAtNDMsNyArNDMsOSBAQCBTdHJpbmcgQ1NTR3JpZEF1dG9SZXBlYXRWYWx1ZTo6Y3VzdG9t
Q1NTVGV4dCgpIGNvbnN0CiAgICAgcmVzdWx0LmFwcGVuZCgiLCAiKTsKICAgICByZXN1bHQuYXBw
ZW5kKENTU1ZhbHVlTGlzdDo6Y3VzdG9tQ1NTVGV4dCgpKTsKICAgICByZXN1bHQuYXBwZW5kKCcp
Jyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAKaW5kZXggZTBiNzg2NS4uOGJjM2ZmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcApA
QCAtODAsNyArODAsOSBAQCBTdHJpbmcgQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZTo6Y3VzdG9t
Q1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIGlmIChyb3cgIT0gbV9yb3dDb3VudCAtIDEpCiAgICAg
ICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDU1NHcmlkVGVt
cGxhdGVBcmVhc1ZhbHVlOjplcXVhbHMoY29uc3QgQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZSYg
b3RoZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRW
YWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKaW5kZXgg
YTk3ZGMyMS4uZTM3NTBhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdl
U2V0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNw
cApAQCAtMTQ2LDcgKzE0Niw5IEBAIFN0cmluZyBDU1NJbWFnZVNldFZhbHVlOjpjdXN0b21DU1NU
ZXh0KCkgY29uc3QKICAgICB9CiAKICAgICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJu
IHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENT
U0ltYWdlU2V0VmFsdWU6OnRyYXZlcnNlU3VicmVzb3VyY2VzKGNvbnN0IFdURjo6RnVuY3Rpb248
Ym9vbCAoY29uc3QgQ2FjaGVkUmVzb3VyY2UmKT4mIGhhbmRsZXIpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTSW1wb3J0UnVsZS5jcHAKaW5kZXggNGM2NjYxMy4uZjlhYWVlYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NJbXBvcnRSdWxlLmNwcApAQCAtNzIsNyArNzIsOSBAQCBTdHJpbmcgQ1NTSW1wb3J0
UnVsZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgfQogICAgIHJlc3VsdC5hcHBlbmQoJzsnKTsKICAg
ICAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
cmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIENTU1N0eWxlU2hlZXQqIENTU0ltcG9ydFJ1bGU6OnN0eWxlU2hlZXQoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lUnVsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVSdWxlLmNwcAppbmRleCA4MWU5OTU4Li5kY2EzZjcz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVSdWxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVSdWxlLmNwcApAQCAtNjcsNyArNjcsOSBA
QCBTdHJpbmcgU3R5bGVSdWxlS2V5ZnJhbWU6OmtleVRleHQoKSBjb25zdAogICAgICAgICBrZXlU
ZXh0LmFwcGVuZCgnJScpOwogICAgIH0KIAotICAgIHJldHVybiBrZXlUZXh0LnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0ga2V5VGV4dC50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogICAgIAogYm9vbCBTdHlsZVJ1bGVLZXlmcmFt
ZTo6c2V0S2V5VGV4dChjb25zdCBTdHJpbmcmIGtleVRleHQpCkBAIC05MCw3ICs5Miw5IEBAIFN0
cmluZyBTdHlsZVJ1bGVLZXlmcmFtZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgaWYgKCFkZWNscy5p
c0VtcHR5KCkpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAnKTsKICAgICByZXN1bHQuYXBwZW5k
KCd9Jyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBDU1NLZXlmcmFtZVJ1bGU6OkNTU0tleWZyYW1lUnVsZShTdHlsZVJ1bGVLZXlm
cmFtZSYga2V5ZnJhbWUsIENTU0tleWZyYW1lc1J1bGUqIHBhcmVudCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZXNSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NLZXlmcmFtZXNSdWxlLmNwcAppbmRleCA5ZjAwMGQ5Li43N2IxODI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVzUnVsZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0tleWZyYW1lc1J1bGUuY3BwCkBAIC0xOTgsNyArMTk4LDkgQEAgU3RyaW5n
IENTU0tleWZyYW1lc1J1bGU6OmNzc1RleHQoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5k
KCdcbicpOwogICAgIH0KICAgICByZXN1bHQuYXBwZW5kKCd9Jyk7Ci0gICAgcmV0dXJuIHJlc3Vs
dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB1bnNpZ25lZCBDU1NL
ZXlmcmFtZXNSdWxlOjpsZW5ndGgoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0xpbmVCb3hDb250YWluVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xp
bmVCb3hDb250YWluVmFsdWUuY3BwCmluZGV4IDE5ZmRmOGIuLjNkZWIzYmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMaW5lQm94Q29udGFpblZhbHVlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTTGluZUJveENvbnRhaW5WYWx1ZS5jcHAKQEAgLTczLDcgKzczLDkg
QEAgU3RyaW5nIENTU0xpbmVCb3hDb250YWluVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAog
ICAgICAgICB0ZXh0LmFwcGVuZExpdGVyYWwoImluaXRpYWwtbGV0dGVyIik7CiAgICAgfQogCi0g
ICAgcmV0dXJuIHRleHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0ZXh0LnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNYXJrdXAuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU01hcmt1cC5jcHAKaW5kZXggODFmZTg4OC4uNjA5YzcxMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU01hcmt1cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU01hcmt1cC5jcHAKQEAgLTE4Niw3ICsxODYsOSBAQCBTdHJpbmcgc2VyaWFsaXplU3Ry
aW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
ICAgICBzZXJpYWxpemVTdHJpbmcoc3RyaW5nLCBidWlsZGVyKTsKLSAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIHNlcmlh
bGl6ZVVSTChjb25zdCBTdHJpbmcmIHN0cmluZykKQEAgLTIwNCw3ICsyMDYsOSBAQCBTdHJpbmcg
c2VyaWFsaXplQXNTdHJpbmdPckN1c3RvbUlkZW50KGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAg
IGlmIChpc0NTU1Rva2VuaXplcklkZW50aWZpZXIoc3RyaW5nKSkgewogICAgICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIHNlcmlhbGl6ZUlkZW50aWZpZXIoc3RyaW5nLCBidWls
ZGVyKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIHJldHVybiBzZXJpYWxpemVTdHJpbmco
c3RyaW5nKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5jcHAKaW5kZXggYjA5NGVkZC4u
MTc0ZjVhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5jcHAKQEAgLTU3LDcgKzU3LDkg
QEAgU3RyaW5nIENTU01lZGlhUnVsZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgcmVzdWx0LmFwcGVu
ZExpdGVyYWwoInsgXG4iKTsKICAgICBhcHBlbmRDc3NUZXh0Rm9ySXRlbXMocmVzdWx0KTsKICAg
ICByZXN1bHQuYXBwZW5kKCd9Jyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBNZWRpYUxpc3QqIENTU01lZGlhUnVsZTo6bWVkaWEo
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU05hbWVzcGFjZVJ1bGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU05hbWVzcGFjZVJ1bGUuY3BwCmluZGV4IDNkM2Vj
NmYuLjcwNjg5NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NOYW1lc3BhY2VS
dWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTmFtZXNwYWNlUnVsZS5jcHAKQEAg
LTYwLDcgKzYwLDkgQEAgU3RyaW5nIENTU05hbWVzcGFjZVJ1bGU6OmNzc1RleHQoKSBjb25zdAog
ICAgIHJlc3VsdC5hcHBlbmQoInVybCgiKTsKICAgICByZXN1bHQuYXBwZW5kKHNlcmlhbGl6ZVN0
cmluZyhuYW1lc3BhY2VVUkkoKSkpOwogICAgIHJlc3VsdC5hcHBlbmQoIik7Iik7Ci0gICAgcmV0
dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lk
IENTU05hbWVzcGFjZVJ1bGU6OnJlYXR0YWNoKFN0eWxlUnVsZUJhc2UmKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhZ2VSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYWdlUnVsZS5jcHAKaW5kZXggNDdjZjQ1Ni4uZTY5ZGE1YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhZ2VSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFnZVJ1bGUuY3BwCkBAIC02NCw3ICs2NCw5IEBAIFN0cmluZyBDU1NQYWdlUnVsZTo6c2VsZWN0
b3JUZXh0KCkgY29uc3QKICAgICAgICAgICAgIHRleHQuYXBwZW5kKHBhZ2VTcGVjaWZpY2F0aW9u
KTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gdGV4dC50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IHRleHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBDU1NQYWdlUnVsZTo6c2V0U2VsZWN0b3JUZXh0KGNv
bnN0IFN0cmluZyYgc2VsZWN0b3JUZXh0KQpAQCAtOTAsNyArOTIsOSBAQCBTdHJpbmcgQ1NTUGFn
ZVJ1bGU6OmNzc1RleHQoKSBjb25zdAogICAgIGlmICghZGVjbHMuaXNFbXB0eSgpKQogICAgICAg
ICByZXN1bHQuYXBwZW5kKCcgJyk7CiAgICAgcmVzdWx0LmFwcGVuZCgnfScpOwotICAgIHJldHVy
biByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBD
U1NQYWdlUnVsZTo6cmVhdHRhY2goU3R5bGVSdWxlQmFzZSYgcnVsZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCmluZGV4IGE3NjEyNzYuLjgzZTE2ZTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcApAQCAtMTA0NSw3ICsxMDQ1LDkgQEAg
QUxXQVlTX0lOTElORSBTdHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6OmZvcm1hdE51bWJlckZvckN1
c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKFN0cmluZyhtX3ZhbHVl
LnN0cmluZykpOwogICAgICAgICByZXN1bHQuYXBwZW5kKCcpJyk7CiAKLSAgICAgICAgcmV0dXJu
IHJlc3VsdC50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9T
dHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwog
ICAgIH0KICAgICBjYXNlIENTU19DT1VOVEVSX05BTUU6CiAgICAgICAgIHJldHVybiAiY291bnRl
cigiICsgU3RyaW5nKG1fdmFsdWUuc3RyaW5nKSArICcpJzsKQEAgLTEwNjksNyArMTA3MSw5IEBA
IEFMV0FZU19JTkxJTkUgU3RyaW5nIENTU1ByaW1pdGl2ZVZhbHVlOjpmb3JtYXROdW1iZXJGb3JD
dXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgfQogICAgICAgICByZXN1bHQuYXBwZW5kKCcp
Jyk7CiAKLSAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0
byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICBjYXNlIENTU19SRUNUOgogICAgICAgICBy
ZXR1cm4gcmVjdFZhbHVlKCktPmNzc1RleHQoKTsKQEAgLTExMTIsNyArMTExNiw5IEBAIEFMV0FZ
U19JTkxJTkUgU3RyaW5nIENTU1ByaW1pdGl2ZVZhbHVlOjpmb3JtYXROdW1iZXJGb3JDdXN0b21D
U1NUZXh0KCkgY29uc3QKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQo
JyknKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAg
ICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogI2VuZGlmCiAgICAgY2FzZSBD
U1NfQ0FMQzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eVNvdXJj
ZURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5U291cmNlRGF0YS5jcHAK
aW5kZXggNzViNzk5MC4uZmQyZTgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1Byb3BlcnR5U291cmNlRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3Bl
cnR5U291cmNlRGF0YS5jcHAKQEAgLTk2LDcgKzk2LDkgQEAgU3RyaW5nIENTU1Byb3BlcnR5U291
cmNlRGF0YTo6dG9TdHJpbmcoKSBjb25zdAogICAgIGlmIChpbXBvcnRhbnQpCiAgICAgICAgIHJl
c3VsdC5hcHBlbmRMaXRlcmFsKCIgIWltcG9ydGFudCIpOwogICAgIHJlc3VsdC5hcHBlbmQoJzsn
KTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
cmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIHVuc2lnbmVkIENTU1Byb3BlcnR5U291cmNlRGF0YTo6aGFzaCgpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1NlbGVjdG9yLmNwcAppbmRleCAxZmU0MmNkLi41NmJmYzJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTZWxlY3Rvci5jcHAKQEAgLTcyNiwyNiArNzI2LDMxIEBAIFN0cmluZyBDU1NTZWxl
Y3Rvcjo6c2VsZWN0b3JUZXh0KGNvbnN0IFN0cmluZyYgcmlnaHRTaWRlKSBjb25zdAogICAgICAg
ICBjcyA9IGNzLT50YWdIaXN0b3J5KCk7CiAgICAgfQogCisgICAgU3RyaW5nIHN0cmluZzsKKyAg
ICBpZiAoYXV0byBzID0gc3RyLnRvU3RyaW5nKCkpCisgICAgICAgIHN0cmluZyA9ICpzOworICAg
IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICBpZiAoY29uc3QgQ1NTU2VsZWN0b3IqIHRhZ0hp
c3RvcnkgPSBjcy0+dGFnSGlzdG9yeSgpKSB7CiAgICAgICAgIHN3aXRjaCAoY3MtPnJlbGF0aW9u
KCkpIHsKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6RGVzY2VuZGFudFNwYWNlOgotICAgICAg
ICAgICAgcmV0dXJuIHRhZ0hpc3RvcnktPnNlbGVjdG9yVGV4dCgiICIgKyBzdHIudG9TdHJpbmco
KSArIHJpZ2h0U2lkZSk7CisgICAgICAgICAgICByZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0b3JU
ZXh0KCIgIiArIHN0cmluZyArIHJpZ2h0U2lkZSk7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OkNoaWxkOgotICAgICAgICAgICAgcmV0dXJuIHRhZ0hpc3RvcnktPnNlbGVjdG9yVGV4dCgiID4g
IiArIHN0ci50b1N0cmluZygpICsgcmlnaHRTaWRlKTsKKyAgICAgICAgICAgIHJldHVybiB0YWdI
aXN0b3J5LT5zZWxlY3RvclRleHQoIiA+ICIgKyBzdHJpbmcgKyByaWdodFNpZGUpOwogICAgICAg
ICBjYXNlIENTU1NlbGVjdG9yOjpEaXJlY3RBZGphY2VudDoKLSAgICAgICAgICAgIHJldHVybiB0
YWdIaXN0b3J5LT5zZWxlY3RvclRleHQoIiArICIgKyBzdHIudG9TdHJpbmcoKSArIHJpZ2h0U2lk
ZSk7CisgICAgICAgICAgICByZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0b3JUZXh0KCIgKyAiICsg
c3RyaW5nICsgcmlnaHRTaWRlKTsKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6SW5kaXJlY3RB
ZGphY2VudDoKLSAgICAgICAgICAgIHJldHVybiB0YWdIaXN0b3J5LT5zZWxlY3RvclRleHQoIiB+
ICIgKyBzdHIudG9TdHJpbmcoKSArIHJpZ2h0U2lkZSk7CisgICAgICAgICAgICByZXR1cm4gdGFn
SGlzdG9yeS0+c2VsZWN0b3JUZXh0KCIgfiAiICsgc3RyaW5nICsgcmlnaHRTaWRlKTsKICAgICAg
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6U3Vic2VsZWN0b3I6CiAgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICNpZiBBU1NFUlRfRElTQUJMRUQKICAgICAgICAgICAgIEZBTExUSFJPVUdI
OwogI2VuZGlmCiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRhbnQ6Ci0g
ICAgICAgICAgICByZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0b3JUZXh0KHN0ci50b1N0cmluZygp
ICsgcmlnaHRTaWRlKTsKKyAgICAgICAgICAgIHJldHVybiB0YWdIaXN0b3J5LT5zZWxlY3RvclRl
eHQoc3RyaW5nICsgcmlnaHRTaWRlKTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gc3Ry
LnRvU3RyaW5nKCkgKyByaWdodFNpZGU7CisgICAgcmV0dXJuIHN0cmluZyArIHJpZ2h0U2lkZTsK
IH0KIAogdm9pZCBDU1NTZWxlY3Rvcjo6c2V0QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHZhbHVlLCBib29sIGlzQ2FzZUluc2Vuc2l0aXZlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0
b3JMaXN0LmNwcAppbmRleCA1N2VmYTY3Li5hZTMzMDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U2VsZWN0b3JMaXN0LmNwcApAQCAtMTM4LDcgKzEzOCw5IEBAIFN0cmluZyBDU1NTZWxlY3Rvckxp
c3Q6OnNlbGVjdG9yc1RleHQoKSBjb25zdAogewogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0Owog
ICAgIGJ1aWxkU2VsZWN0b3JzVGV4dChyZXN1bHQpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBDU1NTZWxlY3Rvckxpc3Q6
OmJ1aWxkU2VsZWN0b3JzVGV4dChTdHJpbmdCdWlsZGVyJiBzdHJpbmdCdWlsZGVyKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NoYWRvd1ZhbHVlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTaGFkb3dWYWx1ZS5jcHAKaW5kZXggOTQ5NDdkNy4uZTI5Yzg1ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NoYWRvd1ZhbHVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2hhZG93VmFsdWUuY3BwCkBAIC02OSw3ICs2OSw5IEBAIFN0
cmluZyBDU1NTaGFkb3dWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIHRleHQu
YXBwZW5kKHN0eWxlLT5jc3NUZXh0KCkpOwogICAgIH0KIAotICAgIHJldHVybiB0ZXh0LnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdGV4dC50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU1NoYWRvd1ZhbHVlOjpl
cXVhbHMoY29uc3QgQ1NTU2hhZG93VmFsdWUmIG90aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVSdWxlLmNwcAppbmRleCBiYjhkMjFjLi41ODA4ZmQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVSdWxlLmNwcApAQCAtMTIwLDcgKzEyMCw5IEBAIFN0cmluZyBDU1NTdHlsZVJ1bGU6OmNz
c1RleHQoKSBjb25zdAogICAgIGlmICghZGVjbHMuaXNFbXB0eSgpKQogICAgICAgICByZXN1bHQu
YXBwZW5kKCcgJyk7CiAgICAgcmVzdWx0LmFwcGVuZCgnfScpOwotICAgIHJldHVybiByZXN1bHQu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBDU1NTdHlsZVJ1
bGU6OnJlYXR0YWNoKFN0eWxlUnVsZUJhc2UmIHJ1bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVT
aGVldC5jcHAKaW5kZXggMWVjYzViYS4uODY5ODRmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZVNoZWV0LmNwcApAQCAtMzE2LDkgKzMxNiwxMiBAQCBFeGNlcHRpb25PcjxpbnQ+IENTU1N0eWxl
U2hlZXQ6OmFkZFJ1bGUoY29uc3QgU3RyaW5nJiBzZWxlY3RvciwgY29uc3QgU3RyaW5nJiBzdAog
ICAgIGlmICghc3R5bGUuaXNFbXB0eSgpKQogICAgICAgICB0ZXh0LmFwcGVuZCgnICcpOwogICAg
IHRleHQuYXBwZW5kKCd9Jyk7Ci0gICAgYXV0byBpbnNlcnRSdWxlUmVzdWx0ID0gaW5zZXJ0UnVs
ZSh0ZXh0LnRvU3RyaW5nKCksIGluZGV4LnZhbHVlX29yKGxlbmd0aCgpKSk7Ci0gICAgaWYgKGlu
c2VydFJ1bGVSZXN1bHQuaGFzRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBpbnNlcnRSdWxl
UmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0ZXh0LnRv
U3RyaW5nKCkpIHsKKyAgICAgICAgYXV0byBpbnNlcnRSdWxlUmVzdWx0ID0gaW5zZXJ0UnVsZSgq
c3RyaW5nLCBpbmRleC52YWx1ZV9vcihsZW5ndGgoKSkpOworICAgICAgICBpZiAoaW5zZXJ0UnVs
ZVJlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBpbnNlcnRSdWxlUmVz
dWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICB9IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAg
ICAKICAgICAvLyBBcyBwZXIgTWljcm9zb2Z0IGRvY3VtZW50YXRpb24sIGFsd2F5cyByZXR1cm4g
LTEuCiAgICAgcmV0dXJuIC0xOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1
cHBvcnRzUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3VwcG9ydHNSdWxlLmNwcApp
bmRleCBlMTNlMTNiLi5mY2JlMzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U3VwcG9ydHNSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3VwcG9ydHNSdWxl
LmNwcApAQCAtNTAsNyArNTAsOSBAQCBTdHJpbmcgQ1NTU3VwcG9ydHNSdWxlOjpjc3NUZXh0KCkg
Y29uc3QKICAgICBhcHBlbmRDc3NUZXh0Rm9ySXRlbXMocmVzdWx0KTsKICAgICByZXN1bHQuYXBw
ZW5kKCd9Jyk7CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIFN0cmluZyBDU1NTdXBwb3J0c1J1bGU6OmNvbmRpdGlvblRleHQoKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RpbWluZ0Z1bmN0aW9uVmFs
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuY3BwCmlu
ZGV4IDkwZWY2Y2QuLjA5Mjg4MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NU
aW1pbmdGdW5jdGlvblZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVGltaW5n
RnVuY3Rpb25WYWx1ZS5jcHAKQEAgLTQyLDcgKzQyLDkgQEAgU3RyaW5nIENTU0N1YmljQmV6aWVy
VGltaW5nRnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgYnVpbGRlci5h
cHBlbmRMaXRlcmFsKCIsICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1feTIpOwogICAg
IGJ1aWxkZXIuYXBwZW5kKCcpJyk7ICAgIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU0N1YmljQmV6aWVyVGltaW5n
RnVuY3Rpb25WYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0N1YmljQmV6aWVyVGltaW5nRnVuY3Rpb25W
YWx1ZSYgb3RoZXIpIGNvbnN0CkBAIC01OSw3ICs2MSw5IEBAIFN0cmluZyBDU1NTdGVwc1RpbWlu
Z0Z1bmN0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwoIiwgc3RhcnQpIik7CiAgICAgZWxzZQogICAgICAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIiwgZW5kKSIpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU1N0ZXBzVGltaW5nRnVuY3Rpb25WYWx1
ZTo6ZXF1YWxzKGNvbnN0IENTU1N0ZXBzVGltaW5nRnVuY3Rpb25WYWx1ZSYgb3RoZXIpIGNvbnN0
CkBAIC03Myw3ICs3Nyw5IEBAIFN0cmluZyBDU1NGcmFtZXNUaW1pbmdGdW5jdGlvblZhbHVlOjpj
dXN0b21DU1NUZXh0KCkgY29uc3QKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoImZyYW1lcygi
KTsKICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX2ZyYW1lcyk7CiAgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCIpIik7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTRnJhbWVzVGltaW5nRnVuY3Rpb25WYWx1ZTo6
ZXF1YWxzKGNvbnN0IENTU0ZyYW1lc1RpbWluZ0Z1bmN0aW9uVmFsdWUmIG90aGVyKSBjb25zdApA
QCAtOTMsNyArOTksOSBAQCBTdHJpbmcgQ1NTU3ByaW5nVGltaW5nRnVuY3Rpb25WYWx1ZTo6Y3Vz
dG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICBidWlsZGVy
LmFwcGVuZE51bWJlcihtX2luaXRpYWxWZWxvY2l0eSk7CiAgICAgYnVpbGRlci5hcHBlbmQoJykn
KTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogYm9vbCBDU1NTcHJpbmdUaW1pbmdGdW5jdGlvblZhbHVlOjplcXVhbHMoY29uc3Qg
Q1NTU3ByaW5nVGltaW5nRnVuY3Rpb25WYWx1ZSYgb3RoZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NWYWx1ZUxpc3QuY3BwCmluZGV4IGI2ZTBjMmM1Li4zMDkwZTMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWVMaXN0LmNwcApAQCAtMTA3LDcgKzEwNyw5IEBAIFN0cmluZyBDU1NWYWx1ZUxpc3Q6
OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKHZhbHVlLmdldCgp
LmNzc1RleHQoKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU1ZhbHVlTGlzdDo6ZXF1YWxzKGNvbnN0
IENTU1ZhbHVlTGlzdCYgb3RoZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVmFyaWFibGVEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYXJpYWJsZURh
dGEuY3BwCmluZGV4IDk4YzlkMDkuLjMxMThkZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYXJpYWJsZURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYXJp
YWJsZURhdGEuY3BwCkBAIC02OCw3ICs2OCwxMCBAQCB2b2lkIENTU1ZhcmlhYmxlRGF0YTo6Y29u
c3VtZUFuZFVwZGF0ZVRva2Vucyhjb25zdCBDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKICAg
ICAgICAgaWYgKHRva2VuLmhhc1N0cmluZ0JhY2tpbmcoKSkKICAgICAgICAgICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kKHRva2VuLnZhbHVlKCkpOwogICAgIH0KLSAgICBtX2JhY2tpbmdTdHJpbmcg
PSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5n
QnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBtX2JhY2tpbmdTdHJpbmcgPSAqc3RyaW5nOwor
ICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICBpZiAobV9iYWNraW5nU3RyaW5nLmlzOEJp
dCgpKQogICAgICAgICB1cGRhdGVUb2tlbnM8TENoYXI+KHJhbmdlKTsKICAgICBlbHNlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuY3BwCmluZGV4IDkxMzUyMzcuLmNlMTVkNmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuY3BwCkBAIC04NCw3ICs4NCw5IEBAIFN0
cmluZyBET01DU1NOYW1lc3BhY2U6OmVzY2FwZShjb25zdCBTdHJpbmcmIGlkZW50KQogewogICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBzZXJpYWxpemVJZGVudGlmaWVyKGlkZW50LCBi
dWlsZGVyKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJp
eFJlYWRPbmx5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXhSZWFkT25seS5jcHAK
aW5kZXggZjc0YjQ2NS4uNzg4MjI4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RP
TU1hdHJpeFJlYWRPbmx5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NTWF0cml4UmVh
ZE9ubHkuY3BwCkBAIC00NTAsNyArNDUwLDkgQEAgRXhjZXB0aW9uT3I8U3RyaW5nPiBET01NYXRy
aXhSZWFkT25seTo6dG9TdHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJp
bmc6Om51bWJlclRvU3RyaW5nRUNNQVNjcmlwdChtX21hdHJpeC5tNDQoKSkpOwogICAgIH0KICAg
ICBidWlsZGVyLmFwcGVuZCgnKScpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
V1RGTW92ZSgqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWVM
aXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3Bw
CmluZGV4IGU0OTY4ODQuLjVlOThlMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9E
ZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXBy
ZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwCkBAIC01NCw3ICs1NCw5IEBAIFN0cmluZyBEZXByZWNh
dGVkQ1NTT01WYWx1ZUxpc3Q6OmNzc1RleHQoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5k
KHZhbHVlLmdldCgpLmNzc1RleHQoKSk7CiAgICAgfQogICAgIAotICAgIHJldHVybiByZXN1bHQu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250
RmFjZS5jcHAKaW5kZXggNTgxZjVlOC4uYzI1ODZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0ZvbnRGYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3Bw
CkBAIC0zMjgsNyArMzI4LDkgQEAgU3RyaW5nIEZvbnRGYWNlOjpzdHlsZSgpIGNvbnN0CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG1heGltdW1O
b25LZXl3b3JkLT5vYmxpcXVlVmFsdWUtPmNzc1RleHQoKSk7CiAgICAgfQotICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcg
Rm9udEZhY2U6OndlaWdodCgpIGNvbnN0CkBAIC0zNDksNyArMzUxLDkgQEAgU3RyaW5nIEZvbnRG
YWNlOjp3ZWlnaHQoKSBjb25zdAogICAgIGJ1aWxkZXIuYXBwZW5kKG1pbmltdW1Ob25LZXl3b3Jk
LT5jc3NUZXh0KCkpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgYnVpbGRlci5hcHBl
bmQobWF4aW11bU5vbktleXdvcmQtPmNzc1RleHQoKSk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBGb250RmFjZTo6
c3RyZXRjaCgpIGNvbnN0CkBAIC0zNzAsNyArMzc0LDkgQEAgU3RyaW5nIEZvbnRGYWNlOjpzdHJl
dGNoKCkgY29uc3QKICAgICBidWlsZGVyLmFwcGVuZChtaW5pbXVtTm9uS2V5d29yZC0+Y3NzVGV4
dCgpKTsKICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG1heGlt
dW1Ob25LZXl3b3JkLT5jc3NUZXh0KCkpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgRm9udEZhY2U6OnVuaWNvZGVS
YW5nZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwCmluZGV4IDQ1NzUwYWYuLjQyNjk0
MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwCkBAIC0xNTEsNyArMTUxLDkgQEAgU3RyaW5n
IE1lZGlhUXVlcnlTZXQ6Om1lZGlhVGV4dCgpIGNvbnN0CiAgICAgICAgIHRleHQuYXBwZW5kKHF1
ZXJ5LmNzc1RleHQoKSk7CiAgICAgICAgIG5lZWRDb21tYSA9IHRydWU7CiAgICAgfQotICAgIHJl
dHVybiB0ZXh0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdGV4dC50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIE1l
ZGlhUXVlcnlTZXQ6OnNocmlua1RvRml0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9NZWRpYVF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcAppbmRl
eCA5ZDBiYWRmLi40MDcwZDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFR
dWVyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwCkBAIC02Niw3
ICs2Niw5IEBAIFN0cmluZyBNZWRpYVF1ZXJ5OjpzZXJpYWxpemUoKSBjb25zdAogICAgICAgICBy
ZXN1bHQuYXBwZW5kKGV4cHJlc3Npb24uc2VyaWFsaXplKCkpOwogICAgICAgICBuZWVkc0FuZCA9
IHRydWU7CiAgICAgfQotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KIAogTWVkaWFRdWVyeTo6TWVkaWFRdWVyeShSZXN0cmljdG9yIHJlc3Ry
aWN0b3IsIGNvbnN0IFN0cmluZyYgbWVkaWFUeXBlLCBWZWN0b3I8TWVkaWFRdWVyeUV4cHJlc3Np
b24+JiYgZXhwcmVzc2lvbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFR
dWVyeUV4cHJlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHByZXNz
aW9uLmNwcAppbmRleCAyZDhlNWYwLi5lMGEyMmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAKQEAgLTI0NCw3ICsyNDQsMTAgQEAgU3RyaW5nIE1lZGlh
UXVlcnlFeHByZXNzaW9uOjpzZXJpYWxpemUoKSBjb25zdAogICAgIH0KICAgICByZXN1bHQuYXBw
ZW5kKCcpJyk7CiAKLSAgICBtX3NlcmlhbGl6YXRpb25DYWNoZSA9IHJlc3VsdC50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBtX3Nl
cmlhbGl6YXRpb25DYWNoZSA9ICpzdHJpbmc7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwog
ICAgIHJldHVybiBtX3NlcmlhbGl6YXRpb25DYWNoZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1JlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SZWN0LmgKaW5kZXggZWMx
YWFlOC4uZGZhZTE3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1JlY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvUmVjdC5oCkBAIC0xMDMsNyArMTAzLDkgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgcmV0
dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQu
dG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgp
OwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3Bl
cnRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKaW5kZXgg
M2M4Y2U0My4uYmZmMTcyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJv
cGVydGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAK
QEAgLTM0Myw3ICszNDMsOSBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpmb250VmFsdWUoKSBj
b25zdAogICAgIHJlc3VsdC5hcHBlbmQoZm9udEZhbWlseVByb3BlcnR5LnZhbHVlKCktPmNzc1Rl
eHQoKSk7CiAgICAgaWYgKGlzSW5pdGlhbE9ySW5oZXJpdChjb21tb25WYWx1ZSkpCiAgICAgICAg
IHJldHVybiBjb21tb25WYWx1ZTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldDRWYWx1
ZXMoY29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYgc2hvcnRoYW5kKSBjb25zdApAQCAtMzk3
LDcgKzM5OSw5IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldDRWYWx1ZXMoY29uc3QgU3R5
bGVQcm9wZXJ0eVNob3J0aGFuZCYgc2hvcnRoYW5kKSBjb25zCiAgICAgICAgIHJlc3VsdC5hcHBl
bmQoJyAnKTsKICAgICAgICAgcmVzdWx0LmFwcGVuZChsZWZ0LnZhbHVlKCktPmNzc1RleHQoKSk7
CiAgICAgfQotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogU3RyaW5nIFN0eWxlUHJvcGVydGllczo6Z2V0TGF5ZXJlZFNob3J0aGFuZFZh
bHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHNob3J0aGFuZCkgY29uc3QKQEAgLTU0
Myw3ICs1NDcsOSBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpnZXRMYXllcmVkU2hvcnRoYW5k
VmFsdWUoY29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYgcwogCiAgICAgaWYgKHJlc3VsdC5p
c0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICByZXR1cm4gcmVzdWx0LnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBTdHlsZVByb3Bl
cnRpZXM6OmdldFNob3J0aGFuZFZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHNo
b3J0aGFuZCkgY29uc3QKQEAgLTU3Miw3ICs1NzgsOSBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVz
OjpnZXRTaG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBzaG9ydGhh
bgogICAgICAgICByZXR1cm4gY29tbW9uVmFsdWU7CiAgICAgaWYgKHJlc3VsdC5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIC8vIG9ubHkgcmV0dXJucyBhIG5vbi1udWxs
IHZhbHVlIGlmIGFsbCBwcm9wZXJ0aWVzIGhhdmUgdGhlIHNhbWUsIG5vbi1udWxsIHZhbHVlCkBA
IC02MzQsNyArNjQyLDExIEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmJvcmRlclByb3BlcnR5
VmFsdWUoQ29tbW9uVmFsdWVNb2RlIHZhbHVlTW9kZSkgY29uc3QKICAgICB9CiAgICAgaWYgKGlz
SW5pdGlhbE9ySW5oZXJpdChjb21tb25WYWx1ZSkpCiAgICAgICAgIHJldHVybiBjb21tb25WYWx1
ZTsKLSAgICByZXR1cm4gcmVzdWx0LmlzRW1wdHkoKSA/IFN0cmluZygpIDogcmVzdWx0LnRvU3Ry
aW5nKCk7CisgICAgaWYgKHJlc3VsdC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBTdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogUmVmUHRyPENTU1ZhbHVlPiBTdHlsZVBy
b3BlcnRpZXM6OmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKSBj
b25zdApAQCAtMTE0Niw3ICsxMTU4LDkgQEAgU3RyaW5nIFN0eWxlUHJvcGVydGllczo6YXNUZXh0
KCkgY29uc3QKICAgICB9CiAKICAgICBBU1NFUlQoIW51bURlY2xzIF4gIXJlc3VsdC5pc0VtcHR5
KCkpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogYm9vbCBTdHlsZVByb3BlcnRpZXM6Omhhc0NTU09NV3JhcHBlcigpIGNvbnN0CkBA
IC0xNDAzLDcgKzE0MTcsOSBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpQcm9wZXJ0eVJlZmVy
ZW5jZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgaWYgKGlzSW1wb3J0YW50KCkpCiAgICAgICAgIHJl
c3VsdC5hcHBlbmRMaXRlcmFsKCIgIWltcG9ydGFudCIpOwogICAgIHJlc3VsdC5hcHBlbmQoJzsn
KTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
cmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAgICAgCiBSZWY8RGVmZXJyZWRTdHlsZVByb3BlcnRpZXM+IERlZmVycmVkU3R5bGVQcm9w
ZXJ0aWVzOjpjcmVhdGUoY29uc3QgQ1NTUGFyc2VyVG9rZW5SYW5nZSYgdG9rZW5SYW5nZSwgQ1NT
RGVmZXJyZWRQYXJzZXImIHBhcnNlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9X
ZWJLaXRDU1NNYXRyaXguY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5j
cHAKaW5kZXggN2JkZTY0ZC4uMWY3OGQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1dlYktpdENTU01hdHJpeC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01h
dHJpeC5jcHAKQEAgLTI0OSw3ICsyNDksOSBAQCBFeGNlcHRpb25PcjxTdHJpbmc+IFdlYktpdENT
U01hdHJpeDo6dG9TdHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmc6
Om51bWJlclRvU3RyaW5nRUNNQVNjcmlwdChtX21hdHJpeC5tNDQoKSkpOwogICAgIH0KICAgICBi
dWlsZGVyLmFwcGVuZCgnKScpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gV1RG
TW92ZSgqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NWaWV3cG9ydFJ1bGUuY3BwCmluZGV4IGNi
ZDE3MmYuLmRlNmVjOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NW
aWV3cG9ydFJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NWaWV3cG9y
dFJ1bGUuY3BwCkBAIC03Miw3ICs3Miw5IEBAIFN0cmluZyBXZWJLaXRDU1NWaWV3cG9ydFJ1bGU6
OmNzc1RleHQoKSBjb25zdAogCiAgICAgcmVzdWx0LmFwcGVuZCgnfScpOwogCi0gICAgcmV0dXJu
IHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIFdl
YktpdENTU1ZpZXdwb3J0UnVsZTo6cmVhdHRhY2goU3R5bGVSdWxlQmFzZSYgcnVsZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcAppbmRleCA5NTRhYjA4Li5lY2JmYWJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwCkBAIC0yOTksMTAgKzI5OSwx
MyBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VGb250RmFjZURlc2NyaXB0b3Io
Q1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBjbwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
IDogIik7CiAgICAgYnVpbGRlci5hcHBlbmQocHJvcGVydHlWYWx1ZSk7CiAgICAgYnVpbGRlci5h
cHBlbmRMaXRlcmFsKCI7IH0iKTsKLSAgICBSZWZQdHI8U3R5bGVSdWxlQmFzZT4gcnVsZSA9IHBh
cnNlUnVsZShjb250ZXh0LCBudWxscHRyLCBidWlsZGVyLnRvU3RyaW5nKCkpOwotICAgIGlmICgh
cnVsZSB8fCAhcnVsZS0+aXNGb250RmFjZVJ1bGUoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgcmV0dXJuIGRvd25jYXN0PFN0eWxlUnVsZUZvbnRGYWNlPigqcnVsZS5nZXQoKSkucHJv
cGVydGllcygpLmdldFByb3BlcnR5Q1NTVmFsdWUocHJvcGVydHlJRCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nICA9IGJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICBSZWZQdHI8U3R5bGVSdWxl
QmFzZT4gcnVsZSA9IHBhcnNlUnVsZShjb250ZXh0LCBudWxscHRyLCAqc3RyaW5nKTsKKyAgICAg
ICAgaWYgKCFydWxlIHx8ICFydWxlLT5pc0ZvbnRGYWNlUnVsZSgpKQorICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBkb3duY2FzdDxTdHlsZVJ1bGVGb250RmFjZT4o
KnJ1bGUuZ2V0KCkpLnByb3BlcnRpZXMoKS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHByb3BlcnR5SUQp
OworICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUGFyc2VyVG9rZW4uY3BwCmluZGV4IDdiOGU2MDMuLjVkMTAxNmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4uY3BwCkBAIC0zOTIsNyArMzkyLDgg
QEAgdm9pZCBDU1NQYXJzZXJUb2tlbjo6c2VyaWFsaXplKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIp
IGNvbnN0CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRnVuY3Rpb25Ub2tlbjoKICAgICAgICAg
c2VyaWFsaXplSWRlbnRpZmllcih2YWx1ZSgpLnRvU3RyaW5nKCksIGJ1aWxkZXIpOwotICAgICAg
ICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJygnKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJygn
KTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQXRLZXl3b3JkVG9rZW46CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCdAJyk7CiAgICAgICAgIHNlcmlhbGl6ZUlkZW50aWZpZXIodmFsdWUoKS50
b1N0cmluZygpLCBidWlsZGVyKTsKQEAgLTQwNCw2OSArNDA1LDk3IEBAIHZvaWQgQ1NTUGFyc2Vy
VG9rZW46OnNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiBidWlsZGVyKSBjb25zdAogICAgIGNhc2Ug
VXJsVG9rZW46CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJ1cmwoIik7CiAgICAgICAgIHNlcmlh
bGl6ZUlkZW50aWZpZXIodmFsdWUoKS50b1N0cmluZygpLCBidWlsZGVyKTsKLSAgICAgICAgcmV0
dXJuIGJ1aWxkZXIuYXBwZW5kKCcpJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Cisg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIERlbGltaXRlclRva2VuOgotICAgICAgICBpZiAoZGVs
aW1pdGVyKCkgPT0gJ1xcJykKLSAgICAgICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgiXFxc
biIpOwotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoZGVsaW1pdGVyKCkpOworICAgICAg
ICBpZiAoZGVsaW1pdGVyKCkgPT0gJ1xcJykgeworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQo
IlxcXG4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBidWlsZGVy
LmFwcGVuZChkZWxpbWl0ZXIoKSk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIE51bWJlclRv
a2VuOgogICAgICAgICAvLyBUaGVzZSB3b24ndCBwcm9wZXJseSBwcmVzZXJ2ZSB0aGUgTnVtZXJp
Y1ZhbHVlVHlwZSBmbGFnCiAgICAgICAgIGlmIChtX251bWVyaWNTaWduID09IFBsdXNTaWduKQog
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJysnKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIu
YXBwZW5kTnVtYmVyKG51bWVyaWNWYWx1ZSgpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1i
ZXIobnVtZXJpY1ZhbHVlKCkpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBQZXJjZW50YWdl
VG9rZW46CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG51bWVyaWNWYWx1ZSgpKTsKLSAg
ICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCclJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCclJyk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIERpbWVuc2lvblRva2VuOgogICAgICAg
ICAvLyBUaGlzIHdpbGwgaW5jb3JyZWN0bHkgc2VyaWFsaXplIGUuZy4gNGUzZTIgYXMgNDAwMGUy
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG51bWVyaWNWYWx1ZSgpKTsKICAgICAgICAg
c2VyaWFsaXplSWRlbnRpZmllcih2YWx1ZSgpLnRvU3RyaW5nKCksIGJ1aWxkZXIpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFVuaWNvZGVSYW5nZVRva2VuOgotICAgICAgICByZXR1cm4gYnVp
bGRlci5hcHBlbmQoU3RyaW5nOjpmb3JtYXQoIlUrJVgtJVgiLCB1bmljb2RlUmFuZ2VTdGFydCgp
LCB1bmljb2RlUmFuZ2VFbmQoKSkpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmc6OmZv
cm1hdCgiVSslWC0lWCIsIHVuaWNvZGVSYW5nZVN0YXJ0KCksIHVuaWNvZGVSYW5nZUVuZCgpKSk7
CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFN0cmluZ1Rva2VuOgotICAgICAgICByZXR1cm4g
c2VyaWFsaXplU3RyaW5nKHZhbHVlKCkudG9TdHJpbmcoKSwgYnVpbGRlcik7CisgICAgICAgIHNl
cmlhbGl6ZVN0cmluZyh2YWx1ZSgpLnRvU3RyaW5nKCksIGJ1aWxkZXIpOworICAgICAgICByZXR1
cm47CiAKICAgICBjYXNlIEluY2x1ZGVNYXRjaFRva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRl
ci5hcHBlbmQoIn49Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJ+PSIpOworICAgICAgICBy
ZXR1cm47CiAgICAgY2FzZSBEYXNoTWF0Y2hUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIu
YXBwZW5kKCJ8PSIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgifD0iKTsKKyAgICAgICAgcmV0
dXJuOwogICAgIGNhc2UgUHJlZml4TWF0Y2hUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIu
YXBwZW5kKCJePSIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiXj0iKTsKKyAgICAgICAgcmV0
dXJuOwogICAgIGNhc2UgU3VmZml4TWF0Y2hUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIu
YXBwZW5kKCIkPSIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiJD0iKTsKKyAgICAgICAgcmV0
dXJuOwogICAgIGNhc2UgU3Vic3RyaW5nTWF0Y2hUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxk
ZXIuYXBwZW5kKCIqPSIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiKj0iKTsKKyAgICAgICAg
cmV0dXJuOwogICAgIGNhc2UgQ29sdW1uVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFw
cGVuZCgifHwiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoInx8Iik7CisgICAgICAgIHJldHVy
bjsKICAgICBjYXNlIENET1Rva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoIjwh
LS0iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIjwhLS0iKTsKKyAgICAgICAgcmV0dXJuOwog
ICAgIGNhc2UgQ0RDVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgiLS0+Iik7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCItLT4iKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgQmFkU3RyaW5nVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgiJ1xuIik7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCInXG4iKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgQmFkVXJsVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgidXJsKCgpIik7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJ1cmwoKCkiKTsKKyAgICAgICAgcmV0dXJuOwogICAg
IGNhc2UgV2hpdGVzcGFjZVRva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJyAn
KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgQ29sb25Ub2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCc6Jyk7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCc6Jyk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFNlbWlj
b2xvblRva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJzsnKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQoJzsnKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQ29tbWFUb2tl
bjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCcsJyk7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCcsJyk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIExlZnRQYXJlbnRoZXNpc1Rv
a2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJygnKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQoJygnKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgUmlnaHRQYXJlbnRoZXNp
c1Rva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJyknKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmQoJyknKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgTGVmdEJyYWNrZXRU
b2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCdbJyk7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCdbJyk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFJpZ2h0QnJhY2tldFRv
a2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJ10nKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQoJ10nKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgTGVmdEJyYWNlVG9rZW46
Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgneycpOworICAgICAgICBidWlsZGVyLmFw
cGVuZCgneycpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBSaWdodEJyYWNlVG9rZW46Ci0g
ICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgnfScpOworICAgICAgICBidWlsZGVyLmFwcGVu
ZCgnfScpOworICAgICAgICByZXR1cm47CiAKICAgICBjYXNlIEVPRlRva2VuOgogICAgIGNhc2Ug
Q29tbWVudFRva2VuOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
YXJzZXJUb2tlblJhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2Vy
VG9rZW5SYW5nZS5jcHAKaW5kZXggY2I5YzU4MC4uZWZlNWEyZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlblJhbmdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuUmFuZ2UuY3BwCkBAIC0xMTMsNyArMTEz
LDkgQEAgU3RyaW5nIENTU1BhcnNlclRva2VuUmFuZ2U6OnNlcmlhbGl6ZSgpIGNvbnN0CiAgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGZvciAoY29uc3QgQ1NTUGFyc2VyVG9rZW4qIGl0
ID0gbV9maXJzdDsgaXQgPCBtX2xhc3Q7ICsraXQpCiAgICAgICAgIGl0LT5zZXJpYWxpemUoYnVp
bGRlcik7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXggYmNlY2U3MC4uMzA5MDc1ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAK
QEAgLTEwMTYsNyArMTAxNiw5IEBAIHN0YXRpYyBTdHJpbmcgY29uY2F0ZW5hdGVGYW1pbHlOYW1l
KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogICAgIH0KICAgICBpZiAoIWFkZGVkU3BhY2Ug
JiYgaXNDU1NXaWRlS2V5d29yZChmaXJzdFRva2VuLmlkKCkpKQogICAgICAgICByZXR1cm4gU3Ry
aW5nKCk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAKIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVGYW1pbHlOYW1lKENT
U1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQpAQCAtMzI2NCw3ICszMjY2LDEwIEBAIHN0YXRpYyBW
ZWN0b3I8U3RyaW5nPiBwYXJzZUdyaWRUZW1wbGF0ZUFyZWFzQ29sdW1uTmFtZXMoY29uc3QgU3Ry
aW5nJiBncmlkUm93TmFtCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRleHQubGVuZ3Ro
KCk7ICsraSkgewogICAgICAgICBpZiAoaXNDU1NTcGFjZSh0ZXh0W2ldKSkgewogICAgICAgICAg
ICAgaWYgKCFhcmVhTmFtZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBjb2x1bW5OYW1l
cy5hcHBlbmQoYXJlYU5hbWUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gYXJlYU5hbWUudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgY29sdW1u
TmFtZXMuYXBwZW5kKCpzdHJpbmcpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgICAgICBhcmVhTmFtZS5jbGVhcigpOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgY29udGludWU7CkBAIC0zMjczLDE0ICszMjc4LDIwIEBA
IHN0YXRpYyBWZWN0b3I8U3RyaW5nPiBwYXJzZUdyaWRUZW1wbGF0ZUFyZWFzQ29sdW1uTmFtZXMo
Y29uc3QgU3RyaW5nJiBncmlkUm93TmFtCiAgICAgICAgICAgICBpZiAoYXJlYU5hbWUgPT0gIi4i
KQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgaWYgKCFhcmVhTmFtZS5p
c0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBjb2x1bW5OYW1lcy5hcHBlbmQoYXJlYU5hbWUu
dG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYXJlYU5hbWUu
dG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgY29sdW1uTmFtZXMuYXBwZW5kKCpzdHJp
bmcpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgQ1JBU0goKTsK
ICAgICAgICAgICAgICAgICBhcmVhTmFtZS5jbGVhcigpOwogICAgICAgICAgICAgfQogICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgaWYgKCFpc05hbWVDb2RlUG9pbnQodGV4dFtpXSkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIFZlY3RvcjxTdHJpbmc+KCk7CiAgICAgICAgICAgICBpZiAo
YXJlYU5hbWUgPT0gIi4iKSB7Ci0gICAgICAgICAgICAgICAgY29sdW1uTmFtZXMuYXBwZW5kKGFy
ZWFOYW1lLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGFy
ZWFOYW1lLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbHVtbk5hbWVzLmFwcGVu
ZCgqc3RyaW5nKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIENS
QVNIKCk7CiAgICAgICAgICAgICAgICAgYXJlYU5hbWUuY2xlYXIoKTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQpAQCAtMzI4OCw4ICszMjk5LDEyIEBAIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiBw
YXJzZUdyaWRUZW1wbGF0ZUFyZWFzQ29sdW1uTmFtZXMoY29uc3QgU3RyaW5nJiBncmlkUm93TmFt
CiAgICAgICAgIGFyZWFOYW1lLmFwcGVuZCh0ZXh0W2ldKTsKICAgICB9CiAKLSAgICBpZiAoIWFy
ZWFOYW1lLmlzRW1wdHkoKSkKLSAgICAgICAgY29sdW1uTmFtZXMuYXBwZW5kKGFyZWFOYW1lLnRv
U3RyaW5nKCkpOworICAgIGlmICghYXJlYU5hbWUuaXNFbXB0eSgpKSB7CisgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IGFyZWFOYW1lLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBjb2x1bW5OYW1l
cy5hcHBlbmQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7Cisg
ICAgfQogCiAgICAgcmV0dXJuIGNvbHVtbk5hbWVzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NUb2tlbml6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NUb2tlbml6ZXIuY3BwCmluZGV4IDFmMWEyM2UuLjNiODRlMjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTVG9rZW5pemVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Rva2VuaXplci5jcHAKQEAgLTYwNSw4ICs2MDUsMTEgQEAg
Q1NTUGFyc2VyVG9rZW4gQ1NTVG9rZW5pemVyOjpjb25zdW1lU3RyaW5nVG9rZW5VbnRpbChVQ2hh
ciBlbmRpbmdDb2RlUG9pbnQpCiAgICAgU3RyaW5nQnVpbGRlciBvdXRwdXQ7CiAgICAgd2hpbGUg
KHRydWUpIHsKICAgICAgICAgVUNoYXIgY2MgPSBjb25zdW1lKCk7Ci0gICAgICAgIGlmIChjYyA9
PSBlbmRpbmdDb2RlUG9pbnQgfHwgY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikKLSAgICAgICAgICAg
IHJldHVybiBDU1NQYXJzZXJUb2tlbihTdHJpbmdUb2tlbiwgcmVnaXN0ZXJTdHJpbmcob3V0cHV0
LnRvU3RyaW5nKCkpKTsKKyAgICAgICAgaWYgKGNjID09IGVuZGluZ0NvZGVQb2ludCB8fCBjYyA9
PSBrRW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBvdXRw
dXQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUGFyc2VyVG9rZW4oU3Ry
aW5nVG9rZW4sIHJlZ2lzdGVyU3RyaW5nKCpzdHJpbmcpKTsKKyAgICAgICAgICAgIENSQVNIKCk7
CisgICAgICAgIH0KICAgICAgICAgaWYgKGlzTmV3TGluZShjYykpIHsKICAgICAgICAgICAgIHJl
Y29uc3VtZShjYyk7CiAgICAgICAgICAgICByZXR1cm4gQ1NTUGFyc2VyVG9rZW4oQmFkU3RyaW5n
VG9rZW4pOwpAQCAtNjgwLDEzICs2ODMsMTkgQEAgQ1NTUGFyc2VyVG9rZW4gQ1NTVG9rZW5pemVy
Ojpjb25zdW1lVXJsVG9rZW4oKQogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogICAgIHdoaWxl
ICh0cnVlKSB7CiAgICAgICAgIFVDaGFyIGNjID0gY29uc3VtZSgpOwotICAgICAgICBpZiAoY2Mg
PT0gJyknIHx8IGNjID09IGtFbmRPZkZpbGVNYXJrZXIpCi0gICAgICAgICAgICByZXR1cm4gQ1NT
UGFyc2VyVG9rZW4oVXJsVG9rZW4sIHJlZ2lzdGVyU3RyaW5nKHJlc3VsdC50b1N0cmluZygpKSk7
CisgICAgICAgIGlmIChjYyA9PSAnKScgfHwgY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgeworICAg
ICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIENTU1BhcnNlclRva2VuKFVybFRva2VuLCByZWdpc3RlclN0cmluZygqc3Ry
aW5nKSk7CisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CiAKICAgICAgICAgaWYgKGlz
SFRNTFNwYWNlKGNjKSkgewogICAgICAgICAgICAgbV9pbnB1dC5hZHZhbmNlVW50aWxOb25XaGl0
ZXNwYWNlKCk7Ci0gICAgICAgICAgICBpZiAoY29uc3VtZUlmTmV4dCgnKScpIHx8IG1faW5wdXQu
bmV4dElucHV0Q2hhcigpID09IGtFbmRPZkZpbGVNYXJrZXIpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIENTU1BhcnNlclRva2VuKFVybFRva2VuLCByZWdpc3RlclN0cmluZyhyZXN1bHQudG9TdHJp
bmcoKSkpOworICAgICAgICAgICAgaWYgKGNvbnN1bWVJZk5leHQoJyknKSB8fCBtX2lucHV0Lm5l
eHRJbnB1dENoYXIoKSA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgICAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBDU1NQYXJzZXJUb2tlbihVcmxUb2tlbiwgcmVnaXN0ZXJTdHJpbmcoKnN0cmluZykpOwor
ICAgICAgICAgICAgICAgIENSQVNIKCk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogCkBAIC03OTEsNyArODAwLDkgQEAgU3RyaW5nVmlldyBDU1NUb2tlbml6
ZXI6OmNvbnN1bWVOYW1lKCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAgICAg
ICAgIHJlY29uc3VtZShjYyk7Ci0gICAgICAgIHJldHVybiByZWdpc3RlclN0cmluZyhyZXN1bHQu
dG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygp
KQorICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdGVyU3RyaW5nKCpzdHJpbmcpOworICAgICAgICBD
UkFTSCgpOwogICAgIH0KIH0KIApAQCAtODExLDExICs4MjIsMTQgQEAgVUNoYXIzMiBDU1NUb2tl
bml6ZXI6OmNvbnN1bWVFc2NhcGUoKQogICAgICAgICB9OwogICAgICAgICBjb25zdW1lU2luZ2xl
V2hpdGVzcGFjZUlmTmV4dCgpOwogICAgICAgICBib29sIG9rID0gZmFsc2U7Ci0gICAgICAgIFVD
aGFyMzIgY29kZVBvaW50ID0gaGV4Q2hhcnMudG9TdHJpbmcoKS50b1VJbnRTdHJpY3QoJm9rLCAx
Nik7Ci0gICAgICAgIEFTU0VSVChvayk7Ci0gICAgICAgIGlmICghY29kZVBvaW50IHx8ICgweEQ4
MDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweERGRkYpIHx8IGNvZGVQb2ludCA+IDB4
MTBGRkZGKQotICAgICAgICAgICAgcmV0dXJuIHJlcGxhY2VtZW50Q2hhcmFjdGVyOwotICAgICAg
ICByZXR1cm4gY29kZVBvaW50OworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBoZXhDaGFycy50
b1N0cmluZygpKSB7CisgICAgICAgICAgICBVQ2hhcjMyIGNvZGVQb2ludCA9IHN0cmluZy0+dG9V
SW50U3RyaWN0KCZvaywgMTYpOworICAgICAgICAgICAgQVNTRVJUKG9rKTsKKyAgICAgICAgICAg
IGlmICghY29kZVBvaW50IHx8ICgweEQ4MDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAw
eERGRkYpIHx8IGNvZGVQb2ludCA+IDB4MTBGRkZGKQorICAgICAgICAgICAgICAgIHJldHVybiBy
ZXBsYWNlbWVudENoYXJhY3RlcjsKKyAgICAgICAgICAgIHJldHVybiBjb2RlUG9pbnQ7CisgICAg
ICAgIH0KKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBpZiAoY2MgPT0ga0VuZE9mRmls
ZU1hcmtlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhc2V0RE9NU3RyaW5n
TWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcAppbmRl
eCBmMmQ4NDIwLi5kNTY2N2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YXNl
dERPTVN0cmluZ01hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJp
bmdNYXAuY3BwCkBAIC02NSw3ICs2NSw5IEBAIHN0YXRpYyBTdHJpbmcgY29udmVydEF0dHJpYnV0
ZU5hbWVUb1Byb3BlcnR5TmFtZShjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgICAgIH0KICAgICB9
CiAKLSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIGJvb2wgcHJvcGVydHlOYW1lTWF0Y2hlc0F0dHJp
YnV0ZU5hbWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFN0cmluZyYgYXR0cmli
dXRlTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBhNDMyMzk3Li40ZjZjN2JjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0yMTk3LDcgKzIxOTcsMTAgQEAgdm9pZCBFbGVtZW50Ojpm
b3JtYXRGb3JEZWJ1Z2dlcihjaGFyKiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3QKICAg
ICAgICAgcmVzdWx0LmFwcGVuZChzKTsKICAgICB9CiAKLSAgICBzdHJuY3B5KGJ1ZmZlciwgcmVz
dWx0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0gMSk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHN0cm5jcHkoYnVmZmVyLCBzdHJp
bmctPnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0go
KTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggYmJhNjc4YTIuLjc1M2RmMjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5jcHAKQEAgLTE1MjAsNyArMTUyMCw5IEBAIFN0cmluZyBOb2RlOjp0ZXh0Q29u
dGVudChib29sIGNvbnZlcnRCUnNUb05ld2xpbmVzKSBjb25zdAogICAgIFN0cmluZ0J1aWxkZXIg
Y29udGVudDsKICAgICBib29sIGlzTnVsbFN0cmluZyA9IHRydWU7CiAgICAgYXBwZW5kVGV4dENv
bnRlbnQodGhpcywgY29udmVydEJSc1RvTmV3bGluZXMsIGlzTnVsbFN0cmluZywgY29udGVudCk7
Ci0gICAgcmV0dXJuIGlzTnVsbFN0cmluZyA/IFN0cmluZygpIDogY29udGVudC50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGNvbnRlbnQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuIGlzTnVsbFN0cmluZyA/IFN0cmluZygpIDogKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiBFeGNlcHRpb25Pcjx2b2lkPiBOb2RlOjpzZXRUZXh0Q29udGVudChjb25zdCBTdHJpbmcmIHRl
eHQpCkBAIC0xNzMxLDcgKzE3MzMsMTAgQEAgdm9pZCBOb2RlOjpzaG93Tm9kZShjb25zdCBjaGFy
KiBwcmVmaXgpIGNvbnN0CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYXR0cnM7CiAgICAgICAgIGFw
cGVuZEF0dHJpYnV0ZURlc2ModGhpcywgYXR0cnMsIGNsYXNzQXR0ciwgIiBDTEFTUz0iKTsKICAg
ICAgICAgYXBwZW5kQXR0cmlidXRlRGVzYyh0aGlzLCBhdHRycywgc3R5bGVBdHRyLCAiIFNUWUxF
PSIpOwotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzJXNcdCVwIChyZW5kZXJlciAlcCkgJXMl
cyVzXG4iLCBwcmVmaXgsIG5vZGVOYW1lKCkudXRmOCgpLmRhdGEoKSwgdGhpcywgcmVuZGVyZXIo
KSwgYXR0cnMudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBuZWVkc1N0eWxlUmVjYWxjKCkgPyAi
IChuZWVkcyBzdHlsZSByZWNhbGMpIiA6ICIiLCBjaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSA/ICIg
KGNoaWxkIG5lZWRzIHN0eWxlIHJlY2FsYykiIDogIiIpOworICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBhdHRycy50b1N0cmluZygpKQorICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlcyVz
XHQlcCAocmVuZGVyZXIgJXApICVzJXMlc1xuIiwgcHJlZml4LCBub2RlTmFtZSgpLnV0ZjgoKS5k
YXRhKCksIHRoaXMsIHJlbmRlcmVyKCksIHN0cmluZy0+dXRmOCgpLmRhdGEoKSwgbmVlZHNTdHls
ZVJlY2FsYygpID8gIiAobmVlZHMgc3R5bGUgcmVjYWxjKSIgOiAiIiwgY2hpbGROZWVkc1N0eWxl
UmVjYWxjKCkgPyAiIChjaGlsZCBuZWVkcyBzdHlsZSByZWNhbGMpIiA6ICIiKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9CiAKQEAgLTE4MDMsMTIgKzE4MDgs
MTkgQEAgc3RhdGljIHZvaWQgdHJhdmVyc2VUcmVlQW5kTWFyayhjb25zdCBTdHJpbmcmIGJhc2VJ
bmRlbnQsIGNvbnN0IE5vZGUqIHJvb3ROb2RlLAogICAgICAgICBpbmRlbnQuYXBwZW5kKGJhc2VJ
bmRlbnQpOwogICAgICAgICBmb3IgKGNvbnN0IE5vZGUqIHRtcE5vZGUgPSBub2RlOyB0bXBOb2Rl
ICYmIHRtcE5vZGUgIT0gcm9vdE5vZGU7IHRtcE5vZGUgPSB0bXBOb2RlLT5wYXJlbnRPclNoYWRv
d0hvc3ROb2RlKCkpCiAgICAgICAgICAgICBpbmRlbnQuYXBwZW5kKCdcdCcpOwotICAgICAgICBm
cHJpbnRmKHN0ZGVyciwgIiVzIiwgaW5kZW50LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Cisg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGluZGVudC50b1N0cmluZygpKQorICAgICAgICAgICAg
ZnByaW50ZihzdGRlcnIsICIlcyIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIG5vZGUtPnNob3dOb2RlKCk7CiAgICAg
ICAgIGluZGVudC5hcHBlbmQoJ1x0Jyk7CiAgICAgICAgIGlmICghbm9kZS0+aXNTaGFkb3dSb290
KCkpIHsKLSAgICAgICAgICAgIGlmIChTaGFkb3dSb290KiBzaGFkb3dSb290ID0gbm9kZS0+c2hh
ZG93Um9vdCgpKQotICAgICAgICAgICAgICAgIHRyYXZlcnNlVHJlZUFuZE1hcmsoaW5kZW50LnRv
U3RyaW5nKCksIHNoYWRvd1Jvb3QsIG1hcmtlZE5vZGUxLCBtYXJrZWRMYWJlbDEsIG1hcmtlZE5v
ZGUyLCBtYXJrZWRMYWJlbDIpOworICAgICAgICAgICAgaWYgKFNoYWRvd1Jvb3QqIHNoYWRvd1Jv
b3QgPSBub2RlLT5zaGFkb3dSb290KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBpbmRlbnQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgdHJhdmVyc2VUcmVl
QW5kTWFyaygqc3RyaW5nLCBzaGFkb3dSb290LCBtYXJrZWROb2RlMSwgbWFya2VkTGFiZWwxLCBt
YXJrZWROb2RlMiwgbWFya2VkTGFiZWwyKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgICAgIENSQVNIKCk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAppbmRleCA4OWE1MDZmLi5hNTIwMTZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Qb3NpdGlvbi5jcHAKQEAgLTE0MTksNyArMTQxOSwxMCBAQCB2b2lkIFBvc2l0aW9uOjpmb3Jt
YXRGb3JEZWJ1Z2dlcihjaGFyKiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3QKICAgICAg
ICAgcmVzdWx0LmFwcGVuZChzKTsKICAgICB9CiAKLSAgICBzdHJuY3B5KGJ1ZmZlciwgcmVzdWx0
LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0gMSk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHN0cm5jcHkoYnVmZmVyLCBzdHJpbmct
PnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsK
IH0KIAogdm9pZCBQb3NpdGlvbjo6c2hvd0FuY2hvclR5cGVBbmRPZmZzZXQoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9SYW5nZS5jcHAKaW5kZXggYTU3YTVlMi4uMTU5ODcwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1JhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCkBA
IC05NDksNyArOTQ5LDkgQEAgU3RyaW5nIFJhbmdlOjp0b1N0cmluZygpIGNvbnN0CiAgICAgICAg
IH0KICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIFJhbmdlOjp0b0hUTUwoKSBjb25zdApAQCAtMTUzNSw3
ICsxNTM3LDEwIEBAIHZvaWQgUmFuZ2U6OmZvcm1hdEZvckRlYnVnZ2VyKGNoYXIqIGJ1ZmZlciwg
dW5zaWduZWQgbGVuZ3RoKSBjb25zdAogICAgIGVuZENvbnRhaW5lcigpLmZvcm1hdEZvckRlYnVn
Z2VyKHMsIEZvcm1hdEJ1ZmZlclNpemUpOwogICAgIHJlc3VsdC5hcHBlbmQocyk7CiAKLSAgICBz
dHJuY3B5KGJ1ZmZlciwgcmVzdWx0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0g
MSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHN0
cm5jcHkoYnVmZmVyLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOworICAgIGVs
c2UKKyAgICAgICAgQ1JBU0goKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IGM0ZDg1ZDguLmE1MDM5
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRy
b2xsZXIuY3BwCkBAIC0xMTIsNyArMTEyLDkgQEAgc3RhdGljIFN0cmluZyB0aHJvdHRsaW5nUmVh
c29uc1RvU3RyaW5nKE9wdGlvblNldDxTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI6OlQKICAg
ICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCd8Jyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHRo
cm90dGxpbmdSZWFzb25Ub1N0cmluZyhyZWFzb24pKTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcAppbmRleCA0ZjhmMWE4Li4xNDgyMjFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcApAQCAtMTUyLDcgKzE1MiwxMCBA
QCBTYW5kYm94RmxhZ3MgU2VjdXJpdHlDb250ZXh0OjpwYXJzZVNhbmRib3hQb2xpY3koY29uc3Qg
U3RyaW5nJiBwb2xpY3ksIFN0cmluZyYgaQogICAgICAgICAgICAgdG9rZW5FcnJvcnMuYXBwZW5k
TGl0ZXJhbCgiIGFyZSBpbnZhbGlkIHNhbmRib3ggZmxhZ3MuIik7CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIHRva2VuRXJyb3JzLmFwcGVuZExpdGVyYWwoIiBpcyBhbiBpbnZhbGlkIHNhbmRi
b3ggZmxhZy4iKTsKLSAgICAgICAgaW52YWxpZFRva2Vuc0Vycm9yTWVzc2FnZSA9IHRva2VuRXJy
b3JzLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHRva2VuRXJyb3JzLnRv
U3RyaW5nKCkpCisgICAgICAgICAgICBpbnZhbGlkVG9rZW5zRXJyb3JNZXNzYWdlID0gKnN0cmlu
ZzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICByZXR1
cm4gZmxhZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKaW5kZXggNzMxNWQxNi4uYjMyN2Y1NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9U
ZXh0LmNwcApAQCAtMTEzLDcgKzExMyw5IEBAIFN0cmluZyBUZXh0Ojp3aG9sZVRleHQoKSBjb25z
dAogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogICAgIGZvciAoY29uc3QgVGV4dCogdGV4dCA9
IHN0YXJ0VGV4dDsgdGV4dCAhPSBvbmVQYXN0RW5kVGV4dDsgdGV4dCA9IFRleHROb2RlVHJhdmVy
c2FsOjpuZXh0U2libGluZygqdGV4dCkpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQodGV4dC0+ZGF0
YSgpKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIFJlZlB0cjxUZXh0PiBUZXh0OjpyZXBsYWNlV2hvbGVUZXh0KGNvbnN0IFN0cmlu
ZyYgbmV3VGV4dCkKQEAgLTI0MCw3ICsyNDIsMTAgQEAgdm9pZCBUZXh0Ojpmb3JtYXRGb3JEZWJ1
Z2dlcihjaGFyKiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3QKICAgICAgICAgcmVzdWx0
LmFwcGVuZCgnIicpOwogICAgIH0KIAotICAgIHN0cm5jcHkoYnVmZmVyLCByZXN1bHQudG9TdHJp
bmcoKS51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBy
ZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgc3RybmNweShidWZmZXIsIHN0cmluZy0+dXRmOCgp
LmRhdGEoKSwgbGVuZ3RoIC0gMSk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIGJ1
ZmZlcltsZW5ndGggLSAxXSA9ICdcMCc7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UZXh0Tm9kZVRyYXZlcnNhbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4
dE5vZGVUcmF2ZXJzYWwuY3BwCmluZGV4IGI3OGNhNzkuLjZkNDE4ZDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UZXh0Tm9kZVRyYXZlcnNhbC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1RleHROb2RlVHJhdmVyc2FsLmNwcApAQCAtNDIsNyArNDIsOSBAQCBTdHJpbmcgY29u
dGVudHNBc1N0cmluZyhjb25zdCBDb250YWluZXJOb2RlJiByb290KQogewogICAgIFN0cmluZ0J1
aWxkZXIgcmVzdWx0OwogICAgIGFwcGVuZENvbnRlbnRzKHJvb3QsIHJlc3VsdCk7Ci0gICAgcmV0
dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJp
bmcgY29udGVudHNBc1N0cmluZyhjb25zdCBOb2RlJiByb290KQpAQCAtNTksNyArNjEsOSBAQCBT
dHJpbmcgY2hpbGRUZXh0Q29udGVudChjb25zdCBDb250YWluZXJOb2RlJiByb290KQogICAgIFN0
cmluZ0J1aWxkZXIgcmVzdWx0OwogICAgIGZvciAoVGV4dCogdGV4dCA9IFRleHROb2RlVHJhdmVy
c2FsOjpmaXJzdENoaWxkKHJvb3QpOyB0ZXh0OyB0ZXh0ID0gVGV4dE5vZGVUcmF2ZXJzYWw6Om5l
eHRTaWJsaW5nKCp0ZXh0KSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCh0ZXh0LT5kYXRhKCkpOwot
ICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1
bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAppbmRl
eCA2OWQ4YWYyLi5hZTE2ZjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fw
cGx5U3R5bGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5
bGVDb21tYW5kLmNwcApAQCAtMTM4Miw3ICsxMzgyLDEwIEBAIHZvaWQgQXBwbHlTdHlsZUNvbW1h
bmQ6OmFkZEJsb2NrU3R5bGUoY29uc3QgU3R5bGVDaGFuZ2UmIHN0eWxlQ2hhbmdlLCBIVE1MRWxl
bWVuCiAgICAgICAgICAgICBjc3NUZXh0LmFwcGVuZCgnICcpOwogICAgICAgICBjc3NUZXh0LmFw
cGVuZChkZWNsLT5hc1RleHQoKSk7CiAgICAgfQotICAgIHNldE5vZGVBdHRyaWJ1dGUoYmxvY2ss
IHN0eWxlQXR0ciwgY3NzVGV4dC50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBj
c3NUZXh0LnRvU3RyaW5nKCkpCisgICAgICAgIHNldE5vZGVBdHRyaWJ1dGUoYmxvY2ssIHN0eWxl
QXR0ciwgKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEFw
cGx5U3R5bGVDb21tYW5kOjphZGRJbmxpbmVTdHlsZUlmTmVlZGVkKEVkaXRpbmdTdHlsZSogc3R5
bGUsIE5vZGUmIHN0YXJ0LCBOb2RlJiBlbmQsIEVBZGRTdHlsZWRFbGVtZW50IGFkZFN0eWxlZEVs
ZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNwcAppbmRleCBlNzliNjQ2Li4zMGMxNjgw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5jcHAKQEAgLTQyOSw3ICs0MjksOSBAQCBTdHJp
bmcgc3RyaW5nV2l0aFJlYmFsYW5jZWRXaGl0ZXNwYWNlKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBi
b29sIHN0YXJ0SXNTdGFydE9mUAogCiAgICAgcmViYWxhbmNlZFN0cmluZy5yZXNlcnZlQ2FwYWNp
dHkobGVuZ3RoKTsKICAgICByZWJhbGFuY2VkU3RyaW5nLmFwcGVuZChzdHJpbmcsIHJlYmFsYW5j
ZWRTdHJpbmcubGVuZ3RoKCksIGxlbmd0aCAtIHJlYmFsYW5jZWRTdHJpbmcubGVuZ3RoKCkpOwot
ICAgIHJldHVybiByZWJhbGFuY2VkU3RyaW5nLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gcmViYWxhbmNlZFN0cmluZy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIGlzVGFibGVTdHJ1Y3R1cmVOb2RlKGNvbnN0IE5v
ZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0hUTUxJbnRlcmNo
YW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0hUTUxJbnRlcmNoYW5nZS5jcHAKaW5k
ZXggYjIyMzQzYi4uY2Y4NTIzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9I
VE1MSW50ZXJjaGFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSFRNTEludGVy
Y2hhbmdlLmNwcApAQCAtOTUsNyArOTUsOSBAQCBTdHJpbmcgY29udmVydEhUTUxUZXh0VG9JbnRl
cmNoYW5nZUZvcm1hdChjb25zdCBTdHJpbmcmIGluLCBjb25zdCBUZXh0KiBub2RlKQogICAgICAg
ICBpICs9IGNvbnN1bWVkOwogICAgIH0KIAotICAgIHJldHVybiBzLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gcy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCmluZGV4IDkwNjk2N2YuLjY3ZTc2YzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCkBAIC0x
MzAsNyArMTMwLDkgQEAgTWFya3VwQWNjdW11bGF0b3I6On5NYXJrdXBBY2N1bXVsYXRvcigpID0g
ZGVmYXVsdDsKIFN0cmluZyBNYXJrdXBBY2N1bXVsYXRvcjo6c2VyaWFsaXplTm9kZXMoTm9kZSYg
dGFyZ2V0Tm9kZSwgRUNoaWxkcmVuT25seSBjaGlsZHJlbk9ubHksIFZlY3RvcjxRdWFsaWZpZWRO
YW1lPiogdGFnTmFtZXNUb1NraXApCiB7CiAgICAgc2VyaWFsaXplTm9kZXNXaXRoTmFtZXNwYWNl
cyh0YXJnZXROb2RlLCBjaGlsZHJlbk9ubHksIDAsIHRhZ05hbWVzVG9Ta2lwKTsKLSAgICByZXR1
cm4gbV9tYXJrdXAudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtX21hcmt1cC50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2
b2lkIE1hcmt1cEFjY3VtdWxhdG9yOjpzZXJpYWxpemVOb2Rlc1dpdGhOYW1lc3BhY2VzKE5vZGUm
IHRhcmdldE5vZGUsIEVDaGlsZHJlbk9ubHkgY2hpbGRyZW5Pbmx5LCBjb25zdCBOYW1lc3BhY2Vz
KiBuYW1lc3BhY2VzLCBWZWN0b3I8UXVhbGlmaWVkTmFtZT4qIHRhZ05hbWVzVG9Ta2lwKQpAQCAt
NDgzLDExICs0ODUsMTQgQEAgdm9pZCBNYXJrdXBBY2N1bXVsYXRvcjo6Z2VuZXJhdGVVbmlxdWVQ
cmVmaXgoUXVhbGlmaWVkTmFtZSYgcHJlZml4ZWROYW1lLCBjb25zdAogICAgICAgICBidWlsZGVy
LmNsZWFyKCk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiTlMiKTsKICAgICAgICAg
YnVpbGRlci5hcHBlbmROdW1iZXIoKyttX3ByZWZpeExldmVsKTsKLSAgICAgICAgY29uc3QgQXRv
bWljU3RyaW5nJiBuYW1lID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpOwotICAgICAgICBpZiAo
IW5hbWVzcGFjZXMuZ2V0KG5hbWUuaW1wbCgpKSkgewotICAgICAgICAgICAgcHJlZml4ZWROYW1l
LnNldFByZWZpeChuYW1lKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQorICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCkpIHsKKyAgICAgICAg
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9ICpzdHJpbmc7CisgICAgICAgICAgICBpZiAo
IW5hbWVzcGFjZXMuZ2V0KG5hbWUuaW1wbCgpKSkgeworICAgICAgICAgICAgICAgIHByZWZpeGVk
TmFtZS5zZXRQcmVmaXgobmFtZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgfQorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfSB3aGlsZSAo
dHJ1ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJh
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAppbmRleCA2
NTc0ZjFlLi5mNTQzMWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJ
dGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3Bw
CkBAIC0yNjY3LDEyICsyNjY3LDE1IEBAIFN0cmluZyBwbGFpblRleHQoY29uc3QgUmFuZ2UqIHIs
IFRleHRJdGVyYXRvckJlaGF2aW9yIGRlZmF1bHRCZWhhdmlvciwgYm9vbCBpc0RpCiAgICAgaWYg
KCFidWZmZXJMZW5ndGgpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogCi0gICAgU3Ry
aW5nIHJlc3VsdCA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9ICpzdHJpbmc7CiAK
LSAgICBpZiAoaXNEaXNwbGF5U3RyaW5nKQotICAgICAgICByLT5vd25lckRvY3VtZW50KCkuZGlz
cGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhyZXN1bHQpOworICAgICAgICBpZiAoaXNEaXNw
bGF5U3RyaW5nKQorICAgICAgICAgICAgci0+b3duZXJEb2N1bWVudCgpLmRpc3BsYXlTdHJpbmdN
b2RpZmllZEJ5RW5jb2RpbmcocmVzdWx0KTsKIAotICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBwbGFpblRl
eHRSZXBsYWNpbmdOb0JyZWFrU3BhY2UoY29uc3QgUmFuZ2UqIHJhbmdlLCBUZXh0SXRlcmF0b3JC
ZWhhdmlvciBkZWZhdWx0QmVoYXZpb3IsIGJvb2wgaXNEaXNwbGF5U3RyaW5nKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKaW5kZXggZmQ3OTA2Ni4uYmVlNjNkZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCkBAIC00MjUsNyArNDI1LDkg
QEAgUmVmUHRyPERhdGFUcmFuc2Zlcj4gVHlwaW5nQ29tbWFuZDo6aW5wdXRFdmVudERhdGFUcmFu
c2ZlcigpIGNvbnN0CiAKICAgICBTdHJpbmdCdWlsZGVyIGh0bWxUZXh0OwogICAgIE1hcmt1cEFj
Y3VtdWxhdG9yOjphcHBlbmRDaGFyYWN0ZXJzUmVwbGFjaW5nRW50aXRpZXMoaHRtbFRleHQsIG1f
Y3VycmVudFRleHRUb0luc2VydCwgMCwgbV9jdXJyZW50VGV4dFRvSW5zZXJ0Lmxlbmd0aCgpLCBF
bnRpdHlNYXNrSW5IVE1MUENEQVRBKTsKLSAgICByZXR1cm4gRGF0YVRyYW5zZmVyOjpjcmVhdGVG
b3JJbnB1dEV2ZW50KG1fY3VycmVudFRleHRUb0luc2VydCwgaHRtbFRleHQudG9TdHJpbmcoKSk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gaHRtbFRleHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuIERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9ySW5wdXRFdmVudChtX2N1cnJlbnRUZXh0VG9JbnNl
cnQsICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgVHlwaW5nQ29tbWFuZDo6ZGlk
QXBwbHlDb21tYW5kKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJs
ZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24u
Y3BwCmluZGV4IDE4NjUwYWIuLjczYWNjYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9W
aXNpYmxlU2VsZWN0aW9uLmNwcApAQCAtNzA3LDcgKzcwNywxMCBAQCB2b2lkIFZpc2libGVTZWxl
Y3Rpb246OmZvcm1hdEZvckRlYnVnZ2VyKGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgbGVuZ3RoKSBj
b25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKHMpOwogICAgIH0KIAotICAgIHN0cm5jcHkoYnVm
ZmVyLCByZXN1bHQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgc3RybmNweShidWZm
ZXIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0gMSk7CisgICAgZWxzZQorICAgICAg
ICBDUkFTSCgpOwogfQogCiB2b2lkIFZpc2libGVTZWxlY3Rpb246OnNob3dUcmVlRm9yVGhpcygp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRl
Y3Rpb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0K
aW5kZXggZjQ0NTYxNi4uZTk4NjQ0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29j
b2EvRGF0YURldGVjdGlvbi5tbQpAQCAtMzE5LDcgKzMxOSw5IEBAIHN0YXRpYyBTdHJpbmcgZGF0
YURldGVjdG9yU3RyaW5nRm9yUGF0aChOU0luZGV4UGF0aCAqcGF0aCkKICAgICAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmROdW1iZXIoKHVuc2lnbmVkIGxvbmcpW3BhdGggaW5kZXhBdFBvc2l0aW9u
OjBdKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJy8nKTsKICAgICAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmROdW1iZXIoKHVuc2lnbmVkIGxvbmcpW3BhdGggaW5kZXhBdFBvc2l0aW9u
OjFdKTsKLSAgICAgICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIGRlZmF1bHQ6IHsK
ICAgICAgICAgU3RyaW5nQnVpbGRlciBzdHJpbmdCdWlsZGVyOwpAQCAtMzI5LDcgKzMzMSw5IEBA
IHN0YXRpYyBTdHJpbmcgZGF0YURldGVjdG9yU3RyaW5nRm9yUGF0aChOU0luZGV4UGF0aCAqcGF0
aCkKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKCh1bnNpZ25lZCBsb25n
KVtwYXRoIGluZGV4QXRQb3NpdGlvbjppXSk7CiAgICAgICAgIH0KIAotICAgICAgICByZXR1cm4g
c3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAg
ICAgQ1JBU0goKTsKICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9j
b2NvYS9IVE1MQ29udmVydGVyLm1tCmluZGV4IDZiMTM5N2UuLjVkMzI5MzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KQEAgLTIyNTQsNyArMjI1
NCwxMCBAQCB2b2lkIEhUTUxDb252ZXJ0ZXI6Ol9wcm9jZXNzVGV4dChDaGFyYWN0ZXJEYXRhJiBj
aGFyYWN0ZXJEYXRhKQogICAgICAgICB9CiAgICAgICAgIGlmICh3YXNTcGFjZSkKICAgICAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7Ci0gICAgICAgIG91dHB1dFN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICAgICAgb3V0cHV0U3RyaW5nID0gKnN0cmluZzsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBpZiAob3V0cHV0U3RyaW5nLmxlbmd0aCgp
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0KaW5kZXggNTYyMTM1NS4u
MmZlNTQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbQpAQCAtMjg0
LDcgKzI4NCwxMCBAQCB2b2lkIEVkaXRvcjo6c2V0RGljdGF0aW9uUGhyYXNlc0FzQ2hpbGRPZkVs
ZW1lbnQoY29uc3QgVmVjdG9yPFZlY3RvcjxTdHJpbmc+PiYgZAogICAgIGZvciAoYXV0byYgaW50
ZXJwcmV0YXRpb25zIDogZGljdGF0aW9uUGhyYXNlcykKICAgICAgICAgZGljdGF0aW9uUGhyYXNl
c0J1aWxkZXIuYXBwZW5kKGludGVycHJldGF0aW9uc1swXSk7CiAKLSAgICBlbGVtZW50LmFwcGVu
ZENoaWxkKGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoKmNvbnRleHQsIGRpY3RhdGlvblBocmFzZXNC
dWlsZGVyLnRvU3RyaW5nKCkpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBkaWN0YXRpb25QaHJh
c2VzQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0
ZUZyYWdtZW50RnJvbVRleHQoKmNvbnRleHQsICpzdHJpbmcpKTsKKyAgICBlbHNlCisgICAgICAg
IENSQVNIKCk7CiAKICAgICAvLyBXZSBuZWVkIGEgbGF5b3V0IGluIG9yZGVyIHRvIGFkZCBtYXJr
ZXJzIGJlbG93LgogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L21hcmt1cC5jcHAKaW5kZXggNTU1MWVlYy4uZDU2ODgxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFy
a3VwLmNwcApAQCAtMjkwLDcgKzI5MCwxMCBAQCB2b2lkIFN0eWxlZE1hcmt1cEFjY3VtdWxhdG9y
Ojp3cmFwV2l0aE5vZGUoTm9kZSYgbm9kZSwgYm9vbCBjb252ZXJ0QmxvY2tzVG9JbmxpbgogICAg
ICAgICBhcHBlbmRFbGVtZW50KG1hcmt1cCwgZG93bmNhc3Q8RWxlbWVudD4obm9kZSksIGNvbnZl
cnRCbG9ja3NUb0lubGluZXMgJiYgaXNCbG9jaygmbm9kZSksIHJhbmdlRnVsbHlTZWxlY3RzTm9k
ZSk7CiAgICAgZWxzZQogICAgICAgICBhcHBlbmRTdGFydE1hcmt1cChtYXJrdXAsIG5vZGUsIG51
bGxwdHIpOwotICAgIG1fcmV2ZXJzZWRQcmVjZWRpbmdNYXJrdXAuYXBwZW5kKG1hcmt1cC50b1N0
cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtYXJrdXAudG9TdHJpbmcoKSkKKyAgICAg
ICAgbV9yZXZlcnNlZFByZWNlZGluZ01hcmt1cC5hcHBlbmQoKnN0cmluZyk7CisgICAgZWxzZQor
ICAgICAgICBDUkFTSCgpOwogICAgIGFwcGVuZEVuZFRhZyhub2RlKTsKICAgICBpZiAobV9ub2Rl
cykKICAgICAgICAgbV9ub2Rlcy0+YXBwZW5kKCZub2RlKTsKQEAgLTMwMCw3ICszMDMsMTAgQEAg
dm9pZCBTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6d3JhcFdpdGhTdHlsZU5vZGUoU3R5bGVQcm9w
ZXJ0aWVzKiBzdHlsZSwgRG9jdW1lbnQKIHsKICAgICBTdHJpbmdCdWlsZGVyIG9wZW5UYWc7CiAg
ICAgYXBwZW5kU3R5bGVOb2RlT3BlblRhZyhvcGVuVGFnLCBzdHlsZSwgZG9jdW1lbnQsIGlzQmxv
Y2spOwotICAgIG1fcmV2ZXJzZWRQcmVjZWRpbmdNYXJrdXAuYXBwZW5kKG9wZW5UYWcudG9TdHJp
bmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gb3BlblRhZy50b1N0cmluZygpKQorICAgICAg
ICBtX3JldmVyc2VkUHJlY2VkaW5nTWFya3VwLmFwcGVuZCgqc3RyaW5nKTsKKyAgICBlbHNlCisg
ICAgICAgIENSQVNIKCk7CiAgICAgYXBwZW5kU3RyaW5nKHN0eWxlTm9kZUNsb3NlVGFnKGlzQmxv
Y2spKTsKIH0KIApAQCAtMzM0LDcgKzM0MCw5IEBAIFN0cmluZyBTdHlsZWRNYXJrdXBBY2N1bXVs
YXRvcjo6dGFrZVJlc3VsdHMoKQogICAgIGNvbmNhdGVuYXRlTWFya3VwKHJlc3VsdCk7CiAKICAg
ICAvLyBXZSByZW1vdmUgJ1wwJyBjaGFyYWN0ZXJzIGJlY2F1c2UgdGhleSBhcmUgbm90IHZpc2li
bHkgcmVuZGVyZWQgdG8gdGhlIHVzZXIuCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpLnJl
cGxhY2VXaXRoTGl0ZXJhbCgnXDAnLCAiIik7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBzdHJpbmctPnJlcGxhY2VXaXRoTGl0ZXJhbCgn
XDAnLCAiIik7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBTdHlsZWRNYXJrdXBBY2N1bXVsYXRv
cjo6YXBwZW5kVGV4dChTdHJpbmdCdWlsZGVyJiBvdXQsIGNvbnN0IFRleHQmIHRleHQpCkBAIC0z
NTksNyArMzY3LDEwIEBAIHZvaWQgU3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZFRleHQo
U3RyaW5nQnVpbGRlciYgb3V0LCBjb25zdCBUZXh0JiB0ZXh0KQogICAgICAgICBTdHJpbmcgY29u
dGVudCA9IHVzZVJlbmRlcmVkVGV4dCA/IHJlbmRlcmVkVGV4dCh0ZXh0LCBtX3JhbmdlKSA6IHN0
cmluZ1ZhbHVlRm9yUmFuZ2UodGV4dCwgbV9yYW5nZSk7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIg
YnVmZmVyOwogICAgICAgICBhcHBlbmRDaGFyYWN0ZXJzUmVwbGFjaW5nRW50aXRpZXMoYnVmZmVy
LCBjb250ZW50LCAwLCBjb250ZW50Lmxlbmd0aCgpLCBFbnRpdHlNYXNrSW5QQ0RBVEEpOwotICAg
ICAgICBvdXQuYXBwZW5kKGNvbnZlcnRIVE1MVGV4dFRvSW50ZXJjaGFuZ2VGb3JtYXQoYnVmZmVy
LnRvU3RyaW5nKCksICZ0ZXh0KSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1ZmZlci50
b1N0cmluZygpKQorICAgICAgICAgICAgb3V0LmFwcGVuZChjb252ZXJ0SFRNTFRleHRUb0ludGVy
Y2hhbmdlRm9ybWF0KCpzdHJpbmcsICZ0ZXh0KSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IENSQVNIKCk7CiAgICAgfQogCiAgICAgaWYgKHdyYXBwaW5nU3BhbikKQEAgLTg3Myw3ICs4ODQs
OSBAQCBTdHJpbmcgc2FuaXRpemVkTWFya3VwRm9yRnJhZ21lbnRJbkRvY3VtZW50KFJlZjxEb2N1
bWVudEZyYWdtZW50PiYmIGZyYWdtZW50LCBEbwogICAgICAgICAgICAgInhtbG5zPVwiaHR0cDov
L3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MFwiPiIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChy
ZXN1bHQpOwogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjwvaHRtbD4iKTsKLSAgICAg
ICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
YnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAg
IENSQVNIKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTEwOTIsNyArMTEwNSw5
IEBAIFN0cmluZyB1cmxUb01hcmt1cChjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRs
ZSkKICAgICBtYXJrdXAuYXBwZW5kTGl0ZXJhbCgiXCI+Iik7CiAgICAgTWFya3VwQWNjdW11bGF0
b3I6OmFwcGVuZENoYXJhY3RlcnNSZXBsYWNpbmdFbnRpdGllcyhtYXJrdXAsIHRpdGxlLCAwLCB0
aXRsZS5sZW5ndGgoKSwgRW50aXR5TWFza0luUENEQVRBKTsKICAgICBtYXJrdXAuYXBwZW5kTGl0
ZXJhbCgiPC9hPiIpOwotICAgIHJldHVybiBtYXJrdXAudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBtYXJrdXAudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KIAogRXhjZXB0aW9uT3I8UmVmPERvY3VtZW50RnJhZ21lbnQ+PiBjcmVh
dGVGcmFnbWVudEZvcklubmVyT3V0ZXJIVE1MKEVsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBjb25z
dCBTdHJpbmcmIG1hcmt1cCwgUGFyc2VyQ29udGVudFBvbGljeSBwYXJzZXJDb250ZW50UG9saWN5
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAKaW5kZXggOWEy
MjM0Zi4uMjgzNDVhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVh
ZGVyTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2Fk
ZXIuY3BwCkBAIC0zMzcsMjAgKzMzNywyMCBAQCB2b2lkIEZpbGVSZWFkZXJMb2FkZXI6OmNvbnZl
cnRUb0RhdGFVUkwoKQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwoImRhdGE6Iik7CiAKLSAgICBpZiAoIW1fYnl0ZXNMb2FkZWQpIHsKLSAgICAg
ICAgbV9zdHJpbmdSZXN1bHQgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgICAgIHJldHVybjsK
KyAgICBpZiAobV9ieXRlc0xvYWRlZCkgeworICAgICAgICBidWlsZGVyLmFwcGVuZChtX2RhdGFU
eXBlKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI7YmFzZTY0LCIpOworCisgICAg
ICAgIFZlY3RvcjxjaGFyPiBvdXQ7CisgICAgICAgIGJhc2U2NEVuY29kZShtX3Jhd0RhdGEtPmRh
dGEoKSwgbV9ieXRlc0xvYWRlZCwgb3V0KTsKKyAgICAgICAgb3V0LmFwcGVuZCgnXDAnKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQob3V0LmRhdGEoKSk7CiAgICAgfQogCi0gICAgYnVpbGRlci5h
cHBlbmQobV9kYXRhVHlwZSk7Ci0gICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI7YmFzZTY0LCIp
OwotCi0gICAgVmVjdG9yPGNoYXI+IG91dDsKLSAgICBiYXNlNjRFbmNvZGUobV9yYXdEYXRhLT5k
YXRhKCksIG1fYnl0ZXNMb2FkZWQsIG91dCk7Ci0gICAgb3V0LmFwcGVuZCgnXDAnKTsKLSAgICBi
dWlsZGVyLmFwcGVuZChvdXQuZGF0YSgpKTsKLQotICAgIG1fc3RyaW5nUmVzdWx0ID0gYnVpbGRl
ci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgbV9zdHJpbmdSZXN1bHQgPSAqc3RyaW5nOworICAgIGVsc2UKKyAgICAgICAgQ1JB
U0goKTsKIH0KIAogYm9vbCBGaWxlUmVhZGVyTG9hZGVyOjppc0NvbXBsZXRlZCgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKaW5kZXggYzk1Zjk2OS4uZGI0Mjk2OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcApAQCAtMjczLDEwICsyNzMsMTMgQEAgdm9p
ZCBET01Ub2tlbkxpc3Q6OnVwZGF0ZUFzc29jaWF0ZWRBdHRyaWJ1dGVGcm9tVG9rZW5zKCkKICAg
ICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHRv
a2VuKTsKICAgICB9Ci0gICAgQXRvbWljU3RyaW5nIHNlcmlhbGl6ZWRWYWx1ZSA9IGJ1aWxkZXIu
dG9BdG9taWNTdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvQXRvbWlj
U3RyaW5nKCkpIHsKKyAgICAgICAgQXRvbWljU3RyaW5nIHNlcmlhbGl6ZWRWYWx1ZSA9ICpzdHJp
bmc7CiAKLSAgICBTZXRGb3JTY29wZTxib29sPiBpbkF0dHJpYnV0ZVVwZGF0ZShtX2luVXBkYXRl
QXNzb2NpYXRlZEF0dHJpYnV0ZUZyb21Ub2tlbnMsIHRydWUpOwotICAgIG1fZWxlbWVudC5zZXRB
dHRyaWJ1dGUobV9hdHRyaWJ1dGVOYW1lLCBzZXJpYWxpemVkVmFsdWUpOworICAgICAgICBTZXRG
b3JTY29wZTxib29sPiBpbkF0dHJpYnV0ZVVwZGF0ZShtX2luVXBkYXRlQXNzb2NpYXRlZEF0dHJp
YnV0ZUZyb21Ub2tlbnMsIHRydWUpOworICAgICAgICBtX2VsZW1lbnQuc2V0QXR0cmlidXRlKG1f
YXR0cmlidXRlTmFtZSwgc2VyaWFsaXplZFZhbHVlKTsKKyAgICB9IGVsc2UKKyAgICAgICAgQ1JB
U0goKTsKIH0KIAogVmVjdG9yPEF0b21pY1N0cmluZz4mIERPTVRva2VuTGlzdDo6dG9rZW5zKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAKaW5kZXggYjkzZTEyYi4uNTgzNmM3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAKQEAgLTEwNCw3ICsxMDQs
OSBAQCBTdHJpbmcgRW1haWxJbnB1dFR5cGU6OnNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5nJiBw
cm9wb3NlZFZhbHVlKSBjb25zdAogICAgICAgICAgICAgc3RyaXBwZWRWYWx1ZS5hcHBlbmQoJywn
KTsKICAgICAgICAgc3RyaXBwZWRWYWx1ZS5hcHBlbmQoc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdI
VE1MU3BhY2VzKGFkZHJlc3Nlc1tpXSkpOwogICAgIH0KLSAgICByZXR1cm4gc3RyaXBwZWRWYWx1
ZS50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmlwcGVkVmFsdWUudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5w
dXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKaW5kZXgg
M2U1NWEwNS4uZmRjNDljNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5w
dXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCkBA
IC00NjcsNyArNDY3LDkgQEAgU3RyaW5nIEZpbGVJbnB1dFR5cGU6OmRlZmF1bHRUb29sVGlwKCkg
Y29uc3QKICAgICAgICAgaWYgKGkgIT0gbGlzdFNpemUgLSAxKQogICAgICAgICAgICAgbmFtZXMu
YXBwZW5kKCdcbicpOwogICAgIH0KLSAgICByZXR1cm4gbmFtZXMudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBuYW1lcy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Rm9ybUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5j
cHAKaW5kZXggMGY1Yjc3NS4uMWEyOWE0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9Gb3JtQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJv
bGxlci5jcHAKQEAgLTMxMiw3ICszMTIsOSBAQCBzdGF0aWMgaW5saW5lIFN0cmluZyBmb3JtU2ln
bmF0dXJlKGNvbnN0IEhUTUxGb3JtRWxlbWVudCYgZm9ybSkKICAgICAgICAgYnVpbGRlci5hcHBl
bmQoYWN0aW9uVVJMLnN0cmluZygpKTsKIAogICAgIHJlY29yZEZvcm1TdHJ1Y3R1cmUoZm9ybSwg
YnVpbGRlcik7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIEF0b21pY1N0cmluZyBGb3JtS2V5R2VuZXJhdG9yOjpmb3JtS2V5KGNv
bnN0IEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUmIGNvbnRyb2wpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCmluZGV4IDcxNTIzMTcuLmE3MDI2ZjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCkBAIC00MDAsMTAgKzQw
MCwxNCBAQCB2b2lkIEhUTUxBbmNob3JFbGVtZW50OjpoYW5kbGVDbGljayhFdmVudCYgZXZlbnQp
CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgU3RyaW5nQnVpbGRlciB1
cmw7Ci0gICAgdXJsLmFwcGVuZChzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoYXR0
cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihocmVmQXR0cikpKTsKLSAgICBhcHBlbmRTZXJ2
ZXJNYXBNb3VzZVBvc2l0aW9uKHVybCwgZXZlbnQpOwotICAgIFVSTCBjb21wbGV0ZWRVUkwgPSBk
b2N1bWVudCgpLmNvbXBsZXRlVVJMKHVybC50b1N0cmluZygpKTsKKyAgICBVUkwgY29tcGxldGVk
VVJMID0gZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChbJl0gKCkgeworICAgICAgICBTdHJpbmdCdWls
ZGVyIHVybDsKKyAgICAgICAgdXJsLmFwcGVuZChzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxT
cGFjZXMoYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihocmVmQXR0cikpKTsKKyAgICAg
ICAgYXBwZW5kU2VydmVyTWFwTW91c2VQb3NpdGlvbih1cmwsIGV2ZW50KTsKKyAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gdXJsLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9KCkpOwogCiAgICAgU3RyaW5nIGRvd25sb2FkQXR0
cmlidXRlOwogI2lmIEVOQUJMRShET1dOTE9BRF9BVFRSSUJVVEUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDY2NGVkZjAuLmI2N2I0YzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC0zMzYsOCArMzM2LDExIEBA
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCogSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUNvbnRl
eHQyZChjb25zdCBTdHJpbmcmIHR5cGUpCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiVG90YWwgY2FudmFzIG1lbW9yeSB1c2UgZXhjZWVkcyB0aGUgbWF4aW11bSBsaW1pdCAo
Iik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKG1heEFjdGl2ZVBpeGVsTWVt
b3J5KCkgLyAxMDI0IC8gMTAyNCk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiIE1CKS4iKTsKLSAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBzdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCkpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
c3RyaW5nQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICBkb2N1bWVudCgpLmFkZENv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICpz
dHJpbmcpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KKyAgICAgICAg
Q1JBU0goKTsKICAgICB9CiAKICAgICBtX2NvbnRleHQgPSBDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQ6OmNyZWF0ZSgqdGhpcywgZG9jdW1lbnQoKS5pblF1aXJrc01vZGUoKSwgdXNlc0Rhc2hib2Fy
ZENvbXBhdGliaWxpdHlNb2RlKTsKQEAgLTg4OSw4ICs4OTIsMTEgQEAgdm9pZCBIVE1MQ2FudmFz
RWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIoKSBjb25zdAogICAgICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZExpdGVyYWwoIkNhbnZhcyBhcmVhIGV4Y2VlZHMgdGhlIG1heGltdW0gbGltaXQgKHdp
ZHRoICogaGVpZ2h0ID4gIik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKG1h
eENhbnZhc0FyZWEpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIikuIik7
Ci0gICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMs
IE1lc3NhZ2VMZXZlbDo6V2FybmluZywgc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKLSAgICAg
ICAgcmV0dXJuOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3Ry
aW5nKCkpIHsKKyAgICAgICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgKnN0cmluZyk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgCiAgICAg
Ly8gTWFrZSBzdXJlIHdlIGRvbid0IHVzZSBtb3JlIHBpeGVsIG1lbW9yeSB0aGFuIHRoZSBzeXN0
ZW0gY2FuIHN1cHBvcnQuCkBAIC05MDAsOCArOTA2LDExIEBAIHZvaWQgSFRNTENhbnZhc0VsZW1l
bnQ6OmNyZWF0ZUltYWdlQnVmZmVyKCkgY29uc3QKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJUb3RhbCBjYW52YXMgbWVtb3J5IHVzZSBleGNlZWRzIHRoZSBtYXhpbXVtIGxp
bWl0ICgiKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIobWF4QWN0aXZlUGl4
ZWxNZW1vcnkoKSAvIDEwMjQgLyAxMDI0KTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRM
aXRlcmFsKCIgTUIpLiIpOwotICAgICAgICBkb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKSk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICBkb2N1bWVudCgpLmFkZENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICpzdHJp
bmcpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIENSQVNIKCk7CiAg
ICAgfQogCiAgICAgaWYgKCF3aWR0aCgpIHx8ICFoZWlnaHQoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZvbnRFbGVtZW50LmNwcAppbmRleCA4ZDZjMzQ3Li5jMzVhNjdlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuY3BwCkBAIC0xMTEsMTAgKzExMSwxMyBAQCBzdGF0aWMg
Ym9vbCBwYXJzZUZvbnRTaXplKGNvbnN0IENoYXJhY3RlclR5cGUqIGNoYXJhY3RlcnMsIHVuc2ln
bmVkIGxlbmd0aCwgaW50JgogICAgIC8vIFN0ZXAgOAogICAgIGludCB2YWx1ZTsKIAorICAgIGlm
IChkaWdpdHMuZmFpbGVkKCkpCisgICAgICAgIENSQVNIKCk7CisKICAgICBpZiAoZGlnaXRzLmlz
OEJpdCgpKQotICAgICAgICB2YWx1ZSA9IGNoYXJhY3RlcnNUb0ludFN0cmljdChkaWdpdHMuY2hh
cmFjdGVyczgoKSwgZGlnaXRzLmxlbmd0aCgpKTsKKyAgICAgICAgdmFsdWUgPSBjaGFyYWN0ZXJz
VG9JbnRTdHJpY3QoKmRpZ2l0cy5jaGFyYWN0ZXJzOCgpLCBkaWdpdHMubGVuZ3RoKCkpOwogICAg
IGVsc2UKLSAgICAgICAgdmFsdWUgPSBjaGFyYWN0ZXJzVG9JbnRTdHJpY3QoZGlnaXRzLmNoYXJh
Y3RlcnMxNigpLCBkaWdpdHMubGVuZ3RoKCkpOworICAgICAgICB2YWx1ZSA9IGNoYXJhY3RlcnNU
b0ludFN0cmljdCgqZGlnaXRzLmNoYXJhY3RlcnMxNigpLCBkaWdpdHMubGVuZ3RoKCkpOwogCiAg
ICAgLy8gU3RlcCA5CiAgICAgaWYgKG1vZGUgPT0gUmVsYXRpdmVQbHVzKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKaW5kZXggNGY2NTk3Yy4uYTJlMWMxNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCkBAIC00NzQsNyArNDc0LDkgQEAg
U3RyaW5nIEhUTUxJbWFnZUVsZW1lbnQ6OmNvbXBsZXRlVVJMc0luQXR0cmlidXRlVmFsdWUoY29u
c3QgVVJMJiBiYXNlLCBjb25zdCBBdHQKICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCd3
Jyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0
cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICBy
ZXR1cm4gSFRNTEVsZW1lbnQ6OmNvbXBsZXRlVVJMc0luQXR0cmlidXRlVmFsdWUoYmFzZSwgYXR0
cmlidXRlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4
IDUyMWZjYTIuLjcyMTQ0NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcApAQCAtMjMyLDkgKzIzMiwxMiBAQCBzdGF0aWMgU3RyaW5nIGFjdGlvbk5hbWUoSFRNTE1l
ZGlhRWxlbWVudEVudW1zOjpEZWxheWVkQWN0aW9uVHlwZSBhY3Rpb24pCiAKICN1bmRlZiBBQ1RJ
T04KIAotICAgIFN0cmluZyBuYW1lID0gYWN0aW9uQnVpbGRlci50b1N0cmluZygpOwotICAgIEFT
U0VSVCghbmFtZS5pc0VtcHR5KCkpOwotICAgIHJldHVybiBuYW1lOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGFjdGlvbkJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICBTdHJpbmcgbmFtZSA9
ICpzdHJpbmc7CisgICAgICAgIEFTU0VSVCghbmFtZS5pc0VtcHR5KCkpOworICAgICAgICByZXR1
cm4gbmFtZTsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCmluZGV4IDlmNmRhZDIuLmZhOThhYTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCkBAIC0zNDksNyArMzQ5LDkg
QEAgU3RyaW5nIEhUTUxPcHRpb25FbGVtZW50Ojpjb2xsZWN0T3B0aW9uSW5uZXJUZXh0KCkgY29u
c3QKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbm9kZSA9IE5vZGVUcmF2ZXJzYWw6Om5leHQo
Km5vZGUsIHRoaXMpOwogICAgIH0KLSAgICByZXR1cm4gdGV4dC50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IHRleHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggNThmOTFhYS4uM2Fm
MzQ0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudC5jcHAKQEAgLTE0Myw3ICsxNDMsOSBAQCBTdHJpbmcgSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQ6OnN0cmlwcGVkUGxhY2Vob2xkZXIoKSBjb25zdAogICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgIHN0cmlwcGVkLmFwcGVuZChjaGFyYWN0ZXIpOwogICAgIH0KLSAgICByZXR1
cm4gc3RyaXBwZWQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpcHBlZC50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBz
dGF0aWMgYm9vbCBpc05vdExpbmVCcmVhayhVQ2hhciBjaCkgeyByZXR1cm4gY2ggIT0gbmV3bGlu
ZUNoYXJhY3RlciAmJiBjaCAhPSBjYXJyaWFnZVJldHVybjsgfQpAQCAtNTUyLDcgKzU1NCw5IEBA
IHN0YXRpYyBTdHJpbmcgaW5uZXJUZXh0VmFsdWVGcm9tKFRleHRDb250cm9sSW5uZXJUZXh0RWxl
bWVudCYgaW5uZXJUZXh0KQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChkb3duY2FzdDxUZXh0
Pigqbm9kZSkuZGF0YSgpKTsKICAgICB9CiAgICAgc3RyaXBUcmFpbGluZ05ld2xpbmUocmVzdWx0
KTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
cmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNldElubmVyVGV4dFZhbHVl
KGNvbnN0IFN0cmluZyYgdmFsdWUpCkBAIC03MzYsNyArNzQwLDkgQEAgU3RyaW5nIEhUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50Ojp2YWx1ZVdpdGhIYXJkTGluZUJyZWFrcygpIGNvbnN0CiAgICAg
ICAgICAgICBnZXROZXh0U29mdEJyZWFrKGxpbmUsIGJyZWFrTm9kZSwgYnJlYWtPZmZzZXQpOwog
ICAgIH0KICAgICBzdHJpcFRyYWlsaW5nTmV3bGluZShyZXN1bHQpOwotICAgIHJldHVybiByZXN1
bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQqIGVuY2xvc2luZ1RleHRGb3JtQ29udHJvbChjb25zdCBQb3NpdGlvbiYg
cG9zaXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcAppbmRleCAxMTkzNDBm
Li42OTc3MTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKQEAgLTEyMSw3
ICsxMjEsMTAgQEAgdm9pZCBNZWRpYURvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVj
dHVyZSgpCiAjaWYgUExBVEZPUk0oSU9TKQogICAgICAgICBlbGVtZW50U3R5bGUuYXBwZW5kTGl0
ZXJhbCgid2lkdGg6IDEwMCU7IGhlaWdodDogYXV0bzsiKTsKICNlbmRpZgotICAgICAgICB2aWRl
b0VsZW1lbnQtPnNldEF0dHJpYnV0ZShzdHlsZUF0dHIsIGVsZW1lbnRTdHlsZS50b1N0cmluZygp
KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZWxlbWVudFN0eWxlLnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICB2aWRlb0VsZW1lbnQtPnNldEF0dHJpYnV0ZShzdHlsZUF0dHIsICpzdHJpbmcp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIGJvZHkt
PmFwcGVuZENoaWxkKHZpZGVvRWxlbWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVs
ZW1lbnRTZXNzaW9uLmNwcAppbmRleCA1Y2Q3OTA1Li42ZjRlMGY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKQEAgLTg2LDcgKzg2LDkgQEAgc3RhdGlj
IFN0cmluZyByZXN0cmljdGlvbk5hbWUoTWVkaWFFbGVtZW50U2Vzc2lvbjo6QmVoYXZpb3JSZXN0
cmljdGlvbnMgcmVzdHJpY3QKICAgICBDQVNFKEludmlzaWJsZUF1dG9wbGF5Tm90UGVybWl0dGVk
KTsKICAgICBDQVNFKE92ZXJyaWRlVXNlckdlc3R1cmVSZXF1aXJlbWVudEZvck1haW5Db250ZW50
KTsKIAotICAgIHJldHVybiByZXN0cmljdGlvbkJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSByZXN0cmljdGlvbkJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01lZGlhRnJhZ21lbnRVUklQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9NZWRpYUZyYWdtZW50VVJJUGFyc2VyLmNwcAppbmRleCBlN2E1MTZlLi4zMDViNjYz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRnJhZ21lbnRVUklQYXJzZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFGcmFnbWVudFVSSVBhcnNlci5jcHAK
QEAgLTUyLDcgKzUyLDkgQEAgc3RhdGljIFN0cmluZyBjb2xsZWN0RGlnaXRzKGNvbnN0IExDaGFy
KiBpbnB1dCwgdW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCYgcG9zaXQKICAgICAvLyBESUdJVCA7
IGFueSBwb3NpdGl2ZSBudW1iZXIKICAgICB3aGlsZSAocG9zaXRpb24gPCBsZW5ndGggJiYgaXNB
U0NJSURpZ2l0KGlucHV0W3Bvc2l0aW9uXSkpCiAgICAgICAgIGRpZ2l0cy5hcHBlbmQoaW5wdXRb
cG9zaXRpb24rK10pOwotICAgIHJldHVybiBkaWdpdHMudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBkaWdpdHMudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBjb2xsZWN0RnJhY3Rpb24oY29uc3QgTENo
YXIqIGlucHV0LCB1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbmVkJiBwb3NpdGlvbikKQEAgLTY3LDcg
KzY5LDkgQEAgc3RhdGljIFN0cmluZyBjb2xsZWN0RnJhY3Rpb24oY29uc3QgTENoYXIqIGlucHV0
LCB1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbmVkJiBwb3MKICAgICBkaWdpdHMuYXBwZW5kKGlucHV0
W3Bvc2l0aW9uKytdKTsKICAgICB3aGlsZSAocG9zaXRpb24gPCBsZW5ndGggJiYgaXNBU0NJSURp
Z2l0KGlucHV0W3Bvc2l0aW9uXSkpCiAgICAgICAgIGRpZ2l0cy5hcHBlbmQoaW5wdXRbcG9zaXRp
b24rK10pOwotICAgIHJldHVybiBkaWdpdHMudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBkaWdpdHMudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogTWVkaWFGcmFnbWVudFVSSVBhcnNlcjo6TWVkaWFGcmFnbWVudFVSSVBhcnNl
cihjb25zdCBVUkwmIHVybCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFo
ZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcAppbmRleCA3NjRlNTAy
Li4zZWVjNDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3BwCkBAIC04MCw3ICs4MCwxMCBA
QCBpbnQgVHlwZUFoZWFkOjpoYW5kbGVFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCwgTWF0Y2hN
b2RlRmxhZ3MgbWF0Y2hNb2RlKQogICAgICAgICBwcmVmaXggPSBTdHJpbmcoJmMsIDEpOwogICAg
ICAgICBtX3JlcGVhdGluZ0NoYXIgPSBjOwogICAgIH0gZWxzZSBpZiAobWF0Y2hNb2RlICYgTWF0
Y2hQcmVmaXgpIHsKLSAgICAgICAgcHJlZml4ID0gbV9idWZmZXIudG9TdHJpbmcoKTsKKyAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gbV9idWZmZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHBy
ZWZpeCA9ICpzdHJpbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAg
ICAgIGlmIChtX2J1ZmZlci5sZW5ndGgoKSA+IDEpIHsKICAgICAgICAgICAgIG1fcmVwZWF0aW5n
Q2hhciA9IDA7CiAgICAgICAgICAgICBzZWFyY2hTdGFydE9mZnNldCA9IDA7CkBAIC0xMDQsOSAr
MTA3LDEyIEBAIGludCBUeXBlQWhlYWQ6OmhhbmRsZUV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50
LCBNYXRjaE1vZGVGbGFncyBtYXRjaE1vZGUpCiAKICAgICBpZiAobWF0Y2hNb2RlICYgTWF0Y2hJ
bmRleCkgewogICAgICAgICBib29sIG9rID0gZmFsc2U7Ci0gICAgICAgIGludCBpbmRleCA9IG1f
YnVmZmVyLnRvU3RyaW5nKCkudG9JbnQoJm9rKTsKLSAgICAgICAgaWYgKGluZGV4ID4gMCAmJiBp
bmRleCA8PSBvcHRpb25Db3VudCkKLSAgICAgICAgICAgIHJldHVybiBpbmRleCAtIDE7CisgICAg
ICAgIGlmIChhdXRvIHN0cmluZyA9IG1fYnVmZmVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAg
IGludCBpbmRleCA9IHN0cmluZy0+dG9JbnQoJm9rKTsKKyAgICAgICAgICAgIGlmIChpbmRleCA+
IDAgJiYgaW5kZXggPD0gb3B0aW9uQ291bnQpCisgICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4
IC0gMTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICBy
ZXR1cm4gLTE7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAppbmRleCBjMjdhZjIzLi5kOTRmY2U1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5jcHAKQEAgLTExNyw3ICsxMTcsOSBAQCBTdHJpbmcgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEOjpmb250KCkgY29uc3QKICAgICAgICAgc2VyaWFsaXplZEZvbnQuYXBwZW5kKGZhbWlseSk7
CiAgICAgfQogCi0gICAgcmV0dXJuIHNlcmlhbGl6ZWRGb250LnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gc2VyaWFsaXplZEZvbnQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQ6OnNldEZvbnQoY29uc3QgU3RyaW5nJiBuZXdGb250KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcApp
bmRleCA3NjhjMGZjLi43YTg4Y2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcApAQCAtMjE3Miw4
ICsyMTcyLDExIEBAIEV4Y2VwdGlvbk9yPFJlZlB0cjxJbWFnZURhdGE+PiBDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRCYXNlOjpnZXRJbWFnZURhdGEoSW1hZ2VCCiAgICAgICAgIGNvbnNvbGVNZXNz
YWdlLmFwcGVuZExpdGVyYWwoIiB4ICIpOwogICAgICAgICBjb25zb2xlTWVzc2FnZS5hcHBlbmRO
dW1iZXIoaW1hZ2VEYXRhUmVjdC5oZWlnaHQoKSk7CiAKLSAgICAgICAgY2FudmFzQmFzZSgpLnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6
UmVuZGVyaW5nLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBjb25zb2xlTWVzc2FnZS50b1N0cmluZygp
KTsKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisgICAg
ICAgIGlmIChhdXRvIHN0cmluZyA9IGNvbnNvbGVNZXNzYWdlLnRvU3RyaW5nKCkpIHsKKyAgICAg
ICAgICAgIGNhbnZhc0Jhc2UoKS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFkZENvbnNvbGVN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlJlbmRlcmluZywgTWVzc2FnZUxldmVsOjpFcnJvciwgKnN0
cmluZyk7CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3Ig
fTsKKyAgICAgICAgfQorICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIHJldHVybiBJbWFn
ZURhdGE6OmNyZWF0ZShpbWFnZURhdGFSZWN0LnNpemUoKSwgYnl0ZUFycmF5LnJlbGVhc2VOb25O
dWxsKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRleCA3ODc1ZGE4Li5jZDVlZTFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlLmNwcApAQCAtMTYyLDcgKzE2Miw5IEBAIG5hbWVzcGFjZSB7CiAKICAgICAgICAgU3RyaW5n
IHJlc3VsdCgpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBtX2J1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IG1fYnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICAgICAgQ1JBU0goKTsK
ICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxTb3VyY2VUcmFja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxTb3VyY2VUcmFja2VyLmNwcAppbmRleCAyMmRiYTkwLi44MGIxZTUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU291cmNlVHJhY2tlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNvdXJjZVRyYWNrZXIuY3BwCkBAIC04
Myw4ICs4MywxMSBAQCBTdHJpbmcgSFRNTFNvdXJjZVRyYWNrZXI6OnNvdXJjZShjb25zdCBIVE1M
VG9rZW4mIHRva2VuKQogICAgICAgICBtX2N1cnJlbnRTb3VyY2UuYWR2YW5jZSgpOwogICAgIH0K
IAotICAgIG1fY2FjaGVkU291cmNlRm9yVG9rZW4gPSBzb3VyY2UudG9TdHJpbmcoKTsKLSAgICBy
ZXR1cm4gbV9jYWNoZWRTb3VyY2VGb3JUb2tlbjsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzb3Vy
Y2UudG9TdHJpbmcoKSkgeworICAgICAgICBtX2NhY2hlZFNvdXJjZUZvclRva2VuID0gKnN0cmlu
ZzsKKyAgICAgICAgcmV0dXJuIG1fY2FjaGVkU291cmNlRm9yVG9rZW47CisgICAgfQorICAgIENS
QVNIKCk7CiB9CiAKIFN0cmluZyBIVE1MU291cmNlVHJhY2tlcjo6c291cmNlKGNvbnN0IEhUTUxU
b2tlbiYgdG9rZW4sIHVuc2lnbmVkIGF0dHJpYnV0ZVN0YXJ0LCB1bnNpZ25lZCBhdHRyaWJ1dGVF
bmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVG9rZW5pemVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwCmluZGV4
IDhhYzJmODUuLjM2NGVjMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxUb2tlbml6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxU
b2tlbml6ZXIuY3BwCkBAIC0xNDEsOCArMTQxLDEwIEBAIGlubGluZSBib29sIEhUTUxUb2tlbml6
ZXI6OnByb2Nlc3NFbnRpdHkoU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UpCiAgICAgICAgIEFTU0VS
VChkZWNvZGVkRW50aXR5LmlzRW1wdHkoKSk7CiAgICAgICAgIGJ1ZmZlckFTQ0lJQ2hhcmFjdGVy
KCcmJyk7CiAgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGRlY29kZWRFbnRpdHkuZmFpbGVkKCkp
CisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
ZGVjb2RlZEVudGl0eS5sZW5ndGgoKTsgKytpKQotICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVy
KGRlY29kZWRFbnRpdHlbaV0pOworICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKCpkZWNvZGVk
RW50aXR5W2ldKTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC04NjMsOCArODY1LDEw
IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6cHJvY2Vzc1Rva2VuKFNlZ21lbnRlZFN0cmluZyYgc291
cmNlKQogICAgICAgICAgICAgQVNTRVJUKGRlY29kZWRFbnRpdHkuaXNFbXB0eSgpKTsKICAgICAg
ICAgICAgIG1fdG9rZW4uYXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZSgnJicpOwogICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgaWYgKGRlY29kZWRFbnRpdHkuZmFpbGVkKCkpCisgICAgICAgICAg
ICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkZWNv
ZGVkRW50aXR5Lmxlbmd0aCgpOyArK2kpCi0gICAgICAgICAgICAgICAgbV90b2tlbi5hcHBlbmRU
b0F0dHJpYnV0ZVZhbHVlKGRlY29kZWRFbnRpdHlbaV0pOworICAgICAgICAgICAgICAgIG1fdG9r
ZW4uYXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZSgqZGVjb2RlZEVudGl0eVtpXSk7CiAgICAgICAgIH0K
ICAgICAgICAgLy8gV2UncmUgc3VwcG9zZWQgdG8gc3dpdGNoIGJhY2sgdG8gdGhlIGF0dHJpYnV0
ZSB2YWx1ZSBzdGF0ZSB0aGF0CiAgICAgICAgIC8vIHdlIHdlcmUgaW4gd2hlbiB3ZSB3ZXJlIHN3
aXRjaGVkIGludG8gdGhpcyBzdGF0ZS4gUmF0aGVyIHRoYW4KQEAgLTE0MDMsNyArMTQwNyw5IEBA
IFN0cmluZyBIVE1MVG9rZW5pemVyOjpidWZmZXJlZENoYXJhY3RlcnMoKSBjb25zdAogICAgIGNo
YXJhY3RlcnMuYXBwZW5kKCc8Jyk7CiAgICAgY2hhcmFjdGVycy5hcHBlbmQoJy8nKTsKICAgICBj
aGFyYWN0ZXJzLmFwcGVuZChtX3RlbXBvcmFyeUJ1ZmZlci5kYXRhKCksIG1fdGVtcG9yYXJ5QnVm
ZmVyLnNpemUoKSk7Ci0gICAgcmV0dXJuIGNoYXJhY3RlcnMudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBjaGFyYWN0ZXJzLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSFRNTFRva2VuaXplcjo6dXBkYXRlU3RhdGVG
b3IoY29uc3QgQXRvbWljU3RyaW5nJiB0YWdOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKaW5kZXggYjEwYTRjNC4uODk5ZDRiZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCkBAIC0yNTY5
LDE5ICsyNTY5LDIyIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpkZWZhdWx0Rm9yQWZ0ZXJIZWFk
KCkKIAogdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OmRlZmF1bHRGb3JJblRhYmxlVGV4dCgpCiB7Ci0g
ICAgU3RyaW5nIGNoYXJhY3RlcnMgPSBtX3BlbmRpbmdUYWJsZUNoYXJhY3RlcnMudG9TdHJpbmco
KTsKLSAgICBtX3BlbmRpbmdUYWJsZUNoYXJhY3RlcnMuY2xlYXIoKTsKLSAgICBpZiAoIWlzQWxs
V2hpdGVzcGFjZShjaGFyYWN0ZXJzKSkgewotICAgICAgICAvLyBGSVhNRTogcGFyc2UgZXJyb3IK
LSAgICAgICAgSFRNTENvbnN0cnVjdGlvblNpdGU6OlJlZGlyZWN0VG9Gb3N0ZXJQYXJlbnRHdWFy
ZCByZWRpcmVjdGVyKG1fdHJlZSk7Ci0gICAgICAgIG1fdHJlZS5yZWNvbnN0cnVjdFRoZUFjdGl2
ZUZvcm1hdHRpbmdFbGVtZW50cygpOwotICAgICAgICBtX3RyZWUuaW5zZXJ0VGV4dE5vZGUoY2hh
cmFjdGVycywgTm90QWxsV2hpdGVzcGFjZSk7Ci0gICAgICAgIG1fZnJhbWVzZXRPayA9IGZhbHNl
OworICAgIGlmIChhdXRvIHN0cmluZyA9IG1fcGVuZGluZ1RhYmxlQ2hhcmFjdGVycy50b1N0cmlu
ZygpKSB7CisgICAgICAgIFN0cmluZyBjaGFyYWN0ZXJzID0gKnN0cmluZzsKKyAgICAgICAgbV9w
ZW5kaW5nVGFibGVDaGFyYWN0ZXJzLmNsZWFyKCk7CisgICAgICAgIGlmICghaXNBbGxXaGl0ZXNw
YWNlKGNoYXJhY3RlcnMpKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogcGFyc2UgZXJyb3IKKyAg
ICAgICAgICAgIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpSZWRpcmVjdFRvRm9zdGVyUGFyZW50R3Vh
cmQgcmVkaXJlY3RlcihtX3RyZWUpOworICAgICAgICAgICAgbV90cmVlLnJlY29uc3RydWN0VGhl
QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7CisgICAgICAgICAgICBtX3RyZWUuaW5zZXJ0VGV4
dE5vZGUoY2hhcmFjdGVycywgTm90QWxsV2hpdGVzcGFjZSk7CisgICAgICAgICAgICBtX2ZyYW1l
c2V0T2sgPSBmYWxzZTsKKyAgICAgICAgICAgIG1faW5zZXJ0aW9uTW9kZSA9IG1fb3JpZ2luYWxJ
bnNlcnRpb25Nb2RlOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1f
dHJlZS5pbnNlcnRUZXh0Tm9kZShjaGFyYWN0ZXJzKTsKICAgICAgICAgbV9pbnNlcnRpb25Nb2Rl
ID0gbV9vcmlnaW5hbEluc2VydGlvbk1vZGU7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAg
bV90cmVlLmluc2VydFRleHROb2RlKGNoYXJhY3RlcnMpOwotICAgIG1faW5zZXJ0aW9uTW9kZSA9
IG1fb3JpZ2luYWxJbnNlcnRpb25Nb2RlOworICAgIH0gZWxzZQorICAgICAgICBDUkFTSCgpOwog
fQogCiBib29sIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5IZWFkKEF0b21p
Y0hUTUxUb2tlbiYmIHRva2VuKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hT
U0F1ZGl0b3JEZWxlZ2F0ZS5jcHAKaW5kZXggODBiNDIxMy4uN2Q0Yzg5YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwCkBAIC02Niw3
ICs2Niw5IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIGJ1aWxkQ29uc29sZUVycm9yKGNvbnN0IFhT
U0luZm8mIHhzc0luZm8pCiAgICAgZWxzZQogICAgICAgICBtZXNzYWdlLmFwcGVuZExpdGVyYWwo
IiBUaGUgYXVkaXRvciB3YXMgZW5hYmxlZCBiZWNhdXNlIHRoZSBzZXJ2ZXIgZGlkIG5vdCBzZW5k
IGFuICdYLVhTUy1Qcm90ZWN0aW9uJyBoZWFkZXIuIik7CiAKLSAgICByZXR1cm4gbWVzc2FnZS50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1lc3NhZ2UudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogUmVmPEZvcm1EYXRhPiBY
U1NBdWRpdG9yRGVsZWdhdGU6OmdlbmVyYXRlVmlvbGF0aW9uUmVwb3J0KGNvbnN0IFhTU0luZm8m
IHhzc0luZm8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0J1ZmZlcmVk
TGluZVJlYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0J1ZmZlcmVkTGluZVJl
YWRlci5jcHAKaW5kZXggOGYyMzYyNS4uZjI5MDhkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9CdWZmZXJlZExpbmVSZWFkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svQnVmZmVyZWRMaW5lUmVhZGVyLmNwcApAQCAtOTIsOSArOTIsMTEgQEAgc3Rk
OjpvcHRpb25hbDxTdHJpbmc+IEJ1ZmZlcmVkTGluZVJlYWRlcjo6bmV4dExpbmUoKQogICAgIH0K
IAogICAgIGlmIChzaG91bGRSZXR1cm5MaW5lKSB7Ci0gICAgICAgIGF1dG8gbGluZSA9IG1fbGlu
ZUJ1ZmZlci50b1N0cmluZygpOwotICAgICAgICBtX2xpbmVCdWZmZXIuY2xlYXIoKTsKLSAgICAg
ICAgcmV0dXJuIFdURk1vdmUobGluZSk7CisgICAgICAgIGlmIChhdXRvIGxpbmUgPSBtX2xpbmVC
dWZmZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgbV9saW5lQnVmZmVyLmNsZWFyKCk7Cisg
ICAgICAgICAgICByZXR1cm4gV1RGTW92ZSgqbGluZSk7CisgICAgICAgIH0KKyAgICAgICAgQ1JB
U0goKTsKICAgICB9CiAKICAgICBBU1NFUlQobV9idWZmZXIuaXNFbXB0eSgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcAppbmRleCAzMzNhMmY4Li4yOTQxNmEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwCkBAIC0xNTMsNyArMTUzLDEwIEBA
IHZvaWQgVHJhY2tCYXNlOjpzZXRMYW5ndWFnZShjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1YWdl
KQogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJUaGUgbGFuZ3VhZ2Ug
JyIpOwogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQobGFuZ3VhZ2UpOwogICAgICAg
ICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCInIGlzIG5vdCBhIHZhbGlkIEJDUCA0
NyBsYW5ndWFnZSB0YWcuIik7Ci0gICAgICAgICAgICBtZXNzYWdlID0gc3RyaW5nQnVpbGRlci50
b1N0cmluZygpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAqc3RyaW5nOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KICAgICAgICAgaWYg
KGF1dG8gZWxlbWVudCA9IHRoaXMtPmVsZW1lbnQoKSkKICAgICAgICAgICAgIGVsZW1lbnQtPmRv
Y3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6UmVuZGVyaW5nLCBNZXNz
YWdlTGV2ZWw6Oldhcm5pbmcsIG1lc3NhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9WVFRDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUu
Y3BwCmluZGV4IDc4ZjhhZGYuLjNiYmMyNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVlRUQ3VlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1
ZS5jcHAKQEAgLTYyOSw3ICs2MjksMTEgQEAgdm9pZCBWVFRDdWU6OmRldGVybWluZVRleHREaXJl
Y3Rpb24oKQogICAgICAgICBwYXJhZ3JhcGhCdWlsZGVyLmFwcGVuZChub2RlLT5ub2RlVmFsdWUo
KSk7CiAgICAgfQogCi0gICAgU3RyaW5nIHBhcmFncmFwaCA9IHBhcmFncmFwaEJ1aWxkZXIudG9T
dHJpbmcoKTsKKyAgICBTdHJpbmcgcGFyYWdyYXBoID0gWyZdICgpIHsKKyAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gcGFyYWdyYXBoQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CisgICAgfSgpOwogICAgIGlmICghcGFyYWdy
YXBoLmxlbmd0aCgpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svV2ViVlRUUGFyc2VyLmNwcAppbmRleCA1MThlZDhiLi44MGQwMmM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwCkBAIC00MDQsNyArNDA0LDEwIEBAIHZv
aWQgV2ViVlRUUGFyc2VyOjpjcmVhdGVOZXdDdWUoKQogICAgIFJlZlB0cjxXZWJWVFRDdWVEYXRh
PiBjdWUgPSBXZWJWVFRDdWVEYXRhOjpjcmVhdGUoKTsKICAgICBjdWUtPnNldFN0YXJ0VGltZSht
X2N1cnJlbnRTdGFydFRpbWUpOwogICAgIGN1ZS0+c2V0RW5kVGltZShtX2N1cnJlbnRFbmRUaW1l
KTsKLSAgICBjdWUtPnNldENvbnRlbnQobV9jdXJyZW50Q29udGVudC50b1N0cmluZygpKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBtX2N1cnJlbnRDb250ZW50LnRvU3RyaW5nKCkpCisgICAgICAg
IGN1ZS0+c2V0Q29udGVudCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAg
ICAgY3VlLT5zZXRJZChtX2N1cnJlbnRJZCk7CiAgICAgY3VlLT5zZXRTZXR0aW5ncyhtX2N1cnJl
bnRTZXR0aW5ncyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2Vi
VlRUVG9rZW5pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5p
emVyLmNwcAppbmRleCAwMjRjMDRhLi5mZTNkZGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1dlYlZUVFRva2VuaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3BwCkBAIC0xMDgsMTEgKzEwOCwxNSBAQCBEYXRhU3Rh
dGU6CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBhZHZh
bmNlIGlucHV0IG9yIHBlcmZvcm0gYSBzdGF0ZSB0cmFuc2l0aW9uIC0ganVzdCByZXR1cm4gYSAo
bmV3KSB0b2tlbi4KICAgICAgICAgICAgIC8vIChPbiB0aGUgbmV4dCBjYWxsIHRvIG5leHRUb2tl
biB3ZSB3aWxsIHNlZSAnPCcgYWdhaW4sIGJ1dCB0YWtlIHRoZSBvdGhlciBicmFuY2ggaW4gdGhp
cyBpZiBpbnN0ZWFkLikKLSAgICAgICAgICAgIHJldHVybiBlbWl0VG9rZW4odG9rZW4sIFdlYlZU
VFRva2VuOjpTdHJpbmdUb2tlbihyZXN1bHQudG9TdHJpbmcoKSkpOworICAgICAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IGVtaXRUb2tlbih0b2tlbiwgV2ViVlRUVG9rZW46OlN0cmluZ1Rva2VuKCpzdHJpbmcpKTsKKyAg
ICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKGNoYXJhY3RlciA9
PSBrRW5kT2ZGaWxlTWFya2VyKQotICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbiht
X2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OlN0cmluZ1Rva2VuKHJlc3VsdC50b1N0cmluZygp
KSk7Ci0gICAgZWxzZSB7CisgICAgfSBlbHNlIGlmIChjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1h
cmtlcikgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJW
VFRUb2tlbjo6U3RyaW5nVG9rZW4oKnN0cmluZykpOworICAgICAgICBDUkFTSCgpOworICAgIH0g
ZWxzZSB7CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2hhcmFjdGVyKTsKICAgICAgICAgV0VCVlRU
X0FEVkFOQ0VfVE8oRGF0YVN0YXRlKTsKICAgICB9CkBAIC0xNDIsMTAgKzE0NiwxNCBAQCBFc2Nh
cGVTdGF0ZToKICAgICAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oRXNjYXBlU3RhdGUpOwogICAgIH0g
ZWxzZSBpZiAoY2hhcmFjdGVyID09ICc8JykgewogICAgICAgICByZXN1bHQuYXBwZW5kKGJ1ZmZl
cik7Ci0gICAgICAgIHJldHVybiBlbWl0VG9rZW4odG9rZW4sIFdlYlZUVFRva2VuOjpTdHJpbmdU
b2tlbihyZXN1bHQudG9TdHJpbmcoKSkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1
bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiBlbWl0VG9rZW4odG9rZW4sIFdlYlZU
VFRva2VuOjpTdHJpbmdUb2tlbigqc3RyaW5nKSk7CisgICAgICAgIENSQVNIKCk7CiAgICAgfSBl
bHNlIGlmIChjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICByZXN1bHQu
YXBwZW5kKGJ1ZmZlcik7Ci0gICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5w
dXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6U3RyaW5nVG9rZW4ocmVzdWx0LnRvU3RyaW5nKCkpKTsK
KyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAg
ICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46
OlN0cmluZ1Rva2VuKCpzdHJpbmcpKTsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9IGVsc2Ugewog
ICAgICAgICByZXN1bHQuYXBwZW5kKGJ1ZmZlcik7CiAgICAgICAgIGJ1ZmZlci5jbGVhcigpOwpA
QCAtMTcyLDcgKzE4MCw5IEBAIFRhZ1N0YXRlOgogICAgICAgICBXRUJWVFRfQURWQU5DRV9UTyhU
aW1lc3RhbXBUYWdTdGF0ZSk7CiAgICAgfSBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gJz4nIHx8IGNo
YXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgIEFTU0VSVChyZXN1bHQuaXNF
bXB0eSgpKTsKLSAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9r
ZW4sIFdlYlZUVFRva2VuOjpTdGFydFRhZyhyZXN1bHQudG9TdHJpbmcoKSkpOworICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiBh
ZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6U3RhcnRUYWco
KnN0cmluZykpOworICAgICAgICBDUkFTSCgpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoY2hhcmFjdGVyKTsKICAgICAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oU3RhcnRUYWdT
dGF0ZSk7CkBAIC0xODMsOSArMTkzLDExIEBAIFN0YXJ0VGFnU3RhdGU6CiAgICAgICAgIFdFQlZU
VF9BRFZBTkNFX1RPKFN0YXJ0VGFnQW5ub3RhdGlvblN0YXRlKTsKICAgICBlbHNlIGlmIChjaGFy
YWN0ZXIgPT0gJy4nKQogICAgICAgICBXRUJWVFRfQURWQU5DRV9UTyhTdGFydFRhZ0NsYXNzU3Rh
dGUpOwotICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSAnPicgfHwgY2hhcmFjdGVyID09IGtFbmRP
ZkZpbGVNYXJrZXIpCi0gICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQs
IHRva2VuLCBXZWJWVFRUb2tlbjo6U3RhcnRUYWcocmVzdWx0LnRvU3RyaW5nKCkpKTsKLSAgICBl
bHNlIHsKKyAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gJz4nIHx8IGNoYXJhY3RlciA9PSBrRW5k
T2ZGaWxlTWFya2VyKSB7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmlu
ZygpKQorICAgICAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9r
ZW4sIFdlYlZUVFRva2VuOjpTdGFydFRhZygqc3RyaW5nKSk7CisgICAgICAgIENSQVNIKCk7Cisg
ICAgfSBlbHNlIHsKICAgICAgICAgcmVzdWx0LmFwcGVuZChjaGFyYWN0ZXIpOwogICAgICAgICBX
RUJWVFRfQURWQU5DRV9UTyhTdGFydFRhZ1N0YXRlKTsKICAgICB9CkBAIC0yMDIsMjcgKzIxNCw0
NCBAQCBTdGFydFRhZ0NsYXNzU3RhdGU6CiAgICAgfSBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gJz4n
IHx8IGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgIGFkZE5ld0NsYXNz
KGNsYXNzZXMsIGJ1ZmZlcik7CiAgICAgICAgIGJ1ZmZlci5jbGVhcigpOwotICAgICAgICByZXR1
cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OlN0YXJ0
VGFnKHJlc3VsdC50b1N0cmluZygpLCBjbGFzc2VzLnRvQXRvbWljU3RyaW5nKCkpKTsKKyAgICAg
ICAgaWYgKGF1dG8gcmVzdWx0U3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpIHsKKyAgICAgICAg
ICAgIGlmIChhdXRvIGNsYXNzZXNTdHJpbmcgPSBjbGFzc2VzLnRvQXRvbWljU3RyaW5nKCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4s
IFdlYlZUVFRva2VuOjpTdGFydFRhZygqcmVzdWx0U3RyaW5nLCAqY2xhc3Nlc1N0cmluZykpOwor
ICAgICAgICB9CisgICAgICAgIENSQVNIKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgYnVmZmVy
LmFwcGVuZChjaGFyYWN0ZXIpOwogICAgICAgICBXRUJWVFRfQURWQU5DRV9UTyhTdGFydFRhZ0Ns
YXNzU3RhdGUpOwogICAgIH0KIAogU3RhcnRUYWdBbm5vdGF0aW9uU3RhdGU6Ci0gICAgaWYgKGNo
YXJhY3RlciA9PSAnPicgfHwgY2hhcmFjdGVyID09IGtFbmRPZkZpbGVNYXJrZXIpCi0gICAgICAg
IHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6
U3RhcnRUYWcocmVzdWx0LnRvU3RyaW5nKCksIGNsYXNzZXMudG9BdG9taWNTdHJpbmcoKSwgYnVm
ZmVyLnRvQXRvbWljU3RyaW5nKCkpKTsKKyAgICBpZiAoY2hhcmFjdGVyID09ICc+JyB8fCBjaGFy
YWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikgeworICAgICAgICBpZiAoYXV0byByZXN1bHRTdHJp
bmcgPSByZXN1bHQudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8gY2xhc3Nlc1N0
cmluZyA9IGNsYXNzZXMudG9BdG9taWNTdHJpbmcoKSkgeworICAgICAgICAgICAgICAgIGlmIChh
dXRvIGJ1ZmZlclN0cmluZyA9IGJ1ZmZlci50b0F0b21pY1N0cmluZygpKQorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRU
VG9rZW46OlN0YXJ0VGFnKCpyZXN1bHRTdHJpbmcsICpjbGFzc2VzU3RyaW5nLCAqYnVmZmVyU3Ry
aW5nKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgQ1JBU0goKTsKKyAgICB9
CiAgICAgYnVmZmVyLmFwcGVuZChjaGFyYWN0ZXIpOwogICAgIFdFQlZUVF9BRFZBTkNFX1RPKFN0
YXJ0VGFnQW5ub3RhdGlvblN0YXRlKTsKIAogRW5kVGFnU3RhdGU6Ci0gICAgaWYgKGNoYXJhY3Rl
ciA9PSAnPicgfHwgY2hhcmFjdGVyID09IGtFbmRPZkZpbGVNYXJrZXIpCi0gICAgICAgIHJldHVy
biBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6RW5kVGFn
KHJlc3VsdC50b1N0cmluZygpKSk7CisgICAgaWYgKGNoYXJhY3RlciA9PSAnPicgfHwgY2hhcmFj
dGVyID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVz
dWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbiht
X2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OkVuZFRhZygqc3RyaW5nKSk7CisgICAgICAgIENS
QVNIKCk7CisgICAgfQogICAgIHJlc3VsdC5hcHBlbmQoY2hhcmFjdGVyKTsKICAgICBXRUJWVFRf
QURWQU5DRV9UTyhFbmRUYWdTdGF0ZSk7CiAKIFRpbWVzdGFtcFRhZ1N0YXRlOgotICAgIGlmIChj
aGFyYWN0ZXIgPT0gJz4nIHx8IGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKQotICAgICAg
ICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46
OlRpbWVzdGFtcFRhZyhyZXN1bHQudG9TdHJpbmcoKSkpOworICAgIGlmIChjaGFyYWN0ZXIgPT0g
Jz4nIHx8IGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuIGFkdmFuY2VB
bmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpUaW1lc3RhbXBUYWcoKnN0
cmluZykpOworICAgICAgICBDUkFTSCgpOworICAgIH0KICAgICByZXN1bHQuYXBwZW5kKGNoYXJh
Y3Rlcik7CiAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oVGltZXN0YW1wVGFnU3RhdGUpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCmluZGV4
IDlkOTg1ODEuLjY1MWQyZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yU3R5bGVTaGVldC5jcHAKQEAgLTc3MSw3ICs3NzEsOSBAQCBTdHJpbmcgSW5zcGVjdG9y
U3R5bGU6OnNob3J0aGFuZFZhbHVlKGNvbnN0IFN0cmluZyYgc2hvcnRoYW5kUHJvcGVydHkpIGNv
bnN0CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgICAgICBidWlsZGVyLmFw
cGVuZChpbmRpdmlkdWFsVmFsdWUpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIEluc3BlY3RvclN0eWxl
OjpzaG9ydGhhbmRQcmlvcml0eShjb25zdCBTdHJpbmcmIHNob3J0aGFuZFByb3BlcnR5KSBjb25z
dApAQCAtOTQzLDEzICs5NDUsMjAgQEAgRXhjZXB0aW9uT3I8Q1NTU3R5bGVSdWxlKj4gSW5zcGVj
dG9yU3R5bGVTaGVldDo6YWRkUnVsZShjb25zdCBTdHJpbmcmIHNlbGVjdG9yKQogICAgIHN0eWxl
U2hlZXRUZXh0LmFwcGVuZExpdGVyYWwoIiB7fSIpOwogCiAgICAgLy8gVXNpbmcgc2V0VGV4dCgp
IGFzIHRoaXMgb3BlcmF0aW9uIGNoYW5nZXMgdGhlIHN0eWxlc2hlZXQgcnVsZSBzZXQuCi0gICAg
c2V0VGV4dChzdHlsZVNoZWV0VGV4dC50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBzdHlsZVNoZWV0VGV4dC50b1N0cmluZygpKQorICAgICAgICBzZXRUZXh0KCpzdHJpbmcpOwor
ICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIC8vIEluc3BlY3RvciBTdHlsZSBTaGVl
dHMgYXJlIGFsd2F5cyB0cmVhdGVkIGFzIHRob3VnaCB0aGVpciBwYXJzZWQgZGF0YSBpcyByZWFk
eS4KICAgICBpZiAobV9vcmlnaW4gPT0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpTdHlsZVNo
ZWV0T3JpZ2luOjpJbnNwZWN0b3IpCiAgICAgICAgIGZpcmVTdHlsZVNoZWV0Q2hhbmdlZCgpOwot
ICAgIGVsc2UKLSAgICAgICAgcmVwYXJzZVN0eWxlU2hlZXQoc3R5bGVTaGVldFRleHQudG9TdHJp
bmcoKSk7CisgICAgZWxzZSB7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0eWxlU2hlZXRU
ZXh0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXBhcnNlU3R5bGVTaGVldCgqc3RyaW5nKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKKyAgICB9CiAKICAgICBBU1NFUlQo
bV9wYWdlU3R5bGVTaGVldC0+bGVuZ3RoKCkpOwogICAgIHVuc2lnbmVkIGxhc3RSdWxlSW5kZXgg
PSBtX3BhZ2VTdHlsZVNoZWV0LT5sZW5ndGgoKSAtIDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFwcGxpY2F0aW9uQ2Fj
aGVBZ2VudC5jcHAKaW5kZXggMTlhZjRlOS4uYmY5YjRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRp
b25DYWNoZUFnZW50LmNwcApAQCAtMTcyLDExICsxNzIsMTQgQEAgUmVmPEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkFwcGxpY2F0aW9uQ2FjaGU6OkFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZT4gSW5zcGVj
dG9yQXAKICAgICBpZiAocmVzb3VyY2VJbmZvLmlzRXhwbGljaXQpCiAgICAgICAgIHR5cGVzLmFw
cGVuZExpdGVyYWwoIkV4cGxpY2l0ICIpOwogCi0gICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkFwcGxpY2F0aW9uQ2FjaGU6OkFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6Y3JlYXRlKCkK
LSAgICAgICAgLnNldFVybChyZXNvdXJjZUluZm8ucmVzb3VyY2Uuc3RyaW5nKCkpCi0gICAgICAg
IC5zZXRTaXplKHN0YXRpY19jYXN0PGludD4ocmVzb3VyY2VJbmZvLnNpemUpKQotICAgICAgICAu
c2V0VHlwZSh0eXBlcy50b1N0cmluZygpKQotICAgICAgICAucmVsZWFzZSgpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IHR5cGVzLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgcmV0dXJuIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkFwcGxpY2F0aW9uQ2FjaGU6OkFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6
Y3JlYXRlKCkKKyAgICAgICAgICAgIC5zZXRVcmwocmVzb3VyY2VJbmZvLnJlc291cmNlLnN0cmlu
ZygpKQorICAgICAgICAgICAgLnNldFNpemUoc3RhdGljX2Nhc3Q8aW50PihyZXNvdXJjZUluZm8u
c2l6ZSkpCisgICAgICAgICAgICAuc2V0VHlwZSgqc3RyaW5nKQorICAgICAgICAgICAgLnJlbGVh
c2UoKTsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3
b3JrQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JO
ZXR3b3JrQWdlbnQuY3BwCmluZGV4IDQ2ZTRhZmUuLmFmMTcwNDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5j
cHAKQEAgLTEzNCw4ICsxMzQsMTEgQEAgcHVibGljOgogICAgICAgICBpZiAobV9kZWNvZGVyKQog
ICAgICAgICAgICAgbV9yZXNwb25zZVRleHQuYXBwZW5kKG1fZGVjb2Rlci0+Zmx1c2goKSk7CiAK
LSAgICAgICAgbV9jYWxsYmFjay0+c2VuZFN1Y2Nlc3MobV9yZXNwb25zZVRleHQudG9TdHJpbmco
KSwgbV9taW1lVHlwZSwgbV9zdGF0dXNDb2RlKTsKLSAgICAgICAgZGlzcG9zZSgpOworICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSBtX3Jlc3BvbnNlVGV4dC50b1N0cmluZygpKSB7CisgICAgICAg
ICAgICBtX2NhbGxiYWNrLT5zZW5kU3VjY2Vzcygqc3RyaW5nLCBtX21pbWVUeXBlLCBtX3N0YXR1
c0NvZGUpOworICAgICAgICAgICAgZGlzcG9zZSgpOworICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgdm9pZCBkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJy
b3ImIGVycm9yKSBvdmVycmlkZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9XZWJDb25zb2xlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9XZWJDb25zb2xlQWdlbnQuY3BwCmluZGV4IGRjOTY0ODYuLjYzODM4YWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkNvbnNvbGVBZ2VudC5jcHAK
QEAgLTE2OSw3ICsxNjksMTAgQEAgdm9pZCBXZWJDb25zb2xlQWdlbnQ6OmRpZEZhaWxMb2FkaW5n
KHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFJlc28KICAgICAgICAgbWVz
c2FnZS5hcHBlbmQoZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKSk7CiAgICAgfQogCi0gICAg
YWRkTWVzc2FnZVRvQ29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNzYWdlPihNZXNz
YWdlU291cmNlOjpOZXR3b3JrLCBNZXNzYWdlVHlwZTo6TG9nLCBNZXNzYWdlTGV2ZWw6OkVycm9y
LCBtZXNzYWdlLnRvU3RyaW5nKCksIGVycm9yLmZhaWxpbmdVUkwoKSwgMCwgMCwgbnVsbHB0ciwg
cmVxdWVzdElkZW50aWZpZXIpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtZXNzYWdlLnRvU3Ry
aW5nKCkpCisgICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25z
b2xlTWVzc2FnZT4oTWVzc2FnZVNvdXJjZTo6TmV0d29yaywgTWVzc2FnZVR5cGU6OkxvZywgTWVz
c2FnZUxldmVsOjpFcnJvciwgKnN0cmluZywgZXJyb3IuZmFpbGluZ1VSTCgpLCAwLCAwLCBudWxs
cHRyLCByZXF1ZXN0SWRlbnRpZmllcikpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Q3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcAppbmRleCA2ODgwNGYyLi5mODhhNDVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNw
cApAQCAtMTEyLDggKzExMiwxMiBAQCBSZXNvdXJjZVJlcXVlc3QgY3JlYXRlQWNjZXNzQ29udHJv
bFByZWZsaWdodFJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZQogCiAgICAgICAg
ICAgICBoZWFkZXJCdWZmZXIuYXBwZW5kKGhlYWRlckZpZWxkKTsKICAgICAgICAgfQotICAgICAg
ICBpZiAoIWhlYWRlckJ1ZmZlci5pc0VtcHR5KCkpCi0gICAgICAgICAgICBwcmVmbGlnaHRSZXF1
ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6QWNjZXNzQ29udHJvbFJlcXVl
c3RIZWFkZXJzLCBoZWFkZXJCdWZmZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmICghaGVhZGVy
QnVmZmVyLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gaGVhZGVy
QnVmZmVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgcHJlZmxpZ2h0UmVxdWVzdC5zZXRI
VFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkFjY2Vzc0NvbnRyb2xSZXF1ZXN0SGVhZGVy
cywgKnN0cmluZyk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsK
KyAgICAgICAgfQogICAgIH0KIAogICAgIHJldHVybiBwcmVmbGlnaHRSZXF1ZXN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuY3BwCmluZGV4IDRk
ZjI1ZGEuLjk4NmZlNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljcy5jcHAKQEAgLTI2OCw3ICsyNjgsOSBAQCBTdHJpbmcgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljczo6dG9TdHJpbmcoKSBjb25zdAogCiAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7
CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcAppbmRleCBm
ZjI5Mzg5Li40ZjIyZDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAKQEAgLTg0MSwxNyArODQxLDIw
IEBAIGJvb2wgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OnN0b3JlKEFwcGxpY2F0aW9uQ2FjaGVS
ZXNvdXJjZSogcmVzb3VyY2UsIHVuc2lnbmVkCiAKICAgICAvLyBUaGVuLCBpbnNlcnQgdGhlIHJl
c291cmNlCiAgICAgCi0gICAgLy8gU2VyaWFsaXplIHRoZSBoZWFkZXJzCi0gICAgU3RyaW5nQnVp
bGRlciBzdHJpbmdCdWlsZGVyOwotICAgIAotICAgIGZvciAoY29uc3QgYXV0byYgaGVhZGVyIDog
cmVzb3VyY2UtPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkcygpKSB7Ci0gICAgICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kKGhlYWRlci5rZXkpOwotICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
ZCgnOicpOwotICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChoZWFkZXIudmFsdWUpOwotICAg
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICB9Ci0gICAgCi0gICAgU3RyaW5n
IGhlYWRlcnMgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgU3RyaW5nIGhlYWRlcnMg
PSBbJl0gKCkgeworICAgICAgICAvLyBTZXJpYWxpemUgdGhlIGhlYWRlcnMKKyAgICAgICAgU3Ry
aW5nQnVpbGRlciBzdHJpbmdCdWlsZGVyOworICAgIAorICAgICAgICBmb3IgKGNvbnN0IGF1dG8m
IGhlYWRlciA6IHJlc291cmNlLT5yZXNwb25zZSgpLmh0dHBIZWFkZXJGaWVsZHMoKSkgeworICAg
ICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoaGVhZGVyLmtleSk7CisgICAgICAgICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZCgnOicpOworICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmQoaGVhZGVyLnZhbHVlKTsKKyAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicp
OworICAgICAgICB9CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwor
ICAgIH0oKTsKICAgICAKICAgICBTUUxpdGVTdGF0ZW1lbnQgcmVzb3VyY2VTdGF0ZW1lbnQobV9k
YXRhYmFzZSwgIklOU0VSVCBJTlRPIENhY2hlUmVzb3VyY2VzICh1cmwsIHN0YXR1c0NvZGUsIHJl
c3BvbnNlVVJMLCBoZWFkZXJzLCBkYXRhLCBtaW1lVHlwZSwgdGV4dEVuY29kaW5nTmFtZSkgVkFM
VUVTICg/LCA/LCA/LCA/LCA/LCA/LCA/KSIpOwogICAgIGlmIChyZXNvdXJjZVN0YXRlbWVudC5w
cmVwYXJlKCkgIT0gU1FMSVRFX09LKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
YXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcAppbmRleCAxMmEzMGNjLi5jZmU3Mzg2M2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFy
Y2hpdmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdl
YkFyY2hpdmUuY3BwCkBAIC01NTcsMjEgKzU1NywyNCBAQCBSZWZQdHI8TGVnYWN5V2ViQXJjaGl2
ZT4gTGVnYWN5V2ViQXJjaGl2ZTo6Y3JlYXRlRnJvbVNlbGVjdGlvbihGcmFtZSogZnJhbWUpCiAg
ICAgaWYgKGF1dG8gc2VsZWN0aW9uUmFuZ2UgPSBmcmFtZS0+c2VsZWN0aW9uKCkudG9Ob3JtYWxp
emVkUmFuZ2UoKSkKICAgICAgICAgYnVpbGRlci5hcHBlbmQoY3JlYXRlTWFya3VwKCpzZWxlY3Rp
b25SYW5nZSwgJm5vZGVMaXN0LCBBbm5vdGF0ZUZvckludGVyY2hhbmdlKSk7CiAKLSAgICBhdXRv
IGFyY2hpdmUgPSBjcmVhdGUoYnVpbGRlci50b1N0cmluZygpLCAqZnJhbWUsIG5vZGVMaXN0LCBu
dWxscHRyKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAg
ICAgICAgYXV0byBhcmNoaXZlID0gY3JlYXRlKCpzdHJpbmcsICpmcmFtZSwgbm9kZUxpc3QsIG51
bGxwdHIpOwogICAgIAotICAgIGlmICghZG9jdW1lbnQtPmlzRnJhbWVTZXQoKSkKLSAgICAgICAg
cmV0dXJuIGFyY2hpdmU7CisgICAgICAgIGlmICghZG9jdW1lbnQtPmlzRnJhbWVTZXQoKSkKKyAg
ICAgICAgICAgIHJldHVybiBhcmNoaXZlOwogICAgICAgICAKLSAgICAvLyBXcmFwIHRoZSBmcmFt
ZXNldCBkb2N1bWVudCBpbiBhbiBpZnJhbWUgc28gaXQgY2FuIGJlIHBhc3RlZCBpbnRvCi0gICAg
Ly8gYW5vdGhlciBkb2N1bWVudCAod2hpY2ggd2lsbCBoYXZlIGEgYm9keSBvciBmcmFtZXNldCBv
ZiBpdHMgb3duKS4gCi0gICAgU3RyaW5nIGlmcmFtZU1hcmt1cCA9ICI8aWZyYW1lIGZyYW1lYm9y
ZGVyPVwibm9cIiBtYXJnaW53aWR0aD1cIjBcIiBtYXJnaW5oZWlnaHQ9XCIwXCIgd2lkdGg9XCI5
OCUlXCIgaGVpZ2h0PVwiOTglJVwiIHNyYz1cIiIgKyBmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRM
b2FkZXIoKS0+cmVzcG9uc2UoKS51cmwoKS5zdHJpbmcoKSArICJcIj48L2lmcmFtZT4iOwotICAg
IGF1dG8gaWZyYW1lUmVzb3VyY2UgPSBBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZSh1dGY4QnVmZmVy
KGlmcmFtZU1hcmt1cCksIGJsYW5rVVJMKCksICJ0ZXh0L2h0bWwiLCAiVVRGLTgiLCBTdHJpbmco
KSk7CisgICAgICAgIC8vIFdyYXAgdGhlIGZyYW1lc2V0IGRvY3VtZW50IGluIGFuIGlmcmFtZSBz
byBpdCBjYW4gYmUgcGFzdGVkIGludG8KKyAgICAgICAgLy8gYW5vdGhlciBkb2N1bWVudCAod2hp
Y2ggd2lsbCBoYXZlIGEgYm9keSBvciBmcmFtZXNldCBvZiBpdHMgb3duKS4gCisgICAgICAgIFN0
cmluZyBpZnJhbWVNYXJrdXAgPSAiPGlmcmFtZSBmcmFtZWJvcmRlcj1cIm5vXCIgbWFyZ2lud2lk
dGg9XCIwXCIgbWFyZ2luaGVpZ2h0PVwiMFwiIHdpZHRoPVwiOTglJVwiIGhlaWdodD1cIjk4JSVc
IiBzcmM9XCIiICsgZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnJlc3BvbnNlKCku
dXJsKCkuc3RyaW5nKCkgKyAiXCI+PC9pZnJhbWU+IjsKKyAgICAgICAgYXV0byBpZnJhbWVSZXNv
dXJjZSA9IEFyY2hpdmVSZXNvdXJjZTo6Y3JlYXRlKHV0ZjhCdWZmZXIoaWZyYW1lTWFya3VwKSwg
YmxhbmtVUkwoKSwgInRleHQvaHRtbCIsICJVVEYtOCIsIFN0cmluZygpKTsKIAotICAgIFZlY3Rv
cjxSZWY8TGVnYWN5V2ViQXJjaGl2ZT4+IHN1YmZyYW1lQXJjaGl2ZXM7Ci0gICAgc3ViZnJhbWVB
cmNoaXZlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KDEpOwotICAgIHN1YmZyYW1lQXJjaGl2ZXMu
dW5jaGVja2VkQXBwZW5kKGFyY2hpdmUucmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgIFZlY3Rv
cjxSZWY8TGVnYWN5V2ViQXJjaGl2ZT4+IHN1YmZyYW1lQXJjaGl2ZXM7CisgICAgICAgIHN1YmZy
YW1lQXJjaGl2ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSgxKTsKKyAgICAgICAgc3ViZnJhbWVB
cmNoaXZlcy51bmNoZWNrZWRBcHBlbmQoYXJjaGl2ZS5yZWxlYXNlTm9uTnVsbCgpKTsKIAotICAg
IHJldHVybiBjcmVhdGUoaWZyYW1lUmVzb3VyY2UucmVsZWFzZU5vbk51bGwoKSwgeyB9LCBXVEZN
b3ZlKHN1YmZyYW1lQXJjaGl2ZXMpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZShpZnJhbWVSZXNv
dXJjZS5yZWxlYXNlTm9uTnVsbCgpLCB7IH0sIFdURk1vdmUoc3ViZnJhbWVBcmNoaXZlcykpOwor
ICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcAppbmRleCA3MDVjNmRjLi5hYTBhNTcz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRNTEFy
Y2hpdmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01IVE1M
QXJjaGl2ZS5jcHAKQEAgLTc2LDcgKzc2LDkgQEAgc3RhdGljIFN0cmluZyBnZW5lcmF0ZVJhbmRv
bUJvdW5kYXJ5KCkKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQobG93ZXJOaWJibGVUb0FT
Q0lJSGV4RGlnaXQocmFuZG9tVmFsdWVzW2ldKSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kKHVwcGVyTmliYmxlVG9BU0NJSUhleERpZ2l0KHJhbmRvbVZhbHVlc1tpXSkpOwogICAgIH0K
LSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyByZXBsYWNlTm9uUHJpbnRhYmxlQ2hhcmFj
dGVycyhjb25zdCBTdHJpbmcmIHRleHQpCkBAIC04OCw3ICs5MCw5IEBAIHN0YXRpYyBTdHJpbmcg
cmVwbGFjZU5vblByaW50YWJsZUNoYXJhY3RlcnMoY29uc3QgU3RyaW5nJiB0ZXh0KQogICAgICAg
ICBlbHNlCiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnPycpOwogICAgIH0KLSAg
ICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogTUhUTUxBcmNoaXZlOjpNSFRNTEFyY2hpdmUoKQpAQCAtMTYwLDEwICsx
NjQsMTYgQEAgUmVmPFNoYXJlZEJ1ZmZlcj4gTUhUTUxBcmNoaXZlOjpnZW5lcmF0ZU1IVE1MRGF0
YShQYWdlKiBwYWdlKQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCJcIlxyXG5cclxuIik7CiAK
ICAgICAvLyBXZSB1c2UgdXRmOCgpIGJlbG93IGluc3RlYWQgb2YgYXNjaWkoKSBhcyBhc2NpaSgp
IHJlcGxhY2VzIENSTEZzIHdpdGggPz8gKHdlIHN0aWxsIG9ubHkgaGF2ZSBwdXQgQVNDSUkgY2hh
cmFjdGVycyBpbiBpdCkuCi0gICAgQVNTRVJUKHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKS5pc0Fs
bEFTQ0lJKCkpOwotICAgIENTdHJpbmcgYXNjaWlTdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3Ry
aW5nKCkudXRmOCgpOwotICAgIGF1dG8gbWh0bWxEYXRhID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUo
KTsKLSAgICBtaHRtbERhdGEtPmFwcGVuZChhc2NpaVN0cmluZy5kYXRhKCksIGFzY2lpU3RyaW5n
Lmxlbmd0aCgpKTsKKyAgICBhdXRvIG1odG1sRGF0YSA9IFsmXSAoKSB7CisgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgQVNT
RVJUKHN0cmluZy0+aXNBbGxBU0NJSSgpKTsKKyAgICAgICAgICAgIENTdHJpbmcgYXNjaWlTdHJp
bmcgPSBzdHJpbmctPnV0ZjgoKTsKKyAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gU2hhcmVkQnVm
ZmVyOjpjcmVhdGUoKTsKKyAgICAgICAgICAgIHJlc3VsdC0+YXBwZW5kKGFzY2lpU3RyaW5nLmRh
dGEoKSwgYXNjaWlTdHJpbmcubGVuZ3RoKCkpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICAgfQorICAgICAgICBDUkFTSCgpOworICAgIH0oKTsKIAogICAgIGZvciAoYXV0byYg
cmVzb3VyY2UgOiByZXNvdXJjZXMpIHsKICAgICAgICAgc3RyaW5nQnVpbGRlci5jbGVhcigpOwpA
QCAtMTgzLDggKzE5MywxMCBAQCBSZWY8U2hhcmVkQnVmZmVyPiBNSFRNTEFyY2hpdmU6OmdlbmVy
YXRlTUhUTUxEYXRhKFBhZ2UqIHBhZ2UpCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHJl
c291cmNlLnVybCk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCJcclxuXHJcbiIpOwog
Ci0gICAgICAgIGFzY2lpU3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpLnV0ZjgoKTsK
LSAgICAgICAgbWh0bWxEYXRhLT5hcHBlbmQoYXNjaWlTdHJpbmcuZGF0YSgpLCBhc2NpaVN0cmlu
Zy5sZW5ndGgoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKSkgeworICAgICAgICAgICAgQ1N0cmluZyBhc2NpaVN0cmluZyA9IHN0cmluZy0+dXRm
OCgpOworICAgICAgICAgICAgbWh0bWxEYXRhLT5hcHBlbmQoYXNjaWlTdHJpbmcuZGF0YSgpLCBh
c2NpaVN0cmluZy5sZW5ndGgoKSk7CisgICAgICAgIH0KIAogICAgICAgICAvLyBGSVhNRTogaWRl
YWxseSB3ZSB3b3VsZCBlbmNvZGUgdGhlIGNvbnRlbnQgYXMgYSBzdHJlYW0gd2l0aG91dCBoYXZp
bmcgdG8gZmV0Y2ggaXQgYWxsLgogICAgICAgICBjb25zdCBjaGFyKiBkYXRhID0gcmVzb3VyY2Uu
ZGF0YS0+ZGF0YSgpOwpAQCAtMjEwLDggKzIyMiwxMCBAQCBSZWY8U2hhcmVkQnVmZmVyPiBNSFRN
TEFyY2hpdmU6OmdlbmVyYXRlTUhUTUxEYXRhKFBhZ2UqIHBhZ2UpCiAgICAgICAgIH0KICAgICB9
CiAKLSAgICBhc2NpaVN0cmluZyA9IG1ha2VTdHJpbmcoIi0tIiwgYm91bmRhcnksICItLVxyXG4i
KS51dGY4KCk7Ci0gICAgbWh0bWxEYXRhLT5hcHBlbmQoYXNjaWlTdHJpbmcuZGF0YSgpLCBhc2Np
aVN0cmluZy5sZW5ndGgoKSk7CisgICAgeworICAgICAgICBDU3RyaW5nIGFzY2lpU3RyaW5nID0g
bWFrZVN0cmluZygiLS0iLCBib3VuZGFyeSwgIi0tXHJcbiIpLnV0ZjgoKTsKKyAgICAgICAgbWh0
bWxEYXRhLT5hcHBlbmQoYXNjaWlTdHJpbmcuZGF0YSgpLCBhc2NpaVN0cmluZy5sZW5ndGgoKSk7
CisgICAgfQogCiAgICAgcmV0dXJuIG1odG1sRGF0YTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAKaW5kZXggYzEzOTA3
Ni4uZDgzZTI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclBy
ZWZlcmVuY2VzTWVkaWFBRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNl
clByZWZlcmVuY2VzTWVkaWFBRi5jcHAKQEAgLTM0NywxNCArMzQ3LDE4IEBAIFN0cmluZyBDYXB0
aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6d2luZG93Um91bmRlZENvcm5lclJhZGl1c0NTUygp
IGNvbnN0CiAKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYXBwZW5kQ1NTKGJ1aWxk
ZXIsIENTU1Byb3BlcnR5Qm9yZGVyUmFkaXVzLCBTdHJpbmc6OmZvcm1hdCgiJS4wMmZweCIsIHJh
ZGl1cyksIGJlaGF2aW9yID09IGtNQUNhcHRpb25BcHBlYXJhbmNlQmVoYXZpb3JVc2VWYWx1ZSk7
Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y29sb3JQcm9wZXJ0
eUNTUyhDU1NQcm9wZXJ0eUlEIGlkLCBjb25zdCBDb2xvciYgY29sb3IsIGJvb2wgaW1wb3J0YW50
KSBjb25zdAogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBhcHBlbmRDU1MoYnVp
bGRlciwgaWQsIGNvbG9yLnNlcmlhbGl6ZWQoKSwgaW1wb3J0YW50KTsKLSAgICByZXR1cm4gYnVp
bGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDYXB0
aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y2FwdGlvblN0cm9rZVdpZHRoRm9yRm9udChmbG9h
dCBmb250U2l6ZSwgY29uc3QgU3RyaW5nJiBsYW5ndWFnZSwgZmxvYXQmIHN0cm9rZVdpZHRoLCBi
b29sJiBpbXBvcnRhbnQpIGNvbnN0CkBAIC00MDYsNyArNDEwLDkgQEAgU3RyaW5nIENhcHRpb25V
c2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc1RleHRFZGdlQ1NTKCkgY29uc3QKICAgICAg
ICAgYXBwZW5kQ1NTKGJ1aWxkZXIsIENTU1Byb3BlcnR5U3Ryb2tlTGluZWNhcCwgZ2V0VmFsdWVO
YW1lKENTU1ZhbHVlUm91bmQpLCBpbXBvcnRhbnQpOwogICAgIH0KICAgICAKLSAgICByZXR1cm4g
YnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5n
IENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc0RlZmF1bHRGb250Q1NTKCkg
Y29uc3QKQEAgLTQ0OCw3ICs0NTQsOSBAQCBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01l
ZGlhQUY6OmNhcHRpb25zRGVmYXVsdEZvbnRDU1MoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwoIiAhaW1wb3J0YW50Iik7CiAgICAgYnVpbGRlci5hcHBlbmQoJzsnKTsKICAg
ICAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogZmxvYXQgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25Gb250
U2l6ZVNjYWxlQW5kSW1wb3J0YW5jZShib29sJiBpbXBvcnRhbnQpIGNvbnN0CkBAIC01OTUsOSAr
NjAzLDExIEBAIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y2FwdGlvbnNT
dHlsZVNoZWV0T3ZlcnJpZGUoKSBjb25zdAogICAgIH0KICNlbmRpZiAvLyBIQVZFKE1FRElBX0FD
Q0VTU0lCSUxJVFlfRlJBTUVXT1JLKQogCi0gICAgTE9HKE1lZGlhLCAiQ2FwdGlvblVzZXJQcmVm
ZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zU3R5bGVTaGVldE92ZXJyaWRlU2V0dGluZyBzdHlsZSB0
bzpcbiVzIiwgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQudG9TdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsKLQotICAgIHJldHVybiBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LnRvU3Ry
aW5nKCkpIHsKKyAgICAgICAgTE9HKE1lZGlhLCAiQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlh
QUY6OmNhcHRpb25zU3R5bGVTaGVldE92ZXJyaWRlU2V0dGluZyBzdHlsZSB0bzpcbiVzIiwgc3Ry
aW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgfQorICAg
IENSQVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgbGFuZ3VhZ2VJZGVudGlmaWVyKGNvbnN0IFN0
cmluZyYgbGFuZ3VhZ2VDb2RlKQpAQCAtNjY0LDEwICs2NzQsMTMgQEAgc3RhdGljIFN0cmluZyB0
cmFja0Rpc3BsYXlOYW1lKEF1ZGlvVHJhY2sqIHRyYWNrKQogICAgIGlmIChkaXNwbGF5TmFtZS5p
c0VtcHR5KCkpCiAgICAgICAgIGRpc3BsYXlOYW1lLmFwcGVuZChhdWRpb1RyYWNrTm9MYWJlbFRl
eHQoKSk7CiAKLSAgICBpZiAodHJhY2stPmtpbmQoKSAhPSBBdWRpb1RyYWNrOjpkZXNjcmlwdGlv
bktleXdvcmQoKSkKLSAgICAgICAgcmV0dXJuIGRpc3BsYXlOYW1lLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gZGlzcGxheU5hbWUudG9TdHJpbmcoKSkgeworICAgICAgICBpZiAo
dHJhY2stPmtpbmQoKSAhPSBBdWRpb1RyYWNrOjpkZXNjcmlwdGlvbktleXdvcmQoKSkKKyAgICAg
ICAgICAgIHJldHVybiAqc3RyaW5nOwogCi0gICAgcmV0dXJuIGF1ZGlvRGVzY3JpcHRpb25UcmFj
a1N1ZmZpeFRleHQoZGlzcGxheU5hbWUudG9TdHJpbmcoKSk7CisgICAgICAgIHJldHVybiBhdWRp
b0Rlc2NyaXB0aW9uVHJhY2tTdWZmaXhUZXh0KCpzdHJpbmcpOworICAgIH0KKyAgICBDUkFTSCgp
OwogfQogCiBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmRpc3BsYXlOYW1l
Rm9yVHJhY2soQXVkaW9UcmFjayogdHJhY2spIGNvbnN0CkBAIC02ODgsMjYgKzcwMSwyOSBAQCBz
dGF0aWMgU3RyaW5nIHRyYWNrRGlzcGxheU5hbWUoVGV4dFRyYWNrKiB0cmFjaykKICAgICBpZiAo
ZGlzcGxheU5hbWVCdWlsZGVyLmlzRW1wdHkoKSkKICAgICAgICAgZGlzcGxheU5hbWVCdWlsZGVy
LmFwcGVuZCh0ZXh0VHJhY2tOb0xhYmVsVGV4dCgpKTsKIAotICAgIFN0cmluZyBkaXNwbGF5TmFt
ZSA9IGRpc3BsYXlOYW1lQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGRpc3BsYXlOYW1lQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIFN0cmluZyBkaXNwbGF5
TmFtZSA9ICpzdHJpbmc7CiAKLSAgICBpZiAodHJhY2stPmlzQ2xvc2VkQ2FwdGlvbnMoKSkgewot
ICAgICAgICBkaXNwbGF5TmFtZSA9IGNsb3NlZENhcHRpb25UcmFja01lbnVJdGVtVGV4dChkaXNw
bGF5TmFtZSk7Ci0gICAgICAgIGlmICh0cmFjay0+aXNFYXN5VG9SZWFkKCkpCi0gICAgICAgICAg
ICBkaXNwbGF5TmFtZSA9IGVhc3lSZWFkZXJUcmFja01lbnVJdGVtVGV4dChkaXNwbGF5TmFtZSk7
CisgICAgICAgIGlmICh0cmFjay0+aXNDbG9zZWRDYXB0aW9ucygpKSB7CisgICAgICAgICAgICBk
aXNwbGF5TmFtZSA9IGNsb3NlZENhcHRpb25UcmFja01lbnVJdGVtVGV4dChkaXNwbGF5TmFtZSk7
CisgICAgICAgICAgICBpZiAodHJhY2stPmlzRWFzeVRvUmVhZCgpKQorICAgICAgICAgICAgICAg
IGRpc3BsYXlOYW1lID0gZWFzeVJlYWRlclRyYWNrTWVudUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsK
IAotICAgICAgICByZXR1cm4gZGlzcGxheU5hbWU7Ci0gICAgfQorICAgICAgICAgICAgcmV0dXJu
IGRpc3BsYXlOYW1lOworICAgICAgICB9CiAKLSAgICBpZiAodHJhY2stPmlzU0RIKCkpCi0gICAg
ICAgIGRpc3BsYXlOYW1lID0gc2RoVHJhY2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOworICAg
ICAgICBpZiAodHJhY2stPmlzU0RIKCkpCisgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IHNkaFRy
YWNrTWVudUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsKIAotICAgIGlmICh0cmFjay0+Y29udGFpbnNP
bmx5Rm9yY2VkU3VidGl0bGVzKCkpCi0gICAgICAgIGRpc3BsYXlOYW1lID0gZm9yY2VkVHJhY2tN
ZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOworICAgICAgICBpZiAodHJhY2stPmNvbnRhaW5zT25s
eUZvcmNlZFN1YnRpdGxlcygpKQorICAgICAgICAgICAgZGlzcGxheU5hbWUgPSBmb3JjZWRUcmFj
a01lbnVJdGVtVGV4dChkaXNwbGF5TmFtZSk7CiAKLSAgICBpZiAodHJhY2stPmlzRWFzeVRvUmVh
ZCgpKQotICAgICAgICBkaXNwbGF5TmFtZSA9IGVhc3lSZWFkZXJUcmFja01lbnVJdGVtVGV4dChk
aXNwbGF5TmFtZSk7CisgICAgICAgIGlmICh0cmFjay0+aXNFYXN5VG9SZWFkKCkpCisgICAgICAg
ICAgICBkaXNwbGF5TmFtZSA9IGVhc3lSZWFkZXJUcmFja01lbnVJdGVtVGV4dChkaXNwbGF5TmFt
ZSk7CiAKLSAgICByZXR1cm4gZGlzcGxheU5hbWU7CisgICAgICAgIHJldHVybiBkaXNwbGF5TmFt
ZTsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5j
ZXNNZWRpYUFGOjpkaXNwbGF5TmFtZUZvclRyYWNrKFRleHRUcmFjayogdHJhY2spIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWUuY3BwCmluZGV4IGE4NDI2NWEuLjNlNDI0NmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUu
Y3BwCkBAIC0zNjksNyArMzY5LDkgQEAgc3RhdGljIEpTQzo6WWFycjo6UmVndWxhckV4cHJlc3Np
b24gY3JlYXRlUmVnRXhwRm9yTGFiZWxzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JgogICAgICAgICAg
ICAgcGF0dGVybi5hcHBlbmRMaXRlcmFsKCJcXGIiKTsKICAgICB9CiAgICAgcGF0dGVybi5hcHBl
bmQoJyknKTsKLSAgICByZXR1cm4gSlNDOjpZYXJyOjpSZWd1bGFyRXhwcmVzc2lvbihwYXR0ZXJu
LnRvU3RyaW5nKCksIEpTQzo6WWFycjo6VGV4dENhc2VJbnNlbnNpdGl2ZSk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gcGF0dGVybi50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gSlNDOjpZYXJy
OjpSZWd1bGFyRXhwcmVzc2lvbigqc3RyaW5nLCBKU0M6OllhcnI6OlRleHRDYXNlSW5zZW5zaXRp
dmUpOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBGcmFtZTo6c2VhcmNoRm9yTGFiZWxzQWJv
dmVDZWxsKGNvbnN0IEpTQzo6WWFycjo6UmVndWxhckV4cHJlc3Npb24mIHJlZ0V4cCwgSFRNTFRh
YmxlQ2VsbEVsZW1lbnQqIGNlbGwsIHNpemVfdCogcmVzdWx0RGlzdGFuY2VGcm9tU3RhcnRPZkNl
bGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKaW5kZXggMjZjY2M3YS4uNGRjZWYwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcApAQCAtMTUwLDcgKzE1MCw5IEBAIEF0b21pY1N0cmlu
ZyBGcmFtZVRyZWU6OnVuaXF1ZUNoaWxkTmFtZShjb25zdCBBdG9taWNTdHJpbmcmIHJlcXVlc3Rl
ZE5hbWUpIGNvbnN0CiAgICAgbmFtZS5hcHBlbmROdW1iZXIoY2hpbGRDb3VudCgpKTsKICAgICBu
YW1lLmFwcGVuZExpdGVyYWwoIi0tPi0tPiIpOwogCi0gICAgcmV0dXJuIG5hbWUudG9BdG9taWNT
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBuYW1lLnRvQXRvbWljU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBib29sIGlu
U2NvcGUoRnJhbWUmIGZyYW1lLCBUcmVlU2NvcGUmIHNjb3BlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuY3BwCmluZGV4IDNiZDAyMmYuLmFkY2MyZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAKQEAgLTE0NTIsNyArMTQ1MiwxMCBAQCB2b2lkIEZyYW1lVmlldzo6bG9nTW9ja1Njcm9sbEFu
aW1hdG9yTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiTWFpbiIpOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRnJh
bWVWaWV3OiAiKTsKICAgICBidWlsZGVyLmFwcGVuZChtZXNzYWdlKTsKLSAgICBkb2N1bWVudC0+
YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6RGVi
dWcsIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6RGVidWcsICpzdHJpbmcpOworICAgIGVsc2UKKyAg
ICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6OnNldENhbm5vdEJsaXRUb1dpbmRv
dygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCmluZGV4IDVmNjQyMjQuLjlh
YTlmMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCkBAIC0yNjMsOCAr
MjYzLDExIEBAIHZvaWQgUGFnZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZUNTU1N0eWxlU2hlZXQoQ1NT
U3R5bGVTaGVldCogc3R5bGVTaGVldCwgY29uc3QgVVJMCiAgICAgICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgY2hlY2sgd2hldGhlciBhIGNoYXJzZXQgaGFzIGJlZW4gc3BlY2lmaWVkIGFuZCBpZiBu
b25lIHdhcyBmb3VuZCBhZGQgb25lLgogICAgICAgICBUZXh0RW5jb2RpbmcgdGV4dEVuY29kaW5n
KHN0eWxlU2hlZXQtPmNvbnRlbnRzKCkuY2hhcnNldCgpKTsKICAgICAgICAgQVNTRVJUKHRleHRF
bmNvZGluZy5pc1ZhbGlkKCkpOwotICAgICAgICBtX3Jlc291cmNlcy5hcHBlbmQoeyB1cmwsIEFT
Q0lJTGl0ZXJhbCB7ICJ0ZXh0L2NzcyIgfSwgU2hhcmVkQnVmZmVyOjpjcmVhdGUodGV4dEVuY29k
aW5nLmVuY29kZShjc3NUZXh0LnRvU3RyaW5nKCksIFVuZW5jb2RhYmxlSGFuZGxpbmc6OkVudGl0
aWVzKSkgfSk7Ci0gICAgICAgIG1fcmVzb3VyY2VVUkxzLmFkZCh1cmwpOworICAgICAgICBpZiAo
YXV0byBzdHJpbmcgPSBjc3NUZXh0LnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIG1fcmVzb3Vy
Y2VzLmFwcGVuZCh7IHVybCwgQVNDSUlMaXRlcmFsIHsgInRleHQvY3NzIiB9LCBTaGFyZWRCdWZm
ZXI6OmNyZWF0ZSh0ZXh0RW5jb2RpbmcuZW5jb2RlKCpzdHJpbmcsIFVuZW5jb2RhYmxlSGFuZGxp
bmc6OkVudGl0aWVzKSkgfSk7CisgICAgICAgICAgICBtX3Jlc291cmNlVVJMcy5hZGQodXJsKTsK
KyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuY3BwCmluZGV4IDlk
NDRkOTQuLjNiNDRmZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFu
Y2VMb2dnaW5nQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNl
TG9nZ2luZ0NsaWVudC5jcHAKQEAgLTUwLDcgKzUwLDkgQEAgU3RyaW5nIFBlcmZvcm1hbmNlTG9n
Z2luZ0NsaWVudDo6c3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zQXNTdHJpbmcoU3luY2hyb25v
dXMKICAgICAgICAgcmVhc29ucy5hcHBlbmRMaXRlcmFsKCJpbWFnZSBkb2N1bWVudCwiKTsKIAog
ICAgIC8vIFN0cmlwIHRoZSB0cmFpbGluZyBjb21tYS4KLSAgICByZXR1cm4gcmVhc29ucy50b1N0
cmluZygpLmxlZnQocmVhc29ucy5sZW5ndGgoKSAtIDEpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHJlYXNvbnMudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0cmluZy0+bGVmdChyZWFzb25z
Lmxlbmd0aCgpIC0gMSk7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuY3BwCmluZGV4IDJhYWM4
ZWUuLmUzYWM4ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmln
aW5EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luRGF0YS5j
cHAKQEAgLTg0LDcgKzg0LDkgQEAgU3RyaW5nIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZGF0YWJhc2VJ
ZGVudGlmaWVyKCkgY29uc3QKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChzZXBhcmF0b3JDaGFy
YWN0ZXIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKHBvcnQudmFsdWVfb3IoMCkp
OwogICAgIAotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGQ6Om9wdGlvbmFsPFNlY3VyaXR5T3JpZ2luRGF0
YT4gU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRGF0YWJhc2VJZGVudGlmaWVyKGNvbnN0IFN0cmlu
ZyYgZGF0YWJhc2VJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9X
aGVlbEV2ZW50VGVzdFRyaWdnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50
VGVzdFRyaWdnZXIuY3BwCmluZGV4IGVkNTQ5Y2YuLmZjNTAyNTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1doZWVsRXZlbnRUZXN0VHJpZ2dlci5jcHAKQEAgLTEwMCw3ICsxMDAsMTAgQEAg
c3RhdGljIHZvaWQgZHVtcFN0YXRlKFdURjo6SGFzaE1hcDxXaGVlbEV2ZW50VGVzdFRyaWdnZXI6
OlNjcm9sbGFibGVBcmVhSWRlbnRpZmkKICAgICAgICAgICAgICAgICByZWFzb25zLmFwcGVuZCgi
LCAiKTsKICAgICAgICAgICAgIHJlYXNvbnMuYXBwZW5kKFN0cmluZzo6bnVtYmVyKHJlYXNvbikp
OwogICAgICAgICB9Ci0gICAgICAgIExPRyhXaGVlbEV2ZW50VGVzdFRyaWdnZXJzLCAiICAgICBS
ZWFzb25zOiAlcyIsIHJlYXNvbnMudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gcmVhc29ucy50b1N0cmluZygpKQorICAgICAgICAgICAgTE9HKFdo
ZWVsRXZlbnRUZXN0VHJpZ2dlcnMsICIgICAgIFJlYXNvbnM6ICVzIiwgc3RyaW5nLT51dGY4KCku
ZGF0YSgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0
eVBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xp
Y3kuY3BwCmluZGV4IGZjMmZkMTIuLjNjOTE4NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcApAQCAtODUsNyArODUsOSBAQCBzdGF0
aWMgU3RyaW5nIGNvbnNvbGVNZXNzYWdlRm9yVmlvbGF0aW9uKGNvbnN0IGNoYXIqIGVmZmVjdGl2
ZVZpb2xhdGVkRGlyZWN0aXZlLAogICAgICAgICByZXN1bHQuYXBwZW5kKGVmZmVjdGl2ZVZpb2xh
dGVkRGlyZWN0aXZlKTsKICAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIiBkaXJlY3RpdmUg
b2YgdGhlIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5LiIpOwogICAgIH0KLSAgICByZXR1cm4gcmVz
dWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIENvbnRlbnRTZWN1
cml0eVBvbGljeTo6Q29udGVudFNlY3VyaXR5UG9saWN5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCkBAIC0xMzcsNyArMTM5LDEwIEBAIGJvb2wgQ29udGVu
dFNlY3VyaXR5UG9saWN5OjphbGxvd1J1bm5pbmdPckRpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnQo
Y29uc3QgVVJMJiB1CiAgICAgICAgIGNvbnNvbGVNZXNzYWdlLmFwcGVuZCh1cmwuc3RyaW5nQ2Vu
dGVyRWxsaXBzaXplZFRvTGVuZ3RoKCkpOwogICAgICAgICBjb25zb2xlTWVzc2FnZS5hcHBlbmRM
aXRlcmFsKCIgYmVjYXVzZSAiKTsKICAgICAgICAgY29uc29sZU1lc3NhZ2UuYXBwZW5kKCInYmxv
Y2stYWxsLW1peGVkLWNvbnRlbnQnIGFwcGVhcnMgaW4gdGhlIENvbnRlbnQgU2VjdXJpdHkgUG9s
aWN5LiIpOwotICAgICAgICByZXBvcnRWaW9sYXRpb24oQ29udGVudFNlY3VyaXR5UG9saWN5RGly
ZWN0aXZlTmFtZXM6OmJsb2NrQWxsTWl4ZWRDb250ZW50LCBDb250ZW50U2VjdXJpdHlQb2xpY3lE
aXJlY3RpdmVOYW1lczo6YmxvY2tBbGxNaXhlZENvbnRlbnQsICpwb2xpY3ksIHVybCwgY29uc29s
ZU1lc3NhZ2UudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGNvbnNvbGVN
ZXNzYWdlLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXBvcnRWaW9sYXRpb24oQ29udGVudFNl
Y3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXM6OmJsb2NrQWxsTWl4ZWRDb250ZW50LCBDb250ZW50
U2VjdXJpdHlQb2xpY3lEaXJlY3RpdmVOYW1lczo6YmxvY2tBbGxNaXhlZENvbnRlbnQsICpwb2xp
Y3ksIHVybCwgKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAK
ICAgICAgICAgaWYgKCFpc1JlcG9ydE9ubHkpCiAgICAgICAgICAgICBhbGxvdyA9IGZhbHNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXhpc1Njcm9sbFNuYXBP
ZmZzZXRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0F4aXNTY3JvbGxTbmFw
T2Zmc2V0cy5jcHAKaW5kZXggMDIwNzUzOC4uZDhkM2YyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvQXhpc1Njcm9sbFNuYXBPZmZzZXRzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9BeGlzU2Nyb2xsU25hcE9mZnNldHMuY3BwCkBAIC04
MSw3ICs4MSw5IEBAIHN0YXRpYyBTdHJpbmcgc25hcE9mZnNldHNUb1N0cmluZyhjb25zdCBWZWN0
b3I8TGF5b3V0VW5pdD4mIHNuYXBPZmZzZXRzKQogICAgICAgICBzLmFwcGVuZChTdHJpbmc6OmZv
cm1hdCgiJS4xZiAiLCBvZmZzZXQudG9GbG9hdCgpKSk7CiAKICAgICBzLmFwcGVuZCgiXSIpOwot
ICAgIHJldHVybiBzLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcy50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMg
U3RyaW5nIHNuYXBPZmZzZXRSYW5nZXNUb1N0cmluZyhjb25zdCBWZWN0b3I8U2Nyb2xsT2Zmc2V0
UmFuZ2U8TGF5b3V0VW5pdD4+JiByYW5nZXMpCkBAIC05MSw3ICs5Myw5IEBAIHN0YXRpYyBTdHJp
bmcgc25hcE9mZnNldFJhbmdlc1RvU3RyaW5nKGNvbnN0IFZlY3RvcjxTY3JvbGxPZmZzZXRSYW5n
ZTxMYXlvdXRVbml0CiAgICAgZm9yIChhdXRvIHJhbmdlIDogcmFuZ2VzKQogICAgICAgICBzLmFw
cGVuZChTdHJpbmc6OmZvcm1hdCgiKCUuMWYsICUuMWYpICIsIHJhbmdlLnN0YXJ0LnRvRmxvYXQo
KSwgcmFuZ2UuZW5kLnRvRmxvYXQoKSkpOwogICAgIHMuYXBwZW5kKCJdIik7Ci0gICAgcmV0dXJu
IHMudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgc25h
cFBvcnRPckFyZWFUb1N0cmluZyhjb25zdCBMYXlvdXRSZWN0JiByZWN0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCmlu
ZGV4IGY1MDIyMWEuLjNjMWM2ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAgLTM4OSw3ICszODksOSBAQCBT
dHJpbmcgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uc0Fz
VGV4dChTeW5jaHJvbm91c1Njcm9sbAogCiAgICAgaWYgKHN0cmluZ0J1aWxkZXIubGVuZ3RoKCkp
CiAgICAgICAgIHN0cmluZ0J1aWxkZXIucmVzaXplKHN0cmluZ0J1aWxkZXIubGVuZ3RoKCkgLSAy
KTsKLSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzeW5jaHJv
bm91c1Njcm9sbGluZ1JlYXNvbnNBc1RleHQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRGVjaW1hbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EZWNp
bWFsLmNwcAppbmRleCAzZDUyNWNmLi4xYTE5MmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9EZWNpbWFsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EZWNp
bWFsLmNwcApAQCAtOTk0LDcgKzk5NCw5IEBAIFN0cmluZyBEZWNpbWFsOjp0b1N0cmluZygpIGNv
bnN0CiAgICAgaWYgKG9yaWdpbmFsRXhwb25lbnQgPD0gMCAmJiBhZGp1c3RlZEV4cG9uZW50ID49
IC02KSB7CiAgICAgICAgIGlmICghb3JpZ2luYWxFeHBvbmVudCkgewogICAgICAgICAgICAgYnVp
bGRlci5hcHBlbmQoZGlnaXRzKTsKLSAgICAgICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgICAgICBDUkFTSCgpOwogICAg
ICAgICB9CiAKICAgICAgICAgaWYgKGFkanVzdGVkRXhwb25lbnQgPj0gMCkgewpAQCAtMTAwMyw3
ICsxMDA1LDkgQEAgU3RyaW5nIERlY2ltYWw6OnRvU3RyaW5nKCkgY29uc3QKICAgICAgICAgICAg
ICAgICBpZiAoaSA9PSBhZGp1c3RlZEV4cG9uZW50KQogICAgICAgICAgICAgICAgICAgICBidWls
ZGVyLmFwcGVuZCgnLicpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgICAgIENS
QVNIKCk7CiAgICAgICAgIH0KIAogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjAuIik7
CkBAIC0xMDI3LDcgKzEwMzEsOSBAQCBTdHJpbmcgRGVjaW1hbDo6dG9TdHJpbmcoKSBjb25zdAog
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoYWRqdXN0ZWRFeHBvbmVudCk7CiAgICAg
ICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKIERlY2ltYWwgRGVjaW1hbDo6emVybyhTaWduIHNpZ24pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwCmluZGV4IDJmZGIyNjAuLmU2N2Q2NzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwCkBAIC0xMzAsNyArMTMwLDkgQEAg
U3RyaW5nIGVuY29kZUZvckZpbGVOYW1lKGNvbnN0IFN0cmluZyYgaW5wdXRTdHJpbmcpCiAgICAg
ICAgICAgICByZXN1bHQuYXBwZW5kKGNoYXJhY3Rlcik7CiAgICAgfQogCi0gICAgcmV0dXJuIHJl
c3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgZGVj
b2RlRnJvbUZpbGVuYW1lKGNvbnN0IFN0cmluZyYgaW5wdXRTdHJpbmcpCkBAIC0xODEsNyArMTgz
LDkgQEAgU3RyaW5nIGRlY29kZUZyb21GaWxlbmFtZShjb25zdCBTdHJpbmcmIGlucHV0U3RyaW5n
KQogICAgICAgICBpICs9IDU7CiAgICAgfQogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgbGFzdENvbXBvbmVudE9mUGF0
aElnbm9yaW5nVHJhaWxpbmdTbGFzaChjb25zdCBTdHJpbmcmIHBhdGgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RJbnRlcnZhbC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUE9ESW50ZXJ2YWwuaAppbmRleCAwNDhkYTk4Li42NDYzNjJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RJbnRlcnZhbC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BPREludGVydmFsLmgKQEAgLTE0NSw3ICsxNDUsOSBAQCBwdWJsaWM6CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCBtYXhIaWdoPSIpOwogICAgICAgICBidWlsZGVy
LmFwcGVuZChWYWx1ZVRvU3RyaW5nPFQ+OjpzdHJpbmcobWF4SGlnaCgpKSk7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCddJyk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RSZWRCbGFja1RyZWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BPRFJlZEJsYWNrVHJlZS5oCmluZGV4IDEzMWYzMWEuLjQ5NjBl
ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPRFJlZEJsYWNrVHJlZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPRFJlZEJsYWNrVHJlZS5oCkBAIC03NDQs
NyArNzQ0LDEwIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChWYWx1ZVRv
U3RyaW5nPFQ+OjpzdHJpbmcobm9kZS0+ZGF0YSgpKSk7CiAgICAgICAgICAgICBidWlsZGVyLmFw
cGVuZCgobm9kZS0+Y29sb3IoKSA9PSBCbGFjaykgPyAiIChibGFjaykiIDogIiAocmVkKSIpOwog
ICAgICAgICB9Ci0gICAgICAgIExPR19FUlJPUigiJXMiLCBidWlsZGVyLnRvU3RyaW5nKCkuYXNj
aWkoKS5kYXRhKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgICAgICBMT0dfRVJST1IoIiVzIiwgc3RyaW5nLT5hc2NpaSgpLmRhdGEoKSk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIGlmIChub2RlKSB7
CiAgICAgICAgICAgICBkdW1wRnJvbU5vZGUobm9kZS0+bGVmdCgpLCBpbmRlbnRhdGlvbiArIDIp
OwogICAgICAgICAgICAgZHVtcEZyb21Ob2RlKG5vZGUtPnJpZ2h0KCksIGluZGVudGF0aW9uICsg
Mik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcAppbmRleCA5OTAwZTU1Li4wMzM1YTUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1VSTC5jcHAKQEAgLTQ0OCw4ICs0NDgsMTEgQEAgdm9pZCBVUkw6OnNldEhvc3Qo
Y29uc3QgU3RyaW5nJiBzKQogICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZ1ZpZXcoZW5jb2RlZEhv
c3ROYW1lLmRhdGEoKSwgZW5jb2RlZEhvc3ROYW1lLnNpemUoKSkpOwogICAgIGJ1aWxkZXIuYXBw
ZW5kKG1fc3RyaW5nLnN1YnN0cmluZyhtX2hvc3RFbmQpKTsKIAotICAgIFVSTFBhcnNlciBwYXJz
ZXIoYnVpbGRlci50b1N0cmluZygpKTsKLSAgICAqdGhpcyA9IHBhcnNlci5yZXN1bHQoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgVVJMUGFy
c2VyIHBhcnNlcigqc3RyaW5nKTsKKyAgICAgICAgKnRoaXMgPSBwYXJzZXIucmVzdWx0KCk7Cisg
ICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgVVJMOjpyZW1vdmVQb3J0KCkK
QEAgLTUxMCw4ICs1MTMsMTEgQEAgdm9pZCBVUkw6OnNldEhvc3RBbmRQb3J0KGNvbnN0IFN0cmlu
ZyYgaG9zdEFuZFBvcnQpCiAgICAgfQogICAgIGJ1aWxkZXIuYXBwZW5kKG1fc3RyaW5nLnN1YnN0
cmluZyhtX3BvcnRFbmQpKTsKIAotICAgIFVSTFBhcnNlciBwYXJzZXIoYnVpbGRlci50b1N0cmlu
ZygpKTsKLSAgICAqdGhpcyA9IHBhcnNlci5yZXN1bHQoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBidWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgVVJMUGFyc2VyIHBhcnNlcigqc3RyaW5n
KTsKKyAgICAgICAgKnRoaXMgPSBwYXJzZXIucmVzdWx0KCk7CisgICAgfSBlbHNlCisgICAgICAg
IENSQVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgcGVyY2VudEVuY29kZUNoYXJhY3RlcnMoY29u
c3QgU3RyaW5nJiBpbnB1dCwgYm9vbCgqc2hvdWxkRW5jb2RlKShVQ2hhcikpCkBAIC01MzAsNyAr
NTM2LDkgQEAgc3RhdGljIFN0cmluZyBwZXJjZW50RW5jb2RlQ2hhcmFjdGVycyhjb25zdCBTdHJp
bmcmIGlucHV0LCBib29sKCpzaG91bGRFbmNvZGUpKFUKICAgICAgICAgICAgIH0gZWxzZQogICAg
ICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGMpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVy
biBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgp
OwogICAgIH07CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlucHV0Lmxlbmd0aCgpOyAr
K2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9UaW1p
bmdGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vVGltaW5n
RnVuY3Rpb24uY3BwCmluZGV4IDhjOTcyZDYuLmVkYmZlZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmNwcApAQCAtMTI5LDcg
KzEyOSwxMCBAQCBFeGNlcHRpb25PcjxSZWZQdHI8VGltaW5nRnVuY3Rpb24+PiBUaW1pbmdGdW5j
dGlvbjo6Y3JlYXRlRnJvbUNTU1RleHQoY29uc3QgU3RyaQogICAgIGNzc1N0cmluZy5hcHBlbmRM
aXRlcmFsKCI6ICIpOwogICAgIGNzc1N0cmluZy5hcHBlbmQoY3NzVGV4dCk7CiAgICAgYXV0byBz
dHlsZVByb3BlcnRpZXMgPSBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOjpjcmVhdGUoKTsKLSAgICBz
dHlsZVByb3BlcnRpZXMtPnBhcnNlRGVjbGFyYXRpb24oY3NzU3RyaW5nLnRvU3RyaW5nKCksIENT
U1BhcnNlckNvbnRleHQoSFRNTFN0YW5kYXJkTW9kZSkpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGNzc1N0cmluZy50b1N0cmluZygpKQorICAgICAgICBzdHlsZVByb3BlcnRpZXMtPnBhcnNlRGVj
bGFyYXRpb24oKnN0cmluZywgQ1NTUGFyc2VyQ29udGV4dChIVE1MU3RhbmRhcmRNb2RlKSk7Cisg
ICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgaWYgKGF1dG8gY3NzVmFsdWUgPSBzdHls
ZVByb3BlcnRpZXMtPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlBbmltYXRpb25UaW1p
bmdGdW5jdGlvbikpIHsKICAgICAgICAgaWYgKGF1dG8gdGltaW5nRnVuY3Rpb24gPSBjcmVhdGVG
cm9tQ1NTVmFsdWUoKmNzc1ZhbHVlLmdldCgpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAKaW5kZXggZjk0MDgxNS4uMmIzMGIyZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAKQEAgLTIx
OCw3ICsyMTgsOSBAQCBTdHJpbmcgcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50cyhTdHJpbmdWaWV3
IHBhdGgsIGNvbnN0IFZlY3RvcjxTdHJpbmdWaWV3PiYgY29tcAogICAgICAgICBidWlsZGVyLmFw
cGVuZChHX0RJUl9TRVBBUkFUT1JfUyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGNvbXBvbmVu
dCk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBib29sIG1ha2VBbGxEaXJlY3Rvcmllcyhjb25zdCBTdHJpbmcmIHBh
dGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL1VzZXJBZ2VudEdM
aWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9Vc2VyQWdlbnRHTGliLmNwcApp
bmRleCAxNjIxYTg4Li4zODA3N2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9nbGliL1VzZXJBZ2VudEdMaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ds
aWIvVXNlckFnZW50R0xpYi5jcHAKQEAgLTEwNiw3ICsxMDYsOSBAQCBzdGF0aWMgU3RyaW5nIGJ1
aWxkVXNlckFnZW50U3RyaW5nKGNvbnN0IFVzZXJBZ2VudFF1aXJrcyYgcXVpcmtzKQogICAgIHVh
U3RyaW5nLmFwcGVuZExpdGVyYWwoIlZlcnNpb24vMTEuMCBTYWZhcmkvIik7CiAgICAgdWFTdHJp
bmcuYXBwZW5kKHZlcnNpb25Gb3JVQVN0cmluZygpKTsKIAotICAgIHJldHVybiB1YVN0cmluZy50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHVhU3RyaW5nLnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBjb25zdCBT
dHJpbmcgc3RhbmRhcmRVc2VyQWdlbnRTdGF0aWMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29sb3IuY3BwCmluZGV4IDVkZDE1MGYuLmVlMWJlNzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKQEAgLTM0OCw3ICszNDgsOSBAQCBTdHJp
bmcgQ29sb3I6OnNlcmlhbGl6ZWQoKSBjb25zdAogICAgICAgICBhcHBlbmRCeXRlQXNIZXgocmVk
KCksIGJ1aWxkZXIsIExvd2VyY2FzZSk7CiAgICAgICAgIGFwcGVuZEJ5dGVBc0hleChncmVlbigp
LCBidWlsZGVyLCBMb3dlcmNhc2UpOwogICAgICAgICBhcHBlbmRCeXRlQXNIZXgoYmx1ZSgpLCBi
dWlsZGVyLCBMb3dlcmNhc2UpOwotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwor
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICByZXR1cm4g
Y3NzVGV4dCgpOwpAQCAtMzg0LDcgKzM4Niw5IEBAIFN0cmluZyBDb2xvcjo6Y3NzVGV4dCgpIGNv
bnN0CiAgICAgfQogICAgICAgICAKICAgICBidWlsZGVyLmFwcGVuZCgnKScpOwotICAgIHJldHVy
biBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJp
bmcgQ29sb3I6Om5hbWVGb3JSZW5kZXJUcmVlQXNUZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5jcHAKaW5kZXggNTBlM2M1
Yy4uNDQ4ZGZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RXh0ZW5kZWRDb2xvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RXh0ZW5kZWRDb2xvci5jcHAKQEAgLTcyLDcgKzcyLDkgQEAgU3RyaW5nIEV4dGVuZGVkQ29sb3I6
OmNzc1RleHQoKSBjb25zdAogICAgIH0KICAgICBidWlsZGVyLmFwcGVuZCgnKScpOwogCi0gICAg
cmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNj
YWRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNw
cAppbmRleCA4NDc4NjFmLi41NTQ4MjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwCkBAIC01NDksNyArNTQ5LDkgQEAgc3RhdGljIGlu
bGluZSBTdHJpbmcgbm9ybWFsaXplU3BhY2VzSW50ZXJuYWwoY29uc3QgQ2hhcmFjdGVyVHlwZSog
Y2hhcmFjdGVycywgdW4KICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kp
CiAgICAgICAgIG5vcm1hbGl6ZWQuYXBwZW5kKEZvbnRDYXNjYWRlOjpub3JtYWxpemVTcGFjZXMo
Y2hhcmFjdGVyc1tpXSkpOwogCi0gICAgcmV0dXJuIG5vcm1hbGl6ZWQudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBub3JtYWxpemVkLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBGb250Q2FzY2FkZTo6bm9ybWFs
aXplU3BhY2VzKGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250VGFnZ2VkU2V0dGlu
Z3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNldHRp
bmdzLmNwcAppbmRleCA2MWIyZWJlLi41YzQ2NzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250VGFnZ2VkU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRUYWdnZWRTZXR0aW5ncy5jcHAKQEAgLTcyLDcg
KzcyLDEwIEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IEZv
bnRWYXJpYXRpb25TZXR0aW5ncyYgaXRlbSkKICAgICAgICAgcy5hcHBlbmQodmFyaWF0aW9uLnRh
ZygpWzFdKTsKICAgICAgICAgcy5hcHBlbmQodmFyaWF0aW9uLnRhZygpWzJdKTsKICAgICAgICAg
cy5hcHBlbmQodmFyaWF0aW9uLnRhZygpWzNdKTsKLSAgICAgICAgdHMuZHVtcFByb3BlcnR5KHMu
dG9TdHJpbmcoKSwgaXRlbS5hdChpKS52YWx1ZSgpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5n
ID0gcy50b1N0cmluZygpKQorICAgICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCpzdHJpbmcsIGl0
ZW0uYXQoaSkudmFsdWUoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAg
ICAgfQogICAgIHJldHVybiB0czsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggNjk4MTgwZS4uMTVjZTg5MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAK
QEAgLTQ0MSw3ICs0NDEsOSBAQCBTdHJpbmcgR3JhcGhpY3NMYXllcjo6YW5pbWF0aW9uTmFtZUZv
clRyYW5zaXRpb24oQW5pbWF0ZWRQcm9wZXJ0eUlEIHByb3BlcnR5KQogICAgIGlkLmFwcGVuZExp
dGVyYWwoIi18dHJhbnNpdGlvbiIpOwogICAgIGlkLmFwcGVuZE51bWJlcihzdGF0aWNfY2FzdDxp
bnQ+KHByb3BlcnR5KSk7CiAgICAgaWQuYXBwZW5kKCctJyk7Ci0gICAgcmV0dXJuIGlkLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gaWQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBHcmFwaGljc0xheWVyOjpzdXNw
ZW5kQW5pbWF0aW9ucyhNb25vdG9uaWNUaW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFu
ZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCmluZGV4IDZmMmIzODcuLjk1M2M0OTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRU
ZXh0VHJhY2tQcml2YXRlQVZGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKQEAgLTMwMCw4
ICszMDAsMTIgQEAgdm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQ3VlQXR0
cmlidXRlcyhDRkF0dHJpYnV0ZWRTdHJpbmdSZWYgYXR0cmkKICAgICAgICAgY29udGVudC5hcHBl
bmQodGFnRW5kKTsKICAgICB9CiAKLSAgICBpZiAoY29udGVudC5sZW5ndGgoKSkKLSAgICAgICAg
Y3VlRGF0YS5zZXRDb250ZW50KGNvbnRlbnQudG9TdHJpbmcoKSk7CisgICAgaWYgKGNvbnRlbnQu
bGVuZ3RoKCkpIHsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gY29udGVudC50b1N0cmluZygp
KQorICAgICAgICAgICAgY3VlRGF0YS5zZXRDb250ZW50KCpzdHJpbmcpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBDUkFTSCgpOworICAgIH0KIH0KIAogdm9pZCBJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlQVZGOjpwcm9jZXNzQ3VlKENGQXJyYXlSZWYgYXR0cmlidXRlZFN0cmluZ3MsIENGQXJy
YXlSZWYgbmF0aXZlU2FtcGxlcywgY29uc3QgTWVkaWFUaW1lJiB0aW1lKQpAQCAtNTMwLDcgKzUz
NCwxMCBAQCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NOYXRpdmVTYW1w
bGVzKENGQXJyYXlSZWYgbmF0aXZlU2FtcGxlcywgYwogICAgICAgICAgICAgaGVhZGVyLmFwcGVu
ZCgiXG5cbiIpOwogCiAgICAgICAgICAgICBERUJVR19MT0coTE9HSURFTlRJRklFUiwgIlZUVCBo
ZWFkZXIgIiwgJmhlYWRlcik7Ci0gICAgICAgICAgICBjbGllbnQoKS0+cGFyc2VXZWJWVFRGaWxl
SGVhZGVyKGhlYWRlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IGhlYWRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIGNsaWVudCgpLT5wYXJzZVdlYlZU
VEZpbGVIZWFkZXIoV1RGTW92ZSgqc3RyaW5nKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIG1faGF2ZVJlcG9ydGVkVlRUSGVhZGVyID0g
dHJ1ZTsKICAgICAgICAgfSB3aGlsZSAoMCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcAppbmRleCBlYzNhZTRmLi5h
MzdkODQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9U
aWxlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvVGlsZUNvbnRyb2xsZXIuY3BwCkBAIC03MzUsNyArNzM1LDEwIEBAIFJlZlB0cjxQbGF0Zm9y
bUNBTGF5ZXI+IFRpbGVDb250cm9sbGVyOjpjcmVhdGVUaWxlTGF5ZXIoY29uc3QgSW50UmVjdCYg
dGlsZVJlY3QsCiAgICAgbmFtZUJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRpbGVSZWN0LmxvY2F0aW9u
KCkueCgpKTsKICAgICBuYW1lQnVpbGRlci5hcHBlbmQoJywnKTsKICAgICBuYW1lQnVpbGRlci5h
cHBlbmROdW1iZXIodGlsZVJlY3QubG9jYXRpb24oKS55KCkpOwotICAgIGxheWVyLT5zZXROYW1l
KG5hbWVCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG5hbWVCdWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGxheWVyLT5zZXROYW1lKCpzdHJpbmcpOworICAgIGVs
c2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIGZsb2F0IHRlbXBvcmFyeVNjYWxlRmFjdG9yID0g
b3duaW5nR3JhcGhpY3NMYXllcigpLT5wbGF0Zm9ybUNBTGF5ZXJDb250ZW50c1NjYWxlTXVsdGlw
bGllckZvck5ld1RpbGVzKG1fdGlsZUNhY2hlTGF5ZXIpOwogICAgIG1faGFzVGlsZXNXaXRoVGVt
cG9yYXJ5U2NhbGVGYWN0b3IgfD0gdGVtcG9yYXJ5U2NhbGVGYWN0b3IgIT0gMTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNwcAppbmRleCA1OTE5
Zjk3Li5lODY2NTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9UaWxlR3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvVGlsZUdyaWQuY3BwCkBAIC01OSw3ICs1OSw5IEBAIHN0YXRpYyBTdHJpbmcgdmFsaWRhdGlv
blBvbGljeUFzU3RyaW5nKFRpbGVHcmlkOjpUaWxlVmFsaWRhdGlvblBvbGljeSB2YWxpZGF0aW9u
CiAgICAgfQogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXSIpOwogCi0gICAgcmV0dXJuIGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRm
b3JtQ0FMYXllcldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93
aW4vUGxhdGZvcm1DQUxheWVyV2luLmNwcAppbmRleCBjMDAwYjQzLi5mYTY0MGZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxh
eWVyV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4v
UGxhdGZvcm1DQUxheWVyV2luLmNwcApAQCAtOTM0LDcgKzkzNCw5IEBAIFN0cmluZyBQbGF0Zm9y
bUNBTGF5ZXJXaW46OmxheWVyVHJlZUFzU3RyaW5nKCkgY29uc3QKICAgICAvLyBQcmludCBsYXll
ciB0cmVlIGZyb20gdGhlIHJvb3QKICAgICBwcmludExheWVyKGJ1aWxkZXIsIHRoaXMsIDApOwog
Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIFJlZjxQbGF0Zm9ybUNBTGF5ZXI+IFBsYXRmb3JtQ0FMYXllcldpbjo6Y3JlYXRlQ29t
cGF0aWJsZUxheWVyKFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlIGxheWVyVHlwZSwgUGxhdGZv
cm1DQUxheWVyQ2xpZW50KiBjbGllbnQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAKaW5k
ZXggZGZmY2RjYi4uNDdmMzIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcApAQCAtNTEyLDcg
KzUxMiwxMCBAQCBib29sIFZpZGVvVGV4dHVyZUNvcGllckNWOjppbml0aWFsaXplQ29udGV4dE9i
amVjdHMoKQogICAgIHZlcnRleFNoYWRlclNvdXJjZS5hcHBlbmRMaXRlcmFsKCJ9XG4iKTsKIAog
ICAgIFBsYXRmb3JtM0RPYmplY3QgdmVydGV4U2hhZGVyID0gbV9jb250ZXh0LT5jcmVhdGVTaGFk
ZXIoR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9TSEFERVIpOwotICAgIG1fY29udGV4dC0+c2hh
ZGVyU291cmNlKHZlcnRleFNoYWRlciwgdmVydGV4U2hhZGVyU291cmNlLnRvU3RyaW5nKCkpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHZlcnRleFNoYWRlclNvdXJjZS50b1N0cmluZygpKQorICAg
ICAgICBtX2NvbnRleHQtPnNoYWRlclNvdXJjZSh2ZXJ0ZXhTaGFkZXIsICpzdHJpbmcpOworICAg
IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICBtX2NvbnRleHQtPmNvbXBpbGVTaGFkZXJEaXJl
Y3QodmVydGV4U2hhZGVyKTsKIAogICAgIEdDM0RpbnQgdmFsdWUgPSAwOwpAQCAtNTUzLDcgKzU1
NiwxMCBAQCBib29sIFZpZGVvVGV4dHVyZUNvcGllckNWOjppbml0aWFsaXplQ29udGV4dE9iamVj
dHMoKQogICAgIGZyYWdtZW50U2hhZGVyU291cmNlLmFwcGVuZExpdGVyYWwoIn1cbiIpOwogCiAg
ICAgUGxhdGZvcm0zRE9iamVjdCBmcmFnbWVudFNoYWRlciA9IG1fY29udGV4dC0+Y3JlYXRlU2hh
ZGVyKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFHTUVOVF9TSEFERVIpOwotICAgIG1fY29udGV4dC0+
c2hhZGVyU291cmNlKGZyYWdtZW50U2hhZGVyLCBmcmFnbWVudFNoYWRlclNvdXJjZS50b1N0cmlu
ZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBmcmFnbWVudFNoYWRlclNvdXJjZS50b1N0cmlu
ZygpKQorICAgICAgICBtX2NvbnRleHQtPnNoYWRlclNvdXJjZShmcmFnbWVudFNoYWRlciwgKnN0
cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIG1fY29udGV4dC0+Y29tcGls
ZVNoYWRlckRpcmVjdChmcmFnbWVudFNoYWRlcik7CiAKICAgICBtX2NvbnRleHQtPmdldFNoYWRl
cml2KGZyYWdtZW50U2hhZGVyLCBHcmFwaGljc0NvbnRleHQzRDo6Q09NUElMRV9TVEFUVVMsICZ2
YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcApp
bmRleCA1YmRkNjYzLi4wMjVlY2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQz
RE9wZW5HTENvbW1vbi5jcHAKQEAgLTk1Myw3ICs5NTMsOSBAQCBzdGF0aWMgU3RyaW5nIGdlbmVy
YXRlSGFzaGVkTmFtZShjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgid2ViZ2xfIik7CiAgICAgYXBwZW5kVW5z
aWduZWQ2NEFzSGV4KG51bWJlciwgYnVpbGRlciwgTG93ZXJjYXNlKTsKLSAgICByZXR1cm4gYnVp
bGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RkOjpvcHRp
b25hbDxTdHJpbmc+IEdyYXBoaWNzQ29udGV4dDNEOjptYXBwZWRTeW1ib2xJblNoYWRlclNvdXJj
ZU1hcChQbGF0Zm9ybTNET2JqZWN0IHNoYWRlciwgQU5HTEVTaGFkZXJTeW1ib2xUeXBlIHN5bWJv
bFR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSkKQEAgLTE2ODUsOCArMTY4NywxMSBAQCBTdHJpbmcg
R3JhcGhpY3NDb250ZXh0M0Q6OmdldFVubWFuZ2xlZEluZm9Mb2coUGxhdGZvcm0zRE9iamVjdCBz
aGFkZXJzWzJdLCBHQzNEcwogCiAgICAgcHJvY2Vzc2VkTG9nLmFwcGVuZChsb2cuc3Vic3RyaW5n
KHN0YXJ0RnJvbSwgbG9nLmxlbmd0aCgpIC0gc3RhcnRGcm9tKSk7CiAKLSAgICBMT0coV2ViR0ws
ICJVbm1hbmdsZWQgU2hhZGVySW5mb0xvZzpcbiVzIiwgcHJvY2Vzc2VkTG9nLnRvU3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7Ci0gICAgcmV0dXJuIHByb2Nlc3NlZExvZy50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHByb2Nlc3NlZExvZy50b1N0cmluZygpKSB7CisgICAgICAgIExP
RyhXZWJHTCwgIlVubWFuZ2xlZCBTaGFkZXJJbmZvTG9nOlxuJXMiLCBzdHJpbmctPnV0ZjgoKS5k
YXRhKCkpOworICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0K
IAogU3RyaW5nIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRQcm9ncmFtSW5mb0xvZyhQbGF0Zm9ybTNE
T2JqZWN0IHByb2dyYW0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNw
cAppbmRleCAyZTZjNTJjLi4yNGE4OGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hh
ZGVyUHJvZ3JhbS5jcHAKQEAgLTM5Nyw3ICszOTcsMTAgQEAgUmVmPFRleHR1cmVNYXBwZXJTaGFk
ZXJQcm9ncmFtPiBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKFRleHR1cmVNYXBw
ZXIKICNlbmRpZgogCiAgICAgLy8gQXBwZW5kIHRoZSBvcHRpb25zLgotICAgIHZlcnRleFNoYWRl
ckJ1aWxkZXIuYXBwZW5kKG9wdGlvbnNBcHBsaWVyQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBvcHRpb25zQXBwbGllckJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgdmVydGV4U2hhZGVyQnVpbGRlci5hcHBlbmQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAg
ICBDUkFTSCgpOwogCiAgICAgLy8gQXBwZW5kIHRoZSBhcHByb3ByaWF0ZSBpbnB1dC9vdXRwdXQg
dmFyaWFibGUgZGVmaW5pdGlvbnMuCiAjaWYgVVNFKE9QRU5HTF9FUykKQEAgLTQyMSw3ICs0MjQs
MTAgQEAgUmVmPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiBUZXh0dXJlTWFwcGVyU2hhZGVy
UHJvZ3JhbTo6Y3JlYXRlKFRleHR1cmVNYXBwZXIKICNlbmRpZgogCiAgICAgLy8gQXBwZW5kIHRo
ZSBvcHRpb25zLgotICAgIGZyYWdtZW50U2hhZGVyQnVpbGRlci5hcHBlbmQob3B0aW9uc0FwcGxp
ZXJCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG9wdGlvbnNBcHBs
aWVyQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBmcmFnbWVudFNoYWRlckJ1aWxkZXIuYXBw
ZW5kKCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIC8vIEFwcGVu
ZCB0aGUgY29tbW9uIGhlYWRlci4KICAgICBmcmFnbWVudFNoYWRlckJ1aWxkZXIuYXBwZW5kKGZy
YWdtZW50VGVtcGxhdGVIZWFkZXJDb21tb24pOwpAQCAtNDM5LDcgKzQ0NSwxMCBAQCBSZWY8VGV4
dHVyZU1hcHBlclNoYWRlclByb2dyYW0+IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpjcmVh
dGUoVGV4dHVyZU1hcHBlcgogICAgIC8vIEFwcGVuZCB0aGUgY29tbW9uIGNvZGUuCiAgICAgZnJh
Z21lbnRTaGFkZXJCdWlsZGVyLmFwcGVuZChmcmFnbWVudFRlbXBsYXRlQ29tbW9uKTsKIAotICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtKHZlcnRleFNo
YWRlckJ1aWxkZXIudG9TdHJpbmcoKSwgZnJhZ21lbnRTaGFkZXJCdWlsZGVyLnRvU3RyaW5nKCkp
KTsKKyAgICBpZiAoYXV0byB2ZXJ0ZXhTdHJpbmcgPSB2ZXJ0ZXhTaGFkZXJCdWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgIGlmIChhdXRvIGZyYWdtZW50U3RyaW5nID0gZnJhZ21lbnRTaGFkZXJC
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbSgqdmVydGV4U3RyaW5nLCAqZnJhZ21lbnRTdHJpbmcpKTsK
KyAgICBDUkFTSCgpOwogfQogCiAjaWYgIUxPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1NlbGVjdGlvbkRhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1NlbGVjdGlvbkRhdGEuY3BwCmluZGV4IDFlMjc5OWIuLmZmYzdlMWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWxlY3Rpb25EYXRhLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VsZWN0aW9uRGF0YS5jcHAKQEAgLTk2
LDcgKzk2LDEwIEBAIHZvaWQgU2VsZWN0aW9uRGF0YTo6c2V0VVJMKGNvbnN0IFVSTCYgdXJsLCBj
b25zdCBTdHJpbmcmIGxhYmVsKQogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGVzY2FwZWQoZ19tYXJr
dXBfZXNjYXBlX3RleHQoYWN0dWFsTGFiZWwudXRmOCgpLmRhdGEoKSwgLTEpKTsKICAgICBtYXJr
dXAuYXBwZW5kKFN0cmluZzo6ZnJvbVVURjgoZXNjYXBlZC5nZXQoKSkpOwogICAgIG1hcmt1cC5h
cHBlbmQoIjwvYT4iKTsKLSAgICBzZXRNYXJrdXAobWFya3VwLnRvU3RyaW5nKCkpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IG1hcmt1cC50b1N0cmluZygpKQorICAgICAgICBzZXRNYXJrdXAoKnN0
cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiBjb25zdCBTdHJpbmcmIFNl
bGVjdGlvbkRhdGE6OnVybExhYmVsKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1Bhc3RlYm9hcmRNYWMubW0KaW5kZXggMzY1OGRkMS4uYTEyY2IzMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KQEAgLTI4OCw3ICsyODgsOSBA
QCBzdGF0aWMgU3RyaW5nIGpvaW5QYXRobmFtZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhu
YW1lcykKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwogICAgICAgICBidWlsZGVy
LmFwcGVuZChwYXRoKTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJv
YXJkUGxhaW5UZXh0JiB0ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1N0cmluZ1V0aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJp
bmdVdGlsaXRpZXMubW0KaW5kZXggN2NkMWJkOC4uOWYzOGZiOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tCkBAIC01MCw4ICs1MCwxMCBAQCBz
dGF0aWMgU3RyaW5nIHdpbGRjYXJkUmVnZXhQYXR0ZXJuU3RyaW5nKGNvbnN0IFN0cmluZyYgc3Ry
aW5nKQogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChjaGFyYWN0ZXIpOwogICAgIH0KICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnJCcpOwotICAgICAgICAKLSAgICByZXR1cm4gc3RyaW5n
QnVpbGRlci50b1N0cmluZygpOworCisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
ICAgIAogYm9vbCBzdHJpbmdNYXRjaGVzV2lsZGNhcmRTdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJp
bmcsIGNvbnN0IFN0cmluZyYgd2lsZGNhcmRTdHJpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL1Njcm9sbEFuaW1hdG9yTW9jay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL1Njcm9sbEFuaW1hdG9yTW9jay5jcHAKaW5kZXggM2NjMGZlOS4uMzFi
ZDNkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3JvbGxBbmlt
YXRvck1vY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Nyb2xsQW5p
bWF0b3JNb2NrLmNwcApAQCAtMTAxLDcgKzEwMSwxMCBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTW9j
azo6bW91c2VFbnRlcmVkU2Nyb2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyKSBjb25zdAogICAg
IGVsc2UKICAgICAgICAgbWVzc2FnZS5hcHBlbmRMaXRlcmFsKCJVbmtub3duIik7CiAgICAgbWVz
c2FnZS5hcHBlbmRMaXRlcmFsKCJTY3JvbGxiYXIiKTsKLSAgICBtX2xvZ2dlcihtZXNzYWdlLnRv
U3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1lc3NhZ2UudG9TdHJpbmcoKSkKKyAg
ICAgICAgbV9sb2dnZXIoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAg
IFNjcm9sbEFuaW1hdG9yOjptb3VzZUVudGVyZWRTY3JvbGxiYXIoc2Nyb2xsYmFyKTsKIH0KIApA
QCAtMTE2LDcgKzExOSwxMCBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTW9jazo6bW91c2VFeGl0ZWRT
Y3JvbGxiYXIoU2Nyb2xsYmFyKiBzY3JvbGxiYXIpIGNvbnN0CiAgICAgZWxzZQogICAgICAgICBt
ZXNzYWdlLmFwcGVuZExpdGVyYWwoIlVua25vd24iKTsKICAgICBtZXNzYWdlLmFwcGVuZExpdGVy
YWwoIlNjcm9sbGJhciIpOwotICAgIG1fbG9nZ2VyKG1lc3NhZ2UudG9TdHJpbmcoKSk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gbWVzc2FnZS50b1N0cmluZygpKQorICAgICAgICBtX2xvZ2dlcigq
c3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgU2Nyb2xsQW5pbWF0b3I6
Om1vdXNlRXhpdGVkU2Nyb2xsYmFyKHNjcm9sbGJhcik7CiB9CiAKQEAgLTEzNiw3ICsxNDIsMTAg
QEAgdm9pZCBTY3JvbGxBbmltYXRvck1vY2s6Om1vdXNlSXNEb3duSW5TY3JvbGxiYXIoU2Nyb2xs
YmFyKiBzY3JvbGxiYXIsIGJvb2wgaXNQcmUKICAgICBlbHNlCiAgICAgICAgIG1lc3NhZ2UuYXBw
ZW5kTGl0ZXJhbCgiVW5rbm93biIpOwogICAgIG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiU2Nyb2xs
YmFyIik7Ci0gICAgbV9sb2dnZXIobWVzc2FnZS50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBtZXNzYWdlLnRvU3RyaW5nKCkpCisgICAgICAgIG1fbG9nZ2VyKCpzdHJpbmcpOwor
ICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICBTY3JvbGxBbmltYXRvcjo6bW91c2VJc0Rv
d25JblNjcm9sbGJhcihzY3JvbGxiYXIsIGlzUHJlc3NlZCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja0JveC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tCb3guY3BwCmluZGV4IGQ0
YWEyMDUuLmZiNjVhOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
bWVkaWFzb3VyY2UvTW9ja0JveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9tZWRpYXNvdXJjZS9Nb2NrQm94LmNwcApAQCAtNTIsNyArNTIsOSBAQCBTdHJpbmcgTW9ja0Jv
eDo6cGVla1R5cGUoQXJyYXlCdWZmZXIqIGRhdGEpCiAgICAgUmVmUHRyPEludDhBcnJheT4gYXJy
YXkgPSBKU0M6OkludDhBcnJheTo6Y3JlYXRlKGRhdGEsIDAsIDQpOwogICAgIGZvciAoaW50IGkg
PSAwOyBpIDwgNDsgKytpKQogICAgICAgICBidWlsZGVyLmFwcGVuZChhcnJheS0+aXRlbShpKSk7
Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIHNpemVfdCBNb2NrQm94OjpwZWVrTGVuZ3RoKEFycmF5QnVmZmVyKiBkYXRhKQpAQCAt
NzMsNyArNzUsMTAgQEAgTW9ja1RyYWNrQm94OjpNb2NrVHJhY2tCb3goQXJyYXlCdWZmZXIqIGRh
dGEpCiAgICAgUmVmUHRyPEludDhBcnJheT4gYXJyYXkgPSBKU0M6OkludDhBcnJheTo6Y3JlYXRl
KGRhdGEsIDEyLCA0KTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7ICsraSkKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoYXJyYXktPml0ZW0oaSkpOwotICAgIG1fY29kZWMgPSBidWlsZGVyLnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICBtX2NvZGVjID0gKnN0cmluZzsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAg
ICBtX2tpbmQgPSBzdGF0aWNfY2FzdDxUcmFja0tpbmQ+KHZpZXctPmdldDx1aW50OF90PigxNiwg
dHJ1ZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9I
VFRQUGFyc2Vycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJz
ZXJzLmNwcAppbmRleCBjOGY0NWU1Li44ZDMwZDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcApAQCAtMzI4LDcgKzMyOCw5IEBAIFN0cmlu
ZyBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnN0IFN0cmluZyYgbWVkaWFUeXBlKQog
CiAgICAgaWYgKG1pbWVUeXBlLmxlbmd0aCgpID09IGxlbmd0aCkKICAgICAgICAgcmV0dXJuIG1l
ZGlhVHlwZTsKLSAgICByZXR1cm4gbWltZVR5cGUudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBtaW1lVHlwZS50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBTdHJpbmcgZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKGNvbnN0
IFN0cmluZyYgbWVkaWFUeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9NSU1FSGVhZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TUlNRUhlYWRlci5jcHAKaW5kZXggMjUxNjkzZS4uNzc2NzA5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9NSU1FSGVhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL01JTUVIZWFkZXIuY3BwCkBAIC02Myw3ICs2MywxMCBAQCBz
dGF0aWMgS2V5VmFsdWVNYXAgcmV0cmlldmVLZXlWYWx1ZVBhaXJzKFdlYkNvcmU6OlNoYXJlZEJ1
ZmZlckNodW5rUmVhZGVyJiBidWZmZQogICAgICAgICBpZiAoIWtleS5pc0VtcHR5KCkpIHsKICAg
ICAgICAgICAgIGlmIChrZXlWYWx1ZVBhaXJzLmZpbmQoa2V5KSAhPSBrZXlWYWx1ZVBhaXJzLmVu
ZCgpKQogICAgICAgICAgICAgICAgIExPR19FUlJPUigiS2V5IGR1cGxpY2F0ZSBmb3VuZCBpbiBN
SU1FIGhlYWRlci4gS2V5IGlzICclcycsIHByZXZpb3VzIHZhbHVlIHJlcGxhY2VkLiIsIGtleS5h
c2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBrZXlWYWx1ZVBhaXJzLmFkZChrZXksIHZhbHVl
LnRvU3RyaW5nKCkuc3RyaXBXaGl0ZVNwYWNlKCkpOworICAgICAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gdmFsdWUudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICBrZXlWYWx1ZVBhaXJzLmFk
ZChrZXksIHN0cmluZy0+c3RyaXBXaGl0ZVNwYWNlKCkpOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICBrZXkgPSBTdHJpbmcoKTsKICAgICAg
ICAgICAgIHZhbHVlLmNsZWFyKCk7CiAgICAgICAgIH0KQEAgLTc2LDggKzc5LDEyIEBAIHN0YXRp
YyBLZXlWYWx1ZU1hcCByZXRyaWV2ZUtleVZhbHVlUGFpcnMoV2ViQ29yZTo6U2hhcmVkQnVmZmVy
Q2h1bmtSZWFkZXImIGJ1ZmZlCiAgICAgICAgIHZhbHVlLmFwcGVuZChsaW5lLnN1YnN0cmluZyhz
ZW1pQ29sb25JbmRleCArIDEpKTsKICAgICB9CiAgICAgLy8gU3RvcmUgdGhlIGxhc3QgcHJvcGVy
dHkgaWYgdGhlcmUgaXMgb25lLgotICAgIGlmICgha2V5LmlzRW1wdHkoKSkKLSAgICAgICAga2V5
VmFsdWVQYWlycy5zZXQoa2V5LCB2YWx1ZS50b1N0cmluZygpLnN0cmlwV2hpdGVTcGFjZSgpKTsK
KyAgICBpZiAoIWtleS5pc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gdmFs
dWUudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGtleVZhbHVlUGFpcnMuc2V0KGtleSwgc3RyaW5n
LT5zdHJpcFdoaXRlU3BhY2UoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7
CisgICAgfQogICAgIHJldHVybiBrZXlWYWx1ZVBhaXJzOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3h5U2VydmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUHJveHlTZXJ2ZXIuY3BwCmluZGV4IGM2ZDY3YzIuLjBjNjlm
NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJveHlTZXJ2
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJveHlTZXJ2ZXIu
Y3BwCkBAIC02OCw3ICs2OCw5IEBAIFN0cmluZyB0b1N0cmluZyhjb25zdCBWZWN0b3I8UHJveHlT
ZXJ2ZXI+JiBwcm94eVNlcnZlcnMpCiAgICAgICAgIGFwcGVuZFByb3h5U2VydmVyU3RyaW5nKHN0
cmluZ0J1aWxkZXIsIHByb3h5U2VydmVyc1tpXSk7CiAgICAgfQogCi0gICAgcmV0dXJuIHN0cmlu
Z0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tp
ZUphckN1cmxEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQ29va2llSmFyQ3VybERhdGFiYXNlLmNwcAppbmRleCA2NzJiMjUxLi5hNGU3NGIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3Vy
bERhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
Q29va2llSmFyQ3VybERhdGFiYXNlLmNwcApAQCAtNTcsNyArNTcsOSBAQCBzdGF0aWMgU3RyaW5n
IGNvb2tpZXNGb3JTZXNzaW9uKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwg
Y29uc3QgVVJMJgogICAgICAgICAgICAgY29va2llcy5hcHBlbmQocmVzdWx0LnZhbHVlKTsKICAg
ICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gY29va2llcy50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGNvb2tpZXMudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBDb29raWVKYXJDdXJsRGF0YWJhc2U6OnNldENvb2tp
ZXNGcm9tRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgc3RkOjpv
cHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlE
LCBjb25zdCBTdHJpbmcmIHZhbHVlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvQ29va2llSmFyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9tYWMvQ29va2llSmFyTWFjLm1tCmluZGV4IGMyNjQwYmQuLjAwMDVkZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZUph
ck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVK
YXJNYWMubW0KQEAgLTI2MSw3ICsyNjEsMTAgQEAgc3RhdGljIHN0ZDo6cGFpcjxTdHJpbmcsIGJv
b2w+IGNvb2tpZXNGb3JTZXNzaW9uKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2UKICAg
ICAgICAgY29va2llc0J1aWxkZXIuYXBwZW5kKCc9Jyk7CiAgICAgICAgIGNvb2tpZXNCdWlsZGVy
LmFwcGVuZChbY29va2llIHZhbHVlXSk7CiAgICAgfQotICAgIHJldHVybiB7IGNvb2tpZXNCdWls
ZGVyLnRvU3RyaW5nKCksIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMgfTsKKworICAgIGlmIChhdXRv
IHN0cmluZyA9IGNvb2tpZXNCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiB7ICpz
dHJpbmcsIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMgfTsKKyAgICBDUkFTSCgpOwogCiAgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKICAgICByZXR1cm4geyBTdHJpbmcoKSwgZmFsc2UgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJ
WC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3Bw
CmluZGV4IDRkYTdjZjYuLjM4OWQyZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcApAQCAtMzEwLDcgKzMxMCw5IEBAIFN0cmluZyBw
YXRoQnlBcHBlbmRpbmdDb21wb25lbnRzKFN0cmluZ1ZpZXcgcGF0aCwgY29uc3QgVmVjdG9yPFN0
cmluZ1ZpZXc+JiBjb21wCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcvJyk7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKGNvbXBvbmVudCk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIG1ha2VBbGxEaXJlY3Rv
cmllcyhjb25zdCBTdHJpbmcmIHBhdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvRGF0ZVRpbWVGb3JtYXQuY3BwCmluZGV4IGM3NWQzM2QuLmExZWZjMmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRGF0ZVRpbWVGb3JtYXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRGF0ZVRpbWVGb3JtYXQuY3BwCkBAIC0xNDUsNyAr
MTQ1LDEwIEBAIGJvb2wgRGF0ZVRpbWVGb3JtYXQ6OnBhcnNlKGNvbnN0IFN0cmluZyYgc291cmNl
LCBUb2tlbkhhbmRsZXImIHRva2VuSGFuZGxlcikKICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgaWYgKGxpdGVyYWxCdWZmZXIubGVuZ3RoKCkpIHsKLSAgICAgICAgICAgICAgICB0b2tlbkhh
bmRsZXIudmlzaXRMaXRlcmFsKGxpdGVyYWxCdWZmZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAg
ICAgICAgaWYgKGF1dG8gc3RyaW5nID0gbGl0ZXJhbEJ1ZmZlci50b1N0cmluZygpKQorICAgICAg
ICAgICAgICAgICAgICB0b2tlbkhhbmRsZXIudmlzaXRMaXRlcmFsKCpzdHJpbmcpOworICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAg
ICAgICBsaXRlcmFsQnVmZmVyLmNsZWFyKCk7CiAgICAgICAgICAgICB9CiAKQEAgLTE2OSw3ICsx
NzIsMTAgQEAgYm9vbCBEYXRlVGltZUZvcm1hdDo6cGFyc2UoY29uc3QgU3RyaW5nJiBzb3VyY2Us
IFRva2VuSGFuZGxlciYgdG9rZW5IYW5kbGVyKQogICAgICAgICAgICAgfQogCiAgICAgICAgICAg
ICBpZiAobGl0ZXJhbEJ1ZmZlci5sZW5ndGgoKSkgewotICAgICAgICAgICAgICAgIHRva2VuSGFu
ZGxlci52aXNpdExpdGVyYWwobGl0ZXJhbEJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAgICAgICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSBsaXRlcmFsQnVmZmVyLnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICAgICAgICAgIHRva2VuSGFuZGxlci52aXNpdExpdGVyYWwoKnN0cmluZyk7CisgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAg
ICAgIGxpdGVyYWxCdWZmZXIuY2xlYXIoKTsKICAgICAgICAgICAgIH0KIApAQCAtMjIwLDE0ICsy
MjYsMjIgQEAgYm9vbCBEYXRlVGltZUZvcm1hdDo6cGFyc2UoY29uc3QgU3RyaW5nJiBzb3VyY2Us
IFRva2VuSGFuZGxlciYgdG9rZW5IYW5kbGVyKQogICAgIHN3aXRjaCAoc3RhdGUpIHsKICAgICBj
YXNlIFN0YXRlTGl0ZXJhbDoKICAgICBjYXNlIFN0YXRlSW5RdW90ZVF1b3RlOgotICAgICAgICBp
ZiAobGl0ZXJhbEJ1ZmZlci5sZW5ndGgoKSkKLSAgICAgICAgICAgIHRva2VuSGFuZGxlci52aXNp
dExpdGVyYWwobGl0ZXJhbEJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGxpdGVyYWxC
dWZmZXIubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGxpdGVyYWxC
dWZmZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICB0b2tlbkhhbmRsZXIudmlzaXRMaXRl
cmFsKCpzdHJpbmcpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7
CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBjYXNlIFN0YXRlUXVvdGU6
CiAgICAgY2FzZSBTdGF0ZUluUXVvdGU6Ci0gICAgICAgIGlmIChsaXRlcmFsQnVmZmVyLmxlbmd0
aCgpKQotICAgICAgICAgICAgdG9rZW5IYW5kbGVyLnZpc2l0TGl0ZXJhbChsaXRlcmFsQnVmZmVy
LnRvU3RyaW5nKCkpOworICAgICAgICBpZiAobGl0ZXJhbEJ1ZmZlci5sZW5ndGgoKSkgeworICAg
ICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gbGl0ZXJhbEJ1ZmZlci50b1N0cmluZygpKQorICAg
ICAgICAgICAgICAgIHRva2VuSGFuZGxlci52aXNpdExpdGVyYWwoKnN0cmluZyk7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgfQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBjYXNlIFN0YXRlU3ltYm9sOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EZWNvZGVFc2NhcGVTZXF1ZW5jZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmgKaW5kZXggMTRjZjQx
NS4uNzJhMGE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EZWNv
ZGVFc2NhcGVTZXF1ZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Rl
Y29kZUVzY2FwZVNlcXVlbmNlcy5oCkBAIC02NCw3ICs2NCw5IEBAIHN0cnVjdCBVbmljb2RlMTZC
aXRFc2NhcGVTZXF1ZW5jZSB7CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChjb2RlVW5pdCk7
CiAgICAgICAgICAgICBydW4gPSBydW4uc3Vic3RyaW5nKHNlcXVlbmNlU2l6ZSk7CiAgICAgICAg
IH0KLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogfTsKIApAQCAtMTUxLDcgKzE1Myw5IEBAIFN0cmlu
ZyBkZWNvZGVFc2NhcGVTZXF1ZW5jZXMoU3RyaW5nVmlldyBzdHJpbmcsIGNvbnN0IFRleHRFbmNv
ZGluZyYgZW5jb2RpbmcpCiAgICAgICAgIGRlY29kZWRQb3NpdGlvbiA9IGVuY29kZWRSdW5FbmQ7
CiAgICAgfQogICAgIHJlc3VsdC5hcHBlbmQoc3RyaW5nLnN1YnN0cmluZyhkZWNvZGVkUG9zaXRp
b24sIGxlbmd0aCAtIGRlY29kZWRQb3NpdGlvbikpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogaW5saW5lIFZlY3Rvcjx1aW50OF90
PiBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXNBc0RhdGEoU3RyaW5nVmlldyBzdHJpbmcsIGNvbnN0
IFRleHRFbmNvZGluZyYgZW5jb2RpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvUGxhdGZvcm1Mb2NhbGUuY3BwCmluZGV4IDA4NzQzMjUuLmE5ZTU4ZTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvUGxhdGZvcm1Mb2NhbGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvUGxhdGZvcm1Mb2NhbGUuY3BwCkBAIC04Myw3ICs4
Myw5IEBAIFN0cmluZyBEYXRlVGltZVN0cmluZ0J1aWxkZXI6Onplcm9QYWRTdHJpbmcoY29uc3Qg
U3RyaW5nJiBzdHJpbmcsIHNpemVfdCB3aWR0aCkKICAgICBmb3IgKHNpemVfdCBpID0gc3RyaW5n
Lmxlbmd0aCgpOyBpIDwgd2lkdGg7ICsraSkKICAgICAgICAgemVyb1BhZGRlZFN0cmluZ0J1aWxk
ZXIuYXBwZW5kKCcwJyk7CiAgICAgemVyb1BhZGRlZFN0cmluZ0J1aWxkZXIuYXBwZW5kKHN0cmlu
Zyk7Ci0gICAgcmV0dXJuIHplcm9QYWRkZWRTdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gemVyb1BhZGRlZFN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBEYXRlVGltZVN0
cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcihpbnQgbnVtYmVyLCBzaXplX3Qgd2lkdGgpCkBAIC0x
NzUsNyArMTc3LDkgQEAgdm9pZCBEYXRlVGltZVN0cmluZ0J1aWxkZXI6OnZpc2l0TGl0ZXJhbChj
b25zdCBTdHJpbmcmIHRleHQpCiAKIFN0cmluZyBEYXRlVGltZVN0cmluZ0J1aWxkZXI6OnRvU3Ry
aW5nKCkKIHsKLSAgICByZXR1cm4gbV9idWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gbV9idWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKICNlbmRpZgpAQCAtMjM4LDcgKzI0Miw5IEBAIFN0cmluZyBMb2Nh
bGU6OmNvbnZlcnRUb0xvY2FsaXplZE51bWJlcihjb25zdCBTdHJpbmcmIGlucHV0KQogCiAgICAg
YnVpbGRlci5hcHBlbmQoaXNOZWdhdGl2ZSA/IG1fbmVnYXRpdmVTdWZmaXggOiBtX3Bvc2l0aXZl
U3VmZml4KTsKIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBzdGF0aWMgYm9vbCBtYXRjaGVzKGNvbnN0IFN0cmluZyYgdGV4dCwg
dW5zaWduZWQgcG9zaXRpb24sIGNvbnN0IFN0cmluZyYgcGFydCkKQEAgLTMyMSw3ICszMjcsOSBA
QCBTdHJpbmcgTG9jYWxlOjpjb252ZXJ0RnJvbUxvY2FsaXplZE51bWJlcihjb25zdCBTdHJpbmcm
IGxvY2FsaXplZCkKICAgICAgICAgZWxzZQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoc3Rh
dGljX2Nhc3Q8VUNoYXI+KCcwJyArIHN5bWJvbEluZGV4KSk7CiAgICAgfQotICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiAjaWYgRU5B
QkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCkBAIC0zNjAsNyArMzY4LDkgQEAgU3RyaW5n
IExvY2FsZTo6Zm9ybWF0RGF0ZVRpbWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUsIEZvcm1h
dFR5cGUgZm9ybWF0VHlwZSkKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmluZy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmluZy5jcHAKaW5kZXggZmYzMWIy
YS4uNDhjYmEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdt
ZW50ZWRTdHJpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVu
dGVkU3RyaW5nLmNwcApAQCAtMTU5LDcgKzE1OSw5IEBAIFN0cmluZyBTZWdtZW50ZWRTdHJpbmc6
OnRvU3RyaW5nKCkgY29uc3QKICAgICBtX2N1cnJlbnRTdWJzdHJpbmcuYXBwZW5kVG8ocmVzdWx0
KTsKICAgICBmb3IgKGF1dG8mIHN1YnN0cmluZyA6IG1fb3RoZXJTdWJzdHJpbmdzKQogICAgICAg
ICBzdWJzdHJpbmcuYXBwZW5kVG8ocmVzdWx0KTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgU2VnbWVudGVkU3RyaW5nOjph
ZHZhbmNlV2l0aG91dFVwZGF0aW5nTGluZU51bWJlcjE2KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcAppbmRleCBkMmUyYWU3Li43NjIyY2IxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNJQ1UuY3BwCkBAIC0zMTgs
MTMgKzMxOCwxNCBAQCBTdHJpbmcgVGV4dENvZGVjSUNVOjpkZWNvZGUoY29uc3QgY2hhciogYnl0
ZXMsIHNpemVfdCBsZW5ndGgsIGJvb2wgZmx1c2gsIGJvb2wgcwogICAgICAgICBzYXdFcnJvciA9
IHRydWU7CiAgICAgfQogCi0gICAgU3RyaW5nIHJlc3VsdFN0cmluZyA9IHJlc3VsdC50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHJlc3VsdFN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKSB7Cisg
ICAgICAgIC8vIFNpbXBsaWZpZWQgQ2hpbmVzZSBwYWdlcyB1c2UgdGhlIGNvZGUgQTNBMCB0byBt
ZWFuICJmdWxsLXdpZHRoIHNwYWNlIiwgYnV0IElDVSBkZWNvZGVzIGl0IGFzIFUrRTVFNS4KKyAg
ICAgICAgaWYgKCFzdHJjbXAobV9lbmNvZGluZ05hbWUsICJHQksiKSB8fCBlcXVhbExldHRlcnNJ
Z25vcmluZ0FTQ0lJQ2FzZShtX2VuY29kaW5nTmFtZSwgImdiMTgwMzAiKSkKKyAgICAgICAgICAg
IHJlc3VsdFN0cmluZy0+cmVwbGFjZSgweEU1RTUsIGlkZW9ncmFwaGljU3BhY2UpOwogCi0gICAg
Ly8gU2ltcGxpZmllZCBDaGluZXNlIHBhZ2VzIHVzZSB0aGUgY29kZSBBM0EwIHRvIG1lYW4gImZ1
bGwtd2lkdGggc3BhY2UiLCBidXQgSUNVIGRlY29kZXMgaXQgYXMgVStFNUU1LgotICAgIGlmICgh
c3RyY21wKG1fZW5jb2RpbmdOYW1lLCAiR0JLIikgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJ
SUNhc2UobV9lbmNvZGluZ05hbWUsICJnYjE4MDMwIikpCi0gICAgICAgIHJlc3VsdFN0cmluZy5y
ZXBsYWNlKDB4RTVFNSwgaWRlb2dyYXBoaWNTcGFjZSk7Ci0KLSAgICByZXR1cm4gcmVzdWx0U3Ry
aW5nOworICAgICAgICByZXR1cm4gKnJlc3VsdFN0cmluZzsKKyAgICB9CisgICAgQ1JBU0goKTsK
IH0KIAogLy8gV2UgbmVlZCB0byBhcHBseSB0aGVzZSBmYWxsYmFja3Mgb3Vyc2VsdmVzIGFzIHRo
ZXkgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIGJ5IElDVSBhbmQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjVXNlckRlZmluZWQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVc2VyRGVmaW5lZC5jcHAKaW5kZXgg
Mjk2YzQ2OS4uY2I3MGU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9UZXh0Q29kZWNVc2VyRGVmaW5lZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9UZXh0Q29kZWNVc2VyRGVmaW5lZC5jcHAKQEAgLTUzLDcgKzUzLDkgQEAgU3RyaW5nIFRl
eHRDb2RlY1VzZXJEZWZpbmVkOjpkZWNvZGUoY29uc3QgY2hhciogYnl0ZXMsIHNpemVfdCBsZW5n
dGgsIGJvb2wsIGJvb2wKICAgICAgICAgc2lnbmVkIGNoYXIgYyA9IGJ5dGVzW2ldOwogICAgICAg
ICByZXN1bHQuYXBwZW5kKHN0YXRpY19jYXN0PFVDaGFyPihjICYgMHhGN0ZGKSk7CiAgICAgfQot
ICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1
bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogc3RhdGljIFZlY3Rvcjx1aW50OF90PiBlbmNvZGVDb21wbGV4VXNlckRlZmluZWQoU3RyaW5n
VmlldyBzdHJpbmcsIFVuZW5jb2RhYmxlSGFuZGxpbmcgaGFuZGxpbmcpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS92ci9vcGVudnIvVlJQbGF0Zm9ybURpc3BsYXlPcGVuVlIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvb3BlbnZyL1ZSUGxhdGZvcm1EaXNwbGF5
T3BlblZSLmNwcAppbmRleCBkZDYyODhlLi4xNjllY2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS92ci9vcGVudnIvVlJQbGF0Zm9ybURpc3BsYXlPcGVuVlIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3ZyL29wZW52ci9WUlBsYXRmb3JtRGlzcGxheU9wZW5W
Ui5jcHAKQEAgLTQ1LDcgKzQ1LDEwIEBAIFZSUGxhdGZvcm1EaXNwbGF5T3BlblZSOjpWUlBsYXRm
b3JtRGlzcGxheU9wZW5WUih2cjo6SVZSU3lzdGVtKiBzeXN0ZW0sIHZyOjpJVlJDCiAgICAgICAg
IHN0cmluZ0J1aWxkZXIuYXBwZW5kKEhNRE5hbWUsIGxlbmd0aCk7CiAgICAgICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kKCcpJyk7CiAgICAgfQotICAgIG1fZGlzcGxheUluZm8uc2V0RGlzcGxheU5h
bWUoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIG1fZGlzcGxheUluZm8uc2V0RGlzcGxheU5h
bWUoV1RGTW92ZSgqc3RyaW5nKSk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIG1f
ZGlzcGxheUluZm8uc2V0SXNNb3VudGVkKGZhbHNlKTsKICAgICAvLyBGSVhNRTogV2UncmUgYXNz
dW1pbmcgYW4gSFRDIFZpdmUgSE1EIGhlcmUuIEdldCB0aGlzIGluZm8gZnJvbSBPcGVuVlI/Lgog
ICAgIG1fZGlzcGxheUluZm8uc2V0Q2FwYWJpbGl0eUZsYWdzKFZSRGlzcGxheUNhcGFiaWxpdHlG
bGFnTm9uZSB8IFZSRGlzcGxheUNhcGFiaWxpdHlGbGFnUG9zaXRpb24gfCBWUkRpc3BsYXlDYXBh
YmlsaXR5RmxhZ09yaWVudGF0aW9uIHwgVlJEaXNwbGF5Q2FwYWJpbGl0eUZsYWdFeHRlcm5hbERp
c3BsYXkgfCBWUkRpc3BsYXlDYXBhYmlsaXR5RmxhZ1ByZXNlbnQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcAppbmRleCA2
ZmY4OWVjLi4yYmM2ZDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4v
Q2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcApAQCAtMzE0LDcgKzMxNCwxMCBAQCB2b2lkIHJl
cGxhY2VOZXdsaW5lc1dpdGhXaW5kb3dzU3R5bGVOZXdsaW5lcyhTdHJpbmcmIHN0cikKICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIlxyXG4iKTsKICAgICB9
Ci0gICAgc3RyID0gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVz
dWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHN0ciA9ICpzdHJpbmc7CisgICAgZWxzZQorICAgICAg
ICBDUkFTSCgpOwogfQogCiB2b2lkIHJlcGxhY2VOQlNQV2l0aFNwYWNlKFN0cmluZyYgc3RyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1VzZXJBZ2VudFdpbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vVXNlckFnZW50V2luLmNwcAppbmRleCA4MjAx
ZjRlLi5kM2Q2OTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vVXNl
ckFnZW50V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vVXNlckFnZW50
V2luLmNwcApAQCAtNDYsNyArNDYsOSBAQCBTdHJpbmcgc3RhbmRhcmRVc2VyQWdlbnQoY29uc3Qg
U3RyaW5nJiBhcHBsaWNhdGlvbk5hbWUsIGNvbnN0IFN0cmluZyYgYXBwbGljYXRpbwogICAgICAg
ICAgICAgdWFTdHJpbmcuYXBwZW5kKGFwcGxpY2F0aW9uVmVyc2lvbik7CiAgICAgICAgIH0KICAg
ICB9Ci0gICAgcmV0dXJuIHVhU3RyaW5nLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gdWFTdHJpbmcudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogU3RyaW5nIHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKGNvbnN0IFVSTCYgdXJs
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BF
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5jcHAKaW5k
ZXggZTVkODAyNy4uNjY5MWJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d3BlL1JlbmRlclRoZW1lV1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUv
UmVuZGVyVGhlbWVXUEUuY3BwCkBAIC02MCw3ICs2MCw5IEBAIFN0cmluZyBSZW5kZXJUaGVtZVdQ
RTo6bWVkaWFDb250cm9sc1NjcmlwdCgpCiAgICAgU3RyaW5nQnVpbGRlciBzY3JpcHRCdWlsZGVy
OwogICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kKG1lZGlhQ29udHJvbHNMb2NhbGl6ZWRTdHJpbmdz
SmF2YVNjcmlwdCwgc2l6ZW9mKG1lZGlhQ29udHJvbHNMb2NhbGl6ZWRTdHJpbmdzSmF2YVNjcmlw
dCkpOwogICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kKG1lZGlhQ29udHJvbHNCYXNlSmF2YVNjcmlw
dCwgc2l6ZW9mKG1lZGlhQ29udHJvbHNCYXNlSmF2YVNjcmlwdCkpOwotICAgIHJldHVybiBzY3Jp
cHRCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc2NyaXB0QnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
I2VuZGlmCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWlt
ZVR5cGUuY3BwCmluZGV4IDFiMmQ3NTIuLjJmZTU4NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsdWdpbnMvRE9NTWltZVR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMv
RE9NTWltZVR5cGUuY3BwCkBAIC01Nyw3ICs1Nyw5IEBAIFN0cmluZyBET01NaW1lVHlwZTo6c3Vm
Zml4ZXMoKSBjb25zdAogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJywnKTsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoZXh0ZW5zaW9uc1tpXSk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgRE9NTWlt
ZVR5cGU6OmRlc2NyaXB0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCmluZGV4IGZhMGU1N2EuLmJhOWNkNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcApAQCAtNDI4LDcgKzQyOCw5IEBAIFN0cmluZyBSZW5kZXJMYXll
cjo6bmFtZSgpIGNvbnN0CiAgICAgaWYgKGlzUmVmbGVjdGlvbigpKQogICAgICAgICBuYW1lLmFw
cGVuZExpdGVyYWwoIiAocmVmbGVjdGlvbikiKTsKIAotICAgIHJldHVybiBuYW1lLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbmFtZS50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBSZW5kZXJMYXllckNvbXBvc2l0b3ImIFJl
bmRlckxheWVyOjpjb21wb3NpdG9yKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggMGU5MDg4OC4uYzc5YjY3OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAKQEAgLTg2Myw3ICs4NjMsMTAgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6Omxv
Z0xheWVySW5mbyhjb25zdCBSZW5kZXJMYXllciYgbGF5ZXIsIGludCBkZXB0aCkKIAogICAgIGxv
Z1N0cmluZy5hcHBlbmQobGF5ZXIubmFtZSgpKTsKIAotICAgIExPRyhDb21wb3NpdGluZywgIiVz
IiwgbG9nU3RyaW5nLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gbG9nU3RyaW5nLnRvU3RyaW5nKCkpCisgICAgICAgIExPRyhDb21wb3NpdGluZywgIiVz
Iiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RNYXJrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIu
Y3BwCmluZGV4IDY0OTY5NzguLmU0OGEyOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKQEAgLTExMTcsNyArMTExNyw5IEBAIFN0cmluZyBsaXN0
TWFya2VyVGV4dChFTGlzdFN0eWxlVHlwZSB0eXBlLCBpbnQgdmFsdWUpCiAgICAgICAgICAgICBi
cmVhazsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogUmVuZGVyTGlzdE1hcmtlcjo6UmVuZGVyTGlzdE1hcmtlcihS
ZW5kZXJMaXN0SXRlbSYgbGlzdEl0ZW0sIFJlbmRlclN0eWxlJiYgc3R5bGUpCkBAIC0xMzYzLDcg
KzEzNjUsMTAgQEAgdm9pZCBSZW5kZXJMaXN0TWFya2VyOjpwYWludChQYWludEluZm8mIHBhaW50
SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2UKICAgICAgICAgICAgICAgICBidWZm
ZXIuYXBwZW5kKHN1ZmZpeCk7CiAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChzcGFjZSk7
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB0b0RyYXcgPSBidWZmZXIudG9TdHJpbmcoKTsK
KyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1ZmZlci50b1N0cmluZygpKQorICAgICAg
ICAgICAgICAgIHRvRHJhdyA9ICpzdHJpbmc7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgQ1JBU0goKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmIChzdHlsZSgp
LmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSkKICAgICAgICAgICAgICAgICB0b0RyYXcgPSBtX3Rl
eHQgKyBTdHJpbmcoJnN1ZmZpeCwgMSkgKyBTdHJpbmcoJnNwYWNlLCAxKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAppbmRleCA4ZmE1MWUyLi4xMDUyMGZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCkBAIC0xODEsNyArMTgxLDkgQEAgU3Ry
aW5nIGNhcGl0YWxpemUoY29uc3QgU3RyaW5nJiBzdHJpbmcsIFVDaGFyIHByZXZpb3VzQ2hhcmFj
dGVyKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzdHJpbmdJbXBsW2kgLSAxXSk7CiAgICAg
fQogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogCiBpbmxpbmUgUmVuZGVyVGV4dDo6UmVuZGVyVGV4dChOb2RlJiBub2RlLCBjb25zdCBT
dHJpbmcmIHRleHQpCkBAIC03NTYsMTYgKzc1OCwxOSBAQCBzdGF0aWMgZmxvYXQgbWF4V29yZEZy
YWdtZW50V2lkdGgoUmVuZGVyVGV4dCYgcmVuZGVyZXIsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHls
ZQogICAgICAgICBmcmFnbWVudFdpdGhIeXBoZW4uYXBwZW5kKHdvcmQuc3Vic3RyaW5nKHN1ZmZp
eFN0YXJ0LCBmcmFnbWVudExlbmd0aCkpOwogICAgICAgICBmcmFnbWVudFdpdGhIeXBoZW4uYXBw
ZW5kKHN0eWxlLmh5cGhlblN0cmluZygpKTsKIAotICAgICAgICBUZXh0UnVuIHJ1biA9IFJlbmRl
ckJsb2NrOjpjb25zdHJ1Y3RUZXh0UnVuKGZyYWdtZW50V2l0aEh5cGhlbi50b1N0cmluZygpLCBz
dHlsZSk7Ci0gICAgICAgIHJ1bi5zZXRDaGFyYWN0ZXJTY2FuRm9yQ29kZVBhdGgoIXJlbmRlcmVy
LmNhblVzZVNpbXBsZUZvbnRDb2RlUGF0aCgpKTsKLSAgICAgICAgZmxvYXQgZnJhZ21lbnRXaWR0
aCA9IGZvbnQud2lkdGgocnVuLCAmZmFsbGJhY2tGb250cywgJmdseXBoT3ZlcmZsb3cpOworICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSBmcmFnbWVudFdpdGhIeXBoZW4udG9TdHJpbmcoKSkgewor
ICAgICAgICAgICAgVGV4dFJ1biBydW4gPSBSZW5kZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1bigq
c3RyaW5nLCBzdHlsZSk7CisgICAgICAgICAgICBydW4uc2V0Q2hhcmFjdGVyU2NhbkZvckNvZGVQ
YXRoKCFyZW5kZXJlci5jYW5Vc2VTaW1wbGVGb250Q29kZVBhdGgoKSk7CisgICAgICAgICAgICBm
bG9hdCBmcmFnbWVudFdpZHRoID0gZm9udC53aWR0aChydW4sICZmYWxsYmFja0ZvbnRzLCAmZ2x5
cGhPdmVyZmxvdyk7CiAKLSAgICAgICAgLy8gTmFycm93IHByZWZpeGVzIGFyZSBpZ25vcmVkLiBT
ZWUgdHJ5SHlwaGVuYXRpbmcgaW4gUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcC4KLSAgICAgICAg
aWYgKGZyYWdtZW50V2lkdGggPD0gbWluaW11bUZyYWdtZW50V2lkdGhUb0NvbnNpZGVyKQotICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAvLyBOYXJyb3cgcHJlZml4ZXMgYXJlIGln
bm9yZWQuIFNlZSB0cnlIeXBoZW5hdGluZyBpbiBSZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwLgor
ICAgICAgICAgICAgaWYgKGZyYWdtZW50V2lkdGggPD0gbWluaW11bUZyYWdtZW50V2lkdGhUb0Nv
bnNpZGVyKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIHN1ZmZpeFN0YXJ0
ICs9IGZyYWdtZW50TGVuZ3RoOwotICAgICAgICBtYXhGcmFnbWVudFdpZHRoID0gc3RkOjptYXgo
bWF4RnJhZ21lbnRXaWR0aCwgZnJhZ21lbnRXaWR0aCk7CisgICAgICAgICAgICBzdWZmaXhTdGFy
dCArPSBmcmFnbWVudExlbmd0aDsKKyAgICAgICAgICAgIG1heEZyYWdtZW50V2lkdGggPSBzdGQ6
Om1heChtYXhGcmFnbWVudFdpZHRoLCBmcmFnbWVudFdpZHRoKTsKKyAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIHJldHVybiBtYXhGcmFnbWVudFdpZHRo
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1t
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCmluZGV4IDRmZTgz
ZTAuLjI1NzhmNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1Mu
bW0KQEAgLTEzNjAsNyArMTM2MCwxMCBAQCBTdHJpbmcgUmVuZGVyVGhlbWVJT1M6Om1lZGlhQ29u
dHJvbHNTY3JpcHQoKQogICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBzY3JpcHRCdWlsZGVyOwog
ICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQoW05TU3RyaW5nIHN0cmluZ1dpdGhDb250
ZW50c09mRmlsZTpbYnVuZGxlIHBhdGhGb3JSZXNvdXJjZTpAIm1vZGVybi1tZWRpYS1jb250cm9s
cy1sb2NhbGl6ZWQtc3RyaW5ncyIgb2ZUeXBlOkAianMiXSBlbmNvZGluZzpOU1VURjhTdHJpbmdF
bmNvZGluZyBlcnJvcjpuaWxdKTsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kKFtO
U1N0cmluZyBzdHJpbmdXaXRoQ29udGVudHNPZkZpbGU6W2J1bmRsZSBwYXRoRm9yUmVzb3VyY2U6
QCJtb2Rlcm4tbWVkaWEtY29udHJvbHMiIG9mVHlwZTpAImpzIiBpbkRpcmVjdG9yeTpAIm1vZGVy
bi1tZWRpYS1jb250cm9scyJdIGVuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nIGVycm9yOm5p
bF0pOwotICAgICAgICAgICAgbV9tZWRpYUNvbnRyb2xzU2NyaXB0ID0gc2NyaXB0QnVpbGRlci50
b1N0cmluZygpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc2NyaXB0QnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICAgICAgICAgIG1fbWVkaWFDb250cm9sc1NjcmlwdCA9ICpzdHJp
bmc7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAg
fQogICAgICAgICByZXR1cm4gbV9tZWRpYUNvbnRyb2xzU2NyaXB0OwogICAgIH0KQEAgLTEzNzMs
NyArMTM3NiwxMCBAQCBTdHJpbmcgUmVuZGVyVGhlbWVJT1M6Om1lZGlhQ29udHJvbHNTY3JpcHQo
KQogICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZChbTlNTdHJpbmcgc3RyaW5nV2l0aENvbnRl
bnRzT2ZGaWxlOltidW5kbGUgcGF0aEZvclJlc291cmNlOkAibWVkaWFDb250cm9sc0FwcGxlIiBv
ZlR5cGU6QCJqcyJdIGVuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nIGVycm9yOm5pbF0pOwog
ICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZChbTlNTdHJpbmcgc3RyaW5nV2l0aENvbnRlbnRz
T2ZGaWxlOltidW5kbGUgcGF0aEZvclJlc291cmNlOkAibWVkaWFDb250cm9sc2lPUyIgb2ZUeXBl
OkAianMiXSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZyBlcnJvcjpuaWxdKTsKIAotICAg
ICAgICBtX2xlZ2FjeU1lZGlhQ29udHJvbHNTY3JpcHQgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgICAgIG1fbGVnYWN5TWVkaWFDb250cm9sc1NjcmlwdCA9ICpzdHJpbmc7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIHJldHVybiBtX2xlZ2Fj
eU1lZGlhQ29udHJvbHNTY3JpcHQ7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZVdpbi5jcHAKaW5kZXggZGVlYTFhOS4uODM2ZDAxYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwCkBAIC0xMDk0LDcgKzEwOTQsMTAgQEAg
U3RyaW5nIFJlbmRlclRoZW1lV2luOjptZWRpYUNvbnRyb2xzU2NyaXB0KCkKICAgICAgICAgU3Ry
aW5nQnVpbGRlciBzY3JpcHRCdWlsZGVyOwogICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZChz
dHJpbmdXaXRoQ29udGVudHNPZkZpbGUoQ0ZTVFIoIm1lZGlhQ29udHJvbHNMb2NhbGl6ZWRTdHJp
bmdzIiksIENGU1RSKCJqcyIpKSk7CiAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kKHN0cmlu
Z1dpdGhDb250ZW50c09mRmlsZShDRlNUUigibWVkaWFDb250cm9sc0FwcGxlIiksIENGU1RSKCJq
cyIpKSk7Ci0gICAgICAgIG1fbWVkaWFDb250cm9sc1NjcmlwdCA9IHNjcmlwdEJ1aWxkZXIudG9T
dHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc2NyaXB0QnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICAgICAgbV9tZWRpYUNvbnRyb2xzU2NyaXB0ID0gKnN0cmluZzsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgcmV0dXJuIG1fbWVkaWFD
b250cm9sc1NjcmlwdDsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VHJlZUFzVGV4dC5jcHAKaW5kZXggNTVjZGI0Yi4uODVjNzhlNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcApAQCAtMTcwLDcgKzE3MCw5IEBAIFN0
cmluZyBxdW90ZUFuZEVzY2FwZU5vblByaW50YWJsZXMoU3RyaW5nVmlldyBzKQogICAgICAgICB9
CiAgICAgfQogICAgIHJlc3VsdC5hcHBlbmQoJyInKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgUmVuZGVyVHJlZUFzVGV4
dDo6d3JpdGVSZW5kZXJPYmplY3QoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFJlbmRlck9iamVjdCYg
bywgUmVuZGVyQXNUZXh0QmVoYXZpb3IgYmVoYXZpb3IpCkBAIC04MDcsNyArODA5LDkgQEAgc3Rh
dGljIFN0cmluZyBub2RlUG9zaXRpb24oTm9kZSogbm9kZSkKICAgICAgICAgICAgIHJlc3VsdC5h
cHBlbmRMaXRlcmFsKCJkb2N1bWVudCIpOwogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIHZvaWQgd3JpdGVT
ZWxlY3Rpb24oVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFJlbmRlckJveCYgcmVuZGVyZXIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNl
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNl
ZC5jcHAKaW5kZXggODliYjA0MC4uOGM3ODRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmNwcApAQCAtNzEsNyArNzEs
MTAgQEAgdm9pZCBSZW5kZXJNYXRoTUxGZW5jZWQ6OnVwZGF0ZUZyb21FbGVtZW50KCkKICAgICAg
ICAgICAgIGlmICghaXNTcGFjZU9yTmV3bGluZShzZXBhcmF0b3JzW2ldKSkKICAgICAgICAgICAg
ICAgICBjaGFyYWN0ZXJzLmFwcGVuZChzZXBhcmF0b3JzW2ldKTsKICAgICAgICAgfQotICAgICAg
ICBtX3NlcGFyYXRvcnMgPSAhY2hhcmFjdGVycy5sZW5ndGgoKSA/IDAgOiBjaGFyYWN0ZXJzLnRv
U3RyaW5nKCkuaW1wbCgpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBjaGFyYWN0ZXJzLnRv
U3RyaW5nKCkpCisgICAgICAgICAgICBtX3NlcGFyYXRvcnMgPSAhY2hhcmFjdGVycy5sZW5ndGgo
KSA/IDAgOiBzdHJpbmctPmltcGwoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0go
KTsKICAgICB9IGVsc2UgewogICAgICAgICAvLyBUaGUgc2VwYXJhdG9yIGRlZmF1bHRzIHRvIGEg
c2luZ2xlIGNvbW1hLgogICAgICAgICBtX3NlcGFyYXRvcnMgPSBTdHJpbmdJbXBsOjpjcmVhdGUo
IiwiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5k
ZXJUcmVlQnVpbGRlck1hdGhNTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRp
bmcvUmVuZGVyVHJlZUJ1aWxkZXJNYXRoTUwuY3BwCmluZGV4IDVjYjQ3OGIuLjIwZDI1MTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVp
bGRlck1hdGhNTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1Jl
bmRlclRyZWVCdWlsZGVyTWF0aE1MLmNwcApAQCAtOTAsNyArOTAsMTAgQEAgdm9pZCBSZW5kZXJU
cmVlQnVpbGRlcjo6TWF0aE1MOjphdHRhY2goUmVuZGVyTWF0aE1MRmVuY2VkJiBwYXJlbnQsIFJl
bmRlclB0cjxSZW4KIAogICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBzdHJpbmdCdWlsZGVyOwog
ICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoc2VwYXJhdG9yKTsKLSAgICAgICAgICAg
IHNlcGFyYXRvclJlbmRlcmVyID0gY3JlYXRlTWF0aE1MT3BlcmF0b3IocGFyZW50LCBzdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCksIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6SW5maXgsIE1hdGhN
TE9wZXJhdG9yRGljdGlvbmFyeTo6U2VwYXJhdG9yKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICBzZXBhcmF0
b3JSZW5kZXJlciA9IGNyZWF0ZU1hdGhNTE9wZXJhdG9yKHBhcmVudCwgKnN0cmluZywgTWF0aE1M
T3BlcmF0b3JEaWN0aW9uYXJ5OjpJbmZpeCwgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpTZXBh
cmF0b3IpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAg
ICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhM
aXN0VmFsdWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmNw
cAppbmRleCBiYTIwNjQ4Li4yMGVhM2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTGVuZ3RoTGlzdFZhbHVlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0
aExpc3RWYWx1ZXMuY3BwCkBAIC02Myw3ICs2Myw5IEBAIFN0cmluZyBTVkdMZW5ndGhMaXN0VmFs
dWVzOjp2YWx1ZUFzU3RyaW5nKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoYXQoaSku
dmFsdWVBc1N0cmluZygpKTsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R051bWJlckxpc3RWYWx1ZXMuY3BwCmluZGV4IDZkZmQ5OTMuLjg3NWJlNDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5jcHAKQEAgLTU1LDcgKzU1LDkgQEAgU3Ry
aW5nIFNWR051bWJlckxpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogICAgICAgICBi
dWlsZGVyLmFwcGVuZE51bWJlcihhdChpKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU3RyaW5nQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGF0aFN0cmluZ0J1aWxkZXIuY3BwCmluZGV4IDEwNTM5MWMuLjljNTc3ZWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU3RyaW5nQnVpbGRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTdHJpbmdCdWlsZGVyLmNwcApAQCAtMzcs
NyArMzcsOSBAQCBTdHJpbmcgU1ZHUGF0aFN0cmluZ0J1aWxkZXI6OnJlc3VsdCgpCiAKICAgICAv
LyBSZW1vdmUgdHJhaWxpbmcgc3BhY2UuCiAgICAgbV9zdHJpbmdCdWlsZGVyLnJlc2l6ZShzaXpl
IC0gMSk7Ci0gICAgcmV0dXJuIG1fc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IG1fc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIFNWR1BhdGhTdHJpbmdCdWlsZGVyOjpp
bmNyZW1lbnRQYXRoU2VnbWVudENvdW50KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoVXRpbGl0
aWVzLmNwcAppbmRleCBjZjlmMDE0Li5jYzU0MzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhVdGlsaXRpZXMuY3BwCkBAIC0xMDEsNyArMTAxLDkgQEAgU3RyaW5nIGJ1aWxkU3RyaW5nRnJv
bVBhdGgoY29uc3QgUGF0aCYgcGF0aCkKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgcmV0dXJu
IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wg
YnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRoU2VnTGlzdFZhbHVlcyhjb25zdCBTVkdQ
YXRoU2VnTGlzdFZhbHVlcyYgbGlzdCwgU1ZHUGF0aEJ5dGVTdHJlYW0mIHJlc3VsdCwgUGF0aFBh
cnNpbmdNb2RlIHBhcnNpbmdNb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1BvaW50TGlzdFZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFs
dWVzLmNwcAppbmRleCBkODFlNmEyLi5kOGJkZWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UG9pbnRMaXN0VmFsdWVzLmNwcApAQCAtNDEsNyArNDEsOSBAQCBTdHJpbmcgU1ZHUG9pbnRMaXN0
VmFsdWVzOjp2YWx1ZUFzU3RyaW5nKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1i
ZXIocG9pbnQueSgpKTsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0
cmluZ0xpc3RWYWx1ZXMuY3BwCmluZGV4IDNmZjg5OGEuLjhjNjFmMTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU3RyaW5nTGlzdFZhbHVlcy5jcHAKQEAgLTczLDcgKzczLDkgQEAgU3RyaW5n
IFNWR1N0cmluZ0xpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogICAgICAgICBidWls
ZGVyLmFwcGVuZChhdChpKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmNwcAppbmRleCAyNWIzYzMxLi42YjQyZDNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuY3BwCkBAIC02OCw3
ICs2OCw5IEBAIFN0cmluZyBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nKCkg
Y29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoYXQoaSkudmFsdWVBc1N0cmluZygpKTsKICAg
ICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogdm9pZCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjpwYXJzZShjb25zdCBTdHJp
bmcmIHRyYW5zZm9ybSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zv
cm1WYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtVmFsdWUuY3BwCmlu
ZGV4IDYzZDQ1YTUuLmVhMTQ2M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
cmFuc2Zvcm1WYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZh
bHVlLmNwcApAQCAtMTc5LDcgKzE3OSw5IEBAIFN0cmluZyBTVkdUcmFuc2Zvcm1WYWx1ZTo6dmFs
dWVBc1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fbWF0cml4LmYoKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCcpJyk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlm
IChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICBjYXNlIFNWR19UUkFOU0ZPUk1f
VFJBTlNMQVRFOiB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKQEAgLTE4OCw3ICsx
OTAsOSBAQCBTdHJpbmcgU1ZHVHJhbnNmb3JtVmFsdWU6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAog
ICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJl
cihtX21hdHJpeC5mKCkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnKScpOwotICAgICAgICBy
ZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JB
U0goKTsKICAgICB9CiAgICAgY2FzZSBTVkdfVFJBTlNGT1JNX1NDQUxFOiB7CiAgICAgICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKQEAgLTE5Nyw3ICsyMDEsOSBAQCBTdHJpbmcgU1ZHVHJhbnNm
b3JtVmFsdWU6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZCgn
ICcpOwogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX21hdHJpeC55U2NhbGUoKSk7CiAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3Ry
aW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICBj
YXNlIFNWR19UUkFOU0ZPUk1fUk9UQVRFOiB7CiAgICAgICAgIGRvdWJsZSBhbmdsZUluUmFkID0g
ZGVnMnJhZChtX2FuZ2xlKTsKQEAgLTIxNSw3ICsyMjEsOSBAQCBTdHJpbmcgU1ZHVHJhbnNmb3Jt
VmFsdWU6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRO
dW1iZXIoY3kpOwogICAgICAgICB9CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Ci0gICAg
ICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAg
ICBDUkFTSCgpOwogICAgIH0KICAgICBjYXNlIFNWR19UUkFOU0ZPUk1fU0tFV1g6CiAgICAgY2Fz
ZSBTVkdfVFJBTlNGT1JNX1NLRVdZOiB7CkBAIC0yMjMsNyArMjMxLDkgQEAgU3RyaW5nIFNWR1Ry
YW5zZm9ybVZhbHVlOjp2YWx1ZUFzU3RyaW5nKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBl
bmQocHJlZml4KTsKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV9hbmdsZSk7CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJh
aXRzLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5o
CmluZGV4IGEyMzI3ZTYuLjgwMGFiZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9w
cm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaApAQCAtMTQzLDcgKzE0Myw5IEBAIHN0cnVjdCBT
VkdQcm9wZXJ0eVRyYWl0czxGbG9hdFBvaW50PiB7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVt
YmVyKHR5cGUueCgpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICAgICAgYnVp
bGRlci5hcHBlbmROdW1iZXIodHlwZS55KCkpOwotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0
cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9Owog
CkBAIC0xNzQsNyArMTc2LDkgQEAgc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD4g
ewogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLndpZHRoKCkpOwogICAgICAgICBi
dWlsZGVyLmFwcGVuZCgnICcpOwogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLmhl
aWdodCgpKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCmluZGV4IDgxYTQwMDkuLjBjMjQwNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKQEAgLTE1NDAsNyArMTU0MCw5IEBAIEV4Y2VwdGlvbk9yPFN0cmluZz4g
SW50ZXJuYWxzOjpkdW1wTWFya2VyUmVjdHMoY29uc3QgU3RyaW5nJiBtYXJrZXJUeXBlU3RyaW5n
KQogICAgICAgICByZWN0U3RyaW5nLmFwcGVuZE51bWJlcihyZWN0LmhlaWdodCgpKTsKICAgICAg
ICAgcmVjdFN0cmluZy5hcHBlbmRMaXRlcmFsKCIpICIpOwogICAgIH0KLSAgICByZXR1cm4gcmVj
dFN0cmluZy50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlY3RTdHJpbmcudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIFdURk1vdmUoKnN0cmluZyk7CisgICAgQ1JBU0goKTsK
IH0KIAogdm9pZCBJbnRlcm5hbHM6OmFkZFRleHRNYXRjaE1hcmtlcihjb25zdCBSYW5nZSYgcmFu
Z2UsIGJvb2wgaXNBY3RpdmUpCkBAIC0yMDc5LDcgKzIwODEsOSBAQCBTdHJpbmcgSW50ZXJuYWxz
OjpwYXJzZXJNZXRhRGF0YShKU0M6OkpTVmFsdWUgY29kZSkKICAgICByZXN1bHQuYXBwZW5kTnVt
YmVyKGVuZENvbHVtbik7CiAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIiB9Iik7CiAKLSAgICBy
ZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZv
aWQgSW50ZXJuYWxzOjp1cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCkKQEAgLTMwNzEsNyAr
MzA3NSw5IEBAIEV4Y2VwdGlvbk9yPFN0cmluZz4gSW50ZXJuYWxzOjpnZXRDdXJyZW50Q3Vyc29y
SW5mbygpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQobnVtYmVyVG9GaXhlZFByZWNpc2lvblN0cmlu
ZyhjdXJzb3IuaW1hZ2VTY2FsZUZhY3RvcigpLCA4LCBidWZmZXIsIHRydWUpKTsKICAgICB9CiAj
ZW5kaWYKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBXVEZNb3ZlKCpzdHJpbmcpOwor
ICAgIENSQVNIKCk7CiAjZWxzZQogICAgIHJldHVybiBTdHJpbmcgeyAiRkFJTDogQ3Vyc29yIGRl
dGFpbHMgbm90IGF2YWlsYWJsZSBvbiB0aGlzIHBsYXRmb3JtLiIgfTsKICNlbmRpZgpAQCAtMzUx
NCw3ICszNTIwLDkgQEAgRXhjZXB0aW9uT3I8U3RyaW5nPiBJbnRlcm5hbHM6Om1lZGlhU2Vzc2lv
blJlc3RyaWN0aW9ucyhjb25zdCBTdHJpbmcmIG1lZGlhVHlwZVMKICAgICAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCcsJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJpbnRlcnJ1cHRlZHBsYXli
YWNrbm90cGVybWl0dGVkIik7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gV1RGTW92ZSgqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIEludGVybmFsczo6
c2V0TWVkaWFFbGVtZW50UmVzdHJpY3Rpb25zKEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQsIFN0
cmluZ1ZpZXcgcmVzdHJpY3Rpb25zU3RyaW5nKQpAQCAtMzc1NSw0OCArMzc2Myw1MCBAQCBTdHJp
bmcgSW50ZXJuYWxzOjpwYWdlTWVkaWFTdGF0ZSgpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmlu
ZygpOwogCiAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRl
ID0gZG9jdW1lbnQtPnBhZ2UoKS0+bWVkaWFTdGF0ZSgpOwotICAgIFN0cmluZ0J1aWxkZXIgc3Ry
aW5nOworICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBpZiAoc3RhdGUgJiBNZWRpYVBy
b2R1Y2VyOjpJc1BsYXlpbmdBdWRpbykKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNQbGF5aW5n
QXVkaW8sIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJJc1BsYXlpbmdBdWRpbywiKTsKICAg
ICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdWaWRlbykKLSAgICAgICAgc3Ry
aW5nLmFwcGVuZCgiSXNQbGF5aW5nVmlkZW8sIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJJ
c1BsYXlpbmdWaWRlbywiKTsKICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpJc1BsYXlp
bmdUb0V4dGVybmFsRGV2aWNlKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdUb0V4
dGVybmFsRGV2aWNlLCIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiSXNQbGF5aW5nVG9FeHRl
cm5hbERldmljZSwiKTsKICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpSZXF1aXJlc1Bs
YXliYWNrVGFyZ2V0TW9uaXRvcmluZykKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiUmVxdWlyZXNQ
bGF5YmFja1RhcmdldE1vbml0b3JpbmcsIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJSZXF1
aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZywiKTsKICAgICBpZiAoc3RhdGUgJiBNZWRpYVBy
b2R1Y2VyOjpFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlKQotICAgICAgICBzdHJpbmcu
YXBwZW5kKCJFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlLCIpOworICAgICAgICBidWls
ZGVyLmFwcGVuZCgiRXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSwiKTsKICAgICBpZiAo
c3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpEaWRQbGF5VG9FbmQpCi0gICAgICAgIHN0cmluZy5hcHBl
bmQoIkRpZFBsYXlUb0VuZCwiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIkRpZFBsYXlUb0Vu
ZCwiKTsKICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpJc1NvdXJjZUVsZW1lbnRQbGF5
aW5nKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc1NvdXJjZUVsZW1lbnRQbGF5aW5nLCIpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZCgiSXNTb3VyY2VFbGVtZW50UGxheWluZywiKTsKIAogICAg
IGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OklzTmV4dFRyYWNrQ29udHJvbEVuYWJsZWQpCi0g
ICAgICAgIHN0cmluZy5hcHBlbmQoIklzTmV4dFRyYWNrQ29udHJvbEVuYWJsZWQsIik7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCJJc05leHRUcmFja0NvbnRyb2xFbmFibGVkLCIpOwogICAgIGlm
IChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OklzUHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVkKQot
ICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc1ByZXZpb3VzVHJhY2tDb250cm9sRW5hYmxlZCwiKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmQoIklzUHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVkLCIp
OwogCiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SGFzUGxheWJhY2tUYXJnZXRBdmFp
bGFiaWxpdHlMaXN0ZW5lcikKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzUGxheWJhY2tUYXJn
ZXRBdmFpbGFiaWxpdHlMaXN0ZW5lciwiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIkhhc1Bs
YXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIsIik7CiAgICAgaWYgKHN0YXRlICYgTWVk
aWFQcm9kdWNlcjo6SGFzQXVkaW9PclZpZGVvKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNB
dWRpb09yVmlkZW8sIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJIYXNBdWRpb09yVmlkZW8s
Iik7CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlQXVkaW9DYXB0dXJl
RGV2aWNlKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZp
Y2UsIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZp
Y2UsIik7CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlVmlkZW9DYXB0
dXJlRGV2aWNlKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNBY3RpdmVWaWRlb0NhcHR1cmVE
ZXZpY2UsIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJIYXNBY3RpdmVWaWRlb0NhcHR1cmVE
ZXZpY2UsIik7CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRBdWRpb0Nh
cHR1cmVEZXZpY2UpCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc011dGVkQXVkaW9DYXB0dXJl
RGV2aWNlLCIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiSGFzTXV0ZWRBdWRpb0NhcHR1cmVE
ZXZpY2UsIik7CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRWaWRlb0Nh
cHR1cmVEZXZpY2UpCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc011dGVkVmlkZW9DYXB0dXJl
RGV2aWNlLCIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiSGFzTXV0ZWRWaWRlb0NhcHR1cmVE
ZXZpY2UsIik7CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SGFzVXNlckludGVyYWN0
ZWRXaXRoTWVkaWFFbGVtZW50KQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNVc2VySW50ZXJh
Y3RlZFdpdGhNZWRpYUVsZW1lbnQsIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJIYXNVc2Vy
SW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQsIik7CiAKLSAgICBpZiAoc3RyaW5nLmlzRW1wdHko
KSkKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNOb3RQbGF5aW5nIik7CisgICAgaWYgKGJ1aWxk
ZXIuaXNFbXB0eSgpKQorICAgICAgICBidWlsZGVyLmFwcGVuZCgiSXNOb3RQbGF5aW5nIik7CiAg
ICAgZWxzZQotICAgICAgICBzdHJpbmcucmVzaXplKHN0cmluZy5sZW5ndGgoKSAtIDEpOworICAg
ICAgICBidWlsZGVyLnJlc2l6ZShidWlsZGVyLmxlbmd0aCgpIC0gMSk7CiAKLSAgICByZXR1cm4g
c3RyaW5nLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIElu
dGVybmFsczo6c2V0UGFnZURlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnNMb2FkaW5nKQpAQCAtMzkx
OCw3ICszOTI4LDkgQEAgRXhjZXB0aW9uT3I8U3RyaW5nPiBJbnRlcm5hbHM6OnNjcm9sbFNuYXBP
ZmZzZXRzKEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4g
cmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiBXVEZNb3ZlKCpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJs
YXlDbGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGll
bnQuY3BwCmluZGV4IGU1YTZjZmUuLmY0YTNjZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAKQEAgLTk4LDcgKzk4LDEwIEBAIHZvaWQg
TW9ja1BhZ2VPdmVybGF5Q2xpZW50OjpkcmF3UmVjdChQYWdlT3ZlcmxheSYgb3ZlcmxheSwgR3Jh
cGhpY3NDb250ZXh0JiBjb250CiAgICAgbWVzc2FnZS5hcHBlbmRMaXRlcmFsKCIsICIpOwogICAg
IG1lc3NhZ2UuYXBwZW5kTnVtYmVyKGRpcnR5UmVjdC5oZWlnaHQoKSk7CiAgICAgbWVzc2FnZS5h
cHBlbmRMaXRlcmFsKCIpIik7Ci0gICAgb3ZlcmxheS5wYWdlKCktPm1haW5GcmFtZSgpLmRvY3Vt
ZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdlTGV2
ZWw6OkRlYnVnLCBtZXNzYWdlLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1l
c3NhZ2UudG9TdHJpbmcoKSkKKyAgICAgICAgb3ZlcmxheS5wYWdlKCktPm1haW5GcmFtZSgpLmRv
Y3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdl
TGV2ZWw6OkRlYnVnLCAqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAg
ICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CiAKQEAgLTEy
Myw3ICsxMjYsMTAgQEAgYm9vbCBNb2NrUGFnZU92ZXJsYXlDbGllbnQ6Om1vdXNlRXZlbnQoUGFn
ZU92ZXJsYXkmIG92ZXJsYXksIGNvbnN0IFBsYXRmb3JtTW91c2UKICAgICBtZXNzYWdlLmFwcGVu
ZExpdGVyYWwoIiwgIik7CiAgICAgbWVzc2FnZS5hcHBlbmROdW1iZXIoZXZlbnQucG9zaXRpb24o
KS55KCkpOwogICAgIG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiKSIpOwotICAgIG92ZXJsYXkucGFn
ZSgpLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291
cmNlOjpPdGhlciwgTWVzc2FnZUxldmVsOjpEZWJ1ZywgbWVzc2FnZS50b1N0cmluZygpKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBtZXNzYWdlLnRvU3RyaW5nKCkpCisgICAgICAgIG92ZXJsYXku
cGFnZSgpLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlOjpPdGhlciwgTWVzc2FnZUxldmVsOjpEZWJ1ZywgKnN0cmluZyk7CisgICAgZWxzZQor
ICAgICAgICBDUkFTSCgpOwogCiAgICAgcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwCmluZGV4IDViMzQwZmYuLjQ0ZTRlMjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAKQEAg
LTIwMiw3ICsyMDIsOSBAQCB2b2lkIFdvcmtlclNjcmlwdExvYWRlcjo6bm90aWZ5RXJyb3IoKQog
CiBTdHJpbmcgV29ya2VyU2NyaXB0TG9hZGVyOjpzY3JpcHQoKQogewotICAgIHJldHVybiBtX3Nj
cmlwdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1fc2NyaXB0LnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgV29y
a2VyU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5pc2hlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS94bWwvWE1MRXJyb3JzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxFcnJvcnMuY3Bw
CmluZGV4IGIxNDMyZDEuLjE1MzE5ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9Y
TUxFcnJvcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxFcnJvcnMuY3BwCkBAIC0x
NDgsOCArMTQ4LDExIEBAIHZvaWQgWE1MRXJyb3JzOjppbnNlcnRFcnJvck1lc3NhZ2VCbG9jaygp
CiAgICAgICAgIGRvY3VtZW50RWxlbWVudCA9IFdURk1vdmUoYm9keSk7CiAgICAgfQogCi0gICAg
U3RyaW5nIGVycm9yTWVzc2FnZXMgPSBtX2Vycm9yTWVzc2FnZXMudG9TdHJpbmcoKTsKLSAgICBh
dXRvIHJlcG9ydEVsZW1lbnQgPSBjcmVhdGVYSFRNTFBhcnNlckVycm9ySGVhZGVyKG1fZG9jdW1l
bnQsIGVycm9yTWVzc2FnZXMpOworICAgIGF1dG8gcmVwb3J0RWxlbWVudCA9IGNyZWF0ZVhIVE1M
UGFyc2VyRXJyb3JIZWFkZXIobV9kb2N1bWVudCwgWyZdICgpIHsKKyAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gbV9lcnJvck1lc3NhZ2VzLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9KCkpOwogCiAjaWYgRU5BQkxFKFhTTFQp
CiAgICAgaWYgKG1fZG9jdW1lbnQudHJhbnNmb3JtU291cmNlRG9jdW1lbnQoKSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggMTllNWFlNC4uNzZiOWZkNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0xOTUsNyArMTk1LDEwIEBAIEV4Y2Vw
dGlvbk9yPERvY3VtZW50Kj4gWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlWE1MKCkKICAgICAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQgPSBYTUxEb2N1bWVu
dDo6Y3JlYXRlKDAsIG1fdXJsKTsKICAgICAgICAgICAgIC8vIEZJWE1FOiBTZXQgTGFzdC1Nb2Rp
ZmllZC4KLSAgICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudC0+c2V0Q29udGVudChtX3Jlc3Bv
bnNlQnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSk7CisgICAgICAgICAgICBpZiAo
YXV0byBzdHJpbmcgPSBtX3Jlc3BvbnNlQnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHko
KSkKKyAgICAgICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQtPnNldENvbnRlbnQoKnN0cmlu
Zyk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAg
ICAgIG1fcmVzcG9uc2VEb2N1bWVudC0+c2V0Q29udGV4dERvY3VtZW50KGRvd25jYXN0PERvY3Vt
ZW50Pigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSk7CiAgICAgICAgICAgICBtX3Jlc3BvbnNl
RG9jdW1lbnQtPnNldFNlY3VyaXR5T3JpZ2luUG9saWN5KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KS0+c2VjdXJpdHlPcmlnaW5Qb2xpY3koKSk7CiAgICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1l
bnQtPm92ZXJyaWRlTUlNRVR5cGUobWltZVR5cGUpOwpAQCAtODE3LDE0ICs4MjAsMjAgQEAgU3Ry
aW5nIFhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25zZUhlYWRlcnMoKSBjb25zdAogICAgICAg
ICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCI6ICIpOwogICAgICAgICAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmQoaGVhZGVyLnZhbHVlKTsKICAgICAgICAgICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiXHJcbiIpOwotICAgICAgICAgICAgaGVhZGVycy51bmNoZWNrZWRB
cHBlbmQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICBoZWFkZXJz
LnVuY2hlY2tlZEFwcGVuZCgqc3RyaW5nKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICBDUkFTSCgpOwogICAgICAgICB9CiAgICAgICAgIHN0ZDo6c29ydChoZWFkZXJzLmJlZ2lu
KCksIGhlYWRlcnMuZW5kKCksIFdURjo6Y29kZVBvaW50Q29tcGFyZUxlc3NUaGFuKTsKIAogICAg
ICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7CiAgICAgICAgIGZvciAoYXV0byYgaGVh
ZGVyIDogaGVhZGVycykKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGhlYWRlcik7
Ci0gICAgICAgIG1fYWxsUmVzcG9uc2VIZWFkZXJzID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygp
OworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICBtX2FsbFJlc3BvbnNlSGVhZGVycyA9ICpzdHJpbmc7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIG1fYWxsUmVzcG9uc2VI
ZWFkZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAppbmRleCAxZWVjMTU4Li41M2I0
Zjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaApAQCAtODcsNyArODcsMTIgQEAg
cHVibGljOgogICAgIFN0cmluZyBnZXRBbGxSZXNwb25zZUhlYWRlcnMoKSBjb25zdDsKICAgICBT
dHJpbmcgZ2V0UmVzcG9uc2VIZWFkZXIoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdDsKICAgICBF
eGNlcHRpb25PcjxPd25lZFN0cmluZz4gcmVzcG9uc2VUZXh0KCk7Ci0gICAgU3RyaW5nIHJlc3Bv
bnNlVGV4dElnbm9yaW5nUmVzcG9uc2VUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZUJ1
aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7IH0KKyAgICBTdHJpbmcgcmVzcG9uc2VU
ZXh0SWdub3JpbmdSZXNwb25zZVR5cGUoKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gbV9yZXNwb25zZUJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpCisg
ICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9CiAgICAg
U3RyaW5nIHJlc3BvbnNlTUlNRVR5cGUoKSBjb25zdDsKIAogICAgIERvY3VtZW50KiBvcHRpb25h
bFJlc3BvbnNlWE1MKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZURvY3VtZW50LmdldCgpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhGdW5jdGlvbnMuY3BwIGIvU291
cmNlL1dlYkNvcmUveG1sL1hQYXRoRnVuY3Rpb25zLmNwcAppbmRleCA3MzUzNGE0Li5mN2RjYTlh
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRnVuY3Rpb25zLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhGdW5jdGlvbnMuY3BwCkBAIC0zMDgsOSArMzA4LDEx
IEBAIHN0YXRpYyBBdG9taWNTdHJpbmcgYXRvbWljU3Vic3RyaW5nKFN0cmluZ0J1aWxkZXImIGJ1
aWxkZXIsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpCiB7CiAgICAgQVNTRVJUKHN0YXJ0IDw9IGJ1aWxk
ZXIubGVuZ3RoKCkpOwogICAgIEFTU0VSVChsZW5ndGggPD0gYnVpbGRlci5sZW5ndGgoKSAtIHN0
YXJ0KTsKKyAgICBpZiAoYnVpbGRlci5mYWlsZWQoKSkKKyAgICAgICAgQ1JBU0goKTsKICAgICBp
ZiAoYnVpbGRlci5pczhCaXQoKSkKLSAgICAgICAgcmV0dXJuIEF0b21pY1N0cmluZyhidWlsZGVy
LmNoYXJhY3RlcnM4KCkgKyBzdGFydCwgbGVuZ3RoKTsKLSAgICByZXR1cm4gQXRvbWljU3RyaW5n
KGJ1aWxkZXIuY2hhcmFjdGVyczE2KCkgKyBzdGFydCwgbGVuZ3RoKTsKKyAgICAgICAgcmV0dXJu
IEF0b21pY1N0cmluZygqYnVpbGRlci5jaGFyYWN0ZXJzOCgpICsgc3RhcnQsIGxlbmd0aCk7Cisg
ICAgcmV0dXJuIEF0b21pY1N0cmluZygqYnVpbGRlci5jaGFyYWN0ZXJzMTYoKSArIHN0YXJ0LCBs
ZW5ndGgpOwogfQogCiBWYWx1ZSBGdW5JZDo6ZXZhbHVhdGUoKSBjb25zdApAQCAtMzM0LDE0ICsz
MzYsMTcgQEAgVmFsdWUgRnVuSWQ6OmV2YWx1YXRlKCkgY29uc3QKICAgICB1bnNpZ25lZCBzdGFy
dFBvcyA9IDA7CiAgICAgdW5zaWduZWQgbGVuZ3RoID0gaWRMaXN0Lmxlbmd0aCgpOwogICAgIHdo
aWxlICh0cnVlKSB7Ci0gICAgICAgIHdoaWxlIChzdGFydFBvcyA8IGxlbmd0aCAmJiBpc1doaXRl
c3BhY2UoaWRMaXN0W3N0YXJ0UG9zXSkpCisgICAgICAgIGlmIChpZExpc3QuZmFpbGVkKCkpCisg
ICAgICAgICAgICBDUkFTSCgpOworCisgICAgICAgIHdoaWxlIChzdGFydFBvcyA8IGxlbmd0aCAm
JiBpc1doaXRlc3BhY2UoKmlkTGlzdFtzdGFydFBvc10pKQogICAgICAgICAgICAgKytzdGFydFBv
czsKICAgICAgICAgCiAgICAgICAgIGlmIChzdGFydFBvcyA9PSBsZW5ndGgpCiAgICAgICAgICAg
ICBicmVhazsKIAogICAgICAgICBzaXplX3QgZW5kUG9zID0gc3RhcnRQb3M7Ci0gICAgICAgIHdo
aWxlIChlbmRQb3MgPCBsZW5ndGggJiYgIWlzV2hpdGVzcGFjZShpZExpc3RbZW5kUG9zXSkpCisg
ICAgICAgIHdoaWxlIChlbmRQb3MgPCBsZW5ndGggJiYgIWlzV2hpdGVzcGFjZSgqaWRMaXN0W2Vu
ZFBvc10pKQogICAgICAgICAgICAgKytlbmRQb3M7CiAKICAgICAgICAgLy8gSWYgdGhlcmUgYXJl
IHNldmVyYWwgbm9kZXMgd2l0aCB0aGUgc2FtZSBpZCwgaWQoKSBzaG91bGQgcmV0dXJuIHRoZSBm
aXJzdCBvbmUuCkBAIC00MzcsNyArNDQyLDkgQEAgVmFsdWUgRnVuQ29uY2F0OjpldmFsdWF0ZSgp
IGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoc3RyKTsKICAgICB9CiAKLSAgICByZXR1cm4g
cmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFZhbHVlIEZ1
blN0YXJ0c1dpdGg6OmV2YWx1YXRlKCkgY29uc3QKQEAgLTU1Niw3ICs1NjMsOSBAQCBWYWx1ZSBG
dW5UcmFuc2xhdGU6OmV2YWx1YXRlKCkgY29uc3QKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQo
czNbaTJdKTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIFZhbHVlIEZ1bkJvb2xlYW46OmV2YWx1YXRlKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwCmluZGV4IDY2YWQx
NWYuLjhlNWUwNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29y
TGlieHNsdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0
LmNwcApAQCAtMTk3LDEyICsxOTcsMTggQEAgc3RhdGljIGJvb2wgc2F2ZVJlc3VsdFRvU3RyaW5n
KHhtbERvY1B0ciByZXN1bHREb2MsIHhzbHRTdHlsZXNoZWV0UHRyIHNoZWV0LCBTdHIKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gV29ya2Fyb3VuZCBmb3IgPGh0dHA6Ly9idWd6aWxs
YS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NTY2OD46IGxpYnhzbHQgYXBwZW5kcyBhbiBl
eHRyYSBsaW5lIGZlZWQgdG8gdGhlIHJlc3VsdC4KLSAgICBpZiAocmVzdWx0QnVpbGRlci5sZW5n
dGgoKSA+IDAgJiYgcmVzdWx0QnVpbGRlcltyZXN1bHRCdWlsZGVyLmxlbmd0aCgpIC0gMV0gPT0g
J1xuJykKKyAgICBpZiAocmVzdWx0QnVpbGRlci5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgaWYg
KHJlc3VsdEJ1aWxkZXIuZmFpbGVkKCkpCisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICBp
ZiAoKnJlc3VsdEJ1aWxkZXJbcmVzdWx0QnVpbGRlci5sZW5ndGgoKSAtIDFdID09ICdcbicpCiAg
ICAgICAgIHJlc3VsdEJ1aWxkZXIucmVzaXplKHJlc3VsdEJ1aWxkZXIubGVuZ3RoKCkgLSAxKTsK
KyAgICB9CiAKLSAgICByZXN1bHRTdHJpbmcgPSByZXN1bHRCdWlsZGVyLnRvU3RyaW5nKCk7Ci0K
LSAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHRCdWlsZGVyLnRv
U3RyaW5nKCkpIHsKKyAgICAgICAgcmVzdWx0U3RyaW5nID0gKnN0cmluZzsKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBjb25zdCBjaGFyKiog
eHNsdFBhcmFtQXJyYXlGcm9tUGFyYW1ldGVyTWFwKFhTTFRQcm9jZXNzb3I6OlBhcmFtZXRlck1h
cCYgcGFyYW1ldGVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvQ2hh
cmFjdGVyUmVmZXJlbmNlUGFyc2VySW5saW5lcy5oIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNl
ci9DaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVzLmgKaW5kZXggNzY4NjI2OC4uNjcyYmFl
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9DaGFyYWN0ZXJSZWZlcmVu
Y2VQYXJzZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9DaGFyYWN0
ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVzLmgKQEAgLTMyLDcgKzMyLDEwIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogaW5saW5lIHZvaWQgdW5jb25zdW1lQ2hhcmFjdGVycyhTZWdtZW50ZWRTdHJp
bmcmIHNvdXJjZSwgU3RyaW5nQnVpbGRlciYgY29uc3VtZWRDaGFyYWN0ZXJzKQogewotICAgIHNv
dXJjZS5wdXNoQmFjayhjb25zdW1lZENoYXJhY3RlcnMudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gY29uc3VtZWRDaGFyYWN0ZXJzLnRvU3RyaW5nKCkpCisgICAgICAgIHNvdXJj
ZS5wdXNoQmFjayhXVEZNb3ZlKCpzdHJpbmcpKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7
CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBQYXJzZXJGdW5jdGlvbnM+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViRHJpdmVyL1Nlc3Npb25Ib3N0LmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lv
bkhvc3QuY3BwCmluZGV4IGYxNjQ5MjkuLmIxY2NjYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJE
cml2ZXIvU2Vzc2lvbkhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbkhvc3Qu
Y3BwCkBAIC01NSw3ICs1NSwxMCBAQCBsb25nIFNlc3Npb25Ib3N0OjpzZW5kQ29tbWFuZFRvQmFj
a2VuZChjb25zdCBTdHJpbmcmIGNvbW1hbmQsIFJlZlB0cjxKU09OOjpPYmplYwogICAgICAgICBt
ZXNzYWdlQnVpbGRlci5hcHBlbmQocGFyYW1ldGVycy0+dG9KU09OU3RyaW5nKCkpOwogICAgIH0K
ICAgICBtZXNzYWdlQnVpbGRlci5hcHBlbmQoJ30nKTsKLSAgICBzZW5kTWVzc2FnZVRvQmFja2Vu
ZChzZXF1ZW5jZUlELCBtZXNzYWdlQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBtZXNzYWdlQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBzZW5kTWVzc2FnZVRv
QmFja2VuZChzZXF1ZW5jZUlELCAqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7
CiAKICAgICByZXR1cm4gc2VxdWVuY2VJRDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYjc1YmRjYS4uZTVjNjg1
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MiBAQAorMjAxOC0wNC0yNiAgSkYgQmFzdGllbiAgPGpm
YmFzdGllbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3RyaW5nQnVpbGRlciBpcyBmYWxsaWJsZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MDQ4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVhY2ggU3Ry
aW5nQnVpbGRlciB0aGF0IGl0IGlzIGZhbGxpYmxlCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0
b3JhZ2U6OkVuZ2luZTo6cmVwcmVzZW50YXRpb24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6
Q2FjaGU6OmR1bXBDb250ZW50c1RvRmlsZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlS2V5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpL
ZXk6Omhhc2hBc1N0cmluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3
b3JrQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FwdHVyZTo6
TWFuYWdlcjo6aGFzaFRvUGF0aCk6CisgICAgICAgICogU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVk
REIvSURCVXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6dW5pcXVlRGF0YWJhc2VJZGVu
dGlmaWVyKToKKyAgICAgICAgKiBTaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkdhbWVwYWREYXRhOjpsb2dnaW5nU3RyaW5nIGNvbnN0KToKKyAgICAgICAg
KiBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS91bml4L05ldHNjYXBlUGx1Z2luTW9kdWxlVW5peC5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luTW9kdWxlOjpidWlsZE1JTUVEZXNj
cmlwdGlvbik6CisgICAgICAgICogU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJNZW1vcnlTYW1wbGVyOjphcHBlbmRDdXJyZW50TWVtb3J5VXNhZ2VUb0Zp
bGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVXNlclNjcmlwdC5jcHA6CisgICAgICAg
IChBUEk6OlVzZXJTY3JpcHQ6OmdlbmVyYXRlVW5pcXVlVVJMKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0FQSVVzZXJTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKEFQSTo6VXNlclN0eWxlU2hl
ZXQ6OmdlbmVyYXRlVW5pcXVlVVJMKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlld0dl
c3R1cmVDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9s
bGVyOjpTbmFwc2hvdFJlbW92YWxUcmFja2VyOjpldmVudHNEZXNjcmlwdGlvbik6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkJhY2tGb3J3YXJkTGlzdDo6bG9nZ2luZ1N0cmluZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmRpZFJl
Y2VpdmVJbnZhbGlkTWVzc2FnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9u
cyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVt
b3ZlRGF0YVJlY29yZHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OnVwZGF0ZUNvb2tpZVBhcnRpdGlvbmluZyk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpzdWJtaXRUb3BMaXN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
TmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpjYXBpdGFsaXplUkZD
ODIySGVhZGVyRmllbGROYW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
Vmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OmJ1aWxkSFRUUEhlYWRlcnMpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZy
YW1lOjpjb250ZW50c0FzU3RyaW5nIGNvbnN0KToKKwogMjAxOC0wNS0wMSAgT2xla3NhbmRyIFNr
YWNoa292ICA8Z3NrYWNoa292QGdtYWlsLmNvbT4KIAogICAgICAgICBXZWJBc3NlbWJseTogYWRk
IHN1cHBvcnQgZm9yIHN0cmVhbSBBUElzIC0gSmF2YVNjcmlwdCBBUEkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNw
cAppbmRleCA0NWM0N2ExLi44ZDc5NTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwCkBAIC01MjQsNyAr
NTI0LDkgQEAgU3RyaW5nIEVuZ2luZTo6cmVwcmVzZW50YXRpb24oKQogICAgICAgICBidWlsZGVy
LmFwcGVuZCgifSIpOwogICAgIH0KICAgICBidWlsZGVyLmFwcGVuZCgiXX0iKTsKLSAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgQ2FjaGVTdG9yYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKaW5kZXggNzNhMjVmNC4uMGNhN2Y5NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
LmNwcApAQCAtNTcwLDEwICs1NzAsMTMgQEAgdm9pZCBDYWNoZTo6ZHVtcENvbnRlbnRzVG9GaWxl
KCkKICAgICAgICAgICAgIGVwaWxvZ3VlLmFwcGVuZE51bWJlcih0b3RhbHMuY291bnQgPyB0b3Rh
bHMud29ydGggLyB0b3RhbHMuY291bnQgOiAwKTsKICAgICAgICAgICAgIGVwaWxvZ3VlLmFwcGVu
ZExpdGVyYWwoIlxuIik7CiAgICAgICAgICAgICBlcGlsb2d1ZS5hcHBlbmRMaXRlcmFsKCJ9XG59
XG4iKTsKLSAgICAgICAgICAgIGF1dG8gd3JpdGVEYXRhID0gZXBpbG9ndWUudG9TdHJpbmcoKS51
dGY4KCk7Ci0gICAgICAgICAgICB3cml0ZVRvRmlsZShmZCwgd3JpdGVEYXRhLmRhdGEoKSwgd3Jp
dGVEYXRhLmxlbmd0aCgpKTsKLSAgICAgICAgICAgIGNsb3NlRmlsZShmZCk7Ci0gICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBlcGlsb2d1ZS50b1N0cmlu
ZygpKSB7CisgICAgICAgICAgICAgICAgYXV0byB3cml0ZURhdGEgPSBzdHJpbmctPnV0ZjgoKTsK
KyAgICAgICAgICAgICAgICB3cml0ZVRvRmlsZShmZCwgd3JpdGVEYXRhLmRhdGEoKSwgd3JpdGVE
YXRhLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICBjbG9zZUZpbGUoZmQpOworICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAg
ICAgIH0KICAgICAgICAgYXV0byBlbnRyeSA9IEVudHJ5OjpkZWNvZGVTdG9yYWdlUmVjb3JkKCpy
ZWNvcmQpOwogICAgICAgICBpZiAoIWVudHJ5KQpAQCAtNTg1LDggKzU4OCwxMSBAQCB2b2lkIENh
Y2hlOjpkdW1wQ29udGVudHNUb0ZpbGUoKQogICAgICAgICBTdHJpbmdCdWlsZGVyIGpzb247CiAg
ICAgICAgIGVudHJ5LT5hc0pTT04oanNvbiwgaW5mbyk7CiAgICAgICAgIGpzb24uYXBwZW5kTGl0
ZXJhbCgiLFxuIik7Ci0gICAgICAgIGF1dG8gd3JpdGVEYXRhID0ganNvbi50b1N0cmluZygpLnV0
ZjgoKTsKLSAgICAgICAgd3JpdGVUb0ZpbGUoZmQsIHdyaXRlRGF0YS5kYXRhKCksIHdyaXRlRGF0
YS5sZW5ndGgoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGpzb24udG9TdHJpbmcoKSkg
eworICAgICAgICAgICAgYXV0byB3cml0ZURhdGEgPSBzdHJpbmctPnV0ZjgoKTsKKyAgICAgICAg
ICAgIHdyaXRlVG9GaWxlKGZkLCB3cml0ZURhdGEuZGF0YSgpLCB3cml0ZURhdGEubGVuZ3RoKCkp
OworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
S2V5LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
S2V5LmNwcAppbmRleCA4ZmE4MWQxLi4wYjQyMmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUtleS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVLZXkuY3BwCkBAIC0xMzQsNyAr
MTM0LDkgQEAgU3RyaW5nIEtleTo6aGFzaEFzU3RyaW5nKGNvbnN0IEhhc2hUeXBlJiBoYXNoKQog
ICAgICAgICBidWlsZGVyLmFwcGVuZCh1cHBlck5pYmJsZVRvQVNDSUlIZXhEaWdpdChieXRlKSk7
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGxvd2VyTmliYmxlVG9BU0NJSUhleERpZ2l0KGJ5dGUp
KTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4gYm9vbCBoZXhEaWdp
dHNUb0hhc2goQ2hhclR5cGUqIGNoYXJhY3RlcnMsIEtleTo6SGFzaFR5cGUmIGhhc2gpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1
cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3
b3JrQ2FwdHVyZU1hbmFnZXIuY3BwCmluZGV4IDU2MTNiZTguLjM0NzNlNWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZU1hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3Jr
Q2FwdHVyZU1hbmFnZXIuY3BwCkBAIC00MTUsOSArNDE1LDkgQEAgU3RyaW5nIE1hbmFnZXI6Omhh
c2hUb1BhdGgoY29uc3QgU3RyaW5nJiBoYXNoKQogCiAgICAgYXV0byBwYXRoID0gcGF0aEJ5QXBw
ZW5kaW5nQ29tcG9uZW50KG1fcmVjb3JkUmVwbGF5Q2FjaGVMb2NhdGlvbiwga0Rpck5hbWVSZXNv
dXJjZXMpOwogICAgIHBhdGggPSBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQocGF0aCwgaGFzaEhl
YWQpOwotICAgIHBhdGggPSBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQocGF0aCwgZmlsZU5hbWUu
dG9TdHJpbmcoKSk7Ci0KLSAgICByZXR1cm4gcGF0aDsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBm
aWxlTmFtZS50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gcGF0aEJ5QXBwZW5kaW5nQ29tcG9u
ZW50KHBhdGgsICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBNYW5hZ2VyOjp1
cmxJZGVudGlmeWluZ0NvbW1vbkRvbWFpbihjb25zdCBXZWJDb3JlOjpVUkwmIHVybCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIvSURCVXRpbGl0
aWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIvSURCVXRp
bGl0aWVzLmNwcAppbmRleCA5ZWM3NmZmLi43YzFjMjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCL0lEQlV0aWxpdGllcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvRGF0YWJhc2VzL0luZGV4ZWREQi9JREJVdGlsaXRpZXMuY3BwCkBA
IC01Miw3ICs1Miw5IEBAIFN0cmluZyB1bmlxdWVEYXRhYmFzZUlkZW50aWZpZXIoY29uc3QgU3Ry
aW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFdlYkNvcmU6OlNlY3VyCiAgICAgc3RyaW5nQnVpbGRl
ci5hcHBlbmQoJ18nKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChkYXRhYmFzZU5hbWUpOwog
Ci0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9HYW1lcGFkL0dhbWVwYWREYXRhLmNwcAppbmRleCA5MDVkODI3Li4xZmJkN2QxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9HYW1lcGFkL0dhbWVwYWREYXRhLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9HYW1lcGFkL0dhbWVwYWREYXRhLmNwcApAQCAtMTEx
LDcgKzExMSw5IEBAIFN0cmluZyBHYW1lcGFkRGF0YTo6bG9nZ2luZ1N0cmluZygpIGNvbnN0CiAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fYnV0dG9uVmFsdWVzW2ldKTsKICAgICB9CiAK
LSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5zL05l
dHNjYXBlL3VuaXgvTmV0c2NhcGVQbHVnaW5Nb2R1bGVVbml4LmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvdW5peC9OZXRzY2FwZVBsdWdpbk1vZHVsZVVuaXguY3Bw
CmluZGV4IGY5ZWIwNmUuLjk3MmRjYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1BsdWdpbnMvTmV0c2NhcGUvdW5peC9OZXRzY2FwZVBsdWdpbk1vZHVsZVVuaXguY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvdW5peC9OZXRzY2FwZVBsdWdp
bk1vZHVsZVVuaXguY3BwCkBAIC0xMjAsNyArMTIwLDkgQEAgU3RyaW5nIE5ldHNjYXBlUGx1Z2lu
TW9kdWxlOjpidWlsZE1JTUVEZXNjcmlwdGlvbihjb25zdCBWZWN0b3I8TWltZUNsYXNzSW5mbz4m
IG0KICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCc7Jyk7CiAgICAgfQogCi0gICAgcmV0dXJu
IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wg
TmV0c2NhcGVQbHVnaW5Nb2R1bGU6OmdldFBsdWdpbkluZm9Gb3JMb2FkZWRQbHVnaW4oUmF3UGx1
Z2luTWV0YURhdGEmIG1ldGFEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViTWVtb3J5U2FtcGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNZW1vcnlTYW1w
bGVyLmNwcAppbmRleCA5Mjc3MTg5Li42NzU4YWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJNZW1vcnlTYW1wbGVyLmNwcApAQCAtMTgxLDggKzE4MSwxMSBAQCB2b2lkIFdlYk1lbW9yeVNh
bXBsZXI6OmFwcGVuZEN1cnJlbnRNZW1vcnlVc2FnZVRvRmlsZShGaWxlU3lzdGVtOjpQbGF0Zm9y
bUZpbGVIYQogICAgIH0KICAgICBzdGF0U3RyaW5nLmFwcGVuZCgnXG4nKTsKIAotICAgIENTdHJp
bmcgdXRmOFN0cmluZyA9IHN0YXRTdHJpbmcudG9TdHJpbmcoKS51dGY4KCk7Ci0gICAgRmlsZVN5
c3RlbTo6d3JpdGVUb0ZpbGUobV9zYW1wbGVMb2dGaWxlLCB1dGY4U3RyaW5nLmRhdGEoKSwgdXRm
OFN0cmluZy5sZW5ndGgoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RhdFN0cmluZy50b1N0
cmluZygpKSB7CisgICAgICAgIENTdHJpbmcgdXRmOFN0cmluZyA9IHN0cmluZy0+dXRmOCgpOwor
ICAgICAgICBGaWxlU3lzdGVtOjp3cml0ZVRvRmlsZShtX3NhbXBsZUxvZ0ZpbGUsIHV0ZjhTdHJp
bmcuZGF0YSgpLCB1dGY4U3RyaW5nLmxlbmd0aCgpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgQ1JB
U0goKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SVVzZXJTY3JpcHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJTY3Jp
cHQuY3BwCmluZGV4IDc1ODRlNjMuLmE5MzliNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElVc2VyU2NyaXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJVXNlclNjcmlwdC5jcHAKQEAgLTM3LDcgKzM3LDkgQEAgV2ViQ29yZTo6VVJM
IFVzZXJTY3JpcHQ6OmdlbmVyYXRlVW5pcXVlVVJMKCkKICAgICBTdHJpbmdCdWlsZGVyIHVybFN0
cmluZ0J1aWxkZXI7CiAgICAgdXJsU3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJ1c2VyLXNj
cmlwdDoiKTsKICAgICB1cmxTdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcigrK2lkZW50aWZpZXIp
OwotICAgIHJldHVybiB7IHsgfSwgdXJsU3RyaW5nQnVpbGRlci50b1N0cmluZygpIH07CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gdXJsU3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4geyB7IH0sICpzdHJpbmcgfTsKKyAgICBDUkFTSCgpOwogfQogCiBVc2VyU2NyaXB0OjpV
c2VyU2NyaXB0KFdlYkNvcmU6OlVzZXJTY3JpcHQgdXNlclNjcmlwdCwgQVBJOjpVc2VyQ29udGVu
dFdvcmxkJiB3b3JsZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElVc2VyU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVXNl
clN0eWxlU2hlZXQuY3BwCmluZGV4IDFkNTk1YmIuLjYzYWMwZjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVc2VyU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJTdHlsZVNoZWV0LmNwcApAQCAtMzcsNyArMzcs
OSBAQCBXZWJDb3JlOjpVUkwgVXNlclN0eWxlU2hlZXQ6OmdlbmVyYXRlVW5pcXVlVVJMKCkKICAg
ICBTdHJpbmdCdWlsZGVyIHVybFN0cmluZ0J1aWxkZXI7CiAgICAgdXJsU3RyaW5nQnVpbGRlci5h
cHBlbmRMaXRlcmFsKCJ1c2VyLXN0eWxlLXNoZWV0OiIpOwogICAgIHVybFN0cmluZ0J1aWxkZXIu
YXBwZW5kTnVtYmVyKCsraWRlbnRpZmllcik7Ci0gICAgcmV0dXJuIHsgeyB9LCB1cmxTdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCkgfTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB1cmxTdHJpbmdCdWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiB7IHsgfSwgKnN0cmluZyB9OworICAgIENS
QVNIKCk7CiB9CiAKIFVzZXJTdHlsZVNoZWV0OjpVc2VyU3R5bGVTaGVldChXZWJDb3JlOjpVc2Vy
U3R5bGVTaGVldCB1c2VyU3R5bGVTaGVldCwgQVBJOjpVc2VyQ29udGVudFdvcmxkJiB3b3JsZCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNv
bnRyb2xsZXIuY3BwCmluZGV4IDhjMjFjMjQuLjkxNmRkNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcApAQCAt
MjMyLDggKzIzMiwxMCBAQCBTdHJpbmcgVmlld0dlc3R1cmVDb250cm9sbGVyOjpTbmFwc2hvdFJl
bW92YWxUcmFja2VyOjpldmVudHNEZXNjcmlwdGlvbihFdmVudHMgZQogCiAgICAgaWYgKGV2ZW50
ICYgVmlld0dlc3R1cmVDb250cm9sbGVyOjpTbmFwc2hvdFJlbW92YWxUcmFja2VyOjpTY3JvbGxQ
b3NpdGlvblJlc3RvcmF0aW9uKQogICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmQoIlNjcm9sbFBv
c2l0aW9uUmVzdG9yYXRpb24gIik7Ci0gICAgCi0gICAgcmV0dXJuIGRlc2NyaXB0aW9uLnRvU3Ry
aW5nKCk7CisKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBkZXNjcmlwdGlvbi50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwCmluZGV4IDYwMDZhMDIuLjEy
OGY1NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJk
TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0
LmNwcApAQCAtNDkzLDcgKzQ5Myw5IEBAIGNvbnN0IGNoYXIqIFdlYkJhY2tGb3J3YXJkTGlzdDo6
bG9nZ2luZ1N0cmluZygpCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG1fZW50cmllc1tpXS0+bG9n
Z2luZ1N0cmluZygpKTsKICAgICB9CiAKLSAgICByZXR1cm4gZGVidWdTdHJpbmcoIlxuIiwgYnVp
bGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiBkZWJ1Z1N0cmluZygiXG4iLCAqc3RyaW5nKTsKKyAgICBDUkFT
SCgpOwogfQogI2VuZGlmIC8vICFMT0dfRElTQUJMRUQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IGNhNTQ4YmUuLjE3YmMzNzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTcxMCw3ICs3MTAsMTAgQEAg
dm9pZCBXZWJQcm9jZXNzUG9vbDo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKGNvbnN0IElQQzo6
U3RyaW5nUmVmZXJlbmNlJiBtZXNzYWcKICAgICBtZXNzYWdlTmFtZVN0cmluZ0J1aWxkZXIuYXBw
ZW5kKCcuJyk7CiAgICAgbWVzc2FnZU5hbWVTdHJpbmdCdWlsZGVyLmFwcGVuZChtZXNzYWdlTmFt
ZS5kYXRhKCksIG1lc3NhZ2VOYW1lLnNpemUoKSk7CiAKLSAgICBzX2ludmFsaWRNZXNzYWdlQ2Fs
bGJhY2sodG9BUEkoQVBJOjpTdHJpbmc6OmNyZWF0ZShtZXNzYWdlTmFtZVN0cmluZ0J1aWxkZXIu
dG9TdHJpbmcoKSkucHRyKCkpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtZXNzYWdlTmFtZVN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgc19pbnZhbGlkTWVzc2FnZUNhbGxiYWNr
KHRvQVBJKEFQSTo6U3RyaW5nOjpjcmVhdGUoKnN0cmluZykucHRyKCkpKTsKKyAgICBlbHNlCisg
ICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnByb2Nlc3NEaWRDYWNo
ZVBhZ2UoV2ViUHJvY2Vzc1Byb3h5KiBwcm9jZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggNDE1NmQ4My4uZWYwOWRiMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xNzAsNyArMTcwLDEwIEBA
IHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6
TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0CiAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VTdHJpbmcu
YXBwZW5kKCcsJyk7CiAgICAgICAgICAgICBsYW5ndWFnZVN0cmluZy5hcHBlbmQob3ZlcnJpZGVM
YW5ndWFnZXNbaV0pOwogICAgICAgICB9Ci0gICAgICAgIGxhdW5jaE9wdGlvbnMuZXh0cmFJbml0
aWFsaXphdGlvbkRhdGEuYWRkKEFTQ0lJTGl0ZXJhbCgiT3ZlcnJpZGVMYW5ndWFnZXMiKSwgbGFu
Z3VhZ2VTdHJpbmcudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGxhbmd1
YWdlU3RyaW5nLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBsYXVuY2hPcHRpb25zLmV4dHJhSW5p
dGlhbGl6YXRpb25EYXRhLmFkZChBU0NJSUxpdGVyYWwoIk92ZXJyaWRlTGFuZ3VhZ2VzIiksICpz
dHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAg
IGxhdW5jaE9wdGlvbnMubm9uVmFsaWRJbmplY3RlZENvZGVBbGxvd2VkID0gc2hvdWxkQWxsb3dO
b25WYWxpZEluamVjdGVkQ29kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKaW5kZXggN2ZhODkxMC4u
NWQ5Yjc2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCkBAIC0yMjcsNyArMjI3LDEwIEBAIHZvaWQg
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZW1vdmVEYXRhUmVjb3JkcyhDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+CiAgICAgICAgICAgICBhcHBlbmRXaXRoRGVsaW1pdGVyKGRvbWFp
bnNUb1JlbW92ZURhdGFSZWNvcmRzRm9yQnVpbGRlciwgZG9tYWluLCBpc0ZpcnN0SXRlbSk7CiAg
ICAgICAgICAgICBpc0ZpcnN0SXRlbSA9IGZhbHNlOwogICAgICAgICB9Ci0gICAgICAgIFJFTEVB
U0VfTE9HX0lORk8oUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnLCAiQWJvdXQgdG8gcmVtb3Zl
IGRhdGEgcmVjb3JkcyBmb3IgJXtwdWJsaWN9cy4iLCBkb21haW5zVG9SZW1vdmVEYXRhUmVjb3Jk
c0ZvckJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gZG9tYWluc1RvUmVtb3ZlRGF0YVJlY29yZHNGb3JCdWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1
ZywgIkFib3V0IHRvIHJlbW92ZSBkYXRhIHJlY29yZHMgZm9yICV7cHVibGljfXMuIiwgc3RyaW5n
LT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAg
ICB9CiAjZW5kaWYKIApAQCAtMTA0NCw3ICsxMDQ3LDEwIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjp1cGRhdGVDb29raWVQYXJ0aXRpb25pbmcoQ29tcGxldGlvbkhhbmRs
ZXI8CiAgICAgICAgICAgICAgICAgYXBwZW5kV2l0aERlbGltaXRlcihkb21haW5zVG9QYXJ0aXRp
b25CdWlsZGVyLCBkb21haW4sIGlzRmlyc3REb21haW4pOwogICAgICAgICAgICAgICAgIGlzRmly
c3REb21haW4gPSBmYWxzZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFJFTEVBU0VfTE9H
X0lORk8oUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnLCAiQWJvdXQgdG8gcGFydGl0aW9uIGNv
b2tpZXMgaW4gdGhpcmQtcGFydHkgY29udGV4dHMgZm9yICV7cHVibGljfXMuIiwgZG9tYWluc1Rv
UGFydGl0aW9uQnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gZG9tYWluc1RvUGFydGl0aW9uQnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rl
YnVnLCAiQWJvdXQgdG8gcGFydGl0aW9uIGNvb2tpZXMgaW4gdGhpcmQtcGFydHkgY29udGV4dHMg
Zm9yICV7cHVibGljfXMuIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKCFk
b21haW5zVG9CbG9jay5pc0VtcHR5KCkpIHsKQEAgLTEwNTQsNyArMTA2MCwxMCBAQCB2b2lkIFdl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6dXBkYXRlQ29va2llUGFydGl0aW9uaW5nKENv
bXBsZXRpb25IYW5kbGVyPAogICAgICAgICAgICAgICAgIGFwcGVuZFdpdGhEZWxpbWl0ZXIoZG9t
YWluc1RvQmxvY2tCdWlsZGVyLCBkb21haW4sIGlzRmlyc3REb21haW4pOwogICAgICAgICAgICAg
ICAgIGlzRmlyc3REb21haW4gPSBmYWxzZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0lORk8oUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnLCAiQWJvdXQgdG8gYmxv
Y2sgY29va2llcyBpbiB0aGlyZC1wYXJ0eSBjb250ZXh0cyBmb3IgJXtwdWJsaWN9cy4iLCBkb21h
aW5zVG9CbG9ja0J1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IGRvbWFpbnNUb0Jsb2NrQnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVn
LCAiQWJvdXQgdG8gYmxvY2sgY29va2llcyBpbiB0aGlyZC1wYXJ0eSBjb250ZXh0cyBmb3IgJXtw
dWJsaWN9cy4iLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoIWRvbWFpbnNU
b05laXRoZXJQYXJ0aXRpb25Ob3JCbG9jay5pc0VtcHR5KCkpIHsKQEAgLTEwNjQsNyArMTA3Mywx
MCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6dXBkYXRlQ29va2llUGFy
dGl0aW9uaW5nKENvbXBsZXRpb25IYW5kbGVyPAogICAgICAgICAgICAgICAgIGFwcGVuZFdpdGhE
ZWxpbWl0ZXIoZG9tYWluc1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrQnVpbGRlciwgZG9tYWlu
LCBpc0ZpcnN0RG9tYWluKTsKICAgICAgICAgICAgICAgICBpc0ZpcnN0RG9tYWluID0gZmFsc2U7
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEZWJ1ZywgIkFib3V0IHRvIG5laXRoZXIgcGFydGl0aW9uIG5vciBibG9jayBj
b29raWVzIGluIHRoaXJkLXBhcnR5IGNvbnRleHRzIGZvciAle3B1YmxpY31zLiIsIGRvbWFpbnNU
b05laXRoZXJQYXJ0aXRpb25Ob3JCbG9ja0J1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgp
KTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGRvbWFpbnNUb05laXRoZXJQYXJ0aXRp
b25Ob3JCbG9ja0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0xP
R19JTkZPKFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1ZywgIkFib3V0IHRvIG5laXRoZXIgcGFy
dGl0aW9uIG5vciBibG9jayBjb29raWVzIGluIHRoaXJkLXBhcnR5IGNvbnRleHRzIGZvciAle3B1
YmxpY31zLiIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVt
ZXRyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzVGVsZW1ldHJ5LmNwcAppbmRleCBiYjc0NDBjLi41MjBhYjc3OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1RlbGVtZXRyeS5jcHAKQEAgLTE3OSwyMiArMTc5LDIzIEBAIHN0YXRpYyB2b2lkIHN1Ym1pdFRv
cExpc3QodW5zaWduZWQgbnVtYmVyT2ZSZXNvdXJjZXNGcm9tVGhlVG9wLCBjb25zdCBWZWN0b3I8
UHJlCiAgICAgU3RyaW5nQnVpbGRlciBwcmVhbWJsZUJ1aWxkZXI7CiAgICAgcHJlYW1ibGVCdWls
ZGVyLmFwcGVuZExpdGVyYWwoInRvcCIpOwogICAgIHByZWFtYmxlQnVpbGRlci5hcHBlbmROdW1i
ZXIobnVtYmVyT2ZSZXNvdXJjZXNGcm9tVGhlVG9wKTsKLSAgICBTdHJpbmcgZGVzY3JpcHRpb25Q
cmVhbWJsZSA9IHByZWFtYmxlQnVpbGRlci50b1N0cmluZygpOwotICAgIAotICAgIHdlYlBhZ2VQ
cm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6
OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgZGVzY3JpcHRpb25QcmVhbWJs
ZSArICJQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uIiwKLSAgICAgICAgdG9w
UHJldmFsZW50UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbiwgc2lnbmlmaWNhbnRGaWd1cmVz
Rm9yTG9nZ2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKLSAgICB3ZWJQYWdlUHJveHkubG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCksIGRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiU3Vi
ZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lucyIsCi0gICAgICAgIHRvcFN1YmZyYW1lVW5kZXJUb3BG
cmFtZU9yaWdpbnMsIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2Ft
cGxlOjpObyk7Ci0gICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVl
KERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtl
eSgpLCBkZXNjcmlwdGlvblByZWFtYmxlICsgIlN1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdp
bnMiLAotICAgICAgICB0b3BTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW5zLCBzaWduaWZp
Y2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOwotICAgIHdlYlBh
Z2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tl
eXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgZGVzY3JpcHRpb25QcmVh
bWJsZSArICJTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvIiwKLSAgICAgICAgdG9wU3VicmVz
b3VyY2VVbmlxdWVSZWRpcmVjdHNUbywgc2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9nZ2VkVmFsdWVz
LCBTaG91bGRTYW1wbGU6Ok5vKTsKLSAgICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3RpY01lc3Nh
Z2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNz
VGVsZW1ldHJ5S2V5KCksIGRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiTnVtYmVyT2ZUaW1lc0RhdGFS
ZWNvcmRzUmVtb3ZlZCIsCi0gICAgICAgIHRvcE51bWJlck9mVGltZXNEYXRhUmVjb3Jkc1JlbW92
ZWQsIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2FtcGxlOjpObyk7
Ci0gICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0
aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgpLCBkZXNj
cmlwdGlvblByZWFtYmxlICsgIk51bWJlck9mVGltZXNBY2Nlc3NlZEFzRmlyc3RQYXJ0eUR1ZVRv
VXNlckludGVyYWN0aW9uIiwKLSAgICAgICAgdG9wTnVtYmVyT2ZUaW1lc0FjY2Vzc2VkQXNGaXJz
dFBhcnR5RHVlVG9Vc2VySW50ZXJhY3Rpb24sIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZh
bHVlcywgU2hvdWxkU2FtcGxlOjpObyk7Ci0gICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNN
ZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlz
dGljc1RlbGVtZXRyeUtleSgpLCBkZXNjcmlwdGlvblByZWFtYmxlICsgIk51bWJlck9mVGltZXNB
Y2Nlc3NlZEFzRmlyc3RQYXJ0eUR1ZVRvU3RvcmFnZUFjY2Vzc0FQSSIsCi0gICAgICAgIHRvcE51
bWJlck9mVGltZXNBY2Nlc3NlZEFzRmlyc3RQYXJ0eUR1ZVRvU3RvcmFnZUFjY2Vzc0FQSSwgc2ln
bmlmaWNhbnRGaWd1cmVzRm9yTG9nZ2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICBp
ZiAoYXV0byBkZXNjcmlwdGlvblByZWFtYmxlID0gcHJlYW1ibGVCdWlsZGVyLnRvU3RyaW5nKCkp
IHsKKyAgICAgICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERp
YWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgp
LCAqZGVzY3JpcHRpb25QcmVhbWJsZSArICJQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVy
YWN0aW9uIiwKKyAgICAgICAgICAgIHRvcFByZXZhbGVudFJlc291cmNlc1dpdGhVc2VySW50ZXJh
Y3Rpb24sIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2FtcGxlOjpO
byk7CisgICAgICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShE
aWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXko
KSwgKmRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lucyIs
CisgICAgICAgICAgICB0b3BTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5zLCBzaWduaWZpY2Fu
dEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOworICAgICAgICB3ZWJQ
YWdlUHJveHkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCksICpkZXNjcmlwdGlvblBy
ZWFtYmxlICsgIlN1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbnMiLAorICAgICAgICAgICAg
dG9wU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2lucywgc2lnbmlmaWNhbnRGaWd1cmVzRm9y
TG9nZ2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICAgICAgd2ViUGFnZVByb3h5Lmxv
Z0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgpLCAqZGVzY3JpcHRpb25QcmVhbWJsZSArICJT
dWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvIiwKKyAgICAgICAgICAgIHRvcFN1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RzVG8sIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hv
dWxkU2FtcGxlOjpObyk7CisgICAgICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2Fn
ZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NU
ZWxlbWV0cnlLZXkoKSwgKmRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiTnVtYmVyT2ZUaW1lc0RhdGFS
ZWNvcmRzUmVtb3ZlZCIsCisgICAgICAgICAgICB0b3BOdW1iZXJPZlRpbWVzRGF0YVJlY29yZHNS
ZW1vdmVkLCBzaWduaWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6
Tm8pOworICAgICAgICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUo
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5
KCksICpkZXNjcmlwdGlvblByZWFtYmxlICsgIk51bWJlck9mVGltZXNBY2Nlc3NlZEFzRmlyc3RQ
YXJ0eUR1ZVRvVXNlckludGVyYWN0aW9uIiwKKyAgICAgICAgICAgIHRvcE51bWJlck9mVGltZXNB
Y2Nlc3NlZEFzRmlyc3RQYXJ0eUR1ZVRvVXNlckludGVyYWN0aW9uLCBzaWduaWZpY2FudEZpZ3Vy
ZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOworICAgICAgICB3ZWJQYWdlUHJv
eHkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCksICpkZXNjcmlwdGlvblByZWFtYmxl
ICsgIk51bWJlck9mVGltZXNBY2Nlc3NlZEFzRmlyc3RQYXJ0eUR1ZVRvU3RvcmFnZUFjY2Vzc0FQ
SSIsCisgICAgICAgICAgICB0b3BOdW1iZXJPZlRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVU
b1N0b3JhZ2VBY2Nlc3NBUEksIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hv
dWxkU2FtcGxlOjpObyk7CisgICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAgICAgCiBz
dGF0aWMgdm9pZCBzdWJtaXRUb3BMaXN0cyhjb25zdCBWZWN0b3I8UHJldmFsZW50UmVzb3VyY2VU
ZWxlbWV0cnk+JiBzb3J0ZWRQcmV2YWxlbnRSZXNvdXJjZXMsIGNvbnN0IFZlY3RvcjxQcmV2YWxl
bnRSZXNvdXJjZVRlbGVtZXRyeT4mIHNvcnRlZFByZXZhbGVudFJlc291cmNlc1dpdGhvdXRVc2Vy
SW50ZXJhY3Rpb24sIFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVu
Y3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2Nh
cGVCcm93c2VyRnVuY3MuY3BwCmluZGV4IDBiY2NmYWYuLmFkYTVmNDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1
bmNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9O
ZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAKQEAgLTEzOCw3ICsxMzgsOSBAQCBzdGF0aWMgU3RyaW5n
IGNhcGl0YWxpemVSRkM4MjJIZWFkZXJGaWVsZE5hbWUoY29uc3QgU3RyaW5nJiBuYW1lKQogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICBjYXBpdGFsaXplQ2hhcmFjdGVyID0gZmFsc2U7CiAgICAg
fQotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBy
ZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogc3RhdGljIEhUVFBIZWFkZXJNYXAgcGFyc2VSRkM4MjJIZWFkZXJGaWVsZHMoY29uc3Qg
Y2hhciogYnl0ZXMsIHVuc2lnbmVkIGxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggYTdmY2FjZS4uNzk5YWQ5YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTIx
Miw3ICsyMTIsOSBAQCBzdGF0aWMgU3RyaW5nIGJ1aWxkSFRUUEhlYWRlcnMoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UsIGxvbmcgbG9uZyYgZXhwZQogICAgIGlmICghY29udGVudEVu
Y29kaW5nLmlzTnVsbCgpICYmIGNvbnRlbnRFbmNvZGluZyAhPSAiaWRlbnRpdHkiKQogICAgICAg
ICBleHBlY3RlZENvbnRlbnRMZW5ndGggPSAtMTsKIAotICAgIHJldHVybiBoZWFkZXIudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBoZWFkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIHVpbnQzMl90IGxhc3RN
b2RpZmllZERhdGVNUyhjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAppbmRleCAxNmFiZTU1Li40
ODljOGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJG
cmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUu
Y3BwCkBAIC0zNTEsNyArMzUxLDkgQEAgU3RyaW5nIFdlYkZyYW1lOjpjb250ZW50c0FzU3RyaW5n
KCkgY29uc3QKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHdlYkZyYW1lLT5jb250ZW50c0Fz
U3RyaW5nKCkpOwogICAgICAgICB9CiAgICAgICAgIC8vIEZJWE1FOiBJdCBtYXkgbWFrZSBzZW5z
ZSB0byB1c2UgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgaGVyZS4KLSAgICAgICAgcmV0dXJu
IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7
CiAgICAgfQogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9jb3JlRnJhbWUtPmRvY3VtZW50
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMzY3NmU2NS4uNDZlYTE2YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE4LTA0LTI2ICBK
RiBCYXN0aWVuICA8amZiYXN0aWVuQGFwcGxlLmNvbT4KKworICAgICAgICBTdHJpbmdCdWlsZGVy
IGlzIGZhbGxpYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODUwNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZWFjaCBTdHJpbmdCdWlsZGVyIHRoYXQgaXQgaXMgZmFsbGlibGUKKworICAgICAgICAq
IFdlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tOgorICAgICAgICAocmVnRXhwRm9yTGFi
ZWxzKToKKwogMjAxOC0wNS0wMSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNv
bT4KIAogICAgICAgICBbTWVkaWFTdHJlYW1dIHJlbW92ZSBXSzEgc3VwcG9ydApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24u
bW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlv
bi5tbQppbmRleCAxOTE4MzYzLi4yYjI3YTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbQpAQCAtMzk0LDcg
KzM5NCwxMCBAQCBzdGF0aWMgUmVndWxhckV4cHJlc3Npb24qIHJlZ0V4cEZvckxhYmVscyhOU0Fy
cmF5ICpsYWJlbHMpCiAgICAgICAgICAgICAgICAgcGF0dGVybi5hcHBlbmRMaXRlcmFsKCJcXGIi
KTsKICAgICAgICAgfQogICAgICAgICBwYXR0ZXJuLmFwcGVuZCgnKScpOwotICAgICAgICByZXN1
bHQgPSBuZXcgUmVndWxhckV4cHJlc3Npb24ocGF0dGVybi50b1N0cmluZygpLCBKU0M6OllhcnI6
OlRleHRDYXNlSW5zZW5zaXRpdmUpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBwYXR0ZXJu
LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXN1bHQgPSBuZXcgUmVndWxhckV4cHJlc3Npb24o
KnN0cmluZywgSlNDOjpZYXJyOjpUZXh0Q2FzZUluc2Vuc2l0aXZlKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICAvLyBhZGQgcmVnZXhwIHRvIHRoZSBj
YWNoZSwgbWFraW5nIHN1cmUgaXQgaXMgYXQgdGhlIGZyb250IGZvciBMUlUgb3JkZXJpbmcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0FjY2Vzc2libGVCYXNlLmNwcCBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0FjY2Vzc2libGVCYXNlLmNwcAppbmRleCA3ZTNiMTgzLi5h
ODFlMzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nlc3NpYmxlQmFz
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQWNjZXNzaWJsZUJhc2UuY3BwCkBA
IC02MDksNyArNjA5LDEwIEBAIEhSRVNVTFQgQWNjZXNzaWJsZUJhc2U6OmdldF9hY2NLZXlib2Fy
ZFNob3J0Y3V0KFZBUklBTlQgdkNoaWxkLCBfX2RlcmVmX29wdF9vdXQKICAgICAgICAgICAgIGFj
Y2Vzc0tleU1vZGlmaWVyc0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiU2hpZnQrIik7CiAgICAgICAg
IGlmIChtb2RpZmllcnMuY29udGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6Ok1ldGFLZXkp
KQogICAgICAgICAgICAgYWNjZXNzS2V5TW9kaWZpZXJzQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJX
aW4rIik7Ci0gICAgICAgIGFjY2Vzc0tleU1vZGlmaWVycyA9IGFjY2Vzc0tleU1vZGlmaWVyc0J1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYWNjZXNzS2V5TW9k
aWZpZXJzQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgYWNjZXNzS2V5TW9kaWZpZXJz
ID0gKnN0cmluZzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAg
ICAgKnNob3J0Y3V0ID0gQlN0cmluZyhTdHJpbmcoYWNjZXNzS2V5TW9kaWZpZXJzICsgYWNjZXNz
S2V5KSkucmVsZWFzZSgpOwogICAgIHJldHVybiBTX09LOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vUGx1Z2lucy9QbHVnaW5TdHJlYW0uY3BwIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vUGx1Z2lucy9QbHVnaW5TdHJlYW0uY3BwCmluZGV4IGYyNTY2NGQuLmM5OTgwNWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1BsdWdpbnMvUGx1Z2luU3RyZWFt
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9QbHVnaW5zL1BsdWdpblN0cmVhbS5j
cHAKQEAgLTE2Nyw3ICsxNjcsMTAgQEAgdm9pZCBQbHVnaW5TdHJlYW06OnN0YXJ0U3RyZWFtKCkK
ICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwogICAgICAgICB9CiAKLSAg
ICAgICAgbV9oZWFkZXJzID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpLnV0ZjgoKTsKKyAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAg
ICAgbV9oZWFkZXJzID0gc3RyaW5nLT51dGY4KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IENSQVNIKCk7CiAKICAgICAgICAgLy8gSWYgdGhlIGNvbnRlbnQgaXMgZW5jb2RlZCAobW9zdCBs
aWtlbHkgY29tcHJlc3NlZCksIHRoZW4gZG9uJ3Qgc2VuZCBpdHMgbGVuZ3RoIHRvIHRoZSBwbHVn
aW4sCiAgICAgICAgIC8vIHdoaWNoIGlzIG9ubHkgaW50ZXJlc3RlZCBpbiB0aGUgZGVjb2RlZCBs
ZW5ndGgsIG5vdCB5ZXQga25vd24gYXQgdGhlIG1vbWVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYktpdFN0YXRpc3RpY3MuY3BwIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViS2l0U3RhdGlzdGljcy5jcHAKaW5kZXggOTAwMmM5Mi4uYzRiOGJmMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0U3RhdGlzdGljcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0U3RhdGlzdGljcy5jcHAKQEAgLTE1Niw2ICsx
NTYsOSBAQCBIUkVTVUxUIFdlYktpdFN0YXRpc3RpY3M6OmNvbUNsYXNzTmFtZUNvdW50cyhfX2Rl
cmVmX291dF9vcHQgQlNUUiogb3V0cHV0KQogICAgICAgICBidWlsZGVyLmFwcGVuZChzbG90Lmtl
eSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwogICAgIH0KLSAgICAqb3V0cHV0ID0g
QlN0cmluZyhidWlsZGVyLnRvU3RyaW5nKCkpLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gU19PSzsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgKm91
dHB1dCA9IEJTdHJpbmcoKnN0cmluZykucmVsZWFzZSgpOworICAgICAgICByZXR1cm4gU19PSzsK
KyAgICB9CisgICAgQ1JBU0goKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCBkYTA3MzZmLi4zMGE1ZDI0IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODEgQEAKKzIwMTgtMDQt
MjYgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgorCisgICAgICAgIFN0cmluZ0J1
aWxkZXIgaXMgZmFsbGlibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE4NTA0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFN0cmluZ0J1aWxkZXIgY2FuIGZhaWwgd2hlbiBhbGxvY2F0aW5nIG1lbW9yeS4g
U3RyaW5nQnVpbGRlciBpcworICAgICAgICBtb3N0bHkgdXNlZCB3aXRoIHVzZXIgaW5wdXQsIHdo
aWNoIG9mdGVuIG1lYW5zIHRoYXQganVzdCBjcmFzaGluZworICAgICAgICBpc24ndCB0aGUgcmln
aHQgb3V0Y29tZS4gT3VyIGZ1enplcnMgb2Z0ZW4gZW5jb3VudGVyIHN1Y2ggdGhpbmdzCisgICAg
ICAgIGZvciBKYXZhU2NyaXB0Q29yZSwgYW5kIHNvIGZhciB3ZSd2ZSBhcHBsaWVkIHBvaW50IHNv
bHV0aW9ucy4gTm8KKyAgICAgICAgbW9yZSEKKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZXhwZWN0
QnVpbGRlckNvbnRlbnQpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZXhwZWN0RW1wdHkpOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvU3RyaW5nVmlldy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMu
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6Y3JlYXRlQ29tbWFuZCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Mb2dnaW5nLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OkxvZ2dpbmdUZXN0OjpvdXRwdXQpOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkxvZ09ic2VydmVyOjps
b2cpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9UZXh0Q29kZWMuY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6dGVzdERlY29kZSk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9XVEZTdHJpbmdVdGlsaXRpZXMuaDoKKyAgICAgICAgKHV0ZjE2U3RyaW5nKToKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZS5jcHA6CisgICAgICAgIChXVFI6OmR1bXBQYXRoKToKKyAgICAgICAgKFdUUjo6cmFuZ2VUb1N0
cik6CisgICAgICAgIChXVFI6OnN0eWxlRGVjVG9TdHIpOgorICAgICAgICAoV1RSOjpzZWN1cml0
eU9yaWdpblRvU3RyKToKKyAgICAgICAgKFdUUjo6ZnJhbWVUb1N0cik6CisgICAgICAgIChXVFI6
OmR1bXBMb2FkRXZlbnQpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmR1bXAp
OgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVUaXRsZUZvckZy
YW1lKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUGVyZm9ybUNsaWVu
dFJlZGlyZWN0Rm9yRnJhbWUpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRp
ZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5k
bGVQYWdlOjp3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZSk6CisgICAgICAgIChXVFI6OkluamVjdGVk
QnVuZGxlUGFnZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2UpOgorICAgICAgICAoV1RS
OjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZpbmlzaExvYWRGb3JSZXNvdXJjZSk6CisgICAgICAg
IChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmFpbExvYWRGb3JSZXNvdXJjZSk6CisgICAg
ICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkQ2FjaGVSZXNwb25zZSk6CisgICAg
ICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbik6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2UpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxBZGRNZXNz
YWdlVG9Db25zb2xlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsU2V0
U3RhdHVzYmFyVGV4dCk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFJ1
bkphdmFTY3JpcHRBbGVydCk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6d2ls
bFJ1bkphdmFTY3JpcHRDb25maXJtKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdl
Ojp3aWxsUnVuSmF2YVNjcmlwdFByb21wdCk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxl
UGFnZTo6ZGlkUmVhY2hBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEpOgorICAgICAgICAoV1RS
OjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEV4Y2VlZERhdGFiYXNlUXVvdGEpOgorICAgICAgICAo
V1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEJlZ2luRWRpdGluZyk6CisgICAgICAgIChX
VFI6OkluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkRW5kRWRpdGluZyk6CisgICAgICAgIChXVFI6
OkluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkSW5zZXJ0Tm9kZSk6CisgICAgICAgIChXVFI6Oklu
amVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkSW5zZXJ0VGV4dCk6CisgICAgICAgIChXVFI6OkluamVj
dGVkQnVuZGxlUGFnZTo6c2hvdWxkRGVsZXRlUmFuZ2UpOgorICAgICAgICAoV1RSOjpJbmplY3Rl
ZEJ1bmRsZVBhZ2U6OnNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UpOgorICAgICAgICAoV1RSOjpJ
bmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEFwcGx5U3R5bGUpOgorICAgICAgICAoV1RSOjpJbmpl
Y3RlZEJ1bmRsZVBhZ2U6OmRpZEJlZ2luRWRpdGluZyk6CisgICAgICAgIChXVFI6OkluamVjdGVk
QnVuZGxlUGFnZTo6ZGlkRW5kRWRpdGluZyk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxl
UGFnZTo6ZGlkQ2hhbmdlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRD
aGFuZ2VTZWxlY3Rpb24pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnN0YXRpc3RpY3NE
aWRSdW5UZWxlbWV0cnlDYWxsYmFjayk6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OmNhbGxE
aWRSZWNlaXZlQWxsU3RvcmFnZUFjY2Vzc0VudHJpZXNDYWxsYmFjayk6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZSk6CisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdFRv
VVJMKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlkRmFpbCk6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChX
VFI6OlRlc3RJbnZvY2F0aW9uOjpkdW1wUmVzdWx0cyk6CisKIDIwMTgtMDUtMDEgIEVyaWMgQ2Fy
bHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW01lZGlhU3RyZWFtXSBy
ZW1vdmUgV0sxIHN1cHBvcnQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL0Nyb3NzVGhyZWFkVGFzay5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9D
cm9zc1RocmVhZFRhc2suY3BwCmluZGV4IDUyYzBiY2QuLmY2MWZhMzIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkVGFzay5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRUYXNrLmNwcApAQCAtODgsNyAr
ODgsOSBAQCBzdHJ1Y3QgTGlmZXRpbWVMb2dnZXIgewogICAgICAgICBidWlsZGVyLmFwcGVuZCgi
LSIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmc6Om51bWJlcihtb3ZlR2VuZXJhdGlv
bikpOwogCi0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIGNvbnN0IGNoYXImIG5hbWUgeyAq
IjxkZWZhdWx0PiIgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1N0cmluZ0J1aWxkZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5n
QnVpbGRlci5jcHAKaW5kZXggNmI4ZTA1Yy4uNzg2NzUwMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEzLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzksMTYgKzM5LDE2IEBAIHN0
YXRpYyB2b2lkIGV4cGVjdEJ1aWxkZXJDb250ZW50KGNvbnN0IFN0cmluZyYgZXhwZWN0ZWQsIGNv
bnN0IFN0cmluZ0J1aWxkZXImIGJ1CiAgICAgLy8gTm90IHVzaW5nIGJ1aWxkZXIudG9TdHJpbmco
KSBvciBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIGJlY2F1c2UgdGhleSBhbGwK
ICAgICAvLyBjaGFuZ2UgaW50ZXJuYWwgc3RhdGUgb2YgYnVpbGRlci4KICAgICBpZiAoYnVpbGRl
ci5pczhCaXQoKSkKLSAgICAgICAgRVhQRUNUX0VRKGV4cGVjdGVkLCBTdHJpbmcoYnVpbGRlci5j
aGFyYWN0ZXJzOCgpLCBidWlsZGVyLmxlbmd0aCgpKSk7CisgICAgICAgIEVYUEVDVF9FUShleHBl
Y3RlZCwgU3RyaW5nKGJ1aWxkZXIuY2hhcmFjdGVyczgoKS52YWx1ZSgpLCBidWlsZGVyLmxlbmd0
aCgpKSk7CiAgICAgZWxzZQotICAgICAgICBFWFBFQ1RfRVEoZXhwZWN0ZWQsIFN0cmluZyhidWls
ZGVyLmNoYXJhY3RlcnMxNigpLCBidWlsZGVyLmxlbmd0aCgpKSk7CisgICAgICAgIEVYUEVDVF9F
UShleHBlY3RlZCwgU3RyaW5nKGJ1aWxkZXIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSwgYnVpbGRl
ci5sZW5ndGgoKSkpOwogfQogCiB2b2lkIGV4cGVjdEVtcHR5KGNvbnN0IFN0cmluZ0J1aWxkZXIm
IGJ1aWxkZXIpCiB7CiAgICAgRVhQRUNUX0VRKDBVLCBidWlsZGVyLmxlbmd0aCgpKTsKICAgICBF
WFBFQ1RfVFJVRShidWlsZGVyLmlzRW1wdHkoKSk7Ci0gICAgRVhQRUNUX0VRKDAsIGJ1aWxkZXIu
Y2hhcmFjdGVyczgoKSk7CisgICAgRVhQRUNUX0VRKDAsIGJ1aWxkZXIuY2hhcmFjdGVyczgoKS52
YWx1ZSgpKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRGVmYXVsdENvbnN0cnVjdG9y
KQpAQCAtNzEsMjQgKzcxLDI0IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFwcGVuZCkKICAg
ICBidWlsZGVyLmFwcGVuZCgnIycpOwogICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKIAotICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsgLy8gVGVz
dCBhZnRlciByZWlmeVN0cmluZygpLgorICAgIGJ1aWxkZXIudG9TdHJpbmcoKS52YWx1ZSgpOyAv
LyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyMTsK
ICAgICBidWlsZGVyLmFwcGVuZCgiIiwgMCk7CiAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkZWZnIyIsIGJ1aWxkZXIpOwotICAgIGJ1aWxkZXIxLmFwcGVuZChidWlsZGVy
LmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIubGVuZ3RoKCkpOworICAgIGJ1aWxkZXIxLmFwcGVuZChi
dWlsZGVyLmNoYXJhY3RlcnM4KCkudmFsdWUoKSwgYnVpbGRlci5sZW5ndGgoKSk7CiAgICAgYnVp
bGRlcjEuYXBwZW5kKCJYWVoiKTsKLSAgICBidWlsZGVyLmFwcGVuZChidWlsZGVyMS5jaGFyYWN0
ZXJzOCgpLCBidWlsZGVyMS5sZW5ndGgoKSk7CisgICAgYnVpbGRlci5hcHBlbmQoYnVpbGRlcjEu
Y2hhcmFjdGVyczgoKS52YWx1ZSgpLCBidWlsZGVyMS5sZW5ndGgoKSk7CiAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZWiIsIGJ1
aWxkZXIpOwogCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyMjsKICAgICBidWlsZGVyMi5yZXNl
cnZlQ2FwYWNpdHkoMTAwKTsKICAgICBidWlsZGVyMi5hcHBlbmQoInh5eiIpOwotICAgIGNvbnN0
IExDaGFyKiBjaGFyYWN0ZXJzID0gYnVpbGRlcjIuY2hhcmFjdGVyczgoKTsKKyAgICBjb25zdCBM
Q2hhciogY2hhcmFjdGVycyA9IGJ1aWxkZXIyLmNoYXJhY3RlcnM4KCkudmFsdWUoKTsKICAgICBi
dWlsZGVyMi5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKLSAgICBBU1NFUlRfRVEoY2hhcmFjdGVycywg
YnVpbGRlcjIuY2hhcmFjdGVyczgoKSk7Ci0gICAgYnVpbGRlcjIudG9TdHJpbmdQcmVzZXJ2ZUNh
cGFjaXR5KCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcgd2l0aCBidWZmZXIgcHJlc2VydmVk
LgorICAgIEFTU0VSVF9FUShjaGFyYWN0ZXJzLCBidWlsZGVyMi5jaGFyYWN0ZXJzOCgpLnZhbHVl
KCkpOworICAgIGJ1aWxkZXIyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLnZhbHVlKCk7IC8v
IFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcgd2l0aCBidWZmZXIgcHJlc2VydmVkLgogICAgIGJ1aWxk
ZXIyLmFwcGVuZCgiYWJjZCIpOwotICAgIEFTU0VSVF9FUShjaGFyYWN0ZXJzLCBidWlsZGVyMi5j
aGFyYWN0ZXJzOCgpKTsKKyAgICBBU1NFUlRfRVEoY2hhcmFjdGVycywgYnVpbGRlcjIuY2hhcmFj
dGVyczgoKS52YWx1ZSgpKTsKIAogICAgIC8vIFRlc3QgYXBwZW5kaW5nIFVDaGFyMzIgY2hhcmFj
dGVycyB0byBTdHJpbmdCdWlsZGVyLgogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlckZvclVDaGFy
MzJBcHBlbmQ7CkBAIC0xMDUsOSArMTA1LDkgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9T
dHJpbmcpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5k
KCIwMTIzNDU2Nzg5Iik7Ci0gICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsK
KyAgICBTdHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpLnZhbHVlKCk7CiAgICAgQVNT
RVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOwotICAgIEFTU0VSVF9FUShzdHJp
bmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nKCkuaW1wbCgpKTsKKyAgICBBU1NFUlRfRVEoc3Ry
aW5nLmltcGwoKSwgYnVpbGRlci50b1N0cmluZygpLnZhbHVlKCkuaW1wbCgpKTsKIAogICAgIC8v
IENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5h
bCByZXN1bHQgb2YgdG9TdHJpbmcoKS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXoiKTsKQEAgLTExNSwyMCArMTE1LDIwIEBAIFRFU1QoU3RyaW5nQnVpbGRl
clRlc3QsIFRvU3RyaW5nKQogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hv
dWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpIGluIGNhc2Ug
dGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFuZ2VkLgogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5
KDIwMCk7Ci0gICAgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOworICAgIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKS52YWx1ZSgpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3
ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBw
ZW5kKCJBQkMiKTsKICAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5h
bCByZXN1bHQgb2YgdG9TdHJpbmcoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0
aGUgU3RyaW5nQnVpbGRlci4KLSAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKS52YWx1ZSgpOwogICAg
IEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFC
QyIpLCBzdHJpbmcxKTsKICAgICBzdHJpbmcxLmFwcGVuZCgiREVGIik7Ci0gICAgQVNTRVJUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxk
ZXIudG9TdHJpbmcoKSk7CisgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxkZXIudG9TdHJpbmcoKS52YWx1ZSgpKTsKICAg
ICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpB
QkNERUYiKSwgc3RyaW5nMSk7CiAKICAgICAvLyBSZXNpemluZyB0aGUgU3RyaW5nQnVpbGRlciBz
aG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCi0gICAg
c3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBzdHJpbmcxID0gYnVpbGRlci50b1N0
cmluZygpLnZhbHVlKCk7CiAgICAgYnVpbGRlci5yZXNpemUoMTApOwogICAgIGJ1aWxkZXIuYXBw
ZW5kKCIjIyMiKTsKICAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CkBAIC0xMzksMTEgKzEzOSwxMSBAQCBURVNU
KFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7CiAgICAg
dW5zaWduZWQgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7Ci0gICAgU3RyaW5nIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CisgICAgU3RyaW5nIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkudmFsdWUoKTsKICAgICBBU1NF
UlRfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7CiAgICAgQVNTRVJUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOwotICAgIEFTU0VSVF9FUShzdHJpbmcuaW1wbCgpLCBi
dWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLmltcGwoKSk7Ci0gICAgQVNTRVJUX0VR
KHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOworICAgIEFTU0VS
VF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLnZh
bHVlKCkuaW1wbCgpKTsKKyAgICBBU1NFUlRfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxk
ZXIuY2hhcmFjdGVyczgoKS52YWx1ZSgpKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdC
dWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQ
cmVzZXJ2ZUNhcGFjaXR5KCkuCiAgICAgYnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6Iik7CkBAIC0xNTIsMjggKzE1MiwyOCBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0
LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1
aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1By
ZXNlcnZlQ2FwYWNpdHkoKSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KICAg
ICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyMDApOwogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5j
YXBhY2l0eSgpOwotICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5
KCk7CisgICAgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS52YWx1
ZSgpOwogICAgIEFTU0VSVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKLSAgICBB
U1NFUlRfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7Cisg
ICAgQVNTRVJUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCku
dmFsdWUoKSk7CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CiAgICAgYnVpbGRlci5hcHBlbmQoIkFCQyIpOwogICAg
IEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIp
LCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0
cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0
aGUgU3RyaW5nQnVpbGRlci4KICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKLSAg
ICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7Cisg
ICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLnZh
bHVlKCk7CiAgICAgQVNTRVJUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwotICAg
IEFTU0VSVF9FUShzdHJpbmcxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7
CisgICAgQVNTRVJUX0VRKHN0cmluZzEuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJz
OCgpLnZhbHVlKCkpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKICAgICBzdHJpbmcxLmFwcGVuZCgiREVG
Iik7Ci0gICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6QUJDIiksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOworICAgIEFT
U0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIp
LCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLnZhbHVlKCkpOwogICAgIEFTU0VS
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIp
LCBzdHJpbmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBu
b3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5
KCkuCiAgICAgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7Ci0gICAgc3RyaW5nMSA9IGJ1
aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CisgICAgc3RyaW5nMSA9IGJ1aWxkZXIu
dG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkudmFsdWUoKTsKICAgICBBU1NFUlRfRVEoY2FwYWNp
dHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7Ci0gICAgQVNTRVJUX0VRKHN0cmluZy5jaGFyYWN0ZXJz
OCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOworICAgIEFTU0VSVF9FUShzdHJpbmcuY2hhcmFj
dGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpLnZhbHVlKCkpOwogICAgIGJ1aWxkZXIucmVz
aXplKDEwKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIyMjIik7CiAgICAgQVNTRVJUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOwpA
QCAtMTkxLDExICsxOTEsMTEgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQXJyYXkpCiB7CiAg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5
Iik7Ci0gICAgRVhQRUNUX0VRKCcwJywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRlclswXSkpOwot
ICAgIEVYUEVDVF9FUSgnOScsIHN0YXRpY19jYXN0PGNoYXI+KGJ1aWxkZXJbOV0pKTsKLSAgICBi
dWlsZGVyLnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KLSAgICBFWFBF
Q1RfRVEoJzAnLCBzdGF0aWNfY2FzdDxjaGFyPihidWlsZGVyWzBdKSk7Ci0gICAgRVhQRUNUX0VR
KCc5Jywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRlcls5XSkpOworICAgIEVYUEVDVF9FUSgnMCcs
IHN0YXRpY19jYXN0PGNoYXI+KGJ1aWxkZXJbMF0udmFsdWUoKSkpOworICAgIEVYUEVDVF9FUSgn
OScsIHN0YXRpY19jYXN0PGNoYXI+KGJ1aWxkZXJbOV0udmFsdWUoKSkpOworICAgIGJ1aWxkZXIu
dG9TdHJpbmcoKS52YWx1ZSgpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCisgICAgRVhQ
RUNUX0VRKCcwJywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRlclswXS52YWx1ZSgpKSk7CisgICAg
RVhQRUNUX0VRKCc5Jywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRlcls5XS52YWx1ZSgpKSk7CiB9
CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFJlc2l6ZSkKQEAgLTIwOSw3ICsyMDksNyBAQCBU
RVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBSZXNpemUpCiAgICAgRVhQRUNUX0VRKDhVLCBidWlsZGVy
Lmxlbmd0aCgpKTsKICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NjciLCBidWlsZGVy
KTsKIAotICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBidWlsZGVyLnRvU3RyaW5nKCkudmFs
dWUoKTsKICAgICBidWlsZGVyLnJlc2l6ZSg3KTsKICAgICBFWFBFQ1RfRVEoN1UsIGJ1aWxkZXIu
bGVuZ3RoKCkpOwogICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2IiwgYnVpbGRlcik7
CkBAIC0yNDAsMTMgKzI0MCwxMyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBFcXVhbCkKICAg
ICBBU1NFUlRfVFJVRShidWlsZGVyMiAhPSBidWlsZGVyMSk7CiAgICAgQVNTRVJUX1RSVUUoU3Ry
aW5nKCIxMjMiKSAhPSBidWlsZGVyMik7CiAgICAgQVNTRVJUX1RSVUUoYnVpbGRlcjIgIT0gU3Ry
aW5nKCIxMjMiKSk7Ci0gICAgYnVpbGRlcjIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlm
eVN0cmluZygpLgorICAgIGJ1aWxkZXIyLnRvU3RyaW5nKCkudmFsdWUoKTsgLy8gVGVzdCBhZnRl
ciByZWlmeVN0cmluZygpLgogICAgIEFTU0VSVF9UUlVFKGJ1aWxkZXIxICE9IGJ1aWxkZXIyKTsK
IAogICAgIGJ1aWxkZXIyLnJlc2l6ZSgzKTsKICAgICBBU1NFUlRfVFJVRShidWlsZGVyMSA9PSBi
dWlsZGVyMik7CiAKLSAgICBidWlsZGVyMS50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5
U3RyaW5nKCkuCisgICAgYnVpbGRlcjEudG9TdHJpbmcoKS52YWx1ZSgpOyAvLyBUZXN0IGFmdGVy
IHJlaWZ5U3RyaW5nKCkuCiAgICAgQVNTRVJUX1RSVUUoYnVpbGRlcjEgPT0gYnVpbGRlcjIpOwog
fQogCkBAIC0yNjUsMTQgKzI2NSwxNCBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb0F0b21p
Y1N0cmluZykKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBl
bmQoIjEyMyIpOwotICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRv
bWljU3RyaW5nKCk7CisgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxkZXIudG9B
dG9taWNTdHJpbmcoKS52YWx1ZSgpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjEyMyIpLCBhdG9t
aWNTdHJpbmcpOwogCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjU2KTsKICAgICBBU1NF
UlRfVFJVRShidWlsZGVyLmNhblNocmluaygpKTsKICAgICBmb3IgKGludCBpID0gYnVpbGRlci5s
ZW5ndGgoKTsgaSA8IDEyODsgaSsrKQogICAgICAgICBidWlsZGVyLmFwcGVuZCgneCcpOwotICAg
IEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcxID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpOwor
ICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcxID0gYnVpbGRlci50b0F0b21pY1N0cmluZygp
LnZhbHVlKCk7CiAgICAgQVNTRVJUX0VRKDEyOHUsIGF0b21pY1N0cmluZzEubGVuZ3RoKCkpOwog
ICAgIEFTU0VSVF9FUSgneCcsIGF0b21pY1N0cmluZzFbMTI3XSk7CiAKQEAgLTI4Miw4ICsyODIs
OCBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb0F0b21pY1N0cmluZykKICAgICBBU1NFUlRf
RVEoMTI4dSwgYXRvbWljU3RyaW5nMS5sZW5ndGgoKSk7CiAKICAgICBBU1NFUlRfRkFMU0UoYnVp
bGRlci5jYW5TaHJpbmsoKSk7Ci0gICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KTsKLSAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nMiA9IGJ1aWxkZXIudG9BdG9taWNTdHJp
bmcoKTsKKyAgICBTdHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpLnZhbHVlKCk7Cisg
ICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZzIgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCku
dmFsdWUoKTsKICAgICAvLyBUaGV5IHNob3VsZCBzaGFyZSB0aGUgc2FtZSBTdHJpbmdJbXBsLgog
ICAgIEFTU0VSVF9FUShhdG9taWNTdHJpbmcyLmltcGwoKSwgc3RyaW5nLmltcGwoKSk7CiB9CkBA
IC0yOTIsNDUgKzI5Miw0NSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb0F0b21pY1N0cmlu
Z09uRW1wdHkpCiB7CiAgICAgeyAvLyBEZWZhdWx0IGNvbnN0cnVjdGVkLgogICAgICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBi
dWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7CisgICAgICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJp
bmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCkudmFsdWUoKTsKICAgICAgICAgQVNTRVJUX0VR
KGVtcHR5QXRvbSgpLCBhdG9taWNTdHJpbmcpOwogICAgIH0KICAgICB7IC8vIFdpdGggY2FwYWNp
dHkuCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5yZXNl
cnZlQ2FwYWNpdHkoNjQpOwotICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVp
bGRlci50b0F0b21pY1N0cmluZygpOworICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5n
ID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpLnZhbHVlKCk7CiAgICAgICAgIEFTU0VSVF9FUShl
bXB0eUF0b20oKSwgYXRvbWljU3RyaW5nKTsKICAgICB9CiAgICAgeyAvLyBBdG9taWNTdHJpbmcg
Y29uc3RydWN0ZWQgZnJvbSBhIG51bGwgc3RyaW5nLgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1
aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygpKTsKLSAgICAgICAgQXRvbWlj
U3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKTsKKyAgICAgICAg
QXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKS52YWx1
ZSgpOwogICAgICAgICBBU1NFUlRfRVEoZW1wdHlBdG9tKCksIGF0b21pY1N0cmluZyk7CiAgICAg
fQogICAgIHsgLy8gQXRvbWljU3RyaW5nIGNvbnN0cnVjdGVkIGZyb20gYW4gZW1wdHkgc3RyaW5n
LgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KGVtcHR5U3RyaW5nKCkpOwotICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVp
bGRlci50b0F0b21pY1N0cmluZygpOworICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5n
ID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpLnZhbHVlKCk7CiAgICAgICAgIEFTU0VSVF9FUShl
bXB0eUF0b20oKSwgYXRvbWljU3RyaW5nKTsKICAgICB9CiAgICAgeyAvLyBBdG9taWNTdHJpbmcg
Y29uc3RydWN0ZWQgZnJvbSBhbiBlbXB0eSBTdHJpbmdCdWlsZGVyLgogICAgICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgZW1wdHlCdWlsZGVyOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZChlbXB0eUJ1aWxkZXIpOwotICAgICAgICBBdG9taWNTdHJpbmcg
YXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpOworICAgICAgICBBdG9taWNT
dHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpLnZhbHVlKCk7CiAg
ICAgICAgIEFTU0VSVF9FUShlbXB0eUF0b20oKSwgYXRvbWljU3RyaW5nKTsKICAgICB9CiAgICAg
eyAvLyBBdG9taWNTdHJpbmcgY29uc3RydWN0ZWQgZnJvbSBhbiBlbXB0eSBjaGFyKiBzdHJpbmcu
CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
IiIsIDApOwotICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0
b21pY1N0cmluZygpOworICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRl
ci50b0F0b21pY1N0cmluZygpLnZhbHVlKCk7CiAgICAgICAgIEFTU0VSVF9FUShlbXB0eUF0b20o
KSwgYXRvbWljU3RyaW5nKTsKICAgICB9CiAgICAgeyAvLyBDbGVhcmVkIFN0cmluZ0J1aWxkZXIu
CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmRM
aXRlcmFsKCJXZWJLaXQiKTsKICAgICAgICAgYnVpbGRlci5jbGVhcigpOwotICAgICAgICBBdG9t
aWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpOworICAgICAg
ICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpLnZh
bHVlKCk7CiAgICAgICAgIEFTU0VSVF9FUShlbXB0eUF0b20oKSwgYXRvbWljU3RyaW5nKTsKICAg
ICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdW
aWV3LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCmlu
ZGV4IGZjMjhiMDAuLjhiMjgzMDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N0cmluZ1ZpZXcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1N0cmluZ1ZpZXcuY3BwCkBAIC0xNjQsNjUgKzE2NCw2NSBAQCBURVNUKFdURiwgU3RyaW5nVmll
d0l0ZXJhdG9ycykKIAogICAgIFN0cmluZ0J1aWxkZXIgYjsKICAgICBidWlsZChiLCB7MHhEODAw
LCAweERENTV9KTsgLy8gU3Vycm9nYXRlcyBmb3IgdW5pY29kZSBjb2RlIHBvaW50IFUrMTAxNTUK
LSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3Ry
aW5nKCkpLmNvZGVQb2ludHMoKSwgezB4MTAxNTV9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFy
ZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlVW5pdHMoKSwgezB4
RDgwMCwgMHhERDU1fSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhT
dHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhi
LnRvU3RyaW5nKCkpfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhT
dHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlUG9pbnRzKCksIHsweDEwMTU1fSkp
OworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9T
dHJpbmcoKS52YWx1ZSgpKS5jb2RlVW5pdHMoKSwgezB4RDgwMCwgMHhERDU1fSkpOworICAgIEVY
UEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52
YWx1ZSgpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1
ZSgpKX0pKTsKIAogICAgIGJ1aWxkKGIsIHsweEQ4MDB9KTsgLy8gTGVhZGluZyBzdXJyb2dhdGUg
b25seQotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIu
dG9TdHJpbmcoKSkuY29kZVBvaW50cygpLCB7MHhEODAwfSkpOwotICAgIEVYUEVDVF9UUlVFKGNv
bXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRzKCks
IHsweEQ4MDB9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmlu
Z1ZpZXcoYi50b1N0cmluZygpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9T
dHJpbmcoKSl9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmlu
Z1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVQb2ludHMoKSwgezB4RDgwMH0pKTsKKyAg
ICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5n
KCkudmFsdWUoKSkuY29kZVVuaXRzKCksIHsweEQ4MDB9KSk7CisgICAgRVhQRUNUX1RSVUUoY29t
cGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmdyYXBo
ZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpfSkpOwogCiAg
ICAgYnVpbGQoYiwgezB4RDgwMCwgMHhEODAxfSk7IC8vIFR3byBsZWFkaW5nIHN1cnJvZ2F0ZXMK
LSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3Ry
aW5nKCkpLmNvZGVQb2ludHMoKSwgezB4RDgwMCwgMHhEODAxfSkpOwotICAgIEVYUEVDVF9UUlVF
KGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRz
KCksIHsweEQ4MDAsIDB4RDgwMX0pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJh
dGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmlu
Z1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSwgMSksIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSAr
IDEsIDEpfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdW
aWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlUG9pbnRzKCksIHsweEQ4MDAsIDB4RDgwMX0p
KTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRv
U3RyaW5nKCkudmFsdWUoKSkuY29kZVVuaXRzKCksIHsweEQ4MDAsIDB4RDgwMX0pKTsKKyAgICBF
WFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCku
dmFsdWUoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigp
LnZhbHVlKCksIDEpLCBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSArIDEsIDEp
fSkpOwogCiAgICAgYnVpbGQoYiwgezB4REQ1NX0pOyAvLyBUcmFpbGluZyBzdXJyb2dhdGUgb25s
eQotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9T
dHJpbmcoKSkuY29kZVBvaW50cygpLCB7MHhERDU1fSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBh
cmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRzKCksIHsw
eERENTV9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1Zp
ZXcoYi50b1N0cmluZygpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9TdHJp
bmcoKSl9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1Zp
ZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVQb2ludHMoKSwgezB4REQ1NX0pKTsKKyAgICBF
WFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCku
dmFsdWUoKSkuY29kZVVuaXRzKCksIHsweERENTV9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFy
ZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmdyYXBoZW1l
Q2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpfSkpOwogCiAgICAg
YnVpbGQoYiwgezB4RDgwMCwgJ2gnfSk7IC8vIExlYWRpbmcgc3Vycm9nYXRlIGZvbGxvd2VkIGJ5
IG5vbi1zdXJyb2dhdGUKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3Ry
aW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVQb2ludHMoKSwgezB4RDgwMCwgJ2gnfSkpOwotICAg
IEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmco
KSkuY29kZVVuaXRzKCksIHsweEQ4MDAsICdoJ30pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJl
TG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmdyYXBoZW1lQ2x1c3RlcnMo
KSwge1N0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSwgMSksIFN0cmluZ1ZpZXcoYi5jaGFyYWN0
ZXJzMTYoKSArIDEsIDEpfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9u
cyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlUG9pbnRzKCksIHsweEQ4MDAs
ICdoJ30pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmll
dyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVVuaXRzKCksIHsweEQ4MDAsICdoJ30pKTsKKyAg
ICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5n
KCkudmFsdWUoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhiLmNoYXJhY3RlcnMx
NigpLnZhbHVlKCksIDEpLCBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSArIDEs
IDEpfSkpOwogCiAgICAgYnVpbGQoYiwgezB4MDMwNn0pOyAvLyAiQ09NQklOSU5HIEJSRVZFIgot
ICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJp
bmcoKSkuY29kZVBvaW50cygpLCB7MHgwMzA2fSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVM
b29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRzKCksIHsweDAz
MDZ9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXco
Yi50b1N0cmluZygpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9TdHJpbmco
KSl9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXco
Yi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVQb2ludHMoKSwgezB4MDMwNn0pKTsKKyAgICBFWFBF
Q1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFs
dWUoKSkuY29kZVVuaXRzKCksIHsweDAzMDZ9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxv
b3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmdyYXBoZW1lQ2x1
c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpfSkpOwogCiAgICAgYnVp
bGQoYiwgezB4MDMwNiwgMHhEODAwLCAweERENTUsICdoJywgJ2UnLCAnbCcsICdvJ30pOyAvLyBN
aXggb2Ygc2luZ2xlIGNvZGUgdW5pdCBhbmQgbXVsdGkgY29kZSB1bml0IGNvZGUgcG9pbnRzCi0g
ICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmlu
ZygpKS5jb2RlUG9pbnRzKCksIHsweDAzMDYsIDB4MTAxNTUsICdoJywgJ2UnLCAnbCcsICdvJ30p
KTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRv
U3RyaW5nKCkpLmNvZGVVbml0cygpLCB7MHgwMzA2LCAweEQ4MDAsIDB4REQ1NSwgJ2gnLCAnZScs
ICdsJywgJ28nfSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJp
bmdWaWV3KGIudG9TdHJpbmcoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7Ci0gICAgICAgIFN0cmlu
Z1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSwgMSksCi0gICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0
ZXJzMTYoKSArIDEsIDIpLAotICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkgKyAz
LCAxKSwKLSAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpICsgNCwgMSksCi0gICAg
ICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSArIDUsIDEpLAotICAgICAgICBTdHJpbmdW
aWV3KGIuY2hhcmFjdGVyczE2KCkgKyA2LCAxKX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJl
TG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVBvaW50
cygpLCB7MHgwMzA2LCAweDEwMTU1LCAnaCcsICdlJywgJ2wnLCAnbyd9KSk7CisgICAgRVhQRUNU
X1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVl
KCkpLmNvZGVVbml0cygpLCB7MHgwMzA2LCAweEQ4MDAsIDB4REQ1NSwgJ2gnLCAnZScsICdsJywg
J28nfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3
KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHsKKyAgICAgICAgU3Ry
aW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCksIDEpLAorICAgICAgICBTdHJpbmdWaWV3
KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSArIDEsIDIpLAorICAgICAgICBTdHJpbmdWaWV3KGIu
Y2hhcmFjdGVyczE2KCkudmFsdWUoKSArIDMsIDEpLAorICAgICAgICBTdHJpbmdWaWV3KGIuY2hh
cmFjdGVyczE2KCkudmFsdWUoKSArIDQsIDEpLAorICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFj
dGVyczE2KCkudmFsdWUoKSArIDUsIDEpLAorICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVy
czE2KCkudmFsdWUoKSArIDYsIDEpfSkpOwogCiAgICAgYnVpbGQoYiwgeydlJywgMHgwMzAxfSk7
IC8vICJDT01CSU5JTkcgQUNVVEUiCi0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRp
b25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlUG9pbnRzKCksIHsnZScsIDB4MDMwMX0p
KTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRv
U3RyaW5nKCkpLmNvZGVVbml0cygpLCB7J2UnLCAweDAzMDF9KSk7Ci0gICAgRVhQRUNUX1RSVUUo
Y29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5ncmFwaGVtZUNs
dXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSl9KSk7CisgICAgRVhQRUNUX1RSVUUo
Y29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNv
ZGVQb2ludHMoKSwgeydlJywgMHgwMzAxfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29w
SXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlVW5pdHMoKSwg
eydlJywgMHgwMzAxfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhT
dHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJp
bmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKX0pKTsKIAogICAgIGJ1aWxkKGIsIHsnZScsIDB4
MDMwMSwgMHgwMzA2LCAnYSd9KTsgLy8gIkNPTUJJTklORyBBQ1VURSIgIkNPTUJJTklORyBCUkVW
RSIKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRv
U3RyaW5nKCkpLmNvZGVQb2ludHMoKSwgeydlJywgMHgwMzAxLCAweDAzMDYsICdhJ30pKTsKLSAg
ICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5n
KCkpLmNvZGVVbml0cygpLCB7J2UnLCAweDAzMDEsIDB4MDMwNiwgJ2EnfSkpOwotICAgIEVYUEVD
VF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuZ3Jh
cGhlbWVDbHVzdGVycygpLCB7Ci0gICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSwg
MyksCi0gICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSArIDMsIDEpLAorICAgIEVY
UEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52
YWx1ZSgpKS5jb2RlUG9pbnRzKCksIHsnZScsIDB4MDMwMSwgMHgwMzA2LCAnYSd9KSk7CisgICAg
RVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygp
LnZhbHVlKCkpLmNvZGVVbml0cygpLCB7J2UnLCAweDAzMDEsIDB4MDMwNiwgJ2EnfSkpOworICAg
IEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmco
KS52YWx1ZSgpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHsKKyAgICAgICAgU3RyaW5nVmlldyhiLmNo
YXJhY3RlcnMxNigpLnZhbHVlKCksIDMpLAorICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVy
czE2KCkudmFsdWUoKSArIDMsIDEpLAogICAgICAgICB9KSk7CiAKICAgICBidWlsZChiLCB7MHgx
MTEyLCAweDExNmYsIDB4MTFiNiwgMHgxMTA3LCAweDExNjEsIDB4MTFCOH0pOyAvLyBLb3JlYW4g
Y29tYmluaW5nIEphbW8KLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3Ry
aW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVQb2ludHMoKSwgezB4MTExMiwgMHgxMTZmLCAweDEx
YjYsIDB4MTEwNywgMHgxMTYxLCAweDExQjh9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxv
b3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlVW5pdHMoKSwgezB4MTEx
MiwgMHgxMTZmLCAweDExYjYsIDB4MTEwNywgMHgxMTYxLCAweDExQjh9KSk7Ci0gICAgRVhQRUNU
X1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5ncmFw
aGVtZUNsdXN0ZXJzKCksIHsKLSAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLCAz
KSwKLSAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpICsgMywgMyl9KSk7CisgICAg
RVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygp
LnZhbHVlKCkpLmNvZGVQb2ludHMoKSwgezB4MTExMiwgMHgxMTZmLCAweDExYjYsIDB4MTEwNywg
MHgxMTYxLCAweDExQjh9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25z
KFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVVbml0cygpLCB7MHgxMTEyLCAw
eDExNmYsIDB4MTFiNiwgMHgxMTA3LCAweDExNjEsIDB4MTFCOH0pKTsKKyAgICBFWFBFQ1RfVFJV
RShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSku
Z3JhcGhlbWVDbHVzdGVycygpLCB7CisgICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYo
KS52YWx1ZSgpLCAzKSwKKyAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVl
KCkgKyAzLCAzKX0pKTsKIH0KIAogc3RhdGljIFZlY3RvcjxTdHJpbmc+IHZlY3RvckZyb21TcGxp
dFJlc3VsdChjb25zdCBTdHJpbmdWaWV3OjpTcGxpdFJlc3VsdCYgc3Vic3RyaW5ncykKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9u
cy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lv
bnMuY3BwCmluZGV4IGRjY2U0NjguLjAzODM4NjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcApAQCAtMTIwOSwx
NSArMTIwOSwxOCBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIFdpZGVORkEpCiAgICAg
ICAgIH0KICAgICB9CiAgICAgcnVsZUxpc3QuYXBwZW5kKCddJyk7Ci0gICAgCi0gICAgYXV0byBi
YWNrZW5kID0gbWFrZUJhY2tlbmQocnVsZUxpc3QudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsK
IAotICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93
ZWJraXQub3JnL0FBQSIpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpDU1NEaXNw
bGF5Tm9uZVNlbGVjdG9yIH0pOwotICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVu
dFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL1lBQSIpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpB
Y3Rpb25UeXBlOjpDU1NEaXNwbGF5Tm9uZVNlbGVjdG9yIH0pOwotICAgIHRlc3RSZXF1ZXN0KGJh
Y2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL1pBQSIpLCB7IH0s
IDApOwotICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6
Ly93ZWJraXQub3JnL0xBQS9BQUEiKSwgeyB9LCAwKTsKLSAgICB0ZXN0UmVxdWVzdChiYWNrZW5k
LCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy9MQUEvTUFBIiksIHsgQ29u
dGVudEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6OkNTU0Rpc3BsYXlOb25lU2VsZWN0b3IgfSwgMCk7
Ci0gICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dl
YmtpdC5vcmcvIiksIHsgfSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcnVsZUxpc3QudG9TdHJp
bmcoKSkgeworICAgICAgICBhdXRvIGJhY2tlbmQgPSBtYWtlQmFja2VuZChzdHJpbmctPnV0Zjgo
KS5kYXRhKCkpOworCisgICAgICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJl
cXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL0FBQSIpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rp
b25UeXBlOjpDU1NEaXNwbGF5Tm9uZVNlbGVjdG9yIH0pOworICAgICAgICB0ZXN0UmVxdWVzdChi
YWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy9ZQUEiKSwgeyBD
b250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6Q1NTRGlzcGxheU5vbmVTZWxlY3RvciB9KTsK
KyAgICAgICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDov
L3dlYmtpdC5vcmcvWkFBIiksIHsgfSwgMCk7CisgICAgICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQs
IG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL0xBQS9BQUEiKSwgeyB9LCAw
KTsKKyAgICAgICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0
cDovL3dlYmtpdC5vcmcvTEFBL01BQSIpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBl
OjpDU1NEaXNwbGF5Tm9uZVNlbGVjdG9yIH0sIDApOworICAgICAgICB0ZXN0UmVxdWVzdChiYWNr
ZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy8iKSwgeyB9KTsKKyAg
ICB9IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KICAgICAKICNpZmRlZiBOREVCVUcKQEAgLTEy
NDcsNyArMTI1MCwxMCBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIExhcmdlSnVtcHMp
CiAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kKGMyKTsKICAgICAgICAgICAgICAg
ICAgICAgcGF0dGVybi5hcHBlbmQoYzMpOwogICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLmFw
cGVuZChjNCk7Ci0gICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUShDb250ZW50RXh0ZW5zaW9u
czo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2ssIHBhcnNlci5hZGRQYXR0ZXJuKHBh
dHRlcm4udG9TdHJpbmcoKSwgdHJ1ZSwgcGF0dGVybklkKyspKTsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gcGF0dGVybi50b1N0cmluZygpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgRVhQRUNUX0VRKENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBh
cnNlU3RhdHVzOjpPaywgcGFyc2VyLmFkZFBhdHRlcm4oKnN0cmluZywgdHJ1ZSwgcGF0dGVybklk
KyspKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAg
Q1JBU0goKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAg
LTEzMDgsMTcgKzEzMTQsMjAgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBMYXJnZUp1
bXBzKQogICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybi5hcHBlbmQoJ3gnKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgICAgIGF1dG8gbWF0Y2hlcyA9IGludGVycHJldGVyLmludGVycHJldChwYXR0ZXJu
LnRvU3RyaW5nKCkudXRmOCgpLCAwKTsKLSAgICAgICAgICAgICAgICAgICAgc3dpdGNoICgoYzEg
KyBjMiArIGMzICsgYzQpICUgNCkgewotICAgICAgICAgICAgICAgICAgICBjYXNlIDA6Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBjb21wYXJlQ29udGVudHMobWF0Y2hlcywgeyB9KTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICBjYXNlIDE6Ci0g
ICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAzOgot
ICAgICAgICAgICAgICAgICAgICAgICAgY29tcGFyZUNvbnRlbnRzKG1hdGNoZXMsIHtwYXR0ZXJu
SWR9KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHBhdHRlcm4udG9TdHJp
bmcoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBtYXRjaGVzID0gaW50ZXJwcmV0
ZXIuaW50ZXJwcmV0KHN0cmluZy0+dXRmOCgpLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHN3aXRjaCAoKGMxICsgYzIgKyBjMyArIGM0KSAlIDQpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wYXJlQ29udGVudHMo
bWF0Y2hlcywgeyB9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2Ug
MjoKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb21wYXJlQ29udGVudHMobWF0Y2hlcywge3BhdHRlcm5JZH0pOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7
CiAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm5JZCsrOwogICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0KQEAgLTEzNDgsMTMgKzEzNTcsMTkgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNp
b25UZXN0LCBEZWVwTkZBKQogICAgIFN0cmluZ0J1aWxkZXIgbG90c09mQXM7CiAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkKICAgICAgICAgbG90c09mQXMuYXBwZW5kKCdB
Jyk7Ci0gICAgRVhQRUNUX0VRKENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBh
cnNlU3RhdHVzOjpPaywgcGFyc2VyLmFkZFBhdHRlcm4obG90c09mQXMudG9TdHJpbmcoKS51dGY4
KCkuZGF0YSgpLCBmYWxzZSwgMCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGxvdHNPZkFzLnRv
U3RyaW5nKCkpCisgICAgICAgIEVYUEVDVF9FUShDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVy
UGFyc2VyOjpQYXJzZVN0YXR1czo6T2ssIHBhcnNlci5hZGRQYXR0ZXJuKHN0cmluZy0+dXRmOCgp
LmRhdGEoKSwgZmFsc2UsIDApKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgCiAg
ICAgLy8gRklYTUU6IFlhcnIgb3VnaHQgdG8gYmUgYWJsZSB0byBoYW5kbGUgMk1CIHJlZ3VsYXIg
ZXhwcmVzc2lvbnMuCiAgICAgU3RyaW5nQnVpbGRlciB0b29NYW55QXM7CiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IHNpemUgKiAyMDsgKytpKQogICAgICAgICB0b29NYW55QXMuYXBwZW5k
KCdBJyk7Ci0gICAgRVhQRUNUX0VRKENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6
OlBhcnNlU3RhdHVzOjpZYXJyRXJyb3IsIHBhcnNlci5hZGRQYXR0ZXJuKHRvb01hbnlBcy50b1N0
cmluZygpLnV0ZjgoKS5kYXRhKCksIGZhbHNlLCAwKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
dG9vTWFueUFzLnRvU3RyaW5nKCkpCisgICAgICAgIEVYUEVDVF9FUShDb250ZW50RXh0ZW5zaW9u
czo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6WWFyckVycm9yLCBwYXJzZXIuYWRkUGF0
dGVybihzdHJpbmctPnV0ZjgoKS5kYXRhKCksIGZhbHNlLCAwKSk7CisgICAgZWxzZQorICAgICAg
ICBDUkFTSCgpOwogICAgIAogICAgIFN0cmluZ0J1aWxkZXIgbmVzdGVkR3JvdXBzOwogICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpCkBAIC0xNDkwLDE3ICsxNTA1LDIyIEBA
IFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgSW52YWxpZEpTT04pCiAgICAgY2hlY2tDb21w
aWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwibm90aWZ5XCIsXCJub3RpZmljYXRp
b25cIjpbXX0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiLipcIn19XSIsIENvbnRlbnRF
eHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkTm90aWZpY2F0aW9u
KTsKICAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJub3Rp
ZnlcIixcIm5vdGlmaWNhdGlvblwiOlwiaGVyZSdzIG15IG5vdGlmaWNhdGlvblwifSxcInRyaWdn
ZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCIuKlwifX1dIiwgeyB9KTsKICAgICBjaGVja0NvbXBpbGVy
RXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJub3RpZnlcIixcIm5vdGlmaWNhdGlvblwi
OlwiXFx1MTIzNFwifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCIuKlwifX1dIiwgeyB9
KTsKLSAgICAKLSAgICBTdHJpbmdCdWlsZGVyIHJ1bGVzOwotICAgIHJ1bGVzLmFwcGVuZCgiWyIp
OwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCA0OTk5OTsgKytpKQotICAgICAgICBydWxl
cy5hcHBlbmQoIntcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntc
InVybC1maWx0ZXJcIjpcImFcIn19LCIpOwotICAgIFN0cmluZyBydWxlczUwMDAwID0gcnVsZXMu
dG9TdHJpbmcoKTsKLSAgICBTdHJpbmcgcnVsZXM1MDAwMSA9IHJ1bGVzLnRvU3RyaW5nKCk7Ci0g
ICAgcnVsZXM1MDAwMC5hcHBlbmQoIntcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwi
dHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcImFcIn19XSIpOwotICAgIHJ1bGVzNTAwMDEuYXBw
ZW5kKCJ7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwt
ZmlsdGVyXCI6XCJhXCJ9fSx7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdn
ZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJhXCJ9fV0iKTsKLSAgICBjaGVja0NvbXBpbGVyRXJyb3Io
cnVsZXM1MDAwMC51dGY4KCkuZGF0YSgpLCB7IH0pOwotICAgIGNoZWNrQ29tcGlsZXJFcnJvcihy
dWxlczUwMDAxLnV0ZjgoKS5kYXRhKCksIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5z
aW9uRXJyb3I6OkpTT05Ub29NYW55UnVsZXMpOworCisgICAgeworICAgICAgICBTdHJpbmdCdWls
ZGVyIHJ1bGVzOworICAgICAgICBydWxlcy5hcHBlbmQoIlsiKTsKKyAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IDQ5OTk5OyArK2kpCisgICAgICAgICAgICBydWxlcy5hcHBlbmQoIntc
ImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJc
IjpcImFcIn19LCIpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBydWxlcy50b1N0cmluZygp
KSB7CisgICAgICAgICAgICBTdHJpbmcgcnVsZXM1MDAwMCA9ICpzdHJpbmc7CisgICAgICAgICAg
ICBTdHJpbmcgcnVsZXM1MDAwMSA9ICpzdHJpbmc7CisgICAgICAgICAgICBydWxlczUwMDAwLmFw
cGVuZCgie1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJs
LWZpbHRlclwiOlwiYVwifX1dIik7CisgICAgICAgICAgICBydWxlczUwMDAxLmFwcGVuZCgie1wi
YWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwi
OlwiYVwifX0se1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1wi
dXJsLWZpbHRlclwiOlwiYVwifX1dIik7CisgICAgICAgICAgICBjaGVja0NvbXBpbGVyRXJyb3Io
cnVsZXM1MDAwMC51dGY4KCkuZGF0YSgpLCB7IH0pOworICAgICAgICAgICAgY2hlY2tDb21waWxl
ckVycm9yKHJ1bGVzNTAwMDEudXRmOCgpLmRhdGEoKSwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRl
bnRFeHRlbnNpb25FcnJvcjo6SlNPTlRvb01hbnlSdWxlcyk7CisgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgQ1JBU0goKTsKKyAgICB9CiAgICAgCiAgICAgY2hlY2tDb21waWxlckVycm9yKCJb
e1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRl
clwiOlwid2Via2l0Lm9yZ1wiLFwiaWYtZG9tYWluXCI6e319fV0iLCBDb250ZW50RXh0ZW5zaW9u
czo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZENvbmRpdGlvbkxpc3QpOwogICAg
IGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwi
dHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLWRvbWFpblwiOls1
XX19XSIsIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZh
bGlkQ29uZGl0aW9uTGlzdCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0ZpbGVNb25pdG9yLmNwcAppbmRleCA1ZjFkYzhiLi5lOTRlZmM0IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKQEAgLTEwNyw3
ICsxMDcsOSBAQCBzdGF0aWMgU3RyaW5nIGNyZWF0ZUNvbW1hbmQoY29uc3QgU3RyaW5nJiBwYXRo
LCBjb25zdCBTdHJpbmcmIHBheWxvYWQpCiAgICAgY29tbWFuZC5hcHBlbmRMaXRlcmFsKCJcIiA+
ICIpOwogICAgIGNvbW1hbmQuYXBwZW5kKHBhdGgpOwogCi0gICAgcmV0dXJuIGNvbW1hbmQudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBjb21tYW5kLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgcmVh
ZENvbnRlbnRzT2ZGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCkKQEAgLTI2NywxMCArMjY5LDEzIEBA
IFRFU1RfRihGaWxlTW9uaXRvclRlc3QsIERldGVjdERlbGV0aW9uKQogICAgICAgICBjb21tYW5k
LmFwcGVuZExpdGVyYWwoInJtIC1mICIpOwogICAgICAgICBjb21tYW5kLmFwcGVuZCh0ZW1wRmls
ZVBhdGgoKSk7CiAKLSAgICAgICAgYXV0byByYyA9IHN5c3RlbShjb21tYW5kLnRvU3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIEFTU0VSVF9ORShyYywgLTEpOwotICAgICAgICBpZiAo
cmMgPT0gLTEpCi0gICAgICAgICAgICBkaWRGaW5pc2ggPSB0cnVlOworICAgICAgICBpZiAoYXV0
byBzdHJpbmcgPSBjb21tYW5kLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIGF1dG8gcmMgPSBz
eXN0ZW0oc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShyYywg
LTEpOworICAgICAgICAgICAgaWYgKHJjID09IC0xKQorICAgICAgICAgICAgICAgIGRpZEZpbmlz
aCA9IHRydWU7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9KTsK
IAogICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoKTsKQEAgLTMyNCwxMCArMzI5LDEzIEBAIFRFU1Rf
RihGaWxlTW9uaXRvclRlc3QsIERldGVjdENoYW5nZUFuZFRoZW5EZWxldGUpCiAgICAgICAgIGNv
bW1hbmQuYXBwZW5kTGl0ZXJhbCgicm0gLWYgIik7CiAgICAgICAgIGNvbW1hbmQuYXBwZW5kKHRl
bXBGaWxlUGF0aCgpKTsKIAotICAgICAgICBhdXRvIHJjID0gc3lzdGVtKGNvbW1hbmQudG9TdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgQVNTRVJUX05FKHJjLCAtMSk7Ci0gICAgICAg
IGlmIChyYyA9PSAtMSkKLSAgICAgICAgICAgIGRpZEZpbmlzaCA9IHRydWU7CisgICAgICAgIGlm
IChhdXRvIHN0cmluZyA9IGNvbW1hbmQudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgYXV0byBy
YyA9IHN5c3RlbShzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgQVNTRVJUX05F
KHJjLCAtMSk7CisgICAgICAgICAgICBpZiAocmMgPT0gLTEpCisgICAgICAgICAgICAgICAgZGlk
RmluaXNoID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAg
IH0pOwogCiAgICAgVXRpbDo6cnVuKCZkaWRGaW5pc2gpOwpAQCAtMzYzLDEwICszNzEsMTMgQEAg
VEVTVF9GKEZpbGVNb25pdG9yVGVzdCwgRGV0ZWN0RGVsZXRlQnV0Tm90U3Vic2VxdWVudENoYW5n
ZSkKICAgICAgICAgY29tbWFuZC5hcHBlbmRMaXRlcmFsKCJybSAtZiAiKTsKICAgICAgICAgY29t
bWFuZC5hcHBlbmQodGVtcEZpbGVQYXRoKCkpOwogCi0gICAgICAgIGF1dG8gcmMgPSBzeXN0ZW0o
Y29tbWFuZC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBBU1NFUlRfTkUocmMs
IC0xKTsKLSAgICAgICAgaWYgKHJjID09IC0xKQotICAgICAgICAgICAgZGlkRmluaXNoID0gdHJ1
ZTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gY29tbWFuZC50b1N0cmluZygpKSB7CisgICAg
ICAgICAgICBhdXRvIHJjID0gc3lzdGVtKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAg
ICAgICBBU1NFUlRfTkUocmMsIC0xKTsKKyAgICAgICAgICAgIGlmIChyYyA9PSAtMSkKKyAgICAg
ICAgICAgICAgICBkaWRGaW5pc2ggPSB0cnVlOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IENSQVNIKCk7CiAgICAgfSk7CiAKICAgICBVdGlsOjpydW4oJmRpZEZpbmlzaCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTG9nZ2luZy5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTG9nZ2luZy5jcHAKaW5kZXggMWU0YzM0Mi4u
N2RlZGFkMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0xv
Z2dpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Mb2dnaW5n
LmNwcApAQCAtOTUsNyArOTUsOSBAQCBwdWJsaWM6CiAgICAgICAgIHdoaWxlICgobGluZSA9IGZn
ZXRzKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksIG1fc3RkZXJyKSkpCiAgICAgICAgICAgICByZXN1
bHQuYXBwZW5kKGxpbmUpOwogCi0gICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAg
ICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBjb25zdCBMb2dn
ZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbG9nZ2VyLmdldCgpOyB9CkBAIC0z
NDAsMTUgKzM0MiwxOCBAQCBURVNUX0YoTG9nZ2luZ1Rlc3QsIExvZ2dlckhlbHBlcikKICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIkxvZ2dpbmdUZXN0OjpUZXN0Qm9keSgiKTsKICAgICBhcHBl
bmRVbnNpZ25lZDY0QXNIZXgocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGxvZ0lkZW50aWZp
ZXIoKSksIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSIpOwotICAgIFN0
cmluZyBzaWduYXR1cmUgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIFN0cmluZyBzaWduYXR1cmUgPSAqc3Ry
aW5nOwogCi0gICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKLSAgICBFWFBFQ1RfVFJVRSh0
aGlzLT5vdXRwdXQoKS5jb250YWlucyhzaWduYXR1cmUsIGZhbHNlKSk7CisgICAgICAgIEFMV0FZ
U19MT0coTE9HSURFTlRJRklFUik7CisgICAgICAgIEVYUEVDVF9UUlVFKHRoaXMtPm91dHB1dCgp
LmNvbnRhaW5zKHNpZ25hdHVyZSwgZmFsc2UpKTsKIAotICAgIEFMV0FZU19MT0coTE9HSURFTlRJ
RklFUiwgIldlbGNvbWUgYmFjayIsICIgbXkgZnJpZW5kcyIsICIgdG8gdGhlIHNob3ciLCAiIHRo
YXQgbmV2ZXIgZW5kcyIpOwotICAgIFN0cmluZyByZXN1bHQgPSB0aGlzLT5vdXRwdXQoKTsKLSAg
ICBFWFBFQ1RfVFJVRShyZXN1bHQuY29udGFpbnMoc2lnbmF0dXJlLCBmYWxzZSkpOwotICAgIEVY
UEVDVF9UUlVFKHJlc3VsdC5jb250YWlucygidG8gdGhlIHNob3cgdGhhdCBuZXZlciIsIGZhbHNl
KSk7CisgICAgICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgIldlbGNvbWUgYmFjayIsICIg
bXkgZnJpZW5kcyIsICIgdG8gdGhlIHNob3ciLCAiIHRoYXQgbmV2ZXIgZW5kcyIpOworICAgICAg
ICBTdHJpbmcgcmVzdWx0ID0gdGhpcy0+b3V0cHV0KCk7CisgICAgICAgIEVYUEVDVF9UUlVFKHJl
c3VsdC5jb250YWlucyhzaWduYXR1cmUsIGZhbHNlKSk7CisgICAgICAgIEVYUEVDVF9UUlVFKHJl
c3VsdC5jb250YWlucygidG8gdGhlIHNob3cgdGhhdCBuZXZlciIsIGZhbHNlKSk7CisgICAgfSBl
bHNlCisgICAgICAgIENSQVNIKCk7CiAKICAgICBXVEZTZXRMb2dDaGFubmVsTGV2ZWwoJlRlc3RD
aGFubmVsMSwgV1RGTG9nTGV2ZWxXYXJuaW5nKTsKIApAQCAtMzcxLDEwICszNzYsMTEgQEAgcHVi
bGljOgogCiAgICAgU3RyaW5nIGxvZygpCiAgICAgewotICAgICAgICBTdHJpbmcgbG9nID0gbV9s
b2dCdWZmZXIudG9TdHJpbmcoKTsKLSAgICAgICAgbV9sb2dCdWZmZXIuY2xlYXIoKTsKLQotICAg
ICAgICByZXR1cm4gbG9nOworICAgICAgICBpZiAoYXV0byBsb2cgPSBtX2xvZ0J1ZmZlci50b1N0
cmluZygpKSB7CisgICAgICAgICAgICBtX2xvZ0J1ZmZlci5jbGVhcigpOworICAgICAgICAgICAg
cmV0dXJuIGxvZzsKKyAgICAgICAgfQorICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIFdU
RkxvZ0NoYW5uZWwgY2hhbm5lbCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdENoYW5uZWw7IH0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9UZXh0Q29kZWMuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1RleHRDb2RlYy5jcHAKaW5kZXgg
ZmQwNTA1MC4uOWU1NTUzMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL1RleHRDb2RlYy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL1RleHRDb2RlYy5jcHAKQEAgLTk4LDcgKzk4LDkgQEAgc3RhdGljIGNvbnN0IGNoYXIqIHRl
c3REZWNvZGUoY29uc3QgY2hhciogZW5jb2RpbmdOYW1lLCBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8
Y28KICAgICAgICAgaWYgKHNhd0Vycm9yKQogICAgICAgICAgICAgcmVzdWx0QnVpbGRlci5hcHBl
bmRMaXRlcmFsKCIgRVJST1IiKTsKICAgICB9Ci0gICAgcmV0dXJuIGVzY2FwZU5vbkFTQ0lJUHJp
bnRhYmxlQ2hhcmFjdGVycyhyZXN1bHRCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHJlc3VsdEJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIGVzY2Fw
ZU5vbkFTQ0lJUHJpbnRhYmxlQ2hhcmFjdGVycygqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQog
CiBURVNUKFRleHRDb2RlYywgVVRGOCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
V1RGU3RyaW5nVXRpbGl0aWVzLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL1dURlN0cmluZ1V0aWxp
dGllcy5oCmluZGV4IGVjYmE5YzQuLmY1ZDQxZWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvV1RGU3RyaW5nVXRpbGl0aWVzLmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9XVEZT
dHJpbmdVdGlsaXRpZXMuaApAQCAtNTEsNSArNTEsNyBAQCBzdGF0aWMgU3RyaW5nIHV0ZjE2U3Ry
aW5nKGNvbnN0IGNoYXIxNl90ICgmdXJsKVtsZW5ndGhdKQogICAgIGJ1aWxkZXIucmVzZXJ2ZUNh
cGFjaXR5KGxlbmd0aCAtIDEpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoIC0g
MTsgKytpKQogICAgICAgICBidWlsZGVyLmFwcGVuZChzdGF0aWNfY2FzdDxVQ2hhcj4odXJsW2ld
KSk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKaW5kZXggYmIzOTQ2Yy4uMmZkOTY0YSAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2UuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVQYWdlLmNwcApAQCAtMTA2LDcgKzEwNiw5IEBAIHN0YXRpYyBXVEY6OlN0
cmluZyBkdW1wUGF0aChKU0dsb2JhbENvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgbm9k
ZVZhbHVlKQogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChkdW1wUGF0aChjb250ZXh0LCAo
SlNPYmplY3RSZWYpcGFyZW50Tm9kZSkpOwogICAgIH0KIAotICAgIHJldHVybiBzdHJpbmdCdWls
ZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0
aWMgV1RGOjpTdHJpbmcgZHVtcFBhdGgoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlU2Ny
aXB0V29ybGRSZWYgd29ybGQsIFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBub2RlKQpAQCAtMTU2LDcg
KzE1OCw5IEBAIHN0YXRpYyBXVEY6OlN0cmluZyByYW5nZVRvU3RyKFdLQnVuZGxlUGFnZVJlZiBw
YWdlLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIHdvcmxkCiAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmROdW1iZXIoZW5kT2Zmc2V0KTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiBv
ZiAiKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChkdW1wUGF0aChjb250ZXh0LCBlbmROb2Rl
T2JqZWN0KSk7Ci0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gTmF2aWdhdGlvblR5cGVUb1N0cmluZyhXS0ZyYW1lTmF2aWdhdGlvblR5cGUgdHlwZSkKQEAg
LTE4NSw3ICsxODksOSBAQCBzdGF0aWMgV1RGOjpTdHJpbmcgc3R5bGVEZWNUb1N0cihXS0J1bmRs
ZUNTU1N0eWxlRGVjbGFyYXRpb25SZWYgc3R5bGUpCiAgICAgLy8gdGhlIGVkaXRpbmcgY2xpZW50
IGlmIHRoZSBzdHlsaW5nIG9wZXJhdGlvbiBzb3VyY2UgaXMgQ29tbWFuZEZyb21ET00gb3IgQ29t
bWFuZEZyb21ET01XaXRoVXNlckludGVyZmFjZS4KICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1
aWxkZXI7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8RE9NQ1NTU3R5bGVEZWNs
YXJhdGlvbiBBRERSRVNTPiIpOwotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgV1RGOjpTdHJpbmcg
c2VjdXJpdHlPcmlnaW5Ub1N0cihXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbikKQEAgLTE5OSw3
ICsyMDUsOSBAQCBzdGF0aWMgV1RGOjpTdHJpbmcgc2VjdXJpdHlPcmlnaW5Ub1N0cihXS1NlY3Vy
aXR5T3JpZ2luUmVmIG9yaWdpbikKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcihXS1Nl
Y3VyaXR5T3JpZ2luR2V0UG9ydChvcmlnaW4pKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgn
fScpOwogCi0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBXVEY6OlN0cmluZyBmcmFtZVRvU3RyKFdL
QnVuZGxlRnJhbWVSZWYgZnJhbWUpCkBAIC0yMjMsNyArMjMxLDkgQEAgc3RhdGljIFdURjo6U3Ry
aW5nIGZyYW1lVG9TdHIoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSkKICAgICAgICAgICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiZnJhbWUgKGFub255bW91cykiKTsKICAgICB9CiAgICAg
Ci0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0xvY2FsRmlsZVNjaGVtZShX
S1N0cmluZ1JlZiBzY2hlbWUpCkBAIC00NzYsNyArNDg2LDEwIEBAIHN0YXRpYyB2b2lkIGR1bXBM
b2FkRXZlbnQoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3QgY2hhciogZXZlbnROYW1lKQog
ICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIC0gIik7CiAgICAgc3RyaW5nQnVpbGRl
ci5hcHBlbmQoZXZlbnROYW1lKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAg
ICBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLm91dHB1dFRleHQoKnN0cmlu
Zyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQg
ZHVtcFJlcXVlc3REZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChXS1VSTFJlcXVlc3RS
ZWYgcmVxdWVzdCwgU3RyaW5nQnVpbGRlciYgc3RyaW5nQnVpbGRlcikKQEAgLTk0MCw3ICs5NTMs
MTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmR1bXAoKQogICAgICAgICAgICAgaW5qZWN0
ZWRCdW5kbGUuc2V0UmVwYWludFJlY3RzKGFkb3B0V0soV0tCdW5kbGVQYWdlQ29weVRyYWNrZWRS
ZXBhaW50UmVjdHMobV9wYWdlKSkuZ2V0KCkpOwogICAgIH0KIAotICAgIGluamVjdGVkQnVuZGxl
Lm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91
dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIGluamVj
dGVkQnVuZGxlLmRvbmUoKTsKIH0KIApAQCAtOTg4LDcgKzEwMDQsMTAgQEAgdm9pZCBJbmplY3Rl
ZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdLU3RyaW5nUmVmIHRpdGxlLCBX
S0J1bmRsZUZyYW0KICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCInXG4iKTsK
ICAgICB9CiAKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UK
KyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZENsZWFy
V2luZG93Rm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tCdW5kbGVTY3JpcHRXb3Js
ZFJlZiB3b3JsZCkKQEAgLTEwNDMsNyArMTA2MiwxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFn
ZTo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tC
dQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIC0gd2lsbFBlcmZvcm1DbGllbnRS
ZWRpcmVjdFRvVVJMOiAiKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChwYXRoU3VpdGFibGVG
b3JUZXN0UmVzdWx0KHVybCkpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIFxu
Iik7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAg
ICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRTYW1lRG9jdW1l
bnROYXZpZ2F0aW9uRm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tTYW1lRG9jdW1l
bnROYXZpZ2F0aW9uVHlwZSB0eXBlKQpAQCAtMTA3Nyw3ICsxMDk5LDEwIEBAIHZvaWQgSW5qZWN0
ZWRCdW5kbGVQYWdlOjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShXS0J1bmRsZUZyYW1l
UmVmIGZyYW1lKQogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiAtIGhhcyAi
KTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIocGVuZGluZ0ZyYW1lVW5sb2Fk
RXZlbnRzKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgb251bmxvYWQg
aGFuZGxlcihzKVxuIik7Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5n
QnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgq
c3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9CiAK
QEAgLTExNTAsNyArMTE3NSwxMCBAQCBXS1VSTFJlcXVlc3RSZWYgSW5qZWN0ZWRCdW5kbGVQYWdl
Ojp3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZQogICAgICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiByZWRpcmVjdFJlc3BvbnNlICIpOwogICAgICAg
ICBkdW1wUmVzcG9uc2VEZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChyZXNwb25zZSwg
c3RyaW5nQnVpbGRlciwgaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGREdW1wQWxs
SFRUUFJlZGlyZWN0ZWRSZXNwb25zZUhlYWRlcnMoKSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIu
YXBwZW5kKCdcbicpOwotICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0
cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAg
aWYgKGluamVjdGVkQnVuZGxlLmlzVGVzdFJ1bm5pbmcoKSAmJiBpbmplY3RlZEJ1bmRsZS50ZXN0
UnVubmVyKCktPndpbGxTZW5kUmVxdWVzdFJldHVybnNOdWxsKCkpCkBAIC0xMTg2LDcgKzEyMTQs
MTAgQEAgV0tVUkxSZXF1ZXN0UmVmIEluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFNlbmRSZXF1ZXN0
Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMICIpOwogICAgICAg
ICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQodG9XVEZTdHJpbmcodXJsU3RyaW5nKSk7CiAgICAg
ICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgICAgIGluamVjdGVk
QnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAg
ICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICAgICAgfQogICAgIH0KQEAgLTEyMTUsNyArMTI0NiwxMCBAQCB2b2lkIEluamVjdGVkQnVu
ZGxlUGFnZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmIHBh
Z2UsIFdLQgogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiAtIGRpZFJlY2Vp
dmVSZXNwb25zZSAiKTsKICAgICAgICAgZHVtcFJlc3BvbnNlRGVzY3JpcHRpb25TdWl0YWJsZUZv
clRlc3RSZXN1bHQocmVzcG9uc2UsIHN0cmluZ0J1aWxkZXIpOwogICAgICAgICBzdHJpbmdCdWls
ZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0
KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAog
CkBAIC0xMjM5LDcgKzEyNzMsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2Vp
dmVSZXNwb25zZUZvclJlc291cmNlKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0IKIAogICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwogCi0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4
dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmlu
Z0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgq
c3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRC
dW5kbGVQYWdlOjpkaWRSZWNlaXZlQ29udGVudExlbmd0aEZvclJlc291cmNlKFdLQnVuZGxlUGFn
ZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgdWludDY0X3QsIHVpbnQ2NF90KQpAQCAtMTI1OCw3ICsx
Mjk1LDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRGaW5pc2hMb2FkRm9yUmVzb3Vy
Y2UoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lCiAgICAgU3RyaW5nQnVpbGRlciBzdHJp
bmdCdWlsZGVyOwogICAgIGR1bXBSZXNvdXJjZVVSTChpZGVudGlmaWVyLCBzdHJpbmdCdWlsZGVy
KTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiAtIGRpZEZpbmlzaExvYWRpbmdc
biIpOwotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAg
ICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmFpbExvYWRG
b3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIHVpbnQ2NF90IGlk
ZW50aWZpZXIsIFdLRXJyb3JSZWYgZXJyb3IpCkBAIC0xMjc2LDcgKzEzMTYsMTAgQEAgdm9pZCBJ
bmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZhaWxMb2FkRm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVm
LCBXS0J1bmRsZUZyYW1lUmUKIAogICAgIGR1bXBFcnJvckRlc2NyaXB0aW9uU3VpdGFibGVGb3JU
ZXN0UmVzdWx0KGVycm9yLCBzdHJpbmdCdWlsZGVyKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
ZCgnXG4nKTsKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UK
KyAgICAgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZENh
Y2hlUmVzcG9uc2UoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCB1aW50NjRfdCBp
ZGVudGlmaWVyKQpAQCAtMTI5MSw3ICsxMzM0LDEwIEBAIGJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdl
OjpzaG91bGRDYWNoZVJlc3BvbnNlKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwK
ICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmROdW1iZXIoaWRlbnRpZmllcik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIg
LSB3aWxsQ2FjaGVSZXNwb25zZTogY2FsbGVkXG4iKTsKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRw
dXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
c3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRU
ZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIC8vIFRoZSBk
ZWZhdWx0IGJlaGF2aW9yIGlzIHRoZSBjYWNoZSB0aGUgcmVzcG9uc2UuCiAgICAgcmV0dXJuIHRy
dWU7CkBAIC0xMzM1LDcgKzEzODEsMTAgQEAgV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uIEluamVj
dGVkQnVuZGxlUGFnZTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS0IKICAgICAg
ICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgc2hvdWxkIG9wZW4gVVJMcyBleHRlcm5h
bGx5IC0gIik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKFdLQnVuZGxlTmF2aWdhdGlv
bkFjdGlvbkdldFNob3VsZE9wZW5FeHRlcm5hbFVSTHMobmF2aWdhdGlvbkFjdGlvbikgPyAieWVz
IiA6ICJubyIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAg
aW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIGlmICghaW5qZWN0ZWRCdW5kbGUudGVz
dFJ1bm5lcigpLT5pc1BvbGljeURlbGVnYXRlRW5hYmxlZCgpKQpAQCAtMTM2Myw3ICsxNDEyLDEw
IEBAIFdLQnVuZGxlUGFnZVBvbGljeUFjdGlvbiBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb24oV0tCCiAgICAgfQogCiAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmQoJ1xuJyk7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBl
bHNlCisgICAgICAgIENSQVNIKCk7CiAKICAgICBpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCkt
Pm5vdGlmeURvbmUoKTsKIApAQCAtMTM4NCw3ICsxNDM2LDEwIEBAIFdLQnVuZGxlUGFnZVBvbGlj
eUFjdGlvbiBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdLQnVu
ZGxlUGFnCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiUG9saWN5IGRlbGVn
YXRlOiByZXNvdXJjZSBpcyBhbiBhdHRhY2htZW50LCBzdWdnZXN0ZWQgZmlsZSBuYW1lIFwnIik7
CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5nKGZpbGVuYW1lKSk7CiAg
ICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCdcbiIpOwotICAgICAgICBJbmpl
Y3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgICAgICBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkub3V0cHV0VGV4dCgqc3Ry
aW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBy
ZXR1cm4gV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uUGFzc1Rocm91Z2g7CkBAIC0xNDc3LDEwICsx
NTMyLDEzIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsQWRkTWVzc2FnZVRvQ29uc29s
ZShXS1N0cmluZ1JlZiBtZXNzYWdlLCB1aW50MzJfdCBsCiAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmQobWVzc2FnZVN0cmluZyk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7CiAKLSAg
ICBpZiAoaW5qZWN0ZWRCdW5kbGUuZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyKCkpCi0gICAgICAg
IGluamVjdGVkQnVuZGxlLmR1bXBUb1N0ZEVycihzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOwot
ICAgIGVsc2UKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKSkgeworICAgICAgICBpZiAoaW5qZWN0ZWRCdW5kbGUuZHVtcEpTQ29uc29sZUxvZ0luU3Rk
RXJyKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5kdW1wVG9TdGRFcnIoKnN0cmluZyk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0
cmluZyk7CisgICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRC
dW5kbGVQYWdlOjp3aWxsU2V0U3RhdHVzYmFyVGV4dChXS1N0cmluZ1JlZiBzdGF0dXNiYXJUZXh0
KQpAQCAtMTQ5Niw3ICsxNTU0LDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsU2V0
U3RhdHVzYmFyVGV4dChXS1N0cmluZ1JlZiBzdGF0dXNiYXJUZXh0KQogICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiVUkgREVMRUdBVEUgU1RBVFVTIENBTExCQUNLOiBzZXRTdGF0dXNU
ZXh0OiIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5nKHN0YXR1c2JhclRl
eHQpKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBpbmplY3RlZEJ1bmRs
ZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5v
dXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9p
ZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxSdW5KYXZhU2NyaXB0QWxlcnQoV0tTdHJpbmdSZWYg
bWVzc2FnZSwgV0tCdW5kbGVGcmFtZVJlZikKQEAgLTE1MDksNyArMTU3MCwxMCBAQCB2b2lkIElu
amVjdGVkQnVuZGxlUGFnZTo6d2lsbFJ1bkphdmFTY3JpcHRBbGVydChXS1N0cmluZ1JlZiBtZXNz
YWdlLCBXS0J1bmRsZUZyYQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiQUxFUlQ6
ICIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5nKG1lc3NhZ2UpKTsKICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRU
ZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0
KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbmplY3Rl
ZEJ1bmRsZVBhZ2U6OndpbGxSdW5KYXZhU2NyaXB0Q29uZmlybShXS1N0cmluZ1JlZiBtZXNzYWdl
LCBXS0J1bmRsZUZyYW1lUmVmKQpAQCAtMTUyMiw3ICsxNTg2LDEwIEBAIHZvaWQgSW5qZWN0ZWRC
dW5kbGVQYWdlOjp3aWxsUnVuSmF2YVNjcmlwdENvbmZpcm0oV0tTdHJpbmdSZWYgbWVzc2FnZSwg
V0tCdW5kbGVGCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJDT05GSVJNOiAiKTsK
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhtZXNzYWdlKSk7CiAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChz
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3Ry
aW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5k
bGVQYWdlOjp3aWxsUnVuSmF2YVNjcmlwdFByb21wdChXS1N0cmluZ1JlZiBtZXNzYWdlLCBXS1N0
cmluZ1JlZiBkZWZhdWx0VmFsdWUsIFdLQnVuZGxlRnJhbWVSZWYpCkBAIC0xNTMzLDcgKzE2MDAs
MTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxSdW5KYXZhU2NyaXB0UHJvbXB0KFdL
U3RyaW5nUmVmIG1lc3NhZ2UsIFdLU3RyaW5nUmUKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExp
dGVyYWwoIiwgZGVmYXVsdCB0ZXh0OiAiKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dU
RlN0cmluZyhkZWZhdWx0VmFsdWUpKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsK
LSAgICBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLm91dHB1dFRleHQoKnN0
cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEluamVjdGVkQnVu
ZGxlUGFnZTo6ZGlkUmVhY2hBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV0tTZWN1cml0eU9y
aWdpblJlZiBvcmlnaW4sIGludDY0X3QgdG90YWxCeXRlc05lZWRlZCkKQEAgLTE1NTIsNyArMTYy
MiwxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVhY2hBcHBsaWNhdGlvbkNhY2hl
T3JpZ2luUXVvdGEoV0tTZWN1cml0eU9yaWdpblJlZgogICAgICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZExpdGVyYWwoIiB0b3RhbFNwYWNlTmVlZGVkOn4iKTsKICAgICAgICAgc3RyaW5nQnVpbGRl
ci5hcHBlbmROdW1iZXIodHJ1bmNhdGVkU3BhY2VOZWVkZWQpOwogICAgICAgICBzdHJpbmdCdWls
ZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0
KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAog
ICAgIGlmIChpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZERpc2FsbG93SW5jcmVh
c2VGb3JBcHBsaWNhdGlvbkNhY2hlUXVvdGEoKSkKQEAgLTE1NzIsNyArMTY0NSwxMCBAQCB1aW50
NjRfdCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEV4Y2VlZERhdGFiYXNlUXVvdGEoV0tTZWN1cml0
eU9yaWdpblJlZiBvcmlnaW4sCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
IGRhdGFiYXNlOiIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhk
YXRhYmFzZU5hbWUpKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAg
ICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsK
KyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICB1aW50NjRfdCBkZWZhdWx0UXVv
dGEgPSA1ICogMTAyNCAqIDEwMjQ7CkBAIC0xNTkxLDcgKzE2NjcsMTAgQEAgdWludDY0X3QgSW5q
ZWN0ZWRCdW5kbGVQYWdlOjpkaWRFeGNlZWREYXRhYmFzZVF1b3RhKFdLU2VjdXJpdHlPcmlnaW5S
ZWYgb3JpZ2luLAogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJVSSBE
RUxFR0FURSBEQVRBQkFTRSBDQUxMQkFDSzogaW5jcmVhc2VkIHF1b3RhIHRvICIpOwogICAgICAg
ICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIobmV3UXVvdGEpOwogICAgICAgICAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5v
dXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBpZiAoYXV0
byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgaW5q
ZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAgICAgfQogICAgIHJldHVybiBuZXdRdW90
YTsKQEAgLTE2NjUsNyArMTc0NCwxMCBAQCBib29sIEluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxk
QmVnaW5FZGl0aW5nKFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYgcmFuZ2UpCiAgICAgICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRURJVElORyBERUxFR0FURTogc2hvdWxkQmVnaW5FZGl0
aW5nSW5ET01SYW5nZToiKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQocmFuZ2VUb1N0
cihtX3BhZ2UsIG1fd29ybGQuZ2V0KCksIHJhbmdlKSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIu
YXBwZW5kKCdcbicpOwotICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0
cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIHJl
dHVybiBpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZEFsbG93RWRpdGluZygpOwog
fQpAQCAtMTY4MSw3ICsxNzYzLDEwIEBAIGJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRF
bmRFZGl0aW5nKFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYgcmFuZ2UpCiAgICAgICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRURJVElORyBERUxFR0FURTogc2hvdWxkRW5kRWRpdGluZ0lu
RE9NUmFuZ2U6Iik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHJhbmdlVG9TdHIobV9w
YWdlLCBtX3dvcmxkLmdldCgpLCByYW5nZSkpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
ZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICByZXR1cm4g
aW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGRBbGxvd0VkaXRpbmcoKTsKIH0KQEAg
LTE3MDcsNyArMTc5MiwxMCBAQCBib29sIEluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkSW5zZXJ0
Tm9kZShXS0J1bmRsZU5vZGVIYW5kbGVSZWYgbm9kZSwgV0tCdW5kbGVSYQogICAgICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiBnaXZlbkFjdGlvbjoiKTsKICAgICAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmQoaW5zZXJ0YWN0aW9uc3RyaW5nW2FjdGlvbl0pOwogICAgICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4
dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBz
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRw
dXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAg
IH0KICAgICByZXR1cm4gaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGRBbGxvd0Vk
aXRpbmcoKTsKIH0KQEAgLTE3MzMsNyArMTgyMSwxMCBAQCBib29sIEluamVjdGVkQnVuZGxlUGFn
ZTo6c2hvdWxkSW5zZXJ0VGV4dChXS1N0cmluZ1JlZiB0ZXh0LCBXS0J1bmRsZVJhbmdlSGFuZGxl
UgogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiBnaXZlbkFjdGlvbjoiKTsK
ICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoaW5zZXJ0YWN0aW9uc3RyaW5nW2FjdGlvbl0p
OwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRC
dW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAo
YXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmpl
Y3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBDUkFTSCgpOwogICAgIH0KICAgICByZXR1cm4gaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigp
LT5zaG91bGRBbGxvd0VkaXRpbmcoKTsKIH0KQEAgLTE3NDksNyArMTg0MCwxMCBAQCBib29sIElu
amVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkRGVsZXRlUmFuZ2UoV0tCdW5kbGVSYW5nZUhhbmRsZVJl
ZiByYW5nZSkKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJFRElUSU5HIERF
TEVHQVRFOiBzaG91bGREZWxldGVET01SYW5nZToiKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmQocmFuZ2VUb1N0cihtX3BhZ2UsIG1fd29ybGQuZ2V0KCksIHJhbmdlKSk7CiAgICAgICAg
IHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRw
dXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGluamVjdGVkQnVuZGxl
Lm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7
CiAgICAgfQogICAgIHJldHVybiBpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZEFs
bG93RWRpdGluZygpOwogfQpAQCAtMTc4MCw3ICsxODc0LDEwIEBAIGJvb2wgSW5qZWN0ZWRCdW5k
bGVQYWdlOjpzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYg
ZnJvbVJhCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIHN0aWxsU2VsZWN0
aW5nOiIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChib29sc3RyaW5nW3N0aWxsU2Vs
ZWN0aW5nXSk7IAogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAg
aW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICByZXR1cm4gaW5qZWN0ZWRCdW5kbGUudGVz
dFJ1bm5lcigpLT5zaG91bGRBbGxvd0VkaXRpbmcoKTsKIH0KQEAgLTE3OTgsNyArMTg5NSwxMCBA
QCBib29sIEluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkQXBwbHlTdHlsZShXS0J1bmRsZUNTU1N0
eWxlRGVjbGFyYXRpb25SZWYgc3R5bGUsCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiIHRvRWxlbWVudHNJbkRPTVJhbmdlOiIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZChyYW5nZVRvU3RyKG1fcGFnZSwgbV93b3JsZC5nZXQoKSwgcmFuZ2UpKTsKICAgICAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1
dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5n
ID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUu
b3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsK
ICAgICB9CiAgICAgcmV0dXJuIGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkQWxs
b3dFZGl0aW5nKCk7CiB9CkBAIC0xODE1LDcgKzE5MTUsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRs
ZVBhZ2U6OmRpZEJlZ2luRWRpdGluZyhXS1N0cmluZ1JlZiBub3RpZmljYXRpb25OYW1lKQogICAg
IHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRURJVElORyBERUxFR0FURTogd2ViVmlld0Rp
ZEJlZ2luRWRpdGluZzoiKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhu
b3RpZmljYXRpb25OYW1lKSk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAg
aW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5q
ZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNI
KCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRFbmRFZGl0aW5nKFdLU3RyaW5n
UmVmIG5vdGlmaWNhdGlvbk5hbWUpCkBAIC0xODMwLDcgKzE5MzMsMTAgQEAgdm9pZCBJbmplY3Rl
ZEJ1bmRsZVBhZ2U6OmRpZEVuZEVkaXRpbmcoV0tTdHJpbmdSZWYgbm90aWZpY2F0aW9uTmFtZSkK
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIkVESVRJTkcgREVMRUdBVEU6IHdlYlZp
ZXdEaWRFbmRFZGl0aW5nOiIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5n
KG5vdGlmaWNhdGlvbk5hbWUpKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAg
ICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBp
bmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JB
U0goKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZENoYW5nZShXS1N0cmluZ1Jl
ZiBub3RpZmljYXRpb25OYW1lKQpAQCAtMTg0NSw3ICsxOTUxLDEwIEBAIHZvaWQgSW5qZWN0ZWRC
dW5kbGVQYWdlOjpkaWRDaGFuZ2UoV0tTdHJpbmdSZWYgbm90aWZpY2F0aW9uTmFtZSkKICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIkVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRD
aGFuZ2U6Iik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQodG9XVEZTdHJpbmcobm90aWZpY2F0
aW9uTmFtZSkpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIGluamVjdGVk
QnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGluamVjdGVkQnVu
ZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQog
CiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2hhbmdlU2VsZWN0aW9uKFdLU3RyaW5nUmVm
IG5vdGlmaWNhdGlvbk5hbWUpCkBAIC0xODYwLDcgKzE5NjksMTAgQEAgdm9pZCBJbmplY3RlZEJ1
bmRsZVBhZ2U6OmRpZENoYW5nZVNlbGVjdGlvbihXS1N0cmluZ1JlZiBub3RpZmljYXRpb25OYW1l
KQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRURJVElORyBERUxFR0FURTogd2Vi
Vmlld0RpZENoYW5nZVNlbGVjdGlvbjoiKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dU
RlN0cmluZyhub3RpZmljYXRpb25OYW1lKSk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xu
Jyk7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAg
ICAgIENSQVNIKCk7CiB9CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRl
eCBlNjJlYjkzLi45MjY4ODQ5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTE2NzgsMTAgKzE2NzgsMTMgQEAgdm9p
ZCBUZXN0UnVubmVyOjpzdGF0aXN0aWNzRGlkUnVuVGVsZW1ldHJ5Q2FsbGJhY2sodW5zaWduZWQg
dG90YWxQcmV2YWxlbnRSZXNvdXIKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiwg
XCJ0b3AzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luc1wiIDogIik7CiAgICAgc3RyaW5nQnVp
bGRlci5hcHBlbmROdW1iZXIodG9wM1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbnMpOwogICAg
IHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIH0iKTsKKworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICBKU1ZhbHVlUmVmIHJlc3Vs
dCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmcoY29udGV4dCwgSlNTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoc3RyaW5nLT51dGY4KCkuZGF0YSgpKSk7CiAgICAgCi0gICAgSlNWYWx1ZVJl
ZiByZXN1bHQgPSBKU1ZhbHVlTWFrZUZyb21KU09OU3RyaW5nKGNvbnRleHQsIEpTU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgp
KSk7Ci0gICAgCi0gICAgY2FsbFRlc3RSdW5uZXJDYWxsYmFjayhTdGF0aXN0aWNzRGlkUnVuVGVs
ZW1ldHJ5Q2FsbGJhY2tJRCwgMSwgJnJlc3VsdCk7CisgICAgICAgIGNhbGxUZXN0UnVubmVyQ2Fs
bGJhY2soU3RhdGlzdGljc0RpZFJ1blRlbGVtZXRyeUNhbGxiYWNrSUQsIDEsICZyZXN1bHQpOwor
ICAgIH0gZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnN0YXRp
c3RpY3NOb3RpZnlPYnNlcnZlcigpCkBAIC0xODkxLDEwICsxODk0LDEzIEBAIHZvaWQgVGVzdFJ1
bm5lcjo6Y2FsbERpZFJlY2VpdmVBbGxTdG9yYWdlQWNjZXNzRW50cmllc0NhbGxiYWNrKFZlY3Rv
cjxTdHJpbmc+JiBkCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCIiKTsK
ICAgICB9CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJdIik7Ci0gICAgCi0gICAg
SlNWYWx1ZVJlZiByZXN1bHQgPSBKU1ZhbHVlTWFrZUZyb21KU09OU3RyaW5nKGNvbnRleHQsIEpT
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKS51dGY4
KCkuZGF0YSgpKSk7CiAKLSAgICBjYWxsVGVzdFJ1bm5lckNhbGxiYWNrKEFsbFN0b3JhZ2VBY2Nl
c3NFbnRyaWVzQ2FsbGJhY2tJRCwgMSwgJnJlc3VsdCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
c3RyaW5nQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIEpTVmFsdWVSZWYgcmVzdWx0ID0g
SlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmluZyhjb250ZXh0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZyhzdHJpbmctPnV0ZjgoKS5kYXRhKCkpKTsKKworICAgICAgICBjYWxsVGVzdFJ1bm5l
ckNhbGxiYWNrKEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzQ2FsbGJhY2tJRCwgMSwgJnJlc3VsdCk7
CisgICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKICNpZiBQTEFURk9STShNQUMpCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDY4YzQ5YzguLmYz
YmE3ZmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0x
ODgxLDcgKzE4ODEsMTAgQEAgV0tTdHJpbmdSZWYgVGVzdENvbnRyb2xsZXI6OmRlY2lkZURlc3Rp
bmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lKFdLQ29udGV4dFJlZiwKICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoIkRvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSBcIiIpOwog
ICAgICAgICBidWlsZGVyLmFwcGVuZChzdWdnZXN0ZWRGaWxlbmFtZSk7CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCJcIlxuIik7Ci0gICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPm91dHB1dFRl
eHQoYnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+b3V0cHV0VGV4
dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAK
ICAgICBjb25zdCBjaGFyKiBkdW1wUmVuZGVyVHJlZVRlbXAgPSBsaWJyYXJ5UGF0aEZvclRlc3Rp
bmcoKTsKQEAgLTE5MTEsNyArMTkxNCwxMCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpkb3dubG9h
ZERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdFRvVVJMKFdLQ29udGV4dFJlZiwgV0tEb3dubAogICAg
ICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gdXJsU3RyaW5nV0sgPSBhZG9wdFdLKFdLVVJM
Q29weVN0cmluZyh1cmwpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQodG9TVEQodXJsU3RyaW5n
V0spLmNfc3RyKCkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlwiLlxuIik7Ci0g
ICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPm91dHB1dFRleHQoYnVpbGRlci50b1N0cmluZygp
KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+b3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9CiAKQEAgLTE5MzQsNyArMTk0MCwx
MCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZEZhaWwoV0tDb250ZXh0UmVmLCBX
S0Rvd25sb2FkUmVmLCBXS0Vycm9yUmVmIGVycgogICAgICAgICBlcnJvckJ1aWxkZXIuYXBwZW5k
KHRvV1RGU3RyaW5nKGVycm9yRGVzY3JpcHRpb24pKTsKICAgICAgICAgZXJyb3JCdWlsZGVyLmFw
cGVuZCgiXG4iKTsKIAotICAgICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KGVy
cm9yQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZXJyb3JC
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRw
dXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAg
IH0KICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5ub3RpZnlEb3dubG9hZERvbmUoKTsKIH0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggY2Q1ZGIwYS4uZWUy
ZjU1MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5j
cHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTI0
OCw5ICsyNDgsMTIgQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6Zm9yY2VSZXBhaW50RG9uZUNhbGxi
YWNrKFdLRXJyb3JSZWYgZXJyb3IsIHZvaWQqIGNvbnRleHQpCiAKIHZvaWQgVGVzdEludm9jYXRp
b246OmR1bXBSZXN1bHRzKCkKIHsKLSAgICBpZiAobV90ZXh0T3V0cHV0Lmxlbmd0aCgpIHx8ICFt
X2F1ZGlvUmVzdWx0KQotICAgICAgICBkdW1wKG1fdGV4dE91dHB1dC50b1N0cmluZygpLnV0Zjgo
KS5kYXRhKCkpOwotICAgIGVsc2UKKyAgICBpZiAobV90ZXh0T3V0cHV0Lmxlbmd0aCgpIHx8ICFt
X2F1ZGlvUmVzdWx0KSB7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IG1fdGV4dE91dHB1dC50
b1N0cmluZygpKQorICAgICAgICAgICAgZHVtcChzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOworICAgIH0gZWxzZQogICAgICAgICBkdW1w
QXVkaW8obV9hdWRpb1Jlc3VsdC5nZXQoKSk7CiAKICAgICBpZiAobV9kdW1wUGl4ZWxzKSB7Ci0t
IAoyLjkuMwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339227</attachid>
            <date>2018-05-01 15:02:48 -0700</date>
            <delta_ts>2018-05-01 15:35:43 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Teach-StringBuilder-that-it-is-fallible.patch</filename>
            <type>text/plain</type>
            <size>479101</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSA3ZmRhYTY0OTg5NzJmNzM0ZGU2MTk3YjgwZjE0ZGNhZWY0NDQ4YjEwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBXZWQsIDI1IEFwciAyMDE4IDIxOjUwOjI0IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gVGVhY2gg
U3RyaW5nQnVpbGRlciB0aGF0IGl0IGlzIGZhbGxpYmxlCgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcCAgICAgICAgIHwgICA0ICstCiAuLi4vQVBJL3Rlc3Rz
L0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwICAgICAgICAgICB8IDMxMCArKysrKysrLS0tLS0t
CiAuLi4vQVBJL3Rlc3RzL1BpbmdQb25nU3RhY2tPdmVyZmxvd1Rlc3QuY3BwICAgICAgICB8ICAg
OSArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
fCAgOTUgKysrKwogLi4uL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCAgICAgICAg
ICAgICAgfCAgMTcgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBTbmFwc2hvdEJ1
aWxkZXIuY3BwIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNv
bGVNZXNzYWdlLmNwcCB8ICAxMyArLQogLi4uL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0
aWVzLmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9JbnRlcnByZXRlci5jcHAgIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcCB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAgICAgICAgICAgICAgICAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwICAgICAgIHwgICA5ICstCiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcCAgICB8ICAxNSArLQogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwICAgfCAgIDQgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwICAgIHwgICA0ICstCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcCB8ICAgNCAr
LQogLi4uL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgfCAg
MzQgKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAg
IHwgICA2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcCAg
ICAgICB8ICAxOCArLQogLi4uL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwICAg
ICAgICAgICAgfCAgMjEgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmpl
Y3QuY3BwICAgICAgIHwgIDE4ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRl
cmFsUGFyc2VyLmNwcCAgICB8ICAxMCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3B0aW9ucy5jcHAgICAgICAgICAgfCAgMTAgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAgIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcCB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAgICAgICAgfCAgIDQgKy0KIC4uLi9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcCAgIHwgICA0ICstCiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwICB8ICAgNCArLQogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmNwcCAgICAgfCAgIDYgKy0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVTZXQuY3BwICAgICAgICAgIHwgIDIzICst
CiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAgICAgICAgICAgICAgICB8ICAy
MCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcCAg
fCAgIDkgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcCAgICAg
ICAgIHwgICA3ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmggICAg
ICAgICAgICB8ICAzMCArLQogU291cmNlL1dURi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAxNDMgKysrKysrCiBTb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcCAg
ICAgICAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3Bw
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XVEYvd3RmL0pTT05WYWx1
ZXMuY3BwICAgICAgICAgICAgICAgICAgICAgIHwgIDExICstCiBTb3VyY2UvV1RGL3d0Zi9Mb2dn
ZXIuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMSArLQogU291cmNlL1dURi93dGYv
TWVkaWFUaW1lLmNwcCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XVEYv
d3RmL1VVSUQuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuY3BwICAgICAgICAgICAgICB8IDI2NSArKysrKyst
LS0tLQogU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmggICAgICAgICAgICAgICAg
fCAyOTcgKysrKysrLS0tLS0tCiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXJKU09O
LmNwcCAgICAgICAgICB8ICAzMSArLQogU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNw
cCAgICAgICAgICAgICAgICAgfCAgMzQgKy0KIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1w
bC5oICAgICAgICAgICAgICAgICAgIHwgIDE4ICstCiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRT
dHJlYW0uY3BwICAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA1MTAgKysrKysrKysrKysrKysrKysrKysr
CiAuLi4vTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50Q29udGFjdENvY29hLm1tICB8ICAg
NSArLQogLi4uL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24u
Y3BwIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRh
LmNwcCAgICB8ICAxNSArLQogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5
UGF0aC5jcHAgICAgfCAgIDQgKy0KIC4uLi9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSW5kZXhW
YWx1ZVN0b3JlLmNwcCAgIHwgICA0ICstCiAuLi4vTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NR
TGl0ZUlEQkN1cnNvci5jcHAgICB8ICAgOCArLQogLi4uL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JREJEYXRhYmFzZUluZm8uY3BwICAgfCAgIDQgKy0KIC4uLi9pbmRleGVkZGIvc2hhcmVkL0lE
Qk9iamVjdFN0b3JlSW5mby5jcHAgICAgICAgIHwgICA0ICstCiAuLi4vbWVkaWFzZXNzaW9uL1dl
Yk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwICAgICAgICB8ICAgOCArLQogLi4uL01vZHVsZXMvbWVk
aWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCAgfCAgIDggKy0KIC4uLi9Nb2R1bGVz
L3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcCAgIHwgICA0ICstCiAuLi4vTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwICAgICAgICB8ICAgNCArLQogU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAgICAgfCAgIDggKy0K
IC4uLi93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwICAgIHwgICA4
ICstCiAuLi4vTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAgICAgICB8
ICAyMyArLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwICAg
ICAgfCAgMTggKy0KIC4uLi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5jcHAgIHwgIDEwICstCiAuLi4vbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFj
Lm1tICAgICAgICB8ICAxMSArLQogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252
ZXJ0U3RyaW5ncy5jcHAgfCAgIDQgKy0KIC4uLi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhj
ZXB0aW9uSGFuZGxpbmcuY3BwIHwgIDE2ICstCiAuLi4vY29udGVudGV4dGVuc2lvbnMvQ29tYmlu
ZWRVUkxGaWx0ZXJzLmNwcCAgICAgICB8ICAgNCArLQogLi4uL1dlYkNvcmUvY29udGVudGV4dGVu
c2lvbnMvQ29udGVudEV4dGVuc2lvbi5jcHAgfCAgIDcgKy0KIC4uLi9jb250ZW50ZXh0ZW5zaW9u
cy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwIHwgICA1ICstCiAuLi4vQ29udGVudEV4dGVu
c2lvblN0eWxlU2hlZXQuY3BwICAgICAgICAgICAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNv
cmUvY29udGVudGV4dGVuc2lvbnMvVGVybS5oICAgICAgICAgICAgfCAgIDggKy0KIC4uLi9XZWJD
b3JlL2Nzcy9DU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuY3BwIHwgICA0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQmFzaWNTaGFwZXMuY3BwICAgICAgICAgICAgICB8ICAyMCArLQog
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwICAgICAgICAgfCAgIDgg
Ky0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwICAgICAgICAg
ICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwICAg
ICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXN0b21JZGVudFZhbHVlLmNw
cCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1
ZS5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVs
ZS5jcHAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFj
ZVNyY1ZhbHVlLmNwcCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dEZlYXR1cmVWYWx1ZS5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ZvbnRTdHlsZVJhbmdlVmFsdWUuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250U3R5bGVWYWx1ZS5jcHAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRm9udFZhbHVlLmNwcCAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHAgICAgICAgfCAgIDQgKy0KIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGdW5jdGlvblZhbHVlLmNwcCAgICAgICAgICAgIHwgICA0ICstCiBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAgICAgICAgICAgICB8ICAxMiAr
LQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRBdXRvUmVwZWF0VmFsdWUuY3BwICAgICAgfCAg
IDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcCAg
IHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAgICAgICAg
ICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUuY3BwICAgICAg
ICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZVJ1bGUuY3Bw
ICAgICAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVzUnVs
ZS5jcHAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0xpbmVCb3hD
b250YWluVmFsdWUuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNYXJr
dXAuY3BwICAgICAgICAgICAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
TWVkaWFSdWxlLmNwcCAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3Nz
L0NTU05hbWVzcGFjZVJ1bGUuY3BwICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYWdlUnVsZS5jcHAgICAgICAgICAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwICAgICAgICAgICB8ICAxMiArLQogU291cmNl
L1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5U291cmNlRGF0YS5jcHAgICAgICAgfCAgIDQgKy0KIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAgICAgICAgICAgICAgICAgIHwgIDE3ICst
CiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0LmNwcCAgICAgICAgICAgICB8ICAg
NCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU1NoYWRvd1ZhbHVlLmNwcCAgICAgICAgICAgICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUuY3BwICAgICAgICAgICAg
ICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAgICAgICAg
ICAgICAgICB8ICAgOSArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1cHBvcnRzUnVsZS5jcHAg
ICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUaW1pbmdGdW5jdGlv
blZhbHVlLmNwcCAgICAgIHwgIDE2ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0
LmNwcCAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU1Zhcmlh
YmxlRGF0YS5jcHAgICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9ET01D
U1NOYW1lc3BhY2UuY3BwICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3Mv
RE9NTWF0cml4UmVhZE9ubHkuY3BwICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUv
Y3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJD
b3JlL2Nzcy9Gb250RmFjZS5jcHAgICAgICAgICAgICAgICAgICAgIHwgIDEyICstCiBTb3VyY2Uv
V2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcCAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogU291
cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwICAgICAgICAgICAgICAgICAgfCAgIDQgKy0K
IFNvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAgICAgICAgIHwgICA1
ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvUmVjdC5oICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAgICAgICAgICAg
ICAgfCAgMzAgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwICAgICAg
ICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxl
LmNwcCAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIu
Y3BwICAgICAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFy
c2VyVG9rZW4uY3BwICAgICAgIHwgIDg3ICsrLS0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUGFyc2VyVG9rZW5SYW5nZS5jcHAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcCAgICB8ICAyNyArLQogU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NUb2tlbml6ZXIuY3BwICAgICAgICAgfCAgMzggKy0KIFNvdXJjZS9XZWJDb3Jl
L2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAgICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQogU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuY3BwICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjIgKy0KIFNv
dXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAgICAgICAgICAgICAgICAgICAgIHwgICA1ICst
CiBTb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwICAgICAgICAgICAgICAgICAgICAgICB8ICAg
OSArLQogU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRleHQuY3BwICAgICAgICAg
ICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgOSArLQogU291cmNlL1dlYkNvcmUvZG9tL1RleHROb2RlVHJhdmVyc2FsLmNw
cCAgICAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNv
bW1hbmQuY3BwICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcu
Y3BwICAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9IVE1M
SW50ZXJjaGFuZ2UuY3BwICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
TWFya3VwQWNjdW11bGF0b3IuY3BwICAgICAgIHwgIDE3ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1RleHRJdGVyYXRvci5jcHAgICAgICAgICAgICB8ICAxMSArLQogU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAgICAgICAgIHwgICA1ICstCiBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0gICAgICB8ICAgOCArLQogU291
cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tICAgICAgfCAgIDUgKy0K
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbSAgICAgICAgICAgIHwgICA1
ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAgICAgICAgICAgICAgICAgICB8
ICAyNyArLQogU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcCAgICAg
ICAgfCAgMjQgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcCAgICAgICAg
ICAgICAgIHwgICA5ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcCAg
ICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNw
cCAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xs
ZXIuY3BwICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNo
b3JFbGVtZW50LmNwcCAgICAgICAgICB8ICAxMiArLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5jcHAgICAgICAgICAgfCAgMjEgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZvbnRFbGVtZW50LmNwcCAgICAgICAgICAgIHwgICA3ICstCiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCAgICAgICAgICAgfCAgIDkgKy0KIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwICAgICAgICAgIHwgICA0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCB8ICAxMiArLQog
U291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcCAgICAgICAgICAgICAgfCAgIDUg
Ky0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAgICAgICAgIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRnJhZ21lbnRVUklQYXJzZXIuY3BwICAg
ICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3BwICAgICAgICAgICAg
ICAgICAgfCAgMTQgKy0KIC4uLi9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
Y3BwICAgICAgIHwgICA0ICstCiAuLi4vaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQmFzZS5jcHAgICB8ICAgNyArLQogLi4uL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxTb3VyY2VUcmFja2VyLmNwcCAgIHwgICA3ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MVG9rZW5pemVyLmNwcCAgICAgICB8ICAxMiArLQogU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcCAgICAgfCAgMjcgKy0KIFNvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL0J1ZmZlcmVkTGluZVJlYWRlci5jcHAgICB8ICAgOCArLQogU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcCAgICAgICAgICAgICAgIHwgICA2ICstCiBT
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAgICAgICAgICB8ICAgNSAr
LQogU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3BwICAgICAgfCAg
NjMgKystCiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAg
ICB8ICAxNyArLQogLi4uL2FnZW50cy9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3Bw
ICAgICAgfCAgMTMgKy0KIC4uLi9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2Vu
dC5jcHAgICAgIHwgICA3ICstCiAuLi4vV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkNvbnNv
bGVBZ2VudC5jcHAgICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2lu
QWNjZXNzQ29udHJvbC5jcHAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzLmNwcCAgIHwgICA0ICstCiAuLi4vbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVTdG9yYWdlLmNwcCAgICB8ICAyNSArLQogLi4uL1dlYkNvcmUvbG9hZGVyL2Fy
Y2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAgfCAgMjUgKy0KIC4uLi9XZWJDb3JlL2xvYWRl
ci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHAgIHwgIDM0ICstCiAuLi4vV2ViQ29yZS9w
YWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcCB8ICA2NCArKy0KIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAgICAgICAgICAgICAgICAgICB8ICAgNCArLQog
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwICAgICAgICAgICAgICAgICAgfCAgIDUg
Ky0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwICAgICAgICAgICAgIHwg
ICA3ICstCiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5jcHAg
ICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuY3BwICAg
ICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RUcmlnZ2Vy
LmNwcCAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJp
dHlQb2xpY3kuY3BwICB8ICAgOSArLQogLi4uL3BhZ2Uvc2Nyb2xsaW5nL0F4aXNTY3JvbGxTbmFw
T2Zmc2V0cy5jcHAgICAgICAgfCAgIDggKy0KIC4uLi9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdD
b29yZGluYXRvci5jcHAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9E
ZWNpbWFsLmNwcCAgICAgICAgICAgICAgICB8ICAxMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRmlsZVN5c3RlbS5jcHAgICAgICAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BPREludGVydmFsLmggICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QT0RSZWRCbGFja1RyZWUuaCAgICAgICAgICB8ICAgNSArLQogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVVJMLmNwcCAgICAgICAgICAgICAgICAgICAgfCAgMTggKy0KIC4uLi9X
ZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5jcHAgIHwgICA1ICstCiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcCAgICB8ICAgNCAr
LQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9Vc2VyQWdlbnRHTGliLmNwcCAgICAgfCAg
IDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcCAgICAgICAg
IHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9y
LmNwcCB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2Nh
ZGUuY3BwICAgfCAgIDQgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9Gb250VGFnZ2VkU2V0dGlu
Z3MuY3BwICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0xheWVyLmNwcCB8ICAgNCArLQogLi4uL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQVZGLmNwcCAgICAgfCAgMTMgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9jYS9U
aWxlQ29udHJvbGxlci5jcHAgICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9UaWxlR3JpZC5jcHAgICB8ICAgNCArLQogLi4uL2dyYXBoaWNzL2NhL3dp
bi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwICAgICAgICAgfCAgIDQgKy0KIC4uLi9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAgIHwgIDEwICstCiAuLi4vb3Blbmds
L0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcCAgICAgICB8ICAxMSArLQogLi4uL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAgfCAgMTUgKy0KIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWxlY3Rpb25EYXRhLmNwcCAgICAgIHwgICA1ICst
CiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSAgICAgICB8ICAg
NCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbSAgICAg
fCAgIDYgKy0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Nyb2xsQW5pbWF0b3JNb2NrLmNw
cCAgIHwgIDE1ICstCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tC
b3guY3BwICB8ICAgOSArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFy
c2Vycy5jcHAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTUlN
RUhlYWRlci5jcHAgICAgIHwgIDEzICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Byb3h5U2VydmVyLmNwcCAgICB8ICAgNCArLQogLi4uL25ldHdvcmsvY3VybC9Db29raWVKYXJD
dXJsRGF0YWJhc2UuY3BwICAgICAgICAgfCAgIDQgKy0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL0Nvb2tpZUphck1hYy5tbSAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5jcHAgICAgfCAgMjYgKy0KIC4uLi9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmggIHwgICA4ICstCiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxlLmNwcCAgICB8ICAyMCArLQogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwICAgfCAgIDQgKy0K
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcCAgICAgIHwgIDEz
ICstCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VzZXJEZWZpbmVkLmNwcCB8
ICAgNCArLQogLi4uL3BsYXRmb3JtL3ZyL29wZW52ci9WUlBsYXRmb3JtRGlzcGxheU9wZW5WUi5j
cHAgfCAgIDUgKy0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNX
aW4uY3BwIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vVXNlckFnZW50V2lu
LmNwcCAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRo
ZW1lV1BFLmNwcCAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5
cGUuY3BwICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcCAgICAgIHwgICA5ICstCiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAgICAgICAgICAgICB8ICAyMyArLQogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lR3RrLmNwcCAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbSAgICAgICAgIHwgIDEwICstCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwICAgICAgICB8ICAgNSArLQog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwICAgICAgfCAgIDgg
Ky0KIC4uLi9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5jcHAgICAgICAgIHwg
ICA1ICstCiAuLi4vcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTWF0aE1MLmNw
cCB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3BwICAg
ICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmNw
cCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFN0cmluZ0J1aWxk
ZXIuY3BwICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRp
ZXMuY3BwICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExp
c3RWYWx1ZXMuY3BwICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3Ry
aW5nTGlzdFZhbHVlcy5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RyYW5zZm9ybUxpc3RWYWx1ZXMuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5jcHAgICAgICAgICAgIHwgIDIwICstCiBTb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oICB8ICAgOCArLQogU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwICAgICAgICAgICAgICAgfCAgNjQgKy0tCiBTb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAgICB8ICAxMCArLQog
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwICAgICAgfCAgIDQg
Ky0KIFNvdXJjZS9XZWJDb3JlL3htbC9YTUxFcnJvcnMuY3BwICAgICAgICAgICAgICAgICAgIHwg
ICA3ICstCiBTb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwICAgICAgICAgICAg
ICB8ICAxNSArLQogU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmggICAgICAgICAg
ICAgICAgfCAgIDcgKy0KIFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEZ1bmN0aW9ucy5jcHAgICAg
ICAgICAgICAgIHwgIDIxICstCiBTb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhz
bHQuY3BwICAgICAgICB8ICAxNCArLQogLi4uL3htbC9wYXJzZXIvQ2hhcmFjdGVyUmVmZXJlbmNl
UGFyc2VySW5saW5lcy5oICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbkhvc3Qu
Y3BwICAgICAgICAgICAgICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0OSArKwogLi4uL05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAgICAgfCAgIDQgKy0KIC4uLi9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcCAgIHwgIDE4ICstCiAuLi4vTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlS2V5LmNwcCAgICAgICB8ICAgNCArLQogLi4uL2NhcHR1
cmUvTmV0d29ya0NhcHR1cmVNYW5hZ2VyLmNwcCAgICAgICAgICAgICAgfCAgIDYgKy0KIC4uLi9O
ZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHAgICAgIHwgICA0ICstCiAu
Li4vU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIvSURCVXRpbGl0aWVzLmNwcCAgICB8ICAgNCAr
LQogU291cmNlL1dlYktpdC9TaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5jcHAgICAgICAgfCAg
IDQgKy0KIC4uLi9OZXRzY2FwZS91bml4L05ldHNjYXBlUGx1Z2luTW9kdWxlVW5peC5jcHAgICAg
IHwgICA0ICstCiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcCAgICAg
ICAgICB8ICAgNyArLQogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJTY3JpcHQu
Y3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVc2VyU3R5
bGVTaGVldC5jcHAgIHwgICA0ICstCiAuLi4vVUlQcm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29u
dHJvbGxlci5jcHAgICAgICB8ICAgNiArLQogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQmFj
a0ZvcndhcmRMaXN0LmNwcCAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcCAgICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwICAgICAgICB8ICAgNSArLQogLi4uL1VJUHJvY2Vzcy9XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwICAgfCAgMjAgKy0KIC4uLi9XZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5LmNwcCAgICAgICAgIHwgIDMzICstCiAuLi4vUGx1Z2lu
cy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAgICAgICB8ICAgNCArLQogU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgICAgfCAgIDQgKy0KIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcCAgICAgIHwgICA0ICst
CiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICB8ICAx
MiArCiAuLi4vbWFjL1dlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tICAgICAgICAgICB8
ICAgNSArLQogU291cmNlL1dlYktpdExlZ2FjeS93aW4vQWNjZXNzaWJsZUJhc2UuY3BwICAgICAg
ICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1BsdWdpbnMvUGx1Z2luU3RyZWFt
LmNwcCAgIHwgICA1ICstCiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJLaXRTdGF0aXN0aWNz
LmNwcCAgICAgICB8ICAgNyArLQogVG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgNzggKysrKwogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
Q3Jvc3NUaHJlYWRUYXNrLmNwcCAgfCAgIDQgKy0KIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1N0cmluZ0J1aWxkZXIuY3BwICAgIHwgIDkyICsrLS0KIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwICAgICAgIHwgIDgwICsrLS0KIC4uLi9UZXN0cy9XZWJD
b3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcCAgICAgICAgICAgIHwgIDg2ICsrLS0KIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAgIHwgIDM3ICstCiBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTG9nZ2luZy5jcHAgICAgICB8ICAzMCArLQog
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1RleHRDb2RlYy5jcHAgICAgfCAgIDQg
Ky0KIFRvb2xzL1Rlc3RXZWJLaXRBUEkvV1RGU3RyaW5nVXRpbGl0aWVzLmggICAgICAgICAgIHwg
ICA0ICstCiAuLi4vSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCAgICAgICAg
ICB8IDE5NiArKysrKystLQogLi4uL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHAgfCAgMTggKy0KIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwICAgICAgICAgIHwgIDE1ICstCiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcCAgICAgICAgICB8ICAgOSArLQogMzA3IGZpbGVzIGNoYW5nZWQsIDM2NDkgaW5z
ZXJ0aW9ucygrKSwgMTMzMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTQ29udGV4dFJlZi5jcHAKaW5kZXggMDI1ZWJhNC4uNWVkZjY4MSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcApAQCAtMzE0LDcgKzMxNCw5IEBAIEpTU3Ry
aW5nUmVmIEpTQ29udGV4dENyZWF0ZUJhY2t0cmFjZShKU0NvbnRleHRSZWYgY3R4LCB1bnNpZ25l
ZCBtYXhTdGFja1NpemUpCiAgICAgQmFja3RyYWNlRnVuY3RvciBmdW5jdG9yKGJ1aWxkZXIsIG1h
eFN0YWNrU2l6ZSk7CiAgICAgZnJhbWUtPml0ZXJhdGUoZnVuY3Rvcik7CiAKLSAgICByZXR1cm4g
T3BhcXVlSlNTdHJpbmc6OmNyZWF0ZShidWlsZGVyLnRvU3RyaW5nKCkpLmxlYWtSZWYoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBP
cGFxdWVKU1N0cmluZzo6Y3JlYXRlKCpzdHJpbmcpLmxlYWtSZWYoKTsKKyAgICBDUkFTSCgpOwog
fQogCiBib29sIEpTR2xvYmFsQ29udGV4dEdldFJlbW90ZUluc3BlY3Rpb25FbmFibGVkKEpTR2xv
YmFsQ29udGV4dFJlZiBjdHgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L3Rlc3RzL0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS90ZXN0cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcAppbmRleCA2MzdiMzA0Li4xNjUy
ODM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0V4ZWN1dGlv
blRpbWVMaW1pdFRlc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMv
RXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAKQEAgLTE5NCwyMiArMTk0LDI1IEBAIGludCB0ZXN0
RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTnVt
YmVyKHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkLnNlY29uZHMoKSk7CiAgICAgICAg
ICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoIikgYnJlYWs7IH0gfSBmb28oKTsiKTsK
IAotICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoc2NyaXB0QnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAg
ICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKLSAgICAgICAgICAgIHNob3VsZFRlcm1pbmF0ZUNh
bGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQ
VVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLSAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQo
Y29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKLSAgICAg
ICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLQotICAg
ICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCB0aW1lQWZ0ZXJXYXRjaGRvZ1No
b3VsZEhhdmVGaXJlZCkgJiYgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCi0gICAg
ICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiAlcyBzY3JpcHQgdGltZWQgb3V0IGFzIGV4cGVjdGVk
LlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAg
ICAgICBpZiAoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxk
SGF2ZUZpcmVkKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCBk
aWQgbm90IHRpbWUgb3V0IGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAg
ICAgICAgICAgICAgaWYgKCFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKLSAgICAg
ICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgdGltZW91dCBjYWxsYmFjayB3
YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgICAgIGZh
aWxlZCA9IHRydWU7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBKU1N0cmluZ1Jl
ZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmctPnV0ZjgoKS5k
YXRhKCkpOworICAgICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7CisgICAgICAgICAg
ICAgICAgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICAgICAg
ICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAg
ICAgICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwg
bnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgYXV0byBlbmRUaW1lID0g
Q1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworCisgICAgICAgICAgICAgICAgaWYgKCgoZW5k
VGltZSAtIHN0YXJ0VGltZSkgPCB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgJiYg
c2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCisgICAgICAgICAgICAgICAgICAgIHBy
aW50ZigiUEFTUzogJXMgc2NyaXB0IHRpbWVkIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRp
b25zLnRpZXIpOworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBp
ZiAoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZp
cmVkKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgZGlk
IG5vdCB0aW1lIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAg
ICAgICAgICAgICAgICBpZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQorICAg
ICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgdGltZW91dCBjYWxs
YmFjayB3YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAg
ICAgICAgICBmYWlsZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAg
IGlmICghZXhjZXB0aW9uKSB7CiAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBUZXJt
aW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uIHdhcyBub3QgdGhyb3duLlxuIiwgdGllck9wdGlvbnMu
dGllcik7CkBAIC0yMzcsMjIgKzI0MCwyNSBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgp
CiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiAgICByZXR1cm4gcmVj
dXJzZShpICsgMSk7IH0iKTsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgicmVjdXJzZSgwKTsiKTsKIAotICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNT
dHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc2NyaXB0QnVpbGRlci50b1N0cmluZygpLnV0Zjgo
KS5kYXRhKCkpOwotICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKLSAgICAgICAgICAg
IHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBh
dXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLSAgICAgICAgICAg
IEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAm
ZXhjZXB0aW9uKTsKLSAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRpbWU6OmZvckN1cnJl
bnRUaHJlYWQoKTsKLQotICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCB0
aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgJiYgc2hvdWxkVGVybWluYXRlQ2FsbGJh
Y2tXYXNDYWxsZWQpCi0gICAgICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiAlcyBzY3JpcHQgd2l0
aCBpbmZpbml0ZSB0YWlsIGNhbGxzIHRpbWVkIG91dCBhcyBleHBlY3RlZCAuXG4iLCB0aWVyT3B0
aW9ucy50aWVyKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGlmICgoZW5k
VGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpCi0g
ICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHdpdGggaW5maW5pdGUg
dGFpbCBjYWxscyBkaWQgbm90IHRpbWUgb3V0IGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMu
dGllcik7Ci0gICAgICAgICAgICAgICAgaWYgKCFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0Nh
bGxlZCkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgd2l0aCBp
bmZpbml0ZSB0YWlsIGNhbGxzJyB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIiwg
dGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKLSAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHNjcmlwdEJ1aWxkZXIudG9T
dHJpbmcoKSkgeworICAgICAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAg
ICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBzaG91bGRUZXJtaW5h
dGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOworICAgICAgICAgICAgICAgIGF1dG8gc3RhcnRU
aW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAgICAgICAgICAgIEpTRXZh
bHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0
aW9uKTsKKyAgICAgICAgICAgICAgICBhdXRvIGVuZFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50
VGhyZWFkKCk7CisKKyAgICAgICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8
IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiBzaG91bGRUZXJtaW5hdGVDYWxs
YmFja1dhc0NhbGxlZCkKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiAlcyBzY3Jp
cHQgd2l0aCBpbmZpbml0ZSB0YWlsIGNhbGxzIHRpbWVkIG91dCBhcyBleHBlY3RlZCAuXG4iLCB0
aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3Vs
ZEhhdmVGaXJlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2Ny
aXB0IHdpdGggaW5maW5pdGUgdGFpbCBjYWxscyBkaWQgbm90IHRpbWUgb3V0IGFzIGV4cGVjdGVk
LlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAgIGlmICghc2hvdWxk
VGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCisgICAgICAgICAgICAgICAgICAgICAgICBwcmlu
dGYoIkZBSUw6ICVzIHNjcmlwdCB3aXRoIGluZmluaXRlIHRhaWwgY2FsbHMnIHRpbWVvdXQgY2Fs
bGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAg
ICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgCiAgICAgICAgICAg
ICBpZiAoIWV4Y2VwdGlvbikgewogICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgVGVy
bWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbiB3YXMgbm90IHRocm93bi5cbiIsIHRpZXJPcHRpb25z
LnRpZXIpOwpAQCAtMjczLDIxICsyNzksMjQgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQo
KQogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmROdW1iZXIodGltZUFmdGVyV2F0Y2hk
b2dTaG91bGRIYXZlRmlyZWQuc2Vjb25kcygpKTsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiKSBicmVhazsgfSB9IGNhdGNoKGUpIHsgfSB9IGZvbygpOyIpOwogCi0g
ICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZyhzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAg
ICBleGNlcHRpb24gPSBudWxscHRyOwotICAgICAgICAgICAgc2hvdWxkVGVybWluYXRlQ2FsbGJh
Y2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHNjcmlw
dEJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlw
dCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7
CisgICAgICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBz
aG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOwogCi0gICAgICAgICAgICBh
dXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLSAgICAgICAgICAg
IEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAm
ZXhjZXB0aW9uKTsKLSAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRpbWU6OmZvckN1cnJl
bnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZv
ckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRl
eHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7CisgICAgICAgICAg
ICAgICAgYXV0byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwogICAgICAg
ICAgICAgCi0gICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0
ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgfHwgIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2Fz
Q2FsbGVkKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCEoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwg
dGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpKQotICAgICAgICAgICAgICAgICAgICBw
cmludGYoIkZBSUw6ICVzIHNjcmlwdCBkaWQgbm90IHRpbWUgb3V0IGFzIGV4cGVjdGVkLlxuIiwg
dGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAgaWYgKCFzaG91bGRUZXJtaW5hdGVD
YWxsYmFja1dhc0NhbGxlZCkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBz
Y3JpcHQgdGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRp
ZXIpOwotICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7Ci0gICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFmdGVyV2F0Y2hk
b2dTaG91bGRIYXZlRmlyZWQpIHx8ICFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkg
eworICAgICAgICAgICAgICAgICAgICBpZiAoISgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCB0aW1l
QWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkpCisgICAgICAgICAgICAgICAgICAgICAgICBw
cmludGYoIkZBSUw6ICVzIHNjcmlwdCBkaWQgbm90IHRpbWUgb3V0IGFzIGV4cGVjdGVkLlxuIiwg
dGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAgIGlmICghc2hvdWxkVGVybWlu
YXRlQ2FsbGJhY2tXYXNDYWxsZWQpCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZB
SUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIiwgdGllck9w
dGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsK
ICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbikKICAgICAgICAgICAgICAg
ICBwcmludGYoIlBBU1M6ICVzIFRlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24gd2FzIG5vdCBj
YXRjaGFibGUgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKQEAgLTMwOSwyNCAr
MzE4LDI3IEBAIGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICAgICAgICAgIHNjcmlw
dEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiZnVuY3Rpb24gZm9vKCkgeyB2YXIgc3RhcnRUaW1lID0g
Y3VycmVudENQVVRpbWUoKTsgd2hpbGUgKHRydWUpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
OyBpKyspOyBpZiAoY3VycmVudENQVVRpbWUoKSAtIHN0YXJ0VGltZSA+ICIpOwogICAgICAgICAg
ICAgc2NyaXB0QnVpbGRlci5hcHBlbmROdW1iZXIodGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZl
RmlyZWQuc2Vjb25kcygpKTsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiKSBicmVhazsgfSB9IGZvbygpOyIpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBKU1N0
cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzY3JpcHRCdWls
ZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBleGNlcHRpb24gPSBu
dWxscHRyOwotICAgICAgICAgICAgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgPSBm
YWxzZTsKIAotICAgICAgICAgICAgYXV0byBzdGFydFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50
VGhyZWFkKCk7Ci0gICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNjcmlwdCwg
bnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7Ci0gICAgICAgICAgICBhdXRvIGVuZFRp
bWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CisgICAgICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBKU1N0
cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmctPnV0
ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7CisgICAg
ICAgICAgICAgICAgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKKwor
ICAgICAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVh
ZCgpOworICAgICAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBu
dWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICBhdXRvIGVu
ZFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CiAgICAgICAgICAgICAKLSAgICAg
ICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91
bGRIYXZlRmlyZWQpICYmICFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKLSAgICAg
ICAgICAgICAgICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCB0aW1lZCBvdXQgYXMgZXhwZWN0ZWQg
d2hlbiBubyBjYWxsYmFjayBpcyBzcGVjaWZpZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAg
ICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGlmICgoZW5kVGltZSAtIHN0YXJ0VGlt
ZSkgPj0gdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpCi0gICAgICAgICAgICAgICAg
ICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQg
d2hlbiBubyBjYWxsYmFjayBpcyBzcGVjaWZpZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAg
ICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMg
c2NyaXB0IGNhbGxlZCBzdGFsZSBjYWxsYmFjayBmdW5jdGlvbi5cbiIsIHRpZXJPcHRpb25zLnRp
ZXIpOwotICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7Ci0gICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCB0aW1lQWZ0ZXJXYXRjaGRv
Z1Nob3VsZEhhdmVGaXJlZCkgJiYgIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQor
ICAgICAgICAgICAgICAgICAgICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCB0aW1lZCBvdXQgYXMg
ZXhwZWN0ZWQgd2hlbiBubyBjYWxsYmFjayBpcyBzcGVjaWZpZWQuXG4iLCB0aWVyT3B0aW9ucy50
aWVyKTsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChl
bmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IGRpZCBub3Qg
dGltZSBvdXQgYXMgZXhwZWN0ZWQgd2hlbiBubyBjYWxsYmFjayBpcyBzcGVjaWZpZWQuXG4iLCB0
aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgY2FsbGVkIHN0YWxlIGNhbGxiYWNr
IGZ1bmN0aW9uLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAgIGZh
aWxlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKCFleGNl
cHRpb24pIHsKICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIFRlcm1pbmF0ZWRFeGVj
dXRpb25FeGNlcHRpb24gd2FzIG5vdCB0aHJvd24uXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKQEAg
LTM0NywyMyArMzU5LDI2IEBAIGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICAgICAg
ICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2
ZUZpcmVkLnNlY29uZHMoKSk7CiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExpdGVy
YWwoIikgYnJlYWs7IH0gfSBmb28oKTsiKTsKIAotICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2Ny
aXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc2NyaXB0QnVpbGRlci50b1N0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKLSAg
ICAgICAgICAgIGNhbmNlbFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CisgICAg
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAg
ICAgICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZyhzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgICAgIGV4Y2VwdGlv
biA9IG51bGxwdHI7CisgICAgICAgICAgICAgICAgY2FuY2VsVGVybWluYXRlQ2FsbGJhY2tXYXND
YWxsZWQgPSBmYWxzZTsKIAotICAgICAgICAgICAgYXV0byBzdGFydFRpbWUgPSBDUFVUaW1lOjpm
b3JDdXJyZW50VGhyZWFkKCk7Ci0gICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQs
IHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7Ci0gICAgICAgICAgICBh
dXRvIGVuZFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CisgICAgICAgICAgICAg
ICAgYXV0byBzdGFydFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CisgICAgICAg
ICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxw
dHIsIDEsICZleGNlcHRpb24pOworICAgICAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRp
bWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKCgo
ZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQp
ICYmIGNhbmNlbFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkICYmICFleGNlcHRpb24pCi0gICAg
ICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiAlcyBzY3JpcHQgdGltZW91dCB3YXMgY2FuY2VsbGVk
IGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICBlbHNlIHsK
LSAgICAgICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldh
dGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSB8fCBleGNlcHRpb24pCi0gICAgICAgICAgICAgICAgICAg
IHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgd2FzIG5vdCBjYW5jZWxsZWQuXG4iLCB0
aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBpZiAoIWNhbmNlbFRlcm1pbmF0ZUNh
bGxiYWNrV2FzQ2FsbGVkKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNj
cmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGll
cik7Ci0gICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRv
Z1Nob3VsZEhhdmVGaXJlZCkgJiYgY2FuY2VsVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgJiYg
IWV4Y2VwdGlvbikKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiAlcyBzY3JpcHQg
dGltZW91dCB3YXMgY2FuY2VsbGVkIGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7
CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgoKGVuZFRp
bWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpIHx8IGV4
Y2VwdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0
IHRpbWVvdXQgd2FzIG5vdCBjYW5jZWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKCFjYW5jZWxUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgY2Fs
bGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAg
ICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgCiAgICAgICAgICAg
ICBpZiAoZXhjZXB0aW9uKSB7CiAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBVbmV4
cGVjdGVkIFRlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24gdGhyb3duLlxuIiwgdGllck9wdGlv
bnMudGllcik7CkBAIC0zODQsMzMgKzM5OSwzNiBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1p
dCgpCiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZE51bWJlcihtYXhCdXN5TG9vcFRp
bWUuc2Vjb25kcygpKTsgLy8gaW4gc2Vjb25kcy4KICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiKSBicmVhazsgfSB9IGZvbygpOyIpOwogCi0gICAgICAgICAgICBKU1N0
cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzY3JpcHRCdWls
ZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBleGNlcHRpb24gPSBu
dWxscHRyOwotICAgICAgICAgICAgZXh0ZW5kVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQgPSAwOwor
ICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpKSB7
CisgICAgICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICBleGNl
cHRpb24gPSBudWxscHRyOworICAgICAgICAgICAgICAgIGV4dGVuZFRlcm1pbmF0ZUNhbGxiYWNr
Q2FsbGVkID0gMDsKIAotICAgICAgICAgICAgYXV0byBzdGFydFRpbWUgPSBDUFVUaW1lOjpmb3JD
dXJyZW50VGhyZWFkKCk7Ci0gICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNj
cmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7Ci0gICAgICAgICAgICBhdXRv
IGVuZFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7Ci0gICAgICAgICAgICBhdXRv
IGRlbHRhVGltZSA9IGVuZFRpbWUgLSBzdGFydFRpbWU7CisgICAgICAgICAgICAgICAgYXV0byBz
dGFydFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CisgICAgICAgICAgICAgICAg
SlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZl
eGNlcHRpb24pOworICAgICAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRpbWU6OmZvckN1
cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAgICBhdXRvIGRlbHRhVGltZSA9IGVuZFRpbWUg
LSBzdGFydFRpbWU7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICgoZGVsdGFUaW1lID49
IHRpbWVCZWZvcmVFeHRlbmRlZERlYWRsaW5lKSAmJiAoZGVsdGFUaW1lIDwgdGltZUFmdGVyRXh0
ZW5kZWREZWFkbGluZSkgJiYgKGV4dGVuZFRlcm1pbmF0ZUNhbGxiYWNrQ2FsbGVkID09IDIpICYm
IGV4Y2VwdGlvbikKLSAgICAgICAgICAgICAgICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCB0aW1l
b3V0IHdhcyBleHRlbmRlZCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAg
ICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKGRlbHRhVGltZSA8IHRpbWVCZWZv
cmVFeHRlbmRlZERlYWRsaW5lKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVz
IHNjcmlwdCB0aW1lb3V0IHdhcyBub3QgZXh0ZW5kZWQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0
aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBlbHNlIGlmIChkZWx0YVRpbWUgPj0gdGltZUFm
dGVyRXh0ZW5kZWREZWFkbGluZSkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAl
cyBzY3JpcHQgZGlkIG5vdCB0aW1lb3V0LlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAg
ICAgICAgICAgaWYgKChkZWx0YVRpbWUgPj0gdGltZUJlZm9yZUV4dGVuZGVkRGVhZGxpbmUpICYm
IChkZWx0YVRpbWUgPCB0aW1lQWZ0ZXJFeHRlbmRlZERlYWRsaW5lKSAmJiAoZXh0ZW5kVGVybWlu
YXRlQ2FsbGJhY2tDYWxsZWQgPT0gMikgJiYgZXhjZXB0aW9uKQorICAgICAgICAgICAgICAgICAg
ICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCB0aW1lb3V0IHdhcyBleHRlbmRlZCBhcyBleHBlY3Rl
ZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAg
ICAgICAgICAgICAgICBpZiAoZGVsdGFUaW1lIDwgdGltZUJlZm9yZUV4dGVuZGVkRGVhZGxpbmUp
CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0
IHdhcyBub3QgZXh0ZW5kZWQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAg
ICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZGVsdGFUaW1lID49IHRpbWVBZnRlckV4dGVuZGVk
RGVhZGxpbmUpCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlw
dCBkaWQgbm90IHRpbWVvdXQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKICAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgICBpZiAoZXh0ZW5kVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQgPCAx
KQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNh
bGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAg
ICAgICAgaWYgKGV4dGVuZFRlcm1pbmF0ZUNhbGxiYWNrQ2FsbGVkIDwgMikKLSAgICAgICAgICAg
ICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgdGltZW91dCBjYWxsYmFjayB3YXMgbm90
IGNhbGxlZCBhZnRlciB0aW1lb3V0IGV4dGVuc2lvbi5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwor
ICAgICAgICAgICAgICAgICAgICBpZiAoZXh0ZW5kVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQgPCAx
KQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgdGltZW91
dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAg
ICAgICAgICAgICAgICBpZiAoZXh0ZW5kVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQgPCAyKQorICAg
ICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgdGltZW91dCBjYWxs
YmFjayB3YXMgbm90IGNhbGxlZCBhZnRlciB0aW1lb3V0IGV4dGVuc2lvbi5cbiIsIHRpZXJPcHRp
b25zLnRpZXIpOwogICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmICghZXhjZXB0
aW9uKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIFRlcm1pbmF0ZWRFeGVj
dXRpb25FeGNlcHRpb24gd2FzIG5vdCB0aHJvd24gZHVyaW5nIHRpbWVvdXQgZXh0ZW5zaW9uIHRl
c3QuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFleGNl
cHRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIFRlcm1pbmF0
ZWRFeGVjdXRpb25FeGNlcHRpb24gd2FzIG5vdCB0aHJvd24gZHVyaW5nIHRpbWVvdXQgZXh0ZW5z
aW9uIHRlc3QuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKICAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICBmYWlsZWQgPSB0cnVlOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICBmYWlsZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KIAogI2lmIEhBVkUoTUFDSF9F
WENFUFRJT05TKQpAQCAtNDI1LDU2ICs0NDMsNjIgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGlt
aXQoKQogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmROdW1iZXIodGltZUFmdGVyV2F0
Y2hkb2dTaG91bGRIYXZlRmlyZWQuc2Vjb25kcygpKTsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiKSBicmVhazsgfSB9IGZvbygpOyIpOwogCi0gICAgICAgICAgICBK
U1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzY3JpcHRC
dWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBleGNlcHRpb24g
PSBudWxscHRyOwotICAgICAgICAgICAgZGlzcGF0Y2hUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA9
IGZhbHNlOwotCi0gICAgICAgICAgICAvLyBXZSBoYXZlIHRvIGRvIHRoaXMgc2luY2UgYmxvY2tz
IGNhbiBvbmx5IGNhcHR1cmUgdGhpbmdzIGFzIGNvbnN0LgotICAgICAgICAgICAgSlNHbG9iYWxD
b250ZXh0UmVmJiBjb250ZXh0UmVmID0gY29udGV4dDsKLSAgICAgICAgICAgIEpTU3RyaW5nUmVm
JiBzY3JpcHRSZWYgPSBzY3JpcHQ7Ci0gICAgICAgICAgICBKU1ZhbHVlUmVmJiBleGNlcHRpb25S
ZWYgPSBleGNlcHRpb247Ci0KLSAgICAgICAgICAgIExvY2sgc3luY0xvY2s7Ci0gICAgICAgICAg
ICBMb2NrJiBzeW5jTG9ja1JlZiA9IHN5bmNMb2NrOwotICAgICAgICAgICAgQ29uZGl0aW9uIHN5
bmNocm9uaXplOwotICAgICAgICAgICAgQ29uZGl0aW9uJiBzeW5jaHJvbml6ZVJlZiA9IHN5bmNo
cm9uaXplOwotICAgICAgICAgICAgYm9vbCBkaWRTeW5jaHJvbml6ZSA9IGZhbHNlOwotICAgICAg
ICAgICAgYm9vbCYgZGlkU3luY2hyb25pemVSZWYgPSBkaWRTeW5jaHJvbml6ZTsKLQotICAgICAg
ICAgICAgU2Vjb25kcyBzdGFydFRpbWU7Ci0gICAgICAgICAgICBTZWNvbmRzIGVuZFRpbWU7Ci0K
LSAgICAgICAgICAgIFNlY29uZHMmIHN0YXJ0VGltZVJlZiA9IHN0YXJ0VGltZTsKLSAgICAgICAg
ICAgIFNlY29uZHMmIGVuZFRpbWVSZWYgPSBlbmRUaW1lOwotCi0gICAgICAgICAgICBkaXNwYXRj
aF9ncm91cF90IGdyb3VwID0gZGlzcGF0Y2hfZ3JvdXBfY3JlYXRlKCk7Ci0gICAgICAgICAgICBk
aXNwYXRjaF9ncm91cF9hc3luYyhncm91cCwgZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1ZSgwLCAw
KSwgXnsKLSAgICAgICAgICAgICAgICBzdGFydFRpbWVSZWYgPSBDUFVUaW1lOjpmb3JDdXJyZW50
VGhyZWFkKCk7Ci0gICAgICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0UmVmLCBz
Y3JpcHRSZWYsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb25SZWYpOwotICAgICAgICAg
ICAgICAgIGVuZFRpbWVSZWYgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7Ci0gICAgICAg
ICAgICAgICAgYXV0byBsb2NrZXIgPSBXVEY6OmhvbGRMb2NrKHN5bmNMb2NrUmVmKTsKLSAgICAg
ICAgICAgICAgICBkaWRTeW5jaHJvbml6ZVJlZiA9IHRydWU7Ci0gICAgICAgICAgICAgICAgc3lu
Y2hyb25pemVSZWYubm90aWZ5QWxsKCk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAg
YXV0byBsb2NrZXIgPSBob2xkTG9jayhzeW5jTG9jayk7Ci0gICAgICAgICAgICBzeW5jaHJvbml6
ZS53YWl0KHN5bmNMb2NrLCBbJl0geyByZXR1cm4gZGlkU3luY2hyb25pemU7IH0pOwotCi0gICAg
ICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hv
dWxkSGF2ZUZpcmVkKSAmJiBkaXNwYXRjaFRlcm1pbmF0ZUNhbGxiYWNrQ2FsbGVkKQotICAgICAg
ICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IG9uIGRpc3BhdGNoIHF1ZXVlIHRpbWVk
IG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgaWYgKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0
ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJG
QUlMOiAlcyBzY3JpcHQgb24gZGlzcGF0Y2ggcXVldWUgZGlkIG5vdCB0aW1lIG91dCBhcyBleHBl
Y3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgICAgIGlmICghc2hvdWxk
VGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCi0gICAgICAgICAgICAgICAgICAgIHByaW50Zigi
RkFJTDogJXMgc2NyaXB0IG9uIGRpc3BhdGNoIHF1ZXVlIHRpbWVvdXQgY2FsbGJhY2sgd2FzIG5v
dCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBmYWlsZWQg
PSB0cnVlOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc2Ny
aXB0QnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2Ny
aXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyaW5nLT51dGY4KCkuZGF0YSgp
KTsKKyAgICAgICAgICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOworICAgICAgICAgICAgICAg
IGRpc3BhdGNoVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKKworICAgICAgICAgICAg
ICAgIC8vIFdlIGhhdmUgdG8gZG8gdGhpcyBzaW5jZSBibG9ja3MgY2FuIG9ubHkgY2FwdHVyZSB0
aGluZ3MgYXMgY29uc3QuCisgICAgICAgICAgICAgICAgSlNHbG9iYWxDb250ZXh0UmVmJiBjb250
ZXh0UmVmID0gY29udGV4dDsKKyAgICAgICAgICAgICAgICBKU1N0cmluZ1JlZiYgc2NyaXB0UmVm
ID0gc2NyaXB0OworICAgICAgICAgICAgICAgIEpTVmFsdWVSZWYmIGV4Y2VwdGlvblJlZiA9IGV4
Y2VwdGlvbjsKKworICAgICAgICAgICAgICAgIExvY2sgc3luY0xvY2s7CisgICAgICAgICAgICAg
ICAgTG9jayYgc3luY0xvY2tSZWYgPSBzeW5jTG9jazsKKyAgICAgICAgICAgICAgICBDb25kaXRp
b24gc3luY2hyb25pemU7CisgICAgICAgICAgICAgICAgQ29uZGl0aW9uJiBzeW5jaHJvbml6ZVJl
ZiA9IHN5bmNocm9uaXplOworICAgICAgICAgICAgICAgIGJvb2wgZGlkU3luY2hyb25pemUgPSBm
YWxzZTsKKyAgICAgICAgICAgICAgICBib29sJiBkaWRTeW5jaHJvbml6ZVJlZiA9IGRpZFN5bmNo
cm9uaXplOworCisgICAgICAgICAgICAgICAgU2Vjb25kcyBzdGFydFRpbWU7CisgICAgICAgICAg
ICAgICAgU2Vjb25kcyBlbmRUaW1lOworCisgICAgICAgICAgICAgICAgU2Vjb25kcyYgc3RhcnRU
aW1lUmVmID0gc3RhcnRUaW1lOworICAgICAgICAgICAgICAgIFNlY29uZHMmIGVuZFRpbWVSZWYg
PSBlbmRUaW1lOworCisgICAgICAgICAgICAgICAgZGlzcGF0Y2hfZ3JvdXBfdCBncm91cCA9IGRp
c3BhdGNoX2dyb3VwX2NyZWF0ZSgpOworICAgICAgICAgICAgICAgIGRpc3BhdGNoX2dyb3VwX2Fz
eW5jKGdyb3VwLCBkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKDAsIDApLCBeeworICAgICAgICAg
ICAgICAgICAgICBzdGFydFRpbWVSZWYgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7Cisg
ICAgICAgICAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dFJlZiwgc2NyaXB0UmVm
LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uUmVmKTsKKyAgICAgICAgICAgICAgICAg
ICAgZW5kVGltZVJlZiA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAg
ICAgICAgICAgYXV0byBsb2NrZXIgPSBXVEY6OmhvbGRMb2NrKHN5bmNMb2NrUmVmKTsKKyAgICAg
ICAgICAgICAgICAgICAgZGlkU3luY2hyb25pemVSZWYgPSB0cnVlOworICAgICAgICAgICAgICAg
ICAgICBzeW5jaHJvbml6ZVJlZi5ub3RpZnlBbGwoKTsKKyAgICAgICAgICAgICAgICB9KTsKKwor
ICAgICAgICAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soc3luY0xvY2spOworICAgICAg
ICAgICAgICAgIHN5bmNocm9uaXplLndhaXQoc3luY0xvY2ssIFsmXSB7IHJldHVybiBkaWRTeW5j
aHJvbml6ZTsgfSk7CisKKyAgICAgICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1l
KSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiBkaXNwYXRjaFRlcm1pbmF0
ZUNhbGxiYWNrQ2FsbGVkKQorICAgICAgICAgICAgICAgICAgICBwcmludGYoIlBBU1M6ICVzIHNj
cmlwdCBvbiBkaXNwYXRjaCBxdWV1ZSB0aW1lZCBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0
aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVG
aXJlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IG9u
IGRpc3BhdGNoIHF1ZXVlIGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0
aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFzaG91bGRUZXJtaW5hdGVDYWxs
YmFja1dhc0NhbGxlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMg
c2NyaXB0IG9uIGRpc3BhdGNoIHF1ZXVlIHRpbWVvdXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQu
XG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1
ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAg
ICBDUkFTSCgpOwogICAgICAgICB9CiAjZW5kaWYKIAogICAgICAgICBKU0dsb2JhbENvbnRleHRS
ZWxlYXNlKGNvbnRleHQpOwogCi0gICAgICAgIE9wdGlvbnM6OnNldE9wdGlvbnMoc2F2ZWRPcHRp
b25zQnVpbGRlci50b1N0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gc2F2ZWRPcHRpb25zQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgT3B0
aW9uczo6c2V0T3B0aW9ucyhzdHJpbmctPmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgCiAgICAgcmV0dXJuIGZhaWxlZDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvUGluZ1BvbmdTdGFja092
ZXJmbG93VGVzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL1BpbmdQb25n
U3RhY2tPdmVyZmxvd1Rlc3QuY3BwCmluZGV4IDA0MmJlYmYuLjExMjMwOWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvUGluZ1BvbmdTdGFja092ZXJmbG93VGVz
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9QaW5nUG9uZ1N0YWNr
T3ZlcmZsb3dUZXN0LmNwcApAQCAtNjQsOSArNjQsMTIgQEAgc3RhdGljIGJvb2wgUGluZ1BvbmdT
dGFja092ZXJmbG93T2JqZWN0X2hhc0luc3RhbmNlKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09i
amUKICAgICAgICAgfQogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIik7Iik7CiAKLSAg
ICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
YnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICByZXN1bHQgPSBKU0V2
YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNjcmlwdCwgTlVMTCwgTlVMTCwgMSwgZXhjZXB0aW9uKTsK
LSAgICAgICAgSlNTdHJpbmdSZWxlYXNlKHNjcmlwdCk7CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0
ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsK
KyAgICAgICAgICAgIHJlc3VsdCA9IEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBu
dWxscHRyLCBudWxscHRyLCAxLCBleGNlcHRpb24pOworICAgICAgICAgICAgSlNTdHJpbmdSZWxl
YXNlKHNjcmlwdCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9
CiAKICAgICAtLW5hdGl2ZVJlY3Vyc2lvbkNvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5k
ZXggZTFjM2QyMS4uNDM2NzZhNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
OTggQEAKKzIwMTgtMDQtMjYgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgorCisg
ICAgICAgIFN0cmluZ0J1aWxkZXIgaXMgZmFsbGlibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTA0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0cmluZ0J1aWxkZXIgY2FuIGZhaWwgd2hlbiBhbGxv
Y2F0aW5nIG1lbW9yeS4gU3RyaW5nQnVpbGRlciBpcworICAgICAgICBtb3N0bHkgdXNlZCB3aXRo
IHVzZXIgaW5wdXQsIHdoaWNoIG9mdGVuIG1lYW5zIHRoYXQganVzdCBjcmFzaGluZworICAgICAg
ICBpc24ndCB0aGUgcmlnaHQgb3V0Y29tZS4gT3VyIGZ1enplcnMgb2Z0ZW4gZW5jb3VudGVyIHN1
Y2ggdGhpbmdzCisgICAgICAgIGZvciBKYXZhU2NyaXB0Q29yZSwgYW5kIHNvIGZhciB3ZSd2ZSBh
cHBsaWVkIHBvaW50IHNvbHV0aW9ucy4gTm8KKyAgICAgICAgbW9yZSEKKworICAgICAgICAqIEFQ
SS9KU0NvbnRleHRSZWYuY3BwOgorICAgICAgICAoSlNDb250ZXh0Q3JlYXRlQmFja3RyYWNlKToK
KyAgICAgICAgKiBBUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHA6CisgICAgICAg
ICh0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KToKKyAgICAgICAgKiBBUEkvdGVzdHMvUGluZ1BvbmdT
dGFja092ZXJmbG93VGVzdC5jcHA6CisgICAgICAgIChQaW5nUG9uZ1N0YWNrT3ZlcmZsb3dPYmpl
Y3RfaGFzSW5zdGFuY2UpOgorICAgICAgICAqIGRmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNl
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTdHJlbmd0aFJlZHVjdGlvblBoYXNlOjpoYW5kbGVO
b2RlKToKKyAgICAgICAgKiBoZWFwL0hlYXBTbmFwc2hvdEJ1aWxkZXIuY3BwOgorICAgICAgICAo
SlNDOjpIZWFwU25hcHNob3RCdWlsZGVyOjpqc29uKToKKyAgICAgICAgKiBpbnNwZWN0b3IvQ29u
c29sZU1lc3NhZ2UuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpDb25zb2xlTWVzc2FnZTo6Q29u
c29sZU1lc3NhZ2UpOgorICAgICAgICAqIGluc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0aWVz
LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6Q29udGVudFNlYXJjaFV0aWxpdGllczo6Y3JlYXRl
U2VhcmNoUmVnZXhTb3VyY2UpOgorICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmNw
cDoKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OnN0YWNrVHJhY2VBc1N0cmluZyk6CisgICAg
ICAgICogaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6U3RhY2tW
aXNpdG9yOjpGcmFtZTo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAqIGpzYy5jcHA6CisgICAg
ICAgIChyZXNvbHZlUGF0aCk6CisgICAgICAgIChmdW5jdGlvbkpTQ1N0YWNrKToKKyAgICAgICAg
KiBydW50aW1lL0NvbmZpZ0ZpbGUuY3BwOgorICAgICAgICAoSlNDOjpDb25maWdGaWxlOjpwYXJz
ZSk6CisgICAgICAgICogcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcDoKKyAgICAgICAgKEpTQzo6
Q29uc29sZUNsaWVudDo6cHJpbnRDb25zb2xlTWVzc2FnZSk6CisgICAgICAgIChKU0M6OkNvbnNv
bGVDbGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2VXaXRoQXJndW1lbnRzKToKKyAgICAgICAgKiBy
dW50aW1lL0RhdGVDb252ZXJzaW9uLmNwcDoKKyAgICAgICAgKEpTQzo6Zm9ybWF0RGF0ZVRpbWUp
OgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHA6CisgICAgICAgIChKU0M6OkVy
cm9ySW5zdGFuY2U6OnNhbml0aXplZFRvU3RyaW5nKToKKyAgICAgICAgKiBydW50aW1lL0V4Y2Vw
dGlvbkhlbHBlcnMuY3BwOgorICAgICAgICAoSlNDOjpub3RBRnVuY3Rpb25Tb3VyY2VBcHBlbmRl
cik6CisgICAgICAgICogcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAg
KEpTQzo6Y29uc3RydWN0RnVuY3Rpb25Ta2lwcGluZ0V2YWxFbmFibGVkQ2hlY2spOgorICAgICAg
ICAqIHJ1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcDoKKyAgICAgICAgKEpTQzo6SW50bERh
dGVUaW1lRm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQpOgorICAgICAgICAqIHJ1bnRp
bWUvSW50bE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OnByaXZhdGVVc2VMYW5nVGFnKToKKyAg
ICAgICAgKEpTQzo6Y2Fub25pY2FsTGFuZ1RhZyk6CisgICAgICAgIChKU0M6OnJlbW92ZVVuaWNv
ZGVMb2NhbGVFeHRlbnNpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5j
dGlvbnMuY3BwOgorICAgICAgICAoSlNDOjplbmNvZGUpOgorICAgICAgICAoSlNDOjpkZWNvZGUp
OgorICAgICAgICAoSlNDOjpnbG9iYWxGdW5jRXNjYXBlKToKKyAgICAgICAgKEpTQzo6Z2xvYmFs
RnVuY1VuZXNjYXBlKToKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3QuY3BwOgorICAgICAg
ICAoSlNDOjpTdHJpbmdpZmllcjo6c3RyaW5naWZ5KToKKyAgICAgICAgKEpTQzo6U3RyaW5naWZp
ZXI6OkhvbGRlcjo6YXBwZW5kTmV4dFByb3BlcnR5KToKKyAgICAgICAgKiBydW50aW1lL0xpdGVy
YWxQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpMaXRlcmFsUGFyc2VyPENoYXJUeXBlPjo6TGV4
ZXI6OmxleFN0cmluZ1Nsb3cpOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5jcHA6CisgICAg
ICAgIChKU0M6Ok9wdGlvbnM6OmR1bXBPcHRpb25zSWZOZWVkZWQpOgorICAgICAgICAoSlNDOjpP
cHRpb25zOjpkdW1wQWxsT3B0aW9ucyk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBQcm90b3R5
cGUuY3BwOgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0dldHRlclNvdXJjZUludGVybmFsKToK
KyAgICAgICAgKiBydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwOgorICAgICAgICAoSlNDOjpT
YW1wbGluZ1Byb2ZpbGVyOjpzdGFja1RyYWNlc0FzSlNPTik6CisgICAgICAgICogcnVudGltZS9T
dGFja0ZyYW1lLmNwcDoKKyAgICAgICAgKEpTQzo6U3RhY2tGcmFtZTo6dG9TdHJpbmcgY29uc3Qp
OgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlND
OjpzdHJpbmdGcm9tQ29kZVBvaW50KToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3RvdHlw
ZS5jcHA6CisgICAgICAgIChKU0M6OnN1YnN0aXR1dGVCYWNrcmVmZXJlbmNlc1Nsb3cpOgorICAg
ICAgICAqIHJ1bnRpbWUvVHlwZVByb2ZpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6VHlwZVByb2Zp
bGVyOjp0eXBlSW5mb3JtYXRpb25Gb3JFeHByZXNzaW9uQXRPZmZzZXQpOgorICAgICAgICAqIHJ1
bnRpbWUvVHlwZVNldC5jcHA6CisgICAgICAgIChKU0M6OlR5cGVTZXQ6OmR1bXBUeXBlcyBjb25z
dCk6CisgICAgICAgIChKU0M6OlR5cGVTZXQ6OnRvSlNPTlN0cmluZyBjb25zdCk6CisgICAgICAg
IChKU0M6OlN0cnVjdHVyZVNoYXBlOjpwcm9wZXJ0eUhhc2gpOgorICAgICAgICAoSlNDOjpTdHJ1
Y3R1cmVTaGFwZTo6c3RyaW5nUmVwcmVzZW50YXRpb24pOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1
cmVTaGFwZTo6dG9KU09OU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiB0ZXN0UmVnRXhwLmNwcDoK
KyAgICAgICAgKHBhcnNlUmVnRXhwTGluZSk6CisgICAgICAgIChwYXJzZVRlc3RMaW5lKToKKyAg
ICAgICAgKiB0b29scy9GdW5jdGlvbk92ZXJyaWRlcy5jcHA6CisgICAgICAgIChKU0M6OnBhcnNl
Q2xhdXNlKToKKyAgICAgICAgKiB3YXNtL1dhc21CQlFQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6
V2FzbTo6QkJRUGxhbjo6cHJlcGFyZSk6CisgICAgICAgICogeWFyci9ZYXJyUGFyc2VyLmg6Cisg
ICAgICAgIChKU0M6OllhcnI6OlBhcnNlcjo6dHJ5Q29uc3VtZUdyb3VwTmFtZSk6CisgICAgICAg
IChKU0M6OllhcnI6OlBhcnNlcjo6dHJ5Q29uc3VtZVVuaWNvZGVQcm9wZXJ0eUV4cHJlc3Npb24p
OgorCiAyMDE4LTA1LTAxICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CiAK
ICAgICAgICAgVXNlIENoZWNrZWRBcml0aG1ldGljIGZvciBsZW5ndGggY29tcHV0YXRpb24gaW4g
SlNBcnJheTo6dW5zaGlmdENvdW50V2l0aEFueUluZGV4aW5nVHlwZQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAKaW5k
ZXggOTFlZTFjMy4uZjFlY2VhZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwCkBAIC0zNjEsNyArMzYxLDEwIEBA
IHByaXZhdGU6CiAgICAgICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAg
ICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGxlZnRTdHJpbmcpOwogICAgICAgICAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKHJpZ2h0U3RyaW5nKTsKLSAgICAgICAgICAgICAgICBjb252ZXJ0VG9MYXp5
SlNWYWx1ZShtX25vZGUsIExhenlKU1ZhbHVlOjpuZXdTdHJpbmcobV9ncmFwaCwgYnVpbGRlci50
b1N0cmluZygpKSk7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICAgICAgICAgICAgICBjb252ZXJ0VG9MYXp5SlNWYWx1ZShtX25v
ZGUsIExhenlKU1ZhbHVlOjpuZXdTdHJpbmcobV9ncmFwaCwgKnN0cmluZykpOworICAgICAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgICAg
ICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBA
IC0zODcsOCArMzkwLDEwIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChy
aWdodFN0cmluZyk7CiAgICAgICAgICAgICBpZiAoISFleHRyYVN0cmluZykKICAgICAgICAgICAg
ICAgICBidWlsZGVyLmFwcGVuZChleHRyYVN0cmluZyk7Ci0KLSAgICAgICAgICAgIGNvbnZlcnRU
b0xhenlKU1ZhbHVlKG1fbm9kZSwgTGF6eUpTVmFsdWU6Om5ld1N0cmluZyhtX2dyYXBoLCBidWls
ZGVyLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICBjb252ZXJ0VG9MYXp5SlNWYWx1ZShtX25vZGUs
IExhenlKU1ZhbHVlOjpuZXdTdHJpbmcobV9ncmFwaCwgKnN0cmluZykpOworICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0
cnVlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTg4NCw4ICs4ODksMTAgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIGlmIChsYXN0SW5k
ZXggPCBzdHJpbmcubGVuZ3RoKCkpCiAgICAgICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KHN0cmluZywgbGFzdEluZGV4LCBzdHJpbmcubGVuZ3RoKCkgLSBsYXN0SW5kZXgpOwotICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgICAgIG1fbm9kZS0+Y29udmVydFRvTGF6eUpTQ29uc3Rh
bnQobV9ncmFwaCwgTGF6eUpTVmFsdWU6Om5ld1N0cmluZyhtX2dyYXBoLCBidWlsZGVyLnRvU3Ry
aW5nKCkpKTsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgICAgICAgICAgICAgIG1fbm9kZS0+Y29udmVydFRvTGF6eUpTQ29uc3Rh
bnQobV9ncmFwaCwgTGF6eUpTVmFsdWU6Om5ld1N0cmluZyhtX2dyYXBoLCAqc3RyaW5nKSk7Cisg
ICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAg
ICAgICAgfQogCiAgICAgICAgICAgICBtX25vZGUtPm9yaWdpbiA9IG9yaWdpbjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBTbmFwc2hvdEJ1aWxkZXIuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFNuYXBzaG90QnVpbGRlci5jcHAKaW5kZXgg
NjVmNjMzZi4uZTFhYWQxYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcFNuYXBzaG90QnVpbGRlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcFNuYXBzaG90QnVpbGRlci5jcHAKQEAgLTM4Nyw3ICszODcsOSBAQCBTdHJpbmcgSGVhcFNu
YXBzaG90QnVpbGRlcjo6anNvbihzdGQ6OmZ1bmN0aW9uPGJvb2wgKGNvbnN0IEhlYXBTbmFwc2hv
dE5vZGUmKT4gYQogICAgIGpzb24uYXBwZW5kKCddJyk7CiAKICAgICBqc29uLmFwcGVuZCgnfScp
OwotICAgIHJldHVybiBqc29uLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0ganNv
bi50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKaW5kZXggNWNmYjA0ZC4uNzFlNGZjNSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKQEAg
LTExNSw3ICsxMTUsMTAgQEAgQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VT
b3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGUKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIEpTT05Mb2dWYWx1ZTo6VHlwZTo6SlNPTjoKICAgICAgICAgICAg
IGlmIChidWlsZGVyLmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICAgICAgbV9qc29uTG9nVmFsdWVz
LmFwcGVuZCh7IEpTT05Mb2dWYWx1ZTo6VHlwZTo6U3RyaW5nLCBKU09OOjpWYWx1ZTo6Y3JlYXRl
KGJ1aWxkZXIudG9TdHJpbmcoKSktPnRvSlNPTlN0cmluZygpIH0pOworICAgICAgICAgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICAg
ICAgbV9qc29uTG9nVmFsdWVzLmFwcGVuZCh7IEpTT05Mb2dWYWx1ZTo6VHlwZTo6U3RyaW5nLCBK
U09OOjpWYWx1ZTo6Y3JlYXRlKCpzdHJpbmcpLT50b0pTT05TdHJpbmcoKSB9KTsKKyAgICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAg
ICAgYnVpbGRlci5yZXNpemUoMCk7CiAgICAgICAgICAgICB9CiAKQEAgLTEyNCw4ICsxMjcsMTIg
QEAgQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBN
ZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGUKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChi
dWlsZGVyLmxlbmd0aCgpKQotICAgICAgICBtX2pzb25Mb2dWYWx1ZXMuYXBwZW5kKHsgSlNPTkxv
Z1ZhbHVlOjpUeXBlOjpTdHJpbmcsIEpTT046OlZhbHVlOjpjcmVhdGUoYnVpbGRlci50b1N0cmlu
ZygpKS0+dG9KU09OU3RyaW5nKCkgfSk7CisgICAgaWYgKGJ1aWxkZXIubGVuZ3RoKCkpIHsKKyAg
ICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAg
bV9qc29uTG9nVmFsdWVzLmFwcGVuZCh7IEpTT05Mb2dWYWx1ZTo6VHlwZTo6U3RyaW5nLCBKU09O
OjpWYWx1ZTo6Y3JlYXRlKCpzdHJpbmcpLT50b0pTT05TdHJpbmcoKSB9KTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgQ1JBU0goKTsKKyAgICB9CiAKICAgICBpZiAobV9qc29uTG9nVmFsdWVz
LnNpemUoKSkKICAgICAgICAgbV9tZXNzYWdlID0gbV9qc29uTG9nVmFsdWVzWzBdLnZhbHVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNo
VXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29udGVudFNl
YXJjaFV0aWxpdGllcy5jcHAKaW5kZXggYWFhODFlMi4uYjBjMTk0NCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0aWVzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlsaXRp
ZXMuY3BwCkBAIC01NSw3ICs1NSw5IEBAIHN0YXRpYyBTdHJpbmcgY3JlYXRlU2VhcmNoUmVnZXhT
b3VyY2UoY29uc3QgU3RyaW5nJiB0ZXh0KQogICAgICAgICByZXN1bHQuYXBwZW5kKGNoYXJhY3Rl
cik7CiAgICAgfQogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBzdGF0aWMgaW5saW5lIHNpemVfdCBzaXpldEV4dHJhY3Rvcihjb25z
dCBzaXplX3QqIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0ludGVycHJldGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9JbnRlcnByZXRlci5jcHAKaW5kZXggNGY3MjcwOS4uZWQxNzQ5NCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCkBAIC01NzcsNyAr
NTc3LDkgQEAgSlNTdHJpbmcqIEludGVycHJldGVyOjpzdGFja1RyYWNlQXNTdHJpbmcoVk0mIHZt
LCBjb25zdCBWZWN0b3I8U3RhY2tGcmFtZT4mIHN0YWMKICAgICAgICAgaWYgKGkgIT0gc3RhY2tU
cmFjZS5zaXplKCkgLSAxKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7CiAgICAg
fQotICAgIHJldHVybiBqc1N0cmluZygmdm0sIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4ganNTdHJp
bmcoJnZtLCAqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiBBTFdBWVNfSU5MSU5FIHN0YXRp
YyBIYW5kbGVySW5mbyogZmluZEV4Y2VwdGlvbkhhbmRsZXIoU3RhY2tWaXNpdG9yJiB2aXNpdG9y
LCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgUmVxdWlyZWRIYW5kbGVyIHJlcXVpcmVkSGFuZGxlcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5j
cHAKaW5kZXggMWQxZmY3My4uNzBjZDExNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5jcHAKQEAgLTM0Nyw3ICszNDcsOSBAQCBTdHJp
bmcgU3RhY2tWaXNpdG9yOjpGcmFtZTo6dG9TdHJpbmcoKSBjb25zdAogICAgICAgICAgICAgdHJh
Y2VCdWlsZC5hcHBlbmROdW1iZXIoY29sdW1uKTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1
cm4gdHJhY2VCdWlsZC50b1N0cmluZygpLmltcGwoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0
cmFjZUJ1aWxkLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBzdHJpbmctPmltcGwoKTsKKyAg
ICBDUkFTSCgpOwogfQogCiBpbnRwdHJfdCBTdGFja1Zpc2l0b3I6OkZyYW1lOjpzb3VyY2VJRCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDNiMTcyNDguLmJlOTM5NTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
c2MuY3BwCkBAIC03NjcsNyArNzY3LDkgQEAgc3RhdGljIFN0cmluZyByZXNvbHZlUGF0aChjb25z
dCBEaXJlY3RvcnlOYW1lJiBkaXJlY3RvcnlOYW1lLCBjb25zdCBNb2R1bGVOYW1lJgogICAgICAg
ICBpZiAoaSArIDEgIT0gZGlyZWN0b3J5UGllY2VzLnNpemUoKSkKICAgICAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKHBhdGhTZXBhcmF0b3IoKSk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIGFi
c29sdXRlUGF0aChjb25zdCBTdHJpbmcmIGZpbGVOYW1lKQpAQCAtMTEyNyw4ICsxMTI5LDExIEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25KU0NTdGFjayhFeGVjU3RhdGUq
IGV4ZWMpCiAKICAgICBGdW5jdGlvbkpTQ1N0YWNrRnVuY3RvciBmdW5jdG9yKHRyYWNlKTsKICAg
ICBleGVjLT5pdGVyYXRlKGZ1bmN0b3IpOwotICAgIGZwcmludGYoc3RkZXJyLCAiJXMiLCB0cmFj
ZS50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdHJhY2UudG9TdHJpbmcoKSkg
eworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsK
KyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9Cisg
ICAgQ1JBU0goKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdD
QW5kU3dlZXAoRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29uZmlnRmlsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db25maWdGaWxlLmNwcAppbmRleCBiYjg3NjY2Li5mN2VjZGFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25maWdGaWxlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db25maWdGaWxlLmNwcApAQCAtNDY1LDkgKzQ2NSwxMiBAQCB2
b2lkIENvbmZpZ0ZpbGU6OnBhcnNlKCkKICAgICAgICAgICAgIFdURjo6c2V0RGF0YUZpbGUobG9n
UGF0aG5hbWUpOwogCiAgICAgICAgIGlmICghanNjT3B0aW9uc0J1aWxkZXIuaXNFbXB0eSgpKSB7
Ci0gICAgICAgICAgICBjb25zdCBjaGFyKiBvcHRpb25zU3RyID0ganNjT3B0aW9uc0J1aWxkZXIu
dG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpOwotICAgICAgICAgICAgT3B0aW9uczo6ZW5hYmxlUmVz
dHJpY3RlZE9wdGlvbnModHJ1ZSk7Ci0gICAgICAgICAgICBPcHRpb25zOjpzZXRPcHRpb25zKG9w
dGlvbnNTdHIpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0ganNjT3B0aW9uc0J1aWxk
ZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIG9wdGlvbnNTdHIg
PSBzdHJpbmctPnV0ZjgoKS5kYXRhKCk7CisgICAgICAgICAgICAgICAgT3B0aW9uczo6ZW5hYmxl
UmVzdHJpY3RlZE9wdGlvbnModHJ1ZSk7CisgICAgICAgICAgICAgICAgT3B0aW9uczo6c2V0T3B0
aW9ucyhvcHRpb25zU3RyKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIENS
QVNIKCk7CiAgICAgICAgIH0KICAgICB9IGVsc2UKICAgICAgICAgV1RGOjpkYXRhTG9nRigiRXJy
b3IgaW4gSlNDIENvbmZpZyBmaWxlIG9uIG9yIG5lYXIgbGluZSAldSwgcGFyc2luZyAnJXMnXG4i
LCBzY2FubmVyLmxpbmVOdW1iZXIoKSwgc2Nhbm5lci5jdXJyZW50QnVmZmVyKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcAppbmRleCAyOTE3
ZDc2OC4uYjg2NjQzYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29uc29sZUNsaWVudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29u
c29sZUNsaWVudC5jcHAKQEAgLTE0NCw3ICsxNDQsMTAgQEAgdm9pZCBDb25zb2xlQ2xpZW50Ojpw
cmludENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBl
LAogICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgYnVpbGRlci5hcHBlbmQobWVzc2FnZSk7
CiAKLSAgICBXVEZMb2dBbHdheXMoIiVzIiwgYnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
V1RGTG9nQWx3YXlzKCIlcyIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgZWxzZQorICAg
ICAgICBDUkFTSCgpOwogfQogCiB2b2lkIENvbnNvbGVDbGllbnQ6OnByaW50Q29uc29sZU1lc3Nh
Z2VXaXRoQXJndW1lbnRzKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBN
ZXNzYWdlTGV2ZWwgbGV2ZWwsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBSZWY8U2NyaXB0QXJndW1l
bnRzPiYmIGFyZ3VtZW50cykKQEAgLTE3MCw3ICsxNzMsMTAgQEAgdm9pZCBDb25zb2xlQ2xpZW50
OjpwcmludENvbnNvbGVNZXNzYWdlV2l0aEFyZ3VtZW50cyhNZXNzYWdlU291cmNlIHNvdXJjZSwg
TWVzc2EKICAgICAgICAgc2NvcGUuY2xlYXJFeGNlcHRpb24oKTsKICAgICB9CiAKLSAgICBXVEZM
b2dBbHdheXMoIiVzIiwgYnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgV1RGTG9nQWx3YXlz
KCIlcyIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgp
OwogCiAgICAgaWYgKGlzVHJhY2VNZXNzYWdlKSB7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgY2FsbFN0YWNrLT5zaXplKCk7ICsraSkgewpAQCAtMTg3LDcgKzE5MywxMCBAQCB2b2lk
IENvbnNvbGVDbGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2VXaXRoQXJndW1lbnRzKE1lc3NhZ2VT
b3VyY2Ugc291cmNlLCBNZXNzYQogICAgICAgICAgICAgYXBwZW5kVVJMQW5kUG9zaXRpb24oY2Fs
bEZyYW1lQnVpbGRlciwgY2FsbEZyYW1lLnNvdXJjZVVSTCgpLCBjYWxsRnJhbWUubGluZU51bWJl
cigpLCBjYWxsRnJhbWUuY29sdW1uTnVtYmVyKCkpOwogICAgICAgICAgICAgY2FsbEZyYW1lQnVp
bGRlci5hcHBlbmQoJyknKTsKIAotICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCIlcyIsIGNhbGxG
cmFtZUJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IGNhbGxGcmFtZUJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAg
ICBXVEZMb2dBbHdheXMoIiVzIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAgICAgfQogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwCmluZGV4
IDhhODdjYzYuLjQyM2JlMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0RhdGVDb252ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRlQ29udmVyc2lvbi5jcHAKQEAgLTEyMyw3ICsxMjMsOSBAQCBTdHJpbmcgZm9ybWF0RGF0
ZVRpbWUoY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUmIHQsIERhdGVUaW1lRm9ybWF0IGZvcm1hdCwg
Ym9vbCBhcwogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KS5pbXBsKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gc3RyaW5nLT5pbXBsKCk7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJv
ckluc3RhbmNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFu
Y2UuY3BwCmluZGV4IGMxNzI0MjguLjc4ZDI5OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCkBAIC0xOTksNyArMTk5LDkgQEAgU3RyaW5n
IEVycm9ySW5zdGFuY2U6OnNhbml0aXplZFRvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKICAgICBi
dWlsZGVyLmFwcGVuZChuYW1lU3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjog
Iik7CiAgICAgYnVpbGRlci5hcHBlbmQobWVzc2FnZVN0cmluZyk7Ci0gICAgcmV0dXJuIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgRXJyb3JJ
bnN0YW5jZTo6bWF0ZXJpYWxpemVFcnJvckluZm9JZk5lZWRlZChWTSYgdm0pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCmluZGV4IDY5
OTE0NGIuLjZlMDFiOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0V4Y2VwdGlvbkhlbHBlcnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0V4Y2VwdGlvbkhlbHBlcnMuY3BwCkBAIC0yMTEsNyArMjExLDkgQEAgc3RhdGljIFN0cmluZyBu
b3RBRnVuY3Rpb25Tb3VyY2VBcHBlbmRlcihjb25zdCBTdHJpbmcmIG9yaWdpbmFsTWVzc2FnZSwg
Y29uc3QgU3QKICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKIAotICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMg
U3RyaW5nIGludmFsaWRQYXJhbWV0ZXJJblNvdXJjZUFwcGVuZGVyKGNvbnN0IFN0cmluZyYgb3Jp
Z2luYWxNZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVRleHQsIFJ1bnRpbWVUeXBlIHR5cGUs
IEVycm9ySW5zdGFuY2U6OlNvdXJjZVRleHRXaGVyZUVycm9yT2NjdXJyZWQgb2NjdXJyZW5jZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3Ry
dWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1
Y3Rvci5jcHAKaW5kZXggMWI3MmFmNS4uYWFiZmY2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKQEAgLTEyNSwyMiAr
MTI1LDIyIEBAIEpTT2JqZWN0KiBjb25zdHJ1Y3RGdW5jdGlvblNraXBwaW5nRXZhbEVuYWJsZWRD
aGVjaygKICAgICAgICAgcHJvZ3JhbSA9IG1ha2VTdHJpbmcoInsiLCBwcmVmaXgsIGZ1bmN0aW9u
TmFtZS5zdHJpbmcoKSwgIigpIHtcbiIsIGJvZHksICJcbn19Iik7CiAgICAgfSBlbHNlIHsKICAg
ICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBib29sIHN1Y2Nlc3MgPSB0cnVl
OwotICAgICAgICBzdWNjZXNzICY9IGJ1aWxkZXIudHJ5QXBwZW5kKCd7Jyk7Ci0gICAgICAgIHN1
Y2Nlc3MgJj0gYnVpbGRlci50cnlBcHBlbmQocHJlZml4KTsKLSAgICAgICAgc3VjY2VzcyAmPSBi
dWlsZGVyLnRyeUFwcGVuZChmdW5jdGlvbk5hbWUuc3RyaW5nKCkpOwotICAgICAgICBzdWNjZXNz
ICY9IGJ1aWxkZXIudHJ5QXBwZW5kKCcoJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCd7Jyk7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHByZWZpeCk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KGZ1bmN0aW9uTmFtZS5zdHJpbmcoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcoJyk7CiAg
ICAgICAgIFN0cmluZ0J1aWxkZXIgcGFyYW1ldGVyQnVpbGRlcjsKICAgICAgICAgYXV0byB2aWV3
V2l0aFN0cmluZyA9IGFyZ3MuYXQoMCkudG9TdHJpbmcoZXhlYyktPnZpZXdXaXRoVW5kZXJseWlu
Z1N0cmluZyhleGVjKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0
cik7Ci0gICAgICAgIHN1Y2Nlc3MgJj0gcGFyYW1ldGVyQnVpbGRlci50cnlBcHBlbmQodmlld1dp
dGhTdHJpbmcudmlldyk7CisgICAgICAgIHBhcmFtZXRlckJ1aWxkZXIuYXBwZW5kKHZpZXdXaXRo
U3RyaW5nLnZpZXcpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMTsgaSA8IGFyZ3Muc2l6ZSgp
IC0gMTsgaSsrKSB7Ci0gICAgICAgICAgICBzdWNjZXNzICY9IHBhcmFtZXRlckJ1aWxkZXIudHJ5
QXBwZW5kTGl0ZXJhbCgiLCAiKTsKKyAgICAgICAgICAgIHBhcmFtZXRlckJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiLCAiKTsKICAgICAgICAgICAgIGF1dG8gdmlld1dpdGhTdHJpbmcgPSBhcmdzLmF0
KGkpLnRvU3RyaW5nKGV4ZWMpLT52aWV3V2l0aFVuZGVybHlpbmdTdHJpbmcoZXhlYyk7CiAgICAg
ICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLSAgICAgICAgICAg
IHN1Y2Nlc3MgJj0gcGFyYW1ldGVyQnVpbGRlci50cnlBcHBlbmQodmlld1dpdGhTdHJpbmcudmll
dyk7CisgICAgICAgICAgICBwYXJhbWV0ZXJCdWlsZGVyLmFwcGVuZCh2aWV3V2l0aFN0cmluZy52
aWV3KTsKICAgICAgICAgfQotICAgICAgICBpZiAoIXN1Y2Nlc3MpIHsKKworICAgICAgICBpZiAo
YnVpbGRlci5mYWlsZWQoKSB8fCBwYXJhbWV0ZXJCdWlsZGVyLmZhaWxlZCgpKSB7CiAgICAgICAg
ICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZXhlYywgc2NvcGUpOwogICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgICAgIH0KQEAgLTE0OCw3ICsxNDgsOCBAQCBKU09iamVjdCogY29u
c3RydWN0RnVuY3Rpb25Ta2lwcGluZ0V2YWxFbmFibGVkQ2hlY2soCiAgICAgICAgIHsKICAgICAg
ICAgICAgIC8vIFRoZSBzcGVjIG1hbmRhdGVzIHRoYXQgdGhlIHBhcmFtZXRlcnMgcGFyc2UgYXMg
YSB2YWxpZCBwYXJhbWV0ZXIgbGlzdAogICAgICAgICAgICAgLy8gaW5kZXBlbmRlbnQgb2YgdGhl
IGZ1bmN0aW9uIGJvZHkuCi0gICAgICAgICAgICBTdHJpbmcgcHJvZ3JhbSA9IG1ha2VTdHJpbmco
IigiLCBwcmVmaXgsICIoIiwgcGFyYW1ldGVyQnVpbGRlci50b1N0cmluZygpLCAiKXtcblxufSki
KTsKKyAgICAgICAgICAgIGF1dG8gc3RyaW5nID0gcGFyYW1ldGVyQnVpbGRlci50b1N0cmluZygp
LnZhbHVlKCk7CisgICAgICAgICAgICBTdHJpbmcgcHJvZ3JhbSA9IG1ha2VTdHJpbmcoIigiLCBw
cmVmaXgsICIoIiwgc3RyaW5nLCAiKXtcblxufSkiKTsKICAgICAgICAgICAgIFNvdXJjZUNvZGUg
c291cmNlID0gbWFrZVNvdXJjZShwcm9ncmFtLCBzb3VyY2VPcmlnaW4sIHNvdXJjZVVSTCwgcG9z
aXRpb24pOwogICAgICAgICAgICAgSlNWYWx1ZSBleGNlcHRpb247CiAgICAgICAgICAgICBjaGVj
a1N5bnRheChleGVjLCBzb3VyY2UsICZleGNlcHRpb24pOwpAQCAtMTU4LDE5ICsxNTksMjAgQEAg
SlNPYmplY3QqIGNvbnN0cnVjdEZ1bmN0aW9uU2tpcHBpbmdFdmFsRW5hYmxlZENoZWNrKAogICAg
ICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgc3VjY2VzcyAmPSBidWlsZGVyLnRyeUFw
cGVuZChwYXJhbWV0ZXJCdWlsZGVyKTsKLSAgICAgICAgc3VjY2VzcyAmPSBidWlsZGVyLnRyeUFw
cGVuZExpdGVyYWwoIikge1xuIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHBhcmFtZXRlckJ1
aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIikge1xuIik7CiAgICAgICAg
IGF1dG8gYm9keSA9IGFyZ3MuYXQoYXJncy5zaXplKCkgLSAxKS50b1dURlN0cmluZyhleGVjKTsK
ICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgICAgIGNo
ZWNrQm9keShib2R5KTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0
cik7Ci0gICAgICAgIHN1Y2Nlc3MgJj0gYnVpbGRlci50cnlBcHBlbmQoYm9keSk7Ci0gICAgICAg
IHN1Y2Nlc3MgJj0gYnVpbGRlci50cnlBcHBlbmRMaXRlcmFsKCJcbn19Iik7Ci0gICAgICAgIGlm
ICghc3VjY2VzcykgeworICAgICAgICBidWlsZGVyLmFwcGVuZChib2R5KTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmRMaXRlcmFsKCJcbn19Iik7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHByb2dyYW0gPSAqc3RyaW5nOworICAgICAg
ICBlbHNlIHsKICAgICAgICAgICAgIHRocm93T3V0T2ZNZW1vcnlFcnJvcihleGVjLCBzY29wZSk7
CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQotICAgICAgICBwcm9ncmFt
ID0gYnVpbGRlci50b1N0cmluZygpOwogICAgIH0KIAogICAgIFNvdXJjZUNvZGUgc291cmNlID0g
bWFrZVNvdXJjZShwcm9ncmFtLCBzb3VyY2VPcmlnaW4sIHNvdXJjZVVSTCwgcG9zaXRpb24pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9y
bWF0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1h
dC5jcHAKaW5kZXggYzkyMGFjZi4uMmMyZjA0NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCkBAIC02NDYsNyArNjQ2LDEx
IEBAIHZvaWQgSW50bERhdGVUaW1lRm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQoRXhl
Y1N0YXRlJiBleGVjLCBKU1ZhbHVlIGxvY2FsCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBTdHJpbmcgc2tlbGV0b24gPSBza2VsZXRvbkJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBTdHJp
bmcgc2tlbGV0b247CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc2tlbGV0b25CdWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgIHNrZWxldG9uID0gKnN0cmluZzsKKyAgICBlbHNlCisgICAgICAgIENS
QVNIKCk7CiAgICAgU3RyaW5nVmlldyBza2VsZXRvblZpZXcoc2tlbGV0b24pOwogICAgIFZlY3Rv
cjxVQ2hhciwgMzI+IHBhdHRlcm5CdWZmZXIoMzIpOwogICAgIHN0YXR1cyA9IFVfWkVST19FUlJP
UjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3Qu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKaW5kZXgg
NGE3ZjZkZS4uZjY5NzhkYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bE9iamVjdC5jcHAKQEAgLTI1OCw3ICsyNTgsOSBAQCBzdGF0aWMgU3RyaW5nIHByaXZhdGVVc2VM
YW5nVGFnKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJ0cywgc2l6ZV90IHN0YXJ0SW5kZXgpCiAg
ICAgaWYgKGN1cnJlbnRJbmRleCA8IG51bVBhcnRzKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7
CiAKLSAgICByZXR1cm4gcHJpdmF0ZXVzZS50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHByaXZhdGV1c2UudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBjYW5vbmljYWxMYW5nVGFnKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBwYXJ0cykKQEAgLTM5MSw3ICszOTMsMTAgQEAgc3RhdGljIFN0cmluZyBjYW5v
bmljYWxMYW5nVGFnKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJ0cykKICAgICAgICAgaWYgKCFu
dW1FeHRQYXJ0cykKICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgICAgICBleHRl
bnNpb25zLmFwcGVuZChleHRlbnNpb24udG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IGV4dGVuc2lvbi50b1N0cmluZygpKQorICAgICAgICAgICAgZXh0ZW5zaW9ucy5hcHBl
bmQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQog
CiAgICAgLy8gQWRkIGV4dGVuc2lvbnMgdG8gY2Fub25pY2FsIHNvcnRlZCBieSBzaW5nbGV0b24u
CkBAIC00MTksNyArNDI0LDkgQEAgc3RhdGljIFN0cmluZyBjYW5vbmljYWxMYW5nVGFnKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBwYXJ0cykKIAogICAgIC8vIEZJWE1FOiBSZXBsYWNlIHN1YnRhZ3Mg
d2l0aCB0aGVpciBwcmVmZXJyZWQgdmFsdWVzLgogCi0gICAgcmV0dXJuIGNhbm9uaWNhbC50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGNhbm9uaWNhbC50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIGdy
YW5kZmF0aGVyZWRMYW5nVGFnKGNvbnN0IFN0cmluZyYgbG9jYWxlKQpAQCAtNjI0LDcgKzYzMSwx
MCBAQCBTdHJpbmcgcmVtb3ZlVW5pY29kZUxvY2FsZUV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGxv
Y2FsZSkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHBhcnRzW3BdKTsKICAgICAgICAgfQog
ICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworCisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBD
UkFTSCgpOwogfQogCiBzdGF0aWMgTWF0Y2hlclJlc3VsdCBsb29rdXBNYXRjaGVyKEV4ZWNTdGF0
ZSYgc3RhdGUsIGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYgYXZhaWxhYmxlTG9jYWxlcywgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHJlcXVlc3RlZExvY2FsZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKaW5kZXgg
NzMxMzY3My4uMTliNTJhZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcApAQCAtMTUxLDcgKzE1MSw5IEBA
IHN0YXRpYyBKU1ZhbHVlIGVuY29kZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEJpdG1hcDwyNTY+
JiBkb05vdEVzY2FwZSwgY29uc3QgQ2hhCiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4g
anNTdHJpbmcoZXhlYywgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBqc1N0cmluZyhleGVjLCAqc3Ry
aW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgSlNWYWx1ZSBlbmNvZGUoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBCaXRtYXA8MjU2PiYgZG9Ob3RFc2NhcGUpCkBAIC0yMzAsNyArMjMyLDEw
IEBAIHN0YXRpYyBKU1ZhbHVlIGRlY29kZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IENoYXJUeXBl
KiBjaGFyYWN0ZXJzLCBpbnQgbGVuZ3RoLCBjCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGMpOwog
ICAgIH0KICAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGpzU3RyaW5nKCZ2bSwgYnVp
bGRlci50b1N0cmluZygpKTsKKworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuIGpzU3RyaW5nKCZ2bSwgKnN0cmluZyk7CisgICAgQ1JBU0go
KTsKIH0KIAogc3RhdGljIEpTVmFsdWUgZGVjb2RlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQml0
bWFwPDI1Nj4mIGRvTm90VW5lc2NhcGUsIGJvb2wgc3RyaWN0KQpAQCAtNjAzLDcgKzYwOCw5IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0VzY2FwZShFeGVjU3RhdGUq
IGV4ZWMpCiAgICAgICAgICAgICAgICAgICAgIGFwcGVuZEJ5dGVBc0hleChzdGF0aWNfY2FzdDxM
Q2hhcj4odSksIGJ1aWxkZXIpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIHJldHVybiBqc1N0cmluZyhleGVjLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAg
ICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAg
ICAgICAgIHJldHVybiBqc1N0cmluZyhleGVjLCAqc3RyaW5nKTsKKyAgICAgICAgICAgIENSQVNI
KCk7CiAgICAgICAgIH0KIAogICAgICAgICBjb25zdCBVQ2hhciogYyA9IHZpZXcuY2hhcmFjdGVy
czE2KCk7CkBAIC02MjIsNyArNjI5LDkgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBn
bG9iYWxGdW5jRXNjYXBlKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogCi0gICAgICAgIHJldHVybiBqc1N0cmluZyhleGVjLCBidWlsZGVyLnRvU3RyaW5nKCkpOwor
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAg
ICByZXR1cm4ganNTdHJpbmcoZXhlYywgKnN0cmluZyk7CisgICAgICAgIENSQVNIKCk7CiAgICAg
fSkpOwogfQogCkBAIC02NzgsNyArNjg3LDkgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBnbG9iYWxGdW5jVW5lc2NhcGUoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAKLSAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsIGJ1aWxkZXIudG9TdHJpbmco
KSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgICAgIHJldHVybiBqc1N0cmluZyhleGVjLCAqc3RyaW5nKTsKKyAgICAgICAgQ1JBU0goKTsK
ICAgICB9KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT05PYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVj
dC5jcHAKaW5kZXggN2U5YjNkNmEuLmQ3YzA2ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCkBAIC0yNzgsNyArMjc4LDkgQEAgSlNWYWx1ZSBTdHJp
bmdpZmllcjo6c3RyaW5naWZ5KEpTVmFsdWUgdmFsdWUpCiAgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwogCiAgICAgc2NvcGUucmVsZWFzZSgpOwotICAgIHJldHVybiBqc1N0cmluZyhtX2V4
ZWMsIHJlc3VsdC50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIGpzU3RyaW5nKG1fZXhlYywgKnN0cmluZyk7CisgICAg
Q1JBU0goKTsKIH0KIAogQUxXQVlTX0lOTElORSBKU1ZhbHVlIFN0cmluZ2lmaWVyOjp0b0pTT04o
SlNWYWx1ZSB2YWx1ZSwgY29uc3QgUHJvcGVydHlOYW1lRm9yRnVuY3Rpb25DYWxsJiBwcm9wZXJ0
eU5hbWUpCkBAIC0zNTcsNyArMzU5LDcgQEAgU3RyaW5naWZpZXI6OlN0cmluZ2lmeVJlc3VsdCBT
dHJpbmdpZmllcjo6YXBwZW5kU3RyaW5naWZpZWRWYWx1ZShTdHJpbmdCdWlsZGVyJgogICAgIGlm
ICh2YWx1ZS5pc1N0cmluZygpKSB7CiAgICAgICAgIGNvbnN0IFN0cmluZyYgc3RyaW5nID0gYXNT
dHJpbmcodmFsdWUpLT52YWx1ZShtX2V4ZWMpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBTdHJpbmdpZnlGYWlsZWQpOwotICAgICAgICBpZiAoYnVpbGRlci50cnlBcHBlbmRR
dW90ZWRKU09OU3RyaW5nKHN0cmluZykpCisgICAgICAgIGlmIChidWlsZGVyLmFwcGVuZFF1b3Rl
ZEpTT05TdHJpbmcoc3RyaW5nKSkKICAgICAgICAgICAgIHJldHVybiBTdHJpbmdpZnlTdWNjZWVk
ZWQ7CiAgICAgICAgIHRocm93T3V0T2ZNZW1vcnlFcnJvcihtX2V4ZWMsIHNjb3BlKTsKICAgICAg
ICAgcmV0dXJuIFN0cmluZ2lmeUZhaWxlZDsKQEAgLTUwNCw4ICs1MDYsMTIgQEAgYm9vbCBTdHJp
bmdpZmllcjo6SG9sZGVyOjphcHBlbmROZXh0UHJvcGVydHkoU3RyaW5naWZpZXImIHN0cmluZ2lm
aWVyLCBTdHJpbmdCdWkKICAgICAvLyBMYXN0IHRpbWUgdGhyb3VnaCwgZmluaXNoIHVwIGFuZCBy
ZXR1cm4gZmFsc2UuCiAgICAgaWYgKG1faW5kZXggPT0gbV9zaXplKSB7CiAgICAgICAgIHN0cmlu
Z2lmaWVyLnVuaW5kZW50KCk7Ci0gICAgICAgIGlmIChtX3NpemUgJiYgYnVpbGRlcltidWlsZGVy
Lmxlbmd0aCgpIC0gMV0gIT0gJ3snKQotICAgICAgICAgICAgc3RyaW5naWZpZXIuc3RhcnROZXdM
aW5lKGJ1aWxkZXIpOworICAgICAgICBpZiAobV9zaXplKSB7CisgICAgICAgICAgICBpZiAoYnVp
bGRlci5mYWlsZWQoKSkKKyAgICAgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICAgICAgaWYg
KCpidWlsZGVyW2J1aWxkZXIubGVuZ3RoKCkgLSAxXSAhPSAneycpCisgICAgICAgICAgICAgICAg
c3RyaW5naWZpZXIuc3RhcnROZXdMaW5lKGJ1aWxkZXIpOworICAgICAgICB9CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKG1faXNBcnJheSA/ICddJyA6ICd9Jyk7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CkBAIC01NDgsNyArNTU0LDkgQEAgYm9vbCBTdHJpbmdpZmllcjo6SG9sZGVyOjph
cHBlbmROZXh0UHJvcGVydHkoU3RyaW5naWZpZXImIHN0cmluZ2lmaWVyLCBTdHJpbmdCdWkKICAg
ICAgICAgcm9sbEJhY2tQb2ludCA9IGJ1aWxkZXIubGVuZ3RoKCk7CiAKICAgICAgICAgLy8gQXBw
ZW5kIHRoZSBzZXBhcmF0b3Igc3RyaW5nLgotICAgICAgICBpZiAoYnVpbGRlcltyb2xsQmFja1Bv
aW50IC0gMV0gIT0gJ3snKQorICAgICAgICBpZiAoYnVpbGRlci5mYWlsZWQoKSkKKyAgICAgICAg
ICAgIENSQVNIKCk7CisgICAgICAgIGlmICgqYnVpbGRlcltyb2xsQmFja1BvaW50IC0gMV0gIT0g
J3snKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJywnKTsKICAgICAgICAgc3RyaW5naWZp
ZXIuc3RhcnROZXdMaW5lKGJ1aWxkZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwCmluZGV4IGYwMGZlMDcuLmI4Njg2OGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwCkBAIC00NjYs
MTAgKzQ2NiwxNiBAQCBzbG93UGF0aEJlZ2luOgogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICht
X2J1aWxkZXIuaXM4Qml0KCkpIHsKICAgICAgICAgICAgIHRva2VuLnN0cmluZ0lzOEJpdCA9IDE7
Ci0gICAgICAgICAgICB0b2tlbi5zdHJpbmdUb2tlbjggPSBtX2J1aWxkZXIuY2hhcmFjdGVyczgo
KTsKKyAgICAgICAgICAgIGlmIChhdXRvIGNoYXJzID0gbV9idWlsZGVyLmNoYXJhY3RlcnM4KCkp
CisgICAgICAgICAgICAgICAgdG9rZW4uc3RyaW5nVG9rZW44ID0gKmNoYXJzOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICB0b2tlbi5zdHJpbmdJczhCaXQgPSAwOwotICAgICAgICAgICAgdG9rZW4uc3RyaW5n
VG9rZW4xNiA9IG1fYnVpbGRlci5jaGFyYWN0ZXJzMTYoKTsKKyAgICAgICAgICAgIGlmIChhdXRv
IGNoYXJzID0gbV9idWlsZGVyLmNoYXJhY3RlcnMxNigpKQorICAgICAgICAgICAgICAgIHRva2Vu
LnN0cmluZ1Rva2VuMTYgPSAqY2hhcnM7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgICAgICB0b2tlbi5zdHJpbmdMZW5ndGggPSBtX2J1
aWxkZXIubGVuZ3RoKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRp
b25zLmNwcAppbmRleCBkZjk4MjIwLi41YjRkYzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcHRpb25zLmNwcApAQCAtNTk1LDcgKzU5NSwxMCBAQCB2b2lkIE9wdGlvbnM6OmR1
bXBPcHRpb25zSWZOZWVkZWQoKQogCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAg
ICAgICAgZHVtcEFsbE9wdGlvbnMoYnVpbGRlciwgbGV2ZWwsIHRpdGxlLCBudWxscHRyLCAiICAg
IiwgIlxuIiwgRHVtcERlZmF1bHRzKTsKLSAgICAgICAgZGF0YUxvZyhidWlsZGVyLnRvU3RyaW5n
KCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgICAgICBkYXRhTG9nKCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFT
SCgpOwogICAgIH0KIH0KIApAQCAtODA0LDcgKzgwNywxMCBAQCB2b2lkIE9wdGlvbnM6OmR1bXBB
bGxPcHRpb25zKEZJTEUqIHN0cmVhbSwgRHVtcExldmVsIGxldmVsLCBjb25zdCBjaGFyKiB0aXRs
ZSkKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgZHVtcEFsbE9wdGlvbnMoYnVp
bGRlciwgbGV2ZWwsIHRpdGxlLCBudWxscHRyLCAiICAgIiwgIlxuIiwgRHVtcERlZmF1bHRzKTsK
LSAgICBmcHJpbnRmKHN0cmVhbSwgIiVzIiwgYnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
ZnByaW50ZihzdHJlYW0sICIlcyIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgZWxzZQor
ICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIE9wdGlvbnM6OmR1bXBPcHRpb24oU3RyaW5nQnVp
bGRlciYgYnVpbGRlciwgRHVtcExldmVsIGxldmVsLCBPcHRpb25zOjpJRCBpZCwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCmluZGV4IDc2
MzEwNDcuLjhiZGQyZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwUHJvdG90eXBlLmNwcApAQCAtNDY3LDcgKzQ2Nyw5IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSByZWdFeHBQcm90b0dldHRlclNvdXJjZUludGVybmFsKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgU3RyCiAgICAgICAgICAgICBwcmV2aW91c0NoYXJhY3Rlcldhc0JhY2tzbGFzaCA9IGNoID09
ICdcXCc7CiAgICAgfQogCi0gICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsIHJlc3VsdC50b1N0cmlu
ZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuIGpzU3RyaW5nKGV4ZWMsICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJTb3VyY2UoRXhlY1N0YXRl
KiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxp
bmdQcm9maWxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1By
b2ZpbGVyLmNwcAppbmRleCA1OTJhZjQxLi5mMDhjNGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcApAQCAtOTA0LDcgKzkwNCw5
IEBAIFN0cmluZyBTYW1wbGluZ1Byb2ZpbGVyOjpzdGFja1RyYWNlc0FzSlNPTigpCiAKICAgICBj
bGVhckRhdGEobG9ja2VyKTsKIAotICAgIHJldHVybiBqc29uLnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0ganNvbi50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiB2b2lkIFNhbXBsaW5nUHJvZmlsZXI6OnJlZ2lzdGVyRm9yUmVw
b3J0QXRFeGl0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
YWNrRnJhbWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5j
cHAKaW5kZXggOWYyZDYwZC4uNDhhMjJiMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RhY2tGcmFtZS5jcHAKQEAgLTEzOSw3ICsxMzksOSBAQCBTdHJpbmcgU3RhY2tGcmFt
ZTo6dG9TdHJpbmcoVk0mIHZtKSBjb25zdAogICAgICAgICAgICAgdHJhY2VCdWlsZC5hcHBlbmRO
dW1iZXIoY29sdW1uKTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gdHJhY2VCdWlsZC50
b1N0cmluZygpLmltcGwoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0cmFjZUJ1aWxkLnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiBzdHJpbmctPmltcGwoKTsKKyAgICBDUkFTSCgpOwogfQog
CiB2b2lkIFN0YWNrRnJhbWU6OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rv
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5j
cHAKaW5kZXggMGIxMGQ4Zi4uNWVkMmVhZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcApAQCAtMTI1LDcgKzEyNSw5IEBAIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ0Zyb21Db2RlUG9pbnQoRXhl
Y1N0YXRlKiBleGVjKQogICAgIH0KIAogICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKGV4ZWMsIGJ1aWxkZXIudG9TdHJpbmcoKSkpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1N0cmluZyhleGVjLCAqc3RyaW5nKSk7CisgICAgQ1JBU0goKTsKIH0K
IAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aFN0cmlu
Z0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCmluZGV4IGEwZDM2MDEuLjU4Y2NkNTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNw
cApAQCAtMjgwLDcgKzI4MCw5IEBAIHN0YXRpYyBORVZFUl9JTkxJTkUgU3RyaW5nIHN1YnN0aXR1
dGVCYWNrcmVmZXJlbmNlc1Nsb3coU3RyaW5nVmlldyByZXBsYWNlbWVudCwKICAgICBpZiAocmVw
bGFjZW1lbnQubGVuZ3RoKCkgLSBvZmZzZXQpCiAgICAgICAgIHN1YnN0aXR1dGVkUmVwbGFjZW1l
bnQuYXBwZW5kKHJlcGxhY2VtZW50LnN1YnN0cmluZyhvZmZzZXQpKTsKIAotICAgIHJldHVybiBz
dWJzdGl0dXRlZFJlcGxhY2VtZW50LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
c3Vic3RpdHV0ZWRSZXBsYWNlbWVudC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBpbmxpbmUgU3RyaW5nIHN1YnN0aXR1dGVCYWNrcmVmZXJl
bmNlc0lubGluZShjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50LCBTdHJpbmdWaWV3IHNvdXJjZSwg
Y29uc3QgaW50KiBvdmVjdG9yLCBSZWdFeHAqIHJlZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQcm9maWxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9UeXBlUHJvZmlsZXIuY3BwCmluZGV4IDBmODVlZjguLjdhZTk3NDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQcm9maWxlci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmNwcApAQCAtMTA0
LDggKzEwNCwxMCBAQCBTdHJpbmcgVHlwZVByb2ZpbGVyOjp0eXBlSW5mb3JtYXRpb25Gb3JFeHBy
ZXNzaW9uQXRPZmZzZXQoVHlwZVByb2ZpbGVyU2VhcmNoRGVzYwogICAgICAgICBqc29uLmFwcGVu
ZExpdGVyYWwoImZhbHNlIik7CiAKICAgICBqc29uLmFwcGVuZCgnfScpOwotICAgIAotICAgIHJl
dHVybiBqc29uLnRvU3RyaW5nKCk7CisKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBqc29uLnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFR5cGVM
b2NhdGlvbiogVHlwZVByb2ZpbGVyOjpmaW5kTG9jYXRpb24odW5zaWduZWQgZGl2b3QsIGludHB0
cl90IHNvdXJjZUlELCBUeXBlUHJvZmlsZXJTZWFyY2hEZXNjcmlwdG9yIGRlc2NyaXB0b3IsIFZN
JiB2bSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVTZXQu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVNldC5jcHAKaW5kZXggN2E0
MTJlNi4uYzNhMDVjNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
VHlwZVNldC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVNldC5j
cHAKQEAgLTEzMSw3ICsxMzEsOSBAQCBTdHJpbmcgVHlwZVNldDo6ZHVtcFR5cGVzKCkgY29uc3QK
ICAgICAgICAgc2Vlbi5hcHBlbmQobGVhc3RDb21tb25BbmNlc3RvcigpKTsKICAgICB9CiAKLSAg
ICByZXR1cm4gc2Vlbi50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHNlZW4udG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9v
bCBUeXBlU2V0Ojpkb2VzVHlwZUNvbmZvcm1UbyhSdW50aW1lVHlwZU1hc2sgdGVzdCkgY29uc3QK
QEAgLTMxNyw3ICszMTksOSBAQCBTdHJpbmcgVHlwZVNldDo6dG9KU09OU3RyaW5nKCkgY29uc3QK
ICAgICBqc29uLmFwcGVuZCgnXScpOwogCiAgICAganNvbi5hcHBlbmQoJ30nKTsKLSAgICByZXR1
cm4ganNvbi50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGpzb24udG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RydWN0dXJl
U2hhcGU6OlN0cnVjdHVyZVNoYXBlKCkKQEAgLTM2Miw4ICszNjYsMTEgQEAgU3RyaW5nIFN0cnVj
dHVyZVNoYXBlOjpwcm9wZXJ0eUhhc2goKQogICAgICAgICBidWlsZGVyLmFwcGVuZChtX3Byb3Rv
LT5wcm9wZXJ0eUhhc2goKSk7CiAgICAgfQogCi0gICAgbV9wcm9wZXJ0eUhhc2ggPSBzdGQ6Om1h
a2VfdW5pcXVlPFN0cmluZz4oYnVpbGRlci50b1N0cmluZygpKTsKLSAgICByZXR1cm4gKm1fcHJv
cGVydHlIYXNoOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkgewor
ICAgICAgICBtX3Byb3BlcnR5SGFzaCA9IHN0ZDo6bWFrZV91bmlxdWU8U3RyaW5nPigqc3RyaW5n
KTsKKyAgICAgICAgcmV0dXJuICptX3Byb3BlcnR5SGFzaDsKKyAgICB9CisgICAgQ1JBU0goKTsK
IH0KIAogU3RyaW5nIFN0cnVjdHVyZVNoYXBlOjpsZWFzdENvbW1vbkFuY2VzdG9yKGNvbnN0IFZl
Y3RvcjxSZWY8U3RydWN0dXJlU2hhcGU+PiYgc2hhcGVzKQpAQCAtNDI3LDcgKzQzNCw5IEBAIFN0
cmluZyBTdHJ1Y3R1cmVTaGFwZTo6c3RyaW5nUmVwcmVzZW50YXRpb24oKQogCiAgICAgcmVwcmVz
ZW50YXRpb24uYXBwZW5kKCd9Jyk7CiAKLSAgICByZXR1cm4gcmVwcmVzZW50YXRpb24udG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXByZXNlbnRhdGlvbi50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgU3RydWN0
dXJlU2hhcGU6OnRvSlNPTlN0cmluZygpIGNvbnN0CkBAIC00OTQsNyArNTAzLDkgQEAgU3RyaW5n
IFN0cnVjdHVyZVNoYXBlOjp0b0pTT05TdHJpbmcoKSBjb25zdAogCiAgICAganNvbi5hcHBlbmQo
J30nKTsKIAotICAgIHJldHVybiBqc29uLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0ganNvbi50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogCiBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6U3RydWN0dXJlRGVzY3Jp
cHRpb24+IFN0cnVjdHVyZVNoYXBlOjppbnNwZWN0b3JSZXByZXNlbnRhdGlvbigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAKaW5kZXggZTZjZGQ1MC4uYzRkOGRlZCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RSZWdFeHAuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcApAQCAtMzI5LDEyICszMjksMTUgQEAgc3RhdGljIFJl
Z0V4cCogcGFyc2VSZWdFeHBMaW5lKFZNJiB2bSwgY2hhciogbGluZSwgaW50IGxpbmVMZW5ndGgs
IGNvbnN0IGNoYXIqKgogCiAgICAgKytpOwogCi0gICAgUmVnRXhwKiByID0gUmVnRXhwOjpjcmVh
dGUodm0sIHBhdHRlcm4udG9TdHJpbmcoKSwgcmVnRXhwRmxhZ3MobGluZSArIGkpKTsKLSAgICBp
ZiAoIXItPmlzVmFsaWQoKSkgewotICAgICAgICAqcmVnZXhwRXJyb3IgPSByLT5lcnJvck1lc3Nh
Z2UoKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcGF0
dGVybi50b1N0cmluZygpKSB7CisgICAgICAgIFJlZ0V4cCogciA9IFJlZ0V4cDo6Y3JlYXRlKHZt
LCAqc3RyaW5nLCByZWdFeHBGbGFncyhsaW5lICsgaSkpOworICAgICAgICBpZiAoIXItPmlzVmFs
aWQoKSkgeworICAgICAgICAgICAgKnJlZ2V4cEVycm9yID0gci0+ZXJyb3JNZXNzYWdlKCk7Cisg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcjsK
ICAgICB9Ci0gICAgcmV0dXJuIHI7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFJlZ0V4cFRl
c3QqIHBhcnNlVGVzdExpbmUoY2hhciogbGluZSwgaW50IGxpbmVMZW5ndGgpCkBAIC0zNzcsOCAr
MzgwLDExIEBAIHN0YXRpYyBSZWdFeHBUZXN0KiBwYXJzZVRlc3RMaW5lKGNoYXIqIGxpbmUsIGlu
dCBsaW5lTGVuZ3RoKQogICAgIGludCBzdGFydCwgZW5kOwogICAgIAogICAgIFJlZ0V4cFRlc3Qq
IHJlc3VsdCA9IG5ldyBSZWdFeHBUZXN0KCk7Ci0gICAgCi0gICAgcmVzdWx0LT5zdWJqZWN0ID0g
c3ViamVjdFN0cmluZy50b1N0cmluZygpOworCisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3ViamVj
dFN0cmluZy50b1N0cmluZygpKQorICAgICAgICByZXN1bHQtPnN1YmplY3QgPSAqc3RyaW5nOwor
ICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICByZXN1bHQtPm9mZnNldCA9IG9mZnNldDsK
ICAgICByZXN1bHQtPnJlc3VsdCA9IG1hdGNoUmVzdWx0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcAppbmRleCBlODNiNmVlLi40YWMy
N2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rpb25PdmVy
cmlkZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9GdW5jdGlvbk92ZXJy
aWRlcy5jcHAKQEAgLTIxOCwxMyArMjE4LDE4IEBAIHN0YXRpYyBTdHJpbmcgcGFyc2VDbGF1c2Uo
Y29uc3QgY2hhcioga2V5d29yZCwgc2l6ZV90IGtleXdvcmRMZW5ndGgsIEZJTEUqIGZpbGUsCiAg
ICAgICAgICAgICAgICAgRkFJTF9XSVRIX0VSUk9SKFNZTlRBWF9FUlJPUiwgKCJVbmV4cGVjdGVk
IGNoYXJhY3RlcnMgYWZ0ZXIgJyIsIGtleXdvcmQsICInIGNsYXVzZSBlbmQgZGVsaW1pdGVyICci
LCBkZWxpbWl0ZXIsICInOlxuIiwgbGluZSwgIlxuIikpOwogCiAgICAgICAgICAgICBidWlsZGVy
LmFwcGVuZChsaW5lLCBwIC0gbGluZSArIDEpOwotICAgICAgICAgICAgcmV0dXJuIGJ1aWxkZXIu
dG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgICAgIENSQVNI
KCk7CiAgICAgICAgIH0KICAgICAgICAgYnVpbGRlci5hcHBlbmQobGluZSk7CiAKICAgICB9IHdo
aWxlICgobGluZSA9IGZnZXRzKGJ1ZmZlciwgYnVmZmVyU2l6ZSwgZmlsZSkpKTsKIAotICAgIEZB
SUxfV0lUSF9FUlJPUihTWU5UQVhfRVJST1IsICgiJyIsIGtleXdvcmQsICInIGNsYXVzZSBlbmQg
ZGVsaW1pdGVyICciLCBkZWxpbWl0ZXIsICInIG5vdCBmb3VuZDpcbiIsIGJ1aWxkZXIudG9TdHJp
bmcoKSwgIlxuIiwgIkFyZSB5b3UgbWlzc2luZyBhICd9JyBiZWZvcmUgdGhlIGRlbGltaXRlcj9c
biIpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IEZBSUxfV0lUSF9FUlJPUihTWU5UQVhfRVJST1IsICgiJyIsIGtleXdvcmQsICInIGNsYXVzZSBl
bmQgZGVsaW1pdGVyICciLCBkZWxpbWl0ZXIsICInIG5vdCBmb3VuZDpcbiIsICpzdHJpbmcsICJc
biIsICJBcmUgeW91IG1pc3NpbmcgYSAnfScgYmVmb3JlIHRoZSBkZWxpbWl0ZXI/XG4iKSk7Cisg
ICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEZ1bmN0aW9uT3ZlcnJpZGVzOjpw
YXJzZU92ZXJyaWRlc0luRmlsZShjb25zdCBjaGFyKiBmaWxlTmFtZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcAppbmRleCBhNzgyMGM5Li5mYTAwMzQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbi5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW4uY3BwCkBAIC0xNTAsOCArMTUw
LDExIEBAIHZvaWQgQkJRUGxhbjo6cHJlcGFyZSgpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIkZhaWxlZCBhbGxvY2F0aW5nIGVub3VnaCBzcGFjZSBmb3IgIik7CiAgICAgICAg
ICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihzaXplKTsKICAgICAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKHdoYXQpOwotICAgICAgICAgICAgZmFpbChob2xkTG9jayhtX2xvY2spLCBidWlsZGVyLnRv
U3RyaW5nKCkpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgZmFpbCho
b2xkTG9jayhtX2xvY2spLCBXVEZNb3ZlKCpzdHJpbmcpKTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9Z
YXJyUGFyc2VyLmgKaW5kZXggZjE2ZjExZi4uOGI3NThlYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhcnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS95YXJyL1lhcnJQYXJzZXIuaApAQCAtMTAzMSw4ICsxMDMxLDExIEBAIHByaXZhdGU6CiAKICAg
ICAgICAgICAgIHdoaWxlICghYXRFbmRPZlBhdHRlcm4oKSkgewogICAgICAgICAgICAgICAgIGNo
ID0gdHJ5Q29uc3VtZUlkZW50aWZpZXJDaGFyYWN0ZXIoKTsKLSAgICAgICAgICAgICAgICBpZiAo
Y2ggPT0gJz4nKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxTdHJp
bmc+KGlkZW50aWZpZXJCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIGlmIChj
aCA9PSAnPicpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gaWRlbnRp
ZmllckJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBz
dGQ6Om9wdGlvbmFsPFN0cmluZz4oKnN0cmluZyk7CisgICAgICAgICAgICAgICAgICAgIENSQVNI
KCk7CisgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgaWYgKCFpc0lkZW50aWZp
ZXJQYXJ0KGNoKSkKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xMDcwLDIzICsxMDcz
LDMyIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgaWYg
KGZvdW5kRXF1YWxzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gdW5pY29k
ZU1hdGNoUHJvcGVydHlWYWx1ZSh1bmljb2RlUHJvcGVydHlOYW1lLCBleHByZXNzaW9uQnVpbGRl
ci50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZXhw
cmVzc2lvbkJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYXV0
byByZXN1bHQgPSB1bmljb2RlTWF0Y2hQcm9wZXJ0eVZhbHVlKHVuaWNvZGVQcm9wZXJ0eU5hbWUs
ICpzdHJpbmcpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbV9lcnJvckNvZGUgPSBFcnJvckNvZGU6OkludmFsaWRVbmlj
b2RlUHJvcGVydHlFeHByZXNzaW9uOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBDUkFTSCgp
OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IGV4cHJlc3Npb25CdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0
byByZXN1bHQgPSB1bmljb2RlTWF0Y2hQcm9wZXJ0eSgqc3RyaW5nKTsKICAgICAgICAgICAgICAg
ICAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgICAgICAgICAgICAgICAgICBtX2Vycm9yQ29kZSA9
IEVycm9yQ29kZTo6SW52YWxpZFVuaWNvZGVQcm9wZXJ0eUV4cHJlc3Npb247CiAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICAgICAgYXV0byByZXN1bHQgPSB1bmljb2RlTWF0Y2hQcm9wZXJ0eShleHByZXNzaW9uQnVpbGRl
ci50b1N0cmluZygpKTsKLSAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAg
ICAgICAgICAgbV9lcnJvckNvZGUgPSBFcnJvckNvZGU6OkludmFsaWRVbmljb2RlUHJvcGVydHlF
eHByZXNzaW9uOwotICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAg
ICAgQ1JBU0goKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgY29uc3VtZSgpOwogICAg
ICAgICAgICAgaWYgKGNoID09ICc9JykgewogICAgICAgICAgICAgICAgIGlmICghZm91bmRFcXVh
bHMpIHsKICAgICAgICAgICAgICAgICAgICAgZm91bmRFcXVhbHMgPSB0cnVlOwotICAgICAgICAg
ICAgICAgICAgICB1bmljb2RlUHJvcGVydHlOYW1lID0gZXhwcmVzc2lvbkJ1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZXhwcmVzc2lvbkJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHVuaWNvZGVQcm9wZXJ0
eU5hbWUgPSAqc3RyaW5nOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9uQnVpbGRl
ci5jbGVhcigpOwogICAgICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAgICBl
cnJvcnMrKzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9D
aGFuZ2VMb2cKaW5kZXggODgxYjE2NC4uOGZlMTU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNDYgQEAKKzIw
MTgtMDQtMjYgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgorCisgICAgICAgIFN0
cmluZ0J1aWxkZXIgaXMgZmFsbGlibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4NTA0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFN0cmluZ0J1aWxkZXIgY2FuIGZhaWwgd2hlbiBhbGxvY2F0aW5nIG1l
bW9yeS4gU3RyaW5nQnVpbGRlciBpcworICAgICAgICBtb3N0bHkgdXNlZCB3aXRoIHVzZXIgaW5w
dXQsIHdoaWNoIG9mdGVuIG1lYW5zIHRoYXQganVzdCBjcmFzaGluZworICAgICAgICBpc24ndCB0
aGUgcmlnaHQgb3V0Y29tZS4gT3VyIGZ1enplcnMgb2Z0ZW4gZW5jb3VudGVyIHN1Y2ggdGhpbmdz
CisgICAgICAgIGZvciBKYXZhU2NyaXB0Q29yZSwgYW5kIHNvIGZhciB3ZSd2ZSBhcHBsaWVkIHBv
aW50IHNvbHV0aW9ucy4gTm8KKyAgICAgICAgbW9yZSEgVGhpcyBwYXRjaCBtYWtlcyBTdHJpbmdC
dWlsZGVyIGZhbGxpYmxlIGFuZCBlbmZvcmNlcyB0aGlzIGluCisgICAgICAgIHR3byB3YXlzOgor
CisgICAgICAgICAgLSBFYWNoIHN0ZXAgb2YgYnVpbGRpbmcgYSBzdHJpbmcgY2FuIGJlIGNoZWNr
ZWQgZm9yIGZhaWx1cmUKKyAgICAgICAgICAgIGJlY2F1c2UgdGhleSBub3cgcmV0dXJuIGEgIkZh
bGxpYmxlPFQ+Ii4gVGhpcyBjYW4gYmUgaWdub3JlZCBhdAorICAgICAgICAgICAgZXZlcnkgc3Rl
cCEKKyAgICAgICAgICAtIFRoZSBmaW5hbCBzdGVwIG9mIFN0cmluZ0J1aWxkZXIsIGdldHRpbmcg
dGhlIHN0cmluZyBvdXQsCisgICAgICAgICAgICByZXR1cm5zIGEgIkZhbGxpYmxlPFN0cmluZz4i
IHdoaWNoIGlzIG1hcmtlZCB3aXRoCisgICAgICAgICAgICBXQVJOX1VOVVNFRF9SRVRVUk4uIEZh
aWx1cmUgaXMgY29tbXVuaWNhdGVkIGlmIGFueSBvZiB0aGUgYnVpbGRpbmcKKyAgICAgICAgICAg
IHN0ZXBzIGZhaWxlZC4KKworICAgICAgICBEb2luZyB0aGlzIHR3by1zdGVwIGFwcHJvYWNoIG1l
YW5zIHRoYXQgY29kZSBjYW4gY29udGludWUKKyAgICAgICAgb3BlcmF0aW5nIGFzIGl0IGRpZCBi
ZWZvcmUgKGFwcGVuZCBhIGJ1bmNoIGFuZCB0aGVuIGdldCBhIHN0cmluZykKKyAgICAgICAgYW5k
IG9ubHkgbmVlZHMgdG8gY2FyZSBhYm91dCB0aGUgc3RyaW5nIHBvdGVudGlhbGx5IG5vdCBiZWlu
ZworICAgICAgICBhdmFpbGFibGUuIFRoaXMgaXMgZW5mb3JjZWQgYnkgdGhlIHR5cGUgc3lzdGVt
OiBGYWxsaWJsZTxUPiBpcworICAgICAgICBzdGQ6OmV4cGVjdGVkPFQsIFN0cmluZ0J1aWxkZXI6
OkZhaWx1cmU+LgorCisgICAgICAgIFRoZSBmb2xsb3dpbmcgaW50ZXJtZWRpYXRlIGZ1bmN0aW9u
cyBjYW4gbm93IGJlIG9ic2VydmVkIHRvIGZhaWwKKyAgICAgICAgKG9yIGlnbm9yZWQpOgorCisg
ICAgICAgICAgLSBhcHBlbmQKKyAgICAgICAgICAtIGFwcGVuZFVuaW5pdGlhbGl6ZWQKKyAgICAg
ICAgICAtIGFwcGVuZFVuaW5pdGlhbGl6ZWRTbG93CisgICAgICAgICAgLSBhcHBlbmRRdW90ZWRK
U09OU3RyaW5nIHVzZWQgdG8gcmV0dXJuIGZhbHNlIG9uIGZhaWx1cmUsIGl0IG5vdyByZXR1cm5z
IEZhbGxpYmxlPD4KKyAgICAgICAgICAtIHJlc2l6ZQorICAgICAgICAgIC0gYWxsb2NhdGVCdWZm
ZXIKKyAgICAgICAgICAtIGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0CisgICAgICAgICAgLSByZWFs
bG9jYXRlQnVmZmVyCisgICAgICAgICAgLSByZXNlcnZlQ2FwYWNpdHkKKyAgICAgICAgICAtIHNo
cmlua1RvRml0CisgICAgICAgICAgLSBvcGVyYXRvcltdCisgICAgICAgICAgLSBjaGFyYWN0ZXJz
OAorICAgICAgICAgIC0gY2hhcmFjdGVyczE2CisKKyAgICAgICAgRmFpbHVyZSBpbiB0aGVzZSBt
ZXRob2RzIGNvbWVzIGluIHR3byBmb3Jtczogb3V0IG9mIG1lbW9yeSwgYW5kCisgICAgICAgIHdv
dWxkIG92ZXJmbG93LiBXaGVuIGFuIG9wZXJhdGlvbiB3b3VsZCBvdmVyZmxvdyBpdCBsZWF2ZXMg
dGhlCisgICAgICAgIFN0cmluZ0J1aWxkZXIgaW4gaXRzIHByZXZpb3VzIHN0YXRlLCBhbGxvd2lu
ZyB1c2VycyB0byByZXN1bWUKKyAgICAgICAgd29yaywga2VlcCB0aGUgc3RyaW5nIGFzIGl0IGV4
aXN0ZWQgYmVmb3JlIGZhaWx1cmUuIFdoZW4gd2UganVzdAorICAgICAgICBmYWlsIGFsbG9jYXRp
bmcgaXQgbWVhbnMgd2UgZXhwZWN0ZWQgdG8gc3VjY2VlZCwgc28gY2xlYXJpbmcgdGhlCisgICAg
ICAgIFN0cmluZ0J1aWxkZXIgaXMgdGhlIHJpZ2h0IHRoaW5nIHRvIGRvLgorCisgICAgICAgIFN1
cHBvcnRpbmcgZmFpbHVyZSBpbiBTdHJpbmdCdWlsZGVyIHJlcXVpcmVkIGFkZGluZyAidHJ5IiB2
YXJpYW50cworICAgICAgICBvZiBzb21lIG1ldGhvZHMgaW4gU3RyaW5nSW1wbC4KKworICAgICAg
ICBUaGlzIHBhdGNoIHVwZGF0ZXMgYWxsIFdlYktpdCBjb2RlIHdoaWNoIHVzZXMgU3RyaW5nQnVp
bGRlci4gSXQKKyAgICAgICAgbGVhdmVzIGFsbCBpbnRlcm1lZGlhdGUgZnVuY3Rpb24gdXNhZ2Ug
YWxvbmUgKGNvZGUgc3RpbGwgYXBwZW5kcworICAgICAgICBiYWNrLXRvLWJhY2ssIGJsaXNzZnVs
bHkgdW5hd2FyZSBvZiBmYWlsdXJlKSwgYW5kIG9ubHkgY2hlY2tzIGZvcgorICAgICAgICBmYWls
dXJlIHdoZW4gcmV0cmlldmluZyB0aGUgc3RyaW5nLiBUaGUgcGF0dGVybiB1c2VkIGlzIHVzdWFs
bHk6CisKKyAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICBmb28oKnN0cmluZyk7IC8vIFVzZSBzdHJpbmcgYXMgYmVmb3JlLi4uCisgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKKworICAgICAgICBUaGlzIG1ha2VzIGZh
aWx1cmUgZXh0cmVtZWx5IGV4cGxpY2l0LiBUaGVyZSdzIG5vIHRydWUgYmVoYXZpb3IKKyAgICAg
ICAgY2hhbmdlOiB3aGF0IHdvdWxkIGhhdmUgY3Jhc2hlZCB3aGVuIGFwcGVuZGluZyBub3cgY3Jh
c2hlcyB3aGVuCisgICAgICAgIHJldHJpZXZpbmcgdGhlIHN0cmluZy4gUHVsbGluZyBDUkFTSCgp
IG91dCB3aWxsIGdpdmUgc2xpZ2h0bHkKKyAgICAgICAgYmV0dGVyIGNyYXNoIHNpZ25hdHVyZXMs
IGFuZCBpdCBtYWtlcyB0aGUgY29kZSB2ZXJ5IG9idmlvdXMgYWJvdXQKKyAgICAgICAgZmFpbHVy
ZS4gSSBwdXJwb3NlZnVsbHkgZG9uJ3QgImZpeCIgYW55IGZhaWx1cmUgYmVjYXVzZSB0aGVzZQor
ICAgICAgICBzaG91bGQgYmUgZG9uZSBpbiBhIHRhcmdldGVkIG1hbm5lciB3aXRoIHJlcHJvIHRl
c3RzIHdoZW5ldmVyCisgICAgICAgIHBvc3NpYmxlLiBJJ20gdmVyeSB3YXJ5IG9mIGludHJvZHVj
aW5nIGJ1Z3MhCisKKyAgICAgICAgV2hlbiBzb21lb25lIGluZXZpdGFibHkgYmxhbWVzIGNvZGUg
YmFjayB0byB0aGlzIGNvbW1pdCAoYmVjYXVzZQorICAgICAgICBoZXkgdGhlIGNvZGUgaXMgcHJl
dHR5IHVnbHksIGFuZCB5b3UgbWlnaHQgYmUgc3VycHJpc2VkIGF0IHNlZWluZworICAgICAgICBD
UkFTSCgpIGluIHlvdXIgYmVhdXRpZnVsIGNvZGUpIHRoZXJlIGFyZSBhIGZldyB0aGluZ3Mgd2hp
Y2ggdGhleQorICAgICAgICBjYW4gZG86CisKKyAgICAgICAgICAxLiBDaGFuZ2UgdGhlIGVsc2Ug
Y2xhdXNlIHRvIGhhbmRsZSBmYWlsdXJlIHJhdGhlciB0aGFuIGNyYXNoLiBJbiBKYXZhU2NyaXB0
Q29yZSB0aGF0J3MgdXN1YWxseSB0aHJvd091dE9mTWVtb3J5RXJyb3IuCisgICAgICAgICAgMi4g
Q2hhbmdlIHRoZSBjb2RlIHRvIGRpcmVjdGx5IHVzZSBGYWxsaWJsZSdzIC52YWx1ZSgpIG1lbWJl
ciwgYW5kIGxldCAqdGhhdCogY3Jhc2ggaW5zdGVhZC4gVGhpcyBtYWtlcyB0aGUgY3Jhc2ggbm9u
LW9idmlvdXMgaW4gdGhlIGNvZGUsIHdoaWNoIG1pZ2h0IGJlIHdoYXQgeW91IHdhbnQuCisgICAg
ICAgICAgMy4gQ2hhbmdlIHRoZSBjb2RlIHRvIGRldGVjdCBmYWlsdXJlIGF0IHRoZSBlYXJsaWVz
dCBzdGVwIG9mIHN0cmluZyBidWlsZGluZyAobGlrZWx5IHRoZSBhcHBlbmQgY2FsbHMpLCBhbmQg
ZG8gc29tZXRoaW5nIHNlbnNpYmxlIHRoZXJlLgorCisgICAgICAgIEluIG5vIGNpcmN1bXN0YW5j
ZSBzaG91bGQgY29kZSBqdXN0IGRlcmVmZXJlbmNlIGEgRmFsbGlibGUgd2l0aG91dAorICAgICAg
ICBrbm93aW5nIHRoYXQgaXRzIHN0YXRlIGhvbGRzIGEgdmFsaWQgc3RyaW5nLiBUaGlzIGNvZGUg
aXMKKyAgICAgICAgdW5kZWZpbmVkIGJlaGF2aW9yIGFjY29yZGluZyB0byB0aGUgc3RkOjpleHBl
Y3RlZCBzcGVjaWZpY2F0aW9uCisgICAgICAgICh3aGV0aGVyIG91ciBpbXBsZW1lbnRhdGlvbiBz
aG91bGQgZG8gc29tZXRoaW5nIGVsc2UgaXMgb3V0IG9mCisgICAgICAgIHNjb3BlIGZvciB0aGlz
IHBhdGNoKToKKworICAgICAgICAgIGZvbygqYnVpbGRlci50b1N0cmluZygpKTsgLy8gVUIgd2hl
biBhbGxvY2F0aW9uIGZhaWxzLgorCisgICAgICAgICogd3RmL0Fzc2VydGlvbnMuY3BwOgorICAg
ICAgICAqIHd0Zi9EYXRlTWF0aC5jcHA6CisgICAgICAgIChXVEY6Om1ha2VSRkMyODIyRGF0ZVN0
cmluZyk6CisgICAgICAgICogd3RmL0pTT05WYWx1ZXMuY3BwOgorICAgICAgICAoV1RGOjpKU09O
SW1wbDo6VmFsdWU6OnRvSlNPTlN0cmluZyBjb25zdCk6CisgICAgICAgICogd3RmL0xvZ2dlci5o
OgorICAgICAgICAoV1RGOjpMb2dBcmd1bWVudDo6dG9TdHJpbmcpOgorICAgICAgICAoV1RGOjpM
b2dBcmd1bWVudDxMb2dnZXI6OkxvZ1NpdGVJZGVudGlmaWVyPjo6dG9TdHJpbmcpOgorICAgICAg
ICAqIHd0Zi9NZWRpYVRpbWUuY3BwOgorICAgICAgICAoV1RGOjpNZWRpYVRpbWU6OnRvU3RyaW5n
IGNvbnN0KToKKyAgICAgICAgKiB3dGYvVVVJRC5jcHA6CisgICAgICAgIChXVEY6OmNyZWF0ZUNh
bm9uaWNhbFVVSURTdHJpbmcpOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuY3Bw
OgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjp3b3VsZE92ZXJmbG93KToKKyAgICAgICAg
KFdURjo6U3RyaW5nQnVpbGRlcjo6b3V0T2ZNZW1vcnkpOgorICAgICAgICAoV1RGOjpTdHJpbmdC
dWlsZGVyOjpyZXNpemUpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjphbGxvY2F0ZUJ1
ZmZlcik6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OmFsbG9jYXRlQnVmZmVyVXBDb252
ZXJ0KToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6cmVhbGxvY2F0ZUJ1ZmZlcjxMQ2hh
cj4pOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpyZWFsbG9jYXRlQnVmZmVyPFVDaGFy
Pik6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OnJlc2VydmVDYXBhY2l0eSk6CisgICAg
ICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OmFwcGVuZCk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1
aWxkZXI6OmFwcGVuZE51bWJlcik6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OmFwcGVu
ZEVDTUFTY3JpcHROdW1iZXIpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjphcHBlbmRG
aXhlZFdpZHRoTnVtYmVyKToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6c2hyaW5rVG9G
aXQpOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaDoKKyAgICAgICAgKFdURjo6
U3RyaW5nQnVpbGRlcjo6U3RyaW5nQnVpbGRlcik6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxk
ZXI6OmFwcGVuZCk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OmFwcGVuZExpdGVyYWwp
OgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjp0b1N0cmluZyk6CisgICAgICAgIChXVEY6
OlN0cmluZ0J1aWxkZXI6OnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSBjb25zdCk6CisgICAgICAg
IChXVEY6OlN0cmluZ0J1aWxkZXI6OnRvQXRvbWljU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdU
Rjo6U3RyaW5nQnVpbGRlcjo6aXM4Qml0IGNvbnN0KToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVp
bGRlcjo6ZmFpbGVkIGNvbnN0KToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6b3BlcmF0
b3JbXSBjb25zdCk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OiBjb25zdCk6CisgICAg
ICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OmNsZWFyKToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVp
bGRlcjo6c3dhcCk6CisgICAgICAgIChXVEY6OmVxdWFsKToKKyAgICAgICAgKFdURjo6SW50ZWdl
clRvU3RyaW5nQ29udmVyc2lvblRyYWl0PFN0cmluZ0J1aWxkZXI+OjpmbHVzaCk6CisgICAgICAg
ICogd3RmL3RleHQvU3RyaW5nQnVpbGRlckpTT04uY3BwOgorICAgICAgICAoV1RGOjpTdHJpbmdC
dWlsZGVyOjphcHBlbmRRdW90ZWRKU09OU3RyaW5nKToKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJp
bmdJbXBsLmNwcDoKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6cmVhbGxvY2F0ZUludGVybmFs
KToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6cmVhbGxvY2F0ZSk6CisgICAgICAgIChXVEY6
OlN0cmluZ0ltcGw6OnRyeVJlYWxsb2NhdGUpOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ0lt
cGwuaDoKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6dHJ5Q3JlYXRlU3Vic3RyaW5nU2hhcmlu
Z0ltcGwpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjpjcmVhdGVTdWJzdHJpbmdTaGFyaW5n
SW1wbCk6CisgICAgICAgICogd3RmL3RleHQvVGV4dFN0cmVhbS5jcHA6CisgICAgICAgIChXVEY6
OlRleHRTdHJlYW06OnJlbGVhc2UpOgorCiAyMDE4LTA1LTAxICBSb2JpbiBNb3Jpc3NldCAgPHJt
b3Jpc3NldEBhcHBsZS5jb20+CiAKICAgICAgICAgQ29ycmVjdGx5IGRldGVjdCBzdHJpbmcgb3Zl
cmZsb3cgd2hlbiB1c2luZyB0aGUgJ0Z1bmN0aW9uJyBjb25zdHJ1Y3RvcgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25z
LmNwcAppbmRleCBlMTVhMDkyLi5kN2M4MzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9B
c3NlcnRpb25zLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcApAQCAtMzQy
LDkgKzM0MiwxMSBAQCB2b2lkIFdURkxvZ2dpbmdBY2N1bXVsYXRvcjo6cmVzZXRBY2N1bXVsYXRl
ZExvZ3MoKQogU3RyaW5nIFdURkxvZ2dpbmdBY2N1bXVsYXRvcjo6Z2V0QW5kUmVzZXRBY2N1bXVs
YXRlZExvZ3MoKQogewogICAgIExvY2tlcjxMb2NrPiBsb2NrZXIoYWNjdW11bGF0b3JMb2NrKTsK
LSAgICBTdHJpbmcgcmVzdWx0ID0gbG9nZ2luZ0FjY3VtdWxhdG9yLnRvU3RyaW5nKCk7Ci0gICAg
bG9nZ2luZ0FjY3VtdWxhdG9yLmNsZWFyKCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICBpZiAo
YXV0byByZXN1bHQgPSBsb2dnaW5nQWNjdW11bGF0b3IudG9TdHJpbmcoKSkgeworICAgICAgICBs
b2dnaW5nQWNjdW11bGF0b3IuY2xlYXIoKTsKKyAgICAgICAgcmV0dXJuICpyZXN1bHQ7CisgICAg
fQorICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBXVEZMb2dnaW5nQWNjdW11bGF0b3ImIGxvZ2dp
bmdBY2N1bXVsYXRvcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5jcHAg
Yi9Tb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5jcHAKaW5kZXggNmRiOTJlYi4uYTg0MjVmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L0RhdGVNYXRoLmNwcApAQCAtMTE4Nyw3ICsxMTg3LDkgQEAgU3RyaW5nIG1ha2VSRkMyODIyRGF0
ZVN0cmluZyh1bnNpZ25lZCBkYXlPZldlZWssIHVuc2lnbmVkIGRheSwgdW5zaWduZWQgbW9udGgs
IHUKICAgICBhcHBlbmRUd29EaWdpdE51bWJlcihzdHJpbmdCdWlsZGVyLCBhYnNvbHV0ZVVUQ09m
ZnNldCAvIDYwKTsKICAgICBhcHBlbmRUd29EaWdpdE51bWJlcihzdHJpbmdCdWlsZGVyLCBhYnNv
bHV0ZVVUQ09mZnNldCAlIDYwKTsKIAotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
VEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuY3BwIGIvU291cmNlL1dU
Ri93dGYvSlNPTlZhbHVlcy5jcHAKaW5kZXggYmRlNDRhYi4uMDhjNjIyNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvSlNPTlZh
bHVlcy5jcHAKQEAgLTMyNyw4ICszMjcsMTEgQEAgYm9vbCBkZWNvZGVTdHJpbmcoY29uc3QgVUNo
YXIqIHN0YXJ0LCBjb25zdCBVQ2hhciogZW5kLCBTdHJpbmcmIG91dHB1dCkKICAgICBpZiAoIWRl
Y29kZVN0cmluZyhzdGFydCwgZW5kLCBidWZmZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBvdXRwdXQgPSBidWZmZXIudG9TdHJpbmcoKTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWZmZXIudG9TdHJpbmcoKSkgeworICAgICAgICBvdXRwdXQgPSAq
c3RyaW5nOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOwog
fQogCiBSZWZQdHI8SlNPTjo6VmFsdWU+IGJ1aWxkVmFsdWUoY29uc3QgVUNoYXIqIHN0YXJ0LCBj
b25zdCBVQ2hhciogZW5kLCBjb25zdCBVQ2hhcioqIHZhbHVlVG9rZW5FbmQsIGludCBkZXB0aCkK
QEAgLTU1Myw3ICs1NTYsOSBAQCBTdHJpbmcgVmFsdWU6OnRvSlNPTlN0cmluZygpIGNvbnN0CiAg
ICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CiAgICAgcmVzdWx0LnJlc2VydmVDYXBhY2l0eSg1MTIp
OwogICAgIHdyaXRlSlNPTihyZXN1bHQpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBWYWx1ZTo6YXNCb29sZWFuKGJvb2wm
IG91dHB1dCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5oIGIvU291
cmNlL1dURi93dGYvTG9nZ2VyLmgKaW5kZXggNmIwMWI1OC4uNDhiOGQ4MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvTG9nZ2VyLmgKKysrIGIvU291cmNlL1dURi93dGYvTG9nZ2VyLmgKQEAg
LTQ2LDcgKzQ2LDEyIEBAIHN0cnVjdCBMb2dBcmd1bWVudCB7CiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVSA9IFQ+IHN0YXRpYyB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxzdGQ6OmlzX3NhbWU8VSwg
ZG91YmxlPjo6dmFsdWUsIFN0cmluZz46OnR5cGUgdG9TdHJpbmcoZG91YmxlIGFyZ3VtZW50KSB7
IHJldHVybiBTdHJpbmc6Om51bWJlcihhcmd1bWVudCk7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBVID0gVD4gc3RhdGljIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfc2FtZTx0eXBl
bmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8VT46OnR5cGUsIEF0b21pY1N0cmluZz46OnZhbHVl
LCBTdHJpbmc+Ojp0eXBlIHRvU3RyaW5nKEF0b21pY1N0cmluZyBhcmd1bWVudCkgeyByZXR1cm4g
YXJndW1lbnQuc3RyaW5nKCk7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVID0gVD4gc3RhdGlj
IHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfc2FtZTx0eXBlbmFtZSBzdGQ6OnJlbW92
ZV9yZWZlcmVuY2U8VT46OnR5cGUsIFN0cmluZz46OnZhbHVlLCBTdHJpbmc+Ojp0eXBlIHRvU3Ry
aW5nKFN0cmluZyBhcmd1bWVudCkgeyByZXR1cm4gYXJndW1lbnQ7IH0KLSAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBVID0gVD4gc3RhdGljIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfc2Ft
ZTx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8VT46OnR5cGUsIFN0cmluZ0J1aWxkZXIq
Pjo6dmFsdWUsIFN0cmluZz46OnR5cGUgdG9TdHJpbmcoU3RyaW5nQnVpbGRlciogYXJndW1lbnQp
IHsgcmV0dXJuIGFyZ3VtZW50LT50b1N0cmluZygpOyB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
VSA9IFQ+IHN0YXRpYyB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxzdGQ6OmlzX3NhbWU8dHlwZW5h
bWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPFU+Ojp0eXBlLCBTdHJpbmdCdWlsZGVyKj46OnZhbHVl
LCBTdHJpbmc+Ojp0eXBlIHRvU3RyaW5nKFN0cmluZ0J1aWxkZXIqIGFyZ3VtZW50KQorICAgIHsK
KyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYXJndW1lbnQtPnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9CiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgVSA9IFQ+IHN0YXRpYyB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxzdGQ6Omlz
X3NhbWU8VSwgY29uc3QgY2hhcio+Ojp2YWx1ZSwgU3RyaW5nPjo6dHlwZSB0b1N0cmluZyhjb25z
dCBjaGFyKiBhcmd1bWVudCkgeyByZXR1cm4gU3RyaW5nKGFyZ3VtZW50KTsgfQogICAgIHRlbXBs
YXRlPHNpemVfdCBsZW5ndGg+IHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgY2hhciAoJmFy
Z3VtZW50KVtsZW5ndGhdKSB7IHJldHVybiBTdHJpbmcoYXJndW1lbnQpOyB9CiB9OwpAQCAtMjc0
LDcgKzI3OSw5IEBAIHN0cnVjdCBMb2dBcmd1bWVudDxMb2dnZXI6OkxvZ1NpdGVJZGVudGlmaWVy
PiB7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcoJyk7CiAgICAgICAgIGFwcGVuZFVuc2lnbmVk
NjRBc0hleCh2YWx1ZS5vYmplY3RQdHIsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIikgIik7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
ICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL01lZGlhVGltZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9NZWRpYVRpbWUu
Y3BwCmluZGV4IDAzMDUwYjUuLjFmNzdiNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01l
ZGlhVGltZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvTWVkaWFUaW1lLmNwcApAQCAtNTc0LDcg
KzU3NCw5IEBAIFN0cmluZyBNZWRpYVRpbWU6OnRvU3RyaW5nKCkgY29uc3QKICAgICB9CiAgICAg
YnVpbGRlci5hcHBlbmROdW1iZXIodG9Eb3VibGUoKSk7CiAgICAgYnVpbGRlci5hcHBlbmQoJ30n
KTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogU3RyaW5nIE1lZGlhVGltZTo6dG9KU09OU3RyaW5nKCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1VVSUQuY3BwIGIvU291cmNlL1dURi93dGYvVVVJRC5jcHAKaW5k
ZXggZmI1ZmU1Yi4uYjU5OGYwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVVVJRC5jcHAK
KysrIGIvU291cmNlL1dURi93dGYvVVVJRC5jcHAKQEAgLTU2LDcgKzU2LDkgQEAgU3RyaW5nIGNy
ZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKQogICAgIGJ1aWxkZXIuYXBwZW5kKCctJyk7CiAgICAg
YXBwZW5kVW5zaWduZWRBc0hleEZpeGVkU2l6ZShyYW5kb21EYXRhWzJdICYgMHgwMDAwZmZmZiwg
YnVpbGRlciwgNCwgTG93ZXJjYXNlKTsKICAgICBhcHBlbmRVbnNpZ25lZEFzSGV4Rml4ZWRTaXpl
KHJhbmRvbURhdGFbM10sIGJ1aWxkZXIsIDgsIExvd2VyY2FzZSk7Ci0gICAgcmV0dXJuIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlci5jcHAKaW5kZXggZDc5ZDRjNS4u
MjU4NGM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuY3BwCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTYyLDI2ICs2Miw0NCBA
QCB2b2lkIFN0cmluZ0J1aWxkZXI6OnJlaWZ5U3RyaW5nKCkgY29uc3QKICAgICAgICAgbV9zdHJp
bmcgPSBTdHJpbmdJbXBsOjpjcmVhdGVTdWJzdHJpbmdTaGFyaW5nSW1wbCgqbV9idWZmZXIsIDAs
IG1fbGVuZ3RoKTsKIH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjpyZXNpemUodW5zaWduZWQgbmV3
U2l6ZSkKK1VuZXhwZWN0ZWQ8U3RyaW5nQnVpbGRlcjo6RmFpbHVyZT4gU3RyaW5nQnVpbGRlcjo6
d291bGRPdmVyZmxvdygpCit7CisgICAgbV9mYWlsZWQgPSB0cnVlOworICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZChGYWlsdXJlOjpXb3VsZE92ZXJmbG93KTsKK30KKworVW5leHBlY3RlZDxTdHJp
bmdCdWlsZGVyOjpGYWlsdXJlPiBTdHJpbmdCdWlsZGVyOjpvdXRPZk1lbW9yeSgpCit7CisgICAg
Y2xlYXIoKTsKKyAgICBtX2ZhaWxlZCA9IHRydWU7CisgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVk
KEZhaWx1cmU6Ok91dE9mTWVtb3J5KTsKK30KKworU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBT
dHJpbmdCdWlsZGVyOjpyZXNpemUodW5zaWduZWQgbmV3U2l6ZSkKIHsKICAgICAvLyBDaGVjayBu
ZXdTaXplIDwgbV9sZW5ndGgsIGhlbmNlIG1fbGVuZ3RoID4gMC4KICAgICBBU1NFUlQobmV3U2l6
ZSA8PSBtX2xlbmd0aCk7CiAgICAgaWYgKG5ld1NpemUgPT0gbV9sZW5ndGgpCi0gICAgICAgIHJl
dHVybjsKKyAgICAgICAgcmV0dXJuIHsgfTsKICAgICBBU1NFUlQobV9sZW5ndGgpOwogCiAgICAg
Ly8gSWYgdGhlcmUgaXMgYSBidWZmZXIsIHdlIG9ubHkgbmVlZCB0byBkdXBsaWNhdGUgaXQgaWYg
aXQgaGFzIG1vcmUgdGhhbiBvbmUgcmVmLgogICAgIGlmIChtX2J1ZmZlcikgewogICAgICAgICBt
X3N0cmluZyA9IFN0cmluZygpOyAvLyBDbGVhciB0aGUgc3RyaW5nIHRvIHJlbW92ZSB0aGUgcmVm
ZXJlbmNlIHRvIG1fYnVmZmVyIGlmIGFueSBiZWZvcmUgY2hlY2tpbmcgdGhlIHJlZmVyZW5jZSBj
b3VudCBvZiBtX2J1ZmZlci4KICAgICAgICAgaWYgKCFtX2J1ZmZlci0+aGFzT25lUmVmKCkpIHsK
LSAgICAgICAgICAgIGlmIChtX2J1ZmZlci0+aXM4Qml0KCkpCi0gICAgICAgICAgICAgICAgYWxs
b2NhdGVCdWZmZXIobV9idWZmZXItPmNoYXJhY3RlcnM4KCksIG1fYnVmZmVyLT5sZW5ndGgoKSk7
Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgYWxsb2NhdGVCdWZmZXIobV9idWZm
ZXItPmNoYXJhY3RlcnMxNigpLCBtX2J1ZmZlci0+bGVuZ3RoKCkpOworICAgICAgICAgICAgaWYg
KG1fYnVmZmVyLT5pczhCaXQoKSkgeworICAgICAgICAgICAgICAgIGF1dG8gYWxsb2NhdGVkID0g
YWxsb2NhdGVCdWZmZXIobV9idWZmZXItPmNoYXJhY3RlcnM4KCksIG1fYnVmZmVyLT5sZW5ndGgo
KSk7CisgICAgICAgICAgICAgICAgaWYgKCFhbGxvY2F0ZWQpCisgICAgICAgICAgICAgICAgICAg
IHJldHVybiBhbGxvY2F0ZWQ7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
IGF1dG8gYWxsb2NhdGVkID0gYWxsb2NhdGVCdWZmZXIobV9idWZmZXItPmNoYXJhY3RlcnMxNigp
LCBtX2J1ZmZlci0+bGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIGlmICghYWxsb2NhdGVkKQor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWxsb2NhdGVkOworICAgICAgICAgICAgfQogICAg
ICAgICB9CiAgICAgICAgIG1fbGVuZ3RoID0gbmV3U2l6ZTsKICAgICAgICAgQVNTRVJUKG1fYnVm
ZmVyLT5sZW5ndGgoKSA+PSBtX2xlbmd0aCk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0
dXJuIHsgfTsKICAgICB9CiAKICAgICAvLyBTaW5jZSBtX2xlbmd0aCAmJiAhbV9idWZmZXIsIHRo
ZSBzdHJpbmcgbXVzdCBiZSB2YWxpZCBpbiBtX3N0cmluZywgYW5kIG1fc3RyaW5nLmxlbmd0aCgp
ID4gMC4KQEAgLTg5LDU0ICsxMDcsNjAgQEAgdm9pZCBTdHJpbmdCdWlsZGVyOjpyZXNpemUodW5z
aWduZWQgbmV3U2l6ZSkKICAgICBBU1NFUlQobV9sZW5ndGggPT0gbV9zdHJpbmcubGVuZ3RoKCkp
OwogICAgIEFTU0VSVChuZXdTaXplIDwgbV9zdHJpbmcubGVuZ3RoKCkpOwogICAgIG1fbGVuZ3Ro
ID0gbmV3U2l6ZTsKLSAgICBtX3N0cmluZyA9IFN0cmluZ0ltcGw6OmNyZWF0ZVN1YnN0cmluZ1No
YXJpbmdJbXBsKCptX3N0cmluZy5pbXBsKCksIDAsIG5ld1NpemUpOworICAgIGlmIChhdXRvIGNy
ZWF0ZWQgPSBTdHJpbmdJbXBsOjp0cnlDcmVhdGVTdWJzdHJpbmdTaGFyaW5nSW1wbCgqbV9zdHJp
bmcuaW1wbCgpLCAwLCBuZXdTaXplKSkgeworICAgICAgICBtX3N0cmluZyA9ICpjcmVhdGVkOwor
ICAgICAgICByZXR1cm4geyB9OworICAgIH0gZWxzZQorICAgICAgICByZXR1cm4gb3V0T2ZNZW1v
cnkoKTsKIH0KIAogLy8gQWxsb2NhdGUgYSBuZXcgOCBiaXQgYnVmZmVyLCBjb3B5aW5nIGluIGN1
cnJlbnRDaGFyYWN0ZXJzICh0aGVzZSBtYXkgY29tZSBmcm9tIGVpdGhlciBtX3N0cmluZwogLy8g
b3IgbV9idWZmZXIsIG5laXRoZXIgd2lsbCBiZSByZWFzc2lnbmVkIHVudGlsIHRoZSBjb3B5IGhh
cyBjb21wbGV0ZWQpLgotdm9pZCBTdHJpbmdCdWlsZGVyOjphbGxvY2F0ZUJ1ZmZlcihjb25zdCBM
Q2hhciogY3VycmVudENoYXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQorU3RyaW5n
QnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphbGxvY2F0ZUJ1ZmZlcihjb25zdCBM
Q2hhciogY3VycmVudENoYXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQogewogICAg
IEFTU0VSVChtX2lzOEJpdCk7CiAgICAgLy8gQ29weSB0aGUgZXhpc3RpbmcgZGF0YSBpbnRvIGEg
bmV3IGJ1ZmZlciwgc2V0IHJlc3VsdCB0byBwb2ludCB0byB0aGUgZW5kIG9mIHRoZSBleGlzdGlu
ZyBkYXRhLgotICAgIGF1dG8gYnVmZmVyID0gU3RyaW5nSW1wbDo6Y3JlYXRlVW5pbml0aWFsaXpl
ZChyZXF1aXJlZExlbmd0aCwgbV9idWZmZXJDaGFyYWN0ZXJzOCk7CisgICAgYXV0byBidWZmZXIg
PSBTdHJpbmdJbXBsOjp0cnlDcmVhdGVVbmluaXRpYWxpemVkKHJlcXVpcmVkTGVuZ3RoLCBtX2J1
ZmZlckNoYXJhY3RlcnM4KTsKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIG91dE9m
TWVtb3J5KCk7CiAgICAgbWVtY3B5KG1fYnVmZmVyQ2hhcmFjdGVyczgsIGN1cnJlbnRDaGFyYWN0
ZXJzLCBzdGF0aWNfY2FzdDxzaXplX3Q+KG1fbGVuZ3RoKSAqIHNpemVvZihMQ2hhcikpOyAvLyBU
aGlzIGNhbid0IG92ZXJmbG93LgogICAgIAogICAgIC8vIFVwZGF0ZSB0aGUgYnVpbGRlciBzdGF0
ZS4KICAgICBtX2J1ZmZlciA9IFdURk1vdmUoYnVmZmVyKTsKICAgICBtX3N0cmluZyA9IFN0cmlu
ZygpOwogICAgIEFTU0VSVChtX2J1ZmZlci0+bGVuZ3RoKCkgPT0gcmVxdWlyZWRMZW5ndGgpOwor
ICAgIHJldHVybiB7IH07CiB9CiAKIC8vIEFsbG9jYXRlIGEgbmV3IDE2IGJpdCBidWZmZXIsIGNv
cHlpbmcgaW4gY3VycmVudENoYXJhY3RlcnMgKHRoZXNlIG1heSBjb21lIGZyb20gZWl0aGVyIG1f
c3RyaW5nCiAvLyBvciBtX2J1ZmZlciwgIG5laXRoZXIgd2lsbCBiZSByZWFzc2lnbmVkIHVudGls
IHRoZSBjb3B5IGhhcyBjb21wbGV0ZWQpLgotdm9pZCBTdHJpbmdCdWlsZGVyOjphbGxvY2F0ZUJ1
ZmZlcihjb25zdCBVQ2hhciogY3VycmVudENoYXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVu
Z3RoKQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphbGxvY2F0ZUJ1
ZmZlcihjb25zdCBVQ2hhciogY3VycmVudENoYXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVu
Z3RoKQogewogICAgIEFTU0VSVCghbV9pczhCaXQpOwogICAgIC8vIENvcHkgdGhlIGV4aXN0aW5n
IGRhdGEgaW50byBhIG5ldyBidWZmZXIsIHNldCByZXN1bHQgdG8gcG9pbnQgdG8gdGhlIGVuZCBv
ZiB0aGUgZXhpc3RpbmcgZGF0YS4KLSAgICBhdXRvIGJ1ZmZlciA9IFN0cmluZ0ltcGw6OmNyZWF0
ZVVuaW5pdGlhbGl6ZWQocmVxdWlyZWRMZW5ndGgsIG1fYnVmZmVyQ2hhcmFjdGVyczE2KTsKKyAg
ICBhdXRvIGJ1ZmZlciA9IFN0cmluZ0ltcGw6OnRyeUNyZWF0ZVVuaW5pdGlhbGl6ZWQocmVxdWly
ZWRMZW5ndGgsIG1fYnVmZmVyQ2hhcmFjdGVyczE2KTsKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAg
ICAgcmV0dXJuIG91dE9mTWVtb3J5KCk7CiAgICAgbWVtY3B5KG1fYnVmZmVyQ2hhcmFjdGVyczE2
LCBjdXJyZW50Q2hhcmFjdGVycywgc3RhdGljX2Nhc3Q8c2l6ZV90PihtX2xlbmd0aCkgKiBzaXpl
b2YoVUNoYXIpKTsgLy8gVGhpcyBjYW4ndCBvdmVyZmxvdy4KICAgICAKICAgICAvLyBVcGRhdGUg
dGhlIGJ1aWxkZXIgc3RhdGUuCiAgICAgbV9idWZmZXIgPSBXVEZNb3ZlKGJ1ZmZlcik7CiAgICAg
bV9zdHJpbmcgPSBTdHJpbmcoKTsKICAgICBBU1NFUlQobV9idWZmZXItPmxlbmd0aCgpID09IHJl
cXVpcmVkTGVuZ3RoKTsKKyAgICByZXR1cm4geyB9OwogfQogCiAvLyBBbGxvY2F0ZSBhIG5ldyAx
NiBiaXQgYnVmZmVyLCBjb3B5aW5nIGluIGN1cnJlbnRDaGFyYWN0ZXJzICh3aGljaCBpcyA4IGJp
dCBhbmQgbWF5IGNvbWUKIC8vIGZyb20gZWl0aGVyIG1fc3RyaW5nIG9yIG1fYnVmZmVyLCBuZWl0
aGVyIHdpbGwgYmUgcmVhc3NpZ25lZCB1bnRpbCB0aGUgY29weSBoYXMgY29tcGxldGVkKS4KLXZv
aWQgU3RyaW5nQnVpbGRlcjo6YWxsb2NhdGVCdWZmZXJVcENvbnZlcnQoY29uc3QgTENoYXIqIGN1
cnJlbnRDaGFyYWN0ZXJzLCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKLXsKLSAgICBpZiAoIXRy
eUFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KGN1cnJlbnRDaGFyYWN0ZXJzLCByZXF1aXJlZExlbmd0
aCkpCi0gICAgICAgIENSQVNIKCk7Ci19Ci1ib29sIFN0cmluZ0J1aWxkZXI6OnRyeUFsbG9jYXRl
QnVmZmVyVXBDb252ZXJ0KGNvbnN0IExDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQg
cmVxdWlyZWRMZW5ndGgpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6
OmFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KGNvbnN0IExDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywg
dW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCiB7CiAgICAgQVNTRVJUKG1faXM4Qml0KTsKICAgICBB
U1NFUlQocmVxdWlyZWRMZW5ndGggPj0gbV9sZW5ndGgpOwogICAgIC8vIENvcHkgdGhlIGV4aXN0
aW5nIGRhdGEgaW50byBhIG5ldyBidWZmZXIsIHNldCByZXN1bHQgdG8gcG9pbnQgdG8gdGhlIGVu
ZCBvZiB0aGUgZXhpc3RpbmcgZGF0YS4KICAgICBhdXRvIGJ1ZmZlciA9IFN0cmluZ0ltcGw6OnRy
eUNyZWF0ZVVuaW5pdGlhbGl6ZWQocmVxdWlyZWRMZW5ndGgsIG1fYnVmZmVyQ2hhcmFjdGVyczE2
KTsKICAgICBpZiAoIWJ1ZmZlcikKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1
cm4gb3V0T2ZNZW1vcnkoKTsKKwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2xlbmd0
aDsgKytpKQogICAgICAgICBtX2J1ZmZlckNoYXJhY3RlcnMxNltpXSA9IGN1cnJlbnRDaGFyYWN0
ZXJzW2ldOwogICAgIApAQCAtMTQ2LDExICsxNzAsMTEgQEAgYm9vbCBTdHJpbmdCdWlsZGVyOjp0
cnlBbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChjb25zdCBMQ2hhciogY3VycmVudENoYXJhY3RlcnMs
IHUKICAgICBtX2J1ZmZlciA9IFdURk1vdmUoYnVmZmVyKTsKICAgICBtX3N0cmluZyA9IFN0cmlu
ZygpOwogICAgIEFTU0VSVChtX2J1ZmZlci0+bGVuZ3RoKCkgPT0gcmVxdWlyZWRMZW5ndGgpOwot
ICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiB7IH07CiB9CiAKIHRlbXBsYXRlIDw+Ci12b2lk
IFN0cmluZ0J1aWxkZXI6OnJlYWxsb2NhdGVCdWZmZXI8TENoYXI+KHVuc2lnbmVkIHJlcXVpcmVk
TGVuZ3RoKQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjpyZWFsbG9j
YXRlQnVmZmVyPExDaGFyPih1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKIHsKICAgICAvLyBJZiB0
aGUgYnVmZmVyIGhhcyBvbmx5IG9uZSByZWYgKGJ5IHRoaXMgU3RyaW5nQnVpbGRlciksIHJlYWxs
b2NhdGUgaXQsCiAgICAgLy8gb3RoZXJ3aXNlIGZhbGwgYmFjayB0byAiYWxsb2NhdGUgYW5kIGNv
cHkiIG1ldGhvZC4KQEAgLTE1OSw2NiArMTgzLDg5IEBAIHZvaWQgU3RyaW5nQnVpbGRlcjo6cmVh
bGxvY2F0ZUJ1ZmZlcjxMQ2hhcj4odW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCiAgICAgQVNTRVJU
KG1faXM4Qml0KTsKICAgICBBU1NFUlQobV9idWZmZXItPmlzOEJpdCgpKTsKICAgICAKLSAgICBp
ZiAobV9idWZmZXItPmhhc09uZVJlZigpKQotICAgICAgICBtX2J1ZmZlciA9IFN0cmluZ0ltcGw6
OnJlYWxsb2NhdGUobV9idWZmZXIucmVsZWFzZU5vbk51bGwoKSwgcmVxdWlyZWRMZW5ndGgsIG1f
YnVmZmVyQ2hhcmFjdGVyczgpOwotICAgIGVsc2UKLSAgICAgICAgYWxsb2NhdGVCdWZmZXIobV9i
dWZmZXItPmNoYXJhY3RlcnM4KCksIHJlcXVpcmVkTGVuZ3RoKTsKKyAgICBpZiAobV9idWZmZXIt
Pmhhc09uZVJlZigpKSB7CisgICAgICAgIGF1dG8gcmVhbGxvY2F0ZWQgPSBTdHJpbmdJbXBsOjp0
cnlSZWFsbG9jYXRlKG1fYnVmZmVyLnJlbGVhc2VOb25OdWxsKCksIHJlcXVpcmVkTGVuZ3RoLCBt
X2J1ZmZlckNoYXJhY3RlcnM4KTsKKyAgICAgICAgaWYgKCFyZWFsbG9jYXRlZCkKKyAgICAgICAg
ICAgIHJldHVybiBvdXRPZk1lbW9yeSgpOworICAgICAgICBtX2J1ZmZlciA9IHJlYWxsb2NhdGVk
LmdldCgpOworICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8gYWxsb2NhdGVkID0gYWxsb2NhdGVC
dWZmZXIobV9idWZmZXItPmNoYXJhY3RlcnM4KCksIHJlcXVpcmVkTGVuZ3RoKTsKKyAgICAgICAg
aWYgKCFhbGxvY2F0ZWQpCisgICAgICAgICAgICByZXR1cm4gYWxsb2NhdGVkOworICAgIH0KICAg
ICBBU1NFUlQobV9idWZmZXItPmxlbmd0aCgpID09IHJlcXVpcmVkTGVuZ3RoKTsKKyAgICByZXR1
cm4geyB9OwogfQogCiB0ZW1wbGF0ZSA8Pgotdm9pZCBTdHJpbmdCdWlsZGVyOjpyZWFsbG9jYXRl
QnVmZmVyPFVDaGFyPih1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKK1N0cmluZ0J1aWxkZXI6OkZh
bGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6cmVhbGxvY2F0ZUJ1ZmZlcjxVQ2hhcj4odW5zaWduZWQg
cmVxdWlyZWRMZW5ndGgpCiB7CiAgICAgLy8gSWYgdGhlIGJ1ZmZlciBoYXMgb25seSBvbmUgcmVm
IChieSB0aGlzIFN0cmluZ0J1aWxkZXIpLCByZWFsbG9jYXRlIGl0LAogICAgIC8vIG90aGVyd2lz
ZSBmYWxsIGJhY2sgdG8gImFsbG9jYXRlIGFuZCBjb3B5IiBtZXRob2QuCiAgICAgbV9zdHJpbmcg
PSBTdHJpbmcoKTsKICAgICAKLSAgICBpZiAobV9idWZmZXItPmlzOEJpdCgpKQotICAgICAgICBh
bGxvY2F0ZUJ1ZmZlclVwQ29udmVydChtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKSwgcmVxdWlyZWRM
ZW5ndGgpOworICAgIGlmIChtX2J1ZmZlci0+aXM4Qml0KCkpIHsKKyAgICAgICAgYXV0byBhbGxv
Y2F0ZWQgPSBhbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKSwg
cmVxdWlyZWRMZW5ndGgpOworICAgICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAgIHJl
dHVybiBhbGxvY2F0ZWQ7CisgICAgfQogICAgIGVsc2UgaWYgKG1fYnVmZmVyLT5oYXNPbmVSZWYo
KSkKICAgICAgICAgbV9idWZmZXIgPSBTdHJpbmdJbXBsOjpyZWFsbG9jYXRlKG1fYnVmZmVyLnJl
bGVhc2VOb25OdWxsKCksIHJlcXVpcmVkTGVuZ3RoLCBtX2J1ZmZlckNoYXJhY3RlcnMxNik7CiAg
ICAgZWxzZQogICAgICAgICBhbGxvY2F0ZUJ1ZmZlcihtX2J1ZmZlci0+Y2hhcmFjdGVyczE2KCks
IHJlcXVpcmVkTGVuZ3RoKTsKICAgICBBU1NFUlQobV9idWZmZXItPmxlbmd0aCgpID09IHJlcXVp
cmVkTGVuZ3RoKTsKKyAgICByZXR1cm4geyB9OwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OnJl
c2VydmVDYXBhY2l0eSh1bnNpZ25lZCBuZXdDYXBhY2l0eSkKK1N0cmluZ0J1aWxkZXI6OkZhbGxp
YmxlPD4gU3RyaW5nQnVpbGRlcjo6cmVzZXJ2ZUNhcGFjaXR5KHVuc2lnbmVkIG5ld0NhcGFjaXR5
KQogewogICAgIGlmIChtX2J1ZmZlcikgewogICAgICAgICAvLyBJZiB0aGVyZSBpcyBhbHJlYWR5
IGEgYnVmZmVyLCB0aGVuIGdyb3cgaWYgbmVjZXNzYXJ5LgogICAgICAgICBpZiAobmV3Q2FwYWNp
dHkgPiBtX2J1ZmZlci0+bGVuZ3RoKCkpIHsKLSAgICAgICAgICAgIGlmIChtX2J1ZmZlci0+aXM4
Qml0KCkpCi0gICAgICAgICAgICAgICAgcmVhbGxvY2F0ZUJ1ZmZlcjxMQ2hhcj4obmV3Q2FwYWNp
dHkpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJlYWxsb2NhdGVCdWZmZXI8
VUNoYXI+KG5ld0NhcGFjaXR5KTsKKyAgICAgICAgICAgIGlmIChtX2J1ZmZlci0+aXM4Qml0KCkp
IHsKKyAgICAgICAgICAgICAgICBhdXRvIHJlYWxsb2NhdGVkID0gcmVhbGxvY2F0ZUJ1ZmZlcjxM
Q2hhcj4obmV3Q2FwYWNpdHkpOworICAgICAgICAgICAgICAgIGlmICghcmVhbGxvY2F0ZWQpCisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiByZWFsbG9jYXRlZDsKKyAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgYXV0byByZWFsbG9jYXRlZCA9IHJlYWxsb2NhdGVCdWZmZXI8
VUNoYXI+KG5ld0NhcGFjaXR5KTsKKyAgICAgICAgICAgICAgICBpZiAoIXJlYWxsb2NhdGVkKQor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVhbGxvY2F0ZWQ7CisgICAgICAgICAgICB9CiAg
ICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICAvLyBHcm93IHRoZSBzdHJpbmcsIGlmIG5l
Y2Vzc2FyeS4KICAgICAgICAgaWYgKG5ld0NhcGFjaXR5ID4gbV9sZW5ndGgpIHsKICAgICAgICAg
ICAgIGlmICghbV9sZW5ndGgpIHsKICAgICAgICAgICAgICAgICBMQ2hhciogbnVsbFBsYWNlaG9s
ZGVyID0gMDsKLSAgICAgICAgICAgICAgICBhbGxvY2F0ZUJ1ZmZlcihudWxsUGxhY2Vob2xkZXIs
IG5ld0NhcGFjaXR5KTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAobV9zdHJpbmcuaXM4Qml0KCkp
Ci0gICAgICAgICAgICAgICAgYWxsb2NhdGVCdWZmZXIobV9zdHJpbmcuY2hhcmFjdGVyczgoKSwg
bmV3Q2FwYWNpdHkpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGFsbG9jYXRl
QnVmZmVyKG1fc3RyaW5nLmNoYXJhY3RlcnMxNigpLCBuZXdDYXBhY2l0eSk7CisgICAgICAgICAg
ICAgICAgYXV0byBhbGxvY2F0ZWQgPSBhbGxvY2F0ZUJ1ZmZlcihudWxsUGxhY2Vob2xkZXIsIG5l
d0NhcGFjaXR5KTsKKyAgICAgICAgICAgICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGFsbG9jYXRlZDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobV9zdHJp
bmcuaXM4Qml0KCkpIHsKKyAgICAgICAgICAgICAgICBhdXRvIGFsbG9jYXRlZCA9IGFsbG9jYXRl
QnVmZmVyKG1fc3RyaW5nLmNoYXJhY3RlcnM4KCksIG5ld0NhcGFjaXR5KTsKKyAgICAgICAgICAg
ICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRl
ZDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYXV0byBhbGxvY2F0ZWQg
PSBhbGxvY2F0ZUJ1ZmZlcihtX3N0cmluZy5jaGFyYWN0ZXJzMTYoKSwgbmV3Q2FwYWNpdHkpOwor
ICAgICAgICAgICAgICAgIGlmICghYWxsb2NhdGVkKQorICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYWxsb2NhdGVkOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogICAgIEFTU0VS
VCghbmV3Q2FwYWNpdHkgfHwgbV9idWZmZXItPmxlbmd0aCgpID49IG5ld0NhcGFjaXR5KTsKKyAg
ICByZXR1cm4geyB9OwogfQogCiAvLyBNYWtlICdsZW5ndGgnIGFkZGl0aW9uYWwgY2FwYWNpdHkg
YmUgYXZhaWxhYmxlIGluIG1fYnVmZmVyLCB1cGRhdGUgbV9zdHJpbmcgJiBtX2xlbmd0aCwKIC8v
IHJldHVybiBhIHBvaW50ZXIgdG8gdGhlIG5ld2x5IGFsbG9jYXRlZCBzdG9yYWdlLgotLy8gUmV0
dXJucyBudWxscHRyIGlmIHRoZSBzaXplIG9mIHRoZSBuZXcgYnVpbGRlciB3b3VsZCBoYXZlIG92
ZXJmbG93ZWQKIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KLUFMV0FZU19JTkxJTkUgQ2hh
clR5cGUqIFN0cmluZ0J1aWxkZXI6OmFwcGVuZFVuaW5pdGlhbGl6ZWQodW5zaWduZWQgbGVuZ3Ro
KQorQUxXQVlTX0lOTElORSBTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTxDaGFyVHlwZSo+IFN0cmlu
Z0J1aWxkZXI6OmFwcGVuZFVuaW5pdGlhbGl6ZWQodW5zaWduZWQgbGVuZ3RoKQogewogICAgIEFT
U0VSVChsZW5ndGgpOwogCiAgICAgLy8gQ2FsY3VsYXRlIHRoZSBuZXcgc2l6ZSBvZiB0aGUgYnVp
bGRlciBhZnRlciBhcHBlbmRpbmcuCiAgICAgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGggPSBsZW5n
dGggKyBtX2xlbmd0aDsKICAgICBpZiAocmVxdWlyZWRMZW5ndGggPCBsZW5ndGgpCi0gICAgICAg
IHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gd291bGRPdmVyZmxvdygpOwogCiAgICAg
aWYgKChtX2J1ZmZlcikgJiYgKHJlcXVpcmVkTGVuZ3RoIDw9IG1fYnVmZmVyLT5sZW5ndGgoKSkp
IHsKICAgICAgICAgLy8gSWYgdGhlIGJ1ZmZlciBpcyB2YWxpZCBpdCBtdXN0IGJlIGF0IGxlYXN0
IGFzIGxvbmcgYXMgdGhlIGN1cnJlbnQgYnVpbGRlciBjb250ZW50cyEKQEAgLTIzNSw3ICsyODIs
NyBAQCBBTFdBWVNfSU5MSU5FIENoYXJUeXBlKiBTdHJpbmdCdWlsZGVyOjphcHBlbmRVbmluaXRp
YWxpemVkKHVuc2lnbmVkIGxlbmd0aCkKIC8vIE1ha2UgJ2xlbmd0aCcgYWRkaXRpb25hbCBjYXBh
Y2l0eSBiZSBhdmFpbGFibGUgaW4gbV9idWZmZXIsIHVwZGF0ZSBtX3N0cmluZyAmIG1fbGVuZ3Ro
LAogLy8gcmV0dXJuIGEgcG9pbnRlciB0byB0aGUgbmV3bHkgYWxsb2NhdGVkIHN0b3JhZ2UuCiB0
ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci1DaGFyVHlwZSogU3RyaW5nQnVpbGRlcjo6YXBw
ZW5kVW5pbml0aWFsaXplZFNsb3codW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCitTdHJpbmdCdWls
ZGVyOjpGYWxsaWJsZTxDaGFyVHlwZSo+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZFVuaW5pdGlhbGl6
ZWRTbG93KHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQogewogICAgIEFTU0VSVChyZXF1aXJlZExl
bmd0aCk7CiAKQEAgLTI0MywxMCArMjkwLDE0IEBAIENoYXJUeXBlKiBTdHJpbmdCdWlsZGVyOjph
cHBlbmRVbmluaXRpYWxpemVkU2xvdyh1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKICAgICAgICAg
Ly8gSWYgdGhlIGJ1ZmZlciBpcyB2YWxpZCBpdCBtdXN0IGJlIGF0IGxlYXN0IGFzIGxvbmcgYXMg
dGhlIGN1cnJlbnQgYnVpbGRlciBjb250ZW50cyEKICAgICAgICAgQVNTRVJUKG1fYnVmZmVyLT5s
ZW5ndGgoKSA+PSBtX2xlbmd0aCk7CiAgICAgICAgIAotICAgICAgICByZWFsbG9jYXRlQnVmZmVy
PENoYXJUeXBlPihleHBhbmRlZENhcGFjaXR5KGNhcGFjaXR5KCksIHJlcXVpcmVkTGVuZ3RoKSk7
CisgICAgICAgIGF1dG8gcmVhbGxvY2F0ZWQgPSByZWFsbG9jYXRlQnVmZmVyPENoYXJUeXBlPihl
eHBhbmRlZENhcGFjaXR5KGNhcGFjaXR5KCksIHJlcXVpcmVkTGVuZ3RoKSk7CisgICAgICAgIGlm
ICghcmVhbGxvY2F0ZWQpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQocmVhbGxv
Y2F0ZWQuZXJyb3IoKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgQVNTRVJUKG1fc3RyaW5nLmxl
bmd0aCgpID09IG1fbGVuZ3RoKTsKLSAgICAgICAgYWxsb2NhdGVCdWZmZXIobV9sZW5ndGggPyBt
X3N0cmluZy5jaGFyYWN0ZXJzPENoYXJUeXBlPigpIDogMCwgZXhwYW5kZWRDYXBhY2l0eShjYXBh
Y2l0eSgpLCByZXF1aXJlZExlbmd0aCkpOworICAgICAgICBhdXRvIGFsbG9jYXRlZCA9IGFsbG9j
YXRlQnVmZmVyKG1fbGVuZ3RoID8gbV9zdHJpbmcuY2hhcmFjdGVyczxDaGFyVHlwZT4oKSA6IDAs
IGV4cGFuZGVkQ2FwYWNpdHkoY2FwYWNpdHkoKSwgcmVxdWlyZWRMZW5ndGgpKTsKKyAgICAgICAg
aWYgKCFhbGxvY2F0ZWQpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoYWxsb2Nh
dGVkLmVycm9yKCkpOwogICAgIH0KICAgICAKICAgICBDaGFyVHlwZSogcmVzdWx0ID0gZ2V0QnVm
ZmVyQ2hhcmFjdGVyczxDaGFyVHlwZT4oKSArIG1fbGVuZ3RoOwpAQCAtMjU1LDE2ICszMDYsMTAg
QEAgQ2hhclR5cGUqIFN0cmluZ0J1aWxkZXI6OmFwcGVuZFVuaW5pdGlhbGl6ZWRTbG93KHVuc2ln
bmVkIHJlcXVpcmVkTGVuZ3RoKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQgU3RyaW5n
QnVpbGRlcjo6YXBwZW5kKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgp
Ci17Ci0gICAgaWYgKCF0cnlBcHBlbmQoY2hhcmFjdGVycywgbGVuZ3RoKSkKLSAgICAgICAgQ1JB
U0goKTsKLX0KLQotYm9vbCBTdHJpbmdCdWlsZGVyOjp0cnlBcHBlbmQoY29uc3QgVUNoYXIqIGNo
YXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3Ry
aW5nQnVpbGRlcjo6YXBwZW5kKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5n
dGgpCiB7CiAgICAgaWYgKCFsZW5ndGgpCi0gICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBy
ZXR1cm4geyB9OwogCiAgICAgQVNTRVJUKGNoYXJhY3RlcnMpOwogCkBAIC0yNzIsNTQgKzMxNyw1
MSBAQCBib29sIFN0cmluZ0J1aWxkZXI6OnRyeUFwcGVuZChjb25zdCBVQ2hhciogY2hhcmFjdGVy
cywgdW5zaWduZWQgbGVuZ3RoKQogICAgICAgICBpZiAobGVuZ3RoID09IDEgJiYgISgqY2hhcmFj
dGVycyAmIH4weGZmKSkgewogICAgICAgICAgICAgLy8gQXBwZW5kIGFzIDggYml0IGNoYXJhY3Rl
cgogICAgICAgICAgICAgTENoYXIgbENoYXIgPSBzdGF0aWNfY2FzdDxMQ2hhcj4oKmNoYXJhY3Rl
cnMpOwotICAgICAgICAgICAgcmV0dXJuIHRyeUFwcGVuZCgmbENoYXIsIDEpOworICAgICAgICAg
ICAgcmV0dXJuIGFwcGVuZCgmbENoYXIsIDEpOwogICAgICAgICB9CiAKICAgICAgICAgLy8gQ2Fs
Y3VsYXRlIHRoZSBuZXcgc2l6ZSBvZiB0aGUgYnVpbGRlciBhZnRlciBhcHBlbmRpbmcuCiAgICAg
ICAgIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoID0gbGVuZ3RoICsgbV9sZW5ndGg7CiAgICAgICAg
IGlmIChyZXF1aXJlZExlbmd0aCA8IGxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgICAgIHJldHVybiB3b3VsZE92ZXJmbG93KCk7CiAgICAgICAgIAogICAgICAgICBp
ZiAobV9idWZmZXIpIHsKICAgICAgICAgICAgIC8vIElmIHRoZSBidWZmZXIgaXMgdmFsaWQgaXQg
bXVzdCBiZSBhdCBsZWFzdCBhcyBsb25nIGFzIHRoZSBjdXJyZW50IGJ1aWxkZXIgY29udGVudHMh
CiAgICAgICAgICAgICBBU1NFUlQobV9idWZmZXItPmxlbmd0aCgpID49IG1fbGVuZ3RoKTsKLSAg
ICAgICAgICAgIGlmICghdHJ5QWxsb2NhdGVCdWZmZXJVcENvbnZlcnQobV9idWZmZXItPmNoYXJh
Y3RlcnM4KCksIGV4cGFuZGVkQ2FwYWNpdHkoY2FwYWNpdHkoKSwgcmVxdWlyZWRMZW5ndGgpKSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IGF1dG8gYWxsb2NhdGVkID0gYWxsb2NhdGVCdWZmZXJVcENvbnZlcnQobV9idWZmZXItPmNoYXJh
Y3RlcnM4KCksIGV4cGFuZGVkQ2FwYWNpdHkoY2FwYWNpdHkoKSwgcmVxdWlyZWRMZW5ndGgpKTsK
KyAgICAgICAgICAgIGlmICghYWxsb2NhdGVkKQorICAgICAgICAgICAgICAgIHJldHVybiBhbGxv
Y2F0ZWQ7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBBU1NFUlQobV9zdHJpbmcubGVu
Z3RoKCkgPT0gbV9sZW5ndGgpOwotICAgICAgICAgICAgaWYgKCF0cnlBbGxvY2F0ZUJ1ZmZlclVw
Q29udmVydChtX3N0cmluZy5pc051bGwoKSA/IDAgOiBtX3N0cmluZy5jaGFyYWN0ZXJzOCgpLCBl
eHBhbmRlZENhcGFjaXR5KGNhcGFjaXR5KCksIHJlcXVpcmVkTGVuZ3RoKSkpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgYXV0byBhbGxvY2F0ZWQgPSBhbGxvY2F0
ZUJ1ZmZlclVwQ29udmVydChtX3N0cmluZy5pc051bGwoKSA/IDAgOiBtX3N0cmluZy5jaGFyYWN0
ZXJzOCgpLCBleHBhbmRlZENhcGFjaXR5KGNhcGFjaXR5KCksIHJlcXVpcmVkTGVuZ3RoKSk7Cisg
ICAgICAgICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gYWxsb2Nh
dGVkOwogICAgICAgICB9CiAKICAgICAgICAgbWVtY3B5KG1fYnVmZmVyQ2hhcmFjdGVyczE2ICsg
bV9sZW5ndGgsIGNoYXJhY3RlcnMsIHN0YXRpY19jYXN0PHNpemVfdD4obGVuZ3RoKSAqIHNpemVv
ZihVQ2hhcikpOwogICAgICAgICBtX2xlbmd0aCA9IHJlcXVpcmVkTGVuZ3RoOwogICAgIH0gZWxz
ZSB7Ci0gICAgICAgIFVDaGFyKiBkZXN0ID0gYXBwZW5kVW5pbml0aWFsaXplZDxVQ2hhcj4obGVu
Z3RoKTsKLSAgICAgICAgaWYgKCFkZXN0KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICBtZW1jcHkoZGVzdCwgY2hhcmFjdGVycywgc3RhdGljX2Nhc3Q8c2l6ZV90PihsZW5ndGgp
ICogc2l6ZW9mKFVDaGFyKSk7CisgICAgICAgIGlmIChhdXRvIGFwcGVuZGVkID0gYXBwZW5kVW5p
bml0aWFsaXplZDxVQ2hhcj4obGVuZ3RoKSkKKyAgICAgICAgICAgIG1lbWNweSgqYXBwZW5kZWQs
IGNoYXJhY3RlcnMsIHN0YXRpY19jYXN0PHNpemVfdD4obGVuZ3RoKSAqIHNpemVvZihVQ2hhcikp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoYXBwZW5k
ZWQuZXJyb3IoKSk7CiAgICAgfQogICAgIEFTU0VSVChtX2J1ZmZlci0+bGVuZ3RoKCkgPj0gbV9s
ZW5ndGgpOwotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiB7IH07CiB9CiAKLXZvaWQgU3Ry
aW5nQnVpbGRlcjo6YXBwZW5kKGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5n
dGgpCi17Ci0gICAgaWYgKCF0cnlBcHBlbmQoY2hhcmFjdGVycywgbGVuZ3RoKSkKLSAgICAgICAg
Q1JBU0goKTsKLX0KLQotYm9vbCBTdHJpbmdCdWlsZGVyOjp0cnlBcHBlbmQoY29uc3QgTENoYXIq
IGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4g
U3RyaW5nQnVpbGRlcjo6YXBwZW5kKGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBs
ZW5ndGgpCiB7CiAgICAgaWYgKCFsZW5ndGgpCi0gICAgICAgIHJldHVybiB0cnVlOwotCisgICAg
ICAgIHJldHVybiB7IH07CiAgICAgQVNTRVJUKGNoYXJhY3RlcnMpOwogCiAgICAgaWYgKG1faXM4
Qml0KSB7Ci0gICAgICAgIExDaGFyKiBkZXN0ID0gYXBwZW5kVW5pbml0aWFsaXplZDxMQ2hhcj4o
bGVuZ3RoKTsKLSAgICAgICAgaWYgKCFkZXN0KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICBhdXRvIGFwcGVuZGVkID0gYXBwZW5kVW5pbml0aWFsaXplZDxMQ2hhcj4obGVuZ3Ro
KTsKKyAgICAgICAgaWYgKCFhcHBlbmRlZCkKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBl
Y3RlZChhcHBlbmRlZC5lcnJvcigpKTsKKyAgICAgICAgTENoYXIqIGRlc3QgPSAqYXBwZW5kZWQ7
CiAgICAgICAgIGlmIChsZW5ndGggPiA4KQogICAgICAgICAgICAgbWVtY3B5KGRlc3QsIGNoYXJh
Y3RlcnMsIHN0YXRpY19jYXN0PHNpemVfdD4obGVuZ3RoKSAqIHNpemVvZihMQ2hhcikpOwogICAg
ICAgICBlbHNlIHsKQEAgLTMyOCw3NiArMzcwLDc5IEBAIGJvb2wgU3RyaW5nQnVpbGRlcjo6dHJ5
QXBwZW5kKGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgICAg
ICAgICAgICAgKihkZXN0KyspID0gKihjaGFyYWN0ZXJzKyspOwogICAgICAgICB9CiAgICAgfSBl
bHNlIHsKLSAgICAgICAgVUNoYXIqIGRlc3QgPSBhcHBlbmRVbmluaXRpYWxpemVkPFVDaGFyPihs
ZW5ndGgpOwotICAgICAgICBpZiAoIWRlc3QpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIGF1dG8gYXBwZW5kZWQgPSBhcHBlbmRVbmluaXRpYWxpemVkPFVDaGFyPihsZW5ndGgp
OworICAgICAgICBpZiAoIWFwcGVuZGVkKQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVj
dGVkKGFwcGVuZGVkLmVycm9yKCkpOworICAgICAgICBVQ2hhciogZGVzdCA9ICphcHBlbmRlZDsK
ICAgICAgICAgY29uc3QgTENoYXIqIGVuZCA9IGNoYXJhY3RlcnMgKyBsZW5ndGg7CiAgICAgICAg
IHdoaWxlIChjaGFyYWN0ZXJzIDwgZW5kKQogICAgICAgICAgICAgKihkZXN0KyspID0gKihjaGFy
YWN0ZXJzKyspOwogICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4geyB9OwogfQog
CiAjaWYgVVNFKENGKQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVuZChDRlN0cmluZ1JlZiBz
dHJpbmcpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZChD
RlN0cmluZ1JlZiBzdHJpbmcpCiB7CiAgICAgLy8gRmFzdCBwYXRoOiBhdm9pZCBjb25zdHJ1Y3Rp
bmcgYSB0ZW1wb3JhcnkgU3RyaW5nIHdoZW4gcG9zc2libGUuCiAgICAgaWYgKGF1dG8qIGNoYXJh
Y3RlcnMgPSBDRlN0cmluZ0dldENTdHJpbmdQdHIoc3RyaW5nLCBrQ0ZTdHJpbmdFbmNvZGluZ0lT
T0xhdGluMSkpIHsKLSAgICAgICAgYXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIq
PihjaGFyYWN0ZXJzKSwgQ0ZTdHJpbmdHZXRMZW5ndGgoc3RyaW5nKSk7Ci0gICAgICAgIHJldHVy
bjsKKyAgICAgICAgaWYgKGF1dG8gYXBwZW5kZWQgPSBhcHBlbmQocmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KGNoYXJhY3RlcnMpLCBDRlN0cmluZ0dldExlbmd0aChzdHJpbmcpKSkKKyAg
ICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBh
cHBlbmRlZDsKICAgICB9Ci0gICAgYXBwZW5kKFN0cmluZyhzdHJpbmcpKTsKKyAgICByZXR1cm4g
YXBwZW5kKFN0cmluZyhzdHJpbmcpKTsKIH0KIAogI2VuZGlmCiAKLXZvaWQgU3RyaW5nQnVpbGRl
cjo6YXBwZW5kTnVtYmVyKGludCBudW1iZXIpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0
cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcihpbnQgbnVtYmVyKQogewotICAgIG51bWJlclRvU3Ry
aW5nU2lnbmVkPFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CisgICAgcmV0dXJuIG51bWJl
clRvU3RyaW5nU2lnbmVkPFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CiB9CiAKLXZvaWQg
U3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKHVuc2lnbmVkIGludCBudW1iZXIpCitTdHJpbmdC
dWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcih1bnNpZ25lZCBp
bnQgbnVtYmVyKQogewotICAgIG51bWJlclRvU3RyaW5nVW5zaWduZWQ8U3RyaW5nQnVpbGRlcj4o
bnVtYmVyLCB0aGlzKTsKKyAgICByZXR1cm4gbnVtYmVyVG9TdHJpbmdVbnNpZ25lZDxTdHJpbmdC
dWlsZGVyPihudW1iZXIsIHRoaXMpOwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51
bWJlcihsb25nIG51bWJlcikKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRl
cjo6YXBwZW5kTnVtYmVyKGxvbmcgbnVtYmVyKQogewotICAgIG51bWJlclRvU3RyaW5nU2lnbmVk
PFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CisgICAgcmV0dXJuIG51bWJlclRvU3RyaW5n
U2lnbmVkPFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CiB9CiAKLXZvaWQgU3RyaW5nQnVp
bGRlcjo6YXBwZW5kTnVtYmVyKHVuc2lnbmVkIGxvbmcgbnVtYmVyKQorU3RyaW5nQnVpbGRlcjo6
RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIodW5zaWduZWQgbG9uZyBudW1i
ZXIpCiB7Ci0gICAgbnVtYmVyVG9TdHJpbmdVbnNpZ25lZDxTdHJpbmdCdWlsZGVyPihudW1iZXIs
IHRoaXMpOworICAgIHJldHVybiBudW1iZXJUb1N0cmluZ1Vuc2lnbmVkPFN0cmluZ0J1aWxkZXI+
KG51bWJlciwgdGhpcyk7CiB9CiAKLXZvaWQgU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKGxv
bmcgbG9uZyBudW1iZXIpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6
OmFwcGVuZE51bWJlcihsb25nIGxvbmcgbnVtYmVyKQogewotICAgIG51bWJlclRvU3RyaW5nU2ln
bmVkPFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CisgICAgcmV0dXJuIG51bWJlclRvU3Ry
aW5nU2lnbmVkPFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CiB9CiAKLXZvaWQgU3RyaW5n
QnVpbGRlcjo6YXBwZW5kTnVtYmVyKHVuc2lnbmVkIGxvbmcgbG9uZyBudW1iZXIpCitTdHJpbmdC
dWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcih1bnNpZ25lZCBs
b25nIGxvbmcgbnVtYmVyKQogewotICAgIG51bWJlclRvU3RyaW5nVW5zaWduZWQ8U3RyaW5nQnVp
bGRlcj4obnVtYmVyLCB0aGlzKTsKKyAgICByZXR1cm4gbnVtYmVyVG9TdHJpbmdVbnNpZ25lZDxT
dHJpbmdCdWlsZGVyPihudW1iZXIsIHRoaXMpOwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFw
cGVuZE51bWJlcihkb3VibGUgbnVtYmVyLCB1bnNpZ25lZCBwcmVjaXNpb24sIFRyYWlsaW5nWmVy
b3NUcnVuY2F0aW5nUG9saWN5IHRyYWlsaW5nWmVyb3NUcnVuY2F0aW5nUG9saWN5KQorU3RyaW5n
QnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIoZG91YmxlIG51
bWJlciwgdW5zaWduZWQgcHJlY2lzaW9uLCBUcmFpbGluZ1plcm9zVHJ1bmNhdGluZ1BvbGljeSB0
cmFpbGluZ1plcm9zVHJ1bmNhdGluZ1BvbGljeSkKIHsKICAgICBOdW1iZXJUb1N0cmluZ0J1ZmZl
ciBidWZmZXI7Ci0gICAgYXBwZW5kKG51bWJlclRvRml4ZWRQcmVjaXNpb25TdHJpbmcobnVtYmVy
LCBwcmVjaXNpb24sIGJ1ZmZlciwgdHJhaWxpbmdaZXJvc1RydW5jYXRpbmdQb2xpY3kgPT0gVHJ1
bmNhdGVUcmFpbGluZ1plcm9zKSk7CisgICAgcmV0dXJuIGFwcGVuZChudW1iZXJUb0ZpeGVkUHJl
Y2lzaW9uU3RyaW5nKG51bWJlciwgcHJlY2lzaW9uLCBidWZmZXIsIHRyYWlsaW5nWmVyb3NUcnVu
Y2F0aW5nUG9saWN5ID09IFRydW5jYXRlVHJhaWxpbmdaZXJvcykpOwogfQogCi12b2lkIFN0cmlu
Z0J1aWxkZXI6OmFwcGVuZEVDTUFTY3JpcHROdW1iZXIoZG91YmxlIG51bWJlcikKK1N0cmluZ0J1
aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6YXBwZW5kRUNNQVNjcmlwdE51bWJlcihk
b3VibGUgbnVtYmVyKQogewogICAgIE51bWJlclRvU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKLSAgICBh
cHBlbmQobnVtYmVyVG9TdHJpbmcobnVtYmVyLCBidWZmZXIpKTsKKyAgICByZXR1cm4gYXBwZW5k
KG51bWJlclRvU3RyaW5nKG51bWJlciwgYnVmZmVyKSk7CiB9CiAKLXZvaWQgU3RyaW5nQnVpbGRl
cjo6YXBwZW5kRml4ZWRXaWR0aE51bWJlcihkb3VibGUgbnVtYmVyLCB1bnNpZ25lZCBkZWNpbWFs
UGxhY2VzKQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmRG
aXhlZFdpZHRoTnVtYmVyKGRvdWJsZSBudW1iZXIsIHVuc2lnbmVkIGRlY2ltYWxQbGFjZXMpCiB7
CiAgICAgTnVtYmVyVG9TdHJpbmdCdWZmZXIgYnVmZmVyOwotICAgIGFwcGVuZChudW1iZXJUb0Zp
eGVkV2lkdGhTdHJpbmcobnVtYmVyLCBkZWNpbWFsUGxhY2VzLCBidWZmZXIpKTsKKyAgICByZXR1
cm4gYXBwZW5kKG51bWJlclRvRml4ZWRXaWR0aFN0cmluZyhudW1iZXIsIGRlY2ltYWxQbGFjZXMs
IGJ1ZmZlcikpOwogfQogCiBib29sIFN0cmluZ0J1aWxkZXI6OmNhblNocmluaygpIGNvbnN0CkBA
IC00MDYsMTUgKzQ1MSwyMSBAQCBib29sIFN0cmluZ0J1aWxkZXI6OmNhblNocmluaygpIGNvbnN0
CiAgICAgcmV0dXJuIG1fYnVmZmVyICYmIG1fYnVmZmVyLT5sZW5ndGgoKSA+IChtX2xlbmd0aCAr
IChtX2xlbmd0aCA+PiAyKSk7CiB9CiAKLXZvaWQgU3RyaW5nQnVpbGRlcjo6c2hyaW5rVG9GaXQo
KQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjpzaHJpbmtUb0ZpdCgp
CiB7CiAgICAgaWYgKGNhblNocmluaygpKSB7Ci0gICAgICAgIGlmIChtX2lzOEJpdCkKLSAgICAg
ICAgICAgIHJlYWxsb2NhdGVCdWZmZXI8TENoYXI+KG1fbGVuZ3RoKTsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgcmVhbGxvY2F0ZUJ1ZmZlcjxVQ2hhcj4obV9sZW5ndGgpOworICAgICAgICBp
ZiAobV9pczhCaXQpIHsKKyAgICAgICAgICAgIGF1dG8gcmVhbGxvY2F0ZWQgPSByZWFsbG9jYXRl
QnVmZmVyPExDaGFyPihtX2xlbmd0aCk7CisgICAgICAgICAgICBpZiAoIXJlYWxsb2NhdGVkKQor
ICAgICAgICAgICAgICAgIHJldHVybiByZWFsbG9jYXRlZDsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIGF1dG8gcmVhbGxvY2F0ZWQgPSByZWFsbG9jYXRlQnVmZmVyPFVDaGFyPihtX2xl
bmd0aCk7CisgICAgICAgICAgICBpZiAoIXJlYWxsb2NhdGVkKQorICAgICAgICAgICAgICAgIHJl
dHVybiByZWFsbG9jYXRlZDsKKyAgICAgICAgfQogICAgICAgICBtX3N0cmluZyA9IFdURk1vdmUo
bV9idWZmZXIpOwogICAgIH0KKyAgICByZXR1cm4geyB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
VEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlci5oIGIvU291
cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmgKaW5kZXggN2U5NzRjMS4uMmMwZGRjYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmgKKysrIGIvU291
cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDA5LTIwMTAsIDIwMTItMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTI3LDYgKzI3LDcgQEAKICNp
Zm5kZWYgU3RyaW5nQnVpbGRlcl9oCiAjZGVmaW5lIFN0cmluZ0J1aWxkZXJfaAogCisjaW5jbHVk
ZSA8d3RmL0V4cGVjdGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KQEAgLTQwLDM2ICs0MSwzMyBAQCBjbGFzcyBTdHJpbmdC
dWlsZGVyIHsKIAogcHVibGljOgogICAgIFN0cmluZ0J1aWxkZXIoKQotICAgICAgICA6IG1fbGVu
Z3RoKDApCi0gICAgICAgICwgbV9pczhCaXQodHJ1ZSkKLSAgICAgICAgLCBtX2J1ZmZlckNoYXJh
Y3RlcnM4KG51bGxwdHIpCisgICAgICAgIDogbV9idWZmZXJDaGFyYWN0ZXJzOChudWxscHRyKQog
ICAgIHsKICAgICB9CiAgICAgU3RyaW5nQnVpbGRlcihTdHJpbmdCdWlsZGVyJiYpID0gZGVmYXVs
dDsKICAgICBTdHJpbmdCdWlsZGVyJiBvcGVyYXRvcj0oU3RyaW5nQnVpbGRlciYmKSA9IGRlZmF1
bHQ7CiAKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmQoY29uc3QgVUNoYXIqLCB1
bnNpZ25lZCk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgdHJ5QXBwZW5kKGNvbnN0IFVD
aGFyKiwgdW5zaWduZWQpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZChjb25z
dCBMQ2hhciosIHVuc2lnbmVkKTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCB0cnlBcHBl
bmQoY29uc3QgTENoYXIqLCB1bnNpZ25lZCk7CisgICAgZW51bSBjbGFzcyBGYWlsdXJlIHsKKyAg
ICAgICAgV291bGRPdmVyZmxvdywKKyAgICAgICAgT3V0T2ZNZW1vcnksCisgICAgICAgIFVuaGFu
ZGxlZEZhaWx1cmUsCisgICAgfTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFeHBlY3QgPSB2b2lk
PiB1c2luZyBGYWxsaWJsZSA9IEV4cGVjdGVkPEV4cGVjdCwgU3RyaW5nQnVpbGRlcjo6RmFpbHVy
ZT47CiAKLSAgICBBTFdBWVNfSU5MSU5FIHZvaWQgYXBwZW5kKGNvbnN0IGNoYXIqIGNoYXJhY3Rl
cnMsIHVuc2lnbmVkIGxlbmd0aCkgeyBhcHBlbmQocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hh
cio+KGNoYXJhY3RlcnMpLCBsZW5ndGgpOyB9Ci0gICAgQUxXQVlTX0lOTElORSBib29sIHRyeUFw
cGVuZChjb25zdCBjaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpIHsgcmV0dXJuIHRy
eUFwcGVuZChyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oY2hhcmFjdGVycyksIGxlbmd0
aCk7IH0KKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmQoY29uc3QgVUNo
YXIqLCB1bnNpZ25lZCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5k
KGNvbnN0IExDaGFyKiwgdW5zaWduZWQpOwogCi0gICAgdm9pZCBhcHBlbmQoY29uc3QgQXRvbWlj
U3RyaW5nJiBhdG9taWNTdHJpbmcpCi0gICAgewotICAgICAgICBhcHBlbmQoYXRvbWljU3RyaW5n
LnN0cmluZygpKTsKLSAgICB9CisgICAgQUxXQVlTX0lOTElORSBGYWxsaWJsZTw+IGFwcGVuZChj
b25zdCBjaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpIHsgcmV0dXJuIGFwcGVuZChy
ZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oY2hhcmFjdGVycyksIGxlbmd0aCk7IH0KIAot
ICAgIHZvaWQgYXBwZW5kKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIEZhbGxpYmxlPD4gYXBw
ZW5kKGNvbnN0IEF0b21pY1N0cmluZyYgYXRvbWljU3RyaW5nKQogICAgIHsKLSAgICAgICAgaWYg
KCF0cnlBcHBlbmQoc3RyaW5nKSkKLSAgICAgICAgICAgIENSQVNIKCk7CisgICAgICAgIHJldHVy
biBhcHBlbmQoYXRvbWljU3RyaW5nLnN0cmluZygpKTsKICAgICB9Ci0gICAgYm9vbCB0cnlBcHBl
bmQoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisKKyAgICBGYWxsaWJsZTw+IGFwcGVuZChjb25zdCBT
dHJpbmcmIHN0cmluZykKICAgICB7CiAgICAgICAgIGlmICghc3RyaW5nLmxlbmd0aCgpKQotICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICByZXR1cm4geyB9OwogCiAgICAgICAg
IC8vIElmIHdlJ3JlIGFwcGVuZGluZyB0byBhbiBlbXB0eSBzdHJpbmcsIGFuZCB0aGVyZSBpcyBu
b3QgYSBidWZmZXIgKHJlc2VydmVDYXBhY2l0eSBoYXMgbm90IGJlZW4gY2FsbGVkKQogICAgICAg
ICAvLyB0aGVuIGp1c3QgcmV0YWluIHRoZSBzdHJpbmcuCkBAIC03NywxNzQgKzc1LDE2NCBAQCBw
dWJsaWM6CiAgICAgICAgICAgICBtX3N0cmluZyA9IHN0cmluZzsKICAgICAgICAgICAgIG1fbGVu
Z3RoID0gc3RyaW5nLmxlbmd0aCgpOwogICAgICAgICAgICAgbV9pczhCaXQgPSBtX3N0cmluZy5p
czhCaXQoKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgcmV0dXJuIHsg
fTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChzdHJpbmcuaXM4Qml0KCkpCi0gICAgICAgICAg
ICByZXR1cm4gdHJ5QXBwZW5kKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBzdHJpbmcubGVuZ3RoKCkp
OworICAgICAgICAgICAgcmV0dXJuIGFwcGVuZChzdHJpbmcuY2hhcmFjdGVyczgoKSwgc3RyaW5n
Lmxlbmd0aCgpKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgcmV0dXJuIHRyeUFwcGVuZChz
dHJpbmcuY2hhcmFjdGVyczE2KCksIHN0cmluZy5sZW5ndGgoKSk7CisgICAgICAgICAgICByZXR1
cm4gYXBwZW5kKHN0cmluZy5jaGFyYWN0ZXJzMTYoKSwgc3RyaW5nLmxlbmd0aCgpKTsKICAgICB9
CiAKLSAgICB2b2lkIGFwcGVuZChjb25zdCBTdHJpbmdCdWlsZGVyJiBvdGhlcikKLSAgICB7Ci0g
ICAgICAgIGlmICghdHJ5QXBwZW5kKG90aGVyKSkKLSAgICAgICAgICAgIENSQVNIKCk7Ci0gICAg
fQotICAgIGJvb2wgdHJ5QXBwZW5kKGNvbnN0IFN0cmluZ0J1aWxkZXImIG90aGVyKQorICAgIEZh
bGxpYmxlPD4gYXBwZW5kKGNvbnN0IFN0cmluZ0J1aWxkZXImIG90aGVyKQogICAgIHsKKyAgICAg
ICAgaWYgKG90aGVyLmZhaWxlZCgpKQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVk
KEZhaWx1cmU6OlVuaGFuZGxlZEZhaWx1cmUpOyAgICAgICAgICAgIAogICAgICAgICBpZiAoIW90
aGVyLm1fbGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICByZXR1
cm4geyB9OwogCiAgICAgICAgIC8vIElmIHdlJ3JlIGFwcGVuZGluZyB0byBhbiBlbXB0eSBzdHJp
bmcsIGFuZCB0aGVyZSBpcyBub3QgYSBidWZmZXIgKHJlc2VydmVDYXBhY2l0eSBoYXMgbm90IGJl
ZW4gY2FsbGVkKQogICAgICAgICAvLyB0aGVuIGp1c3QgcmV0YWluIHRoZSBzdHJpbmcuCiAgICAg
ICAgIGlmICghbV9sZW5ndGggJiYgIW1fYnVmZmVyICYmICFvdGhlci5tX3N0cmluZy5pc051bGwo
KSkgewogICAgICAgICAgICAgbV9zdHJpbmcgPSBvdGhlci5tX3N0cmluZzsKICAgICAgICAgICAg
IG1fbGVuZ3RoID0gb3RoZXIubV9sZW5ndGg7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KIAogICAgICAgICBpZiAob3RoZXIuaXM4
Qml0KCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ5QXBwZW5kKG90aGVyLmNoYXJhY3RlcnM4KCks
IG90aGVyLm1fbGVuZ3RoKTsKKyAgICAgICAgICAgIHJldHVybiBhcHBlbmQoKm90aGVyLmNoYXJh
Y3RlcnM4KCksIG90aGVyLm1fbGVuZ3RoKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgcmV0
dXJuIHRyeUFwcGVuZChvdGhlci5jaGFyYWN0ZXJzMTYoKSwgb3RoZXIubV9sZW5ndGgpOworICAg
ICAgICAgICAgcmV0dXJuIGFwcGVuZCgqb3RoZXIuY2hhcmFjdGVyczE2KCksIG90aGVyLm1fbGVu
Z3RoKTsKICAgICB9CiAKLSAgICB2b2lkIGFwcGVuZChTdHJpbmdWaWV3IHN0cmluZ1ZpZXcpCi0g
ICAgewotICAgICAgICBpZiAoIXRyeUFwcGVuZChzdHJpbmdWaWV3KSkKLSAgICAgICAgICAgIENS
QVNIKCk7Ci0gICAgfQotICAgIGJvb2wgdHJ5QXBwZW5kKFN0cmluZ1ZpZXcgc3RyaW5nVmlldykK
KyAgICBGYWxsaWJsZTw+IGFwcGVuZChTdHJpbmdWaWV3IHN0cmluZ1ZpZXcpCiAgICAgewogICAg
ICAgICBpZiAoc3RyaW5nVmlldy5pczhCaXQoKSkKLSAgICAgICAgICAgIHJldHVybiB0cnlBcHBl
bmQoc3RyaW5nVmlldy5jaGFyYWN0ZXJzOCgpLCBzdHJpbmdWaWV3Lmxlbmd0aCgpKTsKKyAgICAg
ICAgICAgIHJldHVybiBhcHBlbmQoc3RyaW5nVmlldy5jaGFyYWN0ZXJzOCgpLCBzdHJpbmdWaWV3
Lmxlbmd0aCgpKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgcmV0dXJuIHRyeUFwcGVuZChz
dHJpbmdWaWV3LmNoYXJhY3RlcnMxNigpLCBzdHJpbmdWaWV3Lmxlbmd0aCgpKTsKKyAgICAgICAg
ICAgIHJldHVybiBhcHBlbmQoc3RyaW5nVmlldy5jaGFyYWN0ZXJzMTYoKSwgc3RyaW5nVmlldy5s
ZW5ndGgoKSk7CiAgICAgfQogCiAjaWYgVVNFKENGKQotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2
b2lkIGFwcGVuZChDRlN0cmluZ1JlZik7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxl
PD4gYXBwZW5kKENGU3RyaW5nUmVmKTsKICNlbmRpZgogI2lmIFVTRShDRikgJiYgZGVmaW5lZChf
X09CSkNfXykKLSAgICB2b2lkIGFwcGVuZChOU1N0cmluZyAqc3RyaW5nKSB7IGFwcGVuZCgoX19i
cmlkZ2UgQ0ZTdHJpbmdSZWYpc3RyaW5nKTsgfQorICAgIEZhbGxpYmxlPD4gYXBwZW5kKE5TU3Ry
aW5nICpzdHJpbmcpIHsgcmV0dXJuIGFwcGVuZCgoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpc3RyaW5n
KTsgfQogI2VuZGlmCiAgICAgCi0gICAgdm9pZCBhcHBlbmQoY29uc3QgU3RyaW5nJiBzdHJpbmcs
IHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQorICAgIEZhbGxpYmxlPD4gYXBwZW5k
KGNvbnN0IFN0cmluZyYgc3RyaW5nLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkK
ICAgICB7CiAgICAgICAgIGlmICghc3RyaW5nLmxlbmd0aCgpKQotICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgICAgICBpZiAoKG9mZnNldCArIGxlbmd0
aCkgPiBzdHJpbmcubGVuZ3RoKCkpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBy
ZXR1cm4geyB9OwogCiAgICAgICAgIGlmIChzdHJpbmcuaXM4Qml0KCkpCi0gICAgICAgICAgICBh
cHBlbmQoc3RyaW5nLmNoYXJhY3RlcnM4KCkgKyBvZmZzZXQsIGxlbmd0aCk7CisgICAgICAgICAg
ICByZXR1cm4gYXBwZW5kKHN0cmluZy5jaGFyYWN0ZXJzOCgpICsgb2Zmc2V0LCBsZW5ndGgpOwog
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBhcHBlbmQoc3RyaW5nLmNoYXJhY3RlcnMxNigpICsg
b2Zmc2V0LCBsZW5ndGgpOworICAgICAgICAgICAgcmV0dXJuIGFwcGVuZChzdHJpbmcuY2hhcmFj
dGVyczE2KCkgKyBvZmZzZXQsIGxlbmd0aCk7CiAgICAgfQogCi0gICAgdm9pZCBhcHBlbmQoY29u
c3QgY2hhciogY2hhcmFjdGVycykKKyAgICBGYWxsaWJsZTw+IGFwcGVuZChjb25zdCBjaGFyKiBj
aGFyYWN0ZXJzKQogICAgIHsKICAgICAgICAgaWYgKGNoYXJhY3RlcnMpCi0gICAgICAgICAgICBh
cHBlbmQoY2hhcmFjdGVycywgc3RybGVuKGNoYXJhY3RlcnMpKTsKLSAgICB9Ci0gICAgYm9vbCB0
cnlBcHBlbmQoY29uc3QgY2hhciogY2hhcmFjdGVycykKLSAgICB7Ci0gICAgICAgIGlmIChjaGFy
YWN0ZXJzKQotICAgICAgICAgICAgcmV0dXJuIHRyeUFwcGVuZChjaGFyYWN0ZXJzLCBzdHJsZW4o
Y2hhcmFjdGVycykpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBh
cHBlbmQoY2hhcmFjdGVycywgc3RybGVuKGNoYXJhY3RlcnMpKTsKKyAgICAgICAgcmV0dXJuIHsg
fTsKICAgICB9CiAKLSAgICB2b2lkIGFwcGVuZChVQ2hhciBjKQorICAgIEZhbGxpYmxlPD4gYXBw
ZW5kKFVDaGFyIGMpCiAgICAgewogICAgICAgICBpZiAobV9idWZmZXIgJiYgbV9sZW5ndGggPCBt
X2J1ZmZlci0+bGVuZ3RoKCkgJiYgbV9zdHJpbmcuaXNOdWxsKCkpIHsKICAgICAgICAgICAgIGlm
ICghbV9pczhCaXQpIHsKICAgICAgICAgICAgICAgICBtX2J1ZmZlckNoYXJhY3RlcnMxNlttX2xl
bmd0aCsrXSA9IGM7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIHJl
dHVybiB7IH07CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmICghKGMgJiB+MHhmZikp
IHsKICAgICAgICAgICAgICAgICBtX2J1ZmZlckNoYXJhY3RlcnM4W21fbGVuZ3RoKytdID0gc3Rh
dGljX2Nhc3Q8TENoYXI+KGMpOwotICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
ICAgICByZXR1cm4geyB9OwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIGFwcGVu
ZCgmYywgMSk7CisgICAgICAgIHJldHVybiBhcHBlbmQoJmMsIDEpOwogICAgIH0KIAotICAgIHZv
aWQgYXBwZW5kKExDaGFyIGMpCi0gICAgewotICAgICAgICBpZiAoIXRyeUFwcGVuZChjKSkKLSAg
ICAgICAgICAgIENSQVNIKCk7Ci0gICAgfQotICAgIGJvb2wgdHJ5QXBwZW5kKExDaGFyIGMpCisg
ICAgRmFsbGlibGU8PiBhcHBlbmQoTENoYXIgYykKICAgICB7CiAgICAgICAgIGlmIChtX2J1ZmZl
ciAmJiBtX2xlbmd0aCA8IG1fYnVmZmVyLT5sZW5ndGgoKSAmJiBtX3N0cmluZy5pc051bGwoKSkg
ewogICAgICAgICAgICAgaWYgKG1faXM4Qml0KQogICAgICAgICAgICAgICAgIG1fYnVmZmVyQ2hh
cmFjdGVyczhbbV9sZW5ndGgrK10gPSBjOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgIG1fYnVmZmVyQ2hhcmFjdGVyczE2W21fbGVuZ3RoKytdID0gYzsKLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHJldHVybiB0cnlBcHBlbmQo
JmMsIDEpOworICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgfQorICAgICAgICByZXR1
cm4gYXBwZW5kKCZjLCAxKTsKICAgICB9CiAKLSAgICB2b2lkIGFwcGVuZChjaGFyIGMpIHsgYXBw
ZW5kKHN0YXRpY19jYXN0PExDaGFyPihjKSk7IH0KLSAgICBib29sIHRyeUFwcGVuZChjaGFyIGMp
IHsgcmV0dXJuIHRyeUFwcGVuZChzdGF0aWNfY2FzdDxMQ2hhcj4oYykpOyB9CisgICAgRmFsbGli
bGU8PiBhcHBlbmQoY2hhciBjKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFwcGVuZChzdGF0aWNf
Y2FzdDxMQ2hhcj4oYykpOworICAgIH0KIAotICAgIHZvaWQgYXBwZW5kKFVDaGFyMzIgYykKKyAg
ICBGYWxsaWJsZTw+IGFwcGVuZChVQ2hhcjMyIGMpCiAgICAgewotICAgICAgICBpZiAoVV9JU19C
TVAoYykpIHsKLSAgICAgICAgICAgIGFwcGVuZChzdGF0aWNfY2FzdDxVQ2hhcj4oYykpOwotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGFwcGVuZChVMTZfTEVBRChjKSk7
Ci0gICAgICAgIGFwcGVuZChVMTZfVFJBSUwoYykpOworICAgICAgICBpZiAoVV9JU19CTVAoYykp
CisgICAgICAgICAgICByZXR1cm4gYXBwZW5kKHN0YXRpY19jYXN0PFVDaGFyPihjKSk7CisgICAg
ICAgIGF1dG8gYXBwZW5kZWQgPSBhcHBlbmQoVTE2X0xFQUQoYykpOworICAgICAgICBpZiAoIWFw
cGVuZGVkKQorICAgICAgICAgICAgcmV0dXJuIGFwcGVuZGVkOworICAgICAgICByZXR1cm4gYXBw
ZW5kKFUxNl9UUkFJTChjKSk7CiAgICAgfQogCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQg
YXBwZW5kUXVvdGVkSlNPTlN0cmluZyhjb25zdCBTdHJpbmcmKTsKLSAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgYm9vbCB0cnlBcHBlbmRRdW90ZWRKU09OU3RyaW5nKGNvbnN0IFN0cmluZyYpOworICAg
IFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IGFwcGVuZFF1b3RlZEpTT05TdHJpbmcoY29u
c3QgU3RyaW5nJik7CiAKICAgICB0ZW1wbGF0ZTx1bnNpZ25lZCBjaGFyYWN0ZXJDb3VudD4KLSAg
ICBBTFdBWVNfSU5MSU5FIHZvaWQgYXBwZW5kTGl0ZXJhbChjb25zdCBjaGFyICgmY2hhcmFjdGVy
cylbY2hhcmFjdGVyQ291bnRdKSB7IGFwcGVuZChjaGFyYWN0ZXJzLCBjaGFyYWN0ZXJDb3VudCAt
IDEpOyB9Ci0gICAgdGVtcGxhdGU8dW5zaWduZWQgY2hhcmFjdGVyQ291bnQ+Ci0gICAgQUxXQVlT
X0lOTElORSBib29sIHRyeUFwcGVuZExpdGVyYWwoY29uc3QgY2hhciAoJmNoYXJhY3RlcnMpW2No
YXJhY3RlckNvdW50XSkgeyByZXR1cm4gdHJ5QXBwZW5kKGNoYXJhY3RlcnMsIGNoYXJhY3RlckNv
dW50IC0gMSk7IH0KLQotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZE51bWJlcihp
bnQpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZE51bWJlcih1bnNpZ25lZCBp
bnQpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZE51bWJlcihsb25nKTsKLSAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmROdW1iZXIodW5zaWduZWQgbG9uZyk7Ci0g
ICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kTnVtYmVyKGxvbmcgbG9uZyk7Ci0gICAg
V1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kTnVtYmVyKHVuc2lnbmVkIGxvbmcgbG9uZyk7
Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kTnVtYmVyKGRvdWJsZSwgdW5zaWdu
ZWQgcHJlY2lzaW9uID0gNiwgVHJhaWxpbmdaZXJvc1RydW5jYXRpbmdQb2xpY3kgPSBUcnVuY2F0
ZVRyYWlsaW5nWmVyb3MpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZEVDTUFT
Y3JpcHROdW1iZXIoZG91YmxlKTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmRG
aXhlZFdpZHRoTnVtYmVyKGRvdWJsZSwgdW5zaWduZWQgZGVjaW1hbFBsYWNlcyk7Ci0KLSAgICBT
dHJpbmcgdG9TdHJpbmcoKQorICAgIEFMV0FZU19JTkxJTkUgRmFsbGlibGU8PiBhcHBlbmRMaXRl
cmFsKGNvbnN0IGNoYXIgKCZjaGFyYWN0ZXJzKVtjaGFyYWN0ZXJDb3VudF0pIHsgcmV0dXJuIGFw
cGVuZChjaGFyYWN0ZXJzLCBjaGFyYWN0ZXJDb3VudCAtIDEpOyB9CisKKyAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmROdW1iZXIoaW50KTsKKyAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgRmFsbGlibGU8PiBhcHBlbmROdW1iZXIodW5zaWduZWQgaW50KTsKKyAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmROdW1iZXIobG9uZyk7CisgICAgV1RGX0VYUE9S
VF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5kTnVtYmVyKHVuc2lnbmVkIGxvbmcpOworICAgIFdU
Rl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IGFwcGVuZE51bWJlcihsb25nIGxvbmcpOworICAg
IFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IGFwcGVuZE51bWJlcih1bnNpZ25lZCBsb25n
IGxvbmcpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IGFwcGVuZE51bWJlcihk
b3VibGUsIHVuc2lnbmVkIHByZWNpc2lvbiA9IDYsIFRyYWlsaW5nWmVyb3NUcnVuY2F0aW5nUG9s
aWN5ID0gVHJ1bmNhdGVUcmFpbGluZ1plcm9zKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFs
bGlibGU8PiBhcHBlbmRFQ01BU2NyaXB0TnVtYmVyKGRvdWJsZSk7CisgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIEZhbGxpYmxlPD4gYXBwZW5kRml4ZWRXaWR0aE51bWJlcihkb3VibGUsIHVuc2lnbmVk
IGRlY2ltYWxQbGFjZXMpOworCisgICAgV0FSTl9VTlVTRURfUkVUVVJOIEZhbGxpYmxlPFN0cmlu
Zz4gdG9TdHJpbmcoKQogICAgIHsKLSAgICAgICAgc2hyaW5rVG9GaXQoKTsKLSAgICAgICAgaWYg
KG1fc3RyaW5nLmlzTnVsbCgpKQotICAgICAgICAgICAgcmVpZnlTdHJpbmcoKTsKLSAgICAgICAg
cmV0dXJuIG1fc3RyaW5nOworICAgICAgICBpZiAobV9mYWlsZWQpCisgICAgICAgICAgICByZXR1
cm4gbWFrZVVuZXhwZWN0ZWQoRmFpbHVyZTo6VW5oYW5kbGVkRmFpbHVyZSk7CisgICAgICAgIGlm
IChhdXRvIHNocmFuayA9IHNocmlua1RvRml0KCkpIHsKKyAgICAgICAgICAgIGlmIChtX3N0cmlu
Zy5pc051bGwoKSkKKyAgICAgICAgICAgICAgICByZWlmeVN0cmluZygpOworICAgICAgICAgICAg
cmV0dXJuIG1fc3RyaW5nOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZChzaHJhbmsuZXJyb3IoKSk7CiAgICAgfQogCi0gICAgY29uc3QgU3RyaW5nJiB0
b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBjb25zdAorICAgIFdBUk5fVU5VU0VEX1JFVFVSTiBG
YWxsaWJsZTxTdHJpbmc+IHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIGNvbnN0CiAgICAgewor
ICAgICAgICBpZiAobV9mYWlsZWQpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQo
RmFpbHVyZTo6VW5oYW5kbGVkRmFpbHVyZSk7CiAgICAgICAgIGlmIChtX3N0cmluZy5pc051bGwo
KSkKICAgICAgICAgICAgIHJlaWZ5U3RyaW5nKCk7CiAgICAgICAgIHJldHVybiBtX3N0cmluZzsK
ICAgICB9CiAKLSAgICBBdG9taWNTdHJpbmcgdG9BdG9taWNTdHJpbmcoKSBjb25zdAorICAgIFdB
Uk5fVU5VU0VEX1JFVFVSTiBGYWxsaWJsZTxBdG9taWNTdHJpbmc+IHRvQXRvbWljU3RyaW5nKCkg
Y29uc3QKICAgICB7CisgICAgICAgIGlmIChtX2ZhaWxlZCkKKyAgICAgICAgICAgIHJldHVybiBt
YWtlVW5leHBlY3RlZChGYWlsdXJlOjpVbmhhbmRsZWRGYWlsdXJlKTsKKwogICAgICAgICBpZiAo
IW1fbGVuZ3RoKQogICAgICAgICAgICAgcmV0dXJuIGVtcHR5QXRvbSgpOwogCiAgICAgICAgIC8v
IElmIHRoZSBidWZmZXIgaXMgc3VmZmljaWVudGx5IG92ZXItYWxsb2NhdGVkLCBtYWtlIGEgbmV3
IEF0b21pY1N0cmluZyBmcm9tIGEgY29weSBzbyBpdHMgYnVmZmVyIGlzIG5vdCBzbyBsYXJnZS4K
ICAgICAgICAgaWYgKGNhblNocmluaygpKSB7CiAgICAgICAgICAgICBpZiAoaXM4Qml0KCkpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIEF0b21pY1N0cmluZyhjaGFyYWN0ZXJzOCgpLCBsZW5ndGgo
KSk7Ci0gICAgICAgICAgICByZXR1cm4gQXRvbWljU3RyaW5nKGNoYXJhY3RlcnMxNigpLCBsZW5n
dGgoKSk7ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgcmV0dXJuIEF0b21pY1N0cmluZygq
Y2hhcmFjdGVyczgoKSwgbGVuZ3RoKCkpOworICAgICAgICAgICAgcmV0dXJuIEF0b21pY1N0cmlu
ZygqY2hhcmFjdGVyczE2KCksIGxlbmd0aCgpKTsgICAgICAgICAgICAKICAgICAgICAgfQogCiAg
ICAgICAgIGlmICghbV9zdHJpbmcuaXNOdWxsKCkpCkBAIC0yNjEsMjkgKzI0OSwzNyBAQCBwdWJs
aWM6CiAKICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9sZW5ndGg7IH0KIAot
ICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHJlc2VydmVDYXBhY2l0eSh1bnNpZ25lZCBuZXdD
YXBhY2l0eSk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gcmVzZXJ2ZUNhcGFj
aXR5KHVuc2lnbmVkIG5ld0NhcGFjaXR5KTsKIAogICAgIHVuc2lnbmVkIGNhcGFjaXR5KCkgY29u
c3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX2J1ZmZlciA/IG1fYnVmZmVyLT5sZW5ndGgoKSA6
IG1fbGVuZ3RoOwogICAgIH0KIAotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHJlc2l6ZSh1
bnNpZ25lZCBuZXdTaXplKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiByZXNp
emUodW5zaWduZWQgbmV3U2l6ZSk7CiAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBjYW5T
aHJpbmsoKSBjb25zdDsKIAotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHNocmlua1RvRml0
KCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gc2hyaW5rVG9GaXQoKTsKKwor
ICAgIGJvb2wgaXM4Qml0KCkgY29uc3QgeyByZXR1cm4gbV9pczhCaXQ7IH0KIAotICAgIFVDaGFy
IG9wZXJhdG9yW10odW5zaWduZWQgaSkgY29uc3QKKyAgICBib29sIGZhaWxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fZmFpbGVkOyB9CisKKyAgICBGYWxsaWJsZTxVQ2hhcj4gb3BlcmF0b3JbXSh1bnNp
Z25lZCBpKSBjb25zdAogICAgIHsKKyAgICAgICAgaWYgKG1fZmFpbGVkKQorICAgICAgICAgICAg
cmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZhaWx1cmU6OlVuaGFuZGxlZEZhaWx1cmUpOwogICAgICAg
ICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpIDwgbV9sZW5ndGgpOwogICAgICAg
ICBpZiAobV9pczhCaXQpCi0gICAgICAgICAgICByZXR1cm4gY2hhcmFjdGVyczgoKVtpXTsKLSAg
ICAgICAgcmV0dXJuIGNoYXJhY3RlcnMxNigpW2ldOworICAgICAgICAgICAgcmV0dXJuICgqY2hh
cmFjdGVyczgoKSlbaV07CisgICAgICAgIHJldHVybiAoKmNoYXJhY3RlcnMxNigpKVtpXTsKICAg
ICB9CiAKLSAgICBjb25zdCBMQ2hhciogY2hhcmFjdGVyczgoKSBjb25zdAorICAgIEZhbGxpYmxl
PGNvbnN0IExDaGFyKj4gY2hhcmFjdGVyczgoKSBjb25zdAogICAgIHsKKyAgICAgICAgaWYgKG1f
ZmFpbGVkKQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZhaWx1cmU6OlVuaGFu
ZGxlZEZhaWx1cmUpOwogICAgICAgICBBU1NFUlQobV9pczhCaXQpOwogICAgICAgICBpZiAoIW1f
bGVuZ3RoKQogICAgICAgICAgICAgcmV0dXJuIDA7CkBAIC0yOTMsOCArMjg5LDEwIEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIG1fYnVmZmVyLT5jaGFyYWN0ZXJzOCgpOwogICAgIH0KIAotICAg
IGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzMTYoKSBjb25zdAorICAgIEZhbGxpYmxlPGNvbnN0IFVD
aGFyKj4gY2hhcmFjdGVyczE2KCkgY29uc3QKICAgICB7CisgICAgICAgIGlmIChtX2ZhaWxlZCkK
KyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGYWlsdXJlOjpVbmhhbmRsZWRGYWls
dXJlKTsKICAgICAgICAgQVNTRVJUKCFtX2lzOEJpdCk7CiAgICAgICAgIGlmICghbV9sZW5ndGgp
CiAgICAgICAgICAgICByZXR1cm4gMDsKQEAgLTMwMywxNiArMzAxLDE1IEBAIHB1YmxpYzoKICAg
ICAgICAgQVNTRVJUKG1fYnVmZmVyKTsKICAgICAgICAgcmV0dXJuIG1fYnVmZmVyLT5jaGFyYWN0
ZXJzMTYoKTsKICAgICB9Ci0gICAgCi0gICAgYm9vbCBpczhCaXQoKSBjb25zdCB7IHJldHVybiBt
X2lzOEJpdDsgfQogCiAgICAgdm9pZCBjbGVhcigpCiAgICAgewogICAgICAgICBtX2xlbmd0aCA9
IDA7CiAgICAgICAgIG1fc3RyaW5nID0gU3RyaW5nKCk7CiAgICAgICAgIG1fYnVmZmVyID0gbnVs
bHB0cjsKLSAgICAgICAgbV9idWZmZXJDaGFyYWN0ZXJzOCA9IDA7CiAgICAgICAgIG1faXM4Qml0
ID0gdHJ1ZTsKKyAgICAgICAgbV9mYWlsZWQgPSBmYWxzZTsKKyAgICAgICAgbV9idWZmZXJDaGFy
YWN0ZXJzOCA9IDA7CiAgICAgfQogCiAgICAgdm9pZCBzd2FwKFN0cmluZ0J1aWxkZXImIHN0cmlu
Z0J1aWxkZXIpCkBAIC0zMjEsMjkgKzMxOCwzMiBAQCBwdWJsaWM6CiAgICAgICAgIG1fc3RyaW5n
LnN3YXAoc3RyaW5nQnVpbGRlci5tX3N0cmluZyk7CiAgICAgICAgIG1fYnVmZmVyLnN3YXAoc3Ry
aW5nQnVpbGRlci5tX2J1ZmZlcik7CiAgICAgICAgIHN0ZDo6c3dhcChtX2lzOEJpdCwgc3RyaW5n
QnVpbGRlci5tX2lzOEJpdCk7CisgICAgICAgIHN0ZDo6c3dhcChtX2ZhaWxlZCwgc3RyaW5nQnVp
bGRlci5tX2ZhaWxlZCk7CiAgICAgICAgIHN0ZDo6c3dhcChtX2J1ZmZlckNoYXJhY3RlcnM4LCBz
dHJpbmdCdWlsZGVyLm1fYnVmZmVyQ2hhcmFjdGVyczgpOwogICAgICAgICBBU1NFUlQoIW1fYnVm
ZmVyIHx8IG1fYnVmZmVyLT5sZW5ndGgoKSA+PSBtX2xlbmd0aCk7CiAgICAgfQogCiBwcml2YXRl
OgotICAgIHZvaWQgYWxsb2NhdGVCdWZmZXIoY29uc3QgTENoYXIqIGN1cnJlbnRDaGFyYWN0ZXJz
LCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCk7Ci0gICAgdm9pZCBhbGxvY2F0ZUJ1ZmZlcihjb25z
dCBVQ2hhciogY3VycmVudENoYXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKTsKLSAg
ICB2b2lkIGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KGNvbnN0IExDaGFyKiBjdXJyZW50Q2hhcmFj
dGVycywgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpOwotICAgIGJvb2wgdHJ5QWxsb2NhdGVCdWZm
ZXJVcENvbnZlcnQoY29uc3QgTENoYXIqIGN1cnJlbnRDaGFyYWN0ZXJzLCB1bnNpZ25lZCByZXF1
aXJlZExlbmd0aCk7CisgICAgRmFsbGlibGU8PiBhbGxvY2F0ZUJ1ZmZlcihjb25zdCBMQ2hhciog
Y3VycmVudENoYXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKTsKKyAgICBGYWxsaWJs
ZTw+IGFsbG9jYXRlQnVmZmVyKGNvbnN0IFVDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWdu
ZWQgcmVxdWlyZWRMZW5ndGgpOworICAgIEZhbGxpYmxlPD4gYWxsb2NhdGVCdWZmZXJVcENvbnZl
cnQoY29uc3QgTENoYXIqIGN1cnJlbnRDaGFyYWN0ZXJzLCB1bnNpZ25lZCByZXF1aXJlZExlbmd0
aCk7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgotICAgIHZvaWQgcmVhbGxvY2F0
ZUJ1ZmZlcih1bnNpZ25lZCByZXF1aXJlZExlbmd0aCk7CisgICAgRmFsbGlibGU8PiByZWFsbG9j
YXRlQnVmZmVyKHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKTsKICAgICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgQ2hhclR5cGU+Ci0gICAgQUxXQVlTX0lOTElORSBDaGFyVHlwZSogYXBwZW5kVW5pbml0aWFs
aXplZCh1bnNpZ25lZCBsZW5ndGgpOworICAgIEFMV0FZU19JTkxJTkUgRmFsbGlibGU8Q2hhclR5
cGUqPiBhcHBlbmRVbmluaXRpYWxpemVkKHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgdGVtcGxhdGUg
PHR5cGVuYW1lIENoYXJUeXBlPgotICAgIENoYXJUeXBlKiBhcHBlbmRVbmluaXRpYWxpemVkU2xv
dyh1bnNpZ25lZCBsZW5ndGgpOworICAgIEZhbGxpYmxlPENoYXJUeXBlKj4gYXBwZW5kVW5pbml0
aWFsaXplZFNsb3codW5zaWduZWQgbGVuZ3RoKTsKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hh
clR5cGU+Ci0gICAgQUxXQVlTX0lOTElORSBDaGFyVHlwZSAqIGdldEJ1ZmZlckNoYXJhY3RlcnMo
KTsKKyAgICBBTFdBWVNfSU5MSU5FIENoYXJUeXBlKiBnZXRCdWZmZXJDaGFyYWN0ZXJzKCk7CiAg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVpZnlTdHJpbmcoKSBjb25zdDsKKyAgICBXQVJO
X1VOVVNFRF9SRVRVUk4gVW5leHBlY3RlZDxGYWlsdXJlPiB3b3VsZE92ZXJmbG93KCk7CisgICAg
V0FSTl9VTlVTRURfUkVUVVJOIFVuZXhwZWN0ZWQ8RmFpbHVyZT4gb3V0T2ZNZW1vcnkoKTsKIAot
ICAgIHVuc2lnbmVkIG1fbGVuZ3RoOworICAgIHVuc2lnbmVkIG1fbGVuZ3RoIHsgMCB9OwogICAg
IG11dGFibGUgU3RyaW5nIG1fc3RyaW5nOwogICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBtX2J1ZmZl
cjsKLSAgICBib29sIG1faXM4Qml0OworICAgIGJvb2wgbV9pczhCaXQgeyB0cnVlIH07CisgICAg
Ym9vbCBtX2ZhaWxlZCB7IGZhbHNlIH07CiAgICAgdW5pb24gewogICAgICAgICBMQ2hhciogbV9i
dWZmZXJDaGFyYWN0ZXJzODsKICAgICAgICAgVUNoYXIqIG1fYnVmZmVyQ2hhcmFjdGVyczE2OwpA
QCAtMzY1LDIwICszNjUsNDggQEAgQUxXQVlTX0lOTElORSBVQ2hhciogU3RyaW5nQnVpbGRlcjo6
Z2V0QnVmZmVyQ2hhcmFjdGVyczxVQ2hhcj4oKQogfSAgICAKIAogdGVtcGxhdGUgPHR5cGVuYW1l
IENoYXJUeXBlPgotYm9vbCBlcXVhbChjb25zdCBTdHJpbmdCdWlsZGVyJiBzLCBjb25zdCBDaGFy
VHlwZSogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpCitpbmxpbmUgYm9vbCBlcXVhbChjb25zdCBT
dHJpbmdCdWlsZGVyJiBzLCBjb25zdCBDaGFyVHlwZSogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgp
CiB7CisgICAgaWYgKHMuZmFpbGVkKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGlm
IChzLmxlbmd0aCgpICE9IGxlbmd0aCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYg
KHMuaXM4Qml0KCkpCi0gICAgICAgIHJldHVybiBlcXVhbChzLmNoYXJhY3RlcnM4KCksIGJ1ZmZl
ciwgbGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIGVxdWFsKCpzLmNoYXJhY3RlcnM4KCksIGJ1ZmZl
ciwgbGVuZ3RoKTsKKworICAgIHJldHVybiBlcXVhbCgqcy5jaGFyYWN0ZXJzMTYoKSwgYnVmZmVy
LCBsZW5ndGgpOworfQorCitpbmxpbmUgYm9vbCBlcXVhbChjb25zdCBTdHJpbmdCdWlsZGVyJiBh
LCBjb25zdCBTdHJpbmdCdWlsZGVyJiBiKQoreworICAgIGlmIChhLmZhaWxlZCgpIHx8IGIuZmFp
bGVkKCkpCisgICAgICAgIHJldHVybiBhLmZhaWxlZCgpID09IGIuZmFpbGVkKCk7CisKKyAgICBp
ZiAoYS5sZW5ndGgoKSAhPSBiLmxlbmd0aCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpZiAoIWEubGVuZ3RoKCkpCisgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgcmV0dXJuIGVx
dWFsKHMuY2hhcmFjdGVyczE2KCksIGJ1ZmZlciwgbGVuZ3RoKTsKKyAgICBpZiAoYS5pczhCaXQo
KSkgeworICAgICAgICBpZiAoYi5pczhCaXQoKSkKKyAgICAgICAgICAgIHJldHVybiBlcXVhbCgq
YS5jaGFyYWN0ZXJzOCgpLCAqYi5jaGFyYWN0ZXJzOCgpLCBhLmxlbmd0aCgpKTsKKyAgICAgICAg
cmV0dXJuIGVxdWFsKCphLmNoYXJhY3RlcnM4KCksICpiLmNoYXJhY3RlcnMxNigpLCBhLmxlbmd0
aCgpKTsKKyAgICB9CisKKyAgICBpZiAoYi5pczhCaXQoKSkKKyAgICAgICAgcmV0dXJuIGVxdWFs
KCphLmNoYXJhY3RlcnMxNigpLCAqYi5jaGFyYWN0ZXJzOCgpLCBhLmxlbmd0aCgpKTsKKyAgICBy
ZXR1cm4gZXF1YWwoKmEuY2hhcmFjdGVyczE2KCksICpiLmNoYXJhY3RlcnMxNigpLCBhLmxlbmd0
aCgpKTsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFN0cmluZ1R5cGU+Ci1ib29sIGVxdWFsKGNv
bnN0IFN0cmluZ0J1aWxkZXImIGEsIGNvbnN0IFN0cmluZ1R5cGUmIGIpCitpbmxpbmUgYm9vbCBl
cXVhbChjb25zdCBTdHJpbmdCdWlsZGVyJiBhLCBjb25zdCBTdHJpbmdUeXBlJiBiKQogeworICAg
IGlmIChhLmZhaWxlZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAoYS5sZW5n
dGgoKSAhPSBiLmxlbmd0aCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTM4NywxMyAr
NDE1LDEzIEBAIGJvb2wgZXF1YWwoY29uc3QgU3RyaW5nQnVpbGRlciYgYSwgY29uc3QgU3RyaW5n
VHlwZSYgYikKIAogICAgIGlmIChhLmlzOEJpdCgpKSB7CiAgICAgICAgIGlmIChiLmlzOEJpdCgp
KQotICAgICAgICAgICAgcmV0dXJuIGVxdWFsKGEuY2hhcmFjdGVyczgoKSwgYi5jaGFyYWN0ZXJz
OCgpLCBhLmxlbmd0aCgpKTsKLSAgICAgICAgcmV0dXJuIGVxdWFsKGEuY2hhcmFjdGVyczgoKSwg
Yi5jaGFyYWN0ZXJzMTYoKSwgYS5sZW5ndGgoKSk7CisgICAgICAgICAgICByZXR1cm4gZXF1YWwo
KmEuY2hhcmFjdGVyczgoKSwgYi5jaGFyYWN0ZXJzOCgpLCBhLmxlbmd0aCgpKTsKKyAgICAgICAg
cmV0dXJuIGVxdWFsKCphLmNoYXJhY3RlcnM4KCksIGIuY2hhcmFjdGVyczE2KCksIGEubGVuZ3Ro
KCkpOwogICAgIH0KIAogICAgIGlmIChiLmlzOEJpdCgpKQotICAgICAgICByZXR1cm4gZXF1YWwo
YS5jaGFyYWN0ZXJzMTYoKSwgYi5jaGFyYWN0ZXJzOCgpLCBhLmxlbmd0aCgpKTsKLSAgICByZXR1
cm4gZXF1YWwoYS5jaGFyYWN0ZXJzMTYoKSwgYi5jaGFyYWN0ZXJzMTYoKSwgYS5sZW5ndGgoKSk7
CisgICAgICAgIHJldHVybiBlcXVhbCgqYS5jaGFyYWN0ZXJzMTYoKSwgYi5jaGFyYWN0ZXJzOCgp
LCBhLmxlbmd0aCgpKTsKKyAgICByZXR1cm4gZXF1YWwoKmEuY2hhcmFjdGVyczE2KCksIGIuY2hh
cmFjdGVyczE2KCksIGEubGVuZ3RoKCkpOwogfQogCiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IFN0cmluZ0J1aWxkZXImIGEsIGNvbnN0IFN0cmluZ0J1aWxkZXImIGIpIHsgcmV0dXJuIGVx
dWFsKGEsIGIpOyB9CkBAIC00MDQsOSArNDMyLDEyIEBAIGlubGluZSBib29sIG9wZXJhdG9yPT0o
Y29uc3QgU3RyaW5nJiBhLCBjb25zdCBTdHJpbmdCdWlsZGVyJiBiKSB7IHJldHVybiBlcXVhbChi
CiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFN0cmluZyYgYSwgY29uc3QgU3RyaW5nQnVp
bGRlciYgYikgeyByZXR1cm4gIWVxdWFsKGIsIGEpOyB9CiAKIHRlbXBsYXRlPD4gc3RydWN0IElu
dGVnZXJUb1N0cmluZ0NvbnZlcnNpb25UcmFpdDxTdHJpbmdCdWlsZGVyPiB7Ci0gICAgdXNpbmcg
UmV0dXJuVHlwZSA9IHZvaWQ7CisgICAgdXNpbmcgUmV0dXJuVHlwZSA9IFN0cmluZ0J1aWxkZXI6
OkZhbGxpYmxlPD47CiAgICAgdXNpbmcgQWRkaXRpb25hbEFyZ3VtZW50VHlwZSA9IFN0cmluZ0J1
aWxkZXI7Ci0gICAgc3RhdGljIHZvaWQgZmx1c2goTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVk
IGxlbmd0aCwgU3RyaW5nQnVpbGRlciogc3RyaW5nQnVpbGRlcikgeyBzdHJpbmdCdWlsZGVyLT5h
cHBlbmQoY2hhcmFjdGVycywgbGVuZ3RoKTsgfQorICAgIHN0YXRpYyBSZXR1cm5UeXBlIGZsdXNo
KExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIFN0cmluZ0J1aWxkZXIqIHN0cmlu
Z0J1aWxkZXIpCisgICAgeworICAgICAgICByZXR1cm4gc3RyaW5nQnVpbGRlci0+YXBwZW5kKGNo
YXJhY3RlcnMsIGxlbmd0aCk7CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXJKU09OLmNwcCBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlckpTT04uY3BwCmluZGV4IDRjMjc2NmMuLjcwZGJi
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlckpTT04uY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlckpTT04uY3BwCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMywgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxNyBZdXN1a2UgU3V6
dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29w
eXJpZ2h0IChDKSAyMDE3IE1vemlsbGEgRm91bmRhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
QEAgLTc0LDEzICs3NCw3IEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIHZvaWQgYXBwZW5kUXVvdGVk
SlNPTlN0cmluZ0ludGVybmFsKE91dHB1dENoYXJhY3RlclR5cGUqJiBvCiAgICAgfQogfQogCi12
b2lkIFN0cmluZ0J1aWxkZXI6OmFwcGVuZFF1b3RlZEpTT05TdHJpbmcoY29uc3QgU3RyaW5nJiBz
dHJpbmcpCi17Ci0gICAgaWYgKCF0cnlBcHBlbmRRdW90ZWRKU09OU3RyaW5nKHN0cmluZykpCi0g
ICAgICAgIENSQVNIKCk7Ci19Ci0KLWJvb2wgU3RyaW5nQnVpbGRlcjo6dHJ5QXBwZW5kUXVvdGVk
SlNPTlN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxl
PD4gU3RyaW5nQnVpbGRlcjo6YXBwZW5kUXVvdGVkSlNPTlN0cmluZyhjb25zdCBTdHJpbmcmIHN0
cmluZykKIHsKICAgICAvLyBNYWtlIHN1cmUgd2UgaGF2ZSBlbm91Z2ggYnVmZmVyIHNwYWNlIHRv
IGFwcGVuZCB0aGlzIHN0cmluZyB3aXRob3V0IGhhdmluZwogICAgIC8vIHRvIHdvcnJ5IGFib3V0
IHJlYWxsb2NhdGluZyBpbiB0aGUgbWlkZGxlLgpAQCAtOTEsMjAgKzg1LDIxIEBAIGJvb2wgU3Ry
aW5nQnVpbGRlcjo6dHJ5QXBwZW5kUXVvdGVkSlNPTlN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmlu
ZykKICAgICBtYXhpbXVtQ2FwYWNpdHlSZXF1aXJlZCArPSAyICsgc3RyaW5nTGVuZ3RoICogNjsK
ICAgICB1bnNpZ25lZCBhbGxvY2F0aW9uU2l6ZTsKICAgICBpZiAoQ2hlY2tlZFN0YXRlOjpEaWRP
dmVyZmxvdyA9PSBtYXhpbXVtQ2FwYWNpdHlSZXF1aXJlZC5zYWZlR2V0KGFsbG9jYXRpb25TaXpl
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gd291bGRPdmVyZmxvdygp
OwogICAgIC8vIFRoaXMgbWF4KCkgaXMgaGVyZSB0byBhbGxvdyB1cyB0byBhbGxvY2F0ZSBzaXpl
cyBiZXR3ZWVuIHRoZSByYW5nZSBbMl4zMSwgMl4zMiAtIDJdIGJlY2F1c2Ugcm91bmRVcFRvUG93
ZXJPZlR3bygxPDwzMSArIHNvbWUgaW50IHNtYWxsZXIgdGhhbiAxPDwzMSkgPT0gMC4KICAgICAv
LyBGSVhNRTogcm91bmRVcFRvUG93ZXJPZlR3byBzaG91bGQgdGFrZSBDaGVja2VkPHVuc2lnbmVk
PiBhbmQgYWJvcnQgaWYgaXQgZmFpbHMgdG8gcm91bmQgdXAuCiAgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjA4NgogICAgIGFsbG9jYXRpb25TaXplID0g
c3RkOjptYXgoYWxsb2NhdGlvblNpemUsIHJvdW5kVXBUb1Bvd2VyT2ZUd28oYWxsb2NhdGlvblNp
emUpKTsKIAotICAgIC8vIEFsbG9jYXRpbmcgdGhpcyBtdWNoIHdpbGwgZGVmaW5pdGVseSBmYWls
LgotICAgIGlmIChhbGxvY2F0aW9uU2l6ZSA+PSAweDgwMDAwMDAwKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KLSAgICBpZiAoaXM4Qml0KCkgJiYgIXN0cmluZy5pczhCaXQoKSkKLSAgICAgICAg
YWxsb2NhdGVCdWZmZXJVcENvbnZlcnQobV9idWZmZXJDaGFyYWN0ZXJzOCwgYWxsb2NhdGlvblNp
emUpOwotICAgIGVsc2UKLSAgICAgICAgcmVzZXJ2ZUNhcGFjaXR5KGFsbG9jYXRpb25TaXplKTsK
KyAgICBpZiAoaXM4Qml0KCkgJiYgIXN0cmluZy5pczhCaXQoKSkgeworICAgICAgICBhdXRvIGFs
bG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KG1fYnVmZmVyQ2hhcmFjdGVyczgsIGFs
bG9jYXRpb25TaXplKTsKKyAgICAgICAgaWYgKCFhbGxvY2F0ZWQpCisgICAgICAgICAgICByZXR1
cm4gYWxsb2NhdGVkOworICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8gcmVzZXJ2ZWQgPSByZXNl
cnZlQ2FwYWNpdHkoYWxsb2NhdGlvblNpemUpOworICAgICAgICBpZiAoIXJlc2VydmVkKQorICAg
ICAgICAgICAgcmV0dXJuIHJlc2VydmVkOworICAgIH0KICAgICBBU1NFUlQobV9idWZmZXItPmxl
bmd0aCgpID49IGFsbG9jYXRpb25TaXplKTsKIAogICAgIGlmIChpczhCaXQoKSkgewpAQCAtMTI1
LDcgKzEyMCw3IEBAIGJvb2wgU3RyaW5nQnVpbGRlcjo6dHJ5QXBwZW5kUXVvdGVkSlNPTlN0cmlu
Zyhjb25zdCBTdHJpbmcmIHN0cmluZykKICAgICAgICAgbV9sZW5ndGggPSBvdXRwdXQgLSBtX2J1
ZmZlckNoYXJhY3RlcnMxNjsKICAgICB9CiAgICAgQVNTRVJUKG1fYnVmZmVyLT5sZW5ndGgoKSA+
PSBtX2xlbmd0aCk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHsgfTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0lt
cGwuY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcAppbmRleCA3NzQ4NzZi
Li5lZWQwOWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAKQEAgLTIwNiwyMiArMjA2
LDI0IEBAIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdGVVbmluaXRpYWxpemVkKHVu
c2lnbmVkIGxlbmd0aCwgVUNoYXIqJiBkYXRhKQogICAgIHJldHVybiBjcmVhdGVVbmluaXRpYWxp
emVkSW50ZXJuYWwobGVuZ3RoLCBkYXRhKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFj
dGVyVHlwZT4gaW5saW5lIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpyZWFsbG9jYXRlSW50
ZXJuYWwoUmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2lnbmVkIGxlbmd0aCwg
Q2hhcmFjdGVyVHlwZSomIGRhdGEpCit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBp
bmxpbmUgUmVmUHRyPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OnJlYWxsb2NhdGVJbnRlcm5hbChS
ZWY8U3RyaW5nSW1wbD4mJiBvcmlnaW5hbFN0cmluZywgdW5zaWduZWQgbGVuZ3RoLCBDaGFyYWN0
ZXJUeXBlKiYgZGF0YSkKIHsKICAgICBBU1NFUlQob3JpZ2luYWxTdHJpbmctPmhhc09uZVJlZigp
KTsKICAgICBBU1NFUlQob3JpZ2luYWxTdHJpbmctPmJ1ZmZlck93bmVyc2hpcCgpID09IEJ1ZmZl
ckludGVybmFsKTsKIAogICAgIGlmICghbGVuZ3RoKSB7CiAgICAgICAgIGRhdGEgPSAwOwotICAg
ICAgICByZXR1cm4gKmVtcHR5KCk7CisgICAgICAgIHJldHVybiBlbXB0eSgpOwogICAgIH0KIAog
ICAgIC8vIFNhbWUgYXMgY3JlYXRlVW5pbml0aWFsaXplZCgpIGV4Y2VwdCBoZXJlIHdlIHVzZSBz
dHJpbmdSZWFsbG9jLgotICAgIGlmIChsZW5ndGggPiAoKHN0ZDo6bnVtZXJpY19saW1pdHM8dW5z
aWduZWQ+OjptYXgoKSAtIHNpemVvZihTdHJpbmdJbXBsKSkgLyBzaXplb2YoQ2hhcmFjdGVyVHlw
ZSkpKQotICAgICAgICBDUkFTSCgpOworICAgIGlmIChVTkxJS0VMWShsZW5ndGggPiAoKHN0ZDo6
bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSAtIHNpemVvZihTdHJpbmdJbXBsKSkgLyBz
aXplb2YoQ2hhcmFjdGVyVHlwZSkpKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBv
cmlnaW5hbFN0cmluZy0+flN0cmluZ0ltcGwoKTsKICAgICBhdXRvKiBzdHJpbmcgPSBzdGF0aWNf
Y2FzdDxTdHJpbmdJbXBsKj4oc3RyaW5nUmVhbGxvYygmb3JpZ2luYWxTdHJpbmcubGVha1JlZigp
LCBhbGxvY2F0aW9uU2l6ZTxDaGFyYWN0ZXJUeXBlPihsZW5ndGgpKSk7CisgICAgaWYgKFVOTElL
RUxZKCFzdHJpbmcpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGRhdGEgPSBzdHJp
bmctPnRhaWxQb2ludGVyPENoYXJhY3RlclR5cGU+KCk7CiAgICAgcmV0dXJuIGNvbnN0cnVjdElu
dGVybmFsPENoYXJhY3RlclR5cGU+KCpzdHJpbmcsIGxlbmd0aCk7CkBAIC0yMzAsMTMgKzIzMiwz
MyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBpbmxpbmUgUmVmPFN0cmluZ0lt
cGw+IFN0cmluZ0ltcGw6OnJlYWxsb2NhdGVJbgogUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6
OnJlYWxsb2NhdGUoUmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2lnbmVkIGxl
bmd0aCwgTENoYXIqJiBkYXRhKQogewogICAgIEFTU0VSVChvcmlnaW5hbFN0cmluZy0+aXM4Qml0
KCkpOwotICAgIHJldHVybiByZWFsbG9jYXRlSW50ZXJuYWwoV1RGTW92ZShvcmlnaW5hbFN0cmlu
ZyksIGxlbmd0aCwgZGF0YSk7CisgICAgaWYgKGF1dG8gcmVhbGxvY2F0ZWQgPSByZWFsbG9jYXRl
SW50ZXJuYWwoV1RGTW92ZShvcmlnaW5hbFN0cmluZyksIGxlbmd0aCwgZGF0YSkpCisgICAgICAg
IHJldHVybiAqcmVhbGxvY2F0ZWQ7CisgICAgQ1JBU0goKTsKIH0KIAogUmVmPFN0cmluZ0ltcGw+
IFN0cmluZ0ltcGw6OnJlYWxsb2NhdGUoUmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcs
IHVuc2lnbmVkIGxlbmd0aCwgVUNoYXIqJiBkYXRhKQogewogICAgIEFTU0VSVCghb3JpZ2luYWxT
dHJpbmctPmlzOEJpdCgpKTsKLSAgICByZXR1cm4gcmVhbGxvY2F0ZUludGVybmFsKFdURk1vdmUo
b3JpZ2luYWxTdHJpbmcpLCBsZW5ndGgsIGRhdGEpOworICAgIGlmIChhdXRvIHJlYWxsb2NhdGVk
ID0gcmVhbGxvY2F0ZUludGVybmFsKFdURk1vdmUob3JpZ2luYWxTdHJpbmcpLCBsZW5ndGgsIGRh
dGEpKQorICAgICAgICByZXR1cm4gKnJlYWxsb2NhdGVkOworICAgIENSQVNIKCk7Cit9CisKK1Jl
ZlB0cjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjp0cnlSZWFsbG9jYXRlKFJlZjxTdHJpbmdJbXBs
PiYmIG9yaWdpbmFsU3RyaW5nLCB1bnNpZ25lZCBsZW5ndGgsIExDaGFyKiYgZGF0YSkKK3sKKyAg
ICBBU1NFUlQob3JpZ2luYWxTdHJpbmctPmlzOEJpdCgpKTsKKyAgICBpZiAoYXV0byByZWFsbG9j
YXRlZCA9IHJlYWxsb2NhdGVJbnRlcm5hbChXVEZNb3ZlKG9yaWdpbmFsU3RyaW5nKSwgbGVuZ3Ro
LCBkYXRhKSkKKyAgICAgICAgcmV0dXJuIHJlYWxsb2NhdGVkLmdldCgpOworICAgIHJldHVybiBu
dWxscHRyOworfQorCitSZWZQdHI8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6dHJ5UmVhbGxvY2F0
ZShSZWY8U3RyaW5nSW1wbD4mJiBvcmlnaW5hbFN0cmluZywgdW5zaWduZWQgbGVuZ3RoLCBVQ2hh
ciomIGRhdGEpCit7CisgICAgQVNTRVJUKCFvcmlnaW5hbFN0cmluZy0+aXM4Qml0KCkpOworICAg
IGlmIChhdXRvIHJlYWxsb2NhdGVkID0gcmVhbGxvY2F0ZUludGVybmFsKFdURk1vdmUob3JpZ2lu
YWxTdHJpbmcpLCBsZW5ndGgsIGRhdGEpKQorICAgICAgICByZXR1cm4gcmVhbGxvY2F0ZWQuZ2V0
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3Rl
clR5cGU+IGlubGluZSBSZWY8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6Y3JlYXRlSW50ZXJuYWwo
Y29uc3QgQ2hhcmFjdGVyVHlwZSogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmggYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L1N0cmluZ0ltcGwuaAppbmRleCA2MTZkYTI1Li44ZGY5ZTM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0
cmluZ0ltcGwuaApAQCAtMjI5LDYgKzIyOSw3IEBAIHB1YmxpYzoKICAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGUoY29uc3QgTENoYXIqKTsKICAgICBB
TFdBWVNfSU5MSU5FIHN0YXRpYyBSZWY8U3RyaW5nSW1wbD4gY3JlYXRlKGNvbnN0IGNoYXIqIHN0
cmluZykgeyByZXR1cm4gY3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihzdHJp
bmcpKTsgfQogCisgICAgc3RhdGljIFJlZlB0cjxTdHJpbmdJbXBsPiB0cnlDcmVhdGVTdWJzdHJp
bmdTaGFyaW5nSW1wbChTdHJpbmdJbXBsJiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5n
dGgpOwogICAgIHN0YXRpYyBSZWY8U3RyaW5nSW1wbD4gY3JlYXRlU3Vic3RyaW5nU2hhcmluZ0lt
cGwoU3RyaW5nSW1wbCYsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKIAogICAg
IHRlbXBsYXRlPHVuc2lnbmVkIGNoYXJhY3RlckNvdW50PiBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+
IGNyZWF0ZUZyb21MaXRlcmFsKGNvbnN0IGNoYXIgKCYpW2NoYXJhY3RlckNvdW50XSk7CkBAIC0y
NDgsNiArMjQ5LDggQEAgcHVibGljOgogICAgIC8vIHRoZSBvcmlnaW5hbFN0cmluZyBjYW4ndCBi
ZSB1c2VkIGFmdGVyIHRoaXMgZnVuY3Rpb24uCiAgICAgc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBy
ZWFsbG9jYXRlKFJlZjxTdHJpbmdJbXBsPiYmIG9yaWdpbmFsU3RyaW5nLCB1bnNpZ25lZCBsZW5n
dGgsIExDaGFyKiYgZGF0YSk7CiAgICAgc3RhdGljIFJlZjxTdHJpbmdJbXBsPiByZWFsbG9jYXRl
KFJlZjxTdHJpbmdJbXBsPiYmIG9yaWdpbmFsU3RyaW5nLCB1bnNpZ25lZCBsZW5ndGgsIFVDaGFy
KiYgZGF0YSk7CisgICAgc3RhdGljIFJlZlB0cjxTdHJpbmdJbXBsPiB0cnlSZWFsbG9jYXRlKFJl
ZjxTdHJpbmdJbXBsPiYmIG9yaWdpbmFsU3RyaW5nLCB1bnNpZ25lZCBsZW5ndGgsIExDaGFyKiYg
ZGF0YSk7CisgICAgc3RhdGljIFJlZlB0cjxTdHJpbmdJbXBsPiB0cnlSZWFsbG9jYXRlKFJlZjxT
dHJpbmdJbXBsPiYmIG9yaWdpbmFsU3RyaW5nLCB1bnNpZ25lZCBsZW5ndGgsIFVDaGFyKiYgZGF0
YSk7CiAKICAgICBzdGF0aWMgdW5zaWduZWQgZmxhZ3NPZmZzZXQoKSB7IHJldHVybiBPQkpFQ1Rf
T0ZGU0VUT0YoU3RyaW5nSW1wbCwgbV9oYXNoQW5kRmxhZ3MpOyB9CiAgICAgc3RhdGljIHVuc2ln
bmVkIGZsYWdJczhCaXQoKSB7IHJldHVybiBzX2hhc2hGbGFnOEJpdEJ1ZmZlcjsgfQpAQCAtNTAz
LDcgKzUwNiw3IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlw
ZT4gc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjb25zdHJ1Y3RJbnRlcm5hbChTdHJpbmdJbXBsJiwg
dW5zaWduZWQpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHN0YXRpYyBS
ZWY8U3RyaW5nSW1wbD4gY3JlYXRlVW5pbml0aWFsaXplZEludGVybmFsKHVuc2lnbmVkLCBDaGFy
YWN0ZXJUeXBlKiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHN0YXRp
YyBSZWY8U3RyaW5nSW1wbD4gY3JlYXRlVW5pbml0aWFsaXplZEludGVybmFsTm9uRW1wdHkodW5z
aWduZWQsIENoYXJhY3RlclR5cGUqJik7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVy
VHlwZT4gc3RhdGljIFJlZjxTdHJpbmdJbXBsPiByZWFsbG9jYXRlSW50ZXJuYWwoUmVmPFN0cmlu
Z0ltcGw+JiYsIHVuc2lnbmVkLCBDaGFyYWN0ZXJUeXBlKiYpOworICAgIHRlbXBsYXRlPHR5cGVu
YW1lIENoYXJhY3RlclR5cGU+IHN0YXRpYyBSZWZQdHI8U3RyaW5nSW1wbD4gcmVhbGxvY2F0ZUlu
dGVybmFsKFJlZjxTdHJpbmdJbXBsPiYmLCB1bnNpZ25lZCwgQ2hhcmFjdGVyVHlwZSomKTsKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+
IGNyZWF0ZUludGVybmFsKGNvbnN0IENoYXJhY3RlclR5cGUqLCB1bnNpZ25lZCk7CiAgICAgV1RG
X0VYUE9SVF9QUklWQVRFIE5FVkVSX0lOTElORSB1bnNpZ25lZCBoYXNoU2xvd0Nhc2UoKSBjb25z
dDsKIApAQCAtOTE0LDIyICs5MTcsMzEgQEAgdGVtcGxhdGU8c2l6ZV90IGlubGluZUNhcGFjaXR5
PiBpbmxpbmUgUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OmNyZWF0ZThCaXRJZlAKICAgICBy
ZXR1cm4gY3JlYXRlOEJpdElmUG9zc2libGUodmVjdG9yLmRhdGEoKSwgdmVjdG9yLnNpemUoKSk7
CiB9CiAKLUFMV0FZU19JTkxJTkUgUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OmNyZWF0ZVN1
YnN0cmluZ1NoYXJpbmdJbXBsKFN0cmluZ0ltcGwmIHJlcCwgdW5zaWduZWQgb2Zmc2V0LCB1bnNp
Z25lZCBsZW5ndGgpCitBTFdBWVNfSU5MSU5FIFJlZlB0cjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBs
Ojp0cnlDcmVhdGVTdWJzdHJpbmdTaGFyaW5nSW1wbChTdHJpbmdJbXBsJiByZXAsIHVuc2lnbmVk
IG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQogewogICAgIEFTU0VSVChsZW5ndGggPD0gcmVwLmxl
bmd0aCgpKTsKIAogICAgIGlmICghbGVuZ3RoKQotICAgICAgICByZXR1cm4gKmVtcHR5KCk7Cisg
ICAgICAgIHJldHVybiBlbXB0eSgpOwogCiAgICAgYXV0byogb3duZXJSZXAgPSAoKHJlcC5idWZm
ZXJPd25lcnNoaXAoKSA9PSBCdWZmZXJTdWJzdHJpbmcpID8gcmVwLnN1YnN0cmluZ0J1ZmZlcigp
IDogJnJlcCk7CiAKICAgICAvLyBXZSBhbGxvY2F0ZSBhIGJ1ZmZlciB0aGF0IGNvbnRhaW5zIGJv
dGggdGhlIFN0cmluZ0ltcGwgc3RydWN0IGFzIHdlbGwgYXMgdGhlIHBvaW50ZXIgdG8gdGhlIG93
bmVyIHN0cmluZy4KICAgICBhdXRvKiBzdHJpbmdJbXBsID0gc3RhdGljX2Nhc3Q8U3RyaW5nSW1w
bCo+KHN0cmluZ01hbGxvYyhhbGxvY2F0aW9uU2l6ZTxTdHJpbmdJbXBsKj4oMSkpKTsKKyAgICBp
ZiAoIXN0cmluZ0ltcGwpCisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGlmIChyZXAuaXM4
Qml0KCkpCiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IChOb3ROdWxsLCBzdHJpbmdJbXBs
KSBTdHJpbmdJbXBsKHJlcC5tX2RhdGE4ICsgb2Zmc2V0LCBsZW5ndGgsICpvd25lclJlcCkpOwog
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IChOb3ROdWxsLCBzdHJpbmdJbXBsKSBTdHJpbmdJbXBs
KHJlcC5tX2RhdGExNiArIG9mZnNldCwgbGVuZ3RoLCAqb3duZXJSZXApKTsKIH0KIAorQUxXQVlT
X0lOTElORSBSZWY8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6Y3JlYXRlU3Vic3RyaW5nU2hhcmlu
Z0ltcGwoU3RyaW5nSW1wbCYgcmVwLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkK
K3sKKyAgICBpZiAoYXV0byBjcmVhdGVkID0gdHJ5Q3JlYXRlU3Vic3RyaW5nU2hhcmluZ0ltcGwo
cmVwLCBvZmZzZXQsIGxlbmd0aCkpCisgICAgICAgIHJldHVybiAqY3JlYXRlZDsKKyAgICBDUkFT
SCgpOworfQorCiB0ZW1wbGF0ZTx1bnNpZ25lZCBjaGFyYWN0ZXJDb3VudD4gQUxXQVlTX0lOTElO
RSBSZWY8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6Y3JlYXRlRnJvbUxpdGVyYWwoY29uc3QgY2hh
ciAoJmNoYXJhY3RlcnMpW2NoYXJhY3RlckNvdW50XSkKIHsKICAgICBDT01QSUxFX0FTU0VSVChj
aGFyYWN0ZXJDb3VudCA+IDEsIFN0cmluZ0ltcGxGcm9tTGl0ZXJhbE5vdEVtcHR5KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dFN0cmVhbS5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L1RleHRTdHJlYW0uY3BwCmluZGV4IGFhZjYxOTQuLmQzYjUzMTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dFN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dURi93dGYv
dGV4dC9UZXh0U3RyZWFtLmNwcApAQCAtMTMyLDkgKzEzMiwxMSBAQCBUZXh0U3RyZWFtJiBUZXh0
U3RyZWFtOjpvcGVyYXRvcjw8KGNvbnN0IEZvcm1hdE51bWJlclJlc3BlY3RpbmdJbnRlZ2VycyYg
bnVtYmVyVAogCiBTdHJpbmcgVGV4dFN0cmVhbTo6cmVsZWFzZSgpCiB7Ci0gICAgU3RyaW5nIHJl
c3VsdCA9IG1fdGV4dC50b1N0cmluZygpOwotICAgIG1fdGV4dC5jbGVhcigpOwotICAgIHJldHVy
biByZXN1bHQ7CisgICAgaWYgKGF1dG8gcmVzdWx0ID0gbV90ZXh0LnRvU3RyaW5nKCkpIHsKKyAg
ICAgICAgbV90ZXh0LmNsZWFyKCk7CisgICAgICAgIHJldHVybiAqcmVzdWx0OworICAgIH0KKyAg
ICBDUkFTSCgpOwogfQogCiB2b2lkIFRleHRTdHJlYW06OnN0YXJ0R3JvdXAoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDJhNWFiNzMuLjFiNzMyODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MTMgQEAKKzIwMTgt
MDQtMjYgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgorCisgICAgICAgIFN0cmlu
Z0J1aWxkZXIgaXMgZmFsbGlibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4NTA0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFN0cmluZ0J1aWxkZXIgY2FuIGZhaWwgd2hlbiBhbGxvY2F0aW5nIG1lbW9y
eS4gU3RyaW5nQnVpbGRlciBpcworICAgICAgICBtb3N0bHkgdXNlZCB3aXRoIHVzZXIgaW5wdXQs
IHdoaWNoIG9mdGVuIG1lYW5zIHRoYXQganVzdCBjcmFzaGluZworICAgICAgICBpc24ndCB0aGUg
cmlnaHQgb3V0Y29tZS4gT3VyIGZ1enplcnMgb2Z0ZW4gZW5jb3VudGVyIHN1Y2ggdGhpbmdzCisg
ICAgICAgIGZvciBKYXZhU2NyaXB0Q29yZSwgYW5kIHNvIGZhciB3ZSd2ZSBhcHBsaWVkIHBvaW50
IHNvbHV0aW9ucy4gTm8KKyAgICAgICAgbW9yZSEKKworCisgICAgICAgICogTW9kdWxlcy9hcHBs
ZXBheS9jb2NvYS9QYXltZW50Q29udGFjdENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dmVydCk6CisgICAgICAgICogTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6cmVzb2x2ZVJlbGF0aXZlVmlydHVhbFBhdGgpOgorICAgICAgICAq
IE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
bG9nRXJyb3IpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SURCS2V5RGF0YTo6bG9nZ2luZ1N0cmluZyBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UGF0aC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpsb2dnaW5nU3RyaW5nKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSW5k
ZXhWYWx1ZVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SW5kZXhWYWx1
ZVN0b3JlOjpsb2dnaW5nU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvU1FMaXRlSURCQ3Vyc29yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZl
cjo6YnVpbGRJbmRleFN0YXRlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OmJ1
aWxkT2JqZWN0U3RvcmVTdGF0ZW1lbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3No
YXJlZC9JREJEYXRhYmFzZUluZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VJ
bmZvOjpsb2dnaW5nU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9z
aGFyZWQvSURCT2JqZWN0U3RvcmVJbmZvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVj
dFN0b3JlSW5mbzo6bG9nZ2luZ1N0cmluZyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpt
ZWRpYVByb2R1Y2VyU3RhdGVTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFTZXNz
aW9uTWFuYWdlcjo6dG9TdHJpbmcpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUGVl
ckNvbm5lY3Rpb25CYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbHRlcklDRUNhbmRp
ZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmZpbHRlclNE
UCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQ6Onlv
dVR1YmVVUkxGcm9tQWJzb2x1dGVVUkwpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VUcmFja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdlbmVyYXRlRGF0YWJhc2VG
aWxlTmFtZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjplbmNvZGVQcm90b2NvbFN0cmluZyk6CisgICAgICAgIChXZWJDb3Jl
Ojpqb2luU3RyaW5ncyk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4
dGVuc2lvbkRpc3BhdGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0RXh0ZW5z
aW9uRGlzcGF0Y2hlcjo6Y3JlYXRlSGVhZGVyVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlcjo6YWNjZXB0ZWRFeHRlbnNpb25zIGNvbnN0
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnJlc291cmNlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpob3N0
TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudExvY2F0
aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZW50
SGFuZHNoYWtlTWVzc2FnZSBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzaG91bGRBZGRTcGFjZUJl
Zm9yZUFwcGVuZGluZ05leHRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjphY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25Gb3JDaGls
ZHJlbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6
YWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uRm9yRWxlbWVudHMgY29uc3QpOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpzdHJpbmdGb3JSYW5nZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdHJpbmdGb3JWaXNpYmxlUG9zaXRpb25SYW5nZSk6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJNYWMubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIHZhbHVl
RGVzY3JpcHRpb25Gb3JNZXRlcl0pOgorICAgICAgICAoZm9ybWF0Rm9yRGVidWdnZXIpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29udmVydFN0cmluZ3MuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6c3RyaW5nVG9VU1ZTdHJpbmcpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NRXhj
ZXB0aW9uSGFuZGxpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dGhyb3dBcmd1bWVudE11c3RC
ZUVudW1FcnJvcik6CisgICAgICAgIChXZWJDb3JlOjp0aHJvd0FyZ3VtZW50TXVzdEJlRnVuY3Rp
b25FcnJvcik6CisgICAgICAgIChXZWJDb3JlOjp0aHJvd0FyZ3VtZW50VHlwZUVycm9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OnRocm93UmVxdWlyZWRNZW1iZXJUeXBlRXJyb3IpOgorICAgICAgICAq
IGNvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZW50RXh0ZW5zaW9uczo6cHJlZml4VHJlZVZlcnRleFRvU3RyaW5nKToKKyAgICAg
ICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uOjpjb21waWxlR2xvYmFs
RGlzcGxheU5vbmVTdHlsZVNoZWV0KToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250
ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVu
c2lvbnM6OnJlc29sdmVQZW5kaW5nRGlzcGxheU5vbmVBY3Rpb25zKToKKyAgICAgICAgKiBjb250
ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvblN0eWxlU2hlZXQ6OmFk
ZERpc3BsYXlOb25lU2VsZWN0b3IpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL1Rlcm0u
aDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpUZXJtOjp0b1N0cmluZyBj
b25zdCk6CisgICAgICAgICogY3NzL0NTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWU6OmN1c3Rv
bUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NCYXNpY1NoYXBlcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpidWlsZENpcmNsZVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpidWls
ZEVsbGlwc2VTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRQYXRoU3RyaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OmJ1aWxkUG9seWdvblN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpi
dWlsZEluc2V0U3RyaW5nKToKKyAgICAgICAgKiBjc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpidWlsZENzc1RleHQpOgorICAgICAgICAqIGNzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTQ3Jvc3Nm
YWRlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6OmN1c3Rv
bUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0N1cnNvckltYWdlVmFsdWU6OmN1c3RvbUNTU1RleHQgY29u
c3QpOgorICAgICAgICAqIGNzcy9DU1NDdXN0b21JZGVudFZhbHVlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU0N1c3RvbUlkZW50VmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAg
ICAqIGNzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Zp
bHRlckltYWdlVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NG
b250RmFjZVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VSdWxlOjpjc3NU
ZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NGb250RmFjZVNyY1ZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToK
KyAgICAgICAgKiBjc3MvQ1NTRm9udEZlYXR1cmVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NGb250RmVhdHVyZVZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBj
c3MvQ1NTRm9udFN0eWxlUmFuZ2VWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250
U3R5bGVSYW5nZVZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NT
Rm9udFN0eWxlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udFN0eWxlVmFsdWU6
OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NGb250VmFsdWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udFZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAg
ICAgICAgKiBjc3MvQ1NTRm9udFZhcmlhdGlvblZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU0ZvbnRWYXJpYXRpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICog
Y3NzL0NTU0Z1bmN0aW9uVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRnVuY3Rpb25W
YWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0dyYWRpZW50VmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTGluZWFyR3JhZGllbnRWYWx1ZTo6Y3VzdG9t
Q1NTVGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NSYWRpYWxHcmFkaWVudFZhbHVl
OjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbmljR3JhZGll
bnRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0dyaWRBdXRv
UmVwZWF0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTR3JpZEF1dG9SZXBlYXRWYWx1
ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0dyaWRUZW1wbGF0ZUFy
ZWFzVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1
ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0ltYWdlU2V0VmFsdWUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VTZXRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBj
b25zdCk6CisgICAgICAgICogY3NzL0NTU0ltcG9ydFJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTSW1wb3J0UnVsZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0tleWZy
YW1lUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVLZXlmcmFtZTo6a2V5VGV4
dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVLZXlmcmFtZTo6Y3NzVGV4dCBj
b25zdCk6CisgICAgICAgICogY3NzL0NTU0tleWZyYW1lc1J1bGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTS2V5ZnJhbWVzUnVsZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NT
U0xpbmVCb3hDb250YWluVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTGluZUJveENv
bnRhaW5WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU01hcmt1
cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXJpYWxpemVTdHJpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6c2VyaWFsaXplQXNTdHJpbmdPckN1c3RvbUlkZW50KToKKyAgICAgICAgKiBjc3MvQ1NT
TWVkaWFSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU01lZGlhUnVsZTo6Y3NzVGV4dCBj
b25zdCk6CisgICAgICAgICogY3NzL0NTU05hbWVzcGFjZVJ1bGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTTmFtZXNwYWNlUnVsZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NT
U1BhZ2VSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhZ2VSdWxlOjpzZWxlY3RvclRl
eHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFnZVJ1bGU6OmNzc1RleHQgY29uc3Qp
OgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQcmltaXRpdmVWYWx1ZTo6Zm9ybWF0TnVtYmVyRm9yQ3VzdG9tQ1NTVGV4dCBjb25zdCk6
CisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5U291cmNlRGF0YS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcm9wZXJ0eVNvdXJjZURhdGE6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBj
c3MvQ1NTU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnNlbGVj
dG9yVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvckxpc3Q6OnNlbGVjdG9yc1RleHQgY29uc3QpOgorICAg
ICAgICAqIGNzcy9DU1NTaGFkb3dWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTaGFk
b3dWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU1N0eWxlUnVs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVJ1bGU6OmNzc1RleHQgY29uc3QpOgor
ICAgICAgICAqIGNzcy9DU1NTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0
eWxlU2hlZXQ6OmFkZFJ1bGUpOgorICAgICAgICAqIGNzcy9DU1NTdXBwb3J0c1J1bGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTU3VwcG9ydHNSdWxlOjpjc3NUZXh0IGNvbnN0KToKKyAgICAg
ICAgKiBjc3MvQ1NTVGltaW5nRnVuY3Rpb25WYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
U1NDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTU3RlcHNUaW1pbmdGdW5jdGlvblZhbHVlOjpjdXN0b21DU1NU
ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZyYW1lc1RpbWluZ0Z1bmN0aW9uVmFs
dWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3ByaW5nVGlt
aW5nRnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NT
U1ZhbHVlTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZUxpc3Q6OmN1c3RvbUNT
U1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NWYXJpYWJsZURhdGEuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTVmFyaWFibGVEYXRhOjpjb25zdW1lQW5kVXBkYXRlVG9rZW5zKToKKyAg
ICAgICAgKiBjc3MvRE9NQ1NTTmFtZXNwYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNT
U05hbWVzcGFjZTo6ZXNjYXBlKToKKyAgICAgICAgKiBjc3MvRE9NTWF0cml4UmVhZE9ubHkuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RE9NTWF0cml4UmVhZE9ubHk6OnRvU3RyaW5nIGNvbnN0KToK
KyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdDo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAg
ICogY3NzL0ZvbnRGYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGYWNlOjpzdHlsZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGb250RmFjZTo6d2VpZ2h0IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnRGYWNlOjpzdHJldGNoIGNvbnN0KToKKyAgICAgICAgKiBjc3MvTWVk
aWFMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlTZXQ6Om1lZGlhVGV4dCBj
b25zdCk6CisgICAgICAgICogY3NzL01lZGlhUXVlcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFRdWVyeTo6c2VyaWFsaXplIGNvbnN0KToKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV4
cHJlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUV4cHJlc3Npb246OnNl
cmlhbGl6ZSBjb25zdCk6CisgICAgICAgICogY3NzL1JlY3QuaDoKKyAgICAgICAgKiBjc3MvU3R5
bGVQcm9wZXJ0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6Zm9u
dFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6Z2V0NFZh
bHVlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OmdldExheWVy
ZWRTaG9ydGhhbmRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRp
ZXM6OmdldFNob3J0aGFuZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJv
cGVydGllczo6Ym9yZGVyUHJvcGVydHlWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVByb3BlcnRpZXM6OmFzVGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVBy
b3BlcnRpZXM6OlByb3BlcnR5UmVmZXJlbmNlOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBj
c3MvV2ViS2l0Q1NTTWF0cml4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdENTU01hdHJp
eDo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NWaWV3cG9ydFJ1bGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTVmlld3BvcnRSdWxlOjpjc3NUZXh0IGNv
bnN0KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQYXJzZXI6OnBhcnNlRm9udEZhY2VEZXNjcmlwdG9yKToKKyAgICAgICAgKiBjc3Mv
cGFyc2VyL0NTU1BhcnNlclRva2VuLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlclRv
a2VuOjpzZXJpYWxpemUgY29uc3QpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyVG9r
ZW5SYW5nZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJUb2tlblJhbmdlOjpzZXJp
YWxpemUgY29uc3QpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y29uY2F0ZW5hdGVGYW1pbHlOYW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OnBhcnNlR3JpZFRlbXBsYXRlQXJlYXNDb2x1bW5OYW1lcyk6CisgICAgICAgICogY3Nz
L3BhcnNlci9DU1NUb2tlbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9rZW5pemVy
Ojpjb25zdW1lU3RyaW5nVG9rZW5VbnRpbCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb2tlbml6
ZXI6OmNvbnN1bWVVcmxUb2tlbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb2tlbml6ZXI6OmNv
bnN1bWVOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Rva2VuaXplcjo6Y29uc3VtZUVzY2Fw
ZSk6CisgICAgICAgICogZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udmVydEF0dHJpYnV0ZU5hbWVUb1Byb3BlcnR5TmFtZSk6CisgICAgICAgICogZG9t
L0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Zm9ybWF0Rm9yRGVidWdn
ZXIgY29uc3QpOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGU6OnRleHRDb250ZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnNob3dOb2Rl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OnRyYXZlcnNlVHJlZUFuZE1hcmspOgorICAgICAg
ICAqIGRvbS9Qb3NpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6Zm9ybWF0
Rm9yRGVidWdnZXIgY29uc3QpOgorICAgICAgICAqIGRvbS9SYW5nZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSYW5nZTo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6
OmZvcm1hdEZvckRlYnVnZ2VyIGNvbnN0KToKKyAgICAgICAgKiBkb20vU2NyaXB0ZWRBbmltYXRp
b25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRocm90dGxpbmdSZWFzb25zVG9T
dHJpbmcpOgorICAgICAgICAqIGRvbS9TZWN1cml0eUNvbnRleHQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2VjdXJpdHlDb250ZXh0OjpwYXJzZVNhbmRib3hQb2xpY3kpOgorICAgICAgICAqIGRv
bS9UZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHQ6Ondob2xlVGV4dCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0Ojpmb3JtYXRGb3JEZWJ1Z2dlciBjb25zdCk6CisgICAgICAg
ICogZG9tL1RleHROb2RlVHJhdmVyc2FsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHROb2Rl
VHJhdmVyc2FsOjpjb250ZW50c0FzU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHROb2Rl
VHJhdmVyc2FsOjpjaGlsZFRleHRDb250ZW50KToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5
bGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjphZGRC
bG9ja1N0eWxlKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6c3RyaW5nV2l0aFJlYmFsYW5jZWRXaGl0ZXNwYWNlKToKKyAgICAgICAgKiBlZGl0aW5n
L0hUTUxJbnRlcmNoYW5nZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0SFRNTFRleHRU
b0ludGVyY2hhbmdlRm9ybWF0KToKKyAgICAgICAgKiBlZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hcmt1cEFjY3VtdWxhdG9yOjpzZXJpYWxpemVOb2Rl
cyk6CisgICAgICAgIChXZWJDb3JlOjpNYXJrdXBBY2N1bXVsYXRvcjo6Z2VuZXJhdGVVbmlxdWVQ
cmVmaXgpOgorICAgICAgICAqIGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnBsYWluVGV4dCk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0NvbW1hbmQ6OmlucHV0RXZlbnREYXRhVHJhbnNmZXIg
Y29uc3QpOgorICAgICAgICAqIGVkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpWaXNpYmxlU2VsZWN0aW9uOjpmb3JtYXRGb3JEZWJ1Z2dlciBjb25zdCk6Cisg
ICAgICAgICogZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6ZGF0YURldGVjdG9yU3RyaW5nRm9yUGF0aCk6CisgICAgICAgICogZWRpdGluZy9jb2NvYS9I
VE1MQ29udmVydGVyLm1tOgorICAgICAgICAoSFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NUZXh0KToK
KyAgICAgICAgKiBlZGl0aW5nL21hcmt1cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRN
YXJrdXBBY2N1bXVsYXRvcjo6d3JhcFdpdGhOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
ZE1hcmt1cEFjY3VtdWxhdG9yOjp3cmFwV2l0aFN0eWxlTm9kZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6dGFrZVJlc3VsdHMpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZFRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6c2FuaXRpemVkTWFya3VwRm9yRnJhZ21lbnRJbkRvY3VtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OnVybFRvTWFya3VwKToKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RmlsZVJlYWRlckxvYWRlcjo6Y29udmVydFRvRGF0YVVSTCk6
CisgICAgICAgICogaHRtbC9ET01Ub2tlbkxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9N
VG9rZW5MaXN0Ojp1cGRhdGVBc3NvY2lhdGVkQXR0cmlidXRlRnJvbVRva2Vucyk6CisgICAgICAg
ICogaHRtbC9FbWFpbElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbWFpbElucHV0
VHlwZTo6c2FuaXRpemVWYWx1ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OmRlZmF1bHRUb29sVGlwIGNv
bnN0KToKKyAgICAgICAgKiBodG1sL0Zvcm1Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmZvcm1TaWduYXR1cmUpOgorICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OmhhbmRsZUNsaWNrKToKKyAg
ICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxDYW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0MmQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUltYWdlQnVmZmVyIGNvbnN0KToKKyAgICAgICAgKiBodG1s
L0hUTUxGb250RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZUZvbnRTaXplKToK
KyAgICAgICAgKiBodG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTEltYWdlRWxlbWVudDo6Y29tcGxldGVVUkxzSW5BdHRyaWJ1dGVWYWx1ZSBjb25zdCk6Cisg
ICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFj
dGlvbk5hbWUpOgorICAgICAgICAqIGh0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ6OmNvbGxlY3RPcHRpb25Jbm5lclRleHQgY29u
c3QpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnN0cmlwcGVkUGxhY2Vo
b2xkZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6aW5uZXJUZXh0VmFsdWVGcm9tKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojp2YWx1ZVdpdGhIYXJk
TGluZUJyZWFrcyBjb25zdCk6CisgICAgICAgICogaHRtbC9NZWRpYURvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0
dXJlKToKKyAgICAgICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6cmVzdHJpY3Rpb25OYW1lKToKKyAgICAgICAgKiBodG1sL01lZGlhRnJhZ21lbnRV
UklQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29sbGVjdERpZ2l0cyk6CisgICAgICAg
IChXZWJDb3JlOjpjb2xsZWN0RnJhY3Rpb24pOgorICAgICAgICAqIGh0bWwvVHlwZUFoZWFkLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlR5cGVBaGVhZDo6aGFuZGxlRXZlbnQpOgorICAgICAgICAq
IGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmZvbnQgY29uc3QpOgorICAgICAgICAqIGh0
bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6Z2V0SW1hZ2VEYXRhIGNvbnN0KToK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcDoKKyAg
ICAgICAgKiBodG1sL3BhcnNlci9IVE1MU291cmNlVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MU291cmNlVHJhY2tlcjo6c291cmNlKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9I
VE1MVG9rZW5pemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbml6ZXI6OnByb2Nl
c3NFbnRpdHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXplcjo6cHJvY2Vzc1Rva2Vu
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbml6ZXI6OmJ1ZmZlcmVkQ2hhcmFjdGVycyBj
b25zdCk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6ZGVmYXVsdEZvckluVGFibGVUZXh0KToKKyAg
ICAgICAgKiBodG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6YnVpbGRDb25zb2xlRXJyb3IpOgorICAgICAgICAqIGh0bWwvdHJhY2svQnVmZmVyZWRM
aW5lUmVhZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJ1ZmZlcmVkTGluZVJlYWRlcjo6bmV4
dExpbmUpOgorICAgICAgICAqIGh0bWwvdHJhY2svVHJhY2tCYXNlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRyYWNrQmFzZTo6c2V0TGFuZ3VhZ2UpOgorICAgICAgICAqIGh0bWwvdHJhY2svVlRU
Q3VlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZUVEN1ZTo6ZGV0ZXJtaW5lVGV4dERpcmVjdGlv
bik6CisgICAgICAgICogaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViVlRUUGFyc2VyOjpjcmVhdGVOZXdDdWUpOgorICAgICAgICAqIGh0bWwvdHJhY2sv
V2ViVlRUVG9rZW5pemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlZUVFRva2VuaXplcjo6
bmV4dFRva2VuKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZTo6c2hvcnRoYW5kVmFsdWUgY29uc3Qp
OgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2Vu
dDo6YnVpbGRPYmplY3RGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UpOgorICAgICAgICAqIGlu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvYWdlbnRzL1dlYkNvbnNvbGVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJD
b25zb2xlQWdlbnQ6OmRpZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKiBsb2FkZXIvQ3Jvc3NPcmln
aW5BY2Nlc3NDb250cm9sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUFjY2Vzc0NvbnRy
b2xQcmVmbGlnaHRSZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjp0b1N0
cmluZyBjb25zdCk6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVT
dG9yYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpz
dG9yZSk6CisgICAgICAgICogbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lXZWJBcmNoaXZlOjpjcmVhdGVGcm9tU2VsZWN0aW9u
KToKKyAgICAgICAgKiBsb2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Z2VuZXJhdGVSYW5kb21Cb3VuZGFyeSk6CisgICAgICAgIChXZWJDb3Jl
OjpyZXBsYWNlTm9uUHJpbnRhYmxlQ2hhcmFjdGVycyk6CisgICAgICAgICogcGFnZS9DYXB0aW9u
VXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNl
clByZWZlcmVuY2VzTWVkaWFBRjo6d2luZG93Um91bmRlZENvcm5lclJhZGl1c0NTUyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y29sb3JQ
cm9wZXJ0eUNTUyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVu
Y2VzTWVkaWFBRjo6Y2FwdGlvbnNUZXh0RWRnZUNTUyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y2FwdGlvbnNEZWZhdWx0Rm9udENTUyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6
Y2FwdGlvbnNTdHlsZVNoZWV0T3ZlcnJpZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6dHJh
Y2tEaXNwbGF5TmFtZSk6CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVSZWdFeHBGb3JMYWJlbHMpOgorICAgICAgICAqIHBhZ2UvRnJhbWVUcmVlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVHJlZTo6dW5pcXVlQ2hpbGROYW1lIGNvbnN0KToK
KyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXc6OmxvZ01vY2tTY3JvbGxBbmltYXRvck1lc3NhZ2UgY29uc3QpOgorICAgICAgICAqIHBhZ2Uv
UGFnZVNlcmlhbGl6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVNlcmlhbGl6ZXI6OnNl
cmlhbGl6ZUNTU1N0eWxlU2hlZXQpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VMb2dnaW5n
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudDo6
c3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zQXNTdHJpbmcpOgorICAgICAgICAqIHBhZ2UvU2Vj
dXJpdHlPcmlnaW5EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YTo6ZGF0YWJhc2VJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1doZWVsRXZlbnRU
ZXN0VHJpZ2dlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkdW1wU3RhdGUpOgorICAgICAgICAq
IHBhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpj
b25zb2xlTWVzc2FnZUZvclZpb2xhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2Vj
dXJpdHlQb2xpY3k6OmFsbG93UnVubmluZ09yRGlzcGxheWluZ0luc2VjdXJlQ29udGVudCk6Cisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXhpc1Njcm9sbFNuYXBPZmZzZXRzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnNuYXBPZmZzZXRzVG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6c25h
cE9mZnNldFJhbmdlc1RvU3RyaW5nKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRv
cjo6c3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zQXNUZXh0KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9EZWNpbWFsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlY2ltYWw6OnRvU3RyaW5nIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVTeXN0ZW06OmVuY29kZUZvckZpbGVOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVT
eXN0ZW06OmRlY29kZUZyb21GaWxlbmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vUE9ESW50ZXJ2
YWwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QT0RSZWRCbGFja1RyZWUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlBPRFJlZEJsYWNrVHJlZTo6ZHVtcEZyb21Ob2RlIGNvbnN0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9VUkwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VVJMOjpzZXRIb3N0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlVSTDo6c2V0SG9zdEFuZFBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6cGVy
Y2VudEVuY29kZUNoYXJhY3RlcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2FuaW1hdGlvbi9UaW1p
bmdGdW5jdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1pbmdGdW5jdGlvbjo6Y3JlYXRl
RnJvbUNTU1RleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50
cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q29sb3I6OnNlcmlhbGl6ZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3I6
OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29s
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5kZWRDb2xvcjo6Y3NzVGV4dCBjb25zdCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6bm9ybWFsaXplU3BhY2VzSW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRUYWdnZWRTZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRv
cjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmFuaW1hdGlvbk5hbWVGb3JUcmFuc2l0aW9u
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZUFWRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2
YXRlQVZGOjpwcm9jZXNzQ3VlQXR0cmlidXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzTmF0aXZlU2FtcGxlcyk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VGlsZUNvbnRyb2xsZXI6OmNyZWF0ZVRpbGVMYXllcik6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvVGlsZUdyaWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvblBvbGlj
eUFzU3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1D
QUxheWVyV2luLmNwcDoKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllcldpbjo6bGF5ZXJUcmVlQXNT
dHJpbmcgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVy
ZUNvcGllckNWLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVGV4dHVyZUNvcGllckNWOjpp
bml0aWFsaXplQ29udGV4dE9iamVjdHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpnZW5lcmF0ZUhhc2hlZE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
M0Q6OmdldFVubWFuZ2xlZEluZm9Mb2cpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QYXN0ZWJv
YXJkTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6am9pblBhdGhuYW1lcyk6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYkNvcmU6OndpbGRj
YXJkUmVnZXhQYXR0ZXJuU3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL1Njcm9sbEFu
aW1hdG9yTW9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1vY2s6Om1v
dXNlRW50ZXJlZFNjcm9sbGJhciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmlt
YXRvck1vY2s6Om1vdXNlRXhpdGVkU2Nyb2xsYmFyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbEFuaW1hdG9yTW9jazo6bW91c2VJc0Rvd25JblNjcm9sbGJhciBjb25zdCk6CisgICAg
ICAgICogcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrQm94LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1vY2tCb3g6OnBlZWtUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tUcmFja0Jv
eDo6TW9ja1RyYWNrQm94KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUHJveHlTZXJ2ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6dG9TdHJpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZUph
ck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZXNGb3JTZXNzaW9uKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50cyk6CisgICAgICAgICogcGxhdGZv
cm0vdGV4dC9EZWNvZGVFc2NhcGVTZXF1ZW5jZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlVuaWNv
ZGUxNkJpdEVzY2FwZVNlcXVlbmNlOjpkZWNvZGVSdW4pOgorICAgICAgICAoV2ViQ29yZTo6ZGVj
b2RlRXNjYXBlU2VxdWVuY2VzKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9j
YWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsZTo6Y29udmVydFRvTG9jYWxpemVkTnVt
YmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsZTo6Y29udmVydEZyb21Mb2NhbGl6ZWROdW1i
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlOjpmb3JtYXREYXRlVGltZSk6CisgICAgICAg
ICogcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2VnbWVudGVkU3RyaW5nOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vdGV4
dC9UZXh0Q29kZWNJQ1UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvZGVjSUNVOjpkZWNv
ZGUpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dENvZGVjVXNlckRlZmluZWQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dENvZGVjVXNlckRlZmluZWQ6OmRlY29kZSk6CisgICAgICAg
ICogcGx1Z2lucy9ET01NaW1lVHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01NaW1lVHlw
ZTo6c3VmZml4ZXMgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6bmFtZSBjb25zdCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OmxvZ0xheWVySW5mbyk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxpc3RNYXJrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bGlzdE1hcmtlclRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdE1hcmtlcjo6cGFpbnQpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhcGl0YWxpemUp
OgorICAgICAgICAoV2ViQ29yZTo6bWF4V29yZEZyYWdtZW50V2lkdGgpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnF1b3RlQW5k
RXNjYXBlTm9uUHJpbnRhYmxlcyk6CisgICAgICAgIChXZWJDb3JlOjpub2RlUG9zaXRpb24pOgor
ICAgICAgICAqIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTEZlbmNlZDo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAg
ICAgICAqIHJlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlck1hdGhNTC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlQnVpbGRlcjo6TWF0aE1MOjphdHRhY2gpOgorICAg
ICAgICAqIHN2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0xlbmd0aExpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2Zy9T
VkdOdW1iZXJMaXN0VmFsdWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR051bWJlckxpc3RW
YWx1ZXM6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU3RyaW5n
QnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU3RyaW5nQnVpbGRlcjo6cmVz
dWx0KToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpidWlsZFN0cmluZ0Zyb21QYXRoKToKKyAgICAgICAgKiBzdmcvU1ZHUG9pbnRMaXN0VmFs
dWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50TGlzdFZhbHVlczo6dmFsdWVBc1N0
cmluZyBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHU3RyaW5nTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZyBjb25zdCk6
CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHVHJhbnNmb3JtTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAg
ICAgICogc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Ry
YW5zZm9ybVZhbHVlOjp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvcHJvcGVy
dGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlU
cmFpdHM8RmxvYXRQb2ludD46OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3Bl
cnR5VHJhaXRzPEZsb2F0UmVjdD46OnRvU3RyaW5nKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVy
bmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmR1bXBNYXJrZXJSZWN0cyk6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnBhcnNlck1ldGFEYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsczo6Z2V0Q3VycmVudEN1cnNvckluZm8pOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjptZWRpYVNlc3Npb25SZXN0cmljdGlvbnMgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpwYWdlTWVkaWFTdGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OnNjcm9sbFNuYXBPZmZzZXRzKToKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tQ
YWdlT3ZlcmxheUNsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUGFnZU92ZXJsYXlD
bGllbnQ6OmRyYXdSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tQYWdlT3ZlcmxheUNsaWVu
dDo6bW91c2VFdmVudCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0TG9hZGVyOjpzY3JpcHQpOgorICAgICAg
ICAqIHhtbC9YTUxFcnJvcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MRXJyb3JzOjppbnNl
cnRFcnJvck1lc3NhZ2VCbG9jayk6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25zZUhlYWRlcnMg
Y29uc3QpOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5oOgorICAgICAgICAqIHhtbC9Y
UGF0aEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6YXRvbWljU3Vic3Ry
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoOjpGdW5JZDo6ZXZhbHVhdGUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OkZ1bkNvbmNhdDo6ZXZhbHVhdGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6WFBhdGg6OkZ1blRyYW5zbGF0ZTo6ZXZhbHVhdGUgY29uc3QpOgorICAg
ICAgICAqIHhtbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpz
YXZlUmVzdWx0VG9TdHJpbmcpOgorICAgICAgICAqIHhtbC9wYXJzZXIvQ2hhcmFjdGVyUmVmZXJl
bmNlUGFyc2VySW5saW5lcy5oOgorICAgICAgICAoV2ViQ29yZTo6dW5jb25zdW1lQ2hhcmFjdGVy
cyk6CisKIDIwMTgtMDUtMDEgIE9sZWtzYW5kciBTa2FjaGtvdiAgPGdza2FjaGtvdkBnbWFpbC5j
b20+CiAKICAgICAgICAgV2ViQXNzZW1ibHk6IGFkZCBzdXBwb3J0IGZvciBzdHJlYW0gQVBJcyAt
IEphdmFTY3JpcHQgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5L2NvY29hL1BheW1lbnRDb250YWN0Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2FwcGxlcGF5L2NvY29hL1BheW1lbnRDb250YWN0Q29jb2EubW0KaW5kZXggM2JlNjIxMC4uMDk3
ODRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9Q
YXltZW50Q29udGFjdENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVw
YXkvY29jb2EvUGF5bWVudENvbnRhY3RDb2NvYS5tbQpAQCAtMTU0LDcgKzE1NCwxMCBAQCBzdGF0
aWMgUmV0YWluUHRyPFBLQ29udGFjdD4gY29udmVydCh1bnNpZ25lZCB2ZXJzaW9uLCBjb25zdCBB
cHBsZVBheVBheW1lbnRDb250YQogICAgICAgICB9CiAKICAgICAgICAgLy8gRklYTUU6IFN0cmlu
Z0J1aWxkZXIgc2hvdWxkIGhhdmEgYSB0b05TU3RyaW5nKCkgZnVuY3Rpb24gdG8gYXZvaWQgdGhl
IGV4dHJhIFN0cmluZyBhbGxvY2F0aW9uLgotICAgICAgICBbYWRkcmVzcyBzZXRTdHJlZXQ6YnVp
bGRlci50b1N0cmluZygpXTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICAgICAgW2FkZHJlc3Mgc2V0U3RyZWV0OipzdHJpbmddOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogCiAgICAgICAgIGlmICghY29udGFjdC5zdWJM
b2NhbGl0eS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBzZXRTdWJMb2NhbGl0eShhZGRyZXNzLmdl
dCgpLCBjb250YWN0LnN1YkxvY2FsaXR5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcAppbmRleCA4ZTUwNjZkLi45YjM2MGFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9NRmlsZVN5c3Rl
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0
ZW0uY3BwCkBAIC0yMTYsNyArMjE2LDkgQEAgc3RhdGljIFN0cmluZyByZXNvbHZlUmVsYXRpdmVW
aXJ0dWFsUGF0aChTdHJpbmdWaWV3IGJhc2VWaXJ0dWFsUGF0aCwgU3RyaW5nVmlldwogICAgICAg
ICBidWlsZGVyLmFwcGVuZCgnLycpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChzZWdtZW50KTsK
ICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAKIC8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vZW50cmllcy1hcGkvI2V2YWx1
YXRlLWEtcGF0aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dl
b2xvY2F0aW9uLmNwcAppbmRleCBkY2JmNzAzLi42Y2FhYzVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcApAQCAtMzQwLDcgKzM0
MCwxMCBAQCBzdGF0aWMgdm9pZCBsb2dFcnJvcihjb25zdCBTdHJpbmcmIHRhcmdldCwgY29uc3Qg
Ym9vbCBpc1NlY3VyZSwgY29uc3QgYm9vbCBpc01peAogICAgIAogICAgIG1lc3NhZ2UuYXBwZW5k
KHRhcmdldCk7CiAgICAgbWVzc2FnZS5hcHBlbmQoIi5cbiIpOwotICAgIGRvY3VtZW50LT5hZGRD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJv
ciwgbWVzc2FnZS50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtZXNzYWdlLnRv
U3RyaW5nKCkpCisgICAgICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291
cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgKnN0cmluZyk7CisgICAgZWxzZQor
ICAgICAgICBDUkFTSCgpOwogfQogCiAvLyBGSVhNRTogcmVtb3ZlIHRoaXMgZnVuY3Rpb24gd2hl
biByZGFyOi8vcHJvYmxlbS8zMjEzNzgyMSBpcyBmaXhlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5jcHAKaW5kZXggMmU5MzY0NS4uNzIxMjk3NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5jcHAK
QEAgLTMzMiw3ICszMzIsMTAgQEAgU3RyaW5nIElEQktleURhdGE6OmxvZ2dpbmdTdHJpbmcoKSBj
b25zdAogICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKICAgICAg
ICAgfQogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiB9Iik7Ci0gICAgICAgIHJlc3Vs
dCA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICAgICAgcmVzdWx0ID0gKnN0cmluZzsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2Ug
S2V5VHlwZTo6QmluYXJ5OiB7CkBAIC0zNDIsNyArMzQ1LDEwIEBAIFN0cmluZyBJREJLZXlEYXRh
Ojpsb2dnaW5nU3RyaW5nKCkgY29uc3QKICAgICAgICAgYXV0byogZGF0YSA9IFdURjo6Z2V0PFRo
cmVhZFNhZmVEYXRhQnVmZmVyPihtX3ZhbHVlKS5kYXRhKCk7CiAgICAgICAgIGlmICghZGF0YSkg
ewogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIihudWxsKSIpOwotICAgICAgICAgICAgcmVz
dWx0ID0gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
YnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHJlc3VsdCA9ICpzdHJpbmc7Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAKQEAgLTM1Myw3ICszNTksMTAgQEAgU3RyaW5nIElEQktleURhdGE6
OmxvZ2dpbmdTdHJpbmcoKSBjb25zdAogICAgICAgICBpZiAoZGF0YS0+c2l6ZSgpID4gOCkKICAg
ICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIuLi4iKTsKIAotICAgICAgICByZXN1bHQgPSBidWls
ZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgICAgIHJlc3VsdCA9ICpzdHJpbmc7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIENSQVNIKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEtleVR5cGU6
OlN0cmluZzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QktleVBhdGguY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UGF0
aC5jcHAKaW5kZXggNzZlYmViMy4uOGI5ZmIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UGF0aC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCS2V5UGF0aC5jcHAKQEAgLTI0MSw3ICsyNDEsOSBAQCBTdHJpbmcg
bG9nZ2luZ1N0cmluZyhjb25zdCBJREJLZXlQYXRoJiBwYXRoKQogICAgICAgICBidWlsZGVyLmFw
cGVuZChzdHJpbmdzLmxhc3QoKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIgPiIpOwogCi0g
ICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
ICAgICBDUkFTSCgpOwogICAgIH0pOwogCiAgICAgcmV0dXJuIFdURjo6dmlzaXQodmlzaXRvciwg
cGF0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvSW5kZXhWYWx1ZVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JbmRleFZhbHVlU3RvcmUuY3BwCmluZGV4IDY5ODNjOWQuLjgwZDZiM2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRleFZhbHVl
U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9J
bmRleFZhbHVlU3RvcmUuY3BwCkBAIC00MDksNyArNDA5LDkgQEAgU3RyaW5nIEluZGV4VmFsdWVT
dG9yZTo6bG9nZ2luZ1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVy
KG1fcmVjb3Jkcy5nZXQoa2V5KS0+Z2V0Q291bnQoKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiIGVudHJpZXMiKTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1cnNvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQ3Vyc29y
LmNwcAppbmRleCBmMjBkYjg3Li5hNGMzMGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQ3Vyc29yLmNwcApAQCAt
MTQxLDcgKzE0MSw5IEBAIHN0YXRpYyBTdHJpbmcgYnVpbGRJbmRleFN0YXRlbWVudChjb25zdCBJ
REJLZXlSYW5nZURhdGEmIGtleVJhbmdlLCBJbmRleGVkREI6OkN1CiAKICAgICBidWlsZGVyLmFw
cGVuZCgnOycpOwogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgYnVpbGRPYmplY3RTdG9yZVN0YXRlbWVu
dChjb25zdCBJREJLZXlSYW5nZURhdGEmIGtleVJhbmdlLCBJbmRleGVkREI6OkN1cnNvckRpcmVj
dGlvbiBjdXJzb3JEaXJlY3Rpb24pCkBAIC0xNjksNyArMTcxLDkgQEAgc3RhdGljIFN0cmluZyBi
dWlsZE9iamVjdFN0b3JlU3RhdGVtZW50KGNvbnN0IElEQktleVJhbmdlRGF0YSYga2V5UmFuZ2Us
IEluZGV4ZWQKIAogICAgIGJ1aWxkZXIuYXBwZW5kKCc7Jyk7CiAKLSAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBTUUxpdGVJ
REJDdXJzb3I6OmVzdGFibGlzaFN0YXRlbWVudCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VJbmZvLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJEYXRhYmFzZUluZm8uY3BwCmluZGV4
IGU1ZGYxNWMuLjc2OTM0ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NoYXJlZC9JREJEYXRhYmFzZUluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJEYXRhYmFzZUluZm8uY3BwCkBAIC0xNjksNyArMTY5
LDkgQEAgU3RyaW5nIElEQkRhdGFiYXNlSW5mbzo6bG9nZ2luZ1N0cmluZygpIGNvbnN0CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJPYmplY3RTdG9y
ZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9i
amVjdFN0b3JlSW5mby5jcHAKaW5kZXggYjAwNzVmZS4uOGQ4ZmFkNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9iamVjdFN0b3JlSW5mby5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9iamVj
dFN0b3JlSW5mby5jcHAKQEAgLTE0OCw3ICsxNDgsOSBAQCBTdHJpbmcgSURCT2JqZWN0U3RvcmVJ
bmZvOjpsb2dnaW5nU3RyaW5nKGludCBpbmRlbnQpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCdcbicpOwogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgSURCT2JqZWN0U3RvcmVJbmZvOjpjb25k
ZW5zZWRMb2dnaW5nU3RyaW5nKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKaW5k
ZXggNDIwOWZmYS4uOTZmZWJjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKQEAgLTg5
LDcgKzg5LDkgQEAgc3RhdGljIFN0cmluZyBtZWRpYVByb2R1Y2VyU3RhdGVTdHJpbmcoTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQogICAgIGVsc2UKICAgICAgICAgc3RyaW5n
LnJlc2l6ZShzdHJpbmcubGVuZ3RoKCkgLSAyKTsKIAotICAgIHJldHVybiBzdHJpbmcudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHIgPSBzdHJpbmcudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHI7CisgICAgQ1JBU0goKTsKIH0KICNlbmRpZgogCkBAIC0zODEsNyArMzgzLDkgQEAg
U3RyaW5nIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OnRvU3RyaW5nKENvbmZpZ3VyYXRpb25UYXNr
cyB0YXNrcykKICAgICBlbHNlCiAgICAgICAgIHN0cmluZy5yZXNpemUoc3RyaW5nLmxlbmd0aCgp
IC0gMik7CiAgICAgCi0gICAgcmV0dXJuIHN0cmluZy50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0ciA9IHN0cmluZy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cjsKKyAgICBDUkFT
SCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAppbmRleCBkYzUxYmI1Li5k
YmVjZDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Bl
ZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCkBAIC00MDMsNyArNDAzLDkgQEAgc3Rh
dGljIFN0cmluZyBmaWx0ZXJJQ0VDYW5kaWRhdGUoU3RyaW5nJiYgc2RwKQogICAgICAgICAgICAg
ZmlsdGVyZWRTRFAuYXBwZW5kKCcgJyk7CiAgICAgICAgIGZpbHRlcmVkU0RQLmFwcGVuZChpdGVt
KTsKICAgICB9KTsKLSAgICByZXR1cm4gZmlsdGVyZWRTRFAudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBmaWx0ZXJlZFNEUC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpm
aWx0ZXJTRFAoU3RyaW5nJiYgc2RwKSBjb25zdApAQCAtNDIxLDcgKzQyMyw5IEBAIFN0cmluZyBQ
ZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmZpbHRlclNEUChTdHJpbmcmJiBzZHApIGNvbnN0CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIGZpbHRlcmVkU0RQLmFwcGVuZCgnXG4nKTsKICAgICB9
KTsKLSAgICByZXR1cm4gZmlsdGVyZWRTRFAudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBmaWx0ZXJlZFNEUC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiB2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6bmV3SUNFQ2FuZGlk
YXRlKFN0cmluZyYmIHNkcCwgU3RyaW5nJiYgbWlkLCB1bnNpZ25lZCBzaG9ydCBzZHBNTGluZUlu
ZGV4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQ
bHVnaW5SZXBsYWNlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91
VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcAppbmRleCBjOTE3MWRjLi40MjdmNGZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2Vt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdp
blJlcGxhY2VtZW50LmNwcApAQCAtMzMzLDcgKzMzMyw5IEBAIFN0cmluZyBZb3VUdWJlUGx1Z2lu
UmVwbGFjZW1lbnQ6OnlvdVR1YmVVUkxGcm9tQWJzb2x1dGVVUkwoY29uc3QgVVJMJiBzcmNVUkws
IGNvCiAgICAgICAgIGZpbmFsVVJMLmFwcGVuZCgnPycpOwogICAgICAgICBmaW5hbFVSTC5hcHBl
bmQocXVlcnkpOwogICAgIH0KLSAgICByZXR1cm4gZmluYWxVUkwudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBmaW5hbFVSTC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogICAgIAogYm9vbCBZb3VUdWJlUGx1Z2luUmVwbGFjZW1l
bnQ6OnN1cHBvcnRzVVJMKGNvbnN0IFVSTCYgdXJsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCmluZGV4IDhmZGE2MmEu
Ljk4ZjMwOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VUcmFja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKQEAgLTMyMCw3ICszMjAsOSBAQCBzdGF0aWMgU3RyaW5n
IGdlbmVyYXRlRGF0YWJhc2VGaWxlTmFtZSgpCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoY3Jl
YXRlQ2Fub25pY2FsVVVJRFN0cmluZygpKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVy
YWwoIi5kYiIpOwogCi0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBEYXRhYmFzZVRyYWNrZXI6OmZ1
bGxQYXRoRm9yRGF0YWJhc2VOb0xvY2soY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4s
IGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5vdEV4aXN0cykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKaW5kZXggMDI0NzdiOS4u
ZWFiMjUzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dl
YlNvY2tldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldC5jcHAKQEAgLTEwNSw3ICsxMDUsOSBAQCBzdGF0aWMgU3RyaW5nIGVuY29kZVByb3RvY29s
U3RyaW5nKGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpCiAgICAgICAgIGVsc2UKICAgICAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKHByb3RvY29sW2ldKTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJpbmcg
am9pblN0cmluZ3MoY29uc3QgVmVjdG9yPFN0cmluZz4mIHN0cmluZ3MsIGNvbnN0IGNoYXIqIHNl
cGFyYXRvcikKQEAgLTExNiw3ICsxMTgsOSBAQCBzdGF0aWMgU3RyaW5nIGpvaW5TdHJpbmdzKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBzdHJpbmdzLCBjb25zdCBjaGFyKiBzZXBhcmF0b3IpCiAgICAg
ICAgICAgICBidWlsZGVyLmFwcGVuZChzZXBhcmF0b3IpOwogICAgICAgICBidWlsZGVyLmFwcGVu
ZChzdHJpbmdzW2ldKTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBzYXR1cmF0ZUFkZCh1
bnNpZ25lZCBhLCB1bnNpZ25lZCBiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3Bw
CmluZGV4IGZjYzlkYzMuLjZjNDBjNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hl
ci5jcHAKQEAgLTY4LDcgKzY4LDkgQEAgY29uc3QgU3RyaW5nIFdlYlNvY2tldEV4dGVuc2lvbkRp
c3BhdGNoZXI6OmNyZWF0ZUhlYWRlclZhbHVlKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCIsICIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChtX3Byb2Nlc3NvcnNbaV0t
PmhhbmRzaGFrZVN0cmluZygpKTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgV2ViU29ja2V0RXh0ZW5zaW9u
RGlzcGF0Y2hlcjo6YXBwZW5kQWNjZXB0ZWRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNp
b25Ub2tlbiwgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIGV4dGVuc2lvblBhcmFtZXRlcnMpCkBA
IC0xMzksNyArMTQxLDkgQEAgU3RyaW5nIFdlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OmFj
Y2VwdGVkRXh0ZW5zaW9ucygpIGNvbnN0CiB7CiAgICAgaWYgKG1fYWNjZXB0ZWRFeHRlbnNpb25z
QnVpbGRlci5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICByZXR1cm4g
bV9hY2NlcHRlZEV4dGVuc2lvbnNCdWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IG1fYWNjZXB0ZWRFeHRlbnNpb25zQnVpbGRlci50b1N0cmlu
Z1ByZXNlcnZlQ2FwYWNpdHkoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogU3RyaW5nIFdlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OmZhaWx1cmVSZWFz
b24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldEhhbmRzaGFrZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcAppbmRleCA1NDU1Y2QxLi4wODNhOTA0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFu
ZHNoYWtlLmNwcApAQCAtNzIsMTAgKzcyLDEzIEBAIHN0YXRpYyBTdHJpbmcgcmVzb3VyY2VOYW1l
KGNvbnN0IFVSTCYgdXJsKQogICAgICAgICBuYW1lLmFwcGVuZCgnPycpOwogICAgICAgICBuYW1l
LmFwcGVuZCh1cmwucXVlcnkoKSk7CiAgICAgfQotICAgIFN0cmluZyByZXN1bHQgPSBuYW1lLnRv
U3RyaW5nKCk7Ci0gICAgQVNTRVJUKCFyZXN1bHQuaXNFbXB0eSgpKTsKLSAgICBBU1NFUlQoIXJl
c3VsdC5jb250YWlucygnICcpKTsKLSAgICByZXR1cm4gcmVzdWx0OworICAgIGlmIChhdXRvIHN0
cmluZyA9IG5hbWUudG9TdHJpbmcoKSkgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gKnN0cmlu
ZzsKKyAgICAgICAgQVNTRVJUKCFyZXN1bHQuaXNFbXB0eSgpKTsKKyAgICAgICAgQVNTRVJUKCFy
ZXN1bHQuY29udGFpbnMoJyAnKSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAg
IENSQVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgaG9zdE5hbWUoY29uc3QgVVJMJiB1cmwsIGJv
b2wgc2VjdXJlKQpAQCAtODcsNyArOTAsOSBAQCBzdGF0aWMgU3RyaW5nIGhvc3ROYW1lKGNvbnN0
IFVSTCYgdXJsLCBib29sIHNlY3VyZSkKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJzonKTsKICAg
ICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodXJsLnBvcnQoKS52YWx1ZSgpKTsKICAgICB9Ci0g
ICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIHN0YXRpYyBjb25zdCBzaXplX3QgbWF4SW5wdXRTYW1wbGVTaXplID0gMTI4OwpAQCAtMTc2
LDcgKzE4MSw5IEBAIFN0cmluZyBXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudExvY2F0aW9uKCkg
Y29uc3QKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjovLyIpOwogICAgIGJ1aWxkZXIuYXBw
ZW5kKGhvc3ROYW1lKG1fdXJsLCBtX3NlY3VyZSkpOwogICAgIGJ1aWxkZXIuYXBwZW5kKHJlc291
cmNlTmFtZShtX3VybCkpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBDU3RyaW5nIFdlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZW50
SGFuZHNoYWtlTWVzc2FnZSgpIGNvbnN0CkBAIC0yMjYsNyArMjMzLDkgQEAgQ1N0cmluZyBXZWJT
b2NrZXRIYW5kc2hha2U6OmNsaWVudEhhbmRzaGFrZU1lc3NhZ2UoKSBjb25zdAogCiAgICAgYnVp
bGRlci5hcHBlbmRMaXRlcmFsKCJcclxuIik7CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmlu
ZygpLnV0ZjgoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiBzdHJpbmctPnV0ZjgoKTsKKyAgICBDUkFTSCgpOwogfQogCiBSZXNvdXJj
ZVJlcXVlc3QgV2ViU29ja2V0SGFuZHNoYWtlOjpjbGllbnRIYW5kc2hha2VSZXF1ZXN0KCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggZGI4NTc1ZS4uYzRhMjUyMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5j
cHAKQEAgLTE3MTMsMTEgKzE3MTMsMTMgQEAgc3RhdGljIGJvb2wgc2hvdWxkVXNlQWNjZXNzaWJp
bGl0eU9iamVjdElubmVyVGV4dChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFjY2UKIAogc3Rh
dGljIGJvb2wgc2hvdWxkQWRkU3BhY2VCZWZvcmVBcHBlbmRpbmdOZXh0RWxlbWVudChTdHJpbmdC
dWlsZGVyJiBidWlsZGVyLCBjb25zdCBTdHJpbmcmIGNoaWxkVGV4dCkKIHsKKyAgICBpZiAoYnVp
bGRlci5mYWlsZWQoKSkKKyAgICAgICAgQ1JBU0goKTsKKwogICAgIGlmICghYnVpbGRlci5sZW5n
dGgoKSB8fCAhY2hpbGRUZXh0Lmxlbmd0aCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0KICAg
ICAvLyBXZSBkb24ndCBuZWVkIHRvIGFkZCBhbiBhZGRpdGlvbmFsIHNwYWNlIGJlZm9yZSBvciBh
ZnRlciBhIGxpbmUgYnJlYWsuCi0gICAgcmV0dXJuICEoaXNIVE1MTGluZUJyZWFrKGNoaWxkVGV4
dFswXSkgfHwgaXNIVE1MTGluZUJyZWFrKGJ1aWxkZXJbYnVpbGRlci5sZW5ndGgoKSAtIDFdKSk7
CisgICAgcmV0dXJuICEoaXNIVE1MTGluZUJyZWFrKGNoaWxkVGV4dFswXSkgfHwgaXNIVE1MTGlu
ZUJyZWFrKCpidWlsZGVyW2J1aWxkZXIubGVuZ3RoKCkgLSAxXSkpOwogfQogICAgIAogc3RhdGlj
IHZvaWQgYXBwZW5kTmFtZVRvU3RyaW5nQnVpbGRlcihTdHJpbmdCdWlsZGVyJiBidWlsZGVyLCBj
b25zdCBTdHJpbmcmIHRleHQpCkBAIC0xNzY5LDcgKzE3NzEsOSBAQCBTdHJpbmcgQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OnRleHRVbmRlckVsZW1lbnQoQWNjZXNzaWJpbGl0eVRleHRVbmRlckVs
ZW1lbnRNbwogICAgICAgICAgICAgYXBwZW5kTmFtZVRvU3RyaW5nQnVpbGRlcihidWlsZGVyLCBj
aGlsZFRleHQpOwogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCkuc3RyaXBX
aGl0ZVNwYWNlKCkuc2ltcGxpZnlXaGl0ZVNwYWNlKGlzSFRNTFNwYWNlQnV0Tm90TGluZUJyZWFr
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiBzdHJpbmctPnN0cmlwV2hpdGVTcGFjZSgpLnNpbXBsaWZ5V2hpdGVTcGFjZShpc0hUTUxT
cGFjZUJ1dE5vdExpbmVCcmVhayk7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIEFjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0Ojp0aXRsZSgpIGNvbnN0CkBAIC0xOTg1LDcgKzE5ODksOSBAQCBTdHJp
bmcgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbkZvckNo
aWxkcmVuKCkgY29uc3QKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OmFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbkZvckVsZW1lbnRzKFZlY3Rv
cjxFbGVtZW50Kj4gJmVsZW1lbnRzKSBjb25zdApAQCAtMTk5NCw3ICsyMDAwLDkgQEAgU3RyaW5n
IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjphY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25Gb3JFbGVt
ZW50cyhWZWN0b3I8RWxlbWUKICAgICB1bnNpZ25lZCBzaXplID0gZWxlbWVudHMuc2l6ZSgpOwog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpCiAgICAgICAgIGFwcGVuZE5h
bWVUb1N0cmluZ0J1aWxkZXIoYnVpbGRlciwgYWNjZXNzaWJsZU5hbWVGb3JOb2RlKGVsZW1lbnRz
W2ldLCBub2RlKCkpKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojphcmlh
RGVzY3JpYmVkQnlBdHRyaWJ1dGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggMTkyODE3Mi4uN2M4ZDk4
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuY3BwCkBAIC0xMzg4LDggKzEzODgsMTAgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlP
YmplY3Q6OnN0cmluZ0ZvclJhbmdlKFJlZlB0cjxSYW5nZT4gcmFuZ2UpIGNvbnN0CiAgICAgICAg
ICAgICAgICAgYnVpbGRlci5hcHBlbmQob2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXIpOwogICAg
ICAgICB9CiAgICAgfQotICAgIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpz
dHJpbmdGb3JWaXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zaXRpb25SYW5nZSYg
dmlzaWJsZVBvc2l0aW9uUmFuZ2UpCkBAIC0xNDE1LDcgKzE0MTcsOSBAQCBTdHJpbmcgQWNjZXNz
aWJpbGl0eU9iamVjdDo6c3RyaW5nRm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJs
ZVBvc2l0aW9uUgogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGludCBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpsZW5ndGhGb3JWaXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zaXRpb25S
YW5nZSYgdmlzaWJsZVBvc2l0aW9uUmFuZ2UpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLm1tCmluZGV4IGExMDJkMzYuLjkzMmQxMWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCkBAIC0yNDA5LDcgKzI0MDksOSBAQCAtIChOU1N0cmlu
ZyAqKXZhbHVlRGVzY3JpcHRpb25Gb3JNZXRlcgogICAgICAgICBpZiAoYnVpbGRlci5sZW5ndGgo
KSkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoZ2F1Z2VSZWdpb25WYWx1ZSk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRv
U3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KICNl
bmRpZgogICAgIHJldHVybiB2YWx1ZURlc2NyaXB0aW9uOwpAQCAtMzg3Myw4ICszODc1LDExIEBA
IHN0YXRpYyB2b2lkIGZvcm1hdEZvckRlYnVnZ2VyKGNvbnN0IFZpc2libGVQb3NpdGlvblJhbmdl
JiByYW5nZSwgY2hhciogYnVmZmVyLCB1CiAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIiB0byAi
KTsKICAgICByYW5nZS5lbmQuZm9ybWF0Rm9yRGVidWdnZXIoZm9ybWF0LCBGb3JtYXRCdWZmZXJT
aXplKTsKICAgICByZXN1bHQuYXBwZW5kKGZvcm1hdCk7Ci0gICAgCi0gICAgc3RybGNweShidWZm
ZXIsIHJlc3VsdC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGxlbmd0aCk7CisKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgc3RybGNweShidWZmZXIs
IHN0cmluZy0+dXRmOCgpLmRhdGEoKSwgbGVuZ3RoKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNI
KCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01Db252ZXJ0U3RyaW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUNvbnZlcnRTdHJpbmdzLmNwcAppbmRleCA3ZDJkZTE4Li4xZTA0YTFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRTdHJpbmdzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRTdHJpbmdzLmNwcApAQCAtOTEs
NyArOTEsOSBAQCBzdGF0aWMgaW5saW5lIFN0cmluZyBzdHJpbmdUb1VTVlN0cmluZyhTdHJpbmcm
JiBzdHJpbmcpCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY29kZVBv
aW50KTsKICAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBTdHJpbmcgaWRlbnRpZmllclRvVVNWU3RyaW5nKEV4ZWNTdGF0ZSYs
IGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuY3BwCmluZGV4IDg5NWEzMDAuLjA3
ZmI3MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0
aW9uSGFuZGxpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhj
ZXB0aW9uSGFuZGxpbmcuY3BwCkBAIC0yMTEsNyArMjExLDkgQEAgSlNDOjpFbmNvZGVkSlNWYWx1
ZSB0aHJvd0FyZ3VtZW50TXVzdEJlRW51bUVycm9yKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlND
OjpUaHIKICAgICBhcHBlbmRBcmd1bWVudE11c3RCZShidWlsZGVyLCBhcmd1bWVudEluZGV4LCBh
cmd1bWVudE5hbWUsIGZ1bmN0aW9uSW50ZXJmYWNlTmFtZSwgZnVuY3Rpb25OYW1lKTsKICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIm9uZSBvZjogIik7CiAgICAgYnVpbGRlci5hcHBlbmQoZXhw
ZWN0ZWRWYWx1ZXMpOwotICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUs
IGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcigmc3RhdGUsIHNjb3BlLCAq
c3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiBKU0M6OkVuY29kZWRKU1ZhbHVlIHRocm93QXJn
dW1lbnRNdXN0QmVGdW5jdGlvbkVycm9yKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpUaHJv
d1Njb3BlJiBzY29wZSwgdW5zaWduZWQgYXJndW1lbnRJbmRleCwgY29uc3QgY2hhciogYXJndW1l
bnROYW1lLCBjb25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lLCBjb25zdCBjaGFyKiBmdW5jdGlvbk5h
bWUpCkBAIC0yMTksNyArMjIxLDkgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd0FyZ3VtZW50
TXVzdEJlRnVuY3Rpb25FcnJvcihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzoKICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYXBwZW5kQXJndW1lbnRNdXN0QmUoYnVpbGRlciwgYXJn
dW1lbnRJbmRleCwgYXJndW1lbnROYW1lLCBpbnRlcmZhY2VOYW1lLCBmdW5jdGlvbk5hbWUpOwog
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiYSBmdW5jdGlvbiIpOwotICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUsIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcigmc3RhdGUsIHNjb3BlLCAqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiBK
U0M6OkVuY29kZWRKU1ZhbHVlIHRocm93QXJndW1lbnRUeXBlRXJyb3IoSlNDOjpFeGVjU3RhdGUm
IHN0YXRlLCBKU0M6OlRocm93U2NvcGUmIHNjb3BlLCB1bnNpZ25lZCBhcmd1bWVudEluZGV4LCBj
b25zdCBjaGFyKiBhcmd1bWVudE5hbWUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uSW50ZXJmYWNlTmFt
ZSwgY29uc3QgY2hhciogZnVuY3Rpb25OYW1lLCBjb25zdCBjaGFyKiBleHBlY3RlZFR5cGUpCkBA
IC0yMjgsNyArMjMyLDkgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd0FyZ3VtZW50VHlwZUVy
cm9yKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpUaHJvd1Njb3AKICAgICBhcHBlbmRBcmd1
bWVudE11c3RCZShidWlsZGVyLCBhcmd1bWVudEluZGV4LCBhcmd1bWVudE5hbWUsIGZ1bmN0aW9u
SW50ZXJmYWNlTmFtZSwgZnVuY3Rpb25OYW1lKTsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwo
ImFuIGluc3RhbmNlIG9mICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKGV4cGVjdGVkVHlwZSk7Ci0g
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoJnN0YXRlLCBzY29wZSwgYnVpbGRlci50b1N0cmlu
ZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUsICpzdHJpbmcpOworICAgIENS
QVNIKCk7CiB9CiAKIHZvaWQgdGhyb3dBdHRyaWJ1dGVUeXBlRXJyb3IoSlNDOjpFeGVjU3RhdGUm
IHN0YXRlLCBKU0M6OlRocm93U2NvcGUmIHNjb3BlLCBjb25zdCBjaGFyKiBpbnRlcmZhY2VOYW1l
LCBjb25zdCBjaGFyKiBhdHRyaWJ1dGVOYW1lLCBjb25zdCBjaGFyKiBleHBlY3RlZFR5cGUpCkBA
IC0yNDUsNyArMjUxLDkgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd1JlcXVpcmVkTWVtYmVy
VHlwZUVycm9yKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpUaHIKICAgICBidWlsZGVyLmFw
cGVuZChtZW1iZXJOYW1lKTsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiBpcyByZXF1aXJl
ZCBhbmQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiAiKTsKICAgICBidWlsZGVyLmFwcGVuZChleHBl
Y3RlZFR5cGUpOwotICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUsIGJ1
aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcigmc3RhdGUsIHNjb3BlLCAqc3Ry
aW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiBKU0M6OkVuY29kZWRKU1ZhbHVlIHRocm93Q29uc3Ry
dWN0b3JTY3JpcHRFeGVjdXRpb25Db250ZXh0VW5hdmFpbGFibGVFcnJvcihKU0M6OkV4ZWNTdGF0
ZSYgc3RhdGUsIEpTQzo6VGhyb3dTY29wZSYgc2NvcGUsIGNvbnN0IGNoYXIqIGludGVyZmFjZU5h
bWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db21iaW5l
ZFVSTEZpbHRlcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29tYmlu
ZWRVUkxGaWx0ZXJzLmNwcAppbmRleCA3NTU4YjIyLi4yOWRlNTA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db21iaW5lZFVSTEZpbHRlcnMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5jcHAK
QEAgLTEwNyw3ICsxMDcsOSBAQCBzdGF0aWMgU3RyaW5nIHByZWZpeFRyZWVWZXJ0ZXhUb1N0cmlu
Zyhjb25zdCBQcmVmaXhUcmVlVmVydGV4JiB2ZXJ0ZXgsIGNvbnN0IEhhcwogICAgICAgICB9CiAg
ICAgfQogICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgdm9pZCByZWN1cnNp
dmVQcmludChjb25zdCBQcmVmaXhUcmVlVmVydGV4JiB2ZXJ0ZXgsIGNvbnN0IEhhc2hNYXA8Y29u
c3QgUHJlZml4VHJlZVZlcnRleCosIEFjdGlvbkxpc3Q+JiBhY3Rpb25zLCB1bnNpZ25lZCBkZXB0
aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRF
eHRlbnNpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4
dGVuc2lvbi5jcHAKaW5kZXggNjEwZTFiOC4uOGU1MGZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbi5jcHAKQEAgLTExMCw4
ICsxMTAsMTEgQEAgdm9pZCBDb250ZW50RXh0ZW5zaW9uOjpjb21waWxlR2xvYmFsRGlzcGxheU5v
bmVTdHlsZVNoZWV0KCkKIAogICAgIG1fZ2xvYmFsRGlzcGxheU5vbmVTdHlsZVNoZWV0ID0gU3R5
bGVTaGVldENvbnRlbnRzOjpjcmVhdGUoKTsKICAgICBtX2dsb2JhbERpc3BsYXlOb25lU3R5bGVT
aGVldC0+c2V0SXNVc2VyU3R5bGVTaGVldCh0cnVlKTsKLSAgICBpZiAoIW1fZ2xvYmFsRGlzcGxh
eU5vbmVTdHlsZVNoZWV0LT5wYXJzZVN0cmluZyhjc3MudG9TdHJpbmcoKSkpCi0gICAgICAgIG1f
Z2xvYmFsRGlzcGxheU5vbmVTdHlsZVNoZWV0ID0gbnVsbHB0cjsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBjc3MudG9TdHJpbmcoKSkgeworICAgICAgICBpZiAoIW1fZ2xvYmFsRGlzcGxheU5vbmVT
dHlsZVNoZWV0LT5wYXJzZVN0cmluZygqc3RyaW5nKSkKKyAgICAgICAgICAgIG1fZ2xvYmFsRGlz
cGxheU5vbmVTdHlsZVNoZWV0ID0gbnVsbHB0cjsKKyAgICB9IGVsc2UKKyAgICAgICAgQ1JBU0go
KTsKIAogICAgIC8vIFRoZXNlIGFjdGlvbnMgZG9uJ3QgbmVlZCB0byBiZSBhcHBsaWVkIGluZGl2
aWR1YWxseSBhbnkgbW9yZS4gVGhleSB3aWxsIGFsbCBiZSBhcHBsaWVkIHRvIGV2ZXJ5IHBhZ2Ug
YXMgYSBwcmVjb21waWxlZCBzdHlsZSBzaGVldC4KICAgICBtX3VuaXZlcnNhbEFjdGlvbnNXaXRo
b3V0Q29uZGl0aW9ucy5yZW1vdmVBbGxNYXRjaGluZyhpbkdsb2JhbERpc3BsYXlOb25lU3R5bGVT
aGVldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250
ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lv
bnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcAppbmRleCA1ZTAzNWE2Li41YzM3ZWZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5z
aW9uQ29tcGlsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0Nv
bnRlbnRFeHRlbnNpb25Db21waWxlci5jcHAKQEAgLTgwLDcgKzgwLDEwIEBAIHN0YXRpYyB2b2lk
IHJlc29sdmVQZW5kaW5nRGlzcGxheU5vbmVBY3Rpb25zKFZlY3RvcjxTZXJpYWxpemVkQWN0aW9u
Qnl0ZT4mIGFjdGlvCiAgICAgZm9yIChhdXRvJiBwZW5kaW5nRGlzcGxheU5vbmVBY3Rpb25zIDog
bWFwLnZhbHVlcygpKSB7CiAgICAgICAgIHVpbnQzMl90IGFjdGlvbkxvY2F0aW9uID0gYWN0aW9u
cy5zaXplKCk7CiAgICAgICAgIGFjdGlvbnMuYXBwZW5kKHN0YXRpY19jYXN0PFNlcmlhbGl6ZWRB
Y3Rpb25CeXRlPihBY3Rpb25UeXBlOjpDU1NEaXNwbGF5Tm9uZVNlbGVjdG9yKSk7Ci0gICAgICAg
IHNlcmlhbGl6ZVN0cmluZyhhY3Rpb25zLCBwZW5kaW5nRGlzcGxheU5vbmVBY3Rpb25zLmNvbWJp
bmVkU2VsZWN0b3JzLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBwZW5k
aW5nRGlzcGxheU5vbmVBY3Rpb25zLmNvbWJpbmVkU2VsZWN0b3JzLnRvU3RyaW5nKCkpCisgICAg
ICAgICAgICBzZXJpYWxpemVTdHJpbmcoYWN0aW9ucywgKnN0cmluZyk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIGZvciAodWludDMyX3QgY2xpZW50TG9jYXRp
b24gOiBwZW5kaW5nRGlzcGxheU5vbmVBY3Rpb25zLmNsaWVudExvY2F0aW9ucykKICAgICAgICAg
ICAgIGFjdGlvbkxvY2F0aW9uc1tjbGllbnRMb2NhdGlvbl0gPSBhY3Rpb25Mb2NhdGlvbjsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50
RXh0ZW5zaW9uU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9u
cy9Db250ZW50RXh0ZW5zaW9uU3R5bGVTaGVldC5jcHAKaW5kZXggZTI0YTM2Ni4uZGUzZTg1OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVu
c2lvblN0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25z
L0NvbnRlbnRFeHRlbnNpb25TdHlsZVNoZWV0LmNwcApAQCAtNjAsNyArNjAsMTAgQEAgYm9vbCBD
b250ZW50RXh0ZW5zaW9uU3R5bGVTaGVldDo6YWRkRGlzcGxheU5vbmVTZWxlY3Rvcihjb25zdCBT
dHJpbmcmIHNlbGVjdG9yLAogICAgIGNzcy5hcHBlbmQoJ3snKTsKICAgICBjc3MuYXBwZW5kKENv
bnRlbnRFeHRlbnNpb25zQmFja2VuZDo6ZGlzcGxheU5vbmVDU1NSdWxlKCkpOwogICAgIGNzcy5h
cHBlbmQoJ30nKTsKLSAgICBtX3N0eWxlU2hlZXQtPmNvbnRlbnRzKCkucGFyc2VTdHJpbmcoY3Nz
LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGNzcy50b1N0cmluZygpKQorICAg
ICAgICBtX3N0eWxlU2hlZXQtPmNvbnRlbnRzKCkucGFyc2VTdHJpbmcoKnN0cmluZyk7CisgICAg
ZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9UZXJtLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jb250ZW50ZXh0ZW5zaW9ucy9UZXJtLmgKaW5kZXggMGQ1MTgzMy4uNmYzMTk0ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVGVybS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1Rlcm0uaApAQCAtMjQ2LDcgKzI0Niw5IEBAIGlu
bGluZSBTdHJpbmcgVGVybTo6dG9TdHJpbmcoKSBjb25zdAogICAgICAgICB9CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCddJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHF1YW50aWZpZXJUb1N0
cmluZyhtX3F1YW50aWZpZXIpKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsK
KyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIGNhc2UgVGVy
bVR5cGU6Okdyb3VwOiB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKQEAgLTI1NSw3
ICsyNTcsOSBAQCBpbmxpbmUgU3RyaW5nIFRlcm06OnRvU3RyaW5nKCkgY29uc3QKICAgICAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKHRlcm0udG9TdHJpbmcoKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCcpJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHF1YW50aWZpZXJUb1N0cmluZyhtX3F1
YW50aWZpZXIpKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5jcHAKaW5k
ZXggYTFhNTk3Yi4uMmYyNWM5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Fu
aW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5jcHAKQEAgLTQzLDcgKzQzLDkgQEAgU3RyaW5n
IENTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAg
ICAgICAgIHJlc3VsdC5hcHBlbmQobV9lbmRWYWx1ZS0+Y3NzVGV4dCgpKTsKICAgICB9CiAgICAg
cmVzdWx0LmFwcGVuZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFs
dWU6OmVxdWFscyhjb25zdCBDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUmIG90aGVyKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5jcHAKaW5kZXggMjRmMjMzNC4uMTky
YTA0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQmFzaWNTaGFwZXMuY3BwCkBAIC0xMDcsNyArMTA3
LDkgQEAgc3RhdGljIFN0cmluZyBidWlsZENpcmNsZVN0cmluZyhjb25zdCBTdHJpbmcmIHJhZGl1
cywgY29uc3QgU3RyaW5nJiBjZW50ZXJYLCBjb24KICAgICAgICAgcmVzdWx0LmFwcGVuZChjZW50
ZXJZKTsKICAgICB9CiAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIikiKTsKLSAgICByZXR1cm4g
cmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBD
U1NCYXNpY1NoYXBlQ2lyY2xlOjpjc3NUZXh0KCkgY29uc3QKQEAgLTE2NCw3ICsxNjYsOSBAQCBz
dGF0aWMgU3RyaW5nIGJ1aWxkRWxsaXBzZVN0cmluZyhjb25zdCBTdHJpbmcmIHJhZGl1c1gsIGNv
bnN0IFN0cmluZyYgcmFkaXVzWSwgYwogICAgICAgICByZXN1bHQuYXBwZW5kKGNlbnRlclkpOwog
ICAgIH0KICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiKSIpOwotICAgIHJldHVybiByZXN1bHQu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIENTU0Jhc2lj
U2hhcGVFbGxpcHNlOjpjc3NUZXh0KCkgY29uc3QKQEAgLTIyNCw3ICsyMjgsOSBAQCBzdGF0aWMg
U3RyaW5nIGJ1aWxkUGF0aFN0cmluZyhjb25zdCBXaW5kUnVsZSYgd2luZFJ1bGUsIGNvbnN0IFN0
cmluZyYgcGF0aCwgY29ucwogICAgICAgICByZXN1bHQuYXBwZW5kKGJveCk7CiAgICAgfQogCi0g
ICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3Vs
dC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiBTdHJpbmcgQ1NTQmFzaWNTaGFwZVBhdGg6OmNzc1RleHQoKSBjb25zdApAQCAtMjgwLDcgKzI4
Niw5IEBAIHN0YXRpYyBTdHJpbmcgYnVpbGRQb2x5Z29uU3RyaW5nKGNvbnN0IFdpbmRSdWxlJiB3
aW5kUnVsZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mCiAKICAgICByZXN1bHQuYXBwZW5kKCcpJyk7
CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
cmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIFN0cmluZyBDU1NCYXNpY1NoYXBlUG9seWdvbjo6Y3NzVGV4dCgpIGNvbnN0CkBAIC0z
NzcsNyArMzg1LDkgQEAgc3RhdGljIFN0cmluZyBidWlsZEluc2V0U3RyaW5nKGNvbnN0IFN0cmlu
ZyYgdG9wLCBjb25zdCBTdHJpbmcmIHJpZ2h0LCBjb25zdCBTdHIKICAgICAgICAgfQogICAgIH0K
ICAgICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgdXBkYXRlQ29y
bmVyUmFkaXVzV2lkdGhBbmRIZWlnaHQoQ1NTUHJpbWl0aXZlVmFsdWUqIGNvcm5lciwgU3RyaW5n
JiB3aWR0aCwgU3RyaW5nJiBoZWlnaHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTQ2FsY3VsYXRpb25WYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FsY3VsYXRp
b25WYWx1ZS5jcHAKaW5kZXggYjc1ODMwMS4uYjkxYzBmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDYWxjdWxhdGlvblZhbHVlLmNwcApAQCAtMTYyLDcgKzE2Miw5IEBAIHN0YXRpYyBTdHJp
bmcgYnVpbGRDc3NUZXh0KGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbikKICAgICByZXN1bHQuYXBw
ZW5kKGV4cHJlc3Npb24pOwogICAgIGlmIChleHByZXNzaW9uSGFzU2luZ2xlVGVybSkKICAgICAg
ICAgcmVzdWx0LmFwcGVuZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIENTU0NhbGNWYWx1ZTo6Y3VzdG9tQ1NT
VGV4dCgpIGNvbnN0CkBAIC01NjMsNyArNTY1LDkgQEAgcHJpdmF0ZToKICAgICAgICAgfQogICAg
ICAgICByZXN1bHQuYXBwZW5kKCcpJyk7CiAKLSAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmlu
ZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIFN0
cmluZyBjdXN0b21DU1NUZXh0KCkgY29uc3QgZmluYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggZWVhZTQyNi4uMWE0NGQ5
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbi5jcHAKQEAgLTE2OTMsNyArMTY5Myw5IEBAIFN0cmluZyBDU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb246OmNzc1RleHQoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKCc7Jyk7CiAg
ICAgfQogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBFeGNlcHRpb25Pcjx2b2lkPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246
OnNldENzc1RleHQoY29uc3QgU3RyaW5nJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRl
VmFsdWUuY3BwCmluZGV4IDE3MmM5NDUuLjM0M2EwMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0Nyb3NzZmFkZVZhbHVlLmNwcApAQCAtMTAyLDcgKzEwMiw5IEBAIFN0cmluZyBDU1NDcm9zc2Zh
ZGVWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwo
IiwgIik7CiAgICAgcmVzdWx0LmFwcGVuZChtX3BlcmNlbnRhZ2VWYWx1ZS0+Y3NzVGV4dCgpKTsK
ICAgICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBGbG9hdFNpemUgQ1NTQ3Jvc3NmYWRlVmFsdWU6
OmZpeGVkU2l6ZShjb25zdCBSZW5kZXJFbGVtZW50JiByZW5kZXJlcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcAppbmRleCAxYjZkN2YyLi4wZWVlZTA4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwCkBAIC02MSw3ICs2MSw5
IEBAIFN0cmluZyBDU1NDdXJzb3JJbWFnZVZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnICcpOwogICAgICAgICByZXN1bHQuYXBwZW5kTnVtYmVyKG1f
aG90U3BvdC55KCkpOwogICAgIH0KLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIFNWR0N1cnNvckVsZW1lbnQqIENTU0N1cnNvckltYWdl
VmFsdWU6OnVwZGF0ZUN1cnNvckVsZW1lbnQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1c3RvbUlkZW50VmFsdWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0N1c3RvbUlkZW50VmFsdWUuY3BwCmluZGV4IDI2ZDZlM2IuLmY1
ZWViNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXN0b21JZGVudFZhbHVl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3VzdG9tSWRlbnRWYWx1ZS5jcHAKQEAg
LTU2LDcgKzU2LDkgQEAgU3RyaW5nIENTU0N1c3RvbUlkZW50VmFsdWU6OmN1c3RvbUNTU1RleHQo
KSBjb25zdAogICAgICAgICByZXR1cm4gZ2V0UHJvcGVydHlOYW1lQXRvbWljU3RyaW5nKG1fcHJv
cGVydHlJZCk7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIHNlcmlhbGl6ZUlkZW50
aWZpZXIobV9zdHJpbmcsIGJ1aWxkZXIpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHAKaW5kZXggNmFjZjc0NC4u
MjAzMTQwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFs
dWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcApA
QCAtNTMsNyArNTMsOSBAQCBTdHJpbmcgQ1NTRmlsdGVySW1hZ2VWYWx1ZTo6Y3VzdG9tQ1NTVGV4
dCgpIGNvbnN0CiAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIiwgIik7CiAgICAgcmVzdWx0LmFw
cGVuZChtX2ZpbHRlclZhbHVlLT5jc3NUZXh0KCkpOwogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsK
LSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVz
dWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIEZsb2F0U2l6ZSBDU1NGaWx0ZXJJbWFnZVZhbHVlOjpmaXhlZFNpemUoY29uc3QgUmVuZGVy
RWxlbWVudCogcmVuZGVyZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dEZhY2VSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUuY3BwCmlu
ZGV4IDBkZGExYjIuLjg1OTQ2ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250RmFjZVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUu
Y3BwCkBAIC01Nyw3ICs1Nyw5IEBAIFN0cmluZyBDU1NGb250RmFjZVJ1bGU6OmNzc1RleHQoKSBj
b25zdAogICAgIGlmICghZGVzY3MuaXNFbXB0eSgpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCcg
Jyk7CiAgICAgcmVzdWx0LmFwcGVuZCgnfScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBDU1NGb250RmFjZVJ1bGU6OnJl
YXR0YWNoKFN0eWxlUnVsZUJhc2UmIHJ1bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZh
Y2VTcmNWYWx1ZS5jcHAKaW5kZXggODFkOGE3NS4uMmYzNDYxZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcApAQCAtODEsNyArODEsOSBAQCBTdHJpbmcgQ1NT
Rm9udEZhY2VTcmNWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5h
cHBlbmQobV9mb3JtYXQpOwogICAgICAgICByZXN1bHQuYXBwZW5kKCcpJyk7CiAgICAgfQotICAg
IHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAog
Ym9vbCBDU1NGb250RmFjZVNyY1ZhbHVlOjp0cmF2ZXJzZVN1YnJlc291cmNlcyhjb25zdCBXVEY6
OkZ1bmN0aW9uPGJvb2wgKGNvbnN0IENhY2hlZFJlc291cmNlJik+JiBoYW5kbGVyKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGZWF0dXJlVmFsdWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGZWF0dXJlVmFsdWUuY3BwCmluZGV4IDdmZjA3ZjMu
LjQ3NDYyMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmVhdHVyZVZh
bHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZlYXR1cmVWYWx1ZS5jcHAK
QEAgLTUwLDcgKzUwLDkgQEAgU3RyaW5nIENTU0ZvbnRGZWF0dXJlVmFsdWU6OmN1c3RvbUNTU1Rl
eHQoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgICAgICBidWlsZGVy
LmFwcGVuZE51bWJlcihtX3ZhbHVlKTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTRm9udEZlYXR1cmVW
YWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0ZvbnRGZWF0dXJlVmFsdWUmIG90aGVyKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTdHlsZVJhbmdlVmFsdWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTdHlsZVJhbmdlVmFsdWUuY3BwCmluZGV4IDBjZGNk
YmYuLmVhNjY2YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U3R5bGVS
YW5nZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFN0eWxlUmFuZ2VW
YWx1ZS5jcHAKQEAgLTM5LDcgKzM5LDkgQEAgU3RyaW5nIENTU0ZvbnRTdHlsZVJhbmdlVmFsdWU6
OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIGJ1aWxkZXIuYXBwZW5kKGZvbnRTdHlsZVZhbHVl
LT5jc3NUZXh0KCkpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgYnVpbGRlci5hcHBl
bmQob2JsaXF1ZVZhbHVlcy0+Y3NzVGV4dCgpKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDU1NGb250U3R5bGVSYW5n
ZVZhbHVlOjplcXVhbHMoY29uc3QgQ1NTRm9udFN0eWxlUmFuZ2VWYWx1ZSYgb3RoZXIpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFN0eWxlVmFsdWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTdHlsZVZhbHVlLmNwcAppbmRleCAyODUwZTIzLi44
YzRlODU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFN0eWxlVmFsdWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U3R5bGVWYWx1ZS5jcHAKQEAgLTM5
LDcgKzM5LDkgQEAgU3RyaW5nIENTU0ZvbnRTdHlsZVZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29u
c3QKICAgICBidWlsZGVyLmFwcGVuZChmb250U3R5bGVWYWx1ZS0+Y3NzVGV4dCgpKTsKICAgICBi
dWlsZGVyLmFwcGVuZCgnICcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG9ibGlxdWVWYWx1ZS0+Y3Nz
VGV4dCgpKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogYm9vbCBDU1NGb250U3R5bGVWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0Zv
bnRTdHlsZVZhbHVlJiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYWx1ZS5jcHAK
aW5kZXggNzY2YzExMy4uMWNmNzhhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ZvbnRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYWx1ZS5jcHAK
QEAgLTY1LDcgKzY1LDkgQEAgU3RyaW5nIENTU0ZvbnRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNv
bnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoZmFtaWx5LT5jc3NUZXh0KCkpOwogICAgIH0KIAot
ICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1
bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogYm9vbCBDU1NGb250VmFsdWU6OmVxdWFscyhjb25zdCBDU1NGb250VmFsdWUmIG90aGVyKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYXJpYXRpb25WYWx1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFZhcmlhdGlvblZhbHVlLmNwcAppbmRl
eCA3MmRkYzFhLi40ZjkyNWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dFZhcmlhdGlvblZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFZhcmlh
dGlvblZhbHVlLmNwcApAQCAtNDgsNyArNDgsOSBAQCBTdHJpbmcgQ1NTRm9udFZhcmlhdGlvblZh
bHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoYyk7CiAg
ICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcIiAiKTsKICAgICBidWlsZGVyLmFwcGVuZE51bWJl
cihtX3ZhbHVlKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDU1NGb250VmFyaWF0aW9uVmFsdWU6OmVxdWFscyhjb25z
dCBDU1NGb250VmFyaWF0aW9uVmFsdWUmIG90aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0Z1bmN0aW9uVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0Z1bmN0aW9uVmFsdWUuY3BwCmluZGV4IDc1ZWYwYzEuLmJiZGRmZjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NGdW5jdGlvblZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHAKQEAgLTM3LDcgKzM3LDkgQEAgU3RyaW5nIENTU0Z1
bmN0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIHJlc3VsdC5hcHBlbmQoJygn
KTsKICAgICByZXN1bHQuYXBwZW5kKENTU1ZhbHVlTGlzdDo6Y3VzdG9tQ1NTVGV4dCgpKTsKICAg
ICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRW
YWx1ZS5jcHAKaW5kZXggMTcxZDQ3MjYuLmUxNDQzYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
R3JhZGllbnRWYWx1ZS5jcHAKQEAgLTcwMSw3ICs3MDEsOSBAQCBTdHJpbmcgQ1NTTGluZWFyR3Jh
ZGllbnRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgfQogCiAgICAgcmVzdWx0LmFw
cGVuZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogLy8gQ29tcHV0ZSB0aGUgZW5kcG9pbnRzIHNvIHRoYXQgYSBncmFkaWVu
dCBvZiB0aGUgZ2l2ZW4gYW5nbGUgY292ZXJzIGEgYm94IG9mIHRoZSBnaXZlbiBzaXplLgpAQCAt
MTAxOSw3ICsxMDIxLDkgQEAgU3RyaW5nIENTU1JhZGlhbEdyYWRpZW50VmFsdWU6OmN1c3RvbUNT
U1RleHQoKSBjb25zdAogICAgIH0KIAogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKLSAgICByZXR1
cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGZsb2F0
IENTU1JhZGlhbEdyYWRpZW50VmFsdWU6OnJlc29sdmVSYWRpdXMoQ1NTUHJpbWl0aXZlVmFsdWUm
IHJhZGl1cywgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSYgY29udmVyc2lvbkRhdGEs
IGZsb2F0KiB3aWR0aE9ySGVpZ2h0KQpAQCAtMTM0Nyw3ICsxMzUxLDkgQEAgU3RyaW5nIENTU0Nv
bmljR3JhZGllbnRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgfQogICAgIAogICAg
IHJlc3VsdC5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIFJlZjxHcmFkaWVudD4gQ1NTQ29uaWNHcmFkaWVudFZh
bHVlOjpjcmVhdGVHcmFkaWVudChSZW5kZXJFbGVtZW50JiwgY29uc3QgRmxvYXRTaXplJikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNwcAppbmRleCBkNWJj
NDQ5Li5mZDc5MGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZEF1dG9S
ZXBlYXRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRBdXRvUmVwZWF0
VmFsdWUuY3BwCkBAIC00Myw3ICs0Myw5IEBAIFN0cmluZyBDU1NHcmlkQXV0b1JlcGVhdFZhbHVl
OjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICByZXN1bHQuYXBwZW5kKCIsICIpOwogICAgIHJl
c3VsdC5hcHBlbmQoQ1NTVmFsdWVMaXN0OjpjdXN0b21DU1NUZXh0KCkpOwogICAgIHJlc3VsdC5h
cHBlbmQoJyknKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcAppbmRleCBlMGI3ODY1Li44YmMz
ZmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNW
YWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFs
dWUuY3BwCkBAIC04MCw3ICs4MCw5IEBAIFN0cmluZyBDU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVl
OjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgaWYgKHJvdyAhPSBtX3Jvd0NvdW50IC0g
MSkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgfQotICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENT
U0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWU6OmVxdWFscyhjb25zdCBDU1NHcmlkVGVtcGxhdGVBcmVh
c1ZhbHVlJiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJ
bWFnZVNldFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNw
cAppbmRleCBhOTdkYzIxLi5lMzc1MGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTSW1hZ2VTZXRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0
VmFsdWUuY3BwCkBAIC0xNDYsNyArMTQ2LDkgQEAgU3RyaW5nIENTU0ltYWdlU2V0VmFsdWU6OmN1
c3RvbUNTU1RleHQoKSBjb25zdAogICAgIH0KIAogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKLSAg
ICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IGJvb2wgQ1NTSW1hZ2VTZXRWYWx1ZTo6dHJhdmVyc2VTdWJyZXNvdXJjZXMoY29uc3QgV1RGOjpG
dW5jdGlvbjxib29sIChjb25zdCBDYWNoZWRSZXNvdXJjZSYpPiYgaGFuZGxlcikgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmNwcAppbmRleCA0YzY2NjEzLi5mOWFhZWVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVsZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUuY3BwCkBAIC03Miw3ICs3Miw5IEBAIFN0cmluZyBD
U1NJbXBvcnRSdWxlOjpjc3NUZXh0KCkgY29uc3QKICAgICB9CiAgICAgcmVzdWx0LmFwcGVuZCgn
OycpOwogICAgIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogQ1NTU3R5bGVTaGVldCogQ1NTSW1wb3J0UnVsZTo6c3R5bGVTaGVldCgp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVSdWxlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZVJ1bGUuY3BwCmluZGV4IDgxZTk5NTgu
LmRjYTNmNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZVJ1bGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZVJ1bGUuY3BwCkBAIC02Nyw3
ICs2Nyw5IEBAIFN0cmluZyBTdHlsZVJ1bGVLZXlmcmFtZTo6a2V5VGV4dCgpIGNvbnN0CiAgICAg
ICAgIGtleVRleHQuYXBwZW5kKCclJyk7CiAgICAgfQogCi0gICAgcmV0dXJuIGtleVRleHQudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBrZXlUZXh0LnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAgICAgCiBib29sIFN0eWxlUnVs
ZUtleWZyYW1lOjpzZXRLZXlUZXh0KGNvbnN0IFN0cmluZyYga2V5VGV4dCkKQEAgLTkwLDcgKzky
LDkgQEAgU3RyaW5nIFN0eWxlUnVsZUtleWZyYW1lOjpjc3NUZXh0KCkgY29uc3QKICAgICBpZiAo
IWRlY2xzLmlzRW1wdHkoKSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICcpOwogICAgIHJlc3Vs
dC5hcHBlbmQoJ30nKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKIENTU0tleWZyYW1lUnVsZTo6Q1NTS2V5ZnJhbWVSdWxlKFN0eWxl
UnVsZUtleWZyYW1lJiBrZXlmcmFtZSwgQ1NTS2V5ZnJhbWVzUnVsZSogcGFyZW50KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lc1J1bGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0tleWZyYW1lc1J1bGUuY3BwCmluZGV4IDlmMDAwZDkuLjc3YjE4MjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZXNSdWxlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVzUnVsZS5jcHAKQEAgLTE5OCw3ICsxOTgsOSBA
QCBTdHJpbmcgQ1NTS2V5ZnJhbWVzUnVsZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJ1xuJyk7CiAgICAgfQogICAgIHJlc3VsdC5hcHBlbmQoJ30nKTsKLSAgICByZXR1
cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHVuc2ln
bmVkIENTU0tleWZyYW1lc1J1bGU6Omxlbmd0aCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTTGluZUJveENvbnRhaW5WYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTTGluZUJveENvbnRhaW5WYWx1ZS5jcHAKaW5kZXggMTlmZGY4Yi4uM2RlYjNiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xpbmVCb3hDb250YWluVmFsdWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMaW5lQm94Q29udGFpblZhbHVlLmNwcApAQCAtNzMs
NyArNzMsOSBAQCBTdHJpbmcgQ1NTTGluZUJveENvbnRhaW5WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgp
IGNvbnN0CiAgICAgICAgIHRleHQuYXBwZW5kTGl0ZXJhbCgiaW5pdGlhbC1sZXR0ZXIiKTsKICAg
ICB9CiAKLSAgICByZXR1cm4gdGV4dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHRleHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU01hcmt1cC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWFya3VwLmNwcAppbmRleCA4MWZlODg4Li42MDljNzEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWFya3VwLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTTWFya3VwLmNwcApAQCAtMTg2LDcgKzE4Niw5IEBAIFN0cmluZyBzZXJp
YWxpemVTdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOwogICAgIHNlcmlhbGl6ZVN0cmluZyhzdHJpbmcsIGJ1aWxkZXIpOwotICAgIHJldHVy
biBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJp
bmcgc2VyaWFsaXplVVJMKGNvbnN0IFN0cmluZyYgc3RyaW5nKQpAQCAtMjA0LDcgKzIwNiw5IEBA
IFN0cmluZyBzZXJpYWxpemVBc1N0cmluZ09yQ3VzdG9tSWRlbnQoY29uc3QgU3RyaW5nJiBzdHJp
bmcpCiAgICAgaWYgKGlzQ1NTVG9rZW5pemVySWRlbnRpZmllcihzdHJpbmcpKSB7CiAgICAgICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgc2VyaWFsaXplSWRlbnRpZmllcihzdHJp
bmcsIGJ1aWxkZXIpOwotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgcmV0dXJuIHNlcmlhbGl6
ZVN0cmluZyhzdHJpbmcpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU01l
ZGlhUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmNwcAppbmRleCBi
MDk0ZWRkLi4xNzRmNWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWVkaWFS
dWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmNwcApAQCAtNTcs
NyArNTcsOSBAQCBTdHJpbmcgQ1NTTWVkaWFSdWxlOjpjc3NUZXh0KCkgY29uc3QKICAgICByZXN1
bHQuYXBwZW5kTGl0ZXJhbCgieyBcbiIpOwogICAgIGFwcGVuZENzc1RleHRGb3JJdGVtcyhyZXN1
bHQpOwogICAgIHJlc3VsdC5hcHBlbmQoJ30nKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIE1lZGlhTGlzdCogQ1NTTWVkaWFSdWxl
OjptZWRpYSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTmFtZXNw
YWNlUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTmFtZXNwYWNlUnVsZS5jcHAKaW5k
ZXggM2QzZWM2Zi4uNzA2ODk3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU05h
bWVzcGFjZVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NOYW1lc3BhY2VSdWxl
LmNwcApAQCAtNjAsNyArNjAsOSBAQCBTdHJpbmcgQ1NTTmFtZXNwYWNlUnVsZTo6Y3NzVGV4dCgp
IGNvbnN0CiAgICAgcmVzdWx0LmFwcGVuZCgidXJsKCIpOwogICAgIHJlc3VsdC5hcHBlbmQoc2Vy
aWFsaXplU3RyaW5nKG5hbWVzcGFjZVVSSSgpKSk7CiAgICAgcmVzdWx0LmFwcGVuZCgiKTsiKTsK
LSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVz
dWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIHZvaWQgQ1NTTmFtZXNwYWNlUnVsZTo6cmVhdHRhY2goU3R5bGVSdWxlQmFzZSYpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFnZVJ1bGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhZ2VSdWxlLmNwcAppbmRleCA0N2NmNDU2Li5lNjlkYTVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFnZVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYWdlUnVsZS5jcHAKQEAgLTY0LDcgKzY0LDkgQEAgU3RyaW5nIENTU1BhZ2VSdWxl
OjpzZWxlY3RvclRleHQoKSBjb25zdAogICAgICAgICAgICAgdGV4dC5hcHBlbmQocGFnZVNwZWNp
ZmljYXRpb24pOwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiB0ZXh0LnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdGV4dC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIENTU1BhZ2VSdWxlOjpzZXRTZWxlY3Rv
clRleHQoY29uc3QgU3RyaW5nJiBzZWxlY3RvclRleHQpCkBAIC05MCw3ICs5Miw5IEBAIFN0cmlu
ZyBDU1NQYWdlUnVsZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgaWYgKCFkZWNscy5pc0VtcHR5KCkp
CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAnKTsKICAgICByZXN1bHQuYXBwZW5kKCd9Jyk7Ci0g
ICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3Vs
dC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiB2b2lkIENTU1BhZ2VSdWxlOjpyZWF0dGFjaChTdHlsZVJ1bGVCYXNlJiBydWxlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKaW5kZXggYTc2MTI3Ni4uODNlMTZlMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCkBAIC0xMDQ1LDcgKzEw
NDUsOSBAQCBBTFdBWVNfSU5MSU5FIFN0cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6Zm9ybWF0TnVt
YmVyRm9yQ3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoU3RyaW5n
KG1fdmFsdWUuc3RyaW5nKSk7CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKIAotICAgICAg
ICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJl
c3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENS
QVNIKCk7CiAgICAgfQogICAgIGNhc2UgQ1NTX0NPVU5URVJfTkFNRToKICAgICAgICAgcmV0dXJu
ICJjb3VudGVyKCIgKyBTdHJpbmcobV92YWx1ZS5zdHJpbmcpICsgJyknOwpAQCAtMTA2OSw3ICsx
MDcxLDkgQEAgQUxXQVlTX0lOTElORSBTdHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6OmZvcm1hdE51
bWJlckZvckN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAgICB9CiAgICAgICAgIHJlc3VsdC5h
cHBlbmQoJyknKTsKIAotICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIGNhc2UgQ1NTX1JFQ1Q6CiAg
ICAgICAgIHJldHVybiByZWN0VmFsdWUoKS0+Y3NzVGV4dCgpOwpAQCAtMTExMiw3ICsxMTE2LDkg
QEAgQUxXQVlTX0lOTElORSBTdHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6OmZvcm1hdE51bWJlckZv
ckN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmVzdWx0
LmFwcGVuZCgnKScpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmco
KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAjZW5kaWYKICAg
ICBjYXNlIENTU19DQUxDOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3Bl
cnR5U291cmNlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlTb3VyY2VE
YXRhLmNwcAppbmRleCA3NWI3OTkwLi5mZDJlODJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUHJvcGVydHlTb3VyY2VEYXRhLmNwcApAQCAtOTYsNyArOTYsOSBAQCBTdHJpbmcgQ1NTUHJv
cGVydHlTb3VyY2VEYXRhOjp0b1N0cmluZygpIGNvbnN0CiAgICAgaWYgKGltcG9ydGFudCkKICAg
ICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIiAhaW1wb3J0YW50Iik7CiAgICAgcmVzdWx0LmFw
cGVuZCgnOycpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogdW5zaWduZWQgQ1NTUHJvcGVydHlTb3VyY2VEYXRhOjpoYXNoKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCmluZGV4IDFmZTQyY2QuLjU2YmZjMmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcApAQCAtNzI2LDI2ICs3MjYsMzEgQEAgU3RyaW5n
IENTU1NlbGVjdG9yOjpzZWxlY3RvclRleHQoY29uc3QgU3RyaW5nJiByaWdodFNpZGUpIGNvbnN0
CiAgICAgICAgIGNzID0gY3MtPnRhZ0hpc3RvcnkoKTsKICAgICB9CiAKKyAgICBTdHJpbmcgc3Ry
aW5nOworICAgIGlmIChhdXRvIHMgPSBzdHIudG9TdHJpbmcoKSkKKyAgICAgICAgc3RyaW5nID0g
KnM7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIGlmIChjb25zdCBDU1NTZWxlY3Rv
ciogdGFnSGlzdG9yeSA9IGNzLT50YWdIaXN0b3J5KCkpIHsKICAgICAgICAgc3dpdGNoIChjcy0+
cmVsYXRpb24oKSkgewogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpEZXNjZW5kYW50U3BhY2U6
Ci0gICAgICAgICAgICByZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0b3JUZXh0KCIgIiArIHN0ci50
b1N0cmluZygpICsgcmlnaHRTaWRlKTsKKyAgICAgICAgICAgIHJldHVybiB0YWdIaXN0b3J5LT5z
ZWxlY3RvclRleHQoIiAiICsgc3RyaW5nICsgcmlnaHRTaWRlKTsKICAgICAgICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6Q2hpbGQ6Ci0gICAgICAgICAgICByZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0b3JU
ZXh0KCIgPiAiICsgc3RyLnRvU3RyaW5nKCkgKyByaWdodFNpZGUpOworICAgICAgICAgICAgcmV0
dXJuIHRhZ0hpc3RvcnktPnNlbGVjdG9yVGV4dCgiID4gIiArIHN0cmluZyArIHJpZ2h0U2lkZSk7
CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkRpcmVjdEFkamFjZW50OgotICAgICAgICAgICAg
cmV0dXJuIHRhZ0hpc3RvcnktPnNlbGVjdG9yVGV4dCgiICsgIiArIHN0ci50b1N0cmluZygpICsg
cmlnaHRTaWRlKTsKKyAgICAgICAgICAgIHJldHVybiB0YWdIaXN0b3J5LT5zZWxlY3RvclRleHQo
IiArICIgKyBzdHJpbmcgKyByaWdodFNpZGUpOwogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpJ
bmRpcmVjdEFkamFjZW50OgotICAgICAgICAgICAgcmV0dXJuIHRhZ0hpc3RvcnktPnNlbGVjdG9y
VGV4dCgiIH4gIiArIHN0ci50b1N0cmluZygpICsgcmlnaHRTaWRlKTsKKyAgICAgICAgICAgIHJl
dHVybiB0YWdIaXN0b3J5LT5zZWxlY3RvclRleHQoIiB+ICIgKyBzdHJpbmcgKyByaWdodFNpZGUp
OwogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpTdWJzZWxlY3RvcjoKICAgICAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogI2lmIEFTU0VSVF9ESVNBQkxFRAogICAgICAgICAgICAgRkFM
TFRIUk9VR0g7CiAjZW5kaWYKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6U2hhZG93RGVzY2Vu
ZGFudDoKLSAgICAgICAgICAgIHJldHVybiB0YWdIaXN0b3J5LT5zZWxlY3RvclRleHQoc3RyLnRv
U3RyaW5nKCkgKyByaWdodFNpZGUpOworICAgICAgICAgICAgcmV0dXJuIHRhZ0hpc3RvcnktPnNl
bGVjdG9yVGV4dChzdHJpbmcgKyByaWdodFNpZGUpOwogICAgICAgICB9CiAgICAgfQotICAgIHJl
dHVybiBzdHIudG9TdHJpbmcoKSArIHJpZ2h0U2lkZTsKKyAgICByZXR1cm4gc3RyaW5nICsgcmln
aHRTaWRlOwogfQogCiB2b2lkIENTU1NlbGVjdG9yOjpzZXRBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdmFsdWUsIGJvb2wgaXNDYXNlSW5zZW5zaXRpdmUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTZWxlY3Rvckxpc3QuY3BwCmluZGV4IDU3ZWZhNjcuLmFlMzMwMGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTZWxlY3Rvckxpc3QuY3BwCkBAIC0xMzgsNyArMTM4LDkgQEAgU3RyaW5nIENTU1Nl
bGVjdG9yTGlzdDo6c2VsZWN0b3JzVGV4dCgpIGNvbnN0CiB7CiAgICAgU3RyaW5nQnVpbGRlciBy
ZXN1bHQ7CiAgICAgYnVpbGRTZWxlY3RvcnNUZXh0KHJlc3VsdCk7Ci0gICAgcmV0dXJuIHJlc3Vs
dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIENTU1NlbGVj
dG9yTGlzdDo6YnVpbGRTZWxlY3RvcnNUZXh0KFN0cmluZ0J1aWxkZXImIHN0cmluZ0J1aWxkZXIp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2hhZG93VmFsdWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NoYWRvd1ZhbHVlLmNwcAppbmRleCA5NDk0N2Q3Li5l
MjljODVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2hhZG93VmFsdWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTaGFkb3dWYWx1ZS5jcHAKQEAgLTY5LDcgKzY5
LDkgQEAgU3RyaW5nIENTU1NoYWRvd1ZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAg
ICAgdGV4dC5hcHBlbmQoc3R5bGUtPmNzc1RleHQoKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIHRl
eHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0ZXh0LnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTU2hhZG93
VmFsdWU6OmVxdWFscyhjb25zdCBDU1NTaGFkb3dWYWx1ZSYgb3RoZXIpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZVJ1bGUuY3BwCmluZGV4IGJiOGQyMWMuLjU4MDhmZDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZVJ1bGUuY3BwCkBAIC0xMjAsNyArMTIwLDkgQEAgU3RyaW5nIENTU1N0eWxl
UnVsZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgaWYgKCFkZWNscy5pc0VtcHR5KCkpCiAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyAnKTsKICAgICByZXN1bHQuYXBwZW5kKCd9Jyk7Ci0gICAgcmV0dXJu
IHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIENT
U1N0eWxlUnVsZTo6cmVhdHRhY2goU3R5bGVSdWxlQmFzZSYgcnVsZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVNoZWV0LmNwcAppbmRleCAxZWNjNWJhLi44Njk4NGZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlU2hlZXQuY3BwCkBAIC0zMTYsOSArMzE2LDEyIEBAIEV4Y2VwdGlvbk9yPGludD4g
Q1NTU3R5bGVTaGVldDo6YWRkUnVsZShjb25zdCBTdHJpbmcmIHNlbGVjdG9yLCBjb25zdCBTdHJp
bmcmIHN0CiAgICAgaWYgKCFzdHlsZS5pc0VtcHR5KCkpCiAgICAgICAgIHRleHQuYXBwZW5kKCcg
Jyk7CiAgICAgdGV4dC5hcHBlbmQoJ30nKTsKLSAgICBhdXRvIGluc2VydFJ1bGVSZXN1bHQgPSBp
bnNlcnRSdWxlKHRleHQudG9TdHJpbmcoKSwgaW5kZXgudmFsdWVfb3IobGVuZ3RoKCkpKTsKLSAg
ICBpZiAoaW5zZXJ0UnVsZVJlc3VsdC5oYXNFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIGlu
c2VydFJ1bGVSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHRleHQudG9TdHJpbmcoKSkgeworICAgICAgICBhdXRvIGluc2VydFJ1bGVSZXN1bHQgPSBpbnNl
cnRSdWxlKCpzdHJpbmcsIGluZGV4LnZhbHVlX29yKGxlbmd0aCgpKSk7CisgICAgICAgIGlmIChp
bnNlcnRSdWxlUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIGluc2Vy
dFJ1bGVSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOworICAgIH0gZWxzZQorICAgICAgICBDUkFT
SCgpOwogICAgIAogICAgIC8vIEFzIHBlciBNaWNyb3NvZnQgZG9jdW1lbnRhdGlvbiwgYWx3YXlz
IHJldHVybiAtMS4KICAgICByZXR1cm4gLTE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU3VwcG9ydHNSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdXBwb3J0c1J1
bGUuY3BwCmluZGV4IGUxM2UxM2IuLmZjYmUzMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTdXBwb3J0c1J1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdXBw
b3J0c1J1bGUuY3BwCkBAIC01MCw3ICs1MCw5IEBAIFN0cmluZyBDU1NTdXBwb3J0c1J1bGU6OmNz
c1RleHQoKSBjb25zdAogICAgIGFwcGVuZENzc1RleHRGb3JJdGVtcyhyZXN1bHQpOwogICAgIHJl
c3VsdC5hcHBlbmQoJ30nKTsKIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIENTU1N1cHBvcnRzUnVsZTo6Y29uZGl0aW9u
VGV4dCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVGltaW5nRnVu
Y3Rpb25WYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVGltaW5nRnVuY3Rpb25WYWx1
ZS5jcHAKaW5kZXggOTBlZjZjZC4uMDkyODgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NUaW1pbmdGdW5jdGlvblZhbHVlLmNwcApAQCAtNDIsNyArNDIsOSBAQCBTdHJpbmcgQ1NTQ3Vi
aWNCZXppZXJUaW1pbmdGdW5jdGlvblZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgIik7CiAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV95
Mik7CiAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsgICAgCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTQ3ViaWNCZXpp
ZXJUaW1pbmdGdW5jdGlvblZhbHVlOjplcXVhbHMoY29uc3QgQ1NTQ3ViaWNCZXppZXJUaW1pbmdG
dW5jdGlvblZhbHVlJiBvdGhlcikgY29uc3QKQEAgLTU5LDcgKzYxLDkgQEAgU3RyaW5nIENTU1N0
ZXBzVGltaW5nRnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCBzdGFydCkiKTsKICAgICBlbHNlCiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiLCBlbmQpIik7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTU3RlcHNUaW1pbmdGdW5j
dGlvblZhbHVlOjplcXVhbHMoY29uc3QgQ1NTU3RlcHNUaW1pbmdGdW5jdGlvblZhbHVlJiBvdGhl
cikgY29uc3QKQEAgLTczLDcgKzc3LDkgQEAgU3RyaW5nIENTU0ZyYW1lc1RpbWluZ0Z1bmN0aW9u
VmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
ZnJhbWVzKCIpOwogICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fZnJhbWVzKTsKICAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIikiKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDU1NGcmFtZXNUaW1pbmdGdW5jdGlv
blZhbHVlOjplcXVhbHMoY29uc3QgQ1NTRnJhbWVzVGltaW5nRnVuY3Rpb25WYWx1ZSYgb3RoZXIp
IGNvbnN0CkBAIC05Myw3ICs5OSw5IEBAIFN0cmluZyBDU1NTcHJpbmdUaW1pbmdGdW5jdGlvblZh
bHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAg
IGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1faW5pdGlhbFZlbG9jaXR5KTsKICAgICBidWlsZGVyLmFw
cGVuZCgnKScpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBib29sIENTU1NwcmluZ1RpbWluZ0Z1bmN0aW9uVmFsdWU6OmVxdWFs
cyhjb25zdCBDU1NTcHJpbmdUaW1pbmdGdW5jdGlvblZhbHVlJiBvdGhlcikgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAKaW5kZXggYjZlMGMyYzUuLjMwOTBlMzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NWYWx1ZUxpc3QuY3BwCkBAIC0xMDcsNyArMTA3LDkgQEAgU3RyaW5nIENTU1Zh
bHVlTGlzdDo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQodmFs
dWUuZ2V0KCkuY3NzVGV4dCgpKTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTVmFsdWVMaXN0OjplcXVh
bHMoY29uc3QgQ1NTVmFsdWVMaXN0JiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NWYXJpYWJsZURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Zh
cmlhYmxlRGF0YS5jcHAKaW5kZXggOThjOWQwOS4uMzExOGRlOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ZhcmlhYmxlRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ZhcmlhYmxlRGF0YS5jcHAKQEAgLTY4LDcgKzY4LDEwIEBAIHZvaWQgQ1NTVmFyaWFibGVE
YXRhOjpjb25zdW1lQW5kVXBkYXRlVG9rZW5zKGNvbnN0IENTU1BhcnNlclRva2VuUmFuZ2UmIHJh
bmdlKQogICAgICAgICBpZiAodG9rZW4uaGFzU3RyaW5nQmFja2luZygpKQogICAgICAgICAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmQodG9rZW4udmFsdWUoKSk7CiAgICAgfQotICAgIG1fYmFja2lu
Z1N0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIG1fYmFja2luZ1N0cmluZyA9ICpz
dHJpbmc7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIGlmIChtX2JhY2tpbmdTdHJp
bmcuaXM4Qml0KCkpCiAgICAgICAgIHVwZGF0ZVRva2VuczxMQ2hhcj4ocmFuZ2UpOwogICAgIGVs
c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZS5jcHAKaW5kZXggOTEzNTIzNy4uY2Ux
NWQ2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZS5jcHAKQEAgLTg0LDcgKzg0
LDkgQEAgU3RyaW5nIERPTUNTU05hbWVzcGFjZTo6ZXNjYXBlKGNvbnN0IFN0cmluZyYgaWRlbnQp
CiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIHNlcmlhbGl6ZUlkZW50aWZpZXIo
aWRlbnQsIGJ1aWxkZXIpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
RE9NTWF0cml4UmVhZE9ubHkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeFJlYWRP
bmx5LmNwcAppbmRleCBmNzRiNDY1Li43ODgyMjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvRE9NTWF0cml4UmVhZE9ubHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01N
YXRyaXhSZWFkT25seS5jcHAKQEAgLTQ1MCw3ICs0NTAsOSBAQCBFeGNlcHRpb25PcjxTdHJpbmc+
IERPTU1hdHJpeFJlYWRPbmx5Ojp0b1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKFN0cmluZzo6bnVtYmVyVG9TdHJpbmdFQ01BU2NyaXB0KG1fbWF0cml4Lm00NCgpKSk7CiAg
ICAgfQogICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiBXVEZNb3ZlKCpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NT
T01WYWx1ZUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVl
TGlzdC5jcHAKaW5kZXggZTQ5Njg4NC4uNWU5OGUyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAKQEAgLTU0LDcgKzU0LDkgQEAgU3RyaW5n
IERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdDo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgICAgIHJlc3Vs
dC5hcHBlbmQodmFsdWUuZ2V0KCkuY3NzVGV4dCgpKTsKICAgICB9CiAgICAgCi0gICAgcmV0dXJu
IHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0ZvbnRGYWNlLmNwcAppbmRleCA1ODFmNWU4Li5jMjU4NmE3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250
RmFjZS5jcHAKQEAgLTMyOCw3ICszMjgsOSBAQCBTdHJpbmcgRm9udEZhY2U6OnN0eWxlKCkgY29u
c3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
bWF4aW11bU5vbktleXdvcmQtPm9ibGlxdWVWYWx1ZS0+Y3NzVGV4dCgpKTsKICAgICB9Ci0gICAg
cmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IFN0cmluZyBGb250RmFjZTo6d2VpZ2h0KCkgY29uc3QKQEAgLTM0OSw3ICszNTEsOSBAQCBTdHJp
bmcgRm9udEZhY2U6OndlaWdodCgpIGNvbnN0CiAgICAgYnVpbGRlci5hcHBlbmQobWluaW11bU5v
bktleXdvcmQtPmNzc1RleHQoKSk7CiAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICBidWls
ZGVyLmFwcGVuZChtYXhpbXVtTm9uS2V5d29yZC0+Y3NzVGV4dCgpKTsKLSAgICByZXR1cm4gYnVp
bGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIEZv
bnRGYWNlOjpzdHJldGNoKCkgY29uc3QKQEAgLTM3MCw3ICszNzQsOSBAQCBTdHJpbmcgRm9udEZh
Y2U6OnN0cmV0Y2goKSBjb25zdAogICAgIGJ1aWxkZXIuYXBwZW5kKG1pbmltdW1Ob25LZXl3b3Jk
LT5jc3NUZXh0KCkpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgYnVpbGRlci5hcHBl
bmQobWF4aW11bU5vbktleXdvcmQtPmNzc1RleHQoKSk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBGb250RmFjZTo6
dW5pY29kZVJhbmdlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRp
YUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAKaW5kZXggNDU3NTBh
Zi4uNDI2OTQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAKQEAgLTE1MSw3ICsxNTEsOSBA
QCBTdHJpbmcgTWVkaWFRdWVyeVNldDo6bWVkaWFUZXh0KCkgY29uc3QKICAgICAgICAgdGV4dC5h
cHBlbmQocXVlcnkuY3NzVGV4dCgpKTsKICAgICAgICAgbmVlZENvbW1hID0gdHJ1ZTsKICAgICB9
Ci0gICAgcmV0dXJuIHRleHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0ZXh0
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IHZvaWQgTWVkaWFRdWVyeVNldDo6c2hyaW5rVG9GaXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnku
Y3BwCmluZGV4IDlkMGJhZGYuLjQwNzBkN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9NZWRpYVF1ZXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5jcHAK
QEAgLTY2LDcgKzY2LDkgQEAgU3RyaW5nIE1lZGlhUXVlcnk6OnNlcmlhbGl6ZSgpIGNvbnN0CiAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoZXhwcmVzc2lvbi5zZXJpYWxpemUoKSk7CiAgICAgICAgIG5l
ZWRzQW5kID0gdHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBNZWRpYVF1ZXJ5OjpNZWRpYVF1ZXJ5KFJlc3RyaWN0
b3IgcmVzdHJpY3RvciwgY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUsIFZlY3RvcjxNZWRpYVF1ZXJ5
RXhwcmVzc2lvbj4mJiBleHByZXNzaW9ucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9NZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUV4cHJlc3Npb24uY3BwCmluZGV4IDJkOGU1ZjAuLmUwYTIyZjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcApAQCAtMjQ0LDcgKzI0NCwxMCBAQCBTdHJp
bmcgTWVkaWFRdWVyeUV4cHJlc3Npb246OnNlcmlhbGl6ZSgpIGNvbnN0CiAgICAgfQogICAgIHJl
c3VsdC5hcHBlbmQoJyknKTsKIAotICAgIG1fc2VyaWFsaXphdGlvbkNhY2hlID0gcmVzdWx0LnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAg
ICAgIG1fc2VyaWFsaXphdGlvbkNhY2hlID0gKnN0cmluZzsKKyAgICBlbHNlCisgICAgICAgIENS
QVNIKCk7CiAgICAgcmV0dXJuIG1fc2VyaWFsaXphdGlvbkNhY2hlOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvUmVjdC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1JlY3QuaApp
bmRleCBlYzFhYWU4Li5kZmFlMTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUmVj
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SZWN0LmgKQEAgLTEwMyw3ICsxMDMsOSBAQCBw
cml2YXRlOgogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAg
ICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAg
IENSQVNIKCk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNw
cAppbmRleCAzYzhjZTQzLi5iZmYxNzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0
aWVzLmNwcApAQCAtMzQzLDcgKzM0Myw5IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmZvbnRW
YWx1ZSgpIGNvbnN0CiAgICAgcmVzdWx0LmFwcGVuZChmb250RmFtaWx5UHJvcGVydHkudmFsdWUo
KS0+Y3NzVGV4dCgpKTsKICAgICBpZiAoaXNJbml0aWFsT3JJbmhlcml0KGNvbW1vblZhbHVlKSkK
ICAgICAgICAgcmV0dXJuIGNvbW1vblZhbHVlOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIFN0eWxlUHJvcGVydGllczo6
Z2V0NFZhbHVlcyhjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBzaG9ydGhhbmQpIGNvbnN0
CkBAIC0zOTcsNyArMzk5LDkgQEAgU3RyaW5nIFN0eWxlUHJvcGVydGllczo6Z2V0NFZhbHVlcyhj
b25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBzaG9ydGhhbmQpIGNvbnMKICAgICAgICAgcmVz
dWx0LmFwcGVuZCgnICcpOwogICAgICAgICByZXN1bHQuYXBwZW5kKGxlZnQudmFsdWUoKS0+Y3Nz
VGV4dCgpKTsKICAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpnZXRMYXllcmVkU2hv
cnRoYW5kVmFsdWUoY29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYgc2hvcnRoYW5kKSBjb25z
dApAQCAtNTQzLDcgKzU0Nyw5IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldExheWVyZWRT
aG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBzCiAKICAgICBpZiAo
cmVzdWx0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwotICAgIHJldHVybiBy
ZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIFN0
eWxlUHJvcGVydGllczo6Z2V0U2hvcnRoYW5kVmFsdWUoY29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0
aGFuZCYgc2hvcnRoYW5kKSBjb25zdApAQCAtNTcyLDcgKzU3OCw5IEBAIFN0cmluZyBTdHlsZVBy
b3BlcnRpZXM6OmdldFNob3J0aGFuZFZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQm
IHNob3J0aGFuCiAgICAgICAgIHJldHVybiBjb21tb25WYWx1ZTsKICAgICBpZiAocmVzdWx0Lmlz
RW1wdHkoKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwotICAgIHJldHVybiByZXN1bHQudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogLy8gb25seSByZXR1cm5zIGEg
bm9uLW51bGwgdmFsdWUgaWYgYWxsIHByb3BlcnRpZXMgaGF2ZSB0aGUgc2FtZSwgbm9uLW51bGwg
dmFsdWUKQEAgLTYzNCw3ICs2NDIsMTEgQEAgU3RyaW5nIFN0eWxlUHJvcGVydGllczo6Ym9yZGVy
UHJvcGVydHlWYWx1ZShDb21tb25WYWx1ZU1vZGUgdmFsdWVNb2RlKSBjb25zdAogICAgIH0KICAg
ICBpZiAoaXNJbml0aWFsT3JJbmhlcml0KGNvbW1vblZhbHVlKSkKICAgICAgICAgcmV0dXJuIGNv
bW1vblZhbHVlOwotICAgIHJldHVybiByZXN1bHQuaXNFbXB0eSgpID8gU3RyaW5nKCkgOiByZXN1
bHQudG9TdHJpbmcoKTsKKyAgICBpZiAocmVzdWx0LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
IFN0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBSZWZQdHI8Q1NTVmFsdWU+
IFN0eWxlUHJvcGVydGllczo6Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3Bl
cnR5SUQpIGNvbnN0CkBAIC0xMTQ2LDcgKzExNTgsOSBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVz
Ojphc1RleHQoKSBjb25zdAogICAgIH0KIAogICAgIEFTU0VSVCghbnVtRGVjbHMgXiAhcmVzdWx0
LmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBib29sIFN0eWxlUHJvcGVydGllczo6aGFzQ1NTT01XcmFwcGVyKCkg
Y29uc3QKQEAgLTE0MDMsNyArMTQxNyw5IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OlByb3Bl
cnR5UmVmZXJlbmNlOjpjc3NUZXh0KCkgY29uc3QKICAgICBpZiAoaXNJbXBvcnRhbnQoKSkKICAg
ICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIiAhaW1wb3J0YW50Iik7CiAgICAgcmVzdWx0LmFw
cGVuZCgnOycpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KICAgICAKIFJlZjxEZWZlcnJlZFN0eWxlUHJvcGVydGllcz4gRGVmZXJyZWRT
dHlsZVByb3BlcnRpZXM6OmNyZWF0ZShjb25zdCBDU1NQYXJzZXJUb2tlblJhbmdlJiB0b2tlblJh
bmdlLCBDU1NEZWZlcnJlZFBhcnNlciYgcGFyc2VyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL1dlYktpdENTU01hdHJpeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NT
TWF0cml4LmNwcAppbmRleCA3YmRlNjRkLi4xZjc4ZDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2Vi
S2l0Q1NTTWF0cml4LmNwcApAQCAtMjQ5LDcgKzI0OSw5IEBAIEV4Y2VwdGlvbk9yPFN0cmluZz4g
V2ViS2l0Q1NTTWF0cml4Ojp0b1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KFN0cmluZzo6bnVtYmVyVG9TdHJpbmdFQ01BU2NyaXB0KG1fbWF0cml4Lm00NCgpKSk7CiAgICAg
fQogICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiBXVEZNb3ZlKCpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NWaWV3cG9y
dFJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHAK
aW5kZXggY2JkMTcyZi4uZGU2ZWM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1dl
YktpdENTU1ZpZXdwb3J0UnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENT
U1ZpZXdwb3J0UnVsZS5jcHAKQEAgLTcyLDcgKzcyLDkgQEAgU3RyaW5nIFdlYktpdENTU1ZpZXdw
b3J0UnVsZTo6Y3NzVGV4dCgpIGNvbnN0CiAKICAgICByZXN1bHQuYXBwZW5kKCd9Jyk7CiAKLSAg
ICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IHZvaWQgV2ViS2l0Q1NTVmlld3BvcnRSdWxlOjpyZWF0dGFjaChTdHlsZVJ1bGVCYXNlJiBydWxl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwCmluZGV4IDk1NGFiMDguLmVj
YmZhYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAKQEAgLTI5OSwx
MCArMjk5LDEzIEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUZvbnRGYWNlRGVz
Y3JpcHRvcihDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIGNvCiAgICAgYnVpbGRlci5hcHBlbmRM
aXRlcmFsKCIgOiAiKTsKICAgICBidWlsZGVyLmFwcGVuZChwcm9wZXJ0eVZhbHVlKTsKICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIjsgfSIpOwotICAgIFJlZlB0cjxTdHlsZVJ1bGVCYXNlPiBy
dWxlID0gcGFyc2VSdWxlKGNvbnRleHQsIG51bGxwdHIsIGJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0g
ICAgaWYgKCFydWxlIHx8ICFydWxlLT5pc0ZvbnRGYWNlUnVsZSgpKQotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLSAgICByZXR1cm4gZG93bmNhc3Q8U3R5bGVSdWxlRm9udEZhY2U+KCpydWxlLmdl
dCgpKS5wcm9wZXJ0aWVzKCkuZ2V0UHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0eUlEKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgID0gYnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIFJlZlB0cjxT
dHlsZVJ1bGVCYXNlPiBydWxlID0gcGFyc2VSdWxlKGNvbnRleHQsIG51bGxwdHIsICpzdHJpbmcp
OworICAgICAgICBpZiAoIXJ1bGUgfHwgIXJ1bGUtPmlzRm9udEZhY2VSdWxlKCkpCisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PFN0eWxlUnVsZUZv
bnRGYWNlPigqcnVsZS5nZXQoKSkucHJvcGVydGllcygpLmdldFByb3BlcnR5Q1NTVmFsdWUocHJv
cGVydHlJRCk7CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4uY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5jcHAKaW5kZXggN2I4ZTYwMy4uNWQxMDE2ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5jcHAKQEAgLTM5Miw3
ICszOTIsOCBAQCB2b2lkIENTU1BhcnNlclRva2VuOjpzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYg
YnVpbGRlcikgY29uc3QKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGdW5jdGlvblRva2VuOgog
ICAgICAgICBzZXJpYWxpemVJZGVudGlmaWVyKHZhbHVlKCkudG9TdHJpbmcoKSwgYnVpbGRlcik7
Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgnKCcpOworICAgICAgICBidWlsZGVyLmFw
cGVuZCgnKCcpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBBdEtleXdvcmRUb2tlbjoKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoJ0AnKTsKICAgICAgICAgc2VyaWFsaXplSWRlbnRpZmllcih2
YWx1ZSgpLnRvU3RyaW5nKCksIGJ1aWxkZXIpOwpAQCAtNDA0LDY5ICs0MDUsOTcgQEAgdm9pZCBD
U1NQYXJzZXJUb2tlbjo6c2VyaWFsaXplKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIpIGNvbnN0CiAg
ICAgY2FzZSBVcmxUb2tlbjoKICAgICAgICAgYnVpbGRlci5hcHBlbmQoInVybCgiKTsKICAgICAg
ICAgc2VyaWFsaXplSWRlbnRpZmllcih2YWx1ZSgpLnRvU3RyaW5nKCksIGJ1aWxkZXIpOwotICAg
ICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJyknKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQo
JyknKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRGVsaW1pdGVyVG9rZW46Ci0gICAgICAg
IGlmIChkZWxpbWl0ZXIoKSA9PSAnXFwnKQotICAgICAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBw
ZW5kKCJcXFxuIik7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZChkZWxpbWl0ZXIoKSk7
CisgICAgICAgIGlmIChkZWxpbWl0ZXIoKSA9PSAnXFwnKSB7CisgICAgICAgICAgICBidWlsZGVy
LmFwcGVuZCgiXFxcbiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKGRlbGltaXRlcigpKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2Ug
TnVtYmVyVG9rZW46CiAgICAgICAgIC8vIFRoZXNlIHdvbid0IHByb3Blcmx5IHByZXNlcnZlIHRo
ZSBOdW1lcmljVmFsdWVUeXBlIGZsYWcKICAgICAgICAgaWYgKG1fbnVtZXJpY1NpZ24gPT0gUGx1
c1NpZ24pCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnKycpOwotICAgICAgICByZXR1cm4g
YnVpbGRlci5hcHBlbmROdW1iZXIobnVtZXJpY1ZhbHVlKCkpOworICAgICAgICBidWlsZGVyLmFw
cGVuZE51bWJlcihudW1lcmljVmFsdWUoKSk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFBl
cmNlbnRhZ2VUb2tlbjoKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobnVtZXJpY1ZhbHVl
KCkpOwotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJyUnKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQoJyUnKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRGltZW5zaW9uVG9rZW46
CiAgICAgICAgIC8vIFRoaXMgd2lsbCBpbmNvcnJlY3RseSBzZXJpYWxpemUgZS5nLiA0ZTNlMiBh
cyA0MDAwZTIKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobnVtZXJpY1ZhbHVlKCkpOwog
ICAgICAgICBzZXJpYWxpemVJZGVudGlmaWVyKHZhbHVlKCkudG9TdHJpbmcoKSwgYnVpbGRlcik7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVW5pY29kZVJhbmdlVG9rZW46Ci0gICAgICAgIHJl
dHVybiBidWlsZGVyLmFwcGVuZChTdHJpbmc6OmZvcm1hdCgiVSslWC0lWCIsIHVuaWNvZGVSYW5n
ZVN0YXJ0KCksIHVuaWNvZGVSYW5nZUVuZCgpKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0
cmluZzo6Zm9ybWF0KCJVKyVYLSVYIiwgdW5pY29kZVJhbmdlU3RhcnQoKSwgdW5pY29kZVJhbmdl
RW5kKCkpKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgU3RyaW5nVG9rZW46Ci0gICAgICAg
IHJldHVybiBzZXJpYWxpemVTdHJpbmcodmFsdWUoKS50b1N0cmluZygpLCBidWlsZGVyKTsKKyAg
ICAgICAgc2VyaWFsaXplU3RyaW5nKHZhbHVlKCkudG9TdHJpbmcoKSwgYnVpbGRlcik7CisgICAg
ICAgIHJldHVybjsKIAogICAgIGNhc2UgSW5jbHVkZU1hdGNoVG9rZW46Ci0gICAgICAgIHJldHVy
biBidWlsZGVyLmFwcGVuZCgifj0iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIn49Iik7Cisg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIERhc2hNYXRjaFRva2VuOgotICAgICAgICByZXR1cm4g
YnVpbGRlci5hcHBlbmQoInw9Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJ8PSIpOworICAg
ICAgICByZXR1cm47CiAgICAgY2FzZSBQcmVmaXhNYXRjaFRva2VuOgotICAgICAgICByZXR1cm4g
YnVpbGRlci5hcHBlbmQoIl49Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJePSIpOworICAg
ICAgICByZXR1cm47CiAgICAgY2FzZSBTdWZmaXhNYXRjaFRva2VuOgotICAgICAgICByZXR1cm4g
YnVpbGRlci5hcHBlbmQoIiQ9Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIkPSIpOworICAg
ICAgICByZXR1cm47CiAgICAgY2FzZSBTdWJzdHJpbmdNYXRjaFRva2VuOgotICAgICAgICByZXR1
cm4gYnVpbGRlci5hcHBlbmQoIio9Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIqPSIpOwor
ICAgICAgICByZXR1cm47CiAgICAgY2FzZSBDb2x1bW5Ub2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1
aWxkZXIuYXBwZW5kKCJ8fCIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgifHwiKTsKKyAgICAg
ICAgcmV0dXJuOwogICAgIGNhc2UgQ0RPVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFw
cGVuZCgiPCEtLSIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiPCEtLSIpOworICAgICAgICBy
ZXR1cm47CiAgICAgY2FzZSBDRENUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5k
KCItLT4iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIi0tPiIpOworICAgICAgICByZXR1cm47
CiAgICAgY2FzZSBCYWRTdHJpbmdUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5k
KCInXG4iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIidcbiIpOworICAgICAgICByZXR1cm47
CiAgICAgY2FzZSBCYWRVcmxUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCJ1
cmwoKCkiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoInVybCgoKSIpOworICAgICAgICByZXR1
cm47CiAgICAgY2FzZSBXaGl0ZXNwYWNlVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFw
cGVuZCgnICcpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOworICAgICAgICByZXR1cm47
CiAgICAgY2FzZSBDb2xvblRva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJzon
KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJzonKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgU2VtaWNvbG9uVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgnOycpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZCgnOycpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBD
b21tYVRva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJywnKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQoJywnKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgTGVmdFBhcmVu
dGhlc2lzVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgnKCcpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZCgnKCcpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBSaWdodFBh
cmVudGhlc2lzVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgnKScpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZCgnKScpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBMZWZ0
QnJhY2tldFRva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJ1snKTsKKyAgICAg
ICAgYnVpbGRlci5hcHBlbmQoJ1snKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgUmlnaHRC
cmFja2V0VG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgnXScpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZCgnXScpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBMZWZ0QnJh
Y2VUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCd7Jyk7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCd7Jyk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFJpZ2h0QnJhY2VU
b2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCd9Jyk7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCd9Jyk7CisgICAgICAgIHJldHVybjsKIAogICAgIGNhc2UgRU9GVG9rZW46CiAg
ICAgY2FzZSBDb21tZW50VG9rZW46CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1BhcnNlclRva2VuUmFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQYXJzZXJUb2tlblJhbmdlLmNwcAppbmRleCBjYjljNTgwLi5lZmU1YTJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuUmFuZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW5SYW5nZS5jcHAKQEAgLTEx
Myw3ICsxMTMsOSBAQCBTdHJpbmcgQ1NTUGFyc2VyVG9rZW5SYW5nZTo6c2VyaWFsaXplKCkgY29u
c3QKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgZm9yIChjb25zdCBDU1NQYXJzZXJU
b2tlbiogaXQgPSBtX2ZpcnN0OyBpdCA8IG1fbGFzdDsgKytpdCkKICAgICAgICAgaXQtPnNlcmlh
bGl6ZShidWlsZGVyKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAppbmRleCBiY2VjZTcwLi4z
MDkwNzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5
UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFy
c2VyLmNwcApAQCAtMTAxNiw3ICsxMDE2LDkgQEAgc3RhdGljIFN0cmluZyBjb25jYXRlbmF0ZUZh
bWlseU5hbWUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiAgICAgfQogICAgIGlmICghYWRk
ZWRTcGFjZSAmJiBpc0NTU1dpZGVLZXl3b3JkKGZpcnN0VG9rZW4uaWQoKSkpCiAgICAgICAgIHJl
dHVybiBTdHJpbmcoKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZUZhbWls
eU5hbWUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCkBAIC0zMjY0LDcgKzMyNjYsMTAgQEAg
c3RhdGljIFZlY3RvcjxTdHJpbmc+IHBhcnNlR3JpZFRlbXBsYXRlQXJlYXNDb2x1bW5OYW1lcyhj
b25zdCBTdHJpbmcmIGdyaWRSb3dOYW0KICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdGV4
dC5sZW5ndGgoKTsgKytpKSB7CiAgICAgICAgIGlmIChpc0NTU1NwYWNlKHRleHRbaV0pKSB7CiAg
ICAgICAgICAgICBpZiAoIWFyZWFOYW1lLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgICAgIGNv
bHVtbk5hbWVzLmFwcGVuZChhcmVhTmFtZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBhcmVhTmFtZS50b1N0cmluZygpKQorICAgICAgICAgICAgICAgICAg
ICBjb2x1bW5OYW1lcy5hcHBlbmQoKnN0cmluZyk7CisgICAgICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgICAgIGFyZWFOYW1lLmNsZWFy
KCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTMyNzMsMTQgKzMy
NzgsMjAgQEAgc3RhdGljIFZlY3RvcjxTdHJpbmc+IHBhcnNlR3JpZFRlbXBsYXRlQXJlYXNDb2x1
bW5OYW1lcyhjb25zdCBTdHJpbmcmIGdyaWRSb3dOYW0KICAgICAgICAgICAgIGlmIChhcmVhTmFt
ZSA9PSAiLiIpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBpZiAoIWFy
ZWFOYW1lLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgICAgIGNvbHVtbk5hbWVzLmFwcGVuZChh
cmVhTmFtZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBh
cmVhTmFtZS50b1N0cmluZygpKQorICAgICAgICAgICAgICAgICAgICBjb2x1bW5OYW1lcy5hcHBl
bmQoKnN0cmluZyk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBD
UkFTSCgpOwogICAgICAgICAgICAgICAgIGFyZWFOYW1lLmNsZWFyKCk7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBpZiAoIWlzTmFtZUNvZGVQb2ludCh0ZXh0
W2ldKSkKICAgICAgICAgICAgICAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsKICAgICAgICAg
ICAgIGlmIChhcmVhTmFtZSA9PSAiLiIpIHsKLSAgICAgICAgICAgICAgICBjb2x1bW5OYW1lcy5h
cHBlbmQoYXJlYU5hbWUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYXJlYU5hbWUudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgY29sdW1uTmFt
ZXMuYXBwZW5kKCpzdHJpbmcpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgICAgICBhcmVhTmFtZS5jbGVhcigpOwogICAgICAg
ICAgICAgfQogICAgICAgICB9CkBAIC0zMjg4LDggKzMyOTksMTIgQEAgc3RhdGljIFZlY3RvcjxT
dHJpbmc+IHBhcnNlR3JpZFRlbXBsYXRlQXJlYXNDb2x1bW5OYW1lcyhjb25zdCBTdHJpbmcmIGdy
aWRSb3dOYW0KICAgICAgICAgYXJlYU5hbWUuYXBwZW5kKHRleHRbaV0pOwogICAgIH0KIAotICAg
IGlmICghYXJlYU5hbWUuaXNFbXB0eSgpKQotICAgICAgICBjb2x1bW5OYW1lcy5hcHBlbmQoYXJl
YU5hbWUudG9TdHJpbmcoKSk7CisgICAgaWYgKCFhcmVhTmFtZS5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYXJlYU5hbWUudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGNv
bHVtbk5hbWVzLmFwcGVuZCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JB
U0goKTsKKyAgICB9CiAKICAgICByZXR1cm4gY29sdW1uTmFtZXM7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Rva2VuaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1Rva2VuaXplci5jcHAKaW5kZXggMWYxYTIzZS4uM2I4NGUyNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NUb2tlbml6ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTVG9rZW5pemVyLmNwcApAQCAtNjA1LDggKzYw
NSwxMSBAQCBDU1NQYXJzZXJUb2tlbiBDU1NUb2tlbml6ZXI6OmNvbnN1bWVTdHJpbmdUb2tlblVu
dGlsKFVDaGFyIGVuZGluZ0NvZGVQb2ludCkKICAgICBTdHJpbmdCdWlsZGVyIG91dHB1dDsKICAg
ICB3aGlsZSAodHJ1ZSkgewogICAgICAgICBVQ2hhciBjYyA9IGNvbnN1bWUoKTsKLSAgICAgICAg
aWYgKGNjID09IGVuZGluZ0NvZGVQb2ludCB8fCBjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKQotICAg
ICAgICAgICAgcmV0dXJuIENTU1BhcnNlclRva2VuKFN0cmluZ1Rva2VuLCByZWdpc3RlclN0cmlu
ZyhvdXRwdXQudG9TdHJpbmcoKSkpOworICAgICAgICBpZiAoY2MgPT0gZW5kaW5nQ29kZVBvaW50
IHx8IGNjID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IG91dHB1dC50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHJldHVybiBDU1NQYXJzZXJU
b2tlbihTdHJpbmdUb2tlbiwgcmVnaXN0ZXJTdHJpbmcoKnN0cmluZykpOworICAgICAgICAgICAg
Q1JBU0goKTsKKyAgICAgICAgfQogICAgICAgICBpZiAoaXNOZXdMaW5lKGNjKSkgewogICAgICAg
ICAgICAgcmVjb25zdW1lKGNjKTsKICAgICAgICAgICAgIHJldHVybiBDU1NQYXJzZXJUb2tlbihC
YWRTdHJpbmdUb2tlbik7CkBAIC02ODAsMTMgKzY4MywxOSBAQCBDU1NQYXJzZXJUb2tlbiBDU1NU
b2tlbml6ZXI6OmNvbnN1bWVVcmxUb2tlbigpCiAgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CiAg
ICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAgVUNoYXIgY2MgPSBjb25zdW1lKCk7Ci0gICAgICAg
IGlmIChjYyA9PSAnKScgfHwgY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikKLSAgICAgICAgICAgIHJl
dHVybiBDU1NQYXJzZXJUb2tlbihVcmxUb2tlbiwgcmVnaXN0ZXJTdHJpbmcocmVzdWx0LnRvU3Ry
aW5nKCkpKTsKKyAgICAgICAgaWYgKGNjID09ICcpJyB8fCBjYyA9PSBrRW5kT2ZGaWxlTWFya2Vy
KSB7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gQ1NTUGFyc2VyVG9rZW4oVXJsVG9rZW4sIHJlZ2lzdGVyU3Ry
aW5nKCpzdHJpbmcpKTsKKyAgICAgICAgICAgIENSQVNIKCk7CisgICAgICAgIH0KIAogICAgICAg
ICBpZiAoaXNIVE1MU3BhY2UoY2MpKSB7CiAgICAgICAgICAgICBtX2lucHV0LmFkdmFuY2VVbnRp
bE5vbldoaXRlc3BhY2UoKTsKLSAgICAgICAgICAgIGlmIChjb25zdW1lSWZOZXh0KCcpJykgfHwg
bV9pbnB1dC5uZXh0SW5wdXRDaGFyKCkgPT0ga0VuZE9mRmlsZU1hcmtlcikKLSAgICAgICAgICAg
ICAgICByZXR1cm4gQ1NTUGFyc2VyVG9rZW4oVXJsVG9rZW4sIHJlZ2lzdGVyU3RyaW5nKHJlc3Vs
dC50b1N0cmluZygpKSk7CisgICAgICAgICAgICBpZiAoY29uc3VtZUlmTmV4dCgnKScpIHx8IG1f
aW5wdXQubmV4dElucHV0Q2hhcigpID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIENTU1BhcnNlclRva2VuKFVybFRva2VuLCByZWdpc3RlclN0cmluZygqc3Ry
aW5nKSk7CisgICAgICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAKQEAgLTc5MSw3ICs4MDAsOSBAQCBTdHJpbmdWaWV3IENT
U1Rva2VuaXplcjo6Y29uc3VtZU5hbWUoKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IH0KICAgICAgICAgcmVjb25zdW1lKGNjKTsKLSAgICAgICAgcmV0dXJuIHJlZ2lzdGVyU3RyaW5n
KHJlc3VsdC50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRv
U3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gcmVnaXN0ZXJTdHJpbmcoKnN0cmluZyk7Cisg
ICAgICAgIENSQVNIKCk7CiAgICAgfQogfQogCkBAIC04MTEsMTEgKzgyMiwxNCBAQCBVQ2hhcjMy
IENTU1Rva2VuaXplcjo6Y29uc3VtZUVzY2FwZSgpCiAgICAgICAgIH07CiAgICAgICAgIGNvbnN1
bWVTaW5nbGVXaGl0ZXNwYWNlSWZOZXh0KCk7CiAgICAgICAgIGJvb2wgb2sgPSBmYWxzZTsKLSAg
ICAgICAgVUNoYXIzMiBjb2RlUG9pbnQgPSBoZXhDaGFycy50b1N0cmluZygpLnRvVUludFN0cmlj
dCgmb2ssIDE2KTsKLSAgICAgICAgQVNTRVJUKG9rKTsKLSAgICAgICAgaWYgKCFjb2RlUG9pbnQg
fHwgKDB4RDgwMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4REZGRikgfHwgY29kZVBv
aW50ID4gMHgxMEZGRkYpCi0gICAgICAgICAgICByZXR1cm4gcmVwbGFjZW1lbnRDaGFyYWN0ZXI7
Ci0gICAgICAgIHJldHVybiBjb2RlUG9pbnQ7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGhl
eENoYXJzLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIFVDaGFyMzIgY29kZVBvaW50ID0gc3Ry
aW5nLT50b1VJbnRTdHJpY3QoJm9rLCAxNik7CisgICAgICAgICAgICBBU1NFUlQob2spOworICAg
ICAgICAgICAgaWYgKCFjb2RlUG9pbnQgfHwgKDB4RDgwMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBv
aW50IDw9IDB4REZGRikgfHwgY29kZVBvaW50ID4gMHgxMEZGRkYpCisgICAgICAgICAgICAgICAg
cmV0dXJuIHJlcGxhY2VtZW50Q2hhcmFjdGVyOworICAgICAgICAgICAgcmV0dXJuIGNvZGVQb2lu
dDsKKyAgICAgICAgfQorICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIGlmIChjYyA9PSBr
RW5kT2ZGaWxlTWFya2VyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRE
T01TdHJpbmdNYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAu
Y3BwCmluZGV4IGYyZDg0MjAuLmQ1NjY3YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YXNl
dERPTVN0cmluZ01hcC5jcHAKQEAgLTY1LDcgKzY1LDkgQEAgc3RhdGljIFN0cmluZyBjb252ZXJ0
QXR0cmlidXRlTmFtZVRvUHJvcGVydHlOYW1lKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICAgICAg
fQogICAgIH0KIAotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgYm9vbCBwcm9wZXJ0eU5hbWVNYXRj
aGVzQXR0cmlidXRlTmFtZShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgY29uc3QgU3RyaW5n
JiBhdHRyaWJ1dGVOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGE0MzIzOTcuLjRmNmM3
YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTIxOTcsNyArMjE5NywxMCBAQCB2b2lkIEVs
ZW1lbnQ6OmZvcm1hdEZvckRlYnVnZ2VyKGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgbGVuZ3RoKSBj
b25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKHMpOwogICAgIH0KIAotICAgIHN0cm5jcHkoYnVm
ZmVyLCByZXN1bHQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgc3RybmNweShidWZm
ZXIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0gMSk7CisgICAgZWxzZQorICAgICAg
ICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCBiYmE2NzhhMi4uNzUz
ZGYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMTUyMCw3ICsxNTIwLDkgQEAgU3RyaW5nIE5vZGU6
OnRleHRDb250ZW50KGJvb2wgY29udmVydEJSc1RvTmV3bGluZXMpIGNvbnN0CiAgICAgU3RyaW5n
QnVpbGRlciBjb250ZW50OwogICAgIGJvb2wgaXNOdWxsU3RyaW5nID0gdHJ1ZTsKICAgICBhcHBl
bmRUZXh0Q29udGVudCh0aGlzLCBjb252ZXJ0QlJzVG9OZXdsaW5lcywgaXNOdWxsU3RyaW5nLCBj
b250ZW50KTsKLSAgICByZXR1cm4gaXNOdWxsU3RyaW5nID8gU3RyaW5nKCkgOiBjb250ZW50LnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gY29udGVudC50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gaXNOdWxsU3RyaW5nID8gU3RyaW5nKCkgOiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IE5vZGU6OnNldFRleHRDb250ZW50KGNvbnN0IFN0
cmluZyYgdGV4dCkKQEAgLTE3MzEsNyArMTczMywxMCBAQCB2b2lkIE5vZGU6OnNob3dOb2RlKGNv
bnN0IGNoYXIqIHByZWZpeCkgY29uc3QKICAgICAgICAgU3RyaW5nQnVpbGRlciBhdHRyczsKICAg
ICAgICAgYXBwZW5kQXR0cmlidXRlRGVzYyh0aGlzLCBhdHRycywgY2xhc3NBdHRyLCAiIENMQVNT
PSIpOwogICAgICAgICBhcHBlbmRBdHRyaWJ1dGVEZXNjKHRoaXMsIGF0dHJzLCBzdHlsZUF0dHIs
ICIgU1RZTEU9Iik7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMlc1x0JXAgKHJlbmRlcmVy
ICVwKSAlcyVzJXNcbiIsIHByZWZpeCwgbm9kZU5hbWUoKS51dGY4KCkuZGF0YSgpLCB0aGlzLCBy
ZW5kZXJlcigpLCBhdHRycy50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIG5lZWRzU3R5bGVSZWNh
bGMoKSA/ICIgKG5lZWRzIHN0eWxlIHJlY2FsYykiIDogIiIsIGNoaWxkTmVlZHNTdHlsZVJlY2Fs
YygpID8gIiAoY2hpbGQgbmVlZHMgc3R5bGUgcmVjYWxjKSIgOiAiIik7CisgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IGF0dHJzLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVy
ciwgIiVzJXNcdCVwIChyZW5kZXJlciAlcCkgJXMlcyVzXG4iLCBwcmVmaXgsIG5vZGVOYW1lKCku
dXRmOCgpLmRhdGEoKSwgdGhpcywgcmVuZGVyZXIoKSwgc3RyaW5nLT51dGY4KCkuZGF0YSgpLCBu
ZWVkc1N0eWxlUmVjYWxjKCkgPyAiIChuZWVkcyBzdHlsZSByZWNhbGMpIiA6ICIiLCBjaGlsZE5l
ZWRzU3R5bGVSZWNhbGMoKSA/ICIgKGNoaWxkIG5lZWRzIHN0eWxlIHJlY2FsYykiIDogIiIpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIH0KIApAQCAtMTgwMywx
MiArMTgwOCwxOSBAQCBzdGF0aWMgdm9pZCB0cmF2ZXJzZVRyZWVBbmRNYXJrKGNvbnN0IFN0cmlu
ZyYgYmFzZUluZGVudCwgY29uc3QgTm9kZSogcm9vdE5vZGUsCiAgICAgICAgIGluZGVudC5hcHBl
bmQoYmFzZUluZGVudCk7CiAgICAgICAgIGZvciAoY29uc3QgTm9kZSogdG1wTm9kZSA9IG5vZGU7
IHRtcE5vZGUgJiYgdG1wTm9kZSAhPSByb290Tm9kZTsgdG1wTm9kZSA9IHRtcE5vZGUtPnBhcmVu
dE9yU2hhZG93SG9zdE5vZGUoKSkKICAgICAgICAgICAgIGluZGVudC5hcHBlbmQoJ1x0Jyk7Ci0g
ICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMiLCBpbmRlbnQudG9TdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gaW5kZW50LnRvU3RyaW5nKCkpCisgICAg
ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgbm9kZS0+c2hvd05vZGUo
KTsKICAgICAgICAgaW5kZW50LmFwcGVuZCgnXHQnKTsKICAgICAgICAgaWYgKCFub2RlLT5pc1No
YWRvd1Jvb3QoKSkgewotICAgICAgICAgICAgaWYgKFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QgPSBu
b2RlLT5zaGFkb3dSb290KCkpCi0gICAgICAgICAgICAgICAgdHJhdmVyc2VUcmVlQW5kTWFyayhp
bmRlbnQudG9TdHJpbmcoKSwgc2hhZG93Um9vdCwgbWFya2VkTm9kZTEsIG1hcmtlZExhYmVsMSwg
bWFya2VkTm9kZTIsIG1hcmtlZExhYmVsMik7CisgICAgICAgICAgICBpZiAoU2hhZG93Um9vdCog
c2hhZG93Um9vdCA9IG5vZGUtPnNoYWRvd1Jvb3QoKSkgeworICAgICAgICAgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IGluZGVudC50b1N0cmluZygpKQorICAgICAgICAgICAgICAgICAgICB0cmF2
ZXJzZVRyZWVBbmRNYXJrKCpzdHJpbmcsIHNoYWRvd1Jvb3QsIG1hcmtlZE5vZGUxLCBtYXJrZWRM
YWJlbDEsIG1hcmtlZE5vZGUyLCBtYXJrZWRMYWJlbDIpOworICAgICAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQog
ICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCmluZGV4IDg5YTUwNmYuLmE1MjAxNmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1Bvc2l0aW9uLmNwcApAQCAtMTQxOSw3ICsxNDE5LDEwIEBAIHZvaWQgUG9zaXRp
b246OmZvcm1hdEZvckRlYnVnZ2VyKGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgbGVuZ3RoKSBjb25z
dAogICAgICAgICByZXN1bHQuYXBwZW5kKHMpOwogICAgIH0KIAotICAgIHN0cm5jcHkoYnVmZmVy
LCByZXN1bHQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgc3RybmNweShidWZmZXIs
IHN0cmluZy0+dXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0gMSk7CisgICAgZWxzZQorICAgICAgICBD
UkFTSCgpOwogfQogCiB2b2lkIFBvc2l0aW9uOjpzaG93QW5jaG9yVHlwZUFuZE9mZnNldCgpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1JhbmdlLmNwcAppbmRleCBhNTdhNWUyLi4xNTk4NzBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5n
ZS5jcHAKQEAgLTk0OSw3ICs5NDksOSBAQCBTdHJpbmcgUmFuZ2U6OnRvU3RyaW5nKCkgY29uc3QK
ICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgUmFuZ2U6OnRvSFRNTCgpIGNvbnN0CkBA
IC0xNTM1LDcgKzE1MzcsMTAgQEAgdm9pZCBSYW5nZTo6Zm9ybWF0Rm9yRGVidWdnZXIoY2hhciog
YnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0CiAgICAgZW5kQ29udGFpbmVyKCkuZm9ybWF0
Rm9yRGVidWdnZXIocywgRm9ybWF0QnVmZmVyU2l6ZSk7CiAgICAgcmVzdWx0LmFwcGVuZChzKTsK
IAotICAgIHN0cm5jcHkoYnVmZmVyLCByZXN1bHQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBs
ZW5ndGggLSAxKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAg
ICAgICAgc3RybmNweShidWZmZXIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0gMSk7
CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKaW5kZXggYzRkODVk
OC4uYTUwMzkwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0
aW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0
aW9uQ29udHJvbGxlci5jcHAKQEAgLTExMiw3ICsxMTIsOSBAQCBzdGF0aWMgU3RyaW5nIHRocm90
dGxpbmdSZWFzb25zVG9TdHJpbmcoT3B0aW9uU2V0PFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxl
cjo6VAogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ3wnKTsKICAgICAgICAgYnVpbGRlci5h
cHBlbmQodGhyb3R0bGluZ1JlYXNvblRvU3RyaW5nKHJlYXNvbikpOwogICAgIH0KLSAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRleHQuY3BwCmluZGV4IDRmOGYxYTguLjE0
ODIyMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRleHQuY3BwCkBAIC0xNTIsNyAr
MTUyLDEwIEBAIFNhbmRib3hGbGFncyBTZWN1cml0eUNvbnRleHQ6OnBhcnNlU2FuZGJveFBvbGlj
eShjb25zdCBTdHJpbmcmIHBvbGljeSwgU3RyaW5nJiBpCiAgICAgICAgICAgICB0b2tlbkVycm9y
cy5hcHBlbmRMaXRlcmFsKCIgYXJlIGludmFsaWQgc2FuZGJveCBmbGFncy4iKTsKICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgdG9rZW5FcnJvcnMuYXBwZW5kTGl0ZXJhbCgiIGlzIGFuIGludmFs
aWQgc2FuZGJveCBmbGFnLiIpOwotICAgICAgICBpbnZhbGlkVG9rZW5zRXJyb3JNZXNzYWdlID0g
dG9rZW5FcnJvcnMudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gdG9rZW5F
cnJvcnMudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGludmFsaWRUb2tlbnNFcnJvck1lc3NhZ2Ug
PSAqc3RyaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAog
ICAgIHJldHVybiBmbGFnczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAppbmRleCA3MzE1ZDE2Li5iMzI3ZjU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1RleHQuY3BwCkBAIC0xMTMsNyArMTEzLDkgQEAgU3RyaW5nIFRleHQ6Ondob2xlVGV4
dCgpIGNvbnN0CiAgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CiAgICAgZm9yIChjb25zdCBUZXh0
KiB0ZXh0ID0gc3RhcnRUZXh0OyB0ZXh0ICE9IG9uZVBhc3RFbmRUZXh0OyB0ZXh0ID0gVGV4dE5v
ZGVUcmF2ZXJzYWw6Om5leHRTaWJsaW5nKCp0ZXh0KSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCh0
ZXh0LT5kYXRhKCkpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KIAogUmVmUHRyPFRleHQ+IFRleHQ6OnJlcGxhY2VXaG9sZVRleHQoY29u
c3QgU3RyaW5nJiBuZXdUZXh0KQpAQCAtMjQwLDcgKzI0MiwxMCBAQCB2b2lkIFRleHQ6OmZvcm1h
dEZvckRlYnVnZ2VyKGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgbGVuZ3RoKSBjb25zdAogICAgICAg
ICByZXN1bHQuYXBwZW5kKCciJyk7CiAgICAgfQogCi0gICAgc3RybmNweShidWZmZXIsIHJlc3Vs
dC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBzdHJuY3B5KGJ1ZmZlciwgc3RyaW5n
LT51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7
CiAgICAgYnVmZmVyW2xlbmd0aCAtIDFdID0gJ1wwJzsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1RleHROb2RlVHJhdmVyc2FsLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9UZXh0Tm9kZVRyYXZlcnNhbC5jcHAKaW5kZXggYjc4Y2E3OS4uNmQ0MThkMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHROb2RlVHJhdmVyc2FsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVGV4dE5vZGVUcmF2ZXJzYWwuY3BwCkBAIC00Miw3ICs0Miw5IEBAIFN0
cmluZyBjb250ZW50c0FzU3RyaW5nKGNvbnN0IENvbnRhaW5lck5vZGUmIHJvb3QpCiB7CiAgICAg
U3RyaW5nQnVpbGRlciByZXN1bHQ7CiAgICAgYXBwZW5kQ29udGVudHMocm9vdCwgcmVzdWx0KTsK
LSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVz
dWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIFN0cmluZyBjb250ZW50c0FzU3RyaW5nKGNvbnN0IE5vZGUmIHJvb3QpCkBAIC01OSw3ICs2
MSw5IEBAIFN0cmluZyBjaGlsZFRleHRDb250ZW50KGNvbnN0IENvbnRhaW5lck5vZGUmIHJvb3Qp
CiAgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CiAgICAgZm9yIChUZXh0KiB0ZXh0ID0gVGV4dE5v
ZGVUcmF2ZXJzYWw6OmZpcnN0Q2hpbGQocm9vdCk7IHRleHQ7IHRleHQgPSBUZXh0Tm9kZVRyYXZl
cnNhbDo6bmV4dFNpYmxpbmcoKnRleHQpKQogICAgICAgICByZXN1bHQuYXBwZW5kKHRleHQtPmRh
dGEoKSk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5
bGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQu
Y3BwCmluZGV4IDY5ZDhhZjIuLmFlMTZmMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwbHlTdHlsZUNvbW1hbmQuY3BwCkBAIC0xMzgyLDcgKzEzODIsMTAgQEAgdm9pZCBBcHBseVN0
eWxlQ29tbWFuZDo6YWRkQmxvY2tTdHlsZShjb25zdCBTdHlsZUNoYW5nZSYgc3R5bGVDaGFuZ2Us
IEhUTUxFbGVtZW4KICAgICAgICAgICAgIGNzc1RleHQuYXBwZW5kKCcgJyk7CiAgICAgICAgIGNz
c1RleHQuYXBwZW5kKGRlY2wtPmFzVGV4dCgpKTsKICAgICB9Ci0gICAgc2V0Tm9kZUF0dHJpYnV0
ZShibG9jaywgc3R5bGVBdHRyLCBjc3NUZXh0LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGNzc1RleHQudG9TdHJpbmcoKSkKKyAgICAgICAgc2V0Tm9kZUF0dHJpYnV0ZShibG9j
aywgc3R5bGVBdHRyLCAqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAK
IHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmFkZElubGluZVN0eWxlSWZOZWVkZWQoRWRpdGluZ1N0
eWxlKiBzdHlsZSwgTm9kZSYgc3RhcnQsIE5vZGUmIGVuZCwgRUFkZFN0eWxlZEVsZW1lbnQgYWRk
U3R5bGVkRWxlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGlu
Zy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcuY3BwCmluZGV4IGU3OWI2NDYu
LjMwYzE2ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNwcApAQCAtNDI5LDcgKzQyOSw5
IEBAIFN0cmluZyBzdHJpbmdXaXRoUmViYWxhbmNlZFdoaXRlc3BhY2UoY29uc3QgU3RyaW5nJiBz
dHJpbmcsIGJvb2wgc3RhcnRJc1N0YXJ0T2ZQCiAKICAgICByZWJhbGFuY2VkU3RyaW5nLnJlc2Vy
dmVDYXBhY2l0eShsZW5ndGgpOwogICAgIHJlYmFsYW5jZWRTdHJpbmcuYXBwZW5kKHN0cmluZywg
cmViYWxhbmNlZFN0cmluZy5sZW5ndGgoKSwgbGVuZ3RoIC0gcmViYWxhbmNlZFN0cmluZy5sZW5n
dGgoKSk7Ci0gICAgcmV0dXJuIHJlYmFsYW5jZWRTdHJpbmcudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSByZWJhbGFuY2VkU3RyaW5nLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgaXNUYWJsZVN0cnVjdHVyZU5vZGUo
Y29uc3QgTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSFRN
TEludGVyY2hhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSFRNTEludGVyY2hhbmdl
LmNwcAppbmRleCBiMjIzNDNiLi5jZjg1MjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0hUTUxJbnRlcmNoYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9I
VE1MSW50ZXJjaGFuZ2UuY3BwCkBAIC05NSw3ICs5NSw5IEBAIFN0cmluZyBjb252ZXJ0SFRNTFRl
eHRUb0ludGVyY2hhbmdlRm9ybWF0KGNvbnN0IFN0cmluZyYgaW4sIGNvbnN0IFRleHQqIG5vZGUp
CiAgICAgICAgIGkgKz0gY29uc3VtZWQ7CiAgICAgfQogCi0gICAgcmV0dXJuIHMudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKaW5kZXggOTA2OTY3Zi4u
NjdlNzZjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVs
YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5j
cHAKQEAgLTEzMCw3ICsxMzAsOSBAQCBNYXJrdXBBY2N1bXVsYXRvcjo6fk1hcmt1cEFjY3VtdWxh
dG9yKCkgPSBkZWZhdWx0OwogU3RyaW5nIE1hcmt1cEFjY3VtdWxhdG9yOjpzZXJpYWxpemVOb2Rl
cyhOb2RlJiB0YXJnZXROb2RlLCBFQ2hpbGRyZW5Pbmx5IGNoaWxkcmVuT25seSwgVmVjdG9yPFF1
YWxpZmllZE5hbWU+KiB0YWdOYW1lc1RvU2tpcCkKIHsKICAgICBzZXJpYWxpemVOb2Rlc1dpdGhO
YW1lc3BhY2VzKHRhcmdldE5vZGUsIGNoaWxkcmVuT25seSwgMCwgdGFnTmFtZXNUb1NraXApOwot
ICAgIHJldHVybiBtX21hcmt1cC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1f
bWFya3VwLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIHZvaWQgTWFya3VwQWNjdW11bGF0b3I6OnNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFj
ZXMoTm9kZSYgdGFyZ2V0Tm9kZSwgRUNoaWxkcmVuT25seSBjaGlsZHJlbk9ubHksIGNvbnN0IE5h
bWVzcGFjZXMqIG5hbWVzcGFjZXMsIFZlY3RvcjxRdWFsaWZpZWROYW1lPiogdGFnTmFtZXNUb1Nr
aXApCkBAIC00ODMsMTEgKzQ4NSwxNCBAQCB2b2lkIE1hcmt1cEFjY3VtdWxhdG9yOjpnZW5lcmF0
ZVVuaXF1ZVByZWZpeChRdWFsaWZpZWROYW1lJiBwcmVmaXhlZE5hbWUsIGNvbnN0CiAgICAgICAg
IGJ1aWxkZXIuY2xlYXIoKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJOUyIpOwog
ICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcigrK21fcHJlZml4TGV2ZWwpOwotICAgICAgICBj
b25zdCBBdG9taWNTdHJpbmcmIG5hbWUgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7Ci0gICAg
ICAgIGlmICghbmFtZXNwYWNlcy5nZXQobmFtZS5pbXBsKCkpKSB7Ci0gICAgICAgICAgICBwcmVm
aXhlZE5hbWUuc2V0UHJlZml4KG5hbWUpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9
CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKSkgewor
ICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lID0gKnN0cmluZzsKKyAgICAgICAg
ICAgIGlmICghbmFtZXNwYWNlcy5nZXQobmFtZS5pbXBsKCkpKSB7CisgICAgICAgICAgICAgICAg
cHJlZml4ZWROYW1lLnNldFByZWZpeChuYW1lKTsKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9
IHdoaWxlICh0cnVlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
ZXh0SXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3Bw
CmluZGV4IDY1NzRmMWUuLmY1NDMxZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVGV4dEl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVy
YXRvci5jcHAKQEAgLTI2NjcsMTIgKzI2NjcsMTUgQEAgU3RyaW5nIHBsYWluVGV4dChjb25zdCBS
YW5nZSogciwgVGV4dEl0ZXJhdG9yQmVoYXZpb3IgZGVmYXVsdEJlaGF2aW9yLCBib29sIGlzRGkK
ICAgICBpZiAoIWJ1ZmZlckxlbmd0aCkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAK
LSAgICBTdHJpbmcgcmVzdWx0ID0gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gKnN0
cmluZzsKIAotICAgIGlmIChpc0Rpc3BsYXlTdHJpbmcpCi0gICAgICAgIHItPm93bmVyRG9jdW1l
bnQoKS5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKHJlc3VsdCk7CisgICAgICAgIGlm
IChpc0Rpc3BsYXlTdHJpbmcpCisgICAgICAgICAgICByLT5vd25lckRvY3VtZW50KCkuZGlzcGxh
eVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhyZXN1bHQpOwogCi0gICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5n
IHBsYWluVGV4dFJlcGxhY2luZ05vQnJlYWtTcGFjZShjb25zdCBSYW5nZSogcmFuZ2UsIFRleHRJ
dGVyYXRvckJlaGF2aW9yIGRlZmF1bHRCZWhhdmlvciwgYm9vbCBpc0Rpc3BsYXlTdHJpbmcpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAppbmRleCBmZDc5MDY2Li5iZWU2
M2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKQEAgLTQyNSw3
ICs0MjUsOSBAQCBSZWZQdHI8RGF0YVRyYW5zZmVyPiBUeXBpbmdDb21tYW5kOjppbnB1dEV2ZW50
RGF0YVRyYW5zZmVyKCkgY29uc3QKIAogICAgIFN0cmluZ0J1aWxkZXIgaHRtbFRleHQ7CiAgICAg
TWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZENoYXJhY3RlcnNSZXBsYWNpbmdFbnRpdGllcyhodG1s
VGV4dCwgbV9jdXJyZW50VGV4dFRvSW5zZXJ0LCAwLCBtX2N1cnJlbnRUZXh0VG9JbnNlcnQubGVu
Z3RoKCksIEVudGl0eU1hc2tJbkhUTUxQQ0RBVEEpOwotICAgIHJldHVybiBEYXRhVHJhbnNmZXI6
OmNyZWF0ZUZvcklucHV0RXZlbnQobV9jdXJyZW50VGV4dFRvSW5zZXJ0LCBodG1sVGV4dC50b1N0
cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBodG1sVGV4dC50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JJbnB1dEV2ZW50KG1fY3VycmVudFRl
eHRUb0luc2VydCwgKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBUeXBpbmdDb21t
YW5kOjpkaWRBcHBseUNvbW1hbmQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9WaXNpYmxlU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNl
bGVjdGlvbi5jcHAKaW5kZXggMTg2NTBhYi4uNzNhY2NjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCkBAIC03MDcsNyArNzA3LDEwIEBAIHZvaWQgVmlz
aWJsZVNlbGVjdGlvbjo6Zm9ybWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBs
ZW5ndGgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQocyk7CiAgICAgfQogCi0gICAgc3Ry
bmNweShidWZmZXIsIHJlc3VsdC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBzdHJu
Y3B5KGJ1ZmZlciwgc3RyaW5nLT51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsKKyAgICBlbHNl
CisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6c2hvd1RyZWVG
b3JUaGlzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2Ev
RGF0YURldGVjdGlvbi5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVj
dGlvbi5tbQppbmRleCBmNDQ1NjE2Li5lOTg2NDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tCkBAIC0zMTksNyArMzE5LDkgQEAgc3RhdGljIFN0
cmluZyBkYXRhRGV0ZWN0b3JTdHJpbmdGb3JQYXRoKE5TSW5kZXhQYXRoICpwYXRoKQogICAgICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcigodW5zaWduZWQgbG9uZylbcGF0aCBpbmRleEF0
UG9zaXRpb246MF0pOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnLycpOwogICAgICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcigodW5zaWduZWQgbG9uZylbcGF0aCBpbmRleEF0
UG9zaXRpb246MV0pOwotICAgICAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOwor
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgZGVm
YXVsdDogewogICAgICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7CkBAIC0zMjksNyAr
MzMxLDkgQEAgc3RhdGljIFN0cmluZyBkYXRhRGV0ZWN0b3JTdHJpbmdGb3JQYXRoKE5TSW5kZXhQ
YXRoICpwYXRoKQogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIoKHVuc2ln
bmVkIGxvbmcpW3BhdGggaW5kZXhBdFBvc2l0aW9uOmldKTsKICAgICAgICAgfQogCi0gICAgICAg
IHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KaW5kZXggNmIxMzk3ZS4uNWQzMjkzOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbQpAQCAtMjI1
NCw3ICsyMjU0LDEwIEBAIHZvaWQgSFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NUZXh0KENoYXJhY3Rl
ckRhdGEmIGNoYXJhY3RlckRhdGEpCiAgICAgICAgIH0KICAgICAgICAgaWYgKHdhc1NwYWNlKQog
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKLSAgICAgICAgb3V0cHV0U3RyaW5nID0g
YnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgICAgICBvdXRwdXRTdHJpbmcgPSAqc3RyaW5nOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIGlmIChvdXRwdXRTdHJpbmcu
bGVuZ3RoKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRv
cklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbQppbmRleCA1
NjIxMzU1Li4yZmU1NDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9F
ZGl0b3JJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1t
CkBAIC0yODQsNyArMjg0LDEwIEBAIHZvaWQgRWRpdG9yOjpzZXREaWN0YXRpb25QaHJhc2VzQXND
aGlsZE9mRWxlbWVudChjb25zdCBWZWN0b3I8VmVjdG9yPFN0cmluZz4+JiBkCiAgICAgZm9yIChh
dXRvJiBpbnRlcnByZXRhdGlvbnMgOiBkaWN0YXRpb25QaHJhc2VzKQogICAgICAgICBkaWN0YXRp
b25QaHJhc2VzQnVpbGRlci5hcHBlbmQoaW50ZXJwcmV0YXRpb25zWzBdKTsKIAotICAgIGVsZW1l
bnQuYXBwZW5kQ2hpbGQoY3JlYXRlRnJhZ21lbnRGcm9tVGV4dCgqY29udGV4dCwgZGljdGF0aW9u
UGhyYXNlc0J1aWxkZXIudG9TdHJpbmcoKSkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGRpY3Rh
dGlvblBocmFzZXNCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hp
bGQoY3JlYXRlRnJhZ21lbnRGcm9tVGV4dCgqY29udGV4dCwgKnN0cmluZykpOworICAgIGVsc2UK
KyAgICAgICAgQ1JBU0goKTsKIAogICAgIC8vIFdlIG5lZWQgYSBsYXlvdXQgaW4gb3JkZXIgdG8g
YWRkIG1hcmtlcnMgYmVsb3cuCiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvbWFya3VwLmNwcAppbmRleCA1NTUxZWVjLi5kNTY4ODEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9tYXJrdXAuY3BwCkBAIC0yOTAsNyArMjkwLDEwIEBAIHZvaWQgU3R5bGVkTWFya3VwQWNj
dW11bGF0b3I6OndyYXBXaXRoTm9kZShOb2RlJiBub2RlLCBib29sIGNvbnZlcnRCbG9ja3NUb0lu
bGluCiAgICAgICAgIGFwcGVuZEVsZW1lbnQobWFya3VwLCBkb3duY2FzdDxFbGVtZW50Pihub2Rl
KSwgY29udmVydEJsb2Nrc1RvSW5saW5lcyAmJiBpc0Jsb2NrKCZub2RlKSwgcmFuZ2VGdWxseVNl
bGVjdHNOb2RlKTsKICAgICBlbHNlCiAgICAgICAgIGFwcGVuZFN0YXJ0TWFya3VwKG1hcmt1cCwg
bm9kZSwgbnVsbHB0cik7Ci0gICAgbV9yZXZlcnNlZFByZWNlZGluZ01hcmt1cC5hcHBlbmQobWFy
a3VwLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1hcmt1cC50b1N0cmluZygp
KQorICAgICAgICBtX3JldmVyc2VkUHJlY2VkaW5nTWFya3VwLmFwcGVuZCgqc3RyaW5nKTsKKyAg
ICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgYXBwZW5kRW5kVGFnKG5vZGUpOwogICAgIGlm
IChtX25vZGVzKQogICAgICAgICBtX25vZGVzLT5hcHBlbmQoJm5vZGUpOwpAQCAtMzAwLDcgKzMw
MywxMCBAQCB2b2lkIFN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjp3cmFwV2l0aFN0eWxlTm9kZShT
dHlsZVByb3BlcnRpZXMqIHN0eWxlLCBEb2N1bWVudAogewogICAgIFN0cmluZ0J1aWxkZXIgb3Bl
blRhZzsKICAgICBhcHBlbmRTdHlsZU5vZGVPcGVuVGFnKG9wZW5UYWcsIHN0eWxlLCBkb2N1bWVu
dCwgaXNCbG9jayk7Ci0gICAgbV9yZXZlcnNlZFByZWNlZGluZ01hcmt1cC5hcHBlbmQob3BlblRh
Zy50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBvcGVuVGFnLnRvU3RyaW5nKCkp
CisgICAgICAgIG1fcmV2ZXJzZWRQcmVjZWRpbmdNYXJrdXAuYXBwZW5kKCpzdHJpbmcpOworICAg
IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICBhcHBlbmRTdHJpbmcoc3R5bGVOb2RlQ2xvc2VU
YWcoaXNCbG9jaykpOwogfQogCkBAIC0zMzQsNyArMzQwLDkgQEAgU3RyaW5nIFN0eWxlZE1hcmt1
cEFjY3VtdWxhdG9yOjp0YWtlUmVzdWx0cygpCiAgICAgY29uY2F0ZW5hdGVNYXJrdXAocmVzdWx0
KTsKIAogICAgIC8vIFdlIHJlbW92ZSAnXDAnIGNoYXJhY3RlcnMgYmVjYXVzZSB0aGV5IGFyZSBu
b3QgdmlzaWJseSByZW5kZXJlZCB0byB0aGUgdXNlci4KLSAgICByZXR1cm4gcmVzdWx0LnRvU3Ry
aW5nKCkucmVwbGFjZVdpdGhMaXRlcmFsKCdcMCcsICIiKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0cmluZy0+cmVwbGFjZVdpdGhM
aXRlcmFsKCdcMCcsICIiKTsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIFN0eWxlZE1hcmt1cEFj
Y3VtdWxhdG9yOjphcHBlbmRUZXh0KFN0cmluZ0J1aWxkZXImIG91dCwgY29uc3QgVGV4dCYgdGV4
dCkKQEAgLTM1OSw3ICszNjcsMTAgQEAgdm9pZCBTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6YXBw
ZW5kVGV4dChTdHJpbmdCdWlsZGVyJiBvdXQsIGNvbnN0IFRleHQmIHRleHQpCiAgICAgICAgIFN0
cmluZyBjb250ZW50ID0gdXNlUmVuZGVyZWRUZXh0ID8gcmVuZGVyZWRUZXh0KHRleHQsIG1fcmFu
Z2UpIDogc3RyaW5nVmFsdWVGb3JSYW5nZSh0ZXh0LCBtX3JhbmdlKTsKICAgICAgICAgU3RyaW5n
QnVpbGRlciBidWZmZXI7CiAgICAgICAgIGFwcGVuZENoYXJhY3RlcnNSZXBsYWNpbmdFbnRpdGll
cyhidWZmZXIsIGNvbnRlbnQsIDAsIGNvbnRlbnQubGVuZ3RoKCksIEVudGl0eU1hc2tJblBDREFU
QSk7Ci0gICAgICAgIG91dC5hcHBlbmQoY29udmVydEhUTUxUZXh0VG9JbnRlcmNoYW5nZUZvcm1h
dChidWZmZXIudG9TdHJpbmcoKSwgJnRleHQpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
YnVmZmVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBvdXQuYXBwZW5kKGNvbnZlcnRIVE1MVGV4
dFRvSW50ZXJjaGFuZ2VGb3JtYXQoKnN0cmluZywgJnRleHQpKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBpZiAod3JhcHBpbmdTcGFuKQpAQCAtODcz
LDcgKzg4NCw5IEBAIFN0cmluZyBzYW5pdGl6ZWRNYXJrdXBGb3JGcmFnbWVudEluRG9jdW1lbnQo
UmVmPERvY3VtZW50RnJhZ21lbnQ+JiYgZnJhZ21lbnQsIERvCiAgICAgICAgICAgICAieG1sbnM9
XCJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwXCI+Iik7CiAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKHJlc3VsdCk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPC9odG1sPiIp
OwotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMTA5Miw3
ICsxMTA1LDkgQEAgU3RyaW5nIHVybFRvTWFya3VwKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJp
bmcmIHRpdGxlKQogICAgIG1hcmt1cC5hcHBlbmRMaXRlcmFsKCJcIj4iKTsKICAgICBNYXJrdXBB
Y2N1bXVsYXRvcjo6YXBwZW5kQ2hhcmFjdGVyc1JlcGxhY2luZ0VudGl0aWVzKG1hcmt1cCwgdGl0
bGUsIDAsIHRpdGxlLmxlbmd0aCgpLCBFbnRpdHlNYXNrSW5QQ0RBVEEpOwogICAgIG1hcmt1cC5h
cHBlbmRMaXRlcmFsKCI8L2E+Iik7Ci0gICAgcmV0dXJuIG1hcmt1cC50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IG1hcmt1cC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBFeGNlcHRpb25PcjxSZWY8RG9jdW1lbnRGcmFnbWVu
dD4+IGNyZWF0ZUZyYWdtZW50Rm9ySW5uZXJPdXRlckhUTUwoRWxlbWVudCYgY29udGV4dEVsZW1l
bnQsIGNvbnN0IFN0cmluZyYgbWFya3VwLCBQYXJzZXJDb250ZW50UG9saWN5IHBhcnNlckNvbnRl
bnRQb2xpY3kpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcApp
bmRleCA5YTIyMzRmLi4yODM0NWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L0ZpbGVSZWFkZXJMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJl
YWRlckxvYWRlci5jcHAKQEAgLTMzNywyMCArMzM3LDIwIEBAIHZvaWQgRmlsZVJlYWRlckxvYWRl
cjo6Y29udmVydFRvRGF0YVVSTCgpCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiZGF0YToiKTsKIAotICAgIGlmICghbV9ieXRlc0xvYWRlZCkg
ewotICAgICAgICBtX3N0cmluZ1Jlc3VsdCA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICAgICAg
cmV0dXJuOworICAgIGlmIChtX2J5dGVzTG9hZGVkKSB7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KG1fZGF0YVR5cGUpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjtiYXNlNjQsIik7
CisKKyAgICAgICAgVmVjdG9yPGNoYXI+IG91dDsKKyAgICAgICAgYmFzZTY0RW5jb2RlKG1fcmF3
RGF0YS0+ZGF0YSgpLCBtX2J5dGVzTG9hZGVkLCBvdXQpOworICAgICAgICBvdXQuYXBwZW5kKCdc
MCcpOworICAgICAgICBidWlsZGVyLmFwcGVuZChvdXQuZGF0YSgpKTsKICAgICB9CiAKLSAgICBi
dWlsZGVyLmFwcGVuZChtX2RhdGFUeXBlKTsKLSAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjti
YXNlNjQsIik7Ci0KLSAgICBWZWN0b3I8Y2hhcj4gb3V0OwotICAgIGJhc2U2NEVuY29kZShtX3Jh
d0RhdGEtPmRhdGEoKSwgbV9ieXRlc0xvYWRlZCwgb3V0KTsKLSAgICBvdXQuYXBwZW5kKCdcMCcp
OwotICAgIGJ1aWxkZXIuYXBwZW5kKG91dC5kYXRhKCkpOwotCi0gICAgbV9zdHJpbmdSZXN1bHQg
PSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICBtX3N0cmluZ1Jlc3VsdCA9ICpzdHJpbmc7CisgICAgZWxzZQorICAg
ICAgICBDUkFTSCgpOwogfQogCiBib29sIEZpbGVSZWFkZXJMb2FkZXI6OmlzQ29tcGxldGVkKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcAppbmRleCBjOTVmOTY5Li5kYjQy
OTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCkBAIC0yNzMsMTAgKzI3Mywx
MyBAQCB2b2lkIERPTVRva2VuTGlzdDo6dXBkYXRlQXNzb2NpYXRlZEF0dHJpYnV0ZUZyb21Ub2tl
bnMoKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICAgICAgYnVpbGRlci5h
cHBlbmQodG9rZW4pOwogICAgIH0KLSAgICBBdG9taWNTdHJpbmcgc2VyaWFsaXplZFZhbHVlID0g
YnVpbGRlci50b0F0b21pY1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9BdG9taWNTdHJpbmcoKSkgeworICAgICAgICBBdG9taWNTdHJpbmcgc2VyaWFsaXplZFZhbHVl
ID0gKnN0cmluZzsKIAotICAgIFNldEZvclNjb3BlPGJvb2w+IGluQXR0cmlidXRlVXBkYXRlKG1f
aW5VcGRhdGVBc3NvY2lhdGVkQXR0cmlidXRlRnJvbVRva2VucywgdHJ1ZSk7Ci0gICAgbV9lbGVt
ZW50LnNldEF0dHJpYnV0ZShtX2F0dHJpYnV0ZU5hbWUsIHNlcmlhbGl6ZWRWYWx1ZSk7CisgICAg
ICAgIFNldEZvclNjb3BlPGJvb2w+IGluQXR0cmlidXRlVXBkYXRlKG1faW5VcGRhdGVBc3NvY2lh
dGVkQXR0cmlidXRlRnJvbVRva2VucywgdHJ1ZSk7CisgICAgICAgIG1fZWxlbWVudC5zZXRBdHRy
aWJ1dGUobV9hdHRyaWJ1dGVOYW1lLCBzZXJpYWxpemVkVmFsdWUpOworICAgIH0gZWxzZQorICAg
ICAgICBDUkFTSCgpOwogfQogCiBWZWN0b3I8QXRvbWljU3RyaW5nPiYgRE9NVG9rZW5MaXN0Ojp0
b2tlbnMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcAppbmRleCBiOTNlMTJi
Li41ODM2YzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcApAQCAtMTA0
LDcgKzEwNCw5IEBAIFN0cmluZyBFbWFpbElucHV0VHlwZTo6c2FuaXRpemVWYWx1ZShjb25zdCBT
dHJpbmcmIHByb3Bvc2VkVmFsdWUpIGNvbnN0CiAgICAgICAgICAgICBzdHJpcHBlZFZhbHVlLmFw
cGVuZCgnLCcpOwogICAgICAgICBzdHJpcHBlZFZhbHVlLmFwcGVuZChzdHJpcExlYWRpbmdBbmRU
cmFpbGluZ0hUTUxTcGFjZXMoYWRkcmVzc2VzW2ldKSk7CiAgICAgfQotICAgIHJldHVybiBzdHJp
cHBlZFZhbHVlLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaXBwZWRWYWx1
ZS50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNw
cAppbmRleCAzZTU1YTA1Li5mZGM0OWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ZpbGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlw
ZS5jcHAKQEAgLTQ2Nyw3ICs0NjcsOSBAQCBTdHJpbmcgRmlsZUlucHV0VHlwZTo6ZGVmYXVsdFRv
b2xUaXAoKSBjb25zdAogICAgICAgICBpZiAoaSAhPSBsaXN0U2l6ZSAtIDEpCiAgICAgICAgICAg
ICBuYW1lcy5hcHBlbmQoJ1xuJyk7CiAgICAgfQotICAgIHJldHVybiBuYW1lcy50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IG5hbWVzLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9Gb3JtQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250
cm9sbGVyLmNwcAppbmRleCAwZjViNzc1Li4xYTI5YTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zv
cm1Db250cm9sbGVyLmNwcApAQCAtMzEyLDcgKzMxMiw5IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5n
IGZvcm1TaWduYXR1cmUoY29uc3QgSFRNTEZvcm1FbGVtZW50JiBmb3JtKQogICAgICAgICBidWls
ZGVyLmFwcGVuZChhY3Rpb25VUkwuc3RyaW5nKCkpOwogCiAgICAgcmVjb3JkRm9ybVN0cnVjdHVy
ZShmb3JtLCBidWlsZGVyKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KIAogQXRvbWljU3RyaW5nIEZvcm1LZXlHZW5lcmF0b3I6OmZv
cm1LZXkoY29uc3QgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSYgY29udHJvbCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKaW5kZXggNzE1MjMxNy4uYTcw
MjZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTQw
MCwxMCArNDAwLDE0IEBAIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OmhhbmRsZUNsaWNrKEV2ZW50
JiBldmVudCkKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47CiAKLSAgICBTdHJpbmdC
dWlsZGVyIHVybDsKLSAgICB1cmwuYXBwZW5kKHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNw
YWNlcyhhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGhyZWZBdHRyKSkpOwotICAgIGFw
cGVuZFNlcnZlck1hcE1vdXNlUG9zaXRpb24odXJsLCBldmVudCk7Ci0gICAgVVJMIGNvbXBsZXRl
ZFVSTCA9IGRvY3VtZW50KCkuY29tcGxldGVVUkwodXJsLnRvU3RyaW5nKCkpOworICAgIFVSTCBj
b21wbGV0ZWRVUkwgPSBkb2N1bWVudCgpLmNvbXBsZXRlVVJMKFsmXSAoKSB7CisgICAgICAgIFN0
cmluZ0J1aWxkZXIgdXJsOworICAgICAgICB1cmwuYXBwZW5kKHN0cmlwTGVhZGluZ0FuZFRyYWls
aW5nSFRNTFNwYWNlcyhhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGhyZWZBdHRyKSkp
OworICAgICAgICBhcHBlbmRTZXJ2ZXJNYXBNb3VzZVBvc2l0aW9uKHVybCwgZXZlbnQpOworICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSB1cmwudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOworICAgIH0oKSk7CiAKICAgICBTdHJpbmcgZG93
bmxvYWRBdHRyaWJ1dGU7CiAjaWYgRU5BQkxFKERPV05MT0FEX0FUVFJJQlVURSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggNjY0ZWRmMC4uYjY3YjRjMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTMzNiw4ICsz
MzYsMTEgQEAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKiBIVE1MQ2FudmFzRWxlbWVudDo6Y3Jl
YXRlQ29udGV4dDJkKGNvbnN0IFN0cmluZyYgdHlwZSkKICAgICAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmRMaXRlcmFsKCJUb3RhbCBjYW52YXMgbWVtb3J5IHVzZSBleGNlZWRzIHRoZSBtYXhpbXVt
IGxpbWl0ICgiKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIobWF4QWN0aXZl
UGl4ZWxNZW1vcnkoKSAvIDEwMjQgLyAxMDI0KTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmRMaXRlcmFsKCIgTUIpLiIpOwotICAgICAgICBkb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIHN0cmluZ0J1aWxkZXIu
dG9TdHJpbmcoKSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIGRvY3VtZW50
KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2Fy
bmluZywgKnN0cmluZyk7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQor
ICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIG1fY29udGV4dCA9IENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6Y3JlYXRlKCp0aGlzLCBkb2N1bWVudCgpLmluUXVpcmtzTW9kZSgpLCB1c2Vz
RGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUpOwpAQCAtODg5LDggKzg5MiwxMSBAQCB2b2lkIEhU
TUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcigpIGNvbnN0CiAgICAgICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiQ2FudmFzIGFyZWEgZXhjZWVkcyB0aGUgbWF4aW11bSBs
aW1pdCAod2lkdGggKiBoZWlnaHQgPiAiKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRO
dW1iZXIobWF4Q2FudmFzQXJlYSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiKS4iKTsKLSAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291
cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkp
OwotICAgICAgICByZXR1cm47CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2Fn
ZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAqc3RyaW5nKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBDUkFTSCgpOwogICAgIH0KICAg
ICAKICAgICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3QgdXNlIG1vcmUgcGl4ZWwgbWVtb3J5IHRoYW4g
dGhlIHN5c3RlbSBjYW4gc3VwcG9ydC4KQEAgLTkwMCw4ICs5MDYsMTEgQEAgdm9pZCBIVE1MQ2Fu
dmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIoKSBjb25zdAogICAgICAgICBzdHJpbmdCdWls
ZGVyLmFwcGVuZExpdGVyYWwoIlRvdGFsIGNhbnZhcyBtZW1vcnkgdXNlIGV4Y2VlZHMgdGhlIG1h
eGltdW0gbGltaXQgKCIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcihtYXhB
Y3RpdmVQaXhlbE1lbW9yeSgpIC8gMTAyNCAvIDEwMjQpOwogICAgICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZExpdGVyYWwoIiBNQikuIik7Ci0gICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29sZU1l
c3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgc3RyaW5nQnVp
bGRlci50b1N0cmluZygpKTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIGRvY3VtZW50KCku
YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2Fybmlu
ZywgKnN0cmluZyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgQ1JB
U0goKTsKICAgICB9CiAKICAgICBpZiAoIXdpZHRoKCkgfHwgIWhlaWdodCgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuY3BwCmluZGV4IDhkNmMzNDcuLmMzNWE2N2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5jcHAKQEAgLTExMSwxMCArMTExLDEzIEBA
IHN0YXRpYyBib29sIHBhcnNlRm9udFNpemUoY29uc3QgQ2hhcmFjdGVyVHlwZSogY2hhcmFjdGVy
cywgdW5zaWduZWQgbGVuZ3RoLCBpbnQmCiAgICAgLy8gU3RlcCA4CiAgICAgaW50IHZhbHVlOwog
CisgICAgaWYgKGRpZ2l0cy5mYWlsZWQoKSkKKyAgICAgICAgQ1JBU0goKTsKKwogICAgIGlmIChk
aWdpdHMuaXM4Qml0KCkpCi0gICAgICAgIHZhbHVlID0gY2hhcmFjdGVyc1RvSW50U3RyaWN0KGRp
Z2l0cy5jaGFyYWN0ZXJzOCgpLCBkaWdpdHMubGVuZ3RoKCkpOworICAgICAgICB2YWx1ZSA9IGNo
YXJhY3RlcnNUb0ludFN0cmljdCgqZGlnaXRzLmNoYXJhY3RlcnM4KCksIGRpZ2l0cy5sZW5ndGgo
KSk7CiAgICAgZWxzZQotICAgICAgICB2YWx1ZSA9IGNoYXJhY3RlcnNUb0ludFN0cmljdChkaWdp
dHMuY2hhcmFjdGVyczE2KCksIGRpZ2l0cy5sZW5ndGgoKSk7CisgICAgICAgIHZhbHVlID0gY2hh
cmFjdGVyc1RvSW50U3RyaWN0KCpkaWdpdHMuY2hhcmFjdGVyczE2KCksIGRpZ2l0cy5sZW5ndGgo
KSk7CiAKICAgICAvLyBTdGVwIDkKICAgICBpZiAobW9kZSA9PSBSZWxhdGl2ZVBsdXMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAppbmRleCA0ZjY1OTdjLi5hMmUxYzE2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKQEAgLTQ3NCw3ICs0
NzQsOSBAQCBTdHJpbmcgSFRNTEltYWdlRWxlbWVudDo6Y29tcGxldGVVUkxzSW5BdHRyaWJ1dGVW
YWx1ZShjb25zdCBVUkwmIGJhc2UsIGNvbnN0IEF0dAogICAgICAgICAgICAgICAgIHJlc3VsdC5h
cHBlbmQoJ3cnKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVz
dWx0LnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmlu
ZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAg
fQogICAgIHJldHVybiBIVE1MRWxlbWVudDo6Y29tcGxldGVVUkxzSW5BdHRyaWJ1dGVWYWx1ZShi
YXNlLCBhdHRyaWJ1dGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKaW5kZXggNTIxZmNhMi4uNzIxNDQ2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCkBAIC0yMzIsOSArMjMyLDEyIEBAIHN0YXRpYyBTdHJpbmcgYWN0aW9uTmFt
ZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OkRlbGF5ZWRBY3Rpb25UeXBlIGFjdGlvbikKIAogI3Vu
ZGVmIEFDVElPTgogCi0gICAgU3RyaW5nIG5hbWUgPSBhY3Rpb25CdWlsZGVyLnRvU3RyaW5nKCk7
Ci0gICAgQVNTRVJUKCFuYW1lLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIG5hbWU7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gYWN0aW9uQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIFN0cmlu
ZyBuYW1lID0gKnN0cmluZzsKKyAgICAgICAgQVNTRVJUKCFuYW1lLmlzRW1wdHkoKSk7CisgICAg
ICAgIHJldHVybiBuYW1lOworICAgIH0KKyAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKaW5kZXggOWY2ZGFkMi4uZmE5OGFh
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKQEAgLTM0OSw3
ICszNDksOSBAQCBTdHJpbmcgSFRNTE9wdGlvbkVsZW1lbnQ6OmNvbGxlY3RPcHRpb25Jbm5lclRl
eHQoKSBjb25zdAogICAgICAgICBlbHNlCiAgICAgICAgICAgICBub2RlID0gTm9kZVRyYXZlcnNh
bDo6bmV4dCgqbm9kZSwgdGhpcyk7CiAgICAgfQotICAgIHJldHVybiB0ZXh0LnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdGV4dC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA1OGY5
MWFhLi4zYWYzNDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50LmNwcApAQCAtMTQzLDcgKzE0Myw5IEBAIFN0cmluZyBIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudDo6c3RyaXBwZWRQbGFjZWhvbGRlcigpIGNvbnN0CiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgc3RyaXBwZWQuYXBwZW5kKGNoYXJhY3Rlcik7CiAgICAgfQot
ICAgIHJldHVybiBzdHJpcHBlZC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0
cmlwcGVkLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIHN0YXRpYyBib29sIGlzTm90TGluZUJyZWFrKFVDaGFyIGNoKSB7IHJldHVybiBjaCAh
PSBuZXdsaW5lQ2hhcmFjdGVyICYmIGNoICE9IGNhcnJpYWdlUmV0dXJuOyB9CkBAIC01NTIsNyAr
NTU0LDkgQEAgc3RhdGljIFN0cmluZyBpbm5lclRleHRWYWx1ZUZyb20oVGV4dENvbnRyb2xJbm5l
clRleHRFbGVtZW50JiBpbm5lclRleHQpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGRvd25j
YXN0PFRleHQ+KCpub2RlKS5kYXRhKCkpOwogICAgIH0KICAgICBzdHJpcFRyYWlsaW5nTmV3bGlu
ZShyZXN1bHQpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0SW5uZXJU
ZXh0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTczNiw3ICs3NDAsOSBAQCBTdHJpbmcg
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnZhbHVlV2l0aEhhcmRMaW5lQnJlYWtzKCkgY29u
c3QKICAgICAgICAgICAgIGdldE5leHRTb2Z0QnJlYWsobGluZSwgYnJlYWtOb2RlLCBicmVha09m
ZnNldCk7CiAgICAgfQogICAgIHN0cmlwVHJhaWxpbmdOZXdsaW5lKHJlc3VsdCk7Ci0gICAgcmV0
dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBIVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudCogZW5jbG9zaW5nVGV4dEZvcm1Db250cm9sKGNvbnN0IFBv
c2l0aW9uJiBwb3NpdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFE
b2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCmluZGV4
IDExOTM0MGYuLjY5NzcxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFE
b2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcApA
QCAtMTIxLDcgKzEyMSwxMCBAQCB2b2lkIE1lZGlhRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3Vt
ZW50U3RydWN0dXJlKCkKICNpZiBQTEFURk9STShJT1MpCiAgICAgICAgIGVsZW1lbnRTdHlsZS5h
cHBlbmRMaXRlcmFsKCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiBhdXRvOyIpOwogI2VuZGlmCi0gICAg
ICAgIHZpZGVvRWxlbWVudC0+c2V0QXR0cmlidXRlKHN0eWxlQXR0ciwgZWxlbWVudFN0eWxlLnRv
U3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBlbGVtZW50U3R5bGUudG9TdHJp
bmcoKSkKKyAgICAgICAgICAgIHZpZGVvRWxlbWVudC0+c2V0QXR0cmlidXRlKHN0eWxlQXR0ciwg
KnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAg
ICAgYm9keS0+YXBwZW5kQ2hpbGQodmlkZW9FbGVtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L01lZGlhRWxlbWVudFNlc3Npb24uY3BwCmluZGV4IDVjZDc5MDUuLjZmNGUwZjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcApAQCAtODYsNyArODYsOSBA
QCBzdGF0aWMgU3RyaW5nIHJlc3RyaWN0aW9uTmFtZShNZWRpYUVsZW1lbnRTZXNzaW9uOjpCZWhh
dmlvclJlc3RyaWN0aW9ucyByZXN0cmljdAogICAgIENBU0UoSW52aXNpYmxlQXV0b3BsYXlOb3RQ
ZXJtaXR0ZWQpOwogICAgIENBU0UoT3ZlcnJpZGVVc2VyR2VzdHVyZVJlcXVpcmVtZW50Rm9yTWFp
bkNvbnRlbnQpOwogCi0gICAgcmV0dXJuIHJlc3RyaWN0aW9uQnVpbGRlci50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3RyaWN0aW9uQnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFGcmFnbWVudFVSSVBhcnNlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01lZGlhRnJhZ21lbnRVUklQYXJzZXIuY3BwCmluZGV4IGU3YTUxNmUu
LjMwNWI2NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFGcmFnbWVudFVS
SVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUZyYWdtZW50VVJJUGFy
c2VyLmNwcApAQCAtNTIsNyArNTIsOSBAQCBzdGF0aWMgU3RyaW5nIGNvbGxlY3REaWdpdHMoY29u
c3QgTENoYXIqIGlucHV0LCB1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbmVkJiBwb3NpdAogICAgIC8v
IERJR0lUIDsgYW55IHBvc2l0aXZlIG51bWJlcgogICAgIHdoaWxlIChwb3NpdGlvbiA8IGxlbmd0
aCAmJiBpc0FTQ0lJRGlnaXQoaW5wdXRbcG9zaXRpb25dKSkKICAgICAgICAgZGlnaXRzLmFwcGVu
ZChpbnB1dFtwb3NpdGlvbisrXSk7Ci0gICAgcmV0dXJuIGRpZ2l0cy50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IGRpZ2l0cy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIGNvbGxlY3RGcmFjdGlvbihj
b25zdCBMQ2hhciogaW5wdXQsIHVuc2lnbmVkIGxlbmd0aCwgdW5zaWduZWQmIHBvc2l0aW9uKQpA
QCAtNjcsNyArNjksOSBAQCBzdGF0aWMgU3RyaW5nIGNvbGxlY3RGcmFjdGlvbihjb25zdCBMQ2hh
ciogaW5wdXQsIHVuc2lnbmVkIGxlbmd0aCwgdW5zaWduZWQmIHBvcwogICAgIGRpZ2l0cy5hcHBl
bmQoaW5wdXRbcG9zaXRpb24rK10pOwogICAgIHdoaWxlIChwb3NpdGlvbiA8IGxlbmd0aCAmJiBp
c0FTQ0lJRGlnaXQoaW5wdXRbcG9zaXRpb25dKSkKICAgICAgICAgZGlnaXRzLmFwcGVuZChpbnB1
dFtwb3NpdGlvbisrXSk7Ci0gICAgcmV0dXJuIGRpZ2l0cy50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGRpZ2l0cy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBNZWRpYUZyYWdtZW50VVJJUGFyc2VyOjpNZWRpYUZyYWdtZW50
VVJJUGFyc2VyKGNvbnN0IFVSTCYgdXJsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9UeXBlQWhlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3BwCmluZGV4
IDc2NGU1MDIuLjNlZWM0ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFo
ZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAKQEAgLTgwLDcg
KzgwLDEwIEBAIGludCBUeXBlQWhlYWQ6OmhhbmRsZUV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50
LCBNYXRjaE1vZGVGbGFncyBtYXRjaE1vZGUpCiAgICAgICAgIHByZWZpeCA9IFN0cmluZygmYywg
MSk7CiAgICAgICAgIG1fcmVwZWF0aW5nQ2hhciA9IGM7CiAgICAgfSBlbHNlIGlmIChtYXRjaE1v
ZGUgJiBNYXRjaFByZWZpeCkgewotICAgICAgICBwcmVmaXggPSBtX2J1ZmZlci50b1N0cmluZygp
OworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBtX2J1ZmZlci50b1N0cmluZygpKQorICAgICAg
ICAgICAgcHJlZml4ID0gKnN0cmluZzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0go
KTsKICAgICAgICAgaWYgKG1fYnVmZmVyLmxlbmd0aCgpID4gMSkgewogICAgICAgICAgICAgbV9y
ZXBlYXRpbmdDaGFyID0gMDsKICAgICAgICAgICAgIHNlYXJjaFN0YXJ0T2Zmc2V0ID0gMDsKQEAg
LTEwNCw5ICsxMDcsMTIgQEAgaW50IFR5cGVBaGVhZDo6aGFuZGxlRXZlbnQoS2V5Ym9hcmRFdmVu
dCogZXZlbnQsIE1hdGNoTW9kZUZsYWdzIG1hdGNoTW9kZSkKIAogICAgIGlmIChtYXRjaE1vZGUg
JiBNYXRjaEluZGV4KSB7CiAgICAgICAgIGJvb2wgb2sgPSBmYWxzZTsKLSAgICAgICAgaW50IGlu
ZGV4ID0gbV9idWZmZXIudG9TdHJpbmcoKS50b0ludCgmb2spOwotICAgICAgICBpZiAoaW5kZXgg
PiAwICYmIGluZGV4IDw9IG9wdGlvbkNvdW50KQotICAgICAgICAgICAgcmV0dXJuIGluZGV4IC0g
MTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gbV9idWZmZXIudG9TdHJpbmcoKSkgeworICAg
ICAgICAgICAgaW50IGluZGV4ID0gc3RyaW5nLT50b0ludCgmb2spOworICAgICAgICAgICAgaWYg
KGluZGV4ID4gMCAmJiBpbmRleCA8PSBvcHRpb25Db3VudCkKKyAgICAgICAgICAgICAgICByZXR1
cm4gaW5kZXggLSAxOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAg
fQogICAgIHJldHVybiAtMTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCmluZGV4IGMyN2FmMjMuLmQ5NGZjZTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmNwcApAQCAtMTE3LDcgKzExNyw5IEBAIFN0cmluZyBDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ6OmZvbnQoKSBjb25zdAogICAgICAgICBzZXJpYWxpemVkRm9udC5hcHBlbmQo
ZmFtaWx5KTsKICAgICB9CiAKLSAgICByZXR1cm4gc2VyaWFsaXplZEZvbnQudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBzZXJpYWxpemVkRm9udC50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6c2V0Rm9udChjb25zdCBTdHJpbmcmIG5ld0ZvbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJh
c2UuY3BwCmluZGV4IDc2OGMwZmMuLjdhODhjZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCkBA
IC0yMTcyLDggKzIxNzIsMTEgQEAgRXhjZXB0aW9uT3I8UmVmUHRyPEltYWdlRGF0YT4+IENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmdldEltYWdlRGF0YShJbWFnZUIKICAgICAgICAgY29u
c29sZU1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiIHggIik7CiAgICAgICAgIGNvbnNvbGVNZXNzYWdl
LmFwcGVuZE51bWJlcihpbWFnZURhdGFSZWN0LmhlaWdodCgpKTsKIAotICAgICAgICBjYW52YXNC
YXNlKCkuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlOjpSZW5kZXJpbmcsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIGNvbnNvbGVNZXNzYWdlLnRv
U3RyaW5nKCkpOwotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3Ig
fTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gY29uc29sZU1lc3NhZ2UudG9TdHJpbmcoKSkg
eworICAgICAgICAgICAgY2FudmFzQmFzZSgpLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+YWRk
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6UmVuZGVyaW5nLCBNZXNzYWdlTGV2ZWw6OkVy
cm9yLCAqc3RyaW5nKTsKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3Rh
dGVFcnJvciB9OworICAgICAgICB9CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgcmV0
dXJuIEltYWdlRGF0YTo6Y3JlYXRlKGltYWdlRGF0YVJlY3Quc2l6ZSgpLCBieXRlQXJyYXkucmVs
ZWFzZU5vbk51bGwoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmluZGV4IDc4NzVkYTguLmNkNWVlMWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UuY3BwCkBAIC0xNjIsNyArMTYyLDkgQEAgbmFtZXNwYWNlIHsKIAogICAgICAg
ICBTdHJpbmcgcmVzdWx0KCkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG1fYnVpbGRl
ci50b1N0cmluZygpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gbV9idWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgICAgICBD
UkFTSCgpOwogICAgICAgICB9CiAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNvdXJjZVRyYWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFNvdXJjZVRyYWNrZXIuY3BwCmluZGV4IDIyZGJhOTAuLjgwYjFlNTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTb3VyY2VUcmFja2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU291cmNlVHJhY2tlci5j
cHAKQEAgLTgzLDggKzgzLDExIEBAIFN0cmluZyBIVE1MU291cmNlVHJhY2tlcjo6c291cmNlKGNv
bnN0IEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIG1fY3VycmVudFNvdXJjZS5hZHZhbmNlKCk7
CiAgICAgfQogCi0gICAgbV9jYWNoZWRTb3VyY2VGb3JUb2tlbiA9IHNvdXJjZS50b1N0cmluZygp
OwotICAgIHJldHVybiBtX2NhY2hlZFNvdXJjZUZvclRva2VuOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHNvdXJjZS50b1N0cmluZygpKSB7CisgICAgICAgIG1fY2FjaGVkU291cmNlRm9yVG9rZW4g
PSAqc3RyaW5nOworICAgICAgICByZXR1cm4gbV9jYWNoZWRTb3VyY2VGb3JUb2tlbjsKKyAgICB9
CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIEhUTUxTb3VyY2VUcmFja2VyOjpzb3VyY2UoY29u
c3QgSFRNTFRva2VuJiB0b2tlbiwgdW5zaWduZWQgYXR0cmlidXRlU3RhcnQsIHVuc2lnbmVkIGF0
dHJpYnV0ZUVuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxU
b2tlbml6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRva2VuaXplci5j
cHAKaW5kZXggOGFjMmY4NS4uMzY0ZWMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTFRva2VuaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFRva2VuaXplci5jcHAKQEAgLTE0MSw4ICsxNDEsMTAgQEAgaW5saW5lIGJvb2wgSFRN
TFRva2VuaXplcjo6cHJvY2Vzc0VudGl0eShTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKICAgICAg
ICAgQVNTRVJUKGRlY29kZWRFbnRpdHkuaXNFbXB0eSgpKTsKICAgICAgICAgYnVmZmVyQVNDSUlD
aGFyYWN0ZXIoJyYnKTsKICAgICB9IGVsc2UgeworICAgICAgICBpZiAoZGVjb2RlZEVudGl0eS5m
YWlsZWQoKSkKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBkZWNvZGVkRW50aXR5Lmxlbmd0aCgpOyArK2kpCi0gICAgICAgICAgICBidWZmZXJD
aGFyYWN0ZXIoZGVjb2RlZEVudGl0eVtpXSk7CisgICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIo
KmRlY29kZWRFbnRpdHlbaV0pOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTg2Myw4
ICs4NjUsMTAgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpwcm9jZXNzVG9rZW4oU2VnbWVudGVkU3Ry
aW5nJiBzb3VyY2UpCiAgICAgICAgICAgICBBU1NFUlQoZGVjb2RlZEVudGl0eS5pc0VtcHR5KCkp
OwogICAgICAgICAgICAgbV90b2tlbi5hcHBlbmRUb0F0dHJpYnV0ZVZhbHVlKCcmJyk7CiAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoZGVjb2RlZEVudGl0eS5mYWlsZWQoKSkKKyAg
ICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGRlY29kZWRFbnRpdHkubGVuZ3RoKCk7ICsraSkKLSAgICAgICAgICAgICAgICBtX3Rva2Vu
LmFwcGVuZFRvQXR0cmlidXRlVmFsdWUoZGVjb2RlZEVudGl0eVtpXSk7CisgICAgICAgICAgICAg
ICAgbV90b2tlbi5hcHBlbmRUb0F0dHJpYnV0ZVZhbHVlKCpkZWNvZGVkRW50aXR5W2ldKTsKICAg
ICAgICAgfQogICAgICAgICAvLyBXZSdyZSBzdXBwb3NlZCB0byBzd2l0Y2ggYmFjayB0byB0aGUg
YXR0cmlidXRlIHZhbHVlIHN0YXRlIHRoYXQKICAgICAgICAgLy8gd2Ugd2VyZSBpbiB3aGVuIHdl
IHdlcmUgc3dpdGNoZWQgaW50byB0aGlzIHN0YXRlLiBSYXRoZXIgdGhhbgpAQCAtMTQwMyw3ICsx
NDA3LDkgQEAgU3RyaW5nIEhUTUxUb2tlbml6ZXI6OmJ1ZmZlcmVkQ2hhcmFjdGVycygpIGNvbnN0
CiAgICAgY2hhcmFjdGVycy5hcHBlbmQoJzwnKTsKICAgICBjaGFyYWN0ZXJzLmFwcGVuZCgnLycp
OwogICAgIGNoYXJhY3RlcnMuYXBwZW5kKG1fdGVtcG9yYXJ5QnVmZmVyLmRhdGEoKSwgbV90ZW1w
b3JhcnlCdWZmZXIuc2l6ZSgpKTsKLSAgICByZXR1cm4gY2hhcmFjdGVycy50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IGNoYXJhY3RlcnMudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBIVE1MVG9rZW5pemVyOjp1cGRh
dGVTdGF0ZUZvcihjb25zdCBBdG9taWNTdHJpbmcmIHRhZ05hbWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcAppbmRleCBiMTBhNGM0Li44OTlkNGJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAK
QEAgLTI1NjksMTkgKzI1NjksMjIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OmRlZmF1bHRGb3JB
ZnRlckhlYWQoKQogCiB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6ZGVmYXVsdEZvckluVGFibGVUZXh0
KCkKIHsKLSAgICBTdHJpbmcgY2hhcmFjdGVycyA9IG1fcGVuZGluZ1RhYmxlQ2hhcmFjdGVycy50
b1N0cmluZygpOwotICAgIG1fcGVuZGluZ1RhYmxlQ2hhcmFjdGVycy5jbGVhcigpOwotICAgIGlm
ICghaXNBbGxXaGl0ZXNwYWNlKGNoYXJhY3RlcnMpKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBwYXJz
ZSBlcnJvcgotICAgICAgICBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6UmVkaXJlY3RUb0Zvc3RlclBh
cmVudEd1YXJkIHJlZGlyZWN0ZXIobV90cmVlKTsKLSAgICAgICAgbV90cmVlLnJlY29uc3RydWN0
VGhlQWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7Ci0gICAgICAgIG1fdHJlZS5pbnNlcnRUZXh0
Tm9kZShjaGFyYWN0ZXJzLCBOb3RBbGxXaGl0ZXNwYWNlKTsKLSAgICAgICAgbV9mcmFtZXNldE9r
ID0gZmFsc2U7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbV9wZW5kaW5nVGFibGVDaGFyYWN0ZXJz
LnRvU3RyaW5nKCkpIHsKKyAgICAgICAgU3RyaW5nIGNoYXJhY3RlcnMgPSAqc3RyaW5nOworICAg
ICAgICBtX3BlbmRpbmdUYWJsZUNoYXJhY3RlcnMuY2xlYXIoKTsKKyAgICAgICAgaWYgKCFpc0Fs
bFdoaXRlc3BhY2UoY2hhcmFjdGVycykpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBwYXJzZSBl
cnJvcgorICAgICAgICAgICAgSFRNTENvbnN0cnVjdGlvblNpdGU6OlJlZGlyZWN0VG9Gb3N0ZXJQ
YXJlbnRHdWFyZCByZWRpcmVjdGVyKG1fdHJlZSk7CisgICAgICAgICAgICBtX3RyZWUucmVjb25z
dHJ1Y3RUaGVBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKKyAgICAgICAgICAgIG1fdHJlZS5p
bnNlcnRUZXh0Tm9kZShjaGFyYWN0ZXJzLCBOb3RBbGxXaGl0ZXNwYWNlKTsKKyAgICAgICAgICAg
IG1fZnJhbWVzZXRPayA9IGZhbHNlOworICAgICAgICAgICAgbV9pbnNlcnRpb25Nb2RlID0gbV9v
cmlnaW5hbEluc2VydGlvbk1vZGU7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAg
ICAgICAgbV90cmVlLmluc2VydFRleHROb2RlKGNoYXJhY3RlcnMpOwogICAgICAgICBtX2luc2Vy
dGlvbk1vZGUgPSBtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLSAgICBtX3RyZWUuaW5zZXJ0VGV4dE5vZGUoY2hhcmFjdGVycyk7Ci0gICAgbV9pbnNlcnRp
b25Nb2RlID0gbV9vcmlnaW5hbEluc2VydGlvbk1vZGU7CisgICAgfSBlbHNlCisgICAgICAgIENS
QVNIKCk7CiB9CiAKIGJvb2wgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkhl
YWQoQXRvbWljSFRNTFRva2VuJiYgdG9rZW4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcAppbmRleCA4MGI0MjEzLi43ZDRjODliIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAK
QEAgLTY2LDcgKzY2LDkgQEAgc3RhdGljIGlubGluZSBTdHJpbmcgYnVpbGRDb25zb2xlRXJyb3Io
Y29uc3QgWFNTSW5mbyYgeHNzSW5mbykKICAgICBlbHNlCiAgICAgICAgIG1lc3NhZ2UuYXBwZW5k
TGl0ZXJhbCgiIFRoZSBhdWRpdG9yIHdhcyBlbmFibGVkIGJlY2F1c2UgdGhlIHNlcnZlciBkaWQg
bm90IHNlbmQgYW4gJ1gtWFNTLVByb3RlY3Rpb24nIGhlYWRlci4iKTsKIAotICAgIHJldHVybiBt
ZXNzYWdlLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWVzc2FnZS50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBSZWY8Rm9y
bURhdGE+IFhTU0F1ZGl0b3JEZWxlZ2F0ZTo6Z2VuZXJhdGVWaW9sYXRpb25SZXBvcnQoY29uc3Qg
WFNTSW5mbyYgeHNzSW5mbykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
QnVmZmVyZWRMaW5lUmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQnVmZmVy
ZWRMaW5lUmVhZGVyLmNwcAppbmRleCA4ZjIzNjI1Li5mMjkwOGQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL0J1ZmZlcmVkTGluZVJlYWRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9CdWZmZXJlZExpbmVSZWFkZXIuY3BwCkBAIC05Miw5ICs5Miwx
MSBAQCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gQnVmZmVyZWRMaW5lUmVhZGVyOjpuZXh0TGluZSgp
CiAgICAgfQogCiAgICAgaWYgKHNob3VsZFJldHVybkxpbmUpIHsKLSAgICAgICAgYXV0byBsaW5l
ID0gbV9saW5lQnVmZmVyLnRvU3RyaW5nKCk7Ci0gICAgICAgIG1fbGluZUJ1ZmZlci5jbGVhcigp
OwotICAgICAgICByZXR1cm4gV1RGTW92ZShsaW5lKTsKKyAgICAgICAgaWYgKGF1dG8gbGluZSA9
IG1fbGluZUJ1ZmZlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICBtX2xpbmVCdWZmZXIuY2xl
YXIoKTsKKyAgICAgICAgICAgIHJldHVybiBXVEZNb3ZlKCpsaW5lKTsKKyAgICAgICAgfQorICAg
ICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIEFTU0VSVChtX2J1ZmZlci5pc0VtcHR5KCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwCmluZGV4IDMzM2EyZjguLjI5NDE2
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAKQEAgLTE1Myw3ICsx
NTMsMTAgQEAgdm9pZCBUcmFja0Jhc2U6OnNldExhbmd1YWdlKGNvbnN0IEF0b21pY1N0cmluZyYg
bGFuZ3VhZ2UpCiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIlRoZSBs
YW5ndWFnZSAnIik7CiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChsYW5ndWFnZSk7
CiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIicgaXMgbm90IGEgdmFs
aWQgQkNQIDQ3IGxhbmd1YWdlIHRhZy4iKTsKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBzdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICpzdHJpbmc7Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAg
ICAgICBpZiAoYXV0byBlbGVtZW50ID0gdGhpcy0+ZWxlbWVudCgpKQogICAgICAgICAgICAgZWxl
bWVudC0+ZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpSZW5kZXJp
bmcsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgbWVzc2FnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1ZUVEN1ZS5jcHAKaW5kZXggNzhmOGFkZi4uM2JiYzI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVlRUQ3VlLmNwcApAQCAtNjI5LDcgKzYyOSwxMSBAQCB2b2lkIFZUVEN1ZTo6ZGV0ZXJtaW5l
VGV4dERpcmVjdGlvbigpCiAgICAgICAgIHBhcmFncmFwaEJ1aWxkZXIuYXBwZW5kKG5vZGUtPm5v
ZGVWYWx1ZSgpKTsKICAgICB9CiAKLSAgICBTdHJpbmcgcGFyYWdyYXBoID0gcGFyYWdyYXBoQnVp
bGRlci50b1N0cmluZygpOworICAgIFN0cmluZyBwYXJhZ3JhcGggPSBbJl0gKCkgeworICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSBwYXJhZ3JhcGhCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9KCk7CiAgICAgaWYg
KCFwYXJhZ3JhcGgubGVuZ3RoKCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwCmluZGV4IDUxOGVkOGIuLjgwZDAyYzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAKQEAgLTQwNCw3ICs0MDQs
MTAgQEAgdm9pZCBXZWJWVFRQYXJzZXI6OmNyZWF0ZU5ld0N1ZSgpCiAgICAgUmVmUHRyPFdlYlZU
VEN1ZURhdGE+IGN1ZSA9IFdlYlZUVEN1ZURhdGE6OmNyZWF0ZSgpOwogICAgIGN1ZS0+c2V0U3Rh
cnRUaW1lKG1fY3VycmVudFN0YXJ0VGltZSk7CiAgICAgY3VlLT5zZXRFbmRUaW1lKG1fY3VycmVu
dEVuZFRpbWUpOwotICAgIGN1ZS0+c2V0Q29udGVudChtX2N1cnJlbnRDb250ZW50LnRvU3RyaW5n
KCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1fY3VycmVudENvbnRlbnQudG9TdHJpbmcoKSkK
KyAgICAgICAgY3VlLT5zZXRDb250ZW50KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JB
U0goKTsKICAgICBjdWUtPnNldElkKG1fY3VycmVudElkKTsKICAgICBjdWUtPnNldFNldHRpbmdz
KG1fY3VycmVudFNldHRpbmdzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9XZWJWVFRUb2tlbml6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJW
VFRUb2tlbml6ZXIuY3BwCmluZGV4IDAyNGMwNGEuLmZlM2RkYTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1dlYlZUVFRva2VuaXplci5jcHAKQEAgLTEwOCwxMSArMTA4LDE1IEBA
IERhdGFTdGF0ZToKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAvLyBXZSBkb24ndCB3YW50
IHRvIGFkdmFuY2UgaW5wdXQgb3IgcGVyZm9ybSBhIHN0YXRlIHRyYW5zaXRpb24gLSBqdXN0IHJl
dHVybiBhIChuZXcpIHRva2VuLgogICAgICAgICAgICAgLy8gKE9uIHRoZSBuZXh0IGNhbGwgdG8g
bmV4dFRva2VuIHdlIHdpbGwgc2VlICc8JyBhZ2FpbiwgYnV0IHRha2UgdGhlIG90aGVyIGJyYW5j
aCBpbiB0aGlzIGlmIGluc3RlYWQuKQotICAgICAgICAgICAgcmV0dXJuIGVtaXRUb2tlbih0b2tl
biwgV2ViVlRUVG9rZW46OlN0cmluZ1Rva2VuKHJlc3VsdC50b1N0cmluZygpKSk7CisgICAgICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZW1pdFRva2VuKHRva2VuLCBXZWJWVFRUb2tlbjo6U3RyaW5nVG9rZW4oKnN0cmlu
ZykpOworICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQotICAgIH0gZWxzZSBpZiAoY2hh
cmFjdGVyID09IGtFbmRPZkZpbGVNYXJrZXIpCi0gICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1p
dFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6U3RyaW5nVG9rZW4ocmVzdWx0LnRv
U3RyaW5nKCkpKTsKLSAgICBlbHNlIHsKKyAgICB9IGVsc2UgaWYgKGNoYXJhY3RlciA9PSBrRW5k
T2ZGaWxlTWFya2VyKSB7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmlu
ZygpKQorICAgICAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9r
ZW4sIFdlYlZUVFRva2VuOjpTdHJpbmdUb2tlbigqc3RyaW5nKSk7CisgICAgICAgIENSQVNIKCk7
CisgICAgfSBlbHNlIHsKICAgICAgICAgcmVzdWx0LmFwcGVuZChjaGFyYWN0ZXIpOwogICAgICAg
ICBXRUJWVFRfQURWQU5DRV9UTyhEYXRhU3RhdGUpOwogICAgIH0KQEAgLTE0MiwxMCArMTQ2LDE0
IEBAIEVzY2FwZVN0YXRlOgogICAgICAgICBXRUJWVFRfQURWQU5DRV9UTyhFc2NhcGVTdGF0ZSk7
CiAgICAgfSBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gJzwnKSB7CiAgICAgICAgIHJlc3VsdC5hcHBl
bmQoYnVmZmVyKTsKLSAgICAgICAgcmV0dXJuIGVtaXRUb2tlbih0b2tlbiwgV2ViVlRUVG9rZW46
OlN0cmluZ1Rva2VuKHJlc3VsdC50b1N0cmluZygpKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuIGVtaXRUb2tlbih0b2tl
biwgV2ViVlRUVG9rZW46OlN0cmluZ1Rva2VuKCpzdHJpbmcpKTsKKyAgICAgICAgQ1JBU0goKTsK
ICAgICB9IGVsc2UgaWYgKGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAg
IHJlc3VsdC5hcHBlbmQoYnVmZmVyKTsKLSAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9r
ZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpTdHJpbmdUb2tlbihyZXN1bHQudG9TdHJp
bmcoKSkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJW
VFRUb2tlbjo6U3RyaW5nVG9rZW4oKnN0cmluZykpOworICAgICAgICBDUkFTSCgpOwogICAgIH0g
ZWxzZSB7CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoYnVmZmVyKTsKICAgICAgICAgYnVmZmVyLmNs
ZWFyKCk7CkBAIC0xNzIsNyArMTgwLDkgQEAgVGFnU3RhdGU6CiAgICAgICAgIFdFQlZUVF9BRFZB
TkNFX1RPKFRpbWVzdGFtcFRhZ1N0YXRlKTsKICAgICB9IGVsc2UgaWYgKGNoYXJhY3RlciA9PSAn
PicgfHwgY2hhcmFjdGVyID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKICAgICAgICAgQVNTRVJUKHJl
c3VsdC5pc0VtcHR5KCkpOwotICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lu
cHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OlN0YXJ0VGFnKHJlc3VsdC50b1N0cmluZygpKSk7Cisg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAg
cmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpT
dGFydFRhZygqc3RyaW5nKSk7CisgICAgICAgIENSQVNIKCk7CiAgICAgfSBlbHNlIHsKICAgICAg
ICAgcmVzdWx0LmFwcGVuZChjaGFyYWN0ZXIpOwogICAgICAgICBXRUJWVFRfQURWQU5DRV9UTyhT
dGFydFRhZ1N0YXRlKTsKQEAgLTE4Myw5ICsxOTMsMTEgQEAgU3RhcnRUYWdTdGF0ZToKICAgICAg
ICAgV0VCVlRUX0FEVkFOQ0VfVE8oU3RhcnRUYWdBbm5vdGF0aW9uU3RhdGUpOwogICAgIGVsc2Ug
aWYgKGNoYXJhY3RlciA9PSAnLicpCiAgICAgICAgIFdFQlZUVF9BRFZBTkNFX1RPKFN0YXJ0VGFn
Q2xhc3NTdGF0ZSk7Ci0gICAgZWxzZSBpZiAoY2hhcmFjdGVyID09ICc+JyB8fCBjaGFyYWN0ZXIg
PT0ga0VuZE9mRmlsZU1hcmtlcikKLSAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4o
bV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpTdGFydFRhZyhyZXN1bHQudG9TdHJpbmcoKSkp
OwotICAgIGVsc2UgeworICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSAnPicgfHwgY2hhcmFjdGVy
ID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lu
cHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OlN0YXJ0VGFnKCpzdHJpbmcpKTsKKyAgICAgICAgQ1JB
U0goKTsKKyAgICB9IGVsc2UgewogICAgICAgICByZXN1bHQuYXBwZW5kKGNoYXJhY3Rlcik7CiAg
ICAgICAgIFdFQlZUVF9BRFZBTkNFX1RPKFN0YXJ0VGFnU3RhdGUpOwogICAgIH0KQEAgLTIwMiwy
NyArMjE0LDQ0IEBAIFN0YXJ0VGFnQ2xhc3NTdGF0ZToKICAgICB9IGVsc2UgaWYgKGNoYXJhY3Rl
ciA9PSAnPicgfHwgY2hhcmFjdGVyID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKICAgICAgICAgYWRk
TmV3Q2xhc3MoY2xhc3NlcywgYnVmZmVyKTsKICAgICAgICAgYnVmZmVyLmNsZWFyKCk7Ci0gICAg
ICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tl
bjo6U3RhcnRUYWcocmVzdWx0LnRvU3RyaW5nKCksIGNsYXNzZXMudG9BdG9taWNTdHJpbmcoKSkp
OworICAgICAgICBpZiAoYXV0byByZXN1bHRTdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkgewor
ICAgICAgICAgICAgaWYgKGF1dG8gY2xhc3Nlc1N0cmluZyA9IGNsYXNzZXMudG9BdG9taWNTdHJp
bmcoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0
LCB0b2tlbiwgV2ViVlRUVG9rZW46OlN0YXJ0VGFnKCpyZXN1bHRTdHJpbmcsICpjbGFzc2VzU3Ry
aW5nKSk7CisgICAgICAgIH0KKyAgICAgICAgQ1JBU0goKTsKICAgICB9IGVsc2UgewogICAgICAg
ICBidWZmZXIuYXBwZW5kKGNoYXJhY3Rlcik7CiAgICAgICAgIFdFQlZUVF9BRFZBTkNFX1RPKFN0
YXJ0VGFnQ2xhc3NTdGF0ZSk7CiAgICAgfQogCiBTdGFydFRhZ0Fubm90YXRpb25TdGF0ZToKLSAg
ICBpZiAoY2hhcmFjdGVyID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikK
LSAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZU
VFRva2VuOjpTdGFydFRhZyhyZXN1bHQudG9TdHJpbmcoKSwgY2xhc3Nlcy50b0F0b21pY1N0cmlu
ZygpLCBidWZmZXIudG9BdG9taWNTdHJpbmcoKSkpOworICAgIGlmIChjaGFyYWN0ZXIgPT0gJz4n
IHx8IGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgIGlmIChhdXRvIHJl
c3VsdFN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBj
bGFzc2VzU3RyaW5nID0gY2xhc3Nlcy50b0F0b21pY1N0cmluZygpKSB7CisgICAgICAgICAgICAg
ICAgaWYgKGF1dG8gYnVmZmVyU3RyaW5nID0gYnVmZmVyLnRvQXRvbWljU3RyaW5nKCkpCisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2Vu
LCBXZWJWVFRUb2tlbjo6U3RhcnRUYWcoKnJlc3VsdFN0cmluZywgKmNsYXNzZXNTdHJpbmcsICpi
dWZmZXJTdHJpbmcpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBDUkFTSCgp
OworICAgIH0KICAgICBidWZmZXIuYXBwZW5kKGNoYXJhY3Rlcik7CiAgICAgV0VCVlRUX0FEVkFO
Q0VfVE8oU3RhcnRUYWdBbm5vdGF0aW9uU3RhdGUpOwogCiBFbmRUYWdTdGF0ZToKLSAgICBpZiAo
Y2hhcmFjdGVyID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikKLSAgICAg
ICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2Vu
OjpFbmRUYWcocmVzdWx0LnRvU3RyaW5nKCkpKTsKKyAgICBpZiAoY2hhcmFjdGVyID09ICc+JyB8
fCBjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikgeworICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1p
dFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6RW5kVGFnKCpzdHJpbmcpKTsKKyAg
ICAgICAgQ1JBU0goKTsKKyAgICB9CiAgICAgcmVzdWx0LmFwcGVuZChjaGFyYWN0ZXIpOwogICAg
IFdFQlZUVF9BRFZBTkNFX1RPKEVuZFRhZ1N0YXRlKTsKIAogVGltZXN0YW1wVGFnU3RhdGU6Ci0g
ICAgaWYgKGNoYXJhY3RlciA9PSAnPicgfHwgY2hhcmFjdGVyID09IGtFbmRPZkZpbGVNYXJrZXIp
Ci0gICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJW
VFRUb2tlbjo6VGltZXN0YW1wVGFnKHJlc3VsdC50b1N0cmluZygpKSk7CisgICAgaWYgKGNoYXJh
Y3RlciA9PSAnPicgfHwgY2hhcmFjdGVyID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4g
YWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OlRpbWVzdGFt
cFRhZygqc3RyaW5nKSk7CisgICAgICAgIENSQVNIKCk7CisgICAgfQogICAgIHJlc3VsdC5hcHBl
bmQoY2hhcmFjdGVyKTsKICAgICBXRUJWVFRfQURWQU5DRV9UTyhUaW1lc3RhbXBUYWdTdGF0ZSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVT
aGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5j
cHAKaW5kZXggOWQ5ODU4MS4uNjUxZDJlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcApAQCAtNzcxLDcgKzc3MSw5IEBAIFN0cmluZyBJ
bnNwZWN0b3JTdHlsZTo6c2hvcnRoYW5kVmFsdWUoY29uc3QgU3RyaW5nJiBzaG9ydGhhbmRQcm9w
ZXJ0eSkgY29uc3QKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKGluZGl2aWR1YWxWYWx1ZSk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgSW5zcGVj
dG9yU3R5bGU6OnNob3J0aGFuZFByaW9yaXR5KGNvbnN0IFN0cmluZyYgc2hvcnRoYW5kUHJvcGVy
dHkpIGNvbnN0CkBAIC05NDMsMTMgKzk0NSwyMCBAQCBFeGNlcHRpb25PcjxDU1NTdHlsZVJ1bGUq
PiBJbnNwZWN0b3JTdHlsZVNoZWV0OjphZGRSdWxlKGNvbnN0IFN0cmluZyYgc2VsZWN0b3IpCiAg
ICAgc3R5bGVTaGVldFRleHQuYXBwZW5kTGl0ZXJhbCgiIHt9Iik7CiAKICAgICAvLyBVc2luZyBz
ZXRUZXh0KCkgYXMgdGhpcyBvcGVyYXRpb24gY2hhbmdlcyB0aGUgc3R5bGVzaGVldCBydWxlIHNl
dC4KLSAgICBzZXRUZXh0KHN0eWxlU2hlZXRUZXh0LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHN0eWxlU2hlZXRUZXh0LnRvU3RyaW5nKCkpCisgICAgICAgIHNldFRleHQoKnN0
cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgLy8gSW5zcGVjdG9yIFN0
eWxlIFNoZWV0cyBhcmUgYWx3YXlzIHRyZWF0ZWQgYXMgdGhvdWdoIHRoZWlyIHBhcnNlZCBkYXRh
IGlzIHJlYWR5LgogICAgIGlmIChtX29yaWdpbiA9PSBJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6
OlN0eWxlU2hlZXRPcmlnaW46Okluc3BlY3RvcikKICAgICAgICAgZmlyZVN0eWxlU2hlZXRDaGFu
Z2VkKCk7Ci0gICAgZWxzZQotICAgICAgICByZXBhcnNlU3R5bGVTaGVldChzdHlsZVNoZWV0VGV4
dC50b1N0cmluZygpKTsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3R5
bGVTaGVldFRleHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJlcGFyc2VTdHlsZVNoZWV0KCpz
dHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOworICAgIH0KIAogICAg
IEFTU0VSVChtX3BhZ2VTdHlsZVNoZWV0LT5sZW5ndGgoKSk7CiAgICAgdW5zaWduZWQgbGFzdFJ1
bGVJbmRleCA9IG1fcGFnZVN0eWxlU2hlZXQtPmxlbmd0aCgpIC0gMTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFn
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXBwbGlj
YXRpb25DYWNoZUFnZW50LmNwcAppbmRleCAxOWFmNGU5Li5iZjliNGZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVB
Z2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JB
cHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCkBAIC0xNzIsMTEgKzE3MiwxNCBAQCBSZWY8SW5zcGVj
dG9yOjpQcm90b2NvbDo6QXBwbGljYXRpb25DYWNoZTo6QXBwbGljYXRpb25DYWNoZVJlc291cmNl
PiBJbnNwZWN0b3JBcAogICAgIGlmIChyZXNvdXJjZUluZm8uaXNFeHBsaWNpdCkKICAgICAgICAg
dHlwZXMuYXBwZW5kTGl0ZXJhbCgiRXhwbGljaXQgIik7CiAKLSAgICByZXR1cm4gSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXBwbGljYXRpb25DYWNoZTo6QXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpj
cmVhdGUoKQotICAgICAgICAuc2V0VXJsKHJlc291cmNlSW5mby5yZXNvdXJjZS5zdHJpbmcoKSkK
LSAgICAgICAgLnNldFNpemUoc3RhdGljX2Nhc3Q8aW50PihyZXNvdXJjZUluZm8uc2l6ZSkpCi0g
ICAgICAgIC5zZXRUeXBlKHR5cGVzLnRvU3RyaW5nKCkpCi0gICAgICAgIC5yZWxlYXNlKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gdHlwZXMudG9TdHJpbmcoKSkgeworICAgICAgICByZXR1cm4g
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXBwbGljYXRpb25DYWNoZTo6QXBwbGljYXRpb25DYWNoZVJl
c291cmNlOjpjcmVhdGUoKQorICAgICAgICAgICAgLnNldFVybChyZXNvdXJjZUluZm8ucmVzb3Vy
Y2Uuc3RyaW5nKCkpCisgICAgICAgICAgICAuc2V0U2l6ZShzdGF0aWNfY2FzdDxpbnQ+KHJlc291
cmNlSW5mby5zaXplKSkKKyAgICAgICAgICAgIC5zZXRUeXBlKCpzdHJpbmcpCisgICAgICAgICAg
ICAucmVsZWFzZSgpOworICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3Rvck5ldHdvcmtBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKaW5kZXggNDZlNGFmZS4uYWYxNzA0NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29y
a0FnZW50LmNwcApAQCAtMTM0LDggKzEzNCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChtX2Rl
Y29kZXIpCiAgICAgICAgICAgICBtX3Jlc3BvbnNlVGV4dC5hcHBlbmQobV9kZWNvZGVyLT5mbHVz
aCgpKTsKIAotICAgICAgICBtX2NhbGxiYWNrLT5zZW5kU3VjY2VzcyhtX3Jlc3BvbnNlVGV4dC50
b1N0cmluZygpLCBtX21pbWVUeXBlLCBtX3N0YXR1c0NvZGUpOwotICAgICAgICBkaXNwb3NlKCk7
CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IG1fcmVzcG9uc2VUZXh0LnRvU3RyaW5nKCkpIHsK
KyAgICAgICAgICAgIG1fY2FsbGJhY2stPnNlbmRTdWNjZXNzKCpzdHJpbmcsIG1fbWltZVR5cGUs
IG1fc3RhdHVzQ29kZSk7CisgICAgICAgICAgICBkaXNwb3NlKCk7CisgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICB2b2lkIGRpZEZhaWwoY29uc3QgUmVz
b3VyY2VFcnJvciYgZXJyb3IpIG92ZXJyaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL1dlYkNvbnNvbGVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL1dlYkNvbnNvbGVBZ2VudC5jcHAKaW5kZXggZGM5NjQ4Ni4uNjM4MzhhZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xlQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFn
ZW50LmNwcApAQCAtMTY5LDcgKzE2OSwxMCBAQCB2b2lkIFdlYkNvbnNvbGVBZ2VudDo6ZGlkRmFp
bExvYWRpbmcodW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgUmVzbwogICAg
ICAgICBtZXNzYWdlLmFwcGVuZChlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpKTsKICAgICB9
CiAKLSAgICBhZGRNZXNzYWdlVG9Db25zb2xlKHN0ZDo6bWFrZV91bmlxdWU8Q29uc29sZU1lc3Nh
Z2U+KE1lc3NhZ2VTb3VyY2U6Ok5ldHdvcmssIE1lc3NhZ2VUeXBlOjpMb2csIE1lc3NhZ2VMZXZl
bDo6RXJyb3IsIG1lc3NhZ2UudG9TdHJpbmcoKSwgZXJyb3IuZmFpbGluZ1VSTCgpLCAwLCAwLCBu
dWxscHRyLCByZXF1ZXN0SWRlbnRpZmllcikpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1lc3Nh
Z2UudG9TdHJpbmcoKSkKKyAgICAgICAgYWRkTWVzc2FnZVRvQ29uc29sZShzdGQ6Om1ha2VfdW5p
cXVlPENvbnNvbGVNZXNzYWdlPihNZXNzYWdlU291cmNlOjpOZXR3b3JrLCBNZXNzYWdlVHlwZTo6
TG9nLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAqc3RyaW5nLCBlcnJvci5mYWlsaW5nVVJMKCksIDAs
IDAsIG51bGxwdHIsIHJlcXVlc3RJZGVudGlmaWVyKSk7CisgICAgZWxzZQorICAgICAgICBDUkFT
SCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCmluZGV4IDY4ODA0ZjIuLmY4OGE0
NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0Nv
bnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0Nv
bnRyb2wuY3BwCkBAIC0xMTIsOCArMTEyLDEyIEBAIFJlc291cmNlUmVxdWVzdCBjcmVhdGVBY2Nl
c3NDb250cm9sUHJlZmxpZ2h0UmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlCiAK
ICAgICAgICAgICAgIGhlYWRlckJ1ZmZlci5hcHBlbmQoaGVhZGVyRmllbGQpOwogICAgICAgICB9
Ci0gICAgICAgIGlmICghaGVhZGVyQnVmZmVyLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHByZWZs
aWdodFJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpBY2Nlc3NDb250
cm9sUmVxdWVzdEhlYWRlcnMsIGhlYWRlckJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYg
KCFoZWFkZXJCdWZmZXIuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSBoZWFkZXJCdWZmZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICBwcmVmbGlnaHRSZXF1
ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6QWNjZXNzQ29udHJvbFJlcXVl
c3RIZWFkZXJzLCAqc3RyaW5nKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBD
UkFTSCgpOworICAgICAgICB9CiAgICAgfQogCiAgICAgcmV0dXJuIHByZWZsaWdodFJlcXVlc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5jcHAK
aW5kZXggNGRmMjVkYS4uOTg2ZmU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcApAQCAtMjY4LDcgKzI2OCw5IEBAIFN0cmluZyBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzOjp0b1N0cmluZygpIGNvbnN0CiAKICAgICBidWlsZGVyLmFwcGVu
ZCgnXG4nKTsKIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3Bw
CmluZGV4IGZmMjkzODkuLjRmMjJkNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcApAQCAtODQxLDE3
ICs4NDEsMjAgQEAgYm9vbCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6c3RvcmUoQXBwbGljYXRp
b25DYWNoZVJlc291cmNlKiByZXNvdXJjZSwgdW5zaWduZWQKIAogICAgIC8vIFRoZW4sIGluc2Vy
dCB0aGUgcmVzb3VyY2UKICAgICAKLSAgICAvLyBTZXJpYWxpemUgdGhlIGhlYWRlcnMKLSAgICBT
dHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7Ci0gICAgCi0gICAgZm9yIChjb25zdCBhdXRvJiBo
ZWFkZXIgOiByZXNvdXJjZS0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGRzKCkpIHsKLSAgICAg
ICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoaGVhZGVyLmtleSk7Ci0gICAgICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kKCc6Jyk7Ci0gICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGhlYWRlci52YWx1
ZSk7Ci0gICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIH0KLSAgICAKLSAg
ICBTdHJpbmcgaGVhZGVycyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBTdHJpbmcg
aGVhZGVycyA9IFsmXSAoKSB7CisgICAgICAgIC8vIFNlcmlhbGl6ZSB0aGUgaGVhZGVycworICAg
ICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7CisgICAgCisgICAgICAgIGZvciAoY29u
c3QgYXV0byYgaGVhZGVyIDogcmVzb3VyY2UtPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkcygp
KSB7CisgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChoZWFkZXIua2V5KTsKKyAgICAg
ICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCc6Jyk7CisgICAgICAgICAgICBzdHJpbmdCdWls
ZGVyLmFwcGVuZChoZWFkZXIudmFsdWUpOworICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmQoJ1xuJyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENS
QVNIKCk7CisgICAgfSgpOwogICAgIAogICAgIFNRTGl0ZVN0YXRlbWVudCByZXNvdXJjZVN0YXRl
bWVudChtX2RhdGFiYXNlLCAiSU5TRVJUIElOVE8gQ2FjaGVSZXNvdXJjZXMgKHVybCwgc3RhdHVz
Q29kZSwgcmVzcG9uc2VVUkwsIGhlYWRlcnMsIGRhdGEsIG1pbWVUeXBlLCB0ZXh0RW5jb2RpbmdO
YW1lKSBWQUxVRVMgKD8sID8sID8sID8sID8sID8sID8pIik7CiAgICAgaWYgKHJlc291cmNlU3Rh
dGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwCmluZGV4IDEyYTMwY2MuLmNm
ZTczODYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVn
YWN5V2ViQXJjaGl2ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2Yv
TGVnYWN5V2ViQXJjaGl2ZS5jcHAKQEAgLTU1NywyMSArNTU3LDI0IEBAIFJlZlB0cjxMZWdhY3lX
ZWJBcmNoaXZlPiBMZWdhY3lXZWJBcmNoaXZlOjpjcmVhdGVGcm9tU2VsZWN0aW9uKEZyYW1lKiBm
cmFtZSkKICAgICBpZiAoYXV0byBzZWxlY3Rpb25SYW5nZSA9IGZyYW1lLT5zZWxlY3Rpb24oKS50
b05vcm1hbGl6ZWRSYW5nZSgpKQogICAgICAgICBidWlsZGVyLmFwcGVuZChjcmVhdGVNYXJrdXAo
KnNlbGVjdGlvblJhbmdlLCAmbm9kZUxpc3QsIEFubm90YXRlRm9ySW50ZXJjaGFuZ2UpKTsKIAot
ICAgIGF1dG8gYXJjaGl2ZSA9IGNyZWF0ZShidWlsZGVyLnRvU3RyaW5nKCksICpmcmFtZSwgbm9k
ZUxpc3QsIG51bGxwdHIpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkgeworICAgICAgICBhdXRvIGFyY2hpdmUgPSBjcmVhdGUoKnN0cmluZywgKmZyYW1lLCBub2Rl
TGlzdCwgbnVsbHB0cik7CiAgICAgCi0gICAgaWYgKCFkb2N1bWVudC0+aXNGcmFtZVNldCgpKQot
ICAgICAgICByZXR1cm4gYXJjaGl2ZTsKKyAgICAgICAgaWYgKCFkb2N1bWVudC0+aXNGcmFtZVNl
dCgpKQorICAgICAgICAgICAgcmV0dXJuIGFyY2hpdmU7CiAgICAgICAgIAotICAgIC8vIFdyYXAg
dGhlIGZyYW1lc2V0IGRvY3VtZW50IGluIGFuIGlmcmFtZSBzbyBpdCBjYW4gYmUgcGFzdGVkIGlu
dG8KLSAgICAvLyBhbm90aGVyIGRvY3VtZW50ICh3aGljaCB3aWxsIGhhdmUgYSBib2R5IG9yIGZy
YW1lc2V0IG9mIGl0cyBvd24pLiAKLSAgICBTdHJpbmcgaWZyYW1lTWFya3VwID0gIjxpZnJhbWUg
ZnJhbWVib3JkZXI9XCJub1wiIG1hcmdpbndpZHRoPVwiMFwiIG1hcmdpbmhlaWdodD1cIjBcIiB3
aWR0aD1cIjk4JSVcIiBoZWlnaHQ9XCI5OCUlXCIgc3JjPVwiIiArIGZyYW1lLT5sb2FkZXIoKS5k
b2N1bWVudExvYWRlcigpLT5yZXNwb25zZSgpLnVybCgpLnN0cmluZygpICsgIlwiPjwvaWZyYW1l
PiI7Ci0gICAgYXV0byBpZnJhbWVSZXNvdXJjZSA9IEFyY2hpdmVSZXNvdXJjZTo6Y3JlYXRlKHV0
ZjhCdWZmZXIoaWZyYW1lTWFya3VwKSwgYmxhbmtVUkwoKSwgInRleHQvaHRtbCIsICJVVEYtOCIs
IFN0cmluZygpKTsKKyAgICAgICAgLy8gV3JhcCB0aGUgZnJhbWVzZXQgZG9jdW1lbnQgaW4gYW4g
aWZyYW1lIHNvIGl0IGNhbiBiZSBwYXN0ZWQgaW50bworICAgICAgICAvLyBhbm90aGVyIGRvY3Vt
ZW50ICh3aGljaCB3aWxsIGhhdmUgYSBib2R5IG9yIGZyYW1lc2V0IG9mIGl0cyBvd24pLiAKKyAg
ICAgICAgU3RyaW5nIGlmcmFtZU1hcmt1cCA9ICI8aWZyYW1lIGZyYW1lYm9yZGVyPVwibm9cIiBt
YXJnaW53aWR0aD1cIjBcIiBtYXJnaW5oZWlnaHQ9XCIwXCIgd2lkdGg9XCI5OCUlXCIgaGVpZ2h0
PVwiOTglJVwiIHNyYz1cIiIgKyBmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVz
cG9uc2UoKS51cmwoKS5zdHJpbmcoKSArICJcIj48L2lmcmFtZT4iOworICAgICAgICBhdXRvIGlm
cmFtZVJlc291cmNlID0gQXJjaGl2ZVJlc291cmNlOjpjcmVhdGUodXRmOEJ1ZmZlcihpZnJhbWVN
YXJrdXApLCBibGFua1VSTCgpLCAidGV4dC9odG1sIiwgIlVURi04IiwgU3RyaW5nKCkpOwogCi0g
ICAgVmVjdG9yPFJlZjxMZWdhY3lXZWJBcmNoaXZlPj4gc3ViZnJhbWVBcmNoaXZlczsKLSAgICBz
dWJmcmFtZUFyY2hpdmVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoMSk7Ci0gICAgc3ViZnJhbWVB
cmNoaXZlcy51bmNoZWNrZWRBcHBlbmQoYXJjaGl2ZS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAg
ICAgVmVjdG9yPFJlZjxMZWdhY3lXZWJBcmNoaXZlPj4gc3ViZnJhbWVBcmNoaXZlczsKKyAgICAg
ICAgc3ViZnJhbWVBcmNoaXZlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KDEpOworICAgICAgICBz
dWJmcmFtZUFyY2hpdmVzLnVuY2hlY2tlZEFwcGVuZChhcmNoaXZlLnJlbGVhc2VOb25OdWxsKCkp
OwogCi0gICAgcmV0dXJuIGNyZWF0ZShpZnJhbWVSZXNvdXJjZS5yZWxlYXNlTm9uTnVsbCgpLCB7
IH0sIFdURk1vdmUoc3ViZnJhbWVBcmNoaXZlcykpOworICAgICAgICByZXR1cm4gY3JlYXRlKGlm
cmFtZVJlc291cmNlLnJlbGVhc2VOb25OdWxsKCksIHsgfSwgV1RGTW92ZShzdWJmcmFtZUFyY2hp
dmVzKSk7CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwCmluZGV4IDcwNWM2ZGMu
LmFhMGE1NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1s
L01IVE1MQXJjaGl2ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0
bWwvTUhUTUxBcmNoaXZlLmNwcApAQCAtNzYsNyArNzYsOSBAQCBzdGF0aWMgU3RyaW5nIGdlbmVy
YXRlUmFuZG9tQm91bmRhcnkoKQogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChsb3dlck5p
YmJsZVRvQVNDSUlIZXhEaWdpdChyYW5kb21WYWx1ZXNbaV0pKTsKICAgICAgICAgc3RyaW5nQnVp
bGRlci5hcHBlbmQodXBwZXJOaWJibGVUb0FTQ0lJSGV4RGlnaXQocmFuZG9tVmFsdWVzW2ldKSk7
CiAgICAgfQotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIHJlcGxhY2VOb25QcmludGFi
bGVDaGFyYWN0ZXJzKGNvbnN0IFN0cmluZyYgdGV4dCkKQEAgLTg4LDcgKzkwLDkgQEAgc3RhdGlj
IFN0cmluZyByZXBsYWNlTm9uUHJpbnRhYmxlQ2hhcmFjdGVycyhjb25zdCBTdHJpbmcmIHRleHQp
CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCc/Jyk7CiAg
ICAgfQotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBNSFRNTEFyY2hpdmU6Ok1IVE1MQXJjaGl2ZSgpCkBAIC0x
NjAsMTAgKzE2NCwxNiBAQCBSZWY8U2hhcmVkQnVmZmVyPiBNSFRNTEFyY2hpdmU6OmdlbmVyYXRl
TUhUTUxEYXRhKFBhZ2UqIHBhZ2UpCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoIlwiXHJcblxy
XG4iKTsKIAogICAgIC8vIFdlIHVzZSB1dGY4KCkgYmVsb3cgaW5zdGVhZCBvZiBhc2NpaSgpIGFz
IGFzY2lpKCkgcmVwbGFjZXMgQ1JMRnMgd2l0aCA/PyAod2Ugc3RpbGwgb25seSBoYXZlIHB1dCBB
U0NJSSBjaGFyYWN0ZXJzIGluIGl0KS4KLSAgICBBU1NFUlQoc3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpLmlzQWxsQVNDSUkoKSk7Ci0gICAgQ1N0cmluZyBhc2NpaVN0cmluZyA9IHN0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKS51dGY4KCk7Ci0gICAgYXV0byBtaHRtbERhdGEgPSBTaGFyZWRCdWZmZXI6
OmNyZWF0ZSgpOwotICAgIG1odG1sRGF0YS0+YXBwZW5kKGFzY2lpU3RyaW5nLmRhdGEoKSwgYXNj
aWlTdHJpbmcubGVuZ3RoKCkpOworICAgIGF1dG8gbWh0bWxEYXRhID0gWyZdICgpIHsKKyAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAg
ICAgICBBU1NFUlQoc3RyaW5nLT5pc0FsbEFTQ0lJKCkpOworICAgICAgICAgICAgQ1N0cmluZyBh
c2NpaVN0cmluZyA9IHN0cmluZy0+dXRmOCgpOworICAgICAgICAgICAgYXV0byByZXN1bHQgPSBT
aGFyZWRCdWZmZXI6OmNyZWF0ZSgpOworICAgICAgICAgICAgcmVzdWx0LT5hcHBlbmQoYXNjaWlT
dHJpbmcuZGF0YSgpLCBhc2NpaVN0cmluZy5sZW5ndGgoKSk7CisgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgICB9CisgICAgICAgIENSQVNIKCk7CisgICAgfSgpOwogCiAgICAgZm9y
IChhdXRvJiByZXNvdXJjZSA6IHJlc291cmNlcykgewogICAgICAgICBzdHJpbmdCdWlsZGVyLmNs
ZWFyKCk7CkBAIC0xODMsOCArMTkzLDEwIEBAIFJlZjxTaGFyZWRCdWZmZXI+IE1IVE1MQXJjaGl2
ZTo6Z2VuZXJhdGVNSFRNTERhdGEoUGFnZSogcGFnZSkKICAgICAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmQocmVzb3VyY2UudXJsKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoIlxyXG5c
clxuIik7CiAKLSAgICAgICAgYXNjaWlTdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCku
dXRmOCgpOwotICAgICAgICBtaHRtbERhdGEtPmFwcGVuZChhc2NpaVN0cmluZy5kYXRhKCksIGFz
Y2lpU3RyaW5nLmxlbmd0aCgpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVp
bGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICBDU3RyaW5nIGFzY2lpU3RyaW5nID0gc3Ry
aW5nLT51dGY4KCk7CisgICAgICAgICAgICBtaHRtbERhdGEtPmFwcGVuZChhc2NpaVN0cmluZy5k
YXRhKCksIGFzY2lpU3RyaW5nLmxlbmd0aCgpKTsKKyAgICAgICAgfQogCiAgICAgICAgIC8vIEZJ
WE1FOiBpZGVhbGx5IHdlIHdvdWxkIGVuY29kZSB0aGUgY29udGVudCBhcyBhIHN0cmVhbSB3aXRo
b3V0IGhhdmluZyB0byBmZXRjaCBpdCBhbGwuCiAgICAgICAgIGNvbnN0IGNoYXIqIGRhdGEgPSBy
ZXNvdXJjZS5kYXRhLT5kYXRhKCk7CkBAIC0yMTAsOCArMjIyLDEwIEBAIFJlZjxTaGFyZWRCdWZm
ZXI+IE1IVE1MQXJjaGl2ZTo6Z2VuZXJhdGVNSFRNTERhdGEoUGFnZSogcGFnZSkKICAgICAgICAg
fQogICAgIH0KIAotICAgIGFzY2lpU3RyaW5nID0gbWFrZVN0cmluZygiLS0iLCBib3VuZGFyeSwg
Ii0tXHJcbiIpLnV0ZjgoKTsKLSAgICBtaHRtbERhdGEtPmFwcGVuZChhc2NpaVN0cmluZy5kYXRh
KCksIGFzY2lpU3RyaW5nLmxlbmd0aCgpKTsKKyAgICB7CisgICAgICAgIENTdHJpbmcgYXNjaWlT
dHJpbmcgPSBtYWtlU3RyaW5nKCItLSIsIGJvdW5kYXJ5LCAiLS1cclxuIikudXRmOCgpOworICAg
ICAgICBtaHRtbERhdGEtPmFwcGVuZChhc2NpaVN0cmluZy5kYXRhKCksIGFzY2lpU3RyaW5nLmxl
bmd0aCgpKTsKKyAgICB9CiAKICAgICByZXR1cm4gbWh0bWxEYXRhOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAppbmRl
eCBjMTM5MDc2Li5kODNlMjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRp
b25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nh
cHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcApAQCAtMzQ3LDE0ICszNDcsMTggQEAgU3Ry
aW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjp3aW5kb3dSb3VuZGVkQ29ybmVyUmFk
aXVzQ1NTKCkgY29uc3QKIAogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBhcHBlbmRD
U1MoYnVpbGRlciwgQ1NTUHJvcGVydHlCb3JkZXJSYWRpdXMsIFN0cmluZzo6Zm9ybWF0KCIlLjAy
ZnB4IiwgcmFkaXVzKSwgYmVoYXZpb3IgPT0ga01BQ2FwdGlvbkFwcGVhcmFuY2VCZWhhdmlvclVz
ZVZhbHVlKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjb2xv
clByb3BlcnR5Q1NTKENTU1Byb3BlcnR5SUQgaWQsIGNvbnN0IENvbG9yJiBjb2xvciwgYm9vbCBp
bXBvcnRhbnQpIGNvbnN0CiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGFwcGVu
ZENTUyhidWlsZGVyLCBpZCwgY29sb3Iuc2VyaWFsaXplZCgpLCBpbXBvcnRhbnQpOwotICAgIHJl
dHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBi
b29sIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uU3Ryb2tlV2lkdGhGb3JG
b250KGZsb2F0IGZvbnRTaXplLCBjb25zdCBTdHJpbmcmIGxhbmd1YWdlLCBmbG9hdCYgc3Ryb2tl
V2lkdGgsIGJvb2wmIGltcG9ydGFudCkgY29uc3QKQEAgLTQwNiw3ICs0MTAsOSBAQCBTdHJpbmcg
Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zVGV4dEVkZ2VDU1MoKSBjb25z
dAogICAgICAgICBhcHBlbmRDU1MoYnVpbGRlciwgQ1NTUHJvcGVydHlTdHJva2VMaW5lY2FwLCBn
ZXRWYWx1ZU5hbWUoQ1NTVmFsdWVSb3VuZCksIGltcG9ydGFudCk7CiAgICAgfQogICAgIAotICAg
IHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zRGVmYXVsdEZv
bnRDU1MoKSBjb25zdApAQCAtNDQ4LDcgKzQ1NCw5IEBAIFN0cmluZyBDYXB0aW9uVXNlclByZWZl
cmVuY2VzTWVkaWFBRjo6Y2FwdGlvbnNEZWZhdWx0Rm9udENTUygpIGNvbnN0CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICFpbXBvcnRhbnQiKTsKICAgICBidWlsZGVyLmFwcGVuZCgn
OycpOwogICAgIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBmbG9hdCBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y2Fw
dGlvbkZvbnRTaXplU2NhbGVBbmRJbXBvcnRhbmNlKGJvb2wmIGltcG9ydGFudCkgY29uc3QKQEAg
LTU5NSw5ICs2MDMsMTEgQEAgU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpj
YXB0aW9uc1N0eWxlU2hlZXRPdmVycmlkZSgpIGNvbnN0CiAgICAgfQogI2VuZGlmIC8vIEhBVkUo
TUVESUFfQUNDRVNTSUJJTElUWV9GUkFNRVdPUkspCiAKLSAgICBMT0coTWVkaWEsICJDYXB0aW9u
VXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y2FwdGlvbnNTdHlsZVNoZWV0T3ZlcnJpZGVTZXR0aW5n
IHN0eWxlIHRvOlxuJXMiLCBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC50b1N0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwotCi0gICAgcmV0dXJuIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hl
ZXQudG9TdHJpbmcoKSkgeworICAgICAgICBMT0coTWVkaWEsICJDYXB0aW9uVXNlclByZWZlcmVu
Y2VzTWVkaWFBRjo6Y2FwdGlvbnNTdHlsZVNoZWV0T3ZlcnJpZGVTZXR0aW5nIHN0eWxlIHRvOlxu
JXMiLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICB9CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBsYW5ndWFnZUlkZW50aWZpZXIo
Y29uc3QgU3RyaW5nJiBsYW5ndWFnZUNvZGUpCkBAIC02NjQsMTAgKzY3NCwxMyBAQCBzdGF0aWMg
U3RyaW5nIHRyYWNrRGlzcGxheU5hbWUoQXVkaW9UcmFjayogdHJhY2spCiAgICAgaWYgKGRpc3Bs
YXlOYW1lLmlzRW1wdHkoKSkKICAgICAgICAgZGlzcGxheU5hbWUuYXBwZW5kKGF1ZGlvVHJhY2tO
b0xhYmVsVGV4dCgpKTsKIAotICAgIGlmICh0cmFjay0+a2luZCgpICE9IEF1ZGlvVHJhY2s6OmRl
c2NyaXB0aW9uS2V5d29yZCgpKQotICAgICAgICByZXR1cm4gZGlzcGxheU5hbWUudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBkaXNwbGF5TmFtZS50b1N0cmluZygpKSB7CisgICAg
ICAgIGlmICh0cmFjay0+a2luZCgpICE9IEF1ZGlvVHJhY2s6OmRlc2NyaXB0aW9uS2V5d29yZCgp
KQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CiAKLSAgICByZXR1cm4gYXVkaW9EZXNjcmlw
dGlvblRyYWNrU3VmZml4VGV4dChkaXNwbGF5TmFtZS50b1N0cmluZygpKTsKKyAgICAgICAgcmV0
dXJuIGF1ZGlvRGVzY3JpcHRpb25UcmFja1N1ZmZpeFRleHQoKnN0cmluZyk7CisgICAgfQorICAg
IENSQVNIKCk7CiB9CiAKIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6ZGlz
cGxheU5hbWVGb3JUcmFjayhBdWRpb1RyYWNrKiB0cmFjaykgY29uc3QKQEAgLTY4OCwyNiArNzAx
LDI5IEBAIHN0YXRpYyBTdHJpbmcgdHJhY2tEaXNwbGF5TmFtZShUZXh0VHJhY2sqIHRyYWNrKQog
ICAgIGlmIChkaXNwbGF5TmFtZUJ1aWxkZXIuaXNFbXB0eSgpKQogICAgICAgICBkaXNwbGF5TmFt
ZUJ1aWxkZXIuYXBwZW5kKHRleHRUcmFja05vTGFiZWxUZXh0KCkpOwogCi0gICAgU3RyaW5nIGRp
c3BsYXlOYW1lID0gZGlzcGxheU5hbWVCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gZGlzcGxheU5hbWVCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgU3RyaW5n
IGRpc3BsYXlOYW1lID0gKnN0cmluZzsKIAotICAgIGlmICh0cmFjay0+aXNDbG9zZWRDYXB0aW9u
cygpKSB7Ci0gICAgICAgIGRpc3BsYXlOYW1lID0gY2xvc2VkQ2FwdGlvblRyYWNrTWVudUl0ZW1U
ZXh0KGRpc3BsYXlOYW1lKTsKLSAgICAgICAgaWYgKHRyYWNrLT5pc0Vhc3lUb1JlYWQoKSkKLSAg
ICAgICAgICAgIGRpc3BsYXlOYW1lID0gZWFzeVJlYWRlclRyYWNrTWVudUl0ZW1UZXh0KGRpc3Bs
YXlOYW1lKTsKKyAgICAgICAgaWYgKHRyYWNrLT5pc0Nsb3NlZENhcHRpb25zKCkpIHsKKyAgICAg
ICAgICAgIGRpc3BsYXlOYW1lID0gY2xvc2VkQ2FwdGlvblRyYWNrTWVudUl0ZW1UZXh0KGRpc3Bs
YXlOYW1lKTsKKyAgICAgICAgICAgIGlmICh0cmFjay0+aXNFYXN5VG9SZWFkKCkpCisgICAgICAg
ICAgICAgICAgZGlzcGxheU5hbWUgPSBlYXN5UmVhZGVyVHJhY2tNZW51SXRlbVRleHQoZGlzcGxh
eU5hbWUpOwogCi0gICAgICAgIHJldHVybiBkaXNwbGF5TmFtZTsKLSAgICB9CisgICAgICAgICAg
ICByZXR1cm4gZGlzcGxheU5hbWU7CisgICAgICAgIH0KIAotICAgIGlmICh0cmFjay0+aXNTREgo
KSkKLSAgICAgICAgZGlzcGxheU5hbWUgPSBzZGhUcmFja01lbnVJdGVtVGV4dChkaXNwbGF5TmFt
ZSk7CisgICAgICAgIGlmICh0cmFjay0+aXNTREgoKSkKKyAgICAgICAgICAgIGRpc3BsYXlOYW1l
ID0gc2RoVHJhY2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOwogCi0gICAgaWYgKHRyYWNrLT5j
b250YWluc09ubHlGb3JjZWRTdWJ0aXRsZXMoKSkKLSAgICAgICAgZGlzcGxheU5hbWUgPSBmb3Jj
ZWRUcmFja01lbnVJdGVtVGV4dChkaXNwbGF5TmFtZSk7CisgICAgICAgIGlmICh0cmFjay0+Y29u
dGFpbnNPbmx5Rm9yY2VkU3VidGl0bGVzKCkpCisgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IGZv
cmNlZFRyYWNrTWVudUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsKIAotICAgIGlmICh0cmFjay0+aXNF
YXN5VG9SZWFkKCkpCi0gICAgICAgIGRpc3BsYXlOYW1lID0gZWFzeVJlYWRlclRyYWNrTWVudUl0
ZW1UZXh0KGRpc3BsYXlOYW1lKTsKKyAgICAgICAgaWYgKHRyYWNrLT5pc0Vhc3lUb1JlYWQoKSkK
KyAgICAgICAgICAgIGRpc3BsYXlOYW1lID0gZWFzeVJlYWRlclRyYWNrTWVudUl0ZW1UZXh0KGRp
c3BsYXlOYW1lKTsKIAotICAgIHJldHVybiBkaXNwbGF5TmFtZTsKKyAgICAgICAgcmV0dXJuIGRp
c3BsYXlOYW1lOworICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQ2FwdGlvblVzZXJQ
cmVmZXJlbmNlc01lZGlhQUY6OmRpc3BsYXlOYW1lRm9yVHJhY2soVGV4dFRyYWNrKiB0cmFjaykg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggYTg0MjY1YS4uM2U0MjQ2ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZS5jcHAKQEAgLTM2OSw3ICszNjksOSBAQCBzdGF0aWMgSlNDOjpZYXJyOjpSZWd1bGFy
RXhwcmVzc2lvbiBjcmVhdGVSZWdFeHBGb3JMYWJlbHMoY29uc3QgVmVjdG9yPFN0cmluZz4mCiAg
ICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZExpdGVyYWwoIlxcYiIpOwogICAgIH0KICAgICBwYXR0
ZXJuLmFwcGVuZCgnKScpOwotICAgIHJldHVybiBKU0M6OllhcnI6OlJlZ3VsYXJFeHByZXNzaW9u
KHBhdHRlcm4udG9TdHJpbmcoKSwgSlNDOjpZYXJyOjpUZXh0Q2FzZUluc2Vuc2l0aXZlKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBwYXR0ZXJuLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBK
U0M6OllhcnI6OlJlZ3VsYXJFeHByZXNzaW9uKCpzdHJpbmcsIEpTQzo6WWFycjo6VGV4dENhc2VJ
bnNlbnNpdGl2ZSk7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIEZyYW1lOjpzZWFyY2hGb3JM
YWJlbHNBYm92ZUNlbGwoY29uc3QgSlNDOjpZYXJyOjpSZWd1bGFyRXhwcmVzc2lvbiYgcmVnRXhw
LCBIVE1MVGFibGVDZWxsRWxlbWVudCogY2VsbCwgc2l6ZV90KiByZXN1bHREaXN0YW5jZUZyb21T
dGFydE9mQ2VsbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcAppbmRleCAyNmNjYzdhLi40ZGNl
ZjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwCkBAIC0xNTAsNyArMTUwLDkgQEAgQXRv
bWljU3RyaW5nIEZyYW1lVHJlZTo6dW5pcXVlQ2hpbGROYW1lKGNvbnN0IEF0b21pY1N0cmluZyYg
cmVxdWVzdGVkTmFtZSkgY29uc3QKICAgICBuYW1lLmFwcGVuZE51bWJlcihjaGlsZENvdW50KCkp
OwogICAgIG5hbWUuYXBwZW5kTGl0ZXJhbCgiLS0+LS0+Iik7CiAKLSAgICByZXR1cm4gbmFtZS50
b0F0b21pY1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG5hbWUudG9BdG9taWNTdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGlj
IGJvb2wgaW5TY29wZShGcmFtZSYgZnJhbWUsIFRyZWVTY29wZSYgc2NvcGUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKaW5kZXggM2JkMDIyZi4uYWRjYzJmMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcApAQCAtMTQ1Miw3ICsxNDUyLDEwIEBAIHZvaWQgRnJhbWVWaWV3Ojpsb2dNb2Nr
U2Nyb2xsQW5pbWF0b3JNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgY29uc3QKICAgICAg
ICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJNYWluIik7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKCJGcmFtZVZpZXc6ICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG1lc3NhZ2UpOwotICAgIGRv
Y3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpPdGhlciwgTWVzc2FnZUxl
dmVsOjpEZWJ1ZywgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShN
ZXNzYWdlU291cmNlOjpPdGhlciwgTWVzc2FnZUxldmVsOjpEZWJ1ZywgKnN0cmluZyk7CisgICAg
ZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEZyYW1lVmlldzo6c2V0Q2Fubm90Qmxp
dFRvV2luZG93KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKaW5kZXggNWY2
NDIyNC4uOWFhOWYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFs
aXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKQEAg
LTI2Myw4ICsyNjMsMTEgQEAgdm9pZCBQYWdlU2VyaWFsaXplcjo6c2VyaWFsaXplQ1NTU3R5bGVT
aGVldChDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0LCBjb25zdCBVUkwKICAgICAgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBjaGVjayB3aGV0aGVyIGEgY2hhcnNldCBoYXMgYmVlbiBzcGVjaWZpZWQg
YW5kIGlmIG5vbmUgd2FzIGZvdW5kIGFkZCBvbmUuCiAgICAgICAgIFRleHRFbmNvZGluZyB0ZXh0
RW5jb2Rpbmcoc3R5bGVTaGVldC0+Y29udGVudHMoKS5jaGFyc2V0KCkpOwogICAgICAgICBBU1NF
UlQodGV4dEVuY29kaW5nLmlzVmFsaWQoKSk7Ci0gICAgICAgIG1fcmVzb3VyY2VzLmFwcGVuZCh7
IHVybCwgQVNDSUlMaXRlcmFsIHsgInRleHQvY3NzIiB9LCBTaGFyZWRCdWZmZXI6OmNyZWF0ZSh0
ZXh0RW5jb2RpbmcuZW5jb2RlKGNzc1RleHQudG9TdHJpbmcoKSwgVW5lbmNvZGFibGVIYW5kbGlu
Zzo6RW50aXRpZXMpKSB9KTsKLSAgICAgICAgbV9yZXNvdXJjZVVSTHMuYWRkKHVybCk7CisgICAg
ICAgIGlmIChhdXRvIHN0cmluZyA9IGNzc1RleHQudG9TdHJpbmcoKSkgeworICAgICAgICAgICAg
bV9yZXNvdXJjZXMuYXBwZW5kKHsgdXJsLCBBU0NJSUxpdGVyYWwgeyAidGV4dC9jc3MiIH0sIFNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlKHRleHRFbmNvZGluZy5lbmNvZGUoKnN0cmluZywgVW5lbmNvZGFi
bGVIYW5kbGluZzo6RW50aXRpZXMpKSB9KTsKKyAgICAgICAgICAgIG1fcmVzb3VyY2VVUkxzLmFk
ZCh1cmwpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZ0NsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5jcHAK
aW5kZXggOWQ0NGQ5NC4uM2I0NGZmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVy
Zm9ybWFuY2VMb2dnaW5nQ2xpZW50LmNwcApAQCAtNTAsNyArNTAsOSBAQCBTdHJpbmcgUGVyZm9y
bWFuY2VMb2dnaW5nQ2xpZW50OjpzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNBc1N0cmluZyhT
eW5jaHJvbm91cwogICAgICAgICByZWFzb25zLmFwcGVuZExpdGVyYWwoImltYWdlIGRvY3VtZW50
LCIpOwogCiAgICAgLy8gU3RyaXAgdGhlIHRyYWlsaW5nIGNvbW1hLgotICAgIHJldHVybiByZWFz
b25zLnRvU3RyaW5nKCkubGVmdChyZWFzb25zLmxlbmd0aCgpIC0gMSk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gcmVhc29ucy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gc3RyaW5nLT5sZWZ0
KHJlYXNvbnMubGVuZ3RoKCkgLSAxKTsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2lu
RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luRGF0YS5jcHAKaW5k
ZXggMmFhYzhlZS4uZTNhYzhkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1
cml0eU9yaWdpbkRhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmln
aW5EYXRhLmNwcApAQCAtODQsNyArODQsOSBAQCBTdHJpbmcgU2VjdXJpdHlPcmlnaW5EYXRhOjpk
YXRhYmFzZUlkZW50aWZpZXIoKSBjb25zdAogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHNlcGFy
YXRvckNoYXJhY3Rlcik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIocG9ydC52YWx1
ZV9vcigwKSk7CiAgICAgCi0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0ZDo6b3B0aW9uYWw8U2VjdXJpdHlP
cmlnaW5EYXRhPiBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21EYXRhYmFzZUlkZW50aWZpZXIoY29u
c3QgU3RyaW5nJiBkYXRhYmFzZUlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1doZWVsRXZlbnRUZXN0VHJpZ2dlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1do
ZWVsRXZlbnRUZXN0VHJpZ2dlci5jcHAKaW5kZXggZWQ1NDljZi4uZmM1MDI1MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdFRyaWdnZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmNwcApAQCAtMTAwLDcgKzEw
MCwxMCBAQCBzdGF0aWMgdm9pZCBkdW1wU3RhdGUoV1RGOjpIYXNoTWFwPFdoZWVsRXZlbnRUZXN0
VHJpZ2dlcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaQogICAgICAgICAgICAgICAgIHJlYXNvbnMu
YXBwZW5kKCIsICIpOwogICAgICAgICAgICAgcmVhc29ucy5hcHBlbmQoU3RyaW5nOjpudW1iZXIo
cmVhc29uKSk7CiAgICAgICAgIH0KLSAgICAgICAgTE9HKFdoZWVsRXZlbnRUZXN0VHJpZ2dlcnMs
ICIgICAgIFJlYXNvbnM6ICVzIiwgcmVhc29ucy50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwor
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZWFzb25zLnRvU3RyaW5nKCkpCisgICAgICAgICAg
ICBMT0coV2hlZWxFdmVudFRlc3RUcmlnZ2VycywgIiAgICAgUmVhc29uczogJXMiLCBzdHJpbmct
PnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAg
IH0KIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVu
dFNlY3VyaXR5UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1
cml0eVBvbGljeS5jcHAKaW5kZXggZmMyZmQxMi4uM2M5MTg3MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCkBAIC04NSw3ICs4NSw5
IEBAIHN0YXRpYyBTdHJpbmcgY29uc29sZU1lc3NhZ2VGb3JWaW9sYXRpb24oY29uc3QgY2hhciog
ZWZmZWN0aXZlVmlvbGF0ZWREaXJlY3RpdmUsCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoZWZmZWN0
aXZlVmlvbGF0ZWREaXJlY3RpdmUpOwogICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiIGRp
cmVjdGl2ZSBvZiB0aGUgQ29udGVudCBTZWN1cml0eSBQb2xpY3kuIik7CiAgICAgfQotICAgIHJl
dHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogQ29u
dGVudFNlY3VyaXR5UG9saWN5OjpDb250ZW50U2VjdXJpdHlQb2xpY3koU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKQEAgLTEzNyw3ICsxMzksMTAgQEAgYm9v
bCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93UnVubmluZ09yRGlzcGxheWluZ0luc2VjdXJl
Q29udGVudChjb25zdCBVUkwmIHUKICAgICAgICAgY29uc29sZU1lc3NhZ2UuYXBwZW5kKHVybC5z
dHJpbmdDZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSk7CiAgICAgICAgIGNvbnNvbGVNZXNzYWdl
LmFwcGVuZExpdGVyYWwoIiBiZWNhdXNlICIpOwogICAgICAgICBjb25zb2xlTWVzc2FnZS5hcHBl
bmQoIidibG9jay1hbGwtbWl4ZWQtY29udGVudCcgYXBwZWFycyBpbiB0aGUgQ29udGVudCBTZWN1
cml0eSBQb2xpY3kuIik7Ci0gICAgICAgIHJlcG9ydFZpb2xhdGlvbihDb250ZW50U2VjdXJpdHlQ
b2xpY3lEaXJlY3RpdmVOYW1lczo6YmxvY2tBbGxNaXhlZENvbnRlbnQsIENvbnRlbnRTZWN1cml0
eVBvbGljeURpcmVjdGl2ZU5hbWVzOjpibG9ja0FsbE1peGVkQ29udGVudCwgKnBvbGljeSwgdXJs
LCBjb25zb2xlTWVzc2FnZS50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
Y29uc29sZU1lc3NhZ2UudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJlcG9ydFZpb2xhdGlvbihD
b250ZW50U2VjdXJpdHlQb2xpY3lEaXJlY3RpdmVOYW1lczo6YmxvY2tBbGxNaXhlZENvbnRlbnQs
IENvbnRlbnRTZWN1cml0eVBvbGljeURpcmVjdGl2ZU5hbWVzOjpibG9ja0FsbE1peGVkQ29udGVu
dCwgKnBvbGljeSwgdXJsLCAqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JB
U0goKTsKIAogICAgICAgICBpZiAoIWlzUmVwb3J0T25seSkKICAgICAgICAgICAgIGFsbG93ID0g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9BeGlzU2Ny
b2xsU25hcE9mZnNldHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXhpc1Nj
cm9sbFNuYXBPZmZzZXRzLmNwcAppbmRleCAwMjA3NTM4Li5kOGQzZjI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9BeGlzU2Nyb2xsU25hcE9mZnNldHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0F4aXNTY3JvbGxTbmFwT2Zmc2V0cy5j
cHAKQEAgLTgxLDcgKzgxLDkgQEAgc3RhdGljIFN0cmluZyBzbmFwT2Zmc2V0c1RvU3RyaW5nKGNv
bnN0IFZlY3RvcjxMYXlvdXRVbml0PiYgc25hcE9mZnNldHMpCiAgICAgICAgIHMuYXBwZW5kKFN0
cmluZzo6Zm9ybWF0KCIlLjFmICIsIG9mZnNldC50b0Zsb2F0KCkpKTsKIAogICAgIHMuYXBwZW5k
KCJdIik7Ci0gICAgcmV0dXJuIHMudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBz
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IHN0YXRpYyBTdHJpbmcgc25hcE9mZnNldFJhbmdlc1RvU3RyaW5nKGNvbnN0IFZlY3RvcjxTY3Jv
bGxPZmZzZXRSYW5nZTxMYXlvdXRVbml0Pj4mIHJhbmdlcykKQEAgLTkxLDcgKzkzLDkgQEAgc3Rh
dGljIFN0cmluZyBzbmFwT2Zmc2V0UmFuZ2VzVG9TdHJpbmcoY29uc3QgVmVjdG9yPFNjcm9sbE9m
ZnNldFJhbmdlPExheW91dFVuaXQKICAgICBmb3IgKGF1dG8gcmFuZ2UgOiByYW5nZXMpCiAgICAg
ICAgIHMuYXBwZW5kKFN0cmluZzo6Zm9ybWF0KCIoJS4xZiwgJS4xZikgIiwgcmFuZ2Uuc3RhcnQu
dG9GbG9hdCgpLCByYW5nZS5lbmQudG9GbG9hdCgpKSk7CiAgICAgcy5hcHBlbmQoIl0iKTsKLSAg
ICByZXR1cm4gcy50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHMudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0
cmluZyBzbmFwUG9ydE9yQXJlYVRvU3RyaW5nKGNvbnN0IExheW91dFJlY3QmIHJlY3QpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRv
ci5jcHAKaW5kZXggZjUwMjIxYS4uM2MxYzZlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMzg5LDcgKzM4
OSw5IEBAIFN0cmluZyBTY3JvbGxpbmdDb29yZGluYXRvcjo6c3luY2hyb25vdXNTY3JvbGxpbmdS
ZWFzb25zQXNUZXh0KFN5bmNocm9ub3VzU2Nyb2xsCiAKICAgICBpZiAoc3RyaW5nQnVpbGRlci5s
ZW5ndGgoKSkKICAgICAgICAgc3RyaW5nQnVpbGRlci5yZXNpemUoc3RyaW5nQnVpbGRlci5sZW5n
dGgoKSAtIDIpOwotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6
OnN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uc0FzVGV4dCgpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EZWNpbWFsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0RlY2ltYWwuY3BwCmluZGV4IDNkNTI1Y2YuLjFhMTkyYTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0RlY2ltYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0RlY2ltYWwuY3BwCkBAIC05OTQsNyArOTk0LDkgQEAgU3RyaW5nIERlY2ltYWw6OnRvU3Ry
aW5nKCkgY29uc3QKICAgICBpZiAob3JpZ2luYWxFeHBvbmVudCA8PSAwICYmIGFkanVzdGVkRXhw
b25lbnQgPj0gLTYpIHsKICAgICAgICAgaWYgKCFvcmlnaW5hbEV4cG9uZW50KSB7CiAgICAgICAg
ICAgICBidWlsZGVyLmFwcGVuZChkaWdpdHMpOwotICAgICAgICAgICAgcmV0dXJuIGJ1aWxkZXIu
dG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgICAgIENSQVNI
KCk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoYWRqdXN0ZWRFeHBvbmVudCA+PSAwKSB7CkBA
IC0xMDAzLDcgKzEwMDUsOSBAQCBTdHJpbmcgRGVjaW1hbDo6dG9TdHJpbmcoKSBjb25zdAogICAg
ICAgICAgICAgICAgIGlmIChpID09IGFkanVzdGVkRXhwb25lbnQpCiAgICAgICAgICAgICAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCcuJyk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAg
ICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiMC4iKTsKQEAgLTEwMjcsNyArMTAzMSw5IEBAIFN0cmluZyBEZWNpbWFsOjp0b1N0cmluZygp
IGNvbnN0CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihhZGp1c3RlZEV4cG9uZW50
KTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogRGVjaW1hbCBEZWNpbWFsOjp6ZXJvKFNpZ24gc2ln
bikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAKaW5kZXggMmZkYjI2MC4uZTY3
ZDY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAKQEAgLTEzMCw3ICsx
MzAsOSBAQCBTdHJpbmcgZW5jb2RlRm9yRmlsZU5hbWUoY29uc3QgU3RyaW5nJiBpbnB1dFN0cmlu
ZykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2hhcmFjdGVyKTsKICAgICB9CiAKLSAgICBy
ZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0
cmluZyBkZWNvZGVGcm9tRmlsZW5hbWUoY29uc3QgU3RyaW5nJiBpbnB1dFN0cmluZykKQEAgLTE4
MSw3ICsxODMsOSBAQCBTdHJpbmcgZGVjb2RlRnJvbUZpbGVuYW1lKGNvbnN0IFN0cmluZyYgaW5w
dXRTdHJpbmcpCiAgICAgICAgIGkgKz0gNTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBsYXN0Q29tcG9u
ZW50T2ZQYXRoSWdub3JpbmdUcmFpbGluZ1NsYXNoKGNvbnN0IFN0cmluZyYgcGF0aCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPREludGVydmFsLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QT0RJbnRlcnZhbC5oCmluZGV4IDA0OGRhOTguLjY0NjM2MmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPREludGVydmFsLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUE9ESW50ZXJ2YWwuaApAQCAtMTQ1LDcgKzE0NSw5IEBAIHB1Ymxp
YzoKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsIG1heEhpZ2g9Iik7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKFZhbHVlVG9TdHJpbmc8VD46OnN0cmluZyhtYXhIaWdoKCkpKTsKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoJ10nKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPRFJlZEJsYWNrVHJlZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmgKaW5kZXggMTMxZjMx
YS4uNDk2MGVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUE9EUmVkQmxh
Y2tUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmgK
QEAgLTc0NCw3ICs3NDQsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KFZhbHVlVG9TdHJpbmc8VD46OnN0cmluZyhub2RlLT5kYXRhKCkpKTsKICAgICAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKChub2RlLT5jb2xvcigpID09IEJsYWNrKSA/ICIgKGJsYWNrKSIgOiAiIChy
ZWQpIik7CiAgICAgICAgIH0KLSAgICAgICAgTE9HX0VSUk9SKCIlcyIsIGJ1aWxkZXIudG9TdHJp
bmcoKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgICAgIExPR19FUlJPUigiJXMiLCBzdHJpbmctPmFzY2lpKCku
ZGF0YSgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgaWYg
KG5vZGUpIHsKICAgICAgICAgICAgIGR1bXBGcm9tTm9kZShub2RlLT5sZWZ0KCksIGluZGVudGF0
aW9uICsgMik7CiAgICAgICAgICAgICBkdW1wRnJvbU5vZGUobm9kZS0+cmlnaHQoKSwgaW5kZW50
YXRpb24gKyAyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwCmluZGV4IDk5MDBlNTUuLjAzMzVhNTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcApAQCAtNDQ4LDggKzQ0OCwxMSBAQCB2b2lkIFVSTDo6
c2V0SG9zdChjb25zdCBTdHJpbmcmIHMpCiAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nVmlldyhl
bmNvZGVkSG9zdE5hbWUuZGF0YSgpLCBlbmNvZGVkSG9zdE5hbWUuc2l6ZSgpKSk7CiAgICAgYnVp
bGRlci5hcHBlbmQobV9zdHJpbmcuc3Vic3RyaW5nKG1faG9zdEVuZCkpOwogCi0gICAgVVJMUGFy
c2VyIHBhcnNlcihidWlsZGVyLnRvU3RyaW5nKCkpOwotICAgICp0aGlzID0gcGFyc2VyLnJlc3Vs
dCgpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAg
ICBVUkxQYXJzZXIgcGFyc2VyKCpzdHJpbmcpOworICAgICAgICAqdGhpcyA9IHBhcnNlci5yZXN1
bHQoKTsKKyAgICB9IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBVUkw6OnJlbW92
ZVBvcnQoKQpAQCAtNTEwLDggKzUxMywxMSBAQCB2b2lkIFVSTDo6c2V0SG9zdEFuZFBvcnQoY29u
c3QgU3RyaW5nJiBob3N0QW5kUG9ydCkKICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmQobV9zdHJp
bmcuc3Vic3RyaW5nKG1fcG9ydEVuZCkpOwogCi0gICAgVVJMUGFyc2VyIHBhcnNlcihidWlsZGVy
LnRvU3RyaW5nKCkpOwotICAgICp0aGlzID0gcGFyc2VyLnJlc3VsdCgpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICBVUkxQYXJzZXIgcGFyc2Vy
KCpzdHJpbmcpOworICAgICAgICAqdGhpcyA9IHBhcnNlci5yZXN1bHQoKTsKKyAgICB9IGVsc2UK
KyAgICAgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBwZXJjZW50RW5jb2RlQ2hhcmFj
dGVycyhjb25zdCBTdHJpbmcmIGlucHV0LCBib29sKCpzaG91bGRFbmNvZGUpKFVDaGFyKSkKQEAg
LTUzMCw3ICs1MzYsOSBAQCBzdGF0aWMgU3RyaW5nIHBlcmNlbnRFbmNvZGVDaGFyYWN0ZXJzKGNv
bnN0IFN0cmluZyYgaW5wdXQsIGJvb2woKnNob3VsZEVuY29kZSkoVQogICAgICAgICAgICAgfSBl
bHNlCiAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoYyk7CiAgICAgICAgIH0KLSAgICAg
ICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
YnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAg
IENSQVNIKCk7CiAgICAgfTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaW5wdXQubGVu
Z3RoKCk7ICsraSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0
aW9uL1RpbWluZ0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlv
bi9UaW1pbmdGdW5jdGlvbi5jcHAKaW5kZXggOGM5NzJkNi4uZWRiZmVkNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uY3BwCkBA
IC0xMjksNyArMTI5LDEwIEBAIEV4Y2VwdGlvbk9yPFJlZlB0cjxUaW1pbmdGdW5jdGlvbj4+IFRp
bWluZ0Z1bmN0aW9uOjpjcmVhdGVGcm9tQ1NTVGV4dChjb25zdCBTdHJpCiAgICAgY3NzU3RyaW5n
LmFwcGVuZExpdGVyYWwoIjogIik7CiAgICAgY3NzU3RyaW5nLmFwcGVuZChjc3NUZXh0KTsKICAg
ICBhdXRvIHN0eWxlUHJvcGVydGllcyA9IE11dGFibGVTdHlsZVByb3BlcnRpZXM6OmNyZWF0ZSgp
OwotICAgIHN0eWxlUHJvcGVydGllcy0+cGFyc2VEZWNsYXJhdGlvbihjc3NTdHJpbmcudG9TdHJp
bmcoKSwgQ1NTUGFyc2VyQ29udGV4dChIVE1MU3RhbmRhcmRNb2RlKSk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gY3NzU3RyaW5nLnRvU3RyaW5nKCkpCisgICAgICAgIHN0eWxlUHJvcGVydGllcy0+
cGFyc2VEZWNsYXJhdGlvbigqc3RyaW5nLCBDU1NQYXJzZXJDb250ZXh0KEhUTUxTdGFuZGFyZE1v
ZGUpKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAgICBpZiAoYXV0byBjc3NWYWx1
ZSA9IHN0eWxlUHJvcGVydGllcy0+Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eUFuaW1h
dGlvblRpbWluZ0Z1bmN0aW9uKSkgewogICAgICAgICBpZiAoYXV0byB0aW1pbmdGdW5jdGlvbiA9
IGNyZWF0ZUZyb21DU1NWYWx1ZSgqY3NzVmFsdWUuZ2V0KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcAppbmRleCBmOTQwODE1Li4yYjMwYjJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGli
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNw
cApAQCAtMjE4LDcgKzIxOCw5IEBAIFN0cmluZyBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnRzKFN0
cmluZ1ZpZXcgcGF0aCwgY29uc3QgVmVjdG9yPFN0cmluZ1ZpZXc+JiBjb21wCiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKEdfRElSX1NFUEFSQVRPUl9TKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
Y29tcG9uZW50KTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgbWFrZUFsbERpcmVjdG9yaWVzKGNvbnN0IFN0
cmluZyYgcGF0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvVXNl
ckFnZW50R0xpYi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL1VzZXJBZ2VudEdM
aWIuY3BwCmluZGV4IDE2MjFhODguLjM4MDc3ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dsaWIvVXNlckFnZW50R0xpYi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ2xpYi9Vc2VyQWdlbnRHTGliLmNwcApAQCAtMTA2LDcgKzEwNiw5IEBAIHN0YXRpYyBT
dHJpbmcgYnVpbGRVc2VyQWdlbnRTdHJpbmcoY29uc3QgVXNlckFnZW50UXVpcmtzJiBxdWlya3Mp
CiAgICAgdWFTdHJpbmcuYXBwZW5kTGl0ZXJhbCgiVmVyc2lvbi8xMS4wIFNhZmFyaS8iKTsKICAg
ICB1YVN0cmluZy5hcHBlbmQodmVyc2lvbkZvclVBU3RyaW5nKCkpOwogCi0gICAgcmV0dXJuIHVh
U3RyaW5nLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdWFTdHJpbmcudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGlj
IGNvbnN0IFN0cmluZyBzdGFuZGFyZFVzZXJBZ2VudFN0YXRpYygpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKaW5kZXggNWRkMTUwZi4uZWUxYmU3NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcApAQCAtMzQ4LDcgKzM0OCw5
IEBAIFN0cmluZyBDb2xvcjo6c2VyaWFsaXplZCgpIGNvbnN0CiAgICAgICAgIGFwcGVuZEJ5dGVB
c0hleChyZWQoKSwgYnVpbGRlciwgTG93ZXJjYXNlKTsKICAgICAgICAgYXBwZW5kQnl0ZUFzSGV4
KGdyZWVuKCksIGJ1aWxkZXIsIExvd2VyY2FzZSk7CiAgICAgICAgIGFwcGVuZEJ5dGVBc0hleChi
bHVlKCksIGJ1aWxkZXIsIExvd2VyY2FzZSk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3Ry
aW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAg
IHJldHVybiBjc3NUZXh0KCk7CkBAIC0zODQsNyArMzg2LDkgQEAgU3RyaW5nIENvbG9yOjpjc3NU
ZXh0KCkgY29uc3QKICAgICB9CiAgICAgICAgIAogICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Ci0g
ICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIFN0cmluZyBDb2xvcjo6bmFtZUZvclJlbmRlclRyZWVBc1RleHQoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmNwcAppbmRl
eCA1MGUzYzVjLi40NDhkZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9FeHRlbmRlZENvbG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9FeHRlbmRlZENvbG9yLmNwcApAQCAtNzIsNyArNzIsOSBAQCBTdHJpbmcgRXh0ZW5k
ZWRDb2xvcjo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgfQogICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7
CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udENhc2NhZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENh
c2NhZGUuY3BwCmluZGV4IDg0Nzg2MWYuLjU1NDgyOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAKQEAgLTU0OSw3ICs1NDksOSBAQCBz
dGF0aWMgaW5saW5lIFN0cmluZyBub3JtYWxpemVTcGFjZXNJbnRlcm5hbChjb25zdCBDaGFyYWN0
ZXJUeXBlKiBjaGFyYWN0ZXJzLCB1bgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5n
dGg7ICsraSkKICAgICAgICAgbm9ybWFsaXplZC5hcHBlbmQoRm9udENhc2NhZGU6Om5vcm1hbGl6
ZVNwYWNlcyhjaGFyYWN0ZXJzW2ldKSk7CiAKLSAgICByZXR1cm4gbm9ybWFsaXplZC50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG5vcm1hbGl6ZWQudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIEZvbnRDYXNjYWRl
Ojpub3JtYWxpemVTcGFjZXMoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0
aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRUYWdn
ZWRTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250VGFn
Z2VkU2V0dGluZ3MuY3BwCmluZGV4IDYxYjJlYmUuLjVjNDY3MjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRUYWdnZWRTZXR0aW5ncy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNldHRpbmdzLmNwcApA
QCAtNzIsNyArNzIsMTAgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywg
Y29uc3QgRm9udFZhcmlhdGlvblNldHRpbmdzJiBpdGVtKQogICAgICAgICBzLmFwcGVuZCh2YXJp
YXRpb24udGFnKClbMV0pOwogICAgICAgICBzLmFwcGVuZCh2YXJpYXRpb24udGFnKClbMl0pOwog
ICAgICAgICBzLmFwcGVuZCh2YXJpYXRpb24udGFnKClbM10pOwotICAgICAgICB0cy5kdW1wUHJv
cGVydHkocy50b1N0cmluZygpLCBpdGVtLmF0KGkpLnZhbHVlKCkpOworICAgICAgICBpZiAoYXV0
byBzdHJpbmcgPSBzLnRvU3RyaW5nKCkpCisgICAgICAgICAgICB0cy5kdW1wUHJvcGVydHkoKnN0
cmluZywgaXRlbS5hdChpKS52YWx1ZSgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JB
U0goKTsKICAgICB9CiAgICAgcmV0dXJuIHRzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAppbmRleCA2OTgxODBlLi4xNWNlODky
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xh
eWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xh
eWVyLmNwcApAQCAtNDQxLDcgKzQ0MSw5IEBAIFN0cmluZyBHcmFwaGljc0xheWVyOjphbmltYXRp
b25OYW1lRm9yVHJhbnNpdGlvbihBbmltYXRlZFByb3BlcnR5SUQgcHJvcGVydHkpCiAgICAgaWQu
YXBwZW5kTGl0ZXJhbCgiLXx0cmFuc2l0aW9uIik7CiAgICAgaWQuYXBwZW5kTnVtYmVyKHN0YXRp
Y19jYXN0PGludD4ocHJvcGVydHkpKTsKICAgICBpZC5hcHBlbmQoJy0nKTsKLSAgICByZXR1cm4g
aWQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBpZC50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIEdyYXBoaWNzTGF5
ZXI6OnN1c3BlbmRBbmltYXRpb25zKE1vbm90b25pY1RpbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZUFWRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKaW5kZXggNmYyYjM4Ny4uOTUzYzQ5OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmNwcApA
QCAtMzAwLDggKzMwMCwxMiBAQCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nl
c3NDdWVBdHRyaWJ1dGVzKENGQXR0cmlidXRlZFN0cmluZ1JlZiBhdHRyaQogICAgICAgICBjb250
ZW50LmFwcGVuZCh0YWdFbmQpOwogICAgIH0KIAotICAgIGlmIChjb250ZW50Lmxlbmd0aCgpKQot
ICAgICAgICBjdWVEYXRhLnNldENvbnRlbnQoY29udGVudC50b1N0cmluZygpKTsKKyAgICBpZiAo
Y29udGVudC5sZW5ndGgoKSkgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBjb250ZW50LnRv
U3RyaW5nKCkpCisgICAgICAgICAgICBjdWVEYXRhLnNldENvbnRlbnQoKnN0cmluZyk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CisgICAgfQogfQogCiB2b2lkIEluYmFuZFRl
eHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NDdWUoQ0ZBcnJheVJlZiBhdHRyaWJ1dGVkU3RyaW5n
cywgQ0ZBcnJheVJlZiBuYXRpdmVTYW1wbGVzLCBjb25zdCBNZWRpYVRpbWUmIHRpbWUpCkBAIC01
MzAsNyArNTM0LDEwIEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc05h
dGl2ZVNhbXBsZXMoQ0ZBcnJheVJlZiBuYXRpdmVTYW1wbGVzLCBjCiAgICAgICAgICAgICBoZWFk
ZXIuYXBwZW5kKCJcblxuIik7CiAKICAgICAgICAgICAgIERFQlVHX0xPRyhMT0dJREVOVElGSUVS
LCAiVlRUIGhlYWRlciAiLCAmaGVhZGVyKTsKLSAgICAgICAgICAgIGNsaWVudCgpLT5wYXJzZVdl
YlZUVEZpbGVIZWFkZXIoaGVhZGVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gaGVhZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgY2xpZW50KCktPnBh
cnNlV2ViVlRURmlsZUhlYWRlcihXVEZNb3ZlKCpzdHJpbmcpKTsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgbV9oYXZlUmVwb3J0ZWRWVFRI
ZWFkZXIgPSB0cnVlOwogICAgICAgICB9IHdoaWxlICgwKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwCmluZGV4IGVj
M2FlNGYuLmEzN2Q4NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5jcHAKQEAgLTczNSw3ICs3MzUsMTAgQEAgUmVmUHRy
PFBsYXRmb3JtQ0FMYXllcj4gVGlsZUNvbnRyb2xsZXI6OmNyZWF0ZVRpbGVMYXllcihjb25zdCBJ
bnRSZWN0JiB0aWxlUmVjdCwKICAgICBuYW1lQnVpbGRlci5hcHBlbmROdW1iZXIodGlsZVJlY3Qu
bG9jYXRpb24oKS54KCkpOwogICAgIG5hbWVCdWlsZGVyLmFwcGVuZCgnLCcpOwogICAgIG5hbWVC
dWlsZGVyLmFwcGVuZE51bWJlcih0aWxlUmVjdC5sb2NhdGlvbigpLnkoKSk7Ci0gICAgbGF5ZXIt
PnNldE5hbWUobmFtZUJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
bmFtZUJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgbGF5ZXItPnNldE5hbWUoKnN0cmluZyk7
CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgZmxvYXQgdGVtcG9yYXJ5U2NhbGVG
YWN0b3IgPSBvd25pbmdHcmFwaGljc0xheWVyKCktPnBsYXRmb3JtQ0FMYXllckNvbnRlbnRzU2Nh
bGVNdWx0aXBsaWVyRm9yTmV3VGlsZXMobV90aWxlQ2FjaGVMYXllcik7CiAgICAgbV9oYXNUaWxl
c1dpdGhUZW1wb3JhcnlTY2FsZUZhY3RvciB8PSB0ZW1wb3JhcnlTY2FsZUZhY3RvciAhPSAxOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUdyaWQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUdyaWQuY3BwCmlu
ZGV4IDU5MTlmOTcuLmU4NjY1OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9UaWxlR3JpZC5jcHAKQEAgLTU5LDcgKzU5LDkgQEAgc3RhdGljIFN0cmluZyB2
YWxpZGF0aW9uUG9saWN5QXNTdHJpbmcoVGlsZUdyaWQ6OlRpbGVWYWxpZGF0aW9uUG9saWN5IHZh
bGlkYXRpb24KICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJdIik7CiAKLSAgICBy
ZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93
aW4vUGxhdGZvcm1DQUxheWVyV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwCmluZGV4IGMwMDBiNDMuLmZhNjQwZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0
Zm9ybUNBTGF5ZXJXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwCkBAIC05MzQsNyArOTM0LDkgQEAgU3RyaW5n
IFBsYXRmb3JtQ0FMYXllcldpbjo6bGF5ZXJUcmVlQXNTdHJpbmcoKSBjb25zdAogICAgIC8vIFBy
aW50IGxheWVyIHRyZWUgZnJvbSB0aGUgcm9vdAogICAgIHByaW50TGF5ZXIoYnVpbGRlciwgdGhp
cywgMCk7CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogUmVmPFBsYXRmb3JtQ0FMYXllcj4gUGxhdGZvcm1DQUxheWVyV2luOjpj
cmVhdGVDb21wYXRpYmxlTGF5ZXIoUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGUgbGF5ZXJUeXBl
LCBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIGNsaWVudCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNW
LmNwcAppbmRleCBkZmZjZGNiLi40N2YzMjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwCkBA
IC01MTIsNyArNTEyLDEwIEBAIGJvb2wgVmlkZW9UZXh0dXJlQ29waWVyQ1Y6OmluaXRpYWxpemVD
b250ZXh0T2JqZWN0cygpCiAgICAgdmVydGV4U2hhZGVyU291cmNlLmFwcGVuZExpdGVyYWwoIn1c
biIpOwogCiAgICAgUGxhdGZvcm0zRE9iamVjdCB2ZXJ0ZXhTaGFkZXIgPSBtX2NvbnRleHQtPmNy
ZWF0ZVNoYWRlcihHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVYX1NIQURFUik7Ci0gICAgbV9jb250
ZXh0LT5zaGFkZXJTb3VyY2UodmVydGV4U2hhZGVyLCB2ZXJ0ZXhTaGFkZXJTb3VyY2UudG9TdHJp
bmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdmVydGV4U2hhZGVyU291cmNlLnRvU3RyaW5n
KCkpCisgICAgICAgIG1fY29udGV4dC0+c2hhZGVyU291cmNlKHZlcnRleFNoYWRlciwgKnN0cmlu
Zyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIG1fY29udGV4dC0+Y29tcGlsZVNo
YWRlckRpcmVjdCh2ZXJ0ZXhTaGFkZXIpOwogCiAgICAgR0MzRGludCB2YWx1ZSA9IDA7CkBAIC01
NTMsNyArNTU2LDEwIEBAIGJvb2wgVmlkZW9UZXh0dXJlQ29waWVyQ1Y6OmluaXRpYWxpemVDb250
ZXh0T2JqZWN0cygpCiAgICAgZnJhZ21lbnRTaGFkZXJTb3VyY2UuYXBwZW5kTGl0ZXJhbCgifVxu
Iik7CiAKICAgICBQbGF0Zm9ybTNET2JqZWN0IGZyYWdtZW50U2hhZGVyID0gbV9jb250ZXh0LT5j
cmVhdGVTaGFkZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQUdNRU5UX1NIQURFUik7Ci0gICAgbV9j
b250ZXh0LT5zaGFkZXJTb3VyY2UoZnJhZ21lbnRTaGFkZXIsIGZyYWdtZW50U2hhZGVyU291cmNl
LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGZyYWdtZW50U2hhZGVyU291cmNl
LnRvU3RyaW5nKCkpCisgICAgICAgIG1fY29udGV4dC0+c2hhZGVyU291cmNlKGZyYWdtZW50U2hh
ZGVyLCAqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgbV9jb250ZXh0
LT5jb21waWxlU2hhZGVyRGlyZWN0KGZyYWdtZW50U2hhZGVyKTsKIAogICAgIG1fY29udGV4dC0+
Z2V0U2hhZGVyaXYoZnJhZ21lbnRTaGFkZXIsIEdyYXBoaWNzQ29udGV4dDNEOjpDT01QSUxFX1NU
QVRVUywgJnZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21t
b24uY3BwCmluZGV4IDViZGQ2NjMuLjAyNWVjY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dDNET3BlbkdMQ29tbW9uLmNwcApAQCAtOTUzLDcgKzk1Myw5IEBAIHN0YXRpYyBTdHJp
bmcgZ2VuZXJhdGVIYXNoZWROYW1lKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJ3ZWJnbF8iKTsKICAgICBh
cHBlbmRVbnNpZ25lZDY0QXNIZXgobnVtYmVyLCBidWlsZGVyLCBMb3dlcmNhc2UpOwotICAgIHJl
dHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBz
dGQ6Om9wdGlvbmFsPFN0cmluZz4gR3JhcGhpY3NDb250ZXh0M0Q6Om1hcHBlZFN5bWJvbEluU2hh
ZGVyU291cmNlTWFwKFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyLCBBTkdMRVNoYWRlclN5bWJvbFR5
cGUgc3ltYm9sVHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lKQpAQCAtMTY4NSw4ICsxNjg3LDExIEBA
IFN0cmluZyBHcmFwaGljc0NvbnRleHQzRDo6Z2V0VW5tYW5nbGVkSW5mb0xvZyhQbGF0Zm9ybTNE
T2JqZWN0IHNoYWRlcnNbMl0sIEdDM0RzCiAKICAgICBwcm9jZXNzZWRMb2cuYXBwZW5kKGxvZy5z
dWJzdHJpbmcoc3RhcnRGcm9tLCBsb2cubGVuZ3RoKCkgLSBzdGFydEZyb20pKTsKIAotICAgIExP
RyhXZWJHTCwgIlVubWFuZ2xlZCBTaGFkZXJJbmZvTG9nOlxuJXMiLCBwcm9jZXNzZWRMb2cudG9T
dHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICByZXR1cm4gcHJvY2Vzc2VkTG9nLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcHJvY2Vzc2VkTG9nLnRvU3RyaW5nKCkpIHsKKyAg
ICAgICAgTE9HKFdlYkdMLCAiVW5tYW5nbGVkIFNoYWRlckluZm9Mb2c6XG4lcyIsIHN0cmluZy0+
dXRmOCgpLmRhdGEoKSk7CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIH0KKyAgICBDUkFT
SCgpOwogfQogCiBTdHJpbmcgR3JhcGhpY3NDb250ZXh0M0Q6OmdldFByb2dyYW1JbmZvTG9nKFBs
YXRmb3JtM0RPYmplY3QgcHJvZ3JhbSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclBy
b2dyYW0uY3BwCmluZGV4IDJlNmM1MmMuLjI0YTg4ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJTaGFkZXJQcm9ncmFtLmNwcApAQCAtMzk3LDcgKzM5NywxMCBAQCBSZWY8VGV4dHVyZU1h
cHBlclNoYWRlclByb2dyYW0+IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpjcmVhdGUoVGV4
dHVyZU1hcHBlcgogI2VuZGlmCiAKICAgICAvLyBBcHBlbmQgdGhlIG9wdGlvbnMuCi0gICAgdmVy
dGV4U2hhZGVyQnVpbGRlci5hcHBlbmQob3B0aW9uc0FwcGxpZXJCdWlsZGVyLnRvU3RyaW5nKCkp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IG9wdGlvbnNBcHBsaWVyQnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICB2ZXJ0ZXhTaGFkZXJCdWlsZGVyLmFwcGVuZCgqc3RyaW5nKTsKKyAgICBlbHNl
CisgICAgICAgIENSQVNIKCk7CiAKICAgICAvLyBBcHBlbmQgdGhlIGFwcHJvcHJpYXRlIGlucHV0
L291dHB1dCB2YXJpYWJsZSBkZWZpbml0aW9ucy4KICNpZiBVU0UoT1BFTkdMX0VTKQpAQCAtNDIx
LDcgKzQyNCwxMCBAQCBSZWY8VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0+IFRleHR1cmVNYXBw
ZXJTaGFkZXJQcm9ncmFtOjpjcmVhdGUoVGV4dHVyZU1hcHBlcgogI2VuZGlmCiAKICAgICAvLyBB
cHBlbmQgdGhlIG9wdGlvbnMuCi0gICAgZnJhZ21lbnRTaGFkZXJCdWlsZGVyLmFwcGVuZChvcHRp
b25zQXBwbGllckJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gb3B0
aW9uc0FwcGxpZXJCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGZyYWdtZW50U2hhZGVyQnVp
bGRlci5hcHBlbmQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAg
Ly8gQXBwZW5kIHRoZSBjb21tb24gaGVhZGVyLgogICAgIGZyYWdtZW50U2hhZGVyQnVpbGRlci5h
cHBlbmQoZnJhZ21lbnRUZW1wbGF0ZUhlYWRlckNvbW1vbik7CkBAIC00MzksNyArNDQ1LDEwIEBA
IFJlZjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gVGV4dHVyZU1hcHBlclNoYWRlclByb2dy
YW06OmNyZWF0ZShUZXh0dXJlTWFwcGVyCiAgICAgLy8gQXBwZW5kIHRoZSBjb21tb24gY29kZS4K
ICAgICBmcmFnbWVudFNoYWRlckJ1aWxkZXIuYXBwZW5kKGZyYWdtZW50VGVtcGxhdGVDb21tb24p
OwogCi0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0o
dmVydGV4U2hhZGVyQnVpbGRlci50b1N0cmluZygpLCBmcmFnbWVudFNoYWRlckJ1aWxkZXIudG9T
dHJpbmcoKSkpOworICAgIGlmIChhdXRvIHZlcnRleFN0cmluZyA9IHZlcnRleFNoYWRlckJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaWYgKGF1dG8gZnJhZ21lbnRTdHJpbmcgPSBmcmFnbWVu
dFNoYWRlckJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtKCp2ZXJ0ZXhTdHJpbmcsICpmcmFnbWVudFN0
cmluZykpOworICAgIENSQVNIKCk7CiB9CiAKICNpZiAhTE9HX0RJU0FCTEVECmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VsZWN0aW9uRGF0YS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VsZWN0aW9uRGF0YS5jcHAKaW5kZXggMWUyNzk5Yi4uZmZj
N2UxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1NlbGVjdGlvbkRh
dGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWxlY3Rpb25EYXRhLmNw
cApAQCAtOTYsNyArOTYsMTAgQEAgdm9pZCBTZWxlY3Rpb25EYXRhOjpzZXRVUkwoY29uc3QgVVJM
JiB1cmwsIGNvbnN0IFN0cmluZyYgbGFiZWwpCiAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZXNjYXBl
ZChnX21hcmt1cF9lc2NhcGVfdGV4dChhY3R1YWxMYWJlbC51dGY4KCkuZGF0YSgpLCAtMSkpOwog
ICAgIG1hcmt1cC5hcHBlbmQoU3RyaW5nOjpmcm9tVVRGOChlc2NhcGVkLmdldCgpKSk7CiAgICAg
bWFya3VwLmFwcGVuZCgiPC9hPiIpOwotICAgIHNldE1hcmt1cChtYXJrdXAudG9TdHJpbmcoKSk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWFya3VwLnRvU3RyaW5nKCkpCisgICAgICAgIHNldE1h
cmt1cCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIGNvbnN0IFN0
cmluZyYgU2VsZWN0aW9uRGF0YTo6dXJsTGFiZWwoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQppbmRleCAzNjU4ZGQxLi5hMTJjYjMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQpAQCAtMjg4LDcg
KzI4OCw5IEBAIHN0YXRpYyBTdHJpbmcgam9pblBhdGhuYW1lcyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYgcGF0aG5hbWVzKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKHBhdGgpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBQYXN0ZWJvYXJkOjpyZWFk
KFBhc3RlYm9hcmRQbGFpblRleHQmIHRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1N0cmluZ1V0aWxpdGllcy5tbQppbmRleCA3Y2QxYmQ4Li45ZjM4ZmI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0KQEAgLTUwLDggKzUw
LDEwIEBAIHN0YXRpYyBTdHJpbmcgd2lsZGNhcmRSZWdleFBhdHRlcm5TdHJpbmcoY29uc3QgU3Ry
aW5nJiBzdHJpbmcpCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGNoYXJhY3Rlcik7CiAg
ICAgfQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCckJyk7Ci0gICAgICAgIAotICAgIHJldHVy
biBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAgICAgCiBib29sIHN0cmluZ01hdGNoZXNXaWxkY2FyZFN0cmluZyhjb25zdCBTdHJp
bmcmIHN0cmluZywgY29uc3QgU3RyaW5nJiB3aWxkY2FyZFN0cmluZykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Nyb2xsQW5pbWF0b3JNb2NrLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Nyb2xsQW5pbWF0b3JNb2NrLmNwcAppbmRleCAzY2Mw
ZmU5Li4zMWJkM2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1Nj
cm9sbEFuaW1hdG9yTW9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9T
Y3JvbGxBbmltYXRvck1vY2suY3BwCkBAIC0xMDEsNyArMTAxLDEwIEBAIHZvaWQgU2Nyb2xsQW5p
bWF0b3JNb2NrOjptb3VzZUVudGVyZWRTY3JvbGxiYXIoU2Nyb2xsYmFyKiBzY3JvbGxiYXIpIGNv
bnN0CiAgICAgZWxzZQogICAgICAgICBtZXNzYWdlLmFwcGVuZExpdGVyYWwoIlVua25vd24iKTsK
ICAgICBtZXNzYWdlLmFwcGVuZExpdGVyYWwoIlNjcm9sbGJhciIpOwotICAgIG1fbG9nZ2VyKG1l
c3NhZ2UudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWVzc2FnZS50b1N0cmlu
ZygpKQorICAgICAgICBtX2xvZ2dlcigqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNI
KCk7CiAgICAgU2Nyb2xsQW5pbWF0b3I6Om1vdXNlRW50ZXJlZFNjcm9sbGJhcihzY3JvbGxiYXIp
OwogfQogCkBAIC0xMTYsNyArMTE5LDEwIEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNb2NrOjptb3Vz
ZUV4aXRlZFNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhcikgY29uc3QKICAgICBlbHNlCiAg
ICAgICAgIG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiVW5rbm93biIpOwogICAgIG1lc3NhZ2UuYXBw
ZW5kTGl0ZXJhbCgiU2Nyb2xsYmFyIik7Ci0gICAgbV9sb2dnZXIobWVzc2FnZS50b1N0cmluZygp
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtZXNzYWdlLnRvU3RyaW5nKCkpCisgICAgICAgIG1f
bG9nZ2VyKCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICBTY3JvbGxB
bmltYXRvcjo6bW91c2VFeGl0ZWRTY3JvbGxiYXIoc2Nyb2xsYmFyKTsKIH0KIApAQCAtMTM2LDcg
KzE0MiwxMCBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTW9jazo6bW91c2VJc0Rvd25JblNjcm9sbGJh
cihTY3JvbGxiYXIqIHNjcm9sbGJhciwgYm9vbCBpc1ByZQogICAgIGVsc2UKICAgICAgICAgbWVz
c2FnZS5hcHBlbmRMaXRlcmFsKCJVbmtub3duIik7CiAgICAgbWVzc2FnZS5hcHBlbmRMaXRlcmFs
KCJTY3JvbGxiYXIiKTsKLSAgICBtX2xvZ2dlcihtZXNzYWdlLnRvU3RyaW5nKCkpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IG1lc3NhZ2UudG9TdHJpbmcoKSkKKyAgICAgICAgbV9sb2dnZXIoKnN0
cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIFNjcm9sbEFuaW1hdG9yOjpt
b3VzZUlzRG93bkluU2Nyb2xsYmFyKHNjcm9sbGJhciwgaXNQcmVzc2VkKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrQm94LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja0JveC5jcHAK
aW5kZXggZDRhYTIwNS4uZmI2NWE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tCb3guY3BwCkBAIC01Miw3ICs1Miw5IEBAIFN0cmlu
ZyBNb2NrQm94OjpwZWVrVHlwZShBcnJheUJ1ZmZlciogZGF0YSkKICAgICBSZWZQdHI8SW50OEFy
cmF5PiBhcnJheSA9IEpTQzo6SW50OEFycmF5OjpjcmVhdGUoZGF0YSwgMCwgNCk7CiAgICAgZm9y
IChpbnQgaSA9IDA7IGkgPCA0OyArK2kpCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGFycmF5LT5p
dGVtKGkpKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogc2l6ZV90IE1vY2tCb3g6OnBlZWtMZW5ndGgoQXJyYXlCdWZmZXIqIGRh
dGEpCkBAIC03Myw3ICs3NSwxMCBAQCBNb2NrVHJhY2tCb3g6Ok1vY2tUcmFja0JveChBcnJheUJ1
ZmZlciogZGF0YSkKICAgICBSZWZQdHI8SW50OEFycmF5PiBhcnJheSA9IEpTQzo6SW50OEFycmF5
OjpjcmVhdGUoZGF0YSwgMTIsIDQpOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgKytpKQog
ICAgICAgICBidWlsZGVyLmFwcGVuZChhcnJheS0+aXRlbShpKSk7Ci0gICAgbV9jb2RlYyA9IGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIG1fY29kZWMgPSAqc3RyaW5nOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0go
KTsKIAogICAgIG1fa2luZCA9IHN0YXRpY19jYXN0PFRyYWNrS2luZD4odmlldy0+Z2V0PHVpbnQ4
X3Q+KDE2LCB0cnVlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0hUVFBQYXJzZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
SFRUUFBhcnNlcnMuY3BwCmluZGV4IGM4ZjQ1ZTUuLjhkMzBkODcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwCkBAIC0zMjgsNyArMzI4LDkg
QEAgU3RyaW5nIGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29uc3QgU3RyaW5nJiBtZWRp
YVR5cGUpCiAKICAgICBpZiAobWltZVR5cGUubGVuZ3RoKCkgPT0gbGVuZ3RoKQogICAgICAgICBy
ZXR1cm4gbWVkaWFUeXBlOwotICAgIHJldHVybiBtaW1lVHlwZS50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IG1pbWVUeXBlLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBleHRyYWN0Q2hhcnNldEZyb21NZWRpYVR5
cGUoY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL01JTUVIZWFkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9NSU1FSGVhZGVyLmNwcAppbmRleCAyNTE2OTNlLi43NzY3MDlkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL01JTUVIZWFkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTUlNRUhlYWRlci5jcHAKQEAgLTYzLDcgKzYz
LDEwIEBAIHN0YXRpYyBLZXlWYWx1ZU1hcCByZXRyaWV2ZUtleVZhbHVlUGFpcnMoV2ViQ29yZTo6
U2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXImIGJ1ZmZlCiAgICAgICAgIGlmICgha2V5LmlzRW1wdHko
KSkgewogICAgICAgICAgICAgaWYgKGtleVZhbHVlUGFpcnMuZmluZChrZXkpICE9IGtleVZhbHVl
UGFpcnMuZW5kKCkpCiAgICAgICAgICAgICAgICAgTE9HX0VSUk9SKCJLZXkgZHVwbGljYXRlIGZv
dW5kIGluIE1JTUUgaGVhZGVyLiBLZXkgaXMgJyVzJywgcHJldmlvdXMgdmFsdWUgcmVwbGFjZWQu
Iiwga2V5LmFzY2lpKCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGtleVZhbHVlUGFpcnMuYWRkKGtl
eSwgdmFsdWUudG9TdHJpbmcoKS5zdHJpcFdoaXRlU3BhY2UoKSk7CisgICAgICAgICAgICBpZiAo
YXV0byBzdHJpbmcgPSB2YWx1ZS50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIGtleVZhbHVl
UGFpcnMuYWRkKGtleSwgc3RyaW5nLT5zdHJpcFdoaXRlU3BhY2UoKSk7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIGtleSA9IFN0cmluZygp
OwogICAgICAgICAgICAgdmFsdWUuY2xlYXIoKTsKICAgICAgICAgfQpAQCAtNzYsOCArNzksMTIg
QEAgc3RhdGljIEtleVZhbHVlTWFwIHJldHJpZXZlS2V5VmFsdWVQYWlycyhXZWJDb3JlOjpTaGFy
ZWRCdWZmZXJDaHVua1JlYWRlciYgYnVmZmUKICAgICAgICAgdmFsdWUuYXBwZW5kKGxpbmUuc3Vi
c3RyaW5nKHNlbWlDb2xvbkluZGV4ICsgMSkpOwogICAgIH0KICAgICAvLyBTdG9yZSB0aGUgbGFz
dCBwcm9wZXJ0eSBpZiB0aGVyZSBpcyBvbmUuCi0gICAgaWYgKCFrZXkuaXNFbXB0eSgpKQotICAg
ICAgICBrZXlWYWx1ZVBhaXJzLnNldChrZXksIHZhbHVlLnRvU3RyaW5nKCkuc3RyaXBXaGl0ZVNw
YWNlKCkpOworICAgIGlmICgha2V5LmlzRW1wdHkoKSkgeworICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSB2YWx1ZS50b1N0cmluZygpKQorICAgICAgICAgICAga2V5VmFsdWVQYWlycy5zZXQoa2V5
LCBzdHJpbmctPnN0cmlwV2hpdGVTcGFjZSgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
Q1JBU0goKTsKKyAgICB9CiAgICAgcmV0dXJuIGtleVZhbHVlUGFpcnM7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJveHlTZXJ2ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5jcHAKaW5kZXggYzZkNjdj
Mi4uMGM2OWY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Q
cm94eVNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm94
eVNlcnZlci5jcHAKQEAgLTY4LDcgKzY4LDkgQEAgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFZlY3Rv
cjxQcm94eVNlcnZlcj4mIHByb3h5U2VydmVycykKICAgICAgICAgYXBwZW5kUHJveHlTZXJ2ZXJT
dHJpbmcoc3RyaW5nQnVpbGRlciwgcHJveHlTZXJ2ZXJzW2ldKTsKICAgICB9CiAKLSAgICByZXR1
cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmlu
Z0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQ29va2llSmFyQ3VybERhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9Db29raWVKYXJDdXJsRGF0YWJhc2UuY3BwCmluZGV4IDY3MmIyNTEuLmE0ZTc0
YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29r
aWVKYXJDdXJsRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9Db29raWVKYXJDdXJsRGF0YWJhc2UuY3BwCkBAIC01Nyw3ICs1Nyw5IEBAIHN0YXRp
YyBTdHJpbmcgY29va2llc0ZvclNlc3Npb24oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBz
ZXNzaW9uLCBjb25zdCBVUkwmCiAgICAgICAgICAgICBjb29raWVzLmFwcGVuZChyZXN1bHQudmFs
dWUpOwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiBjb29raWVzLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gY29va2llcy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIENvb2tpZUphckN1cmxEYXRhYmFzZTo6
c2V0Q29va2llc0Zyb21ET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJs
LCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90
PiBwYWdlSUQsIGNvbnN0IFN0cmluZyYgdmFsdWUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVKYXJNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVKYXJNYWMubW0KaW5kZXggYzI2NDBiZC4u
MDAwNWRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
Q29va2llSmFyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFj
L0Nvb2tpZUphck1hYy5tbQpAQCAtMjYxLDcgKzI2MSwxMCBAQCBzdGF0aWMgc3RkOjpwYWlyPFN0
cmluZywgYm9vbD4gY29va2llc0ZvclNlc3Npb24oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiBzZQogICAgICAgICBjb29raWVzQnVpbGRlci5hcHBlbmQoJz0nKTsKICAgICAgICAgY29va2ll
c0J1aWxkZXIuYXBwZW5kKFtjb29raWUgdmFsdWVdKTsKICAgICB9Ci0gICAgcmV0dXJuIHsgY29v
a2llc0J1aWxkZXIudG9TdHJpbmcoKSwgZGlkQWNjZXNzU2VjdXJlQ29va2llcyB9OworCisgICAg
aWYgKGF1dG8gc3RyaW5nID0gY29va2llc0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuIHsgKnN0cmluZywgZGlkQWNjZXNzU2VjdXJlQ29va2llcyB9OworICAgIENSQVNIKCk7CiAK
ICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAgIHJldHVybiB7IFN0cmluZygpLCBm
YWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcG9zaXgvRmlsZVN5
c3RlbVBPU0lYLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1Q
T1NJWC5jcHAKaW5kZXggNGRhN2NmNi4uMzg5ZDJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCkBAIC0zMTAsNyArMzEwLDkgQEAg
U3RyaW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudHMoU3RyaW5nVmlldyBwYXRoLCBjb25zdCBW
ZWN0b3I8U3RyaW5nVmlldz4mIGNvbXAKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJy8nKTsKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoY29tcG9uZW50KTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgbWFrZUFs
bERpcmVjdG9yaWVzKGNvbnN0IFN0cmluZyYgcGF0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvRGF0ZVRpbWVGb3JtYXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5jcHAKaW5kZXggYzc1ZDMzZC4uYTFlZmMyYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5jcHAKQEAg
LTE0NSw3ICsxNDUsMTAgQEAgYm9vbCBEYXRlVGltZUZvcm1hdDo6cGFyc2UoY29uc3QgU3RyaW5n
JiBzb3VyY2UsIFRva2VuSGFuZGxlciYgdG9rZW5IYW5kbGVyKQogICAgICAgICAgICAgfQogCiAg
ICAgICAgICAgICBpZiAobGl0ZXJhbEJ1ZmZlci5sZW5ndGgoKSkgewotICAgICAgICAgICAgICAg
IHRva2VuSGFuZGxlci52aXNpdExpdGVyYWwobGl0ZXJhbEJ1ZmZlci50b1N0cmluZygpKTsKKyAg
ICAgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBsaXRlcmFsQnVmZmVyLnRvU3RyaW5nKCkp
CisgICAgICAgICAgICAgICAgICAgIHRva2VuSGFuZGxlci52aXNpdExpdGVyYWwoKnN0cmluZyk7
CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAg
ICAgICAgICAgICAgIGxpdGVyYWxCdWZmZXIuY2xlYXIoKTsKICAgICAgICAgICAgIH0KIApAQCAt
MTY5LDcgKzE3MiwxMCBAQCBib29sIERhdGVUaW1lRm9ybWF0OjpwYXJzZShjb25zdCBTdHJpbmcm
IHNvdXJjZSwgVG9rZW5IYW5kbGVyJiB0b2tlbkhhbmRsZXIpCiAgICAgICAgICAgICB9CiAKICAg
ICAgICAgICAgIGlmIChsaXRlcmFsQnVmZmVyLmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICAgICAg
dG9rZW5IYW5kbGVyLnZpc2l0TGl0ZXJhbChsaXRlcmFsQnVmZmVyLnRvU3RyaW5nKCkpOworICAg
ICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGxpdGVyYWxCdWZmZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgICAgICAgICAgICAgdG9rZW5IYW5kbGVyLnZpc2l0TGl0ZXJhbCgqc3RyaW5nKTsK
KyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAg
ICAgICAgICAgICAgbGl0ZXJhbEJ1ZmZlci5jbGVhcigpOwogICAgICAgICAgICAgfQogCkBAIC0y
MjAsMTQgKzIyNiwyMiBAQCBib29sIERhdGVUaW1lRm9ybWF0OjpwYXJzZShjb25zdCBTdHJpbmcm
IHNvdXJjZSwgVG9rZW5IYW5kbGVyJiB0b2tlbkhhbmRsZXIpCiAgICAgc3dpdGNoIChzdGF0ZSkg
ewogICAgIGNhc2UgU3RhdGVMaXRlcmFsOgogICAgIGNhc2UgU3RhdGVJblF1b3RlUXVvdGU6Ci0g
ICAgICAgIGlmIChsaXRlcmFsQnVmZmVyLmxlbmd0aCgpKQotICAgICAgICAgICAgdG9rZW5IYW5k
bGVyLnZpc2l0TGl0ZXJhbChsaXRlcmFsQnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAo
bGl0ZXJhbEJ1ZmZlci5sZW5ndGgoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
bGl0ZXJhbEJ1ZmZlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHRva2VuSGFuZGxlci52
aXNpdExpdGVyYWwoKnN0cmluZyk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
Q1JBU0goKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGNhc2UgU3Rh
dGVRdW90ZToKICAgICBjYXNlIFN0YXRlSW5RdW90ZToKLSAgICAgICAgaWYgKGxpdGVyYWxCdWZm
ZXIubGVuZ3RoKCkpCi0gICAgICAgICAgICB0b2tlbkhhbmRsZXIudmlzaXRMaXRlcmFsKGxpdGVy
YWxCdWZmZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChsaXRlcmFsQnVmZmVyLmxlbmd0aCgp
KSB7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBsaXRlcmFsQnVmZmVyLnRvU3RyaW5n
KCkpCisgICAgICAgICAgICAgICAgdG9rZW5IYW5kbGVyLnZpc2l0TGl0ZXJhbCgqc3RyaW5nKTsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGNhc2UgU3RhdGVTeW1ib2w6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RlY29kZUVzY2FwZVNlcXVlbmNlcy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EZWNvZGVFc2NhcGVTZXF1ZW5jZXMuaAppbmRl
eCAxNGNmNDE1Li43MmEwYTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L0RlY29kZUVzY2FwZVNlcXVlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmgKQEAgLTY0LDcgKzY0LDkgQEAgc3RydWN0IFVu
aWNvZGUxNkJpdEVzY2FwZVNlcXVlbmNlIHsKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGNv
ZGVVbml0KTsKICAgICAgICAgICAgIHJ1biA9IHJ1bi5zdWJzdHJpbmcoc2VxdWVuY2VTaXplKTsK
ICAgICAgICAgfQotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9OwogCkBAIC0xNTEsNyArMTUzLDkg
QEAgU3RyaW5nIGRlY29kZUVzY2FwZVNlcXVlbmNlcyhTdHJpbmdWaWV3IHN0cmluZywgY29uc3Qg
VGV4dEVuY29kaW5nJiBlbmNvZGluZykKICAgICAgICAgZGVjb2RlZFBvc2l0aW9uID0gZW5jb2Rl
ZFJ1bkVuZDsKICAgICB9CiAgICAgcmVzdWx0LmFwcGVuZChzdHJpbmcuc3Vic3RyaW5nKGRlY29k
ZWRQb3NpdGlvbiwgbGVuZ3RoIC0gZGVjb2RlZFBvc2l0aW9uKSk7Ci0gICAgcmV0dXJuIHJlc3Vs
dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBpbmxpbmUgVmVjdG9y
PHVpbnQ4X3Q+IGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlc0FzRGF0YShTdHJpbmdWaWV3IHN0cmlu
ZywgY29uc3QgVGV4dEVuY29kaW5nJiBlbmNvZGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvUGxhdGZvcm1Mb2NhbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5jcHAKaW5kZXggMDg3NDMyNS4uYTllNThlNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5jcHAKQEAg
LTgzLDcgKzgzLDkgQEAgU3RyaW5nIERhdGVUaW1lU3RyaW5nQnVpbGRlcjo6emVyb1BhZFN0cmlu
Zyhjb25zdCBTdHJpbmcmIHN0cmluZywgc2l6ZV90IHdpZHRoKQogICAgIGZvciAoc2l6ZV90IGkg
PSBzdHJpbmcubGVuZ3RoKCk7IGkgPCB3aWR0aDsgKytpKQogICAgICAgICB6ZXJvUGFkZGVkU3Ry
aW5nQnVpbGRlci5hcHBlbmQoJzAnKTsKICAgICB6ZXJvUGFkZGVkU3RyaW5nQnVpbGRlci5hcHBl
bmQoc3RyaW5nKTsKLSAgICByZXR1cm4gemVyb1BhZGRlZFN0cmluZ0J1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB6ZXJvUGFkZGVkU3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIERh
dGVUaW1lU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKGludCBudW1iZXIsIHNpemVfdCB3aWR0
aCkKQEAgLTE3NSw3ICsxNzcsOSBAQCB2b2lkIERhdGVUaW1lU3RyaW5nQnVpbGRlcjo6dmlzaXRM
aXRlcmFsKGNvbnN0IFN0cmluZyYgdGV4dCkKIAogU3RyaW5nIERhdGVUaW1lU3RyaW5nQnVpbGRl
cjo6dG9TdHJpbmcoKQogewotICAgIHJldHVybiBtX2J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBtX2J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogI2VuZGlmCkBAIC0yMzgsNyArMjQyLDkgQEAgU3Ry
aW5nIExvY2FsZTo6Y29udmVydFRvTG9jYWxpemVkTnVtYmVyKGNvbnN0IFN0cmluZyYgaW5wdXQp
CiAKICAgICBidWlsZGVyLmFwcGVuZChpc05lZ2F0aXZlID8gbV9uZWdhdGl2ZVN1ZmZpeCA6IG1f
cG9zaXRpdmVTdWZmaXgpOwogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBib29sIG1hdGNoZXMoY29uc3QgU3RyaW5n
JiB0ZXh0LCB1bnNpZ25lZCBwb3NpdGlvbiwgY29uc3QgU3RyaW5nJiBwYXJ0KQpAQCAtMzIxLDcg
KzMyNyw5IEBAIFN0cmluZyBMb2NhbGU6OmNvbnZlcnRGcm9tTG9jYWxpemVkTnVtYmVyKGNvbnN0
IFN0cmluZyYgbG9jYWxpemVkKQogICAgICAgICBlbHNlCiAgICAgICAgICAgICBidWlsZGVyLmFw
cGVuZChzdGF0aWNfY2FzdDxVQ2hhcj4oJzAnICsgc3ltYm9sSW5kZXgpKTsKICAgICB9Ci0gICAg
cmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
ICNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKQEAgLTM2MCw3ICszNjgsOSBA
QCBTdHJpbmcgTG9jYWxlOjpmb3JtYXREYXRlVGltZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0
ZSwgRm9ybWF0VHlwZSBmb3JtYXRUeXBlKQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNwcAppbmRl
eCBmZjMxYjJhLi40OGNiYTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L1NlZ21lbnRlZFN0cmluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9TZWdtZW50ZWRTdHJpbmcuY3BwCkBAIC0xNTksNyArMTU5LDkgQEAgU3RyaW5nIFNlZ21lbnRl
ZFN0cmluZzo6dG9TdHJpbmcoKSBjb25zdAogICAgIG1fY3VycmVudFN1YnN0cmluZy5hcHBlbmRU
byhyZXN1bHQpOwogICAgIGZvciAoYXV0byYgc3Vic3RyaW5nIDogbV9vdGhlclN1YnN0cmluZ3Mp
CiAgICAgICAgIHN1YnN0cmluZy5hcHBlbmRUbyhyZXN1bHQpOwotICAgIHJldHVybiByZXN1bHQu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBTZWdtZW50ZWRT
dHJpbmc6OmFkdmFuY2VXaXRob3V0VXBkYXRpbmdMaW5lTnVtYmVyMTYoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNJQ1UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNJQ1UuY3BwCmluZGV4IGQyZTJhZTcuLjc2MjJj
YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNV
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAK
QEAgLTMxOCwxMyArMzE4LDE0IEBAIFN0cmluZyBUZXh0Q29kZWNJQ1U6OmRlY29kZShjb25zdCBj
aGFyKiBieXRlcywgc2l6ZV90IGxlbmd0aCwgYm9vbCBmbHVzaCwgYm9vbCBzCiAgICAgICAgIHNh
d0Vycm9yID0gdHJ1ZTsKICAgICB9CiAKLSAgICBTdHJpbmcgcmVzdWx0U3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gcmVzdWx0U3RyaW5nID0gcmVzdWx0LnRvU3RyaW5n
KCkpIHsKKyAgICAgICAgLy8gU2ltcGxpZmllZCBDaGluZXNlIHBhZ2VzIHVzZSB0aGUgY29kZSBB
M0EwIHRvIG1lYW4gImZ1bGwtd2lkdGggc3BhY2UiLCBidXQgSUNVIGRlY29kZXMgaXQgYXMgVStF
NUU1LgorICAgICAgICBpZiAoIXN0cmNtcChtX2VuY29kaW5nTmFtZSwgIkdCSyIpIHx8IGVxdWFs
TGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKG1fZW5jb2RpbmdOYW1lLCAiZ2IxODAzMCIpKQorICAg
ICAgICAgICAgcmVzdWx0U3RyaW5nLT5yZXBsYWNlKDB4RTVFNSwgaWRlb2dyYXBoaWNTcGFjZSk7
CiAKLSAgICAvLyBTaW1wbGlmaWVkIENoaW5lc2UgcGFnZXMgdXNlIHRoZSBjb2RlIEEzQTAgdG8g
bWVhbiAiZnVsbC13aWR0aCBzcGFjZSIsIGJ1dCBJQ1UgZGVjb2RlcyBpdCBhcyBVK0U1RTUuCi0g
ICAgaWYgKCFzdHJjbXAobV9lbmNvZGluZ05hbWUsICJHQksiKSB8fCBlcXVhbExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZShtX2VuY29kaW5nTmFtZSwgImdiMTgwMzAiKSkKLSAgICAgICAgcmVzdWx0
U3RyaW5nLnJlcGxhY2UoMHhFNUU1LCBpZGVvZ3JhcGhpY1NwYWNlKTsKLQotICAgIHJldHVybiBy
ZXN1bHRTdHJpbmc7CisgICAgICAgIHJldHVybiAqcmVzdWx0U3RyaW5nOworICAgIH0KKyAgICBD
UkFTSCgpOwogfQogCiAvLyBXZSBuZWVkIHRvIGFwcGx5IHRoZXNlIGZhbGxiYWNrcyBvdXJzZWx2
ZXMgYXMgdGhleSBhcmUgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQgYnkgSUNVIGFuZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVc2VyRGVmaW5lZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VzZXJEZWZpbmVkLmNw
cAppbmRleCAyOTZjNDY5Li5jYjcwZTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L1RleHRDb2RlY1VzZXJEZWZpbmVkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VzZXJEZWZpbmVkLmNwcApAQCAtNTMsNyArNTMsOSBAQCBT
dHJpbmcgVGV4dENvZGVjVXNlckRlZmluZWQ6OmRlY29kZShjb25zdCBjaGFyKiBieXRlcywgc2l6
ZV90IGxlbmd0aCwgYm9vbCwgYm9vbAogICAgICAgICBzaWduZWQgY2hhciBjID0gYnl0ZXNbaV07
CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoc3RhdGljX2Nhc3Q8VUNoYXI+KGMgJiAweEY3RkYpKTsK
ICAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBzdGF0aWMgVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZUNvbXBsZXhVc2VyRGVmaW5l
ZChTdHJpbmdWaWV3IHN0cmluZywgVW5lbmNvZGFibGVIYW5kbGluZyBoYW5kbGluZykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3ZyL29wZW52ci9WUlBsYXRmb3JtRGlzcGxh
eU9wZW5WUi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS92ci9vcGVudnIvVlJQbGF0Zm9y
bURpc3BsYXlPcGVuVlIuY3BwCmluZGV4IGRkNjI4OGUuLjE2OWVjYjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3ZyL29wZW52ci9WUlBsYXRmb3JtRGlzcGxheU9wZW5WUi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvb3BlbnZyL1ZSUGxhdGZvcm1EaXNw
bGF5T3BlblZSLmNwcApAQCAtNDUsNyArNDUsMTAgQEAgVlJQbGF0Zm9ybURpc3BsYXlPcGVuVlI6
OlZSUGxhdGZvcm1EaXNwbGF5T3BlblZSKHZyOjpJVlJTeXN0ZW0qIHN5c3RlbSwgdnI6OklWUkMK
ICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoSE1ETmFtZSwgbGVuZ3RoKTsKICAgICAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmQoJyknKTsKICAgICB9Ci0gICAgbV9kaXNwbGF5SW5mby5zZXRE
aXNwbGF5TmFtZShzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgbV9kaXNwbGF5SW5mby5zZXRE
aXNwbGF5TmFtZShXVEZNb3ZlKCpzdHJpbmcpKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7
CiAgICAgbV9kaXNwbGF5SW5mby5zZXRJc01vdW50ZWQoZmFsc2UpOwogICAgIC8vIEZJWE1FOiBX
ZSdyZSBhc3N1bWluZyBhbiBIVEMgVml2ZSBITUQgaGVyZS4gR2V0IHRoaXMgaW5mbyBmcm9tIE9w
ZW5WUj8uCiAgICAgbV9kaXNwbGF5SW5mby5zZXRDYXBhYmlsaXR5RmxhZ3MoVlJEaXNwbGF5Q2Fw
YWJpbGl0eUZsYWdOb25lIHwgVlJEaXNwbGF5Q2FwYWJpbGl0eUZsYWdQb3NpdGlvbiB8IFZSRGlz
cGxheUNhcGFiaWxpdHlGbGFnT3JpZW50YXRpb24gfCBWUkRpc3BsYXlDYXBhYmlsaXR5RmxhZ0V4
dGVybmFsRGlzcGxheSB8IFZSRGlzcGxheUNhcGFiaWxpdHlGbGFnUHJlc2VudCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3Bw
CmluZGV4IDZmZjg5ZWMuLjJiYzZkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCkBAIC0zMTQsNyArMzE0LDEwIEBA
IHZvaWQgcmVwbGFjZU5ld2xpbmVzV2l0aFdpbmRvd3NTdHlsZU5ld2xpbmVzKFN0cmluZyYgc3Ry
KQogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiXHJcbiIp
OwogICAgIH0KLSAgICBzdHIgPSByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgc3RyID0gKnN0cmluZzsKKyAgICBlbHNl
CisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgcmVwbGFjZU5CU1BXaXRoU3BhY2UoU3RyaW5n
JiBzdHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vVXNlckFnZW50
V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Vc2VyQWdlbnRXaW4uY3BwCmlu
ZGV4IDgyMDFmNGUuLmQzZDY5NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9Vc2VyQWdlbnRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9V
c2VyQWdlbnRXaW4uY3BwCkBAIC00Niw3ICs0Niw5IEBAIFN0cmluZyBzdGFuZGFyZFVzZXJBZ2Vu
dChjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uTmFtZSwgY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlv
CiAgICAgICAgICAgICB1YVN0cmluZy5hcHBlbmQoYXBwbGljYXRpb25WZXJzaW9uKTsKICAgICAg
ICAgfQogICAgIH0KLSAgICByZXR1cm4gdWFTdHJpbmcudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSB1YVN0cmluZy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoY29uc3Qg
VVJMJiB1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUmVuZGVy
VGhlbWVXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BF
LmNwcAppbmRleCBlNWQ4MDI3Li42NjkxYmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5jcHAKQEAgLTYwLDcgKzYwLDkgQEAgU3RyaW5nIFJlbmRl
clRoZW1lV1BFOjptZWRpYUNvbnRyb2xzU2NyaXB0KCkKICAgICBTdHJpbmdCdWlsZGVyIHNjcmlw
dEJ1aWxkZXI7CiAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQobWVkaWFDb250cm9sc0xvY2FsaXpl
ZFN0cmluZ3NKYXZhU2NyaXB0LCBzaXplb2YobWVkaWFDb250cm9sc0xvY2FsaXplZFN0cmluZ3NK
YXZhU2NyaXB0KSk7CiAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQobWVkaWFDb250cm9sc0Jhc2VK
YXZhU2NyaXB0LCBzaXplb2YobWVkaWFDb250cm9sc0Jhc2VKYXZhU2NyaXB0KSk7Ci0gICAgcmV0
dXJuIHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzY3Jp
cHRCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAjZW5kaWYKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lu
cy9ET01NaW1lVHlwZS5jcHAKaW5kZXggMWIyZDc1Mi4uMmZlNTg2MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGx1Z2lucy9ET01NaW1lVHlwZS5jcHAKQEAgLTU3LDcgKzU3LDkgQEAgU3RyaW5nIERPTU1pbWVU
eXBlOjpzdWZmaXhlcygpIGNvbnN0CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnLCcpOwog
ICAgICAgICBidWlsZGVyLmFwcGVuZChleHRlbnNpb25zW2ldKTsKICAgICB9Ci0gICAgcmV0dXJu
IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmlu
ZyBET01NaW1lVHlwZTo6ZGVzY3JpcHRpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAKaW5kZXggZmEwZTU3YS4uYmE5Y2Q2MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC00MjgsNyArNDI4LDkgQEAgU3RyaW5nIFJl
bmRlckxheWVyOjpuYW1lKCkgY29uc3QKICAgICBpZiAoaXNSZWZsZWN0aW9uKCkpCiAgICAgICAg
IG5hbWUuYXBwZW5kTGl0ZXJhbCgiIChyZWZsZWN0aW9uKSIpOwogCi0gICAgcmV0dXJuIG5hbWUu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBuYW1lLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFJlbmRlckxheWVyQ29tcG9z
aXRvciYgUmVuZGVyTGF5ZXI6OmNvbXBvc2l0b3IoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCAwZTkwODg4Li5j
NzliNjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmNwcApAQCAtODYzLDcgKzg2MywxMCBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6bG9nTGF5ZXJJbmZvKGNvbnN0IFJlbmRlckxheWVyJiBsYXllciwgaW50IGRlcHRoKQog
CiAgICAgbG9nU3RyaW5nLmFwcGVuZChsYXllci5uYW1lKCkpOwogCi0gICAgTE9HKENvbXBvc2l0
aW5nLCAiJXMiLCBsb2dTdHJpbmcudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBsb2dTdHJpbmcudG9TdHJpbmcoKSkKKyAgICAgICAgTE9HKENvbXBvc2l0
aW5nLCAiJXMiLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgIGVsc2UKKyAgICAgICAgQ1JB
U0goKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdE1hcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlz
dE1hcmtlci5jcHAKaW5kZXggNjQ5Njk3OC4uZTQ4YTI5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcApAQCAtMTExNyw3ICsxMTE3LDkgQEAgU3Ry
aW5nIGxpc3RNYXJrZXJUZXh0KEVMaXN0U3R5bGVUeXBlIHR5cGUsIGludCB2YWx1ZSkKICAgICAg
ICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBSZW5kZXJMaXN0TWFya2VyOjpSZW5kZXJMaXN0
TWFya2VyKFJlbmRlckxpc3RJdGVtJiBsaXN0SXRlbSwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKQEAg
LTEzNjMsNyArMTM2NSwxMCBAQCB2b2lkIFJlbmRlckxpc3RNYXJrZXI6OnBhaW50KFBhaW50SW5m
byYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZQogICAgICAgICAgICAg
ICAgIGJ1ZmZlci5hcHBlbmQoc3VmZml4KTsKICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5k
KHNwYWNlKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRvRHJhdyA9IGJ1ZmZlci50b1N0
cmluZygpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVmZmVyLnRvU3RyaW5nKCkp
CisgICAgICAgICAgICAgICAgdG9EcmF3ID0gKnN0cmluZzsKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgaWYg
KHN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKQogICAgICAgICAgICAgICAgIHRvRHJh
dyA9IG1fdGV4dCArIFN0cmluZygmc3VmZml4LCAxKSArIFN0cmluZygmc3BhY2UsIDEpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCmluZGV4IDhmYTUxZTIuLjEwNTIwZmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKQEAgLTE4MSw3ICsxODEs
OSBAQCBTdHJpbmcgY2FwaXRhbGl6ZShjb25zdCBTdHJpbmcmIHN0cmluZywgVUNoYXIgcHJldmlv
dXNDaGFyYWN0ZXIpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHN0cmluZ0ltcGxbaSAtIDFd
KTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIGlubGluZSBSZW5kZXJUZXh0OjpSZW5kZXJUZXh0KE5vZGUmIG5vZGUs
IGNvbnN0IFN0cmluZyYgdGV4dCkKQEAgLTc1NiwxNiArNzU4LDE5IEBAIHN0YXRpYyBmbG9hdCBt
YXhXb3JkRnJhZ21lbnRXaWR0aChSZW5kZXJUZXh0JiByZW5kZXJlciwgY29uc3QgUmVuZGVyU3R5
bGUmIHN0eWxlCiAgICAgICAgIGZyYWdtZW50V2l0aEh5cGhlbi5hcHBlbmQod29yZC5zdWJzdHJp
bmcoc3VmZml4U3RhcnQsIGZyYWdtZW50TGVuZ3RoKSk7CiAgICAgICAgIGZyYWdtZW50V2l0aEh5
cGhlbi5hcHBlbmQoc3R5bGUuaHlwaGVuU3RyaW5nKCkpOwogCi0gICAgICAgIFRleHRSdW4gcnVu
ID0gUmVuZGVyQmxvY2s6OmNvbnN0cnVjdFRleHRSdW4oZnJhZ21lbnRXaXRoSHlwaGVuLnRvU3Ry
aW5nKCksIHN0eWxlKTsKLSAgICAgICAgcnVuLnNldENoYXJhY3RlclNjYW5Gb3JDb2RlUGF0aCgh
cmVuZGVyZXIuY2FuVXNlU2ltcGxlRm9udENvZGVQYXRoKCkpOwotICAgICAgICBmbG9hdCBmcmFn
bWVudFdpZHRoID0gZm9udC53aWR0aChydW4sICZmYWxsYmFja0ZvbnRzLCAmZ2x5cGhPdmVyZmxv
dyk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGZyYWdtZW50V2l0aEh5cGhlbi50b1N0cmlu
ZygpKSB7CisgICAgICAgICAgICBUZXh0UnVuIHJ1biA9IFJlbmRlckJsb2NrOjpjb25zdHJ1Y3RU
ZXh0UnVuKCpzdHJpbmcsIHN0eWxlKTsKKyAgICAgICAgICAgIHJ1bi5zZXRDaGFyYWN0ZXJTY2Fu
Rm9yQ29kZVBhdGgoIXJlbmRlcmVyLmNhblVzZVNpbXBsZUZvbnRDb2RlUGF0aCgpKTsKKyAgICAg
ICAgICAgIGZsb2F0IGZyYWdtZW50V2lkdGggPSBmb250LndpZHRoKHJ1biwgJmZhbGxiYWNrRm9u
dHMsICZnbHlwaE92ZXJmbG93KTsKIAotICAgICAgICAvLyBOYXJyb3cgcHJlZml4ZXMgYXJlIGln
bm9yZWQuIFNlZSB0cnlIeXBoZW5hdGluZyBpbiBSZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwLgot
ICAgICAgICBpZiAoZnJhZ21lbnRXaWR0aCA8PSBtaW5pbXVtRnJhZ21lbnRXaWR0aFRvQ29uc2lk
ZXIpCi0gICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIC8vIE5hcnJvdyBwcmVmaXhl
cyBhcmUgaWdub3JlZC4gU2VlIHRyeUh5cGhlbmF0aW5nIGluIFJlbmRlckJsb2NrTGluZUxheW91
dC5jcHAuCisgICAgICAgICAgICBpZiAoZnJhZ21lbnRXaWR0aCA8PSBtaW5pbXVtRnJhZ21lbnRX
aWR0aFRvQ29uc2lkZXIpCisgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgc3Vm
Zml4U3RhcnQgKz0gZnJhZ21lbnRMZW5ndGg7Ci0gICAgICAgIG1heEZyYWdtZW50V2lkdGggPSBz
dGQ6Om1heChtYXhGcmFnbWVudFdpZHRoLCBmcmFnbWVudFdpZHRoKTsKKyAgICAgICAgICAgIHN1
ZmZpeFN0YXJ0ICs9IGZyYWdtZW50TGVuZ3RoOworICAgICAgICAgICAgbWF4RnJhZ21lbnRXaWR0
aCA9IHN0ZDo6bWF4KG1heEZyYWdtZW50V2lkdGgsIGZyYWdtZW50V2lkdGgpOworICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIG1heEZyYWdt
ZW50V2lkdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lR3RrLmNwcApp
bmRleCAwNzg1OTEwLi41NjdjNDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUd0ay5jcHAKQEAgLTIwMjYsNyArMjAyNiw5IEBAIFN0cmluZyBSZW5kZXJUaGVtZUd0
azo6bWVkaWFDb250cm9sc1NjcmlwdCgpCiAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQobWVkaWFD
b250cm9sc0xvY2FsaXplZFN0cmluZ3NKYXZhU2NyaXB0LCBzaXplb2YobWVkaWFDb250cm9sc0xv
Y2FsaXplZFN0cmluZ3NKYXZhU2NyaXB0KSk7CiAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQobWVk
aWFDb250cm9sc0Jhc2VKYXZhU2NyaXB0LCBzaXplb2YobWVkaWFDb250cm9sc0Jhc2VKYXZhU2Ny
aXB0KSk7CiAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQobWVkaWFDb250cm9sc0d0a0phdmFTY3Jp
cHQsIHNpemVvZihtZWRpYUNvbnRyb2xzR3RrSmF2YVNjcmlwdCkpOwotICAgIHJldHVybiBzY3Jp
cHRCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc2NyaXB0QnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
I2VuZGlmIC8vIEVOQUJMRShWSURFTykKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lSU9TLm1tCmluZGV4IDRmZTgzZTAuLjI1NzhmNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KQEAgLTEzNjAsNyArMTM2MCwxMCBAQCBTdHJpbmcg
UmVuZGVyVGhlbWVJT1M6Om1lZGlhQ29udHJvbHNTY3JpcHQoKQogICAgICAgICAgICAgU3RyaW5n
QnVpbGRlciBzY3JpcHRCdWlsZGVyOwogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQo
W05TU3RyaW5nIHN0cmluZ1dpdGhDb250ZW50c09mRmlsZTpbYnVuZGxlIHBhdGhGb3JSZXNvdXJj
ZTpAIm1vZGVybi1tZWRpYS1jb250cm9scy1sb2NhbGl6ZWQtc3RyaW5ncyIgb2ZUeXBlOkAianMi
XSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZyBlcnJvcjpuaWxdKTsKICAgICAgICAgICAg
IHNjcmlwdEJ1aWxkZXIuYXBwZW5kKFtOU1N0cmluZyBzdHJpbmdXaXRoQ29udGVudHNPZkZpbGU6
W2J1bmRsZSBwYXRoRm9yUmVzb3VyY2U6QCJtb2Rlcm4tbWVkaWEtY29udHJvbHMiIG9mVHlwZTpA
ImpzIiBpbkRpcmVjdG9yeTpAIm1vZGVybi1tZWRpYS1jb250cm9scyJdIGVuY29kaW5nOk5TVVRG
OFN0cmluZ0VuY29kaW5nIGVycm9yOm5pbF0pOwotICAgICAgICAgICAgbV9tZWRpYUNvbnRyb2xz
U2NyaXB0ID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpOworICAgICAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIG1fbWVk
aWFDb250cm9sc1NjcmlwdCA9ICpzdHJpbmc7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9tZWRpYUNvbnRyb2xz
U2NyaXB0OwogICAgIH0KQEAgLTEzNzMsNyArMTM3NiwxMCBAQCBTdHJpbmcgUmVuZGVyVGhlbWVJ
T1M6Om1lZGlhQ29udHJvbHNTY3JpcHQoKQogICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZChb
TlNTdHJpbmcgc3RyaW5nV2l0aENvbnRlbnRzT2ZGaWxlOltidW5kbGUgcGF0aEZvclJlc291cmNl
OkAibWVkaWFDb250cm9sc0FwcGxlIiBvZlR5cGU6QCJqcyJdIGVuY29kaW5nOk5TVVRGOFN0cmlu
Z0VuY29kaW5nIGVycm9yOm5pbF0pOwogICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZChbTlNT
dHJpbmcgc3RyaW5nV2l0aENvbnRlbnRzT2ZGaWxlOltidW5kbGUgcGF0aEZvclJlc291cmNlOkAi
bWVkaWFDb250cm9sc2lPUyIgb2ZUeXBlOkAianMiXSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNv
ZGluZyBlcnJvcjpuaWxdKTsKIAotICAgICAgICBtX2xlZ2FjeU1lZGlhQ29udHJvbHNTY3JpcHQg
PSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHNj
cmlwdEJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIG1fbGVnYWN5TWVkaWFDb250cm9s
c1NjcmlwdCA9ICpzdHJpbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAg
ICAgfQogICAgIHJldHVybiBtX2xlZ2FjeU1lZGlhQ29udHJvbHNTY3JpcHQ7CiAjZWxzZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAKaW5kZXggZGVlYTFhOS4u
ODM2ZDAxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3Bw
CkBAIC0xMDk0LDcgKzEwOTQsMTAgQEAgU3RyaW5nIFJlbmRlclRoZW1lV2luOjptZWRpYUNvbnRy
b2xzU2NyaXB0KCkKICAgICAgICAgU3RyaW5nQnVpbGRlciBzY3JpcHRCdWlsZGVyOwogICAgICAg
ICBzY3JpcHRCdWlsZGVyLmFwcGVuZChzdHJpbmdXaXRoQ29udGVudHNPZkZpbGUoQ0ZTVFIoIm1l
ZGlhQ29udHJvbHNMb2NhbGl6ZWRTdHJpbmdzIiksIENGU1RSKCJqcyIpKSk7CiAgICAgICAgIHNj
cmlwdEJ1aWxkZXIuYXBwZW5kKHN0cmluZ1dpdGhDb250ZW50c09mRmlsZShDRlNUUigibWVkaWFD
b250cm9sc0FwcGxlIiksIENGU1RSKCJqcyIpKSk7Ci0gICAgICAgIG1fbWVkaWFDb250cm9sc1Nj
cmlwdCA9IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5n
ID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgbV9tZWRpYUNvbnRyb2xz
U2NyaXB0ID0gKnN0cmluZzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAg
ICB9CiAgICAgcmV0dXJuIG1fbWVkaWFDb250cm9sc1NjcmlwdDsKICNlbHNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKaW5kZXggNTVjZGI0Yi4uODVj
NzhlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1Rl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNw
cApAQCAtMTcwLDcgKzE3MCw5IEBAIFN0cmluZyBxdW90ZUFuZEVzY2FwZU5vblByaW50YWJsZXMo
U3RyaW5nVmlldyBzKQogICAgICAgICB9CiAgICAgfQogICAgIHJlc3VsdC5hcHBlbmQoJyInKTsK
LSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVz
dWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIHZvaWQgUmVuZGVyVHJlZUFzVGV4dDo6d3JpdGVSZW5kZXJPYmplY3QoVGV4dFN0cmVhbSYg
dHMsIGNvbnN0IFJlbmRlck9iamVjdCYgbywgUmVuZGVyQXNUZXh0QmVoYXZpb3IgYmVoYXZpb3Ip
CkBAIC04MDcsNyArODA5LDkgQEAgc3RhdGljIFN0cmluZyBub2RlUG9zaXRpb24oTm9kZSogbm9k
ZSkKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCJkb2N1bWVudCIpOwogICAgIH0K
IAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBy
ZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogc3RhdGljIHZvaWQgd3JpdGVTZWxlY3Rpb24oVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFJl
bmRlckJveCYgcmVuZGVyZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
bWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
bWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5jcHAKaW5kZXggODliYjA0MC4uOGM3ODRlNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5j
ZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1M
RmVuY2VkLmNwcApAQCAtNzEsNyArNzEsMTAgQEAgdm9pZCBSZW5kZXJNYXRoTUxGZW5jZWQ6OnVw
ZGF0ZUZyb21FbGVtZW50KCkKICAgICAgICAgICAgIGlmICghaXNTcGFjZU9yTmV3bGluZShzZXBh
cmF0b3JzW2ldKSkKICAgICAgICAgICAgICAgICBjaGFyYWN0ZXJzLmFwcGVuZChzZXBhcmF0b3Jz
W2ldKTsKICAgICAgICAgfQotICAgICAgICBtX3NlcGFyYXRvcnMgPSAhY2hhcmFjdGVycy5sZW5n
dGgoKSA/IDAgOiBjaGFyYWN0ZXJzLnRvU3RyaW5nKCkuaW1wbCgpOworICAgICAgICBpZiAoYXV0
byBzdHJpbmcgPSBjaGFyYWN0ZXJzLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBtX3NlcGFyYXRv
cnMgPSAhY2hhcmFjdGVycy5sZW5ndGgoKSA/IDAgOiBzdHJpbmctPmltcGwoKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9IGVsc2UgewogICAgICAgICAvLyBUaGUg
c2VwYXJhdG9yIGRlZmF1bHRzIHRvIGEgc2luZ2xlIGNvbW1hLgogICAgICAgICBtX3NlcGFyYXRv
cnMgPSBTdHJpbmdJbXBsOjpjcmVhdGUoIiwiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlck1hdGhNTC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNYXRoTUwuY3BwCmlu
ZGV4IDVjYjQ3OGIuLjIwZDI1MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlck1hdGhNTC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTWF0aE1MLmNwcApAQCAtOTAs
NyArOTAsMTAgQEAgdm9pZCBSZW5kZXJUcmVlQnVpbGRlcjo6TWF0aE1MOjphdHRhY2goUmVuZGVy
TWF0aE1MRmVuY2VkJiBwYXJlbnQsIFJlbmRlclB0cjxSZW4KIAogICAgICAgICAgICAgU3RyaW5n
QnVpbGRlciBzdHJpbmdCdWlsZGVyOwogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQo
c2VwYXJhdG9yKTsKLSAgICAgICAgICAgIHNlcGFyYXRvclJlbmRlcmVyID0gY3JlYXRlTWF0aE1M
T3BlcmF0b3IocGFyZW50LCBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCksIE1hdGhNTE9wZXJhdG9y
RGljdGlvbmFyeTo6SW5maXgsIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6U2VwYXJhdG9yKTsK
KyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgICAgICAgICBzZXBhcmF0b3JSZW5kZXJlciA9IGNyZWF0ZU1hdGhNTE9wZXJhdG9y
KHBhcmVudCwgKnN0cmluZywgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpJbmZpeCwgTWF0aE1M
T3BlcmF0b3JEaWN0aW9uYXJ5OjpTZXBhcmF0b3IpOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmNwcAppbmRleCBiYTIwNjQ4Li4yMGVhM2UxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3BwCkBAIC02Myw3ICs2Myw5IEBA
IFN0cmluZyBTVkdMZW5ndGhMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nKCkgY29uc3QKICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoYXQoaSkudmFsdWVBc1N0cmluZygpKTsKICAgICB9CiAKLSAgICBy
ZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuY3BwCmluZGV4IDZkZmQ5
OTMuLjg3NWJlNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0
VmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5j
cHAKQEAgLTU1LDcgKzU1LDkgQEAgU3RyaW5nIFNWR051bWJlckxpc3RWYWx1ZXM6OnZhbHVlQXNT
dHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihhdChpKSk7CiAgICAg
fQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU3RyaW5n
QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFN0cmluZ0J1aWxkZXIuY3Bw
CmluZGV4IDEwNTM5MWMuLjljNTc3ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoU3RyaW5nQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhT
dHJpbmdCdWlsZGVyLmNwcApAQCAtMzcsNyArMzcsOSBAQCBTdHJpbmcgU1ZHUGF0aFN0cmluZ0J1
aWxkZXI6OnJlc3VsdCgpCiAKICAgICAvLyBSZW1vdmUgdHJhaWxpbmcgc3BhY2UuCiAgICAgbV9z
dHJpbmdCdWlsZGVyLnJlc2l6ZShzaXplIC0gMSk7Ci0gICAgcmV0dXJuIG1fc3RyaW5nQnVpbGRl
ci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1fc3RyaW5nQnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lk
IFNWR1BhdGhTdHJpbmdCdWlsZGVyOjppbmNyZW1lbnRQYXRoU2VnbWVudENvdW50KCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcAppbmRleCBjZjlmMDE0Li5jYzU0MzA3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwCkBAIC0xMDEsNyArMTAxLDkg
QEAgU3RyaW5nIGJ1aWxkU3RyaW5nRnJvbVBhdGgoY29uc3QgUGF0aCYgcGF0aCkKICAgICAgICAg
fSk7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgYnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRo
U2VnTGlzdFZhbHVlcyhjb25zdCBTVkdQYXRoU2VnTGlzdFZhbHVlcyYgbGlzdCwgU1ZHUGF0aEJ5
dGVTdHJlYW0mIHJlc3VsdCwgUGF0aFBhcnNpbmdNb2RlIHBhcnNpbmdNb2RlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmNwcAppbmRleCBkODFlNmEyLi5kOGJkZWU1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmNwcApAQCAtNDEsNyArNDEs
OSBAQCBTdHJpbmcgU1ZHUG9pbnRMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nKCkgY29uc3QKICAg
ICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIocG9pbnQueSgpKTsKICAgICB9CiAKLSAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuY3BwCmluZGV4IDNmZjg5OGEu
LjhjNjFmMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFs
dWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdFZhbHVlcy5jcHAK
QEAgLTczLDcgKzczLDkgQEAgU3RyaW5nIFNWR1N0cmluZ0xpc3RWYWx1ZXM6OnZhbHVlQXNTdHJp
bmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZChhdChpKSk7CiAgICAgfQogCi0gICAg
cmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmNwcAppbmRl
eCAyNWIzYzMxLi42YjQyZDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJh
bnNmb3JtTGlzdFZhbHVlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9y
bUxpc3RWYWx1ZXMuY3BwCkBAIC02OCw3ICs2OCw5IEBAIFN0cmluZyBTVkdUcmFuc2Zvcm1MaXN0
VmFsdWVzOjp2YWx1ZUFzU3RyaW5nKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoYXQo
aSkudmFsdWVBc1N0cmluZygpKTsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBTVkdUcmFuc2Zvcm1MaXN0
VmFsdWVzOjpwYXJzZShjb25zdCBTdHJpbmcmIHRyYW5zZm9ybSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVHJhbnNmb3JtVmFsdWUuY3BwCmluZGV4IDYzZDQ1YTUuLmVhMTQ2M2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmNwcApAQCAtMTc5LDcgKzE3OSw5IEBAIFN0cmlu
ZyBTVkdUcmFuc2Zvcm1WYWx1ZTo6dmFsdWVBc1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCcgJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fbWF0cml4LmYo
KSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Ci0gICAgICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0K
ICAgICBjYXNlIFNWR19UUkFOU0ZPUk1fVFJBTlNMQVRFOiB7CiAgICAgICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKQEAgLTE4OCw3ICsxOTAsOSBAQCBTdHJpbmcgU1ZHVHJhbnNmb3JtVmFsdWU6
OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX21hdHJpeC5mKCkpOwogICAgICAgICBidWlsZGVy
LmFwcGVuZCgnKScpOwotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgY2FzZSBTVkdfVFJBTlNG
T1JNX1NDQUxFOiB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKQEAgLTE5Nyw3ICsy
MDEsOSBAQCBTdHJpbmcgU1ZHVHJhbnNmb3JtVmFsdWU6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAog
ICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJl
cihtX21hdHJpeC55U2NhbGUoKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Ci0gICAg
ICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAg
ICBDUkFTSCgpOwogICAgIH0KICAgICBjYXNlIFNWR19UUkFOU0ZPUk1fUk9UQVRFOiB7CiAgICAg
ICAgIGRvdWJsZSBhbmdsZUluUmFkID0gZGVnMnJhZChtX2FuZ2xlKTsKQEAgLTIxNSw3ICsyMjEs
OSBAQCBTdHJpbmcgU1ZHVHJhbnNmb3JtVmFsdWU6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogICAg
ICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoY3kpOwogICAgICAgICB9CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCcpJyk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICBjYXNlIFNWR19U
UkFOU0ZPUk1fU0tFV1g6CiAgICAgY2FzZSBTVkdfVFJBTlNGT1JNX1NLRVdZOiB7CkBAIC0yMjMs
NyArMjMxLDkgQEAgU3RyaW5nIFNWR1RyYW5zZm9ybVZhbHVlOjp2YWx1ZUFzU3RyaW5nKCkgY29u
c3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQocHJlZml4KTsKICAgICAgICAgYnVpbGRlci5hcHBl
bmROdW1iZXIobV9hbmdsZSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Ci0gICAgICAg
IHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBD
UkFTSCgpOwogICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9w
cm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCmluZGV4IGEyMzI3ZTYuLjgwMGFiZDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaApAQCAt
MTQzLDcgKzE0Myw5IEBAIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFBvaW50PiB7CiAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUueCgpKTsKICAgICAgICAgYnVpbGRlci5h
cHBlbmQoJyAnKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS55KCkpOwotICAg
ICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAg
ICAgQ1JBU0goKTsKICAgICB9CiB9OwogCkBAIC0xNzQsNyArMTc2LDkgQEAgc3RydWN0IFNWR1By
b3BlcnR5VHJhaXRzPEZsb2F0UmVjdD4gewogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0
eXBlLndpZHRoKCkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgICAgICBidWls
ZGVyLmFwcGVuZE51bWJlcih0eXBlLmhlaWdodCgpKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIu
dG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDgxYTQwMDkuLjBjMjQw
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTE1NDAsNyArMTU0MCw5
IEBAIEV4Y2VwdGlvbk9yPFN0cmluZz4gSW50ZXJuYWxzOjpkdW1wTWFya2VyUmVjdHMoY29uc3Qg
U3RyaW5nJiBtYXJrZXJUeXBlU3RyaW5nKQogICAgICAgICByZWN0U3RyaW5nLmFwcGVuZE51bWJl
cihyZWN0LmhlaWdodCgpKTsKICAgICAgICAgcmVjdFN0cmluZy5hcHBlbmRMaXRlcmFsKCIpICIp
OwogICAgIH0KLSAgICByZXR1cm4gcmVjdFN0cmluZy50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHJlY3RTdHJpbmcudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIFdURk1vdmUo
KnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbnRlcm5hbHM6OmFkZFRleHRNYXRj
aE1hcmtlcihjb25zdCBSYW5nZSYgcmFuZ2UsIGJvb2wgaXNBY3RpdmUpCkBAIC0yMDc5LDcgKzIw
ODEsOSBAQCBTdHJpbmcgSW50ZXJuYWxzOjpwYXJzZXJNZXRhRGF0YShKU0M6OkpTVmFsdWUgY29k
ZSkKICAgICByZXN1bHQuYXBwZW5kTnVtYmVyKGVuZENvbHVtbik7CiAgICAgcmVzdWx0LmFwcGVu
ZExpdGVyYWwoIiB9Iik7CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW50ZXJuYWxzOjp1cGRhdGVFZGl0b3JVSU5vd0lm
U2NoZWR1bGVkKCkKQEAgLTMwNzEsNyArMzA3NSw5IEBAIEV4Y2VwdGlvbk9yPFN0cmluZz4gSW50
ZXJuYWxzOjpnZXRDdXJyZW50Q3Vyc29ySW5mbygpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQobnVt
YmVyVG9GaXhlZFByZWNpc2lvblN0cmluZyhjdXJzb3IuaW1hZ2VTY2FsZUZhY3RvcigpLCA4LCBi
dWZmZXIsIHRydWUpKTsKICAgICB9CiAjZW5kaWYKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiBXVEZNb3ZlKCpzdHJpbmcpOworICAgIENSQVNIKCk7CiAjZWxzZQogICAgIHJldHVybiBT
dHJpbmcgeyAiRkFJTDogQ3Vyc29yIGRldGFpbHMgbm90IGF2YWlsYWJsZSBvbiB0aGlzIHBsYXRm
b3JtLiIgfTsKICNlbmRpZgpAQCAtMzUxNCw3ICszNTIwLDkgQEAgRXhjZXB0aW9uT3I8U3RyaW5n
PiBJbnRlcm5hbHM6Om1lZGlhU2Vzc2lvblJlc3RyaWN0aW9ucyhjb25zdCBTdHJpbmcmIG1lZGlh
VHlwZVMKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcsJyk7CiAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCJpbnRlcnJ1cHRlZHBsYXliYWNrbm90cGVybWl0dGVkIik7CiAgICAgfQotICAgIHJl
dHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gV1RGTW92ZSgqc3RyaW5nKTsKKyAgICBDUkFTSCgp
OwogfQogCiB2b2lkIEludGVybmFsczo6c2V0TWVkaWFFbGVtZW50UmVzdHJpY3Rpb25zKEhUTUxN
ZWRpYUVsZW1lbnQmIGVsZW1lbnQsIFN0cmluZ1ZpZXcgcmVzdHJpY3Rpb25zU3RyaW5nKQpAQCAt
Mzc1NSw0OCArMzc2Myw1MCBAQCBTdHJpbmcgSW50ZXJuYWxzOjpwYWdlTWVkaWFTdGF0ZSgpCiAg
ICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogCiAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlID0gZG9jdW1lbnQtPnBhZ2UoKS0+bWVkaWFTdGF0ZSgp
OwotICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nOworICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
ICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdBdWRpbykKLSAgICAgICAg
c3RyaW5nLmFwcGVuZCgiSXNQbGF5aW5nQXVkaW8sIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCJJc1BsYXlpbmdBdWRpbywiKTsKICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpJc1Bs
YXlpbmdWaWRlbykKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNQbGF5aW5nVmlkZW8sIik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJJc1BsYXlpbmdWaWRlbywiKTsKICAgICBpZiAoc3RhdGUg
JiBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKQotICAgICAgICBzdHJp
bmcuYXBwZW5kKCJJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlLCIpOworICAgICAgICBidWlsZGVy
LmFwcGVuZCgiSXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSwiKTsKICAgICBpZiAoc3RhdGUgJiBN
ZWRpYVByb2R1Y2VyOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZykKLSAgICAgICAg
c3RyaW5nLmFwcGVuZCgiUmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcsIik7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCJSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZywiKTsK
ICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpFeHRlcm5hbERldmljZUF1dG9QbGF5Q2Fu
ZGlkYXRlKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJFeHRlcm5hbERldmljZUF1dG9QbGF5Q2Fu
ZGlkYXRlLCIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiRXh0ZXJuYWxEZXZpY2VBdXRvUGxh
eUNhbmRpZGF0ZSwiKTsKICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpEaWRQbGF5VG9F
bmQpCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIkRpZFBsYXlUb0VuZCwiKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmQoIkRpZFBsYXlUb0VuZCwiKTsKICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1
Y2VyOjpJc1NvdXJjZUVsZW1lbnRQbGF5aW5nKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc1Nv
dXJjZUVsZW1lbnRQbGF5aW5nLCIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiSXNTb3VyY2VF
bGVtZW50UGxheWluZywiKTsKIAogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OklzTmV4
dFRyYWNrQ29udHJvbEVuYWJsZWQpCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIklzTmV4dFRyYWNr
Q29udHJvbEVuYWJsZWQsIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJJc05leHRUcmFja0Nv
bnRyb2xFbmFibGVkLCIpOwogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OklzUHJldmlv
dXNUcmFja0NvbnRyb2xFbmFibGVkKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc1ByZXZpb3Vz
VHJhY2tDb250cm9sRW5hYmxlZCwiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIklzUHJldmlv
dXNUcmFja0NvbnRyb2xFbmFibGVkLCIpOwogCiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNl
cjo6SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lcikKLSAgICAgICAgc3RyaW5n
LmFwcGVuZCgiSGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lciwiKTsKKyAgICAg
ICAgYnVpbGRlci5hcHBlbmQoIkhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIs
Iik7CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SGFzQXVkaW9PclZpZGVvKQotICAg
ICAgICBzdHJpbmcuYXBwZW5kKCJIYXNBdWRpb09yVmlkZW8sIik7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCJIYXNBdWRpb09yVmlkZW8sIik7CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNl
cjo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJI
YXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UsIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJI
YXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UsIik7CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9k
dWNlcjo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKQotICAgICAgICBzdHJpbmcuYXBwZW5k
KCJIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UsIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCJIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UsIik7CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQ
cm9kdWNlcjo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UpCi0gICAgICAgIHN0cmluZy5hcHBl
bmQoIkhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlLCIpOworICAgICAgICBidWlsZGVyLmFwcGVu
ZCgiSGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UsIik7CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQ
cm9kdWNlcjo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpCi0gICAgICAgIHN0cmluZy5hcHBl
bmQoIkhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlLCIpOworICAgICAgICBidWlsZGVyLmFwcGVu
ZCgiSGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UsIik7CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQ
cm9kdWNlcjo6SGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50KQotICAgICAgICBzdHJp
bmcuYXBwZW5kKCJIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQsIik7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCJIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQsIik7CiAK
LSAgICBpZiAoc3RyaW5nLmlzRW1wdHkoKSkKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNOb3RQ
bGF5aW5nIik7CisgICAgaWYgKGJ1aWxkZXIuaXNFbXB0eSgpKQorICAgICAgICBidWlsZGVyLmFw
cGVuZCgiSXNOb3RQbGF5aW5nIik7CiAgICAgZWxzZQotICAgICAgICBzdHJpbmcucmVzaXplKHN0
cmluZy5sZW5ndGgoKSAtIDEpOworICAgICAgICBidWlsZGVyLnJlc2l6ZShidWlsZGVyLmxlbmd0
aCgpIC0gMSk7CiAKLSAgICByZXR1cm4gc3RyaW5nLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiB2b2lkIEludGVybmFsczo6c2V0UGFnZURlZmVyc0xvYWRpbmcoYm9v
bCBkZWZlcnNMb2FkaW5nKQpAQCAtMzkxOCw3ICszOTI4LDkgQEAgRXhjZXB0aW9uT3I8U3RyaW5n
PiBJbnRlcm5hbHM6OnNjcm9sbFNuYXBPZmZzZXRzKEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgICAg
IH0KICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBXVEZNb3ZlKCpzdHJp
bmcpOworICAgIENSQVNIKCk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwCmluZGV4IGU1YTZjZmUuLmY0YTNjZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAK
QEAgLTk4LDcgKzk4LDEwIEBAIHZvaWQgTW9ja1BhZ2VPdmVybGF5Q2xpZW50OjpkcmF3UmVjdChQ
YWdlT3ZlcmxheSYgb3ZlcmxheSwgR3JhcGhpY3NDb250ZXh0JiBjb250CiAgICAgbWVzc2FnZS5h
cHBlbmRMaXRlcmFsKCIsICIpOwogICAgIG1lc3NhZ2UuYXBwZW5kTnVtYmVyKGRpcnR5UmVjdC5o
ZWlnaHQoKSk7CiAgICAgbWVzc2FnZS5hcHBlbmRMaXRlcmFsKCIpIik7Ci0gICAgb3ZlcmxheS5w
YWdlKCktPm1haW5GcmFtZSgpLmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VT
b3VyY2U6Ok90aGVyLCBNZXNzYWdlTGV2ZWw6OkRlYnVnLCBtZXNzYWdlLnRvU3RyaW5nKCkpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IG1lc3NhZ2UudG9TdHJpbmcoKSkKKyAgICAgICAgb3Zlcmxh
eS5wYWdlKCktPm1haW5GcmFtZSgpLmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdlTGV2ZWw6OkRlYnVnLCAqc3RyaW5nKTsKKyAgICBlbHNl
CisgICAgICAgIENSQVNIKCk7CiAKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRl
U2F2ZXIoY29udGV4dCk7CiAKQEAgLTEyMyw3ICsxMjYsMTAgQEAgYm9vbCBNb2NrUGFnZU92ZXJs
YXlDbGllbnQ6Om1vdXNlRXZlbnQoUGFnZU92ZXJsYXkmIG92ZXJsYXksIGNvbnN0IFBsYXRmb3Jt
TW91c2UKICAgICBtZXNzYWdlLmFwcGVuZExpdGVyYWwoIiwgIik7CiAgICAgbWVzc2FnZS5hcHBl
bmROdW1iZXIoZXZlbnQucG9zaXRpb24oKS55KCkpOwogICAgIG1lc3NhZ2UuYXBwZW5kTGl0ZXJh
bCgiKSIpOwotICAgIG92ZXJsYXkucGFnZSgpLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpLT5hZGRD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpPdGhlciwgTWVzc2FnZUxldmVsOjpEZWJ1Zywg
bWVzc2FnZS50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtZXNzYWdlLnRvU3Ry
aW5nKCkpCisgICAgICAgIG92ZXJsYXkucGFnZSgpLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpLT5h
ZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpPdGhlciwgTWVzc2FnZUxldmVsOjpEZWJ1
ZywgKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgcmV0dXJuIGZh
bHNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3Bw
CmluZGV4IDViMzQwZmYuLjQ0ZTRlMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclNjcmlwdExvYWRlci5jcHAKQEAgLTIwMiw3ICsyMDIsOSBAQCB2b2lkIFdvcmtlclNjcmlw
dExvYWRlcjo6bm90aWZ5RXJyb3IoKQogCiBTdHJpbmcgV29ya2VyU2NyaXB0TG9hZGVyOjpzY3Jp
cHQoKQogewotICAgIHJldHVybiBtX3NjcmlwdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IG1fc2NyaXB0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIHZvaWQgV29ya2VyU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5pc2hlZCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MRXJyb3JzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxFcnJvcnMuY3BwCmluZGV4IGIxNDMyZDEuLjE1MzE5ZjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxFcnJvcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3htbC9YTUxFcnJvcnMuY3BwCkBAIC0xNDgsOCArMTQ4LDExIEBAIHZvaWQgWE1MRXJyb3JzOjpp
bnNlcnRFcnJvck1lc3NhZ2VCbG9jaygpCiAgICAgICAgIGRvY3VtZW50RWxlbWVudCA9IFdURk1v
dmUoYm9keSk7CiAgICAgfQogCi0gICAgU3RyaW5nIGVycm9yTWVzc2FnZXMgPSBtX2Vycm9yTWVz
c2FnZXMudG9TdHJpbmcoKTsKLSAgICBhdXRvIHJlcG9ydEVsZW1lbnQgPSBjcmVhdGVYSFRNTFBh
cnNlckVycm9ySGVhZGVyKG1fZG9jdW1lbnQsIGVycm9yTWVzc2FnZXMpOworICAgIGF1dG8gcmVw
b3J0RWxlbWVudCA9IGNyZWF0ZVhIVE1MUGFyc2VyRXJyb3JIZWFkZXIobV9kb2N1bWVudCwgWyZd
ICgpIHsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gbV9lcnJvck1lc3NhZ2VzLnRvU3RyaW5n
KCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9
KCkpOwogCiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgaWYgKG1fZG9jdW1lbnQudHJhbnNmb3JtU291
cmNlRG9jdW1lbnQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBS
ZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXgg
MTllNWFlNC4uNzZiOWZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBS
ZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBA
IC0xOTUsNyArMTk1LDEwIEBAIEV4Y2VwdGlvbk9yPERvY3VtZW50Kj4gWE1MSHR0cFJlcXVlc3Q6
OnJlc3BvbnNlWE1MKCkKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBtX3Jlc3Bv
bnNlRG9jdW1lbnQgPSBYTUxEb2N1bWVudDo6Y3JlYXRlKDAsIG1fdXJsKTsKICAgICAgICAgICAg
IC8vIEZJWE1FOiBTZXQgTGFzdC1Nb2RpZmllZC4KLSAgICAgICAgICAgIG1fcmVzcG9uc2VEb2N1
bWVudC0+c2V0Q29udGVudChtX3Jlc3BvbnNlQnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNp
dHkoKSk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBtX3Jlc3BvbnNlQnVpbGRlci50
b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSkKKyAgICAgICAgICAgICAgICBtX3Jlc3BvbnNlRG9j
dW1lbnQtPnNldENvbnRlbnQoKnN0cmluZyk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudC0+c2V0Q29udGV4
dERvY3VtZW50KGRvd25jYXN0PERvY3VtZW50Pigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSk7
CiAgICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQtPnNldFNlY3VyaXR5T3JpZ2luUG9saWN5
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2VjdXJpdHlPcmlnaW5Qb2xpY3koKSk7CiAgICAg
ICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQtPm92ZXJyaWRlTUlNRVR5cGUobWltZVR5cGUpOwpA
QCAtODE3LDE0ICs4MjAsMjAgQEAgU3RyaW5nIFhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25z
ZUhlYWRlcnMoKSBjb25zdAogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFs
KCI6ICIpOwogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoaGVhZGVyLnZhbHVlKTsK
ICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXHJcbiIpOwotICAgICAg
ICAgICAgaGVhZGVycy51bmNoZWNrZWRBcHBlbmQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsK
KyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgICAgICAgICBoZWFkZXJzLnVuY2hlY2tlZEFwcGVuZCgqc3RyaW5nKTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAgICAgICAg
IHN0ZDo6c29ydChoZWFkZXJzLmJlZ2luKCksIGhlYWRlcnMuZW5kKCksIFdURjo6Y29kZVBvaW50
Q29tcGFyZUxlc3NUaGFuKTsKIAogICAgICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7
CiAgICAgICAgIGZvciAoYXV0byYgaGVhZGVyIDogaGVhZGVycykKICAgICAgICAgICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kKGhlYWRlcik7Ci0gICAgICAgIG1fYWxsUmVzcG9uc2VIZWFkZXJzID0g
c3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBtX2FsbFJlc3BvbnNlSGVhZGVycyA9
ICpzdHJpbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAg
ICAgcmV0dXJuIG1fYWxsUmVzcG9uc2VIZWFkZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUveG1sL1hNTEh0dHBSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3QuaAppbmRleCAxZWVjMTU4Li41M2I0Zjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3QuaApAQCAtODcsNyArODcsMTIgQEAgcHVibGljOgogICAgIFN0cmluZyBnZXRBbGxSZXNwb25z
ZUhlYWRlcnMoKSBjb25zdDsKICAgICBTdHJpbmcgZ2V0UmVzcG9uc2VIZWFkZXIoY29uc3QgU3Ry
aW5nJiBuYW1lKSBjb25zdDsKICAgICBFeGNlcHRpb25PcjxPd25lZFN0cmluZz4gcmVzcG9uc2VU
ZXh0KCk7Ci0gICAgU3RyaW5nIHJlc3BvbnNlVGV4dElnbm9yaW5nUmVzcG9uc2VUeXBlKCkgY29u
c3QgeyByZXR1cm4gbV9yZXNwb25zZUJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7
IH0KKyAgICBTdHJpbmcgcmVzcG9uc2VUZXh0SWdub3JpbmdSZXNwb25zZVR5cGUoKSBjb25zdAor
ICAgIHsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gbV9yZXNwb25zZUJ1aWxkZXIudG9TdHJp
bmdQcmVzZXJ2ZUNhcGFjaXR5KCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAg
ICAgQ1JBU0goKTsKKyAgICB9CiAgICAgU3RyaW5nIHJlc3BvbnNlTUlNRVR5cGUoKSBjb25zdDsK
IAogICAgIERvY3VtZW50KiBvcHRpb25hbFJlc3BvbnNlWE1MKCkgY29uc3QgeyByZXR1cm4gbV9y
ZXNwb25zZURvY3VtZW50LmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwv
WFBhdGhGdW5jdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRnVuY3Rpb25zLmNw
cAppbmRleCA3MzUzNGE0Li5mN2RjYTlhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1s
L1hQYXRoRnVuY3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhGdW5jdGlv
bnMuY3BwCkBAIC0zMDgsOSArMzA4LDExIEBAIHN0YXRpYyBBdG9taWNTdHJpbmcgYXRvbWljU3Vi
c3RyaW5nKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpCiB7CiAg
ICAgQVNTRVJUKHN0YXJ0IDw9IGJ1aWxkZXIubGVuZ3RoKCkpOwogICAgIEFTU0VSVChsZW5ndGgg
PD0gYnVpbGRlci5sZW5ndGgoKSAtIHN0YXJ0KTsKKyAgICBpZiAoYnVpbGRlci5mYWlsZWQoKSkK
KyAgICAgICAgQ1JBU0goKTsKICAgICBpZiAoYnVpbGRlci5pczhCaXQoKSkKLSAgICAgICAgcmV0
dXJuIEF0b21pY1N0cmluZyhidWlsZGVyLmNoYXJhY3RlcnM4KCkgKyBzdGFydCwgbGVuZ3RoKTsK
LSAgICByZXR1cm4gQXRvbWljU3RyaW5nKGJ1aWxkZXIuY2hhcmFjdGVyczE2KCkgKyBzdGFydCwg
bGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIEF0b21pY1N0cmluZygqYnVpbGRlci5jaGFyYWN0ZXJz
OCgpICsgc3RhcnQsIGxlbmd0aCk7CisgICAgcmV0dXJuIEF0b21pY1N0cmluZygqYnVpbGRlci5j
aGFyYWN0ZXJzMTYoKSArIHN0YXJ0LCBsZW5ndGgpOwogfQogCiBWYWx1ZSBGdW5JZDo6ZXZhbHVh
dGUoKSBjb25zdApAQCAtMzM0LDE0ICszMzYsMTcgQEAgVmFsdWUgRnVuSWQ6OmV2YWx1YXRlKCkg
Y29uc3QKICAgICB1bnNpZ25lZCBzdGFydFBvcyA9IDA7CiAgICAgdW5zaWduZWQgbGVuZ3RoID0g
aWRMaXN0Lmxlbmd0aCgpOwogICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIHdoaWxlIChzdGFy
dFBvcyA8IGxlbmd0aCAmJiBpc1doaXRlc3BhY2UoaWRMaXN0W3N0YXJ0UG9zXSkpCisgICAgICAg
IGlmIChpZExpc3QuZmFpbGVkKCkpCisgICAgICAgICAgICBDUkFTSCgpOworCisgICAgICAgIHdo
aWxlIChzdGFydFBvcyA8IGxlbmd0aCAmJiBpc1doaXRlc3BhY2UoKmlkTGlzdFtzdGFydFBvc10p
KQogICAgICAgICAgICAgKytzdGFydFBvczsKICAgICAgICAgCiAgICAgICAgIGlmIChzdGFydFBv
cyA9PSBsZW5ndGgpCiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBzaXplX3QgZW5kUG9z
ID0gc3RhcnRQb3M7Ci0gICAgICAgIHdoaWxlIChlbmRQb3MgPCBsZW5ndGggJiYgIWlzV2hpdGVz
cGFjZShpZExpc3RbZW5kUG9zXSkpCisgICAgICAgIHdoaWxlIChlbmRQb3MgPCBsZW5ndGggJiYg
IWlzV2hpdGVzcGFjZSgqaWRMaXN0W2VuZFBvc10pKQogICAgICAgICAgICAgKytlbmRQb3M7CiAK
ICAgICAgICAgLy8gSWYgdGhlcmUgYXJlIHNldmVyYWwgbm9kZXMgd2l0aCB0aGUgc2FtZSBpZCwg
aWQoKSBzaG91bGQgcmV0dXJuIHRoZSBmaXJzdCBvbmUuCkBAIC00MzcsNyArNDQyLDkgQEAgVmFs
dWUgRnVuQ29uY2F0OjpldmFsdWF0ZSgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoc3Ry
KTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIFZhbHVlIEZ1blN0YXJ0c1dpdGg6OmV2YWx1YXRlKCkgY29uc3QKQEAg
LTU1Niw3ICs1NjMsOSBAQCBWYWx1ZSBGdW5UcmFuc2xhdGU6OmV2YWx1YXRlKCkgY29uc3QKICAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmQoczNbaTJdKTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVz
dWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFZhbHVlIEZ1bkJv
b2xlYW46OmV2YWx1YXRlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9Y
U0xUUHJvY2Vzc29yTGlieHNsdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nv
ckxpYnhzbHQuY3BwCmluZGV4IDY2YWQxNWYuLjhlNWUwNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
eG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcApAQCAtMTk3LDEyICsxOTcsMTggQEAgc3RhdGlj
IGJvb2wgc2F2ZVJlc3VsdFRvU3RyaW5nKHhtbERvY1B0ciByZXN1bHREb2MsIHhzbHRTdHlsZXNo
ZWV0UHRyIHNoZWV0LCBTdHIKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gV29ya2Fy
b3VuZCBmb3IgPGh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NTY2
OD46IGxpYnhzbHQgYXBwZW5kcyBhbiBleHRyYSBsaW5lIGZlZWQgdG8gdGhlIHJlc3VsdC4KLSAg
ICBpZiAocmVzdWx0QnVpbGRlci5sZW5ndGgoKSA+IDAgJiYgcmVzdWx0QnVpbGRlcltyZXN1bHRC
dWlsZGVyLmxlbmd0aCgpIC0gMV0gPT0gJ1xuJykKKyAgICBpZiAocmVzdWx0QnVpbGRlci5sZW5n
dGgoKSA+IDApIHsKKyAgICAgICAgaWYgKHJlc3VsdEJ1aWxkZXIuZmFpbGVkKCkpCisgICAgICAg
ICAgICBDUkFTSCgpOworICAgICAgICBpZiAoKnJlc3VsdEJ1aWxkZXJbcmVzdWx0QnVpbGRlci5s
ZW5ndGgoKSAtIDFdID09ICdcbicpCiAgICAgICAgIHJlc3VsdEJ1aWxkZXIucmVzaXplKHJlc3Vs
dEJ1aWxkZXIubGVuZ3RoKCkgLSAxKTsKKyAgICB9CiAKLSAgICByZXN1bHRTdHJpbmcgPSByZXN1
bHRCdWlsZGVyLnRvU3RyaW5nKCk7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSByZXN1bHRCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgcmVzdWx0U3RyaW5n
ID0gKnN0cmluZzsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIENSQVNIKCk7CiB9
CiAKIHN0YXRpYyBjb25zdCBjaGFyKiogeHNsdFBhcmFtQXJyYXlGcm9tUGFyYW1ldGVyTWFwKFhT
TFRQcm9jZXNzb3I6OlBhcmFtZXRlck1hcCYgcGFyYW1ldGVycykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9wYXJzZXIvQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VySW5saW5lcy5oIGIv
U291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9DaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVz
LmgKaW5kZXggNzY4NjI2OC4uNjcyYmFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1s
L3BhcnNlci9DaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUveG1sL3BhcnNlci9DaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVzLmgKQEAgLTMy
LDcgKzMyLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogaW5saW5lIHZvaWQgdW5jb25zdW1l
Q2hhcmFjdGVycyhTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgU3RyaW5nQnVpbGRlciYgY29uc3Vt
ZWRDaGFyYWN0ZXJzKQogewotICAgIHNvdXJjZS5wdXNoQmFjayhjb25zdW1lZENoYXJhY3RlcnMu
dG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gY29uc3VtZWRDaGFyYWN0ZXJzLnRv
U3RyaW5nKCkpCisgICAgICAgIHNvdXJjZS5wdXNoQmFjayhXVEZNb3ZlKCpzdHJpbmcpKTsKKyAg
ICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBQYXJzZXJG
dW5jdGlvbnM+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb25Ib3N0LmNwcCBi
L1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbkhvc3QuY3BwCmluZGV4IGYxNjQ5MjkuLmIxY2NjYjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbkhvc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJEcml2ZXIvU2Vzc2lvbkhvc3QuY3BwCkBAIC01NSw3ICs1NSwxMCBAQCBsb25nIFNlc3Np
b25Ib3N0OjpzZW5kQ29tbWFuZFRvQmFja2VuZChjb25zdCBTdHJpbmcmIGNvbW1hbmQsIFJlZlB0
cjxKU09OOjpPYmplYwogICAgICAgICBtZXNzYWdlQnVpbGRlci5hcHBlbmQocGFyYW1ldGVycy0+
dG9KU09OU3RyaW5nKCkpOwogICAgIH0KICAgICBtZXNzYWdlQnVpbGRlci5hcHBlbmQoJ30nKTsK
LSAgICBzZW5kTWVzc2FnZVRvQmFja2VuZChzZXF1ZW5jZUlELCBtZXNzYWdlQnVpbGRlci50b1N0
cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtZXNzYWdlQnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICBzZW5kTWVzc2FnZVRvQmFja2VuZChzZXF1ZW5jZUlELCAqc3RyaW5nKTsKKyAg
ICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAgICByZXR1cm4gc2VxdWVuY2VJRDsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggYjc1YmRjYS4uZTVjNjg1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MiBAQAorMjAx
OC0wNC0yNiAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3Ry
aW5nQnVpbGRlciBpcyBmYWxsaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTg1MDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGVhY2ggU3RyaW5nQnVpbGRlciB0aGF0IGl0IGlzIGZhbGxpYmxlCisK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVuZ2luZTo6cmVwcmVzZW50YXRpb24pOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6OmR1bXBDb250ZW50c1RvRmlsZSk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlS2V5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0NhY2hlOjpLZXk6Omhhc2hBc1N0cmluZyk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ2FwdHVyZTo6TWFuYWdlcjo6aGFzaFRvUGF0aCk6CisgICAgICAgICog
U2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIvSURCVXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6dW5pcXVlRGF0YWJhc2VJZGVudGlmaWVyKToKKyAgICAgICAgKiBTaGFyZWQvR2FtZXBh
ZC9HYW1lcGFkRGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdhbWVwYWREYXRhOjpsb2dnaW5n
U3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS91bml4L05l
dHNjYXBlUGx1Z2luTW9kdWxlVW5peC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1
Z2luTW9kdWxlOjpidWlsZE1JTUVEZXNjcmlwdGlvbik6CisgICAgICAgICogU2hhcmVkL1dlYk1l
bW9yeVNhbXBsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNZW1vcnlTYW1wbGVyOjphcHBl
bmRDdXJyZW50TWVtb3J5VXNhZ2VUb0ZpbGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJ
VXNlclNjcmlwdC5jcHA6CisgICAgICAgIChBUEk6OlVzZXJTY3JpcHQ6OmdlbmVyYXRlVW5pcXVl
VVJMKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVzZXJTdHlsZVNoZWV0LmNwcDoKKyAg
ICAgICAgKEFQSTo6VXNlclN0eWxlU2hlZXQ6OmdlbmVyYXRlVW5pcXVlVVJMKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpTbmFwc2hvdFJlbW92YWxUcmFja2VyOjpldmVu
dHNEZXNjcmlwdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkJhY2tGb3J3YXJkTGlzdDo6bG9nZ2luZ1N0cmluZyk6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc1Bvb2w6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVtb3ZlRGF0YVJlY29yZHMpOgorICAgICAgICAoV2ViS2l0
OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnVwZGF0ZUNvb2tpZVBhcnRpdGlvbmlu
Zyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0
cnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpzdWJtaXRUb3BMaXN0KToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpjYXBpdGFsaXplUkZDODIySGVhZGVyRmllbGROYW1lKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OmJ1aWxk
SFRUUEhlYWRlcnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpjb250ZW50c0FzU3RyaW5nIGNvbnN0KToKKwog
MjAxOC0wNS0wMSAgT2xla3NhbmRyIFNrYWNoa292ICA8Z3NrYWNoa292QGdtYWlsLmNvbT4KIAog
ICAgICAgICBXZWJBc3NlbWJseTogYWRkIHN1cHBvcnQgZm9yIHN0cmVhbSBBUElzIC0gSmF2YVNj
cmlwdCBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
Q2FjaGVTdG9yYWdlRW5naW5lLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcAppbmRleCA0NWM0N2ExLi44ZDc5NTgzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2lu
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3Jh
Z2VFbmdpbmUuY3BwCkBAIC01MjQsNyArNTI0LDkgQEAgU3RyaW5nIEVuZ2luZTo6cmVwcmVzZW50
YXRpb24oKQogICAgICAgICBidWlsZGVyLmFwcGVuZCgifSIpOwogICAgIH0KICAgICBidWlsZGVy
LmFwcGVuZCgiXX0iKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgQ2FjaGVTdG9yYWdlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKaW5k
ZXggNzNhMjVmNC4uMGNhN2Y5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcApAQCAtNTcwLDEwICs1NzAsMTMgQEAgdm9pZCBD
YWNoZTo6ZHVtcENvbnRlbnRzVG9GaWxlKCkKICAgICAgICAgICAgIGVwaWxvZ3VlLmFwcGVuZE51
bWJlcih0b3RhbHMuY291bnQgPyB0b3RhbHMud29ydGggLyB0b3RhbHMuY291bnQgOiAwKTsKICAg
ICAgICAgICAgIGVwaWxvZ3VlLmFwcGVuZExpdGVyYWwoIlxuIik7CiAgICAgICAgICAgICBlcGls
b2d1ZS5hcHBlbmRMaXRlcmFsKCJ9XG59XG4iKTsKLSAgICAgICAgICAgIGF1dG8gd3JpdGVEYXRh
ID0gZXBpbG9ndWUudG9TdHJpbmcoKS51dGY4KCk7Ci0gICAgICAgICAgICB3cml0ZVRvRmlsZShm
ZCwgd3JpdGVEYXRhLmRhdGEoKSwgd3JpdGVEYXRhLmxlbmd0aCgpKTsKLSAgICAgICAgICAgIGNs
b3NlRmlsZShmZCk7Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBlcGlsb2d1ZS50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgYXV0byB3cml0
ZURhdGEgPSBzdHJpbmctPnV0ZjgoKTsKKyAgICAgICAgICAgICAgICB3cml0ZVRvRmlsZShmZCwg
d3JpdGVEYXRhLmRhdGEoKSwgd3JpdGVEYXRhLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICBj
bG9zZUZpbGUoZmQpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KICAgICAgICAgYXV0byBlbnRyeSA9IEVudHJ5
OjpkZWNvZGVTdG9yYWdlUmVjb3JkKCpyZWNvcmQpOwogICAgICAgICBpZiAoIWVudHJ5KQpAQCAt
NTg1LDggKzU4OCwxMSBAQCB2b2lkIENhY2hlOjpkdW1wQ29udGVudHNUb0ZpbGUoKQogICAgICAg
ICBTdHJpbmdCdWlsZGVyIGpzb247CiAgICAgICAgIGVudHJ5LT5hc0pTT04oanNvbiwgaW5mbyk7
CiAgICAgICAgIGpzb24uYXBwZW5kTGl0ZXJhbCgiLFxuIik7Ci0gICAgICAgIGF1dG8gd3JpdGVE
YXRhID0ganNvbi50b1N0cmluZygpLnV0ZjgoKTsKLSAgICAgICAgd3JpdGVUb0ZpbGUoZmQsIHdy
aXRlRGF0YS5kYXRhKCksIHdyaXRlRGF0YS5sZW5ndGgoKSk7CisgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IGpzb24udG9TdHJpbmcoKSkgeworICAgICAgICAgICAgYXV0byB3cml0ZURhdGEgPSBz
dHJpbmctPnV0ZjgoKTsKKyAgICAgICAgICAgIHdyaXRlVG9GaWxlKGZkLCB3cml0ZURhdGEuZGF0
YSgpLCB3cml0ZURhdGEubGVuZ3RoKCkpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIENS
QVNIKCk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlS2V5LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlS2V5LmNwcAppbmRleCA4ZmE4MWQxLi4wYjQyMmVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZUtleS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGVLZXkuY3BwCkBAIC0xMzQsNyArMTM0LDkgQEAgU3RyaW5nIEtleTo6aGFzaEFzU3RyaW5n
KGNvbnN0IEhhc2hUeXBlJiBoYXNoKQogICAgICAgICBidWlsZGVyLmFwcGVuZCh1cHBlck5pYmJs
ZVRvQVNDSUlIZXhEaWdpdChieXRlKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGxvd2VyTmli
YmxlVG9BU0NJSUhleERpZ2l0KGJ5dGUpKTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFt
ZSBDaGFyVHlwZT4gYm9vbCBoZXhEaWdpdHNUb0hhc2goQ2hhclR5cGUqIGNoYXJhY3RlcnMsIEtl
eTo6SGFzaFR5cGUmIGhhc2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZU1hbmFnZXIuY3BwCmluZGV4IDU2MTNi
ZTguLjM0NzNlNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fw
dHVyZS9OZXR3b3JrQ2FwdHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC00MTUsOSArNDE1
LDkgQEAgU3RyaW5nIE1hbmFnZXI6Omhhc2hUb1BhdGgoY29uc3QgU3RyaW5nJiBoYXNoKQogCiAg
ICAgYXV0byBwYXRoID0gcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG1fcmVjb3JkUmVwbGF5Q2Fj
aGVMb2NhdGlvbiwga0Rpck5hbWVSZXNvdXJjZXMpOwogICAgIHBhdGggPSBwYXRoQnlBcHBlbmRp
bmdDb21wb25lbnQocGF0aCwgaGFzaEhlYWQpOwotICAgIHBhdGggPSBwYXRoQnlBcHBlbmRpbmdD
b21wb25lbnQocGF0aCwgZmlsZU5hbWUudG9TdHJpbmcoKSk7Ci0KLSAgICByZXR1cm4gcGF0aDsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBmaWxlTmFtZS50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHBhdGgsICpzdHJpbmcpOworICAgIENSQVNIKCk7
CiB9CiAKIFN0cmluZyBNYW5hZ2VyOjp1cmxJZGVudGlmeWluZ0NvbW1vbkRvbWFpbihjb25zdCBX
ZWJDb3JlOjpVUkwmIHVybCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc291cC9OZXR3b3JrUHJvY2Vzc1NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHAKaW5kZXggMGZhOGZkMi4uYTQ2MmUzMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9j
ZXNzU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdv
cmtQcm9jZXNzU291cC5jcHAKQEAgLTg4LDcgKzg4LDkgQEAgc3RhdGljIENTdHJpbmcgYnVpbGRB
Y2NlcHRMYW5ndWFnZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1YWdlcykKICAgICAgICAg
fQogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0cmlu
Zy0+dXRmOCgpOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXNDaGFuZ2VkKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYW5ndWFnZXMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCL0lE
QlV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERC
L0lEQlV0aWxpdGllcy5jcHAKaW5kZXggOWVjNzZmZi4uN2MxYzI0ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvRGF0YWJhc2VzL0luZGV4ZWREQi9JREJVdGlsaXRpZXMuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIvSURCVXRpbGl0aWVz
LmNwcApAQCAtNTIsNyArNTIsOSBAQCBTdHJpbmcgdW5pcXVlRGF0YWJhc2VJZGVudGlmaWVyKGNv
bnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBXZWJDb3JlOjpTZWN1cgogICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kKCdfJyk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoZGF0YWJhc2VO
YW1lKTsKIAotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dhbWVwYWQvR2FtZXBhZERhdGEuY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5jcHAKaW5kZXggOTA1ZDgyNy4uMWZi
ZDdkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0
YS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5jcHAK
QEAgLTExMSw3ICsxMTEsOSBAQCBTdHJpbmcgR2FtZXBhZERhdGE6OmxvZ2dpbmdTdHJpbmcoKSBj
b25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX2J1dHRvblZhbHVlc1tpXSk7CiAg
ICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUGx1
Z2lucy9OZXRzY2FwZS91bml4L05ldHNjYXBlUGx1Z2luTW9kdWxlVW5peC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL3VuaXgvTmV0c2NhcGVQbHVnaW5Nb2R1bGVV
bml4LmNwcAppbmRleCBmOWViMDZlLi45NzJkY2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL3VuaXgvTmV0c2NhcGVQbHVnaW5Nb2R1bGVVbml4LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL3VuaXgvTmV0c2Nh
cGVQbHVnaW5Nb2R1bGVVbml4LmNwcApAQCAtMTIwLDcgKzEyMCw5IEBAIFN0cmluZyBOZXRzY2Fw
ZVBsdWdpbk1vZHVsZTo6YnVpbGRNSU1FRGVzY3JpcHRpb24oY29uc3QgVmVjdG9yPE1pbWVDbGFz
c0luZm8+JiBtCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnOycpOwogICAgIH0KIAotICAg
IHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiBib29sIE5ldHNjYXBlUGx1Z2luTW9kdWxlOjpnZXRQbHVnaW5JbmZvRm9yTG9hZGVkUGx1Z2lu
KFJhd1BsdWdpbk1ldGFEYXRhJiBtZXRhRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTWVt
b3J5U2FtcGxlci5jcHAKaW5kZXggOTI3NzE4OS4uNjc1OGFiMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAKQEAgLTE4MSw4ICsxODEsMTEgQEAgdm9pZCBXZWJN
ZW1vcnlTYW1wbGVyOjphcHBlbmRDdXJyZW50TWVtb3J5VXNhZ2VUb0ZpbGUoRmlsZVN5c3RlbTo6
UGxhdGZvcm1GaWxlSGEKICAgICB9CiAgICAgc3RhdFN0cmluZy5hcHBlbmQoJ1xuJyk7CiAKLSAg
ICBDU3RyaW5nIHV0ZjhTdHJpbmcgPSBzdGF0U3RyaW5nLnRvU3RyaW5nKCkudXRmOCgpOwotICAg
IEZpbGVTeXN0ZW06OndyaXRlVG9GaWxlKG1fc2FtcGxlTG9nRmlsZSwgdXRmOFN0cmluZy5kYXRh
KCksIHV0ZjhTdHJpbmcubGVuZ3RoKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0YXRTdHJp
bmcudG9TdHJpbmcoKSkgeworICAgICAgICBDU3RyaW5nIHV0ZjhTdHJpbmcgPSBzdHJpbmctPnV0
ZjgoKTsKKyAgICAgICAgRmlsZVN5c3RlbTo6d3JpdGVUb0ZpbGUobV9zYW1wbGVMb2dGaWxlLCB1
dGY4U3RyaW5nLmRhdGEoKSwgdXRmOFN0cmluZy5sZW5ndGgoKSk7CisgICAgfSBlbHNlCisgICAg
ICAgIENSQVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElVc2VyU2NyaXB0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElV
c2VyU2NyaXB0LmNwcAppbmRleCA3NTg0ZTYzLi5hOTM5YjU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVXNlclNjcmlwdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJTY3JpcHQuY3BwCkBAIC0zNyw3ICszNyw5IEBAIFdlYkNv
cmU6OlVSTCBVc2VyU2NyaXB0OjpnZW5lcmF0ZVVuaXF1ZVVSTCgpCiAgICAgU3RyaW5nQnVpbGRl
ciB1cmxTdHJpbmdCdWlsZGVyOwogICAgIHVybFN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
dXNlci1zY3JpcHQ6Iik7CiAgICAgdXJsU3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIoKytpZGVu
dGlmaWVyKTsKLSAgICByZXR1cm4geyB7IH0sIHVybFN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSB9
OworICAgIGlmIChhdXRvIHN0cmluZyA9IHVybFN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuIHsgeyB9LCAqc3RyaW5nIH07CisgICAgQ1JBU0goKTsKIH0KIAogVXNlclNj
cmlwdDo6VXNlclNjcmlwdChXZWJDb3JlOjpVc2VyU2NyaXB0IHVzZXJTY3JpcHQsIEFQSTo6VXNl
ckNvbnRlbnRXb3JsZCYgd29ybGQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJVXNlclN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSVVzZXJTdHlsZVNoZWV0LmNwcAppbmRleCAxZDU5NWJiLi42M2FjMGY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVXNlclN0eWxlU2hlZXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVc2VyU3R5bGVTaGVldC5jcHAKQEAgLTM3
LDcgKzM3LDkgQEAgV2ViQ29yZTo6VVJMIFVzZXJTdHlsZVNoZWV0OjpnZW5lcmF0ZVVuaXF1ZVVS
TCgpCiAgICAgU3RyaW5nQnVpbGRlciB1cmxTdHJpbmdCdWlsZGVyOwogICAgIHVybFN0cmluZ0J1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgidXNlci1zdHlsZS1zaGVldDoiKTsKICAgICB1cmxTdHJpbmdC
dWlsZGVyLmFwcGVuZE51bWJlcigrK2lkZW50aWZpZXIpOwotICAgIHJldHVybiB7IHsgfSwgdXJs
U3RyaW5nQnVpbGRlci50b1N0cmluZygpIH07CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdXJsU3Ry
aW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4geyB7IH0sICpzdHJpbmcgfTsK
KyAgICBDUkFTSCgpOwogfQogCiBVc2VyU3R5bGVTaGVldDo6VXNlclN0eWxlU2hlZXQoV2ViQ29y
ZTo6VXNlclN0eWxlU2hlZXQgdXNlclN0eWxlU2hlZXQsIEFQSTo6VXNlckNvbnRlbnRXb3JsZCYg
d29ybGQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2Vz
dHVyZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlld0dl
c3R1cmVDb250cm9sbGVyLmNwcAppbmRleCA4YzIxYzI0Li45MTZkZDQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5j
cHAKQEAgLTIzMiw4ICsyMzIsMTAgQEAgU3RyaW5nIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6U25h
cHNob3RSZW1vdmFsVHJhY2tlcjo6ZXZlbnRzRGVzY3JpcHRpb24oRXZlbnRzIGUKIAogICAgIGlm
IChldmVudCAmIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6U25hcHNob3RSZW1vdmFsVHJhY2tlcjo6
U2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbikKICAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kKCJT
Y3JvbGxQb3NpdGlvblJlc3RvcmF0aW9uICIpOwotICAgIAotICAgIHJldHVybiBkZXNjcmlwdGlv
bi50b1N0cmluZygpOworCisgICAgaWYgKGF1dG8gc3RyaW5nID0gZGVzY3JpcHRpb24udG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcAppbmRleCA2MDA2
YTAyLi4xMjhmNTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJCYWNr
Rm9yd2FyZExpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkJhY2tGb3J3
YXJkTGlzdC5jcHAKQEAgLTQ5Myw3ICs0OTMsOSBAQCBjb25zdCBjaGFyKiBXZWJCYWNrRm9yd2Fy
ZExpc3Q6OmxvZ2dpbmdTdHJpbmcoKQogICAgICAgICBidWlsZGVyLmFwcGVuZChtX2VudHJpZXNb
aV0tPmxvZ2dpbmdTdHJpbmcoKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIGRlYnVnU3RyaW5nKCJc
biIsIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gZGVidWdTdHJpbmcoIlxuIiwgKnN0cmluZyk7Cisg
ICAgQ1JBU0goKTsKIH0KICNlbmRpZiAvLyAhTE9HX0RJU0FCTEVECiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCBjYTU0OGJlLi4xN2JjMzcxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC03MTAsNyArNzEw
LDEwIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShjb25z
dCBJUEM6OlN0cmluZ1JlZmVyZW5jZSYgbWVzc2FnCiAgICAgbWVzc2FnZU5hbWVTdHJpbmdCdWls
ZGVyLmFwcGVuZCgnLicpOwogICAgIG1lc3NhZ2VOYW1lU3RyaW5nQnVpbGRlci5hcHBlbmQobWVz
c2FnZU5hbWUuZGF0YSgpLCBtZXNzYWdlTmFtZS5zaXplKCkpOwogCi0gICAgc19pbnZhbGlkTWVz
c2FnZUNhbGxiYWNrKHRvQVBJKEFQSTo6U3RyaW5nOjpjcmVhdGUobWVzc2FnZU5hbWVTdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCkpLnB0cigpKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWVzc2Fn
ZU5hbWVTdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHNfaW52YWxpZE1lc3NhZ2VD
YWxsYmFjayh0b0FQSShBUEk6OlN0cmluZzo6Y3JlYXRlKCpzdHJpbmcpLnB0cigpKSk7CisgICAg
ZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpwcm9jZXNz
RGlkQ2FjaGVQYWdlKFdlYlByb2Nlc3NQcm94eSogcHJvY2VzcykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDQxNTZkODMuLmVmMDlkYjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTcwLDcgKzE3
MCwxMCBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1
bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE9wdAogICAgICAgICAgICAgICAgIGxhbmd1YWdl
U3RyaW5nLmFwcGVuZCgnLCcpOwogICAgICAgICAgICAgbGFuZ3VhZ2VTdHJpbmcuYXBwZW5kKG92
ZXJyaWRlTGFuZ3VhZ2VzW2ldKTsKICAgICAgICAgfQotICAgICAgICBsYXVuY2hPcHRpb25zLmV4
dHJhSW5pdGlhbGl6YXRpb25EYXRhLmFkZChBU0NJSUxpdGVyYWwoIk92ZXJyaWRlTGFuZ3VhZ2Vz
IiksIGxhbmd1YWdlU3RyaW5nLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSBsYW5ndWFnZVN0cmluZy50b1N0cmluZygpKQorICAgICAgICAgICAgbGF1bmNoT3B0aW9ucy5l
eHRyYUluaXRpYWxpemF0aW9uRGF0YS5hZGQoQVNDSUlMaXRlcmFsKCJPdmVycmlkZUxhbmd1YWdl
cyIpLCAqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9
CiAKICAgICBsYXVuY2hPcHRpb25zLm5vblZhbGlkSW5qZWN0ZWRDb2RlQWxsb3dlZCA9IHNob3Vs
ZEFsbG93Tm9uVmFsaWRJbmplY3RlZENvZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmluZGV4IDdm
YTg5MTAuLjVkOWI3NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApAQCAtMjI3LDcgKzIyNywxMCBA
QCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVtb3ZlRGF0YVJlY29yZHMo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPgogICAgICAgICAgICAgYXBwZW5kV2l0aERlbGltaXRl
cihkb21haW5zVG9SZW1vdmVEYXRhUmVjb3Jkc0ZvckJ1aWxkZXIsIGRvbWFpbiwgaXNGaXJzdEl0
ZW0pOwogICAgICAgICAgICAgaXNGaXJzdEl0ZW0gPSBmYWxzZTsKICAgICAgICAgfQotICAgICAg
ICBSRUxFQVNFX0xPR19JTkZPKFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1ZywgIkFib3V0IHRv
IHJlbW92ZSBkYXRhIHJlY29yZHMgZm9yICV7cHVibGljfXMuIiwgZG9tYWluc1RvUmVtb3ZlRGF0
YVJlY29yZHNGb3JCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIGlm
IChhdXRvIHN0cmluZyA9IGRvbWFpbnNUb1JlbW92ZURhdGFSZWNvcmRzRm9yQnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGVidWcsICJBYm91dCB0byByZW1vdmUgZGF0YSByZWNvcmRzIGZvciAle3B1YmxpY31zLiIs
IHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNI
KCk7CiAgICAgfQogI2VuZGlmCiAKQEAgLTEwNDQsNyArMTA0NywxMCBAQCB2b2lkIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6dXBkYXRlQ29va2llUGFydGl0aW9uaW5nKENvbXBsZXRp
b25IYW5kbGVyPAogICAgICAgICAgICAgICAgIGFwcGVuZFdpdGhEZWxpbWl0ZXIoZG9tYWluc1Rv
UGFydGl0aW9uQnVpbGRlciwgZG9tYWluLCBpc0ZpcnN0RG9tYWluKTsKICAgICAgICAgICAgICAg
ICBpc0ZpcnN0RG9tYWluID0gZmFsc2U7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBSRUxF
QVNFX0xPR19JTkZPKFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1ZywgIkFib3V0IHRvIHBhcnRp
dGlvbiBjb29raWVzIGluIHRoaXJkLXBhcnR5IGNvbnRleHRzIGZvciAle3B1YmxpY31zLiIsIGRv
bWFpbnNUb1BhcnRpdGlvbkJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGRvbWFpbnNUb1BhcnRpdGlvbkJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFJlc291cmNlTG9hZFN0YXRp
c3RpY3NEZWJ1ZywgIkFib3V0IHRvIHBhcnRpdGlvbiBjb29raWVzIGluIHRoaXJkLXBhcnR5IGNv
bnRleHRzIGZvciAle3B1YmxpY31zLiIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogCiAgICAgICAg
IGlmICghZG9tYWluc1RvQmxvY2suaXNFbXB0eSgpKSB7CkBAIC0xMDU0LDcgKzEwNjAsMTAgQEAg
dm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnVwZGF0ZUNvb2tpZVBhcnRpdGlv
bmluZyhDb21wbGV0aW9uSGFuZGxlcjwKICAgICAgICAgICAgICAgICBhcHBlbmRXaXRoRGVsaW1p
dGVyKGRvbWFpbnNUb0Jsb2NrQnVpbGRlciwgZG9tYWluLCBpc0ZpcnN0RG9tYWluKTsKICAgICAg
ICAgICAgICAgICBpc0ZpcnN0RG9tYWluID0gZmFsc2U7CiAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBSRUxFQVNFX0xPR19JTkZPKFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1ZywgIkFib3V0
IHRvIGJsb2NrIGNvb2tpZXMgaW4gdGhpcmQtcGFydHkgY29udGV4dHMgZm9yICV7cHVibGljfXMu
IiwgZG9tYWluc1RvQmxvY2tCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAg
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBkb21haW5zVG9CbG9ja0J1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEZWJ1ZywgIkFib3V0IHRvIGJsb2NrIGNvb2tpZXMgaW4gdGhpcmQtcGFydHkgY29udGV4dHMg
Zm9yICV7cHVibGljfXMuIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKCFk
b21haW5zVG9OZWl0aGVyUGFydGl0aW9uTm9yQmxvY2suaXNFbXB0eSgpKSB7CkBAIC0xMDY0LDcg
KzEwNzMsMTAgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnVwZGF0ZUNv
b2tpZVBhcnRpdGlvbmluZyhDb21wbGV0aW9uSGFuZGxlcjwKICAgICAgICAgICAgICAgICBhcHBl
bmRXaXRoRGVsaW1pdGVyKGRvbWFpbnNUb05laXRoZXJQYXJ0aXRpb25Ob3JCbG9ja0J1aWxkZXIs
IGRvbWFpbiwgaXNGaXJzdERvbWFpbik7CiAgICAgICAgICAgICAgICAgaXNGaXJzdERvbWFpbiA9
IGZhbHNlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGVidWcsICJBYm91dCB0byBuZWl0aGVyIHBhcnRpdGlvbiBub3Ig
YmxvY2sgY29va2llcyBpbiB0aGlyZC1wYXJ0eSBjb250ZXh0cyBmb3IgJXtwdWJsaWN9cy4iLCBk
b21haW5zVG9OZWl0aGVyUGFydGl0aW9uTm9yQmxvY2tCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgp
LmRhdGEoKSk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBkb21haW5zVG9OZWl0aGVy
UGFydGl0aW9uTm9yQmxvY2tCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgUkVM
RUFTRV9MT0dfSU5GTyhSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWcsICJBYm91dCB0byBuZWl0
aGVyIHBhcnRpdGlvbiBub3IgYmxvY2sgY29va2llcyBpbiB0aGlyZC1wYXJ0eSBjb250ZXh0cyBm
b3IgJXtwdWJsaWN9cy4iLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KICAgICB9CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NUZWxlbWV0cnkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1RlbGVtZXRyeS5jcHAKaW5kZXggYmI3NDQwYy4uNTIwYWI3NzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxl
bWV0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NUZWxlbWV0cnkuY3BwCkBAIC0xNzksMjIgKzE3OSwyMyBAQCBzdGF0aWMgdm9pZCBz
dWJtaXRUb3BMaXN0KHVuc2lnbmVkIG51bWJlck9mUmVzb3VyY2VzRnJvbVRoZVRvcCwgY29uc3Qg
VmVjdG9yPFByZQogICAgIFN0cmluZ0J1aWxkZXIgcHJlYW1ibGVCdWlsZGVyOwogICAgIHByZWFt
YmxlQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJ0b3AiKTsKICAgICBwcmVhbWJsZUJ1aWxkZXIuYXBw
ZW5kTnVtYmVyKG51bWJlck9mUmVzb3VyY2VzRnJvbVRoZVRvcCk7Ci0gICAgU3RyaW5nIGRlc2Ny
aXB0aW9uUHJlYW1ibGUgPSBwcmVhbWJsZUJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICAKLSAgICB3
ZWJQYWdlUHJveHkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCksIGRlc2NyaXB0aW9u
UHJlYW1ibGUgKyAiUHJldmFsZW50UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbiIsCi0gICAg
ICAgIHRvcFByZXZhbGVudFJlc291cmNlc1dpdGhVc2VySW50ZXJhY3Rpb24sIHNpZ25pZmljYW50
RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2FtcGxlOjpObyk7Ci0gICAgd2ViUGFnZVBy
b3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6
cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgpLCBkZXNjcmlwdGlvblByZWFtYmxl
ICsgIlN1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbnMiLAotICAgICAgICB0b3BTdWJmcmFtZVVu
ZGVyVG9wRnJhbWVPcmlnaW5zLCBzaWduaWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNo
b3VsZFNhbXBsZTo6Tm8pOwotICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdp
dGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxl
bWV0cnlLZXkoKSwgZGVzY3JpcHRpb25QcmVhbWJsZSArICJTdWJyZXNvdXJjZVVuZGVyVG9wRnJh
bWVPcmlnaW5zIiwKLSAgICAgICAgdG9wU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2lucywg
c2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9nZ2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKLSAg
ICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xv
Z2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCksIGRlc2NyaXB0
aW9uUHJlYW1ibGUgKyAiU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbyIsCi0gICAgICAgIHRv
cFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8sIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dl
ZFZhbHVlcywgU2hvdWxkU2FtcGxlOjpObyk7Ci0gICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1RlbGVtZXRyeUtleSgpLCBkZXNjcmlwdGlvblByZWFtYmxlICsgIk51bWJlck9mVGlt
ZXNEYXRhUmVjb3Jkc1JlbW92ZWQiLAotICAgICAgICB0b3BOdW1iZXJPZlRpbWVzRGF0YVJlY29y
ZHNSZW1vdmVkLCBzaWduaWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBs
ZTo6Tm8pOwotICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShE
aWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXko
KSwgZGVzY3JpcHRpb25QcmVhbWJsZSArICJOdW1iZXJPZlRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFy
dHlEdWVUb1VzZXJJbnRlcmFjdGlvbiIsCi0gICAgICAgIHRvcE51bWJlck9mVGltZXNBY2Nlc3Nl
ZEFzRmlyc3RQYXJ0eUR1ZVRvVXNlckludGVyYWN0aW9uLCBzaWduaWZpY2FudEZpZ3VyZXNGb3JM
b2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOwotICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFn
bm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlTG9h
ZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgZGVzY3JpcHRpb25QcmVhbWJsZSArICJOdW1iZXJP
ZlRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1N0b3JhZ2VBY2Nlc3NBUEkiLAotICAgICAg
ICB0b3BOdW1iZXJPZlRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1N0b3JhZ2VBY2Nlc3NB
UEksIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2FtcGxlOjpObyk7
CisgICAgaWYgKGF1dG8gZGVzY3JpcHRpb25QcmVhbWJsZSA9IHByZWFtYmxlQnVpbGRlci50b1N0
cmluZygpKSB7CisgICAgICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhW
YWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0
cnlLZXkoKSwgKmRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiUHJldmFsZW50UmVzb3VyY2VzV2l0aFVz
ZXJJbnRlcmFjdGlvbiIsCisgICAgICAgICAgICB0b3BQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNl
ckludGVyYWN0aW9uLCBzaWduaWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNh
bXBsZTo6Tm8pOworICAgICAgICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRo
VmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1l
dHJ5S2V5KCksICpkZXNjcmlwdGlvblByZWFtYmxlICsgIlN1YmZyYW1lVW5kZXJUb3BGcmFtZU9y
aWdpbnMiLAorICAgICAgICAgICAgdG9wU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lucywgc2ln
bmlmaWNhbnRGaWd1cmVzRm9yTG9nZ2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICAg
ICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNM
b2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgpLCAqZGVzY3Jp
cHRpb25QcmVhbWJsZSArICJTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW5zIiwKKyAgICAg
ICAgICAgIHRvcFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbnMsIHNpZ25pZmljYW50Rmln
dXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2FtcGxlOjpObyk7CisgICAgICAgIHdlYlBhZ2VQ
cm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6
OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgKmRlc2NyaXB0aW9uUHJlYW1i
bGUgKyAiU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbyIsCisgICAgICAgICAgICB0b3BTdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvLCBzaWduaWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1
ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOworICAgICAgICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0
aXN0aWNzVGVsZW1ldHJ5S2V5KCksICpkZXNjcmlwdGlvblByZWFtYmxlICsgIk51bWJlck9mVGlt
ZXNEYXRhUmVjb3Jkc1JlbW92ZWQiLAorICAgICAgICAgICAgdG9wTnVtYmVyT2ZUaW1lc0RhdGFS
ZWNvcmRzUmVtb3ZlZCwgc2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9nZ2VkVmFsdWVzLCBTaG91bGRT
YW1wbGU6Ok5vKTsKKyAgICAgICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0
aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVt
ZXRyeUtleSgpLCAqZGVzY3JpcHRpb25QcmVhbWJsZSArICJOdW1iZXJPZlRpbWVzQWNjZXNzZWRB
c0ZpcnN0UGFydHlEdWVUb1VzZXJJbnRlcmFjdGlvbiIsCisgICAgICAgICAgICB0b3BOdW1iZXJP
ZlRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1VzZXJJbnRlcmFjdGlvbiwgc2lnbmlmaWNh
bnRGaWd1cmVzRm9yTG9nZ2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICAgICAgd2Vi
UGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5n
S2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgpLCAqZGVzY3JpcHRpb25Q
cmVhbWJsZSArICJOdW1iZXJPZlRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1N0b3JhZ2VB
Y2Nlc3NBUEkiLAorICAgICAgICAgICAgdG9wTnVtYmVyT2ZUaW1lc0FjY2Vzc2VkQXNGaXJzdFBh
cnR5RHVlVG9TdG9yYWdlQWNjZXNzQVBJLCBzaWduaWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1
ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOworICAgIH0gZWxzZQorICAgICAgICBDUkFTSCgpOwogfQog
ICAgIAogc3RhdGljIHZvaWQgc3VibWl0VG9wTGlzdHMoY29uc3QgVmVjdG9yPFByZXZhbGVudFJl
c291cmNlVGVsZW1ldHJ5PiYgc29ydGVkUHJldmFsZW50UmVzb3VyY2VzLCBjb25zdCBWZWN0b3I8
UHJldmFsZW50UmVzb3VyY2VUZWxlbWV0cnk+JiBzb3J0ZWRQcmV2YWxlbnRSZXNvdXJjZXNXaXRo
b3V0VXNlckludGVyYWN0aW9uLCBXZWJQYWdlUHJveHkmIHdlYlBhZ2VQcm94eSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJv
d3NlckZ1bmNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcAppbmRleCAwYmNjZmFmLi5hZGE1ZjQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJy
b3dzZXJGdW5jcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwCkBAIC0xMzgsNyArMTM4LDkgQEAgc3RhdGlj
IFN0cmluZyBjYXBpdGFsaXplUkZDODIySGVhZGVyRmllbGROYW1lKGNvbnN0IFN0cmluZyYgbmFt
ZSkKICAgICAgICAgZWxzZQogICAgICAgICAgICAgY2FwaXRhbGl6ZUNoYXJhY3RlciA9IGZhbHNl
OwogICAgIH0KLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAKIHN0YXRpYyBIVFRQSGVhZGVyTWFwIHBhcnNlUkZDODIySGVhZGVyRmllbGRz
KGNvbnN0IGNoYXIqIGJ5dGVzLCB1bnNpZ25lZCBsZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IGE3ZmNhY2UuLjc5OWFkOWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CkBAIC0yMTIsNyArMjEyLDkgQEAgc3RhdGljIFN0cmluZyBidWlsZEhUVFBIZWFkZXJzKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBsb25nIGxvbmcmIGV4cGUKICAgICBpZiAoIWNv
bnRlbnRFbmNvZGluZy5pc051bGwoKSAmJiBjb250ZW50RW5jb2RpbmcgIT0gImlkZW50aXR5IikK
ICAgICAgICAgZXhwZWN0ZWRDb250ZW50TGVuZ3RoID0gLTE7CiAKLSAgICByZXR1cm4gaGVhZGVy
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gaGVhZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyB1aW50MzJf
dCBsYXN0TW9kaWZpZWREYXRlTVMoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggMTZh
YmU1NS4uNDg5YzhjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YkZyYW1lLmNwcApAQCAtMzUxLDcgKzM1MSw5IEBAIFN0cmluZyBXZWJGcmFtZTo6Y29udGVudHNB
c1N0cmluZygpIGNvbnN0CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCh3ZWJGcmFtZS0+Y29u
dGVudHNBc1N0cmluZygpKTsKICAgICAgICAgfQogICAgICAgICAvLyBGSVhNRTogSXQgbWF5IG1h
a2Ugc2Vuc2UgdG8gdXNlIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIGhlcmUuCi0gICAgICAg
IHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBD
UkFTSCgpOwogICAgIH0KIAogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fY29yZUZyYW1lLT5k
b2N1bWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDM2NzZlNjUuLjQ2ZWEx
NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOC0w
NC0yNiAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3RyaW5n
QnVpbGRlciBpcyBmYWxsaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTg1MDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVhY2ggU3RyaW5nQnVpbGRlciB0aGF0IGl0IGlzIGZhbGxpYmxlCisKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbToKKyAgICAgICAgKHJlZ0V4
cEZvckxhYmVscyk6CisKIDIwMTgtMDUtMDEgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW01lZGlhU3RyZWFtXSByZW1vdmUgV0sxIHN1cHBvcnQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFJlcHJlc2Vu
dGF0aW9uLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MUmVwcmVz
ZW50YXRpb24ubW0KaW5kZXggMTkxODM2My4uMmIyN2E1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubW0KQEAg
LTM5NCw3ICszOTQsMTAgQEAgc3RhdGljIFJlZ3VsYXJFeHByZXNzaW9uKiByZWdFeHBGb3JMYWJl
bHMoTlNBcnJheSAqbGFiZWxzKQogICAgICAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kTGl0ZXJh
bCgiXFxiIik7CiAgICAgICAgIH0KICAgICAgICAgcGF0dGVybi5hcHBlbmQoJyknKTsKLSAgICAg
ICAgcmVzdWx0ID0gbmV3IFJlZ3VsYXJFeHByZXNzaW9uKHBhdHRlcm4udG9TdHJpbmcoKSwgSlND
OjpZYXJyOjpUZXh0Q2FzZUluc2Vuc2l0aXZlKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
cGF0dGVybi50b1N0cmluZygpKQorICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFJlZ3VsYXJFeHBy
ZXNzaW9uKCpzdHJpbmcsIEpTQzo6WWFycjo6VGV4dENhc2VJbnNlbnNpdGl2ZSk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgLy8gYWRkIHJlZ2V4cCB0
byB0aGUgY2FjaGUsIG1ha2luZyBzdXJlIGl0IGlzIGF0IHRoZSBmcm9udCBmb3IgTFJVIG9yZGVy
aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nlc3NpYmxlQmFzZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nlc3NpYmxlQmFzZS5jcHAKaW5kZXggN2Uz
YjE4My4uYTgxZTMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQWNjZXNz
aWJsZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0FjY2Vzc2libGVCYXNl
LmNwcApAQCAtNjA5LDcgKzYwOSwxMCBAQCBIUkVTVUxUIEFjY2Vzc2libGVCYXNlOjpnZXRfYWNj
S2V5Ym9hcmRTaG9ydGN1dChWQVJJQU5UIHZDaGlsZCwgX19kZXJlZl9vcHRfb3V0CiAgICAgICAg
ICAgICBhY2Nlc3NLZXlNb2RpZmllcnNCdWlsZGVyLmFwcGVuZExpdGVyYWwoIlNoaWZ0KyIpOwog
ICAgICAgICBpZiAobW9kaWZpZXJzLmNvbnRhaW5zKFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpN
ZXRhS2V5KSkKICAgICAgICAgICAgIGFjY2Vzc0tleU1vZGlmaWVyc0J1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiV2luKyIpOwotICAgICAgICBhY2Nlc3NLZXlNb2RpZmllcnMgPSBhY2Nlc3NLZXlNb2Rp
ZmllcnNCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGFjY2Vz
c0tleU1vZGlmaWVyc0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGFjY2Vzc0tleU1v
ZGlmaWVycyA9ICpzdHJpbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAg
ICAgfQogICAgICpzaG9ydGN1dCA9IEJTdHJpbmcoU3RyaW5nKGFjY2Vzc0tleU1vZGlmaWVycyAr
IGFjY2Vzc0tleSkpLnJlbGVhc2UoKTsKICAgICByZXR1cm4gU19PSzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1BsdWdpbnMvUGx1Z2luU3RyZWFtLmNwcCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1BsdWdpbnMvUGx1Z2luU3RyZWFtLmNwcAppbmRleCBmMjU2NjRkLi5j
OTk4MDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9QbHVnaW5zL1BsdWdp
blN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vUGx1Z2lucy9QbHVnaW5T
dHJlYW0uY3BwCkBAIC0xNjcsNyArMTY3LDEwIEBAIHZvaWQgUGx1Z2luU3RyZWFtOjpzdGFydFN0
cmVhbSgpCiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKICAgICAgICAg
fQogCi0gICAgICAgIG1faGVhZGVycyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKS51dGY4KCk7
CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgIG1faGVhZGVycyA9IHN0cmluZy0+dXRmOCgpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBDUkFTSCgpOwogCiAgICAgICAgIC8vIElmIHRoZSBjb250ZW50IGlzIGVuY29kZWQg
KG1vc3QgbGlrZWx5IGNvbXByZXNzZWQpLCB0aGVuIGRvbid0IHNlbmQgaXRzIGxlbmd0aCB0byB0
aGUgcGx1Z2luLAogICAgICAgICAvLyB3aGljaCBpcyBvbmx5IGludGVyZXN0ZWQgaW4gdGhlIGRl
Y29kZWQgbGVuZ3RoLCBub3QgeWV0IGtub3duIGF0IHRoZSBtb21lbnQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJLaXRTdGF0aXN0aWNzLmNwcCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYktpdFN0YXRpc3RpY3MuY3BwCmluZGV4IDkwMDJjOTIuLmM0YjhiZjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFN0YXRpc3RpY3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFN0YXRpc3RpY3MuY3BwCkBAIC0x
NTYsNiArMTU2LDkgQEAgSFJFU1VMVCBXZWJLaXRTdGF0aXN0aWNzOjpjb21DbGFzc05hbWVDb3Vu
dHMoX19kZXJlZl9vdXRfb3B0IEJTVFIqIG91dHB1dCkKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
c2xvdC5rZXkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKICAgICB9Ci0gICAgKm91
dHB1dCA9IEJTdHJpbmcoYnVpbGRlci50b1N0cmluZygpKS5yZWxlYXNlKCk7Ci0gICAgcmV0dXJu
IFNfT0s7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKSB7CisgICAg
ICAgICpvdXRwdXQgPSBCU3RyaW5nKCpzdHJpbmcpLnJlbGVhc2UoKTsKKyAgICAgICAgcmV0dXJu
IFNfT0s7CisgICAgfQorICAgIENSQVNIKCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZGEwNzM2Zi4uMzBhNWQyNCAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisy
MDE4LTA0LTI2ICBKRiBCYXN0aWVuICA8amZiYXN0aWVuQGFwcGxlLmNvbT4KKworICAgICAgICBT
dHJpbmdCdWlsZGVyIGlzIGZhbGxpYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODUwNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTdHJpbmdCdWlsZGVyIGNhbiBmYWlsIHdoZW4gYWxsb2NhdGluZyBt
ZW1vcnkuIFN0cmluZ0J1aWxkZXIgaXMKKyAgICAgICAgbW9zdGx5IHVzZWQgd2l0aCB1c2VyIGlu
cHV0LCB3aGljaCBvZnRlbiBtZWFucyB0aGF0IGp1c3QgY3Jhc2hpbmcKKyAgICAgICAgaXNuJ3Qg
dGhlIHJpZ2h0IG91dGNvbWUuIE91ciBmdXp6ZXJzIG9mdGVuIGVuY291bnRlciBzdWNoIHRoaW5n
cworICAgICAgICBmb3IgSmF2YVNjcmlwdENvcmUsIGFuZCBzbyBmYXIgd2UndmUgYXBwbGllZCBw
b2ludCBzb2x1dGlvbnMuIE5vCisgICAgICAgIG1vcmUhCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OmV4cGVjdEJ1aWxkZXJDb250ZW50KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmV4cGVjdEVt
cHR5KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRl
bnNpb25zLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcDoKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OmNyZWF0ZUNvbW1hbmQpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTG9nZ2luZy5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpMb2dnaW5nVGVzdDo6b3V0cHV0KToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpMb2dPYnNl
cnZlcjo6bG9nKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVGV4dENv
ZGVjLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OnRlc3REZWNvZGUpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvV1RGU3RyaW5nVXRpbGl0aWVzLmg6CisgICAgICAgICh1dGYxNlN0cmlu
Zyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2UuY3BwOgorICAgICAgICAoV1RSOjpkdW1wUGF0aCk6CisgICAgICAgIChXVFI6OnJh
bmdlVG9TdHIpOgorICAgICAgICAoV1RSOjpzdHlsZURlY1RvU3RyKToKKyAgICAgICAgKFdUUjo6
c2VjdXJpdHlPcmlnaW5Ub1N0cik6CisgICAgICAgIChXVFI6OmZyYW1lVG9TdHIpOgorICAgICAg
ICAoV1RSOjpkdW1wTG9hZEV2ZW50KToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdl
OjpkdW1wKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlVGl0
bGVGb3JGcmFtZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFBlcmZv
cm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQ
YWdlOjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXVFI6OkluamVj
dGVkQnVuZGxlUGFnZTo6d2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUpOgorICAgICAgICAoV1RSOjpJ
bmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVSZXNwb25zZUZvclJlc291cmNlKToKKyAgICAg
ICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRGaW5pc2hMb2FkRm9yUmVzb3VyY2UpOgor
ICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZhaWxMb2FkRm9yUmVzb3VyY2Up
OgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZENhY2hlUmVzcG9uc2Up
OgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24pOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRlY2lkZVBv
bGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxs
QWRkTWVzc2FnZVRvQ29uc29sZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6
d2lsbFNldFN0YXR1c2JhclRleHQpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6
OndpbGxSdW5KYXZhU2NyaXB0QWxlcnQpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBh
Z2U6OndpbGxSdW5KYXZhU2NyaXB0Q29uZmlybSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVu
ZGxlUGFnZTo6d2lsbFJ1bkphdmFTY3JpcHRQcm9tcHQpOgorICAgICAgICAoV1RSOjpJbmplY3Rl
ZEJ1bmRsZVBhZ2U6OmRpZFJlYWNoQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKToKKyAgICAg
ICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRFeGNlZWREYXRhYmFzZVF1b3RhKToKKyAg
ICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRCZWdpbkVkaXRpbmcpOgorICAg
ICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEVuZEVkaXRpbmcpOgorICAgICAg
ICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEluc2VydE5vZGUpOgorICAgICAgICAo
V1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEluc2VydFRleHQpOgorICAgICAgICAoV1RS
OjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZERlbGV0ZVJhbmdlKToKKyAgICAgICAgKFdUUjo6
SW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKToKKyAgICAgICAg
KFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRBcHBseVN0eWxlKToKKyAgICAgICAgKFdU
Ujo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRCZWdpbkVkaXRpbmcpOgorICAgICAgICAoV1RSOjpJ
bmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEVuZEVkaXRpbmcpOgorICAgICAgICAoV1RSOjpJbmplY3Rl
ZEJ1bmRsZVBhZ2U6OmRpZENoYW5nZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFn
ZTo6ZGlkQ2hhbmdlU2VsZWN0aW9uKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzdGF0
aXN0aWNzRGlkUnVuVGVsZW1ldHJ5Q2FsbGJhY2spOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVy
OjpjYWxsRGlkUmVjZWl2ZUFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzQ2FsbGJhY2spOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpU
ZXN0Q29udHJvbGxlcjo6ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUpOgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRSZWNlaXZlU2VydmVyUmVk
aXJlY3RUb1VSTCk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZEZh
aWwpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAg
ICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZHVtcFJlc3VsdHMpOgorCiAyMDE4LTA1LTAxICBF
cmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtNZWRpYVN0
cmVhbV0gcmVtb3ZlIFdLMSBzdXBwb3J0CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9Dcm9zc1RocmVhZFRhc2suY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvQ3Jvc3NUaHJlYWRUYXNrLmNwcAppbmRleCA1MmMwYmNkLi5mNjFmYTMyIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZFRhc2suY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkVGFzay5jcHAKQEAg
LTg4LDcgKzg4LDkgQEAgc3RydWN0IExpZmV0aW1lTG9nZ2VyIHsKICAgICAgICAgYnVpbGRlci5h
cHBlbmQoIi0iKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nOjpudW1iZXIobW92ZUdl
bmVyYXRpb24pKTsKIAotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBjb25zdCBjaGFyJiBu
YW1lIHsgKiI8ZGVmYXVsdD4iIH07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1N0cmluZ0J1aWxkZXIuY3BwCmluZGV4IDZiOGUwNWMuLjc4Njc1MDAgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCkBAIC0xLDYgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTM5LDE2ICszOSwx
NiBAQCBzdGF0aWMgdm9pZCBleHBlY3RCdWlsZGVyQ29udGVudChjb25zdCBTdHJpbmcmIGV4cGVj
dGVkLCBjb25zdCBTdHJpbmdCdWlsZGVyJiBidQogICAgIC8vIE5vdCB1c2luZyBidWlsZGVyLnRv
U3RyaW5nKCkgb3IgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBiZWNhdXNlIHRo
ZXkgYWxsCiAgICAgLy8gY2hhbmdlIGludGVybmFsIHN0YXRlIG9mIGJ1aWxkZXIuCiAgICAgaWYg
KGJ1aWxkZXIuaXM4Qml0KCkpCi0gICAgICAgIEVYUEVDVF9FUShleHBlY3RlZCwgU3RyaW5nKGJ1
aWxkZXIuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5sZW5ndGgoKSkpOworICAgICAgICBFWFBFQ1Rf
RVEoZXhwZWN0ZWQsIFN0cmluZyhidWlsZGVyLmNoYXJhY3RlcnM4KCkudmFsdWUoKSwgYnVpbGRl
ci5sZW5ndGgoKSkpOwogICAgIGVsc2UKLSAgICAgICAgRVhQRUNUX0VRKGV4cGVjdGVkLCBTdHJp
bmcoYnVpbGRlci5jaGFyYWN0ZXJzMTYoKSwgYnVpbGRlci5sZW5ndGgoKSkpOworICAgICAgICBF
WFBFQ1RfRVEoZXhwZWN0ZWQsIFN0cmluZyhidWlsZGVyLmNoYXJhY3RlcnMxNigpLnZhbHVlKCks
IGJ1aWxkZXIubGVuZ3RoKCkpKTsKIH0KIAogdm9pZCBleHBlY3RFbXB0eShjb25zdCBTdHJpbmdC
dWlsZGVyJiBidWlsZGVyKQogewogICAgIEVYUEVDVF9FUSgwVSwgYnVpbGRlci5sZW5ndGgoKSk7
CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5pc0VtcHR5KCkpOwotICAgIEVYUEVDVF9FUSgwLCBi
dWlsZGVyLmNoYXJhY3RlcnM4KCkpOworICAgIEVYUEVDVF9FUSgwLCBidWlsZGVyLmNoYXJhY3Rl
cnM4KCkudmFsdWUoKSk7CiB9CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIERlZmF1bHRDb25z
dHJ1Y3RvcikKQEAgLTcxLDI0ICs3MSwyNCBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBBcHBl
bmQpCiAgICAgYnVpbGRlci5hcHBlbmQoJyMnKTsKICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CiAKLSAgICBidWlsZGVyLnRvU3RyaW5nKCk7
IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KKyAgICBidWlsZGVyLnRvU3RyaW5nKCkudmFs
dWUoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgogICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjE7CiAgICAgYnVpbGRlci5hcHBlbmQoIiIsIDApOwogICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKLSAgICBidWlsZGVyMS5hcHBlbmQo
YnVpbGRlci5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmxlbmd0aCgpKTsKKyAgICBidWlsZGVyMS5h
cHBlbmQoYnVpbGRlci5jaGFyYWN0ZXJzOCgpLnZhbHVlKCksIGJ1aWxkZXIubGVuZ3RoKCkpOwog
ICAgIGJ1aWxkZXIxLmFwcGVuZCgiWFlaIik7Ci0gICAgYnVpbGRlci5hcHBlbmQoYnVpbGRlcjEu
Y2hhcmFjdGVyczgoKSwgYnVpbGRlcjEubGVuZ3RoKCkpOworICAgIGJ1aWxkZXIuYXBwZW5kKGJ1
aWxkZXIxLmNoYXJhY3RlcnM4KCkudmFsdWUoKSwgYnVpbGRlcjEubGVuZ3RoKCkpOwogICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMwMTIzNDU2Nzg5YWJjZGVmZyNY
WVoiLCBidWlsZGVyKTsKIAogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjI7CiAgICAgYnVpbGRl
cjIucmVzZXJ2ZUNhcGFjaXR5KDEwMCk7CiAgICAgYnVpbGRlcjIuYXBwZW5kKCJ4eXoiKTsKLSAg
ICBjb25zdCBMQ2hhciogY2hhcmFjdGVycyA9IGJ1aWxkZXIyLmNoYXJhY3RlcnM4KCk7CisgICAg
Y29uc3QgTENoYXIqIGNoYXJhY3RlcnMgPSBidWlsZGVyMi5jaGFyYWN0ZXJzOCgpLnZhbHVlKCk7
CiAgICAgYnVpbGRlcjIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7Ci0gICAgQVNTRVJUX0VRKGNoYXJh
Y3RlcnMsIGJ1aWxkZXIyLmNoYXJhY3RlcnM4KCkpOwotICAgIGJ1aWxkZXIyLnRvU3RyaW5nUHJl
c2VydmVDYXBhY2l0eSgpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nIHdpdGggYnVmZmVyIHBy
ZXNlcnZlZC4KKyAgICBBU1NFUlRfRVEoY2hhcmFjdGVycywgYnVpbGRlcjIuY2hhcmFjdGVyczgo
KS52YWx1ZSgpKTsKKyAgICBidWlsZGVyMi50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS52YWx1
ZSgpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nIHdpdGggYnVmZmVyIHByZXNlcnZlZC4KICAg
ICBidWlsZGVyMi5hcHBlbmQoImFiY2QiKTsKLSAgICBBU1NFUlRfRVEoY2hhcmFjdGVycywgYnVp
bGRlcjIuY2hhcmFjdGVyczgoKSk7CisgICAgQVNTRVJUX0VRKGNoYXJhY3RlcnMsIGJ1aWxkZXIy
LmNoYXJhY3RlcnM4KCkudmFsdWUoKSk7CiAKICAgICAvLyBUZXN0IGFwcGVuZGluZyBVQ2hhcjMy
IGNoYXJhY3RlcnMgdG8gU3RyaW5nQnVpbGRlci4KICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXJG
b3JVQ2hhcjMyQXBwZW5kOwpAQCAtMTA1LDkgKzEwNSw5IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRl
c3QsIFRvU3RyaW5nKQogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVy
LmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwotICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3Ry
aW5nKCk7CisgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKS52YWx1ZSgpOwog
ICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKLSAgICBBU1NFUlRf
RVEoc3RyaW5nLmltcGwoKSwgYnVpbGRlci50b1N0cmluZygpLmltcGwoKSk7CisgICAgQVNTRVJU
X0VRKHN0cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmcoKS52YWx1ZSgpLmltcGwoKSk7CiAK
ICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUg
b3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCiAgICAgYnVpbGRlci5hcHBlbmQoImFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7CkBAIC0xMTUsMjAgKzExNSwyMCBAQCBURVNUKFN0cmlu
Z0J1aWxkZXJUZXN0LCBUb1N0cmluZykKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWls
ZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKSBp
biBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KICAgICBidWlsZGVyLnJlc2VydmVD
YXBhY2l0eSgyMDApOwotICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkudmFsdWUoKTsKICAgICBBU1NFUlRfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKICAgICBidWls
ZGVyLmFwcGVuZCgiQUJDIik7CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUg
b3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGNvbnRl
bnQgb2YgdGhlIFN0cmluZ0J1aWxkZXIuCi0gICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRv
U3RyaW5nKCk7CisgICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nKCkudmFsdWUo
KTsKICAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXpBQkMiKSwgc3RyaW5nMSk7CiAgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiIpOwotICAgIEFT
U0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIp
LCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nKCkudmFsdWUo
KSk7CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOwogCiAgICAgLy8gUmVzaXppbmcgdGhlIFN0cmluZ0J1
aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygp
LgotICAgIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgc3RyaW5nMSA9IGJ1aWxk
ZXIudG9TdHJpbmcoKS52YWx1ZSgpOwogICAgIGJ1aWxkZXIucmVzaXplKDEwKTsKICAgICBidWls
ZGVyLmFwcGVuZCgiIyMjIik7CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOwpAQCAtMTM5LDExICsxMzksMTEg
QEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIp
OwogICAgIHVuc2lnbmVkIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwotICAgIFN0cmlu
ZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOworICAgIFN0cmlu
ZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLnZhbHVlKCk7CiAg
ICAgQVNTRVJUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwogICAgIEFTU0VSVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKLSAgICBBU1NFUlRfRVEoc3RyaW5nLmlt
cGwoKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS5pbXBsKCkpOwotICAgIEFT
U0VSVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKKyAg
ICBBU1NFUlRfRVEoc3RyaW5nLmltcGwoKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNp
dHkoKS52YWx1ZSgpLmltcGwoKSk7CisgICAgQVNTRVJUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgp
LCBidWlsZGVyLmNoYXJhY3RlcnM4KCkudmFsdWUoKSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUg
U3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRv
U3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLgogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5eiIpOwpAQCAtMTUyLDI4ICsxNTIsMjggQEAgVEVTVChTdHJpbmdCdWls
ZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIC8vIENoYW5naW5nIHRoZSBT
dHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9T
dHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkgaXMgbm90IGNoYW5n
ZWQuCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKICAgICBjYXBhY2l0eSA9IGJ1
aWxkZXIuY2FwYWNpdHkoKTsKLSAgICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVD
YXBhY2l0eSgpOworICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5
KCkudmFsdWUoKTsKICAgICBBU1NFUlRfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7
Ci0gICAgQVNTRVJUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4
KCkpOworICAgIEFTU0VSVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0
ZXJzOCgpLnZhbHVlKCkpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMi
KTsKICAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXoiKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1bHQg
b2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGNvbnRl
bnQgb2YgdGhlIFN0cmluZ0J1aWxkZXIuCiAgICAgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5
KCk7Ci0gICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0
eSgpOworICAgIFN0cmluZyBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNp
dHkoKS52YWx1ZSgpOwogICAgIEFTU0VSVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgp
KTsKLSAgICBBU1NFUlRfRVEoc3RyaW5nMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3Rl
cnM4KCkpOworICAgIEFTU0VSVF9FUShzdHJpbmcxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hh
cmFjdGVyczgoKS52YWx1ZSgpKTsKICAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CiAgICAgc3RyaW5nMS5hcHBl
bmQoIkRFRiIpOwotICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsK
KyAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS52YWx1ZSgpKTsKICAg
ICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpB
QkNERUYiKSwgc3RyaW5nMSk7CiAKICAgICAvLyBSZXNpemluZyB0aGUgU3RyaW5nQnVpbGRlciBz
aG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVD
YXBhY2l0eSgpLgogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwotICAgIHN0cmlu
ZzEgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOworICAgIHN0cmluZzEgPSBi
dWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLnZhbHVlKCk7CiAgICAgQVNTRVJUX0VR
KGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwotICAgIEFTU0VSVF9FUShzdHJpbmcuY2hh
cmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKKyAgICBBU1NFUlRfRVEoc3RyaW5n
LmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKS52YWx1ZSgpKTsKICAgICBidWls
ZGVyLnJlc2l6ZSgxMCk7CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIpOwogICAgIEFTU0VSVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJp
bmcxKTsKQEAgLTE5MSwxMSArMTkxLDExIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFycmF5
KQogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVuZCgiMDEy
MzQ1Njc4OSIpOwotICAgIEVYUEVDVF9FUSgnMCcsIHN0YXRpY19jYXN0PGNoYXI+KGJ1aWxkZXJb
MF0pKTsKLSAgICBFWFBFQ1RfRVEoJzknLCBzdGF0aWNfY2FzdDxjaGFyPihidWlsZGVyWzldKSk7
Ci0gICAgYnVpbGRlci50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCi0g
ICAgRVhQRUNUX0VRKCcwJywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRlclswXSkpOwotICAgIEVY
UEVDVF9FUSgnOScsIHN0YXRpY19jYXN0PGNoYXI+KGJ1aWxkZXJbOV0pKTsKKyAgICBFWFBFQ1Rf
RVEoJzAnLCBzdGF0aWNfY2FzdDxjaGFyPihidWlsZGVyWzBdLnZhbHVlKCkpKTsKKyAgICBFWFBF
Q1RfRVEoJzknLCBzdGF0aWNfY2FzdDxjaGFyPihidWlsZGVyWzldLnZhbHVlKCkpKTsKKyAgICBi
dWlsZGVyLnRvU3RyaW5nKCkudmFsdWUoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgor
ICAgIEVYUEVDVF9FUSgnMCcsIHN0YXRpY19jYXN0PGNoYXI+KGJ1aWxkZXJbMF0udmFsdWUoKSkp
OworICAgIEVYUEVDVF9FUSgnOScsIHN0YXRpY19jYXN0PGNoYXI+KGJ1aWxkZXJbOV0udmFsdWUo
KSkpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBSZXNpemUpCkBAIC0yMDksNyArMjA5
LDcgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgUmVzaXplKQogICAgIEVYUEVDVF9FUSg4VSwg
YnVpbGRlci5sZW5ndGgoKSk7CiAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3Iiwg
YnVpbGRlcik7CiAKLSAgICBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgYnVpbGRlci50b1N0cmlu
ZygpLnZhbHVlKCk7CiAgICAgYnVpbGRlci5yZXNpemUoNyk7CiAgICAgRVhQRUNUX0VRKDdVLCBi
dWlsZGVyLmxlbmd0aCgpKTsKICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NiIsIGJ1
aWxkZXIpOwpAQCAtMjQwLDEzICsyNDAsMTMgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRXF1
YWwpCiAgICAgQVNTRVJUX1RSVUUoYnVpbGRlcjIgIT0gYnVpbGRlcjEpOwogICAgIEFTU0VSVF9U
UlVFKFN0cmluZygiMTIzIikgIT0gYnVpbGRlcjIpOwogICAgIEFTU0VSVF9UUlVFKGJ1aWxkZXIy
ICE9IFN0cmluZygiMTIzIikpOwotICAgIGJ1aWxkZXIyLnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0
ZXIgcmVpZnlTdHJpbmcoKS4KKyAgICBidWlsZGVyMi50b1N0cmluZygpLnZhbHVlKCk7IC8vIFRl
c3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBBU1NFUlRfVFJVRShidWlsZGVyMSAhPSBidWls
ZGVyMik7CiAKICAgICBidWlsZGVyMi5yZXNpemUoMyk7CiAgICAgQVNTRVJUX1RSVUUoYnVpbGRl
cjEgPT0gYnVpbGRlcjIpOwogCi0gICAgYnVpbGRlcjEudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRl
ciByZWlmeVN0cmluZygpLgorICAgIGJ1aWxkZXIxLnRvU3RyaW5nKCkudmFsdWUoKTsgLy8gVGVz
dCBhZnRlciByZWlmeVN0cmluZygpLgogICAgIEFTU0VSVF9UUlVFKGJ1aWxkZXIxID09IGJ1aWxk
ZXIyKTsKIH0KIApAQCAtMjY1LDE0ICsyNjUsMTQgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwg
VG9BdG9taWNTdHJpbmcpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxk
ZXIuYXBwZW5kKCIxMjMiKTsKLSAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRl
ci50b0F0b21pY1N0cmluZygpOworICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWls
ZGVyLnRvQXRvbWljU3RyaW5nKCkudmFsdWUoKTsKICAgICBBU1NFUlRfRVEoU3RyaW5nKCIxMjMi
KSwgYXRvbWljU3RyaW5nKTsKIAogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDI1Nik7CiAg
ICAgQVNTRVJUX1RSVUUoYnVpbGRlci5jYW5TaHJpbmsoKSk7CiAgICAgZm9yIChpbnQgaSA9IGJ1
aWxkZXIubGVuZ3RoKCk7IGkgPCAxMjg7IGkrKykKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ3gn
KTsKLSAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nMSA9IGJ1aWxkZXIudG9BdG9taWNTdHJp
bmcoKTsKKyAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nMSA9IGJ1aWxkZXIudG9BdG9taWNT
dHJpbmcoKS52YWx1ZSgpOwogICAgIEFTU0VSVF9FUSgxMjh1LCBhdG9taWNTdHJpbmcxLmxlbmd0
aCgpKTsKICAgICBBU1NFUlRfRVEoJ3gnLCBhdG9taWNTdHJpbmcxWzEyN10pOwogCkBAIC0yODIs
OCArMjgyLDggQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9BdG9taWNTdHJpbmcpCiAgICAg
QVNTRVJUX0VRKDEyOHUsIGF0b21pY1N0cmluZzEubGVuZ3RoKCkpOwogCiAgICAgQVNTRVJUX0ZB
TFNFKGJ1aWxkZXIuY2FuU2hyaW5rKCkpOwotICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCk7Ci0gICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZzIgPSBidWlsZGVyLnRvQXRv
bWljU3RyaW5nKCk7CisgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKS52YWx1
ZSgpOworICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcyID0gYnVpbGRlci50b0F0b21pY1N0
cmluZygpLnZhbHVlKCk7CiAgICAgLy8gVGhleSBzaG91bGQgc2hhcmUgdGhlIHNhbWUgU3RyaW5n
SW1wbC4KICAgICBBU1NFUlRfRVEoYXRvbWljU3RyaW5nMi5pbXBsKCksIHN0cmluZy5pbXBsKCkp
OwogfQpAQCAtMjkyLDQ1ICsyOTIsNDUgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9BdG9t
aWNTdHJpbmdPbkVtcHR5KQogewogICAgIHsgLy8gRGVmYXVsdCBjb25zdHJ1Y3RlZC4KICAgICAg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3Ry
aW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpOworICAgICAgICBBdG9taWNTdHJpbmcgYXRv
bWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpLnZhbHVlKCk7CiAgICAgICAgIEFT
U0VSVF9FUShlbXB0eUF0b20oKSwgYXRvbWljU3RyaW5nKTsKICAgICB9CiAgICAgeyAvLyBXaXRo
IGNhcGFjaXR5LgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxk
ZXIucmVzZXJ2ZUNhcGFjaXR5KDY0KTsKLSAgICAgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmlu
ZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKTsKKyAgICAgICAgQXRvbWljU3RyaW5nIGF0b21p
Y1N0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKS52YWx1ZSgpOwogICAgICAgICBBU1NF
UlRfRVEoZW1wdHlBdG9tKCksIGF0b21pY1N0cmluZyk7CiAgICAgfQogICAgIHsgLy8gQXRvbWlj
U3RyaW5nIGNvbnN0cnVjdGVkIGZyb20gYSBudWxsIHN0cmluZy4KICAgICAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoKSk7Ci0gICAgICAg
IEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7Cisg
ICAgICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5n
KCkudmFsdWUoKTsKICAgICAgICAgQVNTRVJUX0VRKGVtcHR5QXRvbSgpLCBhdG9taWNTdHJpbmcp
OwogICAgIH0KICAgICB7IC8vIEF0b21pY1N0cmluZyBjb25zdHJ1Y3RlZCBmcm9tIGFuIGVtcHR5
IHN0cmluZy4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVy
LmFwcGVuZChlbXB0eVN0cmluZygpKTsKLSAgICAgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmlu
ZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKTsKKyAgICAgICAgQXRvbWljU3RyaW5nIGF0b21p
Y1N0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKS52YWx1ZSgpOwogICAgICAgICBBU1NF
UlRfRVEoZW1wdHlBdG9tKCksIGF0b21pY1N0cmluZyk7CiAgICAgfQogICAgIHsgLy8gQXRvbWlj
U3RyaW5nIGNvbnN0cnVjdGVkIGZyb20gYW4gZW1wdHkgU3RyaW5nQnVpbGRlci4KICAgICAgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBTdHJpbmdCdWlsZGVyIGVtcHR5QnVpbGRl
cjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoZW1wdHlCdWlsZGVyKTsKLSAgICAgICAgQXRvbWlj
U3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKTsKKyAgICAgICAg
QXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKS52YWx1
ZSgpOwogICAgICAgICBBU1NFUlRfRVEoZW1wdHlBdG9tKCksIGF0b21pY1N0cmluZyk7CiAgICAg
fQogICAgIHsgLy8gQXRvbWljU3RyaW5nIGNvbnN0cnVjdGVkIGZyb20gYW4gZW1wdHkgY2hhciog
c3RyaW5nLgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCIiLCAwKTsKLSAgICAgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxk
ZXIudG9BdG9taWNTdHJpbmcoKTsKKyAgICAgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9
IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKS52YWx1ZSgpOwogICAgICAgICBBU1NFUlRfRVEoZW1w
dHlBdG9tKCksIGF0b21pY1N0cmluZyk7CiAgICAgfQogICAgIHsgLy8gQ2xlYXJlZCBTdHJpbmdC
dWlsZGVyLgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiV2ViS2l0Iik7CiAgICAgICAgIGJ1aWxkZXIuY2xlYXIoKTsKLSAgICAg
ICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKTsK
KyAgICAgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJp
bmcoKS52YWx1ZSgpOwogICAgICAgICBBU1NFUlRfRVEoZW1wdHlBdG9tKCksIGF0b21pY1N0cmlu
Zyk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nVmlldy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3
LmNwcAppbmRleCBmYzI4YjAwLi44YjI4MzA5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9TdHJpbmdWaWV3LmNwcApAQCAtMTY0LDY1ICsxNjQsNjUgQEAgVEVTVChXVEYsIFN0
cmluZ1ZpZXdJdGVyYXRvcnMpCiAKICAgICBTdHJpbmdCdWlsZGVyIGI7CiAgICAgYnVpbGQoYiwg
ezB4RDgwMCwgMHhERDU1fSk7IC8vIFN1cnJvZ2F0ZXMgZm9yIHVuaWNvZGUgY29kZSBwb2ludCBV
KzEwMTU1Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXco
Yi50b1N0cmluZygpKS5jb2RlUG9pbnRzKCksIHsweDEwMTU1fSkpOwotICAgIEVYUEVDVF9UUlVF
KGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRz
KCksIHsweEQ4MDAsIDB4REQ1NX0pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJh
dGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmlu
Z1ZpZXcoYi50b1N0cmluZygpKX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJh
dGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVBvaW50cygpLCB7MHgx
MDE1NX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmll
dyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVVuaXRzKCksIHsweEQ4MDAsIDB4REQ1NX0pKTsK
KyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3Ry
aW5nKCkudmFsdWUoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhiLnRvU3RyaW5n
KCkudmFsdWUoKSl9KSk7CiAKICAgICBidWlsZChiLCB7MHhEODAwfSk7IC8vIExlYWRpbmcgc3Vy
cm9nYXRlIG9ubHkKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5n
VmlldyhiLnRvU3RyaW5nKCkpLmNvZGVQb2ludHMoKSwgezB4RDgwMH0pKTsKLSAgICBFWFBFQ1Rf
VFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVV
bml0cygpLCB7MHhEODAwfSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9u
cyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmll
dyhiLnRvU3RyaW5nKCkpfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9u
cyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlUG9pbnRzKCksIHsweEQ4MDB9
KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50
b1N0cmluZygpLnZhbHVlKCkpLmNvZGVVbml0cygpLCB7MHhEODAwfSkpOworICAgIEVYUEVDVF9U
UlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgp
KS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKX0p
KTsKIAogICAgIGJ1aWxkKGIsIHsweEQ4MDAsIDB4RDgwMX0pOyAvLyBUd28gbGVhZGluZyBzdXJy
b2dhdGVzCi0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXco
Yi50b1N0cmluZygpKS5jb2RlUG9pbnRzKCksIHsweEQ4MDAsIDB4RDgwMX0pKTsKLSAgICBFWFBF
Q1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNv
ZGVVbml0cygpLCB7MHhEODAwLCAweEQ4MDF9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxv
b3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5ncmFwaGVtZUNsdXN0ZXJzKCks
IHtTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCksIDEpLCBTdHJpbmdWaWV3KGIuY2hhcmFjdGVy
czE2KCkgKyAxLCAxKX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMo
U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVBvaW50cygpLCB7MHhEODAwLCAw
eEQ4MDF9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1Zp
ZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVVbml0cygpLCB7MHhEODAwLCAweEQ4MDF9KSk7
CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0
cmluZygpLnZhbHVlKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi5jaGFyYWN0
ZXJzMTYoKS52YWx1ZSgpLCAxKSwgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCkg
KyAxLCAxKX0pKTsKIAogICAgIGJ1aWxkKGIsIHsweERENTV9KTsgLy8gVHJhaWxpbmcgc3Vycm9n
YXRlIG9ubHkKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmll
dyhiLnRvU3RyaW5nKCkpLmNvZGVQb2ludHMoKSwgezB4REQ1NX0pKTsKLSAgICBFWFBFQ1RfVFJV
RShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVVbml0
cygpLCB7MHhERDU1fSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhT
dHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhi
LnRvU3RyaW5nKCkpfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhT
dHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlUG9pbnRzKCksIHsweERENTV9KSk7
CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0
cmluZygpLnZhbHVlKCkpLmNvZGVVbml0cygpLCB7MHhERDU1fSkpOworICAgIEVYUEVDVF9UUlVF
KGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5n
cmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKX0pKTsK
IAogICAgIGJ1aWxkKGIsIHsweEQ4MDAsICdoJ30pOyAvLyBMZWFkaW5nIHN1cnJvZ2F0ZSBmb2xs
b3dlZCBieSBub24tc3Vycm9nYXRlCi0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRp
b25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlUG9pbnRzKCksIHsweEQ4MDAsICdoJ30p
KTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRv
U3RyaW5nKCkpLmNvZGVVbml0cygpLCB7MHhEODAwLCAnaCd9KSk7Ci0gICAgRVhQRUNUX1RSVUUo
Y29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5ncmFwaGVtZUNs
dXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCksIDEpLCBTdHJpbmdWaWV3KGIu
Y2hhcmFjdGVyczE2KCkgKyAxLCAxKX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0
ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVBvaW50cygpLCB7
MHhEODAwLCAnaCd9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0
cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVVbml0cygpLCB7MHhEODAwLCAnaCd9
KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50
b1N0cmluZygpLnZhbHVlKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi5jaGFy
YWN0ZXJzMTYoKS52YWx1ZSgpLCAxKSwgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVl
KCkgKyAxLCAxKX0pKTsKIAogICAgIGJ1aWxkKGIsIHsweDAzMDZ9KTsgLy8gIkNPTUJJTklORyBC
UkVWRSIKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhi
LnRvU3RyaW5nKCkpLmNvZGVQb2ludHMoKSwgezB4MDMwNn0pKTsKLSAgICBFWFBFQ1RfVFJVRShj
b21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVVbml0cygp
LCB7MHgwMzA2fSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJp
bmdWaWV3KGIudG9TdHJpbmcoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhiLnRv
U3RyaW5nKCkpfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJp
bmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlUG9pbnRzKCksIHsweDAzMDZ9KSk7Cisg
ICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmlu
ZygpLnZhbHVlKCkpLmNvZGVVbml0cygpLCB7MHgwMzA2fSkpOworICAgIEVYUEVDVF9UUlVFKGNv
bXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5ncmFw
aGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKX0pKTsKIAog
ICAgIGJ1aWxkKGIsIHsweDAzMDYsIDB4RDgwMCwgMHhERDU1LCAnaCcsICdlJywgJ2wnLCAnbyd9
KTsgLy8gTWl4IG9mIHNpbmdsZSBjb2RlIHVuaXQgYW5kIG11bHRpIGNvZGUgdW5pdCBjb2RlIHBv
aW50cwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIu
dG9TdHJpbmcoKSkuY29kZVBvaW50cygpLCB7MHgwMzA2LCAweDEwMTU1LCAnaCcsICdlJywgJ2wn
LCAnbyd9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1Zp
ZXcoYi50b1N0cmluZygpKS5jb2RlVW5pdHMoKSwgezB4MDMwNiwgMHhEODAwLCAweERENTUsICdo
JywgJ2UnLCAnbCcsICdvJ30pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlv
bnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwgewotICAgICAg
ICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCksIDEpLAotICAgICAgICBTdHJpbmdWaWV3KGIu
Y2hhcmFjdGVyczE2KCkgKyAxLCAyKSwKLSAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMx
NigpICsgMywgMSksCi0gICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSArIDQsIDEp
LAotICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkgKyA1LCAxKSwKLSAgICAgICAg
U3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpICsgNiwgMSl9KSk7CisgICAgRVhQRUNUX1RSVUUo
Y29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNv
ZGVQb2ludHMoKSwgezB4MDMwNiwgMHgxMDE1NSwgJ2gnLCAnZScsICdsJywgJ28nfSkpOworICAg
IEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmco
KS52YWx1ZSgpKS5jb2RlVW5pdHMoKSwgezB4MDMwNiwgMHhEODAwLCAweERENTUsICdoJywgJ2Un
LCAnbCcsICdvJ30pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3Ry
aW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7CisgICAg
ICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKS52YWx1ZSgpLCAxKSwKKyAgICAgICAgU3Ry
aW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCkgKyAxLCAyKSwKKyAgICAgICAgU3RyaW5n
VmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCkgKyAzLCAxKSwKKyAgICAgICAgU3RyaW5nVmll
dyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCkgKyA0LCAxKSwKKyAgICAgICAgU3RyaW5nVmlldyhi
LmNoYXJhY3RlcnMxNigpLnZhbHVlKCkgKyA1LCAxKSwKKyAgICAgICAgU3RyaW5nVmlldyhiLmNo
YXJhY3RlcnMxNigpLnZhbHVlKCkgKyA2LCAxKX0pKTsKIAogICAgIGJ1aWxkKGIsIHsnZScsIDB4
MDMwMX0pOyAvLyAiQ09NQklOSU5HIEFDVVRFIgotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29w
SXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVBvaW50cygpLCB7J2UnLCAw
eDAzMDF9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1Zp
ZXcoYi50b1N0cmluZygpKS5jb2RlVW5pdHMoKSwgeydlJywgMHgwMzAxfSkpOwotICAgIEVYUEVD
VF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuZ3Jh
cGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpfSkpOworICAgIEVYUEVD
VF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1
ZSgpKS5jb2RlUG9pbnRzKCksIHsnZScsIDB4MDMwMX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21w
YXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVVu
aXRzKCksIHsnZScsIDB4MDMwMX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJh
dGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuZ3JhcGhlbWVDbHVzdGVycygp
LCB7U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSl9KSk7CiAKICAgICBidWlsZChiLCB7
J2UnLCAweDAzMDEsIDB4MDMwNiwgJ2EnfSk7IC8vICJDT01CSU5JTkcgQUNVVEUiICJDT01CSU5J
TkcgQlJFVkUiCi0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1Zp
ZXcoYi50b1N0cmluZygpKS5jb2RlUG9pbnRzKCksIHsnZScsIDB4MDMwMSwgMHgwMzA2LCAnYSd9
KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50
b1N0cmluZygpKS5jb2RlVW5pdHMoKSwgeydlJywgMHgwMzAxLCAweDAzMDYsICdhJ30pKTsKLSAg
ICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5n
KCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwgewotICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVy
czE2KCksIDMpLAotICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkgKyAzLCAxKSwK
KyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3Ry
aW5nKCkudmFsdWUoKSkuY29kZVBvaW50cygpLCB7J2UnLCAweDAzMDEsIDB4MDMwNiwgJ2EnfSkp
OworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9T
dHJpbmcoKS52YWx1ZSgpKS5jb2RlVW5pdHMoKSwgeydlJywgMHgwMzAxLCAweDAzMDYsICdhJ30p
KTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRv
U3RyaW5nKCkudmFsdWUoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7CisgICAgICAgIFN0cmluZ1Zp
ZXcoYi5jaGFyYWN0ZXJzMTYoKS52YWx1ZSgpLCAzKSwKKyAgICAgICAgU3RyaW5nVmlldyhiLmNo
YXJhY3RlcnMxNigpLnZhbHVlKCkgKyAzLCAxKSwKICAgICAgICAgfSkpOwogCiAgICAgYnVpbGQo
YiwgezB4MTExMiwgMHgxMTZmLCAweDExYjYsIDB4MTEwNywgMHgxMTYxLCAweDExQjh9KTsgLy8g
S29yZWFuIGNvbWJpbmluZyBKYW1vCi0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRp
b25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlUG9pbnRzKCksIHsweDExMTIsIDB4MTE2
ZiwgMHgxMWI2LCAweDExMDcsIDB4MTE2MSwgMHgxMUI4fSkpOwotICAgIEVYUEVDVF9UUlVFKGNv
bXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRzKCks
IHsweDExMTIsIDB4MTE2ZiwgMHgxMWI2LCAweDExMDcsIDB4MTE2MSwgMHgxMUI4fSkpOwotICAg
IEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmco
KSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7Ci0gICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJz
MTYoKSwgMyksCi0gICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSArIDMsIDMpfSkp
OworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9T
dHJpbmcoKS52YWx1ZSgpKS5jb2RlUG9pbnRzKCksIHsweDExMTIsIDB4MTE2ZiwgMHgxMWI2LCAw
eDExMDcsIDB4MTE2MSwgMHgxMUI4fSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRl
cmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlVW5pdHMoKSwgezB4
MTExMiwgMHgxMTZmLCAweDExYjYsIDB4MTEwNywgMHgxMTYxLCAweDExQjh9KSk7CisgICAgRVhQ
RUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZh
bHVlKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwgeworICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFj
dGVyczE2KCkudmFsdWUoKSwgMyksCisgICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYo
KS52YWx1ZSgpICsgMywgMyl9KSk7CiB9CiAKIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiB2ZWN0b3JG
cm9tU3BsaXRSZXN1bHQoY29uc3QgU3RyaW5nVmlldzo6U3BsaXRSZXN1bHQmIHN1YnN0cmluZ3Mp
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4
dGVuc2lvbnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRF
eHRlbnNpb25zLmNwcAppbmRleCBkY2NlNDY4Li4wMzgzODY0IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKQEAg
LTEyMDksMTUgKzEyMDksMTggQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBXaWRlTkZB
KQogICAgICAgICB9CiAgICAgfQogICAgIHJ1bGVMaXN0LmFwcGVuZCgnXScpOwotICAgIAotICAg
IGF1dG8gYmFja2VuZCA9IG1ha2VCYWNrZW5kKHJ1bGVMaXN0LnRvU3RyaW5nKCkudXRmOCgpLmRh
dGEoKSk7CiAKLSAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJo
dHRwOi8vd2Via2l0Lm9yZy9BQUEiKSwgeyBDb250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6
Q1NTRGlzcGxheU5vbmVTZWxlY3RvciB9KTsKLSAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWlu
RG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy9ZQUEiKSwgeyBDb250ZW50RXh0ZW5z
aW9uczo6QWN0aW9uVHlwZTo6Q1NTRGlzcGxheU5vbmVTZWxlY3RvciB9KTsKLSAgICB0ZXN0UmVx
dWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy9aQUEi
KSwgeyB9LCAwKTsKLSAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0
KCJodHRwOi8vd2Via2l0Lm9yZy9MQUEvQUFBIiksIHsgfSwgMCk7Ci0gICAgdGVzdFJlcXVlc3Qo
YmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvTEFBL01BQSIp
LCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpDU1NEaXNwbGF5Tm9uZVNlbGVjdG9y
IH0sIDApOwotICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0
dHA6Ly93ZWJraXQub3JnLyIpLCB7IH0pOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJ1bGVMaXN0
LnRvU3RyaW5nKCkpIHsKKyAgICAgICAgYXV0byBiYWNrZW5kID0gbWFrZUJhY2tlbmQoc3RyaW5n
LT51dGY4KCkuZGF0YSgpKTsKKworICAgICAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9j
dW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy9BQUEiKSwgeyBDb250ZW50RXh0ZW5zaW9u
czo6QWN0aW9uVHlwZTo6Q1NTRGlzcGxheU5vbmVTZWxlY3RvciB9KTsKKyAgICAgICAgdGVzdFJl
cXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvWUFB
IiksIHsgQ29udGVudEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6OkNTU0Rpc3BsYXlOb25lU2VsZWN0
b3IgfSk7CisgICAgICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3Qo
Imh0dHA6Ly93ZWJraXQub3JnL1pBQSIpLCB7IH0sIDApOworICAgICAgICB0ZXN0UmVxdWVzdChi
YWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy9MQUEvQUFBIiks
IHsgfSwgMCk7CisgICAgICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVl
c3QoImh0dHA6Ly93ZWJraXQub3JnL0xBQS9NQUEiKSwgeyBDb250ZW50RXh0ZW5zaW9uczo6QWN0
aW9uVHlwZTo6Q1NTRGlzcGxheU5vbmVTZWxlY3RvciB9LCAwKTsKKyAgICAgICAgdGVzdFJlcXVl
c3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvIiksIHsg
fSk7CisgICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAgICAgCiAjaWZkZWYgTkRFQlVH
CkBAIC0xMjQ3LDcgKzEyNTAsMTAgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBMYXJn
ZUp1bXBzKQogICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZChjMik7CiAgICAgICAg
ICAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kKGMzKTsKICAgICAgICAgICAgICAgICAgICAgcGF0
dGVybi5hcHBlbmQoYzQpOwotICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoQ29udGVudEV4
dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rLCBwYXJzZXIuYWRkUGF0
dGVybihwYXR0ZXJuLnRvU3RyaW5nKCksIHRydWUsIHBhdHRlcm5JZCsrKSk7CisgICAgICAgICAg
ICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHBhdHRlcm4udG9TdHJpbmcoKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIEVYUEVDVF9FUShDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFy
c2VyOjpQYXJzZVN0YXR1czo6T2ssIHBhcnNlci5hZGRQYXR0ZXJuKCpzdHJpbmcsIHRydWUsIHBh
dHRlcm5JZCsrKSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAg
ICB9CkBAIC0xMzA4LDE3ICsxMzE0LDIwIEBAIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwg
TGFyZ2VKdW1wcykKICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kKCd4Jyk7
CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgICBhdXRvIG1hdGNoZXMgPSBpbnRlcnByZXRlci5pbnRlcnByZXQo
cGF0dGVybi50b1N0cmluZygpLnV0ZjgoKSwgMCk7Ci0gICAgICAgICAgICAgICAgICAgIHN3aXRj
aCAoKGMxICsgYzIgKyBjMyArIGM0KSAlIDQpIHsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAw
OgotICAgICAgICAgICAgICAgICAgICAgICAgY29tcGFyZUNvbnRlbnRzKG1hdGNoZXMsIHsgfSk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgY2Fz
ZSAxOgotICAgICAgICAgICAgICAgICAgICBjYXNlIDI6Ci0gICAgICAgICAgICAgICAgICAgIGNh
c2UgMzoKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhcmVDb250ZW50cyhtYXRjaGVzLCB7
cGF0dGVybklkfSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBwYXR0ZXJu
LnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gbWF0Y2hlcyA9IGlu
dGVycHJldGVyLmludGVycHJldChzdHJpbmctPnV0ZjgoKSwgMCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBzd2l0Y2ggKChjMSArIGMyICsgYzMgKyBjNCkgJSA0KSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGFyZUNv
bnRlbnRzKG1hdGNoZXMsIHsgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgICAg
ICBjYXNlIDI6CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29tcGFyZUNvbnRlbnRzKG1hdGNoZXMsIHtwYXR0ZXJuSWR9KTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBD
UkFTSCgpOwogICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuSWQrKzsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9CkBAIC0xMzQ4LDEzICsxMzU3LDE5IEBAIFRFU1RfRihDb250ZW50
RXh0ZW5zaW9uVGVzdCwgRGVlcE5GQSkKICAgICBTdHJpbmdCdWlsZGVyIGxvdHNPZkFzOwogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpCiAgICAgICAgIGxvdHNPZkFzLmFw
cGVuZCgnQScpOwotICAgIEVYUEVDVF9FUShDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFy
c2VyOjpQYXJzZVN0YXR1czo6T2ssIHBhcnNlci5hZGRQYXR0ZXJuKGxvdHNPZkFzLnRvU3RyaW5n
KCkudXRmOCgpLmRhdGEoKSwgZmFsc2UsIDApKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBsb3Rz
T2ZBcy50b1N0cmluZygpKQorICAgICAgICBFWFBFQ1RfRVEoQ29udGVudEV4dGVuc2lvbnM6OlVS
TEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rLCBwYXJzZXIuYWRkUGF0dGVybihzdHJpbmct
PnV0ZjgoKS5kYXRhKCksIGZhbHNlLCAwKSk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwog
ICAgIAogICAgIC8vIEZJWE1FOiBZYXJyIG91Z2h0IHRvIGJlIGFibGUgdG8gaGFuZGxlIDJNQiBy
ZWd1bGFyIGV4cHJlc3Npb25zLgogICAgIFN0cmluZ0J1aWxkZXIgdG9vTWFueUFzOwogICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplICogMjA7ICsraSkKICAgICAgICAgdG9vTWFueUFz
LmFwcGVuZCgnQScpOwotICAgIEVYUEVDVF9FUShDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVy
UGFyc2VyOjpQYXJzZVN0YXR1czo6WWFyckVycm9yLCBwYXJzZXIuYWRkUGF0dGVybih0b29NYW55
QXMudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBmYWxzZSwgMCkpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IHRvb01hbnlBcy50b1N0cmluZygpKQorICAgICAgICBFWFBFQ1RfRVEoQ29udGVudEV4
dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6OllhcnJFcnJvciwgcGFyc2Vy
LmFkZFBhdHRlcm4oc3RyaW5nLT51dGY4KCkuZGF0YSgpLCBmYWxzZSwgMCkpOworICAgIGVsc2UK
KyAgICAgICAgQ1JBU0goKTsKICAgICAKICAgICBTdHJpbmdCdWlsZGVyIG5lc3RlZEdyb3VwczsK
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQpAQCAtMTQ5MCwxNyArMTUw
NSwyMiBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIEludmFsaWRKU09OKQogICAgIGNo
ZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcIm5vdGlmeVwiLFwibm90
aWZpY2F0aW9uXCI6W119LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIi4qXCJ9fV0iLCBD
b250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZE5vdGlm
aWNhdGlvbik7CiAgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwi
Olwibm90aWZ5XCIsXCJub3RpZmljYXRpb25cIjpcImhlcmUncyBteSBub3RpZmljYXRpb25cIn0s
XCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiLipcIn19XSIsIHsgfSk7CiAgICAgY2hlY2tD
b21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwibm90aWZ5XCIsXCJub3RpZmlj
YXRpb25cIjpcIlxcdTEyMzRcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiLipcIn19
XSIsIHsgfSk7Ci0gICAgCi0gICAgU3RyaW5nQnVpbGRlciBydWxlczsKLSAgICBydWxlcy5hcHBl
bmQoIlsiKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgNDk5OTk7ICsraSkKLSAgICAg
ICAgcnVsZXMuYXBwZW5kKCJ7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdn
ZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJhXCJ9fSwiKTsKLSAgICBTdHJpbmcgcnVsZXM1MDAwMCA9
IHJ1bGVzLnRvU3RyaW5nKCk7Ci0gICAgU3RyaW5nIHJ1bGVzNTAwMDEgPSBydWxlcy50b1N0cmlu
ZygpOwotICAgIHJ1bGVzNTAwMDAuYXBwZW5kKCJ7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9j
a1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJhXCJ9fV0iKTsKLSAgICBydWxlczUw
MDAxLmFwcGVuZCgie1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6
e1widXJsLWZpbHRlclwiOlwiYVwifX0se1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0s
XCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiYVwifX1dIik7Ci0gICAgY2hlY2tDb21waWxl
ckVycm9yKHJ1bGVzNTAwMDAudXRmOCgpLmRhdGEoKSwgeyB9KTsKLSAgICBjaGVja0NvbXBpbGVy
RXJyb3IocnVsZXM1MDAwMS51dGY4KCkuZGF0YSgpLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVu
dEV4dGVuc2lvbkVycm9yOjpKU09OVG9vTWFueVJ1bGVzKTsKKworICAgIHsKKyAgICAgICAgU3Ry
aW5nQnVpbGRlciBydWxlczsKKyAgICAgICAgcnVsZXMuYXBwZW5kKCJbIik7CisgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCA0OTk5OTsgKytpKQorICAgICAgICAgICAgcnVsZXMuYXBw
ZW5kKCJ7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwt
ZmlsdGVyXCI6XCJhXCJ9fSwiKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcnVsZXMudG9T
dHJpbmcoKSkgeworICAgICAgICAgICAgU3RyaW5nIHJ1bGVzNTAwMDAgPSAqc3RyaW5nOworICAg
ICAgICAgICAgU3RyaW5nIHJ1bGVzNTAwMDEgPSAqc3RyaW5nOworICAgICAgICAgICAgcnVsZXM1
MDAwMC5hcHBlbmQoIntcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwi
OntcInVybC1maWx0ZXJcIjpcImFcIn19XSIpOworICAgICAgICAgICAgcnVsZXM1MDAwMS5hcHBl
bmQoIntcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1m
aWx0ZXJcIjpcImFcIn19LHtcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dl
clwiOntcInVybC1maWx0ZXJcIjpcImFcIn19XSIpOworICAgICAgICAgICAgY2hlY2tDb21waWxl
ckVycm9yKHJ1bGVzNTAwMDAudXRmOCgpLmRhdGEoKSwgeyB9KTsKKyAgICAgICAgICAgIGNoZWNr
Q29tcGlsZXJFcnJvcihydWxlczUwMDAxLnV0ZjgoKS5kYXRhKCksIENvbnRlbnRFeHRlbnNpb25z
OjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Ub29NYW55UnVsZXMpOworICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgIENSQVNIKCk7CisgICAgfQogICAgIAogICAgIGNoZWNrQ29tcGlsZXJF
cnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVy
bC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLWRvbWFpblwiOnt9fX1dIiwgQ29udGVudEV4
dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRDb25kaXRpb25MaXN0
KTsKICAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9j
a1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJpZi1kb21h
aW5cIjpbNV19fV0iLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpK
U09OSW52YWxpZENvbmRpdGlvbkxpc3QpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKaW5kZXggNWYxZGM4Yi4uZTk0ZWZjNCAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCkBA
IC0xMDcsNyArMTA3LDkgQEAgc3RhdGljIFN0cmluZyBjcmVhdGVDb21tYW5kKGNvbnN0IFN0cmlu
ZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBwYXlsb2FkKQogICAgIGNvbW1hbmQuYXBwZW5kTGl0ZXJh
bCgiXCIgPiAiKTsKICAgICBjb21tYW5kLmFwcGVuZChwYXRoKTsKIAotICAgIHJldHVybiBjb21t
YW5kLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gY29tbWFuZC50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3Ry
aW5nIHJlYWRDb250ZW50c09mRmlsZShjb25zdCBTdHJpbmcmIHBhdGgpCkBAIC0yNjcsMTAgKzI2
OSwxMyBAQCBURVNUX0YoRmlsZU1vbml0b3JUZXN0LCBEZXRlY3REZWxldGlvbikKICAgICAgICAg
Y29tbWFuZC5hcHBlbmRMaXRlcmFsKCJybSAtZiAiKTsKICAgICAgICAgY29tbWFuZC5hcHBlbmQo
dGVtcEZpbGVQYXRoKCkpOwogCi0gICAgICAgIGF1dG8gcmMgPSBzeXN0ZW0oY29tbWFuZC50b1N0
cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBBU1NFUlRfTkUocmMsIC0xKTsKLSAgICAg
ICAgaWYgKHJjID09IC0xKQotICAgICAgICAgICAgZGlkRmluaXNoID0gdHJ1ZTsKKyAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gY29tbWFuZC50b1N0cmluZygpKSB7CisgICAgICAgICAgICBhdXRv
IHJjID0gc3lzdGVtKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBBU1NFUlRf
TkUocmMsIC0xKTsKKyAgICAgICAgICAgIGlmIChyYyA9PSAtMSkKKyAgICAgICAgICAgICAgICBk
aWRGaW5pc2ggPSB0cnVlOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAg
ICAgfSk7CiAKICAgICBVdGlsOjpydW4oJmRpZEZpbmlzaCk7CkBAIC0zMjQsMTAgKzMyOSwxMyBA
QCBURVNUX0YoRmlsZU1vbml0b3JUZXN0LCBEZXRlY3RDaGFuZ2VBbmRUaGVuRGVsZXRlKQogICAg
ICAgICBjb21tYW5kLmFwcGVuZExpdGVyYWwoInJtIC1mICIpOwogICAgICAgICBjb21tYW5kLmFw
cGVuZCh0ZW1wRmlsZVBhdGgoKSk7CiAKLSAgICAgICAgYXV0byByYyA9IHN5c3RlbShjb21tYW5k
LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIEFTU0VSVF9ORShyYywgLTEpOwot
ICAgICAgICBpZiAocmMgPT0gLTEpCi0gICAgICAgICAgICBkaWRGaW5pc2ggPSB0cnVlOworICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSBjb21tYW5kLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAg
IGF1dG8gcmMgPSBzeXN0ZW0oc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIEFT
U0VSVF9ORShyYywgLTEpOworICAgICAgICAgICAgaWYgKHJjID09IC0xKQorICAgICAgICAgICAg
ICAgIGRpZEZpbmlzaCA9IHRydWU7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgQ1JBU0go
KTsKICAgICB9KTsKIAogICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoKTsKQEAgLTM2MywxMCArMzcx
LDEzIEBAIFRFU1RfRihGaWxlTW9uaXRvclRlc3QsIERldGVjdERlbGV0ZUJ1dE5vdFN1YnNlcXVl
bnRDaGFuZ2UpCiAgICAgICAgIGNvbW1hbmQuYXBwZW5kTGl0ZXJhbCgicm0gLWYgIik7CiAgICAg
ICAgIGNvbW1hbmQuYXBwZW5kKHRlbXBGaWxlUGF0aCgpKTsKIAotICAgICAgICBhdXRvIHJjID0g
c3lzdGVtKGNvbW1hbmQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgQVNTRVJU
X05FKHJjLCAtMSk7Ci0gICAgICAgIGlmIChyYyA9PSAtMSkKLSAgICAgICAgICAgIGRpZEZpbmlz
aCA9IHRydWU7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGNvbW1hbmQudG9TdHJpbmcoKSkg
eworICAgICAgICAgICAgYXV0byByYyA9IHN5c3RlbShzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOwor
ICAgICAgICAgICAgQVNTRVJUX05FKHJjLCAtMSk7CisgICAgICAgICAgICBpZiAocmMgPT0gLTEp
CisgICAgICAgICAgICAgICAgZGlkRmluaXNoID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICBDUkFTSCgpOwogICAgIH0pOwogCiAgICAgVXRpbDo6cnVuKCZkaWRGaW5pc2gpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0xvZ2dpbmcuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0xvZ2dpbmcuY3BwCmluZGV4IDFl
NGMzNDIuLjdkZWRhZDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9Mb2dnaW5nLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
TG9nZ2luZy5jcHAKQEAgLTk1LDcgKzk1LDkgQEAgcHVibGljOgogICAgICAgICB3aGlsZSAoKGxp
bmUgPSBmZ2V0cyhidWZmZXIsIHNpemVvZihidWZmZXIpLCBtX3N0ZGVycikpKQogICAgICAgICAg
ICAgcmVzdWx0LmFwcGVuZChsaW5lKTsKIAotICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5n
KCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgY29u
c3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xvZ2dlci5nZXQoKTsg
fQpAQCAtMzQwLDE1ICszNDIsMTggQEAgVEVTVF9GKExvZ2dpbmdUZXN0LCBMb2dnZXJIZWxwZXIp
CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJMb2dnaW5nVGVzdDo6VGVzdEJvZHkoIik7CiAg
ICAgYXBwZW5kVW5zaWduZWQ2NEFzSGV4KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihsb2dJ
ZGVudGlmaWVyKCkpLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIikiKTsK
LSAgICBTdHJpbmcgc2lnbmF0dXJlID0gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICBTdHJpbmcgc2lnbmF0dXJl
ID0gKnN0cmluZzsKIAotICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7Ci0gICAgRVhQRUNU
X1RSVUUodGhpcy0+b3V0cHV0KCkuY29udGFpbnMoc2lnbmF0dXJlLCBmYWxzZSkpOworICAgICAg
ICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworICAgICAgICBFWFBFQ1RfVFJVRSh0aGlzLT5v
dXRwdXQoKS5jb250YWlucyhzaWduYXR1cmUsIGZhbHNlKSk7CiAKLSAgICBBTFdBWVNfTE9HKExP
R0lERU5USUZJRVIsICJXZWxjb21lIGJhY2siLCAiIG15IGZyaWVuZHMiLCAiIHRvIHRoZSBzaG93
IiwgIiB0aGF0IG5ldmVyIGVuZHMiKTsKLSAgICBTdHJpbmcgcmVzdWx0ID0gdGhpcy0+b3V0cHV0
KCk7Ci0gICAgRVhQRUNUX1RSVUUocmVzdWx0LmNvbnRhaW5zKHNpZ25hdHVyZSwgZmFsc2UpKTsK
LSAgICBFWFBFQ1RfVFJVRShyZXN1bHQuY29udGFpbnMoInRvIHRoZSBzaG93IHRoYXQgbmV2ZXIi
LCBmYWxzZSkpOworICAgICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICJXZWxjb21lIGJh
Y2siLCAiIG15IGZyaWVuZHMiLCAiIHRvIHRoZSBzaG93IiwgIiB0aGF0IG5ldmVyIGVuZHMiKTsK
KyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IHRoaXMtPm91dHB1dCgpOworICAgICAgICBFWFBFQ1Rf
VFJVRShyZXN1bHQuY29udGFpbnMoc2lnbmF0dXJlLCBmYWxzZSkpOworICAgICAgICBFWFBFQ1Rf
VFJVRShyZXN1bHQuY29udGFpbnMoInRvIHRoZSBzaG93IHRoYXQgbmV2ZXIiLCBmYWxzZSkpOwor
ICAgIH0gZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgV1RGU2V0TG9nQ2hhbm5lbExldmVs
KCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsV2FybmluZyk7CiAKQEAgLTM3MSwxMCArMzc2LDEx
IEBAIHB1YmxpYzoKIAogICAgIFN0cmluZyBsb2coKQogICAgIHsKLSAgICAgICAgU3RyaW5nIGxv
ZyA9IG1fbG9nQnVmZmVyLnRvU3RyaW5nKCk7Ci0gICAgICAgIG1fbG9nQnVmZmVyLmNsZWFyKCk7
Ci0KLSAgICAgICAgcmV0dXJuIGxvZzsKKyAgICAgICAgaWYgKGF1dG8gbG9nID0gbV9sb2dCdWZm
ZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgbV9sb2dCdWZmZXIuY2xlYXIoKTsKKyAgICAg
ICAgICAgIHJldHVybiBsb2c7CisgICAgICAgIH0KKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAK
ICAgICBXVEZMb2dDaGFubmVsIGNoYW5uZWwoKSBjb25zdCB7IHJldHVybiBtX2xhc3RDaGFubmVs
OyB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVGV4dENv
ZGVjLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9UZXh0Q29kZWMuY3Bw
CmluZGV4IGZkMDUwNTAuLjllNTU1MzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9UZXh0Q29kZWMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9UZXh0Q29kZWMuY3BwCkBAIC05OCw3ICs5OCw5IEBAIHN0YXRpYyBjb25zdCBj
aGFyKiB0ZXN0RGVjb2RlKGNvbnN0IGNoYXIqIGVuY29kaW5nTmFtZSwgc3RkOjppbml0aWFsaXpl
cl9saXN0PGNvCiAgICAgICAgIGlmIChzYXdFcnJvcikKICAgICAgICAgICAgIHJlc3VsdEJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiIEVSUk9SIik7CiAgICAgfQotICAgIHJldHVybiBlc2NhcGVOb25B
U0NJSVByaW50YWJsZUNoYXJhY3RlcnMocmVzdWx0QnVpbGRlci50b1N0cmluZygpKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSByZXN1bHRCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biBlc2NhcGVOb25BU0NJSVByaW50YWJsZUNoYXJhY3RlcnMoKnN0cmluZyk7CisgICAgQ1JBU0go
KTsKIH0KIAogVEVTVChUZXh0Q29kZWMsIFVURjgpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1dURlN0cmluZ1V0aWxpdGllcy5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9XVEZTdHJp
bmdVdGlsaXRpZXMuaAppbmRleCBlY2JhOWM0Li5mNWQ0MWVkIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1dURlN0cmluZ1V0aWxpdGllcy5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvV1RGU3RyaW5nVXRpbGl0aWVzLmgKQEAgLTUxLDUgKzUxLDcgQEAgc3RhdGljIFN0cmluZyB1
dGYxNlN0cmluZyhjb25zdCBjaGFyMTZfdCAoJnVybClbbGVuZ3RoXSkKICAgICBidWlsZGVyLnJl
c2VydmVDYXBhY2l0eShsZW5ndGggLSAxKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxl
bmd0aCAtIDE7ICsraSkKICAgICAgICAgYnVpbGRlci5hcHBlbmQoc3RhdGljX2Nhc3Q8VUNoYXI+
KHVybFtpXSkpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCmluZGV4IGJiMzk0NmMuLjJmZDk2
NGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVQYWdlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKQEAgLTEwNiw3ICsxMDYsOSBAQCBzdGF0aWMg
V1RGOjpTdHJpbmcgZHVtcFBhdGgoSlNHbG9iYWxDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0
UmVmIG5vZGVWYWx1ZSkKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoZHVtcFBhdGgoY29u
dGV4dCwgKEpTT2JqZWN0UmVmKXBhcmVudE5vZGUpKTsKICAgICB9CiAKLSAgICByZXR1cm4gc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogc3RhdGljIFdURjo6U3RyaW5nIGR1bXBQYXRoKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1
bmRsZVNjcmlwdFdvcmxkUmVmIHdvcmxkLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgbm9kZSkKQEAg
LTE1Niw3ICsxNTgsOSBAQCBzdGF0aWMgV1RGOjpTdHJpbmcgcmFuZ2VUb1N0cihXS0J1bmRsZVBh
Z2VSZWYgcGFnZSwgV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiB3b3JsZAogICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kTnVtYmVyKGVuZE9mZnNldCk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRl
cmFsKCIgb2YgIik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoZHVtcFBhdGgoY29udGV4dCwg
ZW5kTm9kZU9iamVjdCkpOwotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IE5hdmlnYXRpb25UeXBlVG9TdHJpbmcoV0tGcmFtZU5hdmlnYXRpb25UeXBlIHR5
cGUpCkBAIC0xODUsNyArMTg5LDkgQEAgc3RhdGljIFdURjo6U3RyaW5nIHN0eWxlRGVjVG9TdHIo
V0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uUmVmIHN0eWxlKQogICAgIC8vIHRoZSBlZGl0aW5n
IGNsaWVudCBpZiB0aGUgc3R5bGluZyBvcGVyYXRpb24gc291cmNlIGlzIENvbW1hbmRGcm9tRE9N
IG9yIENvbW1hbmRGcm9tRE9NV2l0aFVzZXJJbnRlcmZhY2UuCiAgICAgU3RyaW5nQnVpbGRlciBz
dHJpbmdCdWlsZGVyOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPERPTUNTU1N0
eWxlRGVjbGFyYXRpb24gQUREUkVTUz4iKTsKLSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFdURjo6
U3RyaW5nIHNlY3VyaXR5T3JpZ2luVG9TdHIoV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4pCkBA
IC0xOTksNyArMjA1LDkgQEAgc3RhdGljIFdURjo6U3RyaW5nIHNlY3VyaXR5T3JpZ2luVG9TdHIo
V0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4pCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1i
ZXIoV0tTZWN1cml0eU9yaWdpbkdldFBvcnQob3JpZ2luKSk7CiAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmQoJ30nKTsKIAotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgV1RGOjpTdHJpbmcgZnJhbWVU
b1N0cihXS0J1bmRsZUZyYW1lUmVmIGZyYW1lKQpAQCAtMjIzLDcgKzIzMSw5IEBAIHN0YXRpYyBX
VEY6OlN0cmluZyBmcmFtZVRvU3RyKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUpCiAgICAgICAgICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoImZyYW1lIChhbm9ueW1vdXMpIik7CiAgICAg
fQogICAgIAotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgaXNMb2NhbEZpbGVT
Y2hlbWUoV0tTdHJpbmdSZWYgc2NoZW1lKQpAQCAtNDc2LDcgKzQ4NiwxMCBAQCBzdGF0aWMgdm9p
ZCBkdW1wTG9hZEV2ZW50KFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IGNoYXIqIGV2ZW50
TmFtZSkKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiAtICIpOwogICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kKGV2ZW50TmFtZSk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xu
Jyk7Ci0gICAgSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLm91dHB1dFRleHQoc3RyaW5nQnVp
bGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgIEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5vdXRwdXRUZXh0
KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIGlubGlu
ZSB2b2lkIGR1bXBSZXF1ZXN0RGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQoV0tVUkxS
ZXF1ZXN0UmVmIHJlcXVlc3QsIFN0cmluZ0J1aWxkZXImIHN0cmluZ0J1aWxkZXIpCkBAIC05NDAs
NyArOTUzLDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkdW1wKCkKICAgICAgICAgICAg
IGluamVjdGVkQnVuZGxlLnNldFJlcGFpbnRSZWN0cyhhZG9wdFdLKFdLQnVuZGxlUGFnZUNvcHlU
cmFja2VkUmVwYWludFJlY3RzKG1fcGFnZSkpLmdldCgpKTsKICAgICB9CiAKLSAgICBpbmplY3Rl
ZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1
bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAg
ICBpbmplY3RlZEJ1bmRsZS5kb25lKCk7CiB9CiAKQEAgLTk4OCw3ICsxMDA0LDEwIEBAIHZvaWQg
SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXS1N0cmluZ1JlZiB0
aXRsZSwgV0tCdW5kbGVGcmFtCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
J1xuIik7CiAgICAgfQogCi0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWls
ZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAg
ICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpk
aWRDbGVhcldpbmRvd0ZvckZyYW1lKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLQnVuZGxlU2Ny
aXB0V29ybGRSZWYgd29ybGQpCkBAIC0xMDQzLDcgKzEwNjIsMTAgQEAgdm9pZCBJbmplY3RlZEJ1
bmRsZVBhZ2U6OndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VS
ZWYsIFdLQnUKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiAtIHdpbGxQZXJmb3Jt
Q2xpZW50UmVkaXJlY3RUb1VSTDogIik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQocGF0aFN1
aXRhYmxlRm9yVGVzdFJlc3VsdCh1cmwpKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVy
YWwoIiBcbiIpOwotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50
b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxz
ZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkU2Ft
ZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLU2Ft
ZURvY3VtZW50TmF2aWdhdGlvblR5cGUgdHlwZSkKQEAgLTEwNzcsNyArMTA5OSwxMCBAQCB2b2lk
IEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUoV0tCdW5k
bGVGcmFtZVJlZiBmcmFtZSkKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIg
LSBoYXMgIik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKHBlbmRpbmdGcmFt
ZVVubG9hZEV2ZW50cyk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIG9u
dW5sb2FkIGhhbmRsZXIocylcbiIpOwotICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0
KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1
dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAg
fQogfQogCkBAIC0xMTUwLDcgKzExNzUsMTAgQEAgV0tVUkxSZXF1ZXN0UmVmIEluamVjdGVkQnVu
ZGxlUGFnZTo6d2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UKICAg
ICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgcmVkaXJlY3RSZXNwb25zZSAiKTsK
ICAgICAgICAgZHVtcFJlc3BvbnNlRGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQocmVz
cG9uc2UsIHN0cmluZ0J1aWxkZXIsIGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxk
RHVtcEFsbEhUVFBSZWRpcmVjdGVkUmVzcG9uc2VIZWFkZXJzKCkpOwogICAgICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChz
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRU
ZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0K
IAogICAgIGlmIChpbmplY3RlZEJ1bmRsZS5pc1Rlc3RSdW5uaW5nKCkgJiYgaW5qZWN0ZWRCdW5k
bGUudGVzdFJ1bm5lcigpLT53aWxsU2VuZFJlcXVlc3RSZXR1cm5zTnVsbCgpKQpAQCAtMTE4Niw3
ICsxMjE0LDEwIEBAIFdLVVJMUmVxdWVzdFJlZiBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxTZW5k
UmVxdWVzdEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlCiAgICAgICAgICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZExpdGVyYWwoIkJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCAiKTsK
ICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5nKHVybFN0cmluZykp
OwogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgICAgICBp
bmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAg
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMjE1LDcgKzEyNDYsMTAgQEAgdm9pZCBJbmpl
Y3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVSZXNwb25zZUZvclJlc291cmNlKFdLQnVuZGxlUGFn
ZVJlZiBwYWdlLCBXS0IKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgLSBk
aWRSZWNlaXZlUmVzcG9uc2UgIik7CiAgICAgICAgIGR1bXBSZXNwb25zZURlc2NyaXB0aW9uU3Vp
dGFibGVGb3JUZXN0UmVzdWx0KHJlc3BvbnNlLCBzdHJpbmdCdWlsZGVyKTsKICAgICAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRl
eHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
c3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0
cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAg
ICB9CiAKIApAQCAtMTIzOSw3ICsxMjczLDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpk
aWRSZWNlaXZlUmVzcG9uc2VGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCCiAK
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKIAotICAgIGluamVjdGVkQnVuZGxlLm91
dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1
dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIElu
amVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGhGb3JSZXNvdXJjZShXS0J1
bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIHVpbnQ2NF90LCB1aW50NjRfdCkKQEAgLTEy
NTgsNyArMTI5NSwxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmluaXNoTG9hZEZv
clJlc291cmNlKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZQogICAgIFN0cmluZ0J1aWxk
ZXIgc3RyaW5nQnVpbGRlcjsKICAgICBkdW1wUmVzb3VyY2VVUkwoaWRlbnRpZmllciwgc3RyaW5n
QnVpbGRlcik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgLSBkaWRGaW5pc2hM
b2FkaW5nXG4iKTsKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIu
dG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVs
c2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZh
aWxMb2FkRm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCB1aW50
NjRfdCBpZGVudGlmaWVyLCBXS0Vycm9yUmVmIGVycm9yKQpAQCAtMTI3Niw3ICsxMzE2LDEwIEBA
IHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRGYWlsTG9hZEZvclJlc291cmNlKFdLQnVuZGxl
UGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlCiAKICAgICBkdW1wRXJyb3JEZXNjcmlwdGlvblN1aXRh
YmxlRm9yVGVzdFJlc3VsdChlcnJvciwgc3RyaW5nQnVpbGRlcik7CiAgICAgc3RyaW5nQnVpbGRl
ci5hcHBlbmQoJ1xuJyk7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWls
ZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAg
ICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpz
aG91bGRDYWNoZVJlc3BvbnNlKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgdWlu
dDY0X3QgaWRlbnRpZmllcikKQEAgLTEyOTEsNyArMTMzNCwxMCBAQCBib29sIEluamVjdGVkQnVu
ZGxlUGFnZTo6c2hvdWxkQ2FjaGVSZXNwb25zZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJh
bWVSZWYsCiAgICAgU3RyaW5nQnVpbGRlciBzdHJpbmdCdWlsZGVyOwogICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kTnVtYmVyKGlkZW50aWZpZXIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiIC0gd2lsbENhY2hlUmVzcG9uc2U6IGNhbGxlZFxuIik7Ci0gICAgaW5qZWN0ZWRCdW5k
bGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUu
b3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAgICAv
LyBUaGUgZGVmYXVsdCBiZWhhdmlvciBpcyB0aGUgY2FjaGUgdGhlIHJlc3BvbnNlLgogICAgIHJl
dHVybiB0cnVlOwpAQCAtMTMzNSw3ICsxMzgxLDEwIEBAIFdLQnVuZGxlUGFnZVBvbGljeUFjdGlv
biBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV0tC
CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIHNob3VsZCBvcGVuIFVSTHMg
ZXh0ZXJuYWxseSAtICIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChXS0J1bmRsZU5h
dmlnYXRpb25BY3Rpb25HZXRTaG91bGRPcGVuRXh0ZXJuYWxVUkxzKG5hdmlnYXRpb25BY3Rpb24p
ID8gInllcyIgOiAibm8iKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0g
ICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygp
KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBpZiAoIWluamVjdGVkQnVu
ZGxlLnRlc3RSdW5uZXIoKS0+aXNQb2xpY3lEZWxlZ2F0ZUVuYWJsZWQoKSkKQEAgLTEzNjMsNyAr
MTQxMiwxMCBAQCBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb24gSW5qZWN0ZWRCdW5kbGVQYWdlOjpk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdLQgogICAgIH0KIAogICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5n
QnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7
CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgaW5qZWN0ZWRCdW5kbGUudGVzdFJ1
bm5lcigpLT5ub3RpZnlEb25lKCk7CiAKQEAgLTEzODQsNyArMTQzNiwxMCBAQCBXS0J1bmRsZVBh
Z2VQb2xpY3lBY3Rpb24gSW5qZWN0ZWRCdW5kbGVQYWdlOjpkZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZShXS0J1bmRsZVBhZwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIlBvbGlj
eSBkZWxlZ2F0ZTogcmVzb3VyY2UgaXMgYW4gYXR0YWNobWVudCwgc3VnZ2VzdGVkIGZpbGUgbmFt
ZSBcJyIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhmaWxlbmFt
ZSkpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIlwnXG4iKTsKLSAgICAg
ICAgSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50
b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICAgICAgSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLm91dHB1dFRl
eHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQog
CiAgICAgcmV0dXJuIFdLQnVuZGxlUGFnZVBvbGljeUFjdGlvblBhc3NUaHJvdWdoOwpAQCAtMTQ3
NywxMCArMTUzMiwxMyBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6d2lsbEFkZE1lc3NhZ2VU
b0NvbnNvbGUoV0tTdHJpbmdSZWYgbWVzc2FnZSwgdWludDMyX3QgbAogICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kKG1lc3NhZ2VTdHJpbmcpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicp
OwogCi0gICAgaWYgKGluamVjdGVkQnVuZGxlLmR1bXBKU0NvbnNvbGVMb2dJblN0ZEVycigpKQot
ICAgICAgICBpbmplY3RlZEJ1bmRsZS5kdW1wVG9TdGRFcnIoc3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpKTsKLSAgICBlbHNlCi0gICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5n
QnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCkpIHsKKyAgICAgICAgaWYgKGluamVjdGVkQnVuZGxlLmR1bXBKU0NvbnNvbGVM
b2dJblN0ZEVycigpKQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUuZHVtcFRvU3RkRXJyKCpz
dHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRU
ZXh0KCpzdHJpbmcpOworICAgIH0gZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIElu
amVjdGVkQnVuZGxlUGFnZTo6d2lsbFNldFN0YXR1c2JhclRleHQoV0tTdHJpbmdSZWYgc3RhdHVz
YmFyVGV4dCkKQEAgLTE0OTYsNyArMTU1NCwxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6
d2lsbFNldFN0YXR1c2JhclRleHQoV0tTdHJpbmdSZWYgc3RhdHVzYmFyVGV4dCkKICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIlVJIERFTEVHQVRFIFNUQVRVUyBDQUxMQkFDSzogc2V0
U3RhdHVzVGV4dDoiKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhzdGF0
dXNiYXJUZXh0KSk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgaW5qZWN0
ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRC
dW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9
CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUnVuSmF2YVNjcmlwdEFsZXJ0KFdLU3Ry
aW5nUmVmIG1lc3NhZ2UsIFdLQnVuZGxlRnJhbWVSZWYpCkBAIC0xNTA5LDcgKzE1NzAsMTAgQEAg
dm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxSdW5KYXZhU2NyaXB0QWxlcnQoV0tTdHJpbmdS
ZWYgbWVzc2FnZSwgV0tCdW5kbGVGcmEKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwo
IkFMRVJUOiAiKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhtZXNzYWdl
KSk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgaW5qZWN0ZWRCdW5kbGUu
b3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0
cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQg
SW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUnVuSmF2YVNjcmlwdENvbmZpcm0oV0tTdHJpbmdSZWYg
bWVzc2FnZSwgV0tCdW5kbGVGcmFtZVJlZikKQEAgLTE1MjIsNyArMTU4NiwxMCBAQCB2b2lkIElu
amVjdGVkQnVuZGxlUGFnZTo6d2lsbFJ1bkphdmFTY3JpcHRDb25maXJtKFdLU3RyaW5nUmVmIG1l
c3NhZ2UsIFdLQnVuZGxlRgogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiQ09ORklS
TTogIik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQodG9XVEZTdHJpbmcobWVzc2FnZSkpOwog
ICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIGluamVjdGVkQnVuZGxlLm91dHB1
dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBz
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRl
eHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEluamVj
dGVkQnVuZGxlUGFnZTo6d2lsbFJ1bkphdmFTY3JpcHRQcm9tcHQoV0tTdHJpbmdSZWYgbWVzc2Fn
ZSwgV0tTdHJpbmdSZWYgZGVmYXVsdFZhbHVlLCBXS0J1bmRsZUZyYW1lUmVmKQpAQCAtMTUzMyw3
ICsxNjAwLDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUnVuSmF2YVNjcmlwdFBy
b21wdChXS1N0cmluZ1JlZiBtZXNzYWdlLCBXS1N0cmluZ1JlCiAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmRMaXRlcmFsKCIsIGRlZmF1bHQgdGV4dDogIik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmQodG9XVEZTdHJpbmcoZGVmYXVsdFZhbHVlKSk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQo
J1xuJyk7Ci0gICAgSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLm91dHB1dFRleHQoc3RyaW5n
QnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5vdXRwdXRU
ZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbmpl
Y3RlZEJ1bmRsZVBhZ2U6OmRpZFJlYWNoQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdLU2Vj
dXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQpCkBAIC0xNTUy
LDcgKzE2MjIsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlYWNoQXBwbGljYXRp
b25DYWNoZU9yaWdpblF1b3RhKFdLU2VjdXJpdHlPcmlnaW5SZWYKICAgICAgICAgc3RyaW5nQnVp
bGRlci5hcHBlbmRMaXRlcmFsKCIgdG90YWxTcGFjZU5lZWRlZDp+Iik7CiAgICAgICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kTnVtYmVyKHRydW5jYXRlZFNwYWNlTmVlZGVkKTsKICAgICAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRl
eHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
c3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0
cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAg
ICB9CiAKICAgICBpZiAoaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGREaXNhbGxv
d0luY3JlYXNlRm9yQXBwbGljYXRpb25DYWNoZVF1b3RhKCkpCkBAIC0xNTcyLDcgKzE2NDUsMTAg
QEAgdWludDY0X3QgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRFeGNlZWREYXRhYmFzZVF1b3RhKFdL
U2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLAogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExp
dGVyYWwoIiBkYXRhYmFzZToiKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQodG9XVEZT
dHJpbmcoZGF0YWJhc2VOYW1lKSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicp
OwotICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgdWludDY0X3QgZGVm
YXVsdFF1b3RhID0gNSAqIDEwMjQgKiAxMDI0OwpAQCAtMTU5MSw3ICsxNjY3LDEwIEBAIHVpbnQ2
NF90IEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRXhjZWVkRGF0YWJhc2VRdW90YShXS1NlY3VyaXR5
T3JpZ2luUmVmIG9yaWdpbiwKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiVUkgREVMRUdBVEUgREFUQUJBU0UgQ0FMTEJBQ0s6IGluY3JlYXNlZCBxdW90YSB0byAiKTsK
ICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKG5ld1F1b3RhKTsKICAgICAg
ICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICAgICAgaW5qZWN0ZWRC
dW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAg
ICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4g
bmV3UXVvdGE7CkBAIC0xNjY1LDcgKzE3NDQsMTAgQEAgYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6
OnNob3VsZEJlZ2luRWRpdGluZyhXS0J1bmRsZVJhbmdlSGFuZGxlUmVmIHJhbmdlKQogICAgICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIkVESVRJTkcgREVMRUdBVEU6IHNob3VsZEJl
Z2luRWRpdGluZ0luRE9NUmFuZ2U6Iik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHJh
bmdlVG9TdHIobV9wYWdlLCBtX3dvcmxkLmdldCgpLCByYW5nZSkpOwogICAgICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChz
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRU
ZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0K
ICAgICByZXR1cm4gaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGRBbGxvd0VkaXRp
bmcoKTsKIH0KQEAgLTE2ODEsNyArMTc2MywxMCBAQCBib29sIEluamVjdGVkQnVuZGxlUGFnZTo6
c2hvdWxkRW5kRWRpdGluZyhXS0J1bmRsZVJhbmdlSGFuZGxlUmVmIHJhbmdlKQogICAgICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIkVESVRJTkcgREVMRUdBVEU6IHNob3VsZEVuZEVk
aXRpbmdJbkRPTVJhbmdlOiIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChyYW5nZVRv
U3RyKG1fcGFnZSwgbV93b3JsZC5nZXQoKSwgcmFuZ2UpKTsKICAgICAgICAgc3RyaW5nQnVpbGRl
ci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5n
QnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgq
c3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAg
cmV0dXJuIGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkQWxsb3dFZGl0aW5nKCk7
CiB9CkBAIC0xNzA3LDcgKzE3OTIsMTAgQEAgYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3Vs
ZEluc2VydE5vZGUoV0tCdW5kbGVOb2RlSGFuZGxlUmVmIG5vZGUsIFdLQnVuZGxlUmEKICAgICAg
ICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgZ2l2ZW5BY3Rpb246Iik7CiAgICAgICAg
IHN0cmluZ0J1aWxkZXIuYXBwZW5kKGluc2VydGFjdGlvbnN0cmluZ1thY3Rpb25dKTsKICAgICAg
ICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91
dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5k
bGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0go
KTsKICAgICB9CiAgICAgcmV0dXJuIGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxk
QWxsb3dFZGl0aW5nKCk7CiB9CkBAIC0xNzMzLDcgKzE4MjEsMTAgQEAgYm9vbCBJbmplY3RlZEJ1
bmRsZVBhZ2U6OnNob3VsZEluc2VydFRleHQoV0tTdHJpbmdSZWYgdGV4dCwgV0tCdW5kbGVSYW5n
ZUhhbmRsZVIKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgZ2l2ZW5BY3Rp
b246Iik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGluc2VydGFjdGlvbnN0cmluZ1th
Y3Rpb25dKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGlu
amVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAg
ICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgcmV0dXJuIGluamVjdGVkQnVuZGxlLnRlc3RS
dW5uZXIoKS0+c2hvdWxkQWxsb3dFZGl0aW5nKCk7CiB9CkBAIC0xNzQ5LDcgKzE4NDAsMTAgQEAg
Ym9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZERlbGV0ZVJhbmdlKFdLQnVuZGxlUmFuZ2VI
YW5kbGVSZWYgcmFuZ2UpCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRURJ
VElORyBERUxFR0FURTogc2hvdWxkRGVsZXRlRE9NUmFuZ2U6Iik7CiAgICAgICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kKHJhbmdlVG9TdHIobV9wYWdlLCBtX3dvcmxkLmdldCgpLCByYW5nZSkpOwog
ICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5k
bGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0
byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3Rl
ZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBD
UkFTSCgpOwogICAgIH0KICAgICByZXR1cm4gaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5z
aG91bGRBbGxvd0VkaXRpbmcoKTsKIH0KQEAgLTE3ODAsNyArMTg3NCwxMCBAQCBib29sIEluamVj
dGVkQnVuZGxlUGFnZTo6c2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZShXS0J1bmRsZVJhbmdlSGFu
ZGxlUmVmIGZyb21SYQogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiBzdGls
bFNlbGVjdGluZzoiKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoYm9vbHN0cmluZ1tz
dGlsbFNlbGVjdGluZ10pOyAKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0g
ICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygp
KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgcmV0dXJuIGluamVjdGVkQnVu
ZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkQWxsb3dFZGl0aW5nKCk7CiB9CkBAIC0xNzk4LDcgKzE4
OTUsMTAgQEAgYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEFwcGx5U3R5bGUoV0tCdW5k
bGVDU1NTdHlsZURlY2xhcmF0aW9uUmVmIHN0eWxlLAogICAgICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZExpdGVyYWwoIiB0b0VsZW1lbnRzSW5ET01SYW5nZToiKTsKICAgICAgICAgc3RyaW5nQnVp
bGRlci5hcHBlbmQocmFuZ2VUb1N0cihtX3BhZ2UsIG1fd29ybGQuZ2V0KCksIHJhbmdlKSk7CiAg
ICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBpbmplY3RlZEJ1bmRs
ZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGluamVjdGVk
QnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENS
QVNIKCk7CiAgICAgfQogICAgIHJldHVybiBpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNo
b3VsZEFsbG93RWRpdGluZygpOwogfQpAQCAtMTgxNSw3ICsxOTE1LDEwIEBAIHZvaWQgSW5qZWN0
ZWRCdW5kbGVQYWdlOjpkaWRCZWdpbkVkaXRpbmcoV0tTdHJpbmdSZWYgbm90aWZpY2F0aW9uTmFt
ZSkKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIkVESVRJTkcgREVMRUdBVEU6IHdl
YlZpZXdEaWRCZWdpbkVkaXRpbmc6Iik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQodG9XVEZT
dHJpbmcobm90aWZpY2F0aW9uTmFtZSkpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicp
OwotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygp
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAg
ICBDUkFTSCgpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRW5kRWRpdGluZyhX
S1N0cmluZ1JlZiBub3RpZmljYXRpb25OYW1lKQpAQCAtMTgzMCw3ICsxOTMzLDEwIEBAIHZvaWQg
SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRFbmRFZGl0aW5nKFdLU3RyaW5nUmVmIG5vdGlmaWNhdGlv
bk5hbWUpCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJFRElUSU5HIERFTEVHQVRF
OiB3ZWJWaWV3RGlkRW5kRWRpdGluZzoiKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dU
RlN0cmluZyhub3RpZmljYXRpb25OYW1lKSk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xu
Jyk7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAg
ICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRDaGFuZ2UoV0tT
dHJpbmdSZWYgbm90aWZpY2F0aW9uTmFtZSkKQEAgLTE4NDUsNyArMTk1MSwxMCBAQCB2b2lkIElu
amVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2hhbmdlKFdLU3RyaW5nUmVmIG5vdGlmaWNhdGlvbk5hbWUp
CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJFRElUSU5HIERFTEVHQVRFOiB3ZWJW
aWV3RGlkQ2hhbmdlOiIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5nKG5v
dGlmaWNhdGlvbk5hbWUpKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBp
bmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpbmpl
Y3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0go
KTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZENoYW5nZVNlbGVjdGlvbihXS1N0
cmluZ1JlZiBub3RpZmljYXRpb25OYW1lKQpAQCAtMTg2MCw3ICsxOTY5LDEwIEBAIHZvaWQgSW5q
ZWN0ZWRCdW5kbGVQYWdlOjpkaWRDaGFuZ2VTZWxlY3Rpb24oV0tTdHJpbmdSZWYgbm90aWZpY2F0
aW9uTmFtZSkKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIkVESVRJTkcgREVMRUdB
VEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246Iik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmQodG9XVEZTdHJpbmcobm90aWZpY2F0aW9uTmFtZSkpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kKCdcbicpOwotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50
b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxz
ZQorICAgICAgICBDUkFTSCgpOwogfQogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHAKaW5kZXggZTYyZWI5My4uOTI2ODg0OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xNjc4LDEwICsxNjc4LDEz
IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c3RhdGlzdGljc0RpZFJ1blRlbGVtZXRyeUNhbGxiYWNrKHVu
c2lnbmVkIHRvdGFsUHJldmFsZW50UmVzb3VyCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRl
cmFsKCIsIFwidG9wM1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbnNcIiA6ICIpOwogICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKHRvcDNTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5z
KTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiB9Iik7CisKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgSlNWYWx1ZVJl
ZiByZXN1bHQgPSBKU1ZhbHVlTWFrZUZyb21KU09OU3RyaW5nKGNvbnRleHQsIEpTU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZy0+dXRmOCgpLmRhdGEoKSkpOwogICAgIAotICAgIEpT
VmFsdWVSZWYgcmVzdWx0ID0gSlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmluZyhjb250ZXh0LCBKU1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgp
LmRhdGEoKSkpOwotICAgIAotICAgIGNhbGxUZXN0UnVubmVyQ2FsbGJhY2soU3RhdGlzdGljc0Rp
ZFJ1blRlbGVtZXRyeUNhbGxiYWNrSUQsIDEsICZyZXN1bHQpOworICAgICAgICBjYWxsVGVzdFJ1
bm5lckNhbGxiYWNrKFN0YXRpc3RpY3NEaWRSdW5UZWxlbWV0cnlDYWxsYmFja0lELCAxLCAmcmVz
dWx0KTsKKyAgICB9IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBUZXN0UnVubmVy
OjpzdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKQpAQCAtMTg5MSwxMCArMTg5NCwxMyBAQCB2b2lk
IFRlc3RSdW5uZXI6OmNhbGxEaWRSZWNlaXZlQWxsU3RvcmFnZUFjY2Vzc0VudHJpZXNDYWxsYmFj
ayhWZWN0b3I8U3RyaW5nPiYgZAogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwo
IlwiIik7CiAgICAgfQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXSIpOwotICAg
IAotICAgIEpTVmFsdWVSZWYgcmVzdWx0ID0gSlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmluZyhjb250
ZXh0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCkudXRmOCgpLmRhdGEoKSkpOwogCi0gICAgY2FsbFRlc3RSdW5uZXJDYWxsYmFjayhBbGxTdG9y
YWdlQWNjZXNzRW50cmllc0NhbGxiYWNrSUQsIDEsICZyZXN1bHQpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICBKU1ZhbHVlUmVmIHJl
c3VsdCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmcoY29udGV4dCwgSlNTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoc3RyaW5nLT51dGY4KCkuZGF0YSgpKSk7CisKKyAgICAgICAgY2FsbFRl
c3RSdW5uZXJDYWxsYmFjayhBbGxTdG9yYWdlQWNjZXNzRW50cmllc0NhbGxiYWNrSUQsIDEsICZy
ZXN1bHQpOworICAgIH0gZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiAjaWYgUExBVEZPUk0o
TUFDKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCA2OGM0
OWM4Li5mM2JhN2ZkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNw
cApAQCAtMTg4MSw3ICsxODgxLDEwIEBAIFdLU3RyaW5nUmVmIFRlc3RDb250cm9sbGVyOjpkZWNp
ZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShXS0NvbnRleHRSZWYsCiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCJEb3dubG9hZGluZyBVUkwgd2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUg
XCIiKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoc3VnZ2VzdGVkRmlsZW5hbWUpOwogICAgICAg
ICBidWlsZGVyLmFwcGVuZCgiXCJcbiIpOwotICAgICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5v
dXRwdXRUZXh0KGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPm91
dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAg
ICAgfQogCiAgICAgY29uc3QgY2hhciogZHVtcFJlbmRlclRyZWVUZW1wID0gbGlicmFyeVBhdGhG
b3JUZXN0aW5nKCk7CkBAIC0xOTExLDcgKzE5MTQsMTAgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6
ZG93bmxvYWREaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RUb1VSTChXS0NvbnRleHRSZWYsIFdLRG93
bmwKICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHVybFN0cmluZ1dLID0gYWRvcHRX
SyhXS1VSTENvcHlTdHJpbmcodXJsKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHRvU1REKHVy
bFN0cmluZ1dLKS5jX3N0cigpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcIi5c
biIpOwotICAgICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KGJ1aWxkZXIudG9T
dHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPm91dHB1dFRleHQoKnN0cmluZyk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogfQogCkBAIC0xOTM0LDcg
KzE5NDAsMTAgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRGYWlsKFdLQ29udGV4
dFJlZiwgV0tEb3dubG9hZFJlZiwgV0tFcnJvclJlZiBlcnIKICAgICAgICAgZXJyb3JCdWlsZGVy
LmFwcGVuZCh0b1dURlN0cmluZyhlcnJvckRlc2NyaXB0aW9uKSk7CiAgICAgICAgIGVycm9yQnVp
bGRlci5hcHBlbmQoIlxuIik7CiAKLSAgICAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+b3V0cHV0
VGV4dChlcnJvckJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IGVycm9yQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgbV9jdXJyZW50SW52b2NhdGlv
bi0+b3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0go
KTsKICAgICB9CiAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+bm90aWZ5RG93bmxvYWREb25lKCk7
CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IGNkNWRi
MGEuLmVlMmY1NTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9j
YXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3Bw
CkBAIC0yNDgsOSArMjQ4LDEyIEBAIHZvaWQgVGVzdEludm9jYXRpb246OmZvcmNlUmVwYWludERv
bmVDYWxsYmFjayhXS0Vycm9yUmVmIGVycm9yLCB2b2lkKiBjb250ZXh0KQogCiB2b2lkIFRlc3RJ
bnZvY2F0aW9uOjpkdW1wUmVzdWx0cygpCiB7Ci0gICAgaWYgKG1fdGV4dE91dHB1dC5sZW5ndGgo
KSB8fCAhbV9hdWRpb1Jlc3VsdCkKLSAgICAgICAgZHVtcChtX3RleHRPdXRwdXQudG9TdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKLSAgICBlbHNlCisgICAgaWYgKG1fdGV4dE91dHB1dC5sZW5ndGgo
KSB8fCAhbV9hdWRpb1Jlc3VsdCkgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBtX3RleHRP
dXRwdXQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGR1bXAoc3RyaW5nLT51dGY4KCkuZGF0YSgp
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKKyAgICB9IGVsc2UKICAgICAg
ICAgZHVtcEF1ZGlvKG1fYXVkaW9SZXN1bHQuZ2V0KCkpOwogCiAgICAgaWYgKG1fZHVtcFBpeGVs
cykgewotLSAKMi45LjMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339231</attachid>
            <date>2018-05-01 15:35:43 -0700</date>
            <delta_ts>2018-05-01 16:01:48 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Teach-StringBuilder-that-it-is-fallible.patch</filename>
            <type>text/plain</type>
            <size>481746</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSBlNjU3N2YzZTMwNGMwYjFmOWNiZmJlNDhkNzVlNDNkNjVmNDA2YjkwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBXZWQsIDI1IEFwciAyMDE4IDIxOjUwOjI0IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gVGVhY2gg
U3RyaW5nQnVpbGRlciB0aGF0IGl0IGlzIGZhbGxpYmxlCgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcCAgICAgICAgIHwgICA0ICstCiAuLi4vQVBJL3Rlc3Rz
L0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwICAgICAgICAgICB8IDMxMCArKysrKysrLS0tLS0t
CiAuLi4vQVBJL3Rlc3RzL1BpbmdQb25nU3RhY2tPdmVyZmxvd1Rlc3QuY3BwICAgICAgICB8ICAg
OSArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
fCAgOTUgKysrKwogLi4uL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCAgICAgICAg
ICAgICAgfCAgMTcgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBTbmFwc2hvdEJ1
aWxkZXIuY3BwIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNv
bGVNZXNzYWdlLmNwcCB8ICAxMyArLQogLi4uL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0
aWVzLmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9JbnRlcnByZXRlci5jcHAgIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcCB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAgICAgICAgICAgICAgICAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwICAgICAgIHwgICA5ICstCiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcCAgICB8ICAxNSArLQogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwICAgfCAgIDQgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwICAgIHwgICA0ICstCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcCB8ICAgNCAr
LQogLi4uL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgfCAg
MzQgKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAg
IHwgICA2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcCAg
ICAgICB8ICAxOCArLQogLi4uL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwICAg
ICAgICAgICAgfCAgMjEgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmpl
Y3QuY3BwICAgICAgIHwgIDE4ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRl
cmFsUGFyc2VyLmNwcCAgICB8ICAxMCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3B0aW9ucy5jcHAgICAgICAgICAgfCAgMTAgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAgIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcCB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAgICAgICAgfCAgIDQgKy0KIC4uLi9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcCAgIHwgICA0ICstCiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwICB8ICAgNCArLQogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmNwcCAgICAgfCAgIDYgKy0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVTZXQuY3BwICAgICAgICAgIHwgIDIzICst
CiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAgICAgICAgICAgICAgICB8ICAy
MCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcCAg
fCAgIDkgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcCAgICAg
ICAgIHwgICA3ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmggICAg
ICAgICAgICB8ICAzMCArLQogU291cmNlL1dURi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAxNDMgKysrKysrCiBTb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcCAg
ICAgICAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3Bw
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XVEYvd3RmL0pTT05WYWx1
ZXMuY3BwICAgICAgICAgICAgICAgICAgICAgIHwgIDExICstCiBTb3VyY2UvV1RGL3d0Zi9Mb2dn
ZXIuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMSArLQogU291cmNlL1dURi93dGYv
TWVkaWFUaW1lLmNwcCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XVEYv
d3RmL1VVSUQuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuY3BwICAgICAgICAgICAgICB8IDI2NSArKysrKyst
LS0tLQogU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmggICAgICAgICAgICAgICAg
fCAyOTcgKysrKysrLS0tLS0tCiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXJKU09O
LmNwcCAgICAgICAgICB8ICAzMSArLQogU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNw
cCAgICAgICAgICAgICAgICAgfCAgMzQgKy0KIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1w
bC5oICAgICAgICAgICAgICAgICAgIHwgIDE4ICstCiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRT
dHJlYW0uY3BwICAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA1MTAgKysrKysrKysrKysrKysrKysrKysr
CiAuLi4vTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50Q29udGFjdENvY29hLm1tICB8ICAg
NSArLQogLi4uL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24u
Y3BwIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRh
LmNwcCAgICB8ICAxNSArLQogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5
UGF0aC5jcHAgICAgfCAgIDQgKy0KIC4uLi9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSW5kZXhW
YWx1ZVN0b3JlLmNwcCAgIHwgICA0ICstCiAuLi4vTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NR
TGl0ZUlEQkN1cnNvci5jcHAgICB8ICAgOCArLQogLi4uL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JREJEYXRhYmFzZUluZm8uY3BwICAgfCAgIDQgKy0KIC4uLi9pbmRleGVkZGIvc2hhcmVkL0lE
Qk9iamVjdFN0b3JlSW5mby5jcHAgICAgICAgIHwgICA0ICstCiAuLi4vbWVkaWFzZXNzaW9uL1dl
Yk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwICAgICAgICB8ICAgOCArLQogLi4uL01vZHVsZXMvbWVk
aWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCAgfCAgIDggKy0KIC4uLi9Nb2R1bGVz
L3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcCAgIHwgICA0ICstCiAuLi4vTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwICAgICAgICB8ICAgNCArLQogU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAgICAgfCAgIDggKy0K
IC4uLi93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwICAgIHwgICA4
ICstCiAuLi4vTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAgICAgICB8
ICAyMyArLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwICAg
ICAgfCAgMTggKy0KIC4uLi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5jcHAgIHwgIDEwICstCiAuLi4vbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFj
Lm1tICAgICAgICB8ICAxMSArLQogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252
ZXJ0U3RyaW5ncy5jcHAgfCAgIDQgKy0KIC4uLi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhj
ZXB0aW9uSGFuZGxpbmcuY3BwIHwgIDE2ICstCiAuLi4vY29udGVudGV4dGVuc2lvbnMvQ29tYmlu
ZWRVUkxGaWx0ZXJzLmNwcCAgICAgICB8ICAgNCArLQogLi4uL1dlYkNvcmUvY29udGVudGV4dGVu
c2lvbnMvQ29udGVudEV4dGVuc2lvbi5jcHAgfCAgIDcgKy0KIC4uLi9jb250ZW50ZXh0ZW5zaW9u
cy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwIHwgICA1ICstCiAuLi4vQ29udGVudEV4dGVu
c2lvblN0eWxlU2hlZXQuY3BwICAgICAgICAgICAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNv
cmUvY29udGVudGV4dGVuc2lvbnMvVGVybS5oICAgICAgICAgICAgfCAgIDggKy0KIC4uLi9XZWJD
b3JlL2Nzcy9DU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuY3BwIHwgICA0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQmFzaWNTaGFwZXMuY3BwICAgICAgICAgICAgICB8ICAyMCArLQog
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwICAgICAgICAgfCAgIDgg
Ky0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwICAgICAgICAg
ICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwICAg
ICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXN0b21JZGVudFZhbHVlLmNw
cCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1
ZS5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVs
ZS5jcHAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFj
ZVNyY1ZhbHVlLmNwcCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dEZlYXR1cmVWYWx1ZS5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ZvbnRTdHlsZVJhbmdlVmFsdWUuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250U3R5bGVWYWx1ZS5jcHAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRm9udFZhbHVlLmNwcCAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHAgICAgICAgfCAgIDQgKy0KIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGdW5jdGlvblZhbHVlLmNwcCAgICAgICAgICAgIHwgICA0ICstCiBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAgICAgICAgICAgICB8ICAxMiAr
LQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRBdXRvUmVwZWF0VmFsdWUuY3BwICAgICAgfCAg
IDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcCAg
IHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAgICAgICAg
ICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUuY3BwICAgICAg
ICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZVJ1bGUuY3Bw
ICAgICAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVzUnVs
ZS5jcHAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0xpbmVCb3hD
b250YWluVmFsdWUuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNYXJr
dXAuY3BwICAgICAgICAgICAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
TWVkaWFSdWxlLmNwcCAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3Nz
L0NTU05hbWVzcGFjZVJ1bGUuY3BwICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYWdlUnVsZS5jcHAgICAgICAgICAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwICAgICAgICAgICB8ICAxMiArLQogU291cmNl
L1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5U291cmNlRGF0YS5jcHAgICAgICAgfCAgIDQgKy0KIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAgICAgICAgICAgICAgICAgIHwgIDE3ICst
CiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0LmNwcCAgICAgICAgICAgICB8ICAg
NCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU1NoYWRvd1ZhbHVlLmNwcCAgICAgICAgICAgICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUuY3BwICAgICAgICAgICAg
ICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAgICAgICAg
ICAgICAgICB8ICAgOSArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1cHBvcnRzUnVsZS5jcHAg
ICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUaW1pbmdGdW5jdGlv
blZhbHVlLmNwcCAgICAgIHwgIDE2ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0
LmNwcCAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU1Zhcmlh
YmxlRGF0YS5jcHAgICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9ET01D
U1NOYW1lc3BhY2UuY3BwICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3Mv
RE9NTWF0cml4UmVhZE9ubHkuY3BwICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUv
Y3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJD
b3JlL2Nzcy9Gb250RmFjZS5jcHAgICAgICAgICAgICAgICAgICAgIHwgIDEyICstCiBTb3VyY2Uv
V2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcCAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogU291
cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwICAgICAgICAgICAgICAgICAgfCAgIDQgKy0K
IFNvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAgICAgICAgIHwgICA1
ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvUmVjdC5oICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAgICAgICAgICAg
ICAgfCAgMzAgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwICAgICAg
ICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxl
LmNwcCAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIu
Y3BwICAgICAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFy
c2VyVG9rZW4uY3BwICAgICAgIHwgIDg3ICsrLS0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUGFyc2VyVG9rZW5SYW5nZS5jcHAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcCAgICB8ICAyNyArLQogU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NUb2tlbml6ZXIuY3BwICAgICAgICAgfCAgMzggKy0KIFNvdXJjZS9XZWJDb3Jl
L2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAgICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQogU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuY3BwICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjIgKy0KIFNv
dXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAgICAgICAgICAgICAgICAgICAgIHwgICA1ICst
CiBTb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwICAgICAgICAgICAgICAgICAgICAgICB8ICAg
OSArLQogU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRleHQuY3BwICAgICAgICAg
ICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgOSArLQogU291cmNlL1dlYkNvcmUvZG9tL1RleHROb2RlVHJhdmVyc2FsLmNw
cCAgICAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNv
bW1hbmQuY3BwICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcu
Y3BwICAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9IVE1M
SW50ZXJjaGFuZ2UuY3BwICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
TWFya3VwQWNjdW11bGF0b3IuY3BwICAgICAgIHwgIDE3ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1RleHRJdGVyYXRvci5jcHAgICAgICAgICAgICB8ICAxMSArLQogU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAgICAgICAgIHwgICA1ICstCiBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0gICAgICB8ICAgOCArLQogU291
cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tICAgICAgfCAgIDUgKy0K
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbSAgICAgICAgICAgIHwgICA1
ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAgICAgICAgICAgICAgICAgICB8
ICAyNyArLQogU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcCAgICAg
ICAgfCAgMjQgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcCAgICAgICAg
ICAgICAgIHwgICA5ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcCAg
ICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNw
cCAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xs
ZXIuY3BwICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNo
b3JFbGVtZW50LmNwcCAgICAgICAgICB8ICAxMiArLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5jcHAgICAgICAgICAgfCAgMjEgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZvbnRFbGVtZW50LmNwcCAgICAgICAgICAgIHwgICA3ICstCiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCAgICAgICAgICAgfCAgIDkgKy0KIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwICAgICAgICAgIHwgICA0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCB8ICAxMiArLQog
U291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcCAgICAgICAgICAgICAgfCAgIDUg
Ky0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAgICAgICAgIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRnJhZ21lbnRVUklQYXJzZXIuY3BwICAg
ICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3BwICAgICAgICAgICAg
ICAgICAgfCAgMTQgKy0KIC4uLi9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
Y3BwICAgICAgIHwgICA0ICstCiAuLi4vaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQmFzZS5jcHAgICB8ICAgNyArLQogLi4uL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxTb3VyY2VUcmFja2VyLmNwcCAgIHwgICA3ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MVG9rZW5pemVyLmNwcCAgICAgICB8ICAxMiArLQogU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcCAgICAgfCAgMjcgKy0KIFNvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL0J1ZmZlcmVkTGluZVJlYWRlci5jcHAgICB8ICAgOCArLQogU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcCAgICAgICAgICAgICAgIHwgICA2ICstCiBT
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAgICAgICAgICB8ICAgNSAr
LQogU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3BwICAgICAgfCAg
NjMgKystCiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAg
ICB8ICAxNyArLQogLi4uL2FnZW50cy9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3Bw
ICAgICAgfCAgMTMgKy0KIC4uLi9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2Vu
dC5jcHAgICAgIHwgICA3ICstCiAuLi4vV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkNvbnNv
bGVBZ2VudC5jcHAgICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2lu
QWNjZXNzQ29udHJvbC5jcHAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzLmNwcCAgIHwgICA0ICstCiAuLi4vbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVTdG9yYWdlLmNwcCAgICB8ICAyNSArLQogLi4uL1dlYkNvcmUvbG9hZGVyL2Fy
Y2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAgfCAgMjUgKy0KIC4uLi9XZWJDb3JlL2xvYWRl
ci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHAgIHwgIDM0ICstCiAuLi4vV2ViQ29yZS9w
YWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcCB8ICA2NCArKy0KIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAgICAgICAgICAgICAgICAgICB8ICAgNCArLQog
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwICAgICAgICAgICAgICAgICAgfCAgIDUg
Ky0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwICAgICAgICAgICAgIHwg
ICA3ICstCiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5jcHAg
ICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuY3BwICAg
ICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RUcmlnZ2Vy
LmNwcCAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJp
dHlQb2xpY3kuY3BwICB8ICAgOSArLQogLi4uL3BhZ2Uvc2Nyb2xsaW5nL0F4aXNTY3JvbGxTbmFw
T2Zmc2V0cy5jcHAgICAgICAgfCAgIDggKy0KIC4uLi9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdD
b29yZGluYXRvci5jcHAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9E
ZWNpbWFsLmNwcCAgICAgICAgICAgICAgICB8ICAxMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRmlsZVN5c3RlbS5jcHAgICAgICAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BPREludGVydmFsLmggICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QT0RSZWRCbGFja1RyZWUuaCAgICAgICAgICB8ICAgNSArLQogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVVJMLmNwcCAgICAgICAgICAgICAgICAgICAgfCAgMTggKy0KIC4uLi9X
ZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5jcHAgIHwgICA1ICstCiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcCAgICB8ICAgNCAr
LQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9Vc2VyQWdlbnRHTGliLmNwcCAgICAgfCAg
IDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcCAgICAgICAg
IHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9y
LmNwcCB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2Nh
ZGUuY3BwICAgfCAgIDQgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9Gb250VGFnZ2VkU2V0dGlu
Z3MuY3BwICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0xheWVyLmNwcCB8ICAgNCArLQogLi4uL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQVZGLmNwcCAgICAgfCAgMTMgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9jYS9U
aWxlQ29udHJvbGxlci5jcHAgICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9UaWxlR3JpZC5jcHAgICB8ICAgNCArLQogLi4uL2dyYXBoaWNzL2NhL3dp
bi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwICAgICAgICAgfCAgIDQgKy0KIC4uLi9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAgIHwgIDEwICstCiAuLi4vb3Blbmds
L0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcCAgICAgICB8ICAxMSArLQogLi4uL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAgfCAgMTUgKy0KIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWxlY3Rpb25EYXRhLmNwcCAgICAgIHwgICA1ICst
CiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSAgICAgICB8ICAg
NCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbSAgICAg
fCAgIDYgKy0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Nyb2xsQW5pbWF0b3JNb2NrLmNw
cCAgIHwgIDE1ICstCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tC
b3guY3BwICB8ICAgOSArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFy
c2Vycy5jcHAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTUlN
RUhlYWRlci5jcHAgICAgIHwgIDEzICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Byb3h5U2VydmVyLmNwcCAgICB8ICAgNCArLQogLi4uL25ldHdvcmsvY3VybC9Db29raWVKYXJD
dXJsRGF0YWJhc2UuY3BwICAgICAgICAgfCAgIDQgKy0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL0Nvb2tpZUphck1hYy5tbSAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5jcHAgICAgfCAgMjYgKy0KIC4uLi9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmggIHwgICA4ICstCiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxlLmNwcCAgICB8ICAyMCArLQogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwICAgfCAgIDQgKy0K
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcCAgICAgIHwgIDEz
ICstCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VzZXJEZWZpbmVkLmNwcCB8
ICAgNCArLQogLi4uL3BsYXRmb3JtL3ZyL29wZW52ci9WUlBsYXRmb3JtRGlzcGxheU9wZW5WUi5j
cHAgfCAgIDUgKy0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNX
aW4uY3BwIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vVXNlckFnZW50V2lu
LmNwcCAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRo
ZW1lV1BFLmNwcCAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5
cGUuY3BwICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcCAgICAgIHwgICA5ICstCiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAgICAgICAgICAgICB8ICAyMyArLQogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lR3RrLmNwcCAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbSAgICAgICAgIHwgIDEwICstCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwICAgICAgICB8ICAgNSArLQog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwICAgICAgfCAgIDgg
Ky0KIC4uLi9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5jcHAgICAgICAgIHwg
ICA1ICstCiAuLi4vcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTWF0aE1MLmNw
cCB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3BwICAg
ICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmNw
cCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFN0cmluZ0J1aWxk
ZXIuY3BwICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRp
ZXMuY3BwICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExp
c3RWYWx1ZXMuY3BwICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3Ry
aW5nTGlzdFZhbHVlcy5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RyYW5zZm9ybUxpc3RWYWx1ZXMuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5jcHAgICAgICAgICAgIHwgIDIwICstCiBTb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oICB8ICAgOCArLQogU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwICAgICAgICAgICAgICAgfCAgNjQgKy0tCiBTb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAgICB8ICAxMCArLQog
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwICAgICAgfCAgIDQg
Ky0KIFNvdXJjZS9XZWJDb3JlL3htbC9YTUxFcnJvcnMuY3BwICAgICAgICAgICAgICAgICAgIHwg
ICA3ICstCiBTb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwICAgICAgICAgICAg
ICB8ICAxNSArLQogU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmggICAgICAgICAg
ICAgICAgfCAgIDcgKy0KIFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEZ1bmN0aW9ucy5jcHAgICAg
ICAgICAgICAgIHwgIDIxICstCiBTb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhz
bHQuY3BwICAgICAgICB8ICAxNCArLQogLi4uL3htbC9wYXJzZXIvQ2hhcmFjdGVyUmVmZXJlbmNl
UGFyc2VySW5saW5lcy5oICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbkhvc3Qu
Y3BwICAgICAgICAgICAgICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0OSArKwogLi4uL05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAgICAgfCAgIDQgKy0KIC4uLi9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcCAgIHwgIDE4ICstCiAuLi4vTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlS2V5LmNwcCAgICAgICB8ICAgNCArLQogLi4uL2NhcHR1
cmUvTmV0d29ya0NhcHR1cmVNYW5hZ2VyLmNwcCAgICAgICAgICAgICAgfCAgIDYgKy0KIC4uLi9O
ZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHAgICAgIHwgICA0ICstCiAu
Li4vU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIvSURCVXRpbGl0aWVzLmNwcCAgICB8ICAgNCAr
LQogU291cmNlL1dlYktpdC9TaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5jcHAgICAgICAgfCAg
IDQgKy0KIC4uLi9OZXRzY2FwZS91bml4L05ldHNjYXBlUGx1Z2luTW9kdWxlVW5peC5jcHAgICAg
IHwgICA0ICstCiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcCAgICAg
ICAgICB8ICAgNyArLQogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJTY3JpcHQu
Y3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVc2VyU3R5
bGVTaGVldC5jcHAgIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRXZWJWaWV3LmNwcCB8ICAgOSArLQogLi4uL1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVy
ZUNvbnRyb2xsZXIuY3BwICAgICAgfCAgIDYgKy0KIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkJhY2tGb3J3YXJkTGlzdC5jcHAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHAgICAgICAgICB8ICAgNSArLQogU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCAgICAgICAgfCAgIDUgKy0KIC4uLi9VSVByb2Nlc3Mv
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcCAgIHwgIDIwICstCiAuLi4vV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeS5jcHAgICAgICAgICB8ICAzMyArLQogLi4uL0lu
amVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYlBhZ2UuY3BwICAgICAgfCAgMTAgKy0KIC4u
Li9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcCAgICAgIHwgICA0ICst
CiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCAgICB8ICAg
NCArLQogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwICAgICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgIHwgIDEyICsKIC4uLi9tYWMvV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubW0gICAg
ICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nlc3NpYmxlQmFzZS5j
cHAgICAgICAgICB8ICAgNSArLQogU291cmNlL1dlYktpdExlZ2FjeS93aW4vUGx1Z2lucy9QbHVn
aW5TdHJlYW0uY3BwICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFN0
YXRpc3RpY3MuY3BwICAgICAgIHwgICA3ICstCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICA3OCArKysrCiBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9Dcm9zc1RocmVhZFRhc2suY3BwICB8ICAgNCArLQogVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAgICAgfCAgOTIgKystLQogVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAgICAgICAgfCAgODAgKystLQogLi4uL1Rl
c3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwICAgICAgICAgICAgfCAgODYgKystLQog
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcCAgfCAgMzcg
Ky0KIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Mb2dnaW5nLmNwcCAgICAgIHwg
IDMwICstCiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVGV4dENvZGVjLmNwcCAg
ICB8ICAgNCArLQogVG9vbHMvVGVzdFdlYktpdEFQSS9XVEZTdHJpbmdVdGlsaXRpZXMuaCAgICAg
ICAgICAgfCAgIDQgKy0KIC4uLi9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3Bw
ICAgICAgICAgIHwgMTk2ICsrKysrKy0tCiAuLi4vV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmNwcCB8ICAxOCArLQogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAgICAgICAgICAgfCAgMTUgKy0KIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdEludm9jYXRpb24uY3BwICAgICAgICAgIHwgICA5ICstCiAzMDkgZmlsZXMgY2hhbmdlZCwg
MzY2MyBpbnNlcnRpb25zKCspLCAxMzM4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcAppbmRleCAwMjVlYmE0Li41ZWRmNjgxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCkBAIC0zMTQsNyArMzE0LDkg
QEAgSlNTdHJpbmdSZWYgSlNDb250ZXh0Q3JlYXRlQmFja3RyYWNlKEpTQ29udGV4dFJlZiBjdHgs
IHVuc2lnbmVkIG1heFN0YWNrU2l6ZSkKICAgICBCYWNrdHJhY2VGdW5jdG9yIGZ1bmN0b3IoYnVp
bGRlciwgbWF4U3RhY2tTaXplKTsKICAgICBmcmFtZS0+aXRlcmF0ZShmdW5jdG9yKTsKIAotICAg
IHJldHVybiBPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKGJ1aWxkZXIudG9TdHJpbmcoKSkubGVha1Jl
ZigpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuIE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUoKnN0cmluZykubGVha1JlZigpOworICAgIENS
QVNIKCk7CiB9CiAKIGJvb2wgSlNHbG9iYWxDb250ZXh0R2V0UmVtb3RlSW5zcGVjdGlvbkVuYWJs
ZWQoSlNHbG9iYWxDb250ZXh0UmVmIGN0eCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL3Rlc3RzL0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwCmluZGV4IDYzN2Iz
MDQuLjE2NTI4MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMv
RXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS90ZXN0cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcApAQCAtMTk0LDIyICsxOTQsMjUgQEAg
aW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5h
cHBlbmROdW1iZXIodGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQuc2Vjb25kcygpKTsK
ICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSBicmVhazsgfSB9IGZv
bygpOyIpOwogCi0gICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZyhzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7
Ci0gICAgICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOwotICAgICAgICAgICAgc2hvdWxkVGVy
bWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGF1dG8gc3RhcnRU
aW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwotICAgICAgICAgICAgSlNFdmFsdWF0
ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24p
OwotICAgICAgICAgICAgYXV0byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgp
OwotCi0gICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldh
dGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxl
ZCkKLSAgICAgICAgICAgICAgICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCB0aW1lZCBvdXQgYXMg
ZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgIGVsc2UgewotICAg
ICAgICAgICAgICAgIGlmICgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFmdGVyV2F0Y2hk
b2dTaG91bGRIYXZlRmlyZWQpCi0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMg
c2NyaXB0IGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVy
KTsKLSAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVk
KQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNh
bGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAg
ICAgICAgZmFpbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgICAgIEpT
U3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZy0+
dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKKyAg
ICAgICAgICAgICAgICBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOwor
ICAgICAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVh
ZCgpOworICAgICAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBu
dWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICBhdXRvIGVu
ZFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CisKKyAgICAgICAgICAgICAgICBp
ZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZp
cmVkKSAmJiBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKKyAgICAgICAgICAgICAg
ICAgICAgcHJpbnRmKCJQQVNTOiAlcyBzY3JpcHQgdGltZWQgb3V0IGFzIGV4cGVjdGVkLlxuIiwg
dGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmICgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFmdGVyV2F0Y2hkb2dTaG91
bGRIYXZlRmlyZWQpCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNj
cmlwdCBkaWQgbm90IHRpbWUgb3V0IGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7
CisgICAgICAgICAgICAgICAgICAgIGlmICghc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxs
ZWQpCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1l
b3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAg
ICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgaWYgKCFleGNlcHRpb24pIHsKICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6
ICVzIFRlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24gd2FzIG5vdCB0aHJvd24uXG4iLCB0aWVy
T3B0aW9ucy50aWVyKTsKQEAgLTIzNywyMiArMjQwLDI1IEBAIGludCB0ZXN0RXhlY3V0aW9uVGlt
ZUxpbWl0KCkKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgIHJl
dHVybiByZWN1cnNlKGkgKyAxKTsgfSIpOwogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJyZWN1cnNlKDApOyIpOwogCi0gICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3Jp
cHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzY3JpcHRCdWlsZGVyLnRvU3RyaW5n
KCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOwotICAg
ICAgICAgICAgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKLSAgICAg
ICAgICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwotICAg
ICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxw
dHIsIDEsICZleGNlcHRpb24pOwotICAgICAgICAgICAgYXV0byBlbmRUaW1lID0gQ1BVVGltZTo6
Zm9yQ3VycmVudFRocmVhZCgpOwotCi0gICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRU
aW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiBzaG91bGRUZXJtaW5h
dGVDYWxsYmFja1dhc0NhbGxlZCkKLSAgICAgICAgICAgICAgICBwcmludGYoIlBBU1M6ICVzIHNj
cmlwdCB3aXRoIGluZmluaXRlIHRhaWwgY2FsbHMgdGltZWQgb3V0IGFzIGV4cGVjdGVkIC5cbiIs
IHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAg
aWYgKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVG
aXJlZCkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgd2l0aCBp
bmZpbml0ZSB0YWlsIGNhbGxzIGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVy
T3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxi
YWNrV2FzQ2FsbGVkKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlw
dCB3aXRoIGluZmluaXRlIHRhaWwgY2FsbHMnIHRpbWVvdXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxs
ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVl
OwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc2NyaXB0QnVp
bGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0g
SlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAg
ICAgICAgICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOworICAgICAgICAgICAgICAgIHNob3Vs
ZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgYXV0
byBzdGFydFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CisgICAgICAgICAgICAg
ICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEs
ICZleGNlcHRpb24pOworICAgICAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRpbWU6OmZv
ckN1cnJlbnRUaHJlYWQoKTsKKworICAgICAgICAgICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFy
dFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpICYmIHNob3VsZFRlcm1p
bmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQorICAgICAgICAgICAgICAgICAgICBwcmludGYoIlBBU1M6
ICVzIHNjcmlwdCB3aXRoIGluZmluaXRlIHRhaWwgY2FsbHMgdGltZWQgb3V0IGFzIGV4cGVjdGVk
IC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAg
ICAgICAgICAgICAgICBpZiAoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNo
ZG9nU2hvdWxkSGF2ZUZpcmVkKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlM
OiAlcyBzY3JpcHQgd2l0aCBpbmZpbml0ZSB0YWlsIGNhbGxzIGRpZCBub3QgdGltZSBvdXQgYXMg
ZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KCFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHdpdGggaW5maW5pdGUgdGFpbCBjYWxscycgdGlt
ZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAg
ICAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAKICAg
ICAgICAgICAgIGlmICghZXhjZXB0aW9uKSB7CiAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlM
OiAlcyBUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uIHdhcyBub3QgdGhyb3duLlxuIiwgdGll
ck9wdGlvbnMudGllcik7CkBAIC0yNzMsMjEgKzI3OSwyNCBAQCBpbnQgdGVzdEV4ZWN1dGlvblRp
bWVMaW1pdCgpCiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZE51bWJlcih0aW1lQWZ0
ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZC5zZWNvbmRzKCkpOwogICAgICAgICAgICAgc2NyaXB0
QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpIGJyZWFrOyB9IH0gY2F0Y2goZSkgeyB9IH0gZm9vKCk7
Iik7CiAKLSAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAg
ICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgICAgICBzaG91bGRUZXJtaW5h
dGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5n
ID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgSlNTdHJpbmdS
ZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyaW5nLT51dGY4KCku
ZGF0YSgpKTsKKyAgICAgICAgICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOworICAgICAgICAg
ICAgICAgIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CiAKLSAgICAg
ICAgICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwotICAg
ICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxw
dHIsIDEsICZleGNlcHRpb24pOwotICAgICAgICAgICAgYXV0byBlbmRUaW1lID0gQ1BVVGltZTo6
Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BV
VGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAgICAgICAgICAgIEpTRXZhbHVhdGVTY3Jp
cHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKKyAg
ICAgICAgICAgICAgICBhdXRvIGVuZFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7
CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49
IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSB8fCAhc2hvdWxkVGVybWluYXRlQ2Fs
bGJhY2tXYXNDYWxsZWQpIHsKLSAgICAgICAgICAgICAgICBpZiAoISgoZW5kVGltZSAtIHN0YXJ0
VGltZSkgPCB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkpCi0gICAgICAgICAgICAg
ICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0
ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFRl
cm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZB
SUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIiwgdGllck9w
dGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKLSAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0
ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgfHwgIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2Fz
Q2FsbGVkKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghKChlbmRUaW1lIC0gc3RhcnRUaW1l
KSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0
ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFzaG91
bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHBy
aW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4i
LCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBD
UkFTSCgpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoZXhjZXB0aW9uKQogICAgICAg
ICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbiB3
YXMgbm90IGNhdGNoYWJsZSBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwpAQCAt
MzA5LDI0ICszMTgsMjcgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgICAgICAg
ICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCJmdW5jdGlvbiBmb28oKSB7IHZhciBzdGFy
dFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOyB3aGlsZSAodHJ1ZSkgeyBmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDA7IGkrKyk7IGlmIChjdXJyZW50Q1BVVGltZSgpIC0gc3RhcnRUaW1lID4gIik7CiAg
ICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZE51bWJlcih0aW1lQWZ0ZXJXYXRjaGRvZ1No
b3VsZEhhdmVGaXJlZC5zZWNvbmRzKCkpOwogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBl
bmRMaXRlcmFsKCIpIGJyZWFrOyB9IH0gZm9vKCk7Iik7Ci0gICAgICAgICAgICAKLSAgICAgICAg
ICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHNj
cmlwdEJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGV4Y2Vw
dGlvbiA9IG51bGxwdHI7Ci0gICAgICAgICAgICBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0Nh
bGxlZCA9IGZhbHNlOwogCi0gICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZv
ckN1cnJlbnRUaHJlYWQoKTsKLSAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwg
c2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKLSAgICAgICAgICAgIGF1
dG8gZW5kVGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgIGlm
IChhdXRvIHN0cmluZyA9IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAg
ICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0
cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0
cjsKKyAgICAgICAgICAgICAgICBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZh
bHNlOworCisgICAgICAgICAgICAgICAgYXV0byBzdGFydFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJy
ZW50VGhyZWFkKCk7CisgICAgICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBz
Y3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOworICAgICAgICAgICAgICAg
IGF1dG8gZW5kVGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKICAgICAgICAgICAg
IAotICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCB0aW1lQWZ0ZXJXYXRj
aGRvZ1Nob3VsZEhhdmVGaXJlZCkgJiYgIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVk
KQotICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IHRpbWVkIG91dCBhcyBl
eHBlY3RlZCB3aGVuIG5vIGNhbGxiYWNrIGlzIHNwZWNpZmllZC5cbiIsIHRpZXJPcHRpb25zLnRp
ZXIpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKChlbmRUaW1lIC0g
c3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkKLSAgICAgICAg
ICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgZGlkIG5vdCB0aW1lIG91dCBhcyBl
eHBlY3RlZCB3aGVuIG5vIGNhbGxiYWNrIGlzIHNwZWNpZmllZC5cbiIsIHRpZXJPcHRpb25zLnRp
ZXIpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJG
QUlMOiAlcyBzY3JpcHQgY2FsbGVkIHN0YWxlIGNhbGxiYWNrIGZ1bmN0aW9uLlxuIiwgdGllck9w
dGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKLSAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRl
cldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiAhc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXND
YWxsZWQpCisgICAgICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IHRpbWVk
IG91dCBhcyBleHBlY3RlZCB3aGVuIG5vIGNhbGxiYWNrIGlzIHNwZWNpZmllZC5cbiIsIHRpZXJP
cHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAg
ICBpZiAoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2
ZUZpcmVkKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQg
ZGlkIG5vdCB0aW1lIG91dCBhcyBleHBlY3RlZCB3aGVuIG5vIGNhbGxiYWNrIGlzIHNwZWNpZmll
ZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCBjYWxsZWQgc3RhbGUg
Y2FsbGJhY2sgZnVuY3Rpb24uXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAg
ICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBp
ZiAoIWV4Y2VwdGlvbikgewogICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgVGVybWlu
YXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbiB3YXMgbm90IHRocm93bi5cbiIsIHRpZXJPcHRpb25zLnRp
ZXIpOwpAQCAtMzQ3LDIzICszNTksMjYgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQog
ICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmROdW1iZXIodGltZUFmdGVyV2F0Y2hkb2dT
aG91bGRIYXZlRmlyZWQuc2Vjb25kcygpKTsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiKSBicmVhazsgfSB9IGZvbygpOyIpOwogCi0gICAgICAgICAgICBKU1N0cmlu
Z1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzY3JpcHRCdWlsZGVy
LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBleGNlcHRpb24gPSBudWxs
cHRyOwotICAgICAgICAgICAgY2FuY2VsVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxz
ZTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmco
KSkgeworICAgICAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAg
ZXhjZXB0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBjYW5jZWxUZXJtaW5hdGVDYWxs
YmFja1dhc0NhbGxlZCA9IGZhbHNlOwogCi0gICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQ
VVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLSAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQo
Y29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKLSAgICAg
ICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAgICAg
ICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsK
KyAgICAgICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0
ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgYXV0byBlbmRUaW1l
ID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwogICAgICAgICAgICAgCi0gICAgICAgICAg
ICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhh
dmVGaXJlZCkgJiYgY2FuY2VsVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgJiYgIWV4Y2VwdGlv
bikKLSAgICAgICAgICAgICAgICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCB0aW1lb3V0IHdhcyBj
YW5jZWxsZWQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAg
IGVsc2UgewotICAgICAgICAgICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGlt
ZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpIHx8IGV4Y2VwdGlvbikKLSAgICAgICAgICAg
ICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgdGltZW91dCB3YXMgbm90IGNhbmNlbGxl
ZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgICAgIGlmICghY2FuY2VsVGVy
bWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCi0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJ
TDogJXMgc2NyaXB0IHRpbWVvdXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0
aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOwotICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRl
cldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiBjYW5jZWxUZXJtaW5hdGVDYWxsYmFja1dhc0Nh
bGxlZCAmJiAhZXhjZXB0aW9uKQorICAgICAgICAgICAgICAgICAgICBwcmludGYoIlBBU1M6ICVz
IHNjcmlwdCB0aW1lb3V0IHdhcyBjYW5jZWxsZWQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9u
cy50aWVyKTsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJl
ZCkgfHwgZXhjZXB0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAl
cyBzY3JpcHQgdGltZW91dCB3YXMgbm90IGNhbmNlbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIp
OworICAgICAgICAgICAgICAgICAgICBpZiAoIWNhbmNlbFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2Fs
bGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgdGlt
ZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAg
ICAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAKICAg
ICAgICAgICAgIGlmIChleGNlcHRpb24pIHsKICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6
ICVzIFVuZXhwZWN0ZWQgVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbiB0aHJvd24uXG4iLCB0
aWVyT3B0aW9ucy50aWVyKTsKQEAgLTM4NCwzMyArMzk5LDM2IEBAIGludCB0ZXN0RXhlY3V0aW9u
VGltZUxpbWl0KCkKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1heEJ1
c3lMb29wVGltZS5zZWNvbmRzKCkpOyAvLyBpbiBzZWNvbmRzLgogICAgICAgICAgICAgc2NyaXB0
QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpIGJyZWFrOyB9IH0gZm9vKCk7Iik7CiAKLSAgICAgICAg
ICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHNj
cmlwdEJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGV4Y2Vw
dGlvbiA9IG51bGxwdHI7Ci0gICAgICAgICAgICBleHRlbmRUZXJtaW5hdGVDYWxsYmFja0NhbGxl
ZCA9IDA7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzY3JpcHRCdWlsZGVyLnRvU3Ry
aW5nKCkpIHsKKyAgICAgICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAg
ICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7CisgICAgICAgICAgICAgICAgZXh0ZW5kVGVybWluYXRl
Q2FsbGJhY2tDYWxsZWQgPSAwOwogCi0gICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQVVRp
bWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLSAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29u
dGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKLSAgICAgICAg
ICAgIGF1dG8gZW5kVGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLSAgICAgICAg
ICAgIGF1dG8gZGVsdGFUaW1lID0gZW5kVGltZSAtIHN0YXJ0VGltZTsKKyAgICAgICAgICAgICAg
ICBhdXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAg
ICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNjcmlwdCwgbnVsbHB0ciwgbnVsbHB0
ciwgMSwgJmV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgYXV0byBlbmRUaW1lID0gQ1BVVGlt
ZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAgICAgICAgICAgIGF1dG8gZGVsdGFUaW1lID0g
ZW5kVGltZSAtIHN0YXJ0VGltZTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKChkZWx0
YVRpbWUgPj0gdGltZUJlZm9yZUV4dGVuZGVkRGVhZGxpbmUpICYmIChkZWx0YVRpbWUgPCB0aW1l
QWZ0ZXJFeHRlbmRlZERlYWRsaW5lKSAmJiAoZXh0ZW5kVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQg
PT0gMikgJiYgZXhjZXB0aW9uKQotICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgc2Ny
aXB0IHRpbWVvdXQgd2FzIGV4dGVuZGVkIGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGll
cik7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoZGVsdGFUaW1lIDwg
dGltZUJlZm9yZUV4dGVuZGVkRGVhZGxpbmUpCi0gICAgICAgICAgICAgICAgICAgIHByaW50Zigi
RkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgd2FzIG5vdCBleHRlbmRlZCBhcyBleHBlY3RlZC5cbiIs
IHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgICAgIGVsc2UgaWYgKGRlbHRhVGltZSA+
PSB0aW1lQWZ0ZXJFeHRlbmRlZERlYWRsaW5lKQotICAgICAgICAgICAgICAgICAgICBwcmludGYo
IkZBSUw6ICVzIHNjcmlwdCBkaWQgbm90IHRpbWVvdXQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsK
KyAgICAgICAgICAgICAgICBpZiAoKGRlbHRhVGltZSA+PSB0aW1lQmVmb3JlRXh0ZW5kZWREZWFk
bGluZSkgJiYgKGRlbHRhVGltZSA8IHRpbWVBZnRlckV4dGVuZGVkRGVhZGxpbmUpICYmIChleHRl
bmRUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA9PSAyKSAmJiBleGNlcHRpb24pCisgICAgICAgICAg
ICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IHRpbWVvdXQgd2FzIGV4dGVuZGVkIGFz
IGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgZWxzZSB7
CisgICAgICAgICAgICAgICAgICAgIGlmIChkZWx0YVRpbWUgPCB0aW1lQmVmb3JlRXh0ZW5kZWRE
ZWFkbGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0
IHRpbWVvdXQgd2FzIG5vdCBleHRlbmRlZCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRp
ZXIpOworICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChkZWx0YVRpbWUgPj0gdGltZUFmdGVy
RXh0ZW5kZWREZWFkbGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDog
JXMgc2NyaXB0IGRpZCBub3QgdGltZW91dC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwogICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmIChleHRlbmRUZXJtaW5hdGVDYWxsYmFja0Nh
bGxlZCA8IDEpCi0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRp
bWVvdXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAg
ICAgICAgICAgICAgICBpZiAoZXh0ZW5kVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQgPCAyKQotICAg
ICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNr
IHdhcyBub3QgY2FsbGVkIGFmdGVyIHRpbWVvdXQgZXh0ZW5zaW9uLlxuIiwgdGllck9wdGlvbnMu
dGllcik7CisgICAgICAgICAgICAgICAgICAgIGlmIChleHRlbmRUZXJtaW5hdGVDYWxsYmFja0Nh
bGxlZCA8IDEpCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlw
dCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7
CisgICAgICAgICAgICAgICAgICAgIGlmIChleHRlbmRUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA8
IDIpCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1l
b3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkIGFmdGVyIHRpbWVvdXQgZXh0ZW5zaW9uLlxuIiwg
dGllck9wdGlvbnMudGllcik7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYg
KCFleGNlcHRpb24pCi0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgVGVybWlu
YXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbiB3YXMgbm90IHRocm93biBkdXJpbmcgdGltZW91dCBleHRl
bnNpb24gdGVzdC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBp
ZiAoIWV4Y2VwdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMg
VGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbiB3YXMgbm90IHRocm93biBkdXJpbmcgdGltZW91
dCBleHRlbnNpb24gdGVzdC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwogICAgICAgICAgICAgICAg
IAotICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7Ci0gICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogCiAjaWYgSEFW
RShNQUNIX0VYQ0VQVElPTlMpCkBAIC00MjUsNTYgKzQ0Myw2MiBAQCBpbnQgdGVzdEV4ZWN1dGlv
blRpbWVMaW1pdCgpCiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZE51bWJlcih0aW1l
QWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZC5zZWNvbmRzKCkpOwogICAgICAgICAgICAgc2Ny
aXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpIGJyZWFrOyB9IH0gZm9vKCk7Iik7CiAKLSAgICAg
ICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGV4
Y2VwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgICAgICBkaXNwYXRjaFRlcm1pbmF0ZUNhbGxiYWNr
Q2FsbGVkID0gZmFsc2U7Ci0KLSAgICAgICAgICAgIC8vIFdlIGhhdmUgdG8gZG8gdGhpcyBzaW5j
ZSBibG9ja3MgY2FuIG9ubHkgY2FwdHVyZSB0aGluZ3MgYXMgY29uc3QuCi0gICAgICAgICAgICBK
U0dsb2JhbENvbnRleHRSZWYmIGNvbnRleHRSZWYgPSBjb250ZXh0OwotICAgICAgICAgICAgSlNT
dHJpbmdSZWYmIHNjcmlwdFJlZiA9IHNjcmlwdDsKLSAgICAgICAgICAgIEpTVmFsdWVSZWYmIGV4
Y2VwdGlvblJlZiA9IGV4Y2VwdGlvbjsKLQotICAgICAgICAgICAgTG9jayBzeW5jTG9jazsKLSAg
ICAgICAgICAgIExvY2smIHN5bmNMb2NrUmVmID0gc3luY0xvY2s7Ci0gICAgICAgICAgICBDb25k
aXRpb24gc3luY2hyb25pemU7Ci0gICAgICAgICAgICBDb25kaXRpb24mIHN5bmNocm9uaXplUmVm
ID0gc3luY2hyb25pemU7Ci0gICAgICAgICAgICBib29sIGRpZFN5bmNocm9uaXplID0gZmFsc2U7
Ci0gICAgICAgICAgICBib29sJiBkaWRTeW5jaHJvbml6ZVJlZiA9IGRpZFN5bmNocm9uaXplOwot
Ci0gICAgICAgICAgICBTZWNvbmRzIHN0YXJ0VGltZTsKLSAgICAgICAgICAgIFNlY29uZHMgZW5k
VGltZTsKLQotICAgICAgICAgICAgU2Vjb25kcyYgc3RhcnRUaW1lUmVmID0gc3RhcnRUaW1lOwot
ICAgICAgICAgICAgU2Vjb25kcyYgZW5kVGltZVJlZiA9IGVuZFRpbWU7Ci0KLSAgICAgICAgICAg
IGRpc3BhdGNoX2dyb3VwX3QgZ3JvdXAgPSBkaXNwYXRjaF9ncm91cF9jcmVhdGUoKTsKLSAgICAg
ICAgICAgIGRpc3BhdGNoX2dyb3VwX2FzeW5jKGdyb3VwLCBkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1
ZXVlKDAsIDApLCBeewotICAgICAgICAgICAgICAgIHN0YXJ0VGltZVJlZiA9IENQVVRpbWU6OmZv
ckN1cnJlbnRUaHJlYWQoKTsKLSAgICAgICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRl
eHRSZWYsIHNjcmlwdFJlZiwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvblJlZik7Ci0g
ICAgICAgICAgICAgICAgZW5kVGltZVJlZiA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsK
LSAgICAgICAgICAgICAgICBhdXRvIGxvY2tlciA9IFdURjo6aG9sZExvY2soc3luY0xvY2tSZWYp
OwotICAgICAgICAgICAgICAgIGRpZFN5bmNocm9uaXplUmVmID0gdHJ1ZTsKLSAgICAgICAgICAg
ICAgICBzeW5jaHJvbml6ZVJlZi5ub3RpZnlBbGwoKTsKLSAgICAgICAgICAgIH0pOwotCi0gICAg
ICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKHN5bmNMb2NrKTsKLSAgICAgICAgICAgIHN5
bmNocm9uaXplLndhaXQoc3luY0xvY2ssIFsmXSB7IHJldHVybiBkaWRTeW5jaHJvbml6ZTsgfSk7
Ci0KLSAgICAgICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0
Y2hkb2dTaG91bGRIYXZlRmlyZWQpICYmIGRpc3BhdGNoVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQp
Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiAlcyBzY3JpcHQgb24gZGlzcGF0Y2ggcXVl
dWUgdGltZWQgb3V0IGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAg
ICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49
IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKQotICAgICAgICAgICAgICAgICAgICBw
cmludGYoIkZBSUw6ICVzIHNjcmlwdCBvbiBkaXNwYXRjaCBxdWV1ZSBkaWQgbm90IHRpbWUgb3V0
IGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAgaWYg
KCFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKLSAgICAgICAgICAgICAgICAgICAg
cHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgb24gZGlzcGF0Y2ggcXVldWUgdGltZW91dCBjYWxsYmFj
ayB3YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgICAg
IGZhaWxlZCA9IHRydWU7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBKU1N0cmlu
Z1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmctPnV0Zjgo
KS5kYXRhKCkpOworICAgICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7CisgICAgICAg
ICAgICAgICAgZGlzcGF0Y2hUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA9IGZhbHNlOworCisgICAg
ICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byBkbyB0aGlzIHNpbmNlIGJsb2NrcyBjYW4gb25seSBj
YXB0dXJlIHRoaW5ncyBhcyBjb25zdC4KKyAgICAgICAgICAgICAgICBKU0dsb2JhbENvbnRleHRS
ZWYmIGNvbnRleHRSZWYgPSBjb250ZXh0OworICAgICAgICAgICAgICAgIEpTU3RyaW5nUmVmJiBz
Y3JpcHRSZWYgPSBzY3JpcHQ7CisgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZiYgZXhjZXB0aW9u
UmVmID0gZXhjZXB0aW9uOworCisgICAgICAgICAgICAgICAgTG9jayBzeW5jTG9jazsKKyAgICAg
ICAgICAgICAgICBMb2NrJiBzeW5jTG9ja1JlZiA9IHN5bmNMb2NrOworICAgICAgICAgICAgICAg
IENvbmRpdGlvbiBzeW5jaHJvbml6ZTsKKyAgICAgICAgICAgICAgICBDb25kaXRpb24mIHN5bmNo
cm9uaXplUmVmID0gc3luY2hyb25pemU7CisgICAgICAgICAgICAgICAgYm9vbCBkaWRTeW5jaHJv
bml6ZSA9IGZhbHNlOworICAgICAgICAgICAgICAgIGJvb2wmIGRpZFN5bmNocm9uaXplUmVmID0g
ZGlkU3luY2hyb25pemU7CisKKyAgICAgICAgICAgICAgICBTZWNvbmRzIHN0YXJ0VGltZTsKKyAg
ICAgICAgICAgICAgICBTZWNvbmRzIGVuZFRpbWU7CisKKyAgICAgICAgICAgICAgICBTZWNvbmRz
JiBzdGFydFRpbWVSZWYgPSBzdGFydFRpbWU7CisgICAgICAgICAgICAgICAgU2Vjb25kcyYgZW5k
VGltZVJlZiA9IGVuZFRpbWU7CisKKyAgICAgICAgICAgICAgICBkaXNwYXRjaF9ncm91cF90IGdy
b3VwID0gZGlzcGF0Y2hfZ3JvdXBfY3JlYXRlKCk7CisgICAgICAgICAgICAgICAgZGlzcGF0Y2hf
Z3JvdXBfYXN5bmMoZ3JvdXAsIGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoMCwgMCksIF57Cisg
ICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZVJlZiA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJl
YWQoKTsKKyAgICAgICAgICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0UmVmLCBz
Y3JpcHRSZWYsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb25SZWYpOworICAgICAgICAg
ICAgICAgICAgICBlbmRUaW1lUmVmID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAg
ICAgICAgICAgICAgICAgICBhdXRvIGxvY2tlciA9IFdURjo6aG9sZExvY2soc3luY0xvY2tSZWYp
OworICAgICAgICAgICAgICAgICAgICBkaWRTeW5jaHJvbml6ZVJlZiA9IHRydWU7CisgICAgICAg
ICAgICAgICAgICAgIHN5bmNocm9uaXplUmVmLm5vdGlmeUFsbCgpOworICAgICAgICAgICAgICAg
IH0pOworCisgICAgICAgICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhzeW5jTG9jayk7
CisgICAgICAgICAgICAgICAgc3luY2hyb25pemUud2FpdChzeW5jTG9jaywgWyZdIHsgcmV0dXJu
IGRpZFN5bmNocm9uaXplOyB9KTsKKworICAgICAgICAgICAgICAgIGlmICgoKGVuZFRpbWUgLSBz
dGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpICYmIGRpc3BhdGNo
VGVybWluYXRlQ2FsbGJhY2tDYWxsZWQpCisgICAgICAgICAgICAgICAgICAgIHByaW50ZigiUEFT
UzogJXMgc2NyaXB0IG9uIGRpc3BhdGNoIHF1ZXVlIHRpbWVkIG91dCBhcyBleHBlY3RlZC5cbiIs
IHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAg
ICAgICAgICBpZiAoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hv
dWxkSGF2ZUZpcmVkKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBz
Y3JpcHQgb24gZGlzcGF0Y2ggcXVldWUgZGlkIG5vdCB0aW1lIG91dCBhcyBleHBlY3RlZC5cbiIs
IHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFRlcm1p
bmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJG
QUlMOiAlcyBzY3JpcHQgb24gZGlzcGF0Y2ggcXVldWUgdGltZW91dCBjYWxsYmFjayB3YXMgbm90
IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBmYWls
ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KICNlbmRpZgogCiAgICAgICAgIEpTR2xvYmFs
Q29udGV4dFJlbGVhc2UoY29udGV4dCk7CiAKLSAgICAgICAgT3B0aW9uczo6c2V0T3B0aW9ucyhz
YXZlZE9wdGlvbnNCdWlsZGVyLnRvU3RyaW5nKCkuYXNjaWkoKS5kYXRhKCkpOworICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBzYXZlZE9wdGlvbnNCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICBPcHRpb25zOjpzZXRPcHRpb25zKHN0cmluZy0+YXNjaWkoKS5kYXRhKCkpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICAKICAgICByZXR1cm4gZmFp
bGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9QaW5nUG9u
Z1N0YWNrT3ZlcmZsb3dUZXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMv
UGluZ1BvbmdTdGFja092ZXJmbG93VGVzdC5jcHAKaW5kZXggMDQyYmViZi4uMTEyMzA5YiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9QaW5nUG9uZ1N0YWNrT3Zl
cmZsb3dUZXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL1BpbmdQ
b25nU3RhY2tPdmVyZmxvd1Rlc3QuY3BwCkBAIC02NCw5ICs2NCwxMiBAQCBzdGF0aWMgYm9vbCBQ
aW5nUG9uZ1N0YWNrT3ZlcmZsb3dPYmplY3RfaGFzSW5zdGFuY2UoSlNDb250ZXh0UmVmIGNvbnRl
eHQsIEpTT2JqZQogICAgICAgICB9CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKTsi
KTsKIAotICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZyhidWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIHJlc3Vs
dCA9IEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBOVUxMLCBOVUxMLCAxLCBleGNl
cHRpb24pOwotICAgICAgICBKU1N0cmluZ1JlbGVhc2Uoc2NyaXB0KTsKKyAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICBKU1N0cmluZ1Jl
ZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmctPnV0ZjgoKS5k
YXRhKCkpOworICAgICAgICAgICAgcmVzdWx0ID0gSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBz
Y3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsIGV4Y2VwdGlvbik7CisgICAgICAgICAgICBKU1N0
cmluZ1JlbGVhc2Uoc2NyaXB0KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBDUkFTSCgp
OwogICAgIH0KIAogICAgIC0tbmF0aXZlUmVjdXJzaW9uQ291bnQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5n
ZUxvZwppbmRleCBlMWMzZDIxLi40MzY3NmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw5OCBAQAorMjAxOC0wNC0yNiAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5j
b20+CisKKyAgICAgICAgU3RyaW5nQnVpbGRlciBpcyBmYWxsaWJsZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MDQ4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RyaW5nQnVpbGRlciBjYW4gZmFpbCB3
aGVuIGFsbG9jYXRpbmcgbWVtb3J5LiBTdHJpbmdCdWlsZGVyIGlzCisgICAgICAgIG1vc3RseSB1
c2VkIHdpdGggdXNlciBpbnB1dCwgd2hpY2ggb2Z0ZW4gbWVhbnMgdGhhdCBqdXN0IGNyYXNoaW5n
CisgICAgICAgIGlzbid0IHRoZSByaWdodCBvdXRjb21lLiBPdXIgZnV6emVycyBvZnRlbiBlbmNv
dW50ZXIgc3VjaCB0aGluZ3MKKyAgICAgICAgZm9yIEphdmFTY3JpcHRDb3JlLCBhbmQgc28gZmFy
IHdlJ3ZlIGFwcGxpZWQgcG9pbnQgc29sdXRpb25zLiBObworICAgICAgICBtb3JlIQorCisgICAg
ICAgICogQVBJL0pTQ29udGV4dFJlZi5jcHA6CisgICAgICAgIChKU0NvbnRleHRDcmVhdGVCYWNr
dHJhY2UpOgorICAgICAgICAqIEFQSS90ZXN0cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcDoK
KyAgICAgICAgKHRlc3RFeGVjdXRpb25UaW1lTGltaXQpOgorICAgICAgICAqIEFQSS90ZXN0cy9Q
aW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcDoKKyAgICAgICAgKFBpbmdQb25nU3RhY2tPdmVy
Zmxvd09iamVjdF9oYXNJbnN0YW5jZSk6CisgICAgICAgICogZGZnL0RGR1N0cmVuZ3RoUmVkdWN0
aW9uUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlN0cmVuZ3RoUmVkdWN0aW9uUGhhc2U6
OmhhbmRsZU5vZGUpOgorICAgICAgICAqIGhlYXAvSGVhcFNuYXBzaG90QnVpbGRlci5jcHA6Cisg
ICAgICAgIChKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXI6Ompzb24pOgorICAgICAgICAqIGluc3Bl
Y3Rvci9Db25zb2xlTWVzc2FnZS5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OkNvbnNvbGVNZXNz
YWdlOjpDb25zb2xlTWVzc2FnZSk6CisgICAgICAgICogaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hV
dGlsaXRpZXMuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpDb250ZW50U2VhcmNoVXRpbGl0aWVz
OjpjcmVhdGVTZWFyY2hSZWdleFNvdXJjZSk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJw
cmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6c3RhY2tUcmFjZUFzU3RyaW5n
KToKKyAgICAgICAgKiBpbnRlcnByZXRlci9TdGFja1Zpc2l0b3IuY3BwOgorICAgICAgICAoSlND
OjpTdGFja1Zpc2l0b3I6OkZyYW1lOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgICoganNjLmNw
cDoKKyAgICAgICAgKHJlc29sdmVQYXRoKToKKyAgICAgICAgKGZ1bmN0aW9uSlNDU3RhY2spOgor
ICAgICAgICAqIHJ1bnRpbWUvQ29uZmlnRmlsZS5jcHA6CisgICAgICAgIChKU0M6OkNvbmZpZ0Zp
bGU6OnBhcnNlKToKKyAgICAgICAgKiBydW50aW1lL0NvbnNvbGVDbGllbnQuY3BwOgorICAgICAg
ICAoSlNDOjpDb25zb2xlQ2xpZW50OjpwcmludENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKEpT
Qzo6Q29uc29sZUNsaWVudDo6cHJpbnRDb25zb2xlTWVzc2FnZVdpdGhBcmd1bWVudHMpOgorICAg
ICAgICAqIHJ1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwOgorICAgICAgICAoSlNDOjpmb3JtYXRE
YXRlVGltZSk6CisgICAgICAgICogcnVudGltZS9FcnJvckluc3RhbmNlLmNwcDoKKyAgICAgICAg
KEpTQzo6RXJyb3JJbnN0YW5jZTo6c2FuaXRpemVkVG9TdHJpbmcpOgorICAgICAgICAqIHJ1bnRp
bWUvRXhjZXB0aW9uSGVscGVycy5jcHA6CisgICAgICAgIChKU0M6Om5vdEFGdW5jdGlvblNvdXJj
ZUFwcGVuZGVyKToKKyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpjb25zdHJ1Y3RGdW5jdGlvblNraXBwaW5nRXZhbEVuYWJsZWRDaGVjayk6
CisgICAgICAgICogcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwOgorICAgICAgICAoSlND
OjpJbnRsRGF0ZVRpbWVGb3JtYXQ6OmluaXRpYWxpemVEYXRlVGltZUZvcm1hdCk6CisgICAgICAg
ICogcnVudGltZS9JbnRsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6cHJpdmF0ZVVzZUxhbmdU
YWcpOgorICAgICAgICAoSlNDOjpjYW5vbmljYWxMYW5nVGFnKToKKyAgICAgICAgKEpTQzo6cmVt
b3ZlVW5pY29kZUxvY2FsZUV4dGVuc2lvbik6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9i
amVjdEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChKU0M6OmVuY29kZSk6CisgICAgICAgIChKU0M6
OmRlY29kZSk6CisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNFc2NhcGUpOgorICAgICAgICAoSlND
OjpnbG9iYWxGdW5jVW5lc2NhcGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5jcHA6
CisgICAgICAgIChKU0M6OlN0cmluZ2lmaWVyOjpzdHJpbmdpZnkpOgorICAgICAgICAoSlNDOjpT
dHJpbmdpZmllcjo6SG9sZGVyOjphcHBlbmROZXh0UHJvcGVydHkpOgorICAgICAgICAqIHJ1bnRp
bWUvTGl0ZXJhbFBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkxpdGVyYWxQYXJzZXI8Q2hhclR5
cGU+OjpMZXhlcjo6bGV4U3RyaW5nU2xvdyk6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNw
cDoKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6ZHVtcE9wdGlvbnNJZk5lZWRlZCk6CisgICAgICAg
IChKU0M6Ok9wdGlvbnM6OmR1bXBBbGxPcHRpb25zKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4
cFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OnJlZ0V4cFByb3RvR2V0dGVyU291cmNlSW50
ZXJuYWwpOgorICAgICAgICAqIHJ1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHA6CisgICAgICAg
IChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6OnN0YWNrVHJhY2VzQXNKU09OKToKKyAgICAgICAgKiBy
dW50aW1lL1N0YWNrRnJhbWUuY3BwOgorICAgICAgICAoSlNDOjpTdGFja0ZyYW1lOjp0b1N0cmlu
ZyBjb25zdCk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChKU0M6OnN0cmluZ0Zyb21Db2RlUG9pbnQpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5n
UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6c3Vic3RpdHV0ZUJhY2tyZWZlcmVuY2VzU2xv
dyk6CisgICAgICAgICogcnVudGltZS9UeXBlUHJvZmlsZXIuY3BwOgorICAgICAgICAoSlNDOjpU
eXBlUHJvZmlsZXI6OnR5cGVJbmZvcm1hdGlvbkZvckV4cHJlc3Npb25BdE9mZnNldCk6CisgICAg
ICAgICogcnVudGltZS9UeXBlU2V0LmNwcDoKKyAgICAgICAgKEpTQzo6VHlwZVNldDo6ZHVtcFR5
cGVzIGNvbnN0KToKKyAgICAgICAgKEpTQzo6VHlwZVNldDo6dG9KU09OU3RyaW5nIGNvbnN0KToK
KyAgICAgICAgKEpTQzo6U3RydWN0dXJlU2hhcGU6OnByb3BlcnR5SGFzaCk6CisgICAgICAgIChK
U0M6OlN0cnVjdHVyZVNoYXBlOjpzdHJpbmdSZXByZXNlbnRhdGlvbik6CisgICAgICAgIChKU0M6
OlN0cnVjdHVyZVNoYXBlOjp0b0pTT05TdHJpbmcgY29uc3QpOgorICAgICAgICAqIHRlc3RSZWdF
eHAuY3BwOgorICAgICAgICAocGFyc2VSZWdFeHBMaW5lKToKKyAgICAgICAgKHBhcnNlVGVzdExp
bmUpOgorICAgICAgICAqIHRvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcDoKKyAgICAgICAgKEpT
Qzo6cGFyc2VDbGF1c2UpOgorICAgICAgICAqIHdhc20vV2FzbUJCUVBsYW4uY3BwOgorICAgICAg
ICAoSlNDOjpXYXNtOjpCQlFQbGFuOjpwcmVwYXJlKToKKyAgICAgICAgKiB5YXJyL1lhcnJQYXJz
ZXIuaDoKKyAgICAgICAgKEpTQzo6WWFycjo6UGFyc2VyOjp0cnlDb25zdW1lR3JvdXBOYW1lKToK
KyAgICAgICAgKEpTQzo6WWFycjo6UGFyc2VyOjp0cnlDb25zdW1lVW5pY29kZVByb3BlcnR5RXhw
cmVzc2lvbik6CisKIDIwMTgtMDUtMDEgIFJvYmluIE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxl
LmNvbT4KIAogICAgICAgICBVc2UgQ2hlY2tlZEFyaXRobWV0aWMgZm9yIGxlbmd0aCBjb21wdXRh
dGlvbiBpbiBKU0FycmF5Ojp1bnNoaWZ0Q291bnRXaXRoQW55SW5kZXhpbmdUeXBlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2Uu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNl
LmNwcAppbmRleCA5MWVlMWMzLi5mMWVjZWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAKQEAgLTM2MSw3ICsz
NjEsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7
CiAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQobGVmdFN0cmluZyk7CiAgICAgICAgICAg
ICAgICAgYnVpbGRlci5hcHBlbmQocmlnaHRTdHJpbmcpOwotICAgICAgICAgICAgICAgIGNvbnZl
cnRUb0xhenlKU1ZhbHVlKG1fbm9kZSwgTGF6eUpTVmFsdWU6Om5ld1N0cmluZyhtX2dyYXBoLCBi
dWlsZGVyLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRUb0xhenlKU1Zh
bHVlKG1fbm9kZSwgTGF6eUpTVmFsdWU6Om5ld1N0cmluZyhtX2dyYXBoLCAqc3RyaW5nKSk7Cisg
ICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAg
ICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBi
cmVhazsKQEAgLTM4Nyw4ICszOTAsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKHJpZ2h0U3RyaW5nKTsKICAgICAgICAgICAgIGlmICghIWV4dHJhU3RyaW5nKQogICAg
ICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGV4dHJhU3RyaW5nKTsKLQotICAgICAgICAgICAg
Y29udmVydFRvTGF6eUpTVmFsdWUobV9ub2RlLCBMYXp5SlNWYWx1ZTo6bmV3U3RyaW5nKG1fZ3Jh
cGgsIGJ1aWxkZXIudG9TdHJpbmcoKSkpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
YnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIGNvbnZlcnRUb0xhenlKU1ZhbHVl
KG1fbm9kZSwgTGF6eUpTVmFsdWU6Om5ld1N0cmluZyhtX2dyYXBoLCAqc3RyaW5nKSk7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgIG1fY2hh
bmdlZCA9IHRydWU7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtODg0LDggKzg4
OSwxMCBAQCBwcml2YXRlOgogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgaWYg
KGxhc3RJbmRleCA8IHN0cmluZy5sZW5ndGgoKSkKICAgICAgICAgICAgICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoc3RyaW5nLCBsYXN0SW5kZXgsIHN0cmluZy5sZW5ndGgoKSAtIGxhc3RJbmRleCk7
Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgbV9ub2RlLT5jb252ZXJ0VG9MYXp5
SlNDb25zdGFudChtX2dyYXBoLCBMYXp5SlNWYWx1ZTo6bmV3U3RyaW5nKG1fZ3JhcGgsIGJ1aWxk
ZXIudG9TdHJpbmcoKSkpOworICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgbV9ub2RlLT5jb252ZXJ0VG9MYXp5
SlNDb25zdGFudChtX2dyYXBoLCBMYXp5SlNWYWx1ZTo6bmV3U3RyaW5nKG1fZ3JhcGgsICpzdHJp
bmcpKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7
CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIG1fbm9kZS0+b3JpZ2luID0gb3JpZ2luOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFNuYXBzaG90QnVpbGRl
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3RCdWlsZGVyLmNw
cAppbmRleCA2NWY2MzNmLi5lMWFhZDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwU25hcHNob3RCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwU25hcHNob3RCdWlsZGVyLmNwcApAQCAtMzg3LDcgKzM4Nyw5IEBAIFN0cmlu
ZyBIZWFwU25hcHNob3RCdWlsZGVyOjpqc29uKHN0ZDo6ZnVuY3Rpb248Ym9vbCAoY29uc3QgSGVh
cFNuYXBzaG90Tm9kZSYpPiBhCiAgICAganNvbi5hcHBlbmQoJ10nKTsKIAogICAgIGpzb24uYXBw
ZW5kKCd9Jyk7Ci0gICAgcmV0dXJuIGpzb24udG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBqc29uLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcAppbmRleCA1Y2ZiMDRkLi43MWU0ZmM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdl
LmNwcApAQCAtMTE1LDcgKzExNSwxMCBAQCBDb25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZQogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgSlNPTkxvZ1ZhbHVlOjpUeXBlOjpKU09OOgogICAg
ICAgICAgICAgaWYgKGJ1aWxkZXIubGVuZ3RoKCkpIHsKLSAgICAgICAgICAgICAgICBtX2pzb25M
b2dWYWx1ZXMuYXBwZW5kKHsgSlNPTkxvZ1ZhbHVlOjpUeXBlOjpTdHJpbmcsIEpTT046OlZhbHVl
OjpjcmVhdGUoYnVpbGRlci50b1N0cmluZygpKS0+dG9KU09OU3RyaW5nKCkgfSk7CisgICAgICAg
ICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAg
ICAgICAgICAgICBtX2pzb25Mb2dWYWx1ZXMuYXBwZW5kKHsgSlNPTkxvZ1ZhbHVlOjpUeXBlOjpT
dHJpbmcsIEpTT046OlZhbHVlOjpjcmVhdGUoKnN0cmluZyktPnRvSlNPTlN0cmluZygpIH0pOwor
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAg
ICAgICAgICAgICBidWlsZGVyLnJlc2l6ZSgwKTsKICAgICAgICAgICAgIH0KIApAQCAtMTI0LDgg
KzEyNywxMiBAQCBDb25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBz
b3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZQogICAgICAgICB9CiAgICAgfQogCi0g
ICAgaWYgKGJ1aWxkZXIubGVuZ3RoKCkpCi0gICAgICAgIG1fanNvbkxvZ1ZhbHVlcy5hcHBlbmQo
eyBKU09OTG9nVmFsdWU6OlR5cGU6OlN0cmluZywgSlNPTjo6VmFsdWU6OmNyZWF0ZShidWlsZGVy
LnRvU3RyaW5nKCkpLT50b0pTT05TdHJpbmcoKSB9KTsKKyAgICBpZiAoYnVpbGRlci5sZW5ndGgo
KSkgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgICAgICBtX2pzb25Mb2dWYWx1ZXMuYXBwZW5kKHsgSlNPTkxvZ1ZhbHVlOjpUeXBlOjpTdHJp
bmcsIEpTT046OlZhbHVlOjpjcmVhdGUoKnN0cmluZyktPnRvSlNPTlN0cmluZygpIH0pOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOworICAgIH0KIAogICAgIGlmIChtX2pzb25M
b2dWYWx1ZXMuc2l6ZSgpKQogICAgICAgICBtX21lc3NhZ2UgPSBtX2pzb25Mb2dWYWx1ZXNbMF0u
dmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnRl
bnRTZWFyY2hVdGlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9D
b250ZW50U2VhcmNoVXRpbGl0aWVzLmNwcAppbmRleCBhYWE4MWUyLi5iMGMxOTQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlsaXRp
ZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29udGVudFNlYXJj
aFV0aWxpdGllcy5jcHAKQEAgLTU1LDcgKzU1LDkgQEAgc3RhdGljIFN0cmluZyBjcmVhdGVTZWFy
Y2hSZWdleFNvdXJjZShjb25zdCBTdHJpbmcmIHRleHQpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQo
Y2hhcmFjdGVyKTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgc2l6ZV90IHNpemV0RXh0cmFj
dG9yKGNvbnN0IHNpemVfdCogdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
dGVycHJldGVyL0ludGVycHJldGVyLmNwcAppbmRleCA0ZjcyNzA5Li5lZDE3NDk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKQEAg
LTU3Nyw3ICs1NzcsOSBAQCBKU1N0cmluZyogSW50ZXJwcmV0ZXI6OnN0YWNrVHJhY2VBc1N0cmlu
ZyhWTSYgdm0sIGNvbnN0IFZlY3RvcjxTdGFja0ZyYW1lPiYgc3RhYwogICAgICAgICBpZiAoaSAh
PSBzdGFja1RyYWNlLnNpemUoKSAtIDEpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4n
KTsKICAgICB9Ci0gICAgcmV0dXJuIGpzU3RyaW5nKCZ2bSwgYnVpbGRlci50b1N0cmluZygpKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biBqc1N0cmluZygmdm0sICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIEFMV0FZU19JTkxJ
TkUgc3RhdGljIEhhbmRsZXJJbmZvKiBmaW5kRXhjZXB0aW9uSGFuZGxlcihTdGFja1Zpc2l0b3Im
IHZpc2l0b3IsIENvZGVCbG9jayogY29kZUJsb2NrLCBSZXF1aXJlZEhhbmRsZXIgcmVxdWlyZWRI
YW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0
YWNrVmlzaXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tW
aXNpdG9yLmNwcAppbmRleCAxZDFmZjczLi43MGNkMTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcApAQCAtMzQ3LDcgKzM0Nyw5
IEBAIFN0cmluZyBTdGFja1Zpc2l0b3I6OkZyYW1lOjp0b1N0cmluZygpIGNvbnN0CiAgICAgICAg
ICAgICB0cmFjZUJ1aWxkLmFwcGVuZE51bWJlcihjb2x1bW4pOwogICAgICAgICB9CiAgICAgfQot
ICAgIHJldHVybiB0cmFjZUJ1aWxkLnRvU3RyaW5nKCkuaW1wbCgpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IHRyYWNlQnVpbGQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0cmluZy0+aW1w
bCgpOworICAgIENSQVNIKCk7CiB9CiAKIGludHB0cl90IFN0YWNrVmlzaXRvcjo6RnJhbWU6OnNv
dXJjZUlEKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggM2IxNzI0OC4uYmU5Mzk1MSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAKQEAgLTc2Nyw3ICs3NjcsOSBAQCBzdGF0aWMgU3RyaW5nIHJlc29sdmVQ
YXRoKGNvbnN0IERpcmVjdG9yeU5hbWUmIGRpcmVjdG9yeU5hbWUsIGNvbnN0IE1vZHVsZU5hbWUm
CiAgICAgICAgIGlmIChpICsgMSAhPSBkaXJlY3RvcnlQaWVjZXMuc2l6ZSgpKQogICAgICAgICAg
ICAgYnVpbGRlci5hcHBlbmQocGF0aFNlcGFyYXRvcigpKTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBT
dHJpbmcgYWJzb2x1dGVQYXRoKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUpCkBAIC0xMTI3LDggKzEx
MjksMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkpTQ1N0YWNrKEV4
ZWNTdGF0ZSogZXhlYykKIAogICAgIEZ1bmN0aW9uSlNDU3RhY2tGdW5jdG9yIGZ1bmN0b3IodHJh
Y2UpOwogICAgIGV4ZWMtPml0ZXJhdGUoZnVuY3Rvcik7Ci0gICAgZnByaW50ZihzdGRlcnIsICIl
cyIsIHRyYWNlLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0cmFjZS50b1N0
cmluZygpKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMiLCBzdHJpbmctPnV0ZjgoKS5k
YXRhKCkpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwor
ICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uR0NBbmRTd2VlcChFeGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db25maWdGaWxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwCmluZGV4IGJiODc2NjYuLmY3ZWNkYWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwCkBAIC00NjUsOSArNDY1
LDEyIEBAIHZvaWQgQ29uZmlnRmlsZTo6cGFyc2UoKQogICAgICAgICAgICAgV1RGOjpzZXREYXRh
RmlsZShsb2dQYXRobmFtZSk7CiAKICAgICAgICAgaWYgKCFqc2NPcHRpb25zQnVpbGRlci5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgICAgIGNvbnN0IGNoYXIqIG9wdGlvbnNTdHIgPSBqc2NPcHRpb25z
QnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCk7Ci0gICAgICAgICAgICBPcHRpb25zOjpl
bmFibGVSZXN0cmljdGVkT3B0aW9ucyh0cnVlKTsKLSAgICAgICAgICAgIE9wdGlvbnM6OnNldE9w
dGlvbnMob3B0aW9uc1N0cik7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBqc2NPcHRp
b25zQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgY29uc3QgY2hhciogb3B0
aW9uc1N0ciA9IHN0cmluZy0+dXRmOCgpLmRhdGEoKTsKKyAgICAgICAgICAgICAgICBPcHRpb25z
OjplbmFibGVSZXN0cmljdGVkT3B0aW9ucyh0cnVlKTsKKyAgICAgICAgICAgICAgICBPcHRpb25z
OjpzZXRPcHRpb25zKG9wdGlvbnNTdHIpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgIH0gZWxzZQogICAgICAgICBXVEY6OmRhdGFM
b2dGKCJFcnJvciBpbiBKU0MgQ29uZmlnIGZpbGUgb24gb3IgbmVhciBsaW5lICV1LCBwYXJzaW5n
ICclcydcbiIsIHNjYW5uZXIubGluZU51bWJlcigpLCBzY2FubmVyLmN1cnJlbnRCdWZmZXIoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVDbGllbnQuY3BwCmlu
ZGV4IDI5MTdkNzY4Li5iODY2NDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db25zb2xlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db25zb2xlQ2xpZW50LmNwcApAQCAtMTQ0LDcgKzE0NCwxMCBAQCB2b2lkIENvbnNvbGVD
bGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VU
eXBlIHR5cGUsCiAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICBidWlsZGVyLmFwcGVuZCht
ZXNzYWdlKTsKIAotICAgIFdURkxvZ0Fsd2F5cygiJXMiLCBidWlsZGVyLnRvU3RyaW5nKCkudXRm
OCgpLmRhdGEoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICBXVEZMb2dBbHdheXMoIiVzIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICBl
bHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgQ29uc29sZUNsaWVudDo6cHJpbnRDb25z
b2xlTWVzc2FnZVdpdGhBcmd1bWVudHMoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBl
IHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFJlZjxTY3Jp
cHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQpAQCAtMTcwLDcgKzE3MywxMCBAQCB2b2lkIENvbnNv
bGVDbGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2VXaXRoQXJndW1lbnRzKE1lc3NhZ2VTb3VyY2Ug
c291cmNlLCBNZXNzYQogICAgICAgICBzY29wZS5jbGVhckV4Y2VwdGlvbigpOwogICAgIH0KIAot
ICAgIFdURkxvZ0Fsd2F5cygiJXMiLCBidWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBXVEZM
b2dBbHdheXMoIiVzIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICBlbHNlCisgICAgICAg
IENSQVNIKCk7CiAKICAgICBpZiAoaXNUcmFjZU1lc3NhZ2UpIHsKICAgICAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBjYWxsU3RhY2stPnNpemUoKTsgKytpKSB7CkBAIC0xODcsNyArMTkzLDEw
IEBAIHZvaWQgQ29uc29sZUNsaWVudDo6cHJpbnRDb25zb2xlTWVzc2FnZVdpdGhBcmd1bWVudHMo
TWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhCiAgICAgICAgICAgICBhcHBlbmRVUkxBbmRQb3Np
dGlvbihjYWxsRnJhbWVCdWlsZGVyLCBjYWxsRnJhbWUuc291cmNlVVJMKCksIGNhbGxGcmFtZS5s
aW5lTnVtYmVyKCksIGNhbGxGcmFtZS5jb2x1bW5OdW1iZXIoKSk7CiAgICAgICAgICAgICBjYWxs
RnJhbWVCdWlsZGVyLmFwcGVuZCgnKScpOwogCi0gICAgICAgICAgICBXVEZMb2dBbHdheXMoIiVz
IiwgY2FsbEZyYW1lQnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gY2FsbEZyYW1lQnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICAgICAgICAgIFdURkxvZ0Fsd2F5cygiJXMiLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KICAgICB9
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29udmVy
c2lvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29udmVyc2lvbi5j
cHAKaW5kZXggOGE4N2NjNi4uNDIzYmUyNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0RhdGVDb252ZXJzaW9uLmNwcApAQCAtMTIzLDcgKzEyMyw5IEBAIFN0cmluZyBm
b3JtYXREYXRlVGltZShjb25zdCBHcmVnb3JpYW5EYXRlVGltZSYgdCwgRGF0ZVRpbWVGb3JtYXQg
Zm9ybWF0LCBib29sIGFzCiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpLmltcGwoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiBzdHJpbmctPmltcGwoKTsKKyAgICBDUkFTSCgpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9ySW5zdGFuY2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JJbnN0YW5jZS5jcHAKaW5kZXggYzE3MjQyOC4uNzhkMjk5NyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKQEAgLTE5OSw3ICsxOTksOSBA
QCBTdHJpbmcgRXJyb3JJbnN0YW5jZTo6c2FuaXRpemVkVG9TdHJpbmcoRXhlY1N0YXRlKiBleGVj
KQogICAgIGJ1aWxkZXIuYXBwZW5kKG5hbWVTdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiOiAiKTsKICAgICBidWlsZGVyLmFwcGVuZChtZXNzYWdlU3RyaW5nKTsKLSAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9v
bCBFcnJvckluc3RhbmNlOjptYXRlcmlhbGl6ZUVycm9ySW5mb0lmTmVlZGVkKFZNJiB2bSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAK
aW5kZXggNjk5MTQ0Yi4uNmUwMWI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKQEAgLTIxMSw3ICsyMTEsOSBAQCBzdGF0aWMg
U3RyaW5nIG5vdEFGdW5jdGlvblNvdXJjZUFwcGVuZGVyKGNvbnN0IFN0cmluZyYgb3JpZ2luYWxN
ZXNzYWdlLCBjb25zdCBTdAogICAgIH0KICAgICBidWlsZGVyLmFwcGVuZCgnKScpOwogCi0gICAg
cmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IHN0YXRpYyBTdHJpbmcgaW52YWxpZFBhcmFtZXRlckluU291cmNlQXBwZW5kZXIoY29uc3QgU3Ry
aW5nJiBvcmlnaW5hbE1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVGV4dCwgUnVudGltZVR5
cGUgdHlwZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlVGV4dFdoZXJlRXJyb3JPY2N1cnJlZCBvY2N1
cnJlbmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rp
b25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlv
bkNvbnN0cnVjdG9yLmNwcAppbmRleCAxYjcyYWY1Li5hYWJmZjY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcApAQCAt
MTI1LDIyICsxMjUsMjIgQEAgSlNPYmplY3QqIGNvbnN0cnVjdEZ1bmN0aW9uU2tpcHBpbmdFdmFs
RW5hYmxlZENoZWNrKAogICAgICAgICBwcm9ncmFtID0gbWFrZVN0cmluZygieyIsIHByZWZpeCwg
ZnVuY3Rpb25OYW1lLnN0cmluZygpLCAiKCkge1xuIiwgYm9keSwgIlxufX0iKTsKICAgICB9IGVs
c2UgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJvb2wgc3VjY2Vz
cyA9IHRydWU7Ci0gICAgICAgIHN1Y2Nlc3MgJj0gYnVpbGRlci50cnlBcHBlbmQoJ3snKTsKLSAg
ICAgICAgc3VjY2VzcyAmPSBidWlsZGVyLnRyeUFwcGVuZChwcmVmaXgpOwotICAgICAgICBzdWNj
ZXNzICY9IGJ1aWxkZXIudHJ5QXBwZW5kKGZ1bmN0aW9uTmFtZS5zdHJpbmcoKSk7Ci0gICAgICAg
IHN1Y2Nlc3MgJj0gYnVpbGRlci50cnlBcHBlbmQoJygnKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQoJ3snKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQocHJlZml4KTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQoZnVuY3Rpb25OYW1lLnN0cmluZygpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQo
JygnKTsKICAgICAgICAgU3RyaW5nQnVpbGRlciBwYXJhbWV0ZXJCdWlsZGVyOwogICAgICAgICBh
dXRvIHZpZXdXaXRoU3RyaW5nID0gYXJncy5hdCgwKS50b1N0cmluZyhleGVjKS0+dmlld1dpdGhV
bmRlcmx5aW5nU3RyaW5nKGV4ZWMpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBudWxscHRyKTsKLSAgICAgICAgc3VjY2VzcyAmPSBwYXJhbWV0ZXJCdWlsZGVyLnRyeUFwcGVu
ZCh2aWV3V2l0aFN0cmluZy52aWV3KTsKKyAgICAgICAgcGFyYW1ldGVyQnVpbGRlci5hcHBlbmQo
dmlld1dpdGhTdHJpbmcudmlldyk7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAxOyBpIDwgYXJn
cy5zaXplKCkgLSAxOyBpKyspIHsKLSAgICAgICAgICAgIHN1Y2Nlc3MgJj0gcGFyYW1ldGVyQnVp
bGRlci50cnlBcHBlbmRMaXRlcmFsKCIsICIpOworICAgICAgICAgICAgcGFyYW1ldGVyQnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCIsICIpOwogICAgICAgICAgICAgYXV0byB2aWV3V2l0aFN0cmluZyA9
IGFyZ3MuYXQoaSkudG9TdHJpbmcoZXhlYyktPnZpZXdXaXRoVW5kZXJseWluZ1N0cmluZyhleGVj
KTsKICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwotICAg
ICAgICAgICAgc3VjY2VzcyAmPSBwYXJhbWV0ZXJCdWlsZGVyLnRyeUFwcGVuZCh2aWV3V2l0aFN0
cmluZy52aWV3KTsKKyAgICAgICAgICAgIHBhcmFtZXRlckJ1aWxkZXIuYXBwZW5kKHZpZXdXaXRo
U3RyaW5nLnZpZXcpOwogICAgICAgICB9Ci0gICAgICAgIGlmICghc3VjY2VzcykgeworCisgICAg
ICAgIGlmIChidWlsZGVyLmZhaWxlZCgpIHx8IHBhcmFtZXRlckJ1aWxkZXIuZmFpbGVkKCkpIHsK
ICAgICAgICAgICAgIHRocm93T3V0T2ZNZW1vcnlFcnJvcihleGVjLCBzY29wZSk7CiAgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQpAQCAtMTQ4LDcgKzE0OCw4IEBAIEpTT2Jq
ZWN0KiBjb25zdHJ1Y3RGdW5jdGlvblNraXBwaW5nRXZhbEVuYWJsZWRDaGVjaygKICAgICAgICAg
ewogICAgICAgICAgICAgLy8gVGhlIHNwZWMgbWFuZGF0ZXMgdGhhdCB0aGUgcGFyYW1ldGVycyBw
YXJzZSBhcyBhIHZhbGlkIHBhcmFtZXRlciBsaXN0CiAgICAgICAgICAgICAvLyBpbmRlcGVuZGVu
dCBvZiB0aGUgZnVuY3Rpb24gYm9keS4KLSAgICAgICAgICAgIFN0cmluZyBwcm9ncmFtID0gbWFr
ZVN0cmluZygiKCIsIHByZWZpeCwgIigiLCBwYXJhbWV0ZXJCdWlsZGVyLnRvU3RyaW5nKCksICIp
e1xuXG59KSIpOworICAgICAgICAgICAgYXV0byBzdHJpbmcgPSBwYXJhbWV0ZXJCdWlsZGVyLnRv
U3RyaW5nKCkudmFsdWUoKTsKKyAgICAgICAgICAgIFN0cmluZyBwcm9ncmFtID0gbWFrZVN0cmlu
ZygiKCIsIHByZWZpeCwgIigiLCBzdHJpbmcsICIpe1xuXG59KSIpOwogICAgICAgICAgICAgU291
cmNlQ29kZSBzb3VyY2UgPSBtYWtlU291cmNlKHByb2dyYW0sIHNvdXJjZU9yaWdpbiwgc291cmNl
VVJMLCBwb3NpdGlvbik7CiAgICAgICAgICAgICBKU1ZhbHVlIGV4Y2VwdGlvbjsKICAgICAgICAg
ICAgIGNoZWNrU3ludGF4KGV4ZWMsIHNvdXJjZSwgJmV4Y2VwdGlvbik7CkBAIC0xNTgsMTkgKzE1
OSwyMCBAQCBKU09iamVjdCogY29uc3RydWN0RnVuY3Rpb25Ta2lwcGluZ0V2YWxFbmFibGVkQ2hl
Y2soCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBzdWNjZXNzICY9IGJ1aWxk
ZXIudHJ5QXBwZW5kKHBhcmFtZXRlckJ1aWxkZXIpOwotICAgICAgICBzdWNjZXNzICY9IGJ1aWxk
ZXIudHJ5QXBwZW5kTGl0ZXJhbCgiKSB7XG4iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQocGFy
YW1ldGVyQnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSB7XG4iKTsK
ICAgICAgICAgYXV0byBib2R5ID0gYXJncy5hdChhcmdzLnNpemUoKSAtIDEpLnRvV1RGU3RyaW5n
KGV4ZWMpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKICAg
ICAgICAgY2hlY2tCb2R5KGJvZHkpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBudWxscHRyKTsKLSAgICAgICAgc3VjY2VzcyAmPSBidWlsZGVyLnRyeUFwcGVuZChib2R5KTsK
LSAgICAgICAgc3VjY2VzcyAmPSBidWlsZGVyLnRyeUFwcGVuZExpdGVyYWwoIlxufX0iKTsKLSAg
ICAgICAgaWYgKCFzdWNjZXNzKSB7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGJvZHkpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxufX0iKTsKKyAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcHJvZ3JhbSA9ICpzdHJpbmc7
CisgICAgICAgIGVsc2UgewogICAgICAgICAgICAgdGhyb3dPdXRPZk1lbW9yeUVycm9yKGV4ZWMs
IHNjb3BlKTsKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9Ci0gICAgICAg
IHByb2dyYW0gPSBidWlsZGVyLnRvU3RyaW5nKCk7CiAgICAgfQogCiAgICAgU291cmNlQ29kZSBz
b3VyY2UgPSBtYWtlU291cmNlKHByb2dyYW0sIHNvdXJjZU9yaWdpbiwgc291cmNlVVJMLCBwb3Np
dGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0
ZVRpbWVGb3JtYXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVU
aW1lRm9ybWF0LmNwcAppbmRleCBjOTIwYWNmLi4yYzJmMDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAKQEAgLTY0Niw3
ICs2NDYsMTEgQEAgdm9pZCBJbnRsRGF0ZVRpbWVGb3JtYXQ6OmluaXRpYWxpemVEYXRlVGltZUZv
cm1hdChFeGVjU3RhdGUmIGV4ZWMsIEpTVmFsdWUgbG9jYWwKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIFN0cmluZyBza2VsZXRvbiA9IHNrZWxldG9uQnVpbGRlci50b1N0cmluZygpOwor
ICAgIFN0cmluZyBza2VsZXRvbjsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBza2VsZXRvbkJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgc2tlbGV0b24gPSAqc3RyaW5nOworICAgIGVsc2UKKyAg
ICAgICAgQ1JBU0goKTsKICAgICBTdHJpbmdWaWV3IHNrZWxldG9uVmlldyhza2VsZXRvbik7CiAg
ICAgVmVjdG9yPFVDaGFyLCAzMj4gcGF0dGVybkJ1ZmZlcigzMik7CiAgICAgc3RhdHVzID0gVV9a
RVJPX0VSUk9SOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNw
cAppbmRleCA0YTdmNmRlLi5mNjk3OGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsT2JqZWN0LmNwcApAQCAtMjU4LDcgKzI1OCw5IEBAIHN0YXRpYyBTdHJpbmcgcHJp
dmF0ZVVzZUxhbmdUYWcoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcnRzLCBzaXplX3Qgc3RhcnRJ
bmRleCkKICAgICBpZiAoY3VycmVudEluZGV4IDwgbnVtUGFydHMpCiAgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKIAotICAgIHJldHVybiBwcml2YXRldXNlLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gcHJpdmF0ZXVzZS50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIGNhbm9uaWNhbExhbmdUYWcoY29u
c3QgVmVjdG9yPFN0cmluZz4mIHBhcnRzKQpAQCAtMzkxLDcgKzM5MywxMCBAQCBzdGF0aWMgU3Ry
aW5nIGNhbm9uaWNhbExhbmdUYWcoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcnRzKQogICAgICAg
ICBpZiAoIW51bUV4dFBhcnRzKQogICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAg
ICAgIGV4dGVuc2lvbnMuYXBwZW5kKGV4dGVuc2lvbi50b1N0cmluZygpKTsKKyAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gZXh0ZW5zaW9uLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBleHRlbnNp
b25zLmFwcGVuZCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsK
ICAgICB9CiAKICAgICAvLyBBZGQgZXh0ZW5zaW9ucyB0byBjYW5vbmljYWwgc29ydGVkIGJ5IHNp
bmdsZXRvbi4KQEAgLTQxOSw3ICs0MjQsOSBAQCBzdGF0aWMgU3RyaW5nIGNhbm9uaWNhbExhbmdU
YWcoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcnRzKQogCiAgICAgLy8gRklYTUU6IFJlcGxhY2Ug
c3VidGFncyB3aXRoIHRoZWlyIHByZWZlcnJlZCB2YWx1ZXMuCiAKLSAgICByZXR1cm4gY2Fub25p
Y2FsLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gY2Fub25pY2FsLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBT
dHJpbmcgZ3JhbmRmYXRoZXJlZExhbmdUYWcoY29uc3QgU3RyaW5nJiBsb2NhbGUpCkBAIC02MjQs
NyArNjMxLDEwIEBAIFN0cmluZyByZW1vdmVVbmljb2RlTG9jYWxlRXh0ZW5zaW9uKGNvbnN0IFN0
cmluZyYgbG9jYWxlKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQocGFydHNbcF0pOwogICAg
ICAgICB9CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBNYXRjaGVyUmVzdWx0IGxvb2t1cE1hdGNoZXIo
RXhlY1N0YXRlJiBzdGF0ZSwgY29uc3QgSGFzaFNldDxTdHJpbmc+JiBhdmFpbGFibGVMb2NhbGVz
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcmVxdWVzdGVkTG9jYWxlcykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNw
cAppbmRleCA3MzEzNjczLi4xOWI1MmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCkBAIC0xNTEsNyAr
MTUxLDkgQEAgc3RhdGljIEpTVmFsdWUgZW5jb2RlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQml0
bWFwPDI1Nj4mIGRvTm90RXNjYXBlLCBjb25zdCBDaGEKICAgICAgICAgfQogICAgIH0KIAotICAg
IHJldHVybiBqc1N0cmluZyhleGVjLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGV4
ZWMsICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBKU1ZhbHVlIGVuY29kZShF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEJpdG1hcDwyNTY+JiBkb05vdEVzY2FwZSkKQEAgLTIzMCw3
ICsyMzIsMTAgQEAgc3RhdGljIEpTVmFsdWUgZGVjb2RlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
Q2hhclR5cGUqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgsIGMKICAgICAgICAgYnVpbGRlci5hcHBl
bmQoYyk7CiAgICAgfQogICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICByZXR1cm4ganNTdHJpbmco
JnZtLCBidWlsZGVyLnRvU3RyaW5nKCkpOworCisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4ganNTdHJpbmcoJnZtLCAqc3RyaW5nKTsKKyAg
ICBDUkFTSCgpOwogfQogCiBzdGF0aWMgSlNWYWx1ZSBkZWNvZGUoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBCaXRtYXA8MjU2PiYgZG9Ob3RVbmVzY2FwZSwgYm9vbCBzdHJpY3QpCkBAIC02MDMsNyAr
NjA4LDkgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jRXNjYXBlKEV4
ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgICAgICAgICAgYXBwZW5kQnl0ZUFzSGV4KHN0YXRp
Y19jYXN0PExDaGFyPih1KSwgYnVpbGRlcik7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsIGJ1aWxkZXIudG9TdHJpbmco
KSk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsICpzdHJpbmcpOworICAgICAgICAg
ICAgQ1JBU0goKTsKICAgICAgICAgfQogCiAgICAgICAgIGNvbnN0IFVDaGFyKiBjID0gdmlldy5j
aGFyYWN0ZXJzMTYoKTsKQEAgLTYyMiw3ICs2MjksOSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGdsb2JhbEZ1bmNFc2NhcGUoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAKLSAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsIGJ1aWxkZXIudG9TdHJp
bmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgIHJldHVybiBqc1N0cmluZyhleGVjLCAqc3RyaW5nKTsKKyAgICAgICAgQ1JBU0go
KTsKICAgICB9KSk7CiB9CiAKQEAgLTY3OCw3ICs2ODcsOSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGdsb2JhbEZ1bmNVbmVzY2FwZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KIAotICAgICAgICByZXR1cm4ganNTdHJpbmcoZXhlYywgYnVpbGRlci50
b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsICpzdHJpbmcpOworICAgICAgICBD
UkFTSCgpOwogICAgIH0pKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09OT2JqZWN0LmNwcAppbmRleCA3ZTliM2Q2YS4uZDdjMDZkZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKQEAgLTI3OCw3ICsyNzgsOSBAQCBKU1Zh
bHVlIFN0cmluZ2lmaWVyOjpzdHJpbmdpZnkoSlNWYWx1ZSB2YWx1ZSkKICAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7CiAKICAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGpzU3Ry
aW5nKG1fZXhlYywgcmVzdWx0LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJl
c3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4ganNTdHJpbmcobV9leGVjLCAqc3RyaW5n
KTsKKyAgICBDUkFTSCgpOwogfQogCiBBTFdBWVNfSU5MSU5FIEpTVmFsdWUgU3RyaW5naWZpZXI6
OnRvSlNPTihKU1ZhbHVlIHZhbHVlLCBjb25zdCBQcm9wZXJ0eU5hbWVGb3JGdW5jdGlvbkNhbGwm
IHByb3BlcnR5TmFtZSkKQEAgLTM1Nyw3ICszNTksNyBAQCBTdHJpbmdpZmllcjo6U3RyaW5naWZ5
UmVzdWx0IFN0cmluZ2lmaWVyOjphcHBlbmRTdHJpbmdpZmllZFZhbHVlKFN0cmluZ0J1aWxkZXIm
CiAgICAgaWYgKHZhbHVlLmlzU3RyaW5nKCkpIHsKICAgICAgICAgY29uc3QgU3RyaW5nJiBzdHJp
bmcgPSBhc1N0cmluZyh2YWx1ZSktPnZhbHVlKG1fZXhlYyk7CiAgICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIFN0cmluZ2lmeUZhaWxlZCk7Ci0gICAgICAgIGlmIChidWlsZGVyLnRy
eUFwcGVuZFF1b3RlZEpTT05TdHJpbmcoc3RyaW5nKSkKKyAgICAgICAgaWYgKGJ1aWxkZXIuYXBw
ZW5kUXVvdGVkSlNPTlN0cmluZyhzdHJpbmcpKQogICAgICAgICAgICAgcmV0dXJuIFN0cmluZ2lm
eVN1Y2NlZWRlZDsKICAgICAgICAgdGhyb3dPdXRPZk1lbW9yeUVycm9yKG1fZXhlYywgc2NvcGUp
OwogICAgICAgICByZXR1cm4gU3RyaW5naWZ5RmFpbGVkOwpAQCAtNTA0LDggKzUwNiwxMiBAQCBi
b29sIFN0cmluZ2lmaWVyOjpIb2xkZXI6OmFwcGVuZE5leHRQcm9wZXJ0eShTdHJpbmdpZmllciYg
c3RyaW5naWZpZXIsIFN0cmluZ0J1aQogICAgIC8vIExhc3QgdGltZSB0aHJvdWdoLCBmaW5pc2gg
dXAgYW5kIHJldHVybiBmYWxzZS4KICAgICBpZiAobV9pbmRleCA9PSBtX3NpemUpIHsKICAgICAg
ICAgc3RyaW5naWZpZXIudW5pbmRlbnQoKTsKLSAgICAgICAgaWYgKG1fc2l6ZSAmJiBidWlsZGVy
W2J1aWxkZXIubGVuZ3RoKCkgLSAxXSAhPSAneycpCi0gICAgICAgICAgICBzdHJpbmdpZmllci5z
dGFydE5ld0xpbmUoYnVpbGRlcik7CisgICAgICAgIGlmIChtX3NpemUpIHsKKyAgICAgICAgICAg
IGlmIChidWlsZGVyLmZhaWxlZCgpKQorICAgICAgICAgICAgICAgIENSQVNIKCk7CisgICAgICAg
ICAgICBpZiAoKmJ1aWxkZXJbYnVpbGRlci5sZW5ndGgoKSAtIDFdICE9ICd7JykKKyAgICAgICAg
ICAgICAgICBzdHJpbmdpZmllci5zdGFydE5ld0xpbmUoYnVpbGRlcik7CisgICAgICAgIH0KICAg
ICAgICAgYnVpbGRlci5hcHBlbmQobV9pc0FycmF5ID8gJ10nIDogJ30nKTsKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KQEAgLTU0OCw3ICs1NTQsOSBAQCBib29sIFN0cmluZ2lmaWVyOjpI
b2xkZXI6OmFwcGVuZE5leHRQcm9wZXJ0eShTdHJpbmdpZmllciYgc3RyaW5naWZpZXIsIFN0cmlu
Z0J1aQogICAgICAgICByb2xsQmFja1BvaW50ID0gYnVpbGRlci5sZW5ndGgoKTsKIAogICAgICAg
ICAvLyBBcHBlbmQgdGhlIHNlcGFyYXRvciBzdHJpbmcuCi0gICAgICAgIGlmIChidWlsZGVyW3Jv
bGxCYWNrUG9pbnQgLSAxXSAhPSAneycpCisgICAgICAgIGlmIChidWlsZGVyLmZhaWxlZCgpKQor
ICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgaWYgKCpidWlsZGVyW3JvbGxCYWNrUG9pbnQg
LSAxXSAhPSAneycpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnLCcpOwogICAgICAgICBz
dHJpbmdpZmllci5zdGFydE5ld0xpbmUoYnVpbGRlcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAKaW5kZXggZjAwZmUwNy4uYjg2ODY4YSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAK
QEAgLTQ2NiwxMCArNDY2LDE2IEBAIHNsb3dQYXRoQmVnaW46CiAgICAgfSBlbHNlIHsKICAgICAg
ICAgaWYgKG1fYnVpbGRlci5pczhCaXQoKSkgewogICAgICAgICAgICAgdG9rZW4uc3RyaW5nSXM4
Qml0ID0gMTsKLSAgICAgICAgICAgIHRva2VuLnN0cmluZ1Rva2VuOCA9IG1fYnVpbGRlci5jaGFy
YWN0ZXJzOCgpOworICAgICAgICAgICAgaWYgKGF1dG8gY2hhcnMgPSBtX2J1aWxkZXIuY2hhcmFj
dGVyczgoKSkKKyAgICAgICAgICAgICAgICB0b2tlbi5zdHJpbmdUb2tlbjggPSAqY2hhcnM7Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgIHRva2VuLnN0cmluZ0lzOEJpdCA9IDA7Ci0gICAgICAgICAgICB0b2tl
bi5zdHJpbmdUb2tlbjE2ID0gbV9idWlsZGVyLmNoYXJhY3RlcnMxNigpOworICAgICAgICAgICAg
aWYgKGF1dG8gY2hhcnMgPSBtX2J1aWxkZXIuY2hhcmFjdGVyczE2KCkpCisgICAgICAgICAgICAg
ICAgdG9rZW4uc3RyaW5nVG9rZW4xNiA9ICpjaGFyczsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAgICAgICAgIHRva2VuLnN0cmluZ0xlbmd0
aCA9IG1fYnVpbGRlci5sZW5ndGgoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09wdGlvbnMuY3BwCmluZGV4IGRmOTgyMjAuLjViNGRjMTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCkBAIC01OTUsNyArNTk1LDEwIEBAIHZvaWQgT3B0
aW9uczo6ZHVtcE9wdGlvbnNJZk5lZWRlZCgpCiAKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOwogICAgICAgICBkdW1wQWxsT3B0aW9ucyhidWlsZGVyLCBsZXZlbCwgdGl0bGUsIG51bGxw
dHIsICIgICAiLCAiXG4iLCBEdW1wRGVmYXVsdHMpOwotICAgICAgICBkYXRhTG9nKGJ1aWxkZXIu
dG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgICAgIGRhdGFMb2coKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIENSQVNIKCk7CiAgICAgfQogfQogCkBAIC04MDQsNyArODA3LDEwIEBAIHZvaWQgT3B0aW9u
czo6ZHVtcEFsbE9wdGlvbnMoRklMRSogc3RyZWFtLCBEdW1wTGV2ZWwgbGV2ZWwsIGNvbnN0IGNo
YXIqIHRpdGxlKQogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBkdW1wQWxsT3B0
aW9ucyhidWlsZGVyLCBsZXZlbCwgdGl0bGUsIG51bGxwdHIsICIgICAiLCAiXG4iLCBEdW1wRGVm
YXVsdHMpOwotICAgIGZwcmludGYoc3RyZWFtLCAiJXMiLCBidWlsZGVyLnRvU3RyaW5nKCkudXRm
OCgpLmRhdGEoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICBmcHJpbnRmKHN0cmVhbSwgIiVzIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAg
ICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgT3B0aW9uczo6ZHVtcE9wdGlvbihT
dHJpbmdCdWlsZGVyJiBidWlsZGVyLCBEdW1wTGV2ZWwgbGV2ZWwsIE9wdGlvbnM6OklEIGlkLApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAK
aW5kZXggNzYzMTA0Ny4uOGJkZDJkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCkBAIC00NjcsNyArNDY3LDkgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIHJlZ0V4cFByb3RvR2V0dGVyU291cmNlSW50ZXJuYWwoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBTdHIKICAgICAgICAgICAgIHByZXZpb3VzQ2hhcmFjdGVyV2FzQmFja3NsYXNo
ID0gY2ggPT0gJ1xcJzsKICAgICB9CiAKLSAgICByZXR1cm4ganNTdHJpbmcoZXhlYywgcmVzdWx0
LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4ganNTdHJpbmcoZXhlYywgKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0K
IAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlclNvdXJjZShF
eGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Nh
bXBsaW5nUHJvZmlsZXIuY3BwCmluZGV4IDU5MmFmNDEuLmYwOGM0ZmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCkBAIC05MDQs
NyArOTA0LDkgQEAgU3RyaW5nIFNhbXBsaW5nUHJvZmlsZXI6OnN0YWNrVHJhY2VzQXNKU09OKCkK
IAogICAgIGNsZWFyRGF0YShsb2NrZXIpOwogCi0gICAgcmV0dXJuIGpzb24udG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBqc29uLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgU2FtcGxpbmdQcm9maWxlcjo6cmVnaXN0
ZXJGb3JSZXBvcnRBdEV4aXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RhY2tGcmFtZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFj
a0ZyYW1lLmNwcAppbmRleCA5ZjJkNjBkLi40OGEyMmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdGFja0ZyYW1lLmNwcApAQCAtMTM5LDcgKzEzOSw5IEBAIFN0cmluZyBT
dGFja0ZyYW1lOjp0b1N0cmluZyhWTSYgdm0pIGNvbnN0CiAgICAgICAgICAgICB0cmFjZUJ1aWxk
LmFwcGVuZE51bWJlcihjb2x1bW4pOwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiB0cmFj
ZUJ1aWxkLnRvU3RyaW5nKCkuaW1wbCgpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHRyYWNlQnVp
bGQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0cmluZy0+aW1wbCgpOworICAgIENSQVNI
KCk7CiB9CiAKIHZvaWQgU3RhY2tGcmFtZTo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlz
aXRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0Nv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0
cnVjdG9yLmNwcAppbmRleCAwYjEwZDhmLi41ZWQyZWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCkBAIC0xMjUsNyArMTI1
LDkgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nRnJvbUNvZGVQ
b2ludChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgfQogCiAgICAgc2NvcGUucmVsZWFzZSgpOwotICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcoZXhlYywgYnVpbGRlci50b1N0cmluZygp
KSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKGV4ZWMsICpzdHJpbmcpKTsKKyAgICBDUkFT
SCgpOwogfQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RX
aXRoU3RyaW5nQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKaW5kZXggYTBkMzYwMS4uNThj
Y2Q1NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJv
dG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90
b3R5cGUuY3BwCkBAIC0yODAsNyArMjgwLDkgQEAgc3RhdGljIE5FVkVSX0lOTElORSBTdHJpbmcg
c3Vic3RpdHV0ZUJhY2tyZWZlcmVuY2VzU2xvdyhTdHJpbmdWaWV3IHJlcGxhY2VtZW50LAogICAg
IGlmIChyZXBsYWNlbWVudC5sZW5ndGgoKSAtIG9mZnNldCkKICAgICAgICAgc3Vic3RpdHV0ZWRS
ZXBsYWNlbWVudC5hcHBlbmQocmVwbGFjZW1lbnQuc3Vic3RyaW5nKG9mZnNldCkpOwogCi0gICAg
cmV0dXJuIHN1YnN0aXR1dGVkUmVwbGFjZW1lbnQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBzdWJzdGl0dXRlZFJlcGxhY2VtZW50LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGlubGluZSBTdHJpbmcgc3Vic3RpdHV0ZUJh
Y2tyZWZlcmVuY2VzSW5saW5lKGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnQsIFN0cmluZ1ZpZXcg
c291cmNlLCBjb25zdCBpbnQqIG92ZWN0b3IsIFJlZ0V4cCogcmVnKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQcm9maWxlci5jcHAKaW5kZXggMGY4NWVmOC4uN2FlOTc0
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVy
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlUHJvZmlsZXIuY3Bw
CkBAIC0xMDQsOCArMTA0LDEwIEBAIFN0cmluZyBUeXBlUHJvZmlsZXI6OnR5cGVJbmZvcm1hdGlv
bkZvckV4cHJlc3Npb25BdE9mZnNldChUeXBlUHJvZmlsZXJTZWFyY2hEZXNjCiAgICAgICAgIGpz
b24uYXBwZW5kTGl0ZXJhbCgiZmFsc2UiKTsKIAogICAgIGpzb24uYXBwZW5kKCd9Jyk7Ci0gICAg
Ci0gICAgcmV0dXJuIGpzb24udG9TdHJpbmcoKTsKKworICAgIGlmIChhdXRvIHN0cmluZyA9IGpz
b24udG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogVHlwZUxvY2F0aW9uKiBUeXBlUHJvZmlsZXI6OmZpbmRMb2NhdGlvbih1bnNpZ25lZCBkaXZv
dCwgaW50cHRyX3Qgc291cmNlSUQsIFR5cGVQcm9maWxlclNlYXJjaERlc2NyaXB0b3IgZGVzY3Jp
cHRvciwgVk0mIHZtKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
VHlwZVNldC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlU2V0LmNwcApp
bmRleCA3YTQxMmU2Li5jM2EwNWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9UeXBlU2V0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9U
eXBlU2V0LmNwcApAQCAtMTMxLDcgKzEzMSw5IEBAIFN0cmluZyBUeXBlU2V0OjpkdW1wVHlwZXMo
KSBjb25zdAogICAgICAgICBzZWVuLmFwcGVuZChsZWFzdENvbW1vbkFuY2VzdG9yKCkpOwogICAg
IH0KIAotICAgIHJldHVybiBzZWVuLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
c2Vlbi50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiBib29sIFR5cGVTZXQ6OmRvZXNUeXBlQ29uZm9ybVRvKFJ1bnRpbWVUeXBlTWFzayB0ZXN0
KSBjb25zdApAQCAtMzE3LDcgKzMxOSw5IEBAIFN0cmluZyBUeXBlU2V0Ojp0b0pTT05TdHJpbmco
KSBjb25zdAogICAgIGpzb24uYXBwZW5kKCddJyk7CiAKICAgICBqc29uLmFwcGVuZCgnfScpOwot
ICAgIHJldHVybiBqc29uLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0ganNvbi50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBT
dHJ1Y3R1cmVTaGFwZTo6U3RydWN0dXJlU2hhcGUoKQpAQCAtMzYyLDggKzM2NiwxMSBAQCBTdHJp
bmcgU3RydWN0dXJlU2hhcGU6OnByb3BlcnR5SGFzaCgpCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KG1fcHJvdG8tPnByb3BlcnR5SGFzaCgpKTsKICAgICB9CiAKLSAgICBtX3Byb3BlcnR5SGFzaCA9
IHN0ZDo6bWFrZV91bmlxdWU8U3RyaW5nPihidWlsZGVyLnRvU3RyaW5nKCkpOwotICAgIHJldHVy
biAqbV9wcm9wZXJ0eUhhc2g7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKSB7CisgICAgICAgIG1fcHJvcGVydHlIYXNoID0gc3RkOjptYWtlX3VuaXF1ZTxTdHJpbmc+
KCpzdHJpbmcpOworICAgICAgICByZXR1cm4gKm1fcHJvcGVydHlIYXNoOworICAgIH0KKyAgICBD
UkFTSCgpOwogfQogCiBTdHJpbmcgU3RydWN0dXJlU2hhcGU6OmxlYXN0Q29tbW9uQW5jZXN0b3Io
Y29uc3QgVmVjdG9yPFJlZjxTdHJ1Y3R1cmVTaGFwZT4+JiBzaGFwZXMpCkBAIC00MjcsNyArNDM0
LDkgQEAgU3RyaW5nIFN0cnVjdHVyZVNoYXBlOjpzdHJpbmdSZXByZXNlbnRhdGlvbigpCiAKICAg
ICByZXByZXNlbnRhdGlvbi5hcHBlbmQoJ30nKTsKIAotICAgIHJldHVybiByZXByZXNlbnRhdGlv
bi50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlcHJlc2VudGF0aW9uLnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmlu
ZyBTdHJ1Y3R1cmVTaGFwZTo6dG9KU09OU3RyaW5nKCkgY29uc3QKQEAgLTQ5NCw3ICs1MDMsOSBA
QCBTdHJpbmcgU3RydWN0dXJlU2hhcGU6OnRvSlNPTlN0cmluZygpIGNvbnN0CiAKICAgICBqc29u
LmFwcGVuZCgnfScpOwogCi0gICAgcmV0dXJuIGpzb24udG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBqc29uLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpTdHJ1Y3R1
cmVEZXNjcmlwdGlvbj4gU3RydWN0dXJlU2hhcGU6Omluc3BlY3RvclJlcHJlc2VudGF0aW9uKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcAppbmRleCBlNmNkZDUwLi5jNGQ4ZGVkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RSZWdFeHAuY3BwCkBAIC0zMjksMTIgKzMyOSwxNSBAQCBz
dGF0aWMgUmVnRXhwKiBwYXJzZVJlZ0V4cExpbmUoVk0mIHZtLCBjaGFyKiBsaW5lLCBpbnQgbGlu
ZUxlbmd0aCwgY29uc3QgY2hhcioqCiAKICAgICArK2k7CiAKLSAgICBSZWdFeHAqIHIgPSBSZWdF
eHA6OmNyZWF0ZSh2bSwgcGF0dGVybi50b1N0cmluZygpLCByZWdFeHBGbGFncyhsaW5lICsgaSkp
OwotICAgIGlmICghci0+aXNWYWxpZCgpKSB7Ci0gICAgICAgICpyZWdleHBFcnJvciA9IHItPmVy
cm9yTWVzc2FnZSgpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBwYXR0ZXJuLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgUmVnRXhwKiByID0gUmVnRXhwOjpj
cmVhdGUodm0sICpzdHJpbmcsIHJlZ0V4cEZsYWdzKGxpbmUgKyBpKSk7CisgICAgICAgIGlmICgh
ci0+aXNWYWxpZCgpKSB7CisgICAgICAgICAgICAqcmVnZXhwRXJyb3IgPSByLT5lcnJvck1lc3Nh
Z2UoKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CisgICAgICAgIHJl
dHVybiByOwogICAgIH0KLSAgICByZXR1cm4gcjsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMg
UmVnRXhwVGVzdCogcGFyc2VUZXN0TGluZShjaGFyKiBsaW5lLCBpbnQgbGluZUxlbmd0aCkKQEAg
LTM3Nyw4ICszODAsMTEgQEAgc3RhdGljIFJlZ0V4cFRlc3QqIHBhcnNlVGVzdExpbmUoY2hhciog
bGluZSwgaW50IGxpbmVMZW5ndGgpCiAgICAgaW50IHN0YXJ0LCBlbmQ7CiAgICAgCiAgICAgUmVn
RXhwVGVzdCogcmVzdWx0ID0gbmV3IFJlZ0V4cFRlc3QoKTsKLSAgICAKLSAgICByZXN1bHQtPnN1
YmplY3QgPSBzdWJqZWN0U3RyaW5nLnRvU3RyaW5nKCk7CisKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBzdWJqZWN0U3RyaW5nLnRvU3RyaW5nKCkpCisgICAgICAgIHJlc3VsdC0+c3ViamVjdCA9ICpz
dHJpbmc7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIHJlc3VsdC0+b2Zmc2V0ID0g
b2Zmc2V0OwogICAgIHJlc3VsdC0+cmVzdWx0ID0gbWF0Y2hSZXN1bHQ7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9GdW5jdGlvbk92ZXJyaWRlcy5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuY3BwCmluZGV4IGU4M2I2
ZWUuLjRhYzI3YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9GdW5j
dGlvbk92ZXJyaWRlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0
aW9uT3ZlcnJpZGVzLmNwcApAQCAtMjE4LDEzICsyMTgsMTggQEAgc3RhdGljIFN0cmluZyBwYXJz
ZUNsYXVzZShjb25zdCBjaGFyKiBrZXl3b3JkLCBzaXplX3Qga2V5d29yZExlbmd0aCwgRklMRSog
ZmlsZSwKICAgICAgICAgICAgICAgICBGQUlMX1dJVEhfRVJST1IoU1lOVEFYX0VSUk9SLCAoIlVu
ZXhwZWN0ZWQgY2hhcmFjdGVycyBhZnRlciAnIiwga2V5d29yZCwgIicgY2xhdXNlIGVuZCBkZWxp
bWl0ZXIgJyIsIGRlbGltaXRlciwgIic6XG4iLCBsaW5lLCAiXG4iKSk7CiAKICAgICAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKGxpbmUsIHAgLSBsaW5lICsgMSk7Ci0gICAgICAgICAgICByZXR1cm4g
YnVpbGRlci50b1N0cmluZygpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICAg
ICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgICAgICBidWlsZGVyLmFwcGVuZChsaW5lKTsKIAog
ICAgIH0gd2hpbGUgKChsaW5lID0gZmdldHMoYnVmZmVyLCBidWZmZXJTaXplLCBmaWxlKSkpOwog
Ci0gICAgRkFJTF9XSVRIX0VSUk9SKFNZTlRBWF9FUlJPUiwgKCInIiwga2V5d29yZCwgIicgY2xh
dXNlIGVuZCBkZWxpbWl0ZXIgJyIsIGRlbGltaXRlciwgIicgbm90IGZvdW5kOlxuIiwgYnVpbGRl
ci50b1N0cmluZygpLCAiXG4iLCAiQXJlIHlvdSBtaXNzaW5nIGEgJ30nIGJlZm9yZSB0aGUgZGVs
aW1pdGVyP1xuIikpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgRkFJTF9XSVRIX0VSUk9SKFNZTlRBWF9FUlJPUiwgKCInIiwga2V5d29yZCwgIicg
Y2xhdXNlIGVuZCBkZWxpbWl0ZXIgJyIsIGRlbGltaXRlciwgIicgbm90IGZvdW5kOlxuIiwgKnN0
cmluZywgIlxuIiwgIkFyZSB5b3UgbWlzc2luZyBhICd9JyBiZWZvcmUgdGhlIGRlbGltaXRlcj9c
biIpKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgRnVuY3Rpb25PdmVy
cmlkZXM6OnBhcnNlT3ZlcnJpZGVzSW5GaWxlKGNvbnN0IGNoYXIqIGZpbGVOYW1lKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW4uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW4uY3BwCmluZGV4IGE3ODIwYzkuLmZhMDAz
NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbi5jcHAKQEAgLTE1
MCw4ICsxNTAsMTEgQEAgdm9pZCBCQlFQbGFuOjpwcmVwYXJlKCkKICAgICAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiRmFpbGVkIGFsbG9jYXRpbmcgZW5vdWdoIHNwYWNlIGZvciAiKTsK
ICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHNpemUpOwogICAgICAgICAgICAgYnVp
bGRlci5hcHBlbmQod2hhdCk7Ci0gICAgICAgICAgICBmYWlsKGhvbGRMb2NrKG1fbG9jayksIGJ1
aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAg
ICBmYWlsKGhvbGRMb2NrKG1fbG9jayksIFdURk1vdmUoKnN0cmluZykpOworICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIENSQVNIKCk7CiAg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS95YXJyL1lhcnJQYXJzZXIuaAppbmRleCBmMTZmMTFmLi44Yjc1OGVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3lhcnIvWWFyclBhcnNlci5oCkBAIC0xMDMxLDggKzEwMzEsMTEgQEAgcHJpdmF0
ZToKIAogICAgICAgICAgICAgd2hpbGUgKCFhdEVuZE9mUGF0dGVybigpKSB7CiAgICAgICAgICAg
ICAgICAgY2ggPSB0cnlDb25zdW1lSWRlbnRpZmllckNoYXJhY3RlcigpOwotICAgICAgICAgICAg
ICAgIGlmIChjaCA9PSAnPicpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om9wdGlv
bmFsPFN0cmluZz4oaWRlbnRpZmllckJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAg
ICAgaWYgKGNoID09ICc+JykgeworICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSBpZGVudGlmaWVyQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPigqc3RyaW5nKTsKKyAgICAgICAgICAgICAgICAg
ICAgQ1JBU0goKTsKKyAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBpZiAoIWlz
SWRlbnRpZmllclBhcnQoY2gpKQogICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTEwNzAs
MjMgKzEwNzMsMzIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAg
ICAgICBpZiAoZm91bmRFcXVhbHMpIHsKLSAgICAgICAgICAgICAgICAgICAgYXV0byByZXN1bHQg
PSB1bmljb2RlTWF0Y2hQcm9wZXJ0eVZhbHVlKHVuaWNvZGVQcm9wZXJ0eU5hbWUsIGV4cHJlc3Np
b25CdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBleHByZXNzaW9uQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBhdXRvIHJlc3VsdCA9IHVuaWNvZGVNYXRjaFByb3BlcnR5VmFsdWUodW5pY29kZVByb3Bl
cnR5TmFtZSwgKnN0cmluZyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2Vycm9yQ29kZSA9IEVycm9yQ29kZTo6SW52
YWxpZFVuaWNvZGVQcm9wZXJ0eUV4cHJlc3Npb247CisgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IENSQVNIKCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gZXhwcmVzc2lvbkJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgICAg
ICAgICBhdXRvIHJlc3VsdCA9IHVuaWNvZGVNYXRjaFByb3BlcnR5KCpzdHJpbmcpOwogICAgICAg
ICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgICAgICAgICAgICAgICAgIG1fZXJy
b3JDb2RlID0gRXJyb3JDb2RlOjpJbnZhbGlkVW5pY29kZVByb3BlcnR5RXhwcmVzc2lvbjsKICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IHVuaWNvZGVNYXRjaFByb3BlcnR5KGV4cHJlc3Np
b25CdWlsZGVyLnRvU3RyaW5nKCkpOwotICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KQotICAg
ICAgICAgICAgICAgICAgICBtX2Vycm9yQ29kZSA9IEVycm9yQ29kZTo6SW52YWxpZFVuaWNvZGVQ
cm9wZXJ0eUV4cHJlc3Npb247Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAg
ICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBjb25zdW1l
KCk7CiAgICAgICAgICAgICBpZiAoY2ggPT0gJz0nKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFm
b3VuZEVxdWFscykgewogICAgICAgICAgICAgICAgICAgICBmb3VuZEVxdWFscyA9IHRydWU7Ci0g
ICAgICAgICAgICAgICAgICAgIHVuaWNvZGVQcm9wZXJ0eU5hbWUgPSBleHByZXNzaW9uQnVpbGRl
ci50b1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBleHBy
ZXNzaW9uQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgICAgICAgICAgdW5pY29k
ZVByb3BlcnR5TmFtZSA9ICpzdHJpbmc7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAgICAgICAgIGV4cHJlc3Np
b25CdWlsZGVyLmNsZWFyKCk7CiAgICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAg
ICAgICAgIGVycm9ycysrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZwppbmRleCA4ODFiMTY0Li44ZmUxNTUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
NiBAQAorMjAxOC0wNC0yNiAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgU3RyaW5nQnVpbGRlciBpcyBmYWxsaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU3RyaW5nQnVpbGRlciBjYW4gZmFpbCB3aGVuIGFsbG9j
YXRpbmcgbWVtb3J5LiBTdHJpbmdCdWlsZGVyIGlzCisgICAgICAgIG1vc3RseSB1c2VkIHdpdGgg
dXNlciBpbnB1dCwgd2hpY2ggb2Z0ZW4gbWVhbnMgdGhhdCBqdXN0IGNyYXNoaW5nCisgICAgICAg
IGlzbid0IHRoZSByaWdodCBvdXRjb21lLiBPdXIgZnV6emVycyBvZnRlbiBlbmNvdW50ZXIgc3Vj
aCB0aGluZ3MKKyAgICAgICAgZm9yIEphdmFTY3JpcHRDb3JlLCBhbmQgc28gZmFyIHdlJ3ZlIGFw
cGxpZWQgcG9pbnQgc29sdXRpb25zLiBObworICAgICAgICBtb3JlISBUaGlzIHBhdGNoIG1ha2Vz
IFN0cmluZ0J1aWxkZXIgZmFsbGlibGUgYW5kIGVuZm9yY2VzIHRoaXMgaW4KKyAgICAgICAgdHdv
IHdheXM6CisKKyAgICAgICAgICAtIEVhY2ggc3RlcCBvZiBidWlsZGluZyBhIHN0cmluZyBjYW4g
YmUgY2hlY2tlZCBmb3IgZmFpbHVyZQorICAgICAgICAgICAgYmVjYXVzZSB0aGV5IG5vdyByZXR1
cm4gYSAiRmFsbGlibGU8VD4iLiBUaGlzIGNhbiBiZSBpZ25vcmVkIGF0CisgICAgICAgICAgICBl
dmVyeSBzdGVwIQorICAgICAgICAgIC0gVGhlIGZpbmFsIHN0ZXAgb2YgU3RyaW5nQnVpbGRlciwg
Z2V0dGluZyB0aGUgc3RyaW5nIG91dCwKKyAgICAgICAgICAgIHJldHVybnMgYSAiRmFsbGlibGU8
U3RyaW5nPiIgd2hpY2ggaXMgbWFya2VkIHdpdGgKKyAgICAgICAgICAgIFdBUk5fVU5VU0VEX1JF
VFVSTi4gRmFpbHVyZSBpcyBjb21tdW5pY2F0ZWQgaWYgYW55IG9mIHRoZSBidWlsZGluZworICAg
ICAgICAgICAgc3RlcHMgZmFpbGVkLgorCisgICAgICAgIERvaW5nIHRoaXMgdHdvLXN0ZXAgYXBw
cm9hY2ggbWVhbnMgdGhhdCBjb2RlIGNhbiBjb250aW51ZQorICAgICAgICBvcGVyYXRpbmcgYXMg
aXQgZGlkIGJlZm9yZSAoYXBwZW5kIGEgYnVuY2ggYW5kIHRoZW4gZ2V0IGEgc3RyaW5nKQorICAg
ICAgICBhbmQgb25seSBuZWVkcyB0byBjYXJlIGFib3V0IHRoZSBzdHJpbmcgcG90ZW50aWFsbHkg
bm90IGJlaW5nCisgICAgICAgIGF2YWlsYWJsZS4gVGhpcyBpcyBlbmZvcmNlZCBieSB0aGUgdHlw
ZSBzeXN0ZW06IEZhbGxpYmxlPFQ+IGlzCisgICAgICAgIHN0ZDo6ZXhwZWN0ZWQ8VCwgU3RyaW5n
QnVpbGRlcjo6RmFpbHVyZT4uCisKKyAgICAgICAgVGhlIGZvbGxvd2luZyBpbnRlcm1lZGlhdGUg
ZnVuY3Rpb25zIGNhbiBub3cgYmUgb2JzZXJ2ZWQgdG8gZmFpbAorICAgICAgICAob3IgaWdub3Jl
ZCk6CisKKyAgICAgICAgICAtIGFwcGVuZAorICAgICAgICAgIC0gYXBwZW5kVW5pbml0aWFsaXpl
ZAorICAgICAgICAgIC0gYXBwZW5kVW5pbml0aWFsaXplZFNsb3cKKyAgICAgICAgICAtIGFwcGVu
ZFF1b3RlZEpTT05TdHJpbmcgdXNlZCB0byByZXR1cm4gZmFsc2Ugb24gZmFpbHVyZSwgaXQgbm93
IHJldHVybnMgRmFsbGlibGU8PgorICAgICAgICAgIC0gcmVzaXplCisgICAgICAgICAgLSBhbGxv
Y2F0ZUJ1ZmZlcgorICAgICAgICAgIC0gYWxsb2NhdGVCdWZmZXJVcENvbnZlcnQKKyAgICAgICAg
ICAtIHJlYWxsb2NhdGVCdWZmZXIKKyAgICAgICAgICAtIHJlc2VydmVDYXBhY2l0eQorICAgICAg
ICAgIC0gc2hyaW5rVG9GaXQKKyAgICAgICAgICAtIG9wZXJhdG9yW10KKyAgICAgICAgICAtIGNo
YXJhY3RlcnM4CisgICAgICAgICAgLSBjaGFyYWN0ZXJzMTYKKworICAgICAgICBGYWlsdXJlIGlu
IHRoZXNlIG1ldGhvZHMgY29tZXMgaW4gdHdvIGZvcm1zOiBvdXQgb2YgbWVtb3J5LCBhbmQKKyAg
ICAgICAgd291bGQgb3ZlcmZsb3cuIFdoZW4gYW4gb3BlcmF0aW9uIHdvdWxkIG92ZXJmbG93IGl0
IGxlYXZlcyB0aGUKKyAgICAgICAgU3RyaW5nQnVpbGRlciBpbiBpdHMgcHJldmlvdXMgc3RhdGUs
IGFsbG93aW5nIHVzZXJzIHRvIHJlc3VtZQorICAgICAgICB3b3JrLCBrZWVwIHRoZSBzdHJpbmcg
YXMgaXQgZXhpc3RlZCBiZWZvcmUgZmFpbHVyZS4gV2hlbiB3ZSBqdXN0CisgICAgICAgIGZhaWwg
YWxsb2NhdGluZyBpdCBtZWFucyB3ZSBleHBlY3RlZCB0byBzdWNjZWVkLCBzbyBjbGVhcmluZyB0
aGUKKyAgICAgICAgU3RyaW5nQnVpbGRlciBpcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8uCisKKyAg
ICAgICAgU3VwcG9ydGluZyBmYWlsdXJlIGluIFN0cmluZ0J1aWxkZXIgcmVxdWlyZWQgYWRkaW5n
ICJ0cnkiIHZhcmlhbnRzCisgICAgICAgIG9mIHNvbWUgbWV0aG9kcyBpbiBTdHJpbmdJbXBsLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggdXBkYXRlcyBhbGwgV2ViS2l0IGNvZGUgd2hpY2ggdXNlcyBT
dHJpbmdCdWlsZGVyLiBJdAorICAgICAgICBsZWF2ZXMgYWxsIGludGVybWVkaWF0ZSBmdW5jdGlv
biB1c2FnZSBhbG9uZSAoY29kZSBzdGlsbCBhcHBlbmRzCisgICAgICAgIGJhY2stdG8tYmFjaywg
Ymxpc3NmdWxseSB1bmF3YXJlIG9mIGZhaWx1cmUpLCBhbmQgb25seSBjaGVja3MgZm9yCisgICAg
ICAgIGZhaWx1cmUgd2hlbiByZXRyaWV2aW5nIHRoZSBzdHJpbmcuIFRoZSBwYXR0ZXJuIHVzZWQg
aXMgdXN1YWxseToKKworICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgICAgIGZvbygqc3RyaW5nKTsgLy8gVXNlIHN0cmluZyBhcyBiZWZvcmUu
Li4KKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOworCisgICAgICAgIFRoaXMg
bWFrZXMgZmFpbHVyZSBleHRyZW1lbHkgZXhwbGljaXQuIFRoZXJlJ3Mgbm8gdHJ1ZSBiZWhhdmlv
cgorICAgICAgICBjaGFuZ2U6IHdoYXQgd291bGQgaGF2ZSBjcmFzaGVkIHdoZW4gYXBwZW5kaW5n
IG5vdyBjcmFzaGVzIHdoZW4KKyAgICAgICAgcmV0cmlldmluZyB0aGUgc3RyaW5nLiBQdWxsaW5n
IENSQVNIKCkgb3V0IHdpbGwgZ2l2ZSBzbGlnaHRseQorICAgICAgICBiZXR0ZXIgY3Jhc2ggc2ln
bmF0dXJlcywgYW5kIGl0IG1ha2VzIHRoZSBjb2RlIHZlcnkgb2J2aW91cyBhYm91dAorICAgICAg
ICBmYWlsdXJlLiBJIHB1cnBvc2VmdWxseSBkb24ndCAiZml4IiBhbnkgZmFpbHVyZSBiZWNhdXNl
IHRoZXNlCisgICAgICAgIHNob3VsZCBiZSBkb25lIGluIGEgdGFyZ2V0ZWQgbWFubmVyIHdpdGgg
cmVwcm8gdGVzdHMgd2hlbmV2ZXIKKyAgICAgICAgcG9zc2libGUuIEknbSB2ZXJ5IHdhcnkgb2Yg
aW50cm9kdWNpbmcgYnVncyEKKworICAgICAgICBXaGVuIHNvbWVvbmUgaW5ldml0YWJseSBibGFt
ZXMgY29kZSBiYWNrIHRvIHRoaXMgY29tbWl0IChiZWNhdXNlCisgICAgICAgIGhleSB0aGUgY29k
ZSBpcyBwcmV0dHkgdWdseSwgYW5kIHlvdSBtaWdodCBiZSBzdXJwcmlzZWQgYXQgc2VlaW5nCisg
ICAgICAgIENSQVNIKCkgaW4geW91ciBiZWF1dGlmdWwgY29kZSkgdGhlcmUgYXJlIGEgZmV3IHRo
aW5ncyB3aGljaCB0aGV5CisgICAgICAgIGNhbiBkbzoKKworICAgICAgICAgIDEuIENoYW5nZSB0
aGUgZWxzZSBjbGF1c2UgdG8gaGFuZGxlIGZhaWx1cmUgcmF0aGVyIHRoYW4gY3Jhc2guIEluIEph
dmFTY3JpcHRDb3JlIHRoYXQncyB1c3VhbGx5IHRocm93T3V0T2ZNZW1vcnlFcnJvci4KKyAgICAg
ICAgICAyLiBDaGFuZ2UgdGhlIGNvZGUgdG8gZGlyZWN0bHkgdXNlIEZhbGxpYmxlJ3MgLnZhbHVl
KCkgbWVtYmVyLCBhbmQgbGV0ICp0aGF0KiBjcmFzaCBpbnN0ZWFkLiBUaGlzIG1ha2VzIHRoZSBj
cmFzaCBub24tb2J2aW91cyBpbiB0aGUgY29kZSwgd2hpY2ggbWlnaHQgYmUgd2hhdCB5b3Ugd2Fu
dC4KKyAgICAgICAgICAzLiBDaGFuZ2UgdGhlIGNvZGUgdG8gZGV0ZWN0IGZhaWx1cmUgYXQgdGhl
IGVhcmxpZXN0IHN0ZXAgb2Ygc3RyaW5nIGJ1aWxkaW5nIChsaWtlbHkgdGhlIGFwcGVuZCBjYWxs
cyksIGFuZCBkbyBzb21ldGhpbmcgc2Vuc2libGUgdGhlcmUuCisKKyAgICAgICAgSW4gbm8gY2ly
Y3Vtc3RhbmNlIHNob3VsZCBjb2RlIGp1c3QgZGVyZWZlcmVuY2UgYSBGYWxsaWJsZSB3aXRob3V0
CisgICAgICAgIGtub3dpbmcgdGhhdCBpdHMgc3RhdGUgaG9sZHMgYSB2YWxpZCBzdHJpbmcuIFRo
aXMgY29kZSBpcworICAgICAgICB1bmRlZmluZWQgYmVoYXZpb3IgYWNjb3JkaW5nIHRvIHRoZSBz
dGQ6OmV4cGVjdGVkIHNwZWNpZmljYXRpb24KKyAgICAgICAgKHdoZXRoZXIgb3VyIGltcGxlbWVu
dGF0aW9uIHNob3VsZCBkbyBzb21ldGhpbmcgZWxzZSBpcyBvdXQgb2YKKyAgICAgICAgc2NvcGUg
Zm9yIHRoaXMgcGF0Y2gpOgorCisgICAgICAgICAgZm9vKCpidWlsZGVyLnRvU3RyaW5nKCkpOyAv
LyBVQiB3aGVuIGFsbG9jYXRpb24gZmFpbHMuCisKKyAgICAgICAgKiB3dGYvQXNzZXJ0aW9ucy5j
cHA6CisgICAgICAgICogd3RmL0RhdGVNYXRoLmNwcDoKKyAgICAgICAgKFdURjo6bWFrZVJGQzI4
MjJEYXRlU3RyaW5nKToKKyAgICAgICAgKiB3dGYvSlNPTlZhbHVlcy5jcHA6CisgICAgICAgIChX
VEY6OkpTT05JbXBsOjpWYWx1ZTo6dG9KU09OU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiB3dGYv
TG9nZ2VyLmg6CisgICAgICAgIChXVEY6OkxvZ0FyZ3VtZW50Ojp0b1N0cmluZyk6CisgICAgICAg
IChXVEY6OkxvZ0FyZ3VtZW50PExvZ2dlcjo6TG9nU2l0ZUlkZW50aWZpZXI+Ojp0b1N0cmluZyk6
CisgICAgICAgICogd3RmL01lZGlhVGltZS5jcHA6CisgICAgICAgIChXVEY6Ok1lZGlhVGltZTo6
dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAqIHd0Zi9VVUlELmNwcDoKKyAgICAgICAgKFdURjo6
Y3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZyk6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nQnVp
bGRlci5jcHA6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OndvdWxkT3ZlcmZsb3cpOgor
ICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpvdXRPZk1lbW9yeSk6CisgICAgICAgIChXVEY6
OlN0cmluZ0J1aWxkZXI6OnJlc2l6ZSk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OmFs
bG9jYXRlQnVmZmVyKToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6YWxsb2NhdGVCdWZm
ZXJVcENvbnZlcnQpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpyZWFsbG9jYXRlQnVm
ZmVyPExDaGFyPik6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OnJlYWxsb2NhdGVCdWZm
ZXI8VUNoYXI+KToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6cmVzZXJ2ZUNhcGFjaXR5
KToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6YXBwZW5kKToKKyAgICAgICAgKFdURjo6
U3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRl
cjo6YXBwZW5kRUNNQVNjcmlwdE51bWJlcik6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6
OmFwcGVuZEZpeGVkV2lkdGhOdW1iZXIpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpz
aHJpbmtUb0ZpdCk6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nQnVpbGRlci5oOgorICAgICAg
ICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpTdHJpbmdCdWlsZGVyKToKKyAgICAgICAgKFdURjo6U3Ry
aW5nQnVpbGRlcjo6YXBwZW5kKToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6YXBwZW5k
TGl0ZXJhbCk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OnRvU3RyaW5nKToKKyAgICAg
ICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6dG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5IGNvbnN0KToK
KyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6dG9BdG9taWNTdHJpbmcgY29uc3QpOgorICAg
ICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjppczhCaXQgY29uc3QpOgorICAgICAgICAoV1RGOjpT
dHJpbmdCdWlsZGVyOjpmYWlsZWQgY29uc3QpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVy
OjpvcGVyYXRvcltdIGNvbnN0KToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6IGNvbnN0
KToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6Y2xlYXIpOgorICAgICAgICAoV1RGOjpT
dHJpbmdCdWlsZGVyOjpzd2FwKToKKyAgICAgICAgKFdURjo6ZXF1YWwpOgorICAgICAgICAoV1RG
OjpJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uVHJhaXQ8U3RyaW5nQnVpbGRlcj46OmZsdXNoKToK
KyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdCdWlsZGVySlNPTi5jcHA6CisgICAgICAgIChXVEY6
OlN0cmluZ0J1aWxkZXI6OmFwcGVuZFF1b3RlZEpTT05TdHJpbmcpOgorICAgICAgICAqIHd0Zi90
ZXh0L1N0cmluZ0ltcGwuY3BwOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjpyZWFsbG9jYXRl
SW50ZXJuYWwpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjpyZWFsbG9jYXRlKToKKyAgICAg
ICAgKFdURjo6U3RyaW5nSW1wbDo6dHJ5UmVhbGxvY2F0ZSk6CisgICAgICAgICogd3RmL3RleHQv
U3RyaW5nSW1wbC5oOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjp0cnlDcmVhdGVTdWJzdHJp
bmdTaGFyaW5nSW1wbCk6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OmNyZWF0ZVN1YnN0cmlu
Z1NoYXJpbmdJbXBsKToKKyAgICAgICAgKiB3dGYvdGV4dC9UZXh0U3RyZWFtLmNwcDoKKyAgICAg
ICAgKFdURjo6VGV4dFN0cmVhbTo6cmVsZWFzZSk6CisKIDIwMTgtMDUtMDEgIFJvYmluIE1vcmlz
c2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KIAogICAgICAgICBDb3JyZWN0bHkgZGV0ZWN0IHN0
cmluZyBvdmVyZmxvdyB3aGVuIHVzaW5nIHRoZSAnRnVuY3Rpb24nIGNvbnN0cnVjdG9yCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0Fz
c2VydGlvbnMuY3BwCmluZGV4IGUxNWEwOTIuLmQ3YzgzMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL0Fzc2VydGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3Bw
CkBAIC0zNDIsOSArMzQyLDExIEBAIHZvaWQgV1RGTG9nZ2luZ0FjY3VtdWxhdG9yOjpyZXNldEFj
Y3VtdWxhdGVkTG9ncygpCiBTdHJpbmcgV1RGTG9nZ2luZ0FjY3VtdWxhdG9yOjpnZXRBbmRSZXNl
dEFjY3VtdWxhdGVkTG9ncygpCiB7CiAgICAgTG9ja2VyPExvY2s+IGxvY2tlcihhY2N1bXVsYXRv
ckxvY2spOwotICAgIFN0cmluZyByZXN1bHQgPSBsb2dnaW5nQWNjdW11bGF0b3IudG9TdHJpbmco
KTsKLSAgICBsb2dnaW5nQWNjdW11bGF0b3IuY2xlYXIoKTsKLSAgICByZXR1cm4gcmVzdWx0Owor
ICAgIGlmIChhdXRvIHJlc3VsdCA9IGxvZ2dpbmdBY2N1bXVsYXRvci50b1N0cmluZygpKSB7Cisg
ICAgICAgIGxvZ2dpbmdBY2N1bXVsYXRvci5jbGVhcigpOworICAgICAgICByZXR1cm4gKnJlc3Vs
dDsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFdURkxvZ2dpbmdBY2N1bXVsYXRv
ciYgbG9nZ2luZ0FjY3VtdWxhdG9yKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0RhdGVN
YXRoLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAppbmRleCA2ZGI5MmViLi5hODQy
NWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5jcHAKKysrIGIvU291cmNl
L1dURi93dGYvRGF0ZU1hdGguY3BwCkBAIC0xMTg3LDcgKzExODcsOSBAQCBTdHJpbmcgbWFrZVJG
QzI4MjJEYXRlU3RyaW5nKHVuc2lnbmVkIGRheU9mV2VlaywgdW5zaWduZWQgZGF5LCB1bnNpZ25l
ZCBtb250aCwgdQogICAgIGFwcGVuZFR3b0RpZ2l0TnVtYmVyKHN0cmluZ0J1aWxkZXIsIGFic29s
dXRlVVRDT2Zmc2V0IC8gNjApOwogICAgIGFwcGVuZFR3b0RpZ2l0TnVtYmVyKHN0cmluZ0J1aWxk
ZXIsIGFic29sdXRlVVRDT2Zmc2V0ICUgNjApOwogCi0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmNwcAppbmRleCBiZGU0NGFiLi4wOGM2MjI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9KU09OVmFsdWVzLmNwcApAQCAtMzI3LDggKzMyNywxMSBAQCBib29sIGRlY29kZVN0cmluZyhj
b25zdCBVQ2hhciogc3RhcnQsIGNvbnN0IFVDaGFyKiBlbmQsIFN0cmluZyYgb3V0cHV0KQogICAg
IGlmICghZGVjb2RlU3RyaW5nKHN0YXJ0LCBlbmQsIGJ1ZmZlcikpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIG91dHB1dCA9IGJ1ZmZlci50b1N0cmluZygpOwotICAgIHJldHVybiB0cnVl
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1ZmZlci50b1N0cmluZygpKSB7CisgICAgICAgIG91
dHB1dCA9ICpzdHJpbmc7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKIFJlZlB0cjxKU09OOjpWYWx1ZT4gYnVpbGRWYWx1ZShjb25zdCBVQ2hhciog
c3RhcnQsIGNvbnN0IFVDaGFyKiBlbmQsIGNvbnN0IFVDaGFyKiogdmFsdWVUb2tlbkVuZCwgaW50
IGRlcHRoKQpAQCAtNTUzLDcgKzU1Niw5IEBAIFN0cmluZyBWYWx1ZTo6dG9KU09OU3RyaW5nKCkg
Y29uc3QKICAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKICAgICByZXN1bHQucmVzZXJ2ZUNhcGFj
aXR5KDUxMik7CiAgICAgd3JpdGVKU09OKHJlc3VsdCk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIFZhbHVlOjphc0Jvb2xl
YW4oYm9vbCYgb3V0cHV0KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTG9nZ2Vy
LmggYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaAppbmRleCA2YjAxYjU4Li40OGI4ZDgyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dn
ZXIuaApAQCAtNDYsNyArNDYsMTIgQEAgc3RydWN0IExvZ0FyZ3VtZW50IHsKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBVID0gVD4gc3RhdGljIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNf
c2FtZTxVLCBkb3VibGU+Ojp2YWx1ZSwgU3RyaW5nPjo6dHlwZSB0b1N0cmluZyhkb3VibGUgYXJn
dW1lbnQpIHsgcmV0dXJuIFN0cmluZzo6bnVtYmVyKGFyZ3VtZW50KTsgfQogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFUgPSBUPiBzdGF0aWMgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19z
YW1lPHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxVPjo6dHlwZSwgQXRvbWljU3RyaW5n
Pjo6dmFsdWUsIFN0cmluZz46OnR5cGUgdG9TdHJpbmcoQXRvbWljU3RyaW5nIGFyZ3VtZW50KSB7
IHJldHVybiBhcmd1bWVudC5zdHJpbmcoKTsgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFUgPSBU
PiBzdGF0aWMgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19zYW1lPHR5cGVuYW1lIHN0
ZDo6cmVtb3ZlX3JlZmVyZW5jZTxVPjo6dHlwZSwgU3RyaW5nPjo6dmFsdWUsIFN0cmluZz46OnR5
cGUgdG9TdHJpbmcoU3RyaW5nIGFyZ3VtZW50KSB7IHJldHVybiBhcmd1bWVudDsgfQotICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFUgPSBUPiBzdGF0aWMgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3Rk
Ojppc19zYW1lPHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxVPjo6dHlwZSwgU3RyaW5n
QnVpbGRlcio+Ojp2YWx1ZSwgU3RyaW5nPjo6dHlwZSB0b1N0cmluZyhTdHJpbmdCdWlsZGVyKiBh
cmd1bWVudCkgeyByZXR1cm4gYXJndW1lbnQtPnRvU3RyaW5nKCk7IH0KKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBVID0gVD4gc3RhdGljIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfc2Ft
ZTx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8VT46OnR5cGUsIFN0cmluZ0J1aWxkZXIq
Pjo6dmFsdWUsIFN0cmluZz46OnR5cGUgdG9TdHJpbmcoU3RyaW5nQnVpbGRlciogYXJndW1lbnQp
CisgICAgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBhcmd1bWVudC0+dG9TdHJpbmcoKSkK
KyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOworICAgIH0KICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBVID0gVD4gc3RhdGljIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lm
PHN0ZDo6aXNfc2FtZTxVLCBjb25zdCBjaGFyKj46OnZhbHVlLCBTdHJpbmc+Ojp0eXBlIHRvU3Ry
aW5nKGNvbnN0IGNoYXIqIGFyZ3VtZW50KSB7IHJldHVybiBTdHJpbmcoYXJndW1lbnQpOyB9CiAg
ICAgdGVtcGxhdGU8c2l6ZV90IGxlbmd0aD4gc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBj
aGFyICgmYXJndW1lbnQpW2xlbmd0aF0pIHsgcmV0dXJuIFN0cmluZyhhcmd1bWVudCk7IH0KIH07
CkBAIC0yNzQsNyArMjc5LDkgQEAgc3RydWN0IExvZ0FyZ3VtZW50PExvZ2dlcjo6TG9nU2l0ZUlk
ZW50aWZpZXI+IHsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJygnKTsKICAgICAgICAgYXBwZW5k
VW5zaWduZWQ2NEFzSGV4KHZhbHVlLm9iamVjdFB0ciwgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiKSAiKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWVkaWFUaW1lLmNwcCBiL1NvdXJjZS9XVEYvd3RmL01l
ZGlhVGltZS5jcHAKaW5kZXggMDMwNTBiNS4uMWY3N2I0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvTWVkaWFUaW1lLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZWRpYVRpbWUuY3BwCkBA
IC01NzQsNyArNTc0LDkgQEAgU3RyaW5nIE1lZGlhVGltZTo6dG9TdHJpbmcoKSBjb25zdAogICAg
IH0KICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0b0RvdWJsZSgpKTsKICAgICBidWlsZGVyLmFw
cGVuZCgnfScpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBTdHJpbmcgTWVkaWFUaW1lOjp0b0pTT05TdHJpbmcoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVVVJRC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9VVUlE
LmNwcAppbmRleCBmYjVmZTViLi5iNTk4ZjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9V
VUlELmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VVUlELmNwcApAQCAtNTYsNyArNTYsOSBAQCBT
dHJpbmcgY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpCiAgICAgYnVpbGRlci5hcHBlbmQoJy0n
KTsKICAgICBhcHBlbmRVbnNpZ25lZEFzSGV4Rml4ZWRTaXplKHJhbmRvbURhdGFbMl0gJiAweDAw
MDBmZmZmLCBidWlsZGVyLCA0LCBMb3dlcmNhc2UpOwogICAgIGFwcGVuZFVuc2lnbmVkQXNIZXhG
aXhlZFNpemUocmFuZG9tRGF0YVszXSwgYnVpbGRlciwgOCwgTG93ZXJjYXNlKTsKLSAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1
aWxkZXIuY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmNwcAppbmRleCBk
NzlkNGM1Li4yNTg0YzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1
aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlci5jcHAKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEzLCAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtNjIsMjYg
KzYyLDQ0IEBAIHZvaWQgU3RyaW5nQnVpbGRlcjo6cmVpZnlTdHJpbmcoKSBjb25zdAogICAgICAg
ICBtX3N0cmluZyA9IFN0cmluZ0ltcGw6OmNyZWF0ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKCptX2J1
ZmZlciwgMCwgbV9sZW5ndGgpOwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6OnJlc2l6ZSh1bnNp
Z25lZCBuZXdTaXplKQorVW5leHBlY3RlZDxTdHJpbmdCdWlsZGVyOjpGYWlsdXJlPiBTdHJpbmdC
dWlsZGVyOjp3b3VsZE92ZXJmbG93KCkKK3sKKyAgICBtX2ZhaWxlZCA9IHRydWU7CisgICAgcmV0
dXJuIG1ha2VVbmV4cGVjdGVkKEZhaWx1cmU6OldvdWxkT3ZlcmZsb3cpOworfQorCitVbmV4cGVj
dGVkPFN0cmluZ0J1aWxkZXI6OkZhaWx1cmU+IFN0cmluZ0J1aWxkZXI6Om91dE9mTWVtb3J5KCkK
K3sKKyAgICBjbGVhcigpOworICAgIG1fZmFpbGVkID0gdHJ1ZTsKKyAgICByZXR1cm4gbWFrZVVu
ZXhwZWN0ZWQoRmFpbHVyZTo6T3V0T2ZNZW1vcnkpOworfQorCitTdHJpbmdCdWlsZGVyOjpGYWxs
aWJsZTw+IFN0cmluZ0J1aWxkZXI6OnJlc2l6ZSh1bnNpZ25lZCBuZXdTaXplKQogewogICAgIC8v
IENoZWNrIG5ld1NpemUgPCBtX2xlbmd0aCwgaGVuY2UgbV9sZW5ndGggPiAwLgogICAgIEFTU0VS
VChuZXdTaXplIDw9IG1fbGVuZ3RoKTsKICAgICBpZiAobmV3U2l6ZSA9PSBtX2xlbmd0aCkKLSAg
ICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4geyB9OwogICAgIEFTU0VSVChtX2xlbmd0aCk7
CiAKICAgICAvLyBJZiB0aGVyZSBpcyBhIGJ1ZmZlciwgd2Ugb25seSBuZWVkIHRvIGR1cGxpY2F0
ZSBpdCBpZiBpdCBoYXMgbW9yZSB0aGFuIG9uZSByZWYuCiAgICAgaWYgKG1fYnVmZmVyKSB7CiAg
ICAgICAgIG1fc3RyaW5nID0gU3RyaW5nKCk7IC8vIENsZWFyIHRoZSBzdHJpbmcgdG8gcmVtb3Zl
IHRoZSByZWZlcmVuY2UgdG8gbV9idWZmZXIgaWYgYW55IGJlZm9yZSBjaGVja2luZyB0aGUgcmVm
ZXJlbmNlIGNvdW50IG9mIG1fYnVmZmVyLgogICAgICAgICBpZiAoIW1fYnVmZmVyLT5oYXNPbmVS
ZWYoKSkgewotICAgICAgICAgICAgaWYgKG1fYnVmZmVyLT5pczhCaXQoKSkKLSAgICAgICAgICAg
ICAgICBhbGxvY2F0ZUJ1ZmZlcihtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKSwgbV9idWZmZXItPmxl
bmd0aCgpKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBhbGxvY2F0ZUJ1ZmZl
cihtX2J1ZmZlci0+Y2hhcmFjdGVyczE2KCksIG1fYnVmZmVyLT5sZW5ndGgoKSk7CisgICAgICAg
ICAgICBpZiAobV9idWZmZXItPmlzOEJpdCgpKSB7CisgICAgICAgICAgICAgICAgYXV0byBhbGxv
Y2F0ZWQgPSBhbGxvY2F0ZUJ1ZmZlcihtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKSwgbV9idWZmZXIt
Pmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGFsbG9jYXRlZDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgYXV0byBhbGxvY2F0ZWQgPSBhbGxvY2F0ZUJ1ZmZlcihtX2J1ZmZlci0+Y2hhcmFj
dGVyczE2KCksIG1fYnVmZmVyLT5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgaWYgKCFhbGxv
Y2F0ZWQpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBhbGxvY2F0ZWQ7CisgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICAgICAgbV9sZW5ndGggPSBuZXdTaXplOwogICAgICAgICBBU1NF
UlQobV9idWZmZXItPmxlbmd0aCgpID49IG1fbGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuOworICAg
ICAgICByZXR1cm4geyB9OwogICAgIH0KIAogICAgIC8vIFNpbmNlIG1fbGVuZ3RoICYmICFtX2J1
ZmZlciwgdGhlIHN0cmluZyBtdXN0IGJlIHZhbGlkIGluIG1fc3RyaW5nLCBhbmQgbV9zdHJpbmcu
bGVuZ3RoKCkgPiAwLgpAQCAtODksNTQgKzEwNyw2MCBAQCB2b2lkIFN0cmluZ0J1aWxkZXI6OnJl
c2l6ZSh1bnNpZ25lZCBuZXdTaXplKQogICAgIEFTU0VSVChtX2xlbmd0aCA9PSBtX3N0cmluZy5s
ZW5ndGgoKSk7CiAgICAgQVNTRVJUKG5ld1NpemUgPCBtX3N0cmluZy5sZW5ndGgoKSk7CiAgICAg
bV9sZW5ndGggPSBuZXdTaXplOwotICAgIG1fc3RyaW5nID0gU3RyaW5nSW1wbDo6Y3JlYXRlU3Vi
c3RyaW5nU2hhcmluZ0ltcGwoKm1fc3RyaW5nLmltcGwoKSwgMCwgbmV3U2l6ZSk7CisgICAgaWYg
KGF1dG8gY3JlYXRlZCA9IFN0cmluZ0ltcGw6OnRyeUNyZWF0ZVN1YnN0cmluZ1NoYXJpbmdJbXBs
KCptX3N0cmluZy5pbXBsKCksIDAsIG5ld1NpemUpKSB7CisgICAgICAgIG1fc3RyaW5nID0gKmNy
ZWF0ZWQ7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfSBlbHNlCisgICAgICAgIHJldHVybiBv
dXRPZk1lbW9yeSgpOwogfQogCiAvLyBBbGxvY2F0ZSBhIG5ldyA4IGJpdCBidWZmZXIsIGNvcHlp
bmcgaW4gY3VycmVudENoYXJhY3RlcnMgKHRoZXNlIG1heSBjb21lIGZyb20gZWl0aGVyIG1fc3Ry
aW5nCiAvLyBvciBtX2J1ZmZlciwgbmVpdGhlciB3aWxsIGJlIHJlYXNzaWduZWQgdW50aWwgdGhl
IGNvcHkgaGFzIGNvbXBsZXRlZCkuCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFsbG9jYXRlQnVmZmVy
KGNvbnN0IExDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGgp
CitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFsbG9jYXRlQnVmZmVy
KGNvbnN0IExDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGgp
CiB7CiAgICAgQVNTRVJUKG1faXM4Qml0KTsKICAgICAvLyBDb3B5IHRoZSBleGlzdGluZyBkYXRh
IGludG8gYSBuZXcgYnVmZmVyLCBzZXQgcmVzdWx0IHRvIHBvaW50IHRvIHRoZSBlbmQgb2YgdGhl
IGV4aXN0aW5nIGRhdGEuCi0gICAgYXV0byBidWZmZXIgPSBTdHJpbmdJbXBsOjpjcmVhdGVVbmlu
aXRpYWxpemVkKHJlcXVpcmVkTGVuZ3RoLCBtX2J1ZmZlckNoYXJhY3RlcnM4KTsKKyAgICBhdXRv
IGJ1ZmZlciA9IFN0cmluZ0ltcGw6OnRyeUNyZWF0ZVVuaW5pdGlhbGl6ZWQocmVxdWlyZWRMZW5n
dGgsIG1fYnVmZmVyQ2hhcmFjdGVyczgpOworICAgIGlmICghYnVmZmVyKQorICAgICAgICByZXR1
cm4gb3V0T2ZNZW1vcnkoKTsKICAgICBtZW1jcHkobV9idWZmZXJDaGFyYWN0ZXJzOCwgY3VycmVu
dENoYXJhY3RlcnMsIHN0YXRpY19jYXN0PHNpemVfdD4obV9sZW5ndGgpICogc2l6ZW9mKExDaGFy
KSk7IC8vIFRoaXMgY2FuJ3Qgb3ZlcmZsb3cuCiAgICAgCiAgICAgLy8gVXBkYXRlIHRoZSBidWls
ZGVyIHN0YXRlLgogICAgIG1fYnVmZmVyID0gV1RGTW92ZShidWZmZXIpOwogICAgIG1fc3RyaW5n
ID0gU3RyaW5nKCk7CiAgICAgQVNTRVJUKG1fYnVmZmVyLT5sZW5ndGgoKSA9PSByZXF1aXJlZExl
bmd0aCk7CisgICAgcmV0dXJuIHsgfTsKIH0KIAogLy8gQWxsb2NhdGUgYSBuZXcgMTYgYml0IGJ1
ZmZlciwgY29weWluZyBpbiBjdXJyZW50Q2hhcmFjdGVycyAodGhlc2UgbWF5IGNvbWUgZnJvbSBl
aXRoZXIgbV9zdHJpbmcKIC8vIG9yIG1fYnVmZmVyLCAgbmVpdGhlciB3aWxsIGJlIHJlYXNzaWdu
ZWQgdW50aWwgdGhlIGNvcHkgaGFzIGNvbXBsZXRlZCkuCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFs
bG9jYXRlQnVmZmVyKGNvbnN0IFVDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVx
dWlyZWRMZW5ndGgpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFs
bG9jYXRlQnVmZmVyKGNvbnN0IFVDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVx
dWlyZWRMZW5ndGgpCiB7CiAgICAgQVNTRVJUKCFtX2lzOEJpdCk7CiAgICAgLy8gQ29weSB0aGUg
ZXhpc3RpbmcgZGF0YSBpbnRvIGEgbmV3IGJ1ZmZlciwgc2V0IHJlc3VsdCB0byBwb2ludCB0byB0
aGUgZW5kIG9mIHRoZSBleGlzdGluZyBkYXRhLgotICAgIGF1dG8gYnVmZmVyID0gU3RyaW5nSW1w
bDo6Y3JlYXRlVW5pbml0aWFsaXplZChyZXF1aXJlZExlbmd0aCwgbV9idWZmZXJDaGFyYWN0ZXJz
MTYpOworICAgIGF1dG8gYnVmZmVyID0gU3RyaW5nSW1wbDo6dHJ5Q3JlYXRlVW5pbml0aWFsaXpl
ZChyZXF1aXJlZExlbmd0aCwgbV9idWZmZXJDaGFyYWN0ZXJzMTYpOworICAgIGlmICghYnVmZmVy
KQorICAgICAgICByZXR1cm4gb3V0T2ZNZW1vcnkoKTsKICAgICBtZW1jcHkobV9idWZmZXJDaGFy
YWN0ZXJzMTYsIGN1cnJlbnRDaGFyYWN0ZXJzLCBzdGF0aWNfY2FzdDxzaXplX3Q+KG1fbGVuZ3Ro
KSAqIHNpemVvZihVQ2hhcikpOyAvLyBUaGlzIGNhbid0IG92ZXJmbG93LgogICAgIAogICAgIC8v
IFVwZGF0ZSB0aGUgYnVpbGRlciBzdGF0ZS4KICAgICBtX2J1ZmZlciA9IFdURk1vdmUoYnVmZmVy
KTsKICAgICBtX3N0cmluZyA9IFN0cmluZygpOwogICAgIEFTU0VSVChtX2J1ZmZlci0+bGVuZ3Ro
KCkgPT0gcmVxdWlyZWRMZW5ndGgpOworICAgIHJldHVybiB7IH07CiB9CiAKIC8vIEFsbG9jYXRl
IGEgbmV3IDE2IGJpdCBidWZmZXIsIGNvcHlpbmcgaW4gY3VycmVudENoYXJhY3RlcnMgKHdoaWNo
IGlzIDggYml0IGFuZCBtYXkgY29tZQogLy8gZnJvbSBlaXRoZXIgbV9zdHJpbmcgb3IgbV9idWZm
ZXIsIG5laXRoZXIgd2lsbCBiZSByZWFzc2lnbmVkIHVudGlsIHRoZSBjb3B5IGhhcyBjb21wbGV0
ZWQpLgotdm9pZCBTdHJpbmdCdWlsZGVyOjphbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChjb25zdCBM
Q2hhciogY3VycmVudENoYXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQotewotICAg
IGlmICghdHJ5QWxsb2NhdGVCdWZmZXJVcENvbnZlcnQoY3VycmVudENoYXJhY3RlcnMsIHJlcXVp
cmVkTGVuZ3RoKSkKLSAgICAgICAgQ1JBU0goKTsKLX0KLWJvb2wgU3RyaW5nQnVpbGRlcjo6dHJ5
QWxsb2NhdGVCdWZmZXJVcENvbnZlcnQoY29uc3QgTENoYXIqIGN1cnJlbnRDaGFyYWN0ZXJzLCB1
bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5n
QnVpbGRlcjo6YWxsb2NhdGVCdWZmZXJVcENvbnZlcnQoY29uc3QgTENoYXIqIGN1cnJlbnRDaGFy
YWN0ZXJzLCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKIHsKICAgICBBU1NFUlQobV9pczhCaXQp
OwogICAgIEFTU0VSVChyZXF1aXJlZExlbmd0aCA+PSBtX2xlbmd0aCk7CiAgICAgLy8gQ29weSB0
aGUgZXhpc3RpbmcgZGF0YSBpbnRvIGEgbmV3IGJ1ZmZlciwgc2V0IHJlc3VsdCB0byBwb2ludCB0
byB0aGUgZW5kIG9mIHRoZSBleGlzdGluZyBkYXRhLgogICAgIGF1dG8gYnVmZmVyID0gU3RyaW5n
SW1wbDo6dHJ5Q3JlYXRlVW5pbml0aWFsaXplZChyZXF1aXJlZExlbmd0aCwgbV9idWZmZXJDaGFy
YWN0ZXJzMTYpOwogICAgIGlmICghYnVmZmVyKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIHJldHVybiBvdXRPZk1lbW9yeSgpOworCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IG1fbGVuZ3RoOyArK2kpCiAgICAgICAgIG1fYnVmZmVyQ2hhcmFjdGVyczE2W2ldID0gY3VycmVu
dENoYXJhY3RlcnNbaV07CiAgICAgCkBAIC0xNDYsMTEgKzE3MCwxMSBAQCBib29sIFN0cmluZ0J1
aWxkZXI6OnRyeUFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KGNvbnN0IExDaGFyKiBjdXJyZW50Q2hh
cmFjdGVycywgdQogICAgIG1fYnVmZmVyID0gV1RGTW92ZShidWZmZXIpOwogICAgIG1fc3RyaW5n
ID0gU3RyaW5nKCk7CiAgICAgQVNTRVJUKG1fYnVmZmVyLT5sZW5ndGgoKSA9PSByZXF1aXJlZExl
bmd0aCk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHsgfTsKIH0KIAogdGVtcGxhdGUg
PD4KLXZvaWQgU3RyaW5nQnVpbGRlcjo6cmVhbGxvY2F0ZUJ1ZmZlcjxMQ2hhcj4odW5zaWduZWQg
cmVxdWlyZWRMZW5ndGgpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6
OnJlYWxsb2NhdGVCdWZmZXI8TENoYXI+KHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQogewogICAg
IC8vIElmIHRoZSBidWZmZXIgaGFzIG9ubHkgb25lIHJlZiAoYnkgdGhpcyBTdHJpbmdCdWlsZGVy
KSwgcmVhbGxvY2F0ZSBpdCwKICAgICAvLyBvdGhlcndpc2UgZmFsbCBiYWNrIHRvICJhbGxvY2F0
ZSBhbmQgY29weSIgbWV0aG9kLgpAQCAtMTU5LDY2ICsxODMsODkgQEAgdm9pZCBTdHJpbmdCdWls
ZGVyOjpyZWFsbG9jYXRlQnVmZmVyPExDaGFyPih1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKICAg
ICBBU1NFUlQobV9pczhCaXQpOwogICAgIEFTU0VSVChtX2J1ZmZlci0+aXM4Qml0KCkpOwogICAg
IAotICAgIGlmIChtX2J1ZmZlci0+aGFzT25lUmVmKCkpCi0gICAgICAgIG1fYnVmZmVyID0gU3Ry
aW5nSW1wbDo6cmVhbGxvY2F0ZShtX2J1ZmZlci5yZWxlYXNlTm9uTnVsbCgpLCByZXF1aXJlZExl
bmd0aCwgbV9idWZmZXJDaGFyYWN0ZXJzOCk7Ci0gICAgZWxzZQotICAgICAgICBhbGxvY2F0ZUJ1
ZmZlcihtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKSwgcmVxdWlyZWRMZW5ndGgpOworICAgIGlmICht
X2J1ZmZlci0+aGFzT25lUmVmKCkpIHsKKyAgICAgICAgYXV0byByZWFsbG9jYXRlZCA9IFN0cmlu
Z0ltcGw6OnRyeVJlYWxsb2NhdGUobV9idWZmZXIucmVsZWFzZU5vbk51bGwoKSwgcmVxdWlyZWRM
ZW5ndGgsIG1fYnVmZmVyQ2hhcmFjdGVyczgpOworICAgICAgICBpZiAoIXJlYWxsb2NhdGVkKQor
ICAgICAgICAgICAgcmV0dXJuIG91dE9mTWVtb3J5KCk7CisgICAgICAgIG1fYnVmZmVyID0gcmVh
bGxvY2F0ZWQuZ2V0KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byBhbGxvY2F0ZWQgPSBh
bGxvY2F0ZUJ1ZmZlcihtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKSwgcmVxdWlyZWRMZW5ndGgpOwor
ICAgICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAgIHJldHVybiBhbGxvY2F0ZWQ7Cisg
ICAgfQogICAgIEFTU0VSVChtX2J1ZmZlci0+bGVuZ3RoKCkgPT0gcmVxdWlyZWRMZW5ndGgpOwor
ICAgIHJldHVybiB7IH07CiB9CiAKIHRlbXBsYXRlIDw+Ci12b2lkIFN0cmluZ0J1aWxkZXI6OnJl
YWxsb2NhdGVCdWZmZXI8VUNoYXI+KHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQorU3RyaW5nQnVp
bGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjpyZWFsbG9jYXRlQnVmZmVyPFVDaGFyPih1
bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKIHsKICAgICAvLyBJZiB0aGUgYnVmZmVyIGhhcyBvbmx5
IG9uZSByZWYgKGJ5IHRoaXMgU3RyaW5nQnVpbGRlciksIHJlYWxsb2NhdGUgaXQsCiAgICAgLy8g
b3RoZXJ3aXNlIGZhbGwgYmFjayB0byAiYWxsb2NhdGUgYW5kIGNvcHkiIG1ldGhvZC4KICAgICBt
X3N0cmluZyA9IFN0cmluZygpOwogICAgIAotICAgIGlmIChtX2J1ZmZlci0+aXM4Qml0KCkpCi0g
ICAgICAgIGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KG1fYnVmZmVyLT5jaGFyYWN0ZXJzOCgpLCBy
ZXF1aXJlZExlbmd0aCk7CisgICAgaWYgKG1fYnVmZmVyLT5pczhCaXQoKSkgeworICAgICAgICBh
dXRvIGFsbG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KG1fYnVmZmVyLT5jaGFyYWN0
ZXJzOCgpLCByZXF1aXJlZExlbmd0aCk7CisgICAgICAgIGlmICghYWxsb2NhdGVkKQorICAgICAg
ICAgICAgcmV0dXJuIGFsbG9jYXRlZDsKKyAgICB9CiAgICAgZWxzZSBpZiAobV9idWZmZXItPmhh
c09uZVJlZigpKQogICAgICAgICBtX2J1ZmZlciA9IFN0cmluZ0ltcGw6OnJlYWxsb2NhdGUobV9i
dWZmZXIucmVsZWFzZU5vbk51bGwoKSwgcmVxdWlyZWRMZW5ndGgsIG1fYnVmZmVyQ2hhcmFjdGVy
czE2KTsKICAgICBlbHNlCiAgICAgICAgIGFsbG9jYXRlQnVmZmVyKG1fYnVmZmVyLT5jaGFyYWN0
ZXJzMTYoKSwgcmVxdWlyZWRMZW5ndGgpOwogICAgIEFTU0VSVChtX2J1ZmZlci0+bGVuZ3RoKCkg
PT0gcmVxdWlyZWRMZW5ndGgpOworICAgIHJldHVybiB7IH07CiB9CiAKLXZvaWQgU3RyaW5nQnVp
bGRlcjo6cmVzZXJ2ZUNhcGFjaXR5KHVuc2lnbmVkIG5ld0NhcGFjaXR5KQorU3RyaW5nQnVpbGRl
cjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjpyZXNlcnZlQ2FwYWNpdHkodW5zaWduZWQgbmV3
Q2FwYWNpdHkpCiB7CiAgICAgaWYgKG1fYnVmZmVyKSB7CiAgICAgICAgIC8vIElmIHRoZXJlIGlz
IGFscmVhZHkgYSBidWZmZXIsIHRoZW4gZ3JvdyBpZiBuZWNlc3NhcnkuCiAgICAgICAgIGlmIChu
ZXdDYXBhY2l0eSA+IG1fYnVmZmVyLT5sZW5ndGgoKSkgewotICAgICAgICAgICAgaWYgKG1fYnVm
ZmVyLT5pczhCaXQoKSkKLSAgICAgICAgICAgICAgICByZWFsbG9jYXRlQnVmZmVyPExDaGFyPihu
ZXdDYXBhY2l0eSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmVhbGxvY2F0
ZUJ1ZmZlcjxVQ2hhcj4obmV3Q2FwYWNpdHkpOworICAgICAgICAgICAgaWYgKG1fYnVmZmVyLT5p
czhCaXQoKSkgeworICAgICAgICAgICAgICAgIGF1dG8gcmVhbGxvY2F0ZWQgPSByZWFsbG9jYXRl
QnVmZmVyPExDaGFyPihuZXdDYXBhY2l0eSk7CisgICAgICAgICAgICAgICAgaWYgKCFyZWFsbG9j
YXRlZCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlYWxsb2NhdGVkOworICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBhdXRvIHJlYWxsb2NhdGVkID0gcmVhbGxvY2F0
ZUJ1ZmZlcjxVQ2hhcj4obmV3Q2FwYWNpdHkpOworICAgICAgICAgICAgICAgIGlmICghcmVhbGxv
Y2F0ZWQpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWFsbG9jYXRlZDsKKyAgICAgICAg
ICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIEdyb3cgdGhlIHN0cmlu
ZywgaWYgbmVjZXNzYXJ5LgogICAgICAgICBpZiAobmV3Q2FwYWNpdHkgPiBtX2xlbmd0aCkgewog
ICAgICAgICAgICAgaWYgKCFtX2xlbmd0aCkgewogICAgICAgICAgICAgICAgIExDaGFyKiBudWxs
UGxhY2Vob2xkZXIgPSAwOwotICAgICAgICAgICAgICAgIGFsbG9jYXRlQnVmZmVyKG51bGxQbGFj
ZWhvbGRlciwgbmV3Q2FwYWNpdHkpOwotICAgICAgICAgICAgfSBlbHNlIGlmIChtX3N0cmluZy5p
czhCaXQoKSkKLSAgICAgICAgICAgICAgICBhbGxvY2F0ZUJ1ZmZlcihtX3N0cmluZy5jaGFyYWN0
ZXJzOCgpLCBuZXdDYXBhY2l0eSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg
YWxsb2NhdGVCdWZmZXIobV9zdHJpbmcuY2hhcmFjdGVyczE2KCksIG5ld0NhcGFjaXR5KTsKKyAg
ICAgICAgICAgICAgICBhdXRvIGFsbG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVyKG51bGxQbGFjZWhv
bGRlciwgbmV3Q2FwYWNpdHkpOworICAgICAgICAgICAgICAgIGlmICghYWxsb2NhdGVkKQorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gYWxsb2NhdGVkOworICAgICAgICAgICAgfSBlbHNlIGlm
IChtX3N0cmluZy5pczhCaXQoKSkgeworICAgICAgICAgICAgICAgIGF1dG8gYWxsb2NhdGVkID0g
YWxsb2NhdGVCdWZmZXIobV9zdHJpbmcuY2hhcmFjdGVyczgoKSwgbmV3Q2FwYWNpdHkpOworICAg
ICAgICAgICAgICAgIGlmICghYWxsb2NhdGVkKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
YWxsb2NhdGVkOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBhdXRvIGFs
bG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVyKG1fc3RyaW5nLmNoYXJhY3RlcnMxNigpLCBuZXdDYXBh
Y2l0eSk7CisgICAgICAgICAgICAgICAgaWYgKCFhbGxvY2F0ZWQpCisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBhbGxvY2F0ZWQ7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAg
ICAgQVNTRVJUKCFuZXdDYXBhY2l0eSB8fCBtX2J1ZmZlci0+bGVuZ3RoKCkgPj0gbmV3Q2FwYWNp
dHkpOworICAgIHJldHVybiB7IH07CiB9CiAKIC8vIE1ha2UgJ2xlbmd0aCcgYWRkaXRpb25hbCBj
YXBhY2l0eSBiZSBhdmFpbGFibGUgaW4gbV9idWZmZXIsIHVwZGF0ZSBtX3N0cmluZyAmIG1fbGVu
Z3RoLAogLy8gcmV0dXJuIGEgcG9pbnRlciB0byB0aGUgbmV3bHkgYWxsb2NhdGVkIHN0b3JhZ2Uu
Ci0vLyBSZXR1cm5zIG51bGxwdHIgaWYgdGhlIHNpemUgb2YgdGhlIG5ldyBidWlsZGVyIHdvdWxk
IGhhdmUgb3ZlcmZsb3dlZAogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgotQUxXQVlTX0lO
TElORSBDaGFyVHlwZSogU3RyaW5nQnVpbGRlcjo6YXBwZW5kVW5pbml0aWFsaXplZCh1bnNpZ25l
ZCBsZW5ndGgpCitBTFdBWVNfSU5MSU5FIFN0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPENoYXJUeXBl
Kj4gU3RyaW5nQnVpbGRlcjo6YXBwZW5kVW5pbml0aWFsaXplZCh1bnNpZ25lZCBsZW5ndGgpCiB7
CiAgICAgQVNTRVJUKGxlbmd0aCk7CiAKICAgICAvLyBDYWxjdWxhdGUgdGhlIG5ldyBzaXplIG9m
IHRoZSBidWlsZGVyIGFmdGVyIGFwcGVuZGluZy4KICAgICB1bnNpZ25lZCByZXF1aXJlZExlbmd0
aCA9IGxlbmd0aCArIG1fbGVuZ3RoOwogICAgIGlmIChyZXF1aXJlZExlbmd0aCA8IGxlbmd0aCkK
LSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiB3b3VsZE92ZXJmbG93KCk7
CiAKICAgICBpZiAoKG1fYnVmZmVyKSAmJiAocmVxdWlyZWRMZW5ndGggPD0gbV9idWZmZXItPmxl
bmd0aCgpKSkgewogICAgICAgICAvLyBJZiB0aGUgYnVmZmVyIGlzIHZhbGlkIGl0IG11c3QgYmUg
YXQgbGVhc3QgYXMgbG9uZyBhcyB0aGUgY3VycmVudCBidWlsZGVyIGNvbnRlbnRzIQpAQCAtMjM1
LDcgKzI4Miw3IEBAIEFMV0FZU19JTkxJTkUgQ2hhclR5cGUqIFN0cmluZ0J1aWxkZXI6OmFwcGVu
ZFVuaW5pdGlhbGl6ZWQodW5zaWduZWQgbGVuZ3RoKQogLy8gTWFrZSAnbGVuZ3RoJyBhZGRpdGlv
bmFsIGNhcGFjaXR5IGJlIGF2YWlsYWJsZSBpbiBtX2J1ZmZlciwgdXBkYXRlIG1fc3RyaW5nICYg
bV9sZW5ndGgsCiAvLyByZXR1cm4gYSBwb2ludGVyIHRvIHRoZSBuZXdseSBhbGxvY2F0ZWQgc3Rv
cmFnZS4KIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KLUNoYXJUeXBlKiBTdHJpbmdCdWls
ZGVyOjphcHBlbmRVbmluaXRpYWxpemVkU2xvdyh1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKK1N0
cmluZ0J1aWxkZXI6OkZhbGxpYmxlPENoYXJUeXBlKj4gU3RyaW5nQnVpbGRlcjo6YXBwZW5kVW5p
bml0aWFsaXplZFNsb3codW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCiB7CiAgICAgQVNTRVJUKHJl
cXVpcmVkTGVuZ3RoKTsKIApAQCAtMjQzLDEwICsyOTAsMTQgQEAgQ2hhclR5cGUqIFN0cmluZ0J1
aWxkZXI6OmFwcGVuZFVuaW5pdGlhbGl6ZWRTbG93KHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQog
ICAgICAgICAvLyBJZiB0aGUgYnVmZmVyIGlzIHZhbGlkIGl0IG11c3QgYmUgYXQgbGVhc3QgYXMg
bG9uZyBhcyB0aGUgY3VycmVudCBidWlsZGVyIGNvbnRlbnRzIQogICAgICAgICBBU1NFUlQobV9i
dWZmZXItPmxlbmd0aCgpID49IG1fbGVuZ3RoKTsKICAgICAgICAgCi0gICAgICAgIHJlYWxsb2Nh
dGVCdWZmZXI8Q2hhclR5cGU+KGV4cGFuZGVkQ2FwYWNpdHkoY2FwYWNpdHkoKSwgcmVxdWlyZWRM
ZW5ndGgpKTsKKyAgICAgICAgYXV0byByZWFsbG9jYXRlZCA9IHJlYWxsb2NhdGVCdWZmZXI8Q2hh
clR5cGU+KGV4cGFuZGVkQ2FwYWNpdHkoY2FwYWNpdHkoKSwgcmVxdWlyZWRMZW5ndGgpKTsKKyAg
ICAgICAgaWYgKCFyZWFsbG9jYXRlZCkKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3Rl
ZChyZWFsbG9jYXRlZC5lcnJvcigpKTsKICAgICB9IGVsc2UgewogICAgICAgICBBU1NFUlQobV9z
dHJpbmcubGVuZ3RoKCkgPT0gbV9sZW5ndGgpOwotICAgICAgICBhbGxvY2F0ZUJ1ZmZlcihtX2xl
bmd0aCA/IG1fc3RyaW5nLmNoYXJhY3RlcnM8Q2hhclR5cGU+KCkgOiAwLCBleHBhbmRlZENhcGFj
aXR5KGNhcGFjaXR5KCksIHJlcXVpcmVkTGVuZ3RoKSk7CisgICAgICAgIGF1dG8gYWxsb2NhdGVk
ID0gYWxsb2NhdGVCdWZmZXIobV9sZW5ndGggPyBtX3N0cmluZy5jaGFyYWN0ZXJzPENoYXJUeXBl
PigpIDogMCwgZXhwYW5kZWRDYXBhY2l0eShjYXBhY2l0eSgpLCByZXF1aXJlZExlbmd0aCkpOwor
ICAgICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3Rl
ZChhbGxvY2F0ZWQuZXJyb3IoKSk7CiAgICAgfQogICAgIAogICAgIENoYXJUeXBlKiByZXN1bHQg
PSBnZXRCdWZmZXJDaGFyYWN0ZXJzPENoYXJUeXBlPigpICsgbV9sZW5ndGg7CkBAIC0yNTUsMTYg
KzMwNiwxMCBAQCBDaGFyVHlwZSogU3RyaW5nQnVpbGRlcjo6YXBwZW5kVW5pbml0aWFsaXplZFNs
b3codW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9p
ZCBTdHJpbmdCdWlsZGVyOjphcHBlbmQoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVk
IGxlbmd0aCkKLXsKLSAgICBpZiAoIXRyeUFwcGVuZChjaGFyYWN0ZXJzLCBsZW5ndGgpKQotICAg
ICAgICBDUkFTSCgpOwotfQotCi1ib29sIFN0cmluZ0J1aWxkZXI6OnRyeUFwcGVuZChjb25zdCBV
Q2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQorU3RyaW5nQnVpbGRlcjo6RmFsbGli
bGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmQoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2ln
bmVkIGxlbmd0aCkKIHsKICAgICBpZiAoIWxlbmd0aCkKLSAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIHJldHVybiB7IH07CiAKICAgICBBU1NFUlQoY2hhcmFjdGVycyk7CiAKQEAgLTI3Miw1
NCArMzE3LDUxIEBAIGJvb2wgU3RyaW5nQnVpbGRlcjo6dHJ5QXBwZW5kKGNvbnN0IFVDaGFyKiBj
aGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgICAgIGlmIChsZW5ndGggPT0gMSAmJiAh
KCpjaGFyYWN0ZXJzICYgfjB4ZmYpKSB7CiAgICAgICAgICAgICAvLyBBcHBlbmQgYXMgOCBiaXQg
Y2hhcmFjdGVyCiAgICAgICAgICAgICBMQ2hhciBsQ2hhciA9IHN0YXRpY19jYXN0PExDaGFyPigq
Y2hhcmFjdGVycyk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ5QXBwZW5kKCZsQ2hhciwgMSk7Cisg
ICAgICAgICAgICByZXR1cm4gYXBwZW5kKCZsQ2hhciwgMSk7CiAgICAgICAgIH0KIAogICAgICAg
ICAvLyBDYWxjdWxhdGUgdGhlIG5ldyBzaXplIG9mIHRoZSBidWlsZGVyIGFmdGVyIGFwcGVuZGlu
Zy4KICAgICAgICAgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGggPSBsZW5ndGggKyBtX2xlbmd0aDsK
ICAgICAgICAgaWYgKHJlcXVpcmVkTGVuZ3RoIDwgbGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIHdvdWxkT3ZlcmZsb3coKTsKICAgICAgICAgCiAg
ICAgICAgIGlmIChtX2J1ZmZlcikgewogICAgICAgICAgICAgLy8gSWYgdGhlIGJ1ZmZlciBpcyB2
YWxpZCBpdCBtdXN0IGJlIGF0IGxlYXN0IGFzIGxvbmcgYXMgdGhlIGN1cnJlbnQgYnVpbGRlciBj
b250ZW50cyEKICAgICAgICAgICAgIEFTU0VSVChtX2J1ZmZlci0+bGVuZ3RoKCkgPj0gbV9sZW5n
dGgpOwotICAgICAgICAgICAgaWYgKCF0cnlBbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChtX2J1ZmZl
ci0+Y2hhcmFjdGVyczgoKSwgZXhwYW5kZWRDYXBhY2l0eShjYXBhY2l0eSgpLCByZXF1aXJlZExl
bmd0aCkpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgYXV0byBhbGxvY2F0ZWQgPSBhbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChtX2J1ZmZl
ci0+Y2hhcmFjdGVyczgoKSwgZXhwYW5kZWRDYXBhY2l0eShjYXBhY2l0eSgpLCByZXF1aXJlZExl
bmd0aCkpOworICAgICAgICAgICAgaWYgKCFhbGxvY2F0ZWQpCisgICAgICAgICAgICAgICAgcmV0
dXJuIGFsbG9jYXRlZDsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIEFTU0VSVChtX3N0
cmluZy5sZW5ndGgoKSA9PSBtX2xlbmd0aCk7Ci0gICAgICAgICAgICBpZiAoIXRyeUFsbG9jYXRl
QnVmZmVyVXBDb252ZXJ0KG1fc3RyaW5nLmlzTnVsbCgpID8gMCA6IG1fc3RyaW5nLmNoYXJhY3Rl
cnM4KCksIGV4cGFuZGVkQ2FwYWNpdHkoY2FwYWNpdHkoKSwgcmVxdWlyZWRMZW5ndGgpKSkKLSAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBhdXRvIGFsbG9jYXRlZCA9
IGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KG1fc3RyaW5nLmlzTnVsbCgpID8gMCA6IG1fc3RyaW5n
LmNoYXJhY3RlcnM4KCksIGV4cGFuZGVkQ2FwYWNpdHkoY2FwYWNpdHkoKSwgcmVxdWlyZWRMZW5n
dGgpKTsKKyAgICAgICAgICAgIGlmICghYWxsb2NhdGVkKQorICAgICAgICAgICAgICAgIHJldHVy
biBhbGxvY2F0ZWQ7CiAgICAgICAgIH0KIAogICAgICAgICBtZW1jcHkobV9idWZmZXJDaGFyYWN0
ZXJzMTYgKyBtX2xlbmd0aCwgY2hhcmFjdGVycywgc3RhdGljX2Nhc3Q8c2l6ZV90PihsZW5ndGgp
ICogc2l6ZW9mKFVDaGFyKSk7CiAgICAgICAgIG1fbGVuZ3RoID0gcmVxdWlyZWRMZW5ndGg7CiAg
ICAgfSBlbHNlIHsKLSAgICAgICAgVUNoYXIqIGRlc3QgPSBhcHBlbmRVbmluaXRpYWxpemVkPFVD
aGFyPihsZW5ndGgpOwotICAgICAgICBpZiAoIWRlc3QpCi0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgICAgIG1lbWNweShkZXN0LCBjaGFyYWN0ZXJzLCBzdGF0aWNfY2FzdDxzaXplX3Q+
KGxlbmd0aCkgKiBzaXplb2YoVUNoYXIpKTsKKyAgICAgICAgaWYgKGF1dG8gYXBwZW5kZWQgPSBh
cHBlbmRVbmluaXRpYWxpemVkPFVDaGFyPihsZW5ndGgpKQorICAgICAgICAgICAgbWVtY3B5KCph
cHBlbmRlZCwgY2hhcmFjdGVycywgc3RhdGljX2Nhc3Q8c2l6ZV90PihsZW5ndGgpICogc2l6ZW9m
KFVDaGFyKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3Rl
ZChhcHBlbmRlZC5lcnJvcigpKTsKICAgICB9CiAgICAgQVNTRVJUKG1fYnVmZmVyLT5sZW5ndGgo
KSA+PSBtX2xlbmd0aCk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHsgfTsKIH0KIAot
dm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmQoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2ln
bmVkIGxlbmd0aCkKLXsKLSAgICBpZiAoIXRyeUFwcGVuZChjaGFyYWN0ZXJzLCBsZW5ndGgpKQot
ICAgICAgICBDUkFTSCgpOwotfQotCi1ib29sIFN0cmluZ0J1aWxkZXI6OnRyeUFwcGVuZChjb25z
dCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQorU3RyaW5nQnVpbGRlcjo6RmFs
bGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmQoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVu
c2lnbmVkIGxlbmd0aCkKIHsKICAgICBpZiAoIWxlbmd0aCkKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0KKyAgICAgICAgcmV0dXJuIHsgfTsKICAgICBBU1NFUlQoY2hhcmFjdGVycyk7CiAKICAgICBp
ZiAobV9pczhCaXQpIHsKLSAgICAgICAgTENoYXIqIGRlc3QgPSBhcHBlbmRVbmluaXRpYWxpemVk
PExDaGFyPihsZW5ndGgpOwotICAgICAgICBpZiAoIWRlc3QpCi0gICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIGF1dG8gYXBwZW5kZWQgPSBhcHBlbmRVbmluaXRpYWxpemVkPExDaGFy
PihsZW5ndGgpOworICAgICAgICBpZiAoIWFwcGVuZGVkKQorICAgICAgICAgICAgcmV0dXJuIG1h
a2VVbmV4cGVjdGVkKGFwcGVuZGVkLmVycm9yKCkpOworICAgICAgICBMQ2hhciogZGVzdCA9ICph
cHBlbmRlZDsKICAgICAgICAgaWYgKGxlbmd0aCA+IDgpCiAgICAgICAgICAgICBtZW1jcHkoZGVz
dCwgY2hhcmFjdGVycywgc3RhdGljX2Nhc3Q8c2l6ZV90PihsZW5ndGgpICogc2l6ZW9mKExDaGFy
KSk7CiAgICAgICAgIGVsc2UgewpAQCAtMzI4LDc2ICszNzAsNzkgQEAgYm9vbCBTdHJpbmdCdWls
ZGVyOjp0cnlBcHBlbmQoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkK
ICAgICAgICAgICAgICAgICAqKGRlc3QrKykgPSAqKGNoYXJhY3RlcnMrKyk7CiAgICAgICAgIH0K
ICAgICB9IGVsc2UgewotICAgICAgICBVQ2hhciogZGVzdCA9IGFwcGVuZFVuaW5pdGlhbGl6ZWQ8
VUNoYXI+KGxlbmd0aCk7Ci0gICAgICAgIGlmICghZGVzdCkKLSAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgYXV0byBhcHBlbmRlZCA9IGFwcGVuZFVuaW5pdGlhbGl6ZWQ8VUNoYXI+
KGxlbmd0aCk7CisgICAgICAgIGlmICghYXBwZW5kZWQpCisgICAgICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQoYXBwZW5kZWQuZXJyb3IoKSk7CisgICAgICAgIFVDaGFyKiBkZXN0ID0gKmFw
cGVuZGVkOwogICAgICAgICBjb25zdCBMQ2hhciogZW5kID0gY2hhcmFjdGVycyArIGxlbmd0aDsK
ICAgICAgICAgd2hpbGUgKGNoYXJhY3RlcnMgPCBlbmQpCiAgICAgICAgICAgICAqKGRlc3QrKykg
PSAqKGNoYXJhY3RlcnMrKyk7CiAgICAgfQotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiB7
IH07CiB9CiAKICNpZiBVU0UoQ0YpCiAKLXZvaWQgU3RyaW5nQnVpbGRlcjo6YXBwZW5kKENGU3Ry
aW5nUmVmIHN0cmluZykKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6
YXBwZW5kKENGU3RyaW5nUmVmIHN0cmluZykKIHsKICAgICAvLyBGYXN0IHBhdGg6IGF2b2lkIGNv
bnN0cnVjdGluZyBhIHRlbXBvcmFyeSBTdHJpbmcgd2hlbiBwb3NzaWJsZS4KICAgICBpZiAoYXV0
byogY2hhcmFjdGVycyA9IENGU3RyaW5nR2V0Q1N0cmluZ1B0cihzdHJpbmcsIGtDRlN0cmluZ0Vu
Y29kaW5nSVNPTGF0aW4xKSkgewotICAgICAgICBhcHBlbmQocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBMQ2hhcio+KGNoYXJhY3RlcnMpLCBDRlN0cmluZ0dldExlbmd0aChzdHJpbmcpKTsKLSAgICAg
ICAgcmV0dXJuOworICAgICAgICBpZiAoYXV0byBhcHBlbmRlZCA9IGFwcGVuZChyZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oY2hhcmFjdGVycyksIENGU3RyaW5nR2V0TGVuZ3RoKHN0cmlu
ZykpKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
cmV0dXJuIGFwcGVuZGVkOwogICAgIH0KLSAgICBhcHBlbmQoU3RyaW5nKHN0cmluZykpOworICAg
IHJldHVybiBhcHBlbmQoU3RyaW5nKHN0cmluZykpOwogfQogCiAjZW5kaWYKIAotdm9pZCBTdHJp
bmdCdWlsZGVyOjphcHBlbmROdW1iZXIoaW50IG51bWJlcikKK1N0cmluZ0J1aWxkZXI6OkZhbGxp
YmxlPD4gU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKGludCBudW1iZXIpCiB7Ci0gICAgbnVt
YmVyVG9TdHJpbmdTaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0aGlzKTsKKyAgICByZXR1
cm4gbnVtYmVyVG9TdHJpbmdTaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0aGlzKTsKIH0K
IAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIodW5zaWduZWQgaW50IG51bWJlcikK
K1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKHVu
c2lnbmVkIGludCBudW1iZXIpCiB7Ci0gICAgbnVtYmVyVG9TdHJpbmdVbnNpZ25lZDxTdHJpbmdC
dWlsZGVyPihudW1iZXIsIHRoaXMpOworICAgIHJldHVybiBudW1iZXJUb1N0cmluZ1Vuc2lnbmVk
PFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CiB9CiAKLXZvaWQgU3RyaW5nQnVpbGRlcjo6
YXBwZW5kTnVtYmVyKGxvbmcgbnVtYmVyKQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJp
bmdCdWlsZGVyOjphcHBlbmROdW1iZXIobG9uZyBudW1iZXIpCiB7Ci0gICAgbnVtYmVyVG9TdHJp
bmdTaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0aGlzKTsKKyAgICByZXR1cm4gbnVtYmVy
VG9TdHJpbmdTaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0aGlzKTsKIH0KIAotdm9pZCBT
dHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIodW5zaWduZWQgbG9uZyBudW1iZXIpCitTdHJpbmdC
dWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcih1bnNpZ25lZCBs
b25nIG51bWJlcikKIHsKLSAgICBudW1iZXJUb1N0cmluZ1Vuc2lnbmVkPFN0cmluZ0J1aWxkZXI+
KG51bWJlciwgdGhpcyk7CisgICAgcmV0dXJuIG51bWJlclRvU3RyaW5nVW5zaWduZWQ8U3RyaW5n
QnVpbGRlcj4obnVtYmVyLCB0aGlzKTsKIH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmRO
dW1iZXIobG9uZyBsb25nIG51bWJlcikKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5n
QnVpbGRlcjo6YXBwZW5kTnVtYmVyKGxvbmcgbG9uZyBudW1iZXIpCiB7Ci0gICAgbnVtYmVyVG9T
dHJpbmdTaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0aGlzKTsKKyAgICByZXR1cm4gbnVt
YmVyVG9TdHJpbmdTaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0aGlzKTsKIH0KIAotdm9p
ZCBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIodW5zaWduZWQgbG9uZyBsb25nIG51bWJlcikK
K1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKHVu
c2lnbmVkIGxvbmcgbG9uZyBudW1iZXIpCiB7Ci0gICAgbnVtYmVyVG9TdHJpbmdVbnNpZ25lZDxT
dHJpbmdCdWlsZGVyPihudW1iZXIsIHRoaXMpOworICAgIHJldHVybiBudW1iZXJUb1N0cmluZ1Vu
c2lnbmVkPFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CiB9CiAKLXZvaWQgU3RyaW5nQnVp
bGRlcjo6YXBwZW5kTnVtYmVyKGRvdWJsZSBudW1iZXIsIHVuc2lnbmVkIHByZWNpc2lvbiwgVHJh
aWxpbmdaZXJvc1RydW5jYXRpbmdQb2xpY3kgdHJhaWxpbmdaZXJvc1RydW5jYXRpbmdQb2xpY3kp
CitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcihk
b3VibGUgbnVtYmVyLCB1bnNpZ25lZCBwcmVjaXNpb24sIFRyYWlsaW5nWmVyb3NUcnVuY2F0aW5n
UG9saWN5IHRyYWlsaW5nWmVyb3NUcnVuY2F0aW5nUG9saWN5KQogewogICAgIE51bWJlclRvU3Ry
aW5nQnVmZmVyIGJ1ZmZlcjsKLSAgICBhcHBlbmQobnVtYmVyVG9GaXhlZFByZWNpc2lvblN0cmlu
ZyhudW1iZXIsIHByZWNpc2lvbiwgYnVmZmVyLCB0cmFpbGluZ1plcm9zVHJ1bmNhdGluZ1BvbGlj
eSA9PSBUcnVuY2F0ZVRyYWlsaW5nWmVyb3MpKTsKKyAgICByZXR1cm4gYXBwZW5kKG51bWJlclRv
Rml4ZWRQcmVjaXNpb25TdHJpbmcobnVtYmVyLCBwcmVjaXNpb24sIGJ1ZmZlciwgdHJhaWxpbmda
ZXJvc1RydW5jYXRpbmdQb2xpY3kgPT0gVHJ1bmNhdGVUcmFpbGluZ1plcm9zKSk7CiB9CiAKLXZv
aWQgU3RyaW5nQnVpbGRlcjo6YXBwZW5kRUNNQVNjcmlwdE51bWJlcihkb3VibGUgbnVtYmVyKQor
U3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmRFQ01BU2NyaXB0
TnVtYmVyKGRvdWJsZSBudW1iZXIpCiB7CiAgICAgTnVtYmVyVG9TdHJpbmdCdWZmZXIgYnVmZmVy
OwotICAgIGFwcGVuZChudW1iZXJUb1N0cmluZyhudW1iZXIsIGJ1ZmZlcikpOworICAgIHJldHVy
biBhcHBlbmQobnVtYmVyVG9TdHJpbmcobnVtYmVyLCBidWZmZXIpKTsKIH0KIAotdm9pZCBTdHJp
bmdCdWlsZGVyOjphcHBlbmRGaXhlZFdpZHRoTnVtYmVyKGRvdWJsZSBudW1iZXIsIHVuc2lnbmVk
IGRlY2ltYWxQbGFjZXMpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6
OmFwcGVuZEZpeGVkV2lkdGhOdW1iZXIoZG91YmxlIG51bWJlciwgdW5zaWduZWQgZGVjaW1hbFBs
YWNlcykKIHsKICAgICBOdW1iZXJUb1N0cmluZ0J1ZmZlciBidWZmZXI7Ci0gICAgYXBwZW5kKG51
bWJlclRvRml4ZWRXaWR0aFN0cmluZyhudW1iZXIsIGRlY2ltYWxQbGFjZXMsIGJ1ZmZlcikpOwor
ICAgIHJldHVybiBhcHBlbmQobnVtYmVyVG9GaXhlZFdpZHRoU3RyaW5nKG51bWJlciwgZGVjaW1h
bFBsYWNlcywgYnVmZmVyKSk7CiB9CiAKIGJvb2wgU3RyaW5nQnVpbGRlcjo6Y2FuU2hyaW5rKCkg
Y29uc3QKQEAgLTQwNiwxNSArNDUxLDIxIEBAIGJvb2wgU3RyaW5nQnVpbGRlcjo6Y2FuU2hyaW5r
KCkgY29uc3QKICAgICByZXR1cm4gbV9idWZmZXIgJiYgbV9idWZmZXItPmxlbmd0aCgpID4gKG1f
bGVuZ3RoICsgKG1fbGVuZ3RoID4+IDIpKTsKIH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjpzaHJp
bmtUb0ZpdCgpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OnNocmlu
a1RvRml0KCkKIHsKICAgICBpZiAoY2FuU2hyaW5rKCkpIHsKLSAgICAgICAgaWYgKG1faXM4Qml0
KQotICAgICAgICAgICAgcmVhbGxvY2F0ZUJ1ZmZlcjxMQ2hhcj4obV9sZW5ndGgpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICByZWFsbG9jYXRlQnVmZmVyPFVDaGFyPihtX2xlbmd0aCk7Cisg
ICAgICAgIGlmIChtX2lzOEJpdCkgeworICAgICAgICAgICAgYXV0byByZWFsbG9jYXRlZCA9IHJl
YWxsb2NhdGVCdWZmZXI8TENoYXI+KG1fbGVuZ3RoKTsKKyAgICAgICAgICAgIGlmICghcmVhbGxv
Y2F0ZWQpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlYWxsb2NhdGVkOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgYXV0byByZWFsbG9jYXRlZCA9IHJlYWxsb2NhdGVCdWZmZXI8VUNo
YXI+KG1fbGVuZ3RoKTsKKyAgICAgICAgICAgIGlmICghcmVhbGxvY2F0ZWQpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlYWxsb2NhdGVkOworICAgICAgICB9CiAgICAgICAgIG1fc3RyaW5nID0g
V1RGTW92ZShtX2J1ZmZlcik7CiAgICAgfQorICAgIHJldHVybiB7IH07CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVy
LmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaAppbmRleCA3ZTk3NGMxLi4y
YzBkZGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCwgMjAxMi0yMDEzLCAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMjcsNiArMjcs
NyBAQAogI2lmbmRlZiBTdHJpbmdCdWlsZGVyX2gKICNkZWZpbmUgU3RyaW5nQnVpbGRlcl9oCiAK
KyNpbmNsdWRlIDx3dGYvRXhwZWN0ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJp
bmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9JbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgpAQCAtNDAsMzYgKzQxLDMzIEBAIGNsYXNz
IFN0cmluZ0J1aWxkZXIgewogCiBwdWJsaWM6CiAgICAgU3RyaW5nQnVpbGRlcigpCi0gICAgICAg
IDogbV9sZW5ndGgoMCkKLSAgICAgICAgLCBtX2lzOEJpdCh0cnVlKQotICAgICAgICAsIG1fYnVm
ZmVyQ2hhcmFjdGVyczgobnVsbHB0cikKKyAgICAgICAgOiBtX2J1ZmZlckNoYXJhY3RlcnM4KG51
bGxwdHIpCiAgICAgewogICAgIH0KICAgICBTdHJpbmdCdWlsZGVyKFN0cmluZ0J1aWxkZXImJikg
PSBkZWZhdWx0OwogICAgIFN0cmluZ0J1aWxkZXImIG9wZXJhdG9yPShTdHJpbmdCdWlsZGVyJiYp
ID0gZGVmYXVsdDsKIAotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZChjb25zdCBV
Q2hhciosIHVuc2lnbmVkKTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCB0cnlBcHBlbmQo
Y29uc3QgVUNoYXIqLCB1bnNpZ25lZCk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBw
ZW5kKGNvbnN0IExDaGFyKiwgdW5zaWduZWQpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29s
IHRyeUFwcGVuZChjb25zdCBMQ2hhciosIHVuc2lnbmVkKTsKKyAgICBlbnVtIGNsYXNzIEZhaWx1
cmUgeworICAgICAgICBXb3VsZE92ZXJmbG93LAorICAgICAgICBPdXRPZk1lbW9yeSwKKyAgICAg
ICAgVW5oYW5kbGVkRmFpbHVyZSwKKyAgICB9OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEV4cGVj
dCA9IHZvaWQ+IHVzaW5nIEZhbGxpYmxlID0gRXhwZWN0ZWQ8RXhwZWN0LCBTdHJpbmdCdWlsZGVy
OjpGYWlsdXJlPjsKIAotICAgIEFMV0FZU19JTkxJTkUgdm9pZCBhcHBlbmQoY29uc3QgY2hhciog
Y2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKSB7IGFwcGVuZChyZWludGVycHJldF9jYXN0PGNv
bnN0IExDaGFyKj4oY2hhcmFjdGVycyksIGxlbmd0aCk7IH0KLSAgICBBTFdBWVNfSU5MSU5FIGJv
b2wgdHJ5QXBwZW5kKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkgeyBy
ZXR1cm4gdHJ5QXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihjaGFyYWN0ZXJz
KSwgbGVuZ3RoKTsgfQorICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IGFwcGVuZChj
b25zdCBVQ2hhciosIHVuc2lnbmVkKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8
PiBhcHBlbmQoY29uc3QgTENoYXIqLCB1bnNpZ25lZCk7CiAKLSAgICB2b2lkIGFwcGVuZChjb25z
dCBBdG9taWNTdHJpbmcmIGF0b21pY1N0cmluZykKLSAgICB7Ci0gICAgICAgIGFwcGVuZChhdG9t
aWNTdHJpbmcuc3RyaW5nKCkpOwotICAgIH0KKyAgICBBTFdBWVNfSU5MSU5FIEZhbGxpYmxlPD4g
YXBwZW5kKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkgeyByZXR1cm4g
YXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihjaGFyYWN0ZXJzKSwgbGVuZ3Ro
KTsgfQogCi0gICAgdm9pZCBhcHBlbmQoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgRmFsbGli
bGU8PiBhcHBlbmQoY29uc3QgQXRvbWljU3RyaW5nJiBhdG9taWNTdHJpbmcpCiAgICAgewotICAg
ICAgICBpZiAoIXRyeUFwcGVuZChzdHJpbmcpKQotICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAg
ICAgcmV0dXJuIGFwcGVuZChhdG9taWNTdHJpbmcuc3RyaW5nKCkpOwogICAgIH0KLSAgICBib29s
IHRyeUFwcGVuZChjb25zdCBTdHJpbmcmIHN0cmluZykKKworICAgIEZhbGxpYmxlPD4gYXBwZW5k
KGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgIHsKICAgICAgICAgaWYgKCFzdHJpbmcubGVuZ3Ro
KCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiB7IH07CiAK
ICAgICAgICAgLy8gSWYgd2UncmUgYXBwZW5kaW5nIHRvIGFuIGVtcHR5IHN0cmluZywgYW5kIHRo
ZXJlIGlzIG5vdCBhIGJ1ZmZlciAocmVzZXJ2ZUNhcGFjaXR5IGhhcyBub3QgYmVlbiBjYWxsZWQp
CiAgICAgICAgIC8vIHRoZW4ganVzdCByZXRhaW4gdGhlIHN0cmluZy4KQEAgLTc3LDE3NCArNzUs
MTY0IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fc3RyaW5nID0gc3RyaW5nOwogICAgICAgICAg
ICAgbV9sZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7CiAgICAgICAgICAgICBtX2lzOEJpdCA9IG1f
c3RyaW5nLmlzOEJpdCgpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBy
ZXR1cm4geyB9OwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHN0cmluZy5pczhCaXQoKSkKLSAg
ICAgICAgICAgIHJldHVybiB0cnlBcHBlbmQoc3RyaW5nLmNoYXJhY3RlcnM4KCksIHN0cmluZy5s
ZW5ndGgoKSk7CisgICAgICAgICAgICByZXR1cm4gYXBwZW5kKHN0cmluZy5jaGFyYWN0ZXJzOCgp
LCBzdHJpbmcubGVuZ3RoKCkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXR1cm4gdHJ5
QXBwZW5kKHN0cmluZy5jaGFyYWN0ZXJzMTYoKSwgc3RyaW5nLmxlbmd0aCgpKTsKKyAgICAgICAg
ICAgIHJldHVybiBhcHBlbmQoc3RyaW5nLmNoYXJhY3RlcnMxNigpLCBzdHJpbmcubGVuZ3RoKCkp
OwogICAgIH0KIAotICAgIHZvaWQgYXBwZW5kKGNvbnN0IFN0cmluZ0J1aWxkZXImIG90aGVyKQot
ICAgIHsKLSAgICAgICAgaWYgKCF0cnlBcHBlbmQob3RoZXIpKQotICAgICAgICAgICAgQ1JBU0go
KTsKLSAgICB9Ci0gICAgYm9vbCB0cnlBcHBlbmQoY29uc3QgU3RyaW5nQnVpbGRlciYgb3RoZXIp
CisgICAgRmFsbGlibGU8PiBhcHBlbmQoY29uc3QgU3RyaW5nQnVpbGRlciYgb3RoZXIpCiAgICAg
eworICAgICAgICBpZiAob3RoZXIuZmFpbGVkKCkpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVu
ZXhwZWN0ZWQoRmFpbHVyZTo6VW5oYW5kbGVkRmFpbHVyZSk7ICAgICAgICAgICAgCiAgICAgICAg
IGlmICghb3RoZXIubV9sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg
ICAgIHJldHVybiB7IH07CiAKICAgICAgICAgLy8gSWYgd2UncmUgYXBwZW5kaW5nIHRvIGFuIGVt
cHR5IHN0cmluZywgYW5kIHRoZXJlIGlzIG5vdCBhIGJ1ZmZlciAocmVzZXJ2ZUNhcGFjaXR5IGhh
cyBub3QgYmVlbiBjYWxsZWQpCiAgICAgICAgIC8vIHRoZW4ganVzdCByZXRhaW4gdGhlIHN0cmlu
Zy4KICAgICAgICAgaWYgKCFtX2xlbmd0aCAmJiAhbV9idWZmZXIgJiYgIW90aGVyLm1fc3RyaW5n
LmlzTnVsbCgpKSB7CiAgICAgICAgICAgICBtX3N0cmluZyA9IG90aGVyLm1fc3RyaW5nOwogICAg
ICAgICAgICAgbV9sZW5ndGggPSBvdGhlci5tX2xlbmd0aDsKLSAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChv
dGhlci5pczhCaXQoKSkKLSAgICAgICAgICAgIHJldHVybiB0cnlBcHBlbmQob3RoZXIuY2hhcmFj
dGVyczgoKSwgb3RoZXIubV9sZW5ndGgpOworICAgICAgICAgICAgcmV0dXJuIGFwcGVuZCgqb3Ro
ZXIuY2hhcmFjdGVyczgoKSwgb3RoZXIubV9sZW5ndGgpOwogICAgICAgICBlbHNlCi0gICAgICAg
ICAgICByZXR1cm4gdHJ5QXBwZW5kKG90aGVyLmNoYXJhY3RlcnMxNigpLCBvdGhlci5tX2xlbmd0
aCk7CisgICAgICAgICAgICByZXR1cm4gYXBwZW5kKCpvdGhlci5jaGFyYWN0ZXJzMTYoKSwgb3Ro
ZXIubV9sZW5ndGgpOwogICAgIH0KIAotICAgIHZvaWQgYXBwZW5kKFN0cmluZ1ZpZXcgc3RyaW5n
VmlldykKLSAgICB7Ci0gICAgICAgIGlmICghdHJ5QXBwZW5kKHN0cmluZ1ZpZXcpKQotICAgICAg
ICAgICAgQ1JBU0goKTsKLSAgICB9Ci0gICAgYm9vbCB0cnlBcHBlbmQoU3RyaW5nVmlldyBzdHJp
bmdWaWV3KQorICAgIEZhbGxpYmxlPD4gYXBwZW5kKFN0cmluZ1ZpZXcgc3RyaW5nVmlldykKICAg
ICB7CiAgICAgICAgIGlmIChzdHJpbmdWaWV3LmlzOEJpdCgpKQotICAgICAgICAgICAgcmV0dXJu
IHRyeUFwcGVuZChzdHJpbmdWaWV3LmNoYXJhY3RlcnM4KCksIHN0cmluZ1ZpZXcubGVuZ3RoKCkp
OworICAgICAgICAgICAgcmV0dXJuIGFwcGVuZChzdHJpbmdWaWV3LmNoYXJhY3RlcnM4KCksIHN0
cmluZ1ZpZXcubGVuZ3RoKCkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXR1cm4gdHJ5
QXBwZW5kKHN0cmluZ1ZpZXcuY2hhcmFjdGVyczE2KCksIHN0cmluZ1ZpZXcubGVuZ3RoKCkpOwor
ICAgICAgICAgICAgcmV0dXJuIGFwcGVuZChzdHJpbmdWaWV3LmNoYXJhY3RlcnMxNigpLCBzdHJp
bmdWaWV3Lmxlbmd0aCgpKTsKICAgICB9CiAKICNpZiBVU0UoQ0YpCi0gICAgV1RGX0VYUE9SVF9Q
UklWQVRFIHZvaWQgYXBwZW5kKENGU3RyaW5nUmVmKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUg
RmFsbGlibGU8PiBhcHBlbmQoQ0ZTdHJpbmdSZWYpOwogI2VuZGlmCiAjaWYgVVNFKENGKSAmJiBk
ZWZpbmVkKF9fT0JKQ19fKQotICAgIHZvaWQgYXBwZW5kKE5TU3RyaW5nICpzdHJpbmcpIHsgYXBw
ZW5kKChfX2JyaWRnZSBDRlN0cmluZ1JlZilzdHJpbmcpOyB9CisgICAgRmFsbGlibGU8PiBhcHBl
bmQoTlNTdHJpbmcgKnN0cmluZykgeyByZXR1cm4gYXBwZW5kKChfX2JyaWRnZSBDRlN0cmluZ1Jl
ZilzdHJpbmcpOyB9CiAjZW5kaWYKICAgICAKLSAgICB2b2lkIGFwcGVuZChjb25zdCBTdHJpbmcm
IHN0cmluZywgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCisgICAgRmFsbGlibGU8
PiBhcHBlbmQoY29uc3QgU3RyaW5nJiBzdHJpbmcsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQg
bGVuZ3RoKQogICAgIHsKICAgICAgICAgaWYgKCFzdHJpbmcubGVuZ3RoKCkpCi0gICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4geyB9OwogCiAgICAgICAgIGlmICgob2Zmc2V0
ICsgbGVuZ3RoKSA+IHN0cmluZy5sZW5ndGgoKSkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIHJldHVybiB7IH07CiAKICAgICAgICAgaWYgKHN0cmluZy5pczhCaXQoKSkKLSAgICAg
ICAgICAgIGFwcGVuZChzdHJpbmcuY2hhcmFjdGVyczgoKSArIG9mZnNldCwgbGVuZ3RoKTsKKyAg
ICAgICAgICAgIHJldHVybiBhcHBlbmQoc3RyaW5nLmNoYXJhY3RlcnM4KCkgKyBvZmZzZXQsIGxl
bmd0aCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGFwcGVuZChzdHJpbmcuY2hhcmFjdGVy
czE2KCkgKyBvZmZzZXQsIGxlbmd0aCk7CisgICAgICAgICAgICByZXR1cm4gYXBwZW5kKHN0cmlu
Zy5jaGFyYWN0ZXJzMTYoKSArIG9mZnNldCwgbGVuZ3RoKTsKICAgICB9CiAKLSAgICB2b2lkIGFw
cGVuZChjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKQorICAgIEZhbGxpYmxlPD4gYXBwZW5kKGNvbnN0
IGNoYXIqIGNoYXJhY3RlcnMpCiAgICAgewogICAgICAgICBpZiAoY2hhcmFjdGVycykKLSAgICAg
ICAgICAgIGFwcGVuZChjaGFyYWN0ZXJzLCBzdHJsZW4oY2hhcmFjdGVycykpOwotICAgIH0KLSAg
ICBib29sIHRyeUFwcGVuZChjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKQotICAgIHsKLSAgICAgICAg
aWYgKGNoYXJhY3RlcnMpCi0gICAgICAgICAgICByZXR1cm4gdHJ5QXBwZW5kKGNoYXJhY3RlcnMs
IHN0cmxlbihjaGFyYWN0ZXJzKSk7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAg
cmV0dXJuIGFwcGVuZChjaGFyYWN0ZXJzLCBzdHJsZW4oY2hhcmFjdGVycykpOworICAgICAgICBy
ZXR1cm4geyB9OwogICAgIH0KIAotICAgIHZvaWQgYXBwZW5kKFVDaGFyIGMpCisgICAgRmFsbGli
bGU8PiBhcHBlbmQoVUNoYXIgYykKICAgICB7CiAgICAgICAgIGlmIChtX2J1ZmZlciAmJiBtX2xl
bmd0aCA8IG1fYnVmZmVyLT5sZW5ndGgoKSAmJiBtX3N0cmluZy5pc051bGwoKSkgewogICAgICAg
ICAgICAgaWYgKCFtX2lzOEJpdCkgewogICAgICAgICAgICAgICAgIG1fYnVmZmVyQ2hhcmFjdGVy
czE2W21fbGVuZ3RoKytdID0gYzsKLSAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKCEoYyAm
IH4weGZmKSkgewogICAgICAgICAgICAgICAgIG1fYnVmZmVyQ2hhcmFjdGVyczhbbV9sZW5ndGgr
K10gPSBzdGF0aWNfY2FzdDxMQ2hhcj4oYyk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAg
ICAgYXBwZW5kKCZjLCAxKTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZCgmYywgMSk7CiAgICAgfQog
Ci0gICAgdm9pZCBhcHBlbmQoTENoYXIgYykKLSAgICB7Ci0gICAgICAgIGlmICghdHJ5QXBwZW5k
KGMpKQotICAgICAgICAgICAgQ1JBU0goKTsKLSAgICB9Ci0gICAgYm9vbCB0cnlBcHBlbmQoTENo
YXIgYykKKyAgICBGYWxsaWJsZTw+IGFwcGVuZChMQ2hhciBjKQogICAgIHsKICAgICAgICAgaWYg
KG1fYnVmZmVyICYmIG1fbGVuZ3RoIDwgbV9idWZmZXItPmxlbmd0aCgpICYmIG1fc3RyaW5nLmlz
TnVsbCgpKSB7CiAgICAgICAgICAgICBpZiAobV9pczhCaXQpCiAgICAgICAgICAgICAgICAgbV9i
dWZmZXJDaGFyYWN0ZXJzOFttX2xlbmd0aCsrXSA9IGM7CiAgICAgICAgICAgICBlbHNlCiAgICAg
ICAgICAgICAgICAgbV9idWZmZXJDaGFyYWN0ZXJzMTZbbV9sZW5ndGgrK10gPSBjOwotICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgcmV0dXJuIHRy
eUFwcGVuZCgmYywgMSk7CisgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICB9CisgICAg
ICAgIHJldHVybiBhcHBlbmQoJmMsIDEpOwogICAgIH0KIAotICAgIHZvaWQgYXBwZW5kKGNoYXIg
YykgeyBhcHBlbmQoc3RhdGljX2Nhc3Q8TENoYXI+KGMpKTsgfQotICAgIGJvb2wgdHJ5QXBwZW5k
KGNoYXIgYykgeyByZXR1cm4gdHJ5QXBwZW5kKHN0YXRpY19jYXN0PExDaGFyPihjKSk7IH0KKyAg
ICBGYWxsaWJsZTw+IGFwcGVuZChjaGFyIGMpCisgICAgeworICAgICAgICByZXR1cm4gYXBwZW5k
KHN0YXRpY19jYXN0PExDaGFyPihjKSk7CisgICAgfQogCi0gICAgdm9pZCBhcHBlbmQoVUNoYXIz
MiBjKQorICAgIEZhbGxpYmxlPD4gYXBwZW5kKFVDaGFyMzIgYykKICAgICB7Ci0gICAgICAgIGlm
IChVX0lTX0JNUChjKSkgewotICAgICAgICAgICAgYXBwZW5kKHN0YXRpY19jYXN0PFVDaGFyPihj
KSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgYXBwZW5kKFUxNl9M
RUFEKGMpKTsKLSAgICAgICAgYXBwZW5kKFUxNl9UUkFJTChjKSk7CisgICAgICAgIGlmIChVX0lT
X0JNUChjKSkKKyAgICAgICAgICAgIHJldHVybiBhcHBlbmQoc3RhdGljX2Nhc3Q8VUNoYXI+KGMp
KTsKKyAgICAgICAgYXV0byBhcHBlbmRlZCA9IGFwcGVuZChVMTZfTEVBRChjKSk7CisgICAgICAg
IGlmICghYXBwZW5kZWQpCisgICAgICAgICAgICByZXR1cm4gYXBwZW5kZWQ7CisgICAgICAgIHJl
dHVybiBhcHBlbmQoVTE2X1RSQUlMKGMpKTsKICAgICB9CiAKLSAgICBXVEZfRVhQT1JUX1BSSVZB
VEUgdm9pZCBhcHBlbmRRdW90ZWRKU09OU3RyaW5nKGNvbnN0IFN0cmluZyYpOwotICAgIFdURl9F
WFBPUlRfUFJJVkFURSBib29sIHRyeUFwcGVuZFF1b3RlZEpTT05TdHJpbmcoY29uc3QgU3RyaW5n
Jik7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5kUXVvdGVkSlNPTlN0
cmluZyhjb25zdCBTdHJpbmcmKTsKIAogICAgIHRlbXBsYXRlPHVuc2lnbmVkIGNoYXJhY3RlckNv
dW50PgotICAgIEFMV0FZU19JTkxJTkUgdm9pZCBhcHBlbmRMaXRlcmFsKGNvbnN0IGNoYXIgKCZj
aGFyYWN0ZXJzKVtjaGFyYWN0ZXJDb3VudF0pIHsgYXBwZW5kKGNoYXJhY3RlcnMsIGNoYXJhY3Rl
ckNvdW50IC0gMSk7IH0KLSAgICB0ZW1wbGF0ZTx1bnNpZ25lZCBjaGFyYWN0ZXJDb3VudD4KLSAg
ICBBTFdBWVNfSU5MSU5FIGJvb2wgdHJ5QXBwZW5kTGl0ZXJhbChjb25zdCBjaGFyICgmY2hhcmFj
dGVycylbY2hhcmFjdGVyQ291bnRdKSB7IHJldHVybiB0cnlBcHBlbmQoY2hhcmFjdGVycywgY2hh
cmFjdGVyQ291bnQgLSAxKTsgfQotCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5k
TnVtYmVyKGludCk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kTnVtYmVyKHVu
c2lnbmVkIGludCk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kTnVtYmVyKGxv
bmcpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZE51bWJlcih1bnNpZ25lZCBs
b25nKTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmROdW1iZXIobG9uZyBsb25n
KTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmROdW1iZXIodW5zaWduZWQgbG9u
ZyBsb25nKTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmROdW1iZXIoZG91Ymxl
LCB1bnNpZ25lZCBwcmVjaXNpb24gPSA2LCBUcmFpbGluZ1plcm9zVHJ1bmNhdGluZ1BvbGljeSA9
IFRydW5jYXRlVHJhaWxpbmdaZXJvcyk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBw
ZW5kRUNNQVNjcmlwdE51bWJlcihkb3VibGUpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lk
IGFwcGVuZEZpeGVkV2lkdGhOdW1iZXIoZG91YmxlLCB1bnNpZ25lZCBkZWNpbWFsUGxhY2VzKTsK
LQotICAgIFN0cmluZyB0b1N0cmluZygpCisgICAgQUxXQVlTX0lOTElORSBGYWxsaWJsZTw+IGFw
cGVuZExpdGVyYWwoY29uc3QgY2hhciAoJmNoYXJhY3RlcnMpW2NoYXJhY3RlckNvdW50XSkgeyBy
ZXR1cm4gYXBwZW5kKGNoYXJhY3RlcnMsIGNoYXJhY3RlckNvdW50IC0gMSk7IH0KKworICAgIFdU
Rl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IGFwcGVuZE51bWJlcihpbnQpOworICAgIFdURl9F
WFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IGFwcGVuZE51bWJlcih1bnNpZ25lZCBpbnQpOworICAg
IFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IGFwcGVuZE51bWJlcihsb25nKTsKKyAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmROdW1iZXIodW5zaWduZWQgbG9uZyk7
CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5kTnVtYmVyKGxvbmcgbG9u
Zyk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5kTnVtYmVyKHVuc2ln
bmVkIGxvbmcgbG9uZyk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5k
TnVtYmVyKGRvdWJsZSwgdW5zaWduZWQgcHJlY2lzaW9uID0gNiwgVHJhaWxpbmdaZXJvc1RydW5j
YXRpbmdQb2xpY3kgPSBUcnVuY2F0ZVRyYWlsaW5nWmVyb3MpOworICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBGYWxsaWJsZTw+IGFwcGVuZEVDTUFTY3JpcHROdW1iZXIoZG91YmxlKTsKKyAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmRGaXhlZFdpZHRoTnVtYmVyKGRvdWJsZSwg
dW5zaWduZWQgZGVjaW1hbFBsYWNlcyk7CisKKyAgICBXQVJOX1VOVVNFRF9SRVRVUk4gRmFsbGli
bGU8U3RyaW5nPiB0b1N0cmluZygpCiAgICAgewotICAgICAgICBzaHJpbmtUb0ZpdCgpOwotICAg
ICAgICBpZiAobV9zdHJpbmcuaXNOdWxsKCkpCi0gICAgICAgICAgICByZWlmeVN0cmluZygpOwot
ICAgICAgICByZXR1cm4gbV9zdHJpbmc7CisgICAgICAgIGlmIChtX2ZhaWxlZCkKKyAgICAgICAg
ICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGYWlsdXJlOjpVbmhhbmRsZWRGYWlsdXJlKTsKKyAg
ICAgICAgaWYgKGF1dG8gc2hyYW5rID0gc2hyaW5rVG9GaXQoKSkgeworICAgICAgICAgICAgaWYg
KG1fc3RyaW5nLmlzTnVsbCgpKQorICAgICAgICAgICAgICAgIHJlaWZ5U3RyaW5nKCk7CisgICAg
ICAgICAgICByZXR1cm4gbV9zdHJpbmc7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgcmV0
dXJuIG1ha2VVbmV4cGVjdGVkKHNocmFuay5lcnJvcigpKTsKICAgICB9CiAKLSAgICBjb25zdCBT
dHJpbmcmIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIGNvbnN0CisgICAgV0FSTl9VTlVTRURf
UkVUVVJOIEZhbGxpYmxlPFN0cmluZz4gdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgY29uc3QK
ICAgICB7CisgICAgICAgIGlmIChtX2ZhaWxlZCkKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5l
eHBlY3RlZChGYWlsdXJlOjpVbmhhbmRsZWRGYWlsdXJlKTsKICAgICAgICAgaWYgKG1fc3RyaW5n
LmlzTnVsbCgpKQogICAgICAgICAgICAgcmVpZnlTdHJpbmcoKTsKICAgICAgICAgcmV0dXJuIG1f
c3RyaW5nOwogICAgIH0KIAotICAgIEF0b21pY1N0cmluZyB0b0F0b21pY1N0cmluZygpIGNvbnN0
CisgICAgV0FSTl9VTlVTRURfUkVUVVJOIEZhbGxpYmxlPEF0b21pY1N0cmluZz4gdG9BdG9taWNT
dHJpbmcoKSBjb25zdAogICAgIHsKKyAgICAgICAgaWYgKG1fZmFpbGVkKQorICAgICAgICAgICAg
cmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZhaWx1cmU6OlVuaGFuZGxlZEZhaWx1cmUpOworCiAgICAg
ICAgIGlmICghbV9sZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4gZW1wdHlBdG9tKCk7CiAKICAg
ICAgICAgLy8gSWYgdGhlIGJ1ZmZlciBpcyBzdWZmaWNpZW50bHkgb3Zlci1hbGxvY2F0ZWQsIG1h
a2UgYSBuZXcgQXRvbWljU3RyaW5nIGZyb20gYSBjb3B5IHNvIGl0cyBidWZmZXIgaXMgbm90IHNv
IGxhcmdlLgogICAgICAgICBpZiAoY2FuU2hyaW5rKCkpIHsKICAgICAgICAgICAgIGlmIChpczhC
aXQoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gQXRvbWljU3RyaW5nKGNoYXJhY3RlcnM4KCks
IGxlbmd0aCgpKTsKLSAgICAgICAgICAgIHJldHVybiBBdG9taWNTdHJpbmcoY2hhcmFjdGVyczE2
KCksIGxlbmd0aCgpKTsgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICByZXR1cm4gQXRvbWlj
U3RyaW5nKCpjaGFyYWN0ZXJzOCgpLCBsZW5ndGgoKSk7CisgICAgICAgICAgICByZXR1cm4gQXRv
bWljU3RyaW5nKCpjaGFyYWN0ZXJzMTYoKSwgbGVuZ3RoKCkpOyAgICAgICAgICAgIAogICAgICAg
ICB9CiAKICAgICAgICAgaWYgKCFtX3N0cmluZy5pc051bGwoKSkKQEAgLTI2MSwyOSArMjQ5LDM3
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFtX2xlbmd0
aDsgfQogCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVzZXJ2ZUNhcGFjaXR5KHVuc2ln
bmVkIG5ld0NhcGFjaXR5KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiByZXNl
cnZlQ2FwYWNpdHkodW5zaWduZWQgbmV3Q2FwYWNpdHkpOwogCiAgICAgdW5zaWduZWQgY2FwYWNp
dHkoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fYnVmZmVyID8gbV9idWZmZXItPmxl
bmd0aCgpIDogbV9sZW5ndGg7CiAgICAgfQogCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQg
cmVzaXplKHVuc2lnbmVkIG5ld1NpemUpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJs
ZTw+IHJlc2l6ZSh1bnNpZ25lZCBuZXdTaXplKTsKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSBi
b29sIGNhblNocmluaygpIGNvbnN0OwogCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc2hy
aW5rVG9GaXQoKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiBzaHJpbmtUb0Zp
dCgpOworCisgICAgYm9vbCBpczhCaXQoKSBjb25zdCB7IHJldHVybiBtX2lzOEJpdDsgfQogCi0g
ICAgVUNoYXIgb3BlcmF0b3JbXSh1bnNpZ25lZCBpKSBjb25zdAorICAgIGJvb2wgZmFpbGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9mYWlsZWQ7IH0KKworICAgIEZhbGxpYmxlPFVDaGFyPiBvcGVyYXRv
cltdKHVuc2lnbmVkIGkpIGNvbnN0CiAgICAgeworICAgICAgICBpZiAobV9mYWlsZWQpCisgICAg
ICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmFpbHVyZTo6VW5oYW5kbGVkRmFpbHVyZSk7
CiAgICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGkgPCBtX2xlbmd0aCk7
CiAgICAgICAgIGlmIChtX2lzOEJpdCkKLSAgICAgICAgICAgIHJldHVybiBjaGFyYWN0ZXJzOCgp
W2ldOwotICAgICAgICByZXR1cm4gY2hhcmFjdGVyczE2KClbaV07CisgICAgICAgICAgICByZXR1
cm4gKCpjaGFyYWN0ZXJzOCgpKVtpXTsKKyAgICAgICAgcmV0dXJuICgqY2hhcmFjdGVyczE2KCkp
W2ldOwogICAgIH0KIAotICAgIGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzOCgpIGNvbnN0CisgICAg
RmFsbGlibGU8Y29uc3QgTENoYXIqPiBjaGFyYWN0ZXJzOCgpIGNvbnN0CiAgICAgeworICAgICAg
ICBpZiAobV9mYWlsZWQpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmFpbHVy
ZTo6VW5oYW5kbGVkRmFpbHVyZSk7CiAgICAgICAgIEFTU0VSVChtX2lzOEJpdCk7CiAgICAgICAg
IGlmICghbV9sZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4gMDsKQEAgLTI5Myw4ICsyODksMTAg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9idWZmZXItPmNoYXJhY3RlcnM4KCk7CiAgICAg
fQogCi0gICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMxNigpIGNvbnN0CisgICAgRmFsbGlibGU8
Y29uc3QgVUNoYXIqPiBjaGFyYWN0ZXJzMTYoKSBjb25zdAogICAgIHsKKyAgICAgICAgaWYgKG1f
ZmFpbGVkKQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZhaWx1cmU6OlVuaGFu
ZGxlZEZhaWx1cmUpOwogICAgICAgICBBU1NFUlQoIW1faXM4Qml0KTsKICAgICAgICAgaWYgKCFt
X2xlbmd0aCkKICAgICAgICAgICAgIHJldHVybiAwOwpAQCAtMzAzLDE2ICszMDEsMTUgQEAgcHVi
bGljOgogICAgICAgICBBU1NFUlQobV9idWZmZXIpOwogICAgICAgICByZXR1cm4gbV9idWZmZXIt
PmNoYXJhY3RlcnMxNigpOwogICAgIH0KLSAgICAKLSAgICBib29sIGlzOEJpdCgpIGNvbnN0IHsg
cmV0dXJuIG1faXM4Qml0OyB9CiAKICAgICB2b2lkIGNsZWFyKCkKICAgICB7CiAgICAgICAgIG1f
bGVuZ3RoID0gMDsKICAgICAgICAgbV9zdHJpbmcgPSBTdHJpbmcoKTsKICAgICAgICAgbV9idWZm
ZXIgPSBudWxscHRyOwotICAgICAgICBtX2J1ZmZlckNoYXJhY3RlcnM4ID0gMDsKICAgICAgICAg
bV9pczhCaXQgPSB0cnVlOworICAgICAgICBtX2ZhaWxlZCA9IGZhbHNlOworICAgICAgICBtX2J1
ZmZlckNoYXJhY3RlcnM4ID0gMDsKICAgICB9CiAKICAgICB2b2lkIHN3YXAoU3RyaW5nQnVpbGRl
ciYgc3RyaW5nQnVpbGRlcikKQEAgLTMyMSwyOSArMzE4LDMyIEBAIHB1YmxpYzoKICAgICAgICAg
bV9zdHJpbmcuc3dhcChzdHJpbmdCdWlsZGVyLm1fc3RyaW5nKTsKICAgICAgICAgbV9idWZmZXIu
c3dhcChzdHJpbmdCdWlsZGVyLm1fYnVmZmVyKTsKICAgICAgICAgc3RkOjpzd2FwKG1faXM4Qml0
LCBzdHJpbmdCdWlsZGVyLm1faXM4Qml0KTsKKyAgICAgICAgc3RkOjpzd2FwKG1fZmFpbGVkLCBz
dHJpbmdCdWlsZGVyLm1fZmFpbGVkKTsKICAgICAgICAgc3RkOjpzd2FwKG1fYnVmZmVyQ2hhcmFj
dGVyczgsIHN0cmluZ0J1aWxkZXIubV9idWZmZXJDaGFyYWN0ZXJzOCk7CiAgICAgICAgIEFTU0VS
VCghbV9idWZmZXIgfHwgbV9idWZmZXItPmxlbmd0aCgpID49IG1fbGVuZ3RoKTsKICAgICB9CiAK
IHByaXZhdGU6Ci0gICAgdm9pZCBhbGxvY2F0ZUJ1ZmZlcihjb25zdCBMQ2hhciogY3VycmVudENo
YXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKTsKLSAgICB2b2lkIGFsbG9jYXRlQnVm
ZmVyKGNvbnN0IFVDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVxdWlyZWRMZW5n
dGgpOwotICAgIHZvaWQgYWxsb2NhdGVCdWZmZXJVcENvbnZlcnQoY29uc3QgTENoYXIqIGN1cnJl
bnRDaGFyYWN0ZXJzLCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCk7Ci0gICAgYm9vbCB0cnlBbGxv
Y2F0ZUJ1ZmZlclVwQ29udmVydChjb25zdCBMQ2hhciogY3VycmVudENoYXJhY3RlcnMsIHVuc2ln
bmVkIHJlcXVpcmVkTGVuZ3RoKTsKKyAgICBGYWxsaWJsZTw+IGFsbG9jYXRlQnVmZmVyKGNvbnN0
IExDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpOworICAg
IEZhbGxpYmxlPD4gYWxsb2NhdGVCdWZmZXIoY29uc3QgVUNoYXIqIGN1cnJlbnRDaGFyYWN0ZXJz
LCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCk7CisgICAgRmFsbGlibGU8PiBhbGxvY2F0ZUJ1ZmZl
clVwQ29udmVydChjb25zdCBMQ2hhciogY3VycmVudENoYXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVp
cmVkTGVuZ3RoKTsKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci0gICAgdm9pZCBy
ZWFsbG9jYXRlQnVmZmVyKHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKTsKKyAgICBGYWxsaWJsZTw+
IHJlYWxsb2NhdGVCdWZmZXIodW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpOwogICAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBDaGFyVHlwZT4KLSAgICBBTFdBWVNfSU5MSU5FIENoYXJUeXBlKiBhcHBlbmRV
bmluaXRpYWxpemVkKHVuc2lnbmVkIGxlbmd0aCk7CisgICAgQUxXQVlTX0lOTElORSBGYWxsaWJs
ZTxDaGFyVHlwZSo+IGFwcGVuZFVuaW5pdGlhbGl6ZWQodW5zaWduZWQgbGVuZ3RoKTsKICAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci0gICAgQ2hhclR5cGUqIGFwcGVuZFVuaW5pdGlh
bGl6ZWRTbG93KHVuc2lnbmVkIGxlbmd0aCk7CisgICAgRmFsbGlibGU8Q2hhclR5cGUqPiBhcHBl
bmRVbmluaXRpYWxpemVkU2xvdyh1bnNpZ25lZCBsZW5ndGgpOwogICAgIHRlbXBsYXRlIDx0eXBl
bmFtZSBDaGFyVHlwZT4KLSAgICBBTFdBWVNfSU5MSU5FIENoYXJUeXBlICogZ2V0QnVmZmVyQ2hh
cmFjdGVycygpOworICAgIEFMV0FZU19JTkxJTkUgQ2hhclR5cGUqIGdldEJ1ZmZlckNoYXJhY3Rl
cnMoKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCByZWlmeVN0cmluZygpIGNvbnN0Owor
ICAgIFdBUk5fVU5VU0VEX1JFVFVSTiBVbmV4cGVjdGVkPEZhaWx1cmU+IHdvdWxkT3ZlcmZsb3co
KTsKKyAgICBXQVJOX1VOVVNFRF9SRVRVUk4gVW5leHBlY3RlZDxGYWlsdXJlPiBvdXRPZk1lbW9y
eSgpOwogCi0gICAgdW5zaWduZWQgbV9sZW5ndGg7CisgICAgdW5zaWduZWQgbV9sZW5ndGggeyAw
IH07CiAgICAgbXV0YWJsZSBTdHJpbmcgbV9zdHJpbmc7CiAgICAgUmVmUHRyPFN0cmluZ0ltcGw+
IG1fYnVmZmVyOwotICAgIGJvb2wgbV9pczhCaXQ7CisgICAgYm9vbCBtX2lzOEJpdCB7IHRydWUg
fTsKKyAgICBib29sIG1fZmFpbGVkIHsgZmFsc2UgfTsKICAgICB1bmlvbiB7CiAgICAgICAgIExD
aGFyKiBtX2J1ZmZlckNoYXJhY3RlcnM4OwogICAgICAgICBVQ2hhciogbV9idWZmZXJDaGFyYWN0
ZXJzMTY7CkBAIC0zNjUsMjAgKzM2NSw0OCBAQCBBTFdBWVNfSU5MSU5FIFVDaGFyKiBTdHJpbmdC
dWlsZGVyOjpnZXRCdWZmZXJDaGFyYWN0ZXJzPFVDaGFyPigpCiB9ICAgIAogCiB0ZW1wbGF0ZSA8
dHlwZW5hbWUgQ2hhclR5cGU+Ci1ib29sIGVxdWFsKGNvbnN0IFN0cmluZ0J1aWxkZXImIHMsIGNv
bnN0IENoYXJUeXBlKiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkKK2lubGluZSBib29sIGVxdWFs
KGNvbnN0IFN0cmluZ0J1aWxkZXImIHMsIGNvbnN0IENoYXJUeXBlKiBidWZmZXIsIHVuc2lnbmVk
IGxlbmd0aCkKIHsKKyAgICBpZiAocy5mYWlsZWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CiAgICAgaWYgKHMubGVuZ3RoKCkgIT0gbGVuZ3RoKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICBpZiAocy5pczhCaXQoKSkKLSAgICAgICAgcmV0dXJuIGVxdWFsKHMuY2hhcmFjdGVyczgo
KSwgYnVmZmVyLCBsZW5ndGgpOworICAgICAgICByZXR1cm4gZXF1YWwoKnMuY2hhcmFjdGVyczgo
KSwgYnVmZmVyLCBsZW5ndGgpOworCisgICAgcmV0dXJuIGVxdWFsKCpzLmNoYXJhY3RlcnMxNigp
LCBidWZmZXIsIGxlbmd0aCk7Cit9CisKK2lubGluZSBib29sIGVxdWFsKGNvbnN0IFN0cmluZ0J1
aWxkZXImIGEsIGNvbnN0IFN0cmluZ0J1aWxkZXImIGIpCit7CisgICAgaWYgKGEuZmFpbGVkKCkg
fHwgYi5mYWlsZWQoKSkKKyAgICAgICAgcmV0dXJuIGEuZmFpbGVkKCkgPT0gYi5mYWlsZWQoKTsK
KworICAgIGlmIChhLmxlbmd0aCgpICE9IGIubGVuZ3RoKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGlmICghYS5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBy
ZXR1cm4gZXF1YWwocy5jaGFyYWN0ZXJzMTYoKSwgYnVmZmVyLCBsZW5ndGgpOworICAgIGlmIChh
LmlzOEJpdCgpKSB7CisgICAgICAgIGlmIChiLmlzOEJpdCgpKQorICAgICAgICAgICAgcmV0dXJu
IGVxdWFsKCphLmNoYXJhY3RlcnM4KCksICpiLmNoYXJhY3RlcnM4KCksIGEubGVuZ3RoKCkpOwor
ICAgICAgICByZXR1cm4gZXF1YWwoKmEuY2hhcmFjdGVyczgoKSwgKmIuY2hhcmFjdGVyczE2KCks
IGEubGVuZ3RoKCkpOworICAgIH0KKworICAgIGlmIChiLmlzOEJpdCgpKQorICAgICAgICByZXR1
cm4gZXF1YWwoKmEuY2hhcmFjdGVyczE2KCksICpiLmNoYXJhY3RlcnM4KCksIGEubGVuZ3RoKCkp
OworICAgIHJldHVybiBlcXVhbCgqYS5jaGFyYWN0ZXJzMTYoKSwgKmIuY2hhcmFjdGVyczE2KCks
IGEubGVuZ3RoKCkpOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgU3RyaW5nVHlwZT4KLWJvb2wg
ZXF1YWwoY29uc3QgU3RyaW5nQnVpbGRlciYgYSwgY29uc3QgU3RyaW5nVHlwZSYgYikKK2lubGlu
ZSBib29sIGVxdWFsKGNvbnN0IFN0cmluZ0J1aWxkZXImIGEsIGNvbnN0IFN0cmluZ1R5cGUmIGIp
CiB7CisgICAgaWYgKGEuZmFpbGVkKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGlm
IChhLmxlbmd0aCgpICE9IGIubGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAt
Mzg3LDEzICs0MTUsMTMgQEAgYm9vbCBlcXVhbChjb25zdCBTdHJpbmdCdWlsZGVyJiBhLCBjb25z
dCBTdHJpbmdUeXBlJiBiKQogCiAgICAgaWYgKGEuaXM4Qml0KCkpIHsKICAgICAgICAgaWYgKGIu
aXM4Qml0KCkpCi0gICAgICAgICAgICByZXR1cm4gZXF1YWwoYS5jaGFyYWN0ZXJzOCgpLCBiLmNo
YXJhY3RlcnM4KCksIGEubGVuZ3RoKCkpOwotICAgICAgICByZXR1cm4gZXF1YWwoYS5jaGFyYWN0
ZXJzOCgpLCBiLmNoYXJhY3RlcnMxNigpLCBhLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIHJldHVy
biBlcXVhbCgqYS5jaGFyYWN0ZXJzOCgpLCBiLmNoYXJhY3RlcnM4KCksIGEubGVuZ3RoKCkpOwor
ICAgICAgICByZXR1cm4gZXF1YWwoKmEuY2hhcmFjdGVyczgoKSwgYi5jaGFyYWN0ZXJzMTYoKSwg
YS5sZW5ndGgoKSk7CiAgICAgfQogCiAgICAgaWYgKGIuaXM4Qml0KCkpCi0gICAgICAgIHJldHVy
biBlcXVhbChhLmNoYXJhY3RlcnMxNigpLCBiLmNoYXJhY3RlcnM4KCksIGEubGVuZ3RoKCkpOwot
ICAgIHJldHVybiBlcXVhbChhLmNoYXJhY3RlcnMxNigpLCBiLmNoYXJhY3RlcnMxNigpLCBhLmxl
bmd0aCgpKTsKKyAgICAgICAgcmV0dXJuIGVxdWFsKCphLmNoYXJhY3RlcnMxNigpLCBiLmNoYXJh
Y3RlcnM4KCksIGEubGVuZ3RoKCkpOworICAgIHJldHVybiBlcXVhbCgqYS5jaGFyYWN0ZXJzMTYo
KSwgYi5jaGFyYWN0ZXJzMTYoKSwgYS5sZW5ndGgoKSk7CiB9CiAKIGlubGluZSBib29sIG9wZXJh
dG9yPT0oY29uc3QgU3RyaW5nQnVpbGRlciYgYSwgY29uc3QgU3RyaW5nQnVpbGRlciYgYikgeyBy
ZXR1cm4gZXF1YWwoYSwgYik7IH0KQEAgLTQwNCw5ICs0MzIsMTIgQEAgaW5saW5lIGJvb2wgb3Bl
cmF0b3I9PShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0cmluZ0J1aWxkZXImIGIpIHsgcmV0dXJu
IGVxdWFsKGIKIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgU3RyaW5nJiBhLCBjb25zdCBT
dHJpbmdCdWlsZGVyJiBiKSB7IHJldHVybiAhZXF1YWwoYiwgYSk7IH0KIAogdGVtcGxhdGU8PiBz
dHJ1Y3QgSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvblRyYWl0PFN0cmluZ0J1aWxkZXI+IHsKLSAg
ICB1c2luZyBSZXR1cm5UeXBlID0gdm9pZDsKKyAgICB1c2luZyBSZXR1cm5UeXBlID0gU3RyaW5n
QnVpbGRlcjo6RmFsbGlibGU8PjsKICAgICB1c2luZyBBZGRpdGlvbmFsQXJndW1lbnRUeXBlID0g
U3RyaW5nQnVpbGRlcjsKLSAgICBzdGF0aWMgdm9pZCBmbHVzaChMQ2hhciogY2hhcmFjdGVycywg
dW5zaWduZWQgbGVuZ3RoLCBTdHJpbmdCdWlsZGVyKiBzdHJpbmdCdWlsZGVyKSB7IHN0cmluZ0J1
aWxkZXItPmFwcGVuZChjaGFyYWN0ZXJzLCBsZW5ndGgpOyB9CisgICAgc3RhdGljIFJldHVyblR5
cGUgZmx1c2goTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgU3RyaW5nQnVpbGRl
ciogc3RyaW5nQnVpbGRlcikKKyAgICB7CisgICAgICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLT5h
cHBlbmQoY2hhcmFjdGVycywgbGVuZ3RoKTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
VEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlckpTT04uY3Bw
IGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVySlNPTi5jcHAKaW5kZXggNGMyNzY2
Yy4uNzBkYmI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVy
SlNPTi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVySlNPTi5jcHAK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEzLCAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMiBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDE3IFl1
c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTcgTW96aWxsYSBGb3VuZGF0aW9uLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgpAQCAtNzQsMTMgKzc0LDcgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgdm9pZCBhcHBl
bmRRdW90ZWRKU09OU3RyaW5nSW50ZXJuYWwoT3V0cHV0Q2hhcmFjdGVyVHlwZSomIG8KICAgICB9
CiB9CiAKLXZvaWQgU3RyaW5nQnVpbGRlcjo6YXBwZW5kUXVvdGVkSlNPTlN0cmluZyhjb25zdCBT
dHJpbmcmIHN0cmluZykKLXsKLSAgICBpZiAoIXRyeUFwcGVuZFF1b3RlZEpTT05TdHJpbmcoc3Ry
aW5nKSkKLSAgICAgICAgQ1JBU0goKTsKLX0KLQotYm9vbCBTdHJpbmdCdWlsZGVyOjp0cnlBcHBl
bmRRdW90ZWRKU09OU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorU3RyaW5nQnVpbGRlcjo6
RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmRRdW90ZWRKU09OU3RyaW5nKGNvbnN0IFN0
cmluZyYgc3RyaW5nKQogewogICAgIC8vIE1ha2Ugc3VyZSB3ZSBoYXZlIGVub3VnaCBidWZmZXIg
c3BhY2UgdG8gYXBwZW5kIHRoaXMgc3RyaW5nIHdpdGhvdXQgaGF2aW5nCiAgICAgLy8gdG8gd29y
cnkgYWJvdXQgcmVhbGxvY2F0aW5nIGluIHRoZSBtaWRkbGUuCkBAIC05MSwyMCArODUsMjEgQEAg
Ym9vbCBTdHJpbmdCdWlsZGVyOjp0cnlBcHBlbmRRdW90ZWRKU09OU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKQogICAgIG1heGltdW1DYXBhY2l0eVJlcXVpcmVkICs9IDIgKyBzdHJpbmdMZW5n
dGggKiA2OwogICAgIHVuc2lnbmVkIGFsbG9jYXRpb25TaXplOwogICAgIGlmIChDaGVja2VkU3Rh
dGU6OkRpZE92ZXJmbG93ID09IG1heGltdW1DYXBhY2l0eVJlcXVpcmVkLnNhZmVHZXQoYWxsb2Nh
dGlvblNpemUpKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB3b3VsZE92
ZXJmbG93KCk7CiAgICAgLy8gVGhpcyBtYXgoKSBpcyBoZXJlIHRvIGFsbG93IHVzIHRvIGFsbG9j
YXRlIHNpemVzIGJldHdlZW4gdGhlIHJhbmdlIFsyXjMxLCAyXjMyIC0gMl0gYmVjYXVzZSByb3Vu
ZFVwVG9Qb3dlck9mVHdvKDE8PDMxICsgc29tZSBpbnQgc21hbGxlciB0aGFuIDE8PDMxKSA9PSAw
LgogICAgIC8vIEZJWE1FOiByb3VuZFVwVG9Qb3dlck9mVHdvIHNob3VsZCB0YWtlIENoZWNrZWQ8
dW5zaWduZWQ+IGFuZCBhYm9ydCBpZiBpdCBmYWlscyB0byByb3VuZCB1cC4KICAgICAvLyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDg2CiAgICAgYWxsb2NhdGlv
blNpemUgPSBzdGQ6Om1heChhbGxvY2F0aW9uU2l6ZSwgcm91bmRVcFRvUG93ZXJPZlR3byhhbGxv
Y2F0aW9uU2l6ZSkpOwogCi0gICAgLy8gQWxsb2NhdGluZyB0aGlzIG11Y2ggd2lsbCBkZWZpbml0
ZWx5IGZhaWwuCi0gICAgaWYgKGFsbG9jYXRpb25TaXplID49IDB4ODAwMDAwMDApCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgIGlmIChpczhCaXQoKSAmJiAhc3RyaW5nLmlzOEJpdCgpKQot
ICAgICAgICBhbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChtX2J1ZmZlckNoYXJhY3RlcnM4LCBhbGxv
Y2F0aW9uU2l6ZSk7Ci0gICAgZWxzZQotICAgICAgICByZXNlcnZlQ2FwYWNpdHkoYWxsb2NhdGlv
blNpemUpOworICAgIGlmIChpczhCaXQoKSAmJiAhc3RyaW5nLmlzOEJpdCgpKSB7CisgICAgICAg
IGF1dG8gYWxsb2NhdGVkID0gYWxsb2NhdGVCdWZmZXJVcENvbnZlcnQobV9idWZmZXJDaGFyYWN0
ZXJzOCwgYWxsb2NhdGlvblNpemUpOworICAgICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAg
ICAgIHJldHVybiBhbGxvY2F0ZWQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byByZXNlcnZl
ZCA9IHJlc2VydmVDYXBhY2l0eShhbGxvY2F0aW9uU2l6ZSk7CisgICAgICAgIGlmICghcmVzZXJ2
ZWQpCisgICAgICAgICAgICByZXR1cm4gcmVzZXJ2ZWQ7CisgICAgfQogICAgIEFTU0VSVChtX2J1
ZmZlci0+bGVuZ3RoKCkgPj0gYWxsb2NhdGlvblNpemUpOwogCiAgICAgaWYgKGlzOEJpdCgpKSB7
CkBAIC0xMjUsNyArMTIwLDcgQEAgYm9vbCBTdHJpbmdCdWlsZGVyOjp0cnlBcHBlbmRRdW90ZWRK
U09OU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgICAgICBtX2xlbmd0aCA9IG91dHB1
dCAtIG1fYnVmZmVyQ2hhcmFjdGVyczE2OwogICAgIH0KICAgICBBU1NFUlQobV9idWZmZXItPmxl
bmd0aCgpID49IG1fbGVuZ3RoKTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4geyB9Owog
fQogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nSW1wbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCmluZGV4
IDc3NDg3NmIuLmVlZDA5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5n
SW1wbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcApAQCAtMjA2
LDIyICsyMDYsMjQgQEAgUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OmNyZWF0ZVVuaW5pdGlh
bGl6ZWQodW5zaWduZWQgbGVuZ3RoLCBVQ2hhciomIGRhdGEpCiAgICAgcmV0dXJuIGNyZWF0ZVVu
aW5pdGlhbGl6ZWRJbnRlcm5hbChsZW5ndGgsIGRhdGEpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFt
ZSBDaGFyYWN0ZXJUeXBlPiBpbmxpbmUgUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OnJlYWxs
b2NhdGVJbnRlcm5hbChSZWY8U3RyaW5nSW1wbD4mJiBvcmlnaW5hbFN0cmluZywgdW5zaWduZWQg
bGVuZ3RoLCBDaGFyYWN0ZXJUeXBlKiYgZGF0YSkKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3Rl
clR5cGU+IGlubGluZSBSZWZQdHI8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6cmVhbGxvY2F0ZUlu
dGVybmFsKFJlZjxTdHJpbmdJbXBsPiYmIG9yaWdpbmFsU3RyaW5nLCB1bnNpZ25lZCBsZW5ndGgs
IENoYXJhY3RlclR5cGUqJiBkYXRhKQogewogICAgIEFTU0VSVChvcmlnaW5hbFN0cmluZy0+aGFz
T25lUmVmKCkpOwogICAgIEFTU0VSVChvcmlnaW5hbFN0cmluZy0+YnVmZmVyT3duZXJzaGlwKCkg
PT0gQnVmZmVySW50ZXJuYWwpOwogCiAgICAgaWYgKCFsZW5ndGgpIHsKICAgICAgICAgZGF0YSA9
IDA7Ci0gICAgICAgIHJldHVybiAqZW1wdHkoKTsKKyAgICAgICAgcmV0dXJuIGVtcHR5KCk7CiAg
ICAgfQogCiAgICAgLy8gU2FtZSBhcyBjcmVhdGVVbmluaXRpYWxpemVkKCkgZXhjZXB0IGhlcmUg
d2UgdXNlIHN0cmluZ1JlYWxsb2MuCi0gICAgaWYgKGxlbmd0aCA+ICgoc3RkOjpudW1lcmljX2xp
bWl0czx1bnNpZ25lZD46Om1heCgpIC0gc2l6ZW9mKFN0cmluZ0ltcGwpKSAvIHNpemVvZihDaGFy
YWN0ZXJUeXBlKSkpCi0gICAgICAgIENSQVNIKCk7CisgICAgaWYgKFVOTElLRUxZKGxlbmd0aCA+
ICgoc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpIC0gc2l6ZW9mKFN0cmluZ0lt
cGwpKSAvIHNpemVvZihDaGFyYWN0ZXJUeXBlKSkpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAogICAgIG9yaWdpbmFsU3RyaW5nLT5+U3RyaW5nSW1wbCgpOwogICAgIGF1dG8qIHN0cmluZyA9
IHN0YXRpY19jYXN0PFN0cmluZ0ltcGwqPihzdHJpbmdSZWFsbG9jKCZvcmlnaW5hbFN0cmluZy5s
ZWFrUmVmKCksIGFsbG9jYXRpb25TaXplPENoYXJhY3RlclR5cGU+KGxlbmd0aCkpKTsKKyAgICBp
ZiAoVU5MSUtFTFkoIXN0cmluZykpCisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgZGF0
YSA9IHN0cmluZy0+dGFpbFBvaW50ZXI8Q2hhcmFjdGVyVHlwZT4oKTsKICAgICByZXR1cm4gY29u
c3RydWN0SW50ZXJuYWw8Q2hhcmFjdGVyVHlwZT4oKnN0cmluZywgbGVuZ3RoKTsKQEAgLTIzMCwx
MyArMjMyLDMzIEBAIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IGlubGluZSBSZWY8
U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6cmVhbGxvY2F0ZUluCiBSZWY8U3RyaW5nSW1wbD4gU3Ry
aW5nSW1wbDo6cmVhbGxvY2F0ZShSZWY8U3RyaW5nSW1wbD4mJiBvcmlnaW5hbFN0cmluZywgdW5z
aWduZWQgbGVuZ3RoLCBMQ2hhciomIGRhdGEpCiB7CiAgICAgQVNTRVJUKG9yaWdpbmFsU3RyaW5n
LT5pczhCaXQoKSk7Ci0gICAgcmV0dXJuIHJlYWxsb2NhdGVJbnRlcm5hbChXVEZNb3ZlKG9yaWdp
bmFsU3RyaW5nKSwgbGVuZ3RoLCBkYXRhKTsKKyAgICBpZiAoYXV0byByZWFsbG9jYXRlZCA9IHJl
YWxsb2NhdGVJbnRlcm5hbChXVEZNb3ZlKG9yaWdpbmFsU3RyaW5nKSwgbGVuZ3RoLCBkYXRhKSkK
KyAgICAgICAgcmV0dXJuICpyZWFsbG9jYXRlZDsKKyAgICBDUkFTSCgpOwogfQogCiBSZWY8U3Ry
aW5nSW1wbD4gU3RyaW5nSW1wbDo6cmVhbGxvY2F0ZShSZWY8U3RyaW5nSW1wbD4mJiBvcmlnaW5h
bFN0cmluZywgdW5zaWduZWQgbGVuZ3RoLCBVQ2hhciomIGRhdGEpCiB7CiAgICAgQVNTRVJUKCFv
cmlnaW5hbFN0cmluZy0+aXM4Qml0KCkpOwotICAgIHJldHVybiByZWFsbG9jYXRlSW50ZXJuYWwo
V1RGTW92ZShvcmlnaW5hbFN0cmluZyksIGxlbmd0aCwgZGF0YSk7CisgICAgaWYgKGF1dG8gcmVh
bGxvY2F0ZWQgPSByZWFsbG9jYXRlSW50ZXJuYWwoV1RGTW92ZShvcmlnaW5hbFN0cmluZyksIGxl
bmd0aCwgZGF0YSkpCisgICAgICAgIHJldHVybiAqcmVhbGxvY2F0ZWQ7CisgICAgQ1JBU0goKTsK
K30KKworUmVmUHRyPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OnRyeVJlYWxsb2NhdGUoUmVmPFN0
cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2lnbmVkIGxlbmd0aCwgTENoYXIqJiBkYXRh
KQoreworICAgIEFTU0VSVChvcmlnaW5hbFN0cmluZy0+aXM4Qml0KCkpOworICAgIGlmIChhdXRv
IHJlYWxsb2NhdGVkID0gcmVhbGxvY2F0ZUludGVybmFsKFdURk1vdmUob3JpZ2luYWxTdHJpbmcp
LCBsZW5ndGgsIGRhdGEpKQorICAgICAgICByZXR1cm4gcmVhbGxvY2F0ZWQuZ2V0KCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjp0cnlS
ZWFsbG9jYXRlKFJlZjxTdHJpbmdJbXBsPiYmIG9yaWdpbmFsU3RyaW5nLCB1bnNpZ25lZCBsZW5n
dGgsIFVDaGFyKiYgZGF0YSkKK3sKKyAgICBBU1NFUlQoIW9yaWdpbmFsU3RyaW5nLT5pczhCaXQo
KSk7CisgICAgaWYgKGF1dG8gcmVhbGxvY2F0ZWQgPSByZWFsbG9jYXRlSW50ZXJuYWwoV1RGTW92
ZShvcmlnaW5hbFN0cmluZyksIGxlbmd0aCwgZGF0YSkpCisgICAgICAgIHJldHVybiByZWFsbG9j
YXRlZC5nZXQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUg
Q2hhcmFjdGVyVHlwZT4gaW5saW5lIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdGVJ
bnRlcm5hbChjb25zdCBDaGFyYWN0ZXJUeXBlKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaCBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCmluZGV4IDYxNmRhMjUuLjhkZjllMzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvU3RyaW5nSW1wbC5oCkBAIC0yMjksNiArMjI5LDcgQEAgcHVibGljOgogICAgIFdURl9F
WFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0ZShjb25zdCBMQ2hhciop
OwogICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGUoY29uc3Qg
Y2hhciogc3RyaW5nKSB7IHJldHVybiBjcmVhdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hh
cio+KHN0cmluZykpOyB9CiAKKyAgICBzdGF0aWMgUmVmUHRyPFN0cmluZ0ltcGw+IHRyeUNyZWF0
ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKFN0cmluZ0ltcGwmLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2ln
bmVkIGxlbmd0aCk7CiAgICAgc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGVTdWJzdHJpbmdT
aGFyaW5nSW1wbChTdHJpbmdJbXBsJiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgp
OwogCiAgICAgdGVtcGxhdGU8dW5zaWduZWQgY2hhcmFjdGVyQ291bnQ+IHN0YXRpYyBSZWY8U3Ry
aW5nSW1wbD4gY3JlYXRlRnJvbUxpdGVyYWwoY29uc3QgY2hhciAoJilbY2hhcmFjdGVyQ291bnRd
KTsKQEAgLTI0OCw2ICsyNDksOCBAQCBwdWJsaWM6CiAgICAgLy8gdGhlIG9yaWdpbmFsU3RyaW5n
IGNhbid0IGJlIHVzZWQgYWZ0ZXIgdGhpcyBmdW5jdGlvbi4KICAgICBzdGF0aWMgUmVmPFN0cmlu
Z0ltcGw+IHJlYWxsb2NhdGUoUmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2ln
bmVkIGxlbmd0aCwgTENoYXIqJiBkYXRhKTsKICAgICBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IHJl
YWxsb2NhdGUoUmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2lnbmVkIGxlbmd0
aCwgVUNoYXIqJiBkYXRhKTsKKyAgICBzdGF0aWMgUmVmUHRyPFN0cmluZ0ltcGw+IHRyeVJlYWxs
b2NhdGUoUmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2lnbmVkIGxlbmd0aCwg
TENoYXIqJiBkYXRhKTsKKyAgICBzdGF0aWMgUmVmUHRyPFN0cmluZ0ltcGw+IHRyeVJlYWxsb2Nh
dGUoUmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2lnbmVkIGxlbmd0aCwgVUNo
YXIqJiBkYXRhKTsKIAogICAgIHN0YXRpYyB1bnNpZ25lZCBmbGFnc09mZnNldCgpIHsgcmV0dXJu
IE9CSkVDVF9PRkZTRVRPRihTdHJpbmdJbXBsLCBtX2hhc2hBbmRGbGFncyk7IH0KICAgICBzdGF0
aWMgdW5zaWduZWQgZmxhZ0lzOEJpdCgpIHsgcmV0dXJuIHNfaGFzaEZsYWc4Qml0QnVmZmVyOyB9
CkBAIC01MDMsNyArNTA2LDcgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFy
YWN0ZXJUeXBlPiBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNvbnN0cnVjdEludGVybmFsKFN0cmlu
Z0ltcGwmLCB1bnNpZ25lZCk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4g
c3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGVVbmluaXRpYWxpemVkSW50ZXJuYWwodW5zaWdu
ZWQsIENoYXJhY3RlclR5cGUqJik7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlw
ZT4gc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGVVbmluaXRpYWxpemVkSW50ZXJuYWxOb25F
bXB0eSh1bnNpZ25lZCwgQ2hhcmFjdGVyVHlwZSomKTsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBD
aGFyYWN0ZXJUeXBlPiBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IHJlYWxsb2NhdGVJbnRlcm5hbChS
ZWY8U3RyaW5nSW1wbD4mJiwgdW5zaWduZWQsIENoYXJhY3RlclR5cGUqJik7CisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gc3RhdGljIFJlZlB0cjxTdHJpbmdJbXBsPiByZWFs
bG9jYXRlSW50ZXJuYWwoUmVmPFN0cmluZ0ltcGw+JiYsIHVuc2lnbmVkLCBDaGFyYWN0ZXJUeXBl
KiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHN0YXRpYyBSZWY8U3Ry
aW5nSW1wbD4gY3JlYXRlSW50ZXJuYWwoY29uc3QgQ2hhcmFjdGVyVHlwZSosIHVuc2lnbmVkKTsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgTkVWRVJfSU5MSU5FIHVuc2lnbmVkIGhhc2hTbG93Q2Fz
ZSgpIGNvbnN0OwogCkBAIC05MTQsMjIgKzkxNywzMSBAQCB0ZW1wbGF0ZTxzaXplX3QgaW5saW5l
Q2FwYWNpdHk+IGlubGluZSBSZWY8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6Y3JlYXRlOEJpdElm
UAogICAgIHJldHVybiBjcmVhdGU4Qml0SWZQb3NzaWJsZSh2ZWN0b3IuZGF0YSgpLCB2ZWN0b3Iu
c2l6ZSgpKTsKIH0KIAotQUxXQVlTX0lOTElORSBSZWY8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6
Y3JlYXRlU3Vic3RyaW5nU2hhcmluZ0ltcGwoU3RyaW5nSW1wbCYgcmVwLCB1bnNpZ25lZCBvZmZz
ZXQsIHVuc2lnbmVkIGxlbmd0aCkKK0FMV0FZU19JTkxJTkUgUmVmUHRyPFN0cmluZ0ltcGw+IFN0
cmluZ0ltcGw6OnRyeUNyZWF0ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKFN0cmluZ0ltcGwmIHJlcCwg
dW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgQVNTRVJUKGxlbmd0aCA8
PSByZXAubGVuZ3RoKCkpOwogCiAgICAgaWYgKCFsZW5ndGgpCi0gICAgICAgIHJldHVybiAqZW1w
dHkoKTsKKyAgICAgICAgcmV0dXJuIGVtcHR5KCk7CiAKICAgICBhdXRvKiBvd25lclJlcCA9ICgo
cmVwLmJ1ZmZlck93bmVyc2hpcCgpID09IEJ1ZmZlclN1YnN0cmluZykgPyByZXAuc3Vic3RyaW5n
QnVmZmVyKCkgOiAmcmVwKTsKIAogICAgIC8vIFdlIGFsbG9jYXRlIGEgYnVmZmVyIHRoYXQgY29u
dGFpbnMgYm90aCB0aGUgU3RyaW5nSW1wbCBzdHJ1Y3QgYXMgd2VsbCBhcyB0aGUgcG9pbnRlciB0
byB0aGUgb3duZXIgc3RyaW5nLgogICAgIGF1dG8qIHN0cmluZ0ltcGwgPSBzdGF0aWNfY2FzdDxT
dHJpbmdJbXBsKj4oc3RyaW5nTWFsbG9jKGFsbG9jYXRpb25TaXplPFN0cmluZ0ltcGwqPigxKSkp
OworICAgIGlmICghc3RyaW5nSW1wbCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYg
KHJlcC5pczhCaXQoKSkKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgKE5vdE51bGwsIHN0
cmluZ0ltcGwpIFN0cmluZ0ltcGwocmVwLm1fZGF0YTggKyBvZmZzZXQsIGxlbmd0aCwgKm93bmVy
UmVwKSk7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgKE5vdE51bGwsIHN0cmluZ0ltcGwpIFN0
cmluZ0ltcGwocmVwLm1fZGF0YTE2ICsgb2Zmc2V0LCBsZW5ndGgsICpvd25lclJlcCkpOwogfQog
CitBTFdBWVNfSU5MSU5FIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdGVTdWJzdHJp
bmdTaGFyaW5nSW1wbChTdHJpbmdJbXBsJiByZXAsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQg
bGVuZ3RoKQoreworICAgIGlmIChhdXRvIGNyZWF0ZWQgPSB0cnlDcmVhdGVTdWJzdHJpbmdTaGFy
aW5nSW1wbChyZXAsIG9mZnNldCwgbGVuZ3RoKSkKKyAgICAgICAgcmV0dXJuICpjcmVhdGVkOwor
ICAgIENSQVNIKCk7Cit9CisKIHRlbXBsYXRlPHVuc2lnbmVkIGNoYXJhY3RlckNvdW50PiBBTFdB
WVNfSU5MSU5FIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJhbChj
b25zdCBjaGFyICgmY2hhcmFjdGVycylbY2hhcmFjdGVyQ291bnRdKQogewogICAgIENPTVBJTEVf
QVNTRVJUKGNoYXJhY3RlckNvdW50ID4gMSwgU3RyaW5nSW1wbEZyb21MaXRlcmFsTm90RW1wdHkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0U3RyZWFtLmNwcCBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvVGV4dFN0cmVhbS5jcHAKaW5kZXggYWFmNjE5NC4uZDNiNTMxOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0U3RyZWFtLmNwcAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1RleHRTdHJlYW0uY3BwCkBAIC0xMzIsOSArMTMyLDExIEBAIFRleHRTdHJl
YW0mIFRleHRTdHJlYW06Om9wZXJhdG9yPDwoY29uc3QgRm9ybWF0TnVtYmVyUmVzcGVjdGluZ0lu
dGVnZXJzJiBudW1iZXJUCiAKIFN0cmluZyBUZXh0U3RyZWFtOjpyZWxlYXNlKCkKIHsKLSAgICBT
dHJpbmcgcmVzdWx0ID0gbV90ZXh0LnRvU3RyaW5nKCk7Ci0gICAgbV90ZXh0LmNsZWFyKCk7Ci0g
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICBpZiAoYXV0byByZXN1bHQgPSBtX3RleHQudG9TdHJpbmco
KSkgeworICAgICAgICBtX3RleHQuY2xlYXIoKTsKKyAgICAgICAgcmV0dXJuICpyZXN1bHQ7Cisg
ICAgfQorICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgVGV4dFN0cmVhbTo6c3RhcnRHcm91cCgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggMmE1YWI3My4uMWI3MzI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxMyBA
QAorMjAxOC0wNC0yNiAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgU3RyaW5nQnVpbGRlciBpcyBmYWxsaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3RyaW5nQnVpbGRlciBjYW4gZmFpbCB3aGVuIGFsbG9jYXRp
bmcgbWVtb3J5LiBTdHJpbmdCdWlsZGVyIGlzCisgICAgICAgIG1vc3RseSB1c2VkIHdpdGggdXNl
ciBpbnB1dCwgd2hpY2ggb2Z0ZW4gbWVhbnMgdGhhdCBqdXN0IGNyYXNoaW5nCisgICAgICAgIGlz
bid0IHRoZSByaWdodCBvdXRjb21lLiBPdXIgZnV6emVycyBvZnRlbiBlbmNvdW50ZXIgc3VjaCB0
aGluZ3MKKyAgICAgICAgZm9yIEphdmFTY3JpcHRDb3JlLCBhbmQgc28gZmFyIHdlJ3ZlIGFwcGxp
ZWQgcG9pbnQgc29sdXRpb25zLiBObworICAgICAgICBtb3JlIQorCisKKyAgICAgICAgKiBNb2R1
bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRDb250YWN0Q29jb2EubW06CisgICAgICAgIChXZWJD
b3JlOjpjb252ZXJ0KToKKyAgICAgICAgKiBNb2R1bGVzL2VudHJpZXNhcGkvRE9NRmlsZVN5c3Rl
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXNvbHZlUmVsYXRpdmVWaXJ0dWFsUGF0aCk6Cisg
ICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpsb2dFcnJvcik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0
YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlEYXRhOjpsb2dnaW5nU3RyaW5nIGNvbnN0
KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlQYXRoLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmxvZ2dpbmdTdHJpbmcpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JbmRleFZhbHVlU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJ
bmRleFZhbHVlU3RvcmU6OmxvZ2dpbmdTdHJpbmcgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJDdXJzb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SURCU2VydmVyOjpidWlsZEluZGV4U3RhdGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNl
cnZlcjo6YnVpbGRPYmplY3RTdG9yZVN0YXRlbWVudCk6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJE
YXRhYmFzZUluZm86OmxvZ2dpbmdTdHJpbmcgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SURCT2JqZWN0U3RvcmVJbmZvOjpsb2dnaW5nU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Om1lZGlhUHJvZHVjZXJTdGF0ZVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyOjp0b1N0cmluZyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmlsdGVy
SUNFQ2FuZGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25uZWN0aW9uQmFja2VuZDo6
ZmlsdGVyU0RQIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdp
blJlcGxhY2VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OllvdVR1YmVQbHVnaW5SZXBsYWNl
bWVudDo6eW91VHViZVVSTEZyb21BYnNvbHV0ZVVSTCk6CisgICAgICAgICogTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2VuZXJhdGVE
YXRhYmFzZUZpbGVOYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmVuY29kZVByb3RvY29sU3RyaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OmpvaW5TdHJpbmdzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2Nr
ZXRFeHRlbnNpb25EaXNwYXRjaGVyOjpjcmVhdGVIZWFkZXJWYWx1ZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyOjphY2NlcHRlZEV4dGVuc2lv
bnMgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hh
a2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVzb3VyY2VOYW1lKToKKyAgICAgICAgKFdlYkNv
cmU6Omhvc3ROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEhhbmRzaGFrZTo6Y2xp
ZW50TG9jYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNoYWtl
OjpjbGllbnRIYW5kc2hha2VNZXNzYWdlIGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZEFk
ZFNwYWNlQmVmb3JlQXBwZW5kaW5nTmV4dEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRleHRVbmRlckVsZW1lbnQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmFjY2Vzc2liaWxpdHlEZXNjcmlwdGlv
bkZvckNoaWxkcmVuIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0OjphY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25Gb3JFbGVtZW50cyBjb25zdCk6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN0cmluZ0ZvclJhbmdlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN0cmluZ0ZvclZpc2libGVQb3NpdGlv
blJhbmdlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYy5tbToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXIgdmFsdWVEZXNjcmlwdGlvbkZvck1ldGVyXSk6CisgICAgICAgIChmb3JtYXRGb3JEZWJ1Z2dl
cik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01Db252ZXJ0U3RyaW5ncy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpzdHJpbmdUb1VTVlN0cmluZyk6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNET01FeGNlcHRpb25IYW5kbGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0aHJvd0FyZ3Vt
ZW50TXVzdEJlRW51bUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OnRocm93QXJndW1lbnRNdXN0
QmVGdW5jdGlvbkVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OnRocm93QXJndW1lbnRUeXBlRXJy
b3IpOgorICAgICAgICAoV2ViQ29yZTo6dGhyb3dSZXF1aXJlZE1lbWJlclR5cGVFcnJvcik6Cisg
ICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29tYmluZWRVUkxGaWx0ZXJzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpwcmVmaXhUcmVlVmVydGV4VG9TdHJpbmcp
OgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb246OmNvbXBp
bGVHbG9iYWxEaXNwbGF5Tm9uZVN0eWxlU2hlZXQpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50RXh0ZW5zaW9uczo6cmVzb2x2ZVBlbmRpbmdEaXNwbGF5Tm9uZUFjdGlvbnMpOgorICAgICAg
ICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25TdHlsZVNoZWV0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uU3R5bGVT
aGVldDo6YWRkRGlzcGxheU5vbmVTZWxlY3Rvcik6CisgICAgICAgICogY29udGVudGV4dGVuc2lv
bnMvVGVybS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlRlcm06OnRv
U3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZh
bHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1
ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0Jhc2ljU2hhcGVzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkQ2lyY2xlU3RyaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OmJ1aWxkRWxsaXBzZVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpidWlsZFBhdGhTdHJp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRQb2x5Z29uU3RyaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OmJ1aWxkSW5zZXRTdHJpbmcpOgorICAgICAgICAqIGNzcy9DU1NDYWxjdWxhdGlvblZh
bHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkQ3NzVGV4dCk6CisgICAgICAgICogY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9D
U1NDcm9zc2ZhZGVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDcm9zc2ZhZGVWYWx1
ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0N1cnNvckltYWdlVmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Vyc29ySW1hZ2VWYWx1ZTo6Y3VzdG9tQ1NT
VGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0N1c3RvbUlkZW50VmFsdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTQ3VzdG9tSWRlbnRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6
CisgICAgICAgICogY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTRmlsdGVySW1hZ2VWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICog
Y3NzL0NTU0ZvbnRGYWNlUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZVJ1
bGU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU3JjVmFsdWU6OmN1c3RvbUNTU1RleHQg
Y29uc3QpOgorICAgICAgICAqIGNzcy9DU1NGb250RmVhdHVyZVZhbHVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU0ZvbnRGZWF0dXJlVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAg
ICAgICAqIGNzcy9DU1NGb250U3R5bGVSYW5nZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU0ZvbnRTdHlsZVJhbmdlVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAq
IGNzcy9DU1NGb250U3R5bGVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250U3R5
bGVWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0ZvbnRWYWx1
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250VmFsdWU6OmN1c3RvbUNTU1RleHQgY29u
c3QpOgorICAgICAgICAqIGNzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTRm9udFZhcmlhdGlvblZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAg
ICAgICAgKiBjc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NG
dW5jdGlvblZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTR3Jh
ZGllbnRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NMaW5lYXJHcmFkaWVudFZhbHVl
OjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1JhZGlhbEdyYWRp
ZW50VmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29u
aWNHcmFkaWVudFZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NT
R3JpZEF1dG9SZXBlYXRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NHcmlkQXV0b1Jl
cGVhdFZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTR3JpZFRl
bXBsYXRlQXJlYXNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NHcmlkVGVtcGxhdGVB
cmVhc1ZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VT
ZXRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVNldFZhbHVlOjpjdXN0b21D
U1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTSW1wb3J0UnVsZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NJbXBvcnRSdWxlOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3Mv
Q1NTS2V5ZnJhbWVSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUtleWZyYW1l
OjprZXlUZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUtleWZyYW1lOjpj
c3NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTS2V5ZnJhbWVzUnVsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NLZXlmcmFtZXNSdWxlOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAg
KiBjc3MvQ1NTTGluZUJveENvbnRhaW5WYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NM
aW5lQm94Q29udGFpblZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3Mv
Q1NTTWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNlcmlhbGl6ZVN0cmluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpzZXJpYWxpemVBc1N0cmluZ09yQ3VzdG9tSWRlbnQpOgorICAgICAgICAq
IGNzcy9DU1NNZWRpYVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTWVkaWFSdWxlOjpj
c3NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTTmFtZXNwYWNlUnVsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NOYW1lc3BhY2VSdWxlOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAg
KiBjc3MvQ1NTUGFnZVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFnZVJ1bGU6OnNl
bGVjdG9yVGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYWdlUnVsZTo6Y3NzVGV4
dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpmb3JtYXROdW1iZXJGb3JDdXN0b21DU1NUZXh0
IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5U291cmNlRGF0YTo6dG9TdHJpbmcgY29uc3QpOgorICAg
ICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rv
cjo6c2VsZWN0b3JUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3JMaXN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yTGlzdDo6c2VsZWN0b3JzVGV4dCBjb25z
dCk6CisgICAgICAgICogY3NzL0NTU1NoYWRvd1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1NoYWRvd1ZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NT
U3R5bGVSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlUnVsZTo6Y3NzVGV4dCBj
b25zdCk6CisgICAgICAgICogY3NzL0NTU1N0eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTU3R5bGVTaGVldDo6YWRkUnVsZSk6CisgICAgICAgICogY3NzL0NTU1N1cHBvcnRzUnVs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdXBwb3J0c1J1bGU6OmNzc1RleHQgY29uc3Qp
OgorICAgICAgICAqIGNzcy9DU1NUaW1pbmdGdW5jdGlvblZhbHVlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU0N1YmljQmV6aWVyVGltaW5nRnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdGVwc1RpbWluZ0Z1bmN0aW9uVmFsdWU6OmN1
c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRnJhbWVzVGltaW5nRnVu
Y3Rpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NT
cHJpbmdUaW1pbmdGdW5jdGlvblZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAg
KiBjc3MvQ1NTVmFsdWVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlTGlzdDo6
Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU1ZhcmlhYmxlRGF0YS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NWYXJpYWJsZURhdGE6OmNvbnN1bWVBbmRVcGRhdGVUb2tl
bnMpOgorICAgICAgICAqIGNzcy9ET01DU1NOYW1lc3BhY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NQ1NTTmFtZXNwYWNlOjplc2NhcGUpOgorICAgICAgICAqIGNzcy9ET01NYXRyaXhSZWFk
T25seS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01NYXRyaXhSZWFkT25seTo6dG9TdHJpbmcg
Y29uc3QpOgorICAgICAgICAqIGNzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFsdWVMaXN0Ojpjc3NUZXh0IGNvbnN0KToK
KyAgICAgICAgKiBjc3MvRm9udEZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZhY2U6
OnN0eWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGYWNlOjp3ZWlnaHQgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZhY2U6OnN0cmV0Y2ggY29uc3QpOgorICAgICAgICAq
IGNzcy9NZWRpYUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeVNldDo6bWVk
aWFUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVF1ZXJ5OjpzZXJpYWxpemUgY29uc3QpOgorICAgICAgICAqIGNzcy9NZWRp
YVF1ZXJ5RXhwcmVzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5RXhwcmVz
c2lvbjo6c2VyaWFsaXplIGNvbnN0KToKKyAgICAgICAgKiBjc3MvUmVjdC5oOgorICAgICAgICAq
IGNzcy9TdHlsZVByb3BlcnRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0
aWVzOjpmb250VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVz
OjpnZXQ0VmFsdWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6
Z2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
UHJvcGVydGllczo6Z2V0U2hvcnRoYW5kVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGVQcm9wZXJ0aWVzOjpib3JkZXJQcm9wZXJ0eVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlUHJvcGVydGllczo6YXNUZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlUHJvcGVydGllczo6UHJvcGVydHlSZWZlcmVuY2U6OmNzc1RleHQgY29uc3QpOgorICAg
ICAgICAqIGNzcy9XZWJLaXRDU1NNYXRyaXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0
Q1NTTWF0cml4Ojp0b1N0cmluZyBjb25zdCk6CisgICAgICAgICogY3NzL1dlYktpdENTU1ZpZXdw
b3J0UnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NWaWV3cG9ydFJ1bGU6OmNz
c1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VGb250RmFjZURlc2NyaXB0b3IpOgorICAgICAg
ICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyVG9rZW46OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQ
YXJzZXJUb2tlblJhbmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlclRva2VuUmFu
Z2U6OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBh
cnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb25jYXRlbmF0ZUZhbWlseU5hbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6cGFyc2VHcmlkVGVtcGxhdGVBcmVhc0NvbHVtbk5hbWVzKToKKyAgICAg
ICAgKiBjc3MvcGFyc2VyL0NTU1Rva2VuaXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NU
b2tlbml6ZXI6OmNvbnN1bWVTdHJpbmdUb2tlblVudGlsKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1Rva2VuaXplcjo6Y29uc3VtZVVybFRva2VuKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Rva2Vu
aXplcjo6Y29uc3VtZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9rZW5pemVyOjpjb25z
dW1lRXNjYXBlKToKKyAgICAgICAgKiBkb20vRGF0YXNldERPTVN0cmluZ01hcC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpjb252ZXJ0QXR0cmlidXRlTmFtZVRvUHJvcGVydHlOYW1lKToKKyAgICAg
ICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpmb3JtYXRG
b3JEZWJ1Z2dlciBjb25zdCk6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Tm9kZTo6dGV4dENvbnRlbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6
c2hvd05vZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6dHJhdmVyc2VUcmVlQW5kTWFyayk6
CisgICAgICAgICogZG9tL1Bvc2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9u
Ojpmb3JtYXRGb3JEZWJ1Z2dlciBjb25zdCk6CisgICAgICAgICogZG9tL1JhbmdlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJhbmdlOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZTo6Zm9ybWF0Rm9yRGVidWdnZXIgY29uc3QpOgorICAgICAgICAqIGRvbS9TY3JpcHRl
ZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dGhyb3R0bGluZ1Jl
YXNvbnNUb1N0cmluZyk6CisgICAgICAgICogZG9tL1NlY3VyaXR5Q29udGV4dC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTZWN1cml0eUNvbnRleHQ6OnBhcnNlU2FuZGJveFBvbGljeSk6CisgICAg
ICAgICogZG9tL1RleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dDo6d2hvbGVUZXh0IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHQ6OmZvcm1hdEZvckRlYnVnZ2VyIGNvbnN0KToK
KyAgICAgICAgKiBkb20vVGV4dE5vZGVUcmF2ZXJzYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dE5vZGVUcmF2ZXJzYWw6OmNvbnRlbnRzQXNTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dE5vZGVUcmF2ZXJzYWw6OmNoaWxkVGV4dENvbnRlbnQpOgorICAgICAgICAqIGVkaXRpbmcv
QXBwbHlTdHlsZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlTdHlsZUNvbW1h
bmQ6OmFkZEJsb2NrU3R5bGUpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdGluZy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpzdHJpbmdXaXRoUmViYWxhbmNlZFdoaXRlc3BhY2UpOgorICAgICAgICAq
IGVkaXRpbmcvSFRNTEludGVyY2hhbmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRI
VE1MVGV4dFRvSW50ZXJjaGFuZ2VGb3JtYXQpOgorICAgICAgICAqIGVkaXRpbmcvTWFya3VwQWNj
dW11bGF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWFya3VwQWNjdW11bGF0b3I6OnNlcmlh
bGl6ZU5vZGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1hcmt1cEFjY3VtdWxhdG9yOjpnZW5lcmF0
ZVVuaXF1ZVByZWZpeCk6CisgICAgICAgICogZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6cGxhaW5UZXh0KToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1h
bmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6aW5wdXRFdmVudERhdGFU
cmFuc2ZlciBjb25zdCk6CisgICAgICAgICogZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlZpc2libGVTZWxlY3Rpb246OmZvcm1hdEZvckRlYnVnZ2VyIGNv
bnN0KToKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW06CisgICAgICAg
IChXZWJDb3JlOjpkYXRhRGV0ZWN0b3JTdHJpbmdGb3JQYXRoKToKKyAgICAgICAgKiBlZGl0aW5n
L2NvY29hL0hUTUxDb252ZXJ0ZXIubW06CisgICAgICAgIChIVE1MQ29udmVydGVyOjpfcHJvY2Vz
c1RleHQpOgorICAgICAgICAqIGVkaXRpbmcvbWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjp3cmFwV2l0aE5vZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OndyYXBXaXRoU3R5bGVOb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjp0YWtlUmVzdWx0cyk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kVGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpzYW5pdGl6ZWRNYXJrdXBGb3JGcmFnbWVudEluRG9jdW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6dXJsVG9NYXJrdXApOgorICAgICAgICAqIGZpbGVhcGkvRmlsZVJlYWRlckxv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlUmVhZGVyTG9hZGVyOjpjb252ZXJ0VG9E
YXRhVVJMKToKKyAgICAgICAgKiBodG1sL0RPTVRva2VuTGlzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpET01Ub2tlbkxpc3Q6OnVwZGF0ZUFzc29jaWF0ZWRBdHRyaWJ1dGVGcm9tVG9rZW5zKToK
KyAgICAgICAgKiBodG1sL0VtYWlsSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVt
YWlsSW5wdXRUeXBlOjpzYW5pdGl6ZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0ZpbGVJ
bnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6ZGVmYXVsdFRv
b2xUaXAgY29uc3QpOgorICAgICAgICAqIGh0bWwvRm9ybUNvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Zm9ybVNpZ25hdHVyZSk6CisgICAgICAgICogaHRtbC9IVE1MQW5jaG9yRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6aGFuZGxlQ2xp
Y2spOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUNvbnRleHQyZCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIgY29uc3QpOgorICAgICAg
ICAqIGh0bWwvSFRNTEZvbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlRm9u
dFNpemUpOgorICAgICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50Ojpjb21wbGV0ZVVSTHNJbkF0dHJpYnV0ZVZhbHVlIGNv
bnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6YWN0aW9uTmFtZSk6CisgICAgICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6Y29sbGVjdE9wdGlvbklubmVy
VGV4dCBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c3RyaXBw
ZWRQbGFjZWhvbGRlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjppbm5lclRleHRWYWx1ZUZy
b20pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnZhbHVl
V2l0aEhhcmRMaW5lQnJlYWtzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL01lZGlhRG9jdW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFEb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1l
bnRTdHJ1Y3R1cmUpOgorICAgICAgICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpyZXN0cmljdGlvbk5hbWUpOgorICAgICAgICAqIGh0bWwvTWVkaWFG
cmFnbWVudFVSSVBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb2xsZWN0RGlnaXRzKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbGxlY3RGcmFjdGlvbik6CisgICAgICAgICogaHRtbC9UeXBl
QWhlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwZUFoZWFkOjpoYW5kbGVFdmVudCk6Cisg
ICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Zm9udCBjb25zdCk6CisgICAg
ICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpnZXRJbWFnZURhdGEg
Y29uc3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Uu
Y3BwOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxTb3VyY2VUcmFja2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxTb3VyY2VUcmFja2VyOjpzb3VyY2UpOgorICAgICAgICAqIGh0bWwv
cGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXpl
cjo6cHJvY2Vzc0VudGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpwcm9j
ZXNzVG9rZW4pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXplcjo6YnVmZmVyZWRDaGFy
YWN0ZXJzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpkZWZhdWx0Rm9ySW5UYWJsZVRl
eHQpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpidWlsZENvbnNvbGVFcnJvcik6CisgICAgICAgICogaHRtbC90cmFjay9C
dWZmZXJlZExpbmVSZWFkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QnVmZmVyZWRMaW5lUmVh
ZGVyOjpuZXh0TGluZSk6CisgICAgICAgICogaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VHJhY2tCYXNlOjpzZXRMYW5ndWFnZSk6CisgICAgICAgICogaHRtbC90
cmFjay9WVFRDdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VlRUQ3VlOjpkZXRlcm1pbmVUZXh0
RGlyZWN0aW9uKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJWVFRQYXJzZXI6OmNyZWF0ZU5ld0N1ZSk6CisgICAgICAgICogaHRt
bC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViVlRUVG9r
ZW5pemVyOjpuZXh0VG9rZW4pOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNo
ZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjpzaG9ydGhhbmRWYWx1
ZSBjb25zdCk6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBcHBsaWNhdGlv
bkNhY2hlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQXBwbGljYXRpb25D
YWNoZUFnZW50OjpidWlsZE9iamVjdEZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZSk6CisgICAg
ICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwOgorICAgICAg
ICAqIGluc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldlYkNvbnNvbGVBZ2VudDo6ZGlkRmFpbExvYWRpbmcpOgorICAgICAgICAqIGxvYWRlci9D
cm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQWNj
ZXNzQ29udHJvbFByZWZsaWdodFJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3M6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZVN0b3JhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0
b3JhZ2U6OnN0b3JlKToKKyAgICAgICAgKiBsb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNo
aXZlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0ZUZyb21T
ZWxlY3Rpb24pOgorICAgICAgICAqIGxvYWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpnZW5lcmF0ZVJhbmRvbUJvdW5kYXJ5KToKKyAgICAgICAg
KFdlYkNvcmU6OnJlcGxhY2VOb25QcmludGFibGVDaGFyYWN0ZXJzKToKKyAgICAgICAgKiBwYWdl
L0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNh
cHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjp3aW5kb3dSb3VuZGVkQ29ybmVyUmFkaXVzQ1NT
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFG
Ojpjb2xvclByb3BlcnR5Q1NTIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2Vy
UHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc1RleHRFZGdlQ1NTIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc0RlZmF1bHRG
b250Q1NTIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNN
ZWRpYUFGOjpjYXB0aW9uc1N0eWxlU2hlZXRPdmVycmlkZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjp0cmFja0Rpc3BsYXlOYW1lKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZVJlZ0V4cEZvckxhYmVscyk6CisgICAgICAgICogcGFnZS9GcmFt
ZVRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVUcmVlOjp1bmlxdWVDaGlsZE5hbWUg
Y29uc3QpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lVmlldzo6bG9nTW9ja1Njcm9sbEFuaW1hdG9yTWVzc2FnZSBjb25zdCk6CisgICAgICAg
ICogcGFnZS9QYWdlU2VyaWFsaXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlU2VyaWFs
aXplcjo6c2VyaWFsaXplQ1NTU3R5bGVTaGVldCk6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5j
ZUxvZ2dpbmdDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VMb2dnaW5n
Q2xpZW50OjpzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNBc1N0cmluZyk6CisgICAgICAgICog
cGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhOjpkYXRhYmFzZUlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIHBhZ2UvV2hl
ZWxFdmVudFRlc3RUcmlnZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmR1bXBTdGF0ZSk6Cisg
ICAgICAgICogcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnNvbGVNZXNzYWdlRm9yVmlvbGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dSdW5uaW5nT3JEaXNwbGF5aW5nSW5zZWN1cmVDb250
ZW50KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9BeGlzU2Nyb2xsU25hcE9mZnNldHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6c25hcE9mZnNldHNUb1N0cmluZyk6CisgICAgICAgIChXZWJD
b3JlOjpzbmFwT2Zmc2V0UmFuZ2VzVG9TdHJpbmcpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nv
b3JkaW5hdG9yOjpzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNBc1RleHQpOgorICAgICAgICAq
IHBsYXRmb3JtL0RlY2ltYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVjaW1hbDo6dG9TdHJp
bmcgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RmlsZVN5c3RlbTo6ZW5jb2RlRm9yRmlsZU5hbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbTo6ZGVjb2RlRnJvbUZpbGVuYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Q
T0RJbnRlcnZhbC5oOgorICAgICAgICAqIHBsYXRmb3JtL1BPRFJlZEJsYWNrVHJlZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6UE9EUmVkQmxhY2tUcmVlOjpkdW1wRnJvbU5vZGUgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL1VSTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVUkw6OnNldEhvc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6VVJMOjpzZXRIb3N0QW5kUG9ydCk6CisgICAgICAgIChXZWJD
b3JlOjpwZXJjZW50RW5jb2RlQ2hhcmFjdGVycyk6CisgICAgICAgICogcGxhdGZvcm0vYW5pbWF0
aW9uL1RpbWluZ0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWluZ0Z1bmN0aW9u
OjpjcmVhdGVGcm9tQ1NTVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVt
R2xpYi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdD
b21wb25lbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDb2xvcjo6c2VyaWFsaXplZCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb2xvcjo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRXh0
ZW5kZWRDb2xvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbmRlZENvbG9yOjpjc3NUZXh0
IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpub3JtYWxpemVTcGFjZXNJbnRlcm5hbCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6YW5pbWF0aW9uTmFtZUZvclRy
YW5zaXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJh
bmRUZXh0VHJhY2tQcml2YXRlQVZGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRU
cmFja1ByaXZhdGVBVkY6OnByb2Nlc3NDdWVBdHRyaWJ1dGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OkluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NOYXRpdmVTYW1wbGVzKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUaWxlQ29udHJvbGxlcjo6Y3JlYXRlVGlsZUxheWVyKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jYS9UaWxlR3JpZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0
aW9uUG9saWN5QXNTdHJpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9Q
bGF0Zm9ybUNBTGF5ZXJXaW4uY3BwOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyV2luOjpsYXll
clRyZWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlk
ZW9UZXh0dXJlQ29waWVyQ1YuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UZXh0dXJlQ29w
aWVyQ1Y6OmluaXRpYWxpemVDb250ZXh0T2JqZWN0cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmdlbmVyYXRlSGFzaGVkTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRDo6Z2V0VW5tYW5nbGVkSW5mb0xvZyk6CisgICAgICAgICogcGxhdGZvcm0vbWFj
L1Bhc3RlYm9hcmRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpqb2luUGF0aG5hbWVzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6d2lsZGNhcmRSZWdleFBhdHRlcm5TdHJpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2sv
U2Nyb2xsQW5pbWF0b3JNb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9y
TW9jazo6bW91c2VFbnRlcmVkU2Nyb2xsYmFyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbEFuaW1hdG9yTW9jazo6bW91c2VFeGl0ZWRTY3JvbGxiYXIgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNb2NrOjptb3VzZUlzRG93bkluU2Nyb2xsYmFyIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja0JveDo6cGVla1R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TW9j
a1RyYWNrQm94OjpNb2NrVHJhY2tCb3gpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvSFRU
UFBhcnNlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlh
VHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjp0b1N0cmluZyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMv
Q29va2llSmFyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29va2llc0ZvclNlc3Npb24pOgor
ICAgICAgICAqIHBsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnRzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS90ZXh0L0RlY29kZUVzY2FwZVNlcXVlbmNlcy5oOgorICAgICAgICAoV2ViQ29y
ZTo6VW5pY29kZTE2Qml0RXNjYXBlU2VxdWVuY2U6OmRlY29kZVJ1bik6CisgICAgICAgIChXZWJD
b3JlOjpkZWNvZGVFc2NhcGVTZXF1ZW5jZXMpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvUGxh
dGZvcm1Mb2NhbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlOjpjb252ZXJ0VG9Mb2Nh
bGl6ZWROdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlOjpjb252ZXJ0RnJvbUxvY2Fs
aXplZE51bWJlcik6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbGU6OmZvcm1hdERhdGVUaW1lKToK
KyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmluZy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q29kZWNJ
Q1U6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVc2VyRGVmaW5l
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q29kZWNVc2VyRGVmaW5lZDo6ZGVjb2RlKToK
KyAgICAgICAgKiBwbHVnaW5zL0RPTU1pbWVUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TU1pbWVUeXBlOjpzdWZmaXhlcyBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpuYW1lIGNvbnN0KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6bG9nTGF5ZXJJbmZvKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsaXN0TWFy
a2VyVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0TWFya2VyOjpwYWludCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2Fw
aXRhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjptYXhXb3JkRnJhZ21lbnRXaWR0aCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
cXVvdGVBbmRFc2NhcGVOb25QcmludGFibGVzKToKKyAgICAgICAgKFdlYkNvcmU6Om5vZGVQb3Np
dGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWF0aE1MRmVuY2VkOjp1cGRhdGVGcm9tRWxlbWVu
dCk6CisgICAgICAgICogcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTWF0aE1M
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVCdWlsZGVyOjpNYXRoTUw6OmF0dGFj
aCk6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTGVuZ3RoTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAg
ICogc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTnVt
YmVyTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR1Bh
dGhTdHJpbmdCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTdHJpbmdCdWls
ZGVyOjpyZXN1bHQpOgorICAgICAgICAqIHN2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmJ1aWxkU3RyaW5nRnJvbVBhdGgpOgorICAgICAgICAqIHN2Zy9TVkdQb2lu
dExpc3RWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9pbnRMaXN0VmFsdWVzOjp2
YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHU3RyaW5nTGlzdFZhbHVlcy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHJpbmdMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5n
IGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nIGNvbnN0
KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHVHJhbnNmb3JtVmFsdWU6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2
Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
cm9wZXJ0eVRyYWl0czxGbG9hdFBvaW50Pjo6dG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0Pjo6dG9TdHJpbmcpOgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZHVtcE1hcmtl
clJlY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cGFyc2VyTWV0YURhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpnZXRDdXJyZW50Q3Vyc29ySW5mbyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om1lZGlhU2Vzc2lvblJlc3RyaWN0aW9ucyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnBhZ2VNZWRpYVN0YXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsczo6c2Nyb2xsU25hcE9mZnNldHMpOgorICAgICAgICAqIHRlc3Rp
bmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tQYWdl
T3ZlcmxheUNsaWVudDo6ZHJhd1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1BhZ2VPdmVy
bGF5Q2xpZW50Ojptb3VzZUV2ZW50KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclNjcmlwdExv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRMb2FkZXI6OnNjcmlwdCk6
CisgICAgICAgICogeG1sL1hNTEVycm9ycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxFcnJv
cnM6Omluc2VydEVycm9yTWVzc2FnZUJsb2NrKToKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVl
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmdldEFsbFJlc3BvbnNl
SGVhZGVycyBjb25zdCk6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0Lmg6CisgICAgICAg
ICogeG1sL1hQYXRoRnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoOjphdG9t
aWNTdWJzdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OkZ1bklkOjpldmFsdWF0ZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6RnVuQ29uY2F0OjpldmFsdWF0ZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6RnVuVHJhbnNsYXRlOjpldmFsdWF0ZSBjb25z
dCk6CisgICAgICAgICogeG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnNhdmVSZXN1bHRUb1N0cmluZyk6CisgICAgICAgICogeG1sL3BhcnNlci9DaGFyYWN0
ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVzLmg6CisgICAgICAgIChXZWJDb3JlOjp1bmNvbnN1bWVD
aGFyYWN0ZXJzKToKKwogMjAxOC0wNS0wMSAgT2xla3NhbmRyIFNrYWNoa292ICA8Z3NrYWNoa292
QGdtYWlsLmNvbT4KIAogICAgICAgICBXZWJBc3NlbWJseTogYWRkIHN1cHBvcnQgZm9yIHN0cmVh
bSBBUElzIC0gSmF2YVNjcmlwdCBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudENvbnRhY3RDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudENvbnRhY3RDb2NvYS5tbQppbmRleCAzYmU2
MjEwLi4wOTc4NGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L2NvY29hL1BheW1lbnRDb250YWN0Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9hcHBsZXBheS9jb2NvYS9QYXltZW50Q29udGFjdENvY29hLm1tCkBAIC0xNTQsNyArMTU0LDEw
IEBAIHN0YXRpYyBSZXRhaW5QdHI8UEtDb250YWN0PiBjb252ZXJ0KHVuc2lnbmVkIHZlcnNpb24s
IGNvbnN0IEFwcGxlUGF5UGF5bWVudENvbnRhCiAgICAgICAgIH0KIAogICAgICAgICAvLyBGSVhN
RTogU3RyaW5nQnVpbGRlciBzaG91bGQgaGF2YSBhIHRvTlNTdHJpbmcoKSBmdW5jdGlvbiB0byBh
dm9pZCB0aGUgZXh0cmEgU3RyaW5nIGFsbG9jYXRpb24uCi0gICAgICAgIFthZGRyZXNzIHNldFN0
cmVldDpidWlsZGVyLnRvU3RyaW5nKCldOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBbYWRkcmVzcyBzZXRTdHJlZXQ6KnN0cmluZ107
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAKICAgICAgICAgaWYgKCFjb250
YWN0LnN1YkxvY2FsaXR5LmlzRW1wdHkoKSkKICAgICAgICAgICAgIHNldFN1YkxvY2FsaXR5KGFk
ZHJlc3MuZ2V0KCksIGNvbnRhY3Quc3ViTG9jYWxpdHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwCmluZGV4IDhlNTA2NmQuLjli
MzYwYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01G
aWxlU3lzdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9N
RmlsZVN5c3RlbS5jcHAKQEAgLTIxNiw3ICsyMTYsOSBAQCBzdGF0aWMgU3RyaW5nIHJlc29sdmVS
ZWxhdGl2ZVZpcnR1YWxQYXRoKFN0cmluZ1ZpZXcgYmFzZVZpcnR1YWxQYXRoLCBTdHJpbmdWaWV3
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcvJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHNl
Z21lbnQpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9lbnRyaWVzLWFw
aS8jZXZhbHVhdGUtYS1wYXRoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvbG9jYXRpb24uY3BwCmluZGV4IGRjYmY3MDMuLjZjYWFjNWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCkBAIC0z
NDAsNyArMzQwLDEwIEBAIHN0YXRpYyB2b2lkIGxvZ0Vycm9yKGNvbnN0IFN0cmluZyYgdGFyZ2V0
LCBjb25zdCBib29sIGlzU2VjdXJlLCBjb25zdCBib29sIGlzTWl4CiAgICAgCiAgICAgbWVzc2Fn
ZS5hcHBlbmQodGFyZ2V0KTsKICAgICBtZXNzYWdlLmFwcGVuZCgiLlxuIik7Ci0gICAgZG9jdW1l
bnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2
ZWw6OkVycm9yLCBtZXNzYWdlLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1l
c3NhZ2UudG9TdHJpbmcoKSkKKyAgICAgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAqc3RyaW5nKTsKKyAg
ICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIC8vIEZJWE1FOiByZW1vdmUgdGhpcyBmdW5j
dGlvbiB3aGVuIHJkYXI6Ly9wcm9ibGVtLzMyMTM3ODIxIGlzIGZpeGVkLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmNwcAppbmRleCAyZTkzNjQ1Li43
MjEyOTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJL
ZXlEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlE
YXRhLmNwcApAQCAtMzMyLDcgKzMzMiwxMCBAQCBTdHJpbmcgSURCS2V5RGF0YTo6bG9nZ2luZ1N0
cmluZygpIGNvbnN0CiAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsICIp
OwogICAgICAgICB9CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIH0iKTsKLSAgICAg
ICAgcmVzdWx0ID0gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXN1bHQgPSAqc3RyaW5nOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICBicmVhazsKICAgICB9CiAg
ICAgY2FzZSBLZXlUeXBlOjpCaW5hcnk6IHsKQEAgLTM0Miw3ICszNDUsMTAgQEAgU3RyaW5nIElE
QktleURhdGE6OmxvZ2dpbmdTdHJpbmcoKSBjb25zdAogICAgICAgICBhdXRvKiBkYXRhID0gV1RG
OjpnZXQ8VGhyZWFkU2FmZURhdGFCdWZmZXI+KG1fdmFsdWUpLmRhdGEoKTsKICAgICAgICAgaWYg
KCFkYXRhKSB7CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgiKG51bGwpIik7Ci0gICAgICAg
ICAgICByZXN1bHQgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gKnN0
cmluZzsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApAQCAtMzUzLDcgKzM1OSwxMCBAQCBTdHJpbmcgSURC
S2V5RGF0YTo6bG9nZ2luZ1N0cmluZygpIGNvbnN0CiAgICAgICAgIGlmIChkYXRhLT5zaXplKCkg
PiA4KQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIi4uLiIpOwogCi0gICAgICAgIHJlc3Vs
dCA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICAgICAgcmVzdWx0ID0gKnN0cmluZzsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2Ug
S2V5VHlwZTo6U3RyaW5nOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCS2V5UGF0aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJLZXlQYXRoLmNwcAppbmRleCA3NmViZWIzLi44YjlmYjE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlQYXRoLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlQYXRoLmNwcApAQCAtMjQxLDcgKzI0MSw5IEBA
IFN0cmluZyBsb2dnaW5nU3RyaW5nKGNvbnN0IElEQktleVBhdGgmIHBhdGgpCiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKHN0cmluZ3MubGFzdCgpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiA+
Iik7CiAKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfSk7CiAKICAgICByZXR1cm4gV1RGOjp2aXNpdCh2
aXNpdG9yLCBwYXRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JbmRleFZhbHVlU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL0luZGV4VmFsdWVTdG9yZS5jcHAKaW5kZXggNjk4M2M5ZC4uODBkNmIz
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lu
ZGV4VmFsdWVTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0luZGV4VmFsdWVTdG9yZS5jcHAKQEAgLTQwOSw3ICs0MDksOSBAQCBTdHJpbmcgSW5k
ZXhWYWx1ZVN0b3JlOjpsb2dnaW5nU3RyaW5nKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBl
bmROdW1iZXIobV9yZWNvcmRzLmdldChrZXkpLT5nZXRDb3VudCgpKTsKICAgICAgICAgYnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCIgZW50cmllcyIpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQ3Vy
c29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJ
REJDdXJzb3IuY3BwCmluZGV4IGYyMGRiODcuLmE0YzMwZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJDdXJzb3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJDdXJzb3Iu
Y3BwCkBAIC0xNDEsNyArMTQxLDkgQEAgc3RhdGljIFN0cmluZyBidWlsZEluZGV4U3RhdGVtZW50
KGNvbnN0IElEQktleVJhbmdlRGF0YSYga2V5UmFuZ2UsIEluZGV4ZWREQjo6Q3UKIAogICAgIGJ1
aWxkZXIuYXBwZW5kKCc7Jyk7CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBidWlsZE9iamVjdFN0b3Jl
U3RhdGVtZW50KGNvbnN0IElEQktleVJhbmdlRGF0YSYga2V5UmFuZ2UsIEluZGV4ZWREQjo6Q3Vy
c29yRGlyZWN0aW9uIGN1cnNvckRpcmVjdGlvbikKQEAgLTE2OSw3ICsxNzEsOSBAQCBzdGF0aWMg
U3RyaW5nIGJ1aWxkT2JqZWN0U3RvcmVTdGF0ZW1lbnQoY29uc3QgSURCS2V5UmFuZ2VEYXRhJiBr
ZXlSYW5nZSwgSW5kZXhlZAogCiAgICAgYnVpbGRlci5hcHBlbmQoJzsnKTsKIAotICAgIHJldHVy
biBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29s
IFNRTGl0ZUlEQkN1cnNvcjo6ZXN0YWJsaXNoU3RhdGVtZW50KCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJEYXRhYmFzZUluZm8uY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5j
cHAKaW5kZXggZTVkZjE1Yy4uNzY5MzRkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5jcHAKQEAgLTE2
OSw3ICsxNjksOSBAQCBTdHJpbmcgSURCRGF0YWJhc2VJbmZvOjpsb2dnaW5nU3RyaW5nKCkgY29u
c3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9i
amVjdFN0b3JlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFy
ZWQvSURCT2JqZWN0U3RvcmVJbmZvLmNwcAppbmRleCBiMDA3NWZlLi44ZDhmYWQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCT2JqZWN0U3Rv
cmVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCT2JqZWN0U3RvcmVJbmZvLmNwcApAQCAtMTQ4LDcgKzE0OCw5IEBAIFN0cmluZyBJREJPYmpl
Y3RTdG9yZUluZm86OmxvZ2dpbmdTdHJpbmcoaW50IGluZGVudCkgY29uc3QKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoJ1xuJyk7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBJREJPYmplY3RTdG9yZUlu
Zm86OmNvbmRlbnNlZExvZ2dpbmdTdHJpbmcoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2Vy
LmNwcAppbmRleCA0MjA5ZmZhLi45NmZlYmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNw
cApAQCAtODksNyArODksOSBAQCBzdGF0aWMgU3RyaW5nIG1lZGlhUHJvZHVjZXJTdGF0ZVN0cmlu
ZyhNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpCiAgICAgZWxzZQogICAgICAg
ICBzdHJpbmcucmVzaXplKHN0cmluZy5sZW5ndGgoKSAtIDIpOwogCi0gICAgcmV0dXJuIHN0cmlu
Zy50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0ciA9IHN0cmluZy50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cjsKKyAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKQEAgLTM4MSw3ICsz
ODMsOSBAQCBTdHJpbmcgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6dG9TdHJpbmcoQ29uZmlndXJh
dGlvblRhc2tzIHRhc2tzKQogICAgIGVsc2UKICAgICAgICAgc3RyaW5nLnJlc2l6ZShzdHJpbmcu
bGVuZ3RoKCkgLSAyKTsKICAgICAKLSAgICByZXR1cm4gc3RyaW5nLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyID0gc3RyaW5nLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyOwor
ICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCmluZGV4IGRj
NTFiYjUuLmRiZWNkNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKQEAgLTQwMyw3ICs0MDMs
OSBAQCBzdGF0aWMgU3RyaW5nIGZpbHRlcklDRUNhbmRpZGF0ZShTdHJpbmcmJiBzZHApCiAgICAg
ICAgICAgICBmaWx0ZXJlZFNEUC5hcHBlbmQoJyAnKTsKICAgICAgICAgZmlsdGVyZWRTRFAuYXBw
ZW5kKGl0ZW0pOwogICAgIH0pOwotICAgIHJldHVybiBmaWx0ZXJlZFNEUC50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IGZpbHRlcmVkU0RQLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBQZWVyQ29ubmVjdGlvbkJh
Y2tlbmQ6OmZpbHRlclNEUChTdHJpbmcmJiBzZHApIGNvbnN0CkBAIC00MjEsNyArNDIzLDkgQEAg
U3RyaW5nIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6ZmlsdGVyU0RQKFN0cmluZyYmIHNkcCkgY29u
c3QKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgZmlsdGVyZWRTRFAuYXBwZW5kKCdcbicp
OwogICAgIH0pOwotICAgIHJldHVybiBmaWx0ZXJlZFNEUC50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGZpbHRlcmVkU0RQLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpuZXdJ
Q0VDYW5kaWRhdGUoU3RyaW5nJiYgc2RwLCBTdHJpbmcmJiBtaWQsIHVuc2lnbmVkIHNob3J0IHNk
cE1MaW5lSW5kZXgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMv
WW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1
Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCmluZGV4IGM5MTcxZGMuLjQyN2Y0ZmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2lu
UmVwbGFjZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VU
dWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCkBAIC0zMzMsNyArMzMzLDkgQEAgU3RyaW5nIFlvdVR1
YmVQbHVnaW5SZXBsYWNlbWVudDo6eW91VHViZVVSTEZyb21BYnNvbHV0ZVVSTChjb25zdCBVUkwm
IHNyY1VSTCwgY28KICAgICAgICAgZmluYWxVUkwuYXBwZW5kKCc/Jyk7CiAgICAgICAgIGZpbmFs
VVJMLmFwcGVuZChxdWVyeSk7CiAgICAgfQotICAgIHJldHVybiBmaW5hbFVSTC50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGZpbmFsVVJMLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAgICAgCiBib29sIFlvdVR1YmVQbHVnaW5S
ZXBsYWNlbWVudDo6c3VwcG9ydHNVUkwoY29uc3QgVVJMJiB1cmwpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKaW5kZXgg
OGZkYTYyYS4uOThmMzA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcApAQCAtMzIwLDcgKzMyMCw5IEBAIHN0YXRp
YyBTdHJpbmcgZ2VuZXJhdGVEYXRhYmFzZUZpbGVOYW1lKCkKICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZChjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiLmRiIik7CiAKLSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIERhdGFiYXNlVHJh
Y2tlcjo6ZnVsbFBhdGhGb3JEYXRhYmFzZU5vTG9jayhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEm
IG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTm90RXhpc3RzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAppbmRleCAw
MjQ3N2I5Li5lYWIyNTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0LmNwcApAQCAtMTA1LDcgKzEwNSw5IEBAIHN0YXRpYyBTdHJpbmcgZW5jb2Rl
UHJvdG9jb2xTdHJpbmcoY29uc3QgU3RyaW5nJiBwcm90b2NvbCkKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgYnVpbGRlci5hcHBlbmQocHJvdG9jb2xbaV0pOwogICAgIH0KLSAgICByZXR1cm4g
YnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGlj
IFN0cmluZyBqb2luU3RyaW5ncyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3RyaW5ncywgY29uc3Qg
Y2hhciogc2VwYXJhdG9yKQpAQCAtMTE2LDcgKzExOCw5IEBAIHN0YXRpYyBTdHJpbmcgam9pblN0
cmluZ3MoY29uc3QgVmVjdG9yPFN0cmluZz4mIHN0cmluZ3MsIGNvbnN0IGNoYXIqIHNlcGFyYXRv
cikKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHNlcGFyYXRvcik7CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKHN0cmluZ3NbaV0pOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIHVuc2lnbmVkIHNhdHVy
YXRlQWRkKHVuc2lnbmVkIGEsIHVuc2lnbmVkIGIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0
Y2hlci5jcHAKaW5kZXggZmNjOWRjMy4uNmM0MGM0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25E
aXNwYXRjaGVyLmNwcApAQCAtNjgsNyArNjgsOSBAQCBjb25zdCBTdHJpbmcgV2ViU29ja2V0RXh0
ZW5zaW9uRGlzcGF0Y2hlcjo6Y3JlYXRlSGVhZGVyVmFsdWUoKSBjb25zdAogICAgICAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIiwgIik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG1fcHJvY2Vz
c29yc1tpXS0+aGFuZHNoYWtlU3RyaW5nKCkpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBXZWJTb2NrZXRF
eHRlbnNpb25EaXNwYXRjaGVyOjphcHBlbmRBY2NlcHRlZEV4dGVuc2lvbihjb25zdCBTdHJpbmcm
IGV4dGVuc2lvblRva2VuLCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYgZXh0ZW5zaW9uUGFyYW1l
dGVycykKQEAgLTEzOSw3ICsxNDEsOSBAQCBTdHJpbmcgV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0
Y2hlcjo6YWNjZXB0ZWRFeHRlbnNpb25zKCkgY29uc3QKIHsKICAgICBpZiAobV9hY2NlcHRlZEV4
dGVuc2lvbnNCdWlsZGVyLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwotICAg
IHJldHVybiBtX2FjY2VwdGVkRXh0ZW5zaW9uc0J1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFj
aXR5KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbV9hY2NlcHRlZEV4dGVuc2lvbnNCdWlsZGVy
LnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBTdHJpbmcgV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlcjo6ZmFp
bHVyZVJlYXNvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCmluZGV4IDU0NTVjZDEuLjA4M2E5MDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRI
YW5kc2hha2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXRIYW5kc2hha2UuY3BwCkBAIC03MiwxMCArNzIsMTMgQEAgc3RhdGljIFN0cmluZyByZXNv
dXJjZU5hbWUoY29uc3QgVVJMJiB1cmwpCiAgICAgICAgIG5hbWUuYXBwZW5kKCc/Jyk7CiAgICAg
ICAgIG5hbWUuYXBwZW5kKHVybC5xdWVyeSgpKTsKICAgICB9Ci0gICAgU3RyaW5nIHJlc3VsdCA9
IG5hbWUudG9TdHJpbmcoKTsKLSAgICBBU1NFUlQoIXJlc3VsdC5pc0VtcHR5KCkpOwotICAgIEFT
U0VSVCghcmVzdWx0LmNvbnRhaW5zKCcgJykpOwotICAgIHJldHVybiByZXN1bHQ7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gbmFtZS50b1N0cmluZygpKSB7CisgICAgICAgIFN0cmluZyByZXN1bHQg
PSAqc3RyaW5nOworICAgICAgICBBU1NFUlQoIXJlc3VsdC5pc0VtcHR5KCkpOworICAgICAgICBB
U1NFUlQoIXJlc3VsdC5jb250YWlucygnICcpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICB9CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBob3N0TmFtZShjb25zdCBVUkwm
IHVybCwgYm9vbCBzZWN1cmUpCkBAIC04Nyw3ICs5MCw5IEBAIHN0YXRpYyBTdHJpbmcgaG9zdE5h
bWUoY29uc3QgVVJMJiB1cmwsIGJvb2wgc2VjdXJlKQogICAgICAgICBidWlsZGVyLmFwcGVuZCgn
OicpOwogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih1cmwucG9ydCgpLnZhbHVlKCkpOwog
ICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogc3RhdGljIGNvbnN0IHNpemVfdCBtYXhJbnB1dFNhbXBsZVNpemUgPSAxMjg7
CkBAIC0xNzYsNyArMTgxLDkgQEAgU3RyaW5nIFdlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZW50TG9j
YXRpb24oKSBjb25zdAogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiOi8vIik7CiAgICAgYnVp
bGRlci5hcHBlbmQoaG9zdE5hbWUobV91cmwsIG1fc2VjdXJlKSk7CiAgICAgYnVpbGRlci5hcHBl
bmQocmVzb3VyY2VOYW1lKG1fdXJsKSk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIENTdHJpbmcgV2ViU29ja2V0SGFuZHNoYWtl
OjpjbGllbnRIYW5kc2hha2VNZXNzYWdlKCkgY29uc3QKQEAgLTIyNiw3ICsyMzMsOSBAQCBDU3Ry
aW5nIFdlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZW50SGFuZHNoYWtlTWVzc2FnZSgpIGNvbnN0CiAK
ICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxyXG4iKTsKIAotICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCkudXRmOCgpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuIHN0cmluZy0+dXRmOCgpOworICAgIENSQVNIKCk7CiB9CiAK
IFJlc291cmNlUmVxdWVzdCBXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudEhhbmRzaGFrZVJlcXVl
c3QoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCBkYjg1NzVlLi5jNGEyNTIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0LmNwcApAQCAtMTcxMywxMSArMTcxMywxMyBAQCBzdGF0aWMgYm9vbCBzaG91bGRVc2VB
Y2Nlc3NpYmlsaXR5T2JqZWN0SW5uZXJUZXh0KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQWNj
ZQogCiBzdGF0aWMgYm9vbCBzaG91bGRBZGRTcGFjZUJlZm9yZUFwcGVuZGluZ05leHRFbGVtZW50
KFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIGNvbnN0IFN0cmluZyYgY2hpbGRUZXh0KQogeworICAg
IGlmIChidWlsZGVyLmZhaWxlZCgpKQorICAgICAgICBDUkFTSCgpOworCiAgICAgaWYgKCFidWls
ZGVyLmxlbmd0aCgpIHx8ICFjaGlsZFRleHQubGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKLQogICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gYWRkIGFuIGFkZGl0aW9uYWwgc3BhY2UgYmVm
b3JlIG9yIGFmdGVyIGEgbGluZSBicmVhay4KLSAgICByZXR1cm4gIShpc0hUTUxMaW5lQnJlYWso
Y2hpbGRUZXh0WzBdKSB8fCBpc0hUTUxMaW5lQnJlYWsoYnVpbGRlcltidWlsZGVyLmxlbmd0aCgp
IC0gMV0pKTsKKyAgICByZXR1cm4gIShpc0hUTUxMaW5lQnJlYWsoY2hpbGRUZXh0WzBdKSB8fCBp
c0hUTUxMaW5lQnJlYWsoKmJ1aWxkZXJbYnVpbGRlci5sZW5ndGgoKSAtIDFdKSk7CiB9CiAgICAg
CiBzdGF0aWMgdm9pZCBhcHBlbmROYW1lVG9TdHJpbmdCdWlsZGVyKFN0cmluZ0J1aWxkZXImIGJ1
aWxkZXIsIGNvbnN0IFN0cmluZyYgdGV4dCkKQEAgLTE3NjksNyArMTc3MSw5IEBAIFN0cmluZyBB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dGV4dFVuZGVyRWxlbWVudChBY2Nlc3NpYmlsaXR5VGV4
dFVuZGVyRWxlbWVudE1vCiAgICAgICAgICAgICBhcHBlbmROYW1lVG9TdHJpbmdCdWlsZGVyKGJ1
aWxkZXIsIGNoaWxkVGV4dCk7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KS5zdHJpcFdoaXRlU3BhY2UoKS5zaW1wbGlmeVdoaXRlU3BhY2UoaXNIVE1MU3BhY2VCdXROb3RM
aW5lQnJlYWspOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuIHN0cmluZy0+c3RyaXBXaGl0ZVNwYWNlKCkuc2ltcGxpZnlXaGl0ZVNwYWNl
KGlzSFRNTFNwYWNlQnV0Tm90TGluZUJyZWFrKTsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcg
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRpdGxlKCkgY29uc3QKQEAgLTE5ODUsNyArMTk4OSw5
IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWNjZXNzaWJpbGl0eURlc2NyaXB0
aW9uRm9yQ2hpbGRyZW4oKSBjb25zdAogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uRm9yRWxlbWVu
dHMoVmVjdG9yPEVsZW1lbnQqPiAmZWxlbWVudHMpIGNvbnN0CkBAIC0xOTk0LDcgKzIwMDAsOSBA
QCBTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmFjY2Vzc2liaWxpdHlEZXNjcmlwdGlv
bkZvckVsZW1lbnRzKFZlY3RvcjxFbGVtZQogICAgIHVuc2lnbmVkIHNpemUgPSBlbGVtZW50cy5z
aXplKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkKICAgICAgICAg
YXBwZW5kTmFtZVRvU3RyaW5nQnVpbGRlcihidWlsZGVyLCBhY2Nlc3NpYmxlTmFtZUZvck5vZGUo
ZWxlbWVudHNbaV0sIG5vZGUoKSkpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3Q6OmFyaWFEZXNjcmliZWRCeUF0dHJpYnV0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCAxOTI4MTcy
Li43YzhkOThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTEzODgsOCArMTM4OCwxMCBAQCBTdHJpbmcgQWNjZXNz
aWJpbGl0eU9iamVjdDo6c3RyaW5nRm9yUmFuZ2UoUmVmUHRyPFJhbmdlPiByYW5nZSkgY29uc3QK
ICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChvYmplY3RSZXBsYWNlbWVudENoYXJhY3Rl
cik7CiAgICAgICAgIH0KICAgICB9Ci0gICAgCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KTsKKworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIEFjY2Vzc2liaWxpdHlP
YmplY3Q6OnN0cmluZ0ZvclZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3NpdGlv
blJhbmdlJiB2aXNpYmxlUG9zaXRpb25SYW5nZSkKQEAgLTE0MTUsNyArMTQxNyw5IEBAIFN0cmlu
ZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdHJpbmdGb3JWaXNpYmxlUG9zaXRpb25SYW5nZShjb25z
dCBWaXNpYmxlUG9zaXRpb25SCiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogaW50IEFjY2Vzc2li
aWxpdHlPYmplY3Q6Omxlbmd0aEZvclZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQ
b3NpdGlvblJhbmdlJiB2aXNpYmxlUG9zaXRpb25SYW5nZSkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJNYWMubW0KaW5kZXggYTEwMmQzNi4uOTMyZDExYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KQEAgLTI0MDksNyArMjQwOSw5IEBAIC0g
KE5TU3RyaW5nICopdmFsdWVEZXNjcmlwdGlvbkZvck1ldGVyCiAgICAgICAgIGlmIChidWlsZGVy
Lmxlbmd0aCgpKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsICIpOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZChnYXVnZVJlZ2lvblZhbHVlKTsKLSAgICAgICAgcmV0dXJuIGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAg
ICAgfQogI2VuZGlmCiAgICAgcmV0dXJuIHZhbHVlRGVzY3JpcHRpb247CkBAIC0zODczLDggKzM4
NzUsMTEgQEAgc3RhdGljIHZvaWQgZm9ybWF0Rm9yRGVidWdnZXIoY29uc3QgVmlzaWJsZVBvc2l0
aW9uUmFuZ2UmIHJhbmdlLCBjaGFyKiBidWZmZXIsIHUKICAgICByZXN1bHQuYXBwZW5kTGl0ZXJh
bCgiIHRvICIpOwogICAgIHJhbmdlLmVuZC5mb3JtYXRGb3JEZWJ1Z2dlcihmb3JtYXQsIEZvcm1h
dEJ1ZmZlclNpemUpOwogICAgIHJlc3VsdC5hcHBlbmQoZm9ybWF0KTsKLSAgICAKLSAgICBzdHJs
Y3B5KGJ1ZmZlciwgcmVzdWx0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbGVuZ3RoKTsKKwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBzdHJsY3B5
KGJ1ZmZlciwgc3RyaW5nLT51dGY4KCkuZGF0YSgpLCBsZW5ndGgpOworICAgIGVsc2UKKyAgICAg
ICAgQ1JBU0goKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUNvbnZlcnRTdHJpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NQ29udmVydFN0cmluZ3MuY3BwCmluZGV4IDdkMmRlMTguLjFlMDRhMWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFN0cmluZ3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFN0cmluZ3MuY3Bw
CkBAIC05MSw3ICs5MSw5IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIHN0cmluZ1RvVVNWU3RyaW5n
KFN0cmluZyYmIHN0cmluZykKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmVzdWx0LmFwcGVu
ZChjb2RlUG9pbnQpOwogICAgIH0KLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBpZGVudGlmaWVyVG9VU1ZTdHJpbmcoRXhl
Y1N0YXRlJiwgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAKaW5kZXggODk1
YTMwMC4uMDdmYjczOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01FeGNlcHRpb25IYW5kbGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAKQEAgLTIxMSw3ICsyMTEsOSBAQCBKU0M6OkVuY29k
ZWRKU1ZhbHVlIHRocm93QXJndW1lbnRNdXN0QmVFbnVtRXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0
YXRlLCBKU0M6OlRocgogICAgIGFwcGVuZEFyZ3VtZW50TXVzdEJlKGJ1aWxkZXIsIGFyZ3VtZW50
SW5kZXgsIGFyZ3VtZW50TmFtZSwgZnVuY3Rpb25JbnRlcmZhY2VOYW1lLCBmdW5jdGlvbk5hbWUp
OwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgib25lIG9mOiAiKTsKICAgICBidWlsZGVyLmFw
cGVuZChleHBlY3RlZFZhbHVlcyk7Ci0gICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoJnN0YXRl
LCBzY29wZSwgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKCZzdGF0ZSwg
c2NvcGUsICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIEpTQzo6RW5jb2RlZEpTVmFsdWUg
dGhyb3dBcmd1bWVudE11c3RCZUZ1bmN0aW9uRXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBK
U0M6OlRocm93U2NvcGUmIHNjb3BlLCB1bnNpZ25lZCBhcmd1bWVudEluZGV4LCBjb25zdCBjaGFy
KiBhcmd1bWVudE5hbWUsIGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIGZ1
bmN0aW9uTmFtZSkKQEAgLTIxOSw3ICsyMjEsOSBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIHRocm93
QXJndW1lbnRNdXN0QmVGdW5jdGlvbkVycm9yKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOgog
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBhcHBlbmRBcmd1bWVudE11c3RCZShidWls
ZGVyLCBhcmd1bWVudEluZGV4LCBhcmd1bWVudE5hbWUsIGludGVyZmFjZU5hbWUsIGZ1bmN0aW9u
TmFtZSk7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJhIGZ1bmN0aW9uIik7Ci0gICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoJnN0YXRlLCBzY29wZSwgYnVpbGRlci50b1N0cmluZygpKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUsICpzdHJpbmcpOworICAgIENSQVNIKCk7
CiB9CiAKIEpTQzo6RW5jb2RlZEpTVmFsdWUgdGhyb3dBcmd1bWVudFR5cGVFcnJvcihKU0M6OkV4
ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6VGhyb3dTY29wZSYgc2NvcGUsIHVuc2lnbmVkIGFyZ3VtZW50
SW5kZXgsIGNvbnN0IGNoYXIqIGFyZ3VtZW50TmFtZSwgY29uc3QgY2hhciogZnVuY3Rpb25JbnRl
cmZhY2VOYW1lLCBjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIGNvbnN0IGNoYXIqIGV4cGVjdGVk
VHlwZSkKQEAgLTIyOCw3ICsyMzIsOSBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIHRocm93QXJndW1l
bnRUeXBlRXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OlRocm93U2NvcAogICAgIGFw
cGVuZEFyZ3VtZW50TXVzdEJlKGJ1aWxkZXIsIGFyZ3VtZW50SW5kZXgsIGFyZ3VtZW50TmFtZSwg
ZnVuY3Rpb25JbnRlcmZhY2VOYW1lLCBmdW5jdGlvbk5hbWUpOwogICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiYW4gaW5zdGFuY2Ugb2YgIik7CiAgICAgYnVpbGRlci5hcHBlbmQoZXhwZWN0ZWRU
eXBlKTsKLSAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcigmc3RhdGUsIHNjb3BlLCBidWlsZGVy
LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoJnN0YXRlLCBzY29wZSwgKnN0cmluZyk7
CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCB0aHJvd0F0dHJpYnV0ZVR5cGVFcnJvcihKU0M6OkV4
ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6VGhyb3dTY29wZSYgc2NvcGUsIGNvbnN0IGNoYXIqIGludGVy
ZmFjZU5hbWUsIGNvbnN0IGNoYXIqIGF0dHJpYnV0ZU5hbWUsIGNvbnN0IGNoYXIqIGV4cGVjdGVk
VHlwZSkKQEAgLTI0NSw3ICsyNTEsOSBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIHRocm93UmVxdWly
ZWRNZW1iZXJUeXBlRXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OlRocgogICAgIGJ1
aWxkZXIuYXBwZW5kKG1lbWJlck5hbWUpOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIGlz
IHJlcXVpcmVkIGFuZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mICIpOwogICAgIGJ1aWxkZXIuYXBw
ZW5kKGV4cGVjdGVkVHlwZSk7Ci0gICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoJnN0YXRlLCBz
Y29wZSwgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKCZzdGF0ZSwgc2Nv
cGUsICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIEpTQzo6RW5jb2RlZEpTVmFsdWUgdGhy
b3dDb25zdHJ1Y3RvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHRVbmF2YWlsYWJsZUVycm9yKEpTQzo6
RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpUaHJvd1Njb3BlJiBzY29wZSwgY29uc3QgY2hhciogaW50
ZXJmYWNlTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25z
L0NvbWJpbmVkVVJMRmlsdGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9u
cy9Db21iaW5lZFVSTEZpbHRlcnMuY3BwCmluZGV4IDc1NThiMjIuLjI5ZGU1MDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29tYmluZWRVUkxGaWx0
ZXJzLmNwcApAQCAtMTA3LDcgKzEwNyw5IEBAIHN0YXRpYyBTdHJpbmcgcHJlZml4VHJlZVZlcnRl
eFRvU3RyaW5nKGNvbnN0IFByZWZpeFRyZWVWZXJ0ZXgmIHZlcnRleCwgY29uc3QgSGFzCiAgICAg
ICAgIH0KICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgcmV0dXJuIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyB2b2lk
IHJlY3Vyc2l2ZVByaW50KGNvbnN0IFByZWZpeFRyZWVWZXJ0ZXgmIHZlcnRleCwgY29uc3QgSGFz
aE1hcDxjb25zdCBQcmVmaXhUcmVlVmVydGV4KiwgQWN0aW9uTGlzdD4mIGFjdGlvbnMsIHVuc2ln
bmVkIGRlcHRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMv
Q29udGVudEV4dGVuc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9D
b250ZW50RXh0ZW5zaW9uLmNwcAppbmRleCA2MTBlMWI4Li44ZTUwZmY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uLmNwcApA
QCAtMTEwLDggKzExMCwxMSBAQCB2b2lkIENvbnRlbnRFeHRlbnNpb246OmNvbXBpbGVHbG9iYWxE
aXNwbGF5Tm9uZVN0eWxlU2hlZXQoKQogCiAgICAgbV9nbG9iYWxEaXNwbGF5Tm9uZVN0eWxlU2hl
ZXQgPSBTdHlsZVNoZWV0Q29udGVudHM6OmNyZWF0ZSgpOwogICAgIG1fZ2xvYmFsRGlzcGxheU5v
bmVTdHlsZVNoZWV0LT5zZXRJc1VzZXJTdHlsZVNoZWV0KHRydWUpOwotICAgIGlmICghbV9nbG9i
YWxEaXNwbGF5Tm9uZVN0eWxlU2hlZXQtPnBhcnNlU3RyaW5nKGNzcy50b1N0cmluZygpKSkKLSAg
ICAgICAgbV9nbG9iYWxEaXNwbGF5Tm9uZVN0eWxlU2hlZXQgPSBudWxscHRyOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGNzcy50b1N0cmluZygpKSB7CisgICAgICAgIGlmICghbV9nbG9iYWxEaXNw
bGF5Tm9uZVN0eWxlU2hlZXQtPnBhcnNlU3RyaW5nKCpzdHJpbmcpKQorICAgICAgICAgICAgbV9n
bG9iYWxEaXNwbGF5Tm9uZVN0eWxlU2hlZXQgPSBudWxscHRyOworICAgIH0gZWxzZQorICAgICAg
ICBDUkFTSCgpOwogCiAgICAgLy8gVGhlc2UgYWN0aW9ucyBkb24ndCBuZWVkIHRvIGJlIGFwcGxp
ZWQgaW5kaXZpZHVhbGx5IGFueSBtb3JlLiBUaGV5IHdpbGwgYWxsIGJlIGFwcGxpZWQgdG8gZXZl
cnkgcGFnZSBhcyBhIHByZWNvbXBpbGVkIHN0eWxlIHNoZWV0LgogICAgIG1fdW5pdmVyc2FsQWN0
aW9uc1dpdGhvdXRDb25kaXRpb25zLnJlbW92ZUFsbE1hdGNoaW5nKGluR2xvYmFsRGlzcGxheU5v
bmVTdHlsZVNoZWV0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50
ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwCmluZGV4IDVlMDM1YTYuLjVj
MzdlZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRl
bnRFeHRlbnNpb25Db21waWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVu
c2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcApAQCAtODAsNyArODAsMTAgQEAgc3Rh
dGljIHZvaWQgcmVzb2x2ZVBlbmRpbmdEaXNwbGF5Tm9uZUFjdGlvbnMoVmVjdG9yPFNlcmlhbGl6
ZWRBY3Rpb25CeXRlPiYgYWN0aW8KICAgICBmb3IgKGF1dG8mIHBlbmRpbmdEaXNwbGF5Tm9uZUFj
dGlvbnMgOiBtYXAudmFsdWVzKCkpIHsKICAgICAgICAgdWludDMyX3QgYWN0aW9uTG9jYXRpb24g
PSBhY3Rpb25zLnNpemUoKTsKICAgICAgICAgYWN0aW9ucy5hcHBlbmQoc3RhdGljX2Nhc3Q8U2Vy
aWFsaXplZEFjdGlvbkJ5dGU+KEFjdGlvblR5cGU6OkNTU0Rpc3BsYXlOb25lU2VsZWN0b3IpKTsK
LSAgICAgICAgc2VyaWFsaXplU3RyaW5nKGFjdGlvbnMsIHBlbmRpbmdEaXNwbGF5Tm9uZUFjdGlv
bnMuY29tYmluZWRTZWxlY3RvcnMudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHBlbmRpbmdEaXNwbGF5Tm9uZUFjdGlvbnMuY29tYmluZWRTZWxlY3RvcnMudG9TdHJpbmco
KSkKKyAgICAgICAgICAgIHNlcmlhbGl6ZVN0cmluZyhhY3Rpb25zLCAqc3RyaW5nKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgZm9yICh1aW50MzJfdCBjbGll
bnRMb2NhdGlvbiA6IHBlbmRpbmdEaXNwbGF5Tm9uZUFjdGlvbnMuY2xpZW50TG9jYXRpb25zKQog
ICAgICAgICAgICAgYWN0aW9uTG9jYXRpb25zW2NsaWVudExvY2F0aW9uXSA9IGFjdGlvbkxvY2F0
aW9uOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25z
L0NvbnRlbnRFeHRlbnNpb25TdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRl
eHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25TdHlsZVNoZWV0LmNwcAppbmRleCBlMjRhMzY2Li5k
ZTNlODU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250
ZW50RXh0ZW5zaW9uU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4
dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblN0eWxlU2hlZXQuY3BwCkBAIC02MCw3ICs2MCwxMCBA
QCBib29sIENvbnRlbnRFeHRlbnNpb25TdHlsZVNoZWV0OjphZGREaXNwbGF5Tm9uZVNlbGVjdG9y
KGNvbnN0IFN0cmluZyYgc2VsZWN0b3IsCiAgICAgY3NzLmFwcGVuZCgneycpOwogICAgIGNzcy5h
cHBlbmQoQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kOjpkaXNwbGF5Tm9uZUNTU1J1bGUoKSk7CiAg
ICAgY3NzLmFwcGVuZCgnfScpOwotICAgIG1fc3R5bGVTaGVldC0+Y29udGVudHMoKS5wYXJzZVN0
cmluZyhjc3MudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gY3NzLnRvU3RyaW5n
KCkpCisgICAgICAgIG1fc3R5bGVTaGVldC0+Y29udGVudHMoKS5wYXJzZVN0cmluZygqc3RyaW5n
KTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1Rlcm0uaCBiL1NvdXJj
ZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1Rlcm0uaAppbmRleCAwZDUxODMzLi42ZjMxOTRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9UZXJtLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVGVybS5oCkBAIC0yNDYsNyArMjQ2
LDkgQEAgaW5saW5lIFN0cmluZyBUZXJtOjp0b1N0cmluZygpIGNvbnN0CiAgICAgICAgIH0KICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoJ10nKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQocXVhbnRp
ZmllclRvU3RyaW5nKG1fcXVhbnRpZmllcikpOwotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0
cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAg
Y2FzZSBUZXJtVHlwZTo6R3JvdXA6IHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwpA
QCAtMjU1LDcgKzI1Nyw5IEBAIGlubGluZSBTdHJpbmcgVGVybTo6dG9TdHJpbmcoKSBjb25zdAog
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQodGVybS50b1N0cmluZygpKTsKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoJyknKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQocXVhbnRpZmllclRvU3Ry
aW5nKG1fcXVhbnRpZmllcikpOwotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwor
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgfQogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVl
LmNwcAppbmRleCBhMWE1OTdiLi4yZjI1YzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmNwcApAQCAtNDMsNyArNDMsOSBA
QCBTdHJpbmcgQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlOjpjdXN0b21DU1NUZXh0KCkg
Y29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZChtX2VuZFZhbHVlLT5jc3NUZXh0KCkpOwogICAg
IH0KICAgICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU0FuaW1hdGlvblRyaWdnZXJT
Y3JvbGxWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZSYg
b3RoZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQmFzaWNTaGFw
ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmNwcAppbmRleCAyNGYy
MzM0Li4xOTJhMDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQmFzaWNTaGFw
ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5jcHAKQEAgLTEw
Nyw3ICsxMDcsOSBAQCBzdGF0aWMgU3RyaW5nIGJ1aWxkQ2lyY2xlU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgcmFkaXVzLCBjb25zdCBTdHJpbmcmIGNlbnRlclgsIGNvbgogICAgICAgICByZXN1bHQuYXBw
ZW5kKGNlbnRlclkpOwogICAgIH0KICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiKSIpOwotICAg
IHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAog
U3RyaW5nIENTU0Jhc2ljU2hhcGVDaXJjbGU6OmNzc1RleHQoKSBjb25zdApAQCAtMTY0LDcgKzE2
Niw5IEBAIHN0YXRpYyBTdHJpbmcgYnVpbGRFbGxpcHNlU3RyaW5nKGNvbnN0IFN0cmluZyYgcmFk
aXVzWCwgY29uc3QgU3RyaW5nJiByYWRpdXNZLCBjCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2Vu
dGVyWSk7CiAgICAgfQogICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCIpIik7Ci0gICAgcmV0dXJu
IHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcg
Q1NTQmFzaWNTaGFwZUVsbGlwc2U6OmNzc1RleHQoKSBjb25zdApAQCAtMjI0LDcgKzIyOCw5IEBA
IHN0YXRpYyBTdHJpbmcgYnVpbGRQYXRoU3RyaW5nKGNvbnN0IFdpbmRSdWxlJiB3aW5kUnVsZSwg
Y29uc3QgU3RyaW5nJiBwYXRoLCBjb25zCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoYm94KTsKICAg
ICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIFN0cmluZyBDU1NCYXNpY1NoYXBlUGF0aDo6Y3NzVGV4dCgpIGNvbnN0CkBAIC0y
ODAsNyArMjg2LDkgQEAgc3RhdGljIFN0cmluZyBidWlsZFBvbHlnb25TdHJpbmcoY29uc3QgV2lu
ZFJ1bGUmIHdpbmRSdWxlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYKIAogICAgIHJlc3VsdC5hcHBl
bmQoJyknKTsKIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogU3RyaW5nIENTU0Jhc2ljU2hhcGVQb2x5Z29uOjpjc3NUZXh0KCkgY29u
c3QKQEAgLTM3Nyw3ICszODUsOSBAQCBzdGF0aWMgU3RyaW5nIGJ1aWxkSW5zZXRTdHJpbmcoY29u
c3QgU3RyaW5nJiB0b3AsIGNvbnN0IFN0cmluZyYgcmlnaHQsIGNvbnN0IFN0cgogICAgICAgICB9
CiAgICAgfQogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCB1
cGRhdGVDb3JuZXJSYWRpdXNXaWR0aEFuZEhlaWdodChDU1NQcmltaXRpdmVWYWx1ZSogY29ybmVy
LCBTdHJpbmcmIHdpZHRoLCBTdHJpbmcmIGhlaWdodCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
YWxjdWxhdGlvblZhbHVlLmNwcAppbmRleCBiNzU4MzAxLi5iOTFjMGY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwCkBAIC0xNjIsNyArMTYyLDkgQEAgc3Rh
dGljIFN0cmluZyBidWlsZENzc1RleHQoY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKQogICAgIHJl
c3VsdC5hcHBlbmQoZXhwcmVzc2lvbik7CiAgICAgaWYgKGV4cHJlc3Npb25IYXNTaW5nbGVUZXJt
KQogICAgICAgICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQ1NTQ2FsY1ZhbHVlOjpj
dXN0b21DU1NUZXh0KCkgY29uc3QKQEAgLTU2Myw3ICs1NjUsOSBAQCBwcml2YXRlOgogICAgICAg
ICB9CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKIAotICAgICAgICByZXR1cm4gcmVzdWx0
LnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygp
KQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQog
CiAgICAgU3RyaW5nIGN1c3RvbUNTU1RleHQoKSBjb25zdCBmaW5hbApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBlZWFlNDI2
Li4xYTQ0ZDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcApAQCAtMTY5Myw3ICsxNjkzLDkgQEAgU3RyaW5nIENTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbjo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQo
JzsnKTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IENTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbjo6c2V0Q3NzVGV4dChjb25zdCBTdHJpbmcmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
cm9zc2ZhZGVWYWx1ZS5jcHAKaW5kZXggMTcyYzk0NS4uMzQzYTAyMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCkBAIC0xMDIsNyArMTAyLDkgQEAgU3RyaW5nIENT
U0Nyb3NzZmFkZVZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICByZXN1bHQuYXBwZW5k
TGl0ZXJhbCgiLCAiKTsKICAgICByZXN1bHQuYXBwZW5kKG1fcGVyY2VudGFnZVZhbHVlLT5jc3NU
ZXh0KCkpOwogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIEZsb2F0U2l6ZSBDU1NDcm9zc2Zh
ZGVWYWx1ZTo6Zml4ZWRTaXplKGNvbnN0IFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwCmluZGV4IDFiNmQ3ZjIuLjBlZWVl
MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAKQEAgLTYx
LDcgKzYxLDkgQEAgU3RyaW5nIENTU0N1cnNvckltYWdlVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBj
b25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKCcgJyk7CiAgICAgICAgIHJlc3VsdC5hcHBlbmRO
dW1iZXIobV9ob3RTcG90LnkoKSk7CiAgICAgfQotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU1ZHQ3Vyc29yRWxlbWVudCogQ1NTQ3Vy
c29ySW1hZ2VWYWx1ZTo6dXBkYXRlQ3Vyc29yRWxlbWVudChjb25zdCBEb2N1bWVudCYgZG9jdW1l
bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3VzdG9tSWRlbnRWYWx1ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3VzdG9tSWRlbnRWYWx1ZS5jcHAKaW5kZXggMjZk
NmUzYi4uZjVlZWI3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1c3RvbUlk
ZW50VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXN0b21JZGVudFZhbHVl
LmNwcApAQCAtNTYsNyArNTYsOSBAQCBTdHJpbmcgQ1NTQ3VzdG9tSWRlbnRWYWx1ZTo6Y3VzdG9t
Q1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIHJldHVybiBnZXRQcm9wZXJ0eU5hbWVBdG9taWNTdHJp
bmcobV9wcm9wZXJ0eUlkKTsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgc2VyaWFs
aXplSWRlbnRpZmllcihtX3N0cmluZywgYnVpbGRlcik7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcAppbmRleCA2
YWNmNzQ0Li4yMDMxNDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVy
SW1hZ2VWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFs
dWUuY3BwCkBAIC01Myw3ICs1Myw5IEBAIFN0cmluZyBDU1NGaWx0ZXJJbWFnZVZhbHVlOjpjdXN0
b21DU1NUZXh0KCkgY29uc3QKICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKICAgICBy
ZXN1bHQuYXBwZW5kKG1fZmlsdGVyVmFsdWUtPmNzc1RleHQoKSk7CiAgICAgcmVzdWx0LmFwcGVu
ZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogRmxvYXRTaXplIENTU0ZpbHRlckltYWdlVmFsdWU6OmZpeGVkU2l6ZShjb25z
dCBSZW5kZXJFbGVtZW50KiByZW5kZXJlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250RmFjZVJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVs
ZS5jcHAKaW5kZXggMGRkYTFiMi4uODU5NDZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRGYWNlUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRG
YWNlUnVsZS5jcHAKQEAgLTU3LDcgKzU3LDkgQEAgU3RyaW5nIENTU0ZvbnRGYWNlUnVsZTo6Y3Nz
VGV4dCgpIGNvbnN0CiAgICAgaWYgKCFkZXNjcy5pc0VtcHR5KCkpCiAgICAgICAgIHJlc3VsdC5h
cHBlbmQoJyAnKTsKICAgICByZXN1bHQuYXBwZW5kKCd9Jyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIENTU0ZvbnRGYWNl
UnVsZTo6cmVhdHRhY2goU3R5bGVSdWxlQmFzZSYgcnVsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NGb250RmFjZVNyY1ZhbHVlLmNwcAppbmRleCA4MWQ4YTc1Li4yZjM0NjFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCkBAIC04MSw3ICs4MSw5IEBAIFN0
cmluZyBDU1NGb250RmFjZVNyY1ZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAg
cmVzdWx0LmFwcGVuZChtX2Zvcm1hdCk7CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKICAg
ICB9Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogCiBib29sIENTU0ZvbnRGYWNlU3JjVmFsdWU6OnRyYXZlcnNlU3VicmVzb3VyY2VzKGNv
bnN0IFdURjo6RnVuY3Rpb248Ym9vbCAoY29uc3QgQ2FjaGVkUmVzb3VyY2UmKT4mIGhhbmRsZXIp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZlYXR1cmVWYWx1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZlYXR1cmVWYWx1ZS5jcHAKaW5kZXgg
N2ZmMDdmMy4uNDc0NjIyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRG
ZWF0dXJlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmVhdHVyZVZh
bHVlLmNwcApAQCAtNTAsNyArNTAsOSBAQCBTdHJpbmcgQ1NTRm9udEZlYXR1cmVWYWx1ZTo6Y3Vz
dG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fdmFsdWUpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDU1NGb250
RmVhdHVyZVZhbHVlOjplcXVhbHMoY29uc3QgQ1NTRm9udEZlYXR1cmVWYWx1ZSYgb3RoZXIpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFN0eWxlUmFuZ2VWYWx1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFN0eWxlUmFuZ2VWYWx1ZS5jcHAKaW5k
ZXggMGNkY2RiZi4uZWE2NjZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Zv
bnRTdHlsZVJhbmdlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U3R5
bGVSYW5nZVZhbHVlLmNwcApAQCAtMzksNyArMzksOSBAQCBTdHJpbmcgQ1NTRm9udFN0eWxlUmFu
Z2VWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgYnVpbGRlci5hcHBlbmQoZm9udFN0
eWxlVmFsdWUtPmNzc1RleHQoKSk7CiAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICBidWls
ZGVyLmFwcGVuZChvYmxpcXVlVmFsdWVzLT5jc3NUZXh0KCkpOwotICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU0ZvbnRT
dHlsZVJhbmdlVmFsdWU6OmVxdWFscyhjb25zdCBDU1NGb250U3R5bGVSYW5nZVZhbHVlJiBvdGhl
cikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U3R5bGVWYWx1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFN0eWxlVmFsdWUuY3BwCmluZGV4IDI4
NTBlMjMuLjhjNGU4NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U3R5
bGVWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTdHlsZVZhbHVlLmNw
cApAQCAtMzksNyArMzksOSBAQCBTdHJpbmcgQ1NTRm9udFN0eWxlVmFsdWU6OmN1c3RvbUNTU1Rl
eHQoKSBjb25zdAogICAgIGJ1aWxkZXIuYXBwZW5kKGZvbnRTdHlsZVZhbHVlLT5jc3NUZXh0KCkp
OwogICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgYnVpbGRlci5hcHBlbmQob2JsaXF1ZVZh
bHVlLT5jc3NUZXh0KCkpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU0ZvbnRTdHlsZVZhbHVlOjplcXVhbHMoY29u
c3QgQ1NTRm9udFN0eWxlVmFsdWUmIG90aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFZh
bHVlLmNwcAppbmRleCA3NjZjMTEzLi4xY2Y3OGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRm9udFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFZh
bHVlLmNwcApAQCAtNjUsNyArNjUsOSBAQCBTdHJpbmcgQ1NTRm9udFZhbHVlOjpjdXN0b21DU1NU
ZXh0KCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZChmYW1pbHktPmNzc1RleHQoKSk7CiAg
ICAgfQogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBib29sIENTU0ZvbnRWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0ZvbnRWYWx1ZSYg
b3RoZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFZhcmlh
dGlvblZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUu
Y3BwCmluZGV4IDcyZGRjMWEuLjRmOTI1YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250VmFyaWF0aW9uVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250VmFyaWF0aW9uVmFsdWUuY3BwCkBAIC00OCw3ICs0OCw5IEBAIFN0cmluZyBDU1NGb250VmFy
aWF0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVu
ZChjKTsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlwiICIpOwogICAgIGJ1aWxkZXIuYXBw
ZW5kTnVtYmVyKG1fdmFsdWUpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU0ZvbnRWYXJpYXRpb25WYWx1ZTo6ZXF1
YWxzKGNvbnN0IENTU0ZvbnRWYXJpYXRpb25WYWx1ZSYgb3RoZXIpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHAKaW5kZXggNzVlZjBjMS4uYmJkZGZmMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Z1bmN0aW9uVmFsdWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGdW5jdGlvblZhbHVlLmNwcApAQCAtMzcsNyArMzcsOSBAQCBTdHJp
bmcgQ1NTRnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgcmVzdWx0LmFw
cGVuZCgnKCcpOwogICAgIHJlc3VsdC5hcHBlbmQoQ1NTVmFsdWVMaXN0OjpjdXN0b21DU1NUZXh0
KCkpOwogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NH
cmFkaWVudFZhbHVlLmNwcAppbmRleCAxNzFkNDcyNi4uZTE0NDNjOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcApAQCAtNzAxLDcgKzcwMSw5IEBAIFN0cmluZyBDU1NM
aW5lYXJHcmFkaWVudFZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICB9CiAKICAgICBy
ZXN1bHQuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiAvLyBDb21wdXRlIHRoZSBlbmRwb2ludHMgc28gdGhhdCBh
IGdyYWRpZW50IG9mIHRoZSBnaXZlbiBhbmdsZSBjb3ZlcnMgYSBib3ggb2YgdGhlIGdpdmVuIHNp
emUuCkBAIC0xMDE5LDcgKzEwMjEsOSBAQCBTdHJpbmcgQ1NTUmFkaWFsR3JhZGllbnRWYWx1ZTo6
Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgfQogCiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwot
ICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1
bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogZmxvYXQgQ1NTUmFkaWFsR3JhZGllbnRWYWx1ZTo6cmVzb2x2ZVJhZGl1cyhDU1NQcmltaXRp
dmVWYWx1ZSYgcmFkaXVzLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhJiBjb252ZXJz
aW9uRGF0YSwgZmxvYXQqIHdpZHRoT3JIZWlnaHQpCkBAIC0xMzQ3LDcgKzEzNTEsOSBAQCBTdHJp
bmcgQ1NTQ29uaWNHcmFkaWVudFZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICB9CiAg
ICAgCiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogUmVmPEdyYWRpZW50PiBDU1NDb25pY0dy
YWRpZW50VmFsdWU6OmNyZWF0ZUdyYWRpZW50KFJlbmRlckVsZW1lbnQmLCBjb25zdCBGbG9hdFNp
emUmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRBdXRvUmVwZWF0VmFs
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRBdXRvUmVwZWF0VmFsdWUuY3BwCmlu
ZGV4IGQ1YmM0NDkuLmZkNzkwZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NH
cmlkQXV0b1JlcGVhdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZEF1
dG9SZXBlYXRWYWx1ZS5jcHAKQEAgLTQzLDcgKzQzLDkgQEAgU3RyaW5nIENTU0dyaWRBdXRvUmVw
ZWF0VmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIHJlc3VsdC5hcHBlbmQoIiwgIik7
CiAgICAgcmVzdWx0LmFwcGVuZChDU1NWYWx1ZUxpc3Q6OmN1c3RvbUNTU1RleHQoKSk7CiAgICAg
cmVzdWx0LmFwcGVuZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwCmluZGV4IGUwYjc4
NjUuLjhiYzNmZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxh
dGVBcmVhc1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRl
QXJlYXNWYWx1ZS5jcHAKQEAgLTgwLDcgKzgwLDkgQEAgU3RyaW5nIENTU0dyaWRUZW1wbGF0ZUFy
ZWFzVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAgICBpZiAocm93ICE9IG1fcm93
Q291bnQgLSAxKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICB9Ci0gICAg
cmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IGJvb2wgQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0dyaWRUZW1w
bGF0ZUFyZWFzVmFsdWUmIG90aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0
VmFsdWUuY3BwCmluZGV4IGE5N2RjMjEuLmUzNzUwYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
SW1hZ2VTZXRWYWx1ZS5jcHAKQEAgLTE0Niw3ICsxNDYsOSBAQCBTdHJpbmcgQ1NTSW1hZ2VTZXRW
YWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgfQogCiAgICAgcmVzdWx0LmFwcGVuZCgn
KScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogYm9vbCBDU1NJbWFnZVNldFZhbHVlOjp0cmF2ZXJzZVN1YnJlc291cmNlcyhjb25z
dCBXVEY6OkZ1bmN0aW9uPGJvb2wgKGNvbnN0IENhY2hlZFJlc291cmNlJik+JiBoYW5kbGVyKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUuY3BwCmluZGV4IDRjNjY2MTMuLmY5YWFl
ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVsZS5jcHAKQEAgLTcyLDcgKzcyLDkgQEAg
U3RyaW5nIENTU0ltcG9ydFJ1bGU6OmNzc1RleHQoKSBjb25zdAogICAgIH0KICAgICByZXN1bHQu
YXBwZW5kKCc7Jyk7CiAgICAgCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBDU1NTdHlsZVNoZWV0KiBDU1NJbXBvcnRSdWxlOjpzdHls
ZVNoZWV0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFt
ZVJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lUnVsZS5jcHAKaW5kZXgg
ODFlOTk1OC4uZGNhM2Y3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZy
YW1lUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lUnVsZS5jcHAK
QEAgLTY3LDcgKzY3LDkgQEAgU3RyaW5nIFN0eWxlUnVsZUtleWZyYW1lOjprZXlUZXh0KCkgY29u
c3QKICAgICAgICAga2V5VGV4dC5hcHBlbmQoJyUnKTsKICAgICB9CiAKLSAgICByZXR1cm4ga2V5
VGV4dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGtleVRleHQudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KICAgICAKIGJvb2wg
U3R5bGVSdWxlS2V5ZnJhbWU6OnNldEtleVRleHQoY29uc3QgU3RyaW5nJiBrZXlUZXh0KQpAQCAt
OTAsNyArOTIsOSBAQCBTdHJpbmcgU3R5bGVSdWxlS2V5ZnJhbWU6OmNzc1RleHQoKSBjb25zdAog
ICAgIGlmICghZGVjbHMuaXNFbXB0eSgpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCcgJyk7CiAg
ICAgcmVzdWx0LmFwcGVuZCgnfScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogQ1NTS2V5ZnJhbWVSdWxlOjpDU1NLZXlmcmFtZVJ1
bGUoU3R5bGVSdWxlS2V5ZnJhbWUmIGtleWZyYW1lLCBDU1NLZXlmcmFtZXNSdWxlKiBwYXJlbnQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVzUnVsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVzUnVsZS5jcHAKaW5kZXggOWYwMDBkOS4uNzdi
MTgyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lc1J1bGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZXNSdWxlLmNwcApAQCAtMTk4LDcg
KzE5OCw5IEBAIFN0cmluZyBDU1NLZXlmcmFtZXNSdWxlOjpjc3NUZXh0KCkgY29uc3QKICAgICAg
ICAgcmVzdWx0LmFwcGVuZCgnXG4nKTsKICAgICB9CiAgICAgcmVzdWx0LmFwcGVuZCgnfScpOwot
ICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1
bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogdW5zaWduZWQgQ1NTS2V5ZnJhbWVzUnVsZTo6bGVuZ3RoKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMaW5lQm94Q29udGFpblZhbHVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NMaW5lQm94Q29udGFpblZhbHVlLmNwcAppbmRleCAxOWZkZjhiLi4zZGVi
M2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTGluZUJveENvbnRhaW5WYWx1
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xpbmVCb3hDb250YWluVmFsdWUuY3Bw
CkBAIC03Myw3ICs3Myw5IEBAIFN0cmluZyBDU1NMaW5lQm94Q29udGFpblZhbHVlOjpjdXN0b21D
U1NUZXh0KCkgY29uc3QKICAgICAgICAgdGV4dC5hcHBlbmRMaXRlcmFsKCJpbml0aWFsLWxldHRl
ciIpOwogICAgIH0KIAotICAgIHJldHVybiB0ZXh0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gdGV4dC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBD
UkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWFya3Vw
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNYXJrdXAuY3BwCmluZGV4IDgxZmU4ODguLjYw
OWM3MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNYXJrdXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNYXJrdXAuY3BwCkBAIC0xODYsNyArMTg2LDkgQEAgU3Ry
aW5nIHNlcmlhbGl6ZVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7CiAgICAgc2VyaWFsaXplU3RyaW5nKHN0cmluZywgYnVpbGRlcik7Ci0g
ICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIFN0cmluZyBzZXJpYWxpemVVUkwoY29uc3QgU3RyaW5nJiBzdHJpbmcpCkBAIC0yMDQsNyAr
MjA2LDkgQEAgU3RyaW5nIHNlcmlhbGl6ZUFzU3RyaW5nT3JDdXN0b21JZGVudChjb25zdCBTdHJp
bmcmIHN0cmluZykKICAgICBpZiAoaXNDU1NUb2tlbml6ZXJJZGVudGlmaWVyKHN0cmluZykpIHsK
ICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBzZXJpYWxpemVJZGVudGlm
aWVyKHN0cmluZywgYnVpbGRlcik7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7
CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICByZXR1cm4g
c2VyaWFsaXplU3RyaW5nKHN0cmluZyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTTWVkaWFSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuY3Bw
CmluZGV4IGIwOTRlZGQuLjE3NGY1YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NNZWRpYVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuY3Bw
CkBAIC01Nyw3ICs1Nyw5IEBAIFN0cmluZyBDU1NNZWRpYVJ1bGU6OmNzc1RleHQoKSBjb25zdAog
ICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCJ7IFxuIik7CiAgICAgYXBwZW5kQ3NzVGV4dEZvckl0
ZW1zKHJlc3VsdCk7CiAgICAgcmVzdWx0LmFwcGVuZCgnfScpOwotICAgIHJldHVybiByZXN1bHQu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogTWVkaWFMaXN0KiBDU1NN
ZWRpYVJ1bGU6Om1lZGlhKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NOYW1lc3BhY2VSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NOYW1lc3BhY2VSdWxl
LmNwcAppbmRleCAzZDNlYzZmLi43MDY4OTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTTmFtZXNwYWNlUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU05hbWVz
cGFjZVJ1bGUuY3BwCkBAIC02MCw3ICs2MCw5IEBAIFN0cmluZyBDU1NOYW1lc3BhY2VSdWxlOjpj
c3NUZXh0KCkgY29uc3QKICAgICByZXN1bHQuYXBwZW5kKCJ1cmwoIik7CiAgICAgcmVzdWx0LmFw
cGVuZChzZXJpYWxpemVTdHJpbmcobmFtZXNwYWNlVVJJKCkpKTsKICAgICByZXN1bHQuYXBwZW5k
KCIpOyIpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogdm9pZCBDU1NOYW1lc3BhY2VSdWxlOjpyZWF0dGFjaChTdHlsZVJ1bGVCYXNl
JikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYWdlUnVsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFnZVJ1bGUuY3BwCmluZGV4IDQ3Y2Y0NTYuLmU2OWRhNWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYWdlUnVsZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhZ2VSdWxlLmNwcApAQCAtNjQsNyArNjQsOSBAQCBTdHJpbmcgQ1NT
UGFnZVJ1bGU6OnNlbGVjdG9yVGV4dCgpIGNvbnN0CiAgICAgICAgICAgICB0ZXh0LmFwcGVuZChw
YWdlU3BlY2lmaWNhdGlvbik7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIHRleHQudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0ZXh0LnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgQ1NTUGFnZVJ1bGU6OnNl
dFNlbGVjdG9yVGV4dChjb25zdCBTdHJpbmcmIHNlbGVjdG9yVGV4dCkKQEAgLTkwLDcgKzkyLDkg
QEAgU3RyaW5nIENTU1BhZ2VSdWxlOjpjc3NUZXh0KCkgY29uc3QKICAgICBpZiAoIWRlY2xzLmlz
RW1wdHkoKSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICcpOwogICAgIHJlc3VsdC5hcHBlbmQo
J30nKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIHZvaWQgQ1NTUGFnZVJ1bGU6OnJlYXR0YWNoKFN0eWxlUnVsZUJhc2UmIHJ1bGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAppbmRleCBhNzYxMjc2Li44
M2UxNmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKQEAgLTEw
NDUsNyArMTA0NSw5IEBAIEFMV0FZU19JTkxJTkUgU3RyaW5nIENTU1ByaW1pdGl2ZVZhbHVlOjpm
b3JtYXROdW1iZXJGb3JDdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVu
ZChTdHJpbmcobV92YWx1ZS5zdHJpbmcpKTsKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwog
Ci0gICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgY2FzZSBDU1NfQ09VTlRFUl9OQU1FOgogICAgICAg
ICByZXR1cm4gImNvdW50ZXIoIiArIFN0cmluZyhtX3ZhbHVlLnN0cmluZykgKyAnKSc7CkBAIC0x
MDY5LDcgKzEwNzEsOSBAQCBBTFdBWVNfSU5MSU5FIFN0cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6
Zm9ybWF0TnVtYmVyRm9yQ3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIH0KICAgICAgICAg
cmVzdWx0LmFwcGVuZCgnKScpOwogCi0gICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsK
KyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgY2FzZSBDU1Nf
UkVDVDoKICAgICAgICAgcmV0dXJuIHJlY3RWYWx1ZSgpLT5jc3NUZXh0KCk7CkBAIC0xMTEyLDcg
KzExMTYsOSBAQCBBTFdBWVNfSU5MSU5FIFN0cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6Zm9ybWF0
TnVtYmVyRm9yQ3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKCcpJyk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdC50
b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkK
KyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KICNl
bmRpZgogICAgIGNhc2UgQ1NTX0NBTEM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUHJvcGVydHlTb3VyY2VEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0
eVNvdXJjZURhdGEuY3BwCmluZGV4IDc1Yjc5OTAuLmZkMmU4MmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3BwCkBAIC05Niw3ICs5Niw5IEBAIFN0cmlu
ZyBDU1NQcm9wZXJ0eVNvdXJjZURhdGE6OnRvU3RyaW5nKCkgY29uc3QKICAgICBpZiAoaW1wb3J0
YW50KQogICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiICFpbXBvcnRhbnQiKTsKICAgICBy
ZXN1bHQuYXBwZW5kKCc7Jyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiB1bnNpZ25lZCBDU1NQcm9wZXJ0eVNvdXJjZURhdGE6Omhh
c2goKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKaW5kZXggMWZlNDJjZC4uNTZi
ZmMyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCkBAIC03MjYsMjYgKzcyNiwzMSBA
QCBTdHJpbmcgQ1NTU2VsZWN0b3I6OnNlbGVjdG9yVGV4dChjb25zdCBTdHJpbmcmIHJpZ2h0U2lk
ZSkgY29uc3QKICAgICAgICAgY3MgPSBjcy0+dGFnSGlzdG9yeSgpOwogICAgIH0KIAorICAgIFN0
cmluZyBzdHJpbmc7CisgICAgaWYgKGF1dG8gcyA9IHN0ci50b1N0cmluZygpKQorICAgICAgICBz
dHJpbmcgPSAqczsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgaWYgKGNvbnN0IENT
U1NlbGVjdG9yKiB0YWdIaXN0b3J5ID0gY3MtPnRhZ0hpc3RvcnkoKSkgewogICAgICAgICBzd2l0
Y2ggKGNzLT5yZWxhdGlvbigpKSB7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkRlc2NlbmRh
bnRTcGFjZToKLSAgICAgICAgICAgIHJldHVybiB0YWdIaXN0b3J5LT5zZWxlY3RvclRleHQoIiAi
ICsgc3RyLnRvU3RyaW5nKCkgKyByaWdodFNpZGUpOworICAgICAgICAgICAgcmV0dXJuIHRhZ0hp
c3RvcnktPnNlbGVjdG9yVGV4dCgiICIgKyBzdHJpbmcgKyByaWdodFNpZGUpOwogICAgICAgICBj
YXNlIENTU1NlbGVjdG9yOjpDaGlsZDoKLSAgICAgICAgICAgIHJldHVybiB0YWdIaXN0b3J5LT5z
ZWxlY3RvclRleHQoIiA+ICIgKyBzdHIudG9TdHJpbmcoKSArIHJpZ2h0U2lkZSk7CisgICAgICAg
ICAgICByZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0b3JUZXh0KCIgPiAiICsgc3RyaW5nICsgcmln
aHRTaWRlKTsKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6RGlyZWN0QWRqYWNlbnQ6Ci0gICAg
ICAgICAgICByZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0b3JUZXh0KCIgKyAiICsgc3RyLnRvU3Ry
aW5nKCkgKyByaWdodFNpZGUpOworICAgICAgICAgICAgcmV0dXJuIHRhZ0hpc3RvcnktPnNlbGVj
dG9yVGV4dCgiICsgIiArIHN0cmluZyArIHJpZ2h0U2lkZSk7CiAgICAgICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OkluZGlyZWN0QWRqYWNlbnQ6Ci0gICAgICAgICAgICByZXR1cm4gdGFnSGlzdG9yeS0+
c2VsZWN0b3JUZXh0KCIgfiAiICsgc3RyLnRvU3RyaW5nKCkgKyByaWdodFNpZGUpOworICAgICAg
ICAgICAgcmV0dXJuIHRhZ0hpc3RvcnktPnNlbGVjdG9yVGV4dCgiIH4gIiArIHN0cmluZyArIHJp
Z2h0U2lkZSk7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlN1YnNlbGVjdG9yOgogICAgICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAjaWYgQVNTRVJUX0RJU0FCTEVECiAgICAgICAg
ICAgICBGQUxMVEhST1VHSDsKICNlbmRpZgogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpTaGFk
b3dEZXNjZW5kYW50OgotICAgICAgICAgICAgcmV0dXJuIHRhZ0hpc3RvcnktPnNlbGVjdG9yVGV4
dChzdHIudG9TdHJpbmcoKSArIHJpZ2h0U2lkZSk7CisgICAgICAgICAgICByZXR1cm4gdGFnSGlz
dG9yeS0+c2VsZWN0b3JUZXh0KHN0cmluZyArIHJpZ2h0U2lkZSk7CiAgICAgICAgIH0KICAgICB9
Ci0gICAgcmV0dXJuIHN0ci50b1N0cmluZygpICsgcmlnaHRTaWRlOworICAgIHJldHVybiBzdHJp
bmcgKyByaWdodFNpZGU7CiB9CiAKIHZvaWQgQ1NTU2VsZWN0b3I6OnNldEF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB2YWx1ZSwgYm9vbCBpc0Nhc2VJbnNlbnNpdGl2ZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxpc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAKaW5kZXggNTdlZmE2Ny4uYWUzMzAwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAKQEAgLTEzOCw3ICsxMzgsOSBAQCBTdHJp
bmcgQ1NTU2VsZWN0b3JMaXN0OjpzZWxlY3RvcnNUZXh0KCkgY29uc3QKIHsKICAgICBTdHJpbmdC
dWlsZGVyIHJlc3VsdDsKICAgICBidWlsZFNlbGVjdG9yc1RleHQocmVzdWx0KTsKLSAgICByZXR1
cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQg
Q1NTU2VsZWN0b3JMaXN0OjpidWlsZFNlbGVjdG9yc1RleHQoU3RyaW5nQnVpbGRlciYgc3RyaW5n
QnVpbGRlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTaGFkb3dW
YWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2hhZG93VmFsdWUuY3BwCmluZGV4IDk0
OTQ3ZDcuLmUyOWM4NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTaGFkb3dW
YWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NoYWRvd1ZhbHVlLmNwcApAQCAt
NjksNyArNjksOSBAQCBTdHJpbmcgQ1NTU2hhZG93VmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25z
dAogICAgICAgICB0ZXh0LmFwcGVuZChzdHlsZS0+Y3NzVGV4dCgpKTsKICAgICB9CiAKLSAgICBy
ZXR1cm4gdGV4dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHRleHQudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBD
U1NTaGFkb3dWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU1NoYWRvd1ZhbHVlJiBvdGhlcikgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAKaW5kZXggYmI4ZDIxYy4uNTgwOGZkMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAKQEAgLTEyMCw3ICsxMjAsOSBAQCBTdHJpbmcg
Q1NTU3R5bGVSdWxlOjpjc3NUZXh0KCkgY29uc3QKICAgICBpZiAoIWRlY2xzLmlzRW1wdHkoKSkK
ICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICcpOwogICAgIHJlc3VsdC5hcHBlbmQoJ30nKTsKLSAg
ICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IHZvaWQgQ1NTU3R5bGVSdWxlOjpyZWF0dGFjaChTdHlsZVJ1bGVCYXNlJiBydWxlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCmluZGV4IDFlY2M1YmEuLjg2OTg0ZmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAKQEAgLTMxNiw5ICszMTYsMTIgQEAgRXhjZXB0aW9u
T3I8aW50PiBDU1NTdHlsZVNoZWV0OjphZGRSdWxlKGNvbnN0IFN0cmluZyYgc2VsZWN0b3IsIGNv
bnN0IFN0cmluZyYgc3QKICAgICBpZiAoIXN0eWxlLmlzRW1wdHkoKSkKICAgICAgICAgdGV4dC5h
cHBlbmQoJyAnKTsKICAgICB0ZXh0LmFwcGVuZCgnfScpOwotICAgIGF1dG8gaW5zZXJ0UnVsZVJl
c3VsdCA9IGluc2VydFJ1bGUodGV4dC50b1N0cmluZygpLCBpbmRleC52YWx1ZV9vcihsZW5ndGgo
KSkpOwotICAgIGlmIChpbnNlcnRSdWxlUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQotICAgICAgICBy
ZXR1cm4gaW5zZXJ0UnVsZVJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gdGV4dC50b1N0cmluZygpKSB7CisgICAgICAgIGF1dG8gaW5zZXJ0UnVsZVJlc3Vs
dCA9IGluc2VydFJ1bGUoKnN0cmluZywgaW5kZXgudmFsdWVfb3IobGVuZ3RoKCkpKTsKKyAgICAg
ICAgaWYgKGluc2VydFJ1bGVSZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1
cm4gaW5zZXJ0UnVsZVJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CisgICAgfSBlbHNlCisgICAg
ICAgIENSQVNIKCk7CiAgICAgCiAgICAgLy8gQXMgcGVyIE1pY3Jvc29mdCBkb2N1bWVudGF0aW9u
LCBhbHdheXMgcmV0dXJuIC0xLgogICAgIHJldHVybiAtMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTdXBwb3J0c1J1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1
cHBvcnRzUnVsZS5jcHAKaW5kZXggZTEzZTEzYi4uZmNiZTMyNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1N1cHBvcnRzUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N1cHBvcnRzUnVsZS5jcHAKQEAgLTUwLDcgKzUwLDkgQEAgU3RyaW5nIENTU1N1cHBvcnRz
UnVsZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgYXBwZW5kQ3NzVGV4dEZvckl0ZW1zKHJlc3VsdCk7
CiAgICAgcmVzdWx0LmFwcGVuZCgnfScpOwogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQ1NTU3VwcG9ydHNSdWxlOjpj
b25kaXRpb25UZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NU
aW1pbmdGdW5jdGlvblZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUaW1pbmdGdW5j
dGlvblZhbHVlLmNwcAppbmRleCA5MGVmNmNkLi4wOTI4ODJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVGltaW5nRnVuY3Rpb25WYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuY3BwCkBAIC00Miw3ICs0Miw5IEBAIFN0cmlu
ZyBDU1NDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25z
dAogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKICAgICBidWlsZGVyLmFwcGVuZE51
bWJlcihtX3kyKTsKICAgICBidWlsZGVyLmFwcGVuZCgnKScpOyAgICAKLSAgICByZXR1cm4gYnVp
bGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDU1ND
dWJpY0JlemllclRpbWluZ0Z1bmN0aW9uVmFsdWU6OmVxdWFscyhjb25zdCBDU1NDdWJpY0Jlemll
clRpbWluZ0Z1bmN0aW9uVmFsdWUmIG90aGVyKSBjb25zdApAQCAtNTksNyArNjEsOSBAQCBTdHJp
bmcgQ1NTU3RlcHNUaW1pbmdGdW5jdGlvblZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAg
ICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsIHN0YXJ0KSIpOwogICAgIGVsc2UKICAgICAg
ICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsIGVuZCkiKTsKLSAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDU1NTdGVwc1Rp
bWluZ0Z1bmN0aW9uVmFsdWU6OmVxdWFscyhjb25zdCBDU1NTdGVwc1RpbWluZ0Z1bmN0aW9uVmFs
dWUmIG90aGVyKSBjb25zdApAQCAtNzMsNyArNzcsOSBAQCBTdHJpbmcgQ1NTRnJhbWVzVGltaW5n
RnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgYnVpbGRlci5hcHBlbmRM
aXRlcmFsKCJmcmFtZXMoIik7CiAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV9mcmFtZXMpOwog
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSIpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU0ZyYW1lc1RpbWlu
Z0Z1bmN0aW9uVmFsdWU6OmVxdWFscyhjb25zdCBDU1NGcmFtZXNUaW1pbmdGdW5jdGlvblZhbHVl
JiBvdGhlcikgY29uc3QKQEAgLTkzLDcgKzk5LDkgQEAgU3RyaW5nIENTU1NwcmluZ1RpbWluZ0Z1
bmN0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIGJ1aWxkZXIuYXBwZW5kKCcg
Jyk7CiAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV9pbml0aWFsVmVsb2NpdHkpOwogICAgIGJ1
aWxkZXIuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTU3ByaW5nVGltaW5nRnVuY3Rpb25WYWx1
ZTo6ZXF1YWxzKGNvbnN0IENTU1NwcmluZ1RpbWluZ0Z1bmN0aW9uVmFsdWUmIG90aGVyKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0LmNwcAppbmRleCBiNmUwYzJjNS4uMzA5MGUzMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAKQEAgLTEwNyw3ICsxMDcsOSBAQCBTdHJp
bmcgQ1NTVmFsdWVMaXN0OjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFw
cGVuZCh2YWx1ZS5nZXQoKS5jc3NUZXh0KCkpOwogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDU1NWYWx1ZUxp
c3Q6OmVxdWFscyhjb25zdCBDU1NWYWx1ZUxpc3QmIG90aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhcmlhYmxlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVmFyaWFibGVEYXRhLmNwcAppbmRleCA5OGM5ZDA5Li4zMTE4ZGU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFyaWFibGVEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVmFyaWFibGVEYXRhLmNwcApAQCAtNjgsNyArNjgsMTAgQEAgdm9pZCBDU1NW
YXJpYWJsZURhdGE6OmNvbnN1bWVBbmRVcGRhdGVUb2tlbnMoY29uc3QgQ1NTUGFyc2VyVG9rZW5S
YW5nZSYgcmFuZ2UpCiAgICAgICAgIGlmICh0b2tlbi5oYXNTdHJpbmdCYWNraW5nKCkpCiAgICAg
ICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b2tlbi52YWx1ZSgpKTsKICAgICB9Ci0gICAg
bV9iYWNraW5nU3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgbV9iYWNraW5nU3Ry
aW5nID0gKnN0cmluZzsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgaWYgKG1fYmFj
a2luZ1N0cmluZy5pczhCaXQoKSkKICAgICAgICAgdXBkYXRlVG9rZW5zPExDaGFyPihyYW5nZSk7
CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmNwcAppbmRleCA5MTM1
MjM3Li5jZTE1ZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNw
YWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmNwcApAQCAt
ODQsNyArODQsOSBAQCBTdHJpbmcgRE9NQ1NTTmFtZXNwYWNlOjplc2NhcGUoY29uc3QgU3RyaW5n
JiBpZGVudCkKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgc2VyaWFsaXplSWRl
bnRpZmllcihpZGVudCwgYnVpbGRlcik7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9ET01NYXRyaXhSZWFkT25seS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NTWF0
cml4UmVhZE9ubHkuY3BwCmluZGV4IGY3NGI0NjUuLjc4ODIyOGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXhSZWFkT25seS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0RPTU1hdHJpeFJlYWRPbmx5LmNwcApAQCAtNDUwLDcgKzQ1MCw5IEBAIEV4Y2VwdGlvbk9y
PFN0cmluZz4gRE9NTWF0cml4UmVhZE9ubHk6OnRvU3RyaW5nKCkgY29uc3QKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoU3RyaW5nOjpudW1iZXJUb1N0cmluZ0VDTUFTY3JpcHQobV9tYXRyaXgubTQ0
KCkpKTsKICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuIFdURk1vdmUoKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJl
Y2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENT
U09NVmFsdWVMaXN0LmNwcAppbmRleCBlNDk2ODg0Li41ZTk4ZTIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNwcApAQCAtNTQsNyArNTQsOSBA
QCBTdHJpbmcgRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0Ojpjc3NUZXh0KCkgY29uc3QKICAgICAg
ICAgcmVzdWx0LmFwcGVuZCh2YWx1ZS5nZXQoKS5jc3NUZXh0KCkpOwogICAgIH0KICAgICAKLSAg
ICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwCmluZGV4IDU4MWY1ZTguLmMyNTg2YTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0ZvbnRGYWNlLmNwcApAQCAtMzI4LDcgKzMyOCw5IEBAIFN0cmluZyBGb250RmFjZTo6c3R5
bGUoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgICAgICBidWlsZGVy
LmFwcGVuZChtYXhpbXVtTm9uS2V5d29yZC0+b2JsaXF1ZVZhbHVlLT5jc3NUZXh0KCkpOwogICAg
IH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogU3RyaW5nIEZvbnRGYWNlOjp3ZWlnaHQoKSBjb25zdApAQCAtMzQ5LDcgKzM1MSw5
IEBAIFN0cmluZyBGb250RmFjZTo6d2VpZ2h0KCkgY29uc3QKICAgICBidWlsZGVyLmFwcGVuZCht
aW5pbXVtTm9uS2V5d29yZC0+Y3NzVGV4dCgpKTsKICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwog
ICAgIGJ1aWxkZXIuYXBwZW5kKG1heGltdW1Ob25LZXl3b3JkLT5jc3NUZXh0KCkpOwotICAgIHJl
dHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBT
dHJpbmcgRm9udEZhY2U6OnN0cmV0Y2goKSBjb25zdApAQCAtMzcwLDcgKzM3NCw5IEBAIFN0cmlu
ZyBGb250RmFjZTo6c3RyZXRjaCgpIGNvbnN0CiAgICAgYnVpbGRlci5hcHBlbmQobWluaW11bU5v
bktleXdvcmQtPmNzc1RleHQoKSk7CiAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICBidWls
ZGVyLmFwcGVuZChtYXhpbXVtTm9uS2V5d29yZC0+Y3NzVGV4dCgpKTsKLSAgICByZXR1cm4gYnVp
bGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIEZv
bnRGYWNlOjp1bmljb2RlUmFuZ2UoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL01lZGlhTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcAppbmRl
eCA0NTc1MGFmLi40MjY5NDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFM
aXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcApAQCAtMTUxLDcg
KzE1MSw5IEBAIFN0cmluZyBNZWRpYVF1ZXJ5U2V0OjptZWRpYVRleHQoKSBjb25zdAogICAgICAg
ICB0ZXh0LmFwcGVuZChxdWVyeS5jc3NUZXh0KCkpOwogICAgICAgICBuZWVkQ29tbWEgPSB0cnVl
OwogICAgIH0KLSAgICByZXR1cm4gdGV4dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHRleHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogdm9pZCBNZWRpYVF1ZXJ5U2V0OjpzaHJpbmtUb0ZpdCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVk
aWFRdWVyeS5jcHAKaW5kZXggOWQwYmFkZi4uNDA3MGQ3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1
ZXJ5LmNwcApAQCAtNjYsNyArNjYsOSBAQCBTdHJpbmcgTWVkaWFRdWVyeTo6c2VyaWFsaXplKCkg
Y29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZChleHByZXNzaW9uLnNlcmlhbGl6ZSgpKTsKICAg
ICAgICAgbmVlZHNBbmQgPSB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIE1lZGlhUXVlcnk6Ok1lZGlhUXVlcnko
UmVzdHJpY3RvciByZXN0cmljdG9yLCBjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSwgVmVjdG9yPE1l
ZGlhUXVlcnlFeHByZXNzaW9uPiYmIGV4cHJlc3Npb25zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAKaW5kZXggMmQ4ZTVmMC4uZTBhMjJmMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwCkBAIC0yNDQsNyArMjQ0LDEw
IEBAIFN0cmluZyBNZWRpYVF1ZXJ5RXhwcmVzc2lvbjo6c2VyaWFsaXplKCkgY29uc3QKICAgICB9
CiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwogCi0gICAgbV9zZXJpYWxpemF0aW9uQ2FjaGUgPSBy
ZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmco
KSkKKyAgICAgICAgbV9zZXJpYWxpemF0aW9uQ2FjaGUgPSAqc3RyaW5nOworICAgIGVsc2UKKyAg
ICAgICAgQ1JBU0goKTsKICAgICByZXR1cm4gbV9zZXJpYWxpemF0aW9uQ2FjaGU7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
UmVjdC5oCmluZGV4IGVjMWFhZTguLmRmYWUxNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9SZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1JlY3QuaApAQCAtMTAzLDcgKzEw
Myw5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3Bl
cnRpZXMuY3BwCmluZGV4IDNjOGNlNDMuLmJmZjE3MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVByb3BlcnRpZXMuY3BwCkBAIC0zNDMsNyArMzQzLDkgQEAgU3RyaW5nIFN0eWxlUHJvcGVydGll
czo6Zm9udFZhbHVlKCkgY29uc3QKICAgICByZXN1bHQuYXBwZW5kKGZvbnRGYW1pbHlQcm9wZXJ0
eS52YWx1ZSgpLT5jc3NUZXh0KCkpOwogICAgIGlmIChpc0luaXRpYWxPckluaGVyaXQoY29tbW9u
VmFsdWUpKQogICAgICAgICByZXR1cm4gY29tbW9uVmFsdWU7Ci0gICAgcmV0dXJuIHJlc3VsdC50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgU3R5bGVQcm9w
ZXJ0aWVzOjpnZXQ0VmFsdWVzKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHNob3J0aGFu
ZCkgY29uc3QKQEAgLTM5Nyw3ICszOTksOSBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpnZXQ0
VmFsdWVzKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHNob3J0aGFuZCkgY29ucwogICAg
ICAgICByZXN1bHQuYXBwZW5kKCcgJyk7CiAgICAgICAgIHJlc3VsdC5hcHBlbmQobGVmdC52YWx1
ZSgpLT5jc3NUZXh0KCkpOwogICAgIH0KLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldExh
eWVyZWRTaG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBzaG9ydGhh
bmQpIGNvbnN0CkBAIC01NDMsNyArNTQ3LDkgQEAgU3RyaW5nIFN0eWxlUHJvcGVydGllczo6Z2V0
TGF5ZXJlZFNob3J0aGFuZFZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHMKIAog
ICAgIGlmIChyZXN1bHQuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0gICAg
cmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBT
dHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpnZXRTaG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVByb3Bl
cnR5U2hvcnRoYW5kJiBzaG9ydGhhbmQpIGNvbnN0CkBAIC01NzIsNyArNTc4LDkgQEAgU3RyaW5n
IFN0eWxlUHJvcGVydGllczo6Z2V0U2hvcnRoYW5kVmFsdWUoY29uc3QgU3R5bGVQcm9wZXJ0eVNo
b3J0aGFuZCYgc2hvcnRoYW4KICAgICAgICAgcmV0dXJuIGNvbW1vblZhbHVlOwogICAgIGlmIChy
ZXN1bHQuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0gICAgcmV0dXJuIHJl
c3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiAvLyBvbmx5IHJl
dHVybnMgYSBub24tbnVsbCB2YWx1ZSBpZiBhbGwgcHJvcGVydGllcyBoYXZlIHRoZSBzYW1lLCBu
b24tbnVsbCB2YWx1ZQpAQCAtNjM0LDcgKzY0MiwxMSBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVz
Ojpib3JkZXJQcm9wZXJ0eVZhbHVlKENvbW1vblZhbHVlTW9kZSB2YWx1ZU1vZGUpIGNvbnN0CiAg
ICAgfQogICAgIGlmIChpc0luaXRpYWxPckluaGVyaXQoY29tbW9uVmFsdWUpKQogICAgICAgICBy
ZXR1cm4gY29tbW9uVmFsdWU7Ci0gICAgcmV0dXJuIHJlc3VsdC5pc0VtcHR5KCkgPyBTdHJpbmco
KSA6IHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChyZXN1bHQuaXNFbXB0eSgpKQorICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFJlZlB0cjxD
U1NWYWx1ZT4gU3R5bGVQcm9wZXJ0aWVzOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5
SUQgcHJvcGVydHlJRCkgY29uc3QKQEAgLTExNDYsNyArMTE1OCw5IEBAIFN0cmluZyBTdHlsZVBy
b3BlcnRpZXM6OmFzVGV4dCgpIGNvbnN0CiAgICAgfQogCiAgICAgQVNTRVJUKCFudW1EZWNscyBe
ICFyZXN1bHQuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgU3R5bGVQcm9wZXJ0aWVzOjpoYXNDU1NPTVdy
YXBwZXIoKSBjb25zdApAQCAtMTQwMyw3ICsxNDE3LDkgQEAgU3RyaW5nIFN0eWxlUHJvcGVydGll
czo6UHJvcGVydHlSZWZlcmVuY2U6OmNzc1RleHQoKSBjb25zdAogICAgIGlmIChpc0ltcG9ydGFu
dCgpKQogICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiICFpbXBvcnRhbnQiKTsKICAgICBy
ZXN1bHQuYXBwZW5kKCc7Jyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogICAgIAogUmVmPERlZmVycmVkU3R5bGVQcm9wZXJ0aWVzPiBE
ZWZlcnJlZFN0eWxlUHJvcGVydGllczo6Y3JlYXRlKGNvbnN0IENTU1BhcnNlclRva2VuUmFuZ2Um
IHRva2VuUmFuZ2UsIENTU0RlZmVycmVkUGFyc2VyJiBwYXJzZXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9X
ZWJLaXRDU1NNYXRyaXguY3BwCmluZGV4IDdiZGU2NGQuLjFmNzhkMTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwCkBAIC0yNDksNyArMjQ5LDkgQEAgRXhjZXB0aW9uT3I8
U3RyaW5nPiBXZWJLaXRDU1NNYXRyaXg6OnRvU3RyaW5nKCkgY29uc3QKICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoU3RyaW5nOjpudW1iZXJUb1N0cmluZ0VDTUFTY3JpcHQobV9tYXRyaXgubTQ0KCkp
KTsKICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuIFdURk1vdmUoKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENT
U1ZpZXdwb3J0UnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRS
dWxlLmNwcAppbmRleCBjYmQxNzJmLi5kZTZlYzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
V2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcApAQCAtNzIsNyArNzIsOSBAQCBTdHJpbmcgV2ViS2l0
Q1NTVmlld3BvcnRSdWxlOjpjc3NUZXh0KCkgY29uc3QKIAogICAgIHJlc3VsdC5hcHBlbmQoJ30n
KTsKIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogdm9pZCBXZWJLaXRDU1NWaWV3cG9ydFJ1bGU6OnJlYXR0YWNoKFN0eWxlUnVsZUJh
c2UmIHJ1bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAKaW5kZXggOTU0
YWIwOC4uZWNiZmFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
YXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcApA
QCAtMjk5LDEwICsyOTksMTMgQEAgUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlRm9u
dEZhY2VEZXNjcmlwdG9yKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgY28KICAgICBidWlsZGVy
LmFwcGVuZExpdGVyYWwoIiA6ICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKHByb3BlcnR5VmFsdWUp
OwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiOyB9Iik7Ci0gICAgUmVmUHRyPFN0eWxlUnVs
ZUJhc2U+IHJ1bGUgPSBwYXJzZVJ1bGUoY29udGV4dCwgbnVsbHB0ciwgYnVpbGRlci50b1N0cmlu
ZygpKTsKLSAgICBpZiAoIXJ1bGUgfHwgIXJ1bGUtPmlzRm9udEZhY2VSdWxlKCkpCi0gICAgICAg
IHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBkb3duY2FzdDxTdHlsZVJ1bGVGb250RmFjZT4o
KnJ1bGUuZ2V0KCkpLnByb3BlcnRpZXMoKS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHByb3BlcnR5SUQp
OworICAgIGlmIChhdXRvIHN0cmluZyAgPSBidWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAg
UmVmUHRyPFN0eWxlUnVsZUJhc2U+IHJ1bGUgPSBwYXJzZVJ1bGUoY29udGV4dCwgbnVsbHB0ciwg
KnN0cmluZyk7CisgICAgICAgIGlmICghcnVsZSB8fCAhcnVsZS0+aXNGb250RmFjZVJ1bGUoKSkK
KyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gZG93bmNhc3Q8U3R5
bGVSdWxlRm9udEZhY2U+KCpydWxlLmdldCgpKS5wcm9wZXJ0aWVzKCkuZ2V0UHJvcGVydHlDU1NW
YWx1ZShwcm9wZXJ0eUlEKTsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmNwcAppbmRleCA3YjhlNjAzLi41ZDEw
MTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2Vu
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmNwcApA
QCAtMzkyLDcgKzM5Miw4IEBAIHZvaWQgQ1NTUGFyc2VyVG9rZW46OnNlcmlhbGl6ZShTdHJpbmdC
dWlsZGVyJiBidWlsZGVyKSBjb25zdAogICAgICAgICBicmVhazsKICAgICBjYXNlIEZ1bmN0aW9u
VG9rZW46CiAgICAgICAgIHNlcmlhbGl6ZUlkZW50aWZpZXIodmFsdWUoKS50b1N0cmluZygpLCBi
dWlsZGVyKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCcoJyk7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCcoJyk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEF0S2V5d29yZFRv
a2VuOgogICAgICAgICBidWlsZGVyLmFwcGVuZCgnQCcpOwogICAgICAgICBzZXJpYWxpemVJZGVu
dGlmaWVyKHZhbHVlKCkudG9TdHJpbmcoKSwgYnVpbGRlcik7CkBAIC00MDQsNjkgKzQwNSw5NyBA
QCB2b2lkIENTU1BhcnNlclRva2VuOjpzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYgYnVpbGRlcikg
Y29uc3QKICAgICBjYXNlIFVybFRva2VuOgogICAgICAgICBidWlsZGVyLmFwcGVuZCgidXJsKCIp
OwogICAgICAgICBzZXJpYWxpemVJZGVudGlmaWVyKHZhbHVlKCkudG9TdHJpbmcoKSwgYnVpbGRl
cik7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgnKScpOworICAgICAgICBidWlsZGVy
LmFwcGVuZCgnKScpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBEZWxpbWl0ZXJUb2tlbjoK
LSAgICAgICAgaWYgKGRlbGltaXRlcigpID09ICdcXCcpCi0gICAgICAgICAgICByZXR1cm4gYnVp
bGRlci5hcHBlbmQoIlxcXG4iKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKGRlbGlt
aXRlcigpKTsKKyAgICAgICAgaWYgKGRlbGltaXRlcigpID09ICdcXCcpIHsKKyAgICAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCJcXFxuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyAgICAgICAgYnVpbGRlci5hcHBlbmQoZGVsaW1pdGVyKCkpOworICAgICAgICByZXR1cm47CiAg
ICAgY2FzZSBOdW1iZXJUb2tlbjoKICAgICAgICAgLy8gVGhlc2Ugd29uJ3QgcHJvcGVybHkgcHJl
c2VydmUgdGhlIE51bWVyaWNWYWx1ZVR5cGUgZmxhZwogICAgICAgICBpZiAobV9udW1lcmljU2ln
biA9PSBQbHVzU2lnbikKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcrJyk7Ci0gICAgICAg
IHJldHVybiBidWlsZGVyLmFwcGVuZE51bWJlcihudW1lcmljVmFsdWUoKSk7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kTnVtYmVyKG51bWVyaWNWYWx1ZSgpKTsKKyAgICAgICAgcmV0dXJuOwogICAg
IGNhc2UgUGVyY2VudGFnZVRva2VuOgogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihudW1l
cmljVmFsdWUoKSk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgnJScpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZCgnJScpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBEaW1lbnNp
b25Ub2tlbjoKICAgICAgICAgLy8gVGhpcyB3aWxsIGluY29ycmVjdGx5IHNlcmlhbGl6ZSBlLmcu
IDRlM2UyIGFzIDQwMDBlMgogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihudW1lcmljVmFs
dWUoKSk7CiAgICAgICAgIHNlcmlhbGl6ZUlkZW50aWZpZXIodmFsdWUoKS50b1N0cmluZygpLCBi
dWlsZGVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBVbmljb2RlUmFuZ2VUb2tlbjoKLSAg
ICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKFN0cmluZzo6Zm9ybWF0KCJVKyVYLSVYIiwgdW5p
Y29kZVJhbmdlU3RhcnQoKSwgdW5pY29kZVJhbmdlRW5kKCkpKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQoU3RyaW5nOjpmb3JtYXQoIlUrJVgtJVgiLCB1bmljb2RlUmFuZ2VTdGFydCgpLCB1bmlj
b2RlUmFuZ2VFbmQoKSkpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBTdHJpbmdUb2tlbjoK
LSAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVN0cmluZyh2YWx1ZSgpLnRvU3RyaW5nKCksIGJ1aWxk
ZXIpOworICAgICAgICBzZXJpYWxpemVTdHJpbmcodmFsdWUoKS50b1N0cmluZygpLCBidWlsZGVy
KTsKKyAgICAgICAgcmV0dXJuOwogCiAgICAgY2FzZSBJbmNsdWRlTWF0Y2hUb2tlbjoKLSAgICAg
ICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCJ+PSIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgi
fj0iKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRGFzaE1hdGNoVG9rZW46Ci0gICAgICAg
IHJldHVybiBidWlsZGVyLmFwcGVuZCgifD0iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoInw9
Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFByZWZpeE1hdGNoVG9rZW46Ci0gICAgICAg
IHJldHVybiBidWlsZGVyLmFwcGVuZCgiXj0iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIl49
Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFN1ZmZpeE1hdGNoVG9rZW46Ci0gICAgICAg
IHJldHVybiBidWlsZGVyLmFwcGVuZCgiJD0iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIiQ9
Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFN1YnN0cmluZ01hdGNoVG9rZW46Ci0gICAg
ICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgiKj0iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQo
Iio9Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIENvbHVtblRva2VuOgotICAgICAgICBy
ZXR1cm4gYnVpbGRlci5hcHBlbmQoInx8Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJ8fCIp
OworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBDRE9Ub2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1
aWxkZXIuYXBwZW5kKCI8IS0tIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCI8IS0tIik7Cisg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIENEQ1Rva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRl
ci5hcHBlbmQoIi0tPiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiLS0+Iik7CisgICAgICAg
IHJldHVybjsKICAgICBjYXNlIEJhZFN0cmluZ1Rva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRl
ci5hcHBlbmQoIidcbiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiJ1xuIik7CisgICAgICAg
IHJldHVybjsKICAgICBjYXNlIEJhZFVybFRva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5h
cHBlbmQoInVybCgoKSIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgidXJsKCgpIik7CisgICAg
ICAgIHJldHVybjsKICAgICBjYXNlIFdoaXRlc3BhY2VUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1
aWxkZXIuYXBwZW5kKCcgJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CisgICAgICAg
IHJldHVybjsKICAgICBjYXNlIENvbG9uVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFw
cGVuZCgnOicpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnOicpOworICAgICAgICByZXR1cm47
CiAgICAgY2FzZSBTZW1pY29sb25Ub2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5k
KCc7Jyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCc7Jyk7CisgICAgICAgIHJldHVybjsKICAg
ICBjYXNlIENvbW1hVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgnLCcpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZCgnLCcpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBM
ZWZ0UGFyZW50aGVzaXNUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCcoJyk7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcoJyk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNl
IFJpZ2h0UGFyZW50aGVzaXNUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCcp
Jyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7CisgICAgICAgIHJldHVybjsKICAgICBj
YXNlIExlZnRCcmFja2V0VG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgnWycp
OworICAgICAgICBidWlsZGVyLmFwcGVuZCgnWycpOworICAgICAgICByZXR1cm47CiAgICAgY2Fz
ZSBSaWdodEJyYWNrZXRUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCddJyk7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCddJyk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNl
IExlZnRCcmFjZVRva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJ3snKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQoJ3snKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgUmln
aHRCcmFjZVRva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoJ30nKTsKKyAgICAg
ICAgYnVpbGRlci5hcHBlbmQoJ30nKTsKKyAgICAgICAgcmV0dXJuOwogCiAgICAgY2FzZSBFT0ZU
b2tlbjoKICAgICBjYXNlIENvbW1lbnRUb2tlbjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW5SYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1BhcnNlclRva2VuUmFuZ2UuY3BwCmluZGV4IGNiOWM1ODAuLmVmZTVhMmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW5SYW5nZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlblJhbmdlLmNw
cApAQCAtMTEzLDcgKzExMyw5IEBAIFN0cmluZyBDU1NQYXJzZXJUb2tlblJhbmdlOjpzZXJpYWxp
emUoKSBjb25zdAogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBmb3IgKGNvbnN0IENT
U1BhcnNlclRva2VuKiBpdCA9IG1fZmlyc3Q7IGl0IDwgbV9sYXN0OyArK2l0KQogICAgICAgICBp
dC0+c2VyaWFsaXplKGJ1aWxkZXIpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCmluZGV4IGJj
ZWNlNzAuLjMwOTA3NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UHJvcGVydHlQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJv
cGVydHlQYXJzZXIuY3BwCkBAIC0xMDE2LDcgKzEwMTYsOSBAQCBzdGF0aWMgU3RyaW5nIGNvbmNh
dGVuYXRlRmFtaWx5TmFtZShDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKICAgICB9CiAgICAg
aWYgKCFhZGRlZFNwYWNlICYmIGlzQ1NTV2lkZUtleXdvcmQoZmlyc3RUb2tlbi5pZCgpKSkKICAg
ICAgICAgcmV0dXJuIFN0cmluZygpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25z
dW1lRmFtaWx5TmFtZShDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKQEAgLTMyNjQsNyArMzI2
NiwxMCBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gcGFyc2VHcmlkVGVtcGxhdGVBcmVhc0NvbHVt
bk5hbWVzKGNvbnN0IFN0cmluZyYgZ3JpZFJvd05hbQogICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCB0ZXh0Lmxlbmd0aCgpOyArK2kpIHsKICAgICAgICAgaWYgKGlzQ1NTU3BhY2UodGV4dFtp
XSkpIHsKICAgICAgICAgICAgIGlmICghYXJlYU5hbWUuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAg
ICAgICAgY29sdW1uTmFtZXMuYXBwZW5kKGFyZWFOYW1lLnRvU3RyaW5nKCkpOworICAgICAgICAg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGFyZWFOYW1lLnRvU3RyaW5nKCkpCisgICAgICAgICAg
ICAgICAgICAgIGNvbHVtbk5hbWVzLmFwcGVuZCgqc3RyaW5nKTsKKyAgICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAgICAgYXJlYU5h
bWUuY2xlYXIoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMzI3
MywxNCArMzI3OCwyMCBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gcGFyc2VHcmlkVGVtcGxhdGVB
cmVhc0NvbHVtbk5hbWVzKGNvbnN0IFN0cmluZyYgZ3JpZFJvd05hbQogICAgICAgICAgICAgaWYg
KGFyZWFOYW1lID09ICIuIikKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAg
IGlmICghYXJlYU5hbWUuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgY29sdW1uTmFtZXMu
YXBwZW5kKGFyZWFOYW1lLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IGFyZWFOYW1lLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbHVtbk5h
bWVzLmFwcGVuZCgqc3RyaW5nKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAgICAgYXJlYU5hbWUuY2xlYXIoKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmICghaXNOYW1lQ29kZVBv
aW50KHRleHRbaV0pKQogICAgICAgICAgICAgICAgIHJldHVybiBWZWN0b3I8U3RyaW5nPigpOwog
ICAgICAgICAgICAgaWYgKGFyZWFOYW1lID09ICIuIikgewotICAgICAgICAgICAgICAgIGNvbHVt
bk5hbWVzLmFwcGVuZChhcmVhTmFtZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICBpZiAo
YXV0byBzdHJpbmcgPSBhcmVhTmFtZS50b1N0cmluZygpKQorICAgICAgICAgICAgICAgICAgICBj
b2x1bW5OYW1lcy5hcHBlbmQoKnN0cmluZyk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgICAgIGFyZWFOYW1lLmNsZWFyKCk7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTMyODgsOCArMzI5OSwxMiBAQCBzdGF0aWMg
VmVjdG9yPFN0cmluZz4gcGFyc2VHcmlkVGVtcGxhdGVBcmVhc0NvbHVtbk5hbWVzKGNvbnN0IFN0
cmluZyYgZ3JpZFJvd05hbQogICAgICAgICBhcmVhTmFtZS5hcHBlbmQodGV4dFtpXSk7CiAgICAg
fQogCi0gICAgaWYgKCFhcmVhTmFtZS5pc0VtcHR5KCkpCi0gICAgICAgIGNvbHVtbk5hbWVzLmFw
cGVuZChhcmVhTmFtZS50b1N0cmluZygpKTsKKyAgICBpZiAoIWFyZWFOYW1lLmlzRW1wdHkoKSkg
eworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBhcmVhTmFtZS50b1N0cmluZygpKQorICAgICAg
ICAgICAgY29sdW1uTmFtZXMuYXBwZW5kKCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBDUkFTSCgpOworICAgIH0KIAogICAgIHJldHVybiBjb2x1bW5OYW1lczsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTVG9rZW5pemVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTVG9rZW5pemVyLmNwcAppbmRleCAxZjFhMjNlLi4zYjg0
ZTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Rva2VuaXplci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NUb2tlbml6ZXIuY3BwCkBAIC02
MDUsOCArNjA1LDExIEBAIENTU1BhcnNlclRva2VuIENTU1Rva2VuaXplcjo6Y29uc3VtZVN0cmlu
Z1Rva2VuVW50aWwoVUNoYXIgZW5kaW5nQ29kZVBvaW50KQogICAgIFN0cmluZ0J1aWxkZXIgb3V0
cHV0OwogICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgIFVDaGFyIGNjID0gY29uc3VtZSgpOwot
ICAgICAgICBpZiAoY2MgPT0gZW5kaW5nQ29kZVBvaW50IHx8IGNjID09IGtFbmRPZkZpbGVNYXJr
ZXIpCi0gICAgICAgICAgICByZXR1cm4gQ1NTUGFyc2VyVG9rZW4oU3RyaW5nVG9rZW4sIHJlZ2lz
dGVyU3RyaW5nKG91dHB1dC50b1N0cmluZygpKSk7CisgICAgICAgIGlmIChjYyA9PSBlbmRpbmdD
b2RlUG9pbnQgfHwgY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgeworICAgICAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gb3V0cHV0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIENT
U1BhcnNlclRva2VuKFN0cmluZ1Rva2VuLCByZWdpc3RlclN0cmluZygqc3RyaW5nKSk7CisgICAg
ICAgICAgICBDUkFTSCgpOworICAgICAgICB9CiAgICAgICAgIGlmIChpc05ld0xpbmUoY2MpKSB7
CiAgICAgICAgICAgICByZWNvbnN1bWUoY2MpOwogICAgICAgICAgICAgcmV0dXJuIENTU1BhcnNl
clRva2VuKEJhZFN0cmluZ1Rva2VuKTsKQEAgLTY4MCwxMyArNjgzLDE5IEBAIENTU1BhcnNlclRv
a2VuIENTU1Rva2VuaXplcjo6Y29uc3VtZVVybFRva2VuKCkKICAgICBTdHJpbmdCdWlsZGVyIHJl
c3VsdDsKICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICBVQ2hhciBjYyA9IGNvbnN1bWUoKTsK
LSAgICAgICAgaWYgKGNjID09ICcpJyB8fCBjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKQotICAgICAg
ICAgICAgcmV0dXJuIENTU1BhcnNlclRva2VuKFVybFRva2VuLCByZWdpc3RlclN0cmluZyhyZXN1
bHQudG9TdHJpbmcoKSkpOworICAgICAgICBpZiAoY2MgPT0gJyknIHx8IGNjID09IGtFbmRPZkZp
bGVNYXJrZXIpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmlu
ZygpKQorICAgICAgICAgICAgICAgIHJldHVybiBDU1NQYXJzZXJUb2tlbihVcmxUb2tlbiwgcmVn
aXN0ZXJTdHJpbmcoKnN0cmluZykpOworICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgfQog
CiAgICAgICAgIGlmIChpc0hUTUxTcGFjZShjYykpIHsKICAgICAgICAgICAgIG1faW5wdXQuYWR2
YW5jZVVudGlsTm9uV2hpdGVzcGFjZSgpOwotICAgICAgICAgICAgaWYgKGNvbnN1bWVJZk5leHQo
JyknKSB8fCBtX2lucHV0Lm5leHRJbnB1dENoYXIoKSA9PSBrRW5kT2ZGaWxlTWFya2VyKQotICAg
ICAgICAgICAgICAgIHJldHVybiBDU1NQYXJzZXJUb2tlbihVcmxUb2tlbiwgcmVnaXN0ZXJTdHJp
bmcocmVzdWx0LnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgIGlmIChjb25zdW1lSWZOZXh0KCcp
JykgfHwgbV9pbnB1dC5uZXh0SW5wdXRDaGFyKCkgPT0ga0VuZE9mRmlsZU1hcmtlcikgeworICAg
ICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gQ1NTUGFyc2VyVG9rZW4oVXJsVG9rZW4sIHJlZ2lzdGVyU3Ry
aW5nKCpzdHJpbmcpKTsKKyAgICAgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICAgICAgfQog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApAQCAtNzkxLDcgKzgwMCw5IEBAIFN0cmlu
Z1ZpZXcgQ1NTVG9rZW5pemVyOjpjb25zdW1lTmFtZSgpCiAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgfQogICAgICAgICByZWNvbnN1bWUoY2MpOwotICAgICAgICByZXR1cm4gcmVnaXN0
ZXJTdHJpbmcocmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBy
ZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiByZWdpc3RlclN0cmluZygqc3Ry
aW5nKTsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9CiAKQEAgLTgxMSwxMSArODIyLDE0IEBA
IFVDaGFyMzIgQ1NTVG9rZW5pemVyOjpjb25zdW1lRXNjYXBlKCkKICAgICAgICAgfTsKICAgICAg
ICAgY29uc3VtZVNpbmdsZVdoaXRlc3BhY2VJZk5leHQoKTsKICAgICAgICAgYm9vbCBvayA9IGZh
bHNlOwotICAgICAgICBVQ2hhcjMyIGNvZGVQb2ludCA9IGhleENoYXJzLnRvU3RyaW5nKCkudG9V
SW50U3RyaWN0KCZvaywgMTYpOwotICAgICAgICBBU1NFUlQob2spOwotICAgICAgICBpZiAoIWNv
ZGVQb2ludCB8fCAoMHhEODAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhERkZGKSB8
fCBjb2RlUG9pbnQgPiAweDEwRkZGRikKLSAgICAgICAgICAgIHJldHVybiByZXBsYWNlbWVudENo
YXJhY3RlcjsKLSAgICAgICAgcmV0dXJuIGNvZGVQb2ludDsKKyAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gaGV4Q2hhcnMudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgVUNoYXIzMiBjb2RlUG9p
bnQgPSBzdHJpbmctPnRvVUludFN0cmljdCgmb2ssIDE2KTsKKyAgICAgICAgICAgIEFTU0VSVChv
ayk7CisgICAgICAgICAgICBpZiAoIWNvZGVQb2ludCB8fCAoMHhEODAwIDw9IGNvZGVQb2ludCAm
JiBjb2RlUG9pbnQgPD0gMHhERkZGKSB8fCBjb2RlUG9pbnQgPiAweDEwRkZGRikKKyAgICAgICAg
ICAgICAgICByZXR1cm4gcmVwbGFjZW1lbnRDaGFyYWN0ZXI7CisgICAgICAgICAgICByZXR1cm4g
Y29kZVBvaW50OworICAgICAgICB9CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgaWYg
KGNjID09IGtFbmRPZkZpbGVNYXJrZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RGF0YXNldERPTVN0cmluZ01hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0
cmluZ01hcC5jcHAKaW5kZXggZjJkODQyMC4uZDU2NjdiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcApAQCAtNjUsNyArNjUsOSBAQCBzdGF0aWMgU3RyaW5n
IGNvbnZlcnRBdHRyaWJ1dGVOYW1lVG9Qcm9wZXJ0eU5hbWUoY29uc3QgU3RyaW5nJiBuYW1lKQog
ICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBib29sIHByb3BlcnR5
TmFtZU1hdGNoZXNBdHRyaWJ1dGVOYW1lKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBjb25z
dCBTdHJpbmcmIGF0dHJpYnV0ZU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggYTQzMjM5
Ny4uNGY2YzdiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMjE5Nyw3ICsyMTk3LDEwIEBA
IHZvaWQgRWxlbWVudDo6Zm9ybWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBs
ZW5ndGgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQocyk7CiAgICAgfQogCi0gICAgc3Ry
bmNweShidWZmZXIsIHJlc3VsdC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBzdHJu
Y3B5KGJ1ZmZlciwgc3RyaW5nLT51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsKKyAgICBlbHNl
CisgICAgICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGJiYTY3
OGEyLi43NTNkZjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0xNTIwLDcgKzE1MjAsOSBAQCBTdHJp
bmcgTm9kZTo6dGV4dENvbnRlbnQoYm9vbCBjb252ZXJ0QlJzVG9OZXdsaW5lcykgY29uc3QKICAg
ICBTdHJpbmdCdWlsZGVyIGNvbnRlbnQ7CiAgICAgYm9vbCBpc051bGxTdHJpbmcgPSB0cnVlOwog
ICAgIGFwcGVuZFRleHRDb250ZW50KHRoaXMsIGNvbnZlcnRCUnNUb05ld2xpbmVzLCBpc051bGxT
dHJpbmcsIGNvbnRlbnQpOwotICAgIHJldHVybiBpc051bGxTdHJpbmcgPyBTdHJpbmcoKSA6IGNv
bnRlbnQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBjb250ZW50LnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiBpc051bGxTdHJpbmcgPyBTdHJpbmcoKSA6ICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gTm9kZTo6c2V0VGV4dENvbnRlbnQo
Y29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtMTczMSw3ICsxNzMzLDEwIEBAIHZvaWQgTm9kZTo6c2hv
d05vZGUoY29uc3QgY2hhciogcHJlZml4KSBjb25zdAogICAgICAgICBTdHJpbmdCdWlsZGVyIGF0
dHJzOwogICAgICAgICBhcHBlbmRBdHRyaWJ1dGVEZXNjKHRoaXMsIGF0dHJzLCBjbGFzc0F0dHIs
ICIgQ0xBU1M9Iik7CiAgICAgICAgIGFwcGVuZEF0dHJpYnV0ZURlc2ModGhpcywgYXR0cnMsIHN0
eWxlQXR0ciwgIiBTVFlMRT0iKTsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICIlcyVzXHQlcCAo
cmVuZGVyZXIgJXApICVzJXMlc1xuIiwgcHJlZml4LCBub2RlTmFtZSgpLnV0ZjgoKS5kYXRhKCks
IHRoaXMsIHJlbmRlcmVyKCksIGF0dHJzLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbmVlZHNT
dHlsZVJlY2FsYygpID8gIiAobmVlZHMgc3R5bGUgcmVjYWxjKSIgOiAiIiwgY2hpbGROZWVkc1N0
eWxlUmVjYWxjKCkgPyAiIChjaGlsZCBuZWVkcyBzdHlsZSByZWNhbGMpIiA6ICIiKTsKKyAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYXR0cnMudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGZwcmlu
dGYoc3RkZXJyLCAiJXMlc1x0JXAgKHJlbmRlcmVyICVwKSAlcyVzJXNcbiIsIHByZWZpeCwgbm9k
ZU5hbWUoKS51dGY4KCkuZGF0YSgpLCB0aGlzLCByZW5kZXJlcigpLCBzdHJpbmctPnV0ZjgoKS5k
YXRhKCksIG5lZWRzU3R5bGVSZWNhbGMoKSA/ICIgKG5lZWRzIHN0eWxlIHJlY2FsYykiIDogIiIs
IGNoaWxkTmVlZHNTdHlsZVJlY2FsYygpID8gIiAoY2hpbGQgbmVlZHMgc3R5bGUgcmVjYWxjKSIg
OiAiIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogfQogCkBA
IC0xODAzLDEyICsxODA4LDE5IEBAIHN0YXRpYyB2b2lkIHRyYXZlcnNlVHJlZUFuZE1hcmsoY29u
c3QgU3RyaW5nJiBiYXNlSW5kZW50LCBjb25zdCBOb2RlKiByb290Tm9kZSwKICAgICAgICAgaW5k
ZW50LmFwcGVuZChiYXNlSW5kZW50KTsKICAgICAgICAgZm9yIChjb25zdCBOb2RlKiB0bXBOb2Rl
ID0gbm9kZTsgdG1wTm9kZSAmJiB0bXBOb2RlICE9IHJvb3ROb2RlOyB0bXBOb2RlID0gdG1wTm9k
ZS0+cGFyZW50T3JTaGFkb3dIb3N0Tm9kZSgpKQogICAgICAgICAgICAgaW5kZW50LmFwcGVuZCgn
XHQnKTsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICIlcyIsIGluZGVudC50b1N0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBpbmRlbnQudG9TdHJpbmco
KSkKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMiLCBzdHJpbmctPnV0ZjgoKS5kYXRh
KCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICBub2RlLT5z
aG93Tm9kZSgpOwogICAgICAgICBpbmRlbnQuYXBwZW5kKCdcdCcpOwogICAgICAgICBpZiAoIW5v
ZGUtPmlzU2hhZG93Um9vdCgpKSB7Ci0gICAgICAgICAgICBpZiAoU2hhZG93Um9vdCogc2hhZG93
Um9vdCA9IG5vZGUtPnNoYWRvd1Jvb3QoKSkKLSAgICAgICAgICAgICAgICB0cmF2ZXJzZVRyZWVB
bmRNYXJrKGluZGVudC50b1N0cmluZygpLCBzaGFkb3dSb290LCBtYXJrZWROb2RlMSwgbWFya2Vk
TGFiZWwxLCBtYXJrZWROb2RlMiwgbWFya2VkTGFiZWwyKTsKKyAgICAgICAgICAgIGlmIChTaGFk
b3dSb290KiBzaGFkb3dSb290ID0gbm9kZS0+c2hhZG93Um9vdCgpKSB7CisgICAgICAgICAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gaW5kZW50LnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAg
ICAgIHRyYXZlcnNlVHJlZUFuZE1hcmsoKnN0cmluZywgc2hhZG93Um9vdCwgbWFya2VkTm9kZTEs
IG1hcmtlZExhYmVsMSwgbWFya2VkTm9kZTIsIG1hcmtlZExhYmVsMik7CisgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICAgICAgfQogICAg
ICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKaW5kZXggODlhNTA2Zi4uYTUy
MDE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCkBAIC0xNDE5LDcgKzE0MTksMTAgQEAgdm9p
ZCBQb3NpdGlvbjo6Zm9ybWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBsZW5n
dGgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQocyk7CiAgICAgfQogCi0gICAgc3RybmNw
eShidWZmZXIsIHJlc3VsdC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBzdHJuY3B5
KGJ1ZmZlciwgc3RyaW5nLT51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsKKyAgICBlbHNlCisg
ICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgUG9zaXRpb246OnNob3dBbmNob3JUeXBlQW5kT2Zm
c2V0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCmluZGV4IGE1N2E1ZTIuLjE1OTg3MGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1JhbmdlLmNwcApAQCAtOTQ5LDcgKzk0OSw5IEBAIFN0cmluZyBSYW5nZTo6dG9TdHJpbmco
KSBjb25zdAogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBSYW5nZTo6dG9IVE1MKCkg
Y29uc3QKQEAgLTE1MzUsNyArMTUzNywxMCBAQCB2b2lkIFJhbmdlOjpmb3JtYXRGb3JEZWJ1Z2dl
cihjaGFyKiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3QKICAgICBlbmRDb250YWluZXIo
KS5mb3JtYXRGb3JEZWJ1Z2dlcihzLCBGb3JtYXRCdWZmZXJTaXplKTsKICAgICByZXN1bHQuYXBw
ZW5kKHMpOwogCi0gICAgc3RybmNweShidWZmZXIsIHJlc3VsdC50b1N0cmluZygpLnV0ZjgoKS5k
YXRhKCksIGxlbmd0aCAtIDEpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmlu
ZygpKQorICAgICAgICBzdHJuY3B5KGJ1ZmZlciwgc3RyaW5nLT51dGY4KCkuZGF0YSgpLCBsZW5n
dGggLSAxKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcAppbmRl
eCBjNGQ4NWQ4Li5hNTAzOTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcApAQCAtMTEyLDcgKzExMiw5IEBAIHN0YXRpYyBTdHJp
bmcgdGhyb3R0bGluZ1JlYXNvbnNUb1N0cmluZyhPcHRpb25TZXQ8U2NyaXB0ZWRBbmltYXRpb25D
b250cm9sbGVyOjpUCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnfCcpOwogICAgICAgICBi
dWlsZGVyLmFwcGVuZCh0aHJvdHRsaW5nUmVhc29uVG9TdHJpbmcocmVhc29uKSk7CiAgICAgfQot
ICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5jcHAKaW5kZXggNGY4
ZjFhOC4uMTQ4MjIxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5jcHAKQEAg
LTE1Miw3ICsxNTIsMTAgQEAgU2FuZGJveEZsYWdzIFNlY3VyaXR5Q29udGV4dDo6cGFyc2VTYW5k
Ym94UG9saWN5KGNvbnN0IFN0cmluZyYgcG9saWN5LCBTdHJpbmcmIGkKICAgICAgICAgICAgIHRv
a2VuRXJyb3JzLmFwcGVuZExpdGVyYWwoIiBhcmUgaW52YWxpZCBzYW5kYm94IGZsYWdzLiIpOwog
ICAgICAgICBlbHNlCiAgICAgICAgICAgICB0b2tlbkVycm9ycy5hcHBlbmRMaXRlcmFsKCIgaXMg
YW4gaW52YWxpZCBzYW5kYm94IGZsYWcuIik7Ci0gICAgICAgIGludmFsaWRUb2tlbnNFcnJvck1l
c3NhZ2UgPSB0b2tlbkVycm9ycy50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSB0b2tlbkVycm9ycy50b1N0cmluZygpKQorICAgICAgICAgICAgaW52YWxpZFRva2Vuc0Vycm9y
TWVzc2FnZSA9ICpzdHJpbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAg
ICAgfQogCiAgICAgcmV0dXJuIGZsYWdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCmluZGV4IDczMTVkMTYuLmIz
MjdmNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKQEAgLTExMyw3ICsxMTMsOSBAQCBTdHJpbmcgVGV4dDo6
d2hvbGVUZXh0KCkgY29uc3QKICAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKICAgICBmb3IgKGNv
bnN0IFRleHQqIHRleHQgPSBzdGFydFRleHQ7IHRleHQgIT0gb25lUGFzdEVuZFRleHQ7IHRleHQg
PSBUZXh0Tm9kZVRyYXZlcnNhbDo6bmV4dFNpYmxpbmcoKnRleHQpKQogICAgICAgICByZXN1bHQu
YXBwZW5kKHRleHQtPmRhdGEoKSk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBSZWZQdHI8VGV4dD4gVGV4dDo6cmVwbGFjZVdob2xl
VGV4dChjb25zdCBTdHJpbmcmIG5ld1RleHQpCkBAIC0yNDAsNyArMjQyLDEwIEBAIHZvaWQgVGV4
dDo6Zm9ybWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0
CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyInKTsKICAgICB9CiAKLSAgICBzdHJuY3B5KGJ1ZmZl
ciwgcmVzdWx0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0gMSk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHN0cm5jcHkoYnVmZmVy
LCBzdHJpbmctPnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOworICAgIGVsc2UKKyAgICAgICAg
Q1JBU0goKTsKICAgICBidWZmZXJbbGVuZ3RoIC0gMV0gPSAnXDAnOwogfQogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dE5vZGVUcmF2ZXJzYWwuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL1RleHROb2RlVHJhdmVyc2FsLmNwcAppbmRleCBiNzhjYTc5Li42ZDQxOGQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dE5vZGVUcmF2ZXJzYWwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0Tm9kZVRyYXZlcnNhbC5jcHAKQEAgLTQyLDcgKzQy
LDkgQEAgU3RyaW5nIGNvbnRlbnRzQXNTdHJpbmcoY29uc3QgQ29udGFpbmVyTm9kZSYgcm9vdCkK
IHsKICAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKICAgICBhcHBlbmRDb250ZW50cyhyb290LCBy
ZXN1bHQpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogU3RyaW5nIGNvbnRlbnRzQXNTdHJpbmcoY29uc3QgTm9kZSYgcm9vdCkKQEAg
LTU5LDcgKzYxLDkgQEAgU3RyaW5nIGNoaWxkVGV4dENvbnRlbnQoY29uc3QgQ29udGFpbmVyTm9k
ZSYgcm9vdCkKICAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKICAgICBmb3IgKFRleHQqIHRleHQg
PSBUZXh0Tm9kZVRyYXZlcnNhbDo6Zmlyc3RDaGlsZChyb290KTsgdGV4dDsgdGV4dCA9IFRleHRO
b2RlVHJhdmVyc2FsOjpuZXh0U2libGluZygqdGV4dCkpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQo
dGV4dC0+ZGF0YSgpKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwbHlTdHlsZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxl
Q29tbWFuZC5jcHAKaW5kZXggNjlkOGFmMi4uYWUxNmYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKQEAgLTEzODIsNyArMTM4MiwxMCBAQCB2b2lk
IEFwcGx5U3R5bGVDb21tYW5kOjphZGRCbG9ja1N0eWxlKGNvbnN0IFN0eWxlQ2hhbmdlJiBzdHls
ZUNoYW5nZSwgSFRNTEVsZW1lbgogICAgICAgICAgICAgY3NzVGV4dC5hcHBlbmQoJyAnKTsKICAg
ICAgICAgY3NzVGV4dC5hcHBlbmQoZGVjbC0+YXNUZXh0KCkpOwogICAgIH0KLSAgICBzZXROb2Rl
QXR0cmlidXRlKGJsb2NrLCBzdHlsZUF0dHIsIGNzc1RleHQudG9TdHJpbmcoKSk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gY3NzVGV4dC50b1N0cmluZygpKQorICAgICAgICBzZXROb2RlQXR0cmli
dXRlKGJsb2NrLCBzdHlsZUF0dHIsICpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0go
KTsKIH0KIAogdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6YWRkSW5saW5lU3R5bGVJZk5lZWRlZChF
ZGl0aW5nU3R5bGUqIHN0eWxlLCBOb2RlJiBzdGFydCwgTm9kZSYgZW5kLCBFQWRkU3R5bGVkRWxl
bWVudCBhZGRTdHlsZWRFbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5jcHAKaW5kZXgg
ZTc5YjY0Ni4uMzBjMTY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcuY3BwCkBAIC00Mjks
NyArNDI5LDkgQEAgU3RyaW5nIHN0cmluZ1dpdGhSZWJhbGFuY2VkV2hpdGVzcGFjZShjb25zdCBT
dHJpbmcmIHN0cmluZywgYm9vbCBzdGFydElzU3RhcnRPZlAKIAogICAgIHJlYmFsYW5jZWRTdHJp
bmcucmVzZXJ2ZUNhcGFjaXR5KGxlbmd0aCk7CiAgICAgcmViYWxhbmNlZFN0cmluZy5hcHBlbmQo
c3RyaW5nLCByZWJhbGFuY2VkU3RyaW5nLmxlbmd0aCgpLCBsZW5ndGggLSByZWJhbGFuY2VkU3Ry
aW5nLmxlbmd0aCgpKTsKLSAgICByZXR1cm4gcmViYWxhbmNlZFN0cmluZy50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHJlYmFsYW5jZWRTdHJpbmcudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBpc1RhYmxlU3RydWN0
dXJlTm9kZShjb25zdCBOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9IVE1MSW50ZXJjaGFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9IVE1MSW50
ZXJjaGFuZ2UuY3BwCmluZGV4IGIyMjM0M2IuLmNmODUyMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSFRNTEludGVyY2hhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0hUTUxJbnRlcmNoYW5nZS5jcHAKQEAgLTk1LDcgKzk1LDkgQEAgU3RyaW5nIGNvbnZl
cnRIVE1MVGV4dFRvSW50ZXJjaGFuZ2VGb3JtYXQoY29uc3QgU3RyaW5nJiBpbiwgY29uc3QgVGV4
dCogbm9kZSkKICAgICAgICAgaSArPSBjb25zdW1lZDsKICAgICB9CiAKLSAgICByZXR1cm4gcy50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHMudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcAppbmRleCA5
MDY5NjdmLi42N2U3NmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1
cEFjY3VtdWxhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3Vt
dWxhdG9yLmNwcApAQCAtMTMwLDcgKzEzMCw5IEBAIE1hcmt1cEFjY3VtdWxhdG9yOjp+TWFya3Vw
QWNjdW11bGF0b3IoKSA9IGRlZmF1bHQ7CiBTdHJpbmcgTWFya3VwQWNjdW11bGF0b3I6OnNlcmlh
bGl6ZU5vZGVzKE5vZGUmIHRhcmdldE5vZGUsIEVDaGlsZHJlbk9ubHkgY2hpbGRyZW5Pbmx5LCBW
ZWN0b3I8UXVhbGlmaWVkTmFtZT4qIHRhZ05hbWVzVG9Ta2lwKQogewogICAgIHNlcmlhbGl6ZU5v
ZGVzV2l0aE5hbWVzcGFjZXModGFyZ2V0Tm9kZSwgY2hpbGRyZW5Pbmx5LCAwLCB0YWdOYW1lc1Rv
U2tpcCk7Ci0gICAgcmV0dXJuIG1fbWFya3VwLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gbV9tYXJrdXAudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogdm9pZCBNYXJrdXBBY2N1bXVsYXRvcjo6c2VyaWFsaXplTm9kZXNXaXRo
TmFtZXNwYWNlcyhOb2RlJiB0YXJnZXROb2RlLCBFQ2hpbGRyZW5Pbmx5IGNoaWxkcmVuT25seSwg
Y29uc3QgTmFtZXNwYWNlcyogbmFtZXNwYWNlcywgVmVjdG9yPFF1YWxpZmllZE5hbWU+KiB0YWdO
YW1lc1RvU2tpcCkKQEAgLTQ4MywxMSArNDg1LDE0IEBAIHZvaWQgTWFya3VwQWNjdW11bGF0b3I6
OmdlbmVyYXRlVW5pcXVlUHJlZml4KFF1YWxpZmllZE5hbWUmIHByZWZpeGVkTmFtZSwgY29uc3QK
ICAgICAgICAgYnVpbGRlci5jbGVhcigpOwogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwo
Ik5TIik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKCsrbV9wcmVmaXhMZXZlbCk7Ci0g
ICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmco
KTsKLSAgICAgICAgaWYgKCFuYW1lc3BhY2VzLmdldChuYW1lLmltcGwoKSkpIHsKLSAgICAgICAg
ICAgIHByZWZpeGVkTmFtZS5zZXRQcmVmaXgobmFtZSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmlu
ZygpKSB7CisgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUgPSAqc3RyaW5nOwor
ICAgICAgICAgICAgaWYgKCFuYW1lc3BhY2VzLmdldChuYW1lLmltcGwoKSkpIHsKKyAgICAgICAg
ICAgICAgICBwcmVmaXhlZE5hbWUuc2V0UHJlZml4KG5hbWUpOworICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBDUkFTSCgp
OwogICAgIH0gd2hpbGUgKHRydWUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1RleHRJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVy
YXRvci5jcHAKaW5kZXggNjU3NGYxZS4uZjU0MzFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VGV4dEl0ZXJhdG9yLmNwcApAQCAtMjY2NywxMiArMjY2NywxNSBAQCBTdHJpbmcgcGxhaW5UZXh0
KGNvbnN0IFJhbmdlKiByLCBUZXh0SXRlcmF0b3JCZWhhdmlvciBkZWZhdWx0QmVoYXZpb3IsIGJv
b2wgaXNEaQogICAgIGlmICghYnVmZmVyTGVuZ3RoKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJp
bmcoKTsKIAotICAgIFN0cmluZyByZXN1bHQgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIFN0cmluZyByZXN1
bHQgPSAqc3RyaW5nOwogCi0gICAgaWYgKGlzRGlzcGxheVN0cmluZykKLSAgICAgICAgci0+b3du
ZXJEb2N1bWVudCgpLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcocmVzdWx0KTsKKyAg
ICAgICAgaWYgKGlzRGlzcGxheVN0cmluZykKKyAgICAgICAgICAgIHItPm93bmVyRG9jdW1lbnQo
KS5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKHJlc3VsdCk7CiAKLSAgICByZXR1cm4g
cmVzdWx0OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICBDUkFTSCgpOwogfQog
CiBTdHJpbmcgcGxhaW5UZXh0UmVwbGFjaW5nTm9CcmVha1NwYWNlKGNvbnN0IFJhbmdlKiByYW5n
ZSwgVGV4dEl0ZXJhdG9yQmVoYXZpb3IgZGVmYXVsdEJlaGF2aW9yLCBib29sIGlzRGlzcGxheVN0
cmluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmluZGV4IGZkNzkw
NjYuLmJlZTYzZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29t
bWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcApA
QCAtNDI1LDcgKzQyNSw5IEBAIFJlZlB0cjxEYXRhVHJhbnNmZXI+IFR5cGluZ0NvbW1hbmQ6Omlu
cHV0RXZlbnREYXRhVHJhbnNmZXIoKSBjb25zdAogCiAgICAgU3RyaW5nQnVpbGRlciBodG1sVGV4
dDsKICAgICBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kQ2hhcmFjdGVyc1JlcGxhY2luZ0VudGl0
aWVzKGh0bWxUZXh0LCBtX2N1cnJlbnRUZXh0VG9JbnNlcnQsIDAsIG1fY3VycmVudFRleHRUb0lu
c2VydC5sZW5ndGgoKSwgRW50aXR5TWFza0luSFRNTFBDREFUQSk7Ci0gICAgcmV0dXJuIERhdGFU
cmFuc2Zlcjo6Y3JlYXRlRm9ySW5wdXRFdmVudChtX2N1cnJlbnRUZXh0VG9JbnNlcnQsIGh0bWxU
ZXh0LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGh0bWxUZXh0LnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvcklucHV0RXZlbnQobV9j
dXJyZW50VGV4dFRvSW5zZXJ0LCAqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIFR5
cGluZ0NvbW1hbmQ6OmRpZEFwcGx5Q29tbWFuZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9W
aXNpYmxlU2VsZWN0aW9uLmNwcAppbmRleCAxODY1MGFiLi43M2FjY2M3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKQEAgLTcwNyw3ICs3MDcsMTAgQEAg
dm9pZCBWaXNpYmxlU2VsZWN0aW9uOjpmb3JtYXRGb3JEZWJ1Z2dlcihjaGFyKiBidWZmZXIsIHVu
c2lnbmVkIGxlbmd0aCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZChzKTsKICAgICB9CiAK
LSAgICBzdHJuY3B5KGJ1ZmZlciwgcmVzdWx0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbGVu
Z3RoIC0gMSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAg
ICAgIHN0cm5jcHkoYnVmZmVyLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOwor
ICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBWaXNpYmxlU2VsZWN0aW9uOjpz
aG93VHJlZUZvclRoaXMoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9E
YXRhRGV0ZWN0aW9uLm1tCmluZGV4IGY0NDU2MTYuLmU5ODY0NGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0KQEAgLTMxOSw3ICszMTksOSBAQCBz
dGF0aWMgU3RyaW5nIGRhdGFEZXRlY3RvclN0cmluZ0ZvclBhdGgoTlNJbmRleFBhdGggKnBhdGgp
CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKCh1bnNpZ25lZCBsb25nKVtwYXRo
IGluZGV4QXRQb3NpdGlvbjowXSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCcvJyk7
CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKCh1bnNpZ25lZCBsb25nKVtwYXRo
IGluZGV4QXRQb3NpdGlvbjoxXSk7Ci0gICAgICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3Ry
aW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0K
ICAgICBkZWZhdWx0OiB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsKQEAg
LTMyOSw3ICszMzEsOSBAQCBzdGF0aWMgU3RyaW5nIGRhdGFEZXRlY3RvclN0cmluZ0ZvclBhdGgo
TlNJbmRleFBhdGggKnBhdGgpCiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJl
cigodW5zaWduZWQgbG9uZylbcGF0aCBpbmRleEF0UG9zaXRpb246aV0pOwogICAgICAgICB9CiAK
LSAgICAgICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbSBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbQppbmRleCA2YjEzOTdlLi41ZDMy
OTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0
ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1t
CkBAIC0yMjU0LDcgKzIyNTQsMTAgQEAgdm9pZCBIVE1MQ29udmVydGVyOjpfcHJvY2Vzc1RleHQo
Q2hhcmFjdGVyRGF0YSYgY2hhcmFjdGVyRGF0YSkKICAgICAgICAgfQogICAgICAgICBpZiAod2Fz
U3BhY2UpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwotICAgICAgICBvdXRwdXRT
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIG91dHB1dFN0cmluZyA9ICpzdHJpbmc7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgaWYgKG91dHB1
dFN0cmluZy5sZW5ndGgoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9p
b3MvRWRpdG9ySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1t
CmluZGV4IDU2MjEzNTUuLjJmZTU0NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvaW9zL0VkaXRvcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0
b3JJT1MubW0KQEAgLTI4NCw3ICsyODQsMTAgQEAgdm9pZCBFZGl0b3I6OnNldERpY3RhdGlvblBo
cmFzZXNBc0NoaWxkT2ZFbGVtZW50KGNvbnN0IFZlY3RvcjxWZWN0b3I8U3RyaW5nPj4mIGQKICAg
ICBmb3IgKGF1dG8mIGludGVycHJldGF0aW9ucyA6IGRpY3RhdGlvblBocmFzZXMpCiAgICAgICAg
IGRpY3RhdGlvblBocmFzZXNCdWlsZGVyLmFwcGVuZChpbnRlcnByZXRhdGlvbnNbMF0pOwogCi0g
ICAgZWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpjb250ZXh0LCBk
aWN0YXRpb25QaHJhc2VzQnVpbGRlci50b1N0cmluZygpKSk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gZGljdGF0aW9uUGhyYXNlc0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgZWxlbWVudC5h
cHBlbmRDaGlsZChjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpjb250ZXh0LCAqc3RyaW5nKSk7Cisg
ICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgLy8gV2UgbmVlZCBhIGxheW91dCBpbiBv
cmRlciB0byBhZGQgbWFya2VycyBiZWxvdy4KICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCmluZGV4IDU1NTFlZWMuLmQ1Njg4MTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL21hcmt1cC5jcHAKQEAgLTI5MCw3ICsyOTAsMTAgQEAgdm9pZCBTdHlsZWRN
YXJrdXBBY2N1bXVsYXRvcjo6d3JhcFdpdGhOb2RlKE5vZGUmIG5vZGUsIGJvb2wgY29udmVydEJs
b2Nrc1RvSW5saW4KICAgICAgICAgYXBwZW5kRWxlbWVudChtYXJrdXAsIGRvd25jYXN0PEVsZW1l
bnQ+KG5vZGUpLCBjb252ZXJ0QmxvY2tzVG9JbmxpbmVzICYmIGlzQmxvY2soJm5vZGUpLCByYW5n
ZUZ1bGx5U2VsZWN0c05vZGUpOwogICAgIGVsc2UKICAgICAgICAgYXBwZW5kU3RhcnRNYXJrdXAo
bWFya3VwLCBub2RlLCBudWxscHRyKTsKLSAgICBtX3JldmVyc2VkUHJlY2VkaW5nTWFya3VwLmFw
cGVuZChtYXJrdXAudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWFya3VwLnRv
U3RyaW5nKCkpCisgICAgICAgIG1fcmV2ZXJzZWRQcmVjZWRpbmdNYXJrdXAuYXBwZW5kKCpzdHJp
bmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICBhcHBlbmRFbmRUYWcobm9kZSk7
CiAgICAgaWYgKG1fbm9kZXMpCiAgICAgICAgIG1fbm9kZXMtPmFwcGVuZCgmbm9kZSk7CkBAIC0z
MDAsNyArMzAzLDEwIEBAIHZvaWQgU3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OndyYXBXaXRoU3R5
bGVOb2RlKFN0eWxlUHJvcGVydGllcyogc3R5bGUsIERvY3VtZW50CiB7CiAgICAgU3RyaW5nQnVp
bGRlciBvcGVuVGFnOwogICAgIGFwcGVuZFN0eWxlTm9kZU9wZW5UYWcob3BlblRhZywgc3R5bGUs
IGRvY3VtZW50LCBpc0Jsb2NrKTsKLSAgICBtX3JldmVyc2VkUHJlY2VkaW5nTWFya3VwLmFwcGVu
ZChvcGVuVGFnLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG9wZW5UYWcudG9T
dHJpbmcoKSkKKyAgICAgICAgbV9yZXZlcnNlZFByZWNlZGluZ01hcmt1cC5hcHBlbmQoKnN0cmlu
Zyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIGFwcGVuZFN0cmluZyhzdHlsZU5v
ZGVDbG9zZVRhZyhpc0Jsb2NrKSk7CiB9CiAKQEAgLTMzNCw3ICszNDAsOSBAQCBTdHJpbmcgU3R5
bGVkTWFya3VwQWNjdW11bGF0b3I6OnRha2VSZXN1bHRzKCkKICAgICBjb25jYXRlbmF0ZU1hcmt1
cChyZXN1bHQpOwogCiAgICAgLy8gV2UgcmVtb3ZlICdcMCcgY2hhcmFjdGVycyBiZWNhdXNlIHRo
ZXkgYXJlIG5vdCB2aXNpYmx5IHJlbmRlcmVkIHRvIHRoZSB1c2VyLgotICAgIHJldHVybiByZXN1
bHQudG9TdHJpbmcoKS5yZXBsYWNlV2l0aExpdGVyYWwoJ1wwJywgIiIpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gc3RyaW5nLT5yZXBs
YWNlV2l0aExpdGVyYWwoJ1wwJywgIiIpOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgU3R5bGVk
TWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZFRleHQoU3RyaW5nQnVpbGRlciYgb3V0LCBjb25zdCBU
ZXh0JiB0ZXh0KQpAQCAtMzU5LDcgKzM2NywxMCBAQCB2b2lkIFN0eWxlZE1hcmt1cEFjY3VtdWxh
dG9yOjphcHBlbmRUZXh0KFN0cmluZ0J1aWxkZXImIG91dCwgY29uc3QgVGV4dCYgdGV4dCkKICAg
ICAgICAgU3RyaW5nIGNvbnRlbnQgPSB1c2VSZW5kZXJlZFRleHQgPyByZW5kZXJlZFRleHQodGV4
dCwgbV9yYW5nZSkgOiBzdHJpbmdWYWx1ZUZvclJhbmdlKHRleHQsIG1fcmFuZ2UpOwogICAgICAg
ICBTdHJpbmdCdWlsZGVyIGJ1ZmZlcjsKICAgICAgICAgYXBwZW5kQ2hhcmFjdGVyc1JlcGxhY2lu
Z0VudGl0aWVzKGJ1ZmZlciwgY29udGVudCwgMCwgY29udGVudC5sZW5ndGgoKSwgRW50aXR5TWFz
a0luUENEQVRBKTsKLSAgICAgICAgb3V0LmFwcGVuZChjb252ZXJ0SFRNTFRleHRUb0ludGVyY2hh
bmdlRm9ybWF0KGJ1ZmZlci50b1N0cmluZygpLCAmdGV4dCkpOworICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWZmZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIG91dC5hcHBlbmQoY29udmVy
dEhUTUxUZXh0VG9JbnRlcmNoYW5nZUZvcm1hdCgqc3RyaW5nLCAmdGV4dCkpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIGlmICh3cmFwcGluZ1NwYW4p
CkBAIC04NzMsNyArODg0LDkgQEAgU3RyaW5nIHNhbml0aXplZE1hcmt1cEZvckZyYWdtZW50SW5E
b2N1bWVudChSZWY8RG9jdW1lbnRGcmFnbWVudD4mJiBmcmFnbWVudCwgRG8KICAgICAgICAgICAg
ICJ4bWxucz1cImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDBcIj4iKTsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQocmVzdWx0KTsKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8
L2h0bWw+Iik7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlm
IChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIHJldHVybiByZXN1bHQ7CkBA
IC0xMDkyLDcgKzExMDUsOSBAQCBTdHJpbmcgdXJsVG9NYXJrdXAoY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgdGl0bGUpCiAgICAgbWFya3VwLmFwcGVuZExpdGVyYWwoIlwiPiIpOwogICAg
IE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRDaGFyYWN0ZXJzUmVwbGFjaW5nRW50aXRpZXMobWFy
a3VwLCB0aXRsZSwgMCwgdGl0bGUubGVuZ3RoKCksIEVudGl0eU1hc2tJblBDREFUQSk7CiAgICAg
bWFya3VwLmFwcGVuZExpdGVyYWwoIjwvYT4iKTsKLSAgICByZXR1cm4gbWFya3VwLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWFya3VwLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIEV4Y2VwdGlvbk9yPFJlZjxEb2N1bWVu
dEZyYWdtZW50Pj4gY3JlYXRlRnJhZ21lbnRGb3JJbm5lck91dGVySFRNTChFbGVtZW50JiBjb250
ZXh0RWxlbWVudCwgY29uc3QgU3RyaW5nJiBtYXJrdXAsIFBhcnNlckNvbnRlbnRQb2xpY3kgcGFy
c2VyQ29udGVudFBvbGljeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmls
ZVJlYWRlckxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2Fk
ZXIuY3BwCmluZGV4IDlhMjIzNGYuLjI4MzQ1YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9GaWxlUmVhZGVyTG9hZGVyLmNwcApAQCAtMzM3LDIwICszMzcsMjAgQEAgdm9pZCBGaWxlUmVh
ZGVyTG9hZGVyOjpjb252ZXJ0VG9EYXRhVVJMKCkKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7
CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJkYXRhOiIpOwogCi0gICAgaWYgKCFtX2J5dGVz
TG9hZGVkKSB7Ci0gICAgICAgIG1fc3RyaW5nUmVzdWx0ID0gYnVpbGRlci50b1N0cmluZygpOwot
ICAgICAgICByZXR1cm47CisgICAgaWYgKG1fYnl0ZXNMb2FkZWQpIHsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQobV9kYXRhVHlwZSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiO2Jh
c2U2NCwiKTsKKworICAgICAgICBWZWN0b3I8Y2hhcj4gb3V0OworICAgICAgICBiYXNlNjRFbmNv
ZGUobV9yYXdEYXRhLT5kYXRhKCksIG1fYnl0ZXNMb2FkZWQsIG91dCk7CisgICAgICAgIG91dC5h
cHBlbmQoJ1wwJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG91dC5kYXRhKCkpOwogICAgIH0K
IAotICAgIGJ1aWxkZXIuYXBwZW5kKG1fZGF0YVR5cGUpOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiO2Jhc2U2NCwiKTsKLQotICAgIFZlY3RvcjxjaGFyPiBvdXQ7Ci0gICAgYmFzZTY0RW5j
b2RlKG1fcmF3RGF0YS0+ZGF0YSgpLCBtX2J5dGVzTG9hZGVkLCBvdXQpOwotICAgIG91dC5hcHBl
bmQoJ1wwJyk7Ci0gICAgYnVpbGRlci5hcHBlbmQob3V0LmRhdGEoKSk7Ci0KLSAgICBtX3N0cmlu
Z1Jlc3VsdCA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIG1fc3RyaW5nUmVzdWx0ID0gKnN0cmluZzsKKyAgICBl
bHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgRmlsZVJlYWRlckxvYWRlcjo6aXNDb21w
bGV0ZWQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxp
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCmluZGV4IGM5NWY5
NjkuLmRiNDI5NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKQEAgLTI3Mywx
MCArMjczLDEzIEBAIHZvaWQgRE9NVG9rZW5MaXN0Ojp1cGRhdGVBc3NvY2lhdGVkQXR0cmlidXRl
RnJvbVRva2VucygpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgICAgICBi
dWlsZGVyLmFwcGVuZCh0b2tlbik7CiAgICAgfQotICAgIEF0b21pY1N0cmluZyBzZXJpYWxpemVk
VmFsdWUgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
YnVpbGRlci50b0F0b21pY1N0cmluZygpKSB7CisgICAgICAgIEF0b21pY1N0cmluZyBzZXJpYWxp
emVkVmFsdWUgPSAqc3RyaW5nOwogCi0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaW5BdHRyaWJ1dGVV
cGRhdGUobV9pblVwZGF0ZUFzc29jaWF0ZWRBdHRyaWJ1dGVGcm9tVG9rZW5zLCB0cnVlKTsKLSAg
ICBtX2VsZW1lbnQuc2V0QXR0cmlidXRlKG1fYXR0cmlidXRlTmFtZSwgc2VyaWFsaXplZFZhbHVl
KTsKKyAgICAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaW5BdHRyaWJ1dGVVcGRhdGUobV9pblVwZGF0
ZUFzc29jaWF0ZWRBdHRyaWJ1dGVGcm9tVG9rZW5zLCB0cnVlKTsKKyAgICAgICAgbV9lbGVtZW50
LnNldEF0dHJpYnV0ZShtX2F0dHJpYnV0ZU5hbWUsIHNlcmlhbGl6ZWRWYWx1ZSk7CisgICAgfSBl
bHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIFZlY3RvcjxBdG9taWNTdHJpbmc+JiBET01Ub2tl
bkxpc3Q6OnRva2VucygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5w
dXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwCmluZGV4
IGI5M2UxMmIuLjU4MzZjN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJ
bnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3Bw
CkBAIC0xMDQsNyArMTA0LDkgQEAgU3RyaW5nIEVtYWlsSW5wdXRUeXBlOjpzYW5pdGl6ZVZhbHVl
KGNvbnN0IFN0cmluZyYgcHJvcG9zZWRWYWx1ZSkgY29uc3QKICAgICAgICAgICAgIHN0cmlwcGVk
VmFsdWUuYXBwZW5kKCcsJyk7CiAgICAgICAgIHN0cmlwcGVkVmFsdWUuYXBwZW5kKHN0cmlwTGVh
ZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhhZGRyZXNzZXNbaV0pKTsKICAgICB9Ci0gICAgcmV0
dXJuIHN0cmlwcGVkVmFsdWUudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJp
cHBlZFZhbHVlLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1
dFR5cGUuY3BwCmluZGV4IDNlNTVhMDUuLmZkYzQ5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxl
SW5wdXRUeXBlLmNwcApAQCAtNDY3LDcgKzQ2Nyw5IEBAIFN0cmluZyBGaWxlSW5wdXRUeXBlOjpk
ZWZhdWx0VG9vbFRpcCgpIGNvbnN0CiAgICAgICAgIGlmIChpICE9IGxpc3RTaXplIC0gMSkKICAg
ICAgICAgICAgIG5hbWVzLmFwcGVuZCgnXG4nKTsKICAgICB9Ci0gICAgcmV0dXJuIG5hbWVzLnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbmFtZXMudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Rm9ybUNvbnRyb2xsZXIuY3BwCmluZGV4IDBmNWI3NzUuLjFhMjlhNDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwCkBAIC0zMTIsNyArMzEyLDkgQEAgc3RhdGljIGlubGlu
ZSBTdHJpbmcgZm9ybVNpZ25hdHVyZShjb25zdCBIVE1MRm9ybUVsZW1lbnQmIGZvcm0pCiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKGFjdGlvblVSTC5zdHJpbmcoKSk7CiAKICAgICByZWNvcmRGb3Jt
U3RydWN0dXJlKGZvcm0sIGJ1aWxkZXIpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBBdG9taWNTdHJpbmcgRm9ybUtleUdlbmVy
YXRvcjo6Zm9ybUtleShjb25zdCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlJiBjb250
cm9sKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAppbmRleCA3MTUy
MzE3Li5hNzAyNmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNw
cApAQCAtNDAwLDEwICs0MDAsMTQgQEAgdm9pZCBIVE1MQW5jaG9yRWxlbWVudDo6aGFuZGxlQ2xp
Y2soRXZlbnQmIGV2ZW50KQogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybjsKIAotICAg
IFN0cmluZ0J1aWxkZXIgdXJsOwotICAgIHVybC5hcHBlbmQoc3RyaXBMZWFkaW5nQW5kVHJhaWxp
bmdIVE1MU3BhY2VzKGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oaHJlZkF0dHIpKSk7
Ci0gICAgYXBwZW5kU2VydmVyTWFwTW91c2VQb3NpdGlvbih1cmwsIGV2ZW50KTsKLSAgICBVUkwg
Y29tcGxldGVkVVJMID0gZG9jdW1lbnQoKS5jb21wbGV0ZVVSTCh1cmwudG9TdHJpbmcoKSk7Cisg
ICAgVVJMIGNvbXBsZXRlZFVSTCA9IGRvY3VtZW50KCkuY29tcGxldGVVUkwoWyZdICgpIHsKKyAg
ICAgICAgU3RyaW5nQnVpbGRlciB1cmw7CisgICAgICAgIHVybC5hcHBlbmQoc3RyaXBMZWFkaW5n
QW5kVHJhaWxpbmdIVE1MU3BhY2VzKGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oaHJl
ZkF0dHIpKSk7CisgICAgICAgIGFwcGVuZFNlcnZlck1hcE1vdXNlUG9zaXRpb24odXJsLCBldmVu
dCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHVybC50b1N0cmluZygpKQorICAgICAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CisgICAgfSgpKTsKIAogICAgIFN0
cmluZyBkb3dubG9hZEF0dHJpYnV0ZTsKICNpZiBFTkFCTEUoRE9XTkxPQURfQVRUUklCVVRFKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAppbmRleCA2NjRlZGYwLi5i
NjdiNGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApAQCAt
MzM2LDggKzMzNiwxMSBAQCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqIEhUTUxDYW52YXNFbGVt
ZW50OjpjcmVhdGVDb250ZXh0MmQoY29uc3QgU3RyaW5nJiB0eXBlKQogICAgICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZExpdGVyYWwoIlRvdGFsIGNhbnZhcyBtZW1vcnkgdXNlIGV4Y2VlZHMgdGhl
IG1heGltdW0gbGltaXQgKCIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlciht
YXhBY3RpdmVQaXhlbE1lbW9yeSgpIC8gMTAyNCAvIDEwMjQpOwogICAgICAgICBzdHJpbmdCdWls
ZGVyLmFwcGVuZExpdGVyYWwoIiBNQikuIik7Ci0gICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29s
ZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgc3RyaW5n
QnVpbGRlci50b1N0cmluZygpKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIGlm
IChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAg
ZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxl
dmVsOjpXYXJuaW5nLCAqc3RyaW5nKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAg
ICAgICB9CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgbV9jb250ZXh0ID0gQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpjcmVhdGUoKnRoaXMsIGRvY3VtZW50KCkuaW5RdWlya3NNb2Rl
KCksIHVzZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSk7CkBAIC04ODksOCArODkyLDExIEBA
IHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUltYWdlQnVmZmVyKCkgY29uc3QKICAgICAg
ICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJDYW52YXMgYXJlYSBleGNlZWRzIHRoZSBt
YXhpbXVtIGxpbWl0ICh3aWR0aCAqIGhlaWdodCA+ICIpOwogICAgICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZE51bWJlcihtYXhDYW52YXNBcmVhKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmRMaXRlcmFsKCIpLiIpOwotICAgICAgICBkb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKSk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICBkb2N1bWVudCgpLmFkZENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICpzdHJp
bmcpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIENSQVNIKCk7CiAg
ICAgfQogICAgIAogICAgIC8vIE1ha2Ugc3VyZSB3ZSBkb24ndCB1c2UgbW9yZSBwaXhlbCBtZW1v
cnkgdGhhbiB0aGUgc3lzdGVtIGNhbiBzdXBwb3J0LgpAQCAtOTAwLDggKzkwNiwxMSBAQCB2b2lk
IEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcigpIGNvbnN0CiAgICAgICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiVG90YWwgY2FudmFzIG1lbW9yeSB1c2UgZXhjZWVk
cyB0aGUgbWF4aW11bSBsaW1pdCAoIik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVt
YmVyKG1heEFjdGl2ZVBpeGVsTWVtb3J5KCkgLyAxMDI0IC8gMTAyNCk7CiAgICAgICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIE1CKS4iKTsKLSAgICAgICAgZG9jdW1lbnQoKS5hZGRD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBz
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOwotICAgICAgICByZXR1cm47CisgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgZG9j
dW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVs
OjpXYXJuaW5nLCAqc3RyaW5nKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
ICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIGlmICghd2lkdGgoKSB8fCAhaGVpZ2h0KCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5jcHAKaW5kZXggOGQ2YzM0Ny4uYzM1YTY3
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVtZW50LmNwcApAQCAtMTExLDEwICsx
MTEsMTMgQEAgc3RhdGljIGJvb2wgcGFyc2VGb250U2l6ZShjb25zdCBDaGFyYWN0ZXJUeXBlKiBj
aGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIGludCYKICAgICAvLyBTdGVwIDgKICAgICBpbnQg
dmFsdWU7CiAKKyAgICBpZiAoZGlnaXRzLmZhaWxlZCgpKQorICAgICAgICBDUkFTSCgpOworCiAg
ICAgaWYgKGRpZ2l0cy5pczhCaXQoKSkKLSAgICAgICAgdmFsdWUgPSBjaGFyYWN0ZXJzVG9JbnRT
dHJpY3QoZGlnaXRzLmNoYXJhY3RlcnM4KCksIGRpZ2l0cy5sZW5ndGgoKSk7CisgICAgICAgIHZh
bHVlID0gY2hhcmFjdGVyc1RvSW50U3RyaWN0KCpkaWdpdHMuY2hhcmFjdGVyczgoKSwgZGlnaXRz
Lmxlbmd0aCgpKTsKICAgICBlbHNlCi0gICAgICAgIHZhbHVlID0gY2hhcmFjdGVyc1RvSW50U3Ry
aWN0KGRpZ2l0cy5jaGFyYWN0ZXJzMTYoKSwgZGlnaXRzLmxlbmd0aCgpKTsKKyAgICAgICAgdmFs
dWUgPSBjaGFyYWN0ZXJzVG9JbnRTdHJpY3QoKmRpZ2l0cy5jaGFyYWN0ZXJzMTYoKSwgZGlnaXRz
Lmxlbmd0aCgpKTsKIAogICAgIC8vIFN0ZXAgOQogICAgIGlmIChtb2RlID09IFJlbGF0aXZlUGx1
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDRmNjU5N2Mu
LmEyZTFjMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcApAQCAt
NDc0LDcgKzQ3NCw5IEBAIFN0cmluZyBIVE1MSW1hZ2VFbGVtZW50Ojpjb21wbGV0ZVVSTHNJbkF0
dHJpYnV0ZVZhbHVlKGNvbnN0IFVSTCYgYmFzZSwgY29uc3QgQXR0CiAgICAgICAgICAgICAgICAg
cmVzdWx0LmFwcGVuZCgndycpOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIHJl
dHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0go
KTsKICAgICB9CiAgICAgcmV0dXJuIEhUTUxFbGVtZW50Ojpjb21wbGV0ZVVSTHNJbkF0dHJpYnV0
ZVZhbHVlKGJhc2UsIGF0dHJpYnV0ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcAppbmRleCA1MjFmY2EyLi43MjE0NDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTIzMiw5ICsyMzIsMTIgQEAgc3RhdGljIFN0cmluZyBh
Y3Rpb25OYW1lKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6RGVsYXllZEFjdGlvblR5cGUgYWN0aW9u
KQogCiAjdW5kZWYgQUNUSU9OCiAKLSAgICBTdHJpbmcgbmFtZSA9IGFjdGlvbkJ1aWxkZXIudG9T
dHJpbmcoKTsKLSAgICBBU1NFUlQoIW5hbWUuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gbmFtZTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBhY3Rpb25CdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAg
ICAgU3RyaW5nIG5hbWUgPSAqc3RyaW5nOworICAgICAgICBBU1NFUlQoIW5hbWUuaXNFbXB0eSgp
KTsKKyAgICAgICAgcmV0dXJuIG5hbWU7CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAppbmRleCA5ZjZkYWQy
Li5mYTk4YWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcApA
QCAtMzQ5LDcgKzM0OSw5IEBAIFN0cmluZyBIVE1MT3B0aW9uRWxlbWVudDo6Y29sbGVjdE9wdGlv
bklubmVyVGV4dCgpIGNvbnN0CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG5vZGUgPSBOb2Rl
VHJhdmVyc2FsOjpuZXh0KCpub2RlLCB0aGlzKTsKICAgICB9Ci0gICAgcmV0dXJuIHRleHQudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0ZXh0LnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmlu
ZGV4IDU4ZjkxYWEuLjNhZjM0NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC0xNDMsNyArMTQzLDkgQEAgU3RyaW5nIEhU
TUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzdHJpcHBlZFBsYWNlaG9sZGVyKCkgY29uc3QKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBzdHJpcHBlZC5hcHBlbmQoY2hhcmFjdGVyKTsK
ICAgICB9Ci0gICAgcmV0dXJuIHN0cmlwcGVkLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gc3RyaXBwZWQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogc3RhdGljIGJvb2wgaXNOb3RMaW5lQnJlYWsoVUNoYXIgY2gpIHsgcmV0
dXJuIGNoICE9IG5ld2xpbmVDaGFyYWN0ZXIgJiYgY2ggIT0gY2FycmlhZ2VSZXR1cm47IH0KQEAg
LTU1Miw3ICs1NTQsOSBAQCBzdGF0aWMgU3RyaW5nIGlubmVyVGV4dFZhbHVlRnJvbShUZXh0Q29u
dHJvbElubmVyVGV4dEVsZW1lbnQmIGlubmVyVGV4dCkKICAgICAgICAgICAgIHJlc3VsdC5hcHBl
bmQoZG93bmNhc3Q8VGV4dD4oKm5vZGUpLmRhdGEoKSk7CiAgICAgfQogICAgIHN0cmlwVHJhaWxp
bmdOZXdsaW5lKHJlc3VsdCk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpz
ZXRJbm5lclRleHRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQpAQCAtNzM2LDcgKzc0MCw5IEBA
IFN0cmluZyBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6dmFsdWVXaXRoSGFyZExpbmVCcmVh
a3MoKSBjb25zdAogICAgICAgICAgICAgZ2V0TmV4dFNvZnRCcmVhayhsaW5lLCBicmVha05vZGUs
IGJyZWFrT2Zmc2V0KTsKICAgICB9CiAgICAgc3RyaXBUcmFpbGluZ05ld2xpbmUocmVzdWx0KTsK
LSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVz
dWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50KiBlbmNsb3NpbmdUZXh0Rm9ybUNvbnRyb2wo
Y29uc3QgUG9zaXRpb24mIHBvc2l0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9NZWRpYURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5j
cHAKaW5kZXggMTE5MzQwZi4uNjk3NzEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9NZWRpYURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1l
bnQuY3BwCkBAIC0xMjEsNyArMTIxLDEwIEBAIHZvaWQgTWVkaWFEb2N1bWVudFBhcnNlcjo6Y3Jl
YXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQogI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgZWxlbWVu
dFN0eWxlLmFwcGVuZExpdGVyYWwoIndpZHRoOiAxMDAlOyBoZWlnaHQ6IGF1dG87Iik7CiAjZW5k
aWYKLSAgICAgICAgdmlkZW9FbGVtZW50LT5zZXRBdHRyaWJ1dGUoc3R5bGVBdHRyLCBlbGVtZW50
U3R5bGUudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGVsZW1lbnRTdHls
ZS50b1N0cmluZygpKQorICAgICAgICAgICAgdmlkZW9FbGVtZW50LT5zZXRBdHRyaWJ1dGUoc3R5
bGVBdHRyLCAqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAg
ICB9CiAKICAgICBib2R5LT5hcHBlbmRDaGlsZCh2aWRlb0VsZW1lbnQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKaW5kZXggNWNkNzkwNS4uNmY0ZTBmOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCkBAIC04Niw3
ICs4Niw5IEBAIHN0YXRpYyBTdHJpbmcgcmVzdHJpY3Rpb25OYW1lKE1lZGlhRWxlbWVudFNlc3Np
b246OkJlaGF2aW9yUmVzdHJpY3Rpb25zIHJlc3RyaWN0CiAgICAgQ0FTRShJbnZpc2libGVBdXRv
cGxheU5vdFBlcm1pdHRlZCk7CiAgICAgQ0FTRShPdmVycmlkZVVzZXJHZXN0dXJlUmVxdWlyZW1l
bnRGb3JNYWluQ29udGVudCk7CiAKLSAgICByZXR1cm4gcmVzdHJpY3Rpb25CdWlsZGVyLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdHJpY3Rpb25CdWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUZyYWdtZW50VVJJUGFyc2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFGcmFnbWVudFVSSVBhcnNlci5jcHAKaW5kZXgg
ZTdhNTE2ZS4uMzA1YjY2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUZy
YWdtZW50VVJJUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRnJhZ21l
bnRVUklQYXJzZXIuY3BwCkBAIC01Miw3ICs1Miw5IEBAIHN0YXRpYyBTdHJpbmcgY29sbGVjdERp
Z2l0cyhjb25zdCBMQ2hhciogaW5wdXQsIHVuc2lnbmVkIGxlbmd0aCwgdW5zaWduZWQmIHBvc2l0
CiAgICAgLy8gRElHSVQgOyBhbnkgcG9zaXRpdmUgbnVtYmVyCiAgICAgd2hpbGUgKHBvc2l0aW9u
IDwgbGVuZ3RoICYmIGlzQVNDSUlEaWdpdChpbnB1dFtwb3NpdGlvbl0pKQogICAgICAgICBkaWdp
dHMuYXBwZW5kKGlucHV0W3Bvc2l0aW9uKytdKTsKLSAgICByZXR1cm4gZGlnaXRzLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gZGlnaXRzLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgY29sbGVjdEZy
YWN0aW9uKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCYgcG9z
aXRpb24pCkBAIC02Nyw3ICs2OSw5IEBAIHN0YXRpYyBTdHJpbmcgY29sbGVjdEZyYWN0aW9uKGNv
bnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCYgcG9zCiAgICAgZGln
aXRzLmFwcGVuZChpbnB1dFtwb3NpdGlvbisrXSk7CiAgICAgd2hpbGUgKHBvc2l0aW9uIDwgbGVu
Z3RoICYmIGlzQVNDSUlEaWdpdChpbnB1dFtwb3NpdGlvbl0pKQogICAgICAgICBkaWdpdHMuYXBw
ZW5kKGlucHV0W3Bvc2l0aW9uKytdKTsKLSAgICByZXR1cm4gZGlnaXRzLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gZGlnaXRzLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIE1lZGlhRnJhZ21lbnRVUklQYXJzZXI6Ok1lZGlh
RnJhZ21lbnRVUklQYXJzZXIoY29uc3QgVVJMJiB1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1R5cGVBaGVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5j
cHAKaW5kZXggNzY0ZTUwMi4uM2VlYzQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9UeXBlQWhlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcApA
QCAtODAsNyArODAsMTAgQEAgaW50IFR5cGVBaGVhZDo6aGFuZGxlRXZlbnQoS2V5Ym9hcmRFdmVu
dCogZXZlbnQsIE1hdGNoTW9kZUZsYWdzIG1hdGNoTW9kZSkKICAgICAgICAgcHJlZml4ID0gU3Ry
aW5nKCZjLCAxKTsKICAgICAgICAgbV9yZXBlYXRpbmdDaGFyID0gYzsKICAgICB9IGVsc2UgaWYg
KG1hdGNoTW9kZSAmIE1hdGNoUHJlZml4KSB7Ci0gICAgICAgIHByZWZpeCA9IG1fYnVmZmVyLnRv
U3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IG1fYnVmZmVyLnRvU3RyaW5nKCkp
CisgICAgICAgICAgICBwcmVmaXggPSAqc3RyaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBDUkFTSCgpOwogICAgICAgICBpZiAobV9idWZmZXIubGVuZ3RoKCkgPiAxKSB7CiAgICAgICAg
ICAgICBtX3JlcGVhdGluZ0NoYXIgPSAwOwogICAgICAgICAgICAgc2VhcmNoU3RhcnRPZmZzZXQg
PSAwOwpAQCAtMTA0LDkgKzEwNywxMiBAQCBpbnQgVHlwZUFoZWFkOjpoYW5kbGVFdmVudChLZXli
b2FyZEV2ZW50KiBldmVudCwgTWF0Y2hNb2RlRmxhZ3MgbWF0Y2hNb2RlKQogCiAgICAgaWYgKG1h
dGNoTW9kZSAmIE1hdGNoSW5kZXgpIHsKICAgICAgICAgYm9vbCBvayA9IGZhbHNlOwotICAgICAg
ICBpbnQgaW5kZXggPSBtX2J1ZmZlci50b1N0cmluZygpLnRvSW50KCZvayk7Ci0gICAgICAgIGlm
IChpbmRleCA+IDAgJiYgaW5kZXggPD0gb3B0aW9uQ291bnQpCi0gICAgICAgICAgICByZXR1cm4g
aW5kZXggLSAxOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBtX2J1ZmZlci50b1N0cmluZygp
KSB7CisgICAgICAgICAgICBpbnQgaW5kZXggPSBzdHJpbmctPnRvSW50KCZvayk7CisgICAgICAg
ICAgICBpZiAoaW5kZXggPiAwICYmIGluZGV4IDw9IG9wdGlvbkNvdW50KQorICAgICAgICAgICAg
ICAgIHJldHVybiBpbmRleCAtIDE7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgQ1JBU0go
KTsKICAgICB9CiAgICAgcmV0dXJuIC0xOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKaW5kZXggYzI3YWYyMy4u
ZDk0ZmNlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCkBAIC0xMTcsNyArMTE3LDkgQEAgU3RyaW5nIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRDo6Zm9udCgpIGNvbnN0CiAgICAgICAgIHNlcmlhbGl6ZWRGb250
LmFwcGVuZChmYW1pbHkpOwogICAgIH0KIAotICAgIHJldHVybiBzZXJpYWxpemVkRm9udC50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHNlcmlhbGl6ZWRGb250LnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpzZXRGb250KGNvbnN0IFN0cmluZyYgbmV3Rm9udCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEQmFzZS5jcHAKaW5kZXggNzY4YzBmYy4uN2E4OGNkNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFz
ZS5jcHAKQEAgLTIxNzIsOCArMjE3MiwxMSBAQCBFeGNlcHRpb25PcjxSZWZQdHI8SW1hZ2VEYXRh
Pj4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6Z2V0SW1hZ2VEYXRhKEltYWdlQgogICAg
ICAgICBjb25zb2xlTWVzc2FnZS5hcHBlbmRMaXRlcmFsKCIgeCAiKTsKICAgICAgICAgY29uc29s
ZU1lc3NhZ2UuYXBwZW5kTnVtYmVyKGltYWdlRGF0YVJlY3QuaGVpZ2h0KCkpOwogCi0gICAgICAg
IGNhbnZhc0Jhc2UoKS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFkZENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2U6OlJlbmRlcmluZywgTWVzc2FnZUxldmVsOjpFcnJvciwgY29uc29sZU1l
c3NhZ2UudG9TdHJpbmcoKSk7Ci0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3Rh
dGVFcnJvciB9OworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBjb25zb2xlTWVzc2FnZS50b1N0
cmluZygpKSB7CisgICAgICAgICAgICBjYW52YXNCYXNlKCkuc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpSZW5kZXJpbmcsIE1lc3NhZ2VM
ZXZlbDo6RXJyb3IsICpzdHJpbmcpOworICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRTdGF0ZUVycm9yIH07CisgICAgICAgIH0KKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAK
ICAgICByZXR1cm4gSW1hZ2VEYXRhOjpjcmVhdGUoaW1hZ2VEYXRhUmVjdC5zaXplKCksIGJ5dGVB
cnJheS5yZWxlYXNlTm9uTnVsbCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXggNzg3NWRhOC4uY2Q1
ZWUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTE2Miw3ICsxNjIsOSBAQCBuYW1lc3BhY2Ugewog
CiAgICAgICAgIFN0cmluZyByZXN1bHQoKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4g
bV9idWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBtX2J1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAg
ICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU291cmNlVHJhY2tlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU291cmNlVHJhY2tlci5jcHAKaW5kZXggMjJkYmE5MC4u
ODBiMWU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNvdXJj
ZVRyYWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTb3VyY2VU
cmFja2VyLmNwcApAQCAtODMsOCArODMsMTEgQEAgU3RyaW5nIEhUTUxTb3VyY2VUcmFja2VyOjpz
b3VyY2UoY29uc3QgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgbV9jdXJyZW50U291cmNlLmFk
dmFuY2UoKTsKICAgICB9CiAKLSAgICBtX2NhY2hlZFNvdXJjZUZvclRva2VuID0gc291cmNlLnRv
U3RyaW5nKCk7Ci0gICAgcmV0dXJuIG1fY2FjaGVkU291cmNlRm9yVG9rZW47CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gc291cmNlLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgbV9jYWNoZWRTb3VyY2VG
b3JUb2tlbiA9ICpzdHJpbmc7CisgICAgICAgIHJldHVybiBtX2NhY2hlZFNvdXJjZUZvclRva2Vu
OworICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgSFRNTFNvdXJjZVRyYWNrZXI6OnNv
dXJjZShjb25zdCBIVE1MVG9rZW4mIHRva2VuLCB1bnNpZ25lZCBhdHRyaWJ1dGVTdGFydCwgdW5z
aWduZWQgYXR0cmlidXRlRW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFRva2VuaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVG9r
ZW5pemVyLmNwcAppbmRleCA4YWMyZjg1Li4zNjRlYzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmNwcApAQCAtMTQxLDggKzE0MSwxMCBAQCBpbmxpbmUg
Ym9vbCBIVE1MVG9rZW5pemVyOjpwcm9jZXNzRW50aXR5KFNlZ21lbnRlZFN0cmluZyYgc291cmNl
KQogICAgICAgICBBU1NFUlQoZGVjb2RlZEVudGl0eS5pc0VtcHR5KCkpOwogICAgICAgICBidWZm
ZXJBU0NJSUNoYXJhY3RlcignJicpOwogICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChkZWNvZGVk
RW50aXR5LmZhaWxlZCgpKQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IGRlY29kZWRFbnRpdHkubGVuZ3RoKCk7ICsraSkKLSAgICAgICAgICAg
IGJ1ZmZlckNoYXJhY3RlcihkZWNvZGVkRW50aXR5W2ldKTsKKyAgICAgICAgICAgIGJ1ZmZlckNo
YXJhY3RlcigqZGVjb2RlZEVudGl0eVtpXSk7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwogfQpA
QCAtODYzLDggKzg2NSwxMCBAQCBib29sIEhUTUxUb2tlbml6ZXI6OnByb2Nlc3NUb2tlbihTZWdt
ZW50ZWRTdHJpbmcmIHNvdXJjZSkKICAgICAgICAgICAgIEFTU0VSVChkZWNvZGVkRW50aXR5Lmlz
RW1wdHkoKSk7CiAgICAgICAgICAgICBtX3Rva2VuLmFwcGVuZFRvQXR0cmlidXRlVmFsdWUoJyYn
KTsKICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChkZWNvZGVkRW50aXR5LmZhaWxl
ZCgpKQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgZGVjb2RlZEVudGl0eS5sZW5ndGgoKTsgKytpKQotICAgICAgICAgICAgICAg
IG1fdG9rZW4uYXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZShkZWNvZGVkRW50aXR5W2ldKTsKKyAgICAg
ICAgICAgICAgICBtX3Rva2VuLmFwcGVuZFRvQXR0cmlidXRlVmFsdWUoKmRlY29kZWRFbnRpdHlb
aV0pOwogICAgICAgICB9CiAgICAgICAgIC8vIFdlJ3JlIHN1cHBvc2VkIHRvIHN3aXRjaCBiYWNr
IHRvIHRoZSBhdHRyaWJ1dGUgdmFsdWUgc3RhdGUgdGhhdAogICAgICAgICAvLyB3ZSB3ZXJlIGlu
IHdoZW4gd2Ugd2VyZSBzd2l0Y2hlZCBpbnRvIHRoaXMgc3RhdGUuIFJhdGhlciB0aGFuCkBAIC0x
NDAzLDcgKzE0MDcsOSBAQCBTdHJpbmcgSFRNTFRva2VuaXplcjo6YnVmZmVyZWRDaGFyYWN0ZXJz
KCkgY29uc3QKICAgICBjaGFyYWN0ZXJzLmFwcGVuZCgnPCcpOwogICAgIGNoYXJhY3RlcnMuYXBw
ZW5kKCcvJyk7CiAgICAgY2hhcmFjdGVycy5hcHBlbmQobV90ZW1wb3JhcnlCdWZmZXIuZGF0YSgp
LCBtX3RlbXBvcmFyeUJ1ZmZlci5zaXplKCkpOwotICAgIHJldHVybiBjaGFyYWN0ZXJzLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gY2hhcmFjdGVycy50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIEhUTUxUb2tlbml6
ZXI6OnVwZGF0ZVN0YXRlRm9yKGNvbnN0IEF0b21pY1N0cmluZyYgdGFnTmFtZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCmluZGV4IGIxMGE0YzQu
Ljg5OWQ0YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVl
QnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWls
ZGVyLmNwcApAQCAtMjU2OSwxOSArMjU2OSwyMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6ZGVm
YXVsdEZvckFmdGVySGVhZCgpCiAKIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpkZWZhdWx0Rm9ySW5U
YWJsZVRleHQoKQogewotICAgIFN0cmluZyBjaGFyYWN0ZXJzID0gbV9wZW5kaW5nVGFibGVDaGFy
YWN0ZXJzLnRvU3RyaW5nKCk7Ci0gICAgbV9wZW5kaW5nVGFibGVDaGFyYWN0ZXJzLmNsZWFyKCk7
Ci0gICAgaWYgKCFpc0FsbFdoaXRlc3BhY2UoY2hhcmFjdGVycykpIHsKLSAgICAgICAgLy8gRklY
TUU6IHBhcnNlIGVycm9yCi0gICAgICAgIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpSZWRpcmVjdFRv
Rm9zdGVyUGFyZW50R3VhcmQgcmVkaXJlY3RlcihtX3RyZWUpOwotICAgICAgICBtX3RyZWUucmVj
b25zdHJ1Y3RUaGVBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKLSAgICAgICAgbV90cmVlLmlu
c2VydFRleHROb2RlKGNoYXJhY3RlcnMsIE5vdEFsbFdoaXRlc3BhY2UpOwotICAgICAgICBtX2Zy
YW1lc2V0T2sgPSBmYWxzZTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtX3BlbmRpbmdUYWJsZUNo
YXJhY3RlcnMudG9TdHJpbmcoKSkgeworICAgICAgICBTdHJpbmcgY2hhcmFjdGVycyA9ICpzdHJp
bmc7CisgICAgICAgIG1fcGVuZGluZ1RhYmxlQ2hhcmFjdGVycy5jbGVhcigpOworICAgICAgICBp
ZiAoIWlzQWxsV2hpdGVzcGFjZShjaGFyYWN0ZXJzKSkgeworICAgICAgICAgICAgLy8gRklYTUU6
IHBhcnNlIGVycm9yCisgICAgICAgICAgICBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6UmVkaXJlY3RU
b0Zvc3RlclBhcmVudEd1YXJkIHJlZGlyZWN0ZXIobV90cmVlKTsKKyAgICAgICAgICAgIG1fdHJl
ZS5yZWNvbnN0cnVjdFRoZUFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpOworICAgICAgICAgICAg
bV90cmVlLmluc2VydFRleHROb2RlKGNoYXJhY3RlcnMsIE5vdEFsbFdoaXRlc3BhY2UpOworICAg
ICAgICAgICAgbV9mcmFtZXNldE9rID0gZmFsc2U7CisgICAgICAgICAgICBtX2luc2VydGlvbk1v
ZGUgPSBtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorICAgICAgICBtX3RyZWUuaW5zZXJ0VGV4dE5vZGUoY2hhcmFjdGVycyk7CiAgICAgICAg
IG1faW5zZXJ0aW9uTW9kZSA9IG1fb3JpZ2luYWxJbnNlcnRpb25Nb2RlOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotICAgIG1fdHJlZS5pbnNlcnRUZXh0Tm9kZShjaGFyYWN0ZXJzKTsKLSAgICBt
X2luc2VydGlvbk1vZGUgPSBtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZTsKKyAgICB9IGVsc2UKKyAg
ICAgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRh
Z0ZvckluSGVhZChBdG9taWNIVE1MVG9rZW4mJiB0b2tlbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwCmluZGV4IDgwYjQyMTMuLjdkNGM4
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxl
Z2F0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVn
YXRlLmNwcApAQCAtNjYsNyArNjYsOSBAQCBzdGF0aWMgaW5saW5lIFN0cmluZyBidWlsZENvbnNv
bGVFcnJvcihjb25zdCBYU1NJbmZvJiB4c3NJbmZvKQogICAgIGVsc2UKICAgICAgICAgbWVzc2Fn
ZS5hcHBlbmRMaXRlcmFsKCIgVGhlIGF1ZGl0b3Igd2FzIGVuYWJsZWQgYmVjYXVzZSB0aGUgc2Vy
dmVyIGRpZCBub3Qgc2VuZCBhbiAnWC1YU1MtUHJvdGVjdGlvbicgaGVhZGVyLiIpOwogCi0gICAg
cmV0dXJuIG1lc3NhZ2UudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtZXNzYWdl
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IFJlZjxGb3JtRGF0YT4gWFNTQXVkaXRvckRlbGVnYXRlOjpnZW5lcmF0ZVZpb2xhdGlvblJlcG9y
dChjb25zdCBYU1NJbmZvJiB4c3NJbmZvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9CdWZmZXJlZExpbmVSZWFkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9CdWZmZXJlZExpbmVSZWFkZXIuY3BwCmluZGV4IDhmMjM2MjUuLmYyOTA4ZDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQnVmZmVyZWRMaW5lUmVhZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0J1ZmZlcmVkTGluZVJlYWRlci5jcHAKQEAgLTky
LDkgKzkyLDExIEBAIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBCdWZmZXJlZExpbmVSZWFkZXI6Om5l
eHRMaW5lKCkKICAgICB9CiAKICAgICBpZiAoc2hvdWxkUmV0dXJuTGluZSkgewotICAgICAgICBh
dXRvIGxpbmUgPSBtX2xpbmVCdWZmZXIudG9TdHJpbmcoKTsKLSAgICAgICAgbV9saW5lQnVmZmVy
LmNsZWFyKCk7Ci0gICAgICAgIHJldHVybiBXVEZNb3ZlKGxpbmUpOworICAgICAgICBpZiAoYXV0
byBsaW5lID0gbV9saW5lQnVmZmVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIG1fbGluZUJ1
ZmZlci5jbGVhcigpOworICAgICAgICAgICAgcmV0dXJuIFdURk1vdmUoKmxpbmUpOworICAgICAg
ICB9CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgQVNTRVJUKG1fYnVmZmVyLmlzRW1w
dHkoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAKaW5kZXggMzMzYTJm
OC4uMjk0MTZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jh
c2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcApAQCAt
MTUzLDcgKzE1MywxMCBAQCB2b2lkIFRyYWNrQmFzZTo6c2V0TGFuZ3VhZ2UoY29uc3QgQXRvbWlj
U3RyaW5nJiBsYW5ndWFnZSkKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiVGhlIGxhbmd1YWdlICciKTsKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGxh
bmd1YWdlKTsKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiJyBpcyBu
b3QgYSB2YWxpZCBCQ1AgNDcgbGFuZ3VhZ2UgdGFnLiIpOwotICAgICAgICAgICAgbWVzc2FnZSA9
IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICBtZXNzYWdlID0gKnN0
cmluZzsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAg
ICB9CiAgICAgICAgIGlmIChhdXRvIGVsZW1lbnQgPSB0aGlzLT5lbGVtZW50KCkpCiAgICAgICAg
ICAgICBlbGVtZW50LT5kb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6
OlJlbmRlcmluZywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBtZXNzYWdlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVlRUQ3VlLmNwcAppbmRleCA3OGY4YWRmLi4zYmJjMjQ2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9WVFRDdWUuY3BwCkBAIC02MjksNyArNjI5LDExIEBAIHZvaWQgVlRUQ3VlOjpk
ZXRlcm1pbmVUZXh0RGlyZWN0aW9uKCkKICAgICAgICAgcGFyYWdyYXBoQnVpbGRlci5hcHBlbmQo
bm9kZS0+bm9kZVZhbHVlKCkpOwogICAgIH0KIAotICAgIFN0cmluZyBwYXJhZ3JhcGggPSBwYXJh
Z3JhcGhCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgU3RyaW5nIHBhcmFncmFwaCA9IFsmXSAoKSB7
CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHBhcmFncmFwaEJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOworICAgIH0oKTsK
ICAgICBpZiAoIXBhcmFncmFwaC5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAKaW5kZXggNTE4ZWQ4Yi4uODBkMDJj
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcApAQCAtNDA0
LDcgKzQwNCwxMCBAQCB2b2lkIFdlYlZUVFBhcnNlcjo6Y3JlYXRlTmV3Q3VlKCkKICAgICBSZWZQ
dHI8V2ViVlRUQ3VlRGF0YT4gY3VlID0gV2ViVlRUQ3VlRGF0YTo6Y3JlYXRlKCk7CiAgICAgY3Vl
LT5zZXRTdGFydFRpbWUobV9jdXJyZW50U3RhcnRUaW1lKTsKICAgICBjdWUtPnNldEVuZFRpbWUo
bV9jdXJyZW50RW5kVGltZSk7Ci0gICAgY3VlLT5zZXRDb250ZW50KG1fY3VycmVudENvbnRlbnQu
dG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbV9jdXJyZW50Q29udGVudC50b1N0
cmluZygpKQorICAgICAgICBjdWUtPnNldENvbnRlbnQoKnN0cmluZyk7CisgICAgZWxzZQorICAg
ICAgICBDUkFTSCgpOwogICAgIGN1ZS0+c2V0SWQobV9jdXJyZW50SWQpOwogICAgIGN1ZS0+c2V0
U2V0dGluZ3MobV9jdXJyZW50U2V0dGluZ3MpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1dlYlZUVFRva2VuaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1dlYlZUVFRva2VuaXplci5jcHAKaW5kZXggMDI0YzA0YS4uZmUzZGRhOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmNwcApAQCAtMTA4LDExICsx
MDgsMTUgQEAgRGF0YVN0YXRlOgogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIC8vIFdlIGRv
bid0IHdhbnQgdG8gYWR2YW5jZSBpbnB1dCBvciBwZXJmb3JtIGEgc3RhdGUgdHJhbnNpdGlvbiAt
IGp1c3QgcmV0dXJuIGEgKG5ldykgdG9rZW4uCiAgICAgICAgICAgICAvLyAoT24gdGhlIG5leHQg
Y2FsbCB0byBuZXh0VG9rZW4gd2Ugd2lsbCBzZWUgJzwnIGFnYWluLCBidXQgdGFrZSB0aGUgb3Ro
ZXIgYnJhbmNoIGluIHRoaXMgaWYgaW5zdGVhZC4pCi0gICAgICAgICAgICByZXR1cm4gZW1pdFRv
a2VuKHRva2VuLCBXZWJWVFRUb2tlbjo6U3RyaW5nVG9rZW4ocmVzdWx0LnRvU3RyaW5nKCkpKTsK
KyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAg
ICAgICAgICAgIHJldHVybiBlbWl0VG9rZW4odG9rZW4sIFdlYlZUVFRva2VuOjpTdHJpbmdUb2tl
bigqc3RyaW5nKSk7CisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9Ci0gICAgfSBlbHNl
IGlmIChjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikKLSAgICAgICAgcmV0dXJuIGFkdmFu
Y2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpTdHJpbmdUb2tlbihy
ZXN1bHQudG9TdHJpbmcoKSkpOwotICAgIGVsc2UgeworICAgIH0gZWxzZSBpZiAoY2hhcmFjdGVy
ID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0
LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lu
cHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OlN0cmluZ1Rva2VuKCpzdHJpbmcpKTsKKyAgICAgICAg
Q1JBU0goKTsKKyAgICB9IGVsc2UgewogICAgICAgICByZXN1bHQuYXBwZW5kKGNoYXJhY3Rlcik7
CiAgICAgICAgIFdFQlZUVF9BRFZBTkNFX1RPKERhdGFTdGF0ZSk7CiAgICAgfQpAQCAtMTQyLDEw
ICsxNDYsMTQgQEAgRXNjYXBlU3RhdGU6CiAgICAgICAgIFdFQlZUVF9BRFZBTkNFX1RPKEVzY2Fw
ZVN0YXRlKTsKICAgICB9IGVsc2UgaWYgKGNoYXJhY3RlciA9PSAnPCcpIHsKICAgICAgICAgcmVz
dWx0LmFwcGVuZChidWZmZXIpOwotICAgICAgICByZXR1cm4gZW1pdFRva2VuKHRva2VuLCBXZWJW
VFRUb2tlbjo6U3RyaW5nVG9rZW4ocmVzdWx0LnRvU3RyaW5nKCkpKTsKKyAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gZW1pdFRv
a2VuKHRva2VuLCBXZWJWVFRUb2tlbjo6U3RyaW5nVG9rZW4oKnN0cmluZykpOworICAgICAgICBD
UkFTSCgpOwogICAgIH0gZWxzZSBpZiAoY2hhcmFjdGVyID09IGtFbmRPZkZpbGVNYXJrZXIpIHsK
ICAgICAgICAgcmVzdWx0LmFwcGVuZChidWZmZXIpOwotICAgICAgICByZXR1cm4gYWR2YW5jZUFu
ZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OlN0cmluZ1Rva2VuKHJlc3Vs
dC50b1N0cmluZygpKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmlu
ZygpKQorICAgICAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9r
ZW4sIFdlYlZUVFRva2VuOjpTdHJpbmdUb2tlbigqc3RyaW5nKSk7CisgICAgICAgIENSQVNIKCk7
CiAgICAgfSBlbHNlIHsKICAgICAgICAgcmVzdWx0LmFwcGVuZChidWZmZXIpOwogICAgICAgICBi
dWZmZXIuY2xlYXIoKTsKQEAgLTE3Miw3ICsxODAsOSBAQCBUYWdTdGF0ZToKICAgICAgICAgV0VC
VlRUX0FEVkFOQ0VfVE8oVGltZXN0YW1wVGFnU3RhdGUpOwogICAgIH0gZWxzZSBpZiAoY2hhcmFj
dGVyID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICBB
U1NFUlQocmVzdWx0LmlzRW1wdHkoKSk7Ci0gICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRv
a2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6U3RhcnRUYWcocmVzdWx0LnRvU3RyaW5n
KCkpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAg
ICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRU
VG9rZW46OlN0YXJ0VGFnKCpzdHJpbmcpKTsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9IGVsc2Ug
ewogICAgICAgICByZXN1bHQuYXBwZW5kKGNoYXJhY3Rlcik7CiAgICAgICAgIFdFQlZUVF9BRFZB
TkNFX1RPKFN0YXJ0VGFnU3RhdGUpOwpAQCAtMTgzLDkgKzE5MywxMSBAQCBTdGFydFRhZ1N0YXRl
OgogICAgICAgICBXRUJWVFRfQURWQU5DRV9UTyhTdGFydFRhZ0Fubm90YXRpb25TdGF0ZSk7CiAg
ICAgZWxzZSBpZiAoY2hhcmFjdGVyID09ICcuJykKICAgICAgICAgV0VCVlRUX0FEVkFOQ0VfVE8o
U3RhcnRUYWdDbGFzc1N0YXRlKTsKLSAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gJz4nIHx8IGNo
YXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKQotICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVt
aXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OlN0YXJ0VGFnKHJlc3VsdC50b1N0
cmluZygpKSk7Ci0gICAgZWxzZSB7CisgICAgZWxzZSBpZiAoY2hhcmFjdGVyID09ICc+JyB8fCBj
aGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRv
a2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6U3RhcnRUYWcoKnN0cmluZykpOworICAg
ICAgICBDUkFTSCgpOworICAgIH0gZWxzZSB7CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2hhcmFj
dGVyKTsKICAgICAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oU3RhcnRUYWdTdGF0ZSk7CiAgICAgfQpA
QCAtMjAyLDI3ICsyMTQsNDQgQEAgU3RhcnRUYWdDbGFzc1N0YXRlOgogICAgIH0gZWxzZSBpZiAo
Y2hhcmFjdGVyID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAg
ICAgICBhZGROZXdDbGFzcyhjbGFzc2VzLCBidWZmZXIpOwogICAgICAgICBidWZmZXIuY2xlYXIo
KTsKLSAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdl
YlZUVFRva2VuOjpTdGFydFRhZyhyZXN1bHQudG9TdHJpbmcoKSwgY2xhc3Nlcy50b0F0b21pY1N0
cmluZygpKSk7CisgICAgICAgIGlmIChhdXRvIHJlc3VsdFN0cmluZyA9IHJlc3VsdC50b1N0cmlu
ZygpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBjbGFzc2VzU3RyaW5nID0gY2xhc3Nlcy50b0F0
b21pY1N0cmluZygpKQorICAgICAgICAgICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2Vu
KG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6U3RhcnRUYWcoKnJlc3VsdFN0cmluZywgKmNs
YXNzZXNTdHJpbmcpKTsKKyAgICAgICAgfQorICAgICAgICBDUkFTSCgpOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIGJ1ZmZlci5hcHBlbmQoY2hhcmFjdGVyKTsKICAgICAgICAgV0VCVlRUX0FEVkFO
Q0VfVE8oU3RhcnRUYWdDbGFzc1N0YXRlKTsKICAgICB9CiAKIFN0YXJ0VGFnQW5ub3RhdGlvblN0
YXRlOgotICAgIGlmIChjaGFyYWN0ZXIgPT0gJz4nIHx8IGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxl
TWFya2VyKQotICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tl
biwgV2ViVlRUVG9rZW46OlN0YXJ0VGFnKHJlc3VsdC50b1N0cmluZygpLCBjbGFzc2VzLnRvQXRv
bWljU3RyaW5nKCksIGJ1ZmZlci50b0F0b21pY1N0cmluZygpKSk7CisgICAgaWYgKGNoYXJhY3Rl
ciA9PSAnPicgfHwgY2hhcmFjdGVyID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgaWYg
KGF1dG8gcmVzdWx0U3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIGlm
IChhdXRvIGNsYXNzZXNTdHJpbmcgPSBjbGFzc2VzLnRvQXRvbWljU3RyaW5nKCkpIHsKKyAgICAg
ICAgICAgICAgICBpZiAoYXV0byBidWZmZXJTdHJpbmcgPSBidWZmZXIudG9BdG9taWNTdHJpbmco
KSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1
dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpTdGFydFRhZygqcmVzdWx0U3RyaW5nLCAqY2xhc3Nlc1N0
cmluZywgKmJ1ZmZlclN0cmluZykpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAg
IENSQVNIKCk7CisgICAgfQogICAgIGJ1ZmZlci5hcHBlbmQoY2hhcmFjdGVyKTsKICAgICBXRUJW
VFRfQURWQU5DRV9UTyhTdGFydFRhZ0Fubm90YXRpb25TdGF0ZSk7CiAKIEVuZFRhZ1N0YXRlOgot
ICAgIGlmIChjaGFyYWN0ZXIgPT0gJz4nIHx8IGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2Vy
KQotICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2Vi
VlRUVG9rZW46OkVuZFRhZyhyZXN1bHQudG9TdHJpbmcoKSkpOworICAgIGlmIChjaGFyYWN0ZXIg
PT0gJz4nIHx8IGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuIGFkdmFu
Y2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpFbmRUYWcoKnN0cmlu
ZykpOworICAgICAgICBDUkFTSCgpOworICAgIH0KICAgICByZXN1bHQuYXBwZW5kKGNoYXJhY3Rl
cik7CiAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oRW5kVGFnU3RhdGUpOwogCiBUaW1lc3RhbXBUYWdT
dGF0ZToKLSAgICBpZiAoY2hhcmFjdGVyID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0ga0VuZE9mRmls
ZU1hcmtlcikKLSAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9r
ZW4sIFdlYlZUVFRva2VuOjpUaW1lc3RhbXBUYWcocmVzdWx0LnRvU3RyaW5nKCkpKTsKKyAgICBp
ZiAoY2hhcmFjdGVyID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikgewor
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAg
IHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6
VGltZXN0YW1wVGFnKCpzdHJpbmcpKTsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9CiAgICAgcmVz
dWx0LmFwcGVuZChjaGFyYWN0ZXIpOwogICAgIFdFQlZUVF9BRFZBTkNFX1RPKFRpbWVzdGFtcFRh
Z1N0YXRlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHls
ZVNoZWV0LmNwcAppbmRleCA5ZDk4NTgxLi42NTFkMmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCkBAIC03NzEsNyArNzcxLDkgQEAg
U3RyaW5nIEluc3BlY3RvclN0eWxlOjpzaG9ydGhhbmRWYWx1ZShjb25zdCBTdHJpbmcmIHNob3J0
aGFuZFByb3BlcnR5KSBjb25zdAogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoaW5kaXZpZHVhbFZhbHVlKTsKICAgICB9Ci0gICAgcmV0dXJu
IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmlu
ZyBJbnNwZWN0b3JTdHlsZTo6c2hvcnRoYW5kUHJpb3JpdHkoY29uc3QgU3RyaW5nJiBzaG9ydGhh
bmRQcm9wZXJ0eSkgY29uc3QKQEAgLTk0MywxMyArOTQ1LDIwIEBAIEV4Y2VwdGlvbk9yPENTU1N0
eWxlUnVsZSo+IEluc3BlY3RvclN0eWxlU2hlZXQ6OmFkZFJ1bGUoY29uc3QgU3RyaW5nJiBzZWxl
Y3RvcikKICAgICBzdHlsZVNoZWV0VGV4dC5hcHBlbmRMaXRlcmFsKCIge30iKTsKIAogICAgIC8v
IFVzaW5nIHNldFRleHQoKSBhcyB0aGlzIG9wZXJhdGlvbiBjaGFuZ2VzIHRoZSBzdHlsZXNoZWV0
IHJ1bGUgc2V0LgotICAgIHNldFRleHQoc3R5bGVTaGVldFRleHQudG9TdHJpbmcoKSk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gc3R5bGVTaGVldFRleHQudG9TdHJpbmcoKSkKKyAgICAgICAgc2V0
VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAgICAvLyBJbnNw
ZWN0b3IgU3R5bGUgU2hlZXRzIGFyZSBhbHdheXMgdHJlYXRlZCBhcyB0aG91Z2ggdGhlaXIgcGFy
c2VkIGRhdGEgaXMgcmVhZHkuCiAgICAgaWYgKG1fb3JpZ2luID09IEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkNTUzo6U3R5bGVTaGVldE9yaWdpbjo6SW5zcGVjdG9yKQogICAgICAgICBmaXJlU3R5bGVT
aGVldENoYW5nZWQoKTsKLSAgICBlbHNlCi0gICAgICAgIHJlcGFyc2VTdHlsZVNoZWV0KHN0eWxl
U2hlZXRUZXh0LnRvU3RyaW5nKCkpOworICAgIGVsc2UgeworICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBzdHlsZVNoZWV0VGV4dC50b1N0cmluZygpKQorICAgICAgICAgICAgcmVwYXJzZVN0eWxl
U2hlZXQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CisgICAg
fQogCiAgICAgQVNTRVJUKG1fcGFnZVN0eWxlU2hlZXQtPmxlbmd0aCgpKTsKICAgICB1bnNpZ25l
ZCBsYXN0UnVsZUluZGV4ID0gbV9wYWdlU3R5bGVTaGVldC0+bGVuZ3RoKCkgLSAxOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBcHBsaWNhdGlv
bkNhY2hlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCmluZGV4IDE5YWY0ZTkuLmJmOWI0ZmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRp
b25DYWNoZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAKQEAgLTE3MiwxMSArMTcyLDE0IEBAIFJl
ZjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcHBsaWNhdGlvbkNhY2hlOjpBcHBsaWNhdGlvbkNhY2hl
UmVzb3VyY2U+IEluc3BlY3RvckFwCiAgICAgaWYgKHJlc291cmNlSW5mby5pc0V4cGxpY2l0KQog
ICAgICAgICB0eXBlcy5hcHBlbmRMaXRlcmFsKCJFeHBsaWNpdCAiKTsKIAotICAgIHJldHVybiBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBcHBsaWNhdGlvbkNhY2hlOjpBcHBsaWNhdGlvbkNhY2hlUmVz
b3VyY2U6OmNyZWF0ZSgpCi0gICAgICAgIC5zZXRVcmwocmVzb3VyY2VJbmZvLnJlc291cmNlLnN0
cmluZygpKQotICAgICAgICAuc2V0U2l6ZShzdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlSW5mby5z
aXplKSkKLSAgICAgICAgLnNldFR5cGUodHlwZXMudG9TdHJpbmcoKSkKLSAgICAgICAgLnJlbGVh
c2UoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0eXBlcy50b1N0cmluZygpKSB7CisgICAgICAg
IHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpBcHBsaWNhdGlvbkNhY2hlOjpBcHBsaWNhdGlv
bkNhY2hlUmVzb3VyY2U6OmNyZWF0ZSgpCisgICAgICAgICAgICAuc2V0VXJsKHJlc291cmNlSW5m
by5yZXNvdXJjZS5zdHJpbmcoKSkKKyAgICAgICAgICAgIC5zZXRTaXplKHN0YXRpY19jYXN0PGlu
dD4ocmVzb3VyY2VJbmZvLnNpemUpKQorICAgICAgICAgICAgLnNldFR5cGUoKnN0cmluZykKKyAg
ICAgICAgICAgIC5yZWxlYXNlKCk7CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAppbmRleCA0NmU0YWZlLi5hZjE3MDQ1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdv
cmtBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JOZXR3b3JrQWdlbnQuY3BwCkBAIC0xMzQsOCArMTM0LDExIEBAIHB1YmxpYzoKICAgICAgICAg
aWYgKG1fZGVjb2RlcikKICAgICAgICAgICAgIG1fcmVzcG9uc2VUZXh0LmFwcGVuZChtX2RlY29k
ZXItPmZsdXNoKCkpOwogCi0gICAgICAgIG1fY2FsbGJhY2stPnNlbmRTdWNjZXNzKG1fcmVzcG9u
c2VUZXh0LnRvU3RyaW5nKCksIG1fbWltZVR5cGUsIG1fc3RhdHVzQ29kZSk7Ci0gICAgICAgIGRp
c3Bvc2UoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gbV9yZXNwb25zZVRleHQudG9TdHJp
bmcoKSkgeworICAgICAgICAgICAgbV9jYWxsYmFjay0+c2VuZFN1Y2Nlc3MoKnN0cmluZywgbV9t
aW1lVHlwZSwgbV9zdGF0dXNDb2RlKTsKKyAgICAgICAgICAgIGRpc3Bvc2UoKTsKKyAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIHZvaWQgZGlkRmFpbChj
b25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikgb3ZlcnJpZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50LmNwcAppbmRleCBkYzk2NDg2Li42
MzgzOGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkNv
bnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJD
b25zb2xlQWdlbnQuY3BwCkBAIC0xNjksNyArMTY5LDEwIEBAIHZvaWQgV2ViQ29uc29sZUFnZW50
OjpkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBS
ZXNvCiAgICAgICAgIG1lc3NhZ2UuYXBwZW5kKGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkp
OwogICAgIH0KIAotICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25z
b2xlTWVzc2FnZT4oTWVzc2FnZVNvdXJjZTo6TmV0d29yaywgTWVzc2FnZVR5cGU6OkxvZywgTWVz
c2FnZUxldmVsOjpFcnJvciwgbWVzc2FnZS50b1N0cmluZygpLCBlcnJvci5mYWlsaW5nVVJMKCks
IDAsIDAsIG51bGxwdHIsIHJlcXVlc3RJZGVudGlmaWVyKSk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gbWVzc2FnZS50b1N0cmluZygpKQorICAgICAgICBhZGRNZXNzYWdlVG9Db25zb2xlKHN0ZDo6
bWFrZV91bmlxdWU8Q29uc29sZU1lc3NhZ2U+KE1lc3NhZ2VTb3VyY2U6Ok5ldHdvcmssIE1lc3Nh
Z2VUeXBlOjpMb2csIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICpzdHJpbmcsIGVycm9yLmZhaWxpbmdV
UkwoKSwgMCwgMCwgbnVsbHB0ciwgcmVxdWVzdElkZW50aWZpZXIpKTsKKyAgICBlbHNlCisgICAg
ICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHAKaW5kZXggNjg4MDRm
Mi4uZjg4YTQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2lu
QWNjZXNzQ29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2lu
QWNjZXNzQ29udHJvbC5jcHAKQEAgLTExMiw4ICsxMTIsMTIgQEAgUmVzb3VyY2VSZXF1ZXN0IGNy
ZWF0ZUFjY2Vzc0NvbnRyb2xQcmVmbGlnaHRSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWUKIAogICAgICAgICAgICAgaGVhZGVyQnVmZmVyLmFwcGVuZChoZWFkZXJGaWVsZCk7CiAg
ICAgICAgIH0KLSAgICAgICAgaWYgKCFoZWFkZXJCdWZmZXIuaXNFbXB0eSgpKQotICAgICAgICAg
ICAgcHJlZmxpZ2h0UmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkFj
Y2Vzc0NvbnRyb2xSZXF1ZXN0SGVhZGVycywgaGVhZGVyQnVmZmVyLnRvU3RyaW5nKCkpOworICAg
ICAgICBpZiAoIWhlYWRlckJ1ZmZlci5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IGhlYWRlckJ1ZmZlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHByZWZs
aWdodFJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpBY2Nlc3NDb250
cm9sUmVxdWVzdEhlYWRlcnMsICpzdHJpbmcpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIENSQVNIKCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICByZXR1cm4gcHJlZmxpZ2h0
UmVxdWVzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzLmNwcAppbmRleCA0ZGYyNWRhLi45ODZmZTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuY3BwCkBAIC0yNjgsNyArMjY4LDkgQEAgU3Ry
aW5nIFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OnRvU3RyaW5nKCkgY29uc3QKIAogICAgIGJ1aWxk
ZXIuYXBwZW5kKCdcbicpOwogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3Rv
cmFnZS5jcHAKaW5kZXggZmYyOTM4OS4uNGYyMmQ0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCkBA
IC04NDEsMTcgKzg0MSwyMCBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpzdG9yZShB
cHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UqIHJlc291cmNlLCB1bnNpZ25lZAogCiAgICAgLy8gVGhl
biwgaW5zZXJ0IHRoZSByZXNvdXJjZQogICAgIAotICAgIC8vIFNlcmlhbGl6ZSB0aGUgaGVhZGVy
cwotICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsKLSAgICAKLSAgICBmb3IgKGNvbnN0
IGF1dG8mIGhlYWRlciA6IHJlc291cmNlLT5yZXNwb25zZSgpLmh0dHBIZWFkZXJGaWVsZHMoKSkg
ewotICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChoZWFkZXIua2V5KTsKLSAgICAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmQoJzonKTsKLSAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoaGVh
ZGVyLnZhbHVlKTsKLSAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgfQot
ICAgIAotICAgIFN0cmluZyBoZWFkZXJzID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOworICAg
IFN0cmluZyBoZWFkZXJzID0gWyZdICgpIHsKKyAgICAgICAgLy8gU2VyaWFsaXplIHRoZSBoZWFk
ZXJzCisgICAgICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsKKyAgICAKKyAgICAgICAg
Zm9yIChjb25zdCBhdXRvJiBoZWFkZXIgOiByZXNvdXJjZS0+cmVzcG9uc2UoKS5odHRwSGVhZGVy
RmllbGRzKCkpIHsKKyAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGhlYWRlci5rZXkp
OworICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJzonKTsKKyAgICAgICAgICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kKGhlYWRlci52YWx1ZSk7CisgICAgICAgICAgICBzdHJpbmdCdWls
ZGVyLmFwcGVuZCgnXG4nKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBz
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICAgICAgQ1JBU0goKTsKKyAgICB9KCk7CiAgICAgCiAgICAgU1FMaXRlU3RhdGVtZW50IHJlc291
cmNlU3RhdGVtZW50KG1fZGF0YWJhc2UsICJJTlNFUlQgSU5UTyBDYWNoZVJlc291cmNlcyAodXJs
LCBzdGF0dXNDb2RlLCByZXNwb25zZVVSTCwgaGVhZGVycywgZGF0YSwgbWltZVR5cGUsIHRleHRF
bmNvZGluZ05hbWUpIFZBTFVFUyAoPywgPywgPywgPywgPywgPywgPykiKTsKICAgICBpZiAocmVz
b3VyY2VTdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAKaW5kZXggMTJh
MzBjYy4uY2ZlNzM4NjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2
ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJj
aGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcApAQCAtNTU3LDIxICs1NTcsMjQgQEAgUmVmUHRy
PExlZ2FjeVdlYkFyY2hpdmU+IExlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0ZUZyb21TZWxlY3Rpb24o
RnJhbWUqIGZyYW1lKQogICAgIGlmIChhdXRvIHNlbGVjdGlvblJhbmdlID0gZnJhbWUtPnNlbGVj
dGlvbigpLnRvTm9ybWFsaXplZFJhbmdlKCkpCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGNyZWF0
ZU1hcmt1cCgqc2VsZWN0aW9uUmFuZ2UsICZub2RlTGlzdCwgQW5ub3RhdGVGb3JJbnRlcmNoYW5n
ZSkpOwogCi0gICAgYXV0byBhcmNoaXZlID0gY3JlYXRlKGJ1aWxkZXIudG9TdHJpbmcoKSwgKmZy
YW1lLCBub2RlTGlzdCwgbnVsbHB0cik7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpKSB7CisgICAgICAgIGF1dG8gYXJjaGl2ZSA9IGNyZWF0ZSgqc3RyaW5nLCAqZnJh
bWUsIG5vZGVMaXN0LCBudWxscHRyKTsKICAgICAKLSAgICBpZiAoIWRvY3VtZW50LT5pc0ZyYW1l
U2V0KCkpCi0gICAgICAgIHJldHVybiBhcmNoaXZlOworICAgICAgICBpZiAoIWRvY3VtZW50LT5p
c0ZyYW1lU2V0KCkpCisgICAgICAgICAgICByZXR1cm4gYXJjaGl2ZTsKICAgICAgICAgCi0gICAg
Ly8gV3JhcCB0aGUgZnJhbWVzZXQgZG9jdW1lbnQgaW4gYW4gaWZyYW1lIHNvIGl0IGNhbiBiZSBw
YXN0ZWQgaW50bwotICAgIC8vIGFub3RoZXIgZG9jdW1lbnQgKHdoaWNoIHdpbGwgaGF2ZSBhIGJv
ZHkgb3IgZnJhbWVzZXQgb2YgaXRzIG93bikuIAotICAgIFN0cmluZyBpZnJhbWVNYXJrdXAgPSAi
PGlmcmFtZSBmcmFtZWJvcmRlcj1cIm5vXCIgbWFyZ2lud2lkdGg9XCIwXCIgbWFyZ2luaGVpZ2h0
PVwiMFwiIHdpZHRoPVwiOTglJVwiIGhlaWdodD1cIjk4JSVcIiBzcmM9XCIiICsgZnJhbWUtPmxv
YWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnJlc3BvbnNlKCkudXJsKCkuc3RyaW5nKCkgKyAiXCI+
PC9pZnJhbWU+IjsKLSAgICBhdXRvIGlmcmFtZVJlc291cmNlID0gQXJjaGl2ZVJlc291cmNlOjpj
cmVhdGUodXRmOEJ1ZmZlcihpZnJhbWVNYXJrdXApLCBibGFua1VSTCgpLCAidGV4dC9odG1sIiwg
IlVURi04IiwgU3RyaW5nKCkpOworICAgICAgICAvLyBXcmFwIHRoZSBmcmFtZXNldCBkb2N1bWVu
dCBpbiBhbiBpZnJhbWUgc28gaXQgY2FuIGJlIHBhc3RlZCBpbnRvCisgICAgICAgIC8vIGFub3Ro
ZXIgZG9jdW1lbnQgKHdoaWNoIHdpbGwgaGF2ZSBhIGJvZHkgb3IgZnJhbWVzZXQgb2YgaXRzIG93
bikuIAorICAgICAgICBTdHJpbmcgaWZyYW1lTWFya3VwID0gIjxpZnJhbWUgZnJhbWVib3JkZXI9
XCJub1wiIG1hcmdpbndpZHRoPVwiMFwiIG1hcmdpbmhlaWdodD1cIjBcIiB3aWR0aD1cIjk4JSVc
IiBoZWlnaHQ9XCI5OCUlXCIgc3JjPVwiIiArIGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRl
cigpLT5yZXNwb25zZSgpLnVybCgpLnN0cmluZygpICsgIlwiPjwvaWZyYW1lPiI7CisgICAgICAg
IGF1dG8gaWZyYW1lUmVzb3VyY2UgPSBBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZSh1dGY4QnVmZmVy
KGlmcmFtZU1hcmt1cCksIGJsYW5rVVJMKCksICJ0ZXh0L2h0bWwiLCAiVVRGLTgiLCBTdHJpbmco
KSk7CiAKLSAgICBWZWN0b3I8UmVmPExlZ2FjeVdlYkFyY2hpdmU+PiBzdWJmcmFtZUFyY2hpdmVz
OwotICAgIHN1YmZyYW1lQXJjaGl2ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSgxKTsKLSAgICBz
dWJmcmFtZUFyY2hpdmVzLnVuY2hlY2tlZEFwcGVuZChhcmNoaXZlLnJlbGVhc2VOb25OdWxsKCkp
OworICAgICAgICBWZWN0b3I8UmVmPExlZ2FjeVdlYkFyY2hpdmU+PiBzdWJmcmFtZUFyY2hpdmVz
OworICAgICAgICBzdWJmcmFtZUFyY2hpdmVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoMSk7Cisg
ICAgICAgIHN1YmZyYW1lQXJjaGl2ZXMudW5jaGVja2VkQXBwZW5kKGFyY2hpdmUucmVsZWFzZU5v
bk51bGwoKSk7CiAKLSAgICByZXR1cm4gY3JlYXRlKGlmcmFtZVJlc291cmNlLnJlbGVhc2VOb25O
dWxsKCksIHsgfSwgV1RGTW92ZShzdWJmcmFtZUFyY2hpdmVzKSk7CisgICAgICAgIHJldHVybiBj
cmVhdGUoaWZyYW1lUmVzb3VyY2UucmVsZWFzZU5vbk51bGwoKSwgeyB9LCBXVEZNb3ZlKHN1YmZy
YW1lQXJjaGl2ZXMpKTsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHAKaW5kZXgg
NzA1YzZkYy4uYWEwYTU3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hp
dmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJj
aGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwCkBAIC03Niw3ICs3Niw5IEBAIHN0YXRpYyBTdHJp
bmcgZ2VuZXJhdGVSYW5kb21Cb3VuZGFyeSgpCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5k
KGxvd2VyTmliYmxlVG9BU0NJSUhleERpZ2l0KHJhbmRvbVZhbHVlc1tpXSkpOwogICAgICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZCh1cHBlck5pYmJsZVRvQVNDSUlIZXhEaWdpdChyYW5kb21WYWx1
ZXNbaV0pKTsKICAgICB9Ci0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgcmVwbGFjZU5v
blByaW50YWJsZUNoYXJhY3RlcnMoY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtODgsNyArOTAsOSBA
QCBzdGF0aWMgU3RyaW5nIHJlcGxhY2VOb25QcmludGFibGVDaGFyYWN0ZXJzKGNvbnN0IFN0cmlu
ZyYgdGV4dCkKICAgICAgICAgZWxzZQogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQo
Jz8nKTsKICAgICB9Ci0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIE1IVE1MQXJjaGl2ZTo6TUhUTUxBcmNoaXZl
KCkKQEAgLTE2MCwxMCArMTY0LDE2IEBAIFJlZjxTaGFyZWRCdWZmZXI+IE1IVE1MQXJjaGl2ZTo6
Z2VuZXJhdGVNSFRNTERhdGEoUGFnZSogcGFnZSkKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgi
XCJcclxuXHJcbiIpOwogCiAgICAgLy8gV2UgdXNlIHV0ZjgoKSBiZWxvdyBpbnN0ZWFkIG9mIGFz
Y2lpKCkgYXMgYXNjaWkoKSByZXBsYWNlcyBDUkxGcyB3aXRoID8/ICh3ZSBzdGlsbCBvbmx5IGhh
dmUgcHV0IEFTQ0lJIGNoYXJhY3RlcnMgaW4gaXQpLgotICAgIEFTU0VSVChzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCkuaXNBbGxBU0NJSSgpKTsKLSAgICBDU3RyaW5nIGFzY2lpU3RyaW5nID0gc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpLnV0ZjgoKTsKLSAgICBhdXRvIG1odG1sRGF0YSA9IFNoYXJl
ZEJ1ZmZlcjo6Y3JlYXRlKCk7Ci0gICAgbWh0bWxEYXRhLT5hcHBlbmQoYXNjaWlTdHJpbmcuZGF0
YSgpLCBhc2NpaVN0cmluZy5sZW5ndGgoKSk7CisgICAgYXV0byBtaHRtbERhdGEgPSBbJl0gKCkg
eworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpIHsK
KyAgICAgICAgICAgIEFTU0VSVChzdHJpbmctPmlzQWxsQVNDSUkoKSk7CisgICAgICAgICAgICBD
U3RyaW5nIGFzY2lpU3RyaW5nID0gc3RyaW5nLT51dGY4KCk7CisgICAgICAgICAgICBhdXRvIHJl
c3VsdCA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCk7CisgICAgICAgICAgICByZXN1bHQtPmFwcGVu
ZChhc2NpaVN0cmluZy5kYXRhKCksIGFzY2lpU3RyaW5nLmxlbmd0aCgpKTsKKyAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgQ1JBU0goKTsKKyAgICB9KCk7CiAK
ICAgICBmb3IgKGF1dG8mIHJlc291cmNlIDogcmVzb3VyY2VzKSB7CiAgICAgICAgIHN0cmluZ0J1
aWxkZXIuY2xlYXIoKTsKQEAgLTE4Myw4ICsxOTMsMTAgQEAgUmVmPFNoYXJlZEJ1ZmZlcj4gTUhU
TUxBcmNoaXZlOjpnZW5lcmF0ZU1IVE1MRGF0YShQYWdlKiBwYWdlKQogICAgICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZChyZXNvdXJjZS51cmwpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
ZCgiXHJcblxyXG4iKTsKIAotICAgICAgICBhc2NpaVN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKS51dGY4KCk7Ci0gICAgICAgIG1odG1sRGF0YS0+YXBwZW5kKGFzY2lpU3RyaW5nLmRh
dGEoKSwgYXNjaWlTdHJpbmcubGVuZ3RoKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBz
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIENTdHJpbmcgYXNjaWlTdHJp
bmcgPSBzdHJpbmctPnV0ZjgoKTsKKyAgICAgICAgICAgIG1odG1sRGF0YS0+YXBwZW5kKGFzY2lp
U3RyaW5nLmRhdGEoKSwgYXNjaWlTdHJpbmcubGVuZ3RoKCkpOworICAgICAgICB9CiAKICAgICAg
ICAgLy8gRklYTUU6IGlkZWFsbHkgd2Ugd291bGQgZW5jb2RlIHRoZSBjb250ZW50IGFzIGEgc3Ry
ZWFtIHdpdGhvdXQgaGF2aW5nIHRvIGZldGNoIGl0IGFsbC4KICAgICAgICAgY29uc3QgY2hhciog
ZGF0YSA9IHJlc291cmNlLmRhdGEtPmRhdGEoKTsKQEAgLTIxMCw4ICsyMjIsMTAgQEAgUmVmPFNo
YXJlZEJ1ZmZlcj4gTUhUTUxBcmNoaXZlOjpnZW5lcmF0ZU1IVE1MRGF0YShQYWdlKiBwYWdlKQog
ICAgICAgICB9CiAgICAgfQogCi0gICAgYXNjaWlTdHJpbmcgPSBtYWtlU3RyaW5nKCItLSIsIGJv
dW5kYXJ5LCAiLS1cclxuIikudXRmOCgpOwotICAgIG1odG1sRGF0YS0+YXBwZW5kKGFzY2lpU3Ry
aW5nLmRhdGEoKSwgYXNjaWlTdHJpbmcubGVuZ3RoKCkpOworICAgIHsKKyAgICAgICAgQ1N0cmlu
ZyBhc2NpaVN0cmluZyA9IG1ha2VTdHJpbmcoIi0tIiwgYm91bmRhcnksICItLVxyXG4iKS51dGY4
KCk7CisgICAgICAgIG1odG1sRGF0YS0+YXBwZW5kKGFzY2lpU3RyaW5nLmRhdGEoKSwgYXNjaWlT
dHJpbmcubGVuZ3RoKCkpOworICAgIH0KIAogICAgIHJldHVybiBtaHRtbERhdGE7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFG
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYu
Y3BwCmluZGV4IGMxMzkwNzYuLmQ4M2UyNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwCkBAIC0zNDcsMTQgKzM0Nywx
OCBAQCBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OndpbmRvd1JvdW5kZWRD
b3JuZXJSYWRpdXNDU1MoKSBjb25zdAogCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAg
IGFwcGVuZENTUyhidWlsZGVyLCBDU1NQcm9wZXJ0eUJvcmRlclJhZGl1cywgU3RyaW5nOjpmb3Jt
YXQoIiUuMDJmcHgiLCByYWRpdXMpLCBiZWhhdmlvciA9PSBrTUFDYXB0aW9uQXBwZWFyYW5jZUJl
aGF2aW9yVXNlVmFsdWUpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlh
QUY6OmNvbG9yUHJvcGVydHlDU1MoQ1NTUHJvcGVydHlJRCBpZCwgY29uc3QgQ29sb3ImIGNvbG9y
LCBib29sIGltcG9ydGFudCkgY29uc3QKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAg
ICAgYXBwZW5kQ1NTKGJ1aWxkZXIsIGlkLCBjb2xvci5zZXJpYWxpemVkKCksIGltcG9ydGFudCk7
Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIGJvb2wgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25TdHJva2VX
aWR0aEZvckZvbnQoZmxvYXQgZm9udFNpemUsIGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGZsb2F0
JiBzdHJva2VXaWR0aCwgYm9vbCYgaW1wb3J0YW50KSBjb25zdApAQCAtNDA2LDcgKzQxMCw5IEBA
IFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y2FwdGlvbnNUZXh0RWRnZUNT
UygpIGNvbnN0CiAgICAgICAgIGFwcGVuZENTUyhidWlsZGVyLCBDU1NQcm9wZXJ0eVN0cm9rZUxp
bmVjYXAsIGdldFZhbHVlTmFtZShDU1NWYWx1ZVJvdW5kKSwgaW1wb3J0YW50KTsKICAgICB9CiAg
ICAgCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y2FwdGlvbnNE
ZWZhdWx0Rm9udENTUygpIGNvbnN0CkBAIC00NDgsNyArNDU0LDkgQEAgU3RyaW5nIENhcHRpb25V
c2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc0RlZmF1bHRGb250Q1NTKCkgY29uc3QKICAg
ICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgIWltcG9ydGFudCIpOwogICAgIGJ1aWxkZXIu
YXBwZW5kKCc7Jyk7CiAgICAgCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIGZsb2F0IENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRp
YUFGOjpjYXB0aW9uRm9udFNpemVTY2FsZUFuZEltcG9ydGFuY2UoYm9vbCYgaW1wb3J0YW50KSBj
b25zdApAQCAtNTk1LDkgKzYwMywxMSBAQCBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01l
ZGlhQUY6OmNhcHRpb25zU3R5bGVTaGVldE92ZXJyaWRlKCkgY29uc3QKICAgICB9CiAjZW5kaWYg
Ly8gSEFWRShNRURJQV9BQ0NFU1NJQklMSVRZX0ZSQU1FV09SSykKIAotICAgIExPRyhNZWRpYSwg
IkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc1N0eWxlU2hlZXRPdmVycmlk
ZVNldHRpbmcgc3R5bGUgdG86XG4lcyIsIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LnRvU3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0KLSAgICByZXR1cm4gY2FwdGlvbnNPdmVycmlkZVN0eWxl
U2hlZXQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBjYXB0aW9uc092ZXJyaWRl
U3R5bGVTaGVldC50b1N0cmluZygpKSB7CisgICAgICAgIExPRyhNZWRpYSwgIkNhcHRpb25Vc2Vy
UHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc1N0eWxlU2hlZXRPdmVycmlkZVNldHRpbmcgc3R5
bGUgdG86XG4lcyIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIGxhbmd1YWdlSWRl
bnRpZmllcihjb25zdCBTdHJpbmcmIGxhbmd1YWdlQ29kZSkKQEAgLTY2NCwxMCArNjc0LDEzIEBA
IHN0YXRpYyBTdHJpbmcgdHJhY2tEaXNwbGF5TmFtZShBdWRpb1RyYWNrKiB0cmFjaykKICAgICBp
ZiAoZGlzcGxheU5hbWUuaXNFbXB0eSgpKQogICAgICAgICBkaXNwbGF5TmFtZS5hcHBlbmQoYXVk
aW9UcmFja05vTGFiZWxUZXh0KCkpOwogCi0gICAgaWYgKHRyYWNrLT5raW5kKCkgIT0gQXVkaW9U
cmFjazo6ZGVzY3JpcHRpb25LZXl3b3JkKCkpCi0gICAgICAgIHJldHVybiBkaXNwbGF5TmFtZS50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGRpc3BsYXlOYW1lLnRvU3RyaW5nKCkp
IHsKKyAgICAgICAgaWYgKHRyYWNrLT5raW5kKCkgIT0gQXVkaW9UcmFjazo6ZGVzY3JpcHRpb25L
ZXl3b3JkKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKIAotICAgIHJldHVybiBhdWRp
b0Rlc2NyaXB0aW9uVHJhY2tTdWZmaXhUZXh0KGRpc3BsYXlOYW1lLnRvU3RyaW5nKCkpOworICAg
ICAgICByZXR1cm4gYXVkaW9EZXNjcmlwdGlvblRyYWNrU3VmZml4VGV4dCgqc3RyaW5nKTsKKyAg
ICB9CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRp
YUFGOjpkaXNwbGF5TmFtZUZvclRyYWNrKEF1ZGlvVHJhY2sqIHRyYWNrKSBjb25zdApAQCAtNjg4
LDI2ICs3MDEsMjkgQEAgc3RhdGljIFN0cmluZyB0cmFja0Rpc3BsYXlOYW1lKFRleHRUcmFjayog
dHJhY2spCiAgICAgaWYgKGRpc3BsYXlOYW1lQnVpbGRlci5pc0VtcHR5KCkpCiAgICAgICAgIGRp
c3BsYXlOYW1lQnVpbGRlci5hcHBlbmQodGV4dFRyYWNrTm9MYWJlbFRleHQoKSk7CiAKLSAgICBT
dHJpbmcgZGlzcGxheU5hbWUgPSBkaXNwbGF5TmFtZUJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBkaXNwbGF5TmFtZUJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAg
ICBTdHJpbmcgZGlzcGxheU5hbWUgPSAqc3RyaW5nOwogCi0gICAgaWYgKHRyYWNrLT5pc0Nsb3Nl
ZENhcHRpb25zKCkpIHsKLSAgICAgICAgZGlzcGxheU5hbWUgPSBjbG9zZWRDYXB0aW9uVHJhY2tN
ZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOwotICAgICAgICBpZiAodHJhY2stPmlzRWFzeVRvUmVh
ZCgpKQotICAgICAgICAgICAgZGlzcGxheU5hbWUgPSBlYXN5UmVhZGVyVHJhY2tNZW51SXRlbVRl
eHQoZGlzcGxheU5hbWUpOworICAgICAgICBpZiAodHJhY2stPmlzQ2xvc2VkQ2FwdGlvbnMoKSkg
eworICAgICAgICAgICAgZGlzcGxheU5hbWUgPSBjbG9zZWRDYXB0aW9uVHJhY2tNZW51SXRlbVRl
eHQoZGlzcGxheU5hbWUpOworICAgICAgICAgICAgaWYgKHRyYWNrLT5pc0Vhc3lUb1JlYWQoKSkK
KyAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IGVhc3lSZWFkZXJUcmFja01lbnVJdGVtVGV4
dChkaXNwbGF5TmFtZSk7CiAKLSAgICAgICAgcmV0dXJuIGRpc3BsYXlOYW1lOwotICAgIH0KKyAg
ICAgICAgICAgIHJldHVybiBkaXNwbGF5TmFtZTsKKyAgICAgICAgfQogCi0gICAgaWYgKHRyYWNr
LT5pc1NESCgpKQotICAgICAgICBkaXNwbGF5TmFtZSA9IHNkaFRyYWNrTWVudUl0ZW1UZXh0KGRp
c3BsYXlOYW1lKTsKKyAgICAgICAgaWYgKHRyYWNrLT5pc1NESCgpKQorICAgICAgICAgICAgZGlz
cGxheU5hbWUgPSBzZGhUcmFja01lbnVJdGVtVGV4dChkaXNwbGF5TmFtZSk7CiAKLSAgICBpZiAo
dHJhY2stPmNvbnRhaW5zT25seUZvcmNlZFN1YnRpdGxlcygpKQotICAgICAgICBkaXNwbGF5TmFt
ZSA9IGZvcmNlZFRyYWNrTWVudUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsKKyAgICAgICAgaWYgKHRy
YWNrLT5jb250YWluc09ubHlGb3JjZWRTdWJ0aXRsZXMoKSkKKyAgICAgICAgICAgIGRpc3BsYXlO
YW1lID0gZm9yY2VkVHJhY2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOwogCi0gICAgaWYgKHRy
YWNrLT5pc0Vhc3lUb1JlYWQoKSkKLSAgICAgICAgZGlzcGxheU5hbWUgPSBlYXN5UmVhZGVyVHJh
Y2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOworICAgICAgICBpZiAodHJhY2stPmlzRWFzeVRv
UmVhZCgpKQorICAgICAgICAgICAgZGlzcGxheU5hbWUgPSBlYXN5UmVhZGVyVHJhY2tNZW51SXRl
bVRleHQoZGlzcGxheU5hbWUpOwogCi0gICAgcmV0dXJuIGRpc3BsYXlOYW1lOworICAgICAgICBy
ZXR1cm4gZGlzcGxheU5hbWU7CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBDYXB0
aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6ZGlzcGxheU5hbWVGb3JUcmFjayhUZXh0VHJhY2sq
IHRyYWNrKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBhODQyNjVhLi4zZTQyNDZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtMzY5LDcgKzM2OSw5IEBAIHN0YXRpYyBKU0M6OllhcnI6
OlJlZ3VsYXJFeHByZXNzaW9uIGNyZWF0ZVJlZ0V4cEZvckxhYmVscyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYKICAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kTGl0ZXJhbCgiXFxiIik7CiAgICAgfQog
ICAgIHBhdHRlcm4uYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIEpTQzo6WWFycjo6UmVndWxhckV4
cHJlc3Npb24ocGF0dGVybi50b1N0cmluZygpLCBKU0M6OllhcnI6OlRleHRDYXNlSW5zZW5zaXRp
dmUpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHBhdHRlcm4udG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuIEpTQzo6WWFycjo6UmVndWxhckV4cHJlc3Npb24oKnN0cmluZywgSlNDOjpZYXJyOjpU
ZXh0Q2FzZUluc2Vuc2l0aXZlKTsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgRnJhbWU6OnNl
YXJjaEZvckxhYmVsc0Fib3ZlQ2VsbChjb25zdCBKU0M6OllhcnI6OlJlZ3VsYXJFeHByZXNzaW9u
JiByZWdFeHAsIEhUTUxUYWJsZUNlbGxFbGVtZW50KiBjZWxsLCBzaXplX3QqIHJlc3VsdERpc3Rh
bmNlRnJvbVN0YXJ0T2ZDZWxsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVRyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwCmluZGV4IDI2Y2Nj
N2EuLjRkY2VmMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKQEAgLTE1MCw3ICsxNTAs
OSBAQCBBdG9taWNTdHJpbmcgRnJhbWVUcmVlOjp1bmlxdWVDaGlsZE5hbWUoY29uc3QgQXRvbWlj
U3RyaW5nJiByZXF1ZXN0ZWROYW1lKSBjb25zdAogICAgIG5hbWUuYXBwZW5kTnVtYmVyKGNoaWxk
Q291bnQoKSk7CiAgICAgbmFtZS5hcHBlbmRMaXRlcmFsKCItLT4tLT4iKTsKIAotICAgIHJldHVy
biBuYW1lLnRvQXRvbWljU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbmFtZS50b0F0
b21pY1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiBzdGF0aWMgYm9vbCBpblNjb3BlKEZyYW1lJiBmcmFtZSwgVHJlZVNjb3BlJiBzY29wZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAzYmQwMjJmLi5hZGNjMmYwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0xNDUyLDcgKzE0NTIsMTAgQEAgdm9pZCBGcmFtZVZpZXc6
OmxvZ01vY2tTY3JvbGxBbmltYXRvck1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSBjb25z
dAogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIk1haW4iKTsKICAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwoIkZyYW1lVmlldzogIik7CiAgICAgYnVpbGRlci5hcHBlbmQobWVzc2FnZSk7
Ci0gICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBN
ZXNzYWdlTGV2ZWw6OkRlYnVnLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdlTGV2ZWw6OkRlYnVnLCAqc3RyaW5n
KTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgRnJhbWVWaWV3OjpzZXRD
YW5ub3RCbGl0VG9XaW5kb3coKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
U2VyaWFsaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcApp
bmRleCA1ZjY0MjI0Li45YWE5ZjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VTZXJpYWxpemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVy
LmNwcApAQCAtMjYzLDggKzI2MywxMSBAQCB2b2lkIFBhZ2VTZXJpYWxpemVyOjpzZXJpYWxpemVD
U1NTdHlsZVNoZWV0KENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQsIGNvbnN0IFVSTAogICAgICAg
ICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNoZWNrIHdoZXRoZXIgYSBjaGFyc2V0IGhhcyBiZWVuIHNw
ZWNpZmllZCBhbmQgaWYgbm9uZSB3YXMgZm91bmQgYWRkIG9uZS4KICAgICAgICAgVGV4dEVuY29k
aW5nIHRleHRFbmNvZGluZyhzdHlsZVNoZWV0LT5jb250ZW50cygpLmNoYXJzZXQoKSk7CiAgICAg
ICAgIEFTU0VSVCh0ZXh0RW5jb2RpbmcuaXNWYWxpZCgpKTsKLSAgICAgICAgbV9yZXNvdXJjZXMu
YXBwZW5kKHsgdXJsLCBBU0NJSUxpdGVyYWwgeyAidGV4dC9jc3MiIH0sIFNoYXJlZEJ1ZmZlcjo6
Y3JlYXRlKHRleHRFbmNvZGluZy5lbmNvZGUoY3NzVGV4dC50b1N0cmluZygpLCBVbmVuY29kYWJs
ZUhhbmRsaW5nOjpFbnRpdGllcykpIH0pOwotICAgICAgICBtX3Jlc291cmNlVVJMcy5hZGQodXJs
KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gY3NzVGV4dC50b1N0cmluZygpKSB7CisgICAg
ICAgICAgICBtX3Jlc291cmNlcy5hcHBlbmQoeyB1cmwsIEFTQ0lJTGl0ZXJhbCB7ICJ0ZXh0L2Nz
cyIgfSwgU2hhcmVkQnVmZmVyOjpjcmVhdGUodGV4dEVuY29kaW5nLmVuY29kZSgqc3RyaW5nLCBV
bmVuY29kYWJsZUhhbmRsaW5nOjpFbnRpdGllcykpIH0pOworICAgICAgICAgICAgbV9yZXNvdXJj
ZVVSTHMuYWRkKHVybCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAg
ICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VMb2dn
aW5nQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nQ2xp
ZW50LmNwcAppbmRleCA5ZDQ0ZDk0Li4zYjQ0ZmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuY3BwCkBAIC01MCw3ICs1MCw5IEBAIFN0cmlu
ZyBQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQ6OnN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uc0Fz
U3RyaW5nKFN5bmNocm9ub3VzCiAgICAgICAgIHJlYXNvbnMuYXBwZW5kTGl0ZXJhbCgiaW1hZ2Ug
ZG9jdW1lbnQsIik7CiAKICAgICAvLyBTdHJpcCB0aGUgdHJhaWxpbmcgY29tbWEuCi0gICAgcmV0
dXJuIHJlYXNvbnMudG9TdHJpbmcoKS5sZWZ0KHJlYXNvbnMubGVuZ3RoKCkgLSAxKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSByZWFzb25zLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBzdHJp
bmctPmxlZnQocmVhc29ucy5sZW5ndGgoKSAtIDEpOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJp
dHlPcmlnaW5EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW5EYXRh
LmNwcAppbmRleCAyYWFjOGVlLi5lM2FjOGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NlY3VyaXR5T3JpZ2luRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1
cml0eU9yaWdpbkRhdGEuY3BwCkBAIC04NCw3ICs4NCw5IEBAIFN0cmluZyBTZWN1cml0eU9yaWdp
bkRhdGE6OmRhdGFiYXNlSWRlbnRpZmllcigpIGNvbnN0CiAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmQoc2VwYXJhdG9yQ2hhcmFjdGVyKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcihw
b3J0LnZhbHVlX29yKDApKTsKICAgICAKLSAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RkOjpvcHRpb25hbDxT
ZWN1cml0eU9yaWdpbkRhdGE+IFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbURhdGFiYXNlSWRlbnRp
Zmllcihjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmNwcAppbmRleCBlZDU0OWNmLi5mYzUwMjUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0VHJpZ2dlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdFRyaWdnZXIuY3BwCkBAIC0x
MDAsNyArMTAwLDEwIEBAIHN0YXRpYyB2b2lkIGR1bXBTdGF0ZShXVEY6Okhhc2hNYXA8V2hlZWxF
dmVudFRlc3RUcmlnZ2VyOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpCiAgICAgICAgICAgICAgICAg
cmVhc29ucy5hcHBlbmQoIiwgIik7CiAgICAgICAgICAgICByZWFzb25zLmFwcGVuZChTdHJpbmc6
Om51bWJlcihyZWFzb24pKTsKICAgICAgICAgfQotICAgICAgICBMT0coV2hlZWxFdmVudFRlc3RU
cmlnZ2VycywgIiAgICAgUmVhc29uczogJXMiLCByZWFzb25zLnRvU3RyaW5nKCkudXRmOCgpLmRh
dGEoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlYXNvbnMudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgIExPRyhXaGVlbEV2ZW50VGVzdFRyaWdnZXJzLCAiICAgICBSZWFzb25zOiAlcyIs
IHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNI
KCk7CiAgICAgfQogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Nz
cC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29u
dGVudFNlY3VyaXR5UG9saWN5LmNwcAppbmRleCBmYzJmZDEyLi4zYzkxODcyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTg1
LDcgKzg1LDkgQEAgc3RhdGljIFN0cmluZyBjb25zb2xlTWVzc2FnZUZvclZpb2xhdGlvbihjb25z
dCBjaGFyKiBlZmZlY3RpdmVWaW9sYXRlZERpcmVjdGl2ZSwKICAgICAgICAgcmVzdWx0LmFwcGVu
ZChlZmZlY3RpdmVWaW9sYXRlZERpcmVjdGl2ZSk7CiAgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRl
cmFsKCIgZGlyZWN0aXZlIG9mIHRoZSBDb250ZW50IFNlY3VyaXR5IFBvbGljeS4iKTsKICAgICB9
Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJl
c3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkNvbnRlbnRTZWN1cml0eVBvbGljeShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQpAQCAtMTM3LDcgKzEzOSwx
MCBAQCBib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dSdW5uaW5nT3JEaXNwbGF5aW5n
SW5zZWN1cmVDb250ZW50KGNvbnN0IFVSTCYgdQogICAgICAgICBjb25zb2xlTWVzc2FnZS5hcHBl
bmQodXJsLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpKTsKICAgICAgICAgY29uc29s
ZU1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiIGJlY2F1c2UgIik7CiAgICAgICAgIGNvbnNvbGVNZXNz
YWdlLmFwcGVuZCgiJ2Jsb2NrLWFsbC1taXhlZC1jb250ZW50JyBhcHBlYXJzIGluIHRoZSBDb250
ZW50IFNlY3VyaXR5IFBvbGljeS4iKTsKLSAgICAgICAgcmVwb3J0VmlvbGF0aW9uKENvbnRlbnRT
ZWN1cml0eVBvbGljeURpcmVjdGl2ZU5hbWVzOjpibG9ja0FsbE1peGVkQ29udGVudCwgQ29udGVu
dFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXM6OmJsb2NrQWxsTWl4ZWRDb250ZW50LCAqcG9s
aWN5LCB1cmwsIGNvbnNvbGVNZXNzYWdlLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBjb25zb2xlTWVzc2FnZS50b1N0cmluZygpKQorICAgICAgICAgICAgcmVwb3J0Vmlv
bGF0aW9uKENvbnRlbnRTZWN1cml0eVBvbGljeURpcmVjdGl2ZU5hbWVzOjpibG9ja0FsbE1peGVk
Q29udGVudCwgQ29udGVudFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXM6OmJsb2NrQWxsTWl4
ZWRDb250ZW50LCAqcG9saWN5LCB1cmwsICpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBDUkFTSCgpOwogCiAgICAgICAgIGlmICghaXNSZXBvcnRPbmx5KQogICAgICAgICAgICAg
YWxsb3cgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L0F4aXNTY3JvbGxTbmFwT2Zmc2V0cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9BeGlzU2Nyb2xsU25hcE9mZnNldHMuY3BwCmluZGV4IDAyMDc1MzguLmQ4ZDNmMjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0F4aXNTY3JvbGxTbmFwT2Zmc2V0
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXhpc1Njcm9sbFNuYXBP
ZmZzZXRzLmNwcApAQCAtODEsNyArODEsOSBAQCBzdGF0aWMgU3RyaW5nIHNuYXBPZmZzZXRzVG9T
dHJpbmcoY29uc3QgVmVjdG9yPExheW91dFVuaXQ+JiBzbmFwT2Zmc2V0cykKICAgICAgICAgcy5h
cHBlbmQoU3RyaW5nOjpmb3JtYXQoIiUuMWYgIiwgb2Zmc2V0LnRvRmxvYXQoKSkpOwogCiAgICAg
cy5hcHBlbmQoIl0iKTsKLSAgICByZXR1cm4gcy50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IHMudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogc3RhdGljIFN0cmluZyBzbmFwT2Zmc2V0UmFuZ2VzVG9TdHJpbmcoY29uc3QgVmVj
dG9yPFNjcm9sbE9mZnNldFJhbmdlPExheW91dFVuaXQ+PiYgcmFuZ2VzKQpAQCAtOTEsNyArOTMs
OSBAQCBzdGF0aWMgU3RyaW5nIHNuYXBPZmZzZXRSYW5nZXNUb1N0cmluZyhjb25zdCBWZWN0b3I8
U2Nyb2xsT2Zmc2V0UmFuZ2U8TGF5b3V0VW5pdAogICAgIGZvciAoYXV0byByYW5nZSA6IHJhbmdl
cykKICAgICAgICAgcy5hcHBlbmQoU3RyaW5nOjpmb3JtYXQoIiglLjFmLCAlLjFmKSAiLCByYW5n
ZS5zdGFydC50b0Zsb2F0KCksIHJhbmdlLmVuZC50b0Zsb2F0KCkpKTsKICAgICBzLmFwcGVuZCgi
XSIpOwotICAgIHJldHVybiBzLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcy50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBz
dGF0aWMgU3RyaW5nIHNuYXBQb3J0T3JBcmVhVG9TdHJpbmcoY29uc3QgTGF5b3V0UmVjdCYgcmVj
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmNwcAppbmRleCBmNTAyMjFhLi4zYzFjNmUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0z
ODksNyArMzg5LDkgQEAgU3RyaW5nIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzeW5jaHJvbm91c1Nj
cm9sbGluZ1JlYXNvbnNBc1RleHQoU3luY2hyb25vdXNTY3JvbGwKIAogICAgIGlmIChzdHJpbmdC
dWlsZGVyLmxlbmd0aCgpKQogICAgICAgICBzdHJpbmdCdWlsZGVyLnJlc2l6ZShzdHJpbmdCdWls
ZGVyLmxlbmd0aCgpIC0gMik7Ci0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBTY3JvbGxpbmdDb29y
ZGluYXRvcjo6c3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zQXNUZXh0KCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RlY2ltYWwuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRGVjaW1hbC5jcHAKaW5kZXggM2Q1MjVjZi4uMWExOTJhNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVjaW1hbC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRGVjaW1hbC5jcHAKQEAgLTk5NCw3ICs5OTQsOSBAQCBTdHJpbmcgRGVjaW1h
bDo6dG9TdHJpbmcoKSBjb25zdAogICAgIGlmIChvcmlnaW5hbEV4cG9uZW50IDw9IDAgJiYgYWRq
dXN0ZWRFeHBvbmVudCA+PSAtNikgewogICAgICAgICBpZiAoIW9yaWdpbmFsRXhwb25lbnQpIHsK
ICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGRpZ2l0cyk7Ci0gICAgICAgICAgICByZXR1cm4g
YnVpbGRlci50b1N0cmluZygpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICAg
ICAgQ1JBU0goKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChhZGp1c3RlZEV4cG9uZW50ID49
IDApIHsKQEAgLTEwMDMsNyArMTAwNSw5IEBAIFN0cmluZyBEZWNpbWFsOjp0b1N0cmluZygpIGNv
bnN0CiAgICAgICAgICAgICAgICAgaWYgKGkgPT0gYWRqdXN0ZWRFeHBvbmVudCkKICAgICAgICAg
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJy4nKTsKICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAKICAgICAgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCIwLiIpOwpAQCAtMTAyNyw3ICsxMDMxLDkgQEAgU3RyaW5nIERlY2ltYWw6OnRv
U3RyaW5nKCkgY29uc3QKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGFkanVzdGVk
RXhwb25lbnQpOwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBEZWNpbWFsIERlY2ltYWw6Onplcm8o
U2lnbiBzaWduKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3Rl
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcAppbmRleCAyZmRi
MjYwLi5lNjdkNjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lz
dGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcApAQCAt
MTMwLDcgKzEzMCw5IEBAIFN0cmluZyBlbmNvZGVGb3JGaWxlTmFtZShjb25zdCBTdHJpbmcmIGlu
cHV0U3RyaW5nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjaGFyYWN0ZXIpOwogICAgIH0K
IAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBy
ZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogU3RyaW5nIGRlY29kZUZyb21GaWxlbmFtZShjb25zdCBTdHJpbmcmIGlucHV0U3RyaW5n
KQpAQCAtMTgxLDcgKzE4Myw5IEBAIFN0cmluZyBkZWNvZGVGcm9tRmlsZW5hbWUoY29uc3QgU3Ry
aW5nJiBpbnB1dFN0cmluZykKICAgICAgICAgaSArPSA1OwogICAgIH0KIAotICAgIHJldHVybiBy
ZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIGxh
c3RDb21wb25lbnRPZlBhdGhJZ25vcmluZ1RyYWlsaW5nU2xhc2goY29uc3QgU3RyaW5nJiBwYXRo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUE9ESW50ZXJ2YWwuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPREludGVydmFsLmgKaW5kZXggMDQ4ZGE5OC4uNjQ2MzYy
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUE9ESW50ZXJ2YWwuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RJbnRlcnZhbC5oCkBAIC0xNDUsNyArMTQ1LDkg
QEAgcHVibGljOgogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgbWF4SGlnaD0iKTsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoVmFsdWVUb1N0cmluZzxUPjo6c3RyaW5nKG1heEhpZ2go
KSkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnXScpOwotICAgICAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUE9EUmVkQmxh
Y2tUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RSZWRCbGFja1RyZWUuaAppbmRl
eCAxMzFmMzFhLi40OTYwZWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
T0RSZWRCbGFja1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RSZWRCbGFj
a1RyZWUuaApAQCAtNzQ0LDcgKzc0NCwxMCBAQCBwcml2YXRlOgogICAgICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoVmFsdWVUb1N0cmluZzxUPjo6c3RyaW5nKG5vZGUtPmRhdGEoKSkpOwogICAgICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoKG5vZGUtPmNvbG9yKCkgPT0gQmxhY2spID8gIiAoYmxhY2sp
IiA6ICIgKHJlZCkiKTsKICAgICAgICAgfQotICAgICAgICBMT0dfRVJST1IoIiVzIiwgYnVpbGRl
ci50b1N0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
YnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgTE9HX0VSUk9SKCIlcyIsIHN0cmluZy0+
YXNjaWkoKS5kYXRhKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAg
ICAgICBpZiAobm9kZSkgewogICAgICAgICAgICAgZHVtcEZyb21Ob2RlKG5vZGUtPmxlZnQoKSwg
aW5kZW50YXRpb24gKyAyKTsKICAgICAgICAgICAgIGR1bXBGcm9tTm9kZShub2RlLT5yaWdodCgp
LCBpbmRlbnRhdGlvbiArIDIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
VVJMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAKaW5kZXggOTkwMGU1NS4u
MDMzNWE1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwCkBAIC00NDgsOCArNDQ4LDExIEBAIHZv
aWQgVVJMOjpzZXRIb3N0KGNvbnN0IFN0cmluZyYgcykKICAgICBidWlsZGVyLmFwcGVuZChTdHJp
bmdWaWV3KGVuY29kZWRIb3N0TmFtZS5kYXRhKCksIGVuY29kZWRIb3N0TmFtZS5zaXplKCkpKTsK
ICAgICBidWlsZGVyLmFwcGVuZChtX3N0cmluZy5zdWJzdHJpbmcobV9ob3N0RW5kKSk7CiAKLSAg
ICBVUkxQYXJzZXIgcGFyc2VyKGJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgKnRoaXMgPSBwYXJz
ZXIucmVzdWx0KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKSB7
CisgICAgICAgIFVSTFBhcnNlciBwYXJzZXIoKnN0cmluZyk7CisgICAgICAgICp0aGlzID0gcGFy
c2VyLnJlc3VsdCgpOworICAgIH0gZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIFVS
TDo6cmVtb3ZlUG9ydCgpCkBAIC01MTAsOCArNTEzLDExIEBAIHZvaWQgVVJMOjpzZXRIb3N0QW5k
UG9ydChjb25zdCBTdHJpbmcmIGhvc3RBbmRQb3J0KQogICAgIH0KICAgICBidWlsZGVyLmFwcGVu
ZChtX3N0cmluZy5zdWJzdHJpbmcobV9wb3J0RW5kKSk7CiAKLSAgICBVUkxQYXJzZXIgcGFyc2Vy
KGJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgKnRoaXMgPSBwYXJzZXIucmVzdWx0KCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIFVSTFBhcnNl
ciBwYXJzZXIoKnN0cmluZyk7CisgICAgICAgICp0aGlzID0gcGFyc2VyLnJlc3VsdCgpOworICAg
IH0gZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIHBlcmNlbnRFbmNv
ZGVDaGFyYWN0ZXJzKGNvbnN0IFN0cmluZyYgaW5wdXQsIGJvb2woKnNob3VsZEVuY29kZSkoVUNo
YXIpKQpAQCAtNTMwLDcgKzUzNiw5IEBAIHN0YXRpYyBTdHJpbmcgcGVyY2VudEVuY29kZUNoYXJh
Y3RlcnMoY29uc3QgU3RyaW5nJiBpbnB1dCwgYm9vbCgqc2hvdWxkRW5jb2RlKShVCiAgICAgICAg
ICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChjKTsKICAgICAgICAg
fQotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICAgICAgQ1JBU0goKTsKICAgICB9OwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBp
bnB1dC5sZW5ndGgoKTsgKytpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmNwcAppbmRleCA4Yzk3MmQ2Li5lZGJmZWQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlv
bi5jcHAKQEAgLTEyOSw3ICsxMjksMTAgQEAgRXhjZXB0aW9uT3I8UmVmUHRyPFRpbWluZ0Z1bmN0
aW9uPj4gVGltaW5nRnVuY3Rpb246OmNyZWF0ZUZyb21DU1NUZXh0KGNvbnN0IFN0cmkKICAgICBj
c3NTdHJpbmcuYXBwZW5kTGl0ZXJhbCgiOiAiKTsKICAgICBjc3NTdHJpbmcuYXBwZW5kKGNzc1Rl
eHQpOwogICAgIGF1dG8gc3R5bGVQcm9wZXJ0aWVzID0gTXV0YWJsZVN0eWxlUHJvcGVydGllczo6
Y3JlYXRlKCk7Ci0gICAgc3R5bGVQcm9wZXJ0aWVzLT5wYXJzZURlY2xhcmF0aW9uKGNzc1N0cmlu
Zy50b1N0cmluZygpLCBDU1NQYXJzZXJDb250ZXh0KEhUTUxTdGFuZGFyZE1vZGUpKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBjc3NTdHJpbmcudG9TdHJpbmcoKSkKKyAgICAgICAgc3R5bGVQcm9w
ZXJ0aWVzLT5wYXJzZURlY2xhcmF0aW9uKCpzdHJpbmcsIENTU1BhcnNlckNvbnRleHQoSFRNTFN0
YW5kYXJkTW9kZSkpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIGlmIChhdXRv
IGNzc1ZhbHVlID0gc3R5bGVQcm9wZXJ0aWVzLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3Bl
cnR5QW5pbWF0aW9uVGltaW5nRnVuY3Rpb24pKSB7CiAgICAgICAgIGlmIChhdXRvIHRpbWluZ0Z1
bmN0aW9uID0gY3JlYXRlRnJvbUNTU1ZhbHVlKCpjc3NWYWx1ZS5nZXQoKSkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwCmluZGV4IGY5NDA4MTUu
LjJiMzBiMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5
c3RlbUdsaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3Rl
bUdsaWIuY3BwCkBAIC0yMTgsNyArMjE4LDkgQEAgU3RyaW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudHMoU3RyaW5nVmlldyBwYXRoLCBjb25zdCBWZWN0b3I8U3RyaW5nVmlldz4mIGNvbXAKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoR19ESVJfU0VQQVJBVE9SX1MpOwogICAgICAgICBidWlsZGVy
LmFwcGVuZChjb21wb25lbnQpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBtYWtlQWxsRGlyZWN0b3JpZXMo
Y29uc3QgU3RyaW5nJiBwYXRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z2xpYi9Vc2VyQWdlbnRHTGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvVXNl
ckFnZW50R0xpYi5jcHAKaW5kZXggMTYyMWE4OC4uMzgwNzdmOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9Vc2VyQWdlbnRHTGliLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9nbGliL1VzZXJBZ2VudEdMaWIuY3BwCkBAIC0xMDYsNyArMTA2LDkgQEAg
c3RhdGljIFN0cmluZyBidWlsZFVzZXJBZ2VudFN0cmluZyhjb25zdCBVc2VyQWdlbnRRdWlya3Mm
IHF1aXJrcykKICAgICB1YVN0cmluZy5hcHBlbmRMaXRlcmFsKCJWZXJzaW9uLzExLjAgU2FmYXJp
LyIpOwogICAgIHVhU3RyaW5nLmFwcGVuZCh2ZXJzaW9uRm9yVUFTdHJpbmcoKSk7CiAKLSAgICBy
ZXR1cm4gdWFTdHJpbmcudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB1YVN0cmlu
Zy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiBzdGF0aWMgY29uc3QgU3RyaW5nIHN0YW5kYXJkVXNlckFnZW50U3RhdGljKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcAppbmRleCA1ZGQxNTBmLi5lZTFiZTc0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCkBAIC0zNDgs
NyArMzQ4LDkgQEAgU3RyaW5nIENvbG9yOjpzZXJpYWxpemVkKCkgY29uc3QKICAgICAgICAgYXBw
ZW5kQnl0ZUFzSGV4KHJlZCgpLCBidWlsZGVyLCBMb3dlcmNhc2UpOwogICAgICAgICBhcHBlbmRC
eXRlQXNIZXgoZ3JlZW4oKSwgYnVpbGRlciwgTG93ZXJjYXNlKTsKICAgICAgICAgYXBwZW5kQnl0
ZUFzSGV4KGJsdWUoKSwgYnVpbGRlciwgTG93ZXJjYXNlKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAg
fQogCiAgICAgcmV0dXJuIGNzc1RleHQoKTsKQEAgLTM4NCw3ICszODYsOSBAQCBTdHJpbmcgQ29s
b3I6OmNzc1RleHQoKSBjb25zdAogICAgIH0KICAgICAgICAgCiAgICAgYnVpbGRlci5hcHBlbmQo
JyknKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogU3RyaW5nIENvbG9yOjpuYW1lRm9yUmVuZGVyVHJlZUFzVGV4dCgpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENv
bG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3Iu
Y3BwCmluZGV4IDUwZTNjNWMuLjQ0OGRmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwCkBAIC03Miw3ICs3Miw5IEBAIFN0cmlu
ZyBFeHRlbmRlZENvbG9yOjpjc3NUZXh0KCkgY29uc3QKICAgICB9CiAgICAgYnVpbGRlci5hcHBl
bmQoJyknKTsKIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FzY2FkZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250Q2FzY2FkZS5jcHAKaW5kZXggODQ3ODYxZi4uNTU0ODI5MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcApAQCAtNTQ5LDcgKzU0
OSw5IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIG5vcm1hbGl6ZVNwYWNlc0ludGVybmFsKGNvbnN0
IENoYXJhY3RlclR5cGUqIGNoYXJhY3RlcnMsIHVuCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGxlbmd0aDsgKytpKQogICAgICAgICBub3JtYWxpemVkLmFwcGVuZChGb250Q2FzY2FkZTo6
bm9ybWFsaXplU3BhY2VzKGNoYXJhY3RlcnNbaV0pKTsKIAotICAgIHJldHVybiBub3JtYWxpemVk
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbm9ybWFsaXplZC50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgRm9u
dENhc2NhZGU6Om5vcm1hbGl6ZVNwYWNlcyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWdu
ZWQgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udFRhZ2dlZFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRUYWdnZWRTZXR0aW5ncy5jcHAKaW5kZXggNjFiMmViZS4uNWM0NjcyNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNldHRpbmdzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250VGFnZ2VkU2V0dGlu
Z3MuY3BwCkBAIC03Miw3ICs3MiwxMCBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mIHRzLCBjb25zdCBGb250VmFyaWF0aW9uU2V0dGluZ3MmIGl0ZW0pCiAgICAgICAgIHMuYXBw
ZW5kKHZhcmlhdGlvbi50YWcoKVsxXSk7CiAgICAgICAgIHMuYXBwZW5kKHZhcmlhdGlvbi50YWco
KVsyXSk7CiAgICAgICAgIHMuYXBwZW5kKHZhcmlhdGlvbi50YWcoKVszXSk7Ci0gICAgICAgIHRz
LmR1bXBQcm9wZXJ0eShzLnRvU3RyaW5nKCksIGl0ZW0uYXQoaSkudmFsdWUoKSk7CisgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IHMudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHRzLmR1bXBQcm9w
ZXJ0eSgqc3RyaW5nLCBpdGVtLmF0KGkpLnZhbHVlKCkpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBDUkFTSCgpOwogICAgIH0KICAgICByZXR1cm4gdHM7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDY5ODE4MGUu
LjE1Y2U4OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuY3BwCkBAIC00NDEsNyArNDQxLDkgQEAgU3RyaW5nIEdyYXBoaWNzTGF5ZXI6
OmFuaW1hdGlvbk5hbWVGb3JUcmFuc2l0aW9uKEFuaW1hdGVkUHJvcGVydHlJRCBwcm9wZXJ0eSkK
ICAgICBpZC5hcHBlbmRMaXRlcmFsKCItfHRyYW5zaXRpb24iKTsKICAgICBpZC5hcHBlbmROdW1i
ZXIoc3RhdGljX2Nhc3Q8aW50Pihwcm9wZXJ0eSkpOwogICAgIGlkLmFwcGVuZCgnLScpOwotICAg
IHJldHVybiBpZC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGlkLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgR3Jh
cGhpY3NMYXllcjo6c3VzcGVuZEFuaW1hdGlvbnMoTW9ub3RvbmljVGltZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0
VHJhY2tQcml2YXRlQVZGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmNwcAppbmRleCA2ZjJiMzg3Li45
NTNjNDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVB
VkYuY3BwCkBAIC0zMDAsOCArMzAwLDEyIEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFW
Rjo6cHJvY2Vzc0N1ZUF0dHJpYnV0ZXMoQ0ZBdHRyaWJ1dGVkU3RyaW5nUmVmIGF0dHJpCiAgICAg
ICAgIGNvbnRlbnQuYXBwZW5kKHRhZ0VuZCk7CiAgICAgfQogCi0gICAgaWYgKGNvbnRlbnQubGVu
Z3RoKCkpCi0gICAgICAgIGN1ZURhdGEuc2V0Q29udGVudChjb250ZW50LnRvU3RyaW5nKCkpOwor
ICAgIGlmIChjb250ZW50Lmxlbmd0aCgpKSB7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGNv
bnRlbnQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGN1ZURhdGEuc2V0Q29udGVudCgqc3RyaW5n
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKKyAgICB9CiB9CiAKIHZvaWQg
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZShDRkFycmF5UmVmIGF0dHJpYnV0
ZWRTdHJpbmdzLCBDRkFycmF5UmVmIG5hdGl2ZVNhbXBsZXMsIGNvbnN0IE1lZGlhVGltZSYgdGlt
ZSkKQEAgLTUzMCw3ICs1MzQsMTAgQEAgdm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpw
cm9jZXNzTmF0aXZlU2FtcGxlcyhDRkFycmF5UmVmIG5hdGl2ZVNhbXBsZXMsIGMKICAgICAgICAg
ICAgIGhlYWRlci5hcHBlbmQoIlxuXG4iKTsKIAogICAgICAgICAgICAgREVCVUdfTE9HKExPR0lE
RU5USUZJRVIsICJWVFQgaGVhZGVyICIsICZoZWFkZXIpOwotICAgICAgICAgICAgY2xpZW50KCkt
PnBhcnNlV2ViVlRURmlsZUhlYWRlcihoZWFkZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBoZWFkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICBjbGll
bnQoKS0+cGFyc2VXZWJWVFRGaWxlSGVhZGVyKFdURk1vdmUoKnN0cmluZykpOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICBtX2hhdmVSZXBv
cnRlZFZUVEhlYWRlciA9IHRydWU7CiAgICAgICAgIH0gd2hpbGUgKDApOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5jcHAK
aW5kZXggZWMzYWU0Zi4uYTM3ZDg0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcApAQCAtNzM1LDcgKzczNSwxMCBA
QCBSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBUaWxlQ29udHJvbGxlcjo6Y3JlYXRlVGlsZUxheWVy
KGNvbnN0IEludFJlY3QmIHRpbGVSZWN0LAogICAgIG5hbWVCdWlsZGVyLmFwcGVuZE51bWJlcih0
aWxlUmVjdC5sb2NhdGlvbigpLngoKSk7CiAgICAgbmFtZUJ1aWxkZXIuYXBwZW5kKCcsJyk7CiAg
ICAgbmFtZUJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRpbGVSZWN0LmxvY2F0aW9uKCkueSgpKTsKLSAg
ICBsYXllci0+c2V0TmFtZShuYW1lQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBuYW1lQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBsYXllci0+c2V0TmFtZSgq
c3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAgICBmbG9hdCB0ZW1wb3Jh
cnlTY2FsZUZhY3RvciA9IG93bmluZ0dyYXBoaWNzTGF5ZXIoKS0+cGxhdGZvcm1DQUxheWVyQ29u
dGVudHNTY2FsZU11bHRpcGxpZXJGb3JOZXdUaWxlcyhtX3RpbGVDYWNoZUxheWVyKTsKICAgICBt
X2hhc1RpbGVzV2l0aFRlbXBvcmFyeVNjYWxlRmFjdG9yIHw9IHRlbXBvcmFyeVNjYWxlRmFjdG9y
ICE9IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9U
aWxlR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlR3Jp
ZC5jcHAKaW5kZXggNTkxOWY5Ny4uZTg2NjU5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNwcApAQCAtNTksNyArNTksOSBAQCBzdGF0aWMg
U3RyaW5nIHZhbGlkYXRpb25Qb2xpY3lBc1N0cmluZyhUaWxlR3JpZDo6VGlsZVZhbGlkYXRpb25Q
b2xpY3kgdmFsaWRhdGlvbgogICAgIH0KICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIl0iKTsK
IAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
YnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5jcHAKaW5kZXggYzAwMGI0My4u
ZmE2NDBmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
d2luL1BsYXRmb3JtQ0FMYXllcldpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5jcHAKQEAgLTkzNCw3ICs5MzQsOSBA
QCBTdHJpbmcgUGxhdGZvcm1DQUxheWVyV2luOjpsYXllclRyZWVBc1N0cmluZygpIGNvbnN0CiAg
ICAgLy8gUHJpbnQgbGF5ZXIgdHJlZSBmcm9tIHRoZSByb290CiAgICAgcHJpbnRMYXllcihidWls
ZGVyLCB0aGlzLCAwKTsKIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBSZWY8UGxhdGZvcm1DQUxheWVyPiBQbGF0Zm9ybUNBTGF5
ZXJXaW46OmNyZWF0ZUNvbXBhdGlibGVMYXllcihQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZSBs
YXllclR5cGUsIFBsYXRmb3JtQ0FMYXllckNsaWVudCogY2xpZW50KSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVy
Q1YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJl
Q29waWVyQ1YuY3BwCmluZGV4IGRmZmNkY2IuLjQ3ZjMyMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJD
Vi5jcHAKQEAgLTUxMiw3ICs1MTIsMTAgQEAgYm9vbCBWaWRlb1RleHR1cmVDb3BpZXJDVjo6aW5p
dGlhbGl6ZUNvbnRleHRPYmplY3RzKCkKICAgICB2ZXJ0ZXhTaGFkZXJTb3VyY2UuYXBwZW5kTGl0
ZXJhbCgifVxuIik7CiAKICAgICBQbGF0Zm9ybTNET2JqZWN0IHZlcnRleFNoYWRlciA9IG1fY29u
dGV4dC0+Y3JlYXRlU2hhZGVyKEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfU0hBREVSKTsKLSAg
ICBtX2NvbnRleHQtPnNoYWRlclNvdXJjZSh2ZXJ0ZXhTaGFkZXIsIHZlcnRleFNoYWRlclNvdXJj
ZS50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB2ZXJ0ZXhTaGFkZXJTb3VyY2Uu
dG9TdHJpbmcoKSkKKyAgICAgICAgbV9jb250ZXh0LT5zaGFkZXJTb3VyY2UodmVydGV4U2hhZGVy
LCAqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgbV9jb250ZXh0LT5j
b21waWxlU2hhZGVyRGlyZWN0KHZlcnRleFNoYWRlcik7CiAKICAgICBHQzNEaW50IHZhbHVlID0g
MDsKQEAgLTU1Myw3ICs1NTYsMTAgQEAgYm9vbCBWaWRlb1RleHR1cmVDb3BpZXJDVjo6aW5pdGlh
bGl6ZUNvbnRleHRPYmplY3RzKCkKICAgICBmcmFnbWVudFNoYWRlclNvdXJjZS5hcHBlbmRMaXRl
cmFsKCJ9XG4iKTsKIAogICAgIFBsYXRmb3JtM0RPYmplY3QgZnJhZ21lbnRTaGFkZXIgPSBtX2Nv
bnRleHQtPmNyZWF0ZVNoYWRlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBR01FTlRfU0hBREVSKTsK
LSAgICBtX2NvbnRleHQtPnNoYWRlclNvdXJjZShmcmFnbWVudFNoYWRlciwgZnJhZ21lbnRTaGFk
ZXJTb3VyY2UudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gZnJhZ21lbnRTaGFk
ZXJTb3VyY2UudG9TdHJpbmcoKSkKKyAgICAgICAgbV9jb250ZXh0LT5zaGFkZXJTb3VyY2UoZnJh
Z21lbnRTaGFkZXIsICpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICBt
X2NvbnRleHQtPmNvbXBpbGVTaGFkZXJEaXJlY3QoZnJhZ21lbnRTaGFkZXIpOwogCiAgICAgbV9j
b250ZXh0LT5nZXRTaGFkZXJpdihmcmFnbWVudFNoYWRlciwgR3JhcGhpY3NDb250ZXh0M0Q6OkNP
TVBJTEVfU1RBVFVTLCAmdmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9w
ZW5HTENvbW1vbi5jcHAKaW5kZXggNWJkZDY2My4uMDI1ZWNjYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdM
Q29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCkBAIC05NTMsNyArOTUzLDkgQEAgc3Rh
dGljIFN0cmluZyBnZW5lcmF0ZUhhc2hlZE5hbWUoY29uc3QgU3RyaW5nJiBuYW1lKQogICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIndlYmdsXyIp
OwogICAgIGFwcGVuZFVuc2lnbmVkNjRBc0hleChudW1iZXIsIGJ1aWxkZXIsIExvd2VyY2FzZSk7
Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBHcmFwaGljc0NvbnRleHQzRDo6bWFwcGVkU3lt
Ym9sSW5TaGFkZXJTb3VyY2VNYXAoUGxhdGZvcm0zRE9iamVjdCBzaGFkZXIsIEFOR0xFU2hhZGVy
U3ltYm9sVHlwZSBzeW1ib2xUeXBlLCBjb25zdCBTdHJpbmcmIG5hbWUpCkBAIC0xNjg1LDggKzE2
ODcsMTEgQEAgU3RyaW5nIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRVbm1hbmdsZWRJbmZvTG9nKFBs
YXRmb3JtM0RPYmplY3Qgc2hhZGVyc1syXSwgR0MzRHMKIAogICAgIHByb2Nlc3NlZExvZy5hcHBl
bmQobG9nLnN1YnN0cmluZyhzdGFydEZyb20sIGxvZy5sZW5ndGgoKSAtIHN0YXJ0RnJvbSkpOwog
Ci0gICAgTE9HKFdlYkdMLCAiVW5tYW5nbGVkIFNoYWRlckluZm9Mb2c6XG4lcyIsIHByb2Nlc3Nl
ZExvZy50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIHJldHVybiBwcm9jZXNzZWRMb2cu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBwcm9jZXNzZWRMb2cudG9TdHJpbmco
KSkgeworICAgICAgICBMT0coV2ViR0wsICJVbm1hbmdsZWQgU2hhZGVySW5mb0xvZzpcbiVzIiwg
c3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgfQor
ICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBHcmFwaGljc0NvbnRleHQzRDo6Z2V0UHJvZ3JhbUlu
Zm9Mb2coUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
U2hhZGVyUHJvZ3JhbS5jcHAKaW5kZXggMmU2YzUyYy4uMjRhODhmMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQ
cm9ncmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwCkBAIC0zOTcsNyArMzk3LDEwIEBAIFJlZjxU
ZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OmNy
ZWF0ZShUZXh0dXJlTWFwcGVyCiAjZW5kaWYKIAogICAgIC8vIEFwcGVuZCB0aGUgb3B0aW9ucy4K
LSAgICB2ZXJ0ZXhTaGFkZXJCdWlsZGVyLmFwcGVuZChvcHRpb25zQXBwbGllckJ1aWxkZXIudG9T
dHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gb3B0aW9uc0FwcGxpZXJCdWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgIHZlcnRleFNoYWRlckJ1aWxkZXIuYXBwZW5kKCpzdHJpbmcpOwor
ICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIC8vIEFwcGVuZCB0aGUgYXBwcm9wcmlh
dGUgaW5wdXQvb3V0cHV0IHZhcmlhYmxlIGRlZmluaXRpb25zLgogI2lmIFVTRShPUEVOR0xfRVMp
CkBAIC00MjEsNyArNDI0LDEwIEBAIFJlZjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gVGV4
dHVyZU1hcHBlclNoYWRlclByb2dyYW06OmNyZWF0ZShUZXh0dXJlTWFwcGVyCiAjZW5kaWYKIAog
ICAgIC8vIEFwcGVuZCB0aGUgb3B0aW9ucy4KLSAgICBmcmFnbWVudFNoYWRlckJ1aWxkZXIuYXBw
ZW5kKG9wdGlvbnNBcHBsaWVyQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBvcHRpb25zQXBwbGllckJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgZnJhZ21lbnRT
aGFkZXJCdWlsZGVyLmFwcGVuZCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7
CiAKICAgICAvLyBBcHBlbmQgdGhlIGNvbW1vbiBoZWFkZXIuCiAgICAgZnJhZ21lbnRTaGFkZXJC
dWlsZGVyLmFwcGVuZChmcmFnbWVudFRlbXBsYXRlSGVhZGVyQ29tbW9uKTsKQEAgLTQzOSw3ICs0
NDUsMTAgQEAgUmVmPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiBUZXh0dXJlTWFwcGVyU2hh
ZGVyUHJvZ3JhbTo6Y3JlYXRlKFRleHR1cmVNYXBwZXIKICAgICAvLyBBcHBlbmQgdGhlIGNvbW1v
biBjb2RlLgogICAgIGZyYWdtZW50U2hhZGVyQnVpbGRlci5hcHBlbmQoZnJhZ21lbnRUZW1wbGF0
ZUNvbW1vbik7CiAKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXh0dXJlTWFwcGVyU2hhZGVy
UHJvZ3JhbSh2ZXJ0ZXhTaGFkZXJCdWlsZGVyLnRvU3RyaW5nKCksIGZyYWdtZW50U2hhZGVyQnVp
bGRlci50b1N0cmluZygpKSk7CisgICAgaWYgKGF1dG8gdmVydGV4U3RyaW5nID0gdmVydGV4U2hh
ZGVyQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpZiAoYXV0byBmcmFnbWVudFN0cmluZyA9
IGZyYWdtZW50U2hhZGVyQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0oKnZlcnRleFN0cmluZywgKmZy
YWdtZW50U3RyaW5nKSk7CisgICAgQ1JBU0goKTsKIH0KIAogI2lmICFMT0dfRElTQUJMRUQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWxlY3Rpb25EYXRhLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWxlY3Rpb25EYXRhLmNwcAppbmRleCAxZTI3
OTliLi5mZmM3ZTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Vs
ZWN0aW9uRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1NlbGVjdGlv
bkRhdGEuY3BwCkBAIC05Niw3ICs5NiwxMCBAQCB2b2lkIFNlbGVjdGlvbkRhdGE6OnNldFVSTChj
b25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBsYWJlbCkKICAgICBHVW5pcXVlUHRyPGdjaGFy
PiBlc2NhcGVkKGdfbWFya3VwX2VzY2FwZV90ZXh0KGFjdHVhbExhYmVsLnV0ZjgoKS5kYXRhKCks
IC0xKSk7CiAgICAgbWFya3VwLmFwcGVuZChTdHJpbmc6OmZyb21VVEY4KGVzY2FwZWQuZ2V0KCkp
KTsKICAgICBtYXJrdXAuYXBwZW5kKCI8L2E+Iik7Ci0gICAgc2V0TWFya3VwKG1hcmt1cC50b1N0
cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtYXJrdXAudG9TdHJpbmcoKSkKKyAgICAg
ICAgc2V0TWFya3VwKCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAog
Y29uc3QgU3RyaW5nJiBTZWxlY3Rpb25EYXRhOjp1cmxMYWJlbCgpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCmluZGV4IDM2NThkZDEuLmExMmNi
MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCkBA
IC0yODgsNyArMjg4LDkgQEAgc3RhdGljIFN0cmluZyBqb2luUGF0aG5hbWVzKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBwYXRobmFtZXMpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQocGF0aCk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIFBhc3RlYm9h
cmQ6OnJlYWQoUGFzdGVib2FyZFBsYWluVGV4dCYgdGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tCmluZGV4IDdjZDFiZDguLjlmMzhmYjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbQpAQCAt
NTAsOCArNTAsMTAgQEAgc3RhdGljIFN0cmluZyB3aWxkY2FyZFJlZ2V4UGF0dGVyblN0cmluZyhj
b25zdCBTdHJpbmcmIHN0cmluZykKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoY2hhcmFj
dGVyKTsKICAgICB9CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJyQnKTsKLSAgICAgICAgCi0g
ICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KICAgICAKIGJvb2wgc3RyaW5nTWF0Y2hlc1dpbGRjYXJkU3RyaW5nKGNv
bnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBTdHJpbmcmIHdpbGRjYXJkU3RyaW5nKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3JvbGxBbmltYXRvck1vY2suY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3JvbGxBbmltYXRvck1vY2suY3BwCmlu
ZGV4IDNjYzBmZTkuLjMxYmQzZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svU2Nyb2xsQW5pbWF0b3JNb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL1Njcm9sbEFuaW1hdG9yTW9jay5jcHAKQEAgLTEwMSw3ICsxMDEsMTAgQEAgdm9pZCBT
Y3JvbGxBbmltYXRvck1vY2s6Om1vdXNlRW50ZXJlZFNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9s
bGJhcikgY29uc3QKICAgICBlbHNlCiAgICAgICAgIG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiVW5r
bm93biIpOwogICAgIG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiU2Nyb2xsYmFyIik7Ci0gICAgbV9s
b2dnZXIobWVzc2FnZS50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtZXNzYWdl
LnRvU3RyaW5nKCkpCisgICAgICAgIG1fbG9nZ2VyKCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAg
ICAgQ1JBU0goKTsKICAgICBTY3JvbGxBbmltYXRvcjo6bW91c2VFbnRlcmVkU2Nyb2xsYmFyKHNj
cm9sbGJhcik7CiB9CiAKQEAgLTExNiw3ICsxMTksMTAgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1v
Y2s6Om1vdXNlRXhpdGVkU2Nyb2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyKSBjb25zdAogICAg
IGVsc2UKICAgICAgICAgbWVzc2FnZS5hcHBlbmRMaXRlcmFsKCJVbmtub3duIik7CiAgICAgbWVz
c2FnZS5hcHBlbmRMaXRlcmFsKCJTY3JvbGxiYXIiKTsKLSAgICBtX2xvZ2dlcihtZXNzYWdlLnRv
U3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1lc3NhZ2UudG9TdHJpbmcoKSkKKyAg
ICAgICAgbV9sb2dnZXIoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAg
IFNjcm9sbEFuaW1hdG9yOjptb3VzZUV4aXRlZFNjcm9sbGJhcihzY3JvbGxiYXIpOwogfQogCkBA
IC0xMzYsNyArMTQyLDEwIEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNb2NrOjptb3VzZUlzRG93bklu
U2Nyb2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyLCBib29sIGlzUHJlCiAgICAgZWxzZQogICAg
ICAgICBtZXNzYWdlLmFwcGVuZExpdGVyYWwoIlVua25vd24iKTsKICAgICBtZXNzYWdlLmFwcGVu
ZExpdGVyYWwoIlNjcm9sbGJhciIpOwotICAgIG1fbG9nZ2VyKG1lc3NhZ2UudG9TdHJpbmcoKSk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWVzc2FnZS50b1N0cmluZygpKQorICAgICAgICBtX2xv
Z2dlcigqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgU2Nyb2xsQW5p
bWF0b3I6Om1vdXNlSXNEb3duSW5TY3JvbGxiYXIoc2Nyb2xsYmFyLCBpc1ByZXNzZWQpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01v
Y2tCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2Nr
Qm94LmNwcAppbmRleCBkNGFhMjA1Li5mYjY1YTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja0JveC5jcHAKQEAgLTUyLDcgKzUyLDkg
QEAgU3RyaW5nIE1vY2tCb3g6OnBlZWtUeXBlKEFycmF5QnVmZmVyKiBkYXRhKQogICAgIFJlZlB0
cjxJbnQ4QXJyYXk+IGFycmF5ID0gSlNDOjpJbnQ4QXJyYXk6OmNyZWF0ZShkYXRhLCAwLCA0KTsK
ICAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7ICsraSkKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
YXJyYXktPml0ZW0oaSkpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBzaXplX3QgTW9ja0JveDo6cGVla0xlbmd0aChBcnJheUJ1
ZmZlciogZGF0YSkKQEAgLTczLDcgKzc1LDEwIEBAIE1vY2tUcmFja0JveDo6TW9ja1RyYWNrQm94
KEFycmF5QnVmZmVyKiBkYXRhKQogICAgIFJlZlB0cjxJbnQ4QXJyYXk+IGFycmF5ID0gSlNDOjpJ
bnQ4QXJyYXk6OmNyZWF0ZShkYXRhLCAxMiwgNCk7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0
OyArK2kpCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGFycmF5LT5pdGVtKGkpKTsKLSAgICBtX2Nv
ZGVjID0gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgbV9jb2RlYyA9ICpzdHJpbmc7CisgICAgZWxzZQorICAgICAg
ICBDUkFTSCgpOwogCiAgICAgbV9raW5kID0gc3RhdGljX2Nhc3Q8VHJhY2tLaW5kPih2aWV3LT5n
ZXQ8dWludDhfdD4oMTYsIHRydWUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9IVFRQUGFyc2Vycy5jcHAKaW5kZXggYzhmNDVlNS4uOGQzMGQ4NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAKQEAgLTMyOCw3
ICszMjgsOSBAQCBTdHJpbmcgZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb25zdCBTdHJp
bmcmIG1lZGlhVHlwZSkKIAogICAgIGlmIChtaW1lVHlwZS5sZW5ndGgoKSA9PSBsZW5ndGgpCiAg
ICAgICAgIHJldHVybiBtZWRpYVR5cGU7Ci0gICAgcmV0dXJuIG1pbWVUeXBlLnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWltZVR5cGUudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIGV4dHJhY3RDaGFyc2V0RnJv
bU1lZGlhVHlwZShjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTUlNRUhlYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL01JTUVIZWFkZXIuY3BwCmluZGV4IDI1MTY5M2UuLjc3NjcwOWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTUlNRUhlYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9NSU1FSGVhZGVyLmNwcApAQCAt
NjMsNyArNjMsMTAgQEAgc3RhdGljIEtleVZhbHVlTWFwIHJldHJpZXZlS2V5VmFsdWVQYWlycyhX
ZWJDb3JlOjpTaGFyZWRCdWZmZXJDaHVua1JlYWRlciYgYnVmZmUKICAgICAgICAgaWYgKCFrZXku
aXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBpZiAoa2V5VmFsdWVQYWlycy5maW5kKGtleSkgIT0g
a2V5VmFsdWVQYWlycy5lbmQoKSkKICAgICAgICAgICAgICAgICBMT0dfRVJST1IoIktleSBkdXBs
aWNhdGUgZm91bmQgaW4gTUlNRSBoZWFkZXIuIEtleSBpcyAnJXMnLCBwcmV2aW91cyB2YWx1ZSBy
ZXBsYWNlZC4iLCBrZXkuYXNjaWkoKS5kYXRhKCkpOwotICAgICAgICAgICAga2V5VmFsdWVQYWly
cy5hZGQoa2V5LCB2YWx1ZS50b1N0cmluZygpLnN0cmlwV2hpdGVTcGFjZSgpKTsKKyAgICAgICAg
ICAgIGlmIChhdXRvIHN0cmluZyA9IHZhbHVlLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAg
a2V5VmFsdWVQYWlycy5hZGQoa2V5LCBzdHJpbmctPnN0cmlwV2hpdGVTcGFjZSgpKTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAga2V5ID0g
U3RyaW5nKCk7CiAgICAgICAgICAgICB2YWx1ZS5jbGVhcigpOwogICAgICAgICB9CkBAIC03Niw4
ICs3OSwxMiBAQCBzdGF0aWMgS2V5VmFsdWVNYXAgcmV0cmlldmVLZXlWYWx1ZVBhaXJzKFdlYkNv
cmU6OlNoYXJlZEJ1ZmZlckNodW5rUmVhZGVyJiBidWZmZQogICAgICAgICB2YWx1ZS5hcHBlbmQo
bGluZS5zdWJzdHJpbmcoc2VtaUNvbG9uSW5kZXggKyAxKSk7CiAgICAgfQogICAgIC8vIFN0b3Jl
IHRoZSBsYXN0IHByb3BlcnR5IGlmIHRoZXJlIGlzIG9uZS4KLSAgICBpZiAoIWtleS5pc0VtcHR5
KCkpCi0gICAgICAgIGtleVZhbHVlUGFpcnMuc2V0KGtleSwgdmFsdWUudG9TdHJpbmcoKS5zdHJp
cFdoaXRlU3BhY2UoKSk7CisgICAgaWYgKCFrZXkuaXNFbXB0eSgpKSB7CisgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IHZhbHVlLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBrZXlWYWx1ZVBhaXJz
LnNldChrZXksIHN0cmluZy0+c3RyaXBXaGl0ZVNwYWNlKCkpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBDUkFTSCgpOworICAgIH0KICAgICByZXR1cm4ga2V5VmFsdWVQYWlyczsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3h5U2VydmVyLmNwcAppbmRl
eCBjNmQ2N2MyLi4wYzY5ZjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Byb3h5U2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Byb3h5U2VydmVyLmNwcApAQCAtNjgsNyArNjgsOSBAQCBTdHJpbmcgdG9TdHJpbmcoY29u
c3QgVmVjdG9yPFByb3h5U2VydmVyPiYgcHJveHlTZXJ2ZXJzKQogICAgICAgICBhcHBlbmRQcm94
eVNlcnZlclN0cmluZyhzdHJpbmdCdWlsZGVyLCBwcm94eVNlcnZlcnNbaV0pOwogICAgIH0KIAot
ICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9Db29raWVKYXJDdXJsRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmxEYXRhYmFzZS5jcHAKaW5kZXggNjcyYjI1
MS4uYTRlNzRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL0Nvb2tpZUphckN1cmxEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmxEYXRhYmFzZS5jcHAKQEAgLTU3LDcgKzU3LDkg
QEAgc3RhdGljIFN0cmluZyBjb29raWVzRm9yU2Vzc2lvbihjb25zdCBOZXR3b3JrU3RvcmFnZVNl
c3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYKICAgICAgICAgICAgIGNvb2tpZXMuYXBwZW5kKHJl
c3VsdC52YWx1ZSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIGNvb2tpZXMudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBjb29raWVzLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgQ29va2llSmFyQ3VybERh
dGFiYXNlOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNl
c3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3Qg
VVJMJiB1cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8
dWludDY0X3Q+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZUphck1hYy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZUphck1hYy5tbQppbmRleCBj
MjY0MGJkLi4wMDA1ZGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL21hYy9Db29raWVKYXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvQ29va2llSmFyTWFjLm1tCkBAIC0yNjEsNyArMjYxLDEwIEBAIHN0YXRpYyBzdGQ6
OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yU2Vzc2lvbihjb25zdCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24mIHNlCiAgICAgICAgIGNvb2tpZXNCdWlsZGVyLmFwcGVuZCgnPScpOwogICAgICAg
ICBjb29raWVzQnVpbGRlci5hcHBlbmQoW2Nvb2tpZSB2YWx1ZV0pOwogICAgIH0KLSAgICByZXR1
cm4geyBjb29raWVzQnVpbGRlci50b1N0cmluZygpLCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzIH07
CisKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBjb29raWVzQnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4geyAqc3RyaW5nLCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzIH07CisgICAgQ1JB
U0goKTsKIAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAgICAgcmV0dXJuIHsgU3Ry
aW5nKCksIGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wb3Np
eC9GaWxlU3lzdGVtUE9TSVguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcG9zaXgvRmls
ZVN5c3RlbVBPU0lYLmNwcAppbmRleCA0ZGE3Y2Y2Li4zODlkMmRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKQEAgLTMxMCw3ICsz
MTAsOSBAQCBTdHJpbmcgcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50cyhTdHJpbmdWaWV3IHBhdGgs
IGNvbnN0IFZlY3RvcjxTdHJpbmdWaWV3PiYgY29tcAogICAgICAgICBidWlsZGVyLmFwcGVuZCgn
LycpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChjb21wb25lbnQpOwogICAgIH0KLSAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9v
bCBtYWtlQWxsRGlyZWN0b3JpZXMoY29uc3QgU3RyaW5nJiBwYXRoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0LmNwcAppbmRleCBjNzVkMzNkLi5hMWVm
YzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9y
bWF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0
LmNwcApAQCAtMTQ1LDcgKzE0NSwxMCBAQCBib29sIERhdGVUaW1lRm9ybWF0OjpwYXJzZShjb25z
dCBTdHJpbmcmIHNvdXJjZSwgVG9rZW5IYW5kbGVyJiB0b2tlbkhhbmRsZXIpCiAgICAgICAgICAg
ICB9CiAKICAgICAgICAgICAgIGlmIChsaXRlcmFsQnVmZmVyLmxlbmd0aCgpKSB7Ci0gICAgICAg
ICAgICAgICAgdG9rZW5IYW5kbGVyLnZpc2l0TGl0ZXJhbChsaXRlcmFsQnVmZmVyLnRvU3RyaW5n
KCkpOworICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGxpdGVyYWxCdWZmZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgdG9rZW5IYW5kbGVyLnZpc2l0TGl0ZXJhbCgq
c3RyaW5nKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIENSQVNI
KCk7CiAgICAgICAgICAgICAgICAgbGl0ZXJhbEJ1ZmZlci5jbGVhcigpOwogICAgICAgICAgICAg
fQogCkBAIC0xNjksNyArMTcyLDEwIEBAIGJvb2wgRGF0ZVRpbWVGb3JtYXQ6OnBhcnNlKGNvbnN0
IFN0cmluZyYgc291cmNlLCBUb2tlbkhhbmRsZXImIHRva2VuSGFuZGxlcikKICAgICAgICAgICAg
IH0KIAogICAgICAgICAgICAgaWYgKGxpdGVyYWxCdWZmZXIubGVuZ3RoKCkpIHsKLSAgICAgICAg
ICAgICAgICB0b2tlbkhhbmRsZXIudmlzaXRMaXRlcmFsKGxpdGVyYWxCdWZmZXIudG9TdHJpbmco
KSk7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gbGl0ZXJhbEJ1ZmZlci50b1N0
cmluZygpKQorICAgICAgICAgICAgICAgICAgICB0b2tlbkhhbmRsZXIudmlzaXRMaXRlcmFsKCpz
dHJpbmcpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgQ1JBU0go
KTsKICAgICAgICAgICAgICAgICBsaXRlcmFsQnVmZmVyLmNsZWFyKCk7CiAgICAgICAgICAgICB9
CiAKQEAgLTIyMCwxNCArMjI2LDIyIEBAIGJvb2wgRGF0ZVRpbWVGb3JtYXQ6OnBhcnNlKGNvbnN0
IFN0cmluZyYgc291cmNlLCBUb2tlbkhhbmRsZXImIHRva2VuSGFuZGxlcikKICAgICBzd2l0Y2gg
KHN0YXRlKSB7CiAgICAgY2FzZSBTdGF0ZUxpdGVyYWw6CiAgICAgY2FzZSBTdGF0ZUluUXVvdGVR
dW90ZToKLSAgICAgICAgaWYgKGxpdGVyYWxCdWZmZXIubGVuZ3RoKCkpCi0gICAgICAgICAgICB0
b2tlbkhhbmRsZXIudmlzaXRMaXRlcmFsKGxpdGVyYWxCdWZmZXIudG9TdHJpbmcoKSk7CisgICAg
ICAgIGlmIChsaXRlcmFsQnVmZmVyLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBsaXRlcmFsQnVmZmVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgdG9rZW5I
YW5kbGVyLnZpc2l0TGl0ZXJhbCgqc3RyaW5nKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICBDUkFTSCgpOworICAgICAgICB9CiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAg
Y2FzZSBTdGF0ZVF1b3RlOgogICAgIGNhc2UgU3RhdGVJblF1b3RlOgotICAgICAgICBpZiAobGl0
ZXJhbEJ1ZmZlci5sZW5ndGgoKSkKLSAgICAgICAgICAgIHRva2VuSGFuZGxlci52aXNpdExpdGVy
YWwobGl0ZXJhbEJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGxpdGVyYWxCdWZmZXIu
bGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGxpdGVyYWxCdWZmZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICB0b2tlbkhhbmRsZXIudmlzaXRMaXRlcmFsKCpz
dHJpbmcpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CisgICAg
ICAgIH0KICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgY2FzZSBTdGF0ZVN5bWJvbDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRGVjb2RlRXNjYXBlU2VxdWVu
Y2VzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RlY29kZUVzY2FwZVNlcXVlbmNl
cy5oCmluZGV4IDE0Y2Y0MTUuLjcyYTBhNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9EZWNvZGVFc2NhcGVTZXF1ZW5jZXMuaApAQCAtNjQsNyArNjQsOSBAQCBz
dHJ1Y3QgVW5pY29kZTE2Qml0RXNjYXBlU2VxdWVuY2UgewogICAgICAgICAgICAgYnVpbGRlci5h
cHBlbmQoY29kZVVuaXQpOwogICAgICAgICAgICAgcnVuID0gcnVuLnN1YnN0cmluZyhzZXF1ZW5j
ZVNpemUpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KIH07CiAKQEAgLTE1MSw3
ICsxNTMsOSBAQCBTdHJpbmcgZGVjb2RlRXNjYXBlU2VxdWVuY2VzKFN0cmluZ1ZpZXcgc3RyaW5n
LCBjb25zdCBUZXh0RW5jb2RpbmcmIGVuY29kaW5nKQogICAgICAgICBkZWNvZGVkUG9zaXRpb24g
PSBlbmNvZGVkUnVuRW5kOwogICAgIH0KICAgICByZXN1bHQuYXBwZW5kKHN0cmluZy5zdWJzdHJp
bmcoZGVjb2RlZFBvc2l0aW9uLCBsZW5ndGggLSBkZWNvZGVkUG9zaXRpb24pKTsKLSAgICByZXR1
cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGlubGlu
ZSBWZWN0b3I8dWludDhfdD4gZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzQXNEYXRhKFN0cmluZ1Zp
ZXcgc3RyaW5nLCBjb25zdCBUZXh0RW5jb2RpbmcmIGVuY29kaW5nKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxlLmNwcAppbmRleCAwODc0MzI1Li5hOWU1
OGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9j
YWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxl
LmNwcApAQCAtODMsNyArODMsOSBAQCBTdHJpbmcgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjp6ZXJv
UGFkU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBzaXplX3Qgd2lkdGgpCiAgICAgZm9yIChz
aXplX3QgaSA9IHN0cmluZy5sZW5ndGgoKTsgaSA8IHdpZHRoOyArK2kpCiAgICAgICAgIHplcm9Q
YWRkZWRTdHJpbmdCdWlsZGVyLmFwcGVuZCgnMCcpOwogICAgIHplcm9QYWRkZWRTdHJpbmdCdWls
ZGVyLmFwcGVuZChzdHJpbmcpOwotICAgIHJldHVybiB6ZXJvUGFkZGVkU3RyaW5nQnVpbGRlci50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHplcm9QYWRkZWRTdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IHZvaWQgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIoaW50IG51bWJlciwgc2l6
ZV90IHdpZHRoKQpAQCAtMTc1LDcgKzE3Nyw5IEBAIHZvaWQgRGF0ZVRpbWVTdHJpbmdCdWlsZGVy
Ojp2aXNpdExpdGVyYWwoY29uc3QgU3RyaW5nJiB0ZXh0KQogCiBTdHJpbmcgRGF0ZVRpbWVTdHJp
bmdCdWlsZGVyOjp0b1N0cmluZygpCiB7Ci0gICAgcmV0dXJuIG1fYnVpbGRlci50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IG1fYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiAjZW5kaWYKQEAgLTIzOCw3ICsyNDIs
OSBAQCBTdHJpbmcgTG9jYWxlOjpjb252ZXJ0VG9Mb2NhbGl6ZWROdW1iZXIoY29uc3QgU3RyaW5n
JiBpbnB1dCkKIAogICAgIGJ1aWxkZXIuYXBwZW5kKGlzTmVnYXRpdmUgPyBtX25lZ2F0aXZlU3Vm
Zml4IDogbV9wb3NpdGl2ZVN1ZmZpeCk7CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIGJvb2wgbWF0Y2hlcyhjb25z
dCBTdHJpbmcmIHRleHQsIHVuc2lnbmVkIHBvc2l0aW9uLCBjb25zdCBTdHJpbmcmIHBhcnQpCkBA
IC0zMjEsNyArMzI3LDkgQEAgU3RyaW5nIExvY2FsZTo6Y29udmVydEZyb21Mb2NhbGl6ZWROdW1i
ZXIoY29uc3QgU3RyaW5nJiBsb2NhbGl6ZWQpCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKHN0YXRpY19jYXN0PFVDaGFyPignMCcgKyBzeW1ib2xJbmRleCkpOwogICAg
IH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQpAQCAtMzYwLDcg
KzM2OCw5IEBAIFN0cmluZyBMb2NhbGU6OmZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25l
bnRzJiBkYXRlLCBGb3JtYXRUeXBlIGZvcm1hdFR5cGUpCiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAjZW5kaWYgLy8gIVBMQVRGT1JNKElP
UykKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRT
dHJpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcu
Y3BwCmluZGV4IGZmMzFiMmEuLjQ4Y2JhMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmluZy5jcHAKQEAgLTE1OSw3ICsxNTksOSBAQCBTdHJpbmcg
U2VnbWVudGVkU3RyaW5nOjp0b1N0cmluZygpIGNvbnN0CiAgICAgbV9jdXJyZW50U3Vic3RyaW5n
LmFwcGVuZFRvKHJlc3VsdCk7CiAgICAgZm9yIChhdXRvJiBzdWJzdHJpbmcgOiBtX290aGVyU3Vi
c3RyaW5ncykKICAgICAgICAgc3Vic3RyaW5nLmFwcGVuZFRvKHJlc3VsdCk7Ci0gICAgcmV0dXJu
IHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIFNl
Z21lbnRlZFN0cmluZzo6YWR2YW5jZVdpdGhvdXRVcGRhdGluZ0xpbmVOdW1iZXIxNigpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAKaW5kZXggZDJlMmFl
Ny4uNzYyMmNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0
Q29kZWNJQ1UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVj
SUNVLmNwcApAQCAtMzE4LDEzICszMTgsMTQgQEAgU3RyaW5nIFRleHRDb2RlY0lDVTo6ZGVjb2Rl
KGNvbnN0IGNoYXIqIGJ5dGVzLCBzaXplX3QgbGVuZ3RoLCBib29sIGZsdXNoLCBib29sIHMKICAg
ICAgICAgc2F3RXJyb3IgPSB0cnVlOwogICAgIH0KIAotICAgIFN0cmluZyByZXN1bHRTdHJpbmcg
PSByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byByZXN1bHRTdHJpbmcgPSByZXN1bHQu
dG9TdHJpbmcoKSkgeworICAgICAgICAvLyBTaW1wbGlmaWVkIENoaW5lc2UgcGFnZXMgdXNlIHRo
ZSBjb2RlIEEzQTAgdG8gbWVhbiAiZnVsbC13aWR0aCBzcGFjZSIsIGJ1dCBJQ1UgZGVjb2RlcyBp
dCBhcyBVK0U1RTUuCisgICAgICAgIGlmICghc3RyY21wKG1fZW5jb2RpbmdOYW1lLCAiR0JLIikg
fHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobV9lbmNvZGluZ05hbWUsICJnYjE4MDMw
IikpCisgICAgICAgICAgICByZXN1bHRTdHJpbmctPnJlcGxhY2UoMHhFNUU1LCBpZGVvZ3JhcGhp
Y1NwYWNlKTsKIAotICAgIC8vIFNpbXBsaWZpZWQgQ2hpbmVzZSBwYWdlcyB1c2UgdGhlIGNvZGUg
QTNBMCB0byBtZWFuICJmdWxsLXdpZHRoIHNwYWNlIiwgYnV0IElDVSBkZWNvZGVzIGl0IGFzIFUr
RTVFNS4KLSAgICBpZiAoIXN0cmNtcChtX2VuY29kaW5nTmFtZSwgIkdCSyIpIHx8IGVxdWFsTGV0
dGVyc0lnbm9yaW5nQVNDSUlDYXNlKG1fZW5jb2RpbmdOYW1lLCAiZ2IxODAzMCIpKQotICAgICAg
ICByZXN1bHRTdHJpbmcucmVwbGFjZSgweEU1RTUsIGlkZW9ncmFwaGljU3BhY2UpOwotCi0gICAg
cmV0dXJuIHJlc3VsdFN0cmluZzsKKyAgICAgICAgcmV0dXJuICpyZXN1bHRTdHJpbmc7CisgICAg
fQorICAgIENSQVNIKCk7CiB9CiAKIC8vIFdlIG5lZWQgdG8gYXBwbHkgdGhlc2UgZmFsbGJhY2tz
IG91cnNlbHZlcyBhcyB0aGV5IGFyZSBub3QgY3VycmVudGx5IHN1cHBvcnRlZCBieSBJQ1UgYW5k
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VzZXJE
ZWZpbmVkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjVXNlckRl
ZmluZWQuY3BwCmluZGV4IDI5NmM0NjkuLmNiNzBlNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjVXNlckRlZmluZWQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjVXNlckRlZmluZWQuY3BwCkBAIC01Myw3ICs1
Myw5IEBAIFN0cmluZyBUZXh0Q29kZWNVc2VyRGVmaW5lZDo6ZGVjb2RlKGNvbnN0IGNoYXIqIGJ5
dGVzLCBzaXplX3QgbGVuZ3RoLCBib29sLCBib29sCiAgICAgICAgIHNpZ25lZCBjaGFyIGMgPSBi
eXRlc1tpXTsKICAgICAgICAgcmVzdWx0LmFwcGVuZChzdGF0aWNfY2FzdDxVQ2hhcj4oYyAmIDB4
RjdGRikpOwogICAgIH0KLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBWZWN0b3I8dWludDhfdD4gZW5jb2RlQ29tcGxleFVz
ZXJEZWZpbmVkKFN0cmluZ1ZpZXcgc3RyaW5nLCBVbmVuY29kYWJsZUhhbmRsaW5nIGhhbmRsaW5n
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvb3BlbnZyL1ZSUGxhdGZv
cm1EaXNwbGF5T3BlblZSLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3ZyL29wZW52ci9W
UlBsYXRmb3JtRGlzcGxheU9wZW5WUi5jcHAKaW5kZXggZGQ2Mjg4ZS4uMTY5ZWNiMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvb3BlbnZyL1ZSUGxhdGZvcm1EaXNwbGF5
T3BlblZSLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS92ci9vcGVudnIvVlJQbGF0
Zm9ybURpc3BsYXlPcGVuVlIuY3BwCkBAIC00NSw3ICs0NSwxMCBAQCBWUlBsYXRmb3JtRGlzcGxh
eU9wZW5WUjo6VlJQbGF0Zm9ybURpc3BsYXlPcGVuVlIodnI6OklWUlN5c3RlbSogc3lzdGVtLCB2
cjo6SVZSQwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChITUROYW1lLCBsZW5ndGgpOwog
ICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnKScpOwogICAgIH0KLSAgICBtX2Rpc3BsYXlJ
bmZvLnNldERpc3BsYXlOYW1lKHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBtX2Rpc3BsYXlJ
bmZvLnNldERpc3BsYXlOYW1lKFdURk1vdmUoKnN0cmluZykpOworICAgIGVsc2UKKyAgICAgICAg
Q1JBU0goKTsKICAgICBtX2Rpc3BsYXlJbmZvLnNldElzTW91bnRlZChmYWxzZSk7CiAgICAgLy8g
RklYTUU6IFdlJ3JlIGFzc3VtaW5nIGFuIEhUQyBWaXZlIEhNRCBoZXJlLiBHZXQgdGhpcyBpbmZv
IGZyb20gT3BlblZSPy4KICAgICBtX2Rpc3BsYXlJbmZvLnNldENhcGFiaWxpdHlGbGFncyhWUkRp
c3BsYXlDYXBhYmlsaXR5RmxhZ05vbmUgfCBWUkRpc3BsYXlDYXBhYmlsaXR5RmxhZ1Bvc2l0aW9u
IHwgVlJEaXNwbGF5Q2FwYWJpbGl0eUZsYWdPcmllbnRhdGlvbiB8IFZSRGlzcGxheUNhcGFiaWxp
dHlGbGFnRXh0ZXJuYWxEaXNwbGF5IHwgVlJEaXNwbGF5Q2FwYWJpbGl0eUZsYWdQcmVzZW50KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRp
ZXNXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGll
c1dpbi5jcHAKaW5kZXggNmZmODllYy4uMmJjNmQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAKQEAgLTMxNCw3ICsz
MTQsMTAgQEAgdm9pZCByZXBsYWNlTmV3bGluZXNXaXRoV2luZG93c1N0eWxlTmV3bGluZXMoU3Ry
aW5nJiBzdHIpCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFs
KCJcclxuIik7CiAgICAgfQotICAgIHN0ciA9IHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBzdHIgPSAqc3RyaW5nOwor
ICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCByZXBsYWNlTkJTUFdpdGhTcGFj
ZShTdHJpbmcmIHN0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9V
c2VyQWdlbnRXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1VzZXJBZ2VudFdp
bi5jcHAKaW5kZXggODIwMWY0ZS4uZDNkNjk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd2luL1VzZXJBZ2VudFdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd2luL1VzZXJBZ2VudFdpbi5jcHAKQEAgLTQ2LDcgKzQ2LDkgQEAgU3RyaW5nIHN0YW5kYXJk
VXNlckFnZW50KGNvbnN0IFN0cmluZyYgYXBwbGljYXRpb25OYW1lLCBjb25zdCBTdHJpbmcmIGFw
cGxpY2F0aW8KICAgICAgICAgICAgIHVhU3RyaW5nLmFwcGVuZChhcHBsaWNhdGlvblZlcnNpb24p
OwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiB1YVN0cmluZy50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHVhU3RyaW5nLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBzdGFuZGFyZFVzZXJBZ2VudEZvclVS
TChjb25zdCBVUkwmIHVybCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dw
ZS9SZW5kZXJUaGVtZVdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUmVuZGVy
VGhlbWVXUEUuY3BwCmluZGV4IGU1ZDgwMjcuLjY2OTFiZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmNwcApAQCAtNjAsNyArNjAsOSBAQCBTdHJp
bmcgUmVuZGVyVGhlbWVXUEU6Om1lZGlhQ29udHJvbHNTY3JpcHQoKQogICAgIFN0cmluZ0J1aWxk
ZXIgc2NyaXB0QnVpbGRlcjsKICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZChtZWRpYUNvbnRyb2xz
TG9jYWxpemVkU3RyaW5nc0phdmFTY3JpcHQsIHNpemVvZihtZWRpYUNvbnRyb2xzTG9jYWxpemVk
U3RyaW5nc0phdmFTY3JpcHQpKTsKICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZChtZWRpYUNvbnRy
b2xzQmFzZUphdmFTY3JpcHQsIHNpemVvZihtZWRpYUNvbnRyb2xzQmFzZUphdmFTY3JpcHQpKTsK
LSAgICByZXR1cm4gc2NyaXB0QnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KICNlbmRpZgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcAppbmRleCAxYjJkNzUyLi4yZmU1ODYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcApAQCAtNTcsNyArNTcsOSBAQCBTdHJpbmcg
RE9NTWltZVR5cGU6OnN1ZmZpeGVzKCkgY29uc3QKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCcsJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGV4dGVuc2lvbnNbaV0pOwogICAgIH0KLSAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogU3RyaW5nIERPTU1pbWVUeXBlOjpkZXNjcmlwdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCBmYTBlNTdhLi5iYTljZDYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTQyOCw3ICs0MjgsOSBAQCBT
dHJpbmcgUmVuZGVyTGF5ZXI6Om5hbWUoKSBjb25zdAogICAgIGlmIChpc1JlZmxlY3Rpb24oKSkK
ICAgICAgICAgbmFtZS5hcHBlbmRMaXRlcmFsKCIgKHJlZmxlY3Rpb24pIik7CiAKLSAgICByZXR1
cm4gbmFtZS50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG5hbWUudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogUmVuZGVyTGF5
ZXJDb21wb3NpdG9yJiBSZW5kZXJMYXllcjo6Y29tcG9zaXRvcigpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDBl
OTA4ODguLmM3OWI2NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC04NjMsNyArODYzLDEwIEBAIHZvaWQgUmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpsb2dMYXllckluZm8oY29uc3QgUmVuZGVyTGF5ZXImIGxheWVyLCBpbnQg
ZGVwdGgpCiAKICAgICBsb2dTdHJpbmcuYXBwZW5kKGxheWVyLm5hbWUoKSk7CiAKLSAgICBMT0co
Q29tcG9zaXRpbmcsICIlcyIsIGxvZ1N0cmluZy50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IGxvZ1N0cmluZy50b1N0cmluZygpKQorICAgICAgICBMT0co
Q29tcG9zaXRpbmcsICIlcyIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgZWxzZQorICAg
ICAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0TWFya2VyLmNwcAppbmRleCA2NDk2OTc4Li5lNDhhMjllIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCkBAIC0xMTE3LDcgKzExMTcs
OSBAQCBTdHJpbmcgbGlzdE1hcmtlclRleHQoRUxpc3RTdHlsZVR5cGUgdHlwZSwgaW50IHZhbHVl
KQogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFJlbmRlckxpc3RNYXJrZXI6OlJl
bmRlckxpc3RNYXJrZXIoUmVuZGVyTGlzdEl0ZW0mIGxpc3RJdGVtLCBSZW5kZXJTdHlsZSYmIHN0
eWxlKQpAQCAtMTM2Myw3ICsxMzY1LDEwIEBAIHZvaWQgUmVuZGVyTGlzdE1hcmtlcjo6cGFpbnQo
UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNlCiAgICAg
ICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChzdWZmaXgpOwogICAgICAgICAgICAgICAgIGJ1ZmZl
ci5hcHBlbmQoc3BhY2UpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgdG9EcmF3ID0gYnVm
ZmVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWZmZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgICAgICAgICB0b0RyYXcgPSAqc3RyaW5nOworICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICBpZiAoc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCiAgICAgICAgICAgICAg
ICAgdG9EcmF3ID0gbV90ZXh0ICsgU3RyaW5nKCZzdWZmaXgsIDEpICsgU3RyaW5nKCZzcGFjZSwg
MSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKaW5kZXggOGZhNTFlMi4u
MTA1MjBmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcApAQCAtMTgx
LDcgKzE4MSw5IEBAIFN0cmluZyBjYXBpdGFsaXplKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBVQ2hh
ciBwcmV2aW91c0NoYXJhY3RlcikKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc3RyaW5nSW1w
bFtpIC0gMV0pOwogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KIAogaW5saW5lIFJlbmRlclRleHQ6OlJlbmRlclRleHQoTm9k
ZSYgbm9kZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtNzU2LDE2ICs3NTgsMTkgQEAgc3RhdGlj
IGZsb2F0IG1heFdvcmRGcmFnbWVudFdpZHRoKFJlbmRlclRleHQmIHJlbmRlcmVyLCBjb25zdCBS
ZW5kZXJTdHlsZSYgc3R5bGUKICAgICAgICAgZnJhZ21lbnRXaXRoSHlwaGVuLmFwcGVuZCh3b3Jk
LnN1YnN0cmluZyhzdWZmaXhTdGFydCwgZnJhZ21lbnRMZW5ndGgpKTsKICAgICAgICAgZnJhZ21l
bnRXaXRoSHlwaGVuLmFwcGVuZChzdHlsZS5oeXBoZW5TdHJpbmcoKSk7CiAKLSAgICAgICAgVGV4
dFJ1biBydW4gPSBSZW5kZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1bihmcmFnbWVudFdpdGhIeXBo
ZW4udG9TdHJpbmcoKSwgc3R5bGUpOwotICAgICAgICBydW4uc2V0Q2hhcmFjdGVyU2NhbkZvckNv
ZGVQYXRoKCFyZW5kZXJlci5jYW5Vc2VTaW1wbGVGb250Q29kZVBhdGgoKSk7Ci0gICAgICAgIGZs
b2F0IGZyYWdtZW50V2lkdGggPSBmb250LndpZHRoKHJ1biwgJmZhbGxiYWNrRm9udHMsICZnbHlw
aE92ZXJmbG93KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZnJhZ21lbnRXaXRoSHlwaGVu
LnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIFRleHRSdW4gcnVuID0gUmVuZGVyQmxvY2s6OmNv
bnN0cnVjdFRleHRSdW4oKnN0cmluZywgc3R5bGUpOworICAgICAgICAgICAgcnVuLnNldENoYXJh
Y3RlclNjYW5Gb3JDb2RlUGF0aCghcmVuZGVyZXIuY2FuVXNlU2ltcGxlRm9udENvZGVQYXRoKCkp
OworICAgICAgICAgICAgZmxvYXQgZnJhZ21lbnRXaWR0aCA9IGZvbnQud2lkdGgocnVuLCAmZmFs
bGJhY2tGb250cywgJmdseXBoT3ZlcmZsb3cpOwogCi0gICAgICAgIC8vIE5hcnJvdyBwcmVmaXhl
cyBhcmUgaWdub3JlZC4gU2VlIHRyeUh5cGhlbmF0aW5nIGluIFJlbmRlckJsb2NrTGluZUxheW91
dC5jcHAuCi0gICAgICAgIGlmIChmcmFnbWVudFdpZHRoIDw9IG1pbmltdW1GcmFnbWVudFdpZHRo
VG9Db25zaWRlcikKLSAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgLy8gTmFycm93
IHByZWZpeGVzIGFyZSBpZ25vcmVkLiBTZWUgdHJ5SHlwaGVuYXRpbmcgaW4gUmVuZGVyQmxvY2tM
aW5lTGF5b3V0LmNwcC4KKyAgICAgICAgICAgIGlmIChmcmFnbWVudFdpZHRoIDw9IG1pbmltdW1G
cmFnbWVudFdpZHRoVG9Db25zaWRlcikKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAg
ICAgICBzdWZmaXhTdGFydCArPSBmcmFnbWVudExlbmd0aDsKLSAgICAgICAgbWF4RnJhZ21lbnRX
aWR0aCA9IHN0ZDo6bWF4KG1heEZyYWdtZW50V2lkdGgsIGZyYWdtZW50V2lkdGgpOworICAgICAg
ICAgICAgc3VmZml4U3RhcnQgKz0gZnJhZ21lbnRMZW5ndGg7CisgICAgICAgICAgICBtYXhGcmFn
bWVudFdpZHRoID0gc3RkOjptYXgobWF4RnJhZ21lbnRXaWR0aCwgZnJhZ21lbnRXaWR0aCk7Cisg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICByZXR1cm4g
bWF4RnJhZ21lbnRXaWR0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZUd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVH
dGsuY3BwCmluZGV4IDA3ODU5MTAuLjU2N2M0MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lR3RrLmNwcApAQCAtMjAyNiw3ICsyMDI2LDkgQEAgU3RyaW5nIFJlbmRl
clRoZW1lR3RrOjptZWRpYUNvbnRyb2xzU2NyaXB0KCkKICAgICBzY3JpcHRCdWlsZGVyLmFwcGVu
ZChtZWRpYUNvbnRyb2xzTG9jYWxpemVkU3RyaW5nc0phdmFTY3JpcHQsIHNpemVvZihtZWRpYUNv
bnRyb2xzTG9jYWxpemVkU3RyaW5nc0phdmFTY3JpcHQpKTsKICAgICBzY3JpcHRCdWlsZGVyLmFw
cGVuZChtZWRpYUNvbnRyb2xzQmFzZUphdmFTY3JpcHQsIHNpemVvZihtZWRpYUNvbnRyb2xzQmFz
ZUphdmFTY3JpcHQpKTsKICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZChtZWRpYUNvbnRyb2xzR3Rr
SmF2YVNjcmlwdCwgc2l6ZW9mKG1lZGlhQ29udHJvbHNHdGtKYXZhU2NyaXB0KSk7Ci0gICAgcmV0
dXJuIHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzY3Jp
cHRCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVJT1MubW0KaW5kZXggNGZlODNlMC4uMjU3OGY1MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQpAQCAtMTM2MCw3ICsxMzYwLDEwIEBA
IFN0cmluZyBSZW5kZXJUaGVtZUlPUzo6bWVkaWFDb250cm9sc1NjcmlwdCgpCiAgICAgICAgICAg
ICBTdHJpbmdCdWlsZGVyIHNjcmlwdEJ1aWxkZXI7CiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVy
LmFwcGVuZChbTlNTdHJpbmcgc3RyaW5nV2l0aENvbnRlbnRzT2ZGaWxlOltidW5kbGUgcGF0aEZv
clJlc291cmNlOkAibW9kZXJuLW1lZGlhLWNvbnRyb2xzLWxvY2FsaXplZC1zdHJpbmdzIiBvZlR5
cGU6QCJqcyJdIGVuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nIGVycm9yOm5pbF0pOwogICAg
ICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQoW05TU3RyaW5nIHN0cmluZ1dpdGhDb250ZW50
c09mRmlsZTpbYnVuZGxlIHBhdGhGb3JSZXNvdXJjZTpAIm1vZGVybi1tZWRpYS1jb250cm9scyIg
b2ZUeXBlOkAianMiIGluRGlyZWN0b3J5OkAibW9kZXJuLW1lZGlhLWNvbnRyb2xzIl0gZW5jb2Rp
bmc6TlNVVEY4U3RyaW5nRW5jb2RpbmcgZXJyb3I6bmlsXSk7Ci0gICAgICAgICAgICBtX21lZGlh
Q29udHJvbHNTY3JpcHQgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAg
ICAgbV9tZWRpYUNvbnRyb2xzU2NyaXB0ID0gKnN0cmluZzsKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX21lZGlh
Q29udHJvbHNTY3JpcHQ7CiAgICAgfQpAQCAtMTM3Myw3ICsxMzc2LDEwIEBAIFN0cmluZyBSZW5k
ZXJUaGVtZUlPUzo6bWVkaWFDb250cm9sc1NjcmlwdCgpCiAgICAgICAgIHNjcmlwdEJ1aWxkZXIu
YXBwZW5kKFtOU1N0cmluZyBzdHJpbmdXaXRoQ29udGVudHNPZkZpbGU6W2J1bmRsZSBwYXRoRm9y
UmVzb3VyY2U6QCJtZWRpYUNvbnRyb2xzQXBwbGUiIG9mVHlwZTpAImpzIl0gZW5jb2Rpbmc6TlNV
VEY4U3RyaW5nRW5jb2RpbmcgZXJyb3I6bmlsXSk7CiAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBw
ZW5kKFtOU1N0cmluZyBzdHJpbmdXaXRoQ29udGVudHNPZkZpbGU6W2J1bmRsZSBwYXRoRm9yUmVz
b3VyY2U6QCJtZWRpYUNvbnRyb2xzaU9TIiBvZlR5cGU6QCJqcyJdIGVuY29kaW5nOk5TVVRGOFN0
cmluZ0VuY29kaW5nIGVycm9yOm5pbF0pOwogCi0gICAgICAgIG1fbGVnYWN5TWVkaWFDb250cm9s
c1NjcmlwdCA9IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgbV9sZWdhY3lNZWRp
YUNvbnRyb2xzU2NyaXB0ID0gKnN0cmluZzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JB
U0goKTsKICAgICB9CiAgICAgcmV0dXJuIG1fbGVnYWN5TWVkaWFDb250cm9sc1NjcmlwdDsKICNl
bHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcAppbmRleCBk
ZWVhMWE5Li44MzZkMDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZVdpbi5jcHAKQEAgLTEwOTQsNyArMTA5NCwxMCBAQCBTdHJpbmcgUmVuZGVyVGhlbWVXaW46Om1l
ZGlhQ29udHJvbHNTY3JpcHQoKQogICAgICAgICBTdHJpbmdCdWlsZGVyIHNjcmlwdEJ1aWxkZXI7
CiAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kKHN0cmluZ1dpdGhDb250ZW50c09mRmlsZShD
RlNUUigibWVkaWFDb250cm9sc0xvY2FsaXplZFN0cmluZ3MiKSwgQ0ZTVFIoImpzIikpKTsKICAg
ICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQoc3RyaW5nV2l0aENvbnRlbnRzT2ZGaWxlKENGU1RS
KCJtZWRpYUNvbnRyb2xzQXBwbGUiKSwgQ0ZTVFIoImpzIikpKTsKLSAgICAgICAgbV9tZWRpYUNv
bnRyb2xzU2NyaXB0ID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0
byBzdHJpbmcgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBtX21lZGlh
Q29udHJvbHNTY3JpcHQgPSAqc3RyaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFT
SCgpOwogICAgIH0KICAgICByZXR1cm4gbV9tZWRpYUNvbnRyb2xzU2NyaXB0OwogI2Vsc2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAppbmRleCA1NWNk
YjRiLi44NWM3OGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VHJlZUFzVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVB
c1RleHQuY3BwCkBAIC0xNzAsNyArMTcwLDkgQEAgU3RyaW5nIHF1b3RlQW5kRXNjYXBlTm9uUHJp
bnRhYmxlcyhTdHJpbmdWaWV3IHMpCiAgICAgICAgIH0KICAgICB9CiAgICAgcmVzdWx0LmFwcGVu
ZCgnIicpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogdm9pZCBSZW5kZXJUcmVlQXNUZXh0Ojp3cml0ZVJlbmRlck9iamVjdChUZXh0
U3RyZWFtJiB0cywgY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBSZW5kZXJBc1RleHRCZWhhdmlvciBi
ZWhhdmlvcikKQEAgLTgwNyw3ICs4MDksOSBAQCBzdGF0aWMgU3RyaW5nIG5vZGVQb3NpdGlvbihO
b2RlKiBub2RlKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoImRvY3VtZW50Iik7
CiAgICAgfQogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBD
UkFTSCgpOwogfQogCiBzdGF0aWMgdm9pZCB3cml0ZVNlbGVjdGlvbihUZXh0U3RyZWFtJiB0cywg
Y29uc3QgUmVuZGVyQm94JiByZW5kZXJlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmNwcAppbmRleCA4OWJiMDQwLi44Yzc4
NGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1h
dGhNTEZlbmNlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5k
ZXJNYXRoTUxGZW5jZWQuY3BwCkBAIC03MSw3ICs3MSwxMCBAQCB2b2lkIFJlbmRlck1hdGhNTEZl
bmNlZDo6dXBkYXRlRnJvbUVsZW1lbnQoKQogICAgICAgICAgICAgaWYgKCFpc1NwYWNlT3JOZXds
aW5lKHNlcGFyYXRvcnNbaV0pKQogICAgICAgICAgICAgICAgIGNoYXJhY3RlcnMuYXBwZW5kKHNl
cGFyYXRvcnNbaV0pOwogICAgICAgICB9Ci0gICAgICAgIG1fc2VwYXJhdG9ycyA9ICFjaGFyYWN0
ZXJzLmxlbmd0aCgpID8gMCA6IGNoYXJhY3RlcnMudG9TdHJpbmcoKS5pbXBsKCk7CisgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IGNoYXJhY3RlcnMudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIG1f
c2VwYXJhdG9ycyA9ICFjaGFyYWN0ZXJzLmxlbmd0aCgpID8gMCA6IHN0cmluZy0+aW1wbCgpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0gZWxzZSB7CiAgICAgICAg
IC8vIFRoZSBzZXBhcmF0b3IgZGVmYXVsdHMgdG8gYSBzaW5nbGUgY29tbWEuCiAgICAgICAgIG1f
c2VwYXJhdG9ycyA9IFN0cmluZ0ltcGw6OmNyZWF0ZSgiLCIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTWF0aE1MLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlck1hdGhN
TC5jcHAKaW5kZXggNWNiNDc4Yi4uMjBkMjUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTWF0aE1MLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNYXRoTUwuY3Bw
CkBAIC05MCw3ICs5MCwxMCBAQCB2b2lkIFJlbmRlclRyZWVCdWlsZGVyOjpNYXRoTUw6OmF0dGFj
aChSZW5kZXJNYXRoTUxGZW5jZWQmIHBhcmVudCwgUmVuZGVyUHRyPFJlbgogCiAgICAgICAgICAg
ICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7CiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZChzZXBhcmF0b3IpOwotICAgICAgICAgICAgc2VwYXJhdG9yUmVuZGVyZXIgPSBjcmVh
dGVNYXRoTUxPcGVyYXRvcihwYXJlbnQsIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSwgTWF0aE1M
T3BlcmF0b3JEaWN0aW9uYXJ5OjpJbmZpeCwgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpTZXBh
cmF0b3IpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICAgICAgICAgIHNlcGFyYXRvclJlbmRlcmVyID0gY3JlYXRlTWF0aE1M
T3BlcmF0b3IocGFyZW50LCAqc3RyaW5nLCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OkluZml4
LCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OlNlcGFyYXRvcik7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3BwCmluZGV4IGJhMjA2NDguLjIwZWEzZTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5jcHAKQEAgLTYzLDcg
KzYzLDkgQEAgU3RyaW5nIFNWR0xlbmd0aExpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcoKSBjb25z
dAogICAgICAgICBidWlsZGVyLmFwcGVuZChhdChpKS52YWx1ZUFzU3RyaW5nKCkpOwogICAgIH0K
IAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
YnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdFZh
bHVlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5jcHAKaW5k
ZXggNmRmZDk5My4uODc1YmU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR051
bWJlckxpc3RWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0
VmFsdWVzLmNwcApAQCAtNTUsNyArNTUsOSBAQCBTdHJpbmcgU1ZHTnVtYmVyTGlzdFZhbHVlczo6
dmFsdWVBc1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGF0KGkp
KTsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhTdHJpbmdCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU3RyaW5nQnVp
bGRlci5jcHAKaW5kZXggMTA1MzkxYy4uOWM1NzdlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdGhTdHJpbmdCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0aFN0cmluZ0J1aWxkZXIuY3BwCkBAIC0zNyw3ICszNyw5IEBAIFN0cmluZyBTVkdQYXRo
U3RyaW5nQnVpbGRlcjo6cmVzdWx0KCkKIAogICAgIC8vIFJlbW92ZSB0cmFpbGluZyBzcGFjZS4K
ICAgICBtX3N0cmluZ0J1aWxkZXIucmVzaXplKHNpemUgLSAxKTsKLSAgICByZXR1cm4gbV9zdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbV9zdHJpbmdCdWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIHZvaWQgU1ZHUGF0aFN0cmluZ0J1aWxkZXI6OmluY3JlbWVudFBhdGhTZWdtZW50Q291bnQo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwCmluZGV4IGNmOWYwMTQuLmNj
NTQzMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoVXRpbGl0aWVzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAKQEAgLTEwMSw3
ICsxMDEsOSBAQCBTdHJpbmcgYnVpbGRTdHJpbmdGcm9tUGF0aChjb25zdCBQYXRoJiBwYXRoKQog
ICAgICAgICB9KTsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBidWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJv
bVNWR1BhdGhTZWdMaXN0VmFsdWVzKGNvbnN0IFNWR1BhdGhTZWdMaXN0VmFsdWVzJiBsaXN0LCBT
VkdQYXRoQnl0ZVN0cmVhbSYgcmVzdWx0LCBQYXRoUGFyc2luZ01vZGUgcGFyc2luZ01vZGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1ZXMuY3BwCmluZGV4IGQ4MWU2YTIuLmQ4
YmRlZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1ZXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1ZXMuY3BwCkBAIC00
MSw3ICs0MSw5IEBAIFN0cmluZyBTVkdQb2ludExpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcoKSBj
b25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihwb2ludC55KCkpOwogICAgIH0KIAot
ICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdFZhbHVl
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdFZhbHVlcy5jcHAKaW5kZXgg
M2ZmODk4YS4uOGM2MWYxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmlu
Z0xpc3RWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFs
dWVzLmNwcApAQCAtNzMsNyArNzMsOSBAQCBTdHJpbmcgU1ZHU3RyaW5nTGlzdFZhbHVlczo6dmFs
dWVBc1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGF0KGkpKTsKICAgICB9
CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxp
c3RWYWx1ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMu
Y3BwCmluZGV4IDI1YjNjMzEuLjZiNDJkM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAKQEAgLTY4LDcgKzY4LDkgQEAgU3RyaW5nIFNWR1RyYW5z
Zm9ybUxpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFw
cGVuZChhdChpKS52YWx1ZUFzU3RyaW5nKCkpOwogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIFNWR1RyYW5z
Zm9ybUxpc3RWYWx1ZXM6OnBhcnNlKGNvbnN0IFN0cmluZyYgdHJhbnNmb3JtKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5jcHAKaW5kZXggNjNkNDVhNS4uZWExNDYzZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtVmFsdWUuY3BwCkBAIC0xNzksNyArMTc5LDkg
QEAgU3RyaW5nIFNWR1RyYW5zZm9ybVZhbHVlOjp2YWx1ZUFzU3RyaW5nKCkgY29uc3QKICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV9t
YXRyaXguZigpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKLSAgICAgICAgcmV0dXJu
IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7
CiAgICAgfQogICAgIGNhc2UgU1ZHX1RSQU5TRk9STV9UUkFOU0xBVEU6IHsKICAgICAgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOwpAQCAtMTg4LDcgKzE5MCw5IEBAIFN0cmluZyBTVkdUcmFuc2Zv
cm1WYWx1ZTo6dmFsdWVBc1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcg
Jyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fbWF0cml4LmYoKSk7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCcpJyk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7
CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICBjYXNlIFNW
R19UUkFOU0ZPUk1fU0NBTEU6IHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwpAQCAt
MTk3LDcgKzIwMSw5IEBAIFN0cmluZyBTVkdUcmFuc2Zvcm1WYWx1ZTo6dmFsdWVBc1N0cmluZygp
IGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kTnVtYmVyKG1fbWF0cml4LnlTY2FsZSgpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJykn
KTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIGNhc2UgU1ZHX1RSQU5TRk9STV9ST1RBVEU6
IHsKICAgICAgICAgZG91YmxlIGFuZ2xlSW5SYWQgPSBkZWcycmFkKG1fYW5nbGUpOwpAQCAtMjE1
LDcgKzIyMSw5IEBAIFN0cmluZyBTVkdUcmFuc2Zvcm1WYWx1ZTo6dmFsdWVBc1N0cmluZygpIGNv
bnN0CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihjeSk7CiAgICAgICAgIH0KICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIGNh
c2UgU1ZHX1RSQU5TRk9STV9TS0VXWDoKICAgICBjYXNlIFNWR19UUkFOU0ZPUk1fU0tFV1k6IHsK
QEAgLTIyMyw3ICsyMzEsOSBAQCBTdHJpbmcgU1ZHVHJhbnNmb3JtVmFsdWU6OnZhbHVlQXNTdHJp
bmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZChwcmVmaXgpOwogICAgICAgICBidWls
ZGVyLmFwcGVuZE51bWJlcihtX2FuZ2xlKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsK
LSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmgKaW5kZXggYTIzMjdlNi4uODAwYWJkNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFp
dHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0
cy5oCkBAIC0xNDMsNyArMTQzLDkgQEAgc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UG9p
bnQ+IHsKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS54KCkpOwogICAgICAgICBi
dWlsZGVyLmFwcGVuZCgnICcpOwogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLnko
KSk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgICAgICBDUkFTSCgpOwogICAgIH0KIH07CiAKQEAgLTE3NCw3ICsxNzYsOSBAQCBzdHJ1
Y3QgU1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0PiB7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
TnVtYmVyKHR5cGUud2lkdGgoKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUuaGVpZ2h0KCkpOwotICAgICAgICByZXR1cm4g
YnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsK
ICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggODFhNDAw
OS4uMGMyNDA0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTU0MCw3
ICsxNTQwLDkgQEAgRXhjZXB0aW9uT3I8U3RyaW5nPiBJbnRlcm5hbHM6OmR1bXBNYXJrZXJSZWN0
cyhjb25zdCBTdHJpbmcmIG1hcmtlclR5cGVTdHJpbmcpCiAgICAgICAgIHJlY3RTdHJpbmcuYXBw
ZW5kTnVtYmVyKHJlY3QuaGVpZ2h0KCkpOwogICAgICAgICByZWN0U3RyaW5nLmFwcGVuZExpdGVy
YWwoIikgIik7CiAgICAgfQotICAgIHJldHVybiByZWN0U3RyaW5nLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gcmVjdFN0cmluZy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
V1RGTW92ZSgqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIEludGVybmFsczo6YWRk
VGV4dE1hdGNoTWFya2VyKGNvbnN0IFJhbmdlJiByYW5nZSwgYm9vbCBpc0FjdGl2ZSkKQEAgLTIw
NzksNyArMjA4MSw5IEBAIFN0cmluZyBJbnRlcm5hbHM6OnBhcnNlck1ldGFEYXRhKEpTQzo6SlNW
YWx1ZSBjb2RlKQogICAgIHJlc3VsdC5hcHBlbmROdW1iZXIoZW5kQ29sdW1uKTsKICAgICByZXN1
bHQuYXBwZW5kTGl0ZXJhbCgiIH0iKTsKIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbnRlcm5hbHM6OnVwZGF0ZUVkaXRv
clVJTm93SWZTY2hlZHVsZWQoKQpAQCAtMzA3MSw3ICszMDc1LDkgQEAgRXhjZXB0aW9uT3I8U3Ry
aW5nPiBJbnRlcm5hbHM6OmdldEN1cnJlbnRDdXJzb3JJbmZvKCkKICAgICAgICAgcmVzdWx0LmFw
cGVuZChudW1iZXJUb0ZpeGVkUHJlY2lzaW9uU3RyaW5nKGN1cnNvci5pbWFnZVNjYWxlRmFjdG9y
KCksIDgsIGJ1ZmZlciwgdHJ1ZSkpOwogICAgIH0KICNlbmRpZgotICAgIHJldHVybiByZXN1bHQu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuIFdURk1vdmUoKnN0cmluZyk7CisgICAgQ1JBU0goKTsKICNlbHNlCiAgICAg
cmV0dXJuIFN0cmluZyB7ICJGQUlMOiBDdXJzb3IgZGV0YWlscyBub3QgYXZhaWxhYmxlIG9uIHRo
aXMgcGxhdGZvcm0uIiB9OwogI2VuZGlmCkBAIC0zNTE0LDcgKzM1MjAsOSBAQCBFeGNlcHRpb25P
cjxTdHJpbmc+IEludGVybmFsczo6bWVkaWFTZXNzaW9uUmVzdHJpY3Rpb25zKGNvbnN0IFN0cmlu
ZyYgbWVkaWFUeXBlUwogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJywnKTsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoImludGVycnVwdGVkcGxheWJhY2tub3RwZXJtaXR0ZWQiKTsKICAgICB9
Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBXVEZNb3ZlKCpzdHJpbmcpOworICAg
IENSQVNIKCk7CiB9CiAKIHZvaWQgSW50ZXJuYWxzOjpzZXRNZWRpYUVsZW1lbnRSZXN0cmljdGlv
bnMoSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCwgU3RyaW5nVmlldyByZXN0cmljdGlvbnNTdHJp
bmcpCkBAIC0zNzU1LDQ4ICszNzYzLDUwIEBAIFN0cmluZyBJbnRlcm5hbHM6OnBhZ2VNZWRpYVN0
YXRlKCkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAKICAgICBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUgPSBkb2N1bWVudC0+cGFnZSgpLT5tZWRp
YVN0YXRlKCk7Ci0gICAgU3RyaW5nQnVpbGRlciBzdHJpbmc7CisgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOwogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ0F1ZGlvKQot
ICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdBdWRpbywiKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQoIklzUGxheWluZ0F1ZGlvLCIpOwogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVj
ZXI6OklzUGxheWluZ1ZpZGVvKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdWaWRl
bywiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIklzUGxheWluZ1ZpZGVvLCIpOwogICAgIGlm
IChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpCi0gICAg
ICAgIHN0cmluZy5hcHBlbmQoIklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UsIik7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCJJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlLCIpOwogICAgIGlmIChz
dGF0ZSAmIE1lZGlhUHJvZHVjZXI6OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nKQot
ICAgICAgICBzdHJpbmcuYXBwZW5kKCJSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZywi
KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9y
aW5nLCIpOwogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OkV4dGVybmFsRGV2aWNlQXV0
b1BsYXlDYW5kaWRhdGUpCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIkV4dGVybmFsRGV2aWNlQXV0
b1BsYXlDYW5kaWRhdGUsIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJFeHRlcm5hbERldmlj
ZUF1dG9QbGF5Q2FuZGlkYXRlLCIpOwogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OkRp
ZFBsYXlUb0VuZCkKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiRGlkUGxheVRvRW5kLCIpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZCgiRGlkUGxheVRvRW5kLCIpOwogICAgIGlmIChzdGF0ZSAmIE1l
ZGlhUHJvZHVjZXI6OklzU291cmNlRWxlbWVudFBsYXlpbmcpCi0gICAgICAgIHN0cmluZy5hcHBl
bmQoIklzU291cmNlRWxlbWVudFBsYXlpbmcsIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJJ
c1NvdXJjZUVsZW1lbnRQbGF5aW5nLCIpOwogCiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNl
cjo6SXNOZXh0VHJhY2tDb250cm9sRW5hYmxlZCkKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNO
ZXh0VHJhY2tDb250cm9sRW5hYmxlZCwiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIklzTmV4
dFRyYWNrQ29udHJvbEVuYWJsZWQsIik7CiAgICAgaWYgKHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6
SXNQcmV2aW91c1RyYWNrQ29udHJvbEVuYWJsZWQpCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIklz
UHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVkLCIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgi
SXNQcmV2aW91c1RyYWNrQ29udHJvbEVuYWJsZWQsIik7CiAKICAgICBpZiAoc3RhdGUgJiBNZWRp
YVByb2R1Y2VyOjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKQotICAgICAg
ICBzdHJpbmcuYXBwZW5kKCJIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyLCIp
OworICAgICAgICBidWlsZGVyLmFwcGVuZCgiSGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlM
aXN0ZW5lciwiKTsKICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNBdWRpb09yVmlk
ZW8pCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc0F1ZGlvT3JWaWRlbywiKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQoIkhhc0F1ZGlvT3JWaWRlbywiKTsKICAgICBpZiAoc3RhdGUgJiBNZWRp
YVByb2R1Y2VyOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCi0gICAgICAgIHN0cmluZy5h
cHBlbmQoIkhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwiKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQoIkhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwiKTsKICAgICBpZiAoc3RhdGUgJiBN
ZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCi0gICAgICAgIHN0cmlu
Zy5hcHBlbmQoIkhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSwiKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQoIkhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSwiKTsKICAgICBpZiAoc3RhdGUg
JiBNZWRpYVByb2R1Y2VyOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSkKLSAgICAgICAgc3Ry
aW5nLmFwcGVuZCgiSGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UsIik7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCJIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSwiKTsKICAgICBpZiAoc3RhdGUg
JiBNZWRpYVByb2R1Y2VyOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKLSAgICAgICAgc3Ry
aW5nLmFwcGVuZCgiSGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UsIik7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCJIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSwiKTsKICAgICBpZiAoc3RhdGUg
JiBNZWRpYVByb2R1Y2VyOjpIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQpCi0gICAg
ICAgIHN0cmluZy5hcHBlbmQoIkhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCwiKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmQoIkhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVu
dCwiKTsKIAotICAgIGlmIChzdHJpbmcuaXNFbXB0eSgpKQotICAgICAgICBzdHJpbmcuYXBwZW5k
KCJJc05vdFBsYXlpbmciKTsKKyAgICBpZiAoYnVpbGRlci5pc0VtcHR5KCkpCisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCJJc05vdFBsYXlpbmciKTsKICAgICBlbHNlCi0gICAgICAgIHN0cmluZy5y
ZXNpemUoc3RyaW5nLmxlbmd0aCgpIC0gMSk7CisgICAgICAgIGJ1aWxkZXIucmVzaXplKGJ1aWxk
ZXIubGVuZ3RoKCkgLSAxKTsKIAotICAgIHJldHVybiBzdHJpbmcudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW50ZXJuYWxzOjpzZXRQYWdlRGVmZXJzTG9h
ZGluZyhib29sIGRlZmVyc0xvYWRpbmcpCkBAIC0zOTE4LDcgKzM5MjgsOSBAQCBFeGNlcHRpb25P
cjxTdHJpbmc+IEludGVybmFsczo6c2Nyb2xsU25hcE9mZnNldHMoRWxlbWVudCYgZWxlbWVudCkK
ICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIFdURk1v
dmUoKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAKaW5kZXggZTVhNmNmZS4uZjRh
M2NlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xp
ZW50LmNwcApAQCAtOTgsNyArOTgsMTAgQEAgdm9pZCBNb2NrUGFnZU92ZXJsYXlDbGllbnQ6OmRy
YXdSZWN0KFBhZ2VPdmVybGF5JiBvdmVybGF5LCBHcmFwaGljc0NvbnRleHQmIGNvbnQKICAgICBt
ZXNzYWdlLmFwcGVuZExpdGVyYWwoIiwgIik7CiAgICAgbWVzc2FnZS5hcHBlbmROdW1iZXIoZGly
dHlSZWN0LmhlaWdodCgpKTsKICAgICBtZXNzYWdlLmFwcGVuZExpdGVyYWwoIikiKTsKLSAgICBv
dmVybGF5LnBhZ2UoKS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6RGVidWcsIG1lc3NhZ2UudG9TdHJp
bmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWVzc2FnZS50b1N0cmluZygpKQorICAgICAg
ICBvdmVybGF5LnBhZ2UoKS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6RGVidWcsICpzdHJpbmcpOwor
ICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2
ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKIApAQCAtMTIzLDcgKzEyNiwxMCBAQCBib29sIE1vY2tQ
YWdlT3ZlcmxheUNsaWVudDo6bW91c2VFdmVudChQYWdlT3ZlcmxheSYgb3ZlcmxheSwgY29uc3Qg
UGxhdGZvcm1Nb3VzZQogICAgIG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKICAgICBtZXNz
YWdlLmFwcGVuZE51bWJlcihldmVudC5wb3NpdGlvbigpLnkoKSk7CiAgICAgbWVzc2FnZS5hcHBl
bmRMaXRlcmFsKCIpIik7Ci0gICAgb3ZlcmxheS5wYWdlKCktPm1haW5GcmFtZSgpLmRvY3VtZW50
KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdlTGV2ZWw6
OkRlYnVnLCBtZXNzYWdlLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1lc3Nh
Z2UudG9TdHJpbmcoKSkKKyAgICAgICAgb3ZlcmxheS5wYWdlKCktPm1haW5GcmFtZSgpLmRvY3Vt
ZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdlTGV2
ZWw6OkRlYnVnLCAqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clNjcmlwdExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExv
YWRlci5jcHAKaW5kZXggNWIzNDBmZi4uNDRlNGUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcApAQCAtMjAyLDcgKzIwMiw5IEBAIHZvaWQgV29y
a2VyU2NyaXB0TG9hZGVyOjpub3RpZnlFcnJvcigpCiAKIFN0cmluZyBXb3JrZXJTY3JpcHRMb2Fk
ZXI6OnNjcmlwdCgpCiB7Ci0gICAgcmV0dXJuIG1fc2NyaXB0LnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gbV9zY3JpcHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBXb3JrZXJTY3JpcHRMb2FkZXI6Om5vdGlmeUZp
bmlzaGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxFcnJvcnMuY3BwIGIv
U291cmNlL1dlYkNvcmUveG1sL1hNTEVycm9ycy5jcHAKaW5kZXggYjE0MzJkMS4uMTUzMTlmNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEVycm9ycy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUveG1sL1hNTEVycm9ycy5jcHAKQEAgLTE0OCw4ICsxNDgsMTEgQEAgdm9pZCBYTUxF
cnJvcnM6Omluc2VydEVycm9yTWVzc2FnZUJsb2NrKCkKICAgICAgICAgZG9jdW1lbnRFbGVtZW50
ID0gV1RGTW92ZShib2R5KTsKICAgICB9CiAKLSAgICBTdHJpbmcgZXJyb3JNZXNzYWdlcyA9IG1f
ZXJyb3JNZXNzYWdlcy50b1N0cmluZygpOwotICAgIGF1dG8gcmVwb3J0RWxlbWVudCA9IGNyZWF0
ZVhIVE1MUGFyc2VyRXJyb3JIZWFkZXIobV9kb2N1bWVudCwgZXJyb3JNZXNzYWdlcyk7CisgICAg
YXV0byByZXBvcnRFbGVtZW50ID0gY3JlYXRlWEhUTUxQYXJzZXJFcnJvckhlYWRlcihtX2RvY3Vt
ZW50LCBbJl0gKCkgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBtX2Vycm9yTWVzc2FnZXMu
dG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgp
OworICAgIH0oKSk7CiAKICNpZiBFTkFCTEUoWFNMVCkKICAgICBpZiAobV9kb2N1bWVudC50cmFu
c2Zvcm1Tb3VyY2VEb2N1bWVudCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNw
cAppbmRleCAxOWU1YWU0Li43NmI5ZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVz
dC5jcHAKQEAgLTE5NSw3ICsxOTUsMTAgQEAgRXhjZXB0aW9uT3I8RG9jdW1lbnQqPiBYTUxIdHRw
UmVxdWVzdDo6cmVzcG9uc2VYTUwoKQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
IG1fcmVzcG9uc2VEb2N1bWVudCA9IFhNTERvY3VtZW50OjpjcmVhdGUoMCwgbV91cmwpOwogICAg
ICAgICAgICAgLy8gRklYTUU6IFNldCBMYXN0LU1vZGlmaWVkLgotICAgICAgICAgICAgbV9yZXNw
b25zZURvY3VtZW50LT5zZXRDb250ZW50KG1fcmVzcG9uc2VCdWlsZGVyLnRvU3RyaW5nUHJlc2Vy
dmVDYXBhY2l0eSgpKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IG1fcmVzcG9uc2VC
dWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKQorICAgICAgICAgICAgICAgIG1fcmVz
cG9uc2VEb2N1bWVudC0+c2V0Q29udGVudCgqc3RyaW5nKTsKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50LT5z
ZXRDb250ZXh0RG9jdW1lbnQoZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpKTsKICAgICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudC0+c2V0U2VjdXJpdHlPcmln
aW5Qb2xpY3koc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZWN1cml0eU9yaWdpblBvbGljeSgp
KTsKICAgICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudC0+b3ZlcnJpZGVNSU1FVHlwZShtaW1l
VHlwZSk7CkBAIC04MTcsMTQgKzgyMCwyMCBAQCBTdHJpbmcgWE1MSHR0cFJlcXVlc3Q6OmdldEFs
bFJlc3BvbnNlSGVhZGVycygpIGNvbnN0CiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
ZExpdGVyYWwoIjogIik7CiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChoZWFkZXIu
dmFsdWUpOwogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcclxuIik7
Ci0gICAgICAgICAgICBoZWFkZXJzLnVuY2hlY2tlZEFwcGVuZChzdHJpbmdCdWlsZGVyLnRvU3Ry
aW5nKCkpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICAgICAgICAgIGhlYWRlcnMudW5jaGVja2VkQXBwZW5kKCpzdHJpbmcp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0K
ICAgICAgICAgc3RkOjpzb3J0KGhlYWRlcnMuYmVnaW4oKSwgaGVhZGVycy5lbmQoKSwgV1RGOjpj
b2RlUG9pbnRDb21wYXJlTGVzc1RoYW4pOwogCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5n
QnVpbGRlcjsKICAgICAgICAgZm9yIChhdXRvJiBoZWFkZXIgOiBoZWFkZXJzKQogICAgICAgICAg
ICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoaGVhZGVyKTsKLSAgICAgICAgbV9hbGxSZXNwb25zZUhl
YWRlcnMgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIG1fYWxsUmVzcG9uc2VI
ZWFkZXJzID0gKnN0cmluZzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAg
ICB9CiAKICAgICByZXR1cm4gbV9hbGxSZXNwb25zZUhlYWRlcnM7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5oCmluZGV4IDFlZWMxNTguLjUzYjRmODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5oCkBAIC04Nyw3ICs4NywxMiBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGdldEFs
bFJlc3BvbnNlSGVhZGVycygpIGNvbnN0OwogICAgIFN0cmluZyBnZXRSZXNwb25zZUhlYWRlcihj
b25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0OwogICAgIEV4Y2VwdGlvbk9yPE93bmVkU3RyaW5nPiBy
ZXNwb25zZVRleHQoKTsKLSAgICBTdHJpbmcgcmVzcG9uc2VUZXh0SWdub3JpbmdSZXNwb25zZVR5
cGUoKSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNlQnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2Fw
YWNpdHkoKTsgfQorICAgIFN0cmluZyByZXNwb25zZVRleHRJZ25vcmluZ1Jlc3BvbnNlVHlwZSgp
IGNvbnN0CisgICAgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBtX3Jlc3BvbnNlQnVpbGRl
ci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgICAgICBDUkFTSCgpOworICAgIH0KICAgICBTdHJpbmcgcmVzcG9uc2VNSU1FVHlwZSgp
IGNvbnN0OwogCiAgICAgRG9jdW1lbnQqIG9wdGlvbmFsUmVzcG9uc2VYTUwoKSBjb25zdCB7IHJl
dHVybiBtX3Jlc3BvbnNlRG9jdW1lbnQuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3htbC9YUGF0aEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhGdW5j
dGlvbnMuY3BwCmluZGV4IDczNTM0YTQuLmY3ZGNhOWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS94bWwvWFBhdGhGdW5jdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0
aEZ1bmN0aW9ucy5jcHAKQEAgLTMwOCw5ICszMDgsMTEgQEAgc3RhdGljIEF0b21pY1N0cmluZyBh
dG9taWNTdWJzdHJpbmcoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgdW5zaWduZWQgc3RhcnQsIHVu
c2kKIHsKICAgICBBU1NFUlQoc3RhcnQgPD0gYnVpbGRlci5sZW5ndGgoKSk7CiAgICAgQVNTRVJU
KGxlbmd0aCA8PSBidWlsZGVyLmxlbmd0aCgpIC0gc3RhcnQpOworICAgIGlmIChidWlsZGVyLmZh
aWxlZCgpKQorICAgICAgICBDUkFTSCgpOwogICAgIGlmIChidWlsZGVyLmlzOEJpdCgpKQotICAg
ICAgICByZXR1cm4gQXRvbWljU3RyaW5nKGJ1aWxkZXIuY2hhcmFjdGVyczgoKSArIHN0YXJ0LCBs
ZW5ndGgpOwotICAgIHJldHVybiBBdG9taWNTdHJpbmcoYnVpbGRlci5jaGFyYWN0ZXJzMTYoKSAr
IHN0YXJ0LCBsZW5ndGgpOworICAgICAgICByZXR1cm4gQXRvbWljU3RyaW5nKCpidWlsZGVyLmNo
YXJhY3RlcnM4KCkgKyBzdGFydCwgbGVuZ3RoKTsKKyAgICByZXR1cm4gQXRvbWljU3RyaW5nKCpi
dWlsZGVyLmNoYXJhY3RlcnMxNigpICsgc3RhcnQsIGxlbmd0aCk7CiB9CiAKIFZhbHVlIEZ1bklk
OjpldmFsdWF0ZSgpIGNvbnN0CkBAIC0zMzQsMTQgKzMzNiwxNyBAQCBWYWx1ZSBGdW5JZDo6ZXZh
bHVhdGUoKSBjb25zdAogICAgIHVuc2lnbmVkIHN0YXJ0UG9zID0gMDsKICAgICB1bnNpZ25lZCBs
ZW5ndGggPSBpZExpc3QubGVuZ3RoKCk7CiAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgd2hp
bGUgKHN0YXJ0UG9zIDwgbGVuZ3RoICYmIGlzV2hpdGVzcGFjZShpZExpc3Rbc3RhcnRQb3NdKSkK
KyAgICAgICAgaWYgKGlkTGlzdC5mYWlsZWQoKSkKKyAgICAgICAgICAgIENSQVNIKCk7CisKKyAg
ICAgICAgd2hpbGUgKHN0YXJ0UG9zIDwgbGVuZ3RoICYmIGlzV2hpdGVzcGFjZSgqaWRMaXN0W3N0
YXJ0UG9zXSkpCiAgICAgICAgICAgICArK3N0YXJ0UG9zOwogICAgICAgICAKICAgICAgICAgaWYg
KHN0YXJ0UG9zID09IGxlbmd0aCkKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIHNpemVf
dCBlbmRQb3MgPSBzdGFydFBvczsKLSAgICAgICAgd2hpbGUgKGVuZFBvcyA8IGxlbmd0aCAmJiAh
aXNXaGl0ZXNwYWNlKGlkTGlzdFtlbmRQb3NdKSkKKyAgICAgICAgd2hpbGUgKGVuZFBvcyA8IGxl
bmd0aCAmJiAhaXNXaGl0ZXNwYWNlKCppZExpc3RbZW5kUG9zXSkpCiAgICAgICAgICAgICArK2Vu
ZFBvczsKIAogICAgICAgICAvLyBJZiB0aGVyZSBhcmUgc2V2ZXJhbCBub2RlcyB3aXRoIHRoZSBz
YW1lIGlkLCBpZCgpIHNob3VsZCByZXR1cm4gdGhlIGZpcnN0IG9uZS4KQEAgLTQzNyw3ICs0NDIs
OSBAQCBWYWx1ZSBGdW5Db25jYXQ6OmV2YWx1YXRlKCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFw
cGVuZChzdHIpOwogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KIAogVmFsdWUgRnVuU3RhcnRzV2l0aDo6ZXZhbHVhdGUoKSBj
b25zdApAQCAtNTU2LDcgKzU2Myw5IEBAIFZhbHVlIEZ1blRyYW5zbGF0ZTo6ZXZhbHVhdGUoKSBj
b25zdAogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzM1tpMl0pOwogICAgIH0KIAotICAgIHJl
dHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogVmFs
dWUgRnVuQm9vbGVhbjo6ZXZhbHVhdGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xU
UHJvY2Vzc29yTGlieHNsdC5jcHAKaW5kZXggNjZhZDE1Zi4uOGU1ZTA1ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwCkBAIC0xOTcsMTIgKzE5NywxOCBA
QCBzdGF0aWMgYm9vbCBzYXZlUmVzdWx0VG9TdHJpbmcoeG1sRG9jUHRyIHJlc3VsdERvYywgeHNs
dFN0eWxlc2hlZXRQdHIgc2hlZXQsIFN0cgogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAv
LyBXb3JrYXJvdW5kIGZvciA8aHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDk1NjY4PjogbGlieHNsdCBhcHBlbmRzIGFuIGV4dHJhIGxpbmUgZmVlZCB0byB0aGUgcmVz
dWx0LgotICAgIGlmIChyZXN1bHRCdWlsZGVyLmxlbmd0aCgpID4gMCAmJiByZXN1bHRCdWlsZGVy
W3Jlc3VsdEJ1aWxkZXIubGVuZ3RoKCkgLSAxXSA9PSAnXG4nKQorICAgIGlmIChyZXN1bHRCdWls
ZGVyLmxlbmd0aCgpID4gMCkgeworICAgICAgICBpZiAocmVzdWx0QnVpbGRlci5mYWlsZWQoKSkK
KyAgICAgICAgICAgIENSQVNIKCk7CisgICAgICAgIGlmICgqcmVzdWx0QnVpbGRlcltyZXN1bHRC
dWlsZGVyLmxlbmd0aCgpIC0gMV0gPT0gJ1xuJykKICAgICAgICAgcmVzdWx0QnVpbGRlci5yZXNp
emUocmVzdWx0QnVpbGRlci5sZW5ndGgoKSAtIDEpOworICAgIH0KIAotICAgIHJlc3VsdFN0cmlu
ZyA9IHJlc3VsdEJ1aWxkZXIudG9TdHJpbmcoKTsKLQotICAgIHJldHVybiB0cnVlOworICAgIGlm
IChhdXRvIHN0cmluZyA9IHJlc3VsdEJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICByZXN1
bHRTdHJpbmcgPSAqc3RyaW5nOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgQ1JB
U0goKTsKIH0KIAogc3RhdGljIGNvbnN0IGNoYXIqKiB4c2x0UGFyYW1BcnJheUZyb21QYXJhbWV0
ZXJNYXAoWFNMVFByb2Nlc3Nvcjo6UGFyYW1ldGVyTWFwJiBwYXJhbWV0ZXJzKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9DaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJbmxp
bmVzLmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL0NoYXJhY3RlclJlZmVyZW5jZVBhcnNl
cklubGluZXMuaAppbmRleCA3Njg2MjY4Li42NzJiYWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS94bWwvcGFyc2VyL0NoYXJhY3RlclJlZmVyZW5jZVBhcnNlcklubGluZXMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL0NoYXJhY3RlclJlZmVyZW5jZVBhcnNlcklubGluZXMu
aApAQCAtMzIsNyArMzIsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBpbmxpbmUgdm9pZCB1
bmNvbnN1bWVDaGFyYWN0ZXJzKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBTdHJpbmdCdWlsZGVy
JiBjb25zdW1lZENoYXJhY3RlcnMpCiB7Ci0gICAgc291cmNlLnB1c2hCYWNrKGNvbnN1bWVkQ2hh
cmFjdGVycy50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBjb25zdW1lZENoYXJh
Y3RlcnMudG9TdHJpbmcoKSkKKyAgICAgICAgc291cmNlLnB1c2hCYWNrKFdURk1vdmUoKnN0cmlu
ZykpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1l
IFBhcnNlckZ1bmN0aW9ucz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbkhv
c3QuY3BwIGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uSG9zdC5jcHAKaW5kZXggZjE2NDkyOS4u
YjFjY2NiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uSG9zdC5jcHAKKysr
IGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uSG9zdC5jcHAKQEAgLTU1LDcgKzU1LDEwIEBAIGxv
bmcgU2Vzc2lvbkhvc3Q6OnNlbmRDb21tYW5kVG9CYWNrZW5kKGNvbnN0IFN0cmluZyYgY29tbWFu
ZCwgUmVmUHRyPEpTT046Ok9iamVjCiAgICAgICAgIG1lc3NhZ2VCdWlsZGVyLmFwcGVuZChwYXJh
bWV0ZXJzLT50b0pTT05TdHJpbmcoKSk7CiAgICAgfQogICAgIG1lc3NhZ2VCdWlsZGVyLmFwcGVu
ZCgnfScpOwotICAgIHNlbmRNZXNzYWdlVG9CYWNrZW5kKHNlcXVlbmNlSUQsIG1lc3NhZ2VCdWls
ZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1lc3NhZ2VCdWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgIHNlbmRNZXNzYWdlVG9CYWNrZW5kKHNlcXVlbmNlSUQsICpzdHJp
bmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIHJldHVybiBzZXF1ZW5jZUlE
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCBiNzViZGNhLi5lNWM2ODVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUy
IEBACisyMDE4LTA0LTI2ICBKRiBCYXN0aWVuICA8amZiYXN0aWVuQGFwcGxlLmNvbT4KKworICAg
ICAgICBTdHJpbmdCdWlsZGVyIGlzIGZhbGxpYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUwNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZWFjaCBTdHJpbmdCdWlsZGVyIHRoYXQgaXQgaXMgZmFs
bGlibGUKKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2lu
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6RW5naW5lOjpyZXByZXNlbnRh
dGlvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpDYWNoZTo6ZHVtcENvbnRlbnRzVG9GaWxl
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVLZXkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OktleTo6aGFzaEFzU3RyaW5nKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlTWFuYWdlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYXB0dXJlOjpNYW5hZ2VyOjpoYXNoVG9QYXRoKToKKyAg
ICAgICAgKiBTaGFyZWQvRGF0YWJhc2VzL0luZGV4ZWREQi9JREJVdGlsaXRpZXMuY3BwOgorICAg
ICAgICAoV2ViS2l0Ojp1bmlxdWVEYXRhYmFzZUlkZW50aWZpZXIpOgorICAgICAgICAqIFNoYXJl
ZC9HYW1lcGFkL0dhbWVwYWREYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R2FtZXBhZERhdGE6
OmxvZ2dpbmdTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFNoYXJlZC9QbHVnaW5zL05ldHNjYXBl
L3VuaXgvTmV0c2NhcGVQbHVnaW5Nb2R1bGVVbml4LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
c2NhcGVQbHVnaW5Nb2R1bGU6OmJ1aWxkTUlNRURlc2NyaXB0aW9uKToKKyAgICAgICAgKiBTaGFy
ZWQvV2ViTWVtb3J5U2FtcGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk1lbW9yeVNhbXBs
ZXI6OmFwcGVuZEN1cnJlbnRNZW1vcnlVc2FnZVRvRmlsZSk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9BUElVc2VyU2NyaXB0LmNwcDoKKyAgICAgICAgKEFQSTo6VXNlclNjcmlwdDo6Z2VuZXJh
dGVVbmlxdWVVUkwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVXNlclN0eWxlU2hlZXQu
Y3BwOgorICAgICAgICAoQVBJOjpVc2VyU3R5bGVTaGVldDo6Z2VuZXJhdGVVbmlxdWVVUkwpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlNuYXBzaG90UmVtb3ZhbFRyYWNr
ZXI6OmV2ZW50c0Rlc2NyaXB0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQmFja0Zvcndh
cmRMaXN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQmFja0ZvcndhcmRMaXN0Ojpsb2dnaW5n
U3RyaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZW1vdmVEYXRhUmVjb3Jkcyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6dXBkYXRlQ29va2llUGFy
dGl0aW9uaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1RlbGVtZXRyeS5jcHA6CisgICAgICAgIChXZWJLaXQ6OnN1Ym1pdFRvcExpc3QpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OmNhcGl0YWxpemVSRkM4MjJIZWFkZXJGaWVsZE5hbWUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6YnVpbGRIVFRQSGVhZGVycyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZy
YW1lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OmNvbnRlbnRzQXNTdHJpbmcgY29u
c3QpOgorCiAyMDE4LTA1LTAxICBPbGVrc2FuZHIgU2thY2hrb3YgIDxnc2thY2hrb3ZAZ21haWwu
Y29tPgogCiAgICAgICAgIFdlYkFzc2VtYmx5OiBhZGQgc3VwcG9ydCBmb3Igc3RyZWFtIEFQSXMg
LSBKYXZhU2NyaXB0IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwCmluZGV4IDQ1YzQ3YTEuLjhkNzk1ODMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9y
YWdlRW5naW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0Nh
Y2hlU3RvcmFnZUVuZ2luZS5jcHAKQEAgLTUyNCw3ICs1MjQsOSBAQCBTdHJpbmcgRW5naW5lOjpy
ZXByZXNlbnRhdGlvbigpCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJ9Iik7CiAgICAgfQogICAg
IGJ1aWxkZXIuYXBwZW5kKCJdfSIpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBDYWNoZVN0b3JhZ2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
LmNwcAppbmRleCA3M2EyNWY0Li4wY2E3Zjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCkBAIC01NzAsMTAgKzU3MCwxMyBA
QCB2b2lkIENhY2hlOjpkdW1wQ29udGVudHNUb0ZpbGUoKQogICAgICAgICAgICAgZXBpbG9ndWUu
YXBwZW5kTnVtYmVyKHRvdGFscy5jb3VudCA/IHRvdGFscy53b3J0aCAvIHRvdGFscy5jb3VudCA6
IDApOwogICAgICAgICAgICAgZXBpbG9ndWUuYXBwZW5kTGl0ZXJhbCgiXG4iKTsKICAgICAgICAg
ICAgIGVwaWxvZ3VlLmFwcGVuZExpdGVyYWwoIn1cbn1cbiIpOwotICAgICAgICAgICAgYXV0byB3
cml0ZURhdGEgPSBlcGlsb2d1ZS50b1N0cmluZygpLnV0ZjgoKTsKLSAgICAgICAgICAgIHdyaXRl
VG9GaWxlKGZkLCB3cml0ZURhdGEuZGF0YSgpLCB3cml0ZURhdGEubGVuZ3RoKCkpOwotICAgICAg
ICAgICAgY2xvc2VGaWxlKGZkKTsKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGlm
IChhdXRvIHN0cmluZyA9IGVwaWxvZ3VlLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBh
dXRvIHdyaXRlRGF0YSA9IHN0cmluZy0+dXRmOCgpOworICAgICAgICAgICAgICAgIHdyaXRlVG9G
aWxlKGZkLCB3cml0ZURhdGEuZGF0YSgpLCB3cml0ZURhdGEubGVuZ3RoKCkpOworICAgICAgICAg
ICAgICAgIGNsb3NlRmlsZShmZCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgICAgICBhdXRvIGVudHJ5
ID0gRW50cnk6OmRlY29kZVN0b3JhZ2VSZWNvcmQoKnJlY29yZCk7CiAgICAgICAgIGlmICghZW50
cnkpCkBAIC01ODUsOCArNTg4LDExIEBAIHZvaWQgQ2FjaGU6OmR1bXBDb250ZW50c1RvRmlsZSgp
CiAgICAgICAgIFN0cmluZ0J1aWxkZXIganNvbjsKICAgICAgICAgZW50cnktPmFzSlNPTihqc29u
LCBpbmZvKTsKICAgICAgICAganNvbi5hcHBlbmRMaXRlcmFsKCIsXG4iKTsKLSAgICAgICAgYXV0
byB3cml0ZURhdGEgPSBqc29uLnRvU3RyaW5nKCkudXRmOCgpOwotICAgICAgICB3cml0ZVRvRmls
ZShmZCwgd3JpdGVEYXRhLmRhdGEoKSwgd3JpdGVEYXRhLmxlbmd0aCgpKTsKKyAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0ganNvbi50b1N0cmluZygpKSB7CisgICAgICAgICAgICBhdXRvIHdyaXRl
RGF0YSA9IHN0cmluZy0+dXRmOCgpOworICAgICAgICAgICAgd3JpdGVUb0ZpbGUoZmQsIHdyaXRl
RGF0YS5kYXRhKCksIHdyaXRlRGF0YS5sZW5ndGgoKSk7CisgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgQ1JBU0goKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVLZXkuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVLZXkuY3BwCmluZGV4IDhmYTgxZDEuLjBi
NDIyZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlS2V5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hl
L05ldHdvcmtDYWNoZUtleS5jcHAKQEAgLTEzNCw3ICsxMzQsOSBAQCBTdHJpbmcgS2V5OjpoYXNo
QXNTdHJpbmcoY29uc3QgSGFzaFR5cGUmIGhhc2gpCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHVw
cGVyTmliYmxlVG9BU0NJSUhleERpZ2l0KGJ5dGUpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
bG93ZXJOaWJibGVUb0FTQ0lJSGV4RGlnaXQoYnl0ZSkpOwogICAgIH0KLSAgICByZXR1cm4gYnVp
bGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdGVtcGxhdGUg
PHR5cGVuYW1lIENoYXJUeXBlPiBib29sIGhleERpZ2l0c1RvSGFzaChDaGFyVHlwZSogY2hhcmFj
dGVycywgS2V5OjpIYXNoVHlwZSYgaGFzaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlTWFuYWdlci5jcHAKaW5k
ZXggNTYxM2JlOC4uMzQ3M2U1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTQx
NSw5ICs0MTUsOSBAQCBTdHJpbmcgTWFuYWdlcjo6aGFzaFRvUGF0aChjb25zdCBTdHJpbmcmIGhh
c2gpCiAKICAgICBhdXRvIHBhdGggPSBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9yZWNvcmRS
ZXBsYXlDYWNoZUxvY2F0aW9uLCBrRGlyTmFtZVJlc291cmNlcyk7CiAgICAgcGF0aCA9IHBhdGhC
eUFwcGVuZGluZ0NvbXBvbmVudChwYXRoLCBoYXNoSGVhZCk7Ci0gICAgcGF0aCA9IHBhdGhCeUFw
cGVuZGluZ0NvbXBvbmVudChwYXRoLCBmaWxlTmFtZS50b1N0cmluZygpKTsKLQotICAgIHJldHVy
biBwYXRoOworICAgIGlmIChhdXRvIHN0cmluZyA9IGZpbGVOYW1lLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQocGF0aCwgKnN0cmluZyk7CisgICAg
Q1JBU0goKTsKIH0KIAogU3RyaW5nIE1hbmFnZXI6OnVybElkZW50aWZ5aW5nQ29tbW9uRG9tYWlu
KGNvbnN0IFdlYkNvcmU6OlVSTCYgdXJsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcAppbmRleCAwZmE4ZmQyLi5h
NDYyZTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0
d29ya1Byb2Nlc3NTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3Nv
dXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcApAQCAtODgsNyArODgsOSBAQCBzdGF0aWMgQ1N0cmlu
ZyBidWlsZEFjY2VwdExhbmd1YWdlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFuZ3VhZ2VzKQog
ICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1
cm4gc3RyaW5nLT51dGY4KCk7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vz
czo6dXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWQoY29uc3QgVmVjdG9yPFN0cmluZz4mIGxh
bmd1YWdlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0RhdGFiYXNlcy9JbmRl
eGVkREIvSURCVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0RhdGFiYXNlcy9J
bmRleGVkREIvSURCVXRpbGl0aWVzLmNwcAppbmRleCA5ZWM3NmZmLi43YzFjMjRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCL0lEQlV0aWxpdGll
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRGF0YWJhc2VzL0luZGV4ZWREQi9JREJV
dGlsaXRpZXMuY3BwCkBAIC01Miw3ICs1Miw5IEBAIFN0cmluZyB1bmlxdWVEYXRhYmFzZUlkZW50
aWZpZXIoY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFdlYkNvcmU6OlNlY3VyCiAg
ICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ18nKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChk
YXRhYmFzZU5hbWUpOwogCi0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9HYW1lcGFkL0dhbWVwYWREYXRhLmNwcAppbmRleCA5MDVk
ODI3Li4xZmJkN2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9HYW1lcGFkL0dh
bWVwYWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9HYW1lcGFkL0dhbWVwYWRE
YXRhLmNwcApAQCAtMTExLDcgKzExMSw5IEBAIFN0cmluZyBHYW1lcGFkRGF0YTo6bG9nZ2luZ1N0
cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fYnV0dG9uVmFsdWVz
W2ldKTsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9QbHVnaW5zL05ldHNjYXBlL3VuaXgvTmV0c2NhcGVQbHVnaW5Nb2R1bGVVbml4LmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvdW5peC9OZXRzY2FwZVBsdWdp
bk1vZHVsZVVuaXguY3BwCmluZGV4IGY5ZWIwNmUuLjk3MmRjYjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvdW5peC9OZXRzY2FwZVBsdWdpbk1vZHVs
ZVVuaXguY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvdW5p
eC9OZXRzY2FwZVBsdWdpbk1vZHVsZVVuaXguY3BwCkBAIC0xMjAsNyArMTIwLDkgQEAgU3RyaW5n
IE5ldHNjYXBlUGx1Z2luTW9kdWxlOjpidWlsZE1JTUVEZXNjcmlwdGlvbihjb25zdCBWZWN0b3I8
TWltZUNsYXNzSW5mbz4mIG0KICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCc7Jyk7CiAgICAg
fQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNI
KCk7CiB9CiAKIGJvb2wgTmV0c2NhcGVQbHVnaW5Nb2R1bGU6OmdldFBsdWdpbkluZm9Gb3JMb2Fk
ZWRQbHVnaW4oUmF3UGx1Z2luTWV0YURhdGEmIG1ldGFEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJNZW1vcnlTYW1wbGVyLmNwcAppbmRleCA5Mjc3MTg5Li42NzU4YWIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcApAQCAtMTgxLDggKzE4MSwxMSBAQCB2
b2lkIFdlYk1lbW9yeVNhbXBsZXI6OmFwcGVuZEN1cnJlbnRNZW1vcnlVc2FnZVRvRmlsZShGaWxl
U3lzdGVtOjpQbGF0Zm9ybUZpbGVIYQogICAgIH0KICAgICBzdGF0U3RyaW5nLmFwcGVuZCgnXG4n
KTsKIAotICAgIENTdHJpbmcgdXRmOFN0cmluZyA9IHN0YXRTdHJpbmcudG9TdHJpbmcoKS51dGY4
KCk7Ci0gICAgRmlsZVN5c3RlbTo6d3JpdGVUb0ZpbGUobV9zYW1wbGVMb2dGaWxlLCB1dGY4U3Ry
aW5nLmRhdGEoKSwgdXRmOFN0cmluZy5sZW5ndGgoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
c3RhdFN0cmluZy50b1N0cmluZygpKSB7CisgICAgICAgIENTdHJpbmcgdXRmOFN0cmluZyA9IHN0
cmluZy0+dXRmOCgpOworICAgICAgICBGaWxlU3lzdGVtOjp3cml0ZVRvRmlsZShtX3NhbXBsZUxv
Z0ZpbGUsIHV0ZjhTdHJpbmcuZGF0YSgpLCB1dGY4U3RyaW5nLmxlbmd0aCgpKTsKKyAgICB9IGVs
c2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVVzZXJTY3JpcHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSVVzZXJTY3JpcHQuY3BwCmluZGV4IDc1ODRlNjMuLmE5MzliNTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVc2VyU2NyaXB0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVXNlclNjcmlwdC5jcHAKQEAgLTM3LDcgKzM3LDkg
QEAgV2ViQ29yZTo6VVJMIFVzZXJTY3JpcHQ6OmdlbmVyYXRlVW5pcXVlVVJMKCkKICAgICBTdHJp
bmdCdWlsZGVyIHVybFN0cmluZ0J1aWxkZXI7CiAgICAgdXJsU3RyaW5nQnVpbGRlci5hcHBlbmRM
aXRlcmFsKCJ1c2VyLXNjcmlwdDoiKTsKICAgICB1cmxTdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJl
cigrK2lkZW50aWZpZXIpOwotICAgIHJldHVybiB7IHsgfSwgdXJsU3RyaW5nQnVpbGRlci50b1N0
cmluZygpIH07CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdXJsU3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4geyB7IH0sICpzdHJpbmcgfTsKKyAgICBDUkFTSCgpOwogfQog
CiBVc2VyU2NyaXB0OjpVc2VyU2NyaXB0KFdlYkNvcmU6OlVzZXJTY3JpcHQgdXNlclNjcmlwdCwg
QVBJOjpVc2VyQ29udGVudFdvcmxkJiB3b3JsZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElVc2VyU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJVXNlclN0eWxlU2hlZXQuY3BwCmluZGV4IDFkNTk1YmIuLjYzYWMwZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVc2VyU3R5bGVTaGVldC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJTdHlsZVNoZWV0LmNw
cApAQCAtMzcsNyArMzcsOSBAQCBXZWJDb3JlOjpVUkwgVXNlclN0eWxlU2hlZXQ6OmdlbmVyYXRl
VW5pcXVlVVJMKCkKICAgICBTdHJpbmdCdWlsZGVyIHVybFN0cmluZ0J1aWxkZXI7CiAgICAgdXJs
U3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJ1c2VyLXN0eWxlLXNoZWV0OiIpOwogICAgIHVy
bFN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKCsraWRlbnRpZmllcik7Ci0gICAgcmV0dXJuIHsg
eyB9LCB1cmxTdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkgfTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSB1cmxTdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiB7IHsgfSwgKnN0
cmluZyB9OworICAgIENSQVNIKCk7CiB9CiAKIFVzZXJTdHlsZVNoZWV0OjpVc2VyU3R5bGVTaGVl
dChXZWJDb3JlOjpVc2VyU3R5bGVTaGVldCB1c2VyU3R5bGVTaGVldCwgQVBJOjpVc2VyQ29udGVu
dFdvcmxkJiB3b3JsZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0V2ViVmlldy5jcHAKaW5kZXggM2I3ZjI4Ny4uMGQwODVlYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKQEAgLTMyOTYs
OSArMzI5NiwxMiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3UnVuSmF2YVNjcmlwdENhbGxi
YWNrKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiB3a1NlcgogICAgICAgICAgICAgYnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCI6ICIpOwogICAgICAgICB9CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KGV4Y2VwdGlvbkRldGFpbHMubWVzc2FnZSk7Ci0gICAgICAgIGdfdGFza19yZXR1cm5fbmV3X2Vy
cm9yKHRhc2ssIFdFQktJVF9KQVZBU0NSSVBUX0VSUk9SLCBXRUJLSVRfSkFWQVNDUklQVF9FUlJP
Ul9TQ1JJUFRfRkFJTEVELAotICAgICAgICAgICAgIiVzIiwgYnVpbGRlci50b1N0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwotICAgICAgICByZXR1cm47CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgZ190YXNrX3JldHVybl9uZXdfZXJy
b3IodGFzaywgV0VCS0lUX0pBVkFTQ1JJUFRfRVJST1IsIFdFQktJVF9KQVZBU0NSSVBUX0VSUk9S
X1NDUklQVF9GQUlMRUQsCisgICAgICAgICAgICAgICAgIiVzIiwgc3RyaW5nLT51dGY4KCkuZGF0
YSgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBDUkFTSCgpOwog
ICAgIH0KIAogICAgIGdfdGFza19yZXR1cm5fcG9pbnRlcih0YXNrLCB3ZWJraXRKYXZhc2NyaXB0
UmVzdWx0Q3JlYXRlKHdrU2VyaWFsaXplZFNjcmlwdFZhbHVlLT5pbnRlcm5hbFJlcHJlc2VudGF0
aW9uKCkpLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlld0dl
c3R1cmVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZXdH
ZXN0dXJlQ29udHJvbGxlci5jcHAKaW5kZXggOGMyMWMyNC4uOTE2ZGQ0NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIu
Y3BwCkBAIC0yMzIsOCArMjMyLDEwIEBAIFN0cmluZyBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlNu
YXBzaG90UmVtb3ZhbFRyYWNrZXI6OmV2ZW50c0Rlc2NyaXB0aW9uKEV2ZW50cyBlCiAKICAgICBp
ZiAoZXZlbnQgJiBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlNuYXBzaG90UmVtb3ZhbFRyYWNrZXI6
OlNjcm9sbFBvc2l0aW9uUmVzdG9yYXRpb24pCiAgICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZCgi
U2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbiAiKTsKLSAgICAKLSAgICByZXR1cm4gZGVzY3JpcHRp
b24udG9TdHJpbmcoKTsKKworICAgIGlmIChhdXRvIHN0cmluZyA9IGRlc2NyaXB0aW9uLnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAKaW5kZXggNjAw
NmEwMi4uMTI4ZjU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQmFj
a0ZvcndhcmRMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJCYWNrRm9y
d2FyZExpc3QuY3BwCkBAIC00OTMsNyArNDkzLDkgQEAgY29uc3QgY2hhciogV2ViQmFja0Zvcndh
cmRMaXN0Ojpsb2dnaW5nU3RyaW5nKCkKICAgICAgICAgYnVpbGRlci5hcHBlbmQobV9lbnRyaWVz
W2ldLT5sb2dnaW5nU3RyaW5nKCkpOwogICAgIH0KIAotICAgIHJldHVybiBkZWJ1Z1N0cmluZygi
XG4iLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIGRlYnVnU3RyaW5nKCJcbiIsICpzdHJpbmcpOwor
ICAgIENSQVNIKCk7CiB9CiAjZW5kaWYgLy8gIUxPR19ESVNBQkxFRAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggY2E1NDhiZS4uMTdiYzM3MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNzEwLDcgKzcx
MCwxMCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoY29u
c3QgSVBDOjpTdHJpbmdSZWZlcmVuY2UmIG1lc3NhZwogICAgIG1lc3NhZ2VOYW1lU3RyaW5nQnVp
bGRlci5hcHBlbmQoJy4nKTsKICAgICBtZXNzYWdlTmFtZVN0cmluZ0J1aWxkZXIuYXBwZW5kKG1l
c3NhZ2VOYW1lLmRhdGEoKSwgbWVzc2FnZU5hbWUuc2l6ZSgpKTsKIAotICAgIHNfaW52YWxpZE1l
c3NhZ2VDYWxsYmFjayh0b0FQSShBUEk6OlN0cmluZzo6Y3JlYXRlKG1lc3NhZ2VOYW1lU3RyaW5n
QnVpbGRlci50b1N0cmluZygpKS5wdHIoKSkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1lc3Nh
Z2VOYW1lU3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBzX2ludmFsaWRNZXNzYWdl
Q2FsbGJhY2sodG9BUEkoQVBJOjpTdHJpbmc6OmNyZWF0ZSgqc3RyaW5nKS5wdHIoKSkpOworICAg
IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cHJvY2Vz
c0RpZENhY2hlUGFnZShXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA0MTU2ZDgzLi5lZjA5ZGIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTE3MCw3ICsx
NzAsMTAgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xh
dW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHQKICAgICAgICAgICAgICAgICBsYW5ndWFn
ZVN0cmluZy5hcHBlbmQoJywnKTsKICAgICAgICAgICAgIGxhbmd1YWdlU3RyaW5nLmFwcGVuZChv
dmVycmlkZUxhbmd1YWdlc1tpXSk7CiAgICAgICAgIH0KLSAgICAgICAgbGF1bmNoT3B0aW9ucy5l
eHRyYUluaXRpYWxpemF0aW9uRGF0YS5hZGQoQVNDSUlMaXRlcmFsKCJPdmVycmlkZUxhbmd1YWdl
cyIpLCBsYW5ndWFnZVN0cmluZy50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5n
ID0gbGFuZ3VhZ2VTdHJpbmcudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGxhdW5jaE9wdGlvbnMu
ZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuYWRkKEFTQ0lJTGl0ZXJhbCgiT3ZlcnJpZGVMYW5ndWFn
ZXMiKSwgKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAg
fQogCiAgICAgbGF1bmNoT3B0aW9ucy5ub25WYWxpZEluamVjdGVkQ29kZUFsbG93ZWQgPSBzaG91
bGRBbGxvd05vblZhbGlkSW5qZWN0ZWRDb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCA3
ZmE4OTEwLi41ZDliNzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTIyNyw3ICsyMjcsMTAg
QEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlbW92ZURhdGFSZWNvcmRz
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4KICAgICAgICAgICAgIGFwcGVuZFdpdGhEZWxpbWl0
ZXIoZG9tYWluc1RvUmVtb3ZlRGF0YVJlY29yZHNGb3JCdWlsZGVyLCBkb21haW4sIGlzRmlyc3RJ
dGVtKTsKICAgICAgICAgICAgIGlzRmlyc3RJdGVtID0gZmFsc2U7CiAgICAgICAgIH0KLSAgICAg
ICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWcsICJBYm91dCB0
byByZW1vdmUgZGF0YSByZWNvcmRzIGZvciAle3B1YmxpY31zLiIsIGRvbWFpbnNUb1JlbW92ZURh
dGFSZWNvcmRzRm9yQnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBkb21haW5zVG9SZW1vdmVEYXRhUmVjb3Jkc0ZvckJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RlYnVnLCAiQWJvdXQgdG8gcmVtb3ZlIGRhdGEgcmVjb3JkcyBmb3IgJXtwdWJsaWN9cy4i
LCBzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFT
SCgpOwogICAgIH0KICNlbmRpZgogCkBAIC0xMDQ0LDcgKzEwNDcsMTAgQEAgdm9pZCBXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnVwZGF0ZUNvb2tpZVBhcnRpdGlvbmluZyhDb21wbGV0
aW9uSGFuZGxlcjwKICAgICAgICAgICAgICAgICBhcHBlbmRXaXRoRGVsaW1pdGVyKGRvbWFpbnNU
b1BhcnRpdGlvbkJ1aWxkZXIsIGRvbWFpbiwgaXNGaXJzdERvbWFpbik7CiAgICAgICAgICAgICAg
ICAgaXNGaXJzdERvbWFpbiA9IGZhbHNlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgUkVM
RUFTRV9MT0dfSU5GTyhSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWcsICJBYm91dCB0byBwYXJ0
aXRpb24gY29va2llcyBpbiB0aGlyZC1wYXJ0eSBjb250ZXh0cyBmb3IgJXtwdWJsaWN9cy4iLCBk
b21haW5zVG9QYXJ0aXRpb25CdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAg
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBkb21haW5zVG9QYXJ0aXRpb25CdWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGVidWcsICJBYm91dCB0byBwYXJ0aXRpb24gY29va2llcyBpbiB0aGlyZC1wYXJ0eSBj
b250ZXh0cyBmb3IgJXtwdWJsaWN9cy4iLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KIAogICAgICAg
ICBpZiAoIWRvbWFpbnNUb0Jsb2NrLmlzRW1wdHkoKSkgewpAQCAtMTA1NCw3ICsxMDYwLDEwIEBA
IHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjp1cGRhdGVDb29raWVQYXJ0aXRp
b25pbmcoQ29tcGxldGlvbkhhbmRsZXI8CiAgICAgICAgICAgICAgICAgYXBwZW5kV2l0aERlbGlt
aXRlcihkb21haW5zVG9CbG9ja0J1aWxkZXIsIGRvbWFpbiwgaXNGaXJzdERvbWFpbik7CiAgICAg
ICAgICAgICAgICAgaXNGaXJzdERvbWFpbiA9IGZhbHNlOwogICAgICAgICAgICAgfQotICAgICAg
ICAgICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWcsICJBYm91
dCB0byBibG9jayBjb29raWVzIGluIHRoaXJkLXBhcnR5IGNvbnRleHRzIGZvciAle3B1YmxpY31z
LiIsIGRvbWFpbnNUb0Jsb2NrQnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAg
ICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZG9tYWluc1RvQmxvY2tCdWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGVidWcsICJBYm91dCB0byBibG9jayBjb29raWVzIGluIHRoaXJkLXBhcnR5IGNvbnRleHRz
IGZvciAle3B1YmxpY31zLiIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICgh
ZG9tYWluc1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrLmlzRW1wdHkoKSkgewpAQCAtMTA2NCw3
ICsxMDczLDEwIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjp1cGRhdGVD
b29raWVQYXJ0aXRpb25pbmcoQ29tcGxldGlvbkhhbmRsZXI8CiAgICAgICAgICAgICAgICAgYXBw
ZW5kV2l0aERlbGltaXRlcihkb21haW5zVG9OZWl0aGVyUGFydGl0aW9uTm9yQmxvY2tCdWlsZGVy
LCBkb21haW4sIGlzRmlyc3REb21haW4pOwogICAgICAgICAgICAgICAgIGlzRmlyc3REb21haW4g
PSBmYWxzZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnLCAiQWJvdXQgdG8gbmVpdGhlciBwYXJ0aXRpb24gbm9y
IGJsb2NrIGNvb2tpZXMgaW4gdGhpcmQtcGFydHkgY29udGV4dHMgZm9yICV7cHVibGljfXMuIiwg
ZG9tYWluc1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrQnVpbGRlci50b1N0cmluZygpLnV0Zjgo
KS5kYXRhKCkpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZG9tYWluc1RvTmVpdGhl
clBhcnRpdGlvbk5vckJsb2NrQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0lORk8oUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnLCAiQWJvdXQgdG8gbmVp
dGhlciBwYXJ0aXRpb24gbm9yIGJsb2NrIGNvb2tpZXMgaW4gdGhpcmQtcGFydHkgY29udGV4dHMg
Zm9yICV7cHVibGljfXMuIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAgICAgfQogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzVGVsZW1ldHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NUZWxlbWV0cnkuY3BwCmluZGV4IGJiNzQ0MGMuLjUyMGFiNzc4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVs
ZW1ldHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzVGVsZW1ldHJ5LmNwcApAQCAtMTc5LDIyICsxNzksMjMgQEAgc3RhdGljIHZvaWQg
c3VibWl0VG9wTGlzdCh1bnNpZ25lZCBudW1iZXJPZlJlc291cmNlc0Zyb21UaGVUb3AsIGNvbnN0
IFZlY3RvcjxQcmUKICAgICBTdHJpbmdCdWlsZGVyIHByZWFtYmxlQnVpbGRlcjsKICAgICBwcmVh
bWJsZUJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgidG9wIik7CiAgICAgcHJlYW1ibGVCdWlsZGVyLmFw
cGVuZE51bWJlcihudW1iZXJPZlJlc291cmNlc0Zyb21UaGVUb3ApOwotICAgIFN0cmluZyBkZXNj
cmlwdGlvblByZWFtYmxlID0gcHJlYW1ibGVCdWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgCi0gICAg
d2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dn
aW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgpLCBkZXNjcmlwdGlv
blByZWFtYmxlICsgIlByZXZhbGVudFJlc291cmNlc1dpdGhVc2VySW50ZXJhY3Rpb24iLAotICAg
ICAgICB0b3BQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uLCBzaWduaWZpY2Fu
dEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOwotICAgIHdlYlBhZ2VQ
cm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6
OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgZGVzY3JpcHRpb25QcmVhbWJs
ZSArICJTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5zIiwKLSAgICAgICAgdG9wU3ViZnJhbWVV
bmRlclRvcEZyYW1lT3JpZ2lucywgc2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9nZ2VkVmFsdWVzLCBT
aG91bGRTYW1wbGU6Ok5vKTsKLSAgICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3RpY01lc3NhZ2VX
aXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVs
ZW1ldHJ5S2V5KCksIGRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiU3VicmVzb3VyY2VVbmRlclRvcEZy
YW1lT3JpZ2lucyIsCi0gICAgICAgIHRvcFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbnMs
IHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2FtcGxlOjpObyk7Ci0g
ICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNM
b2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgpLCBkZXNjcmlw
dGlvblByZWFtYmxlICsgIlN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8iLAotICAgICAgICB0
b3BTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvLCBzaWduaWZpY2FudEZpZ3VyZXNGb3JMb2dn
ZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOwotICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9z
dGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0
YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgZGVzY3JpcHRpb25QcmVhbWJsZSArICJOdW1iZXJPZlRp
bWVzRGF0YVJlY29yZHNSZW1vdmVkIiwKLSAgICAgICAgdG9wTnVtYmVyT2ZUaW1lc0RhdGFSZWNv
cmRzUmVtb3ZlZCwgc2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9nZ2VkVmFsdWVzLCBTaG91bGRTYW1w
bGU6Ok5vKTsKLSAgICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUo
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5
KCksIGRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiTnVtYmVyT2ZUaW1lc0FjY2Vzc2VkQXNGaXJzdFBh
cnR5RHVlVG9Vc2VySW50ZXJhY3Rpb24iLAotICAgICAgICB0b3BOdW1iZXJPZlRpbWVzQWNjZXNz
ZWRBc0ZpcnN0UGFydHlEdWVUb1VzZXJJbnRlcmFjdGlvbiwgc2lnbmlmaWNhbnRGaWd1cmVzRm9y
TG9nZ2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKLSAgICB3ZWJQYWdlUHJveHkubG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxv
YWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCksIGRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiTnVtYmVy
T2ZUaW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9TdG9yYWdlQWNjZXNzQVBJIiwKLSAgICAg
ICAgdG9wTnVtYmVyT2ZUaW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9TdG9yYWdlQWNjZXNz
QVBJLCBzaWduaWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8p
OworICAgIGlmIChhdXRvIGRlc2NyaXB0aW9uUHJlYW1ibGUgPSBwcmVhbWJsZUJ1aWxkZXIudG9T
dHJpbmcoKSkgeworICAgICAgICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRo
VmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1l
dHJ5S2V5KCksICpkZXNjcmlwdGlvblByZWFtYmxlICsgIlByZXZhbGVudFJlc291cmNlc1dpdGhV
c2VySW50ZXJhY3Rpb24iLAorICAgICAgICAgICAgdG9wUHJldmFsZW50UmVzb3VyY2VzV2l0aFVz
ZXJJbnRlcmFjdGlvbiwgc2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9nZ2VkVmFsdWVzLCBTaG91bGRT
YW1wbGU6Ok5vKTsKKyAgICAgICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0
aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVt
ZXRyeUtleSgpLCAqZGVzY3JpcHRpb25QcmVhbWJsZSArICJTdWJmcmFtZVVuZGVyVG9wRnJhbWVP
cmlnaW5zIiwKKyAgICAgICAgICAgIHRvcFN1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbnMsIHNp
Z25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2FtcGxlOjpObyk7CisgICAg
ICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgKmRlc2Ny
aXB0aW9uUHJlYW1ibGUgKyAiU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2lucyIsCisgICAg
ICAgICAgICB0b3BTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW5zLCBzaWduaWZpY2FudEZp
Z3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOworICAgICAgICB3ZWJQYWdl
UHJveHkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
OjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCksICpkZXNjcmlwdGlvblByZWFt
YmxlICsgIlN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8iLAorICAgICAgICAgICAgdG9wU3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbywgc2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9nZ2VkVmFs
dWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICAgICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1RlbGVtZXRyeUtleSgpLCAqZGVzY3JpcHRpb25QcmVhbWJsZSArICJOdW1iZXJPZlRp
bWVzRGF0YVJlY29yZHNSZW1vdmVkIiwKKyAgICAgICAgICAgIHRvcE51bWJlck9mVGltZXNEYXRh
UmVjb3Jkc1JlbW92ZWQsIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxk
U2FtcGxlOjpObyk7CisgICAgICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdp
dGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxl
bWV0cnlLZXkoKSwgKmRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiTnVtYmVyT2ZUaW1lc0FjY2Vzc2Vk
QXNGaXJzdFBhcnR5RHVlVG9Vc2VySW50ZXJhY3Rpb24iLAorICAgICAgICAgICAgdG9wTnVtYmVy
T2ZUaW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9Vc2VySW50ZXJhY3Rpb24sIHNpZ25pZmlj
YW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2FtcGxlOjpObyk7CisgICAgICAgIHdl
YlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2lu
Z0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgKmRlc2NyaXB0aW9u
UHJlYW1ibGUgKyAiTnVtYmVyT2ZUaW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9TdG9yYWdl
QWNjZXNzQVBJIiwKKyAgICAgICAgICAgIHRvcE51bWJlck9mVGltZXNBY2Nlc3NlZEFzRmlyc3RQ
YXJ0eUR1ZVRvU3RvcmFnZUFjY2Vzc0FQSSwgc2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9nZ2VkVmFs
dWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICB9IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0K
ICAgICAKIHN0YXRpYyB2b2lkIHN1Ym1pdFRvcExpc3RzKGNvbnN0IFZlY3RvcjxQcmV2YWxlbnRS
ZXNvdXJjZVRlbGVtZXRyeT4mIHNvcnRlZFByZXZhbGVudFJlc291cmNlcywgY29uc3QgVmVjdG9y
PFByZXZhbGVudFJlc291cmNlVGVsZW1ldHJ5PiYgc29ydGVkUHJldmFsZW50UmVzb3VyY2VzV2l0
aG91dFVzZXJJbnRlcmFjdGlvbiwgV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2Vi
S2l0V2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2dsaWIvV2ViS2l0V2ViUGFnZS5jcHAKaW5kZXggNjY3Y2Q4MS4uZGY2OTA0NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dl
YktpdFdlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJQYWdlLmNwcApAQCAtMjc0LDcgKzI3NCwxMCBAQCBwcml2
YXRlOgogICAgICAgICAgICAgZXJyb3JNZXNzYWdlLmFwcGVuZExpdGVyYWwoIiAoIik7CiAgICAg
ICAgICAgICBlcnJvck1lc3NhZ2UuYXBwZW5kKHJlc3BvbnNlLmh0dHBTdGF0dXNUZXh0KCkpOwog
ICAgICAgICAgICAgZXJyb3JNZXNzYWdlLmFwcGVuZCgnKScpOwotICAgICAgICAgICAgd2Via2l0
V2ViUGFnZURpZFNlbmRDb25zb2xlTWVzc2FnZShtX3dlYlBhZ2UsIE1lc3NhZ2VTb3VyY2U6Ok5l
dHdvcmssIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIGVycm9yTWVzc2FnZS50b1N0cmluZygpLCAwLCBy
ZXNwb25zZS51cmwoKS5zdHJpbmcoKSk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBl
cnJvck1lc3NhZ2UudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICB3ZWJraXRXZWJQYWdlRGlk
U2VuZENvbnNvbGVNZXNzYWdlKG1fd2ViUGFnZSwgTWVzc2FnZVNvdXJjZTo6TmV0d29yaywgTWVz
c2FnZUxldmVsOjpFcnJvciwgKnN0cmluZywgMCwgcmVzcG9uc2UudXJsKCkuc3RyaW5nKCkpOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KICAg
ICB9CiAKQEAgLTMxMSw3ICszMTQsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBlcnJv
ck1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiOiAiKTsKICAgICAgICAgICAgICAgICBlcnJvck1lc3Nh
Z2UuYXBwZW5kKGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkpOwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgd2Via2l0V2ViUGFnZURpZFNlbmRDb25zb2xlTWVzc2FnZShtX3dlYlBhZ2Us
IE1lc3NhZ2VTb3VyY2U6Ok5ldHdvcmssIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIGVycm9yTWVzc2Fn
ZS50b1N0cmluZygpLCAwLCBlcnJvci5mYWlsaW5nVVJMKCkpOworICAgICAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gZXJyb3JNZXNzYWdlLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgd2Vi
a2l0V2ViUGFnZURpZFNlbmRDb25zb2xlTWVzc2FnZShtX3dlYlBhZ2UsIE1lc3NhZ2VTb3VyY2U6
Ok5ldHdvcmssIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICpzdHJpbmcsIDAsIGVycm9yLmZhaWxpbmdV
UkwoKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAg
ICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwCmluZGV4IDBi
Y2NmYWYuLmFkYTVmNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAKQEAg
LTEzOCw3ICsxMzgsOSBAQCBzdGF0aWMgU3RyaW5nIGNhcGl0YWxpemVSRkM4MjJIZWFkZXJGaWVs
ZE5hbWUoY29uc3QgU3RyaW5nJiBuYW1lKQogICAgICAgICBlbHNlCiAgICAgICAgICAgICBjYXBp
dGFsaXplQ2hhcmFjdGVyID0gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiByZXN1bHQudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIEhUVFBIZWFkZXJNYXAg
cGFyc2VSRkM4MjJIZWFkZXJGaWVsZHMoY29uc3QgY2hhciogYnl0ZXMsIHVuc2lnbmVkIGxlbmd0
aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZp
ZXcuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAK
aW5kZXggYTdmY2FjZS4uNzk5YWQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTIxMiw3ICsyMTIsOSBAQCBzdGF0aWMgU3RyaW5n
IGJ1aWxkSFRUUEhlYWRlcnMoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGxvbmcg
bG9uZyYgZXhwZQogICAgIGlmICghY29udGVudEVuY29kaW5nLmlzTnVsbCgpICYmIGNvbnRlbnRF
bmNvZGluZyAhPSAiaWRlbnRpdHkiKQogICAgICAgICBleHBlY3RlZENvbnRlbnRMZW5ndGggPSAt
MTsKIAotICAgIHJldHVybiBoZWFkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBoZWFkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogc3RhdGljIHVpbnQzMl90IGxhc3RNb2RpZmllZERhdGVNUyhjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkZyYW1lLmNwcAppbmRleCAxNmFiZTU1Li40ODljOGNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC0zNTEsNyArMzUxLDkgQEAgU3Ry
aW5nIFdlYkZyYW1lOjpjb250ZW50c0FzU3RyaW5nKCkgY29uc3QKICAgICAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKHdlYkZyYW1lLT5jb250ZW50c0FzU3RyaW5nKCkpOwogICAgICAgICB9CiAgICAg
ICAgIC8vIEZJWE1FOiBJdCBtYXkgbWFrZSBzZW5zZSB0byB1c2UgdG9TdHJpbmdQcmVzZXJ2ZUNh
cGFjaXR5KCkgaGVyZS4KLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgRG9jdW1lbnQqIGRv
Y3VtZW50ID0gbV9jb3JlRnJhbWUtPmRvY3VtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKaW5kZXggMzY3NmU2NS4uNDZlYTE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDE4LTA0LTI2ICBKRiBCYXN0aWVuICA8amZiYXN0aWVuQGFwcGxl
LmNvbT4KKworICAgICAgICBTdHJpbmdCdWlsZGVyIGlzIGZhbGxpYmxlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUwNDgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZWFjaCBTdHJpbmdCdWlsZGVyIHRo
YXQgaXQgaXMgZmFsbGlibGUKKworICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0
aW9uLm1tOgorICAgICAgICAocmVnRXhwRm9yTGFiZWxzKToKKwogMjAxOC0wNS0wMSAgRXJpYyBD
YXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWVkaWFTdHJlYW1d
IHJlbW92ZSBXSzEgc3VwcG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbQppbmRleCAxOTE4MzYzLi4yYjI3YTU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxSZXBy
ZXNlbnRhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhU
TUxSZXByZXNlbnRhdGlvbi5tbQpAQCAtMzk0LDcgKzM5NCwxMCBAQCBzdGF0aWMgUmVndWxhckV4
cHJlc3Npb24qIHJlZ0V4cEZvckxhYmVscyhOU0FycmF5ICpsYWJlbHMpCiAgICAgICAgICAgICAg
ICAgcGF0dGVybi5hcHBlbmRMaXRlcmFsKCJcXGIiKTsKICAgICAgICAgfQogICAgICAgICBwYXR0
ZXJuLmFwcGVuZCgnKScpOwotICAgICAgICByZXN1bHQgPSBuZXcgUmVndWxhckV4cHJlc3Npb24o
cGF0dGVybi50b1N0cmluZygpLCBKU0M6OllhcnI6OlRleHRDYXNlSW5zZW5zaXRpdmUpOworICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSBwYXR0ZXJuLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBy
ZXN1bHQgPSBuZXcgUmVndWxhckV4cHJlc3Npb24oKnN0cmluZywgSlNDOjpZYXJyOjpUZXh0Q2Fz
ZUluc2Vuc2l0aXZlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9
CiAKICAgICAvLyBhZGQgcmVnZXhwIHRvIHRoZSBjYWNoZSwgbWFraW5nIHN1cmUgaXQgaXMgYXQg
dGhlIGZyb250IGZvciBMUlUgb3JkZXJpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL0FjY2Vzc2libGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0FjY2Vz
c2libGVCYXNlLmNwcAppbmRleCA3ZTNiMTgzLi5hODFlMzM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9BY2Nlc3NpYmxlQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQWNjZXNzaWJsZUJhc2UuY3BwCkBAIC02MDksNyArNjA5LDEwIEBAIEhSRVNVTFQg
QWNjZXNzaWJsZUJhc2U6OmdldF9hY2NLZXlib2FyZFNob3J0Y3V0KFZBUklBTlQgdkNoaWxkLCBf
X2RlcmVmX29wdF9vdXQKICAgICAgICAgICAgIGFjY2Vzc0tleU1vZGlmaWVyc0J1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiU2hpZnQrIik7CiAgICAgICAgIGlmIChtb2RpZmllcnMuY29udGFpbnMoUGxh
dGZvcm1FdmVudDo6TW9kaWZpZXI6Ok1ldGFLZXkpKQogICAgICAgICAgICAgYWNjZXNzS2V5TW9k
aWZpZXJzQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJXaW4rIik7Ci0gICAgICAgIGFjY2Vzc0tleU1v
ZGlmaWVycyA9IGFjY2Vzc0tleU1vZGlmaWVyc0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gYWNjZXNzS2V5TW9kaWZpZXJzQnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICAgICAgYWNjZXNzS2V5TW9kaWZpZXJzID0gKnN0cmluZzsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgKnNob3J0Y3V0ID0gQlN0cmluZyhTdHJp
bmcoYWNjZXNzS2V5TW9kaWZpZXJzICsgYWNjZXNzS2V5KSkucmVsZWFzZSgpOwogICAgIHJldHVy
biBTX09LOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vUGx1Z2lucy9QbHVn
aW5TdHJlYW0uY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vUGx1Z2lucy9QbHVnaW5TdHJl
YW0uY3BwCmluZGV4IGYyNTY2NGQuLmM5OTgwNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1BsdWdpbnMvUGx1Z2luU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9QbHVnaW5zL1BsdWdpblN0cmVhbS5jcHAKQEAgLTE2Nyw3ICsxNjcsMTAgQEAgdm9p
ZCBQbHVnaW5TdHJlYW06OnN0YXJ0U3RyZWFtKCkKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIu
YXBwZW5kKCdcbicpOwogICAgICAgICB9CiAKLSAgICAgICAgbV9oZWFkZXJzID0gc3RyaW5nQnVp
bGRlci50b1N0cmluZygpLnV0ZjgoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5n
QnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgbV9oZWFkZXJzID0gc3RyaW5nLT51dGY4
KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAKICAgICAgICAgLy8gSWYg
dGhlIGNvbnRlbnQgaXMgZW5jb2RlZCAobW9zdCBsaWtlbHkgY29tcHJlc3NlZCksIHRoZW4gZG9u
J3Qgc2VuZCBpdHMgbGVuZ3RoIHRvIHRoZSBwbHVnaW4sCiAgICAgICAgIC8vIHdoaWNoIGlzIG9u
bHkgaW50ZXJlc3RlZCBpbiB0aGUgZGVjb2RlZCBsZW5ndGgsIG5vdCB5ZXQga25vd24gYXQgdGhl
IG1vbWVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFN0YXRp
c3RpY3MuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0U3RhdGlzdGljcy5jcHAK
aW5kZXggOTAwMmM5Mi4uYzRiOGJmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViS2l0U3RhdGlzdGljcy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
S2l0U3RhdGlzdGljcy5jcHAKQEAgLTE1Niw2ICsxNTYsOSBAQCBIUkVTVUxUIFdlYktpdFN0YXRp
c3RpY3M6OmNvbUNsYXNzTmFtZUNvdW50cyhfX2RlcmVmX291dF9vcHQgQlNUUiogb3V0cHV0KQog
ICAgICAgICBidWlsZGVyLmFwcGVuZChzbG90LmtleSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCdcbicpOwogICAgIH0KLSAgICAqb3V0cHV0ID0gQlN0cmluZyhidWlsZGVyLnRvU3RyaW5nKCkp
LnJlbGVhc2UoKTsKLSAgICByZXR1cm4gU19PSzsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgKm91dHB1dCA9IEJTdHJpbmcoKnN0cmluZykucmVs
ZWFzZSgpOworICAgICAgICByZXR1cm4gU19PSzsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkYTA3MzZm
Li4zMGE1ZDI0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsODEgQEAKKzIwMTgtMDQtMjYgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5A
YXBwbGUuY29tPgorCisgICAgICAgIFN0cmluZ0J1aWxkZXIgaXMgZmFsbGlibGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTA0OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0cmluZ0J1aWxkZXIgY2Fu
IGZhaWwgd2hlbiBhbGxvY2F0aW5nIG1lbW9yeS4gU3RyaW5nQnVpbGRlciBpcworICAgICAgICBt
b3N0bHkgdXNlZCB3aXRoIHVzZXIgaW5wdXQsIHdoaWNoIG9mdGVuIG1lYW5zIHRoYXQganVzdCBj
cmFzaGluZworICAgICAgICBpc24ndCB0aGUgcmlnaHQgb3V0Y29tZS4gT3VyIGZ1enplcnMgb2Z0
ZW4gZW5jb3VudGVyIHN1Y2ggdGhpbmdzCisgICAgICAgIGZvciBKYXZhU2NyaXB0Q29yZSwgYW5k
IHNvIGZhciB3ZSd2ZSBhcHBsaWVkIHBvaW50IHNvbHV0aW9ucy4gTm8KKyAgICAgICAgbW9yZSEK
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZXhwZWN0QnVpbGRlckNvbnRlbnQpOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6ZXhwZWN0RW1wdHkpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHA6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1v
bml0b3IuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Y3JlYXRlQ29tbWFuZCk6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9Mb2dnaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkxvZ2dpbmdU
ZXN0OjpvdXRwdXQpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OkxvZ09ic2VydmVyOjpsb2cpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9UZXh0Q29kZWMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
dGVzdERlY29kZSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9XVEZTdHJpbmdVdGlsaXRpZXMu
aDoKKyAgICAgICAgKHV0ZjE2U3RyaW5nKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXVFI6OmR1bXBQ
YXRoKToKKyAgICAgICAgKFdUUjo6cmFuZ2VUb1N0cik6CisgICAgICAgIChXVFI6OnN0eWxlRGVj
VG9TdHIpOgorICAgICAgICAoV1RSOjpzZWN1cml0eU9yaWdpblRvU3RyKToKKyAgICAgICAgKFdU
Ujo6ZnJhbWVUb1N0cik6CisgICAgICAgIChXVFI6OmR1bXBMb2FkRXZlbnQpOgorICAgICAgICAo
V1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmR1bXApOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1
bmRsZVBhZ2U6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKToKKyAgICAgICAgKFdUUjo6SW5qZWN0
ZWRCdW5kbGVQYWdlOjp3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUpOgorICAgICAg
ICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1l
KToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsU2VuZFJlcXVlc3RGb3JG
cmFtZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVjZWl2ZVJlc3Bv
bnNlRm9yUmVzb3VyY2UpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZp
bmlzaExvYWRGb3JSZXNvdXJjZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6
ZGlkRmFpbExvYWRGb3JSZXNvdXJjZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFn
ZTo6c2hvdWxkQ2FjaGVSZXNwb25zZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFn
ZTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgIChXVFI6OkluamVj
dGVkQnVuZGxlUGFnZTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAoV1RSOjpJ
bmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxBZGRNZXNzYWdlVG9Db25zb2xlKToKKyAgICAgICAgKFdU
Ujo6SW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsU2V0U3RhdHVzYmFyVGV4dCk6CisgICAgICAgIChX
VFI6OkluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFJ1bkphdmFTY3JpcHRBbGVydCk6CisgICAgICAg
IChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFJ1bkphdmFTY3JpcHRDb25maXJtKToKKyAg
ICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUnVuSmF2YVNjcmlwdFByb21wdCk6
CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVhY2hBcHBsaWNhdGlvbkNh
Y2hlT3JpZ2luUXVvdGEpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEV4
Y2VlZERhdGFiYXNlUXVvdGEpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNo
b3VsZEJlZ2luRWRpdGluZyk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6c2hv
dWxkRW5kRWRpdGluZyk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxk
SW5zZXJ0Tm9kZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkSW5z
ZXJ0VGV4dCk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkRGVsZXRl
UmFuZ2UpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZENoYW5nZVNl
bGVjdGVkUmFuZ2UpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEFw
cGx5U3R5bGUpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEJlZ2luRWRp
dGluZyk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRW5kRWRpdGluZyk6
CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2hhbmdlKToKKyAgICAgICAg
KFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRDaGFuZ2VTZWxlY3Rpb24pOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAg
IChXVFI6OlRlc3RSdW5uZXI6OnN0YXRpc3RpY3NEaWRSdW5UZWxlbWV0cnlDYWxsYmFjayk6Cisg
ICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OmNhbGxEaWRSZWNlaXZlQWxsU3RvcmFnZUFjY2Vzc0Vu
dHJpZXNDYWxsYmFjayk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkZWNpZGVEZXN0aW5hdGlvbldp
dGhTdWdnZXN0ZWRGaWxlbmFtZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkb3du
bG9hZERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdFRvVVJMKToKKyAgICAgICAgKFdUUjo6VGVzdENv
bnRyb2xsZXI6OmRvd25sb2FkRGlkRmFpbCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkdW1wUmVz
dWx0cyk6CisKIDIwMTgtMDUtMDEgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgW01lZGlhU3RyZWFtXSByZW1vdmUgV0sxIHN1cHBvcnQKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkVGFzay5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZFRhc2suY3BwCmluZGV4IDUy
YzBiY2QuLmY2MWZhMzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0Nyb3NzVGhyZWFkVGFzay5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
Q3Jvc3NUaHJlYWRUYXNrLmNwcApAQCAtODgsNyArODgsOSBAQCBzdHJ1Y3QgTGlmZXRpbWVMb2dn
ZXIgewogICAgICAgICBidWlsZGVyLmFwcGVuZCgiLSIpOwogICAgICAgICBidWlsZGVyLmFwcGVu
ZChTdHJpbmc6Om51bWJlcihtb3ZlR2VuZXJhdGlvbikpOwogCi0gICAgICAgIHJldHVybiBidWls
ZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAg
IH0KIAogICAgIGNvbnN0IGNoYXImIG5hbWUgeyAqIjxkZWZhdWx0PiIgfTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKaW5kZXggNmI4ZTA1Yy4u
Nzg2NzUwMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5n
QnVpbGRlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVp
bGRlci5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQpAQCAtMzksMTYgKzM5LDE2IEBAIHN0YXRpYyB2b2lkIGV4cGVjdEJ1aWxkZXJDb250
ZW50KGNvbnN0IFN0cmluZyYgZXhwZWN0ZWQsIGNvbnN0IFN0cmluZ0J1aWxkZXImIGJ1CiAgICAg
Ly8gTm90IHVzaW5nIGJ1aWxkZXIudG9TdHJpbmcoKSBvciBidWlsZGVyLnRvU3RyaW5nUHJlc2Vy
dmVDYXBhY2l0eSgpIGJlY2F1c2UgdGhleSBhbGwKICAgICAvLyBjaGFuZ2UgaW50ZXJuYWwgc3Rh
dGUgb2YgYnVpbGRlci4KICAgICBpZiAoYnVpbGRlci5pczhCaXQoKSkKLSAgICAgICAgRVhQRUNU
X0VRKGV4cGVjdGVkLCBTdHJpbmcoYnVpbGRlci5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmxlbmd0
aCgpKSk7CisgICAgICAgIEVYUEVDVF9FUShleHBlY3RlZCwgU3RyaW5nKGJ1aWxkZXIuY2hhcmFj
dGVyczgoKS52YWx1ZSgpLCBidWlsZGVyLmxlbmd0aCgpKSk7CiAgICAgZWxzZQotICAgICAgICBF
WFBFQ1RfRVEoZXhwZWN0ZWQsIFN0cmluZyhidWlsZGVyLmNoYXJhY3RlcnMxNigpLCBidWlsZGVy
Lmxlbmd0aCgpKSk7CisgICAgICAgIEVYUEVDVF9FUShleHBlY3RlZCwgU3RyaW5nKGJ1aWxkZXIu
Y2hhcmFjdGVyczE2KCkudmFsdWUoKSwgYnVpbGRlci5sZW5ndGgoKSkpOwogfQogCiB2b2lkIGV4
cGVjdEVtcHR5KGNvbnN0IFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIpCiB7CiAgICAgRVhQRUNUX0VR
KDBVLCBidWlsZGVyLmxlbmd0aCgpKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLmlzRW1wdHko
KSk7Ci0gICAgRVhQRUNUX0VRKDAsIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CisgICAgRVhQRUNU
X0VRKDAsIGJ1aWxkZXIuY2hhcmFjdGVyczgoKS52YWx1ZSgpKTsKIH0KIAogVEVTVChTdHJpbmdC
dWlsZGVyVGVzdCwgRGVmYXVsdENvbnN0cnVjdG9yKQpAQCAtNzEsMjQgKzcxLDI0IEBAIFRFU1Qo
U3RyaW5nQnVpbGRlclRlc3QsIEFwcGVuZCkKICAgICBidWlsZGVyLmFwcGVuZCgnIycpOwogICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKIAot
ICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgorICAg
IGJ1aWxkZXIudG9TdHJpbmcoKS52YWx1ZSgpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCku
CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyMTsKICAgICBidWlsZGVyLmFwcGVuZCgiIiwgMCk7
CiAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1aWxkZXIp
OwotICAgIGJ1aWxkZXIxLmFwcGVuZChidWlsZGVyLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIubGVu
Z3RoKCkpOworICAgIGJ1aWxkZXIxLmFwcGVuZChidWlsZGVyLmNoYXJhY3RlcnM4KCkudmFsdWUo
KSwgYnVpbGRlci5sZW5ndGgoKSk7CiAgICAgYnVpbGRlcjEuYXBwZW5kKCJYWVoiKTsKLSAgICBi
dWlsZGVyLmFwcGVuZChidWlsZGVyMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyMS5sZW5ndGgoKSk7
CisgICAgYnVpbGRlci5hcHBlbmQoYnVpbGRlcjEuY2hhcmFjdGVyczgoKS52YWx1ZSgpLCBidWls
ZGVyMS5sZW5ndGgoKSk7CiAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNk
ZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZWiIsIGJ1aWxkZXIpOwogCiAgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyMjsKICAgICBidWlsZGVyMi5yZXNlcnZlQ2FwYWNpdHkoMTAwKTsKICAgICBidWls
ZGVyMi5hcHBlbmQoInh5eiIpOwotICAgIGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzID0gYnVpbGRl
cjIuY2hhcmFjdGVyczgoKTsKKyAgICBjb25zdCBMQ2hhciogY2hhcmFjdGVycyA9IGJ1aWxkZXIy
LmNoYXJhY3RlcnM4KCkudmFsdWUoKTsKICAgICBidWlsZGVyMi5hcHBlbmQoIjAxMjM0NTY3ODki
KTsKLSAgICBBU1NFUlRfRVEoY2hhcmFjdGVycywgYnVpbGRlcjIuY2hhcmFjdGVyczgoKSk7Ci0g
ICAgYnVpbGRlcjIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7IC8vIFRlc3QgYWZ0ZXIgcmVp
ZnlTdHJpbmcgd2l0aCBidWZmZXIgcHJlc2VydmVkLgorICAgIEFTU0VSVF9FUShjaGFyYWN0ZXJz
LCBidWlsZGVyMi5jaGFyYWN0ZXJzOCgpLnZhbHVlKCkpOworICAgIGJ1aWxkZXIyLnRvU3RyaW5n
UHJlc2VydmVDYXBhY2l0eSgpLnZhbHVlKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcgd2l0
aCBidWZmZXIgcHJlc2VydmVkLgogICAgIGJ1aWxkZXIyLmFwcGVuZCgiYWJjZCIpOwotICAgIEFT
U0VSVF9FUShjaGFyYWN0ZXJzLCBidWlsZGVyMi5jaGFyYWN0ZXJzOCgpKTsKKyAgICBBU1NFUlRf
RVEoY2hhcmFjdGVycywgYnVpbGRlcjIuY2hhcmFjdGVyczgoKS52YWx1ZSgpKTsKIAogICAgIC8v
IFRlc3QgYXBwZW5kaW5nIFVDaGFyMzIgY2hhcmFjdGVycyB0byBTdHJpbmdCdWlsZGVyLgogICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlckZvclVDaGFyMzJBcHBlbmQ7CkBAIC0xMDUsOSArMTA1LDkg
QEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmcpCiB7CiAgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7Ci0gICAgU3RyaW5n
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBTdHJpbmcgc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpLnZhbHVlKCk7CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIp
LCBzdHJpbmcpOwotICAgIEFTU0VSVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5n
KCkuaW1wbCgpKTsKKyAgICBBU1NFUlRfRVEoc3RyaW5nLmltcGwoKSwgYnVpbGRlci50b1N0cmlu
ZygpLnZhbHVlKCkuaW1wbCgpKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVy
IHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKS4KICAg
ICBidWlsZGVyLmFwcGVuZCgiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKTsKQEAgLTExNSwy
MCArMTE1LDIwIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nKQogCiAgICAgLy8g
Q2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFs
IHJlc3VsdCBvZiB0b1N0cmluZygpIGluIGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFuZ2Vk
LgogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDIwMCk7Ci0gICAgc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpOworICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKS52YWx1ZSgpOwog
ICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
eiIpLCBzdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsKICAgICBBU1NFUlRfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsK
IAogICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKSBzaG91
bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4KLSAgICBTdHJp
bmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1
aWxkZXIudG9TdHJpbmcoKS52YWx1ZSgpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3
ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKICAgICBzdHJpbmcx
LmFwcGVuZCgiREVGIik7Ci0gICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgQVNTRVJU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1
aWxkZXIudG9TdHJpbmcoKS52YWx1ZSgpKTsKICAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiKSwgc3RyaW5nMSk7CiAKICAgICAv
LyBSZXNpemluZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2lu
YWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCi0gICAgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZygpLnZhbHVlKCk7CiAgICAgYnVpbGRl
ci5yZXNpemUoMTApOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIjIyMiKTsKICAgICBBU1NFUlRfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5n
MSk7CkBAIC0xMzksMTEgKzEzOSwxMSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmlu
Z1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxk
ZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7CiAgICAgdW5zaWduZWQgY2FwYWNpdHkgPSBidWlsZGVy
LmNhcGFjaXR5KCk7Ci0gICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2
ZUNhcGFjaXR5KCk7CisgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2
ZUNhcGFjaXR5KCkudmFsdWUoKTsKICAgICBBU1NFUlRfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2Fw
YWNpdHkoKSk7CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOwot
ICAgIEFTU0VSVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBh
Y2l0eSgpLmltcGwoKSk7Ci0gICAgQVNTRVJUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWls
ZGVyLmNoYXJhY3RlcnM4KCkpOworICAgIEFTU0VSVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVy
LnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLnZhbHVlKCkuaW1wbCgpKTsKKyAgICBBU1NFUlRf
RVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKS52YWx1ZSgpKTsK
IAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRo
ZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuCiAgICAgYnVp
bGRlci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7CkBAIC0xNTIsMjggKzE1
MiwyOCBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkp
CiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhl
IG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBpbiBjYXNlIHRo
ZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgy
MDApOwogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwotICAgIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CisgICAgc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS52YWx1ZSgpOwogICAgIEFTU0VSVF9FUShjYXBhY2l0
eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKLSAgICBBU1NFUlRfRVEoc3RyaW5nLmNoYXJhY3RlcnM4
KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CisgICAgQVNTRVJUX0VRKHN0cmluZy5jaGFyYWN0
ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkudmFsdWUoKSk7CiAgICAgQVNTRVJUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CiAg
ICAgYnVpbGRlci5hcHBlbmQoIkFCQyIpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3
ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdp
bmcgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBzaG91
bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4KICAgICBjYXBh
Y2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKLSAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIu
dG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CisgICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVy
LnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLnZhbHVlKCk7CiAgICAgQVNTRVJUX0VRKGNhcGFj
aXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwotICAgIEFTU0VSVF9FUShzdHJpbmcxLmNoYXJhY3Rl
cnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CisgICAgQVNTRVJUX0VRKHN0cmluZzEuY2hh
cmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpLnZhbHVlKCkpOwogICAgIEFTU0VSVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJp
bmcxKTsKICAgICBzdHJpbmcxLmFwcGVuZCgiREVGIik7Ci0gICAgQVNTRVJUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxkZXIudG9TdHJp
bmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOworICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVD
YXBhY2l0eSgpLnZhbHVlKCkpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcxKTsKIAogICAgIC8vIFJlc2l6
aW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1
bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuCiAgICAgY2FwYWNpdHkgPSBidWlsZGVy
LmNhcGFjaXR5KCk7Ci0gICAgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFj
aXR5KCk7CisgICAgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCku
dmFsdWUoKTsKICAgICBBU1NFUlRfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7Ci0g
ICAgQVNTRVJUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkp
OworICAgIEFTU0VSVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJz
OCgpLnZhbHVlKCkpOwogICAgIGJ1aWxkZXIucmVzaXplKDEwKTsKICAgICBidWlsZGVyLmFwcGVu
ZCgiIyMjIik7CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOwpAQCAtMTkxLDExICsxOTEsMTEgQEAgVEVTVChT
dHJpbmdCdWlsZGVyVGVzdCwgQXJyYXkpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwog
ICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7Ci0gICAgRVhQRUNUX0VRKCcwJywgc3Rh
dGljX2Nhc3Q8Y2hhcj4oYnVpbGRlclswXSkpOwotICAgIEVYUEVDVF9FUSgnOScsIHN0YXRpY19j
YXN0PGNoYXI+KGJ1aWxkZXJbOV0pKTsKLSAgICBidWlsZGVyLnRvU3RyaW5nKCk7IC8vIFRlc3Qg
YWZ0ZXIgcmVpZnlTdHJpbmcoKS4KLSAgICBFWFBFQ1RfRVEoJzAnLCBzdGF0aWNfY2FzdDxjaGFy
PihidWlsZGVyWzBdKSk7Ci0gICAgRVhQRUNUX0VRKCc5Jywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVp
bGRlcls5XSkpOworICAgIEVYUEVDVF9FUSgnMCcsIHN0YXRpY19jYXN0PGNoYXI+KGJ1aWxkZXJb
MF0udmFsdWUoKSkpOworICAgIEVYUEVDVF9FUSgnOScsIHN0YXRpY19jYXN0PGNoYXI+KGJ1aWxk
ZXJbOV0udmFsdWUoKSkpOworICAgIGJ1aWxkZXIudG9TdHJpbmcoKS52YWx1ZSgpOyAvLyBUZXN0
IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCisgICAgRVhQRUNUX0VRKCcwJywgc3RhdGljX2Nhc3Q8Y2hh
cj4oYnVpbGRlclswXS52YWx1ZSgpKSk7CisgICAgRVhQRUNUX0VRKCc5Jywgc3RhdGljX2Nhc3Q8
Y2hhcj4oYnVpbGRlcls5XS52YWx1ZSgpKSk7CiB9CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3Qs
IFJlc2l6ZSkKQEAgLTIwOSw3ICsyMDksNyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBSZXNp
emUpCiAgICAgRVhQRUNUX0VRKDhVLCBidWlsZGVyLmxlbmd0aCgpKTsKICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1NjciLCBidWlsZGVyKTsKIAotICAgIGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBidWlsZGVyLnRvU3RyaW5nKCkudmFsdWUoKTsKICAgICBidWlsZGVyLnJlc2l6ZSg3
KTsKICAgICBFWFBFQ1RfRVEoN1UsIGJ1aWxkZXIubGVuZ3RoKCkpOwogICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2IiwgYnVpbGRlcik7CkBAIC0yNDAsMTMgKzI0MCwxMyBAQCBURVNU
KFN0cmluZ0J1aWxkZXJUZXN0LCBFcXVhbCkKICAgICBBU1NFUlRfVFJVRShidWlsZGVyMiAhPSBi
dWlsZGVyMSk7CiAgICAgQVNTRVJUX1RSVUUoU3RyaW5nKCIxMjMiKSAhPSBidWlsZGVyMik7CiAg
ICAgQVNTRVJUX1RSVUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiKSk7Ci0gICAgYnVpbGRlcjIu
dG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgorICAgIGJ1aWxkZXIyLnRv
U3RyaW5nKCkudmFsdWUoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgogICAgIEFTU0VS
VF9UUlVFKGJ1aWxkZXIxICE9IGJ1aWxkZXIyKTsKIAogICAgIGJ1aWxkZXIyLnJlc2l6ZSgzKTsK
ICAgICBBU1NFUlRfVFJVRShidWlsZGVyMSA9PSBidWlsZGVyMik7CiAKLSAgICBidWlsZGVyMS50
b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCisgICAgYnVpbGRlcjEudG9T
dHJpbmcoKS52YWx1ZSgpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAgICAgQVNTRVJU
X1RSVUUoYnVpbGRlcjEgPT0gYnVpbGRlcjIpOwogfQogCkBAIC0yNjUsMTQgKzI2NSwxNCBAQCBU
RVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb0F0b21pY1N0cmluZykKIHsKICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjEyMyIpOwotICAgIEF0b21pY1N0cmlu
ZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7CisgICAgQXRvbWljU3Ry
aW5nIGF0b21pY1N0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKS52YWx1ZSgpOwogICAg
IEFTU0VSVF9FUShTdHJpbmcoIjEyMyIpLCBhdG9taWNTdHJpbmcpOwogCiAgICAgYnVpbGRlci5y
ZXNlcnZlQ2FwYWNpdHkoMjU2KTsKICAgICBBU1NFUlRfVFJVRShidWlsZGVyLmNhblNocmluaygp
KTsKICAgICBmb3IgKGludCBpID0gYnVpbGRlci5sZW5ndGgoKTsgaSA8IDEyODsgaSsrKQogICAg
ICAgICBidWlsZGVyLmFwcGVuZCgneCcpOwotICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcx
ID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpOworICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJp
bmcxID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpLnZhbHVlKCk7CiAgICAgQVNTRVJUX0VRKDEy
OHUsIGF0b21pY1N0cmluZzEubGVuZ3RoKCkpOwogICAgIEFTU0VSVF9FUSgneCcsIGF0b21pY1N0
cmluZzFbMTI3XSk7CiAKQEAgLTI4Miw4ICsyODIsOCBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0
LCBUb0F0b21pY1N0cmluZykKICAgICBBU1NFUlRfRVEoMTI4dSwgYXRvbWljU3RyaW5nMS5sZW5n
dGgoKSk7CiAKICAgICBBU1NFUlRfRkFMU0UoYnVpbGRlci5jYW5TaHJpbmsoKSk7Ci0gICAgU3Ry
aW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBBdG9taWNTdHJpbmcgYXRvbWlj
U3RyaW5nMiA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKTsKKyAgICBTdHJpbmcgc3RyaW5nID0g
YnVpbGRlci50b1N0cmluZygpLnZhbHVlKCk7CisgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmlu
ZzIgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCkudmFsdWUoKTsKICAgICAvLyBUaGV5IHNob3Vs
ZCBzaGFyZSB0aGUgc2FtZSBTdHJpbmdJbXBsLgogICAgIEFTU0VSVF9FUShhdG9taWNTdHJpbmcy
LmltcGwoKSwgc3RyaW5nLmltcGwoKSk7CiB9CkBAIC0yOTIsNDUgKzI5Miw0NSBAQCBURVNUKFN0
cmluZ0J1aWxkZXJUZXN0LCBUb0F0b21pY1N0cmluZ09uRW1wdHkpCiB7CiAgICAgeyAvLyBEZWZh
dWx0IGNvbnN0cnVjdGVkLgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAg
IEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7Cisg
ICAgICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5n
KCkudmFsdWUoKTsKICAgICAgICAgQVNTRVJUX0VRKGVtcHR5QXRvbSgpLCBhdG9taWNTdHJpbmcp
OwogICAgIH0KICAgICB7IC8vIFdpdGggY2FwYWNpdHkuCiAgICAgICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoNjQpOwotICAgICAgICBB
dG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpOworICAg
ICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygp
LnZhbHVlKCk7CiAgICAgICAgIEFTU0VSVF9FUShlbXB0eUF0b20oKSwgYXRvbWljU3RyaW5nKTsK
ICAgICB9CiAgICAgeyAvLyBBdG9taWNTdHJpbmcgY29uc3RydWN0ZWQgZnJvbSBhIG51bGwgc3Ry
aW5nLgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKFN0cmluZygpKTsKLSAgICAgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxk
ZXIudG9BdG9taWNTdHJpbmcoKTsKKyAgICAgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9
IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKS52YWx1ZSgpOwogICAgICAgICBBU1NFUlRfRVEoZW1w
dHlBdG9tKCksIGF0b21pY1N0cmluZyk7CiAgICAgfQogICAgIHsgLy8gQXRvbWljU3RyaW5nIGNv
bnN0cnVjdGVkIGZyb20gYW4gZW1wdHkgc3RyaW5nLgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1
aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGVtcHR5U3RyaW5nKCkpOwotICAgICAgICBB
dG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpOworICAg
ICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygp
LnZhbHVlKCk7CiAgICAgICAgIEFTU0VSVF9FUShlbXB0eUF0b20oKSwgYXRvbWljU3RyaW5nKTsK
ICAgICB9CiAgICAgeyAvLyBBdG9taWNTdHJpbmcgY29uc3RydWN0ZWQgZnJvbSBhbiBlbXB0eSBT
dHJpbmdCdWlsZGVyLgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIFN0
cmluZ0J1aWxkZXIgZW1wdHlCdWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChlbXB0eUJ1
aWxkZXIpOwotICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0
b21pY1N0cmluZygpOworICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRl
ci50b0F0b21pY1N0cmluZygpLnZhbHVlKCk7CiAgICAgICAgIEFTU0VSVF9FUShlbXB0eUF0b20o
KSwgYXRvbWljU3RyaW5nKTsKICAgICB9CiAgICAgeyAvLyBBdG9taWNTdHJpbmcgY29uc3RydWN0
ZWQgZnJvbSBhbiBlbXB0eSBjaGFyKiBzdHJpbmcuCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiIsIDApOwotICAgICAgICBBdG9taWNTdHJp
bmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpOworICAgICAgICBBdG9t
aWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpLnZhbHVlKCk7
CiAgICAgICAgIEFTU0VSVF9FUShlbXB0eUF0b20oKSwgYXRvbWljU3RyaW5nKTsKICAgICB9CiAg
ICAgeyAvLyBDbGVhcmVkIFN0cmluZ0J1aWxkZXIuCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJXZWJLaXQiKTsKICAgICAgICAg
YnVpbGRlci5jbGVhcigpOwotICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVp
bGRlci50b0F0b21pY1N0cmluZygpOworICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5n
ID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpLnZhbHVlKCk7CiAgICAgICAgIEFTU0VSVF9FUShl
bXB0eUF0b20oKSwgYXRvbWljU3RyaW5nKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCmluZGV4IGZjMjhiMDAuLjhiMjgzMDkgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCkBAIC0xNjQsNjUg
KzE2NCw2NSBAQCBURVNUKFdURiwgU3RyaW5nVmlld0l0ZXJhdG9ycykKIAogICAgIFN0cmluZ0J1
aWxkZXIgYjsKICAgICBidWlsZChiLCB7MHhEODAwLCAweERENTV9KTsgLy8gU3Vycm9nYXRlcyBm
b3IgdW5pY29kZSBjb2RlIHBvaW50IFUrMTAxNTUKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9v
cEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVQb2ludHMoKSwgezB4MTAx
NTV9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXco
Yi50b1N0cmluZygpKS5jb2RlVW5pdHMoKSwgezB4RDgwMCwgMHhERDU1fSkpOwotICAgIEVYUEVD
VF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuZ3Jh
cGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpfSkpOworICAgIEVYUEVD
VF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1
ZSgpKS5jb2RlUG9pbnRzKCksIHsweDEwMTU1fSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVM
b29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlVW5pdHMo
KSwgezB4RDgwMCwgMHhERDU1fSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0
aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5ncmFwaGVtZUNsdXN0ZXJzKCks
IHtTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKX0pKTsKIAogICAgIGJ1aWxkKGIsIHsw
eEQ4MDB9KTsgLy8gTGVhZGluZyBzdXJyb2dhdGUgb25seQotICAgIEVYUEVDVF9UUlVFKGNvbXBh
cmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVBvaW50cygpLCB7
MHhEODAwfSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdW
aWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRzKCksIHsweEQ4MDB9KSk7Ci0gICAgRVhQRUNUX1RS
VUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5ncmFwaGVt
ZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSl9KSk7CisgICAgRVhQRUNUX1RS
VUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkp
LmNvZGVQb2ludHMoKSwgezB4RDgwMH0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0
ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVVuaXRzKCksIHsw
eEQ4MDB9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1Zp
ZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXco
Yi50b1N0cmluZygpLnZhbHVlKCkpfSkpOwogCiAgICAgYnVpbGQoYiwgezB4RDgwMCwgMHhEODAx
fSk7IC8vIFR3byBsZWFkaW5nIHN1cnJvZ2F0ZXMKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9v
cEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVQb2ludHMoKSwgezB4RDgw
MCwgMHhEODAxfSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJp
bmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRzKCksIHsweEQ4MDAsIDB4RDgwMX0pKTsKLSAg
ICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5n
KCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSwgMSks
IFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSArIDEsIDEpfSkpOworICAgIEVYUEVDVF9UUlVF
KGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5j
b2RlUG9pbnRzKCksIHsweEQ4MDAsIDB4RDgwMX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJl
TG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVVuaXRz
KCksIHsweEQ4MDAsIDB4RDgwMX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJh
dGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuZ3JhcGhlbWVDbHVzdGVycygp
LCB7U3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCksIDEpLCBTdHJpbmdWaWV3KGIu
Y2hhcmFjdGVyczE2KCkudmFsdWUoKSArIDEsIDEpfSkpOwogCiAgICAgYnVpbGQoYiwgezB4REQ1
NX0pOyAvLyBUcmFpbGluZyBzdXJyb2dhdGUgb25seQotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVM
b29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVBvaW50cygpLCB7MHhE
RDU1fSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3
KGIudG9TdHJpbmcoKSkuY29kZVVuaXRzKCksIHsweERENTV9KSk7Ci0gICAgRVhQRUNUX1RSVUUo
Y29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5ncmFwaGVtZUNs
dXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSl9KSk7CisgICAgRVhQRUNUX1RSVUUo
Y29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNv
ZGVQb2ludHMoKSwgezB4REQ1NX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJh
dGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVVuaXRzKCksIHsweERE
NTV9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXco
Yi50b1N0cmluZygpLnZhbHVlKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi50
b1N0cmluZygpLnZhbHVlKCkpfSkpOwogCiAgICAgYnVpbGQoYiwgezB4RDgwMCwgJ2gnfSk7IC8v
IExlYWRpbmcgc3Vycm9nYXRlIGZvbGxvd2VkIGJ5IG5vbi1zdXJyb2dhdGUKLSAgICBFWFBFQ1Rf
VFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVQ
b2ludHMoKSwgezB4RDgwMCwgJ2gnfSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRl
cmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRzKCksIHsweEQ4MDAsICdo
J30pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhi
LnRvU3RyaW5nKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJz
MTYoKSwgMSksIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSArIDEsIDEpfSkpOworICAgIEVY
UEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52
YWx1ZSgpKS5jb2RlUG9pbnRzKCksIHsweEQ4MDAsICdoJ30pKTsKKyAgICBFWFBFQ1RfVFJVRShj
b21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29k
ZVVuaXRzKCksIHsweEQ4MDAsICdoJ30pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0
ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuZ3JhcGhlbWVDbHVzdGVy
cygpLCB7U3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCksIDEpLCBTdHJpbmdWaWV3
KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSArIDEsIDEpfSkpOwogCiAgICAgYnVpbGQoYiwgezB4
MDMwNn0pOyAvLyAiQ09NQklOSU5HIEJSRVZFIgotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29w
SXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVBvaW50cygpLCB7MHgwMzA2
fSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIu
dG9TdHJpbmcoKSkuY29kZVVuaXRzKCksIHsweDAzMDZ9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29t
cGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5ncmFwaGVtZUNsdXN0
ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSl9KSk7CisgICAgRVhQRUNUX1RSVUUoY29t
cGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVQ
b2ludHMoKSwgezB4MDMwNn0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlv
bnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVVuaXRzKCksIHsweDAzMDZ9
KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50
b1N0cmluZygpLnZhbHVlKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi50b1N0
cmluZygpLnZhbHVlKCkpfSkpOwogCiAgICAgYnVpbGQoYiwgezB4MDMwNiwgMHhEODAwLCAweERE
NTUsICdoJywgJ2UnLCAnbCcsICdvJ30pOyAvLyBNaXggb2Ygc2luZ2xlIGNvZGUgdW5pdCBhbmQg
bXVsdGkgY29kZSB1bml0IGNvZGUgcG9pbnRzCi0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJ
dGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlUG9pbnRzKCksIHsweDAzMDYs
IDB4MTAxNTUsICdoJywgJ2UnLCAnbCcsICdvJ30pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJl
TG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVVbml0cygpLCB7MHgw
MzA2LCAweEQ4MDAsIDB4REQ1NSwgJ2gnLCAnZScsICdsJywgJ28nfSkpOwotICAgIEVYUEVDVF9U
UlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuZ3JhcGhl
bWVDbHVzdGVycygpLCB7Ci0gICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSwgMSks
Ci0gICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSArIDEsIDIpLAotICAgICAgICBT
dHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkgKyAzLCAxKSwKLSAgICAgICAgU3RyaW5nVmlldyhi
LmNoYXJhY3RlcnMxNigpICsgNCwgMSksCi0gICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJz
MTYoKSArIDUsIDEpLAotICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkgKyA2LCAx
KX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhi
LnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVBvaW50cygpLCB7MHgwMzA2LCAweDEwMTU1LCAnaCcs
ICdlJywgJ2wnLCAnbyd9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25z
KFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVVbml0cygpLCB7MHgwMzA2LCAw
eEQ4MDAsIDB4REQ1NSwgJ2gnLCAnZScsICdsJywgJ28nfSkpOworICAgIEVYUEVDVF9UUlVFKGNv
bXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5ncmFw
aGVtZUNsdXN0ZXJzKCksIHsKKyAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZh
bHVlKCksIDEpLAorICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSAr
IDEsIDIpLAorICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSArIDMs
IDEpLAorICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSArIDQsIDEp
LAorICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSArIDUsIDEpLAor
ICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSArIDYsIDEpfSkpOwog
CiAgICAgYnVpbGQoYiwgeydlJywgMHgwMzAxfSk7IC8vICJDT01CSU5JTkcgQUNVVEUiCi0gICAg
RVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygp
KS5jb2RlUG9pbnRzKCksIHsnZScsIDB4MDMwMX0pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJl
TG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVVbml0cygpLCB7J2Un
LCAweDAzMDF9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmlu
Z1ZpZXcoYi50b1N0cmluZygpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9T
dHJpbmcoKSl9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmlu
Z1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVQb2ludHMoKSwgeydlJywgMHgwMzAxfSkp
OworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9T
dHJpbmcoKS52YWx1ZSgpKS5jb2RlVW5pdHMoKSwgeydlJywgMHgwMzAxfSkpOworICAgIEVYUEVD
VF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1
ZSgpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgp
KX0pKTsKIAogICAgIGJ1aWxkKGIsIHsnZScsIDB4MDMwMSwgMHgwMzA2LCAnYSd9KTsgLy8gIkNP
TUJJTklORyBBQ1VURSIgIkNPTUJJTklORyBCUkVWRSIKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJl
TG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVQb2ludHMoKSwgeydl
JywgMHgwMzAxLCAweDAzMDYsICdhJ30pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0
ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVVbml0cygpLCB7J2UnLCAweDAz
MDEsIDB4MDMwNiwgJ2EnfSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9u
cyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7Ci0gICAgICAg
IFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSwgMyksCi0gICAgICAgIFN0cmluZ1ZpZXcoYi5j
aGFyYWN0ZXJzMTYoKSArIDMsIDEpLAorICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0
aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlUG9pbnRzKCksIHsnZScs
IDB4MDMwMSwgMHgwMzA2LCAnYSd9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVy
YXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVVbml0cygpLCB7J2Un
LCAweDAzMDEsIDB4MDMwNiwgJ2EnfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRl
cmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5ncmFwaGVtZUNsdXN0ZXJz
KCksIHsKKyAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCksIDMpLAor
ICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSArIDMsIDEpLAogICAg
ICAgICB9KSk7CiAKICAgICBidWlsZChiLCB7MHgxMTEyLCAweDExNmYsIDB4MTFiNiwgMHgxMTA3
LCAweDExNjEsIDB4MTFCOH0pOyAvLyBLb3JlYW4gY29tYmluaW5nIEphbW8KLSAgICBFWFBFQ1Rf
VFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVQ
b2ludHMoKSwgezB4MTExMiwgMHgxMTZmLCAweDExYjYsIDB4MTEwNywgMHgxMTYxLCAweDExQjh9
KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50
b1N0cmluZygpKS5jb2RlVW5pdHMoKSwgezB4MTExMiwgMHgxMTZmLCAweDExYjYsIDB4MTEwNywg
MHgxMTYxLCAweDExQjh9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25z
KFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHsKLSAgICAgICAg
U3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLCAzKSwKLSAgICAgICAgU3RyaW5nVmlldyhiLmNo
YXJhY3RlcnMxNigpICsgMywgMyl9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVy
YXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVQb2ludHMoKSwgezB4
MTExMiwgMHgxMTZmLCAweDExYjYsIDB4MTEwNywgMHgxMTYxLCAweDExQjh9KSk7CisgICAgRVhQ
RUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZh
bHVlKCkpLmNvZGVVbml0cygpLCB7MHgxMTEyLCAweDExNmYsIDB4MTFiNiwgMHgxMTA3LCAweDEx
NjEsIDB4MTFCOH0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3Ry
aW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7CisgICAg
ICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKS52YWx1ZSgpLCAzKSwKKyAgICAgICAgU3Ry
aW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCkgKyAzLCAzKX0pKTsKIH0KIAogc3RhdGlj
IFZlY3RvcjxTdHJpbmc+IHZlY3RvckZyb21TcGxpdFJlc3VsdChjb25zdCBTdHJpbmdWaWV3OjpT
cGxpdFJlc3VsdCYgc3Vic3RyaW5ncykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCmluZGV4IGRjY2U0NjguLjAzODM4
NjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50
RXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Nv
bnRlbnRFeHRlbnNpb25zLmNwcApAQCAtMTIwOSwxNSArMTIwOSwxOCBAQCBURVNUX0YoQ29udGVu
dEV4dGVuc2lvblRlc3QsIFdpZGVORkEpCiAgICAgICAgIH0KICAgICB9CiAgICAgcnVsZUxpc3Qu
YXBwZW5kKCddJyk7Ci0gICAgCi0gICAgYXV0byBiYWNrZW5kID0gbWFrZUJhY2tlbmQocnVsZUxp
c3QudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQs
IG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL0FBQSIpLCB7IENvbnRlbnRF
eHRlbnNpb25zOjpBY3Rpb25UeXBlOjpDU1NEaXNwbGF5Tm9uZVNlbGVjdG9yIH0pOwotICAgIHRl
c3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3Jn
L1lBQSIpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpDU1NEaXNwbGF5Tm9uZVNl
bGVjdG9yIH0pOwotICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3Qo
Imh0dHA6Ly93ZWJraXQub3JnL1pBQSIpLCB7IH0sIDApOwotICAgIHRlc3RSZXF1ZXN0KGJhY2tl
bmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL0xBQS9BQUEiKSwgeyB9
LCAwKTsKLSAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRw
Oi8vd2Via2l0Lm9yZy9MQUEvTUFBIiksIHsgQ29udGVudEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6
OkNTU0Rpc3BsYXlOb25lU2VsZWN0b3IgfSwgMCk7Ci0gICAgdGVzdFJlcXVlc3QoYmFja2VuZCwg
bWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvIiksIHsgfSk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gcnVsZUxpc3QudG9TdHJpbmcoKSkgeworICAgICAgICBhdXRvIGJhY2tl
bmQgPSBtYWtlQmFja2VuZChzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworCisgICAgICAgIHRlc3RS
ZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL0FB
QSIpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpDU1NEaXNwbGF5Tm9uZVNlbGVj
dG9yIH0pOworICAgICAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0
KCJodHRwOi8vd2Via2l0Lm9yZy9ZQUEiKSwgeyBDb250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlw
ZTo6Q1NTRGlzcGxheU5vbmVTZWxlY3RvciB9KTsKKyAgICAgICAgdGVzdFJlcXVlc3QoYmFja2Vu
ZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvWkFBIiksIHsgfSwgMCk7
CisgICAgICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6
Ly93ZWJraXQub3JnL0xBQS9BQUEiKSwgeyB9LCAwKTsKKyAgICAgICAgdGVzdFJlcXVlc3QoYmFj
a2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvTEFBL01BQSIpLCB7
IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpDU1NEaXNwbGF5Tm9uZVNlbGVjdG9yIH0s
IDApOworICAgICAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJo
dHRwOi8vd2Via2l0Lm9yZy8iKSwgeyB9KTsKKyAgICB9IGVsc2UKKyAgICAgICAgQ1JBU0goKTsK
IH0KICAgICAKICNpZmRlZiBOREVCVUcKQEAgLTEyNDcsNyArMTI1MCwxMCBAQCBURVNUX0YoQ29u
dGVudEV4dGVuc2lvblRlc3QsIExhcmdlSnVtcHMpCiAgICAgICAgICAgICAgICAgICAgIHBhdHRl
cm4uYXBwZW5kKGMyKTsKICAgICAgICAgICAgICAgICAgICAgcGF0dGVybi5hcHBlbmQoYzMpOwog
ICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZChjNCk7Ci0gICAgICAgICAgICAgICAg
ICAgIEVYUEVDVF9FUShDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0
YXR1czo6T2ssIHBhcnNlci5hZGRQYXR0ZXJuKHBhdHRlcm4udG9TdHJpbmcoKSwgdHJ1ZSwgcGF0
dGVybklkKyspKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcGF0dGVy
bi50b1N0cmluZygpKQorICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKENvbnRlbnRF
eHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPaywgcGFyc2VyLmFkZFBh
dHRlcm4oKnN0cmluZywgdHJ1ZSwgcGF0dGVybklkKyspKTsKKyAgICAgICAgICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTEzMDgsMTcgKzEzMTQsMjAgQEAgVEVTVF9G
KENvbnRlbnRFeHRlbnNpb25UZXN0LCBMYXJnZUp1bXBzKQogICAgICAgICAgICAgICAgICAgICAg
ICAgcGF0dGVybi5hcHBlbmQoJ3gnKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gbWF0Y2hlcyA9
IGludGVycHJldGVyLmludGVycHJldChwYXR0ZXJuLnRvU3RyaW5nKCkudXRmOCgpLCAwKTsKLSAg
ICAgICAgICAgICAgICAgICAgc3dpdGNoICgoYzEgKyBjMiArIGMzICsgYzQpICUgNCkgewotICAg
ICAgICAgICAgICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb21wYXJl
Q29udGVudHMobWF0Y2hlcywgeyB9KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgMjoK
LSAgICAgICAgICAgICAgICAgICAgY2FzZSAzOgotICAgICAgICAgICAgICAgICAgICAgICAgY29t
cGFyZUNvbnRlbnRzKG1hdGNoZXMsIHtwYXR0ZXJuSWR9KTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlm
IChhdXRvIHN0cmluZyA9IHBhdHRlcm4udG9TdHJpbmcoKSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgYXV0byBtYXRjaGVzID0gaW50ZXJwcmV0ZXIuaW50ZXJwcmV0KHN0cmluZy0+dXRmOCgp
LCAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoKGMxICsgYzIgKyBjMyArIGM0
KSAlIDQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb21wYXJlQ29udGVudHMobWF0Y2hlcywgeyB9KTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMToK
KyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICAgICAgICAg
IGNhc2UgMzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wYXJlQ29udGVudHMobWF0
Y2hlcywge3BhdHRlcm5JZH0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAgICAgICAgIHBhdHRl
cm5JZCsrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTEzNDgsMTMgKzEz
NTcsMTkgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBEZWVwTkZBKQogICAgIFN0cmlu
Z0J1aWxkZXIgbG90c09mQXM7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsr
aSkKICAgICAgICAgbG90c09mQXMuYXBwZW5kKCdBJyk7Ci0gICAgRVhQRUNUX0VRKENvbnRlbnRF
eHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPaywgcGFyc2VyLmFkZFBh
dHRlcm4obG90c09mQXMudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBmYWxzZSwgMCkpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IGxvdHNPZkFzLnRvU3RyaW5nKCkpCisgICAgICAgIEVYUEVDVF9F
UShDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2ssIHBh
cnNlci5hZGRQYXR0ZXJuKHN0cmluZy0+dXRmOCgpLmRhdGEoKSwgZmFsc2UsIDApKTsKKyAgICBl
bHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgCiAgICAgLy8gRklYTUU6IFlhcnIgb3VnaHQgdG8g
YmUgYWJsZSB0byBoYW5kbGUgMk1CIHJlZ3VsYXIgZXhwcmVzc2lvbnMuCiAgICAgU3RyaW5nQnVp
bGRlciB0b29NYW55QXM7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemUgKiAyMDsg
KytpKQogICAgICAgICB0b29NYW55QXMuYXBwZW5kKCdBJyk7Ci0gICAgRVhQRUNUX0VRKENvbnRl
bnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpZYXJyRXJyb3IsIHBh
cnNlci5hZGRQYXR0ZXJuKHRvb01hbnlBcy50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGZhbHNl
LCAwKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdG9vTWFueUFzLnRvU3RyaW5nKCkpCisgICAg
ICAgIEVYUEVDVF9FUShDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0
YXR1czo6WWFyckVycm9yLCBwYXJzZXIuYWRkUGF0dGVybihzdHJpbmctPnV0ZjgoKS5kYXRhKCks
IGZhbHNlLCAwKSk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIAogICAgIFN0cmlu
Z0J1aWxkZXIgbmVzdGVkR3JvdXBzOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXpl
OyArK2kpCkBAIC0xNDkwLDE3ICsxNTA1LDIyIEBAIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVz
dCwgSW52YWxpZEpTT04pCiAgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1wi
dHlwZVwiOlwibm90aWZ5XCIsXCJub3RpZmljYXRpb25cIjpbXX0sXCJ0cmlnZ2VyXCI6e1widXJs
LWZpbHRlclwiOlwiLipcIn19XSIsIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9u
RXJyb3I6OkpTT05JbnZhbGlkTm90aWZpY2F0aW9uKTsKICAgICBjaGVja0NvbXBpbGVyRXJyb3Io
Ilt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJub3RpZnlcIixcIm5vdGlmaWNhdGlvblwiOlwiaGVy
ZSdzIG15IG5vdGlmaWNhdGlvblwifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCIuKlwi
fX1dIiwgeyB9KTsKICAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBl
XCI6XCJub3RpZnlcIixcIm5vdGlmaWNhdGlvblwiOlwiXFx1MTIzNFwifSxcInRyaWdnZXJcIjp7
XCJ1cmwtZmlsdGVyXCI6XCIuKlwifX1dIiwgeyB9KTsKLSAgICAKLSAgICBTdHJpbmdCdWlsZGVy
IHJ1bGVzOwotICAgIHJ1bGVzLmFwcGVuZCgiWyIpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCA0OTk5OTsgKytpKQotICAgICAgICBydWxlcy5hcHBlbmQoIntcImFjdGlvblwiOntcInR5
cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcImFcIn19LCIpOwot
ICAgIFN0cmluZyBydWxlczUwMDAwID0gcnVsZXMudG9TdHJpbmcoKTsKLSAgICBTdHJpbmcgcnVs
ZXM1MDAwMSA9IHJ1bGVzLnRvU3RyaW5nKCk7Ci0gICAgcnVsZXM1MDAwMC5hcHBlbmQoIntcImFj
dGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpc
ImFcIn19XSIpOwotICAgIHJ1bGVzNTAwMDEuYXBwZW5kKCJ7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6
XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJhXCJ9fSx7XCJhY3Rpb25c
Ijp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJhXCJ9
fV0iKTsKLSAgICBjaGVja0NvbXBpbGVyRXJyb3IocnVsZXM1MDAwMC51dGY4KCkuZGF0YSgpLCB7
IH0pOwotICAgIGNoZWNrQ29tcGlsZXJFcnJvcihydWxlczUwMDAxLnV0ZjgoKS5kYXRhKCksIENv
bnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Ub29NYW55UnVsZXMp
OworCisgICAgeworICAgICAgICBTdHJpbmdCdWlsZGVyIHJ1bGVzOworICAgICAgICBydWxlcy5h
cHBlbmQoIlsiKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDQ5OTk5OyArK2kp
CisgICAgICAgICAgICBydWxlcy5hcHBlbmQoIntcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2Nr
XCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcImFcIn19LCIpOworICAgICAgICBpZiAo
YXV0byBzdHJpbmcgPSBydWxlcy50b1N0cmluZygpKSB7CisgICAgICAgICAgICBTdHJpbmcgcnVs
ZXM1MDAwMCA9ICpzdHJpbmc7CisgICAgICAgICAgICBTdHJpbmcgcnVsZXM1MDAwMSA9ICpzdHJp
bmc7CisgICAgICAgICAgICBydWxlczUwMDAwLmFwcGVuZCgie1wiYWN0aW9uXCI6e1widHlwZVwi
OlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiYVwifX1dIik7CisgICAg
ICAgICAgICBydWxlczUwMDAxLmFwcGVuZCgie1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tc
In0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiYVwifX0se1wiYWN0aW9uXCI6e1widHlw
ZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiYVwifX1dIik7Cisg
ICAgICAgICAgICBjaGVja0NvbXBpbGVyRXJyb3IocnVsZXM1MDAwMC51dGY4KCkuZGF0YSgpLCB7
IH0pOworICAgICAgICAgICAgY2hlY2tDb21waWxlckVycm9yKHJ1bGVzNTAwMDEudXRmOCgpLmRh
dGEoKSwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlRvb01h
bnlSdWxlcyk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKKyAgICB9CiAg
ICAgCiAgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxv
Y2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwiaWYtZG9t
YWluXCI6e319fV0iLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpK
U09OSW52YWxpZENvbmRpdGlvbkxpc3QpOwogICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFj
dGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpc
IndlYmtpdC5vcmdcIixcImlmLWRvbWFpblwiOls1XX19XSIsIENvbnRlbnRFeHRlbnNpb25zOjpD
b250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQ29uZGl0aW9uTGlzdCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAppbmRleCA1
ZjFkYzhiLi5lOTRlZmM0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvRmlsZU1vbml0b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9GaWxlTW9uaXRvci5jcHAKQEAgLTEwNyw3ICsxMDcsOSBAQCBzdGF0aWMgU3RyaW5nIGNy
ZWF0ZUNvbW1hbmQoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIHBheWxvYWQpCiAg
ICAgY29tbWFuZC5hcHBlbmRMaXRlcmFsKCJcIiA+ICIpOwogICAgIGNvbW1hbmQuYXBwZW5kKHBh
dGgpOwogCi0gICAgcmV0dXJuIGNvbW1hbmQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBjb21tYW5kLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgcmVhZENvbnRlbnRzT2ZGaWxlKGNvbnN0IFN0cmlu
ZyYgcGF0aCkKQEAgLTI2NywxMCArMjY5LDEzIEBAIFRFU1RfRihGaWxlTW9uaXRvclRlc3QsIERl
dGVjdERlbGV0aW9uKQogICAgICAgICBjb21tYW5kLmFwcGVuZExpdGVyYWwoInJtIC1mICIpOwog
ICAgICAgICBjb21tYW5kLmFwcGVuZCh0ZW1wRmlsZVBhdGgoKSk7CiAKLSAgICAgICAgYXV0byBy
YyA9IHN5c3RlbShjb21tYW5kLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIEFT
U0VSVF9ORShyYywgLTEpOwotICAgICAgICBpZiAocmMgPT0gLTEpCi0gICAgICAgICAgICBkaWRG
aW5pc2ggPSB0cnVlOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBjb21tYW5kLnRvU3RyaW5n
KCkpIHsKKyAgICAgICAgICAgIGF1dG8gcmMgPSBzeXN0ZW0oc3RyaW5nLT51dGY4KCkuZGF0YSgp
KTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShyYywgLTEpOworICAgICAgICAgICAgaWYgKHJjID09
IC0xKQorICAgICAgICAgICAgICAgIGRpZEZpbmlzaCA9IHRydWU7CisgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9KTsKIAogICAgIFV0aWw6OnJ1bigmZGlkRmluaXNo
KTsKQEAgLTMyNCwxMCArMzI5LDEzIEBAIFRFU1RfRihGaWxlTW9uaXRvclRlc3QsIERldGVjdENo
YW5nZUFuZFRoZW5EZWxldGUpCiAgICAgICAgIGNvbW1hbmQuYXBwZW5kTGl0ZXJhbCgicm0gLWYg
Iik7CiAgICAgICAgIGNvbW1hbmQuYXBwZW5kKHRlbXBGaWxlUGF0aCgpKTsKIAotICAgICAgICBh
dXRvIHJjID0gc3lzdGVtKGNvbW1hbmQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAg
ICAgQVNTRVJUX05FKHJjLCAtMSk7Ci0gICAgICAgIGlmIChyYyA9PSAtMSkKLSAgICAgICAgICAg
IGRpZEZpbmlzaCA9IHRydWU7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGNvbW1hbmQudG9T
dHJpbmcoKSkgeworICAgICAgICAgICAgYXV0byByYyA9IHN5c3RlbShzdHJpbmctPnV0ZjgoKS5k
YXRhKCkpOworICAgICAgICAgICAgQVNTRVJUX05FKHJjLCAtMSk7CisgICAgICAgICAgICBpZiAo
cmMgPT0gLTEpCisgICAgICAgICAgICAgICAgZGlkRmluaXNoID0gdHJ1ZTsKKyAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0pOwogCiAgICAgVXRpbDo6cnVuKCZkaWRG
aW5pc2gpOwpAQCAtMzYzLDEwICszNzEsMTMgQEAgVEVTVF9GKEZpbGVNb25pdG9yVGVzdCwgRGV0
ZWN0RGVsZXRlQnV0Tm90U3Vic2VxdWVudENoYW5nZSkKICAgICAgICAgY29tbWFuZC5hcHBlbmRM
aXRlcmFsKCJybSAtZiAiKTsKICAgICAgICAgY29tbWFuZC5hcHBlbmQodGVtcEZpbGVQYXRoKCkp
OwogCi0gICAgICAgIGF1dG8gcmMgPSBzeXN0ZW0oY29tbWFuZC50b1N0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOwotICAgICAgICBBU1NFUlRfTkUocmMsIC0xKTsKLSAgICAgICAgaWYgKHJjID09IC0x
KQotICAgICAgICAgICAgZGlkRmluaXNoID0gdHJ1ZTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5n
ID0gY29tbWFuZC50b1N0cmluZygpKSB7CisgICAgICAgICAgICBhdXRvIHJjID0gc3lzdGVtKHN0
cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBBU1NFUlRfTkUocmMsIC0xKTsKKyAg
ICAgICAgICAgIGlmIChyYyA9PSAtMSkKKyAgICAgICAgICAgICAgICBkaWRGaW5pc2ggPSB0cnVl
OworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfSk7CiAKICAgICBV
dGlsOjpydW4oJmRpZEZpbmlzaCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvTG9nZ2luZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvTG9nZ2luZy5jcHAKaW5kZXggMWU0YzM0Mi4uN2RlZGFkMiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0xvZ2dpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Mb2dnaW5nLmNwcApAQCAtOTUsNyArOTUsOSBAQCBwdWJs
aWM6CiAgICAgICAgIHdoaWxlICgobGluZSA9IGZnZXRzKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciks
IG1fc3RkZXJyKSkpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGxpbmUpOwogCi0gICAgICAg
IHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVz
dWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JB
U0goKTsKICAgICB9CiAKICAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fbG9nZ2VyLmdldCgpOyB9CkBAIC0zNDAsMTUgKzM0MiwxOCBAQCBURVNUX0YoTG9n
Z2luZ1Rlc3QsIExvZ2dlckhlbHBlcikKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIkxvZ2dp
bmdUZXN0OjpUZXN0Qm9keSgiKTsKICAgICBhcHBlbmRVbnNpZ25lZDY0QXNIZXgocmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KGxvZ0lkZW50aWZpZXIoKSksIGJ1aWxkZXIpOwogICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiKSIpOwotICAgIFN0cmluZyBzaWduYXR1cmUgPSBidWlsZGVyLnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKSB7Cisg
ICAgICAgIFN0cmluZyBzaWduYXR1cmUgPSAqc3RyaW5nOwogCi0gICAgQUxXQVlTX0xPRyhMT0dJ
REVOVElGSUVSKTsKLSAgICBFWFBFQ1RfVFJVRSh0aGlzLT5vdXRwdXQoKS5jb250YWlucyhzaWdu
YXR1cmUsIGZhbHNlKSk7CisgICAgICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisgICAg
ICAgIEVYUEVDVF9UUlVFKHRoaXMtPm91dHB1dCgpLmNvbnRhaW5zKHNpZ25hdHVyZSwgZmFsc2Up
KTsKIAotICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgIldlbGNvbWUgYmFjayIsICIgbXkg
ZnJpZW5kcyIsICIgdG8gdGhlIHNob3ciLCAiIHRoYXQgbmV2ZXIgZW5kcyIpOwotICAgIFN0cmlu
ZyByZXN1bHQgPSB0aGlzLT5vdXRwdXQoKTsKLSAgICBFWFBFQ1RfVFJVRShyZXN1bHQuY29udGFp
bnMoc2lnbmF0dXJlLCBmYWxzZSkpOwotICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5jb250YWlucygi
dG8gdGhlIHNob3cgdGhhdCBuZXZlciIsIGZhbHNlKSk7CisgICAgICAgIEFMV0FZU19MT0coTE9H
SURFTlRJRklFUiwgIldlbGNvbWUgYmFjayIsICIgbXkgZnJpZW5kcyIsICIgdG8gdGhlIHNob3ci
LCAiIHRoYXQgbmV2ZXIgZW5kcyIpOworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gdGhpcy0+b3V0
cHV0KCk7CisgICAgICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5jb250YWlucyhzaWduYXR1cmUsIGZh
bHNlKSk7CisgICAgICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5jb250YWlucygidG8gdGhlIHNob3cg
dGhhdCBuZXZlciIsIGZhbHNlKSk7CisgICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAg
ICBXVEZTZXRMb2dDaGFubmVsTGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWxXYXJuaW5n
KTsKIApAQCAtMzcxLDEwICszNzYsMTEgQEAgcHVibGljOgogCiAgICAgU3RyaW5nIGxvZygpCiAg
ICAgewotICAgICAgICBTdHJpbmcgbG9nID0gbV9sb2dCdWZmZXIudG9TdHJpbmcoKTsKLSAgICAg
ICAgbV9sb2dCdWZmZXIuY2xlYXIoKTsKLQotICAgICAgICByZXR1cm4gbG9nOworICAgICAgICBp
ZiAoYXV0byBsb2cgPSBtX2xvZ0J1ZmZlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICBtX2xv
Z0J1ZmZlci5jbGVhcigpOworICAgICAgICAgICAgcmV0dXJuIGxvZzsKKyAgICAgICAgfQorICAg
ICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIFdURkxvZ0NoYW5uZWwgY2hhbm5lbCgpIGNvbnN0
IHsgcmV0dXJuIG1fbGFzdENoYW5uZWw7IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9UZXh0Q29kZWMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL1RleHRDb2RlYy5jcHAKaW5kZXggZmQwNTA1MC4uOWU1NTUzMCAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1RleHRDb2RlYy5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1RleHRDb2RlYy5jcHAKQEAgLTk4LDcg
Kzk4LDkgQEAgc3RhdGljIGNvbnN0IGNoYXIqIHRlc3REZWNvZGUoY29uc3QgY2hhciogZW5jb2Rp
bmdOYW1lLCBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8Y28KICAgICAgICAgaWYgKHNhd0Vycm9yKQog
ICAgICAgICAgICAgcmVzdWx0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgRVJST1IiKTsKICAgICB9
Ci0gICAgcmV0dXJuIGVzY2FwZU5vbkFTQ0lJUHJpbnRhYmxlQ2hhcmFjdGVycyhyZXN1bHRCdWls
ZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdEJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIGVzY2FwZU5vbkFTQ0lJUHJpbnRhYmxlQ2hhcmFjdGVy
cygqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiBURVNUKFRleHRDb2RlYywgVVRGOCkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvV1RGU3RyaW5nVXRpbGl0aWVzLmggYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1dURlN0cmluZ1V0aWxpdGllcy5oCmluZGV4IGVjYmE5YzQuLmY1ZDQx
ZWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvV1RGU3RyaW5nVXRpbGl0aWVzLmgK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9XVEZTdHJpbmdVdGlsaXRpZXMuaApAQCAtNTEsNSAr
NTEsNyBAQCBzdGF0aWMgU3RyaW5nIHV0ZjE2U3RyaW5nKGNvbnN0IGNoYXIxNl90ICgmdXJsKVts
ZW5ndGhdKQogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KGxlbmd0aCAtIDEpOwogICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoIC0gMTsgKytpKQogICAgICAgICBidWlsZGVyLmFw
cGVuZChzdGF0aWNfY2FzdDxVQ2hhcj4odXJsW2ldKSk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5j
cHAKaW5kZXggYmIzOTQ2Yy4uMmZkOTY0YSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcApAQCAt
MTA2LDcgKzEwNiw5IEBAIHN0YXRpYyBXVEY6OlN0cmluZyBkdW1wUGF0aChKU0dsb2JhbENvbnRl
eHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgbm9kZVZhbHVlKQogICAgICAgICBzdHJpbmdCdWls
ZGVyLmFwcGVuZChkdW1wUGF0aChjb250ZXh0LCAoSlNPYmplY3RSZWYpcGFyZW50Tm9kZSkpOwog
ICAgIH0KIAotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgV1RGOjpTdHJpbmcgZHVtcFBhdGgoV0tC
dW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgd29ybGQsIFdLQnVuZGxl
Tm9kZUhhbmRsZVJlZiBub2RlKQpAQCAtMTU2LDcgKzE1OCw5IEBAIHN0YXRpYyBXVEY6OlN0cmlu
ZyByYW5nZVRvU3RyKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVm
IHdvcmxkCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIoZW5kT2Zmc2V0KTsKICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiBvZiAiKTsKICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZChkdW1wUGF0aChjb250ZXh0LCBlbmROb2RlT2JqZWN0KSk7Ci0gICAgcmV0dXJuIHN0cmlu
Z0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IHN0YXRpYyBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gTmF2aWdhdGlvblR5cGVUb1N0cmluZyhX
S0ZyYW1lTmF2aWdhdGlvblR5cGUgdHlwZSkKQEAgLTE4NSw3ICsxODksOSBAQCBzdGF0aWMgV1RG
OjpTdHJpbmcgc3R5bGVEZWNUb1N0cihXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25SZWYgc3R5
bGUpCiAgICAgLy8gdGhlIGVkaXRpbmcgY2xpZW50IGlmIHRoZSBzdHlsaW5nIG9wZXJhdGlvbiBz
b3VyY2UgaXMgQ29tbWFuZEZyb21ET00gb3IgQ29tbWFuZEZyb21ET01XaXRoVXNlckludGVyZmFj
ZS4KICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7CiAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmRMaXRlcmFsKCI8RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiBBRERSRVNTPiIpOwotICAgIHJl
dHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBzdGF0aWMgV1RGOjpTdHJpbmcgc2VjdXJpdHlPcmlnaW5Ub1N0cihXS1NlY3Vy
aXR5T3JpZ2luUmVmIG9yaWdpbikKQEAgLTE5OSw3ICsyMDUsOSBAQCBzdGF0aWMgV1RGOjpTdHJp
bmcgc2VjdXJpdHlPcmlnaW5Ub1N0cihXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbikKICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcihXS1NlY3VyaXR5T3JpZ2luR2V0UG9ydChvcmlnaW4p
KTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnfScpOwogCi0gICAgcmV0dXJuIHN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0
YXRpYyBXVEY6OlN0cmluZyBmcmFtZVRvU3RyKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUpCkBAIC0y
MjMsNyArMjMxLDkgQEAgc3RhdGljIFdURjo6U3RyaW5nIGZyYW1lVG9TdHIoV0tCdW5kbGVGcmFt
ZVJlZiBmcmFtZSkKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiZnJh
bWUgKGFub255bW91cykiKTsKICAgICB9CiAgICAgCi0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBp
bmxpbmUgYm9vbCBpc0xvY2FsRmlsZVNjaGVtZShXS1N0cmluZ1JlZiBzY2hlbWUpCkBAIC00NzYs
NyArNDg2LDEwIEBAIHN0YXRpYyB2b2lkIGR1bXBMb2FkRXZlbnQoV0tCdW5kbGVGcmFtZVJlZiBm
cmFtZSwgY29uc3QgY2hhciogZXZlbnROYW1lKQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiIC0gIik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoZXZlbnROYW1lKTsKICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9u
KCkub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgSW5qZWN0ZWRCdW5kbGU6
OnNpbmdsZXRvbigpLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFT
SCgpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZHVtcFJlcXVlc3REZXNjcmlwdGlvblN1aXRh
YmxlRm9yVGVzdFJlc3VsdChXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgU3RyaW5nQnVpbGRlciYg
c3RyaW5nQnVpbGRlcikKQEAgLTk0MCw3ICs5NTMsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBh
Z2U6OmR1bXAoKQogICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUuc2V0UmVwYWludFJlY3RzKGFk
b3B0V0soV0tCdW5kbGVQYWdlQ29weVRyYWNrZWRSZXBhaW50UmVjdHMobV9wYWdlKSkuZ2V0KCkp
OwogICAgIH0KIAotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50
b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxz
ZQorICAgICAgICBDUkFTSCgpOwogICAgIGluamVjdGVkQnVuZGxlLmRvbmUoKTsKIH0KIApAQCAt
OTg4LDcgKzEwMDQsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVUaXRs
ZUZvckZyYW1lKFdLU3RyaW5nUmVmIHRpdGxlLCBXS0J1bmRsZUZyYW0KICAgICAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmRMaXRlcmFsKCInXG4iKTsKICAgICB9CiAKLSAgICBpbmplY3RlZEJ1bmRs
ZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5v
dXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9p
ZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZENsZWFyV2luZG93Rm9yRnJhbWUoV0tCdW5kbGVGcmFt
ZVJlZiBmcmFtZSwgV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiB3b3JsZCkKQEAgLTEwNDMsNyArMTA2
MiwxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVj
dEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tCdQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiIC0gd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMOiAiKTsKICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZChwYXRoU3VpdGFibGVGb3JUZXN0UmVzdWx0KHVybCkpOwogICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIFxuIik7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0
cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0
VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW5q
ZWN0ZWRCdW5kbGVQYWdlOjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUoV0tCdW5k
bGVGcmFtZVJlZiBmcmFtZSwgV0tTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSB0eXBlKQpAQCAt
MTA3Nyw3ICsxMDk5LDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRGaW5pc2hEb2N1
bWVudExvYWRGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmIGZyYW1lKQogICAgICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZExpdGVyYWwoIiAtIGhhcyAiKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmROdW1iZXIocGVuZGluZ0ZyYW1lVW5sb2FkRXZlbnRzKTsKICAgICAgICAgc3RyaW5nQnVp
bGRlci5hcHBlbmRMaXRlcmFsKCIgb251bmxvYWQgaGFuZGxlcihzKVxuIik7Ci0gICAgICAgIGlu
amVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAg
ICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9CiAKQEAgLTExNTAsNyArMTE3NSwxMCBAQCBXS1VS
TFJlcXVlc3RSZWYgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZShX
S0J1bmRsZVBhZ2VSZWYgcGFnZQogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwo
IiByZWRpcmVjdFJlc3BvbnNlICIpOwogICAgICAgICBkdW1wUmVzcG9uc2VEZXNjcmlwdGlvblN1
aXRhYmxlRm9yVGVzdFJlc3VsdChyZXNwb25zZSwgc3RyaW5nQnVpbGRlciwgaW5qZWN0ZWRCdW5k
bGUudGVzdFJ1bm5lcigpLT5zaG91bGREdW1wQWxsSFRUUFJlZGlyZWN0ZWRSZXNwb25zZUhlYWRl
cnMoKSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBpbmpl
Y3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAg
IGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgaWYgKGluamVjdGVkQnVuZGxlLmlzVGVzdFJ1
bm5pbmcoKSAmJiBpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPndpbGxTZW5kUmVxdWVzdFJl
dHVybnNOdWxsKCkpCkBAIC0xMTg2LDcgKzEyMTQsMTAgQEAgV0tVUkxSZXF1ZXN0UmVmIEluamVj
dGVkQnVuZGxlUGFnZTo6d2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBh
Z2UKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiQmxvY2tlZCBhY2Nl
c3MgdG8gZXh0ZXJuYWwgVVJMICIpOwogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQo
dG9XVEZTdHJpbmcodXJsU3RyaW5nKSk7CiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
ZCgnXG4nKTsKLSAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVp
bGRlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRU
ZXh0KCpzdHJpbmcpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7
CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KQEAgLTEyMTUs
NyArMTI0NiwxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVjZWl2ZVJlc3BvbnNl
Rm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQgogICAgICAgICBzdHJpbmdCdWls
ZGVyLmFwcGVuZExpdGVyYWwoIiAtIGRpZFJlY2VpdmVSZXNwb25zZSAiKTsKICAgICAgICAgZHVt
cFJlc3BvbnNlRGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQocmVzcG9uc2UsIHN0cmlu
Z0J1aWxkZXIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAg
aW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogCkBAIC0xMjM5LDcgKzEyNzMsMTAgQEAgdm9p
ZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVSZXNwb25zZUZvclJlc291cmNlKFdLQnVu
ZGxlUGFnZVJlZiBwYWdlLCBXS0IKIAogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwog
Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAg
IENSQVNIKCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlQ29udGVu
dExlbmd0aEZvclJlc291cmNlKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgdWlu
dDY0X3QsIHVpbnQ2NF90KQpAQCAtMTI1OCw3ICsxMjk1LDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5k
bGVQYWdlOjpkaWRGaW5pc2hMb2FkRm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRs
ZUZyYW1lCiAgICAgU3RyaW5nQnVpbGRlciBzdHJpbmdCdWlsZGVyOwogICAgIGR1bXBSZXNvdXJj
ZVVSTChpZGVudGlmaWVyLCBzdHJpbmdCdWlsZGVyKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
ZExpdGVyYWwoIiAtIGRpZEZpbmlzaExvYWRpbmdcbiIpOwotICAgIGluamVjdGVkQnVuZGxlLm91
dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1
dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIElu
amVjdGVkQnVuZGxlUGFnZTo6ZGlkRmFpbExvYWRGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYs
IFdLQnVuZGxlRnJhbWVSZWYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIFdLRXJyb3JSZWYgZXJyb3Ip
CkBAIC0xMjc2LDcgKzEzMTYsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZhaWxM
b2FkRm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmUKIAogICAgIGR1
bXBFcnJvckRlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KGVycm9yLCBzdHJpbmdCdWls
ZGVyKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBpbmplY3RlZEJ1bmRs
ZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5v
dXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogYm9v
bCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZENhY2hlUmVzcG9uc2UoV0tCdW5kbGVQYWdlUmVm
LCBXS0J1bmRsZUZyYW1lUmVmLCB1aW50NjRfdCBpZGVudGlmaWVyKQpAQCAtMTI5MSw3ICsxMzM0
LDEwIEBAIGJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRDYWNoZVJlc3BvbnNlKFdLQnVu
ZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwKICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1
aWxkZXI7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIoaWRlbnRpZmllcik7CiAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgLSB3aWxsQ2FjaGVSZXNwb25zZTogY2FsbGVk
XG4iKTsKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAg
ICAgICAgQ1JBU0goKTsKIAogICAgIC8vIFRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIHRoZSBjYWNo
ZSB0aGUgcmVzcG9uc2UuCiAgICAgcmV0dXJuIHRydWU7CkBAIC0xMzM1LDcgKzEzODEsMTAgQEAg
V0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uIEluamVjdGVkQnVuZGxlUGFnZTo6ZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbihXS0IKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRl
cmFsKCIgc2hvdWxkIG9wZW4gVVJMcyBleHRlcm5hbGx5IC0gIik7CiAgICAgICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kKFdLQnVuZGxlTmF2aWdhdGlvbkFjdGlvbkdldFNob3VsZE9wZW5FeHRlcm5h
bFVSTHMobmF2aWdhdGlvbkFjdGlvbikgPyAieWVzIiA6ICJubyIpOwogICAgICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChz
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRU
ZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0K
IAogICAgIGlmICghaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5pc1BvbGljeURlbGVnYXRl
RW5hYmxlZCgpKQpAQCAtMTM2Myw3ICsxNDEyLDEwIEBAIFdLQnVuZGxlUGFnZVBvbGljeUFjdGlv
biBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV0tC
CiAgICAgfQogCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgaW5qZWN0ZWRC
dW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5k
bGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAg
ICBpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPm5vdGlmeURvbmUoKTsKIApAQCAtMTM4NCw3
ICsxNDM2LDEwIEBAIFdLQnVuZGxlUGFnZVBvbGljeUFjdGlvbiBJbmplY3RlZEJ1bmRsZVBhZ2U6
OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdLQnVuZGxlUGFnCiAgICAgICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiUG9saWN5IGRlbGVnYXRlOiByZXNvdXJjZSBpcyBhbiBhdHRhY2ht
ZW50LCBzdWdnZXN0ZWQgZmlsZSBuYW1lIFwnIik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kKHRvV1RGU3RyaW5nKGZpbGVuYW1lKSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiXCdcbiIpOwotICAgICAgICBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkub3V0
cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBJbmplY3RlZEJ1bmRs
ZTo6c2luZ2xldG9uKCkub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICByZXR1cm4gV0tCdW5kbGVQYWdlUG9saWN5QWN0
aW9uUGFzc1Rocm91Z2g7CkBAIC0xNDc3LDEwICsxNTMyLDEzIEBAIHZvaWQgSW5qZWN0ZWRCdW5k
bGVQYWdlOjp3aWxsQWRkTWVzc2FnZVRvQ29uc29sZShXS1N0cmluZ1JlZiBtZXNzYWdlLCB1aW50
MzJfdCBsCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQobWVzc2FnZVN0cmluZyk7CiAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7CiAKLSAgICBpZiAoaW5qZWN0ZWRCdW5kbGUuZHVtcEpT
Q29uc29sZUxvZ0luU3RkRXJyKCkpCi0gICAgICAgIGluamVjdGVkQnVuZGxlLmR1bXBUb1N0ZEVy
cihzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOwotICAgIGVsc2UKLSAgICAgICAgaW5qZWN0ZWRC
dW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICBpZiAoaW5qZWN0
ZWRCdW5kbGUuZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyKCkpCisgICAgICAgICAgICBpbmplY3Rl
ZEJ1bmRsZS5kdW1wVG9TdGRFcnIoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgfSBlbHNlCisgICAgICAg
IENSQVNIKCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsU2V0U3RhdHVzYmFy
VGV4dChXS1N0cmluZ1JlZiBzdGF0dXNiYXJUZXh0KQpAQCAtMTQ5Niw3ICsxNTU0LDEwIEBAIHZv
aWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsU2V0U3RhdHVzYmFyVGV4dChXS1N0cmluZ1JlZiBz
dGF0dXNiYXJUZXh0KQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiVUkgREVMRUdB
VEUgU1RBVFVTIENBTExCQUNLOiBzZXRTdGF0dXNUZXh0OiIpOwogICAgIHN0cmluZ0J1aWxkZXIu
YXBwZW5kKHRvV1RGU3RyaW5nKHN0YXR1c2JhclRleHQpKTsKICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZCgnXG4nKTsKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIu
dG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVs
c2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxS
dW5KYXZhU2NyaXB0QWxlcnQoV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tCdW5kbGVGcmFtZVJlZikK
QEAgLTE1MDksNyArMTU3MCwxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFJ1bkph
dmFTY3JpcHRBbGVydChXS1N0cmluZ1JlZiBtZXNzYWdlLCBXS0J1bmRsZUZyYQogICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiQUxFUlQ6ICIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kKHRvV1RGU3RyaW5nKG1lc3NhZ2UpKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4n
KTsKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmco
KSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAg
ICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxSdW5KYXZhU2Ny
aXB0Q29uZmlybShXS1N0cmluZ1JlZiBtZXNzYWdlLCBXS0J1bmRsZUZyYW1lUmVmKQpAQCAtMTUy
Miw3ICsxNTg2LDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUnVuSmF2YVNjcmlw
dENvbmZpcm0oV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tCdW5kbGVGCiAgICAgc3RyaW5nQnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCJDT05GSVJNOiAiKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0
b1dURlN0cmluZyhtZXNzYWdlKSk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0g
ICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
aW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENS
QVNIKCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUnVuSmF2YVNjcmlwdFBy
b21wdChXS1N0cmluZ1JlZiBtZXNzYWdlLCBXS1N0cmluZ1JlZiBkZWZhdWx0VmFsdWUsIFdLQnVu
ZGxlRnJhbWVSZWYpCkBAIC0xNTMzLDcgKzE2MDAsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBh
Z2U6OndpbGxSdW5KYXZhU2NyaXB0UHJvbXB0KFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLU3RyaW5n
UmUKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgZGVmYXVsdCB0ZXh0OiAiKTsK
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhkZWZhdWx0VmFsdWUpKTsKICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBJbmplY3RlZEJ1bmRsZTo6c2luZ2xl
dG9uKCkub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgSW5qZWN0ZWRCdW5k
bGU6OnNpbmdsZXRvbigpLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBD
UkFTSCgpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVhY2hBcHBsaWNhdGlv
bkNhY2hlT3JpZ2luUXVvdGEoV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIGludDY0X3QgdG90
YWxCeXRlc05lZWRlZCkKQEAgLTE1NTIsNyArMTYyMiwxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxl
UGFnZTo6ZGlkUmVhY2hBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV0tTZWN1cml0eU9yaWdp
blJlZgogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiB0b3RhbFNwYWNlTmVl
ZGVkOn4iKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIodHJ1bmNhdGVkU3Bh
Y2VOZWVkZWQpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAg
aW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIGlmIChpbmplY3RlZEJ1bmRsZS50ZXN0
UnVubmVyKCktPnNob3VsZERpc2FsbG93SW5jcmVhc2VGb3JBcHBsaWNhdGlvbkNhY2hlUXVvdGEo
KSkKQEAgLTE1NzIsNyArMTY0NSwxMCBAQCB1aW50NjRfdCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRp
ZEV4Y2VlZERhdGFiYXNlUXVvdGEoV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sCiAgICAgICAg
IHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIGRhdGFiYXNlOiIpOwogICAgICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhkYXRhYmFzZU5hbWUpKTsKICAgICAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRl
eHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
c3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0
cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAg
ICB9CiAKICAgICB1aW50NjRfdCBkZWZhdWx0UXVvdGEgPSA1ICogMTAyNCAqIDEwMjQ7CkBAIC0x
NTkxLDcgKzE2NjcsMTAgQEAgdWludDY0X3QgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRFeGNlZWRE
YXRhYmFzZVF1b3RhKFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLAogICAgICAgICAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJVSSBERUxFR0FURSBEQVRBQkFTRSBDQUxMQkFDSzog
aW5jcmVhc2VkIHF1b3RhIHRvICIpOwogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRO
dW1iZXIobmV3UXVvdGEpOwogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7
Ci0gICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKSk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3Ry
aW5nKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAg
ICB9CiAgICAgfQogICAgIHJldHVybiBuZXdRdW90YTsKQEAgLTE2NjUsNyArMTc0NCwxMCBAQCBi
b29sIEluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkQmVnaW5FZGl0aW5nKFdLQnVuZGxlUmFuZ2VI
YW5kbGVSZWYgcmFuZ2UpCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRURJ
VElORyBERUxFR0FURTogc2hvdWxkQmVnaW5FZGl0aW5nSW5ET01SYW5nZToiKTsKICAgICAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmQocmFuZ2VUb1N0cihtX3BhZ2UsIG1fd29ybGQuZ2V0KCksIHJh
bmdlKSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBpbmpl
Y3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAg
IGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIHJldHVybiBpbmplY3RlZEJ1bmRsZS50ZXN0UnVu
bmVyKCktPnNob3VsZEFsbG93RWRpdGluZygpOwogfQpAQCAtMTY4MSw3ICsxNzYzLDEwIEBAIGJv
b2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRFbmRFZGl0aW5nKFdLQnVuZGxlUmFuZ2VIYW5k
bGVSZWYgcmFuZ2UpCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRURJVElO
RyBERUxFR0FURTogc2hvdWxkRW5kRWRpdGluZ0luRE9NUmFuZ2U6Iik7CiAgICAgICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kKHJhbmdlVG9TdHIobV9wYWdlLCBtX3dvcmxkLmdldCgpLCByYW5nZSkp
OwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRC
dW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAo
YXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmpl
Y3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBDUkFTSCgpOwogICAgIH0KICAgICByZXR1cm4gaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigp
LT5zaG91bGRBbGxvd0VkaXRpbmcoKTsKIH0KQEAgLTE3MDcsNyArMTc5MiwxMCBAQCBib29sIElu
amVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkSW5zZXJ0Tm9kZShXS0J1bmRsZU5vZGVIYW5kbGVSZWYg
bm9kZSwgV0tCdW5kbGVSYQogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiBn
aXZlbkFjdGlvbjoiKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoaW5zZXJ0YWN0aW9u
c3RyaW5nW2FjdGlvbl0pOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAg
ICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkp
OworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICByZXR1cm4gaW5qZWN0ZWRCdW5k
bGUudGVzdFJ1bm5lcigpLT5zaG91bGRBbGxvd0VkaXRpbmcoKTsKIH0KQEAgLTE3MzMsNyArMTgy
MSwxMCBAQCBib29sIEluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkSW5zZXJ0VGV4dChXS1N0cmlu
Z1JlZiB0ZXh0LCBXS0J1bmRsZVJhbmdlSGFuZGxlUgogICAgICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZExpdGVyYWwoIiBnaXZlbkFjdGlvbjoiKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmQoaW5zZXJ0YWN0aW9uc3RyaW5nW2FjdGlvbl0pOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWls
ZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJp
bmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICByZXR1
cm4gaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGRBbGxvd0VkaXRpbmcoKTsKIH0K
QEAgLTE3NDksNyArMTg0MCwxMCBAQCBib29sIEluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkRGVs
ZXRlUmFuZ2UoV0tCdW5kbGVSYW5nZUhhbmRsZVJlZiByYW5nZSkKICAgICAgICAgc3RyaW5nQnVp
bGRlci5hcHBlbmRMaXRlcmFsKCJFRElUSU5HIERFTEVHQVRFOiBzaG91bGREZWxldGVET01SYW5n
ZToiKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQocmFuZ2VUb1N0cihtX3BhZ2UsIG1f
d29ybGQuZ2V0KCksIHJhbmdlKSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicp
OwotICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIHJldHVybiBpbmplY3Rl
ZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZEFsbG93RWRpdGluZygpOwogfQpAQCAtMTc4MCw3
ICsxODc0LDEwIEBAIGJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRDaGFuZ2VTZWxlY3Rl
ZFJhbmdlKFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYgZnJvbVJhCiAgICAgICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiIHN0aWxsU2VsZWN0aW5nOiIpOwogICAgICAgICBzdHJpbmdCdWls
ZGVyLmFwcGVuZChib29sc3RyaW5nW3N0aWxsU2VsZWN0aW5nXSk7IAogICAgICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChz
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRU
ZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0K
ICAgICByZXR1cm4gaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGRBbGxvd0VkaXRp
bmcoKTsKIH0KQEAgLTE3OTgsNyArMTg5NSwxMCBAQCBib29sIEluamVjdGVkQnVuZGxlUGFnZTo6
c2hvdWxkQXBwbHlTdHlsZShXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25SZWYgc3R5bGUsCiAg
ICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIHRvRWxlbWVudHNJbkRPTVJhbmdl
OiIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChyYW5nZVRvU3RyKG1fcGFnZSwgbV93
b3JsZC5nZXQoKSwgcmFuZ2UpKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7
Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgcmV0dXJuIGluamVjdGVk
QnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkQWxsb3dFZGl0aW5nKCk7CiB9CkBAIC0xODE1LDcg
KzE5MTUsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEJlZ2luRWRpdGluZyhXS1N0
cmluZ1JlZiBub3RpZmljYXRpb25OYW1lKQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZEJlZ2luRWRpdGluZzoiKTsKICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhub3RpZmljYXRpb25OYW1lKSk7CiAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChz
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3Ry
aW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5k
bGVQYWdlOjpkaWRFbmRFZGl0aW5nKFdLU3RyaW5nUmVmIG5vdGlmaWNhdGlvbk5hbWUpCkBAIC0x
ODMwLDcgKzE5MzMsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEVuZEVkaXRpbmco
V0tTdHJpbmdSZWYgbm90aWZpY2F0aW9uTmFtZSkKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExp
dGVyYWwoIkVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRFbmRFZGl0aW5nOiIpOwogICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5nKG5vdGlmaWNhdGlvbk5hbWUpKTsKICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0
KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5n
QnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpz
dHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1
bmRsZVBhZ2U6OmRpZENoYW5nZShXS1N0cmluZ1JlZiBub3RpZmljYXRpb25OYW1lKQpAQCAtMTg0
NSw3ICsxOTUxLDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRDaGFuZ2UoV0tTdHJp
bmdSZWYgbm90aWZpY2F0aW9uTmFtZSkKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwo
IkVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6Iik7CiAgICAgc3RyaW5nQnVpbGRl
ci5hcHBlbmQodG9XVEZTdHJpbmcobm90aWZpY2F0aW9uTmFtZSkpOwogICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kKCdcbicpOwotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVp
bGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7Cisg
ICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6
ZGlkQ2hhbmdlU2VsZWN0aW9uKFdLU3RyaW5nUmVmIG5vdGlmaWNhdGlvbk5hbWUpCkBAIC0xODYw
LDcgKzE5NjksMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZENoYW5nZVNlbGVjdGlv
bihXS1N0cmluZ1JlZiBub3RpZmljYXRpb25OYW1lKQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjoiKTsK
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhub3RpZmljYXRpb25OYW1lKSk7
CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0
cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0
VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKICNpZiBFTkFC
TEUoRlVMTFNDUkVFTl9BUEkpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCBlNjJlYjkzLi45MjY4ODQ5IDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3Bw
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHAKQEAgLTE2NzgsMTAgKzE2NzgsMTMgQEAgdm9pZCBUZXN0UnVubmVyOjpzdGF0aXN0aWNzRGlk
UnVuVGVsZW1ldHJ5Q2FsbGJhY2sodW5zaWduZWQgdG90YWxQcmV2YWxlbnRSZXNvdXIKICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgXCJ0b3AzU3ViZnJhbWVVbmRlclRvcEZyYW1l
T3JpZ2luc1wiIDogIik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIodG9wM1N1YmZy
YW1lVW5kZXJUb3BGcmFtZU9yaWdpbnMpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiIH0iKTsKKworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmco
KSkgeworICAgICAgICBKU1ZhbHVlUmVmIHJlc3VsdCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJp
bmcoY29udGV4dCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyaW5nLT51dGY4KCku
ZGF0YSgpKSk7CiAgICAgCi0gICAgSlNWYWx1ZVJlZiByZXN1bHQgPSBKU1ZhbHVlTWFrZUZyb21K
U09OU3RyaW5nKGNvbnRleHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7Ci0gICAgCi0gICAgY2FsbFRlc3RSdW5u
ZXJDYWxsYmFjayhTdGF0aXN0aWNzRGlkUnVuVGVsZW1ldHJ5Q2FsbGJhY2tJRCwgMSwgJnJlc3Vs
dCk7CisgICAgICAgIGNhbGxUZXN0UnVubmVyQ2FsbGJhY2soU3RhdGlzdGljc0RpZFJ1blRlbGVt
ZXRyeUNhbGxiYWNrSUQsIDEsICZyZXN1bHQpOworICAgIH0gZWxzZQorICAgICAgICBDUkFTSCgp
OwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpCkBAIC0x
ODkxLDEwICsxODk0LDEzIEBAIHZvaWQgVGVzdFJ1bm5lcjo6Y2FsbERpZFJlY2VpdmVBbGxTdG9y
YWdlQWNjZXNzRW50cmllc0NhbGxiYWNrKFZlY3RvcjxTdHJpbmc+JiBkCiAgICAgICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCIiKTsKICAgICB9CiAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmRMaXRlcmFsKCJdIik7Ci0gICAgCi0gICAgSlNWYWx1ZVJlZiByZXN1bHQgPSBKU1ZhbHVl
TWFrZUZyb21KU09OU3RyaW5nKGNvbnRleHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CiAKLSAgICBjYWxsVGVz
dFJ1bm5lckNhbGxiYWNrKEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzQ2FsbGJhY2tJRCwgMSwgJnJl
c3VsdCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKSB7
CisgICAgICAgIEpTVmFsdWVSZWYgcmVzdWx0ID0gSlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmluZyhj
b250ZXh0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmctPnV0ZjgoKS5kYXRh
KCkpKTsKKworICAgICAgICBjYWxsVGVzdFJ1bm5lckNhbGxiYWNrKEFsbFN0b3JhZ2VBY2Nlc3NF
bnRyaWVzQ2FsbGJhY2tJRCwgMSwgJnJlc3VsdCk7CisgICAgfSBlbHNlCisgICAgICAgIENSQVNI
KCk7CiB9CiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwCmluZGV4IDY4YzQ5YzguLmYzYmE3ZmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xODgxLDcgKzE4ODEsMTAgQEAgV0tTdHJpbmdS
ZWYgVGVzdENvbnRyb2xsZXI6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1l
KFdLQ29udGV4dFJlZiwKICAgICAgICAgYnVpbGRlci5hcHBlbmQoIkRvd25sb2FkaW5nIFVSTCB3
aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSBcIiIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChzdWdn
ZXN0ZWRGaWxlbmFtZSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJcIlxuIik7Ci0gICAgICAg
IG1fY3VycmVudEludm9jYXRpb24tPm91dHB1dFRleHQoYnVpbGRlci50b1N0cmluZygpKTsKKyAg
ICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAg
bV9jdXJyZW50SW52b2NhdGlvbi0+b3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBjb25zdCBjaGFyKiBkdW1wUmVuZGVy
VHJlZVRlbXAgPSBsaWJyYXJ5UGF0aEZvclRlc3RpbmcoKTsKQEAgLTE5MTEsNyArMTkxNCwxMCBA
QCB2b2lkIFRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdFRv
VVJMKFdLQ29udGV4dFJlZiwgV0tEb3dubAogICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gdXJsU3RyaW5nV0sgPSBhZG9wdFdLKFdLVVJMQ29weVN0cmluZyh1cmwpKTsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQodG9TVEQodXJsU3RyaW5nV0spLmNfc3RyKCkpOwogICAgICAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIlwiLlxuIik7Ci0gICAgICAgIG1fY3VycmVudEludm9jYXRpb24t
Pm91dHB1dFRleHQoYnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+
b3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsK
ICAgICB9CiB9CiAKQEAgLTE5MzQsNyArMTk0MCwxMCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpk
b3dubG9hZERpZEZhaWwoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmLCBXS0Vycm9yUmVmIGVy
cgogICAgICAgICBlcnJvckJ1aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5nKGVycm9yRGVzY3JpcHRp
b24pKTsKICAgICAgICAgZXJyb3JCdWlsZGVyLmFwcGVuZCgiXG4iKTsKIAotICAgICAgICBtX2N1
cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KGVycm9yQnVpbGRlci50b1N0cmluZygpKTsKKyAg
ICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZXJyb3JCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICBtX2N1cnJlbnRJbnZvY2F0aW9u
LT5ub3RpZnlEb3dubG9hZERvbmUoKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHAKaW5kZXggY2Q1ZGIwYS4uZWUyZjU1MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTI0OCw5ICsyNDgsMTIgQEAgdm9pZCBUZXN0SW52
b2NhdGlvbjo6Zm9yY2VSZXBhaW50RG9uZUNhbGxiYWNrKFdLRXJyb3JSZWYgZXJyb3IsIHZvaWQq
IGNvbnRleHQpCiAKIHZvaWQgVGVzdEludm9jYXRpb246OmR1bXBSZXN1bHRzKCkKIHsKLSAgICBp
ZiAobV90ZXh0T3V0cHV0Lmxlbmd0aCgpIHx8ICFtX2F1ZGlvUmVzdWx0KQotICAgICAgICBkdW1w
KG1fdGV4dE91dHB1dC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIGVsc2UKKyAgICBp
ZiAobV90ZXh0T3V0cHV0Lmxlbmd0aCgpIHx8ICFtX2F1ZGlvUmVzdWx0KSB7CisgICAgICAgIGlm
IChhdXRvIHN0cmluZyA9IG1fdGV4dE91dHB1dC50b1N0cmluZygpKQorICAgICAgICAgICAgZHVt
cChzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFT
SCgpOworICAgIH0gZWxzZQogICAgICAgICBkdW1wQXVkaW8obV9hdWRpb1Jlc3VsdC5nZXQoKSk7
CiAKICAgICBpZiAobV9kdW1wUGl4ZWxzKSB7Ci0tIAoyLjkuMwoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339235</attachid>
            <date>2018-05-01 16:01:48 -0700</date>
            <delta_ts>2018-08-02 00:09:48 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Teach-StringBuilder-that-it-is-fallible.patch</filename>
            <type>text/plain</type>
            <size>486938</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSAxYTNjOTBhN2YyMGFlYTk4MmJlZDdmYWFkOWI3M2Y5NjQ2ZGQwMjA3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBXZWQsIDI1IEFwciAyMDE4IDIxOjUwOjI0IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gVGVhY2gg
U3RyaW5nQnVpbGRlciB0aGF0IGl0IGlzIGZhbGxpYmxlCgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcCAgICAgICAgIHwgICA0ICstCiAuLi4vQVBJL3Rlc3Rz
L0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwICAgICAgICAgICB8IDMxMCArKysrKysrLS0tLS0t
CiAuLi4vQVBJL3Rlc3RzL1BpbmdQb25nU3RhY2tPdmVyZmxvd1Rlc3QuY3BwICAgICAgICB8ICAg
OSArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
fCAgOTUgKysrKwogLi4uL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCAgICAgICAg
ICAgICAgfCAgMTcgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBTbmFwc2hvdEJ1
aWxkZXIuY3BwIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNv
bGVNZXNzYWdlLmNwcCB8ICAxMyArLQogLi4uL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0
aWVzLmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9JbnRlcnByZXRlci5jcHAgIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcCB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAgICAgICAgICAgICAgICAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwICAgICAgIHwgICA5ICstCiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcCAgICB8ICAxNSArLQogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwICAgfCAgIDQgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwICAgIHwgICA0ICstCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcCB8ICAgNCAr
LQogLi4uL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgfCAg
MzQgKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAg
IHwgICA2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcCAg
ICAgICB8ICAxOCArLQogLi4uL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwICAg
ICAgICAgICAgfCAgMjEgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmpl
Y3QuY3BwICAgICAgIHwgIDE4ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRl
cmFsUGFyc2VyLmNwcCAgICB8ICAxMCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3B0aW9ucy5jcHAgICAgICAgICAgfCAgMTAgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAgIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcCB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAgICAgICAgfCAgIDQgKy0KIC4uLi9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcCAgIHwgICA0ICstCiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwICB8ICAgNCArLQogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmNwcCAgICAgfCAgIDYgKy0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVTZXQuY3BwICAgICAgICAgIHwgIDIzICst
CiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAgICAgICAgICAgICAgICB8ICAy
MCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcCAg
fCAgIDkgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcCAgICAg
ICAgIHwgICA3ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmggICAg
ICAgICAgICB8ICAzMCArLQogU291cmNlL1dURi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAxNDMgKysrKysrCiBTb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcCAg
ICAgICAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3Bw
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XVEYvd3RmL0pTT05WYWx1
ZXMuY3BwICAgICAgICAgICAgICAgICAgICAgIHwgIDExICstCiBTb3VyY2UvV1RGL3d0Zi9Mb2dn
ZXIuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMSArLQogU291cmNlL1dURi93dGYv
TWVkaWFUaW1lLmNwcCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XVEYv
d3RmL1VVSUQuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuY3BwICAgICAgICAgICAgICB8IDI2NSArKysrKyst
LS0tLQogU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmggICAgICAgICAgICAgICAg
fCAyOTcgKysrKysrLS0tLS0tCiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXJKU09O
LmNwcCAgICAgICAgICB8ICAzMSArLQogU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNw
cCAgICAgICAgICAgICAgICAgfCAgMzQgKy0KIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1w
bC5oICAgICAgICAgICAgICAgICAgIHwgIDE4ICstCiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRT
dHJlYW0uY3BwICAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA1MTAgKysrKysrKysrKysrKysrKysrKysr
CiAuLi4vTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50Q29udGFjdENvY29hLm1tICB8ICAg
NSArLQogLi4uL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24u
Y3BwIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRh
LmNwcCAgICB8ICAxNSArLQogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5
UGF0aC5jcHAgICAgfCAgIDQgKy0KIC4uLi9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSW5kZXhW
YWx1ZVN0b3JlLmNwcCAgIHwgICA0ICstCiAuLi4vTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NR
TGl0ZUlEQkN1cnNvci5jcHAgICB8ICAgOCArLQogLi4uL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JREJEYXRhYmFzZUluZm8uY3BwICAgfCAgIDQgKy0KIC4uLi9pbmRleGVkZGIvc2hhcmVkL0lE
Qk9iamVjdFN0b3JlSW5mby5jcHAgICAgICAgIHwgICA0ICstCiAuLi4vbWVkaWFzZXNzaW9uL1dl
Yk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwICAgICAgICB8ICAgOCArLQogLi4uL01vZHVsZXMvbWVk
aWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCAgfCAgIDggKy0KIC4uLi9Nb2R1bGVz
L3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcCAgIHwgICA0ICstCiAuLi4vTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwICAgICAgICB8ICAgNCArLQogU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAgICAgfCAgIDggKy0K
IC4uLi93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwICAgIHwgICA4
ICstCiAuLi4vTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAgICAgICB8
ICAyMyArLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwICAg
ICAgfCAgMTggKy0KIC4uLi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5jcHAgIHwgIDEwICstCiAuLi4vbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFj
Lm1tICAgICAgICB8ICAxMSArLQogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252
ZXJ0U3RyaW5ncy5jcHAgfCAgIDQgKy0KIC4uLi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhj
ZXB0aW9uSGFuZGxpbmcuY3BwIHwgIDE2ICstCiAuLi4vY29udGVudGV4dGVuc2lvbnMvQ29tYmlu
ZWRVUkxGaWx0ZXJzLmNwcCAgICAgICB8ICAgNCArLQogLi4uL1dlYkNvcmUvY29udGVudGV4dGVu
c2lvbnMvQ29udGVudEV4dGVuc2lvbi5jcHAgfCAgIDcgKy0KIC4uLi9jb250ZW50ZXh0ZW5zaW9u
cy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwIHwgICA1ICstCiAuLi4vQ29udGVudEV4dGVu
c2lvblN0eWxlU2hlZXQuY3BwICAgICAgICAgICAgICAgICB8ICAgNSArLQogU291cmNlL1dlYkNv
cmUvY29udGVudGV4dGVuc2lvbnMvVGVybS5oICAgICAgICAgICAgfCAgIDggKy0KIC4uLi9XZWJD
b3JlL2Nzcy9DU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuY3BwIHwgICA0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQmFzaWNTaGFwZXMuY3BwICAgICAgICAgICAgICB8ICAyMCArLQog
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwICAgICAgICAgfCAgIDgg
Ky0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwICAgICAgICAg
ICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwICAg
ICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXN0b21JZGVudFZhbHVlLmNw
cCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1
ZS5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVs
ZS5jcHAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFj
ZVNyY1ZhbHVlLmNwcCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dEZlYXR1cmVWYWx1ZS5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ZvbnRTdHlsZVJhbmdlVmFsdWUuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250U3R5bGVWYWx1ZS5jcHAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRm9udFZhbHVlLmNwcCAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHAgICAgICAgfCAgIDQgKy0KIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGdW5jdGlvblZhbHVlLmNwcCAgICAgICAgICAgIHwgICA0ICstCiBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAgICAgICAgICAgICB8ICAxMiAr
LQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRBdXRvUmVwZWF0VmFsdWUuY3BwICAgICAgfCAg
IDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcCAg
IHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAgICAgICAg
ICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUuY3BwICAgICAg
ICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZVJ1bGUuY3Bw
ICAgICAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVzUnVs
ZS5jcHAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0xpbmVCb3hD
b250YWluVmFsdWUuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNYXJr
dXAuY3BwICAgICAgICAgICAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
TWVkaWFSdWxlLmNwcCAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3Nz
L0NTU05hbWVzcGFjZVJ1bGUuY3BwICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYWdlUnVsZS5jcHAgICAgICAgICAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwICAgICAgICAgICB8ICAxMiArLQogU291cmNl
L1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5U291cmNlRGF0YS5jcHAgICAgICAgfCAgIDQgKy0KIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAgICAgICAgICAgICAgICAgIHwgIDE3ICst
CiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0LmNwcCAgICAgICAgICAgICB8ICAg
NCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU1NoYWRvd1ZhbHVlLmNwcCAgICAgICAgICAgICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUuY3BwICAgICAgICAgICAg
ICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAgICAgICAg
ICAgICAgICB8ICAgOSArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1cHBvcnRzUnVsZS5jcHAg
ICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUaW1pbmdGdW5jdGlv
blZhbHVlLmNwcCAgICAgIHwgIDE2ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0
LmNwcCAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU1Zhcmlh
YmxlRGF0YS5jcHAgICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9ET01D
U1NOYW1lc3BhY2UuY3BwICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3Mv
RE9NTWF0cml4UmVhZE9ubHkuY3BwICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUv
Y3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJD
b3JlL2Nzcy9Gb250RmFjZS5jcHAgICAgICAgICAgICAgICAgICAgIHwgIDEyICstCiBTb3VyY2Uv
V2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcCAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogU291
cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwICAgICAgICAgICAgICAgICAgfCAgIDQgKy0K
IFNvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAgICAgICAgIHwgICA1
ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvUmVjdC5oICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAgICAgICAgICAg
ICAgfCAgMzAgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwICAgICAg
ICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxl
LmNwcCAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIu
Y3BwICAgICAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFy
c2VyVG9rZW4uY3BwICAgICAgIHwgIDg3ICsrLS0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUGFyc2VyVG9rZW5SYW5nZS5jcHAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcCAgICB8ICAyNyArLQogU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NUb2tlbml6ZXIuY3BwICAgICAgICAgfCAgMzggKy0KIFNvdXJjZS9XZWJDb3Jl
L2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAgICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQogU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuY3BwICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjIgKy0KIFNv
dXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAgICAgICAgICAgICAgICAgICAgIHwgICA1ICst
CiBTb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwICAgICAgICAgICAgICAgICAgICAgICB8ICAg
OSArLQogU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRleHQuY3BwICAgICAgICAg
ICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgOSArLQogU291cmNlL1dlYkNvcmUvZG9tL1RleHROb2RlVHJhdmVyc2FsLmNw
cCAgICAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNv
bW1hbmQuY3BwICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcu
Y3BwICAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9IVE1M
SW50ZXJjaGFuZ2UuY3BwICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
TWFya3VwQWNjdW11bGF0b3IuY3BwICAgICAgIHwgIDE3ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1RleHRJdGVyYXRvci5jcHAgICAgICAgICAgICB8ICAxMSArLQogU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAgICAgICAgIHwgICA1ICstCiBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0gICAgICB8ICAgOCArLQogU291
cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tICAgICAgfCAgIDUgKy0K
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbSAgICAgICAgICAgIHwgICA1
ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAgICAgICAgICAgICAgICAgICB8
ICAyNyArLQogU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcCAgICAg
ICAgfCAgMjQgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcCAgICAgICAg
ICAgICAgIHwgICA5ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcCAg
ICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNw
cCAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xs
ZXIuY3BwICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNo
b3JFbGVtZW50LmNwcCAgICAgICAgICB8ICAxMiArLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5jcHAgICAgICAgICAgfCAgMjEgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZvbnRFbGVtZW50LmNwcCAgICAgICAgICAgIHwgICA3ICstCiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCAgICAgICAgICAgfCAgIDkgKy0KIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwICAgICAgICAgIHwgICA0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCB8ICAxMiArLQog
U291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcCAgICAgICAgICAgICAgfCAgIDUg
Ky0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAgICAgICAgIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRnJhZ21lbnRVUklQYXJzZXIuY3BwICAg
ICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3BwICAgICAgICAgICAg
ICAgICAgfCAgMTQgKy0KIC4uLi9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
Y3BwICAgICAgIHwgICA0ICstCiAuLi4vaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQmFzZS5jcHAgICB8ICAgNyArLQogLi4uL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxTb3VyY2VUcmFja2VyLmNwcCAgIHwgICA3ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MVG9rZW5pemVyLmNwcCAgICAgICB8ICAxMiArLQogU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcCAgICAgfCAgMjcgKy0KIFNvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL0J1ZmZlcmVkTGluZVJlYWRlci5jcHAgICB8ICAgOCArLQogU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcCAgICAgICAgICAgICAgIHwgICA2ICstCiBT
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAgICAgICAgICB8ICAgNSAr
LQogU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3BwICAgICAgfCAg
NjMgKystCiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAg
ICB8ICAxNyArLQogLi4uL2FnZW50cy9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3Bw
ICAgICAgfCAgMTMgKy0KIC4uLi9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2Vu
dC5jcHAgICAgIHwgICA3ICstCiAuLi4vV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkNvbnNv
bGVBZ2VudC5jcHAgICB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2lu
QWNjZXNzQ29udHJvbC5jcHAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzLmNwcCAgIHwgICA0ICstCiAuLi4vbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVTdG9yYWdlLmNwcCAgICB8ICAyNSArLQogLi4uL1dlYkNvcmUvbG9hZGVyL2Fy
Y2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAgfCAgMjUgKy0KIC4uLi9XZWJDb3JlL2xvYWRl
ci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHAgIHwgIDM0ICstCiAuLi4vV2ViQ29yZS9w
YWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcCB8ICA2NCArKy0KIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAgICAgICAgICAgICAgICAgICB8ICAgNCArLQog
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwICAgICAgICAgICAgICAgICAgfCAgIDUg
Ky0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwICAgICAgICAgICAgIHwg
ICA3ICstCiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5jcHAg
ICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuY3BwICAg
ICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RUcmlnZ2Vy
LmNwcCAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJp
dHlQb2xpY3kuY3BwICB8ICAgOSArLQogLi4uL3BhZ2Uvc2Nyb2xsaW5nL0F4aXNTY3JvbGxTbmFw
T2Zmc2V0cy5jcHAgICAgICAgfCAgIDggKy0KIC4uLi9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdD
b29yZGluYXRvci5jcHAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9E
ZWNpbWFsLmNwcCAgICAgICAgICAgICAgICB8ICAxMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRmlsZVN5c3RlbS5jcHAgICAgICAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BPREludGVydmFsLmggICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QT0RSZWRCbGFja1RyZWUuaCAgICAgICAgICB8ICAgNSArLQogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVVJMLmNwcCAgICAgICAgICAgICAgICAgICAgfCAgMTggKy0KIC4uLi9X
ZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5jcHAgIHwgICA1ICstCiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcCAgICB8ICAgNCAr
LQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9Vc2VyQWdlbnRHTGliLmNwcCAgICAgfCAg
IDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcCAgICAgICAg
IHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9y
LmNwcCB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2Nh
ZGUuY3BwICAgfCAgIDQgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9Gb250VGFnZ2VkU2V0dGlu
Z3MuY3BwICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0xheWVyLmNwcCB8ICAgNCArLQogLi4uL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQVZGLmNwcCAgICAgfCAgMTMgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9jYS9U
aWxlQ29udHJvbGxlci5jcHAgICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9UaWxlR3JpZC5jcHAgICB8ICAgNCArLQogLi4uL2dyYXBoaWNzL2NhL3dp
bi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwICAgICAgICAgfCAgIDQgKy0KIC4uLi9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAgIHwgIDEwICstCiAuLi4vb3Blbmds
L0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcCAgICAgICB8ICAxMSArLQogLi4uL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAgfCAgMTUgKy0KIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWxlY3Rpb25EYXRhLmNwcCAgICAgIHwgICA1ICst
CiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSAgICAgICB8ICAg
NCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbSAgICAg
fCAgIDYgKy0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Nyb2xsQW5pbWF0b3JNb2NrLmNw
cCAgIHwgIDE1ICstCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tC
b3guY3BwICB8ICAgOSArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFy
c2Vycy5jcHAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTUlN
RUhlYWRlci5jcHAgICAgIHwgIDEzICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Byb3h5U2VydmVyLmNwcCAgICB8ICAgNCArLQogLi4uL25ldHdvcmsvY3VybC9Db29raWVKYXJD
dXJsRGF0YWJhc2UuY3BwICAgICAgICAgfCAgIDQgKy0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL0Nvb2tpZUphck1hYy5tbSAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5jcHAgICAgfCAgMjYgKy0KIC4uLi9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmggIHwgICA4ICstCiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxlLmNwcCAgICB8ICAyMCArLQogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwICAgfCAgIDQgKy0K
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcCAgICAgIHwgIDEz
ICstCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VzZXJEZWZpbmVkLmNwcCB8
ICAgNCArLQogLi4uL3BsYXRmb3JtL3ZyL29wZW52ci9WUlBsYXRmb3JtRGlzcGxheU9wZW5WUi5j
cHAgfCAgIDUgKy0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNX
aW4uY3BwIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vVXNlckFnZW50V2lu
LmNwcCAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRo
ZW1lV1BFLmNwcCAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5
cGUuY3BwICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcCAgICAgIHwgICA5ICstCiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAgICAgICAgICAgICB8ICAyMyArLQogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lR3RrLmNwcCAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbSAgICAgICAgIHwgIDEwICstCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwICAgICAgICB8ICAgNSArLQog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwICAgICAgfCAgIDgg
Ky0KIC4uLi9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5jcHAgICAgICAgIHwg
ICA1ICstCiAuLi4vcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTWF0aE1MLmNw
cCB8ICAgNSArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3BwICAg
ICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmNw
cCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFN0cmluZ0J1aWxk
ZXIuY3BwICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRp
ZXMuY3BwICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExp
c3RWYWx1ZXMuY3BwICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3Ry
aW5nTGlzdFZhbHVlcy5jcHAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RyYW5zZm9ybUxpc3RWYWx1ZXMuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5jcHAgICAgICAgICAgIHwgIDIwICstCiBTb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oICB8ICAgOCArLQogU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwICAgICAgICAgICAgICAgfCAgNjQgKy0tCiBTb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAgICB8ICAxMCArLQog
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwICAgICAgfCAgIDQg
Ky0KIFNvdXJjZS9XZWJDb3JlL3htbC9YTUxFcnJvcnMuY3BwICAgICAgICAgICAgICAgICAgIHwg
ICA3ICstCiBTb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwICAgICAgICAgICAg
ICB8ICAxNSArLQogU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmggICAgICAgICAg
ICAgICAgfCAgIDcgKy0KIFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEZ1bmN0aW9ucy5jcHAgICAg
ICAgICAgICAgIHwgIDIxICstCiBTb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhz
bHQuY3BwICAgICAgICB8ICAxNCArLQogLi4uL3htbC9wYXJzZXIvQ2hhcmFjdGVyUmVmZXJlbmNl
UGFyc2VySW5saW5lcy5oICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbkhvc3Qu
Y3BwICAgICAgICAgICAgICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0OSArKwogLi4uL05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAgICAgfCAgIDQgKy0KIC4uLi9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcCAgIHwgIDE4ICstCiAuLi4vTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlS2V5LmNwcCAgICAgICB8ICAgNCArLQogLi4uL2NhcHR1
cmUvTmV0d29ya0NhcHR1cmVNYW5hZ2VyLmNwcCAgICAgICAgICAgICAgfCAgIDYgKy0KIC4uLi9O
ZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHAgICAgIHwgICA0ICstCiAu
Li4vU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIvSURCVXRpbGl0aWVzLmNwcCAgICB8ICAgNCAr
LQogU291cmNlL1dlYktpdC9TaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5jcHAgICAgICAgfCAg
IDQgKy0KIC4uLi9OZXRzY2FwZS91bml4L05ldHNjYXBlUGx1Z2luTW9kdWxlVW5peC5jcHAgICAg
IHwgICA0ICstCiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcCAgICAg
ICAgICB8ICAgNyArLQogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJTY3JpcHQu
Y3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVc2VyU3R5
bGVTaGVldC5jcHAgIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRXZWJWaWV3LmNwcCB8ICAgOSArLQogLi4uL1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVy
ZUNvbnRyb2xsZXIuY3BwICAgICAgfCAgIDYgKy0KIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkJhY2tGb3J3YXJkTGlzdC5jcHAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHAgICAgICAgICB8ICAgNSArLQogU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCAgICAgICAgfCAgIDUgKy0KIC4uLi9VSVByb2Nlc3Mv
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcCAgIHwgIDIwICstCiAuLi4vV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeS5jcHAgICAgICAgICB8ICAzMyArLQogLi4uL0lu
amVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYlBhZ2UuY3BwICAgICAgfCAgMTAgKy0KIC4u
Li9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcCAgICAgIHwgICA0ICst
CiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCAgICB8ICAg
NCArLQogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwICAgICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgIHwgIDEyICsKIC4uLi9tYWMvV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubW0gICAg
ICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nlc3NpYmxlQmFzZS5j
cHAgICAgICAgICB8ICAgNSArLQogU291cmNlL1dlYktpdExlZ2FjeS93aW4vUGx1Z2lucy9QbHVn
aW5TdHJlYW0uY3BwICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFN0
YXRpc3RpY3MuY3BwICAgICAgIHwgICA3ICstCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICA3OCArKysrCiBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9Dcm9zc1RocmVhZFRhc2suY3BwICB8ICAgNCArLQogVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAgICAgfCAgOTIgKystLQogVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAgICAgICAgfCAgODAgKystLQogLi4uL1Rl
c3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwICAgICAgICAgICAgfCAgODYgKystLQog
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcCAgfCAgMzcg
Ky0KIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Mb2dnaW5nLmNwcCAgICAgIHwg
IDMwICstCiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVGV4dENvZGVjLmNwcCAg
ICB8ICAgNCArLQogLi4uL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEF1dG9tYXRpb25TZXNzaW9uLmNw
cCAgICAgfCAgIDkgKy0KIC4uLi9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0
LmNwcCAgICAgIHwgICA0ICstCiBUb29scy9UZXN0V2ViS2l0QVBJL1dURlN0cmluZ1V0aWxpdGll
cy5oICAgICAgICAgICB8ICAgNCArLQogLi4uL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZS5jcHAgICAgICAgICAgfCAxOTYgKysrKysrLS0KIC4uLi9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIHwgIDE4ICstCiAuLi4vYXRrL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnRBdGsuY3BwICAgICAgICAgICAgICB8ICAyNCArLQogVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgICAgICAgICAgfCAgMTUgKy0KIFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwICAgICAgICAgIHwgICA5ICstCiAzMTIgZmls
ZXMgY2hhbmdlZCwgMzY5MCBpbnNlcnRpb25zKCspLCAxMzQ4IGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcAppbmRleCAwMjVlYmE0Li41ZWRm
NjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCkBAIC0z
MTQsNyArMzE0LDkgQEAgSlNTdHJpbmdSZWYgSlNDb250ZXh0Q3JlYXRlQmFja3RyYWNlKEpTQ29u
dGV4dFJlZiBjdHgsIHVuc2lnbmVkIG1heFN0YWNrU2l6ZSkKICAgICBCYWNrdHJhY2VGdW5jdG9y
IGZ1bmN0b3IoYnVpbGRlciwgbWF4U3RhY2tTaXplKTsKICAgICBmcmFtZS0+aXRlcmF0ZShmdW5j
dG9yKTsKIAotICAgIHJldHVybiBPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKGJ1aWxkZXIudG9TdHJp
bmcoKSkubGVha1JlZigpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuIE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUoKnN0cmluZykubGVha1Jl
ZigpOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgSlNHbG9iYWxDb250ZXh0R2V0UmVtb3RlSW5z
cGVjdGlvbkVuYWJsZWQoSlNHbG9iYWxDb250ZXh0UmVmIGN0eCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3Bw
CmluZGV4IDYzN2IzMDQuLjE2NTI4MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS90ZXN0cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcApAQCAtMTk0LDIy
ICsxOTQsMjUgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgICAgICAgICAgc2Ny
aXB0QnVpbGRlci5hcHBlbmROdW1iZXIodGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQu
c2Vjb25kcygpKTsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSBi
cmVhazsgfSB9IGZvbygpOyIpOwogCi0gICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBK
U1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkudXRm
OCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOwotICAgICAgICAg
ICAgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKLSAgICAgICAgICAg
IGF1dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwotICAgICAgICAg
ICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEs
ICZleGNlcHRpb24pOwotICAgICAgICAgICAgYXV0byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3Vy
cmVudFRocmVhZCgpOwotCi0gICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8
IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiBzaG91bGRUZXJtaW5hdGVDYWxs
YmFja1dhc0NhbGxlZCkKLSAgICAgICAgICAgICAgICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCB0
aW1lZCBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAg
IGVsc2UgewotICAgICAgICAgICAgICAgIGlmICgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gdGlt
ZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpCi0gICAgICAgICAgICAgICAgICAgIHByaW50
ZigiRkFJTDogJXMgc2NyaXB0IGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVy
T3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxi
YWNrV2FzQ2FsbGVkKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlw
dCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7
Ci0gICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGlmIChhdXRvIHN0cmluZyA9IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAg
ICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgZXhjZXB0aW9uID0g
bnVsbHB0cjsKKyAgICAgICAgICAgICAgICBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxl
ZCA9IGZhbHNlOworICAgICAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6Zm9y
Q3VycmVudFRocmVhZCgpOworICAgICAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4
dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKKyAgICAgICAgICAg
ICAgICBhdXRvIGVuZFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CisKKyAgICAg
ICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9n
U2hvdWxkSGF2ZUZpcmVkKSAmJiBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKKyAg
ICAgICAgICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiAlcyBzY3JpcHQgdGltZWQgb3V0IGFzIGV4
cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICAgICAgICAgIGlmICgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFmdGVy
V2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYo
IkZBSUw6ICVzIHNjcmlwdCBkaWQgbm90IHRpbWUgb3V0IGFzIGV4cGVjdGVkLlxuIiwgdGllck9w
dGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAgIGlmICghc2hvdWxkVGVybWluYXRlQ2Fs
bGJhY2tXYXNDYWxsZWQpCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVz
IHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIiwgdGllck9wdGlvbnMu
dGllcik7CisgICAgICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAg
ICAgICAgIAogICAgICAgICAgICAgaWYgKCFleGNlcHRpb24pIHsKICAgICAgICAgICAgICAgICBw
cmludGYoIkZBSUw6ICVzIFRlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24gd2FzIG5vdCB0aHJv
d24uXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKQEAgLTIzNywyMiArMjQwLDI1IEBAIGludCB0ZXN0
RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiICAgIHJldHVybiByZWN1cnNlKGkgKyAxKTsgfSIpOwogICAgICAgICAgICAgc2NyaXB0
QnVpbGRlci5hcHBlbmRMaXRlcmFsKCJyZWN1cnNlKDApOyIpOwogCi0gICAgICAgICAgICBKU1N0
cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzY3JpcHRCdWls
ZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBleGNlcHRpb24gPSBu
dWxscHRyOwotICAgICAgICAgICAgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQgPSBm
YWxzZTsKLSAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRo
cmVhZCgpOwotICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51
bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOwotICAgICAgICAgICAgYXV0byBlbmRUaW1l
ID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwotCi0gICAgICAgICAgICBpZiAoKChlbmRU
aW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiBz
aG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKLSAgICAgICAgICAgICAgICBwcmludGYo
IlBBU1M6ICVzIHNjcmlwdCB3aXRoIGluZmluaXRlIHRhaWwgY2FsbHMgdGltZWQgb3V0IGFzIGV4
cGVjdGVkIC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRv
Z1Nob3VsZEhhdmVGaXJlZCkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBz
Y3JpcHQgd2l0aCBpbmZpbml0ZSB0YWlsIGNhbGxzIGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0
ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFRl
cm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZB
SUw6ICVzIHNjcmlwdCB3aXRoIGluZmluaXRlIHRhaWwgY2FsbHMnIHRpbWVvdXQgY2FsbGJhY2sg
d2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBm
YWlsZWQgPSB0cnVlOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5n
ID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgSlNTdHJpbmdS
ZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyaW5nLT51dGY4KCku
ZGF0YSgpKTsKKyAgICAgICAgICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOworICAgICAgICAg
ICAgICAgIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgICAg
ICAgICAgICAgYXV0byBzdGFydFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7Cisg
ICAgICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIs
IG51bGxwdHIsIDEsICZleGNlcHRpb24pOworICAgICAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9
IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKworICAgICAgICAgICAgICAgIGlmICgoKGVu
ZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpICYm
IHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQorICAgICAgICAgICAgICAgICAgICBw
cmludGYoIlBBU1M6ICVzIHNjcmlwdCB3aXRoIGluZmluaXRlIHRhaWwgY2FsbHMgdGltZWQgb3V0
IGFzIGV4cGVjdGVkIC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgIGVs
c2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRp
bWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKQorICAgICAgICAgICAgICAgICAgICAgICAg
cHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgd2l0aCBpbmZpbml0ZSB0YWlsIGNhbGxzIGRpZCBub3Qg
dGltZSBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHdpdGggaW5maW5pdGUgdGFp
bCBjYWxscycgdGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25z
LnRpZXIpOworICAgICAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAg
ICAgICAgICAKICAgICAgICAgICAgIGlmICghZXhjZXB0aW9uKSB7CiAgICAgICAgICAgICAgICAg
cHJpbnRmKCJGQUlMOiAlcyBUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uIHdhcyBub3QgdGhy
b3duLlxuIiwgdGllck9wdGlvbnMudGllcik7CkBAIC0yNzMsMjEgKzI3OSwyNCBAQCBpbnQgdGVz
dEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZE51
bWJlcih0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZC5zZWNvbmRzKCkpOwogICAgICAg
ICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpIGJyZWFrOyB9IH0gY2F0Y2goZSkg
eyB9IH0gZm9vKCk7Iik7CiAKLSAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKLSAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgICAgICBz
aG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOworICAgICAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAg
ICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3Ry
aW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICBleGNlcHRpb24gPSBudWxscHRy
OworICAgICAgICAgICAgICAgIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkID0gZmFs
c2U7CiAKLSAgICAgICAgICAgIGF1dG8gc3RhcnRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRo
cmVhZCgpOwotICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51
bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOwotICAgICAgICAgICAgYXV0byBlbmRUaW1l
ID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAgICAgICAgICAgIGF1dG8gc3Rh
cnRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAgICAgICAgICAgIEpT
RXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhj
ZXB0aW9uKTsKKyAgICAgICAgICAgICAgICBhdXRvIGVuZFRpbWUgPSBDUFVUaW1lOjpmb3JDdXJy
ZW50VGhyZWFkKCk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICgoKGVuZFRpbWUgLSBz
dGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSB8fCAhc2hvdWxk
VGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpIHsKLSAgICAgICAgICAgICAgICBpZiAoISgoZW5k
VGltZSAtIHN0YXJ0VGltZSkgPCB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkpCi0g
ICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IGRpZCBub3QgdGltZSBv
dXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBp
ZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQotICAgICAgICAgICAgICAgICAg
ICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVk
LlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsK
LSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1l
KSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgfHwgIXNob3VsZFRlcm1pbmF0
ZUNhbGxiYWNrV2FzQ2FsbGVkKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghKChlbmRUaW1l
IC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IGRpZCBub3QgdGltZSBv
dXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKCFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgY2FsbGJhY2sgd2FzIG5v
dCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICAgICAgZmFp
bGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UKKyAgICAg
ICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoZXhjZXB0
aW9uKQogICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgVGVybWluYXRlZEV4ZWN1dGlv
bkV4Y2VwdGlvbiB3YXMgbm90IGNhdGNoYWJsZSBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25z
LnRpZXIpOwpAQCAtMzA5LDI0ICszMTgsMjcgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQo
KQogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCJmdW5jdGlvbiBmb28o
KSB7IHZhciBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOyB3aGlsZSAodHJ1ZSkgeyBmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKyk7IGlmIChjdXJyZW50Q1BVVGltZSgpIC0gc3RhcnRU
aW1lID4gIik7CiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZE51bWJlcih0aW1lQWZ0
ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZC5zZWNvbmRzKCkpOwogICAgICAgICAgICAgc2NyaXB0
QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpIGJyZWFrOyB9IH0gZm9vKCk7Iik7Ci0gICAgICAgICAg
ICAKLSAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAg
ICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgICAgICBzaG91bGRUZXJtaW5hdGVD
YWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOwogCi0gICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9
IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLSAgICAgICAgICAgIEpTRXZhbHVhdGVTY3Jp
cHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKLSAg
ICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKKyAg
ICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKSkgewor
ICAgICAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgZXhjZXB0
aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dh
c0NhbGxlZCA9IGZhbHNlOworCisgICAgICAgICAgICAgICAgYXV0byBzdGFydFRpbWUgPSBDUFVU
aW1lOjpmb3JDdXJyZW50VGhyZWFkKCk7CisgICAgICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlw
dChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOworICAg
ICAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsK
ICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCB0
aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkgJiYgIXNob3VsZFRlcm1pbmF0ZUNhbGxi
YWNrV2FzQ2FsbGVkKQotICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IHRp
bWVkIG91dCBhcyBleHBlY3RlZCB3aGVuIG5vIGNhbGxiYWNrIGlzIHNwZWNpZmllZC5cbiIsIHRp
ZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYg
KChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJl
ZCkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgZGlkIG5vdCB0
aW1lIG91dCBhcyBleHBlY3RlZCB3aGVuIG5vIGNhbGxiYWNrIGlzIHNwZWNpZmllZC5cbiIsIHRp
ZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAg
ICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgY2FsbGVkIHN0YWxlIGNhbGxiYWNrIGZ1bmN0aW9u
LlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsK
LSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1l
KSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiAhc2hvdWxkVGVybWluYXRl
Q2FsbGJhY2tXYXNDYWxsZWQpCisgICAgICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMg
c2NyaXB0IHRpbWVkIG91dCBhcyBleHBlY3RlZCB3aGVuIG5vIGNhbGxiYWNrIGlzIHNwZWNpZmll
ZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAg
ICAgICAgICAgICAgICBpZiAoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNo
ZG9nU2hvdWxkSGF2ZUZpcmVkKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlM
OiAlcyBzY3JpcHQgZGlkIG5vdCB0aW1lIG91dCBhcyBleHBlY3RlZCB3aGVuIG5vIGNhbGxiYWNr
IGlzIHNwZWNpZmllZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCBj
YWxsZWQgc3RhbGUgY2FsbGJhY2sgZnVuY3Rpb24uXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKKyAg
ICAgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgCiAg
ICAgICAgICAgICBpZiAoIWV4Y2VwdGlvbikgewogICAgICAgICAgICAgICAgIHByaW50ZigiRkFJ
TDogJXMgVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbiB3YXMgbm90IHRocm93bi5cbiIsIHRp
ZXJPcHRpb25zLnRpZXIpOwpAQCAtMzQ3LDIzICszNTksMjYgQEAgaW50IHRlc3RFeGVjdXRpb25U
aW1lTGltaXQoKQogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmROdW1iZXIodGltZUFm
dGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQuc2Vjb25kcygpKTsKICAgICAgICAgICAgIHNjcmlw
dEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSBicmVhazsgfSB9IGZvbygpOyIpOwogCi0gICAgICAg
ICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhz
Y3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBleGNl
cHRpb24gPSBudWxscHRyOwotICAgICAgICAgICAgY2FuY2VsVGVybWluYXRlQ2FsbGJhY2tXYXND
YWxsZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHNjcmlwdEJ1aWxk
ZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpT
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAg
ICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBjYW5jZWxU
ZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOwogCi0gICAgICAgICAgICBhdXRvIHN0
YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLSAgICAgICAgICAgIEpTRXZh
bHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0
aW9uKTsKLSAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJl
YWQoKTsKKyAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJl
bnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNj
cmlwdCwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAg
YXV0byBlbmRUaW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOwogICAgICAgICAgICAg
Ci0gICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRj
aGRvZ1Nob3VsZEhhdmVGaXJlZCkgJiYgY2FuY2VsVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQg
JiYgIWV4Y2VwdGlvbikKLSAgICAgICAgICAgICAgICBwcmludGYoIlBBU1M6ICVzIHNjcmlwdCB0
aW1lb3V0IHdhcyBjYW5jZWxsZWQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsK
LSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFy
dFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpIHx8IGV4Y2VwdGlvbikK
LSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgdGltZW91dCB3YXMg
bm90IGNhbmNlbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgICAgIGlm
ICghY2FuY2VsVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCi0gICAgICAgICAgICAgICAgICAg
IHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQu
XG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOwot
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUp
ID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiBjYW5jZWxUZXJtaW5hdGVD
YWxsYmFja1dhc0NhbGxlZCAmJiAhZXhjZXB0aW9uKQorICAgICAgICAgICAgICAgICAgICBwcmlu
dGYoIlBBU1M6ICVzIHNjcmlwdCB0aW1lb3V0IHdhcyBjYW5jZWxsZWQgYXMgZXhwZWN0ZWQuXG4i
LCB0aWVyT3B0aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPCB0aW1lQWZ0ZXJXYXRjaGRvZ1No
b3VsZEhhdmVGaXJlZCkgfHwgZXhjZXB0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJp
bnRmKCJGQUlMOiAlcyBzY3JpcHQgdGltZW91dCB3YXMgbm90IGNhbmNlbGxlZC5cbiIsIHRpZXJP
cHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoIWNhbmNlbFRlcm1pbmF0ZUNh
bGxiYWNrV2FzQ2FsbGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAl
cyBzY3JpcHQgdGltZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25z
LnRpZXIpOworICAgICAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAg
ICAgICAgICAKICAgICAgICAgICAgIGlmIChleGNlcHRpb24pIHsKICAgICAgICAgICAgICAgICBw
cmludGYoIkZBSUw6ICVzIFVuZXhwZWN0ZWQgVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbiB0
aHJvd24uXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKQEAgLTM4NCwzMyArMzk5LDM2IEBAIGludCB0
ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5k
TnVtYmVyKG1heEJ1c3lMb29wVGltZS5zZWNvbmRzKCkpOyAvLyBpbiBzZWNvbmRzLgogICAgICAg
ICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpIGJyZWFrOyB9IH0gZm9vKCk7Iik7
CiAKLSAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAg
ICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgICAgICBleHRlbmRUZXJtaW5hdGVD
YWxsYmFja0NhbGxlZCA9IDA7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzY3JpcHRC
dWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQg
PSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOwor
ICAgICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7CisgICAgICAgICAgICAgICAgZXh0
ZW5kVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQgPSAwOwogCi0gICAgICAgICAgICBhdXRvIHN0YXJ0
VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLSAgICAgICAgICAgIEpTRXZhbHVh
dGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9u
KTsKLSAgICAgICAgICAgIGF1dG8gZW5kVGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQo
KTsKLSAgICAgICAgICAgIGF1dG8gZGVsdGFUaW1lID0gZW5kVGltZSAtIHN0YXJ0VGltZTsKKyAg
ICAgICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQo
KTsKKyAgICAgICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNjcmlwdCwgbnVs
bHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgYXV0byBlbmRU
aW1lID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpOworICAgICAgICAgICAgICAgIGF1dG8g
ZGVsdGFUaW1lID0gZW5kVGltZSAtIHN0YXJ0VGltZTsKICAgICAgICAgICAgIAotICAgICAgICAg
ICAgaWYgKChkZWx0YVRpbWUgPj0gdGltZUJlZm9yZUV4dGVuZGVkRGVhZGxpbmUpICYmIChkZWx0
YVRpbWUgPCB0aW1lQWZ0ZXJFeHRlbmRlZERlYWRsaW5lKSAmJiAoZXh0ZW5kVGVybWluYXRlQ2Fs
bGJhY2tDYWxsZWQgPT0gMikgJiYgZXhjZXB0aW9uKQotICAgICAgICAgICAgICAgIHByaW50Zigi
UEFTUzogJXMgc2NyaXB0IHRpbWVvdXQgd2FzIGV4dGVuZGVkIGFzIGV4cGVjdGVkLlxuIiwgdGll
ck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAo
ZGVsdGFUaW1lIDwgdGltZUJlZm9yZUV4dGVuZGVkRGVhZGxpbmUpCi0gICAgICAgICAgICAgICAg
ICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgd2FzIG5vdCBleHRlbmRlZCBhcyBl
eHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAgICAgICAgICAgICAgIGVsc2UgaWYg
KGRlbHRhVGltZSA+PSB0aW1lQWZ0ZXJFeHRlbmRlZERlYWRsaW5lKQotICAgICAgICAgICAgICAg
ICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCBkaWQgbm90IHRpbWVvdXQuXG4iLCB0aWVyT3B0
aW9ucy50aWVyKTsKKyAgICAgICAgICAgICAgICBpZiAoKGRlbHRhVGltZSA+PSB0aW1lQmVmb3Jl
RXh0ZW5kZWREZWFkbGluZSkgJiYgKGRlbHRhVGltZSA8IHRpbWVBZnRlckV4dGVuZGVkRGVhZGxp
bmUpICYmIChleHRlbmRUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA9PSAyKSAmJiBleGNlcHRpb24p
CisgICAgICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IHRpbWVvdXQgd2Fz
IGV4dGVuZGVkIGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CisgICAgICAgICAg
ICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChkZWx0YVRpbWUgPCB0aW1lQmVm
b3JlRXh0ZW5kZWREZWFkbGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJ
TDogJXMgc2NyaXB0IHRpbWVvdXQgd2FzIG5vdCBleHRlbmRlZCBhcyBleHBlY3RlZC5cbiIsIHRp
ZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChkZWx0YVRpbWUg
Pj0gdGltZUFmdGVyRXh0ZW5kZWREZWFkbGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHBy
aW50ZigiRkFJTDogJXMgc2NyaXB0IGRpZCBub3QgdGltZW91dC5cbiIsIHRpZXJPcHRpb25zLnRp
ZXIpOwogICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmIChleHRlbmRUZXJtaW5h
dGVDYWxsYmFja0NhbGxlZCA8IDEpCi0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDog
JXMgc2NyaXB0IHRpbWVvdXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9u
cy50aWVyKTsKLSAgICAgICAgICAgICAgICBpZiAoZXh0ZW5kVGVybWluYXRlQ2FsbGJhY2tDYWxs
ZWQgPCAyKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1l
b3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkIGFmdGVyIHRpbWVvdXQgZXh0ZW5zaW9uLlxuIiwg
dGllck9wdGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAgIGlmIChleHRlbmRUZXJtaW5h
dGVDYWxsYmFja0NhbGxlZCA8IDEpCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZB
SUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIiwgdGllck9w
dGlvbnMudGllcik7CisgICAgICAgICAgICAgICAgICAgIGlmIChleHRlbmRUZXJtaW5hdGVDYWxs
YmFja0NhbGxlZCA8IDIpCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVz
IHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkIGFmdGVyIHRpbWVvdXQgZXh0
ZW5zaW9uLlxuIiwgdGllck9wdGlvbnMudGllcik7CiAgICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgaWYgKCFleGNlcHRpb24pCi0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJ
TDogJXMgVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbiB3YXMgbm90IHRocm93biBkdXJpbmcg
dGltZW91dCBleHRlbnNpb24gdGVzdC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAg
ICAgICAgICAgICBpZiAoIWV4Y2VwdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50
ZigiRkFJTDogJXMgVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbiB3YXMgbm90IHRocm93biBk
dXJpbmcgdGltZW91dCBleHRlbnNpb24gdGVzdC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwogICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7Ci0gICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAg
fQogCiAjaWYgSEFWRShNQUNIX0VYQ0VQVElPTlMpCkBAIC00MjUsNTYgKzQ0Myw2MiBAQCBpbnQg
dGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVu
ZE51bWJlcih0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZC5zZWNvbmRzKCkpOwogICAg
ICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpIGJyZWFrOyB9IH0gZm9vKCk7
Iik7CiAKLSAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAg
ICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgICAgICBkaXNwYXRjaFRlcm1p
bmF0ZUNhbGxiYWNrQ2FsbGVkID0gZmFsc2U7Ci0KLSAgICAgICAgICAgIC8vIFdlIGhhdmUgdG8g
ZG8gdGhpcyBzaW5jZSBibG9ja3MgY2FuIG9ubHkgY2FwdHVyZSB0aGluZ3MgYXMgY29uc3QuCi0g
ICAgICAgICAgICBKU0dsb2JhbENvbnRleHRSZWYmIGNvbnRleHRSZWYgPSBjb250ZXh0OwotICAg
ICAgICAgICAgSlNTdHJpbmdSZWYmIHNjcmlwdFJlZiA9IHNjcmlwdDsKLSAgICAgICAgICAgIEpT
VmFsdWVSZWYmIGV4Y2VwdGlvblJlZiA9IGV4Y2VwdGlvbjsKLQotICAgICAgICAgICAgTG9jayBz
eW5jTG9jazsKLSAgICAgICAgICAgIExvY2smIHN5bmNMb2NrUmVmID0gc3luY0xvY2s7Ci0gICAg
ICAgICAgICBDb25kaXRpb24gc3luY2hyb25pemU7Ci0gICAgICAgICAgICBDb25kaXRpb24mIHN5
bmNocm9uaXplUmVmID0gc3luY2hyb25pemU7Ci0gICAgICAgICAgICBib29sIGRpZFN5bmNocm9u
aXplID0gZmFsc2U7Ci0gICAgICAgICAgICBib29sJiBkaWRTeW5jaHJvbml6ZVJlZiA9IGRpZFN5
bmNocm9uaXplOwotCi0gICAgICAgICAgICBTZWNvbmRzIHN0YXJ0VGltZTsKLSAgICAgICAgICAg
IFNlY29uZHMgZW5kVGltZTsKLQotICAgICAgICAgICAgU2Vjb25kcyYgc3RhcnRUaW1lUmVmID0g
c3RhcnRUaW1lOwotICAgICAgICAgICAgU2Vjb25kcyYgZW5kVGltZVJlZiA9IGVuZFRpbWU7Ci0K
LSAgICAgICAgICAgIGRpc3BhdGNoX2dyb3VwX3QgZ3JvdXAgPSBkaXNwYXRjaF9ncm91cF9jcmVh
dGUoKTsKLSAgICAgICAgICAgIGRpc3BhdGNoX2dyb3VwX2FzeW5jKGdyb3VwLCBkaXNwYXRjaF9n
ZXRfZ2xvYmFsX3F1ZXVlKDAsIDApLCBeewotICAgICAgICAgICAgICAgIHN0YXJ0VGltZVJlZiA9
IENQVVRpbWU6OmZvckN1cnJlbnRUaHJlYWQoKTsKLSAgICAgICAgICAgICAgICBKU0V2YWx1YXRl
U2NyaXB0KGNvbnRleHRSZWYsIHNjcmlwdFJlZiwgbnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2Vw
dGlvblJlZik7Ci0gICAgICAgICAgICAgICAgZW5kVGltZVJlZiA9IENQVVRpbWU6OmZvckN1cnJl
bnRUaHJlYWQoKTsKLSAgICAgICAgICAgICAgICBhdXRvIGxvY2tlciA9IFdURjo6aG9sZExvY2so
c3luY0xvY2tSZWYpOwotICAgICAgICAgICAgICAgIGRpZFN5bmNocm9uaXplUmVmID0gdHJ1ZTsK
LSAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZVJlZi5ub3RpZnlBbGwoKTsKLSAgICAgICAgICAg
IH0pOwotCi0gICAgICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKHN5bmNMb2NrKTsKLSAg
ICAgICAgICAgIHN5bmNocm9uaXplLndhaXQoc3luY0xvY2ssIFsmXSB7IHJldHVybiBkaWRTeW5j
aHJvbml6ZTsgfSk7Ci0KLSAgICAgICAgICAgIGlmICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwg
dGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpICYmIGRpc3BhdGNoVGVybWluYXRlQ2Fs
bGJhY2tDYWxsZWQpCi0gICAgICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiAlcyBzY3JpcHQgb24g
ZGlzcGF0Y2ggcXVldWUgdGltZWQgb3V0IGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGll
cik7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoKGVuZFRpbWUgLSBz
dGFydFRpbWUpID49IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKQotICAgICAgICAg
ICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCBvbiBkaXNwYXRjaCBxdWV1ZSBkaWQg
bm90IHRpbWUgb3V0IGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAg
ICAgICAgICAgaWYgKCFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKLSAgICAgICAg
ICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgb24gZGlzcGF0Y2ggcXVldWUgdGlt
ZW91dCBjYWxsYmFjayB3YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwotICAg
ICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAg
ICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhz
dHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxw
dHI7CisgICAgICAgICAgICAgICAgZGlzcGF0Y2hUZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA9IGZh
bHNlOworCisgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byBkbyB0aGlzIHNpbmNlIGJsb2Nr
cyBjYW4gb25seSBjYXB0dXJlIHRoaW5ncyBhcyBjb25zdC4KKyAgICAgICAgICAgICAgICBKU0ds
b2JhbENvbnRleHRSZWYmIGNvbnRleHRSZWYgPSBjb250ZXh0OworICAgICAgICAgICAgICAgIEpT
U3RyaW5nUmVmJiBzY3JpcHRSZWYgPSBzY3JpcHQ7CisgICAgICAgICAgICAgICAgSlNWYWx1ZVJl
ZiYgZXhjZXB0aW9uUmVmID0gZXhjZXB0aW9uOworCisgICAgICAgICAgICAgICAgTG9jayBzeW5j
TG9jazsKKyAgICAgICAgICAgICAgICBMb2NrJiBzeW5jTG9ja1JlZiA9IHN5bmNMb2NrOworICAg
ICAgICAgICAgICAgIENvbmRpdGlvbiBzeW5jaHJvbml6ZTsKKyAgICAgICAgICAgICAgICBDb25k
aXRpb24mIHN5bmNocm9uaXplUmVmID0gc3luY2hyb25pemU7CisgICAgICAgICAgICAgICAgYm9v
bCBkaWRTeW5jaHJvbml6ZSA9IGZhbHNlOworICAgICAgICAgICAgICAgIGJvb2wmIGRpZFN5bmNo
cm9uaXplUmVmID0gZGlkU3luY2hyb25pemU7CisKKyAgICAgICAgICAgICAgICBTZWNvbmRzIHN0
YXJ0VGltZTsKKyAgICAgICAgICAgICAgICBTZWNvbmRzIGVuZFRpbWU7CisKKyAgICAgICAgICAg
ICAgICBTZWNvbmRzJiBzdGFydFRpbWVSZWYgPSBzdGFydFRpbWU7CisgICAgICAgICAgICAgICAg
U2Vjb25kcyYgZW5kVGltZVJlZiA9IGVuZFRpbWU7CisKKyAgICAgICAgICAgICAgICBkaXNwYXRj
aF9ncm91cF90IGdyb3VwID0gZGlzcGF0Y2hfZ3JvdXBfY3JlYXRlKCk7CisgICAgICAgICAgICAg
ICAgZGlzcGF0Y2hfZ3JvdXBfYXN5bmMoZ3JvdXAsIGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUo
MCwgMCksIF57CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZVJlZiA9IENQVVRpbWU6OmZv
ckN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAgICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChj
b250ZXh0UmVmLCBzY3JpcHRSZWYsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb25SZWYp
OworICAgICAgICAgICAgICAgICAgICBlbmRUaW1lUmVmID0gQ1BVVGltZTo6Zm9yQ3VycmVudFRo
cmVhZCgpOworICAgICAgICAgICAgICAgICAgICBhdXRvIGxvY2tlciA9IFdURjo6aG9sZExvY2so
c3luY0xvY2tSZWYpOworICAgICAgICAgICAgICAgICAgICBkaWRTeW5jaHJvbml6ZVJlZiA9IHRy
dWU7CisgICAgICAgICAgICAgICAgICAgIHN5bmNocm9uaXplUmVmLm5vdGlmeUFsbCgpOworICAg
ICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9j
ayhzeW5jTG9jayk7CisgICAgICAgICAgICAgICAgc3luY2hyb25pemUud2FpdChzeW5jTG9jaywg
WyZdIHsgcmV0dXJuIGRpZFN5bmNocm9uaXplOyB9KTsKKworICAgICAgICAgICAgICAgIGlmICgo
KGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQp
ICYmIGRpc3BhdGNoVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQpCisgICAgICAgICAgICAgICAgICAg
IHByaW50ZigiUEFTUzogJXMgc2NyaXB0IG9uIGRpc3BhdGNoIHF1ZXVlIHRpbWVkIG91dCBhcyBl
eHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgICAgICAgICBpZiAoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IHRpbWVBZnRl
cldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRm
KCJGQUlMOiAlcyBzY3JpcHQgb24gZGlzcGF0Y2ggcXVldWUgZGlkIG5vdCB0aW1lIG91dCBhcyBl
eHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAo
IXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQorICAgICAgICAgICAgICAgICAgICAg
ICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgb24gZGlzcGF0Y2ggcXVldWUgdGltZW91dCBjYWxs
YmFjayB3YXMgbm90IGNhbGxlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOworICAgICAgICAgICAg
ICAgICAgICBmYWlsZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KICNlbmRpZgogCiAgICAg
ICAgIEpTR2xvYmFsQ29udGV4dFJlbGVhc2UoY29udGV4dCk7CiAKLSAgICAgICAgT3B0aW9uczo6
c2V0T3B0aW9ucyhzYXZlZE9wdGlvbnNCdWlsZGVyLnRvU3RyaW5nKCkuYXNjaWkoKS5kYXRhKCkp
OworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzYXZlZE9wdGlvbnNCdWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgICAgICBPcHRpb25zOjpzZXRPcHRpb25zKHN0cmluZy0+YXNjaWkoKS5kYXRh
KCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICAKICAg
ICByZXR1cm4gZmFpbGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90
ZXN0cy9QaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvdGVzdHMvUGluZ1BvbmdTdGFja092ZXJmbG93VGVzdC5jcHAKaW5kZXggMDQyYmViZi4u
MTEyMzA5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9QaW5n
UG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L3Rlc3RzL1BpbmdQb25nU3RhY2tPdmVyZmxvd1Rlc3QuY3BwCkBAIC02NCw5ICs2NCwxMiBAQCBz
dGF0aWMgYm9vbCBQaW5nUG9uZ1N0YWNrT3ZlcmZsb3dPYmplY3RfaGFzSW5zdGFuY2UoSlNDb250
ZXh0UmVmIGNvbnRleHQsIEpTT2JqZQogICAgICAgICB9CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiKTsiKTsKIAotICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZyhidWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0g
ICAgICAgIHJlc3VsdCA9IEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBOVUxMLCBO
VUxMLCAxLCBleGNlcHRpb24pOwotICAgICAgICBKU1N0cmluZ1JlbGVhc2Uoc2NyaXB0KTsKKyAg
ICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAg
ICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJp
bmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgcmVzdWx0ID0gSlNFdmFsdWF0ZVNjcmlw
dChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIsIDEsIGV4Y2VwdGlvbik7CisgICAg
ICAgICAgICBKU1N0cmluZ1JlbGVhc2Uoc2NyaXB0KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIC0tbmF0aXZlUmVjdXJzaW9uQ291bnQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NoYW5nZUxvZwppbmRleCBlMWMzZDIxLi40MzY3NmE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw5OCBAQAorMjAxOC0wNC0yNiAgSkYgQmFzdGllbiAgPGpmYmFz
dGllbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3RyaW5nQnVpbGRlciBpcyBmYWxsaWJsZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MDQ4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RyaW5nQnVpbGRl
ciBjYW4gZmFpbCB3aGVuIGFsbG9jYXRpbmcgbWVtb3J5LiBTdHJpbmdCdWlsZGVyIGlzCisgICAg
ICAgIG1vc3RseSB1c2VkIHdpdGggdXNlciBpbnB1dCwgd2hpY2ggb2Z0ZW4gbWVhbnMgdGhhdCBq
dXN0IGNyYXNoaW5nCisgICAgICAgIGlzbid0IHRoZSByaWdodCBvdXRjb21lLiBPdXIgZnV6emVy
cyBvZnRlbiBlbmNvdW50ZXIgc3VjaCB0aGluZ3MKKyAgICAgICAgZm9yIEphdmFTY3JpcHRDb3Jl
LCBhbmQgc28gZmFyIHdlJ3ZlIGFwcGxpZWQgcG9pbnQgc29sdXRpb25zLiBObworICAgICAgICBt
b3JlIQorCisgICAgICAgICogQVBJL0pTQ29udGV4dFJlZi5jcHA6CisgICAgICAgIChKU0NvbnRl
eHRDcmVhdGVCYWNrdHJhY2UpOgorICAgICAgICAqIEFQSS90ZXN0cy9FeGVjdXRpb25UaW1lTGlt
aXRUZXN0LmNwcDoKKyAgICAgICAgKHRlc3RFeGVjdXRpb25UaW1lTGltaXQpOgorICAgICAgICAq
IEFQSS90ZXN0cy9QaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcDoKKyAgICAgICAgKFBpbmdQ
b25nU3RhY2tPdmVyZmxvd09iamVjdF9oYXNJbnN0YW5jZSk6CisgICAgICAgICogZGZnL0RGR1N0
cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlN0cmVuZ3RoUmVk
dWN0aW9uUGhhc2U6OmhhbmRsZU5vZGUpOgorICAgICAgICAqIGhlYXAvSGVhcFNuYXBzaG90QnVp
bGRlci5jcHA6CisgICAgICAgIChKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXI6Ompzb24pOgorICAg
ICAgICAqIGluc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6
OkNvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZSk6CisgICAgICAgICogaW5zcGVjdG9yL0Nv
bnRlbnRTZWFyY2hVdGlsaXRpZXMuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpDb250ZW50U2Vh
cmNoVXRpbGl0aWVzOjpjcmVhdGVTZWFyY2hSZWdleFNvdXJjZSk6CisgICAgICAgICogaW50ZXJw
cmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6c3RhY2tU
cmFjZUFzU3RyaW5nKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9TdGFja1Zpc2l0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpTdGFja1Zpc2l0b3I6OkZyYW1lOjp0b1N0cmluZyBjb25zdCk6CisgICAg
ICAgICoganNjLmNwcDoKKyAgICAgICAgKHJlc29sdmVQYXRoKToKKyAgICAgICAgKGZ1bmN0aW9u
SlNDU3RhY2spOgorICAgICAgICAqIHJ1bnRpbWUvQ29uZmlnRmlsZS5jcHA6CisgICAgICAgIChK
U0M6OkNvbmZpZ0ZpbGU6OnBhcnNlKToKKyAgICAgICAgKiBydW50aW1lL0NvbnNvbGVDbGllbnQu
Y3BwOgorICAgICAgICAoSlNDOjpDb25zb2xlQ2xpZW50OjpwcmludENvbnNvbGVNZXNzYWdlKToK
KyAgICAgICAgKEpTQzo6Q29uc29sZUNsaWVudDo6cHJpbnRDb25zb2xlTWVzc2FnZVdpdGhBcmd1
bWVudHMpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwOgorICAgICAgICAo
SlNDOjpmb3JtYXREYXRlVGltZSk6CisgICAgICAgICogcnVudGltZS9FcnJvckluc3RhbmNlLmNw
cDoKKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6c2FuaXRpemVkVG9TdHJpbmcpOgorICAg
ICAgICAqIHJ1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHA6CisgICAgICAgIChKU0M6Om5vdEFG
dW5jdGlvblNvdXJjZUFwcGVuZGVyKToKKyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9uQ29uc3Ry
dWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RGdW5jdGlvblNraXBwaW5nRXZhbEVu
YWJsZWRDaGVjayk6CisgICAgICAgICogcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwOgor
ICAgICAgICAoSlNDOjpJbnRsRGF0ZVRpbWVGb3JtYXQ6OmluaXRpYWxpemVEYXRlVGltZUZvcm1h
dCk6CisgICAgICAgICogcnVudGltZS9JbnRsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6cHJp
dmF0ZVVzZUxhbmdUYWcpOgorICAgICAgICAoSlNDOjpjYW5vbmljYWxMYW5nVGFnKToKKyAgICAg
ICAgKEpTQzo6cmVtb3ZlVW5pY29kZUxvY2FsZUV4dGVuc2lvbik6CisgICAgICAgICogcnVudGlt
ZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChKU0M6OmVuY29kZSk6Cisg
ICAgICAgIChKU0M6OmRlY29kZSk6CisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNFc2NhcGUpOgor
ICAgICAgICAoSlNDOjpnbG9iYWxGdW5jVW5lc2NhcGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNP
Tk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ2lmaWVyOjpzdHJpbmdpZnkpOgorICAg
ICAgICAoSlNDOjpTdHJpbmdpZmllcjo6SG9sZGVyOjphcHBlbmROZXh0UHJvcGVydHkpOgorICAg
ICAgICAqIHJ1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkxpdGVyYWxQ
YXJzZXI8Q2hhclR5cGU+OjpMZXhlcjo6bGV4U3RyaW5nU2xvdyk6CisgICAgICAgICogcnVudGlt
ZS9PcHRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6ZHVtcE9wdGlvbnNJZk5lZWRl
ZCk6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OmR1bXBBbGxPcHRpb25zKToKKyAgICAgICAgKiBy
dW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OnJlZ0V4cFByb3RvR2V0
dGVyU291cmNlSW50ZXJuYWwpOgorICAgICAgICAqIHJ1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5j
cHA6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6OnN0YWNrVHJhY2VzQXNKU09OKToK
KyAgICAgICAgKiBydW50aW1lL1N0YWNrRnJhbWUuY3BwOgorICAgICAgICAoSlNDOjpTdGFja0Zy
YW1lOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rv
ci5jcHA6CisgICAgICAgIChKU0M6OnN0cmluZ0Zyb21Db2RlUG9pbnQpOgorICAgICAgICAqIHJ1
bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6c3Vic3RpdHV0ZUJhY2ty
ZWZlcmVuY2VzU2xvdyk6CisgICAgICAgICogcnVudGltZS9UeXBlUHJvZmlsZXIuY3BwOgorICAg
ICAgICAoSlNDOjpUeXBlUHJvZmlsZXI6OnR5cGVJbmZvcm1hdGlvbkZvckV4cHJlc3Npb25BdE9m
ZnNldCk6CisgICAgICAgICogcnVudGltZS9UeXBlU2V0LmNwcDoKKyAgICAgICAgKEpTQzo6VHlw
ZVNldDo6ZHVtcFR5cGVzIGNvbnN0KToKKyAgICAgICAgKEpTQzo6VHlwZVNldDo6dG9KU09OU3Ry
aW5nIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlU2hhcGU6OnByb3BlcnR5SGFzaCk6
CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVNoYXBlOjpzdHJpbmdSZXByZXNlbnRhdGlvbik6Cisg
ICAgICAgIChKU0M6OlN0cnVjdHVyZVNoYXBlOjp0b0pTT05TdHJpbmcgY29uc3QpOgorICAgICAg
ICAqIHRlc3RSZWdFeHAuY3BwOgorICAgICAgICAocGFyc2VSZWdFeHBMaW5lKToKKyAgICAgICAg
KHBhcnNlVGVzdExpbmUpOgorICAgICAgICAqIHRvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcDoK
KyAgICAgICAgKEpTQzo6cGFyc2VDbGF1c2UpOgorICAgICAgICAqIHdhc20vV2FzbUJCUVBsYW4u
Y3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpCQlFQbGFuOjpwcmVwYXJlKToKKyAgICAgICAgKiB5
YXJyL1lhcnJQYXJzZXIuaDoKKyAgICAgICAgKEpTQzo6WWFycjo6UGFyc2VyOjp0cnlDb25zdW1l
R3JvdXBOYW1lKToKKyAgICAgICAgKEpTQzo6WWFycjo6UGFyc2VyOjp0cnlDb25zdW1lVW5pY29k
ZVByb3BlcnR5RXhwcmVzc2lvbik6CisKIDIwMTgtMDUtMDEgIFJvYmluIE1vcmlzc2V0ICA8cm1v
cmlzc2V0QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgQ2hlY2tlZEFyaXRobWV0aWMgZm9yIGxl
bmd0aCBjb21wdXRhdGlvbiBpbiBKU0FycmF5Ojp1bnNoaWZ0Q291bnRXaXRoQW55SW5kZXhpbmdU
eXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVk
dWN0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJlbmd0aFJl
ZHVjdGlvblBoYXNlLmNwcAppbmRleCA5MWVlMWMzLi5mMWVjZWFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAK
QEAgLTM2MSw3ICszNjEsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7CiAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQobGVmdFN0cmluZyk7
CiAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQocmlnaHRTdHJpbmcpOwotICAgICAgICAg
ICAgICAgIGNvbnZlcnRUb0xhenlKU1ZhbHVlKG1fbm9kZSwgTGF6eUpTVmFsdWU6Om5ld1N0cmlu
ZyhtX2dyYXBoLCBidWlsZGVyLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgICAgICBpZiAoYXV0
byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnZl
cnRUb0xhenlKU1ZhbHVlKG1fbm9kZSwgTGF6eUpTVmFsdWU6Om5ld1N0cmluZyhtX2dyYXBoLCAq
c3RyaW5nKSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBDUkFT
SCgpOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBicmVhazsKQEAgLTM4Nyw4ICszOTAsMTAgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKHJpZ2h0U3RyaW5nKTsKICAgICAgICAgICAgIGlmICghIWV4dHJh
U3RyaW5nKQogICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGV4dHJhU3RyaW5nKTsKLQot
ICAgICAgICAgICAgY29udmVydFRvTGF6eUpTVmFsdWUobV9ub2RlLCBMYXp5SlNWYWx1ZTo6bmV3
U3RyaW5nKG1fZ3JhcGgsIGJ1aWxkZXIudG9TdHJpbmcoKSkpOworICAgICAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIGNvbnZlcnRU
b0xhenlKU1ZhbHVlKG1fbm9kZSwgTGF6eUpTVmFsdWU6Om5ld1N0cmluZyhtX2dyYXBoLCAqc3Ry
aW5nKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAg
ICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpA
QCAtODg0LDggKzg4OSwxMCBAQCBwcml2YXRlOgogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAg
ICAgICAgICAgaWYgKGxhc3RJbmRleCA8IHN0cmluZy5sZW5ndGgoKSkKICAgICAgICAgICAgICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoc3RyaW5nLCBsYXN0SW5kZXgsIHN0cmluZy5sZW5ndGgoKSAt
IGxhc3RJbmRleCk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgbV9ub2RlLT5j
b252ZXJ0VG9MYXp5SlNDb25zdGFudChtX2dyYXBoLCBMYXp5SlNWYWx1ZTo6bmV3U3RyaW5nKG1f
Z3JhcGgsIGJ1aWxkZXIudG9TdHJpbmcoKSkpOworICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgbV9ub2RlLT5j
b252ZXJ0VG9MYXp5SlNDb25zdGFudChtX2dyYXBoLCBMYXp5SlNWYWx1ZTo6bmV3U3RyaW5nKG1f
Z3JhcGgsICpzdHJpbmcpKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgIENSQVNIKCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIG1fbm9kZS0+b3JpZ2lu
ID0gb3JpZ2luOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFNu
YXBzaG90QnVpbGRlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU25hcHNo
b3RCdWlsZGVyLmNwcAppbmRleCA2NWY2MzNmLi5lMWFhZDFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3RCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3RCdWlsZGVyLmNwcApAQCAtMzg3LDcgKzM4
Nyw5IEBAIFN0cmluZyBIZWFwU25hcHNob3RCdWlsZGVyOjpqc29uKHN0ZDo6ZnVuY3Rpb248Ym9v
bCAoY29uc3QgSGVhcFNuYXBzaG90Tm9kZSYpPiBhCiAgICAganNvbi5hcHBlbmQoJ10nKTsKIAog
ICAgIGpzb24uYXBwZW5kKCd9Jyk7Ci0gICAgcmV0dXJuIGpzb24udG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBqc29uLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcAppbmRleCA1Y2ZiMDRk
Li43MWU0ZmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0Nv
bnNvbGVNZXNzYWdlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0Nv
bnNvbGVNZXNzYWdlLmNwcApAQCAtMTE1LDcgKzExNSwxMCBAQCBDb25zb2xlTWVzc2FnZTo6Q29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3Nh
Z2VMZQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgSlNPTkxvZ1ZhbHVlOjpUeXBl
OjpKU09OOgogICAgICAgICAgICAgaWYgKGJ1aWxkZXIubGVuZ3RoKCkpIHsKLSAgICAgICAgICAg
ICAgICBtX2pzb25Mb2dWYWx1ZXMuYXBwZW5kKHsgSlNPTkxvZ1ZhbHVlOjpUeXBlOjpTdHJpbmcs
IEpTT046OlZhbHVlOjpjcmVhdGUoYnVpbGRlci50b1N0cmluZygpKS0+dG9KU09OU3RyaW5nKCkg
fSk7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICAgICAgICAgICAgICBtX2pzb25Mb2dWYWx1ZXMuYXBwZW5kKHsgSlNPTkxvZ1Zh
bHVlOjpUeXBlOjpTdHJpbmcsIEpTT046OlZhbHVlOjpjcmVhdGUoKnN0cmluZyktPnRvSlNPTlN0
cmluZygpIH0pOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgQ1JB
U0goKTsKICAgICAgICAgICAgICAgICBidWlsZGVyLnJlc2l6ZSgwKTsKICAgICAgICAgICAgIH0K
IApAQCAtMTI0LDggKzEyNywxMiBAQCBDb25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2UoTWVz
c2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZQogICAgICAgICB9
CiAgICAgfQogCi0gICAgaWYgKGJ1aWxkZXIubGVuZ3RoKCkpCi0gICAgICAgIG1fanNvbkxvZ1Zh
bHVlcy5hcHBlbmQoeyBKU09OTG9nVmFsdWU6OlR5cGU6OlN0cmluZywgSlNPTjo6VmFsdWU6OmNy
ZWF0ZShidWlsZGVyLnRvU3RyaW5nKCkpLT50b0pTT05TdHJpbmcoKSB9KTsKKyAgICBpZiAoYnVp
bGRlci5sZW5ndGgoKSkgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgICAgICBtX2pzb25Mb2dWYWx1ZXMuYXBwZW5kKHsgSlNPTkxvZ1ZhbHVl
OjpUeXBlOjpTdHJpbmcsIEpTT046OlZhbHVlOjpjcmVhdGUoKnN0cmluZyktPnRvSlNPTlN0cmlu
ZygpIH0pOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOworICAgIH0KIAogICAg
IGlmIChtX2pzb25Mb2dWYWx1ZXMuc2l6ZSgpKQogICAgICAgICBtX21lc3NhZ2UgPSBtX2pzb25M
b2dWYWx1ZXNbMF0udmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0aWVzLmNwcAppbmRleCBhYWE4MWUyLi5iMGMx
OTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnRlbnRT
ZWFyY2hVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
Q29udGVudFNlYXJjaFV0aWxpdGllcy5jcHAKQEAgLTU1LDcgKzU1LDkgQEAgc3RhdGljIFN0cmlu
ZyBjcmVhdGVTZWFyY2hSZWdleFNvdXJjZShjb25zdCBTdHJpbmcmIHRleHQpCiAgICAgICAgIHJl
c3VsdC5hcHBlbmQoY2hhcmFjdGVyKTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgc2l6ZV90
IHNpemV0RXh0cmFjdG9yKGNvbnN0IHNpemVfdCogdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAppbmRleCA0ZjcyNzA5Li5lZDE3
NDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJw
cmV0ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnBy
ZXRlci5jcHAKQEAgLTU3Nyw3ICs1NzcsOSBAQCBKU1N0cmluZyogSW50ZXJwcmV0ZXI6OnN0YWNr
VHJhY2VBc1N0cmluZyhWTSYgdm0sIGNvbnN0IFZlY3RvcjxTdGFja0ZyYW1lPiYgc3RhYwogICAg
ICAgICBpZiAoaSAhPSBzdGFja1RyYWNlLnNpemUoKSAtIDEpCiAgICAgICAgICAgICBidWlsZGVy
LmFwcGVuZCgnXG4nKTsKICAgICB9Ci0gICAgcmV0dXJuIGpzU3RyaW5nKCZ2bSwgYnVpbGRlci50
b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiBqc1N0cmluZygmdm0sICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAK
IEFMV0FZU19JTkxJTkUgc3RhdGljIEhhbmRsZXJJbmZvKiBmaW5kRXhjZXB0aW9uSGFuZGxlcihT
dGFja1Zpc2l0b3ImIHZpc2l0b3IsIENvZGVCbG9jayogY29kZUJsb2NrLCBSZXF1aXJlZEhhbmRs
ZXIgcmVxdWlyZWRIYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
dGVycHJldGVyL1N0YWNrVmlzaXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvU3RhY2tWaXNpdG9yLmNwcAppbmRleCAxZDFmZjczLi43MGNkMTE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcApAQCAt
MzQ3LDcgKzM0Nyw5IEBAIFN0cmluZyBTdGFja1Zpc2l0b3I6OkZyYW1lOjp0b1N0cmluZygpIGNv
bnN0CiAgICAgICAgICAgICB0cmFjZUJ1aWxkLmFwcGVuZE51bWJlcihjb2x1bW4pOwogICAgICAg
ICB9CiAgICAgfQotICAgIHJldHVybiB0cmFjZUJ1aWxkLnRvU3RyaW5nKCkuaW1wbCgpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHRyYWNlQnVpbGQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
IHN0cmluZy0+aW1wbCgpOworICAgIENSQVNIKCk7CiB9CiAKIGludHB0cl90IFN0YWNrVmlzaXRv
cjo6RnJhbWU6OnNvdXJjZUlEKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
c2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggM2IxNzI0OC4uYmU5
Mzk1MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTc2Nyw3ICs3NjcsOSBAQCBzdGF0aWMgU3Ry
aW5nIHJlc29sdmVQYXRoKGNvbnN0IERpcmVjdG9yeU5hbWUmIGRpcmVjdG9yeU5hbWUsIGNvbnN0
IE1vZHVsZU5hbWUmCiAgICAgICAgIGlmIChpICsgMSAhPSBkaXJlY3RvcnlQaWVjZXMuc2l6ZSgp
KQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQocGF0aFNlcGFyYXRvcigpKTsKICAgICB9Ci0g
ICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIHN0YXRpYyBTdHJpbmcgYWJzb2x1dGVQYXRoKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUpCkBA
IC0xMTI3LDggKzExMjksMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
bkpTQ1N0YWNrKEV4ZWNTdGF0ZSogZXhlYykKIAogICAgIEZ1bmN0aW9uSlNDU3RhY2tGdW5jdG9y
IGZ1bmN0b3IodHJhY2UpOwogICAgIGV4ZWMtPml0ZXJhdGUoZnVuY3Rvcik7Ci0gICAgZnByaW50
ZihzdGRlcnIsICIlcyIsIHRyYWNlLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSB0cmFjZS50b1N0cmluZygpKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMiLCBzdHJp
bmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOworICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uR0NBbmRTd2VlcChFeGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25maWdGaWxlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwCmluZGV4IGJiODc2NjYuLmY3ZWNk
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwCkBA
IC00NjUsOSArNDY1LDEyIEBAIHZvaWQgQ29uZmlnRmlsZTo6cGFyc2UoKQogICAgICAgICAgICAg
V1RGOjpzZXREYXRhRmlsZShsb2dQYXRobmFtZSk7CiAKICAgICAgICAgaWYgKCFqc2NPcHRpb25z
QnVpbGRlci5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGNvbnN0IGNoYXIqIG9wdGlvbnNTdHIg
PSBqc2NPcHRpb25zQnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCk7Ci0gICAgICAgICAg
ICBPcHRpb25zOjplbmFibGVSZXN0cmljdGVkT3B0aW9ucyh0cnVlKTsKLSAgICAgICAgICAgIE9w
dGlvbnM6OnNldE9wdGlvbnMob3B0aW9uc1N0cik7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBqc2NPcHRpb25zQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgY29u
c3QgY2hhciogb3B0aW9uc1N0ciA9IHN0cmluZy0+dXRmOCgpLmRhdGEoKTsKKyAgICAgICAgICAg
ICAgICBPcHRpb25zOjplbmFibGVSZXN0cmljdGVkT3B0aW9ucyh0cnVlKTsKKyAgICAgICAgICAg
ICAgICBPcHRpb25zOjpzZXRPcHRpb25zKG9wdGlvbnNTdHIpOworICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgIH0gZWxzZQogICAgICAg
ICBXVEY6OmRhdGFMb2dGKCJFcnJvciBpbiBKU0MgQ29uZmlnIGZpbGUgb24gb3IgbmVhciBsaW5l
ICV1LCBwYXJzaW5nICclcydcbiIsIHNjYW5uZXIubGluZU51bWJlcigpLCBzY2FubmVyLmN1cnJl
bnRCdWZmZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
b25zb2xlQ2xpZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVD
bGllbnQuY3BwCmluZGV4IDI5MTdkNzY4Li5iODY2NDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcApAQCAtMTQ0LDcgKzE0NCwxMCBAQCB2
b2lkIENvbnNvbGVDbGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3Vy
Y2UsIE1lc3NhZ2VUeXBlIHR5cGUsCiAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICBidWls
ZGVyLmFwcGVuZChtZXNzYWdlKTsKIAotICAgIFdURkxvZ0Fsd2F5cygiJXMiLCBidWlsZGVyLnRv
U3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICBXVEZMb2dBbHdheXMoIiVzIiwgc3RyaW5nLT51dGY4KCkuZGF0
YSgpKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgQ29uc29sZUNsaWVu
dDo6cHJpbnRDb25zb2xlTWVzc2FnZVdpdGhBcmd1bWVudHMoTWVzc2FnZVNvdXJjZSBzb3VyY2Us
IE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgSlNDOjpFeGVjU3RhdGUqIGV4
ZWMsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQpAQCAtMTcwLDcgKzE3MywxMCBA
QCB2b2lkIENvbnNvbGVDbGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2VXaXRoQXJndW1lbnRzKE1l
c3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYQogICAgICAgICBzY29wZS5jbGVhckV4Y2VwdGlvbigp
OwogICAgIH0KIAotICAgIFdURkxvZ0Fsd2F5cygiJXMiLCBidWlsZGVyLnRvU3RyaW5nKCkudXRm
OCgpLmRhdGEoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICBXVEZMb2dBbHdheXMoIiVzIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICBl
bHNlCisgICAgICAgIENSQVNIKCk7CiAKICAgICBpZiAoaXNUcmFjZU1lc3NhZ2UpIHsKICAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjYWxsU3RhY2stPnNpemUoKTsgKytpKSB7CkBAIC0x
ODcsNyArMTkzLDEwIEBAIHZvaWQgQ29uc29sZUNsaWVudDo6cHJpbnRDb25zb2xlTWVzc2FnZVdp
dGhBcmd1bWVudHMoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhCiAgICAgICAgICAgICBhcHBl
bmRVUkxBbmRQb3NpdGlvbihjYWxsRnJhbWVCdWlsZGVyLCBjYWxsRnJhbWUuc291cmNlVVJMKCks
IGNhbGxGcmFtZS5saW5lTnVtYmVyKCksIGNhbGxGcmFtZS5jb2x1bW5OdW1iZXIoKSk7CiAgICAg
ICAgICAgICBjYWxsRnJhbWVCdWlsZGVyLmFwcGVuZCgnKScpOwogCi0gICAgICAgICAgICBXVEZM
b2dBbHdheXMoIiVzIiwgY2FsbEZyYW1lQnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkp
OworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gY2FsbEZyYW1lQnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiJXMiLCBzdHJpbmctPnV0ZjgoKS5k
YXRhKCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAg
ICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRlQ29udmVyc2lvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRl
Q29udmVyc2lvbi5jcHAKaW5kZXggOGE4N2NjNi4uNDIzYmUyNCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb252ZXJzaW9uLmNwcApAQCAtMTIzLDcgKzEyMyw5
IEBAIFN0cmluZyBmb3JtYXREYXRlVGltZShjb25zdCBHcmVnb3JpYW5EYXRlVGltZSYgdCwgRGF0
ZVRpbWVGb3JtYXQgZm9ybWF0LCBib29sIGFzCiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpLmltcGwoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBzdHJpbmctPmltcGwoKTsKKyAgICBDUkFT
SCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKaW5kZXggYzE3MjQyOC4uNzhkMjk5NyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKQEAgLTE5
OSw3ICsxOTksOSBAQCBTdHJpbmcgRXJyb3JJbnN0YW5jZTo6c2FuaXRpemVkVG9TdHJpbmcoRXhl
Y1N0YXRlKiBleGVjKQogICAgIGJ1aWxkZXIuYXBwZW5kKG5hbWVTdHJpbmcpOwogICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiOiAiKTsKICAgICBidWlsZGVyLmFwcGVuZChtZXNzYWdlU3RyaW5n
KTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogYm9vbCBFcnJvckluc3RhbmNlOjptYXRlcmlhbGl6ZUVycm9ySW5mb0lmTmVlZGVk
KFZNJiB2bSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2Vw
dGlvbkhlbHBlcnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9u
SGVscGVycy5jcHAKaW5kZXggNjk5MTQ0Yi4uNmUwMWI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKQEAgLTIxMSw3ICsyMTEs
OSBAQCBzdGF0aWMgU3RyaW5nIG5vdEFGdW5jdGlvblNvdXJjZUFwcGVuZGVyKGNvbnN0IFN0cmlu
ZyYgb3JpZ2luYWxNZXNzYWdlLCBjb25zdCBTdAogICAgIH0KICAgICBidWlsZGVyLmFwcGVuZCgn
KScpOwogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgaW52YWxpZFBhcmFtZXRlckluU291cmNlQXBwZW5k
ZXIoY29uc3QgU3RyaW5nJiBvcmlnaW5hbE1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVGV4
dCwgUnVudGltZVR5cGUgdHlwZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlVGV4dFdoZXJlRXJyb3JP
Y2N1cnJlZCBvY2N1cnJlbmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAppbmRleCAxYjcyYWY1Li5hYWJmZjY5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9y
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVj
dG9yLmNwcApAQCAtMTI1LDIyICsxMjUsMjIgQEAgSlNPYmplY3QqIGNvbnN0cnVjdEZ1bmN0aW9u
U2tpcHBpbmdFdmFsRW5hYmxlZENoZWNrKAogICAgICAgICBwcm9ncmFtID0gbWFrZVN0cmluZygi
eyIsIHByZWZpeCwgZnVuY3Rpb25OYW1lLnN0cmluZygpLCAiKCkge1xuIiwgYm9keSwgIlxufX0i
KTsKICAgICB9IGVsc2UgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAg
IGJvb2wgc3VjY2VzcyA9IHRydWU7Ci0gICAgICAgIHN1Y2Nlc3MgJj0gYnVpbGRlci50cnlBcHBl
bmQoJ3snKTsKLSAgICAgICAgc3VjY2VzcyAmPSBidWlsZGVyLnRyeUFwcGVuZChwcmVmaXgpOwot
ICAgICAgICBzdWNjZXNzICY9IGJ1aWxkZXIudHJ5QXBwZW5kKGZ1bmN0aW9uTmFtZS5zdHJpbmco
KSk7Ci0gICAgICAgIHN1Y2Nlc3MgJj0gYnVpbGRlci50cnlBcHBlbmQoJygnKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQoJ3snKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQocHJlZml4KTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQoZnVuY3Rpb25OYW1lLnN0cmluZygpKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmQoJygnKTsKICAgICAgICAgU3RyaW5nQnVpbGRlciBwYXJhbWV0ZXJCdWlsZGVy
OwogICAgICAgICBhdXRvIHZpZXdXaXRoU3RyaW5nID0gYXJncy5hdCgwKS50b1N0cmluZyhleGVj
KS0+dmlld1dpdGhVbmRlcmx5aW5nU3RyaW5nKGV4ZWMpOwogICAgICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLSAgICAgICAgc3VjY2VzcyAmPSBwYXJhbWV0ZXJCdWls
ZGVyLnRyeUFwcGVuZCh2aWV3V2l0aFN0cmluZy52aWV3KTsKKyAgICAgICAgcGFyYW1ldGVyQnVp
bGRlci5hcHBlbmQodmlld1dpdGhTdHJpbmcudmlldyk7CiAgICAgICAgIGZvciAoc2l6ZV90IGkg
PSAxOyBpIDwgYXJncy5zaXplKCkgLSAxOyBpKyspIHsKLSAgICAgICAgICAgIHN1Y2Nlc3MgJj0g
cGFyYW1ldGVyQnVpbGRlci50cnlBcHBlbmRMaXRlcmFsKCIsICIpOworICAgICAgICAgICAgcGFy
YW1ldGVyQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsICIpOwogICAgICAgICAgICAgYXV0byB2aWV3
V2l0aFN0cmluZyA9IGFyZ3MuYXQoaSkudG9TdHJpbmcoZXhlYyktPnZpZXdXaXRoVW5kZXJseWlu
Z1N0cmluZyhleGVjKTsKICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51
bGxwdHIpOwotICAgICAgICAgICAgc3VjY2VzcyAmPSBwYXJhbWV0ZXJCdWlsZGVyLnRyeUFwcGVu
ZCh2aWV3V2l0aFN0cmluZy52aWV3KTsKKyAgICAgICAgICAgIHBhcmFtZXRlckJ1aWxkZXIuYXBw
ZW5kKHZpZXdXaXRoU3RyaW5nLnZpZXcpOwogICAgICAgICB9Ci0gICAgICAgIGlmICghc3VjY2Vz
cykgeworCisgICAgICAgIGlmIChidWlsZGVyLmZhaWxlZCgpIHx8IHBhcmFtZXRlckJ1aWxkZXIu
ZmFpbGVkKCkpIHsKICAgICAgICAgICAgIHRocm93T3V0T2ZNZW1vcnlFcnJvcihleGVjLCBzY29w
ZSk7CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQpAQCAtMTQ4LDcgKzE0
OCw4IEBAIEpTT2JqZWN0KiBjb25zdHJ1Y3RGdW5jdGlvblNraXBwaW5nRXZhbEVuYWJsZWRDaGVj
aygKICAgICAgICAgewogICAgICAgICAgICAgLy8gVGhlIHNwZWMgbWFuZGF0ZXMgdGhhdCB0aGUg
cGFyYW1ldGVycyBwYXJzZSBhcyBhIHZhbGlkIHBhcmFtZXRlciBsaXN0CiAgICAgICAgICAgICAv
LyBpbmRlcGVuZGVudCBvZiB0aGUgZnVuY3Rpb24gYm9keS4KLSAgICAgICAgICAgIFN0cmluZyBw
cm9ncmFtID0gbWFrZVN0cmluZygiKCIsIHByZWZpeCwgIigiLCBwYXJhbWV0ZXJCdWlsZGVyLnRv
U3RyaW5nKCksICIpe1xuXG59KSIpOworICAgICAgICAgICAgYXV0byBzdHJpbmcgPSBwYXJhbWV0
ZXJCdWlsZGVyLnRvU3RyaW5nKCkudmFsdWUoKTsKKyAgICAgICAgICAgIFN0cmluZyBwcm9ncmFt
ID0gbWFrZVN0cmluZygiKCIsIHByZWZpeCwgIigiLCBzdHJpbmcsICIpe1xuXG59KSIpOwogICAg
ICAgICAgICAgU291cmNlQ29kZSBzb3VyY2UgPSBtYWtlU291cmNlKHByb2dyYW0sIHNvdXJjZU9y
aWdpbiwgc291cmNlVVJMLCBwb3NpdGlvbik7CiAgICAgICAgICAgICBKU1ZhbHVlIGV4Y2VwdGlv
bjsKICAgICAgICAgICAgIGNoZWNrU3ludGF4KGV4ZWMsIHNvdXJjZSwgJmV4Y2VwdGlvbik7CkBA
IC0xNTgsMTkgKzE1OSwyMCBAQCBKU09iamVjdCogY29uc3RydWN0RnVuY3Rpb25Ta2lwcGluZ0V2
YWxFbmFibGVkQ2hlY2soCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBzdWNj
ZXNzICY9IGJ1aWxkZXIudHJ5QXBwZW5kKHBhcmFtZXRlckJ1aWxkZXIpOwotICAgICAgICBzdWNj
ZXNzICY9IGJ1aWxkZXIudHJ5QXBwZW5kTGl0ZXJhbCgiKSB7XG4iKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQocGFyYW1ldGVyQnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiKSB7XG4iKTsKICAgICAgICAgYXV0byBib2R5ID0gYXJncy5hdChhcmdzLnNpemUoKSAtIDEp
LnRvV1RGU3RyaW5nKGV4ZWMpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBu
dWxscHRyKTsKICAgICAgICAgY2hlY2tCb2R5KGJvZHkpOwogICAgICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLSAgICAgICAgc3VjY2VzcyAmPSBidWlsZGVyLnRyeUFw
cGVuZChib2R5KTsKLSAgICAgICAgc3VjY2VzcyAmPSBidWlsZGVyLnRyeUFwcGVuZExpdGVyYWwo
IlxufX0iKTsKLSAgICAgICAgaWYgKCFzdWNjZXNzKSB7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KGJvZHkpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxufX0iKTsKKyAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcHJvZ3Jh
bSA9ICpzdHJpbmc7CisgICAgICAgIGVsc2UgewogICAgICAgICAgICAgdGhyb3dPdXRPZk1lbW9y
eUVycm9yKGV4ZWMsIHNjb3BlKTsKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAg
ICB9Ci0gICAgICAgIHByb2dyYW0gPSBidWlsZGVyLnRvU3RyaW5nKCk7CiAgICAgfQogCiAgICAg
U291cmNlQ29kZSBzb3VyY2UgPSBtYWtlU291cmNlKHByb2dyYW0sIHNvdXJjZU9yaWdpbiwgc291
cmNlVVJMLCBwb3NpdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcAppbmRleCBjOTIwYWNmLi4yYzJmMDQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5j
cHAKQEAgLTY0Niw3ICs2NDYsMTEgQEAgdm9pZCBJbnRsRGF0ZVRpbWVGb3JtYXQ6OmluaXRpYWxp
emVEYXRlVGltZUZvcm1hdChFeGVjU3RhdGUmIGV4ZWMsIEpTVmFsdWUgbG9jYWwKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIFN0cmluZyBza2VsZXRvbiA9IHNrZWxldG9uQnVpbGRlci50
b1N0cmluZygpOworICAgIFN0cmluZyBza2VsZXRvbjsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBz
a2VsZXRvbkJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgc2tlbGV0b24gPSAqc3RyaW5nOwor
ICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICBTdHJpbmdWaWV3IHNrZWxldG9uVmlldyhz
a2VsZXRvbik7CiAgICAgVmVjdG9yPFVDaGFyLCAzMj4gcGF0dGVybkJ1ZmZlcigzMik7CiAgICAg
c3RhdHVzID0gVV9aRVJPX0VSUk9SOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRsT2JqZWN0LmNwcAppbmRleCA0YTdmNmRlLi5mNjk3OGRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcApAQCAtMjU4LDcgKzI1OCw5IEBAIHN0YXRp
YyBTdHJpbmcgcHJpdmF0ZVVzZUxhbmdUYWcoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcnRzLCBz
aXplX3Qgc3RhcnRJbmRleCkKICAgICBpZiAoY3VycmVudEluZGV4IDwgbnVtUGFydHMpCiAgICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIHJldHVybiBwcml2YXRldXNlLnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcHJpdmF0ZXVzZS50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIGNhbm9uaWNh
bExhbmdUYWcoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcnRzKQpAQCAtMzkxLDcgKzM5MywxMCBA
QCBzdGF0aWMgU3RyaW5nIGNhbm9uaWNhbExhbmdUYWcoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBh
cnRzKQogICAgICAgICBpZiAoIW51bUV4dFBhcnRzKQogICAgICAgICAgICAgcmV0dXJuIFN0cmlu
ZygpOwogCi0gICAgICAgIGV4dGVuc2lvbnMuYXBwZW5kKGV4dGVuc2lvbi50b1N0cmluZygpKTsK
KyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZXh0ZW5zaW9uLnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICBleHRlbnNpb25zLmFwcGVuZCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgQ1JBU0goKTsKICAgICB9CiAKICAgICAvLyBBZGQgZXh0ZW5zaW9ucyB0byBjYW5vbmljYWwg
c29ydGVkIGJ5IHNpbmdsZXRvbi4KQEAgLTQxOSw3ICs0MjQsOSBAQCBzdGF0aWMgU3RyaW5nIGNh
bm9uaWNhbExhbmdUYWcoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcnRzKQogCiAgICAgLy8gRklY
TUU6IFJlcGxhY2Ugc3VidGFncyB3aXRoIHRoZWlyIHByZWZlcnJlZCB2YWx1ZXMuCiAKLSAgICBy
ZXR1cm4gY2Fub25pY2FsLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gY2Fub25p
Y2FsLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIHN0YXRpYyBTdHJpbmcgZ3JhbmRmYXRoZXJlZExhbmdUYWcoY29uc3QgU3RyaW5nJiBsb2Nh
bGUpCkBAIC02MjQsNyArNjMxLDEwIEBAIFN0cmluZyByZW1vdmVVbmljb2RlTG9jYWxlRXh0ZW5z
aW9uKGNvbnN0IFN0cmluZyYgbG9jYWxlKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQocGFy
dHNbcF0pOwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7
CisKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBNYXRjaGVyUmVzdWx0IGxv
b2t1cE1hdGNoZXIoRXhlY1N0YXRlJiBzdGF0ZSwgY29uc3QgSGFzaFNldDxTdHJpbmc+JiBhdmFp
bGFibGVMb2NhbGVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcmVxdWVzdGVkTG9jYWxlcykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVu
Y3Rpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
RnVuY3Rpb25zLmNwcAppbmRleCA3MzEzNjczLi4xOWI1MmFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3Bw
CkBAIC0xNTEsNyArMTUxLDkgQEAgc3RhdGljIEpTVmFsdWUgZW5jb2RlKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgQml0bWFwPDI1Nj4mIGRvTm90RXNjYXBlLCBjb25zdCBDaGEKICAgICAgICAgfQog
ICAgIH0KIAotICAgIHJldHVybiBqc1N0cmluZyhleGVjLCBidWlsZGVyLnRvU3RyaW5nKCkpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
IGpzU3RyaW5nKGV4ZWMsICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBKU1Zh
bHVlIGVuY29kZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEJpdG1hcDwyNTY+JiBkb05vdEVzY2Fw
ZSkKQEAgLTIzMCw3ICsyMzIsMTAgQEAgc3RhdGljIEpTVmFsdWUgZGVjb2RlKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgQ2hhclR5cGUqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgsIGMKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoYyk7CiAgICAgfQogICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICByZXR1
cm4ganNTdHJpbmcoJnZtLCBidWlsZGVyLnRvU3RyaW5nKCkpOworCisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4ganNTdHJpbmcoJnZtLCAq
c3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgSlNWYWx1ZSBkZWNvZGUoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBCaXRtYXA8MjU2PiYgZG9Ob3RVbmVzY2FwZSwgYm9vbCBzdHJpY3Qp
CkBAIC02MDMsNyArNjA4LDkgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxG
dW5jRXNjYXBlKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgICAgICAgICAgYXBwZW5kQnl0
ZUFzSGV4KHN0YXRpY19jYXN0PExDaGFyPih1KSwgYnVpbGRlcik7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsIGJ1aWxk
ZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsICpzdHJpbmcp
OworICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogCiAgICAgICAgIGNvbnN0IFVDaGFy
KiBjID0gdmlldy5jaGFyYWN0ZXJzMTYoKTsKQEAgLTYyMiw3ICs2MjksOSBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNFc2NhcGUoRXhlY1N0YXRlKiBleGVjKQogICAg
ICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsIGJ1
aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiBqc1N0cmluZyhleGVjLCAqc3RyaW5nKTsKKyAg
ICAgICAgQ1JBU0goKTsKICAgICB9KSk7CiB9CiAKQEAgLTY3OCw3ICs2ODcsOSBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNVbmVzY2FwZShFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICByZXR1cm4ganNTdHJpbmcoZXhl
YywgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsICpzdHJpbmcp
OworICAgICAgICBDUkFTSCgpOwogICAgIH0pKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAppbmRleCA3ZTliM2Q2YS4uZDdjMDZkZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKQEAgLTI3OCw3ICsy
NzgsOSBAQCBKU1ZhbHVlIFN0cmluZ2lmaWVyOjpzdHJpbmdpZnkoSlNWYWx1ZSB2YWx1ZSkKICAg
ICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKICAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAg
cmV0dXJuIGpzU3RyaW5nKG1fZXhlYywgcmVzdWx0LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4ganNTdHJpbmcobV9l
eGVjLCAqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiBBTFdBWVNfSU5MSU5FIEpTVmFsdWUg
U3RyaW5naWZpZXI6OnRvSlNPTihKU1ZhbHVlIHZhbHVlLCBjb25zdCBQcm9wZXJ0eU5hbWVGb3JG
dW5jdGlvbkNhbGwmIHByb3BlcnR5TmFtZSkKQEAgLTM1Nyw3ICszNTksNyBAQCBTdHJpbmdpZmll
cjo6U3RyaW5naWZ5UmVzdWx0IFN0cmluZ2lmaWVyOjphcHBlbmRTdHJpbmdpZmllZFZhbHVlKFN0
cmluZ0J1aWxkZXImCiAgICAgaWYgKHZhbHVlLmlzU3RyaW5nKCkpIHsKICAgICAgICAgY29uc3Qg
U3RyaW5nJiBzdHJpbmcgPSBhc1N0cmluZyh2YWx1ZSktPnZhbHVlKG1fZXhlYyk7CiAgICAgICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIFN0cmluZ2lmeUZhaWxlZCk7Ci0gICAgICAgIGlm
IChidWlsZGVyLnRyeUFwcGVuZFF1b3RlZEpTT05TdHJpbmcoc3RyaW5nKSkKKyAgICAgICAgaWYg
KGJ1aWxkZXIuYXBwZW5kUXVvdGVkSlNPTlN0cmluZyhzdHJpbmcpKQogICAgICAgICAgICAgcmV0
dXJuIFN0cmluZ2lmeVN1Y2NlZWRlZDsKICAgICAgICAgdGhyb3dPdXRPZk1lbW9yeUVycm9yKG1f
ZXhlYywgc2NvcGUpOwogICAgICAgICByZXR1cm4gU3RyaW5naWZ5RmFpbGVkOwpAQCAtNTA0LDgg
KzUwNiwxMiBAQCBib29sIFN0cmluZ2lmaWVyOjpIb2xkZXI6OmFwcGVuZE5leHRQcm9wZXJ0eShT
dHJpbmdpZmllciYgc3RyaW5naWZpZXIsIFN0cmluZ0J1aQogICAgIC8vIExhc3QgdGltZSB0aHJv
dWdoLCBmaW5pc2ggdXAgYW5kIHJldHVybiBmYWxzZS4KICAgICBpZiAobV9pbmRleCA9PSBtX3Np
emUpIHsKICAgICAgICAgc3RyaW5naWZpZXIudW5pbmRlbnQoKTsKLSAgICAgICAgaWYgKG1fc2l6
ZSAmJiBidWlsZGVyW2J1aWxkZXIubGVuZ3RoKCkgLSAxXSAhPSAneycpCi0gICAgICAgICAgICBz
dHJpbmdpZmllci5zdGFydE5ld0xpbmUoYnVpbGRlcik7CisgICAgICAgIGlmIChtX3NpemUpIHsK
KyAgICAgICAgICAgIGlmIChidWlsZGVyLmZhaWxlZCgpKQorICAgICAgICAgICAgICAgIENSQVNI
KCk7CisgICAgICAgICAgICBpZiAoKmJ1aWxkZXJbYnVpbGRlci5sZW5ndGgoKSAtIDFdICE9ICd7
JykKKyAgICAgICAgICAgICAgICBzdHJpbmdpZmllci5zdGFydE5ld0xpbmUoYnVpbGRlcik7Cisg
ICAgICAgIH0KICAgICAgICAgYnVpbGRlci5hcHBlbmQobV9pc0FycmF5ID8gJ10nIDogJ30nKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTU0OCw3ICs1NTQsOSBAQCBib29sIFN0
cmluZ2lmaWVyOjpIb2xkZXI6OmFwcGVuZE5leHRQcm9wZXJ0eShTdHJpbmdpZmllciYgc3RyaW5n
aWZpZXIsIFN0cmluZ0J1aQogICAgICAgICByb2xsQmFja1BvaW50ID0gYnVpbGRlci5sZW5ndGgo
KTsKIAogICAgICAgICAvLyBBcHBlbmQgdGhlIHNlcGFyYXRvciBzdHJpbmcuCi0gICAgICAgIGlm
IChidWlsZGVyW3JvbGxCYWNrUG9pbnQgLSAxXSAhPSAneycpCisgICAgICAgIGlmIChidWlsZGVy
LmZhaWxlZCgpKQorICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgaWYgKCpidWlsZGVyW3Jv
bGxCYWNrUG9pbnQgLSAxXSAhPSAneycpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnLCcp
OwogICAgICAgICBzdHJpbmdpZmllci5zdGFydE5ld0xpbmUoYnVpbGRlcik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAKaW5kZXggZjAwZmUw
Ny4uYjg2ODY4YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTGl0
ZXJhbFBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTGl0ZXJh
bFBhcnNlci5jcHAKQEAgLTQ2NiwxMCArNDY2LDE2IEBAIHNsb3dQYXRoQmVnaW46CiAgICAgfSBl
bHNlIHsKICAgICAgICAgaWYgKG1fYnVpbGRlci5pczhCaXQoKSkgewogICAgICAgICAgICAgdG9r
ZW4uc3RyaW5nSXM4Qml0ID0gMTsKLSAgICAgICAgICAgIHRva2VuLnN0cmluZ1Rva2VuOCA9IG1f
YnVpbGRlci5jaGFyYWN0ZXJzOCgpOworICAgICAgICAgICAgaWYgKGF1dG8gY2hhcnMgPSBtX2J1
aWxkZXIuY2hhcmFjdGVyczgoKSkKKyAgICAgICAgICAgICAgICB0b2tlbi5zdHJpbmdUb2tlbjgg
PSAqY2hhcnM7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHRva2VuLnN0cmluZ0lzOEJpdCA9IDA7Ci0gICAg
ICAgICAgICB0b2tlbi5zdHJpbmdUb2tlbjE2ID0gbV9idWlsZGVyLmNoYXJhY3RlcnMxNigpOwor
ICAgICAgICAgICAgaWYgKGF1dG8gY2hhcnMgPSBtX2J1aWxkZXIuY2hhcmFjdGVyczE2KCkpCisg
ICAgICAgICAgICAgICAgdG9rZW4uc3RyaW5nVG9rZW4xNiA9ICpjaGFyczsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAgICAgICAgIHRva2Vu
LnN0cmluZ0xlbmd0aCA9IG1fYnVpbGRlci5sZW5ndGgoKTsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCmluZGV4IGRmOTgyMjAuLjViNGRjMTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCkBAIC01OTUsNyArNTk1LDEw
IEBAIHZvaWQgT3B0aW9uczo6ZHVtcE9wdGlvbnNJZk5lZWRlZCgpCiAKICAgICAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOwogICAgICAgICBkdW1wQWxsT3B0aW9ucyhidWlsZGVyLCBsZXZlbCwg
dGl0bGUsIG51bGxwdHIsICIgICAiLCAiXG4iLCBEdW1wRGVmYXVsdHMpOwotICAgICAgICBkYXRh
TG9nKGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGRhdGFMb2coKnN0cmluZyk7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogfQogCkBAIC04MDQsNyArODA3LDEwIEBA
IHZvaWQgT3B0aW9uczo6ZHVtcEFsbE9wdGlvbnMoRklMRSogc3RyZWFtLCBEdW1wTGV2ZWwgbGV2
ZWwsIGNvbnN0IGNoYXIqIHRpdGxlKQogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAg
ICBkdW1wQWxsT3B0aW9ucyhidWlsZGVyLCBsZXZlbCwgdGl0bGUsIG51bGxwdHIsICIgICAiLCAi
XG4iLCBEdW1wRGVmYXVsdHMpOwotICAgIGZwcmludGYoc3RyZWFtLCAiJXMiLCBidWlsZGVyLnRv
U3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICBmcHJpbnRmKHN0cmVhbSwgIiVzIiwgc3RyaW5nLT51dGY4KCku
ZGF0YSgpKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgT3B0aW9uczo6
ZHVtcE9wdGlvbihTdHJpbmdCdWlsZGVyJiBidWlsZGVyLCBEdW1wTGV2ZWwgbGV2ZWwsIE9wdGlv
bnM6OklEIGlkLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFBy
b3RvdHlwZS5jcHAKaW5kZXggNzYzMTA0Ny4uOGJkZDJkMyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCkBAIC00NjcsNyArNDY3LDkg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIHJlZ0V4cFByb3RvR2V0dGVyU291cmNlSW50ZXJuYWwo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHIKICAgICAgICAgICAgIHByZXZpb3VzQ2hhcmFjdGVy
V2FzQmFja3NsYXNoID0gY2ggPT0gJ1xcJzsKICAgICB9CiAKLSAgICByZXR1cm4ganNTdHJpbmco
ZXhlYywgcmVzdWx0LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4ganNTdHJpbmcoZXhlYywgKnN0cmluZyk7CisgICAg
Q1JBU0goKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dl
dHRlclNvdXJjZShFeGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCmluZGV4IDU5MmFmNDEuLmYwOGM0ZmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIu
Y3BwCkBAIC05MDQsNyArOTA0LDkgQEAgU3RyaW5nIFNhbXBsaW5nUHJvZmlsZXI6OnN0YWNrVHJh
Y2VzQXNKU09OKCkKIAogICAgIGNsZWFyRGF0YShsb2NrZXIpOwogCi0gICAgcmV0dXJuIGpzb24u
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBqc29uLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgU2FtcGxpbmdQcm9m
aWxlcjo6cmVnaXN0ZXJGb3JSZXBvcnRBdEV4aXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdGFja0ZyYW1lLmNwcAppbmRleCA5ZjJkNjBkLi40OGEyMmIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0ZyYW1lLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0ZyYW1lLmNwcApAQCAtMTM5LDcgKzEzOSw5
IEBAIFN0cmluZyBTdGFja0ZyYW1lOjp0b1N0cmluZyhWTSYgdm0pIGNvbnN0CiAgICAgICAgICAg
ICB0cmFjZUJ1aWxkLmFwcGVuZE51bWJlcihjb2x1bW4pOwogICAgICAgICB9CiAgICAgfQotICAg
IHJldHVybiB0cmFjZUJ1aWxkLnRvU3RyaW5nKCkuaW1wbCgpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHRyYWNlQnVpbGQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0cmluZy0+aW1wbCgp
OworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgU3RhY2tGcmFtZTo6dmlzaXRDaGlsZHJlbihTbG90
VmlzaXRvciYgdmlzaXRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ0NvbnN0cnVjdG9yLmNwcAppbmRleCAwYjEwZDhmLi41ZWQyZWFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCkBA
IC0xMjUsNyArMTI1LDkgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3Ry
aW5nRnJvbUNvZGVQb2ludChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgfQogCiAgICAgc2NvcGUucmVs
ZWFzZSgpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcoZXhlYywgYnVpbGRl
ci50b1N0cmluZygpKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKGV4ZWMsICpzdHJpbmcp
KTsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjb25zdHJ1Y3RXaXRoU3RyaW5nQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKaW5kZXgg
YTBkMzYwMS4uNThjY2Q1NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RyaW5nUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpbmdQcm90b3R5cGUuY3BwCkBAIC0yODAsNyArMjgwLDkgQEAgc3RhdGljIE5FVkVSX0lO
TElORSBTdHJpbmcgc3Vic3RpdHV0ZUJhY2tyZWZlcmVuY2VzU2xvdyhTdHJpbmdWaWV3IHJlcGxh
Y2VtZW50LAogICAgIGlmIChyZXBsYWNlbWVudC5sZW5ndGgoKSAtIG9mZnNldCkKICAgICAgICAg
c3Vic3RpdHV0ZWRSZXBsYWNlbWVudC5hcHBlbmQocmVwbGFjZW1lbnQuc3Vic3RyaW5nKG9mZnNl
dCkpOwogCi0gICAgcmV0dXJuIHN1YnN0aXR1dGVkUmVwbGFjZW1lbnQudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBzdWJzdGl0dXRlZFJlcGxhY2VtZW50LnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGlubGluZSBTdHJpbmcg
c3Vic3RpdHV0ZUJhY2tyZWZlcmVuY2VzSW5saW5lKGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnQs
IFN0cmluZ1ZpZXcgc291cmNlLCBjb25zdCBpbnQqIG92ZWN0b3IsIFJlZ0V4cCogcmVnKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQcm9maWxlci5jcHAKaW5kZXggMGY4
NWVmOC4uN2FlOTc0NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
VHlwZVByb2ZpbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBl
UHJvZmlsZXIuY3BwCkBAIC0xMDQsOCArMTA0LDEwIEBAIFN0cmluZyBUeXBlUHJvZmlsZXI6OnR5
cGVJbmZvcm1hdGlvbkZvckV4cHJlc3Npb25BdE9mZnNldChUeXBlUHJvZmlsZXJTZWFyY2hEZXNj
CiAgICAgICAgIGpzb24uYXBwZW5kTGl0ZXJhbCgiZmFsc2UiKTsKIAogICAgIGpzb24uYXBwZW5k
KCd9Jyk7Ci0gICAgCi0gICAgcmV0dXJuIGpzb24udG9TdHJpbmcoKTsKKworICAgIGlmIChhdXRv
IHN0cmluZyA9IGpzb24udG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogVHlwZUxvY2F0aW9uKiBUeXBlUHJvZmlsZXI6OmZpbmRMb2NhdGlvbih1
bnNpZ25lZCBkaXZvdCwgaW50cHRyX3Qgc291cmNlSUQsIFR5cGVQcm9maWxlclNlYXJjaERlc2Ny
aXB0b3IgZGVzY3JpcHRvciwgVk0mIHZtKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVHlwZVNldC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9U
eXBlU2V0LmNwcAppbmRleCA3YTQxMmU2Li5jM2EwNWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9UeXBlU2V0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9UeXBlU2V0LmNwcApAQCAtMTMxLDcgKzEzMSw5IEBAIFN0cmluZyBUeXBlU2V0
OjpkdW1wVHlwZXMoKSBjb25zdAogICAgICAgICBzZWVuLmFwcGVuZChsZWFzdENvbW1vbkFuY2Vz
dG9yKCkpOwogICAgIH0KIAotICAgIHJldHVybiBzZWVuLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gc2Vlbi50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBib29sIFR5cGVTZXQ6OmRvZXNUeXBlQ29uZm9ybVRvKFJ1bnRpbWVU
eXBlTWFzayB0ZXN0KSBjb25zdApAQCAtMzE3LDcgKzMxOSw5IEBAIFN0cmluZyBUeXBlU2V0Ojp0
b0pTT05TdHJpbmcoKSBjb25zdAogICAgIGpzb24uYXBwZW5kKCddJyk7CiAKICAgICBqc29uLmFw
cGVuZCgnfScpOwotICAgIHJldHVybiBqc29uLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0ganNvbi50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBTdHJ1Y3R1cmVTaGFwZTo6U3RydWN0dXJlU2hhcGUoKQpAQCAtMzYyLDggKzM2
NiwxMSBAQCBTdHJpbmcgU3RydWN0dXJlU2hhcGU6OnByb3BlcnR5SGFzaCgpCiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKG1fcHJvdG8tPnByb3BlcnR5SGFzaCgpKTsKICAgICB9CiAKLSAgICBtX3By
b3BlcnR5SGFzaCA9IHN0ZDo6bWFrZV91bmlxdWU8U3RyaW5nPihidWlsZGVyLnRvU3RyaW5nKCkp
OwotICAgIHJldHVybiAqbV9wcm9wZXJ0eUhhc2g7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZygpKSB7CisgICAgICAgIG1fcHJvcGVydHlIYXNoID0gc3RkOjptYWtlX3Vu
aXF1ZTxTdHJpbmc+KCpzdHJpbmcpOworICAgICAgICByZXR1cm4gKm1fcHJvcGVydHlIYXNoOwor
ICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgU3RydWN0dXJlU2hhcGU6OmxlYXN0Q29t
bW9uQW5jZXN0b3IoY29uc3QgVmVjdG9yPFJlZjxTdHJ1Y3R1cmVTaGFwZT4+JiBzaGFwZXMpCkBA
IC00MjcsNyArNDM0LDkgQEAgU3RyaW5nIFN0cnVjdHVyZVNoYXBlOjpzdHJpbmdSZXByZXNlbnRh
dGlvbigpCiAKICAgICByZXByZXNlbnRhdGlvbi5hcHBlbmQoJ30nKTsKIAotICAgIHJldHVybiBy
ZXByZXNlbnRhdGlvbi50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlcHJlc2Vu
dGF0aW9uLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIFN0cmluZyBTdHJ1Y3R1cmVTaGFwZTo6dG9KU09OU3RyaW5nKCkgY29uc3QKQEAgLTQ5
NCw3ICs1MDMsOSBAQCBTdHJpbmcgU3RydWN0dXJlU2hhcGU6OnRvSlNPTlN0cmluZygpIGNvbnN0
CiAKICAgICBqc29uLmFwcGVuZCgnfScpOwogCi0gICAgcmV0dXJuIGpzb24udG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBqc29uLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAq
c3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50
aW1lOjpTdHJ1Y3R1cmVEZXNjcmlwdGlvbj4gU3RydWN0dXJlU2hhcGU6Omluc3BlY3RvclJlcHJl
c2VudGF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhw
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcAppbmRleCBlNmNkZDUw
Li5jNGQ4ZGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RSZWdFeHAuY3BwCkBAIC0zMjksMTIg
KzMyOSwxNSBAQCBzdGF0aWMgUmVnRXhwKiBwYXJzZVJlZ0V4cExpbmUoVk0mIHZtLCBjaGFyKiBs
aW5lLCBpbnQgbGluZUxlbmd0aCwgY29uc3QgY2hhcioqCiAKICAgICArK2k7CiAKLSAgICBSZWdF
eHAqIHIgPSBSZWdFeHA6OmNyZWF0ZSh2bSwgcGF0dGVybi50b1N0cmluZygpLCByZWdFeHBGbGFn
cyhsaW5lICsgaSkpOwotICAgIGlmICghci0+aXNWYWxpZCgpKSB7Ci0gICAgICAgICpyZWdleHBF
cnJvciA9IHItPmVycm9yTWVzc2FnZSgpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBwYXR0ZXJuLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgUmVnRXhwKiBy
ID0gUmVnRXhwOjpjcmVhdGUodm0sICpzdHJpbmcsIHJlZ0V4cEZsYWdzKGxpbmUgKyBpKSk7Cisg
ICAgICAgIGlmICghci0+aXNWYWxpZCgpKSB7CisgICAgICAgICAgICAqcmVnZXhwRXJyb3IgPSBy
LT5lcnJvck1lc3NhZ2UoKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9
CisgICAgICAgIHJldHVybiByOwogICAgIH0KLSAgICByZXR1cm4gcjsKKyAgICBDUkFTSCgpOwog
fQogCiBzdGF0aWMgUmVnRXhwVGVzdCogcGFyc2VUZXN0TGluZShjaGFyKiBsaW5lLCBpbnQgbGlu
ZUxlbmd0aCkKQEAgLTM3Nyw4ICszODAsMTEgQEAgc3RhdGljIFJlZ0V4cFRlc3QqIHBhcnNlVGVz
dExpbmUoY2hhciogbGluZSwgaW50IGxpbmVMZW5ndGgpCiAgICAgaW50IHN0YXJ0LCBlbmQ7CiAg
ICAgCiAgICAgUmVnRXhwVGVzdCogcmVzdWx0ID0gbmV3IFJlZ0V4cFRlc3QoKTsKLSAgICAKLSAg
ICByZXN1bHQtPnN1YmplY3QgPSBzdWJqZWN0U3RyaW5nLnRvU3RyaW5nKCk7CisKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBzdWJqZWN0U3RyaW5nLnRvU3RyaW5nKCkpCisgICAgICAgIHJlc3VsdC0+
c3ViamVjdCA9ICpzdHJpbmc7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIHJlc3Vs
dC0+b2Zmc2V0ID0gb2Zmc2V0OwogICAgIHJlc3VsdC0+cmVzdWx0ID0gbWF0Y2hSZXN1bHQ7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9GdW5jdGlvbk92ZXJyaWRl
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuY3Bw
CmluZGV4IGU4M2I2ZWUuLjRhYzI3YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90b29scy9GdW5jdGlvbk92ZXJyaWRlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcApAQCAtMjE4LDEzICsyMTgsMTggQEAgc3RhdGlj
IFN0cmluZyBwYXJzZUNsYXVzZShjb25zdCBjaGFyKiBrZXl3b3JkLCBzaXplX3Qga2V5d29yZExl
bmd0aCwgRklMRSogZmlsZSwKICAgICAgICAgICAgICAgICBGQUlMX1dJVEhfRVJST1IoU1lOVEFY
X0VSUk9SLCAoIlVuZXhwZWN0ZWQgY2hhcmFjdGVycyBhZnRlciAnIiwga2V5d29yZCwgIicgY2xh
dXNlIGVuZCBkZWxpbWl0ZXIgJyIsIGRlbGltaXRlciwgIic6XG4iLCBsaW5lLCAiXG4iKSk7CiAK
ICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGxpbmUsIHAgLSBsaW5lICsgMSk7Ci0gICAgICAg
ICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgICAgICBidWlsZGVyLmFwcGVu
ZChsaW5lKTsKIAogICAgIH0gd2hpbGUgKChsaW5lID0gZmdldHMoYnVmZmVyLCBidWZmZXJTaXpl
LCBmaWxlKSkpOwogCi0gICAgRkFJTF9XSVRIX0VSUk9SKFNZTlRBWF9FUlJPUiwgKCInIiwga2V5
d29yZCwgIicgY2xhdXNlIGVuZCBkZWxpbWl0ZXIgJyIsIGRlbGltaXRlciwgIicgbm90IGZvdW5k
OlxuIiwgYnVpbGRlci50b1N0cmluZygpLCAiXG4iLCAiQXJlIHlvdSBtaXNzaW5nIGEgJ30nIGJl
Zm9yZSB0aGUgZGVsaW1pdGVyP1xuIikpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgRkFJTF9XSVRIX0VSUk9SKFNZTlRBWF9FUlJPUiwgKCInIiwg
a2V5d29yZCwgIicgY2xhdXNlIGVuZCBkZWxpbWl0ZXIgJyIsIGRlbGltaXRlciwgIicgbm90IGZv
dW5kOlxuIiwgKnN0cmluZywgIlxuIiwgIkFyZSB5b3UgbWlzc2luZyBhICd9JyBiZWZvcmUgdGhl
IGRlbGltaXRlcj9cbiIpKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQg
RnVuY3Rpb25PdmVycmlkZXM6OnBhcnNlT3ZlcnJpZGVzSW5GaWxlKGNvbnN0IGNoYXIqIGZpbGVO
YW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW4u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW4uY3BwCmluZGV4IGE3
ODIwYzkuLmZhMDAzNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21CQlFQbGFuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxh
bi5jcHAKQEAgLTE1MCw4ICsxNTAsMTEgQEAgdm9pZCBCQlFQbGFuOjpwcmVwYXJlKCkKICAgICAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRmFpbGVkIGFsbG9jYXRpbmcgZW5vdWdoIHNw
YWNlIGZvciAiKTsKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHNpemUpOwogICAg
ICAgICAgICAgYnVpbGRlci5hcHBlbmQod2hhdCk7Ci0gICAgICAgICAgICBmYWlsKGhvbGRMb2Nr
KG1fbG9jayksIGJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAg
ICAgICAgICAgICAgICBmYWlsKGhvbGRMb2NrKG1fbG9jayksIFdURk1vdmUoKnN0cmluZykpOwor
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IENSQVNIKCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXJzZXIuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXJzZXIuaAppbmRleCBmMTZmMTFmLi44Yjc1OGVjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhcnNlci5oCkBAIC0xMDMxLDggKzEwMzEs
MTEgQEAgcHJpdmF0ZToKIAogICAgICAgICAgICAgd2hpbGUgKCFhdEVuZE9mUGF0dGVybigpKSB7
CiAgICAgICAgICAgICAgICAgY2ggPSB0cnlDb25zdW1lSWRlbnRpZmllckNoYXJhY3RlcigpOwot
ICAgICAgICAgICAgICAgIGlmIChjaCA9PSAnPicpCi0gICAgICAgICAgICAgICAgICAgIHJldHVy
biBzdGQ6Om9wdGlvbmFsPFN0cmluZz4oaWRlbnRpZmllckJ1aWxkZXIudG9TdHJpbmcoKSk7Cisg
ICAgICAgICAgICAgICAgaWYgKGNoID09ICc+JykgeworICAgICAgICAgICAgICAgICAgICBpZiAo
YXV0byBzdHJpbmcgPSBpZGVudGlmaWVyQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPigqc3RyaW5nKTsKKyAgICAg
ICAgICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAg
ICAgICBpZiAoIWlzSWRlbnRpZmllclBhcnQoY2gpKQogICAgICAgICAgICAgICAgICAgICBicmVh
azsKQEAgLTEwNzAsMjMgKzEwNzMsMzIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICB9CiAK
ICAgICAgICAgICAgICAgICBpZiAoZm91bmRFcXVhbHMpIHsKLSAgICAgICAgICAgICAgICAgICAg
YXV0byByZXN1bHQgPSB1bmljb2RlTWF0Y2hQcm9wZXJ0eVZhbHVlKHVuaWNvZGVQcm9wZXJ0eU5h
bWUsIGV4cHJlc3Npb25CdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBleHByZXNzaW9uQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IHVuaWNvZGVNYXRjaFByb3BlcnR5VmFsdWUo
dW5pY29kZVByb3BlcnR5TmFtZSwgKnN0cmluZyk7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoIXJlc3VsdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2Vycm9yQ29kZSA9IEVy
cm9yQ29kZTo6SW52YWxpZFVuaWNvZGVQcm9wZXJ0eUV4cHJlc3Npb247CisgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIENSQVNIKCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gZXhwcmVzc2lvbkJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAg
ICAgICAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IHVuaWNvZGVNYXRjaFByb3BlcnR5KCpzdHJp
bmcpOwogICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgICAgICAgICAg
ICAgICAgIG1fZXJyb3JDb2RlID0gRXJyb3JDb2RlOjpJbnZhbGlkVW5pY29kZVByb3BlcnR5RXhw
cmVzc2lvbjsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IHVuaWNvZGVNYXRjaFByb3Bl
cnR5KGV4cHJlc3Npb25CdWlsZGVyLnRvU3RyaW5nKCkpOwotICAgICAgICAgICAgICAgIGlmICgh
cmVzdWx0KQotICAgICAgICAgICAgICAgICAgICBtX2Vycm9yQ29kZSA9IEVycm9yQ29kZTo6SW52
YWxpZFVuaWNvZGVQcm9wZXJ0eUV4cHJlc3Npb247Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgfQogCiAgICAgICAg
ICAgICBjb25zdW1lKCk7CiAgICAgICAgICAgICBpZiAoY2ggPT0gJz0nKSB7CiAgICAgICAgICAg
ICAgICAgaWYgKCFmb3VuZEVxdWFscykgewogICAgICAgICAgICAgICAgICAgICBmb3VuZEVxdWFs
cyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIHVuaWNvZGVQcm9wZXJ0eU5hbWUgPSBleHBy
ZXNzaW9uQnVpbGRlci50b1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBleHByZXNzaW9uQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgdW5pY29kZVByb3BlcnR5TmFtZSA9ICpzdHJpbmc7CisgICAgICAgICAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAgICAg
ICAgIGV4cHJlc3Npb25CdWlsZGVyLmNsZWFyKCk7CiAgICAgICAgICAgICAgICAgfSBlbHNlCiAg
ICAgICAgICAgICAgICAgICAgIGVycm9ycysrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA4ODFiMTY0Li44ZmUxNTUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0NiBAQAorMjAxOC0wNC0yNiAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgU3RyaW5nQnVpbGRlciBpcyBmYWxsaWJsZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MDQ4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RyaW5nQnVpbGRlciBjYW4gZmFp
bCB3aGVuIGFsbG9jYXRpbmcgbWVtb3J5LiBTdHJpbmdCdWlsZGVyIGlzCisgICAgICAgIG1vc3Rs
eSB1c2VkIHdpdGggdXNlciBpbnB1dCwgd2hpY2ggb2Z0ZW4gbWVhbnMgdGhhdCBqdXN0IGNyYXNo
aW5nCisgICAgICAgIGlzbid0IHRoZSByaWdodCBvdXRjb21lLiBPdXIgZnV6emVycyBvZnRlbiBl
bmNvdW50ZXIgc3VjaCB0aGluZ3MKKyAgICAgICAgZm9yIEphdmFTY3JpcHRDb3JlLCBhbmQgc28g
ZmFyIHdlJ3ZlIGFwcGxpZWQgcG9pbnQgc29sdXRpb25zLiBObworICAgICAgICBtb3JlISBUaGlz
IHBhdGNoIG1ha2VzIFN0cmluZ0J1aWxkZXIgZmFsbGlibGUgYW5kIGVuZm9yY2VzIHRoaXMgaW4K
KyAgICAgICAgdHdvIHdheXM6CisKKyAgICAgICAgICAtIEVhY2ggc3RlcCBvZiBidWlsZGluZyBh
IHN0cmluZyBjYW4gYmUgY2hlY2tlZCBmb3IgZmFpbHVyZQorICAgICAgICAgICAgYmVjYXVzZSB0
aGV5IG5vdyByZXR1cm4gYSAiRmFsbGlibGU8VD4iLiBUaGlzIGNhbiBiZSBpZ25vcmVkIGF0Cisg
ICAgICAgICAgICBldmVyeSBzdGVwIQorICAgICAgICAgIC0gVGhlIGZpbmFsIHN0ZXAgb2YgU3Ry
aW5nQnVpbGRlciwgZ2V0dGluZyB0aGUgc3RyaW5nIG91dCwKKyAgICAgICAgICAgIHJldHVybnMg
YSAiRmFsbGlibGU8U3RyaW5nPiIgd2hpY2ggaXMgbWFya2VkIHdpdGgKKyAgICAgICAgICAgIFdB
Uk5fVU5VU0VEX1JFVFVSTi4gRmFpbHVyZSBpcyBjb21tdW5pY2F0ZWQgaWYgYW55IG9mIHRoZSBi
dWlsZGluZworICAgICAgICAgICAgc3RlcHMgZmFpbGVkLgorCisgICAgICAgIERvaW5nIHRoaXMg
dHdvLXN0ZXAgYXBwcm9hY2ggbWVhbnMgdGhhdCBjb2RlIGNhbiBjb250aW51ZQorICAgICAgICBv
cGVyYXRpbmcgYXMgaXQgZGlkIGJlZm9yZSAoYXBwZW5kIGEgYnVuY2ggYW5kIHRoZW4gZ2V0IGEg
c3RyaW5nKQorICAgICAgICBhbmQgb25seSBuZWVkcyB0byBjYXJlIGFib3V0IHRoZSBzdHJpbmcg
cG90ZW50aWFsbHkgbm90IGJlaW5nCisgICAgICAgIGF2YWlsYWJsZS4gVGhpcyBpcyBlbmZvcmNl
ZCBieSB0aGUgdHlwZSBzeXN0ZW06IEZhbGxpYmxlPFQ+IGlzCisgICAgICAgIHN0ZDo6ZXhwZWN0
ZWQ8VCwgU3RyaW5nQnVpbGRlcjo6RmFpbHVyZT4uCisKKyAgICAgICAgVGhlIGZvbGxvd2luZyBp
bnRlcm1lZGlhdGUgZnVuY3Rpb25zIGNhbiBub3cgYmUgb2JzZXJ2ZWQgdG8gZmFpbAorICAgICAg
ICAob3IgaWdub3JlZCk6CisKKyAgICAgICAgICAtIGFwcGVuZAorICAgICAgICAgIC0gYXBwZW5k
VW5pbml0aWFsaXplZAorICAgICAgICAgIC0gYXBwZW5kVW5pbml0aWFsaXplZFNsb3cKKyAgICAg
ICAgICAtIGFwcGVuZFF1b3RlZEpTT05TdHJpbmcgdXNlZCB0byByZXR1cm4gZmFsc2Ugb24gZmFp
bHVyZSwgaXQgbm93IHJldHVybnMgRmFsbGlibGU8PgorICAgICAgICAgIC0gcmVzaXplCisgICAg
ICAgICAgLSBhbGxvY2F0ZUJ1ZmZlcgorICAgICAgICAgIC0gYWxsb2NhdGVCdWZmZXJVcENvbnZl
cnQKKyAgICAgICAgICAtIHJlYWxsb2NhdGVCdWZmZXIKKyAgICAgICAgICAtIHJlc2VydmVDYXBh
Y2l0eQorICAgICAgICAgIC0gc2hyaW5rVG9GaXQKKyAgICAgICAgICAtIG9wZXJhdG9yW10KKyAg
ICAgICAgICAtIGNoYXJhY3RlcnM4CisgICAgICAgICAgLSBjaGFyYWN0ZXJzMTYKKworICAgICAg
ICBGYWlsdXJlIGluIHRoZXNlIG1ldGhvZHMgY29tZXMgaW4gdHdvIGZvcm1zOiBvdXQgb2YgbWVt
b3J5LCBhbmQKKyAgICAgICAgd291bGQgb3ZlcmZsb3cuIFdoZW4gYW4gb3BlcmF0aW9uIHdvdWxk
IG92ZXJmbG93IGl0IGxlYXZlcyB0aGUKKyAgICAgICAgU3RyaW5nQnVpbGRlciBpbiBpdHMgcHJl
dmlvdXMgc3RhdGUsIGFsbG93aW5nIHVzZXJzIHRvIHJlc3VtZQorICAgICAgICB3b3JrLCBrZWVw
IHRoZSBzdHJpbmcgYXMgaXQgZXhpc3RlZCBiZWZvcmUgZmFpbHVyZS4gV2hlbiB3ZSBqdXN0Cisg
ICAgICAgIGZhaWwgYWxsb2NhdGluZyBpdCBtZWFucyB3ZSBleHBlY3RlZCB0byBzdWNjZWVkLCBz
byBjbGVhcmluZyB0aGUKKyAgICAgICAgU3RyaW5nQnVpbGRlciBpcyB0aGUgcmlnaHQgdGhpbmcg
dG8gZG8uCisKKyAgICAgICAgU3VwcG9ydGluZyBmYWlsdXJlIGluIFN0cmluZ0J1aWxkZXIgcmVx
dWlyZWQgYWRkaW5nICJ0cnkiIHZhcmlhbnRzCisgICAgICAgIG9mIHNvbWUgbWV0aG9kcyBpbiBT
dHJpbmdJbXBsLgorCisgICAgICAgIFRoaXMgcGF0Y2ggdXBkYXRlcyBhbGwgV2ViS2l0IGNvZGUg
d2hpY2ggdXNlcyBTdHJpbmdCdWlsZGVyLiBJdAorICAgICAgICBsZWF2ZXMgYWxsIGludGVybWVk
aWF0ZSBmdW5jdGlvbiB1c2FnZSBhbG9uZSAoY29kZSBzdGlsbCBhcHBlbmRzCisgICAgICAgIGJh
Y2stdG8tYmFjaywgYmxpc3NmdWxseSB1bmF3YXJlIG9mIGZhaWx1cmUpLCBhbmQgb25seSBjaGVj
a3MgZm9yCisgICAgICAgIGZhaWx1cmUgd2hlbiByZXRyaWV2aW5nIHRoZSBzdHJpbmcuIFRoZSBw
YXR0ZXJuIHVzZWQgaXMgdXN1YWxseToKKworICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGZvbygqc3RyaW5nKTsgLy8gVXNlIHN0cmlu
ZyBhcyBiZWZvcmUuLi4KKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOworCisg
ICAgICAgIFRoaXMgbWFrZXMgZmFpbHVyZSBleHRyZW1lbHkgZXhwbGljaXQuIFRoZXJlJ3Mgbm8g
dHJ1ZSBiZWhhdmlvcgorICAgICAgICBjaGFuZ2U6IHdoYXQgd291bGQgaGF2ZSBjcmFzaGVkIHdo
ZW4gYXBwZW5kaW5nIG5vdyBjcmFzaGVzIHdoZW4KKyAgICAgICAgcmV0cmlldmluZyB0aGUgc3Ry
aW5nLiBQdWxsaW5nIENSQVNIKCkgb3V0IHdpbGwgZ2l2ZSBzbGlnaHRseQorICAgICAgICBiZXR0
ZXIgY3Jhc2ggc2lnbmF0dXJlcywgYW5kIGl0IG1ha2VzIHRoZSBjb2RlIHZlcnkgb2J2aW91cyBh
Ym91dAorICAgICAgICBmYWlsdXJlLiBJIHB1cnBvc2VmdWxseSBkb24ndCAiZml4IiBhbnkgZmFp
bHVyZSBiZWNhdXNlIHRoZXNlCisgICAgICAgIHNob3VsZCBiZSBkb25lIGluIGEgdGFyZ2V0ZWQg
bWFubmVyIHdpdGggcmVwcm8gdGVzdHMgd2hlbmV2ZXIKKyAgICAgICAgcG9zc2libGUuIEknbSB2
ZXJ5IHdhcnkgb2YgaW50cm9kdWNpbmcgYnVncyEKKworICAgICAgICBXaGVuIHNvbWVvbmUgaW5l
dml0YWJseSBibGFtZXMgY29kZSBiYWNrIHRvIHRoaXMgY29tbWl0IChiZWNhdXNlCisgICAgICAg
IGhleSB0aGUgY29kZSBpcyBwcmV0dHkgdWdseSwgYW5kIHlvdSBtaWdodCBiZSBzdXJwcmlzZWQg
YXQgc2VlaW5nCisgICAgICAgIENSQVNIKCkgaW4geW91ciBiZWF1dGlmdWwgY29kZSkgdGhlcmUg
YXJlIGEgZmV3IHRoaW5ncyB3aGljaCB0aGV5CisgICAgICAgIGNhbiBkbzoKKworICAgICAgICAg
IDEuIENoYW5nZSB0aGUgZWxzZSBjbGF1c2UgdG8gaGFuZGxlIGZhaWx1cmUgcmF0aGVyIHRoYW4g
Y3Jhc2guIEluIEphdmFTY3JpcHRDb3JlIHRoYXQncyB1c3VhbGx5IHRocm93T3V0T2ZNZW1vcnlF
cnJvci4KKyAgICAgICAgICAyLiBDaGFuZ2UgdGhlIGNvZGUgdG8gZGlyZWN0bHkgdXNlIEZhbGxp
YmxlJ3MgLnZhbHVlKCkgbWVtYmVyLCBhbmQgbGV0ICp0aGF0KiBjcmFzaCBpbnN0ZWFkLiBUaGlz
IG1ha2VzIHRoZSBjcmFzaCBub24tb2J2aW91cyBpbiB0aGUgY29kZSwgd2hpY2ggbWlnaHQgYmUg
d2hhdCB5b3Ugd2FudC4KKyAgICAgICAgICAzLiBDaGFuZ2UgdGhlIGNvZGUgdG8gZGV0ZWN0IGZh
aWx1cmUgYXQgdGhlIGVhcmxpZXN0IHN0ZXAgb2Ygc3RyaW5nIGJ1aWxkaW5nIChsaWtlbHkgdGhl
IGFwcGVuZCBjYWxscyksIGFuZCBkbyBzb21ldGhpbmcgc2Vuc2libGUgdGhlcmUuCisKKyAgICAg
ICAgSW4gbm8gY2lyY3Vtc3RhbmNlIHNob3VsZCBjb2RlIGp1c3QgZGVyZWZlcmVuY2UgYSBGYWxs
aWJsZSB3aXRob3V0CisgICAgICAgIGtub3dpbmcgdGhhdCBpdHMgc3RhdGUgaG9sZHMgYSB2YWxp
ZCBzdHJpbmcuIFRoaXMgY29kZSBpcworICAgICAgICB1bmRlZmluZWQgYmVoYXZpb3IgYWNjb3Jk
aW5nIHRvIHRoZSBzdGQ6OmV4cGVjdGVkIHNwZWNpZmljYXRpb24KKyAgICAgICAgKHdoZXRoZXIg
b3VyIGltcGxlbWVudGF0aW9uIHNob3VsZCBkbyBzb21ldGhpbmcgZWxzZSBpcyBvdXQgb2YKKyAg
ICAgICAgc2NvcGUgZm9yIHRoaXMgcGF0Y2gpOgorCisgICAgICAgICAgZm9vKCpidWlsZGVyLnRv
U3RyaW5nKCkpOyAvLyBVQiB3aGVuIGFsbG9jYXRpb24gZmFpbHMuCisKKyAgICAgICAgKiB3dGYv
QXNzZXJ0aW9ucy5jcHA6CisgICAgICAgICogd3RmL0RhdGVNYXRoLmNwcDoKKyAgICAgICAgKFdU
Rjo6bWFrZVJGQzI4MjJEYXRlU3RyaW5nKToKKyAgICAgICAgKiB3dGYvSlNPTlZhbHVlcy5jcHA6
CisgICAgICAgIChXVEY6OkpTT05JbXBsOjpWYWx1ZTo6dG9KU09OU3RyaW5nIGNvbnN0KToKKyAg
ICAgICAgKiB3dGYvTG9nZ2VyLmg6CisgICAgICAgIChXVEY6OkxvZ0FyZ3VtZW50Ojp0b1N0cmlu
Zyk6CisgICAgICAgIChXVEY6OkxvZ0FyZ3VtZW50PExvZ2dlcjo6TG9nU2l0ZUlkZW50aWZpZXI+
Ojp0b1N0cmluZyk6CisgICAgICAgICogd3RmL01lZGlhVGltZS5jcHA6CisgICAgICAgIChXVEY6
Ok1lZGlhVGltZTo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAqIHd0Zi9VVUlELmNwcDoKKyAg
ICAgICAgKFdURjo6Y3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZyk6CisgICAgICAgICogd3RmL3Rl
eHQvU3RyaW5nQnVpbGRlci5jcHA6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OndvdWxk
T3ZlcmZsb3cpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpvdXRPZk1lbW9yeSk6Cisg
ICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OnJlc2l6ZSk6CisgICAgICAgIChXVEY6OlN0cmlu
Z0J1aWxkZXI6OmFsbG9jYXRlQnVmZmVyKToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6
YWxsb2NhdGVCdWZmZXJVcENvbnZlcnQpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpy
ZWFsbG9jYXRlQnVmZmVyPExDaGFyPik6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OnJl
YWxsb2NhdGVCdWZmZXI8VUNoYXI+KToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6cmVz
ZXJ2ZUNhcGFjaXR5KToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6YXBwZW5kKToKKyAg
ICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKToKKyAgICAgICAgKFdURjo6
U3RyaW5nQnVpbGRlcjo6YXBwZW5kRUNNQVNjcmlwdE51bWJlcik6CisgICAgICAgIChXVEY6OlN0
cmluZ0J1aWxkZXI6OmFwcGVuZEZpeGVkV2lkdGhOdW1iZXIpOgorICAgICAgICAoV1RGOjpTdHJp
bmdCdWlsZGVyOjpzaHJpbmtUb0ZpdCk6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nQnVpbGRl
ci5oOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpTdHJpbmdCdWlsZGVyKToKKyAgICAg
ICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6YXBwZW5kKToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVp
bGRlcjo6YXBwZW5kTGl0ZXJhbCk6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OnRvU3Ry
aW5nKToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6dG9TdHJpbmdQcmVzZXJ2ZUNhcGFj
aXR5IGNvbnN0KToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6dG9BdG9taWNTdHJpbmcg
Y29uc3QpOgorICAgICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjppczhCaXQgY29uc3QpOgorICAg
ICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpmYWlsZWQgY29uc3QpOgorICAgICAgICAoV1RGOjpT
dHJpbmdCdWlsZGVyOjpvcGVyYXRvcltdIGNvbnN0KToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVp
bGRlcjo6IGNvbnN0KToKKyAgICAgICAgKFdURjo6U3RyaW5nQnVpbGRlcjo6Y2xlYXIpOgorICAg
ICAgICAoV1RGOjpTdHJpbmdCdWlsZGVyOjpzd2FwKToKKyAgICAgICAgKFdURjo6ZXF1YWwpOgor
ICAgICAgICAoV1RGOjpJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uVHJhaXQ8U3RyaW5nQnVpbGRl
cj46OmZsdXNoKToKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdCdWlsZGVySlNPTi5jcHA6Cisg
ICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OmFwcGVuZFF1b3RlZEpTT05TdHJpbmcpOgorICAg
ICAgICAqIHd0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBs
OjpyZWFsbG9jYXRlSW50ZXJuYWwpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjpyZWFsbG9j
YXRlKToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6dHJ5UmVhbGxvY2F0ZSk6CisgICAgICAg
ICogd3RmL3RleHQvU3RyaW5nSW1wbC5oOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjp0cnlD
cmVhdGVTdWJzdHJpbmdTaGFyaW5nSW1wbCk6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OmNy
ZWF0ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKToKKyAgICAgICAgKiB3dGYvdGV4dC9UZXh0U3RyZWFt
LmNwcDoKKyAgICAgICAgKFdURjo6VGV4dFN0cmVhbTo6cmVsZWFzZSk6CisKIDIwMTgtMDUtMDEg
IFJvYmluIE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KIAogICAgICAgICBDb3JyZWN0
bHkgZGV0ZWN0IHN0cmluZyBvdmVyZmxvdyB3aGVuIHVzaW5nIHRoZSAnRnVuY3Rpb24nIGNvbnN0
cnVjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcCBiL1NvdXJj
ZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwCmluZGV4IGUxNWEwOTIuLmQ3YzgzMTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Fz
c2VydGlvbnMuY3BwCkBAIC0zNDIsOSArMzQyLDExIEBAIHZvaWQgV1RGTG9nZ2luZ0FjY3VtdWxh
dG9yOjpyZXNldEFjY3VtdWxhdGVkTG9ncygpCiBTdHJpbmcgV1RGTG9nZ2luZ0FjY3VtdWxhdG9y
OjpnZXRBbmRSZXNldEFjY3VtdWxhdGVkTG9ncygpCiB7CiAgICAgTG9ja2VyPExvY2s+IGxvY2tl
cihhY2N1bXVsYXRvckxvY2spOwotICAgIFN0cmluZyByZXN1bHQgPSBsb2dnaW5nQWNjdW11bGF0
b3IudG9TdHJpbmcoKTsKLSAgICBsb2dnaW5nQWNjdW11bGF0b3IuY2xlYXIoKTsKLSAgICByZXR1
cm4gcmVzdWx0OworICAgIGlmIChhdXRvIHJlc3VsdCA9IGxvZ2dpbmdBY2N1bXVsYXRvci50b1N0
cmluZygpKSB7CisgICAgICAgIGxvZ2dpbmdBY2N1bXVsYXRvci5jbGVhcigpOworICAgICAgICBy
ZXR1cm4gKnJlc3VsdDsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFdURkxvZ2dp
bmdBY2N1bXVsYXRvciYgbG9nZ2luZ0FjY3VtdWxhdG9yKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL0RhdGVNYXRoLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAppbmRleCA2
ZGI5MmViLi5hODQyNWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5jcHAK
KysrIGIvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwCkBAIC0xMTg3LDcgKzExODcsOSBAQCBT
dHJpbmcgbWFrZVJGQzI4MjJEYXRlU3RyaW5nKHVuc2lnbmVkIGRheU9mV2VlaywgdW5zaWduZWQg
ZGF5LCB1bnNpZ25lZCBtb250aCwgdQogICAgIGFwcGVuZFR3b0RpZ2l0TnVtYmVyKHN0cmluZ0J1
aWxkZXIsIGFic29sdXRlVVRDT2Zmc2V0IC8gNjApOwogICAgIGFwcGVuZFR3b0RpZ2l0TnVtYmVy
KHN0cmluZ0J1aWxkZXIsIGFic29sdXRlVVRDT2Zmc2V0ICUgNjApOwogCi0gICAgcmV0dXJuIHN0
cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvSlNPTlZh
bHVlcy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmNwcAppbmRleCBiZGU0NGFiLi4w
OGM2MjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmNwcAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmNwcApAQCAtMzI3LDggKzMyNywxMSBAQCBib29sIGRl
Y29kZVN0cmluZyhjb25zdCBVQ2hhciogc3RhcnQsIGNvbnN0IFVDaGFyKiBlbmQsIFN0cmluZyYg
b3V0cHV0KQogICAgIGlmICghZGVjb2RlU3RyaW5nKHN0YXJ0LCBlbmQsIGJ1ZmZlcikpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIG91dHB1dCA9IGJ1ZmZlci50b1N0cmluZygpOwotICAg
IHJldHVybiB0cnVlOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1ZmZlci50b1N0cmluZygpKSB7
CisgICAgICAgIG91dHB1dCA9ICpzdHJpbmc7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIFJlZlB0cjxKU09OOjpWYWx1ZT4gYnVpbGRWYWx1ZShj
b25zdCBVQ2hhciogc3RhcnQsIGNvbnN0IFVDaGFyKiBlbmQsIGNvbnN0IFVDaGFyKiogdmFsdWVU
b2tlbkVuZCwgaW50IGRlcHRoKQpAQCAtNTUzLDcgKzU1Niw5IEBAIFN0cmluZyBWYWx1ZTo6dG9K
U09OU3RyaW5nKCkgY29uc3QKICAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKICAgICByZXN1bHQu
cmVzZXJ2ZUNhcGFjaXR5KDUxMik7CiAgICAgd3JpdGVKU09OKHJlc3VsdCk7Ci0gICAgcmV0dXJu
IHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIFZh
bHVlOjphc0Jvb2xlYW4oYm9vbCYgb3V0cHV0KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvTG9nZ2VyLmggYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaAppbmRleCA2YjAxYjU4Li40
OGI4ZDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9Mb2dnZXIuaApAQCAtNDYsNyArNDYsMTIgQEAgc3RydWN0IExvZ0FyZ3VtZW50IHsK
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVID0gVD4gc3RhdGljIHR5cGVuYW1lIHN0ZDo6ZW5hYmxl
X2lmPHN0ZDo6aXNfc2FtZTxVLCBkb3VibGU+Ojp2YWx1ZSwgU3RyaW5nPjo6dHlwZSB0b1N0cmlu
Zyhkb3VibGUgYXJndW1lbnQpIHsgcmV0dXJuIFN0cmluZzo6bnVtYmVyKGFyZ3VtZW50KTsgfQog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFUgPSBUPiBzdGF0aWMgdHlwZW5hbWUgc3RkOjplbmFibGVf
aWY8c3RkOjppc19zYW1lPHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxVPjo6dHlwZSwg
QXRvbWljU3RyaW5nPjo6dmFsdWUsIFN0cmluZz46OnR5cGUgdG9TdHJpbmcoQXRvbWljU3RyaW5n
IGFyZ3VtZW50KSB7IHJldHVybiBhcmd1bWVudC5zdHJpbmcoKTsgfQogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFUgPSBUPiBzdGF0aWMgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19zYW1l
PHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxVPjo6dHlwZSwgU3RyaW5nPjo6dmFsdWUs
IFN0cmluZz46OnR5cGUgdG9TdHJpbmcoU3RyaW5nIGFyZ3VtZW50KSB7IHJldHVybiBhcmd1bWVu
dDsgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFUgPSBUPiBzdGF0aWMgdHlwZW5hbWUgc3RkOjpl
bmFibGVfaWY8c3RkOjppc19zYW1lPHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxVPjo6
dHlwZSwgU3RyaW5nQnVpbGRlcio+Ojp2YWx1ZSwgU3RyaW5nPjo6dHlwZSB0b1N0cmluZyhTdHJp
bmdCdWlsZGVyKiBhcmd1bWVudCkgeyByZXR1cm4gYXJndW1lbnQtPnRvU3RyaW5nKCk7IH0KKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBVID0gVD4gc3RhdGljIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lm
PHN0ZDo6aXNfc2FtZTx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8VT46OnR5cGUsIFN0
cmluZ0J1aWxkZXIqPjo6dmFsdWUsIFN0cmluZz46OnR5cGUgdG9TdHJpbmcoU3RyaW5nQnVpbGRl
ciogYXJndW1lbnQpCisgICAgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBhcmd1bWVudC0+
dG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgp
OworICAgIH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVID0gVD4gc3RhdGljIHR5cGVuYW1lIHN0
ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfc2FtZTxVLCBjb25zdCBjaGFyKj46OnZhbHVlLCBTdHJpbmc+
Ojp0eXBlIHRvU3RyaW5nKGNvbnN0IGNoYXIqIGFyZ3VtZW50KSB7IHJldHVybiBTdHJpbmcoYXJn
dW1lbnQpOyB9CiAgICAgdGVtcGxhdGU8c2l6ZV90IGxlbmd0aD4gc3RhdGljIFN0cmluZyB0b1N0
cmluZyhjb25zdCBjaGFyICgmYXJndW1lbnQpW2xlbmd0aF0pIHsgcmV0dXJuIFN0cmluZyhhcmd1
bWVudCk7IH0KIH07CkBAIC0yNzQsNyArMjc5LDkgQEAgc3RydWN0IExvZ0FyZ3VtZW50PExvZ2dl
cjo6TG9nU2l0ZUlkZW50aWZpZXI+IHsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJygnKTsKICAg
ICAgICAgYXBwZW5kVW5zaWduZWQ2NEFzSGV4KHZhbHVlLm9iamVjdFB0ciwgYnVpbGRlcik7CiAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSAiKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAg
fQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWVkaWFUaW1lLmNwcCBiL1NvdXJj
ZS9XVEYvd3RmL01lZGlhVGltZS5jcHAKaW5kZXggMDMwNTBiNS4uMWY3N2I0NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvTWVkaWFUaW1lLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZWRp
YVRpbWUuY3BwCkBAIC01NzQsNyArNTc0LDkgQEAgU3RyaW5nIE1lZGlhVGltZTo6dG9TdHJpbmco
KSBjb25zdAogICAgIH0KICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0b0RvdWJsZSgpKTsKICAg
ICBidWlsZGVyLmFwcGVuZCgnfScpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgTWVkaWFUaW1lOjp0b0pTT05TdHJp
bmcoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVVVJRC5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi9VVUlELmNwcAppbmRleCBmYjVmZTViLi5iNTk4ZjAwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9VVUlELmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VVUlELmNwcApAQCAtNTYs
NyArNTYsOSBAQCBTdHJpbmcgY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpCiAgICAgYnVpbGRl
ci5hcHBlbmQoJy0nKTsKICAgICBhcHBlbmRVbnNpZ25lZEFzSGV4Rml4ZWRTaXplKHJhbmRvbURh
dGFbMl0gJiAweDAwMDBmZmZmLCBidWlsZGVyLCA0LCBMb3dlcmNhc2UpOwogICAgIGFwcGVuZFVu
c2lnbmVkQXNIZXhGaXhlZFNpemUocmFuZG9tRGF0YVszXSwgYnVpbGRlciwgOCwgTG93ZXJjYXNl
KTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L1N0cmluZ0J1aWxkZXIuY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVy
LmNwcAppbmRleCBkNzlkNGM1Li4yNTg0YzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L1N0cmluZ0J1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVp
bGRlci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEz
LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAo
QykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dApAQCAtNjIsMjYgKzYyLDQ0IEBAIHZvaWQgU3RyaW5nQnVpbGRlcjo6cmVpZnlTdHJpbmcoKSBj
b25zdAogICAgICAgICBtX3N0cmluZyA9IFN0cmluZ0ltcGw6OmNyZWF0ZVN1YnN0cmluZ1NoYXJp
bmdJbXBsKCptX2J1ZmZlciwgMCwgbV9sZW5ndGgpOwogfQogCi12b2lkIFN0cmluZ0J1aWxkZXI6
OnJlc2l6ZSh1bnNpZ25lZCBuZXdTaXplKQorVW5leHBlY3RlZDxTdHJpbmdCdWlsZGVyOjpGYWls
dXJlPiBTdHJpbmdCdWlsZGVyOjp3b3VsZE92ZXJmbG93KCkKK3sKKyAgICBtX2ZhaWxlZCA9IHRy
dWU7CisgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZhaWx1cmU6OldvdWxkT3ZlcmZsb3cpOwor
fQorCitVbmV4cGVjdGVkPFN0cmluZ0J1aWxkZXI6OkZhaWx1cmU+IFN0cmluZ0J1aWxkZXI6Om91
dE9mTWVtb3J5KCkKK3sKKyAgICBjbGVhcigpOworICAgIG1fZmFpbGVkID0gdHJ1ZTsKKyAgICBy
ZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmFpbHVyZTo6T3V0T2ZNZW1vcnkpOworfQorCitTdHJpbmdC
dWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OnJlc2l6ZSh1bnNpZ25lZCBuZXdTaXpl
KQogewogICAgIC8vIENoZWNrIG5ld1NpemUgPCBtX2xlbmd0aCwgaGVuY2UgbV9sZW5ndGggPiAw
LgogICAgIEFTU0VSVChuZXdTaXplIDw9IG1fbGVuZ3RoKTsKICAgICBpZiAobmV3U2l6ZSA9PSBt
X2xlbmd0aCkKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4geyB9OwogICAgIEFTU0VS
VChtX2xlbmd0aCk7CiAKICAgICAvLyBJZiB0aGVyZSBpcyBhIGJ1ZmZlciwgd2Ugb25seSBuZWVk
IHRvIGR1cGxpY2F0ZSBpdCBpZiBpdCBoYXMgbW9yZSB0aGFuIG9uZSByZWYuCiAgICAgaWYgKG1f
YnVmZmVyKSB7CiAgICAgICAgIG1fc3RyaW5nID0gU3RyaW5nKCk7IC8vIENsZWFyIHRoZSBzdHJp
bmcgdG8gcmVtb3ZlIHRoZSByZWZlcmVuY2UgdG8gbV9idWZmZXIgaWYgYW55IGJlZm9yZSBjaGVj
a2luZyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIG1fYnVmZmVyLgogICAgICAgICBpZiAoIW1fYnVm
ZmVyLT5oYXNPbmVSZWYoKSkgewotICAgICAgICAgICAgaWYgKG1fYnVmZmVyLT5pczhCaXQoKSkK
LSAgICAgICAgICAgICAgICBhbGxvY2F0ZUJ1ZmZlcihtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKSwg
bV9idWZmZXItPmxlbmd0aCgpKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBh
bGxvY2F0ZUJ1ZmZlcihtX2J1ZmZlci0+Y2hhcmFjdGVyczE2KCksIG1fYnVmZmVyLT5sZW5ndGgo
KSk7CisgICAgICAgICAgICBpZiAobV9idWZmZXItPmlzOEJpdCgpKSB7CisgICAgICAgICAgICAg
ICAgYXV0byBhbGxvY2F0ZWQgPSBhbGxvY2F0ZUJ1ZmZlcihtX2J1ZmZlci0+Y2hhcmFjdGVyczgo
KSwgbV9idWZmZXItPmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICBpZiAoIWFsbG9jYXRlZCkK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRlZDsKKyAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgYXV0byBhbGxvY2F0ZWQgPSBhbGxvY2F0ZUJ1ZmZlcihtX2J1
ZmZlci0+Y2hhcmFjdGVyczE2KCksIG1fYnVmZmVyLT5sZW5ndGgoKSk7CisgICAgICAgICAgICAg
ICAgaWYgKCFhbGxvY2F0ZWQpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBhbGxvY2F0ZWQ7
CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgbV9sZW5ndGggPSBuZXdTaXplOwog
ICAgICAgICBBU1NFUlQobV9idWZmZXItPmxlbmd0aCgpID49IG1fbGVuZ3RoKTsKLSAgICAgICAg
cmV0dXJuOworICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAogICAgIC8vIFNpbmNlIG1fbGVu
Z3RoICYmICFtX2J1ZmZlciwgdGhlIHN0cmluZyBtdXN0IGJlIHZhbGlkIGluIG1fc3RyaW5nLCBh
bmQgbV9zdHJpbmcubGVuZ3RoKCkgPiAwLgpAQCAtODksNTQgKzEwNyw2MCBAQCB2b2lkIFN0cmlu
Z0J1aWxkZXI6OnJlc2l6ZSh1bnNpZ25lZCBuZXdTaXplKQogICAgIEFTU0VSVChtX2xlbmd0aCA9
PSBtX3N0cmluZy5sZW5ndGgoKSk7CiAgICAgQVNTRVJUKG5ld1NpemUgPCBtX3N0cmluZy5sZW5n
dGgoKSk7CiAgICAgbV9sZW5ndGggPSBuZXdTaXplOwotICAgIG1fc3RyaW5nID0gU3RyaW5nSW1w
bDo6Y3JlYXRlU3Vic3RyaW5nU2hhcmluZ0ltcGwoKm1fc3RyaW5nLmltcGwoKSwgMCwgbmV3U2l6
ZSk7CisgICAgaWYgKGF1dG8gY3JlYXRlZCA9IFN0cmluZ0ltcGw6OnRyeUNyZWF0ZVN1YnN0cmlu
Z1NoYXJpbmdJbXBsKCptX3N0cmluZy5pbXBsKCksIDAsIG5ld1NpemUpKSB7CisgICAgICAgIG1f
c3RyaW5nID0gKmNyZWF0ZWQ7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfSBlbHNlCisgICAg
ICAgIHJldHVybiBvdXRPZk1lbW9yeSgpOwogfQogCiAvLyBBbGxvY2F0ZSBhIG5ldyA4IGJpdCBi
dWZmZXIsIGNvcHlpbmcgaW4gY3VycmVudENoYXJhY3RlcnMgKHRoZXNlIG1heSBjb21lIGZyb20g
ZWl0aGVyIG1fc3RyaW5nCiAvLyBvciBtX2J1ZmZlciwgbmVpdGhlciB3aWxsIGJlIHJlYXNzaWdu
ZWQgdW50aWwgdGhlIGNvcHkgaGFzIGNvbXBsZXRlZCkuCi12b2lkIFN0cmluZ0J1aWxkZXI6OmFs
bG9jYXRlQnVmZmVyKGNvbnN0IExDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVx
dWlyZWRMZW5ndGgpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFs
bG9jYXRlQnVmZmVyKGNvbnN0IExDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVx
dWlyZWRMZW5ndGgpCiB7CiAgICAgQVNTRVJUKG1faXM4Qml0KTsKICAgICAvLyBDb3B5IHRoZSBl
eGlzdGluZyBkYXRhIGludG8gYSBuZXcgYnVmZmVyLCBzZXQgcmVzdWx0IHRvIHBvaW50IHRvIHRo
ZSBlbmQgb2YgdGhlIGV4aXN0aW5nIGRhdGEuCi0gICAgYXV0byBidWZmZXIgPSBTdHJpbmdJbXBs
OjpjcmVhdGVVbmluaXRpYWxpemVkKHJlcXVpcmVkTGVuZ3RoLCBtX2J1ZmZlckNoYXJhY3RlcnM4
KTsKKyAgICBhdXRvIGJ1ZmZlciA9IFN0cmluZ0ltcGw6OnRyeUNyZWF0ZVVuaW5pdGlhbGl6ZWQo
cmVxdWlyZWRMZW5ndGgsIG1fYnVmZmVyQ2hhcmFjdGVyczgpOworICAgIGlmICghYnVmZmVyKQor
ICAgICAgICByZXR1cm4gb3V0T2ZNZW1vcnkoKTsKICAgICBtZW1jcHkobV9idWZmZXJDaGFyYWN0
ZXJzOCwgY3VycmVudENoYXJhY3RlcnMsIHN0YXRpY19jYXN0PHNpemVfdD4obV9sZW5ndGgpICog
c2l6ZW9mKExDaGFyKSk7IC8vIFRoaXMgY2FuJ3Qgb3ZlcmZsb3cuCiAgICAgCiAgICAgLy8gVXBk
YXRlIHRoZSBidWlsZGVyIHN0YXRlLgogICAgIG1fYnVmZmVyID0gV1RGTW92ZShidWZmZXIpOwog
ICAgIG1fc3RyaW5nID0gU3RyaW5nKCk7CiAgICAgQVNTRVJUKG1fYnVmZmVyLT5sZW5ndGgoKSA9
PSByZXF1aXJlZExlbmd0aCk7CisgICAgcmV0dXJuIHsgfTsKIH0KIAogLy8gQWxsb2NhdGUgYSBu
ZXcgMTYgYml0IGJ1ZmZlciwgY29weWluZyBpbiBjdXJyZW50Q2hhcmFjdGVycyAodGhlc2UgbWF5
IGNvbWUgZnJvbSBlaXRoZXIgbV9zdHJpbmcKIC8vIG9yIG1fYnVmZmVyLCAgbmVpdGhlciB3aWxs
IGJlIHJlYXNzaWduZWQgdW50aWwgdGhlIGNvcHkgaGFzIGNvbXBsZXRlZCkuCi12b2lkIFN0cmlu
Z0J1aWxkZXI6OmFsbG9jYXRlQnVmZmVyKGNvbnN0IFVDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywg
dW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmlu
Z0J1aWxkZXI6OmFsbG9jYXRlQnVmZmVyKGNvbnN0IFVDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywg
dW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCiB7CiAgICAgQVNTRVJUKCFtX2lzOEJpdCk7CiAgICAg
Ly8gQ29weSB0aGUgZXhpc3RpbmcgZGF0YSBpbnRvIGEgbmV3IGJ1ZmZlciwgc2V0IHJlc3VsdCB0
byBwb2ludCB0byB0aGUgZW5kIG9mIHRoZSBleGlzdGluZyBkYXRhLgotICAgIGF1dG8gYnVmZmVy
ID0gU3RyaW5nSW1wbDo6Y3JlYXRlVW5pbml0aWFsaXplZChyZXF1aXJlZExlbmd0aCwgbV9idWZm
ZXJDaGFyYWN0ZXJzMTYpOworICAgIGF1dG8gYnVmZmVyID0gU3RyaW5nSW1wbDo6dHJ5Q3JlYXRl
VW5pbml0aWFsaXplZChyZXF1aXJlZExlbmd0aCwgbV9idWZmZXJDaGFyYWN0ZXJzMTYpOworICAg
IGlmICghYnVmZmVyKQorICAgICAgICByZXR1cm4gb3V0T2ZNZW1vcnkoKTsKICAgICBtZW1jcHko
bV9idWZmZXJDaGFyYWN0ZXJzMTYsIGN1cnJlbnRDaGFyYWN0ZXJzLCBzdGF0aWNfY2FzdDxzaXpl
X3Q+KG1fbGVuZ3RoKSAqIHNpemVvZihVQ2hhcikpOyAvLyBUaGlzIGNhbid0IG92ZXJmbG93Lgog
ICAgIAogICAgIC8vIFVwZGF0ZSB0aGUgYnVpbGRlciBzdGF0ZS4KICAgICBtX2J1ZmZlciA9IFdU
Rk1vdmUoYnVmZmVyKTsKICAgICBtX3N0cmluZyA9IFN0cmluZygpOwogICAgIEFTU0VSVChtX2J1
ZmZlci0+bGVuZ3RoKCkgPT0gcmVxdWlyZWRMZW5ndGgpOworICAgIHJldHVybiB7IH07CiB9CiAK
IC8vIEFsbG9jYXRlIGEgbmV3IDE2IGJpdCBidWZmZXIsIGNvcHlpbmcgaW4gY3VycmVudENoYXJh
Y3RlcnMgKHdoaWNoIGlzIDggYml0IGFuZCBtYXkgY29tZQogLy8gZnJvbSBlaXRoZXIgbV9zdHJp
bmcgb3IgbV9idWZmZXIsIG5laXRoZXIgd2lsbCBiZSByZWFzc2lnbmVkIHVudGlsIHRoZSBjb3B5
IGhhcyBjb21wbGV0ZWQpLgotdm9pZCBTdHJpbmdCdWlsZGVyOjphbGxvY2F0ZUJ1ZmZlclVwQ29u
dmVydChjb25zdCBMQ2hhciogY3VycmVudENoYXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVu
Z3RoKQotewotICAgIGlmICghdHJ5QWxsb2NhdGVCdWZmZXJVcENvbnZlcnQoY3VycmVudENoYXJh
Y3RlcnMsIHJlcXVpcmVkTGVuZ3RoKSkKLSAgICAgICAgQ1JBU0goKTsKLX0KLWJvb2wgU3RyaW5n
QnVpbGRlcjo6dHJ5QWxsb2NhdGVCdWZmZXJVcENvbnZlcnQoY29uc3QgTENoYXIqIGN1cnJlbnRD
aGFyYWN0ZXJzLCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKK1N0cmluZ0J1aWxkZXI6OkZhbGxp
YmxlPD4gU3RyaW5nQnVpbGRlcjo6YWxsb2NhdGVCdWZmZXJVcENvbnZlcnQoY29uc3QgTENoYXIq
IGN1cnJlbnRDaGFyYWN0ZXJzLCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKIHsKICAgICBBU1NF
UlQobV9pczhCaXQpOwogICAgIEFTU0VSVChyZXF1aXJlZExlbmd0aCA+PSBtX2xlbmd0aCk7CiAg
ICAgLy8gQ29weSB0aGUgZXhpc3RpbmcgZGF0YSBpbnRvIGEgbmV3IGJ1ZmZlciwgc2V0IHJlc3Vs
dCB0byBwb2ludCB0byB0aGUgZW5kIG9mIHRoZSBleGlzdGluZyBkYXRhLgogICAgIGF1dG8gYnVm
ZmVyID0gU3RyaW5nSW1wbDo6dHJ5Q3JlYXRlVW5pbml0aWFsaXplZChyZXF1aXJlZExlbmd0aCwg
bV9idWZmZXJDaGFyYWN0ZXJzMTYpOwogICAgIGlmICghYnVmZmVyKQotICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIHJldHVybiBvdXRPZk1lbW9yeSgpOworCiAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IG1fbGVuZ3RoOyArK2kpCiAgICAgICAgIG1fYnVmZmVyQ2hhcmFjdGVyczE2
W2ldID0gY3VycmVudENoYXJhY3RlcnNbaV07CiAgICAgCkBAIC0xNDYsMTEgKzE3MCwxMSBAQCBi
b29sIFN0cmluZ0J1aWxkZXI6OnRyeUFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KGNvbnN0IExDaGFy
KiBjdXJyZW50Q2hhcmFjdGVycywgdQogICAgIG1fYnVmZmVyID0gV1RGTW92ZShidWZmZXIpOwog
ICAgIG1fc3RyaW5nID0gU3RyaW5nKCk7CiAgICAgQVNTRVJUKG1fYnVmZmVyLT5sZW5ndGgoKSA9
PSByZXF1aXJlZExlbmd0aCk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHsgfTsKIH0K
IAogdGVtcGxhdGUgPD4KLXZvaWQgU3RyaW5nQnVpbGRlcjo6cmVhbGxvY2F0ZUJ1ZmZlcjxMQ2hh
cj4odW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0
cmluZ0J1aWxkZXI6OnJlYWxsb2NhdGVCdWZmZXI8TENoYXI+KHVuc2lnbmVkIHJlcXVpcmVkTGVu
Z3RoKQogewogICAgIC8vIElmIHRoZSBidWZmZXIgaGFzIG9ubHkgb25lIHJlZiAoYnkgdGhpcyBT
dHJpbmdCdWlsZGVyKSwgcmVhbGxvY2F0ZSBpdCwKICAgICAvLyBvdGhlcndpc2UgZmFsbCBiYWNr
IHRvICJhbGxvY2F0ZSBhbmQgY29weSIgbWV0aG9kLgpAQCAtMTU5LDY2ICsxODMsODkgQEAgdm9p
ZCBTdHJpbmdCdWlsZGVyOjpyZWFsbG9jYXRlQnVmZmVyPExDaGFyPih1bnNpZ25lZCByZXF1aXJl
ZExlbmd0aCkKICAgICBBU1NFUlQobV9pczhCaXQpOwogICAgIEFTU0VSVChtX2J1ZmZlci0+aXM4
Qml0KCkpOwogICAgIAotICAgIGlmIChtX2J1ZmZlci0+aGFzT25lUmVmKCkpCi0gICAgICAgIG1f
YnVmZmVyID0gU3RyaW5nSW1wbDo6cmVhbGxvY2F0ZShtX2J1ZmZlci5yZWxlYXNlTm9uTnVsbCgp
LCByZXF1aXJlZExlbmd0aCwgbV9idWZmZXJDaGFyYWN0ZXJzOCk7Ci0gICAgZWxzZQotICAgICAg
ICBhbGxvY2F0ZUJ1ZmZlcihtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKSwgcmVxdWlyZWRMZW5ndGgp
OworICAgIGlmIChtX2J1ZmZlci0+aGFzT25lUmVmKCkpIHsKKyAgICAgICAgYXV0byByZWFsbG9j
YXRlZCA9IFN0cmluZ0ltcGw6OnRyeVJlYWxsb2NhdGUobV9idWZmZXIucmVsZWFzZU5vbk51bGwo
KSwgcmVxdWlyZWRMZW5ndGgsIG1fYnVmZmVyQ2hhcmFjdGVyczgpOworICAgICAgICBpZiAoIXJl
YWxsb2NhdGVkKQorICAgICAgICAgICAgcmV0dXJuIG91dE9mTWVtb3J5KCk7CisgICAgICAgIG1f
YnVmZmVyID0gcmVhbGxvY2F0ZWQuZ2V0KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byBh
bGxvY2F0ZWQgPSBhbGxvY2F0ZUJ1ZmZlcihtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKSwgcmVxdWly
ZWRMZW5ndGgpOworICAgICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAgIHJldHVybiBh
bGxvY2F0ZWQ7CisgICAgfQogICAgIEFTU0VSVChtX2J1ZmZlci0+bGVuZ3RoKCkgPT0gcmVxdWly
ZWRMZW5ndGgpOworICAgIHJldHVybiB7IH07CiB9CiAKIHRlbXBsYXRlIDw+Ci12b2lkIFN0cmlu
Z0J1aWxkZXI6OnJlYWxsb2NhdGVCdWZmZXI8VUNoYXI+KHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3Ro
KQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjpyZWFsbG9jYXRlQnVm
ZmVyPFVDaGFyPih1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkKIHsKICAgICAvLyBJZiB0aGUgYnVm
ZmVyIGhhcyBvbmx5IG9uZSByZWYgKGJ5IHRoaXMgU3RyaW5nQnVpbGRlciksIHJlYWxsb2NhdGUg
aXQsCiAgICAgLy8gb3RoZXJ3aXNlIGZhbGwgYmFjayB0byAiYWxsb2NhdGUgYW5kIGNvcHkiIG1l
dGhvZC4KICAgICBtX3N0cmluZyA9IFN0cmluZygpOwogICAgIAotICAgIGlmIChtX2J1ZmZlci0+
aXM4Qml0KCkpCi0gICAgICAgIGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KG1fYnVmZmVyLT5jaGFy
YWN0ZXJzOCgpLCByZXF1aXJlZExlbmd0aCk7CisgICAgaWYgKG1fYnVmZmVyLT5pczhCaXQoKSkg
eworICAgICAgICBhdXRvIGFsbG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KG1fYnVm
ZmVyLT5jaGFyYWN0ZXJzOCgpLCByZXF1aXJlZExlbmd0aCk7CisgICAgICAgIGlmICghYWxsb2Nh
dGVkKQorICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRlZDsKKyAgICB9CiAgICAgZWxzZSBpZiAo
bV9idWZmZXItPmhhc09uZVJlZigpKQogICAgICAgICBtX2J1ZmZlciA9IFN0cmluZ0ltcGw6OnJl
YWxsb2NhdGUobV9idWZmZXIucmVsZWFzZU5vbk51bGwoKSwgcmVxdWlyZWRMZW5ndGgsIG1fYnVm
ZmVyQ2hhcmFjdGVyczE2KTsKICAgICBlbHNlCiAgICAgICAgIGFsbG9jYXRlQnVmZmVyKG1fYnVm
ZmVyLT5jaGFyYWN0ZXJzMTYoKSwgcmVxdWlyZWRMZW5ndGgpOwogICAgIEFTU0VSVChtX2J1ZmZl
ci0+bGVuZ3RoKCkgPT0gcmVxdWlyZWRMZW5ndGgpOworICAgIHJldHVybiB7IH07CiB9CiAKLXZv
aWQgU3RyaW5nQnVpbGRlcjo6cmVzZXJ2ZUNhcGFjaXR5KHVuc2lnbmVkIG5ld0NhcGFjaXR5KQor
U3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjpyZXNlcnZlQ2FwYWNpdHko
dW5zaWduZWQgbmV3Q2FwYWNpdHkpCiB7CiAgICAgaWYgKG1fYnVmZmVyKSB7CiAgICAgICAgIC8v
IElmIHRoZXJlIGlzIGFscmVhZHkgYSBidWZmZXIsIHRoZW4gZ3JvdyBpZiBuZWNlc3NhcnkuCiAg
ICAgICAgIGlmIChuZXdDYXBhY2l0eSA+IG1fYnVmZmVyLT5sZW5ndGgoKSkgewotICAgICAgICAg
ICAgaWYgKG1fYnVmZmVyLT5pczhCaXQoKSkKLSAgICAgICAgICAgICAgICByZWFsbG9jYXRlQnVm
ZmVyPExDaGFyPihuZXdDYXBhY2l0eSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgcmVhbGxvY2F0ZUJ1ZmZlcjxVQ2hhcj4obmV3Q2FwYWNpdHkpOworICAgICAgICAgICAgaWYg
KG1fYnVmZmVyLT5pczhCaXQoKSkgeworICAgICAgICAgICAgICAgIGF1dG8gcmVhbGxvY2F0ZWQg
PSByZWFsbG9jYXRlQnVmZmVyPExDaGFyPihuZXdDYXBhY2l0eSk7CisgICAgICAgICAgICAgICAg
aWYgKCFyZWFsbG9jYXRlZCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlYWxsb2NhdGVk
OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBhdXRvIHJlYWxsb2NhdGVk
ID0gcmVhbGxvY2F0ZUJ1ZmZlcjxVQ2hhcj4obmV3Q2FwYWNpdHkpOworICAgICAgICAgICAgICAg
IGlmICghcmVhbGxvY2F0ZWQpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWFsbG9jYXRl
ZDsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIEdy
b3cgdGhlIHN0cmluZywgaWYgbmVjZXNzYXJ5LgogICAgICAgICBpZiAobmV3Q2FwYWNpdHkgPiBt
X2xlbmd0aCkgewogICAgICAgICAgICAgaWYgKCFtX2xlbmd0aCkgewogICAgICAgICAgICAgICAg
IExDaGFyKiBudWxsUGxhY2Vob2xkZXIgPSAwOwotICAgICAgICAgICAgICAgIGFsbG9jYXRlQnVm
ZmVyKG51bGxQbGFjZWhvbGRlciwgbmV3Q2FwYWNpdHkpOwotICAgICAgICAgICAgfSBlbHNlIGlm
IChtX3N0cmluZy5pczhCaXQoKSkKLSAgICAgICAgICAgICAgICBhbGxvY2F0ZUJ1ZmZlcihtX3N0
cmluZy5jaGFyYWN0ZXJzOCgpLCBuZXdDYXBhY2l0eSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgYWxsb2NhdGVCdWZmZXIobV9zdHJpbmcuY2hhcmFjdGVyczE2KCksIG5ld0Nh
cGFjaXR5KTsKKyAgICAgICAgICAgICAgICBhdXRvIGFsbG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVy
KG51bGxQbGFjZWhvbGRlciwgbmV3Q2FwYWNpdHkpOworICAgICAgICAgICAgICAgIGlmICghYWxs
b2NhdGVkKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWxsb2NhdGVkOworICAgICAgICAg
ICAgfSBlbHNlIGlmIChtX3N0cmluZy5pczhCaXQoKSkgeworICAgICAgICAgICAgICAgIGF1dG8g
YWxsb2NhdGVkID0gYWxsb2NhdGVCdWZmZXIobV9zdHJpbmcuY2hhcmFjdGVyczgoKSwgbmV3Q2Fw
YWNpdHkpOworICAgICAgICAgICAgICAgIGlmICghYWxsb2NhdGVkKQorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYWxsb2NhdGVkOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICBhdXRvIGFsbG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVyKG1fc3RyaW5nLmNoYXJhY3RlcnMx
NigpLCBuZXdDYXBhY2l0eSk7CisgICAgICAgICAgICAgICAgaWYgKCFhbGxvY2F0ZWQpCisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBhbGxvY2F0ZWQ7CisgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICB9CiAgICAgQVNTRVJUKCFuZXdDYXBhY2l0eSB8fCBtX2J1ZmZlci0+bGVuZ3RoKCkg
Pj0gbmV3Q2FwYWNpdHkpOworICAgIHJldHVybiB7IH07CiB9CiAKIC8vIE1ha2UgJ2xlbmd0aCcg
YWRkaXRpb25hbCBjYXBhY2l0eSBiZSBhdmFpbGFibGUgaW4gbV9idWZmZXIsIHVwZGF0ZSBtX3N0
cmluZyAmIG1fbGVuZ3RoLAogLy8gcmV0dXJuIGEgcG9pbnRlciB0byB0aGUgbmV3bHkgYWxsb2Nh
dGVkIHN0b3JhZ2UuCi0vLyBSZXR1cm5zIG51bGxwdHIgaWYgdGhlIHNpemUgb2YgdGhlIG5ldyBi
dWlsZGVyIHdvdWxkIGhhdmUgb3ZlcmZsb3dlZAogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBl
PgotQUxXQVlTX0lOTElORSBDaGFyVHlwZSogU3RyaW5nQnVpbGRlcjo6YXBwZW5kVW5pbml0aWFs
aXplZCh1bnNpZ25lZCBsZW5ndGgpCitBTFdBWVNfSU5MSU5FIFN0cmluZ0J1aWxkZXI6OkZhbGxp
YmxlPENoYXJUeXBlKj4gU3RyaW5nQnVpbGRlcjo6YXBwZW5kVW5pbml0aWFsaXplZCh1bnNpZ25l
ZCBsZW5ndGgpCiB7CiAgICAgQVNTRVJUKGxlbmd0aCk7CiAKICAgICAvLyBDYWxjdWxhdGUgdGhl
IG5ldyBzaXplIG9mIHRoZSBidWlsZGVyIGFmdGVyIGFwcGVuZGluZy4KICAgICB1bnNpZ25lZCBy
ZXF1aXJlZExlbmd0aCA9IGxlbmd0aCArIG1fbGVuZ3RoOwogICAgIGlmIChyZXF1aXJlZExlbmd0
aCA8IGxlbmd0aCkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiB3b3Vs
ZE92ZXJmbG93KCk7CiAKICAgICBpZiAoKG1fYnVmZmVyKSAmJiAocmVxdWlyZWRMZW5ndGggPD0g
bV9idWZmZXItPmxlbmd0aCgpKSkgewogICAgICAgICAvLyBJZiB0aGUgYnVmZmVyIGlzIHZhbGlk
IGl0IG11c3QgYmUgYXQgbGVhc3QgYXMgbG9uZyBhcyB0aGUgY3VycmVudCBidWlsZGVyIGNvbnRl
bnRzIQpAQCAtMjM1LDcgKzI4Miw3IEBAIEFMV0FZU19JTkxJTkUgQ2hhclR5cGUqIFN0cmluZ0J1
aWxkZXI6OmFwcGVuZFVuaW5pdGlhbGl6ZWQodW5zaWduZWQgbGVuZ3RoKQogLy8gTWFrZSAnbGVu
Z3RoJyBhZGRpdGlvbmFsIGNhcGFjaXR5IGJlIGF2YWlsYWJsZSBpbiBtX2J1ZmZlciwgdXBkYXRl
IG1fc3RyaW5nICYgbV9sZW5ndGgsCiAvLyByZXR1cm4gYSBwb2ludGVyIHRvIHRoZSBuZXdseSBh
bGxvY2F0ZWQgc3RvcmFnZS4KIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KLUNoYXJUeXBl
KiBTdHJpbmdCdWlsZGVyOjphcHBlbmRVbmluaXRpYWxpemVkU2xvdyh1bnNpZ25lZCByZXF1aXJl
ZExlbmd0aCkKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPENoYXJUeXBlKj4gU3RyaW5nQnVpbGRl
cjo6YXBwZW5kVW5pbml0aWFsaXplZFNsb3codW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCiB7CiAg
ICAgQVNTRVJUKHJlcXVpcmVkTGVuZ3RoKTsKIApAQCAtMjQzLDEwICsyOTAsMTQgQEAgQ2hhclR5
cGUqIFN0cmluZ0J1aWxkZXI6OmFwcGVuZFVuaW5pdGlhbGl6ZWRTbG93KHVuc2lnbmVkIHJlcXVp
cmVkTGVuZ3RoKQogICAgICAgICAvLyBJZiB0aGUgYnVmZmVyIGlzIHZhbGlkIGl0IG11c3QgYmUg
YXQgbGVhc3QgYXMgbG9uZyBhcyB0aGUgY3VycmVudCBidWlsZGVyIGNvbnRlbnRzIQogICAgICAg
ICBBU1NFUlQobV9idWZmZXItPmxlbmd0aCgpID49IG1fbGVuZ3RoKTsKICAgICAgICAgCi0gICAg
ICAgIHJlYWxsb2NhdGVCdWZmZXI8Q2hhclR5cGU+KGV4cGFuZGVkQ2FwYWNpdHkoY2FwYWNpdHko
KSwgcmVxdWlyZWRMZW5ndGgpKTsKKyAgICAgICAgYXV0byByZWFsbG9jYXRlZCA9IHJlYWxsb2Nh
dGVCdWZmZXI8Q2hhclR5cGU+KGV4cGFuZGVkQ2FwYWNpdHkoY2FwYWNpdHkoKSwgcmVxdWlyZWRM
ZW5ndGgpKTsKKyAgICAgICAgaWYgKCFyZWFsbG9jYXRlZCkKKyAgICAgICAgICAgIHJldHVybiBt
YWtlVW5leHBlY3RlZChyZWFsbG9jYXRlZC5lcnJvcigpKTsKICAgICB9IGVsc2UgewogICAgICAg
ICBBU1NFUlQobV9zdHJpbmcubGVuZ3RoKCkgPT0gbV9sZW5ndGgpOwotICAgICAgICBhbGxvY2F0
ZUJ1ZmZlcihtX2xlbmd0aCA/IG1fc3RyaW5nLmNoYXJhY3RlcnM8Q2hhclR5cGU+KCkgOiAwLCBl
eHBhbmRlZENhcGFjaXR5KGNhcGFjaXR5KCksIHJlcXVpcmVkTGVuZ3RoKSk7CisgICAgICAgIGF1
dG8gYWxsb2NhdGVkID0gYWxsb2NhdGVCdWZmZXIobV9sZW5ndGggPyBtX3N0cmluZy5jaGFyYWN0
ZXJzPENoYXJUeXBlPigpIDogMCwgZXhwYW5kZWRDYXBhY2l0eShjYXBhY2l0eSgpLCByZXF1aXJl
ZExlbmd0aCkpOworICAgICAgICBpZiAoIWFsbG9jYXRlZCkKKyAgICAgICAgICAgIHJldHVybiBt
YWtlVW5leHBlY3RlZChhbGxvY2F0ZWQuZXJyb3IoKSk7CiAgICAgfQogICAgIAogICAgIENoYXJU
eXBlKiByZXN1bHQgPSBnZXRCdWZmZXJDaGFyYWN0ZXJzPENoYXJUeXBlPigpICsgbV9sZW5ndGg7
CkBAIC0yNTUsMTYgKzMwNiwxMCBAQCBDaGFyVHlwZSogU3RyaW5nQnVpbGRlcjo6YXBwZW5kVW5p
bml0aWFsaXplZFNsb3codW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpCiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmQoY29uc3QgVUNoYXIqIGNoYXJhY3Rl
cnMsIHVuc2lnbmVkIGxlbmd0aCkKLXsKLSAgICBpZiAoIXRyeUFwcGVuZChjaGFyYWN0ZXJzLCBs
ZW5ndGgpKQotICAgICAgICBDUkFTSCgpOwotfQotCi1ib29sIFN0cmluZ0J1aWxkZXI6OnRyeUFw
cGVuZChjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQorU3RyaW5nQnVp
bGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmQoY29uc3QgVUNoYXIqIGNoYXJh
Y3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBpZiAoIWxlbmd0aCkKLSAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIHJldHVybiB7IH07CiAKICAgICBBU1NFUlQoY2hhcmFjdGVycyk7
CiAKQEAgLTI3Miw1NCArMzE3LDUxIEBAIGJvb2wgU3RyaW5nQnVpbGRlcjo6dHJ5QXBwZW5kKGNv
bnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgICAgIGlmIChsZW5n
dGggPT0gMSAmJiAhKCpjaGFyYWN0ZXJzICYgfjB4ZmYpKSB7CiAgICAgICAgICAgICAvLyBBcHBl
bmQgYXMgOCBiaXQgY2hhcmFjdGVyCiAgICAgICAgICAgICBMQ2hhciBsQ2hhciA9IHN0YXRpY19j
YXN0PExDaGFyPigqY2hhcmFjdGVycyk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ5QXBwZW5kKCZs
Q2hhciwgMSk7CisgICAgICAgICAgICByZXR1cm4gYXBwZW5kKCZsQ2hhciwgMSk7CiAgICAgICAg
IH0KIAogICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIG5ldyBzaXplIG9mIHRoZSBidWlsZGVyIGFm
dGVyIGFwcGVuZGluZy4KICAgICAgICAgdW5zaWduZWQgcmVxdWlyZWRMZW5ndGggPSBsZW5ndGgg
KyBtX2xlbmd0aDsKICAgICAgICAgaWYgKHJlcXVpcmVkTGVuZ3RoIDwgbGVuZ3RoKQotICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIHdvdWxkT3ZlcmZsb3coKTsK
ICAgICAgICAgCiAgICAgICAgIGlmIChtX2J1ZmZlcikgewogICAgICAgICAgICAgLy8gSWYgdGhl
IGJ1ZmZlciBpcyB2YWxpZCBpdCBtdXN0IGJlIGF0IGxlYXN0IGFzIGxvbmcgYXMgdGhlIGN1cnJl
bnQgYnVpbGRlciBjb250ZW50cyEKICAgICAgICAgICAgIEFTU0VSVChtX2J1ZmZlci0+bGVuZ3Ro
KCkgPj0gbV9sZW5ndGgpOwotICAgICAgICAgICAgaWYgKCF0cnlBbGxvY2F0ZUJ1ZmZlclVwQ29u
dmVydChtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKSwgZXhwYW5kZWRDYXBhY2l0eShjYXBhY2l0eSgp
LCByZXF1aXJlZExlbmd0aCkpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgICAgIAorICAgICAgICAgICAgYXV0byBhbGxvY2F0ZWQgPSBhbGxvY2F0ZUJ1ZmZlclVwQ29u
dmVydChtX2J1ZmZlci0+Y2hhcmFjdGVyczgoKSwgZXhwYW5kZWRDYXBhY2l0eShjYXBhY2l0eSgp
LCByZXF1aXJlZExlbmd0aCkpOworICAgICAgICAgICAgaWYgKCFhbGxvY2F0ZWQpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIGFsbG9jYXRlZDsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
IEFTU0VSVChtX3N0cmluZy5sZW5ndGgoKSA9PSBtX2xlbmd0aCk7Ci0gICAgICAgICAgICBpZiAo
IXRyeUFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KG1fc3RyaW5nLmlzTnVsbCgpID8gMCA6IG1fc3Ry
aW5nLmNoYXJhY3RlcnM4KCksIGV4cGFuZGVkQ2FwYWNpdHkoY2FwYWNpdHkoKSwgcmVxdWlyZWRM
ZW5ndGgpKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBhdXRv
IGFsbG9jYXRlZCA9IGFsbG9jYXRlQnVmZmVyVXBDb252ZXJ0KG1fc3RyaW5nLmlzTnVsbCgpID8g
MCA6IG1fc3RyaW5nLmNoYXJhY3RlcnM4KCksIGV4cGFuZGVkQ2FwYWNpdHkoY2FwYWNpdHkoKSwg
cmVxdWlyZWRMZW5ndGgpKTsKKyAgICAgICAgICAgIGlmICghYWxsb2NhdGVkKQorICAgICAgICAg
ICAgICAgIHJldHVybiBhbGxvY2F0ZWQ7CiAgICAgICAgIH0KIAogICAgICAgICBtZW1jcHkobV9i
dWZmZXJDaGFyYWN0ZXJzMTYgKyBtX2xlbmd0aCwgY2hhcmFjdGVycywgc3RhdGljX2Nhc3Q8c2l6
ZV90PihsZW5ndGgpICogc2l6ZW9mKFVDaGFyKSk7CiAgICAgICAgIG1fbGVuZ3RoID0gcmVxdWly
ZWRMZW5ndGg7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgVUNoYXIqIGRlc3QgPSBhcHBlbmRVbmlu
aXRpYWxpemVkPFVDaGFyPihsZW5ndGgpOwotICAgICAgICBpZiAoIWRlc3QpCi0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIG1lbWNweShkZXN0LCBjaGFyYWN0ZXJzLCBzdGF0aWNf
Y2FzdDxzaXplX3Q+KGxlbmd0aCkgKiBzaXplb2YoVUNoYXIpKTsKKyAgICAgICAgaWYgKGF1dG8g
YXBwZW5kZWQgPSBhcHBlbmRVbmluaXRpYWxpemVkPFVDaGFyPihsZW5ndGgpKQorICAgICAgICAg
ICAgbWVtY3B5KCphcHBlbmRlZCwgY2hhcmFjdGVycywgc3RhdGljX2Nhc3Q8c2l6ZV90PihsZW5n
dGgpICogc2l6ZW9mKFVDaGFyKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBt
YWtlVW5leHBlY3RlZChhcHBlbmRlZC5lcnJvcigpKTsKICAgICB9CiAgICAgQVNTRVJUKG1fYnVm
ZmVyLT5sZW5ndGgoKSA+PSBtX2xlbmd0aCk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJu
IHsgfTsKIH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmQoY29uc3QgTENoYXIqIGNoYXJh
Y3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKLXsKLSAgICBpZiAoIXRyeUFwcGVuZChjaGFyYWN0ZXJz
LCBsZW5ndGgpKQotICAgICAgICBDUkFTSCgpOwotfQotCi1ib29sIFN0cmluZ0J1aWxkZXI6OnRy
eUFwcGVuZChjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQorU3RyaW5n
QnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmQoY29uc3QgTENoYXIqIGNo
YXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBpZiAoIWxlbmd0aCkKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0KKyAgICAgICAgcmV0dXJuIHsgfTsKICAgICBBU1NFUlQoY2hhcmFjdGVy
cyk7CiAKICAgICBpZiAobV9pczhCaXQpIHsKLSAgICAgICAgTENoYXIqIGRlc3QgPSBhcHBlbmRV
bmluaXRpYWxpemVkPExDaGFyPihsZW5ndGgpOwotICAgICAgICBpZiAoIWRlc3QpCi0gICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGF1dG8gYXBwZW5kZWQgPSBhcHBlbmRVbmluaXRp
YWxpemVkPExDaGFyPihsZW5ndGgpOworICAgICAgICBpZiAoIWFwcGVuZGVkKQorICAgICAgICAg
ICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKGFwcGVuZGVkLmVycm9yKCkpOworICAgICAgICBMQ2hh
ciogZGVzdCA9ICphcHBlbmRlZDsKICAgICAgICAgaWYgKGxlbmd0aCA+IDgpCiAgICAgICAgICAg
ICBtZW1jcHkoZGVzdCwgY2hhcmFjdGVycywgc3RhdGljX2Nhc3Q8c2l6ZV90PihsZW5ndGgpICog
c2l6ZW9mKExDaGFyKSk7CiAgICAgICAgIGVsc2UgewpAQCAtMzI4LDc2ICszNzAsNzkgQEAgYm9v
bCBTdHJpbmdCdWlsZGVyOjp0cnlBcHBlbmQoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2ln
bmVkIGxlbmd0aCkKICAgICAgICAgICAgICAgICAqKGRlc3QrKykgPSAqKGNoYXJhY3RlcnMrKyk7
CiAgICAgICAgIH0KICAgICB9IGVsc2UgewotICAgICAgICBVQ2hhciogZGVzdCA9IGFwcGVuZFVu
aW5pdGlhbGl6ZWQ8VUNoYXI+KGxlbmd0aCk7Ci0gICAgICAgIGlmICghZGVzdCkKLSAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgYXV0byBhcHBlbmRlZCA9IGFwcGVuZFVuaW5pdGlh
bGl6ZWQ8VUNoYXI+KGxlbmd0aCk7CisgICAgICAgIGlmICghYXBwZW5kZWQpCisgICAgICAgICAg
ICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoYXBwZW5kZWQuZXJyb3IoKSk7CisgICAgICAgIFVDaGFy
KiBkZXN0ID0gKmFwcGVuZGVkOwogICAgICAgICBjb25zdCBMQ2hhciogZW5kID0gY2hhcmFjdGVy
cyArIGxlbmd0aDsKICAgICAgICAgd2hpbGUgKGNoYXJhY3RlcnMgPCBlbmQpCiAgICAgICAgICAg
ICAqKGRlc3QrKykgPSAqKGNoYXJhY3RlcnMrKyk7CiAgICAgfQotICAgIHJldHVybiB0cnVlOwor
ICAgIHJldHVybiB7IH07CiB9CiAKICNpZiBVU0UoQ0YpCiAKLXZvaWQgU3RyaW5nQnVpbGRlcjo6
YXBwZW5kKENGU3RyaW5nUmVmIHN0cmluZykKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3Ry
aW5nQnVpbGRlcjo6YXBwZW5kKENGU3RyaW5nUmVmIHN0cmluZykKIHsKICAgICAvLyBGYXN0IHBh
dGg6IGF2b2lkIGNvbnN0cnVjdGluZyBhIHRlbXBvcmFyeSBTdHJpbmcgd2hlbiBwb3NzaWJsZS4K
ICAgICBpZiAoYXV0byogY2hhcmFjdGVycyA9IENGU3RyaW5nR2V0Q1N0cmluZ1B0cihzdHJpbmcs
IGtDRlN0cmluZ0VuY29kaW5nSVNPTGF0aW4xKSkgewotICAgICAgICBhcHBlbmQocmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBMQ2hhcio+KGNoYXJhY3RlcnMpLCBDRlN0cmluZ0dldExlbmd0aChzdHJp
bmcpKTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoYXV0byBhcHBlbmRlZCA9IGFwcGVu
ZChyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oY2hhcmFjdGVycyksIENGU3RyaW5nR2V0
TGVuZ3RoKHN0cmluZykpKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgcmV0dXJuIGFwcGVuZGVkOwogICAgIH0KLSAgICBhcHBlbmQoU3RyaW5nKHN0
cmluZykpOworICAgIHJldHVybiBhcHBlbmQoU3RyaW5nKHN0cmluZykpOwogfQogCiAjZW5kaWYK
IAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIoaW50IG51bWJlcikKK1N0cmluZ0J1
aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKGludCBudW1iZXIp
CiB7Ci0gICAgbnVtYmVyVG9TdHJpbmdTaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0aGlz
KTsKKyAgICByZXR1cm4gbnVtYmVyVG9TdHJpbmdTaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVy
LCB0aGlzKTsKIH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIodW5zaWduZWQg
aW50IG51bWJlcikKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6YXBw
ZW5kTnVtYmVyKHVuc2lnbmVkIGludCBudW1iZXIpCiB7Ci0gICAgbnVtYmVyVG9TdHJpbmdVbnNp
Z25lZDxTdHJpbmdCdWlsZGVyPihudW1iZXIsIHRoaXMpOworICAgIHJldHVybiBudW1iZXJUb1N0
cmluZ1Vuc2lnbmVkPFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CiB9CiAKLXZvaWQgU3Ry
aW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKGxvbmcgbnVtYmVyKQorU3RyaW5nQnVpbGRlcjo6RmFs
bGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIobG9uZyBudW1iZXIpCiB7Ci0gICAg
bnVtYmVyVG9TdHJpbmdTaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0aGlzKTsKKyAgICBy
ZXR1cm4gbnVtYmVyVG9TdHJpbmdTaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0aGlzKTsK
IH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIodW5zaWduZWQgbG9uZyBudW1i
ZXIpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJl
cih1bnNpZ25lZCBsb25nIG51bWJlcikKIHsKLSAgICBudW1iZXJUb1N0cmluZ1Vuc2lnbmVkPFN0
cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CisgICAgcmV0dXJuIG51bWJlclRvU3RyaW5nVW5z
aWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0aGlzKTsKIH0KIAotdm9pZCBTdHJpbmdCdWls
ZGVyOjphcHBlbmROdW1iZXIobG9uZyBsb25nIG51bWJlcikKK1N0cmluZ0J1aWxkZXI6OkZhbGxp
YmxlPD4gU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKGxvbmcgbG9uZyBudW1iZXIpCiB7Ci0g
ICAgbnVtYmVyVG9TdHJpbmdTaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0aGlzKTsKKyAg
ICByZXR1cm4gbnVtYmVyVG9TdHJpbmdTaWduZWQ8U3RyaW5nQnVpbGRlcj4obnVtYmVyLCB0aGlz
KTsKIH0KIAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIodW5zaWduZWQgbG9uZyBs
b25nIG51bWJlcikKK1N0cmluZ0J1aWxkZXI6OkZhbGxpYmxlPD4gU3RyaW5nQnVpbGRlcjo6YXBw
ZW5kTnVtYmVyKHVuc2lnbmVkIGxvbmcgbG9uZyBudW1iZXIpCiB7Ci0gICAgbnVtYmVyVG9TdHJp
bmdVbnNpZ25lZDxTdHJpbmdCdWlsZGVyPihudW1iZXIsIHRoaXMpOworICAgIHJldHVybiBudW1i
ZXJUb1N0cmluZ1Vuc2lnbmVkPFN0cmluZ0J1aWxkZXI+KG51bWJlciwgdGhpcyk7CiB9CiAKLXZv
aWQgU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKGRvdWJsZSBudW1iZXIsIHVuc2lnbmVkIHBy
ZWNpc2lvbiwgVHJhaWxpbmdaZXJvc1RydW5jYXRpbmdQb2xpY3kgdHJhaWxpbmdaZXJvc1RydW5j
YXRpbmdQb2xpY3kpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1aWxkZXI6OmFw
cGVuZE51bWJlcihkb3VibGUgbnVtYmVyLCB1bnNpZ25lZCBwcmVjaXNpb24sIFRyYWlsaW5nWmVy
b3NUcnVuY2F0aW5nUG9saWN5IHRyYWlsaW5nWmVyb3NUcnVuY2F0aW5nUG9saWN5KQogewogICAg
IE51bWJlclRvU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKLSAgICBhcHBlbmQobnVtYmVyVG9GaXhlZFBy
ZWNpc2lvblN0cmluZyhudW1iZXIsIHByZWNpc2lvbiwgYnVmZmVyLCB0cmFpbGluZ1plcm9zVHJ1
bmNhdGluZ1BvbGljeSA9PSBUcnVuY2F0ZVRyYWlsaW5nWmVyb3MpKTsKKyAgICByZXR1cm4gYXBw
ZW5kKG51bWJlclRvRml4ZWRQcmVjaXNpb25TdHJpbmcobnVtYmVyLCBwcmVjaXNpb24sIGJ1ZmZl
ciwgdHJhaWxpbmdaZXJvc1RydW5jYXRpbmdQb2xpY3kgPT0gVHJ1bmNhdGVUcmFpbGluZ1plcm9z
KSk7CiB9CiAKLXZvaWQgU3RyaW5nQnVpbGRlcjo6YXBwZW5kRUNNQVNjcmlwdE51bWJlcihkb3Vi
bGUgbnVtYmVyKQorU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBl
bmRFQ01BU2NyaXB0TnVtYmVyKGRvdWJsZSBudW1iZXIpCiB7CiAgICAgTnVtYmVyVG9TdHJpbmdC
dWZmZXIgYnVmZmVyOwotICAgIGFwcGVuZChudW1iZXJUb1N0cmluZyhudW1iZXIsIGJ1ZmZlcikp
OworICAgIHJldHVybiBhcHBlbmQobnVtYmVyVG9TdHJpbmcobnVtYmVyLCBidWZmZXIpKTsKIH0K
IAotdm9pZCBTdHJpbmdCdWlsZGVyOjphcHBlbmRGaXhlZFdpZHRoTnVtYmVyKGRvdWJsZSBudW1i
ZXIsIHVuc2lnbmVkIGRlY2ltYWxQbGFjZXMpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0
cmluZ0J1aWxkZXI6OmFwcGVuZEZpeGVkV2lkdGhOdW1iZXIoZG91YmxlIG51bWJlciwgdW5zaWdu
ZWQgZGVjaW1hbFBsYWNlcykKIHsKICAgICBOdW1iZXJUb1N0cmluZ0J1ZmZlciBidWZmZXI7Ci0g
ICAgYXBwZW5kKG51bWJlclRvRml4ZWRXaWR0aFN0cmluZyhudW1iZXIsIGRlY2ltYWxQbGFjZXMs
IGJ1ZmZlcikpOworICAgIHJldHVybiBhcHBlbmQobnVtYmVyVG9GaXhlZFdpZHRoU3RyaW5nKG51
bWJlciwgZGVjaW1hbFBsYWNlcywgYnVmZmVyKSk7CiB9CiAKIGJvb2wgU3RyaW5nQnVpbGRlcjo6
Y2FuU2hyaW5rKCkgY29uc3QKQEAgLTQwNiwxNSArNDUxLDIxIEBAIGJvb2wgU3RyaW5nQnVpbGRl
cjo6Y2FuU2hyaW5rKCkgY29uc3QKICAgICByZXR1cm4gbV9idWZmZXIgJiYgbV9idWZmZXItPmxl
bmd0aCgpID4gKG1fbGVuZ3RoICsgKG1fbGVuZ3RoID4+IDIpKTsKIH0KIAotdm9pZCBTdHJpbmdC
dWlsZGVyOjpzaHJpbmtUb0ZpdCgpCitTdHJpbmdCdWlsZGVyOjpGYWxsaWJsZTw+IFN0cmluZ0J1
aWxkZXI6OnNocmlua1RvRml0KCkKIHsKICAgICBpZiAoY2FuU2hyaW5rKCkpIHsKLSAgICAgICAg
aWYgKG1faXM4Qml0KQotICAgICAgICAgICAgcmVhbGxvY2F0ZUJ1ZmZlcjxMQ2hhcj4obV9sZW5n
dGgpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZWFsbG9jYXRlQnVmZmVyPFVDaGFyPiht
X2xlbmd0aCk7CisgICAgICAgIGlmIChtX2lzOEJpdCkgeworICAgICAgICAgICAgYXV0byByZWFs
bG9jYXRlZCA9IHJlYWxsb2NhdGVCdWZmZXI8TENoYXI+KG1fbGVuZ3RoKTsKKyAgICAgICAgICAg
IGlmICghcmVhbGxvY2F0ZWQpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlYWxsb2NhdGVkOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYXV0byByZWFsbG9jYXRlZCA9IHJlYWxsb2Nh
dGVCdWZmZXI8VUNoYXI+KG1fbGVuZ3RoKTsKKyAgICAgICAgICAgIGlmICghcmVhbGxvY2F0ZWQp
CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlYWxsb2NhdGVkOworICAgICAgICB9CiAgICAgICAg
IG1fc3RyaW5nID0gV1RGTW92ZShtX2J1ZmZlcik7CiAgICAgfQorICAgIHJldHVybiB7IH07CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9T
dHJpbmdCdWlsZGVyLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaAppbmRl
eCA3ZTk3NGMxLi4yYzBkZGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCwgMjAxMi0yMDEzLCAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
OS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApA
QCAtMjcsNiArMjcsNyBAQAogI2lmbmRlZiBTdHJpbmdCdWlsZGVyX2gKICNkZWZpbmUgU3RyaW5n
QnVpbGRlcl9oCiAKKyNpbmNsdWRlIDx3dGYvRXhwZWN0ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9BdG9taWNTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9JbnRlZ2VyVG9TdHJpbmdDb252
ZXJzaW9uLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgpAQCAtNDAsMzYgKzQx
LDMzIEBAIGNsYXNzIFN0cmluZ0J1aWxkZXIgewogCiBwdWJsaWM6CiAgICAgU3RyaW5nQnVpbGRl
cigpCi0gICAgICAgIDogbV9sZW5ndGgoMCkKLSAgICAgICAgLCBtX2lzOEJpdCh0cnVlKQotICAg
ICAgICAsIG1fYnVmZmVyQ2hhcmFjdGVyczgobnVsbHB0cikKKyAgICAgICAgOiBtX2J1ZmZlckNo
YXJhY3RlcnM4KG51bGxwdHIpCiAgICAgewogICAgIH0KICAgICBTdHJpbmdCdWlsZGVyKFN0cmlu
Z0J1aWxkZXImJikgPSBkZWZhdWx0OwogICAgIFN0cmluZ0J1aWxkZXImIG9wZXJhdG9yPShTdHJp
bmdCdWlsZGVyJiYpID0gZGVmYXVsdDsKIAotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGFw
cGVuZChjb25zdCBVQ2hhciosIHVuc2lnbmVkKTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgYm9v
bCB0cnlBcHBlbmQoY29uc3QgVUNoYXIqLCB1bnNpZ25lZCk7Ci0gICAgV1RGX0VYUE9SVF9QUklW
QVRFIHZvaWQgYXBwZW5kKGNvbnN0IExDaGFyKiwgdW5zaWduZWQpOwotICAgIFdURl9FWFBPUlRf
UFJJVkFURSBib29sIHRyeUFwcGVuZChjb25zdCBMQ2hhciosIHVuc2lnbmVkKTsKKyAgICBlbnVt
IGNsYXNzIEZhaWx1cmUgeworICAgICAgICBXb3VsZE92ZXJmbG93LAorICAgICAgICBPdXRPZk1l
bW9yeSwKKyAgICAgICAgVW5oYW5kbGVkRmFpbHVyZSwKKyAgICB9OworICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEV4cGVjdCA9IHZvaWQ+IHVzaW5nIEZhbGxpYmxlID0gRXhwZWN0ZWQ8RXhwZWN0LCBT
dHJpbmdCdWlsZGVyOjpGYWlsdXJlPjsKIAotICAgIEFMV0FZU19JTkxJTkUgdm9pZCBhcHBlbmQo
Y29uc3QgY2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKSB7IGFwcGVuZChyZWludGVy
cHJldF9jYXN0PGNvbnN0IExDaGFyKj4oY2hhcmFjdGVycyksIGxlbmd0aCk7IH0KLSAgICBBTFdB
WVNfSU5MSU5FIGJvb2wgdHJ5QXBwZW5kKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVk
IGxlbmd0aCkgeyByZXR1cm4gdHJ5QXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIq
PihjaGFyYWN0ZXJzKSwgbGVuZ3RoKTsgfQorICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJs
ZTw+IGFwcGVuZChjb25zdCBVQ2hhciosIHVuc2lnbmVkKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZB
VEUgRmFsbGlibGU8PiBhcHBlbmQoY29uc3QgTENoYXIqLCB1bnNpZ25lZCk7CiAKLSAgICB2b2lk
IGFwcGVuZChjb25zdCBBdG9taWNTdHJpbmcmIGF0b21pY1N0cmluZykKLSAgICB7Ci0gICAgICAg
IGFwcGVuZChhdG9taWNTdHJpbmcuc3RyaW5nKCkpOwotICAgIH0KKyAgICBBTFdBWVNfSU5MSU5F
IEZhbGxpYmxlPD4gYXBwZW5kKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0
aCkgeyByZXR1cm4gYXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihjaGFyYWN0
ZXJzKSwgbGVuZ3RoKTsgfQogCi0gICAgdm9pZCBhcHBlbmQoY29uc3QgU3RyaW5nJiBzdHJpbmcp
CisgICAgRmFsbGlibGU8PiBhcHBlbmQoY29uc3QgQXRvbWljU3RyaW5nJiBhdG9taWNTdHJpbmcp
CiAgICAgewotICAgICAgICBpZiAoIXRyeUFwcGVuZChzdHJpbmcpKQotICAgICAgICAgICAgQ1JB
U0goKTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZChhdG9taWNTdHJpbmcuc3RyaW5nKCkpOwogICAg
IH0KLSAgICBib29sIHRyeUFwcGVuZChjb25zdCBTdHJpbmcmIHN0cmluZykKKworICAgIEZhbGxp
YmxlPD4gYXBwZW5kKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgIHsKICAgICAgICAgaWYgKCFz
dHJpbmcubGVuZ3RoKCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIHJl
dHVybiB7IH07CiAKICAgICAgICAgLy8gSWYgd2UncmUgYXBwZW5kaW5nIHRvIGFuIGVtcHR5IHN0
cmluZywgYW5kIHRoZXJlIGlzIG5vdCBhIGJ1ZmZlciAocmVzZXJ2ZUNhcGFjaXR5IGhhcyBub3Qg
YmVlbiBjYWxsZWQpCiAgICAgICAgIC8vIHRoZW4ganVzdCByZXRhaW4gdGhlIHN0cmluZy4KQEAg
LTc3LDE3NCArNzUsMTY0IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fc3RyaW5nID0gc3RyaW5n
OwogICAgICAgICAgICAgbV9sZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7CiAgICAgICAgICAgICBt
X2lzOEJpdCA9IG1fc3RyaW5nLmlzOEJpdCgpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHN0cmluZy5p
czhCaXQoKSkKLSAgICAgICAgICAgIHJldHVybiB0cnlBcHBlbmQoc3RyaW5nLmNoYXJhY3RlcnM4
KCksIHN0cmluZy5sZW5ndGgoKSk7CisgICAgICAgICAgICByZXR1cm4gYXBwZW5kKHN0cmluZy5j
aGFyYWN0ZXJzOCgpLCBzdHJpbmcubGVuZ3RoKCkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAg
ICByZXR1cm4gdHJ5QXBwZW5kKHN0cmluZy5jaGFyYWN0ZXJzMTYoKSwgc3RyaW5nLmxlbmd0aCgp
KTsKKyAgICAgICAgICAgIHJldHVybiBhcHBlbmQoc3RyaW5nLmNoYXJhY3RlcnMxNigpLCBzdHJp
bmcubGVuZ3RoKCkpOwogICAgIH0KIAotICAgIHZvaWQgYXBwZW5kKGNvbnN0IFN0cmluZ0J1aWxk
ZXImIG90aGVyKQotICAgIHsKLSAgICAgICAgaWYgKCF0cnlBcHBlbmQob3RoZXIpKQotICAgICAg
ICAgICAgQ1JBU0goKTsKLSAgICB9Ci0gICAgYm9vbCB0cnlBcHBlbmQoY29uc3QgU3RyaW5nQnVp
bGRlciYgb3RoZXIpCisgICAgRmFsbGlibGU8PiBhcHBlbmQoY29uc3QgU3RyaW5nQnVpbGRlciYg
b3RoZXIpCiAgICAgeworICAgICAgICBpZiAob3RoZXIuZmFpbGVkKCkpCisgICAgICAgICAgICBy
ZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmFpbHVyZTo6VW5oYW5kbGVkRmFpbHVyZSk7ICAgICAgICAg
ICAgCiAgICAgICAgIGlmICghb3RoZXIubV9sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgICAgIHJldHVybiB7IH07CiAKICAgICAgICAgLy8gSWYgd2UncmUgYXBwZW5k
aW5nIHRvIGFuIGVtcHR5IHN0cmluZywgYW5kIHRoZXJlIGlzIG5vdCBhIGJ1ZmZlciAocmVzZXJ2
ZUNhcGFjaXR5IGhhcyBub3QgYmVlbiBjYWxsZWQpCiAgICAgICAgIC8vIHRoZW4ganVzdCByZXRh
aW4gdGhlIHN0cmluZy4KICAgICAgICAgaWYgKCFtX2xlbmd0aCAmJiAhbV9idWZmZXIgJiYgIW90
aGVyLm1fc3RyaW5nLmlzTnVsbCgpKSB7CiAgICAgICAgICAgICBtX3N0cmluZyA9IG90aGVyLm1f
c3RyaW5nOwogICAgICAgICAgICAgbV9sZW5ndGggPSBvdGhlci5tX2xlbmd0aDsKLSAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogCiAg
ICAgICAgIGlmIChvdGhlci5pczhCaXQoKSkKLSAgICAgICAgICAgIHJldHVybiB0cnlBcHBlbmQo
b3RoZXIuY2hhcmFjdGVyczgoKSwgb3RoZXIubV9sZW5ndGgpOworICAgICAgICAgICAgcmV0dXJu
IGFwcGVuZCgqb3RoZXIuY2hhcmFjdGVyczgoKSwgb3RoZXIubV9sZW5ndGgpOwogICAgICAgICBl
bHNlCi0gICAgICAgICAgICByZXR1cm4gdHJ5QXBwZW5kKG90aGVyLmNoYXJhY3RlcnMxNigpLCBv
dGhlci5tX2xlbmd0aCk7CisgICAgICAgICAgICByZXR1cm4gYXBwZW5kKCpvdGhlci5jaGFyYWN0
ZXJzMTYoKSwgb3RoZXIubV9sZW5ndGgpOwogICAgIH0KIAotICAgIHZvaWQgYXBwZW5kKFN0cmlu
Z1ZpZXcgc3RyaW5nVmlldykKLSAgICB7Ci0gICAgICAgIGlmICghdHJ5QXBwZW5kKHN0cmluZ1Zp
ZXcpKQotICAgICAgICAgICAgQ1JBU0goKTsKLSAgICB9Ci0gICAgYm9vbCB0cnlBcHBlbmQoU3Ry
aW5nVmlldyBzdHJpbmdWaWV3KQorICAgIEZhbGxpYmxlPD4gYXBwZW5kKFN0cmluZ1ZpZXcgc3Ry
aW5nVmlldykKICAgICB7CiAgICAgICAgIGlmIChzdHJpbmdWaWV3LmlzOEJpdCgpKQotICAgICAg
ICAgICAgcmV0dXJuIHRyeUFwcGVuZChzdHJpbmdWaWV3LmNoYXJhY3RlcnM4KCksIHN0cmluZ1Zp
ZXcubGVuZ3RoKCkpOworICAgICAgICAgICAgcmV0dXJuIGFwcGVuZChzdHJpbmdWaWV3LmNoYXJh
Y3RlcnM4KCksIHN0cmluZ1ZpZXcubGVuZ3RoKCkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAg
ICByZXR1cm4gdHJ5QXBwZW5kKHN0cmluZ1ZpZXcuY2hhcmFjdGVyczE2KCksIHN0cmluZ1ZpZXcu
bGVuZ3RoKCkpOworICAgICAgICAgICAgcmV0dXJuIGFwcGVuZChzdHJpbmdWaWV3LmNoYXJhY3Rl
cnMxNigpLCBzdHJpbmdWaWV3Lmxlbmd0aCgpKTsKICAgICB9CiAKICNpZiBVU0UoQ0YpCi0gICAg
V1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kKENGU3RyaW5nUmVmKTsKKyAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmQoQ0ZTdHJpbmdSZWYpOwogI2VuZGlmCiAjaWYg
VVNFKENGKSAmJiBkZWZpbmVkKF9fT0JKQ19fKQotICAgIHZvaWQgYXBwZW5kKE5TU3RyaW5nICpz
dHJpbmcpIHsgYXBwZW5kKChfX2JyaWRnZSBDRlN0cmluZ1JlZilzdHJpbmcpOyB9CisgICAgRmFs
bGlibGU8PiBhcHBlbmQoTlNTdHJpbmcgKnN0cmluZykgeyByZXR1cm4gYXBwZW5kKChfX2JyaWRn
ZSBDRlN0cmluZ1JlZilzdHJpbmcpOyB9CiAjZW5kaWYKICAgICAKLSAgICB2b2lkIGFwcGVuZChj
b25zdCBTdHJpbmcmIHN0cmluZywgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCisg
ICAgRmFsbGlibGU8PiBhcHBlbmQoY29uc3QgU3RyaW5nJiBzdHJpbmcsIHVuc2lnbmVkIG9mZnNl
dCwgdW5zaWduZWQgbGVuZ3RoKQogICAgIHsKICAgICAgICAgaWYgKCFzdHJpbmcubGVuZ3RoKCkp
Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4geyB9OwogCiAgICAgICAg
IGlmICgob2Zmc2V0ICsgbGVuZ3RoKSA+IHN0cmluZy5sZW5ndGgoKSkKLSAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIHJldHVybiB7IH07CiAKICAgICAgICAgaWYgKHN0cmluZy5pczhC
aXQoKSkKLSAgICAgICAgICAgIGFwcGVuZChzdHJpbmcuY2hhcmFjdGVyczgoKSArIG9mZnNldCwg
bGVuZ3RoKTsKKyAgICAgICAgICAgIHJldHVybiBhcHBlbmQoc3RyaW5nLmNoYXJhY3RlcnM4KCkg
KyBvZmZzZXQsIGxlbmd0aCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGFwcGVuZChzdHJp
bmcuY2hhcmFjdGVyczE2KCkgKyBvZmZzZXQsIGxlbmd0aCk7CisgICAgICAgICAgICByZXR1cm4g
YXBwZW5kKHN0cmluZy5jaGFyYWN0ZXJzMTYoKSArIG9mZnNldCwgbGVuZ3RoKTsKICAgICB9CiAK
LSAgICB2b2lkIGFwcGVuZChjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKQorICAgIEZhbGxpYmxlPD4g
YXBwZW5kKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpCiAgICAgewogICAgICAgICBpZiAoY2hhcmFj
dGVycykKLSAgICAgICAgICAgIGFwcGVuZChjaGFyYWN0ZXJzLCBzdHJsZW4oY2hhcmFjdGVycykp
OwotICAgIH0KLSAgICBib29sIHRyeUFwcGVuZChjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKQotICAg
IHsKLSAgICAgICAgaWYgKGNoYXJhY3RlcnMpCi0gICAgICAgICAgICByZXR1cm4gdHJ5QXBwZW5k
KGNoYXJhY3RlcnMsIHN0cmxlbihjaGFyYWN0ZXJzKSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICAgICAgcmV0dXJuIGFwcGVuZChjaGFyYWN0ZXJzLCBzdHJsZW4oY2hhcmFjdGVycykp
OworICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAotICAgIHZvaWQgYXBwZW5kKFVDaGFyIGMp
CisgICAgRmFsbGlibGU8PiBhcHBlbmQoVUNoYXIgYykKICAgICB7CiAgICAgICAgIGlmIChtX2J1
ZmZlciAmJiBtX2xlbmd0aCA8IG1fYnVmZmVyLT5sZW5ndGgoKSAmJiBtX3N0cmluZy5pc051bGwo
KSkgewogICAgICAgICAgICAgaWYgKCFtX2lzOEJpdCkgewogICAgICAgICAgICAgICAgIG1fYnVm
ZmVyQ2hhcmFjdGVyczE2W21fbGVuZ3RoKytdID0gYzsKLSAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgaWYgKCEoYyAmIH4weGZmKSkgewogICAgICAgICAgICAgICAgIG1fYnVmZmVyQ2hhcmFjdGVy
czhbbV9sZW5ndGgrK10gPSBzdGF0aWNfY2FzdDxMQ2hhcj4oYyk7Ci0gICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KLSAgICAgICAgYXBwZW5kKCZjLCAxKTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZCgmYywg
MSk7CiAgICAgfQogCi0gICAgdm9pZCBhcHBlbmQoTENoYXIgYykKLSAgICB7Ci0gICAgICAgIGlm
ICghdHJ5QXBwZW5kKGMpKQotICAgICAgICAgICAgQ1JBU0goKTsKLSAgICB9Ci0gICAgYm9vbCB0
cnlBcHBlbmQoTENoYXIgYykKKyAgICBGYWxsaWJsZTw+IGFwcGVuZChMQ2hhciBjKQogICAgIHsK
ICAgICAgICAgaWYgKG1fYnVmZmVyICYmIG1fbGVuZ3RoIDwgbV9idWZmZXItPmxlbmd0aCgpICYm
IG1fc3RyaW5nLmlzTnVsbCgpKSB7CiAgICAgICAgICAgICBpZiAobV9pczhCaXQpCiAgICAgICAg
ICAgICAgICAgbV9idWZmZXJDaGFyYWN0ZXJzOFttX2xlbmd0aCsrXSA9IGM7CiAgICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICAgbV9idWZmZXJDaGFyYWN0ZXJzMTZbbV9sZW5ndGgrK10g
PSBjOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAg
ICAgcmV0dXJuIHRyeUFwcGVuZCgmYywgMSk7CisgICAgICAgICAgICByZXR1cm4geyB9OworICAg
ICAgICB9CisgICAgICAgIHJldHVybiBhcHBlbmQoJmMsIDEpOwogICAgIH0KIAotICAgIHZvaWQg
YXBwZW5kKGNoYXIgYykgeyBhcHBlbmQoc3RhdGljX2Nhc3Q8TENoYXI+KGMpKTsgfQotICAgIGJv
b2wgdHJ5QXBwZW5kKGNoYXIgYykgeyByZXR1cm4gdHJ5QXBwZW5kKHN0YXRpY19jYXN0PExDaGFy
PihjKSk7IH0KKyAgICBGYWxsaWJsZTw+IGFwcGVuZChjaGFyIGMpCisgICAgeworICAgICAgICBy
ZXR1cm4gYXBwZW5kKHN0YXRpY19jYXN0PExDaGFyPihjKSk7CisgICAgfQogCi0gICAgdm9pZCBh
cHBlbmQoVUNoYXIzMiBjKQorICAgIEZhbGxpYmxlPD4gYXBwZW5kKFVDaGFyMzIgYykKICAgICB7
Ci0gICAgICAgIGlmIChVX0lTX0JNUChjKSkgewotICAgICAgICAgICAgYXBwZW5kKHN0YXRpY19j
YXN0PFVDaGFyPihjKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAg
YXBwZW5kKFUxNl9MRUFEKGMpKTsKLSAgICAgICAgYXBwZW5kKFUxNl9UUkFJTChjKSk7CisgICAg
ICAgIGlmIChVX0lTX0JNUChjKSkKKyAgICAgICAgICAgIHJldHVybiBhcHBlbmQoc3RhdGljX2Nh
c3Q8VUNoYXI+KGMpKTsKKyAgICAgICAgYXV0byBhcHBlbmRlZCA9IGFwcGVuZChVMTZfTEVBRChj
KSk7CisgICAgICAgIGlmICghYXBwZW5kZWQpCisgICAgICAgICAgICByZXR1cm4gYXBwZW5kZWQ7
CisgICAgICAgIHJldHVybiBhcHBlbmQoVTE2X1RSQUlMKGMpKTsKICAgICB9CiAKLSAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmRRdW90ZWRKU09OU3RyaW5nKGNvbnN0IFN0cmluZyYp
OwotICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIHRyeUFwcGVuZFF1b3RlZEpTT05TdHJpbmco
Y29uc3QgU3RyaW5nJik7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5k
UXVvdGVkSlNPTlN0cmluZyhjb25zdCBTdHJpbmcmKTsKIAogICAgIHRlbXBsYXRlPHVuc2lnbmVk
IGNoYXJhY3RlckNvdW50PgotICAgIEFMV0FZU19JTkxJTkUgdm9pZCBhcHBlbmRMaXRlcmFsKGNv
bnN0IGNoYXIgKCZjaGFyYWN0ZXJzKVtjaGFyYWN0ZXJDb3VudF0pIHsgYXBwZW5kKGNoYXJhY3Rl
cnMsIGNoYXJhY3RlckNvdW50IC0gMSk7IH0KLSAgICB0ZW1wbGF0ZTx1bnNpZ25lZCBjaGFyYWN0
ZXJDb3VudD4KLSAgICBBTFdBWVNfSU5MSU5FIGJvb2wgdHJ5QXBwZW5kTGl0ZXJhbChjb25zdCBj
aGFyICgmY2hhcmFjdGVycylbY2hhcmFjdGVyQ291bnRdKSB7IHJldHVybiB0cnlBcHBlbmQoY2hh
cmFjdGVycywgY2hhcmFjdGVyQ291bnQgLSAxKTsgfQotCi0gICAgV1RGX0VYUE9SVF9QUklWQVRF
IHZvaWQgYXBwZW5kTnVtYmVyKGludCk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBw
ZW5kTnVtYmVyKHVuc2lnbmVkIGludCk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBw
ZW5kTnVtYmVyKGxvbmcpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZE51bWJl
cih1bnNpZ25lZCBsb25nKTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmROdW1i
ZXIobG9uZyBsb25nKTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmROdW1iZXIo
dW5zaWduZWQgbG9uZyBsb25nKTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmRO
dW1iZXIoZG91YmxlLCB1bnNpZ25lZCBwcmVjaXNpb24gPSA2LCBUcmFpbGluZ1plcm9zVHJ1bmNh
dGluZ1BvbGljeSA9IFRydW5jYXRlVHJhaWxpbmdaZXJvcyk7Ci0gICAgV1RGX0VYUE9SVF9QUklW
QVRFIHZvaWQgYXBwZW5kRUNNQVNjcmlwdE51bWJlcihkb3VibGUpOwotICAgIFdURl9FWFBPUlRf
UFJJVkFURSB2b2lkIGFwcGVuZEZpeGVkV2lkdGhOdW1iZXIoZG91YmxlLCB1bnNpZ25lZCBkZWNp
bWFsUGxhY2VzKTsKLQotICAgIFN0cmluZyB0b1N0cmluZygpCisgICAgQUxXQVlTX0lOTElORSBG
YWxsaWJsZTw+IGFwcGVuZExpdGVyYWwoY29uc3QgY2hhciAoJmNoYXJhY3RlcnMpW2NoYXJhY3Rl
ckNvdW50XSkgeyByZXR1cm4gYXBwZW5kKGNoYXJhY3RlcnMsIGNoYXJhY3RlckNvdW50IC0gMSk7
IH0KKworICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IGFwcGVuZE51bWJlcihpbnQp
OworICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IGFwcGVuZE51bWJlcih1bnNpZ25l
ZCBpbnQpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IGFwcGVuZE51bWJlcihs
b25nKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmROdW1iZXIodW5z
aWduZWQgbG9uZyk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5kTnVt
YmVyKGxvbmcgbG9uZyk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxpYmxlPD4gYXBwZW5k
TnVtYmVyKHVuc2lnbmVkIGxvbmcgbG9uZyk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEZhbGxp
YmxlPD4gYXBwZW5kTnVtYmVyKGRvdWJsZSwgdW5zaWduZWQgcHJlY2lzaW9uID0gNiwgVHJhaWxp
bmdaZXJvc1RydW5jYXRpbmdQb2xpY3kgPSBUcnVuY2F0ZVRyYWlsaW5nWmVyb3MpOworICAgIFdU
Rl9FWFBPUlRfUFJJVkFURSBGYWxsaWJsZTw+IGFwcGVuZEVDTUFTY3JpcHROdW1iZXIoZG91Ymxl
KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8PiBhcHBlbmRGaXhlZFdpZHRoTnVt
YmVyKGRvdWJsZSwgdW5zaWduZWQgZGVjaW1hbFBsYWNlcyk7CisKKyAgICBXQVJOX1VOVVNFRF9S
RVRVUk4gRmFsbGlibGU8U3RyaW5nPiB0b1N0cmluZygpCiAgICAgewotICAgICAgICBzaHJpbmtU
b0ZpdCgpOwotICAgICAgICBpZiAobV9zdHJpbmcuaXNOdWxsKCkpCi0gICAgICAgICAgICByZWlm
eVN0cmluZygpOwotICAgICAgICByZXR1cm4gbV9zdHJpbmc7CisgICAgICAgIGlmIChtX2ZhaWxl
ZCkKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGYWlsdXJlOjpVbmhhbmRsZWRG
YWlsdXJlKTsKKyAgICAgICAgaWYgKGF1dG8gc2hyYW5rID0gc2hyaW5rVG9GaXQoKSkgeworICAg
ICAgICAgICAgaWYgKG1fc3RyaW5nLmlzTnVsbCgpKQorICAgICAgICAgICAgICAgIHJlaWZ5U3Ry
aW5nKCk7CisgICAgICAgICAgICByZXR1cm4gbV9zdHJpbmc7CisgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHNocmFuay5lcnJvcigpKTsKICAgICB9CiAK
LSAgICBjb25zdCBTdHJpbmcmIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIGNvbnN0CisgICAg
V0FSTl9VTlVTRURfUkVUVVJOIEZhbGxpYmxlPFN0cmluZz4gdG9TdHJpbmdQcmVzZXJ2ZUNhcGFj
aXR5KCkgY29uc3QKICAgICB7CisgICAgICAgIGlmIChtX2ZhaWxlZCkKKyAgICAgICAgICAgIHJl
dHVybiBtYWtlVW5leHBlY3RlZChGYWlsdXJlOjpVbmhhbmRsZWRGYWlsdXJlKTsKICAgICAgICAg
aWYgKG1fc3RyaW5nLmlzTnVsbCgpKQogICAgICAgICAgICAgcmVpZnlTdHJpbmcoKTsKICAgICAg
ICAgcmV0dXJuIG1fc3RyaW5nOwogICAgIH0KIAotICAgIEF0b21pY1N0cmluZyB0b0F0b21pY1N0
cmluZygpIGNvbnN0CisgICAgV0FSTl9VTlVTRURfUkVUVVJOIEZhbGxpYmxlPEF0b21pY1N0cmlu
Zz4gdG9BdG9taWNTdHJpbmcoKSBjb25zdAogICAgIHsKKyAgICAgICAgaWYgKG1fZmFpbGVkKQor
ICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZhaWx1cmU6OlVuaGFuZGxlZEZhaWx1
cmUpOworCiAgICAgICAgIGlmICghbV9sZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4gZW1wdHlB
dG9tKCk7CiAKICAgICAgICAgLy8gSWYgdGhlIGJ1ZmZlciBpcyBzdWZmaWNpZW50bHkgb3Zlci1h
bGxvY2F0ZWQsIG1ha2UgYSBuZXcgQXRvbWljU3RyaW5nIGZyb20gYSBjb3B5IHNvIGl0cyBidWZm
ZXIgaXMgbm90IHNvIGxhcmdlLgogICAgICAgICBpZiAoY2FuU2hyaW5rKCkpIHsKICAgICAgICAg
ICAgIGlmIChpczhCaXQoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gQXRvbWljU3RyaW5nKGNo
YXJhY3RlcnM4KCksIGxlbmd0aCgpKTsKLSAgICAgICAgICAgIHJldHVybiBBdG9taWNTdHJpbmco
Y2hhcmFjdGVyczE2KCksIGxlbmd0aCgpKTsgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gQXRvbWljU3RyaW5nKCpjaGFyYWN0ZXJzOCgpLCBsZW5ndGgoKSk7CisgICAgICAgICAg
ICByZXR1cm4gQXRvbWljU3RyaW5nKCpjaGFyYWN0ZXJzMTYoKSwgbGVuZ3RoKCkpOyAgICAgICAg
ICAgIAogICAgICAgICB9CiAKICAgICAgICAgaWYgKCFtX3N0cmluZy5pc051bGwoKSkKQEAgLTI2
MSwyOSArMjQ5LDM3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0
dXJuICFtX2xlbmd0aDsgfQogCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVzZXJ2ZUNh
cGFjaXR5KHVuc2lnbmVkIG5ld0NhcGFjaXR5KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFs
bGlibGU8PiByZXNlcnZlQ2FwYWNpdHkodW5zaWduZWQgbmV3Q2FwYWNpdHkpOwogCiAgICAgdW5z
aWduZWQgY2FwYWNpdHkoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fYnVmZmVyID8g
bV9idWZmZXItPmxlbmd0aCgpIDogbV9sZW5ndGg7CiAgICAgfQogCi0gICAgV1RGX0VYUE9SVF9Q
UklWQVRFIHZvaWQgcmVzaXplKHVuc2lnbmVkIG5ld1NpemUpOworICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBGYWxsaWJsZTw+IHJlc2l6ZSh1bnNpZ25lZCBuZXdTaXplKTsKIAogICAgIFdURl9FWFBP
UlRfUFJJVkFURSBib29sIGNhblNocmluaygpIGNvbnN0OwogCi0gICAgV1RGX0VYUE9SVF9QUklW
QVRFIHZvaWQgc2hyaW5rVG9GaXQoKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRmFsbGlibGU8
PiBzaHJpbmtUb0ZpdCgpOworCisgICAgYm9vbCBpczhCaXQoKSBjb25zdCB7IHJldHVybiBtX2lz
OEJpdDsgfQogCi0gICAgVUNoYXIgb3BlcmF0b3JbXSh1bnNpZ25lZCBpKSBjb25zdAorICAgIGJv
b2wgZmFpbGVkKCkgY29uc3QgeyByZXR1cm4gbV9mYWlsZWQ7IH0KKworICAgIEZhbGxpYmxlPFVD
aGFyPiBvcGVyYXRvcltdKHVuc2lnbmVkIGkpIGNvbnN0CiAgICAgeworICAgICAgICBpZiAobV9m
YWlsZWQpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmFpbHVyZTo6VW5oYW5k
bGVkRmFpbHVyZSk7CiAgICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGkg
PCBtX2xlbmd0aCk7CiAgICAgICAgIGlmIChtX2lzOEJpdCkKLSAgICAgICAgICAgIHJldHVybiBj
aGFyYWN0ZXJzOCgpW2ldOwotICAgICAgICByZXR1cm4gY2hhcmFjdGVyczE2KClbaV07CisgICAg
ICAgICAgICByZXR1cm4gKCpjaGFyYWN0ZXJzOCgpKVtpXTsKKyAgICAgICAgcmV0dXJuICgqY2hh
cmFjdGVyczE2KCkpW2ldOwogICAgIH0KIAotICAgIGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzOCgp
IGNvbnN0CisgICAgRmFsbGlibGU8Y29uc3QgTENoYXIqPiBjaGFyYWN0ZXJzOCgpIGNvbnN0CiAg
ICAgeworICAgICAgICBpZiAobV9mYWlsZWQpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhw
ZWN0ZWQoRmFpbHVyZTo6VW5oYW5kbGVkRmFpbHVyZSk7CiAgICAgICAgIEFTU0VSVChtX2lzOEJp
dCk7CiAgICAgICAgIGlmICghbV9sZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4gMDsKQEAgLTI5
Myw4ICsyODksMTAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9idWZmZXItPmNoYXJhY3Rl
cnM4KCk7CiAgICAgfQogCi0gICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMxNigpIGNvbnN0Cisg
ICAgRmFsbGlibGU8Y29uc3QgVUNoYXIqPiBjaGFyYWN0ZXJzMTYoKSBjb25zdAogICAgIHsKKyAg
ICAgICAgaWYgKG1fZmFpbGVkKQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZh
aWx1cmU6OlVuaGFuZGxlZEZhaWx1cmUpOwogICAgICAgICBBU1NFUlQoIW1faXM4Qml0KTsKICAg
ICAgICAgaWYgKCFtX2xlbmd0aCkKICAgICAgICAgICAgIHJldHVybiAwOwpAQCAtMzAzLDE2ICsz
MDEsMTUgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQobV9idWZmZXIpOwogICAgICAgICByZXR1
cm4gbV9idWZmZXItPmNoYXJhY3RlcnMxNigpOwogICAgIH0KLSAgICAKLSAgICBib29sIGlzOEJp
dCgpIGNvbnN0IHsgcmV0dXJuIG1faXM4Qml0OyB9CiAKICAgICB2b2lkIGNsZWFyKCkKICAgICB7
CiAgICAgICAgIG1fbGVuZ3RoID0gMDsKICAgICAgICAgbV9zdHJpbmcgPSBTdHJpbmcoKTsKICAg
ICAgICAgbV9idWZmZXIgPSBudWxscHRyOwotICAgICAgICBtX2J1ZmZlckNoYXJhY3RlcnM4ID0g
MDsKICAgICAgICAgbV9pczhCaXQgPSB0cnVlOworICAgICAgICBtX2ZhaWxlZCA9IGZhbHNlOwor
ICAgICAgICBtX2J1ZmZlckNoYXJhY3RlcnM4ID0gMDsKICAgICB9CiAKICAgICB2b2lkIHN3YXAo
U3RyaW5nQnVpbGRlciYgc3RyaW5nQnVpbGRlcikKQEAgLTMyMSwyOSArMzE4LDMyIEBAIHB1Ymxp
YzoKICAgICAgICAgbV9zdHJpbmcuc3dhcChzdHJpbmdCdWlsZGVyLm1fc3RyaW5nKTsKICAgICAg
ICAgbV9idWZmZXIuc3dhcChzdHJpbmdCdWlsZGVyLm1fYnVmZmVyKTsKICAgICAgICAgc3RkOjpz
d2FwKG1faXM4Qml0LCBzdHJpbmdCdWlsZGVyLm1faXM4Qml0KTsKKyAgICAgICAgc3RkOjpzd2Fw
KG1fZmFpbGVkLCBzdHJpbmdCdWlsZGVyLm1fZmFpbGVkKTsKICAgICAgICAgc3RkOjpzd2FwKG1f
YnVmZmVyQ2hhcmFjdGVyczgsIHN0cmluZ0J1aWxkZXIubV9idWZmZXJDaGFyYWN0ZXJzOCk7CiAg
ICAgICAgIEFTU0VSVCghbV9idWZmZXIgfHwgbV9idWZmZXItPmxlbmd0aCgpID49IG1fbGVuZ3Ro
KTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBhbGxvY2F0ZUJ1ZmZlcihjb25zdCBMQ2hh
ciogY3VycmVudENoYXJhY3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKTsKLSAgICB2b2lk
IGFsbG9jYXRlQnVmZmVyKGNvbnN0IFVDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQg
cmVxdWlyZWRMZW5ndGgpOwotICAgIHZvaWQgYWxsb2NhdGVCdWZmZXJVcENvbnZlcnQoY29uc3Qg
TENoYXIqIGN1cnJlbnRDaGFyYWN0ZXJzLCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCk7Ci0gICAg
Ym9vbCB0cnlBbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChjb25zdCBMQ2hhciogY3VycmVudENoYXJh
Y3RlcnMsIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKTsKKyAgICBGYWxsaWJsZTw+IGFsbG9jYXRl
QnVmZmVyKGNvbnN0IExDaGFyKiBjdXJyZW50Q2hhcmFjdGVycywgdW5zaWduZWQgcmVxdWlyZWRM
ZW5ndGgpOworICAgIEZhbGxpYmxlPD4gYWxsb2NhdGVCdWZmZXIoY29uc3QgVUNoYXIqIGN1cnJl
bnRDaGFyYWN0ZXJzLCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCk7CisgICAgRmFsbGlibGU8PiBh
bGxvY2F0ZUJ1ZmZlclVwQ29udmVydChjb25zdCBMQ2hhciogY3VycmVudENoYXJhY3RlcnMsIHVu
c2lnbmVkIHJlcXVpcmVkTGVuZ3RoKTsKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+
Ci0gICAgdm9pZCByZWFsbG9jYXRlQnVmZmVyKHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKTsKKyAg
ICBGYWxsaWJsZTw+IHJlYWxsb2NhdGVCdWZmZXIodW5zaWduZWQgcmVxdWlyZWRMZW5ndGgpOwog
ICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KLSAgICBBTFdBWVNfSU5MSU5FIENoYXJU
eXBlKiBhcHBlbmRVbmluaXRpYWxpemVkKHVuc2lnbmVkIGxlbmd0aCk7CisgICAgQUxXQVlTX0lO
TElORSBGYWxsaWJsZTxDaGFyVHlwZSo+IGFwcGVuZFVuaW5pdGlhbGl6ZWQodW5zaWduZWQgbGVu
Z3RoKTsKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci0gICAgQ2hhclR5cGUqIGFw
cGVuZFVuaW5pdGlhbGl6ZWRTbG93KHVuc2lnbmVkIGxlbmd0aCk7CisgICAgRmFsbGlibGU8Q2hh
clR5cGUqPiBhcHBlbmRVbmluaXRpYWxpemVkU2xvdyh1bnNpZ25lZCBsZW5ndGgpOwogICAgIHRl
bXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KLSAgICBBTFdBWVNfSU5MSU5FIENoYXJUeXBlICog
Z2V0QnVmZmVyQ2hhcmFjdGVycygpOworICAgIEFMV0FZU19JTkxJTkUgQ2hhclR5cGUqIGdldEJ1
ZmZlckNoYXJhY3RlcnMoKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCByZWlmeVN0cmlu
ZygpIGNvbnN0OworICAgIFdBUk5fVU5VU0VEX1JFVFVSTiBVbmV4cGVjdGVkPEZhaWx1cmU+IHdv
dWxkT3ZlcmZsb3coKTsKKyAgICBXQVJOX1VOVVNFRF9SRVRVUk4gVW5leHBlY3RlZDxGYWlsdXJl
PiBvdXRPZk1lbW9yeSgpOwogCi0gICAgdW5zaWduZWQgbV9sZW5ndGg7CisgICAgdW5zaWduZWQg
bV9sZW5ndGggeyAwIH07CiAgICAgbXV0YWJsZSBTdHJpbmcgbV9zdHJpbmc7CiAgICAgUmVmUHRy
PFN0cmluZ0ltcGw+IG1fYnVmZmVyOwotICAgIGJvb2wgbV9pczhCaXQ7CisgICAgYm9vbCBtX2lz
OEJpdCB7IHRydWUgfTsKKyAgICBib29sIG1fZmFpbGVkIHsgZmFsc2UgfTsKICAgICB1bmlvbiB7
CiAgICAgICAgIExDaGFyKiBtX2J1ZmZlckNoYXJhY3RlcnM4OwogICAgICAgICBVQ2hhciogbV9i
dWZmZXJDaGFyYWN0ZXJzMTY7CkBAIC0zNjUsMjAgKzM2NSw0OCBAQCBBTFdBWVNfSU5MSU5FIFVD
aGFyKiBTdHJpbmdCdWlsZGVyOjpnZXRCdWZmZXJDaGFyYWN0ZXJzPFVDaGFyPigpCiB9ICAgIAog
CiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci1ib29sIGVxdWFsKGNvbnN0IFN0cmluZ0J1
aWxkZXImIHMsIGNvbnN0IENoYXJUeXBlKiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkKK2lubGlu
ZSBib29sIGVxdWFsKGNvbnN0IFN0cmluZ0J1aWxkZXImIHMsIGNvbnN0IENoYXJUeXBlKiBidWZm
ZXIsIHVuc2lnbmVkIGxlbmd0aCkKIHsKKyAgICBpZiAocy5mYWlsZWQoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCiAgICAgaWYgKHMubGVuZ3RoKCkgIT0gbGVuZ3RoKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBpZiAocy5pczhCaXQoKSkKLSAgICAgICAgcmV0dXJuIGVxdWFsKHMu
Y2hhcmFjdGVyczgoKSwgYnVmZmVyLCBsZW5ndGgpOworICAgICAgICByZXR1cm4gZXF1YWwoKnMu
Y2hhcmFjdGVyczgoKSwgYnVmZmVyLCBsZW5ndGgpOworCisgICAgcmV0dXJuIGVxdWFsKCpzLmNo
YXJhY3RlcnMxNigpLCBidWZmZXIsIGxlbmd0aCk7Cit9CisKK2lubGluZSBib29sIGVxdWFsKGNv
bnN0IFN0cmluZ0J1aWxkZXImIGEsIGNvbnN0IFN0cmluZ0J1aWxkZXImIGIpCit7CisgICAgaWYg
KGEuZmFpbGVkKCkgfHwgYi5mYWlsZWQoKSkKKyAgICAgICAgcmV0dXJuIGEuZmFpbGVkKCkgPT0g
Yi5mYWlsZWQoKTsKKworICAgIGlmIChhLmxlbmd0aCgpICE9IGIubGVuZ3RoKCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIGlmICghYS5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CiAKLSAgICByZXR1cm4gZXF1YWwocy5jaGFyYWN0ZXJzMTYoKSwgYnVmZmVyLCBsZW5ndGgp
OworICAgIGlmIChhLmlzOEJpdCgpKSB7CisgICAgICAgIGlmIChiLmlzOEJpdCgpKQorICAgICAg
ICAgICAgcmV0dXJuIGVxdWFsKCphLmNoYXJhY3RlcnM4KCksICpiLmNoYXJhY3RlcnM4KCksIGEu
bGVuZ3RoKCkpOworICAgICAgICByZXR1cm4gZXF1YWwoKmEuY2hhcmFjdGVyczgoKSwgKmIuY2hh
cmFjdGVyczE2KCksIGEubGVuZ3RoKCkpOworICAgIH0KKworICAgIGlmIChiLmlzOEJpdCgpKQor
ICAgICAgICByZXR1cm4gZXF1YWwoKmEuY2hhcmFjdGVyczE2KCksICpiLmNoYXJhY3RlcnM4KCks
IGEubGVuZ3RoKCkpOworICAgIHJldHVybiBlcXVhbCgqYS5jaGFyYWN0ZXJzMTYoKSwgKmIuY2hh
cmFjdGVyczE2KCksIGEubGVuZ3RoKCkpOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgU3RyaW5n
VHlwZT4KLWJvb2wgZXF1YWwoY29uc3QgU3RyaW5nQnVpbGRlciYgYSwgY29uc3QgU3RyaW5nVHlw
ZSYgYikKK2lubGluZSBib29sIGVxdWFsKGNvbnN0IFN0cmluZ0J1aWxkZXImIGEsIGNvbnN0IFN0
cmluZ1R5cGUmIGIpCiB7CisgICAgaWYgKGEuZmFpbGVkKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKwogICAgIGlmIChhLmxlbmd0aCgpICE9IGIubGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIApAQCAtMzg3LDEzICs0MTUsMTMgQEAgYm9vbCBlcXVhbChjb25zdCBTdHJpbmdCdWls
ZGVyJiBhLCBjb25zdCBTdHJpbmdUeXBlJiBiKQogCiAgICAgaWYgKGEuaXM4Qml0KCkpIHsKICAg
ICAgICAgaWYgKGIuaXM4Qml0KCkpCi0gICAgICAgICAgICByZXR1cm4gZXF1YWwoYS5jaGFyYWN0
ZXJzOCgpLCBiLmNoYXJhY3RlcnM4KCksIGEubGVuZ3RoKCkpOwotICAgICAgICByZXR1cm4gZXF1
YWwoYS5jaGFyYWN0ZXJzOCgpLCBiLmNoYXJhY3RlcnMxNigpLCBhLmxlbmd0aCgpKTsKKyAgICAg
ICAgICAgIHJldHVybiBlcXVhbCgqYS5jaGFyYWN0ZXJzOCgpLCBiLmNoYXJhY3RlcnM4KCksIGEu
bGVuZ3RoKCkpOworICAgICAgICByZXR1cm4gZXF1YWwoKmEuY2hhcmFjdGVyczgoKSwgYi5jaGFy
YWN0ZXJzMTYoKSwgYS5sZW5ndGgoKSk7CiAgICAgfQogCiAgICAgaWYgKGIuaXM4Qml0KCkpCi0g
ICAgICAgIHJldHVybiBlcXVhbChhLmNoYXJhY3RlcnMxNigpLCBiLmNoYXJhY3RlcnM4KCksIGEu
bGVuZ3RoKCkpOwotICAgIHJldHVybiBlcXVhbChhLmNoYXJhY3RlcnMxNigpLCBiLmNoYXJhY3Rl
cnMxNigpLCBhLmxlbmd0aCgpKTsKKyAgICAgICAgcmV0dXJuIGVxdWFsKCphLmNoYXJhY3RlcnMx
NigpLCBiLmNoYXJhY3RlcnM4KCksIGEubGVuZ3RoKCkpOworICAgIHJldHVybiBlcXVhbCgqYS5j
aGFyYWN0ZXJzMTYoKSwgYi5jaGFyYWN0ZXJzMTYoKSwgYS5sZW5ndGgoKSk7CiB9CiAKIGlubGlu
ZSBib29sIG9wZXJhdG9yPT0oY29uc3QgU3RyaW5nQnVpbGRlciYgYSwgY29uc3QgU3RyaW5nQnVp
bGRlciYgYikgeyByZXR1cm4gZXF1YWwoYSwgYik7IH0KQEAgLTQwNCw5ICs0MzIsMTIgQEAgaW5s
aW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0cmluZ0J1aWxkZXIm
IGIpIHsgcmV0dXJuIGVxdWFsKGIKIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgU3RyaW5n
JiBhLCBjb25zdCBTdHJpbmdCdWlsZGVyJiBiKSB7IHJldHVybiAhZXF1YWwoYiwgYSk7IH0KIAog
dGVtcGxhdGU8PiBzdHJ1Y3QgSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvblRyYWl0PFN0cmluZ0J1
aWxkZXI+IHsKLSAgICB1c2luZyBSZXR1cm5UeXBlID0gdm9pZDsKKyAgICB1c2luZyBSZXR1cm5U
eXBlID0gU3RyaW5nQnVpbGRlcjo6RmFsbGlibGU8PjsKICAgICB1c2luZyBBZGRpdGlvbmFsQXJn
dW1lbnRUeXBlID0gU3RyaW5nQnVpbGRlcjsKLSAgICBzdGF0aWMgdm9pZCBmbHVzaChMQ2hhciog
Y2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBTdHJpbmdCdWlsZGVyKiBzdHJpbmdCdWlsZGVy
KSB7IHN0cmluZ0J1aWxkZXItPmFwcGVuZChjaGFyYWN0ZXJzLCBsZW5ndGgpOyB9CisgICAgc3Rh
dGljIFJldHVyblR5cGUgZmx1c2goTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwg
U3RyaW5nQnVpbGRlciogc3RyaW5nQnVpbGRlcikKKyAgICB7CisgICAgICAgIHJldHVybiBzdHJp
bmdCdWlsZGVyLT5hcHBlbmQoY2hhcmFjdGVycywgbGVuZ3RoKTsKKyAgICB9CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVp
bGRlckpTT04uY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVySlNPTi5jcHAK
aW5kZXggNGMyNzY2Yy4uNzBkYmI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9T
dHJpbmdCdWlsZGVySlNPTi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWls
ZGVySlNPTi5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAy
MDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0
IChDKSAyMDE3IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTcgTW96aWxsYSBGb3VuZGF0aW9uLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtNzQsMTMgKzc0LDcgQEAgQUxXQVlTX0lOTElORSBzdGF0
aWMgdm9pZCBhcHBlbmRRdW90ZWRKU09OU3RyaW5nSW50ZXJuYWwoT3V0cHV0Q2hhcmFjdGVyVHlw
ZSomIG8KICAgICB9CiB9CiAKLXZvaWQgU3RyaW5nQnVpbGRlcjo6YXBwZW5kUXVvdGVkSlNPTlN0
cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKLXsKLSAgICBpZiAoIXRyeUFwcGVuZFF1b3RlZEpT
T05TdHJpbmcoc3RyaW5nKSkKLSAgICAgICAgQ1JBU0goKTsKLX0KLQotYm9vbCBTdHJpbmdCdWls
ZGVyOjp0cnlBcHBlbmRRdW90ZWRKU09OU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorU3Ry
aW5nQnVpbGRlcjo6RmFsbGlibGU8PiBTdHJpbmdCdWlsZGVyOjphcHBlbmRRdW90ZWRKU09OU3Ry
aW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewogICAgIC8vIE1ha2Ugc3VyZSB3ZSBoYXZlIGVu
b3VnaCBidWZmZXIgc3BhY2UgdG8gYXBwZW5kIHRoaXMgc3RyaW5nIHdpdGhvdXQgaGF2aW5nCiAg
ICAgLy8gdG8gd29ycnkgYWJvdXQgcmVhbGxvY2F0aW5nIGluIHRoZSBtaWRkbGUuCkBAIC05MSwy
MCArODUsMjEgQEAgYm9vbCBTdHJpbmdCdWlsZGVyOjp0cnlBcHBlbmRRdW90ZWRKU09OU3RyaW5n
KGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgIG1heGltdW1DYXBhY2l0eVJlcXVpcmVkICs9IDIg
KyBzdHJpbmdMZW5ndGggKiA2OwogICAgIHVuc2lnbmVkIGFsbG9jYXRpb25TaXplOwogICAgIGlm
IChDaGVja2VkU3RhdGU6OkRpZE92ZXJmbG93ID09IG1heGltdW1DYXBhY2l0eVJlcXVpcmVkLnNh
ZmVHZXQoYWxsb2NhdGlvblNpemUpKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJl
dHVybiB3b3VsZE92ZXJmbG93KCk7CiAgICAgLy8gVGhpcyBtYXgoKSBpcyBoZXJlIHRvIGFsbG93
IHVzIHRvIGFsbG9jYXRlIHNpemVzIGJldHdlZW4gdGhlIHJhbmdlIFsyXjMxLCAyXjMyIC0gMl0g
YmVjYXVzZSByb3VuZFVwVG9Qb3dlck9mVHdvKDE8PDMxICsgc29tZSBpbnQgc21hbGxlciB0aGFu
IDE8PDMxKSA9PSAwLgogICAgIC8vIEZJWE1FOiByb3VuZFVwVG9Qb3dlck9mVHdvIHNob3VsZCB0
YWtlIENoZWNrZWQ8dW5zaWduZWQ+IGFuZCBhYm9ydCBpZiBpdCBmYWlscyB0byByb3VuZCB1cC4K
ICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDg2CiAg
ICAgYWxsb2NhdGlvblNpemUgPSBzdGQ6Om1heChhbGxvY2F0aW9uU2l6ZSwgcm91bmRVcFRvUG93
ZXJPZlR3byhhbGxvY2F0aW9uU2l6ZSkpOwogCi0gICAgLy8gQWxsb2NhdGluZyB0aGlzIG11Y2gg
d2lsbCBkZWZpbml0ZWx5IGZhaWwuCi0gICAgaWYgKGFsbG9jYXRpb25TaXplID49IDB4ODAwMDAw
MDApCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChpczhCaXQoKSAmJiAhc3RyaW5n
LmlzOEJpdCgpKQotICAgICAgICBhbGxvY2F0ZUJ1ZmZlclVwQ29udmVydChtX2J1ZmZlckNoYXJh
Y3RlcnM4LCBhbGxvY2F0aW9uU2l6ZSk7Ci0gICAgZWxzZQotICAgICAgICByZXNlcnZlQ2FwYWNp
dHkoYWxsb2NhdGlvblNpemUpOworICAgIGlmIChpczhCaXQoKSAmJiAhc3RyaW5nLmlzOEJpdCgp
KSB7CisgICAgICAgIGF1dG8gYWxsb2NhdGVkID0gYWxsb2NhdGVCdWZmZXJVcENvbnZlcnQobV9i
dWZmZXJDaGFyYWN0ZXJzOCwgYWxsb2NhdGlvblNpemUpOworICAgICAgICBpZiAoIWFsbG9jYXRl
ZCkKKyAgICAgICAgICAgIHJldHVybiBhbGxvY2F0ZWQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
YXV0byByZXNlcnZlZCA9IHJlc2VydmVDYXBhY2l0eShhbGxvY2F0aW9uU2l6ZSk7CisgICAgICAg
IGlmICghcmVzZXJ2ZWQpCisgICAgICAgICAgICByZXR1cm4gcmVzZXJ2ZWQ7CisgICAgfQogICAg
IEFTU0VSVChtX2J1ZmZlci0+bGVuZ3RoKCkgPj0gYWxsb2NhdGlvblNpemUpOwogCiAgICAgaWYg
KGlzOEJpdCgpKSB7CkBAIC0xMjUsNyArMTIwLDcgQEAgYm9vbCBTdHJpbmdCdWlsZGVyOjp0cnlB
cHBlbmRRdW90ZWRKU09OU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgICAgICBtX2xl
bmd0aCA9IG91dHB1dCAtIG1fYnVmZmVyQ2hhcmFjdGVyczE2OwogICAgIH0KICAgICBBU1NFUlQo
bV9idWZmZXItPmxlbmd0aCgpID49IG1fbGVuZ3RoKTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBy
ZXR1cm4geyB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0lt
cGwuY3BwCmluZGV4IDc3NDg3NmIuLmVlZDA5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvU3RyaW5nSW1wbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBs
LmNwcApAQCAtMjA2LDIyICsyMDYsMjQgQEAgUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OmNy
ZWF0ZVVuaW5pdGlhbGl6ZWQodW5zaWduZWQgbGVuZ3RoLCBVQ2hhciomIGRhdGEpCiAgICAgcmV0
dXJuIGNyZWF0ZVVuaW5pdGlhbGl6ZWRJbnRlcm5hbChsZW5ndGgsIGRhdGEpOwogfQogCi10ZW1w
bGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBpbmxpbmUgUmVmPFN0cmluZ0ltcGw+IFN0cmlu
Z0ltcGw6OnJlYWxsb2NhdGVJbnRlcm5hbChSZWY8U3RyaW5nSW1wbD4mJiBvcmlnaW5hbFN0cmlu
ZywgdW5zaWduZWQgbGVuZ3RoLCBDaGFyYWN0ZXJUeXBlKiYgZGF0YSkKK3RlbXBsYXRlPHR5cGVu
YW1lIENoYXJhY3RlclR5cGU+IGlubGluZSBSZWZQdHI8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6
cmVhbGxvY2F0ZUludGVybmFsKFJlZjxTdHJpbmdJbXBsPiYmIG9yaWdpbmFsU3RyaW5nLCB1bnNp
Z25lZCBsZW5ndGgsIENoYXJhY3RlclR5cGUqJiBkYXRhKQogewogICAgIEFTU0VSVChvcmlnaW5h
bFN0cmluZy0+aGFzT25lUmVmKCkpOwogICAgIEFTU0VSVChvcmlnaW5hbFN0cmluZy0+YnVmZmVy
T3duZXJzaGlwKCkgPT0gQnVmZmVySW50ZXJuYWwpOwogCiAgICAgaWYgKCFsZW5ndGgpIHsKICAg
ICAgICAgZGF0YSA9IDA7Ci0gICAgICAgIHJldHVybiAqZW1wdHkoKTsKKyAgICAgICAgcmV0dXJu
IGVtcHR5KCk7CiAgICAgfQogCiAgICAgLy8gU2FtZSBhcyBjcmVhdGVVbmluaXRpYWxpemVkKCkg
ZXhjZXB0IGhlcmUgd2UgdXNlIHN0cmluZ1JlYWxsb2MuCi0gICAgaWYgKGxlbmd0aCA+ICgoc3Rk
OjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpIC0gc2l6ZW9mKFN0cmluZ0ltcGwpKSAv
IHNpemVvZihDaGFyYWN0ZXJUeXBlKSkpCi0gICAgICAgIENSQVNIKCk7CisgICAgaWYgKFVOTElL
RUxZKGxlbmd0aCA+ICgoc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpIC0gc2l6
ZW9mKFN0cmluZ0ltcGwpKSAvIHNpemVvZihDaGFyYWN0ZXJUeXBlKSkpKQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAogICAgIG9yaWdpbmFsU3RyaW5nLT5+U3RyaW5nSW1wbCgpOwogICAgIGF1
dG8qIHN0cmluZyA9IHN0YXRpY19jYXN0PFN0cmluZ0ltcGwqPihzdHJpbmdSZWFsbG9jKCZvcmln
aW5hbFN0cmluZy5sZWFrUmVmKCksIGFsbG9jYXRpb25TaXplPENoYXJhY3RlclR5cGU+KGxlbmd0
aCkpKTsKKyAgICBpZiAoVU5MSUtFTFkoIXN0cmluZykpCisgICAgICAgIHJldHVybiBudWxscHRy
OwogCiAgICAgZGF0YSA9IHN0cmluZy0+dGFpbFBvaW50ZXI8Q2hhcmFjdGVyVHlwZT4oKTsKICAg
ICByZXR1cm4gY29uc3RydWN0SW50ZXJuYWw8Q2hhcmFjdGVyVHlwZT4oKnN0cmluZywgbGVuZ3Ro
KTsKQEAgLTIzMCwxMyArMjMyLDMzIEBAIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+
IGlubGluZSBSZWY8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6cmVhbGxvY2F0ZUluCiBSZWY8U3Ry
aW5nSW1wbD4gU3RyaW5nSW1wbDo6cmVhbGxvY2F0ZShSZWY8U3RyaW5nSW1wbD4mJiBvcmlnaW5h
bFN0cmluZywgdW5zaWduZWQgbGVuZ3RoLCBMQ2hhciomIGRhdGEpCiB7CiAgICAgQVNTRVJUKG9y
aWdpbmFsU3RyaW5nLT5pczhCaXQoKSk7Ci0gICAgcmV0dXJuIHJlYWxsb2NhdGVJbnRlcm5hbChX
VEZNb3ZlKG9yaWdpbmFsU3RyaW5nKSwgbGVuZ3RoLCBkYXRhKTsKKyAgICBpZiAoYXV0byByZWFs
bG9jYXRlZCA9IHJlYWxsb2NhdGVJbnRlcm5hbChXVEZNb3ZlKG9yaWdpbmFsU3RyaW5nKSwgbGVu
Z3RoLCBkYXRhKSkKKyAgICAgICAgcmV0dXJuICpyZWFsbG9jYXRlZDsKKyAgICBDUkFTSCgpOwog
fQogCiBSZWY8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6cmVhbGxvY2F0ZShSZWY8U3RyaW5nSW1w
bD4mJiBvcmlnaW5hbFN0cmluZywgdW5zaWduZWQgbGVuZ3RoLCBVQ2hhciomIGRhdGEpCiB7CiAg
ICAgQVNTRVJUKCFvcmlnaW5hbFN0cmluZy0+aXM4Qml0KCkpOwotICAgIHJldHVybiByZWFsbG9j
YXRlSW50ZXJuYWwoV1RGTW92ZShvcmlnaW5hbFN0cmluZyksIGxlbmd0aCwgZGF0YSk7CisgICAg
aWYgKGF1dG8gcmVhbGxvY2F0ZWQgPSByZWFsbG9jYXRlSW50ZXJuYWwoV1RGTW92ZShvcmlnaW5h
bFN0cmluZyksIGxlbmd0aCwgZGF0YSkpCisgICAgICAgIHJldHVybiAqcmVhbGxvY2F0ZWQ7Cisg
ICAgQ1JBU0goKTsKK30KKworUmVmUHRyPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OnRyeVJlYWxs
b2NhdGUoUmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2lnbmVkIGxlbmd0aCwg
TENoYXIqJiBkYXRhKQoreworICAgIEFTU0VSVChvcmlnaW5hbFN0cmluZy0+aXM4Qml0KCkpOwor
ICAgIGlmIChhdXRvIHJlYWxsb2NhdGVkID0gcmVhbGxvY2F0ZUludGVybmFsKFdURk1vdmUob3Jp
Z2luYWxTdHJpbmcpLCBsZW5ndGgsIGRhdGEpKQorICAgICAgICByZXR1cm4gcmVhbGxvY2F0ZWQu
Z2V0KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxTdHJpbmdJbXBsPiBTdHJp
bmdJbXBsOjp0cnlSZWFsbG9jYXRlKFJlZjxTdHJpbmdJbXBsPiYmIG9yaWdpbmFsU3RyaW5nLCB1
bnNpZ25lZCBsZW5ndGgsIFVDaGFyKiYgZGF0YSkKK3sKKyAgICBBU1NFUlQoIW9yaWdpbmFsU3Ry
aW5nLT5pczhCaXQoKSk7CisgICAgaWYgKGF1dG8gcmVhbGxvY2F0ZWQgPSByZWFsbG9jYXRlSW50
ZXJuYWwoV1RGTW92ZShvcmlnaW5hbFN0cmluZyksIGxlbmd0aCwgZGF0YSkpCisgICAgICAgIHJl
dHVybiByZWFsbG9jYXRlZC5nZXQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogdGVtcGxh
dGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gaW5saW5lIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJ
bXBsOjpjcmVhdGVJbnRlcm5hbChjb25zdCBDaGFyYWN0ZXJUeXBlKiBjaGFyYWN0ZXJzLCB1bnNp
Z25lZCBsZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwu
aCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCmluZGV4IDYxNmRhMjUuLjhkZjll
MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCkBAIC0yMjksNiArMjI5LDcgQEAgcHVibGlj
OgogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0ZShj
b25zdCBMQ2hhciopOwogICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBj
cmVhdGUoY29uc3QgY2hhciogc3RyaW5nKSB7IHJldHVybiBjcmVhdGUocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBMQ2hhcio+KHN0cmluZykpOyB9CiAKKyAgICBzdGF0aWMgUmVmUHRyPFN0cmluZ0lt
cGw+IHRyeUNyZWF0ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKFN0cmluZ0ltcGwmLCB1bnNpZ25lZCBv
ZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVh
dGVTdWJzdHJpbmdTaGFyaW5nSW1wbChTdHJpbmdJbXBsJiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNp
Z25lZCBsZW5ndGgpOwogCiAgICAgdGVtcGxhdGU8dW5zaWduZWQgY2hhcmFjdGVyQ291bnQ+IHN0
YXRpYyBSZWY8U3RyaW5nSW1wbD4gY3JlYXRlRnJvbUxpdGVyYWwoY29uc3QgY2hhciAoJilbY2hh
cmFjdGVyQ291bnRdKTsKQEAgLTI0OCw2ICsyNDksOCBAQCBwdWJsaWM6CiAgICAgLy8gdGhlIG9y
aWdpbmFsU3RyaW5nIGNhbid0IGJlIHVzZWQgYWZ0ZXIgdGhpcyBmdW5jdGlvbi4KICAgICBzdGF0
aWMgUmVmPFN0cmluZ0ltcGw+IHJlYWxsb2NhdGUoUmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2luYWxT
dHJpbmcsIHVuc2lnbmVkIGxlbmd0aCwgTENoYXIqJiBkYXRhKTsKICAgICBzdGF0aWMgUmVmPFN0
cmluZ0ltcGw+IHJlYWxsb2NhdGUoUmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVu
c2lnbmVkIGxlbmd0aCwgVUNoYXIqJiBkYXRhKTsKKyAgICBzdGF0aWMgUmVmUHRyPFN0cmluZ0lt
cGw+IHRyeVJlYWxsb2NhdGUoUmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2ln
bmVkIGxlbmd0aCwgTENoYXIqJiBkYXRhKTsKKyAgICBzdGF0aWMgUmVmUHRyPFN0cmluZ0ltcGw+
IHRyeVJlYWxsb2NhdGUoUmVmPFN0cmluZ0ltcGw+JiYgb3JpZ2luYWxTdHJpbmcsIHVuc2lnbmVk
IGxlbmd0aCwgVUNoYXIqJiBkYXRhKTsKIAogICAgIHN0YXRpYyB1bnNpZ25lZCBmbGFnc09mZnNl
dCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTdHJpbmdJbXBsLCBtX2hhc2hBbmRGbGFncyk7
IH0KICAgICBzdGF0aWMgdW5zaWduZWQgZmxhZ0lzOEJpdCgpIHsgcmV0dXJuIHNfaGFzaEZsYWc4
Qml0QnVmZmVyOyB9CkBAIC01MDMsNyArNTA2LDcgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNvbnN0cnVjdElu
dGVybmFsKFN0cmluZ0ltcGwmLCB1bnNpZ25lZCk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hh
cmFjdGVyVHlwZT4gc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGVVbmluaXRpYWxpemVkSW50
ZXJuYWwodW5zaWduZWQsIENoYXJhY3RlclR5cGUqJik7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
Q2hhcmFjdGVyVHlwZT4gc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGVVbmluaXRpYWxpemVk
SW50ZXJuYWxOb25FbXB0eSh1bnNpZ25lZCwgQ2hhcmFjdGVyVHlwZSomKTsKLSAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IHJlYWxsb2Nh
dGVJbnRlcm5hbChSZWY8U3RyaW5nSW1wbD4mJiwgdW5zaWduZWQsIENoYXJhY3RlclR5cGUqJik7
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gc3RhdGljIFJlZlB0cjxTdHJp
bmdJbXBsPiByZWFsbG9jYXRlSW50ZXJuYWwoUmVmPFN0cmluZ0ltcGw+JiYsIHVuc2lnbmVkLCBD
aGFyYWN0ZXJUeXBlKiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHN0
YXRpYyBSZWY8U3RyaW5nSW1wbD4gY3JlYXRlSW50ZXJuYWwoY29uc3QgQ2hhcmFjdGVyVHlwZSos
IHVuc2lnbmVkKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgTkVWRVJfSU5MSU5FIHVuc2lnbmVk
IGhhc2hTbG93Q2FzZSgpIGNvbnN0OwogCkBAIC05MTQsMjIgKzkxNywzMSBAQCB0ZW1wbGF0ZTxz
aXplX3QgaW5saW5lQ2FwYWNpdHk+IGlubGluZSBSZWY8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6
Y3JlYXRlOEJpdElmUAogICAgIHJldHVybiBjcmVhdGU4Qml0SWZQb3NzaWJsZSh2ZWN0b3IuZGF0
YSgpLCB2ZWN0b3Iuc2l6ZSgpKTsKIH0KIAotQUxXQVlTX0lOTElORSBSZWY8U3RyaW5nSW1wbD4g
U3RyaW5nSW1wbDo6Y3JlYXRlU3Vic3RyaW5nU2hhcmluZ0ltcGwoU3RyaW5nSW1wbCYgcmVwLCB1
bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKK0FMV0FZU19JTkxJTkUgUmVmUHRyPFN0
cmluZ0ltcGw+IFN0cmluZ0ltcGw6OnRyeUNyZWF0ZVN1YnN0cmluZ1NoYXJpbmdJbXBsKFN0cmlu
Z0ltcGwmIHJlcCwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgQVNT
RVJUKGxlbmd0aCA8PSByZXAubGVuZ3RoKCkpOwogCiAgICAgaWYgKCFsZW5ndGgpCi0gICAgICAg
IHJldHVybiAqZW1wdHkoKTsKKyAgICAgICAgcmV0dXJuIGVtcHR5KCk7CiAKICAgICBhdXRvKiBv
d25lclJlcCA9ICgocmVwLmJ1ZmZlck93bmVyc2hpcCgpID09IEJ1ZmZlclN1YnN0cmluZykgPyBy
ZXAuc3Vic3RyaW5nQnVmZmVyKCkgOiAmcmVwKTsKIAogICAgIC8vIFdlIGFsbG9jYXRlIGEgYnVm
ZmVyIHRoYXQgY29udGFpbnMgYm90aCB0aGUgU3RyaW5nSW1wbCBzdHJ1Y3QgYXMgd2VsbCBhcyB0
aGUgcG9pbnRlciB0byB0aGUgb3duZXIgc3RyaW5nLgogICAgIGF1dG8qIHN0cmluZ0ltcGwgPSBz
dGF0aWNfY2FzdDxTdHJpbmdJbXBsKj4oc3RyaW5nTWFsbG9jKGFsbG9jYXRpb25TaXplPFN0cmlu
Z0ltcGwqPigxKSkpOworICAgIGlmICghc3RyaW5nSW1wbCkKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgaWYgKHJlcC5pczhCaXQoKSkKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
KE5vdE51bGwsIHN0cmluZ0ltcGwpIFN0cmluZ0ltcGwocmVwLm1fZGF0YTggKyBvZmZzZXQsIGxl
bmd0aCwgKm93bmVyUmVwKSk7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgKE5vdE51bGwsIHN0
cmluZ0ltcGwpIFN0cmluZ0ltcGwocmVwLm1fZGF0YTE2ICsgb2Zmc2V0LCBsZW5ndGgsICpvd25l
clJlcCkpOwogfQogCitBTFdBWVNfSU5MSU5FIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpj
cmVhdGVTdWJzdHJpbmdTaGFyaW5nSW1wbChTdHJpbmdJbXBsJiByZXAsIHVuc2lnbmVkIG9mZnNl
dCwgdW5zaWduZWQgbGVuZ3RoKQoreworICAgIGlmIChhdXRvIGNyZWF0ZWQgPSB0cnlDcmVhdGVT
dWJzdHJpbmdTaGFyaW5nSW1wbChyZXAsIG9mZnNldCwgbGVuZ3RoKSkKKyAgICAgICAgcmV0dXJu
ICpjcmVhdGVkOworICAgIENSQVNIKCk7Cit9CisKIHRlbXBsYXRlPHVuc2lnbmVkIGNoYXJhY3Rl
ckNvdW50PiBBTFdBWVNfSU5MSU5FIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdGVG
cm9tTGl0ZXJhbChjb25zdCBjaGFyICgmY2hhcmFjdGVycylbY2hhcmFjdGVyQ291bnRdKQogewog
ICAgIENPTVBJTEVfQVNTRVJUKGNoYXJhY3RlckNvdW50ID4gMSwgU3RyaW5nSW1wbEZyb21MaXRl
cmFsTm90RW1wdHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0U3RyZWFt
LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dFN0cmVhbS5jcHAKaW5kZXggYWFmNjE5NC4u
ZDNiNTMxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0U3RyZWFtLmNwcAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRTdHJlYW0uY3BwCkBAIC0xMzIsOSArMTMyLDEx
IEBAIFRleHRTdHJlYW0mIFRleHRTdHJlYW06Om9wZXJhdG9yPDwoY29uc3QgRm9ybWF0TnVtYmVy
UmVzcGVjdGluZ0ludGVnZXJzJiBudW1iZXJUCiAKIFN0cmluZyBUZXh0U3RyZWFtOjpyZWxlYXNl
KCkKIHsKLSAgICBTdHJpbmcgcmVzdWx0ID0gbV90ZXh0LnRvU3RyaW5nKCk7Ci0gICAgbV90ZXh0
LmNsZWFyKCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICBpZiAoYXV0byByZXN1bHQgPSBtX3Rl
eHQudG9TdHJpbmcoKSkgeworICAgICAgICBtX3RleHQuY2xlYXIoKTsKKyAgICAgICAgcmV0dXJu
ICpyZXN1bHQ7CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgVGV4dFN0cmVhbTo6c3Rh
cnRHcm91cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmE1YWI3My4uMWI3MzI4NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDUxMyBAQAorMjAxOC0wNC0yNiAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5j
b20+CisKKyAgICAgICAgU3RyaW5nQnVpbGRlciBpcyBmYWxsaWJsZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MDQ4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RyaW5nQnVpbGRlciBjYW4gZmFpbCB3
aGVuIGFsbG9jYXRpbmcgbWVtb3J5LiBTdHJpbmdCdWlsZGVyIGlzCisgICAgICAgIG1vc3RseSB1
c2VkIHdpdGggdXNlciBpbnB1dCwgd2hpY2ggb2Z0ZW4gbWVhbnMgdGhhdCBqdXN0IGNyYXNoaW5n
CisgICAgICAgIGlzbid0IHRoZSByaWdodCBvdXRjb21lLiBPdXIgZnV6emVycyBvZnRlbiBlbmNv
dW50ZXIgc3VjaCB0aGluZ3MKKyAgICAgICAgZm9yIEphdmFTY3JpcHRDb3JlLCBhbmQgc28gZmFy
IHdlJ3ZlIGFwcGxpZWQgcG9pbnQgc29sdXRpb25zLiBObworICAgICAgICBtb3JlIQorCisKKyAg
ICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRDb250YWN0Q29jb2EubW06Cisg
ICAgICAgIChXZWJDb3JlOjpjb252ZXJ0KToKKyAgICAgICAgKiBNb2R1bGVzL2VudHJpZXNhcGkv
RE9NRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXNvbHZlUmVsYXRpdmVWaXJ0
dWFsUGF0aCk6CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpsb2dFcnJvcik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCS2V5RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlEYXRhOjpsb2dnaW5n
U3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlQYXRoLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmxvZ2dpbmdTdHJpbmcpOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9JbmRleFZhbHVlU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SURCU2VydmVyOjpJbmRleFZhbHVlU3RvcmU6OmxvZ2dpbmdTdHJpbmcgY29uc3QpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJDdXJzb3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjpidWlsZEluZGV4U3RhdGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OklEQlNlcnZlcjo6YnVpbGRPYmplY3RTdG9yZVN0YXRlbWVudCk6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJEYXRhYmFzZUluZm86OmxvZ2dpbmdTdHJpbmcgY29uc3QpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVJbmZvOjpsb2dnaW5nU3RyaW5nIGNvbnN0KToKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJTdGF0ZVN0cmluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjp0b1N0cmluZyk6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6ZmlsdGVySUNFQ2FuZGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25uZWN0
aW9uQmFja2VuZDo6ZmlsdGVyU0RQIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdpbnMv
WW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OllvdVR1YmVQ
bHVnaW5SZXBsYWNlbWVudDo6eW91VHViZVVSTEZyb21BYnNvbHV0ZVVSTCk6CisgICAgICAgICog
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Z2VuZXJhdGVEYXRhYmFzZUZpbGVOYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmVuY29kZVByb3RvY29sU3RyaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OmpvaW5TdHJpbmdzKToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyOjpjcmVhdGVIZWFkZXJWYWx1ZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyOjphY2Nl
cHRlZEV4dGVuc2lvbnMgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXRIYW5kc2hha2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVzb3VyY2VOYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6Omhvc3ROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEhh
bmRzaGFrZTo6Y2xpZW50TG9jYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29j
a2V0SGFuZHNoYWtlOjpjbGllbnRIYW5kc2hha2VNZXNzYWdlIGNvbnN0KToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnNob3VsZEFkZFNwYWNlQmVmb3JlQXBwZW5kaW5nTmV4dEVsZW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRleHRVbmRlckVsZW1lbnQgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmFjY2Vzc2liaWxp
dHlEZXNjcmlwdGlvbkZvckNoaWxkcmVuIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0OjphY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25Gb3JFbGVtZW50cyBj
b25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN0cmluZ0ZvclJhbmdlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN0cmluZ0ZvclZp
c2libGVQb3NpdGlvblJhbmdlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXIgdmFsdWVEZXNjcmlwdGlvbkZvck1ldGVyXSk6CisgICAgICAgIChmb3Jt
YXRGb3JEZWJ1Z2dlcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01Db252ZXJ0U3RyaW5n
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzdHJpbmdUb1VTVlN0cmluZyk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp0aHJvd0FyZ3VtZW50TXVzdEJlRW51bUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OnRocm93
QXJndW1lbnRNdXN0QmVGdW5jdGlvbkVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OnRocm93QXJn
dW1lbnRUeXBlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6dGhyb3dSZXF1aXJlZE1lbWJlclR5
cGVFcnJvcik6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29tYmluZWRVUkxGaWx0ZXJz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpwcmVmaXhUcmVlVmVy
dGV4VG9TdHJpbmcpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRl
bnNpb246OmNvbXBpbGVHbG9iYWxEaXNwbGF5Tm9uZVN0eWxlU2hlZXQpOgorICAgICAgICAqIGNv
bnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6cmVzb2x2ZVBlbmRpbmdEaXNwbGF5Tm9uZUFjdGlv
bnMpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25TdHlsZVNo
ZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0
ZW5zaW9uU3R5bGVTaGVldDo6YWRkRGlzcGxheU5vbmVTZWxlY3Rvcik6CisgICAgICAgICogY29u
dGVudGV4dGVuc2lvbnMvVGVybS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lv
bnM6OlRlcm06OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTQW5pbWF0aW9uVHJp
Z2dlclNjcm9sbFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0FuaW1hdGlvblRyaWdn
ZXJTY3JvbGxWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0Jh
c2ljU2hhcGVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkQ2lyY2xlU3RyaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OmJ1aWxkRWxsaXBzZVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpi
dWlsZFBhdGhTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRQb2x5Z29uU3RyaW5nKToK
KyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkSW5zZXRTdHJpbmcpOgorICAgICAgICAqIGNzcy9DU1ND
YWxjdWxhdGlvblZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkQ3NzVGV4dCk6Cisg
ICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmNzc1RleHQgY29uc3QpOgorICAg
ICAgICAqIGNzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1ND
cm9zc2ZhZGVWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0N1
cnNvckltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Vyc29ySW1hZ2VWYWx1
ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0N1c3RvbUlkZW50VmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3VzdG9tSWRlbnRWYWx1ZTo6Y3VzdG9tQ1NT
VGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTRmlsdGVySW1hZ2VWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6
CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
U1NGb250RmFjZVJ1bGU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NGb250RmFj
ZVNyY1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU3JjVmFsdWU6OmN1
c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NGb250RmVhdHVyZVZhbHVlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGZWF0dXJlVmFsdWU6OmN1c3RvbUNTU1RleHQg
Y29uc3QpOgorICAgICAgICAqIGNzcy9DU1NGb250U3R5bGVSYW5nZVZhbHVlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0ZvbnRTdHlsZVJhbmdlVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3Qp
OgorICAgICAgICAqIGNzcy9DU1NGb250U3R5bGVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NGb250U3R5bGVWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3Nz
L0NTU0ZvbnRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250VmFsdWU6OmN1c3Rv
bUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udFZhcmlhdGlvblZhbHVlOjpjdXN0b21DU1NUZXh0
IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NGdW5jdGlvblZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAg
KiBjc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NMaW5lYXJH
cmFkaWVudFZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1JhZGlhbEdyYWRpZW50VmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTQ29uaWNHcmFkaWVudFZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAg
ICAgKiBjc3MvQ1NTR3JpZEF1dG9SZXBlYXRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
U1NHcmlkQXV0b1JlcGVhdFZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBj
c3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NH
cmlkVGVtcGxhdGVBcmVhc1ZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBj
c3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVNldFZh
bHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTSW1wb3J0UnVsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbXBvcnRSdWxlOjpjc3NUZXh0IGNvbnN0KToKKyAg
ICAgICAgKiBjc3MvQ1NTS2V5ZnJhbWVSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
UnVsZUtleWZyYW1lOjprZXlUZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVs
ZUtleWZyYW1lOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTS2V5ZnJhbWVzUnVs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NLZXlmcmFtZXNSdWxlOjpjc3NUZXh0IGNvbnN0
KToKKyAgICAgICAgKiBjc3MvQ1NTTGluZUJveENvbnRhaW5WYWx1ZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NMaW5lQm94Q29udGFpblZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAg
ICAgICAgKiBjc3MvQ1NTTWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNlcmlhbGl6ZVN0
cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpzZXJpYWxpemVBc1N0cmluZ09yQ3VzdG9tSWRlbnQp
OgorICAgICAgICAqIGNzcy9DU1NNZWRpYVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
TWVkaWFSdWxlOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTTmFtZXNwYWNlUnVs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NOYW1lc3BhY2VSdWxlOjpjc3NUZXh0IGNvbnN0
KToKKyAgICAgICAgKiBjc3MvQ1NTUGFnZVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFnZVJ1bGU6OnNlbGVjdG9yVGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYWdl
UnVsZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpmb3JtYXROdW1iZXJGb3JD
dXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHlTb3VyY2VEYXRh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5U291cmNlRGF0YTo6dG9TdHJpbmcg
Y29uc3QpOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NTZWxlY3Rvcjo6c2VsZWN0b3JUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTU2Vs
ZWN0b3JMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yTGlzdDo6c2VsZWN0
b3JzVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU1NoYWRvd1ZhbHVlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1NoYWRvd1ZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAg
ICAgKiBjc3MvQ1NTU3R5bGVSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlUnVs
ZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU1N0eWxlU2hlZXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTaGVldDo6YWRkUnVsZSk6CisgICAgICAgICogY3NzL0NT
U1N1cHBvcnRzUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdXBwb3J0c1J1bGU6OmNz
c1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NUaW1pbmdGdW5jdGlvblZhbHVlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0N1YmljQmV6aWVyVGltaW5nRnVuY3Rpb25WYWx1ZTo6Y3Vz
dG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdGVwc1RpbWluZ0Z1bmN0
aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRnJh
bWVzVGltaW5nRnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NTcHJpbmdUaW1pbmdGdW5jdGlvblZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0
KToKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1ZhbHVlTGlzdDo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU1Zhcmlh
YmxlRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYXJpYWJsZURhdGE6OmNvbnN1bWVB
bmRVcGRhdGVUb2tlbnMpOgorICAgICAgICAqIGNzcy9ET01DU1NOYW1lc3BhY2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NQ1NTTmFtZXNwYWNlOjplc2NhcGUpOgorICAgICAgICAqIGNzcy9E
T01NYXRyaXhSZWFkT25seS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01NYXRyaXhSZWFkT25s
eTo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAqIGNzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZUxp
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFsdWVMaXN0Ojpjc3NU
ZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvRm9udEZhY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udEZhY2U6OnN0eWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGYWNlOjp3
ZWlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZhY2U6OnN0cmV0Y2ggY29uc3Qp
OgorICAgICAgICAqIGNzcy9NZWRpYUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFR
dWVyeVNldDo6bWVkaWFUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5OjpzZXJpYWxpemUgY29uc3QpOgorICAgICAg
ICAqIGNzcy9NZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVF1ZXJ5RXhwcmVzc2lvbjo6c2VyaWFsaXplIGNvbnN0KToKKyAgICAgICAgKiBjc3MvUmVjdC5o
OgorICAgICAgICAqIGNzcy9TdHlsZVByb3BlcnRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGVQcm9wZXJ0aWVzOjpmb250VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGVQcm9wZXJ0aWVzOjpnZXQ0VmFsdWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
UHJvcGVydGllczo6Z2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlUHJvcGVydGllczo6Z2V0U2hvcnRoYW5kVmFsdWUgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzOjpib3JkZXJQcm9wZXJ0eVZhbHVlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6YXNUZXh0IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6UHJvcGVydHlSZWZlcmVuY2U6OmNzc1RleHQg
Y29uc3QpOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NNYXRyaXguY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViS2l0Q1NTTWF0cml4Ojp0b1N0cmluZyBjb25zdCk6CisgICAgICAgICogY3NzL1dl
YktpdENTU1ZpZXdwb3J0UnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NWaWV3
cG9ydFJ1bGU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VGb250RmFjZURlc2NyaXB0
b3IpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUGFyc2VyVG9rZW46OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgICogY3Nz
L3BhcnNlci9DU1NQYXJzZXJUb2tlblJhbmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Bh
cnNlclRva2VuUmFuZ2U6OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgICogY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb25jYXRlbmF0ZUZhbWls
eU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VHcmlkVGVtcGxhdGVBcmVhc0NvbHVtbk5h
bWVzKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Rva2VuaXplci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NUb2tlbml6ZXI6OmNvbnN1bWVTdHJpbmdUb2tlblVudGlsKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1Rva2VuaXplcjo6Y29uc3VtZVVybFRva2VuKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1Rva2VuaXplcjo6Y29uc3VtZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9r
ZW5pemVyOjpjb25zdW1lRXNjYXBlKToKKyAgICAgICAgKiBkb20vRGF0YXNldERPTVN0cmluZ01h
cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0QXR0cmlidXRlTmFtZVRvUHJvcGVydHlO
YW1lKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50Ojpmb3JtYXRGb3JEZWJ1Z2dlciBjb25zdCk6CisgICAgICAgICogZG9tL05vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6dGV4dENvbnRlbnQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Tm9kZTo6c2hvd05vZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6dHJhdmVyc2VU
cmVlQW5kTWFyayk6CisgICAgICAgICogZG9tL1Bvc2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBvc2l0aW9uOjpmb3JtYXRGb3JEZWJ1Z2dlciBjb25zdCk6CisgICAgICAgICogZG9tL1Jh
bmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjp0b1N0cmluZyBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpSYW5nZTo6Zm9ybWF0Rm9yRGVidWdnZXIgY29uc3QpOgorICAgICAgICAq
IGRvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
dGhyb3R0bGluZ1JlYXNvbnNUb1N0cmluZyk6CisgICAgICAgICogZG9tL1NlY3VyaXR5Q29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eUNvbnRleHQ6OnBhcnNlU2FuZGJveFBv
bGljeSk6CisgICAgICAgICogZG9tL1RleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dDo6
d2hvbGVUZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHQ6OmZvcm1hdEZvckRlYnVn
Z2VyIGNvbnN0KToKKyAgICAgICAgKiBkb20vVGV4dE5vZGVUcmF2ZXJzYWwuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dE5vZGVUcmF2ZXJzYWw6OmNvbnRlbnRzQXNTdHJpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dE5vZGVUcmF2ZXJzYWw6OmNoaWxkVGV4dENvbnRlbnQpOgorICAgICAg
ICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBw
bHlTdHlsZUNvbW1hbmQ6OmFkZEJsb2NrU3R5bGUpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdGlu
Zy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzdHJpbmdXaXRoUmViYWxhbmNlZFdoaXRlc3BhY2Up
OgorICAgICAgICAqIGVkaXRpbmcvSFRNTEludGVyY2hhbmdlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnZlcnRIVE1MVGV4dFRvSW50ZXJjaGFuZ2VGb3JtYXQpOgorICAgICAgICAqIGVkaXRp
bmcvTWFya3VwQWNjdW11bGF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWFya3VwQWNjdW11
bGF0b3I6OnNlcmlhbGl6ZU5vZGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1hcmt1cEFjY3VtdWxh
dG9yOjpnZW5lcmF0ZVVuaXF1ZVByZWZpeCk6CisgICAgICAgICogZWRpdGluZy9UZXh0SXRlcmF0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGxhaW5UZXh0KToKKyAgICAgICAgKiBlZGl0aW5n
L1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6aW5w
dXRFdmVudERhdGFUcmFuc2ZlciBjb25zdCk6CisgICAgICAgICogZWRpdGluZy9WaXNpYmxlU2Vs
ZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpc2libGVTZWxlY3Rpb246OmZvcm1hdEZv
ckRlYnVnZ2VyIGNvbnN0KToKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24u
bW06CisgICAgICAgIChXZWJDb3JlOjpkYXRhRGV0ZWN0b3JTdHJpbmdGb3JQYXRoKToKKyAgICAg
ICAgKiBlZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW06CisgICAgICAgIChIVE1MQ29udmVy
dGVyOjpfcHJvY2Vzc1RleHQpOgorICAgICAgICAqIGVkaXRpbmcvbWFya3VwLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjp3cmFwV2l0aE5vZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OndyYXBXaXRoU3R5bGVOb2Rl
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjp0YWtlUmVzdWx0
cyk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kVGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpzYW5pdGl6ZWRNYXJrdXBGb3JGcmFnbWVudEluRG9jdW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6dXJsVG9NYXJrdXApOgorICAgICAgICAqIGZpbGVhcGkv
RmlsZVJlYWRlckxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlUmVhZGVyTG9hZGVy
Ojpjb252ZXJ0VG9EYXRhVVJMKToKKyAgICAgICAgKiBodG1sL0RPTVRva2VuTGlzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpET01Ub2tlbkxpc3Q6OnVwZGF0ZUFzc29jaWF0ZWRBdHRyaWJ1dGVG
cm9tVG9rZW5zKToKKyAgICAgICAgKiBodG1sL0VtYWlsSW5wdXRUeXBlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkVtYWlsSW5wdXRUeXBlOjpzYW5pdGl6ZVZhbHVlIGNvbnN0KToKKyAgICAgICAg
KiBodG1sL0ZpbGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlw
ZTo6ZGVmYXVsdFRvb2xUaXAgY29uc3QpOgorICAgICAgICAqIGh0bWwvRm9ybUNvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Zm9ybVNpZ25hdHVyZSk6CisgICAgICAgICogaHRtbC9I
VE1MQW5jaG9yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVu
dDo6aGFuZGxlQ2xpY2spOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUNvbnRleHQyZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIgY29u
c3QpOgorICAgICAgICAqIGh0bWwvSFRNTEZvbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnBhcnNlRm9udFNpemUpOgorICAgICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50Ojpjb21wbGV0ZVVSTHNJbkF0dHJp
YnV0ZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6YWN0aW9uTmFtZSk6CisgICAgICAgICogaHRtbC9IVE1MT3B0aW9u
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6Y29sbGVj
dE9wdGlvbklubmVyVGV4dCBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6c3RyaXBwZWRQbGFjZWhvbGRlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjppbm5l
clRleHRWYWx1ZUZyb20pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQ6OnZhbHVlV2l0aEhhcmRMaW5lQnJlYWtzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL01l
ZGlhRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFEb2N1bWVudFBhcnNlcjo6
Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUpOgorICAgICAgICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vz
c2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXN0cmljdGlvbk5hbWUpOgorICAgICAgICAq
IGh0bWwvTWVkaWFGcmFnbWVudFVSSVBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb2xs
ZWN0RGlnaXRzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbGxlY3RGcmFjdGlvbik6CisgICAgICAg
ICogaHRtbC9UeXBlQWhlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwZUFoZWFkOjpoYW5k
bGVFdmVudCk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Zm9udCBj
b25zdCk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFz
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpn
ZXRJbWFnZURhdGEgY29uc3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UuY3BwOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxTb3VyY2VUcmFja2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTb3VyY2VUcmFja2VyOjpzb3VyY2UpOgorICAg
ICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFRva2VuaXplcjo6cHJvY2Vzc0VudGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9r
ZW5pemVyOjpwcm9jZXNzVG9rZW4pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXplcjo6
YnVmZmVyZWRDaGFyYWN0ZXJzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVHJl
ZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpkZWZhdWx0
Rm9ySW5UYWJsZVRleHQpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpidWlsZENvbnNvbGVFcnJvcik6CisgICAgICAgICog
aHRtbC90cmFjay9CdWZmZXJlZExpbmVSZWFkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QnVm
ZmVyZWRMaW5lUmVhZGVyOjpuZXh0TGluZSk6CisgICAgICAgICogaHRtbC90cmFjay9UcmFja0Jh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHJhY2tCYXNlOjpzZXRMYW5ndWFnZSk6CisgICAg
ICAgICogaHRtbC90cmFjay9WVFRDdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VlRUQ3VlOjpk
ZXRlcm1pbmVUZXh0RGlyZWN0aW9uKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1dlYlZUVFBhcnNl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJWVFRQYXJzZXI6OmNyZWF0ZU5ld0N1ZSk6Cisg
ICAgICAgICogaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViVlRUVG9rZW5pemVyOjpuZXh0VG9rZW4pOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjpz
aG9ydGhhbmRWYWx1ZSBjb25zdCk6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
QXBwbGljYXRpb25DYWNoZUFnZW50OjpidWlsZE9iamVjdEZvckFwcGxpY2F0aW9uQ2FjaGVSZXNv
dXJjZSk6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQu
Y3BwOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkNvbnNvbGVBZ2VudDo6ZGlkRmFpbExvYWRpbmcpOgorICAgICAg
ICAqIGxvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlQWNjZXNzQ29udHJvbFByZWZsaWdodFJlcXVlc3QpOgorICAgICAgICAqIGxvYWRl
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3M6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGlj
YXRpb25DYWNoZVN0b3JhZ2U6OnN0b3JlKToKKyAgICAgICAgKiBsb2FkZXIvYXJjaGl2ZS9jZi9M
ZWdhY3lXZWJBcmNoaXZlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVdlYkFyY2hpdmU6
OmNyZWF0ZUZyb21TZWxlY3Rpb24pOgorICAgICAgICAqIGxvYWRlci9hcmNoaXZlL21odG1sL01I
VE1MQXJjaGl2ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZW5lcmF0ZVJhbmRvbUJvdW5kYXJ5
KToKKyAgICAgICAgKFdlYkNvcmU6OnJlcGxhY2VOb25QcmludGFibGVDaGFyYWN0ZXJzKToKKyAg
ICAgICAgKiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjp3aW5kb3dSb3VuZGVkQ29y
bmVyUmFkaXVzQ1NTIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVy
ZW5jZXNNZWRpYUFGOjpjb2xvclByb3BlcnR5Q1NTIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc1RleHRFZGdlQ1NTIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0
aW9uc0RlZmF1bHRGb250Q1NTIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2Vy
UHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc1N0eWxlU2hlZXRPdmVycmlkZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjp0cmFja0Rpc3BsYXlOYW1lKToKKyAgICAgICAgKiBwYWdlL0ZyYW1l
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVJlZ0V4cEZvckxhYmVscyk6CisgICAgICAg
ICogcGFnZS9GcmFtZVRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVUcmVlOjp1bmlx
dWVDaGlsZE5hbWUgY29uc3QpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6bG9nTW9ja1Njcm9sbEFuaW1hdG9yTWVzc2FnZSBjb25z
dCk6CisgICAgICAgICogcGFnZS9QYWdlU2VyaWFsaXplci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlU2VyaWFsaXplcjo6c2VyaWFsaXplQ1NTU3R5bGVTaGVldCk6CisgICAgICAgICogcGFn
ZS9QZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9y
bWFuY2VMb2dnaW5nQ2xpZW50OjpzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNBc1N0cmluZyk6
CisgICAgICAgICogcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhOjpkYXRhYmFzZUlkZW50aWZpZXIgY29uc3QpOgorICAgICAg
ICAqIHBhZ2UvV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmR1
bXBTdGF0ZSk6CisgICAgICAgICogcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnNvbGVNZXNzYWdlRm9yVmlvbGF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dSdW5uaW5nT3JEaXNwbGF5aW5n
SW5zZWN1cmVDb250ZW50KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9BeGlzU2Nyb2xsU25h
cE9mZnNldHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c25hcE9mZnNldHNUb1N0cmluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpzbmFwT2Zmc2V0UmFuZ2VzVG9TdHJpbmcpOgorICAgICAgICAqIHBh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNBc1RleHQp
OgorICAgICAgICAqIHBsYXRmb3JtL0RlY2ltYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVj
aW1hbDo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbTo6ZW5jb2RlRm9yRmlsZU5hbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbTo6ZGVjb2RlRnJvbUZpbGVuYW1lKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9QT0RJbnRlcnZhbC5oOgorICAgICAgICAqIHBsYXRmb3JtL1BPRFJlZEJsYWNr
VHJlZS5oOgorICAgICAgICAoV2ViQ29yZTo6UE9EUmVkQmxhY2tUcmVlOjpkdW1wRnJvbU5vZGUg
Y29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1VSTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpV
Ukw6OnNldEhvc3QpOgorICAgICAgICAoV2ViQ29yZTo6VVJMOjpzZXRIb3N0QW5kUG9ydCk6Cisg
ICAgICAgIChXZWJDb3JlOjpwZXJjZW50RW5jb2RlQ2hhcmFjdGVycyk6CisgICAgICAgICogcGxh
dGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRp
bWluZ0Z1bmN0aW9uOjpjcmVhdGVGcm9tQ1NTVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ2xp
Yi9GaWxlU3lzdGVtR2xpYi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtOjpwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcjo6c2VyaWFsaXplZCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDb2xvcjo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbmRlZENv
bG9yOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2Fz
Y2FkZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpub3JtYWxpemVTcGFjZXNJbnRlcm5hbCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNldHRpbmdzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6YW5pbWF0
aW9uTmFtZUZvclRyYW5zaXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NDdWVBdHRyaWJ1dGVzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NOYXRpdmVTYW1w
bGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpUaWxlQ29udHJvbGxlcjo6Y3JlYXRlVGlsZUxheWVyKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlR3JpZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjp2YWxpZGF0aW9uUG9saWN5QXNTdHJpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwOgorICAgICAgICAoUGxhdGZvcm1DQUxh
eWVyV2luOjpsYXllclRyZWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Vmlk
ZW9UZXh0dXJlQ29waWVyQ1Y6OmluaXRpYWxpemVDb250ZXh0T2JqZWN0cyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmdlbmVyYXRlSGFzaGVkTmFtZSk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0VW5tYW5nbGVkSW5mb0xvZyk6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpqb2luUGF0
aG5hbWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6d2lsZGNhcmRSZWdleFBhdHRlcm5TdHJpbmcpOgorICAgICAgICAqIHBs
YXRmb3JtL21vY2svU2Nyb2xsQW5pbWF0b3JNb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbEFuaW1hdG9yTW9jazo6bW91c2VFbnRlcmVkU2Nyb2xsYmFyIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTW9jazo6bW91c2VFeGl0ZWRTY3JvbGxiYXIgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNb2NrOjptb3VzZUlzRG93bkluU2Ny
b2xsYmFyIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tC
b3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0JveDo6cGVla1R5cGUpOgorICAgICAgICAo
V2ViQ29yZTo6TW9ja1RyYWNrQm94OjpNb2NrVHJhY2tCb3gpOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXh0cmFjdE1JTUVU
eXBlRnJvbU1lZGlhVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1N0cmluZyk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9tYWMvQ29va2llSmFyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29va2llc0Zv
clNlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnRz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0RlY29kZUVzY2FwZVNlcXVlbmNlcy5oOgorICAg
ICAgICAoV2ViQ29yZTo6VW5pY29kZTE2Qml0RXNjYXBlU2VxdWVuY2U6OmRlY29kZVJ1bik6Cisg
ICAgICAgIChXZWJDb3JlOjpkZWNvZGVFc2NhcGVTZXF1ZW5jZXMpOgorICAgICAgICAqIHBsYXRm
b3JtL3RleHQvUGxhdGZvcm1Mb2NhbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlOjpj
b252ZXJ0VG9Mb2NhbGl6ZWROdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlOjpjb252
ZXJ0RnJvbUxvY2FsaXplZE51bWJlcik6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbGU6OmZvcm1h
dERhdGVUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmluZy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6OnRvU3RyaW5nIGNvbnN0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0Q29kZWNJQ1U6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0Q29k
ZWNVc2VyRGVmaW5lZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q29kZWNVc2VyRGVmaW5l
ZDo6ZGVjb2RlKToKKyAgICAgICAgKiBwbHVnaW5zL0RPTU1pbWVUeXBlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRPTU1pbWVUeXBlOjpzdWZmaXhlcyBjb25zdCk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpuYW1l
IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6bG9nTGF5ZXJJbmZvKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpsaXN0TWFya2VyVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0TWFya2Vy
OjpwYWludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y2FwaXRhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjptYXhXb3JkRnJhZ21lbnRX
aWR0aCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6cXVvdGVBbmRFc2NhcGVOb25QcmludGFibGVzKToKKyAgICAgICAgKFdlYkNv
cmU6Om5vZGVQb3NpdGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRo
TUxGZW5jZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWF0aE1MRmVuY2VkOjp1cGRh
dGVGcm9tRWxlbWVudCk6CisgICAgICAgICogcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVC
dWlsZGVyTWF0aE1MLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVCdWlsZGVyOjpN
YXRoTUw6OmF0dGFjaCk6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZyBjb25z
dCk6CisgICAgICAgICogc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTnVtYmVyTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAg
ICogc3ZnL1NWR1BhdGhTdHJpbmdCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Bh
dGhTdHJpbmdCdWlsZGVyOjpyZXN1bHQpOgorICAgICAgICAqIHN2Zy9TVkdQYXRoVXRpbGl0aWVz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkU3RyaW5nRnJvbVBhdGgpOgorICAgICAgICAq
IHN2Zy9TVkdQb2ludExpc3RWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9pbnRM
aXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHU3RyaW5n
TGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHJpbmdMaXN0VmFsdWVzOjp2
YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVl
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjp2YWx1ZUFz
U3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtVmFsdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtVmFsdWU6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgor
ICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFBvaW50Pjo6dG9TdHJpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0Pjo6dG9TdHJpbmcpOgorICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
czo6ZHVtcE1hcmtlclJlY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cGFyc2Vy
TWV0YURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpnZXRDdXJyZW50Q3Vyc29y
SW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om1lZGlhU2Vzc2lvblJlc3RyaWN0
aW9ucyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnBhZ2VNZWRpYVN0YXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2Nyb2xsU25hcE9mZnNldHMpOgorICAg
ICAgICAqIHRlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1vY2tQYWdlT3ZlcmxheUNsaWVudDo6ZHJhd1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6
TW9ja1BhZ2VPdmVybGF5Q2xpZW50Ojptb3VzZUV2ZW50KToKKyAgICAgICAgKiB3b3JrZXJzL1dv
cmtlclNjcmlwdExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRMb2Fk
ZXI6OnNjcmlwdCk6CisgICAgICAgICogeG1sL1hNTEVycm9ycy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpYTUxFcnJvcnM6Omluc2VydEVycm9yTWVzc2FnZUJsb2NrKToKKyAgICAgICAgKiB4bWwv
WE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6Omdl
dEFsbFJlc3BvbnNlSGVhZGVycyBjb25zdCk6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0
Lmg6CisgICAgICAgICogeG1sL1hQYXRoRnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlhQYXRoOjphdG9taWNTdWJzdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OkZ1bklk
OjpldmFsdWF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6RnVuQ29uY2F0Ojpl
dmFsdWF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6RnVuVHJhbnNsYXRlOjpl
dmFsdWF0ZSBjb25zdCk6CisgICAgICAgICogeG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnNhdmVSZXN1bHRUb1N0cmluZyk6CisgICAgICAgICogeG1sL3Bh
cnNlci9DaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVzLmg6CisgICAgICAgIChXZWJDb3Jl
Ojp1bmNvbnN1bWVDaGFyYWN0ZXJzKToKKwogMjAxOC0wNS0wMSAgT2xla3NhbmRyIFNrYWNoa292
ICA8Z3NrYWNoa292QGdtYWlsLmNvbT4KIAogICAgICAgICBXZWJBc3NlbWJseTogYWRkIHN1cHBv
cnQgZm9yIHN0cmVhbSBBUElzIC0gSmF2YVNjcmlwdCBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudENvbnRhY3RDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudENvbnRhY3RDb2NvYS5t
bQppbmRleCAzYmU2MjEwLi4wOTc4NGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRDb250YWN0Q29jb2EubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50Q29udGFjdENvY29hLm1tCkBAIC0x
NTQsNyArMTU0LDEwIEBAIHN0YXRpYyBSZXRhaW5QdHI8UEtDb250YWN0PiBjb252ZXJ0KHVuc2ln
bmVkIHZlcnNpb24sIGNvbnN0IEFwcGxlUGF5UGF5bWVudENvbnRhCiAgICAgICAgIH0KIAogICAg
ICAgICAvLyBGSVhNRTogU3RyaW5nQnVpbGRlciBzaG91bGQgaGF2YSBhIHRvTlNTdHJpbmcoKSBm
dW5jdGlvbiB0byBhdm9pZCB0aGUgZXh0cmEgU3RyaW5nIGFsbG9jYXRpb24uCi0gICAgICAgIFth
ZGRyZXNzIHNldFN0cmVldDpidWlsZGVyLnRvU3RyaW5nKCldOworICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBbYWRkcmVzcyBzZXRTdHJl
ZXQ6KnN0cmluZ107CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAKICAgICAg
ICAgaWYgKCFjb250YWN0LnN1YkxvY2FsaXR5LmlzRW1wdHkoKSkKICAgICAgICAgICAgIHNldFN1
YkxvY2FsaXR5KGFkZHJlc3MuZ2V0KCksIGNvbnRhY3Quc3ViTG9jYWxpdHkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwCmluZGV4
IDhlNTA2NmQuLjliMzYwYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50
cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
dHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAKQEAgLTIxNiw3ICsyMTYsOSBAQCBzdGF0aWMgU3Ry
aW5nIHJlc29sdmVSZWxhdGl2ZVZpcnR1YWxQYXRoKFN0cmluZ1ZpZXcgYmFzZVZpcnR1YWxQYXRo
LCBTdHJpbmdWaWV3CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcvJyk7CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKHNlZ21lbnQpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5p
by9lbnRyaWVzLWFwaS8jZXZhbHVhdGUtYS1wYXRoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCmluZGV4IGRjYmY3MDMuLjZjYWFjNWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRp
b24uY3BwCkBAIC0zNDAsNyArMzQwLDEwIEBAIHN0YXRpYyB2b2lkIGxvZ0Vycm9yKGNvbnN0IFN0
cmluZyYgdGFyZ2V0LCBjb25zdCBib29sIGlzU2VjdXJlLCBjb25zdCBib29sIGlzTWl4CiAgICAg
CiAgICAgbWVzc2FnZS5hcHBlbmQodGFyZ2V0KTsKICAgICBtZXNzYWdlLmFwcGVuZCgiLlxuIik7
Ci0gICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5
LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBtZXNzYWdlLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IG1lc3NhZ2UudG9TdHJpbmcoKSkKKyAgICAgICAgZG9jdW1lbnQtPmFkZENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAq
c3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIC8vIEZJWE1FOiByZW1v
dmUgdGhpcyBmdW5jdGlvbiB3aGVuIHJkYXI6Ly9wcm9ibGVtLzMyMTM3ODIxIGlzIGZpeGVkLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmNwcAppbmRl
eCAyZTkzNjQ1Li43MjEyOTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJLZXlEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJLZXlEYXRhLmNwcApAQCAtMzMyLDcgKzMzMiwxMCBAQCBTdHJpbmcgSURCS2V5RGF0
YTo6bG9nZ2luZ1N0cmluZygpIGNvbnN0CiAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRM
aXRlcmFsKCIsICIpOwogICAgICAgICB9CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
IH0iKTsKLSAgICAgICAgcmVzdWx0ID0gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAo
YXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXN1bHQgPSAq
c3RyaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICBicmVh
azsKICAgICB9CiAgICAgY2FzZSBLZXlUeXBlOjpCaW5hcnk6IHsKQEAgLTM0Miw3ICszNDUsMTAg
QEAgU3RyaW5nIElEQktleURhdGE6OmxvZ2dpbmdTdHJpbmcoKSBjb25zdAogICAgICAgICBhdXRv
KiBkYXRhID0gV1RGOjpnZXQ8VGhyZWFkU2FmZURhdGFCdWZmZXI+KG1fdmFsdWUpLmRhdGEoKTsK
ICAgICAgICAgaWYgKCFkYXRhKSB7CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgiKG51bGwp
Iik7Ci0gICAgICAgICAgICByZXN1bHQgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAg
cmVzdWx0ID0gKnN0cmluZzsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFT
SCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApAQCAtMzUzLDcgKzM1OSwxMCBA
QCBTdHJpbmcgSURCS2V5RGF0YTo6bG9nZ2luZ1N0cmluZygpIGNvbnN0CiAgICAgICAgIGlmIChk
YXRhLT5zaXplKCkgPiA4KQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIi4uLiIpOwogCi0g
ICAgICAgIHJlc3VsdCA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmVzdWx0ID0gKnN0cmluZzsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQogICAgIGNhc2UgS2V5VHlwZTo6U3RyaW5nOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UGF0aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJLZXlQYXRoLmNwcAppbmRleCA3NmViZWIzLi44YjlmYjE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlQYXRoLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlQYXRoLmNwcApAQCAtMjQx
LDcgKzI0MSw5IEBAIFN0cmluZyBsb2dnaW5nU3RyaW5nKGNvbnN0IElEQktleVBhdGgmIHBhdGgp
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHN0cmluZ3MubGFzdCgpKTsKICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoIiA+Iik7CiAKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAg
ICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfSk7CiAKICAgICByZXR1cm4g
V1RGOjp2aXNpdCh2aXNpdG9yLCBwYXRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRleFZhbHVlU3RvcmUuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0luZGV4VmFsdWVTdG9yZS5jcHAKaW5kZXggNjk4
M2M5ZC4uODBkNmIzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL0luZGV4VmFsdWVTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL0luZGV4VmFsdWVTdG9yZS5jcHAKQEAgLTQwOSw3ICs0MDksOSBA
QCBTdHJpbmcgSW5kZXhWYWx1ZVN0b3JlOjpsb2dnaW5nU3RyaW5nKCkgY29uc3QKICAgICAgICAg
YnVpbGRlci5hcHBlbmROdW1iZXIobV9yZWNvcmRzLmdldChrZXkpLT5nZXRDb3VudCgpKTsKICAg
ICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgZW50cmllcyIpOwogICAgIH0KLSAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
U1FMaXRlSURCQ3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9TUUxpdGVJREJDdXJzb3IuY3BwCmluZGV4IGYyMGRiODcuLmE0YzMwZmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJDdXJz
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxp
dGVJREJDdXJzb3IuY3BwCkBAIC0xNDEsNyArMTQxLDkgQEAgc3RhdGljIFN0cmluZyBidWlsZElu
ZGV4U3RhdGVtZW50KGNvbnN0IElEQktleVJhbmdlRGF0YSYga2V5UmFuZ2UsIEluZGV4ZWREQjo6
Q3UKIAogICAgIGJ1aWxkZXIuYXBwZW5kKCc7Jyk7CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBidWls
ZE9iamVjdFN0b3JlU3RhdGVtZW50KGNvbnN0IElEQktleVJhbmdlRGF0YSYga2V5UmFuZ2UsIElu
ZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uIGN1cnNvckRpcmVjdGlvbikKQEAgLTE2OSw3ICsxNzEs
OSBAQCBzdGF0aWMgU3RyaW5nIGJ1aWxkT2JqZWN0U3RvcmVTdGF0ZW1lbnQoY29uc3QgSURCS2V5
UmFuZ2VEYXRhJiBrZXlSYW5nZSwgSW5kZXhlZAogCiAgICAgYnVpbGRlci5hcHBlbmQoJzsnKTsK
IAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
YnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogCiBib29sIFNRTGl0ZUlEQkN1cnNvcjo6ZXN0YWJsaXNoU3RhdGVtZW50KCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJEYXRhYmFz
ZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRh
dGFiYXNlSW5mby5jcHAKaW5kZXggZTVkZjE1Yy4uNzY5MzRkNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5m
by5jcHAKQEAgLTE2OSw3ICsxNjksOSBAQCBTdHJpbmcgSURCRGF0YWJhc2VJbmZvOjpsb2dnaW5n
U3RyaW5nKCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7CiAgICAgfQogCi0g
ICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2hhcmVkL0lEQk9iamVjdFN0b3JlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zaGFyZWQvSURCT2JqZWN0U3RvcmVJbmZvLmNwcAppbmRleCBiMDA3NWZlLi44ZDhm
YWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCT2JqZWN0U3RvcmVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zaGFyZWQvSURCT2JqZWN0U3RvcmVJbmZvLmNwcApAQCAtMTQ4LDcgKzE0OCw5IEBAIFN0
cmluZyBJREJPYmplY3RTdG9yZUluZm86OmxvZ2dpbmdTdHJpbmcoaW50IGluZGVudCkgY29uc3QK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBJREJP
YmplY3RTdG9yZUluZm86OmNvbmRlbnNlZExvZ2dpbmdTdHJpbmcoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNl
c3Npb25NYW5hZ2VyLmNwcAppbmRleCA0MjA5ZmZhLi45NmZlYmM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Np
b25NYW5hZ2VyLmNwcApAQCAtODksNyArODksOSBAQCBzdGF0aWMgU3RyaW5nIG1lZGlhUHJvZHVj
ZXJTdGF0ZVN0cmluZyhNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpCiAgICAg
ZWxzZQogICAgICAgICBzdHJpbmcucmVzaXplKHN0cmluZy5sZW5ndGgoKSAtIDIpOwogCi0gICAg
cmV0dXJuIHN0cmluZy50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0ciA9IHN0cmluZy50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cjsKKyAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAK
QEAgLTM4MSw3ICszODMsOSBAQCBTdHJpbmcgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6dG9TdHJp
bmcoQ29uZmlndXJhdGlvblRhc2tzIHRhc2tzKQogICAgIGVsc2UKICAgICAgICAgc3RyaW5nLnJl
c2l6ZShzdHJpbmcubGVuZ3RoKCkgLSAyKTsKICAgICAKLSAgICByZXR1cm4gc3RyaW5nLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyID0gc3RyaW5nLnRvU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybiAqc3RyOworICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQu
Y3BwCmluZGV4IGRjNTFiYjUuLmRiZWNkNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKQEAg
LTQwMyw3ICs0MDMsOSBAQCBzdGF0aWMgU3RyaW5nIGZpbHRlcklDRUNhbmRpZGF0ZShTdHJpbmcm
JiBzZHApCiAgICAgICAgICAgICBmaWx0ZXJlZFNEUC5hcHBlbmQoJyAnKTsKICAgICAgICAgZmls
dGVyZWRTRFAuYXBwZW5kKGl0ZW0pOwogICAgIH0pOwotICAgIHJldHVybiBmaWx0ZXJlZFNEUC50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGZpbHRlcmVkU0RQLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBQZWVy
Q29ubmVjdGlvbkJhY2tlbmQ6OmZpbHRlclNEUChTdHJpbmcmJiBzZHApIGNvbnN0CkBAIC00MjEs
NyArNDIzLDkgQEAgU3RyaW5nIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6ZmlsdGVyU0RQKFN0cmlu
ZyYmIHNkcCkgY29uc3QKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgZmlsdGVyZWRTRFAu
YXBwZW5kKCdcbicpOwogICAgIH0pOwotICAgIHJldHVybiBmaWx0ZXJlZFNEUC50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGZpbHRlcmVkU0RQLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgUGVlckNvbm5lY3Rpb25C
YWNrZW5kOjpuZXdJQ0VDYW5kaWRhdGUoU3RyaW5nJiYgc2RwLCBTdHJpbmcmJiBtaWQsIHVuc2ln
bmVkIHNob3J0IHNkcE1MaW5lSW5kZXgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCmluZGV4IGM5MTcx
ZGMuLjQyN2Y0ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Z
b3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
cGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCkBAIC0zMzMsNyArMzMzLDkgQEAg
U3RyaW5nIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6eW91VHViZVVSTEZyb21BYnNvbHV0ZVVS
TChjb25zdCBVUkwmIHNyY1VSTCwgY28KICAgICAgICAgZmluYWxVUkwuYXBwZW5kKCc/Jyk7CiAg
ICAgICAgIGZpbmFsVVJMLmFwcGVuZChxdWVyeSk7CiAgICAgfQotICAgIHJldHVybiBmaW5hbFVS
TC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGZpbmFsVVJMLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAgICAgCiBib29sIFlv
dVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6c3VwcG9ydHNVUkwoY29uc3QgVVJMJiB1cmwpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tl
ci5jcHAKaW5kZXggOGZkYTYyYS4uOThmMzA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcApAQCAtMzIwLDcgKzMy
MCw5IEBAIHN0YXRpYyBTdHJpbmcgZ2VuZXJhdGVEYXRhYmFzZUZpbGVOYW1lKCkKICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZChjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkpOwogICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLmRiIik7CiAKLSAgICByZXR1cm4gc3RyaW5nQnVpbGRl
ci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5n
IERhdGFiYXNlVHJhY2tlcjo6ZnVsbFBhdGhGb3JEYXRhYmFzZU5vTG9jayhjb25zdCBTZWN1cml0
eU9yaWdpbkRhdGEmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTm90
RXhpc3RzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dl
YlNvY2tldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
LmNwcAppbmRleCAwMjQ3N2I5Li5lYWIyNTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApAQCAtMTA1LDcgKzEwNSw5IEBAIHN0YXRpYyBT
dHJpbmcgZW5jb2RlUHJvdG9jb2xTdHJpbmcoY29uc3QgU3RyaW5nJiBwcm90b2NvbCkKICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQocHJvdG9jb2xbaV0pOwogICAgIH0K
LSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogc3RhdGljIFN0cmluZyBqb2luU3RyaW5ncyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3Ry
aW5ncywgY29uc3QgY2hhciogc2VwYXJhdG9yKQpAQCAtMTE2LDcgKzExOCw5IEBAIHN0YXRpYyBT
dHJpbmcgam9pblN0cmluZ3MoY29uc3QgVmVjdG9yPFN0cmluZz4mIHN0cmluZ3MsIGNvbnN0IGNo
YXIqIHNlcGFyYXRvcikKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHNlcGFyYXRvcik7CiAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKHN0cmluZ3NbaV0pOwogICAgIH0KLSAgICByZXR1cm4gYnVp
bGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIHVu
c2lnbmVkIHNhdHVyYXRlQWRkKHVuc2lnbmVkIGEsIHVuc2lnbmVkIGIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0
Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0
ZW5zaW9uRGlzcGF0Y2hlci5jcHAKaW5kZXggZmNjOWRjMy4uNmM0MGM0OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3Bh
dGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcApAQCAtNjgsNyArNjgsOSBAQCBjb25zdCBTdHJpbmcg
V2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlcjo6Y3JlYXRlSGVhZGVyVmFsdWUoKSBjb25zdAog
ICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgIik7CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKG1fcHJvY2Vzc29yc1tpXS0+aGFuZHNoYWtlU3RyaW5nKCkpOwogICAgIH0KLSAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9p
ZCBXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyOjphcHBlbmRBY2NlcHRlZEV4dGVuc2lvbihj
b25zdCBTdHJpbmcmIGV4dGVuc2lvblRva2VuLCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYgZXh0
ZW5zaW9uUGFyYW1ldGVycykKQEAgLTEzOSw3ICsxNDEsOSBAQCBTdHJpbmcgV2ViU29ja2V0RXh0
ZW5zaW9uRGlzcGF0Y2hlcjo6YWNjZXB0ZWRFeHRlbnNpb25zKCkgY29uc3QKIHsKICAgICBpZiAo
bV9hY2NlcHRlZEV4dGVuc2lvbnNCdWlsZGVyLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIFN0
cmluZygpOwotICAgIHJldHVybiBtX2FjY2VwdGVkRXh0ZW5zaW9uc0J1aWxkZXIudG9TdHJpbmdQ
cmVzZXJ2ZUNhcGFjaXR5KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbV9hY2NlcHRlZEV4dGVu
c2lvbnNCdWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgV2ViU29ja2V0RXh0ZW5zaW9uRGlz
cGF0Y2hlcjo6ZmFpbHVyZVJlYXNvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCmluZGV4IDU0NTVj
ZDEuLjA4M2E5MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCkBAIC03MiwxMCArNzIsMTMgQEAgc3RhdGlj
IFN0cmluZyByZXNvdXJjZU5hbWUoY29uc3QgVVJMJiB1cmwpCiAgICAgICAgIG5hbWUuYXBwZW5k
KCc/Jyk7CiAgICAgICAgIG5hbWUuYXBwZW5kKHVybC5xdWVyeSgpKTsKICAgICB9Ci0gICAgU3Ry
aW5nIHJlc3VsdCA9IG5hbWUudG9TdHJpbmcoKTsKLSAgICBBU1NFUlQoIXJlc3VsdC5pc0VtcHR5
KCkpOwotICAgIEFTU0VSVCghcmVzdWx0LmNvbnRhaW5zKCcgJykpOwotICAgIHJldHVybiByZXN1
bHQ7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbmFtZS50b1N0cmluZygpKSB7CisgICAgICAgIFN0
cmluZyByZXN1bHQgPSAqc3RyaW5nOworICAgICAgICBBU1NFUlQoIXJlc3VsdC5pc0VtcHR5KCkp
OworICAgICAgICBBU1NFUlQoIXJlc3VsdC5jb250YWlucygnICcpKTsKKyAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBob3N0TmFt
ZShjb25zdCBVUkwmIHVybCwgYm9vbCBzZWN1cmUpCkBAIC04Nyw3ICs5MCw5IEBAIHN0YXRpYyBT
dHJpbmcgaG9zdE5hbWUoY29uc3QgVVJMJiB1cmwsIGJvb2wgc2VjdXJlKQogICAgICAgICBidWls
ZGVyLmFwcGVuZCgnOicpOwogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih1cmwucG9ydCgp
LnZhbHVlKCkpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIGNvbnN0IHNpemVfdCBtYXhJbnB1dFNhbXBs
ZVNpemUgPSAxMjg7CkBAIC0xNzYsNyArMTgxLDkgQEAgU3RyaW5nIFdlYlNvY2tldEhhbmRzaGFr
ZTo6Y2xpZW50TG9jYXRpb24oKSBjb25zdAogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiOi8v
Iik7CiAgICAgYnVpbGRlci5hcHBlbmQoaG9zdE5hbWUobV91cmwsIG1fc2VjdXJlKSk7CiAgICAg
YnVpbGRlci5hcHBlbmQocmVzb3VyY2VOYW1lKG1fdXJsKSk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIENTdHJpbmcgV2ViU29j
a2V0SGFuZHNoYWtlOjpjbGllbnRIYW5kc2hha2VNZXNzYWdlKCkgY29uc3QKQEAgLTIyNiw3ICsy
MzMsOSBAQCBDU3RyaW5nIFdlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZW50SGFuZHNoYWtlTWVzc2Fn
ZSgpIGNvbnN0CiAKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxyXG4iKTsKIAotICAgIHJl
dHVybiBidWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0cmluZy0+dXRmOCgpOworICAgIENS
QVNIKCk7CiB9CiAKIFJlc291cmNlUmVxdWVzdCBXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudEhh
bmRzaGFrZVJlcXVlc3QoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCBkYjg1NzVlLi5jNGEy
NTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmNwcApAQCAtMTcxMywxMSArMTcxMywxMyBAQCBzdGF0aWMgYm9v
bCBzaG91bGRVc2VBY2Nlc3NpYmlsaXR5T2JqZWN0SW5uZXJUZXh0KEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iaiwgQWNjZQogCiBzdGF0aWMgYm9vbCBzaG91bGRBZGRTcGFjZUJlZm9yZUFwcGVuZGlu
Z05leHRFbGVtZW50KFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIGNvbnN0IFN0cmluZyYgY2hpbGRU
ZXh0KQogeworICAgIGlmIChidWlsZGVyLmZhaWxlZCgpKQorICAgICAgICBDUkFTSCgpOworCiAg
ICAgaWYgKCFidWlsZGVyLmxlbmd0aCgpIHx8ICFjaGlsZFRleHQubGVuZ3RoKCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKLQogICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gYWRkIGFuIGFkZGl0aW9u
YWwgc3BhY2UgYmVmb3JlIG9yIGFmdGVyIGEgbGluZSBicmVhay4KLSAgICByZXR1cm4gIShpc0hU
TUxMaW5lQnJlYWsoY2hpbGRUZXh0WzBdKSB8fCBpc0hUTUxMaW5lQnJlYWsoYnVpbGRlcltidWls
ZGVyLmxlbmd0aCgpIC0gMV0pKTsKKyAgICByZXR1cm4gIShpc0hUTUxMaW5lQnJlYWsoY2hpbGRU
ZXh0WzBdKSB8fCBpc0hUTUxMaW5lQnJlYWsoKmJ1aWxkZXJbYnVpbGRlci5sZW5ndGgoKSAtIDFd
KSk7CiB9CiAgICAgCiBzdGF0aWMgdm9pZCBhcHBlbmROYW1lVG9TdHJpbmdCdWlsZGVyKFN0cmlu
Z0J1aWxkZXImIGJ1aWxkZXIsIGNvbnN0IFN0cmluZyYgdGV4dCkKQEAgLTE3NjksNyArMTc3MSw5
IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dGV4dFVuZGVyRWxlbWVudChBY2Nl
c3NpYmlsaXR5VGV4dFVuZGVyRWxlbWVudE1vCiAgICAgICAgICAgICBhcHBlbmROYW1lVG9TdHJp
bmdCdWlsZGVyKGJ1aWxkZXIsIGNoaWxkVGV4dCk7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxk
ZXIudG9TdHJpbmcoKS5zdHJpcFdoaXRlU3BhY2UoKS5zaW1wbGlmeVdoaXRlU3BhY2UoaXNIVE1M
U3BhY2VCdXROb3RMaW5lQnJlYWspOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0cmluZy0+c3RyaXBXaGl0ZVNwYWNlKCkuc2ltcGxp
ZnlXaGl0ZVNwYWNlKGlzSFRNTFNwYWNlQnV0Tm90TGluZUJyZWFrKTsKKyAgICBDUkFTSCgpOwog
fQogCiBTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRpdGxlKCkgY29uc3QKQEAgLTE5
ODUsNyArMTk4OSw5IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWNjZXNzaWJp
bGl0eURlc2NyaXB0aW9uRm9yQ2hpbGRyZW4oKSBjb25zdAogICAgICAgICB9CiAgICAgfQogCi0g
ICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIFN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWNjZXNzaWJpbGl0eURlc2NyaXB0
aW9uRm9yRWxlbWVudHMoVmVjdG9yPEVsZW1lbnQqPiAmZWxlbWVudHMpIGNvbnN0CkBAIC0xOTk0
LDcgKzIwMDAsOSBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmFjY2Vzc2liaWxp
dHlEZXNjcmlwdGlvbkZvckVsZW1lbnRzKFZlY3RvcjxFbGVtZQogICAgIHVuc2lnbmVkIHNpemUg
PSBlbGVtZW50cy5zaXplKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsr
aSkKICAgICAgICAgYXBwZW5kTmFtZVRvU3RyaW5nQnVpbGRlcihidWlsZGVyLCBhY2Nlc3NpYmxl
TmFtZUZvck5vZGUoZWxlbWVudHNbaV0sIG5vZGUoKSkpOwotICAgIHJldHVybiBidWlsZGVyLnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OmFyaWFEZXNjcmliZWRCeUF0dHJpYnV0ZSgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApp
bmRleCAxOTI4MTcyLi43YzhkOThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTEzODgsOCArMTM4OCwxMCBAQCBT
dHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3RyaW5nRm9yUmFuZ2UoUmVmUHRyPFJhbmdlPiBy
YW5nZSkgY29uc3QKICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChvYmplY3RSZXBsYWNl
bWVudENoYXJhY3Rlcik7CiAgICAgICAgIH0KICAgICB9Ci0gICAgCi0gICAgcmV0dXJuIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKKworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIEFj
Y2Vzc2liaWxpdHlPYmplY3Q6OnN0cmluZ0ZvclZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZp
c2libGVQb3NpdGlvblJhbmdlJiB2aXNpYmxlUG9zaXRpb25SYW5nZSkKQEAgLTE0MTUsNyArMTQx
Nyw5IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdHJpbmdGb3JWaXNpYmxlUG9zaXRp
b25SYW5nZShjb25zdCBWaXNpYmxlUG9zaXRpb25SCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBy
ZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAog
aW50IEFjY2Vzc2liaWxpdHlPYmplY3Q6Omxlbmd0aEZvclZpc2libGVQb3NpdGlvblJhbmdlKGNv
bnN0IFZpc2libGVQb3NpdGlvblJhbmdlJiB2aXNpYmxlUG9zaXRpb25SYW5nZSkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KaW5kZXggYTEwMmQzNi4uOTMyZDEx
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KQEAgLTI0MDksNyAr
MjQwOSw5IEBAIC0gKE5TU3RyaW5nICopdmFsdWVEZXNjcmlwdGlvbkZvck1ldGVyCiAgICAgICAg
IGlmIChidWlsZGVyLmxlbmd0aCgpKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFs
KCIsICIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChnYXVnZVJlZ2lvblZhbHVlKTsKLSAgICAg
ICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
YnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAg
IENSQVNIKCk7CiAgICAgfQogI2VuZGlmCiAgICAgcmV0dXJuIHZhbHVlRGVzY3JpcHRpb247CkBA
IC0zODczLDggKzM4NzUsMTEgQEAgc3RhdGljIHZvaWQgZm9ybWF0Rm9yRGVidWdnZXIoY29uc3Qg
VmlzaWJsZVBvc2l0aW9uUmFuZ2UmIHJhbmdlLCBjaGFyKiBidWZmZXIsIHUKICAgICByZXN1bHQu
YXBwZW5kTGl0ZXJhbCgiIHRvICIpOwogICAgIHJhbmdlLmVuZC5mb3JtYXRGb3JEZWJ1Z2dlcihm
b3JtYXQsIEZvcm1hdEJ1ZmZlclNpemUpOwogICAgIHJlc3VsdC5hcHBlbmQoZm9ybWF0KTsKLSAg
ICAKLSAgICBzdHJsY3B5KGJ1ZmZlciwgcmVzdWx0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwg
bGVuZ3RoKTsKKworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAg
ICAgICBzdHJsY3B5KGJ1ZmZlciwgc3RyaW5nLT51dGY4KCkuZGF0YSgpLCBsZW5ndGgpOworICAg
IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRTdHJpbmdzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFN0cmluZ3MuY3BwCmluZGV4IDdkMmRlMTguLjFl
MDRhMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVy
dFN0cmluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVy
dFN0cmluZ3MuY3BwCkBAIC05MSw3ICs5MSw5IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIHN0cmlu
Z1RvVVNWU3RyaW5nKFN0cmluZyYmIHN0cmluZykKICAgICAgICAgZWxzZQogICAgICAgICAgICAg
cmVzdWx0LmFwcGVuZChjb2RlUG9pbnQpOwogICAgIH0KLSAgICByZXR1cm4gcmVzdWx0LnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBpZGVudGlmaWVyVG9V
U1ZTdHJpbmcoRXhlY1N0YXRlJiwgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5j
cHAKaW5kZXggODk1YTMwMC4uMDdmYjczOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAKQEAgLTIxMSw3ICsyMTEsOSBA
QCBKU0M6OkVuY29kZWRKU1ZhbHVlIHRocm93QXJndW1lbnRNdXN0QmVFbnVtRXJyb3IoSlNDOjpF
eGVjU3RhdGUmIHN0YXRlLCBKU0M6OlRocgogICAgIGFwcGVuZEFyZ3VtZW50TXVzdEJlKGJ1aWxk
ZXIsIGFyZ3VtZW50SW5kZXgsIGFyZ3VtZW50TmFtZSwgZnVuY3Rpb25JbnRlcmZhY2VOYW1lLCBm
dW5jdGlvbk5hbWUpOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgib25lIG9mOiAiKTsKICAg
ICBidWlsZGVyLmFwcGVuZChleHBlY3RlZFZhbHVlcyk7Ci0gICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoJnN0YXRlLCBzY29wZSwgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKCZzdGF0ZSwgc2NvcGUsICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIEpTQzo6RW5j
b2RlZEpTVmFsdWUgdGhyb3dBcmd1bWVudE11c3RCZUZ1bmN0aW9uRXJyb3IoSlNDOjpFeGVjU3Rh
dGUmIHN0YXRlLCBKU0M6OlRocm93U2NvcGUmIHNjb3BlLCB1bnNpZ25lZCBhcmd1bWVudEluZGV4
LCBjb25zdCBjaGFyKiBhcmd1bWVudE5hbWUsIGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUsIGNv
bnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSkKQEAgLTIxOSw3ICsyMjEsOSBAQCBKU0M6OkVuY29kZWRK
U1ZhbHVlIHRocm93QXJndW1lbnRNdXN0QmVGdW5jdGlvbkVycm9yKEpTQzo6RXhlY1N0YXRlJiBz
dGF0ZSwgSlNDOgogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBhcHBlbmRBcmd1bWVu
dE11c3RCZShidWlsZGVyLCBhcmd1bWVudEluZGV4LCBhcmd1bWVudE5hbWUsIGludGVyZmFjZU5h
bWUsIGZ1bmN0aW9uTmFtZSk7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJhIGZ1bmN0aW9u
Iik7Ci0gICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoJnN0YXRlLCBzY29wZSwgYnVpbGRlci50
b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUsICpzdHJpbmcpOwor
ICAgIENSQVNIKCk7CiB9CiAKIEpTQzo6RW5jb2RlZEpTVmFsdWUgdGhyb3dBcmd1bWVudFR5cGVF
cnJvcihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6VGhyb3dTY29wZSYgc2NvcGUsIHVuc2ln
bmVkIGFyZ3VtZW50SW5kZXgsIGNvbnN0IGNoYXIqIGFyZ3VtZW50TmFtZSwgY29uc3QgY2hhciog
ZnVuY3Rpb25JbnRlcmZhY2VOYW1lLCBjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIGNvbnN0IGNo
YXIqIGV4cGVjdGVkVHlwZSkKQEAgLTIyOCw3ICsyMzIsOSBAQCBKU0M6OkVuY29kZWRKU1ZhbHVl
IHRocm93QXJndW1lbnRUeXBlRXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OlRocm93
U2NvcAogICAgIGFwcGVuZEFyZ3VtZW50TXVzdEJlKGJ1aWxkZXIsIGFyZ3VtZW50SW5kZXgsIGFy
Z3VtZW50TmFtZSwgZnVuY3Rpb25JbnRlcmZhY2VOYW1lLCBmdW5jdGlvbk5hbWUpOwogICAgIGJ1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiYW4gaW5zdGFuY2Ugb2YgIik7CiAgICAgYnVpbGRlci5hcHBl
bmQoZXhwZWN0ZWRUeXBlKTsKLSAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcigmc3RhdGUsIHNj
b3BlLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoJnN0YXRlLCBzY29w
ZSwgKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCB0aHJvd0F0dHJpYnV0ZVR5cGVF
cnJvcihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6VGhyb3dTY29wZSYgc2NvcGUsIGNvbnN0
IGNoYXIqIGludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIGF0dHJpYnV0ZU5hbWUsIGNvbnN0IGNo
YXIqIGV4cGVjdGVkVHlwZSkKQEAgLTI0NSw3ICsyNTEsOSBAQCBKU0M6OkVuY29kZWRKU1ZhbHVl
IHRocm93UmVxdWlyZWRNZW1iZXJUeXBlRXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6
OlRocgogICAgIGJ1aWxkZXIuYXBwZW5kKG1lbWJlck5hbWUpOwogICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiIGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mICIpOwogICAg
IGJ1aWxkZXIuYXBwZW5kKGV4cGVjdGVkVHlwZSk7Ci0gICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoJnN0YXRlLCBzY29wZSwgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KCZzdGF0ZSwgc2NvcGUsICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUgdGhyb3dDb25zdHJ1Y3RvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHRVbmF2YWlsYWJs
ZUVycm9yKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpUaHJvd1Njb3BlJiBzY29wZSwgY29u
c3QgY2hhciogaW50ZXJmYWNlTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250
ZW50ZXh0ZW5zaW9ucy9Db21iaW5lZFVSTEZpbHRlcnMuY3BwCmluZGV4IDc1NThiMjIuLjI5ZGU1
MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVk
VVJMRmlsdGVycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29t
YmluZWRVUkxGaWx0ZXJzLmNwcApAQCAtMTA3LDcgKzEwNyw5IEBAIHN0YXRpYyBTdHJpbmcgcHJl
Zml4VHJlZVZlcnRleFRvU3RyaW5nKGNvbnN0IFByZWZpeFRyZWVWZXJ0ZXgmIHZlcnRleCwgY29u
c3QgSGFzCiAgICAgICAgIH0KICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAg
cmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IHN0YXRpYyB2b2lkIHJlY3Vyc2l2ZVByaW50KGNvbnN0IFByZWZpeFRyZWVWZXJ0ZXgmIHZlcnRl
eCwgY29uc3QgSGFzaE1hcDxjb25zdCBQcmVmaXhUcmVlVmVydGV4KiwgQWN0aW9uTGlzdD4mIGFj
dGlvbnMsIHVuc2lnbmVkIGRlcHRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVu
dGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50
ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uLmNwcAppbmRleCA2MTBlMWI4Li44ZTUwZmY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5z
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0
ZW5zaW9uLmNwcApAQCAtMTEwLDggKzExMCwxMSBAQCB2b2lkIENvbnRlbnRFeHRlbnNpb246OmNv
bXBpbGVHbG9iYWxEaXNwbGF5Tm9uZVN0eWxlU2hlZXQoKQogCiAgICAgbV9nbG9iYWxEaXNwbGF5
Tm9uZVN0eWxlU2hlZXQgPSBTdHlsZVNoZWV0Q29udGVudHM6OmNyZWF0ZSgpOwogICAgIG1fZ2xv
YmFsRGlzcGxheU5vbmVTdHlsZVNoZWV0LT5zZXRJc1VzZXJTdHlsZVNoZWV0KHRydWUpOwotICAg
IGlmICghbV9nbG9iYWxEaXNwbGF5Tm9uZVN0eWxlU2hlZXQtPnBhcnNlU3RyaW5nKGNzcy50b1N0
cmluZygpKSkKLSAgICAgICAgbV9nbG9iYWxEaXNwbGF5Tm9uZVN0eWxlU2hlZXQgPSBudWxscHRy
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGNzcy50b1N0cmluZygpKSB7CisgICAgICAgIGlmICgh
bV9nbG9iYWxEaXNwbGF5Tm9uZVN0eWxlU2hlZXQtPnBhcnNlU3RyaW5nKCpzdHJpbmcpKQorICAg
ICAgICAgICAgbV9nbG9iYWxEaXNwbGF5Tm9uZVN0eWxlU2hlZXQgPSBudWxscHRyOworICAgIH0g
ZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgLy8gVGhlc2UgYWN0aW9ucyBkb24ndCBuZWVk
IHRvIGJlIGFwcGxpZWQgaW5kaXZpZHVhbGx5IGFueSBtb3JlLiBUaGV5IHdpbGwgYWxsIGJlIGFw
cGxpZWQgdG8gZXZlcnkgcGFnZSBhcyBhIHByZWNvbXBpbGVkIHN0eWxlIHNoZWV0LgogICAgIG1f
dW5pdmVyc2FsQWN0aW9uc1dpdGhvdXRDb25kaXRpb25zLnJlbW92ZUFsbE1hdGNoaW5nKGluR2xv
YmFsRGlzcGxheU5vbmVTdHlsZVNoZWV0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nv
bnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwCmluZGV4
IDVlMDM1YTYuLjVjMzdlZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRl
bnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcApAQCAtODAsNyAr
ODAsMTAgQEAgc3RhdGljIHZvaWQgcmVzb2x2ZVBlbmRpbmdEaXNwbGF5Tm9uZUFjdGlvbnMoVmVj
dG9yPFNlcmlhbGl6ZWRBY3Rpb25CeXRlPiYgYWN0aW8KICAgICBmb3IgKGF1dG8mIHBlbmRpbmdE
aXNwbGF5Tm9uZUFjdGlvbnMgOiBtYXAudmFsdWVzKCkpIHsKICAgICAgICAgdWludDMyX3QgYWN0
aW9uTG9jYXRpb24gPSBhY3Rpb25zLnNpemUoKTsKICAgICAgICAgYWN0aW9ucy5hcHBlbmQoc3Rh
dGljX2Nhc3Q8U2VyaWFsaXplZEFjdGlvbkJ5dGU+KEFjdGlvblR5cGU6OkNTU0Rpc3BsYXlOb25l
U2VsZWN0b3IpKTsKLSAgICAgICAgc2VyaWFsaXplU3RyaW5nKGFjdGlvbnMsIHBlbmRpbmdEaXNw
bGF5Tm9uZUFjdGlvbnMuY29tYmluZWRTZWxlY3RvcnMudG9TdHJpbmcoKSk7CisgICAgICAgIGlm
IChhdXRvIHN0cmluZyA9IHBlbmRpbmdEaXNwbGF5Tm9uZUFjdGlvbnMuY29tYmluZWRTZWxlY3Rv
cnMudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHNlcmlhbGl6ZVN0cmluZyhhY3Rpb25zLCAqc3Ry
aW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgZm9yICh1
aW50MzJfdCBjbGllbnRMb2NhdGlvbiA6IHBlbmRpbmdEaXNwbGF5Tm9uZUFjdGlvbnMuY2xpZW50
TG9jYXRpb25zKQogICAgICAgICAgICAgYWN0aW9uTG9jYXRpb25zW2NsaWVudExvY2F0aW9uXSA9
IGFjdGlvbkxvY2F0aW9uOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25TdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25TdHlsZVNoZWV0LmNwcAppbmRl
eCBlMjRhMzY2Li5kZTNlODU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblN0eWxlU2hlZXQuY3BwCkBAIC02
MCw3ICs2MCwxMCBAQCBib29sIENvbnRlbnRFeHRlbnNpb25TdHlsZVNoZWV0OjphZGREaXNwbGF5
Tm9uZVNlbGVjdG9yKGNvbnN0IFN0cmluZyYgc2VsZWN0b3IsCiAgICAgY3NzLmFwcGVuZCgneycp
OwogICAgIGNzcy5hcHBlbmQoQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kOjpkaXNwbGF5Tm9uZUNT
U1J1bGUoKSk7CiAgICAgY3NzLmFwcGVuZCgnfScpOwotICAgIG1fc3R5bGVTaGVldC0+Y29udGVu
dHMoKS5wYXJzZVN0cmluZyhjc3MudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
Y3NzLnRvU3RyaW5nKCkpCisgICAgICAgIG1fc3R5bGVTaGVldC0+Y29udGVudHMoKS5wYXJzZVN0
cmluZygqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1Rl
cm0uaCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1Rlcm0uaAppbmRleCAwZDUx
ODMzLi42ZjMxOTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9u
cy9UZXJtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVGVybS5oCkBA
IC0yNDYsNyArMjQ2LDkgQEAgaW5saW5lIFN0cmluZyBUZXJtOjp0b1N0cmluZygpIGNvbnN0CiAg
ICAgICAgIH0KICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ10nKTsKICAgICAgICAgYnVpbGRlci5h
cHBlbmQocXVhbnRpZmllclRvU3RyaW5nKG1fcXVhbnRpZmllcikpOwotICAgICAgICByZXR1cm4g
YnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsK
ICAgICB9CiAgICAgY2FzZSBUZXJtVHlwZTo6R3JvdXA6IHsKICAgICAgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOwpAQCAtMjU1LDcgKzI1Nyw5IEBAIGlubGluZSBTdHJpbmcgVGVybTo6dG9TdHJp
bmcoKSBjb25zdAogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQodGVybS50b1N0cmluZygpKTsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQocXVh
bnRpZmllclRvU3RyaW5nKG1fcXVhbnRpZmllcikpOwotICAgICAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAg
ICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0FuaW1hdGlvblRyaWdn
ZXJTY3JvbGxWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQW5pbWF0aW9uVHJpZ2dl
clNjcm9sbFZhbHVlLmNwcAppbmRleCBhMWE1OTdiLi4yZjI1YzlmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmNwcApAQCAt
NDMsNyArNDMsOSBAQCBTdHJpbmcgQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlOjpjdXN0
b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZChtX2VuZFZhbHVlLT5jc3NU
ZXh0KCkpOwogICAgIH0KICAgICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIHJlc3Vs
dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU0FuaW1h
dGlvblRyaWdnZXJTY3JvbGxWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0FuaW1hdGlvblRyaWdnZXJT
Y3JvbGxWYWx1ZSYgb3RoZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTQmFzaWNTaGFwZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmNw
cAppbmRleCAyNGYyMzM0Li4xOTJhMDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTQmFzaWNTaGFwZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBl
cy5jcHAKQEAgLTEwNyw3ICsxMDcsOSBAQCBzdGF0aWMgU3RyaW5nIGJ1aWxkQ2lyY2xlU3RyaW5n
KGNvbnN0IFN0cmluZyYgcmFkaXVzLCBjb25zdCBTdHJpbmcmIGNlbnRlclgsIGNvbgogICAgICAg
ICByZXN1bHQuYXBwZW5kKGNlbnRlclkpOwogICAgIH0KICAgICByZXN1bHQuYXBwZW5kTGl0ZXJh
bCgiKSIpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JB
U0goKTsKIH0KIAogU3RyaW5nIENTU0Jhc2ljU2hhcGVDaXJjbGU6OmNzc1RleHQoKSBjb25zdApA
QCAtMTY0LDcgKzE2Niw5IEBAIHN0YXRpYyBTdHJpbmcgYnVpbGRFbGxpcHNlU3RyaW5nKGNvbnN0
IFN0cmluZyYgcmFkaXVzWCwgY29uc3QgU3RyaW5nJiByYWRpdXNZLCBjCiAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoY2VudGVyWSk7CiAgICAgfQogICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCIpIik7
Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJl
c3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiBTdHJpbmcgQ1NTQmFzaWNTaGFwZUVsbGlwc2U6OmNzc1RleHQoKSBjb25zdApAQCAtMjI0
LDcgKzIyOCw5IEBAIHN0YXRpYyBTdHJpbmcgYnVpbGRQYXRoU3RyaW5nKGNvbnN0IFdpbmRSdWxl
JiB3aW5kUnVsZSwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zCiAgICAgICAgIHJlc3VsdC5hcHBl
bmQoYm94KTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBDU1NCYXNpY1NoYXBlUGF0aDo6Y3NzVGV4dCgp
IGNvbnN0CkBAIC0yODAsNyArMjg2LDkgQEAgc3RhdGljIFN0cmluZyBidWlsZFBvbHlnb25TdHJp
bmcoY29uc3QgV2luZFJ1bGUmIHdpbmRSdWxlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYKIAogICAg
IHJlc3VsdC5hcHBlbmQoJyknKTsKIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIENTU0Jhc2ljU2hhcGVQb2x5Z29uOjpj
c3NUZXh0KCkgY29uc3QKQEAgLTM3Nyw3ICszODUsOSBAQCBzdGF0aWMgU3RyaW5nIGJ1aWxkSW5z
ZXRTdHJpbmcoY29uc3QgU3RyaW5nJiB0b3AsIGNvbnN0IFN0cmluZyYgcmlnaHQsIGNvbnN0IFN0
cgogICAgICAgICB9CiAgICAgfQogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4g
cmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBp
bmxpbmUgdm9pZCB1cGRhdGVDb3JuZXJSYWRpdXNXaWR0aEFuZEhlaWdodChDU1NQcmltaXRpdmVW
YWx1ZSogY29ybmVyLCBTdHJpbmcmIHdpZHRoLCBTdHJpbmcmIGhlaWdodCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmNwcAppbmRleCBiNzU4MzAxLi5iOTFjMGY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwCkBAIC0xNjIsNyAr
MTYyLDkgQEAgc3RhdGljIFN0cmluZyBidWlsZENzc1RleHQoY29uc3QgU3RyaW5nJiBleHByZXNz
aW9uKQogICAgIHJlc3VsdC5hcHBlbmQoZXhwcmVzc2lvbik7CiAgICAgaWYgKGV4cHJlc3Npb25I
YXNTaW5nbGVUZXJtKQogICAgICAgICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIHJl
c3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQ1NT
Q2FsY1ZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKQEAgLTU2Myw3ICs1NjUsOSBAQCBwcml2
YXRlOgogICAgICAgICB9CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKIAotICAgICAgICBy
ZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3Vs
dC50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNI
KCk7CiAgICAgfQogCiAgICAgU3RyaW5nIGN1c3RvbUNTU1RleHQoKSBjb25zdCBmaW5hbApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApp
bmRleCBlZWFlNDI2Li4xYTQ0ZDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMTY5Myw3ICsxNjkzLDkgQEAgU3RyaW5n
IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJzsnKTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IENTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbjo6c2V0Q3NzVGV4dChjb25zdCBTdHJpbmcmKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHAKaW5kZXggMTcyYzk0NS4uMzQzYTAyMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCkBAIC0xMDIsNyArMTAyLDkg
QEAgU3RyaW5nIENTU0Nyb3NzZmFkZVZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICBy
ZXN1bHQuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKICAgICByZXN1bHQuYXBwZW5kKG1fcGVyY2VudGFn
ZVZhbHVlLT5jc3NUZXh0KCkpOwogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4g
cmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIEZsb2F0U2l6
ZSBDU1NDcm9zc2ZhZGVWYWx1ZTo6Zml4ZWRTaXplKGNvbnN0IFJlbmRlckVsZW1lbnQmIHJlbmRl
cmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwCmluZGV4IDFi
NmQ3ZjIuLjBlZWVlMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJ
bWFnZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1
ZS5jcHAKQEAgLTYxLDcgKzYxLDkgQEAgU3RyaW5nIENTU0N1cnNvckltYWdlVmFsdWU6OmN1c3Rv
bUNTU1RleHQoKSBjb25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKCcgJyk7CiAgICAgICAgIHJl
c3VsdC5hcHBlbmROdW1iZXIobV9ob3RTcG90LnkoKSk7CiAgICAgfQotICAgIHJldHVybiByZXN1
bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU1ZHQ3Vyc29yRWxl
bWVudCogQ1NTQ3Vyc29ySW1hZ2VWYWx1ZTo6dXBkYXRlQ3Vyc29yRWxlbWVudChjb25zdCBEb2N1
bWVudCYgZG9jdW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3VzdG9t
SWRlbnRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3VzdG9tSWRlbnRWYWx1ZS5j
cHAKaW5kZXggMjZkNmUzYi4uZjVlZWI3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0N1c3RvbUlkZW50VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXN0
b21JZGVudFZhbHVlLmNwcApAQCAtNTYsNyArNTYsOSBAQCBTdHJpbmcgQ1NTQ3VzdG9tSWRlbnRW
YWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIHJldHVybiBnZXRQcm9wZXJ0eU5h
bWVBdG9taWNTdHJpbmcobV9wcm9wZXJ0eUlkKTsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7
CiAgICAgc2VyaWFsaXplSWRlbnRpZmllcihtX3N0cmluZywgYnVpbGRlcik7Ci0gICAgcmV0dXJu
IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0
ZXJJbWFnZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVl
LmNwcAppbmRleCA2YWNmNzQ0Li4yMDMxNDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Zp
bHRlckltYWdlVmFsdWUuY3BwCkBAIC01Myw3ICs1Myw5IEBAIFN0cmluZyBDU1NGaWx0ZXJJbWFn
ZVZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgi
LCAiKTsKICAgICByZXN1bHQuYXBwZW5kKG1fZmlsdGVyVmFsdWUtPmNzc1RleHQoKSk7CiAgICAg
cmVzdWx0LmFwcGVuZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KIAogRmxvYXRTaXplIENTU0ZpbHRlckltYWdlVmFsdWU6OmZp
eGVkU2l6ZShjb25zdCBSZW5kZXJFbGVtZW50KiByZW5kZXJlcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ZvbnRGYWNlUnVsZS5jcHAKaW5kZXggMGRkYTFiMi4uODU5NDZmNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRGYWNlUnVsZS5jcHAKQEAgLTU3LDcgKzU3LDkgQEAgU3RyaW5nIENTU0ZvbnRG
YWNlUnVsZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgaWYgKCFkZXNjcy5pc0VtcHR5KCkpCiAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoJyAnKTsKICAgICByZXN1bHQuYXBwZW5kKCd9Jyk7Ci0gICAgcmV0
dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lk
IENTU0ZvbnRGYWNlUnVsZTo6cmVhdHRhY2goU3R5bGVSdWxlQmFzZSYgcnVsZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcAppbmRleCA4MWQ4YTc1Li4yZjM0NjFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCkBAIC04MSw3
ICs4MSw5IEBAIFN0cmluZyBDU1NGb250RmFjZVNyY1ZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29u
c3QKICAgICAgICAgcmVzdWx0LmFwcGVuZChtX2Zvcm1hdCk7CiAgICAgICAgIHJlc3VsdC5hcHBl
bmQoJyknKTsKICAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU0ZvbnRGYWNlU3JjVmFsdWU6OnRyYXZlcnNlU3Vi
cmVzb3VyY2VzKGNvbnN0IFdURjo6RnVuY3Rpb248Ym9vbCAoY29uc3QgQ2FjaGVkUmVzb3VyY2Um
KT4mIGhhbmRsZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dEZlYXR1cmVWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZlYXR1cmVWYWx1
ZS5jcHAKaW5kZXggN2ZmMDdmMy4uNDc0NjIyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRGZWF0dXJlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250RmVhdHVyZVZhbHVlLmNwcApAQCAtNTAsNyArNTAsOSBAQCBTdHJpbmcgQ1NTRm9udEZlYXR1
cmVWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcg
Jyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fdmFsdWUpOwogICAgIH0KLSAgICBy
ZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAog
Ym9vbCBDU1NGb250RmVhdHVyZVZhbHVlOjplcXVhbHMoY29uc3QgQ1NTRm9udEZlYXR1cmVWYWx1
ZSYgb3RoZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFN0
eWxlUmFuZ2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFN0eWxlUmFuZ2VW
YWx1ZS5jcHAKaW5kZXggMGNkY2RiZi4uZWE2NjZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ZvbnRTdHlsZVJhbmdlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250U3R5bGVSYW5nZVZhbHVlLmNwcApAQCAtMzksNyArMzksOSBAQCBTdHJpbmcgQ1NT
Rm9udFN0eWxlUmFuZ2VWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgYnVpbGRlci5h
cHBlbmQoZm9udFN0eWxlVmFsdWUtPmNzc1RleHQoKSk7CiAgICAgYnVpbGRlci5hcHBlbmQoJyAn
KTsKICAgICBidWlsZGVyLmFwcGVuZChvYmxpcXVlVmFsdWVzLT5jc3NUZXh0KCkpOwotICAgIHJl
dHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBi
b29sIENTU0ZvbnRTdHlsZVJhbmdlVmFsdWU6OmVxdWFscyhjb25zdCBDU1NGb250U3R5bGVSYW5n
ZVZhbHVlJiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250U3R5bGVWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFN0eWxlVmFsdWUu
Y3BwCmluZGV4IDI4NTBlMjMuLjhjNGU4NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250U3R5bGVWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRT
dHlsZVZhbHVlLmNwcApAQCAtMzksNyArMzksOSBAQCBTdHJpbmcgQ1NTRm9udFN0eWxlVmFsdWU6
OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIGJ1aWxkZXIuYXBwZW5kKGZvbnRTdHlsZVZhbHVl
LT5jc3NUZXh0KCkpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgYnVpbGRlci5hcHBl
bmQob2JsaXF1ZVZhbHVlLT5jc3NUZXh0KCkpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU0ZvbnRTdHlsZVZhbHVl
OjplcXVhbHMoY29uc3QgQ1NTRm9udFN0eWxlVmFsdWUmIG90aGVyKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTRm9udFZhbHVlLmNwcAppbmRleCA3NjZjMTEzLi4xY2Y3OGFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTRm9udFZhbHVlLmNwcApAQCAtNjUsNyArNjUsOSBAQCBTdHJpbmcgQ1NTRm9udFZhbHVl
OjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZChmYW1pbHktPmNz
c1RleHQoKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmlu
ZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU0ZvbnRWYWx1ZTo6ZXF1YWxzKGNvbnN0IENT
U0ZvbnRWYWx1ZSYgb3RoZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udFZhcmlhdGlvblZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250VmFy
aWF0aW9uVmFsdWUuY3BwCmluZGV4IDcyZGRjMWEuLjRmOTI1YWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUuY3BwCkBAIC00OCw3ICs0OCw5IEBAIFN0cmlu
ZyBDU1NGb250VmFyaWF0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAgICBi
dWlsZGVyLmFwcGVuZChjKTsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlwiICIpOwogICAg
IGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fdmFsdWUpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENTU0ZvbnRWYXJpYXRp
b25WYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0ZvbnRWYXJpYXRpb25WYWx1ZSYgb3RoZXIpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHAKaW5kZXggNzVlZjBjMS4uYmJk
ZGZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Z1bmN0aW9uVmFsdWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGdW5jdGlvblZhbHVlLmNwcApAQCAtMzcsNyAr
MzcsOSBAQCBTdHJpbmcgQ1NTRnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAg
ICAgcmVzdWx0LmFwcGVuZCgnKCcpOwogICAgIHJlc3VsdC5hcHBlbmQoQ1NTVmFsdWVMaXN0Ojpj
dXN0b21DU1NUZXh0KCkpOwogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4gcmVz
dWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAppbmRleCAxNzFkNDcyNi4uZTE0NDNjOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcApAQCAtNzAxLDcgKzcwMSw5IEBA
IFN0cmluZyBDU1NMaW5lYXJHcmFkaWVudFZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAg
ICB9CiAKICAgICByZXN1bHQuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiAvLyBDb21wdXRlIHRoZSBlbmRwb2lu
dHMgc28gdGhhdCBhIGdyYWRpZW50IG9mIHRoZSBnaXZlbiBhbmdsZSBjb3ZlcnMgYSBib3ggb2Yg
dGhlIGdpdmVuIHNpemUuCkBAIC0xMDE5LDcgKzEwMjEsOSBAQCBTdHJpbmcgQ1NTUmFkaWFsR3Jh
ZGllbnRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgfQogCiAgICAgcmVzdWx0LmFw
cGVuZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogZmxvYXQgQ1NTUmFkaWFsR3JhZGllbnRWYWx1ZTo6cmVzb2x2ZVJhZGl1
cyhDU1NQcmltaXRpdmVWYWx1ZSYgcmFkaXVzLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNpb25E
YXRhJiBjb252ZXJzaW9uRGF0YSwgZmxvYXQqIHdpZHRoT3JIZWlnaHQpCkBAIC0xMzQ3LDcgKzEz
NTEsOSBAQCBTdHJpbmcgQ1NTQ29uaWNHcmFkaWVudFZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29u
c3QKICAgICB9CiAgICAgCiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwotICAgIHJldHVybiByZXN1
bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogUmVmPEdyYWRpZW50
PiBDU1NDb25pY0dyYWRpZW50VmFsdWU6OmNyZWF0ZUdyYWRpZW50KFJlbmRlckVsZW1lbnQmLCBj
b25zdCBGbG9hdFNpemUmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRB
dXRvUmVwZWF0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRBdXRvUmVwZWF0
VmFsdWUuY3BwCmluZGV4IGQ1YmM0NDkuLmZkNzkwZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTR3JpZEF1dG9SZXBlYXRWYWx1ZS5jcHAKQEAgLTQzLDcgKzQzLDkgQEAgU3RyaW5nIENT
U0dyaWRBdXRvUmVwZWF0VmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIHJlc3VsdC5h
cHBlbmQoIiwgIik7CiAgICAgcmVzdWx0LmFwcGVuZChDU1NWYWx1ZUxpc3Q6OmN1c3RvbUNTU1Rl
eHQoKSk7CiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFs
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3Bw
CmluZGV4IGUwYjc4NjUuLjhiYzNmZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
R3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAKQEAgLTgwLDcgKzgwLDkgQEAgU3RyaW5nIENTU0dy
aWRUZW1wbGF0ZUFyZWFzVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgICAgICBpZiAo
cm93ICE9IG1fcm93Q291bnQgLSAxKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsK
ICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAKIGJvb2wgQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZTo6ZXF1YWxzKGNvbnN0
IENTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUmIG90aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ltYWdlU2V0VmFsdWUuY3BwCmluZGV4IGE5N2RjMjEuLmUzNzUwYTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKQEAgLTE0Niw3ICsxNDYsOSBAQCBTdHJpbmcg
Q1NTSW1hZ2VTZXRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgfQogCiAgICAgcmVz
dWx0LmFwcGVuZCgnKScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBDU1NJbWFnZVNldFZhbHVlOjp0cmF2ZXJzZVN1YnJl
c291cmNlcyhjb25zdCBXVEY6OkZ1bmN0aW9uPGJvb2wgKGNvbnN0IENhY2hlZFJlc291cmNlJik+
JiBoYW5kbGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9y
dFJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUuY3BwCmluZGV4IDRj
NjY2MTMuLmY5YWFlZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRS
dWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVsZS5jcHAKQEAgLTcy
LDcgKzcyLDkgQEAgU3RyaW5nIENTU0ltcG9ydFJ1bGU6OmNzc1RleHQoKSBjb25zdAogICAgIH0K
ICAgICByZXN1bHQuYXBwZW5kKCc7Jyk7CiAgICAgCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBDU1NTdHlsZVNoZWV0KiBDU1NJbXBv
cnRSdWxlOjpzdHlsZVNoZWV0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NLZXlmcmFtZVJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lUnVs
ZS5jcHAKaW5kZXggODFlOTk1OC4uZGNhM2Y3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0tleWZyYW1lUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZy
YW1lUnVsZS5jcHAKQEAgLTY3LDcgKzY3LDkgQEAgU3RyaW5nIFN0eWxlUnVsZUtleWZyYW1lOjpr
ZXlUZXh0KCkgY29uc3QKICAgICAgICAga2V5VGV4dC5hcHBlbmQoJyUnKTsKICAgICB9CiAKLSAg
ICByZXR1cm4ga2V5VGV4dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGtleVRl
eHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
ICAgICAKIGJvb2wgU3R5bGVSdWxlS2V5ZnJhbWU6OnNldEtleVRleHQoY29uc3QgU3RyaW5nJiBr
ZXlUZXh0KQpAQCAtOTAsNyArOTIsOSBAQCBTdHJpbmcgU3R5bGVSdWxlS2V5ZnJhbWU6OmNzc1Rl
eHQoKSBjb25zdAogICAgIGlmICghZGVjbHMuaXNFbXB0eSgpKQogICAgICAgICByZXN1bHQuYXBw
ZW5kKCcgJyk7CiAgICAgcmVzdWx0LmFwcGVuZCgnfScpOwotICAgIHJldHVybiByZXN1bHQudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogQ1NTS2V5ZnJhbWVSdWxlOjpD
U1NLZXlmcmFtZVJ1bGUoU3R5bGVSdWxlS2V5ZnJhbWUmIGtleWZyYW1lLCBDU1NLZXlmcmFtZXNS
dWxlKiBwYXJlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVz
UnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVzUnVsZS5jcHAKaW5kZXgg
OWYwMDBkOS4uNzdiMTgyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZy
YW1lc1J1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZXNSdWxlLmNw
cApAQCAtMTk4LDcgKzE5OCw5IEBAIFN0cmluZyBDU1NLZXlmcmFtZXNSdWxlOjpjc3NUZXh0KCkg
Y29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnXG4nKTsKICAgICB9CiAgICAgcmVzdWx0LmFw
cGVuZCgnfScpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogdW5zaWduZWQgQ1NTS2V5ZnJhbWVzUnVsZTo6bGVuZ3RoKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMaW5lQm94Q29udGFpblZhbHVlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NMaW5lQm94Q29udGFpblZhbHVlLmNwcAppbmRleCAx
OWZkZjhiLi4zZGViM2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTGluZUJv
eENvbnRhaW5WYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0xpbmVCb3hDb250
YWluVmFsdWUuY3BwCkBAIC03Myw3ICs3Myw5IEBAIFN0cmluZyBDU1NMaW5lQm94Q29udGFpblZh
bHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAgdGV4dC5hcHBlbmRMaXRlcmFsKCJp
bml0aWFsLWxldHRlciIpOwogICAgIH0KIAotICAgIHJldHVybiB0ZXh0LnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gdGV4dC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTTWFya3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNYXJrdXAuY3BwCmluZGV4
IDgxZmU4ODguLjYwOWM3MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNYXJr
dXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNYXJrdXAuY3BwCkBAIC0xODYsNyAr
MTg2LDkgQEAgU3RyaW5nIHNlcmlhbGl6ZVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsK
ICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgc2VyaWFsaXplU3RyaW5nKHN0cmluZywg
YnVpbGRlcik7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIFN0cmluZyBzZXJpYWxpemVVUkwoY29uc3QgU3RyaW5nJiBzdHJpbmcp
CkBAIC0yMDQsNyArMjA2LDkgQEAgU3RyaW5nIHNlcmlhbGl6ZUFzU3RyaW5nT3JDdXN0b21JZGVu
dChjb25zdCBTdHJpbmcmIHN0cmluZykKICAgICBpZiAoaXNDU1NUb2tlbml6ZXJJZGVudGlmaWVy
KHN0cmluZykpIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBzZXJp
YWxpemVJZGVudGlmaWVyKHN0cmluZywgYnVpbGRlcik7Ci0gICAgICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0K
ICAgICByZXR1cm4gc2VyaWFsaXplU3RyaW5nKHN0cmluZyk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NN
ZWRpYVJ1bGUuY3BwCmluZGV4IGIwOTRlZGQuLjE3NGY1YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NN
ZWRpYVJ1bGUuY3BwCkBAIC01Nyw3ICs1Nyw5IEBAIFN0cmluZyBDU1NNZWRpYVJ1bGU6OmNzc1Rl
eHQoKSBjb25zdAogICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCJ7IFxuIik7CiAgICAgYXBwZW5k
Q3NzVGV4dEZvckl0ZW1zKHJlc3VsdCk7CiAgICAgcmVzdWx0LmFwcGVuZCgnfScpOwotICAgIHJl
dHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogTWVk
aWFMaXN0KiBDU1NNZWRpYVJ1bGU6Om1lZGlhKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NOYW1lc3BhY2VSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NO
YW1lc3BhY2VSdWxlLmNwcAppbmRleCAzZDNlYzZmLi43MDY4OTcxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTTmFtZXNwYWNlUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU05hbWVzcGFjZVJ1bGUuY3BwCkBAIC02MCw3ICs2MCw5IEBAIFN0cmluZyBDU1NOYW1l
c3BhY2VSdWxlOjpjc3NUZXh0KCkgY29uc3QKICAgICByZXN1bHQuYXBwZW5kKCJ1cmwoIik7CiAg
ICAgcmVzdWx0LmFwcGVuZChzZXJpYWxpemVTdHJpbmcobmFtZXNwYWNlVVJJKCkpKTsKICAgICBy
ZXN1bHQuYXBwZW5kKCIpOyIpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBDU1NOYW1lc3BhY2VSdWxlOjpyZWF0dGFjaChT
dHlsZVJ1bGVCYXNlJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYWdlUnVs
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFnZVJ1bGUuY3BwCmluZGV4IDQ3Y2Y0NTYu
LmU2OWRhNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYWdlUnVsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhZ2VSdWxlLmNwcApAQCAtNjQsNyArNjQsOSBA
QCBTdHJpbmcgQ1NTUGFnZVJ1bGU6OnNlbGVjdG9yVGV4dCgpIGNvbnN0CiAgICAgICAgICAgICB0
ZXh0LmFwcGVuZChwYWdlU3BlY2lmaWNhdGlvbik7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0
dXJuIHRleHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0ZXh0LnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgQ1NT
UGFnZVJ1bGU6OnNldFNlbGVjdG9yVGV4dChjb25zdCBTdHJpbmcmIHNlbGVjdG9yVGV4dCkKQEAg
LTkwLDcgKzkyLDkgQEAgU3RyaW5nIENTU1BhZ2VSdWxlOjpjc3NUZXh0KCkgY29uc3QKICAgICBp
ZiAoIWRlY2xzLmlzRW1wdHkoKSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICcpOwogICAgIHJl
c3VsdC5hcHBlbmQoJ30nKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgQ1NTUGFnZVJ1bGU6OnJlYXR0YWNoKFN0eWxlUnVs
ZUJhc2UmIHJ1bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZl
VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAppbmRl
eCBhNzYxMjc2Li44M2UxNmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJp
bWl0aXZlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1
ZS5jcHAKQEAgLTEwNDUsNyArMTA0NSw5IEBAIEFMV0FZU19JTkxJTkUgU3RyaW5nIENTU1ByaW1p
dGl2ZVZhbHVlOjpmb3JtYXROdW1iZXJGb3JDdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAgICAg
cmVzdWx0LmFwcGVuZChTdHJpbmcobV92YWx1ZS5zdHJpbmcpKTsKICAgICAgICAgcmVzdWx0LmFw
cGVuZCgnKScpOwogCi0gICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgY2FzZSBDU1NfQ09VTlRFUl9O
QU1FOgogICAgICAgICByZXR1cm4gImNvdW50ZXIoIiArIFN0cmluZyhtX3ZhbHVlLnN0cmluZykg
KyAnKSc7CkBAIC0xMDY5LDcgKzEwNzEsOSBAQCBBTFdBWVNfSU5MSU5FIFN0cmluZyBDU1NQcmlt
aXRpdmVWYWx1ZTo6Zm9ybWF0TnVtYmVyRm9yQ3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAg
IH0KICAgICAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwogCi0gICAgICAgIHJldHVybiByZXN1bHQu
dG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkp
CisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAg
ICAgY2FzZSBDU1NfUkVDVDoKICAgICAgICAgcmV0dXJuIHJlY3RWYWx1ZSgpLT5jc3NUZXh0KCk7
CkBAIC0xMTEyLDcgKzExMTYsOSBAQCBBTFdBWVNfSU5MSU5FIFN0cmluZyBDU1NQcmltaXRpdmVW
YWx1ZTo6Zm9ybWF0TnVtYmVyRm9yQ3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcpJyk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0
dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQu
dG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgp
OwogICAgIH0KICNlbmRpZgogICAgIGNhc2UgQ1NTX0NBTEM6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3BwCmluZGV4IDc1Yjc5OTAuLmZkMmU4MmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3BwCkBAIC05Niw3ICs5
Niw5IEBAIFN0cmluZyBDU1NQcm9wZXJ0eVNvdXJjZURhdGE6OnRvU3RyaW5nKCkgY29uc3QKICAg
ICBpZiAoaW1wb3J0YW50KQogICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiICFpbXBvcnRh
bnQiKTsKICAgICByZXN1bHQuYXBwZW5kKCc7Jyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB1bnNpZ25lZCBDU1NQcm9wZXJ0eVNv
dXJjZURhdGE6Omhhc2goKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1NlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKaW5kZXgg
MWZlNDJjZC4uNTZiZmMyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVj
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCkBAIC03MjYs
MjYgKzcyNiwzMSBAQCBTdHJpbmcgQ1NTU2VsZWN0b3I6OnNlbGVjdG9yVGV4dChjb25zdCBTdHJp
bmcmIHJpZ2h0U2lkZSkgY29uc3QKICAgICAgICAgY3MgPSBjcy0+dGFnSGlzdG9yeSgpOwogICAg
IH0KIAorICAgIFN0cmluZyBzdHJpbmc7CisgICAgaWYgKGF1dG8gcyA9IHN0ci50b1N0cmluZygp
KQorICAgICAgICBzdHJpbmcgPSAqczsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAg
aWYgKGNvbnN0IENTU1NlbGVjdG9yKiB0YWdIaXN0b3J5ID0gY3MtPnRhZ0hpc3RvcnkoKSkgewog
ICAgICAgICBzd2l0Y2ggKGNzLT5yZWxhdGlvbigpKSB7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OkRlc2NlbmRhbnRTcGFjZToKLSAgICAgICAgICAgIHJldHVybiB0YWdIaXN0b3J5LT5zZWxl
Y3RvclRleHQoIiAiICsgc3RyLnRvU3RyaW5nKCkgKyByaWdodFNpZGUpOworICAgICAgICAgICAg
cmV0dXJuIHRhZ0hpc3RvcnktPnNlbGVjdG9yVGV4dCgiICIgKyBzdHJpbmcgKyByaWdodFNpZGUp
OwogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpDaGlsZDoKLSAgICAgICAgICAgIHJldHVybiB0
YWdIaXN0b3J5LT5zZWxlY3RvclRleHQoIiA+ICIgKyBzdHIudG9TdHJpbmcoKSArIHJpZ2h0U2lk
ZSk7CisgICAgICAgICAgICByZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0b3JUZXh0KCIgPiAiICsg
c3RyaW5nICsgcmlnaHRTaWRlKTsKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6RGlyZWN0QWRq
YWNlbnQ6Ci0gICAgICAgICAgICByZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0b3JUZXh0KCIgKyAi
ICsgc3RyLnRvU3RyaW5nKCkgKyByaWdodFNpZGUpOworICAgICAgICAgICAgcmV0dXJuIHRhZ0hp
c3RvcnktPnNlbGVjdG9yVGV4dCgiICsgIiArIHN0cmluZyArIHJpZ2h0U2lkZSk7CiAgICAgICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OkluZGlyZWN0QWRqYWNlbnQ6Ci0gICAgICAgICAgICByZXR1cm4g
dGFnSGlzdG9yeS0+c2VsZWN0b3JUZXh0KCIgfiAiICsgc3RyLnRvU3RyaW5nKCkgKyByaWdodFNp
ZGUpOworICAgICAgICAgICAgcmV0dXJuIHRhZ0hpc3RvcnktPnNlbGVjdG9yVGV4dCgiIH4gIiAr
IHN0cmluZyArIHJpZ2h0U2lkZSk7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlN1YnNlbGVj
dG9yOgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAjaWYgQVNTRVJUX0RJU0FC
TEVECiAgICAgICAgICAgICBGQUxMVEhST1VHSDsKICNlbmRpZgogICAgICAgICBjYXNlIENTU1Nl
bGVjdG9yOjpTaGFkb3dEZXNjZW5kYW50OgotICAgICAgICAgICAgcmV0dXJuIHRhZ0hpc3Rvcnkt
PnNlbGVjdG9yVGV4dChzdHIudG9TdHJpbmcoKSArIHJpZ2h0U2lkZSk7CisgICAgICAgICAgICBy
ZXR1cm4gdGFnSGlzdG9yeS0+c2VsZWN0b3JUZXh0KHN0cmluZyArIHJpZ2h0U2lkZSk7CiAgICAg
ICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIHN0ci50b1N0cmluZygpICsgcmlnaHRTaWRlOworICAg
IHJldHVybiBzdHJpbmcgKyByaWdodFNpZGU7CiB9CiAKIHZvaWQgQ1NTU2VsZWN0b3I6OnNldEF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB2YWx1ZSwgYm9vbCBpc0Nhc2VJbnNlbnNpdGl2
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxpc3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAKaW5kZXggNTdlZmE2Ny4uYWUz
MzAwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAKQEAgLTEzOCw3ICsx
MzgsOSBAQCBTdHJpbmcgQ1NTU2VsZWN0b3JMaXN0OjpzZWxlY3RvcnNUZXh0KCkgY29uc3QKIHsK
ICAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKICAgICBidWlsZFNlbGVjdG9yc1RleHQocmVzdWx0
KTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
cmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIHZvaWQgQ1NTU2VsZWN0b3JMaXN0OjpidWlsZFNlbGVjdG9yc1RleHQoU3RyaW5nQnVp
bGRlciYgc3RyaW5nQnVpbGRlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NTaGFkb3dWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2hhZG93VmFsdWUu
Y3BwCmluZGV4IDk0OTQ3ZDcuLmUyOWM4NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NTaGFkb3dWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NoYWRvd1Zh
bHVlLmNwcApAQCAtNjksNyArNjksOSBAQCBTdHJpbmcgQ1NTU2hhZG93VmFsdWU6OmN1c3RvbUNT
U1RleHQoKSBjb25zdAogICAgICAgICB0ZXh0LmFwcGVuZChzdHlsZS0+Y3NzVGV4dCgpKTsKICAg
ICB9CiAKLSAgICByZXR1cm4gdGV4dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IHRleHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsK
IH0KIAogYm9vbCBDU1NTaGFkb3dWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU1NoYWRvd1ZhbHVlJiBv
dGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAKaW5kZXggYmI4ZDIxYy4u
NTgwOGZkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAKQEAgLTEyMCw3ICsxMjAs
OSBAQCBTdHJpbmcgQ1NTU3R5bGVSdWxlOjpjc3NUZXh0KCkgY29uc3QKICAgICBpZiAoIWRlY2xz
LmlzRW1wdHkoKSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICcpOwogICAgIHJlc3VsdC5hcHBl
bmQoJ30nKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAKIHZvaWQgQ1NTU3R5bGVSdWxlOjpyZWF0dGFjaChTdHlsZVJ1bGVCYXNlJiBy
dWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCmluZGV4IDFlY2M1YmEuLjg2OTg0
ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAKQEAgLTMxNiw5ICszMTYsMTIg
QEAgRXhjZXB0aW9uT3I8aW50PiBDU1NTdHlsZVNoZWV0OjphZGRSdWxlKGNvbnN0IFN0cmluZyYg
c2VsZWN0b3IsIGNvbnN0IFN0cmluZyYgc3QKICAgICBpZiAoIXN0eWxlLmlzRW1wdHkoKSkKICAg
ICAgICAgdGV4dC5hcHBlbmQoJyAnKTsKICAgICB0ZXh0LmFwcGVuZCgnfScpOwotICAgIGF1dG8g
aW5zZXJ0UnVsZVJlc3VsdCA9IGluc2VydFJ1bGUodGV4dC50b1N0cmluZygpLCBpbmRleC52YWx1
ZV9vcihsZW5ndGgoKSkpOwotICAgIGlmIChpbnNlcnRSdWxlUmVzdWx0Lmhhc0V4Y2VwdGlvbigp
KQotICAgICAgICByZXR1cm4gaW5zZXJ0UnVsZVJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gdGV4dC50b1N0cmluZygpKSB7CisgICAgICAgIGF1dG8gaW5z
ZXJ0UnVsZVJlc3VsdCA9IGluc2VydFJ1bGUoKnN0cmluZywgaW5kZXgudmFsdWVfb3IobGVuZ3Ro
KCkpKTsKKyAgICAgICAgaWYgKGluc2VydFJ1bGVSZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisgICAg
ICAgICAgICByZXR1cm4gaW5zZXJ0UnVsZVJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CisgICAg
fSBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgCiAgICAgLy8gQXMgcGVyIE1pY3Jvc29mdCBk
b2N1bWVudGF0aW9uLCBhbHdheXMgcmV0dXJuIC0xLgogICAgIHJldHVybiAtMTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdXBwb3J0c1J1bGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N1cHBvcnRzUnVsZS5jcHAKaW5kZXggZTEzZTEzYi4uZmNiZTMyNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1cHBvcnRzUnVsZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1N1cHBvcnRzUnVsZS5jcHAKQEAgLTUwLDcgKzUwLDkgQEAgU3RyaW5n
IENTU1N1cHBvcnRzUnVsZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgYXBwZW5kQ3NzVGV4dEZvckl0
ZW1zKHJlc3VsdCk7CiAgICAgcmVzdWx0LmFwcGVuZCgnfScpOwogCi0gICAgcmV0dXJuIHJlc3Vs
dC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQ1NTU3Vw
cG9ydHNSdWxlOjpjb25kaXRpb25UZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NUaW1pbmdGdW5jdGlvblZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NUaW1pbmdGdW5jdGlvblZhbHVlLmNwcAppbmRleCA5MGVmNmNkLi4wOTI4ODJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVGltaW5nRnVuY3Rpb25WYWx1ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuY3BwCkBAIC00Miw3ICs0
Miw5IEBAIFN0cmluZyBDU1NDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uVmFsdWU6OmN1c3RvbUNT
U1RleHQoKSBjb25zdAogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKICAgICBidWls
ZGVyLmFwcGVuZE51bWJlcihtX3kyKTsKICAgICBidWlsZGVyLmFwcGVuZCgnKScpOyAgICAKLSAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogYm9vbCBDU1NDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uVmFsdWU6OmVxdWFscyhjb25zdCBD
U1NDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uVmFsdWUmIG90aGVyKSBjb25zdApAQCAtNTksNyAr
NjEsOSBAQCBTdHJpbmcgQ1NTU3RlcHNUaW1pbmdGdW5jdGlvblZhbHVlOjpjdXN0b21DU1NUZXh0
KCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsIHN0YXJ0KSIpOwogICAg
IGVsc2UKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsIGVuZCkiKTsKLSAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9v
bCBDU1NTdGVwc1RpbWluZ0Z1bmN0aW9uVmFsdWU6OmVxdWFscyhjb25zdCBDU1NTdGVwc1RpbWlu
Z0Z1bmN0aW9uVmFsdWUmIG90aGVyKSBjb25zdApAQCAtNzMsNyArNzcsOSBAQCBTdHJpbmcgQ1NT
RnJhbWVzVGltaW5nRnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAgICAgYnVp
bGRlci5hcHBlbmRMaXRlcmFsKCJmcmFtZXMoIik7CiAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIo
bV9mcmFtZXMpOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSIpOwotICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIENT
U0ZyYW1lc1RpbWluZ0Z1bmN0aW9uVmFsdWU6OmVxdWFscyhjb25zdCBDU1NGcmFtZXNUaW1pbmdG
dW5jdGlvblZhbHVlJiBvdGhlcikgY29uc3QKQEAgLTkzLDcgKzk5LDkgQEAgU3RyaW5nIENTU1Nw
cmluZ1RpbWluZ0Z1bmN0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIGJ1aWxk
ZXIuYXBwZW5kKCcgJyk7CiAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV9pbml0aWFsVmVsb2Np
dHkpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ1NTU3ByaW5nVGltaW5n
RnVuY3Rpb25WYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU1NwcmluZ1RpbWluZ0Z1bmN0aW9uVmFsdWUm
IG90aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlz
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0LmNwcAppbmRleCBiNmUwYzJj
NS4uMzA5MGUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAKQEAgLTEwNyw3ICsx
MDcsOSBAQCBTdHJpbmcgQ1NTVmFsdWVMaXN0OjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICAg
ICAgcmVzdWx0LmFwcGVuZCh2YWx1ZS5nZXQoKS5jc3NUZXh0KCkpOwogICAgIH0KIAotICAgIHJl
dHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9v
bCBDU1NWYWx1ZUxpc3Q6OmVxdWFscyhjb25zdCBDU1NWYWx1ZUxpc3QmIG90aGVyKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhcmlhYmxlRGF0YS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVmFyaWFibGVEYXRhLmNwcAppbmRleCA5OGM5ZDA5Li4zMTE4ZGU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFyaWFibGVEYXRhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFyaWFibGVEYXRhLmNwcApAQCAtNjgsNyArNjgsMTAg
QEAgdm9pZCBDU1NWYXJpYWJsZURhdGE6OmNvbnN1bWVBbmRVcGRhdGVUb2tlbnMoY29uc3QgQ1NT
UGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiAgICAgICAgIGlmICh0b2tlbi5oYXNTdHJpbmdCYWNr
aW5nKCkpCiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b2tlbi52YWx1ZSgpKTsK
ICAgICB9Ci0gICAgbV9iYWNraW5nU3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
bV9iYWNraW5nU3RyaW5nID0gKnN0cmluZzsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAg
ICAgaWYgKG1fYmFja2luZ1N0cmluZy5pczhCaXQoKSkKICAgICAgICAgdXBkYXRlVG9rZW5zPExD
aGFyPihyYW5nZSk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RP
TUNTU05hbWVzcGFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmNw
cAppbmRleCA5MTM1MjM3Li5jZTE1ZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
RE9NQ1NTTmFtZXNwYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNw
YWNlLmNwcApAQCAtODQsNyArODQsOSBAQCBTdHJpbmcgRE9NQ1NTTmFtZXNwYWNlOjplc2NhcGUo
Y29uc3QgU3RyaW5nJiBpZGVudCkKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAg
c2VyaWFsaXplSWRlbnRpZmllcihpZGVudCwgYnVpbGRlcik7Ci0gICAgcmV0dXJuIGJ1aWxkZXIu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXhSZWFkT25seS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvRE9NTWF0cml4UmVhZE9ubHkuY3BwCmluZGV4IGY3NGI0NjUuLjc4ODIyOGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXhSZWFkT25seS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeFJlYWRPbmx5LmNwcApAQCAtNDUwLDcgKzQ1MCw5IEBA
IEV4Y2VwdGlvbk9yPFN0cmluZz4gRE9NTWF0cml4UmVhZE9ubHk6OnRvU3RyaW5nKCkgY29uc3QK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nOjpudW1iZXJUb1N0cmluZ0VDTUFTY3JpcHQo
bV9tYXRyaXgubTQ0KCkpKTsKICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKLSAgICBy
ZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIFdURk1vdmUoKnN0cmluZyk7CisgICAgQ1JBU0go
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
RGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNwcAppbmRleCBlNDk2ODg0Li41ZTk4ZTIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNwcApAQCAt
NTQsNyArNTQsOSBAQCBTdHJpbmcgRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0Ojpjc3NUZXh0KCkg
Y29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZCh2YWx1ZS5nZXQoKS5jc3NUZXh0KCkpOwogICAg
IH0KICAgICAKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3Ry
aW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwCmluZGV4IDU4MWY1ZTguLmMyNTg2
YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmNwcApAQCAtMzI4LDcgKzMyOCw5IEBAIFN0cmluZyBG
b250RmFjZTo6c3R5bGUoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZChtYXhpbXVtTm9uS2V5d29yZC0+b2JsaXF1ZVZhbHVlLT5jc3NU
ZXh0KCkpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIEZvbnRGYWNlOjp3ZWlnaHQoKSBjb25zdApAQCAt
MzQ5LDcgKzM1MSw5IEBAIFN0cmluZyBGb250RmFjZTo6d2VpZ2h0KCkgY29uc3QKICAgICBidWls
ZGVyLmFwcGVuZChtaW5pbXVtTm9uS2V5d29yZC0+Y3NzVGV4dCgpKTsKICAgICBidWlsZGVyLmFw
cGVuZCgnICcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG1heGltdW1Ob25LZXl3b3JkLT5jc3NUZXh0
KCkpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBTdHJpbmcgRm9udEZhY2U6OnN0cmV0Y2goKSBjb25zdApAQCAtMzcwLDcgKzM3
NCw5IEBAIFN0cmluZyBGb250RmFjZTo6c3RyZXRjaCgpIGNvbnN0CiAgICAgYnVpbGRlci5hcHBl
bmQobWluaW11bU5vbktleXdvcmQtPmNzc1RleHQoKSk7CiAgICAgYnVpbGRlci5hcHBlbmQoJyAn
KTsKICAgICBidWlsZGVyLmFwcGVuZChtYXhpbXVtTm9uS2V5d29yZC0+Y3NzVGV4dCgpKTsKLSAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogU3RyaW5nIEZvbnRGYWNlOjp1bmljb2RlUmFuZ2UoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFM
aXN0LmNwcAppbmRleCA0NTc1MGFmLi40MjY5NDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvTWVkaWFMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNw
cApAQCAtMTUxLDcgKzE1MSw5IEBAIFN0cmluZyBNZWRpYVF1ZXJ5U2V0OjptZWRpYVRleHQoKSBj
b25zdAogICAgICAgICB0ZXh0LmFwcGVuZChxdWVyeS5jc3NUZXh0KCkpOwogICAgICAgICBuZWVk
Q29tbWEgPSB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gdGV4dC50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IHRleHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBNZWRpYVF1ZXJ5U2V0OjpzaHJpbmtUb0ZpdCgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeS5jcHAKaW5kZXggOWQwYmFkZi4uNDA3MGQ3YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9NZWRpYVF1ZXJ5LmNwcApAQCAtNjYsNyArNjYsOSBAQCBTdHJpbmcgTWVkaWFRdWVyeTo6
c2VyaWFsaXplKCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZChleHByZXNzaW9uLnNlcmlh
bGl6ZSgpKTsKICAgICAgICAgbmVlZHNBbmQgPSB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gcmVz
dWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIE1lZGlhUXVlcnk6
Ok1lZGlhUXVlcnkoUmVzdHJpY3RvciByZXN0cmljdG9yLCBjb25zdCBTdHJpbmcmIG1lZGlhVHlw
ZSwgVmVjdG9yPE1lZGlhUXVlcnlFeHByZXNzaW9uPiYmIGV4cHJlc3Npb25zKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAKaW5kZXggMmQ4ZTVmMC4uZTBhMjJm
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwCkBAIC0y
NDQsNyArMjQ0LDEwIEBAIFN0cmluZyBNZWRpYVF1ZXJ5RXhwcmVzc2lvbjo6c2VyaWFsaXplKCkg
Y29uc3QKICAgICB9CiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwogCi0gICAgbV9zZXJpYWxpemF0
aW9uQ2FjaGUgPSByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1
bHQudG9TdHJpbmcoKSkKKyAgICAgICAgbV9zZXJpYWxpemF0aW9uQ2FjaGUgPSAqc3RyaW5nOwor
ICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICByZXR1cm4gbV9zZXJpYWxpemF0aW9uQ2Fj
aGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvUmVjdC5oCmluZGV4IGVjMWFhZTguLmRmYWUxNzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9SZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1JlY3QuaApA
QCAtMTAzLDcgKzEwMyw5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfQogICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVByb3BlcnRpZXMuY3BwCmluZGV4IDNjOGNlNDMuLmJmZjE3MmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCkBAIC0zNDMsNyArMzQzLDkgQEAgU3RyaW5nIFN0
eWxlUHJvcGVydGllczo6Zm9udFZhbHVlKCkgY29uc3QKICAgICByZXN1bHQuYXBwZW5kKGZvbnRG
YW1pbHlQcm9wZXJ0eS52YWx1ZSgpLT5jc3NUZXh0KCkpOwogICAgIGlmIChpc0luaXRpYWxPcklu
aGVyaXQoY29tbW9uVmFsdWUpKQogICAgICAgICByZXR1cm4gY29tbW9uVmFsdWU7Ci0gICAgcmV0
dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJp
bmcgU3R5bGVQcm9wZXJ0aWVzOjpnZXQ0VmFsdWVzKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhh
bmQmIHNob3J0aGFuZCkgY29uc3QKQEAgLTM5Nyw3ICszOTksOSBAQCBTdHJpbmcgU3R5bGVQcm9w
ZXJ0aWVzOjpnZXQ0VmFsdWVzKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHNob3J0aGFu
ZCkgY29ucwogICAgICAgICByZXN1bHQuYXBwZW5kKCcgJyk7CiAgICAgICAgIHJlc3VsdC5hcHBl
bmQobGVmdC52YWx1ZSgpLT5jc3NUZXh0KCkpOwogICAgIH0KLSAgICByZXR1cm4gcmVzdWx0LnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBTdHlsZVByb3Bl
cnRpZXM6OmdldExheWVyZWRTaG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRo
YW5kJiBzaG9ydGhhbmQpIGNvbnN0CkBAIC01NDMsNyArNTQ3LDkgQEAgU3RyaW5nIFN0eWxlUHJv
cGVydGllczo6Z2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9y
dGhhbmQmIHMKIAogICAgIGlmIChyZXN1bHQuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gU3Ry
aW5nKCk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpnZXRTaG9ydGhhbmRWYWx1ZShjb25z
dCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBzaG9ydGhhbmQpIGNvbnN0CkBAIC01NzIsNyArNTc4
LDkgQEAgU3RyaW5nIFN0eWxlUHJvcGVydGllczo6Z2V0U2hvcnRoYW5kVmFsdWUoY29uc3QgU3R5
bGVQcm9wZXJ0eVNob3J0aGFuZCYgc2hvcnRoYW4KICAgICAgICAgcmV0dXJuIGNvbW1vblZhbHVl
OwogICAgIGlmIChyZXN1bHQuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0g
ICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3Vs
dC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiAvLyBvbmx5IHJldHVybnMgYSBub24tbnVsbCB2YWx1ZSBpZiBhbGwgcHJvcGVydGllcyBoYXZl
IHRoZSBzYW1lLCBub24tbnVsbCB2YWx1ZQpAQCAtNjM0LDcgKzY0MiwxMSBAQCBTdHJpbmcgU3R5
bGVQcm9wZXJ0aWVzOjpib3JkZXJQcm9wZXJ0eVZhbHVlKENvbW1vblZhbHVlTW9kZSB2YWx1ZU1v
ZGUpIGNvbnN0CiAgICAgfQogICAgIGlmIChpc0luaXRpYWxPckluaGVyaXQoY29tbW9uVmFsdWUp
KQogICAgICAgICByZXR1cm4gY29tbW9uVmFsdWU7Ci0gICAgcmV0dXJuIHJlc3VsdC5pc0VtcHR5
KCkgPyBTdHJpbmcoKSA6IHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChyZXN1bHQuaXNFbXB0
eSgpKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVz
dWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIFJlZlB0cjxDU1NWYWx1ZT4gU3R5bGVQcm9wZXJ0aWVzOjpnZXRQcm9wZXJ0eUNTU1ZhbHVl
KENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkgY29uc3QKQEAgLTExNDYsNyArMTE1OCw5IEBAIFN0
cmluZyBTdHlsZVByb3BlcnRpZXM6OmFzVGV4dCgpIGNvbnN0CiAgICAgfQogCiAgICAgQVNTRVJU
KCFudW1EZWNscyBeICFyZXN1bHQuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgU3R5bGVQcm9wZXJ0aWVz
OjpoYXNDU1NPTVdyYXBwZXIoKSBjb25zdApAQCAtMTQwMyw3ICsxNDE3LDkgQEAgU3RyaW5nIFN0
eWxlUHJvcGVydGllczo6UHJvcGVydHlSZWZlcmVuY2U6OmNzc1RleHQoKSBjb25zdAogICAgIGlm
IChpc0ltcG9ydGFudCgpKQogICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiICFpbXBvcnRh
bnQiKTsKICAgICByZXN1bHQuYXBwZW5kKCc7Jyk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogICAgIAogUmVmPERlZmVycmVkU3R5bGVQ
cm9wZXJ0aWVzPiBEZWZlcnJlZFN0eWxlUHJvcGVydGllczo6Y3JlYXRlKGNvbnN0IENTU1BhcnNl
clRva2VuUmFuZ2UmIHRva2VuUmFuZ2UsIENTU0RlZmVycmVkUGFyc2VyJiBwYXJzZXIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwCmluZGV4IDdiZGU2NGQuLjFmNzhkMTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwCkBAIC0yNDksNyArMjQ5LDkgQEAg
RXhjZXB0aW9uT3I8U3RyaW5nPiBXZWJLaXRDU1NNYXRyaXg6OnRvU3RyaW5nKCkgY29uc3QKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nOjpudW1iZXJUb1N0cmluZ0VDTUFTY3JpcHQobV9t
YXRyaXgubTQ0KCkpKTsKICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKLSAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIFdURk1vdmUoKnN0cmluZyk7CisgICAgQ1JBU0goKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0
Q1NTVmlld3BvcnRSdWxlLmNwcAppbmRleCBjYmQxNzJmLi5kZTZlYzk1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcApAQCAtNzIsNyArNzIsOSBAQCBT
dHJpbmcgV2ViS2l0Q1NTVmlld3BvcnRSdWxlOjpjc3NUZXh0KCkgY29uc3QKIAogICAgIHJlc3Vs
dC5hcHBlbmQoJ30nKTsKIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBXZWJLaXRDU1NWaWV3cG9ydFJ1bGU6OnJlYXR0YWNo
KFN0eWxlUnVsZUJhc2UmIHJ1bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5j
cHAKaW5kZXggOTU0YWIwOC4uZWNiZmFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UGFyc2VyLmNwcApAQCAtMjk5LDEwICsyOTksMTMgQEAgUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJz
ZXI6OnBhcnNlRm9udEZhY2VEZXNjcmlwdG9yKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgY28K
ICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiA6ICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKHBy
b3BlcnR5VmFsdWUpOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiOyB9Iik7Ci0gICAgUmVm
UHRyPFN0eWxlUnVsZUJhc2U+IHJ1bGUgPSBwYXJzZVJ1bGUoY29udGV4dCwgbnVsbHB0ciwgYnVp
bGRlci50b1N0cmluZygpKTsKLSAgICBpZiAoIXJ1bGUgfHwgIXJ1bGUtPmlzRm9udEZhY2VSdWxl
KCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBkb3duY2FzdDxTdHlsZVJ1
bGVGb250RmFjZT4oKnJ1bGUuZ2V0KCkpLnByb3BlcnRpZXMoKS5nZXRQcm9wZXJ0eUNTU1ZhbHVl
KHByb3BlcnR5SUQpOworICAgIGlmIChhdXRvIHN0cmluZyAgPSBidWlsZGVyLnRvU3RyaW5nKCkp
IHsKKyAgICAgICAgUmVmUHRyPFN0eWxlUnVsZUJhc2U+IHJ1bGUgPSBwYXJzZVJ1bGUoY29udGV4
dCwgbnVsbHB0ciwgKnN0cmluZyk7CisgICAgICAgIGlmICghcnVsZSB8fCAhcnVsZS0+aXNGb250
RmFjZVJ1bGUoKSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4g
ZG93bmNhc3Q8U3R5bGVSdWxlRm9udEZhY2U+KCpydWxlLmdldCgpKS5wcm9wZXJ0aWVzKCkuZ2V0
UHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0eUlEKTsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmNwcAppbmRleCA3
YjhlNjAzLi41ZDEwMTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlclRva2VuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNl
clRva2VuLmNwcApAQCAtMzkyLDcgKzM5Miw4IEBAIHZvaWQgQ1NTUGFyc2VyVG9rZW46OnNlcmlh
bGl6ZShTdHJpbmdCdWlsZGVyJiBidWlsZGVyKSBjb25zdAogICAgICAgICBicmVhazsKICAgICBj
YXNlIEZ1bmN0aW9uVG9rZW46CiAgICAgICAgIHNlcmlhbGl6ZUlkZW50aWZpZXIodmFsdWUoKS50
b1N0cmluZygpLCBidWlsZGVyKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCcoJyk7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcoJyk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNl
IEF0S2V5d29yZFRva2VuOgogICAgICAgICBidWlsZGVyLmFwcGVuZCgnQCcpOwogICAgICAgICBz
ZXJpYWxpemVJZGVudGlmaWVyKHZhbHVlKCkudG9TdHJpbmcoKSwgYnVpbGRlcik7CkBAIC00MDQs
NjkgKzQwNSw5NyBAQCB2b2lkIENTU1BhcnNlclRva2VuOjpzZXJpYWxpemUoU3RyaW5nQnVpbGRl
ciYgYnVpbGRlcikgY29uc3QKICAgICBjYXNlIFVybFRva2VuOgogICAgICAgICBidWlsZGVyLmFw
cGVuZCgidXJsKCIpOwogICAgICAgICBzZXJpYWxpemVJZGVudGlmaWVyKHZhbHVlKCkudG9TdHJp
bmcoKSwgYnVpbGRlcik7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgnKScpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZCgnKScpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBEZWxp
bWl0ZXJUb2tlbjoKLSAgICAgICAgaWYgKGRlbGltaXRlcigpID09ICdcXCcpCi0gICAgICAgICAg
ICByZXR1cm4gYnVpbGRlci5hcHBlbmQoIlxcXG4iKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIu
YXBwZW5kKGRlbGltaXRlcigpKTsKKyAgICAgICAgaWYgKGRlbGltaXRlcigpID09ICdcXCcpIHsK
KyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJcXFxuIik7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKyAgICAgICAgYnVpbGRlci5hcHBlbmQoZGVsaW1pdGVyKCkpOworICAgICAg
ICByZXR1cm47CiAgICAgY2FzZSBOdW1iZXJUb2tlbjoKICAgICAgICAgLy8gVGhlc2Ugd29uJ3Qg
cHJvcGVybHkgcHJlc2VydmUgdGhlIE51bWVyaWNWYWx1ZVR5cGUgZmxhZwogICAgICAgICBpZiAo
bV9udW1lcmljU2lnbiA9PSBQbHVzU2lnbikKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcr
Jyk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZE51bWJlcihudW1lcmljVmFsdWUoKSk7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG51bWVyaWNWYWx1ZSgpKTsKKyAgICAgICAg
cmV0dXJuOwogICAgIGNhc2UgUGVyY2VudGFnZVRva2VuOgogICAgICAgICBidWlsZGVyLmFwcGVu
ZE51bWJlcihudW1lcmljVmFsdWUoKSk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgn
JScpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnJScpOworICAgICAgICByZXR1cm47CiAgICAg
Y2FzZSBEaW1lbnNpb25Ub2tlbjoKICAgICAgICAgLy8gVGhpcyB3aWxsIGluY29ycmVjdGx5IHNl
cmlhbGl6ZSBlLmcuIDRlM2UyIGFzIDQwMDBlMgogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJl
cihudW1lcmljVmFsdWUoKSk7CiAgICAgICAgIHNlcmlhbGl6ZUlkZW50aWZpZXIodmFsdWUoKS50
b1N0cmluZygpLCBidWlsZGVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBVbmljb2RlUmFu
Z2VUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKFN0cmluZzo6Zm9ybWF0KCJV
KyVYLSVYIiwgdW5pY29kZVJhbmdlU3RhcnQoKSwgdW5pY29kZVJhbmdlRW5kKCkpKTsKKyAgICAg
ICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nOjpmb3JtYXQoIlUrJVgtJVgiLCB1bmljb2RlUmFuZ2VT
dGFydCgpLCB1bmljb2RlUmFuZ2VFbmQoKSkpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBT
dHJpbmdUb2tlbjoKLSAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVN0cmluZyh2YWx1ZSgpLnRvU3Ry
aW5nKCksIGJ1aWxkZXIpOworICAgICAgICBzZXJpYWxpemVTdHJpbmcodmFsdWUoKS50b1N0cmlu
ZygpLCBidWlsZGVyKTsKKyAgICAgICAgcmV0dXJuOwogCiAgICAgY2FzZSBJbmNsdWRlTWF0Y2hU
b2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCJ+PSIpOworICAgICAgICBidWls
ZGVyLmFwcGVuZCgifj0iKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRGFzaE1hdGNoVG9r
ZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgifD0iKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQoInw9Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFByZWZpeE1hdGNoVG9r
ZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgiXj0iKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQoIl49Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFN1ZmZpeE1hdGNoVG9r
ZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgiJD0iKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQoIiQ9Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFN1YnN0cmluZ01hdGNo
VG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFwcGVuZCgiKj0iKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmQoIio9Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIENvbHVtblRva2Vu
OgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQoInx8Iik7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCJ8fCIpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBDRE9Ub2tlbjoKLSAgICAg
ICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCI8IS0tIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCI8IS0tIik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIENEQ1Rva2VuOgotICAgICAgICBy
ZXR1cm4gYnVpbGRlci5hcHBlbmQoIi0tPiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiLS0+
Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEJhZFN0cmluZ1Rva2VuOgotICAgICAgICBy
ZXR1cm4gYnVpbGRlci5hcHBlbmQoIidcbiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiJ1xu
Iik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEJhZFVybFRva2VuOgotICAgICAgICByZXR1
cm4gYnVpbGRlci5hcHBlbmQoInVybCgoKSIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgidXJs
KCgpIik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFdoaXRlc3BhY2VUb2tlbjoKLSAgICAg
ICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcg
Jyk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIENvbG9uVG9rZW46Ci0gICAgICAgIHJldHVy
biBidWlsZGVyLmFwcGVuZCgnOicpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnOicpOworICAg
ICAgICByZXR1cm47CiAgICAgY2FzZSBTZW1pY29sb25Ub2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1
aWxkZXIuYXBwZW5kKCc7Jyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCc7Jyk7CisgICAgICAg
IHJldHVybjsKICAgICBjYXNlIENvbW1hVG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVyLmFw
cGVuZCgnLCcpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnLCcpOworICAgICAgICByZXR1cm47
CiAgICAgY2FzZSBMZWZ0UGFyZW50aGVzaXNUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIu
YXBwZW5kKCcoJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcoJyk7CisgICAgICAgIHJldHVy
bjsKICAgICBjYXNlIFJpZ2h0UGFyZW50aGVzaXNUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxk
ZXIuYXBwZW5kKCcpJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7CisgICAgICAgIHJl
dHVybjsKICAgICBjYXNlIExlZnRCcmFja2V0VG9rZW46Ci0gICAgICAgIHJldHVybiBidWlsZGVy
LmFwcGVuZCgnWycpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnWycpOworICAgICAgICByZXR1
cm47CiAgICAgY2FzZSBSaWdodEJyYWNrZXRUb2tlbjoKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIu
YXBwZW5kKCddJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCddJyk7CisgICAgICAgIHJldHVy
bjsKICAgICBjYXNlIExlZnRCcmFjZVRva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBl
bmQoJ3snKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJ3snKTsKKyAgICAgICAgcmV0dXJuOwog
ICAgIGNhc2UgUmlnaHRCcmFjZVRva2VuOgotICAgICAgICByZXR1cm4gYnVpbGRlci5hcHBlbmQo
J30nKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJ30nKTsKKyAgICAgICAgcmV0dXJuOwogCiAg
ICAgY2FzZSBFT0ZUb2tlbjoKICAgICBjYXNlIENvbW1lbnRUb2tlbjoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW5SYW5nZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuUmFuZ2UuY3BwCmluZGV4IGNiOWM1ODAu
LmVmZTVhMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2Vy
VG9rZW5SYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJU
b2tlblJhbmdlLmNwcApAQCAtMTEzLDcgKzExMyw5IEBAIFN0cmluZyBDU1NQYXJzZXJUb2tlblJh
bmdlOjpzZXJpYWxpemUoKSBjb25zdAogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBm
b3IgKGNvbnN0IENTU1BhcnNlclRva2VuKiBpdCA9IG1fZmlyc3Q7IGl0IDwgbV9sYXN0OyArK2l0
KQogICAgICAgICBpdC0+c2VyaWFsaXplKGJ1aWxkZXIpOwotICAgIHJldHVybiBidWlsZGVyLnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5
UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIu
Y3BwCmluZGV4IGJjZWNlNzAuLjMwOTA3NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCkBAIC0xMDE2LDcgKzEwMTYsOSBAQCBzdGF0aWMg
U3RyaW5nIGNvbmNhdGVuYXRlRmFtaWx5TmFtZShDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkK
ICAgICB9CiAgICAgaWYgKCFhZGRlZFNwYWNlICYmIGlzQ1NTV2lkZUtleXdvcmQoZmlyc3RUb2tl
bi5pZCgpKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwotICAgIHJldHVybiBidWlsZGVyLnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgUmVmUHRyPENT
U1ZhbHVlPiBjb25zdW1lRmFtaWx5TmFtZShDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKQEAg
LTMyNjQsNyArMzI2NiwxMCBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gcGFyc2VHcmlkVGVtcGxh
dGVBcmVhc0NvbHVtbk5hbWVzKGNvbnN0IFN0cmluZyYgZ3JpZFJvd05hbQogICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aCgpOyArK2kpIHsKICAgICAgICAgaWYgKGlzQ1NT
U3BhY2UodGV4dFtpXSkpIHsKICAgICAgICAgICAgIGlmICghYXJlYU5hbWUuaXNFbXB0eSgpKSB7
Ci0gICAgICAgICAgICAgICAgY29sdW1uTmFtZXMuYXBwZW5kKGFyZWFOYW1lLnRvU3RyaW5nKCkp
OworICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGFyZWFOYW1lLnRvU3RyaW5nKCkp
CisgICAgICAgICAgICAgICAgICAgIGNvbHVtbk5hbWVzLmFwcGVuZCgqc3RyaW5nKTsKKyAgICAg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAg
ICAgICAgYXJlYU5hbWUuY2xlYXIoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNvbnRp
bnVlOwpAQCAtMzI3MywxNCArMzI3OCwyMCBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gcGFyc2VH
cmlkVGVtcGxhdGVBcmVhc0NvbHVtbk5hbWVzKGNvbnN0IFN0cmluZyYgZ3JpZFJvd05hbQogICAg
ICAgICAgICAgaWYgKGFyZWFOYW1lID09ICIuIikKICAgICAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgICAgIGlmICghYXJlYU5hbWUuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAg
Y29sdW1uTmFtZXMuYXBwZW5kKGFyZWFOYW1lLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAg
IGlmIChhdXRvIHN0cmluZyA9IGFyZWFOYW1lLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAg
ICAgIGNvbHVtbk5hbWVzLmFwcGVuZCgqc3RyaW5nKTsKKyAgICAgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAgICAgYXJlYU5hbWUuY2xl
YXIoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmICgh
aXNOYW1lQ29kZVBvaW50KHRleHRbaV0pKQogICAgICAgICAgICAgICAgIHJldHVybiBWZWN0b3I8
U3RyaW5nPigpOwogICAgICAgICAgICAgaWYgKGFyZWFOYW1lID09ICIuIikgewotICAgICAgICAg
ICAgICAgIGNvbHVtbk5hbWVzLmFwcGVuZChhcmVhTmFtZS50b1N0cmluZygpKTsKKyAgICAgICAg
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBhcmVhTmFtZS50b1N0cmluZygpKQorICAgICAgICAg
ICAgICAgICAgICBjb2x1bW5OYW1lcy5hcHBlbmQoKnN0cmluZyk7CisgICAgICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgICAgIGFyZWFO
YW1lLmNsZWFyKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTMyODgsOCArMzI5OSwx
MiBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gcGFyc2VHcmlkVGVtcGxhdGVBcmVhc0NvbHVtbk5h
bWVzKGNvbnN0IFN0cmluZyYgZ3JpZFJvd05hbQogICAgICAgICBhcmVhTmFtZS5hcHBlbmQodGV4
dFtpXSk7CiAgICAgfQogCi0gICAgaWYgKCFhcmVhTmFtZS5pc0VtcHR5KCkpCi0gICAgICAgIGNv
bHVtbk5hbWVzLmFwcGVuZChhcmVhTmFtZS50b1N0cmluZygpKTsKKyAgICBpZiAoIWFyZWFOYW1l
LmlzRW1wdHkoKSkgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBhcmVhTmFtZS50b1N0cmlu
ZygpKQorICAgICAgICAgICAgY29sdW1uTmFtZXMuYXBwZW5kKCpzdHJpbmcpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBDUkFTSCgpOworICAgIH0KIAogICAgIHJldHVybiBjb2x1bW5OYW1l
czsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTVG9rZW5pemVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTVG9rZW5pemVyLmNwcAppbmRleCAx
ZjFhMjNlLi4zYjg0ZTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1Rva2VuaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NUb2tlbml6
ZXIuY3BwCkBAIC02MDUsOCArNjA1LDExIEBAIENTU1BhcnNlclRva2VuIENTU1Rva2VuaXplcjo6
Y29uc3VtZVN0cmluZ1Rva2VuVW50aWwoVUNoYXIgZW5kaW5nQ29kZVBvaW50KQogICAgIFN0cmlu
Z0J1aWxkZXIgb3V0cHV0OwogICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgIFVDaGFyIGNjID0g
Y29uc3VtZSgpOwotICAgICAgICBpZiAoY2MgPT0gZW5kaW5nQ29kZVBvaW50IHx8IGNjID09IGtF
bmRPZkZpbGVNYXJrZXIpCi0gICAgICAgICAgICByZXR1cm4gQ1NTUGFyc2VyVG9rZW4oU3RyaW5n
VG9rZW4sIHJlZ2lzdGVyU3RyaW5nKG91dHB1dC50b1N0cmluZygpKSk7CisgICAgICAgIGlmIChj
YyA9PSBlbmRpbmdDb2RlUG9pbnQgfHwgY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgeworICAgICAg
ICAgICAgaWYgKGF1dG8gc3RyaW5nID0gb3V0cHV0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIENTU1BhcnNlclRva2VuKFN0cmluZ1Rva2VuLCByZWdpc3RlclN0cmluZygqc3Ry
aW5nKSk7CisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CiAgICAgICAgIGlmIChpc05l
d0xpbmUoY2MpKSB7CiAgICAgICAgICAgICByZWNvbnN1bWUoY2MpOwogICAgICAgICAgICAgcmV0
dXJuIENTU1BhcnNlclRva2VuKEJhZFN0cmluZ1Rva2VuKTsKQEAgLTY4MCwxMyArNjgzLDE5IEBA
IENTU1BhcnNlclRva2VuIENTU1Rva2VuaXplcjo6Y29uc3VtZVVybFRva2VuKCkKICAgICBTdHJp
bmdCdWlsZGVyIHJlc3VsdDsKICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICBVQ2hhciBjYyA9
IGNvbnN1bWUoKTsKLSAgICAgICAgaWYgKGNjID09ICcpJyB8fCBjYyA9PSBrRW5kT2ZGaWxlTWFy
a2VyKQotICAgICAgICAgICAgcmV0dXJuIENTU1BhcnNlclRva2VuKFVybFRva2VuLCByZWdpc3Rl
clN0cmluZyhyZXN1bHQudG9TdHJpbmcoKSkpOworICAgICAgICBpZiAoY2MgPT0gJyknIHx8IGNj
ID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJl
c3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHJldHVybiBDU1NQYXJzZXJUb2tlbihV
cmxUb2tlbiwgcmVnaXN0ZXJTdHJpbmcoKnN0cmluZykpOworICAgICAgICAgICAgQ1JBU0goKTsK
KyAgICAgICAgfQogCiAgICAgICAgIGlmIChpc0hUTUxTcGFjZShjYykpIHsKICAgICAgICAgICAg
IG1faW5wdXQuYWR2YW5jZVVudGlsTm9uV2hpdGVzcGFjZSgpOwotICAgICAgICAgICAgaWYgKGNv
bnN1bWVJZk5leHQoJyknKSB8fCBtX2lucHV0Lm5leHRJbnB1dENoYXIoKSA9PSBrRW5kT2ZGaWxl
TWFya2VyKQotICAgICAgICAgICAgICAgIHJldHVybiBDU1NQYXJzZXJUb2tlbihVcmxUb2tlbiwg
cmVnaXN0ZXJTdHJpbmcocmVzdWx0LnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgIGlmIChjb25z
dW1lSWZOZXh0KCcpJykgfHwgbV9pbnB1dC5uZXh0SW5wdXRDaGFyKCkgPT0ga0VuZE9mRmlsZU1h
cmtlcikgeworICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmlu
ZygpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUGFyc2VyVG9rZW4oVXJsVG9rZW4s
IHJlZ2lzdGVyU3RyaW5nKCpzdHJpbmcpKTsKKyAgICAgICAgICAgICAgICBDUkFTSCgpOworICAg
ICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApAQCAtNzkxLDcgKzgw
MCw5IEBAIFN0cmluZ1ZpZXcgQ1NTVG9rZW5pemVyOjpjb25zdW1lTmFtZSgpCiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgfQogICAgICAgICByZWNvbnN1bWUoY2MpOwotICAgICAgICBy
ZXR1cm4gcmVnaXN0ZXJTdHJpbmcocmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0
byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiByZWdpc3Rl
clN0cmluZygqc3RyaW5nKTsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9CiB9CiAKQEAgLTgxMSwx
MSArODIyLDE0IEBAIFVDaGFyMzIgQ1NTVG9rZW5pemVyOjpjb25zdW1lRXNjYXBlKCkKICAgICAg
ICAgfTsKICAgICAgICAgY29uc3VtZVNpbmdsZVdoaXRlc3BhY2VJZk5leHQoKTsKICAgICAgICAg
Ym9vbCBvayA9IGZhbHNlOwotICAgICAgICBVQ2hhcjMyIGNvZGVQb2ludCA9IGhleENoYXJzLnRv
U3RyaW5nKCkudG9VSW50U3RyaWN0KCZvaywgMTYpOwotICAgICAgICBBU1NFUlQob2spOwotICAg
ICAgICBpZiAoIWNvZGVQb2ludCB8fCAoMHhEODAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQg
PD0gMHhERkZGKSB8fCBjb2RlUG9pbnQgPiAweDEwRkZGRikKLSAgICAgICAgICAgIHJldHVybiBy
ZXBsYWNlbWVudENoYXJhY3RlcjsKLSAgICAgICAgcmV0dXJuIGNvZGVQb2ludDsKKyAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gaGV4Q2hhcnMudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgVUNo
YXIzMiBjb2RlUG9pbnQgPSBzdHJpbmctPnRvVUludFN0cmljdCgmb2ssIDE2KTsKKyAgICAgICAg
ICAgIEFTU0VSVChvayk7CisgICAgICAgICAgICBpZiAoIWNvZGVQb2ludCB8fCAoMHhEODAwIDw9
IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhERkZGKSB8fCBjb2RlUG9pbnQgPiAweDEwRkZG
RikKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVwbGFjZW1lbnRDaGFyYWN0ZXI7CisgICAgICAg
ICAgICByZXR1cm4gY29kZVBvaW50OworICAgICAgICB9CisgICAgICAgIENSQVNIKCk7CiAgICAg
fQogCiAgICAgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGF0YXNldERPTVN0cmluZ01hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RGF0YXNldERPTVN0cmluZ01hcC5jcHAKaW5kZXggZjJkODQyMC4uZDU2NjdiNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcApAQCAtNjUsNyArNjUsOSBAQCBz
dGF0aWMgU3RyaW5nIGNvbnZlcnRBdHRyaWJ1dGVOYW1lVG9Qcm9wZXJ0eU5hbWUoY29uc3QgU3Ry
aW5nJiBuYW1lKQogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBi
b29sIHByb3BlcnR5TmFtZU1hdGNoZXNBdHRyaWJ1dGVOYW1lKGNvbnN0IFN0cmluZyYgcHJvcGVy
dHlOYW1lLCBjb25zdCBTdHJpbmcmIGF0dHJpYnV0ZU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
aW5kZXggYTQzMjM5Ny4uNGY2YzdiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMjE5Nyw3
ICsyMTk3LDEwIEBAIHZvaWQgRWxlbWVudDo6Zm9ybWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVy
LCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQocyk7CiAgICAg
fQogCi0gICAgc3RybmNweShidWZmZXIsIHJlc3VsdC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCks
IGxlbmd0aCAtIDEpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQor
ICAgICAgICBzdHJuY3B5KGJ1ZmZlciwgc3RyaW5nLT51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAx
KTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3Bw
CmluZGV4IGJiYTY3OGEyLi43NTNkZjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0xNTIwLDcgKzE1
MjAsOSBAQCBTdHJpbmcgTm9kZTo6dGV4dENvbnRlbnQoYm9vbCBjb252ZXJ0QlJzVG9OZXdsaW5l
cykgY29uc3QKICAgICBTdHJpbmdCdWlsZGVyIGNvbnRlbnQ7CiAgICAgYm9vbCBpc051bGxTdHJp
bmcgPSB0cnVlOwogICAgIGFwcGVuZFRleHRDb250ZW50KHRoaXMsIGNvbnZlcnRCUnNUb05ld2xp
bmVzLCBpc051bGxTdHJpbmcsIGNvbnRlbnQpOwotICAgIHJldHVybiBpc051bGxTdHJpbmcgPyBT
dHJpbmcoKSA6IGNvbnRlbnQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBjb250
ZW50LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBpc051bGxTdHJpbmcgPyBTdHJpbmcoKSA6
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gTm9kZTo6c2V0
VGV4dENvbnRlbnQoY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtMTczMSw3ICsxNzMzLDEwIEBAIHZv
aWQgTm9kZTo6c2hvd05vZGUoY29uc3QgY2hhciogcHJlZml4KSBjb25zdAogICAgICAgICBTdHJp
bmdCdWlsZGVyIGF0dHJzOwogICAgICAgICBhcHBlbmRBdHRyaWJ1dGVEZXNjKHRoaXMsIGF0dHJz
LCBjbGFzc0F0dHIsICIgQ0xBU1M9Iik7CiAgICAgICAgIGFwcGVuZEF0dHJpYnV0ZURlc2ModGhp
cywgYXR0cnMsIHN0eWxlQXR0ciwgIiBTVFlMRT0iKTsKLSAgICAgICAgZnByaW50ZihzdGRlcnIs
ICIlcyVzXHQlcCAocmVuZGVyZXIgJXApICVzJXMlc1xuIiwgcHJlZml4LCBub2RlTmFtZSgpLnV0
ZjgoKS5kYXRhKCksIHRoaXMsIHJlbmRlcmVyKCksIGF0dHJzLnRvU3RyaW5nKCkudXRmOCgpLmRh
dGEoKSwgbmVlZHNTdHlsZVJlY2FsYygpID8gIiAobmVlZHMgc3R5bGUgcmVjYWxjKSIgOiAiIiwg
Y2hpbGROZWVkc1N0eWxlUmVjYWxjKCkgPyAiIChjaGlsZCBuZWVkcyBzdHlsZSByZWNhbGMpIiA6
ICIiKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYXR0cnMudG9TdHJpbmcoKSkKKyAgICAg
ICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMlc1x0JXAgKHJlbmRlcmVyICVwKSAlcyVzJXNcbiIs
IHByZWZpeCwgbm9kZU5hbWUoKS51dGY4KCkuZGF0YSgpLCB0aGlzLCByZW5kZXJlcigpLCBzdHJp
bmctPnV0ZjgoKS5kYXRhKCksIG5lZWRzU3R5bGVSZWNhbGMoKSA/ICIgKG5lZWRzIHN0eWxlIHJl
Y2FsYykiIDogIiIsIGNoaWxkTmVlZHNTdHlsZVJlY2FsYygpID8gIiAoY2hpbGQgbmVlZHMgc3R5
bGUgcmVjYWxjKSIgOiAiIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAg
ICAgfQogfQogCkBAIC0xODAzLDEyICsxODA4LDE5IEBAIHN0YXRpYyB2b2lkIHRyYXZlcnNlVHJl
ZUFuZE1hcmsoY29uc3QgU3RyaW5nJiBiYXNlSW5kZW50LCBjb25zdCBOb2RlKiByb290Tm9kZSwK
ICAgICAgICAgaW5kZW50LmFwcGVuZChiYXNlSW5kZW50KTsKICAgICAgICAgZm9yIChjb25zdCBO
b2RlKiB0bXBOb2RlID0gbm9kZTsgdG1wTm9kZSAmJiB0bXBOb2RlICE9IHJvb3ROb2RlOyB0bXBO
b2RlID0gdG1wTm9kZS0+cGFyZW50T3JTaGFkb3dIb3N0Tm9kZSgpKQogICAgICAgICAgICAgaW5k
ZW50LmFwcGVuZCgnXHQnKTsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICIlcyIsIGluZGVudC50
b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBpbmRl
bnQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMiLCBzdHJpbmct
PnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAg
ICAgICBub2RlLT5zaG93Tm9kZSgpOwogICAgICAgICBpbmRlbnQuYXBwZW5kKCdcdCcpOwogICAg
ICAgICBpZiAoIW5vZGUtPmlzU2hhZG93Um9vdCgpKSB7Ci0gICAgICAgICAgICBpZiAoU2hhZG93
Um9vdCogc2hhZG93Um9vdCA9IG5vZGUtPnNoYWRvd1Jvb3QoKSkKLSAgICAgICAgICAgICAgICB0
cmF2ZXJzZVRyZWVBbmRNYXJrKGluZGVudC50b1N0cmluZygpLCBzaGFkb3dSb290LCBtYXJrZWRO
b2RlMSwgbWFya2VkTGFiZWwxLCBtYXJrZWROb2RlMiwgbWFya2VkTGFiZWwyKTsKKyAgICAgICAg
ICAgIGlmIChTaGFkb3dSb290KiBzaGFkb3dSb290ID0gbm9kZS0+c2hhZG93Um9vdCgpKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gaW5kZW50LnRvU3RyaW5nKCkpCisgICAg
ICAgICAgICAgICAgICAgIHRyYXZlcnNlVHJlZUFuZE1hcmsoKnN0cmluZywgc2hhZG93Um9vdCwg
bWFya2VkTm9kZTEsIG1hcmtlZExhYmVsMSwgbWFya2VkTm9kZTIsIG1hcmtlZExhYmVsMik7Cisg
ICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBDUkFTSCgpOworICAgICAg
ICAgICAgfQogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1Bvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKaW5kZXgg
ODlhNTA2Zi4uYTUyMDE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCkBAIC0xNDE5LDcgKzE0
MTksMTAgQEAgdm9pZCBQb3NpdGlvbjo6Zm9ybWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1
bnNpZ25lZCBsZW5ndGgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQocyk7CiAgICAgfQog
Ci0gICAgc3RybmNweShidWZmZXIsIHJlc3VsdC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGxl
bmd0aCAtIDEpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAg
ICAgICBzdHJuY3B5KGJ1ZmZlciwgc3RyaW5nLT51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsK
KyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgUG9zaXRpb246OnNob3dBbmNo
b3JUeXBlQW5kT2Zmc2V0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9S
YW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCmluZGV4IGE1N2E1ZTIuLjE1
OTg3MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcApAQCAtOTQ5LDcgKzk0OSw5IEBAIFN0cmluZyBSYW5n
ZTo6dG9TdHJpbmcoKSBjb25zdAogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBSYW5n
ZTo6dG9IVE1MKCkgY29uc3QKQEAgLTE1MzUsNyArMTUzNywxMCBAQCB2b2lkIFJhbmdlOjpmb3Jt
YXRGb3JEZWJ1Z2dlcihjaGFyKiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3QKICAgICBl
bmRDb250YWluZXIoKS5mb3JtYXRGb3JEZWJ1Z2dlcihzLCBGb3JtYXRCdWZmZXJTaXplKTsKICAg
ICByZXN1bHQuYXBwZW5kKHMpOwogCi0gICAgc3RybmNweShidWZmZXIsIHJlc3VsdC50b1N0cmlu
ZygpLnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJl
c3VsdC50b1N0cmluZygpKQorICAgICAgICBzdHJuY3B5KGJ1ZmZlciwgc3RyaW5nLT51dGY4KCku
ZGF0YSgpLCBsZW5ndGggLSAxKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9s
bGVyLmNwcAppbmRleCBjNGQ4NWQ4Li5hNTAzOTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcApAQCAtMTEyLDcgKzExMiw5IEBA
IHN0YXRpYyBTdHJpbmcgdGhyb3R0bGluZ1JlYXNvbnNUb1N0cmluZyhPcHRpb25TZXQ8U2NyaXB0
ZWRBbmltYXRpb25Db250cm9sbGVyOjpUCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnfCcp
OwogICAgICAgICBidWlsZGVyLmFwcGVuZCh0aHJvdHRsaW5nUmVhc29uVG9TdHJpbmcocmVhc29u
KSk7CiAgICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
ZWN1cml0eUNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5j
cHAKaW5kZXggNGY4ZjFhOC4uMTQ4MjIxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1NlY3VyaXR5Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29u
dGV4dC5jcHAKQEAgLTE1Miw3ICsxNTIsMTAgQEAgU2FuZGJveEZsYWdzIFNlY3VyaXR5Q29udGV4
dDo6cGFyc2VTYW5kYm94UG9saWN5KGNvbnN0IFN0cmluZyYgcG9saWN5LCBTdHJpbmcmIGkKICAg
ICAgICAgICAgIHRva2VuRXJyb3JzLmFwcGVuZExpdGVyYWwoIiBhcmUgaW52YWxpZCBzYW5kYm94
IGZsYWdzLiIpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB0b2tlbkVycm9ycy5hcHBlbmRM
aXRlcmFsKCIgaXMgYW4gaW52YWxpZCBzYW5kYm94IGZsYWcuIik7Ci0gICAgICAgIGludmFsaWRU
b2tlbnNFcnJvck1lc3NhZ2UgPSB0b2tlbkVycm9ycy50b1N0cmluZygpOworICAgICAgICBpZiAo
YXV0byBzdHJpbmcgPSB0b2tlbkVycm9ycy50b1N0cmluZygpKQorICAgICAgICAgICAgaW52YWxp
ZFRva2Vuc0Vycm9yTWVzc2FnZSA9ICpzdHJpbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IENSQVNIKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIGZsYWdzOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCmluZGV4
IDczMTVkMTYuLmIzMjdmNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKQEAgLTExMyw3ICsxMTMsOSBAQCBT
dHJpbmcgVGV4dDo6d2hvbGVUZXh0KCkgY29uc3QKICAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsK
ICAgICBmb3IgKGNvbnN0IFRleHQqIHRleHQgPSBzdGFydFRleHQ7IHRleHQgIT0gb25lUGFzdEVu
ZFRleHQ7IHRleHQgPSBUZXh0Tm9kZVRyYXZlcnNhbDo6bmV4dFNpYmxpbmcoKnRleHQpKQogICAg
ICAgICByZXN1bHQuYXBwZW5kKHRleHQtPmRhdGEoKSk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBSZWZQdHI8VGV4dD4gVGV4dDo6
cmVwbGFjZVdob2xlVGV4dChjb25zdCBTdHJpbmcmIG5ld1RleHQpCkBAIC0yNDAsNyArMjQyLDEw
IEBAIHZvaWQgVGV4dDo6Zm9ybWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBs
ZW5ndGgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyInKTsKICAgICB9CiAKLSAgICBz
dHJuY3B5KGJ1ZmZlciwgcmVzdWx0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0g
MSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHN0
cm5jcHkoYnVmZmVyLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOworICAgIGVs
c2UKKyAgICAgICAgQ1JBU0goKTsKICAgICBidWZmZXJbbGVuZ3RoIC0gMV0gPSAnXDAnOwogfQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dE5vZGVUcmF2ZXJzYWwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHROb2RlVHJhdmVyc2FsLmNwcAppbmRleCBiNzhj
YTc5Li42ZDQxOGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dE5vZGVUcmF2
ZXJzYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0Tm9kZVRyYXZlcnNhbC5jcHAK
QEAgLTQyLDcgKzQyLDkgQEAgU3RyaW5nIGNvbnRlbnRzQXNTdHJpbmcoY29uc3QgQ29udGFpbmVy
Tm9kZSYgcm9vdCkKIHsKICAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKICAgICBhcHBlbmRDb250
ZW50cyhyb290LCByZXN1bHQpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIGNvbnRlbnRzQXNTdHJpbmcoY29uc3QgTm9k
ZSYgcm9vdCkKQEAgLTU5LDcgKzYxLDkgQEAgU3RyaW5nIGNoaWxkVGV4dENvbnRlbnQoY29uc3Qg
Q29udGFpbmVyTm9kZSYgcm9vdCkKICAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKICAgICBmb3Ig
KFRleHQqIHRleHQgPSBUZXh0Tm9kZVRyYXZlcnNhbDo6Zmlyc3RDaGlsZChyb290KTsgdGV4dDsg
dGV4dCA9IFRleHROb2RlVHJhdmVyc2FsOjpuZXh0U2libGluZygqdGV4dCkpCiAgICAgICAgIHJl
c3VsdC5hcHBlbmQodGV4dC0+ZGF0YSgpKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKaW5kZXggNjlkOGFmMi4uYWUxNmYyZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKQEAgLTEzODIsNyArMTM4
MiwxMCBAQCB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjphZGRCbG9ja1N0eWxlKGNvbnN0IFN0eWxl
Q2hhbmdlJiBzdHlsZUNoYW5nZSwgSFRNTEVsZW1lbgogICAgICAgICAgICAgY3NzVGV4dC5hcHBl
bmQoJyAnKTsKICAgICAgICAgY3NzVGV4dC5hcHBlbmQoZGVjbC0+YXNUZXh0KCkpOwogICAgIH0K
LSAgICBzZXROb2RlQXR0cmlidXRlKGJsb2NrLCBzdHlsZUF0dHIsIGNzc1RleHQudG9TdHJpbmco
KSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gY3NzVGV4dC50b1N0cmluZygpKQorICAgICAgICBz
ZXROb2RlQXR0cmlidXRlKGJsb2NrLCBzdHlsZUF0dHIsICpzdHJpbmcpOworICAgIGVsc2UKKyAg
ICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6YWRkSW5saW5lU3R5
bGVJZk5lZWRlZChFZGl0aW5nU3R5bGUqIHN0eWxlLCBOb2RlJiBzdGFydCwgTm9kZSYgZW5kLCBF
QWRkU3R5bGVkRWxlbWVudCBhZGRTdHlsZWRFbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGlu
Zy5jcHAKaW5kZXggZTc5YjY0Ni4uMzBjMTY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcu
Y3BwCkBAIC00MjksNyArNDI5LDkgQEAgU3RyaW5nIHN0cmluZ1dpdGhSZWJhbGFuY2VkV2hpdGVz
cGFjZShjb25zdCBTdHJpbmcmIHN0cmluZywgYm9vbCBzdGFydElzU3RhcnRPZlAKIAogICAgIHJl
YmFsYW5jZWRTdHJpbmcucmVzZXJ2ZUNhcGFjaXR5KGxlbmd0aCk7CiAgICAgcmViYWxhbmNlZFN0
cmluZy5hcHBlbmQoc3RyaW5nLCByZWJhbGFuY2VkU3RyaW5nLmxlbmd0aCgpLCBsZW5ndGggLSBy
ZWJhbGFuY2VkU3RyaW5nLmxlbmd0aCgpKTsKLSAgICByZXR1cm4gcmViYWxhbmNlZFN0cmluZy50
b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlYmFsYW5jZWRTdHJpbmcudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBp
c1RhYmxlU3RydWN0dXJlTm9kZShjb25zdCBOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9IVE1MSW50ZXJjaGFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9IVE1MSW50ZXJjaGFuZ2UuY3BwCmluZGV4IGIyMjM0M2IuLmNmODUyMzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSFRNTEludGVyY2hhbmdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0hUTUxJbnRlcmNoYW5nZS5jcHAKQEAgLTk1LDcgKzk1LDkgQEAg
U3RyaW5nIGNvbnZlcnRIVE1MVGV4dFRvSW50ZXJjaGFuZ2VGb3JtYXQoY29uc3QgU3RyaW5nJiBp
biwgY29uc3QgVGV4dCogbm9kZSkKICAgICAgICAgaSArPSBjb25zdW1lZDsKICAgICB9CiAKLSAg
ICByZXR1cm4gcy50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHMudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBB
Y2N1bXVsYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9y
LmNwcAppbmRleCA5MDY5NjdmLi42N2U3NmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L01hcmt1cEFjY3VtdWxhdG9yLmNwcApAQCAtMTMwLDcgKzEzMCw5IEBAIE1hcmt1cEFjY3VtdWxh
dG9yOjp+TWFya3VwQWNjdW11bGF0b3IoKSA9IGRlZmF1bHQ7CiBTdHJpbmcgTWFya3VwQWNjdW11
bGF0b3I6OnNlcmlhbGl6ZU5vZGVzKE5vZGUmIHRhcmdldE5vZGUsIEVDaGlsZHJlbk9ubHkgY2hp
bGRyZW5Pbmx5LCBWZWN0b3I8UXVhbGlmaWVkTmFtZT4qIHRhZ05hbWVzVG9Ta2lwKQogewogICAg
IHNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXModGFyZ2V0Tm9kZSwgY2hpbGRyZW5Pbmx5LCAw
LCB0YWdOYW1lc1RvU2tpcCk7Ci0gICAgcmV0dXJuIG1fbWFya3VwLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gbV9tYXJrdXAudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBNYXJrdXBBY2N1bXVsYXRvcjo6c2VyaWFs
aXplTm9kZXNXaXRoTmFtZXNwYWNlcyhOb2RlJiB0YXJnZXROb2RlLCBFQ2hpbGRyZW5Pbmx5IGNo
aWxkcmVuT25seSwgY29uc3QgTmFtZXNwYWNlcyogbmFtZXNwYWNlcywgVmVjdG9yPFF1YWxpZmll
ZE5hbWU+KiB0YWdOYW1lc1RvU2tpcCkKQEAgLTQ4MywxMSArNDg1LDE0IEBAIHZvaWQgTWFya3Vw
QWNjdW11bGF0b3I6OmdlbmVyYXRlVW5pcXVlUHJlZml4KFF1YWxpZmllZE5hbWUmIHByZWZpeGVk
TmFtZSwgY29uc3QKICAgICAgICAgYnVpbGRlci5jbGVhcigpOwogICAgICAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwoIk5TIik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKCsrbV9wcmVm
aXhMZXZlbCk7Ci0gICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGJ1aWxkZXIudG9B
dG9taWNTdHJpbmcoKTsKLSAgICAgICAgaWYgKCFuYW1lc3BhY2VzLmdldChuYW1lLmltcGwoKSkp
IHsKLSAgICAgICAgICAgIHByZWZpeGVkTmFtZS5zZXRQcmVmaXgobmFtZSk7Ci0gICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b0F0b21pY1N0cmluZygpKSB7CisgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUg
PSAqc3RyaW5nOworICAgICAgICAgICAgaWYgKCFuYW1lc3BhY2VzLmdldChuYW1lLmltcGwoKSkp
IHsKKyAgICAgICAgICAgICAgICBwcmVmaXhlZE5hbWUuc2V0UHJlZml4KG5hbWUpOworICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICBDUkFTSCgpOwogICAgIH0gd2hpbGUgKHRydWUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1RleHRJdGVyYXRvci5jcHAKaW5kZXggNjU3NGYxZS4uZjU0MzFlZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcApAQCAtMjY2NywxMiArMjY2NywxNSBAQCBTdHJp
bmcgcGxhaW5UZXh0KGNvbnN0IFJhbmdlKiByLCBUZXh0SXRlcmF0b3JCZWhhdmlvciBkZWZhdWx0
QmVoYXZpb3IsIGJvb2wgaXNEaQogICAgIGlmICghYnVmZmVyTGVuZ3RoKQogICAgICAgICByZXR1
cm4gZW1wdHlTdHJpbmcoKTsKIAotICAgIFN0cmluZyByZXN1bHQgPSBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAg
IFN0cmluZyByZXN1bHQgPSAqc3RyaW5nOwogCi0gICAgaWYgKGlzRGlzcGxheVN0cmluZykKLSAg
ICAgICAgci0+b3duZXJEb2N1bWVudCgpLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2Rpbmco
cmVzdWx0KTsKKyAgICAgICAgaWYgKGlzRGlzcGxheVN0cmluZykKKyAgICAgICAgICAgIHItPm93
bmVyRG9jdW1lbnQoKS5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKHJlc3VsdCk7CiAK
LSAgICByZXR1cm4gcmVzdWx0OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICBD
UkFTSCgpOwogfQogCiBTdHJpbmcgcGxhaW5UZXh0UmVwbGFjaW5nTm9CcmVha1NwYWNlKGNvbnN0
IFJhbmdlKiByYW5nZSwgVGV4dEl0ZXJhdG9yQmVoYXZpb3IgZGVmYXVsdEJlaGF2aW9yLCBib29s
IGlzRGlzcGxheVN0cmluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3Bw
CmluZGV4IGZkNzkwNjYuLmJlZTYzZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdD
b21tYW5kLmNwcApAQCAtNDI1LDcgKzQyNSw5IEBAIFJlZlB0cjxEYXRhVHJhbnNmZXI+IFR5cGlu
Z0NvbW1hbmQ6OmlucHV0RXZlbnREYXRhVHJhbnNmZXIoKSBjb25zdAogCiAgICAgU3RyaW5nQnVp
bGRlciBodG1sVGV4dDsKICAgICBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kQ2hhcmFjdGVyc1Jl
cGxhY2luZ0VudGl0aWVzKGh0bWxUZXh0LCBtX2N1cnJlbnRUZXh0VG9JbnNlcnQsIDAsIG1fY3Vy
cmVudFRleHRUb0luc2VydC5sZW5ndGgoKSwgRW50aXR5TWFza0luSFRNTFBDREFUQSk7Ci0gICAg
cmV0dXJuIERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9ySW5wdXRFdmVudChtX2N1cnJlbnRUZXh0VG9J
bnNlcnQsIGh0bWxUZXh0LnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGh0bWxU
ZXh0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvcklu
cHV0RXZlbnQobV9jdXJyZW50VGV4dFRvSW5zZXJ0LCAqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwog
fQogCiB2b2lkIFR5cGluZ0NvbW1hbmQ6OmRpZEFwcGx5Q29tbWFuZCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcAppbmRleCAxODY1MGFiLi43M2FjY2M3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKQEAgLTcwNyw3
ICs3MDcsMTAgQEAgdm9pZCBWaXNpYmxlU2VsZWN0aW9uOjpmb3JtYXRGb3JEZWJ1Z2dlcihjaGFy
KiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFwcGVuZChz
KTsKICAgICB9CiAKLSAgICBzdHJuY3B5KGJ1ZmZlciwgcmVzdWx0LnRvU3RyaW5nKCkudXRmOCgp
LmRhdGEoKSwgbGVuZ3RoIC0gMSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3Ry
aW5nKCkpCisgICAgICAgIHN0cm5jcHkoYnVmZmVyLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCksIGxl
bmd0aCAtIDEpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBWaXNpYmxl
U2VsZWN0aW9uOjpzaG93VHJlZUZvclRoaXMoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tCmluZGV4IGY0NDU2MTYuLmU5ODY0NGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0KQEAgLTMxOSw3
ICszMTksOSBAQCBzdGF0aWMgU3RyaW5nIGRhdGFEZXRlY3RvclN0cmluZ0ZvclBhdGgoTlNJbmRl
eFBhdGggKnBhdGgpCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKCh1bnNpZ25l
ZCBsb25nKVtwYXRoIGluZGV4QXRQb3NpdGlvbjowXSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIu
YXBwZW5kKCcvJyk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKCh1bnNpZ25l
ZCBsb25nKVtwYXRoIGluZGV4QXRQb3NpdGlvbjoxXSk7Ci0gICAgICAgIHJldHVybiBzdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFT
SCgpOwogICAgIH0KICAgICBkZWZhdWx0OiB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5n
QnVpbGRlcjsKQEAgLTMyOSw3ICszMzEsOSBAQCBzdGF0aWMgU3RyaW5nIGRhdGFEZXRlY3RvclN0
cmluZ0ZvclBhdGgoTlNJbmRleFBhdGggKnBhdGgpCiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZE51bWJlcigodW5zaWduZWQgbG9uZylbcGF0aCBpbmRleEF0UG9zaXRpb246aV0pOwog
ICAgICAgICB9CiAKLSAgICAgICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAg
ICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIH0KIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5t
bSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbQppbmRleCA2
YjEzOTdlLi41ZDMyOTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29h
L0hUTUxDb252ZXJ0ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1M
Q29udmVydGVyLm1tCkBAIC0yMjU0LDcgKzIyNTQsMTAgQEAgdm9pZCBIVE1MQ29udmVydGVyOjpf
cHJvY2Vzc1RleHQoQ2hhcmFjdGVyRGF0YSYgY2hhcmFjdGVyRGF0YSkKICAgICAgICAgfQogICAg
ICAgICBpZiAod2FzU3BhY2UpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwotICAg
ICAgICBvdXRwdXRTdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIG91dHB1dFN0cmluZyA9
ICpzdHJpbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAg
ICAgaWYgKG91dHB1dFN0cmluZy5sZW5ndGgoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3Mv
RWRpdG9ySU9TLm1tCmluZGV4IDU2MjEzNTUuLjJmZTU0NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2lvcy9FZGl0b3JJT1MubW0KQEAgLTI4NCw3ICsyODQsMTAgQEAgdm9pZCBFZGl0b3I6OnNl
dERpY3RhdGlvblBocmFzZXNBc0NoaWxkT2ZFbGVtZW50KGNvbnN0IFZlY3RvcjxWZWN0b3I8U3Ry
aW5nPj4mIGQKICAgICBmb3IgKGF1dG8mIGludGVycHJldGF0aW9ucyA6IGRpY3RhdGlvblBocmFz
ZXMpCiAgICAgICAgIGRpY3RhdGlvblBocmFzZXNCdWlsZGVyLmFwcGVuZChpbnRlcnByZXRhdGlv
bnNbMF0pOwogCi0gICAgZWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVGcmFnbWVudEZyb21UZXh0
KCpjb250ZXh0LCBkaWN0YXRpb25QaHJhc2VzQnVpbGRlci50b1N0cmluZygpKSk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gZGljdGF0aW9uUGhyYXNlc0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgZWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpjb250ZXh0LCAq
c3RyaW5nKSk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgLy8gV2UgbmVlZCBh
IGxheW91dCBpbiBvcmRlciB0byBhZGQgbWFya2VycyBiZWxvdy4KICAgICBkb2N1bWVudCgpLnVw
ZGF0ZUxheW91dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCmluZGV4IDU1NTFlZWMuLmQ1
Njg4MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKQEAgLTI5MCw3ICsyOTAsMTAgQEAg
dm9pZCBTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6d3JhcFdpdGhOb2RlKE5vZGUmIG5vZGUsIGJv
b2wgY29udmVydEJsb2Nrc1RvSW5saW4KICAgICAgICAgYXBwZW5kRWxlbWVudChtYXJrdXAsIGRv
d25jYXN0PEVsZW1lbnQ+KG5vZGUpLCBjb252ZXJ0QmxvY2tzVG9JbmxpbmVzICYmIGlzQmxvY2so
Jm5vZGUpLCByYW5nZUZ1bGx5U2VsZWN0c05vZGUpOwogICAgIGVsc2UKICAgICAgICAgYXBwZW5k
U3RhcnRNYXJrdXAobWFya3VwLCBub2RlLCBudWxscHRyKTsKLSAgICBtX3JldmVyc2VkUHJlY2Vk
aW5nTWFya3VwLmFwcGVuZChtYXJrdXAudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gbWFya3VwLnRvU3RyaW5nKCkpCisgICAgICAgIG1fcmV2ZXJzZWRQcmVjZWRpbmdNYXJrdXAu
YXBwZW5kKCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICBhcHBlbmRF
bmRUYWcobm9kZSk7CiAgICAgaWYgKG1fbm9kZXMpCiAgICAgICAgIG1fbm9kZXMtPmFwcGVuZCgm
bm9kZSk7CkBAIC0zMDAsNyArMzAzLDEwIEBAIHZvaWQgU3R5bGVkTWFya3VwQWNjdW11bGF0b3I6
OndyYXBXaXRoU3R5bGVOb2RlKFN0eWxlUHJvcGVydGllcyogc3R5bGUsIERvY3VtZW50CiB7CiAg
ICAgU3RyaW5nQnVpbGRlciBvcGVuVGFnOwogICAgIGFwcGVuZFN0eWxlTm9kZU9wZW5UYWcob3Bl
blRhZywgc3R5bGUsIGRvY3VtZW50LCBpc0Jsb2NrKTsKLSAgICBtX3JldmVyc2VkUHJlY2VkaW5n
TWFya3VwLmFwcGVuZChvcGVuVGFnLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IG9wZW5UYWcudG9TdHJpbmcoKSkKKyAgICAgICAgbV9yZXZlcnNlZFByZWNlZGluZ01hcmt1cC5h
cHBlbmQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIGFwcGVuZFN0
cmluZyhzdHlsZU5vZGVDbG9zZVRhZyhpc0Jsb2NrKSk7CiB9CiAKQEAgLTMzNCw3ICszNDAsOSBA
QCBTdHJpbmcgU3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OnRha2VSZXN1bHRzKCkKICAgICBjb25j
YXRlbmF0ZU1hcmt1cChyZXN1bHQpOwogCiAgICAgLy8gV2UgcmVtb3ZlICdcMCcgY2hhcmFjdGVy
cyBiZWNhdXNlIHRoZXkgYXJlIG5vdCB2aXNpYmx5IHJlbmRlcmVkIHRvIHRoZSB1c2VyLgotICAg
IHJldHVybiByZXN1bHQudG9TdHJpbmcoKS5yZXBsYWNlV2l0aExpdGVyYWwoJ1wwJywgIiIpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
c3RyaW5nLT5yZXBsYWNlV2l0aExpdGVyYWwoJ1wwJywgIiIpOworICAgIENSQVNIKCk7CiB9CiAK
IHZvaWQgU3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZFRleHQoU3RyaW5nQnVpbGRlciYg
b3V0LCBjb25zdCBUZXh0JiB0ZXh0KQpAQCAtMzU5LDcgKzM2NywxMCBAQCB2b2lkIFN0eWxlZE1h
cmt1cEFjY3VtdWxhdG9yOjphcHBlbmRUZXh0KFN0cmluZ0J1aWxkZXImIG91dCwgY29uc3QgVGV4
dCYgdGV4dCkKICAgICAgICAgU3RyaW5nIGNvbnRlbnQgPSB1c2VSZW5kZXJlZFRleHQgPyByZW5k
ZXJlZFRleHQodGV4dCwgbV9yYW5nZSkgOiBzdHJpbmdWYWx1ZUZvclJhbmdlKHRleHQsIG1fcmFu
Z2UpOwogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1ZmZlcjsKICAgICAgICAgYXBwZW5kQ2hhcmFj
dGVyc1JlcGxhY2luZ0VudGl0aWVzKGJ1ZmZlciwgY29udGVudCwgMCwgY29udGVudC5sZW5ndGgo
KSwgRW50aXR5TWFza0luUENEQVRBKTsKLSAgICAgICAgb3V0LmFwcGVuZChjb252ZXJ0SFRNTFRl
eHRUb0ludGVyY2hhbmdlRm9ybWF0KGJ1ZmZlci50b1N0cmluZygpLCAmdGV4dCkpOworICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWZmZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIG91dC5h
cHBlbmQoY29udmVydEhUTUxUZXh0VG9JbnRlcmNoYW5nZUZvcm1hdCgqc3RyaW5nLCAmdGV4dCkp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIGlmICh3
cmFwcGluZ1NwYW4pCkBAIC04NzMsNyArODg0LDkgQEAgU3RyaW5nIHNhbml0aXplZE1hcmt1cEZv
ckZyYWdtZW50SW5Eb2N1bWVudChSZWY8RG9jdW1lbnRGcmFnbWVudD4mJiBmcmFnbWVudCwgRG8K
ICAgICAgICAgICAgICJ4bWxucz1cImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDBcIj4i
KTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQocmVzdWx0KTsKICAgICAgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCI8L2h0bWw+Iik7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7
CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIHJldHVy
biByZXN1bHQ7CkBAIC0xMDkyLDcgKzExMDUsOSBAQCBTdHJpbmcgdXJsVG9NYXJrdXAoY29uc3Qg
VVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUpCiAgICAgbWFya3VwLmFwcGVuZExpdGVyYWwo
IlwiPiIpOwogICAgIE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRDaGFyYWN0ZXJzUmVwbGFjaW5n
RW50aXRpZXMobWFya3VwLCB0aXRsZSwgMCwgdGl0bGUubGVuZ3RoKCksIEVudGl0eU1hc2tJblBD
REFUQSk7CiAgICAgbWFya3VwLmFwcGVuZExpdGVyYWwoIjwvYT4iKTsKLSAgICByZXR1cm4gbWFy
a3VwLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWFya3VwLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIEV4Y2VwdGlvbk9y
PFJlZjxEb2N1bWVudEZyYWdtZW50Pj4gY3JlYXRlRnJhZ21lbnRGb3JJbm5lck91dGVySFRNTChF
bGVtZW50JiBjb250ZXh0RWxlbWVudCwgY29uc3QgU3RyaW5nJiBtYXJrdXAsIFBhcnNlckNvbnRl
bnRQb2xpY3kgcGFyc2VyQ29udGVudFBvbGljeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Zp
bGVSZWFkZXJMb2FkZXIuY3BwCmluZGV4IDlhMjIzNGYuLjI4MzQ1YWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcApAQCAtMzM3LDIwICszMzcsMjAgQEAg
dm9pZCBGaWxlUmVhZGVyTG9hZGVyOjpjb252ZXJ0VG9EYXRhVVJMKCkKICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJkYXRhOiIpOwogCi0gICAg
aWYgKCFtX2J5dGVzTG9hZGVkKSB7Ci0gICAgICAgIG1fc3RyaW5nUmVzdWx0ID0gYnVpbGRlci50
b1N0cmluZygpOwotICAgICAgICByZXR1cm47CisgICAgaWYgKG1fYnl0ZXNMb2FkZWQpIHsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQobV9kYXRhVHlwZSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiO2Jhc2U2NCwiKTsKKworICAgICAgICBWZWN0b3I8Y2hhcj4gb3V0OworICAgICAg
ICBiYXNlNjRFbmNvZGUobV9yYXdEYXRhLT5kYXRhKCksIG1fYnl0ZXNMb2FkZWQsIG91dCk7Cisg
ICAgICAgIG91dC5hcHBlbmQoJ1wwJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG91dC5kYXRh
KCkpOwogICAgIH0KIAotICAgIGJ1aWxkZXIuYXBwZW5kKG1fZGF0YVR5cGUpOwotICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiO2Jhc2U2NCwiKTsKLQotICAgIFZlY3RvcjxjaGFyPiBvdXQ7Ci0g
ICAgYmFzZTY0RW5jb2RlKG1fcmF3RGF0YS0+ZGF0YSgpLCBtX2J5dGVzTG9hZGVkLCBvdXQpOwot
ICAgIG91dC5hcHBlbmQoJ1wwJyk7Ci0gICAgYnVpbGRlci5hcHBlbmQob3V0LmRhdGEoKSk7Ci0K
LSAgICBtX3N0cmluZ1Jlc3VsdCA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIG1fc3RyaW5nUmVzdWx0ID0gKnN0
cmluZzsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgRmlsZVJlYWRlckxv
YWRlcjo6aXNDb21wbGV0ZWQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9ET01Ub2tlbkxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3Bw
CmluZGV4IGM5NWY5NjkuLmRiNDI5NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RE9NVG9rZW5MaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5j
cHAKQEAgLTI3MywxMCArMjczLDEzIEBAIHZvaWQgRE9NVG9rZW5MaXN0Ojp1cGRhdGVBc3NvY2lh
dGVkQXR0cmlidXRlRnJvbVRva2VucygpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcp
OwogICAgICAgICBidWlsZGVyLmFwcGVuZCh0b2tlbik7CiAgICAgfQotICAgIEF0b21pY1N0cmlu
ZyBzZXJpYWxpemVkVmFsdWUgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpKSB7CisgICAgICAgIEF0b21pY1N0
cmluZyBzZXJpYWxpemVkVmFsdWUgPSAqc3RyaW5nOwogCi0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4g
aW5BdHRyaWJ1dGVVcGRhdGUobV9pblVwZGF0ZUFzc29jaWF0ZWRBdHRyaWJ1dGVGcm9tVG9rZW5z
LCB0cnVlKTsKLSAgICBtX2VsZW1lbnQuc2V0QXR0cmlidXRlKG1fYXR0cmlidXRlTmFtZSwgc2Vy
aWFsaXplZFZhbHVlKTsKKyAgICAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaW5BdHRyaWJ1dGVVcGRh
dGUobV9pblVwZGF0ZUFzc29jaWF0ZWRBdHRyaWJ1dGVGcm9tVG9rZW5zLCB0cnVlKTsKKyAgICAg
ICAgbV9lbGVtZW50LnNldEF0dHJpYnV0ZShtX2F0dHJpYnV0ZU5hbWUsIHNlcmlhbGl6ZWRWYWx1
ZSk7CisgICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIFZlY3RvcjxBdG9taWNTdHJp
bmc+JiBET01Ub2tlbkxpc3Q6OnRva2VucygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0VtYWlsSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5
cGUuY3BwCmluZGV4IGI5M2UxMmIuLjU4MzZjN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJ
bnB1dFR5cGUuY3BwCkBAIC0xMDQsNyArMTA0LDkgQEAgU3RyaW5nIEVtYWlsSW5wdXRUeXBlOjpz
YW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcG9zZWRWYWx1ZSkgY29uc3QKICAgICAgICAg
ICAgIHN0cmlwcGVkVmFsdWUuYXBwZW5kKCcsJyk7CiAgICAgICAgIHN0cmlwcGVkVmFsdWUuYXBw
ZW5kKHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhhZGRyZXNzZXNbaV0pKTsKICAg
ICB9Ci0gICAgcmV0dXJuIHN0cmlwcGVkVmFsdWUudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBzdHJpcHBlZFZhbHVlLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IDNlNTVhMDUuLmZkYzQ5YzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtNDY3LDcgKzQ2Nyw5IEBAIFN0cmluZyBGaWxl
SW5wdXRUeXBlOjpkZWZhdWx0VG9vbFRpcCgpIGNvbnN0CiAgICAgICAgIGlmIChpICE9IGxpc3RT
aXplIC0gMSkKICAgICAgICAgICAgIG5hbWVzLmFwcGVuZCgnXG4nKTsKICAgICB9Ci0gICAgcmV0
dXJuIG5hbWVzLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbmFtZXMudG9TdHJp
bmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwCmluZGV4IDBmNWI3NzUuLjFhMjlhNDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwCkBAIC0zMTIsNyArMzEyLDkgQEAg
c3RhdGljIGlubGluZSBTdHJpbmcgZm9ybVNpZ25hdHVyZShjb25zdCBIVE1MRm9ybUVsZW1lbnQm
IGZvcm0pCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGFjdGlvblVSTC5zdHJpbmcoKSk7CiAKICAg
ICByZWNvcmRGb3JtU3RydWN0dXJlKGZvcm0sIGJ1aWxkZXIpOwotICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBBdG9taWNTdHJpbmcg
Rm9ybUtleUdlbmVyYXRvcjo6Zm9ybUtleShjb25zdCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0
aFN0YXRlJiBjb250cm9sKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5j
aG9yRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNw
cAppbmRleCA3MTUyMzE3Li5hNzAyNmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNo
b3JFbGVtZW50LmNwcApAQCAtNDAwLDEwICs0MDAsMTQgQEAgdm9pZCBIVE1MQW5jaG9yRWxlbWVu
dDo6aGFuZGxlQ2xpY2soRXZlbnQmIGV2ZW50KQogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIFN0cmluZ0J1aWxkZXIgdXJsOwotICAgIHVybC5hcHBlbmQoc3RyaXBMZWFk
aW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24o
aHJlZkF0dHIpKSk7Ci0gICAgYXBwZW5kU2VydmVyTWFwTW91c2VQb3NpdGlvbih1cmwsIGV2ZW50
KTsKLSAgICBVUkwgY29tcGxldGVkVVJMID0gZG9jdW1lbnQoKS5jb21wbGV0ZVVSTCh1cmwudG9T
dHJpbmcoKSk7CisgICAgVVJMIGNvbXBsZXRlZFVSTCA9IGRvY3VtZW50KCkuY29tcGxldGVVUkwo
WyZdICgpIHsKKyAgICAgICAgU3RyaW5nQnVpbGRlciB1cmw7CisgICAgICAgIHVybC5hcHBlbmQo
c3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJv
bml6YXRpb24oaHJlZkF0dHIpKSk7CisgICAgICAgIGFwcGVuZFNlcnZlck1hcE1vdXNlUG9zaXRp
b24odXJsLCBldmVudCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHVybC50b1N0cmluZygp
KQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CisgICAgfSgp
KTsKIAogICAgIFN0cmluZyBkb3dubG9hZEF0dHJpYnV0ZTsKICNpZiBFTkFCTEUoRE9XTkxPQURf
QVRUUklCVVRFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAppbmRl
eCA2NjRlZGYwLi5iNjdiNGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
YW52YXNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmNwcApAQCAtMzM2LDggKzMzNiwxMSBAQCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqIEhU
TUxDYW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0MmQoY29uc3QgU3RyaW5nJiB0eXBlKQogICAg
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIlRvdGFsIGNhbnZhcyBtZW1vcnkgdXNl
IGV4Y2VlZHMgdGhlIG1heGltdW0gbGltaXQgKCIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZE51bWJlcihtYXhBY3RpdmVQaXhlbE1lbW9yeSgpIC8gMTAyNCAvIDEwMjQpOwogICAgICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiBNQikuIik7Ci0gICAgICAgIGRvY3VtZW50
KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2Fy
bmluZywgc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkgewor
ICAgICAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpK
UywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAqc3RyaW5nKTsKKyAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgICAgICB9CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgbV9jb250
ZXh0ID0gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjcmVhdGUoKnRoaXMsIGRvY3VtZW50KCku
aW5RdWlya3NNb2RlKCksIHVzZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSk7CkBAIC04ODks
OCArODkyLDExIEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUltYWdlQnVmZmVyKCkg
Y29uc3QKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJDYW52YXMgYXJlYSBl
eGNlZWRzIHRoZSBtYXhpbXVtIGxpbWl0ICh3aWR0aCAqIGhlaWdodCA+ICIpOwogICAgICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlcihtYXhDYW52YXNBcmVhKTsKICAgICAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpLiIpOwotICAgICAgICBkb2N1bWVudCgpLmFkZENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIHN0cmlu
Z0J1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgICAgICBkb2N1bWVu
dCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldh
cm5pbmcsICpzdHJpbmcpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAg
IENSQVNIKCk7CiAgICAgfQogICAgIAogICAgIC8vIE1ha2Ugc3VyZSB3ZSBkb24ndCB1c2UgbW9y
ZSBwaXhlbCBtZW1vcnkgdGhhbiB0aGUgc3lzdGVtIGNhbiBzdXBwb3J0LgpAQCAtOTAwLDggKzkw
NiwxMSBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcigpIGNvbnN0
CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiVG90YWwgY2FudmFzIG1lbW9y
eSB1c2UgZXhjZWVkcyB0aGUgbWF4aW11bSBsaW1pdCAoIik7CiAgICAgICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kTnVtYmVyKG1heEFjdGl2ZVBpeGVsTWVtb3J5KCkgLyAxMDI0IC8gMTAyNCk7CiAg
ICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIE1CKS4iKTsKLSAgICAgICAgZG9j
dW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVs
OjpXYXJuaW5nLCBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOwotICAgICAgICByZXR1cm47Cisg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkgeworICAg
ICAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywg
TWVzc2FnZUxldmVsOjpXYXJuaW5nLCAqc3RyaW5nKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIGlmICghd2lkdGgoKSB8fCAh
aGVpZ2h0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5jcHAKaW5kZXggOGQ2
YzM0Ny4uYzM1YTY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9udEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVtZW50LmNwcApA
QCAtMTExLDEwICsxMTEsMTMgQEAgc3RhdGljIGJvb2wgcGFyc2VGb250U2l6ZShjb25zdCBDaGFy
YWN0ZXJUeXBlKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIGludCYKICAgICAvLyBTdGVw
IDgKICAgICBpbnQgdmFsdWU7CiAKKyAgICBpZiAoZGlnaXRzLmZhaWxlZCgpKQorICAgICAgICBD
UkFTSCgpOworCiAgICAgaWYgKGRpZ2l0cy5pczhCaXQoKSkKLSAgICAgICAgdmFsdWUgPSBjaGFy
YWN0ZXJzVG9JbnRTdHJpY3QoZGlnaXRzLmNoYXJhY3RlcnM4KCksIGRpZ2l0cy5sZW5ndGgoKSk7
CisgICAgICAgIHZhbHVlID0gY2hhcmFjdGVyc1RvSW50U3RyaWN0KCpkaWdpdHMuY2hhcmFjdGVy
czgoKSwgZGlnaXRzLmxlbmd0aCgpKTsKICAgICBlbHNlCi0gICAgICAgIHZhbHVlID0gY2hhcmFj
dGVyc1RvSW50U3RyaWN0KGRpZ2l0cy5jaGFyYWN0ZXJzMTYoKSwgZGlnaXRzLmxlbmd0aCgpKTsK
KyAgICAgICAgdmFsdWUgPSBjaGFyYWN0ZXJzVG9JbnRTdHJpY3QoKmRpZ2l0cy5jaGFyYWN0ZXJz
MTYoKSwgZGlnaXRzLmxlbmd0aCgpKTsKIAogICAgIC8vIFN0ZXAgOQogICAgIGlmIChtb2RlID09
IFJlbGF0aXZlUGx1cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdl
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCmlu
ZGV4IDRmNjU5N2MuLmEyZTFjMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmNwcApAQCAtNDc0LDcgKzQ3NCw5IEBAIFN0cmluZyBIVE1MSW1hZ2VFbGVtZW50Ojpjb21w
bGV0ZVVSTHNJbkF0dHJpYnV0ZVZhbHVlKGNvbnN0IFVSTCYgYmFzZSwgY29uc3QgQXR0CiAgICAg
ICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgndycpOwogICAgICAgICAgICAgfQogICAgICAgICB9
Ci0gICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgcmV0dXJuIEhUTUxFbGVtZW50Ojpjb21wbGV0ZVVS
THNJbkF0dHJpYnV0ZVZhbHVlKGJhc2UsIGF0dHJpYnV0ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA1MjFmY2EyLi43MjE0NDZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTIzMiw5ICsyMzIsMTIgQEAgc3Rh
dGljIFN0cmluZyBhY3Rpb25OYW1lKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6RGVsYXllZEFjdGlv
blR5cGUgYWN0aW9uKQogCiAjdW5kZWYgQUNUSU9OCiAKLSAgICBTdHJpbmcgbmFtZSA9IGFjdGlv
bkJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBBU1NFUlQoIW5hbWUuaXNFbXB0eSgpKTsKLSAgICBy
ZXR1cm4gbmFtZTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBhY3Rpb25CdWlsZGVyLnRvU3RyaW5n
KCkpIHsKKyAgICAgICAgU3RyaW5nIG5hbWUgPSAqc3RyaW5nOworICAgICAgICBBU1NFUlQoIW5h
bWUuaXNFbXB0eSgpKTsKKyAgICAgICAgcmV0dXJuIG5hbWU7CisgICAgfQorICAgIENSQVNIKCk7
CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9u
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcApp
bmRleCA5ZjZkYWQyLi5mYTk4YWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPcHRpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25F
bGVtZW50LmNwcApAQCAtMzQ5LDcgKzM0OSw5IEBAIFN0cmluZyBIVE1MT3B0aW9uRWxlbWVudDo6
Y29sbGVjdE9wdGlvbklubmVyVGV4dCgpIGNvbnN0CiAgICAgICAgIGVsc2UKICAgICAgICAgICAg
IG5vZGUgPSBOb2RlVHJhdmVyc2FsOjpuZXh0KCpub2RlLCB0aGlzKTsKICAgICB9Ci0gICAgcmV0
dXJuIHRleHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0ZXh0LnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQuY3BwCmluZGV4IDU4ZjkxYWEuLjNhZjM0NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC0xNDMsNyArMTQzLDkg
QEAgU3RyaW5nIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzdHJpcHBlZFBsYWNlaG9sZGVy
KCkgY29uc3QKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBzdHJpcHBlZC5hcHBlbmQo
Y2hhcmFjdGVyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN0cmlwcGVkLnRvU3RyaW5nKCk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gc3RyaXBwZWQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpz
dHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIGJvb2wgaXNOb3RMaW5lQnJlYWsoVUNo
YXIgY2gpIHsgcmV0dXJuIGNoICE9IG5ld2xpbmVDaGFyYWN0ZXIgJiYgY2ggIT0gY2FycmlhZ2VS
ZXR1cm47IH0KQEAgLTU1Miw3ICs1NTQsOSBAQCBzdGF0aWMgU3RyaW5nIGlubmVyVGV4dFZhbHVl
RnJvbShUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQmIGlubmVyVGV4dCkKICAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoZG93bmNhc3Q8VGV4dD4oKm5vZGUpLmRhdGEoKSk7CiAgICAgfQogICAg
IHN0cmlwVHJhaWxpbmdOZXdsaW5lKHJlc3VsdCk7Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmlu
ZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50OjpzZXRJbm5lclRleHRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQpAQCAtNzM2
LDcgKzc0MCw5IEBAIFN0cmluZyBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6dmFsdWVXaXRo
SGFyZExpbmVCcmVha3MoKSBjb25zdAogICAgICAgICAgICAgZ2V0TmV4dFNvZnRCcmVhayhsaW5l
LCBicmVha05vZGUsIGJyZWFrT2Zmc2V0KTsKICAgICB9CiAgICAgc3RyaXBUcmFpbGluZ05ld2xp
bmUocmVzdWx0KTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50KiBlbmNsb3NpbmdUZXh0
Rm9ybUNvbnRyb2woY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVk
aWFEb2N1bWVudC5jcHAKaW5kZXggMTE5MzQwZi4uNjk3NzEyMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L01lZGlhRG9jdW1lbnQuY3BwCkBAIC0xMjEsNyArMTIxLDEwIEBAIHZvaWQgTWVkaWFEb2N1bWVu
dFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQogI2lmIFBMQVRGT1JNKElPUykKICAg
ICAgICAgZWxlbWVudFN0eWxlLmFwcGVuZExpdGVyYWwoIndpZHRoOiAxMDAlOyBoZWlnaHQ6IGF1
dG87Iik7CiAjZW5kaWYKLSAgICAgICAgdmlkZW9FbGVtZW50LT5zZXRBdHRyaWJ1dGUoc3R5bGVB
dHRyLCBlbGVtZW50U3R5bGUudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IGVsZW1lbnRTdHlsZS50b1N0cmluZygpKQorICAgICAgICAgICAgdmlkZW9FbGVtZW50LT5zZXRB
dHRyaWJ1dGUoc3R5bGVBdHRyLCAqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
Q1JBU0goKTsKICAgICB9CiAKICAgICBib2R5LT5hcHBlbmRDaGlsZCh2aWRlb0VsZW1lbnQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKaW5kZXggNWNkNzkw
NS4uNmY0ZTBmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRT
ZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24u
Y3BwCkBAIC04Niw3ICs4Niw5IEBAIHN0YXRpYyBTdHJpbmcgcmVzdHJpY3Rpb25OYW1lKE1lZGlh
RWxlbWVudFNlc3Npb246OkJlaGF2aW9yUmVzdHJpY3Rpb25zIHJlc3RyaWN0CiAgICAgQ0FTRShJ
bnZpc2libGVBdXRvcGxheU5vdFBlcm1pdHRlZCk7CiAgICAgQ0FTRShPdmVycmlkZVVzZXJHZXN0
dXJlUmVxdWlyZW1lbnRGb3JNYWluQ29udGVudCk7CiAKLSAgICByZXR1cm4gcmVzdHJpY3Rpb25C
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdHJpY3Rpb25CdWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUZyYWdtZW50
VVJJUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFGcmFnbWVudFVSSVBhcnNl
ci5jcHAKaW5kZXggZTdhNTE2ZS4uMzA1YjY2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9NZWRpYUZyYWdtZW50VVJJUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L01lZGlhRnJhZ21lbnRVUklQYXJzZXIuY3BwCkBAIC01Miw3ICs1Miw5IEBAIHN0YXRpYyBTdHJp
bmcgY29sbGVjdERpZ2l0cyhjb25zdCBMQ2hhciogaW5wdXQsIHVuc2lnbmVkIGxlbmd0aCwgdW5z
aWduZWQmIHBvc2l0CiAgICAgLy8gRElHSVQgOyBhbnkgcG9zaXRpdmUgbnVtYmVyCiAgICAgd2hp
bGUgKHBvc2l0aW9uIDwgbGVuZ3RoICYmIGlzQVNDSUlEaWdpdChpbnB1dFtwb3NpdGlvbl0pKQog
ICAgICAgICBkaWdpdHMuYXBwZW5kKGlucHV0W3Bvc2l0aW9uKytdKTsKLSAgICByZXR1cm4gZGln
aXRzLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gZGlnaXRzLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJp
bmcgY29sbGVjdEZyYWN0aW9uKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgbGVuZ3RoLCB1
bnNpZ25lZCYgcG9zaXRpb24pCkBAIC02Nyw3ICs2OSw5IEBAIHN0YXRpYyBTdHJpbmcgY29sbGVj
dEZyYWN0aW9uKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCYg
cG9zCiAgICAgZGlnaXRzLmFwcGVuZChpbnB1dFtwb3NpdGlvbisrXSk7CiAgICAgd2hpbGUgKHBv
c2l0aW9uIDwgbGVuZ3RoICYmIGlzQVNDSUlEaWdpdChpbnB1dFtwb3NpdGlvbl0pKQogICAgICAg
ICBkaWdpdHMuYXBwZW5kKGlucHV0W3Bvc2l0aW9uKytdKTsKLSAgICByZXR1cm4gZGlnaXRzLnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gZGlnaXRzLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIE1lZGlhRnJhZ21lbnRVUklQ
YXJzZXI6Ok1lZGlhRnJhZ21lbnRVUklQYXJzZXIoY29uc3QgVVJMJiB1cmwpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1R5cGVBaGVhZC5jcHAKaW5kZXggNzY0ZTUwMi4uM2VlYzQ4NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlw
ZUFoZWFkLmNwcApAQCAtODAsNyArODAsMTAgQEAgaW50IFR5cGVBaGVhZDo6aGFuZGxlRXZlbnQo
S2V5Ym9hcmRFdmVudCogZXZlbnQsIE1hdGNoTW9kZUZsYWdzIG1hdGNoTW9kZSkKICAgICAgICAg
cHJlZml4ID0gU3RyaW5nKCZjLCAxKTsKICAgICAgICAgbV9yZXBlYXRpbmdDaGFyID0gYzsKICAg
ICB9IGVsc2UgaWYgKG1hdGNoTW9kZSAmIE1hdGNoUHJlZml4KSB7Ci0gICAgICAgIHByZWZpeCA9
IG1fYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IG1fYnVmZmVy
LnRvU3RyaW5nKCkpCisgICAgICAgICAgICBwcmVmaXggPSAqc3RyaW5nOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICBpZiAobV9idWZmZXIubGVuZ3RoKCkgPiAx
KSB7CiAgICAgICAgICAgICBtX3JlcGVhdGluZ0NoYXIgPSAwOwogICAgICAgICAgICAgc2VhcmNo
U3RhcnRPZmZzZXQgPSAwOwpAQCAtMTA0LDkgKzEwNywxMiBAQCBpbnQgVHlwZUFoZWFkOjpoYW5k
bGVFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCwgTWF0Y2hNb2RlRmxhZ3MgbWF0Y2hNb2RlKQog
CiAgICAgaWYgKG1hdGNoTW9kZSAmIE1hdGNoSW5kZXgpIHsKICAgICAgICAgYm9vbCBvayA9IGZh
bHNlOwotICAgICAgICBpbnQgaW5kZXggPSBtX2J1ZmZlci50b1N0cmluZygpLnRvSW50KCZvayk7
Ci0gICAgICAgIGlmIChpbmRleCA+IDAgJiYgaW5kZXggPD0gb3B0aW9uQ291bnQpCi0gICAgICAg
ICAgICByZXR1cm4gaW5kZXggLSAxOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBtX2J1ZmZl
ci50b1N0cmluZygpKSB7CisgICAgICAgICAgICBpbnQgaW5kZXggPSBzdHJpbmctPnRvSW50KCZv
ayk7CisgICAgICAgICAgICBpZiAoaW5kZXggPiAwICYmIGluZGV4IDw9IG9wdGlvbkNvdW50KQor
ICAgICAgICAgICAgICAgIHJldHVybiBpbmRleCAtIDE7CisgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgcmV0dXJuIC0xOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKaW5k
ZXggYzI3YWYyMy4uZDk0ZmNlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCkBAIC0xMTcsNyArMTE3LDkgQEAg
U3RyaW5nIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Zm9udCgpIGNvbnN0CiAgICAgICAgIHNl
cmlhbGl6ZWRGb250LmFwcGVuZChmYW1pbHkpOwogICAgIH0KIAotICAgIHJldHVybiBzZXJpYWxp
emVkRm9udC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHNlcmlhbGl6ZWRGb250
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRGb250KGNvbnN0IFN0cmluZyYgbmV3
Rm9udCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyREJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKaW5kZXggNzY4YzBmYy4uN2E4OGNkNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEQmFzZS5jcHAKQEAgLTIxNzIsOCArMjE3MiwxMSBAQCBFeGNlcHRpb25PcjxSZWZQ
dHI8SW1hZ2VEYXRhPj4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6Z2V0SW1hZ2VEYXRh
KEltYWdlQgogICAgICAgICBjb25zb2xlTWVzc2FnZS5hcHBlbmRMaXRlcmFsKCIgeCAiKTsKICAg
ICAgICAgY29uc29sZU1lc3NhZ2UuYXBwZW5kTnVtYmVyKGltYWdlRGF0YVJlY3QuaGVpZ2h0KCkp
OwogCi0gICAgICAgIGNhbnZhc0Jhc2UoKS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFkZENv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlJlbmRlcmluZywgTWVzc2FnZUxldmVsOjpFcnJv
ciwgY29uc29sZU1lc3NhZ2UudG9TdHJpbmcoKSk7Ci0gICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciB9OworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBjb25zb2xl
TWVzc2FnZS50b1N0cmluZygpKSB7CisgICAgICAgICAgICBjYW52YXNCYXNlKCkuc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpSZW5kZXJp
bmcsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICpzdHJpbmcpOworICAgICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisgICAgICAgIH0KKyAgICAgICAgQ1JBU0go
KTsKICAgICB9CiAKICAgICByZXR1cm4gSW1hZ2VEYXRhOjpjcmVhdGUoaW1hZ2VEYXRhUmVjdC5z
aXplKCksIGJ5dGVBcnJheS5yZWxlYXNlTm9uTnVsbCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXgg
Nzg3NWRhOC4uY2Q1ZWUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTE2Miw3ICsxNjIsOSBAQCBu
YW1lc3BhY2UgewogCiAgICAgICAgIFN0cmluZyByZXN1bHQoKQogICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gbV9idWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBtX2J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU291cmNlVHJhY2tlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU291cmNlVHJhY2tlci5jcHAKaW5k
ZXggMjJkYmE5MC4uODBiMWU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFNvdXJjZVRyYWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxTb3VyY2VUcmFja2VyLmNwcApAQCAtODMsOCArODMsMTEgQEAgU3RyaW5nIEhUTUxTb3Vy
Y2VUcmFja2VyOjpzb3VyY2UoY29uc3QgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgbV9jdXJy
ZW50U291cmNlLmFkdmFuY2UoKTsKICAgICB9CiAKLSAgICBtX2NhY2hlZFNvdXJjZUZvclRva2Vu
ID0gc291cmNlLnRvU3RyaW5nKCk7Ci0gICAgcmV0dXJuIG1fY2FjaGVkU291cmNlRm9yVG9rZW47
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc291cmNlLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgbV9j
YWNoZWRTb3VyY2VGb3JUb2tlbiA9ICpzdHJpbmc7CisgICAgICAgIHJldHVybiBtX2NhY2hlZFNv
dXJjZUZvclRva2VuOworICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgSFRNTFNvdXJj
ZVRyYWNrZXI6OnNvdXJjZShjb25zdCBIVE1MVG9rZW4mIHRva2VuLCB1bnNpZ25lZCBhdHRyaWJ1
dGVTdGFydCwgdW5zaWduZWQgYXR0cmlidXRlRW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFRva2VuaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MVG9rZW5pemVyLmNwcAppbmRleCA4YWMyZjg1Li4zNjRlYzBlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmNwcApAQCAtMTQxLDggKzE0MSwx
MCBAQCBpbmxpbmUgYm9vbCBIVE1MVG9rZW5pemVyOjpwcm9jZXNzRW50aXR5KFNlZ21lbnRlZFN0
cmluZyYgc291cmNlKQogICAgICAgICBBU1NFUlQoZGVjb2RlZEVudGl0eS5pc0VtcHR5KCkpOwog
ICAgICAgICBidWZmZXJBU0NJSUNoYXJhY3RlcignJicpOwogICAgIH0gZWxzZSB7CisgICAgICAg
IGlmIChkZWNvZGVkRW50aXR5LmZhaWxlZCgpKQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlY29kZWRFbnRpdHkubGVuZ3RoKCk7ICsraSkK
LSAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcihkZWNvZGVkRW50aXR5W2ldKTsKKyAgICAgICAg
ICAgIGJ1ZmZlckNoYXJhY3RlcigqZGVjb2RlZEVudGl0eVtpXSk7CiAgICAgfQogICAgIHJldHVy
biB0cnVlOwogfQpAQCAtODYzLDggKzg2NSwxMCBAQCBib29sIEhUTUxUb2tlbml6ZXI6OnByb2Nl
c3NUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKICAgICAgICAgICAgIEFTU0VSVChkZWNv
ZGVkRW50aXR5LmlzRW1wdHkoKSk7CiAgICAgICAgICAgICBtX3Rva2VuLmFwcGVuZFRvQXR0cmli
dXRlVmFsdWUoJyYnKTsKICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChkZWNvZGVk
RW50aXR5LmZhaWxlZCgpKQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZGVjb2RlZEVudGl0eS5sZW5ndGgoKTsgKytpKQotICAg
ICAgICAgICAgICAgIG1fdG9rZW4uYXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZShkZWNvZGVkRW50aXR5
W2ldKTsKKyAgICAgICAgICAgICAgICBtX3Rva2VuLmFwcGVuZFRvQXR0cmlidXRlVmFsdWUoKmRl
Y29kZWRFbnRpdHlbaV0pOwogICAgICAgICB9CiAgICAgICAgIC8vIFdlJ3JlIHN1cHBvc2VkIHRv
IHN3aXRjaCBiYWNrIHRvIHRoZSBhdHRyaWJ1dGUgdmFsdWUgc3RhdGUgdGhhdAogICAgICAgICAv
LyB3ZSB3ZXJlIGluIHdoZW4gd2Ugd2VyZSBzd2l0Y2hlZCBpbnRvIHRoaXMgc3RhdGUuIFJhdGhl
ciB0aGFuCkBAIC0xNDAzLDcgKzE0MDcsOSBAQCBTdHJpbmcgSFRNTFRva2VuaXplcjo6YnVmZmVy
ZWRDaGFyYWN0ZXJzKCkgY29uc3QKICAgICBjaGFyYWN0ZXJzLmFwcGVuZCgnPCcpOwogICAgIGNo
YXJhY3RlcnMuYXBwZW5kKCcvJyk7CiAgICAgY2hhcmFjdGVycy5hcHBlbmQobV90ZW1wb3JhcnlC
dWZmZXIuZGF0YSgpLCBtX3RlbXBvcmFyeUJ1ZmZlci5zaXplKCkpOwotICAgIHJldHVybiBjaGFy
YWN0ZXJzLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gY2hhcmFjdGVycy50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lk
IEhUTUxUb2tlbml6ZXI6OnVwZGF0ZVN0YXRlRm9yKGNvbnN0IEF0b21pY1N0cmluZyYgdGFnTmFt
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCmlu
ZGV4IGIxMGE0YzQuLjg5OWQ0YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFRyZWVCdWlsZGVyLmNwcApAQCAtMjU2OSwxOSArMjU2OSwyMiBAQCB2b2lkIEhUTUxUcmVl
QnVpbGRlcjo6ZGVmYXVsdEZvckFmdGVySGVhZCgpCiAKIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpk
ZWZhdWx0Rm9ySW5UYWJsZVRleHQoKQogewotICAgIFN0cmluZyBjaGFyYWN0ZXJzID0gbV9wZW5k
aW5nVGFibGVDaGFyYWN0ZXJzLnRvU3RyaW5nKCk7Ci0gICAgbV9wZW5kaW5nVGFibGVDaGFyYWN0
ZXJzLmNsZWFyKCk7Ci0gICAgaWYgKCFpc0FsbFdoaXRlc3BhY2UoY2hhcmFjdGVycykpIHsKLSAg
ICAgICAgLy8gRklYTUU6IHBhcnNlIGVycm9yCi0gICAgICAgIEhUTUxDb25zdHJ1Y3Rpb25TaXRl
OjpSZWRpcmVjdFRvRm9zdGVyUGFyZW50R3VhcmQgcmVkaXJlY3RlcihtX3RyZWUpOwotICAgICAg
ICBtX3RyZWUucmVjb25zdHJ1Y3RUaGVBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKLSAgICAg
ICAgbV90cmVlLmluc2VydFRleHROb2RlKGNoYXJhY3RlcnMsIE5vdEFsbFdoaXRlc3BhY2UpOwot
ICAgICAgICBtX2ZyYW1lc2V0T2sgPSBmYWxzZTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtX3Bl
bmRpbmdUYWJsZUNoYXJhY3RlcnMudG9TdHJpbmcoKSkgeworICAgICAgICBTdHJpbmcgY2hhcmFj
dGVycyA9ICpzdHJpbmc7CisgICAgICAgIG1fcGVuZGluZ1RhYmxlQ2hhcmFjdGVycy5jbGVhcigp
OworICAgICAgICBpZiAoIWlzQWxsV2hpdGVzcGFjZShjaGFyYWN0ZXJzKSkgeworICAgICAgICAg
ICAgLy8gRklYTUU6IHBhcnNlIGVycm9yCisgICAgICAgICAgICBIVE1MQ29uc3RydWN0aW9uU2l0
ZTo6UmVkaXJlY3RUb0Zvc3RlclBhcmVudEd1YXJkIHJlZGlyZWN0ZXIobV90cmVlKTsKKyAgICAg
ICAgICAgIG1fdHJlZS5yZWNvbnN0cnVjdFRoZUFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpOwor
ICAgICAgICAgICAgbV90cmVlLmluc2VydFRleHROb2RlKGNoYXJhY3RlcnMsIE5vdEFsbFdoaXRl
c3BhY2UpOworICAgICAgICAgICAgbV9mcmFtZXNldE9rID0gZmFsc2U7CisgICAgICAgICAgICBt
X2luc2VydGlvbk1vZGUgPSBtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgICAgICBtX3RyZWUuaW5zZXJ0VGV4dE5vZGUoY2hhcmFjdGVy
cyk7CiAgICAgICAgIG1faW5zZXJ0aW9uTW9kZSA9IG1fb3JpZ2luYWxJbnNlcnRpb25Nb2RlOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIG1fdHJlZS5pbnNlcnRUZXh0Tm9kZShjaGFyYWN0
ZXJzKTsKLSAgICBtX2luc2VydGlvbk1vZGUgPSBtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZTsKKyAg
ICB9IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBIVE1MVHJlZUJ1aWxkZXI6OnBy
b2Nlc3NTdGFydFRhZ0ZvckluSGVhZChBdG9taWNIVE1MVG9rZW4mJiB0b2tlbikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwCmluZGV4IDgw
YjQyMTMuLjdkNGM4OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hT
U0F1ZGl0b3JEZWxlZ2F0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNT
QXVkaXRvckRlbGVnYXRlLmNwcApAQCAtNjYsNyArNjYsOSBAQCBzdGF0aWMgaW5saW5lIFN0cmlu
ZyBidWlsZENvbnNvbGVFcnJvcihjb25zdCBYU1NJbmZvJiB4c3NJbmZvKQogICAgIGVsc2UKICAg
ICAgICAgbWVzc2FnZS5hcHBlbmRMaXRlcmFsKCIgVGhlIGF1ZGl0b3Igd2FzIGVuYWJsZWQgYmVj
YXVzZSB0aGUgc2VydmVyIGRpZCBub3Qgc2VuZCBhbiAnWC1YU1MtUHJvdGVjdGlvbicgaGVhZGVy
LiIpOwogCi0gICAgcmV0dXJuIG1lc3NhZ2UudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBtZXNzYWdlLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAKIFJlZjxGb3JtRGF0YT4gWFNTQXVkaXRvckRlbGVnYXRlOjpnZW5lcmF0ZVZp
b2xhdGlvblJlcG9ydChjb25zdCBYU1NJbmZvJiB4c3NJbmZvKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9CdWZmZXJlZExpbmVSZWFkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9CdWZmZXJlZExpbmVSZWFkZXIuY3BwCmluZGV4IDhmMjM2MjUuLmYyOTA4
ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQnVmZmVyZWRMaW5lUmVh
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0J1ZmZlcmVkTGluZVJlYWRl
ci5jcHAKQEAgLTkyLDkgKzkyLDExIEBAIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBCdWZmZXJlZExp
bmVSZWFkZXI6Om5leHRMaW5lKCkKICAgICB9CiAKICAgICBpZiAoc2hvdWxkUmV0dXJuTGluZSkg
ewotICAgICAgICBhdXRvIGxpbmUgPSBtX2xpbmVCdWZmZXIudG9TdHJpbmcoKTsKLSAgICAgICAg
bV9saW5lQnVmZmVyLmNsZWFyKCk7Ci0gICAgICAgIHJldHVybiBXVEZNb3ZlKGxpbmUpOworICAg
ICAgICBpZiAoYXV0byBsaW5lID0gbV9saW5lQnVmZmVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAg
ICAgIG1fbGluZUJ1ZmZlci5jbGVhcigpOworICAgICAgICAgICAgcmV0dXJuIFdURk1vdmUoKmxp
bmUpOworICAgICAgICB9CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgQVNTRVJUKG1f
YnVmZmVyLmlzRW1wdHkoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RyYWNrQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAK
aW5kZXggMzMzYTJmOC4uMjk0MTZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UcmFja0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tC
YXNlLmNwcApAQCAtMTUzLDcgKzE1MywxMCBAQCB2b2lkIFRyYWNrQmFzZTo6c2V0TGFuZ3VhZ2Uo
Y29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiVGhlIGxhbmd1YWdlICciKTsKICAgICAgICAgICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kKGxhbmd1YWdlKTsKICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiJyBpcyBub3QgYSB2YWxpZCBCQ1AgNDcgbGFuZ3VhZ2UgdGFnLiIpOwotICAgICAgICAg
ICAgbWVzc2FnZSA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICBt
ZXNzYWdlID0gKnN0cmluZzsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFT
SCgpOwogICAgICAgICB9CiAgICAgICAgIGlmIChhdXRvIGVsZW1lbnQgPSB0aGlzLT5lbGVtZW50
KCkpCiAgICAgICAgICAgICBlbGVtZW50LT5kb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2U6OlJlbmRlcmluZywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBtZXNzYWdlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAppbmRleCA3OGY4YWRmLi4zYmJjMjQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwCkBAIC02MjksNyArNjI5LDExIEBAIHZv
aWQgVlRUQ3VlOjpkZXRlcm1pbmVUZXh0RGlyZWN0aW9uKCkKICAgICAgICAgcGFyYWdyYXBoQnVp
bGRlci5hcHBlbmQobm9kZS0+bm9kZVZhbHVlKCkpOwogICAgIH0KIAotICAgIFN0cmluZyBwYXJh
Z3JhcGggPSBwYXJhZ3JhcGhCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgU3RyaW5nIHBhcmFncmFw
aCA9IFsmXSAoKSB7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHBhcmFncmFwaEJ1aWxkZXIu
dG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgp
OworICAgIH0oKTsKICAgICBpZiAoIXBhcmFncmFwaC5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJu
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAKaW5kZXggNTE4
ZWQ4Yi4uODBkMDJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJW
VFRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2Vy
LmNwcApAQCAtNDA0LDcgKzQwNCwxMCBAQCB2b2lkIFdlYlZUVFBhcnNlcjo6Y3JlYXRlTmV3Q3Vl
KCkKICAgICBSZWZQdHI8V2ViVlRUQ3VlRGF0YT4gY3VlID0gV2ViVlRUQ3VlRGF0YTo6Y3JlYXRl
KCk7CiAgICAgY3VlLT5zZXRTdGFydFRpbWUobV9jdXJyZW50U3RhcnRUaW1lKTsKICAgICBjdWUt
PnNldEVuZFRpbWUobV9jdXJyZW50RW5kVGltZSk7Ci0gICAgY3VlLT5zZXRDb250ZW50KG1fY3Vy
cmVudENvbnRlbnQudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbV9jdXJyZW50
Q29udGVudC50b1N0cmluZygpKQorICAgICAgICBjdWUtPnNldENvbnRlbnQoKnN0cmluZyk7Cisg
ICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAgIGN1ZS0+c2V0SWQobV9jdXJyZW50SWQpOwog
ICAgIGN1ZS0+c2V0U2V0dGluZ3MobV9jdXJyZW50U2V0dGluZ3MpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFRva2VuaXplci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1dlYlZUVFRva2VuaXplci5jcHAKaW5kZXggMDI0YzA0YS4uZmUzZGRh
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmNwcApA
QCAtMTA4LDExICsxMDgsMTUgQEAgRGF0YVN0YXRlOgogICAgICAgICBlbHNlIHsKICAgICAgICAg
ICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gYWR2YW5jZSBpbnB1dCBvciBwZXJmb3JtIGEgc3RhdGUg
dHJhbnNpdGlvbiAtIGp1c3QgcmV0dXJuIGEgKG5ldykgdG9rZW4uCiAgICAgICAgICAgICAvLyAo
T24gdGhlIG5leHQgY2FsbCB0byBuZXh0VG9rZW4gd2Ugd2lsbCBzZWUgJzwnIGFnYWluLCBidXQg
dGFrZSB0aGUgb3RoZXIgYnJhbmNoIGluIHRoaXMgaWYgaW5zdGVhZC4pCi0gICAgICAgICAgICBy
ZXR1cm4gZW1pdFRva2VuKHRva2VuLCBXZWJWVFRUb2tlbjo6U3RyaW5nVG9rZW4ocmVzdWx0LnRv
U3RyaW5nKCkpKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmlu
ZygpKQorICAgICAgICAgICAgICAgIHJldHVybiBlbWl0VG9rZW4odG9rZW4sIFdlYlZUVFRva2Vu
OjpTdHJpbmdUb2tlbigqc3RyaW5nKSk7CisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9
Ci0gICAgfSBlbHNlIGlmIChjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikKLSAgICAgICAg
cmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpT
dHJpbmdUb2tlbihyZXN1bHQudG9TdHJpbmcoKSkpOwotICAgIGVsc2UgeworICAgIH0gZWxzZSBp
ZiAoY2hhcmFjdGVyID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVt
aXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OlN0cmluZ1Rva2VuKCpzdHJpbmcp
KTsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9IGVsc2UgewogICAgICAgICByZXN1bHQuYXBwZW5k
KGNoYXJhY3Rlcik7CiAgICAgICAgIFdFQlZUVF9BRFZBTkNFX1RPKERhdGFTdGF0ZSk7CiAgICAg
fQpAQCAtMTQyLDEwICsxNDYsMTQgQEAgRXNjYXBlU3RhdGU6CiAgICAgICAgIFdFQlZUVF9BRFZB
TkNFX1RPKEVzY2FwZVN0YXRlKTsKICAgICB9IGVsc2UgaWYgKGNoYXJhY3RlciA9PSAnPCcpIHsK
ICAgICAgICAgcmVzdWx0LmFwcGVuZChidWZmZXIpOwotICAgICAgICByZXR1cm4gZW1pdFRva2Vu
KHRva2VuLCBXZWJWVFRUb2tlbjo6U3RyaW5nVG9rZW4ocmVzdWx0LnRvU3RyaW5nKCkpKTsKKyAg
ICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICBy
ZXR1cm4gZW1pdFRva2VuKHRva2VuLCBXZWJWVFRUb2tlbjo6U3RyaW5nVG9rZW4oKnN0cmluZykp
OworICAgICAgICBDUkFTSCgpOwogICAgIH0gZWxzZSBpZiAoY2hhcmFjdGVyID09IGtFbmRPZkZp
bGVNYXJrZXIpIHsKICAgICAgICAgcmVzdWx0LmFwcGVuZChidWZmZXIpOwotICAgICAgICByZXR1
cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OlN0cmlu
Z1Rva2VuKHJlc3VsdC50b1N0cmluZygpKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJl
c3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4o
bV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpTdHJpbmdUb2tlbigqc3RyaW5nKSk7CisgICAg
ICAgIENSQVNIKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgcmVzdWx0LmFwcGVuZChidWZmZXIp
OwogICAgICAgICBidWZmZXIuY2xlYXIoKTsKQEAgLTE3Miw3ICsxODAsOSBAQCBUYWdTdGF0ZToK
ICAgICAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oVGltZXN0YW1wVGFnU3RhdGUpOwogICAgIH0gZWxz
ZSBpZiAoY2hhcmFjdGVyID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikg
ewogICAgICAgICBBU1NFUlQocmVzdWx0LmlzRW1wdHkoKSk7Ci0gICAgICAgIHJldHVybiBhZHZh
bmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6U3RhcnRUYWcocmVz
dWx0LnRvU3RyaW5nKCkpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3Ry
aW5nKCkpCisgICAgICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0
b2tlbiwgV2ViVlRUVG9rZW46OlN0YXJ0VGFnKCpzdHJpbmcpKTsKKyAgICAgICAgQ1JBU0goKTsK
ICAgICB9IGVsc2UgewogICAgICAgICByZXN1bHQuYXBwZW5kKGNoYXJhY3Rlcik7CiAgICAgICAg
IFdFQlZUVF9BRFZBTkNFX1RPKFN0YXJ0VGFnU3RhdGUpOwpAQCAtMTgzLDkgKzE5MywxMSBAQCBT
dGFydFRhZ1N0YXRlOgogICAgICAgICBXRUJWVFRfQURWQU5DRV9UTyhTdGFydFRhZ0Fubm90YXRp
b25TdGF0ZSk7CiAgICAgZWxzZSBpZiAoY2hhcmFjdGVyID09ICcuJykKICAgICAgICAgV0VCVlRU
X0FEVkFOQ0VfVE8oU3RhcnRUYWdDbGFzc1N0YXRlKTsKLSAgICBlbHNlIGlmIChjaGFyYWN0ZXIg
PT0gJz4nIHx8IGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKQotICAgICAgICByZXR1cm4g
YWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OlN0YXJ0VGFn
KHJlc3VsdC50b1N0cmluZygpKSk7Ci0gICAgZWxzZSB7CisgICAgZWxzZSBpZiAoY2hhcmFjdGVy
ID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1hcmtlcikgeworICAgICAgICBpZiAo
YXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiBhZHZh
bmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6U3RhcnRUYWcoKnN0
cmluZykpOworICAgICAgICBDUkFTSCgpOworICAgIH0gZWxzZSB7CiAgICAgICAgIHJlc3VsdC5h
cHBlbmQoY2hhcmFjdGVyKTsKICAgICAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oU3RhcnRUYWdTdGF0
ZSk7CiAgICAgfQpAQCAtMjAyLDI3ICsyMTQsNDQgQEAgU3RhcnRUYWdDbGFzc1N0YXRlOgogICAg
IH0gZWxzZSBpZiAoY2hhcmFjdGVyID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0ga0VuZE9mRmlsZU1h
cmtlcikgewogICAgICAgICBhZGROZXdDbGFzcyhjbGFzc2VzLCBidWZmZXIpOwogICAgICAgICBi
dWZmZXIuY2xlYXIoKTsKLSAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1
dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpTdGFydFRhZyhyZXN1bHQudG9TdHJpbmcoKSwgY2xhc3Nl
cy50b0F0b21pY1N0cmluZygpKSk7CisgICAgICAgIGlmIChhdXRvIHJlc3VsdFN0cmluZyA9IHJl
c3VsdC50b1N0cmluZygpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBjbGFzc2VzU3RyaW5nID0g
Y2xhc3Nlcy50b0F0b21pY1N0cmluZygpKQorICAgICAgICAgICAgICAgIHJldHVybiBhZHZhbmNl
QW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBXZWJWVFRUb2tlbjo6U3RhcnRUYWcoKnJlc3Vs
dFN0cmluZywgKmNsYXNzZXNTdHJpbmcpKTsKKyAgICAgICAgfQorICAgICAgICBDUkFTSCgpOwog
ICAgIH0gZWxzZSB7CiAgICAgICAgIGJ1ZmZlci5hcHBlbmQoY2hhcmFjdGVyKTsKICAgICAgICAg
V0VCVlRUX0FEVkFOQ0VfVE8oU3RhcnRUYWdDbGFzc1N0YXRlKTsKICAgICB9CiAKIFN0YXJ0VGFn
QW5ub3RhdGlvblN0YXRlOgotICAgIGlmIChjaGFyYWN0ZXIgPT0gJz4nIHx8IGNoYXJhY3RlciA9
PSBrRW5kT2ZGaWxlTWFya2VyKQotICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbiht
X2lucHV0LCB0b2tlbiwgV2ViVlRUVG9rZW46OlN0YXJ0VGFnKHJlc3VsdC50b1N0cmluZygpLCBj
bGFzc2VzLnRvQXRvbWljU3RyaW5nKCksIGJ1ZmZlci50b0F0b21pY1N0cmluZygpKSk7CisgICAg
aWYgKGNoYXJhY3RlciA9PSAnPicgfHwgY2hhcmFjdGVyID09IGtFbmRPZkZpbGVNYXJrZXIpIHsK
KyAgICAgICAgaWYgKGF1dG8gcmVzdWx0U3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpIHsKKyAg
ICAgICAgICAgIGlmIChhdXRvIGNsYXNzZXNTdHJpbmcgPSBjbGFzc2VzLnRvQXRvbWljU3RyaW5n
KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBidWZmZXJTdHJpbmcgPSBidWZmZXIudG9B
dG9taWNTdHJpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0
VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpTdGFydFRhZygqcmVzdWx0U3RyaW5n
LCAqY2xhc3Nlc1N0cmluZywgKmJ1ZmZlclN0cmluZykpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgICAgIENSQVNIKCk7CisgICAgfQogICAgIGJ1ZmZlci5hcHBlbmQoY2hhcmFjdGVy
KTsKICAgICBXRUJWVFRfQURWQU5DRV9UTyhTdGFydFRhZ0Fubm90YXRpb25TdGF0ZSk7CiAKIEVu
ZFRhZ1N0YXRlOgotICAgIGlmIChjaGFyYWN0ZXIgPT0gJz4nIHx8IGNoYXJhY3RlciA9PSBrRW5k
T2ZGaWxlTWFya2VyKQotICAgICAgICByZXR1cm4gYWR2YW5jZUFuZEVtaXRUb2tlbihtX2lucHV0
LCB0b2tlbiwgV2ViVlRUVG9rZW46OkVuZFRhZyhyZXN1bHQudG9TdHJpbmcoKSkpOworICAgIGlm
IChjaGFyYWN0ZXIgPT0gJz4nIHx8IGNoYXJhY3RlciA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7Cisg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICAgICAg
cmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4obV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpF
bmRUYWcoKnN0cmluZykpOworICAgICAgICBDUkFTSCgpOworICAgIH0KICAgICByZXN1bHQuYXBw
ZW5kKGNoYXJhY3Rlcik7CiAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oRW5kVGFnU3RhdGUpOwogCiBU
aW1lc3RhbXBUYWdTdGF0ZToKLSAgICBpZiAoY2hhcmFjdGVyID09ICc+JyB8fCBjaGFyYWN0ZXIg
PT0ga0VuZE9mRmlsZU1hcmtlcikKLSAgICAgICAgcmV0dXJuIGFkdmFuY2VBbmRFbWl0VG9rZW4o
bV9pbnB1dCwgdG9rZW4sIFdlYlZUVFRva2VuOjpUaW1lc3RhbXBUYWcocmVzdWx0LnRvU3RyaW5n
KCkpKTsKKyAgICBpZiAoY2hhcmFjdGVyID09ICc+JyB8fCBjaGFyYWN0ZXIgPT0ga0VuZE9mRmls
ZU1hcmtlcikgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkK
KyAgICAgICAgICAgIHJldHVybiBhZHZhbmNlQW5kRW1pdFRva2VuKG1faW5wdXQsIHRva2VuLCBX
ZWJWVFRUb2tlbjo6VGltZXN0YW1wVGFnKCpzdHJpbmcpKTsKKyAgICAgICAgQ1JBU0goKTsKKyAg
ICB9CiAgICAgcmVzdWx0LmFwcGVuZChjaGFyYWN0ZXIpOwogICAgIFdFQlZUVF9BRFZBTkNFX1RP
KFRpbWVzdGFtcFRhZ1N0YXRlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JTdHlsZVNoZWV0LmNwcAppbmRleCA5ZDk4NTgxLi42NTFkMmU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCkBAIC03NzEs
NyArNzcxLDkgQEAgU3RyaW5nIEluc3BlY3RvclN0eWxlOjpzaG9ydGhhbmRWYWx1ZShjb25zdCBT
dHJpbmcmIHNob3J0aGFuZFByb3BlcnR5KSBjb25zdAogICAgICAgICAgICAgYnVpbGRlci5hcHBl
bmQoJyAnKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaW5kaXZpZHVhbFZhbHVlKTsKICAgICB9
Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIFN0cmluZyBJbnNwZWN0b3JTdHlsZTo6c2hvcnRoYW5kUHJpb3JpdHkoY29uc3QgU3Ry
aW5nJiBzaG9ydGhhbmRQcm9wZXJ0eSkgY29uc3QKQEAgLTk0MywxMyArOTQ1LDIwIEBAIEV4Y2Vw
dGlvbk9yPENTU1N0eWxlUnVsZSo+IEluc3BlY3RvclN0eWxlU2hlZXQ6OmFkZFJ1bGUoY29uc3Qg
U3RyaW5nJiBzZWxlY3RvcikKICAgICBzdHlsZVNoZWV0VGV4dC5hcHBlbmRMaXRlcmFsKCIge30i
KTsKIAogICAgIC8vIFVzaW5nIHNldFRleHQoKSBhcyB0aGlzIG9wZXJhdGlvbiBjaGFuZ2VzIHRo
ZSBzdHlsZXNoZWV0IHJ1bGUgc2V0LgotICAgIHNldFRleHQoc3R5bGVTaGVldFRleHQudG9TdHJp
bmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3R5bGVTaGVldFRleHQudG9TdHJpbmcoKSkK
KyAgICAgICAgc2V0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAK
ICAgICAvLyBJbnNwZWN0b3IgU3R5bGUgU2hlZXRzIGFyZSBhbHdheXMgdHJlYXRlZCBhcyB0aG91
Z2ggdGhlaXIgcGFyc2VkIGRhdGEgaXMgcmVhZHkuCiAgICAgaWYgKG1fb3JpZ2luID09IEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkNTUzo6U3R5bGVTaGVldE9yaWdpbjo6SW5zcGVjdG9yKQogICAgICAg
ICBmaXJlU3R5bGVTaGVldENoYW5nZWQoKTsKLSAgICBlbHNlCi0gICAgICAgIHJlcGFyc2VTdHls
ZVNoZWV0KHN0eWxlU2hlZXRUZXh0LnRvU3RyaW5nKCkpOworICAgIGVsc2UgeworICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBzdHlsZVNoZWV0VGV4dC50b1N0cmluZygpKQorICAgICAgICAgICAg
cmVwYXJzZVN0eWxlU2hlZXQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENS
QVNIKCk7CisgICAgfQogCiAgICAgQVNTRVJUKG1fcGFnZVN0eWxlU2hlZXQtPmxlbmd0aCgpKTsK
ICAgICB1bnNpZ25lZCBsYXN0UnVsZUluZGV4ID0gbV9wYWdlU3R5bGVTaGVldC0+bGVuZ3RoKCkg
LSAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCmluZGV4IDE5YWY0ZTkuLmJm
OWI0ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAKQEAgLTE3MiwxMSAr
MTcyLDE0IEBAIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcHBsaWNhdGlvbkNhY2hlOjpBcHBs
aWNhdGlvbkNhY2hlUmVzb3VyY2U+IEluc3BlY3RvckFwCiAgICAgaWYgKHJlc291cmNlSW5mby5p
c0V4cGxpY2l0KQogICAgICAgICB0eXBlcy5hcHBlbmRMaXRlcmFsKCJFeHBsaWNpdCAiKTsKIAot
ICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpBcHBsaWNhdGlvbkNhY2hlOjpBcHBsaWNh
dGlvbkNhY2hlUmVzb3VyY2U6OmNyZWF0ZSgpCi0gICAgICAgIC5zZXRVcmwocmVzb3VyY2VJbmZv
LnJlc291cmNlLnN0cmluZygpKQotICAgICAgICAuc2V0U2l6ZShzdGF0aWNfY2FzdDxpbnQ+KHJl
c291cmNlSW5mby5zaXplKSkKLSAgICAgICAgLnNldFR5cGUodHlwZXMudG9TdHJpbmcoKSkKLSAg
ICAgICAgLnJlbGVhc2UoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB0eXBlcy50b1N0cmluZygp
KSB7CisgICAgICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpBcHBsaWNhdGlvbkNhY2hl
OjpBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OmNyZWF0ZSgpCisgICAgICAgICAgICAuc2V0VXJs
KHJlc291cmNlSW5mby5yZXNvdXJjZS5zdHJpbmcoKSkKKyAgICAgICAgICAgIC5zZXRTaXplKHN0
YXRpY19jYXN0PGludD4ocmVzb3VyY2VJbmZvLnNpemUpKQorICAgICAgICAgICAgLnNldFR5cGUo
KnN0cmluZykKKyAgICAgICAgICAgIC5yZWxlYXNlKCk7CisgICAgfQorICAgIENSQVNIKCk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAppbmRleCA0NmU0YWZl
Li5hZjE3MDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCkBAIC0xMzQsOCArMTM0LDExIEBAIHB1Ymxp
YzoKICAgICAgICAgaWYgKG1fZGVjb2RlcikKICAgICAgICAgICAgIG1fcmVzcG9uc2VUZXh0LmFw
cGVuZChtX2RlY29kZXItPmZsdXNoKCkpOwogCi0gICAgICAgIG1fY2FsbGJhY2stPnNlbmRTdWNj
ZXNzKG1fcmVzcG9uc2VUZXh0LnRvU3RyaW5nKCksIG1fbWltZVR5cGUsIG1fc3RhdHVzQ29kZSk7
Ci0gICAgICAgIGRpc3Bvc2UoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gbV9yZXNwb25z
ZVRleHQudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgbV9jYWxsYmFjay0+c2VuZFN1Y2Nlc3Mo
KnN0cmluZywgbV9taW1lVHlwZSwgbV9zdGF0dXNDb2RlKTsKKyAgICAgICAgICAgIGRpc3Bvc2Uo
KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIHZv
aWQgZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikgb3ZlcnJpZGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50LmNwcAppbmRl
eCBkYzk2NDg2Li42MzgzOGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL1dlYkNvbnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9XZWJDb25zb2xlQWdlbnQuY3BwCkBAIC0xNjksNyArMTY5LDEwIEBAIHZvaWQgV2Vi
Q29uc29sZUFnZW50OjpkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlm
aWVyLCBjb25zdCBSZXNvCiAgICAgICAgIG1lc3NhZ2UuYXBwZW5kKGVycm9yLmxvY2FsaXplZERl
c2NyaXB0aW9uKCkpOwogICAgIH0KIAotICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUoc3RkOjptYWtl
X3VuaXF1ZTxDb25zb2xlTWVzc2FnZT4oTWVzc2FnZVNvdXJjZTo6TmV0d29yaywgTWVzc2FnZVR5
cGU6OkxvZywgTWVzc2FnZUxldmVsOjpFcnJvciwgbWVzc2FnZS50b1N0cmluZygpLCBlcnJvci5m
YWlsaW5nVVJMKCksIDAsIDAsIG51bGxwdHIsIHJlcXVlc3RJZGVudGlmaWVyKSk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gbWVzc2FnZS50b1N0cmluZygpKQorICAgICAgICBhZGRNZXNzYWdlVG9D
b25zb2xlKHN0ZDo6bWFrZV91bmlxdWU8Q29uc29sZU1lc3NhZ2U+KE1lc3NhZ2VTb3VyY2U6Ok5l
dHdvcmssIE1lc3NhZ2VUeXBlOjpMb2csIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICpzdHJpbmcsIGVy
cm9yLmZhaWxpbmdVUkwoKSwgMCwgMCwgbnVsbHB0ciwgcmVxdWVzdElkZW50aWZpZXIpKTsKKyAg
ICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHAK
aW5kZXggNjg4MDRmMi4uZjg4YTQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHAKQEAgLTExMiw4ICsxMTIsMTIgQEAgUmVzb3Vy
Y2VSZXF1ZXN0IGNyZWF0ZUFjY2Vzc0NvbnRyb2xQcmVmbGlnaHRSZXF1ZXN0KGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWUKIAogICAgICAgICAgICAgaGVhZGVyQnVmZmVyLmFwcGVuZChoZWFk
ZXJGaWVsZCk7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKCFoZWFkZXJCdWZmZXIuaXNFbXB0eSgp
KQotICAgICAgICAgICAgcHJlZmxpZ2h0UmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhl
YWRlck5hbWU6OkFjY2Vzc0NvbnRyb2xSZXF1ZXN0SGVhZGVycywgaGVhZGVyQnVmZmVyLnRvU3Ry
aW5nKCkpOworICAgICAgICBpZiAoIWhlYWRlckJ1ZmZlci5pc0VtcHR5KCkpIHsKKyAgICAgICAg
ICAgIGlmIChhdXRvIHN0cmluZyA9IGhlYWRlckJ1ZmZlci50b1N0cmluZygpKQorICAgICAgICAg
ICAgICAgIHByZWZsaWdodFJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1l
OjpBY2Nlc3NDb250cm9sUmVxdWVzdEhlYWRlcnMsICpzdHJpbmcpOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICByZXR1
cm4gcHJlZmxpZ2h0UmVxdWVzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzLmNwcAppbmRleCA0ZGYyNWRhLi45ODZmZTUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuY3BwCkBAIC0yNjgsNyAr
MjY4LDkgQEAgU3RyaW5nIFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OnRvU3RyaW5nKCkgY29uc3QK
IAogICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZS5jcHAKaW5kZXggZmYyOTM4OS4uNGYyMmQ0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0
b3JhZ2UuY3BwCkBAIC04NDEsMTcgKzg0MSwyMCBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVTdG9y
YWdlOjpzdG9yZShBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UqIHJlc291cmNlLCB1bnNpZ25lZAog
CiAgICAgLy8gVGhlbiwgaW5zZXJ0IHRoZSByZXNvdXJjZQogICAgIAotICAgIC8vIFNlcmlhbGl6
ZSB0aGUgaGVhZGVycwotICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsKLSAgICAKLSAg
ICBmb3IgKGNvbnN0IGF1dG8mIGhlYWRlciA6IHJlc291cmNlLT5yZXNwb25zZSgpLmh0dHBIZWFk
ZXJGaWVsZHMoKSkgewotICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChoZWFkZXIua2V5KTsK
LSAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJzonKTsKLSAgICAgICAgc3RyaW5nQnVpbGRl
ci5hcHBlbmQoaGVhZGVyLnZhbHVlKTsKLSAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xu
Jyk7Ci0gICAgfQotICAgIAotICAgIFN0cmluZyBoZWFkZXJzID0gc3RyaW5nQnVpbGRlci50b1N0
cmluZygpOworICAgIFN0cmluZyBoZWFkZXJzID0gWyZdICgpIHsKKyAgICAgICAgLy8gU2VyaWFs
aXplIHRoZSBoZWFkZXJzCisgICAgICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsKKyAg
ICAKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBoZWFkZXIgOiByZXNvdXJjZS0+cmVzcG9uc2Uo
KS5odHRwSGVhZGVyRmllbGRzKCkpIHsKKyAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5k
KGhlYWRlci5rZXkpOworICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJzonKTsKKyAg
ICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGhlYWRlci52YWx1ZSk7CisgICAgICAgICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoYXV0
byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9KCk7CiAgICAgCiAgICAgU1FMaXRlU3Rh
dGVtZW50IHJlc291cmNlU3RhdGVtZW50KG1fZGF0YWJhc2UsICJJTlNFUlQgSU5UTyBDYWNoZVJl
c291cmNlcyAodXJsLCBzdGF0dXNDb2RlLCByZXNwb25zZVVSTCwgaGVhZGVycywgZGF0YSwgbWlt
ZVR5cGUsIHRleHRFbmNvZGluZ05hbWUpIFZBTFVFUyAoPywgPywgPywgPywgPywgPywgPykiKTsK
ICAgICBpZiAocmVzb3VyY2VTdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5j
cHAKaW5kZXggMTJhMzBjYy4uY2ZlNzM4NjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcApAQCAtNTU3LDIxICs1NTcs
MjQgQEAgUmVmUHRyPExlZ2FjeVdlYkFyY2hpdmU+IExlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0ZUZy
b21TZWxlY3Rpb24oRnJhbWUqIGZyYW1lKQogICAgIGlmIChhdXRvIHNlbGVjdGlvblJhbmdlID0g
ZnJhbWUtPnNlbGVjdGlvbigpLnRvTm9ybWFsaXplZFJhbmdlKCkpCiAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKGNyZWF0ZU1hcmt1cCgqc2VsZWN0aW9uUmFuZ2UsICZub2RlTGlzdCwgQW5ub3RhdGVG
b3JJbnRlcmNoYW5nZSkpOwogCi0gICAgYXV0byBhcmNoaXZlID0gY3JlYXRlKGJ1aWxkZXIudG9T
dHJpbmcoKSwgKmZyYW1lLCBub2RlTGlzdCwgbnVsbHB0cik7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIGF1dG8gYXJjaGl2ZSA9IGNyZWF0ZSgq
c3RyaW5nLCAqZnJhbWUsIG5vZGVMaXN0LCBudWxscHRyKTsKICAgICAKLSAgICBpZiAoIWRvY3Vt
ZW50LT5pc0ZyYW1lU2V0KCkpCi0gICAgICAgIHJldHVybiBhcmNoaXZlOworICAgICAgICBpZiAo
IWRvY3VtZW50LT5pc0ZyYW1lU2V0KCkpCisgICAgICAgICAgICByZXR1cm4gYXJjaGl2ZTsKICAg
ICAgICAgCi0gICAgLy8gV3JhcCB0aGUgZnJhbWVzZXQgZG9jdW1lbnQgaW4gYW4gaWZyYW1lIHNv
IGl0IGNhbiBiZSBwYXN0ZWQgaW50bwotICAgIC8vIGFub3RoZXIgZG9jdW1lbnQgKHdoaWNoIHdp
bGwgaGF2ZSBhIGJvZHkgb3IgZnJhbWVzZXQgb2YgaXRzIG93bikuIAotICAgIFN0cmluZyBpZnJh
bWVNYXJrdXAgPSAiPGlmcmFtZSBmcmFtZWJvcmRlcj1cIm5vXCIgbWFyZ2lud2lkdGg9XCIwXCIg
bWFyZ2luaGVpZ2h0PVwiMFwiIHdpZHRoPVwiOTglJVwiIGhlaWdodD1cIjk4JSVcIiBzcmM9XCIi
ICsgZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnJlc3BvbnNlKCkudXJsKCkuc3Ry
aW5nKCkgKyAiXCI+PC9pZnJhbWU+IjsKLSAgICBhdXRvIGlmcmFtZVJlc291cmNlID0gQXJjaGl2
ZVJlc291cmNlOjpjcmVhdGUodXRmOEJ1ZmZlcihpZnJhbWVNYXJrdXApLCBibGFua1VSTCgpLCAi
dGV4dC9odG1sIiwgIlVURi04IiwgU3RyaW5nKCkpOworICAgICAgICAvLyBXcmFwIHRoZSBmcmFt
ZXNldCBkb2N1bWVudCBpbiBhbiBpZnJhbWUgc28gaXQgY2FuIGJlIHBhc3RlZCBpbnRvCisgICAg
ICAgIC8vIGFub3RoZXIgZG9jdW1lbnQgKHdoaWNoIHdpbGwgaGF2ZSBhIGJvZHkgb3IgZnJhbWVz
ZXQgb2YgaXRzIG93bikuIAorICAgICAgICBTdHJpbmcgaWZyYW1lTWFya3VwID0gIjxpZnJhbWUg
ZnJhbWVib3JkZXI9XCJub1wiIG1hcmdpbndpZHRoPVwiMFwiIG1hcmdpbmhlaWdodD1cIjBcIiB3
aWR0aD1cIjk4JSVcIiBoZWlnaHQ9XCI5OCUlXCIgc3JjPVwiIiArIGZyYW1lLT5sb2FkZXIoKS5k
b2N1bWVudExvYWRlcigpLT5yZXNwb25zZSgpLnVybCgpLnN0cmluZygpICsgIlwiPjwvaWZyYW1l
PiI7CisgICAgICAgIGF1dG8gaWZyYW1lUmVzb3VyY2UgPSBBcmNoaXZlUmVzb3VyY2U6OmNyZWF0
ZSh1dGY4QnVmZmVyKGlmcmFtZU1hcmt1cCksIGJsYW5rVVJMKCksICJ0ZXh0L2h0bWwiLCAiVVRG
LTgiLCBTdHJpbmcoKSk7CiAKLSAgICBWZWN0b3I8UmVmPExlZ2FjeVdlYkFyY2hpdmU+PiBzdWJm
cmFtZUFyY2hpdmVzOwotICAgIHN1YmZyYW1lQXJjaGl2ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0
eSgxKTsKLSAgICBzdWJmcmFtZUFyY2hpdmVzLnVuY2hlY2tlZEFwcGVuZChhcmNoaXZlLnJlbGVh
c2VOb25OdWxsKCkpOworICAgICAgICBWZWN0b3I8UmVmPExlZ2FjeVdlYkFyY2hpdmU+PiBzdWJm
cmFtZUFyY2hpdmVzOworICAgICAgICBzdWJmcmFtZUFyY2hpdmVzLnJlc2VydmVJbml0aWFsQ2Fw
YWNpdHkoMSk7CisgICAgICAgIHN1YmZyYW1lQXJjaGl2ZXMudW5jaGVja2VkQXBwZW5kKGFyY2hp
dmUucmVsZWFzZU5vbk51bGwoKSk7CiAKLSAgICByZXR1cm4gY3JlYXRlKGlmcmFtZVJlc291cmNl
LnJlbGVhc2VOb25OdWxsKCksIHsgfSwgV1RGTW92ZShzdWJmcmFtZUFyY2hpdmVzKSk7CisgICAg
ICAgIHJldHVybiBjcmVhdGUoaWZyYW1lUmVzb3VyY2UucmVsZWFzZU5vbk51bGwoKSwgeyB9LCBX
VEZNb3ZlKHN1YmZyYW1lQXJjaGl2ZXMpKTsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNo
aXZlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2
ZS5jcHAKaW5kZXggNzA1YzZkYy4uYWEwYTU3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwCkBAIC03Niw3ICs3Niw5IEBA
IHN0YXRpYyBTdHJpbmcgZ2VuZXJhdGVSYW5kb21Cb3VuZGFyeSgpCiAgICAgICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kKGxvd2VyTmliYmxlVG9BU0NJSUhleERpZ2l0KHJhbmRvbVZhbHVlc1tpXSkp
OwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh1cHBlck5pYmJsZVRvQVNDSUlIZXhEaWdp
dChyYW5kb21WYWx1ZXNbaV0pKTsKICAgICB9Ci0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJp
bmcgcmVwbGFjZU5vblByaW50YWJsZUNoYXJhY3RlcnMoY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAt
ODgsNyArOTAsOSBAQCBzdGF0aWMgU3RyaW5nIHJlcGxhY2VOb25QcmludGFibGVDaGFyYWN0ZXJz
KGNvbnN0IFN0cmluZyYgdGV4dCkKICAgICAgICAgZWxzZQogICAgICAgICAgICAgc3RyaW5nQnVp
bGRlci5hcHBlbmQoJz8nKTsKICAgICB9Ci0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIE1IVE1MQXJjaGl2ZTo6
TUhUTUxBcmNoaXZlKCkKQEAgLTE2MCwxMCArMTY0LDE2IEBAIFJlZjxTaGFyZWRCdWZmZXI+IE1I
VE1MQXJjaGl2ZTo6Z2VuZXJhdGVNSFRNTERhdGEoUGFnZSogcGFnZSkKICAgICBzdHJpbmdCdWls
ZGVyLmFwcGVuZCgiXCJcclxuXHJcbiIpOwogCiAgICAgLy8gV2UgdXNlIHV0ZjgoKSBiZWxvdyBp
bnN0ZWFkIG9mIGFzY2lpKCkgYXMgYXNjaWkoKSByZXBsYWNlcyBDUkxGcyB3aXRoID8/ICh3ZSBz
dGlsbCBvbmx5IGhhdmUgcHV0IEFTQ0lJIGNoYXJhY3RlcnMgaW4gaXQpLgotICAgIEFTU0VSVChz
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkuaXNBbGxBU0NJSSgpKTsKLSAgICBDU3RyaW5nIGFzY2lp
U3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpLnV0ZjgoKTsKLSAgICBhdXRvIG1odG1s
RGF0YSA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCk7Ci0gICAgbWh0bWxEYXRhLT5hcHBlbmQoYXNj
aWlTdHJpbmcuZGF0YSgpLCBhc2NpaVN0cmluZy5sZW5ndGgoKSk7CisgICAgYXV0byBtaHRtbERh
dGEgPSBbJl0gKCkgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCkpIHsKKyAgICAgICAgICAgIEFTU0VSVChzdHJpbmctPmlzQWxsQVNDSUkoKSk7Cisg
ICAgICAgICAgICBDU3RyaW5nIGFzY2lpU3RyaW5nID0gc3RyaW5nLT51dGY4KCk7CisgICAgICAg
ICAgICBhdXRvIHJlc3VsdCA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCk7CisgICAgICAgICAgICBy
ZXN1bHQtPmFwcGVuZChhc2NpaVN0cmluZy5kYXRhKCksIGFzY2lpU3RyaW5nLmxlbmd0aCgpKTsK
KyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgQ1JBU0goKTsK
KyAgICB9KCk7CiAKICAgICBmb3IgKGF1dG8mIHJlc291cmNlIDogcmVzb3VyY2VzKSB7CiAgICAg
ICAgIHN0cmluZ0J1aWxkZXIuY2xlYXIoKTsKQEAgLTE4Myw4ICsxOTMsMTAgQEAgUmVmPFNoYXJl
ZEJ1ZmZlcj4gTUhUTUxBcmNoaXZlOjpnZW5lcmF0ZU1IVE1MRGF0YShQYWdlKiBwYWdlKQogICAg
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChyZXNvdXJjZS51cmwpOwogICAgICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZCgiXHJcblxyXG4iKTsKIAotICAgICAgICBhc2NpaVN0cmluZyA9IHN0cmlu
Z0J1aWxkZXIudG9TdHJpbmcoKS51dGY4KCk7Ci0gICAgICAgIG1odG1sRGF0YS0+YXBwZW5kKGFz
Y2lpU3RyaW5nLmRhdGEoKSwgYXNjaWlTdHJpbmcubGVuZ3RoKCkpOworICAgICAgICBpZiAoYXV0
byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIENTdHJp
bmcgYXNjaWlTdHJpbmcgPSBzdHJpbmctPnV0ZjgoKTsKKyAgICAgICAgICAgIG1odG1sRGF0YS0+
YXBwZW5kKGFzY2lpU3RyaW5nLmRhdGEoKSwgYXNjaWlTdHJpbmcubGVuZ3RoKCkpOworICAgICAg
ICB9CiAKICAgICAgICAgLy8gRklYTUU6IGlkZWFsbHkgd2Ugd291bGQgZW5jb2RlIHRoZSBjb250
ZW50IGFzIGEgc3RyZWFtIHdpdGhvdXQgaGF2aW5nIHRvIGZldGNoIGl0IGFsbC4KICAgICAgICAg
Y29uc3QgY2hhciogZGF0YSA9IHJlc291cmNlLmRhdGEtPmRhdGEoKTsKQEAgLTIxMCw4ICsyMjIs
MTAgQEAgUmVmPFNoYXJlZEJ1ZmZlcj4gTUhUTUxBcmNoaXZlOjpnZW5lcmF0ZU1IVE1MRGF0YShQ
YWdlKiBwYWdlKQogICAgICAgICB9CiAgICAgfQogCi0gICAgYXNjaWlTdHJpbmcgPSBtYWtlU3Ry
aW5nKCItLSIsIGJvdW5kYXJ5LCAiLS1cclxuIikudXRmOCgpOwotICAgIG1odG1sRGF0YS0+YXBw
ZW5kKGFzY2lpU3RyaW5nLmRhdGEoKSwgYXNjaWlTdHJpbmcubGVuZ3RoKCkpOworICAgIHsKKyAg
ICAgICAgQ1N0cmluZyBhc2NpaVN0cmluZyA9IG1ha2VTdHJpbmcoIi0tIiwgYm91bmRhcnksICIt
LVxyXG4iKS51dGY4KCk7CisgICAgICAgIG1odG1sRGF0YS0+YXBwZW5kKGFzY2lpU3RyaW5nLmRh
dGEoKSwgYXNjaWlTdHJpbmcubGVuZ3RoKCkpOworICAgIH0KIAogICAgIHJldHVybiBtaHRtbERh
dGE7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVy
ZW5jZXNNZWRpYUFGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJl
bmNlc01lZGlhQUYuY3BwCmluZGV4IGMxMzkwNzYuLmQ4M2UyNTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwCkBAIC0z
NDcsMTQgKzM0NywxOCBAQCBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6Ondp
bmRvd1JvdW5kZWRDb3JuZXJSYWRpdXNDU1MoKSBjb25zdAogCiAgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOwogICAgIGFwcGVuZENTUyhidWlsZGVyLCBDU1NQcm9wZXJ0eUJvcmRlclJhZGl1cywg
U3RyaW5nOjpmb3JtYXQoIiUuMDJmcHgiLCByYWRpdXMpLCBiZWhhdmlvciA9PSBrTUFDYXB0aW9u
QXBwZWFyYW5jZUJlaGF2aW9yVXNlVmFsdWUpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJpbmcgQ2FwdGlvblVzZXJQcmVm
ZXJlbmNlc01lZGlhQUY6OmNvbG9yUHJvcGVydHlDU1MoQ1NTUHJvcGVydHlJRCBpZCwgY29uc3Qg
Q29sb3ImIGNvbG9yLCBib29sIGltcG9ydGFudCkgY29uc3QKIHsKICAgICBTdHJpbmdCdWlsZGVy
IGJ1aWxkZXI7CiAgICAgYXBwZW5kQ1NTKGJ1aWxkZXIsIGlkLCBjb2xvci5zZXJpYWxpemVkKCks
IGltcG9ydGFudCk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNh
cHRpb25TdHJva2VXaWR0aEZvckZvbnQoZmxvYXQgZm9udFNpemUsIGNvbnN0IFN0cmluZyYgbGFu
Z3VhZ2UsIGZsb2F0JiBzdHJva2VXaWR0aCwgYm9vbCYgaW1wb3J0YW50KSBjb25zdApAQCAtNDA2
LDcgKzQxMCw5IEBAIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y2FwdGlv
bnNUZXh0RWRnZUNTUygpIGNvbnN0CiAgICAgICAgIGFwcGVuZENTUyhidWlsZGVyLCBDU1NQcm9w
ZXJ0eVN0cm9rZUxpbmVjYXAsIGdldFZhbHVlTmFtZShDU1NWYWx1ZVJvdW5kKSwgaW1wb3J0YW50
KTsKICAgICB9CiAgICAgCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFB
Rjo6Y2FwdGlvbnNEZWZhdWx0Rm9udENTUygpIGNvbnN0CkBAIC00NDgsNyArNDU0LDkgQEAgU3Ry
aW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc0RlZmF1bHRGb250Q1NT
KCkgY29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgIWltcG9ydGFudCIpOwog
ICAgIGJ1aWxkZXIuYXBwZW5kKCc7Jyk7CiAgICAgCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIGZsb2F0IENhcHRpb25Vc2VyUHJl
ZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uRm9udFNpemVTY2FsZUFuZEltcG9ydGFuY2UoYm9vbCYg
aW1wb3J0YW50KSBjb25zdApAQCAtNTk1LDkgKzYwMywxMSBAQCBTdHJpbmcgQ2FwdGlvblVzZXJQ
cmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zU3R5bGVTaGVldE92ZXJyaWRlKCkgY29uc3QKICAg
ICB9CiAjZW5kaWYgLy8gSEFWRShNRURJQV9BQ0NFU1NJQklMSVRZX0ZSQU1FV09SSykKIAotICAg
IExPRyhNZWRpYSwgIkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc1N0eWxl
U2hlZXRPdmVycmlkZVNldHRpbmcgc3R5bGUgdG86XG4lcyIsIGNhcHRpb25zT3ZlcnJpZGVTdHls
ZVNoZWV0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0KLSAgICByZXR1cm4gY2FwdGlvbnNP
dmVycmlkZVN0eWxlU2hlZXQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBjYXB0
aW9uc092ZXJyaWRlU3R5bGVTaGVldC50b1N0cmluZygpKSB7CisgICAgICAgIExPRyhNZWRpYSwg
IkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc1N0eWxlU2hlZXRPdmVycmlk
ZVNldHRpbmcgc3R5bGUgdG86XG4lcyIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIH0KKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5n
IGxhbmd1YWdlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGxhbmd1YWdlQ29kZSkKQEAgLTY2NCwx
MCArNjc0LDEzIEBAIHN0YXRpYyBTdHJpbmcgdHJhY2tEaXNwbGF5TmFtZShBdWRpb1RyYWNrKiB0
cmFjaykKICAgICBpZiAoZGlzcGxheU5hbWUuaXNFbXB0eSgpKQogICAgICAgICBkaXNwbGF5TmFt
ZS5hcHBlbmQoYXVkaW9UcmFja05vTGFiZWxUZXh0KCkpOwogCi0gICAgaWYgKHRyYWNrLT5raW5k
KCkgIT0gQXVkaW9UcmFjazo6ZGVzY3JpcHRpb25LZXl3b3JkKCkpCi0gICAgICAgIHJldHVybiBk
aXNwbGF5TmFtZS50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGRpc3BsYXlOYW1l
LnRvU3RyaW5nKCkpIHsKKyAgICAgICAgaWYgKHRyYWNrLT5raW5kKCkgIT0gQXVkaW9UcmFjazo6
ZGVzY3JpcHRpb25LZXl3b3JkKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKIAotICAg
IHJldHVybiBhdWRpb0Rlc2NyaXB0aW9uVHJhY2tTdWZmaXhUZXh0KGRpc3BsYXlOYW1lLnRvU3Ry
aW5nKCkpOworICAgICAgICByZXR1cm4gYXVkaW9EZXNjcmlwdGlvblRyYWNrU3VmZml4VGV4dCgq
c3RyaW5nKTsKKyAgICB9CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIENhcHRpb25Vc2VyUHJl
ZmVyZW5jZXNNZWRpYUFGOjpkaXNwbGF5TmFtZUZvclRyYWNrKEF1ZGlvVHJhY2sqIHRyYWNrKSBj
b25zdApAQCAtNjg4LDI2ICs3MDEsMjkgQEAgc3RhdGljIFN0cmluZyB0cmFja0Rpc3BsYXlOYW1l
KFRleHRUcmFjayogdHJhY2spCiAgICAgaWYgKGRpc3BsYXlOYW1lQnVpbGRlci5pc0VtcHR5KCkp
CiAgICAgICAgIGRpc3BsYXlOYW1lQnVpbGRlci5hcHBlbmQodGV4dFRyYWNrTm9MYWJlbFRleHQo
KSk7CiAKLSAgICBTdHJpbmcgZGlzcGxheU5hbWUgPSBkaXNwbGF5TmFtZUJ1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBkaXNwbGF5TmFtZUJ1aWxkZXIudG9TdHJpbmco
KSkgeworICAgICAgICBTdHJpbmcgZGlzcGxheU5hbWUgPSAqc3RyaW5nOwogCi0gICAgaWYgKHRy
YWNrLT5pc0Nsb3NlZENhcHRpb25zKCkpIHsKLSAgICAgICAgZGlzcGxheU5hbWUgPSBjbG9zZWRD
YXB0aW9uVHJhY2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOwotICAgICAgICBpZiAodHJhY2st
PmlzRWFzeVRvUmVhZCgpKQotICAgICAgICAgICAgZGlzcGxheU5hbWUgPSBlYXN5UmVhZGVyVHJh
Y2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOworICAgICAgICBpZiAodHJhY2stPmlzQ2xvc2Vk
Q2FwdGlvbnMoKSkgeworICAgICAgICAgICAgZGlzcGxheU5hbWUgPSBjbG9zZWRDYXB0aW9uVHJh
Y2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOworICAgICAgICAgICAgaWYgKHRyYWNrLT5pc0Vh
c3lUb1JlYWQoKSkKKyAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IGVhc3lSZWFkZXJUcmFj
a01lbnVJdGVtVGV4dChkaXNwbGF5TmFtZSk7CiAKLSAgICAgICAgcmV0dXJuIGRpc3BsYXlOYW1l
OwotICAgIH0KKyAgICAgICAgICAgIHJldHVybiBkaXNwbGF5TmFtZTsKKyAgICAgICAgfQogCi0g
ICAgaWYgKHRyYWNrLT5pc1NESCgpKQotICAgICAgICBkaXNwbGF5TmFtZSA9IHNkaFRyYWNrTWVu
dUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsKKyAgICAgICAgaWYgKHRyYWNrLT5pc1NESCgpKQorICAg
ICAgICAgICAgZGlzcGxheU5hbWUgPSBzZGhUcmFja01lbnVJdGVtVGV4dChkaXNwbGF5TmFtZSk7
CiAKLSAgICBpZiAodHJhY2stPmNvbnRhaW5zT25seUZvcmNlZFN1YnRpdGxlcygpKQotICAgICAg
ICBkaXNwbGF5TmFtZSA9IGZvcmNlZFRyYWNrTWVudUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsKKyAg
ICAgICAgaWYgKHRyYWNrLT5jb250YWluc09ubHlGb3JjZWRTdWJ0aXRsZXMoKSkKKyAgICAgICAg
ICAgIGRpc3BsYXlOYW1lID0gZm9yY2VkVHJhY2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOwog
Ci0gICAgaWYgKHRyYWNrLT5pc0Vhc3lUb1JlYWQoKSkKLSAgICAgICAgZGlzcGxheU5hbWUgPSBl
YXN5UmVhZGVyVHJhY2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOworICAgICAgICBpZiAodHJh
Y2stPmlzRWFzeVRvUmVhZCgpKQorICAgICAgICAgICAgZGlzcGxheU5hbWUgPSBlYXN5UmVhZGVy
VHJhY2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOwogCi0gICAgcmV0dXJuIGRpc3BsYXlOYW1l
OworICAgICAgICByZXR1cm4gZGlzcGxheU5hbWU7CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAK
IFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6ZGlzcGxheU5hbWVGb3JUcmFj
ayhUZXh0VHJhY2sqIHRyYWNrKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBhODQyNjVh
Li4zZTQyNDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtMzY5LDcgKzM2OSw5IEBAIHN0YXRp
YyBKU0M6OllhcnI6OlJlZ3VsYXJFeHByZXNzaW9uIGNyZWF0ZVJlZ0V4cEZvckxhYmVscyhjb25z
dCBWZWN0b3I8U3RyaW5nPiYKICAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kTGl0ZXJhbCgiXFxi
Iik7CiAgICAgfQogICAgIHBhdHRlcm4uYXBwZW5kKCcpJyk7Ci0gICAgcmV0dXJuIEpTQzo6WWFy
cjo6UmVndWxhckV4cHJlc3Npb24ocGF0dGVybi50b1N0cmluZygpLCBKU0M6OllhcnI6OlRleHRD
YXNlSW5zZW5zaXRpdmUpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHBhdHRlcm4udG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuIEpTQzo6WWFycjo6UmVndWxhckV4cHJlc3Npb24oKnN0cmluZywg
SlNDOjpZYXJyOjpUZXh0Q2FzZUluc2Vuc2l0aXZlKTsKKyAgICBDUkFTSCgpOwogfQogCiBTdHJp
bmcgRnJhbWU6OnNlYXJjaEZvckxhYmVsc0Fib3ZlQ2VsbChjb25zdCBKU0M6OllhcnI6OlJlZ3Vs
YXJFeHByZXNzaW9uJiByZWdFeHAsIEhUTUxUYWJsZUNlbGxFbGVtZW50KiBjZWxsLCBzaXplX3Qq
IHJlc3VsdERpc3RhbmNlRnJvbVN0YXJ0T2ZDZWxsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVRyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3Bw
CmluZGV4IDI2Y2NjN2EuLjRkY2VmMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKQEAg
LTE1MCw3ICsxNTAsOSBAQCBBdG9taWNTdHJpbmcgRnJhbWVUcmVlOjp1bmlxdWVDaGlsZE5hbWUo
Y29uc3QgQXRvbWljU3RyaW5nJiByZXF1ZXN0ZWROYW1lKSBjb25zdAogICAgIG5hbWUuYXBwZW5k
TnVtYmVyKGNoaWxkQ291bnQoKSk7CiAgICAgbmFtZS5hcHBlbmRMaXRlcmFsKCItLT4tLT4iKTsK
IAotICAgIHJldHVybiBuYW1lLnRvQXRvbWljU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5n
ID0gbmFtZS50b0F0b21pY1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBD
UkFTSCgpOwogfQogCiBzdGF0aWMgYm9vbCBpblNjb3BlKEZyYW1lJiBmcmFtZSwgVHJlZVNjb3Bl
JiBzY29wZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAzYmQwMjJmLi5hZGNjMmYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0xNDUyLDcgKzE0NTIsMTAgQEAgdm9p
ZCBGcmFtZVZpZXc6OmxvZ01vY2tTY3JvbGxBbmltYXRvck1lc3NhZ2UoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIk1haW4iKTsKICAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIkZyYW1lVmlldzogIik7CiAgICAgYnVpbGRlci5hcHBl
bmQobWVzc2FnZSk7Ci0gICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2U6Ok90aGVyLCBNZXNzYWdlTGV2ZWw6OkRlYnVnLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgZG9jdW1lbnQt
PmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdlTGV2ZWw6OkRl
YnVnLCAqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgRnJh
bWVWaWV3OjpzZXRDYW5ub3RCbGl0VG9XaW5kb3coKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJp
YWxpemVyLmNwcAppbmRleCA1ZjY0MjI0Li45YWE5ZjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VTZXJpYWxpemVyLmNwcApAQCAtMjYzLDggKzI2MywxMSBAQCB2b2lkIFBhZ2VTZXJpYWxpemVy
OjpzZXJpYWxpemVDU1NTdHlsZVNoZWV0KENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQsIGNvbnN0
IFVSTAogICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNoZWNrIHdoZXRoZXIgYSBjaGFyc2V0
IGhhcyBiZWVuIHNwZWNpZmllZCBhbmQgaWYgbm9uZSB3YXMgZm91bmQgYWRkIG9uZS4KICAgICAg
ICAgVGV4dEVuY29kaW5nIHRleHRFbmNvZGluZyhzdHlsZVNoZWV0LT5jb250ZW50cygpLmNoYXJz
ZXQoKSk7CiAgICAgICAgIEFTU0VSVCh0ZXh0RW5jb2RpbmcuaXNWYWxpZCgpKTsKLSAgICAgICAg
bV9yZXNvdXJjZXMuYXBwZW5kKHsgdXJsLCBBU0NJSUxpdGVyYWwgeyAidGV4dC9jc3MiIH0sIFNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlKHRleHRFbmNvZGluZy5lbmNvZGUoY3NzVGV4dC50b1N0cmluZygp
LCBVbmVuY29kYWJsZUhhbmRsaW5nOjpFbnRpdGllcykpIH0pOwotICAgICAgICBtX3Jlc291cmNl
VVJMcy5hZGQodXJsKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gY3NzVGV4dC50b1N0cmlu
ZygpKSB7CisgICAgICAgICAgICBtX3Jlc291cmNlcy5hcHBlbmQoeyB1cmwsIEFTQ0lJTGl0ZXJh
bCB7ICJ0ZXh0L2NzcyIgfSwgU2hhcmVkQnVmZmVyOjpjcmVhdGUodGV4dEVuY29kaW5nLmVuY29k
ZSgqc3RyaW5nLCBVbmVuY29kYWJsZUhhbmRsaW5nOjpFbnRpdGllcykpIH0pOworICAgICAgICAg
ICAgbV9yZXNvdXJjZVVSTHMuYWRkKHVybCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
Q1JBU0goKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVy
Zm9ybWFuY2VMb2dnaW5nQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFu
Y2VMb2dnaW5nQ2xpZW50LmNwcAppbmRleCA5ZDQ0ZDk0Li4zYjQ0ZmY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuY3BwCkBAIC01MCw3ICs1
MCw5IEBAIFN0cmluZyBQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQ6OnN5bmNocm9ub3VzU2Nyb2xs
aW5nUmVhc29uc0FzU3RyaW5nKFN5bmNocm9ub3VzCiAgICAgICAgIHJlYXNvbnMuYXBwZW5kTGl0
ZXJhbCgiaW1hZ2UgZG9jdW1lbnQsIik7CiAKICAgICAvLyBTdHJpcCB0aGUgdHJhaWxpbmcgY29t
bWEuCi0gICAgcmV0dXJuIHJlYXNvbnMudG9TdHJpbmcoKS5sZWZ0KHJlYXNvbnMubGVuZ3RoKCkg
LSAxKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZWFzb25zLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiBzdHJpbmctPmxlZnQocmVhc29ucy5sZW5ndGgoKSAtIDEpOworICAgIENSQVNIKCk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJp
dHlPcmlnaW5EYXRhLmNwcAppbmRleCAyYWFjOGVlLi5lM2FjOGQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuY3BwCkBAIC04NCw3ICs4NCw5IEBAIFN0cmluZyBT
ZWN1cml0eU9yaWdpbkRhdGE6OmRhdGFiYXNlSWRlbnRpZmllcigpIGNvbnN0CiAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmQoc2VwYXJhdG9yQ2hhcmFjdGVyKTsKICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZE51bWJlcihwb3J0LnZhbHVlX29yKDApKTsKICAgICAKLSAgICByZXR1cm4gc3RyaW5nQnVp
bGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3Rk
OjpvcHRpb25hbDxTZWN1cml0eU9yaWdpbkRhdGE+IFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbURh
dGFiYXNlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWRlbnRpZmllcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmNwcAppbmRleCBlZDU0OWNm
Li5mYzUwMjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0
VHJpZ2dlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdFRyaWdn
ZXIuY3BwCkBAIC0xMDAsNyArMTAwLDEwIEBAIHN0YXRpYyB2b2lkIGR1bXBTdGF0ZShXVEY6Okhh
c2hNYXA8V2hlZWxFdmVudFRlc3RUcmlnZ2VyOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpCiAgICAg
ICAgICAgICAgICAgcmVhc29ucy5hcHBlbmQoIiwgIik7CiAgICAgICAgICAgICByZWFzb25zLmFw
cGVuZChTdHJpbmc6Om51bWJlcihyZWFzb24pKTsKICAgICAgICAgfQotICAgICAgICBMT0coV2hl
ZWxFdmVudFRlc3RUcmlnZ2VycywgIiAgICAgUmVhc29uczogJXMiLCByZWFzb25zLnRvU3RyaW5n
KCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHJlYXNvbnMudG9T
dHJpbmcoKSkKKyAgICAgICAgICAgIExPRyhXaGVlbEV2ZW50VGVzdFRyaWdnZXJzLCAiICAgICBS
ZWFzb25zOiAlcyIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIENSQVNIKCk7CiAgICAgfQogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAppbmRleCBmYzJmZDEyLi4zYzkxODcy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xp
Y3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGlj
eS5jcHAKQEAgLTg1LDcgKzg1LDkgQEAgc3RhdGljIFN0cmluZyBjb25zb2xlTWVzc2FnZUZvclZp
b2xhdGlvbihjb25zdCBjaGFyKiBlZmZlY3RpdmVWaW9sYXRlZERpcmVjdGl2ZSwKICAgICAgICAg
cmVzdWx0LmFwcGVuZChlZmZlY3RpdmVWaW9sYXRlZERpcmVjdGl2ZSk7CiAgICAgICAgIHJlc3Vs
dC5hcHBlbmRMaXRlcmFsKCIgZGlyZWN0aXZlIG9mIHRoZSBDb250ZW50IFNlY3VyaXR5IFBvbGlj
eS4iKTsKICAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRv
IHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkNvbnRlbnRTZWN1cml0eVBv
bGljeShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQpAQCAt
MTM3LDcgKzEzOSwxMCBAQCBib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dSdW5uaW5n
T3JEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KGNvbnN0IFVSTCYgdQogICAgICAgICBjb25zb2xl
TWVzc2FnZS5hcHBlbmQodXJsLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpKTsKICAg
ICAgICAgY29uc29sZU1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiIGJlY2F1c2UgIik7CiAgICAgICAg
IGNvbnNvbGVNZXNzYWdlLmFwcGVuZCgiJ2Jsb2NrLWFsbC1taXhlZC1jb250ZW50JyBhcHBlYXJz
IGluIHRoZSBDb250ZW50IFNlY3VyaXR5IFBvbGljeS4iKTsKLSAgICAgICAgcmVwb3J0VmlvbGF0
aW9uKENvbnRlbnRTZWN1cml0eVBvbGljeURpcmVjdGl2ZU5hbWVzOjpibG9ja0FsbE1peGVkQ29u
dGVudCwgQ29udGVudFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXM6OmJsb2NrQWxsTWl4ZWRD
b250ZW50LCAqcG9saWN5LCB1cmwsIGNvbnNvbGVNZXNzYWdlLnRvU3RyaW5nKCkpOworICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSBjb25zb2xlTWVzc2FnZS50b1N0cmluZygpKQorICAgICAgICAg
ICAgcmVwb3J0VmlvbGF0aW9uKENvbnRlbnRTZWN1cml0eVBvbGljeURpcmVjdGl2ZU5hbWVzOjpi
bG9ja0FsbE1peGVkQ29udGVudCwgQ29udGVudFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXM6
OmJsb2NrQWxsTWl4ZWRDb250ZW50LCAqcG9saWN5LCB1cmwsICpzdHJpbmcpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBDUkFTSCgpOwogCiAgICAgICAgIGlmICghaXNSZXBvcnRPbmx5KQog
ICAgICAgICAgICAgYWxsb3cgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL0F4aXNTY3JvbGxTbmFwT2Zmc2V0cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9BeGlzU2Nyb2xsU25hcE9mZnNldHMuY3BwCmluZGV4IDAyMDc1MzguLmQ4
ZDNmMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0F4aXNTY3Jv
bGxTbmFwT2Zmc2V0cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXhp
c1Njcm9sbFNuYXBPZmZzZXRzLmNwcApAQCAtODEsNyArODEsOSBAQCBzdGF0aWMgU3RyaW5nIHNu
YXBPZmZzZXRzVG9TdHJpbmcoY29uc3QgVmVjdG9yPExheW91dFVuaXQ+JiBzbmFwT2Zmc2V0cykK
ICAgICAgICAgcy5hcHBlbmQoU3RyaW5nOjpmb3JtYXQoIiUuMWYgIiwgb2Zmc2V0LnRvRmxvYXQo
KSkpOwogCiAgICAgcy5hcHBlbmQoIl0iKTsKLSAgICByZXR1cm4gcy50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHMudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIFN0cmluZyBzbmFwT2Zmc2V0UmFuZ2VzVG9TdHJp
bmcoY29uc3QgVmVjdG9yPFNjcm9sbE9mZnNldFJhbmdlPExheW91dFVuaXQ+PiYgcmFuZ2VzKQpA
QCAtOTEsNyArOTMsOSBAQCBzdGF0aWMgU3RyaW5nIHNuYXBPZmZzZXRSYW5nZXNUb1N0cmluZyhj
b25zdCBWZWN0b3I8U2Nyb2xsT2Zmc2V0UmFuZ2U8TGF5b3V0VW5pdAogICAgIGZvciAoYXV0byBy
YW5nZSA6IHJhbmdlcykKICAgICAgICAgcy5hcHBlbmQoU3RyaW5nOjpmb3JtYXQoIiglLjFmLCAl
LjFmKSAiLCByYW5nZS5zdGFydC50b0Zsb2F0KCksIHJhbmdlLmVuZC50b0Zsb2F0KCkpKTsKICAg
ICBzLmFwcGVuZCgiXSIpOwotICAgIHJldHVybiBzLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gcy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFT
SCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIHNuYXBQb3J0T3JBcmVhVG9TdHJpbmcoY29uc3QgTGF5
b3V0UmVjdCYgcmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCBmNTAyMjFhLi4zYzFjNmUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuY3BwCkBAIC0zODksNyArMzg5LDkgQEAgU3RyaW5nIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpz
eW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNBc1RleHQoU3luY2hyb25vdXNTY3JvbGwKIAogICAg
IGlmIChzdHJpbmdCdWlsZGVyLmxlbmd0aCgpKQogICAgICAgICBzdHJpbmdCdWlsZGVyLnJlc2l6
ZShzdHJpbmdCdWlsZGVyLmxlbmd0aCgpIC0gMik7Ci0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBT
Y3JvbGxpbmdDb29yZGluYXRvcjo6c3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zQXNUZXh0KCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RlY2ltYWwuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVjaW1hbC5jcHAKaW5kZXggM2Q1MjVjZi4uMWExOTJh
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVjaW1hbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVjaW1hbC5jcHAKQEAgLTk5NCw3ICs5OTQsOSBAQCBT
dHJpbmcgRGVjaW1hbDo6dG9TdHJpbmcoKSBjb25zdAogICAgIGlmIChvcmlnaW5hbEV4cG9uZW50
IDw9IDAgJiYgYWRqdXN0ZWRFeHBvbmVudCA+PSAtNikgewogICAgICAgICBpZiAoIW9yaWdpbmFs
RXhwb25lbnQpIHsKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGRpZ2l0cyk7Ci0gICAgICAg
ICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChhZGp1c3Rl
ZEV4cG9uZW50ID49IDApIHsKQEAgLTEwMDMsNyArMTAwNSw5IEBAIFN0cmluZyBEZWNpbWFsOjp0
b1N0cmluZygpIGNvbnN0CiAgICAgICAgICAgICAgICAgaWYgKGkgPT0gYWRqdXN0ZWRFeHBvbmVu
dCkKICAgICAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJy4nKTsKICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBp
ZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAKICAgICAgICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKCIwLiIpOwpAQCAtMTAyNyw3ICsxMDMxLDkgQEAgU3RyaW5n
IERlY2ltYWw6OnRvU3RyaW5nKCkgY29uc3QKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVt
YmVyKGFkanVzdGVkRXhwb25lbnQpOwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiBidWls
ZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBEZWNpbWFsIERl
Y2ltYWw6Onplcm8oU2lnbiBzaWduKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRmlsZVN5c3RlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNw
cAppbmRleCAyZmRiMjYwLi5lNjdkNjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9GaWxlU3lzdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lz
dGVtLmNwcApAQCAtMTMwLDcgKzEzMCw5IEBAIFN0cmluZyBlbmNvZGVGb3JGaWxlTmFtZShjb25z
dCBTdHJpbmcmIGlucHV0U3RyaW5nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjaGFyYWN0
ZXIpOwogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7Cisg
ICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIGRlY29kZUZyb21GaWxlbmFtZShjb25zdCBTdHJpbmcm
IGlucHV0U3RyaW5nKQpAQCAtMTgxLDcgKzE4Myw5IEBAIFN0cmluZyBkZWNvZGVGcm9tRmlsZW5h
bWUoY29uc3QgU3RyaW5nJiBpbnB1dFN0cmluZykKICAgICAgICAgaSArPSA1OwogICAgIH0KIAot
ICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1
bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogU3RyaW5nIGxhc3RDb21wb25lbnRPZlBhdGhJZ25vcmluZ1RyYWlsaW5nU2xhc2goY29uc3Qg
U3RyaW5nJiBwYXRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUE9ESW50
ZXJ2YWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPREludGVydmFsLmgKaW5kZXggMDQ4
ZGE5OC4uNjQ2MzYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUE9ESW50
ZXJ2YWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RJbnRlcnZhbC5oCkBAIC0x
NDUsNyArMTQ1LDkgQEAgcHVibGljOgogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwg
bWF4SGlnaD0iKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoVmFsdWVUb1N0cmluZzxUPjo6c3Ry
aW5nKG1heEhpZ2goKSkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnXScpOwotICAgICAgICBy
ZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAgICAgQ1JB
U0goKTsKICAgICB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUE9EUmVkQmxhY2tUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RSZWRCbGFj
a1RyZWUuaAppbmRleCAxMzFmMzFhLi40OTYwZWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QT0RSZWRCbGFja1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QT0RSZWRCbGFja1RyZWUuaApAQCAtNzQ0LDcgKzc0NCwxMCBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoVmFsdWVUb1N0cmluZzxUPjo6c3RyaW5nKG5vZGUtPmRhdGEo
KSkpOwogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoKG5vZGUtPmNvbG9yKCkgPT0gQmxhY2sp
ID8gIiAoYmxhY2spIiA6ICIgKHJlZCkiKTsKICAgICAgICAgfQotICAgICAgICBMT0dfRVJST1Io
IiVzIiwgYnVpbGRlci50b1N0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgTE9HX0VSUk9SKCIl
cyIsIHN0cmluZy0+YXNjaWkoKS5kYXRhKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBD
UkFTSCgpOwogICAgICAgICBpZiAobm9kZSkgewogICAgICAgICAgICAgZHVtcEZyb21Ob2RlKG5v
ZGUtPmxlZnQoKSwgaW5kZW50YXRpb24gKyAyKTsKICAgICAgICAgICAgIGR1bXBGcm9tTm9kZShu
b2RlLT5yaWdodCgpLCBpbmRlbnRhdGlvbiArIDIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVVJMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAKaW5k
ZXggOTkwMGU1NS4uMDMzNWE1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
VVJMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwCkBAIC00NDgsOCAr
NDQ4LDExIEBAIHZvaWQgVVJMOjpzZXRIb3N0KGNvbnN0IFN0cmluZyYgcykKICAgICBidWlsZGVy
LmFwcGVuZChTdHJpbmdWaWV3KGVuY29kZWRIb3N0TmFtZS5kYXRhKCksIGVuY29kZWRIb3N0TmFt
ZS5zaXplKCkpKTsKICAgICBidWlsZGVyLmFwcGVuZChtX3N0cmluZy5zdWJzdHJpbmcobV9ob3N0
RW5kKSk7CiAKLSAgICBVUkxQYXJzZXIgcGFyc2VyKGJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAg
KnRoaXMgPSBwYXJzZXIucmVzdWx0KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpKSB7CisgICAgICAgIFVSTFBhcnNlciBwYXJzZXIoKnN0cmluZyk7CisgICAgICAg
ICp0aGlzID0gcGFyc2VyLnJlc3VsdCgpOworICAgIH0gZWxzZQorICAgICAgICBDUkFTSCgpOwog
fQogCiB2b2lkIFVSTDo6cmVtb3ZlUG9ydCgpCkBAIC01MTAsOCArNTEzLDExIEBAIHZvaWQgVVJM
OjpzZXRIb3N0QW5kUG9ydChjb25zdCBTdHJpbmcmIGhvc3RBbmRQb3J0KQogICAgIH0KICAgICBi
dWlsZGVyLmFwcGVuZChtX3N0cmluZy5zdWJzdHJpbmcobV9wb3J0RW5kKSk7CiAKLSAgICBVUkxQ
YXJzZXIgcGFyc2VyKGJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgKnRoaXMgPSBwYXJzZXIucmVz
dWx0KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKSB7CisgICAg
ICAgIFVSTFBhcnNlciBwYXJzZXIoKnN0cmluZyk7CisgICAgICAgICp0aGlzID0gcGFyc2VyLnJl
c3VsdCgpOworICAgIH0gZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgU3RyaW5n
IHBlcmNlbnRFbmNvZGVDaGFyYWN0ZXJzKGNvbnN0IFN0cmluZyYgaW5wdXQsIGJvb2woKnNob3Vs
ZEVuY29kZSkoVUNoYXIpKQpAQCAtNTMwLDcgKzUzNiw5IEBAIHN0YXRpYyBTdHJpbmcgcGVyY2Vu
dEVuY29kZUNoYXJhY3RlcnMoY29uc3QgU3RyaW5nJiBpbnB1dCwgYm9vbCgqc2hvdWxkRW5jb2Rl
KShVCiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChj
KTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1
cm4gKnN0cmluZzsKKyAgICAgICAgQ1JBU0goKTsKICAgICB9OwogCiAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBpbnB1dC5sZW5ndGgoKTsgKytpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmNwcAppbmRleCA4Yzk3MmQ2Li5l
ZGJmZWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vVGlt
aW5nRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9U
aW1pbmdGdW5jdGlvbi5jcHAKQEAgLTEyOSw3ICsxMjksMTAgQEAgRXhjZXB0aW9uT3I8UmVmUHRy
PFRpbWluZ0Z1bmN0aW9uPj4gVGltaW5nRnVuY3Rpb246OmNyZWF0ZUZyb21DU1NUZXh0KGNvbnN0
IFN0cmkKICAgICBjc3NTdHJpbmcuYXBwZW5kTGl0ZXJhbCgiOiAiKTsKICAgICBjc3NTdHJpbmcu
YXBwZW5kKGNzc1RleHQpOwogICAgIGF1dG8gc3R5bGVQcm9wZXJ0aWVzID0gTXV0YWJsZVN0eWxl
UHJvcGVydGllczo6Y3JlYXRlKCk7Ci0gICAgc3R5bGVQcm9wZXJ0aWVzLT5wYXJzZURlY2xhcmF0
aW9uKGNzc1N0cmluZy50b1N0cmluZygpLCBDU1NQYXJzZXJDb250ZXh0KEhUTUxTdGFuZGFyZE1v
ZGUpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBjc3NTdHJpbmcudG9TdHJpbmcoKSkKKyAgICAg
ICAgc3R5bGVQcm9wZXJ0aWVzLT5wYXJzZURlY2xhcmF0aW9uKCpzdHJpbmcsIENTU1BhcnNlckNv
bnRleHQoSFRNTFN0YW5kYXJkTW9kZSkpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAog
ICAgIGlmIChhdXRvIGNzc1ZhbHVlID0gc3R5bGVQcm9wZXJ0aWVzLT5nZXRQcm9wZXJ0eUNTU1Zh
bHVlKENTU1Byb3BlcnR5QW5pbWF0aW9uVGltaW5nRnVuY3Rpb24pKSB7CiAgICAgICAgIGlmIChh
dXRvIHRpbWluZ0Z1bmN0aW9uID0gY3JlYXRlRnJvbUNTU1ZhbHVlKCpjc3NWYWx1ZS5nZXQoKSkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGli
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwCmlu
ZGV4IGY5NDA4MTUuLjJiMzBiMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ds
aWIvRmlsZVN5c3RlbUdsaWIuY3BwCkBAIC0yMTgsNyArMjE4LDkgQEAgU3RyaW5nIHBhdGhCeUFw
cGVuZGluZ0NvbXBvbmVudHMoU3RyaW5nVmlldyBwYXRoLCBjb25zdCBWZWN0b3I8U3RyaW5nVmll
dz4mIGNvbXAKICAgICAgICAgYnVpbGRlci5hcHBlbmQoR19ESVJfU0VQQVJBVE9SX1MpOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZChjb21wb25lbnQpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBtYWtlQWxs
RGlyZWN0b3JpZXMoY29uc3QgU3RyaW5nJiBwYXRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ2xpYi9Vc2VyQWdlbnRHTGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dsaWIvVXNlckFnZW50R0xpYi5jcHAKaW5kZXggMTYyMWE4OC4uMzgwNzdmOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9Vc2VyQWdlbnRHTGliLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL1VzZXJBZ2VudEdMaWIuY3BwCkBAIC0xMDYs
NyArMTA2LDkgQEAgc3RhdGljIFN0cmluZyBidWlsZFVzZXJBZ2VudFN0cmluZyhjb25zdCBVc2Vy
QWdlbnRRdWlya3MmIHF1aXJrcykKICAgICB1YVN0cmluZy5hcHBlbmRMaXRlcmFsKCJWZXJzaW9u
LzExLjAgU2FmYXJpLyIpOwogICAgIHVhU3RyaW5nLmFwcGVuZCh2ZXJzaW9uRm9yVUFTdHJpbmco
KSk7CiAKLSAgICByZXR1cm4gdWFTdHJpbmcudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSB1YVN0cmluZy50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBD
UkFTSCgpOwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5nIHN0YW5kYXJkVXNlckFnZW50U3RhdGlj
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcAppbmRleCA1ZGQx
NTBmLi5lZTFiZTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3Iu
Y3BwCkBAIC0zNDgsNyArMzQ4LDkgQEAgU3RyaW5nIENvbG9yOjpzZXJpYWxpemVkKCkgY29uc3QK
ICAgICAgICAgYXBwZW5kQnl0ZUFzSGV4KHJlZCgpLCBidWlsZGVyLCBMb3dlcmNhc2UpOwogICAg
ICAgICBhcHBlbmRCeXRlQXNIZXgoZ3JlZW4oKSwgYnVpbGRlciwgTG93ZXJjYXNlKTsKICAgICAg
ICAgYXBwZW5kQnl0ZUFzSGV4KGJsdWUoKSwgYnVpbGRlciwgTG93ZXJjYXNlKTsKLSAgICAgICAg
cmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENS
QVNIKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIGNzc1RleHQoKTsKQEAgLTM4NCw3ICszODYsOSBA
QCBTdHJpbmcgQ29sb3I6OmNzc1RleHQoKSBjb25zdAogICAgIH0KICAgICAgICAgCiAgICAgYnVp
bGRlci5hcHBlbmQoJyknKTsKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIENvbG9yOjpuYW1lRm9yUmVuZGVyVHJlZUFz
VGV4dCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9FeHRlbmRlZENvbG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4
dGVuZGVkQ29sb3IuY3BwCmluZGV4IDUwZTNjNWMuLjQ0OGRmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwCkBAIC03Miw3ICs3
Miw5IEBAIFN0cmluZyBFeHRlbmRlZENvbG9yOjpjc3NUZXh0KCkgY29uc3QKICAgICB9CiAgICAg
YnVpbGRlci5hcHBlbmQoJyknKTsKIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAKaW5kZXggODQ3ODYxZi4uNTU0ODI5MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcApA
QCAtNTQ5LDcgKzU0OSw5IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIG5vcm1hbGl6ZVNwYWNlc0lu
dGVybmFsKGNvbnN0IENoYXJhY3RlclR5cGUqIGNoYXJhY3RlcnMsIHVuCiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQogICAgICAgICBub3JtYWxpemVkLmFwcGVuZChG
b250Q2FzY2FkZTo6bm9ybWFsaXplU3BhY2VzKGNoYXJhY3RlcnNbaV0pKTsKIAotICAgIHJldHVy
biBub3JtYWxpemVkLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbm9ybWFsaXpl
ZC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQog
CiBTdHJpbmcgRm9udENhc2NhZGU6Om5vcm1hbGl6ZVNwYWNlcyhjb25zdCBMQ2hhciogY2hhcmFj
dGVycywgdW5zaWduZWQgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRUYWdnZWRTZXR0aW5ncy5jcHAKaW5kZXggNjFiMmViZS4uNWM0Njcy
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dl
ZFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
VGFnZ2VkU2V0dGluZ3MuY3BwCkBAIC03Miw3ICs3MiwxMCBAQCBUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBGb250VmFyaWF0aW9uU2V0dGluZ3MmIGl0ZW0pCiAg
ICAgICAgIHMuYXBwZW5kKHZhcmlhdGlvbi50YWcoKVsxXSk7CiAgICAgICAgIHMuYXBwZW5kKHZh
cmlhdGlvbi50YWcoKVsyXSk7CiAgICAgICAgIHMuYXBwZW5kKHZhcmlhdGlvbi50YWcoKVszXSk7
Ci0gICAgICAgIHRzLmR1bXBQcm9wZXJ0eShzLnRvU3RyaW5nKCksIGl0ZW0uYXQoaSkudmFsdWUo
KSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHMudG9TdHJpbmcoKSkKKyAgICAgICAgICAg
IHRzLmR1bXBQcm9wZXJ0eSgqc3RyaW5nLCBpdGVtLmF0KGkpLnZhbHVlKCkpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICByZXR1cm4gdHM7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmlu
ZGV4IDY5ODE4MGUuLjE1Y2U4OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCkBAIC00NDEsNyArNDQxLDkgQEAgU3RyaW5nIEdy
YXBoaWNzTGF5ZXI6OmFuaW1hdGlvbk5hbWVGb3JUcmFuc2l0aW9uKEFuaW1hdGVkUHJvcGVydHlJ
RCBwcm9wZXJ0eSkKICAgICBpZC5hcHBlbmRMaXRlcmFsKCItfHRyYW5zaXRpb24iKTsKICAgICBp
ZC5hcHBlbmROdW1iZXIoc3RhdGljX2Nhc3Q8aW50Pihwcm9wZXJ0eSkpOwogICAgIGlkLmFwcGVu
ZCgnLScpOwotICAgIHJldHVybiBpZC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGlkLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIHZvaWQgR3JhcGhpY3NMYXllcjo6c3VzcGVuZEFuaW1hdGlvbnMoTW9ub3RvbmljVGltZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmNwcAppbmRl
eCA2ZjJiMzg3Li45NTNjNDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRU
cmFja1ByaXZhdGVBVkYuY3BwCkBAIC0zMDAsOCArMzAwLDEyIEBAIHZvaWQgSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZUF0dHJpYnV0ZXMoQ0ZBdHRyaWJ1dGVkU3RyaW5nUmVm
IGF0dHJpCiAgICAgICAgIGNvbnRlbnQuYXBwZW5kKHRhZ0VuZCk7CiAgICAgfQogCi0gICAgaWYg
KGNvbnRlbnQubGVuZ3RoKCkpCi0gICAgICAgIGN1ZURhdGEuc2V0Q29udGVudChjb250ZW50LnRv
U3RyaW5nKCkpOworICAgIGlmIChjb250ZW50Lmxlbmd0aCgpKSB7CisgICAgICAgIGlmIChhdXRv
IHN0cmluZyA9IGNvbnRlbnQudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGN1ZURhdGEuc2V0Q29u
dGVudCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKKyAgICB9
CiB9CiAKIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZShDRkFycmF5
UmVmIGF0dHJpYnV0ZWRTdHJpbmdzLCBDRkFycmF5UmVmIG5hdGl2ZVNhbXBsZXMsIGNvbnN0IE1l
ZGlhVGltZSYgdGltZSkKQEAgLTUzMCw3ICs1MzQsMTAgQEAgdm9pZCBJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlQVZGOjpwcm9jZXNzTmF0aXZlU2FtcGxlcyhDRkFycmF5UmVmIG5hdGl2ZVNhbXBsZXMs
IGMKICAgICAgICAgICAgIGhlYWRlci5hcHBlbmQoIlxuXG4iKTsKIAogICAgICAgICAgICAgREVC
VUdfTE9HKExPR0lERU5USUZJRVIsICJWVFQgaGVhZGVyICIsICZoZWFkZXIpOwotICAgICAgICAg
ICAgY2xpZW50KCktPnBhcnNlV2ViVlRURmlsZUhlYWRlcihoZWFkZXIudG9TdHJpbmcoKSk7Cisg
ICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBoZWFkZXIudG9TdHJpbmcoKSkKKyAgICAgICAg
ICAgICAgICBjbGllbnQoKS0+cGFyc2VXZWJWVFRGaWxlSGVhZGVyKFdURk1vdmUoKnN0cmluZykp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAg
ICBtX2hhdmVSZXBvcnRlZFZUVEhlYWRlciA9IHRydWU7CiAgICAgICAgIH0gd2hpbGUgKDApOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29u
dHJvbGxlci5jcHAKaW5kZXggZWMzYWU0Zi4uYTM3ZDg0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcApAQCAtNzM1
LDcgKzczNSwxMCBAQCBSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBUaWxlQ29udHJvbGxlcjo6Y3Jl
YXRlVGlsZUxheWVyKGNvbnN0IEludFJlY3QmIHRpbGVSZWN0LAogICAgIG5hbWVCdWlsZGVyLmFw
cGVuZE51bWJlcih0aWxlUmVjdC5sb2NhdGlvbigpLngoKSk7CiAgICAgbmFtZUJ1aWxkZXIuYXBw
ZW5kKCcsJyk7CiAgICAgbmFtZUJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRpbGVSZWN0LmxvY2F0aW9u
KCkueSgpKTsKLSAgICBsYXllci0+c2V0TmFtZShuYW1lQnVpbGRlci50b1N0cmluZygpKTsKKyAg
ICBpZiAoYXV0byBzdHJpbmcgPSBuYW1lQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBsYXll
ci0+c2V0TmFtZSgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAgICBm
bG9hdCB0ZW1wb3JhcnlTY2FsZUZhY3RvciA9IG93bmluZ0dyYXBoaWNzTGF5ZXIoKS0+cGxhdGZv
cm1DQUxheWVyQ29udGVudHNTY2FsZU11bHRpcGxpZXJGb3JOZXdUaWxlcyhtX3RpbGVDYWNoZUxh
eWVyKTsKICAgICBtX2hhc1RpbGVzV2l0aFRlbXBvcmFyeVNjYWxlRmFjdG9yIHw9IHRlbXBvcmFy
eVNjYWxlRmFjdG9yICE9IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9UaWxlR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9UaWxlR3JpZC5jcHAKaW5kZXggNTkxOWY5Ny4uZTg2NjU5NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUdyaWQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNwcApAQCAtNTksNyArNTks
OSBAQCBzdGF0aWMgU3RyaW5nIHZhbGlkYXRpb25Qb2xpY3lBc1N0cmluZyhUaWxlR3JpZDo6VGls
ZVZhbGlkYXRpb25Qb2xpY3kgdmFsaWRhdGlvbgogICAgIH0KICAgICBidWlsZGVyLmFwcGVuZExp
dGVyYWwoIl0iKTsKIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5jcHAKaW5k
ZXggYzAwMGI0My4uZmE2NDBmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5jcHAKQEAgLTkz
NCw3ICs5MzQsOSBAQCBTdHJpbmcgUGxhdGZvcm1DQUxheWVyV2luOjpsYXllclRyZWVBc1N0cmlu
ZygpIGNvbnN0CiAgICAgLy8gUHJpbnQgbGF5ZXIgdHJlZSBmcm9tIHRoZSByb290CiAgICAgcHJp
bnRMYXllcihidWlsZGVyLCB0aGlzLCAwKTsKIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBSZWY8UGxhdGZvcm1DQUxheWVyPiBQ
bGF0Zm9ybUNBTGF5ZXJXaW46OmNyZWF0ZUNvbXBhdGlibGVMYXllcihQbGF0Zm9ybUNBTGF5ZXI6
OkxheWVyVHlwZSBsYXllclR5cGUsIFBsYXRmb3JtQ0FMYXllckNsaWVudCogY2xpZW50KSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9U
ZXh0dXJlQ29waWVyQ1YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3Yv
VmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwCmluZGV4IGRmZmNkY2IuLjQ3ZjMyMzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGll
ckNWLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1Rl
eHR1cmVDb3BpZXJDVi5jcHAKQEAgLTUxMiw3ICs1MTIsMTAgQEAgYm9vbCBWaWRlb1RleHR1cmVD
b3BpZXJDVjo6aW5pdGlhbGl6ZUNvbnRleHRPYmplY3RzKCkKICAgICB2ZXJ0ZXhTaGFkZXJTb3Vy
Y2UuYXBwZW5kTGl0ZXJhbCgifVxuIik7CiAKICAgICBQbGF0Zm9ybTNET2JqZWN0IHZlcnRleFNo
YWRlciA9IG1fY29udGV4dC0+Y3JlYXRlU2hhZGVyKEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhf
U0hBREVSKTsKLSAgICBtX2NvbnRleHQtPnNoYWRlclNvdXJjZSh2ZXJ0ZXhTaGFkZXIsIHZlcnRl
eFNoYWRlclNvdXJjZS50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSB2ZXJ0ZXhT
aGFkZXJTb3VyY2UudG9TdHJpbmcoKSkKKyAgICAgICAgbV9jb250ZXh0LT5zaGFkZXJTb3VyY2Uo
dmVydGV4U2hhZGVyLCAqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAg
bV9jb250ZXh0LT5jb21waWxlU2hhZGVyRGlyZWN0KHZlcnRleFNoYWRlcik7CiAKICAgICBHQzNE
aW50IHZhbHVlID0gMDsKQEAgLTU1Myw3ICs1NTYsMTAgQEAgYm9vbCBWaWRlb1RleHR1cmVDb3Bp
ZXJDVjo6aW5pdGlhbGl6ZUNvbnRleHRPYmplY3RzKCkKICAgICBmcmFnbWVudFNoYWRlclNvdXJj
ZS5hcHBlbmRMaXRlcmFsKCJ9XG4iKTsKIAogICAgIFBsYXRmb3JtM0RPYmplY3QgZnJhZ21lbnRT
aGFkZXIgPSBtX2NvbnRleHQtPmNyZWF0ZVNoYWRlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBR01F
TlRfU0hBREVSKTsKLSAgICBtX2NvbnRleHQtPnNoYWRlclNvdXJjZShmcmFnbWVudFNoYWRlciwg
ZnJhZ21lbnRTaGFkZXJTb3VyY2UudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
ZnJhZ21lbnRTaGFkZXJTb3VyY2UudG9TdHJpbmcoKSkKKyAgICAgICAgbV9jb250ZXh0LT5zaGFk
ZXJTb3VyY2UoZnJhZ21lbnRTaGFkZXIsICpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JB
U0goKTsKICAgICBtX2NvbnRleHQtPmNvbXBpbGVTaGFkZXJEaXJlY3QoZnJhZ21lbnRTaGFkZXIp
OwogCiAgICAgbV9jb250ZXh0LT5nZXRTaGFkZXJpdihmcmFnbWVudFNoYWRlciwgR3JhcGhpY3ND
b250ZXh0M0Q6OkNPTVBJTEVfU1RBVFVTLCAmdmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29t
bW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKaW5kZXggNWJkZDY2My4uMDI1ZWNjYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dDNET3BlbkdMQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCkBAIC05NTMsNyAr
OTUzLDkgQEAgc3RhdGljIFN0cmluZyBnZW5lcmF0ZUhhc2hlZE5hbWUoY29uc3QgU3RyaW5nJiBu
YW1lKQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVuZExpdGVy
YWwoIndlYmdsXyIpOwogICAgIGFwcGVuZFVuc2lnbmVkNjRBc0hleChudW1iZXIsIGJ1aWxkZXIs
IExvd2VyY2FzZSk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOwor
ICAgIENSQVNIKCk7CiB9CiAKIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBHcmFwaGljc0NvbnRleHQz
RDo6bWFwcGVkU3ltYm9sSW5TaGFkZXJTb3VyY2VNYXAoUGxhdGZvcm0zRE9iamVjdCBzaGFkZXIs
IEFOR0xFU2hhZGVyU3ltYm9sVHlwZSBzeW1ib2xUeXBlLCBjb25zdCBTdHJpbmcmIG5hbWUpCkBA
IC0xNjg1LDggKzE2ODcsMTEgQEAgU3RyaW5nIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRVbm1hbmds
ZWRJbmZvTG9nKFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyc1syXSwgR0MzRHMKIAogICAgIHByb2Nl
c3NlZExvZy5hcHBlbmQobG9nLnN1YnN0cmluZyhzdGFydEZyb20sIGxvZy5sZW5ndGgoKSAtIHN0
YXJ0RnJvbSkpOwogCi0gICAgTE9HKFdlYkdMLCAiVW5tYW5nbGVkIFNoYWRlckluZm9Mb2c6XG4l
cyIsIHByb2Nlc3NlZExvZy50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIHJldHVybiBw
cm9jZXNzZWRMb2cudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBwcm9jZXNzZWRM
b2cudG9TdHJpbmcoKSkgeworICAgICAgICBMT0coV2ViR0wsICJVbm1hbmdsZWQgU2hhZGVySW5m
b0xvZzpcbiVzIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBHcmFwaGljc0NvbnRleHQzRDo6
Z2V0UHJvZ3JhbUluZm9Mb2coUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFk
ZXJQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAKaW5kZXggMmU2YzUyYy4uMjRhODhmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJTaGFkZXJQcm9ncmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwCkBAIC0zOTcsNyArMzk3
LDEwIEBAIFJlZjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gVGV4dHVyZU1hcHBlclNoYWRl
clByb2dyYW06OmNyZWF0ZShUZXh0dXJlTWFwcGVyCiAjZW5kaWYKIAogICAgIC8vIEFwcGVuZCB0
aGUgb3B0aW9ucy4KLSAgICB2ZXJ0ZXhTaGFkZXJCdWlsZGVyLmFwcGVuZChvcHRpb25zQXBwbGll
ckJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gb3B0aW9uc0FwcGxp
ZXJCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHZlcnRleFNoYWRlckJ1aWxkZXIuYXBwZW5k
KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIC8vIEFwcGVuZCB0
aGUgYXBwcm9wcmlhdGUgaW5wdXQvb3V0cHV0IHZhcmlhYmxlIGRlZmluaXRpb25zLgogI2lmIFVT
RShPUEVOR0xfRVMpCkBAIC00MjEsNyArNDI0LDEwIEBAIFJlZjxUZXh0dXJlTWFwcGVyU2hhZGVy
UHJvZ3JhbT4gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OmNyZWF0ZShUZXh0dXJlTWFwcGVy
CiAjZW5kaWYKIAogICAgIC8vIEFwcGVuZCB0aGUgb3B0aW9ucy4KLSAgICBmcmFnbWVudFNoYWRl
ckJ1aWxkZXIuYXBwZW5kKG9wdGlvbnNBcHBsaWVyQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBvcHRpb25zQXBwbGllckJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgZnJhZ21lbnRTaGFkZXJCdWlsZGVyLmFwcGVuZCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAg
ICAgIENSQVNIKCk7CiAKICAgICAvLyBBcHBlbmQgdGhlIGNvbW1vbiBoZWFkZXIuCiAgICAgZnJh
Z21lbnRTaGFkZXJCdWlsZGVyLmFwcGVuZChmcmFnbWVudFRlbXBsYXRlSGVhZGVyQ29tbW9uKTsK
QEAgLTQzOSw3ICs0NDUsMTAgQEAgUmVmPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiBUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKFRleHR1cmVNYXBwZXIKICAgICAvLyBBcHBl
bmQgdGhlIGNvbW1vbiBjb2RlLgogICAgIGZyYWdtZW50U2hhZGVyQnVpbGRlci5hcHBlbmQoZnJh
Z21lbnRUZW1wbGF0ZUNvbW1vbik7CiAKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXh0dXJl
TWFwcGVyU2hhZGVyUHJvZ3JhbSh2ZXJ0ZXhTaGFkZXJCdWlsZGVyLnRvU3RyaW5nKCksIGZyYWdt
ZW50U2hhZGVyQnVpbGRlci50b1N0cmluZygpKSk7CisgICAgaWYgKGF1dG8gdmVydGV4U3RyaW5n
ID0gdmVydGV4U2hhZGVyQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpZiAoYXV0byBmcmFn
bWVudFN0cmluZyA9IGZyYWdtZW50U2hhZGVyQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0oKnZlcnRl
eFN0cmluZywgKmZyYWdtZW50U3RyaW5nKSk7CisgICAgQ1JBU0goKTsKIH0KIAogI2lmICFMT0df
RElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWxlY3Rp
b25EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWxlY3Rpb25EYXRhLmNw
cAppbmRleCAxZTI3OTliLi5mZmM3ZTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvU2VsZWN0aW9uRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1NlbGVjdGlvbkRhdGEuY3BwCkBAIC05Niw3ICs5NiwxMCBAQCB2b2lkIFNlbGVjdGlvbkRh
dGE6OnNldFVSTChjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBsYWJlbCkKICAgICBHVW5p
cXVlUHRyPGdjaGFyPiBlc2NhcGVkKGdfbWFya3VwX2VzY2FwZV90ZXh0KGFjdHVhbExhYmVsLnV0
ZjgoKS5kYXRhKCksIC0xKSk7CiAgICAgbWFya3VwLmFwcGVuZChTdHJpbmc6OmZyb21VVEY4KGVz
Y2FwZWQuZ2V0KCkpKTsKICAgICBtYXJrdXAuYXBwZW5kKCI8L2E+Iik7Ci0gICAgc2V0TWFya3Vw
KG1hcmt1cC50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBtYXJrdXAudG9TdHJp
bmcoKSkKKyAgICAgICAgc2V0TWFya3VwKCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JB
U0goKTsKIH0KIAogY29uc3QgU3RyaW5nJiBTZWxlY3Rpb25EYXRhOjp1cmxMYWJlbCgpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCmluZGV4IDM2
NThkZDEuLmExMmNiMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Q
YXN0ZWJvYXJkTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJv
YXJkTWFjLm1tCkBAIC0yODgsNyArMjg4LDkgQEAgc3RhdGljIFN0cmluZyBqb2luUGF0aG5hbWVz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXRobmFtZXMpCiAgICAgICAgICAgICBidWlsZGVyLmFw
cGVuZCgnXG4nKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQocGF0aCk7CiAgICAgfQotICAgIHJl
dHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2
b2lkIFBhc3RlYm9hcmQ6OnJlYWQoUGFzdGVib2FyZFBsYWluVGV4dCYgdGV4dCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tCmluZGV4IDdjZDFiZDgu
LjlmMzhmYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdV
dGlsaXRpZXMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxp
dGllcy5tbQpAQCAtNTAsOCArNTAsMTAgQEAgc3RhdGljIFN0cmluZyB3aWxkY2FyZFJlZ2V4UGF0
dGVyblN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKICAgICAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmQoY2hhcmFjdGVyKTsKICAgICB9CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJyQnKTsK
LSAgICAgICAgCi0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKworICAgIGlm
IChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KICAgICAKIGJvb2wgc3RyaW5nTWF0Y2hlc1dpbGRj
YXJkU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBTdHJpbmcmIHdpbGRjYXJkU3Ry
aW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3JvbGxBbmlt
YXRvck1vY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3JvbGxBbmltYXRv
ck1vY2suY3BwCmluZGV4IDNjYzBmZTkuLjMxYmQzZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svU2Nyb2xsQW5pbWF0b3JNb2NrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL1Njcm9sbEFuaW1hdG9yTW9jay5jcHAKQEAgLTEwMSw3ICsxMDEs
MTAgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1vY2s6Om1vdXNlRW50ZXJlZFNjcm9sbGJhcihTY3Jv
bGxiYXIqIHNjcm9sbGJhcikgY29uc3QKICAgICBlbHNlCiAgICAgICAgIG1lc3NhZ2UuYXBwZW5k
TGl0ZXJhbCgiVW5rbm93biIpOwogICAgIG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiU2Nyb2xsYmFy
Iik7Ci0gICAgbV9sb2dnZXIobWVzc2FnZS50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJp
bmcgPSBtZXNzYWdlLnRvU3RyaW5nKCkpCisgICAgICAgIG1fbG9nZ2VyKCpzdHJpbmcpOworICAg
IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKICAgICBTY3JvbGxBbmltYXRvcjo6bW91c2VFbnRlcmVk
U2Nyb2xsYmFyKHNjcm9sbGJhcik7CiB9CiAKQEAgLTExNiw3ICsxMTksMTAgQEAgdm9pZCBTY3Jv
bGxBbmltYXRvck1vY2s6Om1vdXNlRXhpdGVkU2Nyb2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFy
KSBjb25zdAogICAgIGVsc2UKICAgICAgICAgbWVzc2FnZS5hcHBlbmRMaXRlcmFsKCJVbmtub3du
Iik7CiAgICAgbWVzc2FnZS5hcHBlbmRMaXRlcmFsKCJTY3JvbGxiYXIiKTsKLSAgICBtX2xvZ2dl
cihtZXNzYWdlLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1lc3NhZ2UudG9T
dHJpbmcoKSkKKyAgICAgICAgbV9sb2dnZXIoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBD
UkFTSCgpOwogICAgIFNjcm9sbEFuaW1hdG9yOjptb3VzZUV4aXRlZFNjcm9sbGJhcihzY3JvbGxi
YXIpOwogfQogCkBAIC0xMzYsNyArMTQyLDEwIEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNb2NrOjpt
b3VzZUlzRG93bkluU2Nyb2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyLCBib29sIGlzUHJlCiAg
ICAgZWxzZQogICAgICAgICBtZXNzYWdlLmFwcGVuZExpdGVyYWwoIlVua25vd24iKTsKICAgICBt
ZXNzYWdlLmFwcGVuZExpdGVyYWwoIlNjcm9sbGJhciIpOwotICAgIG1fbG9nZ2VyKG1lc3NhZ2Uu
dG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWVzc2FnZS50b1N0cmluZygpKQor
ICAgICAgICBtX2xvZ2dlcigqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAg
ICAgU2Nyb2xsQW5pbWF0b3I6Om1vdXNlSXNEb3duSW5TY3JvbGxiYXIoc2Nyb2xsYmFyLCBpc1By
ZXNzZWQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21l
ZGlhc291cmNlL01vY2tCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRp
YXNvdXJjZS9Nb2NrQm94LmNwcAppbmRleCBkNGFhMjA1Li5mYjY1YTllIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tCb3guY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja0JveC5jcHAKQEAg
LTUyLDcgKzUyLDkgQEAgU3RyaW5nIE1vY2tCb3g6OnBlZWtUeXBlKEFycmF5QnVmZmVyKiBkYXRh
KQogICAgIFJlZlB0cjxJbnQ4QXJyYXk+IGFycmF5ID0gSlNDOjpJbnQ4QXJyYXk6OmNyZWF0ZShk
YXRhLCAwLCA0KTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7ICsraSkKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoYXJyYXktPml0ZW0oaSkpOwotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBy
ZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzaXplX3QgTW9ja0JveDo6cGVla0xl
bmd0aChBcnJheUJ1ZmZlciogZGF0YSkKQEAgLTczLDcgKzc1LDEwIEBAIE1vY2tUcmFja0JveDo6
TW9ja1RyYWNrQm94KEFycmF5QnVmZmVyKiBkYXRhKQogICAgIFJlZlB0cjxJbnQ4QXJyYXk+IGFy
cmF5ID0gSlNDOjpJbnQ4QXJyYXk6OmNyZWF0ZShkYXRhLCAxMiwgNCk7CiAgICAgZm9yIChpbnQg
aSA9IDA7IGkgPCA0OyArK2kpCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGFycmF5LT5pdGVtKGkp
KTsKLSAgICBtX2NvZGVjID0gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgbV9jb2RlYyA9ICpzdHJpbmc7CisgICAg
ZWxzZQorICAgICAgICBDUkFTSCgpOwogCiAgICAgbV9raW5kID0gc3RhdGljX2Nhc3Q8VHJhY2tL
aW5kPih2aWV3LT5nZXQ8dWludDhfdD4oMTYsIHRydWUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAKaW5kZXggYzhmNDVlNS4uOGQzMGQ4
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vy
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5j
cHAKQEAgLTMyOCw3ICszMjgsOSBAQCBTdHJpbmcgZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlw
ZShjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSkKIAogICAgIGlmIChtaW1lVHlwZS5sZW5ndGgoKSA9
PSBsZW5ndGgpCiAgICAgICAgIHJldHVybiBtZWRpYVR5cGU7Ci0gICAgcmV0dXJuIG1pbWVUeXBl
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWltZVR5cGUudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIGV4dHJh
Y3RDaGFyc2V0RnJvbU1lZGlhVHlwZShjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTUlNRUhlYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL01JTUVIZWFkZXIuY3BwCmluZGV4IDI1MTY5M2Uu
Ljc3NjcwOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTUlN
RUhlYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9NSU1FSGVh
ZGVyLmNwcApAQCAtNjMsNyArNjMsMTAgQEAgc3RhdGljIEtleVZhbHVlTWFwIHJldHJpZXZlS2V5
VmFsdWVQYWlycyhXZWJDb3JlOjpTaGFyZWRCdWZmZXJDaHVua1JlYWRlciYgYnVmZmUKICAgICAg
ICAgaWYgKCFrZXkuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBpZiAoa2V5VmFsdWVQYWlycy5m
aW5kKGtleSkgIT0ga2V5VmFsdWVQYWlycy5lbmQoKSkKICAgICAgICAgICAgICAgICBMT0dfRVJS
T1IoIktleSBkdXBsaWNhdGUgZm91bmQgaW4gTUlNRSBoZWFkZXIuIEtleSBpcyAnJXMnLCBwcmV2
aW91cyB2YWx1ZSByZXBsYWNlZC4iLCBrZXkuYXNjaWkoKS5kYXRhKCkpOwotICAgICAgICAgICAg
a2V5VmFsdWVQYWlycy5hZGQoa2V5LCB2YWx1ZS50b1N0cmluZygpLnN0cmlwV2hpdGVTcGFjZSgp
KTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHZhbHVlLnRvU3RyaW5nKCkpCisgICAg
ICAgICAgICAgICAga2V5VmFsdWVQYWlycy5hZGQoa2V5LCBzdHJpbmctPnN0cmlwV2hpdGVTcGFj
ZSgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAg
ICAgICAga2V5ID0gU3RyaW5nKCk7CiAgICAgICAgICAgICB2YWx1ZS5jbGVhcigpOwogICAgICAg
ICB9CkBAIC03Niw4ICs3OSwxMiBAQCBzdGF0aWMgS2V5VmFsdWVNYXAgcmV0cmlldmVLZXlWYWx1
ZVBhaXJzKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlckNodW5rUmVhZGVyJiBidWZmZQogICAgICAgICB2
YWx1ZS5hcHBlbmQobGluZS5zdWJzdHJpbmcoc2VtaUNvbG9uSW5kZXggKyAxKSk7CiAgICAgfQog
ICAgIC8vIFN0b3JlIHRoZSBsYXN0IHByb3BlcnR5IGlmIHRoZXJlIGlzIG9uZS4KLSAgICBpZiAo
IWtleS5pc0VtcHR5KCkpCi0gICAgICAgIGtleVZhbHVlUGFpcnMuc2V0KGtleSwgdmFsdWUudG9T
dHJpbmcoKS5zdHJpcFdoaXRlU3BhY2UoKSk7CisgICAgaWYgKCFrZXkuaXNFbXB0eSgpKSB7Cisg
ICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHZhbHVlLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBr
ZXlWYWx1ZVBhaXJzLnNldChrZXksIHN0cmluZy0+c3RyaXBXaGl0ZVNwYWNlKCkpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOworICAgIH0KICAgICByZXR1cm4ga2V5VmFsdWVQ
YWlyczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Q
cm94eVNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3h5U2Vy
dmVyLmNwcAppbmRleCBjNmQ2N2MyLi4wYzY5ZjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3h5U2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Byb3h5U2VydmVyLmNwcApAQCAtNjgsNyArNjgsOSBAQCBTdHJpbmcg
dG9TdHJpbmcoY29uc3QgVmVjdG9yPFByb3h5U2VydmVyPiYgcHJveHlTZXJ2ZXJzKQogICAgICAg
ICBhcHBlbmRQcm94eVNlcnZlclN0cmluZyhzdHJpbmdCdWlsZGVyLCBwcm94eVNlcnZlcnNbaV0p
OwogICAgIH0KIAotICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4g
KnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsRGF0YWJhc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmxEYXRhYmFzZS5jcHAK
aW5kZXggNjcyYjI1MS4uYTRlNzRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmxEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmxEYXRhYmFzZS5jcHAKQEAg
LTU3LDcgKzU3LDkgQEAgc3RhdGljIFN0cmluZyBjb29raWVzRm9yU2Vzc2lvbihjb25zdCBOZXR3
b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYKICAgICAgICAgICAgIGNvb2tp
ZXMuYXBwZW5kKHJlc3VsdC52YWx1ZSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIGNv
b2tpZXMudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBjb29raWVzLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgQ29v
a2llSmFyQ3VybERhdGFiYXNlOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJ
bmZvJiwgY29uc3QgVVJMJiB1cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0
ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZUph
ck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZUphck1h
Yy5tbQppbmRleCBjMjY0MGJkLi4wMDA1ZGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVKYXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvQ29va2llSmFyTWFjLm1tCkBAIC0yNjEsNyArMjYxLDEwIEBA
IHN0YXRpYyBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yU2Vzc2lvbihjb25zdCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlCiAgICAgICAgIGNvb2tpZXNCdWlsZGVyLmFwcGVuZCgn
PScpOwogICAgICAgICBjb29raWVzQnVpbGRlci5hcHBlbmQoW2Nvb2tpZSB2YWx1ZV0pOwogICAg
IH0KLSAgICByZXR1cm4geyBjb29raWVzQnVpbGRlci50b1N0cmluZygpLCBkaWRBY2Nlc3NTZWN1
cmVDb29raWVzIH07CisKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBjb29raWVzQnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICByZXR1cm4geyAqc3RyaW5nLCBkaWRBY2Nlc3NTZWN1cmVDb29raWVz
IH07CisgICAgQ1JBU0goKTsKIAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAgICAg
cmV0dXJuIHsgU3RyaW5nKCksIGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcAppbmRleCA0ZGE3Y2Y2Li4zODlkMmRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAK
QEAgLTMxMCw3ICszMTAsOSBAQCBTdHJpbmcgcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50cyhTdHJp
bmdWaWV3IHBhdGgsIGNvbnN0IFZlY3RvcjxTdHJpbmdWaWV3PiYgY29tcAogICAgICAgICBidWls
ZGVyLmFwcGVuZCgnLycpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChjb21wb25lbnQpOwogICAg
IH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogYm9vbCBtYWtlQWxsRGlyZWN0b3JpZXMoY29uc3QgU3RyaW5nJiBwYXRoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0LmNwcAppbmRleCBj
NzVkMzNkLi5hMWVmYzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L0RhdGVUaW1lRm9ybWF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Rh
dGVUaW1lRm9ybWF0LmNwcApAQCAtMTQ1LDcgKzE0NSwxMCBAQCBib29sIERhdGVUaW1lRm9ybWF0
OjpwYXJzZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgVG9rZW5IYW5kbGVyJiB0b2tlbkhhbmRsZXIp
CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChsaXRlcmFsQnVmZmVyLmxlbmd0aCgp
KSB7Ci0gICAgICAgICAgICAgICAgdG9rZW5IYW5kbGVyLnZpc2l0TGl0ZXJhbChsaXRlcmFsQnVm
ZmVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGxpdGVy
YWxCdWZmZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgdG9rZW5IYW5kbGVyLnZp
c2l0TGl0ZXJhbCgqc3RyaW5nKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAgICAgbGl0ZXJhbEJ1ZmZlci5jbGVhcigpOwog
ICAgICAgICAgICAgfQogCkBAIC0xNjksNyArMTcyLDEwIEBAIGJvb2wgRGF0ZVRpbWVGb3JtYXQ6
OnBhcnNlKGNvbnN0IFN0cmluZyYgc291cmNlLCBUb2tlbkhhbmRsZXImIHRva2VuSGFuZGxlcikK
ICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKGxpdGVyYWxCdWZmZXIubGVuZ3RoKCkp
IHsKLSAgICAgICAgICAgICAgICB0b2tlbkhhbmRsZXIudmlzaXRMaXRlcmFsKGxpdGVyYWxCdWZm
ZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gbGl0ZXJh
bEJ1ZmZlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgICAgICB0b2tlbkhhbmRsZXIudmlz
aXRMaXRlcmFsKCpzdHJpbmcpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICAgICAgQ1JBU0goKTsKICAgICAgICAgICAgICAgICBsaXRlcmFsQnVmZmVyLmNsZWFyKCk7CiAg
ICAgICAgICAgICB9CiAKQEAgLTIyMCwxNCArMjI2LDIyIEBAIGJvb2wgRGF0ZVRpbWVGb3JtYXQ6
OnBhcnNlKGNvbnN0IFN0cmluZyYgc291cmNlLCBUb2tlbkhhbmRsZXImIHRva2VuSGFuZGxlcikK
ICAgICBzd2l0Y2ggKHN0YXRlKSB7CiAgICAgY2FzZSBTdGF0ZUxpdGVyYWw6CiAgICAgY2FzZSBT
dGF0ZUluUXVvdGVRdW90ZToKLSAgICAgICAgaWYgKGxpdGVyYWxCdWZmZXIubGVuZ3RoKCkpCi0g
ICAgICAgICAgICB0b2tlbkhhbmRsZXIudmlzaXRMaXRlcmFsKGxpdGVyYWxCdWZmZXIudG9TdHJp
bmcoKSk7CisgICAgICAgIGlmIChsaXRlcmFsQnVmZmVyLmxlbmd0aCgpKSB7CisgICAgICAgICAg
ICBpZiAoYXV0byBzdHJpbmcgPSBsaXRlcmFsQnVmZmVyLnRvU3RyaW5nKCkpCisgICAgICAgICAg
ICAgICAgdG9rZW5IYW5kbGVyLnZpc2l0TGl0ZXJhbCgqc3RyaW5nKTsKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CiAgICAgICAgIHJldHVybiB0
cnVlOwogCiAgICAgY2FzZSBTdGF0ZVF1b3RlOgogICAgIGNhc2UgU3RhdGVJblF1b3RlOgotICAg
ICAgICBpZiAobGl0ZXJhbEJ1ZmZlci5sZW5ndGgoKSkKLSAgICAgICAgICAgIHRva2VuSGFuZGxl
ci52aXNpdExpdGVyYWwobGl0ZXJhbEJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGxp
dGVyYWxCdWZmZXIubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGxp
dGVyYWxCdWZmZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICB0b2tlbkhhbmRsZXIudmlz
aXRMaXRlcmFsKCpzdHJpbmcpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENS
QVNIKCk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgY2FzZSBTdGF0
ZVN5bWJvbDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRGVjb2Rl
RXNjYXBlU2VxdWVuY2VzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RlY29kZUVz
Y2FwZVNlcXVlbmNlcy5oCmluZGV4IDE0Y2Y0MTUuLjcyYTBhNWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EZWNvZGVFc2NhcGVTZXF1ZW5jZXMuaApAQCAtNjQs
NyArNjQsOSBAQCBzdHJ1Y3QgVW5pY29kZTE2Qml0RXNjYXBlU2VxdWVuY2UgewogICAgICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoY29kZVVuaXQpOwogICAgICAgICAgICAgcnVuID0gcnVuLnN1YnN0
cmluZyhzZXF1ZW5jZVNpemUpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRv
U3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KIH07
CiAKQEAgLTE1MSw3ICsxNTMsOSBAQCBTdHJpbmcgZGVjb2RlRXNjYXBlU2VxdWVuY2VzKFN0cmlu
Z1ZpZXcgc3RyaW5nLCBjb25zdCBUZXh0RW5jb2RpbmcmIGVuY29kaW5nKQogICAgICAgICBkZWNv
ZGVkUG9zaXRpb24gPSBlbmNvZGVkUnVuRW5kOwogICAgIH0KICAgICByZXN1bHQuYXBwZW5kKHN0
cmluZy5zdWJzdHJpbmcoZGVjb2RlZFBvc2l0aW9uLCBsZW5ndGggLSBkZWNvZGVkUG9zaXRpb24p
KTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
cmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIGlubGluZSBWZWN0b3I8dWludDhfdD4gZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzQXNE
YXRhKFN0cmluZ1ZpZXcgc3RyaW5nLCBjb25zdCBUZXh0RW5jb2RpbmcmIGVuY29kaW5nKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxlLmNwcAppbmRleCAw
ODc0MzI1Li5hOWU1OGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L1BsYXRmb3JtTG9jYWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1Bs
YXRmb3JtTG9jYWxlLmNwcApAQCAtODMsNyArODMsOSBAQCBTdHJpbmcgRGF0ZVRpbWVTdHJpbmdC
dWlsZGVyOjp6ZXJvUGFkU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBzaXplX3Qgd2lkdGgp
CiAgICAgZm9yIChzaXplX3QgaSA9IHN0cmluZy5sZW5ndGgoKTsgaSA8IHdpZHRoOyArK2kpCiAg
ICAgICAgIHplcm9QYWRkZWRTdHJpbmdCdWlsZGVyLmFwcGVuZCgnMCcpOwogICAgIHplcm9QYWRk
ZWRTdHJpbmdCdWlsZGVyLmFwcGVuZChzdHJpbmcpOwotICAgIHJldHVybiB6ZXJvUGFkZGVkU3Ry
aW5nQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHplcm9QYWRkZWRT
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENS
QVNIKCk7CiB9CiAKIHZvaWQgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIoaW50
IG51bWJlciwgc2l6ZV90IHdpZHRoKQpAQCAtMTc1LDcgKzE3Nyw5IEBAIHZvaWQgRGF0ZVRpbWVT
dHJpbmdCdWlsZGVyOjp2aXNpdExpdGVyYWwoY29uc3QgU3RyaW5nJiB0ZXh0KQogCiBTdHJpbmcg
RGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjp0b1N0cmluZygpCiB7Ci0gICAgcmV0dXJuIG1fYnVpbGRl
ci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1fYnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiAjZW5kaWYKQEAg
LTIzOCw3ICsyNDIsOSBAQCBTdHJpbmcgTG9jYWxlOjpjb252ZXJ0VG9Mb2NhbGl6ZWROdW1iZXIo
Y29uc3QgU3RyaW5nJiBpbnB1dCkKIAogICAgIGJ1aWxkZXIuYXBwZW5kKGlzTmVnYXRpdmUgPyBt
X25lZ2F0aXZlU3VmZml4IDogbV9wb3NpdGl2ZVN1ZmZpeCk7CiAKLSAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIGJvb2wg
bWF0Y2hlcyhjb25zdCBTdHJpbmcmIHRleHQsIHVuc2lnbmVkIHBvc2l0aW9uLCBjb25zdCBTdHJp
bmcmIHBhcnQpCkBAIC0zMjEsNyArMzI3LDkgQEAgU3RyaW5nIExvY2FsZTo6Y29udmVydEZyb21M
b2NhbGl6ZWROdW1iZXIoY29uc3QgU3RyaW5nJiBsb2NhbGl6ZWQpCiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHN0YXRpY19jYXN0PFVDaGFyPignMCcgKyBzeW1ib2xJ
bmRleCkpOwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVT
KQpAQCAtMzYwLDcgKzM2OCw5IEBAIFN0cmluZyBMb2NhbGU6OmZvcm1hdERhdGVUaW1lKGNvbnN0
IERhdGVDb21wb25lbnRzJiBkYXRlLCBGb3JtYXRUeXBlIGZvcm1hdFR5cGUpCiAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgcmV0dXJuIGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAjZW5kaWYgLy8g
IVBMQVRGT1JNKElPUykKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9TZWdtZW50ZWRTdHJpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdt
ZW50ZWRTdHJpbmcuY3BwCmluZGV4IGZmMzFiMmEuLjQ4Y2JhMGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmluZy5jcHAKQEAgLTE1OSw3ICsxNTks
OSBAQCBTdHJpbmcgU2VnbWVudGVkU3RyaW5nOjp0b1N0cmluZygpIGNvbnN0CiAgICAgbV9jdXJy
ZW50U3Vic3RyaW5nLmFwcGVuZFRvKHJlc3VsdCk7CiAgICAgZm9yIChhdXRvJiBzdWJzdHJpbmcg
OiBtX290aGVyU3Vic3RyaW5ncykKICAgICAgICAgc3Vic3RyaW5nLmFwcGVuZFRvKHJlc3VsdCk7
Ci0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJl
c3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwog
fQogCiB2b2lkIFNlZ21lbnRlZFN0cmluZzo6YWR2YW5jZVdpdGhvdXRVcGRhdGluZ0xpbmVOdW1i
ZXIxNigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2Rl
Y0lDVS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAK
aW5kZXggZDJlMmFlNy4uNzYyMmNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9UZXh0Q29kZWNJQ1UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvVGV4dENvZGVjSUNVLmNwcApAQCAtMzE4LDEzICszMTgsMTQgQEAgU3RyaW5nIFRleHRDb2Rl
Y0lDVTo6ZGVjb2RlKGNvbnN0IGNoYXIqIGJ5dGVzLCBzaXplX3QgbGVuZ3RoLCBib29sIGZsdXNo
LCBib29sIHMKICAgICAgICAgc2F3RXJyb3IgPSB0cnVlOwogICAgIH0KIAotICAgIFN0cmluZyBy
ZXN1bHRTdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byByZXN1bHRTdHJp
bmcgPSByZXN1bHQudG9TdHJpbmcoKSkgeworICAgICAgICAvLyBTaW1wbGlmaWVkIENoaW5lc2Ug
cGFnZXMgdXNlIHRoZSBjb2RlIEEzQTAgdG8gbWVhbiAiZnVsbC13aWR0aCBzcGFjZSIsIGJ1dCBJ
Q1UgZGVjb2RlcyBpdCBhcyBVK0U1RTUuCisgICAgICAgIGlmICghc3RyY21wKG1fZW5jb2RpbmdO
YW1lLCAiR0JLIikgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobV9lbmNvZGluZ05h
bWUsICJnYjE4MDMwIikpCisgICAgICAgICAgICByZXN1bHRTdHJpbmctPnJlcGxhY2UoMHhFNUU1
LCBpZGVvZ3JhcGhpY1NwYWNlKTsKIAotICAgIC8vIFNpbXBsaWZpZWQgQ2hpbmVzZSBwYWdlcyB1
c2UgdGhlIGNvZGUgQTNBMCB0byBtZWFuICJmdWxsLXdpZHRoIHNwYWNlIiwgYnV0IElDVSBkZWNv
ZGVzIGl0IGFzIFUrRTVFNS4KLSAgICBpZiAoIXN0cmNtcChtX2VuY29kaW5nTmFtZSwgIkdCSyIp
IHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKG1fZW5jb2RpbmdOYW1lLCAiZ2IxODAz
MCIpKQotICAgICAgICByZXN1bHRTdHJpbmcucmVwbGFjZSgweEU1RTUsIGlkZW9ncmFwaGljU3Bh
Y2UpOwotCi0gICAgcmV0dXJuIHJlc3VsdFN0cmluZzsKKyAgICAgICAgcmV0dXJuICpyZXN1bHRT
dHJpbmc7CisgICAgfQorICAgIENSQVNIKCk7CiB9CiAKIC8vIFdlIG5lZWQgdG8gYXBwbHkgdGhl
c2UgZmFsbGJhY2tzIG91cnNlbHZlcyBhcyB0aGV5IGFyZSBub3QgY3VycmVudGx5IHN1cHBvcnRl
ZCBieSBJQ1UgYW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1Rl
eHRDb2RlY1VzZXJEZWZpbmVkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4
dENvZGVjVXNlckRlZmluZWQuY3BwCmluZGV4IDI5NmM0NjkuLmNiNzBlNDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjVXNlckRlZmluZWQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjVXNlckRlZmluZWQuY3Bw
CkBAIC01Myw3ICs1Myw5IEBAIFN0cmluZyBUZXh0Q29kZWNVc2VyRGVmaW5lZDo6ZGVjb2RlKGNv
bnN0IGNoYXIqIGJ5dGVzLCBzaXplX3QgbGVuZ3RoLCBib29sLCBib29sCiAgICAgICAgIHNpZ25l
ZCBjaGFyIGMgPSBieXRlc1tpXTsKICAgICAgICAgcmVzdWx0LmFwcGVuZChzdGF0aWNfY2FzdDxV
Q2hhcj4oYyAmIDB4RjdGRikpOwogICAgIH0KLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBWZWN0b3I8dWludDhfdD4gZW5j
b2RlQ29tcGxleFVzZXJEZWZpbmVkKFN0cmluZ1ZpZXcgc3RyaW5nLCBVbmVuY29kYWJsZUhhbmRs
aW5nIGhhbmRsaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvb3Bl
bnZyL1ZSUGxhdGZvcm1EaXNwbGF5T3BlblZSLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3ZyL29wZW52ci9WUlBsYXRmb3JtRGlzcGxheU9wZW5WUi5jcHAKaW5kZXggZGQ2Mjg4ZS4uMTY5
ZWNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvb3BlbnZyL1ZSUGxh
dGZvcm1EaXNwbGF5T3BlblZSLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS92ci9v
cGVudnIvVlJQbGF0Zm9ybURpc3BsYXlPcGVuVlIuY3BwCkBAIC00NSw3ICs0NSwxMCBAQCBWUlBs
YXRmb3JtRGlzcGxheU9wZW5WUjo6VlJQbGF0Zm9ybURpc3BsYXlPcGVuVlIodnI6OklWUlN5c3Rl
bSogc3lzdGVtLCB2cjo6SVZSQwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChITUROYW1l
LCBsZW5ndGgpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnKScpOwogICAgIH0KLSAg
ICBtX2Rpc3BsYXlJbmZvLnNldERpc3BsYXlOYW1lKHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7
CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICBtX2Rpc3BsYXlJbmZvLnNldERpc3BsYXlOYW1lKFdURk1vdmUoKnN0cmluZykpOworICAgIGVs
c2UKKyAgICAgICAgQ1JBU0goKTsKICAgICBtX2Rpc3BsYXlJbmZvLnNldElzTW91bnRlZChmYWxz
ZSk7CiAgICAgLy8gRklYTUU6IFdlJ3JlIGFzc3VtaW5nIGFuIEhUQyBWaXZlIEhNRCBoZXJlLiBH
ZXQgdGhpcyBpbmZvIGZyb20gT3BlblZSPy4KICAgICBtX2Rpc3BsYXlJbmZvLnNldENhcGFiaWxp
dHlGbGFncyhWUkRpc3BsYXlDYXBhYmlsaXR5RmxhZ05vbmUgfCBWUkRpc3BsYXlDYXBhYmlsaXR5
RmxhZ1Bvc2l0aW9uIHwgVlJEaXNwbGF5Q2FwYWJpbGl0eUZsYWdPcmllbnRhdGlvbiB8IFZSRGlz
cGxheUNhcGFiaWxpdHlGbGFnRXh0ZXJuYWxEaXNwbGF5IHwgVlJEaXNwbGF5Q2FwYWJpbGl0eUZs
YWdQcmVzZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlw
Ym9hcmRVdGlsaXRpZXNXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBi
b2FyZFV0aWxpdGllc1dpbi5jcHAKaW5kZXggNmZmODllYy4uMmJjNmQ1ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAK
QEAgLTMxNCw3ICszMTQsMTAgQEAgdm9pZCByZXBsYWNlTmV3bGluZXNXaXRoV2luZG93c1N0eWxl
TmV3bGluZXMoU3RyaW5nJiBzdHIpCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJlc3VsdC5h
cHBlbmRMaXRlcmFsKCJcclxuIik7CiAgICAgfQotICAgIHN0ciA9IHJlc3VsdC50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICBzdHIg
PSAqc3RyaW5nOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCByZXBsYWNl
TkJTUFdpdGhTcGFjZShTdHJpbmcmIHN0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9Vc2VyQWdlbnRXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L1VzZXJBZ2VudFdpbi5jcHAKaW5kZXggODIwMWY0ZS4uZDNkNjk0ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1VzZXJBZ2VudFdpbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL1VzZXJBZ2VudFdpbi5jcHAKQEAgLTQ2LDcgKzQ2LDkgQEAgU3Ry
aW5nIHN0YW5kYXJkVXNlckFnZW50KGNvbnN0IFN0cmluZyYgYXBwbGljYXRpb25OYW1lLCBjb25z
dCBTdHJpbmcmIGFwcGxpY2F0aW8KICAgICAgICAgICAgIHVhU3RyaW5nLmFwcGVuZChhcHBsaWNh
dGlvblZlcnNpb24pOwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiB1YVN0cmluZy50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHVhU3RyaW5nLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFN0cmluZyBzdGFuZGFyZFVz
ZXJBZ2VudEZvclVSTChjb25zdCBVUkwmIHVybCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93cGUvUmVuZGVyVGhlbWVXUEUuY3BwCmluZGV4IGU1ZDgwMjcuLjY2OTFiZTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmNwcApAQCAtNjAsNyAr
NjAsOSBAQCBTdHJpbmcgUmVuZGVyVGhlbWVXUEU6Om1lZGlhQ29udHJvbHNTY3JpcHQoKQogICAg
IFN0cmluZ0J1aWxkZXIgc2NyaXB0QnVpbGRlcjsKICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZCht
ZWRpYUNvbnRyb2xzTG9jYWxpemVkU3RyaW5nc0phdmFTY3JpcHQsIHNpemVvZihtZWRpYUNvbnRy
b2xzTG9jYWxpemVkU3RyaW5nc0phdmFTY3JpcHQpKTsKICAgICBzY3JpcHRCdWlsZGVyLmFwcGVu
ZChtZWRpYUNvbnRyb2xzQmFzZUphdmFTY3JpcHQsIHNpemVvZihtZWRpYUNvbnRyb2xzQmFzZUph
dmFTY3JpcHQpKTsKLSAgICByZXR1cm4gc2NyaXB0QnVpbGRlci50b1N0cmluZygpOworICAgIGlm
IChhdXRvIHN0cmluZyA9IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KICNlbmRpZgogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcAppbmRleCAxYjJkNzUyLi4yZmU1
ODYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcApAQCAtNTcsNyArNTcs
OSBAQCBTdHJpbmcgRE9NTWltZVR5cGU6OnN1ZmZpeGVzKCkgY29uc3QKICAgICAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCcsJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGV4dGVuc2lvbnNbaV0p
OwogICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
Q1JBU0goKTsKIH0KIAogU3RyaW5nIERPTU1pbWVUeXBlOjpkZXNjcmlwdGlvbigpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCBmYTBlNTdhLi5iYTlj
ZDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTQyOCw3
ICs0MjgsOSBAQCBTdHJpbmcgUmVuZGVyTGF5ZXI6Om5hbWUoKSBjb25zdAogICAgIGlmIChpc1Jl
ZmxlY3Rpb24oKSkKICAgICAgICAgbmFtZS5hcHBlbmRMaXRlcmFsKCIgKHJlZmxlY3Rpb24pIik7
CiAKLSAgICByZXR1cm4gbmFtZS50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG5h
bWUudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogUmVuZGVyTGF5ZXJDb21wb3NpdG9yJiBSZW5kZXJMYXllcjo6Y29tcG9zaXRvcigpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwCmluZGV4IDBlOTA4ODguLmM3OWI2NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC04NjMsNyArODYzLDEwIEBAIHZv
aWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsb2dMYXllckluZm8oY29uc3QgUmVuZGVyTGF5ZXIm
IGxheWVyLCBpbnQgZGVwdGgpCiAKICAgICBsb2dTdHJpbmcuYXBwZW5kKGxheWVyLm5hbWUoKSk7
CiAKLSAgICBMT0coQ29tcG9zaXRpbmcsICIlcyIsIGxvZ1N0cmluZy50b1N0cmluZygpLnV0Zjgo
KS5kYXRhKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGxvZ1N0cmluZy50b1N0cmluZygpKQor
ICAgICAgICBMT0coQ29tcG9zaXRpbmcsICIlcyIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7Cisg
ICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcAppbmRleCA2NDk2OTc4Li5lNDhhMjllIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCkBAIC0x
MTE3LDcgKzExMTcsOSBAQCBTdHJpbmcgbGlzdE1hcmtlclRleHQoRUxpc3RTdHlsZVR5cGUgdHlw
ZSwgaW50IHZhbHVlKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIFJlbmRlckxp
c3RNYXJrZXI6OlJlbmRlckxpc3RNYXJrZXIoUmVuZGVyTGlzdEl0ZW0mIGxpc3RJdGVtLCBSZW5k
ZXJTdHlsZSYmIHN0eWxlKQpAQCAtMTM2Myw3ICsxMzY1LDEwIEBAIHZvaWQgUmVuZGVyTGlzdE1h
cmtlcjo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWlu
dE9mZnNlCiAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChzdWZmaXgpOwogICAgICAgICAg
ICAgICAgIGJ1ZmZlci5hcHBlbmQoc3BhY2UpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAg
dG9EcmF3ID0gYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSBidWZmZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICB0b0RyYXcgPSAqc3RyaW5nOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICBpZiAoc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCiAg
ICAgICAgICAgICAgICAgdG9EcmF3ID0gbV90ZXh0ICsgU3RyaW5nKCZzdWZmaXgsIDEpICsgU3Ry
aW5nKCZzcGFjZSwgMSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKaW5k
ZXggOGZhNTFlMi4uMTA1MjBmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
LmNwcApAQCAtMTgxLDcgKzE4MSw5IEBAIFN0cmluZyBjYXBpdGFsaXplKGNvbnN0IFN0cmluZyYg
c3RyaW5nLCBVQ2hhciBwcmV2aW91c0NoYXJhY3RlcikKICAgICAgICAgICAgIHJlc3VsdC5hcHBl
bmQoc3RyaW5nSW1wbFtpIC0gMV0pOwogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogaW5saW5lIFJlbmRlclRleHQ6OlJl
bmRlclRleHQoTm9kZSYgbm9kZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtNzU2LDE2ICs3NTgs
MTkgQEAgc3RhdGljIGZsb2F0IG1heFdvcmRGcmFnbWVudFdpZHRoKFJlbmRlclRleHQmIHJlbmRl
cmVyLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUKICAgICAgICAgZnJhZ21lbnRXaXRoSHlwaGVu
LmFwcGVuZCh3b3JkLnN1YnN0cmluZyhzdWZmaXhTdGFydCwgZnJhZ21lbnRMZW5ndGgpKTsKICAg
ICAgICAgZnJhZ21lbnRXaXRoSHlwaGVuLmFwcGVuZChzdHlsZS5oeXBoZW5TdHJpbmcoKSk7CiAK
LSAgICAgICAgVGV4dFJ1biBydW4gPSBSZW5kZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1bihmcmFn
bWVudFdpdGhIeXBoZW4udG9TdHJpbmcoKSwgc3R5bGUpOwotICAgICAgICBydW4uc2V0Q2hhcmFj
dGVyU2NhbkZvckNvZGVQYXRoKCFyZW5kZXJlci5jYW5Vc2VTaW1wbGVGb250Q29kZVBhdGgoKSk7
Ci0gICAgICAgIGZsb2F0IGZyYWdtZW50V2lkdGggPSBmb250LndpZHRoKHJ1biwgJmZhbGxiYWNr
Rm9udHMsICZnbHlwaE92ZXJmbG93KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZnJhZ21l
bnRXaXRoSHlwaGVuLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIFRleHRSdW4gcnVuID0gUmVu
ZGVyQmxvY2s6OmNvbnN0cnVjdFRleHRSdW4oKnN0cmluZywgc3R5bGUpOworICAgICAgICAgICAg
cnVuLnNldENoYXJhY3RlclNjYW5Gb3JDb2RlUGF0aCghcmVuZGVyZXIuY2FuVXNlU2ltcGxlRm9u
dENvZGVQYXRoKCkpOworICAgICAgICAgICAgZmxvYXQgZnJhZ21lbnRXaWR0aCA9IGZvbnQud2lk
dGgocnVuLCAmZmFsbGJhY2tGb250cywgJmdseXBoT3ZlcmZsb3cpOwogCi0gICAgICAgIC8vIE5h
cnJvdyBwcmVmaXhlcyBhcmUgaWdub3JlZC4gU2VlIHRyeUh5cGhlbmF0aW5nIGluIFJlbmRlckJs
b2NrTGluZUxheW91dC5jcHAuCi0gICAgICAgIGlmIChmcmFnbWVudFdpZHRoIDw9IG1pbmltdW1G
cmFnbWVudFdpZHRoVG9Db25zaWRlcikKLSAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgLy8gTmFycm93IHByZWZpeGVzIGFyZSBpZ25vcmVkLiBTZWUgdHJ5SHlwaGVuYXRpbmcgaW4g
UmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcC4KKyAgICAgICAgICAgIGlmIChmcmFnbWVudFdpZHRo
IDw9IG1pbmltdW1GcmFnbWVudFdpZHRoVG9Db25zaWRlcikKKyAgICAgICAgICAgICAgICBjb250
aW51ZTsKIAotICAgICAgICBzdWZmaXhTdGFydCArPSBmcmFnbWVudExlbmd0aDsKLSAgICAgICAg
bWF4RnJhZ21lbnRXaWR0aCA9IHN0ZDo6bWF4KG1heEZyYWdtZW50V2lkdGgsIGZyYWdtZW50V2lk
dGgpOworICAgICAgICAgICAgc3VmZml4U3RhcnQgKz0gZnJhZ21lbnRMZW5ndGg7CisgICAgICAg
ICAgICBtYXhGcmFnbWVudFdpZHRoID0gc3RkOjptYXgobWF4RnJhZ21lbnRXaWR0aCwgZnJhZ21l
bnRXaWR0aCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAK
ICAgICByZXR1cm4gbWF4RnJhZ21lbnRXaWR0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVHdGsuY3BwCmluZGV4IDA3ODU5MTAuLjU2N2M0MDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUd0ay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lR3RrLmNwcApAQCAtMjAyNiw3ICsyMDI2LDkgQEAg
U3RyaW5nIFJlbmRlclRoZW1lR3RrOjptZWRpYUNvbnRyb2xzU2NyaXB0KCkKICAgICBzY3JpcHRC
dWlsZGVyLmFwcGVuZChtZWRpYUNvbnRyb2xzTG9jYWxpemVkU3RyaW5nc0phdmFTY3JpcHQsIHNp
emVvZihtZWRpYUNvbnRyb2xzTG9jYWxpemVkU3RyaW5nc0phdmFTY3JpcHQpKTsKICAgICBzY3Jp
cHRCdWlsZGVyLmFwcGVuZChtZWRpYUNvbnRyb2xzQmFzZUphdmFTY3JpcHQsIHNpemVvZihtZWRp
YUNvbnRyb2xzQmFzZUphdmFTY3JpcHQpKTsKICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZChtZWRp
YUNvbnRyb2xzR3RrSmF2YVNjcmlwdCwgc2l6ZW9mKG1lZGlhQ29udHJvbHNHdGtKYXZhU2NyaXB0
KSk7Ci0gICAgcmV0dXJuIHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPKQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KaW5kZXggNGZlODNlMC4uMjU3OGY1MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQpAQCAtMTM2MCw3
ICsxMzYwLDEwIEBAIFN0cmluZyBSZW5kZXJUaGVtZUlPUzo6bWVkaWFDb250cm9sc1NjcmlwdCgp
CiAgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIHNjcmlwdEJ1aWxkZXI7CiAgICAgICAgICAgICBz
Y3JpcHRCdWlsZGVyLmFwcGVuZChbTlNTdHJpbmcgc3RyaW5nV2l0aENvbnRlbnRzT2ZGaWxlOlti
dW5kbGUgcGF0aEZvclJlc291cmNlOkAibW9kZXJuLW1lZGlhLWNvbnRyb2xzLWxvY2FsaXplZC1z
dHJpbmdzIiBvZlR5cGU6QCJqcyJdIGVuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nIGVycm9y
Om5pbF0pOwogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQoW05TU3RyaW5nIHN0cmlu
Z1dpdGhDb250ZW50c09mRmlsZTpbYnVuZGxlIHBhdGhGb3JSZXNvdXJjZTpAIm1vZGVybi1tZWRp
YS1jb250cm9scyIgb2ZUeXBlOkAianMiIGluRGlyZWN0b3J5OkAibW9kZXJuLW1lZGlhLWNvbnRy
b2xzIl0gZW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmcgZXJyb3I6bmlsXSk7Ci0gICAgICAg
ICAgICBtX21lZGlhQ29udHJvbHNTY3JpcHQgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICAgICAgbV9tZWRpYUNvbnRyb2xzU2NyaXB0ID0gKnN0cmluZzsKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAgICAgICAgIHJl
dHVybiBtX21lZGlhQ29udHJvbHNTY3JpcHQ7CiAgICAgfQpAQCAtMTM3Myw3ICsxMzc2LDEwIEBA
IFN0cmluZyBSZW5kZXJUaGVtZUlPUzo6bWVkaWFDb250cm9sc1NjcmlwdCgpCiAgICAgICAgIHNj
cmlwdEJ1aWxkZXIuYXBwZW5kKFtOU1N0cmluZyBzdHJpbmdXaXRoQ29udGVudHNPZkZpbGU6W2J1
bmRsZSBwYXRoRm9yUmVzb3VyY2U6QCJtZWRpYUNvbnRyb2xzQXBwbGUiIG9mVHlwZTpAImpzIl0g
ZW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmcgZXJyb3I6bmlsXSk7CiAgICAgICAgIHNjcmlw
dEJ1aWxkZXIuYXBwZW5kKFtOU1N0cmluZyBzdHJpbmdXaXRoQ29udGVudHNPZkZpbGU6W2J1bmRs
ZSBwYXRoRm9yUmVzb3VyY2U6QCJtZWRpYUNvbnRyb2xzaU9TIiBvZlR5cGU6QCJqcyJdIGVuY29k
aW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nIGVycm9yOm5pbF0pOwogCi0gICAgICAgIG1fbGVnYWN5
TWVkaWFDb250cm9sc1NjcmlwdCA9IHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAg
bV9sZWdhY3lNZWRpYUNvbnRyb2xzU2NyaXB0ID0gKnN0cmluZzsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgcmV0dXJuIG1fbGVnYWN5TWVkaWFDb250cm9s
c1NjcmlwdDsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2lu
LmNwcAppbmRleCBkZWVhMWE5Li44MzZkMDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZVdpbi5jcHAKQEAgLTEwOTQsNyArMTA5NCwxMCBAQCBTdHJpbmcgUmVuZGVy
VGhlbWVXaW46Om1lZGlhQ29udHJvbHNTY3JpcHQoKQogICAgICAgICBTdHJpbmdCdWlsZGVyIHNj
cmlwdEJ1aWxkZXI7CiAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kKHN0cmluZ1dpdGhDb250
ZW50c09mRmlsZShDRlNUUigibWVkaWFDb250cm9sc0xvY2FsaXplZFN0cmluZ3MiKSwgQ0ZTVFIo
ImpzIikpKTsKICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQoc3RyaW5nV2l0aENvbnRlbnRz
T2ZGaWxlKENGU1RSKCJtZWRpYUNvbnRyb2xzQXBwbGUiKSwgQ0ZTVFIoImpzIikpKTsKLSAgICAg
ICAgbV9tZWRpYUNvbnRyb2xzU2NyaXB0ID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpOworICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICBtX21lZGlhQ29udHJvbHNTY3JpcHQgPSAqc3RyaW5nOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICByZXR1cm4gbV9tZWRpYUNvbnRyb2xzU2NyaXB0
OwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVl
QXNUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNw
cAppbmRleCA1NWNkYjRiLi44NWM3OGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRyZWVBc1RleHQuY3BwCkBAIC0xNzAsNyArMTcwLDkgQEAgU3RyaW5nIHF1b3RlQW5k
RXNjYXBlTm9uUHJpbnRhYmxlcyhTdHJpbmdWaWV3IHMpCiAgICAgICAgIH0KICAgICB9CiAgICAg
cmVzdWx0LmFwcGVuZCgnIicpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJp
bmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBSZW5kZXJUcmVlQXNUZXh0Ojp3cml0ZVJlbmRl
ck9iamVjdChUZXh0U3RyZWFtJiB0cywgY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBSZW5kZXJBc1Rl
eHRCZWhhdmlvciBiZWhhdmlvcikKQEAgLTgwNyw3ICs4MDksOSBAQCBzdGF0aWMgU3RyaW5nIG5v
ZGVQb3NpdGlvbihOb2RlKiBub2RlKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwo
ImRvY3VtZW50Iik7CiAgICAgfQogCi0gICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAg
IGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0
cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgdm9pZCB3cml0ZVNlbGVjdGlvbihUZXh0
U3RyZWFtJiB0cywgY29uc3QgUmVuZGVyQm94JiByZW5kZXJlcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmNwcAppbmRleCA4
OWJiMDQwLi44Yzc4NGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0
aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuY3BwCkBAIC03MSw3ICs3MSwxMCBAQCB2b2lkIFJl
bmRlck1hdGhNTEZlbmNlZDo6dXBkYXRlRnJvbUVsZW1lbnQoKQogICAgICAgICAgICAgaWYgKCFp
c1NwYWNlT3JOZXdsaW5lKHNlcGFyYXRvcnNbaV0pKQogICAgICAgICAgICAgICAgIGNoYXJhY3Rl
cnMuYXBwZW5kKHNlcGFyYXRvcnNbaV0pOwogICAgICAgICB9Ci0gICAgICAgIG1fc2VwYXJhdG9y
cyA9ICFjaGFyYWN0ZXJzLmxlbmd0aCgpID8gMCA6IGNoYXJhY3RlcnMudG9TdHJpbmcoKS5pbXBs
KCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGNoYXJhY3RlcnMudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgIG1fc2VwYXJhdG9ycyA9ICFjaGFyYWN0ZXJzLmxlbmd0aCgpID8gMCA6IHN0cmlu
Zy0+aW1wbCgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIC8vIFRoZSBzZXBhcmF0b3IgZGVmYXVsdHMgdG8gYSBzaW5nbGUgY29tbWEu
CiAgICAgICAgIG1fc2VwYXJhdG9ycyA9IFN0cmluZ0ltcGw6OmNyZWF0ZSgiLCIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVy
TWF0aE1MLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVl
QnVpbGRlck1hdGhNTC5jcHAKaW5kZXggNWNiNDc4Yi4uMjBkMjUxNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTWF0aE1MLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxk
ZXJNYXRoTUwuY3BwCkBAIC05MCw3ICs5MCwxMCBAQCB2b2lkIFJlbmRlclRyZWVCdWlsZGVyOjpN
YXRoTUw6OmF0dGFjaChSZW5kZXJNYXRoTUxGZW5jZWQmIHBhcmVudCwgUmVuZGVyUHRyPFJlbgog
CiAgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7CiAgICAgICAgICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZChzZXBhcmF0b3IpOwotICAgICAgICAgICAgc2VwYXJhdG9yUmVu
ZGVyZXIgPSBjcmVhdGVNYXRoTUxPcGVyYXRvcihwYXJlbnQsIHN0cmluZ0J1aWxkZXIudG9TdHJp
bmcoKSwgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpJbmZpeCwgTWF0aE1MT3BlcmF0b3JEaWN0
aW9uYXJ5OjpTZXBhcmF0b3IpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5n
QnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIHNlcGFyYXRvclJlbmRlcmVyID0g
Y3JlYXRlTWF0aE1MT3BlcmF0b3IocGFyZW50LCAqc3RyaW5nLCBNYXRoTUxPcGVyYXRvckRpY3Rp
b25hcnk6OkluZml4LCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OlNlcGFyYXRvcik7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3BwCmluZGV4IGJhMjA2
NDguLjIwZWEzZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0
VmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5j
cHAKQEAgLTYzLDcgKzYzLDkgQEAgU3RyaW5nIFNWR0xlbmd0aExpc3RWYWx1ZXM6OnZhbHVlQXNT
dHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZChhdChpKS52YWx1ZUFzU3RyaW5n
KCkpOwogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TnVtYmVyTGlzdFZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdFZh
bHVlcy5jcHAKaW5kZXggNmRmZDk5My4uODc1YmU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdOdW1iZXJMaXN0VmFsdWVzLmNwcApAQCAtNTUsNyArNTUsOSBAQCBTdHJpbmcgU1ZHTnVtYmVy
TGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
TnVtYmVyKGF0KGkpKTsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwor
ICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdGhTdHJpbmdCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoU3RyaW5nQnVpbGRlci5jcHAKaW5kZXggMTA1MzkxYy4uOWM1NzdlYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTdHJpbmdCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0aFN0cmluZ0J1aWxkZXIuY3BwCkBAIC0zNyw3ICszNyw5IEBAIFN0
cmluZyBTVkdQYXRoU3RyaW5nQnVpbGRlcjo6cmVzdWx0KCkKIAogICAgIC8vIFJlbW92ZSB0cmFp
bGluZyBzcGFjZS4KICAgICBtX3N0cmluZ0J1aWxkZXIucmVzaXplKHNpemUgLSAxKTsKLSAgICBy
ZXR1cm4gbV9zdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0g
bV9zdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
IENSQVNIKCk7CiB9CiAKIHZvaWQgU1ZHUGF0aFN0cmluZ0J1aWxkZXI6OmluY3JlbWVudFBhdGhT
ZWdtZW50Q291bnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGls
aXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwCmluZGV4
IGNmOWYwMTQuLmNjNTQzMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRo
VXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5j
cHAKQEAgLTEwMSw3ICsxMDEsOSBAQCBTdHJpbmcgYnVpbGRTdHJpbmdGcm9tUGF0aChjb25zdCBQ
YXRoJiBwYXRoKQogICAgICAgICB9KTsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0
cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBidWlsZFNWR1BhdGhC
eXRlU3RyZWFtRnJvbVNWR1BhdGhTZWdMaXN0VmFsdWVzKGNvbnN0IFNWR1BhdGhTZWdMaXN0VmFs
dWVzJiBsaXN0LCBTVkdQYXRoQnl0ZVN0cmVhbSYgcmVzdWx0LCBQYXRoUGFyc2luZ01vZGUgcGFy
c2luZ01vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFs
dWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1ZXMuY3BwCmluZGV4
IGQ4MWU2YTIuLmQ4YmRlZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2lu
dExpc3RWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1
ZXMuY3BwCkBAIC00MSw3ICs0MSw5IEBAIFN0cmluZyBTVkdQb2ludExpc3RWYWx1ZXM6OnZhbHVl
QXNTdHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihwb2ludC55KCkp
OwogICAgIH0KIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAg
ICBDUkFTSCgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3Ry
aW5nTGlzdFZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdFZhbHVl
cy5jcHAKaW5kZXggM2ZmODk4YS4uOGM2MWYxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
dHJpbmdMaXN0VmFsdWVzLmNwcApAQCAtNzMsNyArNzMsOSBAQCBTdHJpbmcgU1ZHU3RyaW5nTGlz
dFZhbHVlczo6dmFsdWVBc1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGF0
KGkpKTsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RyYW5zZm9ybUxpc3RWYWx1ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9y
bUxpc3RWYWx1ZXMuY3BwCmluZGV4IDI1YjNjMzEuLjZiNDJkM2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAKQEAgLTY4LDcgKzY4LDkgQEAgU3Ry
aW5nIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogICAgICAg
ICBidWlsZGVyLmFwcGVuZChhdChpKS52YWx1ZUFzU3RyaW5nKCkpOwogICAgIH0KIAotICAgIHJl
dHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB2
b2lkIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM6OnBhcnNlKGNvbnN0IFN0cmluZyYgdHJhbnNmb3Jt
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5jcHAKaW5kZXggNjNkNDVhNS4u
ZWExNDYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtVmFsdWUuY3BwCkBAIC0x
NzksNyArMTc5LDkgQEAgU3RyaW5nIFNWR1RyYW5zZm9ybVZhbHVlOjp2YWx1ZUFzU3RyaW5nKCkg
Y29uc3QKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICAgICAgYnVpbGRlci5hcHBl
bmROdW1iZXIobV9tYXRyaXguZigpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKLSAg
ICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAg
ICAgIENSQVNIKCk7CiAgICAgfQogICAgIGNhc2UgU1ZHX1RSQU5TRk9STV9UUkFOU0xBVEU6IHsK
ICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwpAQCAtMTg4LDcgKzE5MCw5IEBAIFN0cmlu
ZyBTVkdUcmFuc2Zvcm1WYWx1ZTo6dmFsdWVBc1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCcgJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fbWF0cml4LmYo
KSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Ci0gICAgICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0K
ICAgICBjYXNlIFNWR19UUkFOU0ZPUk1fU0NBTEU6IHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOwpAQCAtMTk3LDcgKzIwMSw5IEBAIFN0cmluZyBTVkdUcmFuc2Zvcm1WYWx1ZTo6dmFs
dWVBc1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fbWF0cml4LnlTY2FsZSgpKTsKICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoJyknKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIGNhc2UgU1ZHX1RSQU5T
Rk9STV9ST1RBVEU6IHsKICAgICAgICAgZG91YmxlIGFuZ2xlSW5SYWQgPSBkZWcycmFkKG1fYW5n
bGUpOwpAQCAtMjE1LDcgKzIyMSw5IEBAIFN0cmluZyBTVkdUcmFuc2Zvcm1WYWx1ZTo6dmFsdWVB
c1N0cmluZygpIGNvbnN0CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihjeSk7CiAg
ICAgICAgIH0KICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKLSAgICAgICAgcmV0dXJuIGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAg
ICAgfQogICAgIGNhc2UgU1ZHX1RSQU5TRk9STV9TS0VXWDoKICAgICBjYXNlIFNWR19UUkFOU0ZP
Uk1fU0tFV1k6IHsKQEAgLTIyMyw3ICsyMzEsOSBAQCBTdHJpbmcgU1ZHVHJhbnNmb3JtVmFsdWU6
OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogICAgICAgICBidWlsZGVyLmFwcGVuZChwcmVmaXgpOwog
ICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX2FuZ2xlKTsKICAgICAgICAgYnVpbGRlci5h
cHBlbmQoJyknKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAg
aWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJu
ICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmgKaW5kZXggYTIzMjdl
Ni4uODAwYWJkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
UHJvcGVydHlUcmFpdHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQ
cm9wZXJ0eVRyYWl0cy5oCkBAIC0xNDMsNyArMTQzLDkgQEAgc3RydWN0IFNWR1Byb3BlcnR5VHJh
aXRzPEZsb2F0UG9pbnQ+IHsKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS54KCkp
OwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgICAgICBidWlsZGVyLmFwcGVuZE51
bWJlcih0eXBlLnkoKSk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
ICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOwogICAgIH0KIH07CiAKQEAgLTE3NCw3ICsx
NzYsOSBAQCBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0PiB7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUud2lkdGgoKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCcgJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUuaGVpZ2h0KCkpOwotICAg
ICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcg
PSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICAg
ICAgQ1JBU0goKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
aW5kZXggODFhNDAwOS4uMGMyNDA0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cApAQCAtMTU0MCw3ICsxNTQwLDkgQEAgRXhjZXB0aW9uT3I8U3RyaW5nPiBJbnRlcm5hbHM6OmR1
bXBNYXJrZXJSZWN0cyhjb25zdCBTdHJpbmcmIG1hcmtlclR5cGVTdHJpbmcpCiAgICAgICAgIHJl
Y3RTdHJpbmcuYXBwZW5kTnVtYmVyKHJlY3QuaGVpZ2h0KCkpOwogICAgICAgICByZWN0U3RyaW5n
LmFwcGVuZExpdGVyYWwoIikgIik7CiAgICAgfQotICAgIHJldHVybiByZWN0U3RyaW5nLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcmVjdFN0cmluZy50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gV1RGTW92ZSgqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiB2b2lkIElu
dGVybmFsczo6YWRkVGV4dE1hdGNoTWFya2VyKGNvbnN0IFJhbmdlJiByYW5nZSwgYm9vbCBpc0Fj
dGl2ZSkKQEAgLTIwNzksNyArMjA4MSw5IEBAIFN0cmluZyBJbnRlcm5hbHM6OnBhcnNlck1ldGFE
YXRhKEpTQzo6SlNWYWx1ZSBjb2RlKQogICAgIHJlc3VsdC5hcHBlbmROdW1iZXIoZW5kQ29sdW1u
KTsKICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiIH0iKTsKIAotICAgIHJldHVybiByZXN1bHQu
dG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbnRlcm5hbHM6
OnVwZGF0ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQoKQpAQCAtMzA3MSw3ICszMDc1LDkgQEAgRXhj
ZXB0aW9uT3I8U3RyaW5nPiBJbnRlcm5hbHM6OmdldEN1cnJlbnRDdXJzb3JJbmZvKCkKICAgICAg
ICAgcmVzdWx0LmFwcGVuZChudW1iZXJUb0ZpeGVkUHJlY2lzaW9uU3RyaW5nKGN1cnNvci5pbWFn
ZVNjYWxlRmFjdG9yKCksIDgsIGJ1ZmZlciwgdHJ1ZSkpOwogICAgIH0KICNlbmRpZgotICAgIHJl
dHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9T
dHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIFdURk1vdmUoKnN0cmluZyk7CisgICAgQ1JBU0goKTsK
ICNlbHNlCiAgICAgcmV0dXJuIFN0cmluZyB7ICJGQUlMOiBDdXJzb3IgZGV0YWlscyBub3QgYXZh
aWxhYmxlIG9uIHRoaXMgcGxhdGZvcm0uIiB9OwogI2VuZGlmCkBAIC0zNTE0LDcgKzM1MjAsOSBA
QCBFeGNlcHRpb25PcjxTdHJpbmc+IEludGVybmFsczo6bWVkaWFTZXNzaW9uUmVzdHJpY3Rpb25z
KGNvbnN0IFN0cmluZyYgbWVkaWFUeXBlUwogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJywn
KTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoImludGVycnVwdGVkcGxheWJhY2tub3RwZXJtaXR0
ZWQiKTsKICAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0
byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBXVEZNb3ZlKCpz
dHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW50ZXJuYWxzOjpzZXRNZWRpYUVsZW1l
bnRSZXN0cmljdGlvbnMoSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCwgU3RyaW5nVmlldyByZXN0
cmljdGlvbnNTdHJpbmcpCkBAIC0zNzU1LDQ4ICszNzYzLDUwIEBAIFN0cmluZyBJbnRlcm5hbHM6
OnBhZ2VNZWRpYVN0YXRlKCkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAKICAgICBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUgPSBkb2N1bWVudC0+
cGFnZSgpLT5tZWRpYVN0YXRlKCk7Ci0gICAgU3RyaW5nQnVpbGRlciBzdHJpbmc7CisgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOwogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OklzUGxh
eWluZ0F1ZGlvKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdBdWRpbywiKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQoIklzUGxheWluZ0F1ZGlvLCIpOwogICAgIGlmIChzdGF0ZSAm
IE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ1ZpZGVvKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJJ
c1BsYXlpbmdWaWRlbywiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIklzUGxheWluZ1ZpZGVv
LCIpOwogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OklzUGxheWluZ1RvRXh0ZXJuYWxE
ZXZpY2UpCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2Us
Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlLCIp
OwogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRN
b25pdG9yaW5nKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJSZXF1aXJlc1BsYXliYWNrVGFyZ2V0
TW9uaXRvcmluZywiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIlJlcXVpcmVzUGxheWJhY2tU
YXJnZXRNb25pdG9yaW5nLCIpOwogICAgIGlmIChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OkV4dGVy
bmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIkV4dGVy
bmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUsIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJF
eHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlLCIpOwogICAgIGlmIChzdGF0ZSAmIE1lZGlh
UHJvZHVjZXI6OkRpZFBsYXlUb0VuZCkKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiRGlkUGxheVRv
RW5kLCIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiRGlkUGxheVRvRW5kLCIpOwogICAgIGlm
IChzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OklzU291cmNlRWxlbWVudFBsYXlpbmcpCi0gICAgICAg
IHN0cmluZy5hcHBlbmQoIklzU291cmNlRWxlbWVudFBsYXlpbmcsIik7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCJJc1NvdXJjZUVsZW1lbnRQbGF5aW5nLCIpOwogCiAgICAgaWYgKHN0YXRlICYg
TWVkaWFQcm9kdWNlcjo6SXNOZXh0VHJhY2tDb250cm9sRW5hYmxlZCkKLSAgICAgICAgc3RyaW5n
LmFwcGVuZCgiSXNOZXh0VHJhY2tDb250cm9sRW5hYmxlZCwiKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQoIklzTmV4dFRyYWNrQ29udHJvbEVuYWJsZWQsIik7CiAgICAgaWYgKHN0YXRlICYgTWVk
aWFQcm9kdWNlcjo6SXNQcmV2aW91c1RyYWNrQ29udHJvbEVuYWJsZWQpCi0gICAgICAgIHN0cmlu
Zy5hcHBlbmQoIklzUHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVkLCIpOworICAgICAgICBidWls
ZGVyLmFwcGVuZCgiSXNQcmV2aW91c1RyYWNrQ29udHJvbEVuYWJsZWQsIik7CiAKICAgICBpZiAo
c3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3Rl
bmVyKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0
eUxpc3RlbmVyLCIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgiSGFzUGxheWJhY2tUYXJnZXRB
dmFpbGFiaWxpdHlMaXN0ZW5lciwiKTsKICAgICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpI
YXNBdWRpb09yVmlkZW8pCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc0F1ZGlvT3JWaWRlbywi
KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIkhhc0F1ZGlvT3JWaWRlbywiKTsKICAgICBpZiAo
c3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCi0gICAg
ICAgIHN0cmluZy5hcHBlbmQoIkhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwiKTsKKyAgICAg
ICAgYnVpbGRlci5hcHBlbmQoIkhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwiKTsKICAgICBp
ZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCi0g
ICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSwiKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQoIkhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSwiKTsKICAg
ICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSkK
LSAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UsIik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSwiKTsKICAg
ICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkK
LSAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UsIik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSwiKTsKICAg
ICBpZiAoc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVs
ZW1lbnQpCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlh
RWxlbWVudCwiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIkhhc1VzZXJJbnRlcmFjdGVkV2l0
aE1lZGlhRWxlbWVudCwiKTsKIAotICAgIGlmIChzdHJpbmcuaXNFbXB0eSgpKQotICAgICAgICBz
dHJpbmcuYXBwZW5kKCJJc05vdFBsYXlpbmciKTsKKyAgICBpZiAoYnVpbGRlci5pc0VtcHR5KCkp
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJJc05vdFBsYXlpbmciKTsKICAgICBlbHNlCi0gICAg
ICAgIHN0cmluZy5yZXNpemUoc3RyaW5nLmxlbmd0aCgpIC0gMSk7CisgICAgICAgIGJ1aWxkZXIu
cmVzaXplKGJ1aWxkZXIubGVuZ3RoKCkgLSAxKTsKIAotICAgIHJldHVybiBzdHJpbmcudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW50ZXJuYWxzOjpzZXRQ
YWdlRGVmZXJzTG9hZGluZyhib29sIGRlZmVyc0xvYWRpbmcpCkBAIC0zOTE4LDcgKzM5MjgsOSBA
QCBFeGNlcHRpb25PcjxTdHJpbmc+IEludGVybmFsczo6c2Nyb2xsU25hcE9mZnNldHMoRWxlbWVu
dCYgZWxlbWVudCkKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuIFdURk1vdmUoKnN0cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAKaW5kZXgg
ZTVhNmNmZS4uZjRhM2NlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2Nr
UGFnZU92ZXJsYXlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1Bh
Z2VPdmVybGF5Q2xpZW50LmNwcApAQCAtOTgsNyArOTgsMTAgQEAgdm9pZCBNb2NrUGFnZU92ZXJs
YXlDbGllbnQ6OmRyYXdSZWN0KFBhZ2VPdmVybGF5JiBvdmVybGF5LCBHcmFwaGljc0NvbnRleHQm
IGNvbnQKICAgICBtZXNzYWdlLmFwcGVuZExpdGVyYWwoIiwgIik7CiAgICAgbWVzc2FnZS5hcHBl
bmROdW1iZXIoZGlydHlSZWN0LmhlaWdodCgpKTsKICAgICBtZXNzYWdlLmFwcGVuZExpdGVyYWwo
IikiKTsKLSAgICBvdmVybGF5LnBhZ2UoKS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKS0+YWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6RGVidWcsIG1l
c3NhZ2UudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbWVzc2FnZS50b1N0cmlu
ZygpKQorICAgICAgICBvdmVybGF5LnBhZ2UoKS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKS0+YWRk
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6RGVidWcs
ICpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIEdyYXBoaWNzQ29u
dGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKIApAQCAtMTIzLDcgKzEyNiwxMCBA
QCBib29sIE1vY2tQYWdlT3ZlcmxheUNsaWVudDo6bW91c2VFdmVudChQYWdlT3ZlcmxheSYgb3Zl
cmxheSwgY29uc3QgUGxhdGZvcm1Nb3VzZQogICAgIG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiLCAi
KTsKICAgICBtZXNzYWdlLmFwcGVuZE51bWJlcihldmVudC5wb3NpdGlvbigpLnkoKSk7CiAgICAg
bWVzc2FnZS5hcHBlbmRMaXRlcmFsKCIpIik7Ci0gICAgb3ZlcmxheS5wYWdlKCktPm1haW5GcmFt
ZSgpLmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBN
ZXNzYWdlTGV2ZWw6OkRlYnVnLCBtZXNzYWdlLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IG1lc3NhZ2UudG9TdHJpbmcoKSkKKyAgICAgICAgb3ZlcmxheS5wYWdlKCktPm1haW5G
cmFtZSgpLmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVy
LCBNZXNzYWdlTGV2ZWw6OkRlYnVnLCAqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNI
KCk7CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclNjcmlwdExvYWRlci5jcHAKaW5kZXggNWIzNDBmZi4uNDRlNGUyNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcApAQCAtMjAyLDcgKzIwMiw5
IEBAIHZvaWQgV29ya2VyU2NyaXB0TG9hZGVyOjpub3RpZnlFcnJvcigpCiAKIFN0cmluZyBXb3Jr
ZXJTY3JpcHRMb2FkZXI6OnNjcmlwdCgpCiB7Ci0gICAgcmV0dXJuIG1fc2NyaXB0LnRvU3RyaW5n
KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gbV9zY3JpcHQudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBXb3JrZXJTY3JpcHRMb2Fk
ZXI6Om5vdGlmeUZpbmlzaGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxF
cnJvcnMuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEVycm9ycy5jcHAKaW5kZXggYjE0MzJk
MS4uMTUzMTlmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEVycm9ycy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEVycm9ycy5jcHAKQEAgLTE0OCw4ICsxNDgsMTEg
QEAgdm9pZCBYTUxFcnJvcnM6Omluc2VydEVycm9yTWVzc2FnZUJsb2NrKCkKICAgICAgICAgZG9j
dW1lbnRFbGVtZW50ID0gV1RGTW92ZShib2R5KTsKICAgICB9CiAKLSAgICBTdHJpbmcgZXJyb3JN
ZXNzYWdlcyA9IG1fZXJyb3JNZXNzYWdlcy50b1N0cmluZygpOwotICAgIGF1dG8gcmVwb3J0RWxl
bWVudCA9IGNyZWF0ZVhIVE1MUGFyc2VyRXJyb3JIZWFkZXIobV9kb2N1bWVudCwgZXJyb3JNZXNz
YWdlcyk7CisgICAgYXV0byByZXBvcnRFbGVtZW50ID0gY3JlYXRlWEhUTUxQYXJzZXJFcnJvckhl
YWRlcihtX2RvY3VtZW50LCBbJl0gKCkgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBtX2Vy
cm9yTWVzc2FnZXMudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAg
ICAgICBDUkFTSCgpOworICAgIH0oKSk7CiAKICNpZiBFTkFCTEUoWFNMVCkKICAgICBpZiAobV9k
b2N1bWVudC50cmFuc2Zvcm1Tb3VyY2VEb2N1bWVudCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0LmNwcAppbmRleCAxOWU1YWU0Li43NmI5ZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdC5jcHAKQEAgLTE5NSw3ICsxOTUsMTAgQEAgRXhjZXB0aW9uT3I8RG9jdW1l
bnQqPiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VYTUwoKQogICAgICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudCA9IFhNTERvY3VtZW50OjpjcmVhdGUoMCwg
bV91cmwpOwogICAgICAgICAgICAgLy8gRklYTUU6IFNldCBMYXN0LU1vZGlmaWVkLgotICAgICAg
ICAgICAgbV9yZXNwb25zZURvY3VtZW50LT5zZXRDb250ZW50KG1fcmVzcG9uc2VCdWlsZGVyLnRv
U3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IG1fcmVzcG9uc2VCdWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKQorICAgICAgICAg
ICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudC0+c2V0Q29udGVudCgqc3RyaW5nKTsKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICAgICAgbV9yZXNwb25z
ZURvY3VtZW50LT5zZXRDb250ZXh0RG9jdW1lbnQoZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpKTsKICAgICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudC0+c2V0
U2VjdXJpdHlPcmlnaW5Qb2xpY3koc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZWN1cml0eU9y
aWdpblBvbGljeSgpKTsKICAgICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudC0+b3ZlcnJpZGVN
SU1FVHlwZShtaW1lVHlwZSk7CkBAIC04MTcsMTQgKzgyMCwyMCBAQCBTdHJpbmcgWE1MSHR0cFJl
cXVlc3Q6OmdldEFsbFJlc3BvbnNlSGVhZGVycygpIGNvbnN0CiAgICAgICAgICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZExpdGVyYWwoIjogIik7CiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZChoZWFkZXIudmFsdWUpOwogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRl
cmFsKCJcclxuIik7Ci0gICAgICAgICAgICBoZWFkZXJzLnVuY2hlY2tlZEFwcGVuZChzdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5n
QnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIGhlYWRlcnMudW5jaGVja2VkQXBw
ZW5kKCpzdHJpbmcpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7
CiAgICAgICAgIH0KICAgICAgICAgc3RkOjpzb3J0KGhlYWRlcnMuYmVnaW4oKSwgaGVhZGVycy5l
bmQoKSwgV1RGOjpjb2RlUG9pbnRDb21wYXJlTGVzc1RoYW4pOwogCiAgICAgICAgIFN0cmluZ0J1
aWxkZXIgc3RyaW5nQnVpbGRlcjsKICAgICAgICAgZm9yIChhdXRvJiBoZWFkZXIgOiBoZWFkZXJz
KQogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoaGVhZGVyKTsKLSAgICAgICAgbV9h
bGxSZXNwb25zZUhlYWRlcnMgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlm
IChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIG1f
YWxsUmVzcG9uc2VIZWFkZXJzID0gKnN0cmluZzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
Q1JBU0goKTsKICAgICB9CiAKICAgICByZXR1cm4gbV9hbGxSZXNwb25zZUhlYWRlcnM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCmluZGV4IDFlZWMxNTguLjUzYjRmODcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCkBAIC04Nyw3ICs4NywxMiBAQCBwdWJsaWM6CiAgICAg
U3RyaW5nIGdldEFsbFJlc3BvbnNlSGVhZGVycygpIGNvbnN0OwogICAgIFN0cmluZyBnZXRSZXNw
b25zZUhlYWRlcihjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0OwogICAgIEV4Y2VwdGlvbk9yPE93
bmVkU3RyaW5nPiByZXNwb25zZVRleHQoKTsKLSAgICBTdHJpbmcgcmVzcG9uc2VUZXh0SWdub3Jp
bmdSZXNwb25zZVR5cGUoKSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNlQnVpbGRlci50b1N0cmlu
Z1ByZXNlcnZlQ2FwYWNpdHkoKTsgfQorICAgIFN0cmluZyByZXNwb25zZVRleHRJZ25vcmluZ1Jl
c3BvbnNlVHlwZSgpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBtX3Jl
c3BvbnNlQnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSkKKyAgICAgICAgICAgIHJl
dHVybiAqc3RyaW5nOworICAgICAgICBDUkFTSCgpOworICAgIH0KICAgICBTdHJpbmcgcmVzcG9u
c2VNSU1FVHlwZSgpIGNvbnN0OwogCiAgICAgRG9jdW1lbnQqIG9wdGlvbmFsUmVzcG9uc2VYTUwo
KSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNlRG9jdW1lbnQuZ2V0KCk7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94
bWwvWFBhdGhGdW5jdGlvbnMuY3BwCmluZGV4IDczNTM0YTQuLmY3ZGNhOWFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhGdW5jdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YUGF0aEZ1bmN0aW9ucy5jcHAKQEAgLTMwOCw5ICszMDgsMTEgQEAgc3RhdGljIEF0
b21pY1N0cmluZyBhdG9taWNTdWJzdHJpbmcoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgdW5zaWdu
ZWQgc3RhcnQsIHVuc2kKIHsKICAgICBBU1NFUlQoc3RhcnQgPD0gYnVpbGRlci5sZW5ndGgoKSk7
CiAgICAgQVNTRVJUKGxlbmd0aCA8PSBidWlsZGVyLmxlbmd0aCgpIC0gc3RhcnQpOworICAgIGlm
IChidWlsZGVyLmZhaWxlZCgpKQorICAgICAgICBDUkFTSCgpOwogICAgIGlmIChidWlsZGVyLmlz
OEJpdCgpKQotICAgICAgICByZXR1cm4gQXRvbWljU3RyaW5nKGJ1aWxkZXIuY2hhcmFjdGVyczgo
KSArIHN0YXJ0LCBsZW5ndGgpOwotICAgIHJldHVybiBBdG9taWNTdHJpbmcoYnVpbGRlci5jaGFy
YWN0ZXJzMTYoKSArIHN0YXJ0LCBsZW5ndGgpOworICAgICAgICByZXR1cm4gQXRvbWljU3RyaW5n
KCpidWlsZGVyLmNoYXJhY3RlcnM4KCkgKyBzdGFydCwgbGVuZ3RoKTsKKyAgICByZXR1cm4gQXRv
bWljU3RyaW5nKCpidWlsZGVyLmNoYXJhY3RlcnMxNigpICsgc3RhcnQsIGxlbmd0aCk7CiB9CiAK
IFZhbHVlIEZ1bklkOjpldmFsdWF0ZSgpIGNvbnN0CkBAIC0zMzQsMTQgKzMzNiwxNyBAQCBWYWx1
ZSBGdW5JZDo6ZXZhbHVhdGUoKSBjb25zdAogICAgIHVuc2lnbmVkIHN0YXJ0UG9zID0gMDsKICAg
ICB1bnNpZ25lZCBsZW5ndGggPSBpZExpc3QubGVuZ3RoKCk7CiAgICAgd2hpbGUgKHRydWUpIHsK
LSAgICAgICAgd2hpbGUgKHN0YXJ0UG9zIDwgbGVuZ3RoICYmIGlzV2hpdGVzcGFjZShpZExpc3Rb
c3RhcnRQb3NdKSkKKyAgICAgICAgaWYgKGlkTGlzdC5mYWlsZWQoKSkKKyAgICAgICAgICAgIENS
QVNIKCk7CisKKyAgICAgICAgd2hpbGUgKHN0YXJ0UG9zIDwgbGVuZ3RoICYmIGlzV2hpdGVzcGFj
ZSgqaWRMaXN0W3N0YXJ0UG9zXSkpCiAgICAgICAgICAgICArK3N0YXJ0UG9zOwogICAgICAgICAK
ICAgICAgICAgaWYgKHN0YXJ0UG9zID09IGxlbmd0aCkKICAgICAgICAgICAgIGJyZWFrOwogCiAg
ICAgICAgIHNpemVfdCBlbmRQb3MgPSBzdGFydFBvczsKLSAgICAgICAgd2hpbGUgKGVuZFBvcyA8
IGxlbmd0aCAmJiAhaXNXaGl0ZXNwYWNlKGlkTGlzdFtlbmRQb3NdKSkKKyAgICAgICAgd2hpbGUg
KGVuZFBvcyA8IGxlbmd0aCAmJiAhaXNXaGl0ZXNwYWNlKCppZExpc3RbZW5kUG9zXSkpCiAgICAg
ICAgICAgICArK2VuZFBvczsKIAogICAgICAgICAvLyBJZiB0aGVyZSBhcmUgc2V2ZXJhbCBub2Rl
cyB3aXRoIHRoZSBzYW1lIGlkLCBpZCgpIHNob3VsZCByZXR1cm4gdGhlIGZpcnN0IG9uZS4KQEAg
LTQzNyw3ICs0NDIsOSBAQCBWYWx1ZSBGdW5Db25jYXQ6OmV2YWx1YXRlKCkgY29uc3QKICAgICAg
ICAgcmVzdWx0LmFwcGVuZChzdHIpOwogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQudG9TdHJp
bmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAg
cmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogVmFsdWUgRnVuU3RhcnRzV2l0aDo6
ZXZhbHVhdGUoKSBjb25zdApAQCAtNTU2LDcgKzU2Myw5IEBAIFZhbHVlIEZ1blRyYW5zbGF0ZTo6
ZXZhbHVhdGUoKSBjb25zdAogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzM1tpMl0pOwogICAg
IH0KIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcg
PSByZXN1bHQudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0go
KTsKIH0KIAogVmFsdWUgRnVuQm9vbGVhbjo6ZXZhbHVhdGUoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAKaW5kZXggNjZhZDE1Zi4uOGU1ZTA1ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwCkBAIC0xOTcs
MTIgKzE5NywxOCBAQCBzdGF0aWMgYm9vbCBzYXZlUmVzdWx0VG9TdHJpbmcoeG1sRG9jUHRyIHJl
c3VsdERvYywgeHNsdFN0eWxlc2hlZXRQdHIgc2hlZXQsIFN0cgogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICAvLyBXb3JrYXJvdW5kIGZvciA8aHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDk1NjY4PjogbGlieHNsdCBhcHBlbmRzIGFuIGV4dHJhIGxpbmUgZmVl
ZCB0byB0aGUgcmVzdWx0LgotICAgIGlmIChyZXN1bHRCdWlsZGVyLmxlbmd0aCgpID4gMCAmJiBy
ZXN1bHRCdWlsZGVyW3Jlc3VsdEJ1aWxkZXIubGVuZ3RoKCkgLSAxXSA9PSAnXG4nKQorICAgIGlm
IChyZXN1bHRCdWlsZGVyLmxlbmd0aCgpID4gMCkgeworICAgICAgICBpZiAocmVzdWx0QnVpbGRl
ci5mYWlsZWQoKSkKKyAgICAgICAgICAgIENSQVNIKCk7CisgICAgICAgIGlmICgqcmVzdWx0QnVp
bGRlcltyZXN1bHRCdWlsZGVyLmxlbmd0aCgpIC0gMV0gPT0gJ1xuJykKICAgICAgICAgcmVzdWx0
QnVpbGRlci5yZXNpemUocmVzdWx0QnVpbGRlci5sZW5ndGgoKSAtIDEpOworICAgIH0KIAotICAg
IHJlc3VsdFN0cmluZyA9IHJlc3VsdEJ1aWxkZXIudG9TdHJpbmcoKTsKLQotICAgIHJldHVybiB0
cnVlOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3VsdEJ1aWxkZXIudG9TdHJpbmcoKSkgewor
ICAgICAgICByZXN1bHRTdHJpbmcgPSAqc3RyaW5nOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIGNvbnN0IGNoYXIqKiB4c2x0UGFyYW1BcnJh
eUZyb21QYXJhbWV0ZXJNYXAoWFNMVFByb2Nlc3Nvcjo6UGFyYW1ldGVyTWFwJiBwYXJhbWV0ZXJz
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9DaGFyYWN0ZXJSZWZlcmVu
Y2VQYXJzZXJJbmxpbmVzLmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL0NoYXJhY3RlclJl
ZmVyZW5jZVBhcnNlcklubGluZXMuaAppbmRleCA3Njg2MjY4Li42NzJiYWUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL0NoYXJhY3RlclJlZmVyZW5jZVBhcnNlcklubGlu
ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL0NoYXJhY3RlclJlZmVyZW5jZVBh
cnNlcklubGluZXMuaApAQCAtMzIsNyArMzIsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBp
bmxpbmUgdm9pZCB1bmNvbnN1bWVDaGFyYWN0ZXJzKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBT
dHJpbmdCdWlsZGVyJiBjb25zdW1lZENoYXJhY3RlcnMpCiB7Ci0gICAgc291cmNlLnB1c2hCYWNr
KGNvbnN1bWVkQ2hhcmFjdGVycy50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBj
b25zdW1lZENoYXJhY3RlcnMudG9TdHJpbmcoKSkKKyAgICAgICAgc291cmNlLnB1c2hCYWNrKFdU
Rk1vdmUoKnN0cmluZykpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdGVtcGxh
dGUgPHR5cGVuYW1lIFBhcnNlckZ1bmN0aW9ucz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2
ZXIvU2Vzc2lvbkhvc3QuY3BwIGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uSG9zdC5jcHAKaW5k
ZXggZjE2NDkyOS4uYjFjY2NiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9u
SG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uSG9zdC5jcHAKQEAgLTU1LDcg
KzU1LDEwIEBAIGxvbmcgU2Vzc2lvbkhvc3Q6OnNlbmRDb21tYW5kVG9CYWNrZW5kKGNvbnN0IFN0
cmluZyYgY29tbWFuZCwgUmVmUHRyPEpTT046Ok9iamVjCiAgICAgICAgIG1lc3NhZ2VCdWlsZGVy
LmFwcGVuZChwYXJhbWV0ZXJzLT50b0pTT05TdHJpbmcoKSk7CiAgICAgfQogICAgIG1lc3NhZ2VC
dWlsZGVyLmFwcGVuZCgnfScpOwotICAgIHNlbmRNZXNzYWdlVG9CYWNrZW5kKHNlcXVlbmNlSUQs
IG1lc3NhZ2VCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IG1lc3Nh
Z2VCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHNlbmRNZXNzYWdlVG9CYWNrZW5kKHNlcXVl
bmNlSUQsICpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAogICAgIHJldHVy
biBzZXF1ZW5jZUlEOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiNzViZGNhLi5lNWM2ODVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDUyIEBACisyMDE4LTA0LTI2ICBKRiBCYXN0aWVuICA8amZiYXN0aWVuQGFwcGxl
LmNvbT4KKworICAgICAgICBTdHJpbmdCdWlsZGVyIGlzIGZhbGxpYmxlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUwNDgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZWFjaCBTdHJpbmdCdWlsZGVyIHRo
YXQgaXQgaXMgZmFsbGlibGUKKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hl
U3RvcmFnZUVuZ2luZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6RW5naW5l
OjpyZXByZXNlbnRhdGlvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29y
a0NhY2hlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpDYWNoZTo6ZHVtcENv
bnRlbnRzVG9GaWxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVLZXkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OktleTo6aGFzaEFzU3Ry
aW5nKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlTWFu
YWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYXB0dXJlOjpNYW5hZ2VyOjpoYXNo
VG9QYXRoKToKKyAgICAgICAgKiBTaGFyZWQvRGF0YWJhc2VzL0luZGV4ZWREQi9JREJVdGlsaXRp
ZXMuY3BwOgorICAgICAgICAoV2ViS2l0Ojp1bmlxdWVEYXRhYmFzZUlkZW50aWZpZXIpOgorICAg
ICAgICAqIFNoYXJlZC9HYW1lcGFkL0dhbWVwYWREYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
R2FtZXBhZERhdGE6OmxvZ2dpbmdTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFNoYXJlZC9QbHVn
aW5zL05ldHNjYXBlL3VuaXgvTmV0c2NhcGVQbHVnaW5Nb2R1bGVVbml4LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0c2NhcGVQbHVnaW5Nb2R1bGU6OmJ1aWxkTUlNRURlc2NyaXB0aW9uKToKKyAg
ICAgICAgKiBTaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk1lbW9yeVNhbXBsZXI6OmFwcGVuZEN1cnJlbnRNZW1vcnlVc2FnZVRvRmlsZSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9BUElVc2VyU2NyaXB0LmNwcDoKKyAgICAgICAgKEFQSTo6VXNlclNj
cmlwdDo6Z2VuZXJhdGVVbmlxdWVVUkwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVXNl
clN0eWxlU2hlZXQuY3BwOgorICAgICAgICAoQVBJOjpVc2VyU3R5bGVTaGVldDo6Z2VuZXJhdGVV
bmlxdWVVUkwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlNuYXBzaG90
UmVtb3ZhbFRyYWNrZXI6OmV2ZW50c0Rlc2NyaXB0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViQmFja0ZvcndhcmRMaXN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQmFja0ZvcndhcmRM
aXN0Ojpsb2dnaW5nU3RyaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6ZGlkUmVjZWl2ZUludmFsaWRN
ZXNzYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZW1vdmVEYXRhUmVjb3Jk
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6dXBk
YXRlQ29va2llUGFydGl0aW9uaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1RlbGVtZXRyeS5jcHA6CisgICAgICAgIChXZWJLaXQ6OnN1Ym1pdFRvcExp
c3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dz
ZXJGdW5jcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNhcGl0YWxpemVSRkM4MjJIZWFkZXJGaWVs
ZE5hbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6YnVpbGRIVFRQSGVhZGVycyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OmNvbnRlbnRz
QXNTdHJpbmcgY29uc3QpOgorCiAyMDE4LTA1LTAxICBPbGVrc2FuZHIgU2thY2hrb3YgIDxnc2th
Y2hrb3ZAZ21haWwuY29tPgogCiAgICAgICAgIFdlYkFzc2VtYmx5OiBhZGQgc3VwcG9ydCBmb3Ig
c3RyZWFtIEFQSXMgLSBKYXZhU2NyaXB0IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwCmluZGV4IDQ1YzQ3
YTEuLjhkNzk1ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAKQEAgLTUyNCw3ICs1MjQsOSBAQCBTdHJp
bmcgRW5naW5lOjpyZXByZXNlbnRhdGlvbigpCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJ9Iik7
CiAgICAgfQogICAgIGJ1aWxkZXIuYXBwZW5kKCJdfSIpOwotICAgIHJldHVybiBidWlsZGVyLnRv
U3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBD
YWNoZVN0b3JhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlLmNwcAppbmRleCA3M2EyNWY0Li4wY2E3Zjk3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCkBAIC01NzAs
MTAgKzU3MCwxMyBAQCB2b2lkIENhY2hlOjpkdW1wQ29udGVudHNUb0ZpbGUoKQogICAgICAgICAg
ICAgZXBpbG9ndWUuYXBwZW5kTnVtYmVyKHRvdGFscy5jb3VudCA/IHRvdGFscy53b3J0aCAvIHRv
dGFscy5jb3VudCA6IDApOwogICAgICAgICAgICAgZXBpbG9ndWUuYXBwZW5kTGl0ZXJhbCgiXG4i
KTsKICAgICAgICAgICAgIGVwaWxvZ3VlLmFwcGVuZExpdGVyYWwoIn1cbn1cbiIpOwotICAgICAg
ICAgICAgYXV0byB3cml0ZURhdGEgPSBlcGlsb2d1ZS50b1N0cmluZygpLnV0ZjgoKTsKLSAgICAg
ICAgICAgIHdyaXRlVG9GaWxlKGZkLCB3cml0ZURhdGEuZGF0YSgpLCB3cml0ZURhdGEubGVuZ3Ro
KCkpOwotICAgICAgICAgICAgY2xvc2VGaWxlKGZkKTsKLSAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGVwaWxvZ3VlLnRvU3RyaW5nKCkpIHsKKyAgICAg
ICAgICAgICAgICBhdXRvIHdyaXRlRGF0YSA9IHN0cmluZy0+dXRmOCgpOworICAgICAgICAgICAg
ICAgIHdyaXRlVG9GaWxlKGZkLCB3cml0ZURhdGEuZGF0YSgpLCB3cml0ZURhdGEubGVuZ3RoKCkp
OworICAgICAgICAgICAgICAgIGNsb3NlRmlsZShmZCk7CisgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogICAgICAg
ICBhdXRvIGVudHJ5ID0gRW50cnk6OmRlY29kZVN0b3JhZ2VSZWNvcmQoKnJlY29yZCk7CiAgICAg
ICAgIGlmICghZW50cnkpCkBAIC01ODUsOCArNTg4LDExIEBAIHZvaWQgQ2FjaGU6OmR1bXBDb250
ZW50c1RvRmlsZSgpCiAgICAgICAgIFN0cmluZ0J1aWxkZXIganNvbjsKICAgICAgICAgZW50cnkt
PmFzSlNPTihqc29uLCBpbmZvKTsKICAgICAgICAganNvbi5hcHBlbmRMaXRlcmFsKCIsXG4iKTsK
LSAgICAgICAgYXV0byB3cml0ZURhdGEgPSBqc29uLnRvU3RyaW5nKCkudXRmOCgpOwotICAgICAg
ICB3cml0ZVRvRmlsZShmZCwgd3JpdGVEYXRhLmRhdGEoKSwgd3JpdGVEYXRhLmxlbmd0aCgpKTsK
KyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0ganNvbi50b1N0cmluZygpKSB7CisgICAgICAgICAg
ICBhdXRvIHdyaXRlRGF0YSA9IHN0cmluZy0+dXRmOCgpOworICAgICAgICAgICAgd3JpdGVUb0Zp
bGUoZmQsIHdyaXRlRGF0YS5kYXRhKCksIHdyaXRlRGF0YS5sZW5ndGgoKSk7CisgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVLZXkuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVLZXkuY3BwCmluZGV4
IDhmYTgxZDEuLjBiNDIyZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlS2V5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUtleS5jcHAKQEAgLTEzNCw3ICsxMzQsOSBAQCBTdHJp
bmcgS2V5OjpoYXNoQXNTdHJpbmcoY29uc3QgSGFzaFR5cGUmIGhhc2gpCiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKHVwcGVyTmliYmxlVG9BU0NJSUhleERpZ2l0KGJ5dGUpKTsKICAgICAgICAgYnVp
bGRlci5hcHBlbmQobG93ZXJOaWJibGVUb0FTQ0lJSGV4RGlnaXQoYnl0ZSkpOwogICAgIH0KLSAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0K
IAogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPiBib29sIGhleERpZ2l0c1RvSGFzaChDaGFy
VHlwZSogY2hhcmFjdGVycywgS2V5OjpIYXNoVHlwZSYgaGFzaCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZU1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlTWFu
YWdlci5jcHAKaW5kZXggNTYxM2JlOC4uMzQ3M2U1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlTWFuYWdl
ci5jcHAKQEAgLTQxNSw5ICs0MTUsOSBAQCBTdHJpbmcgTWFuYWdlcjo6aGFzaFRvUGF0aChjb25z
dCBTdHJpbmcmIGhhc2gpCiAKICAgICBhdXRvIHBhdGggPSBwYXRoQnlBcHBlbmRpbmdDb21wb25l
bnQobV9yZWNvcmRSZXBsYXlDYWNoZUxvY2F0aW9uLCBrRGlyTmFtZVJlc291cmNlcyk7CiAgICAg
cGF0aCA9IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChwYXRoLCBoYXNoSGVhZCk7Ci0gICAgcGF0
aCA9IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChwYXRoLCBmaWxlTmFtZS50b1N0cmluZygpKTsK
LQotICAgIHJldHVybiBwYXRoOworICAgIGlmIChhdXRvIHN0cmluZyA9IGZpbGVOYW1lLnRvU3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQocGF0aCwgKnN0
cmluZyk7CisgICAgQ1JBU0goKTsKIH0KIAogU3RyaW5nIE1hbmFnZXI6OnVybElkZW50aWZ5aW5n
Q29tbW9uRG9tYWluKGNvbnN0IFdlYkNvcmU6OlVSTCYgdXJsKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcAppbmRl
eCAwZmE4ZmQyLi5hNDYyZTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcApAQCAtODgsNyArODgsOSBAQCBz
dGF0aWMgQ1N0cmluZyBidWlsZEFjY2VwdExhbmd1YWdlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYg
bGFuZ3VhZ2VzKQogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKS51dGY4KCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQor
ICAgICAgICByZXR1cm4gc3RyaW5nLT51dGY4KCk7CisgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6dXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWQoY29uc3QgVmVjdG9y
PFN0cmluZz4mIGxhbmd1YWdlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Rh
dGFiYXNlcy9JbmRleGVkREIvSURCVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0RhdGFiYXNlcy9JbmRleGVkREIvSURCVXRpbGl0aWVzLmNwcAppbmRleCA5ZWM3NmZmLi43YzFj
MjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERC
L0lEQlV0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRGF0YWJhc2VzL0lu
ZGV4ZWREQi9JREJVdGlsaXRpZXMuY3BwCkBAIC01Miw3ICs1Miw5IEBAIFN0cmluZyB1bmlxdWVE
YXRhYmFzZUlkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ18nKTsKICAgICBzdHJpbmdCdWls
ZGVyLmFwcGVuZChkYXRhYmFzZU5hbWUpOwogCi0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkp
CisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvR2FtZXBhZC9HYW1l
cGFkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9HYW1lcGFkL0dhbWVwYWREYXRhLmNw
cAppbmRleCA5MDVkODI3Li4xZmJkN2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9HYW1lcGFkL0dhbWVwYWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9HYW1l
cGFkL0dhbWVwYWREYXRhLmNwcApAQCAtMTExLDcgKzExMSw5IEBAIFN0cmluZyBHYW1lcGFkRGF0
YTo6bG9nZ2luZ1N0cmluZygpIGNvbnN0CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1f
YnV0dG9uVmFsdWVzW2ldKTsKICAgICB9CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OworICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL3VuaXgvTmV0c2NhcGVQbHVnaW5Nb2R1
bGVVbml4LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvdW5peC9O
ZXRzY2FwZVBsdWdpbk1vZHVsZVVuaXguY3BwCmluZGV4IGY5ZWIwNmUuLjk3MmRjYjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvdW5peC9OZXRzY2Fw
ZVBsdWdpbk1vZHVsZVVuaXguY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BsdWdpbnMv
TmV0c2NhcGUvdW5peC9OZXRzY2FwZVBsdWdpbk1vZHVsZVVuaXguY3BwCkBAIC0xMjAsNyArMTIw
LDkgQEAgU3RyaW5nIE5ldHNjYXBlUGx1Z2luTW9kdWxlOjpidWlsZE1JTUVEZXNjcmlwdGlvbihj
b25zdCBWZWN0b3I8TWltZUNsYXNzSW5mbz4mIG0KICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCc7Jyk7CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CiAKIGJvb2wgTmV0c2NhcGVQbHVnaW5Nb2R1bGU6OmdldFBsdWdp
bkluZm9Gb3JMb2FkZWRQbHVnaW4oUmF3UGx1Z2luTWV0YURhdGEmIG1ldGFEYXRhKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcAppbmRleCA5Mjc3MTg5Li42NzU4YWIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcApAQCAtMTgxLDgg
KzE4MSwxMSBAQCB2b2lkIFdlYk1lbW9yeVNhbXBsZXI6OmFwcGVuZEN1cnJlbnRNZW1vcnlVc2Fn
ZVRvRmlsZShGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYQogICAgIH0KICAgICBzdGF0U3RyaW5n
LmFwcGVuZCgnXG4nKTsKIAotICAgIENTdHJpbmcgdXRmOFN0cmluZyA9IHN0YXRTdHJpbmcudG9T
dHJpbmcoKS51dGY4KCk7Ci0gICAgRmlsZVN5c3RlbTo6d3JpdGVUb0ZpbGUobV9zYW1wbGVMb2dG
aWxlLCB1dGY4U3RyaW5nLmRhdGEoKSwgdXRmOFN0cmluZy5sZW5ndGgoKSk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gc3RhdFN0cmluZy50b1N0cmluZygpKSB7CisgICAgICAgIENTdHJpbmcgdXRm
OFN0cmluZyA9IHN0cmluZy0+dXRmOCgpOworICAgICAgICBGaWxlU3lzdGVtOjp3cml0ZVRvRmls
ZShtX3NhbXBsZUxvZ0ZpbGUsIHV0ZjhTdHJpbmcuZGF0YSgpLCB1dGY4U3RyaW5nLmxlbmd0aCgp
KTsKKyAgICB9IGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJTY3JpcHQuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJTY3JpcHQuY3BwCmluZGV4IDc1ODRlNjMuLmE5MzliNTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVc2VyU2NyaXB0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVXNlclNjcmlwdC5jcHAKQEAg
LTM3LDcgKzM3LDkgQEAgV2ViQ29yZTo6VVJMIFVzZXJTY3JpcHQ6OmdlbmVyYXRlVW5pcXVlVVJM
KCkKICAgICBTdHJpbmdCdWlsZGVyIHVybFN0cmluZ0J1aWxkZXI7CiAgICAgdXJsU3RyaW5nQnVp
bGRlci5hcHBlbmRMaXRlcmFsKCJ1c2VyLXNjcmlwdDoiKTsKICAgICB1cmxTdHJpbmdCdWlsZGVy
LmFwcGVuZE51bWJlcigrK2lkZW50aWZpZXIpOwotICAgIHJldHVybiB7IHsgfSwgdXJsU3RyaW5n
QnVpbGRlci50b1N0cmluZygpIH07CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdXJsU3RyaW5nQnVp
bGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4geyB7IH0sICpzdHJpbmcgfTsKKyAgICBD
UkFTSCgpOwogfQogCiBVc2VyU2NyaXB0OjpVc2VyU2NyaXB0KFdlYkNvcmU6OlVzZXJTY3JpcHQg
dXNlclNjcmlwdCwgQVBJOjpVc2VyQ29udGVudFdvcmxkJiB3b3JsZCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVc2VyU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVXNlclN0eWxlU2hlZXQuY3BwCmluZGV4IDFkNTk1YmIu
LjYzYWMwZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVc2Vy
U3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJT
dHlsZVNoZWV0LmNwcApAQCAtMzcsNyArMzcsOSBAQCBXZWJDb3JlOjpVUkwgVXNlclN0eWxlU2hl
ZXQ6OmdlbmVyYXRlVW5pcXVlVVJMKCkKICAgICBTdHJpbmdCdWlsZGVyIHVybFN0cmluZ0J1aWxk
ZXI7CiAgICAgdXJsU3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJ1c2VyLXN0eWxlLXNoZWV0
OiIpOwogICAgIHVybFN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKCsraWRlbnRpZmllcik7Ci0g
ICAgcmV0dXJuIHsgeyB9LCB1cmxTdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkgfTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSB1cmxTdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biB7IHsgfSwgKnN0cmluZyB9OworICAgIENSQVNIKCk7CiB9CiAKIFVzZXJTdHlsZVNoZWV0OjpV
c2VyU3R5bGVTaGVldChXZWJDb3JlOjpVc2VyU3R5bGVTaGVldCB1c2VyU3R5bGVTaGVldCwgQVBJ
OjpVc2VyQ29udGVudFdvcmxkJiB3b3JsZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKaW5kZXggM2I3ZjI4Ny4uMGQwODVlYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5j
cHAKQEAgLTMyOTYsOSArMzI5NiwxMiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3UnVuSmF2
YVNjcmlwdENhbGxiYWNrKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiB3a1NlcgogICAgICAg
ICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI6ICIpOwogICAgICAgICB9CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKGV4Y2VwdGlvbkRldGFpbHMubWVzc2FnZSk7Ci0gICAgICAgIGdfdGFza19y
ZXR1cm5fbmV3X2Vycm9yKHRhc2ssIFdFQktJVF9KQVZBU0NSSVBUX0VSUk9SLCBXRUJLSVRfSkFW
QVNDUklQVF9FUlJPUl9TQ1JJUFRfRkFJTEVELAotICAgICAgICAgICAgIiVzIiwgYnVpbGRlci50
b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICByZXR1cm47CisgICAgICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgZ190YXNrX3Jl
dHVybl9uZXdfZXJyb3IodGFzaywgV0VCS0lUX0pBVkFTQ1JJUFRfRVJST1IsIFdFQktJVF9KQVZB
U0NSSVBUX0VSUk9SX1NDUklQVF9GQUlMRUQsCisgICAgICAgICAgICAgICAgIiVzIiwgc3RyaW5n
LT51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAg
ICBDUkFTSCgpOwogICAgIH0KIAogICAgIGdfdGFza19yZXR1cm5fcG9pbnRlcih0YXNrLCB3ZWJr
aXRKYXZhc2NyaXB0UmVzdWx0Q3JlYXRlKHdrU2VyaWFsaXplZFNjcmlwdFZhbHVlLT5pbnRlcm5h
bFJlcHJlc2VudGF0aW9uKCkpLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKaW5kZXggOGMyMWMyNC4uOTE2ZGQ0NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVy
ZUNvbnRyb2xsZXIuY3BwCkBAIC0yMzIsOCArMjMyLDEwIEBAIFN0cmluZyBWaWV3R2VzdHVyZUNv
bnRyb2xsZXI6OlNuYXBzaG90UmVtb3ZhbFRyYWNrZXI6OmV2ZW50c0Rlc2NyaXB0aW9uKEV2ZW50
cyBlCiAKICAgICBpZiAoZXZlbnQgJiBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlNuYXBzaG90UmVt
b3ZhbFRyYWNrZXI6OlNjcm9sbFBvc2l0aW9uUmVzdG9yYXRpb24pCiAgICAgICAgIGRlc2NyaXB0
aW9uLmFwcGVuZCgiU2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbiAiKTsKLSAgICAKLSAgICByZXR1
cm4gZGVzY3JpcHRpb24udG9TdHJpbmcoKTsKKworICAgIGlmIChhdXRvIHN0cmluZyA9IGRlc2Ny
aXB0aW9uLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7
CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQmFja0Zvcndh
cmRMaXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5j
cHAKaW5kZXggNjAwNmEwMi4uMTI4ZjU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwCkBAIC00OTMsNyArNDkzLDkgQEAgY29uc3QgY2hhciog
V2ViQmFja0ZvcndhcmRMaXN0Ojpsb2dnaW5nU3RyaW5nKCkKICAgICAgICAgYnVpbGRlci5hcHBl
bmQobV9lbnRyaWVzW2ldLT5sb2dnaW5nU3RyaW5nKCkpOwogICAgIH0KIAotICAgIHJldHVybiBk
ZWJ1Z1N0cmluZygiXG4iLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIGRlYnVnU3RyaW5nKCJcbiIs
ICpzdHJpbmcpOworICAgIENSQVNIKCk7CiB9CiAjZW5kaWYgLy8gIUxPR19ESVNBQkxFRAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggY2E1NDhiZS4u
MTdiYzM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApA
QCAtNzEwLDcgKzcxMCwxMCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpkaWRSZWNlaXZlSW52YWxp
ZE1lc3NhZ2UoY29uc3QgSVBDOjpTdHJpbmdSZWZlcmVuY2UmIG1lc3NhZwogICAgIG1lc3NhZ2VO
YW1lU3RyaW5nQnVpbGRlci5hcHBlbmQoJy4nKTsKICAgICBtZXNzYWdlTmFtZVN0cmluZ0J1aWxk
ZXIuYXBwZW5kKG1lc3NhZ2VOYW1lLmRhdGEoKSwgbWVzc2FnZU5hbWUuc2l6ZSgpKTsKIAotICAg
IHNfaW52YWxpZE1lc3NhZ2VDYWxsYmFjayh0b0FQSShBUEk6OlN0cmluZzo6Y3JlYXRlKG1lc3Nh
Z2VOYW1lU3RyaW5nQnVpbGRlci50b1N0cmluZygpKS5wdHIoKSkpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IG1lc3NhZ2VOYW1lU3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBzX2lu
dmFsaWRNZXNzYWdlQ2FsbGJhY2sodG9BUEkoQVBJOjpTdHJpbmc6OmNyZWF0ZSgqc3RyaW5nKS5w
dHIoKSkpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNz
UG9vbDo6cHJvY2Vzc0RpZENhY2hlUGFnZShXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA0MTU2ZDgzLi5l
ZjA5ZGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAK
QEAgLTE3MCw3ICsxNzAsMTAgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlv
bnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHQKICAgICAgICAgICAg
ICAgICBsYW5ndWFnZVN0cmluZy5hcHBlbmQoJywnKTsKICAgICAgICAgICAgIGxhbmd1YWdlU3Ry
aW5nLmFwcGVuZChvdmVycmlkZUxhbmd1YWdlc1tpXSk7CiAgICAgICAgIH0KLSAgICAgICAgbGF1
bmNoT3B0aW9ucy5leHRyYUluaXRpYWxpemF0aW9uRGF0YS5hZGQoQVNDSUlMaXRlcmFsKCJPdmVy
cmlkZUxhbmd1YWdlcyIpLCBsYW5ndWFnZVN0cmluZy50b1N0cmluZygpKTsKKyAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gbGFuZ3VhZ2VTdHJpbmcudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGxh
dW5jaE9wdGlvbnMuZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuYWRkKEFTQ0lJTGl0ZXJhbCgiT3Zl
cnJpZGVMYW5ndWFnZXMiKSwgKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENS
QVNIKCk7CiAgICAgfQogCiAgICAgbGF1bmNoT3B0aW9ucy5ub25WYWxpZEluamVjdGVkQ29kZUFs
bG93ZWQgPSBzaG91bGRBbGxvd05vblZhbGlkSW5qZWN0ZWRDb2RlKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmNwcAppbmRleCA3ZmE4OTEwLi41ZDliNzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTIy
Nyw3ICsyMjcsMTAgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlbW92
ZURhdGFSZWNvcmRzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4KICAgICAgICAgICAgIGFwcGVu
ZFdpdGhEZWxpbWl0ZXIoZG9tYWluc1RvUmVtb3ZlRGF0YVJlY29yZHNGb3JCdWlsZGVyLCBkb21h
aW4sIGlzRmlyc3RJdGVtKTsKICAgICAgICAgICAgIGlzRmlyc3RJdGVtID0gZmFsc2U7CiAgICAg
ICAgIH0KLSAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVi
dWcsICJBYm91dCB0byByZW1vdmUgZGF0YSByZWNvcmRzIGZvciAle3B1YmxpY31zLiIsIGRvbWFp
bnNUb1JlbW92ZURhdGFSZWNvcmRzRm9yQnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkp
OworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBkb21haW5zVG9SZW1vdmVEYXRhUmVjb3Jkc0Zv
ckJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RlYnVnLCAiQWJvdXQgdG8gcmVtb3ZlIGRhdGEgcmVjb3JkcyBmb3Ig
JXtwdWJsaWN9cy4iLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBDUkFTSCgpOwogICAgIH0KICNlbmRpZgogCkBAIC0xMDQ0LDcgKzEwNDcsMTAgQEAg
dm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnVwZGF0ZUNvb2tpZVBhcnRpdGlv
bmluZyhDb21wbGV0aW9uSGFuZGxlcjwKICAgICAgICAgICAgICAgICBhcHBlbmRXaXRoRGVsaW1p
dGVyKGRvbWFpbnNUb1BhcnRpdGlvbkJ1aWxkZXIsIGRvbWFpbiwgaXNGaXJzdERvbWFpbik7CiAg
ICAgICAgICAgICAgICAgaXNGaXJzdERvbWFpbiA9IGZhbHNlOwogICAgICAgICAgICAgfQotICAg
ICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWcsICJB
Ym91dCB0byBwYXJ0aXRpb24gY29va2llcyBpbiB0aGlyZC1wYXJ0eSBjb250ZXh0cyBmb3IgJXtw
dWJsaWN9cy4iLCBkb21haW5zVG9QYXJ0aXRpb25CdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRh
dGEoKSk7CisgICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBkb21haW5zVG9QYXJ0aXRpb25C
dWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGVidWcsICJBYm91dCB0byBwYXJ0aXRpb24gY29va2llcyBpbiB0
aGlyZC1wYXJ0eSBjb250ZXh0cyBmb3IgJXtwdWJsaWN9cy4iLCBzdHJpbmctPnV0ZjgoKS5kYXRh
KCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAg
IH0KIAogICAgICAgICBpZiAoIWRvbWFpbnNUb0Jsb2NrLmlzRW1wdHkoKSkgewpAQCAtMTA1NCw3
ICsxMDYwLDEwIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjp1cGRhdGVD
b29raWVQYXJ0aXRpb25pbmcoQ29tcGxldGlvbkhhbmRsZXI8CiAgICAgICAgICAgICAgICAgYXBw
ZW5kV2l0aERlbGltaXRlcihkb21haW5zVG9CbG9ja0J1aWxkZXIsIGRvbWFpbiwgaXNGaXJzdERv
bWFpbik7CiAgICAgICAgICAgICAgICAgaXNGaXJzdERvbWFpbiA9IGZhbHNlOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGVidWcsICJBYm91dCB0byBibG9jayBjb29raWVzIGluIHRoaXJkLXBhcnR5IGNvbnRleHRzIGZv
ciAle3B1YmxpY31zLiIsIGRvbWFpbnNUb0Jsb2NrQnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZG9tYWluc1RvQmxvY2tCdWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGVidWcsICJBYm91dCB0byBibG9jayBjb29raWVzIGluIHRoaXJkLXBh
cnR5IGNvbnRleHRzIGZvciAle3B1YmxpY31zLiIsIHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogCiAg
ICAgICAgIGlmICghZG9tYWluc1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrLmlzRW1wdHkoKSkg
ewpAQCAtMTA2NCw3ICsxMDczLDEwIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjp1cGRhdGVDb29raWVQYXJ0aXRpb25pbmcoQ29tcGxldGlvbkhhbmRsZXI8CiAgICAgICAg
ICAgICAgICAgYXBwZW5kV2l0aERlbGltaXRlcihkb21haW5zVG9OZWl0aGVyUGFydGl0aW9uTm9y
QmxvY2tCdWlsZGVyLCBkb21haW4sIGlzRmlyc3REb21haW4pOwogICAgICAgICAgICAgICAgIGlz
Rmlyc3REb21haW4gPSBmYWxzZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0lORk8oUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnLCAiQWJvdXQgdG8gbmVpdGhlciBw
YXJ0aXRpb24gbm9yIGJsb2NrIGNvb2tpZXMgaW4gdGhpcmQtcGFydHkgY29udGV4dHMgZm9yICV7
cHVibGljfXMuIiwgZG9tYWluc1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrQnVpbGRlci50b1N0
cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZG9t
YWluc1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrQnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnLCAi
QWJvdXQgdG8gbmVpdGhlciBwYXJ0aXRpb24gbm9yIGJsb2NrIGNvb2tpZXMgaW4gdGhpcmQtcGFy
dHkgY29udGV4dHMgZm9yICV7cHVibGljfXMuIiwgc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAgICAg
fQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnkuY3BwCmluZGV4IGJiNzQ0MGMuLjUyMGFi
Nzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzVGVsZW1ldHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5LmNwcApAQCAtMTc5LDIyICsxNzksMjMgQEAg
c3RhdGljIHZvaWQgc3VibWl0VG9wTGlzdCh1bnNpZ25lZCBudW1iZXJPZlJlc291cmNlc0Zyb21U
aGVUb3AsIGNvbnN0IFZlY3RvcjxQcmUKICAgICBTdHJpbmdCdWlsZGVyIHByZWFtYmxlQnVpbGRl
cjsKICAgICBwcmVhbWJsZUJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgidG9wIik7CiAgICAgcHJlYW1i
bGVCdWlsZGVyLmFwcGVuZE51bWJlcihudW1iZXJPZlJlc291cmNlc0Zyb21UaGVUb3ApOwotICAg
IFN0cmluZyBkZXNjcmlwdGlvblByZWFtYmxlID0gcHJlYW1ibGVCdWlsZGVyLnRvU3RyaW5nKCk7
Ci0gICAgCi0gICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERp
YWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgp
LCBkZXNjcmlwdGlvblByZWFtYmxlICsgIlByZXZhbGVudFJlc291cmNlc1dpdGhVc2VySW50ZXJh
Y3Rpb24iLAotICAgICAgICB0b3BQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9u
LCBzaWduaWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOwot
ICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgZGVzY3Jp
cHRpb25QcmVhbWJsZSArICJTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5zIiwKLSAgICAgICAg
dG9wU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lucywgc2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9n
Z2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKLSAgICB3ZWJQYWdlUHJveHkubG9nRGlhZ25v
c3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRT
dGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCksIGRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiU3VicmVzb3Vy
Y2VVbmRlclRvcEZyYW1lT3JpZ2lucyIsCi0gICAgICAgIHRvcFN1YnJlc291cmNlVW5kZXJUb3BG
cmFtZU9yaWdpbnMsIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2Ft
cGxlOjpObyk7Ci0gICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVl
KERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtl
eSgpLCBkZXNjcmlwdGlvblByZWFtYmxlICsgIlN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8i
LAotICAgICAgICB0b3BTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvLCBzaWduaWZpY2FudEZp
Z3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOwotICAgIHdlYlBhZ2VQcm94
eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJl
c291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgZGVzY3JpcHRpb25QcmVhbWJsZSAr
ICJOdW1iZXJPZlRpbWVzRGF0YVJlY29yZHNSZW1vdmVkIiwKLSAgICAgICAgdG9wTnVtYmVyT2ZU
aW1lc0RhdGFSZWNvcmRzUmVtb3ZlZCwgc2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9nZ2VkVmFsdWVz
LCBTaG91bGRTYW1wbGU6Ok5vKTsKLSAgICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3RpY01lc3Nh
Z2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNz
VGVsZW1ldHJ5S2V5KCksIGRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiTnVtYmVyT2ZUaW1lc0FjY2Vz
c2VkQXNGaXJzdFBhcnR5RHVlVG9Vc2VySW50ZXJhY3Rpb24iLAotICAgICAgICB0b3BOdW1iZXJP
ZlRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1VzZXJJbnRlcmFjdGlvbiwgc2lnbmlmaWNh
bnRGaWd1cmVzRm9yTG9nZ2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKLSAgICB3ZWJQYWdl
UHJveHkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
OjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCksIGRlc2NyaXB0aW9uUHJlYW1i
bGUgKyAiTnVtYmVyT2ZUaW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9TdG9yYWdlQWNjZXNz
QVBJIiwKLSAgICAgICAgdG9wTnVtYmVyT2ZUaW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9T
dG9yYWdlQWNjZXNzQVBJLCBzaWduaWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3Vs
ZFNhbXBsZTo6Tm8pOworICAgIGlmIChhdXRvIGRlc2NyaXB0aW9uUHJlYW1ibGUgPSBwcmVhbWJs
ZUJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0
aXN0aWNzVGVsZW1ldHJ5S2V5KCksICpkZXNjcmlwdGlvblByZWFtYmxlICsgIlByZXZhbGVudFJl
c291cmNlc1dpdGhVc2VySW50ZXJhY3Rpb24iLAorICAgICAgICAgICAgdG9wUHJldmFsZW50UmVz
b3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbiwgc2lnbmlmaWNhbnRGaWd1cmVzRm9yTG9nZ2VkVmFs
dWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICAgICAgd2ViUGFnZVByb3h5LmxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1RlbGVtZXRyeUtleSgpLCAqZGVzY3JpcHRpb25QcmVhbWJsZSArICJTdWJmcmFtZVVu
ZGVyVG9wRnJhbWVPcmlnaW5zIiwKKyAgICAgICAgICAgIHRvcFN1YmZyYW1lVW5kZXJUb3BGcmFt
ZU9yaWdpbnMsIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2FtcGxl
OjpObyk7CisgICAgICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1
ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlL
ZXkoKSwgKmRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3Jp
Z2lucyIsCisgICAgICAgICAgICB0b3BTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW5zLCBz
aWduaWZpY2FudEZpZ3VyZXNGb3JMb2dnZWRWYWx1ZXMsIFNob3VsZFNhbXBsZTo6Tm8pOworICAg
ICAgICB3ZWJQYWdlUHJveHkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5S2V5KCksICpkZXNj
cmlwdGlvblByZWFtYmxlICsgIlN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8iLAorICAgICAg
ICAgICAgdG9wU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbywgc2lnbmlmaWNhbnRGaWd1cmVz
Rm9yTG9nZ2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICAgICAgd2ViUGFnZVByb3h5
LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVz
b3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUtleSgpLCAqZGVzY3JpcHRpb25QcmVhbWJsZSAr
ICJOdW1iZXJPZlRpbWVzRGF0YVJlY29yZHNSZW1vdmVkIiwKKyAgICAgICAgICAgIHRvcE51bWJl
ck9mVGltZXNEYXRhUmVjb3Jkc1JlbW92ZWQsIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZh
bHVlcywgU2hvdWxkU2FtcGxlOjpObyk7CisgICAgICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9z
dGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0
YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwgKmRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiTnVtYmVyT2ZU
aW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9Vc2VySW50ZXJhY3Rpb24iLAorICAgICAgICAg
ICAgdG9wTnVtYmVyT2ZUaW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9Vc2VySW50ZXJhY3Rp
b24sIHNpZ25pZmljYW50RmlndXJlc0ZvckxvZ2dlZFZhbHVlcywgU2hvdWxkU2FtcGxlOjpObyk7
CisgICAgICAgIHdlYlBhZ2VQcm94eS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFn
bm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlLZXkoKSwg
KmRlc2NyaXB0aW9uUHJlYW1ibGUgKyAiTnVtYmVyT2ZUaW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5
RHVlVG9TdG9yYWdlQWNjZXNzQVBJIiwKKyAgICAgICAgICAgIHRvcE51bWJlck9mVGltZXNBY2Nl
c3NlZEFzRmlyc3RQYXJ0eUR1ZVRvU3RvcmFnZUFjY2Vzc0FQSSwgc2lnbmlmaWNhbnRGaWd1cmVz
Rm9yTG9nZ2VkVmFsdWVzLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICB9IGVsc2UKKyAgICAgICAg
Q1JBU0goKTsKIH0KICAgICAKIHN0YXRpYyB2b2lkIHN1Ym1pdFRvcExpc3RzKGNvbnN0IFZlY3Rv
cjxQcmV2YWxlbnRSZXNvdXJjZVRlbGVtZXRyeT4mIHNvcnRlZFByZXZhbGVudFJlc291cmNlcywg
Y29uc3QgVmVjdG9yPFByZXZhbGVudFJlc291cmNlVGVsZW1ldHJ5PiYgc29ydGVkUHJldmFsZW50
UmVzb3VyY2VzV2l0aG91dFVzZXJJbnRlcmFjdGlvbiwgV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJv
eHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2dsaWIvV2ViS2l0V2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViUGFnZS5jcHAKaW5kZXggNjY3Y2Q4MS4uZGY2
OTA0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9nbGliL1dlYktpdFdlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJQYWdlLmNwcApAQCAtMjc0LDcgKzI3
NCwxMCBAQCBwcml2YXRlOgogICAgICAgICAgICAgZXJyb3JNZXNzYWdlLmFwcGVuZExpdGVyYWwo
IiAoIik7CiAgICAgICAgICAgICBlcnJvck1lc3NhZ2UuYXBwZW5kKHJlc3BvbnNlLmh0dHBTdGF0
dXNUZXh0KCkpOwogICAgICAgICAgICAgZXJyb3JNZXNzYWdlLmFwcGVuZCgnKScpOwotICAgICAg
ICAgICAgd2Via2l0V2ViUGFnZURpZFNlbmRDb25zb2xlTWVzc2FnZShtX3dlYlBhZ2UsIE1lc3Nh
Z2VTb3VyY2U6Ok5ldHdvcmssIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIGVycm9yTWVzc2FnZS50b1N0
cmluZygpLCAwLCByZXNwb25zZS51cmwoKS5zdHJpbmcoKSk7CisgICAgICAgICAgICBpZiAoYXV0
byBzdHJpbmcgPSBlcnJvck1lc3NhZ2UudG9TdHJpbmcoKSkKKyAgICAgICAgICAgICAgICB3ZWJr
aXRXZWJQYWdlRGlkU2VuZENvbnNvbGVNZXNzYWdlKG1fd2ViUGFnZSwgTWVzc2FnZVNvdXJjZTo6
TmV0d29yaywgTWVzc2FnZUxldmVsOjpFcnJvciwgKnN0cmluZywgMCwgcmVzcG9uc2UudXJsKCku
c3RyaW5nKCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAg
ICAgICAgIH0KICAgICB9CiAKQEAgLTMxMSw3ICszMTQsMTAgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgICAgICBlcnJvck1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiOiAiKTsKICAgICAgICAgICAgICAg
ICBlcnJvck1lc3NhZ2UuYXBwZW5kKGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkpOwogICAg
ICAgICAgICAgfQotICAgICAgICAgICAgd2Via2l0V2ViUGFnZURpZFNlbmRDb25zb2xlTWVzc2Fn
ZShtX3dlYlBhZ2UsIE1lc3NhZ2VTb3VyY2U6Ok5ldHdvcmssIE1lc3NhZ2VMZXZlbDo6RXJyb3Is
IGVycm9yTWVzc2FnZS50b1N0cmluZygpLCAwLCBlcnJvci5mYWlsaW5nVVJMKCkpOworICAgICAg
ICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZXJyb3JNZXNzYWdlLnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICAgICAgd2Via2l0V2ViUGFnZURpZFNlbmRDb25zb2xlTWVzc2FnZShtX3dlYlBhZ2UsIE1l
c3NhZ2VTb3VyY2U6Ok5ldHdvcmssIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICpzdHJpbmcsIDAsIGVy
cm9yLmZhaWxpbmdVUkwoKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQ1JB
U0goKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3Mu
Y3BwCmluZGV4IDBiY2NmYWYuLmFkYTVmNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJG
dW5jcy5jcHAKQEAgLTEzOCw3ICsxMzgsOSBAQCBzdGF0aWMgU3RyaW5nIGNhcGl0YWxpemVSRkM4
MjJIZWFkZXJGaWVsZE5hbWUoY29uc3QgU3RyaW5nJiBuYW1lKQogICAgICAgICBlbHNlCiAgICAg
ICAgICAgICBjYXBpdGFsaXplQ2hhcmFjdGVyID0gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiBy
ZXN1bHQudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSByZXN1bHQudG9TdHJpbmco
KSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIEhU
VFBIZWFkZXJNYXAgcGFyc2VSRkM4MjJIZWFkZXJGaWVsZHMoY29uc3QgY2hhciogYnl0ZXMsIHVu
c2lnbmVkIGxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luVmlldy5jcHAKaW5kZXggYTdmY2FjZS4uNzk5YWQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTIxMiw3ICsyMTIsOSBAQCBz
dGF0aWMgU3RyaW5nIGJ1aWxkSFRUUEhlYWRlcnMoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UsIGxvbmcgbG9uZyYgZXhwZQogICAgIGlmICghY29udGVudEVuY29kaW5nLmlzTnVsbCgp
ICYmIGNvbnRlbnRFbmNvZGluZyAhPSAiaWRlbnRpdHkiKQogICAgICAgICBleHBlY3RlZENvbnRl
bnRMZW5ndGggPSAtMTsKIAotICAgIHJldHVybiBoZWFkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBoZWFkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIHVpbnQzMl90IGxhc3RNb2RpZmllZERhdGVNUyhj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAppbmRleCAxNmFiZTU1Li40ODljOGNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC0zNTEsNyAr
MzUxLDkgQEAgU3RyaW5nIFdlYkZyYW1lOjpjb250ZW50c0FzU3RyaW5nKCkgY29uc3QKICAgICAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKHdlYkZyYW1lLT5jb250ZW50c0FzU3RyaW5nKCkpOwogICAg
ICAgICB9CiAgICAgICAgIC8vIEZJWE1FOiBJdCBtYXkgbWFrZSBzZW5zZSB0byB1c2UgdG9TdHJp
bmdQcmVzZXJ2ZUNhcGFjaXR5KCkgaGVyZS4KLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICAgICAgcmV0dXJuICpzdHJpbmc7CisgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAg
RG9jdW1lbnQqIGRvY3VtZW50ID0gbV9jb3JlRnJhbWUtPmRvY3VtZW50KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKaW5kZXggMzY3NmU2NS4uNDZlYTE2YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE4LTA0LTI2ICBKRiBCYXN0aWVuICA8amZi
YXN0aWVuQGFwcGxlLmNvbT4KKworICAgICAgICBTdHJpbmdCdWlsZGVyIGlzIGZhbGxpYmxlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUwNDgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZWFjaCBTdHJp
bmdCdWlsZGVyIHRoYXQgaXQgaXMgZmFsbGlibGUKKworICAgICAgICAqIFdlYlZpZXcvV2ViSFRN
TFJlcHJlc2VudGF0aW9uLm1tOgorICAgICAgICAocmVnRXhwRm9yTGFiZWxzKToKKwogMjAxOC0w
NS0wMSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBb
TWVkaWFTdHJlYW1dIHJlbW92ZSBXSzEgc3VwcG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubW0gYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbQppbmRleCAxOTE4
MzYzLi4yYjI3YTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbQpAQCAtMzk0LDcgKzM5NCwxMCBAQCBzdGF0
aWMgUmVndWxhckV4cHJlc3Npb24qIHJlZ0V4cEZvckxhYmVscyhOU0FycmF5ICpsYWJlbHMpCiAg
ICAgICAgICAgICAgICAgcGF0dGVybi5hcHBlbmRMaXRlcmFsKCJcXGIiKTsKICAgICAgICAgfQog
ICAgICAgICBwYXR0ZXJuLmFwcGVuZCgnKScpOwotICAgICAgICByZXN1bHQgPSBuZXcgUmVndWxh
ckV4cHJlc3Npb24ocGF0dGVybi50b1N0cmluZygpLCBKU0M6OllhcnI6OlRleHRDYXNlSW5zZW5z
aXRpdmUpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBwYXR0ZXJuLnRvU3RyaW5nKCkpCisg
ICAgICAgICAgICByZXN1bHQgPSBuZXcgUmVndWxhckV4cHJlc3Npb24oKnN0cmluZywgSlNDOjpZ
YXJyOjpUZXh0Q2FzZUluc2Vuc2l0aXZlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JB
U0goKTsKICAgICB9CiAKICAgICAvLyBhZGQgcmVnZXhwIHRvIHRoZSBjYWNoZSwgbWFraW5nIHN1
cmUgaXQgaXMgYXQgdGhlIGZyb250IGZvciBMUlUgb3JkZXJpbmcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL0FjY2Vzc2libGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL0FjY2Vzc2libGVCYXNlLmNwcAppbmRleCA3ZTNiMTgzLi5hODFlMzM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nlc3NpYmxlQmFzZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vQWNjZXNzaWJsZUJhc2UuY3BwCkBAIC02MDksNyArNjA5LDEw
IEBAIEhSRVNVTFQgQWNjZXNzaWJsZUJhc2U6OmdldF9hY2NLZXlib2FyZFNob3J0Y3V0KFZBUklB
TlQgdkNoaWxkLCBfX2RlcmVmX29wdF9vdXQKICAgICAgICAgICAgIGFjY2Vzc0tleU1vZGlmaWVy
c0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiU2hpZnQrIik7CiAgICAgICAgIGlmIChtb2RpZmllcnMu
Y29udGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6Ok1ldGFLZXkpKQogICAgICAgICAgICAg
YWNjZXNzS2V5TW9kaWZpZXJzQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJXaW4rIik7Ci0gICAgICAg
IGFjY2Vzc0tleU1vZGlmaWVycyA9IGFjY2Vzc0tleU1vZGlmaWVyc0J1aWxkZXIudG9TdHJpbmco
KTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gYWNjZXNzS2V5TW9kaWZpZXJzQnVpbGRlci50
b1N0cmluZygpKQorICAgICAgICAgICAgYWNjZXNzS2V5TW9kaWZpZXJzID0gKnN0cmluZzsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAgICAgKnNob3J0Y3V0ID0g
QlN0cmluZyhTdHJpbmcoYWNjZXNzS2V5TW9kaWZpZXJzICsgYWNjZXNzS2V5KSkucmVsZWFzZSgp
OwogICAgIHJldHVybiBTX09LOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
UGx1Z2lucy9QbHVnaW5TdHJlYW0uY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vUGx1Z2lu
cy9QbHVnaW5TdHJlYW0uY3BwCmluZGV4IGYyNTY2NGQuLmM5OTgwNWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1BsdWdpbnMvUGx1Z2luU3RyZWFtLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9QbHVnaW5zL1BsdWdpblN0cmVhbS5jcHAKQEAgLTE2Nyw3ICsx
NjcsMTAgQEAgdm9pZCBQbHVnaW5TdHJlYW06OnN0YXJ0U3RyZWFtKCkKICAgICAgICAgICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwogICAgICAgICB9CiAKLSAgICAgICAgbV9oZWFkZXJz
ID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpLnV0ZjgoKTsKKyAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgbV9oZWFkZXJzID0g
c3RyaW5nLT51dGY4KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAKICAg
ICAgICAgLy8gSWYgdGhlIGNvbnRlbnQgaXMgZW5jb2RlZCAobW9zdCBsaWtlbHkgY29tcHJlc3Nl
ZCksIHRoZW4gZG9uJ3Qgc2VuZCBpdHMgbGVuZ3RoIHRvIHRoZSBwbHVnaW4sCiAgICAgICAgIC8v
IHdoaWNoIGlzIG9ubHkgaW50ZXJlc3RlZCBpbiB0aGUgZGVjb2RlZCBsZW5ndGgsIG5vdCB5ZXQg
a25vd24gYXQgdGhlIG1vbWVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYktpdFN0YXRpc3RpY3MuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0U3Rh
dGlzdGljcy5jcHAKaW5kZXggOTAwMmM5Mi4uYzRiOGJmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViS2l0U3RhdGlzdGljcy5jcHAKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViS2l0U3RhdGlzdGljcy5jcHAKQEAgLTE1Niw2ICsxNTYsOSBAQCBIUkVTVUxU
IFdlYktpdFN0YXRpc3RpY3M6OmNvbUNsYXNzTmFtZUNvdW50cyhfX2RlcmVmX291dF9vcHQgQlNU
Uiogb3V0cHV0KQogICAgICAgICBidWlsZGVyLmFwcGVuZChzbG90LmtleSk7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCdcbicpOwogICAgIH0KLSAgICAqb3V0cHV0ID0gQlN0cmluZyhidWlsZGVy
LnRvU3RyaW5nKCkpLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gU19PSzsKKyAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgKm91dHB1dCA9IEJTdHJpbmco
KnN0cmluZykucmVsZWFzZSgpOworICAgICAgICByZXR1cm4gU19PSzsKKyAgICB9CisgICAgQ1JB
U0goKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCBkYTA3MzZmLi4zMGE1ZDI0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODEgQEAKKzIwMTgtMDQtMjYgIEpGIEJhc3RpZW4g
IDxqZmJhc3RpZW5AYXBwbGUuY29tPgorCisgICAgICAgIFN0cmluZ0J1aWxkZXIgaXMgZmFsbGli
bGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTA0
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0cmlu
Z0J1aWxkZXIgY2FuIGZhaWwgd2hlbiBhbGxvY2F0aW5nIG1lbW9yeS4gU3RyaW5nQnVpbGRlciBp
cworICAgICAgICBtb3N0bHkgdXNlZCB3aXRoIHVzZXIgaW5wdXQsIHdoaWNoIG9mdGVuIG1lYW5z
IHRoYXQganVzdCBjcmFzaGluZworICAgICAgICBpc24ndCB0aGUgcmlnaHQgb3V0Y29tZS4gT3Vy
IGZ1enplcnMgb2Z0ZW4gZW5jb3VudGVyIHN1Y2ggdGhpbmdzCisgICAgICAgIGZvciBKYXZhU2Ny
aXB0Q29yZSwgYW5kIHNvIGZhciB3ZSd2ZSBhcHBsaWVkIHBvaW50IHNvbHV0aW9ucy4gTm8KKyAg
ICAgICAgbW9yZSEKKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1
aWxkZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZXhwZWN0QnVpbGRlckNvbnRlbnQp
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZXhwZWN0RW1wdHkpOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5n
Vmlldy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvRmlsZU1vbml0b3IuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Y3JlYXRlQ29t
bWFuZCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Mb2dnaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OkxvZ2dpbmdUZXN0OjpvdXRwdXQpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9G
KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkxvZ09ic2VydmVyOjpsb2cpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9UZXh0Q29kZWMuY3BwOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6dGVzdERlY29kZSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9XVEZTdHJp
bmdVdGlsaXRpZXMuaDoKKyAgICAgICAgKHV0ZjE2U3RyaW5nKToKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHA6CisgICAgICAg
IChXVFI6OmR1bXBQYXRoKToKKyAgICAgICAgKFdUUjo6cmFuZ2VUb1N0cik6CisgICAgICAgIChX
VFI6OnN0eWxlRGVjVG9TdHIpOgorICAgICAgICAoV1RSOjpzZWN1cml0eU9yaWdpblRvU3RyKToK
KyAgICAgICAgKFdUUjo6ZnJhbWVUb1N0cik6CisgICAgICAgIChXVFI6OmR1bXBMb2FkRXZlbnQp
OgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmR1bXApOgorICAgICAgICAoV1RS
OjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKToKKyAgICAgICAg
KFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJh
bWUpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZpbmlzaERvY3VtZW50
TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsU2Vu
ZFJlcXVlc3RGb3JGcmFtZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlk
UmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2UpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRs
ZVBhZ2U6OmRpZEZpbmlzaExvYWRGb3JSZXNvdXJjZSk6CisgICAgICAgIChXVFI6OkluamVjdGVk
QnVuZGxlUGFnZTo6ZGlkRmFpbExvYWRGb3JSZXNvdXJjZSk6CisgICAgICAgIChXVFI6OkluamVj
dGVkQnVuZGxlUGFnZTo6c2hvdWxkQ2FjaGVSZXNwb25zZSk6CisgICAgICAgIChXVFI6OkluamVj
dGVkQnVuZGxlUGFnZTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAg
IChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAg
ICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxBZGRNZXNzYWdlVG9Db25zb2xlKToK
KyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsU2V0U3RhdHVzYmFyVGV4dCk6
CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFJ1bkphdmFTY3JpcHRBbGVy
dCk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFJ1bkphdmFTY3JpcHRD
b25maXJtKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUnVuSmF2YVNj
cmlwdFByb21wdCk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVhY2hB
cHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRs
ZVBhZ2U6OmRpZEV4Y2VlZERhdGFiYXNlUXVvdGEpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1
bmRsZVBhZ2U6OnNob3VsZEJlZ2luRWRpdGluZyk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVu
ZGxlUGFnZTo6c2hvdWxkRW5kRWRpdGluZyk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxl
UGFnZTo6c2hvdWxkSW5zZXJ0Tm9kZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFn
ZTo6c2hvdWxkSW5zZXJ0VGV4dCk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6
c2hvdWxkRGVsZXRlUmFuZ2UpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNo
b3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBh
Z2U6OnNob3VsZEFwcGx5U3R5bGUpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6
OmRpZEJlZ2luRWRpdGluZyk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlk
RW5kRWRpdGluZyk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2hhbmdl
KToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRDaGFuZ2VTZWxlY3Rpb24p
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnN0YXRpc3RpY3NEaWRSdW5UZWxlbWV0cnlD
YWxsYmFjayk6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OmNhbGxEaWRSZWNlaXZlQWxsU3Rv
cmFnZUFjY2Vzc0VudHJpZXNDYWxsYmFjayk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkZWNpZGVE
ZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpkb3dubG9hZERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdFRvVVJMKToKKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlkRmFpbCk6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0
aW9uOjpkdW1wUmVzdWx0cyk6CisKIDIwMTgtMDUtMDEgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2Fy
bHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW01lZGlhU3RyZWFtXSByZW1vdmUgV0sxIHN1cHBv
cnQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFk
VGFzay5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZFRhc2su
Y3BwCmluZGV4IDUyYzBiY2QuLmY2MWZhMzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkVGFzay5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRUYXNrLmNwcApAQCAtODgsNyArODgsOSBAQCBzdHJ1Y3Qg
TGlmZXRpbWVMb2dnZXIgewogICAgICAgICBidWlsZGVyLmFwcGVuZCgiLSIpOwogICAgICAgICBi
dWlsZGVyLmFwcGVuZChTdHJpbmc6Om51bWJlcihtb3ZlR2VuZXJhdGlvbikpOwogCi0gICAgICAg
IHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgICAgICBD
UkFTSCgpOwogICAgIH0KIAogICAgIGNvbnN0IGNoYXImIG5hbWUgeyAqIjxkZWZhdWx0PiIgfTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKaW5k
ZXggNmI4ZTA1Yy4uNzg2NzUwMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU3RyaW5nQnVpbGRlci5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEzLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzksMTYgKzM5LDE2IEBAIHN0YXRpYyB2b2lkIGV4cGVj
dEJ1aWxkZXJDb250ZW50KGNvbnN0IFN0cmluZyYgZXhwZWN0ZWQsIGNvbnN0IFN0cmluZ0J1aWxk
ZXImIGJ1CiAgICAgLy8gTm90IHVzaW5nIGJ1aWxkZXIudG9TdHJpbmcoKSBvciBidWlsZGVyLnRv
U3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIGJlY2F1c2UgdGhleSBhbGwKICAgICAvLyBjaGFuZ2Ug
aW50ZXJuYWwgc3RhdGUgb2YgYnVpbGRlci4KICAgICBpZiAoYnVpbGRlci5pczhCaXQoKSkKLSAg
ICAgICAgRVhQRUNUX0VRKGV4cGVjdGVkLCBTdHJpbmcoYnVpbGRlci5jaGFyYWN0ZXJzOCgpLCBi
dWlsZGVyLmxlbmd0aCgpKSk7CisgICAgICAgIEVYUEVDVF9FUShleHBlY3RlZCwgU3RyaW5nKGJ1
aWxkZXIuY2hhcmFjdGVyczgoKS52YWx1ZSgpLCBidWlsZGVyLmxlbmd0aCgpKSk7CiAgICAgZWxz
ZQotICAgICAgICBFWFBFQ1RfRVEoZXhwZWN0ZWQsIFN0cmluZyhidWlsZGVyLmNoYXJhY3RlcnMx
NigpLCBidWlsZGVyLmxlbmd0aCgpKSk7CisgICAgICAgIEVYUEVDVF9FUShleHBlY3RlZCwgU3Ry
aW5nKGJ1aWxkZXIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSwgYnVpbGRlci5sZW5ndGgoKSkpOwog
fQogCiB2b2lkIGV4cGVjdEVtcHR5KGNvbnN0IFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIpCiB7CiAg
ICAgRVhQRUNUX0VRKDBVLCBidWlsZGVyLmxlbmd0aCgpKTsKICAgICBFWFBFQ1RfVFJVRShidWls
ZGVyLmlzRW1wdHkoKSk7Ci0gICAgRVhQRUNUX0VRKDAsIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7
CisgICAgRVhQRUNUX0VRKDAsIGJ1aWxkZXIuY2hhcmFjdGVyczgoKS52YWx1ZSgpKTsKIH0KIAog
VEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRGVmYXVsdENvbnN0cnVjdG9yKQpAQCAtNzEsMjQgKzcx
LDI0IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFwcGVuZCkKICAgICBidWlsZGVyLmFwcGVu
ZCgnIycpOwogICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBi
dWlsZGVyKTsKIAotICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0
cmluZygpLgorICAgIGJ1aWxkZXIudG9TdHJpbmcoKS52YWx1ZSgpOyAvLyBUZXN0IGFmdGVyIHJl
aWZ5U3RyaW5nKCkuCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyMTsKICAgICBidWlsZGVyLmFw
cGVuZCgiIiwgMCk7CiAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZn
IyIsIGJ1aWxkZXIpOwotICAgIGJ1aWxkZXIxLmFwcGVuZChidWlsZGVyLmNoYXJhY3RlcnM4KCks
IGJ1aWxkZXIubGVuZ3RoKCkpOworICAgIGJ1aWxkZXIxLmFwcGVuZChidWlsZGVyLmNoYXJhY3Rl
cnM4KCkudmFsdWUoKSwgYnVpbGRlci5sZW5ndGgoKSk7CiAgICAgYnVpbGRlcjEuYXBwZW5kKCJY
WVoiKTsKLSAgICBidWlsZGVyLmFwcGVuZChidWlsZGVyMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVy
MS5sZW5ndGgoKSk7CisgICAgYnVpbGRlci5hcHBlbmQoYnVpbGRlcjEuY2hhcmFjdGVyczgoKS52
YWx1ZSgpLCBidWlsZGVyMS5sZW5ndGgoKSk7CiAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZWiIsIGJ1aWxkZXIpOwogCiAgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyMjsKICAgICBidWlsZGVyMi5yZXNlcnZlQ2FwYWNpdHkoMTAw
KTsKICAgICBidWlsZGVyMi5hcHBlbmQoInh5eiIpOwotICAgIGNvbnN0IExDaGFyKiBjaGFyYWN0
ZXJzID0gYnVpbGRlcjIuY2hhcmFjdGVyczgoKTsKKyAgICBjb25zdCBMQ2hhciogY2hhcmFjdGVy
cyA9IGJ1aWxkZXIyLmNoYXJhY3RlcnM4KCkudmFsdWUoKTsKICAgICBidWlsZGVyMi5hcHBlbmQo
IjAxMjM0NTY3ODkiKTsKLSAgICBBU1NFUlRfRVEoY2hhcmFjdGVycywgYnVpbGRlcjIuY2hhcmFj
dGVyczgoKSk7Ci0gICAgYnVpbGRlcjIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7IC8vIFRl
c3QgYWZ0ZXIgcmVpZnlTdHJpbmcgd2l0aCBidWZmZXIgcHJlc2VydmVkLgorICAgIEFTU0VSVF9F
UShjaGFyYWN0ZXJzLCBidWlsZGVyMi5jaGFyYWN0ZXJzOCgpLnZhbHVlKCkpOworICAgIGJ1aWxk
ZXIyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLnZhbHVlKCk7IC8vIFRlc3QgYWZ0ZXIgcmVp
ZnlTdHJpbmcgd2l0aCBidWZmZXIgcHJlc2VydmVkLgogICAgIGJ1aWxkZXIyLmFwcGVuZCgiYWJj
ZCIpOwotICAgIEFTU0VSVF9FUShjaGFyYWN0ZXJzLCBidWlsZGVyMi5jaGFyYWN0ZXJzOCgpKTsK
KyAgICBBU1NFUlRfRVEoY2hhcmFjdGVycywgYnVpbGRlcjIuY2hhcmFjdGVyczgoKS52YWx1ZSgp
KTsKIAogICAgIC8vIFRlc3QgYXBwZW5kaW5nIFVDaGFyMzIgY2hhcmFjdGVycyB0byBTdHJpbmdC
dWlsZGVyLgogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlckZvclVDaGFyMzJBcHBlbmQ7CkBAIC0x
MDUsOSArMTA1LDkgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmcpCiB7CiAgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7
Ci0gICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBTdHJpbmcgc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpLnZhbHVlKCk7CiAgICAgQVNTRVJUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OSIpLCBzdHJpbmcpOwotICAgIEFTU0VSVF9FUShzdHJpbmcuaW1wbCgpLCBidWls
ZGVyLnRvU3RyaW5nKCkuaW1wbCgpKTsKKyAgICBBU1NFUlRfRVEoc3RyaW5nLmltcGwoKSwgYnVp
bGRlci50b1N0cmluZygpLnZhbHVlKCkuaW1wbCgpKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBT
dHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9T
dHJpbmcoKS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoi
KTsKQEAgLTExNSwyMCArMTE1LDIwIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5n
KQogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3Qg
dGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpIGluIGNhc2UgdGhlIGNhcGFjaXR5IGlz
IG5vdCBjaGFuZ2VkLgogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDIwMCk7Ci0gICAgc3Ry
aW5nID0gYnVpbGRlci50b1N0cmluZygpOworICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KS52YWx1ZSgpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsKICAg
ICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoi
KSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9T
dHJpbmcoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRl
ci4KLSAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBTdHJpbmcg
c3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKS52YWx1ZSgpOwogICAgIEFTU0VSVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsK
ICAgICBzdHJpbmcxLmFwcGVuZCgiREVGIik7Ci0gICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxkZXIudG9TdHJpbmcoKSk7
CisgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6QUJDIiksIGJ1aWxkZXIudG9TdHJpbmcoKS52YWx1ZSgpKTsKICAgICBBU1NFUlRfRVEoU3Ry
aW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiKSwgc3RyaW5n
MSk7CiAKICAgICAvLyBSZXNpemluZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVj
dCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCi0gICAgc3RyaW5nMSA9IGJ1aWxk
ZXIudG9TdHJpbmcoKTsKKyAgICBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZygpLnZhbHVlKCk7
CiAgICAgYnVpbGRlci5yZXNpemUoMTApOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIjIyMiKTsKICAg
ICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpB
QkMiKSwgc3RyaW5nMSk7CkBAIC0xMzksMTEgKzEzOSwxMSBAQCBURVNUKFN0cmluZ0J1aWxkZXJU
ZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
OwogICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7CiAgICAgdW5zaWduZWQgY2FwYWNp
dHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7Ci0gICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CisgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkudmFsdWUoKTsKICAgICBBU1NFUlRfRVEoY2FwYWNpdHks
IGJ1aWxkZXIuY2FwYWNpdHkoKSk7CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIp
LCBzdHJpbmcpOwotICAgIEFTU0VSVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5n
UHJlc2VydmVDYXBhY2l0eSgpLmltcGwoKSk7Ci0gICAgQVNTRVJUX0VRKHN0cmluZy5jaGFyYWN0
ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOworICAgIEFTU0VSVF9FUShzdHJpbmcuaW1w
bCgpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLnZhbHVlKCkuaW1wbCgpKTsK
KyAgICBBU1NFUlRfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgo
KS52YWx1ZSgpKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBu
b3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5
KCkuCiAgICAgYnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7CkBA
IC0xNTIsMjggKzE1MiwyOCBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNl
cnZlQ2FwYWNpdHkpCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5v
dCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHko
KSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KICAgICBidWlsZGVyLnJlc2Vy
dmVDYXBhY2l0eSgyMDApOwogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwotICAg
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CisgICAgc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS52YWx1ZSgpOwogICAgIEFTU0VS
VF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKLSAgICBBU1NFUlRfRVEoc3RyaW5n
LmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CisgICAgQVNTRVJUX0VRKHN0
cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkudmFsdWUoKSk7CiAgICAg
QVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iiks
IHN0cmluZyk7CiAgICAgYnVpbGRlci5hcHBlbmQoIkFCQyIpOwogICAgIEFTU0VSVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOwogCiAg
ICAgLy8gQ2hhbmdpbmcgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2Fw
YWNpdHkoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRl
ci4KICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKLSAgICBTdHJpbmcgc3RyaW5n
MSA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CisgICAgU3RyaW5nIHN0cmlu
ZzEgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLnZhbHVlKCk7CiAgICAgQVNT
RVJUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwotICAgIEFTU0VSVF9FUShzdHJp
bmcxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CisgICAgQVNTRVJUX0VR
KHN0cmluZzEuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpLnZhbHVlKCkpOwog
ICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
ekFCQyIpLCBzdHJpbmcxKTsKICAgICBzdHJpbmcxLmFwcGVuZCgiREVGIik7Ci0gICAgQVNTRVJU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1
aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOworICAgIEFTU0VSVF9FUShTdHJpbmco
IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3Ry
aW5nUHJlc2VydmVDYXBhY2l0eSgpLnZhbHVlKCkpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcxKTsKIAog
ICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBv
cmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuCiAgICAgY2FwYWNp
dHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7Ci0gICAgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmdQ
cmVzZXJ2ZUNhcGFjaXR5KCk7CisgICAgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2
ZUNhcGFjaXR5KCkudmFsdWUoKTsKICAgICBBU1NFUlRfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2Fw
YWNpdHkoKSk7Ci0gICAgQVNTRVJUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNo
YXJhY3RlcnM4KCkpOworICAgIEFTU0VSVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRl
ci5jaGFyYWN0ZXJzOCgpLnZhbHVlKCkpOwogICAgIGJ1aWxkZXIucmVzaXplKDEwKTsKICAgICBi
dWlsZGVyLmFwcGVuZCgiIyMjIik7CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOwpAQCAtMTkxLDExICsxOTEs
MTEgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQXJyYXkpCiB7CiAgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7Ci0gICAgRVhQRUNU
X0VRKCcwJywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRlclswXSkpOwotICAgIEVYUEVDVF9FUSgn
OScsIHN0YXRpY19jYXN0PGNoYXI+KGJ1aWxkZXJbOV0pKTsKLSAgICBidWlsZGVyLnRvU3RyaW5n
KCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KLSAgICBFWFBFQ1RfRVEoJzAnLCBzdGF0
aWNfY2FzdDxjaGFyPihidWlsZGVyWzBdKSk7Ci0gICAgRVhQRUNUX0VRKCc5Jywgc3RhdGljX2Nh
c3Q8Y2hhcj4oYnVpbGRlcls5XSkpOworICAgIEVYUEVDVF9FUSgnMCcsIHN0YXRpY19jYXN0PGNo
YXI+KGJ1aWxkZXJbMF0udmFsdWUoKSkpOworICAgIEVYUEVDVF9FUSgnOScsIHN0YXRpY19jYXN0
PGNoYXI+KGJ1aWxkZXJbOV0udmFsdWUoKSkpOworICAgIGJ1aWxkZXIudG9TdHJpbmcoKS52YWx1
ZSgpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCisgICAgRVhQRUNUX0VRKCcwJywgc3Rh
dGljX2Nhc3Q8Y2hhcj4oYnVpbGRlclswXS52YWx1ZSgpKSk7CisgICAgRVhQRUNUX0VRKCc5Jywg
c3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRlcls5XS52YWx1ZSgpKSk7CiB9CiAKIFRFU1QoU3RyaW5n
QnVpbGRlclRlc3QsIFJlc2l6ZSkKQEAgLTIwOSw3ICsyMDksNyBAQCBURVNUKFN0cmluZ0J1aWxk
ZXJUZXN0LCBSZXNpemUpCiAgICAgRVhQRUNUX0VRKDhVLCBidWlsZGVyLmxlbmd0aCgpKTsKICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NjciLCBidWlsZGVyKTsKIAotICAgIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKKyAgICBidWlsZGVyLnRvU3RyaW5nKCkudmFsdWUoKTsKICAgICBidWls
ZGVyLnJlc2l6ZSg3KTsKICAgICBFWFBFQ1RfRVEoN1UsIGJ1aWxkZXIubGVuZ3RoKCkpOwogICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2IiwgYnVpbGRlcik7CkBAIC0yNDAsMTMgKzI0
MCwxMyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBFcXVhbCkKICAgICBBU1NFUlRfVFJVRShi
dWlsZGVyMiAhPSBidWlsZGVyMSk7CiAgICAgQVNTRVJUX1RSVUUoU3RyaW5nKCIxMjMiKSAhPSBi
dWlsZGVyMik7CiAgICAgQVNTRVJUX1RSVUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiKSk7Ci0g
ICAgYnVpbGRlcjIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgorICAg
IGJ1aWxkZXIyLnRvU3RyaW5nKCkudmFsdWUoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygp
LgogICAgIEFTU0VSVF9UUlVFKGJ1aWxkZXIxICE9IGJ1aWxkZXIyKTsKIAogICAgIGJ1aWxkZXIy
LnJlc2l6ZSgzKTsKICAgICBBU1NFUlRfVFJVRShidWlsZGVyMSA9PSBidWlsZGVyMik7CiAKLSAg
ICBidWlsZGVyMS50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCisgICAg
YnVpbGRlcjEudG9TdHJpbmcoKS52YWx1ZSgpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCku
CiAgICAgQVNTRVJUX1RSVUUoYnVpbGRlcjEgPT0gYnVpbGRlcjIpOwogfQogCkBAIC0yNjUsMTQg
KzI2NSwxNCBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb0F0b21pY1N0cmluZykKIHsKICAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjEyMyIpOwotICAg
IEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7Cisg
ICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKS52
YWx1ZSgpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjEyMyIpLCBhdG9taWNTdHJpbmcpOwogCiAg
ICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjU2KTsKICAgICBBU1NFUlRfVFJVRShidWlsZGVy
LmNhblNocmluaygpKTsKICAgICBmb3IgKGludCBpID0gYnVpbGRlci5sZW5ndGgoKTsgaSA8IDEy
ODsgaSsrKQogICAgICAgICBidWlsZGVyLmFwcGVuZCgneCcpOwotICAgIEF0b21pY1N0cmluZyBh
dG9taWNTdHJpbmcxID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpOworICAgIEF0b21pY1N0cmlu
ZyBhdG9taWNTdHJpbmcxID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpLnZhbHVlKCk7CiAgICAg
QVNTRVJUX0VRKDEyOHUsIGF0b21pY1N0cmluZzEubGVuZ3RoKCkpOwogICAgIEFTU0VSVF9FUSgn
eCcsIGF0b21pY1N0cmluZzFbMTI3XSk7CiAKQEAgLTI4Miw4ICsyODIsOCBAQCBURVNUKFN0cmlu
Z0J1aWxkZXJUZXN0LCBUb0F0b21pY1N0cmluZykKICAgICBBU1NFUlRfRVEoMTI4dSwgYXRvbWlj
U3RyaW5nMS5sZW5ndGgoKSk7CiAKICAgICBBU1NFUlRfRkFMU0UoYnVpbGRlci5jYW5TaHJpbmso
KSk7Ci0gICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBBdG9taWNT
dHJpbmcgYXRvbWljU3RyaW5nMiA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKTsKKyAgICBTdHJp
bmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpLnZhbHVlKCk7CisgICAgQXRvbWljU3RyaW5n
IGF0b21pY1N0cmluZzIgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCkudmFsdWUoKTsKICAgICAv
LyBUaGV5IHNob3VsZCBzaGFyZSB0aGUgc2FtZSBTdHJpbmdJbXBsLgogICAgIEFTU0VSVF9FUShh
dG9taWNTdHJpbmcyLmltcGwoKSwgc3RyaW5nLmltcGwoKSk7CiB9CkBAIC0yOTIsNDUgKzI5Miw0
NSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb0F0b21pY1N0cmluZ09uRW1wdHkpCiB7CiAg
ICAgeyAvLyBEZWZhdWx0IGNvbnN0cnVjdGVkLgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7Ci0gICAgICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRvQXRvbWlj
U3RyaW5nKCk7CisgICAgICAgIEF0b21pY1N0cmluZyBhdG9taWNTdHJpbmcgPSBidWlsZGVyLnRv
QXRvbWljU3RyaW5nKCkudmFsdWUoKTsKICAgICAgICAgQVNTRVJUX0VRKGVtcHR5QXRvbSgpLCBh
dG9taWNTdHJpbmcpOwogICAgIH0KICAgICB7IC8vIFdpdGggY2FwYWNpdHkuCiAgICAgICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoNjQp
OwotICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0
cmluZygpOworICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0
b21pY1N0cmluZygpLnZhbHVlKCk7CiAgICAgICAgIEFTU0VSVF9FUShlbXB0eUF0b20oKSwgYXRv
bWljU3RyaW5nKTsKICAgICB9CiAgICAgeyAvLyBBdG9taWNTdHJpbmcgY29uc3RydWN0ZWQgZnJv
bSBhIG51bGwgc3RyaW5nLgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKFN0cmluZygpKTsKLSAgICAgICAgQXRvbWljU3RyaW5nIGF0b21pY1N0
cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKTsKKyAgICAgICAgQXRvbWljU3RyaW5nIGF0
b21pY1N0cmluZyA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKS52YWx1ZSgpOwogICAgICAgICBB
U1NFUlRfRVEoZW1wdHlBdG9tKCksIGF0b21pY1N0cmluZyk7CiAgICAgfQogICAgIHsgLy8gQXRv
bWljU3RyaW5nIGNvbnN0cnVjdGVkIGZyb20gYW4gZW1wdHkgc3RyaW5nLgogICAgICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGVtcHR5U3RyaW5nKCkp
OwotICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0
cmluZygpOworICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0
b21pY1N0cmluZygpLnZhbHVlKCk7CiAgICAgICAgIEFTU0VSVF9FUShlbXB0eUF0b20oKSwgYXRv
bWljU3RyaW5nKTsKICAgICB9CiAgICAgeyAvLyBBdG9taWNTdHJpbmcgY29uc3RydWN0ZWQgZnJv
bSBhbiBlbXB0eSBTdHJpbmdCdWlsZGVyLgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7
CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgZW1wdHlCdWlsZGVyOwogICAgICAgICBidWlsZGVyLmFw
cGVuZChlbXB0eUJ1aWxkZXIpOwotICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0g
YnVpbGRlci50b0F0b21pY1N0cmluZygpOworICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3Ry
aW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpLnZhbHVlKCk7CiAgICAgICAgIEFTU0VSVF9F
UShlbXB0eUF0b20oKSwgYXRvbWljU3RyaW5nKTsKICAgICB9CiAgICAgeyAvLyBBdG9taWNTdHJp
bmcgY29uc3RydWN0ZWQgZnJvbSBhbiBlbXB0eSBjaGFyKiBzdHJpbmcuCiAgICAgICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiIsIDApOwotICAgICAg
ICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpOwor
ICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmlu
ZygpLnZhbHVlKCk7CiAgICAgICAgIEFTU0VSVF9FUShlbXB0eUF0b20oKSwgYXRvbWljU3RyaW5n
KTsKICAgICB9CiAgICAgeyAvLyBDbGVhcmVkIFN0cmluZ0J1aWxkZXIuCiAgICAgICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJXZWJLaXQi
KTsKICAgICAgICAgYnVpbGRlci5jbGVhcigpOwotICAgICAgICBBdG9taWNTdHJpbmcgYXRvbWlj
U3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpOworICAgICAgICBBdG9taWNTdHJpbmcg
YXRvbWljU3RyaW5nID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpLnZhbHVlKCk7CiAgICAgICAg
IEFTU0VSVF9FUShlbXB0eUF0b20oKSwgYXRvbWljU3RyaW5nKTsKICAgICB9CiB9CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCmluZGV4IGZjMjhiMDAuLjhi
MjgzMDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1Zp
ZXcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3Bw
CkBAIC0xNjQsNjUgKzE2NCw2NSBAQCBURVNUKFdURiwgU3RyaW5nVmlld0l0ZXJhdG9ycykKIAog
ICAgIFN0cmluZ0J1aWxkZXIgYjsKICAgICBidWlsZChiLCB7MHhEODAwLCAweERENTV9KTsgLy8g
U3Vycm9nYXRlcyBmb3IgdW5pY29kZSBjb2RlIHBvaW50IFUrMTAxNTUKLSAgICBFWFBFQ1RfVFJV
RShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVQb2lu
dHMoKSwgezB4MTAxNTV9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25z
KFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlVW5pdHMoKSwgezB4RDgwMCwgMHhERDU1fSkp
OwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9T
dHJpbmcoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpfSkp
OworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9T
dHJpbmcoKS52YWx1ZSgpKS5jb2RlUG9pbnRzKCksIHsweDEwMTU1fSkpOworICAgIEVYUEVDVF9U
UlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgp
KS5jb2RlVW5pdHMoKSwgezB4RDgwMCwgMHhERDU1fSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBh
cmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5ncmFwaGVt
ZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKX0pKTsKIAogICAg
IGJ1aWxkKGIsIHsweEQ4MDB9KTsgLy8gTGVhZGluZyBzdXJyb2dhdGUgb25seQotICAgIEVYUEVD
VF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29k
ZVBvaW50cygpLCB7MHhEODAwfSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0
aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRzKCksIHsweEQ4MDB9KSk7Ci0g
ICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmlu
ZygpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSl9KSk7Cisg
ICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmlu
ZygpLnZhbHVlKCkpLmNvZGVQb2ludHMoKSwgezB4RDgwMH0pKTsKKyAgICBFWFBFQ1RfVFJVRShj
b21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29k
ZVVuaXRzKCksIHsweEQ4MDB9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRp
b25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwg
e1N0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpfSkpOwogCiAgICAgYnVpbGQoYiwgezB4
RDgwMCwgMHhEODAxfSk7IC8vIFR3byBsZWFkaW5nIHN1cnJvZ2F0ZXMKLSAgICBFWFBFQ1RfVFJV
RShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVQb2lu
dHMoKSwgezB4RDgwMCwgMHhEODAxfSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRl
cmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRzKCksIHsweEQ4MDAsIDB4
RDgwMX0pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmll
dyhiLnRvU3RyaW5nKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXcoYi5jaGFyYWN0
ZXJzMTYoKSwgMSksIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSArIDEsIDEpfSkpOworICAg
IEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmco
KS52YWx1ZSgpKS5jb2RlUG9pbnRzKCksIHsweEQ4MDAsIDB4RDgwMX0pKTsKKyAgICBFWFBFQ1Rf
VFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUo
KSkuY29kZVVuaXRzKCksIHsweEQ4MDAsIDB4RDgwMX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21w
YXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuZ3JhcGhl
bWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCksIDEpLCBT
dHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSArIDEsIDEpfSkpOwogCiAgICAgYnVp
bGQoYiwgezB4REQ1NX0pOyAvLyBUcmFpbGluZyBzdXJyb2dhdGUgb25seQotICAgIEVYUEVDVF9U
UlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVBv
aW50cygpLCB7MHhERDU1fSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9u
cyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRzKCksIHsweERENTV9KSk7Ci0gICAg
RVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygp
KS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSl9KSk7CisgICAg
RVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygp
LnZhbHVlKCkpLmNvZGVQb2ludHMoKSwgezB4REQ1NX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21w
YXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVVu
aXRzKCksIHsweERENTV9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25z
KFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0
cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpfSkpOwogCiAgICAgYnVpbGQoYiwgezB4RDgw
MCwgJ2gnfSk7IC8vIExlYWRpbmcgc3Vycm9nYXRlIGZvbGxvd2VkIGJ5IG5vbi1zdXJyb2dhdGUK
LSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3Ry
aW5nKCkpLmNvZGVQb2ludHMoKSwgezB4RDgwMCwgJ2gnfSkpOwotICAgIEVYUEVDVF9UUlVFKGNv
bXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRzKCks
IHsweEQ4MDAsICdoJ30pKTsKLSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMo
U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmluZ1ZpZXco
Yi5jaGFyYWN0ZXJzMTYoKSwgMSksIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSArIDEsIDEp
fSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIu
dG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlUG9pbnRzKCksIHsweEQ4MDAsICdoJ30pKTsKKyAgICBF
WFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCku
dmFsdWUoKSkuY29kZVVuaXRzKCksIHsweEQ4MDAsICdoJ30pKTsKKyAgICBFWFBFQ1RfVFJVRShj
b21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuZ3Jh
cGhlbWVDbHVzdGVycygpLCB7U3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCksIDEp
LCBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSArIDEsIDEpfSkpOwogCiAgICAg
YnVpbGQoYiwgezB4MDMwNn0pOyAvLyAiQ09NQklOSU5HIEJSRVZFIgotICAgIEVYUEVDVF9UUlVF
KGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVBvaW50
cygpLCB7MHgwMzA2fSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhT
dHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuY29kZVVuaXRzKCksIHsweDAzMDZ9KSk7Ci0gICAgRVhQ
RUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5n
cmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSl9KSk7CisgICAgRVhQ
RUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZh
bHVlKCkpLmNvZGVQb2ludHMoKSwgezB4MDMwNn0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJl
TG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVVuaXRz
KCksIHsweDAzMDZ9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0
cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmdyYXBoZW1lQ2x1c3RlcnMoKSwge1N0cmlu
Z1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpfSkpOwogCiAgICAgYnVpbGQoYiwgezB4MDMwNiwg
MHhEODAwLCAweERENTUsICdoJywgJ2UnLCAnbCcsICdvJ30pOyAvLyBNaXggb2Ygc2luZ2xlIGNv
ZGUgdW5pdCBhbmQgbXVsdGkgY29kZSB1bml0IGNvZGUgcG9pbnRzCi0gICAgRVhQRUNUX1RSVUUo
Y29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlUG9pbnRz
KCksIHsweDAzMDYsIDB4MTAxNTUsICdoJywgJ2UnLCAnbCcsICdvJ30pKTsKLSAgICBFWFBFQ1Rf
VFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVV
bml0cygpLCB7MHgwMzA2LCAweEQ4MDAsIDB4REQ1NSwgJ2gnLCAnZScsICdsJywgJ28nfSkpOwot
ICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJp
bmcoKSkuZ3JhcGhlbWVDbHVzdGVycygpLCB7Ci0gICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0
ZXJzMTYoKSwgMSksCi0gICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSArIDEsIDIp
LAotICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkgKyAzLCAxKSwKLSAgICAgICAg
U3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpICsgNCwgMSksCi0gICAgICAgIFN0cmluZ1ZpZXco
Yi5jaGFyYWN0ZXJzMTYoKSArIDUsIDEpLAotICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVy
czE2KCkgKyA2LCAxKX0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMo
U3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuY29kZVBvaW50cygpLCB7MHgwMzA2LCAw
eDEwMTU1LCAnaCcsICdlJywgJ2wnLCAnbyd9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxv
b3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVVbml0cygp
LCB7MHgwMzA2LCAweEQ4MDAsIDB4REQ1NSwgJ2gnLCAnZScsICdsJywgJ28nfSkpOworICAgIEVY
UEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52
YWx1ZSgpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHsKKyAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJh
Y3RlcnMxNigpLnZhbHVlKCksIDEpLAorICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2
KCkudmFsdWUoKSArIDEsIDIpLAorICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCku
dmFsdWUoKSArIDMsIDEpLAorICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFs
dWUoKSArIDQsIDEpLAorICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUo
KSArIDUsIDEpLAorICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSAr
IDYsIDEpfSkpOwogCiAgICAgYnVpbGQoYiwgeydlJywgMHgwMzAxfSk7IC8vICJDT01CSU5JTkcg
QUNVVEUiCi0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXco
Yi50b1N0cmluZygpKS5jb2RlUG9pbnRzKCksIHsnZScsIDB4MDMwMX0pKTsKLSAgICBFWFBFQ1Rf
VFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVV
bml0cygpLCB7J2UnLCAweDAzMDF9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVy
YXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJp
bmdWaWV3KGIudG9TdHJpbmcoKSl9KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVy
YXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVQb2ludHMoKSwgeydl
JywgMHgwMzAxfSkpOworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJp
bmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlVW5pdHMoKSwgeydlJywgMHgwMzAxfSkp
OworICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9T
dHJpbmcoKS52YWx1ZSgpKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHtTdHJpbmdWaWV3KGIudG9TdHJp
bmcoKS52YWx1ZSgpKX0pKTsKIAogICAgIGJ1aWxkKGIsIHsnZScsIDB4MDMwMSwgMHgwMzA2LCAn
YSd9KTsgLy8gIkNPTUJJTklORyBBQ1VURSIgIkNPTUJJTklORyBCUkVWRSIKLSAgICBFWFBFQ1Rf
VFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVQ
b2ludHMoKSwgeydlJywgMHgwMzAxLCAweDAzMDYsICdhJ30pKTsKLSAgICBFWFBFQ1RfVFJVRShj
b21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkpLmNvZGVVbml0cygp
LCB7J2UnLCAweDAzMDEsIDB4MDMwNiwgJ2EnfSkpOwotICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVM
b29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKSkuZ3JhcGhlbWVDbHVzdGVycygp
LCB7Ci0gICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSwgMyksCi0gICAgICAgIFN0
cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKSArIDMsIDEpLAorICAgIEVYUEVDVF9UUlVFKGNvbXBh
cmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5jb2RlUG9p
bnRzKCksIHsnZScsIDB4MDMwMSwgMHgwMzA2LCAnYSd9KSk7CisgICAgRVhQRUNUX1RSVUUoY29t
cGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVV
bml0cygpLCB7J2UnLCAweDAzMDEsIDB4MDMwNiwgJ2EnfSkpOworICAgIEVYUEVDVF9UUlVFKGNv
bXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9TdHJpbmcoKS52YWx1ZSgpKS5ncmFw
aGVtZUNsdXN0ZXJzKCksIHsKKyAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZh
bHVlKCksIDMpLAorICAgICAgICBTdHJpbmdWaWV3KGIuY2hhcmFjdGVyczE2KCkudmFsdWUoKSAr
IDMsIDEpLAogICAgICAgICB9KSk7CiAKICAgICBidWlsZChiLCB7MHgxMTEyLCAweDExNmYsIDB4
MTFiNiwgMHgxMTA3LCAweDExNjEsIDB4MTFCOH0pOyAvLyBLb3JlYW4gY29tYmluaW5nIEphbW8K
LSAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3Ry
aW5nKCkpLmNvZGVQb2ludHMoKSwgezB4MTExMiwgMHgxMTZmLCAweDExYjYsIDB4MTEwNywgMHgx
MTYxLCAweDExQjh9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0
cmluZ1ZpZXcoYi50b1N0cmluZygpKS5jb2RlVW5pdHMoKSwgezB4MTExMiwgMHgxMTZmLCAweDEx
YjYsIDB4MTEwNywgMHgxMTYxLCAweDExQjh9KSk7Ci0gICAgRVhQRUNUX1RSVUUoY29tcGFyZUxv
b3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpKS5ncmFwaGVtZUNsdXN0ZXJzKCks
IHsKLSAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLCAzKSwKLSAgICAgICAgU3Ry
aW5nVmlldyhiLmNoYXJhY3RlcnMxNigpICsgMywgMyl9KSk7CisgICAgRVhQRUNUX1RSVUUoY29t
cGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50b1N0cmluZygpLnZhbHVlKCkpLmNvZGVQ
b2ludHMoKSwgezB4MTExMiwgMHgxMTZmLCAweDExYjYsIDB4MTEwNywgMHgxMTYxLCAweDExQjh9
KSk7CisgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXcoYi50
b1N0cmluZygpLnZhbHVlKCkpLmNvZGVVbml0cygpLCB7MHgxMTEyLCAweDExNmYsIDB4MTFiNiwg
MHgxMTA3LCAweDExNjEsIDB4MTFCOH0pKTsKKyAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0
ZXJhdGlvbnMoU3RyaW5nVmlldyhiLnRvU3RyaW5nKCkudmFsdWUoKSkuZ3JhcGhlbWVDbHVzdGVy
cygpLCB7CisgICAgICAgIFN0cmluZ1ZpZXcoYi5jaGFyYWN0ZXJzMTYoKS52YWx1ZSgpLCAzKSwK
KyAgICAgICAgU3RyaW5nVmlldyhiLmNoYXJhY3RlcnMxNigpLnZhbHVlKCkgKyAzLCAzKX0pKTsK
IH0KIAogc3RhdGljIFZlY3RvcjxTdHJpbmc+IHZlY3RvckZyb21TcGxpdFJlc3VsdChjb25zdCBT
dHJpbmdWaWV3OjpTcGxpdFJlc3VsdCYgc3Vic3RyaW5ncykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCmluZGV4IGRj
Y2U0NjguLjAzODM4NjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcApAQCAtMTIwOSwxNSArMTIwOSwxOCBAQCBU
RVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIFdpZGVORkEpCiAgICAgICAgIH0KICAgICB9CiAg
ICAgcnVsZUxpc3QuYXBwZW5kKCddJyk7Ci0gICAgCi0gICAgYXV0byBiYWNrZW5kID0gbWFrZUJh
Y2tlbmQocnVsZUxpc3QudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgIHRlc3RSZXF1
ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL0FBQSIp
LCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpDU1NEaXNwbGF5Tm9uZVNlbGVjdG9y
IH0pOwotICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6
Ly93ZWJraXQub3JnL1lBQSIpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpDU1NE
aXNwbGF5Tm9uZVNlbGVjdG9yIH0pOwotICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1
bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL1pBQSIpLCB7IH0sIDApOwotICAgIHRlc3RS
ZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL0xB
QS9BQUEiKSwgeyB9LCAwKTsKLSAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRS
ZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy9MQUEvTUFBIiksIHsgQ29udGVudEV4dGVuc2lvbnM6
OkFjdGlvblR5cGU6OkNTU0Rpc3BsYXlOb25lU2VsZWN0b3IgfSwgMCk7Ci0gICAgdGVzdFJlcXVl
c3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvIiksIHsg
fSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gcnVsZUxpc3QudG9TdHJpbmcoKSkgeworICAgICAg
ICBhdXRvIGJhY2tlbmQgPSBtYWtlQmFja2VuZChzdHJpbmctPnV0ZjgoKS5kYXRhKCkpOworCisg
ICAgICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93
ZWJraXQub3JnL0FBQSIpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpDU1NEaXNw
bGF5Tm9uZVNlbGVjdG9yIH0pOworICAgICAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9j
dW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy9ZQUEiKSwgeyBDb250ZW50RXh0ZW5zaW9u
czo6QWN0aW9uVHlwZTo6Q1NTRGlzcGxheU5vbmVTZWxlY3RvciB9KTsKKyAgICAgICAgdGVzdFJl
cXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvWkFB
IiksIHsgfSwgMCk7CisgICAgICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJl
cXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL0xBQS9BQUEiKSwgeyB9LCAwKTsKKyAgICAgICAgdGVz
dFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcv
TEFBL01BQSIpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpDU1NEaXNwbGF5Tm9u
ZVNlbGVjdG9yIH0sIDApOworICAgICAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1l
bnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy8iKSwgeyB9KTsKKyAgICB9IGVsc2UKKyAgICAg
ICAgQ1JBU0goKTsKIH0KICAgICAKICNpZmRlZiBOREVCVUcKQEAgLTEyNDcsNyArMTI1MCwxMCBA
QCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIExhcmdlSnVtcHMpCiAgICAgICAgICAgICAg
ICAgICAgIHBhdHRlcm4uYXBwZW5kKGMyKTsKICAgICAgICAgICAgICAgICAgICAgcGF0dGVybi5h
cHBlbmQoYzMpOwogICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZChjNCk7Ci0gICAg
ICAgICAgICAgICAgICAgIEVYUEVDVF9FUShDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFy
c2VyOjpQYXJzZVN0YXR1czo6T2ssIHBhcnNlci5hZGRQYXR0ZXJuKHBhdHRlcm4udG9TdHJpbmco
KSwgdHJ1ZSwgcGF0dGVybklkKyspKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gc3Ry
aW5nID0gcGF0dGVybi50b1N0cmluZygpKQorICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNU
X0VRKENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPaywg
cGFyc2VyLmFkZFBhdHRlcm4oKnN0cmluZywgdHJ1ZSwgcGF0dGVybklkKyspKTsKKyAgICAgICAg
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgQ1JBU0goKTsKICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTEzMDgsMTcgKzEzMTQs
MjAgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBMYXJnZUp1bXBzKQogICAgICAgICAg
ICAgICAgICAgICAgICAgcGF0dGVybi5hcHBlbmQoJ3gnKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGF1
dG8gbWF0Y2hlcyA9IGludGVycHJldGVyLmludGVycHJldChwYXR0ZXJuLnRvU3RyaW5nKCkudXRm
OCgpLCAwKTsKLSAgICAgICAgICAgICAgICAgICAgc3dpdGNoICgoYzEgKyBjMiArIGMzICsgYzQp
ICUgNCkgewotICAgICAgICAgICAgICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBjb21wYXJlQ29udGVudHMobWF0Y2hlcywgeyB9KTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgICAgICAg
ICAgIGNhc2UgMjoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAzOgotICAgICAgICAgICAgICAg
ICAgICAgICAgY29tcGFyZUNvbnRlbnRzKG1hdGNoZXMsIHtwYXR0ZXJuSWR9KTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHBhdHRlcm4udG9TdHJpbmcoKSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgYXV0byBtYXRjaGVzID0gaW50ZXJwcmV0ZXIuaW50ZXJwcmV0KHN0
cmluZy0+dXRmOCgpLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoKGMxICsg
YzIgKyBjMyArIGM0KSAlIDQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wYXJlQ29udGVudHMobWF0Y2hlcywgeyB9KTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wYXJl
Q29udGVudHMobWF0Y2hlcywge3BhdHRlcm5JZH0pOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICAg
ICAgICAgIHBhdHRlcm5JZCsrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAg
LTEzNDgsMTMgKzEzNTcsMTkgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBEZWVwTkZB
KQogICAgIFN0cmluZ0J1aWxkZXIgbG90c09mQXM7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHNpemU7ICsraSkKICAgICAgICAgbG90c09mQXMuYXBwZW5kKCdBJyk7Ci0gICAgRVhQRUNU
X0VRKENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPaywg
cGFyc2VyLmFkZFBhdHRlcm4obG90c09mQXMudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBmYWxz
ZSwgMCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IGxvdHNPZkFzLnRvU3RyaW5nKCkpCisgICAg
ICAgIEVYUEVDVF9FUShDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0
YXR1czo6T2ssIHBhcnNlci5hZGRQYXR0ZXJuKHN0cmluZy0+dXRmOCgpLmRhdGEoKSwgZmFsc2Us
IDApKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAgICAgCiAgICAgLy8gRklYTUU6IFlh
cnIgb3VnaHQgdG8gYmUgYWJsZSB0byBoYW5kbGUgMk1CIHJlZ3VsYXIgZXhwcmVzc2lvbnMuCiAg
ICAgU3RyaW5nQnVpbGRlciB0b29NYW55QXM7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IHNpemUgKiAyMDsgKytpKQogICAgICAgICB0b29NYW55QXMuYXBwZW5kKCdBJyk7Ci0gICAgRVhQ
RUNUX0VRKENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpZ
YXJyRXJyb3IsIHBhcnNlci5hZGRQYXR0ZXJuKHRvb01hbnlBcy50b1N0cmluZygpLnV0ZjgoKS5k
YXRhKCksIGZhbHNlLCAwKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gdG9vTWFueUFzLnRvU3Ry
aW5nKCkpCisgICAgICAgIEVYUEVDVF9FUShDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFy
c2VyOjpQYXJzZVN0YXR1czo6WWFyckVycm9yLCBwYXJzZXIuYWRkUGF0dGVybihzdHJpbmctPnV0
ZjgoKS5kYXRhKCksIGZhbHNlLCAwKSk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogICAg
IAogICAgIFN0cmluZ0J1aWxkZXIgbmVzdGVkR3JvdXBzOwogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBzaXplOyArK2kpCkBAIC0xNDkwLDE3ICsxNTA1LDIyIEBAIFRFU1RfRihDb250ZW50
RXh0ZW5zaW9uVGVzdCwgSW52YWxpZEpTT04pCiAgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wi
YWN0aW9uXCI6e1widHlwZVwiOlwibm90aWZ5XCIsXCJub3RpZmljYXRpb25cIjpbXX0sXCJ0cmln
Z2VyXCI6e1widXJsLWZpbHRlclwiOlwiLipcIn19XSIsIENvbnRlbnRFeHRlbnNpb25zOjpDb250
ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkTm90aWZpY2F0aW9uKTsKICAgICBjaGVja0Nv
bXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJub3RpZnlcIixcIm5vdGlmaWNh
dGlvblwiOlwiaGVyZSdzIG15IG5vdGlmaWNhdGlvblwifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmls
dGVyXCI6XCIuKlwifX1dIiwgeyB9KTsKICAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rp
b25cIjp7XCJ0eXBlXCI6XCJub3RpZnlcIixcIm5vdGlmaWNhdGlvblwiOlwiXFx1MTIzNFwifSxc
InRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCIuKlwifX1dIiwgeyB9KTsKLSAgICAKLSAgICBT
dHJpbmdCdWlsZGVyIHJ1bGVzOwotICAgIHJ1bGVzLmFwcGVuZCgiWyIpOwotICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCA0OTk5OTsgKytpKQotICAgICAgICBydWxlcy5hcHBlbmQoIntcImFj
dGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpc
ImFcIn19LCIpOwotICAgIFN0cmluZyBydWxlczUwMDAwID0gcnVsZXMudG9TdHJpbmcoKTsKLSAg
ICBTdHJpbmcgcnVsZXM1MDAwMSA9IHJ1bGVzLnRvU3RyaW5nKCk7Ci0gICAgcnVsZXM1MDAwMC5h
cHBlbmQoIntcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVy
bC1maWx0ZXJcIjpcImFcIn19XSIpOwotICAgIHJ1bGVzNTAwMDEuYXBwZW5kKCJ7XCJhY3Rpb25c
Ijp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJhXCJ9
fSx7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmls
dGVyXCI6XCJhXCJ9fV0iKTsKLSAgICBjaGVja0NvbXBpbGVyRXJyb3IocnVsZXM1MDAwMC51dGY4
KCkuZGF0YSgpLCB7IH0pOwotICAgIGNoZWNrQ29tcGlsZXJFcnJvcihydWxlczUwMDAxLnV0Zjgo
KS5kYXRhKCksIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05U
b29NYW55UnVsZXMpOworCisgICAgeworICAgICAgICBTdHJpbmdCdWlsZGVyIHJ1bGVzOworICAg
ICAgICBydWxlcy5hcHBlbmQoIlsiKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IDQ5OTk5OyArK2kpCisgICAgICAgICAgICBydWxlcy5hcHBlbmQoIntcImFjdGlvblwiOntcInR5
cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcImFcIn19LCIpOwor
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBydWxlcy50b1N0cmluZygpKSB7CisgICAgICAgICAg
ICBTdHJpbmcgcnVsZXM1MDAwMCA9ICpzdHJpbmc7CisgICAgICAgICAgICBTdHJpbmcgcnVsZXM1
MDAwMSA9ICpzdHJpbmc7CisgICAgICAgICAgICBydWxlczUwMDAwLmFwcGVuZCgie1wiYWN0aW9u
XCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiYVwi
fX1dIik7CisgICAgICAgICAgICBydWxlczUwMDAxLmFwcGVuZCgie1wiYWN0aW9uXCI6e1widHlw
ZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiYVwifX0se1wiYWN0
aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwi
YVwifX1dIik7CisgICAgICAgICAgICBjaGVja0NvbXBpbGVyRXJyb3IocnVsZXM1MDAwMC51dGY4
KCkuZGF0YSgpLCB7IH0pOworICAgICAgICAgICAgY2hlY2tDb21waWxlckVycm9yKHJ1bGVzNTAw
MDEudXRmOCgpLmRhdGEoKSwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJv
cjo6SlNPTlRvb01hbnlSdWxlcyk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgQ1JBU0go
KTsKKyAgICB9CiAgICAgCiAgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1wi
dHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9y
Z1wiLFwiaWYtZG9tYWluXCI6e319fV0iLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVu
c2lvbkVycm9yOjpKU09OSW52YWxpZENvbmRpdGlvbkxpc3QpOwogICAgIGNoZWNrQ29tcGlsZXJF
cnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVy
bC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLWRvbWFpblwiOls1XX19XSIsIENvbnRlbnRF
eHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQ29uZGl0aW9uTGlz
dCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1v
bml0b3IuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9y
LmNwcAppbmRleCA1ZjFkYzhiLi5lOTRlZmM0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKQEAgLTEwNyw3ICsxMDcsOSBAQCBzdGF0
aWMgU3RyaW5nIGNyZWF0ZUNvbW1hbmQoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcm
IHBheWxvYWQpCiAgICAgY29tbWFuZC5hcHBlbmRMaXRlcmFsKCJcIiA+ICIpOwogICAgIGNvbW1h
bmQuYXBwZW5kKHBhdGgpOwogCi0gICAgcmV0dXJuIGNvbW1hbmQudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBjb21tYW5kLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3Ry
aW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgcmVhZENvbnRlbnRzT2ZGaWxl
KGNvbnN0IFN0cmluZyYgcGF0aCkKQEAgLTI2NywxMCArMjY5LDEzIEBAIFRFU1RfRihGaWxlTW9u
aXRvclRlc3QsIERldGVjdERlbGV0aW9uKQogICAgICAgICBjb21tYW5kLmFwcGVuZExpdGVyYWwo
InJtIC1mICIpOwogICAgICAgICBjb21tYW5kLmFwcGVuZCh0ZW1wRmlsZVBhdGgoKSk7CiAKLSAg
ICAgICAgYXV0byByYyA9IHN5c3RlbShjb21tYW5kLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7
Ci0gICAgICAgIEFTU0VSVF9ORShyYywgLTEpOwotICAgICAgICBpZiAocmMgPT0gLTEpCi0gICAg
ICAgICAgICBkaWRGaW5pc2ggPSB0cnVlOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBjb21t
YW5kLnRvU3RyaW5nKCkpIHsKKyAgICAgICAgICAgIGF1dG8gcmMgPSBzeXN0ZW0oc3RyaW5nLT51
dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShyYywgLTEpOworICAgICAgICAg
ICAgaWYgKHJjID09IC0xKQorICAgICAgICAgICAgICAgIGRpZEZpbmlzaCA9IHRydWU7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9KTsKIAogICAgIFV0aWw6OnJ1
bigmZGlkRmluaXNoKTsKQEAgLTMyNCwxMCArMzI5LDEzIEBAIFRFU1RfRihGaWxlTW9uaXRvclRl
c3QsIERldGVjdENoYW5nZUFuZFRoZW5EZWxldGUpCiAgICAgICAgIGNvbW1hbmQuYXBwZW5kTGl0
ZXJhbCgicm0gLWYgIik7CiAgICAgICAgIGNvbW1hbmQuYXBwZW5kKHRlbXBGaWxlUGF0aCgpKTsK
IAotICAgICAgICBhdXRvIHJjID0gc3lzdGVtKGNvbW1hbmQudG9TdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsKLSAgICAgICAgQVNTRVJUX05FKHJjLCAtMSk7Ci0gICAgICAgIGlmIChyYyA9PSAtMSkK
LSAgICAgICAgICAgIGRpZEZpbmlzaCA9IHRydWU7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IGNvbW1hbmQudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgYXV0byByYyA9IHN5c3RlbShzdHJp
bmctPnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgQVNTRVJUX05FKHJjLCAtMSk7CisgICAg
ICAgICAgICBpZiAocmMgPT0gLTEpCisgICAgICAgICAgICAgICAgZGlkRmluaXNoID0gdHJ1ZTsK
KyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0pOwogCiAgICAgVXRp
bDo6cnVuKCZkaWRGaW5pc2gpOwpAQCAtMzYzLDEwICszNzEsMTMgQEAgVEVTVF9GKEZpbGVNb25p
dG9yVGVzdCwgRGV0ZWN0RGVsZXRlQnV0Tm90U3Vic2VxdWVudENoYW5nZSkKICAgICAgICAgY29t
bWFuZC5hcHBlbmRMaXRlcmFsKCJybSAtZiAiKTsKICAgICAgICAgY29tbWFuZC5hcHBlbmQodGVt
cEZpbGVQYXRoKCkpOwogCi0gICAgICAgIGF1dG8gcmMgPSBzeXN0ZW0oY29tbWFuZC50b1N0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBBU1NFUlRfTkUocmMsIC0xKTsKLSAgICAgICAg
aWYgKHJjID09IC0xKQotICAgICAgICAgICAgZGlkRmluaXNoID0gdHJ1ZTsKKyAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gY29tbWFuZC50b1N0cmluZygpKSB7CisgICAgICAgICAgICBhdXRvIHJj
ID0gc3lzdGVtKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBBU1NFUlRfTkUo
cmMsIC0xKTsKKyAgICAgICAgICAgIGlmIChyYyA9PSAtMSkKKyAgICAgICAgICAgICAgICBkaWRG
aW5pc2ggPSB0cnVlOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAg
fSk7CiAKICAgICBVdGlsOjpydW4oJmRpZEZpbmlzaCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTG9nZ2luZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvTG9nZ2luZy5jcHAKaW5kZXggMWU0YzM0Mi4uN2RlZGFkMiAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0xvZ2dpbmcuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Mb2dnaW5nLmNwcApAQCAtOTUsNyAr
OTUsOSBAQCBwdWJsaWM6CiAgICAgICAgIHdoaWxlICgobGluZSA9IGZnZXRzKGJ1ZmZlciwgc2l6
ZW9mKGJ1ZmZlciksIG1fc3RkZXJyKSkpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGxpbmUp
OwogCi0gICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKGF1dG8g
c3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gKnN0cmluZzsK
KyAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fbG9nZ2VyLmdldCgpOyB9CkBAIC0zNDAsMTUgKzM0MiwxOCBA
QCBURVNUX0YoTG9nZ2luZ1Rlc3QsIExvZ2dlckhlbHBlcikKICAgICBidWlsZGVyLmFwcGVuZExp
dGVyYWwoIkxvZ2dpbmdUZXN0OjpUZXN0Qm9keSgiKTsKICAgICBhcHBlbmRVbnNpZ25lZDY0QXNI
ZXgocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGxvZ0lkZW50aWZpZXIoKSksIGJ1aWxkZXIp
OwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSIpOwotICAgIFN0cmluZyBzaWduYXR1cmUg
PSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpKSB7CisgICAgICAgIFN0cmluZyBzaWduYXR1cmUgPSAqc3RyaW5nOwogCi0gICAgQUxX
QVlTX0xPRyhMT0dJREVOVElGSUVSKTsKLSAgICBFWFBFQ1RfVFJVRSh0aGlzLT5vdXRwdXQoKS5j
b250YWlucyhzaWduYXR1cmUsIGZhbHNlKSk7CisgICAgICAgIEFMV0FZU19MT0coTE9HSURFTlRJ
RklFUik7CisgICAgICAgIEVYUEVDVF9UUlVFKHRoaXMtPm91dHB1dCgpLmNvbnRhaW5zKHNpZ25h
dHVyZSwgZmFsc2UpKTsKIAotICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgIldlbGNvbWUg
YmFjayIsICIgbXkgZnJpZW5kcyIsICIgdG8gdGhlIHNob3ciLCAiIHRoYXQgbmV2ZXIgZW5kcyIp
OwotICAgIFN0cmluZyByZXN1bHQgPSB0aGlzLT5vdXRwdXQoKTsKLSAgICBFWFBFQ1RfVFJVRShy
ZXN1bHQuY29udGFpbnMoc2lnbmF0dXJlLCBmYWxzZSkpOwotICAgIEVYUEVDVF9UUlVFKHJlc3Vs
dC5jb250YWlucygidG8gdGhlIHNob3cgdGhhdCBuZXZlciIsIGZhbHNlKSk7CisgICAgICAgIEFM
V0FZU19MT0coTE9HSURFTlRJRklFUiwgIldlbGNvbWUgYmFjayIsICIgbXkgZnJpZW5kcyIsICIg
dG8gdGhlIHNob3ciLCAiIHRoYXQgbmV2ZXIgZW5kcyIpOworICAgICAgICBTdHJpbmcgcmVzdWx0
ID0gdGhpcy0+b3V0cHV0KCk7CisgICAgICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5jb250YWlucyhz
aWduYXR1cmUsIGZhbHNlKSk7CisgICAgICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5jb250YWlucygi
dG8gdGhlIHNob3cgdGhhdCBuZXZlciIsIGZhbHNlKSk7CisgICAgfSBlbHNlCisgICAgICAgIENS
QVNIKCk7CiAKICAgICBXVEZTZXRMb2dDaGFubmVsTGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RGTG9n
TGV2ZWxXYXJuaW5nKTsKIApAQCAtMzcxLDEwICszNzYsMTEgQEAgcHVibGljOgogCiAgICAgU3Ry
aW5nIGxvZygpCiAgICAgewotICAgICAgICBTdHJpbmcgbG9nID0gbV9sb2dCdWZmZXIudG9TdHJp
bmcoKTsKLSAgICAgICAgbV9sb2dCdWZmZXIuY2xlYXIoKTsKLQotICAgICAgICByZXR1cm4gbG9n
OworICAgICAgICBpZiAoYXV0byBsb2cgPSBtX2xvZ0J1ZmZlci50b1N0cmluZygpKSB7CisgICAg
ICAgICAgICBtX2xvZ0J1ZmZlci5jbGVhcigpOworICAgICAgICAgICAgcmV0dXJuIGxvZzsKKyAg
ICAgICAgfQorICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIFdURkxvZ0NoYW5uZWwgY2hh
bm5lbCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdENoYW5uZWw7IH0KZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9UZXh0Q29kZWMuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL1RleHRDb2RlYy5jcHAKaW5kZXggZmQwNTA1MC4uOWU1NTUz
MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1RleHRDb2Rl
Yy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1RleHRDb2RlYy5j
cHAKQEAgLTk4LDcgKzk4LDkgQEAgc3RhdGljIGNvbnN0IGNoYXIqIHRlc3REZWNvZGUoY29uc3Qg
Y2hhciogZW5jb2RpbmdOYW1lLCBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8Y28KICAgICAgICAgaWYg
KHNhd0Vycm9yKQogICAgICAgICAgICAgcmVzdWx0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgRVJS
T1IiKTsKICAgICB9Ci0gICAgcmV0dXJuIGVzY2FwZU5vbkFTQ0lJUHJpbnRhYmxlQ2hhcmFjdGVy
cyhyZXN1bHRCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHJlc3Vs
dEJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIGVzY2FwZU5vbkFTQ0lJUHJpbnRh
YmxlQ2hhcmFjdGVycygqc3RyaW5nKTsKKyAgICBDUkFTSCgpOwogfQogCiBURVNUKFRleHRDb2Rl
YywgVVRGOCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xp
Yi9UZXN0QXV0b21hdGlvblNlc3Npb24uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL1Rlc3RBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKaW5kZXggMjZjMzc0ZS4uMTliZGJk
NiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RB
dXRvbWF0aW9uU2Vzc2lvbi5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRHTGliL1Rlc3RBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKQEAgLTE2Miw5ICsxNjIsMTIgQEAgcHVi
bGljOgogICAgICAgICAgICAgbWVzc2FnZUJ1aWxkZXIuYXBwZW5kKHBhcmFtZXRlcnMpOwogICAg
ICAgICB9CiAgICAgICAgIG1lc3NhZ2VCdWlsZGVyLmFwcGVuZCgnfScpOwotICAgICAgICBnX2Ri
dXNfY29ubmVjdGlvbl9jYWxsKG1fY29ubmVjdGlvbi5nZXQoKSwgbnVsbHB0ciwgIi9vcmcvd2Vi
a2l0L0luc3BlY3RvciIsICJvcmcud2Via2l0Lkluc3BlY3RvciIsCi0gICAgICAgICAgICAiU2Vu
ZE1lc3NhZ2VUb0JhY2tlbmQiLCBnX3ZhcmlhbnRfbmV3KCIodHRzKSIsIG1fY29ubmVjdGlvbklE
LCBtX3RhcmdldC5pZCwgbWVzc2FnZUJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKSwK
LSAgICAgICAgICAgIG51bGxwdHIsIEdfREJVU19DQUxMX0ZMQUdTX05PX0FVVE9fU1RBUlQsIC0x
LCBudWxscHRyLCBudWxscHRyLCBudWxscHRyKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0g
bWVzc2FnZUJ1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICAgICAgZ19kYnVzX2Nvbm5lY3Rp
b25fY2FsbChtX2Nvbm5lY3Rpb24uZ2V0KCksIG51bGxwdHIsICIvb3JnL3dlYmtpdC9JbnNwZWN0
b3IiLCAib3JnLndlYmtpdC5JbnNwZWN0b3IiLAorICAgICAgICAgICAgICAgICJTZW5kTWVzc2Fn
ZVRvQmFja2VuZCIsIGdfdmFyaWFudF9uZXcoIih0dHMpIiwgbV9jb25uZWN0aW9uSUQsIG1fdGFy
Z2V0LmlkLCBzdHJpbmctPnV0ZjgoKS5kYXRhKCkpLAorICAgICAgICAgICAgICAgIG51bGxwdHIs
IEdfREJVU19DQUxMX0ZMQUdTX05PX0FVVE9fU1RBUlQsIC0xLCBudWxscHRyLCBudWxscHRyLCBu
dWxscHRyKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAog
ICAgIHN0YXRpYyBXZWJLaXRXZWJWaWV3KiBjcmVhdGVXZWJWaWV3Q2FsbGJhY2soV2ViS2l0QXV0
b21hdGlvblNlc3Npb24qIHNlc3Npb24sIEF1dG9tYXRpb25UZXN0KiB0ZXN0KQpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250
ZXh0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0
V2ViQ29udGV4dC5jcHAKaW5kZXggNjlmM2I4YS4uMjM1NWZiYSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNv
bnRleHQuY3BwCkBAIC0yODYsNyArMjg2LDkgQEAgU3RyaW5nIGdlbmVyYXRlSFRNTENvbnRlbnQo
dW5zaWduZWQgY29udGVudExlbmd0aCkKICAgICB9CiAgICAgYnVpbGRlci5hcHBlbmQoIjwvYm9k
eT48L2h0bWw+Iik7CiAKLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChh
dXRvIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuICpzdHJpbmc7
CisgICAgQ1JBU0goKTsKIH0KIAogc3RhdGljIHZvaWQgdGVzdFdlYkNvbnRleHRVUklTY2hlbWUo
VVJJU2NoZW1lVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvV1RGU3RyaW5nVXRpbGl0aWVzLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL1dU
RlN0cmluZ1V0aWxpdGllcy5oCmluZGV4IGVjYmE5YzQuLmY1ZDQxZWQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvV1RGU3RyaW5nVXRpbGl0aWVzLmgKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9XVEZTdHJpbmdVdGlsaXRpZXMuaApAQCAtNTEsNSArNTEsNyBAQCBzdGF0aWMgU3Ry
aW5nIHV0ZjE2U3RyaW5nKGNvbnN0IGNoYXIxNl90ICgmdXJsKVtsZW5ndGhdKQogICAgIGJ1aWxk
ZXIucmVzZXJ2ZUNhcGFjaXR5KGxlbmd0aCAtIDEpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgbGVuZ3RoIC0gMTsgKytpKQogICAgICAgICBidWlsZGVyLmFwcGVuZChzdGF0aWNfY2FzdDxV
Q2hhcj4odXJsW2ldKSk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAo
YXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5n
OworICAgIENSQVNIKCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKaW5kZXggYmIzOTQ2Yy4u
MmZkOTY0YSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcApAQCAtMTA2LDcgKzEwNiw5IEBAIHN0
YXRpYyBXVEY6OlN0cmluZyBkdW1wUGF0aChKU0dsb2JhbENvbnRleHRSZWYgY29udGV4dCwgSlNP
YmplY3RSZWYgbm9kZVZhbHVlKQogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChkdW1wUGF0
aChjb250ZXh0LCAoSlNPYmplY3RSZWYpcGFyZW50Tm9kZSkpOwogICAgIH0KIAotICAgIHJldHVy
biBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5n
QnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgp
OwogfQogCiBzdGF0aWMgV1RGOjpTdHJpbmcgZHVtcFBhdGgoV0tCdW5kbGVQYWdlUmVmIHBhZ2Us
IFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgd29ybGQsIFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBub2Rl
KQpAQCAtMTU2LDcgKzE1OCw5IEBAIHN0YXRpYyBXVEY6OlN0cmluZyByYW5nZVRvU3RyKFdLQnVu
ZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIHdvcmxkCiAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmROdW1iZXIoZW5kT2Zmc2V0KTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
ZExpdGVyYWwoIiBvZiAiKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChkdW1wUGF0aChjb250
ZXh0LCBlbmROb2RlT2JqZWN0KSk7Ci0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gTmF2aWdhdGlvblR5cGVUb1N0cmluZyhXS0ZyYW1lTmF2aWdhdGlvblR5
cGUgdHlwZSkKQEAgLTE4NSw3ICsxODksOSBAQCBzdGF0aWMgV1RGOjpTdHJpbmcgc3R5bGVEZWNU
b1N0cihXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25SZWYgc3R5bGUpCiAgICAgLy8gdGhlIGVk
aXRpbmcgY2xpZW50IGlmIHRoZSBzdHlsaW5nIG9wZXJhdGlvbiBzb3VyY2UgaXMgQ29tbWFuZEZy
b21ET00gb3IgQ29tbWFuZEZyb21ET01XaXRoVXNlckludGVyZmFjZS4KICAgICBTdHJpbmdCdWls
ZGVyIHN0cmluZ0J1aWxkZXI7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8RE9N
Q1NTU3R5bGVEZWNsYXJhdGlvbiBBRERSRVNTPiIpOwotICAgIHJldHVybiBzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gKnN0cmluZzsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMg
V1RGOjpTdHJpbmcgc2VjdXJpdHlPcmlnaW5Ub1N0cihXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdp
bikKQEAgLTE5OSw3ICsyMDUsOSBAQCBzdGF0aWMgV1RGOjpTdHJpbmcgc2VjdXJpdHlPcmlnaW5U
b1N0cihXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbikKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
ZE51bWJlcihXS1NlY3VyaXR5T3JpZ2luR2V0UG9ydChvcmlnaW4pKTsKICAgICBzdHJpbmdCdWls
ZGVyLmFwcGVuZCgnfScpOwogCi0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBXVEY6OlN0cmluZyBm
cmFtZVRvU3RyKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUpCkBAIC0yMjMsNyArMjMxLDkgQEAgc3Rh
dGljIFdURjo6U3RyaW5nIGZyYW1lVG9TdHIoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSkKICAgICAg
ICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiZnJhbWUgKGFub255bW91cykiKTsK
ICAgICB9CiAgICAgCi0gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVy
biAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0xvY2Fs
RmlsZVNjaGVtZShXS1N0cmluZ1JlZiBzY2hlbWUpCkBAIC00NzYsNyArNDg2LDEwIEBAIHN0YXRp
YyB2b2lkIGR1bXBMb2FkRXZlbnQoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3QgY2hhciog
ZXZlbnROYW1lKQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIC0gIik7CiAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmQoZXZlbnROYW1lKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
ZCgnXG4nKTsKLSAgICBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkub3V0cHV0VGV4dChzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKSkKKyAgICAgICAgSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLm91dHB1
dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMg
aW5saW5lIHZvaWQgZHVtcFJlcXVlc3REZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChX
S1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgU3RyaW5nQnVpbGRlciYgc3RyaW5nQnVpbGRlcikKQEAg
LTk0MCw3ICs5NTMsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmR1bXAoKQogICAgICAg
ICAgICAgaW5qZWN0ZWRCdW5kbGUuc2V0UmVwYWludFJlY3RzKGFkb3B0V0soV0tCdW5kbGVQYWdl
Q29weVRyYWNrZWRSZXBhaW50UmVjdHMobV9wYWdlKSkuZ2V0KCkpOwogICAgIH0KIAotICAgIGlu
amVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICBp
ZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIGluamVj
dGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgp
OwogICAgIGluamVjdGVkQnVuZGxlLmRvbmUoKTsKIH0KIApAQCAtOTg4LDcgKzEwMDQsMTAgQEAg
dm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdLU3RyaW5n
UmVmIHRpdGxlLCBXS0J1bmRsZUZyYW0KICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRl
cmFsKCInXG4iKTsKICAgICB9CiAKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmlu
Z0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcp
OworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBh
Z2U6OmRpZENsZWFyV2luZG93Rm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tCdW5k
bGVTY3JpcHRXb3JsZFJlZiB3b3JsZCkKQEAgLTEwNDMsNyArMTA2MiwxMCBAQCB2b2lkIEluamVj
dGVkQnVuZGxlUGFnZTo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKFdLQnVuZGxl
UGFnZVJlZiwgV0tCdQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIC0gd2lsbFBl
cmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMOiAiKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChw
YXRoU3VpdGFibGVGb3JUZXN0UmVzdWx0KHVybCkpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiIFxuIik7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWls
ZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAg
ICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpk
aWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwg
V0tTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSB0eXBlKQpAQCAtMTA3Nyw3ICsxMDk5LDEwIEBA
IHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShX
S0J1bmRsZUZyYW1lUmVmIGZyYW1lKQogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVy
YWwoIiAtIGhhcyAiKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIocGVuZGlu
Z0ZyYW1lVW5sb2FkRXZlbnRzKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFs
KCIgb251bmxvYWQgaGFuZGxlcihzKVxuIik7Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1
dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5n
ID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUu
b3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsK
ICAgICB9CiB9CiAKQEAgLTExNTAsNyArMTE3NSwxMCBAQCBXS1VSTFJlcXVlc3RSZWYgSW5qZWN0
ZWRCdW5kbGVQYWdlOjp3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFn
ZQogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiByZWRpcmVjdFJlc3BvbnNl
ICIpOwogICAgICAgICBkdW1wUmVzcG9uc2VEZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3Vs
dChyZXNwb25zZSwgc3RyaW5nQnVpbGRlciwgaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5z
aG91bGREdW1wQWxsSFRUUFJlZGlyZWN0ZWRSZXNwb25zZUhlYWRlcnMoKSk7CiAgICAgICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRU
ZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91
dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAg
ICAgfQogCiAgICAgaWYgKGluamVjdGVkQnVuZGxlLmlzVGVzdFJ1bm5pbmcoKSAmJiBpbmplY3Rl
ZEJ1bmRsZS50ZXN0UnVubmVyKCktPndpbGxTZW5kUmVxdWVzdFJldHVybnNOdWxsKCkpCkBAIC0x
MTg2LDcgKzEyMTQsMTAgQEAgV0tVUkxSZXF1ZXN0UmVmIEluamVjdGVkQnVuZGxlUGFnZTo6d2ls
bFNlbmRSZXF1ZXN0Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UKICAgICAgICAgICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJM
ICIpOwogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQodG9XVEZTdHJpbmcodXJsU3Ry
aW5nKSk7CiAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAg
ICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsK
KyAgICAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KQEAgLTEyMTUsNyArMTI0NiwxMCBAQCB2b2lk
IEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2UoV0tCdW5k
bGVQYWdlUmVmIHBhZ2UsIFdLQgogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwo
IiAtIGRpZFJlY2VpdmVSZXNwb25zZSAiKTsKICAgICAgICAgZHVtcFJlc3BvbnNlRGVzY3JpcHRp
b25TdWl0YWJsZUZvclRlc3RSZXN1bHQocmVzcG9uc2UsIHN0cmluZ0J1aWxkZXIpOwogICAgICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0
cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRs
ZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgp
OwogICAgIH0KIAogCkBAIC0xMjM5LDcgKzEyNzMsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBh
Z2U6OmRpZFJlY2VpdmVSZXNwb25zZUZvclJlc291cmNlKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBX
S0IKIAogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwogCi0gICAgaW5qZWN0ZWRCdW5k
bGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0
cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUu
b3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZv
aWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlQ29udGVudExlbmd0aEZvclJlc291cmNl
KFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgdWludDY0X3QsIHVpbnQ2NF90KQpA
QCAtMTI1OCw3ICsxMjk1LDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRGaW5pc2hM
b2FkRm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lCiAgICAgU3RyaW5n
QnVpbGRlciBzdHJpbmdCdWlsZGVyOwogICAgIGR1bXBSZXNvdXJjZVVSTChpZGVudGlmaWVyLCBz
dHJpbmdCdWlsZGVyKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiAtIGRpZEZp
bmlzaExvYWRpbmdcbiIpOwotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVp
bGRlci50b1N0cmluZygpKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7Cisg
ICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6
ZGlkRmFpbExvYWRGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYs
IHVpbnQ2NF90IGlkZW50aWZpZXIsIFdLRXJyb3JSZWYgZXJyb3IpCkBAIC0xMjc2LDcgKzEzMTYs
MTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZhaWxMb2FkRm9yUmVzb3VyY2UoV0tC
dW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmUKIAogICAgIGR1bXBFcnJvckRlc2NyaXB0aW9u
U3VpdGFibGVGb3JUZXN0UmVzdWx0KGVycm9yLCBzdHJpbmdCdWlsZGVyKTsKICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmlu
Z0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRl
ci50b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcp
OworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogYm9vbCBJbmplY3RlZEJ1bmRsZVBh
Z2U6OnNob3VsZENhY2hlUmVzcG9uc2UoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVm
LCB1aW50NjRfdCBpZGVudGlmaWVyKQpAQCAtMTI5MSw3ICsxMzM0LDEwIEBAIGJvb2wgSW5qZWN0
ZWRCdW5kbGVQYWdlOjpzaG91bGRDYWNoZVJlc3BvbnNlKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5k
bGVGcmFtZVJlZiwKICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7CiAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmROdW1iZXIoaWRlbnRpZmllcik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmRMaXRlcmFsKCIgLSB3aWxsQ2FjaGVSZXNwb25zZTogY2FsbGVkXG4iKTsKLSAgICBpbmplY3Rl
ZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1
bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIAog
ICAgIC8vIFRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIHRoZSBjYWNoZSB0aGUgcmVzcG9uc2UuCiAg
ICAgcmV0dXJuIHRydWU7CkBAIC0xMzM1LDcgKzEzODEsMTAgQEAgV0tCdW5kbGVQYWdlUG9saWN5
QWN0aW9uIEluamVjdGVkQnVuZGxlUGFnZTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bihXS0IKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgc2hvdWxkIG9wZW4g
VVJMcyBleHRlcm5hbGx5IC0gIik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKFdLQnVu
ZGxlTmF2aWdhdGlvbkFjdGlvbkdldFNob3VsZE9wZW5FeHRlcm5hbFVSTHMobmF2aWdhdGlvbkFj
dGlvbikgPyAieWVzIiA6ICJubyIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4n
KTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3Ry
aW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIGlmICghaW5qZWN0
ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5pc1BvbGljeURlbGVnYXRlRW5hYmxlZCgpKQpAQCAtMTM2
Myw3ICsxNDEyLDEwIEBAIFdLQnVuZGxlUGFnZVBvbGljeUFjdGlvbiBJbmplY3RlZEJ1bmRsZVBh
Z2U6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV0tCCiAgICAgfQogCiAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChz
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3Ry
aW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiAKICAgICBpbmplY3RlZEJ1bmRsZS50
ZXN0UnVubmVyKCktPm5vdGlmeURvbmUoKTsKIApAQCAtMTM4NCw3ICsxNDM2LDEwIEBAIFdLQnVu
ZGxlUGFnZVBvbGljeUFjdGlvbiBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRlY2lkZVBvbGljeUZvclJl
c3BvbnNlKFdLQnVuZGxlUGFnCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
UG9saWN5IGRlbGVnYXRlOiByZXNvdXJjZSBpcyBhbiBhdHRhY2htZW50LCBzdWdnZXN0ZWQgZmls
ZSBuYW1lIFwnIik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5nKGZp
bGVuYW1lKSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCdcbiIpOwot
ICAgICAgICBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkub3V0cHV0VGV4dChzdHJpbmdCdWls
ZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgICAgICBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkub3V0
cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAg
ICB9CiAKICAgICByZXR1cm4gV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uUGFzc1Rocm91Z2g7CkBA
IC0xNDc3LDEwICsxNTMyLDEzIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsQWRkTWVz
c2FnZVRvQ29uc29sZShXS1N0cmluZ1JlZiBtZXNzYWdlLCB1aW50MzJfdCBsCiAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmQobWVzc2FnZVN0cmluZyk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQo
J1xuJyk7CiAKLSAgICBpZiAoaW5qZWN0ZWRCdW5kbGUuZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJy
KCkpCi0gICAgICAgIGluamVjdGVkQnVuZGxlLmR1bXBUb1N0ZEVycihzdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCkpOwotICAgIGVsc2UKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChz
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICBpZiAoaW5qZWN0ZWRCdW5kbGUuZHVtcEpTQ29u
c29sZUxvZ0luU3RkRXJyKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5kdW1wVG9TdGRF
cnIoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91
dHB1dFRleHQoKnN0cmluZyk7CisgICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZv
aWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsU2V0U3RhdHVzYmFyVGV4dChXS1N0cmluZ1JlZiBz
dGF0dXNiYXJUZXh0KQpAQCAtMTQ5Niw3ICsxNTU0LDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQ
YWdlOjp3aWxsU2V0U3RhdHVzYmFyVGV4dChXS1N0cmluZ1JlZiBzdGF0dXNiYXJUZXh0KQogICAg
IHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiVUkgREVMRUdBVEUgU1RBVFVTIENBTExCQUNL
OiBzZXRTdGF0dXNUZXh0OiIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5n
KHN0YXR1c2JhclRleHQpKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBp
bmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAg
aWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpbmpl
Y3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0go
KTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxSdW5KYXZhU2NyaXB0QWxlcnQo
V0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tCdW5kbGVGcmFtZVJlZikKQEAgLTE1MDksNyArMTU3MCwx
MCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFJ1bkphdmFTY3JpcHRBbGVydChXS1N0
cmluZ1JlZiBtZXNzYWdlLCBXS0J1bmRsZUZyYQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiQUxFUlQ6ICIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5nKG1l
c3NhZ2UpKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBpbmplY3RlZEJ1
bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaWYgKGF1dG8g
c3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICBpbmplY3RlZEJ1bmRs
ZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UKKyAgICAgICAgQ1JBU0goKTsKIH0KIAog
dm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxSdW5KYXZhU2NyaXB0Q29uZmlybShXS1N0cmlu
Z1JlZiBtZXNzYWdlLCBXS0J1bmRsZUZyYW1lUmVmKQpAQCAtMTUyMiw3ICsxNTg2LDEwIEBAIHZv
aWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUnVuSmF2YVNjcmlwdENvbmZpcm0oV0tTdHJpbmdS
ZWYgbWVzc2FnZSwgV0tCdW5kbGVGCiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJD
T05GSVJNOiAiKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhtZXNzYWdl
KSk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgaW5qZWN0ZWRCdW5kbGUu
b3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmlu
ZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0
cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQg
SW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUnVuSmF2YVNjcmlwdFByb21wdChXS1N0cmluZ1JlZiBt
ZXNzYWdlLCBXS1N0cmluZ1JlZiBkZWZhdWx0VmFsdWUsIFdLQnVuZGxlRnJhbWVSZWYpCkBAIC0x
NTMzLDcgKzE2MDAsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxSdW5KYXZhU2Ny
aXB0UHJvbXB0KFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLU3RyaW5nUmUKICAgICBzdHJpbmdCdWls
ZGVyLmFwcGVuZExpdGVyYWwoIiwgZGVmYXVsdCB0ZXh0OiAiKTsKICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZCh0b1dURlN0cmluZyhkZWZhdWx0VmFsdWUpKTsKICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZCgnXG4nKTsKLSAgICBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkub3V0cHV0VGV4dChz
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLm91
dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lk
IEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVhY2hBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEo
V0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIGludDY0X3QgdG90YWxCeXRlc05lZWRlZCkKQEAg
LTE1NTIsNyArMTYyMiwxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVhY2hBcHBs
aWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV0tTZWN1cml0eU9yaWdpblJlZgogICAgICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiB0b3RhbFNwYWNlTmVlZGVkOn4iKTsKICAgICAgICAg
c3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIodHJ1bmNhdGVkU3BhY2VOZWVkZWQpOwogICAgICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0
cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJp
bmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRs
ZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgp
OwogICAgIH0KIAogICAgIGlmIChpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZERp
c2FsbG93SW5jcmVhc2VGb3JBcHBsaWNhdGlvbkNhY2hlUXVvdGEoKSkKQEAgLTE1NzIsNyArMTY0
NSwxMCBAQCB1aW50NjRfdCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEV4Y2VlZERhdGFiYXNlUXVv
dGEoV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiIGRhdGFiYXNlOiIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0
b1dURlN0cmluZyhkYXRhYmFzZU5hbWUpKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQo
J1xuJyk7Ci0gICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50
b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0
cmluZygpKQorICAgICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKICAgICB1aW50NjRf
dCBkZWZhdWx0UXVvdGEgPSA1ICogMTAyNCAqIDEwMjQ7CkBAIC0xNTkxLDcgKzE2NjcsMTAgQEAg
dWludDY0X3QgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRFeGNlZWREYXRhYmFzZVF1b3RhKFdLU2Vj
dXJpdHlPcmlnaW5SZWYgb3JpZ2luLAogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRM
aXRlcmFsKCJVSSBERUxFR0FURSBEQVRBQkFTRSBDQUxMQkFDSzogaW5jcmVhc2VkIHF1b3RhIHRv
ICIpOwogICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIobmV3UXVvdGEpOwog
ICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgICAgICBpbmpl
Y3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAg
ICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CiAgICAgfQogICAgIHJl
dHVybiBuZXdRdW90YTsKQEAgLTE2NjUsNyArMTc0NCwxMCBAQCBib29sIEluamVjdGVkQnVuZGxl
UGFnZTo6c2hvdWxkQmVnaW5FZGl0aW5nKFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYgcmFuZ2UpCiAg
ICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRURJVElORyBERUxFR0FURTogc2hv
dWxkQmVnaW5FZGl0aW5nSW5ET01SYW5nZToiKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmQocmFuZ2VUb1N0cihtX3BhZ2UsIG1fd29ybGQuZ2V0KCksIHJhbmdlKSk7CiAgICAgICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRU
ZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChhdXRvIHN0cmluZyA9
IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGluamVjdGVkQnVuZGxlLm91
dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAg
ICAgfQogICAgIHJldHVybiBpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZEFsbG93
RWRpdGluZygpOwogfQpAQCAtMTY4MSw3ICsxNzYzLDEwIEBAIGJvb2wgSW5qZWN0ZWRCdW5kbGVQ
YWdlOjpzaG91bGRFbmRFZGl0aW5nKFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYgcmFuZ2UpCiAgICAg
ICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRURJVElORyBERUxFR0FURTogc2hvdWxk
RW5kRWRpdGluZ0luRE9NUmFuZ2U6Iik7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHJh
bmdlVG9TdHIobV9wYWdlLCBtX3dvcmxkLmdldCgpLCByYW5nZSkpOwogICAgICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChz
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJp
bmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRU
ZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0K
ICAgICByZXR1cm4gaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGRBbGxvd0VkaXRp
bmcoKTsKIH0KQEAgLTE3MDcsNyArMTc5MiwxMCBAQCBib29sIEluamVjdGVkQnVuZGxlUGFnZTo6
c2hvdWxkSW5zZXJ0Tm9kZShXS0J1bmRsZU5vZGVIYW5kbGVSZWYgbm9kZSwgV0tCdW5kbGVSYQog
ICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiBnaXZlbkFjdGlvbjoiKTsKICAg
ICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoaW5zZXJ0YWN0aW9uc3RyaW5nW2FjdGlvbl0pOwog
ICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaW5qZWN0ZWRCdW5k
bGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0
byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBpbmplY3Rl
ZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBD
UkFTSCgpOwogICAgIH0KICAgICByZXR1cm4gaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5z
aG91bGRBbGxvd0VkaXRpbmcoKTsKIH0KQEAgLTE3MzMsNyArMTgyMSwxMCBAQCBib29sIEluamVj
dGVkQnVuZGxlUGFnZTo6c2hvdWxkSW5zZXJ0VGV4dChXS1N0cmluZ1JlZiB0ZXh0LCBXS0J1bmRs
ZVJhbmdlSGFuZGxlUgogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiBnaXZl
bkFjdGlvbjoiKTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoaW5zZXJ0YWN0aW9uc3Ry
aW5nW2FjdGlvbl0pOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAg
ICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOwor
ICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAg
ICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICByZXR1cm4gaW5qZWN0ZWRCdW5kbGUu
dGVzdFJ1bm5lcigpLT5zaG91bGRBbGxvd0VkaXRpbmcoKTsKIH0KQEAgLTE3NDksNyArMTg0MCwx
MCBAQCBib29sIEluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkRGVsZXRlUmFuZ2UoV0tCdW5kbGVS
YW5nZUhhbmRsZVJlZiByYW5nZSkKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFs
KCJFRElUSU5HIERFTEVHQVRFOiBzaG91bGREZWxldGVET01SYW5nZToiKTsKICAgICAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmQocmFuZ2VUb1N0cihtX3BhZ2UsIG1fd29ybGQuZ2V0KCksIHJhbmdl
KSk7CiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBpbmplY3Rl
ZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGlm
IChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgICAgIGlu
amVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIENSQVNIKCk7CiAgICAgfQogICAgIHJldHVybiBpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVy
KCktPnNob3VsZEFsbG93RWRpdGluZygpOwogfQpAQCAtMTc4MCw3ICsxODc0LDEwIEBAIGJvb2wg
SW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKFdLQnVuZGxlUmFu
Z2VIYW5kbGVSZWYgZnJvbVJhCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
IHN0aWxsU2VsZWN0aW5nOiIpOwogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChib29sc3Ry
aW5nW3N0aWxsU2VsZWN0aW5nXSk7IAogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4n
KTsKLSAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3Ry
aW5nKCkpOworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCkpCisgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KICAgICByZXR1cm4gaW5qZWN0
ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGRBbGxvd0VkaXRpbmcoKTsKIH0KQEAgLTE3OTgs
NyArMTg5NSwxMCBAQCBib29sIEluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkQXBwbHlTdHlsZShX
S0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25SZWYgc3R5bGUsCiAgICAgICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiIHRvRWxlbWVudHNJbkRPTVJhbmdlOiIpOwogICAgICAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZChyYW5nZVRvU3RyKG1fcGFnZSwgbV93b3JsZC5nZXQoKSwgcmFuZ2Up
KTsKICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGluamVjdGVk
QnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKyAgICAgICAgaWYg
KGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKQorICAgICAgICAgICAgaW5q
ZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgQ1JBU0goKTsKICAgICB9CiAgICAgcmV0dXJuIGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIo
KS0+c2hvdWxkQWxsb3dFZGl0aW5nKCk7CiB9CkBAIC0xODE1LDcgKzE5MTUsMTAgQEAgdm9pZCBJ
bmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEJlZ2luRWRpdGluZyhXS1N0cmluZ1JlZiBub3RpZmljYXRp
b25OYW1lKQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRURJVElORyBERUxFR0FU
RTogd2ViVmlld0RpZEJlZ2luRWRpdGluZzoiKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0
b1dURlN0cmluZyhub3RpZmljYXRpb25OYW1lKSk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQo
J1xuJyk7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3Ry
aW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkK
KyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAgICBlbHNlCisg
ICAgICAgIENSQVNIKCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRFbmRFZGl0
aW5nKFdLU3RyaW5nUmVmIG5vdGlmaWNhdGlvbk5hbWUpCkBAIC0xODMwLDcgKzE5MzMsMTAgQEAg
dm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEVuZEVkaXRpbmcoV0tTdHJpbmdSZWYgbm90aWZp
Y2F0aW9uTmFtZSkKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIkVESVRJTkcgREVM
RUdBVEU6IHdlYlZpZXdEaWRFbmRFZGl0aW5nOiIpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5k
KHRvV1RGU3RyaW5nKG5vdGlmaWNhdGlvbk5hbWUpKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
ZCgnXG4nKTsKLSAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygp
KQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgIGVsc2UK
KyAgICAgICAgQ1JBU0goKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZENoYW5n
ZShXS1N0cmluZ1JlZiBub3RpZmljYXRpb25OYW1lKQpAQCAtMTg0NSw3ICsxOTUxLDEwIEBAIHZv
aWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRDaGFuZ2UoV0tTdHJpbmdSZWYgbm90aWZpY2F0aW9u
TmFtZSkKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIkVESVRJTkcgREVMRUdBVEU6
IHdlYlZpZXdEaWRDaGFuZ2U6Iik7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQodG9XVEZTdHJp
bmcobm90aWZpY2F0aW9uTmFtZSkpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwot
ICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsK
KyAgICBpZiAoYXV0byBzdHJpbmcgPSBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
IGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoKnN0cmluZyk7CisgICAgZWxzZQorICAgICAgICBD
UkFTSCgpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2hhbmdlU2VsZWN0aW9u
KFdLU3RyaW5nUmVmIG5vdGlmaWNhdGlvbk5hbWUpCkBAIC0xODYwLDcgKzE5NjksMTAgQEAgdm9p
ZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZENoYW5nZVNlbGVjdGlvbihXS1N0cmluZ1JlZiBub3Rp
ZmljYXRpb25OYW1lKQogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRURJVElORyBE
RUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjoiKTsKICAgICBzdHJpbmdCdWlsZGVy
LmFwcGVuZCh0b1dURlN0cmluZyhub3RpZmljYXRpb25OYW1lKSk7CiAgICAgc3RyaW5nQnVpbGRl
ci5hcHBlbmQoJ1xuJyk7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWls
ZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgqc3RyaW5nKTsKKyAg
ICBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcAppbmRleCBlNjJlYjkzLi45MjY4ODQ5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTE2NzgsMTAgKzE2
NzgsMTMgQEAgdm9pZCBUZXN0UnVubmVyOjpzdGF0aXN0aWNzRGlkUnVuVGVsZW1ldHJ5Q2FsbGJh
Y2sodW5zaWduZWQgdG90YWxQcmV2YWxlbnRSZXNvdXIKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
ZExpdGVyYWwoIiwgXCJ0b3AzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luc1wiIDogIik7CiAg
ICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIodG9wM1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9y
aWdpbnMpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIH0iKTsKKworICAgIGlm
IChhdXRvIHN0cmluZyA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSkgeworICAgICAgICBKU1Zh
bHVlUmVmIHJlc3VsdCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmcoY29udGV4dCwgSlNTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyaW5nLT51dGY4KCkuZGF0YSgpKSk7CiAgICAgCi0g
ICAgSlNWYWx1ZVJlZiByZXN1bHQgPSBKU1ZhbHVlTWFrZUZyb21KU09OU3RyaW5nKGNvbnRleHQs
IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKS51
dGY4KCkuZGF0YSgpKSk7Ci0gICAgCi0gICAgY2FsbFRlc3RSdW5uZXJDYWxsYmFjayhTdGF0aXN0
aWNzRGlkUnVuVGVsZW1ldHJ5Q2FsbGJhY2tJRCwgMSwgJnJlc3VsdCk7CisgICAgICAgIGNhbGxU
ZXN0UnVubmVyQ2FsbGJhY2soU3RhdGlzdGljc0RpZFJ1blRlbGVtZXRyeUNhbGxiYWNrSUQsIDEs
ICZyZXN1bHQpOworICAgIH0gZWxzZQorICAgICAgICBDUkFTSCgpOwogfQogCiB2b2lkIFRlc3RS
dW5uZXI6OnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpCkBAIC0xODkxLDEwICsxODk0LDEzIEBA
IHZvaWQgVGVzdFJ1bm5lcjo6Y2FsbERpZFJlY2VpdmVBbGxTdG9yYWdlQWNjZXNzRW50cmllc0Nh
bGxiYWNrKFZlY3RvcjxTdHJpbmc+JiBkCiAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiXCIiKTsKICAgICB9CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJdIik7
Ci0gICAgCi0gICAgSlNWYWx1ZVJlZiByZXN1bHQgPSBKU1ZhbHVlTWFrZUZyb21KU09OU3RyaW5n
KGNvbnRleHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZ0J1aWxkZXIudG9T
dHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CiAKLSAgICBjYWxsVGVzdFJ1bm5lckNhbGxiYWNrKEFs
bFN0b3JhZ2VBY2Nlc3NFbnRyaWVzQ2FsbGJhY2tJRCwgMSwgJnJlc3VsdCk7CisgICAgaWYgKGF1
dG8gc3RyaW5nID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpKSB7CisgICAgICAgIEpTVmFsdWVS
ZWYgcmVzdWx0ID0gSlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmluZyhjb250ZXh0LCBKU1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmctPnV0ZjgoKS5kYXRhKCkpKTsKKworICAgICAgICBj
YWxsVGVzdFJ1bm5lckNhbGxiYWNrKEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzQ2FsbGJhY2tJRCwg
MSwgJnJlc3VsdCk7CisgICAgfSBlbHNlCisgICAgICAgIENSQVNIKCk7CiB9CiAKICNpZiBQTEFU
Rk9STShNQUMpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCmlu
ZGV4IGMxZWY4N2EuLjYyOWRlMzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRBdGsuY3BwCkBAIC0yMjksNyArMjI5LDkgQEAgU3RyaW5nIGF0dHJpYnV0ZVNldFRvU3Ry
aW5nKEF0a0F0dHJpYnV0ZVNldCogYXR0cmlidXRlU2V0LCBTdHJpbmcgc2VwYXJhdG9yPSIsICIK
ICAgICB9CiAgICAgYXRrX2F0dHJpYnV0ZV9zZXRfZnJlZShhdHRyaWJ1dGVTZXQpOwogCi0gICAg
cmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9CiAK
IFN0cmluZyBnZXRBdGtBdHRyaWJ1dGVTZXRBc1N0cmluZyhBdGtPYmplY3QqIGFjY2Vzc2libGUs
IEF0a0F0dHJpYnV0ZVR5cGUgdHlwZSwgIFN0cmluZyBzZXBhcmF0b3I9IiwgIikKQEAgLTY1MCw3
ICs2NTIsOSBAQCBTdHJpbmcgYXR0cmlidXRlc09mRWxlbWVudChBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50KiBlbGVtZW50KQogICAgIGJ1aWxkZXIuYXBwZW5kKCJBWFBsYXRmb3JtQXR0cmlidXRlczog
Iik7CiAgICAgYnVpbGRlci5hcHBlbmQoZ2V0QXRrQXR0cmlidXRlU2V0QXNTdHJpbmcoZWxlbWVu
dC0+cGxhdGZvcm1VSUVsZW1lbnQoKS5nZXQoKSwgT2JqZWN0QXR0cmlidXRlVHlwZSkpOwogCi0g
ICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAoYXV0byBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCkpCisgICAgICAgIHJldHVybiAqc3RyaW5nOworICAgIENSQVNIKCk7CiB9
CiAKIHN0YXRpYyBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gY3JlYXRlU3RyaW5nV2l0aEF0dHJp
YnV0ZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiA+JiBlbGVt
ZW50cykKQEAgLTY2Miw3ICs2NjYsOSBAQCBzdGF0aWMgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IGNyZWF0ZVN0cmluZ1dpdGhBdHRyaWJ1dGVzKGNvbnN0IFZlY3RvcjxSZWZQdHI8QQogICAgICAg
ICBidWlsZGVyLmFwcGVuZCgiXG4tLS0tLS0tLS0tLS1cbiIpOwogICAgIH0KIAotICAgIHJldHVy
biBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhidWlsZGVyLnRvU3RyaW5nKCkudXRmOCgp
LmRhdGEoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAg
ICAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyaW5nLT51dGY4KCku
ZGF0YSgpKTsKKyAgICBDUkFTSCgpOwogfQogCiBzdGF0aWMgVmVjdG9yPFJlZlB0cjxBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50PiA+IGdldFRhYmxlUm93SGVhZGVycyhBdGtUYWJsZSogYWNjZXNzaWJs
ZSkKQEAgLTE0NDgsNyArMTQ1NCw5IEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpoZWxwVGV4dCgpIGNvbnN0CiAKICAgICBnX29iamVjdF91bnJlZihy
ZWxhdGlvblNldCk7CiAKLSAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
YnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIGlmIChhdXRvIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgQ1JBU0goKTsKIH0KIAogZG91
YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OngoKQpAQCAtMTc4Niw3ICsxNzk0LDkgQEAgSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRT
dHJpbmdGb3JSYW5nZSh1bnNpZ24KICAgICAgICAgYnVpbGRlci5hcHBlbmQoYXR0cmlidXRlU2V0
VG9TdHJpbmcoYXR0cmlidXRlU2V0LCAiXG5cdFx0IikpOwogICAgIH0KIAotICAgIHJldHVybiBK
U1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhidWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRh
dGEoKSk7CisgICAgaWYgKGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyaW5nLT51dGY4KCkuZGF0
YSgpKTsKKyAgICBDUkFTSCgpOwogfQogCiBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0
dHJpYnV0ZWRTdHJpbmdSYW5nZUlzTWlzc3BlbGxlZCh1bnNpZ25lZCBsb2NhdGlvbiwgdW5zaWdu
ZWQgbGVuZ3RoKQpAQCAtMjM0Myw3ICsyMzUzLDkgQEAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IHN0cmluZ0F0T2Zmc2V0KFBsYXRmb3JtVUlFbGVtZW50IGVsZW1lbnQsIEF0a1RleHRCb3VuZGEK
ICAgICBidWlsZGVyLmFwcGVuZChhdGtfdGV4dF9nZXRfdGV4dF9hdF9vZmZzZXQoQVRLX1RFWFQo
ZWxlbWVudC5nZXQoKSksIG9mZnNldCwgYm91bmRhcnksICZzdGFydE9mZnNldCwgJmVuZE9mZnNl
dCkpOwogI2VuZGlmCiAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nOjpmb3JtYXQoIiwgJWksICVp
Iiwgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCkpOwotICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZyhidWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgaWYg
KGF1dG8gc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpKQorICAgICAgICByZXR1cm4gSlNTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyaW5nLT51dGY4KCkuZGF0YSgpKTsKKyAgICBDUkFT
SCgpOwogfQogCiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6Y2hhcmFjdGVyQXRPZmZzZXQoaW50IG9mZnNldCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHAKaW5kZXggNjhjNDljOC4uZjNiYTdmZCAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTE4ODEsNyArMTg4MSwxMCBAQCBXS1N0
cmluZ1JlZiBUZXN0Q29udHJvbGxlcjo6ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmls
ZW5hbWUoV0tDb250ZXh0UmVmLAogICAgICAgICBidWlsZGVyLmFwcGVuZCgiRG93bmxvYWRpbmcg
VVJMIHdpdGggc3VnZ2VzdGVkIGZpbGVuYW1lIFwiIik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KHN1Z2dlc3RlZEZpbGVuYW1lKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoIlwiXG4iKTsKLSAg
ICAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+b3V0cHV0VGV4dChidWlsZGVyLnRvU3RyaW5nKCkp
OworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAg
ICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBDUkFTSCgpOwogICAgIH0KIAogICAgIGNvbnN0IGNoYXIqIGR1bXBS
ZW5kZXJUcmVlVGVtcCA9IGxpYnJhcnlQYXRoRm9yVGVzdGluZygpOwpAQCAtMTkxMSw3ICsxOTE0
LDEwIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlkUmVjZWl2ZVNlcnZlclJlZGly
ZWN0VG9VUkwoV0tDb250ZXh0UmVmLCBXS0Rvd25sCiAgICAgICAgIFdLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiB1cmxTdHJpbmdXSyA9IGFkb3B0V0soV0tVUkxDb3B5U3RyaW5nKHVybCkpOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZCh0b1NURCh1cmxTdHJpbmdXSykuY19zdHIoKSk7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCIuXG4iKTsKLSAgICAgICAgbV9jdXJyZW50SW52b2Nh
dGlvbi0+b3V0cHV0VGV4dChidWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCkpCisgICAgICAgICAgICBtX2N1cnJlbnRJbnZvY2F0
aW9uLT5vdXRwdXRUZXh0KCpzdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBDUkFT
SCgpOwogICAgIH0KIH0KIApAQCAtMTkzNCw3ICsxOTQwLDEwIEBAIHZvaWQgVGVzdENvbnRyb2xs
ZXI6OmRvd25sb2FkRGlkRmFpbChXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYsIFdLRXJyb3JS
ZWYgZXJyCiAgICAgICAgIGVycm9yQnVpbGRlci5hcHBlbmQodG9XVEZTdHJpbmcoZXJyb3JEZXNj
cmlwdGlvbikpOwogICAgICAgICBlcnJvckJ1aWxkZXIuYXBwZW5kKCJcbiIpOwogCi0gICAgICAg
IG1fY3VycmVudEludm9jYXRpb24tPm91dHB1dFRleHQoZXJyb3JCdWlsZGVyLnRvU3RyaW5nKCkp
OworICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBlcnJvckJ1aWxkZXIudG9TdHJpbmcoKSkKKyAg
ICAgICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPm91dHB1dFRleHQoKnN0cmluZyk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIENSQVNIKCk7CiAgICAgfQogICAgIG1fY3VycmVudEludm9j
YXRpb24tPm5vdGlmeURvd25sb2FkRG9uZSgpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RJbnZvY2F0aW9uLmNwcAppbmRleCBjZDVkYjBhLi5lZTJmNTUyIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMjQ4LDkgKzI0OCwxMiBAQCB2b2lkIFRl
c3RJbnZvY2F0aW9uOjpmb3JjZVJlcGFpbnREb25lQ2FsbGJhY2soV0tFcnJvclJlZiBlcnJvciwg
dm9pZCogY29udGV4dCkKIAogdm9pZCBUZXN0SW52b2NhdGlvbjo6ZHVtcFJlc3VsdHMoKQogewot
ICAgIGlmIChtX3RleHRPdXRwdXQubGVuZ3RoKCkgfHwgIW1fYXVkaW9SZXN1bHQpCi0gICAgICAg
IGR1bXAobV90ZXh0T3V0cHV0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgZWxzZQor
ICAgIGlmIChtX3RleHRPdXRwdXQubGVuZ3RoKCkgfHwgIW1fYXVkaW9SZXN1bHQpIHsKKyAgICAg
ICAgaWYgKGF1dG8gc3RyaW5nID0gbV90ZXh0T3V0cHV0LnRvU3RyaW5nKCkpCisgICAgICAgICAg
ICBkdW1wKHN0cmluZy0+dXRmOCgpLmRhdGEoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IENSQVNIKCk7CisgICAgfSBlbHNlCiAgICAgICAgIGR1bXBBdWRpbyhtX2F1ZGlvUmVzdWx0Lmdl
dCgpKTsKIAogICAgIGlmIChtX2R1bXBQaXhlbHMpIHsKLS0gCjIuOS4zCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>